Ë
    uPêjµ  ã                   ó¬   — d Z ddlmZmZ ddlmZmZ ddlZddlm	Z	 ddl
mZ ddlmZmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ  G d„ dee«      Zy)aß  
Amazon Bedrock Mantle - OpenAI-compatible inference engine in Amazon Bedrock.

API docs: https://docs.aws.amazon.com/bedrock/latest/userguide/bedrock-mantle.html

Base URL: https://bedrock-mantle.{region}.api.aws/v1
Auth: Bearer token (litellm_params.api_key, BEDROCK_MANTLE_API_KEY, or the
      standard AWS_BEARER_TOKEN_BEDROCK) when present; otherwise AWS SigV4
      (service "bedrock") over the standard credential chain. See
      BedrockMantleAuthMixin in common_utils.
é    )ÚAsyncIteratorÚIterator)ÚAnyÚFinalN)Úverbose_logger)Ú
BaseAWSLLM)ÚBEDROCK_MANTLE_DEFAULT_REGIONÚBedrockMantleAuthMixin)Úget_secret_str)ÚAllMessageValues)ÚGenericLiteLLMParamsé   )ÚOpenAILikeChatConfigé   )Úmantle_base_segmentc                   óB  ‡ — e Zd ZdZddedz  fˆ fd„Zededz  fd„«       Ze	ˆ fd„«       Z
	 	 ddedz  d	edz  d
edz  dedz  deedz  edz  f   f
d„Z	 	 ddededee   ded
ed	edz  dedz  defˆ fd„Zdedefˆ fd„Z	 ddee   ee   z  ez  dededz  defd„Zˆ xZS )ÚBedrockMantleChatConfigzP
    Transformation config for Amazon Bedrock Mantle OpenAI-compatible API.
    NÚ
aws_signerc                 óH   •— t         ‰| �  «        |xs
 t        «       | _        y ©N)ÚsuperÚ__init__r   Ú_aws_signer)Úselfr   Ú	__class__s     €út/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/bedrock_mantle/chat/transformation.pyr   z BedrockMantleChatConfig.__init__$   s   ø€ Ü‰ÑÔØ%Ò5¬«ˆÕó    Úreturnc                  ó   — y)NÚbedrock_mantle© )r   s    r   Úcustom_llm_providerz+BedrockMantleChatConfig.custom_llm_provider(   s   € àr   c                 ó    •— t         ‰| �  «       S r   )r   Ú
get_config)Úclsr   s    €r   r$   z"BedrockMantleChatConfig.get_config,   s   ø€ ä‰wÑ!Ó#Ð#r   Úapi_baseÚapi_keyÚlitellm_paramsÚmodelc                 ó6  — |r|j                   nd xs- t        d«      xs  t        d«      xs t        d«      xs t        }t        j                  |«       |xs- t        d«      xs  d|› dt        |t        j                  «      › �}| j                  |«      }||fS )NÚBEDROCK_MANTLE_REGIONÚAWS_REGION_NAMEÚ
AWS_REGIONÚBEDROCK_MANTLE_API_BASEzhttps://bedrock-mantle.z	.api.aws/)	Úaws_region_namer   r	   r   Ú_validate_aws_region_namer   ÚlitellmÚ
model_costÚ_resolve_bearer_token)r   r&   r'   r(   r)   ÚregionÚdynamic_api_keys          r   Ú$_get_openai_compatible_provider_infoz<BedrockMantleChatConfig._get_openai_compatible_provider_info0   s·   € ñ 0>ˆ^×+Ò+À4ò -ÜÐ5Ó6ò-äÐ/Ó0ò-ô ˜lÓ+ò-ô -ð 	ô 	×,Ñ,¨VÔ4ð
 ò kÜÐ7Ó8òkà(¨¨°	Ô:MÈeÔU\×UgÑUgÓ:hÐ9iÐjð 	ð
 "&×!;Ñ!;¸GÓ!DˆØ˜Ð(Ð(r   ÚheadersÚmessagesÚoptional_paramsc           	      ód   •— t         ‰	| �  |||||||¬«      }|j                  d«      }|r||d<   |S )N)r7   r)   r8   r9   r(   r'   r&   Úaws_bedrock_project_idzOpenAI-Project)r   Úvalidate_environmentÚget)
r   r7   r)   r8   r9   r(   r'   r&   Ú
project_idr   s
            €r   r<   z,BedrockMantleChatConfig.validate_environmentJ   sT   ø€ ô ‘'Ñ.ØØØØ+Ø)ØØð /ó 
ˆð +×.Ñ.Ð/GÓHˆ
ÙØ(2ˆGÐ$Ñ%Øˆr   c                 óî   •— t         ‰| �  |«      }	 t        j                  || j                  ¬«      rd|vr|j                  d«       |S # t        $ r!}t        j                  d|«       Y d }~|S d }~ww xY w)N)r)   r"   Úreasoning_effortz=BedrockMantleChatConfig: error checking reasoning support: %s)	r   Úget_supported_openai_paramsr1   Úsupports_reasoningr"   ÚappendÚ	Exceptionr   Údebug)r   r)   Úbase_paramsÚer   s       €r   rA   z3BedrockMantleChatConfig.get_supported_openai_paramsb   s|   ø€ Ü"™WÑ@ÀÓGˆð	eÜ×)Ñ)°È4×KcÑKcÕdØ%¨[Ñ8Ø×&Ñ&Ð'9Ô:ð Ðøô ò 	eÜ× Ñ Ð!`Ðbc×dÐdØÐûð	eús   ’6A
 Á
	A4ÁA/Á/A4Ústreaming_responseÚsync_streamÚ	json_modec                 ó$   — ddl m}  ||||¬«      S )Nr   )Ú$OpenAIChatCompletionStreamingHandler)rH   rI   rJ   )Ú+litellm.llms.openai.chat.gpt_transformationrL   )r   rH   rI   rJ   rL   s        r   Úget_model_response_iteratorz3BedrockMantleChatConfig.get_model_response_iteratorl   s   € õ	
ñ 4Ø1Ø#Øô
ð 	
r   r   )NN)F)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   ÚpropertyÚstrr"   Úclassmethodr$   r   Útupler6   ÚdictÚlistr   r<   rA   r   r   r   ÚboolrN   Ú__classcell__)r   s   @r   r   r      sp  ø„ ññ6 :°Ñ#4õ 6ð ð  S¨4¡Zò  ó ð ð ó$ó ð$ð 7;Ø ñ)à˜‘*ð)ð �t‘ð)ð -¨tÑ3ð	)ð
 �T‰zð)ð 
ˆs�T‰z˜3 ™:Ð%Ñ	&ó)ðB #Ø#ñàðð ðð Ð'Ñ(ð	ð
 ðð ðð �t‘ðð ˜‘*ðð 
õð0°ð ¸õ ð "'ñ	
à$ S™M¨M¸#Ñ,>Ñ>ÀÑDð
ð ð
ð ˜$‘;ð	
ð
 
÷
r   r   )rR   Úcollections.abcr   r   Útypingr   r   r1   Úlitellm._loggingr   Ú!litellm.llms.bedrock.base_aws_llmr   Ú(litellm.llms.bedrock_mantle.common_utilsr	   r
   Úlitellm.secret_managers.mainr   Úlitellm.types.llms.openair   Úlitellm.types.routerr   Úopenai_like.chat.transformationr   Úcommon_utilsr   r   r!   r   r   ú<module>re      sC   ðñ
÷ 4ß ã Ý +Ý 8÷õ 8Ý 6Ý 5å CÝ .ô[
Ð4Ð6Jõ [
r   