@migor/agentia 0.10.2 → 0.10.3

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.
Files changed (124) hide show
  1. package/CHANGELOG.md +552 -36
  2. package/README.md +1 -1
  3. package/dist/AGENTS.md +95 -25
  4. package/dist/core/limits.d.ts +33 -1
  5. package/dist/core/limits.js +37 -1
  6. package/dist/core/limits.js.map +1 -1
  7. package/dist/core/run.d.ts +2 -2
  8. package/dist/core/timeout.d.ts +5 -5
  9. package/dist/core/timeout.js +5 -5
  10. package/dist/core/tool.d.ts +2 -2
  11. package/dist/core/trace.d.ts +10 -1
  12. package/dist/core/trace.js +10 -1
  13. package/dist/core/trace.js.map +1 -1
  14. package/dist/engine/concurrency.d.ts +1 -1
  15. package/dist/engine/concurrency.js +1 -1
  16. package/dist/engine/errors.d.ts +2 -2
  17. package/dist/engine/errors.js +2 -2
  18. package/dist/engine/loop-result.d.ts +2 -2
  19. package/dist/engine/loop.js +91 -56
  20. package/dist/engine/loop.js.map +1 -1
  21. package/dist/engine/mcp-server-http.js +1 -1
  22. package/dist/engine/mcp-server-http.js.map +1 -1
  23. package/dist/engine/mcp-server-stdio.js +7 -3
  24. package/dist/engine/mcp-server-stdio.js.map +1 -1
  25. package/dist/engine/mcp-server.d.ts +15 -0
  26. package/dist/engine/mcp-server.js +39 -8
  27. package/dist/engine/mcp-server.js.map +1 -1
  28. package/dist/engine/resume-input.d.ts +1 -1
  29. package/dist/engine/resume-input.js +1 -1
  30. package/dist/engine/retry.d.ts +15 -0
  31. package/dist/engine/retry.js +51 -2
  32. package/dist/engine/retry.js.map +1 -1
  33. package/dist/engine/span-scope.d.ts +15 -0
  34. package/dist/engine/span-scope.js +8 -1
  35. package/dist/engine/span-scope.js.map +1 -1
  36. package/dist/engine/spec.d.ts +5 -1
  37. package/dist/engine/spec.js.map +1 -1
  38. package/dist/engine/tracer.d.ts +8 -4
  39. package/dist/engine/tracer.js +24 -17
  40. package/dist/engine/tracer.js.map +1 -1
  41. package/dist/engine/turn.d.ts +2 -2
  42. package/dist/engine/turn.js +19 -4
  43. package/dist/engine/turn.js.map +1 -1
  44. package/dist/engine/types.d.ts +8 -3
  45. package/dist/eval/export.js +2 -2
  46. package/dist/eval/export.js.map +1 -1
  47. package/dist/index.d.ts +1 -1
  48. package/dist/index.js +2 -2
  49. package/dist/index.js.map +1 -1
  50. package/dist/integrations/anthropic.d.ts +1 -1
  51. package/dist/integrations/anthropic.js +1 -1
  52. package/dist/integrations/anthropic.js.map +1 -1
  53. package/dist/integrations/file-sink.d.ts +2 -2
  54. package/dist/integrations/file-sink.js +2 -2
  55. package/dist/integrations/mcp-http.js +4 -3
  56. package/dist/integrations/mcp-http.js.map +1 -1
  57. package/dist/integrations/mcp-protocol.d.ts +35 -10
  58. package/dist/integrations/mcp-protocol.js +19 -1
  59. package/dist/integrations/mcp-protocol.js.map +1 -1
  60. package/dist/integrations/mcp-stdio.js +28 -8
  61. package/dist/integrations/mcp-stdio.js.map +1 -1
  62. package/dist/integrations/mcp.d.ts +1 -1
  63. package/dist/integrations/mcp.js +19 -3
  64. package/dist/integrations/mcp.js.map +1 -1
  65. package/dist/integrations/metrics-otlp.d.ts +1 -1
  66. package/dist/integrations/metrics-otlp.js +8 -2
  67. package/dist/integrations/metrics-otlp.js.map +1 -1
  68. package/dist/integrations/metrics-render.js +1 -1
  69. package/dist/integrations/metrics-render.js.map +1 -1
  70. package/dist/integrations/metrics-state.d.ts +2 -2
  71. package/dist/integrations/metrics-state.js +4 -4
  72. package/dist/integrations/metrics-state.js.map +1 -1
  73. package/dist/integrations/metrics.d.ts +2 -2
  74. package/dist/integrations/otlp.d.ts +29 -6
  75. package/dist/integrations/otlp.js +128 -7
  76. package/dist/integrations/otlp.js.map +1 -1
  77. package/dist/integrations/report.d.ts +14 -2
  78. package/dist/integrations/report.js +39 -6
  79. package/dist/integrations/report.js.map +1 -1
  80. package/dist/store/fsStore.js +9 -5
  81. package/dist/store/fsStore.js.map +1 -1
  82. package/dist/store/record.d.ts +2 -2
  83. package/dist/store/record.js +1 -1
  84. package/dist/store/sqliteStore.d.ts +2 -2
  85. package/dist/store/sqliteStore.js +3 -3
  86. package/dist/store/sqliteStore.js.map +1 -1
  87. package/dist/store/store.d.ts +27 -7
  88. package/dist/store/store.js +36 -5
  89. package/dist/store/store.js.map +1 -1
  90. package/dist/toolkit/collect.d.ts +11 -5
  91. package/dist/toolkit/collect.js +10 -4
  92. package/dist/toolkit/collect.js.map +1 -1
  93. package/dist/toolkit/module.js +78 -1
  94. package/dist/toolkit/module.js.map +1 -1
  95. package/dist/toolkit/prompt.d.ts +1 -1
  96. package/dist/toolkit/prompt.js +2 -2
  97. package/dist/toolkit/prompt.js.map +1 -1
  98. package/dist/toolkit/subagent.js +17 -3
  99. package/dist/toolkit/subagent.js.map +1 -1
  100. package/dist/transport/approval-policy.js +1 -1
  101. package/dist/transport/approval-policy.js.map +1 -1
  102. package/dist/transport/approval-supervisor.d.ts +8 -0
  103. package/dist/transport/approval-supervisor.js +23 -3
  104. package/dist/transport/approval-supervisor.js.map +1 -1
  105. package/dist/transport/async.d.ts +3 -0
  106. package/dist/transport/async.js +128 -25
  107. package/dist/transport/async.js.map +1 -1
  108. package/dist/transport/http-endpoints.js +1 -1
  109. package/dist/transport/http-route.js +2 -2
  110. package/dist/transport/http-route.js.map +1 -1
  111. package/dist/transport/http-shapes.d.ts +1 -1
  112. package/dist/transport/http-shapes.js +1 -1
  113. package/dist/transport/resume-scanner.d.ts +7 -0
  114. package/dist/transport/resume-scanner.js +40 -9
  115. package/dist/transport/resume-scanner.js.map +1 -1
  116. package/dist/transport/run-call-options.js +7 -3
  117. package/dist/transport/run-call-options.js.map +1 -1
  118. package/dist/transport/scheduler.js +5 -0
  119. package/dist/transport/scheduler.js.map +1 -1
  120. package/dist/transport/signal-supervisor.d.ts +10 -2
  121. package/dist/transport/signal-supervisor.js +15 -2
  122. package/dist/transport/signal-supervisor.js.map +1 -1
  123. package/dist/transport/wake-policy.d.ts +1 -1
  124. package/package.json +1 -1
@@ -51,7 +51,7 @@ export class ResumeScanner {
51
51
  return this.#inflightResume;
52
52
  const listed = this.#deps.store.list();
53
53
  const staleAfterMs = opts.staleAfterMs ?? 0;
54
- // 到期索引(2026-09-28 ⑤ 落地):store 实现了 `listDue` 时,「到期唤醒」那一半的
54
+ // 到期索引(2026-09-28 ref-due-index-measure 落地):store 实现了 `listDue` 时,「到期唤醒」那一半的
55
55
  // 输入走索引(只回到期的记录),否则回退全表过滤 —— 语义不变,只是扫描规模不同。
56
56
  // ⚠️ 它**只**替代那一半的输入:挂起读数重建 / 审批超时 / 孤儿认领的职责
57
57
  // 仍是全表 `list()`(它们要的不只是「到期的」),别把整个扫描的输入源换掉。
@@ -96,6 +96,10 @@ export class ResumeScanner {
96
96
  // (重启后由新进程的首次 resumePending 唤醒:那时停机窗口早过去了。)
97
97
  if (this.#deps.isDraining())
98
98
  return false;
99
+ // cancel 在飞 ⇒ 跳过本轮(2026-10-13 ref-run-root-close):它马上把任务落终态,唤醒就是「取消后照常执行」。
100
+ // 惰性路径跳过不丢事:下一轮读还会再判(若取消没成)。
101
+ if (this.#deps.cancelInflight?.(rec.taskId))
102
+ return false;
99
103
  if (this.#inflightWakes.has(rec.taskId))
100
104
  return false;
101
105
  const run = this.#wakeDueInner(rec, now).finally(() => {
@@ -106,6 +110,10 @@ export class ResumeScanner {
106
110
  run.catch(() => undefined);
107
111
  return true;
108
112
  }
113
+ /** 该任务上在飞的到期唤醒(cancel 的等待依据,2026-10-13 ref-run-root-close) */
114
+ inflightWakeFor(taskId) {
115
+ return this.#inflightWakes.get(taskId);
116
+ }
109
117
  /**
110
118
  * 重新派发前**必须**先把 `ownerId` 认领落库 —— 否则「认领」只是内存里的一个记号。
111
119
  *
@@ -137,7 +145,7 @@ export class ResumeScanner {
137
145
  // 到期唤醒(durable timer):在睡且到点的 timer 挂起 ⇒ 认领 + 重派(醒来重跑那一批)。
138
146
  // 与上面那条循环并列而不是合并:两条闸的**原因判据互斥**,各读各的一眼可见;
139
147
  // 合并成一个循环会让「谁的责任」藏进条件里。drain 之后不唤(`wakeDue` 里那道闸)。
140
- // 输入(2026-09-28 ⑤):store 提供到期索引时 `due` 是「只回到期的」那一半 ——
148
+ // 输入(2026-09-28 ref-due-index-measure):store 提供到期索引时 `due` 是「只回到期的」那一半 ——
141
149
  // 仍过 `timerDue` 复核(索引口径是 status+wakeAt,原因那一半由这里兜,且
142
150
  // `#wakeDueInner` 进闸后还会重读再判一次)。
143
151
  let woken = 0;
@@ -158,22 +166,41 @@ export class ResumeScanner {
158
166
  ownerAlive: alive,
159
167
  }) === undefined);
160
168
  const claims = [];
169
+ let claimed = 0;
161
170
  for (const rec of pending) {
162
171
  rec.status = 'queued'; // 重新入队,由 #execute 统一推进
163
172
  rec.ownerId = this.#deps.ownerId; // 认领:此后本进程的记录不再被(自己)重派
164
- const saved = this.#deps.store.save(rec);
173
+ // 同步抛错防护(2026-10-13 ref-reject-static-methods,与 #wakeDueInner 同款):FileTaskStore 磁盘失败在这里
174
+ // 同步抛出 —— 不接住就逃出 resumePending(宿主启动路径直接崩)。落不了库 = 没推进:
175
+ // 不派发、不计入返回值;warn 出来(静默留尸的话任务搁死到重启都没人知道)。
176
+ let saved;
177
+ try {
178
+ saved = this.#deps.store.save(rec);
179
+ }
180
+ catch (err) {
181
+ console.warn(`[agentia] 认领落库失败(task ${rec.taskId}),本次不重投:`, err?.message ?? err);
182
+ continue;
183
+ }
165
184
  if (isThenable(saved)) {
166
185
  // 落库失败则**不派发**:认领没落地,派发等于把上面那个重复执行的窗口重新打开
167
- claims.push(Promise.resolve(saved).then(() => this.#deps.dispatch(rec)));
186
+ claims.push(Promise.resolve(saved).then(() => {
187
+ this.#deps.dispatch(rec);
188
+ return true;
189
+ }, (err) => {
190
+ console.warn(`[agentia] 认领落库失败(task ${rec.taskId}),本次不重投:`, err?.message ?? err);
191
+ return false;
192
+ }));
168
193
  }
169
194
  else {
170
195
  // 派发走唯一入口(闸在 #dispatch 里)—— 外部深评 P2-1:认领循环以前绕过了那道闸。
171
196
  this.#deps.dispatch(rec);
197
+ claimed++;
172
198
  }
173
199
  }
200
+ const settled = Promise.all(claims).then((oks) => oks.filter(Boolean).length);
174
201
  if (claims.length === 0)
175
- return pending.length + expired + woken;
176
- return Promise.all(claims).then(() => pending.length + expired + woken);
202
+ return claimed + expired + woken;
203
+ return settled.then((n) => claimed + n + expired + woken);
177
204
  }
178
205
  async #wakeDueInner(rec, now) {
179
206
  // 进闸后**重读一遍**再判(与 approval-supervisor.ts 的 #expireAndResumeInner 同因):闸只互斥「进入」,
@@ -188,14 +215,18 @@ export class ResumeScanner {
188
215
  try {
189
216
  saved = this.#deps.store.save(target);
190
217
  }
191
- catch {
192
- return target; // 同步落库失败则不派发(先落库再派发,见 approval-supervisor.ts 的 #expireAndResumeInner)
218
+ catch (err) {
219
+ // 同步落库失败则不派发(先落库再派发)—— 但不静默:留尸到下一次惰性判定
220
+ // 之前,至少日志里要有这一笔(与 #dispatch 停机拒绝的 warn 同一条纪律)。
221
+ console.warn(`[agentia] 到期唤醒落库失败(task ${target.taskId}),本次不派发:`, err?.message ?? err);
222
+ return target;
193
223
  }
194
224
  if (isThenable(saved)) {
195
225
  try {
196
226
  await saved;
197
227
  }
198
- catch {
228
+ catch (err) {
229
+ console.warn(`[agentia] 到期唤醒落库失败(task ${target.taskId}),本次不派发:`, err?.message ?? err);
199
230
  return target;
200
231
  }
201
232
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resume-scanner.js","sourceRoot":"","sources":["../../src/transport/resume-scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAqCjD,MAAM,OAAO,aAAa;IACxB;;;OAGG;IACH,eAAe,GAA2B,IAAI,CAAC;IAE/C,8FAA8F;IACrF,cAAc,GAAG,IAAI,GAAG,EAA+B,CAAC;IAExD,KAAK,CAAoB;IAElC,YAAY,IAAuB;QACjC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,aAAa,CAAC,IAAI,GAAyB,EAAE;QAC3C,oCAAoC;QACpC,EAAE;QACF,qDAAqD;QACrD,yDAAyD;QACzD,iEAAiE;QACjE,yCAAyC;QACzC,EAAE;QACF,kDAAkD;QAClD,wCAAwC;QACxC,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC,eAAe,CAAC;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACvC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;QAC5C,yDAAyD;QACzD,4CAA4C;QAC5C,4CAA4C;QAC5C,4CAA4C;QAC5C,MAAM,SAAS,GACb,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5F,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YAC7E,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;iBACzC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;iBAChE,OAAO,CAAC,GAAG,EAAE;gBACZ,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC9B,CAAC,CAAC,CAAC;YACL,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC3B,OAAO,GAAG,CAAC;QACb,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;QACrE,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;gBACnD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC9B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC3B,OAAO,GAAG,CAAC;QACb,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,GAAe,EAAE,GAAW;QAClC,6DAA6D;QAC7D,sDAAsD;QACtD,4CAA4C;QAC5C,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;YAAE,OAAO,KAAK,CAAC;QAC1C,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QACtD,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;YACpD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACzC,wEAAwE;QACxE,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,WAAW,CACT,IAAkB,EAClB,YAAoB,EACpB,GAA8B;QAE9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,+CAA+C;QAC/C,kDAAkD;QAClD,0CAA0C;QAC1C,8CAA8C;QAC9C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,6CAA6C;QAC7C,qCAAqC;QACrC,wCAAwC;QACxC,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC;gBAAE,OAAO,EAAE,CAAC;QAChE,CAAC;QACD,0DAA0D;QAC1D,0CAA0C;QAC1C,mDAAmD;QACnD,sDAAsD;QACtD,mDAAmD;QACnD,gCAAgC;QAChC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,GAAG,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;gBAAE,SAAS;YAClC,kDAAkD;YAClD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;gBAAE,KAAK,EAAE,CAAC;QACtC,CAAC;QACD,wEAAwE;QACxE,+CAA+C;QAC/C,MAAM,KAAK,GAAG,CAAC,EAAU,EAAuB,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CACzB,CAAC,CAAC,EAAE,EAAE,CACJ,gBAAgB,CAAC,CAAC,EAAE;YAClB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;YAC3B,YAAY;YACZ,GAAG;YACH,UAAU,EAAE,KAAK;SAClB,CAAC,KAAK,SAAS,CACnB,CAAC;QAEF,MAAM,MAAM,GAAoB,EAAE,CAAC;QACnC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,uBAAuB;YAC9C,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,uBAAuB;YACzD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzC,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,0CAA0C;gBAC1C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC3E,CAAC;iBAAM,CAAC;gBACN,oDAAoD;gBACpD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;QACjE,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAAe,EAAE,GAAW;QAC9C,+EAA+E;QAC/E,oDAAoD;QACpD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,KAAK,IAAI,GAAG,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;YAAE,OAAO,MAAM,CAAC;QAC1C,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC;QAC1B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QACpC,IAAI,KAAyB,CAAC;QAC9B,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,MAAM,CAAC,CAAC,sEAAsE;QACvF,CAAC;QACD,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QACD,4BAA4B;QAC5B,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpD,qDAAqD;QACrD,kBAAkB;QAClB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,cAAc,CAAC,OAAe;QAC5B,OAAO,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;CACF"}
1
+ {"version":3,"file":"resume-scanner.js","sourceRoot":"","sources":["../../src/transport/resume-scanner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AA0CjD,MAAM,OAAO,aAAa;IACxB;;;OAGG;IACH,eAAe,GAA2B,IAAI,CAAC;IAE/C,8FAA8F;IACrF,cAAc,GAAG,IAAI,GAAG,EAA+B,CAAC;IAExD,KAAK,CAAoB;IAElC,YAAY,IAAuB;QACjC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,aAAa,CAAC,IAAI,GAAyB,EAAE;QAC3C,oCAAoC;QACpC,EAAE;QACF,qDAAqD;QACrD,yDAAyD;QACzD,iEAAiE;QACjE,yCAAyC;QACzC,EAAE;QACF,kDAAkD;QAClD,wCAAwC;QACxC,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC,eAAe,CAAC;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACvC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;QAC5C,6EAA6E;QAC7E,4CAA4C;QAC5C,4CAA4C;QAC5C,4CAA4C;QAC5C,MAAM,SAAS,GACb,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5F,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YAC7E,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;iBACzC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;iBAChE,OAAO,CAAC,GAAG,EAAE;gBACZ,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC9B,CAAC,CAAC,CAAC;YACL,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC3B,OAAO,GAAG,CAAC;QACb,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;QACrE,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;gBACnD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC9B,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;YAC3B,OAAO,GAAG,CAAC;QACb,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,GAAe,EAAE,GAAW;QAClC,6DAA6D;QAC7D,sDAAsD;QACtD,4CAA4C;QAC5C,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;YAAE,OAAO,KAAK,CAAC;QAC1C,2EAA2E;QAC3E,6BAA6B;QAC7B,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1D,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QACtD,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;YACpD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACzC,wEAAwE;QACxE,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8DAA8D;IAC9D,eAAe,CAAC,MAAc;QAC5B,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,WAAW,CACT,IAAkB,EAClB,YAAoB,EACpB,GAA8B;QAE9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,+CAA+C;QAC/C,kDAAkD;QAClD,0CAA0C;QAC1C,8CAA8C;QAC9C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,6CAA6C;QAC7C,qCAAqC;QACrC,wCAAwC;QACxC,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC;gBAAE,OAAO,EAAE,CAAC;QAChE,CAAC;QACD,0DAA0D;QAC1D,0CAA0C;QAC1C,mDAAmD;QACnD,0EAA0E;QAC1E,mDAAmD;QACnD,gCAAgC;QAChC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,GAAG,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;gBAAE,SAAS;YAClC,kDAAkD;YAClD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;gBAAE,KAAK,EAAE,CAAC;QACtC,CAAC;QACD,wEAAwE;QACxE,+CAA+C;QAC/C,MAAM,KAAK,GAAG,CAAC,EAAU,EAAuB,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CACzB,CAAC,CAAC,EAAE,EAAE,CACJ,gBAAgB,CAAC,CAAC,EAAE;YAClB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;YAC3B,YAAY;YACZ,GAAG;YACH,UAAU,EAAE,KAAK;SAClB,CAAC,KAAK,SAAS,CACnB,CAAC;QAEF,MAAM,MAAM,GAAuB,EAAE,CAAC;QACtC,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,uBAAuB;YAC9C,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,uBAAuB;YACzD,wFAAwF;YACxF,sDAAsD;YACtD,0CAA0C;YAC1C,IAAI,KAAyB,CAAC;YAC9B,IAAI,CAAC;gBACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CACV,yBAAyB,GAAG,CAAC,MAAM,UAAU,EAC5C,GAAa,EAAE,OAAO,IAAI,GAAG,CAC/B,CAAC;gBACF,SAAS;YACX,CAAC;YACD,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,0CAA0C;gBAC1C,MAAM,CAAC,IAAI,CACT,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CACzB,GAAG,EAAE;oBACH,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;oBACzB,OAAO,IAAI,CAAC;gBACd,CAAC,EACD,CAAC,GAAY,EAAE,EAAE;oBACf,OAAO,CAAC,IAAI,CACV,yBAAyB,GAAG,CAAC,MAAM,UAAU,EAC5C,GAAa,EAAE,OAAO,IAAI,GAAG,CAC/B,CAAC;oBACF,OAAO,KAAK,CAAC;gBACf,CAAC,CACF,CACF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,oDAAoD;gBACpD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACzB,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;QAC9E,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;QAC1D,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAAe,EAAE,GAAW;QAC9C,+EAA+E;QAC/E,oDAAoD;QACpD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,KAAK,IAAI,GAAG,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;YAAE,OAAO,MAAM,CAAC;QAC1C,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC;QAC1B,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QACpC,IAAI,KAAyB,CAAC;QAC9B,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,uCAAuC;YACvC,+CAA+C;YAC/C,OAAO,CAAC,IAAI,CACV,2BAA2B,MAAM,CAAC,MAAM,UAAU,EACjD,GAAa,EAAE,OAAO,IAAI,GAAG,CAC/B,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC;YACd,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CACV,2BAA2B,MAAM,CAAC,MAAM,UAAU,EACjD,GAAa,EAAE,OAAO,IAAI,GAAG,CAC/B,CAAC;gBACF,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QACD,4BAA4B;QAC5B,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpD,qDAAqD;QACrD,kBAAkB;QAClB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,cAAc,CAAC,OAAe;QAC5B,OAAO,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;CACF"}
@@ -7,9 +7,13 @@
7
7
  */
8
8
  export function buildRunCallOptions(input) {
9
9
  const { rec, isResume, sessionStore, client, signal, bridgeTraceEvents } = input;
10
- const sessionId = rec.spec.options?.sessionId;
10
+ // sessionId 在本层**已被消费**(下面换成 session 注入;没配 sessionStore 的在 submit /
11
+ // 派发处已响亮失败),**不随选项透传**:续跑段刻意不注入 session(见下),若让它原样
12
+ // 进 app.run,会撞上那边「程序内直传 sessionId 不生效」的告警 —— 那是给外部调用方的
13
+ // 出声闸(toolkit/module.ts),内部路径不该踩。
14
+ const { sessionId, ...restOptions } = rec.spec.options ?? {};
11
15
  return {
12
- ...(rec.spec.options ?? {}),
16
+ ...restOptions,
13
17
  // HITL 恢复段**不注入 session**(2026-09-20,spec §10 当日条):恢复段的
14
18
  // rec.spec.messages 是挂起段落库的 suspendedMessages —— 已含 loadSession
15
19
  // 拼入的完整会话历史,再注入会让 run 层把 store 历史**再 prepend 一遍**
@@ -29,7 +33,7 @@ export function buildRunCallOptions(input) {
29
33
  : {}),
30
34
  // HITL 恢复段:审批决定随任务落库,重跑时原样进引擎(进程重启不丢)
31
35
  ...(rec.approvals !== undefined ? { approvals: rec.approvals } : {}),
32
- // 事件投入口(2026-09-28 ⑥):挂起期间投递的事件随记录进引擎,由它在
36
+ // 事件投入口(2026-09-28 ref-run-event-input):挂起期间投递的事件随记录进引擎,由它在
33
37
  // 未决 tool_use 解决之后注入消息流(为什么不能由宿主直接追加进
34
38
  // spec.messages 的末尾:见 signalTask 与 engine/loop.ts 的注入点纪律)
35
39
  ...(rec.pendingEvents !== undefined && rec.pendingEvents.length > 0
@@ -1 +1 @@
1
- {"version":3,"file":"run-call-options.js","sourceRoot":"","sources":["../../src/transport/run-call-options.ts"],"names":[],"mappings":"AAyDA;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAA0B;IAC5D,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,KAAK,CAAC;IACjF,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;IAC9C,OAAO;QACL,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QAC3B,wDAAwD;QACxD,gEAAgE;QAChE,kDAAkD;QAClD,8CAA8C;QAC9C,mDAAmD;QACnD,oDAAoD;QACpD,yDAAyD;QACzD,GAAG,CAAC,CAAC,QAAQ,IAAI,SAAS,KAAK,SAAS,IAAI,YAAY,KAAK,SAAS;YACpE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE;YACrD,CAAC,CAAC,EAAE,CAAC;QACP,2DAA2D;QAC3D,GAAG,CAAC,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnF,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS;YACxC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACrC,CAAC,CAAC,MAAM,KAAK,SAAS;gBACpB,CAAC,CAAC,EAAE,MAAM,EAAE;gBACZ,CAAC,CAAC,EAAE,CAAC;QACT,sCAAsC;QACtC,GAAG,CAAC,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,0CAA0C;QAC1C,sCAAsC;QACtC,0DAA0D;QAC1D,GAAG,CAAC,GAAG,CAAC,aAAa,KAAK,SAAS,IAAI,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;YACjE,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,aAAa,EAAE;YAC/B,CAAC,CAAC,EAAE,CAAC;QACP,uDAAuD;QACvD,kDAAkD;QAClD,8CAA8C;QAC9C,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,OAAO,EAAE,KAAK,EAAE,oBAAoB;QACpC,MAAM;QACN,eAAe;QACf,GAAG,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAe,EAAE,QAAgC;IACrF,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IACjG,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC;IACzB,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC3B,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC7B,GAAG,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC3B,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5B,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"run-call-options.js","sourceRoot":"","sources":["../../src/transport/run-call-options.ts"],"names":[],"mappings":"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"}
@@ -139,6 +139,11 @@ export class Scheduler {
139
139
  }
140
140
  }
141
141
  dispatch(job) {
142
+ // drain 感知(2026-10-13 ref-submenu-name-check):runner 停机后 submit 必抛「正在优雅停机」—— 不设这道闸,
143
+ // 停机窗口里每个 tick 都换一条 console.error(纯刷屏;停机语义本来就是「不再往前推」,
144
+ // 跳过 tick 不是故障,不报)。
145
+ if (this.runner.isDraining)
146
+ return;
142
147
  // maxInFlight 闸门(仅周期任务):上一片还在跑就跳过本次 tick —— 否则
143
148
  // every(1000) + 60s 任务会每个 tick 都派发,任务无上限堆积。
144
149
  // Infinity = 闸门关闭:也不追踪(否则 inFlight 集合随 tick 无界增长)。
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/transport/scheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/transport/scheduler.ts"],"names":[],"mappings":"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"}
@@ -45,12 +45,18 @@ export interface SignalSupervisorDeps {
45
45
  approvals: ApprovalSupervisor;
46
46
  /** 派发入口(`AsyncRunner.#dispatch`:停机闸 + 唯一派发点 + 停机窗口里的一次告警) */
47
47
  dispatch(rec: TaskRecord): void;
48
+ /**
49
+ * cancel 的 per-task 在飞闸读数(2026-10-13 ref-run-root-close):投递进入前等它收口再重判
50
+ * (否则事件落库与 cancelled 落库互相覆盖,两边都说了假话)。
51
+ * ⚠️ 必须在**入链之前**等:链尾一旦被 cancel 当成「在飞推进」等下去就是死等。
52
+ */
53
+ cancelInflight?(taskId: string): Promise<unknown> | undefined;
48
54
  }
49
55
  export declare class SignalSupervisor {
50
56
  #private;
51
57
  constructor(deps: SignalSupervisorDeps);
52
58
  /**
53
- * 投递一个事件给**挂起**的任务(2026-09-28 ⑥,run 事件投入口;
59
+ * 投递一个事件给**挂起**的任务(2026-09-28 ref-run-event-input,run 事件投入口;
54
60
  * `POST /tasks/:id/events` 的宿主方法侧,与 approve/cancel 对称)。
55
61
  *
56
62
  * 语义(设计稿 §3 逐条的落点):
@@ -74,7 +80,9 @@ export declare class SignalSupervisor {
74
80
  * (两条并发事件是两条不同的输入,共享 = 静默丢一条)。与其它恢复路径
75
81
  * (approve / 到期唤醒,各有自己的闸)的竞速:进闸后重读再判挡住绝大多数;
76
82
  * 剩下的窄窗口与既有「approve × wakeDue 分闸」同类(那两条按挂起原因天然互斥,
77
- * 事件两种原因都适用,是这个闸新盖的缝 —— 已记在 spec §10 2026-09-28 ⑥)。
83
+ * 事件两种原因都适用,是这个闸新盖的缝 —— 已记在 spec §10 2026-09-28 ref-run-event-input)。
78
84
  */
79
85
  signalTask(taskId: string, event: TaskEvent): Promise<TaskRecord>;
86
+ /** 该任务上在飞的事件投递链尾(cancel 的等待依据,2026-10-13 ref-run-root-close) */
87
+ inflightFor(taskId: string): Promise<TaskRecord> | undefined;
80
88
  }
@@ -43,7 +43,7 @@ export class SignalSupervisor {
43
43
  this.#deps = deps;
44
44
  }
45
45
  /**
46
- * 投递一个事件给**挂起**的任务(2026-09-28 ⑥,run 事件投入口;
46
+ * 投递一个事件给**挂起**的任务(2026-09-28 ref-run-event-input,run 事件投入口;
47
47
  * `POST /tasks/:id/events` 的宿主方法侧,与 approve/cancel 对称)。
48
48
  *
49
49
  * 语义(设计稿 §3 逐条的落点):
@@ -67,9 +67,18 @@ export class SignalSupervisor {
67
67
  * (两条并发事件是两条不同的输入,共享 = 静默丢一条)。与其它恢复路径
68
68
  * (approve / 到期唤醒,各有自己的闸)的竞速:进闸后重读再判挡住绝大多数;
69
69
  * 剩下的窄窗口与既有「approve × wakeDue 分闸」同类(那两条按挂起原因天然互斥,
70
- * 事件两种原因都适用,是这个闸新盖的缝 —— 已记在 spec §10 2026-09-28 ⑥)。
70
+ * 事件两种原因都适用,是这个闸新盖的缝 —— 已记在 spec §10 2026-09-28 ref-run-event-input)。
71
71
  */
72
72
  signalTask(taskId, event) {
73
+ // cancel 在飞 ⇒ 等它收口再重走一遍(2026-10-13 ref-run-root-close)。**入链之前**等:
74
+ // 链尾会同步登记进 `#inflight`,cancel 侧的「等在飞推进」正等它 —— 进了链再等
75
+ // cancel,就是两边互等的死锁。
76
+ const settling = this.#deps.cancelInflight?.(taskId);
77
+ if (settling) {
78
+ return Promise.resolve(settling)
79
+ .catch(() => undefined)
80
+ .then(() => this.signalTask(taskId, event));
81
+ }
73
82
  // 串行化(**不是** approve 那种「共享在飞那次」):两个并发事件是**两条不同的输入**,
74
83
  // 共享在飞那次 = 后一条被静默丢掉;各自读-改-写而不互斥 = 双派发(与 resumePending
75
84
  // 的重入闸同一个 bug 类)。排成链:前一次落库完,这一次进闸后重读再判
@@ -86,6 +95,10 @@ export class SignalSupervisor {
86
95
  this.#inflight.set(taskId, run);
87
96
  return run;
88
97
  }
98
+ /** 该任务上在飞的事件投递链尾(cancel 的等待依据,2026-10-13 ref-run-root-close) */
99
+ inflightFor(taskId) {
100
+ return this.#inflight.get(taskId);
101
+ }
89
102
  async #signalInner(taskId, event) {
90
103
  const rec = await this.#deps.store.get(taskId);
91
104
  if (!rec)
@@ -1 +1 @@
1
- {"version":3,"file":"signal-supervisor.js","sourceRoot":"","sources":["../../src/transport/signal-supervisor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signal-supervisor.js","sourceRoot":"","sources":["../../src/transport/signal-supervisor.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * 到期唤醒的**纯判定** + 挂起读数 —— durable timer(2026-09-28 ① 的 timer 侧)。
2
+ * 到期唤醒的**纯判定** + 挂起读数 —— durable timer(2026-09-28 ref-suspend-state-reason 的 timer 侧)。
3
3
  *
4
4
  * 从 AsyncRunner 里抽出来的第五个协作件(slot-pool → approval-policy → drain-gate →
5
5
  * resume-policy → 这里),与 `approval-policy.ts` 是**明确的一对**:挂起的两个原因各有一套闸,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@migor/agentia",
3
- "version": "0.10.2",
3
+ "version": "0.10.3",
4
4
  "description": "面向应用开发的声明式 agent 服务开发框架:装饰器 + DI 声明四类能力,主 agent 编排执行;每次 run 产出结构化结果与可观测调用树(trace、成本、指标),交付可直接上线的服务。",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",