§
    øžyjc  ã                   ó¤   — d Z ddlmZ ddlmZmZ ddlmZ ddlm	Z	 ddl
mZ  G d„ de¦  «        Z ed	d
ddddddd¬¦	  «	        Z e	e¦  «         dS )zNous Portal provider profile.é    )ÚAny)Úget_conversation_contextÚnous_portal_tags)Ú_cache_scope_from_session_id)Úregister_provider)ÚProviderProfilec                   ó¦   — e Zd ZdZddœdedefd„Zddœd	edz  deeef         fd
„Z	dddœdedz  dede
eeef         eeef         f         fd„ZdS )ÚNousProfileuD   Nous Portal â€” product tags, reasoning with Nous-specific omission.F©Úvisionr   Úreturnc                óN   — 	 ddl m}  ||¬¦  «        pdS # t          $ r Y dS w xY w)a°  Ask the Portal which cheap model it currently recommends.

        ``/api/nous/recommended-models`` is the authoritative, tier-aware
        source (free vs paid), so the auxiliary fast tier tracks the live
        catalog instead of a hardcoded id that 404s the day Nous retires it.
        The underlying fetch is memory- and disk-cached with a last-known-good
        fallback, so this is cheap to call and safe offline.
        r   )Úget_nous_recommended_aux_modelr   Ú )Úhermes_cli.modelsr   Ú	Exception)Úselfr   r   s      úK/home/ragecks/.hermes/hermes-agent/plugins/model-providers/nous/__init__.pyÚresolve_aux_modelzNousProfile.resolve_aux_model   sT   € ð	ØHÐHÐHÐHÐHÐHà1Ð1¸Ð@Ñ@Ô@ÐFÀBÐFøÝð 	ð 	ð 	Ø�2�2ð	øøøs   ‚ –
$£$N©Ú
session_idr   c                óª   — dt          |¬¦  «        i}t          t          ¦   «         p|¦  «        }|r||d<   |                     d¦  «        }|r||d<   |S )NÚtagsr   r   Úprovider_preferencesÚprovider)r   r   r   Úget)r   r   ÚcontextÚbodyÚ
sticky_keyr   s         r   Úbuild_extra_bodyzNousProfile.build_extra_body   sr   € ð !'Õ(8ÀJÐ(OÑ(OÔ(OÐPˆõ6 2Õ2JÑ2LÔ2LÐ2ZÐPZÑ[Ô[ˆ
Øð 	,Ø!+ˆD�ÑØ&Ÿ{š{Ð+AÑBÔBÐØð 	4Ø3ˆD�ÑØˆó    )Úreasoning_configÚsupports_reasoningr"   r#   c                ó€   — i }|r7|�-t          |¦  «        }|                     d¦  «        du rn||d<   ndddœ|d<   |i fS )z<Nous: passes full reasoning_config, but OMITS when disabled.NÚenabledFÚ	reasoningTÚmedium)r%   Úeffort)Údictr   )r   r"   r#   r   Ú
extra_bodyÚrcs         r   Úbuild_api_kwargs_extrasz#NousProfile.build_api_kwargs_extrasD   si   € ð ˆ
Øð 	PØÐ+ÝÐ*Ñ+Ô+�Ø—6’6˜)Ñ$Ô$¨Ð-Ð-Øà.0�J˜{Ñ+Ð+à6:ÀhÐ*OÐ*O�
˜;Ñ'Ø˜2ˆ~Ðr!   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚboolÚstrr   r)   r   r    Útupler,   © r!   r   r
   r
      së   € € € € € ØNÐNà27ð ð ð ¨4ð ¸Cð ð ð ð ð" +/ð$ð $ð $Ø  4™Zð$à	ˆc�3ˆhŒð$ð $ð $ð $ðR )-Ø#(ð	ð ð ð  ™+ðð !ð	ð 
ˆt�C˜�HŒ~˜t C¨ Hœ~Ð-Ô	.ðð ð ð ð ð r!   r
   Únous)znous-portalÚnousresearch)ÚNOUS_API_KEYzNous Researchu%   Nous Research â€” Hermes model familyzhttps://nousresearch.com/)zhermes-3-405bzhermes-3-70bz)https://inference-api.nousresearch.com/v1Úoauth_device_code)	ÚnameÚaliasesÚenv_varsÚdisplay_nameÚdescriptionÚ
signup_urlÚfallback_modelsÚbase_urlÚ	auth_typeN)r0   Útypingr   Úagent.portal_tagsr   r   Úagent.transports.codexr   Ú	providersr   Úproviders.baser   r
   r5   r4   r!   r   ú<module>rG      sî   ðØ #Ð #à Ð Ð Ð Ð Ð à HÐ HÐ HÐ HÐ HÐ HÐ HÐ HØ ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø *Ð *Ð *Ð *Ð *Ð *ðKð Kð Kð Kð K�/ñ Kô Kð Kð\ €{Ø	Ø+ØØ Ø7Ø*ðð 9Ø!ðñ ô €ð Ð �$Ñ Ô Ð Ð Ð r!   