
    Zi/                    X   % S 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  SSKJrJr  SSKJrJr  SS	KJr  SS
KJr  Sr\	S   rS\S'    \" SS9 " S S5      5       r\" SS9 " S S5      5       r\\-  rS\S'     " S S\5      r\" 5       r     S&S jr!                    S'S jr"        S(S jr#        S)S jr$ " S S\5      r% " S S \5      r&\" S\%\&5      r'\%\&-  \-  \-  \\   -  \\   -  S!-  r(S\S"'   S!S#.     S*S$ jjr)S!S#.     S+S% jjr*g!),zGraph lifecycle callback interfaces and event payloads.

This module defines the public callback surface for observing LangGraph-specific
lifecycle transitions such as interrupt and resume.
    )annotations)Sequence)	dataclass)AnyLiteral	TypeAliasTypeVar)UUID)BaseCallbackHandlerBaseCallbackManager)ahandle_eventhandle_event)RunnableConfig)	Interrupt)GraphCallbackHandlerGraphInterruptEventGraphLifecycleEventGraphLifecycleStatusGraphResumeEvent+get_async_graph_callback_manager_for_config*get_sync_graph_callback_manager_for_config)inputpendingdoneinterrupt_beforeinterrupt_afterout_of_stepsr   r   T)frozenc                  T    \ rS rSr% SrS\S'    S\S'    S\S'    S	\S
'    S\S'   Srg)r   *   zCGraph lifecycle event emitted when execution pauses for interrupts.UUID | Nonerun_idr   statusstrcheckpoint_idtuple[str, ...]checkpoint_nsztuple[Interrupt, ...]
interrupts N__name__
__module____qualname____firstlineno____doc____annotations____static_attributes__r)       m/var/www/eduai.edurigo.com/question_generate/ques_gen_env/lib/python3.13/site-packages/langgraph/callbacks.pyr   r   *   s2    M?  6B""F%%<r2   r   c                  H    \ rS rSr% SrS\S'    S\S'    S\S'    S	\S
'   Srg)r   >   zGGraph lifecycle event emitted when execution resumes from a checkpoint.r!   r"   r   r#   r$   r%   r&   r'   r)   Nr*   r)   r2   r3   r   r   >   s)    Q?  3/""Fr2   r   r   c                  ,    \ rS rSrSrSS jrSS jrSrg)	r   W   ao  Base class for graph-level lifecycle callbacks.

Subclass this handler to observe graph lifecycle transitions that are
specific to LangGraph execution, rather than generic LangChain runnable
callbacks.

Instances can be passed through `config["callbacks"]` when invoking a
graph. Only handlers that inherit from `GraphCallbackHandler` receive these
lifecycle events.
c                    g)ztRun when graph execution pauses due to one or more interrupts.

Args:
    event: Interrupt lifecycle event payload.
Nr)   selfevents     r3   on_interrupt!GraphCallbackHandler.on_interruptc       r2   c                    g)zpRun when graph execution resumes from a persisted checkpoint.

Args:
    event: Resume lifecycle event payload.
Nr)   r9   s     r3   	on_resumeGraphCallbackHandler.on_resumej   r>   r2   r)   N)r;   r   returnr   )r;   r   rB   r   )r+   r,   r-   r.   r/   r<   r@   r1   r)   r2   r3   r   r   W   s    	r2   r   c                `    U  Vs/ s H  n[        U[        5      (       d  M  UPM     sn$ s  snf N)
isinstancer   )handlershs     r3   _filter_graph_handlersrH   u   s&      Gx!:a1E#FAxGGGs   ++c                   / n	/ n
Ub  U	R                  U5        Ub  U
R                  U5        [        R                  " U U	U
UUUUUS9  Xl        g )N)rF   inheritable_handlersparent_run_idtagsinheritable_tagsmetadatainheritable_metadata)extendr   __init__r"   )managerrF   rJ   rK   rL   rM   rN   rO   r"   base_handlersbase_inheritable_handlerss              r3   _init_base_managerrU   {   se     02M;=X&'!(()=>  6#)1	 Nr2   _GraphManagerTc                  Uc  U " US9$ [        X5      (       a  UR                  US9$ [        U[        [        45      (       a  U " [	        UR
                  5      [	        UR                  5      UR                  UR                  R                  5       UR                  R                  5       UR                  R                  5       UR                  R                  5       US9$ [        U[        5      (       a  U " [	        UR
                  5      [	        UR                  5      UR                  UR                  R                  5       UR                  R                  5       UR                  R                  5       UR                  R                  5       US9$ [        U[        5      (       a  U " U4US9$ [        U[        [        45      (       d  [        U[         5      (       d  [#        S5      eU " [	        [%        U5      5      US9$ )Nr"   rF   rJ   rK   rL   rM   rN   rO   r"   z1callbacks must be a handler, sequence, or manager)rE   copy_GraphCallbackManager_AsyncGraphCallbackManagerrH   rF   rJ   rK   rL   rM   rN   rO   r   r   r$   bytesr   	TypeErrorlistcls	callbacksr"   s      r3   _configure_graph_callbacksrc      s    &!!)!!~~V~,,)35OPQQ+I,>,>?!7	8V8V!W#11$$&&77<<>'',,.!*!?!?!D!D!F	
 		
 )011+I,>,>?!7	8V8V!W#11$$&&77<<>'',,.!*!?!?!D!D!F	
 		
 )122I<//)c5\***Y2Q2QKLL%d9o6vFFr2   c                   U[         L a  U R                  nO%Ub   [        U[        5      (       d  [	        S5      eUnU" [        U R                  5      [        U R                  5      U R                  U R                  R                  5       U R                  R                  5       U R                  R                  5       U R                  R                  5       US9$ )Nzrun_id must be a UUID or NonerY   )_MISSINGr"   rE   r
   r^   rH   rF   rJ   rK   rL   rZ   rM   rN   rO   )rR   ra   r"   resolved_run_ids       r3   _copy_graph_managerrg      s     !..j&>&>;<< '(8(893G4P4PQ++\\  11668!!&&($99>>@	 	r2   c                      \ rS rSr% SrS\S'      SSSSSSS.                 SS jjjr\S.   SS	 jjr\	 SSS.     SS
 jjj5       r
SS jrSS jrSrg)r[      z+Sync dispatcher for graph lifecycle events.r!   r"   NrL   rM   rN   rO   r"   c               &    [        U UUUUUUUUS9	  g Nrj   rU   	r:   rF   rJ   rK   rL   rM   rN   rO   r"   s	            r3   rQ   _GraphCallbackManager.__init__   '     	 -!5
	
r2   rX   c               $    [        U [        U5      $ rD   )rg   r[   r:   r"   s     r3   rZ   _GraphCallbackManager.copy   s    
 #4)>GGr2   c                   [        XUS9$ NrX   rc   r`   s      r3   	configure_GraphCallbackManager.configure        *#HHr2   c                4    [        U R                  SS U5        g Nr<   r   rF   r9   s     r3   r<   "_GraphCallbackManager.on_interrupt  s    MM		
r2   c                4    [        U R                  SS U5        g Nr@   r|   r9   s     r3   r@   _GraphCallbackManager.on_resume  s    MM		
r2   r)   NNNrF   %Sequence[GraphCallbackHandler] | NonerJ   r   rK   r!   rL   list[str] | NonerM   r   rN   dict[str, Any] | NonerO   r   r"   r!   rB   None)r"   UUID | None | objectrB   r[   rD   )rb   object | Noner"   r!   rB   r[   r;   r   rB   r   r;   r   rB   r   )r+   r,   r-   r.   r/   r0   rQ   re   rZ   classmethodrw   r<   r@   r1   r)   r2   r3   r[   r[      s    5 ;?FJ%)	
 "&-1*.6:"
7
 D
 #	
 
 +
 (
 4
 
 

6 (0H %H 
	H  $(I #	I I 	I
 
I I

r2   r[   c                      \ rS rSr% SrS\S'   \SS j5       r   SSSSSSS.                 SS jjjr\	S	.   SS
 jjr
\ SSS	.     SS jjj5       rSS jrSS jrSrg)r\   i  z,Async dispatcher for graph lifecycle events.r!   r"   c                    g)z$Return whether the manager is async.Tr)   )r:   s    r3   is_async#_AsyncGraphCallbackManager.is_async  s     r2   Nrj   c               &    [        U UUUUUUUUS9	  g rl   rm   rn   s	            r3   rQ   #_AsyncGraphCallbackManager.__init__#  rp   r2   rX   c               $    [        U [        U5      $ rD   )rg   r\   rr   s     r3   rZ   _AsyncGraphCallbackManager.copy;  s    
 #4)CVLLr2   c                   [        XUS9$ ru   rv   r`   s      r3   rw   $_AsyncGraphCallbackManager.configureB  ry   r2   c                P   #    [        U R                  SS U5      I S h  vN   g  N7fr{   r   rF   r9   s     r3   r<   '_AsyncGraphCallbackManager.on_interruptK  s'     MM	
 	
 	
   &$&c                P   #    [        U R                  SS U5      I S h  vN   g  N7fr   r   r9   s     r3   r@   $_AsyncGraphCallbackManager.on_resumeS  s'     MM	
 	
 	
r   r)   )rB   boolr   r   )r"   r   rB   r\   rD   )rb   r   r"   r!   rB   r\   r   r   )r+   r,   r-   r.   r/   r0   propertyr   rQ   re   rZ   r   rw   r<   r@   r1   r)   r2   r3   r\   r\     s   6  ;?FJ%)	
 "&-1*.6:"
7
 D
 #	
 
 +
 (
 4
 
 

6 (0M %M 
$	M  $(I #	I I 	I
 
$I I

r2   r\   NGraphCallbacksrX   c               H    [         R                  U R                  S5      US9$ )zBuild a sync graph lifecycle callback manager from a runnable config.

This helper filters `config["callbacks"]` down to handlers that inherit
from `GraphCallbackHandler` and binds the provided `run_id` onto the
returned manager.
rb   rX   )r[   rw   getconfigr"   s     r3   r   r   k  s+     !**

; +  r2   c               H    [         R                  U R                  S5      US9$ )zBuild an async graph lifecycle callback manager from a runnable config.

This helper filters `config["callbacks"]` down to handlers that inherit
from `GraphCallbackHandler` and binds the provided `run_id` onto the
returned manager.
rb   rX   )r\   rw   r   r   s     r3   r   r   |  s+     &//

; 0  r2   )rF   zlist[BaseCallbackHandler]rB   zlist[GraphCallbackHandler])rR   r   rF   r   rJ   r   rK   r!   rL   r   rM   r   rN   r   rO   r   r"   r!   rB   r   )ra   type[_GraphManagerT]rb   r   r"   r!   rB   rV   )rR   z2_GraphCallbackManager | _AsyncGraphCallbackManagerra   r   r"   r   rB   rV   )r   r   r"   r!   rB   r[   )r   r   r"   r!   rB   r\   )+r/   
__future__r   collections.abcr   dataclassesr   typingr   r   r   r	   uuidr
   langchain_core.callbacksr   r    langchain_core.callbacks.managerr   r   langchain_core.runnablesr   langgraph.typesr   __all__r   r0   r   r   r   r   objectre   rH   rU   rc   rg   r[   r\   rV   r   r   r   r)   r2   r3   <module>r      sg   # $ ! 3 3  M H 3 % #*# i  N $= = =& $G G G  "57G!G Y G. 6 8H'HH 3 @ 	  ' $ 0  
>%G	%G%G 	%G
 %GP?	 ! 	2;
/ ;
|@
!4 @
F +-G
  !  "#	$
 #$%  	    	(    	r2   