Ë
    tPêj`  ã                   ó  — U d Z ddlmZ ddlmZ ddlmZmZmZ ddl	m
Z
mZmZ ddlmZmZmZ dZeed<   d	Zeed
<   dZeed<   dZeed<   dZeed<   dZeed<   dZeed<   dZeed<   dZeed<   dZeed<   dZeed<   dZeed<    G d„ d «      Zy!)"aÐ  Mapper for the older semantic-convention attribute vocabulary.

Emits attributes under the semconv-ai / Traceloop key names (e.g.
``gen_ai.system``, ``gen_ai.usage.prompt_tokens``, ``llm.is_streaming``) plus a
few bare, unprefixed service keys (``service``, ``call_type``, ``error``), for
backends that consume those names.

Like ``GenAIMapper``, each span kind declares its schema as a flat
``attribute key -> extractor`` table: one lambda per mapping operation.
é    )ÚCallable)ÚFinal)ÚAttributeMapÚ	AttrValueÚSpanData)Ú"MAX_TOOL_DEFINITION_ATTRS_PER_SPANÚcollectÚtool_definition_attrs)ÚLLMCallSpanDataÚServiceSpanDataÚToolDefinitionzgen_ai.systemÚ_LEGACY_SYSTEMzgen_ai.usage.prompt_tokensÚ_LEGACY_PROMPT_TOKENSzgen_ai.usage.completion_tokensÚ_LEGACY_COMPLETION_TOKENSzgen_ai.usage.total_tokensÚ_LEGACY_TOTAL_TOKENSzllm.is_streamingÚ_LEGACY_IS_STREAMINGz	llm.top_kÚ_LEGACY_TOP_Kzllm.frequency_penaltyÚ_LEGACY_FREQUENCY_PENALTYzllm.presence_penaltyÚ_LEGACY_PRESENCE_PENALTYzllm.chat.stop_sequencesÚ_LEGACY_STOP_SEQUENCESÚserviceÚ_LEGACY_SERVICEÚ	call_typeÚ_LEGACY_CALL_TYPEÚerrorÚ_LEGACY_ERRORc                   ó4  — e Zd ZU dZed„ ed„ ed„ ed„ ed„ e	d„ e
d„ ed	„ ed
„ i	Zeeeegedz  f   f   ed<   d„ d„ d„ dœZeeeegedz  f   f   ed<   ed„ ed„ ed„ iZeeeegedz  f   f   ed<   efdeddfd„Zdedefd„Z dedefd„Z!e"dedefd„«       Z#y)ÚLegacyMapperz@Emits LLM-call and service attributes under the older key names.c                 ó"   — | j                   xs d S ©N)Úprovider©Úds    úm/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/integrations/otel/mappers/legacy.pyú<lambda>zLegacyMapper.<lambda>.   s   €  !§*¡*Ò"4°€ ó    c                 ó.   — | j                   j                  S r    )ÚusageÚinput_tokensr"   s    r$   r%   zLegacyMapper.<lambda>/   s   € ¨¯©×)=Ñ)=€ r&   c                 ó.   — | j                   j                  S r    )r(   Úoutput_tokensr"   s    r$   r%   zLegacyMapper.<lambda>0   s   € ¨Q¯W©W×-BÑ-B€ r&   c                 ó.   — | j                   j                  S r    )r(   Útotal_tokensr"   s    r$   r%   zLegacyMapper.<lambda>1   s   € ¨¯©×(<Ñ(<€ r&   c                 ó   — | j                   S r    )Úis_streamingr"   s    r$   r%   zLegacyMapper.<lambda>2   s
   € ¨¯©€ r&   c                 ó.   — | j                   j                  S r    )Úrequest_paramsÚtop_kr"   s    r$   r%   zLegacyMapper.<lambda>3   s   €  ×!1Ñ!1×!7Ñ!7€ r&   c                 ó.   — | j                   j                  S r    )r1   Úfrequency_penaltyr"   s    r$   r%   zLegacyMapper.<lambda>4   s   € ¨Q×-=Ñ-=×-OÑ-O€ r&   c                 ó.   — | j                   j                  S r    )r1   Úpresence_penaltyr"   s    r$   r%   zLegacyMapper.<lambda>5   s   € ¨A×,<Ñ,<×,MÑ,M€ r&   c                 óp   — | j                   j                  rt        | j                   j                  «      S d S r    )r1   Ústop_sequencesÚlistr"   s    r$   r%   zLegacyMapper.<lambda>6   s1   € Ø56×5EÑ5E×5TÒ5TŒD�×!Ñ!×0Ñ0Ó1ð ØZ^ð r&   NÚ_LLM_CALL_ATTRSc                 ó   — | j                   S r    )Úname©Úts    r$   r%   zLegacyMapper.<lambda><   s
   € ˜!Ÿ&™&€ r&   c                 ó"   — | j                   xs d S r    )Údescriptionr=   s    r$   r%   zLegacyMapper.<lambda>=   s   €  §¡Ò!6°$€ r&   c                 ó"   — | j                   xs d S r    )Úparameters_jsonr=   s    r$   r%   zLegacyMapper.<lambda>>   s   €  × 1Ñ 1Ò 9°T€ r&   )r<   r@   Ú
parametersÚ_TOOL_ATTRSc                 ó   — | j                   S r    )Úservice_namer"   s    r$   r%   zLegacyMapper.<lambda>B   s
   €  1§>¡>€ r&   c                 ó   — | j                   S r    )r   r"   s    r$   r%   zLegacyMapper.<lambda>C   s
   €  Q§[¡[€ r&   c                 óv   — | j                   �,| j                   j                  r| j                   j                  S d S r    )r   Úmessager"   s    r$   r%   zLegacyMapper.<lambda>D   s&   € °A·G±GÐ4GÈAÏGÉGÏOÊO §¡§¡€ Ðae€ r&   Ú_SERVICE_ATTRSÚtool_attr_budgetÚreturnc                 ó   — || _         y r    )Ú_tool_attr_budget)ÚselfrK   s     r$   Ú__init__zLegacyMapper.__init__G   s
   € Ø!1ˆÕr&   Údatac                 ó‚   — |xt         d˜ x�\    | j                  |«      S  t        d˜ x�\   | j                  |«      S  	 i S )N© )r   Ú	_llm_callr   Ú_service)rO   rQ   s     r$   ÚmapzLegacyMapper.mapJ   sC   € ØØ"”Ö"Ø—~‘~ dÓ+Ð+ð #ä Õ"Ø—}‘} TÓ*Ð*ð #àØ�	r&   c                 óª   — t        | j                  |«      }|j                  t        d„ |j                  | j
                  | j                  «      «       |S )Nc                 ó   — d| › d|› �S )Nzllm.request.functions.ú.rS   )ÚidxÚsuffixs     r$   r%   z(LegacyMapper._llm_call.<locals>.<lambda>W   s   € Ð&<¸S¸EÀÀ6À(Ð$K€ r&   )r	   r:   Úupdater
   ÚtoolsrD   rN   )rO   rQ   Úattrss      r$   rT   zLegacyMapper._llm_callS   sK   € Ü˜t×3Ñ3°TÓ:ˆØ�‰Ü!ÙKØ—
‘
Ø× Ñ Ø×&Ñ&ó	ô	
ð ˆr&   c                 óz   — t        | j                  |«      }|j                  t        |j                  «      «       |S r    )r	   rJ   r\   ÚdictÚevent_metadata)ÚclsrQ   r^   s      r$   rU   zLegacyMapper._service_   s0   € ä˜s×1Ñ1°4Ó8ˆØ�‰”T˜$×-Ñ-Ó.Ô/Øˆr&   )$Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r   r   r   r:   r`   Ústrr   r   r   Ú__annotations__rD   r   r   r   r   rJ   r   r   ÚintrP   r   r   rV   rT   ÚclassmethodrU   rS   r&   r$   r   r   *   sA  … ÙJð 	Ñ4ØÑ=Ø!Ñ#BØÑ<ØÑ6ØÑ7Ø!Ñ#OØ Ñ"MØñ !
ðQ€O�T˜#˜x¨Ð(9¸9ÀtÑ;KÐ(KÑLÐLÑMó ñ !Ù6Ù9ñL€K��c˜8 ^Ð$4°iÀ$Ñ6FÐ$FÑGÐGÑHó ð 	Ñ1ØÑ0ØÑeðP€N�D˜˜h¨Ð'8¸)ÀdÑ:JÐ'JÑKÐKÑLó ð 0Rñ 2¨ð 2ÐVZó 2ð˜ð  \ó ð
˜oð 
°,ó 
ð ð˜Oð °ò ó ñr&   r   N)rf   Úcollections.abcr   Útypingr   Ú&litellm.integrations.otel.mappers.baser   r   r   Ú'litellm.integrations.otel.mappers.utilsr   r	   r
   Ú(litellm.integrations.otel.model.payloadsr   r   r   r   rh   r   r   r   r   r   r   r   r   r   r   r   r   rS   r&   r$   ú<module>rp      s¸   ðò	õ %Ý ç TÑ T÷ñ ÷
ñ ð (€�Ó 'Ø;Ð �uÓ ;Ø#CÐ ˜5Ó CØ9Ð �eÓ 9Ø0Ð �eÓ 0Ø"€ˆuÓ "Ø#:Ð ˜5Ó :Ø"8Ð ˜%Ó 8Ø 9Ð ˜Ó 9Ø"€�Ó "Ø&Ð �5Ó &Ø€ˆuÓ ÷9ò 9r&   