ó
    ýÞ jÒ?  ã                  ó  • S SK Jr  S SKJr  S SKJrJr  S SKJr  S SK	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JrJr  S S	KJr  S S
KJrJrJrJrJrJrJ r   \!" \" SS5      5      r"\!" \" SS5      5      r#S"S jr$      S#S jr%      S$S jr&S%S jr'      S&S jr(S'S jr)S(S jr*SSSSSS.             S)S jjr+ S*     S+S jjr, S*     S,S jjr-S-S jr.S(S jr/Sr0S.S jr1    S/S jr2\3" S 5      r4S0S! jr5g)1é    )Úannotations)ÚChainMap)ÚMappingÚSequence)Úgetenv)ÚAnyÚcast)ÚAsyncCallbackManagerÚBaseCallbackManagerÚCallbackManagerÚ	Callbacks)ÚRunnableConfig)ÚCONFIG_KEYSÚCOPIABLE_KEYSÚvar_child_runnable_config)ÚCheckpointMetadata)Ú_CHECKPOINT_COORDINATE_KEYSÚCONFÚCONFIG_KEY_CHECKPOINT_IDÚCONFIG_KEY_CHECKPOINT_MAPÚCONFIG_KEY_CHECKPOINT_NSÚNS_ENDÚNS_SEPÚ!LANGGRAPH_DEFAULT_RECURSION_LIMITÚ10007Ú-LANGGRAPH_DELTA_MAX_SUPERSTEPS_SINCE_SNAPSHOTÚ5000c                ób   • [         R                  " S U R                  [         5       5       5      $ )z Remove task IDs from checkpoint namespace.

Args:
    ns: The checkpoint namespace with task IDs.

Returns:
    str: The checkpoint namespace without task IDs.
c              3  ó|   #   • U H3  oR                  5       (       a  M  UR                  [        5      S    v •  M5     g7f)r   N)ÚisdigitÚsplitr   )Ú.0Úparts     ÚU/var/www/html/gaurav/venv/lib/python3.13/site-packages/langgraph/_internal/_config.pyÚ	<genexpr>Ú'recast_checkpoint_ns.<locals>.<genexpr>/   s+   é € ð Ù*: $Ç,Á,Ç.Óˆ�
‰
”6Ó˜1ÖÒ*:ùs   ‚<�<)r   Újoinr!   )Únss    r$   Úrecast_checkpoint_nsr)   &   s+   € ô �;Š;ñ Ø*,¯(©(´6Ô*:óó ð ó    c                ór   • U c  [         U0$ [         U ;  a  0 U E[         U0E$ 0 U E[         0 U [            EUE0E$ ©N)r   )ÚconfigÚpatchs     r$   Úpatch_configurabler/   4   sN   € ð �~Ü�eˆ}ÐÜ	�VÓ	Ø&�&Ð&œ$ Ñ&Ð&à:�&Ð:œ$Ð 9 6¬$¡<Ð 9°5Ð 9Ñ:Ð:r*   c                ó°   • U c  U $ U(       a  UR                  S5      OS =n(       a/  U [           n[        U [        0 UEU[           U[
           0E05      $ U $ )NÚparents)Úgetr   r/   r   r   r   )r-   Úmetadatar1   Úconfs       r$   Úpatch_checkpoint_mapr5   ?   sq   € ð �~ØˆÞ08�X—\‘\ )Ô,¸dÐ	CˆÕ	CØ”d‰|ˆÜ!Øä)ð ,Øð,àÔ1Ñ2°DÔ9QÑ4Rñ,ðó
ð 	
ð ˆr*   c                óF   • [        U [        5      (       a  [        U 5      $ U $ r,   )Ú
isinstancer   Údict©Úvalues    r$   Ú_copy_mapping_valuer;   S   s   € Ü$ U¬G×4Ñ4Œ4�‹;Ð?¸%Ð?r*   c                ó¨  • U =(       d    0 R                  5        VVs0 sH  u  p#U[        U5      _M     nnnU=(       d    0 R                  5        Hx  u  p#US:X  a`  [        UR                  U5      [        5      (       a<  [        U[        5      (       a'  0 [        [        [        [        4   XB   5      EUEXB'   Mk  [        U5      XB'   Mz     U$ s  snnf )uº  Merge metadata without mutating inputs.

Top-level keys merge with newer values winning. `lc_versions` is the only
mapping-valued key that merges one level deeper, so independent LangChain
packages can contribute package versions without changing generic metadata
semantics. Mapping values are copied one level, so deeper nested objects
remain shared. `None` inputs are treated as empty metadata.

Mirrors `langchain_core.runnables.config._merge_metadata_dicts` so configs
that pass through LangGraph's merge keep the same `lc_versions` semantics;
keep the two in sync. Unlike lc-core, this copies mapping values one level
(intentionally more defensive â€” do not "simplify" back to a shared ref).
Úlc_versions)Úitemsr;   r7   r2   r   r	   Ústrr   )ÚbaseÚnewÚkeyr:   Úmergeds        r$   Ú_merge_metadatarD   W   s¿   € ð  BFÇÈ×@RÑ@RÔ@TÔUÑ@T±*°#ˆcÔ& uÓ-Ò-Ñ@T€FÑUØ—y˜b×'Ñ'Ö)‰
ˆà�=Ó Ü˜6Ÿ:™: c›?¬G×4Ñ4Ü˜5¤'×*Ñ*ðÜ”wœs¤C˜xÑ(¨&©+Ó6ðàðˆF‹Kô
 .¨eÓ4ˆF‹Kñ *ð €Mùó Vs   �Cc                ó†  • Uc  U $ U c-  [        U[        [        45      (       a  UR                  5       $ U$ [        U[        5      (       aZ  [        U [        5      (       a  X-   $ [        U [        5      (       a+  U R                  5       nU H  nUR	                  USS9  M     U$ O{[        U[        5      (       af  [        U [        5      (       a+  UR                  5       nU  H  nUR	                  USS9  M     U$ [        U [        5      (       a  U R                  U5      $ [        S[        U 5       S[        U5       35      e)zxMerge two callbacks values (None / list / BaseCallbackManager).

Six cases total (3 base types x 2 non-None new types).
T)ÚinheritzUnsupported callback types: z, )r7   Úlistr   ÚcopyÚadd_handlerÚmergeÚNotImplementedErrorÚtype)r@   rA   ÚmngrÚcbs       r$   Ú_merge_callbacksrO   w   s   € ð
 �{ØˆØ�|Ü'¨¬dÔ4GÐ-H×IÑIˆs�x‰x‹zÐRÈsÐRÜ�#”t×ÑÜ�dœD×!Ñ!Ø‘:ÐÜ�dÔ/×0Ñ0Ø—9‘9“;ˆDÛ�Ø× Ñ  ¨TÐ Ó2ñ àˆKð	 1ô
 
�CÔ,×	-Ñ	-Ü�dœD×!Ñ!Ø—8‘8“:ˆDÛ�Ø× Ñ  ¨TÐ Ó2ñ àˆKÜ�dÔ/×0Ñ0Ø—:‘:˜c“?Ð"Ü
Ð <¼TÀ$»Z¸LÈÌ4ÐPSË9È+ÐVÓ
WÐWr*   c            
     óÌ  • 0 nU  GHG  nUc  M	  UR                  5        GH)  u  p4U(       d  M  US:X  aX  [        [        [        [        [
        4   S-  UR                  U5      5      [        [        [        [
        4   U5      5      X'   Mm  US:X  a(  UR                  U5      =n(       a
  / UQUQX'   M•  XAU'   M›  U[        :X  a(  UR                  U5      =n(       a
  0 UEUEX'   MÇ  XAU'   MÍ  US:X  a/  [        UR                  S5      [        [        U5      5      US'   GM  US:X  a  US   [        :w  a  US   US'   GM   GM#  X#   X'   GM,     GMJ     [        U;  a	  0 U[        '   U$ )z}Merge multiple configs into one.

Args:
    *configs: The configs to merge.

Returns:
    RunnableConfig: The merged config.
Nr3   ÚtagsÚ	callbacksÚrecursion_limit)r>   rD   r	   r   r?   r   r2   r   rO   r   ÚDEFAULT_RECURSION_LIMIT)Úconfigsr@   r-   rB   r:   Ú
base_values         r$   Úmerge_configsrW   “   sb  € ð €Dô ˆØ‰>ÙØ Ÿ,™,Ÿ.‰JˆCÞÙØ�jÓ Ü+Üœ¤¤c Ñ*¨TÑ1°4·8±8¸C³=ÓAÜœ¤¤c Ñ*¨EÓ2ó�“	ð ˜“Ø!%§¡¨#£Ð.�:Õ.Ø 5 *Ð 5¨uÐ 5�D“Ià %˜“IØœ“Ø!%§¡¨#£Ð.�:Õ.Ø 7 :Ð 7°Ð 7�D“Ià %˜“IØ˜Ó#Ü$4Ø—H‘H˜[Ó)¬4´	¸5Ó+Aó%��[Ô!ð Ð)Ó)ØÐ+Ñ,Ô0GÓGØ.4Ð5FÑ.G�DÐ*Ô+ò Hð #™K�”	ô5 )ñ ô< �4ÓØˆŒT‰
Ø€Kr*   N)rR   rS   Úmax_concurrencyÚrun_nameÚconfigurablec               óÔ   • U b  U R                  5       O0 n Ub  XS'   SU ;   a  U S	 SU ;   a  U S	 Ub  X S'   Ub  X0S'   Ub  X@S'   Ub!  0 U R                  [        0 5      EUEU [        '   U $ )aˆ  Patch a config with new values.

Args:
    config: The config to patch.
    callbacks: The callbacks to set.
    recursion_limit: The recursion limit to set.
    max_concurrency: The max number of concurrent steps to run, which also applies to parallelized steps.
    run_name: The run name to set.
    configurable: The configurable to set.

Returns:
    RunnableConfig: The patched config.
rR   rY   Úrun_idrS   rX   )rH   r2   r   )r-   rR   rS   rX   rY   rZ   s         r$   Úpatch_configr]   Â   s›   € ð, %Ñ0ˆV�[‰[Œ]°b€FØÑð (ˆ{ÑØ˜ÓØ�zÐ"Ø�vÓØ�xÐ ØÑ"Ø$3Ð Ñ!ØÑ"Ø$3Ð Ñ!ØÑØ%ˆzÑØÑØ?˜&Ÿ*™*¤T¨2Ó.Ð?°,Ð?ˆŒt‰Ø€Mr*   c                ó¸  • SSK Jn  U R                  S5      nUb
  Ub  / UQUQnOUb  [        U5      nU R                  S5      =n(       aU  [	        XB5      (       aE  U(       a  UR                  U5        U R                  S5      =n(       a  UR                  U5        UnU$ UR                  " U R                  S5      UU R                  S5      [        U 5      S9nU$ )zyGet a callback manager for a config.

Args:
    config: The config.

Returns:
    CallbackManager: The callback manager.
r   )r   rQ   rR   r3   ©Úinheritable_callbacksÚinheritable_tagsÚinheritable_metadataÚlangsmith_inheritable_metadata)	Ú langchain_core.callbacks.managerr   r2   rG   r7   Úadd_tagsÚadd_metadataÚ	configureÚ_get_tracing_metadata_defaults)r-   rQ   r   Úall_tagsrR   r3   Úmanagers          r$   Úget_callback_manager_for_configrk   ì   sá   € õ Að �z‰z˜&Ó!€HØÑ Ñ 0Ø%�XÐ% Ð%‰Ø	Ñ	Ü˜“:ˆà—Z‘Z Ó,Ð,ˆ	Õ,´*Ø÷3ñ 3ö Ø×Ñ˜xÔ(Ø—z‘z *Ó-Ð-ˆ8Õ-Ø×"Ñ" 8Ô,Øˆð €Nð "×+Ò+Ø"(§*¡*¨[Ó"9Ø%Ø!'§¡¨JÓ!7Ü+IÈ&Ó+Qñ	
ˆð €Nr*   c                ó¸  • SSK Jn  U R                  S5      nUb
  Ub  / UQUQnOUb  [        U5      nU R                  S5      =n(       aU  [	        XB5      (       aE  U(       a  UR                  U5        U R                  S5      =n(       a  UR                  U5        UnU$ UR                  " U R                  S5      UU R                  S5      [        U 5      S9nU$ )z‹Get an async callback manager for a config.

Args:
    config: The config.

Returns:
    AsyncCallbackManager: The async callback manager.
r   )r
   rQ   rR   r3   r_   )	rd   r
   r2   rG   r7   re   rf   rg   rh   )r-   rQ   r
   ri   rR   r3   rj   s          r$   Ú%get_async_callback_manager_for_configrm     sá   € õ Fð �z‰z˜&Ó!€HØÑ Ñ 0Ø%�XÐ% Ð%‰Ø	Ñ	Ü˜“:ˆà—Z‘Z Ó,Ð,ˆ	Õ,´*Ø÷3ñ 3ö Ø×Ñ˜xÔ(Ø—z‘z *Ó-Ð-ˆ8Õ-Ø×"Ñ" 8Ô,Øˆð €Nð '×0Ò0Ø"(§*¡*¨[Ó"9Ø%Ø!'§¡¨JÓ!7Ü+IÈ&Ó+Qñ	
ˆð €Nr*   c                óf   • [        U [        [        [        45      (       a  [	        U 5      S:„  $ U S L$ )Nr   )r7   rG   Útupler8   Úlenr9   s    r$   Ú_is_not_emptyrq   ;  s/   € Ü�%œ$¤¤tÐ,×-Ñ-Ü�5‹z˜A‰~Ðà˜DÐ Ð r*   c            
     óŠ  ^• [        / [        5       S[        0 S9n[        R                  " 5       =n(       a_  UR                  UR                  5        VVs0 sH3  u  p4[        U5      (       d  M  X3[        ;   a  UR                  5       OU_M5     snn5        UR	                  [        5      (       aU  U  HO  nUc  M  UR	                  [        5      mT(       d  M&  [        U4S j[         5       5      (       d  MF  0 U[        '     O   U  GHÓ  nUc  M	  UR                  5        GHs  u  p4[        U5      (       d  M  U[        ;   d  M$  U[        :X  a\  UR	                  U5      nU(       a"  0 [        [        U5      E[        [        U5      EO[        [        U5      R                  5       X'   MŠ  US:X  a.  [!        UR	                  S5      [        ["        U5      5      US'   M¾  US:X  aZ  [%        [        [&        [(        [*        4   S-  UR	                  S5      5      [        [&        [(        [*        4   U5      5      US'   GM  US:X  aK  UR	                  S5      nU(       a  / UQ[        [,        U5      QO[-        [        [,        U5      5      US'   GMo  XAU'   GMv     UR                  5        H.  u  p4[        U5      (       d  M  U[        ;  d  M#  XA[           U'   M0     GMÖ     UR	                  S5      nUR	                  S5      n	U(       a5  U	b2  [.         H(  n
X©;   a  M
  UR	                  U
5      nU(       d  M$  X¹U
'   M*     U$ s  snnf )zºReturn a config with all keys, merging any provided configs.

Args:
    *configs: Configs to merge before ensuring defaults.

Returns:
    RunnableConfig: The merged and ensured config.
N)rQ   r3   rR   rS   rZ   c              3  óV   >#   • U H  n[        TR                  U5      5      v •  M!     g 7fr,   )rq   r2   )r"   ÚkÚexplicit_configurables     €r$   r%   Ú ensure_config.<locals>.<genexpr>j  s,   øé € ð á4�Aô Ð3×7Ñ7¸Ó:×;Ð;Ú4ùs   ƒ&)rR   r3   rQ   rZ   )r   r   rT   r   r2   Úupdater>   rq   r   rH   r   Úanyr   r   r	   r8   rO   r   rD   r   r?   r   rG   Ú_PROPAGATE_TO_METADATA)rU   ÚemptyÚ
var_configrt   Úvr-   ÚexistingÚexisting_tagsrZ   r3   rB   r:   ru   s               @r$   Úensure_configr   B  sÒ  ø€ ô ØÜ“ØÜ/Øñ€Eô /×2Ò2Ó4Ð4€zÕ4Ø�‰ð '×,Ñ,Ô.ôá.‘D�AÜ  ×#ó 9�¤MÓ1�1—6‘6”8°qÒ8Ù.òô	
ð  ‡y�y”‡�ÛˆFØ‰~ÙØ$*§J¡J¬tÓ$4Ð!Þ(ÙÜô å4ó÷ ó ð !�”d‘Ùñ ô ˆØ‰>ÙØ—L‘L—N‰DˆAÜ˜Q×Ó A¬Õ$4Øœ“9ð
  %Ÿy™y¨›|�Hö $ð Bœ4¤ hÓ/ÐA´4¼¸a³=ÑAä!¤$¨›]×/Ñ/Ó1ð “Hð
 ˜+Ó%Ü)9ØŸ	™	 +Ó.´´YÀÓ0Bó*�E˜+Ó&ð ˜*“_ô )8ÜœW¤S¬# XÑ.°Ñ5°u·y±yÀÓ7LÓMÜœW¤S¬# XÑ.°Ó2ó)�E˜*Ô%ð ˜&“[ð 7<·i±iÀÓ6G�Mö )ð 9˜-Ð8¬$¬t°Q«-Ñ8ä!¤$¤t¨Q£-Ó0ð ˜&”Mð  !˜!”HñG #ðH —L‘L–N‰DˆAÜ˜Q×Ó A¬[Õ$8Ø!"”d‘˜A“ô #ñO ðV —9‘9˜^Ó,€LØ�y‰y˜Ó$€HÞ˜Ñ,ß)ˆCØ‹ÙØ ×$Ñ$ SÓ)ˆEßˆuØ %˜“ñ *ð €Lùóas   ÁL?
Á. L?
)rB   ÚtokenÚsecretÚpasswordÚauthc                óÞ   ^• U R                  5       mU R                  S5      =(       dE    [        U[        [        [
        [        45      (       + =(       d    [        U4S j[         5       5      $ )NÚ__c              3  ó*   >#   • U H	  oT;   v •  M     g 7fr,   © )r"   ÚsubstrÚ	key_lowers     €r$   r%   Ú'_exclude_as_metadata.<locals>.<genexpr>¯  s   øé € Ð7± v˜Ö"²ùs   ƒ)	ÚcasefoldÚ
startswithr7   r?   ÚintÚfloatÚboolrx   Ú_OMIT)rB   r:   r‰   s     @r$   Ú_exclude_as_metadatar‘   ª  sM   ø€ Ø—‘“€Ià�‰�tÓ÷ 	8Ü˜%¤#¤s¬E´4Ð!8Ó9Ô9÷	8äÔ7µÓ7Ó7ðr*   c                ó¬   • U R                  S5      nU(       d  g0 nUR                  5        H  u  p4[        X45      (       a  M  XBU'   M     U=(       d    S$ )z;Get tracer-only metadata defaults from configurable values.rZ   N)r2   r>   r‘   )r-   rZ   r3   rB   r:   s        r$   rh   rh   ³  sT   € ð —:‘:˜nÓ-€LÞØØ!€HØ"×(Ñ(Ö*‰
ˆÜ ×+Ñ+ÙØ�‹ñ +ð ×�tÐr*   )Ú	thread_idÚcheckpoint_idÚcheckpoint_nsÚtask_idr\   Úassistant_idÚgraph_idc                ó‚   • U (       d  gU  Vs/ sH  oR                  S5      (       a  M  UPM     nnU=(       d    S$ s  snf )ac  Drop langgraph's internal `seq:step:*` bookkeeping tags.

`seq:step:N` tags are added internally to mark sequence steps; everything
else (user-supplied tags and any other framework tags) is kept. Returns the
surviving tags, or `None` if none remain. Shared by the `messages` and
`tasks` stream handlers so both surface the same tag set on their metadata.
Nzseq:step)rŒ   )rQ   ÚtÚfiltereds      r$   Úfilter_to_user_tagsrœ   Ï  s8   € ö ØÙÓ@™4�a§|¡|°J×'?—™4€HÐ@Ø×�tÐùò As   �<©<)r(   r?   Úreturnr?   )r-   úRunnableConfig | Noner.   údict[str, Any]r�   r   )r-   rž   r3   zCheckpointMetadata | Noner�   r   )r:   r   r�   r   )r@   úMapping[str, Any] | NonerA   r    r�   rŸ   )r@   r   rA   r   r�   r   )rU   rž   r�   r   )r-   rž   rR   r   rS   ú
int | NonerX   r¡   rY   z
str | NonerZ   údict[str, Any] | Noner�   r   r,   )r-   r   rQ   úSequence[str] | Noner�   r   )r-   r   rQ   r£   r�   r
   )r:   r   r�   r�   )rB   r?   r:   r   r�   r�   )r-   r   r�   r¢   )rQ   r£   r�   zlist[str] | None)6Ú
__future__r   Úcollectionsr   Úcollections.abcr   r   Úosr   Útypingr   r	   Úlangchain_core.callbacksr
   r   r   r   Úlangchain_core.runnablesr   Úlangchain_core.runnables.configr   r   r   Úlanggraph.checkpoint.baser   Úlanggraph._internal._constantsr   r   r   r   r   r   r   r�   rT   Ú#DELTA_MAX_SUPERSTEPS_SINCE_SNAPSHOTr)   r/   r5   r;   rD   rO   rW   r]   rk   rm   rq   r   r�   r‘   rh   Ú	frozensetry   rœ   r‡   r*   r$   Ú<module>r°      sÂ  ðÝ "å  ß -Ý ß ÷ó õ 4÷ñ õ
 9÷÷ ñ ñ ™fÐ%HÈ'ÓRÓSÐ Ù&)Ù
Ð:¸FÓCó'Ð #ô
ð;Ø!ð;Ø*8ð;àô;ðØ!ðØ-Fðàôô(@ðØ
"ðØ)Aðàôô@Xô8,ðd  Ø"&Ø"&ØØ*.ñ'Ø!ð'ð ð'ð  ð	'ð
  ð'ð ð'ð (ð'ð õ'ðV :>ð$Øð$Ø"6ð$àõ$ðR "&ð%Øð%à
ð%ð õ%ôP!ôbðJ 	7€ôðØðàôñ #ðó
Ð õr*   