
    .Ui                         d dl mZmZmZ d dlmZ ddlmZmZ ddl	m
Z
mZ ddlmZmZ ddlmZ  edee	      Z G d
 deeef         Z G d deeef         Zeeef   Z	 eeef   Zy)    )AnyGenericOptional)TypeVar   )Agent	AgentBase)ModelResponseTResponseInputItem)RunContextWrapperTContext)ToolTAgent)bounddefaultc            
           e Zd ZdZdee   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ddfdZdee   dededdfdZdee   dededdfdZdee   dededdfdZdee   dedededdf
dZy)RunHooksBasezA class that receives callbacks on various lifecycle events in an agent run. Subclass and
    override the methods you need.
    contextagentsystem_promptinput_itemsreturnNc                    K   yw)z3Called just before invoking the LLM for this agent.N selfr   r   r   r   s        l/home/jay/workspace/tools/ai-image-gen/jaaz-app/server/venv/lib/python3.12/site-packages/agents/lifecycle.pyon_llm_startzRunHooksBase.on_llm_start         	   responsec                    K   yw)z=Called immediately after the LLM call returns for this agent.Nr   r   r   r   r!   s       r   
on_llm_endzRunHooksBase.on_llm_end         	r    c                    K   yw)zOCalled before the agent is invoked. Called each time the current agent changes.Nr   r   r   r   s      r   on_agent_startzRunHooksBase.on_agent_start%   s	     r    outputc                    K   ywz.Called when the agent produces a final output.Nr   r   r   r   r)   s       r   on_agent_endzRunHooksBase.on_agent_end)   r%   r    
from_agentto_agentc                    K   yw)zCalled when a handoff occurs.Nr   )r   r   r.   r/   s       r   
on_handoffzRunHooksBase.on_handoff2   r%   r    toolc                    K   ywz)Called concurrently with tool invocation.Nr   r   r   r   r2   s       r   on_tool_startzRunHooksBase.on_tool_start;   r%   r    resultc                    K   ywzCalled after a tool is invoked.Nr   r   r   r   r2   r7   s        r   on_tool_endzRunHooksBase.on_tool_endD   r   r    )__name__
__module____qualname____doc__r   r   r   r   strlistr   r   r
   r$   r   r(   r   r-   r1   r   r6   r;   r       r   r   r      so   "8, X  }	
 ,- 
"8, X  	
 
,=h,G PV [_ "8,  	
 
"8,  	
 
"8,  	
 
"8,  	
  
rB   r   c            
           e Zd ZdZdee   deddfdZdee   dededdfdZ	dee   ded	eddfd
Z
dee   dededdfdZdee   dedededdf
dZdee   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y)AgentHooksBasezA 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   yw)zhCalled before the agent is invoked. Called each time the running agent is changed to this
        agent.Nr   r'   s      r   on_startzAgentHooksBase.on_startV   s      	r    r)   c                    K   ywr+   r   r,   s       r   on_endzAgentHooksBase.on_end[   r%   r    sourcec                    K   yw)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   rI   s       r   r1   zAgentHooksBase.on_handoffd   r   r    r2   c                    K   ywr4   r   r5   s       r   r6   zAgentHooksBase.on_tool_startn   r%   r    r7   c                    K   ywr9   r   r:   s        r   r;   zAgentHooksBase.on_tool_endw   r   r    r   r   c                    K   yw)z7Called immediately before the agent issues an LLM call.Nr   r   s        r   r   zAgentHooksBase.on_llm_start   r   r    r!   c                    K   yw)z=Called immediately after the agent receives the LLM response.Nr   r#   s       r   r$   zAgentHooksBase.on_llm_end   r%   r    )r<   r=   r>   r?   r   r   r   rF   r   rH   r1   r   r6   r@   r;   r   r   rA   r   r   r
   r$   r   rB   r   rD   rD   O   sn   &7&A & UY 
"8,  	
 
"8,  	
 
"8,  	
 
"8,  	
  
"8, X  }	
 ,- 
"8, X  	
 
rB   rD   N)typingr   r   r   typing_extensionsr   r   r   r	   itemsr
   r   run_contextr   r   r2   r   r   r   rD   RunHooks
AgentHooksr   rB   r   <module>rU      s|    ) ) % # 4 4 	I	>?78V+, ?DCWXv-. CL %( #HeO,
 rB   