o
    .if                     @   sT   d Z ddlmZmZ ddlmZmZmZ ddlm	Z	m
Z
 G dd deZg dZdS )	zInterface for tools.    )ListOptional)BaseToolTooltool)AsyncCallbackManagerForToolRunCallbackManagerForToolRunc                	   @   sv   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   O/var/www/html/corbot_env/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	      s0   
 
r	   )r	   r   r   r   N)r%   typingr   r   langchain_core.toolsr   r   r   langchain.callbacks.managerr   r   r	   __all__r   r   r   r   <module>   s    !