
    ic                         d Z ddlmZmZ ddlmZmZmZmZm	Z	 ddl
Z
ddlmZ ddlmZmZmZmZmZ ddlmZ ddlmZ er	dd	lmZ eZneZ G d
 de      Zy)z)
Base configuration class for Skills API
    )ABCabstractmethod)TYPE_CHECKINGAnyDictOptionalTupleNBaseLLMException)CreateSkillRequestDeleteSkillResponseListSkillsParamsListSkillsResponseSkill)GenericLiteLLMParams)LlmProviders)Loggingc                      e Zd ZdZd Zeedefd              Zede	de
e   de	fd       Ze	 dd	e
e   d
ede
e   defd       Zededede	defd       Zedej&                  dedefd       Zededede	deeef   fd       Zedej&                  dedefd       Zeded	edede	deeef   f
d       Zedej&                  dedefd       Zeded	edede	deeef   f
d       Zedej&                  dedefd       Z dede!de	de"fdZ#y)BaseSkillsAPIConfigz+Base configuration for Skills API providersc                      y N selfs    |/Users/manta/Documents/Projects/TheRoad-I1/.venv/lib/python3.12/site-packages/litellm/llms/base_llm/skills/transformation.py__init__zBaseSkillsAPIConfig.__init__    s        returnc                      y r   r   r   s    r   custom_llm_providerz'BaseSkillsAPIConfig.custom_llm_provider#   s     	r   headerslitellm_paramsc                     |S )z
        Validate and update headers with provider-specific requirements

        Args:
            headers: Base headers dictionary
            litellm_params: LiteLLM parameters

        Returns:
            Updated headers dictionary
        r   )r   r!   r"   s      r   validate_environmentz(BaseSkillsAPIConfig.validate_environment(   s	     r   Napi_baseendpointskill_idc                 *    |t        d      | d| S )a   
        Get the complete URL for the API request

        Args:
            api_base: Base API URL
            endpoint: API endpoint (e.g., 'skills', 'skills/{id}')
            skill_id: Optional skill ID for specific skill operations

        Returns:
            Complete URL
        zapi_base is requiredz/v1/)
ValueError)r   r%   r&   r'   s       r   get_complete_urlz$BaseSkillsAPIConfig.get_complete_url8   s'    $ 3444z**r   create_requestc                      y)a"  
        Transform create skill request to provider-specific format

        Args:
            create_request: Skill creation parameters
            litellm_params: LiteLLM parameters
            headers: Request headers

        Returns:
            Provider-specific request body
        Nr   )r   r+   r"   r!   s       r   transform_create_skill_requestz2BaseSkillsAPIConfig.transform_create_skill_requestN       $ 	r   raw_responselogging_objc                      yz
        Transform provider response to Skill object

        Args:
            raw_response: Raw HTTP response
            logging_obj: Logging object

        Returns:
            Skill object
        Nr   r   r/   r0   s      r   transform_create_skill_responsez3BaseSkillsAPIConfig.transform_create_skill_responseb         	r   list_paramsc                      y)a  
        Transform list skills request parameters

        Args:
            list_params: List parameters (pagination, filters)
            litellm_params: LiteLLM parameters
            headers: Request headers

        Returns:
            Tuple of (url, query_params)
        Nr   )r   r6   r"   r!   s       r   transform_list_skills_requestz1BaseSkillsAPIConfig.transform_list_skills_requestt   r.   r   c                      y)z
        Transform provider response to ListSkillsResponse

        Args:
            raw_response: Raw HTTP response
            logging_obj: Logging object

        Returns:
            ListSkillsResponse object
        Nr   r3   s      r   transform_list_skills_responsez2BaseSkillsAPIConfig.transform_list_skills_response   r5   r   c                      y)a  
        Transform get skill request

        Args:
            skill_id: Skill ID
            api_base: Base API URL
            litellm_params: LiteLLM parameters
            headers: Request headers

        Returns:
            Tuple of (url, headers)
        Nr   r   r'   r%   r"   r!   s        r   transform_get_skill_requestz/BaseSkillsAPIConfig.transform_get_skill_request       ( 	r   c                      yr2   r   r3   s      r   transform_get_skill_responsez0BaseSkillsAPIConfig.transform_get_skill_response   r5   r   c                      y)a  
        Transform delete skill request

        Args:
            skill_id: Skill ID
            api_base: Base API URL
            litellm_params: LiteLLM parameters
            headers: Request headers

        Returns:
            Tuple of (url, headers)
        Nr   r<   s        r   transform_delete_skill_requestz2BaseSkillsAPIConfig.transform_delete_skill_request   r>   r   c                      y)z
        Transform provider response to DeleteSkillResponse

        Args:
            raw_response: Raw HTTP response
            logging_obj: Logging object

        Returns:
            DeleteSkillResponse object
        Nr   r3   s      r   transform_delete_skill_responsez3BaseSkillsAPIConfig.transform_delete_skill_response   r5   r   error_messagestatus_codec                     t        |||      S )z-Get appropriate error class for the provider.)rF   messager!   r
   )r   rE   rF   r!   s       r   get_error_classz#BaseSkillsAPIConfig.get_error_class   s      #!
 	
r   r   )$__name__
__module____qualname____doc__r   propertyr   r   r    dictr   r   r$   strr*   r   r   r-   httpxResponseLiteLLMLoggingObjr   r4   r   r	   r8   r   r:   r=   r@   rB   r   rD   int	ExceptionrI   r   r   r   r   r      s   5 \    -56J-K	  
 #'	+3-+ + 3-	+
 
+ +* * - 	
 
 & nn ' 
	 " % - 	
 
sDy	 & nn ' 
	 "   -	
  
sDy	 * nn ' 
	 "   -	
  
sDy	 * nn ' 
	 "

 
 	

 

r   r   )rM   abcr   r   typingr   r   r   r   r	   rQ   )litellm.llms.base_llm.chat.transformationr   #litellm.types.llms.anthropic_skillsr   r   r   r   r   litellm.types.routerr   litellm.types.utilsr   *litellm.litellm_core_utils.litellm_loggingr   _LiteLLMLoggingObjrS   r   r   r   r   <module>r^      sM    $ < <  F  6 ,X*X
# X
r   