@zmzai/agent-framework 0.12.0 → 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.
@@ -48,6 +48,60 @@ export function createDefaultChildSessionFactory(deps) {
48
48
  });
49
49
  };
50
50
  }
51
+ /** 进程内 AdmissionController 参考实现(Host 直接复用或替换为持久实现)。 */
52
+ export function createSubagentAdmission(limits) {
53
+ let global = 0;
54
+ const perRoot = new Map();
55
+ const listeners = new Set();
56
+ return {
57
+ tryAcquire(rootKey) {
58
+ if (global >= limits.global)
59
+ return false;
60
+ if ((perRoot.get(rootKey) ?? 0) >= limits.perRoot)
61
+ return false;
62
+ global += 1;
63
+ perRoot.set(rootKey, (perRoot.get(rootKey) ?? 0) + 1);
64
+ return true;
65
+ },
66
+ release(rootKey) {
67
+ if ((perRoot.get(rootKey) ?? 0) <= 0)
68
+ return;
69
+ perRoot.set(rootKey, perRoot.get(rootKey) - 1);
70
+ global = Math.max(0, global - 1);
71
+ for (const listener of listeners)
72
+ listener();
73
+ },
74
+ onRelease(listener) {
75
+ listeners.add(listener);
76
+ },
77
+ counts() {
78
+ return { global, perRoot: Object.fromEntries(perRoot) };
79
+ },
80
+ };
81
+ }
82
+ /** runChild 结构化 outcome → 协调记录状态投影(T03,PC02)。
83
+ * failed/cancelled/blocked/waiting_* 与 completed 一样进入记录——子失败不得
84
+ * 伪装完成;waiting_* 是非终态(出口互不替代,spec §8.2),终态才写 result。 */
85
+ function projectChildRunOutcome(outcome) {
86
+ const evidence = outcome.evidenceRefs?.length ? { evidenceRefs: outcome.evidenceRefs } : {};
87
+ switch (outcome.state) {
88
+ case "completed":
89
+ return { status: "completed", result: { outcome: "completed", summary: outcome.summary ?? "(无文本结果)", ...evidence } };
90
+ case "failed":
91
+ return {
92
+ status: "failed",
93
+ blockerReason: outcome.errorMessage ?? "子运行失败",
94
+ result: { outcome: "failed", summary: outcome.summary ?? (outcome.errorMessage ? `失败:${outcome.errorMessage}` : "子运行失败"), ...evidence },
95
+ };
96
+ case "cancelled":
97
+ return { status: "cancelled", result: { outcome: "cancelled", summary: outcome.summary ?? "(已取消)", ...evidence } };
98
+ case "blocked":
99
+ return { status: "blocked", blockerReason: outcome.errorMessage ?? (outcome.unknownSideEffect ? "副作用结果未知,需恢复核对" : "子运行阻塞") };
100
+ default:
101
+ // waiting_input / waiting_permission / waiting_external:非终态
102
+ return { status: outcome.state };
103
+ }
104
+ }
51
105
  export class SubagentCoordinator {
52
106
  deps;
53
107
  limits;
@@ -59,11 +113,20 @@ export class SubagentCoordinator {
59
113
  /** createServer 绑定的运行期服务(会话级 registry + 深度)。 */
60
114
  bound = null;
61
115
  createChildSession;
116
+ /** 根取消的 admission 截止(T05,PC09/spec §4.2):cancelTree 先关闸,
117
+ * pump/launch 不再启动该根的排队者;根终态不复活,截止随协调器生命周期。 */
118
+ admissionCutoff = new Set();
62
119
  constructor(deps) {
63
120
  this.deps = deps;
64
121
  this.limits = deps.limits ?? DEFAULT_LIMITS;
65
122
  this.createChildSession = deps.createChildSession
66
123
  ?? createDefaultChildSessionFactory({ store: deps.store, registryFor: (session) => this.resolveRegistry(session) });
124
+ // 共享许可的释放要能唤醒本协调器的队列泵(另一项目的协调器释放槽位后,
125
+ // 本项目排队者才能启动,PC03)。
126
+ deps.admission?.onRelease(() => this.pump());
127
+ // T04(spec §4.2)启动对账:内存队列只是缓存,凭 store 恢复
128
+ // (见 recover——宿主须保证同一 store 每进程只建一个协调器)。
129
+ this.recover();
67
130
  }
68
131
  get store() {
69
132
  if (!this.deps.store.subagents)
@@ -159,6 +222,10 @@ export class SubagentCoordinator {
159
222
  traceId: randomUUID(),
160
223
  }),
161
224
  spawnPayloadHash,
225
+ // T04(spec §4.2 持久队列):执行输入落记录——宿主重启后凭此恢复
226
+ // queued 子代理,不依赖进程内存。
227
+ prompt: input.prompt,
228
+ ...(input.replacesChildId ? { replacesChildId: input.replacesChildId } : {}),
162
229
  };
163
230
  const created = await this.createSubagentIdempotent(record);
164
231
  this.queue.push({ childId: created.childId, rootTaskId, prompt: input.prompt });
@@ -178,24 +245,132 @@ export class SubagentCoordinator {
178
245
  throw error;
179
246
  }
180
247
  }
248
+ /** 启动对账(T04/T06,spec §4.2):内存队列/活跃表只是缓存,进程重启后凭
249
+ * store 重建——queued(从未开始)凭记录里的 prompt 重新入队执行;
250
+ * running/cancelling 是上个进程的在途执行、结果未知 → 落 blocked 进恢复
251
+ * 审查(cancelling 补收 cancelled),不自动重放副作用;waiting_* 无活跃
252
+ * run、重启安全,保持原状。
253
+ * 另外(PC06 持久唤醒):in-process 唤醒 Set 随进程消失——「parked 父任务
254
+ * + 未消费 to_parent 结果」就是持久唤醒状态;终态子 + 未消费邮件 + 父任务
255
+ * running(parkedReason=children)时经 onChildTerminal 通道重建唤醒;父
256
+ * 任务终态/等待态不复活(§8.4/A29)。 */
257
+ recover() {
258
+ void (async () => {
259
+ const stale = await this.store.listSubagents({}).catch(() => []);
260
+ let requeued = 0;
261
+ const wakeCandidates = new Map();
262
+ for (const rec of stale) {
263
+ if (rec.status === "queued") {
264
+ this.queue.push({ childId: rec.childId, rootTaskId: rec.rootTaskId, prompt: rec.prompt ?? rec.goal });
265
+ requeued += 1;
266
+ }
267
+ else if (rec.status === "running" || rec.status === "cancelling") {
268
+ await this.store.updateSubagent(rec.childId, rec.revision, rec.status === "cancelling"
269
+ ? { status: "cancelled", times: { ...rec.times, endedAt: new Date().toISOString() } }
270
+ : { status: "blocked", blockerReason: "宿主重启:子运行中断,结果未知,需恢复核对(不自动重放副作用)", times: { ...rec.times, endedAt: new Date().toISOString() } })
271
+ .catch(() => undefined);
272
+ }
273
+ else if (isSubagentTerminal(rec.status)) {
274
+ wakeCandidates.set(rec.parentSessionId, rec);
275
+ }
276
+ }
277
+ if (requeued > 0)
278
+ this.pump();
279
+ // 持久唤醒对账:构造异步起步(首个 store 读即挂起),此处 holder/runner
280
+ // 已由宿主回填完成(Lectern 在 createAgentRuntime 返回后同步赋值)。
281
+ const taskStore = this.deps.store.task;
282
+ if (taskStore && this.deps.onChildTerminal) {
283
+ for (const [parentSessionId, child] of wakeCandidates) {
284
+ const task = await taskStore.getActiveTask(parentSessionId).catch(() => null);
285
+ if (!task || task.status !== "running")
286
+ continue; // 终态/等待态父不复活
287
+ const messages = await this.store.listMessages(child.childId).catch(() => []);
288
+ if (messages.some((m) => m.direction === "to_parent" && m.kind === "result" && !m.consumedByParent)) {
289
+ try {
290
+ this.deps.onChildTerminal(child, parentSessionId);
291
+ }
292
+ catch { /* 对账唤醒失败不影响其余恢复 */ }
293
+ }
294
+ }
295
+ }
296
+ })().catch(() => undefined);
297
+ }
298
+ /** 结果验收(T05,PC08/§9.4):父执行器记录 accepted / needs_revision /
299
+ * rejected,绑定子结果版本(childRevision=验收时的记录 revision)。
300
+ * 消费 ≠ 接受——drain 只代表看到了结果;验收是显式动作。needs_revision/
301
+ * rejected 不解除交付门禁:须 re-spawn(replacesChildId 关联替代)或复核
302
+ * 改判 accepted。仅终态子可验收;scope 树外拒绝。 */
303
+ async reviewChild(childId, decision, input = {}, scope) {
304
+ for (;;) {
305
+ const rec = await this.store.getSubagent(childId);
306
+ if (!rec)
307
+ throw new Error(`子代理不存在:${childId}`);
308
+ if (scope && rec.rootTaskId !== scope.rootTaskId)
309
+ throw new Error(`SCOPE_VIOLATION:childId 不在当前任务树内:${childId}`);
310
+ if (!isSubagentTerminal(rec.status))
311
+ throw new Error(`子代理尚未终态(${rec.status}),不能验收`);
312
+ const reviewedAt = new Date().toISOString();
313
+ try {
314
+ return await this.store.updateSubagent(childId, rec.revision, {
315
+ consumeState: decision,
316
+ review: { decision, ...(input.note ? { note: input.note } : {}), ...(input.evidenceRefs?.length ? { evidenceRefs: input.evidenceRefs } : {}), reviewedAt, childRevision: rec.revision },
317
+ });
318
+ }
319
+ catch (error) {
320
+ if (/SUBAGENT_REVISION_CONFLICT/.test(String(error)))
321
+ continue; // CAS 重试
322
+ throw error;
323
+ }
324
+ }
325
+ }
181
326
  /** agent_list:当前树内子代理 + 最近进度。 */
182
327
  async list(rootTaskId) {
183
328
  const all = await this.store.listSubagents({ rootTaskId });
184
329
  return all.map((r) => ({ ...r }));
185
330
  }
186
- /** agent_send:幂等投递;waiting_input 唤醒;终态拒绝(CHILD_TERMINAL)。 */
187
- async send(childId, payload, kind = "constraint", messageId = randomUUID()) {
331
+ /** agent_send:幂等投递;按子代理状态真正进入子上下文(T04,PC07)——
332
+ * queued:launch 时随原始 prompt 注入(见 launch 的消息组装);
333
+ * 活跃 run:经 deliverToChild 投递(宿主接 runner.prompt——活动会话的
334
+ * FIFO queued prompt 即安全边界,requestId=messageId 幂等);
335
+ * waiting_input(无活跃 run):重新入队,runChild 携带新消息续跑;
336
+ * waiting_permission/waiting_external/blocked:只落邮箱——普通消息不得
337
+ * 替代审批或解除安全阻塞(spec §8.2 出口互不替代)。
338
+ * 终态拒绝(CHILD_TERMINAL);scope(T03):树外 childId 拒绝。 */
339
+ async send(childId, payload, kind = "constraint", messageId = randomUUID(), scope) {
188
340
  const rec = await this.store.getSubagent(childId);
189
341
  if (!rec)
190
342
  return { delivered: false, reason: "CHILD_NOT_FOUND" };
343
+ if (scope && rec.rootTaskId !== scope.rootTaskId)
344
+ return { delivered: false, reason: "CHILD_OUT_OF_SCOPE" };
191
345
  if (isSubagentTerminal(rec.status))
192
346
  return { delivered: false, reason: "CHILD_TERMINAL" }; // 不复活旧子代理(spec §8.2)
193
347
  await this.store.appendMessage({ messageId, childId, direction: "to_child", kind, payload, createdAt: new Date().toISOString() });
348
+ if (rec.status === "queued")
349
+ return { delivered: true };
350
+ if (this.active.has(childId)) {
351
+ await this.deps.deliverToChild?.(rec.childSessionId, payload, messageId);
352
+ return { delivered: true };
353
+ }
354
+ if (rec.status === "waiting_input" && !this.queue.some((q) => q.childId === childId)) {
355
+ this.queue.push({ childId, rootTaskId: rec.rootTaskId, prompt: rec.prompt ?? rec.goal });
356
+ this.pump();
357
+ }
194
358
  return { delivered: true };
195
359
  }
196
360
  /** agent_wait:最多 timeoutMs;等首个终态或需处理状态;无变化返回仍在运行。
197
- * 非 async 挂死——用活跃 run 的 done promise + 轮询兜底。 */
198
- async wait(childIds, timeoutMs = 30_000) {
361
+ * 非 async 挂死——用活跃 run 的 done promise + 轮询兜底。
362
+ * scope(T03):树外 childId 直接拒绝,不把其它树的状态泄露给调用方。 */
363
+ async wait(childIds, timeoutMs = 30_000, scope) {
364
+ if (scope) {
365
+ const out = [];
366
+ for (const id of childIds) {
367
+ const rec = await this.store.getSubagent(id);
368
+ if (rec && rec.rootTaskId !== scope.rootTaskId)
369
+ out.push(id);
370
+ }
371
+ if (out.length > 0)
372
+ throw new Error(`SCOPE_VIOLATION:childId 不在当前任务树内:${out.join(", ")}`);
373
+ }
199
374
  const deadline = Date.now() + timeoutMs;
200
375
  const read = async () => {
201
376
  const out = [];
@@ -222,12 +397,15 @@ export class SubagentCoordinator {
222
397
  }
223
398
  }
224
399
  /** agent_cancel:幂等标记 cancelling → 停止 admission → 取消 run 与后代 →
225
- * 终态确认由状态回调落 cancelled。返回已登记。 */
226
- async cancel(childId) {
400
+ * 终态确认由状态回调落 cancelled。返回已登记。
401
+ * scope(T03):树外 childId 拒绝——一个会话不能取消另一个根的后代。 */
402
+ async cancel(childId, scope) {
227
403
  for (;;) {
228
404
  const rec = await this.store.getSubagent(childId);
229
405
  if (!rec)
230
406
  return { cancelling: false, reason: "CHILD_NOT_FOUND" };
407
+ if (scope && rec.rootTaskId !== scope.rootTaskId)
408
+ return { cancelling: false, reason: "CHILD_OUT_OF_SCOPE" };
231
409
  if (isSubagentTerminal(rec.status))
232
410
  return { cancelling: false, reason: `CHILD_TERMINAL:${rec.status}` };
233
411
  if (rec.status === "cancelling")
@@ -267,8 +445,10 @@ export class SubagentCoordinator {
267
445
  this.notifyWaiters();
268
446
  return { cancelling: true };
269
447
  }
270
- /** 根 Task 取消(§8.4 父取消→全部后代):递归取消树。 */
448
+ /** 根 Task 取消(§8.4 父取消→全部后代):先关 admission 闸(该根的排队者
449
+ * 不再被 pump 启动——「取消瞬间被 pump 抢跑」是实测竞态),再递归收尾。 */
271
450
  async cancelTree(rootTaskId) {
451
+ this.admissionCutoff.add(rootTaskId);
272
452
  const children = await this.store.listSubagents({ rootTaskId });
273
453
  for (const child of children) {
274
454
  if (!isSubagentTerminal(child.status) && child.status !== "cancelling") {
@@ -277,7 +457,10 @@ export class SubagentCoordinator {
277
457
  }
278
458
  }
279
459
  // ---- 调度 ----
280
- /** 队列泵:按根轮转取额度可用的 child 启动。 */
460
+ /** 队列泵:按根轮转取额度可用的 child 启动。
461
+ * T03:admission(跨协调器共享)原子授予运行槽——本 store 的运行计数只是
462
+ * 本协调器内的廉价预过滤,全局/根上限以 admission 为准;授予失败即退出
463
+ * 本次泵程,等释放通知(onRelease → pump)重试。 */
281
464
  pump() {
282
465
  void (async () => {
283
466
  for (;;) {
@@ -287,8 +470,11 @@ export class SubagentCoordinator {
287
470
  const next = this.pickNext(running);
288
471
  if (!next)
289
472
  return;
473
+ const admission = this.deps.admission;
474
+ if (admission && !admission.tryAcquire(next.rootTaskId))
475
+ return;
290
476
  this.queue.splice(this.queue.indexOf(next), 1);
291
- void this.launch(next);
477
+ void this.launch(next); // launch 持有许可,finally 按执行状态释放
292
478
  }
293
479
  })().catch(() => undefined);
294
480
  }
@@ -309,39 +495,72 @@ export class SubagentCoordinator {
309
495
  return ordered[0];
310
496
  }
311
497
  async launch(item) {
312
- let rec = await this.store.getSubagent(item.childId);
313
- if (!rec || isSubagentTerminal(rec.status) || rec.status === "cancelling")
314
- return;
315
- rec = await this.store.updateSubagent(item.childId, rec.revision, { status: "running", times: { ...rec.times, startedAt: new Date().toISOString() } });
316
- let settle;
317
- const done = new Promise((resolve) => { settle = resolve; });
318
- this.active.set(item.childId, { abort: () => undefined, done });
498
+ const admission = this.deps.admission;
499
+ let settle = null;
500
+ let done = null;
319
501
  try {
320
- const state = await this.deps.runChild(item.childId, item.prompt);
502
+ // T05(PC09):根取消截止的二次检查——pump 认领与 launch 之间取消可能
503
+ // 恰好落闸;命中即放弃启动(finally 释放许可)。
504
+ if (this.admissionCutoff.has(item.rootTaskId))
505
+ return;
506
+ let rec = await this.store.getSubagent(item.childId);
507
+ if (!rec || isSubagentTerminal(rec.status) || rec.status === "cancelling")
508
+ return;
509
+ rec = await this.store.updateSubagent(item.childId, rec.revision, { status: "running", times: { ...rec.times, startedAt: new Date().toISOString() } });
510
+ let resolveDone;
511
+ done = new Promise((resolve) => { resolveDone = resolve; });
512
+ settle = resolveDone;
513
+ this.active.set(item.childId, { abort: () => undefined, done });
514
+ // T04(PC07):子上下文组装——原始 prompt + 全部 to_child 消息(agent_send
515
+ // 落邮箱的补充约束/用户输入)。重跑(waiting_input 续跑/恢复)时重复注入
516
+ // 旧约束幂等无害;新消息按时间序追加。
517
+ const supplements = (await this.store.listMessages(item.childId).catch(() => []))
518
+ .filter((m) => m.direction === "to_child");
519
+ const prompt = supplements.length > 0
520
+ ? `${item.prompt}\n\n[父代理追加输入(按时间序,最新在后)]\n${supplements.map((m) => `- (${m.kind}) ${m.payload}`).join("\n")}`
521
+ : item.prompt;
522
+ // T03(PC02):runChild 返回结构化 outcome——失败/取消/阻塞与完成一样是
523
+ // 显式声明,禁止按 Promise 正常返回推断成功(F02 修复的框架侧契约)。
524
+ const outcome = await this.deps.runChild(item.childId, prompt);
321
525
  const latest = await this.store.getSubagent(item.childId);
322
526
  if (!latest)
323
527
  return;
324
528
  if (latest.status === "cancelling") {
325
- await this.store.updateSubagent(item.childId, latest.revision, { status: "cancelled", times: { ...latest.times, endedAt: new Date().toISOString() } });
529
+ await this.settleTerminal(latest, { status: "cancelled" });
326
530
  }
327
531
  else {
328
- const outcome = state === "completed" ? "completed" : state === "cancelled" ? "cancelled" : "failed";
329
- await this.store.updateSubagent(item.childId, latest.revision, {
330
- status: outcome,
331
- times: { ...latest.times, endedAt: new Date().toISOString() },
332
- ...(outcome === "completed" ? {} : { blockerReason: state === "failed" ? `子运行失败(${state})` : undefined }),
333
- });
532
+ const settled = projectChildRunOutcome(outcome);
533
+ if (isSubagentTerminal(settled.status)) {
534
+ // T04(spec §4.2):子终态 + to_parent 结果邮件同事务,成功后触发
535
+ // 父唤醒意图钩子(宿主接 requestInternalResume——PC05 的接线点)。
536
+ await this.settleTerminal(latest, {
537
+ status: settled.status,
538
+ ...(settled.result ? { result: settled.result } : {}),
539
+ ...(settled.blockerReason ? { blockerReason: settled.blockerReason } : {}),
540
+ });
541
+ }
542
+ else {
543
+ // waiting_*:非终态,无结果邮件(出口互不替代,spec §8.2)
544
+ await this.store.updateSubagent(item.childId, latest.revision, {
545
+ status: settled.status,
546
+ ...(settled.blockerReason ? { blockerReason: settled.blockerReason } : {}),
547
+ });
548
+ }
334
549
  }
335
550
  }
336
551
  catch (error) {
337
552
  const latest = await this.store.getSubagent(item.childId);
338
553
  if (latest && !isSubagentTerminal(latest.status)) {
339
- await this.store.updateSubagent(item.childId, latest.revision, { status: "failed", blockerReason: error instanceof Error ? error.message : String(error) }).catch(() => undefined);
554
+ const message = error instanceof Error ? error.message : String(error);
555
+ await this.settleTerminal(latest, { status: "failed", blockerReason: message, result: { outcome: "failed", summary: `失败:${message}` } }).catch(() => undefined);
340
556
  }
341
557
  }
342
558
  finally {
559
+ // 许可按执行状态释放:runChild 真正结束(成功/失败/取消/异常)后,而非
560
+ // Promise 语义猜测;waiting_* 不占模型并发槽的细化在 T04 调度层处理。
561
+ admission?.release(item.rootTaskId);
343
562
  this.active.delete(item.childId);
344
- settle();
563
+ settle?.();
345
564
  this.notifyWaiters();
346
565
  this.pump(); // 腾出的额度给下一个排队者
347
566
  }
@@ -351,5 +570,28 @@ export class SubagentCoordinator {
351
570
  w();
352
571
  this.waiters.clear();
353
572
  }
573
+ /** 终态结算(T04,spec §4.2):状态 + to_parent 结果邮件**同事务**落库
574
+ * (settleSubagent),成功后触发唤醒钩子。messageId 由 childId + 结算后
575
+ * revision 派生——同 child 重放结算天然幂等(INSERT OR IGNORE)。 */
576
+ async settleTerminal(latest, patch) {
577
+ const settled = await this.store.settleSubagent(latest.childId, latest.revision, {
578
+ ...patch,
579
+ times: { ...latest.times, endedAt: new Date().toISOString() },
580
+ }, {
581
+ messageId: `result_${latest.childId}_${latest.revision + 1}`,
582
+ childId: latest.childId,
583
+ direction: "to_parent",
584
+ kind: "result",
585
+ payload: JSON.stringify({ outcome: patch.result?.outcome ?? patch.status, summary: patch.result?.summary ?? "", childId: latest.childId }),
586
+ createdAt: new Date().toISOString(),
587
+ });
588
+ try {
589
+ this.deps.onChildTerminal?.(settled, settled.parentSessionId);
590
+ }
591
+ catch {
592
+ // 唤醒钩子失败不影响终态结算(邮箱里已有结果,父侧可经其它路径续跑)
593
+ }
594
+ this.notifyWaiters();
595
+ }
354
596
  }
355
597
  //# sourceMappingURL=coordinator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../../src/core/subagents/coordinator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../../src/core/subagents/coordinator.ts"],"names":[],"mappings":"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"}
@@ -36,13 +36,19 @@ export declare function parkParent(deps: ParkControllerDeps, taskId: string): Pr
36
36
  * requestInternalResume 的幂等(RunScheduler.resumeRequests 是 Set,
37
37
  * 重复 add 天然合并为一个)。 */
38
38
  export declare function onChildTerminal(deps: ParkControllerDeps, child: SubagentRecord, parentSessionId: string): Promise<void>;
39
- /** 父唤醒时的未消费结果读取 + 水位推进(A28:仅纳入一次)。 */
40
- export declare function drainParentMailbox(deps: ParkControllerDeps, rootTaskId: string): Promise<{
39
+ /** 父唤醒时的未消费结果读取(T04 两段式,PC06):**投递水位在实际 Attempt
40
+ * 上下文持久登记后才能推进**(spec §4.2)——读取阶段不动水位;消费方把
41
+ * results 注入父上下文并持久化后调用 commit() 推进水位。读取与 commit 之间
42
+ * 崩溃只会导致重读(幂等),不会丢结果;重复 commit 也是幂等 no-op。
43
+ * 只依赖 subagents 面(TaskLifecycle 等调用方无须拼装无关依赖)。 */
44
+ export declare function drainParentMailbox(deps: Pick<ParkControllerDeps, "subagents">, rootTaskId: string): Promise<{
41
45
  results: {
42
46
  childId: string;
43
47
  outcome: string;
44
48
  summary: string;
45
49
  }[];
50
+ /** 水位推进:results 已持久进父上下文后调用。 */
51
+ commit: () => Promise<void>;
46
52
  clearedPark: boolean;
47
53
  }>;
48
54
  /** 终态根 Task 拒绝自动唤醒(A29:取消/失败/已交付的父不复活)。 */
@@ -1 +1 @@
1
- {"version":3,"file":"parked.d.ts","sourceRoot":"","sources":["../../../src/core/subagents/parked.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGhE;;;;;;;;;mCASmC;AACnC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,aAAa,CAAC;IACzB,yCAAyC;IACzC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACpG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IACtI,kDAAkD;IAClD,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C,0DAA0D;IAC1D,aAAa,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC7D,CAAC;AAEF;;uDAEuD;AACvD,wBAAsB,UAAU,CAAC,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAM5H;AAED;iDACiD;AACjD,wBAAsB,UAAU,CAAC,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAWxF;AAED;;uBAEuB;AACvB,wBAAsB,eAAe,CAAC,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAa7H;AAED,sCAAsC;AACtC,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CAAC,CAoB1L;AAED,2CAA2C;AAC3C,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAEzD"}
1
+ {"version":3,"file":"parked.d.ts","sourceRoot":"","sources":["../../../src/core/subagents/parked.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGhE;;;;;;;;;mCASmC;AACnC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,aAAa,CAAC;IACzB,yCAAyC;IACzC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACpG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IACtI,kDAAkD;IAClD,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C,0DAA0D;IAC1D,aAAa,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC7D,CAAC;AAEF;;uDAEuD;AACvD,wBAAsB,UAAU,CAAC,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAM5H;AAED;iDACiD;AACjD,wBAAsB,UAAU,CAAC,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAWxF;AAED;;uBAEuB;AACvB,wBAAsB,eAAe,CAAC,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAa7H;AAED;;;;mDAImD;AACnD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IACjH,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjE,gCAAgC;IAChC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC,CA0BD;AAED,2CAA2C;AAC3C,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAEzD"}
@@ -45,10 +45,15 @@ export async function onChildTerminal(deps, child, parentSessionId) {
45
45
  // 唤醒意图同事务登记(requestResume 的 Set 语义 = 水位合并)
46
46
  deps.requestInternalResume(parentSessionId);
47
47
  }
48
- /** 父唤醒时的未消费结果读取 + 水位推进(A28:仅纳入一次)。 */
48
+ /** 父唤醒时的未消费结果读取(T04 两段式,PC06):**投递水位在实际 Attempt
49
+ * 上下文持久登记后才能推进**(spec §4.2)——读取阶段不动水位;消费方把
50
+ * results 注入父上下文并持久化后调用 commit() 推进水位。读取与 commit 之间
51
+ * 崩溃只会导致重读(幂等),不会丢结果;重复 commit 也是幂等 no-op。
52
+ * 只依赖 subagents 面(TaskLifecycle 等调用方无须拼装无关依赖)。 */
49
53
  export async function drainParentMailbox(deps, rootTaskId) {
50
54
  const children = await deps.subagents.listSubagents({ rootTaskId });
51
55
  const results = [];
56
+ const unconsumed = [];
52
57
  for (const child of children) {
53
58
  const messages = await deps.subagents.listMessages(child.childId);
54
59
  for (const msg of messages) {
@@ -60,13 +65,18 @@ export async function drainParentMailbox(deps, rootTaskId) {
60
65
  catch {
61
66
  results.push({ childId: child.childId, outcome: "unknown", summary: msg.payload.slice(0, 200) });
62
67
  }
63
- await deps.subagents.markMessagesConsumedByParent(child.childId, msg.createdAt);
68
+ unconsumed.push({ childId: child.childId, upToCreatedAt: msg.createdAt });
64
69
  }
65
70
  }
66
71
  }
72
+ const commit = async () => {
73
+ for (const item of unconsumed) {
74
+ await deps.subagents.markMessagesConsumedByParent(item.childId, item.upToCreatedAt);
75
+ }
76
+ };
67
77
  // 全部终态且结果已消费 → 清 parked 标记
68
78
  const allTerminal = children.every((c) => isSubagentTerminal(c.status));
69
- return { results, clearedPark: allTerminal };
79
+ return { results, commit, clearedPark: allTerminal };
70
80
  }
71
81
  /** 终态根 Task 拒绝自动唤醒(A29:取消/失败/已交付的父不复活)。 */
72
82
  export function canAutoResume(taskStatus) {
@@ -1 +1 @@
1
- {"version":3,"file":"parked.js","sourceRoot":"","sources":["../../../src/core/subagents/parked.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parked.js","sourceRoot":"","sources":["../../../src/core/subagents/parked.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/core/subagents/tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAG5D;;;;;;uCAMuC;AAEvC,MAAM,MAAM,mBAAmB,GAAG;IAAE,SAAS,CAAC,EAAE;QAAE,WAAW,EAAE,mBAAmB,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAajI,eAAO,MAAM,cAAc,EAAE,OAoC5B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,OAc3B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,OAoB3B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,OAoB3B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,OAiB7B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,OAAO,EAAmF,CAAC;AAEvH,oDAAoD;AACpD,wBAAgB,kBAAkB,CAAC,iBAAiB,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK;IAAE,WAAW,EAAE,mBAAmB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,GAAG,OAAO,CAkC3K"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/core/subagents/tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAG5D;;;;;;uCAMuC;AAEvC,MAAM,MAAM,mBAAmB,GAAG;IAAE,SAAS,CAAC,EAAE;QAAE,WAAW,EAAE,mBAAmB,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAajI,eAAO,MAAM,cAAc,EAAE,OAoC5B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,OAc3B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,OAqB3B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,OAoB3B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,OAiB7B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,OAAO,EAAmF,CAAC;AAEvH,oDAAoD;AACpD,wBAAgB,kBAAkB,CAAC,iBAAiB,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK;IAAE,WAAW,EAAE,mBAAmB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,GAAG,OAAO,CAkC3K"}
@@ -75,8 +75,9 @@ export const agentSendTool = {
75
75
  }),
76
76
  permission: () => null,
77
77
  async execute(args, ctx) {
78
- const { coordinator } = requireCoordinator(ctx);
79
- const result = await coordinator.send(args.child_id, args.message, args.kind, args.message_id);
78
+ const { coordinator, rootTaskId } = requireCoordinator(ctx);
79
+ // T03(PC03):范围校验——只允许操作当前任务树内的子代理。
80
+ const result = await coordinator.send(args.child_id, args.message, args.kind, args.message_id, { rootTaskId });
80
81
  if (!result.delivered) {
81
82
  return { title: "投递失败", output: `未投递:${result.reason}`, metadata: { delivered: false, reason: result.reason } };
82
83
  }
@@ -94,8 +95,8 @@ export const agentWaitTool = {
94
95
  }),
95
96
  permission: () => null,
96
97
  async execute(args, ctx) {
97
- const { coordinator } = requireCoordinator(ctx);
98
- const { changed, anyTerminal } = await coordinator.wait(args.child_ids, args.timeout_seconds * 1_000);
98
+ const { coordinator, rootTaskId } = requireCoordinator(ctx);
99
+ const { changed, anyTerminal } = await coordinator.wait(args.child_ids, args.timeout_seconds * 1_000, { rootTaskId });
99
100
  const lines = changed.map((r) => `- ${r.childId}: ${r.status}${r.result ? `(${r.result.outcome}: ${r.result.summary.slice(0, 120)})` : ""}`);
100
101
  return {
101
102
  title: anyTerminal ? "有终态" : "仍在运行",
@@ -112,8 +113,8 @@ export const agentCancelTool = {
112
113
  parameters: z.object({ child_id: z.string().min(1) }),
113
114
  permission: () => null,
114
115
  async execute(args, ctx) {
115
- const { coordinator } = requireCoordinator(ctx);
116
- const result = await coordinator.cancel(args.child_id);
116
+ const { coordinator, rootTaskId } = requireCoordinator(ctx);
117
+ const result = await coordinator.cancel(args.child_id, { rootTaskId });
117
118
  const terminal = result.reason?.startsWith("CHILD_TERMINAL");
118
119
  return {
119
120
  title: terminal ? "已是终态" : "取消已登记",