+
    iHàj­  ã                  ó†   € R t ^ RIHt ^ RIt^ RIHt ]P                  ! ]4      t]	! 0 R
m4      t
R R ltR R ltR R	 ltR# )zBResolve logical working directories for Hermes-owned Relay scopes.)ÚannotationsN)ÚAnyc               ó    € V ^8„  d   QhRRRR/# )é   Úvaluer   ÚreturnÚstr© )Úformats   "Ú4/home/ubuntu/.hermes/hermes-agent/agent/relay_cwd.pyÚ__annotate__r      s   € ÷ <ñ <�cð <˜cñ <ó    c                óŒ   € \        V \        4      '       g   R # V P                  4       p V P                  4       \        9   d   R # T # )Ú )Ú
isinstancer   ÚstripÚlowerÚ_CWD_SENTINELS)r   s   &r   Ú
_clean_cwdr      s5   € Ü�eœS×!Ò!ÙØ�K‰K‹M€EØ—‘“¤.Ô0ˆ2Ð;°eÐ;r   c               ó    € V ^8„  d   QhRRRR/# )r   Úkeyr   r   r	   )r
   s   "r   r   r      s   € ÷ ,ñ ,�sð ,˜sñ ,r   c                óD   € V '       g   R # ^ RI Hp \        V! V 4      4      # )r   )Úget_session_cwd)Útools.terminal_toolr   r   )r   r   s   & r   Ú_recorded_cwdr      s   € ßÙÝ3ä‘o cÓ*Ó+Ð+r   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )	r   Úagentr   Útask_idr   Ú
session_idÚplatformr   ztuple[str, str]r	   )r
   s   "r   r   r      s4   € ÷ ?-ñ ?-Øð?-Øð?-Ø*-ð?-Ø9<ð?-àñ?-r   c                ón  €  \        V4      pRp ^ RIHp \        V! 4       4      pV'       gM    ^ RIHp V! RR4      p\        P                  R	 W‚3 4       4       F  p	\        V	4      ;p
'       g   K  T
p M	   V'       g   \        \        V RR4      4      pRpV'       g?    ^ RIHp V! RR4      P                  4       P                  4       p\        V! RR4      4      pV'       gW   VR9   dP   VR9   dI    ^ RIHp V! 4       p\        \#        VP%                  4       '       d   TMVP'                  4       4      4      pT;'       g    TpVR9   d   V'       d   TpT;'       g    TV3#   \         d    \        P                  RRR7       Rp ELƒi ; i  \         d    \        P                  RRR7        EL“i ; i  \         d    \        P                  R
RR7        ELhi ; i  \         d    \        P                  RRR7        EL+i ; i  \         d    \        P                  RRR7        Lõi ; i)zçReturn logical ``(session_cwd, turn_cwd)`` for Relay scope input.

A task may use a worktree distinct from its owning session. Preserve remote paths as
declared and omit unknown paths instead of substituting the Hermes host's cwd.
z!Unable to read the Relay turn cwdT)Úexc_infor   )Úscoped_session_cwdz+Unable to read the scoped Relay session cwd)Úget_session_envÚHERMES_SESSION_KEYc              3  ó8   "  € T F  q'       g   K  Vx € K  	  R # 5i)Nr	   )Ú.0r   s   & r   Ú	<genexpr>Ú+resolve_relay_scope_cwds.<locals>.<genexpr>7   s   é € Ð$UÑ4M¨SÓQT§S¢SÓ4Mùs   ‚	�
z-Unable to read the recorded Relay session cwdÚsession_cwdN)Úterminal_envÚTERMINAL_ENVÚlocalÚTERMINAL_CWDz/Unable to read the configured Relay session cwd)Úresolve_agent_cwdz-Unable to resolve the local Relay session cwd>   r   Úcli>   r   r,   >   ÚcronÚsubagent)r   Ú	ExceptionÚloggerÚdebugÚagent.runtime_cwdr"   r   Úgateway.session_contextr#   ÚdictÚfromkeysÚgetattrÚtools.terminal_scoper*   r   r   r.   r   Úis_absoluteÚresolve)r   r   r   r   Útask_cwdr)   r"   r#   Úsession_keyr   ÚrecordedÚbackendr*   r.   ÚresolvedÚturn_cwds   &&&&            r   Úresolve_relay_scope_cwdsrC      s  € ðÜ  Ó)ˆð
 €KðSÝ8ä Ñ!3Ó!5Ó6ˆ÷ ð		YÝ?á)Ð*>ÀÓCˆKÜ—}‘}Ñ$U°[Ñ4MÓ$UÖU�Ü,¨SÓ1Ð1�8×1Ð1Ø"*�KÙò V÷ Ü ¤¨°¸tÓ!DÓEˆà€Gßð	Ý9á" >°7Ó;×AÑAÓC×IÑIÓKˆGÜ$¡\°.À"Ó%EÓFˆK÷ ˜8 {Ô2°wÀ-Ô7Oð	YÝ;á(Ó*ˆHÜ$Ü × 4Ñ 4× 6Ò 6‘H¸H×<LÑ<LÓ<NÓOóˆKð ×&Ð&˜;€HØÐ'Ô'¯HØˆØ×"Ð"˜( HÐ,Ð,øôk ô Ü�‰Ð8À4ˆÔHØ‹ðûô ô SÜ�‰ÐBÈTˆ×RðSûô ô 	YÜ�L‰LÐHÐSWˆL×Xð	Yûô ô 	Ü�L‰LØAÈDð ÷ ð	ûô ô 	YÜ�L‰LÐHÐSWˆLÖXð	Yúsd   ‚E) �F ¯?F= Á3F= Á7F= Â#=G& Ã7AH Å)$FÆFÆ"F:Æ9F:Æ="G#Ç"G#Ç&"HÈHÈ"H4È3H4>   r   Ú.ÚcwdÚautoú./)Ú__doc__Ú
__future__r   ÚloggingÚtypingr   Ú	getLoggerÚ__name__r3   Ú	frozensetr   r   r   rC   r	   r   r   Ú<module>rO      s;   ðÙ Hå "ã Ý à	×	Ò	˜8Ó	$€áÒ9Ó:€õ<õ,÷?-r   