@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.
- package/CHANGELOG.md +552 -36
- package/README.md +1 -1
- package/dist/AGENTS.md +95 -25
- package/dist/core/limits.d.ts +33 -1
- package/dist/core/limits.js +37 -1
- package/dist/core/limits.js.map +1 -1
- package/dist/core/run.d.ts +2 -2
- package/dist/core/timeout.d.ts +5 -5
- package/dist/core/timeout.js +5 -5
- package/dist/core/tool.d.ts +2 -2
- package/dist/core/trace.d.ts +10 -1
- package/dist/core/trace.js +10 -1
- package/dist/core/trace.js.map +1 -1
- package/dist/engine/concurrency.d.ts +1 -1
- package/dist/engine/concurrency.js +1 -1
- package/dist/engine/errors.d.ts +2 -2
- package/dist/engine/errors.js +2 -2
- package/dist/engine/loop-result.d.ts +2 -2
- package/dist/engine/loop.js +91 -56
- package/dist/engine/loop.js.map +1 -1
- package/dist/engine/mcp-server-http.js +1 -1
- package/dist/engine/mcp-server-http.js.map +1 -1
- package/dist/engine/mcp-server-stdio.js +7 -3
- package/dist/engine/mcp-server-stdio.js.map +1 -1
- package/dist/engine/mcp-server.d.ts +15 -0
- package/dist/engine/mcp-server.js +39 -8
- package/dist/engine/mcp-server.js.map +1 -1
- package/dist/engine/resume-input.d.ts +1 -1
- package/dist/engine/resume-input.js +1 -1
- package/dist/engine/retry.d.ts +15 -0
- package/dist/engine/retry.js +51 -2
- package/dist/engine/retry.js.map +1 -1
- package/dist/engine/span-scope.d.ts +15 -0
- package/dist/engine/span-scope.js +8 -1
- package/dist/engine/span-scope.js.map +1 -1
- package/dist/engine/spec.d.ts +5 -1
- package/dist/engine/spec.js.map +1 -1
- package/dist/engine/tracer.d.ts +8 -4
- package/dist/engine/tracer.js +24 -17
- package/dist/engine/tracer.js.map +1 -1
- package/dist/engine/turn.d.ts +2 -2
- package/dist/engine/turn.js +19 -4
- package/dist/engine/turn.js.map +1 -1
- package/dist/engine/types.d.ts +8 -3
- package/dist/eval/export.js +2 -2
- package/dist/eval/export.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/integrations/anthropic.d.ts +1 -1
- package/dist/integrations/anthropic.js +1 -1
- package/dist/integrations/anthropic.js.map +1 -1
- package/dist/integrations/file-sink.d.ts +2 -2
- package/dist/integrations/file-sink.js +2 -2
- package/dist/integrations/mcp-http.js +4 -3
- package/dist/integrations/mcp-http.js.map +1 -1
- package/dist/integrations/mcp-protocol.d.ts +35 -10
- package/dist/integrations/mcp-protocol.js +19 -1
- package/dist/integrations/mcp-protocol.js.map +1 -1
- package/dist/integrations/mcp-stdio.js +28 -8
- package/dist/integrations/mcp-stdio.js.map +1 -1
- package/dist/integrations/mcp.d.ts +1 -1
- package/dist/integrations/mcp.js +19 -3
- package/dist/integrations/mcp.js.map +1 -1
- package/dist/integrations/metrics-otlp.d.ts +1 -1
- package/dist/integrations/metrics-otlp.js +8 -2
- package/dist/integrations/metrics-otlp.js.map +1 -1
- package/dist/integrations/metrics-render.js +1 -1
- package/dist/integrations/metrics-render.js.map +1 -1
- package/dist/integrations/metrics-state.d.ts +2 -2
- package/dist/integrations/metrics-state.js +4 -4
- package/dist/integrations/metrics-state.js.map +1 -1
- package/dist/integrations/metrics.d.ts +2 -2
- package/dist/integrations/otlp.d.ts +29 -6
- package/dist/integrations/otlp.js +128 -7
- package/dist/integrations/otlp.js.map +1 -1
- package/dist/integrations/report.d.ts +14 -2
- package/dist/integrations/report.js +39 -6
- package/dist/integrations/report.js.map +1 -1
- package/dist/store/fsStore.js +9 -5
- package/dist/store/fsStore.js.map +1 -1
- package/dist/store/record.d.ts +2 -2
- package/dist/store/record.js +1 -1
- package/dist/store/sqliteStore.d.ts +2 -2
- package/dist/store/sqliteStore.js +3 -3
- package/dist/store/sqliteStore.js.map +1 -1
- package/dist/store/store.d.ts +27 -7
- package/dist/store/store.js +36 -5
- package/dist/store/store.js.map +1 -1
- package/dist/toolkit/collect.d.ts +11 -5
- package/dist/toolkit/collect.js +10 -4
- package/dist/toolkit/collect.js.map +1 -1
- package/dist/toolkit/module.js +78 -1
- package/dist/toolkit/module.js.map +1 -1
- package/dist/toolkit/prompt.d.ts +1 -1
- package/dist/toolkit/prompt.js +2 -2
- package/dist/toolkit/prompt.js.map +1 -1
- package/dist/toolkit/subagent.js +17 -3
- package/dist/toolkit/subagent.js.map +1 -1
- package/dist/transport/approval-policy.js +1 -1
- package/dist/transport/approval-policy.js.map +1 -1
- package/dist/transport/approval-supervisor.d.ts +8 -0
- package/dist/transport/approval-supervisor.js +23 -3
- package/dist/transport/approval-supervisor.js.map +1 -1
- package/dist/transport/async.d.ts +3 -0
- package/dist/transport/async.js +128 -25
- package/dist/transport/async.js.map +1 -1
- package/dist/transport/http-endpoints.js +1 -1
- package/dist/transport/http-route.js +2 -2
- package/dist/transport/http-route.js.map +1 -1
- package/dist/transport/http-shapes.d.ts +1 -1
- package/dist/transport/http-shapes.js +1 -1
- package/dist/transport/resume-scanner.d.ts +7 -0
- package/dist/transport/resume-scanner.js +40 -9
- package/dist/transport/resume-scanner.js.map +1 -1
- package/dist/transport/run-call-options.js +7 -3
- package/dist/transport/run-call-options.js.map +1 -1
- package/dist/transport/scheduler.js +5 -0
- package/dist/transport/scheduler.js.map +1 -1
- package/dist/transport/signal-supervisor.d.ts +10 -2
- package/dist/transport/signal-supervisor.js +15 -2
- package/dist/transport/signal-supervisor.js.map +1 -1
- package/dist/transport/wake-policy.d.ts +1 -1
- package/package.json +1 -1
package/dist/core/timeout.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* 为什么在 core:engine 的工具级超时(`engine/turn.ts`)与桥的 MCP 调用超时
|
|
5
5
|
* (`integrations/mcp.ts`)**必须共用同一套判定**。此前两处各写一份,代价是
|
|
6
6
|
* 2026-09-14 的「硬保证」收紧只落进了 `engine/concurrency.ts`,桥那一份继续用竞速判定 ——
|
|
7
|
-
* 同一个承诺两套实现,于是同一个事件在 trace 里能有两种账(见 `docs/spec.md` §10 2026-09-17
|
|
7
|
+
* 同一个承诺两套实现,于是同一个事件在 trace 里能有两种账(见 `docs/spec.md` §10 2026-09-17 ref-mcp-timeout-single-source)。
|
|
8
8
|
* `integrations` 只能依赖 core(`tests/architecture/layering.test.ts` 强制),
|
|
9
9
|
* 所以单源的落点是 core。core 是叶子:本文件只 import `limits.js`(**纯数据表,零 import**)
|
|
10
10
|
* —— 2026-09-28 起它要 `zeroClauseOf`:两处 `assertTimerDelay` 的文案必须与 limits 表同源
|
|
@@ -27,7 +27,7 @@ export const TIMED_OUT = Symbol('agentia.timed-out');
|
|
|
27
27
|
* `withTimeout`(引擎 `toolTimeoutMs`)、`interruptibleSleep`(退避)、
|
|
28
28
|
* `DrainGate.waitForIdle`(drain 预算)、`#raceTimeout`(`runTimeoutMs`)、
|
|
29
29
|
* `composeSignal`(client `timeout`)五处都直喂 `setTimeout` 且只查「非负有限」。
|
|
30
|
-
* 单源收在这里(见 `docs/spec.md` §10 2026-09-28
|
|
30
|
+
* 单源收在这里(见 `docs/spec.md` §10 2026-09-28 ref-timer-cap-single-source)。
|
|
31
31
|
*/
|
|
32
32
|
export const MAX_TIMER_DELAY_MS = 2_147_483_647;
|
|
33
33
|
/**
|
|
@@ -74,7 +74,7 @@ export function clampTimerDelay(ms) {
|
|
|
74
74
|
* 为什么需要它:超时此前只能靠**错误文案**辨认 —— 桥抛的是普通 `Error`,而
|
|
75
75
|
* `classifyError` 里没有 timeout 这一类,于是 trace 里记成 `error(unknown)` +
|
|
76
76
|
* `errorKind=threw`,与引擎自己判的超时(`error(timeout)` + `errorKind=timeout`)
|
|
77
|
-
* 成为同一事件的**两种账**(见 `docs/spec.md` §10 2026-09-17
|
|
77
|
+
* 成为同一事件的**两种账**(见 `docs/spec.md` §10 2026-09-17 ref-mcp-timeout-single-source)。
|
|
78
78
|
*
|
|
79
79
|
* 判定契约(对使用者可见):**任何** `code === 'timeout'` 的错误都会被引擎归为
|
|
80
80
|
* `errorKind='timeout'`,不需要 import 这个类(`isTimeoutError` 也认鸭子类型)。
|
|
@@ -108,7 +108,7 @@ export function abortError(message = '已被取消') {
|
|
|
108
108
|
*
|
|
109
109
|
* 为什么第 3 条也算:`engine/errors.ts` 的分类**此前只有它**认这一条(当时把超时归进 `connection`),
|
|
110
110
|
* 于是「超时」在 trace 里混在「连不上」里,看板与 `trace-diff` 分不出两者。现在超时有自己的
|
|
111
|
-
* `type: 'timeout'`,这条判据由分类与工具级记账**共用**,口径一致(spec §10 2026-09-17
|
|
111
|
+
* `type: 'timeout'`,这条判据由分类与工具级记账**共用**,口径一致(spec §10 2026-09-17 ref-timeout-error-type)。
|
|
112
112
|
*/
|
|
113
113
|
export function isTimeoutError(e) {
|
|
114
114
|
if (e instanceof TimeoutError)
|
|
@@ -199,7 +199,7 @@ export async function withTimeout(p, timeoutMs) {
|
|
|
199
199
|
* 不必再等)与 `integrations/anthropic.ts` 的 `interruptibleSleep`(client 层退避)。
|
|
200
200
|
* 那边此前自带一段「与 engine/retry.ts 的 sleep 同语义但不复用它 —— 分层约束:
|
|
201
201
|
* integrations 只能依赖 core」的注解:**正是那条约束把两份代码逼成了重复**,
|
|
202
|
-
* 所以下沉到 core 是让它们合一的唯一合法落点(见 spec §10 2026-09-17
|
|
202
|
+
* 所以下沉到 core 是让它们合一的唯一合法落点(见 spec §10 2026-09-17 ref-mcp-timeout-single-source 的单源化口径)。
|
|
203
203
|
*
|
|
204
204
|
* ⚠️ 「不合并退避计算器」的例外只针对**引擎层**:`engine/retry.ts` 的 `backoffDelay`
|
|
205
205
|
* 是 ±20% 均匀抖动、底数/上限来自 `RetryOptions`,与 client 层策略不同(见下方
|
package/dist/core/tool.d.ts
CHANGED
|
@@ -155,7 +155,7 @@ export interface ToolRunContext {
|
|
|
155
155
|
*
|
|
156
156
|
* 存在的意义是**划定裁判权**:工具(尤其带自己计时器的桥,见 `integrations/mcp.ts`)
|
|
157
157
|
* 据此知道「这次调用的超时由引擎判」,从而不再启动第二个计时器 —— 两个计时器判同一件事,
|
|
158
|
-
* 只会得到两种账(桥那份曾被记成 `error(unknown)` + `errorKind=threw`,见 spec §10 2026-09-17
|
|
158
|
+
* 只会得到两种账(桥那份曾被记成 `error(unknown)` + `errorKind=threw`,见 spec §10 2026-09-17 ref-mcp-timeout-single-source)。
|
|
159
159
|
*
|
|
160
160
|
* ⚠️ 它是本次调用的**配置值**,不是「剩余时间」。
|
|
161
161
|
*/
|
|
@@ -193,7 +193,7 @@ export interface ToolRunContext {
|
|
|
193
193
|
*/
|
|
194
194
|
approval?: ApprovalDecision;
|
|
195
195
|
/**
|
|
196
|
-
* 「现在还不是时候,T 之后再问我」(durable timer,2026-09-28
|
|
196
|
+
* 「现在还不是时候,T 之后再问我」(durable timer,2026-09-28 ref-suspend-state-reason 的 timer 侧)。
|
|
197
197
|
* 工具在执行期调用它 = 请求**本回合到此为止**:引擎丢弃本回合这批工具的结果、
|
|
198
198
|
* 把整批 tool_use 挂起(`stopReason: 'suspended'` + `suspendedReason: 'timer'` +
|
|
199
199
|
* 目标时刻 `wakeAt`),到点后由宿主续跑并**重跑这一批**(与审批续跑的形态一致)。
|
package/dist/core/trace.d.ts
CHANGED
|
@@ -51,6 +51,15 @@ export declare const TOOL_OUTPUT_EVENT = "tool.output";
|
|
|
51
51
|
* **替身值**(不是读数)—— 成本估算会把它读成「真的花了 0」,`maxCostUsd` 因此静默失效。
|
|
52
52
|
*/
|
|
53
53
|
export declare const USAGE_MISSING_EVENT = "usage.missing";
|
|
54
|
+
/**
|
|
55
|
+
* 「上下文策略在本回合开始前**真的压缩了**历史」事件名(body 带 `{ from, to, model }`)。
|
|
56
|
+
*
|
|
57
|
+
* 记账点在 `engine/turn.ts` 的回合入口检查(压缩发生时本回合的 llm.turn span 还不存在,
|
|
58
|
+
* 故事件记在回合的**父** span 上);消费方是 `integrations/otlp.ts`
|
|
59
|
+
* (映射 `gen_ai.conversation.compacted`)。与 `TOOL_INPUT_EVENT` 同因单源:
|
|
60
|
+
* 跨 engine → integrations 的名字各写一份就是静默归零。
|
|
61
|
+
*/
|
|
62
|
+
export declare const CONTEXT_BUDGET_EVENT = "context.budget";
|
|
54
63
|
/** 工具 I/O 事件名的联合 —— `eval/export.ts` 的工具事件过滤器按它取参数 */
|
|
55
64
|
export type ToolIoEventName = typeof TOOL_INPUT_EVENT | typeof TOOL_OUTPUT_EVENT;
|
|
56
65
|
/**
|
|
@@ -127,7 +136,7 @@ export declare function wireSpanId(id: string): string;
|
|
|
127
136
|
* (采样闸门要看完好整棵 trace 才判得出来),而出站调用发生在**运行期** ——
|
|
128
137
|
* 那时「这条 trace 会不会被采样掉」还没有答案。所以恒 `00` 是唯一不撒谎的选择
|
|
129
138
|
* (`00` = 不声明「已采样」);编一个 `01` 是替下游做决定。⚠️ 别下一轮「顺手」改成跟随采样
|
|
130
|
-
* (见 `docs/spec.md` §10 2026-09-21
|
|
139
|
+
* (见 `docs/spec.md` §10 2026-09-21 ref-cost-sampling)。入站侧 `parseTraceparent` 也从不读 flags。
|
|
131
140
|
*
|
|
132
141
|
* 调用方保证给的是内部 id 或线缆 id(本函数只做投影,不做合法性判定)。
|
|
133
142
|
*/
|
package/dist/core/trace.js
CHANGED
|
@@ -28,6 +28,15 @@ export const TOOL_OUTPUT_EVENT = 'tool.output';
|
|
|
28
28
|
* **替身值**(不是读数)—— 成本估算会把它读成「真的花了 0」,`maxCostUsd` 因此静默失效。
|
|
29
29
|
*/
|
|
30
30
|
export const USAGE_MISSING_EVENT = 'usage.missing';
|
|
31
|
+
/**
|
|
32
|
+
* 「上下文策略在本回合开始前**真的压缩了**历史」事件名(body 带 `{ from, to, model }`)。
|
|
33
|
+
*
|
|
34
|
+
* 记账点在 `engine/turn.ts` 的回合入口检查(压缩发生时本回合的 llm.turn span 还不存在,
|
|
35
|
+
* 故事件记在回合的**父** span 上);消费方是 `integrations/otlp.ts`
|
|
36
|
+
* (映射 `gen_ai.conversation.compacted`)。与 `TOOL_INPUT_EVENT` 同因单源:
|
|
37
|
+
* 跨 engine → integrations 的名字各写一份就是静默归零。
|
|
38
|
+
*/
|
|
39
|
+
export const CONTEXT_BUDGET_EVENT = 'context.budget';
|
|
31
40
|
/** W3C traceparent:`<2位版本>-<32位trace>-<16位span>-<2位flags>`,全小写 hex */
|
|
32
41
|
const TRACEPARENT_RE = /^([0-9a-f]{2})-([0-9a-f]{32})-([0-9a-f]{16})-([0-9a-f]{2})$/;
|
|
33
42
|
/**
|
|
@@ -80,7 +89,7 @@ export function wireSpanId(id) {
|
|
|
80
89
|
* (采样闸门要看完好整棵 trace 才判得出来),而出站调用发生在**运行期** ——
|
|
81
90
|
* 那时「这条 trace 会不会被采样掉」还没有答案。所以恒 `00` 是唯一不撒谎的选择
|
|
82
91
|
* (`00` = 不声明「已采样」);编一个 `01` 是替下游做决定。⚠️ 别下一轮「顺手」改成跟随采样
|
|
83
|
-
* (见 `docs/spec.md` §10 2026-09-21
|
|
92
|
+
* (见 `docs/spec.md` §10 2026-09-21 ref-cost-sampling)。入站侧 `parseTraceparent` 也从不读 flags。
|
|
84
93
|
*
|
|
85
94
|
* 调用方保证给的是内部 id 或线缆 id(本函数只做投影,不做合法性判定)。
|
|
86
95
|
*/
|
package/dist/core/trace.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/core/trace.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA+BH;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAC7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAC;AAE/C;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"trace.js","sourceRoot":"","sources":["../../src/core/trace.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ export declare function mapWithConcurrency<T, R>(items: readonly T[], limit: num
|
|
|
11
11
|
/**
|
|
12
12
|
* 超时原语(`TIMED_OUT` 哨兵 + `withTimeout`)已**下沉到 `core/timeout.ts`**:
|
|
13
13
|
* 它与 `integrations/mcp.ts` 的 MCP 调用超时共用同一实现 —— 此前是两份,而
|
|
14
|
-
* 「超时是硬的」那次收紧只落进了这里,桥那份留在竞速判定上(见 `docs/spec.md` §10 2026-09-17
|
|
14
|
+
* 「超时是硬的」那次收紧只落进了这里,桥那份留在竞速判定上(见 `docs/spec.md` §10 2026-09-17 ref-mcp-timeout-single-source)。
|
|
15
15
|
*
|
|
16
16
|
* 这里**原样再导出**:`engine/turn.ts` 与既有测试的 import 路径与名字保持不变,
|
|
17
17
|
* 单源化对它们零影响。
|
|
@@ -35,7 +35,7 @@ export async function mapWithConcurrency(items, limit, fn) {
|
|
|
35
35
|
/**
|
|
36
36
|
* 超时原语(`TIMED_OUT` 哨兵 + `withTimeout`)已**下沉到 `core/timeout.ts`**:
|
|
37
37
|
* 它与 `integrations/mcp.ts` 的 MCP 调用超时共用同一实现 —— 此前是两份,而
|
|
38
|
-
* 「超时是硬的」那次收紧只落进了这里,桥那份留在竞速判定上(见 `docs/spec.md` §10 2026-09-17
|
|
38
|
+
* 「超时是硬的」那次收紧只落进了这里,桥那份留在竞速判定上(见 `docs/spec.md` §10 2026-09-17 ref-mcp-timeout-single-source)。
|
|
39
39
|
*
|
|
40
40
|
* 这里**原样再导出**:`engine/turn.ts` 与既有测试的 import 路径与名字保持不变,
|
|
41
41
|
* 单源化对它们零影响。
|
package/dist/engine/errors.d.ts
CHANGED
|
@@ -14,14 +14,14 @@ import type { SpanError } from '../core/trace.js';
|
|
|
14
14
|
/** 是否中断异常(DOMException / 普通 Error 都可能是,靠 name 判定) */
|
|
15
15
|
export declare function isAbortError(e: unknown): boolean;
|
|
16
16
|
/**
|
|
17
|
-
* 分类器**能产出的全部类别** —— 单一真源(2026-09-29
|
|
17
|
+
* 分类器**能产出的全部类别** —— 单一真源(2026-09-29 ref-soak-error-taxonomy)。
|
|
18
18
|
*
|
|
19
19
|
* 为什么需要这个常量:在此之前「到底有哪几类」只活在 `classifyError` 的字面量里,
|
|
20
20
|
* 任何想按类别表态的地方(浸泡验证的判据、看板、`trace-diff`)都只能**再手写一份清单**,
|
|
21
21
|
* 而漏一类的表现是**静默**的。实测过一次(就是加这个常量的原因):
|
|
22
22
|
* `scripts/e2e-soak.ts` 里手写的 `['api','server','rate_limit']` 漏了 `connection`,
|
|
23
23
|
* 默认 60 秒的跑法永远撞不到 —— 而 2 小时那轮(719 万 run / 811 万请求)撞到 **1 次**
|
|
24
|
-
* 就让整轮报红,红的是判据、不是被测的代码(spec §10 2026-09-29
|
|
24
|
+
* 就让整轮报红,红的是判据、不是被测的代码(spec §10 2026-09-29 ref-soak-error-taxonomy)。
|
|
25
25
|
*
|
|
26
26
|
* 消费方式:`Record<ErrorType, …>` 的**穷尽表** —— 加一类而不表态 ⇒ `TS2741`
|
|
27
27
|
* (与 `SUCCESS_STOP_REASON` / `KIND_SPEC` 同款护栏,见 `docs/guards.md`)。
|
package/dist/engine/errors.js
CHANGED
|
@@ -16,14 +16,14 @@ export function isAbortError(e) {
|
|
|
16
16
|
return typeof e === 'object' && e !== null && e.name === 'AbortError';
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
|
-
* 分类器**能产出的全部类别** —— 单一真源(2026-09-29
|
|
19
|
+
* 分类器**能产出的全部类别** —— 单一真源(2026-09-29 ref-soak-error-taxonomy)。
|
|
20
20
|
*
|
|
21
21
|
* 为什么需要这个常量:在此之前「到底有哪几类」只活在 `classifyError` 的字面量里,
|
|
22
22
|
* 任何想按类别表态的地方(浸泡验证的判据、看板、`trace-diff`)都只能**再手写一份清单**,
|
|
23
23
|
* 而漏一类的表现是**静默**的。实测过一次(就是加这个常量的原因):
|
|
24
24
|
* `scripts/e2e-soak.ts` 里手写的 `['api','server','rate_limit']` 漏了 `connection`,
|
|
25
25
|
* 默认 60 秒的跑法永远撞不到 —— 而 2 小时那轮(719 万 run / 811 万请求)撞到 **1 次**
|
|
26
|
-
* 就让整轮报红,红的是判据、不是被测的代码(spec §10 2026-09-29
|
|
26
|
+
* 就让整轮报红,红的是判据、不是被测的代码(spec §10 2026-09-29 ref-soak-error-taxonomy)。
|
|
27
27
|
*
|
|
28
28
|
* 消费方式:`Record<ErrorType, …>` 的**穷尽表** —— 加一类而不表态 ⇒ `TS2741`
|
|
29
29
|
* (与 `SUCCESS_STOP_REASON` / `KIND_SPEC` 同款护栏,见 `docs/guards.md`)。
|
|
@@ -38,7 +38,7 @@ export interface AgentLoopResult<T = unknown> {
|
|
|
38
38
|
*/
|
|
39
39
|
pendingApprovals: string[] | undefined;
|
|
40
40
|
/**
|
|
41
|
-
* 挂起原因(`stopReason === 'suspended'` 时非空,2026-09-28
|
|
41
|
+
* 挂起原因(`stopReason === 'suspended'` 时非空,2026-09-28 ref-suspend-state-reason):
|
|
42
42
|
* `approval` = 等人工决定、`timer` = 等一个时刻。**由出口的调用方给** ——
|
|
43
43
|
* 出口自己不认识「为什么挂起」,它只保证这个位一定在场。
|
|
44
44
|
*/
|
|
@@ -53,7 +53,7 @@ export interface AgentLoopResult<T = unknown> {
|
|
|
53
53
|
*/
|
|
54
54
|
wakeAt: number | undefined;
|
|
55
55
|
/**
|
|
56
|
-
* 本段是否把传入的 `events`(run 事件投入口,2026-09-28
|
|
56
|
+
* 本段是否把传入的 `events`(run 事件投入口,2026-09-28 ref-run-event-input)**真注入了消息流**
|
|
57
57
|
* (字段在场)。宿主据此清 `TaskRecord.pendingEvents`:注入过 ⇒ 事件已在历史里,
|
|
58
58
|
* 簿记清掉(否则下次续跑会**重复注入**);没注入(续跑入口的再挂起出口在注入点
|
|
59
59
|
* 之前返回)⇒ 簿记必须留住,等跑通的那次。
|
package/dist/engine/loop.js
CHANGED
|
@@ -5,10 +5,12 @@ import { abortedResult, failedResult, finishedResult, suspendedResult } from './
|
|
|
5
5
|
import { tailToolUses, renderTaskEvent, textOfParam } from './resume-input.js';
|
|
6
6
|
import { detectMenuDrift, menuSignature } from './menu-drift.js';
|
|
7
7
|
import { DEFAULT_MAX_ITERATIONS, DEFAULT_MAX_TOKENS, resolveDefaultModel, resolveModelChain, runConfigSnapshot, validateLabels, } from './run-config.js';
|
|
8
|
+
import { validateRetryOptions } from './retry.js';
|
|
8
9
|
import { TraceRecorder } from './tracer.js';
|
|
9
10
|
import { abortedError, budgetError, buildLoopContext, checkTurnEntry, executeTurnTools, recordTurnUsage, streamTurn, } from './turn.js';
|
|
10
11
|
import { textOf } from './text.js';
|
|
11
12
|
import { resolveStopReason } from './stop-reason.js';
|
|
13
|
+
import { classifyError } from './errors.js';
|
|
12
14
|
import { isSuccessStopReason } from './types.js';
|
|
13
15
|
/**
|
|
14
16
|
* Agentia —— 主循环(manual loop,流式)—— spec §5。
|
|
@@ -40,7 +42,7 @@ function forkPolicyPerRun(policy) {
|
|
|
40
42
|
return policy?.forRun ? policy.forRun() : policy;
|
|
41
43
|
}
|
|
42
44
|
/**
|
|
43
|
-
* 事件注入(2026-09-28
|
|
45
|
+
* 事件注入(2026-09-28 ref-run-event-input,run 事件投入口):挂起期间投递的事件(`args.events`,
|
|
44
46
|
* 随 `TaskRecord.pendingEvents` 落库到这里)在**未决 tool_use 解决之后**渲染成
|
|
45
47
|
* user 文本消息追加进消息流,每条并在父 span 上记一条 `task.event` 事件留痕
|
|
46
48
|
* (`injected: true` —— 口径是「**注入进本段消息流**」,不是「模型已看到」:
|
|
@@ -112,7 +114,7 @@ async function agentLoop(args) {
|
|
|
112
114
|
// 是发布常态,判失败会让「续跑」在正常迭代节奏下频繁失败。但把它变成三处看得见:
|
|
113
115
|
// ① `menu.drift` 事件(时间线;经 onTraceEvent 也进 `GET /tasks/:id/stream`)
|
|
114
116
|
// ② 父 span 属性 `menu.drift`(可查询:`TaskRecord.result.trace` 里就带得到)
|
|
115
|
-
// ③ `console.warn`(运维面立即看见,与「sink 失败落 warn」同款,见 spec §10 2026-09-27
|
|
117
|
+
// ③ `console.warn`(运维面立即看见,与「sink 失败落 warn」同款,见 spec §10 2026-09-27 ref-sink-failure-warn)
|
|
116
118
|
// 「严格失败」若要做,是把这里换成带具名 error 的收尾 —— 那要动公共选项面 + limits 真源表,
|
|
117
119
|
// 留给后续决策,别在这里先斩后奏。
|
|
118
120
|
if (drift.missing.length > 0) {
|
|
@@ -145,7 +147,7 @@ async function agentLoop(args) {
|
|
|
145
147
|
}
|
|
146
148
|
if (outcome.results.length > 0)
|
|
147
149
|
ctx.messages.push({ role: 'user', content: outcome.results });
|
|
148
|
-
// 事件注入(2026-09-28
|
|
150
|
+
// 事件注入(2026-09-28 ref-run-event-input):在 tool_result **落定之后**进历史(纪律见 deliverTaskEvents)。
|
|
149
151
|
// 上面两个再挂起出口刻意**不**经过这里 —— 事件留在 pendingEvents 里等下一次续跑。
|
|
150
152
|
deliverTaskEvents(ctx, args.events);
|
|
151
153
|
if (ctx.submitted && (args.events === undefined || args.events.length === 0)) {
|
|
@@ -192,6 +194,9 @@ async function agentLoop(args) {
|
|
|
192
194
|
// - 循环还要继续(模型要求调工具)→ 停在这里,不再发下一个请求 = 不再花钱。
|
|
193
195
|
const overBudget = ctx.budget ? ctx.budget.check({ totalUsage: args.recorder.usage() }) : null;
|
|
194
196
|
ctx.messages.push({ role: 'assistant', content: message.content });
|
|
197
|
+
// 每回合刷新 finalText:max_iterations 耗尽出口也保留已产出文本
|
|
198
|
+
// (与 max_tokens / refusal / budget_exceeded 同口径;下方各收尾分支会按终态语义覆写)
|
|
199
|
+
finalText = textOf(message);
|
|
195
200
|
const resolution = resolveStopReason(message, args.maxTokens);
|
|
196
201
|
if (resolution.kind === 'finish') {
|
|
197
202
|
stopReason = resolution.stopReason;
|
|
@@ -201,6 +206,14 @@ async function agentLoop(args) {
|
|
|
201
206
|
finished = true;
|
|
202
207
|
break;
|
|
203
208
|
}
|
|
209
|
+
// 「消息已收、工具未跑」窗口:abort 落在这里时整批工具的副作用不该再发生 ——
|
|
210
|
+
// 与续跑入口(resumeUses 分支)「已取消不执行任何工具」同一口径
|
|
211
|
+
if (args.signal?.aborted) {
|
|
212
|
+
stopReason = 'aborted';
|
|
213
|
+
error = abortedError();
|
|
214
|
+
finished = true;
|
|
215
|
+
break;
|
|
216
|
+
}
|
|
204
217
|
const outcome = await executeTurnTools(ctx, turnId, resolution.toolUses, overBudget);
|
|
205
218
|
if (outcome.kind === 'suspended') {
|
|
206
219
|
// HITL 挂起:assistant 消息(含未决 tool_use)已在历史里、**不推任何 tool_result**
|
|
@@ -270,67 +283,89 @@ async function agentLoop(args) {
|
|
|
270
283
|
/** 主入口:开 run 根 span,循环跑在其下。返回完整 trace(traceId 即 runId)。 */
|
|
271
284
|
export async function runAgent(options) {
|
|
272
285
|
const recorder = options.recorder ?? new TraceRecorder();
|
|
273
|
-
const
|
|
274
|
-
recorder.
|
|
275
|
-
//
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
//
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
286
|
+
const rootName = options.runName ?? 'agent.run';
|
|
287
|
+
const rootId = recorder.begin('run', rootName, null);
|
|
288
|
+
// 入口段(属性记账 + 模型链 / 标签 / retry 校验)整体进 try:这一段抛错是**配置错**,
|
|
289
|
+
// 必须照常响亮抛出(catch 只收尾、原样 rethrow,行为对外不变)—— 但 run 根已开,
|
|
290
|
+
// 抛出前必须先合拢(error 状态 + 结构化 error + endedAt),否则交付 sink 的 trace 里
|
|
291
|
+
// status='error' 而根 span 是 ok、无 endedAt、无结构化 error,违反「非正常收尾必带
|
|
292
|
+
// 结构化 error」的不变量(2026-10-13 深评 A2)。runtime/run.ts 的 fail() 只在根未开时
|
|
293
|
+
// 补记,根已开就信任这里已收尾(recorder.end 幂等,不双记)。
|
|
294
|
+
let client;
|
|
295
|
+
let model;
|
|
296
|
+
let modelChain;
|
|
297
|
+
try {
|
|
298
|
+
recorder.setAttribute(rootId, 'model', resolveDefaultModel(options.model));
|
|
299
|
+
// 提示词版本化(D4):版本号落 run 根,便于按版本筛 trace
|
|
300
|
+
if (options.systemVersion)
|
|
301
|
+
recorder.setAttribute(rootId, 'system.version', options.systemVersion);
|
|
302
|
+
// @Prompt 资产版本(R7):菜单里各 prompt 的版本表落 run 根 —— 质量回归能定位到具体资产版本
|
|
303
|
+
if (options.promptVersions) {
|
|
304
|
+
const joined = Object.entries(options.promptVersions)
|
|
305
|
+
.sort(([a], [b]) => (a < b ? -1 : 1))
|
|
306
|
+
.map(([n, v]) => `${n}@${v}`)
|
|
307
|
+
.join(',');
|
|
308
|
+
if (joined)
|
|
309
|
+
recorder.setAttribute(rootId, 'prompts.versions', joined);
|
|
295
310
|
}
|
|
311
|
+
// 会话标识(R7 thread 维度):多轮 run 按 session 聚合;OTLP 侧映射 gen_ai.conversation.id
|
|
312
|
+
if (options.sessionId)
|
|
313
|
+
recorder.setAttribute(rootId, 'session.id', options.sessionId);
|
|
314
|
+
// 归因标签(R8-P4):labels.* 落 run 根(trace 侧无基数问题;进 metrics 是
|
|
315
|
+
// metricsSink 的 labelKeys 那道显式开关 —— 两套纪律在各自的注释里互相指)
|
|
316
|
+
if (options.labels) {
|
|
317
|
+
for (const [k, v] of Object.entries(options.labels)) {
|
|
318
|
+
recorder.setAttribute(rootId, `labels.${k}`, v);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
// 入站链路(spec §9.2 跨进程关联):把「谁触发了这次 run」记成 run 根的一条 link。
|
|
322
|
+
// 与 `traceId == runId` 共存 —— 上游是被**链接**而不是被继承成父 span,所以本 run
|
|
323
|
+
// 的树永远自洽(上游采样掉/已结束都不影响),因果关系仍然可查。见 core/trace.ts。
|
|
324
|
+
if (options.traceContext) {
|
|
325
|
+
recorder.addLink(rootId, {
|
|
326
|
+
traceId: options.traceContext.traceId,
|
|
327
|
+
...(options.traceContext.spanId ? { spanId: options.traceContext.spanId } : {}),
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
// 菜单版本化(R8 候选 3):名字清单(人读、有界)+ 摘要(比对)。
|
|
331
|
+
// 与 `prompts.versions` 同一动机 —— 质量回归要能定位到具体菜单版本;摘要覆盖 schema,
|
|
332
|
+
// 所以「工具还在、签名变了」也算漂移。**只在 run 根记**:子循环走 `runAgentScoped`
|
|
333
|
+
// (不开 run 根、不设根属性),所以不会把子菜单覆写到根上。
|
|
334
|
+
if (options.tools && options.tools.length > 0) {
|
|
335
|
+
const { names, hash } = menuSignature(options.tools);
|
|
336
|
+
recorder.setAttribute(rootId, 'tools.names', names);
|
|
337
|
+
recorder.setAttribute(rootId, 'tools.menuHash', hash);
|
|
338
|
+
}
|
|
339
|
+
// 生效配置快照(G3):本 run 真正用着的旋钮写进 run 根 —— 事后能回答
|
|
340
|
+
// 「这条 run 的 maxCostUsd 设了没 / 重试几次」,换参数前后的对比才有据可查。
|
|
341
|
+
// 只记可序列化标量;函数型选项(summarize / estimateTokens)不记内容。
|
|
342
|
+
for (const [k, v] of Object.entries(runConfigSnapshot(options)))
|
|
343
|
+
recorder.setAttribute(rootId, k, v);
|
|
344
|
+
// fallback 链(R8-P2)在这里解析 + 校验:坏环 / 死 client(持久化反序列化的空壳)
|
|
345
|
+
// 是调用方的配置错,必须在 run 入口响亮抛 TypeError —— 上面的 catch 只给根 span
|
|
346
|
+
// 收尾就原样 rethrow,不会收成「一条失败的 run」(配置错被记成运行失败是静默降级的一种)。
|
|
347
|
+
client = options.client ?? createAnthropicClient();
|
|
348
|
+
model = resolveDefaultModel(options.model);
|
|
349
|
+
modelChain = resolveModelChain({ model, client, fallbacks: options.fallbacks });
|
|
350
|
+
// 归因标签(R8-P4)同一条入口校验纪律:配置错响亮抛,不收成失败的 run
|
|
351
|
+
validateLabels(options.labels);
|
|
352
|
+
// retry 数值旋钮同款(2026-10-13 深评 A1):NaN / 负数 / 超上限在这里响亮抛 ——
|
|
353
|
+
// 否则 `maxAttempts: NaN` 静默关重试、`baseDelayMs: NaN` 的 RangeError 会被退避处的
|
|
354
|
+
// catch 误报成「用户取消」(各旋钮 0 的读法见 core/limits.ts 真源表)
|
|
355
|
+
validateRetryOptions(options.retry);
|
|
296
356
|
}
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
if (options.traceContext) {
|
|
301
|
-
recorder.addLink(rootId, {
|
|
302
|
-
traceId: options.traceContext.traceId,
|
|
303
|
-
...(options.traceContext.spanId ? { spanId: options.traceContext.spanId } : {}),
|
|
304
|
-
});
|
|
305
|
-
}
|
|
306
|
-
// 菜单版本化(R8 候选 3):名字清单(人读、有界)+ 摘要(比对)。
|
|
307
|
-
// 与 `prompts.versions` 同一动机 —— 质量回归要能定位到具体菜单版本;摘要覆盖 schema,
|
|
308
|
-
// 所以「工具还在、签名变了」也算漂移。**只在 run 根记**:子循环走 `runAgentScoped`
|
|
309
|
-
// (不开 run 根、不设根属性),所以不会把子菜单覆写到根上。
|
|
310
|
-
if (options.tools && options.tools.length > 0) {
|
|
311
|
-
const { names, hash } = menuSignature(options.tools);
|
|
312
|
-
recorder.setAttribute(rootId, 'tools.names', names);
|
|
313
|
-
recorder.setAttribute(rootId, 'tools.menuHash', hash);
|
|
357
|
+
catch (e) {
|
|
358
|
+
recorder.end(rootId, { status: 'error', error: classifyError(e) });
|
|
359
|
+
throw e;
|
|
314
360
|
}
|
|
315
|
-
// 生效配置快照(G3):本 run 真正用着的旋钮写进 run 根 —— 事后能回答
|
|
316
|
-
// 「这条 run 的 maxCostUsd 设了没 / 重试几次」,换参数前后的对比才有据可查。
|
|
317
|
-
// 只记可序列化标量;函数型选项(summarize / estimateTokens)不记内容。
|
|
318
|
-
for (const [k, v] of Object.entries(runConfigSnapshot(options)))
|
|
319
|
-
recorder.setAttribute(rootId, k, v);
|
|
320
361
|
const progress = { iterations: 0, eventsDelivered: false };
|
|
321
|
-
// fallback 链(R8-P2)在 **try 之外**解析 + 校验:坏环 / 死 client(持久化反序列化的
|
|
322
|
-
// 空壳)是调用方的配置错,必须在 run 入口响亮抛 TypeError —— 放进 try 会被
|
|
323
|
-
// failedResult 收成「一条失败的 run」,配置错就这样被记成了运行失败(静默降级的一种)。
|
|
324
|
-
const client = options.client ?? createAnthropicClient();
|
|
325
|
-
const model = resolveDefaultModel(options.model);
|
|
326
|
-
const modelChain = resolveModelChain({ model, client, fallbacks: options.fallbacks });
|
|
327
|
-
// 归因标签(R8-P4)同一条入口校验纪律:配置错响亮抛,不收成失败的 run
|
|
328
|
-
validateLabels(options.labels);
|
|
329
362
|
let result;
|
|
330
363
|
try {
|
|
331
364
|
// run 根作用域(spec §9.2 出站传播):循环内任何地方(工具 / 子能力 / 中间件)都读得到
|
|
332
365
|
// 「我正处在哪个 span」—— 更内层的作用域由 turn / skill / subagent 逐层收窄。
|
|
333
|
-
|
|
366
|
+
// `agentName` 一并登记(G7 交接):run 根 = 应用名,是「调用方是主 agent」时
|
|
367
|
+
// `agentia.handoff.from` 的值(子 agent 会在自己的 capability 作用域里换掉它)。
|
|
368
|
+
result = await withCurrentSpan({ traceId: recorder.traceId, spanId: rootId, agentName: rootName }, () => agentLoop({
|
|
334
369
|
client,
|
|
335
370
|
model,
|
|
336
371
|
modelChain,
|
package/dist/engine/loop.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/engine/loop.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/engine/loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -122,7 +122,7 @@ export function startHttpTransport(core, opts) {
|
|
|
122
122
|
// ② 在**方法 / 路径判定之前**:未鉴权一律 401,不泄露 endpoint 存在性。
|
|
123
123
|
// 宿主的分支顺序是「免鉴权组的 405 先于鉴权,其余先鉴权再判方法与路径」
|
|
124
124
|
// (`transport/http-route.ts`),此前这里把 DELETE/405 摆在鉴权前面,
|
|
125
|
-
// 于是未鉴权能拿到 `405 allow: POST, DELETE` 与 `DELETE → 200`(2026-09-27
|
|
125
|
+
// 于是未鉴权能拿到 `405 allow: POST, DELETE` 与 `DELETE → 200`(2026-09-27 ref-mcp-reverse-bridge)。
|
|
126
126
|
// 自己这条 path 的判定不在此列:它只是「这个请求是不是我的」,别的路径原样交回宿主。
|
|
127
127
|
if (opts.auth) {
|
|
128
128
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server-http.js","sourceRoot":"","sources":["../../src/engine/mcp-server-http.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"mcp-server-http.js","sourceRoot":"","sources":["../../src/engine/mcp-server-http.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,13 +48,16 @@ function dispatchLine(line, core, isClosed) {
|
|
|
48
48
|
}
|
|
49
49
|
export function startStdioTransport(core) {
|
|
50
50
|
// stdout 的 error **必须吞**:宿主先关读端、stdin 仍开着时,下一次应答写入就是异步
|
|
51
|
-
// `write EPIPE` —— 未捕获会把 server 打成栈回溯 + exit 1(2026-09-27
|
|
51
|
+
// `write EPIPE` —— 未捕获会把 server 打成栈回溯 + exit 1(2026-09-27 ref-mcp-reverse-bridge),而它只是
|
|
52
52
|
// 「对端没了」的次生现象,不是根因。正向连接器对子进程 stdin 是同一处置
|
|
53
53
|
// (`integrations/mcp-stdio.ts` 的 `p.stdin?.on('error', () => {})`),方向对称。
|
|
54
54
|
// 吞掉 ≠ 静默:真该知道的人(宿主)已经从自己的管道拿到 EOF 了。
|
|
55
|
-
|
|
55
|
+
// 监听器挂在**进程级** stdout 上 ⇒ close 时必须摘掉,否则多次 createMcpServer 会累积
|
|
56
|
+
// (stdin 的 data 监听是 per-close 摘的,stdout 这条漏了 —— 深度评审 2026-10-13 低等项)。
|
|
57
|
+
const onStdoutError = () => {
|
|
56
58
|
/* EPIPE:对端已走 */
|
|
57
|
-
}
|
|
59
|
+
};
|
|
60
|
+
process.stdout.on('error', onStdoutError);
|
|
58
61
|
let buf = '';
|
|
59
62
|
let closed = false;
|
|
60
63
|
/**
|
|
@@ -111,6 +114,7 @@ export function startStdioTransport(core) {
|
|
|
111
114
|
closed = true;
|
|
112
115
|
core.abortAll();
|
|
113
116
|
process.stdin.off('data', onData);
|
|
117
|
+
process.stdout.off('error', onStdoutError); // 进程级监听:不摘会随多次 create 累积
|
|
114
118
|
process.stdin.pause(); // 摘掉读端,宿主进程的事件循环不再被我们吊住
|
|
115
119
|
return Promise.resolve();
|
|
116
120
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server-stdio.js","sourceRoot":"","sources":["../../src/engine/mcp-server-stdio.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1E;;;;;;;;;;;;GAYG;AACH;;;;;;;;;;GAUG;AACH,SAAS,YAAY,CAAC,IAAY,EAAE,IAAa,EAAE,QAAuB;IACxE,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC;QACvF,OAAO;IACT,CAAC;IACD,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAClC,KAAK,IAAI;SACN,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;SACrB,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QACb,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,CAAC;IACH,CAAC,CAAC;SACD,KAAK,CAAC,GAAG,EAAE;QACV,+CAA+C;IACjD,CAAC,CAAC;SACD,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAa;IAC/C,uDAAuD;IACvD,
|
|
1
|
+
{"version":3,"file":"mcp-server-stdio.js","sourceRoot":"","sources":["../../src/engine/mcp-server-stdio.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { IncomingMessage, Server } from 'node:http';
|
|
2
2
|
import type { AgentTool, ModelClient } from '../core/tool.js';
|
|
3
3
|
import type { TraceSink } from '../core/trace.js';
|
|
4
|
+
import type { TraceLimits } from './tracer.js';
|
|
4
5
|
/**
|
|
5
6
|
* Agentia —— **MCP 反向桥**(R8-P5):把 app 的能力菜单暴露成 MCP server
|
|
6
7
|
* (正向桥 `integrations/mcp.ts` 是把外部 MCP server 的工具接进来,本文件是反方向)。
|
|
@@ -35,6 +36,8 @@ import type { TraceSink } from '../core/trace.js';
|
|
|
35
36
|
* metrics 的 `capabilityKindOf` 把它归为 `capability:<name>` 标签,自动进能力指标),
|
|
36
37
|
* 并按 `tool-events.ts` 的口径记同名 `tool.input` / `tool.output` 事件(账目形状与引擎
|
|
37
38
|
* 一致);收尾 snapshot 投递 `opts.sinks`(sink 抛错吞掉 + `console.warn`,观测不击穿业务)。
|
|
39
|
+
* 入站链路(SEP-414):`params._meta.traceparent` 合法时记成 run 根的一条 `links`
|
|
40
|
+
* (与 HTTP 宿主的 `traceparent` 头同款缝合;缺失 / 畸形静默当作孤立根)。
|
|
38
41
|
* `tools/list` / `initialize` 不建 trace。
|
|
39
42
|
*
|
|
40
43
|
* **不做(YAGNI,与正向桥同款清单)**:resources / prompts / sampling(server 反向请求模型)/
|
|
@@ -67,6 +70,18 @@ export interface McpServerOptions {
|
|
|
67
70
|
client?: ModelClient;
|
|
68
71
|
/** trace 出口:每次 `tools/call` 收尾投递(抛错被吞,观测不击穿业务) */
|
|
69
72
|
sinks?: TraceSink[];
|
|
73
|
+
/**
|
|
74
|
+
* 每次 `tools/call` 那棵 trace 的事件数闸(语义与引擎 `traceLimits` **同款**:
|
|
75
|
+
* 超限停记 + run 根两笔 `trace.truncated` 簿记;缺省 = 不限)。子 agent 类工具
|
|
76
|
+
* 在桥内长跑时,没有这道闸 trace 体积就无界。坏值在**构造期**抛 TypeError
|
|
77
|
+
* (与 run 入口的 `resolveTraceLimits` 同一个判定器)。
|
|
78
|
+
*/
|
|
79
|
+
traceLimits?: TraceLimits;
|
|
80
|
+
/**
|
|
81
|
+
* 事件正文截断上限;语义与引擎 `maxEventChars` **同款**(`false` = 不截断,
|
|
82
|
+
* 缺省 = 引擎缺省 `DEFAULT_EVENT_CHARS`)。透传给 tool.input / tool.output 的载荷装配。
|
|
83
|
+
*/
|
|
84
|
+
maxEventChars?: number | false;
|
|
70
85
|
/**
|
|
71
86
|
* 单次 `tools/call` 的工具执行超时(毫秒),语义与引擎 `toolTimeoutMs` **同款**:
|
|
72
87
|
* 非正数 / 不设 = 不限;超时 = **放弃等待**(abort `abandoned` 通知工具自行收尾,
|