+
    jHàjÉ  ã                   óN   € R t ^ RIt]P                  ! R4      tR tR tR tR tR# )a.  Accounting at completion of an exact heartbeat admission attempt.

Execution means entering the gateway's agent runner after turn preparation,
not reserving an adapter slot, successful model completion, or outbound delivery.
The done callback retains the watch's profile ContextVars and manager claim.
Nzgateway.runc              ƒ  óô   a aa"  € \        VRR4      oS'       g   R# SP                  pVS8w  d*   VVV 3R lpS P                  V4      G Rj  x€L
 pWS8w  d   R# W1n        \	        S VSP
                  4      #  L)5i)zIKeep normal reset/topic resolution, then admit only the original lineage.Ú_heartbeat_session_idNTc                  ól   <€ SP                   P                  S P                  4      P                  S4      # )N)Úsession_storeÚ_db_for_keyÚsession_keyÚget_compression_tip)ÚentryÚexpectedÚrunners   €€€ÚE/home/ubuntu/.hermes/hermes-agent/gateway/run_heartbeat_acceptance.pyÚcompression_tipÚ0resolve_heartbeat_owner.<locals>.compression_tip   s,   ø€ Ø×'Ñ'×3Ñ3°E×4EÑ4EÓF×ZÑZÐ[cÓdÐdó    F)ÚgetattrÚ
session_idÚ_run_in_executor_with_contextÚ_heartbeat_resolved_session_idÚheartbeat_owner_is_currentr   )r   Úeventr	   Úresolvedr   Útipr
   s   f&f   @r   Úresolve_heartbeat_ownerr      st   úé € ä�uÐ5°tÓ<€HßÙØ×Ñ€HØ�8Ô÷	eð ×8Ñ8¸ÓI×IˆØŒ?Ùð ,4Ô(Ü% f¨e°U×5FÑ5FÓGÐGñ Jùs   …AA8ÁA6Á*A8c                 óÎ   € \        VR R4      pV'       g   R# V P                  P                  V4      pVRJ;'       d)    VP                  '       * ;'       d    VP                  V8H  # )r   NT)r   r   Úlookup_by_session_keyÚ	suspendedr   )r   r   r   r
   Úcurrents   &&&  r   r   r      s]   € Ü�uÐ>ÀÓE€HßÙØ×"Ñ"×8Ñ8¸ÓE€GØ˜$Ð×[Ð[ w×'8Ñ'8Ô#8×[Ð[¸W×=OÑ=OÐS[Ñ=[Ð[r   c                 ó¤   € \        V R R4      '       g    VP                  4        R# R#   \         d    \        P	                  RRR7        R# i ; i)Ú_heartbeat_execution_startedFz%Failed to refund unexecuted heartbeatT)Úexc_infoN)r   Úabandon_fireÚ	ExceptionÚloggerÚwarning)r   Úmanagers   &&r   Úsettle_heartbeat_attemptr%   '   sN   € Ü�5Ð8¸%×@Ò@ð	SØ× Ñ Ö"ñ Aøô ô 	SÜ�N‰NÐBÈTˆN×Rð	Sús   •) ©"AÁAc           
   ƒ  ó”  "  € ^ RI p^ RIHp ^ RIHp ^ RIHp ^ RIHp	 V	! V 4      p
V
f   R# V! V
P                  V
P                  V4      R7      p\        ;QJ d    R V 4       F  '       g   K   RM	  R	M! R V 4       4      '       d   R# V! V4      pVP                  4       pVf   R# VP                  pVP                  R
W>P                  VP                   .RR7      pV! WÒRVRVRV/R7      pVVn         V
P%                  VVV4      G Rj  x€L
  R#  L  \&         d$    \)        TRR	4      RJd   TP+                  4        h i ; i5i)zLCoalesce overdue ticks behind the canonical FIFO, not an adapter-local slot.N)ÚMessageEvent)ÚHeartbeatManager)Úlist_session_admissions)Úactive_authority)r   c              3   óò   "  € T Fm  pVR ,          P                  R/ 4      P                  R/ 4      P                  R4      ;'       g)    VR ,          P                  R/ 4      P                  R4      x € Ko  	  R# 5i)ÚpayloadÚnative_text_v1Ú
automationÚ	heartbeatÚlocal_automation_v1N)Úget)Ú.0Úrows   & r   Ú	<genexpr>Ú"admit_heartbeat.<locals>.<genexpr>=   su   é € ð aÙX_ÐQTð ˆy�>×ÑÐ.°Ó3×7Ñ7¸ÀbÓI×MÑMÈkÓZ÷ Mð MØ�)�n× Ñ Ð!6¸Ó;×?Ñ?ÀÓLôMÛX_ùs   ‚AA7Á1A7TFr/   )Ú
separatorsÚgateway_session_keyÚgateway_session_id)ÚtextÚsourceÚinternalÚ
message_idÚmetadataÚ_gateway_accepted)Ú,Ú:)ÚjsonÚgateway.platforms.eventr'   Úhermes_cli.heartbeatr(   Úhermes_state_runtimer)   Úgateway.session_authoritiesr*   ÚdbÚlogical_ownerÚanyÚ
due_promptÚstateÚdumpsÚ
created_atÚ
fire_countr   Úadmit_automationÚBaseExceptionr   r    )r   Úadapterr:   r   ÚrouterA   r'   r(   r)   r*   Ú	authorityÚpendingr$   ÚpromptrJ   Úidentityr   s   &&&&&            r   Úadmit_heartbeatrV   /   s>  é € ãÝ4Ý5Ý<å<Ù  Ó(€IØÒÙñ & i§l¡l¸y×?VÑ?VÐWaÓ?bÔc€Gß
ƒsñ aÙX_óa‡s‡s‚sñ aÙX_óa÷ aò aáÙ˜zÓ*€GØ×ÑÓ!€FØ‚~ÙØ�M‰M€EØ�z‰z˜;¨
×4DÑ4DÀe×FVÑFVÐWÐdnˆzÓo€HÙ˜f¸dÈxØ'¨Ð0DÀjÐQôS€Eà",€EÔðØ×(Ñ(¨°%¸ÓB×BÔBøÜô ä�5Ð-¨uÓ5¸TÓAØ× Ñ Ô"Øð	üsC   ‚AEÁEÁ/EÂ
A-EÃ8D ÄDÄD ÄEÄD Ä.EÅE)Ú__doc__ÚloggingÚ	getLoggerr"   r   r   r%   rV   © r   r   Ú<module>r[      s6   ðñó à	×	Ò	˜=Ó	)€òHò&\òSô r   