Ë
    uPêj  ã                   ó    — d Z ddlmZ ddlmZmZmZ ddlZddlm	Z	 ddl
mZ ddlmZ ddlmZmZ dd	lmZ er	dd
lmZ eZneZ G d„ de«      Zy)a  
Transformation for Bedrock Mantle (Claude Mythos Preview) - /messages endpoint

Inherits all Messages API request/response transformations from
AmazonAnthropicClaudeMessagesConfig. Overrides only the URL and model-prefix
stripping that are specific to the bedrock-mantle endpoint.
é    )ÚAsyncIterator)ÚTYPE_CHECKINGÚAnyÚFinalN)ÚAnthropicMessagesConfig)Úbuild_mantle_messages_url)Ú#AmazonAnthropicClaudeMessagesConfig)ÚAnthropicMessagesResponseÚAnthropicUsage)ÚGenericLiteLLMParams)ÚLoggingc                   ó0  ‡ — e Zd ZdZ	 ddedz  dedz  dededededz  d	e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
eedz  f   fˆ fd„Zdedee   dededed	efˆ fd„Zdedej                  ded	efˆ fd„Zdedej                  deded	ef
d„Zˆ xZS )ÚAmazonMantleMessagesConfigz÷
    Config for the bedrock-mantle /messages endpoint (Claude Mythos Preview).

    The mantle endpoint uses the Anthropic Messages API format and requires the
    model ID in the request body (unlike Bedrock Invoke which puts it in the URL).
    NÚapi_baseÚapi_keyÚmodelÚoptional_paramsÚlitellm_paramsÚstreamÚreturnc                 ób   — | j                  ||¬«      }t        ||j                  d«      |¬«      S )N)r   r   Úaws_bedrock_runtime_endpoint)r   r   Úregion)Ú_get_aws_region_namer   Úget)Úselfr   r   r   r   r   r   r   s           úx/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/bedrock/messages/mantle_transformation.pyÚget_complete_urlz+AmazonMantleMessagesConfig.get_complete_url+   s<   € ð ×1Ñ1À/ÐY^Ð1Ó_ˆÜ(ØØ)8×)<Ñ)<Ð=[Ó)\Øô
ð 	
ó    ÚheadersÚmessagesc           	      ón   •— t         ‰	| �  |||||||¬«      \  }}|j                  d«      }|r||d<   ||fS )N)r    r   r!   r   r   r   r   Úaws_bedrock_project_idzanthropic-workspace)ÚsuperÚ'validate_anthropic_messages_environmentr   )
r   r    r   r!   r   r   r   r   Ú
project_idÚ	__class__s
            €r   r%   zBAmazonMantleMessagesConfig.validate_anthropic_messages_environment;   s`   ø€ ô "™GÑKØØØØ+Ø)ØØð Ló 
Ñˆ�ð +×.Ñ.Ð/GÓHˆ
ÙØ-7ˆGÐ)Ñ*Ø˜Ð Ð r   Ú*anthropic_messages_optional_request_paramsc                 ó˜   •— |j                  ddd«      }t        ‰	| �	  |||||¬«      }|j                  d«      du rddini }i |¥d|i¥|¥S )Nzmantle/Ú é   )r   r!   r(   r   r    r   Tr   )Úreplacer$   Ú$transform_anthropic_messages_requestr   )
r   r   r!   r(   r   r    Úmodel_idÚrequestÚstream_fieldsr'   s
            €r   r-   z?AmazonMantleMessagesConfig.transform_anthropic_messages_requestS   sz   ø€ ð  Ÿ-™-¨	°2°qÓ9ˆä™ÑEØØØ7aØ)Øð Fó 
ˆð !K× NÑ NÈxÓ XÐ\`Ñ `ˆX�tÑÐfhð 	ð ?�'Ð>˜7 HÑ>°Ð>Ð>r   Úraw_responseÚlogging_objc                 ó€   •— t         ‰| �  |||¬«      }|j                  d«      xs
 t        «       }dddœ|¥}i |¥d|i¥S )N)r   r1   r2   Úusager   )Úinput_tokensÚoutput_tokens)r$   Ú%transform_anthropic_messages_responser   r   )r   r   r1   r2   ÚresponseÚexisting_usageÚnormalized_usager'   s          €r   r7   z@AmazonMantleMessagesConfig.transform_anthropic_messages_responseo   sh   ø€ ô  ™'ÑGØØ%Ø#ð Hó 
ˆð
 19·±¸WÓ0EÒ0YÌÓIYˆàØñ3
ð ð3
Ðð
 7�(Ð6˜GÐ%5Ñ6Ð6r   Úhttpx_responseÚrequest_bodyÚlitellm_logging_objc                 ó6   — t        j                  | ||||¬«      S )N)r   r;   r<   r=   )r   Ú%get_async_streaming_response_iterator)r   r   r;   r<   r=   s        r   r?   z@AmazonMantleMessagesConfig.get_async_streaming_response_iterator‚   s&   € ô '×LÑLØØØ)Ø%Ø 3ô
ð 	
r   )N)NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚstrÚdictÚboolr   Úlistr   Útupler%   r   r-   ÚhttpxÚResponseÚLiteLLMLoggingObjr
   r7   r   r?   Ú__classcell__)r'   s   @r   r   r   #   s‚  ø„ ñð #ñ
à˜‘*ð
ð �t‘ð
ð ð	
ð
 ð
ð ð
ð �t‘ð
ð 
ó
ð. #Ø#ñ!àð!ð ð!ð �s‘)ð	!ð
 ð!ð ð!ð �t‘ð!ð ˜‘*ð!ð 
ˆt�S˜4‘ZÐÑ	 õ!ð0?àð?ð �t‘*ð?ð 59ð	?ð
 -ð?ð ð?ð 
õ?ð87àð7ð —n‘nð7ð 'ð	7ð
 
#õ7ð&
àð
ð Ÿ™ð
ð ð	
ð
 /ð
ð 
÷
r   r   )rC   Úcollections.abcr   Útypingr   r   r   rI   ÚHlitellm.llms.anthropic.experimental_pass_through.messages.transformationr   Ú!litellm.llms.bedrock.common_utilsr   ÚUlitellm.llms.bedrock.messages.invoke_transformations.anthropic_claude3_transformationr	   Ú8litellm.types.llms.anthropic_messages.anthropic_responser
   r   Úlitellm.types.routerr   Ú*litellm.litellm_core_utils.litellm_loggingr   Ú_LiteLLMLoggingObjrK   r   © r   r   ú<module>rW      sS   ðñõ *ß ,Ñ ,ã õõ Hõ÷õ 6áÝXà*ÑàÐôl
Ð!Dõ l
r   