From 672adf9287a68db36c1d658f22764dbb1249c049 Mon Sep 17 00:00:00 2001 From: "DESKTOP-72TV0V4\\caoxiaozhu" Date: Sat, 21 Mar 2026 11:27:36 +0800 Subject: [PATCH] feat: add Skill Pydantic schemas Co-Authored-By: Claude Opus 4.6 --- backend/app/schemas/skill.py | 48 ++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 backend/app/schemas/skill.py diff --git a/backend/app/schemas/skill.py b/backend/app/schemas/skill.py new file mode 100644 index 0000000..0420e5d --- /dev/null +++ b/backend/app/schemas/skill.py @@ -0,0 +1,48 @@ +from pydantic import BaseModel +from typing import Optional + + +class SkillCreate(BaseModel): + name: str + description: Optional[str] = None + instructions: str + agent_type: str # master/planner/executor/librarian/analyst + tools: list[str] = [] + required_context: list[str] = [] + output_format: Optional[str] = None + visibility: str = "private" + team_id: Optional[str] = None + is_active: bool = True + + +class SkillUpdate(BaseModel): + # All fields Optional + name: Optional[str] = None + description: Optional[str] = None + instructions: Optional[str] = None + agent_type: Optional[str] = None + tools: Optional[list[str]] = None + required_context: Optional[list[str]] = None + output_format: Optional[str] = None + visibility: Optional[str] = None + team_id: Optional[str] = None + is_active: Optional[bool] = None + + +class SkillOut(BaseModel): + id: str + name: str + description: Optional[str] + instructions: str + agent_type: str + tools: list[str] + required_context: list[str] + output_format: Optional[str] + visibility: str + team_id: Optional[str] + is_active: bool + owner_id: str + created_at: str + updated_at: str + + model_config = {"from_attributes": True}