+
    iHàj‘  ã                  ó¶   € R t ^ RIHt ^ RIt^ RIt^ RIt^ RIHt ^ RIH	t	 ^ RI
HtHt ]P                  ! ]4      tRRRR/R R	 lltR
 R ltR R ltR R ltR# )z2Core NeMo Relay adapter for Hermes tool execution.)ÚannotationsN)ÚCallable)ÚAny)Ú	relay_llmÚrelay_runtimeÚtool_call_idÚmetadatac               ó4   € V ^8„  d   QhRRRRRRRRRR	R
RRR/# )é   Ú	tool_nameÚstrÚargsúdict[str, Any]ÚcallbackzCallable[[dict[str, Any]], Any]Ú
session_idr   z
str | Noner   zdict[str, Any] | NoneÚreturnztuple[Any, dict[str, Any]]© )Úformats   "Ú6/home/ubuntu/.hermes/hermes-agent/agent/relay_tools.pyÚ__annotate__r      sO   € ÷ 6Tñ 6TØð6TØ(ð6TØ4Sð6Tàð6Tà#-ð6Tà@Uð6Tð  ñ6Tó    c               ó®  aaaaaaaa€ \         P                  ! V4      w  orgSe   Ve   SP                  4       '       g   S! S4      S3# So/ oRo\        P                  ! 4       oR V3R lloR VVVVVVV3R llp \        SP                  TSP                  P                  P                  T \        S4      TT\        T;'       g    / 4      T;'       g    RR7      4      p	T	P"                  pRS9   d%   \%        TSR,          4      '       d   SR,          S3# \        T\&        4      '       d   TS3# \(        P*                  ! \        T4      RR7      S3#   \         dr   p
Se    \         P                  ! T
S4      '       d   Sh\        T
\        4      '       d3   Sf/   RS9   d(   \        P!                  RR	R
7       SR,          S3u Rp
?
# h Rp
?
ii ; i)z?Run one tool call through Relay and return its final arguments.Nc               ó    € V ^8„  d   QhRRRR/# )r
   Ú
final_argsr   r   r   r   )r   s   "r   r   Úexecute.<locals>.__annotate__   s   € ÷ (ñ (˜Nð (¨sñ (r   c                óŒ   <€ \         P                  ! 4       ;_uu_ 4        S! V 4      uuR R R 4       #   + '       g   i     R # ; i©N)r   Úmanaged_callback_guard)r   r   s   &€r   ÚguardedÚexecute.<locals>.guarded   s+   ø€ ô
 ×1Ò1×3Õ3Ù˜JÓ'÷ 4×3×3Ó3ús	   Ÿ2²A	c               ó    € V ^8„  d   QhRRRR/# )r
   Ú	next_argsr   r   r   )r   s   "r   r   r   %   s   € ÷ 	Eñ 	E˜#ð 	E #ñ 	Er   c                ó"  <€ \        V \        4      '       d   T MSo SP                  4       P                  SS4      pSP                  T\        T4      R7       S	P                  P                  SR,          4      #   \         d	   pToh R p?ii ; i)N)ÚvalueÚjsonr$   )	Ú
isinstanceÚdictÚcopyÚrunÚBaseExceptionÚupdateÚ	_jsonableÚrelayÚToolExecutionResult)
r!   ÚresultÚexcr   Úcallback_contextÚcallback_errorr   Úobserved_argsÚ
raw_resultÚruntimes
   &  €€€€€€€r   ÚinvokeÚexecute.<locals>.invoke%   s„   ø€ ä%/°	¼4×%@Ò%@™	Àdˆð	Ø%×*Ñ*Ó,×0Ñ0°¸-ÓHˆFð 	×Ñ ¬Y°vÓ->ÐÔ?Ø�}‰}×0Ñ0°¸FÕ1CÓDÐDøô	 ô 	Ø ˆNØûð	ús   � A; Á;BÂB	Â	B)Úhandler   r   r#   z_NeMo Relay tool post-processing failed after dispatch success; returning the Hermes tool resultT)Úexc_infor$   F)Úensure_ascii)r   Úresolve_execution_contextÚmanaged_execution_enabledÚcontextvarsÚcopy_contextÚ_run_awaitableÚrun_in_session_asyncr,   ÚtoolsÚexecuter+   r)   Ú _is_relay_wrapped_callback_errorr%   Ú	ExceptionÚloggerÚwarningr.   Ú_json_equalr   r$   Údumps)r   r   r   r   r   r   ÚsessionÚparentr5   Úmanagedr/   Úmanaged_resultr0   r1   r   r2   r3   r4   s   &ff$$$      @@@@@@r   rA   rA      s±  ÿ€ ô
  -×FÒFÀzÓRÑ€GˆWØ‚˜'š/°×1RÑ1R×1TÒ1TÙ˜‹~˜tÐ#Ð#Ø€MØ!#€JØ+/€NÜ"×/Ò/Ó1Ð÷(ð (÷	Eö 	EðÜ Ø×(Ñ(Ø˜Ÿ™×,Ñ,×4Ñ4°iÄÈ4ÃÐRXØ¬	°(·.°.¸bÓ(AÐP\×PdÐPdÐ`dð )ó ó
ˆð  —^‘^€NØ�*Ô¤¨^¸ZÈÕ=O×!PÒ!PØ˜'Õ" MÐ1Ð1Ü�.¤#×&Ò&Ø˜}Ð,Ð,Ü�:Š:”i Ó/¸eÔDÀmÐSÐSøô ô 	ØÒ%¬-×*XÒ*XÐY\Ð^l×*mÒ*mØ Ð Ü�cœ9×%Ò%¨.Ò*@ÀWÐPZÔEZÜ�N‰NØqØð ô ð ˜gÕ&¨Ð5Õ5Øûð	ús2   Á>AE ÃE ÅGÅ# GÆAGÇGÇGÇGc               ó    € V ^8„  d   QhRRRR/# ©r
   r#   r   r   r   )r   s   "r   r   r   I   s   € ÷ ñ �Sð ˜Sñ r   c                óº  € V e'   \        V \        \        \        \        34      '       d   V # \        V \
        4      '       d8   V P                  4        UUu/ uF  w  r\        V4      \        V4      bK  	  upp# \        V \        \        \        34      '       d   V  Uu. uF  p\        V4      NK  	  up# \        V RR 4      p\        V4      '       d     \        V! RRR7      4      #  \        \        V 4      4      # u uppi u upi   \         d    \        T! 4       4      u # i ; i  \         d     LNi ; i  \        \         3 d    \        T 4      u # i ; i)NÚ
model_dumpr$   F)ÚmodeÚwarnings)r%   r   ÚintÚfloatÚboolr&   Úitemsr+   ÚlistÚtupleÚsetÚgetattrÚcallableÚ	TypeErrorrC   ÚvarsÚAttributeError)r#   ÚkeyÚitemrO   s   &   r   r+   r+   I   s%  € Ø‚}œ
 5¬3´´U¼DÐ*A×BÒBØˆÜ�%œ×ÒØ;@¿;¹;¼=ÔI¹=©i¨c”�C“œ) D›/Ò)¹=ÒIÐIÜ�%œ$¤¤sÐ+×,Ò,Ù,1Ó2©E D”	˜$–©EÑ2Ð2Ü˜ ¨dÓ3€JÜ�
×Òð	ð/Ü ¡°À%Ô!HÓIÐIð
Üœ˜e›Ó%Ð%ùó Jùâ2øô ô /Ü ¡£Ó.Ò.ð/ûäô 	Ùð	ûô ”~Ð&ô Ü�5‹zÒðúsH   Á C>ÂDÃD	 Ã*D; Ä	D'Ä$D* Ä&D'Ä'D* Ä*D8Ä7D8Ä;EÅEc               ó$   € V ^8„  d   QhRRRRRR/# )r
   Úleftr   Úrightr   rT   r   )r   s   "r   r   r   `   s!   € ÷ ñ �cð  #ð ¨$ñ r   c                ó¨   €  \         P                  ! V \        4      \         P                  ! V\        4      8H  #   \        \        3 d    Y8H  u # i ; ir   )r   Ú_canonical_jsonr+   r[   Ú
ValueError)ra   rb   s   &&r   rF   rF   `   sJ   € ðÜ×(Ò(¨¬yÓ9¼Y×=VÒ=VÐW\Ô^gÓ=hÑhÐhøÜ”zÐ"ô Ø‰}Òðús   ‚69 ¹AÁAc               ó    € V ^8„  d   QhRRRR/# rM   r   )r   s   "r   r   r   g   s   € ÷ ñ ˜#ð  #ñ r   c                ó2   € \         P                  ! V R R7      # )zQSynchronous Hermes Relay tool execution cannot run on an active event-loop thread)Ú
loop_error)r   r>   )r#   s   &r   r>   r>   g   s   € Ü×#Ò#ØÐmôð r   )Ú__doc__Ú
__future__r   r<   r$   ÚloggingÚcollections.abcr   Útypingr   Úagentr   r   Ú	getLoggerÚ__name__rD   rA   r+   rF   r>   r   r   r   Ú<module>rq      sU   ðÙ 8å "ã Û Û Ý $Ý ç *à	×	Ò	˜8Ó	$€ð6Tà04ð6TàX\÷6Tõrõ.÷r   