@aalis/plugin-workflow 0.1.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,32 @@
1
+ import type { Context, Logger } from '@aalis/core';
2
+ import type { ToolCallContext } from '@aalis/plugin-tools-api';
3
+ import type { NodeRunInfo, WorkflowDef } from '@aalis/plugin-workflow-api';
4
+ /** 校验定义的节点 deps 合法(不引用未知节点;不形成环);返回错误消息或 null */
5
+ export declare function validateGraph(def: WorkflowDef): string | null;
6
+ interface RunOptions {
7
+ ctx: Context;
8
+ logger: Logger;
9
+ def: WorkflowDef;
10
+ runId: string;
11
+ triggerSource: string;
12
+ vars: Record<string, unknown>;
13
+ toolCallContext: ToolCallContext;
14
+ /** 取消信号容器;外部置 cancelled=true 后引擎不再调度新节点 */
15
+ cancelToken: {
16
+ cancelled: boolean;
17
+ };
18
+ /** 节点完成回调(用于持久化进度 + 发事件) */
19
+ onNodeDone?: (info: NodeRunInfo) => void;
20
+ }
21
+ /**
22
+ * 按 deps 拓扑分批执行;每一批可并行;失败立即终止后续批次。
23
+ * 返回最终的 WorkflowRun(不含 runId/workflowId/startedAt 等元数据,由 caller 填充)。
24
+ */
25
+ export declare function runDag(opts: RunOptions): Promise<{
26
+ status: 'success' | 'failed' | 'cancelled';
27
+ nodes: NodeRunInfo[];
28
+ outputs: Record<string, unknown>;
29
+ error?: string;
30
+ }>;
31
+ export {};
32
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,yBAAyB,CAAC;AAC5E,OAAO,KAAK,EACV,WAAW,EAKX,WAAW,EACZ,MAAM,4BAA4B,CAAC;AAsDpC,iDAAiD;AACjD,wBAAgB,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CA+B7D;AA0DD,UAAU,UAAU;IAClB,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,WAAW,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,eAAe,EAAE,eAAe,CAAC;IACjC,2CAA2C;IAC3C,WAAW,EAAE;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IACpC,4BAA4B;IAC5B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;CAC1C;AAED;;;GAGG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IACtD,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;IAC3C,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CA0ED"}
package/dist/engine.js ADDED
@@ -0,0 +1,218 @@
1
+ // ============================================================
2
+ // engine.ts — DAG 执行引擎
3
+ // ============================================================
4
+ const MAX_OUTPUT_PREVIEW = 1000;
5
+ // ─── 模板插值 ────────────────────────────────────────
6
+ const TPL_RE = /\{\{\s*(vars|outputs)\.([\w.[\]]+)\s*\}\}/g;
7
+ /** 解析 outputs.foo.bar / outputs.foo[0].x 这类访问路径 */
8
+ function getByPath(obj, path) {
9
+ const tokens = path
10
+ .replace(/\[(\d+)\]/g, '.$1')
11
+ .split('.')
12
+ .filter(Boolean);
13
+ let cur = obj;
14
+ for (const t of tokens) {
15
+ if (cur == null)
16
+ return undefined;
17
+ cur = cur[t];
18
+ }
19
+ return cur;
20
+ }
21
+ /** 把字符串里的 {{vars.X}} / {{outputs.Y}} 替换为实际值(值为 object 时 JSON.stringify) */
22
+ function interpolateString(s, vars, outputs) {
23
+ return s.replace(TPL_RE, (_, scope, path) => {
24
+ const root = scope === 'vars' ? vars : outputs;
25
+ const v = getByPath(root, path);
26
+ if (v == null)
27
+ return '';
28
+ if (typeof v === 'string')
29
+ return v;
30
+ if (typeof v === 'number' || typeof v === 'boolean')
31
+ return String(v);
32
+ try {
33
+ return JSON.stringify(v);
34
+ }
35
+ catch {
36
+ return String(v);
37
+ }
38
+ });
39
+ }
40
+ /** 递归遍历对象,对所有字符串做插值 */
41
+ function interpolateValue(v, vars, outputs) {
42
+ if (typeof v === 'string')
43
+ return interpolateString(v, vars, outputs);
44
+ if (Array.isArray(v))
45
+ return v.map(x => interpolateValue(x, vars, outputs));
46
+ if (v && typeof v === 'object') {
47
+ const out = {};
48
+ for (const [k, vv] of Object.entries(v)) {
49
+ out[k] = interpolateValue(vv, vars, outputs);
50
+ }
51
+ return out;
52
+ }
53
+ return v;
54
+ }
55
+ // ─── 拓扑校验 ────────────────────────────────────────
56
+ /** 校验定义的节点 deps 合法(不引用未知节点;不形成环);返回错误消息或 null */
57
+ export function validateGraph(def) {
58
+ const ids = new Set(def.nodes.map(n => n.id));
59
+ if (ids.size !== def.nodes.length)
60
+ return '节点 id 重复';
61
+ for (const n of def.nodes) {
62
+ for (const d of n.deps ?? []) {
63
+ if (!ids.has(d))
64
+ return `节点 "${n.id}" 引用未知 dep "${d}"`;
65
+ if (d === n.id)
66
+ return `节点 "${n.id}" 自引用`;
67
+ }
68
+ }
69
+ // Kahn 检测环
70
+ const indeg = new Map();
71
+ const fan = new Map();
72
+ for (const n of def.nodes) {
73
+ indeg.set(n.id, (n.deps ?? []).length);
74
+ fan.set(n.id, []);
75
+ }
76
+ for (const n of def.nodes) {
77
+ for (const d of n.deps ?? [])
78
+ fan.get(d).push(n.id);
79
+ }
80
+ const q = [...indeg.entries()].filter(([, v]) => v === 0).map(([k]) => k);
81
+ let visited = 0;
82
+ while (q.length) {
83
+ const id = q.shift();
84
+ visited++;
85
+ for (const c of fan.get(id) ?? []) {
86
+ indeg.set(c, indeg.get(c) - 1);
87
+ if (indeg.get(c) === 0)
88
+ q.push(c);
89
+ }
90
+ }
91
+ if (visited < def.nodes.length)
92
+ return '节点存在依赖环';
93
+ return null;
94
+ }
95
+ async function execTool(node, ec) {
96
+ const tools = ec.ctx.getService('tools');
97
+ if (!tools)
98
+ throw new Error("'tools' 服务不可用");
99
+ const args = (interpolateValue(node.args ?? {}, ec.vars, ec.outputs) ?? {});
100
+ return await tools.execute(node.tool, args, ec.toolCallContext);
101
+ }
102
+ async function execSendMessage(node, ec) {
103
+ const content = interpolateString(node.content, ec.vars, ec.outputs);
104
+ const sessionId = interpolateString(node.sessionId, ec.vars, ec.outputs);
105
+ const platform = interpolateString(node.platform ?? 'internal', ec.vars, ec.outputs);
106
+ const message = {
107
+ content,
108
+ sessionId,
109
+ platform,
110
+ source: `workflow:${ec.workflowId}`,
111
+ };
112
+ await ec.ctx.emit('inbound:message', message);
113
+ return `sent to ${sessionId}@${platform} (${content.length} chars)`;
114
+ }
115
+ async function execWait(node) {
116
+ const ms = Math.max(0, Math.floor(node.seconds * 1000));
117
+ await new Promise(resolve => setTimeout(resolve, ms));
118
+ return `waited ${node.seconds}s`;
119
+ }
120
+ async function executeNode(node, ec) {
121
+ switch (node.type) {
122
+ case 'tool':
123
+ return await execTool(node, ec);
124
+ case 'send-message':
125
+ return await execSendMessage(node, ec);
126
+ case 'wait':
127
+ return await execWait(node);
128
+ default: {
129
+ const _exhaustive = node;
130
+ throw new Error(`未知节点类型: ${_exhaustive.type}`);
131
+ }
132
+ }
133
+ }
134
+ /**
135
+ * 按 deps 拓扑分批执行;每一批可并行;失败立即终止后续批次。
136
+ * 返回最终的 WorkflowRun(不含 runId/workflowId/startedAt 等元数据,由 caller 填充)。
137
+ */
138
+ export async function runDag(opts) {
139
+ const { def, vars, ctx, logger, runId, toolCallContext, cancelToken, onNodeDone } = opts;
140
+ const outputs = {};
141
+ const nodeMap = new Map(def.nodes.map(n => [n.id, n]));
142
+ const indeg = new Map();
143
+ const fan = new Map();
144
+ for (const n of def.nodes) {
145
+ indeg.set(n.id, (n.deps ?? []).length);
146
+ fan.set(n.id, []);
147
+ }
148
+ for (const n of def.nodes) {
149
+ for (const d of n.deps ?? [])
150
+ fan.get(d).push(n.id);
151
+ }
152
+ const nodeRuns = new Map();
153
+ for (const n of def.nodes)
154
+ nodeRuns.set(n.id, { id: n.id, type: n.type, status: 'pending' });
155
+ let firstError = null;
156
+ async function runOne(id) {
157
+ const node = nodeMap.get(id);
158
+ const info = nodeRuns.get(id);
159
+ if (cancelToken.cancelled) {
160
+ info.status = 'skipped';
161
+ onNodeDone?.(info);
162
+ return;
163
+ }
164
+ info.status = 'running';
165
+ info.startedAt = Date.now();
166
+ const ec = { ctx, logger, workflowId: def.id, runId, vars, outputs, toolCallContext };
167
+ try {
168
+ const result = await executeNode(node, ec);
169
+ info.status = 'success';
170
+ info.finishedAt = Date.now();
171
+ info.output = result.length > MAX_OUTPUT_PREVIEW ? `${result.slice(0, MAX_OUTPUT_PREVIEW)}…` : result;
172
+ if (node.out)
173
+ outputs[node.out] = result;
174
+ logger.debug(`run=${runId} node=${id} ok (${info.finishedAt - info.startedAt}ms)`);
175
+ }
176
+ catch (err) {
177
+ info.status = 'failed';
178
+ info.finishedAt = Date.now();
179
+ info.error = err instanceof Error ? err.message : String(err);
180
+ firstError ??= `节点 "${id}" 失败: ${info.error}`;
181
+ logger.warn(`run=${runId} node=${id} failed: ${info.error}`);
182
+ }
183
+ finally {
184
+ onNodeDone?.(info);
185
+ }
186
+ }
187
+ // 按层调度
188
+ while (true) {
189
+ if (cancelToken.cancelled || firstError)
190
+ break;
191
+ const ready = [...indeg.entries()].filter(([id, d]) => d === 0 && nodeRuns.get(id).status === 'pending');
192
+ if (ready.length === 0)
193
+ break;
194
+ await Promise.all(ready.map(([id]) => runOne(id)));
195
+ if (firstError || cancelToken.cancelled)
196
+ break;
197
+ // 把成功节点的下游 indeg 减一
198
+ for (const [id] of ready) {
199
+ const st = nodeRuns.get(id).status;
200
+ if (st === 'success') {
201
+ for (const c of fan.get(id) ?? [])
202
+ indeg.set(c, indeg.get(c) - 1);
203
+ }
204
+ }
205
+ }
206
+ // 标记未运行的为 skipped
207
+ for (const info of nodeRuns.values()) {
208
+ if (info.status === 'pending')
209
+ info.status = 'skipped';
210
+ }
211
+ const allNodes = def.nodes.map(n => nodeRuns.get(n.id));
212
+ if (cancelToken.cancelled)
213
+ return { status: 'cancelled', nodes: allNodes, outputs, error: firstError ?? undefined };
214
+ if (firstError)
215
+ return { status: 'failed', nodes: allNodes, outputs, error: firstError };
216
+ return { status: 'success', nodes: allNodes, outputs };
217
+ }
218
+ //# sourceMappingURL=engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { ConfigSchema, Context, PluginModule } from '@aalis/core';
2
+ import '@aalis/plugin-webui-api';
3
+ export declare const name = "@aalis/plugin-workflow";
4
+ export declare const displayName = "\u5DE5\u4F5C\u6D41";
5
+ export declare const subsystem = "workflow";
6
+ export declare const provides: string[];
7
+ export declare const inject: {
8
+ required: string[];
9
+ optional: string[];
10
+ };
11
+ export declare const extends_: {
12
+ events: string[];
13
+ };
14
+ export declare const configSchema: ConfigSchema;
15
+ export declare const defaultConfig: {
16
+ defsDir: string;
17
+ runsFile: string;
18
+ maxRuns: number;
19
+ enableTools: boolean;
20
+ };
21
+ export declare const actions: PluginModule['actions'];
22
+ export declare function apply(ctx: Context, rawConfig: Record<string, unknown>): Promise<void>;
23
+ export type { NodeSpec, TriggerSpec, WorkflowDef, WorkflowRun, WorkflowService, } from '@aalis/plugin-workflow-api';
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAKvE,OAAO,yBAAyB,CAAC;AAajC,eAAO,MAAM,IAAI,2BAA2B,CAAC;AAC7C,eAAO,MAAM,WAAW,uBAAQ,CAAC;AACjC,eAAO,MAAM,SAAS,aAAa,CAAC;AAEpC,eAAO,MAAM,QAAQ,UAAe,CAAC;AAErC,eAAO,MAAM,MAAM;;;CAGlB,CAAC;AAEF,eAAO,MAAM,QAAQ;;CAEpB,CAAC;AAWF,eAAO,MAAM,YAAY,EAAE,YA0B1B,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;CAKzB,CAAC;AAiHF,eAAO,MAAM,OAAO,EAAE,YAAY,CAAC,SAAS,CAoI3C,CAAC;AAsBF,wBAAsB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAmK3F;AAuKD,YAAY,EACV,QAAQ,EACR,WAAW,EACX,WAAW,EACX,WAAW,EACX,eAAe,GAChB,MAAM,4BAA4B,CAAC"}