ó
    ±"³j  ã                  óò   • S SK Jr  S SKJrJrJr  S SKJrJr  S SK	J
r
Jr  SSKJrJr  SSKJr  SS	KJrJr  SS
KJr  \
(       a  SSKJr  SSKJr  \ " S S\\   5      5       rSS jrSS jr      SS jrg)é    )Úannotations)ÚCallableÚIterableÚSequence)Ú	dataclassÚreplace)ÚTYPE_CHECKINGÚAnyé   )Ú
AgentDepsTÚ
RunContext)ÚInstructionParté   )ÚAbstractToolsetÚToolsetTool)ÚWrapperToolset)ÚAbstractCapability)ÚToolDefinitionc                  óX   ^ • \ rS rSr% SrS\S'   S	S jr    S
U 4S jjrSS jrSr	U =r
$ )ÚCapabilityOwnedToolseté   z;Binds a contributed toolset to the capability that owns it.úAbstractCapability[AgentDepsT]Ú
capabilityc           
   ƒ  ó‚  #   • U R                   R                  U5      I S h  v•N n[        XR                  5      nU R                  R                  SL n0 nUR                  5        HR  u  pgUR                  n[        U[        UUR                  b  UR                  OUU=(       d    UR                  S9S9XV'   MT     U$  N›7f)NT)Úcapability_idÚdefer_loading)Útool_def)	ÚwrappedÚ	get_toolsÚresolve_capability_idr   r   Úitemsr   r   r   )	ÚselfÚctxÚtoolsr   r   ÚresultÚnameÚtoolr   s	            Úc/home/mande/repo/quber/.venv/lib/python3.13/site-packages/pydantic_ai/toolsets/_capability_owned.pyr   Ú CapabilityOwnedToolset.get_tools   s©   é € Ø—l‘l×,Ñ,¨SÓ1×1ˆÜ-¨c·?±?ÓCˆØŸ™×5Ñ5¸Ð=ˆØ57ˆØŸ+™+ž-‰JˆDØ—}‘}ˆHÜ"ØÜ ØØ<D×<RÑ<RÑ<^ (×"8Ò"8ÐdqØ"/×"I°8×3IÑ3IññˆF‹Lñ (ð ˆñ 2ùs   ‚B?¡B=¢BB?c              ƒ  ór   >#   • U R                   R                  SL a  g [        TU ]  U5      I S h  v•N $  N7f)NT)r   r   ÚsuperÚget_instructions)r"   r#   Ú	__class__s     €r(   r,   Ú'CapabilityOwnedToolset.get_instructions(   s3   øé € ð �?‰?×(Ñ(¨DÒ0ØÜ‘WÑ-¨cÓ2×2Ð2Ñ2ùs   ƒ-7°5±7c                óJ   • U" U 5        U R                   R                  U5        g )N)r   Úapply)r"   Úvisitors     r(   r0   ÚCapabilityOwnedToolset.apply/   s   € Ù�ŒØ�‰×Ñ˜7Õ#ó    © )r#   úRunContext[AgentDepsT]Úreturnz"dict[str, ToolsetTool[AgentDepsT]])r#   r5   r6   z>str | InstructionPart | Sequence[str | InstructionPart] | None)r1   z-Callable[[AbstractToolset[AgentDepsT]], None]r6   ÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__r   r,   r0   Ú__static_attributes__Ú__classcell__)r-   s   @r(   r   r      s0   ø‡ áEà.Ó.ôð"3Ø)ð3à	G÷3÷$ò $r3   r   c                óx   • U R                   R                  5        H  u  p#X1L d  M  Us  $    [        SU< S35      e)zôRecover the id a capability was registered under in `ctx.capabilities` for the current run.

A capability with no explicit `id` is registered under a derived id (see
`_build_run_capabilities`), so the resolved id only exists as a registry key.
zCapability zI is not registered in this run; this is an internal error in Pydantic AI.)Úcapabilitiesr!   ÚRuntimeError)r#   r   r   Úregistered_capabilitys       r(   r    r    4   sI   € ð 14×0@Ñ0@×0FÑ0FÖ0HÑ,ˆØ Ô.Ø Ò ñ 1Iô Ø
�j‘^Ð#lÐmóð r3   c                ó˜   • UR                   =nSL=(       a4    U R                  R                  U5      =nSL=(       a    UR                  SL $ )uW  Whether an on-demand capability decides when this tool becomes available.

Such a tool is hidden until its owning capability loads, and it is never searchable: no query
should surface it, because the model isn't meant to reach it by asking. That's the line between
the two things a deferred tool can be â€” hidden until something reveals it, which every deferred
tool is, and a member of the searchable corpus, which only the ungated ones are. Which side a
tool falls on depends on how the run is configured, not on the model serving it, so it's settled
here rather than in `Model.prepare_request`.
NT)r   rA   Úgetr   )r#   r   r   Úcaps       r(   Úis_gated_by_deferred_capabilityrG   B   sR   € ð #×0Ñ0Ð	0ˆ¸Ð=÷ 	&Ø×$Ñ$×(Ñ(¨Ó7Ð7ˆSÀÐD÷	&à×Ñ Ð%ðr3   c                óÚ   • 0 nU Hb  nUR                   nUb  X@R                  ;  a  M#  U R                  R                  U5      nUc  MC  UR                  SL d  MT  X2UR
                  '   Md     U$ )z^Reconstruct definitions for histories serialized before load returns carried tool definitions.T)r   Úloaded_capability_idsrA   rE   r   r&   )r#   Ú	tool_defsr%   r   r   r   s         r(   Ú*tool_defs_from_pre_definition_load_returnsrK   S   sn   € ð )+€FÛˆØ ×.Ñ.ˆØÑ  M×9RÑ9RÓ$RÙØ×%Ñ%×)Ñ)¨-Ó8ˆ
ØÓ! j×&>Ñ&>À$Ô&FØ$,�8—=‘=Ó!ñ ð €Mr3   N)r#   r5   r   r   r6   Ústr)r#   úRunContext[Any]r   r   r6   Úbool)r#   rM   rJ   zIterable[ToolDefinition]r6   zdict[str, ToolDefinition])Ú
__future__r   Úcollections.abcr   r   r   Údataclassesr   r   Útypingr	   r
   Ú_run_contextr   r   Úmessagesr   Úabstractr   r   Úwrapperr   rA   r   r$   r   r   r    rG   rK   r4   r3   r(   Ú<module>rW      sq   ðÝ "ç 8Ñ 8ß *ß %ç 1Ý &ß 2Ý #æÝ1Ý&ð ô$˜^¨JÑ7ó $ó ð$ôDôð"Ø	ðØ%=ðàõr3   