39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
|
|
"""Skill 元数据定义 - Phase 9.1"""
|
|||
|
|
|
|||
|
|
from dataclasses import dataclass, field
|
|||
|
|
from typing import Any
|
|||
|
|
|
|||
|
|
|
|||
|
|
@dataclass
|
|||
|
|
class SkillMetadata:
|
|||
|
|
"""Skill 元数据"""
|
|||
|
|
|
|||
|
|
name: str # Skill 名称
|
|||
|
|
description: str # 描述
|
|||
|
|
version: str = "1.0.0" # 版本
|
|||
|
|
author: str = "" # 作者
|
|||
|
|
tags: list[str] = field(default_factory=list) # 标签
|
|||
|
|
triggers: list[str] = field(default_factory=list) # 触发关键词
|
|||
|
|
content: str = "" # Skill 内容(markdown)
|
|||
|
|
source: str = "local" # 来源:local, plugin, mcp, bundled
|
|||
|
|
source_id: str = "" # 来源 ID
|
|||
|
|
enabled: bool = True # 是否启用
|
|||
|
|
|
|||
|
|
def to_dict(self) -> dict[str, Any]:
|
|||
|
|
return {
|
|||
|
|
"name": self.name,
|
|||
|
|
"description": self.description,
|
|||
|
|
"version": self.version,
|
|||
|
|
"author": self.author,
|
|||
|
|
"tags": self.tags,
|
|||
|
|
"triggers": self.triggers,
|
|||
|
|
"content": self.content,
|
|||
|
|
"source": self.source,
|
|||
|
|
"source_id": self.source_id,
|
|||
|
|
"enabled": self.enabled,
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
@classmethod
|
|||
|
|
def from_dict(cls, data: dict[str, Any]) -> "SkillMetadata":
|
|||
|
|
return cls(**data)
|