feat: add Skill Pydantic schemas
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
48
backend/app/schemas/skill.py
Normal file
48
backend/app/schemas/skill.py
Normal file
@@ -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}
|
||||||
Reference in New Issue
Block a user