
    .hz                         d dl mZmZ ddlmZ ddlmZmZ ddlm	Z	  G d dee                   Z
 G d d	ee                   Zd
S )    )AnyGeneric   )Agent)RunContextWrapperTContext)Toolc            
          e Zd ZdZdee         dee         ddfdZdee         dee         deddfdZ	dee         d	ee         d
ee         ddfdZ
dee         dee         deddfdZdee         dee         dededdf
dZdS )RunHookszA class that receives callbacks on various lifecycle events in an agent run. Subclass and
    override the methods you need.
    contextagentreturnNc                 
   K   dS )zOCalled before the agent is invoked. Called each time the current agent changes.N selfr   r   s      M/var/www/FlaskApp/flask-venv/lib/python3.11/site-packages/agents/lifecycle.pyon_agent_startzRunHooks.on_agent_start   s       	    outputc                 
   K   dS z.Called when the agent produces a final output.Nr   r   r   r   r   s       r   on_agent_endzRunHooks.on_agent_end          	r   
from_agentto_agentc                 
   K   dS )zCalled when a handoff occurs.Nr   )r   r   r   r   s       r   
on_handoffzRunHooks.on_handoff   r   r   toolc                 
   K   dS z Called before a tool is invoked.Nr   r   r   r   r    s       r   on_tool_startzRunHooks.on_tool_start%   r   r   resultc                 
   K   dS zCalled after a tool is invoked.Nr   r   r   r   r    r%   s        r   on_tool_endzRunHooks.on_tool_end.          	r   )__name__
__module____qualname____doc__r   r   r   r   r   r   r   r	   r$   strr)   r   r   r   r   r      sm        (2;@?	   "8, X 	
 
   "8, (O /	
 
   "8, X 	
 
   "8, X 	
  
     r   r   c            
          e Zd ZdZdee         dee         ddfdZdee         dee         deddfdZ	dee         dee         d	ee         ddfd
Z
dee         dee         deddfdZdee         dee         dededdf
dZdS )
AgentHookszA class that receives callbacks on various lifecycle events for a specific agent. You can
    set this on `agent.hooks` to receive events for that specific agent.

    Subclass and override the methods you need.
    r   r   r   Nc                 
   K   dS )zhCalled before the agent is invoked. Called each time the running agent is changed to this
        agent.Nr   r   s      r   on_startzAgentHooks.on_start@   s       	r   r   c                 
   K   dS r   r   r   s       r   on_endzAgentHooks.on_endE   r   r   sourcec                 
   K   dS )zrCalled when the agent is being handed off to. The `source` is the agent that is handing
        off to this agent.Nr   )r   r   r   r6   s       r   r   zAgentHooks.on_handoffN   r*   r   r    c                 
   K   dS r"   r   r#   s       r   r$   zAgentHooks.on_tool_startX   r   r   r%   c                 
   K   dS r'   r   r(   s        r   r)   zAgentHooks.on_tool_enda   r*   r   )r+   r,   r-   r.   r   r   r   r3   r   r5   r   r	   r$   r/   r)   r   r   r   r1   r1   9   sm        &7&A %PX/ ^b    
"8, X 	
 
   "8, X h	
 
   "8, X 	
 
   "8, X 	
  
     r   r1   N)typingr   r   r   r   run_contextr   r   r    r	   r   r1   r   r   r   <module>r<      s                  4 4 4 4 4 4 4 4      . . . . .wx  . . .b0 0 0 0 0" 0 0 0 0 0r   