§
    §eîiÏA  ã                  ó^  — d dl mZ d dlZd dlmZmZmZ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mZ dd	lmZmZ dd
lmZmZ ddlmZmZmZ ddlmZmZ ddlm Z  ddl!m"Z" ddl#m$Z$m%Z% ddlm&Z&m'Z' ddl(m)Z)m*Z*m+Z+m,Z, ddl-m.Z.m/Z/ erd dl0m1Z2 dZ3 edeej4        ej5        f         ¬¦  «        Z6 edee$e         e%e         f         ¬¦  «        Z7 G d„ de*e6e7f         ¦  «        Z8 G d„ de8ej4        e$e         f         e+¦  «        Z9 G d„ de8ej5        e%e         f         e,¦  «        Z:d&d%„Z;dS )'é    )ÚannotationsN)ÚTYPE_CHECKINGÚAnyÚUnionÚMappingÚTypeVar)ÚSelfÚoverrideé   )Ú_exceptionsé   )Ú	load_authÚrefresh_auth)ÚBetaÚ	AsyncBeta)Ú	NOT_GIVENÚNotGiven)Úis_dictÚasyncifyÚis_given)Ú
model_copyÚtyped_cached_property)ÚFinalRequestOptions)Ú__version__)ÚStreamÚAsyncStream)ÚAnthropicErrorÚAPIStatusError)ÚDEFAULT_MAX_RETRIESÚ
BaseClientÚSyncAPIClientÚAsyncAPIClient)ÚMessagesÚAsyncMessages)ÚCredentialszvertex-2023-10-16Ú_HttpxClientT)ÚboundÚ_DefaultStreamTc                  óV   — e Zd Zedd„¦   «         Zedd„¦   «         Zedd„¦   «         ZdS )ÚBaseVertexClientÚreturnÚstrc                ó    — t          d¦  «        ‚)Nzregion not set)ÚRuntimeError)Úselfs    ú`/home/div/.hermes/hermes-agent/venv/lib/python3.11/site-packages/anthropic/lib/vertex/_client.pyÚregionzBaseVertexClient.region&   s   € åÐ+Ñ,Ô,Ð,ó    ú
str | Nonec                óL   — t           j                             d¦  «        }|r|S d S )NÚANTHROPIC_VERTEX_PROJECT_ID)ÚosÚenvironÚget©r/   Ú
project_ids     r0   r:   zBaseVertexClient.project_id*   s)   € å”Z—^’^Ð$AÑBÔBˆ
Øð 	ØÐàˆtr2   Úerr_msgÚbodyÚobjectÚresponseúhttpx.Responser   c               óÎ  — |j         dk    rt          j        |||¬¦  «        S |j         dk    rt          j        |||¬¦  «        S |j         dk    rt          j        |||¬¦  «        S |j         dk    rt          j        |||¬¦  «        S |j         dk    rt          j        |||¬¦  «        S |j         dk    rt          j        |||¬¦  «        S |j         dk    rt          j        |||¬¦  «        S |j         d	k    rt          j	        |||¬¦  «        S |j         d
k    rt          j
        |||¬¦  «        S |j         dk    rt          j        |||¬¦  «        S t          |||¬¦  «        S )Ni�  )r>   r<   i‘  i“  i”  i™  i¦  i­  i÷  iø  iô  )Ústatus_coder   ÚBadRequestErrorÚAuthenticationErrorÚPermissionDeniedErrorÚNotFoundErrorÚConflictErrorÚUnprocessableEntityErrorÚRateLimitErrorÚServiceUnavailableErrorÚDeadlineExceededErrorÚInternalServerErrorr   )r/   r;   r<   r>   s       r0   Ú_make_status_errorz#BaseVertexClient._make_status_error2   sœ  € ð Ô 3Ò&Ð&ÝÔ.¨wÀÐPTÐUÑUÔUÐUàÔ 3Ò&Ð&ÝÔ2°7ÀXÐTXÐYÑYÔYÐYàÔ 3Ò&Ð&ÝÔ4°WÀxÐVZÐ[Ñ[Ô[Ð[àÔ 3Ò&Ð&ÝÔ,¨W¸xÈdÐSÑSÔSÐSàÔ 3Ò&Ð&ÝÔ,¨W¸xÈdÐSÑSÔSÐSàÔ 3Ò&Ð&ÝÔ7¸È(ÐY]Ð^Ñ^Ô^Ð^àÔ 3Ò&Ð&ÝÔ-¨gÀÈtÐTÑTÔTÐTàÔ 3Ò&Ð&ÝÔ6°wÈÐX\Ð]Ñ]Ô]Ð]àÔ 3Ò&Ð&ÝÔ4°WÀxÐVZÐ[Ñ[Ô[Ð[àÔ 3Ò&Ð&ÝÔ2°7ÀXÐTXÐYÑYÔYÐYÝ˜g°¸tÐDÑDÔDÐDr2   N©r+   r,   )r+   r3   )r;   r,   r<   r=   r>   r?   r+   r   )Ú__name__Ú
__module__Ú__qualname__r   r1   r:   r
   rL   © r2   r0   r*   r*   %   sz   € € € € € Øð-ð -ð -ñ Ôð-ð ðð ð ñ Ôðð ð$Eð $Eð $Eñ „Xð$Eð $Eð $Er2   r*   c                  ó²   ‡ — e Zd ZU ded<   ded<   eedddeedddddœd0ˆ fd„Zed1d"„¦   «         Zed2d%„¦   «         Z	d3d'„Z
eedddededdddi d(œd4d/„ZeZˆ xZS )5ÚAnthropicVertexr#   Úmessagesr   ÚbetaNF©r1   r:   Úaccess_tokenÚcredentialsÚbase_urlÚtimeoutÚmax_retriesÚdefault_headersÚdefault_queryÚhttp_clientÚ_strict_response_validationr1   ústr | NotGivenr:   rW   r3   rX   úGoogleCredentials | NonerY   ústr | httpx.URL | NonerZ   ú'float | httpx.Timeout | None | NotGivenr[   Úintr\   úMapping[str, str] | Noner]   úMapping[str, object] | Noner^   úhttpx.Client | Noner_   Úboolr+   ÚNonec          
     ó6  •— t          |¦  «        s%t          j                             dt          ¦  «        }t          |¦  «        st          d¦  «        ‚|€Bt          j                             d¦  «        }|€!|dk    rd}n|dk    rd}n|dk    rd	}nd
|› d�}t          ¦   «                              t          |||||	|
|¬¦  «         t          |¦  «        r|| _	        || _
        || _        || _        t          | ¦  «        | _        t          | ¦  «        | _        d S )NÚCLOUD_ML_REGIONúŽNo region was given. The client should be instantiated with the `region` argument or the `CLOUD_ML_REGION` environment variable should be set.ÚANTHROPIC_VERTEX_BASE_URLÚglobalú$https://aiplatform.googleapis.com/v1Úusz+https://aiplatform.us.rep.googleapis.com/v1Úeuz+https://aiplatform.eu.rep.googleapis.com/v1úhttps://ú-aiplatform.googleapis.com/v1©ÚversionrY   rZ   r[   Úcustom_headersÚcustom_queryr^   r_   )r   r6   r7   r8   r   Ú
ValueErrorÚsuperÚ__init__r   r:   r1   rW   rX   r#   rT   r   rU   ©r/   r1   r:   rW   rX   rY   rZ   r[   r\   r]   r^   r_   Ú	__class__s               €r0   rz   zAnthropicVertex.__init__^   s?  ø€ õ  ˜ÑÔð 	BÝ”Z—^’^Ð$5µyÑAÔAˆFÝ˜ÑÔð 	Ýð añô ð ð ÐÝ”z—~’~Ð&AÑBÔBˆHØÐØ˜XÒ%Ð%ØE�H�HØ˜t’^�^ØL�H�HØ˜t’^�^ØL�H�HàO¨&ÐOÐOÐO�Hå‰Œ×ÒÝØØØ#Ø*Ø&Ø#Ø(Cð 	ñ 		
ô 		
ð 		
õ �JÑÔð 	)Ø(ˆDŒOàˆŒØ(ˆÔØ&ˆÔå  ™œˆŒÝ˜‘J”JˆŒ	ˆ	ˆ	r2   Úoptionsr   c                ó:   — t          || j        | j        ¬¦  «        S ©N)r:   r1   ©Ú_prepare_optionsr:   r1   ©r/   r}   s     r0   r�   z AnthropicVertex._prepare_options–   s   € å °D´OÈDÌKÐXÑXÔXÐXr2   Úrequestúhttpx.Requestc                ó|   — |j                              d¦  «        rd S d|                      ¦   «         › �|j         d<   d S ©NÚAuthorizationzBearer ©Úheadersr8   Ú_ensure_access_token©r/   rƒ   s     r0   Ú_prepare_requestz AnthropicVertex._prepare_requestš   sE   € àŒ?×Ò˜Ñ/Ô/ð 	àˆFà+R°T×5NÒ5NÑ5PÔ5PÐ+RÐ+RˆŒ˜Ñ(Ð(Ð(r2   r,   c                ój  — | j         �| j         S | j        s+t          | j        ¬¦  «        \  | _        }| j        s|| _        | j        j        s| j        j        st          | j        ¦  «         | j        j        st          d¦  «        ‚t          | j        j        t          ¦  «        sJ ‚| j        j        S ©N)r:   z0Could not resolve API token from the environment)
rW   rX   r   r:   ÚexpiredÚtokenr   r.   Ú
isinstancer,   r9   s     r0   rŠ   z$AnthropicVertex._ensure_access_token¢   s¼   € ØÔÐ(ØÔ$Ð$àÔð 	-Ý+4ÀÄÐ+PÑ+PÔ+PÑ(ˆDÔ˜jØ”?ð -Ø",�”àÔÔ#ð 	+¨4Ô+;Ô+Að 	+Ý˜Ô)Ñ*Ô*Ð*àÔÔ%ð 	SÝÐQÑRÔRÐRå˜$Ô*Ô0µ#Ñ6Ô6Ð6Ð6Ð6ØÔÔ%Ð%r2   ©r1   r:   rW   rX   rY   rZ   r^   r[   r\   Úset_default_headersr]   Úset_default_queryÚ_extra_kwargsúint | NotGivenr“   r”   r•   úMapping[str, Any]r	   c               óÔ  — |	�|
�t          d¦  «        ‚|�|�t          d¦  «        ‚| j        }|	�i |¥|	¥}n|
�|
}| j        }|�i |¥|¥}n|�|}|p| j        } | j        dt          |¦  «        r|n| j        t          |¦  «        r|n| j        pt          |p| j	        |p| j
        |p| j        t          |t          ¦  «        r| j        n||t          |¦  «        r|n| j        ||dœ
|¤ŽS ©z~
        Create a new client instance re-using the same options given to the current client with optional overriding.
        NzPThe `default_headers` and `set_default_headers` arguments are mutually exclusivezLThe `default_query` and `set_default_query` arguments are mutually exclusive)
r1   r:   rW   rX   rY   rZ   r^   r[   r\   r]   rQ   ©rx   Ú_custom_headersÚ_custom_queryÚ_clientr|   r   r1   r:   r   rW   rX   rY   r‘   r   rZ   r[   ©r/   r1   r:   rW   rX   rY   rZ   r^   r[   r\   r“   r]   r”   r•   r‰   Úparamss                   r0   ÚcopyzAnthropicVertex.copy´   óN  € ð( Ð&Ð+>Ð+JÝÐoÑpÔpÐpàÐ$Ð):Ð)FÝÐkÑlÔlÐlàÔ&ˆØÐ&Ø4˜Ð4 OÐ4ˆGˆGØ Ð,Ø)ˆGàÔ#ˆØÐ$Ø0˜Ð0 -Ð0ˆFˆFØÐ*Ø&ˆFà!Ð1 T¤\ˆàˆtŒ~ð 
Ý% fÑ-Ô-Ð>�6�6°4´;Ý%-¨jÑ%9Ô%9Ð[�z�z¸t¼Ð?[ÕR[Ø%Ð:¨Ô):Ø#Ð7 tÔ'7ØÐ. ¤Ý$.¨w½Ñ$AÔ$AÐN�D”L�LÀwØ#Ý'/°Ñ'<Ô'<ÐR˜˜À$ÔBRØ#Ø ð
ð 
ð ð
ð 
ð 	
r2   )r1   r`   r:   r`   rW   r3   rX   ra   rY   rb   rZ   rc   r[   rd   r\   re   r]   rf   r^   rg   r_   rh   r+   ri   ©r}   r   r+   r   ©rƒ   r„   r+   ri   rM   )r1   r`   r:   r`   rW   r3   rX   ra   rY   rb   rZ   rc   r^   rg   r[   r–   r\   re   r“   re   r]   rf   r”   rf   r•   r—   r+   r	   ©rN   rO   rP   Ú__annotations__r   r   rz   r
   r�   rŒ   rŠ   r    Úwith_optionsÚ__classcell__©r|   s   @r0   rS   rS   Z   s!  ø€ € € € € € ØÐÐÑØ€J€J�Jð
 "+Ø%.Ø#'Ø04Ø+/Ø;DØ.Ø48Ø59à+/Ø,1ð6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ðp ðYð Yð Yñ „XðYð ðSð Sð Sñ „XðSð&ð &ð &ð &ð* "+Ø%.Ø#'Ø04Ø+/Ø;DØ+/Ø&/Ø48Ø8<Ø59Ø9=Ø+-ð4
ð 4
ð 4
ð 4
ð 4
ð 4
ðp €L€L€L€L€Lr2   rS   c                  ó²   ‡ — e Zd ZU ded<   ded<   eedddeedddddœd0ˆ fd„Zed1d"„¦   «         Zed2d%„¦   «         Z	d3d'„Z
eedddededdddi d(œd4d/„ZeZˆ xZS )5ÚAsyncAnthropicVertexr$   rT   r   rU   NFrV   r1   r`   r:   rW   r3   rX   ra   rY   rb   rZ   rc   r[   rd   r\   re   r]   rf   r^   úhttpx.AsyncClient | Noner_   rh   r+   ri   c          
     ó  •— t          |¦  «        s%t          j                             dt          ¦  «        }t          |¦  «        st          d¦  «        ‚|€0t          j                             d¦  «        }|€|dk    rd}nd|› d�}t          ¦   «                              t          |||||	|
|¬¦  «         t          |¦  «        r|| _	        || _
        || _        || _        t          | ¦  «        | _        t          | ¦  «        | _        d S )	Nrk   rl   rm   rn   ro   rr   rs   rt   )r   r6   r7   r8   r   rx   ry   rz   r   r:   r1   rW   rX   r$   rT   r   rU   r{   s               €r0   rz   zAsyncAnthropicVertex.__init__ó   s!  ø€ õ  ˜ÑÔð 	BÝ”Z—^’^Ð$5µyÑAÔAˆFÝ˜ÑÔð 	Ýð añô ð ð ÐÝ”z—~’~Ð&AÑBÔBˆHØÐØ˜XÒ%Ð%ØE�H�HàO¨&ÐOÐOÐO�Hå‰Œ×ÒÝØØØ#Ø*Ø&Ø#Ø(Cð 	ñ 		
ô 		
ð 		
õ �JÑÔð 	)Ø(ˆDŒOàˆŒØ(ˆÔØ&ˆÔå% dÑ+Ô+ˆŒÝ˜d‘O”OˆŒ	ˆ	ˆ	r2   r}   r   c              ƒ  ó>   K  — t          || j        | j        ¬¦  «        S r   r€   r‚   s     r0   r�   z%AsyncAnthropicVertex._prepare_options'  s   è è € å °D´OÈDÌKÐXÑXÔXÐXr2   rƒ   r„   c              ƒ  óŒ   K  — |j                              d¦  «        rd S d|                      ¦   «         ƒ d {V —†› �|j         d<   d S r†   rˆ   r‹   s     r0   rŒ   z%AsyncAnthropicVertex._prepare_request+  s[   è è € àŒ?×Ò˜Ñ/Ô/ð 	àˆFà+X¸4×;TÒ;TÑ;VÔ;VÐ5VÐ5VÐ5VÐ5VÐ5VÐ5VÐ+XÐ+XˆŒ˜Ñ(Ð(Ð(r2   r,   c              ƒ  ó¾  K  — | j         �| j         S | j        s? t          t          ¦  «        | j        ¬¦  «        ƒ d {V —†\  | _        }| j        s|| _        | j        j        s| j        j        s( t          t          ¦  «        | j        ¦  «        ƒ d {V —† | j        j        st          d¦  «        ‚t          | j        j        t          ¦  «        sJ ‚| j        j        S rŽ   )rW   rX   r   r   r:   r�   r�   r   r.   r‘   r,   r9   s     r0   rŠ   z)AsyncAnthropicVertex._ensure_access_token3  sú   è è € ØÔÐ(ØÔ$Ð$àÔð 	-Ø1Dµ½)Ñ1DÔ1DÐPTÔP_Ð1`Ñ1`Ô1`Ð+`Ð+`Ð+`Ð+`Ð+`Ð+`Ñ(ˆDÔ˜jØ”?ð -Ø",�”àÔÔ#ð 	;¨4Ô+;Ô+Að 	;Ø(•(�<Ñ(Ô(¨Ô)9Ñ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:Ð:àÔÔ%ð 	SÝÐQÑRÔRÐRå˜$Ô*Ô0µ#Ñ6Ô6Ð6Ð6Ð6ØÔÔ%Ð%r2   r’   r–   r“   r”   r•   r—   r	   c               óÔ  — |	�|
�t          d¦  «        ‚|�|�t          d¦  «        ‚| j        }|	�i |¥|	¥}n|
�|
}| j        }|�i |¥|¥}n|�|}|p| j        } | j        dt          |¦  «        r|n| j        t          |¦  «        r|n| j        pt          |p| j	        |p| j
        |p| j        t          |t          ¦  «        r| j        n||t          |¦  «        r|n| j        ||dœ
|¤ŽS r™   rš   rž   s                   r0   r    zAsyncAnthropicVertex.copyE  r¡   r2   )r1   r`   r:   r`   rW   r3   rX   ra   rY   rb   rZ   rc   r[   rd   r\   re   r]   rf   r^   r«   r_   rh   r+   ri   r¢   r£   rM   )r1   r`   r:   r`   rW   r3   rX   ra   rY   rb   rZ   rc   r^   r«   r[   r–   r\   re   r“   re   r]   rf   r”   rf   r•   r—   r+   r	   r¤   r¨   s   @r0   rª   rª   ï   s!  ø€ € € € € € ØÐÐÑØ€O€O�Oð
 "+Ø%.Ø#'Ø04Ø+/Ø;DØ.Ø48Ø59à04Ø,1ð2$ð 2$ð 2$ð 2$ð 2$ð 2$ð 2$ð 2$ðh ðYð Yð Yñ „XðYð ðYð Yð Yñ „XðYð&ð &ð &ð &ð* "+Ø%.Ø#'Ø04Ø+/Ø;DØ04Ø&/Ø48Ø8<Ø59Ø9=Ø+-ð4
ð 4
ð 4
ð 4
ð 4
ð 4
ðp €L€L€L€L€Lr2   rª   Úinput_optionsr   r:   r3   r1   r,   r+   c               ót  — t          | d¬¦  «        }t          |j        ¦  «        r |j                             dt          ¦  «         |j        dv r�|j        dk    r‚|€t          d¦  «        ‚t          |j        ¦  «        st          d¦  «        ‚|j                             d¦  «        }|j         	                    d	d
¦  «        }|rdnd}d|› d|› d|› d|› �|_        |j        dv r*|j        dk    r|€t          d¦  «        ‚d|› d|› d�|_        |j         
                    d¦  «        rt          d¦  «        ‚|S )NT)ÚdeepÚanthropic_version>   ú/v1/messagesú/v1/messages?beta=trueÚpostzÐNo project_id was given and it could not be resolved from credentials. The client should be instantiated with the `project_id` argument or the `ANTHROPIC_VERTEX_PROJECT_ID` environment variable should be set.z;Expected json data to be a dictionary for post /v1/messagesÚmodelÚstreamFÚstreamRawPredictÚ
rawPredictz
/projects/z/locations/z/publishers/anthropic/models/ú:>   ú/v1/messages/count_tokensú#/v1/messages/count_tokens?beta=truez4/publishers/anthropic/models/count-tokens:rawPredictz/v1/messages/batchesz7The Batch API is not supported in the Vertex client yet)r   r   Ú	json_dataÚ
setdefaultÚDEFAULT_VERSIONÚurlÚmethodr.   Úpopr8   Ú
startswithr   )r±   r:   r1   r}   r¸   r¹   Ú	specifiers          r0   r�   r�   €  s�  € Ý˜¨TÐ2Ñ2Ô2€GåˆwÔ Ñ!Ô!ð KØÔ×$Ò$Ð%8½/ÑJÔJÐJà„{Ð@Ð@Ð@ÀWÄ^ÐW]ÒE]ÐE]ØÐÝð cñô ð õ �wÔ(Ñ)Ô)ð 	^ÝÐ\Ñ]Ô]Ð]àÔ!×%Ò% gÑ.Ô.ˆØÔ"×&Ò& x°Ñ7Ô7ˆØ*0ÐBÐ&Ð&°lˆ	àr :ÐrÐr¸&ÐrÐrÐ_dÐrÐrÐgpÐrÐrˆŒà„{ÐZÐZÐZÐ_fÔ_mÐqwÒ_wÐ_wØÐÝð cñô ð ð w :ÐvÐv¸&ÐvÐvÐvˆŒà„{×ÒÐ4Ñ5Ô5ð XÝÐVÑWÔWÐWà€Nr2   )r±   r   r:   r3   r1   r,   r+   r   )<Ú
__future__r   r6   Útypingr   r   r   r   r   Útyping_extensionsr	   r
   ÚhttpxÚ r   Ú_authr   r   Ú_betar   r   Ú_typesr   r   Ú_utilsr   r   r   Ú_compatr   r   Ú_modelsr   Ú_versionr   Ú
_streamingr   r   r   r   Ú_base_clientr   r    r!   r"   Úresources.messagesr#   r$   Úgoogle.auth.credentialsr%   ÚGoogleCredentialsrÁ   ÚClientÚAsyncClientr&   r(   r*   rS   rª   r�   rQ   r2   r0   ú<module>rÚ      sý  ðØ "Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,à €€€à Ð Ð Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ø "Ð "Ð "Ð "Ð "Ð "Ð "Ð "Ø )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø *Ð *Ð *Ð *Ð *Ð *Ø #Ð #Ð #Ð #Ð #Ð #Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9ðð ð ð ð ð ð ð ð ð ð ð ð :Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9àð IØHÐHÐHÐHÐHÐHð &€à�˜¨u°U´\À5ÔCTÐ5TÔ/UÐVÑVÔV€Ø�'Ð+°5¸À¼ÀkÐRUÔFVÐ9VÔ3WÐXÑXÔX€ð2Eð 2Eð 2Eð 2Eð 2E�z -°Ð"@ÔAñ 2Eô 2Eð 2EðjRð Rð Rð Rð RÐ& u¤|°V¸C´[Ð'@ÔAÀ=ñ Rô Rð RðjNð Nð Nð Nð NÐ+¨EÔ,=¸{È3Ô?OÐ,OÔPÐR`ñ Nô Nð Nðb ð  ð  ð  ð  ð  r2   