ó
    ±"³jÉf  ã                  ó"  • 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	  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  S SKJr  S S	KJrJr  S
SKJrJr  S
SKJr  S
SKJ r   S
SK!J"r"  S
SK#J$r$J%r%  Sr&\" S5      r'\" SSS9r(\" S5      r) \" S\*SS9r+ \S   r, \S   r- \" S\.\(   \S\\(   \(-  4   -  \(4S9r/ \" S\\ \   \*/\\(   \(-  4   \\*/\\(   \(-  4   -  \(4S9r0 \	" SS9 " S  S!\\+   5      5       r1\	" SS9 " S" S#\\+   5      5       r2\	" SS9 " S$ S%\\+   5      5       r3\	 " S& S'5      5       r4\	 " S( S)5      5       r5\	 " S* S+\\+   5      5       r6 S:       S;S, jjr7\	" SS9 " S- S.\\(   5      5       r8S<S/ jr9 " S0 S15      r:\SSS2.       S=S3 jj5       r;\SSS2.       S>S4 jj5       r;\SSS2.       S?S5 jj5       r;SSS2.       S@S6 jjr;\" S7\/\(   \1\(   -  \2\(   -  \3\(   -  \6\(   -  \(4S9r<\" S8\<\(   \S9   -  \(4S9r=g)Aé    )ÚannotationsN)Ú	AwaitableÚCallableÚMappingÚSequence)Ú	dataclass)ÚAnyÚClassVarÚGenericÚLiteralÚoverload)ÚGetCoreSchemaHandlerÚGetJsonSchemaHandler)ÚJsonSchemaValue)Úcore_schema)ÚTypeAliasTypeÚTypeVaré   )Ú_utilsÚ
exceptions)ÚInlineDefsJsonSchemaTransformer)Ú
RunContext)ÚToolCallPart)ÚObjectJsonSchemaÚToolDefinition)Ú
ToolOutputÚNativeOutputÚPromptedOutputÚ
TextOutputÚStructuredDictÚChoiceÚChoicesÚOutputObjectDefinitionÚOutputContextÚOutputDataTÚ
OutputModeÚStructuredOutputModeÚ
OutputSpecÚOutputTypeOrFunctionÚTextOutputFuncÚTÚT_coT)Ú	covariantÚChoiceValueTr%   )Údefaultr-   )ÚtextÚtoolÚnativeÚpromptedÚtool_or_textÚimageÚauto)r1   r2   r3   r)   .)Útype_paramsr*   F)Úinitc                  ó’   • \ rS rSr% SrS\S'    S\S'    S\S'    S\S	'    S
\S'    S\S'    SSSSSS.           SS jjrSrg)r   éR   aK  Marker class to use a tool for output and optionally customize the tool.

Example:
```python {title="tool_output.py"}
from pydantic import BaseModel

from pydantic_ai import Agent, ToolOutput


class Fruit(BaseModel):
    name: str
    color: str


class Vehicle(BaseModel):
    name: str
    wheels: int


agent = Agent(
    'openai:gpt-5.2',
    output_type=[
        ToolOutput(Fruit, name='return_fruit'),
        ToolOutput(Vehicle, name='return_vehicle'),
    ],
)
result = agent.run_sync('What is a banana?')
print(repr(result.output))
#> Fruit(name='banana', color='yellow')
```
ú!OutputTypeOrFunction[OutputDataT]Úoutputú
str | NoneÚnameÚdescriptionú
int | NoneÚmax_retriesúbool | NoneÚstrictÚboolÚ
sequentialNF)r>   r?   rA   rC   rE   c               ó�   • Ub  US:  a  [         R                  " SU 35      eXl        X l        X0l        X@l        XPl        X`l        g )Nr   zmax_retries must be >= 0, got )r   Ú	UserErrorr<   r>   r?   rA   rC   rE   )ÚselfÚtype_r>   r?   rA   rC   rE   s          ÚO/home/mande/repo/quber/.venv/lib/python3.13/site-packages/pydantic_ai/output.pyÚ__init__ÚToolOutput.__init__Š   sI   € ð Ñ" {°Q£Ü×&Ò&Ð)GÈÀ}Ð'UÓVÐVØŒØŒ	Ø&ÔØ&ÔØŒØ$�ó    )r?   rA   r>   r<   rE   rC   )rI   r;   r>   r=   r?   r=   rA   r@   rC   rB   rE   rD   ©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__rK   Ú__static_attributes__© rM   rJ   r   r   R   s¡   ‡ ñð@ .Ó-Ø%Ø
Óð zØÓð UØÓðð
 ÓØ2ØÓðð  Ø"&Ø"&Ø"Ø ñ%à0ð%ð ð	%ð
  ð%ð  ð%ð ð%ð ÷%ð %rM   r   c                  ó€   • \ rS rSr% SrS\S'    S\S'    S\S'    S\S	'    S
\S'    SSSSS.         SS jjrSrg)r   éž   a[  Marker class to use the model's native structured outputs functionality for outputs and optionally customize the name and description.

Example:
```python {title="native_output.py" requires="tool_output.py"}
from pydantic_ai import Agent, NativeOutput

from tool_output import Fruit, Vehicle

agent = Agent(
    'openai:gpt-5.2',
    output_type=NativeOutput(
        [Fruit, Vehicle],
        name='Fruit or vehicle',
        description='Return a fruit or vehicle.'
    ),
)
result = agent.run_sync('What is a Ford Explorer?')
print(repr(result.output))
#> Vehicle(name='Ford Explorer', wheels=4)
```
úOOutputTypeOrFunction[OutputDataT] | Sequence[OutputTypeOrFunction[OutputDataT]]Úoutputsr=   r>   r?   rB   rC   ústr | Literal[False] | NoneÚtemplateN)r>   r?   rC   r\   c               ó@   • Xl         X l        X0l        X@l        XPl        g ©N)rZ   r>   r?   rC   r\   )rH   rZ   r>   r?   rC   r\   s         rJ   rK   ÚNativeOutput.__init__Å   s   € ð ŒØŒ	Ø&ÔØŒØ �rM   )r?   r>   rZ   rC   r\   )
rZ   rY   r>   r=   r?   r=   rC   rB   r\   r[   rN   rV   rM   rJ   r   r   ž   s‡   ‡ ñð, ]Ó\Ø(Ø
Óð vØÓð BØÓØNØ)Ó)ðð  Ø"&Ø"Ø04ñ!à`ð!ð ð	!ð
  ð!ð ð!ð .÷!ð !rM   r   c                  ón   • \ rS rSr% SrS\S'    S\S'    S\S'    S\S	'    S
S
S
S.       SS jjrSrg
)r   éÕ   aš  Marker class to use a prompt to tell the model what to output and optionally customize the prompt.

Example:
```python {title="prompted_output.py" requires="tool_output.py"}
from pydantic import BaseModel

from pydantic_ai import Agent, PromptedOutput

from tool_output import Vehicle


class Device(BaseModel):
    name: str
    kind: str


agent = Agent(
    'openai:gpt-5.2',
    output_type=PromptedOutput(
        [Vehicle, Device],
        name='Vehicle or device',
        description='Return a vehicle or device.'
    ),
)
result = agent.run_sync('What is a MacBook?')
print(repr(result.output))
#> Device(name='MacBook', kind='laptop')

agent = Agent(
    'openai:gpt-5.2',
    output_type=PromptedOutput(
        [Vehicle, Device],
        template='Gimme some JSON: {schema}'
    ),
)
result = agent.run_sync('What is a Ford Explorer?')
print(repr(result.output))
#> Vehicle(name='Ford Explorer', wheels=4)
```
rY   rZ   r=   r>   r?   r[   r\   N)r>   r?   r\   c               ó4   • Xl         X l        X0l        X@l        g r^   )rZ   r>   r?   r\   )rH   rZ   r>   r?   r\   s        rJ   rK   ÚPromptedOutput.__init__  s   € ð ŒØŒ	Ø&ÔØ �rM   )r?   r>   rZ   r\   )rZ   rY   r>   r=   r?   r=   r\   r[   rN   rV   rM   rJ   r   r   Õ   sr   ‡ ñ'ðR ]Ó\Ø(Ø
Óð vØÓð iØ)Ó)ðð  Ø"&Ø04ñ!à`ð!ð ð	!ð
  ð!ð .÷!ð !rM   r   c                  óN   • \ rS rSr% SrS\S'   SrS\S'   SrS\S'   SrS	\S
'   Sr	g)r#   i  zEDefinition of an output object used for structured output generation.r   Újson_schemaNr=   r>   r?   rB   rC   rV   )
rO   rP   rQ   rR   rS   rT   r>   r?   rC   rU   rV   rM   rJ   r#   r#     s)   ‡ áOà!Ó!Ø€Dˆ*ÓØ"€K�Ó"Ø€FˆKÖrM   r#   c                  ó¨   • \ rS rSr% SrS\S'    S\S'    S\S'    S	\S
'    SrS\S'    SrS\S'    SrS\S'    Sr	S	\S'    Sr
S	\S'    SrS	\S'   Srg)r$   i%  zAContext about the output being processed, passed to output hooks.r&   Úmodeztype[Any] | NoneÚoutput_typezOutputObjectDefinition | NoneÚ
object_defrD   Úhas_functionNr=   Úfunction_namezToolCallPart | NoneÚ	tool_callzToolDefinition | NoneÚtool_defFÚallows_textÚallows_imageÚallows_deferred_toolsrV   )rO   rP   rQ   rR   rS   rT   rk   rl   rm   rn   ro   rp   rU   rV   rM   rJ   r$   r$   %  s†   ‡ áKà
Óðð "Ó!ð CØ-Ó-ØYØÓØIØ $€M�:Ó$ð>à%)€IÐ"Ó)ð DØ&*€HÐ#Ó*ØtØ€K�ÓØlØ€L�$ÓØ2Ø"'Ð˜4Ó'ÚFrM   r$   c                  ó$   • \ rS rSr% SrS\S'   Srg)r   iE  aÉ  Marker class to use text output for an output function taking a string argument.

Example:
```python
from pydantic_ai import Agent, TextOutput


def split_into_words(text: str) -> list[str]:
    return text.split()


agent = Agent(
    'openai:gpt-5.2',
    output_type=TextOutput(split_into_words),
)
result = agent.run_sync('Who was Albert Einstein?')
print(result.output)
#> ['Albert', 'Einstein', 'was', 'a', 'German-born', 'theoretical', 'physicist.']
```

!!! note
    When streaming, [`stream_text()`][pydantic_ai.result.StreamedRunResult.stream_text] does not apply the
    wrapped function. Use [`stream_output()`][pydantic_ai.result.StreamedRunResult.stream_output] to stream
    the value it produces.
zTextOutputFunc[OutputDataT]Úoutput_functionrV   N)rO   rP   rQ   rR   rS   rT   rU   rV   rM   rJ   r   r   E  s   ‡ ñð4 1Ó0ò FrM   r   c                óþ   ^ • [         R                  " T 5      m ST ;   a5  [        T 5      R                  5       m ST ;   a  [        R
                  " S5      eU(       a  UT S'   U(       a  UT S'    " U 4S jS[        5      nU$ )a£  Returns a `dict[str, Any]` subclass with a JSON schema attached that will be used for structured output.

Args:
    json_schema: A JSON schema of type `object` defining the structure of the dictionary content.
    name: Optional name of the structured output. If not provided, the `title` field of the JSON schema will be used if it's present.
    description: Optional description of the structured output. If not provided, the `description` field of the JSON schema will be used if it's present.

Example:
```python {title="structured_dict.py"}
from pydantic_ai import Agent, StructuredDict

schema = {
    'type': 'object',
    'properties': {
        'name': {'type': 'string'},
        'age': {'type': 'integer'}
    },
    'required': ['name', 'age']
}

agent = Agent('openai:gpt-5.2', output_type=StructuredDict(schema))
result = agent.run_sync('Create a person')
print(result.output)
#> {'name': 'John Doe', 'age': 30}
```
z$defsz–`StructuredDict` does not currently support recursive `$ref`s and `$defs`. See https://github.com/pydantic/pydantic/issues/12145 for more information.Útitler?   c                  ó`   >• \ rS rSrSr\      SS j5       r\      SU 4S jj5       rSrg)	Ú'StructuredDict.<locals>._StructuredDicti“  Tc                óx   • [         R                  " [         R                  " 5       [         R                  " 5       S9$ )N)Úkeys_schemaÚvalues_schema)r   Údict_schemaÚ
str_schemaÚ
any_schema©ÚclsÚsource_typeÚhandlers      rJ   Ú__get_pydantic_core_schema__ÚDStructuredDict.<locals>._StructuredDict.__get_pydantic_core_schema__–  s/   € ô ×*Ò*Ü'×2Ò2Ó4Ü)×4Ò4Ó6ñð rM   c                ó   >• T$ r^   rV   ©r~   r   r€   re   s      €rJ   Ú__get_pydantic_json_schema__ÚDStructuredDict.<locals>._StructuredDict.__get_pydantic_json_schema__Ÿ  s   ø€ ð ÐrM   rV   N©r   r	   r€   r   Úreturnúcore_schema.CoreSchema©r   r‰   r€   r   rˆ   r   )	rO   rP   rQ   rR   Ú__is_model_like__Úclassmethodr�   r…   rU   )re   s   €rJ   Ú_StructuredDictrv   “  s_   ø† Ø Ðà	ð	Ø!ð	Ø,@ð	à#ó	ó 
ð	ð 
ð	Ø4ð	Ø?Sð	àö	ó 
ó	rM   r�   )r   Úcheck_object_json_schemar   Úwalkr   rG   r   )re   r>   r?   r�   s   `   rJ   r    r    e  sƒ   ø€ ô: ×1Ò1°+Ó>€Kð �+ÓÜ5°kÓB×GÑGÓIˆØ�kÓ!Ü×&Ò&ð ióð ö Ø#ˆ�GÑæØ%0ˆ�MÑ"÷œ/ô ð$ ÐrM   c                  óÜ   • \ rS rSr% SrS\S'    S\S'    \SSS jj5       r\ S       SS	 jj5       r\ S       SS
 jj5       r\SSS jj5       rS\R                  S.SS jjjrSr
g)r!   i¨  aq  One choice in a [`Choices`][pydantic_ai.output.Choices] set: what it means, and what it stands for.

Building a set from descriptions alone yields the key the model picked, so `Choice` is only reached for
when a choice stands for something other than its key:

```python {title="choice.py"}
from pydantic_ai import Agent, Choice, Choices

Card = Choices(
    {
        'visa': Choice('Any card starting with a 4.', value=4),
        'amex': Choice('Any card starting with a 3.', value=3),
    }
)

agent = Agent('openai:gpt-5.2', output_type=Card)
result = agent.run_sync('4111 1111 1111 1111')
print(result.output)
#> 4
```
r=   r?   r,   ÚvalueNc                ó   • g r^   rV   )rH   r?   s     rJ   rK   ÚChoice.__init__Ì  s   € ØMPrM   c               ó   • g r^   rV   ©rH   r?   r‘   s      rJ   rK   r“   Ï  ó   € ð rM   c               ó   • g r^   rV   r•   s      rJ   rK   r“   Ô  r–   rM   c               ó   • g r^   rV   r•   s      rJ   rK   r“   Ù  s   € ØnqrM   )r‘   c               ór   • [        U5      (       a  [        R                  " SU< S35      eXl        X l        g )NzSA callable `Choice` value is called with no arguments when the model picks it, but z@ requires some. Bind them with `functools.partial` or a closure.)Ú_requires_argumentsr   rG   r?   r‘   r•   s      rJ   rK   r“   Ü  s@   € Ü˜u×%Ñ%Ü×&Ò&ðØ‘iÐ_ðaóð ð 'ÔØ�
rM   )r?   r‘   r^   )rH   zChoice[str]r?   r=   rˆ   ÚNone)rH   úChoice[ChoiceValueT]r?   r=   r‘   z%Callable[[], Awaitable[ChoiceValueT]]rˆ   r›   )rH   rœ   r?   r=   r‘   zCallable[[], ChoiceValueT]rˆ   r›   )rH   rœ   r?   r=   r‘   r.   rˆ   r›   )r?   r=   r‘   r	   rˆ   r›   )rO   rP   rQ   rR   rS   rT   r   rK   r   ÚUNSETrU   rV   rM   rJ   r!   r!   ¨  s½   ‡ ñð, ÓØNàƒKðð ÝPó ØPàà>BðØ"ðØ1;ðØNsðà	ôó ðð à>BðØ"ðØ1;ðØNhðà	ôó ðð Ýqó ØqðÀvÇ|Á|÷ ó rM   r!   c                óÒ   • [        U 5      (       d  g [        R                  " U 5      R                  R	                  5       n[        S U 5       5      $ ! [
        [        4 a     gf = f)zLWhether `value` is a callable that would fail when called with no arguments.Fc              3  óÀ   #   • U  HT  nUR                   UR                  L =(       a0    UR                  UR                  UR                  UR
                  4;   v •  MV     g 7fr^   )r/   ÚemptyÚkindÚPOSITIONAL_ONLYÚPOSITIONAL_OR_KEYWORDÚKEYWORD_ONLY)Ú.0Ú	parameters     rJ   Ú	<genexpr>Ú&_requires_arguments.<locals>.<genexpr>ï  sZ   é € ð ò $ˆIð 	×Ñ˜YŸ_™_Ð,÷ 	sØ�N‰N˜y×8Ñ8¸)×:YÑ:YÐ[d×[qÑ[qÐrÑrô	sâ#ùs   ‚AA)ÚcallableÚinspectÚ	signatureÚ
parametersÚvaluesÚ	TypeErrorÚ
ValueErrorÚany)r‘   r¬   s     rJ   rš   rš   æ  si   € ä�E�?‰?ØðÜ×&Ò& uÓ-×8Ñ8×?Ñ?ÓAˆ
ô ñ ñ $óó ð øô ”zÐ"ó áðús   “.A ÁA&Á%A&c                  óF   • \ rS rSr% SrS\S'    S\S'    \S
S j5       rSrg	)Ú_ChoicesActionsiö  ai  Base class of the type [`Choices`][pydantic_ai.output.Choices] returns when a choice value is callable.

Such a set is only meaningful as an agent's `output_type`, where `_output.py` validates the pick against
`keys_type` and resolves and calls the value itself. Anywhere else there is nothing to call the action, so
the core schema refuses to be built at all.
zClassVar[type[Any]]Ú	keys_typezClassVar[Mapping[str, Any]]r­   c                ó\   • [        U [        5      (       a  [        U [        5      (       a  U $ g)zN`output` if it is a `Choices` set whose values include callables, else `None`.N)Ú
isinstanceÚtypeÚ
issubclassr²   )r<   s    rJ   ÚofÚ_ChoicesActions.of  s%   € ô �fœd×#Ñ#¬
°6¼?×(KÑ(KØˆMØrM   rV   N)r<   r	   rˆ   ztype[_ChoicesActions] | None)	rO   rP   rQ   rR   rS   rT   Ústaticmethodr¸   rU   rV   rM   rJ   r²   r²   ö  s-   ‡ ñð #Ó"Øaà'Ó'ØDàóó órM   r²   )r>   r?   c               ó   • g r^   rV   ©Úchoicesr>   r?   s      rJ   r"   r"     s   € ð rM   c               ó   • g r^   rV   r¼   s      rJ   r"   r"     s   € ð rM   c               ó   • g r^   rV   r¼   s      rJ   r"   r"     s   € ð rM   c          	     óä  ^^^^^• [        U [        5      (       a  [        R                  " S5      e[        U [        5      (       aF  U R                  5        VVs0 s H(  u  p4U[        U[        5      (       a  [        U5      OU_M*     snnOU  Vs0 s H  o3[        5       _M     snnU(       d  [        R                  " S5      eUR                  5        VVs0 s H9  u  p4U[        R                  " UR                  5      (       a  UR                  OU_M;     snnm[        S TR                  5        5       5      m[        S TR                  5        5       5      mUR                  5        VVs0 s H$  u  p4UR                  (       d  M  X4R                  _M&     nnnU(       aB  / nT H4  nSU0nUR                  U5      =n	(       a  X˜S'   UR                  U5        M6     SUS.mOS[        T5      S	.mU(       a  UTS'    " UUUU4S
 jS5      mU=(       d    S=Tl        Tl        T(       d  T$  " UU4S jS[$        5      n
U=(       d    S=U
l        U
l        U
$ s  snnf s  snf s  snnf s  snnf )aI  Returns a type the model can only fill with one of `choices`, each described where it is built.

Use it when the set is only known once the run is under way -- the actions available on the screen in front
of an agent, the records a search returned. For a set you know when you write the code, use a `Literal` or
an `Enum` (with [`UseEnumMemberDocstrings`][pydantic_ai.UseEnumMemberDocstrings] to describe its
members), which give you exhaustiveness checking that a run-time set cannot.

Like [`StructuredDict`][pydantic_ai.output.StructuredDict] it returns a type, so it works as an
`output_type`, as a field of a Pydantic model, and as a tool parameter.

Args:
    choices: The choices, as a sequence of keys, a mapping from key to its description, or a mapping from
        key to a [`Choice`][pydantic_ai.output.Choice] carrying both a description and what the key stands
        for.
    name: Name of the output tool or structured output. Defaults to `'Choices'`.
    description: What the model is being asked to pick, e.g. `'Which action to take next.'`.

Example:
```python {title="choices.py"}
from pydantic_ai import Agent, Choices

Intent = Choices(
    {
        'refund': 'The customer wants their money back.',
        'replace': 'The customer wants a working unit instead.',
        'escalate': 'Nobody on this tier can resolve it.',
    },
    name='customer_intent',
    description='What the customer is asking for.',
)

agent = Agent('openai:gpt-5.2', output_type=Intent)
result = agent.run_sync('The blender arrived smashed. Just send me another one.')
print(result.output)
#> replace
```
zF`Choices` takes a sequence or mapping of choices, not a single string.z'`Choices` requires at least one choice.c              3  ó,   #   • U  H
  u  pX!Lv •  M     g 7fr^   rV   )r¥   Úkeyr‘   s      rJ   r§   ÚChoices.<locals>.<genexpr>X  s   é € ÐSÒ=R©z¨s˜%Õ*Ò=Rùs   ‚c              3  ó8   #   • U  H  n[        U5      v •  M     g 7fr^   )r©   )r¥   r‘   s     rJ   r§   rÃ   Y  s   é € ÐJÒ3I¨%”h˜u—o�oÒ3Iùs   ‚Úconstr?   Ústring)r¶   ÚanyOf)r¶   Úenumc                  óf   >• \ rS rSr\      SU UU4S jj5       r\      SU4S jj5       rSrg)ÚChoices.<locals>._Choicesil  c                ó¤   >• [         R                  " [        T5      5      nT(       a(  T(       d!  [         R                  " TR                  U5      nU$ r^   )r   Úliteral_schemaÚlistÚ no_info_after_validator_functionÚ__getitem__)r~   r   r€   ÚschemaÚchoice_valuesÚhas_actionsÚresolves_valuess       €€€rJ   r�   Ú6Choices.<locals>._Choices.__get_pydantic_core_schema__m  s?   ø€ ô !×/Ò/´°]Ó0CÓDˆFö ¦{Ü$×EÒEÀm×F_ÑF_ÐagÓh�ØˆMrM   c                ó   >• [        T5      $ r^   )Údictr„   s      €rJ   r…   Ú6Choices.<locals>._Choices.__get_pydantic_json_schema__x  s   ø€ ô ˜Ó$Ð$rM   rV   Nr‡   rŠ   )rO   rP   rQ   rR   rŒ   r�   r…   rU   )rÑ   rÒ   re   rÓ   s   €€€€rJ   Ú_ChoicesrÊ   l  s^   ø† Ø	ð	Ø!ð	Ø,@ð	à#÷	ð 	ó 
ð	ð 
ð	%Ø4ð	%Ø?Sð	%àö	%ó 
ó	%rM   rØ   r"   c                  óB   >• \ rS rSr Y r Yr\      SS j5       rSrg)Ú$Choices.<locals>._ChoicesWithActionsi‚  c                ó.   • [         R                  " S5      e)Na  A `Choices` set with a callable `Choice` value can only be used as an agent's `output_type`, as that is the only place Pydantic AI can call the action the model picked. To pick one as a tool parameter or a model field, give the choices plain values and call the action yourself.)r   rG   r}   s      rJ   r�   ÚAChoices.<locals>._ChoicesWithActions.__get_pydantic_core_schema__†  s   € ô ×&Ò&ð#óð rM   rV   Nr‡   )	rO   rP   rQ   rR   r³   r­   rŒ   r�   rU   )rØ   rÑ   s   €€rJ   Ú_ChoicesWithActionsrÚ   ‚  s7   ø† Ùˆ	Ùˆà	ð	Ø!ð	Ø,@ð	à#ó	ó 
ó	rM   rÝ   )rµ   Ústrr   rG   r   Úitemsr!   r   Úis_setr‘   r°   r­   r?   ÚgetÚappendrÍ   rO   rQ   r²   )r½   r>   r?   rÂ   ÚchoiceÚresolvedÚdescriptionsÚoptionsÚoptionÚchoice_descriptionrÝ   rØ   rÑ   rÒ   re   rÓ   s              @@@@@rJ   r"   r"     s.  ü€ ôV �'œ3×ÑÜ×"Ò"Ð#kÓlÐlô �gœw×'Ñ'ð X_×WdÑWdÔWfÔgÒWfÉÈˆ¤
¨6´3× 7Ñ 7Œf�VŒn¸VÒ	CÑWfÓgá'.Ó/¢w ”6“8Šm¡wÑ/ð ö
 Ü×"Ò"Ð#LÓMÐMð V^×UcÑUcÔUeô%ÚUeÁkÀcˆœVŸ]š]¨6¯<©<×8Ñ8ˆV�\Š\¸cÒAÑUeò%€Mô ÑS¸]×=PÑ=PÔ=RÓSÓS€OÜÑJ°=×3GÑ3GÔ3IÓJÓJ€Kà?G¿~¹~Ô?OÔfÒ?O±°ÐSY×SeÕSeÓ+�C×+Ñ+Ò+Ñ?O€LÑfÞð *,ˆÛ ˆCØ'.° nˆFØ%1×%5Ñ%5°cÓ%:Ð:Ð!Õ:Ø(:�}Ñ%Ø�N‰N˜6Ö"ñ	 !ð
 19À7Ñ'K‰à'´°mÓ1DÑEˆÞØ%0ˆ�MÑ"÷%÷ %ð$ 15×0A¸	ÐA€HÔ˜Ô-ÞØˆ÷ð œoô ð GK×FWÈiÐWÐÔ Ð#6Ô#CØÐùóK 	hùâ/ùó
%ùó gs   Á/IÂI!ÃA I&Å.I,Æ	I,Ú_OutputSpecItemr(   zOutputSpec[T_co])NN)re   r   r>   r=   r?   r=   rˆ   ztype[JsonSchemaValue])r‘   r	   rˆ   rD   )r½   z!Sequence[str] | Mapping[str, str]r>   r=   r?   r=   rˆ   z	type[str])r½   zMapping[str, Choice[T_co]]r>   r=   r?   r=   rˆ   z
type[T_co])r½   z Mapping[str, str | Choice[T_co]]r>   r=   r?   r=   rˆ   ztype[str | T_co])r½   z/Sequence[str] | Mapping[str, str | Choice[Any]]r>   r=   r?   r=   rˆ   z	type[Any])>Ú
__future__r   rª   Úcollections.abcr   r   r   r   Údataclassesr   Útypingr	   r
   r   r   r   Úpydanticr   r   Úpydantic.json_schemar   Úpydantic_corer   Útyping_extensionsr   r   Ú r   r   Ú_json_schemar   Ú_run_contextr   Úmessagesr   Útoolsr   r   Ú__all__r+   r,   r.   rÞ   r%   r&   r'   r¶   r)   r*   r   r   r   r#   r$   r   r    r!   rš   r²   r"   ré   r(   rV   rM   rJ   Ú<module>rø      s²  ðÝ "ã ß BÓ BÝ !ß <Õ <ç ?Ý 0Ý %ß 4ç  Ý 9Ý $Ý "ß 3ð€ñ( ˆCƒL€Ùˆv Ñ&€Ù�~Ó&€Ø oá�m¨S¸DÑA€Ø @ð ÐZÑ[€
ðð
 Ð;Ñ<Ð Ø nñ %Ø˜D ™J¨°#°yÀ±ÈÑ7MÐ2MÑ)NÑNÐ]aÐ\cñÐ ðñ ØØˆj˜‰o˜sÐ# Y¨t¡_°tÑ%;Ð;Ñ<¸xÈÈÈyÐY]ÉÐaeÑOeÐHeÑ?fÑfØ�ñ€ð
ñ �ÑôH%�˜Ñ%ó H%ó ðH%ñV �Ñô3!�7˜;Ñ'ó 3!ó ð3!ñl �ÑôB!�W˜[Ñ)ó B!ó ðB!ðJ ÷ð ó ðð ÷Gð Gó ðGð> ôF�˜Ñ%ó Fó ðFð@ VZð@Ø ð@Ø(2ð@ØHRð@àõ@ñF �Ñô:ˆW�T‰]ó :ó ð:ôz÷ ñ ð, 
àFJÐfjñØ.ðØ9CðØYcðàôó 
ðð
 
à?CÐ_cñØ'ðØ2<ðØR\ðàôó 
ðð
 
àEIÐeiñØ-ðØ8BðØXbðàôó 
ðð Ø"ñ	tØ<ðtð ðtð ð	tð
 õtñn  ØØ˜Ñ ¨DÑ!1Ñ1°LÀÑ4FÑFÈÐX\ÑI]Ñ]Ð`jÐkoÑ`pÑpØ�ñ€ñ ØØ�DÑ˜HÐ%7Ñ8Ñ8Ø�ñ€
ð
rM   