§
    	Êj¹  ã            
      ó4  — U d Z ddlmZ ddlmZ ddlmZ ddlmZ ed         Z	 ed¬	¦  «         G d
„ d¦  «        ¦   «         Z
d„  e
ddd¦  «         e
ddd¦  «         e
ddd¦  «        fD ¦   «         Zded<   ddddddddddœ	Zded<   ddddœZded<   d$d"„Zd#S )%zLModel registry: public model ids exposed on /v1/models and alias resolution.é    )Úannotations)Ú	dataclass)ÚLiteralé   )ÚInvalidRequest)ÚchatÚimageÚvideoT)Úfrozenc                  ó@   — e Zd ZU ded<   ded<   dZded<   dZded<   d	S )
Ú	ModelSpecÚstrÚidÚ	ModelKindÚkindÚ ÚdescriptionÚmuseÚowned_byN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r   r   © ó    ú0C:\Projects\Muse2API\src\muse2api\core\models.pyr   r      sF   € € € € € € à€G€G�GØ€O€O�OØ€KÐÐÐÑØ€HÐÐÐÑÐÐr   r   c                ó   — i | ]
}|j         |“ŒS r   )r   )Ú.0Úms     r   ú
<dictcomp>r       s,   € ð  ð  ð  à	ð „Dˆ!ð ð  ð  r   z	muse-chatr   zDefault muse.ai assistantz
muse-imager	   zText-to-image / image editingz
muse-videor
   z*Text-to-video / first-frame image-to-videozdict[str, ModelSpec]ÚMODELS)	zgpt-4ozgpt-4o-minizgpt-4.1zgpt-5zclaude-sonnet-4zdeepseek-chatzdall-e-3zgpt-image-1Úsorazdict[str, str]ÚALIASESzdict[ModelKind, str]ÚDEFAULT_BY_KINDÚnameú
str | Noner   r   Úreturnc                ó(  — | st           t          |                  S t                               | | ¦  «        }t                                |¦  «        }|€t           t          |                  S |j        |k    rt          d| › d|j        › d|› �¦  «        ‚|S )zÿResolve a client-supplied model name to a ``ModelSpec`` of the expected kind.

    Unknown names fall back to the default model of that kind; a known model of the
    wrong kind is rejected so that e.g. ``muse-video`` is never silently used for chat.
    Nzmodel 'z' is a z model, expected )r!   r$   r#   Úgetr   r   )r%   r   ÚkeyÚspecs       r   Úresolve_modelr,   3   s�   € ð ð -Ý•o dÔ+Ô,Ð,Ý
�+Š+�d˜DÑ
!Ô
!€CÝ�:Š:�c‰?Œ?€DØ€|Ý•o dÔ+Ô,Ð,Ø„y�DÒÐÝÐV tÐVÐV°D´IÐVÐVÐPTÐVÐVÑWÔWÐWØ€Kr   N)r%   r&   r   r   r'   r   )Ú__doc__Ú
__future__r   Údataclassesr   Útypingr   Úerrorsr   r   r   r!   r   r#   r$   r,   r   r   r   ú<module>r2      s•  ðØ RÐ RÐ Rà "Ð "Ð "Ð "Ð "Ð "à !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð à #Ð #Ð #Ð #Ð #Ð #àÐ,Ô-€	ð €�$ÐÑÔðð ð ð ð ñ ô ñ Ôðð ð  ð 	ˆ	�+˜vÐ'BÑCÔCØˆ	�, Ð)HÑIÔIØˆ	�, Ð)UÑVÔVðð ñ  ô  €ð ð ð ñ ð ØØØØ"Ø ØØØð
ð 
€ð 
ð 
ð 
ñ 
ð ØØð)ð )€ð ð ð ñ ðð ð ð ð ð r   