@changw98ic/core 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,128 @@
1
+ /**
2
+ * Skill Schema - 通用 Skill 定义格式
3
+ *
4
+ * 设计目标:
5
+ * - 平台无关: 可编译到 Claude Code / OpenAI / Cursor / OpenClaw
6
+ * - 类型安全: 使用 Zod 进行运行时验证
7
+ * - 可扩展: 支持自定义工具和工作流
8
+ */
9
+ import { z } from 'zod';
10
+ // ============================================================================
11
+ // Tool Definition
12
+ // ============================================================================
13
+ export const ToolTypeSchema = z.enum([
14
+ 'read', // 读取文件
15
+ 'write', // 写入文件
16
+ 'edit', // 编辑文件
17
+ 'bash', // 执行命令
18
+ 'http', // HTTP 请求
19
+ 'task', // 子任务/Agent 调用
20
+ 'grep', // 搜索文件内容
21
+ 'glob', // 搜索文件路径
22
+ 'ask', // 用户交互
23
+ 'custom', // 自定义工具
24
+ ]);
25
+ export const ToolDefinitionSchema = z.object({
26
+ name: z.string().min(1),
27
+ type: ToolTypeSchema,
28
+ description: z.string().optional(),
29
+ schema: z.record(z.unknown()).optional(), // JSON Schema for parameters
30
+ required: z.boolean().default(false),
31
+ });
32
+ // ============================================================================
33
+ // Prompt Template
34
+ // ============================================================================
35
+ export const PromptRoleSchema = z.enum(['system', 'user', 'assistant']);
36
+ export const PromptTemplateSchema = z.object({
37
+ role: PromptRoleSchema,
38
+ content: z.string(),
39
+ condition: z.string().optional(), // 条件表达式(何时使用此 prompt)
40
+ template: z.string().optional(), // 模板文件路径(替代 content)
41
+ variables: z.record(z.string()).optional(), // 模板变量
42
+ });
43
+ // ============================================================================
44
+ // Workflow Step
45
+ // ============================================================================
46
+ export const WorkflowStepSchema = z.object({
47
+ step: z.string(), // Step ID (如 "Step 0", "Step 1")
48
+ name: z.string().optional(), // Step 名称
49
+ action: z.string(), // 动作描述
50
+ tools: z.array(z.string()).optional(), // 使用的工具名称
51
+ references: z.array(z.string()).optional(), // 参考文档路径
52
+ condition: z.string().optional(), // 条件表达式
53
+ optional: z.boolean().default(false), // 是否可选
54
+ timeout: z.number().optional(), // 超时时间(毫秒)
55
+ retry: z.number().optional(), // 重试次数
56
+ onFailure: z.enum(['abort', 'skip', 'continue']).default('abort'),
57
+ });
58
+ // ============================================================================
59
+ // Reference Loading
60
+ // ============================================================================
61
+ export const ReferenceLoadLevelSchema = z.enum(['L0', 'L1', 'L2', 'L3']);
62
+ export const ReferenceDefinitionSchema = z.object({
63
+ path: z.string(), // 文件路径(相对于 skill 目录)
64
+ purpose: z.string().optional(), // 用途说明
65
+ level: ReferenceLoadLevelSchema.default('L1'),
66
+ trigger: z.string().optional(), // 触发条件
67
+ });
68
+ // ============================================================================
69
+ // Success Criteria
70
+ // ============================================================================
71
+ export const SuccessCriterionSchema = z.object({
72
+ id: z.string(),
73
+ description: z.string(),
74
+ required: z.boolean().default(true),
75
+ validateCommand: z.string().optional(), // 验证命令
76
+ });
77
+ // ============================================================================
78
+ // Skill Definition
79
+ // ============================================================================
80
+ export const SkillSchema = z.object({
81
+ // 基本信息
82
+ name: z.string().min(1),
83
+ version: z.string().regex(/^\d+\.\d+\.\d+$/),
84
+ description: z.string(),
85
+ // 触发
86
+ triggers: z.array(z.string()).min(1), // 触发词/命令
87
+ // 工具
88
+ tools: z.array(ToolDefinitionSchema).min(1),
89
+ // 提示词
90
+ prompts: z.array(PromptTemplateSchema).min(1),
91
+ // 工作流
92
+ workflow: z.array(WorkflowStepSchema).min(1),
93
+ // 参考文档
94
+ references: z.array(ReferenceDefinitionSchema).optional(),
95
+ // 成功标准
96
+ successCriteria: z.array(SuccessCriterionSchema).optional(),
97
+ // 元数据
98
+ author: z.string().optional(),
99
+ license: z.string().default('GPL-3.0'),
100
+ keywords: z.array(z.string()).optional(),
101
+ homepage: z.string().url().optional(),
102
+ repository: z.string().url().optional(),
103
+ // 平台适配配置
104
+ adapters: z.record(z.unknown()).optional(),
105
+ });
106
+ // ============================================================================
107
+ // Skill Collection
108
+ // ============================================================================
109
+ export const SkillCollectionSchema = z.object({
110
+ name: z.string(),
111
+ version: z.string(),
112
+ description: z.string().optional(),
113
+ skills: z.array(SkillSchema),
114
+ });
115
+ // ============================================================================
116
+ // Validation Helper
117
+ // ============================================================================
118
+ export function validateSkill(data) {
119
+ return SkillSchema.parse(data);
120
+ }
121
+ export function safeValidateSkill(data) {
122
+ const result = SkillSchema.safeParse(data);
123
+ if (result.success) {
124
+ return { success: true, data: result.data };
125
+ }
126
+ return { success: false, error: result.error };
127
+ }
128
+ //# sourceMappingURL=skill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/types/skill.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC;IACnC,MAAM,EAAO,OAAO;IACpB,OAAO,EAAM,OAAO;IACpB,MAAM,EAAO,OAAO;IACpB,MAAM,EAAO,OAAO;IACpB,MAAM,EAAO,UAAU;IACvB,MAAM,EAAO,eAAe;IAC5B,MAAM,EAAO,SAAS;IACtB,MAAM,EAAO,SAAS;IACtB,KAAK,EAAQ,OAAO;IACpB,QAAQ,EAAK,QAAQ;CACtB,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAK,6BAA6B;IAC1E,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACrC,CAAC,CAAC;AAIH,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;AAIxE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,IAAI,EAAE,gBAAgB;IACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAY,sBAAsB;IAClE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAa,qBAAqB;IACjE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,OAAO;CACpD,CAAC,CAAC;AAIH,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAA4B,iCAAiC;IAC7E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAiB,UAAU;IACtD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAA0B,OAAO;IACnD,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAO,UAAU;IACtD,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,SAAS;IACrD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAY,QAAQ;IACpD,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAQ,OAAO;IACnD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAc,WAAW;IACvD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAgB,OAAO;IACnD,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;CAClE,CAAC,CAAC;AAIH,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAIzE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAA4B,qBAAqB;IACjE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAc,OAAO;IACnD,KAAK,EAAE,wBAAwB,CAAC,OAAO,CAAC,IAAI,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAc,OAAO;CACpD,CAAC,CAAC;AAIH,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACnC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAM,OAAO;CACpD,CAAC,CAAC;AAIH,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,OAAO;IACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC;IAC5C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IAEvB,KAAK;IACL,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAQ,SAAS;IAErD,KAAK;IACL,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAE3C,MAAM;IACN,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAE7C,MAAM;IACN,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAE5C,OAAO;IACP,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,QAAQ,EAAE;IAEzD,OAAO;IACP,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,QAAQ,EAAE;IAE3D,MAAM;IACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;IACtC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACrC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAEvC,SAAS;IACT,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAIH,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;CAC7B,CAAC,CAAC;AAIH,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,MAAM,UAAU,aAAa,CAAC,IAAa;IACzC,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAa;IAC7C,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IAC9C,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;AACjD,CAAC"}