§
    éŽ’j  ã                   ó`   — d Z ddlmZ ddlmZ ddlmZ ddlmZ  G d„ dej	        ¦  «        Z
dS )	zaLightweight strategy establishing connection to an external local OpenAI API (Ollama, LM Studio).é    )ÚAny)Úlocalharness_pb2)Útypes)Úlocal_connectionc                   óR   ‡ — e Zd ZdZdededefˆ fd„Zd
d„Zdej	        fˆ fd	„Z
ˆ xZS )ÚLocalOpenAIConnectionStrategyzVLightweight strategy establishing connection to an external local OpenAI API (Ollama).Úbase_urlÚ
model_nameÚkwargsc                óV   •— || _         || _         t          ¦   «         j        di |¤Ž d S )N© )Ú	_base_urlÚ_model_nameÚsuperÚ__init__)Úselfr	   r
   r   Ú	__class__s       €újC:\Projects\DSCons\.venv\Lib\site-packages\google\antigravity\connections\local\local_openai_connection.pyr   z&LocalOpenAIConnectionStrategy.__init__   s7   ø€ ð €D„NØ!€DÔØ…E�G„GÔÐÐ�vÐÐÐÐÐó    ÚreturnNc                 ó<   — | j         st          j        d¦  «        ‚dS )z;Validates that base_url is specified for OpenAI connection.z>LocalOpenAIConnectionStrategy requires a non-empty 'base_url'.N)r   r   ÚAntigravityValidationError)r   s    r   Ú_validate_connectionz2LocalOpenAIConnectionStrategy._validate_connection&   s.   € àŒ>ð ÝÔ,Ø
Jñô ð ðð r   c                 óú   •— t          ¦   «                              ¦   «         }t          j        | j        t          j        gt          j        | j        ¬¦  «        ¬¦  «        }|j         	                    |¦  «         |S )z?Clear Gemini config and populate external Gemma server details.)r	   )Únamer   Úgemma_endpoint)
r   Ú_build_harness_configr   ÚModelConfigr   ÚMODEL_TYPE_TEXTÚGemmaEndpointr   ÚmodelsÚappend)r   Úharness_configÚ	model_cfgr   s      €r   r   z3LocalOpenAIConnectionStrategy._build_harness_config-   sw   ø€ å‘W”W×2Ò2Ñ4Ô4€NÝ Ô,ØÔÝÔ/Ð0Ý'Ô5Ø”^ð
ñ 
ô 
ðñ ô €Ið Ô× Ò  Ñ+Ô+Ð+ØÐr   )r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústrr   r   r   r   ÚHarnessConfigr   Ú__classcell__)r   s   @r   r   r      sž   ø€ € € € € Ø^Ð^ð	ð ð	ð ð		ð
 ð	ð 	ð 	ð 	ð 	ð 	ðð ð ð ðÐ%5Ô%Cð ð ð ð ð ð ð ð ð ð r   r   N)r(   Útypingr   Úgoogle.antigravity.protor   Úgoogle.antigravityr   Ú$google.antigravity.connections.localr   ÚLocalConnectionStrategyr   r   r   r   ú<module>r1      sŽ   ðð hÐ gà Ð Ð Ð Ð Ð à 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø $Ð $Ð $Ð $Ð $Ð $Ø AÐ AÐ AÐ AÐ AÐ Að ð  ð  ð  ð  Ð$4Ô$Lñ  ô  ð  ð  ð  r   