@aalis/plugin-workflow 0.12.1 → 0.14.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/README.md +24 -0
- package/dist/engine.d.ts +14 -6
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +8 -9
- package/dist/engine.js.map +1 -1
- package/dist/index.d.ts +20 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +140 -127
- package/dist/index.js.map +1 -1
- package/dist/loader.d.ts +7 -2
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +16 -7
- package/dist/loader.js.map +1 -1
- package/dist/persistence.d.ts +9 -2
- package/dist/persistence.d.ts.map +1 -1
- package/dist/persistence.js +40 -21
- package/dist/persistence.js.map +1 -1
- package/dist/triggers.d.ts +13 -3
- package/dist/triggers.d.ts.map +1 -1
- package/dist/triggers.js +15 -9
- package/dist/triggers.js.map +1 -1
- package/package.json +22 -15
package/dist/loader.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
//
|
|
4
4
|
// 通过 @aalis/api-storage 访问目录与文件(默认 workspace:/workflows)。
|
|
5
5
|
// ============================================================
|
|
6
|
+
import { isStorageNotFound } from '@aalis/api-storage';
|
|
6
7
|
import { parse, stringify } from 'yaml';
|
|
7
8
|
import { validateGraph } from './engine.js';
|
|
8
9
|
/** 把 raw YAML 对象规范化为 WorkflowDef;返回 null 表示非法 */
|
|
@@ -35,6 +36,8 @@ export class WorkflowLoader {
|
|
|
35
36
|
dirUri;
|
|
36
37
|
logger;
|
|
37
38
|
loaded = new Map();
|
|
39
|
+
/** 本次激活里确认有文件的 id(loadAll 载入的、saveDef 写过的):只有它们删不掉文件时会在重启后被重新载入 */
|
|
40
|
+
onDisk = new Set();
|
|
38
41
|
constructor(storage, dirUri, logger) {
|
|
39
42
|
this.storage = storage;
|
|
40
43
|
this.dirUri = dirUri;
|
|
@@ -54,8 +57,7 @@ export class WorkflowLoader {
|
|
|
54
57
|
entries = listed.entries.filter(e => !e.isDirectory && /\.(ya?ml)$/i.test(e.name));
|
|
55
58
|
}
|
|
56
59
|
catch (err) {
|
|
57
|
-
|
|
58
|
-
if (/ENOENT|not found|不存在/i.test(msg))
|
|
60
|
+
if (isStorageNotFound(err))
|
|
59
61
|
return true;
|
|
60
62
|
this.logger.warn(`扫描目录失败: ${err}`);
|
|
61
63
|
return false;
|
|
@@ -76,6 +78,7 @@ export class WorkflowLoader {
|
|
|
76
78
|
continue;
|
|
77
79
|
}
|
|
78
80
|
this.loaded.set(def.id, def);
|
|
81
|
+
this.onDisk.add(def.id);
|
|
79
82
|
this.logger.info(`已加载 workflow: ${def.id} (${def.nodes.length} 节点, trigger=${def.trigger.type})`);
|
|
80
83
|
}
|
|
81
84
|
catch (err) {
|
|
@@ -88,22 +91,28 @@ export class WorkflowLoader {
|
|
|
88
91
|
async saveDef(def) {
|
|
89
92
|
const uri = joinUri(this.dirUri, `${def.id}.yaml`);
|
|
90
93
|
await this.storage.writeFile(uri, stringify(def));
|
|
94
|
+
this.onDisk.add(def.id);
|
|
91
95
|
this.loaded.set(def.id, def);
|
|
92
96
|
}
|
|
93
|
-
/**
|
|
97
|
+
/**
|
|
98
|
+
* 从存储与内存删除。确认有文件的定义删不掉文件(不是「不存在」)时抛错、内存不动——否则重启后定义又被载入;
|
|
99
|
+
* 只在内存里的定义与不存在的 id 删文件失败(如 storage 不在场、根不可删)只记 warn,照常从内存移除
|
|
100
|
+
*/
|
|
94
101
|
async removeDef(id) {
|
|
95
|
-
const had = this.loaded.delete(id);
|
|
96
102
|
const uri = joinUri(this.dirUri, `${id}.yaml`);
|
|
97
103
|
try {
|
|
98
104
|
await this.storage.delete(uri);
|
|
99
105
|
}
|
|
100
106
|
catch (err) {
|
|
101
|
-
|
|
102
|
-
|
|
107
|
+
if (!isStorageNotFound(err)) {
|
|
108
|
+
if (this.onDisk.has(id)) {
|
|
109
|
+
throw new Error(`删除 workflow 文件 ${id}.yaml 失败: ${err instanceof Error ? err.message : err}`);
|
|
110
|
+
}
|
|
103
111
|
this.logger.warn(`删除 workflow 文件 ${id}.yaml 失败: ${err}`);
|
|
104
112
|
}
|
|
105
113
|
}
|
|
106
|
-
|
|
114
|
+
this.onDisk.delete(id);
|
|
115
|
+
return this.loaded.delete(id);
|
|
107
116
|
}
|
|
108
117
|
/** 仅放入内存(用于动态注册不持久化) */
|
|
109
118
|
putMemory(def) {
|
package/dist/loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,gDAAgD;AAChD,EAAE;AACF,0DAA0D;AAC1D,+DAA+D;
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,gDAAgD;AAChD,EAAE;AACF,0DAA0D;AAC1D,+DAA+D;AAE/D,OAAO,EAAE,iBAAiB,EAAuB,MAAM,oBAAoB,CAAC;AAG5E,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,iDAAiD;AACjD,MAAM,UAAU,YAAY,CAAC,GAAY,EAAE,UAAkB;IAC3D,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,CAAC,GAAG,GAA8B,CAAC;IACzC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,UAAU,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,CAAC,CAAC,OAA6C,CAAC;IAChE,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,KAA8B,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,MAAM,GAAG,GAAgB;QACvB,EAAE;QACF,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;QAC9C,WAAW,EAAE,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;QAC1E,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC,IAAgC,CAAC,CAAC,CAAC,EAAE;QACrF,OAAO;QACP,KAAK;QACL,OAAO,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK;KAC7B,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,OAAO,CAAC,IAAY,EAAE,GAAW;IACxC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;IACjD,OAAO,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,OAAO,cAAc;IACjB,OAAO,CAAiB;IACxB,MAAM,CAAS;IACf,MAAM,CAAS;IACf,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAC;IAChD,mEAAmE;IAC3D,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IAEnC,YAAY,OAAuB,EAAE,MAAc,EAAE,MAAc;QACjE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED,+DAA+D;IAC/D,KAAK,CAAC,OAAO;QACX,IAAI,OAAO,GAA+D,EAAE,CAAC;QAC7E,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpD,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACrF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,iBAAiB,CAAC,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;YACnC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;gBACjE,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;gBACxB,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;gBACxD,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;gBAC1C,IAAI,CAAC,GAAG,EAAE,CAAC;oBACT,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;oBAChD,SAAS;gBACX,CAAC;gBACD,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;gBAC/B,IAAI,GAAG,EAAE,CAAC;oBACR,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE,WAAW,GAAG,EAAE,CAAC,CAAC;oBACtD,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,KAAK,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;YACpG,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,QAAQ,GAAG,EAAE,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,OAAO,CAAC,GAAgB;QAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;QACnD,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS,CAAC,EAAU;QACxB,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBACxB,MAAM,IAAI,KAAK,CAAC,kBAAkB,EAAE,aAAa,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC/F,CAAC;gBACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,aAAa,GAAG,EAAE,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,wBAAwB;IACxB,SAAS,CAAC,GAAgB;QACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC;CACF"}
|
package/dist/persistence.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type StorageService } from '@aalis/api-storage';
|
|
2
2
|
import type { WorkflowRun } from '@aalis/api-workflow';
|
|
3
3
|
import type { Logger } from '@aalis/core';
|
|
4
4
|
export declare class RunStore {
|
|
@@ -10,9 +10,16 @@ export declare class RunStore {
|
|
|
10
10
|
/** once 触发记账:workflowId → 首次触发时刻(ms)。与运行历史同文件,重启后读回即不再触发 */
|
|
11
11
|
private onceFired;
|
|
12
12
|
private writeChain;
|
|
13
|
+
/**
|
|
14
|
+
* init 读失败且不是「文件不存在」(storage 不在场、读错误、解析失败、结构不对):写的是整份快照,
|
|
15
|
+
* 此后一律拒写,否则第一次运行就用空的 once 记账覆盖文件,下次启动过期 once 全部重放。
|
|
16
|
+
*/
|
|
17
|
+
private loadFailed;
|
|
13
18
|
constructor(storage: StorageService, fileUri: string, maxRuns: number, logger: Logger);
|
|
14
|
-
/**
|
|
19
|
+
/** 初始化时从存储加载历史;文件不存在视为空,其它失败本次运行拒写。 */
|
|
15
20
|
init(): Promise<void>;
|
|
21
|
+
/** once 记账是否可信:init 读失败时记账为空,据它安排 once 会重放已触发过的一次性工作流 */
|
|
22
|
+
onceLedgerReadable(): boolean;
|
|
16
23
|
/** 等到目前为止排队的写入全部落盘(dispose 时调用:否则 app.stop() 返回后还有写入在飞)。 */
|
|
17
24
|
flushed(): Promise<void>;
|
|
18
25
|
private flush;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../src/persistence.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../src/persistence.ts"],"names":[],"mappings":"AAQA,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,qBAAa,QAAQ;IACnB,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,IAAI,CAAqB;IACjC,4DAA4D;IAC5D,OAAO,CAAC,SAAS,CAA8B;IAC/C,OAAO,CAAC,UAAU,CAAoC;IACtD;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAS;gBAEf,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAOrF,uCAAuC;IACjC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA6B3B,yDAAyD;IACzD,kBAAkB,IAAI,OAAO;IAI7B,4DAA4D;IAC5D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,OAAO,CAAC,KAAK;IAab,wCAAwC;IACxC,GAAG,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAQ3B,wCAAwC;IACxC,MAAM,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAO9B,wCAAwC;IACxC,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAInD,oCAAoC;IACpC,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAMvC,6CAA6C;IAC7C,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAMxC;;;;;OAKG;IACH,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI;IAUtC,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAI3C,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE;CAMzD"}
|
package/dist/persistence.js
CHANGED
|
@@ -3,10 +3,9 @@
|
|
|
3
3
|
//
|
|
4
4
|
// 通过 @aalis/api-storage 写入 storage URI(默认 data:/workflow-runs.json)。
|
|
5
5
|
// 仍维持 write-on-end 整体重写策略;写入串行化避免覆盖。
|
|
6
|
-
// 文件形状:{ runs: [...], onceFired: { <workflowId>: <firedAt> } }
|
|
7
|
-
// 旧版的顶层数组仍能读(按 runs 处理),写回时统一升级为对象。
|
|
8
|
-
// 反向不成立:降级到旧构建会丢运行历史与 once 记账(0.x 不保证降级)。
|
|
6
|
+
// 文件形状:{ runs: [...], onceFired: { <workflowId>: <firedAt> } }。
|
|
9
7
|
// ============================================================
|
|
8
|
+
import { isStorageNotFound } from '@aalis/api-storage';
|
|
10
9
|
export class RunStore {
|
|
11
10
|
storage;
|
|
12
11
|
fileUri;
|
|
@@ -16,44 +15,64 @@ export class RunStore {
|
|
|
16
15
|
/** once 触发记账:workflowId → 首次触发时刻(ms)。与运行历史同文件,重启后读回即不再触发 */
|
|
17
16
|
onceFired = {};
|
|
18
17
|
writeChain = Promise.resolve();
|
|
18
|
+
/**
|
|
19
|
+
* init 读失败且不是「文件不存在」(storage 不在场、读错误、解析失败、结构不对):写的是整份快照,
|
|
20
|
+
* 此后一律拒写,否则第一次运行就用空的 once 记账覆盖文件,下次启动过期 once 全部重放。
|
|
21
|
+
*/
|
|
22
|
+
loadFailed = false;
|
|
19
23
|
constructor(storage, fileUri, maxRuns, logger) {
|
|
20
24
|
this.storage = storage;
|
|
21
25
|
this.fileUri = fileUri;
|
|
22
26
|
this.maxRuns = Math.max(10, maxRuns);
|
|
23
27
|
this.logger = logger;
|
|
24
28
|
}
|
|
25
|
-
/**
|
|
29
|
+
/** 初始化时从存储加载历史;文件不存在视为空,其它失败本次运行拒写。 */
|
|
26
30
|
async init() {
|
|
31
|
+
let raw;
|
|
32
|
+
try {
|
|
33
|
+
raw = await this.storage.readFile(this.fileUri, 'utf-8');
|
|
34
|
+
}
|
|
35
|
+
catch (err) {
|
|
36
|
+
if (isStorageNotFound(err))
|
|
37
|
+
return;
|
|
38
|
+
this.loadFailed = true;
|
|
39
|
+
this.logger.warn(`读取运行历史失败,本次运行不再写入该文件: ${err}`);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
// 解析与结构校验单独一段:解析报错的文案(会带上短文件原文)不能进「不存在」判据
|
|
27
43
|
try {
|
|
28
|
-
const raw = await this.storage.readFile(this.fileUri, 'utf-8');
|
|
29
44
|
const data = JSON.parse(String(raw));
|
|
30
|
-
if (Array.isArray(data))
|
|
31
|
-
|
|
45
|
+
if (!data || typeof data !== 'object' || Array.isArray(data))
|
|
46
|
+
throw new Error('顶层不是 JSON 对象');
|
|
47
|
+
if (data.runs !== undefined && !Array.isArray(data.runs))
|
|
48
|
+
throw new Error('runs 不是数组');
|
|
49
|
+
const fired = data.onceFired;
|
|
50
|
+
if (fired !== undefined && (!fired || typeof fired !== 'object' || Array.isArray(fired))) {
|
|
51
|
+
throw new Error('onceFired 不是对象');
|
|
32
52
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
for (const [id, at] of Object.entries(d.onceFired)) {
|
|
39
|
-
if (typeof at === 'number')
|
|
40
|
-
this.onceFired[id] = at;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
53
|
+
if (data.runs)
|
|
54
|
+
this.runs = data.runs;
|
|
55
|
+
for (const [id, at] of Object.entries((fired ?? {}))) {
|
|
56
|
+
if (typeof at === 'number')
|
|
57
|
+
this.onceFired[id] = at;
|
|
43
58
|
}
|
|
44
59
|
}
|
|
45
60
|
catch (err) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
this.logger.warn(`加载运行历史失败: ${err}`);
|
|
49
|
-
}
|
|
61
|
+
this.loadFailed = true;
|
|
62
|
+
this.logger.warn(`解析运行历史失败,本次运行不再写入该文件: ${err}`);
|
|
50
63
|
}
|
|
51
64
|
}
|
|
65
|
+
/** once 记账是否可信:init 读失败时记账为空,据它安排 once 会重放已触发过的一次性工作流 */
|
|
66
|
+
onceLedgerReadable() {
|
|
67
|
+
return !this.loadFailed;
|
|
68
|
+
}
|
|
52
69
|
/** 等到目前为止排队的写入全部落盘(dispose 时调用:否则 app.stop() 返回后还有写入在飞)。 */
|
|
53
70
|
flushed() {
|
|
54
71
|
return this.writeChain;
|
|
55
72
|
}
|
|
56
73
|
flush() {
|
|
74
|
+
if (this.loadFailed)
|
|
75
|
+
return; // init 时已 warn 过
|
|
57
76
|
const payload = JSON.stringify({ runs: this.runs, onceFired: this.onceFired }, null, 2);
|
|
58
77
|
this.writeChain = this.writeChain
|
|
59
78
|
.then(() => this.storage.writeFile(this.fileUri, payload))
|
package/dist/persistence.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence.js","sourceRoot":"","sources":["../src/persistence.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+CAA+C;AAC/C,EAAE;AACF,qEAAqE;AACrE,qCAAqC;AACrC,gEAAgE;AAChE
|
|
1
|
+
{"version":3,"file":"persistence.js","sourceRoot":"","sources":["../src/persistence.ts"],"names":[],"mappings":"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"}
|
package/dist/triggers.d.ts
CHANGED
|
@@ -1,25 +1,35 @@
|
|
|
1
|
+
import type { CronEngine } from '@aalis/api-cron-engine';
|
|
1
2
|
import type { WorkflowDef } from '@aalis/api-workflow';
|
|
2
|
-
import type {
|
|
3
|
+
import type { Events, Logger, ServiceRef } from '@aalis/core';
|
|
3
4
|
type FireFn = (workflowId: string, source: string, payload?: Record<string, unknown>) => void;
|
|
4
5
|
/**
|
|
5
6
|
* once 触发记账(由 RunStore 实现,落在运行历史同一份持久化里)。
|
|
6
7
|
*
|
|
7
8
|
* once 的语义:**一生只触发一次**——触发即记下 firedAt,此后重启进程、重新注册、
|
|
8
9
|
* 重复 workflow_define 都不再触发;只有删除该 workflow 才清账(同 id 重建算新工作流)。
|
|
10
|
+
* 记账读不出时(onceLedgerReadable 为 false)无从判断是否触发过,本次运行不安排任何 once。
|
|
9
11
|
*/
|
|
10
12
|
interface OnceLedger {
|
|
13
|
+
onceLedgerReadable(): boolean;
|
|
11
14
|
onceFiredAt(workflowId: string): number | undefined;
|
|
12
15
|
markOnceFired(workflowId: string): void;
|
|
13
16
|
}
|
|
17
|
+
/** 触发器登记用到的能力:cron / interval 经 cron-engine 订阅,event 触发器订阅事件总线。 */
|
|
18
|
+
export interface TriggerCaps {
|
|
19
|
+
cronEngine: ServiceRef<CronEngine>;
|
|
20
|
+
events: Events;
|
|
21
|
+
logger: Logger;
|
|
22
|
+
}
|
|
14
23
|
export declare class TriggerManager {
|
|
15
|
-
private
|
|
24
|
+
private cronEngine;
|
|
25
|
+
private events;
|
|
16
26
|
private logger;
|
|
17
27
|
private fire;
|
|
18
28
|
private once;
|
|
19
29
|
private cronDisposers;
|
|
20
30
|
private onceTimers;
|
|
21
31
|
private eventDisposers;
|
|
22
|
-
constructor(
|
|
32
|
+
constructor(caps: TriggerCaps, fire: FireFn, once: OnceLedger);
|
|
23
33
|
/** 注册一个 workflow 的触发器;幂等,重复注册先 unregister */
|
|
24
34
|
register(def: WorkflowDef): void;
|
|
25
35
|
unregister(workflowId: string): void;
|
package/dist/triggers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"triggers.d.ts","sourceRoot":"","sources":["../src/triggers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"triggers.d.ts","sourceRoot":"","sources":["../src/triggers.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAW9D,KAAK,MAAM,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;AAE9F;;;;;;GAMG;AACH,UAAU,UAAU;IAClB,kBAAkB,IAAI,OAAO,CAAC;IAC9B,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACpD,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC;AAED,mEAAmE;AACnE,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,UAAU,CAAyB;IAC3C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,IAAI,CAAa;IAEzB,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,UAAU,CAAoD;IACtE,OAAO,CAAC,cAAc,CAAiC;gBAE3C,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU;IAQ7D,6CAA6C;IAC7C,QAAQ,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAyGhC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAkBpC,WAAW;IACX,OAAO,IAAI,IAAI;CAQhB"}
|
package/dist/triggers.js
CHANGED
|
@@ -3,26 +3,27 @@
|
|
|
3
3
|
//
|
|
4
4
|
// 通过 cron-engine 服务订阅 cron / @every,scheduler 与 workflow
|
|
5
5
|
// 共享一个整分钟 tick 与 setInterval;once 用 setTimeout;
|
|
6
|
-
// event
|
|
6
|
+
// event 经事件总线订阅。所有"周期型"触发器现在都走 cron-engine,
|
|
7
7
|
// 不再在本文件里直接 new setInterval。
|
|
8
8
|
// ============================================================
|
|
9
|
-
import { useCronEngine } from '@aalis/api-cron-engine';
|
|
10
9
|
// event 触发器禁止订阅的内部事件:这些承载会话原文/出站内容,若被 workflow 的 send-message
|
|
11
10
|
// 节点转发到任意 sessionId,会构成跨会话内容窃听/外泄通道。只允许订阅编排/信号类事件。
|
|
12
11
|
const BLOCKED_EVENT_TRIGGERS = new Set(['inbound:message', 'outbound:message', 'inbound:command']);
|
|
13
12
|
/** setTimeout 的 delay 上限(32 位有符号毫秒,约 24.8 天);超过即溢出成立即触发 */
|
|
14
13
|
const MAX_ONCE_TIMEOUT_MS = 2 ** 31 - 1;
|
|
15
14
|
export class TriggerManager {
|
|
16
|
-
|
|
15
|
+
cronEngine;
|
|
16
|
+
events;
|
|
17
17
|
logger;
|
|
18
18
|
fire;
|
|
19
19
|
once;
|
|
20
20
|
cronDisposers = new Map();
|
|
21
21
|
onceTimers = new Map();
|
|
22
22
|
eventDisposers = new Map();
|
|
23
|
-
constructor(
|
|
24
|
-
this.
|
|
25
|
-
this.
|
|
23
|
+
constructor(caps, fire, once) {
|
|
24
|
+
this.cronEngine = caps.cronEngine;
|
|
25
|
+
this.events = caps.events;
|
|
26
|
+
this.logger = caps.logger;
|
|
26
27
|
this.fire = fire;
|
|
27
28
|
this.once = once;
|
|
28
29
|
}
|
|
@@ -35,7 +36,7 @@ export class TriggerManager {
|
|
|
35
36
|
switch (t.type) {
|
|
36
37
|
case 'cron': {
|
|
37
38
|
try {
|
|
38
|
-
const dispose =
|
|
39
|
+
const dispose = this.cronEngine.require().subscribe(t.expr, () => {
|
|
39
40
|
this.fire(def.id, `cron:${t.expr}`);
|
|
40
41
|
});
|
|
41
42
|
this.cronDisposers.set(def.id, dispose);
|
|
@@ -50,7 +51,7 @@ export class TriggerManager {
|
|
|
50
51
|
const sec = Math.max(1, Math.floor(t.seconds));
|
|
51
52
|
const expr = `@every ${sec}s`;
|
|
52
53
|
try {
|
|
53
|
-
const dispose =
|
|
54
|
+
const dispose = this.cronEngine.require().subscribe(expr, () => {
|
|
54
55
|
this.fire(def.id, `interval:${sec}s`);
|
|
55
56
|
});
|
|
56
57
|
this.cronDisposers.set(def.id, dispose);
|
|
@@ -61,6 +62,11 @@ export class TriggerManager {
|
|
|
61
62
|
break;
|
|
62
63
|
}
|
|
63
64
|
case 'once': {
|
|
65
|
+
// 记账读不出时「从未触发过」无从判断:宁可这次不触发,也不重放已触发过的一次性工作流
|
|
66
|
+
if (!this.once.onceLedgerReadable()) {
|
|
67
|
+
this.logger.warn(`workflow ${def.id} 的 once 记账读取失败,本次运行不安排触发(避免重放已触发过的一次性工作流);修复 runsFile 后重启,或用 workflow_run 手动执行`);
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
64
70
|
// 已有 firedAt 记账 = 这个 once 用过了,注册时直接跳过(重启/重注册都不重跑)。
|
|
65
71
|
// 这道闸只是省掉一个空转 timer,正确性由 fireOnce 的记账兜。
|
|
66
72
|
const firedAt = this.once.onceFiredAt(def.id);
|
|
@@ -113,7 +119,7 @@ export class TriggerManager {
|
|
|
113
119
|
}
|
|
114
120
|
const filter = t.filter ?? {};
|
|
115
121
|
// biome-ignore lint/suspicious/noExplicitAny: 动态事件订阅,事件名不在编译期可知
|
|
116
|
-
const dispose = this.
|
|
122
|
+
const dispose = this.events.on(evtName, (...args) => {
|
|
117
123
|
if (!matchFilter(args[0], filter))
|
|
118
124
|
return;
|
|
119
125
|
this.fire(def.id, `event:${evtName}`, { args });
|
package/dist/triggers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"triggers.js","sourceRoot":"","sources":["../src/triggers.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,qDAAqD;AACrD,EAAE;AACF,yDAAyD;AACzD,gDAAgD;AAChD,
|
|
1
|
+
{"version":3,"file":"triggers.js","sourceRoot":"","sources":["../src/triggers.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aalis/plugin-workflow",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -24,33 +24,40 @@
|
|
|
24
24
|
"dist"
|
|
25
25
|
],
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@aalis/schema-config": ">=0.
|
|
28
|
-
"@aalis/api-cron-engine": ">=0.
|
|
29
|
-
"@aalis/api-storage": ">=0.
|
|
30
|
-
"@aalis/api-tools": ">=0.
|
|
31
|
-
"@aalis/api-webui": ">=0.
|
|
32
|
-
"@aalis/api-workflow": ">=0.
|
|
33
|
-
"yaml": "^2.7.0"
|
|
27
|
+
"@aalis/schema-config": ">=0.13.0 <1.0.0",
|
|
28
|
+
"@aalis/api-cron-engine": ">=0.7.0 <1.0.0",
|
|
29
|
+
"@aalis/api-storage": ">=0.7.0 <1.0.0",
|
|
30
|
+
"@aalis/api-tools": ">=0.10.0 <1.0.0",
|
|
31
|
+
"@aalis/api-webui": ">=0.11.0 <1.0.0",
|
|
32
|
+
"@aalis/api-workflow": ">=0.11.0 <1.0.0",
|
|
33
|
+
"yaml": "^2.7.0",
|
|
34
|
+
"@aalis/api-hooks": ">=0.1.0 <1.0.0"
|
|
34
35
|
},
|
|
35
36
|
"devDependencies": {
|
|
36
37
|
"@types/node": "^22.0.0",
|
|
37
38
|
"typescript": "^5.7.0",
|
|
38
|
-
"@aalis/core": "0.
|
|
39
|
-
"@aalis/api-agent": "0.
|
|
40
|
-
"@aalis/schema-message": "0.
|
|
39
|
+
"@aalis/core": "0.18.0",
|
|
40
|
+
"@aalis/api-agent": "0.9.0",
|
|
41
|
+
"@aalis/schema-message": "0.9.0"
|
|
41
42
|
},
|
|
42
43
|
"peerDependencies": {
|
|
43
|
-
"@aalis/core": ">=0.
|
|
44
|
+
"@aalis/core": ">=0.18.0 <1.0.0"
|
|
44
45
|
},
|
|
45
46
|
"aalis": {
|
|
46
47
|
"service": {
|
|
47
48
|
"required": [
|
|
48
|
-
"
|
|
49
|
+
"config",
|
|
50
|
+
"cron-engine",
|
|
51
|
+
"events",
|
|
52
|
+
"hooks",
|
|
53
|
+
"lifecycle",
|
|
54
|
+
"logger",
|
|
55
|
+
"provide"
|
|
49
56
|
],
|
|
50
57
|
"optional": [
|
|
51
|
-
"tools",
|
|
52
58
|
"storage",
|
|
53
|
-
"
|
|
59
|
+
"tools",
|
|
60
|
+
"webui-server"
|
|
54
61
|
],
|
|
55
62
|
"provides": [
|
|
56
63
|
"workflow"
|