Ë
    Fü´jÒP  ã                  ó2  — d dl mZ d dlZd dlZd dlZd dlmZmZmZm	Z	 d dl
mZmZ d dlZddlmZmZ ddlmZ ddlmZmZ dd	lmZ dd
lmZmZmZ ddlmZ ddlmZm Z m!Z! eg df   Z"ed   Z#dZ$ ejJ                  d«      Z&d)d„Z'd*d„Z(d+d„Z)d,d„Z*d-d„Z+	 	 	 	 	 	 	 	 d.d„Z,d/d„Z-d0d„Z.d1d„Z/d2d„Z0d3d„Z1 G d„ d«      Z2 G d„ d«      Z3e G d „ d!e«      «       Z4 ed"¬#«       G d$„ d%«      «       Z5ddeeddddddd&œ
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d4d'„Z6g d(¢Z7y)5é    )ÚannotationsN)ÚLiteralÚCallableÚ	AwaitableÚcast)ÚfieldÚ	dataclassé   )Ú	NOT_GIVENÚNotGiven)Úasyncify)Únormalize_httpx_urlÚrequest_not_read_exceptions)ÚFinalRequestOptions)Ú	_ProviderÚ_create_providerÚ_ProviderRuntime)ÚOpenAIError)ÚBedrockAwsAuthÚBedrockAwsAuthConfigÚAwsCredentialsProviderzstr | Awaitable[str])ÚmantleÚruntime)Úauthorizationzx-amz-content-sha256z
x-amz-datezx-amz-security-tokenz^[a-z]{2,8}(?:-[a-z0-9]+)+-\d+$c                ó4   — | €y | j                  «       }|xs d S ©N)Ústrip)ÚvalueÚ
normalizeds     úV/root/workspace/ytshorts/venv/lib/python3.12/site-packages/openai/providers/bedrock.pyÚ_normalize_optional_stringr!      s    € Ø€}Øà—‘“€JØÒ˜Ðó    c                óÐ   — t        | «      }|j                  j                  d«      }t        j                  d|«      }|�|d |j                  «        }|j                  |xs d¬«      S )Nú/z/responses(?:/.*)?$)Úpath)r   r%   ÚrstripÚreÚsearchÚstartÚ	copy_with)Úbase_urlÚurlr%   Úresponses_matchs       r    Ú_normalize_base_urlr.   &   s`   € Ü
˜hÓ
'€CØ�8‰8�?‰?˜3Ó€DÜ—i‘iÐ 6¸Ó=€OØÐ"ØÐ-�o×+Ñ+Ó-Ð.ˆà�=‰=˜dšk cˆ=Ó*Ð*r"   c                óÜ   — | j                  d«      ry| j                  d«      ry| j                  d«      ry| j                  d«      ry| j                  d	«      ry
| j                  d«      ryy)Nzcn-)zamazonaws.com.cnzapi.amazonwebservices.com.cnzeusc-)zamazonaws.euzapi.amazonwebservices.euzus-iso-)z
c2s.ic.govzapi.aws.ic.govzus-isob-)zsc2s.sgov.govzapi.aws.scloudzeu-isoe-)zcloud.adc-e.ukzapi.cloud-aws.adc-e.ukzus-isof-)zcsp.hci.ic.govzapi.aws.hci.ic.gov)zamazonaws.comúapi.aws)Ú
startswith©Úregions    r    Ú_runtime_dns_suffixesr4   0   sk   € Ø×Ñ˜ÔØAØ×Ñ˜Ô!Ø9Ø×Ñ˜Ô#Ø-Ø×Ñ˜Ô$Ø0Ø×Ñ˜Ô$Ø9Ø×Ñ˜Ô$Ø5Ø%r"   c                ó  — | j                  d«      j                  «       j                  d«      \  }}}|j                  d«      \  }}}|r|rt        j	                  |«      €y |dk(  r	|dk(  rd|fS |dv r|t        |«      v rd|fS y )Nú.úbedrock-mantler0   r   >   úbedrock-runtimeúbedrock-runtime-fipsr   )ÚremovesuffixÚlowerÚ	partitionÚ_AWS_REGIONÚ	fullmatchr4   )ÚhostnameÚserviceÚ	separatorÚ	remainderr3   Úregion_separatorÚsuffixs          r    Ú _parse_bedrock_endpoint_hostnamerE   @   sŸ   € Ø$,×$9Ñ$9¸#Ó$>×$DÑ$DÓ$F×$PÑ$PÐQTÓ$UÑ!€GˆY˜	Ø'0×':Ñ':¸3Ó'?Ñ$€FÐ˜fÙÑ,´×0EÑ0EÀfÓ0MÐ0UØàÐ"Ò" v°Ò':Ø˜ÐÐØÐ=Ñ=À&ÔLaÐbhÓLiÑBiØ˜&Ð Ð Ør"   c                óJ   — | �!t         j                  | «      €t        d«      ‚y y )NzSThe Bedrock AWS `region` is invalid. Use a standard AWS region such as `us-east-1`.)r=   r>   r   r2   s    r    Ú_validate_bedrock_regionrG   M   s-   € ØÐœk×3Ñ3°FÓ;ÐCÜÐoÓpÐpð DÐr"   c          	     óÚ   — t        | j                  «      }|€y |\  }}| j                  dk7  rt        d«      ‚||k7  rt        d|› d|› d|› d�«      ‚|�||k7  rt        d|› d|› d	�«      ‚y y )
NÚhttpsz1Canonical Amazon Bedrock endpoints require HTTPS.úThe Bedrock ú' hostname does not match the selected `z` endpoint. Set `endpoint='z'` to use this hostname.úThe Bedrock endpoint region `z,` does not match the configured AWS region `ú`.)rE   ÚhostÚschemer   )r+   Úendpointr3   Úcanonical_endpointÚcanonical_familyÚcanonical_regions         r    Ú$_validate_canonical_bedrock_endpointrT   R   s¹   € ô :¸(¿-¹-ÓHÐØÐ!Øà);Ñ&ÐÐ&Ø‡�˜'Ò!ÜÐMÓNÐNØ˜8Ò#ÜØÐ+Ð,Ð,SÐT\ÐS]ð ^Ø.Ð/Ð/GðIó
ð 	
ð ÐÐ.°&Ò8ÜØ+Ð,<Ð+=Ð=iÐjpÐiqÐqsÐtó
ð 	
ð 9Ðr"   c                ó^   — | dk(  rd|› dt        |«      d   › �nd|› d�}t        d|› d�«      S )	Nr   zbedrock-runtime.r6   r   zbedrock-mantle.z.api.awszhttps://z
/openai/v1)r4   r.   )rP   r3   r?   s      r    Ú_default_bedrock_base_urlrV   g   sQ   € ð �yÒ ð ˜6˜( !Ô$9¸&Ó$AÀ!Ñ$DÐ#EÑFà˜v˜h hÐ/ð ô
  ¨(¨°:Ð>Ó?Ð?r"   c                ó�   — | j                   | j                  | j                  f|j                   |j                  |j                  fk(  S r   )rO   rN   Úport)ÚleftÚrights     r    Ú_same_originr[   p   s3   € Ø�K‰K˜Ÿ™ D§I¡IÐ.°5·<±<ÀÇÁÈUÏZÉZÐ2XÑXÐXr"   c                ó^   — 	 | j                   S # t        «       $ r}t        d«      |‚d }~ww xY w)Nz}Bedrock SigV4 authentication requires a replayable request body. Buffer the body before sending or use bearer authentication.)Úcontentr   r   )ÚrequestÚexcs     r    Ú_body_for_signingr`   t   s<   € ðØ�‰ÐøÜ&Ó(ò ÜðKó
ð ð	ûðús   ‚ Ž,›'§,c                ó6   — d| j                   v rt        d«      ‚y )NÚAuthorizationzXBedrock provider authentication cannot be combined with a custom `Authorization` header.)Úheadersr   )r^   s    r    Ú#_assert_provider_owns_authorizationrd   ~   s   € Ø˜'Ÿ/™/Ñ)ÜÐtÓuÐuð *r"   c                óB   — | j                   rt        d«      ‚d| _         | S )Nz‡Bedrock SigV4 authentication does not support automatic redirects. Send a new request to the redirect target so it can be signed again.F)Úfollow_redirectsr   )Úoptionss    r    Ú_without_redirectsrh   ƒ   s-   € Ø×ÒÜðSó
ð 	
ð  %€GÔØ€Nr"   c                  ó<   — e Zd Zdd„Zd	d„Zd
d„Zd
d„Zd	d„Zd	d„Zy)Ú_BedrockBearerAuthc               ó    — || _         || _        y r   )Ú_token_providerÚ	_base_url)ÚselfÚtoken_providerr+   s      r    Ú__init__z_BedrockBearerAuth.__init__Ž   s   € Ø-ˆÔØ!ˆ�r"   c                óp   — t        |«       t        |j                  | j                  «      st	        d«      ‚y )Nz`Refusing to authenticate a Bedrock request for an origin other than the configured provider URL.)rd   r[   r,   rm   r   ©rn   r^   s     r    Ú_validate_requestz$_BedrockBearerAuth._validate_request’   s1   € Ü+¨GÔ4Ü˜GŸK™K¨¯©Ô8ÜØróð ð 9r"   c                ód  — 	 t        t        | j                  «       «      }t        j                  |«      r*t        |dd «      }t        |«      r |«        t        d«      ‚t        |t        «      r|j                  «       st        d«      ‚|S # t        $ r ‚ t        $ r}t        d«      |‚d }~ww xY w)Nú2Failed to resolve a bearer credential for Bedrock.Úclosez7An async Bedrock token provider requires `AsyncOpenAI`.úFThe Bedrock bearer credential provider must return a non-empty string.)r   Úobjectrl   r   Ú	ExceptionÚinspectÚisawaitableÚgetattrÚcallableÚ
isinstanceÚstrr   )rn   Útokenr_   rv   s       r    Ú_resolve_tokenz!_BedrockBearerAuth._resolve_token™   s¤   € ð	]Üœ ×!5Ñ!5Ó!7Ó8ˆEô ×Ñ˜uÔ%Ü˜E 7¨DÓ1ˆEÜ˜ŒÙ”ÜÐWÓXÐXÜ˜%¤Ô%¨U¯[©[¬]ÜÐfÓgÐgØˆøô ò 	ØÜò 	]ÜÐRÓSÐY\Ð\ûð	]ús   ‚B ÂB/ÂB*Â*B/c              ƒ  ó0  K  — 	 t        t        | j                  «       «      }t        j                  |«      r
|ƒ d {  –—† }t        |t        «      r|j                  «       st        d«      ‚|S 7 Œ1# t
        $ r ‚ t        $ r}t        d«      |‚d }~ww xY w­w)Nru   rw   )
r   rx   rl   rz   r{   r   ry   r~   r   r   )rn   r€   r_   s      r    Ú_resolve_token_asyncz'_BedrockBearerAuth._resolve_token_asyncª   s‹   è ø€ ð	]Üœ ×!5Ñ!5Ó!7Ó8ˆEÜ×"Ñ" 5Ô)Ø#Ÿ�ô ˜%¤Ô%¨U¯[©[¬]ÜÐfÓgÐgØˆð $ùÜò 	ØÜò 	]ÜÐRÓSÐY\Ð\ûð	]üs8   ‚B„8A0 ¼A.½A0 Á-BÁ.A0 Á0BÂBÂBÂBc                óf   — | j                  |«       d| j                  «       › �|j                  d<   y ©NzBearer rb   )rs   r�   rc   rr   s     r    Úprepare_requestz"_BedrockBearerAuth.prepare_request¸   s/   € Ø×Ñ˜wÔ'Ø-4°T×5HÑ5HÓ5JÐ4KÐ+Lˆ�‰˜Ò(r"   c              ƒ  ó‚   K  — | j                  |«       d| j                  «       ƒ d {  –—† › �|j                  d<   y 7 Œ­wr…   )rs   rƒ   rc   rr   s     r    Úprepare_async_requestz(_BedrockBearerAuth.prepare_async_request¼   s9   è ø€ Ø×Ñ˜wÔ'Ø-4¸4×;TÑ;TÓ;V×5VÐ4WÐ+Xˆ�‰˜Ò(Ð5Vús   ‚&?¨=©?N)ro   ÚBedrockTokenProviderr+   ú
httpx2.URLÚreturnÚNone©r^   úhttpx2.Requestr‹   rŒ   ©r‹   r   )	Ú__name__Ú
__module__Ú__qualname__rp   rs   r�   rƒ   r†   rˆ   © r"   r    rj   rj   �   s"   „ ó"óóó"óMôYr"   rj   c                  óH   — e Zd Zddœ	 	 	 	 	 	 	 dd„Zd	d„Zd
d„Zdd„Zdd„Zy)Ú_BedrockSigV4AuthN)Úauthc               ó.   — || _         || _        || _        y r   )Ú_configrm   Ú_auth)rn   Úconfigr+   r–   s       r    rp   z_BedrockSigV4Auth.__init__Â   s   € ð ˆŒØ!ˆŒØˆ�
r"   c                ó¶  — t        |«       t        |j                  | j                  «      st	        d«      ‚t        |j                  j                  «      }|�x|\  }}| j                  j                  dk(  rdnd}||k7  rt	        d|› d|› d�«      ‚|| j                  j                  k7  r&t	        d|› d	| j                  j                  › d
�«      ‚t        |«      S )NzXRefusing to sign a Bedrock request for an origin other than the configured provider URL.Úbedrockr   r   rJ   rK   z` endpoint.rL   z#` does not match the SigV4 region `rM   )rd   r[   r,   rm   r   rE   rN   r˜   r@   r3   r`   )rn   r^   rQ   rP   r3   Úexpected_endpoints         r    rs   z#_BedrockSigV4Auth._validate_requestÍ   sé   € Ü+¨GÔ4Ü˜GŸK™K¨¯©Ô8ÜØjóð ô >¸g¿k¹k×>NÑ>NÓOÐØÐ)Ø1ÑˆH�fØ-1¯\©\×-AÑ-AÀYÒ-N¡	ÐT\ÐØÐ,Ò,Ü!Ø" 8 *Ð,SÐTeÐSfÐfqÐróð ð ˜Ÿ™×,Ñ,Ò,Ü!Ø3°F°8Ð;^Ð_c×_kÑ_k×_rÑ_rÐ^sÐsuÐvóð ô ! Ó)Ð)r"   c               óF  — t         D ]  }|j                  j                  |d «       Œ  |j                  |j                  t        |j                  «      t        |j                  «      |¬«      }|j                  j                  «        |j                  j                  |«       y ©N)Úmethodr,   rc   Úbody)
Ú_AWS_SIGNING_HEADERSrc   ÚpopÚsignr    r   r,   ÚdictÚclearÚupdate)rn   r^   r–   r¡   ÚheaderÚsigned_headerss         r    Ú_signz_BedrockSigV4Auth._signã   s€   € Ü*ò 	.ˆFØ�O‰O×Ñ ¨Õ-ð	.ð Ÿ™Ø—>‘>Ü�G—K‘KÓ Ü˜Ÿ™Ó)Øð	 #ó 
ˆð 	�‰×ÑÔØ�‰×Ñ˜~Õ.r"   c                ó®   — | j                  |«      }| j                  €t        | j                  «      | _        | j	                  || j                  |¬«       y )N)r–   r¡   )rs   r™   r   r˜   rª   )rn   r^   r¡   s      r    r†   z!_BedrockSigV4Auth.prepare_requestð   sB   € Ø×%Ñ% gÓ.ˆØ�:‰:ÐÜ'¨¯©Ó5ˆDŒJØ�
‰
�7 §¡°$ˆ
Õ7r"   c           
   ƒ  ó>  K  — | j                  |«      }| j                  €, t        t        «      | j                  «      ƒ d {  –—† | _         t        | j                  j
                  «      |j                  t        |j                  «      |j                  j                  «       D ��ci c]  \  }}|j                  «       t        vsŒ||“Œ! c}}|¬«      ƒ d {  –—† }|j                  j                  «        |j                  j                  |«       y 7 ŒÐc c}}w 7 ŒB­wrŸ   )rs   r™   r   r   r˜   r¤   r    r   r,   rc   Úitemsr;   r¢   r¦   r§   )rn   r^   r¡   Únamer   r©   s         r    rˆ   z'_BedrockSigV4Auth.prepare_async_requestö   sÚ   è ø€ Ø×%Ñ% gÓ.ˆØ�:‰:ÐØ7œx¬Ó7¸¿¹ÓE×EˆDŒJà8œx¨¯
©
¯©Ó8Ø—>‘>Ü�G—K‘KÓ à/6¯©×/DÑ/DÓ/F÷Ù +  eÈ$Ï*É*Ë,Ô^rÒJr��e‘óð ô 
÷ 
ˆð 	�‰×ÑÔØ�‰×Ñ˜~Õ.ð Fúó
ð
ús7   ‚A DÁDÁA$DÂ'DÃDÃDÃDÃ;DÄD)rš   r   r+   rŠ   r–   zBedrockAwsAuth | Noner‹   rŒ   ©r^   rŽ   r‹   Úbytes)r^   rŽ   r–   r   r¡   r°   r‹   rŒ   r�   )r�   r‘   r’   rp   rs   rª   r†   rˆ   r“   r"   r    r•   r•   Á   sH   „ ð '+ñ	ð %ð	ð ð		ð
 $ð	ð 
ó	ó*ó,/ó8ô/r"   r•   c                  ó   — e Zd ZU dZded<   y)Ú_BedrockProviderRuntimeNú
str | Noner3   )r�   r‘   r’   r3   Ú__annotations__r“   r"   r    r²   r²     s   … à€FˆJÔr"   r²   T)Úfrozenc                  ó@  — e Zd ZU ded<   ded<   ded<   ded<    ed	d
¬«      Zded<    ed	d
d
¬«      Zded<   d
Zded<   d	Zded<    ed	d
¬«      Z	ded<    ed	d
¬«      Z
ded<    ed	d
¬«      Zded<    ed	d
d
¬«      Zded<    edd
¬«      Zded<   dd„Zd d„Zd!d„Zy	)"Ú_BedrockProviderDefinitionÚBedrockEndpointrP   r³   Úconfigured_regionz)Literal['explicit', 'environment'] | NoneÚregion_sourcezhttpx2.URL | NoneÚconfigured_base_urlNF)ÚdefaultÚreprÚapi_key)r¼   r½   ÚcompareúBedrockTokenProvider | Nonero   ÚboolÚuse_environment_bearerÚprofileÚaccess_key_idÚsecret_access_keyÚsession_tokenúAwsCredentialsProvider | NoneÚcredential_providerrœ   )r¼   Úinitr   r®   c                óR   — | j                   �y| j                  �y| j                  �yy)NÚstaticrÃ   Úproviderr¼   )rÄ   rÃ   rÈ   ©rn   s    r    Ú_aws_sourcez&_BedrockProviderDefinition._aws_source  s0   € Ø×ÑÐ)ØØ�<‰<Ð#ØØ×#Ñ#Ð/ØØr"   c                óò  — | j                   �t        | j                   | j                  «       | j                  dk(  rdnd| j                  xs d| j
                  | j                  | j                  | j                  | j                  ¬«	      d fS t        j                  d | j
                  | j                  | j                  | j                  | j                  | j                  dk(  rdnd¬«      }|j                  |fS )Nr   rœ   r7   Úexplicit)	r3   Úsourcer@   rº   rÃ   rÄ   rÅ   rÆ   Úcredentials_provider)r3   rÃ   rÄ   rÅ   rÆ   rÒ   r@   )r¹   r   rÎ   rP   rº   rÃ   rÄ   rÅ   rÆ   rÈ   r   Úresolverš   )rn   r–   s     r    Ú_resolve_aws_authz,_BedrockProviderDefinition._resolve_aws_auth%  sæ   € Ø×!Ñ!Ð-ä$Ø×1Ñ1Ø×+Ñ+Ó-Ø)-¯©¸)Ò)C™IÐIYØ"&×"4Ñ"4Ò"B¸
Ø ŸL™LØ"&×"4Ñ"4Ø&*×&<Ñ&<Ø"&×"4Ñ"4Ø)-×)AÑ)Aô
ð ðð ô ×%Ñ%ØØ—L‘LØ×,Ñ,Ø"×4Ñ4Ø×,Ñ,Ø!%×!9Ñ!9Ø!%§¡°)Ò!;‘IÐAQô
ˆð �{‰{˜DÐ Ð r"   c                ó:  ‡ — d	d„}d }d }‰ j                   �ˆ fd„}‰ j                  }n´‰ j                  �‰ j                  }‰ j                  }n�‰ j                  r|}‰ j                  }nt‰ j	                  «       \  }}|j
                  }t        |«       ‰ j                  xs t        ‰ j                  |«      }t        |‰ j                  |¬«       t        |||¬«      }‰ j                  �‰ j                  }n$|�t        ‰ j                  |«      }nt        d«      ‚|�t        ||¬«      }|€J ‚t        |t        «      r3t        ‰ j                   ||t"        |j$                  |j&                  ¬«      S t        ‰ j                   |||j$                  |j&                  ¬«      S )
Nc                 ó^   — t         j                  j                  d«      } | st        d«      ‚| S )NÚAWS_BEARER_TOKEN_BEDROCKzµCould not find credentials for Bedrock. Pass a bearer credential or AWS credentials to `bedrock(...)`, set `AWS_BEARER_TOKEN_BEDROCK`, or configure the default AWS credential chain.)ÚosÚenvironÚgetr   )r€   s    r    Úenvironment_tokenz?_BedrockProviderDefinition.configure.<locals>.environment_tokenB  s2   € Ü—J‘J—N‘NÐ#=Ó>ˆEÙÜ!ðuóð ð ˆLr"   c                 ó$   •— ‰ j                   xs dS )NÚ )r¾   rÍ   s   €r    ú<lambda>z6_BedrockProviderDefinition.configure.<locals>.<lambda>N  s   ø€  d§l¡lÒ&8°b€ r"   ©rP   r3   )rš   r+   r–   zmBedrock requires an AWS region. Pass `region` to `bedrock(...)`, or set `AWS_REGION` or `AWS_DEFAULT_REGION`.)r+   )r®   r+   r3   Útransform_requestr†   rˆ   )r®   r+   r3   r†   rˆ   r�   )r¾   r¹   ro   rÂ   rÔ   r3   rG   r»   rV   rP   rT   r•   r   rj   r~   r²   r®   rh   r†   rˆ   )rn   rÛ   r–   Úbearer_providerr3   Ú
aws_configÚaws_authr+   s   `       r    Ú	configurez$_BedrockProviderDefinition.configureA  s”  ø€ ó	ð ?CˆØ7;ˆØ�<‰<Ð#Û8ˆOØ×+Ñ+‰FØ× Ñ Ð,Ø"×1Ñ1ˆOØ×+Ñ+‰FØ×(Ò(Ø/ˆOØ×+Ñ+‰Fà#'×#9Ñ#9Ó#;Ñ ˆJ˜Ø×&Ñ&ˆFÜ$ VÔ,Ø×/Ñ/ÒcÔ3LÈTÏ]É]Ð\bÓ3cˆHÜ0°ÀDÇMÁMÐZ`ÕaÜ$¨JÀÐPXÔYˆDà×#Ñ#Ð/Ø×/Ñ/‰HØÐÜ0°·±ÀÓG‰Häð(óð ð
 Ð&Ü% oÀÔIˆDàÐÐÐÜ�dÔ-Ô.Ü*Ø—Y‘YØ!ØÜ"4Ø $× 4Ñ 4Ø&*×&@Ñ&@ôð ô 'Ø—‘ØØØ ×0Ñ0Ø"&×"<Ñ"<ô
ð 	
r"   )r‹   z3Literal['static', 'profile', 'provider', 'default'])r‹   z2tuple[BedrockAwsAuthConfig, BedrockAwsAuth | None])r‹   r   )r�   r‘   r’   r´   r   r¾   ro   rÂ   rÃ   rÄ   rÅ   rÆ   rÈ   r®   rÎ   rÔ   rä   r“   r"   r    r·   r·     sÀ   … àÓØ!Ó!Ø<Ó<Ø*Ó*Ù¨°5Ô9€GˆZÓ9Ù27ÀÈ5ÐZ_Ô2`€NÐ/Ó`Ø#(Ð˜DÓ(Ø€GˆZÓÙ %¨d¸Ô ?€M�:Ó?Ù$)°$¸UÔ$CÐ�zÓCÙ %¨d¸Ô ?€M�:Ó?Ù9>ÀtÐRWÐafÔ9gÐÐ6ÓgÙ˜i¨eÔ4€Dˆ#Ó4óó!ô8;
r"   r·   )
rP   r3   r+   r¾   ro   rÄ   rÅ   rÆ   rÃ   rÈ   c        
        óÔ  — | �| dvrt        d«      ‚t        |«      }
|�|
€t        d«      ‚t        |
«       |
�dnd}t        |t        «      r8t        t
        j                  j                  d«      «      }|rt        |«      nd}n;|€d}n6t        |t        «      r|j                  «       st        d«      ‚t        |«      }|�t        |j                  «      nd}| xs	 |�|d   nd	}t        |«      }|�|€t        d
«      ‚|du |du k7  s|�|€t        d«      ‚|�9|j                  «       rt        t        |«      j                  «       st        d«      ‚|�|j                  «       st        d«      ‚t        |t        «       xr |du}|r+t        |t        «      r|j                  «       st        d«      ‚|r|�t        d«      ‚|xs |du}t        |du|du|	duf«      }|dkD  rt        d«      ‚|r|rt        d«      ‚t        |t        «       xr |du }| xr2 | xr- | xr( t        t
        j                  j                  d«      «      }|
€^|�|sZ|sXt        t
        j                  j                  d«      xs t
        j                  j                  d«      «      }
t        |
«       |
�d}|�t!        |||
¬«       t#        t%        ||
|||rt        d|«      nd|||||||	¬«      «      S )zJConfigure the standard OpenAI client for Amazon Bedrock Mantle or Runtime.N>   r   r   z<The Bedrock `endpoint` must be either `mantle` or `runtime`.z+The Bedrock AWS `region` must not be empty.rÐ   ÚAWS_BEDROCK_BASE_URLz)The Bedrock `base_url` must not be empty.r   r   z,The Bedrock AWS `profile` must not be empty.zzStatic AWS credentials require both `access_key_id` and `secret_access_key`. A `session_token` may only be used with both.zXStatic AWS credentials require non-empty `access_key_id` and `secret_access_key` values.z=A static AWS `session_token` must not be empty when provided.z0The Bedrock bearer credential must not be empty.zVThe `api_key` and `token_provider` options are mutually exclusive. Configure only one.é   z‚Bedrock authentication is ambiguous. Configure exactly one explicit AWS mode: static credentials, profile, or credential provider.z•Bedrock authentication is ambiguous. Configure exactly one explicit mode: bearer credential, static AWS credentials, profile, or credential provider.r×   Ú
AWS_REGIONÚAWS_DEFAULT_REGIONÚenvironmentrß   r³   )rP   r¹   rº   r»   r¾   ro   rÂ   rÃ   rÄ   rÅ   rÆ   rÈ   )r   r!   rG   r~   r   rØ   rÙ   rÚ   r.   r   r   rE   rN   r   ÚsumrÁ   rT   r   r·   )rP   r3   r+   r¾   ro   rÄ   rÅ   rÆ   rÃ   rÈ   Únormalized_regionrº   Úenvironment_base_urlr»   rQ   Úresolved_endpointÚnormalized_profileÚexplicit_api_keyÚexplicit_bearerÚ	aws_modesÚskip_environment_bearerrÂ   s                         r    rœ   rœ     si  € ð Ð Ð0EÑ EÜÐXÓYÐYä2°6Ó:ÐØÐÐ/Ð7ÜÐGÓHÐHÜÐ.Ô/àM^ÐMj¹zÐpt€Mô �(œHÔ%Ü9¼"¿*¹*¿.¹.ÐI_Ó:`ÓaÐÙK_Ô1Ð2FÔGÐeiÑØ	Ð	Ø"Ñä�h¤Ô$¨X¯^©^Ô-=ÜÐIÓJÐJÜ1°(Ó;Ðð GZÐFeÔ(Ð)<×)AÑ)AÔBÐkoð ð *2ò *Ø!3Ð!?Ð˜1ÒÀXð ô 4°GÓ<ÐØÐÐ1Ð9ÜÐHÓIÐIà˜ÐÐ#4¸Ð#<Ò=À-ÐB[Ð`mÐ`uÜð<ó
ð 	
ð Ð ¨-×*=Ñ*=Ô*?ÄtÌCÐQbÓGc×GiÑGiÔGkÜÐtÓuÐuØÐ ¨×)<Ñ)<Ô)>ÜÐYÓZÐZä% g¬xÓ8Ð8ÒP¸WÈDÐ=PÐÙ¤¨G´SÔ!9ÀÇÁÄÜÐLÓMÐMÙ˜NÐ6ÜÐrÓsÐsà&ÒD¨.ÀÐ*D€OÜà Ð%Ø dÐ*Ø tÐ+ð	
ó€Ið �1‚}Üð/ó
ð 	
ñ ™9ÜðGó
ð 	
ô
 #-¨W´hÓ"?Ð?ÒSÀGÈtÀOÐàÐò 	=ØˆMò	=à'Ð'ò	=ô ”—‘—‘Ð :Ó;Ó<ð	 ð Ð Ð&9Ð&AÉ/Ñ]sÜ6Ü�J‰J�N‰N˜<Ó(ÒP¬B¯J©J¯N©NÐ;OÓ,Pó
Ðô 	!Ð!2Ô3ØÐ(Ø)ˆMàÐ&Ü,Ð-@ÐK\ÐevÕwäÜ"Ø&Ø/Ø'Ø 3Ù3C”D˜ wÔ/ÈØ)Ø#9Ø&Ø'Ø/Ø'Ø 3ô	
óð r"   )rœ   r¸   r‰   r   )r   r³   r‹   r³   )r+   zstr | httpx2.URLr‹   rŠ   )r3   r   r‹   ztuple[str, str])r?   r   r‹   z"tuple[BedrockEndpoint, str] | None)r3   r³   r‹   rŒ   )r+   rŠ   rP   r¸   r3   r³   r‹   rŒ   )rP   r¸   r3   r   r‹   rŠ   )rY   rŠ   rZ   rŠ   r‹   rÁ   r¯   r�   )rg   r   r‹   r   )rP   zBedrockEndpoint | Noner3   r³   r+   z"str | httpx2.URL | None | NotGivenr¾   zstr | None | NotGivenro   rÀ   rÄ   r³   rÅ   r³   rÆ   r³   rÃ   r³   rÈ   rÇ   r‹   r   )8Ú
__future__r   rØ   r'   rz   Útypingr   r   r   r   Údataclassesr   r	   Úhttpx2Ú_typesr   r   Ú_utilsr   Ú_httpx2r   r   Ú_modelsr   Ú	_providerr   r   r   Ú_exceptionsr   Úlib._bedrock_authr   r   r   r‰   r¸   r¢   Úcompiler=   r!   r.   r4   rE   rG   rT   rV   r[   r`   rd   rh   rj   r•   r²   r·   rœ   Ú__all__r“   r"   r    ú<module>r     sÊ  ðÝ "ã 	Û 	Û ß 5Ó 5ß (ã ç (Ý ß FÝ )ß EÑ EÝ %÷ñ ð   Ð$:Ð :Ñ;Ð ØÐ-Ñ.€àfÐ Øˆb�j‰jÐ;Ó<€óó+ó&ó 
óqð

Øð
Ø'6ð
Ø@Jð
à	ó
ó*@óYóóvó
÷1Yñ 1Y÷hC/ñ C/ðL ôÐ.ó ó ðñ �$Ô÷o
ð o
ó ðo
ðh (,ØØ3<Ø%.Ø26Ø $Ø$(Ø $ØØ9=ñtà$ðtð ðtð 1ð	tð
 #ðtð 0ðtð ðtð "ðtð ðtð ðtð 7ðtð ótòn [�r"   