ó
    Ð]j;  ã            
      ó$  • % S r SSKJr  SSKJr  SSKJrJrJr  SSK	J
r
JrJr  \S   r\" S5      rS\S'   S@S	 jrS
rSrSrSAS jrSrSrSrSrSrSrSrSrSrSrSr Sr!Sr"Sr#Sr$Sr%Sr&Sr'S r(S!r)S"r*S#r+S$r,S%r-S&r.S'r/S(r0 " S) S*\5      r1 " S+ S,\5      r2 " S- S.\5      r3 " S/ S0\5      r4 " S1 S2\5      r5 " S3 S4\5      r6\\1\2\3\4\5\6\7\8\4   4   r9S5\S6'    \S7   r:  " S8 S9\5      r;\<\;   r=S5\S:'    \<\9   r>S5\S;'     " S< S=\;5      r?\<\?   r@S5\S>'   g?)BzÙGen AI Semantic Convention attribute names and type definitions.

These constants and types follow the OpenTelemetry Gen AI Semantic Conventions.
See: https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-events/
é    )Úannotations)ÚSequence)ÚAnyÚLiteralÚUnion)ÚNotRequiredÚ	TypeAliasÚ	TypedDict)é   Úlatestúfrozenset[SemconvVersion]ÚALLOWED_VERSIONSc                óè   • [        U [        [        45      (       a  [        U 15      nO[        U 5      nU[        -
  nU(       a  [        S[        U[        S9< S35      eU(       d  [        S5      eU$ )zINormalize a version parameter to a validated frozenset of version values.zInvalid semconv version(s): )Úkeyz&. Supported versions are: 1, 'latest'.zTAt least one semconv version must be specified. Supported versions are: 1, 'latest'.)Ú
isinstanceÚintÚstrÚ	frozensetr   Ú
ValueErrorÚsortedÚrepr)ÚversionÚversionsÚinvalids      Úq/home/mande/repo/quber/.venv/lib/python3.13/site-packages/logfire/_internal/integrations/llm_providers/semconv.pyÚnormalize_versionsr      so   € ä�'œC¤˜:×&Ñ&Ü#,¨g¨YÓ#7‰ä˜WÓ%ˆàÔ)Ñ)€GÞÜØ*¬6°'¼tÑ+DÑ*GÐGmÐnó
ð 	
ö ÜÐoÓpÐpà€Oó    zgen_ai.provider.namezgen_ai.systemzgen_ai.operation.namec                ó   • [         U [        U 0$ )z;Return the common {SYSTEM: name, PROVIDER_NAME: name} dict.)ÚSYSTEMÚPROVIDER_NAME)Únames    r   Úprovider_attrsr"   .   s   € ä�Dœ-¨Ð.Ð.r   zgen_ai.request.modelzgen_ai.response.modelzgen_ai.request.max_tokenszgen_ai.request.temperaturezgen_ai.request.top_pzgen_ai.request.top_kzgen_ai.request.stop_sequenceszgen_ai.request.seedz gen_ai.request.frequency_penaltyzgen_ai.request.presence_penaltyzgen_ai.response.idzgen_ai.response.finish_reasonszgen_ai.usage.input_tokenszgen_ai.usage.output_tokensz$gen_ai.usage.cache_read.input_tokensz(gen_ai.usage.cache_creation.input_tokenszgen_ai.usage.rawzgen_ai.input.messageszgen_ai.output.messageszgen_ai.system_instructionszgen_ai.tool.definitionszgen_ai.tool.namezgen_ai.tool.call.idzgen_ai.tool.call.argumentszgen_ai.tool.call.resultzgen_ai.conversation.idz
error.typec                  ó.   • \ rS rSr% SrS\S'   S\S'   Srg)	ÚTextPartéa   zText content part.zLiteral['text']Útyper   Úcontent© N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__Ú__static_attributes__r(   r   r   r$   r$   a   s   ‡ Ùà
ÓØ†Lr   r$   c                  óB   • \ rS rSr% SrS\S'   S\S'   S\S'   S\S	'   S
rg)ÚToolCallPartéh   zTool call part.zLiteral['tool_call']r&   r   Úidr!   z(NotRequired[dict[str, Any] | str | None]Ú	argumentsr(   Nr)   r(   r   r   r2   r2   h   s   ‡ Ùà
ÓØƒGØ
ƒIØ7Ö7r   r2   c                  óB   • \ rS rSr% SrS\S'   S\S'   S\S'   S	\S
'   Srg)ÚToolCallResponsePartéq   zTool call response part.zLiteral['tool_call_response']r&   r   r4   úNotRequired[str]r!   z(NotRequired[str | dict[str, Any] | None]Úresponser(   Nr)   r(   r   r   r7   r7   q   s   ‡ Ù"à
'Ó'ØƒGØ
ÓØ6Ö6r   r7   c                  ó8   • \ rS rSr% SrS\S'   S\S'   S\S'   S	rg
)ÚUriPartéz   z5URI-based media part (image, audio, video, document).zLiteral['uri']r&   r   Úuriú;NotRequired[Literal['image', 'audio', 'video', 'document']]Úmodalityr(   Nr)   r(   r   r   r<   r<   z   s   ‡ Ù?à
ÓØ	ƒHØIÖIr   r<   c                  óB   • \ rS rSr% SrS\S'   S\S'   S\S'   S	\S
'   Srg)ÚBlobParté‚   zBinary data part.zLiteral['blob']r&   r   r'   r9   Ú
media_typer?   r@   r(   Nr)   r(   r   r   rB   rB   ‚   s   ‡ Ùà
ÓØƒLØ Ó ØIÖIr   rB   c                  ó.   • \ rS rSr% SrS\S'   S\S'   Srg)	ÚReasoningParté‹   z Reasoning/thinking content part.zLiteral['reasoning']r&   r   r'   r(   Nr)   r(   r   r   rF   rF   ‹   s   ‡ Ù*à
ÓØ†Lr   rF   r	   ÚMessagePart)ÚsystemÚuserÚ	assistantÚtoolc                  ó8   • \ rS rSr% SrS\S'   S\S'   S\S'   S	rg
)ÚChatMessageéŸ   z:A chat message following OTel Gen AI Semantic Conventions.ÚRoleÚrolezlist[MessagePart]Úpartsr9   r!   r(   Nr)   r(   r   r   rN   rN   Ÿ   s   ‡ ÙDà
ƒJØÓØ
Ör   rN   ÚInputMessagesÚSystemInstructionsc                  ó$   • \ rS rSr% SrS\S'   Srg)ÚOutputMessageé¯   z.An output message with optional finish reason.r9   Úfinish_reasonr(   Nr)   r(   r   r   rV   rV   ¯   s   ‡ Ù8à#Ö#r   rV   ÚOutputMessagesN)r   z)SemconvVersion | Sequence[SemconvVersion]Úreturnr   )r!   r   rZ   zdict[str, str])Ar.   Ú
__future__r   Úcollections.abcr   Útypingr   r   r   Útyping_extensionsr   r	   r
   ÚSemconvVersionr   r   r/   r   r    r   ÚOPERATION_NAMEr"   ÚREQUEST_MODELÚRESPONSE_MODELÚREQUEST_MAX_TOKENSÚREQUEST_TEMPERATUREÚREQUEST_TOP_PÚREQUEST_TOP_KÚREQUEST_STOP_SEQUENCESÚREQUEST_SEEDÚREQUEST_FREQUENCY_PENALTYÚREQUEST_PRESENCE_PENALTYÚRESPONSE_IDÚRESPONSE_FINISH_REASONSÚINPUT_TOKENSÚOUTPUT_TOKENSÚCACHE_READ_INPUT_TOKENSÚCACHE_CREATION_INPUT_TOKENSÚ	USAGE_RAWÚINPUT_MESSAGESÚOUTPUT_MESSAGESÚSYSTEM_INSTRUCTIONSÚTOOL_DEFINITIONSÚ	TOOL_NAMEÚTOOL_CALL_IDÚTOOL_CALL_ARGUMENTSÚTOOL_CALL_RESULTÚCONVERSATION_IDÚ
ERROR_TYPEr$   r2   r7   r<   rB   rF   Údictr   rH   rP   rN   ÚlistrS   rT   rV   rY   r(   r   r   Ú<module>r~      sä  ðòõ #å $ß &Ñ &ç ?Ñ ?ð ˜Ñ%€ñ /8¸Ó.FÐ Ð+Ó Fôð( '€Ø	€Ø(€ô/ð '€Ø(€ð 1Ð Ø2Ð Ø&€Ø&€Ø8Ð Ø$€Ø>Ð Ø<Ð ð #€Ø:Ð ð +€Ø,€Ø@Ð ØHÐ Ø€	ð )€Ø*€Ø2Ð ð -Ð Ø€	Ø$€Ø2Ð Ø,Ð ð +€ð €
ô
ˆyô ô8�9ô 8ô7˜9ô 7ôJˆiô JôJˆyô Jô�Iô ð ØˆlÐ0°'¸8À]ÐTXÐY\Ð^aÐYaÑTbÐbñ€ˆYó ðð Ð4Ñ5€Ø ô�)ô ð   Ñ,€ˆyÓ ,Ø ð !% [Ñ 1Ð �IÓ 1Ø 5ô$�Kô $ð ! Ñ/€�	Ó /Ø r   