o
    ùT·jî  ã                   @  s    d dl mZ d dlZd dlmZ d dlmZmZmZm	Z	 ddl
mZ ddlmZ dd	lmZ dd
lmZ ddlmZ d dd„Zd!dd„Zd"dd„Zd#dd„ZdS )$é    )ÚannotationsN)Údeepcopy)ÚAnyÚDictÚMappingÚcasté   )Ú
ToolOutputé   )ÚBadRequestError)ÚAgentFunctionCallItem)Ú,SessionInputParamAgentSessionInputToolResult)ÚAgentFunctionCallOutputParamÚcallr   ÚreturnúDict[str, Any]c                 C  sF   t | jtƒrt | j¡nt| jƒ}t |tƒstdƒ‚tt	tt
f |ƒS )Nz(Function arguments must be a JSON object)Ú
isinstanceÚ	argumentsÚstrÚjsonÚloadsr   ÚdictÚ
ValueErrorr   r   r   )r   Úvalue© r   úe/home/dinkstrade/pdmp-scanner/venv/lib/python3.10/site-packages/openai/lib/streaming/agents/_tools.pyr      s   "
r   Úoutputr	   r   c                 C  s`   t |tƒrtjt|ƒdd�}|d urt |tƒst|ƒ}d| j| jd|d ur,t	t
|ƒdœS d dœS )N)ú,ú:)Ú
separatorsúagent.session.input.tool_resultT)ÚtypeÚturn_idÚcall_idÚsuccessr   )r   r   r   Údumpsr   r   Úlistr"   r#   r   r   )r   r   r   r   r   Úresult_event   s   
ûûr'   c                 C  s   d| j | jdddœS )Nr    FzTool handler failed.)r!   r"   r#   r$   Úerror)r"   r#   )r   r   r   r   Úfailed_event$   s   úr)   r(   r   r#   r   Úboolc                 C  sH   | j }t|tƒrttttf |ƒni }| d¡dko#| d¡d|› �kS )NÚcodeÚinvalid_request_errorÚmessagezUnknown pending tool call: )Úbodyr   r   r   r   r   ÚobjectÚget)r(   r#   Úraw_bodyr.   r   r   r   Úis_pending_call_race/   s     ÿr2   )r   r   r   r   )r   r   r   r	   r   r   )r   r   r   r   )r(   r   r#   r   r   r*   )Ú
__future__r   r   Úcopyr   Útypingr   r   r   r   Ú_typesr	   Ú_exceptionsr   Ú#types.beta.agent_function_call_itemr   Ú$types.beta.agent_session_input_paramr   Ú+types.beta.agent_function_call_output_paramr   r   r'   r)   r2   r   r   r   r   Ú<module>   s    


