Ë
    uPêj"  ã                   ó’   — d dl mZ d dlmZmZmZmZ d dlm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 erd dlmZ  G d	„ d
e«      Zy)é    )ÚMapping)ÚTYPE_CHECKINGÚFinalÚLiteralÚOptional)ÚResponse)ÚLogging)ÚBedrockPassthroughConfig)ÚMANTLE_HOST_REÚresolve_mantle_bearer_tokenÚresolve_mantle_region)ÚLlmProviders)ÚCostResponseTypesc                   óà   ‡ — e Zd ZdZ	 	 ddeeef   dedz  dedz  defd„Z	 ddedz  d	edz  d
eded   dz  de	eef   f
ˆ fd„Z
deeef   dedz  fd„Zdededededededed   fˆ fd„Zˆ xZS )ÚBedrockMantlePassthroughConfigaE  Native Bedrock runtime passthrough (InvokeModel, Converse) for deployments declared as bedrock_mantle.

    The Mantle host only serves the OpenAI-compatible surface, so a Mantle api_base lends its region and the
    request itself goes to bedrock-runtime, signed with the deployment's Bearer token or SigV4 credentials.
    NÚoptional_paramsÚmodelÚmodel_idÚreturnc                 ó   — t        |«      S )N)r   )Úselfr   r   r   s       ú{/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/bedrock_mantle/passthrough/transformation.pyÚ_get_aws_region_namez3BedrockMantlePassthroughConfig._get_aws_region_name   s   € ô % _Ó5Ð5ó    Úapi_baseÚaws_bedrock_runtime_endpointÚaws_region_nameÚendpoint_type)ÚruntimeÚagentÚ	agentcorec                 óŠ   •— |d uxr& t        j                  |j                  d«      «      d u}t        ‰| �  |rd n||||¬«      S )Nú/)r   r   r   r   )r   ÚmatchÚrstripÚsuperÚget_runtime_endpoint)r   r   r   r   r   Úis_mantle_hostÚ	__class__s         €r   r'   z3BedrockMantlePassthroughConfig.get_runtime_endpoint"   sV   ø€ ð !)°Ð 4Ò o¼×9MÑ9MÈhÏoÉoÐ^aÓNbÓ9cÐkoÐ9oˆÜ‰wÑ+Ù+‘T°Ø)EØ+Ø'ð	 ,ó 
ð 	
r   Úlitellm_paramsc                 óf   — |j                  d«      }t        t        |t        «      r|«      S d «      S )NÚapi_key)Úgetr   Ú
isinstanceÚstr)r   r*   r,   s      r   Úget_bedrock_bearer_tokenz7BedrockMantlePassthroughConfig.get_bedrock_bearer_token1   s/   € Ø'×+Ñ+¨IÓ6ˆÜ*´jÀÌ#Ô6N¨7ÓYÐYÐTXÓYÐYr   Úcustom_llm_providerÚhttpx_responseÚrequest_dataÚlogging_objÚendpointr   c                 ó~   •— d|vxr d|v }|rt         j                  j                  n|}t        ‰	| �  ||||||¬«      S )NÚinvokeÚconverse)r   r1   r2   r3   r4   r5   )r   ÚBEDROCKÚvaluer&   Úlogging_non_streaming_response)
r   r   r1   r2   r3   r4   r5   Úis_converseÚshape_providerr)   s
            €r   r;   z=BedrockMantlePassthroughConfig.logging_non_streaming_response5   sX   ø€ ð &¨XÐ5ÒP¸*ÈÐ:PˆÙ>I¤× 4Ñ 4× :Ò :ÐObˆÜ‰wÑ5ØØ .Ø)Ø%Ø#Øð 6ó 
ð 	
r   )NN)r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r/   Úobjectr   r   Útupler'   r0   r   Údictr	   r   r;   Ú__classcell__)r)   s   @r   r   r      s  ø„ ñð !Ø#ñ	6à   f Ñ-ð6ð �T‰zð6ð ˜‘*ð	6ð
 
ó6ð JSñ
à˜‘*ð
ð '*¨D¡jð
ð ð	
ð
 Ð>Ñ?À$ÑFð
ð 
ˆs�Cˆx‰õ
ðZ°w¸sÀF¸{Ñ7Kð ZÐPSÐVZÑPZó Zð
àð
ð !ð
ð !ð	
ð
 ð
ð ð
ð ð
ð 
Ð%Ñ	&÷
ñ 
r   r   N)Úcollections.abcr   Útypingr   r   r   r   Úhttpxr   Ú*litellm.litellm_core_utils.litellm_loggingr	   Ú/litellm.llms.bedrock.passthrough.transformationr
   Ú(litellm.llms.bedrock_mantle.common_utilsr   r   r   Úlitellm.types.utilsr   r   r   © r   r   ú<module>rN      s9   ðÝ #ß :Ó :å å >Ý T÷ñ õ
 -áÝ5ô4
Ð%=õ 4
r   