@lokvis/schema 0.2.2 → 0.4.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.
- package/dist/capability-names.generated.d.ts +19 -0
- package/dist/capability-names.generated.d.ts.map +1 -0
- package/dist/capability-names.generated.js +38 -0
- package/dist/capability-names.generated.js.map +1 -0
- package/dist/validators.d.ts +53 -8
- package/dist/validators.d.ts.map +1 -1
- package/dist/validators.js +36 -10
- package/dist/validators.js.map +1 -1
- package/dist/workflow.d.ts +22 -0
- package/dist/workflow.d.ts.map +1 -1
- package/dist/workflow.js.map +1 -1
- package/package.json +1 -1
- package/src/capability-names.generated.ts +88 -0
- package/src/validators.ts +39 -12
- package/src/workflow.ts +23 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AUTO-GENERATED BY scripts/codegen-capabilities.ts — DO NOT EDIT.
|
|
3
|
+
*
|
|
4
|
+
* 来源:packages/capability/manifests/ai.manifest.json, packages/capability/manifests/audio.manifest.json, packages/capability/manifests/image.manifest.json, packages/capability/manifests/pdf.manifest.json, packages/capability/manifests/video.manifest.json
|
|
5
|
+
* 重跑:pnpm codegen
|
|
6
|
+
*
|
|
7
|
+
* 此文件提供精确字面量联合类型 BuiltinCapabilityName,
|
|
8
|
+
* 用于 IDE 自动补全与编译期拼写检查。
|
|
9
|
+
*
|
|
10
|
+
* 注意:
|
|
11
|
+
* - `CapabilityName`(见 capability.ts)仍是 `string` 别名,
|
|
12
|
+
* 接受任意能力名(含第三方 plugin 注册的自定义能力)
|
|
13
|
+
* - `BuiltinCapabilityName` 是已知内置能力的字面量子集,
|
|
14
|
+
* 可作为 `CapabilityName` 的精确化类型
|
|
15
|
+
*/
|
|
16
|
+
export type BuiltinCapabilityName = 'ai.ocr' | 'ai.caption' | 'ai.background-remove' | 'ai.generate-workflow' | 'ai.optimize-workflow' | 'audio.trim' | 'audio.normalize' | 'audio.merge' | 'audio.transcode' | 'audio.denoise' | 'image.resize' | 'image.compress' | 'image.convert' | 'image.crop' | 'image.rotate' | 'image.flip' | 'image.watermark' | 'image.background' | 'image.filter' | 'pdf.merge' | 'pdf.split' | 'pdf.compress' | 'pdf.rotate' | 'pdf.watermark' | 'pdf.ocr' | 'pdf.sign' | 'pdf.add-page-numbers' | 'video.compress' | 'video.transcode' | 'video.trim' | 'video.merge' | 'video.extract-audio' | 'video.to-gif' | 'video.screenshot';
|
|
17
|
+
/** 全部内置能力名常量数组(运行时校验 / 枚举用) */
|
|
18
|
+
export declare const BUILTIN_CAPABILITY_NAMES: readonly BuiltinCapabilityName[];
|
|
19
|
+
//# sourceMappingURL=capability-names.generated.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability-names.generated.d.ts","sourceRoot":"","sources":["../src/capability-names.generated.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,qBAAqB,GAC7B,QAAQ,GACR,YAAY,GACZ,sBAAsB,GACtB,sBAAsB,GACtB,sBAAsB,GACtB,YAAY,GACZ,iBAAiB,GACjB,aAAa,GACb,iBAAiB,GACjB,eAAe,GACf,cAAc,GACd,gBAAgB,GAChB,eAAe,GACf,YAAY,GACZ,cAAc,GACd,YAAY,GACZ,iBAAiB,GACjB,kBAAkB,GAClB,cAAc,GACd,WAAW,GACX,WAAW,GACX,cAAc,GACd,YAAY,GACZ,eAAe,GACf,SAAS,GACT,UAAU,GACV,sBAAsB,GACtB,gBAAgB,GAChB,iBAAiB,GACjB,YAAY,GACZ,aAAa,GACb,qBAAqB,GACrB,cAAc,GACd,kBAAkB,CAAC;AAEvB,+BAA+B;AAC/B,eAAO,MAAM,wBAAwB,EAAE,SAAS,qBAAqB,EAmCpE,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/** 全部内置能力名常量数组(运行时校验 / 枚举用) */
|
|
2
|
+
export const BUILTIN_CAPABILITY_NAMES = [
|
|
3
|
+
'ai.ocr',
|
|
4
|
+
'ai.caption',
|
|
5
|
+
'ai.background-remove',
|
|
6
|
+
'ai.generate-workflow',
|
|
7
|
+
'ai.optimize-workflow',
|
|
8
|
+
'audio.trim',
|
|
9
|
+
'audio.normalize',
|
|
10
|
+
'audio.merge',
|
|
11
|
+
'audio.transcode',
|
|
12
|
+
'audio.denoise',
|
|
13
|
+
'image.resize',
|
|
14
|
+
'image.compress',
|
|
15
|
+
'image.convert',
|
|
16
|
+
'image.crop',
|
|
17
|
+
'image.rotate',
|
|
18
|
+
'image.flip',
|
|
19
|
+
'image.watermark',
|
|
20
|
+
'image.background',
|
|
21
|
+
'image.filter',
|
|
22
|
+
'pdf.merge',
|
|
23
|
+
'pdf.split',
|
|
24
|
+
'pdf.compress',
|
|
25
|
+
'pdf.rotate',
|
|
26
|
+
'pdf.watermark',
|
|
27
|
+
'pdf.ocr',
|
|
28
|
+
'pdf.sign',
|
|
29
|
+
'pdf.add-page-numbers',
|
|
30
|
+
'video.compress',
|
|
31
|
+
'video.transcode',
|
|
32
|
+
'video.trim',
|
|
33
|
+
'video.merge',
|
|
34
|
+
'video.extract-audio',
|
|
35
|
+
'video.to-gif',
|
|
36
|
+
'video.screenshot',
|
|
37
|
+
];
|
|
38
|
+
//# sourceMappingURL=capability-names.generated.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability-names.generated.js","sourceRoot":"","sources":["../src/capability-names.generated.ts"],"names":[],"mappings":"AAmDA,+BAA+B;AAC/B,MAAM,CAAC,MAAM,wBAAwB,GAAqC;IACxE,QAAQ;IACR,YAAY;IACZ,sBAAsB;IACtB,sBAAsB;IACtB,sBAAsB;IACtB,YAAY;IACZ,iBAAiB;IACjB,aAAa;IACb,iBAAiB;IACjB,eAAe;IACf,cAAc;IACd,gBAAgB;IAChB,eAAe;IACf,YAAY;IACZ,cAAc;IACd,YAAY;IACZ,iBAAiB;IACjB,kBAAkB;IAClB,cAAc;IACd,WAAW;IACX,WAAW;IACX,cAAc;IACd,YAAY;IACZ,eAAe;IACf,SAAS;IACT,UAAU;IACV,sBAAsB;IACtB,gBAAgB;IAChB,iBAAiB;IACjB,YAAY;IACZ,aAAa;IACb,qBAAqB;IACrB,cAAc;IACd,kBAAkB;CACnB,CAAC"}
|
package/dist/validators.d.ts
CHANGED
|
@@ -87,6 +87,17 @@ export declare const workflowEdgeSchema: z.ZodObject<{
|
|
|
87
87
|
from: string;
|
|
88
88
|
to: string;
|
|
89
89
|
}>;
|
|
90
|
+
/** E1: 多 target 输出定义 */
|
|
91
|
+
export declare const outputTargetSchema: z.ZodObject<{
|
|
92
|
+
name: z.ZodString;
|
|
93
|
+
params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
94
|
+
}, "strip", z.ZodTypeAny, {
|
|
95
|
+
name: string;
|
|
96
|
+
params?: Record<string, unknown> | undefined;
|
|
97
|
+
}, {
|
|
98
|
+
name: string;
|
|
99
|
+
params?: Record<string, unknown> | undefined;
|
|
100
|
+
}>;
|
|
90
101
|
export declare const workflowSchema: z.ZodObject<{
|
|
91
102
|
$schema: z.ZodOptional<z.ZodString>;
|
|
92
103
|
id: z.ZodString;
|
|
@@ -165,20 +176,38 @@ export declare const workflowSchema: z.ZodObject<{
|
|
|
165
176
|
outputs: z.ZodObject<{
|
|
166
177
|
type: z.ZodEnum<["image", "video", "audio", "pdf", "text", "data", "unknown", "archive"]>;
|
|
167
178
|
format: z.ZodOptional<z.ZodString>;
|
|
179
|
+
targets: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
180
|
+
name: z.ZodString;
|
|
181
|
+
params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
182
|
+
}, "strip", z.ZodTypeAny, {
|
|
183
|
+
name: string;
|
|
184
|
+
params?: Record<string, unknown> | undefined;
|
|
185
|
+
}, {
|
|
186
|
+
name: string;
|
|
187
|
+
params?: Record<string, unknown> | undefined;
|
|
188
|
+
}>, "many">>;
|
|
168
189
|
}, "strip", z.ZodTypeAny, {
|
|
169
190
|
type: "image" | "video" | "audio" | "pdf" | "text" | "data" | "unknown" | "archive";
|
|
170
191
|
format?: string | undefined;
|
|
192
|
+
targets?: {
|
|
193
|
+
name: string;
|
|
194
|
+
params?: Record<string, unknown> | undefined;
|
|
195
|
+
}[] | undefined;
|
|
171
196
|
}, {
|
|
172
197
|
type: "image" | "video" | "audio" | "pdf" | "text" | "data" | "unknown" | "archive";
|
|
173
198
|
format?: string | undefined;
|
|
199
|
+
targets?: {
|
|
200
|
+
name: string;
|
|
201
|
+
params?: Record<string, unknown> | undefined;
|
|
202
|
+
}[] | undefined;
|
|
174
203
|
}>;
|
|
175
204
|
official: z.ZodOptional<z.ZodBoolean>;
|
|
176
205
|
createdAt: z.ZodOptional<z.ZodNumber>;
|
|
177
206
|
updatedAt: z.ZodOptional<z.ZodNumber>;
|
|
178
207
|
}, "strip", z.ZodTypeAny, {
|
|
179
208
|
id: string;
|
|
180
|
-
version: string;
|
|
181
209
|
name: string;
|
|
210
|
+
version: string;
|
|
182
211
|
description: string;
|
|
183
212
|
author: {
|
|
184
213
|
id: string;
|
|
@@ -206,6 +235,10 @@ export declare const workflowSchema: z.ZodObject<{
|
|
|
206
235
|
outputs: {
|
|
207
236
|
type: "image" | "video" | "audio" | "pdf" | "text" | "data" | "unknown" | "archive";
|
|
208
237
|
format?: string | undefined;
|
|
238
|
+
targets?: {
|
|
239
|
+
name: string;
|
|
240
|
+
params?: Record<string, unknown> | undefined;
|
|
241
|
+
}[] | undefined;
|
|
209
242
|
};
|
|
210
243
|
$schema?: string | undefined;
|
|
211
244
|
official?: boolean | undefined;
|
|
@@ -213,8 +246,8 @@ export declare const workflowSchema: z.ZodObject<{
|
|
|
213
246
|
updatedAt?: number | undefined;
|
|
214
247
|
}, {
|
|
215
248
|
id: string;
|
|
216
|
-
version: string;
|
|
217
249
|
name: string;
|
|
250
|
+
version: string;
|
|
218
251
|
description: string;
|
|
219
252
|
author: {
|
|
220
253
|
id: string;
|
|
@@ -242,6 +275,10 @@ export declare const workflowSchema: z.ZodObject<{
|
|
|
242
275
|
outputs: {
|
|
243
276
|
type: "image" | "video" | "audio" | "pdf" | "text" | "data" | "unknown" | "archive";
|
|
244
277
|
format?: string | undefined;
|
|
278
|
+
targets?: {
|
|
279
|
+
name: string;
|
|
280
|
+
params?: Record<string, unknown> | undefined;
|
|
281
|
+
}[] | undefined;
|
|
245
282
|
};
|
|
246
283
|
$schema?: string | undefined;
|
|
247
284
|
official?: boolean | undefined;
|
|
@@ -266,8 +303,8 @@ export declare const pluginManifestSchema: z.ZodObject<{
|
|
|
266
303
|
}>;
|
|
267
304
|
permissions: z.ZodArray<z.ZodString, "many">;
|
|
268
305
|
}, "strip", z.ZodTypeAny, {
|
|
269
|
-
version: string;
|
|
270
306
|
name: string;
|
|
307
|
+
version: string;
|
|
271
308
|
description: string;
|
|
272
309
|
author: string;
|
|
273
310
|
license: string;
|
|
@@ -279,8 +316,8 @@ export declare const pluginManifestSchema: z.ZodObject<{
|
|
|
279
316
|
permissions: string[];
|
|
280
317
|
icon?: string | undefined;
|
|
281
318
|
}, {
|
|
282
|
-
version: string;
|
|
283
319
|
name: string;
|
|
320
|
+
version: string;
|
|
284
321
|
description: string;
|
|
285
322
|
author: string;
|
|
286
323
|
license: string;
|
|
@@ -322,8 +359,8 @@ export interface ValidateWorkflowOptions {
|
|
|
322
359
|
}
|
|
323
360
|
export declare function validateWorkflow(data: unknown, options?: ValidateWorkflowOptions): z.SafeParseError<{
|
|
324
361
|
id: string;
|
|
325
|
-
version: string;
|
|
326
362
|
name: string;
|
|
363
|
+
version: string;
|
|
327
364
|
description: string;
|
|
328
365
|
author: {
|
|
329
366
|
id: string;
|
|
@@ -351,6 +388,10 @@ export declare function validateWorkflow(data: unknown, options?: ValidateWorkfl
|
|
|
351
388
|
outputs: {
|
|
352
389
|
type: "image" | "video" | "audio" | "pdf" | "text" | "data" | "unknown" | "archive";
|
|
353
390
|
format?: string | undefined;
|
|
391
|
+
targets?: {
|
|
392
|
+
name: string;
|
|
393
|
+
params?: Record<string, unknown> | undefined;
|
|
394
|
+
}[] | undefined;
|
|
354
395
|
};
|
|
355
396
|
$schema?: string | undefined;
|
|
356
397
|
official?: boolean | undefined;
|
|
@@ -370,8 +411,8 @@ export declare function validateWorkflow(data: unknown, options?: ValidateWorkfl
|
|
|
370
411
|
success: true;
|
|
371
412
|
data: {
|
|
372
413
|
id: string;
|
|
373
|
-
version: string;
|
|
374
414
|
name: string;
|
|
415
|
+
version: string;
|
|
375
416
|
description: string;
|
|
376
417
|
author: {
|
|
377
418
|
id: string;
|
|
@@ -399,6 +440,10 @@ export declare function validateWorkflow(data: unknown, options?: ValidateWorkfl
|
|
|
399
440
|
outputs: {
|
|
400
441
|
type: "image" | "video" | "audio" | "pdf" | "text" | "data" | "unknown" | "archive";
|
|
401
442
|
format?: string | undefined;
|
|
443
|
+
targets?: {
|
|
444
|
+
name: string;
|
|
445
|
+
params?: Record<string, unknown> | undefined;
|
|
446
|
+
}[] | undefined;
|
|
402
447
|
};
|
|
403
448
|
$schema?: string | undefined;
|
|
404
449
|
official?: boolean | undefined;
|
|
@@ -409,8 +454,8 @@ export declare function validateWorkflow(data: unknown, options?: ValidateWorkfl
|
|
|
409
454
|
};
|
|
410
455
|
/** 校验 Plugin Manifest */
|
|
411
456
|
export declare function validatePluginManifest(data: unknown): z.SafeParseReturnType<{
|
|
412
|
-
version: string;
|
|
413
457
|
name: string;
|
|
458
|
+
version: string;
|
|
414
459
|
description: string;
|
|
415
460
|
author: string;
|
|
416
461
|
license: string;
|
|
@@ -422,8 +467,8 @@ export declare function validatePluginManifest(data: unknown): z.SafeParseReturn
|
|
|
422
467
|
permissions: string[];
|
|
423
468
|
icon?: string | undefined;
|
|
424
469
|
}, {
|
|
425
|
-
version: string;
|
|
426
470
|
name: string;
|
|
471
|
+
version: string;
|
|
427
472
|
description: string;
|
|
428
473
|
author: string;
|
|
429
474
|
license: string;
|
package/dist/validators.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe,0EAQ1B,CAAC;AAEH,kDAAkD;AAClD,eAAO,MAAM,sBAAsB,oHAWjC,CAAC;AAEH,+CAA+C;AAC/C,eAAO,MAAM,wBAAwB,qFASnC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS9B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU9B,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;EAG7B,CAAC;AAEH,eAAO,MAAM,cAAc
|
|
1
|
+
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe,0EAQ1B,CAAC;AAEH,kDAAkD;AAClD,eAAO,MAAM,sBAAsB,oHAWjC,CAAC;AAEH,+CAA+C;AAC/C,eAAO,MAAM,wBAAwB,qFASnC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS9B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU9B,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;EAG7B,CAAC;AAEH,wBAAwB;AACxB,eAAO,MAAM,kBAAkB;;;;;;;;;EAG7B,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyBzB,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW/B,CAAC;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,uBAAuB;IACtC,iDAAiD;IACjD,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK;QACpC,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB,GAAG,SAAS,CAAC;IACd,kBAAkB;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0IhF;AAqGD,yBAAyB;AACzB,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;GAEnD"}
|
package/dist/validators.js
CHANGED
|
@@ -59,6 +59,11 @@ export const workflowEdgeSchema = z.object({
|
|
|
59
59
|
from: z.string(),
|
|
60
60
|
to: z.string(),
|
|
61
61
|
});
|
|
62
|
+
/** E1: 多 target 输出定义 */
|
|
63
|
+
export const outputTargetSchema = z.object({
|
|
64
|
+
name: z.string(),
|
|
65
|
+
params: z.record(z.unknown()).optional(),
|
|
66
|
+
});
|
|
62
67
|
export const workflowSchema = z.object({
|
|
63
68
|
$schema: z.string().optional(),
|
|
64
69
|
id: z.string(),
|
|
@@ -79,6 +84,7 @@ export const workflowSchema = z.object({
|
|
|
79
84
|
outputs: z.object({
|
|
80
85
|
type: workflowOutputTypeSchema,
|
|
81
86
|
format: z.string().optional(),
|
|
87
|
+
targets: z.array(outputTargetSchema).optional(),
|
|
82
88
|
}),
|
|
83
89
|
official: z.boolean().optional(),
|
|
84
90
|
createdAt: z.number().optional(),
|
|
@@ -182,6 +188,16 @@ export function validateWorkflow(data, options) {
|
|
|
182
188
|
errors.push(`Workflow contains a cycle: only ${visited}/${wf.nodes.length} nodes are reachable.`);
|
|
183
189
|
}
|
|
184
190
|
}
|
|
191
|
+
// 4b. E1: 多 target 名称唯一性校验
|
|
192
|
+
if (wf.outputs.targets && wf.outputs.targets.length > 0) {
|
|
193
|
+
const seenTargetNames = new Set();
|
|
194
|
+
for (const target of wf.outputs.targets) {
|
|
195
|
+
if (seenTargetNames.has(target.name)) {
|
|
196
|
+
errors.push(`Duplicate output target name: "${target.name}". Target names must be unique.`);
|
|
197
|
+
}
|
|
198
|
+
seenTargetNames.add(target.name);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
185
201
|
// 5. W10.2: capability 兼容性校验(可选,仅在 resolveCapability 提供时)
|
|
186
202
|
// 检查相邻节点(通过 edge 连接)的 outputTypes 与下一节点的 inputTypes 是否有交集。
|
|
187
203
|
// - 线性链:edge.from → edge.to,from 节点的 outputTypes 与 to 节点的 inputTypes 交集为空则报错
|
|
@@ -228,21 +244,31 @@ function validateCapabilityCompatibility(wf, resolveCapability, errors) {
|
|
|
228
244
|
capCache.set(node.capability, cap);
|
|
229
245
|
return cap;
|
|
230
246
|
};
|
|
231
|
-
// 5a.
|
|
247
|
+
// 5a. 全节点 capability 注册校验(transform + input + output 均覆盖)
|
|
248
|
+
// B4 修复:原实现仅检查入度 0 节点,transform 节点的 unknown capability
|
|
249
|
+
// 在 5b 边检查中被静默跳过(`!fromCap || !toCap` continue),导致用户得到
|
|
250
|
+
// "校验通过"假象,运行时才报错。现拆分为两步:
|
|
251
|
+
// - 5a:全节点 unknown capability 检查(不区分入度)
|
|
252
|
+
// - 5a-in:输入节点 inputTypes 与 workflow.inputs.type 兼容性检查
|
|
232
253
|
for (const node of wf.nodes) {
|
|
233
|
-
if (
|
|
254
|
+
if (!node.capability)
|
|
234
255
|
continue;
|
|
235
256
|
const cap = getCap(node);
|
|
236
|
-
// 未注册的 capability 不静默跳过:在 schema
|
|
237
|
-
//
|
|
238
|
-
// 整个 capability 兼容性校验跳过(
|
|
257
|
+
// 未注册的 capability 不静默跳过:在 schema 层显式报错
|
|
258
|
+
// resolveCapability 未提供时(getCap 始终返回 undefined)
|
|
259
|
+
// 整个 capability 兼容性校验跳过(由 validateWorkflow 的 if 守卫保证)
|
|
239
260
|
if (!cap) {
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
`Capability is not registered in the registry.`);
|
|
243
|
-
}
|
|
244
|
-
continue;
|
|
261
|
+
errors.push(`Node "${node.id}" references unknown capability "${node.capability}". ` +
|
|
262
|
+
`Capability is not registered in the registry.`);
|
|
245
263
|
}
|
|
264
|
+
}
|
|
265
|
+
// 5a-in. 输入节点(入度 0)的 inputTypes 与 workflow.inputs.type 兼容
|
|
266
|
+
for (const node of wf.nodes) {
|
|
267
|
+
if ((inDegree.get(node.id) ?? 0) > 0)
|
|
268
|
+
continue;
|
|
269
|
+
const cap = getCap(node);
|
|
270
|
+
if (!cap)
|
|
271
|
+
continue; // 5a 已报告未注册 capability,此处不重复
|
|
246
272
|
const inputTypeMatches = cap.inputTypes.includes(wf.inputs.type);
|
|
247
273
|
if (!inputTypeMatches) {
|
|
248
274
|
errors.push(`Node "${node.id}" (capability "${node.capability}") expects input types ` +
|
package/dist/validators.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validators.js","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":"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"}
|
package/dist/workflow.d.ts
CHANGED
|
@@ -38,10 +38,32 @@ export interface WorkflowInput {
|
|
|
38
38
|
/** 文件类型过滤 */
|
|
39
39
|
accept?: string[];
|
|
40
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Workflow 输出 target(E1:多 target 机制)。
|
|
43
|
+
*
|
|
44
|
+
* 一个线性 Workflow 可通过 targets 定义多个输出端口,
|
|
45
|
+
* 每个 target 的 params 会浅合并到链上每个 transform 节点的 params 中
|
|
46
|
+
* (target params 优先),从而用单条链产出多个不同尺寸/参数的文件。
|
|
47
|
+
*
|
|
48
|
+
* 典型场景:社交媒体多平台图适配(一条 resize→compress→convert 链,
|
|
49
|
+
* 5 个 target 分别覆盖 width/height 产出 5 个尺寸)。
|
|
50
|
+
*/
|
|
51
|
+
export interface OutputTarget {
|
|
52
|
+
/** target 名称(如 "instagram"、"twitter"),同一 outputs 内不可重复 */
|
|
53
|
+
name: string;
|
|
54
|
+
/** 参数覆盖(浅合并到每个 transform 节点的 params) */
|
|
55
|
+
params?: Record<string, unknown>;
|
|
56
|
+
}
|
|
41
57
|
/** Workflow 输出定义 */
|
|
42
58
|
export interface WorkflowOutput {
|
|
43
59
|
type: AssetType | 'archive';
|
|
44
60
|
format?: string;
|
|
61
|
+
/**
|
|
62
|
+
* 多 target 输出(E1)。
|
|
63
|
+
* 存在且非空时,runtime 为每个 target 独立执行一次 transform 链,
|
|
64
|
+
* 产出 len(targets) 个文件。所有 target 共享同一 output type/format。
|
|
65
|
+
*/
|
|
66
|
+
targets?: OutputTarget[];
|
|
45
67
|
}
|
|
46
68
|
/** Workflow 作者信息 */
|
|
47
69
|
export interface WorkflowAuthor {
|
package/dist/workflow.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,oBAAoB;AACpB,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEvD,oBAAoB;AACpB,MAAM,WAAW,YAAY;IAC3B,cAAc;IACd,EAAE,EAAE,MAAM,CAAC;IACX,WAAW;IACX,IAAI,EAAE,QAAQ,CAAC;IACf;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW;IACX,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,8BAA8B;AAC9B,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,oBAAoB;AACpB,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,eAAe;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa;IACb,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,oBAAoB;AACpB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"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"}
|
package/dist/workflow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAwKH;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAkB;IACxD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK;SACzB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;SAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,gBAAgB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IAE/E,kCAAkC;IAClC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,sCAAsC;IACtC,8CAA8C;IAC9C,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;IAEtE,OAAO;QACL,WAAW,EACT,WAAW,QAAQ,CAAC,KAAK,CAAC,MAAM,mBAAmB,QAAQ,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QAC3F,YAAY;QACZ,WAAW,EAAE,0BAA0B,CAAC,QAAQ,CAAC;QACjD,OAAO,EAAE;YACP,KAAK,EAAE,EAAE,UAAU,EAAE,kBAAkB,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE;YAC/D,cAAc,EAAE,aAAa,QAAQ,CAAC,MAAM,CAAC,IAAI,aAAa,YAAY,EAAE;SAC7E;KACF,CAAC;AACJ,CAAC;AAED,kDAAkD;AAClD,SAAS,0BAA0B,CAAC,QAAkB;IACpD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;IACjC,MAAM,MAAM,GAA4B;QACtC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iCAAiC,QAAQ,CAAC,IAAI,QAAQ,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;aACpG;SACF;QACD,QAAQ,EAAE,CAAC,YAAY,CAAC;KACzB,CAAC;IACF,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,UAAsC,CAAC,UAAU,GAAG;YAC1D,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,WAAW,EAAE,iBAAiB,QAAQ,CAAC,IAAI,cAAc,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;SAClH,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AUTO-GENERATED BY scripts/codegen-capabilities.ts — DO NOT EDIT.
|
|
3
|
+
*
|
|
4
|
+
* 来源:packages/capability/manifests/ai.manifest.json, packages/capability/manifests/audio.manifest.json, packages/capability/manifests/image.manifest.json, packages/capability/manifests/pdf.manifest.json, packages/capability/manifests/video.manifest.json
|
|
5
|
+
* 重跑:pnpm codegen
|
|
6
|
+
*
|
|
7
|
+
* 此文件提供精确字面量联合类型 BuiltinCapabilityName,
|
|
8
|
+
* 用于 IDE 自动补全与编译期拼写检查。
|
|
9
|
+
*
|
|
10
|
+
* 注意:
|
|
11
|
+
* - `CapabilityName`(见 capability.ts)仍是 `string` 别名,
|
|
12
|
+
* 接受任意能力名(含第三方 plugin 注册的自定义能力)
|
|
13
|
+
* - `BuiltinCapabilityName` 是已知内置能力的字面量子集,
|
|
14
|
+
* 可作为 `CapabilityName` 的精确化类型
|
|
15
|
+
*/
|
|
16
|
+
export type BuiltinCapabilityName =
|
|
17
|
+
| 'ai.ocr'
|
|
18
|
+
| 'ai.caption'
|
|
19
|
+
| 'ai.background-remove'
|
|
20
|
+
| 'ai.generate-workflow'
|
|
21
|
+
| 'ai.optimize-workflow'
|
|
22
|
+
| 'audio.trim'
|
|
23
|
+
| 'audio.normalize'
|
|
24
|
+
| 'audio.merge'
|
|
25
|
+
| 'audio.transcode'
|
|
26
|
+
| 'audio.denoise'
|
|
27
|
+
| 'image.resize'
|
|
28
|
+
| 'image.compress'
|
|
29
|
+
| 'image.convert'
|
|
30
|
+
| 'image.crop'
|
|
31
|
+
| 'image.rotate'
|
|
32
|
+
| 'image.flip'
|
|
33
|
+
| 'image.watermark'
|
|
34
|
+
| 'image.background'
|
|
35
|
+
| 'image.filter'
|
|
36
|
+
| 'pdf.merge'
|
|
37
|
+
| 'pdf.split'
|
|
38
|
+
| 'pdf.compress'
|
|
39
|
+
| 'pdf.rotate'
|
|
40
|
+
| 'pdf.watermark'
|
|
41
|
+
| 'pdf.ocr'
|
|
42
|
+
| 'pdf.sign'
|
|
43
|
+
| 'pdf.add-page-numbers'
|
|
44
|
+
| 'video.compress'
|
|
45
|
+
| 'video.transcode'
|
|
46
|
+
| 'video.trim'
|
|
47
|
+
| 'video.merge'
|
|
48
|
+
| 'video.extract-audio'
|
|
49
|
+
| 'video.to-gif'
|
|
50
|
+
| 'video.screenshot';
|
|
51
|
+
|
|
52
|
+
/** 全部内置能力名常量数组(运行时校验 / 枚举用) */
|
|
53
|
+
export const BUILTIN_CAPABILITY_NAMES: readonly BuiltinCapabilityName[] = [
|
|
54
|
+
'ai.ocr',
|
|
55
|
+
'ai.caption',
|
|
56
|
+
'ai.background-remove',
|
|
57
|
+
'ai.generate-workflow',
|
|
58
|
+
'ai.optimize-workflow',
|
|
59
|
+
'audio.trim',
|
|
60
|
+
'audio.normalize',
|
|
61
|
+
'audio.merge',
|
|
62
|
+
'audio.transcode',
|
|
63
|
+
'audio.denoise',
|
|
64
|
+
'image.resize',
|
|
65
|
+
'image.compress',
|
|
66
|
+
'image.convert',
|
|
67
|
+
'image.crop',
|
|
68
|
+
'image.rotate',
|
|
69
|
+
'image.flip',
|
|
70
|
+
'image.watermark',
|
|
71
|
+
'image.background',
|
|
72
|
+
'image.filter',
|
|
73
|
+
'pdf.merge',
|
|
74
|
+
'pdf.split',
|
|
75
|
+
'pdf.compress',
|
|
76
|
+
'pdf.rotate',
|
|
77
|
+
'pdf.watermark',
|
|
78
|
+
'pdf.ocr',
|
|
79
|
+
'pdf.sign',
|
|
80
|
+
'pdf.add-page-numbers',
|
|
81
|
+
'video.compress',
|
|
82
|
+
'video.transcode',
|
|
83
|
+
'video.trim',
|
|
84
|
+
'video.merge',
|
|
85
|
+
'video.extract-audio',
|
|
86
|
+
'video.to-gif',
|
|
87
|
+
'video.screenshot',
|
|
88
|
+
];
|
package/src/validators.ts
CHANGED
|
@@ -70,6 +70,12 @@ export const workflowEdgeSchema = z.object({
|
|
|
70
70
|
to: z.string(),
|
|
71
71
|
});
|
|
72
72
|
|
|
73
|
+
/** E1: 多 target 输出定义 */
|
|
74
|
+
export const outputTargetSchema = z.object({
|
|
75
|
+
name: z.string(),
|
|
76
|
+
params: z.record(z.unknown()).optional(),
|
|
77
|
+
});
|
|
78
|
+
|
|
73
79
|
export const workflowSchema = z.object({
|
|
74
80
|
$schema: z.string().optional(),
|
|
75
81
|
id: z.string(),
|
|
@@ -90,6 +96,7 @@ export const workflowSchema = z.object({
|
|
|
90
96
|
outputs: z.object({
|
|
91
97
|
type: workflowOutputTypeSchema,
|
|
92
98
|
format: z.string().optional(),
|
|
99
|
+
targets: z.array(outputTargetSchema).optional(),
|
|
93
100
|
}),
|
|
94
101
|
official: z.boolean().optional(),
|
|
95
102
|
createdAt: z.number().optional(),
|
|
@@ -242,6 +249,17 @@ export function validateWorkflow(data: unknown, options?: ValidateWorkflowOption
|
|
|
242
249
|
}
|
|
243
250
|
}
|
|
244
251
|
|
|
252
|
+
// 4b. E1: 多 target 名称唯一性校验
|
|
253
|
+
if (wf.outputs.targets && wf.outputs.targets.length > 0) {
|
|
254
|
+
const seenTargetNames = new Set<string>();
|
|
255
|
+
for (const target of wf.outputs.targets) {
|
|
256
|
+
if (seenTargetNames.has(target.name)) {
|
|
257
|
+
errors.push(`Duplicate output target name: "${target.name}". Target names must be unique.`);
|
|
258
|
+
}
|
|
259
|
+
seenTargetNames.add(target.name);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
|
|
245
263
|
// 5. W10.2: capability 兼容性校验(可选,仅在 resolveCapability 提供时)
|
|
246
264
|
// 检查相邻节点(通过 edge 连接)的 outputTypes 与下一节点的 inputTypes 是否有交集。
|
|
247
265
|
// - 线性链:edge.from → edge.to,from 节点的 outputTypes 与 to 节点的 inputTypes 交集为空则报错
|
|
@@ -296,22 +314,31 @@ function validateCapabilityCompatibility(
|
|
|
296
314
|
return cap;
|
|
297
315
|
};
|
|
298
316
|
|
|
299
|
-
// 5a.
|
|
317
|
+
// 5a. 全节点 capability 注册校验(transform + input + output 均覆盖)
|
|
318
|
+
// B4 修复:原实现仅检查入度 0 节点,transform 节点的 unknown capability
|
|
319
|
+
// 在 5b 边检查中被静默跳过(`!fromCap || !toCap` continue),导致用户得到
|
|
320
|
+
// "校验通过"假象,运行时才报错。现拆分为两步:
|
|
321
|
+
// - 5a:全节点 unknown capability 检查(不区分入度)
|
|
322
|
+
// - 5a-in:输入节点 inputTypes 与 workflow.inputs.type 兼容性检查
|
|
300
323
|
for (const node of wf.nodes) {
|
|
301
|
-
if (
|
|
324
|
+
if (!node.capability) continue;
|
|
302
325
|
const cap = getCap(node);
|
|
303
|
-
// 未注册的 capability 不静默跳过:在 schema
|
|
304
|
-
//
|
|
305
|
-
// 整个 capability 兼容性校验跳过(
|
|
326
|
+
// 未注册的 capability 不静默跳过:在 schema 层显式报错
|
|
327
|
+
// resolveCapability 未提供时(getCap 始终返回 undefined)
|
|
328
|
+
// 整个 capability 兼容性校验跳过(由 validateWorkflow 的 if 守卫保证)
|
|
306
329
|
if (!cap) {
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
`
|
|
310
|
-
|
|
311
|
-
);
|
|
312
|
-
}
|
|
313
|
-
continue;
|
|
330
|
+
errors.push(
|
|
331
|
+
`Node "${node.id}" references unknown capability "${node.capability}". ` +
|
|
332
|
+
`Capability is not registered in the registry.`
|
|
333
|
+
);
|
|
314
334
|
}
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
// 5a-in. 输入节点(入度 0)的 inputTypes 与 workflow.inputs.type 兼容
|
|
338
|
+
for (const node of wf.nodes) {
|
|
339
|
+
if ((inDegree.get(node.id) ?? 0) > 0) continue;
|
|
340
|
+
const cap = getCap(node);
|
|
341
|
+
if (!cap) continue; // 5a 已报告未注册 capability,此处不重复
|
|
315
342
|
const inputTypeMatches = cap.inputTypes.includes(wf.inputs.type);
|
|
316
343
|
if (!inputTypeMatches) {
|
|
317
344
|
errors.push(
|
package/src/workflow.ts
CHANGED
|
@@ -44,10 +44,33 @@ export interface WorkflowInput {
|
|
|
44
44
|
accept?: string[];
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
+
/**
|
|
48
|
+
* Workflow 输出 target(E1:多 target 机制)。
|
|
49
|
+
*
|
|
50
|
+
* 一个线性 Workflow 可通过 targets 定义多个输出端口,
|
|
51
|
+
* 每个 target 的 params 会浅合并到链上每个 transform 节点的 params 中
|
|
52
|
+
* (target params 优先),从而用单条链产出多个不同尺寸/参数的文件。
|
|
53
|
+
*
|
|
54
|
+
* 典型场景:社交媒体多平台图适配(一条 resize→compress→convert 链,
|
|
55
|
+
* 5 个 target 分别覆盖 width/height 产出 5 个尺寸)。
|
|
56
|
+
*/
|
|
57
|
+
export interface OutputTarget {
|
|
58
|
+
/** target 名称(如 "instagram"、"twitter"),同一 outputs 内不可重复 */
|
|
59
|
+
name: string;
|
|
60
|
+
/** 参数覆盖(浅合并到每个 transform 节点的 params) */
|
|
61
|
+
params?: Record<string, unknown>;
|
|
62
|
+
}
|
|
63
|
+
|
|
47
64
|
/** Workflow 输出定义 */
|
|
48
65
|
export interface WorkflowOutput {
|
|
49
66
|
type: AssetType | 'archive';
|
|
50
67
|
format?: string;
|
|
68
|
+
/**
|
|
69
|
+
* 多 target 输出(E1)。
|
|
70
|
+
* 存在且非空时,runtime 为每个 target 独立执行一次 transform 链,
|
|
71
|
+
* 产出 len(targets) 个文件。所有 target 共享同一 output type/format。
|
|
72
|
+
*/
|
|
73
|
+
targets?: OutputTarget[];
|
|
51
74
|
}
|
|
52
75
|
|
|
53
76
|
/** Workflow 作者信息 */
|