Ë
    uPêjä
  ã                   ó|   — d Z ddlZddlmZ ddlmZ ddlmZ  G d„ d«      Z G d„ d	«      Z	e	j                  «        y)
zK
JSON-based provider configuration loader for OpenAI-compatible providers.
é    N)ÚPath)ÚFinal)Úverbose_loggerc                   ó    — e Zd ZdZdedefd„Zy)ÚSimpleProviderConfigz*Simple data class for JSON provider configÚslugÚdatac                 óL  — || _         |d   | _        |d   | _        |j                  d«      | _        |j                  dd«      | _        |j                  di «      | _        |j                  di «      | _        |j                  di «      | _        |j                  d	g «      | _	        y )
NÚbase_urlÚapi_key_envÚapi_base_envÚ
base_classÚ
openai_gptÚparam_mappingsÚconstraintsÚspecial_handlingÚsupported_endpoints)
r   r   r   Úgetr   r   r   r   r   r   )Úselfr   r	   s      úi/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/openai_like/json_loader.pyÚ__init__zSimpleProviderConfig.__init__   s”   € ØˆŒ	Ø˜ZÑ(ˆŒØ Ñ.ˆÔØ ŸH™H ^Ó4ˆÔØŸ(™( <°Ó>ˆŒØ"Ÿh™hÐ'7¸Ó<ˆÔØŸ8™8 M°2Ó6ˆÔØ $§¡Ð);¸RÓ @ˆÔØ#'§8¡8Ð,AÀ2Ó#FˆÕ ó    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚstrÚdictr   © r   r   r   r      s   „ Ù4ð	G˜Sð 	G¨ô 	Gr   r   c                   óÈ   — e Zd ZU dZi Zeeef   ed<   dZ	e
d„ «       Ze
dededz  fd„«       Ze
dedefd	„«       Ze
d
ededz  fd„«       Ze
dedefd„«       Ze
defd„«       Zy)ÚJSONProviderRegistryz'Load providers from JSON once on importÚ
_providersFc                 óÈ  — | j                   ryt        t        «      j                  dz  }|j	                  «       sd| _         y	 t        |«      5 }t        j                  |«      }ddd«       j                  «       D ]  \  }}t        ||«      | j                  |<   Œ  d| _         y# 1 sw Y   ŒBxY w# t        $ r'}t        j                  d|«       d| _         Y d}~yd}~ww xY w)z+Load providers from JSON configuration fileNzproviders.jsonTz1Warning: Failed to load JSON provider configs: %s)Ú_loadedr   Ú__file__ÚparentÚexistsÚopenÚjsonÚloadÚitemsr   r"   Ú	Exceptionr   Úwarning)ÚclsÚ	json_pathÚfr	   r   ÚconfigÚes          r   r*   zJSONProviderRegistry.load!   sÐ   € ð �;Š;Øä¤›>×0Ñ0Ð3CÑCˆ	à×ÑÔ!àˆCŒKØð
	Ü�i“ð + AÜ"Ÿi™i¨›l�÷+ð !%§
¡
£ò J‘��fÜ';¸DÀ&Ó'I�—‘˜tÒ$ðJð ˆC�K÷+ð +ûô ò 	Ü×"Ñ"Ð#VÐXYÔZØˆC�K‰Kûð	ús1   ÁB1 ÁB%Á$A B1 Â%B.Â*B1 Â1	C!Â:CÃC!r   ÚreturnNc                 ó8   — | j                   j                  |«      S )z$Get a provider configuration by slug)r"   r   ©r.   r   s     r   r   zJSONProviderRegistry.get:   s   € ð �~‰~×!Ñ! $Ó'Ð'r   c                 ó   — || j                   v S )z'Check if a provider is defined via JSON)r"   r5   s     r   r'   zJSONProviderRegistry.exists?   s   € ð �s—~‘~Ð%Ð%r   r   c                 ó^   ‡— t        ˆfd„| j                  j                  «       D «       d«      S )z4Get a provider configuration by its default base urlc              3   óB   •K  — | ]  }|j                   ‰k(  sŒ|–— Œ y ­w)N)r   )Ú.0Úproviderr   s     €r   ú	<genexpr>z7JSONProviderRegistry.get_by_base_url.<locals>.<genexpr>G   s   øè ø€ Òg (È×IZÑIZÐ^fÓIf”XÑgùs   ƒ˜N)Únextr"   Úvalues)r.   r   s    `r   Úget_by_base_urlz$JSONProviderRegistry.get_by_base_urlD   s&   ø€ ô Óg¨c¯n©n×.CÑ.CÓ.EÔgÐimÓnÐnr   c                 óZ   — | j                   j                  |«      }|€yd|j                  v S )z3Check if a JSON provider supports the Responses APIFz/v1/responses)r"   r   r   )r.   r   r:   s      r   Úsupports_responses_apiz+JSONProviderRegistry.supports_responses_apiI   s2   € ð Ÿ.™.×,Ñ,¨TÓ2ˆØÐØØ (×">Ñ">Ð>Ð>r   c                 óH   — t        | j                  j                  «       «      S )z"List all registered provider slugs)Úlistr"   Úkeys)r.   s    r   Úlist_providersz#JSONProviderRegistry.list_providersQ   s   € ô �C—N‘N×'Ñ'Ó)Ó*Ð*r   )r   r   r   r   r"   r   r   r   Ú__annotations__r$   Úclassmethodr*   r   Úboolr'   r>   r@   rB   rD   r   r   r   r!   r!      sä   … Ù1à24€J��SÐ.Ð.Ñ/Ó4Ø€Gàñó ðð0 ð(�sð (Ð3°dÑ:ò (ó ð(ð ð&˜#ð & $ò &ó ð&ð ðo sð oÐ/CÀdÑ/Jò oó ðoð ð?¨#ð ?°$ò ?ó ð?ð ð+˜tò +ó ñ+r   r!   )r   r)   Úpathlibr   Útypingr   Úlitellm._loggingr   r   r!   r*   r   r   r   ú<module>rK      s=   ðñó Ý Ý å +÷Gñ G÷9+ñ 9+ðz × Ñ Õ r   