@migor/agentia 0.10.2 → 0.10.4

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 (144) hide show
  1. package/CHANGELOG.md +969 -64
  2. package/LICENSE +1 -1
  3. package/README.en.md +93 -38
  4. package/README.md +105 -218
  5. package/dist/AGENTS.md +234 -41
  6. package/dist/core/limits.d.ts +33 -1
  7. package/dist/core/limits.js +37 -1
  8. package/dist/core/limits.js.map +1 -1
  9. package/dist/core/run.d.ts +2 -2
  10. package/dist/core/timeout.d.ts +5 -5
  11. package/dist/core/timeout.js +5 -5
  12. package/dist/core/tool.d.ts +2 -2
  13. package/dist/core/trace-sink.d.ts +8 -0
  14. package/dist/core/trace-sink.js +24 -0
  15. package/dist/core/trace-sink.js.map +1 -0
  16. package/dist/core/trace.d.ts +12 -2
  17. package/dist/core/trace.js +10 -1
  18. package/dist/core/trace.js.map +1 -1
  19. package/dist/engine/concurrency.d.ts +1 -1
  20. package/dist/engine/concurrency.js +1 -1
  21. package/dist/engine/errors.d.ts +2 -2
  22. package/dist/engine/errors.js +2 -2
  23. package/dist/engine/loop-result.d.ts +3 -3
  24. package/dist/engine/loop.js +99 -56
  25. package/dist/engine/loop.js.map +1 -1
  26. package/dist/engine/mcp-server-http.js +1 -1
  27. package/dist/engine/mcp-server-http.js.map +1 -1
  28. package/dist/engine/mcp-server-stdio.js +7 -3
  29. package/dist/engine/mcp-server-stdio.js.map +1 -1
  30. package/dist/engine/mcp-server.d.ts +17 -2
  31. package/dist/engine/mcp-server.js +42 -17
  32. package/dist/engine/mcp-server.js.map +1 -1
  33. package/dist/engine/resume-input.d.ts +1 -1
  34. package/dist/engine/resume-input.js +1 -1
  35. package/dist/engine/retry.d.ts +15 -0
  36. package/dist/engine/retry.js +51 -2
  37. package/dist/engine/retry.js.map +1 -1
  38. package/dist/engine/span-scope.d.ts +15 -0
  39. package/dist/engine/span-scope.js +8 -1
  40. package/dist/engine/span-scope.js.map +1 -1
  41. package/dist/engine/spec.d.ts +5 -1
  42. package/dist/engine/spec.js.map +1 -1
  43. package/dist/engine/tracer.d.ts +8 -4
  44. package/dist/engine/tracer.js +24 -17
  45. package/dist/engine/tracer.js.map +1 -1
  46. package/dist/engine/turn.d.ts +2 -2
  47. package/dist/engine/turn.js +19 -4
  48. package/dist/engine/turn.js.map +1 -1
  49. package/dist/engine/types.d.ts +13 -5
  50. package/dist/engine/types.js +1 -0
  51. package/dist/engine/types.js.map +1 -1
  52. package/dist/eval/export.js +2 -2
  53. package/dist/eval/export.js.map +1 -1
  54. package/dist/eval/harvest.d.ts +4 -1
  55. package/dist/eval/harvest.js +32 -6
  56. package/dist/eval/harvest.js.map +1 -1
  57. package/dist/index.d.ts +3 -1
  58. package/dist/index.js +5 -2
  59. package/dist/index.js.map +1 -1
  60. package/dist/integrations/anthropic.d.ts +1 -1
  61. package/dist/integrations/anthropic.js +1 -1
  62. package/dist/integrations/anthropic.js.map +1 -1
  63. package/dist/integrations/file-sink.d.ts +0 -16
  64. package/dist/integrations/file-sink.js +24 -6
  65. package/dist/integrations/file-sink.js.map +1 -1
  66. package/dist/integrations/mcp-http.js +4 -3
  67. package/dist/integrations/mcp-http.js.map +1 -1
  68. package/dist/integrations/mcp-protocol.d.ts +35 -10
  69. package/dist/integrations/mcp-protocol.js +19 -1
  70. package/dist/integrations/mcp-protocol.js.map +1 -1
  71. package/dist/integrations/mcp-stdio.js +91 -50
  72. package/dist/integrations/mcp-stdio.js.map +1 -1
  73. package/dist/integrations/mcp.d.ts +1 -1
  74. package/dist/integrations/mcp.js +19 -3
  75. package/dist/integrations/mcp.js.map +1 -1
  76. package/dist/integrations/metrics-otlp.d.ts +1 -1
  77. package/dist/integrations/metrics-otlp.js +8 -2
  78. package/dist/integrations/metrics-otlp.js.map +1 -1
  79. package/dist/integrations/metrics-render.js +17 -6
  80. package/dist/integrations/metrics-render.js.map +1 -1
  81. package/dist/integrations/metrics-state.d.ts +2 -2
  82. package/dist/integrations/metrics-state.js +4 -4
  83. package/dist/integrations/metrics-state.js.map +1 -1
  84. package/dist/integrations/metrics.d.ts +2 -2
  85. package/dist/integrations/otlp.d.ts +29 -6
  86. package/dist/integrations/otlp.js +128 -7
  87. package/dist/integrations/otlp.js.map +1 -1
  88. package/dist/integrations/report.d.ts +14 -2
  89. package/dist/integrations/report.js +39 -6
  90. package/dist/integrations/report.js.map +1 -1
  91. package/dist/runtime/run.d.ts +1 -1
  92. package/dist/runtime/run.js +19 -17
  93. package/dist/runtime/run.js.map +1 -1
  94. package/dist/store/fsStore.js +9 -5
  95. package/dist/store/fsStore.js.map +1 -1
  96. package/dist/store/record.d.ts +2 -2
  97. package/dist/store/record.js +1 -1
  98. package/dist/store/sqliteStore.d.ts +2 -2
  99. package/dist/store/sqliteStore.js +3 -3
  100. package/dist/store/sqliteStore.js.map +1 -1
  101. package/dist/store/store.d.ts +27 -7
  102. package/dist/store/store.js +43 -5
  103. package/dist/store/store.js.map +1 -1
  104. package/dist/toolkit/collect.d.ts +11 -5
  105. package/dist/toolkit/collect.js +10 -4
  106. package/dist/toolkit/collect.js.map +1 -1
  107. package/dist/toolkit/discover.js +27 -1
  108. package/dist/toolkit/discover.js.map +1 -1
  109. package/dist/toolkit/module.js +183 -50
  110. package/dist/toolkit/module.js.map +1 -1
  111. package/dist/toolkit/prompt.d.ts +1 -1
  112. package/dist/toolkit/prompt.js +2 -2
  113. package/dist/toolkit/prompt.js.map +1 -1
  114. package/dist/toolkit/subagent.d.ts +1 -1
  115. package/dist/toolkit/subagent.js +17 -3
  116. package/dist/toolkit/subagent.js.map +1 -1
  117. package/dist/transport/approval-policy.js +1 -1
  118. package/dist/transport/approval-policy.js.map +1 -1
  119. package/dist/transport/approval-supervisor.d.ts +8 -0
  120. package/dist/transport/approval-supervisor.js +23 -3
  121. package/dist/transport/approval-supervisor.js.map +1 -1
  122. package/dist/transport/async.d.ts +3 -0
  123. package/dist/transport/async.js +128 -25
  124. package/dist/transport/async.js.map +1 -1
  125. package/dist/transport/http-endpoints.js +1 -1
  126. package/dist/transport/http-route.js +2 -2
  127. package/dist/transport/http-route.js.map +1 -1
  128. package/dist/transport/http-shapes.d.ts +1 -1
  129. package/dist/transport/http-shapes.js +1 -1
  130. package/dist/transport/resume-scanner.d.ts +7 -0
  131. package/dist/transport/resume-scanner.js +40 -9
  132. package/dist/transport/resume-scanner.js.map +1 -1
  133. package/dist/transport/run-call-options.js +7 -3
  134. package/dist/transport/run-call-options.js.map +1 -1
  135. package/dist/transport/scheduler.js +5 -0
  136. package/dist/transport/scheduler.js.map +1 -1
  137. package/dist/transport/serve.d.ts +92 -0
  138. package/dist/transport/serve.js +155 -0
  139. package/dist/transport/serve.js.map +1 -0
  140. package/dist/transport/signal-supervisor.d.ts +10 -2
  141. package/dist/transport/signal-supervisor.js +15 -2
  142. package/dist/transport/signal-supervisor.js.map +1 -1
  143. package/dist/transport/wake-policy.d.ts +1 -1
  144. package/package.json +23 -10
@@ -1 +1 @@
1
- {"version":3,"file":"resume-scanner.js","sourceRoot":"","sources":["../../src/transport/resume-scanner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resume-scanner.js","sourceRoot":"","sources":["../../src/transport/resume-scanner.ts"],"names":[],"mappings":"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"}
@@ -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":"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,oEAAoE;IACpE,kDAAkD;IAClD,uDAAuD;IACvD,kCAAkC;IAClC,MAAM,EAAE,SAAS,EAAE,GAAG,WAAW,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;IAC7D,OAAO;QACL,GAAG,WAAW;QACd,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,4DAA4D;QAC5D,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"}
@@ -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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"}
@@ -0,0 +1,92 @@
1
+ import { type Server } from 'node:http';
2
+ import type { IncomingMessage, ServerResponse } from 'node:http';
3
+ /**
4
+ * 起服务 + 优雅停机 —— 两个**正交**的宿主原语。
5
+ *
6
+ * 为什么需要它们(2026-10-22,`docs/plans/2026-10-22-serve-graceful-shutdown.md`):
7
+ * 参考宿主(`examples/` 各目录的 `src/main.ts`)里约 35 行是「与业务无关的 server 样板」,而这 35 行藏着
8
+ * 四个**静默错** —— keep-alive 连接不关(`close()` 等满超时)、先 close 再 drain(切断在飞请求)、
9
+ * 二次信号被吞(`if (stopping) return` 拦住信号却不放行默认行为)、超时后不退出
10
+ * (`drain()` 返回 `false` 的契约是「本进程此后不再推进任何任务 ⇒ 宿主必须退出」)。
11
+ * 这四条都不是「多写几行」能解决的,是**必须知道才会写**。
12
+ *
13
+ * ## 边界:这不是「做进程级决策」
14
+ *
15
+ * 判据是**谁发起**,不是「有没有碰 process」:
16
+ * - `createApp()` 里偷偷 `listen` / `process.on('SIGTERM')` ⇒ 越界(框架替宿主决定);
17
+ * - 宿主写 `serve(handler, { port })` / 传 `signals: [...]` ⇒ 不越界,与 Nest 的
18
+ * `app.listen()` / `enableShutdownHooks()` 同构(那边的信号订阅**也是显式 opt-in**,
19
+ * 默认关 —— 官方理由是 listener 占资源、一进程多实例会 listener 泄漏)。
20
+ *
21
+ * ⇒ 本文件**不调用 `process.exit`**(退出码与「关池 / 冲 sink 之后再退」是宿主的编排),
22
+ * 也**不在缺省下订阅任何信号**。
23
+ */
24
+ /** `serve` 的选项。端口给 0 = 由操作系统分配(测试与容器里常用)。 */
25
+ export interface ServeOptions {
26
+ port: number;
27
+ /** 监听地址;缺省所有接口(Node 默认语义)。 */
28
+ host?: string;
29
+ /** listen backlog;缺省 Node 默认。 */
30
+ backlog?: number;
31
+ }
32
+ export interface Served {
33
+ readonly server: Server;
34
+ /** **实际**端口 —— `port: 0` 时是 OS 分配的那个(日志与 e2e 都靠它)。 */
35
+ readonly port: number;
36
+ /**
37
+ * 停止监听并把连接收干净(`gracefulShutdown` 的最后一步也是它)。
38
+ * 单独给出来是为了「只要关服务器、不要 drain」的手动编排。返回是否干净收口。
39
+ */
40
+ close(opts?: {
41
+ timeoutMs?: number;
42
+ }): Promise<boolean>;
43
+ }
44
+ /**
45
+ * 起监听并等到**真的在听**才 resolve。
46
+ *
47
+ * `EADDRINUSE` / `EACCES` 直接 reject(不 swallow):boot 阶段静默起不来比崩更难查。
48
+ * 返回前把 `error` 监听摘掉,避免后续运行时错误被这个一次性监听吃掉。
49
+ */
50
+ export declare function serve(handler: (req: IncomingMessage, res: ServerResponse) => unknown, opts: ServeOptions): Promise<Served>;
51
+ export interface GracefulShutdownOptions {
52
+ server: Server;
53
+ /**
54
+ * 排空业务:通常是 `() => handler.drain({ timeoutMs })`(它返回 `Promise<boolean>`)。
55
+ * 返回 `false` 表示没排干净(语义见 `DrainGate`:此后本进程不再推进任何任务 ⇒ 必须退出);
56
+ * 返回别的(含 `undefined`)按「排干净」处理,方便 `async () => { await closePool() }` 这类写法。
57
+ * 抛错按 `false` 处理,**但仍然会关服务器** —— 业务排空失败不该让监听继续挂着。
58
+ */
59
+ drain: () => unknown;
60
+ /**
61
+ * 要订阅的信号。**不传 = 不订阅**(框架不做进程级决策)。
62
+ * 传了即「宿主显式认领」—— 与 Nest 的 `enableShutdownHooks()` 同构。
63
+ */
64
+ signals?: readonly NodeJS.Signals[];
65
+ /** 总预算(drain + 关连接共用一份),缺省 15_000;`<= 0` = 不设时限。 */
66
+ timeoutMs?: number;
67
+ /**
68
+ * 第二次信号时调用(通常是 `() => process.exit(1)`)。
69
+ * **不传时不吞信号**:解除本原语的监听,让 Node 默认行为接管(直接终止)——
70
+ * 参考宿主里那句 `if (stopping) return;` 就是反例:信号已被拦截,默认行为不会发生。
71
+ */
72
+ onSecondSignal?: (signal: NodeJS.Signals) => void;
73
+ /**
74
+ * 停机**完成后**调用一次(`clean` = 业务排空**且**连接关干净)。
75
+ * 典型实现是 `process.exit(clean ? 0 : 1)` —— 本原语自己不 exit(退出码与「关池 / 冲 sink
76
+ * 之后再退」是宿主的编排),这是留给它的缝。
77
+ * 信号触发与手动 `stop()` 都会调;`stop()` 幂等 ⇒ 只会调一次。
78
+ * ⚠️ 它抛错会从 `stop()` 抛出;信号路径上的 `stop()` 没人 await ⇒ 表现为 unhandled
79
+ * rejection —— 宿主钩子的错必须响,本原语不替宿主擦屁股。
80
+ */
81
+ onShutdown?: (clean: boolean) => void;
82
+ }
83
+ /**
84
+ * 停机编排:`drain` → `close()` + 关空闲连接 → 等关闭(超时则强收)。
85
+ *
86
+ * 返回**幂等**的 `stop()`:重复 / 并发调用返回**同一个** in-flight promise(不是第二次返回
87
+ * `false` —— 那会让调用方误以为没排干净)。返回 `true` = 业务已排空**且**连接已干净关闭。
88
+ *
89
+ * ⚠️ 顺序不可参数化:先 `close()` 再 `drain()` 会把在飞请求切断(`close()` 只是不再接受
90
+ * 新连接,已建立的连接仍可写)—— 那就把排空这层保护作废了。
91
+ */
92
+ export declare function gracefulShutdown(opts: GracefulShutdownOptions): () => Promise<boolean>;
@@ -0,0 +1,155 @@
1
+ import { createServer } from 'node:http';
2
+ import { assertTimerDelay, TIMED_OUT, withTimeout } from '../core/timeout.js';
3
+ /**
4
+ * 起监听并等到**真的在听**才 resolve。
5
+ *
6
+ * `EADDRINUSE` / `EACCES` 直接 reject(不 swallow):boot 阶段静默起不来比崩更难查。
7
+ * 返回前把 `error` 监听摘掉,避免后续运行时错误被这个一次性监听吃掉。
8
+ */
9
+ export function serve(handler, opts) {
10
+ const server = createServer((req, res) => {
11
+ // handler 允许返回 Promise(`HttpHandler` 就是);这里不收它 —— 收与不收都改变不了
12
+ // 「请求已交给 handler」这个事实,而漏掉的 rejection 由 handler 自己负责(它内部已在
13
+ // 端点层把错误转成响应)。用 `void` 显式表态,免得读代码的人以为忘了 await。
14
+ void handler(req, res);
15
+ });
16
+ return new Promise((resolve, reject) => {
17
+ const onError = (err) => reject(err);
18
+ server.once('error', onError);
19
+ server.listen({
20
+ port: opts.port,
21
+ ...(opts.host ? { host: opts.host } : {}),
22
+ ...(opts.backlog ? { backlog: opts.backlog } : {}),
23
+ }, () => {
24
+ server.off('error', onError);
25
+ const addr = server.address();
26
+ resolve({
27
+ server,
28
+ port: typeof addr === 'object' && addr !== null ? addr.port : opts.port,
29
+ close: (o) => closeServer(server, budgetOf(o?.timeoutMs)),
30
+ });
31
+ });
32
+ });
33
+ }
34
+ /**
35
+ * 停机编排:`drain` → `close()` + 关空闲连接 → 等关闭(超时则强收)。
36
+ *
37
+ * 返回**幂等**的 `stop()`:重复 / 并发调用返回**同一个** in-flight promise(不是第二次返回
38
+ * `false` —— 那会让调用方误以为没排干净)。返回 `true` = 业务已排空**且**连接已干净关闭。
39
+ *
40
+ * ⚠️ 顺序不可参数化:先 `close()` 再 `drain()` 会把在飞请求切断(`close()` 只是不再接受
41
+ * 新连接,已建立的连接仍可写)—— 那就把排空这层保护作废了。
42
+ */
43
+ export function gracefulShutdown(opts) {
44
+ const timeoutMs = opts.timeoutMs ?? DEFAULT_SHUTDOWN_TIMEOUT_MS;
45
+ let running;
46
+ const stop = () => {
47
+ running ??= runShutdown(opts.server, opts.drain, timeoutMs, opts.onShutdown);
48
+ return running;
49
+ };
50
+ const signals = opts.signals ?? [];
51
+ if (signals.length > 0) {
52
+ let first = true;
53
+ const onSignal = (signal) => {
54
+ if (!first) {
55
+ // 第二次:交还给调用方或 Node 默认行为 —— **不吞**
56
+ if (opts.onSecondSignal) {
57
+ opts.onSecondSignal(signal);
58
+ return;
59
+ }
60
+ for (const s of signals)
61
+ process.off(s, onSignal);
62
+ return;
63
+ }
64
+ first = false;
65
+ void stop();
66
+ };
67
+ for (const s of signals)
68
+ process.on(s, onSignal);
69
+ }
70
+ return stop;
71
+ }
72
+ /** 缺省停机预算 —— 与 `examples/` 各参考宿主的取值一致 */
73
+ const DEFAULT_SHUTDOWN_TIMEOUT_MS = 15_000;
74
+ /** `timeoutMs` → 绝对截止时刻;`undefined` 取缺省,`<= 0` 表示不设时限(Infinity) */
75
+ function budgetOf(timeoutMs) {
76
+ if (timeoutMs === undefined)
77
+ return Date.now() + DEFAULT_SHUTDOWN_TIMEOUT_MS;
78
+ if (timeoutMs <= 0)
79
+ return Number.POSITIVE_INFINITY;
80
+ assertTimerDelay(timeoutMs, 'gracefulShutdown.timeoutMs');
81
+ return Date.now() + timeoutMs;
82
+ }
83
+ async function runShutdown(server, drain, timeoutMs, onShutdown) {
84
+ const deadline = budgetOf(timeoutMs);
85
+ // 先启动排空并接住迟到失败:有限预算到点后不再等它,继续关服务器。
86
+ // 总预算若只包住 closeServer,drain 永不返回时 stop() 也会永不返回。
87
+ const draining = Promise.resolve()
88
+ .then(drain)
89
+ .then((value) => value !== false, () => false);
90
+ let drained;
91
+ if (deadline === Number.POSITIVE_INFINITY) {
92
+ drained = await draining;
93
+ }
94
+ else {
95
+ const remaining = deadline - Date.now();
96
+ if (remaining <= 0) {
97
+ drained = false;
98
+ }
99
+ else {
100
+ const outcome = await withTimeout(draining, remaining);
101
+ drained = outcome === TIMED_OUT ? false : outcome;
102
+ }
103
+ }
104
+ const closed = await closeServer(server, deadline);
105
+ const clean = drained && closed;
106
+ onShutdown?.(clean);
107
+ return clean;
108
+ }
109
+ /**
110
+ * 停监听 + 收连接。返回**是否在预算内关干净**。
111
+ *
112
+ * 三步缺一不可:
113
+ * 1. `close()` —— 不再接受新连接(回调在「所有连接结束」时触发);
114
+ * 2. `closeIdleConnections()` —— **为 `engines: ">=18"` 的地板而调**。Node **19.0.0** 起
115
+ * `close()` 自己就会收空闲连接(nodejs/node#43522),官方文档的措辞是「19 之后没必要
116
+ * 再配合调它,但调也无害,且对要支持 <19 的库有用」⇒ 在 22 上这行是冗余的,在 18 上
117
+ * 它是承重的(不调的话 `close()` 会等 keep-alive 挂到 `keepAliveTimeout` = 5s,
118
+ * K8s 里表现成滚动更新卡满 gracePeriod 再被 SIGKILL)。⚠️ 官方建议它**在 `close()`
119
+ * 之后**调,避免两次调用之间新进的连接漏掉 —— 本函数正是这个顺序。
120
+ * ⇒ 这条**无法只用行为断言钉住**(新版运行时自带该行为),测试里还要用调用断言。
121
+ * 3. 预算耗尽 → `closeAllConnections()` 强收(否则旧运行时上 `close()` 可能永不回调)。
122
+ * 裸 TCP / 半开请求在新版运行时也可能被 `close()` 提前收掉;测试按运行时分支,
123
+ * 不再把「只能靠预算强收」误写成跨版本不变量。
124
+ */
125
+ function closeServer(server, deadline) {
126
+ return new Promise((resolve) => {
127
+ let settled = false;
128
+ let timer;
129
+ const finish = (clean) => {
130
+ if (settled)
131
+ return;
132
+ settled = true;
133
+ if (timer)
134
+ clearTimeout(timer);
135
+ resolve(clean);
136
+ };
137
+ if (deadline !== Number.POSITIVE_INFINITY) {
138
+ const delay = Math.max(0, deadline - Date.now());
139
+ timer = setTimeout(() => {
140
+ server.closeAllConnections?.();
141
+ // 强收之后 close 回调通常会紧跟着触发,但**不依赖它**:预算已耗尽,控制权交回宿主
142
+ finish(false);
143
+ }, delay);
144
+ timer.unref?.(); // 定时器不该把进程留住
145
+ }
146
+ server.close((err) => {
147
+ // 没在 listen 的 server 调 close 会回 ERR_SERVER_NOT_RUNNING —— 对宿主来说
148
+ // 「本来就没开」和「关干净了」是同一件事,不该算失败。
149
+ const code = err?.code;
150
+ finish(code === undefined || code === 'ERR_SERVER_NOT_RUNNING');
151
+ });
152
+ server.closeIdleConnections?.();
153
+ });
154
+ }
155
+ //# sourceMappingURL=serve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/transport/serve.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,7 +1,7 @@
1
1
  {
2
2
  "name": "@migor/agentia",
3
- "version": "0.10.2",
4
- "description": "面向应用开发的声明式 agent 服务开发框架:装饰器 + DI 声明四类能力,主 agent 编排执行;每次 run 产出结构化结果与可观测调用树(trace、成本、指标),交付可直接上线的服务。",
3
+ "version": "0.10.4",
4
+ "description": "Declarative agent service framework for TypeScript: decorators + DI declare four capability kinds, durable runs, and per-run traces, cost and metrics. Zero runtime dependencies.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -16,20 +16,33 @@
16
16
  "dist",
17
17
  "CHANGELOG.md"
18
18
  ],
19
- "repository": "retrychx/agentia",
19
+ "repository": "migoric/agentia",
20
20
  "homepage": "https://agentia-web.pages.dev",
21
21
  "bugs": {
22
- "url": "https://github.com/retrychx/agentia/issues"
22
+ "url": "https://github.com/migoric/agentia/issues"
23
23
  },
24
24
  "license": "MIT",
25
25
  "keywords": [
26
26
  "agent",
27
+ "ai-agent",
28
+ "agent-framework",
29
+ "agent-orchestration",
27
30
  "llm",
31
+ "typescript",
32
+ "nodejs",
28
33
  "anthropic",
29
34
  "claude",
35
+ "openai",
36
+ "mcp",
37
+ "model-context-protocol",
30
38
  "framework",
31
- "di",
32
- "decorators"
39
+ "dependency-injection",
40
+ "decorators",
41
+ "observability",
42
+ "tracing",
43
+ "opentelemetry",
44
+ "self-hosted",
45
+ "service-framework"
33
46
  ],
34
47
  "engines": {
35
48
  "node": ">=18"
@@ -69,14 +82,14 @@
69
82
  "bench:otlp": "tsx scripts/bench-otlp-snapshot.ts"
70
83
  },
71
84
  "devDependencies": {
72
- "@anthropic-ai/sdk": "^0.132.0",
85
+ "@anthropic-ai/sdk": "^0.134.0",
73
86
  "@biomejs/biome": "^2.5.14",
74
- "@grpc/grpc-js": "^1.14.5",
87
+ "@grpc/grpc-js": "^1.14.6",
75
88
  "@grpc/proto-loader": "^0.8.1",
76
- "@types/node": "^26.5.1",
89
+ "@types/node": "^26.6.5",
77
90
  "c8": "^12.0.0",
78
91
  "tsx": "^4.19.0",
79
92
  "typescript": "^7.0.2",
80
- "zod": "^4.6.1"
93
+ "zod": "^4.6.7"
81
94
  }
82
95
  }