ó
    ýÞ j¦½  ã                  ó  • S SK Jr  S SKrS SKJrJrJr  S SKJr  S SK	J
r
JrJrJr  S SKJr  S SKrS SKJr  S SKJr  S S	KJr  S S
KJr  S SKJr  S SKJrJrJ r J!r!  S SK"J#r#J$r$J%r%J&r&  S SK"J'r(  S SK"J)r*  S SK+J,r,  S SK-J.r.  S SK/J0r0J1r1J2r2J3r3J4r4J5r5J6r6J7r7  S SK8J9r9J:r:  S SK;J<r<J=r=  S SK>J?r?J@r@  S SKAJBrBJ'r'JCrCJDrDJErEJFrFJ)r)JGrG  \R�                  " \I5      rJSrK\L" \2\1\3\545      rM\L" SS15      rNS S jrO " S S\P5      rQ " S S\?5      rRS!S jrSg)"é    )ÚannotationsN)ÚAsyncIteratorÚIteratorÚSequence)Úasdict)ÚAnyÚLiteralÚcastÚoverload)ÚUUID)ÚRunnableConfig)ÚEdge)ÚGraph)ÚNode)ÚCheckpointMetadata)ÚLangGraphClientÚSyncLangGraphClientÚ
get_clientÚget_sync_client)Ú
CheckpointÚContextÚQueryParamTypesÚThreadState)ÚCommand)Ú
StreamMode)ÚSelf)Úmerge_configs)ÚCONFÚCONFIG_KEY_CHECKPOINT_IDÚCONFIG_KEY_CHECKPOINT_MAPÚCONFIG_KEY_CHECKPOINT_NSÚCONFIG_KEY_STREAMÚCONFIG_KEY_TASK_IDÚ	INTERRUPTÚNS_SEP)ÚGraphInterruptÚParentCommand)Ú_AsyncRemoteGraphRunStreamÚ_RemoteGraphRunStream)ÚPregelProtocolÚStreamProtocol)ÚAllr   ÚGraphOutputÚ	InterruptÚ
PregelTaskÚStateSnapshotr   Ú
StreamPart)ÚRemoteGraphÚRemoteExceptionÚmetadataÚheadersc                ó¨  • [        U [        [        [        [        [
        45      (       a  U $ [        U [        5      (       aH  0 nU R                  5        H0  u  p#[        U[        5      (       d  M  [        U5      nUc  M,  XAU'   M2     U$ [        U [        [        45      (       a.  / nU  H$  n[        U5      nUc  M  UR                  U5        M&     U$ g)zJRecursively sanitize a config value to ensure it contains only primitives.N)Ú
isinstanceÚstrÚintÚfloatÚboolr   ÚdictÚitemsÚ_sanitize_config_valueÚlistÚtupleÚappend)ÚvÚsanitized_dictÚkÚvalÚsanitized_valueÚsanitized_listÚitemÚsanitized_items           ÚQ/var/www/html/gaurav/venv/lib/python3.13/site-packages/langgraph/pregel/remote.pyr>   r>   Z   s¹   € ä�!”cœ3¤¤t¬TÐ2×3Ñ3ØˆÜ	�A”t×	Ñ	ØˆØ—g‘g–i‰FˆAÜ˜!œS×!Ó!Ü"8¸Ó"=�Ø"Ó.Ø(7 1Ó%ñ	  ð
 ÐÜ	�Aœœe�}×	%Ñ	%ØˆÛˆDÜ3°DÓ9ˆNØÓ)Ø×%Ñ% nÖ5ñ ð ÐØó    c                  ó   • \ rS rSrSrSrg)r3   ép   z:Exception raised when an error occurs in the remote graph.© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__static_attributes__rN   rK   rJ   r3   r3   p   s   † ÙDârK   r3   c                  óD  ^ • \ rS rSr% SrS\S'   S\S'   SSSSSSSSS	.                 S;S
 jjrS<S jrS=S jr            S>S jr	S?S jr
S@SAS jjr    SBS jr S@SSSS.         SCS jjjr S@SSSS.         SCS jjjrSDS jrSES jrSFS jrSGS jrSSSS.         SHS jjrSSSS.         SHS jjrSSSSSS.             SIS jjrSSSSSS.             SJS jjr      SKS jr      SKS jr S@SSS .           SLS! jjjr S@SSS .           SLS" jjjr SM       SNS# jjr\ S@SSSSSSSS$.                       SOS% jjj5       r\ S@SSSSSSSS&S'.                       SPS( jjj5       r S@SSSSSSSS)S'.                       SQS* jjjr\ S@SSSSSSSS$.                       SRS+ jjj5       r\ S@SSSSSSSS&S'.                       SSS, jjj5       r S@SSSSSSSS)S'.                       STS- jjjr S@S.SSSSSS/.                   SUU 4S0 jjjjr S@S.SSSSSS/.                   SUS1 jjjr \ S@SSSSSS2.                   SVS3 jjj5       r!\ S@SSSSSS&S4.                   SWS5 jjj5       r! S@SSSSSS)S4.                   SXS6 jjjr!\ S@SSSSSS2.                   SVS7 jjj5       r"\ S@SSSSSS&S4.                   SWS8 jjj5       r" S@SSSSSS)S4.                   SXS9 jjjr"S:r#U =r$$ )Yr2   év   aS  The `RemoteGraph` class is a client implementation for calling remote
APIs that implement the LangGraph Server API specification.

For example, the `RemoteGraph` class can be used to call APIs from deployments
on LangSmith Deployment.

`RemoteGraph` behaves the same way as a `Graph` and can be used directly as
a node in another `Graph`.
r8   Úassistant_idú
str | NoneÚnameNF)ÚurlÚapi_keyr5   ÚclientÚsync_clientÚconfigrY   Údistributed_tracingc              ó    • Xl         Uc  Xl        OX€l        Xpl        X�l        Uc  Ub
  [	        X#US9nXPl        Uc  Ub
  [        X#US9nX`l        g)aë  Specify `url`, `api_key`, and/or `headers` to create default sync and async clients.

If `client` or `sync_client` are provided, they will be used instead of the default clients.
See `LangGraphClient` and `SyncLangGraphClient` for details on the default clients. At least
one of `url`, `client`, or `sync_client` must be provided.

Args:
    assistant_id: The assistant ID or graph name of the remote graph to use.
    url: The URL of the remote API.
    api_key: The API key to use for authentication. If not provided, it will be read from the environment (`LANGGRAPH_API_KEY`, `LANGSMITH_API_KEY`, or `LANGCHAIN_API_KEY`).
    headers: Additional headers to include in the requests.
    client: A `LangGraphClient` instance to use instead of creating a default client.
    sync_client: A `SyncLangGraphClient` instance to use instead of creating a default client.
    config: An optional `RunnableConfig` instance with additional configuration.
    name: Human-readable name to attach to the RemoteGraph instance.
        This is useful for adding `RemoteGraph` as a subgraph via `graph.add_node(remote_graph)`.
        If not provided, defaults to the assistant ID.
    distributed_tracing: Whether to enable sending LangSmith distributed tracing headers.
N)rZ   r[   r5   )rW   rY   r^   r_   r   r\   r   r]   )
ÚselfrW   rZ   r[   r5   r\   r]   r^   rY   r_   s
             rJ   Ú__init__ÚRemoteGraph.__init__„   s[   € ðB )ÔØ‰<Ø$�IàŒIØŒØ#6Ô à‰>˜c™oÜ CÀ'ÑJˆFØŒàÑ 3¡?Ü)¨cÈGÑTˆKØ&ÕrK   c                óJ   • U R                   c  [        S5      eU R                   $ )NzbAsync client is not initialized: please provide `url` or `client` when initializing `RemoteGraph`.)r\   Ú
ValueError©ra   s    rJ   Ú_validate_clientÚRemoteGraph._validate_clientµ   s(   € Ø�;‰;ÑÜØtóð ð �{‰{ÐrK   c                óJ   • U R                   c  [        S5      eU R                   $ )NzfSync client is not initialized: please provide `url` or `sync_client` when initializing `RemoteGraph`.)r]   re   rf   s    rJ   Ú_validate_sync_clientÚ!RemoteGraph._validate_sync_client¼   s,   € Ø×ÑÑ#ÜØxóð ð ×ÑÐrK   c               óä   • SU4SU4SU4SU44 H  u  pgU(       d  M  [        SU S35      e   [        U5      [        -
  nU(       a*  [        S[        U5      < S[        [        5      < S	35      eg
)zJRaise NotImplementedError for kwargs unsupported by the v3 streaming path.ÚcontrolÚtransformersÚinterrupt_beforeÚinterrupt_afterz:RemoteGraph.stream_events(version='v3') does not support `z=`.zORemoteGraph.stream_events(version='v3') does not support the following kwargs: z. Supported: Ú.N)ÚNotImplementedErrorÚsetÚ_V3_SUPPORTED_KWARGSÚsorted)	ra   rm   rn   ro   rp   Úextra_kwargsrY   ÚvalueÚunknowns	            rJ   Ú_reject_v3_unsupportedÚ"RemoteGraph._reject_v3_unsupportedÃ   s¥   € ð ˜Ð Ø˜\Ð*ØÐ!1Ð2Ø Ð0ó	
‰KˆD÷ ˆuÜ)ØPÐQUÐPVÐVYÐZóð ñ
ô �lÓ#Ô&:Ñ:ˆÞÜ%ð)Ü)/°«Ñ(;ð <Ü$Ô%9Ó:Ñ=¸Qð@óð ð rK   c                óf   • 0 U R                   EUEnU R                  " UR                  S5      40 UD6$ )NrW   )Ú__dict__Ú	__class__Úpop)ra   ÚupdateÚattrss      rJ   ÚcopyÚRemoteGraph.copyß   s2   € Ø+�4—=‘=Ð+ FÐ+ˆØ�~Š~˜eŸi™i¨Ó7ÑA¸5ÑAÐArK   c                ón   • U R                  S[        U R                  U[        [        U5      5      05      $ )Nr^   )r�   r   r^   r
   r   )ra   r^   Úkwargss      rJ   Úwith_configÚRemoteGraph.with_configã   s/   € Ø�y‰yØ”} T§[¡[°&¼$¼~ÈvÓ:VÓWÐXó
ð 	
rK   c           	     ó  • 0 nUS    H~  n[        US   5      nUR                  S0 5      nUR                  S5      nUc*  [        U[        5      (       a  UR                  SU5      nOUn[	        UUUUR                  S5      S9X$'   M€     U$ )NÚnodesÚidÚdatarY   r4   )r‰   rY   rŠ   r4   )r8   Úgetr7   r<   ÚDrawableNode)ra   Úgraphrˆ   ÚnodeÚnode_idÚ	node_dataÚ	node_names          rJ   Ú_get_drawable_nodesÚRemoteGraph._get_drawable_nodesè   s”   € ð ˆØ˜'”NˆDÜ˜$˜t™*“oˆGØŸ™ ¨Ó,ˆIð Ÿ™ Ó(ˆIØÑ Ü˜i¬×.Ñ.Ø )§¡¨f°gÓ >‘Ià '�Iä)ØØØØŸ™ *Ó-ñ	ˆE‹Nñ #ð$ ˆrK   )Úxrayr5   Úparamsc               óâ   • U R                  5       nUR                  R                  U R                  UUUS9n[	        U R                  U5      US    Vs/ sH  n[        S0 UD6PM     snS9$ s  snf )á}  Get graph by graph name.

This method calls `GET /assistants/{assistant_id}/graph`.

Args:
    config: This parameter is not used.
    xray: Include graph representation of subgraphs. If an integer
        value is provided, only subgraphs with a depth less than or
        equal to the value will be included.

Returns:
    The graph information for the assistant in JSON format.
©rW   r”   r5   r•   Úedges©rˆ   r™   rN   )rj   Ú
assistantsÚ	get_graphrW   ÚDrawableGraphr’   ÚDrawableEdge)ra   r^   r”   r5   r•   r]   r�   Úedges           rJ   rœ   ÚRemoteGraph.get_graph   s}   € ð* ×0Ñ0Ó2ˆØ×&Ñ&×0Ñ0Ø×*Ñ*ØØØð	 1ð 
ˆô Ø×*Ñ*¨5Ó1Ø49¸'²NÓC±N¨D”<Ñ' $Ô'±NÑCñ
ð 	
ùâCs   ÁA,
c             ƒ  óþ   #   • U R                  5       nUR                  R                  U R                  UUUS9I Sh  v•N n[	        U R                  U5      US    Vs/ sH  n[        S0 UD6PM     snS9$  N9s  snf 7f)r—   r˜   Nr™   rš   rN   )rg   r›   rœ   rW   r�   r’   rž   )ra   r^   r”   r5   r•   r\   r�   rŸ   s           rJ   Ú
aget_graphÚRemoteGraph.aget_graph!  s�   é € ð* ×&Ñ&Ó(ˆØ×'Ñ'×1Ñ1Ø×*Ñ*ØØØð	 2ð 
÷ 
ˆô Ø×*Ñ*¨5Ó1Ø49¸'²NÓC±N¨D”<Ñ' $Ô'±NÑCñ
ð 	
ñ
ùò Dùs!   ‚:A=¼A6½ A=ÁA8
Á1A=Á8A=c                ó*  • / nUS    H¨  n[        S US    5       5      nUR                  [        US   US   [        5       US   (       a  [        US   5      OS UUS   (       a  U R	                  US   5      O US   (       a  [        [        S	US   05      OS UR                  S
5      S95        Mª     [        US   US   (       a  [        US   5      O	[        5       S	US   S   US   S   US   S   US   R                  S0 5      S.0[        S0 US   D6US   US   (       a.  S	US   S   US   S   US   S   US   R                  S0 5      S.0OS [        U5      [        U VVs/ sH  o3R                   H  oUPM     M     snn5      S9$ s  snnf )NÚtasksc              3  ó6   #   • U H  n[        S0 UD6v •  M     g 7f©NrN   )r.   )Ú.0Ú	interrupts     rJ   Ú	<genexpr>Ú5RemoteGraph._create_state_snapshot.<locals>.<genexpr>E  s   é € ð Ù8J¨9”	Ñ&˜IÖ&Ò8Jùs   ‚Ú
interruptsr‰   rY   ÚerrorÚstateÚ
checkpointÚconfigurableÚresult)r‰   rY   Úpathr­   r¬   r®   r±   ÚvaluesÚnextÚ	thread_idÚcheckpoint_nsÚcheckpoint_idÚcheckpoint_map©rµ   r¶   r·   r¸   r4   Ú
created_atÚparent_checkpoint)r³   r´   r^   r4   rº   Úparent_configr¥   r¬   rN   )r@   rA   r/   Ú	ExceptionÚ_create_state_snapshotr
   r   r‹   r0   r   r¬   )ra   r®   r¥   Útaskr¬   Úis         rJ   r¾   Ú"RemoteGraph._create_state_snapshotB  sà  € Ø"$ˆØ˜'”NˆDÜñ Ø8<¸\Ò8Jóó ˆJð �L‰LÜØ˜D‘zØ˜f™Ü›Ø6:¸7·mœ) D¨¡MÔ2ÈØ)ð   Ÿ=ð ×3Ñ3°D¸±MÔBð  $ L×1ô !¤°.À$À|ÑBTÐ1UÔVà!%ð  Ÿ8™8 HÓ-ñöñ #ô2 Ø˜‘?Ø).¨v¯”�u˜V‘}Ô%¼E»GàØ!& |Ñ!4°[Ñ!AØ%*¨<Ñ%8¸Ñ%IØ%*¨<Ñ%8¸Ñ%IØ&+¨LÑ&9×&=Ñ&=Ð>NÐPRÓ&Sñ	!ðô (Ñ<¨%°
Ñ*;Ñ<Ø˜\Ñ*ð Ð,×-ð #Ø%*Ð+>Ñ%?ÀÑ%LØ).Ð/BÑ)CÀOÑ)TØ).Ð/BÑ)CÀOÑ)TØ*/Ð0CÑ*D×*HÑ*HØ,¨bó+ñ	%ñ	ð ä˜“,Ü©EÔK©E D¿?¼?°aša¹?™a©EÒKÓLñ9
ð 	
ùó8 Ls   Å)Fc                óÄ   • Uc  g 0 nSUS   ;   a  US   S   US'   SUS   ;   a  US   S   US'   SUS   ;   a  US   S   US'   SUS   ;   a  US   S   US'   U(       a  U$ S $ )Nrµ   r°   r¶   r·   r¸   rN   )ra   r^   r¯   s      rJ   Ú_get_checkpointÚRemoteGraph._get_checkpoint|  s¢   € Ø‰>Øàˆ
à˜& Ñ0Ó0Ø&,¨^Ñ&<¸[Ñ&IˆJ�{Ñ#Ø˜f ^Ñ4Ó4Ø*0°Ñ*@ÀÑ*QˆJ�Ñ'Ø˜f ^Ñ4Ó4Ø*0°Ñ*@ÀÑ*QˆJ�Ñ'Ø˜v nÑ5Ó5Ø+1°.Ñ+AÐBRÑ+SˆJÐ'Ñ(æ'ˆzÐ1¨TÐ1rK   c                óF   • SUS   US   US   UR                  S0 5      S.0$ )Nr°   rµ   r¶   r·   r¸   r¹   )r‹   )ra   r¯   s     rJ   Ú_get_configÚRemoteGraph._get_config�  s;   € àØ'¨Ñ4Ø!+¨OÑ!<Ø!+¨OÑ!<Ø",§.¡.Ð1AÀ2Ó"Fñ	ð
ð 	
rK   c                ó  • 0 nSU;   a  US   US'   SU;   a/  US    Vs/ sH  n[        U[        5      (       d  M  UPM     snUS'   SU;   aO  0 US'   US   R                  5        H3  u  pE[        U[        5      (       d  M  [        U5      =nc  M,  XbS   U'   M5     SU;   a[  0 US'   US   R                  5        H?  u  pE[        U[        5      (       d  M  U[        ;  d  M(  [        U5      =nc  M8  XbS   U'   MA     U$ s  snf )z6Sanitize the config to remove non-serializable fields.Úrecursion_limitÚtagsr4   r°   )r7   r8   r=   r>   Ú_CONF_DROPLIST)ra   r^   Ú	sanitizedÚtagrD   rB   rF   s          rJ   Ú_sanitize_configÚRemoteGraph._sanitize_config—  s  € à$&ˆ	Ø Ó&Ø+1Ð2CÑ+DˆIÐ'Ñ(Ø�VÓØ06°v²Ó W±¨Ä*ÈSÔRU×BV§±Ñ WˆI�fÑà˜ÓØ$&ˆI�jÑ!Ø˜zÑ*×0Ñ0Ö2‘�ä˜q¤#×&Ó&Ü,BÀ1Ó,EÐE˜ÓRà/>˜jÑ)¨!Ó,ñ 3ð ˜VÓ#Ø(*ˆI�nÑ%Ø˜~Ñ.×4Ñ4Ö6‘�ä˜q¤#×&Ó&Ø¤Õ/Ü,BÀ1Ó,EÐE˜ÓRà3B˜nÑ-¨aÓ0ñ 7ð Ðùò+ !Xs
   žC>ºC>)Ú	subgraphsr5   r•   c               óÔ   • U R                  5       n[        U R                  U5      nUR                  R	                  US   S   U R                  U5      UUUS9nU R                  U5      $ )á  Get the state of a thread.

This method calls `POST /threads/{thread_id}/state/checkpoint` if a
checkpoint is specified in the config or `GET /threads/{thread_id}/state`
if no checkpoint is specified.

Args:
    config: A `RunnableConfig` that includes `thread_id` in the
        `configurable` field.
    subgraphs: Include subgraphs in the state.
    headers: Optional custom headers to include with the request.
    params: Optional query parameters to include with the request.

Returns:
    The latest state of the thread.
r°   rµ   ©rµ   r¯   rÐ   r5   r•   )rj   r   r^   ÚthreadsÚ	get_staterÃ   r¾   )ra   r^   rÐ   r5   r•   r]   Úmerged_configr®   s           rJ   rÕ   ÚRemoteGraph.get_state´  st   € ð0 ×0Ñ0Ó2ˆÜ% d§k¡k°6Ó:ˆà×#Ñ#×-Ñ-Ø# NÑ3°KÑ@Ø×+Ñ+¨MÓ:ØØØð .ð 
ˆð ×*Ñ*¨5Ó1Ð1rK   c             ƒ  óð   #   • U R                  5       n[        U R                  U5      nUR                  R	                  US   S   U R                  U5      UUUS9I Sh  v•N nU R                  U5      $  N7f)rÒ   r°   rµ   rÓ   N)rg   r   r^   rÔ   rÕ   rÃ   r¾   )ra   r^   rÐ   r5   r•   r\   rÖ   r®   s           rJ   Ú
aget_stateÚRemoteGraph.aget_stateØ  s   é € ð0 ×&Ñ&Ó(ˆÜ% d§k¡k°6Ó:ˆà—n‘n×.Ñ.Ø# NÑ3°KÑ@Ø×+Ñ+¨MÓ:ØØØð /ð 
÷ 
ˆð ×*Ñ*¨5Ó1Ð1ñ
ùs   ‚AA6ÁA4ÁA6)ÚfilterÚbeforeÚlimitr5   r•   c          
   #  ó(  #   • U R                  5       n[        U R                  U5      nUR                  R	                  US   S   U(       a  UOSU R                  U5      UU R                  U5      UUS9n	U	 H  n
U R                  U
5      v •  M     g7f)at  Get the state history of a thread.

This method calls `POST /threads/{thread_id}/history`.

Args:
    config: A `RunnableConfig` that includes `thread_id` in the
        `configurable` field.
    filter: Metadata to filter on.
    before: A `RunnableConfig` that includes checkpoint metadata.
    limit: Max number of states to return.

Returns:
    States of the thread.
r°   rµ   é
   ©rµ   rÝ   rÜ   r4   r¯   r5   r•   N)rj   r   r^   rÔ   Úget_historyrÃ   r¾   )ra   r^   rÛ   rÜ   rÝ   r5   r•   r]   rÖ   Ústatesr®   s              rJ   Úget_state_historyÚRemoteGraph.get_state_historyü  s–   é € ð0 ×0Ñ0Ó2ˆÜ% d§k¡k°6Ó:ˆà×$Ñ$×0Ñ0Ø# NÑ3°KÑ@Þ ‘% bØ×'Ñ'¨Ó/ØØ×+Ñ+¨MÓ:ØØð 1ð 
ˆó ˆEØ×-Ñ-¨eÓ4Ô4ò ùs   ‚BBc          
    ó>  #   • U R                  5       n[        U R                  U5      nUR                  R	                  US   S   U(       a  UOSU R                  U5      UU R                  U5      UUS9I Sh  v•N n	U	 H  n
U R                  U
5      7v •  M     g N"7f)aù  Get the state history of a thread.

This method calls `POST /threads/{thread_id}/history`.

Args:
    config: A `RunnableConfig` that includes `thread_id` in the
        `configurable` field.
    filter: Metadata to filter on.
    before: A `RunnableConfig` that includes checkpoint metadata.
    limit: Max number of states to return.
    headers: Optional custom headers to include with the request.
    params: Optional query parameters to include with the request.

Returns:
    States of the thread.
r°   rµ   rß   rà   N)rg   r   r^   rÔ   rá   rÃ   r¾   )ra   r^   rÛ   rÜ   rÝ   r5   r•   r\   rÖ   râ   r®   s              rJ   Úaget_state_historyÚRemoteGraph.aget_state_history#  sž   é € ð4 ×&Ñ&Ó(ˆÜ% d§k¡k°6Ó:ˆà—~‘~×1Ñ1Ø# NÑ3°KÑ@Þ ‘% bØ×'Ñ'¨Ó/ØØ×+Ñ+¨MÓ:ØØð 2ð 
÷ 
ˆó ˆEØ×-Ñ-¨eÓ4Õ4ò ñ
ùs   ‚A6BÁ8BÁ9#Bc                ó   • [         e©N©rr   ©ra   r^   Úupdatess      rJ   Úbulk_update_stateÚRemoteGraph.bulk_update_stateL  s
   € ô
 "Ð!rK   c              ƒ  ó   #   • [         e7fré   rê   rë   s      rJ   Úabulk_update_stateÚRemoteGraph.abulk_update_stateS  s   é € ô
 "Ð!ùs   ‚	)r5   r•   c          	     óÜ   • U R                  5       n[        U R                  U5      nUR                  R	                  US   S   UUU R                  U5      UUS9nU R                  US   5      $ )á\  Update the state of a thread.

This method calls `POST /threads/{thread_id}/state`.

Args:
    config: A `RunnableConfig` that includes `thread_id` in the
        `configurable` field.
    values: Values to update to the state.
    as_node: Update the state as if this node had just executed.

Returns:
    `RunnableConfig` for the updated thread.
r°   rµ   ©rµ   r³   Úas_noder¯   r5   r•   r¯   )rj   r   r^   rÔ   Úupdate_staterÃ   rÆ   )	ra   r^   r³   rõ   r5   r•   r]   rÖ   Úresponses	            rJ   rö   ÚRemoteGraph.update_stateZ  s|   € ð, ×0Ñ0Ó2ˆÜ% d§k¡k°6Ó:ˆà$×,Ñ,×9Ñ9Ø# NÑ3°KÑ@ØØØ×+Ñ+¨MÓ:ØØð :ð 
ˆð ×Ñ ¨Ñ 6Ó7Ð7rK   c          	   ƒ  óø   #   • U R                  5       n[        U R                  U5      nUR                  R	                  US   S   UUU R                  U5      UUS9I Sh  v•N nU R                  US   5      $  N7f)ró   r°   rµ   rô   Nr¯   )rg   r   r^   rÔ   rö   rÃ   rÆ   )	ra   r^   r³   rõ   r5   r•   r\   rÖ   r÷   s	            rJ   Úaupdate_stateÚRemoteGraph.aupdate_state}  s‡   é € ð, ×&Ñ&Ó(ˆÜ% d§k¡k°6Ó:ˆà%Ÿ~™~×:Ñ:Ø# NÑ3°KÑ@ØØØ×+Ñ+¨MÓ:ØØð  ;ð  
÷ 
ˆð ×Ñ ¨Ñ 6Ó7Ð7ñ
ùs   ‚AA:ÁA8Á A:c                ó|  • / nSnU(       a;  [        U[        5      (       a  UR                  U5        O%SnUR                  U5        OUR                  U5        UR	                  5       nU=(       d    0 R                  [        0 5      R                  [        5      nU(       a  UR                  UR                  5        SU;   a"  UR                  S5        UR                  S5        SU;   a"  UR                  S5        UR                  S5        SU;  a  UR                  S5        SU;   a  UR                  S5        XFXW4$ )a   Return a tuple of the final list of stream modes sent to the
remote graph and a boolean flag indicating if stream mode 'updates'
was present in the original list of stream modes.

'updates' mode is added to the list of stream modes so that interrupts
can be detected in the remote graph.
TFÚmessageszmessages-tuplerì   Úevents)
r7   r8   rA   Úextendr�   r‹   r   r"   ÚmodesÚremove)ra   Ústream_moder^   ÚdefaultÚupdated_stream_modesÚ
req_singleÚrequested_stream_modesÚstreams           rJ   Ú_get_stream_modesÚRemoteGraph._get_stream_modes   s&  € ð 57ÐØˆ
æÜ˜+¤s×+Ñ+Ø$×+Ñ+¨KÕ8à"�
Ø$×+Ñ+¨KÕ8à ×'Ñ'¨Ô0Ø!5×!:Ñ!:Ó!<Ðð �\�r×Ñœt RÓ(×,Ñ,Ô->Ó?ð 	ö Ø ×'Ñ'¨¯©Ô5àÐ-Ó-Ø ×'Ñ'¨
Ô3Ø ×'Ñ'Ð(8Ô9ð Ð5Ó5Ø"×)Ñ)Ð*:Ô;Ø"×)Ñ)¨*Ô5ð Ð0Ó0Ø ×'Ñ'¨	Ô2ð Ð+Ó+Ø ×'Ñ'¨Ô1Ø$¸jÐQÐQrK   )Úcontextr  ro   rp   rÐ   r5   r•   c               ó   • g ré   rN   ©ra   Úinputr^   r
  r  ro   rp   rÐ   r5   r•   Úversionr„   s               rJ   r  ÚRemoteGraph.streamÓ  s   € ð  #rK   .)r
  r  ro   rp   rÐ   r5   r•   r  c               ó   • g ré   rN   r  s               rJ   r  r  ä  s   € ð *-rK   Úv1c             +  ó	  #   • U R                  5       n[        U R                  U5      nU R                  U5      nU R	                  XB5      u  nnnn[        U[        5      (       a  [        [        [        U5      5      nSnOSnUR                  S0 5      R                  SS5      nUR                  R                  " SUU R                  UUUUUUUU=(       d    USLSU R                  (       a  [!        U5      OUU	S.UD6 GHu  n["        UR$                  ;   aB  UR$                  R'                  ["        S5      u  nn[)        UR'                  ["        5      5      nOUR$                  SnnUS:X  aK  UR*                  R                  S	5      [        R,                  :X  a  [/        [        S0 UR*                  D65      eU=(       d    0 R                  [0        0 5      R                  [2        5      =n(       a#  [)        UR'                  ["        5      5      nUU-   nUb%  UUR4                  ;   a  U" UUUR*                  45        UR$                  R7                  S
5      (       ap  [        UR*                  [8        5      (       aP  [:        UR*                  ;   a<  U(       a5  [=        UR*                  [:            Vs/ sH  n[?        S0 UD6PM     sn5      eO5UR$                  R7                  S5      (       a  [A        UR*                  5      eUU;  a  GM  UR$                  R7                  S5      (       a"  URC                  [)        UR*                  5      S9nU
S:X  am  SnUS:X  aO  [        UR*                  [8        5      (       a0  [)        S UR*                  R                  [:        S5       5       5      nUUUR*                  US.v •  GMÀ  U(       a’  ["        UR$                  ;   aB  UR$                  R'                  ["        S5      u  nn[)        UR'                  ["        5      5      nOUR$                  SnnU(       a  UUR*                  4v •  GME  UUUR*                  4v •  GMY  U(       a  UR*                  v •  GMq  Uv •  GMx     gs  snf 7f)áŠ  Create a run and stream the results.

This method calls `POST /threads/{thread_id}/runs/stream` if a `thread_id`
is specified in the `configurable` field of the config or
`POST /runs/stream` otherwise.

Args:
    input: Input to the graph.
    config: A `RunnableConfig` for graph invocation.
    stream_mode: Stream mode(s) to use.
    interrupt_before: Interrupt the graph before these nodes.
    interrupt_after: Interrupt the graph after these nodes.
    subgraphs: Stream from subgraphs.
    headers: Additional headers to pass to the request.
    **kwargs: Additional params to pass to client.runs.stream.

Yields:
    The output of the graph.
Nr°   rµ   Úcreate©rµ   rW   r  Úcommandr^   r
  r  ro   rp   Ústream_subgraphsÚif_not_existsr5   r•   é   rN   r  r�   rì   r­   rý   ©rŠ   Úv2r³   c              3  ód   #   • U H'  n[        U[        5      (       a  [        S0 UD6OUv •  M)     g 7fr§   ©r7   r<   r.   ©r¨   rÀ   s     rJ   rª   Ú%RemoteGraph.stream.<locals>.<genexpr>Z  ó.   é € ð !á!>˜Aô +5°Q¼×*=Ñ*=œ	™ AšÀ1ÔDÚ!>ùó   ‚.0©ÚtypeÚnsrŠ   r¬   )"rj   r   r^   rÎ   r  r7   r   r
   Ú
CommandSDKr   r‹   r~   Úrunsr  rW   r_   Ú_merge_tracing_headersr%   ÚeventÚsplitr@   rŠ   ÚPARENTr'   r   r!   r   Ú
startswithr<   r$   r&   r.   r3   Ú_replace)ra   r  r^   r
  r  ro   rp   rÐ   r5   r•   r  r„   r]   rÖ   Úsanitized_configÚstream_modesÚ	requestedr  r  r  rµ   ÚchunkÚmodeÚns_r$  Ú	caller_nsrÀ   Úintss                               rJ   r  r  õ  sŸ  é € ðD ×0Ñ0Ó2ˆÜ% d§k¡k°6Ó:ˆØ×0Ñ0°Ó?ÐØ6:×6LÑ6LØó7
Ñ3ˆ�i ¨Vô �eœW×%Ñ%Ü)-¬j¼&À»-Ó)HˆGØ‰EàˆGØ$×(Ñ(¨¸Ó<×@Ñ@ÀÈdÓSˆ	à ×%Ñ%×,Ò,ð 
ØØ×*Ñ*ØØØ#ØØ$Ø-Ø+Ø&×<¨&¸Ð*<Ø"à37×3K×3KÔ& wÔ/ÐQXàñ
ð  õ!
ˆEô& ˜Ÿ™Ó$Ø!ŸK™K×-Ñ-¬f°aÓ8‘	��cÜ˜3Ÿ9™9¤VÓ,Ó-‘à Ÿ;™;¨�b�à�yÓ  U§Z¡Z§^¡^°GÓ%<ÄÇÁÓ%NÜ#¤GÑ$9¨e¯j©jÑ$9Ó:Ð:à#Ÿ\ r×.Ñ.¬t°RÓ8×<Ñ<Ô=UÓVÐVˆyÕVÜ! )§/¡/´&Ó"9Ó:�	Ø ‘^�àÑ! d¨f¯l©lÓ&:Ù˜˜D %§*¡*Ð-Ô.à�{‰{×%Ñ% i×0Ñ0Ü˜eŸj™j¬$×/Ñ/´IÀÇÁÓ4KÞ Ü,Ø5:·Z±ZÄ	Ò5JÓKÑ5J°œY™^¨œ^Ñ5JÑKóð øð —‘×'Ñ'¨×0Ñ0Ü% e§j¡jÓ1Ð1à˜9Ó$Úà�{‰{×%Ñ% j×1Ñ1ØŸ™¬E°%·*±*Ó,=˜Ð>�ð ˜$‹Ø.0�Ø˜8Ó#¬
°5·:±:¼t×(DÑ(DÜ ñ !à!&§¡§¡´	¸2Ô!>ó!ó �Dð  $¨2°u·z±zÐQUÑVÕVÞÜ˜UŸ[™[Ó(Ø %§¡× 1Ñ 1´&¸!Ó <‘I�D˜#Ü˜sŸy™y¬Ó0Ó1‘Bà$Ÿ{™{¨B˜"�DÞØ˜eŸj™j˜.Õ(à˜d E§J¡JÐ.Õ.ÞØ—j‘jÕ à•òQ
ùòN Lùs   ‚J/R Ê1Q;
ËF;R c               ó   • g ré   rN   r  s               rJ   ÚastreamÚRemoteGraph.astreamn  s   € ð %(rK   c               ó   • g ré   rN   r  s               rJ   r6  r7    s   € ð /2rK   c              ó	  #   • U R                  5       n[        U R                  U5      nU R                  U5      nU R	                  XB5      u  nnnn[        U[        5      (       a  [        [        [        U5      5      nSnOSnUR                  S0 5      R                  SS5      nUR                  R                  " SUU R                  UUUUUUUU=(       d    USLSU R                  (       a  [!        U5      OUU	S.UD6  Sh  v•N n["        UR$                  ;   aB  UR$                  R'                  ["        S5      u  nn[)        UR'                  ["        5      5      nOUR$                  SnnUS:X  aK  UR*                  R                  S	5      [        R,                  :X  a  [/        [        S0 UR*                  D65      eU=(       d    0 R                  [0        0 5      R                  [2        5      =n(       a#  [)        UR'                  ["        5      5      nUU-   nUb%  UUR4                  ;   a  U" UUUR*                  45        UR$                  R7                  S
5      (       ap  [        UR*                  [8        5      (       aP  [:        UR*                  ;   a<  U(       a5  [=        UR*                  [:            Vs/ sH  n[?        S0 UD6PM     sn5      eO5UR$                  R7                  S5      (       a  [A        UR*                  5      eUU;  a  GM  UR$                  R7                  S5      (       a"  URC                  [)        UR*                  5      S9nU
S:X  an  SnUS:X  aO  [        UR*                  [8        5      (       a0  [)        S UR*                  R                  [:        S5       5       5      nUUUR*                  US.7v •  GMÆ  U(       a”  ["        UR$                  ;   aB  UR$                  R'                  ["        S5      u  nn[)        UR'                  ["        5      5      nOUR$                  SnnU(       a  UUR*                  47v •  GML  UUUR*                  47v •  GMa  U(       a  UR*                  7v •  GMz  U7v •  GM‚   GN~s  snf 
 g7f)r  Nr°   rµ   r  r  r  rN   r  r�   rì   r­   rý   r  r  r³   c              3  ód   #   • U H'  n[        U[        5      (       a  [        S0 UD6OUv •  M)     g 7fr§   r  r  s     rJ   rª   Ú&RemoteGraph.astream.<locals>.<genexpr>õ  r   r!  r"  )"rg   r   r^   rÎ   r  r7   r   r
   r%  r   r‹   r~   r&  r  rW   r_   r'  r%   r(  r)  r@   rŠ   r*  r'   r   r!   r   r+  r<   r$   r&   r.   r3   r,  )ra   r  r^   r
  r  ro   rp   rÐ   r5   r•   r  r„   r\   rÖ   r-  r.  r/  r  r  r  rµ   r0  r1  r2  r$  r3  rÀ   r4  s                               rJ   r6  r7  �  sª  é € ðD ×&Ñ&Ó(ˆÜ% d§k¡k°6Ó:ˆØ×0Ñ0°Ó?ÐØ6:×6LÑ6LØó7
Ñ3ˆ�i ¨Vô �eœW×%Ñ%Ü)-¬j¼&À»-Ó)HˆGØ‰EàˆGØ$×(Ñ(¨¸Ó<×@Ñ@ÀÈdÓSˆ	à!Ÿ;™;×-Ò-ð 
ØØ×*Ñ*ØØØ#ØØ$Ø-Ø+Ø&×<¨&¸Ð*<Ø"à37×3K×3KÔ& wÔ/ÐQXàñ
ð  ò!
÷ H	�%ô& ˜Ÿ™Ó$Ø!ŸK™K×-Ñ-¬f°aÓ8‘	��cÜ˜3Ÿ9™9¤VÓ,Ó-‘à Ÿ;™;¨�b�à�yÓ  U§Z¡Z§^¡^°GÓ%<ÄÇÁÓ%NÜ#¤GÑ$9¨e¯j©jÑ$9Ó:Ð:à#Ÿ\ r×.Ñ.¬t°RÓ8×<Ñ<Ô=UÓVÐVˆyÕVÜ! )§/¡/´&Ó"9Ó:�	Ø ‘^�àÑ! d¨f¯l©lÓ&:Ù˜˜D %§*¡*Ð-Ô.à�{‰{×%Ñ% i×0Ñ0Ü˜eŸj™j¬$×/Ñ/´IÀÇÁÓ4KÞ Ü,Ø5:·Z±ZÄ	Ò5JÓKÑ5J°œY™^¨œ^Ñ5JÑKóð øð —‘×'Ñ'¨×0Ñ0Ü% e§j¡jÓ1Ð1à˜9Ó$Úà�{‰{×%Ñ% j×1Ñ1ØŸ™¬E°%·*±*Ó,=˜Ð>�ð ˜$‹Ø.0�Ø˜8Ó#¬
°5·:±:¼t×(DÑ(DÜ ñ !à!&§¡§¡´	¸2Ô!>ó!ó �Dð  $¨2°u·z±zÐQUÑVÖVÞÜ˜UŸ[™[Ó(Ø %§¡× 1Ñ 1´&¸!Ó <‘I�D˜#Ü˜sŸy™y¬Ó0Ó1‘Bà$Ÿ{™{¨B˜"�DÞØ˜eŸj™j˜.Ö(à˜d E§J¡JÐ.Ö.ÞØ—j‘jÖ à–òQH	ùòN LñO
ùs8   ‚C>RÄ R
ÄRÄR
ÄF.RÊ6R
Ë
F8RÒR
ÒRr  )r  ro   rp   rm   rn   r5   c          	     óÈ  >• US:w  a  [         TU ]  " X4SU0U	D6$ U R                  UUUUU	S9  U R                  5       n
U R	                  [        U R                  U5      5      nUR                  S0 5      R                  SS5      nU R                  (       a  [        U5      OUnU
R                  R                  UU R                  US9n[        U
UUUU	R                  S5      S	9$ )
zÊStream events from this remote graph.

For `version="v3"`, returns a `_RemoteGraphRunStream` whose surface
matches the local `GraphRunStream`. For other versions, delegates to
`Runnable.stream_events`.
Úv3r  ©rm   rn   ro   rp   rv   r°   rµ   N©rµ   rW   r5   r4   )r]   Ú
sdk_threadr  r^   r4   )ÚsuperÚstream_eventsry   rj   rÎ   r   r^   r‹   r~   r_   r'  rÔ   r  rW   r)   )ra   r  r^   r  ro   rp   rm   rn   r5   r„   r]   rÌ   rµ   Úmerged_headersr@  r}   s                  €rJ   rB  ÚRemoteGraph.stream_events	  sû   ø€ ð& �d‹?Ü‘7Ò(¨ÑRÀÐRÈ6ÑRÐRØ×#Ñ#ØØ%Ø-Ø+Øð 	$ñ 	
ð ×0Ñ0Ó2ˆØ×)Ñ)¬-¸¿¹ÀVÓ*LÓMˆ	Ø—M‘M .°"Ó5×9Ñ9¸+ÀtÓLˆ	à/3×/G×/GÔ" 7Ô+ÈWð 	ð !×(Ñ(×/Ñ/ØØ×*Ñ*Ø"ð 0ð 
ˆ
ô
 %Ø#Ø!ØØØ—Z‘Z 
Ó+ñ
ð 	
rK   c          	   ‹  óÈ  #   • US:w  a  [        SU< S35      eU R                  UUUUU	S9  U R                  5       n
U R                  [	        U R
                  U5      5      nUR                  S0 5      R                  SS5      nU R                  (       a  [        U5      OUnU
R                  R                  UU R                  US9n[        U
UUUU	R                  S	5      S
9$ 7f)a@  Async-stream events from this remote graph.

For `version="v3"`, awaits to an `_AsyncRemoteGraphRunStream`, matching
the local `Pregel.astream_events(version="v3")` awaitable contract:
`async with await rg.astream_events(..., version="v3") as run`. For
`version="v1"`/`"v2"`, raises NotImplementedError (use `astream`).
r=  z#RemoteGraph.astream_events(version=zH) is not implemented; use astream() for v1/v2 streaming or version='v3'.r>  r°   rµ   Nr?  r4   )r\   r@  r  r^   r4   )rr   ry   rg   rÎ   r   r^   r‹   r~   r_   r'  rÔ   r  rW   r(   )ra   r  r^   r  ro   rp   rm   rn   r5   r„   r\   rÌ   rµ   rC  r@  s                  rJ   Úastream_eventsÚRemoteGraph.astream_events8  s  é € ð( �d‹?Ü%Ø5°g±[ð A ð  óð ð
 	×#Ñ#ØØ%Ø-Ø+Øð 	$ñ 	
ð ×&Ñ&Ó(ˆØ×)Ñ)¬-¸¿¹ÀVÓ*LÓMˆ	Ø—M‘M .°"Ó5×9Ñ9¸+ÀtÓLˆ	à/3×/G×/GÔ" 7Ô+ÈWð 	ð —^‘^×*Ñ*ØØ×*Ñ*Ø"ð +ð 
ˆ
ô
 *ØØ!ØØØ—Z‘Z 
Ó+ñ
ð 	
ùs   ‚C C")r
  ro   rp   r5   r•   c               ó   • g ré   rN   ©
ra   r  r^   r
  ro   rp   r5   r•   r  r„   s
             rJ   ÚinvokeÚRemoteGraph.invokel  s   € ð '*rK   )r
  ro   rp   r5   r•   r  c               ó   • g ré   rN   rI  s
             rJ   rJ  rK  {  s   € ð  #rK   c               óð   • U R                   " U4UUUUUSUUS.U	D6 H  n
M      US:X  a&  [        W
S   [        U
R                  SS5      5      S9$ W
$ ! [         a    [
        R                  S5         g	f = f)
aA  Create a run, wait until it finishes and return the final state.

Args:
    input: Input to the graph.
    config: A `RunnableConfig` for graph invocation.
    interrupt_before: Interrupt the graph before these nodes.
    interrupt_after: Interrupt the graph after these nodes.
    headers: Additional headers to pass to the request.
    version: The streaming format version. `"v1"` (default) returns the
        traditional format, `"v2"` returns `StreamPart` typed dicts.
    **kwargs: Additional params to pass to RemoteGraph.stream.

Returns:
    The output of the graph.
r³   ©r^   r
  ro   rp   r5   r  r•   r  r  rŠ   r¬   rN   ©rw   r¬   ú$No events received from remote graphN)r  r-   r@   r‹   ÚUnboundLocalErrorÚloggerÚwarning©ra   r  r^   r
  ro   rp   r5   r•   r  r„   r0  s              rJ   rJ  rK  Š  sŸ   € ð8 —[’[Øð
àØØ-Ø+ØØ ØØñ
ð ô
ˆEñ ñ
ð		Ø˜$‹Ü"Ø ™-Ü$ U§Y¡Y¨|¸RÓ%@ÓAñð ð ˆLøÜ ó 	Ü�N‰NÐAÔBÙð	ús   ¥+A ÁA ÁA5Á4A5c             ‹  ó   #   • g 7fré   rN   rI  s
             rJ   ÚainvokeÚRemoteGraph.ainvoke¾  s
   é € ð '*ùó   ‚c             ‹  ó   #   • g 7fré   rN   rI  s
             rJ   rV  rW  Í  s
   é € ð  #ùrX  c             ‹  ó  #   • U R                   " U4UUUUUSUUS.U	D6  Sh  v•N n
M   N
  US:X  a&  [        W
S   [        U
R                  SS5      5      S9$ W
$ ! [         a    [
        R                  S	5         gf = f7f)
aB  Create a run, wait until it finishes and return the final state.

Args:
    input: Input to the graph.
    config: A `RunnableConfig` for graph invocation.
    interrupt_before: Interrupt the graph before these nodes.
    interrupt_after: Interrupt the graph after these nodes.
    headers: Additional headers to pass to the request.
    version: The streaming format version. `"v1"` (default) returns the
        traditional format, `"v2"` returns `StreamPart` typed dicts.
    **kwargs: Additional params to pass to RemoteGraph.astream.

Returns:
    The output of the graph.
r³   rN  Nr  rŠ   r¬   rN   rO  rP  )r6  r-   r@   r‹   rQ  rR  rS  rT  s              rJ   rV  rW  Ü  s«   é € ð8  Ÿ<š<Øð
àØØ-Ø+ØØ ØØñ
ð ò
÷ 	�%ñ ñ	ð 
ð		Ø˜$‹Ü"Ø ™-Ü$ U§Y¡Y¨|¸RÓ%@ÓAñð ð ˆLøÜ ó 	Ü�N‰NÐAÔBÙð	üsN   ‚BŸ,£*¤,§Bª,¬B®+A ÁBÁA ÁBÁA>Á;BÁ=A>Á>B)rW   r\   r^   r_   rY   r]   )rW   r8   rZ   rX   r[   rX   r5   údict[str, str] | Noner\   zLangGraphClient | Noner]   zSyncLangGraphClient | Noner^   úRunnableConfig | NonerY   rX   r_   r;   )Úreturnr   )r]  r   )rm   r   rn   r   ro   r   rp   r   rv   údict[str, Any]r]  ÚNone)r   r^  r]  r   ré   )r^   r\  r„   r   r]  r   )r�   zdict[str, list[dict[str, Any]]]r]  zdict[str, DrawableNode])
r^   r\  r”   z
int | boolr5   r[  r•   úQueryParamTypes | Noner]  r�   )r®   r   r]  r0   )r^   r\  r]  zCheckpoint | None)r¯   r   r]  r   )r^   r   r]  r   )
r^   r   rÐ   r;   r5   r[  r•   r`  r]  r0   )r^   r   rÛ   údict[str, Any] | NonerÜ   r\  rÝ   ú
int | Noner5   r[  r•   r`  r]  zIterator[StateSnapshot])r^   r   rÛ   ra  rÜ   r\  rÝ   rb  r5   r[  r•   r`  r]  zAsyncIterator[StateSnapshot])r^   r   rì   z.list[tuple[dict[str, Any] | None, str | None]]r]  r   )r^   r   r³   zdict[str, Any] | Any | Nonerõ   rX   r5   r[  r•   r`  r]  r   )rì   )r  ú$StreamMode | list[StreamMode] | Noner^   r\  r  r   r]  zLtuple[list[StreamModeSDK], list[StreamModeSDK], bool, StreamProtocol | None])r  údict[str, Any] | Anyr^   r\  r
  úContext | Noner  rc  ro   úAll | Sequence[str] | Nonerp   rf  rÐ   r;   r5   r[  r•   r`  r  úLiteral['v2']r„   r   r]  zIterator[StreamPart])r  rd  r^   r\  r
  re  r  rc  ro   rf  rp   rf  rÐ   r;   r5   r[  r•   r`  r  úLiteral['v1']r„   r   r]  úIterator[dict[str, Any] | Any])r  rd  r^   r\  r
  re  r  rc  ro   rf  rp   rf  rÐ   r;   r5   r[  r•   r`  r  úLiteral['v1', 'v2']r„   r   r]  ri  )r  rd  r^   r\  r
  re  r  rc  ro   rf  rp   rf  rÐ   r;   r5   r[  r•   r`  r  rg  r„   r   r]  zAsyncIterator[StreamPart])r  rd  r^   r\  r
  re  r  rc  ro   rf  rp   rf  rÐ   r;   r5   r[  r•   r`  r  rh  r„   r   r]  ú#AsyncIterator[dict[str, Any] | Any])r  rd  r^   r\  r
  re  r  rc  ro   rf  rp   rf  rÐ   r;   r5   r[  r•   r`  r  rj  r„   r   r]  rk  )r  r   r^   r\  r  zLiteral['v1', 'v2', 'v3']ro   rf  rp   rf  rm   r   rn   zSequence[Any] | Noner5   r[  r„   r   r]  r   )r  rd  r^   r\  r
  re  ro   rf  rp   rf  r5   r[  r•   r`  r  rg  r„   r   r]  zGraphOutput[dict[str, Any]])r  rd  r^   r\  r
  re  ro   rf  rp   rf  r5   r[  r•   r`  r  rh  r„   r   r]  rd  )r  rd  r^   r\  r
  re  ro   rf  rp   rf  r5   r[  r•   r`  r  rj  r„   r   r]  rd  )%rO   rP   rQ   rR   rS   Ú__annotations__rb   rg   rj   ry   r�   r…   r’   rœ   r¢   r¾   rÃ   rÆ   rÎ   rÕ   rÙ   rã   ræ   rí   rð   rö   rú   r  r   r  r6  rB  rF  rJ  rV  rT   Ú__classcell__)r}   s   @rJ   r2   r2   v   su  ø‡ ñð ÓØ
Óð Ø"Ø)-Ø)-Ø26Ø(,ØØ$)ñ/'àð/'ð
 ð/'ð ð/'ð 'ð/'ð 'ð/'ð 0ð/'ð &ð/'ð ð/'ð "õ/'ôbô ðð ðð ð	ð
 ðð ðð %ðð 
ôô8Bö
ð
Ø4ðà	 ôð4 )-ð
ð !Ø)-Ø)-ñ
à%ð
ð ð	
ð
 'ð
ð 'ð
ð 
ö
ðF )-ð
ð !Ø)-Ø)-ñ
à%ð
ð ð	
ð
 'ð
ð 'ð
ð 
ö
ôB8
ôt2ô"
ôðB  Ø)-Ø)-ñ"2àð"2ð ð	"2ð
 'ð"2ð 'ð"2ð 
õ"2ðP  Ø)-Ø)-ñ"2àð"2ð ð	"2ð
 'ð"2ð 'ð"2ð 
õ"2ðP )-Ø(,Ø Ø)-Ø)-ñ%5àð%5ð &ð	%5ð
 &ð%5ð ð%5ð 'ð%5ð 'ð%5ð 
!õ%5ðV )-Ø(,Ø Ø)-Ø)-ñ'5àð'5ð &ð	'5ð
 &ð'5ð ð'5ð 'ð'5ð 'ð'5ð 
&õ'5ðR"àð"ð @ð"ð 
ô	"ð"àð"ð @ð"ð 
ô	"ð #ð	!8ð *.Ø)-ñ!8àð!8ð ,ð!8ð ð	!8ð 'ð!8ð 'ð!8ð 
ö!8ðN #ð	!8ð *.Ø)-ñ!8àð!8ð ,ð!8ð ð	!8ð 'ð!8ð 'ð!8ð 
ö!8ðN (ð	1Rà9ð1Rð &ð1Rð ð	1Rð
 
Võ1Rðf ð )-ð#ð
 #'Ø<@Ø7;Ø6:ØØ)-Ø)-ñ#à#ð#ð &ð#ð
  ð#ð :ð#ð 5ð#ð 4ð#ð ð#ð 'ð#ð 'ð#ð ð#ð ð#ð 
õ#ó ð#ð  ð )-ð-ð
 #'Ø<@Ø7;Ø6:ØØ)-Ø)-Ø!$ñ-à#ð-ð &ð-ð
  ð-ð :ð-ð 5ð-ð 4ð-ð ð-ð 'ð-ð 'ð-ð ð-ð ð-ð 
(õ-ó ð-ð& )-ðwð
 #'Ø<@Ø7;Ø6:ØØ)-Ø)-Ø'+ñwà#ðwð &ðwð
  ðwð :ðwð 5ðwð 4ðwð ðwð 'ðwð 'ðwð %ðwð ðwð 
(öwðr ð )-ð(ð
 #'Ø<@Ø7;Ø6:ØØ)-Ø)-ñ(à#ð(ð &ð(ð
  ð(ð :ð(ð 5ð(ð 4ð(ð ð(ð 'ð(ð 'ð(ð ð(ð ð(ð 
#õ(ó ð(ð  ð )-ð2ð
 #'Ø<@Ø7;Ø6:ØØ)-Ø)-Ø!$ñ2à#ð2ð &ð2ð
  ð2ð :ð2ð 5ð2ð 4ð2ð ð2ð 'ð2ð 'ð2ð ð2ð ð2ð 
-õ2ó ð2ð& )-ðwð
 #'Ø<@Ø7;Ø6:ØØ)-Ø)-Ø'+ñwà#ðwð &ðwð
  ðwð :ðwð 5ðwð 4ðwð ðwð 'ðwð 'ðwð %ðwð ðwð 
-öwðx )-ð-
ð
 .2Ø7;Ø6:ØØ-1Ø)-ñ-
àð-
ð &ð-
ð
 +ð-
ð 5ð-
ð 4ð-
ð ð-
ð +ð-
ð 'ð-
ð ð-
ð 
÷-
ñ -
ðd )-ð2
ð
 .2Ø7;Ø6:ØØ-1Ø)-ñ2
àð2
ð &ð2
ð
 +ð2
ð 5ð2
ð 4ð2
ð ð2
ð +ð2
ð 'ð2
ð ð2
ð 
ö2
ðh ð )-ð*ð
 #'Ø7;Ø6:Ø)-Ø)-ñ*à#ð*ð &ð*ð
  ð*ð 5ð*ð 4ð*ð 'ð*ð 'ð*ð ð*ð ð*ð 
%õ*ó ð*ð ð )-ð#ð
 #'Ø7;Ø6:Ø)-Ø)-Ø!$ñ#à#ð#ð &ð#ð
  ð#ð 5ð#ð 4ð#ð 'ð#ð 'ð#ð ð#ð ð#ð 
õ#ó ð#ð" )-ð2ð
 #'Ø7;Ø6:Ø)-Ø)-Ø'+ñ2à#ð2ð &ð2ð
  ð2ð 5ð2ð 4ð2ð 'ð2ð 'ð2ð %ð2ð ð2ð 
ö2ðh ð )-ð*ð
 #'Ø7;Ø6:Ø)-Ø)-ñ*à#ð*ð &ð*ð
  ð*ð 5ð*ð 4ð*ð 'ð*ð 'ð*ð ð*ð ð*ð 
%õ*ó ð*ð ð )-ð#ð
 #'Ø7;Ø6:Ø)-Ø)-Ø!$ñ#à#ð#ð &ð#ð
  ð#ð 5ð#ð 4ð#ð 'ð#ð 'ð#ð ð#ð ð#ð 
õ#ó ð#ð" )-ð2ð
 #'Ø7;Ø6:Ø)-Ø)-Ø'+ñ2à#ð2ð &ð2ð
  ð2ð 5ð2ð 4ð2ð 'ð2ð 'ð2ð %ð2ð ð2ð 
÷2ô 2rK   r2   c                óÂ   • [         R                  " 5       =n(       aB  UR                  5       nU (       a)  SU ;   a  U S    SUS    3US'   U R                  U5        U $ Un U $ )NÚbaggageÚ,)ÚlsÚget_current_run_treeÚ
to_headersr   )r5   ÚrtÚtracing_headerss      rJ   r'  r'    sq   € Ü×$Ò$Ó&Ð&€rÕ&ØŸ-™-›/ˆÞØ˜GÓ#à˜yÑ)Ð*¨!¨O¸IÑ,FÐ+GÐHð   	Ñ*ð �N‰N˜?Ô+ð €Nð &ˆGØ€NrK   )rB   r   r]  r   )r5   r[  r]  r[  )TÚ
__future__r   ÚloggingÚcollections.abcr   r   r   Údataclassesr   Útypingr   r	   r
   r   Úuuidr   Ú	langsmithrq  Úlangchain_core.runnablesr   Úlangchain_core.runnables.graphr   rž   r   r�   r   rŒ   Úlanggraph.checkpoint.baser   Úlanggraph_sdk.clientr   r   r   r   Úlanggraph_sdk.schemar   r   r   r   r   r%  r   ÚStreamModeSDKÚtyping_extensionsr   Úlanggraph._internal._configr   Úlanggraph._internal._constantsr   r   r    r!   r"   r#   r$   r%   Úlanggraph.errorsr&   r'   Ú#langgraph.pregel._remote_run_streamr(   r)   Úlanggraph.pregel.protocolr*   r+   Úlanggraph.typesr,   r-   r.   r/   r0   r1   Ú	getLoggerrO   rR  Ú__all__Ú	frozensetrË   rt   r>   r½   r3   r2   r'  rN   rK   rJ   Ú<module>r�     sú   ðÝ "ã ß =Ñ =Ý ÷ó õ ã Ý 3õõõõ 9÷ó ÷ó õõõ #å 5÷	÷ 	ó 	÷ ;÷÷ E÷	÷ 	ó 	ð 
×	Ò	˜8Ó	$€à
,€áà!Ø Ø Øð	ó€ñ ! *¨iÐ!8Ó9Ð ôô,	�iô 	ôX�.ô Xõv$rK   