o
    ٰi                     @   s   d dl mZ d dlmZ ddlmZmZ d dlmZ er&d dlm	Z	m
Z
mZ zd dlZW n ey7   edw 			
						dddZdS )    wraps)DidNotEnable   execute_tool_spanupdate_execute_tool_span)TYPE_CHECKING)AnyCallable	AwaitableNzOpenAI Agents not installedoriginal_get_all_tools+Callable[..., Awaitable[list[agents.Tool]]]agentagents.Agentcontext_wrapperagents.RunContextWrapperreturnlist[agents.Tool]c           	   	      s   |  |I dH }g }|D ]6}|j jdkr|| q|j}						d fdd	}tj|j|j|j||||j	|j
d
}|| q|S )zL
    Responsible for creating and managing `gen_ai.execute_tool` spans.
    NFunctionToolcurrent_toolagents.Toolcurrent_on_invokeCallable[..., Any]r   c                    s*   t  						d fdd}|S )Nargsr
   kwargsr   c                     s`   t g| R i |}| i |I d H }t| | W d    |S 1 s)w   Y  |S )Nr   )r   r   spanresult)r   r   r    g/home/ubuntu/.local/lib/python3.10/site-packages/sentry_sdk/integrations/openai_agents/patches/tools.pysentry_wrapped_on_invoke_tool*   s   
zT_get_all_tools.<locals>.create_wrapped_invoke.<locals>.sentry_wrapped_on_invoke_tool)r   r
   r   r
   r   r
   r   )r   r   r    r   )r   r   r   create_wrapped_invoke'   s   z-_get_all_tools.<locals>.create_wrapped_invoke)namedescriptionparams_json_schemaon_invoke_toolstrict_json_schema
is_enabled)r   r   r   r   r   r   )	__class____name__appendr&   agentsr   r#   r$   r%   r'   r(   )	r   r   r   toolswrapped_toolstooloriginal_on_invoker"   wrapped_toolr   r!   r   _get_all_tools   s2   	
r2   )r   r   r   r   r   r   r   r   )	functoolsr   sentry_sdk.integrationsr   spansr   r   typingr	   r
   r   r   r,   ImportErrorr2   r   r   r   r   <module>   s(    