ó
    ±"³jõñ  ã                  óØ  • S r SSKJr  SSKrSSKJrJrJrJr  SSK	J
r
Jr  SSKJr  SSKJrJrJrJrJrJr  SSK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 J!r!J"r"J#r#  SSK$J%r%J&r&J'r'J(r(J)r)  SSK*J+r+J,r,  SSK-J.r.J/r/J0r0J1r1J2r2J3r3J4r4J5r5J6r6J7r7J8r8J9r9J:r:J;r;  \(       a  SSK<J=r=  SSK>J?r?  SSK@JArA  \" S\S\4   S9rB\" S\ SS9rC " S S\\D5      rE\
 " S S\\B   5      5       rF\
 " S S\F\B   5      5       rG\
 " S  S!\F\B   5      5       rHSsS" jrI " S# S$\5      rJ " S% S&\5      rK " S' S(\5      rL " S) S*\5      rM " S+ S,\5      rN " S- S.\5      rO " S/ S0\5      rP " S1 S2\5      rQ " S3 S4\5      rR " S5 S6\\\C   5      rS " S7 S8\5      rT " S9 S:\5      rU " S; S<\5      rV " S= S>\5      rW " S? S@\5      rX " SA SB\5      rY " SC SD\5      rZ " SE SF\5      r[ " SG SH\5      r\ " SI SJ\5      r] " SK SL\5      r^ " SM SN\5      r_ " SO SP\5      r` " SQ SR\5      ra " SS ST\5      rb " SU SV\5      rc " SW SX\5      rd " SY SZ\5      re " S[ S\\5      rf " S] S^\5      rg " S_ S`\5      rh " Sa Sb\5      ri " Sc Sd\5      rjStSe jrkSuSf jrlSvSg jrmSSh.         SwSi jjrnSSSj.           SxSk jjro " Sl Sm\\%   5      rp\
" SnSo9 " Sp Sq\.\%   5      5       rq              SySr jrrg)zaA  Hooks capability for decorator-based hook registration.

Provides the [`Hooks`][pydantic_ai.capabilities.Hooks] class as an ergonomic
alternative to subclassing [`AbstractCapability`][pydantic_ai.capabilities.AbstractCapability]
for registering hook functions.

Hook functions are registered via the `hooks.on` namespace:

```python {test="skip" lint="skip"}
hooks = Hooks()

@hooks.on.before_model_request
async def log_request(ctx, request_context):
    print(f'Request: {request_context}')
    return request_context

agent = Agent('openai:gpt-5', capabilities=[hooks])
```
é    )ÚannotationsN)ÚAsyncIterableÚ	AwaitableÚCallableÚSequence)Ú	dataclassÚfield)Úcached_property)ÚTYPE_CHECKINGÚAnyÚGenericÚProtocolÚTypeVarÚoverload)ÚValidationError)Ú_utils)ÚPydanticAIDeprecationWarning)ÚAgentRunErrorÚ
ModelRetry)ÚAgentStreamEventÚCapabilityEventÚModelResponseÚToolCallPart)Ú
AgentDepsTÚDeferredToolRequestsÚDeferredToolResultsÚ
RunContextÚToolDefinitioné   )Úcollect_on_event_methodsÚmarked_listens_to)ÚAbstractCapabilityÚ	AgentNodeÚCapabilityOrderingÚ
NodeResultÚ	RawOutputÚRawToolArgsÚValidatedToolArgsÚWrapModelRequestHandlerÚWrapNodeRunHandlerÚWrapOutputProcessHandlerÚWrapOutputValidateHandlerÚWrapRunHandlerÚWrapToolExecuteHandlerÚWrapToolValidateHandler)ÚModelRequestContext)ÚOutputContext)ÚAgentRunResultÚ_FuncT.)ÚboundÚEventTT)r4   Úcontravariantc                  ó0   ^ • \ rS rSrSrSU 4S jjrSrU =r$ )ÚHookTimeoutErroréD   z;Raised when a hook function exceeds its configured timeout.c           	     ó`   >• Xl         X l        X0l        [        TU ]  SU< SU< SU S35        g )NzHook z
 function z timed out after Ús)Ú	hook_nameÚ	func_nameÚtimeoutÚsuperÚ__init__)Úselfr<   r=   r>   Ú	__class__s       €Ú[/home/mande/repo/quber/.venv/lib/python3.13/site-packages/pydantic_ai/capabilities/hooks.pyr@   ÚHookTimeoutError.__init__G   s8   ø€ Ø"ŒØ"ŒØŒÜ‰Ñ˜5 ¡¨Z¸	±}ÐDUÐV]ÐU^Ð^_Ð`Õaó    )r=   r<   r>   )r<   Ústrr=   rF   r>   Úfloat)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r@   Ú__static_attributes__Ú__classcell__©rB   s   @rC   r8   r8   D   s   ø† ÙE÷bõ brE   r8   c                  ó2   • \ rS rSr% SrS\S'   SrS\S'   Srg)	Ú
_HookEntryéQ   z1A registered hook function with optional timeout.r3   ÚfuncNúfloat | Noner>   © )rH   rI   rJ   rK   rL   Ú__annotations__r>   rM   rU   rE   rC   rQ   rQ   Q   s   ‡ á;à
ƒLØ €Gˆ\Ö rE   rQ   c                  ó(   • \ rS rSr% SrSrS\S'   Srg)Ú_ToolHookEntryéY   zGA registered tool hook function with optional tools filter and timeout.Nzfrozenset[str] | NoneÚtoolsrU   )rH   rI   rJ   rK   rL   rZ   rV   rM   rU   rE   rC   rX   rX   Y   s   ‡ áQà#'€EÐ Ö'rE   rX   c                  ó(   • \ rS rSr% SrSrS\S'   Srg)Ú_EventHookEntryé`   z=A registered event observer with optional event-type filters.rU   z"tuple[type[AgentStreamEvent], ...]Úevent_typesN)rH   rI   rJ   rK   rL   r^   rV   rM   rU   rE   rC   r\   r\   `   s   ‡ áGà68€KÐ3Ö8rE   r\   c                ó”   • [        U [        5      (       + =(       d-    U R                  (       + =(       d    [        XR                  5      $ )zûWhether a registered `on_event` observer accepts `event`.

Shared by dispatch and by `listens_to`, so the answer to "will this callback run?" is decided in
one place: an entry without filters, or one written before filters existed, takes every event.
)Ú
isinstancer\   r^   )ÚentryÚevents     rC   Ú_event_entry_matchesrc   g   s3   € ô ˜%¤Ó1Ô1×r¸×9JÑ9JÔ5J×rÌjÐY^×`qÑ`qÓNrÐrrE   c                  ó"   • \ rS rSrSrSS jrSrg)ÚBeforeRunHookFuncév   zcProtocol for [`before_run`][pydantic_ai.capabilities.AbstractCapability.before_run] hook functions.c               ó   • g ©NrU   )rA   Úctxs     rC   Ú__call__ÚBeforeRunHookFunc.__call__x   s   € È3rE   rU   N)ri   úRunContext[Any]ÚreturnzNone | Awaitable[None]©rH   rI   rJ   rK   rL   rj   rM   rU   rE   rC   re   re   v   s   † ÙmßNrE   re   c                  ó"   • \ rS rSrSrSS jrSrg)ÚAfterRunHookFuncéz   zaProtocol for [`after_run`][pydantic_ai.capabilities.AbstractCapability.after_run] hook functions.c              ó   • g rh   rU   )rA   ri   Úresults      rC   rj   ÚAfterRunHookFunc.__call__|   s	   € ð  JMrE   rU   N)ri   rl   rs   úAgentRunResult[Any]rm   ú4AgentRunResult[Any] | Awaitable[AgentRunResult[Any]]rn   rU   rE   rC   rp   rp   z   s   † Ùk÷ MrE   rp   c                  ó"   • \ rS rSrSrSS jrSrg)ÚWrapRunHookFuncé~   z_Protocol for [`wrap_run`][pydantic_ai.capabilities.AbstractCapability.wrap_run] hook functions.c              ó   • g rh   rU   )rA   ri   Úhandlers      rC   rj   ÚWrapRunHookFunc.__call__€   s	   € ð  FIrE   rU   N)ri   rl   r{   r-   rm   rv   rn   rU   rE   rC   rx   rx   ~   s   † Ùi÷ IrE   rx   c                  ó"   • \ rS rSrSrSS jrSrg)ÚOnRunErrorHookFuncé‚   zgProtocol for [`on_run_error`][pydantic_ai.capabilities.AbstractCapability.on_run_error] hook functions.c              ó   • g rh   rU   )rA   ri   Úerrors      rC   rj   ÚOnRunErrorHookFunc.__call__„   s	   € ð  CFrE   rU   N)ri   rl   r�   ÚBaseExceptionrm   rv   rn   rU   rE   rC   r~   r~   ‚   s   † Ùq÷ FrE   r~   c                  ó"   • \ rS rSrSrSS jrSrg)ÚBeforeNodeRunHookFuncé†   zmProtocol for [`before_node_run`][pydantic_ai.capabilities.AbstractCapability.before_node_run] hook functions.c              ó   • g rh   rU   )rA   ri   Únodes      rC   rj   ÚBeforeNodeRunHookFunc.__call__ˆ   ó   € Ðx{rE   rU   N)ri   rl   rˆ   úAgentNode[Any]rm   z*AgentNode[Any] | Awaitable[AgentNode[Any]]rn   rU   rE   rC   r…   r…   †   s   † Ùwß{rE   r…   c                  ó"   • \ rS rSrSrSS jrSrg)ÚAfterNodeRunHookFuncéŠ   zkProtocol for [`after_node_run`][pydantic_ai.capabilities.AbstractCapability.after_node_run] hook functions.c              ó   • g rh   rU   )rA   ri   rˆ   rs   s       rC   rj   ÚAfterNodeRunHookFunc.__call__Œ   s	   € ð  TWrE   rU   N)ri   rl   rˆ   r‹   rs   zNodeResult[Any]rm   ú,NodeResult[Any] | Awaitable[NodeResult[Any]]rn   rU   rE   rC   r�   r�   Š   s   † Ùu÷ WrE   r�   c                  ó"   • \ rS rSrSrSS jrSrg)ÚWrapNodeRunHookFuncéŽ   ziProtocol for [`wrap_node_run`][pydantic_ai.capabilities.AbstractCapability.wrap_node_run] hook functions.c              ó   • g rh   rU   )rA   ri   rˆ   r{   s       rC   rj   ÚWrapNodeRunHookFunc.__call__�   s	   € ð  ]`rE   rU   N)ri   rl   rˆ   r‹   r{   zWrapNodeRunHandler[Any]rm   r‘   rn   rU   rE   rC   r“   r“   Ž   s   † Ùs÷ `rE   r“   c                  ó"   • \ rS rSrSrSS jrSrg)ÚOnNodeRunErrorHookFuncé’   zqProtocol for [`on_node_run_error`][pydantic_ai.capabilities.AbstractCapability.on_node_run_error] hook functions.c              ó   • g rh   rU   )rA   ri   rˆ   r�   s       rC   rj   ÚOnNodeRunErrorHookFunc.__call__”   ó	   € ð  MPrE   rU   N)ri   rl   rˆ   r‹   r�   Ú	Exceptionrm   r‘   rn   rU   rE   rC   r˜   r˜   ’   s   † Ù{÷ PrE   r˜   c                  ó.   • \ rS rSrSr      SS jrSrg)ÚWrapRunEventStreamHookFuncé–   zyProtocol for [`wrap_run_event_stream`][pydantic_ai.capabilities.AbstractCapability.wrap_run_event_stream] hook functions.c              ó   • g rh   rU   )rA   ri   Ústreams      rC   rj   Ú#WrapRunEventStreamHookFunc.__call__˜   s   € à*-rE   rU   N)ri   rl   r¢   úAsyncIterable[AgentStreamEvent]rm   r¤   rn   rU   rE   rC   rŸ   rŸ   –   s%   † ñ Dð.Ø"ð.Ø2Qð.à	(÷.rE   rŸ   c                  ó.   • \ rS rSrSr      SS jrSrg)ÚOnEventHookFuncéœ   z&Protocol for event observer functions.c               ó   • g rh   rU   )rA   ri   rb   s      rC   rj   ÚOnEventHookFunc.__call__ž   s   € àGJrE   rU   N)ri   rl   rb   r5   rm   z<None | AgentStreamEvent | Awaitable[None | AgentStreamEvent]rn   rU   rE   rC   r¦   r¦   œ   s&   † Ù0ðKØ"ðKØ+1ðKà	E÷KrE   r¦   c                  ó"   • \ rS rSrSrSS jrSrg)ÚBeforeModelRequestHookFuncé¢   zwProtocol for [`before_model_request`][pydantic_ai.capabilities.AbstractCapability.before_model_request] hook functions.c               ó   • g rh   rU   )rA   ri   Úrequest_contexts      rC   rj   Ú#BeforeModelRequestHookFunc.__call__¤   s	   € ð  PSrE   rU   N)ri   rl   r®   r0   rm   z4ModelRequestContext | Awaitable[ModelRequestContext]rn   rU   rE   rC   r«   r«   ¢   s   † ñ B÷ SrE   r«   c                  ó"   • \ rS rSrSrSS jrSrg)ÚAfterModelRequestHookFuncé¦   zuProtocol for [`after_model_request`][pydantic_ai.capabilities.AbstractCapability.after_model_request] hook functions.c              ó   • g rh   rU   )rA   ri   r®   Úresponses       rC   rj   Ú"AfterModelRequestHookFunc.__call__¨   s	   € ð  `crE   rU   N)ri   rl   r®   r0   r´   r   rm   ú(ModelResponse | Awaitable[ModelResponse]rn   rU   rE   rC   r±   r±   ¦   s   † Ù÷ crE   r±   c                  ó"   • \ rS rSrSrSS jrSrg)ÚWrapModelRequestHookFuncéª   zsProtocol for [`wrap_model_request`][pydantic_ai.capabilities.AbstractCapability.wrap_model_request] hook functions.c              ó   • g rh   rU   )rA   ri   r®   r{   s       rC   rj   Ú!WrapModelRequestHookFunc.__call__¬   s	   € ð  ilrE   rU   N)ri   rl   r®   r0   r{   r)   rm   r¶   rn   rU   rE   rC   r¸   r¸   ª   s   † Ù}÷ lrE   r¸   c                  ó"   • \ rS rSrSrSS jrSrg)ÚOnModelRequestErrorHookFuncé®   z{Protocol for [`on_model_request_error`][pydantic_ai.capabilities.AbstractCapability.on_model_request_error] hook functions.c              ó   • g rh   rU   )rA   ri   r®   r�   s       rC   rj   Ú$OnModelRequestErrorHookFunc.__call__°   s	   € ð  Y\rE   rU   N)ri   rl   r®   r0   r�   r�   rm   r¶   rn   rU   rE   rC   r½   r½   ®   s   † ñ F÷ \rE   r½   c                  ó"   • \ rS rSrSrSS jrSrg)ÚPrepareToolsHookFuncé²   ziProtocol for [`prepare_tools`][pydantic_ai.capabilities.AbstractCapability.prepare_tools] hook functions.c               ó   • g rh   rU   ©rA   ri   Ú	tool_defss      rC   rj   ÚPrepareToolsHookFunc.__call__´   rœ   rE   rU   N©ri   rl   rÆ   úlist[ToolDefinition]rm   z6list[ToolDefinition] | Awaitable[list[ToolDefinition]]rn   rU   rE   rC   rÂ   rÂ   ²   s   † Ùs÷ PrE   rÂ   c                  ó"   • \ rS rSrSrSS jrSrg)ÚPrepareOutputToolsHookFuncé¶   zwProtocol for [`prepare_output_tools`][pydantic_ai.capabilities.AbstractCapability.prepare_output_tools] hook functions.c               ó   • g rh   rU   rÅ   s      rC   rj   Ú#PrepareOutputToolsHookFunc.__call__¸   rœ   rE   rU   NrÈ   rn   rU   rE   rC   rË   rË   ¶   s   † ñ B÷ PrE   rË   c                  ó"   • \ rS rSrSrSS jrSrg)ÚBeforeToolValidateHookFuncéº   zwProtocol for [`before_tool_validate`][pydantic_ai.capabilities.AbstractCapability.before_tool_validate] hook functions.c              ó   • g rh   rU   ©rA   ri   ÚcallÚtool_defÚargss        rC   rj   Ú#BeforeToolValidateHookFunc.__call__¼   s	   € ð  ^arE   rU   N)
ri   rl   rÔ   r   rÕ   r   rÖ   r'   rm   z$RawToolArgs | Awaitable[RawToolArgs]rn   rU   rE   rC   rÐ   rÐ   º   s   † ñ B÷ arE   rÐ   c                  ó"   • \ rS rSrSrSS jrSrg)ÚAfterToolValidateHookFuncé¾   zuProtocol for [`after_tool_validate`][pydantic_ai.capabilities.AbstractCapability.after_tool_validate] hook functions.c              ó   • g rh   rU   rÓ   s        rC   rj   Ú"AfterToolValidateHookFunc.__call__À   ó	   € ð  psrE   rU   N©
ri   rl   rÔ   r   rÕ   r   rÖ   r(   rm   ú0ValidatedToolArgs | Awaitable[ValidatedToolArgs]rn   rU   rE   rC   rÙ   rÙ   ¾   ó   † Ù÷ srE   rÙ   c                  ó"   • \ rS rSrSrSS jrSrg)ÚWrapToolValidateHookFuncéÂ   zsProtocol for [`wrap_tool_validate`][pydantic_ai.capabilities.AbstractCapability.wrap_tool_validate] hook functions.c              ó   • g rh   rU   ©rA   ri   rÔ   rÕ   rÖ   r{   s         rC   rj   Ú!WrapToolValidateHookFunc.__call__Ä   s	   € ð  LOrE   rU   N)ri   rl   rÔ   r   rÕ   r   rÖ   r'   r{   r/   rm   rß   rn   rU   rE   rC   râ   râ   Â   s   † Ù}÷ OrE   râ   c                  ó"   • \ rS rSrSrSS jrSrg)ÚOnToolValidateErrorHookFuncéÆ   z{Protocol for [`on_tool_validate_error`][pydantic_ai.capabilities.AbstractCapability.on_tool_validate_error] hook functions.c              ó   • g rh   rU   ©rA   ri   rÔ   rÕ   rÖ   r�   s         rC   rj   Ú$OnToolValidateErrorHookFunc.__call__È   s	   € ð  ORrE   rU   N)ri   rl   rÔ   r   rÕ   r   rÖ   r'   r�   úValidationError | ModelRetryrm   rß   rn   rU   rE   rC   rè   rè   Æ   s   † ñ F÷ RrE   rè   c                  ó"   • \ rS rSrSrSS jrSrg)ÚBeforeToolExecuteHookFuncéÊ   zuProtocol for [`before_tool_execute`][pydantic_ai.capabilities.AbstractCapability.before_tool_execute] hook functions.c              ó   • g rh   rU   rÓ   s        rC   rj   Ú"BeforeToolExecuteHookFunc.__call__Ì   rÝ   rE   rU   NrÞ   rn   rU   rE   rC   rï   rï   Ê   rà   rE   rï   c                  ó"   • \ rS rSrSrSS jrSrg)ÚAfterToolExecuteHookFuncéÎ   zsProtocol for [`after_tool_execute`][pydantic_ai.capabilities.AbstractCapability.after_tool_execute] hook functions.c              ó   • g rh   rU   )rA   ri   rÔ   rÕ   rÖ   rs   s         rC   rj   Ú!AfterToolExecuteHookFunc.__call__Ð   s	   € ð  adrE   rU   N)ri   rl   rÔ   r   rÕ   r   rÖ   r(   rs   r   rm   úAny | Awaitable[Any]rn   rU   rE   rC   rô   rô   Î   s   † Ù}÷ drE   rô   c                  ó"   • \ rS rSrSrSS jrSrg)ÚWrapToolExecuteHookFuncéÒ   zqProtocol for [`wrap_tool_execute`][pydantic_ai.capabilities.AbstractCapability.wrap_tool_execute] hook functions.c              ó   • g rh   rU   rå   s         rC   rj   Ú WrapToolExecuteHookFunc.__call__Ô   s	   € ð  uxrE   rU   N)ri   rl   rÔ   r   rÕ   r   rÖ   r(   r{   r.   rm   rø   rn   rU   rE   rC   rú   rú   Ò   s   † Ù{÷ xrE   rú   c                  ó"   • \ rS rSrSrSS jrSrg)ÚOnToolExecuteErrorHookFuncéÖ   zyProtocol for [`on_tool_execute_error`][pydantic_ai.capabilities.AbstractCapability.on_tool_execute_error] hook functions.c              ó   • g rh   rU   rë   s         rC   rj   Ú#OnToolExecuteErrorHookFunc.__call__Ø   s	   € ð  firE   rU   N)ri   rl   rÔ   r   rÕ   r   rÖ   r(   r�   r�   rm   rø   rn   rU   rE   rC   rÿ   rÿ   Ö   s   † ñ D÷ irE   rÿ   c                  ó"   • \ rS rSrSrSS jrSrg)ÚBeforeOutputValidateHookFuncéÚ   z{Protocol for [`before_output_validate`][pydantic_ai.capabilities.AbstractCapability.before_output_validate] hook functions.c              ó   • g rh   rU   ©rA   ri   Úoutput_contextÚoutputs       rC   rj   Ú%BeforeOutputValidateHookFunc.__call__Ü   ó	   € ð  KNrE   rU   N)ri   rl   r  r1   r	  r&   rm   z RawOutput | Awaitable[RawOutput]rn   rU   rE   rC   r  r  Ú   s   † ñ F÷ NrE   r  c                  ó"   • \ rS rSrSrSS jrSrg)ÚAfterOutputValidateHookFuncéÞ   zyProtocol for [`after_output_validate`][pydantic_ai.capabilities.AbstractCapability.after_output_validate] hook functions.c              ó   • g rh   rU   r  s       rC   rj   Ú$AfterOutputValidateHookFunc.__call__à   rŠ   rE   rU   N©ri   rl   r  r1   r	  r   rm   rø   rn   rU   rE   rC   r  r  Þ   ó   † ñ Dß{rE   r  c                  ó"   • \ rS rSrSrSS jrSrg)ÚWrapOutputValidateHookFuncéâ   zwProtocol for [`wrap_output_validate`][pydantic_ai.capabilities.AbstractCapability.wrap_output_validate] hook functions.c              ó   • g rh   rU   ©rA   ri   r  r	  r{   s        rC   rj   Ú#WrapOutputValidateHookFunc.__call__ä   s	   € ð  cfrE   rU   N)
ri   rl   r  r1   r	  r&   r{   r,   rm   rø   rn   rU   rE   rC   r  r  â   s   † ñ B÷ frE   r  c                  ó"   • \ rS rSrSrSS jrSrg)ÚOnOutputValidateErrorHookFuncéæ   zProtocol for [`on_output_validate_error`][pydantic_ai.capabilities.AbstractCapability.on_output_validate_error] hook functions.c              ó   • g rh   rU   ©rA   ri   r  r	  r�   s        rC   rj   Ú&OnOutputValidateErrorHookFunc.__call__è   s	   € ð  dgrE   rU   N)
ri   rl   r  r1   r	  r&   r�   rí   rm   rø   rn   rU   rE   rC   r  r  æ   s   † ñ J÷ grE   r  c                  ó"   • \ rS rSrSrSS jrSrg)ÚBeforeOutputProcessHookFuncéê   zyProtocol for [`before_output_process`][pydantic_ai.capabilities.AbstractCapability.before_output_process] hook functions.c              ó   • g rh   rU   r  s       rC   rj   Ú$BeforeOutputProcessHookFunc.__call__ì   rŠ   rE   rU   Nr  rn   rU   rE   rC   r   r   ê   r  rE   r   c                  ó"   • \ rS rSrSrSS jrSrg)ÚAfterOutputProcessHookFuncéî   zwProtocol for [`after_output_process`][pydantic_ai.capabilities.AbstractCapability.after_output_process] hook functions.c              ó   • g rh   rU   r  s       rC   rj   Ú#AfterOutputProcessHookFunc.__call__ð   rŠ   rE   rU   Nr  rn   rU   rE   rC   r%  r%  î   s   † ñ Bß{rE   r%  c                  ó"   • \ rS rSrSrSS jrSrg)ÚWrapOutputProcessHookFuncéò   zuProtocol for [`wrap_output_process`][pydantic_ai.capabilities.AbstractCapability.wrap_output_process] hook functions.c              ó   • g rh   rU   r  s        rC   rj   Ú"WrapOutputProcessHookFunc.__call__ô   s	   € ð  \_rE   rU   N)
ri   rl   r  r1   r	  r   r{   r+   rm   rø   rn   rU   rE   rC   r*  r*  ò   s   † Ù÷ _rE   r*  c                  ó"   • \ rS rSrSrSS jrSrg)ÚOnOutputProcessErrorHookFuncéö   z}Protocol for [`on_output_process_error`][pydantic_ai.capabilities.AbstractCapability.on_output_process_error] hook functions.c              ó   • g rh   rU   r  s        rC   rj   Ú%OnOutputProcessErrorHookFunc.__call__ø   r  rE   rU   N)
ri   rl   r  r1   r	  r   r�   r�   rm   rø   rn   rU   rE   rC   r/  r/  ö   s   † ñ H÷ NrE   r/  c                  ó"   • \ rS rSrSrSS jrSrg)ÚHandleDeferredToolCallsHookFuncéú   zƒProtocol for [`handle_deferred_tool_calls`][pydantic_ai.capabilities.AbstractCapability.handle_deferred_tool_calls] hook functions.c              ó   • g rh   rU   )rA   ri   Úrequestss      rC   rj   Ú(HandleDeferredToolCallsHookFunc.__call__ü   s	   € ð  [^rE   rU   N)ri   rl   r7  r   rm   zBDeferredToolResults | None | Awaitable[DeferredToolResults | None]rn   rU   rE   rC   r4  r4  ú   s   † ñ N÷ ^rE   r4  c              �  óü  #   • U R                   nU R                  ba   [        R                  " U R                  5         [        R
                  " 5          [        U/UQ70 UD6I Sh  v•N sSSS5        sSSS5        $ [        U/UQ70 UD6I Sh  v•N $  N-! , (       d  f       O= fSSS5        M4  ! , (       d  f       NB= f! [         a+    [        U[        US[        U5      5      U R                  S9Sef = f Nj7f)zKCall a hook entry's function, with optional timeout and sync auto-wrapping.NrH   )r<   r=   r>   )rS   r>   ÚanyioÚ
fail_afterr   Úabandon_threads_on_cancelÚ
_call_funcÚTimeoutErrorr8   ÚgetattrÚrepr)ra   r<   rÖ   ÚkwargsrS   s        rC   Ú_call_entryrB    sÐ   é € à�:‰:€DØ‡}�}Ñ ð	Ü×!Ò! %§-¡-Õ0´&×2RÒ2RÕ2TÜ'¨Ð>¨tÒ>°vÑ>×>÷ 3UÐ2T×0Ñ0ô ˜DÐ2 4Ò2¨6Ñ2×2Ð2ñ ?÷ 3UÕ2Tú×0×0×0ûäó 	Ü"Ø#Ü! $¨
´D¸³JÓ?ØŸ™ñð ð	ð	úñ 3ùs�   ‚C<� C ½B1ÁBÁ&BÁ'BÁ*	B1Á3	C Á<C<ÂC:ÂC<ÂBÂ
B$	Â B1Â'C Â/C<Â1
B?Â;C Â>C<Â?C Ã5C7Ã7C<c              �  óè   #   • [         R                  " U 5      (       a  U " U0 UD6I Sh  v•N $ [         R                  " [         R                  " U /UQ70 UD6I Sh  v•N 5      I Sh  v•N $  NB N N7f)zWCall a function, running sync functions in a thread so they don't block the event loop.N)r   Úis_async_callableÚawait_maybeÚrun_in_executor)rS   rÖ   rA  s      rC   r=  r=    sf   é € ä×Ò ×%Ñ%Ù˜4Ð* 6Ñ*×*Ð*ô ×#Ò#¬&×*@Ò*@ÀÐ*WÈÒ*WÐPVÑ*W×$WÓX×XÐXñ +ñ %XÑXùs3   ‚'A2©A,ª1A2ÁA.ÁA2Á'A0Á(A2Á.A2Á0A2c               ó®   • U  Vs/ s HC  n[        U[        5      (       a)  UR                  b  UR                  UR                  ;  a  MA  UPME     sn$ s  snf )zFilter entries by tool names.)r`   rX   rZ   Ú	tool_name)ÚentriesrÔ   ra   s      rC   Ú_filter_tool_entriesrJ    sT   € ñ óâˆEÜ˜5¤.×1Ñ1°e·k±kÑ6MÐRV×R`ÑR`Ðhm×hsÑhsÑRs÷ 	Ùñð ùò s   …A AÁ	A©r>   c               ó|   ^ ^^• Ub+  T R                  T/ 5      R                  [        UTS95        U$ SUU U4S jjnU$ )zDHandle bare decorator or parameterized decorator for non-tool hooks.rK  c                óZ   >• TR                  T/ 5      R                  [        U TS95        U $ )NrK  ©Ú
setdefaultÚappendrQ   )ÚfÚkeyÚregistryr>   s    €€€rC   Ú	decoratorÚ)_bare_or_parameterized.<locals>.decorator4  s*   ø€ Ø×Ñ˜C Ó$×+Ñ+¬J°qÀ'Ñ,JÔKØˆrE   ©rQ  r3   rm   r3   rN  )rS  rR  rS   r>   rT  s   `` ` rC   Ú_bare_or_parameterizedrW  (  sD   ú€ ð ÑØ×Ñ˜C Ó$×+Ñ+¬J°tÀWÑ,MÔNØˆ÷ñ ð ÐrE   ©rZ   r>   c               ó¢   ^ ^^^• Ub  [        U5      OSmUb,  T R                  T/ 5      R                  [        UTTS95        U$ SUUU U4S jjnU$ )z@Handle bare decorator or parameterized decorator for tool hooks.N©r>   rZ   c                ó\   >• TR                  T/ 5      R                  [        U TTS95        U $ )NrZ  )rO  rP  rX   )rQ  Úfrozen_toolsrR  rS  r>   s    €€€€rC   rT  Ú._tool_bare_or_parameterized.<locals>.decoratorI  s-   ø€ Ø×Ñ˜C Ó$×+Ñ+¬N¸1ÀgÐUaÑ,bÔcØˆrE   rV  )Ú	frozensetrO  rP  rX   )rS  rR  rS   rZ   r>   rT  r\  s   ``  ` @rC   Ú_tool_bare_or_parameterizedr_  ;  sX   û€ ð (-Ñ'8”9˜UÔ#¸d€LØÑØ×Ñ˜C Ó$×+Ñ+¬N¸4ÈÐXdÑ,eÔfØˆ÷ò ð ÐrE   c                  óú
  • \ rS rSrSrSjS jr\SkS j5       r\SlS j5       r	\SS.SmS jj5       r	SnSS.SoS	 jjjr	\SpS
 j5       r
\SS.SqS jj5       r
SnSS.SrS jjjr
\SsS j5       r\SS.StS jj5       rSnSS.SuS jjjr\SvS j5       r\SS.SwS jj5       rSnSS.SxS jjjr\SyS j5       r\SS.   SzS jj5       rSnSS.S{S jjjr\S|S j5       r\SS.   S}S jj5       rSnSS.S~S jjjr\SS j5       r\SS.S€S jj5       rSnSS.S�S jjjr\S‚S j5       r\SS.   SƒS jj5       rSnSS.S„S jjjrS…S jr\S†S  j5       r\SS.     S‡S! jj5       r SnSS.       SˆS" jjjr\S‰S# j5       r\SS.   SŠS$ jj5       r SnSS.     S‹S% jjjr\SŒS& j5       r\SS.   S�S' jj5       r SnSS.     SŽS( jjjr\S�S) j5       r\SS.   S�S* jj5       rSnSS.S‘S+ jjjr\S’S, j5       r\SS.   S“S- jj5       r SnSS.     S”S. jjjr\S•S/ j5       r\SS.   S–S0 jj5       rSnSS.S—S1 jjjr\S˜S2 j5       r\SS.   S™S3 jj5       r SnSS.     SšS4 jjjr\S›S5 j5       r\SSS6.     SœS7 jj5       r SnSSS6.       S�S8 jjjr\SžS9 j5       r\SSS6.     SŸS: jj5       r SnSSS6.       S S; jjjr\S¡S< j5       r\SSS6.     S¢S= jj5       r SnSSS6.       S£S> jjjr\S¤S? j5       r\SSS6.     S¥S@ jj5       r SnSSS6.       S¦SA jjjr\S§SB j5       r\SSS6.     S¨SC jj5       r SnSSS6.       S©SD jjjr\SªSE j5       r\SSS6.     S«SF jj5       r SnSSS6.       S¬SG jjjr\S­SH j5       r\SSS6.     S®SI jj5       r SnSSS6.       S¯SJ jjjr\S°SK j5       r \SSS6.     S±SL jj5       r  SnSSS6.       S²SM jjjr \S³SN j5       r!\SS.   S´SO jj5       r! SnSS.     SµSP jjjr!\S¶SQ j5       r"\SS.   S·SR jj5       r" SnSS.     S¸SS jjjr"\S¹ST j5       r#\SS.   SºSU jj5       r#SnSS.S»SV jjjr#\S¼SW j5       r$\SS.   S½SX jj5       r$ SnSS.     S¾SY jjjr$\S¿SZ j5       r%\SS.   SÀS[ jj5       r% SnSS.     SÁS\ jjjr%\SÂS] j5       r&\SS.   SÃS^ jj5       r& SnSS.     SÄS_ jjjr&\SÅS` j5       r'\SS.   SÆSa jj5       r'SnSS.SÇSb jjjr'\SÈSc j5       r(\SS.   SÉSd jj5       r( SnSS.     SÊSe jjjr(\SËSf j5       r)\SS.   SÌSg jj5       r) SnSS.     SÍSh jjjr)Sir*g)ÎÚ_HookRegistrationiS  a÷  Decorator namespace for registering hooks on a [`Hooks`][pydantic_ai.capabilities.Hooks] instance.

Accessed via `hooks.on`. Each method corresponds to a lifecycle hook and
can be used as a bare decorator or a parameterized decorator:

```python {test="skip" lint="skip"}
@hooks.on.before_model_request
async def my_hook(ctx, request_context):
    return request_context

@hooks.on.before_tool_execute(tools=['dangerous'], timeout=5.0)
async def guard(ctx, *, call, tool_def, args):
    return args
```
c                ó   • Xl         g rh   ©Ú_hooks)rA   Úhookss     rC   r@   Ú_HookRegistration.__init__d  s   € Ø�rE   c                ó.   • U R                   R                  $ rh   )rd  Ú	_registry©rA   s    rC   Ú_rÚ_HookRegistration._rg  s   € à�{‰{×$Ñ$Ð$rE   c               ó   • g rh   rU   ©rA   rS   s     rC   Ú
before_runÚ_HookRegistration.before_runm  s   € ØKNrE   NrK  c               ó   • g rh   rU   ©rA   r>   s     rC   rn  ro  o  s   € ØorrE   c               ó,   • [        U R                  SXS9$ )Nrn  rK  ©rW  rj  ©rA   rS   r>   s      rC   rn  ro  q  s   € Ü% d§g¡g¨|¸TÑSÐSrE   c               ó   • g rh   rU   rm  s     rC   Ú	after_runÚ_HookRegistration.after_runt  s   € ØHKrE   c               ó   • g rh   rU   rq  s     rC   rv  rw  v  s   € ØlorE   c               ó,   • [        U R                  SXS9$ )Nrv  rK  rs  rt  s      rC   rv  rw  x  s   € Ü% d§g¡g¨{¸DÑRÐRrE   c               ó   • g rh   rU   rm  s     rC   ÚrunÚ_HookRegistration.run{  s   € Ø@CrE   c               ó   • g rh   rU   rq  s     rC   r{  r|  }  ó   € ØdgrE   c               ó,   • [        U R                  SXS9$ )NÚwrap_runrK  rs  rt  s      rC   r{  r|    s   € Ü% d§g¡g¨z¸4ÑQÐQrE   c               ó   • g rh   rU   rm  s     rC   Ú	run_errorÚ_HookRegistration.run_error‚  s   € ØLOrE   c               ó   • g rh   rU   rq  s     rC   r‚  rƒ  „  ó   € ØpsrE   c               ó,   • [        U R                  SXS9$ )NÚon_run_errorrK  rs  rt  s      rC   r‚  rƒ  †  s   € Ü% d§g¡g¨~¸tÑUÐUrE   c               ó   • g rh   rU   rm  s     rC   Úbefore_node_runÚ!_HookRegistration.before_node_run‹  s   € ØX[rE   c               ó   • g rh   rU   rq  s     rC   r‰  rŠ  �  s	   € ð DGrE   c               ó,   • [        U R                  SXS9$ )Nr‰  rK  rs  rt  s      rC   r‰  rŠ  ‘  s   € Ü% d§g¡gÐ/@À$ÑXÐXrE   c               ó   • g rh   rU   rm  s     rC   Úafter_node_runÚ _HookRegistration.after_node_run”  s   € ØUXrE   c               ó   • g rh   rU   rq  s     rC   rŽ  r�  –  ó	   € ð BErE   c               ó,   • [        U R                  SXS9$ )NrŽ  rK  rs  rt  s      rC   rŽ  r�  š  s   € Ü% d§g¡gÐ/?ÀÑWÐWrE   c               ó   • g rh   rU   rm  s     rC   Únode_runÚ_HookRegistration.node_run�  s   € ØMPrE   c               ó   • g rh   rU   rq  s     rC   r”  r•  Ÿ  s   € ØqtrE   c               ó,   • [        U R                  SXS9$ )NÚwrap_node_runrK  rs  rt  s      rC   r”  r•  ¡  ó   € Ü% d§g¡g¨ÀÑVÐVrE   c               ó   • g rh   rU   rm  s     rC   Únode_run_errorÚ _HookRegistration.node_run_error¤  ó   € ØY\rE   c               ó   • g rh   rU   rq  s     rC   r›  rœ  ¦  s	   € ð FIrE   c               ó,   • [        U R                  SXS9$ )NÚon_node_run_errorrK  rs  rt  s      rC   r›  rœ  ª  s   € Ü% d§g¡gÐ/BÀDÑZÐZrE   c               ón   • U R                   R                  S/ 5      R                  [        U5      5        U$ )zSRegister a `wrap_run_event_stream` hook. Timeout not supported for stream wrappers.Úwrap_run_event_stream)rj  rO  rP  rQ   rm  s     rC   Úrun_event_streamÚ"_HookRegistration.run_event_stream¯  s,   € à�‰×ÑÐ2°BÓ7×>Ñ>¼zÈ$Ó?OÔPØˆrE   c               ó   • g rh   rU   rm  s     rC   rb   Ú_HookRegistration.event´  s   € ØfirE   c               ó   • g rh   rU   )rA   r>   r^   s      rC   rb   r¦  ¶  ó	   € ð HKrE   c               óÐ   ^ ^^• UbJ  [        U[        5      (       d5  T R                  R                  S/ 5      R	                  [        UTS95        U$ Uc  SOU4U-   mSUU U4S jjnU$ )zDRegister an observer for every event, or for selected event classes.Úon_eventrK  rU   c                óp   >• TR                   R                  S/ 5      R                  [        U TTS95        U $ )Nrª  )r>   r^   )rj  rO  rP  r\   )rS   ÚfiltersrA   r>   s    €€€rC   rT  Ú*_HookRegistration.event.<locals>.decoratorÇ  s2   ø€ Ø�G‰G×Ñ˜z¨2Ó.×5Ñ5´oÀdÐT[ÐipÑ6qÔrØˆKrE   )rS   úOnEventHookFunc[EventT]rm   r®  )r`   Útyperj  rO  rP  r\   )rA   Úfunc_or_event_typer>   r^   rT  r¬  s   ` `  @rC   rb   r¦  º  so   ú€ ð Ñ)´*Ð=OÔQU×2VÑ2VØ�G‰G×Ñ˜z¨2Ó.×5Ñ5´oÐFXÐbiÑ6jÔkØ%Ð%à+Ñ3‘2Ð:LÐ9NÐR]Ñ]ˆ÷	ñ 	ð ÐrE   c               ó   • g rh   rU   rm  s     rC   Úbefore_model_requestÚ&_HookRegistration.before_model_requestÏ  ó   € ØgjrE   c               ó   • g rh   rU   rq  s     rC   r²  r³  Ñ  ó	   € ð NQrE   c               ó,   • [        U R                  SXS9$ )Nr²  rK  rs  rt  s      rC   r²  r³  Õ  ó   € ô & d§g¡gÐ/EÀtÑ]Ð]rE   c               ó   • g rh   rU   rm  s     rC   Úafter_model_requestÚ%_HookRegistration.after_model_requestÚ  r~  rE   c               ó   • g rh   rU   rq  s     rC   rº  r»  Ü  ó	   € ð LOrE   c               ó,   • [        U R                  SXS9$ )Nrº  rK  rs  rt  s      rC   rº  r»  à  s   € ô & d§g¡gÐ/DÀdÑ\Ð\rE   c               ó   • g rh   rU   rm  s     rC   Úmodel_requestÚ_HookRegistration.model_requestå  ó   € Ø\_rE   c               ó   • g rh   rU   rq  s     rC   rÀ  rÁ  ç  ó	   € ð JMrE   c               ó,   • [        U R                  SXS9$ )NÚwrap_model_requestrK  rs  rt  s      rC   rÀ  rÁ  ë  s   € Ü% d§g¡gÐ/CÀTÑ[Ð[rE   c               ó   • g rh   rU   rm  s     rC   Úmodel_request_errorÚ%_HookRegistration.model_request_errorî  ó   € ØhkrE   c               ó   • g rh   rU   rq  s     rC   rÈ  rÉ  ð  ó	   € ð PSrE   c               ó,   • [        U R                  SXS9$ )NÚon_model_request_errorrK  rs  rt  s      rC   rÈ  rÉ  ô  ó   € ô & d§g¡gÐ/GÈÑ_Ð_rE   c               ó   • g rh   rU   rm  s     rC   Úprepare_toolsÚ_HookRegistration.prepare_toolsû  s   € ØTWrE   c               ó   • g rh   rU   rq  s     rC   rÑ  rÒ  ý  r‘  rE   c               ó,   • [        U R                  SXS9$ )NrÑ  rK  rs  rt  s      rC   rÑ  rÒ    r™  rE   c               ó   • g rh   rU   rm  s     rC   Úprepare_output_toolsÚ&_HookRegistration.prepare_output_tools  r´  rE   c               ó   • g rh   rU   rq  s     rC   rÖ  r×    r¶  rE   c               ó,   • [        U R                  SXS9$ )NrÖ  rK  rs  rt  s      rC   rÖ  r×  
  r¸  rE   c               ó   • g rh   rU   rm  s     rC   Úbefore_tool_validateÚ&_HookRegistration.before_tool_validate  r´  rE   rX  c               ó   • g rh   rU   ©rA   rZ   r>   s      rC   rÛ  rÜ    r¶  rE   c               ó.   • [        U R                  SXUS9$ )NrÛ  rX  ©r_  rj  ©rA   rS   rZ   r>   s       rC   rÛ  rÜ    s   € ô +¨4¯7©7Ð4JÈDÐgnÑoÐorE   c               ó   • g rh   rU   rm  s     rC   Úafter_tool_validateÚ%_HookRegistration.after_tool_validate   r~  rE   c               ó   • g rh   rU   rÞ  s      rC   rã  rä  "  r½  rE   c               ó.   • [        U R                  SXUS9$ )Nrã  rX  rà  rá  s       rC   rã  rä  &  ó   € ô +¨4¯7©7Ð4IÈ4ÐfmÑnÐnrE   c               ó   • g rh   rU   rm  s     rC   Útool_validateÚ_HookRegistration.tool_validate/  rÂ  rE   c               ó   • g rh   rU   rÞ  s      rC   ré  rê  1  rÄ  rE   c               ó.   • [        U R                  SXUS9$ )NÚwrap_tool_validaterX  rà  rá  s       rC   ré  rê  5  ó   € ô +¨4¯7©7Ð4HÈ$ÐelÑmÐmrE   c               ó   • g rh   rU   rm  s     rC   Útool_validate_errorÚ%_HookRegistration.tool_validate_error>  rÊ  rE   c               ó   • g rh   rU   rÞ  s      rC   rð  rñ  @  rÌ  rE   c               ó.   • [        U R                  SXUS9$ )NÚon_tool_validate_errorrX  rà  rá  s       rC   rð  rñ  D  s   € ô +¨4¯7©7Ð4LÈdÐipÑqÐqrE   c               ó   • g rh   rU   rm  s     rC   Úbefore_tool_executeÚ%_HookRegistration.before_tool_executeO  r~  rE   c               ó   • g rh   rU   rÞ  s      rC   rö  r÷  Q  r½  rE   c               ó.   • [        U R                  SXUS9$ )Nrö  rX  rà  rá  s       rC   rö  r÷  U  rç  rE   c               ó   • g rh   rU   rm  s     rC   Úafter_tool_executeÚ$_HookRegistration.after_tool_execute^  s   € ØadrE   c               ó   • g rh   rU   rÞ  s      rC   rû  rü  `  rÄ  rE   c               ó.   • [        U R                  SXUS9$ )Nrû  rX  rà  rá  s       rC   rû  rü  d  rî  rE   c               ó   • g rh   rU   rm  s     rC   Útool_executeÚ_HookRegistration.tool_executem  r�  rE   c               ó   • g rh   rU   rÞ  s      rC   r   r  o  r¨  rE   c               ó.   • [        U R                  SXUS9$ )NÚwrap_tool_executerX  rà  rá  s       rC   r   r  s  s   € ô +¨4¯7©7Ð4GÈÐdkÑlÐlrE   c               ó   • g rh   rU   rm  s     rC   Útool_execute_errorÚ$_HookRegistration.tool_execute_error|  s   € ØehrE   c               ó   • g rh   rU   rÞ  s      rC   r  r  ~  r¶  rE   c               ó.   • [        U R                  SXUS9$ )NÚon_tool_execute_errorrX  rà  rá  s       rC   r  r  ‚  s   € ô +¨4¯7©7Ð4KÈTÐhoÑpÐprE   c               ó   • g rh   rU   rm  s     rC   Úbefore_output_validateÚ(_HookRegistration.before_output_validate�  s   € ØmprE   c               ó   • g rh   rU   rq  s     rC   r  r  �  ó	   € ð RUrE   c               ó,   • [        U R                  SXS9$ )Nr  rK  rs  rt  s      rC   r  r  “  rÏ  rE   c               ó   • g rh   rU   rm  s     rC   Úafter_output_validateÚ'_HookRegistration.after_output_validate˜  ó   € ØjmrE   c               ó   • g rh   rU   rq  s     rC   r  r  š  rÌ  rE   c               ó,   • [        U R                  SXS9$ )Nr  rK  rs  rt  s      rC   r  r  ž  ó   € ô & d§g¡gÐ/FÈÑ^Ð^rE   c               ó   • g rh   rU   rm  s     rC   Úoutput_validateÚ!_HookRegistration.output_validate£  s   € ØberE   c               ó   • g rh   rU   rq  s     rC   r  r  ¥  r¶  rE   c               ó,   • [        U R                  SXS9$ )NÚwrap_output_validaterK  rs  rt  s      rC   r  r  ©  s   € Ü% d§g¡gÐ/EÀtÑ]Ð]rE   c               ó   • g rh   rU   rm  s     rC   Úoutput_validate_errorÚ'_HookRegistration.output_validate_error¬  s   € ØnqrE   c               ó   • g rh   rU   rq  s     rC   r  r   ®  s	   € ð TWrE   c               ó,   • [        U R                  SXS9$ )NÚon_output_validate_errorrK  rs  rt  s      rC   r  r   ²  s   € ô & d§g¡gÐ/IÈ4ÑaÐarE   c               ó   • g rh   rU   rm  s     rC   Úbefore_output_processÚ'_HookRegistration.before_output_process¹  r  rE   c               ó   • g rh   rU   rq  s     rC   r%  r&  »  rÌ  rE   c               ó,   • [        U R                  SXS9$ )Nr%  rK  rs  rt  s      rC   r%  r&  ¿  r  rE   c               ó   • g rh   rU   rm  s     rC   Úafter_output_processÚ&_HookRegistration.after_output_processÄ  r´  rE   c               ó   • g rh   rU   rq  s     rC   r*  r+  Æ  r¶  rE   c               ó,   • [        U R                  SXS9$ )Nr*  rK  rs  rt  s      rC   r*  r+  Ê  r¸  rE   c               ó   • g rh   rU   rm  s     rC   Úoutput_processÚ _HookRegistration.output_processÏ  s   € Ø_brE   c               ó   • g rh   rU   rq  s     rC   r/  r0  Ñ  r½  rE   c               ó,   • [        U R                  SXS9$ )NÚwrap_output_processrK  rs  rt  s      rC   r/  r0  Õ  s   € Ü% d§g¡gÐ/DÀdÑ\Ð\rE   c               ó   • g rh   rU   rm  s     rC   Úoutput_process_errorÚ&_HookRegistration.output_process_errorØ  s   € ØknrE   c               ó   • g rh   rU   rq  s     rC   r5  r6  Ú  r  rE   c               ó,   • [        U R                  SXS9$ )NÚon_output_process_errorrK  rs  rt  s      rC   r5  r6  Þ  s   € ô & d§g¡gÐ/HÈ$Ñ`Ð`rE   c               ó   • g rh   rU   rm  s     rC   Údeferred_tool_callsÚ%_HookRegistration.deferred_tool_callså  r…  rE   c               ó   • g rh   rU   rq  s     rC   r;  r<  ç  s	   € ð X[rE   c               ó,   • [        U R                  SXS9$ )NÚhandle_deferred_tool_callsrK  rs  rt  s      rC   r;  r<  ë  s   € ô & d§g¡gÐ/KÈTÑcÐcrE   rc  )re  zHooks[AgentDepsT]rm   ÚNone)rm   ú dict[str, list[_HookEntry[Any]]])rS   re   rm   re   )r>   rT   rm   z0Callable[[BeforeRunHookFunc], BeforeRunHookFunc]rh   )rS   úBeforeRunHookFunc | Noner>   rT   rm   r   )rS   rp   rm   rp   )r>   rT   rm   z.Callable[[AfterRunHookFunc], AfterRunHookFunc])rS   úAfterRunHookFunc | Noner>   rT   rm   r   )rS   rx   rm   rx   )r>   rT   rm   z,Callable[[WrapRunHookFunc], WrapRunHookFunc])rS   úWrapRunHookFunc | Noner>   rT   rm   r   )rS   r~   rm   r~   )r>   rT   rm   z2Callable[[OnRunErrorHookFunc], OnRunErrorHookFunc])rS   úOnRunErrorHookFunc | Noner>   rT   rm   r   )rS   r…   rm   r…   )r>   rT   rm   z8Callable[[BeforeNodeRunHookFunc], BeforeNodeRunHookFunc])rS   úBeforeNodeRunHookFunc | Noner>   rT   rm   r   )rS   r�   rm   r�   )r>   rT   rm   z6Callable[[AfterNodeRunHookFunc], AfterNodeRunHookFunc])rS   úAfterNodeRunHookFunc | Noner>   rT   rm   r   )rS   r“   rm   r“   )r>   rT   rm   z4Callable[[WrapNodeRunHookFunc], WrapNodeRunHookFunc])rS   úWrapNodeRunHookFunc | Noner>   rT   rm   r   )rS   r˜   rm   r˜   )r>   rT   rm   z:Callable[[OnNodeRunErrorHookFunc], OnNodeRunErrorHookFunc])rS   úOnNodeRunErrorHookFunc | Noner>   rT   rm   r   )rS   rŸ   rm   rŸ   )rS   ú!OnEventHookFunc[AgentStreamEvent]rm   rJ  )r^   útype[EventT]r>   rT   rm   z<Callable[[OnEventHookFunc[EventT]], OnEventHookFunc[EventT]])r°  z7OnEventHookFunc[AgentStreamEvent] | type[EventT] | Noner^   rK  r>   rT   rm   r   )rS   r«   rm   r«   )r>   rT   rm   zBCallable[[BeforeModelRequestHookFunc], BeforeModelRequestHookFunc])rS   ú!BeforeModelRequestHookFunc | Noner>   rT   rm   r   )rS   r±   rm   r±   )r>   rT   rm   z@Callable[[AfterModelRequestHookFunc], AfterModelRequestHookFunc])rS   ú AfterModelRequestHookFunc | Noner>   rT   rm   r   )rS   r¸   rm   r¸   )r>   rT   rm   z>Callable[[WrapModelRequestHookFunc], WrapModelRequestHookFunc])rS   úWrapModelRequestHookFunc | Noner>   rT   rm   r   )rS   r½   rm   r½   )r>   rT   rm   zDCallable[[OnModelRequestErrorHookFunc], OnModelRequestErrorHookFunc])rS   ú"OnModelRequestErrorHookFunc | Noner>   rT   rm   r   )rS   rÂ   rm   rÂ   )r>   rT   rm   z6Callable[[PrepareToolsHookFunc], PrepareToolsHookFunc])rS   úPrepareToolsHookFunc | Noner>   rT   rm   r   )rS   rË   rm   rË   )r>   rT   rm   zBCallable[[PrepareOutputToolsHookFunc], PrepareOutputToolsHookFunc])rS   ú!PrepareOutputToolsHookFunc | Noner>   rT   rm   r   )rS   rÐ   rm   rÐ   )rZ   úSequence[str] | Noner>   rT   rm   zBCallable[[BeforeToolValidateHookFunc], BeforeToolValidateHookFunc])rS   ú!BeforeToolValidateHookFunc | NonerZ   rR  r>   rT   rm   r   )rS   rÙ   rm   rÙ   )rZ   rR  r>   rT   rm   z@Callable[[AfterToolValidateHookFunc], AfterToolValidateHookFunc])rS   ú AfterToolValidateHookFunc | NonerZ   rR  r>   rT   rm   r   )rS   râ   rm   râ   )rZ   rR  r>   rT   rm   z>Callable[[WrapToolValidateHookFunc], WrapToolValidateHookFunc])rS   úWrapToolValidateHookFunc | NonerZ   rR  r>   rT   rm   r   )rS   rè   rm   rè   )rZ   rR  r>   rT   rm   zDCallable[[OnToolValidateErrorHookFunc], OnToolValidateErrorHookFunc])rS   ú"OnToolValidateErrorHookFunc | NonerZ   rR  r>   rT   rm   r   )rS   rï   rm   rï   )rZ   rR  r>   rT   rm   z@Callable[[BeforeToolExecuteHookFunc], BeforeToolExecuteHookFunc])rS   ú BeforeToolExecuteHookFunc | NonerZ   rR  r>   rT   rm   r   )rS   rô   rm   rô   )rZ   rR  r>   rT   rm   z>Callable[[AfterToolExecuteHookFunc], AfterToolExecuteHookFunc])rS   úAfterToolExecuteHookFunc | NonerZ   rR  r>   rT   rm   r   )rS   rú   rm   rú   )rZ   rR  r>   rT   rm   z<Callable[[WrapToolExecuteHookFunc], WrapToolExecuteHookFunc])rS   úWrapToolExecuteHookFunc | NonerZ   rR  r>   rT   rm   r   )rS   rÿ   rm   rÿ   )rZ   rR  r>   rT   rm   zBCallable[[OnToolExecuteErrorHookFunc], OnToolExecuteErrorHookFunc])rS   ú!OnToolExecuteErrorHookFunc | NonerZ   rR  r>   rT   rm   r   )rS   r  rm   r  )r>   rT   rm   zFCallable[[BeforeOutputValidateHookFunc], BeforeOutputValidateHookFunc])rS   ú#BeforeOutputValidateHookFunc | Noner>   rT   rm   r   )rS   r  rm   r  )r>   rT   rm   zDCallable[[AfterOutputValidateHookFunc], AfterOutputValidateHookFunc])rS   ú"AfterOutputValidateHookFunc | Noner>   rT   rm   r   )rS   r  rm   r  )r>   rT   rm   zBCallable[[WrapOutputValidateHookFunc], WrapOutputValidateHookFunc])rS   ú!WrapOutputValidateHookFunc | Noner>   rT   rm   r   )rS   r  rm   r  )r>   rT   rm   zHCallable[[OnOutputValidateErrorHookFunc], OnOutputValidateErrorHookFunc])rS   ú$OnOutputValidateErrorHookFunc | Noner>   rT   rm   r   )rS   r   rm   r   )r>   rT   rm   zDCallable[[BeforeOutputProcessHookFunc], BeforeOutputProcessHookFunc])rS   ú"BeforeOutputProcessHookFunc | Noner>   rT   rm   r   )rS   r%  rm   r%  )r>   rT   rm   zBCallable[[AfterOutputProcessHookFunc], AfterOutputProcessHookFunc])rS   ú!AfterOutputProcessHookFunc | Noner>   rT   rm   r   )rS   r*  rm   r*  )r>   rT   rm   z@Callable[[WrapOutputProcessHookFunc], WrapOutputProcessHookFunc])rS   ú WrapOutputProcessHookFunc | Noner>   rT   rm   r   )rS   r/  rm   r/  )r>   rT   rm   zFCallable[[OnOutputProcessErrorHookFunc], OnOutputProcessErrorHookFunc])rS   ú#OnOutputProcessErrorHookFunc | Noner>   rT   rm   r   )rS   r4  rm   r4  )r>   rT   rm   zLCallable[[HandleDeferredToolCallsHookFunc], HandleDeferredToolCallsHookFunc])rS   ú&HandleDeferredToolCallsHookFunc | Noner>   rT   rm   r   )+rH   rI   rJ   rK   rL   r@   Úpropertyrj  r   rn  rv  r{  r‚  r‰  rŽ  r”  r›  r£  rb   r²  rº  rÀ  rÈ  rÑ  rÖ  rÛ  rã  ré  rð  rö  rû  r   r  r  r  r  r  r%  r*  r/  r5  r;  rM   rU   rE   rC   ra  ra  S  s‹  † ñô ð ó%ó ð%ð
 ÛNó ØNØØ48Öró ØrðTÐ[_÷ Tð Tð ÛKó ØKØØ37Öoó ØoðSÐY]÷ Sð Sð ÛCó ØCØØ-1Ögó ØgðRÐRV÷ Rð Rð ÛOó ØOØØ37Ösó ØsðVÐ[_÷ Vð Vð
 Û[ó Ø[Øà)-ñGØ&ðGà	AôGó ðGðYÐdh÷ Yð Yð ÛXó ØXØà)-ñEØ&ðEà	?ôEó ðEðXÐbf÷ Xð Xð ÛPó ØPØØ26Ötó ØtðWÐ[_÷ Wð Wð Û\ó Ø\Øà)-ñIØ&ðIà	CôIó ðIð[Ðdh÷ [ð [ô
ð
 Ûió ØiØàBFñKØ(ðKØ3?ðKà	EôKó ðKð
 W[ðð !%ñ	àSðð #ðð ð	ð
 
öð* Ûjó ØjØà)-ñQØ&ðQà	KôQó ðQð 9=ð^ØY]ñ^Ø5ð^ØJVð^à	ö^ð
 Ûgó ØgØà)-ñOØ&ðOà	IôOó ðOð 8<ð]ØX\ñ]Ø4ð]ØIUð]à	ö]ð
 Û_ó Ø_Øà)-ñMØ&ðMà	GôMó ðMð\Ðei÷ \ð \ð Ûkó ØkØà)-ñSØ&ðSà	MôSó ðSð :>ð`ØZ^ñ`Ø6ð`ØKWð`à	ö`ð ÛWó ØWØà)-ñEØ&ðEà	?ôEó ðEðWÐae÷ Wð Wð Ûjó ØjØà)-ñQØ&ðQà	KôQó ðQð 9=ð^ØY]ñ^Ø5ð^ØJVð^à	ö^ð Ûjó ØjØà/3ÈTñQØ,ðQØ>JðQà	KôQó ðQð
 37ðpð '+Ø $ñpà/ðpð $ð	pð
 ðpð 
öpð Ûgó ØgØà/3ÈTñOØ,ðOØ>JðOà	IôOó ðOð
 26ðoð '+Ø $ñoà.ðoð $ð	oð
 ðoð 
öoð Û_ó Ø_Øà/3ÈTñMØ,ðMØ>JðMà	GôMó ðMð
 15ðnð '+Ø $ñnà-ðnð $ð	nð
 ðnð 
önð Ûkó ØkØà/3ÈTñSØ,ðSØ>JðSà	MôSó ðSð
 48ðrð '+Ø $ñrà0ðrð $ð	rð
 ðrð 
örð Ûgó ØgØà/3ÈTñOØ,ðOØ>JðOà	IôOó ðOð
 26ðoð '+Ø $ñoà.ðoð $ð	oð
 ðoð 
öoð Ûdó ØdØà/3ÈTñMØ,ðMØ>JðMà	GôMó ðMð
 15ðnð '+Ø $ñnà-ðnð $ð	nð
 ðnð 
önð Û\ó Ø\Øà/3ÈTñKØ,ðKØ>JðKà	EôKó ðKð
 04ðmð '+Ø $ñmà,ðmð $ð	mð
 ðmð 
ömð Ûhó ØhØà/3ÈTñQØ,ðQØ>JðQà	KôQó ðQð
 37ðqð '+Ø $ñqà/ðqð $ð	qð
 ðqð 
öqð Ûpó ØpØà)-ñUØ&ðUà	OôUó ðUð ;?ð`Ø[_ñ`Ø7ð`ØLXð`à	ö`ð
 Ûmó ØmØà)-ñSØ&ðSà	MôSó ðSð :>ð_ØZ^ñ_Ø6ð_ØKWð_à	ö_ð
 Ûeó ØeØà)-ñQØ&ðQà	KôQó ðQð^Ðim÷ ^ð ^ð Ûqó ØqØà)-ñWØ&ðWà	QôWó ðWð <@ðbØ\`ñbØ8ðbØMYðbà	öbð Ûmó ØmØà)-ñSØ&ðSà	MôSó ðSð :>ð_ØZ^ñ_Ø6ð_ØKWð_à	ö_ð
 Ûjó ØjØà)-ñQØ&ðQà	KôQó ðQð 9=ð^ØY]ñ^Ø5ð^ØJVð^à	ö^ð
 Ûbó ØbØà)-ñOØ&ðOà	IôOó ðOð]Ðgk÷ ]ð ]ð Ûnó ØnØà)-ñUØ&ðUà	OôUó ðUð ;?ðaØ[_ñaØ7ðaØLXðaà	öað Ûsó ØsØà)-ñ[Ø&ð[à	Uô[ó ð[ð >BðdØ^bñdØ:ðdØO[ðdà	÷dñ drE   ra  F)Úinitc            &      ó@  ^ • \ rS rSr% SrS\S'   \" SSSSS9rS\S	'   \S;S
 j5       r	SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS.%                                                                         S<S jjr
\S=S j5       rS>S jr\S;S j5       r\S;S j5       r\S;S j5       r\S;S j5       r\S;S j5       r\S;S j5       rS?S jrS@S jr\SAS j5       rSBS jrSCS jrSDS jrSES jrSFS jr      SGS jr        SHS jr        SIS jr        SJS  jr       SKS! jr!SLU 4S" jjr"      SMS# jr#        SNS$ jr$        SOS% jr%        SPS& jr&SQS' jr'      SQS( jr(          SRS) jr)          SSS* jr*            STS+ jr+            SUS, jr,          SSS- jr-            SVS. jr.            SWS/ jr/            SXS0 jr0        SYS1 jr1        SZS2 jr2          S[S3 jr3          S\S4 jr4        SZS5 jr5        SZS6 jr6          S]S7 jr7          S^S8 jr8      S_S9 jr9S:r:U =r;$ )`ÚHooksiô  aî  Register hook functions via decorators or constructor kwargs.

For extension developers building reusable capabilities, subclass
[`AbstractCapability`][pydantic_ai.capabilities.AbstractCapability] directly.
For application code that needs a few hooks without the ceremony of a subclass,
use `Hooks`.

Example using decorators:

```python {test="skip" lint="skip"}
hooks = Hooks()

@hooks.on.before_model_request
async def log_request(ctx, request_context):
    print(f'Request: {request_context}')
    return request_context

agent = Agent('openai:gpt-5', capabilities=[hooks])
```

Example using constructor kwargs:

```python {test="skip" lint="skip"}
agent = Agent('openai:gpt-5', capabilities=[
    Hooks(before_model_request=log_request)
])
```
rA  rh  NF)Údefaultre  r@  ÚcompareúCapabilityOrdering | NoneÚ	_orderingc                ó   • g)NTrU   ri  s    rC   Ú_emits_app_eventsÚHooks._emits_app_events  ó   € àrE   )%rn  rv  r{  r‚  r‰  rŽ  r”  r›  r£  rb   r²  rº  rÀ  rÈ  rÑ  rÖ  rÛ  rã  ré  rð  rö  rû  r   r  r  r  r  r  r%  r*  r/  r5  r;  ÚorderingÚidÚdescriptionÚdefer_loadingc       %        óä  • U#U l         U$U l        U%U l        U"U l        0 U l        0 SU_SU_SU_SU_SU_SU_SU_SU_S	U	_S
U
_SU_SU_SU_SU_SU_SU_SU_0 SU_SU_SU_SU_SU_SU_SU_SU_SU_SU_SU_SU_SU_SU_S U _S!U!_En&U&R                  5        HR  u  n'n(U(c  M  U'S
:X  a  [        U(5      O
[        U(5      n)U R                  R                  U'/ 5      R                  U)5        MT     g )"Nrn  rv  r€  r‡  r‰  rŽ  r˜  r   r¢  rª  r²  rº  rÆ  rÎ  rÑ  rÖ  rÛ  rã  rí  rô  rö  rû  r  r
  r  r  r  r#  r%  r*  r3  r9  r?  )
rq  rr  rs  rk  rh  Úitemsr\   rQ   rO  rP  )*rA   rn  rv  r{  r‚  r‰  rŽ  r”  r›  r£  rb   r²  rº  rÀ  rÈ  rÑ  rÖ  rÛ  rã  ré  rð  rö  rû  r   r  r  r  r  r  r%  r*  r/  r5  r;  rp  rq  rr  rs  Ú_kwargsrR  rS   ra   s*                                             rC   r@   ÚHooks.__init__  s$  € ðh ˆŒØ&ˆÔØ*ˆÔØ!ˆŒØˆŒð"#
Ø˜*ð"#
à˜ð"#
ð ˜ð"#
ð ˜Ið	"#
ð
 ˜ð"#
ð ˜nð"#
ð ˜Xð"#
ð   ð"#
ð $Ð%5ð"#
ð ˜ð"#
ð #Ð$8ð"#
ð "Ð#6ð"#
ð ! -ð"#
ð %Ð&9ð"#
ð ˜]ð"#
ð  #Ð$8ð!"#
ð" #Ð$8ñ#"#
ð$ "Ð#6ð%"#
ð& ! -ð'"#
ð( %Ð&9ð)"#
ð* "Ð#6ð+"#
ð, !Ð"4ð-"#
ð.   ð/"#
ð0 $Ð%7ð1"#
ð2 %Ð&<ð3"#
ð4 $Ð%:ð5"#
ð6 # Oð7"#
ð8 'Ð(=ð9"#
ð: $Ð%:ð;"#
ð< #Ð$8ð="#
ð> " >ð?"#
ð@ &Ð';ðA"#
ðB )Ð*=ñC"#
ˆðF !Ÿ™ž‰IˆC�ØÓØ14¸
Ó1Bœ¨Ô-Ì
ÐSWÓHX�Ø—‘×)Ñ)¨#¨rÓ2×9Ñ9¸%Ö@ò )rE   c                ó   • [        U 5      $ )z3Decorator namespace for registering hook functions.)ra  ri  s    rC   ÚonÚHooks.on|  s   € ô ! Ó&Ð&rE   c                ó:   • U R                   R                  U/ 5      $ rh   )rh  Úget)rA   rR  s     rC   Ú_getÚ
Hooks._get�  s   € Ø�~‰~×!Ñ! # rÓ*Ð*rE   c                óŽ   • [        U 5      R                  [        R                  L=(       d    [        U R	                  S5      5      $ )Nr˜  )r¯  r˜  rg  Úboolr}  ri  s    rC   Ú_has_wrap_node_runÚHooks._has_wrap_node_run†  s1   € ä�D‹z×'Ñ'¬u×/BÑ/BÐB×fÄdÈ4Ï9É9ÐUdÓKeÓFfÐfrE   c                óŽ   • [        U 5      R                  [        R                  L=(       d    [        U R	                  S5      5      $ )Nr   )r¯  r   rg  r€  r}  ri  s    rC   Ú_has_on_node_run_errorÚHooks._has_on_node_run_errorŠ  s4   € ä�D‹z×+Ñ+´5×3JÑ3JÐJ×rÌdÐSW×S\ÑS\Ð]pÓSqÓNrÐrrE   c                óŽ   • [        U 5      R                  [        R                  L=(       d    [        U R	                  S5      5      $ )NrÆ  )r¯  rÆ  rg  r€  r}  ri  s    rC   Ú_has_wrap_model_requestÚHooks._has_wrap_model_requestŽ  s5   € ä�D‹z×,Ñ,´E×4LÑ4LÐL×uÔPTÐUY×U^ÑU^Ð_sÓUtÓPuÐurE   c                óŽ   • [        U 5      R                  [        R                  L=(       d    [        U R	                  S5      5      $ )NrÎ  )r¯  rÎ  rg  r€  r}  ri  s    rC   Ú_has_on_model_request_errorÚ!Hooks._has_on_model_request_error’  s:   € ä�D‹z×0Ñ0¼×8TÑ8TÐT÷ 
ÔX\Ø�I‰IÐ.Ó/óY
ð 	
rE   c                óŽ   • [        U R                  S5      5      =(       d%    [        U 5      R                  [        R                  L$ )Nr¢  )r€  r}  r¯  r¢  rg  ri  s    rC   Úhas_wrap_run_event_streamÚHooks.has_wrap_run_event_stream˜  s9   € ô �—‘Ð2Ó3Ó4÷ SÜ�D‹z×/Ñ/´u×7RÑ7RÐRð	
rE   c                óÖ   • [        U R                  S5      5      =(       dI    [        U 5      R                  [        R                  L=(       d    [        [        [        U 5      5      5      $ )Nrª  )r€  r}  r¯  rª  rg  r    ri  s    rC   Úhas_on_eventÚHooks.has_on_eventŸ  sL   € ô �—‘˜:Ó&Ó'÷ :Ü�D‹z×"Ñ"¬%¯.©.Ð8÷:äÔ,¬T°$«ZÓ8Ó9ð	
rE   c                óÜ   ^• [        U 5      R                  [        R                  L=(       d@    [        [        U 5      T5      =(       d$    [	        U4S jU R                  S5       5       5      $ )Nc              3  ó<   >#   • U  H  n[        UT5      v •  M     g 7frh   )rc   )Ú.0ra   rb   s     €rC   Ú	<genexpr>Ú#Hooks.listens_to.<locals>.<genexpr>«  s   øé € ÐYÒCX¸%Ô'¨¨u×5Ð5ÒCXùs   ƒrª  )r¯  rª  rg  r!   Úanyr}  )rA   rb   s    `rC   Ú
listens_toÚHooks.listens_to§  sO   ø€ ä�‹J×Ñ¤u§~¡~Ð5÷ ZÜ ¤ d£¨UÓ3÷ZäÔYÀ4Ç9Á9ÈZÔCXÓYÓYð	
rE   c                ó   • U R                   $ rh   )rk  ri  s    rC   Úget_orderingÚHooks.get_ordering®  s   € Ø�~‰~ÐrE   c                ó   • g rh   rU   )Úclss    rC   Úget_serialization_nameÚHooks.get_serialization_name±  ro  rE   c                óœ   • U R                   R                  5        VVs0 s H  u  pU(       d  M  U[        U5      _M     nnnSU S3$ s  snnf )NzHooks(Ú))rh  ru  Úlen)rA   ÚkÚvÚ
registereds       rC   Ú__repr__ÚHooks.__repr__µ  sH   € Ø,0¯N©N×,@Ñ,@Ô,BÔHÒ,B¡D AÄa“i�aœ˜Q›’iÑ,Bˆ
ÑHØ˜
�| 1Ð%Ð%ùó Is
   žA¯Ac              ƒ  ój   #   • U R                  S5       H  n[        USU5      I S h  v•N   M     g  N	7f)Nrn  ©r}  rB  )rA   ri   ra   s      rC   rn  ÚHooks.before_run¼  s-   é € Ø—Y‘Y˜|Ö,ˆEÜ˜e \°3Ó7×7Ò7ò -Ù7ùs   ‚%3§1¨
3c             ƒ  óh   #   • U R                  S5       H  n[        USXS9I S h  v•N nM     U$  N
7f)Nrv  )rs   rª  )rA   ri   rs   ra   s       rC   rv  ÚHooks.after_runÀ  s4   é € Ø—Y‘Y˜{Ö+ˆEÜ& u¨k¸3ÑN×NŠFñ ,àˆñ Oùó   ‚#2¥0¦2c          	   ƒ  óÆ   #   • U R                  S5      nU(       d  U" 5       I S h  v•N $ Un[        U5       H  n[        USU0 US 5      nM     U" 5       I S h  v•N $  N7 N7f)Nr€  ©r}  ÚreversedÚ_make_wrap_link)rA   ri   r{   rI  Úchainra   s         rC   r€  ÚHooks.wrap_runÅ  s\   é € Ø—)‘)˜JÓ'ˆÞÙ ›—?Ð"Ø$+ˆÜ˜gÖ&ˆEÜ# E¨:°s¸BÀÀtÓLŠEñ 'á“W�}Ðñ	 #ñ ùs!   ‚#A!¥A¦2A!ÁAÁA!ÁA!c             ƒ  óž   #   • U R                  S5       H  n [        USXS9I S h  v•N s  $    Ue N
! [         a  nUn S nAM1  S nAff = f7f)Nr‡  )r�   )r}  rB  rƒ   )rA   ri   r�   ra   Ú	new_errors        rC   r‡  ÚHooks.on_run_errorÎ  sP   é € Ø—Y‘Y˜~Ö.ˆEð"Ü(¨°ÀÑQ×QÒQñ /ð
 ˆñ RøÜ ó "Ø!–ûð"üs5   ‚A˜3¦1§3ªA±3³
A
½A¿AÁA
Á
Ac             ƒ  óh   #   • U R                  S5       H  n[        USXS9I S h  v•N nM     U$  N
7f)Nr‰  )rˆ   rª  )rA   ri   rˆ   ra   s       rC   r‰  ÚHooks.before_node_runÖ  s8   é € ð —Y‘YÐ0Ö1ˆEÜ$ UÐ,=¸sÑN×NŠDñ 2àˆñ Oùr®  c          	   ƒ  ój   #   • U R                  S5       H  n[        USXUS9I S h  v•N nM     U$  N
7f)NrŽ  )rˆ   rs   rª  )rA   ri   rˆ   rs   ra   s        rC   rŽ  ÚHooks.after_node_runÝ  s;   é € ð —Y‘YÐ/Ö0ˆEÜ& uÐ.>ÀÐW]Ñ^×^ŠFñ 1àˆñ _ùó   ‚$3¦1§3c          	   ƒ  óÊ   #   • U R                  S5      nU(       d  U" U5      I S h  v•N $ Un[        U5       H  n[        USU0 US5      nM     U" U5      I S h  v•N $  N8 N7f)Nr˜  rˆ   r°  )rA   ri   rˆ   r{   rI  r³  ra   s          rC   r˜  ÚHooks.wrap_node_runè  sd   é € ð —)‘)˜OÓ,ˆÞÙ  ›×&Ð&Ø$+ˆÜ˜gÖ&ˆEÜ# E¨?¸CÀÀUÈFÓSŠEñ 'á˜4“[× Ð ñ	 'ñ !ùó!   ‚$A#¦A§3A#ÁA!ÁA#Á!A#c          	   ƒ  ó    #   • U R                  S5       H  n [        USXUS9I S h  v•N s  $    Ue N
! [         a  nUn S nAM2  S nAff = f7f)Nr   )rˆ   r�   ©r}  rB  r�   )rA   ri   rˆ   r�   ra   r¶  s         rC   r   ÚHooks.on_node_run_error÷  sW   é € ð —Y‘YÐ2Ö3ˆEð"Ü(¨Ð0CÀSÐ[`Ña×aÒañ 4ð
 ˆñ bøÜó "Ø!–ûð"üó6   ‚A˜4§2¨4«A²4´
A¾AÁ AÁAÁAc              ój  #   • U/n[        U R                  S5      5       H#  nUR                  XS9nUR                  U5        M%      U  S h  v•N nU7v •  M   N
 [        R
                  " [        U5      5      I S h  v•N    g ! [        R
                  " [        U5      5      I S h  v•N    f = f7f)Nr¢  )r¢   )r±  r}  rS   rP  r   Ú
aclose_all)rA   ri   r¢   Úwrapped_streamsra   rb   s         rC   r¢  ÚHooks.wrap_run_event_stream  s•   é € ð "˜(ˆÜ˜dŸi™iÐ(?Ó@ÖAˆEØ—Z‘Z �ZÐ3ˆFØ×"Ñ" 6Ö*ñ Bð	?Ù%÷ �eØ•ñ˜vô ×#Ò#¤H¨_Ó$=Ó>×>Ò>ø”&×#Ò#¤H¨_Ó$=Ó>×>Ò>üsZ   ‚AB3ÁB Á
AÁAÁAÁB ÁAÁB Á"B3Á?BÂ B3Â#B0Â)B,Â*B0Â0B3c             ƒ  óÚ  >#   • UnUR                   R                  [        U5      5      =nb  UnU R                  S5       H�  n[	        XR5      (       d  M  [        USX5      I S h  v•N nUb  XbL a  M3  [        R                  " S[        SS9  Un[        U[        5      (       a  UR                  S:w  d  Mv  XaR                   [        U5      '   M�     [        TU ]5  XS9I S h  v•N   g  N� N7f)Nrª  zzreturning a replacement event from `hooks.on.event` is deprecated; use `hooks.on.run_event_stream` to transform the streamé   )Ú
stacklevelÚ	immediate)rb   )Ú_event_stream_replacementsr|  rq  r}  rc   rB  ÚwarningsÚwarnr   r`   r   Úevent_dispatchr?   rª  )rA   ri   rb   Úoriginal_eventÚpriorra   ÚreplacementrB   s          €rC   rª  ÚHooks.on_event  sã   øé € ð ˆØ×3Ñ3×7Ñ7¼¸>Ó8JÓKÐKˆEÑXØˆEØ—Y‘Y˜zÖ*ˆEÜ'¨×5Ñ5ÙÜ +¨E°:¸sÓ J×JˆKØÑ" kÒ&:ÙÜ�MŠMðJä,Øò	ð  ˆEÜ˜n¬o×>Ñ>À.×B_ÑB_ÐcnÕBnØEP×.Ñ.¬r°.Ó/AÓBñ +ô  ‰gÑ˜sÐÐ0×0Ñ0ñ Kñ 	1ùs+   ƒA"C+Á%C'Á&AC+Â6+C+Ã!C)Ã"C+Ã)C+c              ƒ  ól   #   • U R                  S5       H  n[        USX5      I S h  v•N nM     U$  N
7f)Nr²  rª  )rA   ri   r®   ra   s       rC   r²  ÚHooks.before_model_request*  s9   é € ð —Y‘YÐ5Ö6ˆEÜ$/°Ð7MÈsÓ$d×dŠOñ 7àÐñ eùó   ‚%4§2¨4c          	   ƒ  ój   #   • U R                  S5       H  n[        USXUS9I S h  v•N nM     U$  N
7f)Nrº  )r®   r´   rª  )rA   ri   r®   r´   ra   s        rC   rº  ÚHooks.after_model_request1  sA   é € ð —Y‘YÐ4Ö5ˆEÜ(ØÐ,¨cÐ]eñ÷ ŠHñ 6ð ˆñùr¼  c          	   ƒ  óÊ   #   • U R                  S5      nU(       d  U" U5      I S h  v•N $ Un[        U5       H  n[        USU0 US5      nM     U" U5      I S h  v•N $  N8 N7f)NrÆ  r®   r°  )rA   ri   r®   r{   rI  r³  ra   s          rC   rÆ  ÚHooks.wrap_model_request>  si   é € ð —)‘)Ð0Ó1ˆÞÙ  Ó1×1Ð1Ø$+ˆÜ˜gÖ&ˆEÜ# EÐ+?ÀÀbÈ%ÐQbÓcŠEñ 'á˜?Ó+×+Ð+ñ	 2ñ ,ùr¿  c          	   ƒ  ó    #   • U R                  S5       H  n [        USXUS9I S h  v•N s  $    Ue N
! [         a  nUn S nAM2  S nAff = f7f)NrÎ  )r®   r�   rÁ  )rA   ri   r®   r�   ra   r¶  s         rC   rÎ  ÚHooks.on_model_request_errorM  s_   é € ð —Y‘YÐ7Ö8ˆEð"Ü(ØÐ3°SÐafñ÷ ò ñ 9ð ˆñøô ó "Ø!–ûð"ürÃ  c              ƒ  ól   #   • U R                  S5       H  n[        USX5      I S h  v•N nM     U$  N
7f)NrÑ  rª  ©rA   ri   rÆ   ra   s       rC   rÑ  ÚHooks.prepare_toolsY  s5   é € Ø—Y‘Y˜Ö/ˆEÜ)¨%°À#ÓQ×QŠIñ 0àÐñ RùrÖ  c              ƒ  ól   #   • U R                  S5       H  n[        USX5      I S h  v•N nM     U$  N
7f)NrÖ  rª  rÞ  s       rC   rÖ  ÚHooks.prepare_output_tools^  s9   é € ð —Y‘YÐ5Ö6ˆEÜ)¨%Ð1GÈÓX×XŠIñ 7àÐñ YùrÖ  c          
   ƒ  óz   #   • [        U R                  S5      US9 H  n[        USXX4S9I S h  v•N nM     U$  N
7f)NrÛ  ©rÔ   ©rÔ   rÕ   rÖ   ©rJ  r}  rB  ©rA   ri   rÔ   rÕ   rÖ   ra   s         rC   rÛ  ÚHooks.before_tool_validatee  sD   é € ô *¨$¯)©)Ð4JÓ*KÐRVÔWˆEÜ$ UÐ,BÀCÐ]eÑq×qŠDñ Xàˆñ rùó   ‚,;®9¯;c          
   ƒ  óz   #   • [        U R                  S5      US9 H  n[        USXX4S9I S h  v•N nM     U$  N
7f)Nrã  rã  rä  rå  ræ  s         rC   rã  ÚHooks.after_tool_validatel  óD   é € ô *¨$¯)©)Ð4IÓ*JÐQUÔVˆEÜ$ UÐ,AÀ3Ð\dÑp×pŠDñ Wàˆñ qùrè  c          	   ƒ  óÞ   #   • [        U R                  S5      US9nU(       d  U" U5      I S h  v•N $ Un[        U5       H  n[        USXUS.US5      nM     U" U5      I S h  v•N $  N: N7f)Nrí  rã  ©rÔ   rÕ   rÖ   ©rJ  r}  r±  r²  ©	rA   ri   rÔ   rÕ   rÖ   r{   rI  r³  ra   s	            rC   rí  ÚHooks.wrap_tool_validates  sw   é € ô ' t§y¡yÐ1EÓ'FÈTÑRˆÞÙ  ›×&Ð&Ø$+ˆÜ˜gÖ&ˆEÜ#ØÐ+¨SÈXÑ2VÐX]Ð_eóŠEñ 'ñ ˜4“[× Ð ñ 'ñ !ùó!   ‚,A-®A)¯5A-Á$A+Á%A-Á+A-c             ƒ  ó¾   #   • [        U R                  S5      US9 H  n [        USXX4US9I S h  v•N s  $    Ue N
! [        [        4 a  nUn S nAM9  S nAff = f7f)Nrô  rã  ©rÔ   rÕ   rÖ   r�   )rJ  r}  rB  r   r   ©rA   ri   rÔ   rÕ   rÖ   r�   ra   r¶  s           rC   rô  ÚHooks.on_tool_validate_error†  so   é € ô *¨$¯)©)Ð4LÓ*MÐTXÔYˆEð"Ü(ØÐ3°SÈhÐinñ÷ ò ñ Zð ˆñøô $¤ZÐ0ó "Ø!–ûð"üs7   ‚A =°;±=´A»=½AÁAÁAÁAÁAc          
   ƒ  óz   #   • [        U R                  S5      US9 H  n[        USXX4S9I S h  v•N nM     U$  N
7f)Nrö  rã  rä  rå  ræ  s         rC   rö  ÚHooks.before_tool_execute˜  rë  rè  c             ƒ  ó|   #   • [        U R                  S5      US9 H  n[        USXX4US9I S h  v•N nM     U$  N
7f)Nrû  rã  )rÔ   rÕ   rÖ   rs   rå  )rA   ri   rÔ   rÕ   rÖ   rs   ra   s          rC   rû  ÚHooks.after_tool_executeŸ  sL   é € ô *¨$¯)©)Ð4HÓ*IÐPTÔUˆEÜ&ØÐ+¨SÀhÐbhñ÷ ŠFñ Vð ˆñùs   ‚-<¯:°<c          	   ƒ  óÞ   #   • [        U R                  S5      US9nU(       d  U" U5      I S h  v•N $ Un[        U5       H  n[        USXUS.US5      nM     U" U5      I S h  v•N $  N: N7f)Nr  rã  rí  rÖ   rî  rï  s	            rC   r  ÚHooks.wrap_tool_execute®  sw   é € ô ' t§y¡yÐ1DÓ'EÈDÑQˆÞÙ  ›×&Ð&Ø$+ˆÜ˜gÖ&ˆEÜ#ØÐ*¨CÈHÑ1UÐW\Ð^dóŠEñ 'ñ ˜4“[× Ð ñ 'ñ !ùrñ  c             ƒ  ó²   #   • [        U R                  S5      US9 H  n [        USXX4US9I S h  v•N s  $    Ue N
! [         a  nUn S nAM3  S nAff = f7f)Nr
  rã  ró  )rJ  r}  rB  r�   rô  s           rC   r
  ÚHooks.on_tool_execute_errorÁ  sj   é € ô *¨$¯)©)Ð4KÓ*LÐSWÔXˆEð"Ü(ØÐ2°CÈXÐhmñ÷ ò ñ Yð ˆñøô ó "Ø!–ûð"üs7   ‚A =°;±=´A»=½
AÁAÁ	AÁAÁAc          	   ƒ  ój   #   • U R                  S5       H  n[        USXUS9I S h  v•N nM     U$  N
7f)Nr  ©r  r	  rª  ©rA   ri   r  r	  ra   s        rC   r  ÚHooks.before_output_validateÓ  sA   é € ð —Y‘YÐ7Ö8ˆEÜ&ØÐ/°Ð\bñ÷ ŠFñ 9ð ˆñùr¼  c          	   ƒ  ój   #   • U R                  S5       H  n[        USXUS9I S h  v•N nM     U$  N
7f)Nr  rÿ  rª  r   s        rC   r  ÚHooks.after_output_validateÜ  sA   é € ð —Y‘YÐ6Ö7ˆEÜ&ØÐ.°Ð[añ÷ ŠFñ 8ð ˆñùr¼  c          	   ƒ  óÎ   #   • U R                  S5      nU(       d  U" U5      I S h  v•N $ Un[        U5       H  n[        USUSU0US5      nM     U" U5      I S h  v•N $  N: N7f)Nr  r  r	  r°  ©rA   ri   r  r	  r{   rI  r³  ra   s           rC   r  ÚHooks.wrap_output_validateé  ss   é € ð —)‘)Ð2Ó3ˆÞÙ  ›×(Ð(Ø$+ˆÜ˜gÖ&ˆEÜ#ØÐ-¨sÐ5EÀ~Ð4VÐX]Ð_góŠEñ 'ñ ˜6“]×"Ð"ñ )ñ #ùó!   ‚$A%¦A!§5A%ÁA#ÁA%Á#A%c          
   ƒ  ó°   #   • U R                  S5       H  n [        USUUUUS9I S h  v•N s  $    Ue N
! [        [        4 a  nUn S nAM:  S nAff = f7f)Nr#  ©r  r	  r�   )r}  rB  r   r   ©rA   ri   r  r	  r�   ra   r¶  s          rC   r#  ÚHooks.on_output_validate_errorû  sk   é € ð —Y‘YÐ9Ö:ˆEð
"Ü(ØØ.ØØ#1Ø!Øñ÷ ò ñ ;ð ˆñøô $¤ZÐ0ó "Ø!–ûð"üs7   ‚A˜6©4ª6­A´6¶AÁAÁAÁAÁAc          	   ƒ  ój   #   • U R                  S5       H  n[        USXUS9I S h  v•N nM     U$  N
7f)Nr%  rÿ  rª  r   s        rC   r%  ÚHooks.before_output_process  sA   é € ð —Y‘YÐ6Ö7ˆEÜ&ØÐ.°Ð[añ÷ ŠFñ 8ð ˆñùr¼  c          	   ƒ  ól   #   • U R                  S5       H  n[        USUUUS9I S h  v•N nM     U$  N
7f)Nr*  rÿ  rª  r   s        rC   r*  ÚHooks.after_output_process  sE   é € ð —Y‘YÐ5Ö6ˆEÜ&ØØ&ØØ-Øñ÷ ŠFñ 7ð ˆñùrÖ  c          	   ƒ  óÎ   #   • U R                  S5      nU(       d  U" U5      I S h  v•N $ Un[        U5       H  n[        USUSU0US5      nM     U" U5      I S h  v•N $  N: N7f)Nr3  r  r	  r°  r  s           rC   r3  ÚHooks.wrap_output_process'  ss   é € ð —)‘)Ð1Ó2ˆÞÙ  ›×(Ð(Ø$+ˆÜ˜gÖ&ˆEÜ#ØÐ,¨cÐ4DÀnÐ3UÐW\Ð^fóŠEñ 'ñ ˜6“]×"Ð"ñ )ñ #ùr  c          
   ƒ  ó    #   • U R                  S5       H  n [        USXX4S9I S h  v•N s  $    Ue N
! [         a  nUn S nAM2  S nAff = f7f)Nr9  r	  rÁ  r
  s          rC   r9  ÚHooks.on_output_process_error9  s_   é € ð —Y‘YÐ8Ö9ˆEð"Ü(ØÐ4°cÐagñ÷ ò ñ :ð ˆñøô ó "Ø!–ûð"ürÃ  c             ƒ  ó:  #   • [        5       nUnSnU R                  S5       Hh  n[        USXS9I S h  v•N nUb"  UR                  (       d  UR                  (       d  M=  SnUR                  U5        UR                  U5      nUc    OUnMj     U(       a  U$ S $  Ne7f)NFr?  )r7  T)r   r}  rB  Ú	approvalsÚcallsÚupdateÚ	remaining)	rA   ri   r7  Úaccumulatedr  Úany_handledra   rs   Úremaining_or_nones	            rC   r?  Ú Hooks.handle_deferred_tool_callsJ  sœ   é € ô *Ó+ˆØˆ	ØˆØ—Y‘YÐ;Ö<ˆEÜ& uÐ.JÈCÑd×dˆFØ‰~ f×&6×&6¸&¿,¿,ÙØˆKØ×Ñ˜vÔ&Ø )× 3Ñ 3°FÓ ;ÐØ Ñ(ÙØ)ŠIñ =ö *ˆ{Ð3¨tÐ3ñ eùs   ‚1B³B´A&B)rk  rh  rs  rr  rq  )rm   r€  )Jrn  rB  rv  rC  r{  rD  r‚  rE  r‰  rF  rŽ  rG  r”  rH  r›  rI  r£  z!WrapRunEventStreamHookFunc | Nonerb   z(OnEventHookFunc[AgentStreamEvent] | Noner²  rL  rº  rM  rÀ  rN  rÈ  rO  rÑ  rP  rÖ  rQ  rÛ  rS  rã  rT  ré  rU  rð  rV  rö  rW  rû  rX  r   rY  r  rZ  r  r[  r  r\  r  r]  r  r^  r%  r_  r*  r`  r/  ra  r5  rb  r;  rc  rp  rj  rq  ú
str | Nonerr  r  rs  r€  )rm   z_HookRegistration[AgentDepsT])rR  rF   rm   úlist[_HookEntry[Any]])rb   r   rm   r€  )rm   rj  )rm   r  )rm   rF   )ri   úRunContext[AgentDepsT]rm   r@  )ri   r  rs   ru   rm   ru   )ri   r  r{   r-   rm   ru   )ri   r  r�   rƒ   rm   ru   )ri   r  rˆ   úAgentNode[AgentDepsT]rm   r   )ri   r  rˆ   r   rs   úNodeResult[AgentDepsT]rm   r!  )ri   r  rˆ   r   r{   zWrapNodeRunHandler[AgentDepsT]rm   r!  )ri   r  rˆ   r   r�   r�   rm   r!  )ri   r  r¢   r¤   rm   r¤   )ri   r  rb   r   rm   r@  )ri   r  r®   r0   rm   r0   )ri   r  r®   r0   r´   r   rm   r   )ri   r  r®   r0   r{   r)   rm   r   )ri   r  r®   r0   r�   r�   rm   r   )ri   r  rÆ   rÉ   rm   rÉ   )
ri   r  rÔ   r   rÕ   r   rÖ   r'   rm   r'   )
ri   r  rÔ   r   rÕ   r   rÖ   r(   rm   r(   )ri   r  rÔ   r   rÕ   r   rÖ   r'   r{   r/   rm   r(   )ri   r  rÔ   r   rÕ   r   rÖ   r'   r�   rí   rm   r(   )ri   r  rÔ   r   rÕ   r   rÖ   r(   rs   r   rm   r   )ri   r  rÔ   r   rÕ   r   rÖ   r(   r{   r.   rm   r   )ri   r  rÔ   r   rÕ   r   rÖ   r(   r�   r�   rm   r   )ri   r  r  r1   r	  r&   rm   r&   )ri   r  r  r1   r	  r   rm   r   )
ri   r  r  r1   r	  r&   r{   r,   rm   r   )
ri   r  r  r1   r	  r&   r�   rí   rm   r   )
ri   r  r  r1   r	  r   r{   r+   rm   r   )
ri   r  r  r1   r	  r   r�   r�   rm   r   )ri   r  r7  r   rm   zDeferredToolResults | None)<rH   rI   rJ   rK   rL   rV   r	   rk  rd  rm  r@   r
   ry  r}  r�  r„  r‡  rŠ  r�  r�  r˜  r›  ÚclassmethodrŸ  r§  rn  rv  r€  r‡  r‰  rŽ  r˜  r   r¢  rª  r²  rº  rÆ  rÎ  rÑ  rÖ  rÛ  rã  rí  rô  rö  rû  r  r
  r  r  r  r#  r%  r*  r3  r9  r?  rM   rN   rO   s   @rC   rg  rg  ô  s2  ø‡ ñð: 0Ó/Ù+0¸ÀEÐPUÐ_dÑ+e€IÐ(Óeàóó ðð 04Ø-1Ø&*Ø/3à8<Ø6:Ø/3Ø8<à>BØ:>àBFØ@DØ9=ØBFà59ØBFàBFØ@DØ9=ØBFà@DØ>BØ7;Ø@DàFJØDHØ=AØFJàDHØBFØ;?ØDHàFJà.2ØØ"&Ø#ñe`Að -ð	`Að
 +ð`Að $ð`Að -ð`Að 6ð`Að 4ð`Að -ð`Að 6ð`Að <ð`Að 8ð`Að" @ð#`Að$ >ð%`Að& 7ð'`Að( @ð)`Að, 3ð-`Að. @ð/`Að2 @ð3`Að4 >ð5`Að6 7ð7`Að8 @ð9`Að< >ð=`Að> <ð?`Að@ 5ðA`AðB >ðC`AðF !DðG`AðH  BðI`AðJ ;ðK`AðL  DðM`AðP  BðQ`AðR @ðS`AðT 9ðU`AðV BðW`AðZ Dð[`Að^ ,ð_`Að` ða`Aðb  ðc`Aðd õe`AðD ó'ó ð'ô+ð
 ógó ðgð ósó ðsð óvó ðvð ó
ó ð
ð
 ó
ó ð
ð ó
ó ð
ô
ôð óó ðô&ô8ôô
ôðØ)ðØ4Iðà	ôð	à#ð	ð $ð		ð
 'ð	ð 
 ô	ð!à#ð!ð $ð	!ð
 0ð!ð 
 ô!ðØ)ðØ4IðØR[ðà	ôð?Ø)ð?Ø6Uð?à	(ô?÷1ð8Ø)ðØ<Oðà	ôðà#ðð -ð	ð
  ðð 
ôð,à#ð,ð -ð	,ð
 )ð,ð 
ô,ð
Ø)ð
Ø?Rð
Ø[dð
à	ô
ôð
Ø)ðØ6Jðà	ôðØ)ðØ4@ðØLZðØbmðà	ôðØ)ðØ4@ðØLZðØbsðà	ôð!à#ð!ð ð	!ð
 !ð!ð ð!ð )ð!ð 
ô!ð&à#ðð ð	ð
 !ðð ðð ,ðð 
ôð$Ø)ðØ4@ðØLZðØbsðà	ôðà#ðð ð	ð
 !ðð  ðð ðð 
ôð!à#ð!ð ð	!ð
 !ð!ð  ð!ð (ð!ð 
ô!ð&à#ðð ð	ð
 !ðð  ðð ðð 
ôð$Ø)ðØ>KðØU^ðà	ôðà#ðð &ð	ð
 ðð 
ôð#à#ð#ð &ð	#ð
 ð#ð +ð#ð 
ô#ð$à#ðð &ð	ð
 ðð ,ðð 
ôð,Ø)ðØ>KðØUXðà	ôðØ)ðØ>KðØUXðà	ôð#à#ð#ð &ð	#ð
 ð#ð *ð#ð 
ô#ð$à#ðð &ð	ð
 ðð ðð 
ôð"4à#ð4ð 'ð	4ð
 
$÷4ò 4rE   rg  c                ól   ^ ^^^^^• [        U5      mT(       a  SUU UUUU4S jjnU$ SUU UUU4S jjnU$ )z*Build one link in a wrap middleware chain.c              “  ó^   >#   • [        T5      nXT'   [        TTT4ST0UD6I S h  v•N $  N7f©Nr{   )ÚdictrB  )ÚvalueÚkwri   ra   Úfrozen_kwargsÚhandler_argr<   Úinner_handlers     €€€€€€rC   ÚwrapperÚ _make_wrap_link.<locals>.wrapperp  s7   øé € Ü�mÓ$ˆBØ#ˆ{‰OÜ$ U¨I°sÑXÀMÐXÐUWÑX×XÐXÑXùs   ƒ#-¦+§-c               “  ó@   >#   • [        TTT 4ST0TD6I S h  v•N $  N7fr%  )rB  )ri   ra   r)  r<   r+  s   €€€€€rC   Úwrapper_no_argÚ'_make_wrap_link.<locals>.wrapper_no_argw  s&   øé € Ü  ¨	°3Ñ_ÀÐ_ÐQ^Ñ_×_Ð_Ñ_ùs   ƒ—˜)r'  r   rm   r   )rm   r   )r&  )	ra   r<   ri   Ústatic_kwargsr+  r*  r,  r/  r)  s	   ``` ``  @rC   r²  r²  c  s9   ý€ ô ˜Ó'€Mæ÷	Yô 	Yð
 ˆ÷`ó `ð ÐrE   )ra   ú_HookEntry[Any]rb   r   rm   r€  )
ra   r2  r<   rF   rÖ   r   rA  r   rm   r   )rS   úCallable[..., Any]rÖ   r   rA  r   rm   r   )rI  r  rÔ   r   rm   r  )
rS  rA  rR  rF   rS   ú_FuncT | Noner>   rT   rm   ú#_FuncT | Callable[[_FuncT], _FuncT])rS  rA  rR  rF   rS   r4  rZ   rR  r>   rT   rm   r5  )ra   r2  r<   rF   ri   rl   r1  zdict[str, Any]r+  r3  r*  r  rm   r3  )srL   Ú
__future__r   rÍ  Úcollections.abcr   r   r   r   Údataclassesr   r	   Ú	functoolsr
   Útypingr   r   r   r   r   r   r:  Úpydanticr   Úpydantic_air   Úpydantic_ai._warningsr   Úpydantic_ai.exceptionsr   r   Úpydantic_ai.messagesr   r   r   r   Úpydantic_ai.toolsr   r   r   r   r   Ú	_on_eventr    r!   Úabstractr"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   Úpydantic_ai.modelsr0   Úpydantic_ai.outputr1   Úpydantic_ai.runr2   r3   r5   r>  r8   rQ   rX   r\   rc   re   rp   rx   r~   r…   r�   r“   r˜   rŸ   r¦   r«   r±   r¸   r½   rÂ   rË   rÐ   rÙ   râ   rè   rï   rô   rú   rÿ   r  r  r  r  r   r%  r*  r/  r4  rB  r=  rJ  rW  r_  ra  rg  r²  rU   rE   rC   Ú<module>rF     sã  ðñõ( #ã ß HÓ Hß (Ý %ß K× Kã Ý $å Ý >ß <ß _Ó _ß oÕ oç B÷÷ ÷ ÷ ö" Ý6Ý0Ý.á	� ¨#¨s¨(Ñ!3Ñ	4€Ù	�Ð!1ÀÑ	F€ôb�} lô bð ô!�˜‘ó !ó ð!ð ô(�Z Ñ'ó (ó ð(ð ô9�j Ñ(ó 9ó ð9ôsôO˜ô OôM�xô MôI�hô IôF˜ô Fô|˜Hô |ôW˜8ô Wô`˜(ô `ôP˜Xô Pô. ô .ôK�h ¨¡ô KôS ô Sôc ô côl˜xô lô\ (ô \ôP˜8ô PôP ô Pôa ô aôs ô sôO˜xô OôR (ô Rôs ô sôd˜xô dôx˜hô xôi ô iôN 8ô Nô| (ô |ôf ô fôg Hô gô| (ô |ô| ô |ô_ ô _ôN 8ô Nô^ hô ^ô3ô Yôð" !ñØ.ðà	ðð ðð
 ðð )õð0 #'Ø ñØ.ðà	ðð ðð
  ðð ðð )õô0[d˜ 
Ñ+ô [dñB �Ñôh	4Ð˜zÑ*ó h	4ó ðh	4ð\Øðàðð 
ðð "ð	ð
 &ðð ðð õrE   