mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-08 03:08:45 +00:00
fix(skills): match zip folder name to skill name in SKILL.md for Anthropic API
Made-with: Cursor
This commit is contained in:
parent
3e1f343d1a
commit
88c4079b16
1 changed files with 11 additions and 5 deletions
|
|
@ -44,19 +44,25 @@ def create_skill_zip(skill_name: str, unique_suffix: Optional[str] = None):
|
|||
skill_dir = test_dir / skill_name
|
||||
|
||||
# Create a zip file containing the skill directory
|
||||
# When unique_suffix is set, folder name must match skill name in SKILL.md (Anthropic requirement)
|
||||
zip_folder_name = f"{skill_name}-{unique_suffix}" if unique_suffix else skill_name
|
||||
zip_path = test_dir / f"{skill_name}.zip"
|
||||
with zipfile.ZipFile(zip_path, "w", zipfile.ZIP_DEFLATED) as zf:
|
||||
zf.write(skill_dir, arcname=skill_name)
|
||||
|
||||
if unique_suffix is not None:
|
||||
# Rewrite SKILL.md with a unique name to avoid API conflicts
|
||||
# Rewrite SKILL.md with a unique name and use matching folder name
|
||||
skill_md = (skill_dir / "SKILL.md").read_text()
|
||||
skill_md = skill_md.replace(
|
||||
f"name: {skill_name}",
|
||||
f"name: {skill_name}-{unique_suffix}",
|
||||
f"name: {zip_folder_name}",
|
||||
)
|
||||
zf.writestr(f"{skill_name}/SKILL.md", skill_md)
|
||||
zf.writestr(f"{zip_folder_name}/SKILL.md", skill_md)
|
||||
# Add any other files in the skill dir (e.g. subdirs) under the new folder name
|
||||
for f in skill_dir.rglob("*"):
|
||||
if f.is_file() and f.name != "SKILL.md":
|
||||
rel = f.relative_to(skill_dir)
|
||||
zf.write(f, arcname=f"{zip_folder_name}/{rel}")
|
||||
else:
|
||||
zf.write(skill_dir, arcname=skill_name)
|
||||
zf.write(skill_dir / "SKILL.md", arcname=f"{skill_name}/SKILL.md")
|
||||
|
||||
try:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue