o
    «±hw  ã                   @   sD   d dl mZmZmZ ddlmZ ddlmZ G dd„ dƒZeƒ ZdS )é    )ÚCallableÚDictÚAnyé   )Úavailable_functions)Útool_definitionsc                   @   sD   e Zd Zdd„ Zdd„ Zdededdfd	d
„Zdedefdd„ZdS )ÚToolRegistryc                 C   s   i | _ |  ¡  d S )N)ÚtoolsÚ_register_core_tools)Úself© r   ú@C:\Users\shubh\Videos\agent\agent\modules\tools\tool_registry.pyÚ__init__   s   zToolRegistry.__init__c                 C   s,   t D ]}t |d ¡}|  |d |¡ qd S )NÚname)r   r   ÚgetÚregister)r   ZtoolÚfuncr   r   r   r
   
   s   þz!ToolRegistry._register_core_toolsr   ÚmethodÚreturnNc                 C   s(   || j v rtd|› d�ƒ‚|| j |< d S )NúTool z already registered)r	   Ú
ValueError)r   r   r   r   r   r   r      s   
zToolRegistry.registerc                 C   s$   || j vrtd|› d�ƒ‚| j | S )Nr   z not found in registry)r	   ÚKeyError)r   r   r   r   r   Ú
get_method   s   

zToolRegistry.get_method)	Ú__name__Ú
__module__Ú__qualname__r   r
   Ústrr   r   r   r   r   r   r   r      s
    r   N)	Útypingr   r   r   Útool_executorr   r   r   Útool_registryr   r   r   r   Ú<module>   s
    
