Ë
    tPêj¶  ã                   óž   — d dl Z d dlmZmZmZ d dlmZ erd dlmZ	 d dlm
Z d dlmZ eZeZ
e	ez  ZneZeZ
eZ G d„ d«      Z G d	„ d
e«      Zy)é    N)ÚTYPE_CHECKINGÚAnyÚFinal)ÚOpenTelemetry)ÚSpan)ÚOpenTelemetryConfig)ÚProtocolc                   ó*   — e Zd ZdZdedz  dedefd„Zy)Ú
LevoConfigz(Configuration for Levo OTLP integration.Úotlp_auth_headersNÚprotocolÚendpointc                 ó.   — || _         || _        || _        y )N©r   r   r   )Úselfr   r   r   s       úc/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/integrations/levo/levo.pyÚ__init__zLevoConfig.__init__   s   € ð "3ˆÔØ ˆŒØ ˆ�ó    )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústrr	   r   © r   r   r   r      s*   „ Ù2ð!à ™:ð!ð ð!ð ô	!r   r   c                   ó,   — e Zd ZdZedefd„«       Zd„ Zy)Ú
LevoLoggerz<Levo Logger that extends OpenTelemetry for OTLP integration.Úreturnc                  ó  — t         j                  j                  dd«      } t         j                  j                  dd«      }t         j                  j                  dd«      }t         j                  j                  dd«      }| st        d«      ‚|st        d«      ‚|st        d«      ‚|st        d	«      ‚|}d
}d| › �g}|j	                  d|› �«       |j	                  d|› �«       dj                  |«      }t        |||¬«      S )a  
        Retrieves the Levo configuration based on environment variables.

        Returns:
            LevoConfig: Configuration object containing Levo OTLP settings.

        Raises:
            ValueError: If required environment variables are missing.
        ÚLEVOAI_API_KEYNÚLEVOAI_ORG_IDÚLEVOAI_WORKSPACE_IDÚLEVOAI_COLLECTOR_URLzELEVOAI_API_KEY environment variable is required for Levo integration.zDLEVOAI_ORG_ID environment variable is required for Levo integration.zJLEVOAI_WORKSPACE_ID environment variable is required for Levo integration.z‚LEVOAI_COLLECTOR_URL environment variable is required for Levo integration. Please contact Levo support to get your collector URL.Ú	otlp_httpzAuthorization=Bearer zx-levo-organization-id=zx-levo-workspace-id=ú,r   )ÚosÚenvironÚgetÚ
ValueErrorÚappendÚjoinr   )Úapi_keyÚorg_idÚworkspace_idÚcollector_urlr   r   Úheaders_partsr   s           r   Úget_levo_configzLevoLogger.get_levo_config(   s
  € ô Ÿ™Ÿ™Ð(8¸$Ó?ˆÜŸ
™
Ÿ™ ¸Ó=ˆÜ Ÿj™jŸn™nÐ-BÀDÓIˆÜ!Ÿz™zŸ~™~Ð.DÀdÓKˆñ ÜÐdÓeÐeÙÜÐcÓdÐdÙÜÐiÓjÐjÙÜðIóð ð (ˆØ$/ˆð #8¸°yÐ AÐBˆØ×ÑÐ6°v°hÐ?Ô@Ø×ÑÐ3°L°>ÐBÔCà#&§8¡8¨MÓ#:ÐäØ/ØØô
ð 	
r   c              ƒ   ó    K  — 	 | j                  «       }|j                  sdddœS dddœS # t        $ r}dt        |«      dœcY d}~S d}~ww xY w­w)z’
        Health check for Levo integration.

        Returns:
            dict: Health status with status and message/error_message keys.
        Ú	unhealthyz+LEVOAI_API_KEY environment variable not set)ÚstatusÚerror_messageÚhealthyz(Levo credentials are configured properly)r3   ÚmessageN)r0   r   r(   r   )r   ÚconfigÚes      r   Úasync_health_checkzLevoLogger.async_health_checkX   si   è ø€ ð	Ø ×0Ñ0Ó2ˆFà×+Ò+à)Ø%Rñð ð $ØEñð øô ò 	à%Ü!$ Q£ñõ ûð	üs9   ‚A„ * ¤A¥* ©Aª	A³AÁ AÁAÁAÁAN)r   r   r   r   Ústaticmethodr   r0   r9   r   r   r   r   r   %   s$   „ ÙFàð-
˜Zò -
ó ð-
ó^r   r   )r%   Útypingr   r   r   Ú"litellm.integrations.opentelemetryr   Úopentelemetry.tracer   Ú_Spanr   Ú_OpenTelemetryConfigÚ litellm.types.integrations.arizer	   Ú	_Protocolr   r   r   r   r   ú<module>rB      s^   ðÛ 	ß ,Ñ ,å <áÝ1õõ Gà€HØ.ÐØ�3‰;�Dà€HØÐØ€D÷!ñ !ôK�õ Kr   