ó
    ±"³j%  ã                  ó  • 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	J
r
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JrJr  S SKJr  SSKJr  SSKJ r   \	(       a  S SK!J"r"J#r#  \" SS9 " S S\ \   5      5       r$g)é    )Úannotations)Ú	AwaitableÚCallable)Ú	dataclass)Údatetime)ÚTYPE_CHECKINGÚAnyÚLiteral)Ú
deprecated)ÚPydanticAIDeprecationWarning)Ú	UserError)ÚKnownModelNameÚModel)ÚXSearchTool)Ú
AgentDepsTÚ
RunContextÚTool)ÚAbstractToolseté   )Úcheck_deprecated_fallback_model)ÚNativeOrLocalTool)ÚXSearchFallbackModelÚXSearchNativeToolF)Úinitc                  ó¨  ^ • \ rS rSr% SrS\S'    S\S'    S\S'    S\S	'    S\S
'    S\S'    S\S'    S\S'    SrS\S'    SSSSSSSSSSSSSSS.                             S#S jjrS$U 4S jjr\	\
" S\S9S%S j5       5       r\R                  \
" S\S9S&S j5       5       rS'S jrS(S jrS)S jrS*S jrS+S  jrS,S! jrS"rU =r$ )-ÚXSearché   u…  X (Twitter) search capability.

On xAI models, uses the native X search directly with no extra configuration.

On non-xAI models, you must explicitly set `fallback_subagent_model` to an xAI model
(e.g. `'xai:grok-4.3'`) to enable a subagent-based fallback.
There is no default subagent model â€” attempting to use `XSearch` on a non-xAI
model without `fallback_subagent_model` will error.
r   Úfallback_subagent_modelúlist[str] | NoneÚallowed_x_handlesÚexcluded_x_handlesúdatetime | NoneÚ	from_dateÚto_dateúbool | NoneÚenable_image_understandingÚenable_video_understandingÚinclude_outputÚx_searchú
str | NoneÚidTNF)ÚnativeÚlocalr   r    r!   r#   r$   r&   r'   r(   r+   ÚdescriptionÚdefer_loadingÚfallback_modelc               ó  • X°l         XÀl        XÐl        Xl        X l        [        [        U 5      R                  US LUS LS9  Ub  UOUU l        X@l	        XPl
        X`l        Xpl        X€l        X�l        X l        U R!                  5         g )N)Úfallback_subagent_model_passedÚfallback_model_passed)r+   r.   r/   r,   r-   r   ÚtypeÚ__name__r   r    r!   r#   r$   r&   r'   r(   Ú__post_init__)Úselfr,   r-   r   r    r!   r#   r$   r&   r'   r(   r+   r.   r/   r0   s                  Ú^/home/mande/repo/quber/.venv/lib/python3.13/site-packages/pydantic_ai/capabilities/x_search.pyÚ__init__ÚXSearch.__init__X   s‹   € ð: ŒØ&ÔØ*ÔØŒØŒ
Ü'Ü�‹J×ÑØ+BÈ$Ð+NØ"0¸Ð"<ò	
ð
 :HÑ9S¡~ÐYpˆÔ$Ø!2ÔØ"4ÔØ"ŒØŒØ*DÔ'Ø*DÔ'Ø,ÔØ×ÑÕó    c                ól   >• U R                   b  U R                  b  [        S5      e[        TU ]  5         g )Nu¤   XSearch: cannot specify both `fallback_subagent_model` and `local` â€” use `fallback_subagent_model` for the default subagent fallback, or `local` for a custom tool)r   r-   r   Úsuperr6   )r7   Ú	__class__s    €r8   r6   ÚXSearch.__post_init__‰   s:   ø€ ð ×'Ñ'Ñ3¸¿
¹
Ñ8NÜðpóð ô 	‰ÑÕr;   zF`fallback_model` is deprecated; use `fallback_subagent_model` instead.)Úcategoryc                ó   • U R                   $ )zkDeprecated alias for [`fallback_subagent_model`][pydantic_ai.capabilities.XSearch.fallback_subagent_model].©r   ©r7   s    r8   r0   ÚXSearch.fallback_model™   s   € ð ×+Ñ+Ð+r;   c                ó   • Xl         g ©NrB   )r7   Úvalues     r8   r0   rD   ¡   s
   € ð
 (-Õ$r;   c                ó’  • 0 nU R                   b  U R                   US'   U R                  b  U R                  US'   U R                  b  U R                  US'   U R                  b  U R                  US'   U R                  b  U R                  US'   U R
                  b  U R
                  US'   U R                  b  U R                  US'   U$ )z+Collect non-None XSearchTool config fields.r    r!   r#   r$   r&   r'   r(   )r    r!   r#   r$   r&   r'   r(   )r7   Úkwargss     r8   Ú_xsearch_kwargsÚXSearch._xsearch_kwargs¨   sÍ   € à!#ˆØ×!Ñ!Ñ-Ø*.×*@Ñ*@ˆFÐ&Ñ'Ø×"Ñ"Ñ.Ø+/×+BÑ+BˆFÐ'Ñ(Ø�>‰>Ñ%Ø"&§.¡.ˆF�;ÑØ�<‰<Ñ#Ø $§¡ˆF�9ÑØ×*Ñ*Ñ6Ø37×3RÑ3RˆFÐ/Ñ0Ø×*Ñ*Ñ6Ø37×3RÑ3RˆFÐ/Ñ0Ø×ÑÑ*Ø'+×':Ñ':ˆFÐ#Ñ$Øˆr;   c                ó4   • [        S0 U R                  5       D6$ )N© )r   rJ   rC   s    r8   Ú_default_nativeÚXSearch._default_native»   s   € ÜÑ4˜T×1Ñ1Ó3Ñ4Ð4r;   c                ó"   • [         R                  $ rF   )r   ÚkindrC   s    r8   Ú_native_unique_idÚXSearch._native_unique_id¾   s   € Ü×ÑÐr;   c                óh   • U R                   c  g SSKJn  U" U R                   U R                  5       S9$ )Nr   )Úx_search_tool)ÚmodelÚnative_tool)r   Ú!pydantic_ai.common_tools.x_searchrU   Ú_resolved_native)r7   rU   s     r8   Ú_default_localÚXSearch._default_localÁ   s0   € Ø×'Ñ'Ñ/ØÝCá 4×#?Ñ#?ÈT×MbÑMbÓMdÑeÐer;   c                ód   • U R                   b  gU R                  S L=(       d    U R                  S L$ )NF)r   r    r!   rC   s    r8   Ú_requires_nativeÚXSearch._requires_nativeÈ   s5   € ð ×'Ñ'Ñ3ØØ×%Ñ%¨TÐ1×X°T×5LÑ5LÐTXÐ5XÐXr;   c                óJ   • U R                  [        U R                  5       5      $ )zNGet the XSearchTool for the fallback, with capability-level overrides applied.)Ú_resolve_native_with_overridesr   rJ   rC   s    r8   rY   ÚXSearch._resolved_nativeÐ   s   € à×2Ñ2´;À×@TÑ@TÓ@VÓWÐWr;   )r    r/   r.   r&   r'   r!   r   r#   r+   r(   r-   r,   r$   )r,   zkXSearchTool | Callable[[RunContext[AgentDepsT]], Awaitable[XSearchTool | None] | XSearchTool | None] | boolr-   z=Tool[AgentDepsT] | Callable[..., Any] | Literal[False] | Noner   ú�Model | KnownModelName | str | Callable[[RunContext[AgentDepsT]], Awaitable[Model | KnownModelName | str] | Model | KnownModelName | str] | Noner    r   r!   r   r#   r"   r$   r"   r&   r%   r'   r%   r(   r%   r+   r*   r.   r*   r/   Úboolr0   rb   ÚreturnÚNone)rd   re   )rd   r   )rG   r   rd   re   )rd   zdict[str, Any])rd   r   )rd   Ústr)rd   z5Tool[AgentDepsT] | AbstractToolset[AgentDepsT] | None)rd   rc   )rd   zXSearchNativeTool[AgentDepsT])r5   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__r+   r9   r6   Úpropertyr   r   r0   ÚsetterrJ   rN   rR   rZ   r]   rY   Ú__static_attributes__Ú__classcell__)r>   s   @r8   r   r      s¾  ø‡ ñð 2Ó1ð	ð (Ó'ðð )Ó(ðð ÓØUàÓØVà +Ó+Øgà +Ó+ØiàÓðð  €Bˆ
Óðð ØOSð
 Ø.2Ø/3Ø%)Ø#'Ø26Ø26Ø&*Ø#Ø"&Ø#ð ñ7/ðð/ð Mð/ð"ð/ð ,ð/ð -ð/ð #ð/ð !ð/ð  %0ð!/ð" %0ð#/ð$ $ð%/ð& ð'/ð(  ð)/ð* ð+/ð.ð//ð8 
õ9/÷b ð  ÙØPÐ[wñó,óó ð,ð ×ÑÙØPÐ[wñó-óó ð-ôô&5ô ôfôY÷Xò Xr;   r   N)%Ú
__future__r   Úcollections.abcr   r   Údataclassesr   r   Útypingr   r	   r
   Útyping_extensionsr   Úpydantic_ai._warningsr   Úpydantic_ai.exceptionsr   Úpydantic_ai.modelsr   r   Úpydantic_ai.native_toolsr   Úpydantic_ai.toolsr   r   r   Úpydantic_ai.toolsetsr   Ú_deprecated_fallback_modelr   Únative_or_localr   rX   r   r   r   rM   r;   r8   Ú<module>r}      sg   ðÝ "ç /Ý !Ý ß .Ñ .å (å >Ý ,ß 4Ý 0ß :Ñ :Ý 0å GÝ .æßYñ �ÑôyXÐ 
Ñ+ó yXó ñyXr;   