
    <i%              
      
   S SK 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JrJr  S SK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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)  Sr* " S S\5      r+ " S S\5      r, " S S\5      r- " S S\5      r.\" S5      r/S.S jr0S/S jr1S0S jr2      S1S jr3S2S jr4                  S3S jr5          S4S  jr6S!S"S#S$S%S&S'S(S)S*.	r7S5S+ jr8S6S, jr9g-)7    )annotations)IterableIteratorMappingSequenceasdict)Any)UUID)RunnableConfig)CheckpointMetadataPendingWrite)	TypedDict)patch_checkpoint_map)CONFCONFIG_KEY_CHECKPOINT_NSERROR	INTERRUPTNS_ENDNS_SEPRETURN)MISSING)BaseChannel)
TAG_HIDDEN)read_channels)PregelExecutableTask
PregelTaskStateSnapshot)TaskPayloadTaskResultPayloadCheckpointTaskCheckpointPayloadc                  >    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S	rg
)r      stridnamer
   input	list[str]triggers N__name__
__module____qualname____firstlineno____annotations____static_attributes__r+       f/home/dmtnaga/Documents/work/airagagent/rag_env/lib/python3.13/site-packages/langgraph/pregel/debug.pyr   r      s    G
IJr3   r   c                  H    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S	\S
'   Srg)r    &   r%   r&   r'   
str | Noneerror
list[dict]
interruptsdict[str, Any]resultr+   Nr,   r+   r3   r4   r    r    &   s    G
Ir3   r    c                  H    \ rS rSr% S\S'   S\S'   S\S'   S\S'   S	\S
'   Srg)r!   .   r%   r&   r'   r7   r8   r9   r:   z%StateSnapshot | RunnableConfig | Nonestater+   Nr,   r+   r3   r4   r!   r!   .   s    G
I00r3   r!   c                  R    \ rS rSr% S\S'   S\S'   S\S'   S\S	'   S\S
'   S\S'   Srg)r"   6   RunnableConfig | Noneconfigr   metadatar;   valuesr)   nextparent_configzlist[CheckpointTask]tasksr+   Nr,   r+   r3   r4   r"   r"   6   s%    !!  
O((r3   r"   z$6ba7b831-9dad-11d1-80b4-00c04fd430c8c              #     #    U  Hg  nUR                   b&  [        UR                   R                  S/ 5      ;   a  M6  UR                  UR                  UR
                  UR                  S.v   Mi     g7f)z,Produce "task" events for stream_mode=debug.Ntags)r&   r'   r(   r*   )rC   r   getr&   r'   r(   r*   )rH   tasks     r4   map_debug_tasksrM   B   sZ     ;;"zT[[__VR5P'P ''IIZZ	
 	
	 s   A/A1c                n    [        U [        5      =(       a    SU ;   =(       a    [        U S   [        5      $ )zOReturn True if the payload already wraps multiple writes from the same channel.$writes)
isinstancedictlist)values    r4   is_multiple_channel_writerT   P   s4     	5$ 	/	/uY'.r3   c                    0 nU  HN  u  p#UR                  U5      nUb1  [        U5      (       a  US   OU/nUR                  U5        SU0X'   MJ  X1U'   MP     U$ )aB  Folds task writes into a result dict and aggregates multiple writes to the same channel.

If the channel contains a single write, we record the write in the result dict as `{channel: write}`
If the channel contains multiple writes, we record the writes in the result dict as `{channel: {'$writes': [write1, write2, ...]}}`rO   )rK   rT   append)writesr<   channelrS   existingchannel_writess         r4   map_task_result_writesr[   Y   st      F ::g& -X66 #Z 
 !!%((.9FO#7O ! Mr3   c              #    #    [        U[        5      (       a  U/OUnU u  p4UR                  UR                  [	        S U 5       S5      [        U Vs/ s H  oUS   U;   d  US   [        :X  d  M  UPM     sn5      U VVs/ s HH  nUS   [        :X  d  M  [        US   [        5      (       a  US   OUS   /  H  n[        U5      PM     MJ     snnS.v   gs  snf s  snnf 7f)z3Produce "task_result" events for stream_mode=debug.c              3  H   #    U  H  oS    [         :X  d  M  US   v   M     g7fr      N)r   ).0ws     r4   	<genexpr>)map_debug_task_results.<locals>.<genexpr>|   s     =Vtu}tqtVs   ""Nr   r_   )r&   r'   r8   r<   r:   )
rP   r%   r&   r'   rF   r[   r   r   r   r	   )task_tupstream_keysstream_channels_listrL   rW   ra   vs          r4   map_debug_task_resultsrh   p   s      $K55;  LDgg		=V=tD(Q1A$*>">!A$&.QQ

 
ty   )1x88adqtfD 1I E 
 
 R
s*   AC#C/C5C# C:CC#c                    U c  U $ SU R                  S0 5      R                  5        VVs0 s H  u  pUR                  S5      (       a  M  X_M!     snn0$ s  snnf )z,Remove pregel-specific keys from the config.configurable	__pregel_)rK   items
startswith)rC   krg   s      r4   rm_pregel_keysro      s_    ~

>26<<>
><<, AD>
 
s   A
Ac              #    #    U [            R                  [        S5      n0 n	U Ho  n
U
R                  (       d  M  U
R                   [
         U
R                   3nU(       a  U [         U 3n[         SU [            S   [        U00XR                  '   Mq     [        [        X5      5      [        [        Xc5      5      [        X5      UU Vs/ s H  oR                  PM     sn[        XEX5       Vs/ s H  nUR                  (       a/  UR                  UR                  UR                  UR                  S.OUR                  (       aJ  UR                  UR                  UR                  [        S UR                    5       5      UR                  S.O>UR                  UR                  [        S UR                    5       5      UR                  S.PM     snS.v   g	s  snf s  snf 7f)
z2Produce "checkpoint" events for stream_mode=debug. 	thread_id)r&   r'   r8   r?   c              3  8   #    U  H  n[        U5      v   M     g 7fNr   r`   is     r4   rb   'map_debug_checkpoint.<locals>.<genexpr>        #D|!F1II|   )r&   r'   r<   r:   r?   c              3  8   #    U  H  n[        U5      v   M     g 7frt   r   ru   s     r4   rb   rw      rx   ry   )r&   r'   r:   r?   )rC   rG   rE   rD   rF   rH   N)r   rK   r   	subgraphsr'   r   r&   r   ro   r   r   tasks_w_writesr8   r?   r<   tupler:   )rC   channelsstream_channelsrD   rH   pending_writesrG   output_keys	parent_nstask_statesrL   task_nsts                r4   map_debug_checkpointr      s     t  !92>I=?K~~ YYKxy1"F8G95G VD\+6(' 
GG $ !!5f!GH'(<](UV:!&'A'. $E;T-
, U ww dd	 xx dd((##Dq||#DD dd##Dq||#DD	* U-
 
 (
s   C
G'G!G'1C$G"G'c                  ^ U=(       d    / n/ nU  GH  m[        U4S jU 5       [        5      n[        U4S jU 5       S5      n[        U4S jU 5       5      nU VV	V
s/ s H2  u  pn
UTR                  :X  d  M  U	[        [
        [        4;  d  M/  X4PM4     nn	nn
U[        La  UnO[        U[        5      (       aM  U V	V
s/ s H  u  pX:X  d  M  X4PM     nn	n
[        U5      nU(       a  UR                  [        U5      5      OSnOL[        U[        5      (       a  U/nU V	V
s/ s H  u  pX;   d  M  X4PM     nn	n
[        U5      nU(       a  UO0 nU[        L=(       d    [        U4S jU 5       5      nUR                  [        TR                  TR                  TR                  UUU(       a  UR                  TR                  5      OSU(       a  UOS5      5        GM     [        U5      $ s  sn
n	nf s  sn
n	f s  sn
n	f )zJApply writes / subgraph states to tasks to be returned in a StateSnapshot.c              3  j   >#    U  H(  u  pnUTR                   :X  d  M  U[        :X  d  M$  Uv   M*     g 7frt   )r&   r   )r`   tidchanvalrL   s       r4   rb   !tasks_w_writes.<locals>.<genexpr>   s5      &4NCs$''> &*fn &4s   33	3c              3  h   >#    U  H'  u  po1TR                   :X  d  M  U[        :X  d  M#  Uv   M)     g 7frt   )r&   r   )r`   r   nexcrL   s       r4   rb   r      s'     TN[SSTWWnSeSSNs   22	2Nc              3     >#    U  HJ  u  pnUTR                   :X  d  M  U[        :X  d  M$  [        U[        5      (       a  UOU/  H  nUv   M	     ML     g 7frt   )r&   r   rP   r   )r`   r   r   vvrg   rL   s        r4   rb   r      s\       
,
dgg~ "#y.  'r844b2$>  ? ,s   AA+Ac              3  x   >#    U  H/  oS    TR                   :H  =(       a    US   [        [        4;  v   M1     g7fr^   )r&   r   r   )r`   ra   rL   s     r4   rb   r     s4      /
HV1aDDGGO>!UI,> >>s   7:)rF   r   r}   r&   r   r   r   rP   r%   r[   rK   anyrV   r   r'   path)rH   r   statesr   outrtn
task_errortask_interruptsr   r   r   task_writestask_resultfiltered_writesmapped_writes
has_writesrL   s                   @r4   r|   r|      s    $)rNC&4
 
 TNT

    
, 
 
 #1
"03dgg~ "&ui.H"H TK"0 	 
 gKS)) .9-8	D<O[   3?CMAN-++C,<=TXK+s++*m .9-8	D<O[   3?CM+:-K' 
3 /
HV/
 ,

 	

				'-

477#4)t
	
e z :S
s*    G4
;G4
G4
G;G;(H7Hz0;30z0;31z0;32z0;33z0;34z0;35z0;36z0;37z1;30)	blackredgreenyellowbluemagentacyanwhitegrayc                "    S[         U    SU  S3$ )zGet colored text.z[1;3m[0m)COLOR_MAPPING)textcolors     r4   get_colored_textr   -  s    mE*+1TF'::r3   c                    SU  S3$ )zGet bolded text.z[1mr   r+   )r   s    r4   get_bolded_textr   2  s    TF'""r3   N)rH   Iterable[PregelExecutableTask]returnzIterator[TaskPayload])rS   r
   r   bool)rW   zSequence[tuple[str, Any]]r   r;   )rd   z6tuple[PregelExecutableTask, Sequence[tuple[str, Any]]]re   str | Sequence[str]r   zIterator[TaskResultPayload])rC   rB   r   rB   )rC   r   r~   zMapping[str, BaseChannel]r   r   rD   r   rH   r   r   zlist[PendingWrite]rG   rB   r   r   r   zIterator[CheckpointPayload])
rH   z+Iterable[PregelTask | PregelExecutableTask]r   zlist[PendingWrite] | Noner   z0dict[str, RunnableConfig | StateSnapshot] | Noner   r   r   ztuple[PregelTask, ...])r   r%   r   r%   r   r%   )r   r%   r   r%   ):
__future__r   collections.abcr   r   r   r   dataclassesr	   typingr
   uuidr   langchain_core.runnablesr   langgraph.checkpoint.baser   r   typing_extensionsr   langgraph._internal._configr   langgraph._internal._constantsr   r   r   r   r   r   r   langgraph._internal._typingr   langgraph.channels.baser   langgraph.constantsr   langgraph.pregel._ior   langgraph.typesr   r   r   __all__r   r    r!   r"   TASK_NAMESPACErM   rT   r[   rh   ro   r   r|   r   r   r   r+   r3   r4   <module>r      s   " A A    3 F ' <   0 / * . K K
U) 	 1Y 1 	   <=
.D$ !2
>>'> )> !	>
 *> '> )> %> !>BF6F-F =F %	F
 FT 
;
#r3   