50 lines
1.1 KiB
Python
50 lines
1.1 KiB
Python
"""Skill API schema(skills-design §4.1)。"""
|
||
|
||
from datetime import datetime
|
||
|
||
from pydantic import BaseModel, Field
|
||
|
||
from app.schemas.common import OrmModel
|
||
|
||
|
||
class SkillResponse(OrmModel):
|
||
id: str
|
||
name: str
|
||
description: str
|
||
trigger: str
|
||
prompt_fragment: str
|
||
tool_bindings: list[str] = Field(default_factory=list)
|
||
risk_level: str
|
||
status: str
|
||
created_at: datetime
|
||
updated_at: datetime
|
||
|
||
|
||
class CreateSkillRequest(BaseModel):
|
||
name: str = Field(min_length=1)
|
||
description: str = ""
|
||
trigger: str = ""
|
||
prompt_fragment: str = ""
|
||
tool_bindings: list[str] = Field(default_factory=list)
|
||
risk_level: str = "L1"
|
||
status: str = "enabled"
|
||
|
||
|
||
class UpdateSkillRequest(BaseModel):
|
||
description: str | None = None
|
||
trigger: str | None = None
|
||
prompt_fragment: str | None = None
|
||
tool_bindings: list[str] | None = None
|
||
risk_level: str | None = None
|
||
status: str | None = None
|
||
|
||
|
||
class ToolCapability(BaseModel):
|
||
"""统一能力列举项(builtin / mcp / skill 三源)。"""
|
||
|
||
name: str
|
||
description: str
|
||
source: str # builtin / mcp / skill
|
||
risk_level: str
|
||
status: str
|