Ë
    âß²j  ã                   óÜ   — d Z ddlZddlmZ ddlmZmZ ddlmZ ddl	m
Z
  G d„ de
«      Z ed	d
dddd ej                  dd«      j                  «       xs dddddddd¬«      Z ee«       y)uv  Meta Model API (Muse Spark) provider profile â€” https://api.meta.ai/v1.

Bundled from albertodepaola/hermes-meta-provider; rides entirely on
ProviderProfile hooks (zero core edits). The reasoning dial is emitted as a
top-level ``reasoning_effort`` kwarg â€” not ``extra_body.reasoning``, whose
emission is gated by a core host allowlist a third-party plugin must not edit.
é    N)ÚAny)ÚMETA_AI_EFFORTSÚclamp_effort)Úregister_provider)ÚProviderProfilec                   óž   ‡ — e Zd ZdZdZddddœdedz  dedz  ded	ee   dz  fˆ fd
„Zdddœde	dz  de
ded	ee	eef   e	eef   f   fd„Zˆ xZS )ÚMetaAIProfileu>   Meta Model API â€” top-level reasoning_effort, self-contained.)zmuse-image-zmuse-voice-Ng       @©Úapi_keyÚbase_urlÚtimeoutr   r   r   Úreturnc                ó˜   •‡— t         ‰| �  |||¬«      }|€y|D �‡cg c]"  Št        ˆfd„| j                  D «       «      s‰‘Œ$ c}S c c}w )z=Fetch and filter the live catalog, excluding non-chat models.r
   Nc              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­w)N)Ú
startswith)Ú.0ÚpÚms     €úM/home/ubuntu/.hermes/hermes-agent/plugins/model-providers/meta-ai/__init__.pyú	<genexpr>z-MetaAIProfile.fetch_models.<locals>.<genexpr>&   s   øè ø€ ÒH¨1�q—|‘| A—ÑHùs   ƒ)ÚsuperÚfetch_modelsÚanyÚ_NON_CHAT_PREFIXES)Úselfr   r   r   Úliver   Ú	__class__s        `€r   r   zMetaAIProfile.fetch_models   sX   ù€ ô ‰wÑ#¨G¸hÐPWÐ#ÓXˆØˆ<Øà÷
ØÜÓH°×0GÑ0GÔHÔHò ò
ð 	
ùò 
s   �'AF)Úreasoning_configÚsupports_reasoningr   r   Úcontextc                óü   — |xs i }t        |j                  d«      xs d«      j                  «       j                  «       }|j                  d«      du s|dk(  rd}nt	        |t
        «      }|t
        v r|nd}i d|ifS )	zñIgnores the core ``supports_reasoning`` gate (host-allowlist driven); Muse Spark always
        accepts ``reasoning_effort``. Muse 400s on ``none``: disabled/"none" -> ``minimal``
        (closest to off); unset/bespoke levels -> ``medium``.ÚeffortÚ ÚenabledFÚnoneÚminimalÚmediumÚreasoning_effort)ÚstrÚgetÚstripÚlowerr   r   )r   r   r   r    Úrcr"   ÚmappedÚclampeds           r   Úbuild_api_kwargs_extrasz%MetaAIProfile.build_api_kwargs_extras)   s€   € ð Ò# ˆÜ�R—V‘V˜HÓ%Ò+¨Ó,×2Ñ2Ó4×:Ñ:Ó<ˆØ�6‰6�)Ó Ñ%¨°6Ò)9Ø‰Fä" 6¬?Ó;ˆGØ '¬?Ñ :‘WÀˆFØÐ&¨Ð/Ð/Ð/ó    )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r)   ÚfloatÚlistr   ÚdictÚboolr   Útupler0   Ú__classcell__)r   s   @r   r	   r	      s¢   ø„ ÙHð
 8Ðð
 #Ø#Øò
ð �t‘ð
ð ˜‘*ð	
ð
 ð
ð 
ˆc‰�TÑ	õ
ð" 26ÐRWò0Ø#'¨$¡;ð0ØKOð0Ødgð0à	ˆt�C˜�H‰~˜t C¨ H™~Ð-Ñ	.÷0r1   r	   zmeta-ai)ÚmetaÚmusez
muse-sparkz	model-apiÚmslzMeta Model APIz4Meta Muse Spark family (Meta Superintelligence Labs)zhttps://developer.meta.com/ai/)ÚMODEL_API_KEYÚMETA_API_KEYÚMETA_MODEL_API_KEYÚMETA_BASE_URLrB   r#   zhttps://api.meta.ai/v1r   Úcodex_responsesTFzmuse-spark-1.2-contributori @  )zmuse-spark-1.2)ÚnameÚaliasesÚdisplay_nameÚdescriptionÚ
signup_urlÚenv_varsr   Ú	auth_typeÚapi_modeÚsupports_visionÚsupports_vision_tool_messagesÚdefault_aux_modelÚdefault_max_tokensÚfallback_models)r5   ÚosÚtypingr   Úagent.reasoning_effortr   r   Ú	providersr   Úproviders.baser   r	   Úgetenvr+   Úmeta_ai© r1   r   ú<module>rY      s‡   ðñó 
Ý ç @Ý 'Ý *ô%0�Oô %0ñP Ø	ÐNÐ]mØFØ/àUØˆR�Y‰Y�¨Ó+×1Ñ1Ó3ÒOÐ7OÐ[dð ð ¸à2àà'ô%€ñ* �'Õ r1   