o
    h                     @   s   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d	ZG d
d deeef ZG dd deeef Zeeef Z	 eeef ZdS )    )AnyGenericOptional)TypeVar   )Agent	AgentBase)ModelResponseTResponseInputItem)RunContextWrapperTContext)ToolTAgent)bounddefaultc                
   @   s   e Zd ZdZdee dee dee de	e
 ddf
dd	Zdee dee d
eddfddZdee deddfddZdee dededdfddZdee dededdfddZdee dededdfddZdee dedededdf
ddZdS )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                       dS )z3Called just before invoking the LLM for this agent.N selfr   r   r   r   r   r   Q/var/www/html/openai_agents/venv/lib/python3.10/site-packages/agents/lifecycle.pyon_llm_start      zRunHooksBase.on_llm_startresponsec                    r   )z=Called immediately after the LLM call returns for this agent.Nr   r   r   r   r   r   r   r   
on_llm_end      zRunHooksBase.on_llm_endc                    r   )zOCalled before the agent is invoked. Called each time the current agent changes.Nr   r   r   r   r   r   r   on_agent_start%   s   zRunHooksBase.on_agent_startoutputc                    r   z.Called when the agent produces a final output.Nr   r   r   r   r$   r   r   r   on_agent_end)   r!   zRunHooksBase.on_agent_end
from_agentto_agentc                    r   )zCalled when a handoff occurs.Nr   )r   r   r(   r)   r   r   r   
on_handoff2   r!   zRunHooksBase.on_handofftoolc                    r   z)Called concurrently with tool invocation.Nr   r   r   r   r+   r   r   r   on_tool_start;   r!   zRunHooksBase.on_tool_startresultc                    r   zCalled after a tool is invoked.Nr   r   r   r   r+   r/   r   r   r   on_tool_endD   r   zRunHooksBase.on_tool_end)__name__
__module____qualname____doc__r   r   r   r   strlistr
   r   r	   r    r   r#   r   r'   r*   r   r.   r2   r   r   r   r   r      sz    


	
	
	
	r   c                
   @   s   e Zd ZdZdee deddfddZdee dededdfd	d
Z	dee dededdfddZ
dee dededdfddZdee dedededdf
ddZdee dee dee dee ddf
ddZdee dee deddfddZdS )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                    r   )zhCalled before the agent is invoked. Called each time the running agent is changed to this
        agent.Nr   r"   r   r   r   on_startV   s   zAgentHooksBase.on_startr$   c                    r   r%   r   r&   r   r   r   on_end[   r!   zAgentHooksBase.on_endsourcec                    r   )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   r<   r   r   r   r*   d   r   zAgentHooksBase.on_handoffr+   c                    r   r,   r   r-   r   r   r   r.   n   r!   zAgentHooksBase.on_tool_startr/   c                    r   r0   r   r1   r   r   r   r2   w   r   zAgentHooksBase.on_tool_endr   r   c                    r   )z7Called immediately before the agent issues an LLM call.Nr   r   r   r   r   r      r   zAgentHooksBase.on_llm_startr   c                    r   )z=Called immediately after the agent receives the LLM response.Nr   r   r   r   r   r       r!   zAgentHooksBase.on_llm_end)r3   r4   r5   r6   r   r   r   r:   r   r;   r*   r   r.   r7   r2   r   r   r8   r
   r   r	   r    r   r   r   r   r9   O   sz    
	


	



r9   N)typingr   r   r   typing_extensionsr   r   r   r   itemsr	   r
   run_contextr   r   r+   r   r   r   r9   RunHooks
AgentHooksr   r   r   r   <module>   s    BF