+
    jHàj.h  ã                   ó>  € R t ^ RIt^ RIt^ RIHt ^ RIHt ^ RIHtH	t	 ^ RI
Ht ^ RIHtHt ]P                  ! ]4      t]! 0 Rm4      t]! 0 Rm4      t]R0,          t]! 0 Rm4      tR tRR	 ltR
 tR tR tRRRR/R ltR R ltRRRR/R ltR tR t RR/R lt!R# )a7  Action-specific authority mutations, shared by WS and authenticated HTTP.

No legacy slash handler is executed after a receipt: those handlers own separate
transactions. Local reset prepares its replacement in the receipt transaction;
branch/compress/model still require their own prepared runtime publication.
N)Únullcontext)Úpartial)Ú
CHAT_PICKSÚis_chat_pick)ÚMUTATION_GUARD_REFUSALS)ÚRuntimeStoreErrorÚmutate_runtime_sessionÚdeletec                ó¼  € VP                   V P                   8w  g   VP                   V P                   8w  d   \        R4      hRVP                  9  d   \        R4      h^ RIHp V! RVR,          4       V P
                  P                  VR,          R,          4      w  rVV'       d   \        R4      h\        ;QJ d    . R	 V 4       F  NK  	  5# ! R	 V 4       4      # )
zLImport authorization; returns the imported session ids the write must claim.Úprofile_mismatchúsession:createÚpermission_denied)Úvalidate_actionÚimportÚpayloadÚsessionsÚinvalid_paramsc              3   ó@   "  € T F  qR ,          R,          x € K  	  R# 5i)ÚsessionÚidN© )Ú.0Úitems   & Ú>/home/ubuntu/.hermes/hermes-agent/gateway/session_mutations.pyÚ	<genexpr>Ú$_authorize_import.<locals>.<genexpr>%   s   é € Ð>±:¨4�i• ×&Ò&³:ùs   ‚)Ú
profile_idr   ÚcapabilitiesÚhermes_state_mutationsr   ÚdbÚ_validate_import_payloadÚtuple)Ú	authorityÚactorÚrefÚparamsr   Ú
normalizedÚerrorss   &&&&   r   Ú_authorize_importr(      s²   € à×Ñ˜9×/Ñ/Ô/°3·>±>ÀY×EYÑEYÔ3YÜÐ 2Ó3Ð3Ø˜u×1Ñ1Ô1ÜÐ 3Ó4Ð4Ý6Ù�H˜f YÕ/Ô0Ø"Ÿ™×>Ñ>¸vÀiÕ?PÐQ[Õ?\Ó]Ñ€JßÜÐ 0Ó1Ð1ßŒ5Ñ>±:Ó>�5Ð>ˆ5Ñ>±:Ó>Ó>Ð>ó    c                óŠ  € ^ RI Hp VP                  V P                  8w  g   VP                  V P                  8w  d   \        R4      hRVP                  9  d   \        R4      hRpV! V P
                  VP                  VP                  VR,          4      '       Eg   T;'       g    \        WV4      pVP                  V P                  9  d^   ^ RI
Hp V P
                  P                  4       ;_uu_ 4       p^ RIHp	 V	! WWP                  4       V! W�VP                  4      pR	R	R	4       V'       g~   VP                  R
4      R8X  d   V P!                  WR4       VP                  R
4      R8X  d.   V P                  VP                  ,          P"                  '       g   V P!                  WR4       V#   + '       g   i     L—; i)z»Control authorization; True when the session is cold history the write must claim. *owner* is
``_owner_ref``'s answer when the caller already resolved it (one read per mutation, not two).)Úhas_mutation_receiptr   zsession:controlr   FÚ
request_id)Úauthorize_history)Úrequire_history_claimNÚ	operationr	   zsession:read)Ú hermes_state_mutation_retirementr+   r   r   r   r   ÚsubjectÚ
session_idÚ
_owner_refr   Úhermes_state_mutation_bindingr-   Ú	_read_ctxÚgateway.session_local_migrationr.   ÚgetÚ	authorizeÚ
superseded)
r"   r#   r$   r%   Úownerr+   Úcold_historyr-   Úconnr.   s
   &&&&&     r   Ú_authorize_controlr=   (   sT  € õ FØ×Ñ˜9×/Ñ/Ô/°3·>±>ÀY×EYÑEYÔ3YÜÐ 2Ó3Ð3Ø × 2Ñ 2Ô2ÜÐ 3Ó4Ð4Ø€Lñ   	§¡¨e¯m©m¸S¿^¹^ÈVÐT`ÕMa×bÓbØ×9Ð9”z )°&Ó9ˆØ�>‰> ×!3Ñ!3Ô3ÝGØ—‘×'Ñ'×)Ô)¨TÝQÙ% i°u¿n¹nÔMÙ0°¸c¿n¹nÓM�÷ *÷ Ø�z‰z˜+Ó&¨(Ô2à×#Ñ# E°Ô?Ø—J‘J˜{Ó+¨xÔ7¸I×<NÑ<NÈsÏ~É~Õ<^×<i×<iÐ<ið ×#Ñ# EÐ0AÔBØÐ÷ *×)ús   Ã6-F2Æ2G	c                óö  € VP                  R4      \        9   d   ^ RIHp V! W4      # VP                  R4      \        9  d   V# ^ RIHp ^ RIHp V P                  P                  4       ;_uu_ 4       pV! WaP                  4      pRRR4       XVP                  8X  d%   VP                  R4      R8X  d   ^ RIHp V! W4      # WqP                  8X  d   V# V! VP                  V4      #   + '       g   i     Lj; i)a3  A metadata control (rename, archive, pin) or a delete names the listed row, which may be a
later reset or compression segment of a local conversation; the conversation's creation id owns
its live session, so control and the session gate are checked on that owner. The write itself
still names the listed row (a title or archive flag belongs to it; delete takes the lineage).
Gating only ``delete`` answered rename/archive of a compressed conversation with
``storage_unavailable`` (#134889 LC-22, as LC-12 on resume).

A transcript- or policy-changing operation (rewind, reset, compress, a policy pick) keeps the
listed id: its busy gate, generation fence and eviction are keyed by the session it writes, so
authorizing it on the owner while writing the segment would bypass the owner's FIFO. A segment
of a live owner therefore stays a named refusal for those, as on main. A delete of a messaging
conversation's later compression segment, or a model/reasoning pick on it, resolves to its
lineage root, where its lane's session lives (``messaging_owner_ref``, as resume does).r/   )Úmessaging_owner_ref)Ú
SessionRef)Úlocal_lineage_ownerNr	   )r7   r   Úgateway.session_route_recoveryr?   Ú_OWNER_AUTHORIZEDÚgateway.session_contractr@   Úhermes_state_localrA   r   r5   r2   r   )r"   r$   r%   r?   r@   rA   r<   r:   s   &&&     r   r3   r3   F   s½   € ð ‡z�z�+Ó¤*Ô,õ 	GÙ" 9Ó2Ð2Ø‡z�z�+ÓÔ&7Ô7Øˆ
Ý3Ý6Ø	�‰×	Ñ	×	!Ô	! TÙ# D¯.©.Ó9ˆ÷ 
"à�—‘Ô 6§:¡:¨kÓ#:¸hÔ#FÝFÙ" 9Ó2Ð2ØŸ>™>Ô)ˆ3ÐP©z¸#¿.¹.È%Ó/PÐP÷ 
"×	!ús   Á3C(Ã(C8	c           	   ƒ   óœ   "  € ^ RI Hp V P                  4        V! V \        WW#4      4      p\        P
                  ! V4      G Rj  x€L
 #  L5i)é    )Útrack_mutationN)Úgateway.session_runtime_workersrH   Ú_require_admission_openÚ_owned_mutationÚasyncioÚshield)r"   r#   r$   r%   rH   Útasks   &&&&  r   Úmutate_sessionrO   e   s>   é € Ý>Ø×%Ñ%Ô'ñ ˜)¤_°YÀsÓ%SÓT€DÜ—’ Ó%×%Ð%Ñ%ùs   ‚AAÁA
ÁAc              ƒ   ó¼  "  € VP                  R 4      0 \        mRkRkRk9   d/   VP                  V P                  9  d   RV9   d   \	        WW#4       \        WV4      pV P                  P                  VP                  4      pVf   \        WW#VR7      G Rj  x€L
 # VP                  R 4      R8X  dP   VP                  ;_uu_4       GRj  x€L
  \        WW#VP                  VR7      G Rj  x€L
 pRRR4      GRj  x€L
  MDVP                  ;_uu_4       GRj  x€L
   \        WW#VR7      G Rj  x€L
 pRRR4      GRj  x€L
  VP                  R 4      0 \        mRkRk9   d*   \!        WSR ,          4      '       g   V P#                  V4       X#  Lø LÇ L¨ Lš  + GRj  x€L 
 '       g   i     Ll; i Lš L…  \        .\        O5 dn   pTP                  R 4      R8w  g   \        TR	R
4      R
8w  d   h ^ RIHp \        P                  ! Y€YT4      G Rj  x€L 
 u Rp?uuRRR4      GRj  x€L 
  # Rp?ii ; i Lú  + GRj  x€L 
 '       g   i     EL; i5i)r/   ÚcompressÚresetÚrewindr,   N)r:   )Úcommit_lockr:   ÚmodelÚreasonÚsession_busy)Ú
defer_pick)r7   Ú_POLICYr2   r   r=   r3   Ú_mutate_sessionÚ
claim_gateÚmutation_lockr   r   ÚgetattrÚgateway.session_deferred_pickrX   rL   Ú	to_threadr   Ú	_schedule)	r"   r#   r$   r%   r:   ÚliveÚresultÚexcrX   s	   &&&&     r   rK   rK   n   sä  é € Ø�
‰
�;ÓÐ#L¤WÐ#L¨jÐ#L¸'Ð#LÀ8Ð#LÔLØ—‘ i×&8Ñ&8Ô8¸\ÈVÔ=SÜ˜9¨SÔ9Ü�y vÓ.€EØ×Ñ×!Ñ! %×"2Ñ"2Ó3€DØ‚|Ü$ Y°sÈ%ÔP×PÐPð ‡z�z�+Ó *Ô,ð —?—?—?“?Ü*¨9¸SÐVZ×VhÑVhÐpuÔv×vˆF÷ #—?�?ð ×%×%×%Ó%ðZÜ.¨yÀÐTYÔZ×Z�÷ &×%ð ‡z�z�+ÓÐ"A¤GÐ"A¨ZÐ"A¸Ð"AÔAÌ,ÐW[ÐdoÕ]p×JqÒJqØ×Ñ˜CÔ Ø€Mñ- Qñ #Ùv÷ #—?—?’?úñ &áZøÜ%Ð@Ô(?Ñ@ô Zà—:‘:˜kÓ*¨gÔ5¼ÀÀhÐP^Ó9_ÐcqÔ9qØÝDä$×.Ò.¨zÀeÐRXÓY×YÐYÔY÷ &×%Ó%ûðZú÷ &×%×%Ó%üs  ‚BIÂFÂ2IÃFÃIÃFÃ-FÃ.FÃ2IÃ=FÃ>IÄF6ÄIÄH?Ä!F:Ä2F8Ä3F:Ä7IÅH=ÅAIÆIÆFÆIÆF3	Æ F#Æ!
F3	Æ,F3	Æ.	IÆ8F:Æ:H:ÇA
H5ÈH
ÈH5ÈH:ÈH?È!IÈ.H1È/IÈ5H:È:H?È=IÈ?I	ÉIÉ
I	ÉI	É	IrT   r:   c          
   ƒ   óx  aaaa"  € \        V4      R 0,
          \        8w  g   VR,          SP                  8w  d   \        R4      hVR,          o\	        S\
        4      '       d   S\        9   d   VP                  R 4      f   \        R4      h^ RIH	p V! SVR,          4      w  rx/ VCRV/CpRp	RoSR8X  d   \        V SSV4      oM\        V SSW54      p	SR	8X  d   R
SP                  9  d   \        R4      hV P                  4        V P                  P                  T;'       g    SP                  4      p
\        V
S4      '       d0   ^ RIHp T! T ST;'       g    SW£SP$                  R7      G Rj  x€L
 # VVVV3R lp\'        T SY8SP$                  V	'       g   SR8X  d   TMRVR7      G Rj  x€L
 #  LA L5i)Úexpected_generationr2   r   r/   N)Úprivate_mutation_payloadr   Fr   Úbranchr   r   )Úapply_chat_pick)Úprincipal_idc                 óŒ   <€ ^ RI HpHp SR8X  d   V! V SS4       R# V! V SSP                  RR7      '       g   \	        R4      hR# )rG   )r-   Úimport_history_controlr   NT)Úclaimr   )r4   r-   rk   r2   r   )r<   r-   rk   r#   Úimported_idsr/   r$   s   &  €€€€r   Úauthorize_writeÚ(_mutate_session.<locals>.authorize_write¨   sD   ø€ ß[Ø˜Ô Ù" 4¨°Ô=ÙÙ   u¨c¯n©nÀD×IÓIÜ#Ð$7Ó8Ð8ñ Jr)   )ri   rn   rT   )ÚsetÚ_FIELDSr2   r   Ú
isinstanceÚstrrY   r7   Úgateway.session_local_mcprf   r(   r=   r   rJ   r   r   Úgateway.session_messaging_picksrh   r1   Úwrite_mutation)r"   r#   r$   r%   rT   r:   rf   r   Úeditor_serversr;   ra   rh   rn   rm   r/   s   &ff&$$       @@r   rZ   rZ   Ž   sš  ûé € ÜˆF‹Ð,Ð-Õ-´Ô8Ø�lÕ# s§~¡~Ô5ÜÐ 0Ó1Ð1Ø�{Õ#€IÜ�i¤×%Ò%¨)´wÔ*>À6Ç:Á:ÐNcÓCdÒClÜÐ 0Ó1Ð1ÝBá6°yÀ&ÈÕBSÓTÑ€GØ+�Ð+˜	 7Ñ+€FØ€LØ€LØ�HÔÜ(¨°E¸3ÀÓG‰ä)¨)°U¸CÀÓOˆØ�HÔÐ!1¸×9KÑ9KÔ!KÜÐ 3Ó4Ð4Ø×%Ñ%Ô'Ø×Ñ×!Ñ! 5§< <¨C×";Ñ";Ó<€DÜ�D˜)×$Ò$åCÙ$ Y°°U·\°\¸cÀ4Ð^c×^kÑ^kÔl×lÐl÷9ð 9ô   	¨3°ÐUZ×UbÑUbßCOÐS\Ð`hÔSh±ÐnrØ,7ô9÷ 9ð 9ñ mñ9ùs0   †D F:Ä'5F:ÅF:Å4F6Å5<F:Æ1F8Æ2F:Æ8F:c                ó$   € V ^8„  d   QhR\         /# )é   Úreturn)Úbool)Úformats   "r   Ú__annotate__r}   µ   s   € ÷ Cñ C¬$ñ Cr)   c                óÒ   a € \        S RR4      p\        VRR4      pVe;   \        ;QJ d    V 3R lV 4       F  '       g   K   R# 	  R# ! V 3R lV 4       4      # \        VRR4      S J # )uü  Whether *authority* is one of its own runner's authorities, so one process coordinates
both writes of a delete: the receipt commit to ``authority.db`` and the routing retire
through the runner store's routing index. Raw ``db_path`` equality only ever holds for the
launch home â€” the routing index is pinned to the launch home for every profile (#66887) â€”
so a multiplexed secondary profile's store never compares equal and each of its deletes
was refused with ``runtime_coordination_required`` (#138826).ÚrunnerNÚsession_authoritiesc              3   ó*   <"  € T F  qSJ x € K
  	  R # 5i©Nr   )r   Úar"   s   & €r   r   Ú*_runtime_owns_authority.<locals>.<genexpr>¿   s   øé € Ð4©8 a˜	•>«8ùs   ƒTFÚsession_authority)r]   Úany)r"   r   Úregistrys   f  r   Ú_runtime_owns_authorityrˆ   µ   sf   ø€ ô �Y ¨$Ó/€FÜ�vÐ4°dÓ;€HØÒß‹sÔ4©8Ó4�sŒsÐ4ŠsÐ4ˆsÔ4©8Ó4Ó4Ð4Ü�6Ð.°Ó5¸ÐBÐBr)   rn   c             ƒ  óB  a aaa"  € VR,          oS P                   P                  VP                  4      pRoVV V3R lp\        S P                  WAP                  VR,          VR,          VP                  R4      SVR,          VR7	      oV V3R	 lp	R
p
SR8X  d   ^ RIHp V! S WV	4      G R
j  x€L
 w  r£S0 \        mRk9   d�   V	! 4       G R
j  x€L
 p
RV
9   dw   ^ RIH	p ^ RI
Hp ^ RIHp ^ RIHp RVRV/VCR\        WóR7      /CS,          pV! S WrR,          V
4      G R
j  x€L
 p
V
P                  R4      R 9   d   RVP                  RS/V
C# RoT;'       g    \!        4       ;_uu_4       GR
j  x€L
  V
e   RV
9  d   T
pMn\        \"        S P$                  3/ SBRV
RV/B pSR8X  d)   ^ RIHp \        VS P$                  VP                  V4      p\*        P,                  ! V4      G R
j  x€L
 p \/        S WVVVSR7      G R
j  x€L
  SR8X  dB   S'       d:   T
;'       g    / P                  R4      '       d   ^ RI
Hp V! S V
V4      G R
j  x€L
  R
R
R
4      GR
j  x€L
  SR8X  d0   ^ RIHp \*        P,                  ! TS P$                  4      G R
j  x€L
  X#  ELï ELÒ EL€ EL4 Lº L¢ L\  SR8X  dF   S'       d=   T
;'       g    / P                  R4      '       d   ^ RI
Hp T! S T
T4      G R
j  x€L 
  i i i i ; i LŸ  + GR
j  x€L 
 '       g   i     L¶; i L‡5i)!a  The writer phase of ``session.mutate``, and of the admission-start editor MCP re-freeze
(``refreeze_editor_mcp``): fenced prepare, the receipt commit, then its runtime projections.
The caller authorized the change and holds the session's locks; this takes neither.r/   Fc                 ó@  <€ R oS\         9   g   SR8X  d   R# SR8X  dF   \        SP                  RR4      pVe+   VP                  e   \	        S4      '       g   \        R4      hSR9   d4   \        \        SP                  RR4      4      '       g   \        R4      hR# R# )Tr   Nr	   Úsession_storeÚruntime_coordination_requiredÚ_evict_cached_agent>   rR   rS   )Ú	_METADATAr]   r   Ú_routing_dbrˆ   r   Úcallable)ÚtargetsÚstoreÚappliedr"   r/   s   & €€€r   Ú
live_guardÚ"write_mutation.<locals>.live_guardÌ   s™   ø€ àˆØœ	Ô! Y°(Ô%:Ùð ˜Ô Ü˜I×,Ñ,¨o¸tÓDˆEØÒ  e×&7Ñ&7Ò&?Ü2°9×=Ò=Ü'Ð(GÓHÐHØÐ+Ô+´H¼WÀY×EUÑEUÐWlÐnrÓ=s×4tÒ4tÜ#Ð$CÓDÐDñ 5uÑ+r)   r,   Úexpected_revisionre   r   )	Úepochri   r2   r,   r–   re   r/   r   Ú_live_guardc               “   ót   <"  € \         P                  ! \        S P                  3/ SBR R/B G Rj  x€L
 #  L5i)Ú_prepare_onlyTN)rL   r_   r   r   )r"   Úfieldss   €€r   Úprepare_onlyÚ$write_mutation.<locals>.prepare_onlyá   s/   øé € ä×&Ò&Ô'=¸y¿|¹|ÑjÈvÑjÐeiÒj×jÐjÑjùs   ƒ.8±6²8Nrg   )Úprepare_branch_editorrQ   Úsnapshot)Úprepare_model)Úprepare_compress)ÚPREPARE)Úprepare_editor_mcprU   Ú
editor_mcp)ÚserversÚstatusr2   Ú	_preparedÚ_authorize_writer	   )Úending_run_on_delete)r“   Úpost_compaction)Úfire_post_compaction_hook)Úcollect_retired_media>   ÚnoopÚpreviewÚconfirmation_required)r   r7   r2   Údictr—   rt   rž   rY   Úgateway.session_mutation_modelr    Ú!gateway.session_mutation_compressr¡   Úgateway.session_mutation_policyr¢   r£   r   r   r   r   Úgateway.session_onboardingr©   rL   r_   Ú_project_resultr«   Úhermes_state_mediar¬   )r"   r$   r%   rw   ri   rn   rT   ra   r”   rœ   Úpreparedrž   r    r¡   r¢   r£   Úpreparerb   Úcommitr©   r«   r¬   r“   r›   r/   s   f&&&$$$               @@@r   rv   rv   Ã   sñ  ûé € ð
 �{Õ#€IØ×Ñ×!Ñ! #§.¡.Ó1€DØ€G÷Eô  ˜	Ÿ™°lÏ~É~Ø# LÕ1ÀVÐL_ÕE`Ø&,§j¡jÐ1FÓ&GÐS\Ø  Õ+¸ôE€Fö
kð €HØ�HÔÝCá)>¸yÈ#Ð_kÓ)l×#lÑ ˆØÐ*”gÐ*˜zÐ*Ô*Ù%›×'ˆØ˜Ô!ÝDÝJÝ?ÝDØ ¨zÐ;Kð ZÈwð ZØ#¤WÐ-?Ô%XñZØZcõeˆGá$ Y°¸YÕ6GÈÓR×RˆHØ�|‰|˜HÓ%Ð)UÔUð % c§n¡n°kÀ9ÐYÐPXÐYÐYØ€GØ×+Ð+œk›m×+×+Ñ+ØÒ J°hÔ$>ð ‰Fô Ô3°Y·\±\ñ SÀVñ SØ'/ðSØBQòSˆFà˜HÔ$ÝKÜ Ð!5°y·|±|ÀSÇ^Á^ÐU[Ó\�Ü"×,Ò,¨VÓ4×4ˆFð	MÜ! )¨S¸ÀÈÐ`gÔh×hÐhð ˜JÔ&¯7¸¿¸ÀB×7KÑ7KÐL]×7^Ò7^ÝWÙ/°	¸8ÀVÓL×LÐL÷- ,×+ð. �HÔõ 	=Ü×ÒÐ 5°y·|±|ÓD×DÐDØ€Mò[ $mâ'ò Sò ,ñ 5áhñ Møð ˜JÔ&¯7¸¿¸ÀB×7KÑ7KÐL]×7^Ò7^ÝWÙ/°	¸8ÀVÓL×LÒLð 8_¨7Ð&ú÷) ,×+×+Ò+úñ6 	Eùs  †B'LÂ-JÂ.LÃJÃALÄ"J"Ä#6LÅLÅ1J%Å2LÅ5A8LÇ-J(Ç.LÇ3J.ÈJ*ÈJ.ÈLÈLÈ$LÈ<LÉJ,ÉLÉLÉK?É 5LÊLÊLÊLÊ"LÊ%LÊ(LÊ*J.Ê,LÊ.K<Ê>K<ËK<ËK<Ë2K5Ë3	K<Ë<LË?LÌL	ÌL
Ì
L	ÌL	Ì	Lc             ƒ  óv  "  € VR,          pV P                   P                  VP                  4      pVRJ;'       d,    VR,          VP                  RVP                  R4      4      8H  p	VR8X  d%   V'       d   V	'       d   Ve   ^ RIHp
 V
! WV4       MVR8X  d   V'       d   Ve   ^ Vn        Vew   VR	8X  g	   V	'       dh   ^ R
IHp V! WP                  RVP                  4      V4       VR8X  d8   V'       g0   ^ RIH	p \        P                  ! WÀVP                  4      G Rj  x€L
  V0 \        mRkRkRk9  g	   V	'       d:   VR8X  d'   ^ RIHp  \        P                  ! WÐV4      G Rj  x€L
  \%        WWt4       Ve‚   VR8X  d.   V	'       d&   V P&                  P)                  VP*                  4       V'       dD   TP,                  P/                  VP                  VRR7       ^ RIHp V! W!P                  V4       R# R# R#  Lß L™  \         d&    \         P#                  RTP                  RR7        LÆi ; i5i)zÒA committed receipt's projections, under the writer's commit lock. They are idempotent reads
of the committed receipt, so exact retries repeat them (like delete's retirement); only the
one-shot event is fenced.r/   NÚruntime_generationÚexecution_generationre   rQ   )Únote_compressionrR   rg   )Úinstall_editor_mcpÚbranched_session_idr¤   )Úretire_editor_mcprS   Ú	workspace)Údrop_session_terminalz:Session %s moved without dropping its terminal environmentT©Úexc_infozsession.updated©Ú
event_type)Úannounce_tools_changed)r   Úget_sessionr2   r7   Úgateway.session_usager½   Úcompression_countrt   r¾   rÀ   rL   r_   rY   Úgateway.session_policy_refreshrÂ   Ú	ExceptionÚloggerÚwarningÚ_project_committedr   r�   ÚrouteÚevent_streamÚpublishrÇ   )r"   r$   ra   r%   rb   rw   r“   r/   ÚcurrentÚowns_projectionr½   r¾   rÀ   rÂ   rÇ   s   &&&&&&$        r   rµ   rµ     så  é € ð �{Õ#€IØ�l‰l×&Ñ& s§~¡~Ó6€GØ TÐ)÷ pð pØÐ$Õ%¨¯©Ð4JÈFÏJÉJÐWlÓLmÓ)nÑnð à�JÔ§7¯À4ÒCSå:Ù˜¨Õ.Ø	�gÔ	§'¨dÒ.>Ø!"ˆÔØÒ! y°HÔ'<Çå@Ù˜9§j¡jÐ1FÈÏÉÓ&WÐYgÔhØ˜Ô$¯^åCÜ×#Ò#Ð$5À#Ç.Á.ÓQ×QÐQØÐAœ'ÐA 7ÐA¨JÐA¸ÐAÔAÇ_Ø˜Ô#õ
 Mð.Ü×'Ò'Ð(=È#ÓN×NÐNô 	˜9¨9Ô=ØÒØ˜Ô §_Ø×Ñ×0Ñ0°·±Ô<ßØ×Ñ×%Ñ% c§n¡n°fÐIZÐ%Ô[ÝHÙ" 4¯©¸Ö@ñ ñ ñ Rñ OøÜô .Ü—‘Ð[Ð]`×]kÑ]kØ(,ð ö .ð.üsy   ‚A4H9Á7H9Á?"H9Â"H9Ã 7H9Ã8*H9Ä"HÄ#H9ÅH9ÅH Å*HÅ+H Å/H9Æ,H9Æ;AH9ÈH È-H6È3H9È5H6È6H9c                ó  € V\         9   d/   ^ RIHp V! WP                  VR8g  R7       V P	                  V4       VR8X  g   VR8X  dk   RV9   dd   V P
                  P                  V P                  VP                  ,          P                  R4       RV P                  VP                  ,          n	        VR9   dP   ^ RIH
p V P                  VP                  ,          P                  P                  VP                  V! W4      R	R
7       VR8X  d   ^ RIHp V! WR,          4       VR9   Ed1   ^ RIHp V! WP                  4       \        V P
                  RR4      ;'       g    V P
                  P                   pV! V P                  VP                  ,          P                  4       ^ RIHp ^ RIHp	 V P
                  P*                  p
V
P,                  ;_uu_ 4        V	P/                  V! V P0                  VP                  4      R,          4      pV P                  VP                  ,          P2                  Vn        WºP6                  VP8                  &   RRR4       VR8X  d   \;        WR,          RR7       R# R#   + '       g   i     L/; i)zRPublish a committed receipt's runtime projections (safe to repeat on exact retry).)Úpublish_local_policyÚedit_policy)ÚevictÚ	reasoningrU   ÚeffortN)Úlocal_session_infozsession.inforÅ   rg   )Úrestore_local_sessionr¿   Ú_evict_cached_agent_at_boundary)Úlocal_receipt)ÚSessionEntryÚentryr	   Údeleted_idsT)Úrequire_fence>   rU   rÙ   rÁ   r×   >   rR   rQ   )rY   Úgateway.session_localrÖ   r2   r`   r   Ú_set_session_reasoning_overrider   rÐ   Úpending_reasoningrÛ   rÑ   rÒ   Úgateway.session_local_recoveryrÜ   r]   r�   rE   rÞ   Úgateway.sessionrß   r‹   Ú_lockÚ	from_dictr   ÚsourceÚoriginÚ_entriesÚsession_keyÚretire_live_sessions)r"   r$   r/   rb   rÖ   rÛ   rÜ   rØ   rÞ   rß   r’   rà   s   &&&&        r   rÏ   rÏ   E  sî  € à”GÔÝ>á˜Y¯©¸iÈ=Ñ>XÕYð 	×Ñ˜CÔ Ø�KÔ I°Ô$8¸XÈÔ=Oð 	×Ñ×8Ñ8¸×9KÑ9KÈCÏNÉNÕ9[×9aÑ9aÐcgÔhØ?Cˆ	×Ñ˜3Ÿ>™>Õ*Ô<ØÐFÔFõ 	=Ø×Ñ˜3Ÿ>™>Õ*×7Ñ7×?Ñ?Ø�N‰NÑ.¨yÓ>È>ð 	@ô 	[à�HÔÝHÙ˜iÐ0EÕ)FÔGØÐ)Õ)ÝHÙ˜i¯©Ô8ä˜	×(Ñ(Ð*KÈTÓR×zÐzÐV_×VfÑVf×VzÑVzˆÙˆi× Ñ  §¡Õ0×6Ñ6Ô7õ 	5Ý0Ø× Ñ ×.Ñ.ˆØ�[�[‹[Ø ×*Ñ*©=¸¿¹ÀsÇ~Á~Ó+VÐW^Õ+_Ó`ˆEØ$×-Ñ-¨c¯n©nÕ=×DÑDˆEŒLØ05�N‰N˜5×,Ñ,Ñ-÷ ð �HÔô 	˜Y¨}Õ(=ÈT×Rñ ÷	 �[ús   ÇA8I;É;J	râ   Fc               ó°  € \        V P                  RR4      pRpVeû   VP                  V4       \        VRR4      pV'       d¦   Ve¢   VP                  V P                  P                  8w  d}    ^ RIHp ^ RIHp \        V P                  RR4      pVe   VP                  V 4      MRp	VP                  W! V	4      P                  R^4      ^,          V! V P                  V4      R7       \        VRR4      pV'       d   \        V4      '       d
    V! V4       ^ RIHpHp V! W4       V! W4       ^ RIHp V F‰  pV! V P*                  V34       V P,                  P/                  VR4      pVf   K9  VP0                  '       d   KM  \        V P                  RR4      p\        V4      '       g   Kw  V! VP2                  4       K‹  	  ^ RIHp V! W4       ^ RIHp V! W4       Ve   V'       d   \=        R4      VhR# R#   \         d%   p
\        P                  R	R
R7       T
p Rp
?
EL>Rp
?
ii ; i  \         d    \        P                  RR
R7        EL<i ; i)a`  Drop committed deletions from this owner's memory: routes, launch secrets, live sessions
and their cached agents. Shared by canonical delete and the owner-run bulk prune.
``require_fence``: refuse ``storage_unavailable`` when the shared routing fence could not be
written (canonical delete, whose exact retry replays the receipt and repeats this call).r‹   Nr�   )Ú_session_key_namespace)Úexpiring_retirementsr€   Ú:)Ú	namespaceÚexpiringz8could not fence shared routing rows for deleted sessionsTrÃ   Ústrip_retired_mirror_routesz1could not strip retired routes from sessions.json)Úrelease_launch_secretsÚrelease_session_workspaces)Úallow_for_sessionr�   )Úrelease_editor_mcp)Úrelease_session_prefillÚstorage_unavailable)r]   r   Úretire_runtime_sessionsÚdb_pathr   rç   rð   r0   rñ   Úprofile_nameÚfence_retired_routesÚsplitrÌ   rÍ   rÎ   r�   Úgateway.session_policyrö   r÷   Útools.async_delegationrø   r   r   Úpopr9   rÐ   rt   rù   Ú gateway.session_worker_constructrú   r   )r"   Úsession_idsrâ   r’   Úfence_errorÚroutingrð   rñ   r‡   Úprofilerc   Ústriprö   r÷   rø   ÚsidÚ	candidaterØ   rù   rú   s   &&$                 r   rî   rî   r  s  € ô
 �I×$Ñ$ o°tÓ<€EØ€KØÒØ×%Ñ% kÔ2ô ˜% °Ó5ˆß˜7Ò.°7·?±?ÀiÇlÁl×FZÑFZÔ3Zð
"ÝBÝQÜ" 9×#3Ñ#3Ð5JÈDÓQ�Ø>FÒ>R˜(×/Ñ/°	Ô:ÐX\�Ø×*Ñ*ØÐ+AÀ'Ó+J×+PÑ+PÐQTÐVWÓ+XÐYZÕ+[Ù1°)·,±,ÀÓLð +ô Nô ˜Ð<¸dÓCˆßœ8 EŸ?š?ðcÙ�kÔ"÷ ZÙ˜9Ô2Ù˜yÔ6Ý8Ûˆá˜9×/Ñ/°Ð5Ô6Ø×&Ñ&×*Ñ*¨3°Ó5ˆ	ØÔ ¨×)=×)=Ò)=Ü˜I×,Ñ,Ð.CÀTÓJˆEÜ˜�ŒÙ�i—o‘oÖ&ñ õ =Ù�yÔ.ÝHÙ˜IÔ3ØÒ§=ÜÐ 5Ó6¸KÐGñ $1Ñøô9 ô "Ü—‘ÐYÐdh�ÔiØ!–ûð"ûô ô cÜ—‘ÐRÐ]a�×bðcús+   Á.A;G= ÄH/ Ç=H,ÈH'È'H,È/"IÉI>   ÚrenameÚarchiveÚsidebar>   rU   rÙ   rÁ   r¤   r×   >   r   r/   r,   r2   r–   r‚   )"Ú__doc__rL   ÚloggingÚ
contextlibr   Ú	functoolsr   ru   r   r   Úhermes_state_mutation_guardsr   Úhermes_state_runtimer   r   Ú	getLoggerÚ__name__rÍ   Ú	frozensetrŽ   rY   rC   rq   r(   r=   r3   rO   rK   rZ   rˆ   rv   rµ   rÏ   rî   r   r)   r   Ú<module>r     sÊ   ðñó Û Ý "Ý ç DÝ @ß Jà	×	Ò	˜8Ó	$€áÒ6Ó7€	á
ÒTÓ
U€à  
Õ*Ð Ù
Ò]Ó
^€ò?ôò<Qò>&òð@$9Èð $9ÐTXô $9õNCðSÐbfð SØ%)ôSòl)AòX*SðZ8HÀ%ö 8Hr)   