+
    iHàj�#  ã                   ó$   € R t R t ! R R4      tR# )zQConcrete worker compression APIs; scope and receipts stay in RuntimeSessionStore.c                óØ   € ^ RI Hp V  UUUu. uFG  p\        V\        4      '       d-   VP	                  4        UUu/ uF  w  r4W19   g   K  W4bK  	  uppMTNKI  	  uppp# u uppi u upppi )aÀ  Project live compaction dicts onto the owner's closed handoff fields.

Micro-compaction and proactive prune hand over the live list, whose dicts carry worker-local
bookkeeping (``_db_persisted``, ``_micro_compact_marker``, a tool row's wire ``name``, risk tags)
that SessionDB's insert simply never reads. The owner's boundary stays closed; sending those keys
would fail the receipt and leave the journal stuck pending, refusing every later write.
©ÚHANDOFF_MESSAGE_FIELDS)Úhermes_state_runtimer   Ú
isinstanceÚdictÚitems)Úmessagesr   ÚmÚkÚvs   &    ÚF/home/ubuntu/.hermes/hermes-agent/agent/runtime_session_compression.pyÚ_handoff_rowsr      se   € õ <áõÙ�ô LVÐVWÔY]×K^ÒK^˜aŸg™gœiÔG™i‘d�a¨1Ñ+FŒTˆQŠT™iÓGÐdeÒeÙóð ùÓGùô s   �.A%»
AÁ
AÁ
A%ÁA%c                   óú   a € ] tR t^t o R tR tR tR tR tR t	R t
R tR	 tR*R ltR tR+R ltRRRRRRRRRRRRRRRR
RRRRRR/R ltR 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' tR( tR)tV tR# ).ÚRuntimeSessionCompressionMixinc           
     óœ   € V P                  V4       V P                  R \        VW4VR7      4      p^ RIHp V! W&R,          4       VR,          # )zcompression.append)r	   Úcompression_lock_holderÚturn_lease_holderÚturn_lease_ttl_seconds©Úapply_row_annotationsÚannotationsÚcount)Ú_sessionÚ_applyr   Úagent.runtime_session_storer   )ÚselfÚ
session_idr	   r   r   r   Úresultr   s   &&&&&&  r   Ú_append_compression_messagesÚ;RuntimeSessionCompressionMixin._append_compression_messages   sK   € à�‰�jÔ!Ø—‘Ð1´4ÀØ$;Ø#9ô4;ó <ˆõ 	FÙ˜h¨}Õ(=Ô>Ø�g�Ðó    c                óæ   € WP                   R ,          8w  dA   ^ RIHp V P                  RRV P                   R ,          /4      R,          pW9  d	   V! R4      hV P                  RRV/4      R,          # )r   ©ÚWorkerPersistenceErrorúcompression.lineageÚtargetÚreadable_idsÚpermission_deniedzcompression.contextÚsession)Úscoper   r$   r   )r   r   r$   Úidss   &&  r   Úget_sessionÚ*RuntimeSessionCompressionMixin.get_session   sg   € ØŸ™ LÕ1Ô1ÝJØ—+‘+Ð3°hÀÇ
Á
È<Õ@XÐ5YÓZÐ[iÕjˆCØÔ$Ù,Ð-@ÓAÐAØ�{‰{Ð0°8¸ZÐ2HÓIÈ)ÕTÐTr!   c                ó8   € V P                  R RV/4      R,          # )r%   r&   Úlineage©r   ©r   r   s   &&r   Úget_compression_lineageÚ6RuntimeSessionCompressionMixin.get_compression_lineage$   s   € Ø�{‰{Ð0°8¸ZÐ2HÓIÈ)ÕTÐTr!   c                ó8   € V P                  R RV/4      R,          # )r%   r&   Úrootr0   r1   s   &&r   Úget_conversation_rootÚ4RuntimeSessionCompressionMixin.get_conversation_root'   s   € Ø�{‰{Ð0°8¸ZÐ2HÓIÈ&ÕQÐQr!   c                ó8   € V P                  R RV/4      R,          # )r%   r&   Útipr0   r1   s   &&r   Úget_compression_tipÚ2RuntimeSessionCompressionMixin.get_compression_tip*   s   € Ø�{‰{Ð0°8¸ZÐ2HÓIÈ%ÕPÐPr!   c                ó8   € V P                  R RV/4      R,          # )r%   r&   Úresumer0   r1   s   &&r   Úresolve_resume_session_idÚ8RuntimeSessionCompressionMixin.resolve_resume_session_id-   s   € Ø�{‰{Ð0°8¸ZÐ2HÓIÈ(ÕSÐSr!   c                óJ   € \        V P                  R RV/4      R,          4      # )r%   r&   Úidentity)Útupler   r1   s   &&r   Údeclared_scope_identityÚ6RuntimeSessionCompressionMixin.declared_scope_identity0   s$   € Ü�T—[‘[Ð!6¸À:Ð8NÓOÐPZÕ[Ó\Ð\r!   c                ó2   € V P                  V4      ^ ,          # )é    )rC   r1   s   &&r   Úis_explicit_fork_childÚ5RuntimeSessionCompressionMixin.is_explicit_fork_child3   s   € Ø×+Ñ+¨JÓ7¸Õ:Ð:r!   c                ó<   € V P                  R RVRV/4      R,          # )zcompression.boundaryÚsession_keyÚsourceÚvaluer0   )r   rJ   rK   s   &&&r   Úlatest_conversation_boundaryÚ;RuntimeSessionCompressionMixin.latest_conversation_boundary6   s%   € Ø�{‰{Ð1°MÀ;ÐPXÐZ`Ð3aÓbÐcjÕkÐkr!   Fc                óL   € V P                  R \        WW4WVR7      4      R,          # )zcompression.history)r&   Úinclude_ancestorsÚinclude_inactiveÚrepair_alternationÚinclude_row_idsÚinclude_compactedr	   )r   r   )r   r   rP   rQ   rR   rS   rT   s   &&&&&&&r   Úget_messages_as_conversationÚ;RuntimeSessionCompressionMixin.get_messages_as_conversation9   s1   € à�{‰{Ð0´$¸jØ-Ø+ô3Ró SàS]õ_ð 	_r!   c                óV   € V P                  V4       V P                  R / 4      R,          # )zcompression.watermarkrL   ©r   r   r1   s   &&r   Úget_active_message_watermarkÚ;RuntimeSessionCompressionMixin.get_active_message_watermark?   s%   € Ø�‰�jÔ!Ø�{‰{Ð2°BÓ7¸Õ@Ð@r!   Nc                óª  € V P                  V4       T;'       g    .  Uu. uF&  p\        V\        4      '       g   K  \        V4      NK(  	  ppV	f   R M2V	 Uu. uF&  p\        V\        4      '       g   K  \        V4      NK(  	  upp^ RIHp V
f   R M`V
 UUUu. uFP  p\        V\        4      '       g   K  VP                  4        UUu/ uF  w  ppWþ9   g
   VR8X  g   K  VVbK  	  uppNKR  	  uppppV P                  R\        \        V4      W4VWlVVVR7	      4      p^ RIH	p V! VVR,          4       VR,          # u upi u upi u uppi u upppi )Nr   Ú_db_persistedzcompression.archive)	r	   Úmodel_config_patchÚ	watermarkÚlock_holderÚ
tail_countÚcarried_messagesÚcovered_idsÚunresolved_heldÚheld_for_casr   r   rL   )
r   r   r   r   r   r   r   r   r   r   )r   r   Úcompacted_messagesr]   r^   r_   r`   ra   rb   rc   rd   r
   ÚcarriedÚ
unresolvedr   r   r   Úcasr   r   s   &&&&&&&&&&&         r   Úarchive_and_compactÚ2RuntimeSessionCompressionMixin.archive_and_compactC   sE  € ð 	�‰�jÔ!ð %5×$:Ð$:¸Ð$:ÓRÑ$:˜q¼jÈÌD×>Q”7”4˜–7Ñ$:ˆÐRØ,Ò4‘TÉOÓ:sÉOÀqÔ_iÐjkÔmq×_r¼7¼4À¾7ÉOÑ:sˆ
õ 	@Ø"Ò*‰dñ "õ1:ñ "�¤Z°´4×%8ôE˜aŸg™gœiô E™i‘d�a˜ØÔ+¨q°OÑ/Cô ˆQ�ŠT™iõ Eá!ó1:ˆð —‘Ð2´DÄ-ÐPbÓBcØ1ÐT_Ø!ÈØ&°Sô5:ó ;ˆõ 	FÙÐ0°&¸Õ2GÔHØ�g�Ðùò! SùÚ:sùóEùô1:s:    D>½D>ÁEÁ5EÂEÂ6EÃ	EÃ EÃ'EÅEÚmodelÚmodel_configÚsystem_promptÚcwdÚprofile_namer   Úrequire_compression_leaseTÚrequire_lease_refreshÚlease_ttl_secondsç     Àr@r^   Úwatermark_ceilingc               ó®   € V P                  V4       V P                  R \        W#\        V4      WVVW‰V
W¼WÞVR7      4      p^ RIHp V! VVR,          4       R# )zcompression.publish)Úchild_session_idrK   r	   rk   rl   rm   rn   ro   r   rp   rq   rr   r^   rt   r   r   N)r   r   r   r   r   r   )r   Úparent_session_idrv   rK   r	   rk   rl   rm   rn   ro   r   rp   rq   rr   r^   rt   r   r   s   &$$$$$$$$$$$$$$$  r   Úpublish_compression_childÚ8RuntimeSessionCompressionMixin.publish_compression_child\   s_   € ð 	�‰Ð'Ô(Ø—‘Ð2´DÐJZÜ" 8Ó,°EÐdqØÐH_Ø&?Ø/ÐXiô	5kó lˆõ
 	FÙ˜h¨¨}Õ(=Ö>r!   c                óä   € VP                  R 4      pV'       dW   ^ RIHp VR,          V P                  R,          8w  d	   V! R4      h\	        V\	        V P                  VR,          R7      R7      pV# )Úworker_assignmentr#   Úparentr   Úoutbox_scope_mismatch)r   )r*   )Úgetr   r$   r*   r   )r   Ú	candidater   Ú
assignmentr$   s   &&&  r   Ú_compression_receipt_journalÚ;RuntimeSessionCompressionMixin._compression_receipt_journali   s\   € Ø—Z‘ZÐ 3Ó4ˆ
ßÝJØ˜(Õ# t§z¡z°,Õ'?Ô?Ù,Ð-DÓEÐEÜ˜Y¬d°4·:±:È*ÐUaÕJbÔ.cÔdˆIØÐr!   c                ó^   € V P                  V4       V P                  R RVRV/4      R,          # )zcompression.lock.acquireÚholderÚttl_secondsrL   rX   ©r   r   r„   r…   s   &&&&r   Útry_acquire_compression_lockÚ;RuntimeSessionCompressionMixin.try_acquire_compression_lockr   s0   € Ø�‰�jÔ!Ø�{‰{Ð5¸À&È-ÐYdÐ7eÓfÐgnÕoÐor!   c                ó^   € V P                  V4       V P                  R RVRV/4      R,          # )zcompression.lock.renewr„   r…   rL   rX   r†   s   &&&&r   Úrefresh_compression_lockÚ7RuntimeSessionCompressionMixin.refresh_compression_lockv   s0   € Ø�‰�jÔ!Ø�{‰{Ð3°hÀÈÐWbÐ5cÓdÐelÕmÐmr!   c                óV   € V P                  V4       V P                  R / 4      R,          # )zcompression.reopenrL   rX   r1   s   &&r   Ú#reopen_orphaned_compression_sessionÚBRuntimeSessionCompressionMixin.reopen_orphaned_compression_sessionz   s%   € Ø�‰�jÔ!Ø�{‰{Ð/°Ó4°WÕ=Ð=r!   c                ó2   € V P                  R RVRV/4       R# )zcompression.cleanupr&   r„   Nr0   )r   r   r„   s   &&&r   Úrelease_compression_lockÚ7RuntimeSessionCompressionMixin.release_compression_lock~   s   € Ø�‰Ð)¨H°jÀ(ÈFÐ+SÖTr!   c                óV   € V P                  V4       V P                  R / 4      R,          # )zcompression.lock.holderrL   rX   r1   s   &&r   Úget_compression_lock_holderÚ:RuntimeSessionCompressionMixin.get_compression_lock_holder�   s%   € Ø�‰�jÔ!Ø�{‰{Ð4°bÓ9¸'ÕBÐBr!   c                óT   € V P                  V4       V P                  R RVRV/4       R# )zcompression.cooldown.recordÚcooldown_untilÚerrorNrX   )r   r   r–   r—   s   &&&&r   Ú#record_compression_failure_cooldownÚBRuntimeSessionCompressionMixin.record_compression_failure_cooldown…   s)   € Ø�‰�jÔ!Ø�‰Ð1Ð4DÀnÐV]Ð_dÐ3eÖfr!   c                óP   € V P                  V4       V P                  R RV/4       R# )zcompression.cooldown.restoreÚsnapshotNrX   )r   r   r›   s   &&&r   Ú(restore_compression_failure_cooldown_rowÚGRuntimeSessionCompressionMixin.restore_compression_failure_cooldown_row‰   s"   € Ø�‰�jÔ!Ø�‰Ð2°ZÀÐ4JÖKr!   c                óL   € V P                  V4       V P                  R / 4       R# )zcompression.cooldown.clearNrX   r1   s   &&r   Ú"clear_compression_failure_cooldownÚARuntimeSessionCompressionMixin.clear_compression_failure_cooldown�   s   € Ø�‰�jÔ!Ø�‰Ð0°"Ö5r!   c           
     óv   € V P                  V4       V P                  R R\        ^ \        V4      4      /4       R# )zcompression.fallbackrL   N©r   r   ÚmaxÚint)r   r   Ústreaks   &&&r   Úset_compression_fallback_streakÚ>RuntimeSessionCompressionMixin.set_compression_fallback_streak‘   s-   € Ø�‰�jÔ!Ø�‰Ð*¨W´c¸!¼SÀ»[Ó6IÐ,JÖKr!   c           
     óv   € V P                  V4       V P                  R R\        ^ \        V4      4      /4       R# )zcompression.ineffectiverL   Nr¢   )r   r   r   s   &&&r   Ú!set_compression_ineffective_countÚ@RuntimeSessionCompressionMixin.set_compression_ineffective_count•   s-   € Ø�‰�jÔ!Ø�‰Ð-°¼¸QÄÀEÃ
Ó9KÐ/LÖMr!   c                óÖ   € V P                  V4        \        R \        T;'       g    R 4      4      pT P                  RRT;'       g    R/4       R#   \        \        3 d    R p L5i ; i)g        zcompression.recoveryrL   N)r   r£   ÚfloatÚ	TypeErrorÚ
ValueErrorr   )r   r   ÚdeadlinerL   s   &&& r   Ú!set_compression_recovery_deadlineÚ@RuntimeSessionCompressionMixin.set_compression_recovery_deadline™   sa   € Ø�‰�jÔ!ð	Ü˜œU 8§? ?¨sÓ3Ó4ˆEð 	�‰Ð*¨W°e·m°m¸tÐ,DÖEøô œ:Ð&ô 	ØŠEð	ús   “A §A ÁA(Á'A(© )FFFFF)NNNrF   NNNN)rs   )N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r,   r2   r6   r:   r>   rC   rG   rM   rU   rY   ri   rx   r�   r‡   rŠ   r�   r�   r“   r˜   rœ   rŸ   r¦   r©   r°   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r   r      sú   ø‡ € òòUòUòRòQòTò]ò;òlô_òAôð2?Øð?Ø%)ð?Ø9=ð?ØCGð?ØVZð?à$(ð?àDHð?à`eð?ð $ð?ð 04ð?ð HLô?òôpônò>òUòCôgòLò6òLòN÷Fð Fr!   r   N)Ú__doc__r   r   r²   r!   r   Ú<module>r»      s   ðÙ Wò
÷NFó NFr!   