Ë
    uPêjÍ  ã                   ó    — d Z ddlmZmZ ddl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ÚAnyN©Ú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
dz  de	fd„«       Ze	 dd	edz  d
ededz  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    úp/home/oem/CyberBrain26-unified/.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_paramsNc                 ó   — |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   Ú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_url6   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_requestL   ó   � 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,   r-   s      r   Útransform_create_skill_responsez3BaseSkillsAPIConfig.transform_create_skill_response_   r+   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   r2   r   r   s       r   Útransform_list_skills_requestz1BaseSkillsAPIConfig.transform_list_skills_requestp   r+   r   c                  ó   — y)zÞ
        Transform provider response to ListSkillsResponse

        Args:
            raw_response: Raw HTTP response
            logging_obj: Logging object

        Returns:
            ListSkillsResponse object
        Nr   r0   s      r   Útransform_list_skills_responsez2BaseSkillsAPIConfig.transform_list_skills_responseƒ   r+   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+   r   c                  ó   — yr/   r   r0   s      r   Útransform_get_skill_responsez0BaseSkillsAPIConfig.transform_get_skill_response©   r+   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   r8   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   r0   s      r   Útransform_delete_skill_responsez3BaseSkillsAPIConfig.transform_delete_skill_responseÏ   r+   r   Úerror_messageÚstatus_codec                 ó   — t        |||¬«      S )z-Get appropriate error class for the provider.)rA   Úmessager   r   )r   r@   rA   r   s       r   Úget_error_classz#BaseSkillsAPIConfig.get_error_classà   s   € ô  Ø#Ø!Øô
ð 	
r   r   )"Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úpropertyr   r   r   Údictr   r!   Ústrr'   r	   r*   ÚhttpxÚResponseÚLiteLLMLoggingObjr   r1   r   Útupler4   r   r6   r9   r;   r=   r
   r?   ÚintÚ	ExceptionrD   r   r   r   r   r      s·  „ Ù5òð Øð \ò ó ó ðð ð¨Dð ÐBVÐY]ÑB]ð Ðbfò ó ðð ð
  $ñ	+à˜‘*ð+ð ð+ð ˜‘*ð	+ð
 
ò+ó ð+ð* ðà*ðð -ðð ð	ð
 
òó ðð$ ðà—n‘nðð 'ðð 
ò	ó ðð  ðà%ðð -ðð ð	ð
 
ˆs�DˆyÑ	òó ðð$ ðà—n‘nðð 'ðð 
ò	ó ðð  ðàðð ðð -ð	ð
 ðð 
ˆs�DˆyÑ	òó ðð( ðà—n‘nðð 'ðð 
ò	ó ðð  ðàðð ðð -ð	ð
 ðð 
ˆs�DˆyÑ	òó ðð( ðà—n‘nðð 'ðð 
ò	ó ðð 
àð
ð ð
ð ð	
ð
 
ô
r   r   )rH   Úabcr   r   Útypingr   r   rL   Ú)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   Ú_LiteLLMLoggingObjrN   r   r   r   r   ú<module>rZ      sJ   ðñ÷ $ß %ã å F÷õ õ 6Ý ,áÝXà*ÑàÐôN
˜#õ N
r   