o
    Jjg                     @   sP   d Z ddlmZmZ ddlmZmZ ddlmZm	Z	 G dd deZ
ddgZdS )	zInterface for tools.    )ListOptional)AsyncCallbackManagerForToolRunCallbackManagerForToolRun)BaseTooltoolc                	   @   sz   e Zd ZU dZdZeed< 	 dZeed< 	 	ddedee d	e	e
 d
efddZ	ddedee d	e	e d
efddZdS )InvalidToolz@Tool that is run when invalid tool name is encountered by agent.invalid_toolnamez<Called when tool name is invalid. Suggests valid tool names.descriptionNrequested_tool_nameavailable_tool_namesrun_managerreturnc                 C   s$   d dd |D }| d| dS )zUse the tool., c                 S      g | ]}|qS  r   .0r   r   r   N/var/www/html/zoom/venv/lib/python3.10/site-packages/langchain/agents/tools.py
<listcomp>       z$InvalidTool._run.<locals>.<listcomp>" is not a valid tool, try one of [].joinselfr   r   r   available_tool_names_strr   r   r   _run   s
   zInvalidTool._runc                    s&   d dd |D }| d| dS )zUse the tool asynchronously.r   c                 S   r   r   r   r   r   r   r   r   (   r   z%InvalidTool._arun.<locals>.<listcomp>r   r   r   r   r   r   r   _arun!   s   zInvalidTool._arun)N)__name__
__module____qualname____doc__r
   str__annotations__r   r   r   r   r   r   r    r   r   r   r   r      s4   
 
r   r   N)r$   typingr   r   langchain_core.callbacksr   r   langchain_core.toolsr   r   r   __all__r   r   r   r   <module>   s    #