ó
    ±"³jS  ã                  ó,  • 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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  S SKJr  S SKJrJr  S SKJ r   Sr!Sr"Sr#\" \	5      r$\$RK                  5       r&S\&S'   \ " S S\ \   5      5       r'g)é    )Úannotations)Ú	dataclass)ÚAny)ÚTypeAdapter)ÚLoadCapabilityArgsÚLoadCapabilityReturn)Úresolve_sourced_instructions)Ú
AgentDepsTÚ
RunContext)Ú
ModelRetryÚ	UserError)ÚInstructionPartÚ
ToolReturn)ÚToolDefinition)ÚCapabilityOwnedToolset)Úcollect_toolset_instructions)ÚAbstractToolsetÚToolsetTool)ÚWrapperToolsetÚload_capabilityz–Load a listed capability whenever it is plausibly relevant to the task. Loading makes the capability instructions and any tools it provides available.z”Capability {capability_id!r} is already active. Use its existing instructions and any tools it provides; do not call `load_capability` for it again.r   Útitlec                  ól   • \ rS rSrSrS	S jr          S
S jr      SS jr      SS jrSr	g)ÚDeferredCapabilityLoaderToolseté"   z2Adds the framework-managed `load_capability` tool.c              ƒ  ó<  #   • U R                   R                  U5      I S h  v•N n[        U;   a  [        S[         S35      e[	        [        [
        [        SS9n[        U UUR                  [        R                  S9n[        U0nUR                  U5        U$  Nx7f)NzTool name 'zS' is reserved for deferred capability loading. Rename your tool to avoid conflicts.úcapability-load)ÚnameÚdescriptionÚparameters_json_schemaÚ	tool_kind)ÚtoolsetÚtool_defÚmax_retriesÚargs_validator)ÚwrappedÚ	get_toolsÚLOAD_CAPABILITY_TOOL_NAMEr   r   Ú LOAD_CAPABILITY_TOOL_DESCRIPTIONÚ_LOAD_CAPABILITY_SCHEMAr   r#   Ú_load_capability_args_taÚ	validatorÚupdate)ÚselfÚctxÚ	all_toolsÚload_tool_defÚ	load_toolÚresults         Úm/home/mande/repo/quber/.venv/lib/python3.13/site-packages/pydantic_ai/toolsets/_deferred_capability_loader.pyr&   Ú)DeferredCapabilityLoaderToolset.get_tools&   s¢   é € ØŸ,™,×0Ñ0°Ó5×5ˆ	ä$¨	Ó1ÜØÔ7Ð8ð 97ð 7óð ô
 'Ü*Ü8Ü#:Ø'ñ	
ˆô  ØØ"ØŸ™Ü3×=Ñ=ñ	
ˆ	ô 7PÐQZÐ5[ˆØ�‰�iÔ Øˆñ1 6ùs   ‚B¡B¢A9Bc              ƒ  óÀ   #   • UR                   R                  S:X  a  U R                  X#5      I S h  v•N $ U R                  R	                  XX45      I S h  v•N $  N( N7f)Nr   )r"   r    Ú_load_capabilityr%   Ú	call_tool)r-   r   Ú	tool_argsr.   Útools        r3   r7   Ú)DeferredCapabilityLoaderToolset.call_toolA   sP   é € ð �=‰=×"Ñ"Ð&7Ó7Ø×.Ñ.¨yÓ>×>Ð>Ø—\‘\×+Ñ+¨D¸SÓG×GÐGñ ?ÙGùs!   ‚/A±A²#AÁAÁAÁAc              ƒ  ó$  ^#   • US   mUR                   R                  T5      nUc  [        ST< S35      eTUR                  ;   a  [        [        R                  TS95      e[        UR                  5       U5      I S h  v•N nUR                  U R                  TU5      I S h  v•N 5        [        R                  " U5      nUb  SU0O0 n[        U4S jUR                  R                  5        5       5      n[        Xg=(       d    S S9$  N‹ Nh7f)NÚidzNo capability found with id Ú.©Úcapability_idÚinstructionsc              3  óP   >#   • U  H  u  pUR                   T:X  d  M  Uv •  M     g 7f©Nr>   )Ú.0r   r"   r?   s      €r3   Ú	<genexpr>ÚCDeferredCapabilityLoaderToolset._load_capability.<locals>.<genexpr>a   s%   øé € ÐoÒ2C¡ Àx×G]ÑG]ÐanÑGn—t‘tÒ2Cùs   ƒ&�	&)Úreturn_valueÚtools)ÚcapabilitiesÚgetr   Úactive_capability_idsÚ/LOAD_CAPABILITY_ALREADY_ACTIVE_MESSAGE_TEMPLATEÚformatr	   Ú_collect_instructionsÚextendÚ#_collect_owned_toolset_instructionsr   ÚjoinÚsortedrG   Úitemsr   )	r-   r8   r.   Ú
capabilityÚpartsÚinstructions_textr2   rG   r?   s	           @r3   r6   Ú0DeferredCapabilityLoaderToolset._load_capabilityH   s  øé € ð " $™ˆØ×%Ñ%×)Ñ)¨-Ó8ˆ
ØÑÜÐ;¸MÑ;LÈAÐNÓOÐOØ˜C×5Ñ5Ó5ÜÔL×SÑSÐboÐSÐpÓqÐqô 3Ø×,Ñ,Ó.Øó
÷ 
ˆð
 	�‰˜4×CÑCÀMÐSVÓW×WÔXä+×0Ò0°Ó7ÐàN_ÑNk¨Ð8IÑ'JÐqsˆÜÔo°#·)±)·/±/Ô2CÓoÓoˆÜ v·]¸dÑCÐCñ
ñ
 Xùs%   ƒA=DÂ DÂ$DÂ%DÂ&A'DÄDc              ƒ  óÂ   ^^^#   • / mSUUU4S jjnU R                  U5        / nT H0  nUR                  [        UR                  T5      I S h  v•N 5        M2     U$  N7f)Nc                óŽ   >• [        U [        5      (       a/  TR                  T   U R                  L a  TR	                  U 5        g g g rB   )Ú
isinstancer   rH   rS   Úappend)Útsr?   r.   Úowneds    €€€r3   ÚcollectÚTDeferredCapabilityLoaderToolset._collect_owned_toolset_instructions.<locals>.collecti   s?   ø€ Ü˜"Ô4×5Ñ5¸#×:JÑ:JÈ=Ñ:YÐ]_×]jÑ]jÒ:jØ—‘˜RÕ ð ;kÐ5ó    )r[   zAbstractToolset[AgentDepsT]ÚreturnÚNone)ÚapplyrN   r   r%   )r-   r?   r.   r]   rT   r[   r\   s    ``   @r3   rO   ÚCDeferredCapabilityLoaderToolset._collect_owned_toolset_instructionsd   sZ   úé € ð ;=ˆ÷	!ñ 	!ð 	�
‰
�7Ôà')ˆÛˆBØ�L‰LÔ;¸B¿J¹JÈÓL×LÖMñ àˆñ Mùs   …A	AÁA
ÁA© N)r.   úRunContext[AgentDepsT]r`   z"dict[str, ToolsetTool[AgentDepsT]])
r   Ústrr8   údict[str, Any]r.   re   r9   zToolsetTool[AgentDepsT]r`   r   )r8   rg   r.   re   r`   z ToolReturn[LoadCapabilityReturn])r?   rf   r.   re   r`   zlist[InstructionPart])
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r&   r7   r6   rO   Ú__static_attributes__rd   r_   r3   r   r   "   s{   † á<ôð6HØðHØ$2ðHØ9OðHØWnðHà	ôHðDØ'ðDØ.DðDà	)ôDð8Ø ðØ'=ðà	÷r_   r   N)(Ú
__future__r   Údataclassesr   Útypingr   Úpydanticr   Ú"pydantic_ai._deferred_capabilitiesr   r   Úpydantic_ai._instructionsr	   Úpydantic_ai._run_contextr
   r   Úpydantic_ai.exceptionsr   r   Úpydantic_ai.messagesr   r   Úpydantic_ai.toolsr   Ú&pydantic_ai.toolsets._capability_ownedr   Ú,pydantic_ai.toolsets._instruction_collectionr   Úpydantic_ai.toolsets.abstractr   r   Úpydantic_ai.toolsets.wrapperr   r'   r(   rK   r*   Újson_schemar)   r   rd   r_   r3   Ú<module>r}      s–   ðÝ "å !Ý å  ç WÝ Bß ;ß 8ß <Ý ,Ý IÝ Uß FÝ 7à-Ð ðVð !ð
kð 0ñ
 'Ð'9Ó:Ð Ø2×>Ñ>Ó@Ð Ø#7Ð ˜Ñ  ð ôO n°ZÑ&@ó Oó ñOr_   