+
    jHàj©‰  ã                   ó¨   € R t ^ RIt^ RIHt ^ RIt^ RIt^ RIt^ RIHt ]P                  ! ]
4      t^PtR tRt]! 0 R
m4      t ! R R4      tR tR	 tR# )zFClassic terminal presentation of authority events and fenced controls.N)Úsuppress)ÚGatewayClientErrorc                ó(  € ^ RI Hp \        V \        4      '       g   R# RP	                  RP	                  R V! V 4       4       4      P                  4       4      p\        V4      \        8”  d   VR\        ^,
           R,           pV'       d   RV 2# R# )zôOne terminal-safe line of a pending admission's prompt: escape sequences removed, every
other non-printable (C0/C1, bidi and zero-width format chars, newlines) folded to a space,
capped at ``_PREVIEW_CHARS``. Empty when the row carries no text.)Ú
strip_ansiÚ Ú c              3   óT   "  € T F  qP                  4       '       d   TMR x € K   	  R# 5i)r   N)Úisprintable)Ú.0Úchs   & ÚA/home/ubuntu/.hermes/hermes-agent/hermes_cli/gateway_chat_view.pyÚ	<genexpr>Ú#_pending_preview.<locals>.<genexpr>   s!   é € ÐWÑFVÀ§.¡.×"2Ò"2™B¸Ô;ÓFVùs   ‚&(Nu   â€¦ú: )Útools.ansi_stripr   Ú
isinstanceÚstrÚjoinÚsplitÚlenÚ_PREVIEW_CHARS)Útextr   Úlines   &  r   Ú_pending_previewr      sy   € õ ,Ü�dœC× Ò ÙØ�8‰8�B—G‘GÑWÁjÐQUÔFVÓWÓW×]Ñ]Ó_Ó`€DÜ
ˆ4ƒy”>Ô!ØÐ'”^ aÕ'Ð(¨5Õ0ˆßˆR�ˆvˆ;Ð& BÐ&ó    ztExecution outcome is unknown. Resume this session to inspect the lost turn and /discard it; do not resend the input.c                   óú   a € ] tR t^&t o RRRRRR/R ltR tR tR	 tR
 tR t	R t
R tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR t]R  4       tR! t R" t!R&R#R/R$ llt"R%t#V t$R# )'ÚGatewayChatViewÚquietFÚemitterNÚ
usage_filec               óh  € WPn         Wn        VR ,          V n        VP                  R^ 4      V n        VP                  R. 4       Uu/ uF  qfR,          VbK  	  upV n        VP                  R. 4      V n        \        VP                  R4      ;'       g    / P                  R4      ;'       g    R4      P                  R4      R,          V n	        W@n
        T;'       g    VR	JT n        R
V n        R
V n        R
V n        R	V n        R	V n        . V n        / V n        / V n        / / ^ \(        P*                  ! 4       3w  V n        V n        V n        V n        \(        P4                  ! 4       V n        R	V n        \(        P4                  ! 4       V n        ^ RIHp V! 4       V n         R	V n!        RV n"        R	# u upi )Ústored_session_idÚexecution_generationÚpromptsÚ	prompt_idÚpendingÚinfoÚmodelÚHermesÚ/NF)ÚPreparedMutationsr   éÿÿÿÿ)#r   ÚclientÚ
session_idÚgetÚ
generationr#   r%   r   r   r'   r   r   ÚfiniteÚ
unattendedÚresume_footerÚlaunch_api_keyÚfinite_admissionÚ_finite_eventsÚstreamsÚcompletionsÚasyncioÚLockÚcutÚmineÚgapsÚ
_attachingÚEventÚchangedÚfailureÚfailedÚhermes_cli.gateway_mutationsr*   Ú	mutationsÚ	_composerÚprefill)Úselfr,   Úsnapshotr   r   r   Úpr*   s   &&&$$$  r   Ú__init__ÚGatewayChatView.__init__'   sm  € Ø$ŒØŒØ"Ð#6Õ7ˆŒØ"Ÿ,™,Ð'=¸qÓAˆŒØ3;·<±<À	È2Ô3NÓOÑ3N¨a˜+�¨Ò)Ñ3NÑOˆŒØ—|‘| I¨rÓ2ˆŒÜ˜(Ÿ,™, vÓ.×4Ð4°"×9Ñ9¸'ÓB×NÐNÀhÓO×UÑUÐVYÓZÐ[]Õ^ˆŒ
ð ŒØ×1Ð1˜g¨TÐ1ˆŒ
ØˆŒØˆŒØ"ˆÔØ"ˆÔØ $ˆÔØ ˆÔØˆŒØˆÔà:<¸bÀ!ÄWÇ\Â\Ã^Ð:SÑ7ˆŒ�$”)˜TœY¨¬Ü—}’}“ˆŒØˆŒô —m’m“oˆŒÝBÙ*Ó,ˆŒð ˆŒàˆŽùò9 Ps   ÁF/c                óp   € V P                    Uu. uF  qR ,          R8X  g   K  VR,          NK  	  up# u upi )ÚstatusÚunknownÚadmission_id)r%   )rF   Úrows   & r   Úunknown_admissionsÚ"GatewayChatView.unknown_admissionsJ   s3   € Ø/3¯|ª|ÓZ©|¨À8½}ÐPYÑ?YÔ#��N×#Ð#©|ÑZÐZùÒZs   �3£3c           	     óÐ  € \        V P                  4       4      pV'       d   \        R \        P                  R7       V P
                   F™  pVR,          p\        VP                  R4      4      pVR,          R8X  d&   \        RV V RV 2\        P                  R7       KY  VR,          R8X  g   Ki  V'       d   R	MR
p\        RV RV RV 2\        P                  R7       K›  	  R# )z€Execution outcome unknown after restart. Discard acknowledges the lost turn without replaying it; queued work may then continue.©ÚfilerN   r   rL   rM   zUnknown admission: z

/discard Úqueuedzwaiting behind unknown workzwaiting to runzQueued admission: ú (Ú)N)ÚboolrP   ÚprintÚsysÚstderrr%   r   r.   )rF   rM   rO   Ú	admissionÚpreviewÚcontexts   &     r   Úshow_pendingÚGatewayChatView.show_pendingM   sÃ   € Ü�t×.Ñ.Ó0Ó1ˆßÜð IÜORÏzÉzõ[à—<”<ˆCØ˜NÕ+ˆIä& s§w¡w¨v£Ó7ˆGØ�8�} 	Ô)ÜÐ+¨I¨;°w°i¸{È9È+ÐVÔ]`×]gÑ]g×hØ�X• (Ö*ß;BÑ7ÐHX�ÜÐ*¨9¨+°R¸°yÀÀ'ÀÐKÔRU×R\ÑR\×]ó  r   c                óä  € \        R VP                  R4      ;'       g    VP                  R4      ;'       g    R 2\        P                  R7       VP                  R4      '       d#   \        VR,          \        P                  R7       VR,          R8X  d   RMR	p\        T R
VR,           RRP	                  VP                  R. 4      4      ;'       g    R R2\        P                  R7       R# )Ú
ÚdescriptionÚquestionzApproval requiredrS   ÚcommandÚkindÚapprovalú/approveú/answerr   r$   z <Ú|ÚchoicesÚanswerÚ>N)rY   r.   rZ   r[   r   )rF   Úpromptre   s   && r   Úshow_promptÚGatewayChatView.show_prompt\   s¼   € Ü��6—:‘:˜mÓ,×]Ð]°·
±
¸:Ó0F×]Ð]ÐJ]Ð^Ð_Ôfi×fpÑfpÕqØ�:‰:�i× Ò Ü�&˜Õ#¬#¯*©*Õ5Ø & v¥°*Ô <‘*À)ˆÜ��	˜˜6 +Õ.Ð/¨r°#·(±(¸6¿:¹:ÀiÐQSÓ;TÓ2U×2aÐ2aÐYaÐ1bÐbcÐdÔkn×kuÑku×vr   c              ƒ  ó  "  €  V P                   P                  P                  4       G Rj  x€L
 p\        V\        4      '       d   V P                  V4       R# VP                  R/ 4      pVP                  R4      V P                  8w  d   KŠ  VP                  R4      VP                  R/ 4      rCVP                  RV P                  4      V n        VR8X  d0   V P                  4       G Rj  x€L
  V P                  '       d   R# EK  VP                  R4      ;'       g    VP                  R4      pV P                  '       d;   V\        9   d0   V P                  W5V4       V P                  P                  4        EKy  V P                  '       dJ   V'       dB   V P                  f!   V P                   P#                  W5V34       EKÁ  WPP                  8w  d   EKÔ  V P                  W5V4       V P                  P                  4        EK   ELÛ EL5i)	TNÚparamsr-   ÚtypeÚpayloadr"   zsession.replay_gaprN   )r,   Úeventsr.   r   Ú	ExceptionÚ_failr-   r/   Ú	_reattachr@   r0   Ú_BLOCKING_CONTROL_EVENTSÚ_dispatch_eventr?   Úsetr4   r5   Úappend)rF   Úeventrr   rf   rt   r\   s   &     r   ÚrenderÚGatewayChatView.renderc   s„  é € ØØŸ+™+×,Ñ,×0Ñ0Ó2×2ˆEÜ˜%¤×+Ò+Ø—
‘
˜5Ô!ÙØ—Y‘Y˜x¨Ó,ˆFØ�z‰z˜,Ó'¨4¯?©?Ô:ÙØ"ŸJ™J vÓ.°·
±
¸9ÀbÓ0I�'Ø$Ÿj™jÐ)?ÀÇÁÓQˆDŒOØÐ+Ô+Ø—n‘nÓ&×&Ð&Ø—<—<�<ÙÚØŸ
™
 >Ó2×QÐQ°g·k±kÀ.Ó6QˆIØ�{�{ˆ{˜tÔ'?Ô?ð ×$Ñ$ T°gÔ>Ø—‘× Ñ Ô"ÚØ�{�{ˆ{ŸyØ×(Ñ(Ò0ð ×'Ñ'×.Ñ.°ÀÐ/IÔJÚØ× 5Ñ 5Ô5ÚØ× Ñ  °'Ô:Ø�L‰L×Ñ×ò? 3ò 'ùsB   ‚)H«H¬B>HÃ*H	Ã+HÄHÄ#HÅAHÆHÆA1HÈ	Hc                óz   € Wn         V P                  P                  4        V P                  P                  4        R # ©N)r@   rA   r{   r?   )rF   Úerrors   &&r   rw   ÚGatewayChatView._fail†   s%   € ØŒØ�‰�‰ÔØ�‰×ÑÖr   c              ƒ  ó´  "  € V P                   pV P                  ;_uu_4       GRj  x€L
  V ;P                  ^,          un         V P                  P	                  RVR7      G Rj  x€L
 pT P                   T8w  d    RRR4      GRj  x€L
  R# TP                  RT P                  4      T n	        TP                  RT P                  4      TP                  R. 4       Uu/ uF  q3R,          TbK  	  upuT n
        pT P                  '       g0   TP                  4       T P                  P                  4       ,
          MR	 F  pT P                  YE,          4       K  	  Y@n        \        P!                  . T P"                  OT P$                  O4       F  pT P'                  Ya4      G Rj  x€L
  K  	  T P(                  P+                  4        RRR4      GRj  x€L
  R#  EL´ ELx  \
         dA    T P                   T8X  d   T P                  \        R4      4        RRR4      GRj  x€L 
  R# i ; i EL§u upi  L� Ld  + GRj  x€L 
 '       g   i     R# ; i5i)
z·The owner retired this view's subscription; its turns run on. Re-attach (a refusal fails the
view as before), show the controls the hole hid, and recover the turns in admission order.Núsession.resume©r-   Úsession_replay_gapr"   r%   r#   r$   © )r-   r=   r<   r,   Úrpcrv   rw   r   r.   r/   r%   r0   Úkeysr#   ro   ÚdictÚfromkeysr6   r;   Ú_recoverr?   r{   )rF   ÚsidrG   rH   r#   r$   r\   s   &      r   rx   ÚGatewayChatView._reattach‹   sÎ  é € ð �o‰oˆØ—?—?—?“?Ø�IŠI˜�N�IðØ!%§¡§¡Ð1AÈc Ó!R×R�ð
 �‰ #Ô%Ø÷ #—?‘?ð 'Ÿl™lÐ+AÀ4Ç?Á?ÓSˆDŒOØ$,§L¡L°¸D¿L¹LÓ$IÐgo×gsÑgsÐt}ð  @Bô  hCó  LDñ  hCÐbcÈkÍNÐ\]ÒL]ñ  hCñ  LDÐ!ˆDŒL˜'ØIMÏÏÈ˜WŸ\™\›^¨d¯l©l×.?Ñ.?Ó.AÖAÐZ\Ò\�	Ø× Ñ  Õ!3Ö4ñ ]à"ŒLÜ!Ÿ]™]Ð+F¨T¯\©\Ð+F¸D¿I¹IÐ+FÖG�	Ø—m‘m IÓ3×3Ò3ñ Hà�L‰L×ÑÔ÷# #—?”?ò SøÜô Ø—?‘? cÔ)Ø—J‘JÔ1Ð2FÓGÔHØ÷ #—?’?ðúò	 #ùò LDñ
 4÷! #—?—?“?üsÐ   ‚%I§G¨I«H;Á G!Á&GÁ'G!Á+H;Á=IÂH/Â	IÂAH;ÃH2
Ã1B5H;Æ&H7
Æ'"H;Ç	IÇH9ÇIÇG!Ç!6H,ÈH;ÈIÈ#H&È$IÈ+H,È,H;È/IÈ2H;È9IÈ;I	ÉIÉ
I	ÉI	É	Ic              ƒ  óÌ  a"  € ^ RI HpHp V! V P                  S4      pVR8X  dF   SV P                  9   d5   V P                  SRRR\        /4       V P                  P                  4        S'       d   VR9   g   SV P                  9   d   R# V P                  P                  SV P                  P                  SR4      4       V'       gU   \        ;QJ d)    V3R lV P                   4       F  '       g   K   RM	  R	M! V3R lV P                   4       4      '       d   R#  V P                   P#                  R
VSRR7      G Rj  x€L
 pV P&                  V8X  d   SV P                  9  d	   V! V4      MR	pV'       d™   RR/P)                  VP)                  R4      VP)                  R4      4      pT P                  SRTRTRVP)                  R4      ;'       g    / P)                  R4      ;'       g    R/4       V P                  P                  4        R# Vf1   V P*                  '       d   V P-                  \/        R4      4       R# R# R#  EL  \$         d	    RR/p ELi ; i5i)z±Queued: it lost nothing. Running: cut until its live completion. Unknown: its completion was the
one lost, so an own turn settles as unknown now. Unlisted: it ended in the hole.)Úpending_statusÚsettledrM   Úoutcomer   Nr   c              3   óL   <"  € T F  w  rq1R 8H  ;'       d    VS8H  x € K  	  R# 5i)úmessage.completeNrˆ   )r
   rf   ÚownÚ_r\   s   &   €r   r   Ú+GatewayChatView._recover.<locals>.<genexpr>­   s,   øé € ÐqÑ]pÉ\ÈTÐXYÐ!3Ñ3×HÐH¸¸yÑ8HÔHÓ]pùs   ƒ$–$TFúprompt.receipt©r-   rN   Úinclude_resultrL   ÚterminalÚinterruptedÚ	cancelledÚ_receiptÚresultÚfinal_responser‡   )rU   rM   )Úhermes_cli.gateway_replay_gapr‘   r’   r%   r;   Ú	_completeÚ_UNKNOWN_OUTCOMEr?   r{   r7   r:   Ú
setdefaultr6   ÚpopÚanyr5   r,   r‰   rv   r-   r.   r0   rw   r   )	rF   r\   rŽ   r‘   r’   rL   ÚreceiptÚverdictr“   s	   &f&      r   r�   ÚGatewayChatView._recover¢   sâ  øé € ÷ 	JÙ §¡¨iÓ8ˆØ�YÔ 9°·	±	Ô#9Ø�N‰N˜9 y°)¸VÔEUÐ&VÔWØ�L‰L×ÑÔß˜FÐ&;Ô;¸yÈD×L\ÑL\Ô?\ÙØ�‰×Ñ˜I t§|¡|×'7Ñ'7¸	À2Ó'FÔGß—S“SÔqÐ]a×]pÒ]pÓq—S—S’SÔqÐ]a×]pÒ]pÓq×qÒqÙð	-Ø ŸK™KŸO™OÐ,<ÈÐ[dÐuy˜OÓz×zˆGð '+§o¡o¸Ô&<ÀÐRV×RbÑRbÔAb‘'˜'Ô"ÐhmˆßØ$ kÐ2×6Ñ6°w·{±{À9Ó7MÈwÏ{É{Ð[dÓOeÓfˆGØ�N‰N˜9 y°'¸:ÀwØ'-°·±¸HÓ0E×0KÐ0KÈ×/PÑ/PÐQaÓ/b×/hÐ/hÐfhð'jô kà�L‰L×ÑÖØŠ_ §§ Ø�J‰JÔ)Ð*>Ó?Ö@ñ "-‰_ò {øÜô 	-Ø Ð,‹Gð	-üst   ƒA/I$Á3AI$Ã
I$ÃI$Ã7'I$ÄI$Ä""I ÅIÅI Å	3I$Å=AI$ÇI$Ç19I$È+ I$ÉI ÉI!ÉI$É I!É!I$c              ƒ  ó¤  "  € V P                   Ruq0n         \        P                  ! VP                  ! V3/ V'       d   RV/M/ B 4      p\        P                  ! V P                  P                  4       4      p \        P
                  ! WE0\        P                  R7      G Rj  x€L
  VP                  4        VP                  4       '       d   VP                  4       # VP                  4        \        \        P                  4      ;_uu_ 4        VG Rj  x€L
  RRR4       R#  L€  TP                  4        i ; i L%  + '       g   i     R# ; i5i)zóThe next composer line, or ``""`` once the event stream failed first (``self.failure``
is then set). The pending read is cancelled (prompt_toolkit restores the terminal) so the
caller reports the unknown outcome without waiting for a keypress.r   Údefault)Úreturn_whenN)rE   r8   Úensure_futureÚprompt_asyncrA   ÚwaitÚFIRST_COMPLETEDÚcancelÚdoner    r   ÚCancelledError)rF   rn   Úsymbolr¬   ÚreaderrA   s   &&&   r   Ú
_read_lineÚGatewayChatView._read_line¼   sì   é € ð !%§¡¨bÐˆ”Ü×&Ò& v×':Ò':¸6Ñ'o×^eÀyÐRYÑFZÐkmÑ'oÓpˆÜ×&Ò& t§{¡{×'7Ñ'7Ó'9Ó:ˆð	Ü—,’, Ð/¼W×=TÑ=TÔU×UÐUà�M‰MŒOØ�;‰;�=Š=Ø—=‘=“?Ð"Ø�‰ŒÜ”g×,Ñ,×-Õ-Ø�LˆL÷ .áñ Vøà�M‰M�Oúñ
 ÷ .Ö-áüsa   ‚A5EÁ8*D% Â"D#Â#D% Â'%EÃAEÄD<ÄD:ÄD<Ä
EÄ#D% Ä%D7Ä7EÄ:D<Ä<E	Å	Ec                óT  € R V P                   RV P                  RV P                  RV P                  RV P                  RV P                  RV P
                  RV P
                  RV P                  R	V P                  R
V P                  /P                  V4      pV'       d   V! W#4       R# R# )zmessage.deltar•   z
tool.startztool.completeúapproval.requestúclarify.requestúapproval.settledúclarify.settledúsession.infozstatus.updateznotification.showN)	Ú_deltar£   Ú_tool_startÚ_tool_completeÚ_requestÚ_settledÚ_session_infoÚ_noticer.   )rF   rf   r\   rt   Úhandlers   &&&& r   rz   ÚGatewayChatView._dispatch_eventÎ   s‘   € à˜TŸ[™[Ð*<¸d¿n¹nØ˜$×*Ñ*¨O¸T×=PÑ=PØ §¡Ð/@À$Ç-Á-Ø §¡Ð/@À$Ç-Á-Ø˜D×.Ñ.Ø˜TŸ\™\Ð+>ÀÇÁð
÷ ‰#ˆd‹)ð 	÷ Ù�IÖ'ñ r   c                óŠ   € VP                  R V P                  4      V n        VP                  RV P                  4      V n        R# )r%   r"   N)r.   r%   r/   ©rF   r\   rt   s   &&&r   rÄ   ÚGatewayChatView._session_infoÚ   s/   € Ø—{‘{ 9¨d¯l©lÓ;ˆŒØ!Ÿ+™+Ð&<¸d¿o¹oÓNˆŽr   c                ó  € V P                   '       gw   \        VP                  R 4      ;'       g    R4      P                  4       '       d=   \	        \        VR ,          4      P                  4       \
        P                  RR7       R# R# R# )r   r   T©rT   ÚflushN)r   r   r.   ÚstriprY   rZ   r[   rÉ   s   &&&r   rÅ   ÚGatewayChatView._noticeÞ   sY   € à�z�zˆzœc '§+¡+¨fÓ"5×";Ð";¸Ó<×BÑB×DÒDÜ”#�g˜f•oÓ&×,Ñ,Ó.´S·Z±ZÀt×Lñ E‰zr   c           	     óÆ  € WP                   9   d   R V P                   V&   V P                  P                  VR4      '       d   V P                  '       g   \	        RR7       V P
                  eZ   V P
                  P                  RVP                  R4      RVP                  R4      VP                  R4      ;'       g    RR7       R# V P                  '       g‰   ^ R	IH	pH
p VP                  R4      ;'       g    VP                  R
4      ;'       g    RpT! YRP                  R4      ;'       g    / ^ R7      p\	        V! V4       RT V'       d   RV 2MR  2RR7       R# R# )r   NT©rÍ   ztool.startedÚ	tool_nameÚargsÚtool_call_id)rÔ   )Úbuild_tool_previewÚget_tool_emojiÚnameÚtool)Úmax_lenr   r   )r:   r6   r¦   r   rY   r   Úon_tool_progressr.   Úagent.displayrÕ   rÖ   )rF   r\   rt   rÕ   rÖ   r×   r]   s   &&&    r   rÀ   ÚGatewayChatView._tool_startã   s  € ð Ÿ™Ô Ø"$ˆD�H‰H�YÑØ�<‰<×Ñ˜I t×,Ò,°T·Z·Z°ZÜ˜ÕØ�<‰<Ò#Ø�L‰L×)Ñ)¨.¸'¿+¹+ÀkÓ:RÐTXÐZa×ZeÑZeÐflÓZmØ7>·{±{À>Ó7R×7ZÐ7ZÐVZð *ö \à——�çHØ—;‘;˜{Ó+×LÐL¨w¯{©{¸6Ó/B×LÐLÀfˆDÙ(¨¯{©{¸6Ó/B×/HÐ/HÀbÐRSÔTˆGÜ‘^ DÓ)Ð*¨!¨D¨6ÇG°B°w°i±.ÐQSÐ1TÐUÐ]a×bñ r   c                ó  € V P                   e{   V P                   P                  RVP                  R4      R VP                  R4      VP                  R4      ;'       g    R VP                  R4      VP                  RR4      R7       R # R # )	Nztool.completedrÒ   rÓ   rÔ   r    Úis_errorF)rÔ   r    rÞ   )r   rÚ   r.   rÉ   s   &&&r   rÁ   ÚGatewayChatView._tool_completeô   s|   € Ø�<‰<Ò#Ø�L‰L×)Ñ)Ð*:¸G¿K¹KÈÓ<TÐVZÐ\c×\gÑ\gÐhnÓ\oØ7>·{±{À>Ó7R×7ZÐ7ZÐVZØ18·±¸XÓ1FÐQX×Q\ÑQ\Ð]gÐinÓQoð *ö qñ $r   c                óè  € VP                  R 4      ;'       g5    VP                  R4      ;'       g    VP                  R4      ;'       g    Rp\        V\        4      '       d   WP                  9   d   R# V P                  e   V P                  P                  V4       R# V P                  '       g@   V P                  P                  VR4      V,           V P                  V&   \        VRR7       R# R# )r   ÚdeltaÚcontentr   N)Úend)	r.   r   r   r:   r   Úon_text_deltar   r6   rY   )rF   r\   rt   r   s   &&& r   r¿   ÚGatewayChatView._deltaú   s®   € Ø�{‰{˜6Ó"×ZÐZ g§k¡k°'Ó&:×ZÐZ¸g¿k¹kÈ)Ó>T×ZÐZÐXZˆÜ˜$¤×$Ò$¨	·X±XÔ(=ÙØ�<‰<Ò#Ø�L‰L×&Ñ& tÖ,Ø——�Ø&*§l¡l×&6Ñ&6°yÀ"Ó&EÈÕ&LˆD�L‰L˜Ñ#ô �$˜B×ñ r   c                óä  € VP                  R 4      ;'       g    VP                  R4      ;'       g    RpV P                  P                  VR4      V P                  P                  VR4      rTV P                  P                  VR4       Ve=   ^ RIHp / VCRR/CpV P                  '       g   V'       d   \        V! WS4      RR7       M�V P                  '       gŒ   V'       g   \        VRR7       MuVP                  V4      '       d   \        V\        V4      R RR7       MDVP                  4       VP                  4       8X  d   \        RR7       M\        RV,           RR7       VP                  R	4      pVP                  R
4      R8X  dW   \        V\        4      '       dA   VP                  4       '       d+   \        VP                  4       \        P                  RR7       W P                   V&   R# )r   râ   r   N)Ú
owed_replyÚ
replay_gapTrÑ   rb   ÚwarningrL   r�   rÌ   )r.   r6   r¦   r:   r;   r¢   rç   r   rY   Ú
startswithr   rÎ   r   r   rZ   r[   r7   )rF   r\   rt   r   Ústreamedr:   rç   ré   s   &&&     r   r£   ÚGatewayChatView._complete  s^  € Ø�{‰{˜6Ó"×BÐB g§k¡k°)Ó&<×BÐBÀˆØŸ™×(Ñ(¨°BÓ7¸¿¹¿¹ÀiÐQUÓ9V�#Ø�	‰	�‰�i Ô&ØŠ?Ý@Ø5˜Ð5 ,°Ñ5ˆGØ—:—:�:§$Ü‘j Ó+°4Õ8øØ——�÷ Ü�d $Ö'Ø—‘ ×*Ò*Ü�dœ3˜x›=˜>Ð*°$Ö7Ø—‘“ §¡Ó!1Ô1Ü˜DÖ!ä�d˜T•k¨Õ.ð —+‘+˜iÓ(ˆØ�;‰;�xÓ  MÔ1´jÀÌ#×6NÒ6NÐSZ×S`ÑS`×SbÒSbÜ�'—-‘-“/¬¯
©
¸$Õ?Ø&-×Ñ˜Ó#r   c                óz   € W P                   VR ,          &   V P                  '       g   V P                  V4       R# R# ©r$   N)r#   r0   ro   rÉ   s   &&&r   rÂ   ÚGatewayChatView._request#  s1   € Ø-4�‰�W˜[Õ)Ñ*ð �{�{ˆ{Ø×Ñ˜WÖ%ñ r   c                óL   € V P                   P                  VR ,          R4       R# rî   )r#   r¦   rÉ   s   &&&r   rÃ   ÚGatewayChatView._settled*  s   € Ø�‰×Ñ˜ Õ-¨tÖ4r   c           	   ƒ  ó(  "  € V P                   P                  V P                  4       V P                  V P                  r2V P                  P
                  ! RRV P                  R\        P                  ! 4       P                  RV/V P                  '       d   RR/M/ BV P                  '       d   V P                  '       d   RR/M/ B G Rj  x€L
 pT;'       g    / P                  R4      RJ d.   V P                  '       g   ^ R	IHp \        V! R
4      RR7       V# T;'       g    / P                  R4      pV'       d¬   W`P                   9  dœ   V P                  V8X  d‹   RV P"                  V&   V P                  V8w  dk   V P$                  ;_uu_4       GRj  x€L
  W`P&                  9  d,   V P(                  '       g   V P+                  Wb4      G Rj  x€L
  RRR4      GRj  x€L
  V# V#  EL! LV L L  + GRj  x€L 
 '       g   i     T# ; i5i)úprompt.submitr-   Úinput_idr   r0   Tr1   NÚvoice_stopped©Útzcli.voice.stop_phrase_typedrÑ   rN   )ró   )rC   Úretirer-   r<   r,   r‰   ÚuuidÚuuid4Úhexr0   r1   r.   r   Ú
agent.i18nr÷   rY   r7   r;   r=   r:   r@   r�   )rF   r   rŽ   r<   r¨   r÷   r\   s   &&     r   ÚsubmitÚGatewayChatView.submit-  s˜  é € Ø�‰×Ñ˜dŸo™oÔ.Ø—O‘O T§Y¡YˆTØŸ™Ÿšñ mÀDÇOÁOð mÜ15·²³×1AÑ1AðmØHLðmà?C¿{¿{¸{¨H°dÑ+;ÐPRðmð DHÇ;Ç;À;ÐSW×Sb×SbÐSb¨L¸$Ñ+?Ðhjñm÷ mˆð �MˆM�r×Ñ˜Ó/°4Ó7ð —:—:�:Ý(Ü‘aÐ5Ó6¸dÕCØˆNØ—]�] ×'Ñ'¨Ó7ˆ	ß˜×*:Ñ*:Ô:¸t¿¹ÐRUÔ?UØ#'ˆD�I‰I�iÑ Ø�y‰y˜DÔ ØŸ?Ÿ?Ÿ?›?Ø ¯©Ô0¸¿¿¸Ø"Ÿm™m¨IÓ;×;Ð;÷ +Ÿ?ð ˆˆwˆò%mñ +á;÷ +Ÿ?Ÿ?™?ð ˆüs�   ‚B+HÂ.HÃ HÃG,ÃHÃ'HÄ#HÄ%HÄ?AHÆG/ÆHÆ"G5Æ?G5ÇG1ÇG5ÇHÇ#G3Ç$	HÇ/HÇ1G5Ç3HÇ5H	Ç;G>Ç<
H	ÈH	È		Hc              ƒ  óJ
  a"  € VP                  R 4      w  r#oVR89   d   R# VR8X  d=   V P                  P                  RV P                  V P                  R7      G Rj  x€L
  R# VR99   d®   SP                  R 4      w  rCpV P
                  P                  V4      pVR8X  d   RMR	pV'       d   VR
,          V8w  d   \        R4      hV P                  P                  ! VR,           3RV P                  RVR,          RV/VR8X  d   RV/MRV/B G Rj  x€L
  R# VR8X  d¦   V P                  P                  RV P                  R7      G Rj  x€L
 p\        V3R lVP                  R. 4       4       R4      p	V	f   \        R4      hV P                  P                  RV P                  V	R,          V	R,          R7      G Rj  x€L
  R# VR:9   EdV   ^ RI	H
p
 V
! VSP                  4       4      w  r¼V P                  pVR8X  d   V P                  e   V P                  MRpV P                  P                  V P                  WÛWÎR7      G Rj  x€L
 pVP                  R4      R8X  d   R# VP                  R4      R 8X  d@   V P                  P!                  WÛV4       \#        R!P%                  VR",          4      4       R# VP                  R4      R#8X  dŽ   V P                  P!                  WÛV4       VP                  R$4      ;'       g    / p\#        R!P%                  \'        RVP                  R%4      VP                  R&4      VP                  R'4      34      4      4       R# VP                  R(V4      pT P)                  V P                  P                  RVR7      G Rj  x€L
 4      G Rj  x€L
  V P                  P!                  WÛV4       VR8X  dE   VP                  R4      '       d.   \+        VR,          4      P-                  R)4      R;,          V n        \#        V R*V 24       R# VR+8X  d¡   SP                  4       P1                  4       pVR<9  d   \        R.4      hV P                  P                  ! R=RV P                  R/R0/V'       d   R1VR,8X  d   R2MR3/M/ B G Rj  x€L
 p\#        R4VP                  R14      R28X  d   R,MR- R524       R# ^ R6IHp VR78X  d   \#        VP7                  4       4       R# VP9                  WS4      G Rj  x€L
 #  EL­ ELü ELÇ ELV ELÑ EL‚ ELy L„ L5i)>r   Fz/stopzsession.interrupt)r-   r"   NTrh   rg   Úclarifyrf   z.No matching pending control; resume to refreshz.respondr-   r"   r$   Úchoicerl   z/discardr…   r†   c              3   ó„   <"  € T F5  pVR ,          SP                  4       8X  g   K!  VR,          R8X  g   K1  Vx € K7  	  R# 5i)rN   rL   rM   N)rÎ   )r
   rO   Úrests   & €r   r   Ú*GatewayChatView.command.<locals>.<genexpr>Z  s@   øé € ð `Ñ(C Ø Õ/°4·:±:³<Ñ?ô ØDGÈÅMÐU^ÑD^÷ šÓ(Cùs   ƒA ¦A ¶
A r%   z;No unknown (lost) admission with that id; resume to refreshzprompt.resolve_unknownrN   )r-   rN   r"   )Úslash_mutationr'   )ÚconfirmrL   rž   r]   rb   ÚlinesÚnoopÚsummaryÚheadlineÚ
token_lineÚnoteÚbranched_session_idr)   r   z/yoloÚonÚoffzUsage: /yolo [on|off]ÚkeyÚyoloÚvalueÚ1Ú0zYOLO z for this session)Úgateway_chat_commandsz/help>   ú/exitú/quitú/detach>   ri   rh   >   ú/modelú/branchú	/compressr+   >   r   r  r  )z
config.set)Ú	partitionr,   r‰   r-   r/   r#   r.   r   ÚnextrB   r  rÎ   rD   Ú_confirm_model_switchrC   ÚapplyÚacknowledgerY   r   ÚfilterÚadoptr   r   r'   ÚlowerÚ
hermes_clir  Ú	help_textÚrun_command)rF   r   re   r—   r$   rl   rn   ÚexpectedrG   Úlostr  Ú	operationrt   Úoriginalr  r    r	  ÚtargetÚwordr  r  s   &&                  @r   re   ÚGatewayChatView.commandD  s¢  øé € ØŸ>™>¨#Ó.Ñˆ�DØÐ3Ô3ÙØ�gÔØ—+‘+—/‘/Ð"5À$Ç/Á/Ø7;·±ð "ó H÷ Hð HáØÐ-Ô-Ø#'§>¡>°#Ó#6Ñ ˆI˜&Ø—\‘\×%Ñ% iÓ0ˆFØ%,°
Ô%:‘zÀ	ˆHß˜V F�^¨xÔ7Ü(Ð)YÓZÐZØ—+‘+—/’/ (¨ZÕ"7ñ ZÀDÇOÁOð ZØ%+Ð,BÕ%CðZØOXðZà)1°ZÔ)?�H˜fÑ%ÀhÐPVÐEWñZ÷ Zð Zñ Ø�jÔ ð "Ÿ[™[Ÿ_™_Ð-=È$Ï/É/˜_ÓZ×ZˆHÜô `¨¯©°YÀÔ(Có `ØaeógˆDàŠ|Ü(Ð)fÓgÐgØ—+‘+—/‘/Ð":ÀtÇÁØ/3°NÕ/CÐZ^Ð_uÕZvð "ó x÷ xð xáØÐ8Õ8ÝCÙ!/°¸¿¹»Ó!FÑˆIØ—‘ˆHØ4=ÀÔ4HÈTÏ^É^ÒMg�d×0Ò0ÐmqˆGØŸ>™>×/Ñ/°·±¸XÐRYÐ/Ók×kˆFØ�z‰z˜(Ó# {Ô2ÙØ�z‰z˜(Ó# yÔ0Ø—‘×*Ñ*¨8ÀÔHÜ�d—i‘i  w¥Ó0Ô1ÙØ�z‰z˜(Ó# vÔ-à—‘×*Ñ*¨8ÀÔHØ Ÿ*™* YÓ/×5Ð5°2�Ü�d—i‘i¤ t¨g¯k©k¸*Ó.EÀwÇ{Á{ÐS_ÓG`Ðbi×bmÑbmÐntÓbuÐ-vÓ wÓxÔyÙØ—Z‘ZÐ 5°xÓ@ˆFØ—*‘* 4§;¡;§?¡?Ð3CÐPV ?Ó#W×WÓX×XÐXØ�N‰N×&Ñ& x¸GÔDØ˜GÔ#¨¯
©
°7×(;Ò(;Ü  ¨¥Ó1×7Ñ7¸Ó<¸RÕ@�”
Ü�Y�K˜r & Ð*Ô+ÙØ�gÔà—:‘:“<×%Ñ%Ó'ˆDØÐ,Ô,Ü(Ð)@ÓAÐAØŸ;™;Ÿ?š?ñ hÀDÇOÁOð hÐY_ð hßY]¨w¸tÀt¼|¹ÐQTÑ.UÐceñh÷ hˆFä�E &§*¡*¨WÓ"5¸Ô"<™$À%ÐHÐHYÐZÔ[ÙÝ4Ø�gÔÜÐ'×1Ñ1Ó3Ô4ÙØ*×6Ñ6°tÀdÓK×KÐKò}HòZò [ò
xò lò XÒXñhñ Lùs¼   ƒAT#ÁT
ÁAT#Â-A$T#ÄTÄ7T#Å	TÅ
A3T#Æ=TÆ>BT#ÉTÉB:T#ÌBT#ÎTÎT#Î#TÎ$=T#Ï"B8T#ÒTÒA*T#ÔT!ÔT#ÔT#ÔT#ÔT#ÔT#ÔT#ÔT#ÔT#Ô!T#c              ƒ  ó&  "  € VR,          V n         VR,          V n        VP                  R. 4       Uu/ uF  q"R,          VbK  	  upV n        VP                  R. 4      V n        \        VP                  R4      ;'       g    / P                  R4      ;'       g    V P                  4      P                  R4      R,          V n        V P                  '       g1   ^ R	I	H
p \        P                  ! W0P                   4      G R
j  x€L
  R
# R
# u upi  L5i)z@Attach this view to another session's snapshot (a branch, /new).r!   r"   r#   r$   r%   r&   r'   r)   )Úwrite_breadcrumbNr+   )r-   r/   r.   r#   r%   r   r'   r   r0   Úhermes_cli.terminal_breadcrumbsr/  r8   Ú	to_thread)rF   rG   rH   r/  s   &&  r   r"  ÚGatewayChatView.adopt‰  sÚ   é € à"Ð#6Õ7ˆŒØ"Ð#9Õ:ˆŒØ3;·<±<À	È2Ô3NÓOÑ3N¨a˜+�¨Ò)Ñ3NÑOˆŒØ—|‘| I¨rÓ2ˆŒÜ˜(Ÿ,™, vÓ.×4Ð4°"×9Ñ9¸'ÓB×PÐPÀdÇjÁjÓQ×WÑWÐX[Ó\Ð]_Õ`ˆŒ
Ø�{�{ˆ{õ IÜ×#Ò#Ð$4·o±oÓF×FÒFñ	 ùò Pñ Gùs)   ‚1D³D
Á;DÂDÂA'DÄDÄDc           	   ƒ  óö  "  € ^ RI Hp ^ RIHpHp RV! R4      V! R4      3RV! R4      V! R4      3.p\        R	V! V4       R
VR,           R24       \        V^4       F  w  pw  rxp	\        RV RV RV	 24       K  	   V P                  V P                  V! R4      4      G Rj  x€L
 p
V P                  '       g   V! W¥4      R8X  d   R# \        V! R4      4       R#  L8  \        \        3 d    Rp
 LKi ; i5i)a	  The owner refused a guarded model target (cost / data policy / large context): ask as
the in-process CLI does (``_confirm_expensive_model_switch``: switch anyway once, or cancel)
on this composer. Only an explicit yes applies; anything else keeps the current model.rö   )Úconfirm_choiceÚconfirmation_titleÚoncezcli.model.choice_switch_anywayzcli.model.desc_switch_anywayr²   zcli.model.choice_cancelz!cli.model.desc_keep_current_modelz
!!! z !!!
Úconfirm_messagerb   z  z. u    â€” zcli.model.confirm_choice_promptNr   Tzcli.model.switch_cancelledF)rü   r÷   rB   r4  r5  rY   Ú	enumerater·   rD   ÚKeyboardInterruptÚEOFErrorr@   )rF   Úrefusalr÷   r4  r5  rk   Úindexr—   ÚlabelÚdetailÚraws   &&         r   r  Ú%GatewayChatView._confirm_model_switch–  s  é € õ 	!ßSØ™AÐ>Ó?ÁÐCaÓAbÐcØ™aÐ 9Ó:¹AÐ>aÓ<bÐcðeˆä�Ñ)¨'Ó2Ð3°6¸'ÐBSÕ:TÐ9UÐUWÐXÔYÜ)2°7¸AÖ)>Ñ%ˆEÑ%�A˜fÜ�B�u�g˜R ˜w h¨v¨hÐ7Ö8ñ *?ð	ØŸ™¨¯©¹Ð:[Ó8\Ó]×]ˆCð �|�|ˆ|¡¨sÓ <ÀÔ FÙÜ‰aÐ,Ó-Ô.Ùñ ^øÜ!¤8Ð,ô 	ØŠCð	üsB   ‚A=C9Â %C  Â%CÂ&C  Â*C9Â<"C9ÃC  Ã C6Ã3C9Ã5C6Ã6C9c                ó°   € \        V\        P                  R7       V P                  e-   V P                  P	                  RRRV/V P
                  ^R7      # ^# )zÏOne-shot cannot go on without a human: say why on stderr, exit 3, and in stream-json
mode close the protocol with a failed ``result`` (a consumer parsing stdout must never be
left without a terminal record).rS   rA   Tr‚   ©r-   Ú	exit_code)rY   rZ   r[   r   Úemit_resultr-   )rF   Úmessages   &&r   Ú_detachÚGatewayChatView._detachª  sL   € ô 	ˆgœCŸJ™JÕ'Ø�<‰<Ò#Ø—<‘<×+Ñ+¨X°t¸WÀgÐ,NÐ[_×[jÑ[jÐvwÐ+ÓxÐxÙr   c                ó"  a€ \        V3R lV P                   4       R4      pVR8X  d   RRR\        /V P                  S&   R# VR8X  d   V P	                  4       '       d   R# V P
                  '       d   V'       g   V P                  '       g   R# R# )	a  Why a finite viewer cannot keep waiting for *admission*, or None. Its own lost turn
settles as the unknown completion would, so the exit code never depends on frame order;
only a still-queued input behind someone else's unknown turn is retained and detached.c              3   óT   <"  € T F  qR ,          S8X  g   K  VR,          x € K  	  R# 5i)rN   rL   Nrˆ   )r
   rO   r\   s   & €r   r   Ú0GatewayChatView._finite_block.<locals>.<genexpr>·  s$   øé € Ð^©\ cÀÕ=PÐT]Ñ=]”M�C˜—M’M«\ùs   ƒ(—(NrM   r“   r   rU   z�Unknown execution blocks this session; your accepted input is retained. Resume interactively to resolve the lost turn; do not resend the input.zOInput required; detached without cancelling. Resume this session interactively.)r  r%   r¤   r7   rP   r#   r<   )rF   r\   r–   s   &f r   Ú_finite_blockÚGatewayChatView._finite_block³  su   ø€ ô Ô^¨T¯\ª\Ó^Ð`dÓeˆØ�)ÔØ+4°iÀÔIYÐ*ZˆD×Ñ˜YÑ'ÙØ�(Œ?˜t×6Ñ6×8Ò8ñ^à�<�<ˆ<ŸS¨¯	¯	¨	ÙdÙr   c           	   ƒ  ó\  "  € ^ RI Hp  V P                  P                  RV P                  VRR7      G Rj  x€L
 p\        VP                  R4      ;'       g    / 4      #  L(  \        \        \        T\        \        \        3 d#   p\        P                  RY4       / u Rp?# Rp?ii ; i5i)u¯   The structured result the owner committed with this admission's settlement â€” the same
dict the in-process one-shot got from ``run_conversation`` (best-effort, never raises).)ÚWebSocketExceptionr™   Trš   Nr    z%settled result for %s unavailable: %s)Úwebsockets.exceptionsrN  r,   r‰   r-   r‹   r.   r   ÚOSErrorÚTimeoutErrorÚAttributeErrorÚ	TypeErrorÚ
ValueErrorÚloggerÚdebug)rF   r\   rN  r¨   Úexcs   &&   r   Ú_settled_resultÚGatewayChatView._settled_resultÂ  s˜   é € õ 	=ð		Ø ŸK™KŸO™OÐ,<ÈÏÉØ9BÐSWð ,ó Y÷ YˆGä˜Ÿ™ HÓ-×3Ð3°Ó4Ð4ñYøô #¤G¬\Ð;MÜ¤	¬:ð7ô 	ô �L‰LÐ@À)ÔQØ�Iûð		üsJ   ‚B,Š,A! ¶A· A! ÁA! ÁB,ÁA! Á!&B)ÂB$ÂB)ÂB,Â$B)Â)B,c                óä   € V P                   '       g*   \        RV P                   2\        P                  RR7       V P
                  '       d#   \        \        V P                  4      RR7       R# R# )zäThe finite run's durable id on stderr (automation wrappers parse it; it names the
physical row a compaction may have advanced) and, for `chat -q`, main's resume block. Main's
`-z` (unattended) printed only the reply: no id line.z
session_id: TrÌ   rÑ   N)r1   rY   r-   rZ   r[   r2   ©rF   s   &r   Ú_print_exit_idsÚGatewayChatView._print_exit_idsÑ  sM   € ð ��ˆÜ�N 4§?¡?Ð"3Ð4¼3¿:¹:ÈTÕRØ××ÐÜ”- §¡Ó0¸×=ñ r   c                óð   € V '       g   VP                  R4      '       g   R# VP                  R4      p\        R\        V\        4      '       d   V'       d   RV R2MR R2\        P
                  R	7       R# )
z�A restart or stop drain settles a finite turn interrupted with no reply: say so on stderr
instead of exiting 130 silently. It is never replayed.r�   NÚinterrupt_messagezTurn interruptedrV   rW   r   z6; it was not retried. Resume this session to continue.rS   )r.   rY   r   r   rZ   r[   )r   r    Úreasons   && r   Ú_report_silent_interruptÚ(GatewayChatView._report_silent_interruptÚ  se   € ÷ �v—z‘z -×0Ò0ÙØ—‘Ð/Ó0ˆÜÐ ´:¸fÄc×3JÒ3JÏv 2 f X¨Q¡Ð[]Ð ^ð _Eð EÜKNÏ:É:÷	Wr   c                óv   € V P                   '       d'   V^8X  d   \        R\        P                  R7       R# R# R# )zY`-z` exit 1 (a completed turn with no reply text): the in-process one-shot's stderr line.zFhermes -z: no final response was produced; treating the run as failed.rS   N)r1   rY   rZ   r[   )rF   rC  s   &&r   Ú_report_no_replyÚ GatewayChatView._report_no_replyä  s*   € à�?�?ˆ?˜y¨Aœ~ÜÐZÔad×akÑak×lñ  .‰?r   c                óì   € ^ RI Hp / VCRVP                  R4      ;'       g    V P                  /CpVR9   d   RM$VP                  R4      ;'       g    T;'       g    RpV! V P                  WR7       R# )zH``-z --usage-file``: the same JSON ledger the in-process one-shot wrote.)Ú_write_usage_filer-   Nr‚   rA   )r@   ©Ú	completedrž   )Úhermes_cli.oneshotrg  r.   r-   r   )rF   r    r“   rg  r@   s   &&&  r   rg  Ú!GatewayChatView._write_usage_fileé  sd   € å8ØV�FÐV˜L¨&¯*©*°\Ó*B×*UÐ*UÀdÇoÁoÑVˆØ!Ð%?Ô?‘$ÀfÇjÁjÐQXÓFY×FpÐFpÐ]d×FpÐFpÐhpˆÙ˜$Ÿ/™/¨6×Cr   Úoneshotc             ƒ  óî  a "  € S P                   ;'       g    TS n         VS n        S P                  4        S P                  P	                  4        F  pS P                  V4       K  	  V'       dX   S P                  4       '       dB   R P                  S P                  4       4      pS P                  RS P                   RV R24      # \        P                  ! S P                  4       4      p V'       d   S P                  V4      G Rj  x€L
 MRpV'       EdC   \        V4      pVfH    VP                  4        \!        \        P"                  4      ;_uu_ 4        VG Rj  x€L
  RRR4       ^ # VS n        S P&                   F3  w  r‰p
W—8X  g   K  VS P(                  9  g   K!  S P+                  W‰V
4       K5  	  S P&                  P-                  4        S P.                  P1                  4        VS P(                  9  dÞ   S P.                  P-                  4        S P2                  '       d   S P2                  hS P5                  V4      pV'       dV   S P                  V4      VP                  4        \!        \        P"                  4      ;_uu_ 4        VG Rj  x€L
  RRR4       # VS P(                  9  g   KÊ  S P.                  P7                  4       G Rj  x€L
  Kî  S P(                  V,          pVP9                  R4      pVP9                  R4      ;'       g    VP9                  R4      ;'       g    Rp^ R	IHp ^ R
IH p VP9                  R4      pV'       d%   \C        VP9                  R4      ;'       g    / 4      MS PE                  V4      G Rj  x€L
 pTPG                  \I        VP9                  R4      4      ;'       g    VR&9  \I        VP9                  R4      4      ;'       g    VR8H  R7       S PJ                  '       d
   V! VV4      M	V! VRR7      pS PL                  '       d   S PO                  VV4       S PP                  e�   S PP                  PS                  / VCRVR\I        VP9                  R4      4      /CS P                  VR7      VP                  4        \!        \        P"                  4      ;_uu_ 4        VG Rj  x€L
  RRR4       # S PU                  VV4       \W        VRR7       S PY                  V4       S P[                  4        TVP                  4        \!        \        P"                  4      ;_uu_ 4        VG Rj  x€L
  RRR4       # ^ RI.H/p ^ RI0H1p ^ RI2H3pH4p Rp\W        V! 4       Pk                  RV4      RR7       V! RV 3R lR7      pV! R4      p\l        Pn                  Pq                  4       '       d   TMRS n9        V! 4       ;_uu_ 4        S P2                  '       gé    S Pu                  VV4      G Rj  x€L
 Pw                  4       pV'       g   KE  VPy                  R 4      '       dq   S P{                  V4      G Rj  x€L
 '       gP    RRR4       VP                  4        \!        \        P"                  4      ;_uu_ 4        VG Rj  x€L
  RRR4       ^ # KÌ  \W        R!R' R"V 2RR7       S P                  V4      G Rj  x€L
  Kú  S P2                  h ELã EL�  + '       g   i     ^ # ; i ELp  + '       g   i     # ; i ELH EL� EL[  + '       g   i     # ; i ELë  + '       g   i     # ; i EL@ Lú L±  + '       g   i     ^ # ; i L�  \|         d    \W        R#4        EKŸ  \~         df     RRR4       TP                  4        \!        \        P"                  4      ;_uu_ 4        TG Rj  x€L 
  RRR4       ^ #   + '       g   i     ^ # ; i\€         d+   p\W        R$T 2\l        P‚                  R%7        Rp?EK<  Rp?ii ; i  + '       g   i     M; i TP                  4        \!        \        P"                  4      ;_uu_ 4        TG Rj  x€L 
  RRR4       R#   + '       g   i     R# ; i  TP                  4        \!        \        P"                  4      ;_uu_ 4        TG Rj  x€L 
  RRR4       i   + '       g   i     i ; i; i5i)(r   zgUnknown execution blocks this session; nothing was submitted. Resolve it with `hermes sessions discard z --yes` (or /discard z= interactively; both are prompt.resolve_unknown), then retry.Nr“   r   râ   r   )Ú_oneshot_exit_code)Úturn_exit_coderŸ   r    rA   rž   r�   )rA   r�   F)Úkanban_workerr¡   rè   rB  TrÑ   )ÚPromptSession)Úpatch_stdout)Úget_active_prompt_symbolÚget_active_skinzAWelcome to Hermes Agent! Type your message or /help for commands.Úwelcomec                  ó>   <€ R S P                    RS P                   R2# )u    â˜¤ u    â”‚ r   )r'   r-   r[  s   €r   Ú<lambda>Ú%GatewayChatView.run.<locals>.<lambda>6  s"   ø€ ¸HÀTÇZÁZÀLÐPXÐY]×YhÑYhÐXiÐijÑ:kr   )Úerase_when_doneÚbottom_toolbaru   â�¯ r)   rb   u   
â—� z2Use /stop to interrupt execution, /quit to detach.zError: rS   rh  ux   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€)Br   r0   r_   r#   Úvaluesro   rP   r   rF  r-   r8   Úcreate_taskr~   rý   Ú_oneshot_admissionr²   r   r´   r4   r5   r7   rz   Úclearr?   r{   r@   rK  r°   r.   rj  rn  Úhermes_cli.turn_exitro  r‹   rX  ÚupdaterX   r1   r   rg  r   rD  ra  rY   rd  r\  Úprompt_toolkitrq  Úprompt_toolkit.patch_stdoutrr  Úhermes_cli.skin_enginers  rt  Úget_brandingrZ   ÚstdinÚisattyrD   r·   rÎ   rê   re   r9  r:  r   r[   )rF   Úqueryrl  rn   r(  Úrendererr¨   r\   rf   Úevent_admissionrt   Úblockedrœ   r“   r   rn  ro  Ú	recoveredr    rC  rq  rr  rs  rt  ru  Úprompt_symbolrW  s   f&$                        r   ÚrunÚGatewayChatView.runð  sÈ  øé € Ø—Z‘Z×*Ð* 7ˆŒ
ØˆŒØ×ÑÔØ—l‘l×)Ñ)Ö+ˆFØ×Ñ˜VÖ$ñ ,ç�t×.Ñ.×0Ò0ð —8‘8˜D×3Ñ3Ó5Ó6ˆDØ—<‘<ð !AØAEÇÁÐ@QÐQfÐgkÐflð m_ð!_ó `ð `ô ×&Ò& t§{¡{£}Ó5ˆðT	ß27˜DŸK™K¨Ó.×.Ð.¸TˆGßˆwÜ.¨wÓ7�	ØÒ$ØðZ �O‰OÔÜœ'×0Ñ0×1Õ1Ø—�÷ 2Ñ1ð[ )2�Ô%Ø6:×6IÔ6IÑ2�D¨7Ø&Ö3¸	È×IYÑIYÖ8YØ×,Ñ,¨TÀGÖLñ 7Jð ×#Ñ#×)Ñ)Ô+Ø—‘× Ñ Ô"Ø t×'7Ñ'7Ô7Ø—L‘L×&Ñ&Ô(Ø—|—|�|Ø"Ÿl™lÐ*Ø"×0Ñ0°Ó;�GßØ#Ÿ|™|¨GÓ4ð@ �O‰OÔÜœ'×0Ñ0×1Õ1Ø—�÷ 2Ð1ðA !¨×(8Ñ(8Ö8Ø"Ÿl™l×/Ñ/Ó1×1Ò1Ø×+Ñ+¨IÕ6�Ø"Ÿ,™, yÓ1�Ø—|‘| FÓ+×LÐL¨x¯|©|¸IÓ/F×LÐLÈ"�õ BÝ?Ø$ŸL™L¨Ó4�	ß@Iœ˜iŸm™m¨HÓ5×;Ð;¸Ô<ÐUY×UiÑUiÐjsÓUt×Ot�Ø—‘¤T¨&¯*©*°XÓ*>Ó%?×%lÐ%lÀ7ÐRlÑClÜ*.¨v¯z©z¸-Ó/HÓ*I×*cÐ*cÈWÐXcÑMcð ô eàAEÇÇÀÑ/°°fÔ=Ù"0°ÀuÔ"Mð à—?—?�?Ø×*Ñ*¨6°7Ô;Ø—<‘<Ò+ØŸ<™<×3Ñ3ð 5e°vð 5eÐ?OÐQUØ5AÄ4ÈÏÉÐUaÓHbÓCcñ5eà?C¿¹ÐZcð 4ó eðX �O‰OÔÜœ'×0Ñ0×1Õ1Ø—�÷ 2Ð1ðU ×-Ñ-¨d°FÔ;Ü�d $Õ'Ø×%Ñ% iÔ0ð ×$Ñ$Ô&Ø ðD �O‰OÔÜœ'×0Ñ0×1Õ1Ø—�÷ 2Ð1õE 5Ý@ßXØYˆGÜ‘/Ó#×0Ñ0°¸GÓDÈDÕQá"°4Ü2kômˆFá4°VÓ<ˆMÜ'*§y¡y×'7Ñ'7×'9Ò'9™V¸tˆDŒNÙ—•ØŸ,Ÿ,˜,ð@à&*§o¡o°f¸mÓ&L× L×SÑSÓU˜ß#Ù$ØŸ?™?¨3×/Ò/Ø)-¯©°dÓ);×#;Ö#;Ø'(÷  ð. �O‰OÔÜœ'×0Ñ0×1Õ1Ø—�÷ 2Ñ1ñ! $<ô
 " B z l°&¸¸Ð"?ÀtÕLØ"&§+¡+¨dÓ"3×3Ò3ð —l‘lÐ"ò_ /òf ÷ 2×1Ð1úÚ÷ 2×1úò 2ò Puòl ÷ 2×1úÚ÷ 2×1úò) !Mñ $<ñ" ÷ 2×1Ð1úñ 4øÜ,ô TÜÐR×SÐSÜ#ô !Ø ÷%  ð. �O‰OÔÜœ'×0Ñ0×1Õ1Ø—‘÷ 2×1×1Ò1úô .ô @Ü ¨ u˜o´C·J±J×?Ô?ûð@ú÷'  —ú�ð. �O‰OÔÜœ'×0Ñ0×1Õ1Ø—‘÷ 2×1×1Ò1ûð �O‰OÔÜœ'×0Ñ0×1Õ1Ø—‘÷ 2×1×1Ð1ÿsú  ƒA,c5Á0c5ÂA%c5Ã,b Ã4b Ä[+Ä	b Äb Ä(1c5Å[1Å[.Å [1Å$
c5Å.b Æb Æ"Bb È)$b Éb É1c5Ê\Ê\
Ê\Ê	c5Ê#b Ê6b Ë\ËAb Ìb Ì/'b Íb Í4b Î\Î/b Ï %b Ï&b Ð$b Ð(A'b Ò1c5Ó \$Ó\!
Ó\$Ó	c5ÓAb Ô1c5Õ\:Õ\7
Õ\:Õ	c5ÕB
b ×$`)×8]*Ø]Ø]*Ø(`)Ø*]*Ù]*Ù]Ù	]*Ù!b Ù)1c5Ú]Ú ]Ú!]Ú%
c5Ú/`)Ú1']*Û](Û]*Û`)Û+b Û.[1Û1\	Û<	c5Ü\Ü\Üc5Üb Üb Ü!\$Ü$\4Ü/c5Ü7\:Ü:]
Ýc5Ý]*Ý]*Ý]Ý]%	Ý	c5Ý(]*Ý*`&Þ `)Þ`&Þ`&Þ`)Þb Þ1c5ß_ß_ß_ß
c5ß_/	ß)	c5ß2`&ß;`&ß<`!à`)à!`&à&`)à)`9	à4b à=1c5á.bá4a7á5bá:
c5âb	â	c5â2c2ã
c	ãcãc	ã	c2ãc/ã*c2ã2c5)r=   rD   r5   r?   r,   r7   r:   r   rA   r@   r0   r4   r<   r/   r3   r;   r'   rC   r%   rE   r#   r   r2   r-   r6   r1   r   r�   )%Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rI   rP   r_   ro   r~   rw   rx   r�   r·   rz   rÄ   rÅ   rÀ   rÁ   r¿   r£   rÂ   rÃ   rý   re   r"  r  rF  rK  rX  r\  Ústaticmethodra  rd  rg  r�  Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r   r   &   sá   ø‡ € ð!°%ð !Àð !ÐRVô !òF[ò^òwò!òFò
ò.Aò4ò$
(òOòMò
cò"qò ò.ò8&ò5òò.CLòJGòò(òòò>ð ñWó ðWòmò
Dñb¨u÷ bó br   r   c                ó`   € V f   \        R4      hV P                  R4      RJ d   R# V R,          # )z¾The one-shot query's admission id; None when the owner admitted nothing because the query was a
bare stop phrase that ended the session's LOCAL voice chat (TUI-26 ``{voice_stopped: true}``).NzOne-shot requires a queryrõ   TrN   )r   r.   )r¨   s   &r   r}  r}  U  s5   € ð ‚Ü Ð!<Ó=Ð=Ø—;‘;˜Ó/°4Ó7ˆ4ÐT¸WÀ^Õ=TÐTr   c                ód   € ^ RI Hp ^ RIHp V! 4       pVR9   d   RMRV 2pRV! R4       RV  V 2# )	z§The classic single-query exit block (``_print_exit_summary``): how to continue this session.
A non-default profile needs ``-p`` because session ids are profile-scoped.rö   )Úget_active_profile_namer   z -p rb   zcli.session.exit_resume_hintz
  hermes --resume )r¬   Úcustom)rü   r÷   Úhermes_cli.profilesr™  )r-   r÷   r™  ÚprofileÚflags   &    r   r2   r2   ]  sI   € õ Ý;Ù%Ó'€GØÐ1Ô1‰2¸¸g¸YÐ7G€DØ‘Ð0Ó1Ð2Ð2FÀzÀlÐSWÐRXÐYÐYr   >   r¾   r»   r½   rº   r¼   )Ú__doc__r8   Ú
contextlibr   ÚloggingrZ   rù   Úhermes_cli.gateway_clientr   Ú	getLoggerr�  rU  r   r   r¤   Ú	frozensetry   r   r}  r2   rˆ   r   r   Ú<module>r¤     sj   ðÙ LÛ Ý Û Û 
Û å 8à	×	Ò	˜8Ó	$€ð €ò
'ð@Ð ñ %ò &ó Ð ÷lñ lò^UôZr   