@aalis/plugin-workflow 0.14.1 → 0.15.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/engine.d.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  import type { Hooks } from '@aalis/api-hooks';
2
- import type { BoundTools, ToolCallContext } from '@aalis/api-tools';
2
+ import type { ToolCallContext, ToolService } from '@aalis/api-tools';
3
3
  import type { NodeRunInfo, WorkflowDef } from '@aalis/api-workflow';
4
- import type { Events, Logger } from '@aalis/core';
4
+ import type { Events, Logger, ServiceSelection } from '@aalis/core';
5
5
  /**
6
6
  * 执行一次 DAG 用到的能力:tool 节点调工具、send-message / agent 节点派发消息、
7
7
  * agent 节点经钩子捕获本轮回复。引擎不持有插件激活本身,只收这几样。
8
8
  */
9
9
  export interface EngineCaps {
10
- tools: BoundTools;
10
+ tools: Pick<ServiceSelection<ToolService>, 'present' | 'use'>;
11
11
  events: Events;
12
12
  hooks: Hooks;
13
13
  logger: Logger;
@@ -19,10 +19,11 @@ interface RunOptions extends EngineCaps {
19
19
  runId: string;
20
20
  vars: Record<string, unknown>;
21
21
  toolCallContext: ToolCallContext;
22
- /** 取消信号容器;外部置 cancelled=true 后引擎不再调度新节点 */
23
- cancelToken: {
24
- cancelled: boolean;
25
- };
22
+ /**
23
+ * 取消信号:中止后不再调度新节点,阻塞中的 wait / agent 节点立即失败;tool 节点经 toolCallContext.signal 收到,
24
+ * 是否提前返回由工具决定
25
+ */
26
+ signal: AbortSignal;
26
27
  /** 节点完成回调(用于持久化进度 + 发事件) */
27
28
  onNodeDone?: (info: NodeRunInfo) => void;
28
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAEV,WAAW,EAKX,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAKlD;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AA2ED,2DAA2D;AAC3D,wBAAgB,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAiC7D;AAoID,UAAU,UAAW,SAAQ,UAAU;IACrC,GAAG,EAAE,WAAW,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,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"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,KAAK,EAEV,WAAW,EAKX,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAOpE;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,CAAC;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AA2ED,2DAA2D;AAC3D,wBAAgB,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAiC7D;AAmJD,UAAU,UAAW,SAAQ,UAAU;IACrC,GAAG,EAAE,WAAW,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,eAAe,EAAE,eAAe,CAAC;IACjC;;;OAGG;IACH,MAAM,EAAE,WAAW,CAAC;IACpB,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,CAuFD"}
package/dist/engine.js CHANGED
@@ -2,6 +2,8 @@
2
2
  // engine.ts — DAG 执行引擎
3
3
  // ============================================================
4
4
  const MAX_OUTPUT_PREVIEW = 1000;
5
+ /** 运行被取消时,阻塞中的节点以此失败 */
6
+ const CANCELLED = '运行已取消';
5
7
  // ─── 模板插值 ────────────────────────────────────────
6
8
  const TPL_RE = /\{\{\s*(vars|outputs)\.([\w.[\]]+)\s*\}\}/g;
7
9
  /** 解析 outputs.foo.bar / outputs.foo[0].x 这类访问路径 */
@@ -120,9 +122,9 @@ export function validateGraph(def) {
120
122
  return null;
121
123
  }
122
124
  async function execTool(node, ec) {
123
- const service = ec.tools.current;
124
- if (!service)
125
+ if (!ec.tools.present)
125
126
  throw new Error("'tools' 服务不可用");
127
+ const service = ec.tools.use;
126
128
  const args = (interpolateValue(node.args ?? {}, ec.vars, ec.outputs) ?? {});
127
129
  // 工作流节点产出是文本:工具交给主模型看的图(images)没有消费者,只取 content
128
130
  return (await service.execute(node.tool, args, ec.toolCallContext)).content;
@@ -144,14 +146,23 @@ async function execSendMessage(node, ec) {
144
146
  await ec.events.emit('inbound:message', message);
145
147
  return `sent to ${sessionId}@${platform} (${content.length} chars)`;
146
148
  }
147
- async function execWait(node) {
149
+ function execWait(node, signal) {
148
150
  const ms = Math.max(0, Math.floor(node.seconds * 1000));
149
- await new Promise(resolve => setTimeout(resolve, ms));
150
- return `waited ${node.seconds}s`;
151
+ return new Promise((resolve, reject) => {
152
+ const timer = setTimeout(() => {
153
+ signal.removeEventListener('abort', stop);
154
+ resolve(`waited ${node.seconds}s`);
155
+ }, ms);
156
+ const stop = () => {
157
+ clearTimeout(timer);
158
+ reject(new Error(CANCELLED));
159
+ };
160
+ signal.addEventListener('abort', stop, { once: true });
161
+ });
151
162
  }
152
163
  const DEFAULT_AGENT_TIMEOUT_SEC = 120;
153
164
  /**
154
- * agent 节点:派发指令给 agent 并等待本轮回复(复用 delegate_to_session 的 join 机制)。
165
+ * agent 节点:派发指令给 agent 并等待本轮回复。
155
166
  * 在 emit 前注册 `agent:turn:after` 监听,按目标 sessionId 捕获首条回复;超时或
156
167
  * outcome=error/aborted 抛错(=> 节点失败)。回复文本作为节点结果,可被 `{{outputs.X}}` 下游引用。
157
168
  *
@@ -159,16 +170,17 @@ const DEFAULT_AGENT_TIMEOUT_SEC = 120;
159
170
  * - `source` 含 nodeId(`workflow:<wf>:<nodeId>`)以隔离 agent 的并发 lane——否则同一会话上的
160
171
  * 两个 agent 回合会因 lane 相同而互相 abort。但**显式指定相同 sessionId 的并行 agent 节点**仍会
161
172
  * 因 `agent:turn:after` 按 sessionId 匹配而串扰捕获——省略 sessionId(默认一次性子会话)可彻底避免。
162
- * - 等待期间不感知 run 取消(与 wait 节点一致),最长阻塞至 timeoutSeconds。
173
+ * - run 取消时立即停止等待、节点失败;已派发的回合不随之中止,照常跑完,回复不再被捕获。
163
174
  * - 目标会话处于禁言期时(禁言不看作用域),或落在 flow-control 作用域内且限速窗口已满时,消息会被 flow 相位
164
175
  * 吞掉而永不回本节点的 `agent:turn:after`,节点会等到超时才失败。带 source 的消息不经触发策略、不受回复后冷却;限速只在目标会话落入 flow-control 作用域时生效。
165
176
  */
166
177
  async function execAgent(node, ec) {
167
178
  const instruction = interpolateString(node.instruction, ec.vars, ec.outputs);
168
179
  // 省略 sessionId 时为本节点生成一次性隔离子会话,确保并行 agent 节点互不串扰、join 不混淆。
180
+ // 这类会话没有出生平台:平台档按入口平台选,场所为默认工作区。
169
181
  const sessionId = node.sessionId
170
182
  ? interpolateString(node.sessionId, ec.vars, ec.outputs)
171
- : `workflow:agent:${ec.runId}:${node.id}`;
183
+ : `workflow::${ec.runId}::${node.id}`;
172
184
  const platform = interpolateString(node.platform ?? 'workflow', ec.vars, ec.outputs);
173
185
  const timeoutSec = node.timeoutSeconds && node.timeoutSeconds > 0 ? node.timeoutSeconds : DEFAULT_AGENT_TIMEOUT_SEC;
174
186
  const timeoutMs = Math.floor(timeoutSec * 1000);
@@ -200,16 +212,21 @@ async function execAgent(node, ec) {
200
212
  // (2026-08-24 审计),与 execSendMessage 同源补齐;无调用者保持匿名。
201
213
  if (ec.toolCallContext.actor)
202
214
  incoming.actor = ec.toolCallContext.actor;
203
- const timeoutHandle = setTimeout(() => resolveWait?.(), timeoutMs);
215
+ const stopWaiting = () => resolveWait?.();
216
+ const timeoutHandle = setTimeout(stopWaiting, timeoutMs);
217
+ ec.signal.addEventListener('abort', stopWaiting, { once: true });
204
218
  try {
205
219
  await ec.events.emit('inbound:message', incoming);
206
220
  await waitPromise;
207
221
  }
208
222
  finally {
209
223
  clearTimeout(timeoutHandle);
224
+ ec.signal.removeEventListener('abort', stopWaiting);
210
225
  dispose();
211
226
  }
212
227
  if (!captured) {
228
+ if (ec.signal.aborted)
229
+ throw new Error(CANCELLED);
213
230
  throw new Error(`agent 节点超时(${timeoutSec}s 内未收到 agent:turn:after,会话=${sessionId})`);
214
231
  }
215
232
  if (captured.outcome === 'error' || captured.outcome === 'aborted') {
@@ -224,7 +241,7 @@ async function executeNode(node, ec) {
224
241
  case 'send-message':
225
242
  return await execSendMessage(node, ec);
226
243
  case 'wait':
227
- return await execWait(node);
244
+ return await execWait(node, ec.signal);
228
245
  case 'agent':
229
246
  return await execAgent(node, ec);
230
247
  default: {
@@ -238,8 +255,22 @@ async function executeNode(node, ec) {
238
255
  * 返回最终的 WorkflowRun(不含 runId/workflowId/startedAt 等元数据,由 caller 填充)。
239
256
  */
240
257
  export async function runDag(opts) {
241
- const { def, vars, tools, events, hooks, logger, runId, toolCallContext, cancelToken, onNodeDone } = opts;
258
+ const { def, vars, tools, events, hooks, logger, runId, signal, onNodeDone } = opts;
242
259
  const outputs = {};
260
+ // tool 节点经 toolCallContext.signal 收到取消
261
+ const toolCallContext = { ...opts.toolCallContext, signal };
262
+ const ec = {
263
+ tools,
264
+ events,
265
+ hooks,
266
+ logger,
267
+ workflowId: def.id,
268
+ runId,
269
+ vars,
270
+ outputs,
271
+ toolCallContext,
272
+ signal,
273
+ };
243
274
  const nodeMap = new Map(def.nodes.map(n => [n.id, n]));
244
275
  const indeg = new Map();
245
276
  const fan = new Map();
@@ -258,14 +289,13 @@ export async function runDag(opts) {
258
289
  async function runOne(id) {
259
290
  const node = nodeMap.get(id);
260
291
  const info = nodeRuns.get(id);
261
- if (cancelToken.cancelled) {
292
+ if (signal.aborted) {
262
293
  info.status = 'skipped';
263
294
  onNodeDone?.(info);
264
295
  return;
265
296
  }
266
297
  info.status = 'running';
267
298
  info.startedAt = Date.now();
268
- const ec = { tools, events, hooks, logger, workflowId: def.id, runId, vars, outputs, toolCallContext };
269
299
  try {
270
300
  const result = await executeNode(node, ec);
271
301
  info.status = 'success';
@@ -288,13 +318,13 @@ export async function runDag(opts) {
288
318
  }
289
319
  // 按层调度
290
320
  while (true) {
291
- if (cancelToken.cancelled || firstError)
321
+ if (signal.aborted || firstError)
292
322
  break;
293
323
  const ready = [...indeg.entries()].filter(([id, d]) => d === 0 && nodeRuns.get(id).status === 'pending');
294
324
  if (ready.length === 0)
295
325
  break;
296
326
  await Promise.all(ready.map(([id]) => runOne(id)));
297
- if (firstError || cancelToken.cancelled)
327
+ if (firstError || signal.aborted)
298
328
  break;
299
329
  // 把成功节点的下游 indeg 减一
300
330
  for (const [id] of ready) {
@@ -311,7 +341,7 @@ export async function runDag(opts) {
311
341
  info.status = 'skipped';
312
342
  }
313
343
  const allNodes = def.nodes.map(n => nodeRuns.get(n.id));
314
- if (cancelToken.cancelled)
344
+ if (signal.aborted)
315
345
  return { status: 'cancelled', nodes: allNodes, outputs, error: firstError ?? undefined };
316
346
  if (firstError)
317
347
  return { status: 'failed', nodes: allNodes, outputs, error: firstError };
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  import { type BoundTools } from '@aalis/api-tools';
2
- import type { BoundWebui } from '@aalis/api-webui';
2
+ import { type BoundWebui } from '@aalis/api-webui';
3
3
  declare const _default: import("@aalis/core").PluginDefinition<{
4
4
  /** cron / interval 触发器共享的整分钟 tick 与表达式解析 */
5
- cronEngine: import("@aalis/core").ServiceDescriptor<import("@aalis/api-cron-engine").CronEngine, import("@aalis/core").ServiceRef<import("@aalis/api-cron-engine").CronEngine>>;
5
+ cronEngine: import("@aalis/core").ServiceDescriptor<import("@aalis/api-cron-engine").CronEngine, import("@aalis/api-cron-engine").CronEngine>;
6
6
  /** 定义(*.yaml)与运行历史的持久化出口 */
7
- storage: import("@aalis/core").OptionalUse<import("@aalis/api-storage").StorageService, import("@aalis/core").ServiceRef<import("@aalis/api-storage").StorageService>>;
7
+ storage: import("@aalis/core").OptionalUse<import("@aalis/api-storage").StorageService, import("@aalis/api-storage").BoundStorage>;
8
8
  /** tool 节点的执行入口,兼 AI 工具面的登记口 */
9
9
  tools: import("@aalis/core").OptionalUse<import("@aalis/api-tools").ToolService, BoundTools>;
10
- /** 工作流页与页面动作的登记口;无 WebUI 时引擎照常运行 */
10
+ /** 工作流页的登记口;无 WebUI 时引擎照常运行 */
11
11
  webui: import("@aalis/core").OptionalUse<import("@aalis/api-webui").WebUIService, BoundWebui>;
12
12
  events: import("@aalis/core").ServiceDescriptor<(identity: symbol) => import("@aalis/core").Events, import("@aalis/core").Events>;
13
13
  /** agent 节点经 'agent:turn:after' 捕获本轮回复 */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,UAAU,EAAS,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,kBAAkB,CAAC;;IAsT5D,4CAA4C;;IAE5C,4BAA4B;;IAE5B,gCAAgC;;IAEhC,oCAAoC;;;IAGpC,0CAA0C;;;;;;;AAS5C,wBAWG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,UAAU,EAAS,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,KAAK,UAAU,EAA6B,MAAM,kBAAkB,CAAC;;IA2R5E,4CAA4C;;IAE5C,4BAA4B;;IAE5B,gCAAgC;;IAEhC,+BAA+B;;;IAG/B,0CAA0C;;;;;;;AAS5C,wBAWG"}
package/dist/index.js CHANGED
@@ -7,12 +7,12 @@
7
7
  // ============================================================
8
8
  import { cronEngine } from '@aalis/api-cron-engine';
9
9
  import { hooks } from '@aalis/api-hooks';
10
- import { createStorageGateway, isStorageUri, storage } from '@aalis/api-storage';
10
+ import { isStorageUri, storage } from '@aalis/api-storage';
11
11
  import { tools } from '@aalis/api-tools';
12
- import { webuiServer } from '@aalis/api-webui';
12
+ import { markdownCode, webuiServer } from '@aalis/api-webui';
13
13
  import { workflow } from '@aalis/api-workflow';
14
14
  import { config, definePlugin, events, lifecycle, logger, optional, provide } from '@aalis/core';
15
- import { defineConfig, parseConfig } from '@aalis/schema-config';
15
+ import { configError, defineConfig, parseConfig } from '@aalis/schema-config';
16
16
  import { parse, stringify } from 'yaml';
17
17
  import { runDag, validateGraph } from './engine.js';
18
18
  import { normalizeDef, WorkflowLoader } from './loader.js';
@@ -48,80 +48,7 @@ const configSchema = defineConfig({
48
48
  description: '开启后向 LLM 暴露 workflow_define / workflow_run 等工具。',
49
49
  },
50
50
  });
51
- // ─── WebUI ───
52
- const webuiPages = [
53
- {
54
- key: 'workflows',
55
- label: '工作流',
56
- icon: '<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="6" cy="6" r="3"/><circle cx="18" cy="6" r="3"/><circle cx="12" cy="18" r="3"/><path d="M9 6h6"/><path d="M7.5 8.5L11 15.5"/><path d="M16.5 8.5L13 15.5"/></svg>',
57
- order: 57,
58
- content: [
59
- {
60
- type: 'stat',
61
- label: '工作流总览',
62
- source: 'workflowStats',
63
- },
64
- {
65
- type: 'table',
66
- label: '工作流定义',
67
- source: 'listWorkflowsTable',
68
- columns: [
69
- { key: 'id', label: 'ID', nowrap: true },
70
- { key: 'name', label: '名称' },
71
- { key: 'trigger', label: '触发器', nowrap: true },
72
- { key: 'nodeCount', label: '节点' },
73
- { key: 'enabled', label: '状态', nowrap: true },
74
- { key: 'description', label: '描述', maxWidth: 360, render: 'expandable-text' },
75
- ],
76
- actions: [
77
- { label: '立即运行', method: 'triggerWorkflow' },
78
- { label: '禁用/启用', method: 'toggleWorkflow' },
79
- { label: '查看 YAML', method: 'getWorkflowYaml' },
80
- { label: '删除', method: 'removeWorkflow', confirm: '确定删除该工作流?(同时删除磁盘文件)', danger: true },
81
- ],
82
- refresh: 60,
83
- },
84
- {
85
- type: 'table',
86
- label: '最近运行历史',
87
- source: 'listRunsTable',
88
- columns: [
89
- { key: 'runId', label: 'Run ID', nowrap: true },
90
- { key: 'workflowId', label: '工作流', nowrap: true },
91
- { key: 'status', label: '状态', nowrap: true },
92
- { key: 'triggerSource', label: '触发源', nowrap: true },
93
- { key: 'startedAtText', label: '开始时间', nowrap: true },
94
- { key: 'durationText', label: '耗时', nowrap: true },
95
- { key: 'error', label: '错误', maxWidth: 320, render: 'expandable-text' },
96
- ],
97
- refresh: 30,
98
- },
99
- {
100
- type: 'form',
101
- label: '新建 / 覆盖工作流(粘贴完整 YAML)',
102
- source: 'newWorkflowDraft',
103
- save: 'upsertWorkflowYaml',
104
- schema: {
105
- yaml: {
106
- type: 'textarea',
107
- label: 'YAML 定义',
108
- required: true,
109
- description: '完整 WorkflowDef YAML:id / name / trigger / nodes。trigger 类型支持 cron / interval / once / event / manual。' +
110
- '节点类型 tool / send-message / wait / agent(agent 节点派发指令给 agent 并等回复,配合 deps + {{outputs.X}} 做多智能体编排)。' +
111
- '保存后将立即注册触发器并持久化到 defsDir。',
112
- },
113
- persist: {
114
- type: 'boolean',
115
- label: '写入磁盘',
116
- default: true,
117
- description: '关闭后仅在内存中注册(进程重启后丢失)',
118
- },
119
- },
120
- },
121
- ],
122
- },
123
- ];
124
- // ─── 工具函数(与页面动作共享) ───
51
+ // ─── 工具函数(与工作流页共享) ───
125
52
  function triggerSummary(t) {
126
53
  switch (t.type) {
127
54
  case 'cron':
@@ -138,16 +65,6 @@ function triggerSummary(t) {
138
65
  return t.type;
139
66
  }
140
67
  }
141
- function fmtTs(ts) {
142
- if (!ts || !Number.isFinite(ts))
143
- return '—';
144
- try {
145
- return new Date(ts).toLocaleString('zh-CN', { hour12: false });
146
- }
147
- catch {
148
- return String(ts);
149
- }
150
- }
151
68
  function fmtDuration(ms) {
152
69
  if (!Number.isFinite(ms) || ms < 0)
153
70
  return '—';
@@ -160,7 +77,7 @@ function fmtDuration(ms) {
160
77
  return `${m}m${s}s`;
161
78
  }
162
79
  /**
163
- * once 记账读不出时本次运行不安排 once:定义或启用一个 once 的回执据此如实说明(AI 工具与页面动作同一口径)。
80
+ * once 记账读不出时本次运行不安排 once:定义或启用一个 once 的回执据此如实说明(AI 工具与工作流页同一口径)。
164
81
  * manualRun 是各自那一面手动执行的说法;不持久化的定义重启后就没了,「重启恢复」只对写了文件的定义成立。
165
82
  */
166
83
  function onceSkippedNote(def, persist, onceLedgerReadable, manualRun) {
@@ -168,123 +85,186 @@ function onceSkippedNote(def, persist, onceLedgerReadable, manualRun) {
168
85
  return undefined;
169
86
  return `once 记账读取失败(见日志),本次运行不会触发;可用${manualRun}手动执行${persist ? ',修复运行历史文件后重启恢复' : ''}`;
170
87
  }
88
+ const STATUS = {
89
+ pending: { text: '等待', state: 'inactive' },
90
+ running: { text: '运行中', state: 'running' },
91
+ success: { text: '成功' },
92
+ failed: { text: '失败', state: 'error' },
93
+ cancelled: { text: '已取消', state: 'inactive' },
94
+ };
171
95
  /**
172
- * 页面动作:处理函数是闭包,直接用本次激活构造的 WorkflowService,
173
- * 不再按名回查容器(查到的可能是别人提供的同名服务)。
96
+ * 工作流页:处理函数是闭包,直接用本次激活构造的 WorkflowService,不按名回查容器(查到的可能是别人提供的同名服务)。
97
+ * 返回页面的句柄:定义增删与运行起止时让它重取
174
98
  */
175
- function registerWebuiActions(webui, service, onceLedgerReadable) {
176
- webui.registerAction('workflowStats', async () => {
177
- const defs = service.listWorkflows();
178
- const enabled = defs.filter(d => d.enabled !== false).length;
179
- const runs = service.listRuns(200);
180
- const last24h = runs.filter(r => Date.now() - r.startedAt < 86_400_000);
181
- const failed24h = last24h.filter(r => r.status === 'failed' || r.status === 'cancelled').length;
182
- return {
183
- value: defs.length,
184
- hint: `启用 ${enabled} · 24h 运行 ${last24h.length} · 失败 ${failed24h}`,
185
- };
186
- });
187
- webui.registerAction('listWorkflowsTable', async () => {
188
- return service.listWorkflows().map(d => ({
189
- id: d.id,
190
- name: d.name ?? d.id,
191
- trigger: triggerSummary(d.trigger),
192
- nodeCount: d.nodes.length,
193
- enabled: d.enabled === false ? '⏸ 禁用' : '✅ 启用',
194
- description: d.description ?? '',
195
- }));
196
- });
197
- webui.registerAction('listRunsTable', async () => {
198
- return service.listRuns(50).map(r => {
199
- const dur = (r.finishedAt ?? Date.now()) - r.startedAt;
200
- const statusIcon = r.status === 'success' ? '✅' : r.status === 'failed' ? '❌' : r.status === 'cancelled' ? '⏹' : '⏳';
201
- return {
202
- runId: r.runId,
203
- workflowId: r.workflowId,
204
- status: `${statusIcon} ${r.status}`,
205
- triggerSource: r.triggerSource,
206
- startedAtText: fmtTs(r.startedAt),
207
- durationText: fmtDuration(dur),
208
- error: r.error ?? '',
209
- };
210
- });
211
- });
212
- webui.registerAction('triggerWorkflow', async (args) => {
213
- try {
214
- const run = await service.runWorkflow(String(args.id), {}, 'manual:webui');
215
- return {
216
- ok: true,
217
- runId: run.runId,
218
- status: run.status,
219
- durationMs: (run.finishedAt ?? Date.now()) - run.startedAt,
220
- error: run.error,
221
- };
222
- }
223
- catch (err) {
224
- return { ok: false, error: err instanceof Error ? err.message : String(err) };
225
- }
226
- });
227
- webui.registerAction('toggleWorkflow', async (args) => {
228
- const def = service.getWorkflow(String(args.id));
229
- if (!def)
230
- return { ok: false, error: '工作流不存在' };
231
- const next = { ...def, enabled: def.enabled === false };
232
- try {
233
- await service.defineWorkflow(next, { persist: true });
234
- const note = onceSkippedNote(next, true, onceLedgerReadable(), '「立即运行」');
235
- return { ok: true, enabled: next.enabled, ...(note ? { message: `已启用;${note}` } : {}) };
236
- }
237
- catch (err) {
238
- return { ok: false, error: err instanceof Error ? err.message : String(err) };
239
- }
240
- });
241
- webui.registerAction('getWorkflowYaml', async (args) => {
242
- const def = service.getWorkflow(String(args.id));
243
- if (!def)
244
- return { error: '工作流不存在' };
245
- return { id: def.id, yaml: stringify(def) };
246
- });
247
- webui.registerAction('removeWorkflow', async (args) => (await service.removeWorkflow(String(args.id))) ? { ok: true } : { ok: false, error: '工作流不存在' });
248
- webui.registerAction('newWorkflowDraft', async () => ({
249
- yaml: `id: my-workflow
250
- name: 示例工作流
251
- description: 描述这个工作流的作用
252
- trigger:
253
- type: manual
254
- vars:
255
- greeting: hello
256
- nodes:
257
- - id: say
258
- type: send-message
259
- sessionId: internal:demo
260
- platform: internal
261
- content: "{{vars.greeting}}, world!"
262
- `,
263
- persist: true,
264
- }));
265
- webui.registerAction('upsertWorkflowYaml', async (args) => {
266
- const yamlText = String(args.yaml ?? '').trim();
267
- if (!yamlText)
268
- return { ok: false, error: 'yaml 不能为空' };
269
- let raw;
270
- try {
271
- raw = parse(yamlText);
272
- }
273
- catch (err) {
274
- return { ok: false, error: `YAML 解析失败: ${err instanceof Error ? err.message : err}` };
275
- }
276
- const def = normalizeDef(raw, `wf-${Date.now()}`);
99
+ function defineWorkflowPage(webui, service, onceLedgerReadable) {
100
+ const definitionOf = (id) => {
101
+ const def = service.getWorkflow(id);
277
102
  if (!def)
278
- return { ok: false, error: '定义不合法:缺少 trigger 或 nodes' };
279
- const persist = args.persist !== false;
280
- try {
281
- await service.defineWorkflow(def, { persist });
282
- const note = onceSkippedNote(def, persist, onceLedgerReadable(), '「立即运行」');
283
- return { ok: true, id: def.id, nodes: def.nodes.length, ...(note ? { message: `已保存;${note}` } : {}) };
284
- }
285
- catch (err) {
286
- return { ok: false, error: err instanceof Error ? err.message : String(err) };
287
- }
103
+ throw new Error(`工作流 ${id} 不存在`);
104
+ return def;
105
+ };
106
+ /** 启用或停用:改的是写在磁盘上的定义 */
107
+ const setEnabled = async (id, enabled) => {
108
+ const next = { ...definitionOf(id), enabled };
109
+ await service.defineWorkflow(next, { persist: true });
110
+ const note = onceSkippedNote(next, true, onceLedgerReadable(), '「立即运行」');
111
+ return `已${enabled ? '启用' : '停用'} ${id}${note ? `;${note}` : ''}`;
112
+ };
113
+ return webui.definePage({
114
+ key: 'workflows',
115
+ title: '工作流',
116
+ icon: 'workflow',
117
+ actions: {
118
+ runWorkflow: {
119
+ label: '立即运行',
120
+ effect: 'write',
121
+ row: true,
122
+ async handler({ rowKey }) {
123
+ const run = await service.runWorkflow(rowKey, {}, 'manual:webui');
124
+ if (run.status !== 'success') {
125
+ throw new Error(`运行没有成功(${STATUS[run.status].text})${run.error ? `:${run.error}` : ''}`);
126
+ }
127
+ return `已运行 ${rowKey},用时 ${fmtDuration((run.finishedAt ?? Date.now()) - run.startedAt)}`;
128
+ },
129
+ },
130
+ enableWorkflow: { label: '启用', effect: 'write', row: true, handler: ({ rowKey }) => setEnabled(rowKey, true) },
131
+ disableWorkflow: {
132
+ label: '停用',
133
+ effect: 'write',
134
+ row: true,
135
+ handler: ({ rowKey }) => setEnabled(rowKey, false),
136
+ },
137
+ removeWorkflow: {
138
+ label: '删除',
139
+ effect: 'destructive',
140
+ confirm: '删除这个工作流,连同磁盘上的定义文件?',
141
+ row: true,
142
+ async handler({ rowKey }) {
143
+ if (!(await service.removeWorkflow(rowKey)))
144
+ throw new Error(`工作流 ${rowKey} 不存在`);
145
+ return `已删除 ${rowKey}`;
146
+ },
147
+ },
148
+ defineWorkflow: {
149
+ label: '新建或覆盖',
150
+ effect: 'write',
151
+ input: {
152
+ yaml: {
153
+ type: 'textarea',
154
+ label: 'YAML 定义',
155
+ required: true,
156
+ description: '完整的定义:id、name、trigger、nodes。trigger 支持 cron、interval、once、event、manual;节点支持 tool、send-message、' +
157
+ 'wait、agent(派发指令给 agent 并等回复,配合 deps 与 {{outputs.X}} 做多智能体编排)。同 id 的定义被覆盖,' +
158
+ '保存后立即注册触发器。现有定义的 YAML 在定义表格的详情里,可以照着改。',
159
+ },
160
+ persist: {
161
+ type: 'boolean',
162
+ label: '写入磁盘',
163
+ default: true,
164
+ description: '关闭后只在内存里注册,重启后丢失',
165
+ },
166
+ },
167
+ async handler({ input }) {
168
+ let raw;
169
+ try {
170
+ raw = parse(input.yaml);
171
+ }
172
+ catch (err) {
173
+ throw new Error(`YAML 解析失败:${err instanceof Error ? err.message : String(err)}`);
174
+ }
175
+ const def = normalizeDef(raw, `wf-${Date.now()}`);
176
+ if (!def)
177
+ throw new Error('定义不合法:缺少 trigger 或 nodes');
178
+ await service.defineWorkflow(def, { persist: input.persist });
179
+ const note = onceSkippedNote(def, input.persist, onceLedgerReadable(), '「立即运行」');
180
+ return `已保存工作流 ${def.id}${note ? `;${note}` : ''}`;
181
+ },
182
+ },
183
+ },
184
+ content: [
185
+ {
186
+ type: 'info',
187
+ id: 'summary',
188
+ data() {
189
+ const defs = service.listWorkflows();
190
+ const recent = service.listRuns(200).filter(r => Date.now() - r.startedAt < 86_400_000);
191
+ return [
192
+ { label: '定义', value: defs.length },
193
+ { label: '启用', value: defs.filter(d => d.enabled !== false).length },
194
+ { label: '24 小时运行', value: recent.length },
195
+ {
196
+ label: '24 小时失败',
197
+ value: recent.filter(r => r.status === 'failed' || r.status === 'cancelled').length,
198
+ },
199
+ ];
200
+ },
201
+ },
202
+ {
203
+ type: 'table',
204
+ id: 'workflows',
205
+ label: '定义',
206
+ rowKey: 'id',
207
+ empty: '还没有工作流',
208
+ columns: [
209
+ { key: 'id', label: 'ID', kind: 'code' },
210
+ { key: 'name', label: '名称', primary: true },
211
+ { key: 'trigger', label: '触发' },
212
+ { key: 'nodes', label: '节点数' },
213
+ { key: 'status', label: '状态', kind: 'status', primary: true },
214
+ { key: 'description', label: '描述', kind: 'long-text' },
215
+ ],
216
+ rowActions: [
217
+ { action: 'runWorkflow' },
218
+ { action: 'enableWorkflow', visibleWhen: 'disabled' },
219
+ { action: 'disableWorkflow', visibleWhen: 'enabled' },
220
+ { action: 'removeWorkflow' },
221
+ ],
222
+ data: () => service.listWorkflows().map(d => ({
223
+ id: d.id,
224
+ name: d.name ?? d.id,
225
+ trigger: triggerSummary(d.trigger),
226
+ nodes: d.nodes.length,
227
+ status: d.enabled === false ? { text: '停用', state: 'inactive' } : { text: '启用' },
228
+ enabled: d.enabled !== false,
229
+ disabled: d.enabled === false,
230
+ description: d.description ?? '',
231
+ })),
232
+ detail: [
233
+ {
234
+ type: 'markdown',
235
+ id: 'yaml',
236
+ label: 'YAML',
237
+ data: ({ rowKey }) => markdownCode(stringify(definitionOf(rowKey)), 'yaml'),
238
+ },
239
+ ],
240
+ },
241
+ {
242
+ type: 'table',
243
+ id: 'runs',
244
+ label: '最近运行',
245
+ rowKey: 'runId',
246
+ empty: '还没有运行过',
247
+ columns: [
248
+ { key: 'workflowId', label: '工作流', primary: true },
249
+ { key: 'status', label: '状态', kind: 'status', primary: true },
250
+ { key: 'triggerSource', label: '触发来源' },
251
+ { key: 'startedAt', label: '开始时间', kind: 'time' },
252
+ { key: 'duration', label: '用时' },
253
+ { key: 'error', label: '错误', kind: 'long-text' },
254
+ { key: 'runId', label: '运行 ID', kind: 'code' },
255
+ ],
256
+ data: () => service.listRuns(50).map(r => ({
257
+ runId: r.runId,
258
+ workflowId: r.workflowId,
259
+ status: STATUS[r.status],
260
+ triggerSource: r.triggerSource,
261
+ startedAt: r.startedAt,
262
+ duration: fmtDuration((r.finishedAt ?? Date.now()) - r.startedAt),
263
+ error: r.error ?? '',
264
+ })),
265
+ },
266
+ { type: 'actions', actions: ['defineWorkflow'] },
267
+ ],
288
268
  });
289
269
  }
290
270
  /** 路径配置只接受 storage URI;留空用默认值,其它写法(如相对路径 workspace/workflows)拒绝激活。 */
@@ -293,7 +273,7 @@ function resolveUri(key, input, fallback) {
293
273
  if (!s)
294
274
  return fallback;
295
275
  if (!isStorageUri(s)) {
296
- throw new Error(`plugin-workflow 配置错误: ${key}="${s}" 不是 storage URI,请写成 <根名>:/<路径>(如 ${fallback}),或删掉该键使用默认值`);
276
+ throw configError(`${key}="${s}" 不是 storage URI,请写成 <根名>:/<路径>(如 ${fallback}),或删掉该键使用默认值`);
297
277
  }
298
278
  return s;
299
279
  }
@@ -305,7 +285,7 @@ const uses = {
305
285
  storage: optional(storage),
306
286
  /** tool 节点的执行入口,兼 AI 工具面的登记口 */
307
287
  tools: optional(tools),
308
- /** 工作流页与页面动作的登记口;无 WebUI 时引擎照常运行 */
288
+ /** 工作流页的登记口;无 WebUI 时引擎照常运行 */
309
289
  webui: optional(webuiServer),
310
290
  events,
311
291
  /** agent 节点经 'agent:turn:after' 捕获本轮回复 */
@@ -329,22 +309,24 @@ export default definePlugin({
329
309
  });
330
310
  async function run(caps) {
331
311
  const { events, hooks, lifecycle, provide, tools, webui } = caps;
332
- const cfg = parseConfig(configSchema, caps.config, caps.logger);
312
+ const cfg = parseConfig(configSchema, caps.config.use, caps.logger.use);
333
313
  const config = {
334
314
  ...cfg,
335
315
  defsDir: resolveUri('defsDir', cfg.defsDir, configSchema.defsDir.default),
336
316
  runsFile: resolveUri('runsFile', cfg.runsFile, configSchema.runsFile.default),
337
317
  maxRuns: cfg.maxRuns > 0 ? cfg.maxRuns : configSchema.maxRuns.default,
338
318
  };
339
- const logger = caps.logger.child('workflow');
340
- const storageGateway = createStorageGateway(caps.storage);
341
- const loader = new WorkflowLoader(storageGateway, config.defsDir, logger);
319
+ const logger = caps.logger.use.child('workflow');
320
+ const loader = new WorkflowLoader(caps.storage.use, config.defsDir, logger);
342
321
  const scanned = await loader.loadAll();
343
- const runStore = new RunStore(storageGateway, config.runsFile, config.maxRuns, logger);
322
+ const runStore = new RunStore(caps.storage.use, config.runsFile, config.maxRuns, logger);
344
323
  await runStore.init();
345
- const cancelTokens = new Map();
324
+ /** 在飞 run 的取消开关,按 runId */
325
+ const aborts = new Map();
326
+ /** 在飞的 run:拆卸先中止,再等它们收尾,被取消的 run 也要把终态写进运行历史 */
327
+ const running = new Set();
346
328
  // ── 触发管理器:内部 cron/interval/event 监听 ──
347
- const triggers = new TriggerManager({ cronEngine: caps.cronEngine, events, logger }, (workflowId, source, payload) => {
329
+ const triggers = new TriggerManager({ cronEngine: caps.cronEngine, events: events.use, logger }, (workflowId, source, payload) => {
348
330
  // 异步触发,不阻塞触发源;event 触发的 payload({args})作为 vars 注入,{{vars.X}} 才读得到
349
331
  runById(workflowId, payload ?? {}, source).catch(err => {
350
332
  logger.error(`触发执行 workflow=${workflowId} source=${source} 失败: ${err instanceof Error ? err.message : err}`);
@@ -357,15 +339,22 @@ async function run(caps) {
357
339
  for (const def of loader.list())
358
340
  triggers.register(def);
359
341
  // ── 订阅外部 trigger:fired(来自 scheduler / 其他触发源)──
360
- events.on('trigger:fired', info => {
342
+ events.use.on('trigger:fired', info => {
361
343
  if (!info?.workflowId)
362
344
  return;
363
345
  runById(info.workflowId, info.payload ?? {}, info.source ?? `trigger:${info.type}`).catch(err => {
364
346
  logger.error(`trigger:fired workflow=${info.workflowId} 执行失败: ${err instanceof Error ? err.message : err}`);
365
347
  });
366
348
  });
367
- // ── 核心:跑一次 workflow ──
368
- async function runById(workflowId, extraVars, triggerSource, caller) {
349
+ // ── 核心:跑一次 workflow(登记进 running,拆卸据此等它收尾)──
350
+ function runById(...args) {
351
+ const pending = execute(...args);
352
+ running.add(pending);
353
+ const settle = () => running.delete(pending);
354
+ pending.then(settle, settle);
355
+ return pending;
356
+ }
357
+ async function execute(workflowId, extraVars, triggerSource, caller) {
369
358
  const def = loader.get(workflowId);
370
359
  if (!def)
371
360
  throw new Error(`workflow "${workflowId}" 不存在`);
@@ -373,8 +362,8 @@ async function run(caps) {
373
362
  throw new Error(`workflow "${workflowId}" 已禁用`);
374
363
  const runId = `${workflowId}-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
375
364
  const vars = { ...(def.vars ?? {}), ...extraVars };
376
- const cancelToken = { cancelled: false };
377
- cancelTokens.set(runId, cancelToken);
365
+ const abort = new AbortController();
366
+ aborts.set(runId, abort);
378
367
  const run = {
379
368
  runId,
380
369
  workflowId,
@@ -385,13 +374,14 @@ async function run(caps) {
385
374
  nodes: def.nodes.map(n => ({ id: n.id, type: n.type, status: 'pending' })),
386
375
  };
387
376
  runStore.add(run);
388
- await events.emit('workflow:run:start', run);
377
+ page.invalidate();
378
+ await events.use.emit('workflow:run:start', run);
389
379
  logger.info(`run=${runId} 启动 (trigger=${triggerSource})`);
390
380
  try {
391
381
  const result = await runDag({
392
382
  tools,
393
- events,
394
- hooks,
383
+ events: events.use,
384
+ hooks: hooks.use,
395
385
  logger,
396
386
  def,
397
387
  runId,
@@ -399,19 +389,19 @@ async function run(caps) {
399
389
  // 运行时身份:经 workflow_run 工具触发时以 actor 透传【调用者】授权身份,使工作流
400
390
  // 内部工具与 agent/send_message 节点按【调用者】的权限等级过 authority 闸(而非匿名
401
391
  // level-0);owner 定义、谁调按谁裁决,杜绝借他人 workflow 提权。platform 保持
402
- // 'workflow' 会话语义(不再借调用者平台——那会污染定时任务归属/confirm 选路等分流)。
392
+ // 'workflow' 会话语义(不再借调用者平台——那会污染定时任务归属/审批的发起类别等分流)。
403
393
  // cron/event/webui 触发无调用者 → 保持匿名(仅能跑 public 工具)。
404
394
  toolCallContext: {
405
395
  sessionId: `workflow::${workflowId}`,
406
396
  platform: 'workflow',
407
397
  actor: caller?.platform && caller?.userId ? { platform: caller.platform, userId: caller.userId } : undefined,
408
398
  },
409
- cancelToken,
399
+ signal: abort.signal,
410
400
  onNodeDone: (info) => {
411
401
  const idx = run.nodes.findIndex(n => n.id === info.id);
412
402
  if (idx >= 0)
413
403
  run.nodes[idx] = info;
414
- events.emit('workflow:node:done', { runId, node: info }).catch(() => { });
404
+ events.use.emit('workflow:node:done', { runId, node: info }).catch(() => { });
415
405
  },
416
406
  });
417
407
  run.status = result.status;
@@ -420,11 +410,11 @@ async function run(caps) {
420
410
  run.finishedAt = Date.now();
421
411
  runStore.update(run);
422
412
  if (result.status === 'success') {
423
- await events.emit('workflow:run:done', run);
413
+ await events.use.emit('workflow:run:done', run);
424
414
  logger.info(`run=${runId} 完成 (${run.finishedAt - run.startedAt}ms)`);
425
415
  }
426
416
  else {
427
- await events.emit('workflow:run:error', run);
417
+ await events.use.emit('workflow:run:error', run);
428
418
  logger.warn(`run=${runId} ${result.status}: ${result.error ?? ''}`);
429
419
  }
430
420
  }
@@ -433,11 +423,12 @@ async function run(caps) {
433
423
  run.error = err instanceof Error ? err.message : String(err);
434
424
  run.finishedAt = Date.now();
435
425
  runStore.update(run);
436
- await events.emit('workflow:run:error', run);
426
+ await events.use.emit('workflow:run:error', run);
437
427
  logger.error(`run=${runId} 异常: ${run.error}`);
438
428
  }
439
429
  finally {
440
- cancelTokens.delete(runId);
430
+ aborts.delete(runId);
431
+ page.invalidate();
441
432
  }
442
433
  return run;
443
434
  }
@@ -461,6 +452,7 @@ async function run(caps) {
461
452
  loader.putMemory(def);
462
453
  }
463
454
  triggers.register(def);
455
+ page.invalidate();
464
456
  logger.info(`workflow 已定义: ${def.id} (持久化=${opts?.persist !== false})`);
465
457
  },
466
458
  async removeWorkflow(id) {
@@ -468,16 +460,17 @@ async function run(caps) {
468
460
  const had = await loader.removeDef(id);
469
461
  triggers.unregister(id);
470
462
  runStore.clearOnceFired(id); // 定义没了,once 记账不留孤儿:同 id 重建算新工作流
463
+ page.invalidate();
471
464
  return had;
472
465
  },
473
466
  async runWorkflow(id, vars, source, caller) {
474
467
  return await runById(id, vars ?? {}, source ?? 'manual', caller);
475
468
  },
476
469
  cancelRun(runId) {
477
- const t = cancelTokens.get(runId);
478
- if (!t)
470
+ const abort = aborts.get(runId);
471
+ if (!abort)
479
472
  return false;
480
- t.cancelled = true;
473
+ abort.abort();
481
474
  return true;
482
475
  },
483
476
  getRun(runId) {
@@ -487,25 +480,23 @@ async function run(caps) {
487
480
  return runStore.list(limit, workflowId);
488
481
  },
489
482
  };
490
- provide(workflow, service);
483
+ provide.use(workflow, service);
484
+ const page = defineWorkflowPage(webui.use, service, () => runStore.onceLedgerReadable());
491
485
  // ── AI 工具 ──
492
486
  // tools 晚上线也无妨:登记口在提供者缺席时先挂账,上线后自动补挂
493
487
  if (config.enableTools) {
494
- registerTools(tools, service, () => runStore.onceLedgerReadable());
488
+ registerTools(tools.use, service, () => runStore.onceLedgerReadable());
495
489
  }
496
- // ── WebUI ──
497
- for (const page of webuiPages)
498
- webui.registerPage(page);
499
- registerWebuiActions(webui, service, () => runStore.onceLedgerReadable());
500
490
  // ── 清理 ──
501
- lifecycle.onDispose(async () => {
491
+ lifecycle.use.onDispose(async () => {
502
492
  triggers.dispose();
503
- // 先置 cancelled 再清表:只 clear 的话在飞 run 仍持有自己的 token 引用,会继续跑完剩余
504
- // 节点、发事件,并把结果写回旧 RunStore 的历史快照
505
- for (const t of cancelTokens.values())
506
- t.cancelled = true;
507
- cancelTokens.clear();
508
- // 等排队中的运行历史 / once 记账写完再结束拆卸:否则 app.stop() 返回后仍有落盘在飞
493
+ // 中止全部在飞 run:不再调度新节点,阻塞中的 wait / agent 节点立即结束。再等它们收尾、排队中的运行历史 /
494
+ // once 记账写完才结束拆卸:否则 app.stop() 返回后仍有落盘在飞,bounce 时迟到的快照会盖掉新实例的记账。
495
+ // 不响应中止信号的工具节点至多让这里等到 disposeTimeoutMs;放弃等待后旧实例记为 lingering,同 id 的新实例要等那次
496
+ // run 真正落定、这里返回之后才起
497
+ for (const abort of aborts.values())
498
+ abort.abort();
499
+ await Promise.allSettled(running);
509
500
  await runStore.flushed();
510
501
  });
511
502
  logger.info(`工作流插件已启动 (${loader.list().length} 个定义已加载)`);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { CronEngine } from '@aalis/api-cron-engine';
2
2
  import type { WorkflowDef } from '@aalis/api-workflow';
3
- import type { Events, Logger, ServiceRef } from '@aalis/core';
3
+ import type { Events, Logger, ServiceSelection } from '@aalis/core';
4
4
  type FireFn = (workflowId: string, source: string, payload?: Record<string, unknown>) => void;
5
5
  /**
6
6
  * once 触发记账(由 RunStore 实现,落在运行历史同一份持久化里)。
@@ -16,7 +16,7 @@ interface OnceLedger {
16
16
  }
17
17
  /** 触发器登记用到的能力:cron / interval 经 cron-engine 订阅,event 触发器订阅事件总线。 */
18
18
  export interface TriggerCaps {
19
- cronEngine: ServiceRef<CronEngine>;
19
+ cronEngine: ServiceSelection<CronEngine>;
20
20
  events: Events;
21
21
  logger: Logger;
22
22
  }
@@ -1 +1 @@
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"}
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,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAWpE,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,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,UAAU,CAA+B;IACjD,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;IAoGhC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAkBpC,WAAW;IACX,OAAO,IAAI,IAAI;CAQhB"}
package/dist/triggers.js CHANGED
@@ -36,7 +36,7 @@ export class TriggerManager {
36
36
  switch (t.type) {
37
37
  case 'cron': {
38
38
  try {
39
- const dispose = this.cronEngine.require().subscribe(t.expr, () => {
39
+ const dispose = this.cronEngine.use.subscribe(t.expr, () => {
40
40
  this.fire(def.id, `cron:${t.expr}`);
41
41
  });
42
42
  this.cronDisposers.set(def.id, dispose);
@@ -51,7 +51,7 @@ export class TriggerManager {
51
51
  const sec = Math.max(1, Math.floor(t.seconds));
52
52
  const expr = `@every ${sec}s`;
53
53
  try {
54
- const dispose = this.cronEngine.require().subscribe(expr, () => {
54
+ const dispose = this.cronEngine.use.subscribe(expr, () => {
55
55
  this.fire(def.id, `interval:${sec}s`);
56
56
  });
57
57
  this.cronDisposers.set(def.id, dispose);
@@ -79,36 +79,30 @@ export class TriggerManager {
79
79
  this.logger.warn(`workflow ${def.id} once.runAt 无法解析: ${t.runAt}`);
80
80
  break;
81
81
  }
82
- // 记账后再触发:这道闸同时挡住同 tick 内重复注册各排一次 setImmediate 的重复触发
82
+ // 先记账再触发;已有记账的不再触发
83
83
  const fireOnce = () => {
84
84
  if (this.once.onceFiredAt(def.id) !== undefined)
85
85
  return;
86
86
  this.once.markOnceFired(def.id);
87
87
  this.fire(def.id, `once:${t.runAt}`);
88
88
  };
89
- const delay = targetMs - Date.now();
90
- if (delay <= 0) {
91
- // runAt 已过且从未触发过:注册时立即补触发一次
92
- setImmediate(fireOnce);
93
- }
94
- else {
95
- // 远期 runAt 分段重排:setTimeout 的 delay 超过 2^31-1ms(约 24.8 天)会溢出成
96
- // 立即触发,把"一个月后跑"变成"现在就跑"。每段最多排到上限,段末若离 runAt 还有
97
- // 1s 以上就续排下一段、不记账,直到真正到点才 fireOnce。
98
- const arm = (wait) => {
99
- const timer = setTimeout(() => {
100
- const remain = targetMs - Date.now();
101
- if (remain > 1000) {
102
- arm(Math.min(remain, MAX_ONCE_TIMEOUT_MS));
103
- return;
104
- }
105
- this.onceTimers.delete(def.id);
106
- fireOnce();
107
- }, wait);
108
- this.onceTimers.set(def.id, timer);
109
- };
110
- arm(Math.min(delay, MAX_ONCE_TIMEOUT_MS));
111
- }
89
+ // runAt 已过的排 0ms,下一轮定时器就补触发(负数延迟会引来运行时告警);与远期的同记在 onceTimers,
90
+ // unregister / dispose 一并撤掉。
91
+ // 远期 runAt 分段重排:setTimeout 的 delay 超过 2^31-1ms(约 24.8 天)会溢出成立即触发,把"一个月后跑"变成
92
+ // "现在就跑"。每段最多排到上限,段末若离 runAt 还有 1s 以上就续排下一段、不记账,直到真正到点才 fireOnce。
93
+ const arm = (wait) => {
94
+ const timer = setTimeout(() => {
95
+ const remain = targetMs - Date.now();
96
+ if (remain > 1000) {
97
+ arm(Math.min(remain, MAX_ONCE_TIMEOUT_MS));
98
+ return;
99
+ }
100
+ this.onceTimers.delete(def.id);
101
+ fireOnce();
102
+ }, wait);
103
+ this.onceTimers.set(def.id, timer);
104
+ };
105
+ arm(Math.max(0, Math.min(targetMs - Date.now(), MAX_ONCE_TIMEOUT_MS)));
112
106
  break;
113
107
  }
114
108
  case 'event': {
@@ -1 +1 @@
1
- {"version":3,"file":"triggers.js","sourceRoot":"","sources":["../src/triggers.ts"],"names":[],"mappings":"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"}
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.14.1",
3
+ "version": "0.15.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -24,24 +24,24 @@
24
24
  "dist"
25
25
  ],
26
26
  "dependencies": {
27
- "@aalis/schema-config": ">=0.14.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",
27
+ "@aalis/schema-config": ">=0.15.0 <1.0.0",
28
+ "@aalis/api-cron-engine": ">=0.8.0 <1.0.0",
29
+ "@aalis/api-storage": ">=0.8.0 <1.0.0",
30
+ "@aalis/api-tools": ">=0.11.0 <1.0.0",
31
+ "@aalis/api-webui": ">=0.12.0 <1.0.0",
32
+ "@aalis/api-workflow": ">=0.12.0 <1.0.0",
33
33
  "yaml": "^2.7.0",
34
- "@aalis/api-hooks": ">=0.1.0 <1.0.0"
34
+ "@aalis/api-hooks": ">=0.2.0 <1.0.0"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@types/node": "^22.0.0",
38
38
  "typescript": "^5.7.0",
39
- "@aalis/core": "0.19.1",
40
- "@aalis/api-agent": "0.9.1",
41
- "@aalis/schema-message": "0.9.1"
39
+ "@aalis/core": "0.20.0",
40
+ "@aalis/api-agent": "0.10.0",
41
+ "@aalis/schema-message": "0.10.0"
42
42
  },
43
43
  "peerDependencies": {
44
- "@aalis/core": ">=0.18.0 <1.0.0"
44
+ "@aalis/core": ">=0.20.0 <1.0.0"
45
45
  },
46
46
  "aalis": {
47
47
  "service": {