
    Mi"              
         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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'J(r(J)r)J*r*  \" S5      r+S$S jr,S%S jr-S&S jr.      S'S jr/S(S jr0                  S)S jr1          S*S jr2SSSSSSSSSS .	r3S+S! jr4S,S" jr5g#)-    )annotations)IterableIteratorMappingSequenceasdict)Any)UUID)RunnableConfig)CheckpointMetadataPendingWrite)patch_checkpoint_map)CONFCONFIG_KEY_CHECKPOINT_NSERROR	INTERRUPTNS_ENDNS_SEPRETURN)MISSING)BaseChannel)
TAG_HIDDEN)read_channels)CheckpointPayloadPregelExecutableTask
PregelTaskStateSnapshotTaskPayloadTaskResultPayloadz$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)idnameinputtriggers)configr   getr#   r$   r%   r&   )taskstasks     p/var/www/eduai.edurigo.com/storigo/production/storigo_env/lib/python3.13/site-packages/langgraph/pregel/debug.pymap_debug_tasksr,   %   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    r+   is_multiple_channel_writer3   3   s4     	5$ 	/	/uY'.    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, ...]}}`r.   )r(   r3   append)writesresultchannelr2   existingchannel_writess         r+   map_task_result_writesr<   <   st      F ::g& -X66 #Z 
 !!%((.9FO#7O ! Mr4   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     r+   	<genexpr>)map_debug_task_results.<locals>.<genexpr>_   s     =Vtu}tqtVs   ""Nr   r@   )r#   r$   errorr8   
interrupts)
r/   strr#   r$   nextr<   r   r   r   r	   )task_tupstream_keysstream_channels_listr*   r7   rB   vs          r+   map_debug_task_resultsrM   S   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_)r(   items
startswith)r'   krL   s      r+   rm_pregel_keysrT   l   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$   rE   statec              3  8   #    U  H  n[        U5      v   M     g 7fNr   rA   is     r+   rC   'map_debug_checkpoint.<locals>.<genexpr>        #D|!F1II|   )r#   r$   r8   rF   rX   c              3  8   #    U  H  n[        U5      v   M     g 7frZ   r   r[   s     r+   rC   r]      r^   r_   )r#   r$   rF   rX   )r'   parent_configvaluesmetadatarH   r)   N)r   r(   r   	subgraphsr$   r   r#   r   rT   r   r   tasks_w_writesrE   rX   r8   tuplerF   )r'   channelsstream_channelsrc   r)   pending_writesra   output_keys	parent_nstask_statesr*   task_nsts                r+   map_debug_checkpointro   y   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rZ   )r#   r   )rA   tidchanvalr*   s       r+   rC   !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rZ   )r#   r   )rA   rr   nexcr*   s       r+   rC   ru      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rZ   )r#   r   r/   r   )rA   rr   rw   vvrL   r*   s        r+   rC   ru      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   )rA   rB   r*   s     r+   rC   ru      s4      /
HV1aDDGGO>!UI,> >>s   7:)rH   r   rf   r#   r   r   r   r/   rG   r<   r(   anyr6   r   r$   path)r)   ri   statesrj   outrtn
task_errortask_interruptsrr   rs   rt   task_writestask_resultfiltered_writesmapped_writes
has_writesr*   s                   @r+   re   re      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     r+   get_colored_textr     s    mE*+1TF'::r4   c                    SU  S3$ )zGet bolded text.z[1mr    )r   s    r+   get_bolded_textr     s    TF'""r4   N)r)   Iterable[PregelExecutableTask]returnzIterator[TaskPayload])r2   r
   r   bool)r7   zSequence[tuple[str, Any]]r   zdict[str, Any])rI   z6tuple[PregelExecutableTask, Sequence[tuple[str, Any]]]rJ   str | Sequence[str]r   zIterator[TaskResultPayload])r'   RunnableConfig | Noner   r   )r'   r   rg   zMapping[str, BaseChannel]rh   r   rc   r   r)   r   ri   zlist[PendingWrite]ra   r   rj   r   r   zIterator[CheckpointPayload])
r)   z+Iterable[PregelTask | PregelExecutableTask]ri   zlist[PendingWrite] | Noner~   z0dict[str, RunnableConfig | StateSnapshot] | Nonerj   r   r   ztuple[PregelTask, ...])r   rG   r   rG   r   rG   )r   rG   r   rG   )6
__future__r   collections.abcr   r   r   r   dataclassesr	   typingr
   uuidr   langchain_core.runnablesr   langgraph.checkpoint.baser   r   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   r   r   r    TASK_NAMESPACEr,   r3   r<   rM   rT   ro   re   r   r   r   r   r4   r+   <module>r      sK   " A A    3 F <   0 / * .  <=
.D$ !2
>>'> )> !	>
 *> '> )> %> !>BF6F-F =F %	F
 FT 
;
#r4   