ó
    °"³jé  ã                  óˆ  • % S r SSKJr  SSKJrJr  SSKJr  SSKJ	r	J
r
   " S S\
5      r " S S	\
S
S9r " S S\
5      r " S S\
5      r " S S\
5      r " S S\
5      r " S S\
5      r " S S\
5      r " S S\
5      r " S S\
5      rSrS\S'   \S   r " S  S!\
5      r\\   rS\S"'    " S# S$\5      r\\   rS\S%'   g&)'zÌType definitions of OpenTelemetry GenAI spec message parts.

Based on https://github.com/lmolkova/semantic-conventions/blob/eccd1f806e426a32c98271c3ce77585492d26de2/docs/gen-ai/non-normative/models.ipynb
é    )Úannotations)ÚLiteralÚ	TypeAlias)Ú	JsonValue)ÚNotRequiredÚ	TypedDictc                  ó*   • \ rS rSr% S\S'   S\S'   Srg)ÚTextParté   zLiteral['text']ÚtypeúNotRequired[str]Úcontent© N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__Ú__static_attributes__r   ó    ÚW/home/mande/repo/quber/.venv/lib/python3.13/site-packages/pydantic_ai/_otel_messages.pyr
   r
      s   ‡ Ø
ÓØÖr   r
   c                  ó.   • \ rS rSr% SrS\S'   S\S'   Srg)ÚToolCallPartOtelMetadataé   a  Typed metadata stored on `messages.BaseToolCallPart.otel_metadata` to inform OTel event rendering.

Used by Logfire for rendering hints (e.g. syntax highlighting of code arguments).
Not sent directly as part of OTel events; individual fields are extracted in `otel_message_parts()`.
ÚstrÚcode_arg_nameÚcode_arg_languager   N©r   r   r   r   Ú__doc__r   r   r   r   r   r   r      s   ‡ ñð ÓØÖr   r   F)Útotalc                  ó\   • \ rS rSr% S\S'   S\S'   S\S'   S\S'   S	\S
'   S\S'   S\S'   Srg)ÚToolCallParté   zLiteral['tool_call']r   r   ÚidÚnameúNotRequired[JsonValue]Ú	argumentsúNotRequired[bool]Úbuiltinr   r   r   r   Nr   r   r   r   r#   r#      s*   ‡ Ø
ÓØƒGØ
ƒIØ%Ó%ØÓØ#Ó#Ø'Ö'r   r#   c                  óH   • \ rS rSr% S\S'   S\S'   S\S'   S\S'   S	\S
'   Srg)ÚToolCallResponseParté(   zLiteral['tool_call_response']r   r   r%   r&   r'   Úresultr)   r*   r   Nr   r   r   r   r,   r,   (   s   ‡ Ø
'Ó'ØƒGØ
ƒIØ"Ó"ØÖr   r,   c                  ó*   • \ rS rSr% S\S'   S\S'   Srg)ÚMediaUrlParté0   z>Literal['image-url', 'audio-url', 'video-url', 'document-url']r   r   Úurlr   Nr   r   r   r   r0   r0   0   s   ‡ Ø
HÓHØ	Ör   r0   c                  óB   • \ rS rSr% SrS\S'   S\S'   S\S'   S\S	'   S
rg)ÚUriParté5   aº  Part type for URIs following OpenTelemetry GenAI semantic conventions.

Used in instrumentation version 4+ to align with the GenAI spec:
https://opentelemetry.io/docs/specs/semconv/gen-ai/non-normative/examples-llm-calls/#multimodal-inputs-example

The modality field is present for supported types (ImageUrl, AudioUrl, VideoUrl) but omitted for
unsupported types (DocumentUrl) since the spec only defines image, audio, and video modalities.
zLiteral['uri']r   ú/NotRequired[Literal['image', 'audio', 'video']]Úmodalityr   ÚuriÚ	mime_typer   Nr   r   r   r   r4   r4   5   s!   ‡ ñð ÓØ=Ó=Ø	ÓØÖr   r4   c                  óB   • \ rS rSr% SrS\S'   S\S'   S\S'   S\S	'   S
rg)ÚFilePartéE   zVRepresents an external referenced file sent to the model by file id (OTel GenAI spec).zLiteral['file']r   r   r7   r   Úfile_idr9   r   Nr   r   r   r   r;   r;   E   s   ‡ Ù`à
ÓØƒMØÓØÖr   r;   c                  ó4   • \ rS rSr% S\S'   S\S'   S\S'   Srg	)
ÚBinaryDataPartéN   zLiteral['binary']r   r   Ú
media_typer   r   r   Nr   r   r   r   r?   r?   N   s   ‡ Ø
ÓØƒOØÖr   r?   c                  óB   • \ rS rSr% SrS\S'   S\S'   S\S'   S\S	'   S
rg)ÚBlobPartéT   aµ  Part type for inline binary data following OpenTelemetry GenAI semantic conventions.

Used in instrumentation version 4+ to align with the GenAI spec:
https://opentelemetry.io/docs/specs/semconv/gen-ai/non-normative/examples-llm-calls/#multimodal-inputs-example

The modality field is optional since it's inferred from media_type, which may fail for unknown MIME types.
Only image, audio, and video modalities are included per the spec.
zLiteral['blob']r   r6   r7   r   r9   r   r   Nr   r   r   r   rC   rC   T   s!   ‡ ñð ÓØ=Ó=ØÓØÖr   rC   c                  ó*   • \ rS rSr% S\S'   S\S'   Srg)ÚThinkingPartéd   zLiteral['thinking']r   r   r   r   Nr   r   r   r   rF   rF   d   s   ‡ Ø
ÓØÖr   rF   z}TextPart | ToolCallPart | ToolCallResponsePart | MediaUrlPart | UriPart | FilePart | BinaryDataPart | BlobPart | ThinkingPartr   ÚMessagePart)ÚsystemÚuserÚ	assistantÚtoolc                  ó*   • \ rS rSr% S\S'   S\S'   Srg)ÚChatMessageéo   ÚRoleÚrolezlist[MessagePart]Úpartsr   Nr   r   r   r   rN   rN   o   s   ‡ Ø
ƒJØÖr   rN   ÚInputMessagesc                  ó    • \ rS rSr% S\S'   Srg)ÚOutputMessageéw   r   Úfinish_reasonr   Nr   r   r   r   rU   rU   w   s   ‡ Ø#Ö#r   rU   ÚOutputMessagesN)r    Ú
__future__r   Útypingr   r   Úpydanticr   Útyping_extensionsr   r   r
   r   r#   r,   r0   r4   r;   r?   rC   rF   rH   r   rP   rN   ÚlistrS   rU   rX   r   r   r   Ú<module>r^      sé   ðòõ
 #ç %å ß 4ôˆyô ô
˜y°ò ô(�9ô (ô˜9ô ô�9ô ô
 ˆiô  ô  ˆyô  ô�Yô ôˆyô ô �9ô ð
 Y€ˆYó  Yð Ð4Ñ5€ô�)ô ð
   Ñ,€ˆyÓ ,ô$�Kô $ð ! Ñ/€�	Ô /r   