+
    jHàj‹U  ã                  ó~  € R t ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RI	t	^ RI
t
^ RIHtHtHt ^ RIHt R;tR<tRRRRRRR	RR
RRRRRRR/tRtR=tR R ltR R  ltR! R" ltR# R$ ltR% tR& tR' tR( R) ltR* tR+ tR, t R>R- lt!R.t"RR?RR@RRARRBRRCRRDRRERRFR/RG/	t#R0 t$R1 t%R2 t&R3 t'R4 t(R5 R6 lt)R7 R8 lt*R9 R: lt+R# )HzLNormal classic/one-shot launch through the canonical gateway, never AIAgent.)ÚannotationsN)ÚPath)ÚRESUME_KEY_MISMATCHÚGatewayClientErrorÚconnect_gateway)ÚRESUME_REFUSALSÚimageÚworktreeÚwÚno_restore_cwdÚ
run_budgetÚverboseÚcompactÚmodelÚproviderÚ	reasoningÚtoolsetsÚbase_urlÚyoloÚskillsz5`hermes --tui` or the Desktop app to attach the imagez`hermes --tui -w`z9`--in <dir>` (the gateway keeps the session's frozen cwd)z)`agent.run_budget_seconds` in config.yamlz1`hermes logs --follow`, or `hermes chat --tui -v`z&`display.compact: true` in config.yamlú#create-if-missing without -c <name>z`-c <name> --create-if-missing`zZhermes chat --safe-mode --provider openrouter --model anthropic/claude-sonnet-4 -q "hello"c               ó   € V ^8„  d   QhRR/# ©é   ÚreturnÚdict© )Úformats   "Ú</home/ubuntu/.hermes/hermes-agent/hermes_cli/gateway_chat.pyÚ__annotate__r   .   s   € ÷ gñ g˜$ñ gó    c            	     óª   € ^ RI Hp  \         UUu/ uF5  w  rV ! \        P                  P                  V4      4      '       g   K2  VRbK7  	  upp# u uppi )é    )Úis_truthy_valueT)Úutilsr#   Ú_ENV_LAUNCH_FLAGSÚosÚenvironÚget)r#   ÚfieldÚnames      r   Úenv_launch_flagsr+   .   sA   € Ý%Ý+<ÔfÑ+<™K˜EÁÔPR×PZÑPZ×P^ÑP^Ð_cÓPd×@eŒKˆE�4ŠKÑ+<ÒfÐfùÓfs   �/AÁAc               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r   3   s   € ÷ 	Tñ 	T˜$ñ 	Tr    c                 ó    € ^ RI Hp  RR0\        \        4       4      ,          '       d   V ! 4       # ^ RIHp ^ RIHp V ! V! V! 4       4      R7      # )zöThis shell's allowlisted environment (``agent.session_client_env``) with the extra names of the
profile's effective config (managed layer included), as the gateway reads them. A bypass launch's
owner freezes code defaults, so it reads no profile.)Úcollect_client_envÚ	safe_modeÚignore_user_config)Úget_config_path©Úload_user_config_effective)Úconfig)Úagent.session_client_envr.   Úsetr+   Úhermes_cli.configr1   Úhermes_cli.config_effectiver3   )r.   r1   r3   s      r   Úshell_client_envr9   3   sD   € õ <ØÐ)Ð*¬SÔ1AÓ1CÓ-D×DÔDÙ!Ó#Ð#Ý1ÝFÙÑ%?ÁÓ@QÓ%RÔSÐSr    c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   r   ?   s   € ÷ Tñ T Tñ Tr    c                ó,   € RV 9   d   R\        4       /# / # )z´``client_env`` for a new session (main's process read these from its shell; the shared gateway
applies them to this session only), or nothing for a gateway that predates the field.Ú
client_env)r9   )Ú
parameterss   &r   Úclient_env_policyr>   ?   s    € ð 2>ÀÔ1KˆLÔ*Ó,Ð-ÐSÐQSÐSr    c               ó   € V ^8„  d   QhRR/# )r   r   Úboolr   )r   s   "r   r   r   E   s   € ÷ lñ l˜4ñ lr    c                ó’   a a€ \        4       o\        ;QJ d     V V3R lR 4       F  '       g   K   R# 	  R# ! V V3R lR 4       4      # )zx--safe-mode / --ignore-user-config (or their env opt-ins): the owner freezes code defaults,
the client reads no profile.c              3  óp   <"  € T F+  p\        SVR 4      ;'       g    SP                  V4      x € K-  	  R# 5i)FN)Úgetattrr(   )Ú.0r*   ÚargsÚenvs   & €€r   Ú	<genexpr>Ú bypass_launch.<locals>.<genexpr>I   s/   øé € ÐkÑGj¸tŒw�t˜T 5Ó)×:Ð:¨S¯W©W°T«]Ô:ÓGjùs   ƒ6œ6TF)r/   r0   )r+   Úany)rE   rF   s   f@r   Úbypass_launchrJ   E   s8   ù€ ô Ó
€Cß‹3ÕkÑGjÓk�3Œ3ÐkŠ3Ðkˆ3ÕkÑGjÓkÓkÐkr    c                óv   € \        V RR4      p\        V\        4      '       d   \        V RR4      '       g   V# R# )zG``-c <name>`` (classic precedence: ignored when ``--resume`` is given).Úcontinue_lastNÚresume)rC   Ú
isinstanceÚstr)rE   r*   s   & r   Úcontinue_titlerP   L   s6   € ä�4˜¨$Ó/€DÜ˜d¤C×(Ò(´¸¸xÈ×1NÒ1Nˆ4ÐXÐTXÐXr    c                ó¨   € \        V RR4      p\        V\        4      '       d"   VP                  4       P	                  4       R8H  # \        V RR4      RJ # )zƒBare ``-c`` or ``--resume latest`` (the keyword wins over a session titled "latest", which
stays reachable by id or ``-c latest``).rM   NÚlatestrL   T)rC   rN   rO   ÚstripÚlower)rE   rM   s   & r   Úwants_latestrU   R   sM   € ô �T˜8 TÓ*€FÜ�&œ#×ÒØ�|‰|‹~×#Ñ#Ó%¨Ñ1Ð1Ü�4˜¨$Ó/°4Ð7Ð7r    c           	     ó´  a€ \          Uu. uF  p\        WR 4      '       g   K  VNK  	  pp\        V RR4      '       d#   \        V 4      '       g   VP                  R4       V'       dƒ   V Uu/ uF.  q\	        V4      ^8X  d   RMRVP                  RR4      ,           bK0  	  upoRP                  V3R lV 4       4      pR	P                  V3R
 lV 4       4      p\        RV RV 24      h\        V RR 4      ;'       g    \        V RR 4      p\        V 4      '       d2   \        V RR 4      '       g   V'       g   \        R\         24      hR # R # R # u upi u upi )NÚcreate_if_missingFr   Ú-ú--Ú_ú, c              3  ó6   <"  € T F  pSV,          x € K  	  R # 5i©Nr   ©rD   r*   Úspells   & €r   rG   Ú#validate_options.<locals>.<genexpr>b   s   øé € Ð>±+¨$˜% Ÿ+š+³+ùs   ƒÚ c              3  óX   <"  € T F  pR SV,           R\         V,           2x € K!  	  R# 5i)z
  z: use N)Ú
_RELOCATEDr^   s   & €r   rG   r`   c   s*   øé € Ð]ÑQ\È˜$˜u T�{˜m¨6´*¸TÕ2BÐ1CÕDÓQ\ùs   ƒ'*z!Unsupported gateway CLI options: z0. No local fallback or policy changes were made.rM   rL   r   z’--safe-mode / --ignore-user-config (or HERMES_SAFE_MODE / HERMES_IGNORE_USER_CONFIG) read no profile default: pass --model explicitly.
  Example: )
Ú_UNSUPPORTEDrC   rP   ÚappendÚlenÚreplaceÚjoinr   rJ   Ú_SAFE_MODE_EXAMPLE)rE   r*   ÚunsupportedÚflagsÚwhereÚresumingr_   s   &     @r   Úvalidate_optionsrn   [   sD  ø€ Ý$0ÓN¡L˜D´G¸DÈ×4M—4�4¡L€KÐNÜˆtÐ(¨%×0Ò0¼È×9MÒ9MØ×ÑÐ@ÔAßá^iÓjÑ^iÐVZœs 4›y¨Aœ~™°4¸4¿<¹<ÈÈSÓ;QÕQÒQÑ^iÑjˆØ—	‘	Ô>±+Ó>Ó>ˆØ—‘Ô]ÑQ\Ó]Ó]ˆÜ Ø/°¨wÐ6fÐglÐfmÐnópð 	pô
 �t˜X tÓ,×TÐT´¸¸oÈtÓ0T€HÜ�T×Ò¤7¨4°¸$×#?Ò#?ÏÜ ð "1ä1CÐ0Dð"Fó Gð 	Gñ IQÑ#?Ñùò Oùò
 ks   ŠE£EÁ,4Ec               ó   € V ^8„  d   QhRR/# )r   r   rO   r   )r   s   "r   r   r   p   s   € ÷ Zñ Z˜ñ Zr    c           	     ó²   € \        \        \        V RR4      ;'       g    \        P                  ! 4       4      P                  4       P                  4       4      # )z[The caller's working directory (``--in`` wins), resolved; filesystem work, so off the loop.Úin_dirN)rO   r   rC   r&   ÚgetcwdÚ
expanduserÚresolve)rE   s   &r   Ú_caller_cwdru   p   s;   € äŒt”G˜D (¨DÓ1×@Ð@´R·Y²Y³[ÓA×LÑLÓN×VÑVÓXÓYÐYr    c                óÖ   € ^ RI Hp \        P                  ! 4       p \        P                  ! V 4       V! 4       \        P                  ! V4       #   \        P                  ! T4       i ; i)zIThe classic CLI's workspace identity for ``-c`` (git root, else the cwd).)Ú_resolve_workspace_key)Úhermes_cli.mainrw   r&   rr   Úchdir)Úcwdrw   Úpreviouss   &  r   Ú_workspace_keyr|   u   s?   € å6Ü�yŠy‹{€HðÜ
�Š�ŒÙ%Ó'ä
�Š�ÕøŒ�Š�Õús   �A ÁA(c              ‹  óò   "  € \        VRR4      p V P                  ! R/ VBV'       d   RV/M/ B G Rj  x€L
 #  L  \         d/   pT'       d!   \        T4      R8X  d   \        \        4      Rhh Rp?ii ; i5i)a  ``session.resume``; ``--api-key`` re-supplies a launch-only key an owner restart revoked.
The owner binds it only to a session launched with that same key (never durable); anything
else is a route override and refused like every other creation flag on resume.Úapi_keyNÚadmission_conflict)zsession.resume)rC   Úrpcr   rO   r   )ÚclientrE   ÚparamsÚkeyÚexcs   &&,  r   Ú_resumer…   €   sq   é € ô �$˜	 4Ó
(€CðØ—Z’ZÑ`°FÐ`×SVÀ	È3Ñ?OÐ\^Ñ`×`Ð`Ñ`øÜô ß”3�s“8Ð3Ô3Ü$Ô%8Ó9¸tÐCØûðüs1   ‚A7‘#; ´9µ; ¸A7¹; »A4Á)A/Á/A4Á4A7c              ƒ  óH  "  € ^ RI Hp \        VRR4      RJ d!   V! 4       ;'       g    / P                  R4      MRp\	        V\
        4      '       d   V'       d    \        WVR7      G Rj  x€L
 # \        P                  ! \        \        V4      4      G Rj  x€L
 p \        W3RR/V'       d   R	V/M/ B G Rj  x€L
 #  LS  \         d    p\        T4      \        9  d   h  Rp?LvRp?ii ; i LV L5  \         d#   p\        T4      R
8w  d   h \        R4      RhRp?ii ; i5i)zªBare ``-c``: this terminal's breadcrumb session when the owner still has it, else (and for
``--resume latest``) the owner's most recent CLI session, this workspace first.)Úread_breadcrumbrL   NTÚ
session_id©rˆ   rR   ÚcliÚ	workspaceÚ	not_foundzqNo previous CLI session to continue. Start a new one with `hermes`, or list sessions with `hermes sessions list`.)Úhermes_cli.terminal_breadcrumbsr‡   rC   r(   rN   rO   r…   r   r   ÚasyncioÚ	to_threadr|   ru   )r�   rE   r‡   Úcrumbr„   r‹   s   &&    r   Ú_resume_latestr‘   �   s  é € õ @Ü;BÀ4ÈÐZ^Ó;_ÐcgÓ;g‰_Ó×$Ð$ "×)Ñ)¨,Ô7Ðmq€EÜ�%œ×Ò§%ð	Ü  ¸%Ô@×@Ð@ô ×'Ò'¬¼ÀDÓ8IÓJ×J€Ið\Ü˜VÑk°%Ðk×Xa¸[È)Ñ<TÐgiÑk×kÐkñ AøÜ!ô 	Ü�3‹xœÔ.Øô /ûð	úñ KákøÜô \Üˆs‹8�{Ô"ØÜ ð "Qó RØW[ð	\ûð\üsˆ   ‚%D"¨1D"ÁC Á+B?Á,C Á/(D"ÂC.ÂD"ÂC2 Â:C0Â;C2 Â>D"Â?C ÃC+ÃC&Ã!D"Ã&C+Ã+D"Ã0C2 Ã2DÃ=DÄDÄD"c              ƒ  ó|  "  € ^ RI Hp \        V RR4      ;'       g    \        V RR4      p\        V RR4      p\        V\        4      '       d   Tp\        \        V RR4      ;'       g    T;'       g    VRJ4      p\        T;'       gs    \        V RR4      ;'       g^    T;'       gT    T;'       dJ    \        P                  P                  4       ;'       d    \        P                  P                  4       '       * 4      p\        4       ;_uu_4       GRj  x€L
 pVP                  R	4      G Rj  x€L
 p\        V 4      p	\        T	;'       d    \        V R
R4      4      p
\        V 4      pV'       d!   \        Wp4      G Rj  x€L
 p\        W4       EM…\        V RR4      '       g   V	'       dC   V
'       g;   \        V RR4      ;'       g    T	p \!        WpVR7      G Rj  x€L
 p\        Y4       EM(VP%                  R/ 4      pVP%                  R. 4      p\        V RR4      ;'       g    V'       d
   RV9   d   RMRpVV9  d   \#        RV: 24      hVP%                  R. 4      p\'        V 4      pVP)                  RR4       V
'       d   V	VR&   VP+                  \-        4       4       VP+                  \/        V4      4       \0        P2                  ! \4        V 4      G Rj  x€L
 pRV9   d   VVR&   M9\        V RR4      '       d   \#        R4      h\7        R\        P8                  R7       \;        \=        V4      \=        V4      ,
          4      pV'       d"   \#        RRP?                  V4      ,           4      hVP                  ! R2R\@        PB                  ! 4       PD                  RV/VB G Rj  x€L
 pVP%                  R 4      ;'       g    / P%                  R!4      ;p'       d5   \        V\        4      '       g   \7        R"V 2\        P8                  R7       \        V\        4      '       g+   \7        R#VR$,          ,           \        P8                  R%R&7       V'       g-   ^ R'I#H$p \0        P2                  ! VVR$,          4      G Rj  x€L
  Ve   VPK                  VR$,          4       V! W|WQ\        V R(R4      R)7      p\        V R*R4      Vn&        \        V\        4      Vn'        T;'       d    V'       * Vn(        \        V RR4      '       g   V	'       g	   V'       dÉ   V'       gÁ   ^ R+I)H*p VP%                  R,. 4       F¤  pVP%                  R-4      p\        V\V        4      ;'       d    VP%                  V4      pVP%                  R.4      R39   g   KU  \        VP%                  R/4      \        4      '       g   K|  V'       d   K†  \7        VR.,           R0VR/,           24       K¦  	  VPY                  W6R17      G Rj  x€L
 uuRRR4      GRj  x€L
  #  ELû ELå EL— EL=  \"         dg   p\	        T4      R8w  d   h  \!        YpTR7      G Rj  x€L 
 p Rp?ELt  \"         d&   p\	        T4      R8w  d   h \#        RT R24      hRp?ii ; iRp?ii ; i EL³ ELè EL LŸ L�  + GRj  x€L 
 '       g   i     R# ; i5i)4r"   )ÚGatewayChatViewÚqueryNÚqÚoneshotÚquietFÚoneshot_exitzruntime.describerW   rM   r‰   rŒ   )ÚtitlezNo session found matching 'z†'. Use 'hermes sessions list' to see available sessions, or pass -c <name> --create-if-missing to start a new session with that title.Úsession_createÚsourcesÚsourcerŠ   z Gateway does not support source r=   r™   rz   rq   z>Gateway does not support --in / caller cwd; update the gatewayz]Warning: this gateway cannot preserve caller cwd; it uses its configured execution directory.©Úfilez+Gateway does not support creation options: r[   Ú
request_idÚinfoÚconfig_warningú	Warning: z	Session: Ústored_session_idT)rž   Úflush)Úwrite_breadcrumbÚ
usage_file)r—   Úemitterr¦   r~   )ÚMODEL_ONLY_DISPLAY_METADATA_KEYÚmessagesÚdisplay_metadataÚroleÚcontentú: )r–   )zsession.create>   ÚuserÚ	assistant)-Úhermes_cli.gateway_chat_viewr“   rC   rN   rO   r@   ÚsysÚstdinÚisattyÚstdoutr   r€   rP   rU   r‘   Úcheck_resume_policyr…   r   r(   Ú_requested_policyÚpopÚupdater+   r>   rŽ   r�   ru   ÚprintÚstderrÚsortedr6   rh   ÚuuidÚuuid4Úhexr�   r¥   Úbind_sessionÚlaunch_api_keyÚ
unattendedÚresume_footerÚagent.context_compressorr¨   r   Úrun)rE   r§   r“   r”   Úoneshot_promptr—   r–   r�   Údescriptionr™   rW   rR   Úsnapshotr*   r„   Úcontractr›   rœ   r=   Úpolicyrz   ÚmissingÚwarningr¥   Úviewr¨   ÚrowÚmetadataÚmergeds   &&                           r   Úrun_gateway_chatrÐ   ¢   sy  é € Ý<Ü�D˜' 4Ó(×DÐD¬G°D¸#¸tÓ,D€EÜ˜T 9¨dÓ3€NÜ�.¤#×&Ò&ØˆÜ”˜˜w¨Ó.×WÐW°.×WÐWÀGÐSWÐDWÓX€Eä�>÷ Pð P¤W¨T°>À5Ó%I÷ Pð PÈU÷ Pð PØ×NÐN¤3§9¡9×#3Ñ#3Ó#5×#MÐ#M¼#¿*¹*×:KÑ:KÓ:MÔNóQ€Gä× × Ô  FØ"ŸJ™JÐ'9Ó:×:ˆÜ˜tÓ$ˆÜ  ×!TÐ!T¬7°4Ð9LÈeÓ+TÓUÐÜ˜dÓ#ˆßÜ+¨FÓ9×9ˆHÜ Ö/Ü�T˜8 T×*Ò*¯u×=NÜ˜4 ¨4Ó0×9Ð9°EˆDðsä!(¨À$Ô!G×G�ô   Ö/à"—‘Ð'7¸Ó<ˆHð —l‘l 9¨bÓ1ˆGÜ˜T 8¨TÓ2×pÐpÇGÐPYÐ]dÔPd±yÐjoˆFØ˜WÔ$Ü(Ð+KÈFÉ:Ð)VÓWÐWØ!Ÿ™ l°BÓ7ˆJÜ& tÓ,ˆFØ�J‰J�x Ô&ß Ø"'��w‘Ø�M‰MÔ*Ó,Ô-Ø�M‰MÔ+¨JÓ7Ô8Ü×)Ò)¬+°tÓ<×<ˆCØ˜
Ô"Ø #��u’Ü˜˜x¨×.Ò.Ü(Ð)iÓjÐjäÐuÔ|÷  }Gñ  }Gõ  HÜœS ›[¬3¨z«?Õ:Ó;ˆGßÜ(Ð)VÐY]×YbÑYbÐcjÓYkÕ)kÓlÐlØ#ŸZšZÑoÄTÇZÂZÃ\×EUÑEUÐoÐ^dÐoÐhnÑo×oˆHØ$ŸL™L¨Ó0×6Ð6°B×;Ñ;Ð<LÓMÐM�ÖMÔWaÐbpÔru×WvÒWvÜ˜	 ' Ð+´#·*±*Õ=Ü˜.¬#×.Ò.Ü�+ Ð)<Õ =Õ=ÄCÇJÁJÐVZÕ[ßÝHÜ×#Ò#Ð$4°hÐ?RÕ6SÓT×TÐTØÒØ× Ñ  Ð*=Õ!>Ô?Ù˜v°uÜ*1°$¸ÀdÓ*KôMˆä% d¨I°tÓ<ˆÔÜ$ ^´SÓ9ˆŒØ$×2Ð2¨U¬ˆÔÜ�D˜( D×)Ò)¯U·fÇeÝPØ—|‘| J°Ö3�àŸ7™7Ð#5Ó6�Ü# H¬dÓ3×eÐe¸¿¹ÐEdÓ8e�Ø—7‘7˜6“?Ð&;Ö;Ä
È3Ï7É7ÐS\ÓK]Ô_b×@cÔ@c×lrÑlrÜ˜S �[˜M¨¨C°	­NÐ+;Ð<Ö=ñ 4ð —X‘X˜e�XÓ5×5÷S !× Õ Ú:ò
 :ò HøÜ%ô 
sÜ�s“8˜{Ô*ØðsÜ%,¨VÀÔ%F×FÐF–HøÜ)ô sÜ˜3“x ;Ô.ØÜ,Ø5°d°Vð <rð rósð sûðsþð
súò6 =ò pò Uñ  6÷S !× × Ó üsª  ‚A&Z<Á)	Z<Á3Z<Â
Z<Â	Z<Â)	Z<Â3%Z<Ã>Z<ÄXÄZ<ÄZÄ0XÄ1ZÅ3ZÆXÆ+ZÆ.ZÆ6ZÇ
ZÇXÇXÇXÇ#AZÈ(ZÈ1B.ZËZË CZÎ-ZÎ.ZÏ
ZÏ$A;ZÑ 'ZÒZÒBZÔZÔZÔ&AZÕ)%ZÖ"ZÖ:Z×7Z×;Z×<Z×?Z<ØZØZ<ØZØZØXØZØ)Z
Ø;YÙY
ÙYÙZÙZ	Ù" Z	ÚZ	ÚZ
Ú
ZÚZÚZÚZÚZÚZ<ÚZ9	Ú%Z(Ú&
Z9	Ú1Z9	Ú3	Z<zTResume retains gateway session policy; creation overrides are unsupported on resume.rz   c                óÜ  € V  Uu. uF2  p\         P                  VRVP                  RR4      ,           R34      NK4  	  ppRP                  \        P                  R V 4       4      4      pRP                  \        P                  R V 4       4      4      p\        V4      ^8H  pV'       d   R	MR
pV'       d   RV R2MRV 2p\        \         RT RV'       d   RMR RV V R2	4      # u upi )zgThe resume refusal naming each flag that differs from the session's frozen launch, and the way forward.rY   rZ   rX   Nr[   c              3  ó*   "  € T F	  w  rVx € K  	  R # 5ir]   r   )rD   ÚflagrZ   s   &  r   rG   Ú&resume_policy_error.<locals>.<genexpr>  s   é € Ð#>¹©W¨T¥D»ùs   ‚z or c              3  ó>   "  € T F  w  rV'       g   K  Vx € K  	  R # 5ir]   r   )rD   rZ   Úcommands   &  r   rG   rÔ     s   é € Ð&RÁ±:°1Ì'§w¢wÃùs   ‚“
ÚitÚthemz	 and use z after resuming to switchz , or start a new session to use Ú ÚdiffersÚdifferz, from this session's launch: resume without Ú.)	Ú_RESUME_FLAG_HINTSr(   rg   rh   r   Úfromkeysrf   r   Ú_RESUME_POLICY_MISMATCH)Úkeysrƒ   Úhintsrk   ÚswitchÚonerØ   Úafters   &       r   Úresume_policy_errorrå      sï   € áZ^Ó_ÑZ^ÐSVÔ×#Ñ# C¨$°·±¸SÀ#Ó1FÕ*FÈÐ)MÖNÑZ^€EÐ_Ø�I‰I”d—m‘mÑ#>¹Ó#>Ó>Ó?€EØ�[‰[œŸ™Ñ&RÁÓ&RÓRÓS€FÜ
ˆe‹*˜‰/€Cß‰4˜F€Dß=Cˆi˜�xÐ8Ñ9ÐKkÐlpÐkqÐIr€EÜÔ!8Ð 9¸¸5¸'À×PSÁ9ÐYaÐBbð cBØBFÀÈÀwÈaðQó Rð Rùò `s   …8C)c                óÞ   € \        V \        4      '       dW   \        V 4      P                  \        \
        34      '       d+   \        RV  2\        P                  R7       \        ^4      RhR# R# )ziA refused resume is a usage error on every classic path (interactive startup's copy): ``Error:``, exit 2.úError: r�   N)
rN   r   rO   Ú
startswithrß   r   r¹   r±   rº   Ú
SystemExit)r„   s   &r   Úexit_on_resume_refusalrê     sT   € ä�#Ô)×*Ò*¬s°3«x×/BÑ/BÔD[Ô]pÐCq×/rÒ/rÜ�˜�uˆo¤C§J¡JÕ/Ü˜‹m Ð%ñ 0sÑ*r    c                ól   € \          Uu/ uF  p\        WR4      ;pf   K  VRJg   K  WbK!  	  up# u upi )z The creation flags the user passed. Identity, not equality: ``--max-turns 0`` (unlimited)
is a value, while ``0 == False`` would drop it to the profile default.NF)Ú_POLICYrC   )rE   rƒ   Úvalues   &  r   Ú_launch_flagsrî     s9   € õ #*Ót¡'˜3´w¸tÈ$Ó7OÐ.O¨eŒJÐafÐnsÐasŒJˆCŠJ¡'ÑtÐtùÒts   ‰1 1¨1c                ó  € \        V 4      p\        VP                  R 4      \        4      '       dQ   VR ,          P	                  R4       Uu. uF*  q"P                  4       '       g   K  VP                  4       NK,  	  upVR &   RV9   dÑ   \        VR,          \        \        34      '       d
   VR,          M	VR,          .pV UUu. uFK  p\        V4      P	                  R4       F*  q"P                  4       '       g   K  VP                  4       NK,  	  KM  	  ppp\        \        P                  V4      4      VR&   VR,          '       g   VP                  R4       \        V RR4      '       d   V P                  VR&   V# u upi u uppi )r   Ú,r   rœ   N)rî   rN   r(   rO   ÚsplitrS   ÚlistÚtupler   rÞ   r·   rC   rœ   )rE   rÉ   r*   ÚrawÚitemÚnamess   &     r   r¶   r¶     s*  € Ü˜4Ó €FÜ�&—*‘*˜ZÓ(¬#×.Ò.Ø7=¸jÕ7I×7OÑ7OÐPSÔ7TÓeÑ7T¨t×XbÑXb×Xdœl˜dŸj™jžlÑ7TÑeˆˆzÑØ�6Ôä",¨V°HÕ-=ÄÄe¸}×"MÒ"Mˆf�XÖÐTZÐ[cÕTdÐSeˆÙ*-Ô_©# $¼#¸d»)¿/¹/È#Ö:N°$×R\ÑR\×R^”�—‘–Ñ:N‘©#ˆÑ_Ü¤§¡¨eÓ 4Ó5ˆˆxÑØ�h×ÔØ�J‰J�xÔ Üˆt�X˜t×$Ò$ØŸ;™;ˆˆxÑØ€Mùò fùó `s   ÁE<Á'E<Ã4FÃ<Fc                óì  € \        V 4      p\        V RR4      '       d>   \        \        V P                  4      P                  4       P                  4       4      VR&   V'       g   R# \        V\        4      '       d   VP                  R4      MRp\        T;'       g    / P                  R4      ;'       g    / 4      pV'       d   RV9   d   VR,          VR&   RV9   d3   VR,          VP                  R4      8X  d   VP                  R4      VR&   M�RV9   d{   VR,          VP                  R4      8w  d^   RV9  dW   ^ RI
Hp ^ R	IHp ^ R
IHp R Uu/ uF  qˆV9   g   K  W‚V,          bK  	  p	pV! W–! V! 4       R,          4      4      R,          VR&   VP!                  4        UU
u. uF(  w  rŠVR8w  g   K  VP                  V4      V
8w  g   K&  VNK*  	  ppp
V'       d   \#        V4      hR# u upi u up
pi )z A resume may repeat the flags the session was created with (scripts re-run one command
line); anything that would CHANGE the frozen route is refused, as before.rq   Nrz   r    Úlaunch_requestr   Úmodel_requested)Úresolve_launch_router2   )Úget_hermes_homer~   zconfig.yaml)r   r   r   r~   )r¶   rC   rO   r   rq   rs   rt   rN   r   r(   Úgateway.session_local_routerú   r8   r3   Úhermes_constantsrû   Úitemsrå   )rE   rÇ   Ú	requestedr    Úfrozenrú   r3   rû   rƒ   rk   rí   rÚ   s   &&          r   rµ   rµ   )  s­  € ô " $Ó'€IÜˆt�X˜t×$Ò$Üœt D§K¡KÓ0×;Ñ;Ó=×EÑEÓGÓHˆ	�%ÑßÙÜ#-¨h¼×#=Ò#=ˆ8�<‰<˜ÔÀ4€DÜ�4—:�:˜2×"Ñ"Ð#3Ó4×:Ð:¸Ó;€Fß�˜”Ø˜U�ˆˆu‰Ø�)Ô 	¨'Õ 2°f·j±jÐARÓ6SÔ SØ#ŸZ™Z¨Ó0ˆ	�'ÒØ	�IÔ	 )¨GÕ"4¸¿
¹
À7Ó8KÔ"KÐPaÐioÔPoåDÝJÝ4Ù0\ÓqÑ0\¨ÐgpÑ`pÔ$� •nÒ$Ñ0\ˆÐqÙ1°%Ð9SÑTcÓTeÐhuÕTuÓ9vÓwÐxõ  Aˆ	�'Ñà%.§_¡_Ô%6ÔhÑ%6‘z�s¸#ÀÑ:JŒsÈvÏzÉzÐZ]ËÐbgÑOg�sˆsÑ%6€GÑhßÜ! 'Ó*Ð*ñ ùò	 rùó is   ÅG+ÅG+Æ%G0Æ5G0ÇG0c               ó   € V ^8„  d   QhRR/# )r   r   ÚNoner   )r   s   "r   r   r   D  s   € ÷ 	6ñ 	6 Dñ 	6r    c                 óŒ   € ^ RI Hp  ^ RIHp V ! R4       V! 4       pV'       d!   \	        RV 2\
        P                  R7       R# R# )z·The chat client is still a terminal on this HERMES_HOME: record it in the process ledger
(purpose ``cli`` is never update-reapable) and warn once when another install shares the home.)Úregister_self)Úshared_profile_warningrŠ   r¢   r�   N)Úhermes_cli.process_identityr  Ú!hermes_cli.shared_profile_warningr  r¹   r±   rº   )r  r  rË   s      r   Ú_register_terminal_processr  D  s7   € õ :ÝHá�%ÔÙ$Ó&€GßÜ�	˜'˜Ð#¬#¯*©*×5ñ r    c               ó   € V ^8„  d   QhRR/# ©r   r   Úintr   )r   s   "r   r   r   P  s   € ÷ =ñ =˜cñ =r    c                ó€  a€ ^ RI Hp Ro\        V RR4      R8X  d%   ^ RIHp T! \        V RR4      ;'       g    RR	7      oV3R
 lp \        V 4       \        V RR4      '       g   \        V RR4      '       d   ^ RIHp V! V 4      # \        4        ^ RI	H
p Sf   V! V 4      '       g   ^ # MO \        P                  ! \        P                  4      ;_uu_ 4        V! V 4      pRRR4       X'       g
   T! R^4      # \        V RR4      pV'       dŽ    VR8X  d%   \        P                   P#                  4       V n        M4\'        VRRR7      ;_uu_ 4       pVP#                  4       V n        RRR4       V P$                  P+                  4       '       g   V! RV R2^4      # \        V RR4      '       gV   \        V RR4      '       gC   \        V RR4      '       g0   \        P                   P-                  4       '       g   \/        R4      h\0        P2                  ! \5        V SR7      4      #   + '       g   i     ELM; i  \         d    Rp EL`i ; i  + '       g   i     Lî; i  \(         d   p	T! RT RT	 2^4      u Rp	?	# Rp	?	ii ; i  \.        \(        \6        T3 d]   p	\9        T	\.        4      '       d   \;        T	4      MRp
T! T
\9        T	\.        4      '       d   R T
9   g   R!T
9   d   ^M^4      u Rp	?	# Rp	?	i\<         d;    \?        R"\        P                  R#7       Se   SPA                  R$R%/^‚R&7      u #  ^‚# i ; i)'r"   )ÚWebSocketExceptionNÚoutput_formatÚtextzstream-json)ÚStreamJsonEmitterr   ra   )r   c                ó‚   <€ \        R V ,           \        P                  R7       Se   SP                  RRRV /VR7      # V# )rç   r�   ÚfailedTÚerror©Ú	exit_code)r¹   r±   rº   Úemit_result)ÚmessageÚcoder§   s   &&€r   r  Ú launch_from_args.<locals>.failedY  sA   ø€ Üˆi˜'Õ!¬¯
©
Õ3ØÒØ×&Ñ&¨°$¸ÀÐ'IÐUYÐ&ÓZÐZØˆr    Ú
list_toolsFÚlist_toolsets)Úprint_tool_listing)Úensure_launch_providerz credentials or agent init failedÚ
query_filerX   z	utf-8-sigrg   )ÚencodingÚerrorszcannot read --query-file r­   z--query-file z	 is emptyr”   r•   r–   z1Noninteractive chat requires --query or --oneshot)r§   z1Gateway connection/read failed; no local fallbackÚUnsupportedrj   z1Detached; accepted work continues at the gateway.r�   ÚinterruptedTr  )!Úwebsockets.exceptionsr  rC   Úhermes_cli.stream_jsonr  rn   Úhermes_cli.gateway_chat_listingr  r  Úhermes_cli.gateway_chat_startupr  Ú
contextlibÚredirect_stdoutr±   rº   ré   r²   Úreadr”   ÚopenÚOSErrorrS   r³   r   rŽ   rÄ   rÐ   ÚTimeoutErrorrN   rO   ÚKeyboardInterruptr¹   r  )rE   r  r  r  r  r  Ú
configuredr  Úhandler„   r  r§   s   &          @r   Úlaunch_from_argsr0  P  sË  ø€ Ý8Ø€GÜˆt�_ fÓ-°Ô>õ 	=Ù#¬'°$¸ÀÓ*F×*LÐ*LÈ"ÔMˆõð.Ü˜ÔÜ�4˜ u×-Ò-´¸¸ÐPU×1VÒ1VåJÙ% dÓ+Ð+Ü"Ô$ÝJØŠ?Ù)¨$×/Ò/Ùð 0ð
#Ü×/Ò/´·
±
×;Õ;Ù!7¸Ó!=�J÷ <÷ ÙÐ@À!ÓDÐDÜ˜T <°Ó6ˆ
ßðRØ Ô$Ü!$§¡§¡Ó!1�D•Jä˜j°;Ày×QÕQÐU[Ø%+§[¡[£]˜œ
÷ Rð —:‘:×#Ñ#×%Ò%Ù ¨j¨\¸ÐCÀQÓGÐGÜ˜˜g t×,Ò,´¸¸cÀ4×0HÒ0HÌGÐTXÐZcÐei×LjÒLjÔnq×nwÑnw×n~Ñn~÷  oAò  oAÜ$Ð%XÓYÐYÜ�{Š{Ô+¨D¸'ÔBÓCÐC÷- <×;Ð;ûäô #Ø"“
ð#ú÷ R×Qûäô RÙÐ 9¸*¸ÀRÈÀuÐMÈqÓQÕQûðRûô ¤¬Ð7IÐJô Kä(¨Ô.@×AÒA”#�c”(ÐGzˆÙ�g¤J¨sÔ4F×$GÒ$GÈ]Ð^eÔMeÐivð  {Bô  jB™qð  IJó  Kõ  	KûÜô ÜÐAÌÏ
É
ÕSØÒØ×&Ñ&¨°tÐ'<ÈÐ&ÓLÒLÚð	úsþ   Á>J Â!J Â*J Â,,H9 Ã	H%Ã!H9 Ã)J Ã1J Ã:J Ä*I  Ä:J Ä;I  ÅIÅ'I  Å/J ÆJ ÆAJ Ç9+J È%H6	È0H9 È4J È6H9 È9I
ÉJ É	I
É
J ÉI	ÉI  ÉJ ÉI  É JÉ+I?É9JÉ:J É?JÊJ ÊL=ÊAK5Ë/L=Ë5L=Ì5L=Ì<L=c               ó   € V ^8„  d   QhRR/# r
  r   )r   s   "r   r   r   �  s   € ÷ ;ñ ; 3ñ ;r    c                ó@   € \        \        P                  ! R/ V B 4      # )Nr   )r0  ÚargparseÚ	Namespace)Úoptionss   &r   Úlaunch_from_kwargsr6  �  s   € ÜœH×.Ò.Ñ9°Ñ9Ó:Ð:r    )r   r	   r
   r   r   r   r   )r   r   r   r   Ú	max_turnsr   Úignore_rulesr~   r   r/   r0   r   ÚcheckpointsÚaccept_hooksÚpass_session_id))r   ÚHERMES_YOLO_MODE)r8  ÚHERMES_IGNORE_RULES)r/   ÚHERMES_SAFE_MODE)r0   ÚHERMES_IGNORE_USER_CONFIG)r:  ÚHERMES_ACCEPT_HOOKSr]   )z
-m/--modelú/model)z
--providerrA  )z
--base-urlrA  )z--reasoningz
/reasoning)z--yoloz/yolo)z-t/--toolsetsN)z-s/--skillsN)z-v/--verboseN)z--inN),Ú__doc__Ú
__future__r   r3  rŽ   r'  r&   Úpathlibr   r±   r¼   Úhermes_cli.gateway_clientr   r   r   Úhermes_cli.gateway_connectionr   rd   rì   rc   ri   r%   r+   r9   r>   rJ   rP   rU   rn   ru   r|   r…   r‘   rÐ   rß   rÝ   rå   rê   rî   r¶   rµ   r  r0  r6  r   r    r   Ú<module>rG     s7  ðÙ RÝ "ã Û Û Û 	Ý Û 
Û ç ^Ñ ^Ý 9ð€ð
r€ð ÐDØÐ#ØÐ	ØÐQØÐ=ØÐBØÐ7Ø)Ð+Lð	€
ð rÐ ð>Ð õ
gõ
	TõTõlòYò8òGõ*Zò
ò
ò\ô*S6ðl qÐ àÐ7¸ÐE]Ø Ð":¸KÐIfØÐ1°:Ð?VØÐ 5°yÐBXÐZ_ÐaoðqÐ ò	Rò&òuòò +õ6	6õ=÷@;r    