o
    i                     @  sV   d dl mZ d dlmZ d dlmZ erd dlmZ dZ	 eddG dd	 d	Z	d
S )    )annotations)	dataclass)TYPE_CHECKING)Self   T)frozenc                   @  sn   e Zd ZU dZded< ded< ded< ded< ded< ded< edddZdddZdddZdddZ	dS )InstrumentationNameszMConfiguration for instrumentation span names and attributes based on version.stragent_run_span_nameagent_name_attrtool_span_nametool_arguments_attrtool_result_attroutput_tool_span_nameversionintreturnr   c                 C  s0   |dkr| dddddddS | d	d
dddddS )zCreate instrumentation configuration for a specific version.

        Args:
            version: The instrumentation version (1, 2, or 3+)

        Returns:
            InstrumentationConfig instance with version-appropriate settings
        r   z	agent run
agent_namezrunning tooltool_argumentstool_responsezrunning output function)r
   r   r   r   r   r   invoke_agentzgen_ai.agent.nameexecute_toolzgen_ai.tool.call.argumentszgen_ai.tool.call.result )clsr   r   r   b/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/pydantic_ai/_instrumentation.pyfor_version   s"   
	z InstrumentationNames.for_versionr   c                 C     | j dkr
d| S | j S )zGet the formatted agent span name.

        Args:
            agent_name: Name of the agent being executed

        Returns:
            Formatted span name
        r   zinvoke_agent )r
   )selfr   r   r   r   get_agent_run_span_name:      
	
z,InstrumentationNames.get_agent_run_span_name	tool_namec                 C  r   )zGet the formatted tool span name.

        Args:
            tool_name: Name of the tool being executed

        Returns:
            Formatted span name
        r   execute_tool )r   r   r    r   r   r   get_tool_span_nameG   r   z'InstrumentationNames.get_tool_span_namec                 C  r   )zGet the formatted output tool span name.

        Args:
            tool_name: Name of the tool being executed

        Returns:
            Formatted span name
        r   r!   )r   r"   r   r   r   get_output_tool_span_nameT   r   z.InstrumentationNames.get_output_tool_span_nameN)r   r   r   r   )r   r	   r   r	   )r    r	   r   r	   )
__name__
__module____qualname____doc____annotations__classmethodr   r   r#   r$   r   r   r   r   r      s   
 

r   N)

__future__r   dataclassesr   typingr   typing_extensionsr   DEFAULT_INSTRUMENTATION_VERSIONr   r   r   r   r   <module>   s    