mirror of
https://github.com/openswarm-ai/openswarm.git
synced 2026-08-24 05:22:22 +02:00
35 lines
878 B
Python
35 lines
878 B
Python
from pydantic import BaseModel, Field
|
|
from typing import Any, Optional
|
|
from uuid import uuid4
|
|
|
|
|
|
class Skill(BaseModel):
|
|
id: str = Field(default_factory=lambda: uuid4().hex)
|
|
name: str
|
|
description: str = ""
|
|
content: str
|
|
file_path: str = ""
|
|
command: str = ""
|
|
# Platform-shipped skills (e.g. App Builder): UI hides delete and DELETE returns 409, but content stays editable so users can tune them.
|
|
built_in: bool = False
|
|
|
|
|
|
class SkillCreate(BaseModel):
|
|
name: str
|
|
description: str = ""
|
|
content: str
|
|
command: str = ""
|
|
|
|
|
|
class SkillUpdate(BaseModel):
|
|
name: Optional[str] = None
|
|
description: Optional[str] = None
|
|
content: Optional[str] = None
|
|
command: Optional[str] = None
|
|
|
|
|
|
class SkillWorkspaceSeedRequest(BaseModel):
|
|
workspace_id: str
|
|
skill_content: Optional[str] = None
|
|
meta: Optional[dict[str, Any]] = None
|