§
    ÜŽ’jk^  ã                  ó,  — U d dl mZ d dlZd dlZd dlmZmZ d dlmZm	Z	m
Z
mZmZmZmZmZmZ d dlmZmZmZmZ d dlmZ d dlmZmZmZ d dlZd dl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$ d	dl%m&Z& d	dl'm(Z(m)Z)m*Z* d	dl+m,Z, d	dl-m.Z. d	dl/m0Z1  ej2        e3¦  «        Z4e	e5ee1         f         Z6de7d<    G d„ de8¦  «        Z9ede6f         Z: ede:¬¦  «        Z;edeeee6f         f         Z< ede<¬¦  «        Z= G d„ de¦  «        Z> G d„ de¦  «        Z? G d„ de
e,         ¦  «        Z@ G d „ d!e@e;         ¦  «        ZA G d"„ d#e@e=         ¦  «        ZBdNd(„ZCdNd)„ZDdOd,„ZEedPd/„¦   «         ZFedddddddddd0œ	dQd@„¦   «         ZFedddddddddd0œ	dRdB„¦   «         ZF	 dSdddddddddd0œ	dTdE„ZFedUdG„¦   «         ZGedddddddddd0œ	dVdH„¦   «         ZGedddddddddd0œ	dWdJ„¦   «         ZG	 dSdddddddddd0œ	dXdM„ZGe	eAe         e>f         ZHe	eBe         e?f         ZIdS )Yé    )ÚannotationsN)ÚABCÚabstractmethod)	ÚAnyÚUnionÚGenericÚTypeVarÚCallableÚIterableÚ	CoroutineÚcastÚoverload)ÚisawaitableÚisasyncgenfunctionÚiscoroutinefunctionÚisgeneratorfunction)Ú	Awaitable)ÚLiteralÚ	TypeAliasÚoverride)Ú	BaseModelé   )Ú_compat)Úis_dict)Úcached_property)ÚTypeAdapter)ÚBetaToolParamÚBetaToolUnionParamÚBetaCacheControlEphemeralParam)Ú	CallableT)ÚInputSchema)ÚContentr   ÚBetaFunctionToolResultTypec                  ó0   ‡ — e Zd ZU dZded<   dˆ fd„Zˆ xZS )Ú	ToolErroraá  Error that can be raised from a tool to return structured content with ``is_error: True``.

    When the tool runner catches this error, it will use the :attr:`content`
    property as the tool result instead of ``repr(exc)``.

    Example::

        raise ToolError(
            [
                {"type": "text", "text": "Error details here"},
                {"type": "image", "source": {"type": "base64", "data": "...", "media_type": "image/png"}},
            ]
        )
    r#   ÚcontentÚreturnÚNonec                ó–  •— t          |t          ¦  «        r|}n‡g }|D ]i}|                     d¦  «        }|�#|                     t          |¦  «        ¦  «         Œ<|                     d|                     dd¦  «        › d�¦  «         Œj|rd                     |¦  «        nd}t          ¦   «                              |¦  «         || _        d S )NÚtextú[ÚtypeÚunknownú]ú z
Tool error)Ú
isinstanceÚstrÚgetÚappendÚjoinÚsuperÚ__init__r&   )Úselfr&   ÚmessageÚpartsÚblockr*   Ú	__class__s         €úQC:\Projects\DSCons\.venv\Lib\site-packages\anthropic\lib\tools\_beta_functions.pyr6   zToolError.__init__0   sÏ   ø€ Ý�g�sÑ#Ô#ð 
	AØˆGˆGà!ˆEØ ð Fð F�Ø—y’y Ñ(Ô(�ØÐ#Ø—L’L¥ T¡¤Ñ+Ô+Ð+Ð+à—L’LÐ!D U§Y¢Y¨v°yÑ%AÔ%AÐ!DÐ!DÐ!DÑEÔEÐEÐEØ).Ð@�c—h’h˜u‘o”o�o°LˆGÝ‰Œ×Ò˜Ñ!Ô!Ð!ØˆŒˆˆó    )r&   r#   r'   r(   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r6   Ú__classcell__©r;   s   @r<   r%   r%      sW   ø€ € € € € € ðð ð (Ð'Ð'Ñ'ðð ð ð ð ð ð ð ð ð r=   r%   .Ú	FunctionT)ÚboundÚAsyncFunctionTc                  óV   — e Zd Zedd„¦   «         Zedd„¦   «         Zedd	„¦   «         Zd
S )ÚBetaBuiltinFunctionToolr'   r   c                ó   — d S ©N© ©r7   s    r<   Úto_dictzBetaBuiltinFunctionTool.to_dictH   ó   € Ø-0¨Sr=   ÚinputÚobjectr#   c                ó   — d S rK   rL   ©r7   rP   s     r<   ÚcallzBetaBuiltinFunctionTool.callK   s   € ØADÀr=   r1   c                óR   — |                       ¦   «         }d|v r|d         S |d         S ©NÚmcp_server_nameÚname©rN   ©r7   Úraws     r<   rX   zBetaBuiltinFunctionTool.nameN   ó0   € à�lŠl‰nŒnˆØ Ð#Ð#ØÐ(Ô)Ð)Ø�6Œ{Ðr=   N©r'   r   ©rP   rQ   r'   r#   ©r'   r1   ©r>   r?   r@   r   rN   rT   ÚpropertyrX   rL   r=   r<   rI   rI   G   s^   € € € € € ØØ0Ð0Ð0ñ „^Ø0àØDÐDÐDñ „^ØDàðð ð ñ „Xðð ð r=   rI   c                  óV   — e Zd Zedd„¦   «         Zedd„¦   «         Zedd	„¦   «         Zd
S )ÚBetaAsyncBuiltinFunctionToolr'   r   c                ó   — d S rK   rL   rM   s    r<   rN   z$BetaAsyncBuiltinFunctionTool.to_dictW   rO   r=   rP   rQ   r#   c              ƒ  ó
   K  — d S rK   rL   rS   s     r<   rT   z!BetaAsyncBuiltinFunctionTool.callZ   s   è è € ØGJÀsr=   r1   c                óR   — |                       ¦   «         }d|v r|d         S |d         S rV   rY   rZ   s     r<   rX   z!BetaAsyncBuiltinFunctionTool.name]   r\   r=   Nr]   r^   r_   r`   rL   r=   r<   rc   rc   V   s^   € € € € € ØØ0Ð0Ð0ñ „^Ø0àØJÐJÐJñ „^ØJàðð ð ñ „Xðð ð r=   rc   c            
      óÚ   — e Zd ZU ded<   	 ded<   	 ded<   ded<   dZd	ed
<   	 dZded<   	 ddddddddddœ	d&d„Zed'd„¦   «         Zd(d„Z	e
d)d!„¦   «         Zd*d"„Zd+d#„Ze
d,d%„¦   «         ZdS )-ÚBaseFunctionToolr    Úfuncr1   rX   Údescriptionr!   Úinput_schemaNz+Callable[[], None | Awaitable[None]] | NoneÚclosezobject | NoneÚ_context_manager©	rX   rj   rk   Údefer_loadingÚcache_controlÚallowed_callersÚeager_input_streamingÚinput_examplesÚstrictú
str | Noneú$InputSchema | type[BaseModel] | Nonero   úbool | Nonerp   ú%BetaCacheControlEphemeralParam | Nonerq   úolist[Literal['direct', 'code_execution_20250825', 'code_execution_20260120', 'code_execution_20260521']] | Nonerr   rs   ú"Iterable[dict[str, object]] | Nonert   r'   r(   c       	        óÊ  — t           j        rt          d¦  «        ‚|| _        t	          j        |¦  «        | _        |p|j        | _        || _	        || _
        || _        || _        |	| _        |
| _        |p|                      ¦   «         | _        |�9t#          |t$          ¦  «        r|                     ¦   «         | _        d S || _        d S |                      ¦   «         | _        d S )Nú2Tool functions are only supported with Pydantic v2)r   ÚPYDANTIC_V1ÚRuntimeErrorri   ÚpydanticÚvalidate_callÚ_func_with_validater>   rX   Ú_defer_loadingÚ_cache_controlÚ_allowed_callersÚ_eager_input_streamingÚ_input_examplesÚ_strictÚ_get_description_from_docstringrj   r0   r,   Úmodel_json_schemark   Ú_create_schema_from_function)r7   ri   rX   rj   rk   ro   rp   rq   rr   rs   rt   s              r<   r6   zBaseFunctionTool.__init__‹   sé   € õ" Ôð 	UÝÐSÑTÔTÐTàˆŒ	Ý#+Ô#9¸$Ñ#?Ô#?ˆÔ ØÐ)˜DœMˆŒ	Ø+ˆÔØ+ˆÔØ /ˆÔØ&;ˆÔ#Ø-ˆÔØˆŒà&ÐP¨$×*NÒ*NÑ*PÔ*PˆÔàÐ#Ý˜,­Ñ-Ô-ð 1Ø1=×1OÒ1OÑ1QÔ1Q�Ô!Ð!Ð!à$0�Ô!Ð!Ð!à $× AÒ AÑ CÔ CˆDÔÐÐr=   c                ó   — | j         S rK   ©ri   rM   s    r<   Ú__call__zBaseFunctionTool.__call__³   s
   € àŒyÐr=   r   c                óü   — | j         | j        | j        dœ}| j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d<   | j        �
| j        |d<   |S )N)rX   rj   rk   ro   rp   rq   rr   rs   rt   )	rX   rj   rk   r‚   rƒ   r„   r…   r†   r‡   )r7   Údefns     r<   rN   zBaseFunctionTool.to_dict·   sª   € à”IØÔ+Ø Ô-ð
ð 
ˆð
 ÔÐ*Ø$(Ô$7ˆD�Ñ!ØÔÐ*Ø$(Ô$7ˆD�Ñ!ØÔ Ð,Ø&*Ô&;ˆDÐ"Ñ#ØÔ&Ð2Ø,0Ô,GˆDÐ(Ñ)ØÔÐ+Ø%)Ô%9ˆDÐ!Ñ"ØŒ<Ð#Ø!œ\ˆD�‰NØˆr=   údocstring_parser.Docstringc                óB   — t          j        | j        j        pd¦  «        S )NÚ )Údocstring_parserÚparseri   rA   rM   s    r<   Ú_parsed_docstringz"BaseFunctionTool._parsed_docstringË   s   € åÔ% d¤iÔ&7Ð&=¸2Ñ>Ô>Ð>r=   c                óv   — | j         j        r,| j         j        }| j         j        r|d| j         j        › �z  }|S dS )z*Extract description from parsed docstring.z

r’   )r•   Úshort_descriptionÚlong_description)r7   rj   s     r<   rˆ   z0BaseFunctionTool._get_description_from_docstringÏ   sN   € àÔ!Ô3ð 	ØÔ0ÔBˆKØÔ%Ô6ð PØÐO dÔ&<Ô&MÐOÐOÑO�ØÐØˆrr=   c                óª   — ddl m} ddlm}m} ddlm}  G d„ d|¦  «        } || j        | j        ¬¦  «        }| j	         
                    |¬¦  «        S )	z:Create JSON schema from function signature using pydantic.r   )Ú
CoreSchema)ÚJsonSchemaValueÚGenerateJsonSchema)ÚArgumentsParameterc                  óD   ‡ — e Zd Zdˆ fd„Zdd„Zedˆ fd„¦   «         Zˆ xZS )úOBaseFunctionTool._create_schema_from_function.<locals>.CustomGenerateJsonSchemari   úCallable[..., Any]Úparsed_docstringr   r'   r(   c               ód   •— t          ¦   «                              ¦   «          || _        || _        d S rK   )r5   r6   Ú_funcr•   )r7   ri   r¡   r;   s      €r<   r6   zXBaseFunctionTool._create_schema_from_function.<locals>.CustomGenerateJsonSchema.__init__à   s.   ø€ Ý‘”× Ò Ñ"Ô"Ð"Ø!�”
Ø)9�Ô&Ð&Ð&r=   Ú_argsÚ_kwdsú'CustomGenerateJsonSchema'c                ó   — | S rK   rL   )r7   r¤   r¥   s      r<   r�   zXBaseFunctionTool._create_schema_from_function.<locals>.CustomGenerateJsonSchema.__call__å   s   € Ø�r=   Ú	argumentsú'list[ArgumentsParameter]'Úvar_kwargs_schemaúCoreSchema | Noner›   c                ór  •— t          ¦   «                              ||¦  «        }|                     d¦  «        dk    r|S |                     d¦  «        }|rt          |¦  «        s|S | j        j        D ]C}|                     |j        ¦  «        }|rt          |¦  «        sŒ.|j        rd|vr
|j        |d<   ŒD|S )Nr,   rQ   Ú
propertiesrj   )r5   Úkw_arguments_schemar2   r   r•   ÚparamsÚarg_namerj   )r7   r¨   rª   Úschemar­   ÚparamÚprop_schemar;   s          €r<   r®   zcBaseFunctionTool._create_schema_from_function.<locals>.CustomGenerateJsonSchema.kw_arguments_schemaè   s×   ø€ õ ™œ×4Ò4°YÐ@QÑRÔR�Ø—:’:˜fÑ%Ô%¨Ò1Ð1Ø!�Mà#ŸZšZ¨Ñ5Ô5�
Ø!ð "­°Ñ)<Ô)<ð "Ø!�Mð "Ô3Ô:ð Gð G�EØ",§.¢.°´Ñ"@Ô"@�KØ&ð !­g°kÑ.BÔ.Bð !Ø àÔ(ð G¨]À+Ð-MÐ-MØ5:Ô5F˜ MÑ2øà�r=   )ri   r    r¡   r   r'   r(   )r¤   r   r¥   r   r'   r¦   )r¨   r©   rª   r«   r'   r›   )r>   r?   r@   r6   r�   r   r®   rC   rD   s   @r<   ÚCustomGenerateJsonSchemarŸ   ß   s{   ø€ € € € € ð:ð :ð :ð :ð :ð :ð
ð ð ð ð ðð ð ð ð ñ ŒXðð ð ð ð r=   r´   )ri   r¡   )Úschema_generator)Úpydantic_corerš   Úpydantic.json_schemar›   rœ   Úpydantic_core.core_schemar�   ri   r•   Ú_adapterÚjson_schema)r7   rš   r›   rœ   r�   r´   rµ   s          r<   rŠ   z-BaseFunctionTool._create_schema_from_functionØ   s¤   € ð 	-Ð,Ð,Ð,Ð,Ð,ØLÐLÐLÐLÐLÐLÐLÐLØ@Ð@Ð@Ð@Ð@Ð@ð 	ð  	ð  	ð  	ð  	Ð'9ñ  	ô  	ð  	ðD 4Ð3¸¼ÐUYÔUkÐlÑlÔlÐØŒ}×(Ò(Ð:JÐ(ÑKÔKÐKr=   úTypeAdapter[Any]c                ó*   — t          | j        ¦  «        S rK   )r   r�   rM   s    r<   r¹   zBaseFunctionTool._adapter  s   € å˜4Ô3Ñ4Ô4Ð4r=   )ri   r    rX   ru   rj   ru   rk   rv   ro   rw   rp   rx   rq   ry   rr   rw   rs   rz   rt   rw   r'   r(   )r'   r    )r'   r   )r'   r�   r_   )r'   r!   )r'   r»   )r>   r?   r@   rB   rl   rm   r6   ra   r�   rN   r   r•   rˆ   rŠ   r¹   rL   r=   r<   rh   rh   e   sZ  € € € € € € Ø€O€O�OØ,à€I€I�IØ;àÐÐÑàÐÐÑà9=€EÐ=Ð=Ð=Ñ=ðð$ '+ÐÐ*Ð*Ð*Ñ*ðð  Ø"&Ø=AØ%)Ø?Cð Ø-1Ø=AØ"ð&Dð &Dð &Dð &Dð &Dð &DðP ðð ð ñ „Xððð ð ð ð( ð?ð ?ð ?ñ „_ð?ðð ð ð ð*Lð *Lð *Lð *LðX ð5ð 5ð 5ñ „_ð5ð 5ð 5r=   rh   c                  ó   — e Zd Zdd„ZdS )ÚBetaFunctionToolrP   rQ   r'   r#   c                óN  — t          | j        ¦  «        rt          d¦  «        ‚t          |¦  «        s$t	          dt          |¦  «        j        › �¦  «        ‚	  | j        di t          t          |¦  «        ¤ŽS # t          j        $ r}t          d| j        › �¦  «        |‚d }~ww xY w)NzJCannot call a coroutine function synchronously. Use `@async_tool` instead.ú Input must be a dictionary, got úInvalid arguments for function rL   ©r   ri   r~   r   Ú	TypeErrorr,   r>   r�   r   r   r   ÚValidationErrorÚ
ValueErrorrX   ©r7   rP   Úes      r<   rT   zBetaFunctionTool.call
  s¾   € Ý˜tœyÑ)Ô)ð 	mÝÐkÑlÔlÐlå�u‰~Œ~ð 	WÝÐU½tÀE¹{¼{Ô?SÐUÐUÑVÔVÐVð	SØ+�4Ô+Ð?Ð?­dµ3¸Ñ.>Ô.>Ð?Ð?Ð?øÝÔ'ð 	Sð 	Sð 	SÝÐJ¸t¼yÐJÐJÑKÔKÐQRÐRøøøøð	Søøøs   ÁA8 Á8B$ÂBÂB$Nr^   ©r>   r?   r@   rT   rL   r=   r<   r¾   r¾   	  ó.   € € € € € ð
Sð 
Sð 
Sð 
Sð 
Sð 
Sr=   r¾   c                  ó   — e Zd Zdd„ZdS )ÚBetaAsyncFunctionToolrP   rQ   r'   r#   c              ƒ  ó^  K  — t          | j        ¦  «        st          d¦  «        ‚t          |¦  «        s$t	          dt          |¦  «        j        › �¦  «        ‚	  | j        di t          t          |¦  «        ¤Žƒ d {V —†S # t          j        $ r}t          d| j        › �¦  «        |‚d }~ww xY w)NzGCannot call a synchronous function asynchronously. Use `@tool` instead.rÀ   rÁ   rL   rÂ   rÆ   s      r<   rT   zBetaAsyncFunctionTool.call  sÔ   è è € Ý" 4¤9Ñ-Ô-ð 	jÝÐhÑiÔiÐiå�u‰~Œ~ð 	WÝÐU½tÀE¹{¼{Ô?SÐUÐUÑVÔVÐVð	SØ1˜Ô1ÐEÐEµD½¸eÑ4DÔ4DÐEÐEÐEÐEÐEÐEÐEÐEÐEøÝÔ'ð 	Sð 	Sð 	SÝÐJ¸t¼yÐJÐJÑKÔKÐQRÐRøøøøð	Søøøs   Á%B  Â B,ÂB'Â'B,Nr^   rÈ   rL   r=   r<   rË   rË     rÉ   r=   rË   ÚfnrQ   r'   Úboolc                óJ   — t          | dd¦  «        }|duot          |¦  «        S )u‹  True when ``fn`` is a function produced by :func:`contextlib.contextmanager`.

    ``contextmanager`` wraps the generator function with ``functools.wraps``, so
    the original generator function is reachable as ``__wrapped__`` â€” the same
    signal :mod:`inspect` itself uses. We never call ``fn`` to find out, so a
    plain tool function is never accidentally invoked during detection.
    Ú__wrapped__N)Úgetattrr   ©rÍ   Úwrappeds     r<   Ú_is_sync_cm_factoryrÔ   %  s.   € õ �b˜-¨Ñ.Ô.€GØ˜$ÐÐ?Õ#6°wÑ#?Ô#?Ð?r=   c                óJ   — t          | dd¦  «        }|duot          |¦  «        S )zRTrue when ``fn`` is a function produced by :func:`contextlib.asynccontextmanager`.rÐ   N)rÑ   r   rÒ   s     r<   Ú_is_async_cm_factoryrÖ   1  s,   € å�b˜-¨Ñ.Ô.€GØ˜$ÐÐ>Õ#5°gÑ#>Ô#>Ð>r=   Útoolr(   c           	   ƒ  óL  K  — t          | dd¦  «        pt          | dd¦  «        }|�e	  |¦   «         }t          |¦  «        r|ƒ d{V —† nB# t          $ r5}t                               dt          | dd¦  «        |¦  «         Y d}~nd}~ww xY wt          | dd¦  «        }|�…	 t          |dd¦  «        }|� |ddd¦  «        ƒ d{V —† dS |                     ddd¦  «         dS # t          $ r6}t                               d	t          | dd¦  «        |¦  «         Y d}~dS d}~ww xY wdS )
uß  Run a runnable tool's optional cleanup.

    Drives the legacy ``aclose`` / ``close`` attribute (awaited if it returns an
    awaitable) and, when the tool was defined as a context manager via
    :func:`beta_tool` / :func:`beta_async_tool`, its ``__exit__`` /
    ``__aexit__``. Both run when both are present â€” the context-manager support
    is purely additive to ``close``. Exceptions are logged, never raised, so one
    tool's bad cleanup can't abort another tool's.
    ÚacloseNrl   z"tool.close failed tool=%s error=%srX   Ú?rm   Ú	__aexit__z4tool context-manager cleanup failed tool=%s error=%s)rÑ   r   Ú	ExceptionÚlogÚwarningÚ__exit__)r×   ÚcloserÚresultrÇ   ÚcmÚaexits         r<   Úaclose_runnable_toolrä   7  sœ  è è € õ �T˜8 TÑ*Ô*ÐJ­g°d¸GÀTÑ.JÔ.J€FØÐð	]Ø�V‘X”XˆFÝ˜6Ñ"Ô"ð Ø�������øøÝð 	]ð 	]ð 	]Ý�KŠKÐ<½gÀdÈFÐTWÑ>XÔ>XÐZ[Ñ\Ô\Ð\Ð\Ð\Ð\Ð\Ð\øøøøð	]øøøõ 
�Ð)¨4Ñ	0Ô	0€BØ	€~ð	oÝ˜B ¨TÑ2Ô2ˆEØÐ Ø�e˜D $¨Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-à—’˜D $¨Ñ-Ô-Ð-Ð-Ð-øÝð 	oð 	oð 	oÝ�KŠKÐNÕPWÐX\Ð^dÐfiÑPjÔPjÐlmÑnÔnÐnÐnÐnÐnÐnÐnÐnøøøøð	oøøøð €~s5   ¨!A
 Á

B	Á+BÂB	Â &C! ÃC! Ã!
D!Ã++DÄD!ri   úBetaFunctionTool[FunctionT]c                ó   — d S rK   rL   rŒ   s    r<   Ú	beta_toolrç   V  s   € Ø?B¸sr=   rn   rX   ru   rj   rk   rv   ro   rw   rp   rx   rq   ry   rr   rs   rz   rt   c       	        ó   — d S rK   rL   ©
ri   rX   rj   rk   ro   rp   rq   rr   rs   rt   s
             r<   rç   rç   Z  s	   € ð  #& #r=   ú2Callable[[FunctionT], BetaFunctionTool[FunctionT]]c        	        ó   — d S rK   rL   rn   s	            r<   rç   rç   m  s	   € ð :=¸r=   úFunctionT | NoneúPBetaFunctionTool[FunctionT] | Callable[[FunctionT], BetaFunctionTool[FunctionT]]c       	   
     ó„   ‡‡‡‡‡‡‡‡‡	— t           j        rt          d¦  «        ‚dˆˆˆˆˆˆˆˆˆ	f	d„}
| � |
| ¦  «        S |
S )	aF  Create a FunctionTool from a function with automatic schema inference.

    Can be used as a decorator with or without parentheses:

    @function_tool
    def my_func(x: int) -> str: ...

    @function_tool()
    def my_func(x: int) -> str: ...

    @function_tool(name="custom_name")
    def my_func(x: int) -> str: ...
    r|   rÍ   rE   r'   rå   c                ó´  •	— t          | ¦  «        rt          d¦  «        ‚t          | ¦  «        r’ t          t          | ¦  «        ¦   «         }|                     ¦   «         }	 t          t          t          |¦  «        ‰‰‰
‰‰‰‰‰	‰¬¦
  «
        }n*# t          $ r  |j	        t          j        ¦   «         Ž  ‚ w xY w||_        |S t          | ‰‰‰
‰‰‰‰‰	‰¬¦
  «
        S )Nzi@beta_tool was applied to an @asynccontextmanager; use @beta_async_tool for an async context-manager toolrn   )rÖ   rÃ   rÔ   r   r   Ú	__enter__r¾   rE   ÚBaseExceptionrß   ÚsysÚexc_inform   )rÍ   râ   Úinnerr×   rq   rp   ro   rj   rr   rs   rk   rX   rt   s       €€€€€€€€€r<   Ú_makezbeta_tool.<locals>._makeŸ  s  ø€ Ý Ñ#Ô#ð 	ÝðIñô ð õ ˜rÑ"Ô"ð 	ð
 ••c˜2‘”‘”ˆBØ—L’L‘N”NˆEðÝ'Ý� EÑ*Ô*ØØ +Ø!-Ø"/Ø"/Ø$3Ø*?Ø#1Ø!ðñ ô ��øõ !ð ð ð ð �”�Sœ\™^œ^Ð,Ð,Øð	øøøð
 %'ˆDÔ!ØˆKÝØØØ#Ø%Ø'Ø'Ø+Ø"7Ø)Øð
ñ 
ô 
ð 	
s   Á!,B Â'B5N)rÍ   rE   r'   rå   ©r   r}   r~   ©ri   rX   rj   rk   ro   rp   rq   rr   rs   rt   rõ   s    ````````` r<   rç   rç     sŠ   øøøøøøøøø€ õ: Ôð QÝÐOÑPÔPÐPð,
ð ,
ð ,
ð ,
ð ,
ð ,
ð ,
ð ,
ð ,
ð ,
ð ,
ð ,
ð ,
ð ,
ð\ ÐØˆu�T‰{Œ{Ðà€Lr=   ú%BetaAsyncFunctionTool[AsyncFunctionT]c                ó   — d S rK   rL   rŒ   s    r<   Úbeta_async_toolrú   Ó  s   € ØTWÐTWr=   c       	        ó   — d S rK   rL   ré   s
             r<   rú   rú   ×  s	   € ð  -0¨Cr=   úACallable[[AsyncFunctionT], BetaAsyncFunctionTool[AsyncFunctionT]]c        	        ó   — d S rK   rL   rn   s	            r<   rú   rú   ê  s   € ð ILÈr=   úAsyncFunctionT | NoneúiBetaAsyncFunctionTool[AsyncFunctionT] | Callable[[AsyncFunctionT], BetaAsyncFunctionTool[AsyncFunctionT]]c       	   
     ó„   ‡‡‡‡‡‡‡‡‡	— t           j        rt          d¦  «        ‚dˆˆˆˆˆˆˆˆˆ	f	d„}
| � |
| ¦  «        S |
S )	aU  Create an AsyncFunctionTool from a function with automatic schema inference.

    Can be used as a decorator with or without parentheses:

    @async_tool
    async def my_func(x: int) -> str: ...

    @async_tool()
    async def my_func(x: int) -> str: ...

    @async_tool(name="custom_name")
    async def my_func(x: int) -> str: ...
    r|   rÍ   rG   r'   rø   c                ó2  •	‡‡‡‡‡— t          | ¦  «        rt          d¦  «        ‚t          | ¦  «        rÌ‰€t          d¦  «        ‚ t          t          | ¦  «        ¦   «         Šd ddœŠt          j        ¦   «         Šg Šdˆˆˆˆfd„Šdˆfd
„}‰pt          | dd¦  «        |_        ‰�‰nt          | dd ¦  «        |_	        t          t          t          |¦  «        ‰‰‰‰
‰	‰‰‰‰¬¦
  «
        }‰                     |¦  «         |S t          | ‰‰‰‰
‰	‰‰‰‰¬¦
  «
        S )Nza@beta_async_tool was applied to a @contextmanager; use @beta_tool for a sync context-manager toolz„an @asynccontextmanager tool needs an explicit input_schema= (its parameters can't be inferred until the context manager is entered)F)Ú	validatedÚenteredr'   r   c               “  ó  •K  — ‰d         sx‰4 ƒd {V —† ‰d         sC‰                      ¦   «         ƒ d {V —†} t          j        | ¦  «        ‰d<   d‰d<   ‰‰d         _        	 d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   ‰d         S )Nr  r  Tr   )Ú
__aenter__r   r€   rm   )rô   râ   Ú
enter_lockÚstateÚtool_boxs    €€€€r<   Ú_enteredz0beta_async_tool.<locals>._make.<locals>._entered1  s2  øè è € Ø˜YÔ'ð >Ø)ð >ð >ð >ð >ð >ð >ð >ð >Ø$ YÔ/ð >Ø*,¯-ª-©/¬/Ð$9Ð$9Ð$9Ð$9Ð$9Ð$9˜EÝ19Ô1GÈÑ1NÔ1N˜E +Ñ.Ø/3˜E )Ñ,ð <>˜H QœKÔ8Ð=ð>ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >ð >ð >ð >ð >ð >ð >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >ð ˜[Ô)Ð)s   ”AA3Á3
A=Â A=Úkwargsr#   c               ›  ój   •K  —  ‰¦   «         ƒ d {V —†}t          t           |di | ¤Žƒ d {V —†¦  «        S )NrL   )r   r#   )r
  r  r	  s     €r<   Ú_lazyz-beta_async_tool.<locals>._make.<locals>._lazy=  sW   øè è € Ø"* (¡*¤*Ð,Ð,Ð,Ð,Ð,Ð,�	ÝÕ6¸i¸iÐ>QÐ>QÈ&Ð>QÐ>QÐ8QÐ8QÐ8QÐ8QÐ8QÐ8QÑRÔRÐRr=   r>   r×   rA   rn   )r'   r   )r
  r   r'   r#   )rÔ   rÃ   rÖ   r   r   ÚanyioÚLockrÑ   r>   rA   rË   rG   r3   )rÍ   r  r×   r	  râ   r  r  r  rq   rp   ro   rj   rr   rs   rk   rX   rt   s      @@@@@€€€€€€€€€r<   rõ   zbeta_async_tool.<locals>._make  s¥  øøøøøø€ Ý˜rÑ"Ô"ð 	ÝØsñô ð õ   Ñ#Ô#ð /	ð Ð#Ýð^ñô ð ð ••c˜2‘”‘”ˆBØ26À5Ð$IÐ$IˆEÝœ™œˆJØDFˆHð
*ð 
*ð 
*ð 
*ð 
*ð 
*ð 
*ð 
*ð 
*ðSð Sð Sð Sð Sð Sð "ÐD¥W¨R°¸VÑ%DÔ%DˆEŒNØ+6Ð+B˜K˜KÍÐPRÐT]Ð_cÑHdÔHdˆEŒMÝ(Ý•^ UÑ+Ô+ØØ'Ø)Ø+Ø+Ø /Ø&;Ø-Øðñ ô ˆDð �OŠO˜DÑ!Ô!Ð!ØˆKÝ$ØØØ#Ø%Ø'Ø'Ø+Ø"7Ø)Øð
ñ 
ô 
ð 	
r=   N)rÍ   rG   r'   rø   rö   r÷   s    ````````` r<   rú   rú   ü  s˜   øøøøøøøøø€ õ: Ôð QÝÐOÑPÔPÐPð@
ð @
ð @
ð @
ð @
ð @
ð @
ð @
ð @
ð @
ð @
ð @
ð @
ð @
ðD ÐØˆu�T‰{Œ{Ðà€Lr=   )rÍ   rQ   r'   rÎ   )r×   rQ   r'   r(   )ri   rE   r'   rå   )ri   rE   rX   ru   rj   ru   rk   rv   ro   rw   rp   rx   rq   ry   rr   rw   rs   rz   rt   rw   r'   rå   )rX   ru   rj   ru   rk   rv   ro   rw   rp   rx   rq   ry   rr   rw   rs   rz   rt   rw   r'   rê   rK   )ri   rì   rX   ru   rj   ru   rk   rv   ro   rw   rp   rx   rq   ry   rr   rw   rs   rz   rt   rw   r'   rí   )ri   rG   r'   rø   )ri   rG   rX   ru   rj   ru   rk   rv   ro   rw   rp   rx   rq   ry   rr   rw   rs   rz   rt   rw   r'   rø   )rX   ru   rj   ru   rk   rv   ro   rw   rp   rx   rq   ry   rr   rw   rs   rz   rt   rw   r'   rü   )ri   rþ   rX   ru   rj   ru   rk   rv   ro   rw   rp   rx   rq   ry   rr   rw   rs   rz   rt   rw   r'   rÿ   )JÚ
__future__r   rò   ÚloggingÚabcr   r   Útypingr   r   r   r	   r
   r   r   r   r   Úinspectr   r   r   r   Úcollections.abcr   Útyping_extensionsr   r   r   r  r   r“   r   r’   r   Ú_utilsr   r   Ú_modelsr   Ú
types.betar   r   r   Ú_utils._utilsr    Útypes.tool_paramr!   Ú'types.beta.beta_tool_result_block_paramr"   ÚBetaContentÚ	getLoggerr>   rÝ   r1   r#   rB   rÜ   r%   ÚFunctionrE   ÚAsyncFunctionrG   rI   rc   rh   r¾   rË   rÔ   rÖ   rä   rç   rú   ÚBetaRunnableToolÚBetaAsyncRunnableToolrL   r=   r<   ú<module>r"     sÉ  ðØ "Ð "Ð "Ð "Ð "Ð "Ð "à 
€
€
€
Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø ^Ð ^Ð ^Ð ^Ð ^Ð ^Ð ^Ð ^Ð ^Ð ^Ð ^Ð ^Ð ^Ð ^Ð ^Ð ^Ð ^Ð ^Ð ^Ð ^Ð ^Ð ^Ø ]Ð ]Ð ]Ð ]Ð ]Ð ]Ð ]Ð ]Ð ]Ð ]Ð ]Ð ]Ø %Ð %Ð %Ð %Ð %Ð %Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :à €€€Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ø "Ð "Ð "Ð "Ð "Ð "Ø [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ð [Ø &Ð &Ð &Ð &Ð &Ð &Ø +Ð +Ð +Ð +Ð +Ð +Ø MÐ MÐ MÐ MÐ MÐ Mà€gÔ˜Ñ!Ô!€à(-¨c°8¸KÔ3HÐ.HÔ(IÐ Ð IÐ IÐ IÑ Iðð ð ð ð �	ñ ô ð ðD �CÐ3Ð3Ô4€ØˆG�K xÐ0Ñ0Ô0€	à˜˜i¨¨SÐ2LÐ(LÔMÐMÔN€Ø�Ð)°Ð?Ñ?Ô?€ðð ð ð ð ˜cñ ô ð ðð ð ð ð  3ñ ô ð ða5ð a5ð a5ð a5ð a5�w˜yÔ)ñ a5ô a5ð a5ðHSð Sð Sð Sð SÐ'¨	Ô2ñ Sô Sð SðSð Sð Sð Sð SÐ,¨^Ô<ñ Sô Sð Sð	@ð 	@ð 	@ð 	@ð?ð ?ð ?ð ?ðoð oð oð oð> 
Ø BÐ BÐ Bñ 
„Ø Bð 
ð Ø"Ø9=Ø!%Ø;?ð Ø)-Ø9=Øð&ð &ð &ð &ð &ñ 
„ð&ð$ 
ð Ø"Ø9=Ø!%Ø;?ð Ø)-Ø9=Øð=ð =ð =ð =ð =ñ 
„ð=ð$ "ðQð Ø"Ø9=Ø!%Ø;?ð Ø)-Ø9=ØðQð Qð Qð Qð Qð Qðh 
Ø WÐ WÐ Wñ 
„Ø Wð 
ð Ø"Ø9=Ø!%Ø;?ð Ø)-Ø9=Øð0ð 0ð 0ð 0ð 0ñ 
„ð0ð$ 
ð Ø"Ø9=Ø!%Ø;?ð Ø)-Ø9=ØðLð Lð Lð Lð Lñ 
„ðLð$ #'ðeð Ø"Ø9=Ø!%Ø;?ð Ø)-Ø9=Øðeð eð eð eð eð eðP Ð)¨#Ô.Ð0GÐGÔHÐ ØÐ3°CÔ8Ð:VÐVÔWÐ Ð Ð r=   