@aalis/plugin-workflow 0.14.1 → 0.16.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,28 +1,40 @@
1
+ import type { GatewayService } from '@aalis/api-gateway';
1
2
  import type { Hooks } from '@aalis/api-hooks';
2
- import type { BoundTools, ToolCallContext } from '@aalis/api-tools';
3
+ import { type ToolCallRequest, type ToolService } from '@aalis/api-tools';
3
4
  import type { NodeRunInfo, WorkflowDef } from '@aalis/api-workflow';
4
- import type { Events, Logger } from '@aalis/core';
5
+ import type { Events, Logger, ServiceSelection } from '@aalis/core';
6
+ import { type TextRef } from '@aalis/schema-i18n';
5
7
  /**
6
- * 执行一次 DAG 用到的能力:tool 节点调工具、send-message / agent 节点派发消息、
7
- * agent 节点经钩子捕获本轮回复。引擎不持有插件激活本身,只收这几样。
8
+ * 执行一次 DAG 用到的能力:tool 节点调工具、send-message 节点经事件派发消息、agent 节点经网关送达指令并经钩子捕获它那一轮的
9
+ * 回复。引擎不持有插件激活本身,只收这几样。
8
10
  */
9
11
  export interface EngineCaps {
10
- tools: BoundTools;
12
+ tools: Pick<ServiceSelection<ToolService>, 'present' | 'use'>;
11
13
  events: Events;
12
14
  hooks: Hooks;
15
+ /** agent 节点的送达入口:不在时 agent 节点失败 */
16
+ gateway: Pick<ServiceSelection<GatewayService>, 'present' | 'use'>;
13
17
  logger: Logger;
14
18
  }
15
- /** 校验定义的节点字段与 deps 合法(必填字段齐全;不引用未知节点;不形成环);返回错误消息或 null */
16
- export declare function validateGraph(def: WorkflowDef): string | null;
19
+ /**
20
+ * 校验定义的节点字段与 deps 合法(必填字段齐全;不引用未知节点;不形成环);返回原因或 null。原因给人看(工作流页),
21
+ * 也经 workflow_define 交给模型(取原文)
22
+ */
23
+ export declare function validateGraph(def: WorkflowDef): TextRef | null;
24
+ /** 接住的报错作原因:文字对象的参数截短,字符串照旧 */
25
+ export declare function errorReason(err: unknown): string | TextRef;
17
26
  interface RunOptions extends EngineCaps {
18
27
  def: WorkflowDef;
19
28
  runId: string;
20
29
  vars: Record<string, unknown>;
21
- toolCallContext: ToolCallContext;
22
- /** 取消信号容器;外部置 cancelled=true 后引擎不再调度新节点 */
23
- cancelToken: {
24
- cancelled: boolean;
25
- };
30
+ toolCallContext: ToolCallRequest;
31
+ /** 调起这次运行的会话(经 workflow_run 调起时有):指向它的 agent 节点立即失败 */
32
+ callerSessionId?: string;
33
+ /**
34
+ * 取消信号:中止后不再调度新节点,阻塞中的 wait / agent 节点立即失败;tool 节点经 toolCallContext.signal 收到,
35
+ * 是否提前返回由工具决定
36
+ */
37
+ signal: AbortSignal;
26
38
  /** 节点完成回调(用于持久化进度 + 发事件) */
27
39
  onNodeDone?: (info: NodeRunInfo) => void;
28
40
  }
@@ -34,7 +46,7 @@ export declare function runDag(opts: RunOptions): Promise<{
34
46
  status: 'success' | 'failed' | 'cancelled';
35
47
  nodes: NodeRunInfo[];
36
48
  outputs: Record<string, unknown>;
37
- error?: string;
49
+ error?: string | TextRef;
38
50
  }>;
39
51
  export {};
40
52
  //# sourceMappingURL=engine.d.ts.map
@@ -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":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAkB,KAAK,eAAe,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1F,OAAO,KAAK,EAEV,WAAW,EAKX,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAa,KAAK,OAAO,EAAoC,MAAM,oBAAoB,CAAC;AAS/F;;;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,mCAAmC;IACnC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,CAAC;IACnE,MAAM,EAAE,MAAM,CAAC;CAChB;AAkFD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,GAAG,IAAI,CAiC9D;AA8ID,+BAA+B;AAC/B,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAG1D;AAID,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,uDAAuD;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;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,GAAG,OAAO,CAAC;CAC1B,CAAC,CAyFD"}
package/dist/engine.js CHANGED
@@ -1,7 +1,14 @@
1
1
  // ============================================================
2
2
  // engine.ts — DAG 执行引擎
3
3
  // ============================================================
4
+ import { AsyncLocalStorage } from 'node:async_hooks';
5
+ import { actingIdentity } from '@aalis/api-tools';
6
+ import { TextError, textOf, toSource, truncateParams } from '@aalis/schema-i18n';
7
+ import { MAX_INTERVAL_SECONDS } from '@aalis/util-cron';
8
+ import { t } from './texts.js';
4
9
  const MAX_OUTPUT_PREVIEW = 1000;
10
+ /** 原因最多多少字:文字对象的参数截到它(上游的整段报错可能在参数里),随运行历史落盘 */
11
+ const ERROR_MAX = 200;
5
12
  // ─── 模板插值 ────────────────────────────────────────
6
13
  const TPL_RE = /\{\{\s*(vars|outputs)\.([\w.[\]]+)\s*\}\}/g;
7
14
  /** 解析 outputs.foo.bar / outputs.foo[0].x 这类访问路径 */
@@ -53,44 +60,54 @@ function interpolateValue(v, vars, outputs) {
53
60
  return v;
54
61
  }
55
62
  // ─── 拓扑校验 ────────────────────────────────────────
56
- /** 按节点类型校验必填字段(运行期 raw 可能缺字段);返回错误消息或 null */
63
+ /**
64
+ * 按节点类型校验必填字段(运行期 raw 可能缺字段);返回原因或 null。wait 的 seconds 与 agent 的 timeoutSeconds 交给 setTimeout,
65
+ * 与触发器的固定间隔同一个上限:超过 2^31-1 毫秒时 Node 按 1 毫秒处理,等待立刻结束、agent 节点立刻超时
66
+ */
57
67
  function nodeFieldError(node) {
58
68
  const r = node;
59
69
  const id = String(r.id ?? '?');
60
70
  const filled = (v) => typeof v === 'string' && v.trim().length > 0;
71
+ const missing = (field) => t('missingField', { id, type: node.type, field });
72
+ const tooLong = (field, value) => typeof value === 'number' && value > MAX_INTERVAL_SECONDS
73
+ ? t('secondsTooLong', { id, type: node.type, field, value: String(value), max: MAX_INTERVAL_SECONDS })
74
+ : null;
61
75
  switch (node.type) {
62
76
  case 'tool':
63
- return filled(r.tool) ? null : `节点 "${id}"(tool) 缺少 tool 字段`;
77
+ return filled(r.tool) ? null : missing('tool');
64
78
  case 'send-message':
65
79
  if (!filled(r.content))
66
- return `节点 "${id}"(send-message) 缺少 content 字段`;
80
+ return missing('content');
67
81
  if (!filled(r.sessionId))
68
- return `节点 "${id}"(send-message) 缺少 sessionId 字段`;
82
+ return missing('sessionId');
69
83
  return null;
70
84
  case 'wait':
71
- return typeof r.seconds === 'number' && Number.isFinite(r.seconds)
72
- ? null
73
- : `节点 "${id}"(wait) 缺少数值字段 seconds`;
85
+ if (typeof r.seconds !== 'number' || !Number.isFinite(r.seconds))
86
+ return t('missingSeconds', { id });
87
+ return tooLong('seconds', r.seconds);
74
88
  case 'agent':
75
- return filled(r.instruction) ? null : `节点 "${id}"(agent) 缺少 instruction 字段`;
89
+ return filled(r.instruction) ? tooLong('timeoutSeconds', r.timeoutSeconds) : missing('instruction');
76
90
  default:
77
- return `节点 "${id}" 类型未知: ${String(r.type ?? '?')}`;
91
+ return t('unknownNodeType', { id, type: String(r.type ?? '?') });
78
92
  }
79
93
  }
80
- /** 校验定义的节点字段与 deps 合法(必填字段齐全;不引用未知节点;不形成环);返回错误消息或 null */
94
+ /**
95
+ * 校验定义的节点字段与 deps 合法(必填字段齐全;不引用未知节点;不形成环);返回原因或 null。原因给人看(工作流页),
96
+ * 也经 workflow_define 交给模型(取原文)
97
+ */
81
98
  export function validateGraph(def) {
82
99
  const ids = new Set(def.nodes.map(n => n.id));
83
100
  if (ids.size !== def.nodes.length)
84
- return '节点 id 重复';
101
+ return t('duplicateNodeId');
85
102
  for (const n of def.nodes) {
86
103
  const fieldErr = nodeFieldError(n);
87
104
  if (fieldErr)
88
105
  return fieldErr;
89
106
  for (const d of n.deps ?? []) {
90
107
  if (!ids.has(d))
91
- return `节点 "${n.id}" 引用未知 dep "${d}"`;
108
+ return t('unknownDep', { id: n.id, dep: d });
92
109
  if (d === n.id)
93
- return `节点 "${n.id}" 自引用`;
110
+ return t('selfDep', { id: n.id });
94
111
  }
95
112
  }
96
113
  // Kahn 检测环
@@ -116,13 +133,13 @@ export function validateGraph(def) {
116
133
  }
117
134
  }
118
135
  if (visited < def.nodes.length)
119
- return '节点存在依赖环';
136
+ return t('dependencyCycle');
120
137
  return null;
121
138
  }
122
139
  async function execTool(node, ec) {
123
- const service = ec.tools.current;
124
- if (!service)
125
- throw new Error("'tools' 服务不可用");
140
+ if (!ec.tools.present)
141
+ throw new TextError(t('noTools'));
142
+ const service = ec.tools.use;
126
143
  const args = (interpolateValue(node.args ?? {}, ec.vars, ec.outputs) ?? {});
127
144
  // 工作流节点产出是文本:工具交给主模型看的图(images)没有消费者,只取 content
128
145
  return (await service.execute(node.tool, args, ec.toolCallContext)).content;
@@ -137,85 +154,100 @@ async function execSendMessage(node, ec) {
137
154
  platform,
138
155
  source: `workflow:${ec.workflowId}`,
139
156
  };
140
- // 授权身份透传:与 tool 节点同源(run 级调用者),目标会话按调用者等级执行;
141
- // 无调用者(cron/event 触发)保持匿名。
142
- if (ec.toolCallContext.actor)
143
- message.actor = ec.toolCallContext.actor;
157
+ // 授权身份透传:与 tool 节点同源(run 级的运行身份,即工具调用上下文的唯一参与者,见 index.ts 的 execute),目标会话按它的
158
+ // 等级执行;匿名的不带。
159
+ const runner = actingIdentity(ec.toolCallContext);
160
+ if (runner.userId)
161
+ message.actor = runner;
144
162
  await ec.events.emit('inbound:message', message);
145
163
  return `sent to ${sessionId}@${platform} (${content.length} chars)`;
146
164
  }
147
- async function execWait(node) {
165
+ function execWait(node, signal) {
148
166
  const ms = Math.max(0, Math.floor(node.seconds * 1000));
149
- await new Promise(resolve => setTimeout(resolve, ms));
150
- return `waited ${node.seconds}s`;
167
+ return new Promise((resolve, reject) => {
168
+ const timer = setTimeout(() => {
169
+ signal.removeEventListener('abort', stop);
170
+ resolve(`waited ${node.seconds}s`);
171
+ }, ms);
172
+ const stop = () => {
173
+ clearTimeout(timer);
174
+ reject(new TextError(t('cancelled')));
175
+ };
176
+ signal.addEventListener('abort', stop, { once: true });
177
+ });
151
178
  }
152
179
  const DEFAULT_AGENT_TIMEOUT_SEC = 120;
153
180
  /**
154
- * agent 节点:派发指令给 agent 并等待本轮回复(复用 delegate_to_session 的 join 机制)。
155
- * 在 emit 前注册 `agent:turn:after` 监听,按目标 sessionId 捕获首条回复;超时或
156
- * outcome=error/aborted 抛错(=> 节点失败)。回复文本作为节点结果,可被 `{{outputs.X}}` 下游引用。
181
+ * agent 节点:经网关把指令送进目标会话,等它开的那一轮的回复。指令带来源 `workflow:<编排>:<节点>`,在目标会话里单独成一轮,
182
+ * 排在那里在跑的一轮之后;送达在节点自己的异步上下文里调用,agent 让那一轮跑在送达它的调用的上下文里,节点据此只认自己那一轮的
183
+ * agent:turn:after(同一会话里别的回合、同一编排别的运行的同名节点都不认)。回复文本作为节点结果,可被 `{{outputs.X}}` 下游引用。
157
184
  *
158
- * 注意事项(见 AgentNodeSpec 文档):
159
- * - `source` 含 nodeId(`workflow:<wf>:<nodeId>`)以隔离 agent 的并发 lane——否则同一会话上的
160
- * 两个 agent 回合会因 lane 相同而互相 abort。但**显式指定相同 sessionId 的并行 agent 节点**仍会
161
- * 因 `agent:turn:after` 按 sessionId 匹配而串扰捕获——省略 sessionId(默认一次性子会话)可彻底避免。
162
- * - 等待期间不感知 run 取消(与 wait 节点一致),最长阻塞至 timeoutSeconds。
163
- * - 目标会话处于禁言期时(禁言不看作用域),或落在 flow-control 作用域内且限速窗口已满时,消息会被 flow 相位
164
- * 吞掉而永不回本节点的 `agent:turn:after`,节点会等到超时才失败。带 source 的消息不经触发策略、不受回复后冷却;限速只在目标会话落入 flow-control 作用域时生效。
185
+ * 失败:outcome 为 error/aborted;指向调起这次运行的会话(那一轮在等这次运行,节点开不了轮)立即失败、不送达;网关不在时失败;
186
+ * 送达返回(这条输入落定)时还没认到结局,就是在网关相位被吞(禁言、限速等)或被放掉,立即失败;超时;run 取消时立即停止等待
187
+ * (已送达的回合不随之中止,照常跑完,回复不再被捕获)。
165
188
  */
166
189
  async function execAgent(node, ec) {
167
190
  const instruction = interpolateString(node.instruction, ec.vars, ec.outputs);
168
- // 省略 sessionId 时为本节点生成一次性隔离子会话,确保并行 agent 节点互不串扰、join 不混淆。
191
+ // 省略 sessionId 时为本节点生成一次性隔离子会话。这类会话没有出生平台:平台档按入口平台选,场所为默认工作区。
169
192
  const sessionId = node.sessionId
170
193
  ? interpolateString(node.sessionId, ec.vars, ec.outputs)
171
- : `workflow:agent:${ec.runId}:${node.id}`;
194
+ : `workflow::${ec.runId}::${node.id}`;
172
195
  const platform = interpolateString(node.platform ?? 'workflow', ec.vars, ec.outputs);
173
196
  const timeoutSec = node.timeoutSeconds && node.timeoutSeconds > 0 ? node.timeoutSeconds : DEFAULT_AGENT_TIMEOUT_SEC;
174
- const timeoutMs = Math.floor(timeoutSec * 1000);
175
- let captured;
176
- let resolveWait;
177
- const waitPromise = new Promise(resolve => {
178
- resolveWait = resolve;
179
- });
180
- // 注册必须在 emit 之前,避免目标 agent 同步回复时错过监听窗口。
181
- const dispose = ec.hooks.middleware('agent:turn:after', async (data, next) => {
182
- await next();
183
- if (captured)
184
- return;
185
- if (data.sessionId !== sessionId)
186
- return;
187
- captured = { reply: data.reply ?? '', outcome: data.outcome };
188
- resolveWait?.();
189
- });
197
+ if (sessionId === ec.callerSessionId) {
198
+ throw new TextError(t('agentCallerSession', { session: sessionId }));
199
+ }
200
+ if (!ec.gateway.present)
201
+ throw new TextError(t('agentNoGateway', { session: sessionId }));
202
+ const gateway = ec.gateway.use;
190
203
  const incoming = {
191
204
  content: instruction,
192
205
  sessionId,
193
- // source 含 nodeId:隔离 agent 的并发 lane(laneKey=sessionId::source),
194
- // 避免同会话上的两个 agent 节点回合互相 abort。
195
206
  source: `workflow:${ec.workflowId}:${node.id}`,
196
207
  platform,
197
208
  triggerType: 'proactive',
198
209
  };
199
- // 授权身份透传:同一次 run 里 tool 节点带调用者身份而 agent 节点匿名是自相矛盾
200
- // (2026-08-24 审计),与 execSendMessage 同源补齐;无调用者保持匿名。
201
- if (ec.toolCallContext.actor)
202
- incoming.actor = ec.toolCallContext.actor;
203
- const timeoutHandle = setTimeout(() => resolveWait?.(), timeoutMs);
210
+ // 授权身份透传:同一次 run 里 tool 节点带运行身份,agent 节点匿名就自相矛盾;与 execSendMessage 同源,匿名的不带。
211
+ const runner = actingIdentity(ec.toolCallContext);
212
+ if (runner.userId)
213
+ incoming.actor = runner;
214
+ // 节点自己的异步上下文:agent 在送达这条指令的调用里跑它开的那一轮
215
+ const scope = new AsyncLocalStorage();
216
+ let captured;
217
+ const dispose = ec.hooks.middleware('agent:turn:after', async (data, next) => {
218
+ await next();
219
+ if (!captured && scope.getStore() && data.sessionId === sessionId) {
220
+ captured = { reply: data.reply ?? '', outcome: data.outcome };
221
+ }
222
+ });
223
+ let timer;
224
+ let stop = () => { };
225
+ const waiting = new Promise(resolve => {
226
+ timer = setTimeout(() => resolve('timeout'), Math.floor(timeoutSec * 1000));
227
+ stop = () => resolve('cancelled');
228
+ ec.signal.addEventListener('abort', stop, { once: true });
229
+ });
230
+ let end;
204
231
  try {
205
- await ec.events.emit('inbound:message', incoming);
206
- await waitPromise;
232
+ const delivered = scope.run(true, () => gateway.ingressMessage(incoming)).then(() => 'delivered');
233
+ end = await Promise.race([delivered, waiting]);
207
234
  }
208
235
  finally {
209
- clearTimeout(timeoutHandle);
236
+ clearTimeout(timer);
237
+ ec.signal.removeEventListener('abort', stop);
210
238
  dispose();
211
239
  }
212
- if (!captured) {
213
- throw new Error(`agent 节点超时(${timeoutSec}s 内未收到 agent:turn:after,会话=${sessionId})`);
214
- }
215
- if (captured.outcome === 'error' || captured.outcome === 'aborted') {
216
- throw new Error(`agent 节点未正常完成(outcome=${captured.outcome},会话=${sessionId})`);
240
+ if (captured) {
241
+ if (captured.outcome === 'error' || captured.outcome === 'aborted') {
242
+ throw new TextError(t('agentNotCompleted', { outcome: captured.outcome, session: sessionId }));
243
+ }
244
+ return captured.reply;
217
245
  }
218
- return captured.reply;
246
+ if (end === 'cancelled')
247
+ throw new TextError(t('cancelled'));
248
+ if (end === 'timeout')
249
+ throw new TextError(t('agentTimeout', { seconds: timeoutSec, session: sessionId }));
250
+ throw new TextError(t('agentNoTurn', { session: sessionId }));
219
251
  }
220
252
  async function executeNode(node, ec) {
221
253
  switch (node.type) {
@@ -224,22 +256,39 @@ async function executeNode(node, ec) {
224
256
  case 'send-message':
225
257
  return await execSendMessage(node, ec);
226
258
  case 'wait':
227
- return await execWait(node);
259
+ return await execWait(node, ec.signal);
228
260
  case 'agent':
229
261
  return await execAgent(node, ec);
230
- default: {
231
- const _exhaustive = node;
232
- throw new Error(`未知节点类型: ${_exhaustive.type}`);
233
- }
234
262
  }
235
263
  }
264
+ /** 接住的报错作原因:文字对象的参数截短,字符串照旧 */
265
+ export function errorReason(err) {
266
+ const error = textOf(err);
267
+ return typeof error === 'string' ? error : truncateParams(error, ERROR_MAX);
268
+ }
236
269
  /**
237
270
  * 按 deps 拓扑分批执行;每一批可并行;失败立即终止后续批次。
238
271
  * 返回最终的 WorkflowRun(不含 runId/workflowId/startedAt 等元数据,由 caller 填充)。
239
272
  */
240
273
  export async function runDag(opts) {
241
- const { def, vars, tools, events, hooks, logger, runId, toolCallContext, cancelToken, onNodeDone } = opts;
274
+ const { def, vars, tools, events, hooks, gateway, logger, runId, callerSessionId, signal, onNodeDone } = opts;
242
275
  const outputs = {};
276
+ // tool 节点经 toolCallContext.signal 收到取消
277
+ const toolCallContext = { ...opts.toolCallContext, signal };
278
+ const ec = {
279
+ tools,
280
+ events,
281
+ hooks,
282
+ gateway,
283
+ logger,
284
+ workflowId: def.id,
285
+ runId,
286
+ vars,
287
+ outputs,
288
+ toolCallContext,
289
+ callerSessionId,
290
+ signal,
291
+ };
243
292
  const nodeMap = new Map(def.nodes.map(n => [n.id, n]));
244
293
  const indeg = new Map();
245
294
  const fan = new Map();
@@ -258,14 +307,13 @@ export async function runDag(opts) {
258
307
  async function runOne(id) {
259
308
  const node = nodeMap.get(id);
260
309
  const info = nodeRuns.get(id);
261
- if (cancelToken.cancelled) {
310
+ if (signal.aborted) {
262
311
  info.status = 'skipped';
263
312
  onNodeDone?.(info);
264
313
  return;
265
314
  }
266
315
  info.status = 'running';
267
316
  info.startedAt = Date.now();
268
- const ec = { tools, events, hooks, logger, workflowId: def.id, runId, vars, outputs, toolCallContext };
269
317
  try {
270
318
  const result = await executeNode(node, ec);
271
319
  info.status = 'success';
@@ -278,9 +326,9 @@ export async function runDag(opts) {
278
326
  catch (err) {
279
327
  info.status = 'failed';
280
328
  info.finishedAt = Date.now();
281
- info.error = err instanceof Error ? err.message : String(err);
282
- firstError ??= `节点 "${id}" 失败: ${info.error}`;
283
- logger.warn(`run=${runId} node=${id} failed: ${info.error}`);
329
+ info.error = errorReason(err);
330
+ firstError ??= truncateParams(t('nodeFailed', { id, error: info.error }), ERROR_MAX);
331
+ logger.warn(`run=${runId} node=${id} failed: ${toSource(info.error)}`);
284
332
  }
285
333
  finally {
286
334
  onNodeDone?.(info);
@@ -288,13 +336,13 @@ export async function runDag(opts) {
288
336
  }
289
337
  // 按层调度
290
338
  while (true) {
291
- if (cancelToken.cancelled || firstError)
339
+ if (signal.aborted || firstError)
292
340
  break;
293
341
  const ready = [...indeg.entries()].filter(([id, d]) => d === 0 && nodeRuns.get(id).status === 'pending');
294
342
  if (ready.length === 0)
295
343
  break;
296
344
  await Promise.all(ready.map(([id]) => runOne(id)));
297
- if (firstError || cancelToken.cancelled)
345
+ if (firstError || signal.aborted)
298
346
  break;
299
347
  // 把成功节点的下游 indeg 减一
300
348
  for (const [id] of ready) {
@@ -311,7 +359,7 @@ export async function runDag(opts) {
311
359
  info.status = 'skipped';
312
360
  }
313
361
  const allNodes = def.nodes.map(n => nodeRuns.get(n.id));
314
- if (cancelToken.cancelled)
362
+ if (signal.aborted)
315
363
  return { status: 'cancelled', nodes: allNodes, outputs, error: firstError ?? undefined };
316
364
  if (firstError)
317
365
  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,17 +1,21 @@
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
+ /** 判调用者是不是 owner,定运行身份;缺席时判不出谁是 owner,调用者与定义者不是同一身份的按匿名 */
13
+ authority: import("@aalis/core").OptionalUse<import("@aalis/api-authority").AuthorityService, import("@aalis/api-authority").AuthorityService>;
12
14
  events: import("@aalis/core").ServiceDescriptor<(identity: symbol) => import("@aalis/core").Events, import("@aalis/core").Events>;
13
15
  /** agent 节点经 'agent:turn:after' 捕获本轮回复 */
14
16
  hooks: import("@aalis/core").ServiceDescriptor<import("@aalis/api-hooks").HookRegistry, import("@aalis/api-hooks").Hooks>;
17
+ /** agent 节点经它送达指令;缺席时 agent 节点失败 */
18
+ gateway: import("@aalis/core").OptionalUse<import("@aalis/api-gateway").GatewayService, import("@aalis/api-gateway").GatewayService>;
15
19
  lifecycle: import("@aalis/core").ServiceDescriptor<(identity: symbol) => import("@aalis/core").LifecycleCap, import("@aalis/core").LifecycleCap>;
16
20
  logger: import("@aalis/core").ServiceDescriptor<(identity: symbol) => import("@aalis/core").Logger, import("@aalis/core").Logger>;
17
21
  config: import("@aalis/core").ServiceDescriptor<(identity: symbol) => Readonly<Record<string, unknown>>, Readonly<Record<string, unknown>>>;
@@ -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":"AAaA,OAAO,EAAkB,KAAK,UAAU,EAAS,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,KAAK,UAAU,EAA6B,MAAM,kBAAkB,CAAC;;IA6V5E,4CAA4C;;IAE5C,4BAA4B;;IAE5B,gCAAgC;;IAEhC,+BAA+B;;IAE/B,2DAA2D;;;IAG3D,0CAA0C;;IAE1C,oCAAoC;;;;;;;AAStC,wBAWG"}