Ë
    âß²jL  ã            
       óü   — d Z ddlmZ ddlmZ ddlmZmZmZ ddl	m
Z ddlmZ ddlmZmZ dd	d
e› �dœZdedefd„Z G d„ de«      Zdededededef
d„Z edddd«      Z edddd«      Z ee«        ee«       y)zxKimi / Moonshot provider profiles (chat_completions path; sk-kimi-* keys are
redirected to api.kimi.com/coding by core).é    )ÚAny)Úurlparse)ÚKIMI_K3_EFFORTSÚKIMI_K3_OVERRIDESÚthinking_toggle_extras)Ú__version__)Úregister_provider)ÚOMIT_TEMPERATUREÚProviderProfilez%https://hermes-agent.nousresearch.comzHermes AgentzHermesAgent/)zHTTP-RefererzX-Titlez
User-AgentÚbase_urlÚreturnc                 ó–  — 	 t        | «      }|j                  }|j                  j	                  «       dk(  xr„ |j
                  xs dj	                  «       dk(  xra |dv xr[ |j                  du xrK |j                  du xr; |j                  j                  d«      dv xr |j                   xr |j                   S # t        $ r Y yw xY w)	z7True only for Kimi Code's canonical HTTPS API surfaces.FÚhttpsÚ zapi.kimi.com)Ni»  Nú/>   ú
/coding/v1ú/coding)r   ÚportÚ
ValueErrorÚschemeÚlowerÚhostnameÚusernameÚpasswordÚpathÚrstripÚqueryÚfragment)r   Úpr   s      úQ/home/ubuntu/.hermes/hermes-agent/plugins/model-providers/kimi-coding/__init__.pyÚ_is_confirmed_kimi_coding_urlr!      s×   € ðÜ�XÓˆØ�v‰vˆð 	
�‰�‰Ó˜GÑ#ò 	_¨¯©Ò)9°r×(@Ñ(@Ó(BÀnÑ(Tò 	_ÐY]ÐalÐYlò 	_Ø�J‰J˜$Ðò	_Ø#$§:¡:°Ð#5ò	_à�F‰F�M‰M˜#ÓÐ";Ð;ò	_àDEÇGÁGÀò	_àTU×T^ÑT^ÐP^ðøô ò Ùðús   ‚B< Â<	CÃCc            
       ó�   ‡ — e 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edz  de	eee
f   eee
f   f   fd„Zˆ xZS )ÚKimiProfileuE   Kimi/Moonshot â€” temperature omitted, thinking xor reasoning_effort.Ng       @©Úapi_keyr   Útimeoutr%   r   r&   r   c                ób  •— |xs | j                   xs dj                  d«      }t        |«      }|r,t        |«      j                  j                  d«      dk(  r|dz  }t
        ‰| �  ||xs d|¬«      }|�|r|S |D �cg c]&  }|j                  «       j                  «       dk7  sŒ%|‘Œ( c}S c c}w )z˜Use Kimi Code's OpenAI-compatible surface for model discovery; the bare
        ``k3`` slug is only served there, so it is filtered off other endpoints.r   r   r   z/v1Nr$   Úk3)	r   r   r!   r   r   ÚsuperÚfetch_modelsÚstripr   )	Úselfr%   r   r&   Úeffective_baseÚconfirmed_coding_endpointÚmodelsÚmodelÚ	__class__s	           €r    r*   zKimiProfile.fetch_models$   s­   ø€ ð
 #Ò9 d§m¡mÒ9°r×AÑAÀ#ÓFˆÜ$AÀ.Ó$QÐ!Ù$¬°.Ó)A×)FÑ)F×)MÑ)MÈcÓ)RÐV_Ò)_Ø˜eÑ#ˆNÜ‘Ñ%¨gÀÒ@VÐRVÐ`gÐ%ÓhˆØˆ>Ñ6ØˆMØ#)ÖK˜%¨U¯[©[«]×-@Ñ-@Ó-BÀdÓ-J’ÒKÐKùÒKs   Á>&B,Â%B,)Úreasoning_configr2   c                ó,   — t        |t        t        «      S )z’Moonshot treats extra_body.thinking and reasoning_effort as mutually
        exclusive (400 on both): send effort when requested, else the toggle.)r   r   r   )r,   r2   Úcontexts      r    Úbuild_api_kwargs_extrasz#KimiProfile.build_api_kwargs_extras2   s   € ô
 &Ð&6¼ÔIZÓ[Ð[ó    )Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚstrÚfloatÚlistr*   ÚdictÚtupler   r5   Ú__classcell__)r1   s   @r    r#   r#   !   s†   ø„ ÙOð (,ÀDÐ[^òLØ ™*ðLØ7:¸T±zðLØSXðLà	ˆc‰�TÑ	õLð 26ò\Ø#'¨$¡;ð\à	ˆt�C˜�H‰~˜t C¨ H™~Ð-Ñ	.÷\r6   r#   ÚnameÚaliasesÚenv_varsc                 óJ   — t        | |||t        dt        t        «      d¬«      S )Ni }  zkimi-k2-turbo-preview)rA   rB   rC   r   Úfixed_temperatureÚdefault_max_tokensÚdefault_headersÚdefault_aux_model)r#   r
   r>   Ú_HEADERS)rA   rB   rC   r   s       r    Ú_kimirJ   :   s'   € ÜØ˜7¨XÀÜ*¸uÜœX›Ð:Qôð r6   zkimi-coding)ÚkimiÚmoonshotzkimi-for-coding)ÚKIMI_API_KEYÚKIMI_CODING_API_KEYzhttps://api.moonshot.ai/v1zkimi-coding-cn)zkimi-cnzmoonshot-cn)ÚKIMI_CN_API_KEYzhttps://api.moonshot.cn/v1N)r:   Útypingr   Úurllib.parser   Úagent.reasoning_effortr   r   r   Ú
hermes_clir   Ú_HERMES_VERSIONÚ	providersr	   Úproviders.baser
   r   rI   r;   Úboolr!   r#   r?   rJ   rK   Úkimi_cn© r6   r    ú<module>rZ      s¿   ðñ/õ Ý !ç ]Ñ ]Ý 5Ý 'ß <ð <ØØ  Ð 1Ð2ñ€ð¨Cð °Dó ô\�/ô \ð2�ð ˜eð ¨uð Àð Èó ñ ˆ]ÐCÐElØ)ó+€á
Ð Ð"<Ð>RÐTpÓ
q€á �$Ô Ù �'Õ r6   