ó
    ±"³j�  ã                  ó®   • S SK Jr  S SKJr  S SKJr  S SKJr  S SKrS SK	J
r
  S SKJrJr  SS	KJr  \R                   " \
5      r\ " S
 S\\   5      5       rg)é    )Úannotations)ÚSequence)Ú	dataclass)ÚAnyN)ÚAbstractNativeTool)Ú
AgentDepsTÚAgentNativeToolé   )ÚAbstractCapabilityc                  óF   • \ rS rSr% SrS\S'   S	S jr\S
SS jj5       rSr	g)Ú
NativeToolé   u'  A capability that registers a native tool with the agent.

Wraps a single [`AgentNativeTool`][pydantic_ai.tools.AgentNativeTool] â€” either a static
[`AbstractNativeTool`][pydantic_ai.native_tools.AbstractNativeTool] instance or a callable
that dynamically produces one.

Equivalent to passing the tool through `Agent(capabilities=[NativeTool(my_tool)])`. For
provider-adaptive use (with a local fallback), see [`NativeOrLocalTool`][pydantic_ai.capabilities.NativeOrLocalTool]
or its subclasses like [`WebSearch`][pydantic_ai.capabilities.WebSearch].
zAgentNativeTool[AgentDepsT]Útoolc                ó   • U R                   /$ ©N©r   )Úselfs    Úa/home/mande/repo/quber/.venv/lib/python3.13/site-packages/pydantic_ai/capabilities/native_tool.pyÚget_native_toolsÚNativeTool.get_native_tools    s   € Ø—	‘	ˆ{Ðó    Nc                ó�   • Ub  [         R                  U5      nO(U(       a  [         R                  U5      nO[        S5      eU " US9$ )zªCreate from spec.

Supports two YAML forms:

- Flat: `{NativeTool: {kind: web_search, search_context_size: high}}`
- Explicit: `{NativeTool: {tool: {kind: web_search}}}`
zŠ`NativeTool.from_spec()` requires either a `tool` argument or keyword arguments specifying the native tool type (e.g. `kind="web_search"`)r   )Ú_NATIVE_TOOL_ADAPTERÚvalidate_pythonÚ	TypeError)Úclsr   ÚkwargsÚ	validateds       r   Ú	from_specÚNativeTool.from_spec#   sM   € ð ÑÜ,×<Ñ<¸TÓB‰IÞÜ,×<Ñ<¸VÓD‰IäðNóð ñ ˜	Ñ"Ð"r   © )Úreturnz%Sequence[AgentNativeTool[AgentDepsT]]r   )r   zAbstractNativeTool | Noner   r   r"   zNativeTool[Any])
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__r   Úclassmethodr   Ú__static_attributes__r!   r   r   r   r      s(   ‡ ñ	ð &Ó%ôð õ#ó ó#r   r   )Ú
__future__r   Úcollections.abcr   Údataclassesr   Útypingr   ÚpydanticÚpydantic_ai.native_toolsr   Úpydantic_ai.toolsr   r	   Úabstractr   ÚTypeAdapterr   r   r!   r   r   Ú<module>r4      sP   ðÝ "å $Ý !Ý ã å 7ß 9å (à×+Ò+Ð,>Ó?Ð ð ô##Ð# JÑ/ó ##ó ñ##r   