Team Ai
Apppublic

Tribh/devops-copilot

sourceHugging Faceupdated 8mo agoView on Hugging Face
0likes
registry.cpython-311.pyc55 linesDownload Raw Back to __pycache__
1�

2њi�	���ddlmZmZmZmZmZmZddlmZm	Z	m3Z4mZmZddl
Z
ddlmZGd�de��ZGd�d��Ze��ZdS)	�)�Any�Callable�Dict�List�Optional�Type)�	BaseModel�5ConfigDict�Field�create_model�
validate_callN)�loggerc�l�eZdZUdZeed<eed<eeed<eed<e	d���Z6defd	�Zd7S)�Toolz&Represents a tool available to agents.�name�description�parameters_schema�funcT)�arbitrary_types_allowed�returnc��tjd|j�d|����|jdi|��}|jdi|�����S)z�8        Executes the tool with validation.9        IMPORTANT: All arguments are validated against parameters_schema before execution.10        zExecuting tool: z with params: �)r�inforrr�11model_dump)�self�kwargs�validated_paramss   �S/Users/tribhangind/Documents/GitHub/devops-copilot/devops_copilot/tools/registry.py�executezTool.executese��12	��H�t�y�H�H��H�H�I�I�I�1�4�1�;�;�F�;�;���t�y�9�9�+�6�6�8�8�9�9�9�N)
�__name__�13__module__�__qualname__�__doc__�str�__annotations__rr	rr14�model_configrrrr rrrsw�������0�0�15
�I�I�I������I��&�&�&�16�N�N�N��:�d�;�;�;�L�:�3�:�:�:�:�:�:r rc�l�eZdZdZd�Zdedefd�Zdedeefd�Z	de17eeeffd�Z
d	S)18�ToolRegistryz+Registry for managing and validating tools.c��i|_dS�N)�_tools�rs r�__init__zToolRegistry.__init__s
��')����r rrc�*����dtf���fd�}|S)z+Decorator to register a function as a tool.rc���tj|��}i}|j���D]Y\}}|jtjjkr
tdf||<�,|j|jtjjkrdn|jf||<�Zt|j19�d�fi|��}t��||���}|�	j�<tjd�����|S)N.�_Schema)rrrrzRegistered tool: )�inspect�	signature�20parameters�items�21annotation�	Parameter�emptyr�defaultrr!rr,rr)22r�sig�fields�23param_name�param�pydantic_model�toolrrrs24       ���r�	decoratorz(ToolRegistry.register.<locals>.decorator s�����#�D�)�)�C��F�%(�^�%9�%9�%;�%;�
@�
@�!�25�E��#�w�'8�'>�>�>�*-�s��F�:�&�&�*/�*:�5�=�T[�Te�Tk�Ck�Ck�C�C�qv�q~�)�F�:�&�&�)�T�]�*C�*C�*C�N�N�v�N�N�N���'�"0��	���D�!%�D�K����K�2�D�2�2�3�3�3��Kr )r)rrrr@s``` r�registerzToolRegistry.registers<�����	�H�	�	�	�	�	�	�	�	�*�r rc�6�|j�|��Sr+)r,�get)rrs  r�get_toolzToolRegistry.get_tool7s���{���t�$�$�$r c�H�d�|j���D��S)Nc�\�g|])}|j|j|j���d���*S))rrr4)rrr�model_json_schema)�.0r?s  r�26<listcomp>z+ToolRegistry.list_tools.<locals>.<listcomp>;sN��27�28�29��	�	�#�/�"�4�F�F�H�H�
�
�30�31�32r )r,�valuesr-s r�33list_toolszToolRegistry.list_tools:s3��34�35���*�*�,�,�
36�37�38�	39r N)r!r"r#r$r.r%rArrrDrrrrKrr rr)r)s�������5�5�*�*�*��S��s�����2%�S�%�X�d�^�%�%�%�%�40�D��c�3�h��0�41�42�43�44�45�46r r))�typingrrrrrr�pydanticr	r47rrr
r2�devops_copilot.utils.loggerrrr)�registryrr r�<module>rPs���<�<�<�<�<�<�<�<�<�<�<�<�<�<�<�<�N�N�N�N�N�N�N�N�N�N�N�N�N�N�����.�.�.�.�.�.�:�:�:�:�:�9�:�:�:�$*48�*49�*50�*51�*52�*53�*54�*55�Z�<�>�>���r