+
    lHàj{  ã                  ó¶   € R t ^ RIHt ^ RIt^ RIt^ RIHtHt ^ RIH	t	 ^ RI
HtHt ^ RIHt ]! ]P"                  ! 4       4      t ! R R]4      t ! R	 R
4      tR# )zþIn-process session adapter for the hosted room driver: the room worker uses the same
installed session handlers as every TUI/Desktop turn (no WebSocket transport), passing the
task proof as an in-process-only Python object that JSON clients cannot forge.)ÚannotationsN)ÚMappingÚSequence)Ú
ModuleType)ÚAnyÚCallable)Úhosted_room_driverc                  ó2   a € ] tR t^tRtR V 3R lltRtV ;t# )ÚHostedRoomSessionErrorz8Raised when an in-process session operation is rejected.c               ó(   € V ^8„  d   QhRRRRRRRR/# )é   ÚmethodÚstrÚcodeÚintÚmessageÚreturnÚNone© )Úformats   "ÚG/home/ubuntu/.hermes/hermes-agent/tui_gateway/hosted_room_server_rpc.pyÚ__annotate__Ú#HostedRoomSessionError.__annotate__   s(   € ÷ ñ ˜sð ¨#ð ¸ð Àñ ó    c                	óH   <€ \         SV `  V R V 24       Wn        W n        R# )z	 failed: N)ÚsuperÚ__init__r   r   )Úselfr   r   r   Ú	__class__s   &&&&€r   r   ÚHostedRoomSessionError.__init__   s%   ø€ Ü‰Ñ˜F˜8 9¨W¨IÐ6Ô7ØŒØŽ	r   )r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Ú__static_attributes__Ú__classcell__)r   s   @r   r
   r
      s   ø† ÙB÷ö r   r
   c                  óª   € ] tR t^tRtRtR R ltR R ltR R ltR	 R
 lt	R R lt
RR/R R lltR R ltR R ltR R ltR R ltR R ltRtR# )ÚHostedRoomServerRPCzGNormalize the installed server handlers for :class:`HostedRoomRuntime`.Fc               ó    € V ^8„  d   QhRRRR/# )r   Úserverr   r   r   r   )r   s   "r   r   Ú HostedRoomServerRPC.__annotate__    s   € ÷ 'ñ '˜zð '¨dñ 'r   c                	óH   € Wn         \        P                  ! ^4      V n        R# )é   N)r*   Ú	itertoolsÚcountÚ_ids)r   r*   s   &&r   r   ÚHostedRoomServerRPC.__init__    s   € ØŒÜ—O’O AÓ&ˆŽ	r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r   r   Úparamszdict[str, Any]r   r   )r   s   "r   r   r+   $   s!   € ÷ ñ ˜Cð ¨ð ¸Nñ r   c           	     	ó  € V P                   P                  V,          ! R \        V P                  4       2V4      p\	        V\
        4      '       g   / pVP                  R4      p\	        V\
        4      '       dR   \        T\        VP                  R4      ;'       g    R4      \        VP                  R4      ;'       g    R4      4      hVP                  R4      p\	        V\
        4      '       g   \        VRR4      hV# )zhosted-room-Úerrorr   iˆ  r   zgateway rejected the requestÚresultzgateway returned no result)
r*   Ú_methodsÚnextr0   Ú
isinstanceÚdictÚgetr
   r   r   )r   r   r3   Úenveloper5   r6   s   &&&   r   Ú_callÚHostedRoomServerRPC._call$   sÑ   € Ø—;‘;×'Ñ'¨Ö/°,¼tÀDÇIÁI»Ð>OÐ0PÐRXÓYˆÜ˜(¤D×)Ò)ØˆHØ—‘˜WÓ%ˆÜ�eœT×"Ò"Ü(Øœ˜EŸI™I fÓ-×5Ð5°Ó6Ü�E—I‘I˜iÓ(×JÐJÐ,JÓKóMð Mð —‘˜hÓ'ˆÜ˜&¤$×'Ò'Ü(¨°Ð7SÓTÐTØˆr   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   Úprofiler   ÚtitleÚsourcer   úMapping[str, Any] | Noner   )r   s   "r   r   r+   2   s)   € ÷ 	4ñ 	4¨ð 	4°Cð 	4Àð 	4ÐIañ 	4r   c          	     	óp  € ?V P                  R RVRVRR/4      pVP                  R4      p\        V\        4      '       d&   V'       d   \        V^ ,          \        4      '       g   R# V^ ,          pRVP                  R4      ;'       g    VP                  R	4      RVP                  R4      ;'       g    T/# )
zsession.listr@   rA   Úinclude_hiddenTÚsessionsNÚ
session_idÚresolved_idÚid)r=   r;   r9   Úlistr:   )r   r@   rA   rB   r6   ÚrowsÚrows   &$$$   r   Úresolve_exactÚ!HostedRoomServerRPC.resolve_exact2   sŸ   € ØØ—‘Ø˜Y¨°¸%ÐAQÐSWÐXóZˆà�z‰z˜*Ó%ˆÜ˜$¤×%Ò%¯T¼ÀDÈÅGÌT×9RÒ9RÙØ�1�gˆØ˜cŸg™g mÓ4×EÐE¸¿¹À»Ø˜Ÿ™ Ó)×2Ð2¨Uð4ð 	4r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   r@   r   rA   rB   r   úMapping[str, Any]r   )r   s   "r   r   r+   =   s/   € ÷ añ a ð a¨Sð a¸#ð aÐBSñ ar   c               	óB   € V P                  R RVRVRVRRRRRRRR	/4      # )
zsession.creater@   rA   rB   ÚhiddenTÚroom_plumbingÚfollow_profile_configÚclose_on_disconnectF©r=   )r   r@   rA   rB   s   &$$$r   ÚcreateÚHostedRoomServerRPC.create=   s?   € Ø�z‰zÐ*Ø�w ¨°¸&À(ÈDØ˜TÐ#:¸DÐBWÐY^ð-`ó að 	ar   c               ó(   € V ^8„  d   QhRRRRRRRR/# ©r   r@   r   rG   rB   r   rP   r   )r   s   "r   r   r+   B   s/   € ÷ dñ d ð d°#ð d¸sð dÐGXñ dr   c               	ó6   € V P                  R RVRVRRRV/4      # )zsession.resumer@   rG   Úomit_messagesTrB   rV   )r   r@   rG   rB   s   &$$$r   ÚresumeÚHostedRoomServerRPC.resumeB   s1   € Ø�z‰zÐ*Ø�w ¨j¸/È4ÐQYÐ[að-có dð 	dr   ÚattachmentsNc               ó@   € V ^8„  d   QhRRRRRRRRRRRR	R
RRRRRRR/
# )r   r@   r   rG   ÚpromptrB   Útaskzstate.TaskIdentityÚexecution_generationr   Úon_terminalz#Callable[[Mapping[str, Any]], None]Ú	member_idr_   z"Sequence[Mapping[str, Any]] | Noner   rP   r   )r   s   "r   r   r+   F   s`   € ÷ ñ ØðØ+.ðØ8;ðØEHðØPbðà!ðà0Sðà`cðð 8ðð 
ñ	r   c       	        	ó  € V	'       d   \        R 4      h V P                  RRVRVRVRVRRVP                  RVP                  R	VP                  R
VP
                  RVRV/RV/4      #   \         d   p
RT
n        h Rp
?
ii ; i)zEattachments_unsupported_on_route: in-process route cannot carry fileszprompt.submitr@   rG   ÚtextrB   Ú_hosted_taskÚroom_idÚtask_idÚ	thread_idÚturn_idrc   re   Ú_hosted_terminal_callbackTN)Ú
ValueErrorr=   ri   rj   rk   rl   r
   Únot_admitted)r   r@   rG   ra   rB   rb   rc   rd   re   r_   Úexcs   &$$$$$$$$$ r   ÚsubmitÚHostedRoomServerRPC.submitF   s    € ÷
 ÜÐdÓeÐeð	Ø—:‘:˜oØ˜7 L°*¸fÀfÈhÐX^ØØ˜tŸ|™|¨Y¸¿¹ÀkÐSW×SaÑSaØ˜tŸ|™|Ð-CÐEYØ ð!,ð ,¨[ð0:ó ;ð ;øô &ô 	ð  $ˆCÔØûð		ús   •AA' Á'A?Á2A:Á:A?c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   r@   r   rG   rB   r   zSequence[Mapping[str, Any]]r   )r   s   "r   r   r+   [   s/   € ÷ eñ e #ð e°3ð eÀð eÐHcñ er   c               	óÚ   € ?V P                  R RVRV/4      pVP                  R4      p\        V\        4      '       d-   \        ;QJ d    . R V 4       F  NK  	  5# ! R V 4       4      # R# )zsession.historyr@   rG   Úmessagesc              3  óV   "  € T F  p\        V\        4      '       g   K  Vx € K!  	  R # 5i)N)r9   r:   )Ú.0rL   s   & r   Ú	<genexpr>Ú.HostedRoomServerRPC.history.<locals>.<genexpr>_   s   é € ÐB¡D˜S¬J°s¼D×,A—S’S£Dùs   ‚)Ÿ
)r   )r=   r;   r9   rJ   Útuple)r   r@   rG   rB   r6   rK   s   &$$$  r   ÚhistoryÚHostedRoomServerRPC.history[   sd   € ØØ—‘Ð-°	¸7ÀLÐR\Ð/]Ó^ˆØ�z‰z˜*Ó%ˆÜFPÐQUÔW[×F\ÒF\�uŒuÑB¡DÓB�uÐdˆuÑB¡DÓBÓBÐdÐbdÐdr   c               ó    € V ^8„  d   QhRRRR/# )r   rG   r   r   zdict[str, Any] | Noner   )r   s   "r   r   r+   a   s   € ÷ Rñ R¨#ð RÐ2Gñ Rr   c                	óX  a€ V P                   P                  ;_uu_ 4        V P                   P                  P                  S4      pVe   VuuR R R 4       # \	        V3R lV P                   P                  P                  4        4       R 4      uuR R R 4       #   + '       g   i     R # ; i)Nc              3  ó~   <"  € T F2  p\        VP                  R 4      ;'       g    R4      S8X  g   K.  Vx € K4  	  R# 5i)Úsession_keyÚ N)r   r;   )rw   ÚcrG   s   & €r   rx   Ú6HostedRoomServerRPC._session_record.<locals>.<genexpr>f   s9   øé € ð KÑ$B˜qÜ §¡ mÓ 4× :Ð :¸Ó;¸zÑI÷ šÓ$Bùs   ƒ!=¥	=³
=)r*   Ú_sessions_lockÚ	_sessionsr;   r8   Úvalues)r   rG   Úrecords   &f r   Ú_session_recordÚ#HostedRoomServerRPC._session_recorda   s|   ø€ Ø�[‰[×'×'Ó'Ø—[‘[×*Ñ*×.Ñ.¨zÓ:ˆFØÒ!Ø÷ (Ò'ô ô K D§K¡K×$9Ñ$9×$@Ñ$@Ô$Bó KØLPóR÷	 (×'×'Ó'ús    +BÁ7BÂB)	c               ó(   € V ^8„  d   QhRRRRRRRR/# rZ   r   )r   s   "r   r   r+   i   s)   € ÷ ñ ˜sð °ð ¸Sð ÐEVñ r   c          	     	óŽ  € ??V P                  V4      pVf   RRRR /# VP                  R4      p\        V\        4      '       g   R\	        VP                  R4      4      RR /# T;_uu_ 4        VP                  R4      pR\	        VP                  R4      4      R\        V\
        4      '       d   VP                  R4      MR /p\        V P                  RR 4      p\        V4      '       d<   T! \        VP                  R4      ;'       g    R	4      4      ;p	'       d
   R
VR&   W—R&   VuuR R R 4       #   + '       g   i     R # ; i)NÚactiveFrj   Úhistory_lockÚrunningÚ_hosted_room_taskÚ!_pending_approval_request_payloadr€   r�   Úwaiting_for_approvalÚstatusÚpending_approval)
rˆ   r;   r9   Ú	_LockTypeÚboolr:   Úgetattrr*   Úcallabler   )
r   r@   rG   rB   r‡   Úlockrb   r6   Úpending_readerÚpendings
   &$$$      r   ÚinfoÚHostedRoomServerRPC.infoi   s  € Ø�VØ×%Ñ% jÓ1ˆØŠ>Ø˜e Y°Ð5Ð5Ø�z‰z˜.Ó)ˆÜ˜$¤	×*Ò*Øœd 6§:¡:¨iÓ#8Ó9¸9ÀdÐKÐKßŠTØ—:‘:Ð1Ó2ˆDØ¤ V§Z¡Z°	Ó%:Ó ;Ø¼
À4Ì×8NÒ8N §¡¨)Ô!4ÐTXðZˆFä$ T§[¡[Ð2UÐW[Ó\ˆNÜ˜×'Ò'¹ÄsÈ6Ï:É:ÐVcÓKd×KjÐKjÐhjÓGkÓ8lÐ-l¨WÖ-lØ#9��xÑ Ø-4Ð)Ñ*Ø÷ �T�T‹Tús   Á-BD3ÄD3Ä
D3Ä3E	c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   rG   r   Ú
request_idÚchoicer   rP   r   )r   s   "r   r   r+   {   s/   € ÷ añ a Sð a°cð aÀ3ð aÐK\ñ ar   c               ó6   € V P                  RRVRVRVRR/4      # )zCResolve one exact local room approval without broad policy changes.zapproval.respondrG   rž   rŸ   ÚallFrV   )r   rG   rž   rŸ   s   &$$$r   ÚapproveÚHostedRoomServerRPC.approve{   s1   € à�z‰zÐ,Ø˜* l°JÀÈ&ÐRWÐY^ð/`ó að 	ar   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )r   r@   r   rG   rB   Úexpected_task_idr   rC   r   )r   s   "r   r   r+   €   s4   € ÷ :ñ :Øð:Ø+.ð:Ø8;ð:ØORð:à	!ñ:r   c          	     	ó4   € ?V P                  R RVRVRV/4      # )zsession.interruptr@   rG   Úexpected_hosted_task_idrV   )r   r@   rG   rB   r¥   s   &$$$$r   Ú	interruptÚHostedRoomServerRPC.interrupt€   s/   € ð Ø�z‰zÐ-Ø�w ¨jØ%Ð'7ð09ó :ð 	:r   )r0   r*   )r    r!   r"   r#   r$   Úaccepts_attachmentsr   r=   rM   rW   r]   rq   r{   rˆ   r›   r¢   r¨   r%   r   r   r   r(   r(      sV   † ÙQàÐõ'õõ	4õaõ
dðð ;?÷õ*eõRõõ$a÷
:ñ :r   r(   )r$   Ú
__future__r   r.   Ú	threadingÚcollections.abcr   r   Útypesr   Útypingr   r   Úgatewayr   ÚstateÚtypeÚLockr”   ÚRuntimeErrorr
   r(   r   r   r   Ú<module>rµ      sK   ðñRõ #ã Û ß -Ý ß  å /á�—’Ó!Ó"€	ô˜\ô ÷k:ó k:r   