§
    ÷žyj°µ  ã                  ó  — d Z ddlmZ ddlZddlZddlZddlZddlZddlm	Z	m
Z
 ddlmZ ddlmZ ddlmZ  ej        e¦  «        Z edd	h¦  «        Z ed
dh¦  «        Zdddœded„Zdddœded„Zdddœdfd„Zdddœdfd„Zdgd „Zdddd!œdhd'„Zdddddddd(œdid0„Z G d1„ d2e
e         ¦  «        Z G d3„ d4¦  «        Zdjd:„Z dddd;œdkdB„Z!dldH„Z"dmdJ„Z#dddd;œdndL„Z$dodN„Z%dpdR„Z&dqdS„Z'drdW„Z(dsdZ„Z)dtd\„Z*dud]„Z+dvd_„Z,dvd`„Z-dwdc„Z.dvdd„Z/dS )xz?Core NeMo Relay adapters for physical Hermes provider attempts.é    )ÚannotationsN)ÚCallableÚIterator)ÚSimpleNamespace)ÚAny)Úrelay_runtimeÚreasoning_contentÚreasoning_detailszx-dynamo-parent-session-idzx-dynamo-session-idF)ÚmetadataÚdefer_logical_completionÚrequestúdict[str, Any]ÚcallbackúCallable[[dict[str, Any]], Any]Ú
session_idÚstrÚnameÚ
model_namer   údict[str, Any] | Noner   ÚboolÚreturnr   c               ó˜  ‡ ‡‡‡‡‡‡‡— t          j        |¦  «        \  }}}	|�|�|                     ¦   «         s ‰‰ ¦  «        S t          |||	‰¦  «        }
|
�|
d         n|	}	t	          ‰ ‰¦  «        Š|j                             i ‰¦  «        }t          |j        |‰‰¬¦  «        Ši ŠdŠt          j	        ¦   «         Šdˆˆˆˆˆˆˆˆ fd„}	 t          |                     ||j        j        j        ||||	t          ‰pi ¦  «        |t          |j        ‰¦  «        t          |j        ‰¦  «        ¬¦
  «
        ¦  «        }nM# t           $ r@}‰�t          j        |‰¦  «        r‰‚t%          ‰|‰|
|¬	¦  «        r‰d
         cY d}~S ‚ d}~ww xY w|st'          |
d¬¦  «         d
‰v rt)          |‰d         ¦  «        r‰d
         S t+          |¦  «        S )z>Run one non-streaming physical provider attempt through Relay.Né   ©Úrelay_request_bodyr   Únext_requestr   r   c                óô   •— d	ˆfd„}	 t          ‰| ‰‰‰	¬¦  «        }‰                     ¦   «                              ||¦  «        }n# t          $ r}|Š‚ d }~ww xY w|‰
d<   t	          |¦  «        ‰
d<   ‰
d         S )
NÚfinalr   r   r   c                ót   •— t          j        ¦   «         5   ‰| ¦  «        cd d d ¦  «         S # 1 swxY w Y   d S ©N©r   Úmanaged_callback_guard)r   r   s    €ú5/home/ragecks/.hermes/hermes-agent/agent/relay_llm.pyÚguardedz(execute.<locals>.invoke.<locals>.guarded;   sƒ   ø€ õ Ô5Ñ7Ô7ð 'ð 'Ø�x ‘”ð'ð 'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 's   •-­1´1©r   Úcodec_baseline_bodyr   ÚvalueÚjson)r   r   r   r   )Ú_provider_requestÚcopyÚrunÚBaseExceptionÚ	_jsonable)r   r$   Úfinal_requestÚrawÚexcr   Úcallback_contextÚcallback_errorr&   r   Úraw_responser   r   s        €€€€€€€€r#   Úinvokezexecute.<locals>.invoke8   s¼   ø€ ð	'ð 	'ð 	'ð 	'ð 	'ð 	'ð	Ý-ØØØ#5Ø$7Ø!ðñ ô ˆMð #×'Ò'Ñ)Ô)×-Ò-¨g°}ÑEÔEˆCˆCøÝð 	ð 	ð 	Ø ˆNØøøøøð	øøøð !$ˆ�WÑÝ(¨™~œ~ˆ�VÑØ˜FÔ#Ð#s   ‰<A Á
AÁAÁA©Úhandler   r   ÚcodecÚresponse_codec©Úrelay_errorr2   Úlogicalr   r'   Úsuccess©Úoutcomer(   ©r   r   r   r   )r   Úresolve_execution_contextÚmanaged_execution_enabledÚ_logical_parentÚ_relay_request_bodyÚrelayÚ
LLMRequestÚ_codec_round_trip_request_bodyÚcontextvarsÚcopy_contextÚ_run_awaitableÚrun_in_session_asyncÚllmÚexecuter-   Ú_codecr,   Ú _is_relay_wrapped_callback_errorÚ_recover_successful_callbackÚ_complete_logicalÚ_json_equalÚ
_namespace©r   r   r   r   r   r   r   ÚruntimeÚsessionÚparentr;   Úrelay_requestr4   Úmanagedr0   r1   r2   r&   r3   r   s   ``   `         @@@@@r#   rL   rL      sn  øøøøøøøø€ õ  -ÔFÀzÑRÔRÑ€GˆW�fØ€˜'˜/°×1RÒ1RÑ1TÔ1T˜/Øˆx˜Ñ Ô Ð Ý˜g w°¸ÑAÔA€GØ"Ð.ˆW�QŒZˆZ°F€Få,¨W°hÑ?Ô?ÐØ”M×,Ò,¨RÐ1CÑDÔD€MÝ8ØŒØØ-Øð	ñ ô Ðð $&€LØ+/€NÝ"Ô/Ñ1Ô1Ðð$ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð2Ý Ø×(Ò(ØØ”Ô!Ô)ØØØØÝ" 8 >¨rÑ2Ô2Ø%Ý˜Wœ]¨HÑ5Ô5Ý% g¤m°XÑ>Ô>ð )ñ ô ñ
ô 
ˆˆøõ ð ð ð àÐ&ÝÔ>¸sÀNÑSÔSð 'ð !Ð Ý'ØØØ)ØØ%=ð
ñ 
ô 
ð 	)ð   Ô(Ð(Ð(Ð(Ð(Ð(Ð(Øøøøøðøøøð  $ð 6Ý˜'¨9Ð5Ñ5Ô5Ð5Ø�,ÐÐ¥;¨w¸ÀVÔ8LÑ#MÔ#MÐØ˜GÔ$Ð$Ý�gÑÔÐs%   Ã
A0D; Ä;
FÅ4F Å9FÅ?F Æ Fc             ƒ  óš  ‡ ‡‡‡‡‡‡‡K  — t          j        |¦  «        \  }}}	|�|�|                     ¦   «         s ‰‰ ¦  «        ƒ d{V —†S t          |||	‰¦  «        }
|
�|
d         n|	}	t	          ‰ ‰¦  «        Š|j                             i ‰¦  «        }t          |j        |‰‰¬¦  «        Ši ŠdŠt          j	        ¦   «         Šdˆˆˆˆˆˆˆˆ fd„}	 | 
                    ||j        j        j        ||||	t          ‰pi ¦  «        |t          |j        ‰¦  «        t          |j        ‰¦  «        ¬¦
  «
        ƒ d{V —†}nM# t          $ r@}‰�t          j        |‰¦  «        r‰‚t#          ‰|‰|
|¬	¦  «        r‰d
         cY d}~S ‚ d}~ww xY w|st%          |
d¬¦  «         d
‰v rt'          |‰d         ¦  «        r‰d
         S t)          |¦  «        S )z=Run one asynchronous physical provider attempt through Relay.Nr   r   r   r   r   c              “  ó0  •‡K  — 	 t          ‰| ‰‰	‰
¬¦  «        Šdˆˆfd„}‰                     ¦   «                              t          j         |¦   «         ¦  «        }|ƒ d {V —†}n# t
          $ r}|Š‚ d }~ww xY w|‰d<   t          |¦  «        ‰d<   ‰d         S )Nr%   r   r   c               “  ó„   •K  — t          j        ¦   «         5   ‰ ‰¦  «        ƒ d {V —†cd d d ¦  «         S # 1 swxY w Y   d S r    r!   )r   r.   s   €€r#   Úcall_providerz4execute_async.<locals>.invoke.<locals>.call_providerž   s›   øè è € õ #Ô9Ñ;Ô;ð 9ð 9Ø!) ¨-Ñ!8Ô!8Ð8Ð8Ð8Ð8Ð8Ð8ð9ð 9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9ð 9ð 9s   —5µ9¼9r'   r(   ©r   r   )r)   r*   r+   ÚasyncioÚcreate_taskr,   r-   )r   r\   Útaskr/   r0   r.   r   r1   r2   r&   r   r3   r   r   s        @€€€€€€€€r#   r4   zexecute_async.<locals>.invoke”   sè   øøè è € ð	Ý-ØØØ#5Ø$7Ø!ðñ ô ˆMð9ð 9ð 9ð 9ð 9ð 9ð 9ð $×(Ò(Ñ*Ô*×.Ò.ÝÔ#Ø�‘”ñô ˆDð �*�*�*�*�*�*ˆCˆCøÝð 	ð 	ð 	Ø ˆNØøøøøð	øøøð !$ˆ�WÑÝ(¨™~œ~ˆ�VÑØ˜FÔ#Ð#s   †AA$ Á$
A6Á.A1Á1A6r5   r9   r'   r<   r=   r(   r?   )r   r@   rA   rB   rC   rD   rE   rF   rG   rH   rJ   rK   rL   r-   rM   r,   rN   rO   rP   rQ   rR   rS   s   ``   `         @@@@@r#   Úexecute_asyncra   w   s•  øøøøøøøøè è € õ  -ÔFÀzÑRÔRÑ€GˆW�fØ€˜'˜/°×1RÒ1RÑ1TÔ1T˜/Ø�X˜gÑ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ý˜g w°¸ÑAÔA€GØ"Ð.ˆW�QŒZˆZ°F€Få,¨W°hÑ?Ô?ÐØ”M×,Ò,¨RÐ1CÑDÔD€MÝ8ØŒØØ-Øð	ñ ô Ðð $&€LØ+/€NÝ"Ô/Ñ1Ô1Ðð$ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð $ð8Ø×4Ò4ØØŒMÔÔ%ØØØØÝ˜x˜~¨2Ñ.Ô.Ø!Ý˜œ¨Ñ1Ô1Ý! '¤-°Ñ:Ô:ð 5ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ˆˆøõ ð ð ð àÐ&ÝÔ>¸sÀNÑSÔSð 'ð !Ð Ý'ØØØ)ØØ%=ð
ñ 
ô 
ð 	)ð   Ô(Ð(Ð(Ð(Ð(Ð(Ð(Øøøøøðøøøð  $ð 6Ý˜'¨9Ð5Ñ5Ô5Ð5Ø�,ÐÐ¥;¨w¸ÀVÔ8LÑ#MÔ#MÐØ˜GÔ$Ð$Ý�gÑÔÐs%   ÃA)D< Ä<
FÅ4FÅ:FÆ FÆFc          	     ó‚   — t          j        ¦   «         }|€ || ¦  «        S t          | ||j        j        ||||¬¦  «        S )zDRun a provider attempt under the inherited Hermes turn when present.N©r   r   r   r   r   )r   Úactive_turnrL   Úleaser   ©r   r   r   r   r   r   Úturns          r#   Úexecute_currentrh   Ô   sX   € õ Ô$Ñ&Ô&€DØ€|Øˆx˜Ñ Ô Ð ÝØØØ”:Ô(ØØØØ!9ðñ ô ð ó    c          	   ƒ  óž   K  — t          j        ¦   «         }|€ || ¦  «        ƒ d{V —†S t          | ||j        j        ||||¬¦  «        ƒ d{V —†S )zDRun an async provider attempt under the inherited turn when present.Nrc   )r   rd   ra   re   r   rf   s          r#   Úexecute_current_asyncrk   ì   sŒ   è è € õ Ô$Ñ&Ô&€DØ€|Ø�X˜gÑ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&ÝØØØ”:Ô(ØØØØ!9ðñ ô ð ð ð ð ð ð ð ri   c                 óR   — 	 t          j        ¦   «          n# t          $ r Y dS w xY wdS )NFT)r^   Úget_running_loopÚRuntimeError© ri   r#   Ú_has_running_event_looprp     s@   € ðÝÔ Ñ"Ô"Ð"Ð"øÝð ð ð Øˆuˆuðøøøàˆ4s   ‚ –
$£$)r   r   Úcompleted_response_predicateÚstream_factoryÚ	finalizerúCallable[[], Any]rq   úCallable[[Any], bool] | Nonec               óê   — t          j        ¦   «         }|€ || ¦  «        S t          ¦   «         r || ¦  «        S t          | ||j        j        ||||||¬¦	  «	        }	|�t          |	dd¦  «        }
|
�|
S |	S )u©  Run a provider stream under the inherited Hermes turn when present.

    When ``completed_response_predicate`` is set and the stream_factory returns
    a complete response instead of an iterator (e.g. AnthropicAuxiliaryClient
    and other shims that ignore ``stream=True``), unwrap and return the
    completed response directly. This mirrors the pre-Relay behavior where
    ``call_llm(stream=True)`` returned the raw response and the consumer's
    own ``hasattr(stream, "choices")`` check handled it (#11732, #55933) â€”
    without the unwrap the response stays trapped as ``final_response`` on the
    inner ManagedLlmStream and the outer consumer sees an empty stream.
    N)r   r   r   rs   r   r   rq   Úfinal_response)r   rd   rp   Ústreamre   r   Úgetattr)r   rr   r   r   rs   r   r   rq   rg   rX   Ú	completeds              r#   Ústream_currentr{     s¦   € õ, Ô$Ñ&Ô&€DØ€|Øˆ~˜gÑ&Ô&Ð&ÝÑ Ô ð 
'ð ˆ~˜gÑ&Ô&Ð&ÝØØØ”:Ô(ØØØØØ!9Ø%Að
ñ 
ô 
€Gð $Ð/Ý˜GÐ%5°tÑ<Ô<ˆ	ØÐ ØÐØ€Nri   )Úon_stream_createdÚon_chunkÚchunk_adapterÚaccept_chunkrq   r   r   r|   úCallable[[Any], None] | Noner}   r~   úCallable[[Any], Any] | Noner   ú'ManagedLlmStream'c               ó:   — t          | |||||||||	|
||¬¦  «        S )z?Return a synchronous view of one Relay-managed provider stream.)r   r   r   rs   r|   r}   r~   r   rq   r   r   )ÚManagedLlmStream)r   rr   r   r   r   rs   r|   r}   r~   r   rq   r   r   s                r#   rx   rx   F  sB   € õ" ØØØØØØØ+ØØ#Ø!Ø%AØØ!9ðñ ô ð ri   c                  óJ   — e Zd ZdZd%d„Zd&d„Zd'd„Zd(d„Zd(d „Zd)d"„Z	d(d#„Z
d$S )*r„   z@Drive Relay's async stream from Hermes's provider worker thread.r   r   rr   r   r   r   r   r   rs   rt   r|   r€   r}   r~   r�   r   ru   rq   r   r   r   r   r   ÚNonec               ó  ‡ ‡‡‡‡‡‡‡‡‡‡— d ‰ _         d ‰ _        d ‰ _        d ‰ _        d‰ _        d ‰ _        d ‰ _        d ‰ _        |‰ _        t          ‰pi  
                    d¦  «        pd¦  «                             d¦  «        r|‰ _        |‰ _        d ‰ _        nd ‰ _        d ‰ _        d ‰ _        |‰ _        |	pt           ‰ _        |
‰ _        d‰ _        d‰ _        g ‰ _        d‰ _        t/          j        ¦   «         Šdˆfd
„Št3          j        |¦  «        \  }}}|�|�|                     ¦   «         s^ ‰‰¦  «        }‰�' ‰|¦  «        r|‰ _         t9          d¦  «        ‰ _        n(|‰ _        ‰� ‰|¦  «         t9          |¦  «        ‰ _        d S t;          |||‰¦  «        ‰ _        ‰ j        �‰ j        d         }t=          ‰‰¦  «        Š|j                              i ‰¦  «        }tC          |j        |‰‰¬¦  «        Šdˆˆˆˆˆˆˆˆ ˆf	d„}dˆˆ fd„}dˆˆˆ fd„}tE          j#        ¦   «         }|‰ _        d‰ _        	 | $                    | %                    ||j        j&        j'        ||||||tQ          ‰pi ¦  «        |tS          |j        ‰¦  «        tS          |j        ‰¦  «        ¬¦  «        ¦  «        ‰ _        d S # tT          $ rÁ}tW          |tX          ¦  «        rD‰ j        r=‰ j        €6tZ           .                    dd¬¦  «         ‰  /                    ¦   «          Y d }~d S ‰ j        s@ta          ‰ j        tc          |¦  «        rdnd‰ j        ‰ j        ‰ j        ¬¦  «         d ‰ _        | 2                    ¦   «          d ‰ _        ‚ d }~ww xY w)NFÚ	call_roleÚ z
auxiliary:r   úCallable[..., Any]Úargsr   r   c                ód   •‡ ‡— dˆˆ fd„}‰                      ¦   «                              |¦  «        S )Nr   r   c                 óh   •— t          j        ¦   «         5   ‰‰ Ž cd d d ¦  «         S # 1 swxY w Y   d S r    r!   )r‹   r   s   €€r#   r$   z@ManagedLlmStream.__init__.<locals>.run_callback.<locals>.guarded™  s�   ø€ õ #Ô9Ñ;Ô;ð +ð +Ø#˜8 T˜?ð+ð +ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð +ð +s   •'§+®+r]   )r*   r+   )r   r‹   r$   r1   s   `` €r#   Úrun_callbackz/ManagedLlmStream.__init__.<locals>.run_callback–  sJ   øøø€ ð+ð +ð +ð +ð +ð +ð +ð $×(Ò(Ñ*Ô*×.Ò.¨wÑ7Ô7Ð7ri   ro   r   r   r   c           
    ó¤  •	K  — d }	  ‰‰t          ‰| ‰‰‰	¬¦  «        ¦  «        }‰�e ‰‰|¦  «        rY|‰_        d‰_        	 t          |dd ¦  «        }t	          |¦  «        r(	  ‰|¦  «         d S # t
          $ r}|‰_        ‚ d }~ww xY wd S ‰
� ‰‰
|¦  «          ‰t          |¦  «        }	 	  ‰t          |¦  «        }n# t          $ r Y nNw xY w‰j
        � ‰‰j
        |¦  «        sn1t          |¦  «        }‰j                             ||f¦  «         |W V — Œmd‰_        n# t
          $ r}|‰_        ‚ d }~ww xY w	 t          |dd ¦  «        }t	          |¦  «        r(	  ‰|¦  «         d S # t
          $ r}|‰_        ‚ d }~ww xY wd S # t          |dd ¦  «        }t	          |¦  «        r'	  ‰|¦  «         w # t
          $ r}|‰_        ‚ d }~ww xY ww xY w)Nr%   TÚclose)r)   rw   Ú_provider_completedry   Úcallabler,   Ú_close_errorÚiterÚnextÚStopIterationÚ_accept_chunkr-   Ú_raw_chunksÚappendÚ_callback_error)r   Ú
raw_streamr�   r0   Úraw_iteratorÚchunkÚencoded_chunkr&   rq   r   r|   r   r   rŽ   Úselfrr   s          €€€€€€€€€r#   Úprovider_streamz2ManagedLlmStream.__init__.<locals>.provider_streamÁ  sÓ  øè è € ØˆJð0Ø)˜\Ø"Ý%ØØ$Ø+=Ø,?Ø!)ðñ ô ñ	ô 	�
ð 1Ð<Ø$˜Ø4Ø"ñô ð =ð +5�DÔ'Ø/3�DÔ,Øõ,   
¨G°TÑ:Ô:�Ý˜E‘?”?ð ðØ$˜ UÑ+Ô+Ð+Ð+Ð+øÝ(ð ð ð Ø,/˜Ô)Øøøøøðøøøðð ð- %Ð0Ø �LÐ!2°JÑ?Ô?Ð?Ø+˜|­D°*Ñ=Ô=�ð(ðØ , ­T°<Ñ @Ô @˜˜øÝ(ð ð ð Ø˜ðøøøàÔ)Ð5¸l¸lØÔ*Øñ?ô ?Ð5ð Ý$-¨eÑ$4Ô$4�MØÔ$×+Ò+¨]¸EÐ,BÑCÔCÐCØ'Ð'Ð'Ð'Ð'ð(ð ,0�Ô(Ð(øÝ ð ð ð Ø'*�Ô$Øøøøøðøøøð )õ
   
¨G°TÑ:Ô:�Ý˜E‘?”?ð ðØ$˜ UÑ+Ô+Ð+Ð+Ð+øÝ(ð ð ð Ø,/˜Ô)Øøøøøðøøøðð øõ   
¨G°TÑ:Ô:�Ý˜E‘?”?ð ðØ$˜ UÑ+Ô+Ð+Ð+øÝ(ð ð ð Ø,/˜Ô)Øøøøøðøøøðøøøs¨   ‡:D! Á#A0 Á0
BÁ:BÂBÂ D! Â-B? Â>D! Â?
CÃ	D! ÃCÃAD! Ä F Ä!
D8Ä+D3Ä3D8Ä8F ÅE* Å*
FÅ4E<Å<FÆ!GÆ(F4Æ3GÆ4
GÆ>GÇGÇGr�   r†   c                óV   •— ‰j         �  ‰‰j         t          | ¦  «        ¦  «         d S d S r    )Ú	_on_chunkr-   )r�   rŽ   rŸ   s    €€r#   Úobserve_chunkz0ManagedLlmStream.__init__.<locals>.observe_chunkõ  s5   ø€ ØŒ~Ð)Ø�˜Tœ^­Y°uÑ-=Ô-=Ñ>Ô>Ð>Ð>Ð>ð *Ð)ri   c                 óÔ   •— ‰j         �d S 	 ‰j        �‰j        } n ‰‰¦  «        } ‰j        �t          | ¦  «        ‰_        t          | ¦  «        S # t          $ r}|‰_         ‚ d }~ww xY wr    )rš   rw   Ú_logical_model_nameÚ_response_model_nameÚ_logical_response_model_namer-   r,   )Úresponser0   rs   rŽ   rŸ   s     €€€r#   Úrelay_finalizerz2ManagedLlmStream.__init__.<locals>.relay_finalizerù  s‹   ø€ ð Ô#Ð/Ø�tð
ØÔ&Ð2Ø#Ô2�H�Hà+˜|¨IÑ6Ô6�HØÔ+Ð7Ý8LÈXÑ8VÔ8V�DÔ5Ý  Ñ*Ô*Ð*øÝ ð ð ð Ø'*�Ô$Øøøøøðøøøs   ŒAA Á
A'ÁA"Á"A'Tr5   ú_NeMo Relay stream post-processing failed after provider success; preserving the provider result©Úexc_infoÚ	cancelledÚfailed©r>   r   Úprovider_nameÚresponse_model_name)r   rŠ   r‹   r   r   r   )r   r   )r�   r   r   r†   r]   )3rw   Ú_loopÚ_streamÚ_raw_stream_resourceÚ_closedr“   rš   Ú_logicalÚ_defer_logical_completionr   ÚgetÚ
startswithr¥   Ú_logical_provider_namer§   r¢   rR   Ú_chunk_adapterr—   Ú_relay_observes_chunksr‘   r˜   Úoutput_modifiedrG   rH   r   r@   rA   r”   rB   rC   rD   rE   rF   r^   Únew_event_loopÚrun_until_completerJ   rK   Ústream_executer-   rM   r,   Ú
isinstanceÚ	ExceptionÚloggerÚwarningÚ!_preserve_pending_provider_chunksrP   Ú_is_cancellationr�   )rŸ   r   rr   r   r   r   rs   r|   r}   r~   r   rq   r   r   rT   rU   rV   r›   rW   r    r£   r©   Úloopr0   r1   r&   r   rŽ   s   ```   ``   ``           @@@@r#   Ú__init__zManagedLlmStream.__init__k  s{  øøøøøøøøøøø€ ð" $(ˆÔØ7;ˆŒ
Ø ˆŒØ)-ˆÔ!ØˆŒØ26ˆÔØ59ˆÔØPTˆŒØ)AˆÔ&Ý��˜B×#Ò# KÑ0Ô0Ð6°BÑ7Ô7×BÒBÀ<ÑPÔPð 	5Ø3=ˆDÔ$Ø6:ˆDÔ'Ø<@ˆDÔ-Ð-à'+ˆDÔ$Ø*.ˆDÔ'Ø04ˆDÔ-Ø!ˆŒØ+Ð9­zˆÔØ)ˆÔØ&+ˆÔ#Ø#(ˆÔ Ø24ˆÔØ$ˆÔÝ&Ô3Ñ5Ô5Ðð
	8ð 
	8ð 
	8ð 
	8ð 
	8ð 
	8õ $1Ô#JÈ:Ñ#VÔ#VÑ ˆ�˜&àˆOØˆØ×4Ò4Ñ6Ô6ð ð (˜¨Ñ0Ô0ˆJØ+Ð7Ð<XÐ<XØñ=ô =Ð7ð '1�Ô#Ý# B™xœx�”�à,6�Ô)Ø$Ð0Ø%Ð% jÑ1Ô1Ð1Ý# JÑ/Ô/�”ØˆFå'¨°¸&À(ÑKÔKˆŒØŒ=Ð$Ø”] 1Ô%ˆFÝ0°¸(ÑCÔCÐØœ×0Ò0°Ð5GÑHÔHˆÝ<ØŒMØØ1Øð	
ñ 
ô 
Ðð2	ð 2	ð 2	ð 2	ð 2	ð 2	ð 2	ð 2	ð 2	ð 2	ð 2	ð 2	ð 2	ð 2	ðh	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	õ$ Ô%Ñ'Ô'ˆØˆŒ
Ø&*ˆÔ#ð)	Ø×2Ò2Ø×,Ò,ØØ”MÔ%Ô4ØØ!Ø#Ø!Ø#Ø!Ý& x ~°2Ñ6Ô6Ø)Ý  ¤°Ñ9Ô9Ý#)¨'¬-¸Ñ#BÔ#Bð -ñ ô ñô ˆDŒLˆLˆLøõ  ð 	ð 	ð 	å˜3¥	Ñ*Ô*ðàÔ,ðð Ô(Ð0å—’ð5à!ð ñ ô ð ð
 ×6Ò6Ñ8Ô8Ð8Ø�����ØÔ1ð %Ý!Ø”MÝ+;¸CÑ+@Ô+@ÐN˜K˜KÀhØ#Ô7Ø"&Ô"=Ø(,Ô(Iðñ ô ð ð !%�”Ø�JŠJ‰LŒLˆLØˆDŒJØøøøøð1	øøøs!   È;A=J: Ê:
NËAN ÌA#N Î Nr‚   c                ó   — | S r    ro   ©rŸ   s    r#   Ú__iter__zManagedLlmStream.__iter__9  s   € Øˆri   r   c                óþ  ‡ — ‰ j         rt          ‚‰ j        €v	 t          ‰ j        ¦  «        }n%# t          $ r ‰                      d¬¦  «         ‚ w xY w‰ j        �2‰                      |¦  «        s‰                      d¬¦  «         t          ‚|S dˆ fd„}	 ‰ j                              |¦   «         ¦  «        }�n=# t          $ rc ‰ j	        rd‰ _
        ‰ j        s/t          ‰ j        d‰ j        ‰ j        ‰ j        ¬¦  «         d ‰ _        ‰                      d¬¦  «         t          d ‚t"          $ rÅ}‰ j        }|�-t'          j        ||¦  «        r‰                      d	¬¦  «         |‚t+          |t,          ¦  «        rM‰ j        rF|€Dt0                               d
d¬¦  «         ‰                      ¦   «          t          ‰ ¦  «        cY d }~S ‰                      t7          |¦  «        rdnd	¬¦  «         ‚ d }~ww xY w‰ j        s‰ j        �‰                      |¦  «         t=          ‰ j	        ¦  «        D ]6\  }\  }}t?          ||¦  «        r|dk    rd‰ _
        ‰ j	        d |dz   …= |c S Œ7d‰ _
        ‰                       |¦  «        S )Nr­   ©Úlogical_outcomer   r   c               “  ó<   •K  — t          ‰ j        ¦  «        ƒ d {V —†S r    )Úanextr³   rÊ   s   €r#   Ú
next_chunkz-ManagedLlmStream.__next__.<locals>.next_chunkJ  s)   øè è € Ý˜tœ|Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,ri   Tr<   r¯   r®   rª   r«   r   r   r]   )!rµ   r–   r²   r•   r³   Ú_closer—   r¿   ÚStopAsyncIterationr˜   r½   r·   rP   r¶   r¥   rº   r§   r,   rš   r   rN   rÁ   rÂ   r‘   rÃ   rÄ   rÅ   rÆ   r¼   r¢   Ú	enumeraterQ   r»   )rŸ   r�   rÑ   r0   r2   ÚindexÚencodedr/   s   `       r#   Ú__next__zManagedLlmStream.__next__<  s  ø€ ØŒ<ð 	 ÝÐØŒ:ÐðÝ˜Tœ\Ñ*Ô*��øÝ ð ð ð Ø—’¨K�Ñ8Ô8Ð8Øðøøøð Ô!Ð-°d×6HÒ6HÈÑ6OÔ6OÐ-Ø—’¨K�Ñ8Ô8Ð8Ý#Ð#ØˆLð	-ð 	-ð 	-ð 	-ð 	-ð 	-ð'	Ø”J×1Ò1°*°*±,´,Ñ?Ô?ˆE‰EøÝ!ð 	*ð 	*ð 	*ØÔð ,Ø'+�Ô$ØÔ1ð %Ý!Ø”MØ%Ø#Ô7Ø"&Ô"=Ø(,Ô(Iðñ ô ð ð !%�”Ø�KŠK¨ˆKÑ4Ô4Ð4Ý TÐ)Ýð 	ð 	ð 	Ø!Ô1ˆNàÐ*Ý!ÔBÀ3ÈÑWÔWð +ð —’¨H�Ñ5Ô5Ð5Ø$Ð$å˜3¥	Ñ*Ô*ð"àÔ,ð"ð #Ð*å—’ð5à!ð ñ ô ð ð
 ×6Ò6Ñ8Ô8Ð8Ý˜D‘z”zÐ!Ð!Ð!Ð!Ð!Ð!Ø�KŠKÝ/?ÀÑ/DÔ/DÐ R  È(ð ñ ô ð ð øøøøð/	øøøð0 Ô*ð 	"¨t¬~Ð/IØ�NŠN˜5Ñ!Ô!Ð!Ý%.¨tÔ/?Ñ%@Ô%@ð 	ð 	Ñ!ˆE‘>�G˜SÝ˜5 'Ñ*Ô*ð Ø˜1’9�9Ø+/�DÔ(ØÔ$ [ u¨q¡y [Ð1Ø�
�
�
ð	ð
  $ˆÔØ×"Ò" 5Ñ)Ô)Ð)s/   ˜- ­"AÂ"B8 Â8A5G2Ä-BG-Æ?G2Ç(G-Ç-G2c                óV   — |                       d¬¦  «         | j        }d| _        |�|‚dS )zAClose an explicitly abandoned stream and cancel its logical call.r­   rÍ   N)rÒ   r“   )rŸ   Úclose_errors     r#   r�   zManagedLlmStream.close€  s:   € à�Š KˆÑ0Ô0Ð0ØÔ'ˆØ ˆÔØÐ"ØÐð #Ð"ri   c                óH  ‡— d„ | j         D ¦   «         }| j                              ¦   «          | j        }| j        }d| _        t	          |¦  «        | _        d| _        d| _        |�…t          |dd¦  «        Št          ‰¦  «        rQdˆfd„}	 | 	                     |¦   «         ¦  «         n,# t          $ r t                               dd¬	¦  «         Y nw xY w|                     ¦   «          | j        s1t          | j        d
| j        | j        | j        ¬¦  «         d| _        dS dS )z@Switch a failed Relay stream to its undelivered provider chunks.c                ó   — g | ]\  }}|‘ŒS ro   ro   )Ú.0Ú_encodedr/   s      r#   ú
<listcomp>zFManagedLlmStream._preserve_pending_provider_chunks.<locals>.<listcomp>Š  s   € Ð=Ð=Ð=™=˜8 S�3Ð=Ð=Ð=ri   NÚacloser   r†   c               “  ó,   •K  —  ‰ ¦   «         ƒ d {V —† d S r    ro   ©r�   s   €r#   Úclose_streamzHManagedLlmStream._preserve_pending_provider_chunks.<locals>.close_stream–  s"   øè è € Ø˜%™'œ'�M�M�M�M�M�M�M�M�Mri   z4Relay stream cleanup failed during provider fallbackTr«   r<   r¯   ©r   r†   )r˜   Úclearr²   r³   r”   r´   r—   ry   r’   r¿   rÂ   rÃ   Údebugr�   r·   rP   r¶   r¥   rº   r§   )rŸ   ÚpendingrÇ   Úrelay_streamrâ   r�   s        @r#   rÅ   z2ManagedLlmStream._preserve_pending_provider_chunksˆ  sm  ø€ à=Ð=¨DÔ,<Ð=Ñ=Ô=ˆØÔ×ÒÑ Ô Ð ØŒzˆØ”|ˆØˆŒ
Ý˜G‘}”}ˆŒØ$(ˆÔ!Ø!ˆÔØÐÝ˜L¨(°DÑ9Ô9ˆEÝ˜‰Œð ð"ð "ð "ð "ð "ð "ðØ×+Ò+¨L¨L©N¬NÑ;Ô;Ð;Ð;øÝ ð ð ð Ý—L’LØNØ!%ð !ñ ô ð ð ð ðøøøð
 �JŠJ‰LŒLˆLØÔ-ð 	!ÝØ”Ø!ØÔ3Ø"Ô9Ø$(Ô$Eðñ ô ð ð !ˆDŒMˆMˆMð	!ð 	!s   ÂB* Â*&CÃCrÎ   c               óÐ  ‡— | j         rd S d| _         | j        }d | _        |�€
| j        | j        f}d | _        d | _        t	          ¦   «         }|D ]¥}|�t          |¦  «        |v rŒ|                     t          |¦  «        ¦  «         t          |dd ¦  «        Št          ‰¦  «        rM	  ‰¦   «          Œd# t          $ r4}| j
        €|| _
        t                               dd¬¦  «         Y d }~Œ�d }~ww xY wŒ¦| j        s/t          | j        || j        | j        | j        ¬¦  «         d | _        d S t          | j        dd ¦  «        Št          ‰¦  «        rJd
ˆfd	„}	 |                      |¦   «         ¦  «         n%# t          $ r}| j
        €|| _
        Y d }~nd }~ww xY w| j        s/t          | j        || j        | j        | j        ¬¦  «         d | _        |                     ¦   «          d S )NTr�   zProvider stream cleanup failedr«   r¯   rß   r   r†   c               “  ó,   •K  —  ‰ ¦   «         ƒ d {V —† d S r    ro   rá   s   €r#   râ   z-ManagedLlmStream._close.<locals>.close_streamÒ  s"   øè è € Ø�e‘g”g���������ri   rã   )rµ   r²   r³   r´   ÚsetÚidÚaddry   r’   rÂ   r“   rÃ   rå   r·   rP   r¶   r¥   rº   r§   r¿   r�   )	rŸ   rÎ   rÇ   Ú	resourcesÚ
closed_idsÚresourcer0   râ   r�   s	           @r#   rÒ   zManagedLlmStream._close«  sm  ø€ ØŒ<ð 	ØˆFØˆŒØŒzˆØˆŒ
Ø‰<Øœ tÔ'@ÐAˆIØˆDŒLØ(,ˆDÔ%Ý#&¡5¤5ˆJØ%ð ð �ØÐ#¥r¨(¡|¤|°zÐ'AÐ'AØØ—’�r (™|œ|Ñ,Ô,Ð,Ý ¨'°4Ñ8Ô8�Ý˜E‘?”?ð 	ðØ˜™œ˜˜øÝ$ð ð ð ØÔ,Ð4Ø03˜DÔ-ÝŸšØ<Ø%)ð %ñ ô ð ð ð ð ð ð øøøøðøøøð	ð Ô1ð %Ý!Ø”MØ+Ø#Ô7Ø"&Ô"=Ø(,Ô(Iðñ ô ð ð !%�”ØˆFÝ˜œ h°Ñ5Ô5ˆÝ�E‰?Œ?ð 		,ðð ð ð ð ð ð,Ø×'Ò'¨¨©¬Ñ7Ô7Ð7Ð7øÝð ,ð ,ð ,ØÔ$Ð,Ø(+�DÔ%øøøøøøøøøð,øøøð Ô-ð 	!ÝØ”Ø'ØÔ3Ø"Ô9Ø$(Ô$Eðñ ô ð ð !ˆDŒMØ�
Š
‰Œˆˆˆs0   Â(
B3Â3
C1Â=*C,Ã,C1ÅE7 Å7
FÆFÆFc                ó2   — |                       d¬¦  «         d S )Nr­   rÍ   )rÒ   rÊ   s    r#   Ú__del__zManagedLlmStream.__del__å  s   € Ø�Š KˆÑ0Ô0Ð0Ð0Ð0ri   N)r   r   rr   r   r   r   r   r   r   r   rs   rt   r|   r€   r}   r€   r~   r�   r   ru   rq   ru   r   r   r   r   r   r†   )r   r‚   r]   rã   )rÎ   r   r   r†   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__rÈ   rË   r×   r�   rÅ   rÒ   rñ   ro   ri   r#   r„   r„   h  s²   € € € € € ØJÐJðLð Lð Lð Lð\ð ð ð ðB*ð B*ð B*ð B*ðHð ð ð ð!!ð !!ð !!ð !!ðF8ð 8ð 8ð 8ðt1ð 1ð 1ð 1ð 1ð 1ri   r„   c                  ó4   — e Zd ZdZdd„Zdd„Zdd	„Zddd„Zd
S )ÚAnthropicStreamAccumulatorz<Rebuild an Anthropic Message from post-intercept SSE events.r   r†   c                ó"   — i | _         i | _        d S r    )Ú_messageÚ_blocksrÊ   s    r#   rÈ   z#AnthropicStreamAccumulator.__init__ì  s   € Ø(*ˆŒØ24ˆŒˆˆri   Úeventr   c                ó’  — t          |¦  «        }t          |t          ¦  «        sd S |                     d¦  «        }|dk    rE|                     d¦  «        }t          |t          ¦  «        rdD ]}||v r||         | j        |<   Œd S |dk    rm|                     d¦  «        }|                     d¦  «        }t          |t
          ¦  «        r,t          |t          ¦  «        rt          |¦  «        | j        |<   d S |dk    �r|                     d¦  «        }|                     d	¦  «        }t          |t
          ¦  «        rt          |t          ¦  «        sd S | j                             |i ¦  «        }|                     d¦  «        }	|	d
k    rNt          |                     d¦  «        pd¦  «        t          |                     d¦  «        pd¦  «        z   |d<   �n3|	dk    rMt          |                     d¦  «        pd¦  «        t          |                     d¦  «        pd¦  «        z   |d<   nà|	dk    rMt          |                     d¦  «        pd¦  «        t          |                     d¦  «        pd¦  «        z   |d<   n�|	dk    rNt          | 	                    dd¦  «        ¦  «        t          |                     d¦  «        pd¦  «        z   }
|
|d<   n9|	dk    r3d|v r/|                     dg ¦  «         
                    |d         ¦  «         d S |dk    r¯|                     d	¦  «        }t          |t          ¦  «        rdD ]}||v r||         | j        |<   Œd|v rj|d         }| j                             d¦  «        }t          |t          ¦  «        r%t          |t          ¦  «        ri |¥|¥| j        d<   d S || j        d<   d S d S d S )NÚtypeÚmessage_startÚmessage)rë   rý   ÚroleÚmodelÚusageÚcontent_block_startrÕ   Úcontent_blockÚcontent_block_deltaÚdeltaÚ
text_deltaÚtextr‰   Úthinking_deltaÚthinkingÚsignature_deltaÚ	signatureÚinput_json_deltaÚ_partial_jsonÚpartial_jsonÚcitations_deltaÚcitationÚ	citationsÚmessage_delta)Ústop_reasonÚstop_sequencer  )r-   rÁ   Údictr¸   rù   Úintrú   Ú
setdefaultr   Úpopr™   )rŸ   rû   ÚpayloadÚ
event_typerÿ   ÚkeyrÕ   Úblockr  Ú
delta_typeÚpartialr  Úcurrent_usages                r#   Úobservez"AnthropicStreamAccumulator.observeð  s
  € Ý˜EÑ"Ô"ˆÝ˜'¥4Ñ(Ô(ð 	ØˆFØ—[’[ Ñ(Ô(ˆ
Ø˜Ò(Ð(Ø—k’k )Ñ,Ô,ˆGÝ˜'¥4Ñ(Ô(ð :ØCð :ð :�CØ˜g�~�~Ø-4°S¬\˜œ cÑ*øØˆFØÐ.Ò.Ð.Ø—K’K Ñ(Ô(ˆEØ—K’K Ñ0Ô0ˆEÝ˜%¥Ñ%Ô%ð 2­*°U½DÑ*AÔ*Að 2Ý&*¨5¡k¤k�”˜UÑ#ØˆFØÐ.Ò.Ñ.Ø—K’K Ñ(Ô(ˆEØ—K’K Ñ(Ô(ˆEÝ˜e¥SÑ)Ô)ð µ¸EÅ4Ñ1HÔ1Hð Ø�Ø”L×+Ò+¨E°2Ñ6Ô6ˆEØŸš 6Ñ*Ô*ˆJØ˜\Ò)Ð)Ý # E§I¢I¨fÑ$5Ô$5Ð$;¸Ñ <Ô <½sØ—I’I˜fÑ%Ô%Ð+¨ñ@ô @ñ !��f‘‘ð Ð/Ò/Ð/Ý$'¨¯	ª	°*Ñ(=Ô(=Ð(CÀÑ$DÔ$DÅsØ—I’I˜jÑ)Ô)Ð/¨RñHô Hñ %��jÑ!Ð!ð Ð0Ò0Ð0Ý%(¨¯ª°;Ñ)?Ô)?Ð)EÀ2Ñ%FÔ%FÍØ—I’I˜kÑ*Ô*Ð0¨bñJô Jñ &��kÑ"Ð"ð Ð1Ò1Ð1Ý˜eŸiši¨¸Ñ<Ô<Ñ=Ô=ÅØ—I’I˜nÑ-Ô-Ð3°ñAô Añ �ð *1��oÑ&Ð&ØÐ0Ò0Ð0°ZÀ5Ð5HÐ5HØ× Ò  ¨bÑ1Ô1×8Ò8¸¸zÔ9JÑKÔKÐKØˆFØ˜Ò(Ð(Ø—K’K Ñ(Ô(ˆEÝ˜%¥Ñ&Ô&ð 8Ø;ð 8ð 8�CØ˜e�|�|Ø-2°3¬Z˜œ cÑ*øØ˜'Ð!Ð!Ø Ô(�Ø $¤× 1Ò 1°'Ñ :Ô :�Ý˜m­TÑ2Ô2ð 3µzÀ%ÍÑ7NÔ7Nð 3Ø-G°Ð-GÀÐ-G�D”M 'Ñ*Ð*Ð*à-2�D”M 'Ñ*Ð*Ð*ð )Ð(ð "Ð!ri   r   c                óF  — g }t          | j        ¦  «        D ]~}t          | j        |         ¦  «        }|                     dd ¦  «        }|�5	 t	          j        |¦  «        |d<   n# t          t          f$ r ||d<   Y nw xY w|                     |¦  «         Œi | j	        ¥d|i¥S )Nr  ÚinputÚcontent)
Úsortedrú   r  r  r(   ÚloadsÚ	TypeErrorÚ
ValueErrorr™   rù   )rŸ   ÚblocksrÕ   r  r  s        r#   Úfinalizez#AnthropicStreamAccumulator.finalize+  sÀ   € ØˆÝ˜DœLÑ)Ô)ð 	!ð 	!ˆEÝ˜œ eÔ,Ñ-Ô-ˆEØ—i’i °Ñ6Ô6ˆGØÐ"ð-Ý%)¤Z°Ñ%8Ô%8�E˜'‘N�NøÝ!¥:Ð.ð -ð -ð -Ø%,�E˜'‘N�N�Nð-øøøà�MŠM˜%Ñ Ô Ð Ð Ø3�$”-Ð3 ¨FÐ3Ð3Ð3s   ÁA$Á$A=Á<A=NÚbasec                óâ   — |                       ¦   «         }t          |¦  «        }t          |t          ¦  «        si }|                     dg ¦  «        }i |¥|¥}|sd|vr||d<   t          |¦  «        S )z8Return the attribute-shaped response consumed by Hermes.r$  )r*  r-   rÁ   r  r  rR   )rŸ   r+  Ú	assembledÚbase_payloadr$  Úmergeds         r#   r¨   z#AnthropicStreamAccumulator.response8  s}   € à—M’M‘O”Oˆ	Ý  ‘”ˆÝ˜,­Ñ-Ô-ð 	ØˆLØ—-’- 	¨2Ñ.Ô.ˆØ.�LÐ. IÐ.ˆØð 	(�i vÐ-Ð-Ø 'ˆF�9ÑÝ˜&Ñ!Ô!Ð!ri   rã   )rû   r   r   r†   )r   r   r    )r+  r   r   r   )rò   ró   rô   rõ   rÈ   r!  r*  r¨   ro   ri   r#   r÷   r÷   é  sp   € € € € € ØFÐFð5ð 5ð 5ð 5ð93ð 93ð 93ð 93ðv4ð 4ð 4ð 4ð
"ð 
"ð 
"ð 
"ð 
"ð 
"ð 
"ri   r÷   rT   úrelay_runtime.RelayRuntimerU   rV   ú6tuple[relay_runtime.RelayTurnContext, Any, str] | Nonec                óÆ  — t          j        |j        ¦  «        }t          |pi                      d¦  «        pd¦  «        }|�|r|j        j        | urd S |j        5  |j        r	 d d d ¦  «         d S |j	        5  |j
                             |¦  «        }|€›|                      || j        j        j        t           j        | j        j        j        |i t           j        t           j        t           j        | j        dt          |pi                      d¦  «        pd¦  «        i¬¦  «        }||j
        |<   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |||fS )NÚapi_request_idr‰   zhermes.call_rolerˆ   Úprimary)r6   r#  r   )r   rd   r   r   r¸   re   ÚhostÚfinalize_lockÚclosedÚlogical_llm_lockÚlogical_llm_callsÚrun_in_sessionrD   ÚscopeÚpushÚLOGICAL_LLM_SCOPEÚ	ScopeTypeÚFunctionÚRUNTIME_SCHEMA_KEYÚRUNTIME_SCHEMA_VERSIONÚRUNTIME_INSTANCE_KEYÚ
runtime_id)rT   rU   rV   r   rg   Ú
request_idr6   s          r#   rB   rB   E  s  € õ Ô$ WÔ%7Ñ8Ô8€DÝ�h�n "×)Ò)Ð*:Ñ;Ô;ÐA¸rÑBÔB€JØ€|˜:€|¨¬¬ÀÐ)GÐ)GØˆtØ	Ô	ð <ð <ØŒ;ð 	Øð<ð <ð <ñ <ô <ð <ð <ð <ð Ô"ð 	<ð 	<ØÔ+×/Ò/°
Ñ;Ô;ˆFØˆ~Ø ×/Ò/ØØ”MÔ'Ô,Ý!Ô3Ø”MÔ+Ô4Ø!Øå%Ô8½-Ô:^Ý%Ô:¸GÔ<NØ*­CØ%˜^¨×0Ò0°Ñ=Ô=ÐJÀñ-ô -ðð 0ñ ô �ð 6<�Ô& zÑ2ð%	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <ð, �˜Ð#Ð#s=   Á	EÁ1EÁ8B8D<Ä0EÄ<E 	Å EÅE 	ÅEÅEÅE)r   r°   r±   r;   r>   ú
str | Noner°   r±   r†   c               ó´  — | €d S | \  }}}|j         }t          |j        t          j        ¦  «        sd S |j        5  |j        5  |j                             |¦  «        |ur	 d d d ¦  «         d d d ¦  «         d S 	 d d d ¦  «         n# 1 swxY w Y   |j	        €	 d d d ¦  «         d S 	 d|i}	|�!|�|	 
                    ||dœ¦  «         |�||	d<   |j                             |j	        |j        j        j        j        ||	t          j        t          j        t          j        |j        j        i¬¦  «         n8# t&          $ r+ t(                               dd¬¦  «         Y d d d ¦  «         d S w xY w|j        5  |j                             |¦  «        |u r|j                             |d ¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nr>   )r  ÚproviderÚresponse_model)Úoutputr   z,Hermes Relay logical LLM finalization failedTr«   )re   rÁ   r5  r   ÚRelayRuntimer6  r8  r9  r¸   rU   Úupdater:  rD   r;  r  r@  rA  rB  rC  rÂ   rÃ   rÄ   )
r;   r>   r   r°   r±   rg   r6   rD  re   rI  s
             r#   rP   rP   h  sF  € ð €ØˆØ&Ñ€Dˆ&�*ØŒJ€EÝ�e”j¥-Ô"<Ñ=Ô=ð ØˆØ	Ô	ð  =ð  =ØÔ"ð 	ð 	ØÔ%×)Ò)¨*Ñ5Ô5¸VÐCÐCØð	ð 	ð 	ñ 	ô 	ð 	ð =ð  =ð  =ñ  =ô  =ð  =ð  =ð  =àCð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð Œ=Ð Øð =ð  =ð  =ñ  =ô  =ð  =ð  =ð  =ð	Ø Ð)ˆFØÐ%¨-Ð*CØ—’¨
ÀÐNÐNÑOÔOÐOØ&Ð2Ø/B�FÐ+Ñ,ØŒJ×%Ò%Ø”Ø”
Ô Ô&Ô*ØØå!Ô4µmÔ6ZÝ!Ô6¸¼
Ô8Mðð &ñ 	ô 	ð 	ð 	øõ ð 	ð 	ð 	õ �NŠNØ>Øð ñ ô ð ð ð; =ð  =ð  =ñ  =ô  =ð  =ð  =ð  =ð,	øøøð Ô"ð 	=ð 	=ØÔ%×)Ò)¨*Ñ5Ô5¸Ð?Ð?ØÔ&×*Ò*¨:°tÑ<Ô<Ð<ð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=ð= =ð  =ð  =ñ  =ô  =ð  =ð  =ð  =ð  =ð  =ð  =ð  =øøøð  =ð  =ð  =ð  =ð  =ð  =s„   ºGÁBÁ GÁ9GÂB		Â	GÂB		ÂGÂ&BD2Ä1GÄ2&E'ÅGÅ&E'Å'
GÅ18F5Æ)GÆ5F9	Æ9GÆ<F9	Æ=GÇGÇGr3   r:   r,   r2   úBaseException | Nonec               óž   — t          |t          ¦  «        r|€d| vrdS t                               dd¬¦  «         |st	          |d¬¦  «         dS )Nr'   Fz]NeMo Relay LLM post-processing failed after provider success; returning the provider responseTr«   r<   r=   )rÁ   rÂ   rÃ   rÄ   rP   )r3   r:   r2   r;   r   s        r#   rO   rO   ™  sq   € õ �{¥IÑ.Ô.ðàÐ%Ø˜,Ð&Ð&àˆuÝ
‡N‚Nð	*àð ñ ô ð ð
 $ð 6Ý˜'¨9Ð5Ñ5Ô5Ð5Øˆ4ri   Úerrorc                óP   — t          | t          j        t          t          f¦  «        S r    )rÁ   r^   ÚCancelledErrorÚInterruptedErrorÚKeyboardInterrupt)rN  s    r#   rÆ   rÆ   ±  s&   € ÝØÝ	Ô	Õ!1Õ3DÐEñô ð ri   r3  c               óà   — t          j        ¦   «         }|�| sdS |j        5  |j                             | ¦  «        }ddd¦  «         n# 1 swxY w Y   |�t          ||| f||||¬¦  «         dS dS )zDComplete the active turn's logical LLM call after caller validation.Nr¯   )r   rd   r8  r9  r¸   rP   )r3  r>   r   r°   r±   rg   r6   s          r#   Úcomplete_logical_callrT  ¸  sÙ   € õ Ô$Ñ&Ô&€DØ€|˜>€|ØˆØ	Ô	ð <ð <ØÔ'×+Ò+¨NÑ;Ô;ˆð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <àÐÝØ�6˜>Ð*ØØ!Ø'Ø 3ð	
ñ 	
ô 	
ð 	
ð 	
ð 	
ð Ðs   ¡AÁAÁAr¨   c                óÔ   — t          | t          ¦  «        r|                      d¦  «        }nt          | dd¦  «        }t          |t          ¦  «        r|                     ¦   «         r|ndS )z<Return a provider-reported model name when one is available.r  N)rÁ   r  r¸   ry   r   Ústrip)r¨   r'   s     r#   r¦   r¦   Ð  s^   € å�(�DÑ!Ô!ð 1Ø—’˜WÑ%Ô%ˆˆå˜ '¨4Ñ0Ô0ˆÝ˜u¥cÑ*Ô*ÐF¨u¯{ª{©}¬}ÐFˆ5ˆ5À$ÐFri   Úoriginalr   r&   c               óÈ  — t          |d|¦  «        }t          |t          ¦  «        s|}|�t          ||¦  «        rt          | ¦  «        }n¦|}t	          ||¦  «        }t          | ¦  «        }|                     ¦   «         |                     ¦   «         z  D ]H}	|	|vr|                     |	d ¦  «         Œ|	|vst          ||	         ||	         ¦  «        s||	         ||	<   ŒIt          | |||¬¦  «         t          |dd ¦  «        }
t          |
t          ¦  «        rd„ |
                     ¦   «         D ¦   «         }
|
r+i t          | 	                    d¦  «        pi ¦  «        ¥|
¥|d<   |S )Nr$  )ÚbaselineÚinterceptedÚheadersc                ój   — i | ]0\  }}t          |¦  «                             ¦   «         t          v¯-||“Œ1S ro   )r   ÚlowerÚ _RELAY_INTERNAL_PROVIDER_HEADERS©rÜ   r  r'   s      r#   ú
<dictcomp>z%_provider_request.<locals>.<dictcomp>ý  sD   € ð 
ð 
ð 
á��UÝ�3‰xŒx�~Š~ÑÔÕ'GÐGÐGð �àGÐGÐGri   Úextra_headers)
ry   rÁ   r  rQ   Ú_provider_request_bodyÚkeysr  Ú$_restore_provider_message_extensionsÚitemsr¸   )rW  r   r   r&   r   r$  r   rY  rZ  r  r[  s              r#   r)   r)   Ù  s¨  € õ �g˜y¨'Ñ2Ô2€GÝ�g�tÑ$Ô$ð %Ø$ˆØÐ"¥k°'Ð;MÑ&NÔ&NÐ"Ý�X‘”ˆˆà&ˆÝ,¨W°hÑ?Ô?ˆÝ�X‘”ˆð —=’=‘?”? [×%5Ò%5Ñ%7Ô%7Ñ7ð 	.ð 	.ˆCØ˜+Ð%Ð%Ø—	’	˜#˜tÑ$Ô$Ð$Ð$Ø˜HÐ$Ð$­KØ˜CÔ Ø˜”ñ-ô -Ð$ð )¨Ô-��c‘
øÝ,ØØØØ#ð		
ñ 	
ô 	
ð 	
õ �g˜y¨$Ñ/Ô/€GÝ�'�4Ñ Ô ð 
ð
ð 
à%Ÿmšm™oœoð
ñ 
ô 
ˆð
 ð 
ð"
Ý�5—9’9˜_Ñ-Ô-Ð3°Ñ4Ô4ð"
àð"
ˆˆoÑð €Lri   c                ó|  — t          | ¦  «        }t          |t          ¦  «        si S t          |pi                      d¦  «        pd¦  «        dk    ryt          |¦  «        }|                     d¦  «        €|                     dd ¦  «         n°t          |                     d¦  «        t          ¦  «        rd„ |d         D ¦   «         |d<   nrt          |pi                      d¦  «        pd¦  «        dk    rH|                     d¦  «        }t          |t          ¦  «        rt          |¦  «        }d„ |D ¦   «         |d<   |S )NÚapi_moder‰   Úcodex_responsesÚtoolsc                ó¸   — g | ]W}t          |t          ¦  «        r>|                     d ¦  «        dk    r%d|vr!dd„ |                     ¦   «         D ¦   «         dœn|‘ŒXS )rý   Úfunctionc                ó&   — i | ]\  }}|d k    ¯||“ŒS )rý   ro   r_  s      r#   r`  z2_relay_request_body.<locals>.<listcomp>.<dictcomp>  s/   € ð !ð !ð !á&˜C Ø &š=˜=ð ˜Uà(˜=˜=ri   ©rý   rk  )rÁ   r  r¸   re  ©rÜ   Útools     r#   rÞ   z'_relay_request_body.<locals>.<listcomp>  sš   € ð ð ð ð õ	 ˜d¥DÑ)Ô)ðð —H’H˜VÑ$Ô$¨
Ò2Ð2Ø dÐ*Ð*ð 'ð!ð !à*.¯*ª*©,¬,ð!ñ !ô !ðð ð ð ðð ð ri   Úchat_completionsc                óX   — g | ]'}t          |t          ¦  «        rd |v r
d|vrdd i|¥n|‘Œ(S )rk  rý   ©rÁ   r  rn  s     r#   rÞ   z'_relay_request_body.<locals>.<listcomp>,  sf   € ð ð ð ð õ	 ˜d¥DÑ)Ô)ðà $Ð&Ð&Ø $Ð&Ð&ð ˜Ð, tÐ,Ð,ð ðð ð ri   )r-   rÁ   r  r   r¸   r  Úlist)r   r   Úbodyri  s       r#   rC   rC   
  sV  € õ �WÑÔ€DÝ�d�DÑ!Ô!ð Øˆ	õ
 ˆHˆN˜×Ò 
Ñ+Ô+Ð1¨rÑ2Ô2Ð6GÒGÐGÝ�D‰zŒzˆØ�8Š8�GÑÔÐ$Ø�HŠH�W˜dÑ#Ô#Ð#Ð#Ý˜Ÿš Ñ)Ô)­4Ñ0Ô0ð 	ðð ð ! œMðñ ô ˆD�‰Møõ 
ˆhˆn˜"×!Ò! *Ñ-Ô-Ð3°Ñ	4Ô	4Ð8JÒ	JÐ	JØ—’˜Ñ!Ô!ˆÝ�e�TÑ"Ô"ð 		Ý˜‘:”:ˆDðð ð "ðñ ô ˆD�‰Mð €Kri   r   rY  rZ  c               óB  — |                       d¦  «        }|                      d¦  «        }|                      d¦  «        }|                      d¦  «        }t          d„ ||||fD ¦   «         ¦  «        sdS t          |¦  «        t          |¦  «        cxk    r't          |¦  «        cxk    rt          |¦  «        k    sn dS t          ||||d¬¦  «        D ]J\  }}	}
}t          d„ ||	|
|fD ¦   «         ¦  «        sŒ%t          D ]}||v r||
vr||vr||	vr||         |	|<   ŒŒKdS )zGRestore provider wire fields that Relay's typed codec cannot represent.Úmessagesc              3  ó@   K  — | ]}t          |t          ¦  «        V — Œd S r    )rÁ   rs  )rÜ   rv  s     r#   ú	<genexpr>z7_restore_provider_message_extensions.<locals>.<genexpr>C  s@   è è € ð ð àõ 	�8�TÑ"Ô"ðð ð ð ð ð ri   NT)Ústrictc              3  ó@   K  — | ]}t          |t          ¦  «        V — Œd S r    rr  )rÜ   rÿ   s     r#   rx  z7_restore_provider_message_extensions.<locals>.<genexpr>[  s@   è è € ð 
ð 
àõ �w¥Ñ%Ô%ð
ð 
ð 
ð 
ð 
ð 
ri   )r¸   ÚallÚlenÚzipÚ _PROVIDER_MESSAGE_EXTENSION_KEYS)rW  r   rY  rZ  Úoriginal_messagesÚfinal_messagesÚbaseline_messagesÚintercepted_messagesÚoriginal_messageÚfinal_messageÚbaseline_messageÚintercepted_messager  s                r#   rd  rd  7  sâ  € ð !Ÿš ZÑ0Ô0ÐØ—Y’Y˜zÑ*Ô*€NØ Ÿš ZÑ0Ô0ÐØ&Ÿ?š?¨:Ñ6Ô6ÐÝð ð ð ØØØ ð	
ðñ ô ñ ô ð 	ð 	ˆåÐÑÔÝˆ~ÑÔð	%ð 	%ò 	%ð 	%åÐ Ñ!Ô!ð	%ð 	%ò 	%ð 	%õ Ð#Ñ$Ô$ò	%ð 	%ð 	%ð 	%ð
 	ˆÝRUØØØØØðSñ Sô Sð ;ð ;ÑNÐ˜-Ð)9Ð;Nõ ð 
ð 
ð !ØØ Ø#ð	ð
ñ 
ô 
ñ 
ô 
ð 		ð Ý3ð 	;ð 	;ˆCàÐ'Ð'Ð'ØÐ/Ð/Ð/ØÐ2Ð2Ð2Ø˜}Ð,Ð,à%5°cÔ%:�˜cÑ"øð	;ð#;ð ;ri   rD   rW   c               óž  — t          | |¦  «        }|€t          ||¦  «        S 	 |                     |¦  «        }|                     ||¦  «        }t	          |d|¦  «        }t          |t          ¦  «        rt          ||¦  «        S n-# t          $ r  t           	                    dd¬¦  «         Y dS w xY wt           	                    d¦  «         dS )zCReturn the codec-only request shape used to identify real rewrites.Nr$  zCNeMo Relay request codec baseline failed; ignoring request rewritesTr«   zTNeMo Relay request codec returned an unsupported baseline; ignoring request rewrites)
rM   rb  ÚdecodeÚencodery   rÁ   r  rÂ   rÃ   rÄ   )rD   rW   r   r   r7   Ú	annotatedrÖ   r$  s           r#   rF   rF   o  só   € õ �5˜(Ñ#Ô#€EØ€}Ý%Ð&8¸(ÑCÔCÐCðØ—L’L Ñ/Ô/ˆ	Ø—,’,˜y¨-Ñ8Ô8ˆÝ˜' 9¨gÑ6Ô6ˆÝ�g�tÑ$Ô$ð 	=Ý)¨'°8Ñ<Ô<Ð<ð	=øåð ð ð Ý�ŠØQØð 	ñ 	
ô 	
ð 	
ð ˆtˆtðøøøõ ‡N‚Nð	$ñô ð ð ˆ4s   ¤A B Â&B0Â/B0r$  c                óò   — t          | ¦  «        }t          |pi                      d¦  «        pd¦  «        dk    r|S |                     d¦  «        }t          |t          ¦  «        s|S d„ |D ¦   «         |d<   |S )Nrg  r‰   rh  ri  c                óð   — g | ]s}t          |t          ¦  «        rZ|                     d ¦  «        dk    rAt          |                     d¦  «        t          ¦  «        rd dit          |d         ¦  «        ¥n|‘ŒtS rm  )rÁ   r  r¸   rn  s     r#   rÞ   z*_provider_request_body.<locals>.<listcomp>–  s›   € ð 
ð 
ð 
ð õ	 �d�DÑ!Ô!ð		ð
 �HŠH�VÑÔ 
Ò*Ð*Ý�t—x’x 
Ñ+Ô+­TÑ2Ô2ð +ð	 �Jð	
å�4˜
Ô#Ñ$Ô$ð	
ð 	
ð ð
ð 
ð 
ri   )r  r   r¸   rÁ   rs  )r$  r   rt  ri  s       r#   rb  rb  �  s’   € õ �‰=Œ=€DÝ
ˆHˆN˜×Ò 
Ñ+Ô+Ð1¨rÑ2Ô2Ð6GÒGÐGØˆØ�HŠH�WÑÔ€EÝ�e�TÑ"Ô"ð Øˆð
ð 
ð ð
ñ 
ô 
€Dˆ�Mð €Kri   c                óB  — t          |pi                      d¦  «        pd¦  «        }t          | dd ¦  «        }|€d S |dk    rt          |dd ¦  «        }n2|dk    rt          |dd ¦  «        }n|dk    rt          |d	d ¦  «        }nd }t          |¦  «        r
 |¦   «         nd S )
Nrg  r‰   Úcodecsrp  ÚOpenAIChatCodecÚanthropic_messagesÚAnthropicMessagesCodecrh  ÚOpenAIResponsesCodec)r   r¸   ry   r’   )rD   r   rg  rŽ  r7   s        r#   rM   rM   ¤  sÁ   € Ý�H�N ×'Ò'¨
Ñ3Ô3Ð9°rÑ:Ô:€HÝ�U˜H dÑ+Ô+€FØ€~ØˆtØÐ%Ò%Ð%Ý˜Ð 1°4Ñ8Ô8ˆˆØ	Ð)Ò	)Ð	)Ý˜Ð 8¸$Ñ?Ô?ˆˆØ	Ð&Ò	&Ð	&Ý˜Ð 6¸Ñ=Ô=ˆˆàˆÝ˜u‘o”oÐ/ˆ5ˆ5‰7Œ7ˆ7¨4Ð/ri   r'   c                ó*  — | �(t          | t          t          t          t          f¦  «        r| S t          | t
          ¦  «        rd„ |                      ¦   «         D ¦   «         S t          | t          t          t          f¦  «        rd„ | D ¦   «         S t          t          | ¦  «        dd ¦  «        }t          |¦  «        rg	 	 t          |                      dd¬¦  «        ¦  «        S # t          $ r$ t          |                      ¦   «         ¦  «        cY S w xY w# t           $ r Y nw xY w	 d„ t#          | ¦  «                             ¦   «         D ¦   «         }n&# t          t$          f$ r t          | ¦  «        cY S w xY w|rt          |¦  «        nt          | ¦  «        S )Nc                óN   — i | ]"\  }}t          |¦  «        t          |¦  «        “Œ#S ro   )r   r-   ©rÜ   r  Úitems      r#   r`  z_jsonable.<locals>.<dictcomp>¸  s*   € ÐIÐIÐI©i¨c°4•�C‘”�) D™/œ/ÐIÐIÐIri   c                ó,   — g | ]}t          |¦  «        ‘ŒS ro   )r-   ©rÜ   r–  s     r#   rÞ   z_jsonable.<locals>.<listcomp>º  s   € Ð2Ð2Ð2 D•	˜$‘”Ð2Ð2Ð2ri   Ú
model_dumpr(   F)ÚmodeÚwarningsc                óx   — i | ]7\  }}t          |¦  «                             d ¦  «        °'t          |¦  «        |“Œ8S )Ú_)r   r¹   r•  s      r#   r`  z_jsonable.<locals>.<dictcomp>Ê  sN   € ð 
ð 
ð 
á��TÝ�s‘8”8×&Ò& sÑ+Ô+ð
Ý�‰HŒH�dð
ð 
ð 
ri   )rÁ   r   r  Úfloatr   r  re  rs  Útuplerê   ry   rý   r’   r-   r™  r'  rÂ   ÚvarsÚAttributeError)r'   r™  Ú
attributess      r#   r-   r-   ´  s·  € Ø€}�
 5­3µµU½DÐ*AÑBÔB€}ØˆÝ�%�ÑÔð JØIÐI¸5¿;º;¹=¼=ÐIÑIÔIÐIÝ�%�$¥¥sÐ+Ñ,Ô,ð 3Ø2Ð2¨EÐ2Ñ2Ô2Ð2Ý�˜e™œ l°DÑ9Ô9€JÝ�
ÑÔð ð	ð
5Ý  ×!1Ò!1°vÈÐ!1Ñ!NÔ!NÑOÔOÐOøÝð 5ð 5ð 5å  ×!1Ò!1Ñ!3Ô!3Ñ4Ô4Ð4Ð4Ð4ð5øøøøõ ð 	ð 	ð 	ØˆDð	øøøðð
ð 
å! %™[œ[×.Ò.Ñ0Ô0ð
ñ 
ô 
ˆ
ˆ
øõ
 •~Ð&ð ð ð Ý�5‰zŒzÐÐÐðøøøà$.Ð>�9�ZÑ Ô Ð µC¸±J´JÐ>s<   Â=#C! Ã!+DÄD ÄDÄD Ä
DÄDÄ#+E Å E2Å1E2c                óÂ   — t          | t          ¦  «        r(t          di d„ |                      ¦   «         D ¦   «         ¤ŽS t          | t          ¦  «        rd„ | D ¦   «         S | S )Nc                óN   — i | ]"\  }}t          |¦  «        t          |¦  «        “Œ#S ro   )r   rR   r•  s      r#   r`  z_namespace.<locals>.<dictcomp>Ö  s9   € ð "
ð "
ð "
Ù+4¨3°�C�‰HŒH•j Ñ&Ô&ð"
ð "
ð "
ri   c                ó,   — g | ]}t          |¦  «        ‘ŒS ro   )rR   r˜  s     r#   rÞ   z_namespace.<locals>.<listcomp>Ú  s    € Ð3Ð3Ð3 T•
˜4Ñ Ô Ð3Ð3Ð3ri   ro   )rÁ   r  r   re  rs  ©r'   s    r#   rR   rR   Ô  s�   € Ý�%�ÑÔð Ýð ð ð "
ð "
Ø8=¿º¹¼ð"
ñ "
ô "
ð ð ð 	õ �%�ÑÔð 4Ø3Ð3¨UÐ3Ñ3Ô3Ð3Ø€Lri   ÚleftÚrightc                óÈ   — 	 t          j        t          | ¦  «        dd¬¦  «        t          j        t          |¦  «        dd¬¦  «        k    S # t          t          f$ r Y dS w xY w)NT)Ú,ú:)Ú	sort_keysÚ
separatorsF)r(   Údumpsr-   r'  r(  )r§  r¨  s     r#   rQ   rQ   Þ  sy   € ðÝŒzÝ�d‰OŒO t¸
ð
ñ 
ô 
åŒZ�	 %Ñ(Ô(°DÀZÐPÑPÔPòQð 	Qøõ •zÐ"ð ð ð Øˆuˆuðøøøs   ‚A	A ÁA!Á A!c                ó¾   — t          j        | ¦  «        s| S 	 t          j        ¦   «          n$# t          $ r t          j        | ¦  «        cY S w xY wt	          d¦  «        ‚)NzBSynchronous Relay LLM execution cannot run on an event-loop thread)ÚinspectÚisawaitabler^   rm   rn   r+   r¦  s    r#   rI   rI   ç  sw   € ÝÔ˜uÑ%Ô%ð Øˆð"ÝÔ Ñ"Ô"Ð"Ð"øÝð "ð "ð "ÝŒ{˜5Ñ!Ô!Ð!Ð!Ð!ð"øøøå
ØLñô ð s   ˜, ¬AÁA)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   )r   r   rr   r   r   r   r   r   rs   rt   r   r   r   r   rq   ru   r   r   )r   r   rr   r   r   r   r   r   r   r   rs   rt   r|   r€   r}   r€   r~   r�   r   ru   rq   ru   r   r   r   r   r   r‚   )
rT   r0  rU   r   rV   r   r   r   r   r1  )r;   r1  r>   r   r   rE  r°   rE  r±   rE  r   r†   )r3   r   r:   r,   r2   rL  r;   r1  r   r   r   r   )rN  r,   r   r   )r3  r   r>   r   r   rE  r°   rE  r±   rE  r   r†   )r¨   r   r   rE  )rW  r   r   r   r   r   r&   r   r   r   r   r   )r   r   r   r   r   r   )
rW  r   r   r   rY  r   rZ  r   r   r†   )
rD   r   rW   r   r   r   r   r   r   r   )r$  r   r   r   r   r   )rD   r   r   r   r   r   )r'   r   r   r   )r§  r   r¨  r   r   r   )0rõ   Ú
__future__r   r^   rG   r°  r(   ÚloggingÚcollections.abcr   r   Útypesr   Útypingr   Úagentr   Ú	getLoggerrò   rÃ   Ú	frozensetr~  r^  rL   ra   rh   rk   rp   r{   rx   r„   r÷   rB   rP   rO   rÆ   rT  r¦   r)   rC   rd  rF   rb  rM   r-   rR   rQ   rI   ro   ri   r#   ú<module>rº     sç  ðØ EÐ Eà "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ø €€€Ø €€€Ø €€€Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð à	ˆÔ	˜8Ñ	$Ô	$€ð $- 9ØÐ-Ð.ñ$ô $Ð  ð $- 9Ø!Ð#8Ð9ñ$ô $Ð  ð '+Ø%*ðYð Yð Yð Yð Yð YðF '+Ø%*ðZð Zð Zð Zð Zð ZðF '+Ø%*ðð ð ð ð ð ð< '+Ø%*ðð ð ð ð ð ð0ð ð ð ð '+Ø%*ØAEð7ð 7ð 7ð 7ð 7ð 7ðD 7;Ø-1Ø15Ø15ØAEØ&*Ø%*ðð ð ð ð ð ðD~1ð ~1ð ~1ð ~1ð ~1�x ”}ñ ~1ô ~1ð ~1ðBY"ð Y"ð Y"ð Y"ð Y"ñ Y"ô Y"ð Y"ðx $ð  $ð  $ð  $ðN "Ø $Ø&*ð.=ð .=ð .=ð .=ð .=ð .=ðbð ð ð ð0ð ð ð ð "Ø $Ø&*ð
ð 
ð 
ð 
ð 
ð 
ð0Gð Gð Gð Gð.ð .ð .ð .ðb*ð *ð *ð *ðZ5;ð 5;ð 5;ð 5;ðpð ð ð ð<ð ð ð ð.0ð 0ð 0ð 0ð ?ð ?ð ?ð ?ð@ð ð ð ðð ð ð ð	ð 	ð 	ð 	ð 	ð 	ri   