§
    éŽ’jw  ã                  óx  — d Z ddlmZ ddlZddlZddlZddlmZ ddlZdZ	dZ
 G d„ deej        ¦  «        Z G d	„ d
eej        ¦  «        Z G d„ deej        ¦  «        Z G d„ dej        ej        ¦  «        Z G d„ dej        ¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ dej        ¦  «        ZdS )zÅModel configuration types for Google Antigravity SDK.

Defines the types used to configure model backends: which models to use,
how to authenticate, and model-specific options like thinking level.
é    )ÚannotationsN)ÚAnyzgemini-3.7-flashzgemini-3.1-flash-lite-imagec                  ó&   — e Zd ZdZdZdZdZdZdZdS )ÚThinkingLevela�  Thinking level for Gemini models that support extended thinking.

  Controls the amount of reasoning the model performs before responding.
  See https://ai.google.dev/gemini-api/docs/thinking#thinking-levels for
  details.

  Attributes:
    MINIMAL: Minimal thinking.
    LOW: Low thinking.
    MEDIUM: Medium thinking.
    HIGH: High thinking.
    EXTRA_HIGH: Extra-high thinking.
  ÚminimalÚlowÚmediumÚhighÚ
extra_highN)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚMINIMALÚLOWÚMEDIUMÚHIGHÚ
EXTRA_HIGH© ó    úGC:\Projects\DSCons\.venv\Lib\site-packages\google\antigravity\models.pyr   r   ,   s3   € € € € € ðð ð €'Ø€#Ø€&Ø	€$Ø€*€*€*r   r   c                  ó   — e Zd ZdZdZdZdZdS )ÚServiceTiera5  Service tier for Gemini model inference.

  Controls the compute queue priority and rate limit fallback behavior. See:
  https://ai.google.dev/gemini-api/docs/priority-inference

  Attributes:
    STANDARD: Standard processing tier.
    PRIORITY: Prioritized inference tier.
    FLEX: Flex processing tier.
  ÚstandardÚpriorityÚflexN)r   r   r   r   ÚSTANDARDÚPRIORITYÚFLEXr   r   r   r   r   B   s)   € € € € € ð	ð 	ð €(Ø€(Ø	€$€$€$r   r   c                  ó   — e Zd ZdZdZdZdS )Ú	ModelTypez Discriminator for model purpose.ÚtextÚimageN)r   r   r   r   ÚTEXTÚIMAGEr   r   r   r!   r!   S   s   € € € € € Ø(Ð(à	€$Ø
€%€%€%r   r!   c                  óR   — e Zd ZU dZdZded<   dZded<   ej        d
d	„¦   «         Z	dS )ÚModelEndpointz7Base class for model endpoint authentication & routing.Nú
str | NoneÚbase_urlzdict[str, str] | NoneÚhttp_headersÚreturnÚNonec                ó   — dS )z,Validates the configuration of the endpoint.Nr   ©Úselfs    r   Úvalidate_endpointzModelEndpoint.validate_endpoint`   s	   € ð 	€Dr   ©r+   r,   )
r   r   r   r   r)   Ú__annotations__r*   ÚabcÚabstractmethodr0   r   r   r   r'   r'   Z   s`   € € € € € € Ø?Ð?à€(ÐÐÐÑØ(,€,Ð,Ð,Ð,Ñ,àÔð	ð 	ð 	ñ Ôð	ð 	ð 	r   r'   c                  ó0   — e Zd ZU dZdZded<   dZded<   dS )ÚGeminiModelOptionszGemini-specific model options.NzThinkingLevel | NoneÚthinking_levelzServiceTier | NoneÚservice_tier)r   r   r   r   r7   r2   r8   r   r   r   r6   r6   f   s:   € € € € € € Ø&Ð&à)-€.Ð-Ð-Ð-Ñ-Ø%)€,Ð)Ð)Ð)Ñ)Ð)Ð)r   r6   c                  ó8   — e Zd ZU dZdZded<   dZded<   d
d	„ZdS )ÚGeminiAPIEndpointz&Endpoint for the Gemini Developer API.Nr(   Úapi_keyúGeminiModelOptions | NoneÚoptionsr+   r,   c                ó†   — | j         rd S | j        s.t          j                             d¦  «        st          d¦  «        ‚d S d S )NÚGEMINI_API_KEYzrA Gemini API key is required. Set it via GEMINI_API_KEY environment variable or via LocalAgentConfig(api_key=...).)r)   r;   ÚosÚenvironÚgetÚ
ValueErrorr.   s    r   r0   z#GeminiAPIEndpoint.validate_endpoints   s\   € Ø„}ð Ø€fàŒLð �BœJŸNšNÐ+;Ñ<Ô<ð Ýð,ñô ð ðð ð ð r   r1   )r   r   r   r   r;   r2   r=   r0   r   r   r   r:   r:   m   sR   € € € € € € Ø.Ð.à€'ÐÐÐÑØ'+€'Ð+Ð+Ð+Ñ+ð	ð 	ð 	ð 	ð 	ð 	r   r:   c                  óš   — e Zd ZU dZdZded<   dZded<   dZded<   dZded<    e	j
        d	¬
¦  «        edd„¦   «         ¦   «         Zdd„ZdS )ÚVertexEndpointz#Endpoint for the Vertex AI backend.Nr(   ÚprojectÚlocationr;   r<   r=   Úbefore)ÚmodeÚdatar   r+   c                ó`  — t          |t          ¦  «        r˜|                     d¦  «        sƒ|                     d¦  «        sn|                     d¦  «        €"t          j                             d¦  «        |d<   |                     d¦  «        €"t          j                             d¦  «        |d<   |S )Nr)   r;   rF   ÚGOOGLE_CLOUD_PROJECTrG   ÚGOOGLE_CLOUD_LOCATION)Ú
isinstanceÚdictrB   r@   rA   )ÚclsrJ   s     r   Ú_populate_env_varsz!VertexEndpoint._populate_env_vars‡   sš   € õ �$�ÑÔð E d§h¢h¨zÑ&:Ô&:ð EØ�XŠX�iÑ Ô ð EØ�8Š8�IÑÔÐ&ÝœJŸNšNÐ+AÑBÔBˆ$ˆy‰/Ø�8Š8�JÑÔÐ'ÝœZŸ^š^Ð,CÑDÔDˆ$ˆzÑ
Ø€Kr   r,   c                óü   — | j         rd S t          | j        o| j        ¦  «        }t          | j        p| j        ¦  «        }t          | j        ¦  «        }|r|rt          d¦  «        ‚|s|st          d¦  «        ‚d S d S )NzbCannot specify both api_key (Express Mode) and project/location (Standard Mode) on VertexEndpoint.zDFor Vertex AI, either (project and location) or api_key must be set.)r)   ÚboolrF   rG   r;   rC   )r/   Úhas_regional_authÚhas_any_regional_argÚhas_express_auths       r   r0   z VertexEndpoint.validate_endpoint–   s±   € Ø„}ð Ø€få˜Tœ\Ð;¨d¬mÑ<Ô<ÐÝ ¤Ð =°´Ñ>Ô>ÐÝ˜DœLÑ)Ô)Ðàð Ð 0ð Ýð0ñô ð ð
 ð Ð!1ð ÝØ
Pñô ð ðð ð ð r   )rJ   r   r+   r   r1   )r   r   r   r   rF   r2   rG   r;   r=   ÚpydanticÚmodel_validatorÚclassmethodrQ   r0   r   r   r   rE   rE      s­   € € € € € € Ø+Ð+à€'ÐÐÐÑØ€(ÐÐÐÑØ€'ÐÐÐÑØ'+€'Ð+Ð+Ð+Ñ+à€8Ô Ð*Ñ*Ô*Øðð ð ñ „;ñ +Ô*ððð ð ð ð ð r   rE   c                  ó^   — e Zd ZU dZdZded<    ej        d„ ¬¦  «        Zded<   dZ	d	ed
<   dS )ÚModelTargetz!Configuration for a single model.Nr(   Únamec                 ó   — t           j        gS )N)r!   r$   r   r   r   ú<lambda>zModelTarget.<lambda>¯   s   € �yœ~Ð.€ r   )Údefault_factoryzlist[ModelType]ÚtypeszModelEndpoint | NoneÚendpoint)
r   r   r   r   r\   r2   rW   ÚFieldr`   ra   r   r   r   r[   r[   ª   sn   € € € € € € Ø)Ð)à€$ÐÐÐÑØ)˜8œ>Ø.Ð.ðñ ô €%ð ð ð ñ ð $(€(Ð'Ð'Ð'Ñ'Ð'Ð'r   r[   )r   Ú
__future__r   r3   Úenumr@   Útypingr   rW   ÚDEFAULT_MODELÚDEFAULT_IMAGE_GENERATION_MODELÚstrÚEnumr   r   r!   ÚABCÚ	BaseModelr'   r6   r:   rE   r[   r   r   r   ú<module>rl      sÚ  ððð ð #Ð "Ð "Ð "Ð "Ð "à 
€
€
€
Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ð Ð à €€€ð #€Ø!>Ð ðð ð ð ð �C˜œñ ô ð ð,ð ð ð ð �#�t”yñ ô ð ð"ð ð ð ð ��T”Yñ ô ð ð		ð 		ð 		ð 		ð 		�C”G˜XÔ/ñ 		ô 		ð 		ð*ð *ð *ð *ð *˜Ô+ñ *ô *ð *ðð ð ð ð ˜ñ ô ð ð$(ð (ð (ð (ð (�]ñ (ô (ð (ðV(ð (ð (ð (ð (�(Ô$ñ (ô (ð (ð (ð (r   