feat: add versioned skill configuration

This commit is contained in:
hailin
2026-07-14 13:47:36 +08:00
parent 11bab3e98f
commit ed3f6e8516
13 changed files with 668 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
from datetime import datetime
from typing import Any
from ninja import Schema
class SkillCreateIn(Schema):
code: str
name: str
description: str = ""
prompt_template: str = ""
input_schema: dict[str, Any] = {"type": "object"}
output_schema: dict[str, Any] = {"type": "object"}
example_input: dict[str, Any] = {}
class SkillDefinitionUpdateIn(Schema):
name: str | None = None
description: str | None = None
class SkillDraftUpdateIn(Schema):
prompt_template: str | None = None
input_schema: dict[str, Any] | None = None
output_schema: dict[str, Any] | None = None
example_input: dict[str, Any] | None = None
class SkillVersionOut(Schema):
id: int
version: int
status: str
prompt_template: str
input_schema: dict[str, Any]
output_schema: dict[str, Any]
example_input: dict[str, Any]
created_at: datetime
updated_at: datetime
published_at: datetime | None
class SkillDefinitionOut(Schema):
id: int
code: str
name: str
description: str
active_version: int | None
draft_version: int | None
updated_at: datetime
class SkillDetailOut(SkillDefinitionOut):
versions: list[SkillVersionOut]