+
    jHàjW  ã                   óÂ   € R t ^ RIHt ^ RIHt RtR R ltR R ltR R ltR	 R
 lt	Rt
R R ltR]R]! ]RRRRR7      R]! ]RR^ZRR7      R]	R]/tR R ltR R ltR# )a  Post-import section-skip logic: after ``hermes setup`` imported another agent's settings, each
section that is already configured shows its summary and offers to skip (setup.py re-exports the
names it uses; setup helpers are imported lazily so test patches apply).)Úpartial)ÚOptionalc                ó0   € V ^8„  d   QhR\         R\        /# ©é   ÚconfigÚreturn)ÚdictÚbool)Úformats   "Ú?/home/ubuntu/.hermes/hermes-agent/hermes_cli/setup_migration.pyÚ__annotate__r      s   € ÷ &dñ &d¬4ð &d´Dñ &dó    c                ó6  aa€ ^ RI Ho  ^ RIHp V! 4       '       d   R#   ^ RIHp R V3R llo\        ;QJ d#    V3R l\         4       F  '       g   K   RM	  RM! V3R l\         4       4      p\        V \        4      '       d   V P                  R	4      MR
p\        V\        4      '       de   VP                  R4      ;'       g    RP                  4       P                  4       pWR9   d   S! W%,          4      '       d   R# VR8X  d   V'       d   R# V'       d   R# \        ;QJ d-    V3R lVP                  4        4       F  '       g   K   R# 	  R# ! V3R lVP                  4        4       4      #   \         d     ELci ; i  \         d    / p ELpi ; i)zÿTrue when any known inference provider has usable credentials: ``active_provider`` in the
auth store (OAuth providers), ``PROVIDER_REGISTRY`` ``api_key_env_vars``, or the legacy
OpenRouter aggregator env vars (``OPENAI_API_KEY`` / ``OPENROUTER_API_KEY``).©Úget_env_value)Úget_active_providerT)ÚPROVIDER_REGISTRYc                ó$   € V ^8„  d   QhR\         /# )r   r   )r
   )r   s   "r   r   Ú4_model_section_has_credentials.<locals>.__annotate__   s   € ÷ iñ iœTñ ir   c                 ó    <€ \         ;QJ d)    V3R  lV P                   4       F  '       g   K   R# 	  R# ! V3R  lV P                   4       4      # )c              3   óD   <"  € T F  qR 8w  g   K  S! V4      x € K  	  R# 5i)ÚCLAUDE_CODE_OAUTH_TOKENN© ©Ú.0Úvr   s   & €r   Ú	<genexpr>ÚC_model_section_has_credentials.<locals>._has_key.<locals>.<genexpr>!   s$   øé € ÐhÑ-E¨ÐNgÑIgÔ#‘= ×#Ð#Ó-Eùs   ƒ � TF)ÚanyÚapi_key_env_vars)Úpconfigr   s   &€r   Ú_has_keyÚ0_model_section_has_credentials.<locals>._has_key   s:   ø€ ÷ ‹sÔh¨W×-EÒ-EÓh�sŒsÐhŠsÐhˆsÔh¨W×-EÒ-EÓhÓhÐhr   c              3   ó4   <"  € T F  pS! V4      x € K  	  R # 5i)Nr   r   s   & €r   r   Ú1_model_section_has_credentials.<locals>.<genexpr>#   s   øé € ÐLÑ7K°!™]¨1×-Ð-Ó7Kùs   ƒFÚmodelNÚproviderÚ Ú
openrouterc              3   óJ   <"  € T F  w  rVR 8w  g   K  S! V4      x € K  	  R# 5i)ÚcopilotNr   )r   Úpidr!   r"   s   &  €r   r   r%   4   s)   øé € ÐcÑ5N¡\ SÐRUÐYbÑRbÔ ‰x˜× Ð Ó5Nùs   ƒ#“#)Úhermes_cli.setupr   Úhermes_cli.authr   Ú	Exceptionr   r   Ú_OPENROUTER_ENV_VARSÚ
isinstancer	   ÚgetÚstripÚlowerÚitems)r   r   r   Úany_openrouter_keyÚ	model_cfgÚprovider_idr"   r   s   &     @@r   Ú_model_section_has_credentialsr9      sC  ù€ õ /ðÝ7Ù× Ò Ùð !ðÝ5÷ið i÷
 ›ÔLÕ7KÓLŸŸšÔLÕ7KÓLÓLÐô (2°&¼$×'?Ò'?�—
‘
˜7Ô#ÀT€IÜ�)œT×"Ò"Ø —}‘} ZÓ0×6Ð6°B×=Ñ=Ó?×EÑEÓGˆØÔ+±Ð9JÕ9W×0XÒ0XÙØ˜,Ô&×+=Ù÷ Ù÷ ‹3ÔcÐ5F×5LÑ5LÔ5NÓc�3Œ3ÐcŠ3Ðcˆ3ÔcÐ5F×5LÑ5LÔ5NÓcÓcÐcøô; ô Úðûô ô ØÓðús"   ŠE5 ¡F Å5FÆFÆFÆFc                óF   € V ^8„  d   QhR\         R\        \        ,          /# r   ©r	   r   Ústr)r   s   "r   r   r   7   s   € ÷ ñ œ4ð ¤H¬S¥Mñ r   c                 ól  € \        V 4      '       g   R # V P                  R4      p\        V\        4      '       d'   VP	                  4       '       d   VP	                  4       # \        V\
        4      '       d>   \        VP                  R4      ;'       g    VP                  R4      ;'       g    R4      # R# )Nr&   ÚdefaultÚ
configured)r9   r2   r1   r<   r3   r	   )r   r&   s   & r   Ú_model_summaryr@   7   s~   € Ü)¨&×1Ò1ÙØ�J‰J�wÓ€EÜ�%œ×Ò %§+¡+§-¢-Ø�{‰{‹}ÐÜ�%œ×ÒÜ�5—9‘9˜YÓ'×MÐM¨5¯9©9°WÓ+=×MÐMÀÓNÐNÙr   c          
      óT   € V ^8„  d   QhR\         R\        R\        R\        R\        /# )r   r   ÚsectionÚkeyÚprefixr   )r	   r<   )r   s   "r   r   r   B   s7   € ÷ Gñ Gœð G¬ð G´#ð GÌð GÔPSñ Gr   c                 ó*   € ^ RI Hp V V! WW#R7       2# )é    )Úcfg_get©r>   )r-   rG   )r   rB   rC   r>   rD   rG   s   &&&&& r   Ú_cfg_summaryrI   B   s   € Ý(ØˆX‘g˜f¨sÔDÐEÐFÐFr   c                óF   € V ^8„  d   QhR\         R\        \        ,          /# r   r;   )r   s   "r   r   r   G   s   € ÷ 
9ñ 
9œTð 
9¤h¬s¥mñ 
9r   c                 ó6  € ^ RI HpHp V! 4        Uu. uFa  pV! V4      '       g   K  V! V4      R8w  g   K"  VR,          P                  R^4      ^ ,          P	                  4       ;'       g
    VR,          NKc  	  ppV'       d   RP                  V4      # R# u upi )rF   )Ú_all_platformsÚ_platform_statusznot configuredÚlabelÚ(ú, N)Úhermes_cli.gatewayrL   rM   Úsplitr3   Újoin)r   rL   rM   Úplatr?   s   &    r   Ú_gateway_summaryrU   G   s–   € ßCñ #Ô$óñ %ˆDÙ˜D×!ô 	@á&6°tÓ&<Ð@PÑ&Pô 	@ˆˆW�×Ñ˜C Ó# AÕ&×,Ñ,Ó.×?Ð?°$°wµ-Ò?Ù$ð ð ÷ %/ˆ4�9‰9�ZÓ Ð8°DÐ8ùòs   ’B§
B¶4BÁ+Bc                óF   € V ^8„  d   QhR\         R\        \        ,          /# r   r;   )r   s   "r   r   r   [   s   € ÷ /ñ /œ4ð /¤H¬S¥Mñ /r   c                 ó¢   € ^ RI Hp \         UUu. uF  w  r#V! V4      '       g   K  VNK  	  pppV'       d   RP                  V4      # R# u uppi )rF   r   rP   N)r-   r   Ú_TOOL_ENV_LABELSrS   )r   r   Úenv_varrN   Útoolss   &    r   Ú_tools_summaryr[   [   sB   € Ý.Ý)9ÔTÑ)9‘~�w¹]È7×=S�UˆUÑ)9€EÑTß$ˆ4�9‰9�UÓÐ.¨$Ð.ùó Us
   �A§Ar&   ÚterminalÚbackendÚlocalz	backend: )rB   rC   r>   rD   ÚagentÚ	max_turnszmax turns: ÚgatewayrZ   c                óR   € V ^8„  d   QhR\         R\        R\        \        ,          /# )r   r   Úsection_keyr   )r	   r<   r   )r   s   "r   r   r   j   s%   € ÷ 4ñ 4¬ð 4¼3ð 4Ä8ÌCÅ=ñ 4r   c                óP   € \         P                  V4      pV'       d	   V! V 4      # R# )zËShort summary if a setup section is already configured (post-import skip detection), else
None. ``get_env_value`` is reached through hermes_cli.setup so test patches
on ``setup_mod.get_env_value`` apply.N)Ú_SECTION_SUMMARIESr2   )r   rc   Ú	summarizes   && r   Ú_get_section_config_summaryrg   j   s&   € ô #×&Ñ& {Ó3€Iß )‰9�VÓÐ3¨tÐ3r   c                óH   € V ^8„  d   QhR\         R\        R\        R\        /# )r   r   rc   rN   r   )r	   r<   r
   )r   s   "r   r   r   r   s.   € ÷ Oñ O¤Tð O¼ð OÄCð OÌDñ Or   c                ó®   € ^ RI HpHp \        W4      pV'       g   R# \	        4        V! RV RV 24       V! RVP                  4        R2RR7      '       * # )zWShow an already-configured section summary and offer to skip; True when the user skips.)Úprint_successÚprompt_yes_noFz  z: z  Reconfigure Ú?rH   )r-   rj   rk   rg   Úprintr4   )r   rc   rN   rj   rk   Úsummarys   &&&   r   Ú_skip_configured_sectionro   r   sN   € ç=Ü)¨&Ó>€GßÙÜ	„GÙ�B�u�g˜R ˜yÐ)Ô*Ù˜~¨e¯k©k«m¨_¸AÐ>ÈÔNÔNÐNr   N)ÚOPENROUTER_API_KEYÚOPENAI_API_KEY))ÚELEVENLABS_API_KEYzTTS/ElevenLabs)ÚBROWSERBASE_API_KEYÚBrowser)ÚFIRECRAWL_API_KEYÚ	Firecrawl)Ú__doc__Ú	functoolsr   Útypingr   r0   r9   r@   rI   rU   rX   r[   re   rg   ro   r   r   r   Ú<module>rz      sŒ   ðñLõ Ý ð
 @Ð õ&dõRõGõ

9ðÐ õ/ð ˆ^Ø‘˜¨j¸iÐQXÐalÔmØ‰W�\¨7¸ÈRÐXeÔfØÐØˆ^ðÐ õ4÷Or   