
    i                     ~    d 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
          Z ee           dS )u  Custom / Ollama (local) provider profile.

Covers any endpoint registered as provider="custom", including local
Ollama instances. Key quirks:
  - ollama_num_ctx → extra_body.options.num_ctx (local context window)
  - reasoning_config disabled → extra_body.think = False
    )Any)register_provider)ProviderProfilec                        e Zd ZdZddddedz  dedz  dedeeeef         eeef         f         fdZ	dd	d
dedz  de
dee         dz  f fdZ xZS )CustomProfileuA   Custom/Ollama local provider — think=false and num_ctx support.N)reasoning_configollama_num_ctxr   r	   ctxreturnc                @   i }|r |                     di           }||d<   ||d<   |rut          |t                    r`|                     d          pd                                                                }|                     dd          }|dk    s|du rd|d	<   |i fS )
Noptionsnum_ctxeffort enabledTnoneFthink)get
isinstancedictstriplower)selfr   r	   r
   
extra_bodyr   _effort_enableds           L/home/piyush/.hermes/hermes-agent/plugins/model-providers/custom/__init__.pybuild_api_kwargs_extrasz%CustomProfile.build_api_kwargs_extras   s     &(
  	, nnY33G!/GI$+Jy!  	,
+;T B B 	,'++H55;BBDDJJLLG'++It<<H&  H$5$5&+
7#2~    g       @api_keytimeoutr!   r"   c                \    | j         sdS t                                          ||          S )z9Custom/Ollama: base_url is user-configured; fetch if set.Nr    )base_urlsuperfetch_models)r   r!   r"   	__class__s      r   r&   zCustomProfile.fetch_models*   s1     } 	4ww##GW#EEEr   )__name__
__module____qualname____doc__r   intr   tuplestrr   floatlistr&   __classcell__)r'   s   @r   r   r      s        KK
 )-%)	   + d
	
  
tCH~tCH~-	.   6 #		F 	F 	F t	F 		F
 
cT		F 	F 	F 	F 	F 	F 	F 	F 	F 	Fr   r   custom)ollamalocalvllmllamacppz	llama.cppz	llama-cpp r   )namealiasesenv_varsr$   N)	r+   typingr   	providersr   providers.baser   r   r2   r7   r   r   <module>r>      s           ' ' ' ' ' ' * * * * * *$F $F $F $F $FO $F $F $FN 
	 
 
 
  &     r   