ó
    üÞ jT  ã                  óp  • % S SK Jr  S SKrS SKrS SKrS SKJrJrJr  S SK	J
r
JrJrJrJrJr  S SKJrJr  S SKJr  S SKJr  S SKJr  S S	KJr  S S
KJrJr  \
(       a  S SKrS SK J!r!J"r"  S SK#J$r$J%r%  S SK&J'r'J(r(J)r)  \" S\SS\4   S9r*\RV                  " \,5      r-\R\                  S(S j5       r/\0" 1 Sk5      r1S\2S'   S)S jr3S*S jr4S+S jr5\R\                  S,S j5       r6S-S jr7S.S jr8S/S jr9S0S jr:S1S jr;            S2S  jr<          S3S! jr= " S" S\S#S$9r>SS%SS&.         S4S' jjr?g)5é    )ÚannotationsN)ÚAsyncIteratorÚMappingÚSequence)ÚTYPE_CHECKINGÚAnyÚCallableÚOptionalÚTypeVarÚUnion)ÚSelfÚ	TypedDict)Úclient)Úrun_helpers)Údumps)ÚSECRET_PLACEHOLDER)ÚInputTokenDetailsÚUsageMetadata)Ú	AnthropicÚAsyncAnthropic)ÚAsyncMessageStreamÚMessageStream)Ú
CompletionÚMessageÚMessageStreamEventÚCr   r   )Úboundc                 ó:   •  SSK Jn Jn  X4$ ! [         a     g f = f)Nr   ©ÚNotGivenÚOmit)Úanthropic._typesr    r!   ÚImportErrorr   s     ÚW/var/www/html/gaurav/venv/lib/python3.13/site-packages/langsmith/wrappers/_anthropic.pyÚ_get_not_givenr%   "   s%   € ðß3àÐÐøÜó Ùðús   ‚
 �
™>   ÚurlÚnameÚtypeÚtool_configurationzfrozenset[str]Ú_MCP_SERVER_SAFE_KEYSc                ó  • [        U [        [        45      (       d  U $ / nU  H\  n[        U[        5      (       a3  UR	                  5        VVs0 sH  u  p4X3[
        ;   a  UO[        _M     nnnUR                  U5        M^     U$ s  snnf )av  Mask credentials in `mcp_servers` definitions before they are traced.

Keys outside `_MCP_SERVER_SAFE_KEYS` keep their name but get
`SECRET_PLACEHOLDER` as their value: a trace still shows that the field was
set, without exposing it.

Returns new dicts. The caller's `mcp_servers` are also sent to Anthropic and
must keep their real values, so nothing is modified in place.
)Ú
isinstanceÚlistÚtupler   Úitemsr*   r   Úappend)ÚserversÚredactedÚserverÚkeyÚvalues        r$   Ú_redact_mcp_serversr6   2   sˆ   € ô �g¤¤e˜}×-Ñ-Øˆà€HÛˆÜ�fœg×&Ñ&ð #)§,¡,¤.ôá"0‘J�Cð Ô%:Ó:‘UÔ@RÒRÙ"0ð ñ ð 	�‰˜Öñ ð €Oùós   ÁBc                ó  ^•  [        5       =n(       aB  U R                  5        VV^s0 sH%  u  nm[        U4S jU 5       5      (       a  M"  UT_M'     n nnSU ;   a0  SU S   S./U R                  S/ 5      -   U S'   U R                  S5        U R                  5        VVs0 sH  u  p#Uc  M
  X#_M     nnnSU;   a  [        US   5      US'   U$ s  snnf ! [         a"  n[        R                  SU 35         S nAN¤S nAff = fs  snnf )Nc              3  ó:   >#   • U H  n[        TU5      v •  M     g 7f©N)r,   )Ú.0ÚtÚvs     €r$   Ú	<genexpr>Ú#_strip_not_given.<locals>.<genexpr>P   s   øé € Ð?±Y°œ: a¨×+Ð+²Yùs   ƒzError stripping NotGiven: Úsystem)ÚroleÚcontentÚmessagesÚmcp_servers)	r%   r/   ÚanyÚ	ExceptionÚloggerÚerrorÚgetÚpopr6   )ÚdÚ	not_givenÚkr<   ÚeÚresults      `  r$   Ú_strip_not_givenrO   J   s  ø€ ð7Ü&Ó(Ð(ˆ9Õ(ð ŸG™GœIõá%‘D�A�qÜÔ?±YÓ?×?ó ��1’Ù%ð ñ ð �1ƒ}Ø"*°q¸±{ÑCÐDÀqÇuÁuØ˜óH
ñ 
ˆˆ*‰ð 	
�‰ˆhŒØ Ÿw™wœyÔ:™y‘t�q¨A‹dˆaŠd™y€FÑ:à˜ÓÜ 3°F¸=Ñ4IÓ Jˆˆ}ÑØ€Mùó#øô
 ó 7Ü�‰Ð1°!°Ð5×6Ñ6ûð7üó ;s:   ƒ%C ¨ CÁCÁC ÂDÂ+DÃC Ã
C?ÃC:Ã:C?c                ó\  • [        U5      nUR                  S5      nU(       a  [        U[        5      (       a  U/n1 SknUR	                  5        VVs0 sH  u  pVXT;   d  M  XV_M     nnnSSUR                  SS 5      UR                  SS 5      UR                  SS 5      U0 U EUES.$ s  snnf )	NÚstop>   Útop_kÚtop_pÚstreamÚthinkingÚtool_choiceÚservice_tierÚ	anthropicÚchatÚmodelÚtemperatureÚ
max_tokens)Úls_providerÚls_model_typeÚls_model_nameÚls_temperatureÚls_max_tokensÚls_stopÚls_invocation_params)rO   rH   r,   Ústrr/   )Úprepopulated_invocation_paramsÚkwargsÚstrippedrQ   Úallowed_invocation_keysrL   r<   Úinvocation_paramss           r$   Ú_infer_ls_paramsrj   a   sÂ   € Ü Ó'€Hà�<‰<˜Ó€DÞ”
˜4¤×%Ñ%ØˆvˆòÐð "Ÿ™Ô)ôÙ)‘�¨QÑ-I‹ˆŠÑ)ð ñ ð
 #ØØ!Ÿ™ g¨tÓ4Ø"Ÿ,™, }°dÓ;Ø!Ÿ™ l°DÓ9Øð!
Ø,ð!
àð!
ñð ùó	s   Á
B(Á!B(c                 ó4   •  SSK Jn   U $ ! [         a     g f = f)Nr   ©Úaccumulate_event)Ú!anthropic.lib.streaming._messagesrm   r#   rl   s    r$   Ú_get_sdk_accumulate_eventro   †   s"   € ðÝFàÐøÜó Ùðús   ‚
 Š
–c                ó`  • U R                  S5      =(       d    SnU R                  S5      =(       d    Sn0 nU R                  S5      =(       d    SnU(       a  XCS'   U R                  S5      =(       d    0 nU(       aK  UR                  S5      =(       d    SnUR                  S5      =(       d    SnU(       a  XcS'   U(       a  XsS'   O%U R                  S	5      =(       d    SnU(       a  XƒS'   [        UR                  5       5      n	X-   n
X¢-   n[        U
UUS
9nU(       a  [	        S0 UD6US'   U$ )NÚinput_tokensr   Úoutput_tokensÚcache_read_input_tokensÚ
cache_readÚcache_creationÚephemeral_5m_input_tokensÚephemeral_1h_input_tokensÚcache_creation_input_tokens)rq   rr   Útotal_tokensÚinput_token_details© )rH   ÚsumÚvaluesr   r   )Úanthropic_token_usagerq   rr   rz   rt   Úcache_creation_objÚephemeral_5mÚephemeral_1hru   Úcache_token_sumÚadjusted_inputÚadjusted_totalrN   s                r$   Ú_create_usage_metadatar…   �   s,  € Ø(×,Ñ,¨^Ó<×AÀ€LØ)×-Ñ-¨oÓ>×CÀ!€Mà "ÐØ&×*Ñ*Ð+DÓE×JÈ€JÞØ,6˜LÑ)à.×2Ñ2Ð3CÓD×JÈÐÞØ)×-Ñ-Ð.IÓJ×OÈaˆØ)×-Ñ-Ð.IÓJ×OÈaˆÞØ?KÐ ;Ñ<ÞØ?KÐ ;Ñ<øà.×2Ñ2Ð3PÓQ×VÐUVˆÞØ4BÐ 0Ñ1ô Ð-×4Ñ4Ó6Ó7€OØ!Ñ3€NØ#Ñ3€NäØ#Ø#Ø#ñ€Fö
 Ü(9Ñ(PÐ<OÑ(PˆÐ$Ñ%Ø€Mó    c                ó  • [        U S5      (       aE  [        R                  " 5          [        R                  " S5        U R	                  5       nSSS5        OU R	                  5       nWR                  SS5      nU(       a  [        U5      US'   UR                  SS5        UR                  S5      =(       d    / nU Vs/ sH3  n[        U[        5      (       d  M  UR                  S5      S:X  d  M1  UPM5     nnU(       aà  U Vs/ sHC  n[        U[        5      (       d  M  UR                  S5      S	:X  d  M1  UR                  S	S
5      PME     nnS
R                  U5      =(       d    SUS'   [        U5       VVs/ sHY  u  pxUR                  SSU 35      SUUR                  SS
5      [        UR                  S0 5      5      R                  5       S.S.PM[     snnUS'   U$ ! , (       d  f       GNŠ= fs  snf s  snf s  snnf )zHConvert an Anthropic Message to a flat outputs dict with usage_metadata.Úparsed_outputÚignoreNÚusageÚusage_metadatar(   rA   Útool_useÚtextÚ ÚidÚcall_Úfunctionr'   Úinput)r'   Ú	arguments)r�   r(   Úindexr‘   Ú
tool_calls)ÚhasattrÚwarningsÚcatch_warningsÚsimplefilterÚ
model_dumprI   r…   rH   r,   ÚdictÚjoinÚ	enumerateÚ_dumpsÚdecode)	ÚmessageÚoutputsr~   rA   ÚbÚtool_use_blocksÚ
text_partsÚiÚblocks	            r$   Ú_message_to_outputsr§   ¶   sÓ  € ô ˆw˜×(Ñ(Ü×$Ò$Õ&Ü×!Ò! (Ô+Ø×(Ñ(Ó*ˆG÷ 'Ð&ð ×$Ñ$Ó&ˆØ#ŸK™K¨°Ó6ÐÞÜ$:Ð;PÓ$QˆÐ Ñ!Ø‡K�K�˜Ôà�k‰k˜)Ó$×*¨€GáóÙˆaœj¨¬D×1‹°a·e±e¸F³mÀzÑ6Q�‘7ð ð ö ñ ó
á�Ü˜!œT×"ó à'(§u¡u¨V£}¸Ñ'>ó ˆA�E‰E�&˜"ÖÙð 	ð 
ð
  ŸW™W ZÓ0×8°Dˆ�	Ñô & oÔ6ô!
ñ 7‘�ð —i‘i ¨¨a¨S kÓ2Ø"Øà!ŸI™I f¨bÓ1Ü!'¨¯	©	°'¸2Ó(>Ó!?×!FÑ!FÓ!Hñô	ñ 7ò!
ˆ�Ñð €N÷C 'Ö&üòùò
ùó!
s6   §'G"Â>G4ÃG4Ã1G4ÄG9Ä G9Ä7G9Å:AG>Ç"
G1c                óØ   • [        5       nUc  SU 0$ S nU  H  n U" UUS9nM     Uc  SU 0$ [	        U5      $ ! [         a(  n[        R                  SU 35        SU 0s S nAs  $ S nAff = f)NÚoutput)ÚeventÚcurrent_snapshotz/Error accumulating event in Anthropic Wrapper: )ro   ÚRuntimeErrorrF   Údebugr§   )Ú
all_chunksÚ
accumulateÚfull_messageÚchunkrM   s        r$   Ú_reduce_chat_chunksr²   á   sŽ   € Ü*Ó,€JØÑØ˜*Ð%Ð%Ø€LÛˆð	*Ù%ØØ!-ñŠLñ ð ÑØ˜*Ð%Ð%Ü˜|Ó,Ð,øô ó 	*Ü�L‰LÐJÈ1È#ÐNÔOØ˜jÐ)×)ûð	*ús   š7·
A)ÁA$ÁA)Á$A)c                óØ   • / nU  H%  nUR                   nUc  M  UR                  U5        M'     SR                  U5      nU (       a  U S   R                  5       nSU0/US'   U$ SSU0/0nU$ )NrŽ   éÿÿÿÿr�   Úchoices)Ú
completionr0   rœ   rš   )r®   Úall_contentr±   rA   rJ   s        r$   Ú_reduce_completionsr¸   ô   s†   € Ø€KÛˆØ×"Ñ"ˆØÓØ×Ñ˜wÖ'ñ ð �g‰g�kÓ"€GÞØ�r‰N×%Ñ%Ó'ˆØ Ð)Ð*ˆˆ)‰ð €Hð ˜& 'Ð*Ð+Ð,ˆà€Hr†   c                ó  •  [        U S5      (       a+  [        U R                  5      (       a   U R                  5       n [	        U 5      $ ! [         a     Nf = f! [
         a&  n[        R                  SU 35        SU 0s S nA$ S nAff = f)NÚparsez"Error processing chat completion: r©   )r–   Úcallablerº   rE   r§   ÚBaseExceptionrF   r­   )r¡   rM   s     r$   Ú_process_chat_completionr½     s…   € ð#ô
 �7˜G×$Ñ$¬°'·-±-×)@Ñ)@ðØ!Ÿ-™-›/�ô # 7Ó+Ð+øô ó Ùðûô ó #Ü�‰Ð9¸!¸Ð=Ô>Ø˜'Ð"Õ"ûð#ús?   ‚+A ®A	 ¾
A Á	
AÁA ÁAÁA Á
B	Á#BÁ>B	ÂB	ÚTracingExtrac                óÖ   ^ ^^^^• [         R                  " T 5      UU UUU4S j5       n[         R                  " T 5      UU UUU4S j5       n[        R                  " T 5      (       a  U$ U$ )Nc                 óÔ   >• UR                  S5      n[        R                  " STSU(       a  TOS [        [        [
        R                  " [        T5      S.T	D6nU" T5      " U 0 UD6nU$ ©NrT   Úllm)r'   Úrun_typeÚ	reduce_fnÚprocess_inputsÚprocess_outputsÚ_invocation_params_fnr{   ©rH   r   Ú	traceablerO   r½   Ú	functoolsÚpartialrj   ©
Úargsrf   rT   Ú	decoratorrN   r'   Úoriginal_createre   rÄ   Útracing_extras
        €€€€€r$   ÚcreateÚ_get_wrapper.<locals>.create  sr   ø€ à—‘˜HÓ%ˆÜ×)Ò)ð 

ØØÞ#)‘i¨tÜ+Ü4Ü"+×"3Ò"3Ü Ð"@ó#ñ

ð ñ

ˆ	ñ ˜?Ô+¨TÐ<°VÑ<ˆØˆr†   c               Ÿ  óð   >#   • UR                  S5      n[        R                  " STSU(       a  TOS [        [        [
        R                  " [        T5      S.T	D6nU" T5      " U 0 UD6I S h  v•N nU$  N7frÁ   rÈ   rÌ   s
        €€€€€r$   ÚacreateÚ_get_wrapper.<locals>.acreate.  s~   øé € à—‘˜HÓ%ˆÜ×)Ò)ð 

ØØÞ#)‘i¨tÜ+Ü4Ü"+×"3Ò"3Ü Ð"@ó#ñ

ð ñ

ˆ	ñ ! Ô1°4ÐB¸6ÑB×BˆØˆñ Cùs   ƒA*A6Á-A4Á.A6)rÊ   Úwrapsr   Úis_async)rÏ   r'   rÄ   re   rÐ   rÑ   rÔ   s   `````  r$   Ú_get_wrapperrØ     sd   ü€ ô ‡_‚_�_Ó%÷ð ó &ðô" ‡_‚_�_Ó%÷ð ó &ðô  "×*Ò*¨?×;Ñ;ˆ7ÐGÀÐGr†   c                ó¾  ^ ^^^	^
• S[        T 5      R                  5       ;   n[        R                  " SU[        S[
        [        R                  " [        U5      S.UD6m	[        R                  " SUS[
        [        [        R                  " [        U5      S.UD6m
U(       a   " U	U
4S jS5      m " UU 4S jS5      nU$  " U	U
4S	 jS
5      m " UU 4S jS5      nU$ )z;Create a wrapper for Anthropic's streaming context manager.ÚasyncrÂ   )r'   rÄ   rÃ   rÅ   rÇ   )r'   rÃ   rÅ   rÆ   rÇ   c                  óÐ   >• \ rS rSr    SS jr\U4S j5       r\SS j5       r\SS j5       rSS jr	SU 4S jjr
SS jrSS	 jrSS
 jrSS jrSS jrSS jr\SS j5       rSrg)Ú6_get_stream_wrapper.<locals>.AsyncMessageStreamWrapperia  c                ó   • Xl         X l        g r9   ©Ú_wrappedÚ_kwargs©ÚselfÚwrappedrf   s      r$   Ú__init__Ú?_get_stream_wrapper.<locals>.AsyncMessageStreamWrapper.__init__b  ó   € ð
 !(”Ø%•r†   c                ó@   >^ • TU 4S j5       nU" S0 T R                   D6$ )Nc                ó@  >#   • TR                   R                    S h  v•N nU7v •  M   N
 [        R                  " 5       nTR                   R	                  5       I S h  v•N  n[        U5      nXBl        UR                  S5      =n(       a  XRR                  S'   g g 7f©Nr‹   ©	rß   Útext_streamr   Úget_current_run_treeÚget_final_messager§   r¡   rH   Úmetadata)Ú_r±   Úrun_treeÚfinal_messager¡   rŠ   râ   s         €r$   Ú_text_streamÚX_get_stream_wrapper.<locals>.AsyncMessageStreamWrapper.text_stream.<locals>._text_streaml  s†   øé € à'+§}¡}×'@Ò'@÷ $˜eØ#�ñ$Ð'@ä*×?Ò?ÓA�HØ*.¯-©-×*IÑ*IÓ*K×$KÐ$K�MÜ1°-Ó@�GØ'.Ô$Ø '§¡Ð,<Ó =Ð=�uÕ=Ø>C×)Ñ)Ð*:Ò;ð >ùs+   ƒBš,ž*Ÿ,¢Bª,¬3BÁA"Á >Br{   ©rà   ©râ   rò   Úconfigured_traceable_texts   ` €r$   rë   ÚB_get_stream_wrapper.<locals>.AsyncMessageStreamWrapper.text_streamj  s+   ù€ à*ôDó +ðDñ $Ñ3 d§l¡lÑ3Ð3r†   c                ó.   • U R                   R                  $ r9   ©rß   Úresponse©râ   s    r$   rú   Ú?_get_stream_wrapper.<locals>.AsyncMessageStreamWrapper.responsey  ó   € à—}‘}×-Ñ-Ð-r†   c                ó.   • U R                   R                  $ r9   ©rß   Ú
request_idrû   s    r$   r   ÚA_get_stream_wrapper.<locals>.AsyncMessageStreamWrapper.request_id}  ó   € à—}‘}×/Ñ/Ð/r†   c              “  ó^   #   • U R                  5       nUR                  5       I S h  v•N $  N7fr9   )Ú	__aiter__Ú	__anext__)râ   Úaiters     r$   r  Ú@_get_stream_wrapper.<locals>.AsyncMessageStreamWrapper.__anext__�  s$   é € ØŸ™Ó(�Ø"Ÿ_™_Ó.×.Ð.Ñ.ùs   ‚$-¦+§-c               óp   >^ #   • TU 4S j5       nU" S0 T R                   D6  S h  v•N nU7v •  M   N
 g 7f)Nc                 ó8   >• TR                   R                  5       $ r9   )rß   r  ©rï   râ   s    €r$   Útraced_iterÚU_get_stream_wrapper.<locals>.AsyncMessageStreamWrapper.__aiter__.<locals>.traced_iter†  s   ø€ àŸ=™=×2Ñ2Ó4Ð4r†   r{   rô   )râ   r  r±   Úconfigured_traceables   `  €r$   r  Ú@_get_stream_wrapper.<locals>.AsyncMessageStreamWrapper.__aiter__…  s=   ùé € Ø%ô5ó &ð5ñ $/Ñ#>°·±Ò#>÷  ˜%Ø•Kñ Ñ#>ùs   „6¢4¦2§4ª6²4´6c              “  óV   #   • U R                   R                  5       I S h  v•N   U $  N7fr9   )rß   Ú
__aenter__rû   s    r$   r  ÚA_get_stream_wrapper.<locals>.AsyncMessageStreamWrapper.__aenter__�  s%   é € Ø—m‘m×.Ñ.Ó0×0Ð0Ø�ñ 1ùs   ‚) '¡)c              —  óR   #   • U R                   R                  " U6 I S h  v•N   g  N7fr9   )rß   Ú	__aexit__©râ   Úexcs     r$   r  Ú@_get_stream_wrapper.<locals>.AsyncMessageStreamWrapper.__aexit__‘  ó   é € Ø—m‘m×-Ò-¨sÐ3×3Ó3ùó   ‚'Ÿ% 'c              “  óT   #   • U R                   R                  5       I S h  v•N   g  N7fr9   ©rß   Úcloserû   s    r$   r  Ú<_get_stream_wrapper.<locals>.AsyncMessageStreamWrapper.close”  s   é € Ø—m‘m×)Ñ)Ó+×+Ó+ùó   ‚( &¡(c              “  óR   #   • U R                   R                  5       I S h  v•N $  N7fr9   ©rß   rí   rû   s    r$   rí   ÚH_get_stream_wrapper.<locals>.AsyncMessageStreamWrapper.get_final_message—  s   é € Ø!Ÿ]™]×<Ñ<Ó>×>Ð>Ñ>ùó   ‚' %¡'c              “  óR   #   • U R                   R                  5       I S h  v•N $  N7fr9   ©rß   Úget_final_textrû   s    r$   r$  ÚE_get_stream_wrapper.<locals>.AsyncMessageStreamWrapper.get_final_textš  s   é € Ø!Ÿ]™]×9Ñ9Ó;×;Ð;Ñ;ùr!  c              “  óT   #   • U R                   R                  5       I S h  v•N   g  N7fr9   ©rß   Ú
until_donerû   s    r$   r(  ÚA_get_stream_wrapper.<locals>.AsyncMessageStreamWrapper.until_done�  s   é € Ø—m‘m×.Ñ.Ó0×0Ó0ùr  c                ó.   • U R                   R                  $ r9   ©rß   Úcurrent_message_snapshotrû   s    r$   r,  ÚO_get_stream_wrapper.<locals>.AsyncMessageStreamWrapper.current_message_snapshot   ó   € à—}‘}×=Ñ=Ð=r†   ©rà   rß   N)rã   r   ÚreturnÚNone)r0  zhttpx.Response©r0  z
str | None©r0  r   )r0  z!AsyncIterator[MessageStreamEvent]©r0  r   ©r0  r1  ©r0  r   ©r0  rd   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rä   Úpropertyrë   rú   r   r  r  r  r  r  rí   r$  r(  r,  Ú__static_attributes__©r  rö   s   €€r$   ÚAsyncMessageStreamWrapperrÜ   a  s’   ø† ð&à+ð&ð ô	&ð ô4ó ð4ð ó.ó ð.ð ó0ó ð0ô/÷ ôô4ô,ô?ô<ô1ð ó>ó ó>r†   r?  c                  ó0   >• \ rS rSrS rU U4S jrS rSrg)Ú>_get_stream_wrapper.<locals>.AsyncMessagesStreamManagerWrapperi¤  c                ó   • Xl         g r9   rô   ©râ   rf   s     r$   rä   ÚG_get_stream_wrapper.<locals>.AsyncMessagesStreamManagerWrapper.__init__¥  ó   € Ø%•r†   c              “  ó¨   >#   • T" S0 U R                   D6U l        U R                  R                  5       I S h  v•N nT" U40 U R                   D6$  N7f©Nr{   )rà   Ú_managerr  )râ   rT   r?  Úoriginal_streams     €€r$   r  ÚI_get_stream_wrapper.<locals>.AsyncMessagesStreamManagerWrapper.__aenter__¨  sG   øé € Ù /Ñ ?°$·,±,Ñ ?�”Ø#Ÿ}™}×7Ñ7Ó9×9�Ù0°ÑH¸4¿<¹<ÑHÐHñ :ùs   ƒ5A¸A¹Ac              —  óR   #   • U R                   R                  " U6 I S h  v•N   g  N7fr9   )rH  r  r  s     r$   r  ÚH_get_stream_wrapper.<locals>.AsyncMessagesStreamManagerWrapper.__aexit__­  r  r  ©rà   rH  N)r8  r9  r:  r;  rä   r  r  r=  )r?  rI  s   €€r$   Ú!AsyncMessagesStreamManagerWrapperrA  ¤  s   ø† ò&öIõ
4r†   rN  c                  óÌ   >• \ rS rSr    SS jr\SS j5       r\SS j5       r\U4S j5       rSS jr	U 4S jr
SS jrSS	 jrSS
 jrSS jrSS jrSS jr\SS j5       rSrg)Ú1_get_stream_wrapper.<locals>.MessageStreamWrapperi³  c                ó   • Xl         X l        g r9   rÞ   rá   s      r$   rä   Ú:_get_stream_wrapper.<locals>.MessageStreamWrapper.__init__´  ræ   r†   c                ó.   • U R                   R                  $ r9   rù   rû   s    r$   rú   Ú:_get_stream_wrapper.<locals>.MessageStreamWrapper.response¼  rý   r†   c                ó.   • U R                   R                  $ r9   rÿ   rû   s    r$   r   Ú<_get_stream_wrapper.<locals>.MessageStreamWrapper.request_idÀ  r  r†   c                ó@   >^ • TU 4S j5       nU" S0 T R                   D6$ )Nc               ;  ó  >#   • TR                   R                   S h  v•N   [        R                  " 5       nTR                   R	                  5       n[        U5      nX1l        UR                  S5      =n(       a  XAR                  S'   g g  Nl7fré   rê   )rï   rð   rñ   r¡   rŠ   râ   s        €r$   rò   ÚS_get_stream_wrapper.<locals>.MessageStreamWrapper.text_stream.<locals>._text_streamÆ  sw   øé € à#Ÿ}™}×8Ñ8×8Ð8Ü*×?Ò?ÓA�HØ$(§M¡M×$CÑ$CÓ$E�MÜ1°-Ó@�GØ'.Ô$Ø '§¡Ð,<Ó =Ð=�uÕ=Ø>C×)Ñ)Ð*:Ò;ð >ñ 9ùs   ƒB�B
žA-Br{   rô   rõ   s   ` €r$   rë   Ú=_get_stream_wrapper.<locals>.MessageStreamWrapper.text_streamÄ  s+   ù€ à*ôDó +ðDñ $Ñ3 d§l¡lÑ3Ð3r†   c                ó>   • U R                  5       R                  5       $ r9   )Ú__iter__Ú__next__rû   s    r$   r]  Ú:_get_stream_wrapper.<locals>.MessageStreamWrapper.__next__Ò  s   € Ø—}‘}“×/Ñ/Ó1Ð1r†   c                ó@   >^ • TU 4S j5       nU" S0 T R                   D6$ )Nc                 ó8   >• TR                   R                  5       $ r9   )rß   r\  r
  s    €r$   r  ÚO_get_stream_wrapper.<locals>.MessageStreamWrapper.__iter__.<locals>.traced_iterÖ  s   ø€ àŸ=™=×1Ñ1Ó3Ð3r†   r{   rô   )râ   r  r  s   ` €r$   r\  Ú:_get_stream_wrapper.<locals>.MessageStreamWrapper.__iter__Õ  s)   ù€ Ø%ô4ó &ð4ñ #Ñ2 T§\¡\Ñ2Ð2r†   c                ó:   • U R                   R                  5         U $ r9   )rß   Ú	__enter__rû   s    r$   rd  Ú;_get_stream_wrapper.<locals>.MessageStreamWrapper.__enter__Ü  s   € Ø—‘×'Ñ'Ô)Ø�r†   c                ó6   • U R                   R                  " U6   g r9   )rß   Ú__exit__r  s     r$   rg  Ú:_get_stream_wrapper.<locals>.MessageStreamWrapper.__exit__à  ó   € Ø—‘×&Ò&¨Ò,r†   c                ó8   • U R                   R                  5         g r9   r  rû   s    r$   r  Ú7_get_stream_wrapper.<locals>.MessageStreamWrapper.closeã  s   € Ø—‘×#Ñ#Õ%r†   c                ó6   • U R                   R                  5       $ r9   r  rû   s    r$   rí   ÚC_get_stream_wrapper.<locals>.MessageStreamWrapper.get_final_messageæ  s   € Ø—}‘}×6Ñ6Ó8Ð8r†   c                ó6   • U R                   R                  5       $ r9   r#  rû   s    r$   r$  Ú@_get_stream_wrapper.<locals>.MessageStreamWrapper.get_final_texté  s   € Ø—}‘}×3Ñ3Ó5Ð5r†   c                ó6   • U R                   R                  5       $ r9   r'  rû   s    r$   r(  Ú<_get_stream_wrapper.<locals>.MessageStreamWrapper.until_doneì  s   € Ø—}‘}×/Ñ/Ó1Ð1r†   c                ó.   • U R                   R                  $ r9   r+  rû   s    r$   r,  ÚJ_get_stream_wrapper.<locals>.MessageStreamWrapper.current_message_snapshotï  r.  r†   r/  N)rã   r   r0  r1  )r0  r   r2  r3  r4  r5  r6  r7  )r8  r9  r:  r;  rä   r<  rú   r   rë   r]  r\  rd  rg  r  rí   r$  r(  r,  r=  r>  s   €€r$   ÚMessageStreamWrapperrP  ³  s’   ø† ð&à&ð&ð ô	&ð ó.ó ð.ð ó0ó ð0ð ô4ó ð4ô2õ3ôô-ô&ô9ô6ô2ð ó>ó ó>r†   rt  c                  ó0   >• \ rS rSrS rU U4S jrS rSrg)Ú9_get_stream_wrapper.<locals>.MessagesStreamManagerWrapperió  c                ó   • Xl         g r9   rô   rC  s     r$   rä   ÚB_get_stream_wrapper.<locals>.MessagesStreamManagerWrapper.__init__ô  rE  r†   c                óˆ   >• T" S0 U R                   D6U l        T" U R                  R                  5       40 U R                   D6$ rG  )rà   rH  rd  )râ   rt  rI  s    €€r$   rd  ÚC_get_stream_wrapper.<locals>.MessagesStreamManagerWrapper.__enter__÷  s7   ø€ Ù /Ñ ?°$·,±,Ñ ?�”Ù+¨D¯M©M×,CÑ,CÓ,EÑVÈÏÉÑVÐVr†   c                ó6   • U R                   R                  " U6   g r9   )rH  rg  r  s     r$   rg  ÚB_get_stream_wrapper.<locals>.MessagesStreamManagerWrapper.__exit__û  ri  r†   rM  N)r8  r9  r:  r;  rä   rd  rg  r=  )rt  rI  s   €€r$   ÚMessagesStreamManagerWrapperrv  ó  s   ø† ò&öWõ-r†   r}  r{   )
rd   Úlowerr   rÉ   r²   rO   rÊ   rË   rj   r½   )rI  r'   re   rÐ   r×   rN  r}  r?  rt  r  rö   s   `      @@@@r$   Ú_get_stream_wrapperr  B  sà   ü€ ð œ#˜oÓ.×4Ñ4Ó6Ñ6€HÜ&×0Ò0ð 	ØÜ%ØÜ'Ü'×/Ò/ÜÐ<ó
ñ	ð ñ	Ðô !,× 5Ò 5ð 	!ØØÜ'Ü0Ü'×/Ò/ÜÐ<ó
ñ	!ð ñ	!Ðö ÷A	>õ A	>÷F
	4õ 
	4ð 1Ð0÷>	>õ >	>÷@		-õ 		-ð ,Ð+r†   c                  ó4   • \ rS rSr% S\S'   S\S'   S\S'   Srg	)
r¾   i  zOptional[Mapping[str, Any]]rî   zOptional[list[str]]ÚtagszOptional[ls_client.Client]r   r{   N)r8  r9  r:  r;  Ú__annotations__r=  r{   r†   r$   r¾   r¾     s   ‡ Ø)Ó)Ø
ÓØ&Ö&r†   F)ÚtotalÚChatAnthropic)rÐ   Ú	chat_nameÚcompletions_namec               ó¤  • U=(       d    0 n[        UR                  S5      =(       d    0 5      nUR                  S0 5      nUR                  5        VVs0 sH  u  pgUS:w  d  M  Xg_M     nnnU(       a  XHS'   [	        U R
                  R                  U[        UU5      U R
                  l        [        U R
                  R                  UUU5      U R
                  l	        [	        U R                  R                  U[        UU5      U R                  l        [        U S5      (       aŠ  [        U R                  S5      (       ao  [        U R                  R
                  S5      (       aJ  [	        U R                  R
                  R                  U[        UU5      U R                  R
                  l        [        U S5      (       aŠ  [        U R                  S5      (       ao  [        U R                  R
                  S5      (       aJ  [	        U R                  R
                  R                  U[        UU5      U R                  R
                  l        U $ s  snnf )a0  Patch the Anthropic client to make it traceable.

Args:
    client: The client to patch.
    tracing_extra: Extra tracing information.
    chat_name: The run name for the messages endpoint.
    completions_name: The run name for the completions endpoint.

Returns:
    The patched client.

Example:
    ```python
    import anthropic
    from langsmith import wrappers

    client = wrappers.wrap_anthropic(anthropic.Anthropic())

    # Use Anthropic client same as you normally would:
    system = "You are a helpful assistant."
    messages = [
        {
            "role": "user",
            "content": "What physics breakthroughs do you predict will happen by 2300?",
        }
    ]
    completion = client.messages.create(
        model="claude-3-5-sonnet-latest",
        messages=messages,
        max_tokens=1000,
        system=system,
    )
    print(completion.content)

    # With raw response to access headers:
    raw_response = client.messages.with_raw_response.create(
        model="claude-3-5-sonnet-latest",
        messages=messages,
        max_tokens=1000,
        system=system,
    )
    print(raw_response.headers)  # Access HTTP headers
    message = raw_response.parse()  # Get parsed response

    # You can also use the streaming context manager:
    with client.messages.stream(
        model="claude-3-5-sonnet-latest",
        messages=messages,
        max_tokens=1000,
        system=system,
    ) as stream:
        for text in stream.text_stream:
            print(text, end="", flush=True)
        message = stream.get_final_message()
    ```
rî   rc   ÚbetarB   rÑ   rº   )r›   rH   rI   r/   rØ   rB   rÑ   r²   r  rT   Úcompletionsr¸   r–   rˆ  rº   )	r   rÐ   r…  r†  rî   re   rL   r<   Útracing_extra_rests	            r$   Úwrap_anthropicr‹    sè  € ð~ "×' R€Mô �M×%Ñ% jÓ1×7°RÓ8€HØ%-§\¡\Ð2HÈ"Ó%MÐ"ð '×,Ñ,Ô.ô(Ù.‘�°!°z±/‹ˆŠÑ.ð ñ (ö Ø)1˜:Ñ&ä)Ø�‰×ÑØÜØ&Øó€F‡O�OÔô 1Ø�‰×ÑØØ&Øó	€F‡O�OÔô !-Ø×Ñ×!Ñ!ØÜØ&Øó!€F×ÑÔô 	�˜×ÑÜ�F—K‘K ×,Ñ,Ü�F—K‘K×(Ñ(¨(×3Ñ3ä&2Ø�K‰K× Ñ ×'Ñ'ØÜØ*Øó'
ˆ�‰×ÑÔ#ô 	�˜×ÑÜ�F—K‘K ×,Ñ,Ü�F—K‘K×(Ñ(¨'×2Ñ2ä%1Ø�K‰K× Ñ ×&Ñ&ØÜØ*Øó&
ˆ�‰×ÑÔ"ð €Mùók(s   ÁIÁ#I)r0  zOptional[tuple[type, ...]])r1   r   r0  r   )rJ   r›   r0  r›   )re   r›   rf   r›   )r0  zOptional[Callable])r~   r›   r0  r   )r    r   r0  r›   )r®   r   r0  r›   )r®   zlist[Completion]r0  r›   )r¡   r   )rÏ   r	   r'   rd   rÄ   r	   re   r›   rÐ   r¾   r0  r	   )
rI  r	   r'   rd   re   r›   rÐ   r¾   r0  r	   )
r   r   rÐ   zOptional[TracingExtra]r…  rd   r†  rd   r0  r   )@Ú
__future__r   rÊ   Úloggingr—   Úcollections.abcr   r   r   Útypingr   r   r	   r
   r   r   Útyping_extensionsr   r   Ú	langsmithr   Ú	ls_clientr   Úlangsmith._internal._orjsonr   rž   Úlangsmith.anonymizerr   Úlangsmith.schemasr   r   ÚhttpxrX   r   r   Úanthropic.lib.streamingr   r   Úanthropic.typesr   r   r   r   Ú	getLoggerr8  rF   Ú	lru_cacher%   Ú	frozensetr*   r‚  r6   rO   rj   ro   r…   r§   r²   r¸   r½   rØ   r  r¾   r‹  r{   r†   r$   Ú<module>rœ     s¹  ðÞ "ã Û Û ß <Ñ <÷÷ ÷ .å )Ý !Ý 7Ý 3ß >æÛß3ßIßGÑGáˆC�u˜[Ð*:¸CÐ?Ñ@ÑA€Ø	×	Ò	˜8Ó	$€ð ×Ñóó ðñ )2Ú1ó)Ð �~ó ô
ô0ô."ðJ ×Ñóó ðô#ôL(ôV-ô&ô #ð"*HØð*Hà
ð*Hð ð*Hð %)ð	*Hð
  ð*Hð ô*HðZ|,Øð|,à
ð|,ð %)ð|,ð  ð	|,ð
 ô|,ô~'�9 Eò 'ð -1Ø$Ø'ñ{Øð{ð *ð{ð ð	{ð
 ð{ð ö{r†   