o
    ưis	                     @   s\   d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	 ddl
mZ G dd	 d	eZdS )
a<  
OpenRouter Responses API Configuration.

OpenRouter supports the Responses API at https://openrouter.ai/api/v1/responses
with OpenAI-compatible request/response format, including reasoning with
encrypted_content for multi-turn stateless workflows.

Docs: https://openrouter.ai/docs/api/reference/responses/overview
    )OptionalN)OpenAIResponsesAPIConfig)get_secret_str)GenericLiteLLMParams)LlmProvidersc                   @   sh   e Zd ZdZedefddZdedede	e
 defdd	Zd
e	e dedefddZdefddZdS )OpenRouterResponsesAPIConfigaR  
    Configuration for OpenRouter's Responses API.

    Inherits from OpenAIResponsesAPIConfig since OpenRouter's Responses API
    is compatible with OpenAI's Responses API specification.

    Key difference from direct OpenAI:
    - Uses https://openrouter.ai/api/v1 as the API base
    - Uses OPENROUTER_API_KEY for authentication
    returnc                 C   s   t jS )N)r   Z
OPENROUTERself r   g/home/app/Keep/.python/lib/python3.10/site-packages/litellm/llms/openrouter/responses/transformation.pycustom_llm_provider    s   z0OpenRouterResponsesAPIConfig.custom_llm_providerheadersmodellitellm_paramsc                 C   sJ   |pt  }|jptjptdptd}|std|dd| i |S )NZOPENROUTER_API_KEYZ
OR_API_KEYzfOpenRouter API key is required. Set OPENROUTER_API_KEY environment variable or pass api_key parameter.AuthorizationzBearer )r   api_keylitellmr   
ValueErrorupdate)r
   r   r   r   r   r   r   r   validate_environment$   s"   

z1OpenRouterResponsesAPIConfig.validate_environmentapi_basec                 C   s*   |p
t jp
tdp
d}|d}| dS )NZOPENROUTER_API_BASEzhttps://openrouter.ai/api/v1/z
/responses)r   r   r   rstrip)r
   r   r   r   r   r   get_complete_url?   s   

z-OpenRouterResponsesAPIConfig.get_complete_urlc                 C   s   dS )z>OpenRouter does not support native WebSocket for Responses APIFr   r	   r   r   r   supports_native_websocketO   s   z6OpenRouterResponsesAPIConfig.supports_native_websocketN)__name__
__module____qualname____doc__propertyr   r   dictstrr   r   r   r   boolr   r   r   r   r   r      s*    

r   )r   typingr   r   Z,litellm.llms.openai.responses.transformationr   Zlitellm.secret_managers.mainr   Zlitellm.types.routerr   Zlitellm.types.utilsr   r   r   r   r   r   <module>   s    
