Ë
    õ¡Ÿj5  ã                  óŠ   — d Z ddlmZ ddlZddlmZ ddlmZ  ej                  e	«      Z
e G d„ d«      «       Z	 	 	 	 	 	 d	d„Zy)
uÐ   
author: Yagnik Poshiya
organization: Webbrains Technologies Private Limited

Resolves the LLM provider + model identifier for a project agent
by reading public.project_agents.model_id â†’ public.models row.
é    )ÚannotationsN)Ú	dataclass)ÚClientc                  ó,   — e Zd ZU ded<   ded<   ded<   y)ÚResolvedModelÚstrÚprovider_nameÚmodel_identifierÚdisplay_nameN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© ó    úJ/var/www/html/agent-engine/apps/agents/rag-agent/src/llm/model_resolver.pyr   r      s   … àÓØÓØÔr   r   c                ód  — | j                  d«      j                  d«      j                  d|«      j                  dd«      j                  d«      j	                  «       }t        |j                  xs g «      }|st        j                  d|«       y |d   j                  d«      xs d	}t        |«      j                  «       st        j                  d
|«       y | j                  d«      j                  d«      j                  dt        |«      j                  «       «      j                  dd«      j                  d«      j	                  «       }t        |j                  xs g «      }|st        j                  d|«       y |d   }t        |j                  d«      xs d	«      j                  «       }t        |j                  d«      xs d	«      j                  «       }	t        |j                  d«      xs d	«      j                  «       }
|r|	st        j                  d|||	«       y t        ||	|
¬«      S )NÚproject_agentsÚmodel_idÚidÚ
is_deletedFé   z,resolve_model: project_agent not found id=%sr   Ú z2resolve_model: project_agent has no model_id id=%sÚmodelsz-provider_name, model_identifier, display_nameÚ	is_activeTz2resolve_model: model row not found for model_id=%sr	   r
   r   zIresolve_model: incomplete model row model_id=%s provider=%r identifier=%r)r	   r
   r   )ÚtableÚselectÚeqÚlimitÚexecuteÚlistÚdataÚloggerÚwarningÚgetr   ÚstripÚinfor   )ÚsupabaseÚproject_agent_idÚpa_qÚrowsr   Úmodel_qÚ
model_rowsÚrowÚproviderÚ
identifierÚdisplays              r   Úresolve_model_for_project_agentr2      sÍ  € ð
 	�‰Ð'Ó(ß	‰�
Ó	ß	‰ˆDÐ"Ó	#ß	‰ˆL˜%Ó	 ß	‰ˆq‹ß	‰‹ð 	ô �—	‘	’˜RÓ €DÙÜ�‰ÐEÐGWÔXØà�Q‘—‘˜JÓ'Ò-¨2€HÜˆx‹=×ÑÔ Ü�‰ÐHÐJZÔ[Øð 	�‰�xÓ ß	‰Ð?Ó	@ß	‰ˆD”#�h“-×%Ñ%Ó'Ó	(ß	‰ˆK˜Ó	ß	‰ˆq‹ß	‰‹ð ô �g—l‘lÒ( bÓ)€JÙÜ�‰ÐKÈXÔVØà
�Q‰-€CÜ�3—7‘7˜?Ó+Ò1¨rÓ2×8Ñ8Ó:€HÜ�S—W‘WÐ/Ó0Ò6°BÓ7×=Ñ=Ó?€JÜ�#—'‘'˜.Ó)Ò/¨RÓ0×6Ñ6Ó8€Gá™:Ü�‰ØWØ�h 
ô	
ð äØØ#Øôð r   )r(   r   r)   r   ÚreturnzResolvedModel | None)Ú__doc__Ú
__future__r   ÚloggingÚdataclassesr   r(   r   Ú	getLoggerr   r#   r   r2   r   r   r   ú<module>r9      sb   ðñõ #ã Ý !å à	ˆ×	Ñ	˜8Ó	$€ð ÷ð ó ðð3Øð3àð3ð ô3r   