@migor/agentia 0.10.1 → 0.10.2

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 (35) hide show
  1. package/CHANGELOG.md +368 -1
  2. package/README.en.md +6 -4
  3. package/README.md +4 -3
  4. package/dist/AGENTS.md +11 -8
  5. package/dist/engine/mcp-server-http.js +68 -35
  6. package/dist/engine/mcp-server-http.js.map +1 -1
  7. package/dist/engine/mcp-server-stdio.d.ts +0 -13
  8. package/dist/engine/mcp-server-stdio.js +35 -22
  9. package/dist/engine/mcp-server-stdio.js.map +1 -1
  10. package/dist/index.d.ts +1 -1
  11. package/dist/index.js +1 -1
  12. package/dist/integrations/mcp-http.js +12 -86
  13. package/dist/integrations/mcp-http.js.map +1 -1
  14. package/dist/integrations/mcp-protocol.d.ts +51 -0
  15. package/dist/integrations/mcp-protocol.js +128 -0
  16. package/dist/integrations/mcp-protocol.js.map +1 -1
  17. package/dist/integrations/mcp-stdio.js +63 -48
  18. package/dist/integrations/mcp-stdio.js.map +1 -1
  19. package/dist/integrations/openai.d.ts +4 -1
  20. package/dist/integrations/openai.js +25 -6
  21. package/dist/integrations/openai.js.map +1 -1
  22. package/dist/runtime/memory.d.ts +5 -0
  23. package/dist/runtime/memory.js.map +1 -1
  24. package/dist/store/store.d.ts +6 -0
  25. package/dist/store/store.js.map +1 -1
  26. package/dist/transport/async.d.ts +2 -4
  27. package/dist/transport/async.js +38 -120
  28. package/dist/transport/async.js.map +1 -1
  29. package/dist/transport/run-call-options.d.ts +77 -0
  30. package/dist/transport/run-call-options.js +72 -0
  31. package/dist/transport/run-call-options.js.map +1 -0
  32. package/dist/transport/run-outcome.d.ts +109 -0
  33. package/dist/transport/run-outcome.js +100 -0
  34. package/dist/transport/run-outcome.js.map +1 -0
  35. package/package.json +2 -2
@@ -21,24 +21,34 @@ import { randomUUID } from 'node:crypto';
21
21
  */
22
22
  /** http 侧请求 body 上限(固定 1 MiB,与 HTTP 宿主缺省一致;不公开成旋钮) */
23
23
  const MAX_BODY_BYTES = 1024 * 1024;
24
- export function startHttpTransport(core, opts) {
25
- const host = opts.host ?? '127.0.0.1';
26
- const path = opts.path ?? '/mcp';
27
- const shared = opts.server !== undefined;
28
- const server = opts.server ?? createServer();
29
- /** initialize 响应发的会话 id(生成的 uuid;无状态 server 只发不校验 —— 宽容是有意的) */
30
- const sessionId = randomUUID();
31
- const sendJson = (res, status, body) => {
32
- if (res.writableEnded || res.destroyed)
33
- return; // 客户端已走:写了也没人收
34
- const payload = JSON.stringify(body);
35
- res.writeHead(status, {
36
- 'content-type': 'application/json; charset=utf-8',
37
- 'content-length': Buffer.byteLength(payload),
38
- });
39
- res.end(payload);
40
- };
41
- const readBody = (req) => new Promise((resolvePromise) => {
24
+ /**
25
+ * 下面这一组(`sendJson` / `readBody` / `jsonRpcIdOf` / `startListening` / `closeOwnServer`)
26
+ * 2026-10-11 从 `startHttpTransport` 里提到**模块级**:它们是纯件(只看传入的 `req` / `res` /
27
+ * `server`,不碰那条连接的闭包状态),留在闭包里那一个函数有 **192 行 / 占文件 87%**
28
+ * 〔**修前**读数,文件 220 行 —— 那是定阈值当天的全仓最高比例〕。见
29
+ * `tests/architecture/method-size.test.ts` 头注的读数表。
30
+ * ⚠️ **别把「修后多少」写在这里** —— 那是个会腐烂的比例(头部注释改动就会动分母),
31
+ * 能现算:把那个上限临时改成 0 跑一次就是全表。搬迁是**逐字**的,判据与注释一并搬走。
32
+ */
33
+ /** 回 JSON。⚠️ 客户端已走时静默返回:写了也没人收,而 `writeHead` 会抛 `ERR_STREAM_WRITE_AFTER_END`。 */
34
+ function sendJson(res, status, body) {
35
+ if (res.writableEnded || res.destroyed)
36
+ return; // 客户端已走:写了也没人收
37
+ const payload = JSON.stringify(body);
38
+ res.writeHead(status, {
39
+ 'content-type': 'application/json; charset=utf-8',
40
+ 'content-length': Buffer.byteLength(payload),
41
+ });
42
+ res.end(payload);
43
+ }
44
+ /**
45
+ * 读请求体;**超过上限 / 连接中断都返回 `null`**(调用方回 413,不区分是哪一种)。
46
+ *
47
+ * 四个事件都听着是为了**不挂死**:`data` 攒、`end` 收口、`error` 与 `close` 都是「不会再有
48
+ * 数据了」—— 只盯 `end` 的话,客户端中途断开会让这个 Promise 永远不 settle(在飞连接泄漏)。
49
+ */
50
+ function readBody(req) {
51
+ return new Promise((resolvePromise) => {
42
52
  const chunks = [];
43
53
  let size = 0;
44
54
  let done = false;
@@ -60,6 +70,42 @@ export function startHttpTransport(core, opts) {
60
70
  req.on('error', () => finish(null));
61
71
  req.on('close', () => finish(null));
62
72
  });
73
+ }
74
+ /** 报文里的 JSON-RPC `id`(兜底那一支要用它回 `-32603`);**不是数字 / 字符串 / null 就回 null** */
75
+ function jsonRpcIdOf(msg) {
76
+ const rawId = msg.id;
77
+ return typeof rawId === 'number' || typeof rawId === 'string' || rawId === null ? rawId : null;
78
+ }
79
+ /** 起监听并算出对外 URL(端口 0 = 让内核挑一个;拿不到地址则返回 `undefined`) */
80
+ function startListening(server, port, host, path) {
81
+ return new Promise((resolvePromise, rejectPromise) => {
82
+ server.once('error', rejectPromise);
83
+ server.listen(port, host, () => {
84
+ const addr = server.address();
85
+ resolvePromise(addr !== null && typeof addr === 'object'
86
+ ? `http://${host}:${addr.port}${path}`
87
+ : undefined);
88
+ });
89
+ });
90
+ }
91
+ /**
92
+ * 关掉自有 server。
93
+ * ⚠️ 仍在飞的连接会吊住 `close` 的回调(Node ≥ 18.2 有 `closeAllConnections`;旧版没有则
94
+ * 靠 `abortAll` 之后工具自行收尾 —— 读 signal 的工具会退出,连接随之结束)。
95
+ */
96
+ function closeOwnServer(server) {
97
+ return new Promise((resolvePromise) => {
98
+ server.close(() => resolvePromise());
99
+ server.closeAllConnections?.();
100
+ });
101
+ }
102
+ export function startHttpTransport(core, opts) {
103
+ const host = opts.host ?? '127.0.0.1';
104
+ const path = opts.path ?? '/mcp';
105
+ const shared = opts.server !== undefined;
106
+ const server = opts.server ?? createServer();
107
+ /** initialize 响应发的会话 id(生成的 uuid;无状态 server 只发不校验 —— 宽容是有意的) */
108
+ const sessionId = randomUUID();
63
109
  const onRequest = async (req, res) => {
64
110
  const pathname = new URL(req.url ?? '/', 'http://localhost').pathname;
65
111
  if (pathname !== path) {
@@ -158,8 +204,7 @@ export function startHttpTransport(core, opts) {
158
204
  // 一读就抛)、或惰性 client 构造失败(默认 `createAnthropicClient()` 缺 API key)。
159
205
  // 这些是**请求级**的意外 ⇒ 该回一条 JSON-RPC 错误并继续服务,而不是退出进程。
160
206
  console.error('[agentia:mcp-server] 请求处理异常:', e);
161
- const rawId = msg.id;
162
- const id = typeof rawId === 'number' || typeof rawId === 'string' || rawId === null ? rawId : null;
207
+ const id = jsonRpcIdOf(msg);
163
208
  if (res.headersSent) {
164
209
  res.end(); // 响应头已定(200 已发):只能收口,状态码改不了了
165
210
  }
@@ -177,15 +222,8 @@ export function startHttpTransport(core, opts) {
177
222
  let url;
178
223
  const ready = shared
179
224
  ? Promise.resolve()
180
- : new Promise((resolvePromise, rejectPromise) => {
181
- server.once('error', rejectPromise);
182
- server.listen(opts.port ?? 0, host, () => {
183
- const addr = server.address();
184
- if (addr !== null && typeof addr === 'object') {
185
- url = `http://${host}:${addr.port}${path}`;
186
- }
187
- resolvePromise();
188
- });
225
+ : startListening(server, opts.port ?? 0, host, path).then((u) => {
226
+ url = u;
189
227
  });
190
228
  let closed = false;
191
229
  return {
@@ -203,12 +241,7 @@ export function startHttpTransport(core, opts) {
203
241
  server.off('request', onRequest);
204
242
  return Promise.resolve();
205
243
  }
206
- return new Promise((resolvePromise) => {
207
- server.close(() => resolvePromise());
208
- // 仍在飞的连接会吊住 close 的回调(Node ≥ 18.2 有 closeAllConnections;旧版没有则
209
- // 靠 abortAll 之后工具自行收尾 —— 读 signal 的工具会退出,连接随之结束)
210
- server.closeAllConnections?.();
211
- });
244
+ return closeOwnServer(server);
212
245
  },
213
246
  };
214
247
  }
@@ -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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"}
@@ -1,15 +1,2 @@
1
1
  import type { McpCore, McpServer } from './mcp-server.js';
2
- /**
3
- * Agentia —— MCP 反向桥的 **stdio 传输**(2026-09-28 自 `mcp-server.ts` 切出,
4
- * 与正向桥 `integrations/mcp-stdio.ts` 同款排布:桥居中、传输各居其文件)。
5
- *
6
- * 形状:stdin/stdout **换行分隔 JSON-RPC**(每行一个完整报文);日志只去 stderr
7
- * —— stdout 是协议面,往里写一个字节都会污染报文流。
8
- *
9
- * **依赖方向(单向,运行期无环)**:本文件从 `mcp-server.js` 只取**类型**
10
- * (`McpCore` / `McpServer`,编译期擦除),协议与执行**由 `core` 注入**。
11
- * ⚠️ 与正向桥的差别(那边的 `mcp.ts ↔ mcp-stdio.ts` 是一条**真实的值环**:桥 re-export
12
- * 连接器、连接器反向 import 桥的共享 helper,靠 ESM 的函数提升与调用时机侥幸无恙)——
13
- * 这里刻意做成注入式:无环是**构造性**的,不靠运气。
14
- */
15
2
  export declare function startStdioTransport(core: McpCore): McpServer;
@@ -12,6 +12,40 @@ import { frameLimitText, MAX_FRAME_CHARS } from '../core/line-framing.js';
12
12
  * 连接器、连接器反向 import 桥的共享 helper,靠 ESM 的函数提升与调用时机侥幸无恙)——
13
13
  * 这里刻意做成注入式:无环是**构造性**的,不靠运气。
14
14
  */
15
+ /**
16
+ * 派发一行(2026-10-11 自 `onData` 里提到模块级:它是纯件 —— 只依赖这一行、`core` 与
17
+ * 「还开着吗」这一个读数,留在闭包里 `startStdioTransport` 有 **88 行 / 占文件 85%**
18
+ * 〔**修前**读数,文件 104 行〕。⚠️ **别把「修后多少」写在这里** —— 那是个会腐烂的比例,
19
+ * 能现算:把 `tests/architecture/method-size.test.ts` 的上限临时改成 0 跑一次就是全表)。
20
+ *
21
+ * 两个刻意的处置(搬迁时一字未改):
22
+ * ① **坏 JSON 由协议侧定义形状**回 `-32700` —— 传输层不该知道 JSON-RPC 的错误码
23
+ * (见 `McpCore.rpcError`);
24
+ * ② 分派自身抛错**吞掉**:`callTool` 内部已兜住工具错,真漏出来的也不许把 server 带崩。
25
+ */
26
+ function dispatchLine(line, core, isClosed) {
27
+ let msg;
28
+ try {
29
+ msg = JSON.parse(line);
30
+ }
31
+ catch {
32
+ process.stdout.write(`${JSON.stringify(core.rpcError(null, -32700, '行不是合法 JSON'))}\n`);
33
+ return;
34
+ }
35
+ const ac = new AbortController();
36
+ const signal = core.trackCall(ac);
37
+ void core
38
+ .dispatch(msg, signal)
39
+ .then((resp) => {
40
+ if (resp !== null && !isClosed()) {
41
+ process.stdout.write(`${JSON.stringify(resp)}\n`);
42
+ }
43
+ })
44
+ .catch(() => {
45
+ /* 分派自身不该抛(callTool 内部已兜住);真抛了也不许把 server 带崩 */
46
+ })
47
+ .finally(() => core.untrackCall(ac));
48
+ }
15
49
  export function startStdioTransport(core) {
16
50
  // stdout 的 error **必须吞**:宿主先关读端、stdin 仍开着时,下一次应答写入就是异步
17
51
  // `write EPIPE` —— 未捕获会把 server 打成栈回溯 + exit 1(2026-09-27 ⑩),而它只是
@@ -63,28 +97,7 @@ export function startStdioTransport(core) {
63
97
  buf = buf.slice(nl + 1);
64
98
  if (line.trim() === '')
65
99
  continue;
66
- let msg;
67
- try {
68
- msg = JSON.parse(line);
69
- }
70
- catch {
71
- // 坏报文由**协议侧**定义形状:传输层不该知道 JSON-RPC 的错误码(见 McpCore.rpcError)
72
- process.stdout.write(`${JSON.stringify(core.rpcError(null, -32700, '行不是合法 JSON'))}\n`);
73
- continue;
74
- }
75
- const ac = new AbortController();
76
- const signal = core.trackCall(ac);
77
- void core
78
- .dispatch(msg, signal)
79
- .then((resp) => {
80
- if (resp !== null && !closed) {
81
- process.stdout.write(`${JSON.stringify(resp)}\n`);
82
- }
83
- })
84
- .catch(() => {
85
- /* 分派自身不该抛(callTool 内部已兜住);真抛了也不许把 server 带崩 */
86
- })
87
- .finally(() => core.untrackCall(ac));
100
+ dispatchLine(line, core, () => closed);
88
101
  }
89
102
  };
90
103
  process.stdin.setEncoding('utf8');
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server-stdio.js","sourceRoot":"","sources":["../../src/engine/mcp-server-stdio.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server-stdio.js","sourceRoot":"","sources":["../../src/engine/mcp-server-stdio.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export declare const AGENTIA_VERSION = "0.10.1";
1
+ export declare const AGENTIA_VERSION = "0.10.2";
2
2
  export type { Trace, Span, SpanEvent, SpanError, SpanId, SpanKind, SpanLink, SpanStatus, TraceId, TraceContext, TraceSink, TraceRecordEvent, CapabilityType, Usage, Score, } from './core/trace.js';
3
3
  export { attachScore, parseTraceparent } from './core/trace.js';
4
4
  export type { AgentTool, ApprovalDecision, JsonSchema, ModelClient, RecorderBackend, SchemaInput, SchemaType, ToolRunContext, TypedSchema, } from './core/tool.js';
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export const AGENTIA_VERSION = '0.10.1';
1
+ export const AGENTIA_VERSION = '0.10.2';
2
2
  export { attachScore, parseTraceparent } from './core/trace.js';
3
3
  export { validateJsonSchema } from './core/schema.js';
4
4
  export { combineSignals } from './core/abort.js';
@@ -1,4 +1,4 @@
1
- import { DEFAULT_CLIENT_INFO, DEFAULT_PROTOCOL_VERSION, MCP_DEFAULT_TIMEOUT_MS, brief, isJsonRpcResponse, unwrap, withDeadline, } from './mcp-protocol.js';
1
+ import { DEFAULT_CLIENT_INFO, DEFAULT_PROTOCOL_VERSION, MCP_DEFAULT_TIMEOUT_MS, assertToolResultNotError, canSelfHealSession, mcpHttpError, parseToolList, readMcpResult, readMcpText, withDeadline, } from './mcp-protocol.js';
2
2
  /**
3
3
  * **StreamableHTTP 连接器**:一个 endpoint,POST JSON-RPC(MCP 2025-03-26 起的
4
4
  * Streamable HTTP 传输)。
@@ -36,20 +36,6 @@ export function createStreamableHttpMcpConnector(url, opts = {}) {
36
36
  let reinit = null;
37
37
  let nextId = 1;
38
38
  const guard = (p, label) => withDeadline(p, timeoutMs, label);
39
- /** HTTP 层失败:带上数值 `status`,让 `classifyError` 能按状态分流 */
40
- const httpError = (status, method, body) => {
41
- const e = new Error(`MCP ${method} HTTP ${status}${body ? `:${body}` : ''}`);
42
- e.status = status;
43
- return e;
44
- };
45
- const readText = async (res) => {
46
- try {
47
- return await res.text();
48
- }
49
- catch {
50
- return '';
51
- }
52
- };
53
39
  const post = async (payload, o = {}) => {
54
40
  if (closed)
55
41
  throw new Error('MCP 连接器已 close —— 请重新创建一个');
@@ -73,55 +59,6 @@ export function createStreamableHttpMcpConnector(url, opts = {}) {
73
59
  sessionId = sid;
74
60
  return res;
75
61
  };
76
- /** 非 SSE 报文(单条 JSON-RPC)→ 取 result;SSE 里可能有别的通知帧,只取与 `id` 配对的 */
77
- const pickResult = (msg, id, method) => {
78
- // id 必须**等值**配对(与 SSE 分支同款):只验「是带 id 的响应」会把别的请求的
79
- // 结果当本次的返回(代理串包/通知帧),静默错值比报错难查得多。
80
- if (!isJsonRpcResponse(msg) || msg.id !== id) {
81
- throw new Error(`MCP ${method}:响应里没有 id 为 ${id} 的 JSON-RPC 报文`);
82
- }
83
- return unwrap(msg, method);
84
- };
85
- /**
86
- * 从响应取结果。SSE 分支一次性读完整个 body 再解析 —— StreamableHTTP 约定 server 发完
87
- * 响应即关流,读全比手写增量解析器稳(`text/event-stream` 里 `data:` 行按规范可跨多行拼接)。
88
- */
89
- const readResult = async (res, id, method) => {
90
- const ct = (res.headers.get('content-type') ?? '').toLowerCase();
91
- const text = await readText(res);
92
- if (ct.includes('text/event-stream')) {
93
- for (const frame of text.split(/\r?\n\r?\n/)) {
94
- const data = frame
95
- .split(/\r?\n/)
96
- .filter((l) => l.startsWith('data:'))
97
- .map((l) => l.slice(5).trim())
98
- .join('');
99
- if (data === '')
100
- continue;
101
- let msg;
102
- try {
103
- msg = JSON.parse(data);
104
- }
105
- catch {
106
- continue;
107
- }
108
- if (isJsonRpcResponse(msg) && msg.id === id)
109
- return unwrap(msg, method);
110
- }
111
- throw new Error(`MCP ${method}:SSE 响应里没有 id 为 ${id} 的报文`);
112
- }
113
- if (text.trim() === '') {
114
- throw new Error(`MCP ${method}:响应体为空(期望 id 为 ${id} 的 JSON-RPC 报文)`);
115
- }
116
- let msg;
117
- try {
118
- msg = JSON.parse(text);
119
- }
120
- catch {
121
- throw new Error(`MCP ${method}:响应不是合法 JSON:${brief(text)}`);
122
- }
123
- return pickResult(msg, id, method);
124
- };
125
62
  /**
126
63
  * 会话过期自愈的互斥:并发请求同时吃到 404 时**共享同一次重握手**。
127
64
  * 没有这层时,两个并发调用各自执行 `ready = null`(第二个会把第一个刚建的握手
@@ -154,20 +91,20 @@ export function createStreamableHttpMcpConnector(url, opts = {}) {
154
91
  const rpc = async (method, params, withVersion, allowReinit = true, abandoned) => {
155
92
  const id = nextId++;
156
93
  const res = await post({ jsonrpc: '2.0', id, method, params }, { withVersion, ...(abandoned !== undefined ? { signal: abandoned } : {}) });
157
- if (res.status === 404 && sessionId !== null && allowReinit) {
158
- await readText(res); // 排空,别把连接晾着
94
+ if (canSelfHealSession(res.status, sessionId !== null, allowReinit)) {
95
+ await readMcpText(res); // 排空,别把连接晾着
159
96
  opts.onSessionExpired?.();
160
97
  await reinitialize();
161
98
  // 自愈重试那次同样带上 abandoned —— 裁判放弃时两条在飞 fetch 都要被掐
162
99
  return rpc(method, params, withVersion, false, abandoned);
163
100
  }
164
101
  if (!res.ok)
165
- throw httpError(res.status, method, await readText(res));
102
+ throw mcpHttpError(res.status, method, await readMcpText(res));
166
103
  // 计时裁判权在调用方(initialize / notifications / tools/list 都在调用点自带
167
104
  // guard —— 它们是装配期路径、没有别的裁判);`tools/call` 不在此起计时器:
168
105
  // 它的裁判是引擎的 `toolTimeoutMs`(spec §10 2026-09-17 ① 超时单源化)——
169
106
  // 再包一层 guard 就是双计时器,同一事件两本账(stdio 侧就没有这层)。
170
- return readResult(res, id, method);
107
+ return readMcpResult(res, id, method);
171
108
  };
172
109
  const ensureReady = () => {
173
110
  if (ready)
@@ -181,33 +118,22 @@ export function createStreamableHttpMcpConnector(url, opts = {}) {
181
118
  }
182
119
  const res = await guard(post({ jsonrpc: '2.0', method: 'notifications/initialized', params: {} }, { withVersion: true }), 'notifications/initialized');
183
120
  if (!res.ok) {
184
- throw httpError(res.status, 'notifications/initialized', await readText(res));
121
+ throw mcpHttpError(res.status, 'notifications/initialized', await readMcpText(res));
185
122
  }
186
- await readText(res); // 排空:202 + 空体是合法应答,但别把连接晾着
123
+ await readMcpText(res); // 排空:202 + 空体是合法应答,但别把连接晾着
187
124
  })();
188
125
  return ready;
189
126
  };
190
127
  const listTools = async () => {
191
128
  await ensureReady();
192
129
  const r = await guard(rpc('tools/list', {}, true), 'tools/list');
193
- if (typeof r !== 'object' || r === null) {
194
- throw new Error(`MCP tools/list 返回了非对象:${brief(r)}`);
195
- }
196
- const listed = r.tools;
197
- if (listed === undefined)
198
- return [];
199
- if (!Array.isArray(listed)) {
200
- throw new Error(`MCP tools/list 的 tools 不是数组:${brief(listed)}`);
201
- }
202
- return listed;
130
+ return parseToolList(r);
203
131
  };
204
132
  const callTool = async (name, args, callOpts) => {
205
133
  await ensureReady();
206
134
  const r = await rpc('tools/call', { name, arguments: args }, true, true, callOpts?.abandoned);
207
- // 承重同 stdio:协议层 isError 只有连接器看得见
208
- if (typeof r === 'object' && r !== null && r.isError) {
209
- throw new Error(`MCP 工具 ${name} 返回 isError: ${brief(r.content)}`);
210
- }
135
+ // 承重同 stdio:协议层 isError 只有连接器看得见(判定与文案在 mcp-protocol.ts)
136
+ assertToolResultNotError(r, name);
211
137
  return r;
212
138
  };
213
139
  return {
@@ -228,7 +154,7 @@ export function createStreamableHttpMcpConnector(url, opts = {}) {
228
154
  // **抛错**,兜不住**挂死** —— server 接受连接后不回(半开 / 卡在代理后面),
229
155
  // `close()` 就永久挂住,而调用方(宿主停机路径)会一直等它。**挂住比失败更糟**,
230
156
  // 与「best-effort、不抛错」的承诺相悖。fetch 与排空**一起**进 guard:
231
- // 只护住响应头、body 照样能卡(`readText` 读的是 body)。
157
+ // 只护住响应头、body 照样能卡(`readMcpText` 读的是 body)。
232
158
  await guard((async () => {
233
159
  const res = await fetchImpl(url, {
234
160
  method: 'DELETE',
@@ -238,7 +164,7 @@ export function createStreamableHttpMcpConnector(url, opts = {}) {
238
164
  'mcp-protocol-version': negotiated,
239
165
  },
240
166
  });
241
- await readText(res);
167
+ await readMcpText(res);
242
168
  })(), 'close');
243
169
  }
244
170
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-http.js","sourceRoot":"","sources":["../../src/integrations/mcp-http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-http.js","sourceRoot":"","sources":["../../src/integrations/mcp-http.ts"],"names":[],"mappings":"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"}
@@ -113,3 +113,54 @@ export declare function unwrap(msg: {
113
113
  result?: unknown;
114
114
  error?: unknown;
115
115
  }, method: string): unknown;
116
+ /**
117
+ * 读响应体文本;读失败**返回空串而非抛**。
118
+ *
119
+ * 为什么吞:调用方用它的地方(排空、错误文案、SSE 解析)都不该因为「body 读不出来」二次失败
120
+ * —— 真正的原因由 `res.status` / 网络层给出,这里再抛只会把第一条错误盖掉。
121
+ */
122
+ export declare function readMcpText(res: Response): Promise<string>;
123
+ /** HTTP 层失败:带上数值 `status`,让 `classifyError` 能按状态分流 */
124
+ export declare function mcpHttpError(status: number, method: string, body: string): Error;
125
+ /**
126
+ * 非 SSE 报文(单条 JSON-RPC)→ 取 result。
127
+ *
128
+ * ⚠️ id 必须**等值**配对(与 SSE 分支同款):只验「是带 id 的响应」会把别的请求的结果
129
+ * 当本次的返回(代理串包 / 通知帧),**静默错值比报错难查得多**。
130
+ */
131
+ export declare function pickJsonRpcResult(msg: unknown, id: number, method: string): unknown;
132
+ /**
133
+ * 从 HTTP 响应取结果 —— 两种响应形态**都要接**(StreamableHTTP 的规范面)。
134
+ *
135
+ * SSE 分支一次性读完整个 body 再解析:StreamableHTTP 约定 server 发完响应即关流,
136
+ * 读全比手写增量解析器稳(`text/event-stream` 里 `data:` 行按规范可跨多行拼接)。
137
+ * SSE 里可能有别的通知帧或别的请求的应答,**只取与 `id` 配对的**那一条。
138
+ */
139
+ export declare function readMcpResult(res: Response, id: number, method: string): Promise<unknown>;
140
+ /**
141
+ * `tools/list` 的应答 → 工具表。**两条连接器共用一份**(此前逐字写了两遍)。
142
+ *
143
+ * 形状不对一律**响亮失败**:把协议不符吞成空菜单,用户看到的是「这个 server 一个工具都没有」
144
+ * 而不是「server 坏了」—— 前者会被当成正常结果排错到别处去。只有 `tools` **缺席**才当空表
145
+ * (那是合法的「没有工具」)。
146
+ */
147
+ export declare function parseToolList(r: unknown): McpToolInfo[];
148
+ /**
149
+ * `tools/call` 的结果里协议层 `isError: true` ⇒ **必须转成抛错**。
150
+ *
151
+ * 承重:这个位只有连接器看得见,吞了它模型会收到一条「成功」的结果、trace 也记成成功调用
152
+ * (见 `McpClientLike` 的约定)。两条连接器共用一份。
153
+ */
154
+ export declare function assertToolResultNotError(r: unknown, name: string): void;
155
+ /**
156
+ * **会话过期自愈**的判定(MCP Streamable HTTP 的规范语义)。
157
+ *
158
+ * 带会话 id 收到 `404` 的含义是「这个会话我不认识」⇒ **该请求没有被执行** ⇒ 丢会话、
159
+ * 重新握手、把这一次**重试一次**是安全的(不会重复执行副作用);规范也要求客户端此时
160
+ * **必须**新建会话。`allowReinit` 那一位保证**只重试一次**:第二次再 404 说明对面不是
161
+ * 「会话过期」而是别的问题,直接抛(不循环)。
162
+ *
163
+ * 抽成纯函数是为了让这三条判据**可以被单独钉住** —— 它此前内联在 `rpc` 的 `if` 里,
164
+ * 三个条件任意一个写反都没有用例看得见(症状是「重试带着旧会话再 404」或「无限重握」)。
165
+ */
166
+ export declare function canSelfHealSession(status: number, hasSessionId: boolean, allowReinit: boolean): boolean;