Ë
    uPêjŒ  ã                   ó¶   — U 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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e«      Zeed<    G d„ de«      Zy)z8
Anthropic Skills API configuration and transformations
é    )ÚFinalN)ÚTypeAdapter)Úverbose_logger)Úencode_url_path_segment)ÚBaseSkillsAPIConfigÚLiteLLMLoggingObj)ÚCreateSkillRequestÚDeleteSkillResponseÚListSkillsParamsÚListSkillsResponseÚSkill)ÚGenericLiteLLMParams)ÚLlmProvidersÚ_RAW_JSON_PAYLOADc                   óŽ  — e Zd ZdZedefd„«       Zdededz  defd„Z		 dde
dz  d	e
d
e
dz  de
fd„Zdedededefd„Zdej                  dedefd„Zdedededee
ef   fd„Zdej                  dedefd„Zd
e
de
dededee
ef   f
d„Zdej                  dedefd„Zd
e
de
dededee
ef   f
d„Zdej                  dedefd„Zy)ÚAnthropicSkillsConfigz+Anthropic-specific Skills API configurationÚreturnc                 ó"   — t         j                  S ©N)r   Ú	ANTHROPIC)Úselfs    úq/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/anthropic/skills/transformation.pyÚcustom_llm_providerz)AnthropicSkillsConfig.custom_llm_provider    s   € ä×%Ñ%Ð%ó    ÚheadersÚlitellm_paramsNc                 óˆ  — ddl m} d}d}|�|j                  }|j                  }|j	                  ||«      }|€t        d«      ‚|j                  |«       d|d<   ddlm} d|vr||d<   nSt        |d   t        «      r||d   vr9|d   j                  |«       n$t        |d   t        «      r||d   vr
|d   |g|d<   d	|d
<   |S )zAdd Anthropic-specific headersr   ©ÚAnthropicModelInfoNzDANTHROPIC_API_KEY or ANTHROPIC_AUTH_TOKEN is required for Skills APIz
2023-06-01zanthropic-version)Ú!ANTHROPIC_SKILLS_API_BETA_VERSIONzanthropic-betazapplication/jsonzcontent-type)Ú#litellm.llms.anthropic.common_utilsr   Úapi_keyÚapi_baseÚget_auth_headerÚ
ValueErrorÚupdateÚlitellm.constantsr    Ú
isinstanceÚlistÚappendÚstr)r   r   r   r   r"   r#   Úauth_headerr    s           r   Úvalidate_environmentz*AnthropicSkillsConfig.validate_environment$   sü   € åJð ˆØˆØÐ%Ø$×,Ñ,ˆGØ%×.Ñ.ˆHà/×?Ñ?ÀÈÓRˆØÐÜÐcÓdÐdà�‰�{Ô#Ø'3ˆÐ#Ñ$õ 	Hà 7Ñ*Ø(IˆGÐ$Ò%Ü˜Ð 0Ñ1´4Ô8Ø0¸Ð@PÑ8QÑQØÐ(Ñ)×0Ñ0Ð1RÕSÜ˜Ð 0Ñ1´3Ô7Ø0¸Ð@PÑ8QÑQàÐ,Ñ-Ø5ð-�Ð(Ñ)ð
 #5ˆ�Ñàˆr   r#   ÚendpointÚskill_idc                 ól   — ddl m} |€|j                  «       }|rt        |d¬«      }|› d|› �S |› d|› �S )z)Get complete URL for Anthropic Skills APIr   r   r/   )Ú
field_namez/v1/skills/z/v1/)r!   r   Úget_api_baser   )r   r#   r.   r/   r   Úencoded_skill_ids         r   Úget_complete_urlz&AnthropicSkillsConfig.get_complete_urlI   sQ   € õ 	KàÐØ)×6Ñ6Ó8ˆHáÜ&=¸hÐS]Ô&^ÐØ�Z˜{Ð+;Ð*<Ð=Ð=Ø�˜4 ˜zÐ*Ð*r   Úcreate_requestc                 óŠ   — t        j                  d|«       |j                  «       D ��ci c]  \  }}|€Œ	||“Œ }}}|S c c}}w )z,Transform create skill request for Anthropicz%Transforming create skill request: %s)r   ÚdebugÚitems)r   r5   r   r   ÚkÚvÚrequest_bodys          r   Útransform_create_skill_requestz4AnthropicSkillsConfig.transform_create_skill_requestZ   sK   € ô 	×ÑÐDÀnÔUð 1?×0DÑ0DÓ0F×X©¨¨1È!É-˜q !™tÐXˆÑXàÐùó Ys   ª
?µ?Úraw_responseÚlogging_objc                 óž   — t         j                  |j                  «       «      }t        j                  d|«       t        j                  |«      S )ú,Transform Anthropic response to Skill objectz&Transforming create skill response: %s©r   Úvalidate_pythonÚjsonr   r7   r   Úmodel_validate©r   r=   r>   Úresponse_jsons       r   Útransform_create_skill_responsez5AnthropicSkillsConfig.transform_create_skill_responseh   s?   € ô  1×@Ñ@À×ARÑARÓATÓUˆÜ×ÑÐEÀ}ÔUä×#Ñ# MÓ2Ð2r   Úlist_paramsc                 óZ  — ddl m} |j                  |r|j                  nd«      }| j	                  |d¬«      }|j                  d«      }|j                  d«      }|j                  d«      }	d|fd|fd|	ffD �
�ci c]  \  }
}|sŒ	|
|“Œ }}
}t        j                  d	|«       ||fS c c}}
w )
z+Transform list skills request for Anthropicr   r   NÚskills)r#   r.   ÚlimitÚpageÚsourcezEList skills request made to Anthropic Skills endpoint with params: %s)r!   r   r2   r#   r4   Úgetr   r7   )r   rH   r   r   r   r#   ÚurlrK   rL   rM   ÚkeyÚvalueÚquery_paramss                r   Útransform_list_skills_requestz3AnthropicSkillsConfig.transform_list_skills_requests   sÈ   € õ 	Kà,×9Ñ9ÑUc¸.×:QÒ:QÐimÓnˆØ×*Ñ*°HÀxÐ*ÓPˆð #—‘ wÓ/ˆØ!—o‘o fÓ-ˆØ#Ÿ™¨Ó1ˆà+2°EÐ*:¸VÀT¸NÈXÐW]ÐL^Ð)_÷5
Ù%˜3 ÒchˆC�‰Jð5
ˆñ 5
ô 	×ÑØSØô	
ð
 �LÐ Ð ùó5
s   Á:
B'ÂB'c                 óž   — t         j                  |j                  «       «      }t        j                  d|«       t        j                  |«      S )z2Transform Anthropic response to ListSkillsResponsez%Transforming list skills response: %s)r   rB   rC   r   r7   r   rD   rE   s       r   Útransform_list_skills_responsez4AnthropicSkillsConfig.transform_list_skills_responseŽ   s?   € ô  1×@Ñ@À×ARÑARÓATÓUˆÜ×ÑÐDÀmÔTä!×0Ñ0°Ó?Ð?r   c                 ó^   — | j                  |d|¬«      }t        j                  d|«       ||fS )z)Transform get skill request for AnthropicrJ   ©r#   r.   r/   zGet skill request - URL: %s©r4   r   r7   ©r   r/   r#   r   r   rO   s         r   Útransform_get_skill_requestz1AnthropicSkillsConfig.transform_get_skill_request™   s7   € ð ×*Ñ*°HÀxÐZbÐ*Ócˆä×ÑÐ:¸CÔ@à�Gˆ|Ðr   c                 óž   — t         j                  |j                  «       «      }t        j                  d|«       t        j                  |«      S )r@   z#Transforming get skill response: %srA   rE   s       r   Útransform_get_skill_responsez2AnthropicSkillsConfig.transform_get_skill_response§   s?   € ô  1×@Ñ@À×ARÑARÓATÓUˆÜ×ÑÐBÀMÔRä×#Ñ# MÓ2Ð2r   c                 ó^   — | j                  |d|¬«      }t        j                  d|«       ||fS )z,Transform delete skill request for AnthropicrJ   rW   zDelete skill request - URL: %srX   rY   s         r   Útransform_delete_skill_requestz4AnthropicSkillsConfig.transform_delete_skill_request²   s7   € ð ×*Ñ*°HÀxÐZbÐ*Ócˆä×ÑÐ=¸sÔCà�Gˆ|Ðr   c                 óž   — t         j                  |j                  «       «      }t        j                  d|«       t        j                  |«      S )z3Transform Anthropic response to DeleteSkillResponsez&Transforming delete skill response: %s)r   rB   rC   r   r7   r
   rD   rE   s       r   Útransform_delete_skill_responsez5AnthropicSkillsConfig.transform_delete_skill_responseÀ   s?   € ô  1×@Ñ@À×ARÑARÓATÓUˆÜ×ÑÐEÀ}ÔUä"×1Ñ1°-Ó@Ð@r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úpropertyr   r   Údictr   r-   r+   r4   r	   r<   ÚhttpxÚResponser   r   rG   r   ÚtuplerS   r   rU   rZ   r\   r^   r
   r`   © r   r   r   r      sð  „ Ù5àð& \ò &ó ð&ð#¨Dð #ÐBVÐY]ÑB]ð #Ðbfó #ðR  $ñ	+à˜‘*ð+ð ð+ð ˜‘*ð	+ð
 
ó+ð"à*ðð -ðð ð	ð
 
óð	3à—n‘nð	3ð 'ð	3ð 
ó		3ð!à%ð!ð -ð!ð ð	!ð
 
ˆs�DˆyÑ	ó!ð6	@à—n‘nð	@ð 'ð	@ð 
ó		@ðàðð ðð -ð	ð
 ðð 
ˆs�DˆyÑ	óð	3à—n‘nð	3ð 'ð	3ð 
ó		3ðàðð ðð -ð	ð
 ðð 
ˆs�DˆyÑ	óð	Aà—n‘nð	Að 'ð	Að 
ô		Ar   r   )rd   Útypingr   rg   Úpydanticr   Úlitellm._loggingr   Ú$litellm.litellm_core_utils.url_utilsr   Ú+litellm.llms.base_llm.skills.transformationr   r   Ú#litellm.types.llms.anthropic_skillsr	   r
   r   r   r   Úlitellm.types.routerr   Úlitellm.types.utilsr   Úobjectr   Ú__annotations__r   rj   r   r   ú<module>ru      sS   ðòõ ã Ý  å +Ý H÷÷õ õ 6Ý ,á& vÓ.Ð �5Ó .ôlAÐ/õ lAr   