ó
    ±"³j5¼  ã                  ó  • S SK Jr  S SKJrJrJrJrJr  S SKJ	r	J
r
Jr  S SKJrJrJr  S SKJr  S SKJrJrJrJrJr  S SKJrJrJr  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'J(r(J)r)J*r*J+r+  S SK,J-r-J.r.J/r/  S SK0J1r1  S SK2J3r3  SSK4J5r5J6r6  SSK7J8r8J9r9J:r:  SSK;J<r<J=r=J>r>J?r?J@r@  \(       a0  S SKAJBrB  S SKCJDrD  S SKEJFrFJGrGJHrHJIrI  S SKJJKrK  S SKLJMrM  S SKNJOrO  S SKPJQrQ  \	 " S S\<\&   5      5       rR        S)S jrS        S*S jrT            S+S jrU        S,S jrV            S-S  jrW          S.S! jrX          S/S" jrY        S0S# jrZS1S$ jr[      S2S% jr\        S3S& jr]S4S' jr^g()5é    )Úannotations)ÚAsyncIterableÚ	AwaitableÚCallableÚMappingÚSequence)Ú	dataclassÚfieldÚreplace)ÚTYPE_CHECKINGÚAnyÚcast)ÚValidationError)ÚAgentInstructionÚAgentInstructionsÚSourcedInstructionÚnormalize_instructionsÚvalidate_instruction_id_segment)Ú
aclose_allÚgatherÚreplace_no_init)Ú
ModelRetry)ÚAgentStreamEventÚModelResponseÚToolCallPart)ÚModelSettingsÚmerge_model_settings)Ú
AgentDepsTÚAgentNativeToolÚDeferredToolRequestsÚDeferredToolResultsÚ
RunContextÚToolDefinition)ÚAbstractToolsetÚAgentToolsetÚCombinedToolset)ÚCapabilityOwnedToolset)ÚDynamicToolseté   )Úcollect_on_event_methodsÚmarked_listens_to)Úcollect_leavesÚis_innermostÚsort_capabilities)ÚAbstractCapabilityÚ
AgentModelÚ	RawOutputÚWrapOutputProcessHandlerÚWrapOutputValidateHandler)Ú_agent_graph)ÚAbstractAgent)ÚKnownModelNameÚModelÚModelRequestContextÚModelResolutionContext)ÚOutputContext)ÚFinalResult)ÚAgentRunResult)ÚEndc                  ó0  ^ • \ rS rSr% SrS\S'   \" SSS9rS\S'   SES jr SF     SGS	 jjr	SES
 jr
SHS jr    SIS jr\SJS j5       r\SJS j5       r\SJS j5       r\SJS j5       r\SJS j5       r\SJS j5       rSKS jrSLS 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\SJS j5       r      STS jrSUS jr SVS  jr!SWS! jr"      SXS" jr#      SXS# jr$    SYS$ jr%SYS% jr&      SZS& jr'      S[S' jr(      S\S( jr)      S]S) jr*        S^S* jr+        S_S+ jr,        S`S, jr-SaU 4S- jjr.      SbS. jr/      ScS/ jr0        SdS0 jr1        SeS1 jr2        SfS2 jr3          SgS3 jr4          ShS4 jr5            SiS5 jr6            SjS6 jr7          ShS7 jr8            SkS8 jr9            SlS9 jr:            SmS: jr;        SnS; jr<        SoS< jr=          SpS= jr>          SqS> jr?        SoS? jr@        SoS@ jrA          SrSA jrB          SsSB jrC      StSC jrDSDrEU =rF$ )uÚCombinedCapabilityé4   u  A capability that combines multiple capabilities.

When any child returns a fresh instance from
[`for_agent`][pydantic_ai.capabilities.AbstractCapability.for_agent] or
[`for_run`][pydantic_ai.capabilities.AbstractCapability.for_run], the container is rebound
via `_rebound`: a shallow copy holding the new children, with subclass state carried over
verbatim and `__init__`/`__post_init__` not re-run. Compute values derived from `capabilities`
on access (e.g. via a property) rather than caching them at construction, so they can't go
stale across a rebind. `_instruction_sources` is the one thing that can't be â€” flattening
destroys what it records â€” so it's carried across by `_rebound` instead, and swapping children
any other way (`replace()`) silently rebuilds it from the flattened list.
ú(Sequence[AbstractCapability[AgentDepsT]]ÚcapabilitiesF)ÚinitÚreprÚ_instruction_sourcesc                ón  • U R                   b  [        U R                   SS9  / nU R                   Hl  n[        U[        5      (       aC  [        U5      R                  [        R                  L a  UR                  UR                  5        M[  UR                  U5        Mn     Xl        U R                  5         g )NzCapability id)Úkind)Úidr   rB   Ú
isinstancer?   ÚtypeÚget_instructionsÚextendrE   ÚappendÚ+_CombinedCapability__normalize_capabilities)ÚselfÚinstruction_sourcesÚ
capabilitys      Ú^/home/mande/repo/quber/.venv/lib/python3.13/site-packages/pydantic_ai/capabilities/combined.pyÚ__post_init__Ú CombinedCapability.__post_init__H   s�   € Ø�7‰7ÑÜ+¨D¯G©G¸/ÒJØDFÐØ×+Ô+ˆJä˜:Ô'9×:Ñ:Ü˜Ó$×5Ñ5Ô9K×9\Ñ9\Ò\ð $×*Ñ*¨:×+JÑ+JÖKà#×*Ñ*¨:Ö6ñ ,ð %8Ô!Ø×%Ñ%Õ'ó    c                óä  ^^^• [        U [        U5      S9nTcM  0 n[        U R                  U5       H/  u  pVUR	                  [        U5      / 5      R                  U5        M1     UmTR                  5        VVs0 s H  u  pxU[        U5      _M     snnmSU4S jjmSUU4S jjn	UR                   V
s/ s H  o©" U
5      =nc  M  UPM     sn
Ul        UR                  5         U$ s  snnf s  sn
f )ue  A shallow copy holding `new_capabilities`, with the composition view carried across.

The only supported way to swap a container's children. `replace()` would re-run
`__post_init__`, which rebuilds `_instruction_sources` from the already-flattened
`capabilities` â€” and flattening is what drops a nested container that overrides
`get_instructions`, so rebuilding is exactly what loses it.

`replacements` maps each old child by `id()` to what replaced it, or to `None` when it was
removed. One decision per *occurrence*, in the order the children were visited: the same
object may sit in `capabilities` more than once, and a merge that keeps the first and drops
the rest has a different answer for each. Keying by `id()` alone would collapse those into
one, so every occurrence would take the surviving decision and contribute its instructions
again. It defaults to pairing the old children with the new ones positionally, which only
holds when every child was replaced one-for-one;
[`visit_and_replace`][pydantic_ai.capabilities.AbstractCapability.visit_and_replace] can
drop children, so it passes the mapping explicitly.
)rB   c                ój   >• T[        U 5         n[        U5      S:”  a  UR                  S5      $ US   $ )Nr)   r   )rH   ÚlenÚpop)rQ   Ú	decisionsÚpendings     €rR   ÚtakeÚ)CombinedCapability._rebound.<locals>.take€   s4   ø€ Ø¤ :£Ñ/ˆIÜ'*¨9£~¸Ó'9�9—=‘= Ó#ÐK¸yÈ¹|ÐKrU   c                ó<  >• [        U 5      T;   a  T" U 5      $ [        U [        5      (       d   eU R                   Vs/ s H  n[        U5      T;  a  UOT" U5      PM     nnU Vs/ s H	  oc  M  UPM     nnU(       a  U R	                  UT5      $ S $ s  snf s  snf ©N)rH   rI   r?   rB   Ú_rebound)ÚsourceÚchildÚrebound_childrenÚ	survivingÚreplacementsr\   s       €€rR   ÚrebindÚ+CombinedCapability._rebound.<locals>.rebind„   s¥   ø€ Ü�&‹z˜\Ó)Ù˜F“|Ð#ô ˜fÔ&8×9Ñ9Ð9Ð9àU[×UhÒUhó ÚUhÈEœ˜E›¨,Ó6‘¹DÀ»KÒGÑUhð ð  ñ -=ÓRÒ,< 5ŸÑ,<ˆIÐRö @I�6—?‘? 9¨lÓ;ÐRÈdÐRùò ùò Ss   ¾#BÁ'BÁ1B)rQ   úAbstractCapability[AgentDepsT]Úreturnú%AbstractCapability[AgentDepsT] | None)ra   rh   ri   rj   )
r   ÚlistÚziprB   Ú
setdefaultrH   rM   ÚitemsrE   rN   )rO   Únew_capabilitiesre   Únew_selfÚ
positionalÚoldÚnewÚkeyrZ   rf   ra   Úreboundr[   r\   s     `         @@rR   r`   ÚCombinedCapability._rebound\   sñ   ú€ ô, # 4´dÐ;KÓ6LÑMˆð ÑØQSˆJÜ × 1Ñ 1Ð3CÖD‘�Ø×%Ñ%¤b¨£g¨rÓ2×9Ñ9¸#Ö>ñ Eà%ˆLð
 ?K×>PÑ>PÔ>RÔSÒ>R©N¨C�3œ˜Y›Ò'Ñ>RÒSˆ÷	L÷	Sð 	Sð& #+×"?Ò"?ó)
Ú"?˜ÈvÐV\Ë~ÐD]ÀG�GÑ"?ñ)
ˆÔ%ð 	×)Ñ)Ô+Øˆùó9 Tùò0)
s   Á:C'Â5C-ÃC-c                óH  • / nU R                    HF  n[        U[        5      (       a  UR                  UR                   5        M5  UR	                  U5        MH     Xl         [        S [        U 5       5       5      (       a$  [        [        U R                   5      5      U l         g g )Nc              3  óD   #   • U  H  oR                  5       S Lv •  M     g 7fr_   )Úget_ordering)Ú.0Úleafs     rR   Ú	<genexpr>Ú>CombinedCapability.__normalize_capabilities.<locals>.<genexpr>ª   s   é € ÐPÒ;O°4× Ñ Ó"¨$Õ.Ò;Oùs   ‚ )	rB   rI   r?   rL   rM   Úanyr,   r.   rk   )rO   ÚflatÚcaps      rR   Ú__normalize_capabilitiesÚ+CombinedCapability.__normalize_capabilitiesž   s�   € ð
 68ˆØ×$Ô$ˆCÜ˜#Ô1×2Ñ2Ø—‘˜C×,Ñ,Ö-à—‘˜CÖ ñ	 %ð
 !ÔÜÑP¼>È$Ô;OÓP×PÑPÜ 1´$°t×7HÑ7HÓ2IÓ JˆDÕð QrU   c                óL   • U R                    H  nUR                  U5        M     g r_   )rB   Úapply)rO   Úvisitorr€   s      rR   r„   ÚCombinedCapability.apply­   s   € Ø×$Ô$ˆCØ�I‰I�gÖò %rU   c                ó&  • / n0 nSnU R                    HZ  nUR                  U5      nUR                  [        U5      / 5      R	                  U5        XeLa  SnUc  MI  UR	                  U5        M\     U(       a  U $ U(       d  gU R                  X#5      $ )a'  Visit each child and rebuild the container from the survivors.

A child the visitor removed is reported to `_rebound` so the composition view drops it
too; see
[`AbstractCapability.visit_and_replace`][pydantic_ai.capabilities.AbstractCapability.visit_and_replace]
for the tree-walking contract.
TFN)rB   Úvisit_and_replacerm   rH   rM   r`   )rO   r…   Únew_capsre   Ú	unchangedr€   Únew_caps          rR   rˆ   Ú$CombinedCapability.visit_and_replace±   s”   € ð :<ˆð PRˆØˆ	Ø×$Ô$ˆCØ×+Ñ+¨GÓ4ˆGØ×#Ñ#¤B s£G¨RÓ0×7Ñ7¸Ô@ØÒ!Ø!�	ØÓ"Ø—‘ Ö(ñ %ö ØˆKÞð Ø�}‰}˜XÓ4Ð4rU   c                ó:   • [        S U R                   5       5      $ )Nc              3  ó8   #   • U  H  oR                   v •  M     g 7fr_   )Ú_has_wrap_node_run©rz   Úcs     rR   r|   Ú8CombinedCapability._has_wrap_node_run.<locals>.<genexpr>Ñ   s   é € ÐCÒ1B¨A×'Ö'Ò1Bùó   ‚©r~   rB   ©rO   s    rR   r�   Ú%CombinedCapability._has_wrap_node_runÏ   s   € äÑC°×1BÒ1BÓCÓCÐCrU   c                ó:   • [        S U R                   5       5      $ )Nc              3  ó8   #   • U  H  oR                   v •  M     g 7fr_   )Ú_has_on_node_run_errorr�   s     rR   r|   Ú<CombinedCapability._has_on_node_run_error.<locals>.<genexpr>Õ   s   é € ÐGÒ5F°×+Ö+Ò5Fùr“   r”   r•   s    rR   r™   Ú)CombinedCapability._has_on_node_run_errorÓ   s   € äÑG°T×5FÒ5FÓGÓGÐGrU   c                ó:   • [        S U R                   5       5      $ )Nc              3  ó8   #   • U  H  oR                   v •  M     g 7fr_   )Ú_has_wrap_model_requestr�   s     rR   r|   Ú=CombinedCapability._has_wrap_model_request.<locals>.<genexpr>Ù   s   é € ÐHÒ6G°×,Ö,Ò6Gùr“   r”   r•   s    rR   rž   Ú*CombinedCapability._has_wrap_model_request×   s   € äÑH°d×6GÒ6GÓHÓHÐHrU   c                ó:   • [        S U R                   5       5      $ )Nc              3  ó8   #   • U  H  oR                   v •  M     g 7fr_   )Ú_has_on_model_request_errorr�   s     rR   r|   ÚACombinedCapability._has_on_model_request_error.<locals>.<genexpr>Ý   s   é € ÐLÒ:K°Q×0Ö0Ò:Kùr“   r”   r•   s    rR   r£   Ú.CombinedCapability._has_on_model_request_errorÛ   s   € äÑL¸$×:KÒ:KÓLÓLÐLrU   c                ó:   • [        S U R                   5       5      $ )Nc              3  ó8   #   • U  H  oR                   v •  M     g 7fr_   )Úhas_wrap_run_event_streamr�   s     rR   r|   Ú?CombinedCapability.has_wrap_run_event_stream.<locals>.<genexpr>á   s   é € ÐJÒ8I°1×.Ö.Ò8Iùr“   r”   r•   s    rR   r¨   Ú,CombinedCapability.has_wrap_run_event_streamß   s   € äÑJ¸×8IÒ8IÓJÓJÐJrU   c                óÚ   • [        U 5      R                  [        R                  L=(       d@    [        [	        [        U 5      5      5      =(       d    [        S U R                   5       5      $ )Nc              3  ó8   #   • U  H  oR                   v •  M     g 7fr_   )Úhas_on_eventr�   s     rR   r|   Ú2CombinedCapability.has_on_event.<locals>.<genexpr>è   s   é € Ð=Ò+< a—>–>Ò+<ùr“   )rJ   Úon_eventr?   Úboolr*   r~   rB   r•   s    rR   r­   ÚCombinedCapability.has_on_eventã   sR   € ô �‹J×ÑÔ'9×'BÑ'BÐB÷ >ÜÔ,¬T°$«ZÓ8Ó9÷>äÑ=¨4×+<Ò+<Ó=Ó=ð	
rU   c                óÒ   ^• [        U 5      R                  [        R                  L=(       d;    [        [        U 5      T5      =(       d    [	        U4S jU R
                   5       5      $ )Nc              3  óD   >#   • U  H  oR                  T5      v •  M     g 7fr_   )Ú
listens_to)rz   r‘   Úevents     €rR   r|   Ú0CombinedCapability.listens_to.<locals>.<genexpr>ï   s   øé € ÐBÒ0A¨1—<‘< ×&Ð&Ò0Aùó   ƒ )rJ   r¯   r?   r+   r~   rB   )rO   rµ   s    `rR   r´   ÚCombinedCapability.listens_toë   sO   ø€ ä�‹J×ÑÔ'9×'BÑ'BÐB÷ CÜ ¤ d£¨UÓ3÷CäÔB°×0AÒ0AÓBÓBð	
rU   c                óÚ   • U R                    Vs/ s H  o"R                  U5      PM     nn[        S [        X0R                   5       5       5      (       a  U $ U R	                  U5      $ s  snf )Nc              3  ó,   #   • U  H
  u  pXL v •  M     g 7fr_   © ©rz   rs   rr   s      rR   r|   Ú/CombinedCapability.for_agent.<locals>.<genexpr>ô   ó   é € ÐKÒ*J™h˜cˆs�zÒ*Jùó   ‚)rB   Ú	for_agentÚallrl   r`   )rO   ÚagentrQ   r‰   s       rR   rÀ   ÚCombinedCapability.for_agentò   s]   € ØBF×BSÒBSÓTÒBS°J×(Ñ(¨Ö/ÑBSˆÐTÜÑK¬#¨h×8IÑ8IÔ*JÓK×KÑKØˆKØ�}‰}˜XÓ&Ð&ùò Us   �A(c              ƒ  óÒ   ^#   • [        U4S jU R                   5       6 I S h  v•N n[        S [        X R                  5       5       5      (       a  U $ U R	                  U5      $  NA7f)Nc              3  óD   >#   • U  H  oR                  T5      v •  M     g 7fr_   )Úfor_run)rz   r‘   Úctxs     €rR   r|   Ú-CombinedCapability.for_run.<locals>.<genexpr>ù   s   øé € Ð!LÒ:K°Q§)¡)¨C§. .Ò:Kùr·   c              3  ó,   #   • U  H
  u  pXL v •  M     g 7fr_   r»   r¼   s      rR   r|   rÈ   ú   r¾   r¿   )r   rB   rÁ   rl   r`   )rO   rÇ   r‰   s    ` rR   rÆ   ÚCombinedCapability.for_runø   sU   øé € ÜÔ!L¸$×:KÒ:KÓ!LÐM×MˆÜÑK¬#¨h×8IÑ8IÔ*JÓK×KÑKØˆKØ�}‰}˜XÓ&Ð&ñ Nùs   ƒ A'£A%¤AA'c                óL   • U R                    H  nUR                  X5        M     g r_   )rB   Ú_validate_runtime_capabilities)rO   rÇ   rB   rQ   s       rR   rÌ   Ú1CombinedCapability._validate_runtime_capabilitiesþ   s"   € ð ×+Ô+ˆJØ×5Ñ5°cÖHò ,rU   c                ót   • U R                  5        Vs/ s H  oR                  PM     nnU=(       d    S $ s  snf r_   )Ú_collect_child_instructionsÚinstruction)rO   ÚsourcedÚinstructionss      rR   rK   Ú#CombinedCapability.get_instructions  s@   € ð 04×/OÑ/OÔ/Qó<
Ú/Q G×ÔÑ/Qð 	ð <
ð ×#˜tÐ#ùò<
s   “5c                ó°   ^• [        U R                  5       VVs0 s H  u  p[        U5      U_M     snnmSU4S jjn[        U R                  US9$ s  snnf )aæ  The composition view, in the order the ordering pass settled the leaves into.

Instruction parts have always followed `capabilities`, which `__normalize_capabilities`
flattens *and* sorts, so a capability that asks to be `outermost` contributes its part
first however late it was registered. `_instruction_sources` is in registration order and
retains the containers flattening drops, so each source takes the position of its
earliest-placed leaf. Sorting the sources directly instead would re-run the ordering pass
over those retained containers and could raise `Conflicting positions` for one whose leaves
span two tiers -- the very case flattening exists to avoid.

Computed on access rather than stored, so a rebind can't leave it stale.
c                óP   >• [        U4S j[        U 5       5       [        T5      S9$ )Nc              3  ób   >#   • U  H$  n[        U5      T;   d  M  T[        U5         v •  M&     g 7fr_   )rH   )rz   r{   Ú	positionss     €rR   r|   ÚTCombinedCapability._ordered_instruction_sources.<locals>.position.<locals>.<genexpr>  s+   øé € ÐaÒ1G¨Ì2ÈdË8ÐW`ÑK`Ó$�œ2˜d›8Ö$Ò1Gùs   ƒ/š/)Údefault)Úminr,   rX   )ra   r×   s    €rR   ÚpositionÚACombinedCapability._ordered_instruction_sources.<locals>.position  s&   ø€ ô Üa´ÀÔ1GÓaÜ˜I›ñð rU   )rt   )ra   rh   ri   Úint)Ú	enumeraterB   rH   ÚsortedrE   )rO   ÚindexrQ   rÛ   r×   s       @rR   Ú_ordered_instruction_sourcesÚ/CombinedCapability._ordered_instruction_sources  sT   ø€ ô ENÈd×N_ÑN_ÔD`ÔaÒD`Ñ/@¨u”R˜
“^ UÒ*ÑD`Òaˆ	÷	ô �d×/Ñ/°XÑ>Ð>ùó bs   šAc                óÄ   • U R                  5       n[        U 5      R                  [        R                  L a  U$ U R	                  [        U R                  5       5      U5      $ r_   )rÏ   rJ   rK   r?   Ú!_attribute_container_instructionsr   )rO   Úrelayeds     rR   Ú_collect_instructionsÚ(CombinedCapability._collect_instructions%  sS   € Ø×2Ñ2Ó4ˆÜ�‹:×&Ñ&Ô*<×*MÑ*MÒMØˆNð ×5Ñ5Ô6LÈT×MbÑMbÓMdÓ6eÐgnÓoÐorU   c                ó˜   • / nU R                  5        H3  nUR                  SLd  M  UR                  UR                  5       5        M5     U$ )a  Collect what the children contribute, without asking whether this container overrode them.

Reached without the override check so a subclass delegating to `super().get_instructions()`
is answered by its children rather than routed back into its own override.
T)rá   Údefer_loadingrL   ræ   )rO   rÒ   rQ   s      rR   rÏ   Ú.CombinedCapability._collect_child_instructions.  sJ   € ð >@ˆØ×;Ñ;Ö=ˆJØ×'Ñ'¨tÔ3Ø×#Ñ# J×$DÑ$DÓ$FÖGñ >ð ÐrU   c                ób  ^• / mU R                    H\  nUR                  5       nUc  M  UR                  SL a$  UUS.       SS jjnTR                  U5        MK  TR                  U5        M^     T(       d  g [	        S T 5       5      (       a  S nT H  n[        XE5      nM     U$ SU4S jjnU$ )NT)rQ   Úcap_settingsc               óf   • [        X5      nUc
  [        5       $ [        U5      (       a  U" U5      $ U$ r_   )Ú_ctx_for_active_capr   Úcallable)rÇ   rQ   rì   Úcap_ctxs       rR   Údeferred_settingsÚ@CombinedCapability.get_model_settings.<locals>.deferred_settingsG  s7   € ô 2°*ÓB�GØ‘Ü,›Ð.Ü ×-Ñ-Ù+¨GÓ4Ð4Ø'Ð'rU   c              3  óB   #   • U  H  n[        U5      (       + v •  M     g 7fr_   )rï   )rz   Úss     rR   r|   Ú8CombinedCapability.get_model_settings.<locals>.<genexpr>Z  s   é € Ð7ª 1”8˜A“;�‰ªùs   ‚c                ó  >• S nT HM  n[        [        SU R                  5      U5      U l        [        U5      (       a  U" U 5      OUn[        X5      nMO     [        [        SU R                  5      U5      U l        Ub  U$ [	        5       $ )NzModelSettings | None)r   r   Úmodel_settingsrï   r   )rÇ   ÚmergedÚentryÚresolvedÚsettings_chains       €rR   ÚresolveÚ6CombinedCapability.get_model_settings.<locals>.resolvea  s…   ø€ Ø+/ˆFó (�ô &:¼$Ð?UÐWZ×WiÑWiÓ:jÐlrÓ%s�Ô"Ü)1°%¯©™5 œ:¸e�Ü-¨fÓ?’ñ (ô "6´dÐ;QÐSV×SeÑSeÓ6fÐhnÓ!oˆCÔØ#Ñ/�6ÐD´]³_ÐDrU   )rÇ   úRunContext[AgentDepsT]rQ   rh   rì   zAModelSettings | Callable[[RunContext[AgentDepsT]], ModelSettings]ri   r   )rÇ   rþ   ri   r   )rB   Úget_model_settingsré   rM   rÁ   r   )rO   rQ   rì   rñ   rø   rô   rü   rû   s          @rR   rÿ   Ú%CombinedCapability.get_model_settings:  sÚ   ø€ ð ceˆØ×+Ô+ˆJØ%×8Ñ8Ó:ˆLàÑ#Ùà×'Ñ'¨4Ò/ð BLØfrñ	(Ø/ð(ð !?ð(ð #dð	(ð
 #õ(ð ×%Ñ%Ð&7Ö8à×%Ñ% lÖ3ñ1 ,ö4 ØÜÑ7©Ó7×7Ñ7à+/ˆFÛ#�Ü-¨fÓ8’ñ $àˆM÷	Eð ˆrU   c                ó€   • S nU R                    H+  nUR                  SLd  M  UR                  5       =nc  M)  UnM-     U$ )NT)rB   ré   Ú	get_model)rO   ÚmodelrQ   Úcapability_models       rR   r  ÚCombinedCapability.get_modelq  sE   € Ø/3ˆØ×+Ô+ˆJØ×'Ñ'¨tÔ3ÈZ×MaÑMaÓMcÐ9cÐ9IÓ8pØ(’ñ ,ð ˆrU   c                ó:   • [        S U R                   5       5      $ )Nc              3  ób   #   • U  H%  oR                   S L=(       a    UR                  v •  M'     g7f)TN)ré   Úhas_resolve_model_id)rz   rQ   s     rR   r|   Ú:CombinedCapability.has_resolve_model_id.<locals>.<genexpr>z  s,   é € ð 
ÚgxÐYc×$Ñ$¨DÐ0×T°Z×5TÑ5TÔTÒgxùs   ‚-/r”   r•   s    rR   r  Ú'CombinedCapability.has_resolve_model_idx  s"   € äñ 
Øgk×gxÒgxó
ó 
ð 	
rU   c             ƒ  ó”   #   • U R                    H2  nUR                  SL a  M  UR                  XS9I S h  v•N =nc  M0  Us  $    g  N7f)NT)Úmodel_id)rB   ré   Úresolve_model_id)rO   rÇ   r  rQ   r  s        rR   r  Ú#CombinedCapability.resolve_model_id~  sT   é € ð ×+Ô+ˆJØ×'Ñ'¨4Ò/ÙØ)×:Ñ:¸3Ð:ÐR×RÐR�Ó_Ø’ñ	 ,ð
 ñ Sùs   ‚3AµA¶A¿Ac           	     ó.  • / nU R                    Hp  nUR                  5       nUc  M  [        U[        5      (       a  UR	                  [        UUS95        MH  UR	                  [        [        [           " US9US95        Mr     U(       a  [        U5      $ S $ )N)ÚwrappedrQ   )Útoolset_func)	rB   Úget_toolsetrI   r$   rM   r'   r(   r   r&   )rO   ÚtoolsetsrQ   Útoolsets       rR   r  ÚCombinedCapability.get_toolset‹  sŽ   € Ø68ˆØ×+Ô+ˆJØ ×,Ñ,Ó.ˆGØ‰ÙÜ˜G¤_×5Ñ5à—‘Ü*Ø 'Ø#-ñöð —‘Ü*Ü .¬zÒ :ÈÑ PØ#-ñöñ ,ö& -5Œ˜xÓ(Ð>¸$Ð>rU   c                óü   • / nU R                    Hi  nUR                  5       =(       d    / nUR                  SLa  UR                  U5        M>  U H%  nUUS.       SS jjnUR	                  U5        M'     Mk     U$ )NT)rQ   Únative_toolc               óT   • [        X5      nUc  g [        U5      (       a  U" U5      $ U$ r_   )rî   rï   )rÇ   rQ   r  rð   s       rR   Údeferred_native_toolÚACombinedCapability.get_native_tools.<locals>.deferred_native_tool¬  s2   € ô 2°*ÓB�GØ‘Ø#Ü ×,Ñ,Ù*¨7Ó3Ð3Ø&Ð&rU   )rÇ   rþ   rQ   rh   r  zAgentNativeTool[AgentDepsT]ri   r   )rB   Úget_native_toolsré   rL   rM   )rO   Únative_toolsrQ   Úcap_native_toolsr  r  s         rR   r  Ú#CombinedCapability.get_native_tools¢  s£   € Ø:<ˆØ×+Ô+ˆJØ)×:Ñ:Ó<×BÀÐØ×'Ñ'¨tÒ3Ø×#Ñ#Ð$4Ô5Ùã/�ð
 BLØ?Jñ	'Ø/ð'ð !?ð'ð "=ð	'ð
 õ'ð ×#Ñ#Ð$8Ö9ó  0ñ ,ð, ÐrU   c                óŒ   • UnSn[        U R                  5       H  nUR                  U5      nUc  M  UnSnM     U(       a  U$ S $ )NFT)ÚreversedrB   Úget_wrapper_toolset)rO   r  r  Úany_wrappedrQ   Úresults         rR   r!  Ú&CombinedCapability.get_wrapper_toolset¼  sP   € ØˆØˆÜ" 4×#4Ñ#4Ö5ˆJØ×3Ñ3°GÓ<ˆFØÓ!Ø �Ø"’ñ	 6ö
 &ˆwÐ/¨4Ð/rU   c              ƒ  óŠ   #   • U R                    H,  n[        X15      =nc  M  UR                  XB5      I S h  v•N nM.     U$  N
7fr_   )rB   rî   Úprepare_tools©rO   rÇ   Ú	tool_defsrQ   rð   s        rR   r&  Ú CombinedCapability.prepare_toolsÈ  sH   é € ð
 ×+Ô+ˆJÜ.¨zÓ?Ð?�ÓLØ",×":Ñ":¸7Ó"N×N’	ñ ,ð Ðñ Oùó   ‚A¢A¶A·Ac              ƒ  óŠ   #   • U R                    H,  n[        X15      =nc  M  UR                  XB5      I S h  v•N nM.     U$  N
7fr_   )rB   rî   Úprepare_output_toolsr'  s        rR   r,  Ú'CombinedCapability.prepare_output_toolsÒ  sH   é € ð
 ×+Ô+ˆJÜ.¨zÓ?Ð?�ÓLØ",×"AÑ"AÀ'Ó"U×U’	ñ ,ð Ðñ Vùr*  c              ƒ  óˆ   #   • U R                    H,  n[        X!5      =nc  M  UR                  U5      I S h  v•N   M.     g  N	7fr_   )rB   rî   Ú
before_run)rO   rÇ   rQ   rð   s       rR   r/  ÚCombinedCapability.before_runÞ  s>   é € ð ×+Ô+ˆJÜ.¨zÓ?Ð?�ÓLØ ×+Ñ+¨GÓ4×4Ò4ò ,á4ùs   ‚A¢A¶A ·
Ac                óL   • U R                    H  nUR                  U5        M     g r_   )rB   Ú_prepare_run_context)rO   rÇ   rQ   s      rR   r2  Ú'CombinedCapability._prepare_run_contextæ  s    € Ø×+Ô+ˆJØ×+Ñ+¨CÖ0ò ,rU   c             ƒ  ó˜   #   • [        U R                  5       H*  n[        X15      =nc  M  UR                  XBS9I S h  v•N nM,     U$  N
7f)N)r#  )r   rB   rî   Ú	after_run)rO   rÇ   r#  rQ   rð   s        rR   r5  ÚCombinedCapability.after_runê  sO   é € ô # 4×#4Ñ#4Ö5ˆJÜ.¨zÓ?Ð?�ÓLØ)×3Ñ3°GÐ3ÐK×K’ñ 6ð ˆñ Lùs   ‚%A
«A
½A¾A
c             ƒ  óœ   #   • Un[        U R                  5       H  n[        XA5      c  M  [        XAU5      nM     U" 5       I S h  v•N $  N7fr_   )r   rB   rî   Ú_make_run_wrap)rO   rÇ   ÚhandlerÚchainrQ   s        rR   Úwrap_runÚCombinedCapability.wrap_runõ  sF   é € ð ˆÜ" 4×#4Ñ#4Ö5ˆJÜ" :Ó3Ó?Ü& z¸Ó>’ñ 6ñ “W�}Ð‰}ùs   ‚%A«AÁA
ÁAc             ƒ  óÎ   #   • [        U R                  5       H+  n[        X15      nUc  M   UR                  XBS9I S h  v•N s  $    Ue N
! [         a  nUn S nAME  S nAff = f7f)N)Úerror)r   rB   rî   Úon_run_errorÚBaseException)rO   rÇ   r>  rQ   rð   Ú	new_errors         rR   r?  ÚCombinedCapability.on_run_error  sk   é € ô # 4×#4Ñ#4Ö5ˆJÜ)¨*Ó:ˆGØ‰Ùð"Ø'×4Ñ4°WÐ4ÐJ×JÒJñ 6ð ˆñ KøÜ ó "Ø!–ûð"üs>   ‚)A%¬A¾A	¿AÁA%Á	AÁ
A"ÁAÁA%ÁA"Á"A%c             ƒ  ó†   #   • U R                    H*  n[        X15      =nc  M  UR                  XBS9I S h  v•N nM,     U$  N
7f)N)Únode)rB   rî   Úbefore_node_run)rO   rÇ   rD  rQ   rð   s        rR   rE  Ú"CombinedCapability.before_node_run  sJ   é € ð ×+Ô+ˆJÜ.¨zÓ?Ð?�ÓLØ'×7Ñ7¸Ð7ÐK×K’ñ ,ð ˆñ Lùs   ‚A¢A´?µAc             ƒ  óš   #   • [        U R                  5       H+  n[        XA5      =nc  M  UR                  XRUS9I S h  v•N nM-     U$  N
7f)N)rD  r#  )r   rB   rî   Úafter_node_run)rO   rÇ   rD  r#  rQ   rð   s         rR   rH  Ú!CombinedCapability.after_node_run  sR   é € ô # 4×#4Ñ#4Ö5ˆJÜ.¨zÓ?Ð?�ÓLØ)×8Ñ8¸ÐTZÐ8Ð[×[’ñ 6ð ˆñ \ùó   ‚%A«A¾A	¿Ac             ƒ  óÄ   #   • Un[        U R                  5       H0  nUR                  (       d  M  [        XQ5      c  M$  [	        XQU5      nM2     U" U5      I S h  v•N $  N7fr_   )r   rB   r�   rî   Ú_make_node_run_wrap)rO   rÇ   rD  r9  r:  rQ   s         rR   Úwrap_node_runÚ CombinedCapability.wrap_node_run*  sV   é € ð ˆÜ" 4×#4Ñ#4Ö5ˆJØ×,×,Ñ,Ô1DÀZÓ1UÓ1aÜ+¨J¸UÓC’ñ 6ñ ˜4“[× Ð Ñ ùó   ‚*A °
A ¾A ÁAÁA c             ƒ  óö   #   • [        U R                  5       H?  nUR                  (       d  M  [        XA5      nUc  M&   UR	                  XRUS9I S h  v•N s  $    Ue N
! [
         a  nUn S nAMY  S nAff = f7f)N)rD  r>  )r   rB   r™   rî   Úon_node_run_errorÚ	Exception)rO   rÇ   rD  r>  rQ   rð   rA  s          rR   rQ  Ú$CombinedCapability.on_node_run_error:  sz   é € ô # 4×#4Ñ#4Ö5ˆJØ×4×4ÙÜ)¨*Ó:ˆGØ‰Ùð"Ø'×9Ñ9¸'ÐTYÐ9ÐZ×ZÒZñ 6ð ˆñ [øÜó "Ø!–ûð"üó@   ‚<A9¿AÁAÁAÁA9ÁAÁ
A6Á)A1Á+A9Á1A6Á6A9c             ƒ  ó.  >#   • U R                    Hg  nUR                  R                  [        U5      U5      nUR	                  U5      (       d  M@  [        X15      =nc  MP  UR                  XRS9I S h  v•N   Mi     [        TU ]  XS9I S h  v•N   g  N N7f)N)rµ   )rB   Ú_event_stream_replacementsÚgetrH   r´   rî   r¯   Úsuper)rO   rÇ   rµ   rQ   Úcurrentrð   Ú	__class__s         €rR   r¯   ÚCombinedCapability.on_eventO  s�   øé € Ø×+Ô+ˆJð ×4Ñ4×8Ñ8¼¸E»ÀEÓJˆGØ×$Ñ$ W×-Ó-Ô>QÐR\Ó>bÐ3b°7Ó2oØ ×)Ñ)¨'Ð)Ð?×?Ò?ñ ,ô ‰gÑ˜sÐÐ0×0Ñ0ñ @ñ 	1ùs0   ƒA	BÁBÁ BÁ2BÁ3BÂBÂBÂBc              óT  #   • U/n[        U R                  5       H3  n[        XA5      =nc  M  UR                  XRS9nUR	                  U5        M5      U  S h  v•N nU7v •  M   N
 [        [        U5      5      I S h  v•N    g ! [        [        U5      5      I S h  v•N    f = f7f)N)Ústream)r   rB   rî   Úwrap_run_event_streamrM   r   )rO   rÇ   r]  Úwrapped_streamsrQ   rð   rµ   s          rR   r^  Ú(CombinedCapability.wrap_run_event_stream[  s—   é € ð "˜(ˆÜ" 4×#4Ñ#4Ö5ˆJÜ.¨zÓ?Ð?�ÓLØ#×9Ñ9¸'Ð9ÐQ�Ø×&Ñ& vÖ.ñ 6ð	8Ù%÷ �eØ•ñ˜vô œX oÓ6Ó7×7Ò7ø”*œX oÓ6Ó7×7Ò7üs^   ‚(B(®$B(ÁB ÁA'ÁA%ÁA'ÁB Á%A'Á'B Á(B(Á?BÂ B(ÂB%ÂB!ÂB%Â%B(c              ƒ  óŠ   #   • U R                    H,  n[        X15      =nc  M  UR                  XB5      I S h  v•N nM.     U$  N
7fr_   )rB   rî   Úbefore_model_request)rO   rÇ   Úrequest_contextrQ   rð   s        rR   rb  Ú'CombinedCapability.before_model_requestn  sH   é € ð
 ×+Ô+ˆJÜ.¨zÓ?Ð?�ÓLØ(2×(GÑ(GÈÓ(a×"a’ñ ,ð Ðñ #bùr*  c             ƒ  óš   #   • [        U R                  5       H+  n[        XA5      =nc  M  UR                  XRUS9I S h  v•N nM-     U$  N
7f)N)rc  Úresponse)r   rB   rî   Úafter_model_request)rO   rÇ   rc  rf  rQ   rð   s         rR   rg  Ú&CombinedCapability.after_model_requestx  sX   é € ô # 4×#4Ñ#4Ö5ˆJÜ.¨zÓ?Ð?�ÓLØ!+×!?Ñ!?ØÀxð "@ð "÷ ’ñ 6ð
 ˆñùrJ  c             ƒ  óÄ   #   • Un[        U R                  5       H0  nUR                  (       d  M  [        XQ5      c  M$  [	        XQU5      nM2     U" U5      I S h  v•N $  N7fr_   )r   rB   rž   rî   Ú_make_model_request_wrap)rO   rÇ   rc  r9  r:  rQ   s         rR   Úwrap_model_requestÚ%CombinedCapability.wrap_model_request†  sW   é € ð ˆÜ" 4×#4Ñ#4Ö5ˆJØ×1×1Ñ1Ô6IÈ*Ó6ZÓ6fÜ0°À%ÓH’ñ 6ñ ˜?Ó+×+Ð+Ñ+ùrO  c             ƒ  óö   #   • [        U R                  5       H?  nUR                  (       d  M  [        XA5      nUc  M&   UR	                  XRUS9I S h  v•N s  $    Ue N
! [
         a  nUn S nAMY  S nAff = f7f)N)rc  r>  )r   rB   r£   rî   Úon_model_request_errorrR  )rO   rÇ   rc  r>  rQ   rð   rA  s          rR   rn  Ú)CombinedCapability.on_model_request_error“  sz   é € ô # 4×#4Ñ#4Ö5ˆJØ×9×9ÙÜ)¨*Ó:ˆGØ‰Ùð"Ø'×>Ñ>¸wÐotÐ>Ðu×uÒuñ 6ð ˆñ vøÜó "Ø!–ûð"ürT  c             ƒ  óˆ   #   • U R                    H+  n[        XQ5      =nc  M  UR                  XbX4S9I S h  v•N nM-     U$  N
7f©N)ÚcallÚtool_defÚargs)rB   rî   Úbefore_tool_validate©rO   rÇ   rr  rs  rt  rQ   rð   s          rR   ru  Ú'CombinedCapability.before_tool_validate¨  sM   é € ð ×+Ô+ˆJÜ.¨zÓ?Ð?�ÓLØ'×<Ñ<¸WÐZbÐ<Ðn×n’ñ ,ð ˆñ oùó   ‚A¢AµA ¶Ac             ƒ  óš   #   • [        U R                  5       H+  n[        XQ5      =nc  M  UR                  XbX4S9I S h  v•N nM-     U$  N
7frq  )r   rB   rî   Úafter_tool_validaterv  s          rR   rz  Ú&CombinedCapability.after_tool_validateµ  sR   é € ô # 4×#4Ñ#4Ö5ˆJÜ.¨zÓ?Ð?�ÓLØ'×;Ñ;¸GÐYaÐ;Ðm×m’ñ 6ð ˆñ nùrJ  c             ƒ  ó    #   • Un[        U R                  5       H  n[        Xq5      c  M  [        XqX#U5      nM      U" U5      I S h  v•N $  N7fr_   )r   rB   rî   Ú_make_tool_validate_wrap©rO   rÇ   rr  rs  rt  r9  r:  rQ   s           rR   Úwrap_tool_validateÚ%CombinedCapability.wrap_tool_validateÂ  sM   é € ð ˆÜ" 4×#4Ñ#4Ö5ˆJÜ" :Ó3Ó?Ü0°À$ÐRWÓX’ñ 6ñ ˜4“[× Ð Ñ ùó   ‚%A«AÁAÁAc          	   ƒ  óò   #   • [        U R                  5       H-  n[        Xa5      nUc  M   UR                  XrX4US9I S h  v•N s  $    Ue N
! [        [
        4 a  nUn S nAMM  S nAf[         a    e f = f7f©N)rr  rs  rt  r>  )r   rB   rî   Úon_tool_validate_errorr   r   rR  ©	rO   rÇ   rr  rs  rt  r>  rQ   rð   rA  s	            rR   r„  Ú)CombinedCapability.on_tool_validate_errorÑ  s‰   é € ô # 4×#4Ñ#4Ö5ˆJÜ)¨*Ó:ˆGØ‰ÙðØ'×>Ñ>Ø°ÈEð ?ð ÷ ò ñ 6ð ˆñøô $¤ZÐ0ó "Ø!–ûÜó Øðüs@   ‚)A7¬AÁ AÁAÁA7ÁAÁA4ÁA%ÁA7Á%A4Á4A7c             ƒ  óˆ   #   • U R                    H+  n[        XQ5      =nc  M  UR                  XbX4S9I S h  v•N nM-     U$  N
7frq  )rB   rî   Úbefore_tool_executerv  s          rR   rˆ  Ú&CombinedCapability.before_tool_executeê  sM   é € ð ×+Ô+ˆJÜ.¨zÓ?Ð?�ÓLØ'×;Ñ;¸GÐYaÐ;Ðm×m’ñ ,ð ˆñ nùrx  c          	   ƒ  óœ   #   • [        U R                  5       H,  n[        Xa5      =nc  M  UR                  XrX4US9I S h  v•N nM.     U$  N
7f)N)rr  rs  rt  r#  )r   rB   rî   Úafter_tool_execute)rO   rÇ   rr  rs  rt  r#  rQ   rð   s           rR   r‹  Ú%CombinedCapability.after_tool_execute÷  sY   é € ô # 4×#4Ñ#4Ö5ˆJÜ.¨zÓ?Ð?�ÓLØ)×<Ñ<Ø°ÈVð  =ð  ÷ ’ñ 6ð
 ˆñùs   ‚%A«A¿A
Á Ac             ƒ  ó    #   • Un[        U R                  5       H  n[        Xq5      c  M  [        XqX#U5      nM      U" U5      I S h  v•N $  N7fr_   )r   rB   rî   Ú_make_tool_execute_wrapr~  s           rR   Úwrap_tool_executeÚ$CombinedCapability.wrap_tool_execute  sM   é € ð ˆÜ" 4×#4Ñ#4Ö5ˆJÜ" :Ó3Ó?Ü/°
ÀÐQVÓW’ñ 6ñ ˜4“[× Ð Ñ ùr�  c          	   ƒ  óÒ   #   • [        U R                  5       H-  n[        Xa5      nUc  M   UR                  XrX4US9I S h  v•N s  $    Ue N
! [         a  nUn S nAMG  S nAff = f7frƒ  )r   rB   rî   Úon_tool_execute_errorrR  r…  s	            rR   r’  Ú(CombinedCapability.on_tool_execute_error  sy   é € ô # 4×#4Ñ#4Ö5ˆJÜ)¨*Ó:ˆGØ‰Ùð"Ø'×=Ñ=Ø°ÈEð >ð ÷ ò ñ 6ð ˆñøô ó "Ø!–ûð"üs@   ‚)A'¬AÁ AÁAÁA'ÁAÁ
A$ÁAÁA'ÁA$Á$A'c             ƒ  óˆ   #   • U R                    H+  n[        XA5      =nc  M  UR                  XRUS9I S h  v•N nM-     U$  N
7f©N)Úoutput_contextÚoutput)rB   rî   Úbefore_output_validate©rO   rÇ   r–  r—  rQ   rð   s         rR   r˜  Ú)CombinedCapability.before_output_validate-  sM   é € ð ×+Ô+ˆJÜ.¨zÓ?Ð?�ÓLØ)×@Ñ@ÀÐpvÐ@Ðw×w’ñ ,ð ˆñ xùrx  c             ƒ  óš   #   • [        U R                  5       H+  n[        XA5      =nc  M  UR                  XRUS9I S h  v•N nM-     U$  N
7fr•  )r   rB   rî   Úafter_output_validater™  s         rR   rœ  Ú(CombinedCapability.after_output_validate9  sR   é € ô # 4×#4Ñ#4Ö5ˆJÜ.¨zÓ?Ð?�ÓLØ)×?Ñ?ÀÐouÐ?Ðv×v’ñ 6ð ˆñ wùrJ  c             ƒ  óž   #   • Un[        U R                  5       H  n[        Xa5      c  M  [        XaX%5      nM     U" U5      I S h  v•N $  N7fr_   )r   rB   rî   Ú_make_output_validate_wrap©rO   rÇ   r–  r—  r9  r:  rQ   s          rR   Úwrap_output_validateÚ'CombinedCapability.wrap_output_validateE  sJ   é € ð ˆÜ" 4×#4Ñ#4Ö5ˆJÜ" :Ó3Ó?Ü2°:ÀNÓZ’ñ 6ñ ˜6“]×"Ð"Ñ"ùó   ‚%A«AÁAÁAc             ƒ  óð   #   • [        U R                  5       H,  n[        XQ5      nUc  M   UR                  XbX4S9I S h  v•N s  $    Ue N
! [        [
        4 a  nUn S nAML  S nAf[         a    e f = f7f©N)r–  r—  r>  )r   rB   rî   Úon_output_validate_errorr   r   rR  ©rO   rÇ   r–  r—  r>  rQ   rð   rA  s           rR   r¦  Ú+CombinedCapability.on_output_validate_errorS  sˆ   é € ô # 4×#4Ñ#4Ö5ˆJÜ)¨*Ó:ˆGØ‰ÙðØ'×@Ñ@ØÀ6ð Að ÷ ò ñ 6ð ˆñøô $¤ZÐ0ó "Ø!–ûÜó àðüs?   ‚)A6¬A¿A
Á AÁA6Á
AÁA3ÁA$ÁA6Á$A3Á3A6c             ƒ  óˆ   #   • U R                    H+  n[        XA5      =nc  M  UR                  XRUS9I S h  v•N nM-     U$  N
7fr•  )rB   rî   Úbefore_output_processr™  s         rR   rª  Ú(CombinedCapability.before_output_processl  sM   é € ð ×+Ô+ˆJÜ.¨zÓ?Ð?�ÓLØ)×?Ñ?ÀÐouÐ?Ðv×v’ñ ,ð ˆñ wùrx  c             ƒ  óš   #   • [        U R                  5       H+  n[        XA5      =nc  M  UR                  XRUS9I S h  v•N nM-     U$  N
7fr•  )r   rB   rî   Úafter_output_processr™  s         rR   r­  Ú'CombinedCapability.after_output_processx  sR   é € ô # 4×#4Ñ#4Ö5ˆJÜ.¨zÓ?Ð?�ÓLØ)×>Ñ>¸wÐntÐ>Ðu×u’ñ 6ð ˆñ vùrJ  c             ƒ  óž   #   • Un[        U R                  5       H  n[        Xa5      c  M  [        XaX%5      nM     U" U5      I S h  v•N $  N7fr_   )r   rB   rî   Ú_make_output_process_wrapr   s          rR   Úwrap_output_processÚ&CombinedCapability.wrap_output_process„  sJ   é € ð ˆÜ" 4×#4Ñ#4Ö5ˆJÜ" :Ó3Ó?Ü1°*À>ÓY’ñ 6ñ ˜6“]×"Ð"Ñ"ùr£  c             ƒ  óÐ   #   • [        U R                  5       H,  n[        XQ5      nUc  M   UR                  XbX4S9I S h  v•N s  $    Ue N
! [         a  nUn S nAMF  S nAff = f7fr¥  )r   rB   rî   Úon_output_process_errorrR  r§  s           rR   r´  Ú*CombinedCapability.on_output_process_error’  sx   é € ô # 4×#4Ñ#4Ö5ˆJÜ)¨*Ó:ˆGØ‰Ùð"Ø'×?Ñ?ØÀ6ð @ð ÷ ò ñ 6ð ˆñøô ó "Ø!–ûð"üs?   ‚)A&¬A¿A
Á AÁA&Á
AÁ
A#ÁAÁA&ÁA#Á#A&c             ƒ  óX  #   • [        5       nUnSnU R                   H|  n[        Xa5      nUc  M  UR                  XtS9I S h  v•N nUb"  UR                  (       d  UR
                  (       d  MQ  SnUR                  U5        UR                  U5      n	U	c    OU	nM~     U(       a  U$ S $  Ne7f)NF)ÚrequestsT)r!   rB   rî   Úhandle_deferred_tool_callsÚ	approvalsÚcallsÚupdateÚ	remaining)
rO   rÇ   r·  Úaccumulatedr¼  Úany_handledrQ   rð   r#  Úremaining_or_nones
             rR   r¸  Ú-CombinedCapability.handle_deferred_tool_calls¦  s®   é € ô *Ó+ˆØˆ	ØˆØ×+Ô+ˆJÜ)¨*Ó:ˆGØ‰ÙØ%×@Ñ@ÀÐ@Ð]×]ˆFØ‰~ f×&6×&6¸&¿,¿,ÙØˆKØ×Ñ˜vÔ&Ø )× 3Ñ 3°FÓ ;ÐØ Ñ(ÙØ)ŠIñ ,ö *ˆ{Ð3¨tÐ3ñ ^ùs   ‚A B*ÁB(ÁA&B*)rE   rB   )ri   ÚNoner_   )ro   rA   re   zDMapping[int, Sequence[AbstractCapability[AgentDepsT] | None]] | Noneri   úCombinedCapability[AgentDepsT])r…   z0Callable[[AbstractCapability[AgentDepsT]], None]ri   rÁ  )r…   zQCallable[[AbstractCapability[AgentDepsT]], AbstractCapability[AgentDepsT] | None]ri   rj   )ri   r°   )rµ   r   ri   r°   )rÂ   úAbstractAgent[AgentDepsT, Any]ri   rÂ  )rÇ   rþ   ri   rh   )rÇ   rþ   rB   rA   ri   rÁ  )ri   z$AgentInstructions[AgentDepsT] | None)ri   z$list[AbstractCapability[AgentDepsT]])ri   z$list[SourcedInstruction[AgentDepsT]])ri   zHModelSettings | Callable[[RunContext[AgentDepsT]], ModelSettings] | None)ri   zAgentModel[AgentDepsT] | None)rÇ   z"ModelResolutionContext[AgentDepsT]r  zKnownModelName | strri   zModel | None)ri   zAgentToolset[AgentDepsT] | None)ri   z%Sequence[AgentNativeTool[AgentDepsT]])r  zAbstractToolset[AgentDepsT]ri   z"AbstractToolset[AgentDepsT] | None)rÇ   rþ   r(  úlist[ToolDefinition]ri   rÄ  )rÇ   rþ   ri   rÁ  )rÇ   rþ   r#  úAgentRunResult[Any]ri   rÅ  )rÇ   rþ   r9  ú,Callable[[], Awaitable[AgentRunResult[Any]]]ri   rÅ  )rÇ   rþ   r>  r@  ri   rÅ  )rÇ   rþ   rD  ú'_agent_graph.AgentNode[AgentDepsT, Any]ri   rÇ  )rÇ   rþ   rD  rÇ  r#  ú?_agent_graph.AgentNode[AgentDepsT, Any] | End[FinalResult[Any]]ri   rÈ  )rÇ   rþ   rD  rÇ  r9  úCallable[[_agent_graph.AgentNode[AgentDepsT, Any]], Awaitable[_agent_graph.AgentNode[AgentDepsT, Any] | End[FinalResult[Any]]]]ri   rÈ  )rÇ   rþ   rD  rÇ  r>  rR  ri   rÈ  )rÇ   rþ   rµ   r   ri   rÁ  )rÇ   rþ   r]  úAsyncIterable[AgentStreamEvent]ri   rÊ  )rÇ   rþ   rc  r8   ri   r8   )rÇ   rþ   rc  r8   rf  r   ri   r   )rÇ   rþ   rc  r8   r9  ú9Callable[[ModelRequestContext], Awaitable[ModelResponse]]ri   r   )rÇ   rþ   rc  r8   r>  rR  ri   r   )
rÇ   rþ   rr  r   rs  r#   rt  ústr | dict[str, Any]ri   rÌ  )
rÇ   rþ   rr  r   rs  r#   rt  údict[str, Any]ri   rÍ  )rÇ   rþ   rr  r   rs  r#   rt  rÌ  r9  ú;Callable[[str | dict[str, Any]], Awaitable[dict[str, Any]]]ri   rÍ  )rÇ   rþ   rr  r   rs  r#   rt  rÌ  r>  úValidationError | ModelRetryri   rÍ  )rÇ   rþ   rr  r   rs  r#   rt  rÍ  r#  r   ri   r   )rÇ   rþ   rr  r   rs  r#   rt  rÍ  r9  ú*Callable[[dict[str, Any]], Awaitable[Any]]ri   r   )rÇ   rþ   rr  r   rs  r#   rt  rÍ  r>  rR  ri   r   )rÇ   rþ   r–  r:   r—  r1   ri   r1   )rÇ   rþ   r–  r:   r—  r   ri   r   )
rÇ   rþ   r–  r:   r—  r1   r9  r3   ri   r   )
rÇ   rþ   r–  r:   r—  r1   r>  rÏ  ri   r   )
rÇ   rþ   r–  r:   r—  r   r9  r2   ri   r   )
rÇ   rþ   r–  r:   r—  r   r>  rR  ri   r   )rÇ   rþ   r·  r    ri   zDeferredToolResults | None)GÚ__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__r
   rE   rS   r`   rN   r„   rˆ   Úpropertyr�   r™   rž   r£   r¨   r­   r´   rÀ   rÆ   rÌ   rK   rá   ræ   rÏ   rÿ   r  r  r  r  r  r!  r&  r,  r/  r2  r5  r;  r?  rE  rH  rM  rQ  r¯   r^  rb  rg  rk  rn  ru  rz  r  r„  rˆ  r‹  r�  r’  r˜  rœ  r¡  r¦  rª  r­  r±  r´  r¸  Ú__static_attributes__Ú__classcell__)rZ  s   @rR   r?   r?   4   s?  ø‡ ñð ;Ó:ñ FKÐPUÐ\aÑEbÐÐBÓbô(ð. ^bð>àBð>ð [ð>ð 
(õ	>ôDKôð5Øhð5à	.ô5ð< óDó ðDð óHó ðHð óIó ðIð óMó ðMð óKó ðKð ó
ó ð
ô
ô'ô'ðIØ)ðIØ9aðIà	ôIô$ô?ô2pô
ô5ônð ó
ó ð
ð
à/ðð 'ð	ð
 
ôô?ô.ô40ðà#ðð (ðð 
ô	ðà#ðð (ðð 
ô	ð5à#ð5ð 
ô5ô1ð	à#ð	ð $ð		ð
 
ô	ð
à#ð
ð >ð	
ð
 
ô
ðà#ðð ð	ð
 
ôð$	à#ð	ð 6ð		ð
 
1ô	ð
à#ð
ð 6ð	
ð
 Pð
ð 
Iô
ð!à#ð!ð 6ð	!ð

ð!ð 
Iô!ð à#ðð 6ð	ð
 ðð 
Iô÷*
1ð8à#ð8ð 0ð	8ð
 
)ô8ð&à#ðð -ðð 
ô	ðà#ðð -ð	ð
  ðð 
ôð,à#ð,ð -ð	,ð
 Kð,ð 
ô,ðà#ðð -ð	ð
 ðð 
ôð*à#ðð ð	ð
 !ðð #ðð 
ôðà#ðð ð	ð
 !ðð ðð 
ôð!à#ð!ð ð	!ð
 !ð!ð #ð!ð Mð!ð 
ô!ðà#ðð ð	ð
 !ðð #ðð ,ðð 
ôð2à#ðð ð	ð
 !ðð ðð 
ôðà#ðð ð	ð
 !ðð ðð ðð 
ôð !à#ð!ð ð	!ð
 !ð!ð ð!ð <ð!ð 
ô!ðà#ðð ð	ð
 !ðð ðð ðð 
ôð.
à#ð
ð &ð	
ð
 ð
ð 
ô
ð
à#ð
ð &ð	
ð
 ð
ð 
ô
ð#à#ð#ð &ð	#ð
 ð#ð +ð#ð 
ô#ðà#ðð &ð	ð
 ðð ,ðð 
ôð2
à#ð
ð &ð	
ð
 ð
ð 
ô
ð
à#ð
ð &ð	
ð
 ð
ð 
ô
ð#à#ð#ð &ð	#ð
 ð#ð *ð#ð 
ô#ðà#ðð &ð	ð
 ðð ðð 
ôð(4à#ð4ð 'ð	4ð
 
$÷4ò 4rU   r?   c                ó    ^ ^^• SU UU4S jjnU$ )Nc               “  óT   >#   • T R                  [        T T5      TS9I S h  v•N $  N7f)N)r9  )r;  Ú_ctx_for_cap)r€   rÇ   Úinners   €€€rR   r  Ú_make_run_wrap.<locals>.wrappedÉ  s&   øé € Ø—\‘\¤,¨s°CÓ"8À%�\ÐH×HÐHÑHùs   ƒ(¡&¢()ri   rÅ  r»   ©r€   rÇ   rÝ  r  s   ``` rR   r8  r8  Ä  s   ú€ ÷
Iñ Ið €NrU   c                ó    ^ ^^• SU UU4S jjnU$ )Nc              “  óV   >#   • TR                  [        TT5      U TS9I S h  v•N $  N7f)N)rc  r9  )rk  rÜ  )rc  r€   rÇ   rÝ  s    €€€rR   r  Ú)_make_model_request_wrap.<locals>.wrappedÔ  s8   øé € Ø×+Ñ+Ü˜˜cÓ"Ø+Øð ,ð 
÷ 
ð 	
ñ 
ùó   ƒ)¢'£))rc  r8   ri   r   r»   rß  s   ``` rR   rj  rj  Ï  s   ú€ ÷

ñ 
ð €NrU   c                ó(   ^ ^^^^• SUU UUU4S jjnU$ )Nc              “  óZ   >#   • TR                  [        TT5      TTU TS9I S h  v•N $  N7f©N)rr  rs  rt  r9  )r  rÜ  ©rt  rr  r€   rÇ   rÝ  rs  s    €€€€€rR   r  Ú)_make_tool_validate_wrap.<locals>.wrappedå  s;   øé € Ø×+Ñ+Ü˜˜cÓ"¨¸ÀtÐUZð ,ð 
÷ 
ð 	
ñ 
ùó   ƒ!+¤)¥+)rt  rÌ  ri   rÍ  r»   ©r€   rÇ   rr  rs  rÝ  r  s   ````` rR   r}  r}  Þ  ó   ü€ ÷
ó 
ð
 €NrU   c                ó(   ^ ^^•     SU UU4S jjnU$ )Nc              “  óV   >#   • TR                  [        TT5      U TS9I S h  v•N $  N7f)N)rD  r9  )rM  rÜ  )rD  r€   rÇ   rÝ  s    €€€rR   r  Ú$_make_node_run_wrap.<locals>.wrappedø  s.   øé € ð ×&Ñ&¤|°C¸Ó'=ÀDÐRWÐ&ÐX×XÐXÑXùrã  )rD  rÇ  ri   rÈ  r»   rß  s   ``` rR   rL  rL  í  s(   ú€ ðYØ5ðYà	H÷Yñ Yð
 €NrU   c                ó(   ^ ^^^^• SUU UUU4S jjnU$ )Nc              “  óZ   >#   • TR                  [        TT5      TTU TS9I S h  v•N $  N7fræ  )r�  rÜ  rç  s    €€€€€rR   r  Ú(_make_tool_execute_wrap.<locals>.wrapped  s;   øé € Ø×*Ñ*Ü˜˜cÓ"¨¸ÀtÐUZð +ð 
÷ 
ð 	
ñ 
ùré  )rt  rÍ  ri   r   r»   rê  s   ````` rR   rŽ  rŽ     rë  rU   c                ó$   ^ ^^^• SU UUU4S jjnU$ )Nc              “  óX   >#   • TR                  [        TT5      TU TS9I S h  v•N $  N7f©N)r–  r—  r9  )r¡  rÜ  ©r—  r€   rÇ   rÝ  r–  s    €€€€rR   r  Ú+_make_output_validate_wrap.<locals>.wrapped  s9   øé € Ø×-Ñ-Ü˜˜cÓ"°>È&ÐZ_ð .ð 
÷ 
ð 	
ñ 
ùó   ƒ *£(¤*)r—  r1   ri   r   r»   ©r€   rÇ   r–  rÝ  r  s   ```` rR   rŸ  rŸ    ó   û€ ÷
ò 
ð
 €NrU   c                ó$   ^ ^^^• SU UUU4S jjnU$ )Nc              “  óX   >#   • TR                  [        TT5      TU TS9I S h  v•N $  N7frô  )r±  rÜ  rõ  s    €€€€rR   r  Ú*_make_output_process_wrap.<locals>.wrapped#  s9   øé € Ø×,Ñ,Ü˜˜cÓ"°>È&ÐZ_ð -ð 
÷ 
ð 	
ñ 
ùr÷  )r—  r   ri   r   r»   rø  s   ```` rR   r°  r°    rù  rU   c          	     óü   • U R                    Vs/ s H%  n[        U5      U:X  a  UR                  U5      OUPM'     nn[        S [	        X@R                   SS9 5       5      (       a  U $ U R                  U5      $ s  snf )u‹  Bind one ordering tier of the combined capability to the agent via `for_agent`.

`Agent.__init__` binds capabilities in two phases: everything outside the `innermost`
tier first, then â€” once the toolsets contributed by those capabilities are visible on
`agent.toolsets` â€” the `innermost` tier (durability capabilities), whose `for_agent`
wraps the agent's toolsets and must see all of them.
c              3  ó,   #   • U  H
  u  pXL v •  M     g 7fr_   r»   r¼   s      rR   r|   Ú)bind_capabilities_tier.<locals>.<genexpr>9  s   é € Ð
XÒ&W™(˜#ˆ3�:Ò&Wùr¿   T)Ústrict)rB   r-   rÀ   rÁ   rl   r`   )ÚcombinedrÂ   Ú	innermostr‘   r‰   s        rR   Úbind_capabilities_tierr  +  sv   € ð T\×ShÒShÓiÒShÈa¤l°1£o¸Ó&B�—‘˜EÔ"ÈÒIÑSh€HÐiÜ
Ñ
X¤c¨(×4IÑ4IÐRVÒ&WÓ
X×XÑXØˆØ×Ñ˜XÓ&Ð&ùò js   �,A9c                ó(   • [        X[        X5      S9$ )N©rQ   Úcapability_active)Ú_replace_capability_contextÚ_capability_active©rQ   rÇ   s     rR   rÜ  rÜ  >  s   € Ü&ØÔ6HÈÓ6Yñð rU   c                óZ   • [        X5      nU R                  SL a  U(       d  g [        XUS9$ )NTr  )r  ré   r  )rQ   rÇ   r  s      rR   rî   rî   D  s1   € ô +¨:Ó;ÐØ×Ñ 4Ò'Ö0AØÜ& sÐUfÑgÐgrU   c               ó   • [        XUS9$ )N)r  Ú_capability)r   )rÇ   rQ   r  s      rR   r  r  M  s   € ô �3ÈÑTÐTrU   c                ó~   • U R                   SLa  gU R                  SL=(       a    U R                  UR                  ;   $ )uh  Whether this capability may act on the current step.

Activity, not loading: an always-on capability is active for the whole run without ever being
loaded, which is why the deferred branch below is the only one that consults history.

During tool-call dispatch that history question is answered against the provider that served the
response, via `_dispatch_active_capability_ids` â€” the same set `RunContext.is_tool_available`
authorizes the call from. Reading the narrower `active_capability_ids` here would let a tool the
gate admits on anchored evidence execute without its owner's `prepare_tools` ever running.
TN)ré   rH   Ú_dispatch_active_capability_idsr	  s     rR   r  r  S  s:   € ð ×Ñ tÒ+Øð
 �=‰= Ð$×]¨¯©¸#×:]Ñ:]Ñ)]Ð]rU   N)r€   rh   rÇ   rþ   rÝ  rÆ  ri   rÆ  )r€   rh   rÇ   rþ   rÝ  rË  ri   rË  )r€   rh   rÇ   rþ   rr  r   rs  r#   rÝ  rÎ  ri   rÎ  )r€   rh   rÇ   rþ   rÝ  rÉ  ri   rÉ  )r€   rh   rÇ   rþ   rr  r   rs  r#   rÝ  rÐ  ri   rÐ  )
r€   rh   rÇ   rþ   r–  r:   rÝ  ú%Callable[[RawOutput], Awaitable[Any]]ri   r  )
r€   rh   rÇ   rþ   r–  r:   rÝ  úCallable[[Any], Awaitable[Any]]ri   r  )r  rÂ  rÂ   rÃ  r  r°   ri   rÂ  )rQ   rh   rÇ   rþ   ri   rþ   )rQ   rh   rÇ   rþ   ri   zRunContext[AgentDepsT] | None)rÇ   rþ   rQ   rh   r  r°   ri   rþ   )rQ   rh   rÇ   rþ   ri   r°   )_Ú
__future__r   Úcollections.abcr   r   r   r   r   Údataclassesr	   r
   r   Útypingr   r   r   Úpydanticr   Úpydantic_ai._instructionsr   r   r   r   r   Úpydantic_ai._utilsr   r   r   Úpydantic_ai.exceptionsr   Úpydantic_ai.messagesr   r   r   Úpydantic_ai.settingsr   r   Úpydantic_ai.toolsr   r   r    r!   r"   r#   Úpydantic_ai.toolsetsr$   r%   r&   Ú&pydantic_ai.toolsets._capability_ownedr'   Úpydantic_ai.toolsets._dynamicr(   Ú	_on_eventr*   r+   Ú	_orderingr,   r-   r.   Úabstractr/   r0   r1   r2   r3   Úpydantic_air4   Úpydantic_ai.agent.abstractr5   Úpydantic_ai.modelsr6   r7   r8   r9   Úpydantic_ai.outputr:   Úpydantic_ai.resultr;   Úpydantic_ai.runr<   Úpydantic_graphr=   r?   r8  rj  r}  rL  rŽ  rŸ  r°  r  rÜ  rî   r  r  r»   rU   rR   Ú<module>r)     s‡  ðÝ "ç QÕ Qß 1Ñ 1ß +Ñ +å $÷õ ÷ CÑ BÝ -ß NÑ Nß D÷÷ ÷ PÑ OÝ IÝ 8ç Bß FÑ F÷õ ö Ý(Ý8ßeÓeÝ0Ý.Ý.Ý"ð ôG4Ð+¨JÑ7ó G4ó ðG4ð^Ø	'ðà	ðð 8ðð 2ô	ðØ	'ðà	ðð Eðð ?ô	ðØ	'ðà	ðð ðð ð	ð
 Gðð AôðØ	'ðà	ððððôð&Ø	'ðà	ðð ðð ð	ð
 6ðð 0ôðØ	'ðà	ðð "ðð 1ð	ð
 +ôðØ	'ðà	ðð "ðð +ð	ð
 %ôð'Ø,ð'à)ð'ð ð	'ð
 $ô'ô&ðhØ.ðhØ5Kðhà"ôhðUØ	ðUØ0NðUØcgðUàôUõ^rU   