§
     ÂiN  ã                  óö  — U 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mZm	Z	m
Z
 d dlmZ d dlZd dlmZ d dlmZ ej        Ze
eeef         Zi ej        ej        “d ej        “dej        “d	ej        “ej        ej        “d
ej        “dej        “dej        “ej        ej        “dej        “dej        “dej        “ej        ej        “dej        “dej        “dej        “ej        ej        “dej        dej        dej        ej        ej        dej        dej        dej        ej        ej        dej        dej        dej        i¥Zded<   dfd"„Zddd#œdgd+„Z d,„ Z!d-„ Z"d.„ Z#d/„ Z$d0„ Z%d1„ Z&dhd3„Z' G d4„ d5¦  «        Z(e)ed6f         Z*e
e+ee,e*e-d6         df         Z. G d7„ d8e(¦  «        Z/e
e(ej(        e)eef         e	d9ef         f         Z0did=„Z1djd@„Z2 G dA„ dB¦  «        Z3 G dC„ dDe¦  «        Z4e
e3ej3        e4ee0         e0f         Z5dkdG„Z6 G dH„ dI¦  «        Z7e
ee5         e5f         Z8dldM„Z9e
e7e8f         Z:dmdQ„Z;ej<        j=        Z>d
e>j?        e>j?        e>j?        dRe>j?        dSe>j?        de>j@        e>j@        e>j@        dTe>j@        dUe>j@        de>jA        e>jA        e>jA        dVe>jA        dWe>jA        iZBe
e>eef         ZCdndZ„ZD G d[„ d\e¦  «        ZEe
eCeEej<        f         ZFdod`„ZG G da„ db¦  «        ZHe
eHejI        f         ZJdpde„ZKdS )qé    )Úannotations)ÚIterableÚMappingÚSequenceN)ÚAnyÚCallableÚUnion)Ú	TypedDict)Úprotos)Úcontent_typesÚtype_unspecifiedÚunspecifiedé   Útype_stringÚstringé   Útype_numberÚnumberé   Útype_integerÚintegeré   Útype_booleanÚbooleané   Ú
type_arrayÚarrayé   Útype_objectÚobjectzdict[TypeOptions, Type]Ú
_TYPE_TYPEÚxÚTypeOptionsÚreturnÚTypec                ón   — t          | t          ¦  «        r|                      ¦   «         } t          |          S ©N)Ú
isinstanceÚstrÚlowerr!   ©r"   s    úg/var/www/html/jarvis.com/web/backend/venv/lib/python3.11/site-packages/google/generativeai/responder.pyÚto_typer-   @   s+   € Ý�!•SÑÔð Ø�GŠG‰IŒIˆÝ�aŒ=Ðó    )ÚdescriptionsÚrequiredÚfúCallable[..., Any]r/   úMapping[str, str] | Noner0   úSequence[str] | Noneúdict[str, Any]c               ój  ‡	— |€i }t          t          j        | ¦  «        j        ¦  «        Š	i }‰	                     ¦   «         D ]š\  }}|j        t          j        j        t          j        j        t          j        j	        fv r\t          j        |                     |d¦  «        ¬¦  «        }|j        t          j        j        k    r|j        |f||<   ŒŽt          |f||<   Œ›t!          | j        |¦  «        }|�||d<   nˆ	fd„‰	D ¦   «         |d<   t          | j        | j        ¬¦  «        }|d         r||d<   |S )a³  Generates the OpenAPI Schema for a python function.

    Args:
        f: The function to generate an OpenAPI Schema for.
        descriptions: Optional. A `{name: description}` mapping for annotating input
            arguments of the function with user-provided descriptions. It
            defaults to an empty dictionary (i.e. there will not be any
            description for any of the inputs).
        required: Optional. For the user to specify the set of required arguments in
            function calls to `f`. If unspecified, it will be automatically
            inferred from `f`.

    Returns:
        dict[str, Any]: The OpenAPI Schema for the function `f` in JSON format.
    N)Údescriptionr0   c                óÒ   •— g | ]c}‰|         j         t          j        j        k    rA‰|         j        t          j        j        t          j        j        t          j        j        fv ¯a|‘ŒdS © )ÚdefaultÚinspectÚ	ParameterÚemptyÚkindÚPOSITIONAL_OR_KEYWORDÚKEYWORD_ONLYÚPOSITIONAL_ONLY)Ú.0ÚkÚdefaultss     €r,   ú
<listcomp>z$_generate_schema.<locals>.<listcomp>   su   ø€ ð "
ð "
ð "
àà˜”Ô#¥wÔ'8Ô'>Ò>Ð>Ø˜Q”KÔ$åÔ%Ô;ÝÔ%Ô2ÝÔ%Ô5ððð ð	 ðð ð r.   )Únamer7   Ú
propertiesÚ
parameters)Údictr;   Ú	signaturerH   Úitemsr>   r<   r?   r@   rA   ÚpydanticÚFieldÚgetÚ
annotationr=   r   Ú_build_schemaÚ__name__Ú__doc__)
r1   r/   r0   Úfields_dictrF   ÚparamÚfieldrH   ÚschemarD   s
            @r,   Ú_generate_schemarW   F   sh  ø€ ð* ÐØˆÝ•GÔ% aÑ(Ô(Ô3Ñ4Ô4€Hà€KØ—~’~Ñ'Ô'ð /ð /‰ˆˆeØŒ:ÝÔÔ3ÝÔÔ*ÝÔÔ-ð
ð 
ð 
õ ”Nà(×,Ò,¨T°4Ñ8Ô8ðñ ô ˆEð Ô¥7Ô#4Ô#:Ò:Ð:Ø$)Ô$4°eÐ$;�˜DÑ!Ð!å$'¨ J�˜DÑ!øå˜qœz¨;Ñ7Ô7€Jð Ðà!)ˆ
�:ÑÐð"
ð "
ð "
ð "
àð"
ñ "
ô "
ˆ
�:Ñõ �q”z¨q¬yÐ9Ñ9Ô9€FØ�,Ôð *Ø)ˆˆ|Ñà€Mr.   c                óf  — t          j        | fi |¤Ž                     ¦   «         }|                     di ¦  «        }|                     ¦   «         D ]\  }}t          ||¦  «         Œt          ||¦  «         t          |¦  «         t          |¦  «         t          |¦  «         t          |¦  «         |S )Nz$defs)
rL   Úcreate_modelÚmodel_json_schemaÚpoprK   Úunpack_defsÚconvert_to_nullableÚadd_object_typeÚstrip_titlesÚstrip_additional_properties)ÚfnamerS   rH   ÚdefsrF   Úvalues         r,   rP   rP   “   s¹   € ÝÔ& uÐ<Ð<°Ð<Ð<×NÒNÑPÔP€JØ�>Š>˜' 2Ñ&Ô&€Dà—z’z‘|”|ð !ð !‰ˆˆeÝ�E˜4Ñ Ô Ð Ð Ý�
˜DÑ!Ô!Ð!õ ˜
Ñ#Ô#Ð#Ý�JÑÔÐõ
 �ÑÔÐÝ 
Ñ+Ô+Ð+ØÐr.   c                óØ  — |                       dd ¦  «        }|€d S |                     ¦   «         D �]9\  }}|                      dd ¦  «        }|�7||                     d¦  «        d                  }t          ||¦  «         |||<   ŒU|                      dd ¦  «        }|�dt	          |¦  «        D ]S\  }}	|	                      dd ¦  «        }|�6||                     d¦  «        d                  }t          ||¦  «         |||<   ŒTŒÑ|                      dd ¦  «        }
|
�P|
                      dd ¦  «        }|�8||                     d¦  «        d                  }t          ||¦  «         ||d<   �Œ9�Œ;d S )NrG   z$refzdefs/éÿÿÿÿÚanyOfrK   )rN   rK   Úsplitr\   Ú	enumerate)rV   rb   rG   rF   rc   Úref_keyÚrefÚanyofÚiÚatyperK   s              r,   r\   r\   ª   s‰  € Ø—’˜L¨$Ñ/Ô/€JØÐØˆà!×'Ò'Ñ)Ô)ð ñ ‰ˆˆeØ—)’)˜F DÑ)Ô)ˆØÐØ�w—}’} WÑ-Ô-¨bÔ1Ô2ˆCÝ˜˜TÑ"Ô"Ð"Ø"ˆJ�tÑØà—	’	˜' 4Ñ(Ô(ˆØÐÝ% eÑ,Ô,ð #ð #‘��5ØŸ)š) F¨DÑ1Ô1�ØÐ&Ø˜wŸ}š}¨WÑ5Ô5°bÔ9Ô:�CÝ  TÑ*Ô*Ð*Ø"�E˜!‘HøØà—	’	˜' 4Ñ(Ô(ˆØÐØ—i’i ¨Ñ-Ô-ˆGØÐ"Ø˜7Ÿ=š=¨Ñ1Ô1°"Ô5Ô6�Ý˜C Ñ&Ô&Ð&Ø!$��g‘Ùùð3ð r.   c                ó  — |                       dd ¦  «        }|                      dd ¦  «        }|�)|                     ¦   «         D ]\  }}t          |¦  «         Œ|                      dd ¦  «        }|�t          |¦  «         d S d S )NÚtitlerG   rK   )r[   rN   rK   r_   )rV   ro   rG   rF   rc   rK   s         r,   r_   r_   Ë   s“   € Ø�JŠJ�w Ñ%Ô%€Eà—’˜L¨$Ñ/Ô/€JØÐØ%×+Ò+Ñ-Ô-ð 	 ð 	 ‰KˆD�%Ý˜ÑÔÐÐà�JŠJ�w Ñ%Ô%€EØÐÝ�UÑÔÐÐÐð Ðr.   c                ó  — |                       dd ¦  «         |                      dd ¦  «        }|�)|                     ¦   «         D ]\  }}t          |¦  «         Œ|                      dd ¦  «        }|�t          |¦  «         d S d S )NÚadditionalPropertiesrG   rK   )r[   rN   rK   r`   ©rV   rG   rF   rc   rK   s        r,   r`   r`   Ø   s•   € Ø
‡J‚JÐ% tÑ,Ô,Ð,à—’˜L¨$Ñ/Ô/€JØÐØ%×+Ò+Ñ-Ô-ð 	/ð 	/‰KˆD�%Ý'¨Ñ.Ô.Ð.Ð.à�JŠJ�w Ñ%Ô%€EØÐÝ# EÑ*Ô*Ð*Ð*Ð*ð Ðr.   c                ó  — |                       dd ¦  «        }|�D|                      dd ¦  «         d| d<   |                     ¦   «         D ]\  }}t          |¦  «         Œ|                       dd ¦  «        }|�t          |¦  «         d S d S )NrG   r0   r    ÚtyperK   )rN   r[   rK   r^   rr   s        r,   r^   r^   å   s�   € Ø—’˜L¨$Ñ/Ô/€JØÐØ�
Š
�:˜tÑ$Ô$Ð$Ø!ˆˆv‰Ø%×+Ò+Ñ-Ô-ð 	#ð 	#‰KˆD�%Ý˜EÑ"Ô"Ð"Ð"à�JŠJ�w Ñ%Ô%€EØÐÝ˜ÑÔÐÐÐð Ðr.   c                óø  — |                       dd ¦  «        }|�wt          |¦  «        dk    rt          d¦  «        ‚|\  }}|ddik    r|                      |¦  «         n-|ddik    r|                      |¦  «         nt          d¦  «        ‚d| d<   |                      dd ¦  «        }|�)|                     ¦   «         D ]\  }}t          |¦  «         Œ|                      d	d ¦  «        }|�t          |¦  «         d S d S )
Nrf   r   z�Invalid input: Type Unions are not supported, except for `Optional` types. Please provide an `Optional` type or a non-Union type.rt   ÚnullTÚnullablerG   rK   )r[   ÚlenÚ
ValueErrorÚupdaterN   rK   r]   )rV   rk   ÚaÚbrG   rF   rc   rK   s           r,   r]   r]   ò   s9  € Ø�JŠJ�w Ñ%Ô%€EØÐÝˆu‰:Œ:˜Š?ˆ?ÝðIñô ð ð ‰ˆˆ1Ø�˜Ð Ò Ð Ø�MŠM˜!ÑÔÐÐØ�6˜6Ð"Ò"Ð"Ø�MŠM˜!ÑÔÐÐåðIñô ð ð "ˆˆzÑà—’˜L¨$Ñ/Ô/€JØÐØ%×+Ò+Ñ-Ô-ð 	'ð 	'‰KˆD�%Ý Ñ&Ô&Ð&Ð&à�JŠJ�w Ñ%Ô%€EØÐÝ˜EÑ"Ô"Ð"Ð"Ð"ð Ðr.   rV   c                óÄ  — | €| S |                       ¦   «         } |                      dd ¦  «        }|�|| d<   |                      dd ¦  «        }|�t          |¦  «        | d<   |                      dd ¦  «        }|�|| d<   |                      dd ¦  «        }|�t	          |¦  «        | d<   |                      dd ¦  «        }|�!d„ |                     ¦   «         D ¦   «         | d<   | S )Nrt   Útype_ÚformatÚformat_rK   rG   c                ó4   — i | ]\  }}|t          |¦  «        “ŒS r9   )Ú_rename_schema_fields)rB   rC   Úvs      r,   ú
<dictcomp>z)_rename_schema_fields.<locals>.<dictcomp>'  s'   € Ð[Ð[Ð[ÁÀÀ1 Õ#8¸Ñ#;Ô#;Ð[Ð[Ð[r.   )Úcopyr[   rN   r-   r‚   rK   )rV   r~   r€   rK   rG   s        r,   r‚   r‚     sò   € Ø€~Øˆà�[Š[‰]Œ]€Fà�JŠJ�v˜tÑ$Ô$€EØÐØˆˆw‰Ø�JŠJ�w Ñ%Ô%€EØÐÝ! %™.œ.ˆˆw‰à�jŠj˜ 4Ñ(Ô(€GØÐØ#ˆˆyÑà�JŠJ�w Ñ%Ô%€EØÐÝ/°Ñ6Ô6ˆˆw‰à—’˜L¨$Ñ/Ô/€JØÐØ[Ð[È
×HXÒHXÑHZÔHZÐ[Ñ[Ô[ˆˆ|Ñà€Mr.   c                  óž   — e Zd Zddœdd„Zedd
„¦   «         Zedd„¦   «         Zedd„¦   «         Zedd„¦   «         Z	dd„Z
eddd„¦   «         ZdS )ÚFunctionDeclarationN©rH   rF   r)   r7   rH   údict[str, Any] | Nonec               óX   — t          j        ||t          |¦  «        ¬¦  «        | _        dS )zmA  class wrapping a `protos.FunctionDeclaration`, describes a function for `genai.GenerativeModel`'s `tools`.©rF   r7   rH   N)r   r‡   r‚   Ú_proto)ÚselfrF   r7   rH   s       r,   Ú__init__zFunctionDeclaration.__init__-  s0   € åÔ0Ø ;Õ;PÐQ[Ñ;\Ô;\ð
ñ 
ô 
ˆŒˆˆr.   r$   c                ó   — | j         j        S r'   )rŒ   rF   ©r�   s    r,   rF   zFunctionDeclaration.name3  s   € àŒ{ÔÐr.   c                ó   — | j         j        S r'   )rŒ   r7   r�   s    r,   r7   zFunctionDeclaration.description7  s   € àŒ{Ô&Ð&r.   úprotos.Schemac                ó   — | j         j        S r'   )rŒ   rH   r�   s    r,   rH   zFunctionDeclaration.parameters;  s   € àŒ{Ô%Ð%r.   c                ó0   —  | ddi ¬¦  «        }||_         |S )NÚ r‹   ©rŒ   )ÚclsÚprotor�   s      r,   Ú
from_protozFunctionDeclaration.from_proto?  s$   € àˆs˜¨°rÐ:Ñ:Ô:ˆØˆŒØˆr.   úprotos.FunctionDeclarationc                ó   — | j         S r'   r–   r�   s    r,   Úto_protozFunctionDeclaration.to_protoE  ó
   € ØŒ{Ðr.   Úfunctionr2   r/   údict[str, str] | Nonec                óL   — |€i }t          | |¬¦  «        }t          di |¤d| i¤ŽS )aÀ  Builds a `CallableFunctionDeclaration` from a python function.

        The function should have type annotations.

        This method is able to generate the schema for arguments annotated with types:

        `AllowedTypes = float | int | str | list[AllowedTypes] | dict`

        This method does not yet build a schema for `TypedDict`, that would allow you to specify the dictionary
        contents. But you can build these manually.
        N)r/   rž   r9   )rW   ÚCallableFunctionDeclaration)rž   r/   rV   s      r,   Úfrom_functionz!FunctionDeclaration.from_functionH  s@   € ð ÐØˆLå! (¸ÐFÑFÔFˆå*ÐGÐG¨VÐGÐG¸hÐGÐGÐGÐGr.   )rF   r)   r7   r)   rH   r‰   )r$   r)   )r$   r’   )r$   r‡   )r$   rš   r'   )rž   r2   r/   rŸ   )rQ   Ú
__module__Ú__qualname__rŽ   ÚpropertyrF   r7   rH   Úclassmethodr™   rœ   Ústaticmethodr¢   r9   r.   r,   r‡   r‡   ,  sõ   € € € € € Ø[_ð 
ð 
ð 
ð 
ð 
ð 
ð ð ð  ð  ñ „Xð ð ð'ð 'ð 'ñ „Xð'ð ð&ð &ð &ñ „Xð&ð ðð ð ñ „[ðð
ð ð ð ð ðHð Hð Hð Hñ „\ðHð Hð Hr.   r‡   Ú	ValueTypec                  ó2   ‡ — e Zd ZdZddœdˆ fd„Zdd„Zˆ xZS )r¡   z An extension of `FunctionDeclaration` that can be built from a Python function, and is callable.

    Note: The Python function must have type annotations.
    Nrˆ   rF   r)   r7   rH   r‰   rž   r2   c               ó^   •— t          ¦   «                              |||¬¦  «         || _        d S )Nr‹   )ÚsuperrŽ   rž   )r�   rF   r7   rH   rž   Ú	__class__s        €r,   rŽ   z$CallableFunctionDeclaration.__init__h  s/   ø€ õ 	‰Œ×Ò˜d°È
ÐÑSÔSÐSØ ˆŒˆˆr.   Úfcúprotos.FunctionCallr$   úprotos.FunctionResponsec                óŽ   —  | j         di |j        ¤Ž}t          |t          ¦  «        sd|i}t	          j        |j        |¬¦  «        S )NÚresult)rF   Úresponser9   )rž   Úargsr(   rI   r   ÚFunctionResponserF   )r�   r­   r±   s      r,   Ú__call__z$CallableFunctionDeclaration.__call__s  sO   € Ø�”Ð)Ð) ¤Ð)Ð)ˆÝ˜&¥$Ñ'Ô'ð 	(Ø Ð'ˆFÝÔ&¨B¬G¸fÐEÑEÔEÐEr.   )rF   r)   r7   r)   rH   r‰   rž   r2   )r­   r®   r$   r¯   )rQ   r£   r¤   rR   rŽ   rµ   Ú__classcell__)r¬   s   @r,   r¡   r¡   b  sr   ø€ € € € € ðð ð -1ð	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ðFð Fð Fð Fð Fð Fð Fð Fr.   r¡   .ÚfunÚFunctionDeclarationTypeú0FunctionDeclaration | protos.FunctionDeclarationc                óH  — t          | t          t          j        f¦  «        r| S t          | t          ¦  «        rd| v rt	          di | ¤ŽS t          di | ¤ŽS t          | ¦  «        rt                               | ¦  «        S t          dt          | ¦  «        j	        › d�| ¦  «        ‚)Nrž   z_Invalid argument type: Expected an instance of `genai.FunctionDeclarationType`. Received type: ú.r9   )
r(   r‡   r   rI   r¡   Úcallabler¢   Ú	TypeErrorrt   rQ   )r·   s    r,   Ú_make_function_declarationr¾   ‚  sË   € õ �#Õ+­VÔ-GÐHÑIÔIð 
Øˆ
Ý	�C�Ñ	Ô	ð 
Ø˜ÐÐÝ.Ð5Ð5°Ð5Ð5Ð5å&Ð-Ð-¨Ð-Ð-Ð-Ý	�#‰Œð 
Ý*×8Ò8¸Ñ=Ô=Ð=åð DÕnrÐsvÑnwÔnwô  oAð  Dð  Dð  DØñ
ô 
ð 	
r.   Úfdrš   c                ób   — t          | t          j        ¦  «        r| S |                      ¦   «         S r'   )r(   r   r‡   rœ   )r¿   s    r,   Ú
_encode_fdrÁ   •  s*   € Ý�"•fÔ0Ñ1Ô1ð Øˆ	à�;Š;‰=Œ=Ðr.   c                  óH   — e Zd ZdZdd„Zedd„¦   «         Zdd„Zdd„Zd„ Z	dS )ÚToolz\A wrapper for `protos.Tool`, Contains a collection of related `FunctionDeclaration` objects.Úfunction_declarationsú!Iterable[FunctionDeclarationType]c                óø   — d„ |D ¦   «         | _         i | _        | j         D ]0}|j        }|| j        v rt          d¦  «        ‚|| j        |j        <   Œ1t	          j        d„ | j         D ¦   «         ¬¦  «        | _        d S )Nc                ó,   — g | ]}t          |¦  «        ‘ŒS r9   )r¾   )rB   r1   s     r,   rE   z!Tool.__init__.<locals>.<listcomp>¡  s!   € Ð&dÐ&dÐ&dÈÕ'AÀ!Ñ'DÔ'DÐ&dÐ&dÐ&dr.   r•   c                ó,   — g | ]}t          |¦  «        ‘ŒS r9   )rÁ   )rB   r¿   s     r,   rE   z!Tool.__init__.<locals>.<listcomp>ª  s   € Ð"XÐ"XÐ"X°b¥:¨b¡>¤>Ð"XÐ"XÐ"Xr.   ©rÄ   )Ú_function_declarationsÚ_indexrF   ry   r   rÃ   rŒ   )r�   rÄ   r¿   rF   s       r,   rŽ   zTool.__init__Ÿ  s“   € à&dÐ&dÐNcÐ&dÑ&dÔ&dˆÔ#ØˆŒØÔ-ð 	&ð 	&ˆBØ”7ˆDØ�t”{Ð"Ð"Ý  ‘n”nÐ$Ø#%ˆDŒK˜œÑ Ð å”kØ"XÐ"X¸DÔ<WÐ"XÑ"XÔ"Xð
ñ 
ô 
ˆŒˆˆr.   r$   ú6list[FunctionDeclaration | protos.FunctionDeclaration]c                ó   — | j         S r'   )rÊ   r�   s    r,   rÄ   zTool.function_declarations­  s   € àÔ*Ð*r.   rF   ústr | protos.FunctionCallr¹   c                óT   — t          |t          ¦  «        s|j        }| j        |         S r'   ©r(   r)   rF   rË   ©r�   rF   s     r,   Ú__getitem__zTool.__getitem__±  ó*   € õ ˜$¥Ñ$Ô$ð 	Ø”9ˆDàŒ{˜4Ô Ð r.   r­   r®   úprotos.FunctionResponse | Nonec                óJ   — | |         }t          |¦  «        sd S  ||¦  «        S r'   )r¼   )r�   r­   Údeclarations      r,   rµ   zTool.__call__¹  s.   € Ø˜2”hˆÝ˜Ñ$Ô$ð 	Ø�4àˆ{˜2‰ŒÐr.   c                ó   — | j         S r'   r–   r�   s    r,   rœ   zTool.to_protoÀ  r�   r.   N)rÄ   rÅ   )r$   rÌ   ©rF   rÎ   r$   r¹   )r­   r®   r$   rÔ   )
rQ   r£   r¤   rR   rŽ   r¥   rÄ   rÒ   rµ   rœ   r9   r.   r,   rÃ   rÃ   œ  s…   € € € € € ØfÐfð
ð 
ð 
ð 
ð ð+ð +ð +ñ „Xð+ð!ð !ð !ð !ðð ð ð ðð ð ð ð r.   rÃ   c                  ó   — e Zd ZU ded<   dS )ÚToolDictzlist[FunctionDeclarationType]rÄ   N©rQ   r£   r¤   Ú__annotations__r9   r.   r,   rÚ   rÚ   Ä  s   € € € € € € Ø8Ð8Ð8Ñ8Ð8Ð8r.   rÚ   ÚtoolÚToolTypec                óü  — t          | t          ¦  «        r| S t          | t          j        ¦  «        rt          | j        ¬¦  «        S t          | t          ¦  «        r2d| v rt          di | ¤ŽS | }t          t          j        di |¤Žg¬¦  «        S t          | t          ¦  «        rt          | ¬¦  «        S 	 t          | g¬¦  «        S # t          $ r,}t          dt          | ¦  «        j
        › d�| ¦  «        |‚d }~ww xY w)NrÉ   rÄ   zPInvalid argument type: Expected an instance of `genai.ToolType`. Received type: r»   r9   )r(   rÃ   r   rÄ   rI   r‡   r   Ú	Exceptionr½   rt   rQ   )rÝ   r¿   Úes      r,   Ú
_make_toolrâ   Í  s'  € Ý�$�ÑÔð ØˆÝ	�D�&œ+Ñ	&Ô	&ð Ý¨$Ô*DÐEÑEÔEÐEÝ	�D�$Ñ	Ô	ð Ø" dÐ*Ð*Ý�<�<˜$�<�<ÐàˆBÝ­vÔ/IÐ/OÐ/OÈBÐ/OÐ/OÐ.PÐQÑQÔQÐQÝ	�D�(Ñ	#Ô	#ð 	Ý¨$Ð/Ñ/Ô/Ð/ð	Ý¨t¨fÐ5Ñ5Ô5Ð5øÝð 	ð 	ð 	ÝØyÕcgÐhlÑcmÔcmÔcvÐyÐyÐyØñô ð ðøøøøð	øøøs   Â4C Ã
C;Ã'C6Ã6C;c                  ó0   — e Zd ZdZdd„Zdd	„Zdd„Zd„ ZdS )ÚFunctionLibraryzYA container for a set of `Tool` objects, manages lookup and execution of their functions.ÚtoolsúIterable[ToolType]c                óæ   — t          |¦  «        }t          |¦  «        | _        i | _        | j        D ]>}|j        D ]4}|j        }|| j        v rt          d|› d�¦  «        ‚|| j        |j        <   Œ5Œ?d S )Nz2Invalid operation: A `FunctionDeclaration` named 'zI' is already defined. Each `FunctionDeclaration` must have a unique name.)Ú_make_toolsÚlistÚ_toolsrË   rÄ   rF   ry   )r�   rå   rÝ   rÖ   rF   s        r,   rŽ   zFunctionLibrary.__init__ç  sª   € Ý˜EÑ"Ô"ˆÝ˜5‘k”kˆŒØˆŒØ”Kð 	<ð 	<ˆDØ#Ô9ð <ð <�Ø"Ô'�Ø˜4œ;Ð&Ð&Ý$ð ]ÈTð  ]ð  ]ð  ]ñô ð ð 1<�”˜KÔ,Ñ-Ð-ð<ð	<ð 	<r.   rF   rÎ   r$   r¹   c                óT   — t          |t          ¦  «        s|j        }| j        |         S r'   rÐ   rÑ   s     r,   rÒ   zFunctionLibrary.__getitem__ô  rÓ   r.   r­   r®   úprotos.Part | Nonec                ót   — | |         }t          |¦  «        sd S  ||¦  «        }t          j        |¬¦  «        S )N)Úfunction_response)r¼   r   ÚPart)r�   r­   rÖ   r²   s       r,   rµ   zFunctionLibrary.__call__ü  s@   € Ø˜2”hˆÝ˜Ñ$Ô$ð 	Ø�4à�;˜r‘?”?ˆÝŒ{¨XÐ6Ñ6Ô6Ð6r.   c                ó$   — d„ | j         D ¦   «         S )Nc                ó6   — g | ]}|                      ¦   «         ‘ŒS r9   )rœ   )rB   rÝ   s     r,   rE   z,FunctionLibrary.to_proto.<locals>.<listcomp>  s    € Ð8Ð8Ð8 D�—’‘”Ð8Ð8Ð8r.   )rê   r�   s    r,   rœ   zFunctionLibrary.to_proto  s   € Ø8Ð8¨D¬KÐ8Ñ8Ô8Ð8r.   N)rå   ræ   rØ   )r­   r®   r$   rì   )rQ   r£   r¤   rR   rŽ   rÒ   rµ   rœ   r9   r.   r,   rä   rä   ä  se   € € € € € ØcÐcð<ð <ð <ð <ð!ð !ð !ð !ð7ð 7ð 7ð 7ð9ð 9ð 9ð 9ð 9r.   rä   rå   Ú	ToolsTypeú
list[Tool]c                ó"  — t          | t          ¦  «        rit          | t          ¦  «        sTd„ | D ¦   «         } t          | ¦  «        dk    r3t	          d„ | D ¦   «         ¦  «        rt          d„ | D ¦   «         ¦  «        g} | S | }t          |¦  «        gS )Nc                ó,   — g | ]}t          |¦  «        ‘ŒS r9   )râ   ©rB   Úts     r,   rE   z_make_tools.<locals>.<listcomp>  s   € Ð.Ð.Ð. 1•˜A‘”Ð.Ð.Ð.r.   r   c              3  óF   K  — | ]}t          |j        ¦  «        d k    V — ŒdS )r   N)rx   rÄ   rö   s     r,   ú	<genexpr>z_make_tools.<locals>.<genexpr>  s2   è è € Ð!SÐ!SÈ¥# aÔ&=Ñ">Ô">À!Ò"CÐ!SÐ!SÐ!SÐ!SÐ!SÐ!Sr.   c                ó(   — g | ]}|j         d          ‘ŒS )r   rÉ   rö   s     r,   rE   z_make_tools.<locals>.<listcomp>  s    € Ð KÐ KÐ KÀ Ô!8¸Ô!;Ð KÐ KÐ Kr.   )r(   r   r   rx   Úallrâ   )rå   rÝ   s     r,   rè   rè     sœ   € Ý�%�Ñ"Ô"ð "­:°e½WÑ+EÔ+Eð "Ø.Ð.¨Ð.Ñ.Ô.ˆÝˆu‰:Œ:˜Š>ˆ>�cÐ!SÐ!SÈUÐ!SÑ!SÔ!SÑSÔSˆ>åÐ KÐ KÀUÐ KÑ KÔ KÑLÔLÐMˆEØˆàˆÝ˜4Ñ Ô Ð!Ð!r.   ÚlibúFunctionLibraryType | NoneúFunctionLibrary | Nonec                óX   — | €| S t          | t          ¦  «        r| S t          | ¬¦  «        S )N)rå   )r(   rä   )rü   s    r,   Úto_function_libraryr     s4   € Ø
€{Øˆ
Ý	�C�Ñ	)Ô	)ð *Øˆ
å SÐ)Ñ)Ô)Ð)r.   Ú	mode_autoÚautoÚmode_anyÚanyÚ	mode_noneÚnoneÚFunctionCallingModeTypeÚFunctionCallingModec                ón   — t          | t          ¦  «        r|                      ¦   «         } t          |          S r'   )r(   r)   r*   Ú_FUNCTION_CALLING_MODEr+   s    r,   Úto_function_calling_moder  ;  s,   € Ý�!•SÑÔð Ø�GŠG‰IŒIˆÝ! !Ô$Ð$r.   c                  ó$   — e Zd ZU ded<   ded<   dS )ÚFunctionCallingConfigDictr  Úmodez	list[str]Úallowed_function_namesNrÛ   r9   r.   r,   r  r  A  s*   € € € € € € Ø!Ð!Ð!Ñ!Ø%Ð%Ð%Ñ%Ð%Ð%r.   r  ÚobjÚFunctionCallingConfigTypeúprotos.FunctionCallingConfigc                ó¸  — t          | t          j        ¦  «        r| S t          | t          t          t
          f¦  «        rdt          | ¦  «        i} nwt          | t          ¦  «        r<|                      ¦   «         } |  	                    d¦  «        }t          |¦  «        | d<   n&t          dt          | ¦  «        j        › d�| ¦  «        ‚t          j        | ¦  «        S )Nr  zaInvalid argument type: Could not convert input to `protos.FunctionCallingConfig`. Received type: r»   )r(   r   ÚFunctionCallingConfigr  r)   Úintr  rI   r…   r[   r½   rt   rQ   )r  r  s     r,   Úto_function_calling_configr  K  sÔ   € Ý�#•vÔ3Ñ4Ô4ð 
Øˆ
Ý	�CÕ-­sµCÐ8Ñ	9Ô	9ð 
ØÕ/°Ñ4Ô4Ð5ˆˆÝ	�C�Ñ	Ô	ð 	
Ø�hŠh‰jŒjˆØ�wŠw�v‰ŒˆÝ.¨tÑ4Ô4ˆˆF‰ˆåð5Ý# C™yœyÔ1ð5ð 5ð 5àñ
ô 
ð 	
õ Ô'¨Ñ,Ô,Ð,r.   c                  ó   — e Zd ZU ded<   dS )ÚToolConfigDictr  Úfunction_calling_configNrÛ   r9   r.   r,   r  r  ^  s   € € € € € € Ø6Ð6Ð6Ñ6Ð6Ð6r.   r  ÚToolConfigTypeúprotos.ToolConfigc                ó"  — t          | t          j        ¦  «        r| S t          | t          ¦  «        r:|                      d¦  «        }t          |¦  «        }|| d<   t          j        di | ¤ŽS t          dt          | ¦  «        j        › d�¦  «        ‚)Nr  zVInvalid argument type: Could not convert input to `protos.ToolConfig`. Received type: r»   r9   )	r(   r   Ú
ToolConfigrI   r[   r  r½   rt   rQ   )r  Úfccs     r,   Úto_tool_configr  e  s¡   € Ý�#•vÔ(Ñ)Ô)ð 
Øˆ
Ý	�C�Ñ	Ô	ð 	
Ø�gŠgÐ/Ñ0Ô0ˆÝ(¨Ñ-Ô-ˆØ),ˆÐ%Ñ&ÝÔ Ð'Ð' 3Ð'Ð'Ð'åð4Ý" 3™iœiÔ0ð4ð 4ð 4ñ
ô 
ð 	
r.   )r"   r#   r$   r%   )r1   r2   r/   r3   r0   r4   r$   r5   )rV   r5   )r·   r¸   r$   r¹   )r¿   r¹   r$   rš   )rÝ   rÞ   r$   rÃ   )rå   rò   r$   ró   )rü   rý   r$   rþ   )r"   r  r$   r  )r  r  r$   r  )r  r  r$   r  )LÚ
__future__r   Úcollections.abcr   r   r   r;   Útypingr   r   r	   Útyping_extensionsr
   rL   Úgoogle.generativeair   Úgoogle.generativeai.typesr   r%   r  r)   r#   ÚTYPE_UNSPECIFIEDÚSTRINGÚNUMBERÚINTEGERÚBOOLEANÚARRAYÚOBJECTr!   rÜ   r-   rW   rP   r\   r_   r`   r^   r]   r‚   r‡   rI   Ú
StructTypeÚfloatÚboolré   r¨   r¡   r¸   r¾   rÁ   rÃ   rÚ   rÞ   râ   rä   rò   rè   ÚFunctionLibraryTyper   r  ÚModer  ÚAUTOÚANYÚNONEr
  r  r  r  r  r  r  r  r  r  r9   r.   r,   ú<module>r5     s9  ðð #Ð "Ð "Ð "Ð "Ð "Ð "à 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø €€€Ø €€€Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'à €€€à &Ð &Ð &Ð &Ð &Ð &Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3à„{€à�C˜˜d�NÔ#€ð'ØÔ˜4Ô0ð'à€tÔð'ð ˜Ô-ð'ð �4Ô(ð	'ð
 	„K�”ð'ð €t„{ð'ð �4”;ð'ð ˆdŒkð'ð 	„K�”ð'ð €t„{ð'ð �4”;ð'ð ˆdŒkð'ð 	„L�$”,ð'ð €t„|ð'ð �D”Lð'ð  ˆtŒ|ð!'ð" 	„L�$”,ð#'ð$ €t„|Ø�D”LØˆtŒ|Ø„J�”
Ø€t„zØ�$”*ØˆTŒZØ„K�”Ø€t„{Ø�4”;ØˆdŒkð9'ð '€
ð ð ð ñ ð@ð ð ð ð .2Ø%)ð	Jð Jð Jð Jð Jð JðZð ð ð.ð ð ðB
ð 
ð 
ð
+ð 
+ð 
+ð
ð 
ð 
ð#ð #ð #ð<ð ð ð ð8/Hð /Hð /Hð /Hð /Hñ /Hô /Hð /Hðd �#�{Ð"Ô#€
Ø�%˜˜d J°°[Ô0AÀ4ÐGÔH€	ðFð Fð Fð Fð FÐ"5ñ Fô Fð Fð0  ØØ
ÔØˆˆcˆ„NØˆS�#ˆXÔðôÐ ð
ð 
ð 
ð 
ð&ð ð ð ð%ð %ð %ð %ð %ñ %ô %ð %ðP9ð 9ð 9ð 9ð 9ˆyñ 9ô 9ð 9ð Øˆ&Œ+�x Ð*AÔ!BÐD[Ð[ô€ð
ð ð ð ð.!9ð !9ð !9ð !9ð !9ñ !9ô !9ð !9ðH �(˜8Ô$ hÐ.Ô/€	ð	"ð 	"ð 	"ð 	"ð ˜O¨YÐ6Ô7Ð ð*ð *ð *ð *ð Ô2Ô7Ð ð ÐÔØÔÐ1Ô6ØÐ$Ô)Ø
ÐÔ$àÐÔØÔÐ0Ô4ØÐ#Ô'Ø	ÐÔ"àÐÔØÔÐ1Ô6ØÐ$Ô)Ø
ÐÔ$ðÐ ð$  Ð 3°S¸#Ð =Ô>Ð ð%ð %ð %ð %ð&ð &ð &ð &ð & 	ñ &ô &ð &ð
 "ØÐ6¸Ô8TÐTôÐ ð
-ð -ð -ð -ð&7ð 7ð 7ð 7ð 7ñ 7ô 7ð 7ð �~ vÔ'8Ð8Ô9€ð
ð 
ð 
ð 
ð 
ð 
r.   