@optima-chat/optima-agent 0.4.29 → 0.4.30

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.
Files changed (177) hide show
  1. package/.claude/skills/ads/SKILL.md +0 -0
  2. package/.claude/skills/bi/SKILL.md +0 -0
  3. package/.claude/skills/collection/SKILL.md +0 -0
  4. package/.claude/skills/comfy/SKILL.md +0 -0
  5. package/.claude/skills/ffmpeg/SKILL.md +0 -0
  6. package/.claude/skills/homepage/SKILL.md +0 -0
  7. package/.claude/skills/i18n/SKILL.md +0 -0
  8. package/.claude/skills/inventory/SKILL.md +0 -0
  9. package/.claude/skills/markdown-pdf/SKILL.md +0 -0
  10. package/.claude/skills/merchant/SKILL.md +0 -0
  11. package/.claude/skills/order/SKILL.md +0 -0
  12. package/.claude/skills/product/SKILL.md +3 -19
  13. package/.claude/skills/product-page/SKILL.md +0 -0
  14. package/.claude/skills/review/SKILL.md +0 -0
  15. package/.claude/skills/scout/SKILL.md +0 -0
  16. package/README.md +0 -0
  17. package/dist/bin/bi-cli.d.ts +0 -0
  18. package/dist/bin/bi-cli.d.ts.map +0 -0
  19. package/dist/bin/bi-cli.js.map +0 -0
  20. package/dist/bin/comfy.d.ts +0 -0
  21. package/dist/bin/comfy.d.ts.map +0 -0
  22. package/dist/bin/comfy.js.map +0 -0
  23. package/dist/bin/commerce.d.ts +0 -0
  24. package/dist/bin/commerce.d.ts.map +0 -0
  25. package/dist/bin/commerce.js.map +0 -0
  26. package/dist/bin/google-ads.d.ts +0 -0
  27. package/dist/bin/google-ads.d.ts.map +0 -0
  28. package/dist/bin/google-ads.js.map +0 -0
  29. package/dist/bin/optima.d.ts +0 -0
  30. package/dist/bin/optima.d.ts.map +0 -0
  31. package/dist/bin/optima.js +3 -3
  32. package/dist/bin/optima.js.map +1 -1
  33. package/dist/bin/scout.d.ts +0 -0
  34. package/dist/bin/scout.d.ts.map +0 -0
  35. package/dist/bin/scout.js.map +0 -0
  36. package/dist/bin/serve.d.ts +0 -0
  37. package/dist/bin/serve.d.ts.map +0 -0
  38. package/dist/bin/serve.js +0 -0
  39. package/dist/bin/serve.js.map +0 -0
  40. package/dist/src/agent.d.ts +0 -0
  41. package/dist/src/agent.d.ts.map +0 -0
  42. package/dist/src/agent.js +0 -0
  43. package/dist/src/agent.js.map +0 -0
  44. package/dist/src/auth/device-flow.d.ts +0 -0
  45. package/dist/src/auth/device-flow.d.ts.map +0 -0
  46. package/dist/src/auth/device-flow.js +0 -0
  47. package/dist/src/auth/device-flow.js.map +0 -0
  48. package/dist/src/auth/index.d.ts +0 -0
  49. package/dist/src/auth/index.d.ts.map +0 -0
  50. package/dist/src/auth/index.js +0 -0
  51. package/dist/src/auth/index.js.map +0 -0
  52. package/dist/src/auth/token.d.ts +0 -0
  53. package/dist/src/auth/token.d.ts.map +0 -0
  54. package/dist/src/auth/token.js +0 -0
  55. package/dist/src/auth/token.js.map +0 -0
  56. package/dist/src/auth/types.d.ts +0 -0
  57. package/dist/src/auth/types.d.ts.map +0 -0
  58. package/dist/src/auth/types.js +0 -0
  59. package/dist/src/auth/types.js.map +0 -0
  60. package/dist/src/config.d.ts +0 -0
  61. package/dist/src/config.d.ts.map +0 -0
  62. package/dist/src/config.js +0 -0
  63. package/dist/src/config.js.map +0 -0
  64. package/dist/src/index.d.ts +3 -2
  65. package/dist/src/index.d.ts.map +1 -1
  66. package/dist/src/index.js +1 -1
  67. package/dist/src/index.js.map +1 -1
  68. package/dist/src/server/index.d.ts +0 -0
  69. package/dist/src/server/index.d.ts.map +0 -0
  70. package/dist/src/server/index.js +0 -0
  71. package/dist/src/server/index.js.map +0 -0
  72. package/dist/src/server/types.d.ts +0 -0
  73. package/dist/src/server/types.d.ts.map +0 -0
  74. package/dist/src/server/types.js +0 -0
  75. package/dist/src/server/types.js.map +0 -0
  76. package/dist/src/system-prompt.d.ts +0 -0
  77. package/dist/src/system-prompt.d.ts.map +0 -0
  78. package/dist/src/system-prompt.js +0 -0
  79. package/dist/src/system-prompt.js.map +0 -0
  80. package/dist/src/tools/memory.d.ts +0 -0
  81. package/dist/src/tools/memory.d.ts.map +0 -0
  82. package/dist/src/tools/memory.js +0 -0
  83. package/dist/src/tools/memory.js.map +0 -0
  84. package/dist/src/types.d.ts +0 -0
  85. package/dist/src/types.d.ts.map +0 -0
  86. package/dist/src/types.js +0 -0
  87. package/dist/src/types.js.map +0 -0
  88. package/dist/src/ui/conversation-manager.d.ts +0 -0
  89. package/dist/src/ui/conversation-manager.d.ts.map +0 -0
  90. package/dist/src/ui/conversation-manager.js +0 -0
  91. package/dist/src/ui/conversation-manager.js.map +0 -0
  92. package/dist/src/ui/headless-types.d.ts +0 -59
  93. package/dist/src/ui/headless-types.d.ts.map +1 -1
  94. package/dist/src/ui/headless-types.js +1 -0
  95. package/dist/src/ui/headless-types.js.map +1 -1
  96. package/dist/src/ui/headless.d.ts +16 -15
  97. package/dist/src/ui/headless.d.ts.map +1 -1
  98. package/dist/src/ui/headless.js +121 -192
  99. package/dist/src/ui/headless.js.map +1 -1
  100. package/dist/src/ui/index.d.ts +0 -0
  101. package/dist/src/ui/index.d.ts.map +0 -0
  102. package/dist/src/ui/index.js +0 -0
  103. package/dist/src/ui/index.js.map +0 -0
  104. package/dist/src/ui/stream.d.ts +0 -0
  105. package/dist/src/ui/stream.d.ts.map +0 -0
  106. package/dist/src/ui/stream.js +0 -0
  107. package/dist/src/ui/stream.js.map +0 -0
  108. package/dist/src/version.d.ts +0 -0
  109. package/dist/src/version.d.ts.map +0 -0
  110. package/dist/src/version.js +0 -0
  111. package/dist/src/version.js.map +0 -0
  112. package/package.json +9 -9
  113. package/.claude/settings.local.json +0 -79
  114. package/dist/src/hooks-loader.d.ts +0 -6
  115. package/dist/src/hooks-loader.d.ts.map +0 -1
  116. package/dist/src/hooks-loader.js +0 -215
  117. package/dist/src/hooks-loader.js.map +0 -1
  118. package/dist/src/ui/App.d.ts +0 -6
  119. package/dist/src/ui/App.d.ts.map +0 -1
  120. package/dist/src/ui/App.js +0 -164
  121. package/dist/src/ui/App.js.map +0 -1
  122. package/dist/src/ui/components/Composer.d.ts +0 -10
  123. package/dist/src/ui/components/Composer.d.ts.map +0 -1
  124. package/dist/src/ui/components/Composer.js +0 -13
  125. package/dist/src/ui/components/Composer.js.map +0 -1
  126. package/dist/src/ui/components/Header.d.ts +0 -7
  127. package/dist/src/ui/components/Header.d.ts.map +0 -1
  128. package/dist/src/ui/components/Header.js +0 -7
  129. package/dist/src/ui/components/Header.js.map +0 -1
  130. package/dist/src/ui/components/Message.d.ts +0 -12
  131. package/dist/src/ui/components/Message.d.ts.map +0 -1
  132. package/dist/src/ui/components/Message.js +0 -21
  133. package/dist/src/ui/components/Message.js.map +0 -1
  134. package/dist/src/ui/components/MessageList.d.ts +0 -9
  135. package/dist/src/ui/components/MessageList.d.ts.map +0 -1
  136. package/dist/src/ui/components/MessageList.js +0 -18
  137. package/dist/src/ui/components/MessageList.js.map +0 -1
  138. package/dist/src/ui/components/Spinner.d.ts +0 -6
  139. package/dist/src/ui/components/Spinner.d.ts.map +0 -1
  140. package/dist/src/ui/components/Spinner.js +0 -7
  141. package/dist/src/ui/components/Spinner.js.map +0 -1
  142. package/dist/src/ui/components/StatusBar.d.ts +0 -11
  143. package/dist/src/ui/components/StatusBar.d.ts.map +0 -1
  144. package/dist/src/ui/components/StatusBar.js +0 -7
  145. package/dist/src/ui/components/StatusBar.js.map +0 -1
  146. package/dist/src/ui/components/index.d.ts +0 -7
  147. package/dist/src/ui/components/index.d.ts.map +0 -1
  148. package/dist/src/ui/components/index.js +0 -7
  149. package/dist/src/ui/components/index.js.map +0 -1
  150. package/dist/src/validation/error-formatter.d.ts +0 -21
  151. package/dist/src/validation/error-formatter.d.ts.map +0 -1
  152. package/dist/src/validation/error-formatter.js +0 -98
  153. package/dist/src/validation/error-formatter.js.map +0 -1
  154. package/dist/src/validation/index.d.ts +0 -10
  155. package/dist/src/validation/index.d.ts.map +0 -1
  156. package/dist/src/validation/index.js +0 -10
  157. package/dist/src/validation/index.js.map +0 -1
  158. package/dist/src/validation/json-validator.d.ts +0 -25
  159. package/dist/src/validation/json-validator.d.ts.map +0 -1
  160. package/dist/src/validation/json-validator.js +0 -173
  161. package/dist/src/validation/json-validator.js.map +0 -1
  162. package/dist/src/validation/schema.d.ts +0 -353
  163. package/dist/src/validation/schema.d.ts.map +0 -1
  164. package/dist/src/validation/schema.js +0 -57
  165. package/dist/src/validation/schema.js.map +0 -1
  166. package/dist/src/validation/suggestions.d.ts +0 -25
  167. package/dist/src/validation/suggestions.d.ts.map +0 -1
  168. package/dist/src/validation/suggestions.js +0 -144
  169. package/dist/src/validation/suggestions.js.map +0 -1
  170. package/dist/src/validation/types.d.ts +0 -40
  171. package/dist/src/validation/types.d.ts.map +0 -1
  172. package/dist/src/validation/types.js +0 -5
  173. package/dist/src/validation/types.js.map +0 -1
  174. package/dist/src/validation/yaml-validator.d.ts +0 -25
  175. package/dist/src/validation/yaml-validator.d.ts.map +0 -1
  176. package/dist/src/validation/yaml-validator.js +0 -177
  177. package/dist/src/validation/yaml-validator.js.map +0 -1
@@ -1,353 +0,0 @@
1
- /**
2
- * 配置文件 Zod Schema 定义
3
- */
4
- import { z } from "zod";
5
- export declare const SkillYamlFrontmatterSchema: z.ZodObject<{
6
- name: z.ZodString;
7
- description: z.ZodOptional<z.ZodString>;
8
- version: z.ZodOptional<z.ZodString>;
9
- "user-invocable": z.ZodOptional<z.ZodBoolean>;
10
- "allowed-tools": z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
11
- hooks: z.ZodOptional<z.ZodEffects<z.ZodObject<{
12
- SessionStart: z.ZodOptional<z.ZodArray<z.ZodObject<{
13
- matcher: z.ZodOptional<z.ZodString>;
14
- hooks: z.ZodArray<z.ZodObject<{
15
- type: z.ZodLiteral<"command">;
16
- command: z.ZodString;
17
- }, "strip", z.ZodTypeAny, {
18
- type: "command";
19
- command: string;
20
- }, {
21
- type: "command";
22
- command: string;
23
- }>, "many">;
24
- }, "strip", z.ZodTypeAny, {
25
- hooks: {
26
- type: "command";
27
- command: string;
28
- }[];
29
- matcher?: string | undefined;
30
- }, {
31
- hooks: {
32
- type: "command";
33
- command: string;
34
- }[];
35
- matcher?: string | undefined;
36
- }>, "many">>;
37
- PreToolUse: z.ZodOptional<z.ZodArray<z.ZodObject<{
38
- matcher: z.ZodOptional<z.ZodString>;
39
- hooks: z.ZodArray<z.ZodObject<{
40
- type: z.ZodLiteral<"command">;
41
- command: z.ZodString;
42
- }, "strip", z.ZodTypeAny, {
43
- type: "command";
44
- command: string;
45
- }, {
46
- type: "command";
47
- command: string;
48
- }>, "many">;
49
- }, "strip", z.ZodTypeAny, {
50
- hooks: {
51
- type: "command";
52
- command: string;
53
- }[];
54
- matcher?: string | undefined;
55
- }, {
56
- hooks: {
57
- type: "command";
58
- command: string;
59
- }[];
60
- matcher?: string | undefined;
61
- }>, "many">>;
62
- PostToolUse: z.ZodOptional<z.ZodArray<z.ZodObject<{
63
- matcher: z.ZodOptional<z.ZodString>;
64
- hooks: z.ZodArray<z.ZodObject<{
65
- type: z.ZodLiteral<"command">;
66
- command: z.ZodString;
67
- }, "strip", z.ZodTypeAny, {
68
- type: "command";
69
- command: string;
70
- }, {
71
- type: "command";
72
- command: string;
73
- }>, "many">;
74
- }, "strip", z.ZodTypeAny, {
75
- hooks: {
76
- type: "command";
77
- command: string;
78
- }[];
79
- matcher?: string | undefined;
80
- }, {
81
- hooks: {
82
- type: "command";
83
- command: string;
84
- }[];
85
- matcher?: string | undefined;
86
- }>, "many">>;
87
- Stop: z.ZodOptional<z.ZodArray<z.ZodObject<{
88
- matcher: z.ZodOptional<z.ZodString>;
89
- hooks: z.ZodArray<z.ZodObject<{
90
- type: z.ZodLiteral<"command">;
91
- command: z.ZodString;
92
- }, "strip", z.ZodTypeAny, {
93
- type: "command";
94
- command: string;
95
- }, {
96
- type: "command";
97
- command: string;
98
- }>, "many">;
99
- }, "strip", z.ZodTypeAny, {
100
- hooks: {
101
- type: "command";
102
- command: string;
103
- }[];
104
- matcher?: string | undefined;
105
- }, {
106
- hooks: {
107
- type: "command";
108
- command: string;
109
- }[];
110
- matcher?: string | undefined;
111
- }>, "many">>;
112
- }, "strip", z.ZodTypeAny, {
113
- SessionStart?: {
114
- hooks: {
115
- type: "command";
116
- command: string;
117
- }[];
118
- matcher?: string | undefined;
119
- }[] | undefined;
120
- PreToolUse?: {
121
- hooks: {
122
- type: "command";
123
- command: string;
124
- }[];
125
- matcher?: string | undefined;
126
- }[] | undefined;
127
- PostToolUse?: {
128
- hooks: {
129
- type: "command";
130
- command: string;
131
- }[];
132
- matcher?: string | undefined;
133
- }[] | undefined;
134
- Stop?: {
135
- hooks: {
136
- type: "command";
137
- command: string;
138
- }[];
139
- matcher?: string | undefined;
140
- }[] | undefined;
141
- }, {
142
- SessionStart?: {
143
- hooks: {
144
- type: "command";
145
- command: string;
146
- }[];
147
- matcher?: string | undefined;
148
- }[] | undefined;
149
- PreToolUse?: {
150
- hooks: {
151
- type: "command";
152
- command: string;
153
- }[];
154
- matcher?: string | undefined;
155
- }[] | undefined;
156
- PostToolUse?: {
157
- hooks: {
158
- type: "command";
159
- command: string;
160
- }[];
161
- matcher?: string | undefined;
162
- }[] | undefined;
163
- Stop?: {
164
- hooks: {
165
- type: "command";
166
- command: string;
167
- }[];
168
- matcher?: string | undefined;
169
- }[] | undefined;
170
- }>, {
171
- SessionStart?: {
172
- hooks: {
173
- type: "command";
174
- command: string;
175
- }[];
176
- matcher?: string | undefined;
177
- }[] | undefined;
178
- PreToolUse?: {
179
- hooks: {
180
- type: "command";
181
- command: string;
182
- }[];
183
- matcher?: string | undefined;
184
- }[] | undefined;
185
- PostToolUse?: {
186
- hooks: {
187
- type: "command";
188
- command: string;
189
- }[];
190
- matcher?: string | undefined;
191
- }[] | undefined;
192
- Stop?: {
193
- hooks: {
194
- type: "command";
195
- command: string;
196
- }[];
197
- matcher?: string | undefined;
198
- }[] | undefined;
199
- }, {
200
- SessionStart?: {
201
- hooks: {
202
- type: "command";
203
- command: string;
204
- }[];
205
- matcher?: string | undefined;
206
- }[] | undefined;
207
- PreToolUse?: {
208
- hooks: {
209
- type: "command";
210
- command: string;
211
- }[];
212
- matcher?: string | undefined;
213
- }[] | undefined;
214
- PostToolUse?: {
215
- hooks: {
216
- type: "command";
217
- command: string;
218
- }[];
219
- matcher?: string | undefined;
220
- }[] | undefined;
221
- Stop?: {
222
- hooks: {
223
- type: "command";
224
- command: string;
225
- }[];
226
- matcher?: string | undefined;
227
- }[] | undefined;
228
- }>>;
229
- }, "strip", z.ZodTypeAny, {
230
- name: string;
231
- hooks?: {
232
- SessionStart?: {
233
- hooks: {
234
- type: "command";
235
- command: string;
236
- }[];
237
- matcher?: string | undefined;
238
- }[] | undefined;
239
- PreToolUse?: {
240
- hooks: {
241
- type: "command";
242
- command: string;
243
- }[];
244
- matcher?: string | undefined;
245
- }[] | undefined;
246
- PostToolUse?: {
247
- hooks: {
248
- type: "command";
249
- command: string;
250
- }[];
251
- matcher?: string | undefined;
252
- }[] | undefined;
253
- Stop?: {
254
- hooks: {
255
- type: "command";
256
- command: string;
257
- }[];
258
- matcher?: string | undefined;
259
- }[] | undefined;
260
- } | undefined;
261
- description?: string | undefined;
262
- version?: string | undefined;
263
- "user-invocable"?: boolean | undefined;
264
- "allowed-tools"?: string[] | undefined;
265
- }, {
266
- name: string;
267
- hooks?: {
268
- SessionStart?: {
269
- hooks: {
270
- type: "command";
271
- command: string;
272
- }[];
273
- matcher?: string | undefined;
274
- }[] | undefined;
275
- PreToolUse?: {
276
- hooks: {
277
- type: "command";
278
- command: string;
279
- }[];
280
- matcher?: string | undefined;
281
- }[] | undefined;
282
- PostToolUse?: {
283
- hooks: {
284
- type: "command";
285
- command: string;
286
- }[];
287
- matcher?: string | undefined;
288
- }[] | undefined;
289
- Stop?: {
290
- hooks: {
291
- type: "command";
292
- command: string;
293
- }[];
294
- matcher?: string | undefined;
295
- }[] | undefined;
296
- } | undefined;
297
- description?: string | undefined;
298
- version?: string | undefined;
299
- "user-invocable"?: boolean | undefined;
300
- "allowed-tools"?: string[] | undefined;
301
- }>;
302
- export type SkillYamlFrontmatter = z.infer<typeof SkillYamlFrontmatterSchema>;
303
- /**
304
- * OPTIMA.json / settings.json Schema
305
- */
306
- export declare const OptimaConfigSchema: z.ZodObject<{
307
- model: z.ZodOptional<z.ZodString>;
308
- theme: z.ZodOptional<z.ZodEnum<["dark", "light"]>>;
309
- ui: z.ZodOptional<z.ZodObject<{
310
- showTokens: z.ZodOptional<z.ZodBoolean>;
311
- showSkills: z.ZodOptional<z.ZodBoolean>;
312
- }, "strip", z.ZodTypeAny, {
313
- showTokens?: boolean | undefined;
314
- showSkills?: boolean | undefined;
315
- }, {
316
- showTokens?: boolean | undefined;
317
- showSkills?: boolean | undefined;
318
- }>>;
319
- server: z.ZodOptional<z.ZodObject<{
320
- port: z.ZodOptional<z.ZodNumber>;
321
- token: z.ZodOptional<z.ZodString>;
322
- }, "strip", z.ZodTypeAny, {
323
- port?: number | undefined;
324
- token?: string | undefined;
325
- }, {
326
- port?: number | undefined;
327
- token?: string | undefined;
328
- }>>;
329
- }, "strip", z.ZodTypeAny, {
330
- model?: string | undefined;
331
- theme?: "dark" | "light" | undefined;
332
- ui?: {
333
- showTokens?: boolean | undefined;
334
- showSkills?: boolean | undefined;
335
- } | undefined;
336
- server?: {
337
- port?: number | undefined;
338
- token?: string | undefined;
339
- } | undefined;
340
- }, {
341
- model?: string | undefined;
342
- theme?: "dark" | "light" | undefined;
343
- ui?: {
344
- showTokens?: boolean | undefined;
345
- showSkills?: boolean | undefined;
346
- } | undefined;
347
- server?: {
348
- port?: number | undefined;
349
- token?: string | undefined;
350
- } | undefined;
351
- }>;
352
- export type OptimaConfig = z.infer<typeof OptimaConfigSchema>;
353
- //# sourceMappingURL=schema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/validation/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA+BxB,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E;;GAEG;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
@@ -1,57 +0,0 @@
1
- /**
2
- * 配置文件 Zod Schema 定义
3
- */
4
- import { z } from "zod";
5
- /**
6
- * SKILL.md YAML Frontmatter Schema
7
- */
8
- // Hook 配置
9
- const HookConfigSchema = z.object({
10
- type: z.literal("command"),
11
- command: z.string().min(1, "command 不能为空"),
12
- });
13
- // Skill Hook 配置(单个事件的钩子配置)
14
- const SkillHookConfigSchema = z.object({
15
- matcher: z.string().optional(),
16
- hooks: z.array(HookConfigSchema).min(1, "hooks 数组至少需要一个元素"),
17
- });
18
- // Hooks 配置
19
- const HooksSchema = z
20
- .object({
21
- SessionStart: z.array(SkillHookConfigSchema).optional(),
22
- PreToolUse: z.array(SkillHookConfigSchema).optional(),
23
- PostToolUse: z.array(SkillHookConfigSchema).optional(),
24
- Stop: z.array(SkillHookConfigSchema).optional(),
25
- })
26
- .refine((hooks) => Object.keys(hooks).length > 0, {
27
- message: "hooks 至少需要定义一个事件(SessionStart/PreToolUse/PostToolUse/Stop)",
28
- });
29
- // SKILL.md Frontmatter
30
- export const SkillYamlFrontmatterSchema = z.object({
31
- name: z.string().min(1, "name 字段不能为空"),
32
- description: z.string().optional(),
33
- version: z.string().optional(),
34
- "user-invocable": z.boolean().optional(),
35
- "allowed-tools": z.array(z.string()).optional(),
36
- hooks: HooksSchema.optional(),
37
- });
38
- /**
39
- * OPTIMA.json / settings.json Schema
40
- */
41
- export const OptimaConfigSchema = z.object({
42
- model: z.string().optional(),
43
- theme: z.enum(["dark", "light"]).optional(),
44
- ui: z
45
- .object({
46
- showTokens: z.boolean().optional(),
47
- showSkills: z.boolean().optional(),
48
- })
49
- .optional(),
50
- server: z
51
- .object({
52
- port: z.number().int().min(1).max(65535).optional(),
53
- token: z.string().optional(),
54
- })
55
- .optional(),
56
- });
57
- //# sourceMappingURL=schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/validation/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AAEH,UAAU;AACV,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC;CAC3C,CAAC,CAAC;AAEH,2BAA2B;AAC3B,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC;CAC5D,CAAC,CAAC;AAEH,WAAW;AACX,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;IACvD,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;IACrD,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;IACtD,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;CAChD,CAAC;KACD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;IAChD,OAAO,EAAE,4DAA4D;CACtE,CAAC,CAAC;AAEL,uBAAuB;AACvB,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC;IACtC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACxC,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC/C,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAIH;;GAEG;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3C,EAAE,EAAE,CAAC;SACF,MAAM,CAAC;QACN,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAClC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;KACnC,CAAC;SACD,QAAQ,EAAE;IACb,MAAM,EAAE,CAAC;SACN,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;QACnD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC7B,CAAC;SACD,QAAQ,EAAE;CACd,CAAC,CAAC"}
@@ -1,25 +0,0 @@
1
- /**
2
- * 修复建议生成器
3
- */
4
- import type { ZodError } from "zod";
5
- /**
6
- * 从 Zod 错误生成修复建议
7
- */
8
- export declare function generateSuggestionsFromZodError(zodError: ZodError): string[];
9
- /**
10
- * 为 YAML 语法错误生成建议
11
- */
12
- export declare function generateYamlSyntaxSuggestions(errorMessage: string): string[];
13
- /**
14
- * 为 JSON 语法错误生成建议
15
- */
16
- export declare function generateJsonSyntaxSuggestions(errorMessage: string): string[];
17
- /**
18
- * 为 Skill 配置生成特定建议
19
- */
20
- export declare function generateSkillConfigSuggestions(path: string[]): string[];
21
- /**
22
- * 为 Optima 配置生成特定建议
23
- */
24
- export declare function generateOptimaConfigSuggestions(path: string[]): string[];
25
- //# sourceMappingURL=suggestions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"suggestions.d.ts","sourceRoot":"","sources":["../../../src/validation/suggestions.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAEpC;;GAEG;AACH,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,EAAE,CAiD5E;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CA8B5E;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CAuB5E;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CA6BvE;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAmBxE"}
@@ -1,144 +0,0 @@
1
- /**
2
- * 从 Zod 错误生成修复建议
3
- */
4
- export function generateSuggestionsFromZodError(zodError) {
5
- const suggestions = [];
6
- for (const issue of zodError.issues) {
7
- switch (issue.code) {
8
- case "invalid_type":
9
- suggestions.push(`字段 "${issue.path.join(".")}" 的类型应该是 ${issue.expected},但实际是 ${issue.received}`);
10
- break;
11
- case "invalid_enum_value":
12
- suggestions.push(`字段 "${issue.path.join(".")}" 只能是以下值之一: ${issue.options.join(", ")}`);
13
- break;
14
- case "too_small":
15
- if (issue.type === "string") {
16
- suggestions.push(`字段 "${issue.path.join(".")}" 至少需要 ${issue.minimum} 个字符`);
17
- }
18
- else if (issue.type === "array") {
19
- suggestions.push(`字段 "${issue.path.join(".")}" 至少需要 ${issue.minimum} 个元素`);
20
- }
21
- else if (issue.type === "number") {
22
- suggestions.push(`字段 "${issue.path.join(".")}" 的值不能小于 ${issue.minimum}`);
23
- }
24
- break;
25
- case "too_big":
26
- if (issue.type === "string") {
27
- suggestions.push(`字段 "${issue.path.join(".")}" 最多 ${issue.maximum} 个字符`);
28
- }
29
- else if (issue.type === "array") {
30
- suggestions.push(`字段 "${issue.path.join(".")}" 最多 ${issue.maximum} 个元素`);
31
- }
32
- else if (issue.type === "number") {
33
- suggestions.push(`字段 "${issue.path.join(".")}" 的值不能大于 ${issue.maximum}`);
34
- }
35
- break;
36
- case "invalid_literal":
37
- suggestions.push(`字段 "${issue.path.join(".")}" 必须是 "${issue.expected}"`);
38
- break;
39
- case "unrecognized_keys":
40
- suggestions.push(`未识别的字段: ${issue.keys.join(", ")}。请检查拼写是否正确`);
41
- break;
42
- default:
43
- suggestions.push(issue.message);
44
- }
45
- }
46
- return suggestions;
47
- }
48
- /**
49
- * 为 YAML 语法错误生成建议
50
- */
51
- export function generateYamlSyntaxSuggestions(errorMessage) {
52
- const suggestions = [];
53
- if (errorMessage.includes("indent") || errorMessage.includes("缩进")) {
54
- suggestions.push("检查 YAML 缩进是否正确(应使用 2 个空格)");
55
- suggestions.push("确保同级元素的缩进对齐");
56
- }
57
- if (errorMessage.includes("unexpected") || errorMessage.includes("意外")) {
58
- suggestions.push("检查是否有多余的冒号、逗号或引号");
59
- suggestions.push("确保字符串包含特殊字符时使用引号");
60
- }
61
- if (errorMessage.includes("mapping") || errorMessage.includes("键值对")) {
62
- suggestions.push("确保每个键后面有冒号和空格(key: value)");
63
- suggestions.push("检查是否有重复的键");
64
- }
65
- if (errorMessage.includes("sequence") || errorMessage.includes("列表")) {
66
- suggestions.push("列表项应以 '- ' 开头(破折号后有空格)");
67
- suggestions.push("确保列表项的缩进一致");
68
- }
69
- // 通用建议
70
- if (suggestions.length === 0) {
71
- suggestions.push("检查 YAML 语法是否正确");
72
- suggestions.push("可以使用在线 YAML 验证工具检查格式");
73
- }
74
- return suggestions;
75
- }
76
- /**
77
- * 为 JSON 语法错误生成建议
78
- */
79
- export function generateJsonSyntaxSuggestions(errorMessage) {
80
- const suggestions = [];
81
- if (errorMessage.includes("Unexpected token") || errorMessage.includes("意外的标记")) {
82
- suggestions.push("检查是否有多余的逗号(特别是最后一个元素后)");
83
- suggestions.push("确保所有字符串都用双引号包裹");
84
- suggestions.push("检查括号、方括号是否成对");
85
- }
86
- if (errorMessage.includes("Expected") || errorMessage.includes("期望")) {
87
- suggestions.push("检查是否缺少逗号、冒号或引号");
88
- suggestions.push("确保对象的键都是字符串(用双引号包裹)");
89
- }
90
- if (errorMessage.includes("position") || errorMessage.includes("位置")) {
91
- suggestions.push("检查指定位置附近的语法");
92
- }
93
- // 通用建议
94
- suggestions.push("可以使用 JSON 格式化工具检查格式");
95
- suggestions.push("JSON 不支持注释,请删除所有注释");
96
- return suggestions;
97
- }
98
- /**
99
- * 为 Skill 配置生成特定建议
100
- */
101
- export function generateSkillConfigSuggestions(path) {
102
- const suggestions = [];
103
- const field = path.join(".");
104
- if (field === "name") {
105
- suggestions.push("name 是必需字段,用于标识 skill");
106
- suggestions.push("name 应该使用小写字母和连字符,如 'my-skill'");
107
- }
108
- if (field === "description") {
109
- suggestions.push("description 建议填写,用于说明 skill 的功能");
110
- }
111
- if (field.includes("hooks")) {
112
- suggestions.push("hooks 支持的事件类型: SessionStart, PreToolUse, PostToolUse, Stop");
113
- suggestions.push("每个事件可以包含多个钩子配置");
114
- }
115
- if (field.includes("hooks") && field.includes("command")) {
116
- suggestions.push("command 应该是有效的 shell 命令");
117
- suggestions.push("可以使用 ${CLAUDE_PLUGIN_ROOT} 引用 skill 目录");
118
- }
119
- if (field.includes("matcher")) {
120
- suggestions.push("matcher 是可选的正则表达式,用于匹配特定的工具调用");
121
- suggestions.push("如果不需要匹配,可以省略 matcher 字段");
122
- }
123
- return suggestions;
124
- }
125
- /**
126
- * 为 Optima 配置生成特定建议
127
- */
128
- export function generateOptimaConfigSuggestions(path) {
129
- const suggestions = [];
130
- const field = path.join(".");
131
- if (field === "model") {
132
- suggestions.push("model 指定使用的 Claude 模型");
133
- suggestions.push("建议使用最新的模型以获得最佳性能");
134
- }
135
- if (field === "theme") {
136
- suggestions.push("theme 只能是 'dark' 或 'light'");
137
- }
138
- if (field.includes("server.port")) {
139
- suggestions.push("端口号必须是 1-65535 之间的整数");
140
- suggestions.push("确保端口未被其他程序占用");
141
- }
142
- return suggestions;
143
- }
144
- //# sourceMappingURL=suggestions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"suggestions.js","sourceRoot":"","sources":["../../../src/validation/suggestions.ts"],"names":[],"mappings":"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"}
@@ -1,40 +0,0 @@
1
- /**
2
- * 配置验证模块类型定义
3
- */
4
- export interface ValidationError {
5
- /** 错误类型 */
6
- type: "syntax" | "schema" | "semantic";
7
- /** 文件路径 */
8
- filePath: string;
9
- /** 错误消息 */
10
- message: string;
11
- /** 详细描述 */
12
- details?: string;
13
- /** 错误位置(行号) */
14
- line?: number;
15
- /** 错误位置(列号) */
16
- column?: number;
17
- /** 问题字段路径 */
18
- path?: string[];
19
- /** 修复建议 */
20
- suggestions: string[];
21
- /** 相关文档链接 */
22
- docUrl?: string;
23
- /** 示例配置路径 */
24
- examplePath?: string;
25
- }
26
- export interface ValidationResult {
27
- /** 是否验证成功 */
28
- valid: boolean;
29
- /** 验证错误列表 */
30
- errors: ValidationError[];
31
- /** 警告列表 */
32
- warnings?: ValidationError[];
33
- }
34
- export interface Validator<T> {
35
- /** 验证配置 */
36
- validate(content: string, filePath: string): ValidationResult;
37
- /** 解析配置(验证成功后) */
38
- parse(content: string): T | null;
39
- }
40
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/validation/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,eAAe;IAC9B,WAAW;IACX,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;IACvC,WAAW;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa;IACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW;IACX,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa;IACb,KAAK,EAAE,OAAO,CAAC;IACf,aAAa;IACb,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,WAAW;IACX,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,WAAW;IACX,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAAC;IAC9D,kBAAkB;IAClB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC;CAClC"}
@@ -1,5 +0,0 @@
1
- /**
2
- * 配置验证模块类型定义
3
- */
4
- export {};
5
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/validation/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}