ó
    ±"³j'	  ã                  óš   • S SK Jr  S SKJr  S SKJr  S SKJr  S SKJ	r	  S SK
JrJr  S SKJr  S SKJr  S	S
KJr  \ " S S\\	   5      5       rg)é    )Úannotations)Ú	dataclass)ÚAny)ÚCapabilitySpec)Ú
AgentDepsT)ÚAbstractToolsetÚAgentToolset)ÚDynamicToolset)ÚPrefixedToolseté   )ÚWrapperCapabilityc                  ód   ^ • \ rS rSr% SrS\S'   \S	S j5       r\S
S j5       rSU 4S jjr	Sr
U =r$ )ÚPrefixToolsé   añ  A capability that wraps another capability and prefixes its tool names.

Only the wrapped capability's tools are prefixed; other agent tools are unaffected.

```python
from pydantic_ai import Agent
from pydantic_ai.capabilities import PrefixTools, Toolset
from pydantic_ai.toolsets import FunctionToolset

toolset = FunctionToolset()

agent = Agent(
    'openai:gpt-5',
    capabilities=[
        PrefixTools(
            wrapped=Toolset(toolset),
            prefix='ns',
        ),
    ],
)
```
ÚstrÚprefixc                ó   • g)Nr   © )Úclss    Úb/home/mande/repo/quber/.venv/lib/python3.13/site-packages/pydantic_ai/capabilities/prefix_tools.pyÚget_serialization_nameÚ"PrefixTools.get_serialization_name*   s   € àó    c               ó*   • SSK Jn  U" U5      nU " XAS9$ )zøCreate from spec with a nested capability specification.

Args:
    prefix: The prefix to add to tool names (e.g. `'mcp'` turns `'search'` into `'mcp_search'`).
    capability: A capability spec (same format as entries in the `capabilities` list).
r   )Ú load_capability_from_nested_spec)Úwrappedr   )Úpydantic_ai.agent.specr   )r   r   Ú
capabilityr   r   s        r   Ú	from_specÚPrefixTools.from_spec.   s   € õ 	Lá2°:Ó>ˆÙ˜7Ñ2Ð2r   c                ó¾   >• [         TU ]  5       nUc  g [        U[        5      (       a  [	        XR
                  S9$ [	        [        [           " US9U R
                  S9$ )N)r   )Útoolset_func)ÚsuperÚget_toolsetÚ
isinstancer   r   r   r
   r   )ÚselfÚtoolsetÚ	__class__s     €r   r$   ÚPrefixTools.get_toolset;   sR   ø€ Ü‘'Ñ%Ó'ˆØ‰?ØÜ�gœ×/Ñ/ä" 7·;±;Ñ?Ð?äœ~¬jÒ9ÀwÑOÐX\×XcÑXcÑdÐdr   r   )Úreturnz
str | None)r   r   r   r   r*   zPrefixTools[Any])r*   zAgentToolset[AgentDepsT] | None)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__Úclassmethodr   r   r$   Ú__static_attributes__Ú__classcell__)r(   s   @r   r   r      sA   ø‡ ñð. ƒKàóó ðð ó
3ó ð
3÷eõ er   r   N)Ú
__future__r   Údataclassesr   Útypingr   Úpydantic_ai._specr   Úpydantic_ai.toolsr   Úpydantic_ai.toolsetsr   r	   Úpydantic_ai.toolsets._dynamicr
   Úpydantic_ai.toolsets.prefixedr   Úwrapperr   r   r   r   r   Ú<module>r=      sD   ðÝ "å !Ý å ,Ý (ß >Ý 8Ý 9å &ð ô3eÐ# JÑ/ó 3eó ñ3er   