§
    øžyj  ã                  ój   — d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	m
Z
 ddlmZ dd„Zdd„Zdd„ZdS )u´   CLI handlers for ``hermes migrate ...``.

Currently exposes only ``hermes migrate xai`` â€” diagnoses and (with --apply)
rewrites references to xAI models retired on May 15, 2026.
é    )ÚannotationsN)ÚPath)ÚAny)ÚColorsÚcolor)Úload_configÚargsr   ÚreturnÚintc                óˆ   — t          | dd¦  «        }|dk    rt          | ¦  «        S t          dt          j        ¬¦  «         dS )z,Dispatcher for ``hermes migrate <subtype>``.Úmigrate_typeNÚxaiz1usage: hermes migrate xai [--apply] [--no-backup]©Úfileé   )ÚgetattrÚcmd_migrate_xaiÚprintÚsysÚstderr)r	   Úsubs     ú8/home/ragecks/.hermes/hermes-agent/hermes_cli/migrate.pyÚcmd_migrater      sE   € å
�$˜¨Ñ
-Ô
-€CØ
ˆe‚|€|Ý˜tÑ$Ô$Ð$å	Ð
=ÅCÄJÐOÑOÔOÐOØˆ1ó    c           	     ó4  — ddl m}m}m}m}m} t          t          | dd¦  «        ¦  «        }t          t          | dd¦  «        ¦  «        }t          ¦   «         } ||¦  «        }	t          ¦   «          t          t          d|› d�t          j        t          j        ¦  «        ¦  «         t          ¦   «          |	s-t          dt          d	t          j        ¦  «        › d
�¦  «         dS t          dt          |	¦  «        › d�¦  «         t          ¦   «          |	D ]8}
t          dt          dt          j        ¦  «        › d ||
¦  «        › �¦  «         Œ9t          ¦   «          t          dt          dt          j        ¦  «        › d|› �¦  «         t          ¦   «          t#          ¦   «         }|sTt          t          dt          j        ¦  «        ¦  «         t          t          d|› d�t          j        ¦  «        ¦  «         dS |r|                     ¦   «         s<t          dt          dt          j        ¦  «        › d|› d�t*          j        ¬¦  «         dS 	  |||	| ¬¦  «        }nQ# t.          $ rD}t          dt          dt          j        ¦  «        › d|› �t*          j        ¬¦  «         Y d}~dS d}~ww xY w|j        s-t          dt          dt          j        ¦  «        › d�¦  «         dS |j        �2t          dt          d	t          j        ¦  «        › d|j        › �¦  «         t          dt          d	t          j        ¦  «        › dt          |j        ¦  «        › d|j        › �¦  «         t          ¦   «          t          t          d t          j        ¦  «        ¦  «         dS )!z8Run xAI May-15 model migration in dry-run or apply mode.r   )ÚMIGRATION_GUIDE_URLÚRETIREMENT_DATEÚapply_migrationÚfind_retired_xai_refsÚformat_issueÚapplyFÚ	no_backupu$   â—† xAI Model Retirement Migration (ú)z  u   âœ“u8    No retired xAI models in config â€” nothing to migrate.z  Found z  retired xAI model reference(s):z    u   âš Ú u   â†’z Migration guide: u$   Dry-run mode â€” no changes written.z4Re-run with `hermes migrate xai --apply` to rewrite z) in-place (backup created automatically).u   âœ—z* Could not locate config.yaml (looked at: r   é   )Úconfig_pathÚissuesÚbackupz Migration failed: Nz No changes written.z	 Backup: z	 Updated z slot(s) in z<Run `hermes doctor` to confirm no retired xAI models remain.)Úhermes_cli.xai_retirementr   r   r   r   r    Úboolr   r   r   r   r   ÚCYANÚBOLDÚGREENÚlenÚYELLOWÚ_resolve_config_pathÚDIMÚexistsÚREDr   r   Ú	ExceptionÚconfig_changedÚbackup_pathÚissues_resolvedÚ	file_path)r	   r   r   r   r   r    r!   r"   Úconfigr'   Úissuer&   ÚresultÚexcs                 r   r   r      s1  € ðð ð ð ð ð ð ð ð ð ð ð ð ð õ •˜˜w¨Ñ.Ô.Ñ/Ô/€EÝ•W˜T ;°Ñ6Ô6Ñ7Ô7€Iå‰]Œ]€FØ"Ð" 6Ñ*Ô*€Få	�G„G€GÝ	�%ØA¨ÐAÐAÐAÝŒ•V”[ñô ñ ô ð õ 
�G„G€Gàð ÝÐg•5˜¥¤Ñ-Ô-ÐgÐgÐgÑhÔhÐhØˆqå	Ð
B•S˜‘[”[Ð
BÐ
BÐ
BÑCÔCÐCÝ	�G„G€GØð Jð JˆÝÐH•U˜5¥&¤-Ñ0Ô0ÐHÐH°<°<ÀÑ3FÔ3FÐHÐHÑIÔIÐIÐIÝ	�G„G€GÝ	Ð
S•�u�fœkÑ*Ô*Ð
SÐ
SÐ>QÐ
SÐ
SÑTÔTÐTÝ	�G„G€Gå&Ñ(Ô(€Kàð Ý�eÐ:½F¼JÑGÔGÑHÔHÐHÝ�eðFØðFð Fð FåŒJñ
ô 
ñ 	ô 	ð 	ð
 ˆqàð ˜k×0Ò0Ñ2Ô2ð Ýð*•�u�fœjÑ)Ô)ð *ð *Ø&ð*ð *ð *å”ð	
ñ 	
ô 	
ð 	
ð
 ˆqðØ �Ø#ØØ �=ð
ñ 
ô 
ˆˆøõ
 ð ð ð ÝØC•�u�fœjÑ)Ô)ÐCÐC¸cÐCÐCÝ”ð	
ñ 	
ô 	
ð 	
ð ˆqˆqˆqˆqˆqøøøøðøøøð Ô ð ÝÐD•5˜¥¤Ñ.Ô.ÐDÐDÐDÑEÔEÐEØˆqàÔÐ%ÝÐL•5˜¥¤Ñ-Ô-ÐLÐL¸Ô8JÐLÐLÑMÔMÐMÝ	ð	)�U�5�&œ,Ñ'Ô'ð 	)ð 	)µ#°fÔ6LÑ2MÔ2Mð 	)ð 	)ØÔ&ð	)ð 	)ñô ð õ 
�G„G€GÝ	�%ØFÝŒ
ñô ñ ô ð ð ˆ1s   ÉI É
J,É(9J'Ê'J,r   c                 ó(   — ddl m}   | ¦   «         dz  S )z3Best-effort: locate the active config.yaml on disk.r   ©Úget_hermes_homezconfig.yaml)Úhermes_cli.configr?   r>   s    r   r0   r0   o   s'   € à1Ð1Ð1Ð1Ð1Ð1àˆ?ÑÔ˜}Ñ,Ð,r   )r	   r   r
   r   )r
   r   )Ú__doc__Ú
__future__r   r   Úpathlibr   Útypingr   Úhermes_cli.colorsr   r   r@   r   r   r   r0   © r   r   ú<module>rG      sÅ   ððð ð
 #Ð "Ð "Ð "Ð "Ð "à 
€
€
€
Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ø )Ð )Ð )Ð )Ð )Ð )ðð ð ð ðRð Rð Rð Rðj-ð -ð -ð -ð -ð -r   