+
    jHàjÕ  ã                   óš   € R t ^ RIHt ^ RIHt ^ RIHt ]! RRR7      t]! RRR7      tR	 t	R
t
R tR t]RR l4       tRR/R ltR tR tR# )zLAdmission-scoped finite consumers, independent of viewer or daemon lifetime.)Úcontextmanager)Ú
ContextVar)ÚRuntimeStoreErrorÚfinite_turnN)ÚdefaultÚunattended_turnFc                  ó*   € \         P                  4       # ©N)Ú_finite_turnÚget© ó    Ú;/home/ubuntu/.hermes/hermes-agent/gateway/session_finite.pyÚfinite_turn_requiredr      s   € ô ×ÑÓÐr   zœsingle-query mode: no user available to answer. Pick the best choices using your own judgment, or make the most reasonable assumption you can, and continue.c                 ó   € R/ RRR\         /# )zUclarify_tool's reply on a finite turn (``chat -q`` / ``-z``): main's headless answer.ÚanswersÚoutcomeÚundeliveredÚnotice)ÚFINITE_CLARIFY_NOTICEr   r   r   Úfinite_clarify_replyr      s   € à�r˜9 m°XÔ?TÐUÐUr   c                  ó*   € \         P                  4       # r	   )Ú_unattended_turnr   r   r   r   r   r      s   € ô ×ÑÓ!Ð!r   c              #   óD  "  € \         P                  V 4      p\        P                  \        T ;'       d    T4      4      p R x € \        P	                  V4       \         P	                  V4       R #   \        P	                  T4       \         P	                  T4       i ; i5ir	   )r
   Úsetr   ÚboolÚreset)ÚfiniteÚ
unattendedÚtokenÚunattended_tokens   &&  r   Úfinite_turn_scoper!   !   sx   é € ä×Ñ˜VÓ$€EÜ'×+Ñ+¬D°×1FÐ1F¸JÓ,GÓHÐð"Ûä×ÑÐ/Ô0Ü×Ñ˜5Ö!øô 	×ÑÐ/Ô0Ü×Ñ˜5Õ!üs   ‚>B ÁA1 Á,B Á1,BÂB Ú	submitterc               óº  € RV 9   dJ   \        V R,          4      \        Jg%   V R,          '       d!   V P                  R4      RJd   \        R4      hV P                  R4      '       d   Ve   \	        V!  '       g   \        R4      hRV 9  d   / # \        V R,          4      \        Jd   \        R4      hRV R,          /V P                  R4      '       d   RR/C# / C# )zÇValidate a submission's finite flags. *submitter* ``(connection, ref)`` marks a wire client: it may
ask for an unattended (auto-approving) turn only as the local CLI principal on its own CLI session.r   r   TÚinvalid_params)Útyper   r   r   Ú_may_run_unattended)Úparamsr"   s   &$r   Úadmit_finiter(   ,   sÍ   € ð �vÔ¤4¨¨|Õ(<Ó#=ÄTÓ#IØ'-¨l×';Ô';ÀÇ
Á
È8Ó@TÐ\`Ó@`ÜÐ 0Ó1Ð1Ø‡z�z�,×Ò IÒ$9ÔBUÐW`×BaÐBaÜÐ 0Ó1Ð1Ø�vÔØˆ	ÜˆF�8ÕÓ¤TÓ)ÜÐ 0Ó1Ð1Ø�f˜XÕ&ÐeÀ6Ç:Á:Èl×C[ÒC[¨L¸$Ð+?ÐeÐeÐacÐeÐer   c                óZ  € ^ RI Hp V P                  P                  VP                  ,          P
                  pV P                  '       d*   Ve&   VP                  V P                  P                  8w  d   R# V! V P                  P                  V4      pVRJ;'       d    VP                  R8H  # )a&  ``hermes -z`` parity: main auto-approved only inside the one-shot's own process. Over the wire that
is the private local bootstrap ticket (no dashboard / remote identity), the session's creator (no
operator attach) and a CLI-surface session (never a Desktop, TUI, ACP or Bot Chat others watch).)Úpolicy_for_sourceNFÚcli)Úgateway.session_policyr*   Ú	authorityÚsessionsÚ
session_idÚsourceÚnative_ownerÚuser_idÚactorÚsubjectÚrunnerÚplatform)Ú
connectionÚrefr*   r0   Úpolicys   &&   r   r&   r&   ;   s…   € õ 9Ø×!Ñ!×*Ñ*¨3¯>©>Õ:×AÑA€FØ×"×"Ð" f¢n¸¿¹È*×JZÑJZ×JbÑJbÔ8bÙÙ˜z×3Ñ3×:Ñ:¸FÓC€FØ˜Ð×:Ð: &§/¡/°UÑ":Ð:r   c              ƒ   ó  "  € ^ RI Hp ^ RIHp ^ RIHp ^ RIHp \        VR,          P                  RR4      VR,          P                  R4      R	J 4      ;_uu_ 4        V! VR,          P                  R
4      4      ;_uu_ 4        V! VR,          VR,          P                  R4      4      ;_uu_ 4        V! VR,          VR,          P                  R4      4      ;_uu_ 4        V! WV4      G Rj  x€L
 uuRRR4       uuRRR4       uuRRR4       uuRRR4       #  L,  + '       g   i     M; i RRR4       M  + '       g   i     M; iRRR4       M  + '       g   i     M; iRRR4       R#   + '       g   i     R# ; i5i)é    )Úexecute_admission)Údisplay_turn_scope)Úsurface_turn_scope)Úcli_turn_scopeÚpayloadr   Fr   TÚ
surface_v1Úadmission_idÚ
display_v1Úcli_turn_v1N)
Úgateway.session_ingressr<   Úgateway.session_displayr=   Úgateway.session_surfacer>   Úgateway.session_cli_turnr?   r!   r   )r-   r8   Úrowr<   r=   r>   r?   s   &&&    r   Úexecute_finite_admissionrJ   G   s  é € Ý9Ý:Ý:Ý7Ü	˜3˜y�>×-Ñ-¨h¸Ó>ÀÀIÅ×@RÑ@RÐS_Ó@`ÐdhÐ@h×	iÕ	iÙ˜s 9�~×1Ñ1°,Ó?×@Õ@Ù˜s >Õ2°C¸	µN×4FÑ4FÀ|Ó4T×UÕUÙ˜3˜~Õ.°°Iµ×0BÑ0BÀ=Ó0Q×RÕRÙ& y°sÓ;×;÷ SÑR÷ VÑU÷ AÑ@÷ 
jÒ	iñ <÷ S×RúÐR÷ V×U×UÐUú÷ A×@×@Ð@ú÷ 
j×	i×	iÒ	iüsŠ   ‚AF	Á'E5Â/E	Â4/D<Ã#DÃ0DÃ1DÃ4
D<Ã>
E	Ä
E5ÄF	ÄDÄD/Ä*D<Ä3	E	Ä<EÅE	Å	E5ÅE(Å#E5Å+
F	Å5F	Æ 	F	)F)Ú__doc__Ú
contextlibr   Úcontextvarsr   Úhermes_state_runtimer   r
   r   r   r   r   r   r!   r(   r&   rJ   r   r   r   Ú<module>rO      sr   ðÙ RÝ %Ý "å 2á˜-°Ô6€ÙÐ/¸Ô?Ð òðNð ò
Vò
"ð ó"ó ð"ðf dô fò	;ô	<r   