@mcpmesh/sdk 2.4.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/dist/__tests__/agent-single-instance.spec.d.ts +2 -0
  2. package/dist/__tests__/agent-single-instance.spec.d.ts.map +1 -0
  3. package/dist/__tests__/agent-single-instance.spec.js +80 -0
  4. package/dist/__tests__/agent-single-instance.spec.js.map +1 -0
  5. package/dist/__tests__/event-loop-resilience.spec.d.ts +2 -0
  6. package/dist/__tests__/event-loop-resilience.spec.d.ts.map +1 -0
  7. package/dist/__tests__/event-loop-resilience.spec.js +321 -0
  8. package/dist/__tests__/event-loop-resilience.spec.js.map +1 -0
  9. package/dist/__tests__/llm-max-iterations.test.js +10 -8
  10. package/dist/__tests__/llm-max-iterations.test.js.map +1 -1
  11. package/dist/__tests__/llm-provider-multistep.test.d.ts +20 -0
  12. package/dist/__tests__/llm-provider-multistep.test.d.ts.map +1 -0
  13. package/dist/__tests__/llm-provider-multistep.test.js +138 -0
  14. package/dist/__tests__/llm-provider-multistep.test.js.map +1 -0
  15. package/dist/__tests__/llm-provider-output-mode.test.js +1 -0
  16. package/dist/__tests__/llm-provider-output-mode.test.js.map +1 -1
  17. package/dist/__tests__/llm-provider-stopwhen.test.d.ts +22 -0
  18. package/dist/__tests__/llm-provider-stopwhen.test.d.ts.map +1 -0
  19. package/dist/__tests__/llm-provider-stopwhen.test.js +127 -0
  20. package/dist/__tests__/llm-provider-stopwhen.test.js.map +1 -0
  21. package/dist/__tests__/llm-provider-system-synthesis.test.js +1 -0
  22. package/dist/__tests__/llm-provider-system-synthesis.test.js.map +1 -1
  23. package/dist/__tests__/llm-provider-vertex-settings.test.d.ts +18 -0
  24. package/dist/__tests__/llm-provider-vertex-settings.test.d.ts.map +1 -0
  25. package/dist/__tests__/llm-provider-vertex-settings.test.js +128 -0
  26. package/dist/__tests__/llm-provider-vertex-settings.test.js.map +1 -0
  27. package/dist/__tests__/port-conflict-fallback.spec.d.ts +2 -0
  28. package/dist/__tests__/port-conflict-fallback.spec.d.ts.map +1 -0
  29. package/dist/__tests__/port-conflict-fallback.spec.js +123 -0
  30. package/dist/__tests__/port-conflict-fallback.spec.js.map +1 -0
  31. package/dist/__tests__/port-probe-errors.spec.d.ts +2 -0
  32. package/dist/__tests__/port-probe-errors.spec.d.ts.map +1 -0
  33. package/dist/__tests__/port-probe-errors.spec.js +100 -0
  34. package/dist/__tests__/port-probe-errors.spec.js.map +1 -0
  35. package/dist/__tests__/provider-handler-registry.test.d.ts +0 -1
  36. package/dist/__tests__/provider-handler-registry.test.d.ts.map +1 -1
  37. package/dist/__tests__/provider-handler-registry.test.js +23 -1
  38. package/dist/__tests__/provider-handler-registry.test.js.map +1 -1
  39. package/dist/__tests__/proxy-sse-no-data.test.d.ts +13 -0
  40. package/dist/__tests__/proxy-sse-no-data.test.d.ts.map +1 -0
  41. package/dist/__tests__/proxy-sse-no-data.test.js +147 -0
  42. package/dist/__tests__/proxy-sse-no-data.test.js.map +1 -0
  43. package/dist/__tests__/proxy-stream.test.js +26 -0
  44. package/dist/__tests__/proxy-stream.test.js.map +1 -1
  45. package/dist/__tests__/proxy-timer-leak.test.d.ts +16 -0
  46. package/dist/__tests__/proxy-timer-leak.test.d.ts.map +1 -0
  47. package/dist/__tests__/proxy-timer-leak.test.js +97 -0
  48. package/dist/__tests__/proxy-timer-leak.test.js.map +1 -0
  49. package/dist/__tests__/proxy-tool-error.test.d.ts +13 -0
  50. package/dist/__tests__/proxy-tool-error.test.d.ts.map +1 -0
  51. package/dist/__tests__/proxy-tool-error.test.js +313 -0
  52. package/dist/__tests__/proxy-tool-error.test.js.map +1 -0
  53. package/dist/__tests__/route.test.js +21 -1
  54. package/dist/__tests__/route.test.js.map +1 -1
  55. package/dist/__tests__/settle-window.spec.d.ts +2 -0
  56. package/dist/__tests__/settle-window.spec.d.ts.map +1 -0
  57. package/dist/__tests__/settle-window.spec.js +324 -0
  58. package/dist/__tests__/settle-window.spec.js.map +1 -0
  59. package/dist/__tests__/sse.test.js +12 -0
  60. package/dist/__tests__/sse.test.js.map +1 -1
  61. package/dist/__tests__/stop-dispatchers.spec.d.ts +2 -0
  62. package/dist/__tests__/stop-dispatchers.spec.d.ts.map +1 -0
  63. package/dist/__tests__/stop-dispatchers.spec.js +227 -0
  64. package/dist/__tests__/stop-dispatchers.spec.js.map +1 -0
  65. package/dist/agent.d.ts +65 -5
  66. package/dist/agent.d.ts.map +1 -1
  67. package/dist/agent.js +313 -78
  68. package/dist/agent.js.map +1 -1
  69. package/dist/api-runtime.d.ts +33 -3
  70. package/dist/api-runtime.d.ts.map +1 -1
  71. package/dist/api-runtime.js +125 -32
  72. package/dist/api-runtime.js.map +1 -1
  73. package/dist/claim-dispatcher.d.ts +25 -0
  74. package/dist/claim-dispatcher.d.ts.map +1 -1
  75. package/dist/claim-dispatcher.js +59 -1
  76. package/dist/claim-dispatcher.js.map +1 -1
  77. package/dist/config.d.ts +73 -1
  78. package/dist/config.d.ts.map +1 -1
  79. package/dist/config.js +108 -2
  80. package/dist/config.js.map +1 -1
  81. package/dist/debug.d.ts +1 -1
  82. package/dist/debug.d.ts.map +1 -1
  83. package/dist/express.d.ts +33 -0
  84. package/dist/express.d.ts.map +1 -1
  85. package/dist/express.js +149 -31
  86. package/dist/express.js.map +1 -1
  87. package/dist/index.d.ts +1 -1
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/index.js +1 -1
  90. package/dist/index.js.map +1 -1
  91. package/dist/llm-provider.d.ts +18 -0
  92. package/dist/llm-provider.d.ts.map +1 -1
  93. package/dist/llm-provider.js +86 -34
  94. package/dist/llm-provider.js.map +1 -1
  95. package/dist/provider-handlers/gemini-handler.js +6 -0
  96. package/dist/provider-handlers/gemini-handler.js.map +1 -1
  97. package/dist/provider-handlers/provider-handler-registry.d.ts +10 -1
  98. package/dist/provider-handlers/provider-handler-registry.d.ts.map +1 -1
  99. package/dist/provider-handlers/provider-handler-registry.js +4 -1
  100. package/dist/provider-handlers/provider-handler-registry.js.map +1 -1
  101. package/dist/proxy.d.ts.map +1 -1
  102. package/dist/proxy.js +178 -40
  103. package/dist/proxy.js.map +1 -1
  104. package/dist/route.d.ts.map +1 -1
  105. package/dist/route.js +38 -0
  106. package/dist/route.js.map +1 -1
  107. package/dist/settle.d.ts +129 -0
  108. package/dist/settle.d.ts.map +1 -0
  109. package/dist/settle.js +284 -0
  110. package/dist/settle.js.map +1 -0
  111. package/dist/sse.d.ts.map +1 -1
  112. package/dist/sse.js +5 -2
  113. package/dist/sse.js.map +1 -1
  114. package/dist/tracing.d.ts +1 -0
  115. package/dist/tracing.d.ts.map +1 -1
  116. package/dist/tracing.js +3 -0
  117. package/dist/tracing.js.map +1 -1
  118. package/package.json +2 -2
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Regression tests for #1163 LOW-5 — callMcpTool's abort timer.
3
+ *
4
+ * Previously `clearTimeout(timeoutId)` ran only after `fetch` RESOLVED:
5
+ * (a) on fetch rejection the timer stayed armed until effectiveTimeout
6
+ * elapsed — one leaked timer per retry attempt;
7
+ * (b) because the timer cleared as soon as headers arrived, the body
8
+ * read (response.text() / SSE) was unbounded by the call timeout.
9
+ *
10
+ * The fix clears the timer in a per-attempt `finally`, keeping the
11
+ * controller armed until the body is fully consumed — so an
12
+ * over-deadline body read aborts and surfaces through the existing
13
+ * isTimeoutError path ("MCP call timed out after Xms").
14
+ */
15
+ export {};
16
+ //# sourceMappingURL=proxy-timer-leak.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy-timer-leak.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/proxy-timer-leak.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Regression tests for #1163 LOW-5 — callMcpTool's abort timer.
3
+ *
4
+ * Previously `clearTimeout(timeoutId)` ran only after `fetch` RESOLVED:
5
+ * (a) on fetch rejection the timer stayed armed until effectiveTimeout
6
+ * elapsed — one leaked timer per retry attempt;
7
+ * (b) because the timer cleared as soon as headers arrived, the body
8
+ * read (response.text() / SSE) was unbounded by the call timeout.
9
+ *
10
+ * The fix clears the timer in a per-attempt `finally`, keeping the
11
+ * controller armed until the body is fully consumed — so an
12
+ * over-deadline body read aborts and surfaces through the existing
13
+ * isTimeoutError path ("MCP call timed out after Xms").
14
+ */
15
+ import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
16
+ import { callMcpTool, DEFAULT_CALL_OPTIONS } from "../proxy.js";
17
+ vi.mock("@mcpmesh/core", () => ({
18
+ generateTraceId: () => "trace-mock",
19
+ generateSpanId: () => "span-mock",
20
+ injectTraceContext: (argsJson) => argsJson,
21
+ publishSpan: vi.fn(async () => false),
22
+ parseSseResponse: (s) => s,
23
+ parseSseResponseToObject: (s) => JSON.parse(s),
24
+ awaitJobCancel: vi.fn(() => new Promise(() => { })),
25
+ matchesPropagateHeader: () => false,
26
+ }));
27
+ vi.mock("../http-pool.js", () => ({
28
+ getDispatcher: () => undefined,
29
+ }));
30
+ const ENDPOINT = "http://producer.local:9000";
31
+ const TOOL = "echo";
32
+ const CAPABILITY = "echoer";
33
+ function abortError() {
34
+ const err = new Error("This operation was aborted");
35
+ err.name = "AbortError";
36
+ return err;
37
+ }
38
+ describe("callMcpTool abort-timer lifecycle (#1163 LOW-5)", () => {
39
+ let originalFetch;
40
+ beforeEach(() => {
41
+ originalFetch = globalThis.fetch;
42
+ });
43
+ afterEach(() => {
44
+ globalThis.fetch = originalFetch;
45
+ vi.useRealTimers();
46
+ vi.restoreAllMocks();
47
+ });
48
+ it("clears the abort timer when fetch rejects (no leaked timer per attempt)", async () => {
49
+ vi.useFakeTimers();
50
+ const fetchMock = vi.fn(async () => {
51
+ throw new TypeError("fetch failed: connection refused");
52
+ });
53
+ globalThis.fetch = fetchMock;
54
+ const options = {
55
+ ...DEFAULT_CALL_OPTIONS,
56
+ timeout: 30_000,
57
+ maxAttempts: 1,
58
+ };
59
+ await expect(callMcpTool(ENDPOINT, TOOL, { foo: 1 }, options, CAPABILITY)).rejects.toThrow(/connection refused/);
60
+ // Before the fix the 30s abort timer stayed armed after the
61
+ // rejection; with the per-attempt finally it is cleared.
62
+ expect(vi.getTimerCount()).toBe(0);
63
+ });
64
+ it("aborts an over-deadline body read and surfaces it as the timeout path", async () => {
65
+ const fetchMock = vi.fn(async (_url, init) => {
66
+ const signal = init.signal;
67
+ return {
68
+ ok: true,
69
+ status: 200,
70
+ statusText: "OK",
71
+ headers: {
72
+ get: (name) => name.toLowerCase() === "content-type" ? "application/json" : null,
73
+ },
74
+ // Body read never resolves on its own — only rejects when the
75
+ // call-timeout abort fires (mirrors a stalled producer socket).
76
+ text: () => new Promise((_resolve, reject) => {
77
+ if (signal?.aborted) {
78
+ reject(abortError());
79
+ return;
80
+ }
81
+ signal?.addEventListener("abort", () => reject(abortError()));
82
+ }),
83
+ };
84
+ });
85
+ globalThis.fetch = fetchMock;
86
+ const options = {
87
+ ...DEFAULT_CALL_OPTIONS,
88
+ timeout: 50,
89
+ maxAttempts: 1,
90
+ };
91
+ // Must reject with the timeout message (isTimeoutError path), not
92
+ // hang forever waiting on the body.
93
+ await expect(callMcpTool(ENDPOINT, TOOL, { foo: 1 }, options, CAPABILITY)).rejects.toThrow(/MCP call timed out after 50ms/);
94
+ expect(fetchMock).toHaveBeenCalledTimes(1); // timeout is non-retryable
95
+ });
96
+ });
97
+ //# sourceMappingURL=proxy-timer-leak.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy-timer-leak.test.js","sourceRoot":"","sources":["../../src/__tests__/proxy-timer-leak.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Unit tests for transport-symmetric tool-error surfacing in callMcpTool (#1161).
3
+ *
4
+ * FastMCP streamable-HTTP commonly answers ``tools/call`` with
5
+ * ``text/event-stream``, so SSE is the hot path for TS→TS agent calls. A
6
+ * producer tool that throws returns a CallToolResult with ``isError: true``;
7
+ * BOTH the JSON and SSE response paths must throw the same
8
+ * ``MCP tool error: …`` shape instead of returning the error text as a
9
+ * successful result (which would poison LLM tool-execution loops and record
10
+ * success spans).
11
+ */
12
+ export {};
13
+ //# sourceMappingURL=proxy-tool-error.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy-tool-error.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/proxy-tool-error.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
@@ -0,0 +1,313 @@
1
+ /**
2
+ * Unit tests for transport-symmetric tool-error surfacing in callMcpTool (#1161).
3
+ *
4
+ * FastMCP streamable-HTTP commonly answers ``tools/call`` with
5
+ * ``text/event-stream``, so SSE is the hot path for TS→TS agent calls. A
6
+ * producer tool that throws returns a CallToolResult with ``isError: true``;
7
+ * BOTH the JSON and SSE response paths must throw the same
8
+ * ``MCP tool error: …`` shape instead of returning the error text as a
9
+ * successful result (which would poison LLM tool-execution loops and record
10
+ * success spans).
11
+ */
12
+ import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
13
+ import { callMcpTool, DEFAULT_CALL_OPTIONS, runWithTraceContext } from "../proxy.js";
14
+ import { publishTraceSpan } from "../tracing.js";
15
+ vi.mock("@mcpmesh/core", () => ({
16
+ generateTraceId: () => "trace-mock",
17
+ generateSpanId: () => "span-mock",
18
+ injectTraceContext: (argsJson) => argsJson,
19
+ publishSpan: vi.fn(async () => false),
20
+ parseSseResponse: (s) => s,
21
+ parseSseResponseToObject: (s) => JSON.parse(s),
22
+ awaitJobCancel: vi.fn(() => new Promise(() => { })),
23
+ matchesPropagateHeader: () => false,
24
+ }));
25
+ // Spy on publishTraceSpan so span-accounting tests can count emitted spans.
26
+ // The real implementation gates on initTracing() module state, which unit
27
+ // tests can't reach; everything else in tracing.js stays real.
28
+ vi.mock("../tracing.js", async (importOriginal) => {
29
+ const actual = await importOriginal();
30
+ return {
31
+ ...actual,
32
+ publishTraceSpan: vi.fn(async () => true),
33
+ };
34
+ });
35
+ vi.mock("../http-pool.js", () => ({
36
+ getDispatcher: () => undefined,
37
+ }));
38
+ const ENDPOINT = "http://producer.local:9000";
39
+ const TOOL = "explode";
40
+ const CAPABILITY = "exploder";
41
+ function jsonResponse(envelope) {
42
+ const body = JSON.stringify({ jsonrpc: "2.0", id: "x", ...envelope });
43
+ return {
44
+ ok: true,
45
+ status: 200,
46
+ statusText: "OK",
47
+ text: async () => body,
48
+ headers: {
49
+ get: (name) => name.toLowerCase() === "content-type" ? "application/json" : null,
50
+ },
51
+ };
52
+ }
53
+ /** Build a Response whose body is a ReadableStream emitting SSE event blocks. */
54
+ function sseResponse(envelopes) {
55
+ const encoder = new TextEncoder();
56
+ const blocks = envelopes.map((e) => `event: message\ndata: ${JSON.stringify({ jsonrpc: "2.0", id: "x", ...e })}\n\n`);
57
+ let i = 0;
58
+ const stream = new ReadableStream({
59
+ pull(controller) {
60
+ if (i < blocks.length) {
61
+ controller.enqueue(encoder.encode(blocks[i]));
62
+ i += 1;
63
+ }
64
+ else {
65
+ controller.close();
66
+ }
67
+ },
68
+ });
69
+ return {
70
+ ok: true,
71
+ status: 200,
72
+ statusText: "OK",
73
+ body: stream,
74
+ headers: {
75
+ get: (name) => name.toLowerCase() === "content-type" ? "text/event-stream" : null,
76
+ },
77
+ };
78
+ }
79
+ /**
80
+ * Build a Response whose SSE body errors mid-read with the given error —
81
+ * models a job-cancel or timeout firing `controller.abort()` while the
82
+ * body is being consumed.
83
+ */
84
+ function sseAbortingResponse(err) {
85
+ const encoder = new TextEncoder();
86
+ let pulled = false;
87
+ const stream = new ReadableStream({
88
+ pull(controller) {
89
+ if (!pulled) {
90
+ pulled = true;
91
+ controller.enqueue(encoder.encode("event: message\n"));
92
+ }
93
+ else {
94
+ controller.error(err);
95
+ }
96
+ },
97
+ });
98
+ return {
99
+ ok: true,
100
+ status: 200,
101
+ statusText: "OK",
102
+ body: stream,
103
+ headers: {
104
+ get: (name) => name.toLowerCase() === "content-type" ? "text/event-stream" : null,
105
+ },
106
+ };
107
+ }
108
+ function mockFetch(makeResponse) {
109
+ // Fresh Response per call so retries don't reuse a consumed SSE body.
110
+ const fetchMock = vi.fn(async () => makeResponse());
111
+ globalThis.fetch = fetchMock;
112
+ }
113
+ const TOOL_ERROR_RESULT = {
114
+ isError: true,
115
+ content: [{ type: "text", text: "boom: division by zero" }],
116
+ };
117
+ describe("callMcpTool tool-level error surfacing (isError)", () => {
118
+ let originalFetch;
119
+ beforeEach(() => {
120
+ originalFetch = globalThis.fetch;
121
+ });
122
+ afterEach(() => {
123
+ globalThis.fetch = originalFetch;
124
+ vi.restoreAllMocks();
125
+ });
126
+ it("rejects on SSE response with isError: true (same shape as JSON path)", async () => {
127
+ mockFetch(() => sseResponse([{ result: TOOL_ERROR_RESULT }]));
128
+ await expect(callMcpTool(ENDPOINT, TOOL, { a: 1 }, DEFAULT_CALL_OPTIONS, CAPABILITY)).rejects.toThrow("MCP tool error: boom: division by zero");
129
+ });
130
+ it("rejects on JSON response with isError: true (regression guard)", async () => {
131
+ mockFetch(() => jsonResponse({ result: TOOL_ERROR_RESULT }));
132
+ await expect(callMcpTool(ENDPOINT, TOOL, { a: 1 }, DEFAULT_CALL_OPTIONS, CAPABILITY)).rejects.toThrow("MCP tool error: boom: division by zero");
133
+ });
134
+ it("rejects on SSE response carrying a JSON-RPC protocol error", async () => {
135
+ mockFetch(() => sseResponse([{ error: { code: -32603, message: "internal failure" } }]));
136
+ await expect(callMcpTool(ENDPOINT, TOOL, { a: 1 }, DEFAULT_CALL_OPTIONS, CAPABILITY)).rejects.toThrow("MCP error: internal failure");
137
+ });
138
+ it("resolves a legitimately falsy SSE result identically to the JSON path", async () => {
139
+ // JSON-RPC permits any `result` value, including falsy ones; a truthiness
140
+ // check would silently drop them. Verify SSE and JSON agree.
141
+ mockFetch(() => sseResponse([{ result: 0 }]));
142
+ const sseValue = await callMcpTool(ENDPOINT, TOOL, { a: 1 }, DEFAULT_CALL_OPTIONS, CAPABILITY);
143
+ mockFetch(() => jsonResponse({ result: 0 }));
144
+ const jsonValue = await callMcpTool(ENDPOINT, TOOL, { a: 1 }, DEFAULT_CALL_OPTIONS, CAPABILITY);
145
+ expect(sseValue).toBe(jsonValue);
146
+ expect(sseValue).toBe("0");
147
+ });
148
+ it("resolves an empty-content SSE result as empty string", async () => {
149
+ mockFetch(() => sseResponse([{ result: { content: [] } }]));
150
+ const value = await callMcpTool(ENDPOINT, TOOL, { a: 1 }, DEFAULT_CALL_OPTIONS, CAPABILITY);
151
+ expect(value).toBe("");
152
+ });
153
+ it("still resolves successful SSE results (sanity)", async () => {
154
+ mockFetch(() => sseResponse([{ result: { content: [{ type: "text", text: "fine" }] } }]));
155
+ const value = await callMcpTool(ENDPOINT, TOOL, { a: 1 }, DEFAULT_CALL_OPTIONS, CAPABILITY);
156
+ expect(value).toBe("fine");
157
+ });
158
+ });
159
+ describe("callMcpTool abort mid-SSE-read span accounting", () => {
160
+ let originalFetch;
161
+ beforeEach(() => {
162
+ originalFetch = globalThis.fetch;
163
+ vi.mocked(publishTraceSpan).mockClear();
164
+ });
165
+ afterEach(() => {
166
+ globalThis.fetch = originalFetch;
167
+ vi.restoreAllMocks();
168
+ });
169
+ it("publishes exactly one error span (the outer timeout one) when the body read aborts", async () => {
170
+ // An abort (timeout or job-cancel) surfaces from reader.read() as an
171
+ // AbortError. The SSE catch must NOT publish a span for it — the outer
172
+ // catch owns abort accounting; both publishing would emit two spans
173
+ // with the same spanId, the second mislabeled "timeout".
174
+ const abortErr = new DOMException("This operation was aborted", "AbortError");
175
+ mockFetch(() => sseAbortingResponse(abortErr));
176
+ await expect(runWithTraceContext({ traceId: "trace-abort", parentSpanId: null }, () => callMcpTool(ENDPOINT, TOOL, { a: 1 }, DEFAULT_CALL_OPTIONS, CAPABILITY))).rejects.toThrow(`MCP call timed out after ${DEFAULT_CALL_OPTIONS.timeout}ms`);
177
+ expect(publishTraceSpan).toHaveBeenCalledTimes(1);
178
+ expect(vi.mocked(publishTraceSpan).mock.calls[0][0]).toMatchObject({
179
+ success: false,
180
+ error: "timeout",
181
+ });
182
+ });
183
+ it("still publishes exactly one error span for genuine SSE tool errors", async () => {
184
+ // Counterpart guard: the abort fix must not stop non-abort SSE-reader
185
+ // errors from being accounted. Since #1202, the post-loop aggregate is
186
+ // the single publisher: one span, carrying the precise tool-error
187
+ // message, nothing mislabeled "timeout".
188
+ mockFetch(() => sseResponse([{ result: TOOL_ERROR_RESULT }]));
189
+ await expect(runWithTraceContext({ traceId: "trace-toolerr", parentSpanId: null }, () => callMcpTool(ENDPOINT, TOOL, { a: 1 }, DEFAULT_CALL_OPTIONS, CAPABILITY))).rejects.toThrow("MCP tool error: boom: division by zero");
190
+ const calls = vi.mocked(publishTraceSpan).mock.calls;
191
+ expect(calls.length).toBe(1);
192
+ expect(calls[0][0]).toMatchObject({
193
+ success: false,
194
+ error: "MCP tool error: boom: division by zero",
195
+ });
196
+ expect(calls.some((c) => c[0].error === "timeout")).toBe(false);
197
+ });
198
+ });
199
+ describe("callMcpTool per-call span accounting (#1202)", () => {
200
+ let originalFetch;
201
+ beforeEach(() => {
202
+ originalFetch = globalThis.fetch;
203
+ vi.mocked(publishTraceSpan).mockClear();
204
+ });
205
+ afterEach(() => {
206
+ globalThis.fetch = originalFetch;
207
+ vi.restoreAllMocks();
208
+ });
209
+ it("single failed call (maxAttempts=1) publishes exactly ONE error span", async () => {
210
+ // Regression: the JSON-RPC error branch used to publish a per-attempt
211
+ // error span AND the post-loop aggregate published a second one — two
212
+ // span records sharing one spanId for a single failed call.
213
+ mockFetch(() => jsonResponse({ error: { code: -32603, message: "internal failure" } }));
214
+ await expect(runWithTraceContext({ traceId: "trace-1202-a", parentSpanId: null }, () => callMcpTool(ENDPOINT, TOOL, { a: 1 }, DEFAULT_CALL_OPTIONS, CAPABILITY))).rejects.toThrow("MCP error: internal failure");
215
+ expect(publishTraceSpan).toHaveBeenCalledTimes(1);
216
+ const span = vi.mocked(publishTraceSpan).mock.calls[0][0];
217
+ expect(span).toMatchObject({
218
+ spanId: "span-mock",
219
+ success: false,
220
+ error: "MCP error: internal failure",
221
+ });
222
+ // Single-attempt spans don't carry attempts info
223
+ expect(span.callAttempts).toBeUndefined();
224
+ // The response body size (formerly only on the per-attempt span) is
225
+ // folded into the aggregate.
226
+ expect(span.responseBytes).toBeGreaterThan(0);
227
+ });
228
+ it("exhausted retries (maxAttempts=3) publish exactly ONE error span carrying attempts info", async () => {
229
+ const fetchMock = vi.fn(async () => jsonResponse({ result: TOOL_ERROR_RESULT }));
230
+ globalThis.fetch = fetchMock;
231
+ await expect(runWithTraceContext({ traceId: "trace-1202-b", parentSpanId: null }, () => callMcpTool(ENDPOINT, TOOL, { a: 1 }, { ...DEFAULT_CALL_OPTIONS, maxAttempts: 3, retryDelay: 1 }, CAPABILITY))).rejects.toThrow("MCP tool error: boom: division by zero");
232
+ expect(fetchMock).toHaveBeenCalledTimes(3);
233
+ expect(publishTraceSpan).toHaveBeenCalledTimes(1);
234
+ expect(vi.mocked(publishTraceSpan).mock.calls[0][0]).toMatchObject({
235
+ success: false,
236
+ error: "MCP tool error: boom: division by zero",
237
+ callAttempts: 3,
238
+ });
239
+ });
240
+ it("success after retry publishes exactly ONE success span (attempts noted, no error spans)", async () => {
241
+ let call = 0;
242
+ const fetchMock = vi.fn(async () => {
243
+ call += 1;
244
+ return call === 1
245
+ ? jsonResponse({ error: { code: -32603, message: "transient failure" } })
246
+ : jsonResponse({ result: { content: [{ type: "text", text: "fine" }] } });
247
+ });
248
+ globalThis.fetch = fetchMock;
249
+ const value = await runWithTraceContext({ traceId: "trace-1202-c", parentSpanId: null }, () => callMcpTool(ENDPOINT, TOOL, { a: 1 }, { ...DEFAULT_CALL_OPTIONS, maxAttempts: 2, retryDelay: 1 }, CAPABILITY));
250
+ expect(value).toBe("fine");
251
+ expect(fetchMock).toHaveBeenCalledTimes(2);
252
+ expect(publishTraceSpan).toHaveBeenCalledTimes(1);
253
+ expect(vi.mocked(publishTraceSpan).mock.calls[0][0]).toMatchObject({
254
+ success: true,
255
+ error: null,
256
+ callAttempts: 2,
257
+ });
258
+ });
259
+ it("first-attempt success publishes one success span without attempts info", async () => {
260
+ mockFetch(() => jsonResponse({ result: { content: [{ type: "text", text: "fine" }] } }));
261
+ const value = await runWithTraceContext({ traceId: "trace-1202-d", parentSpanId: null }, () => callMcpTool(ENDPOINT, TOOL, { a: 1 }, DEFAULT_CALL_OPTIONS, CAPABILITY));
262
+ expect(value).toBe("fine");
263
+ expect(publishTraceSpan).toHaveBeenCalledTimes(1);
264
+ const span = vi.mocked(publishTraceSpan).mock.calls[0][0];
265
+ expect(span).toMatchObject({ success: true, error: null });
266
+ expect(span.callAttempts).toBeUndefined();
267
+ });
268
+ it("timeout on attempt 2 (after a retried generic failure) publishes ONE timeout span with callAttempts: 2", async () => {
269
+ // The abort/timeout path is non-retryable and publishes immediately from
270
+ // the catch — but when it strikes on a later attempt, its span must still
271
+ // carry the total attempts the call burned, not look like a first-try
272
+ // timeout.
273
+ let call = 0;
274
+ const fetchMock = vi.fn(async () => {
275
+ call += 1;
276
+ if (call === 1) {
277
+ return jsonResponse({ error: { code: -32603, message: "transient failure" } });
278
+ }
279
+ throw new DOMException("This operation was aborted", "AbortError");
280
+ });
281
+ globalThis.fetch = fetchMock;
282
+ await expect(runWithTraceContext({ traceId: "trace-1202-e", parentSpanId: null }, () => callMcpTool(ENDPOINT, TOOL, { a: 1 }, { ...DEFAULT_CALL_OPTIONS, maxAttempts: 3, retryDelay: 1 }, CAPABILITY))).rejects.toThrow(`MCP call timed out after ${DEFAULT_CALL_OPTIONS.timeout}ms`);
283
+ expect(fetchMock).toHaveBeenCalledTimes(2);
284
+ expect(publishTraceSpan).toHaveBeenCalledTimes(1);
285
+ expect(vi.mocked(publishTraceSpan).mock.calls[0][0]).toMatchObject({
286
+ success: false,
287
+ error: "timeout",
288
+ callAttempts: 2,
289
+ });
290
+ });
291
+ it("SSE success after retry publishes exactly ONE success span with callAttempts: 2", async () => {
292
+ // The SSE success branch has its own publish site; it must carry the
293
+ // same attempts accounting as the JSON branch.
294
+ let call = 0;
295
+ const fetchMock = vi.fn(async () => {
296
+ call += 1;
297
+ return call === 1
298
+ ? jsonResponse({ error: { code: -32603, message: "transient failure" } })
299
+ : sseResponse([{ result: { content: [{ type: "text", text: "fine" }] } }]);
300
+ });
301
+ globalThis.fetch = fetchMock;
302
+ const value = await runWithTraceContext({ traceId: "trace-1202-f", parentSpanId: null }, () => callMcpTool(ENDPOINT, TOOL, { a: 1 }, { ...DEFAULT_CALL_OPTIONS, maxAttempts: 2, retryDelay: 1 }, CAPABILITY));
303
+ expect(value).toBe("fine");
304
+ expect(fetchMock).toHaveBeenCalledTimes(2);
305
+ expect(publishTraceSpan).toHaveBeenCalledTimes(1);
306
+ expect(vi.mocked(publishTraceSpan).mock.calls[0][0]).toMatchObject({
307
+ success: true,
308
+ error: null,
309
+ callAttempts: 2,
310
+ });
311
+ });
312
+ });
313
+ //# sourceMappingURL=proxy-tool-error.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy-tool-error.test.js","sourceRoot":"","sources":["../../src/__tests__/proxy-tool-error.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9B,eAAe,EAAE,GAAG,EAAE,CAAC,YAAY;IACnC,cAAc,EAAE,GAAG,EAAE,CAAC,WAAW;IACjC,kBAAkB,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,QAAQ;IAClD,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC;IACrC,gBAAgB,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC;IAClC,wBAAwB,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACtD,cAAc,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,OAAO,CAAO,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACxD,sBAAsB,EAAE,GAAG,EAAE,CAAC,KAAK;CACpC,CAAC,CAAC,CAAC;AAEJ,4EAA4E;AAC5E,0EAA0E;AAC1E,+DAA+D;AAC/D,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;IAChD,MAAM,MAAM,GAAG,MAAM,cAAc,EAAkC,CAAC;IACtE,OAAO;QACL,GAAG,MAAM;QACT,gBAAgB,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC;KAC1C,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC;IAChC,aAAa,EAAE,GAAG,EAAE,CAAC,SAAS;CAC/B,CAAC,CAAC,CAAC;AAEJ,MAAM,QAAQ,GAAG,4BAA4B,CAAC;AAC9C,MAAM,IAAI,GAAG,SAAS,CAAC;AACvB,MAAM,UAAU,GAAG,UAAU,CAAC;AAE9B,SAAS,YAAY,CAAC,QAAgB;IACpC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;IACtE,OAAO;QACL,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,IAAI;QAChB,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;QACtB,OAAO,EAAE;YACP,GAAG,EAAE,CAAC,IAAY,EAAE,EAAE,CACpB,IAAI,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI;SACpE;KACqB,CAAC;AAC3B,CAAC;AAED,iFAAiF;AACjF,SAAS,WAAW,CAAC,SAAmB;IACtC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAC1B,CAAC,CAAC,EAAE,EAAE,CAAC,yBAAyB,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,MAAM,CACxF,CAAC;IACF,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,MAAM,GAAG,IAAI,cAAc,CAAa;QAC5C,IAAI,CAAC,UAAU;YACb,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;gBACtB,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9C,CAAC,IAAI,CAAC,CAAC;YACT,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IACH,OAAO;QACL,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,IAAI;QAChB,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE;YACP,GAAG,EAAE,CAAC,IAAY,EAAE,EAAE,CACpB,IAAI,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI;SACrE;KACqB,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,GAAY;IACvC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,MAAM,MAAM,GAAG,IAAI,cAAc,CAAa;QAC5C,IAAI,CAAC,UAAU;YACb,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,GAAG,IAAI,CAAC;gBACd,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IACH,OAAO;QACL,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,IAAI;QAChB,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE;YACP,GAAG,EAAE,CAAC,IAAY,EAAE,EAAE,CACpB,IAAI,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI;SACrE;KACqB,CAAC;AAC3B,CAAC;AAED,SAAS,SAAS,CAAC,YAA4B;IAC7C,sEAAsE;IACtE,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;IACpD,UAAU,CAAC,KAAK,GAAG,SAAoC,CAAC;AAC1D,CAAC;AAED,MAAM,iBAAiB,GAAG;IACxB,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC;CAC5D,CAAC;AAEF,QAAQ,CAAC,kDAAkD,EAAE,GAAG,EAAE;IAChE,IAAI,aAA2B,CAAC;IAEhC,UAAU,CAAC,GAAG,EAAE;QACd,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,UAAU,CAAC,KAAK,GAAG,aAAa,CAAC;QACjC,EAAE,CAAC,eAAe,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;QACpF,SAAS,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC;QAE9D,MAAM,MAAM,CACV,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,oBAAoB,EAAE,UAAU,CAAC,CACxE,CAAC,OAAO,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC9E,SAAS,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC;QAE7D,MAAM,MAAM,CACV,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,oBAAoB,EAAE,UAAU,CAAC,CACxE,CAAC,OAAO,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,SAAS,CAAC,GAAG,EAAE,CACb,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC,CACxE,CAAC;QAEF,MAAM,MAAM,CACV,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,oBAAoB,EAAE,UAAU,CAAC,CACxE,CAAC,OAAO,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,0EAA0E;QAC1E,6DAA6D;QAC7D,SAAS,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,MAAM,WAAW,CAChC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,oBAAoB,EAAE,UAAU,CAC3D,CAAC;QAEF,SAAS,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,MAAM,WAAW,CACjC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,oBAAoB,EAAE,UAAU,CAC3D,CAAC;QAEF,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,SAAS,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAE5D,MAAM,KAAK,GAAG,MAAM,WAAW,CAC7B,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,oBAAoB,EAAE,UAAU,CAC3D,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,SAAS,CAAC,GAAG,EAAE,CACb,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CACzE,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,WAAW,CAC7B,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,oBAAoB,EAAE,UAAU,CAC3D,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,gDAAgD,EAAE,GAAG,EAAE;IAC9D,IAAI,aAA2B,CAAC;IAEhC,UAAU,CAAC,GAAG,EAAE;QACd,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC;QACjC,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,SAAS,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,UAAU,CAAC,KAAK,GAAG,aAAa,CAAC;QACjC,EAAE,CAAC,eAAe,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oFAAoF,EAAE,KAAK,IAAI,EAAE;QAClG,qEAAqE;QACrE,uEAAuE;QACvE,oEAAoE;QACpE,yDAAyD;QACzD,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,4BAA4B,EAAE,YAAY,CAAC,CAAC;QAC9E,SAAS,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE/C,MAAM,MAAM,CACV,mBAAmB,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CACvE,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,oBAAoB,EAAE,UAAU,CAAC,CACxE,CACF,CAAC,OAAO,CAAC,OAAO,CAAC,4BAA4B,oBAAoB,CAAC,OAAO,IAAI,CAAC,CAAC;QAEhF,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YACjE,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;QAClF,sEAAsE;QACtE,uEAAuE;QACvE,kEAAkE;QAClE,yCAAyC;QACzC,SAAS,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC;QAE9D,MAAM,MAAM,CACV,mBAAmB,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CACzE,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,oBAAoB,EAAE,UAAU,CAAC,CACxE,CACF,CAAC,OAAO,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;QAE5D,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QACrD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YAChC,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,wCAAwC;SAChD,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,8CAA8C,EAAE,GAAG,EAAE;IAC5D,IAAI,aAA2B,CAAC;IAEhC,UAAU,CAAC,GAAG,EAAE;QACd,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC;QACjC,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,SAAS,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,UAAU,CAAC,KAAK,GAAG,aAAa,CAAC;QACjC,EAAE,CAAC,eAAe,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACnF,sEAAsE;QACtE,sEAAsE;QACtE,4DAA4D;QAC5D,SAAS,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC;QAExF,MAAM,MAAM,CACV,mBAAmB,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CACxE,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,oBAAoB,EAAE,UAAU,CAAC,CACxE,CACF,CAAC,OAAO,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;QAEjD,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC;YACzB,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,6BAA6B;SACrC,CAAC,CAAC;QACH,iDAAiD;QACjD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,aAAa,EAAE,CAAC;QAC1C,oEAAoE;QACpE,6BAA6B;QAC7B,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yFAAyF,EAAE,KAAK,IAAI,EAAE;QACvG,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC;QACjF,UAAU,CAAC,KAAK,GAAG,SAAoC,CAAC;QAExD,MAAM,MAAM,CACV,mBAAmB,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CACxE,WAAW,CACT,QAAQ,EACR,IAAI,EACJ,EAAE,CAAC,EAAE,CAAC,EAAE,EACR,EAAE,GAAG,oBAAoB,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAC1D,UAAU,CACX,CACF,CACF,CAAC,OAAO,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;QAE5D,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YACjE,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,wCAAwC;YAC/C,YAAY,EAAE,CAAC;SAChB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yFAAyF,EAAE,KAAK,IAAI,EAAE;QACvG,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE;YACjC,IAAI,IAAI,CAAC,CAAC;YACV,OAAO,IAAI,KAAK,CAAC;gBACf,CAAC,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAE,CAAC;gBACzE,CAAC,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,KAAK,GAAG,SAAoC,CAAC;QAExD,MAAM,KAAK,GAAG,MAAM,mBAAmB,CACrC,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,EAC/C,GAAG,EAAE,CACH,WAAW,CACT,QAAQ,EACR,IAAI,EACJ,EAAE,CAAC,EAAE,CAAC,EAAE,EACR,EAAE,GAAG,oBAAoB,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAC1D,UAAU,CACX,CACJ,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YACjE,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI;YACX,YAAY,EAAE,CAAC;SAChB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;QACtF,SAAS,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAEzF,MAAM,KAAK,GAAG,MAAM,mBAAmB,CACrC,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,EAC/C,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,oBAAoB,EAAE,UAAU,CAAC,CAC9E,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3D,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,aAAa,EAAE,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wGAAwG,EAAE,KAAK,IAAI,EAAE;QACtH,yEAAyE;QACzE,0EAA0E;QAC1E,sEAAsE;QACtE,WAAW;QACX,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE;YACjC,IAAI,IAAI,CAAC,CAAC;YACV,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,OAAO,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC;YACjF,CAAC;YACD,MAAM,IAAI,YAAY,CAAC,4BAA4B,EAAE,YAAY,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,KAAK,GAAG,SAAoC,CAAC;QAExD,MAAM,MAAM,CACV,mBAAmB,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CACxE,WAAW,CACT,QAAQ,EACR,IAAI,EACJ,EAAE,CAAC,EAAE,CAAC,EAAE,EACR,EAAE,GAAG,oBAAoB,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAC1D,UAAU,CACX,CACF,CACF,CAAC,OAAO,CAAC,OAAO,CAAC,4BAA4B,oBAAoB,CAAC,OAAO,IAAI,CAAC,CAAC;QAEhF,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YACjE,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,SAAS;YAChB,YAAY,EAAE,CAAC;SAChB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,KAAK,IAAI,EAAE;QAC/F,qEAAqE;QACrE,+CAA+C;QAC/C,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE;YACjC,IAAI,IAAI,CAAC,CAAC;YACV,OAAO,IAAI,KAAK,CAAC;gBACf,CAAC,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAE,CAAC;gBACzE,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;QACH,UAAU,CAAC,KAAK,GAAG,SAAoC,CAAC;QAExD,MAAM,KAAK,GAAG,MAAM,mBAAmB,CACrC,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,EAC/C,GAAG,EAAE,CACH,WAAW,CACT,QAAQ,EACR,IAAI,EACJ,EAAE,CAAC,EAAE,CAAC,EAAE,EACR,EAAE,GAAG,oBAAoB,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAC1D,UAAU,CACX,CACJ,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,gBAAgB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YACjE,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI;YACX,YAAY,EAAE,CAAC;SAChB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -3,8 +3,28 @@
3
3
  *
4
4
  * Tests mesh.route() Express middleware and RouteRegistry.
5
5
  */
6
- import { describe, it, expect, vi, beforeEach } from "vitest";
6
+ import { describe, it, expect, vi, beforeEach, afterAll } from "vitest";
7
7
  import { route, routeWithConfig, RouteRegistry } from "../route.js";
8
+ import { resetSettleStateForTests } from "../settle.js";
9
+ // These tests deliberately invoke route middleware with unresolved
10
+ // dependencies to assert the degraded (null-injection) behavior. Disable
11
+ // the settling-window grace (#1193) so they don't sit out the default 20s
12
+ // window — the documented MCP_MESH_SETTLE_TIMEOUT=0 tuning case. The grace
13
+ // itself is covered by settle-window.spec.ts.
14
+ const savedSettleTimeout = process.env.MCP_MESH_SETTLE_TIMEOUT;
15
+ beforeEach(() => {
16
+ process.env.MCP_MESH_SETTLE_TIMEOUT = "0";
17
+ resetSettleStateForTests();
18
+ });
19
+ afterAll(() => {
20
+ if (savedSettleTimeout === undefined) {
21
+ delete process.env.MCP_MESH_SETTLE_TIMEOUT;
22
+ }
23
+ else {
24
+ process.env.MCP_MESH_SETTLE_TIMEOUT = savedSettleTimeout;
25
+ }
26
+ resetSettleStateForTests();
27
+ });
8
28
  // Mock createProxy from proxy.ts
9
29
  vi.mock("../proxy.js", () => ({
10
30
  normalizeDependency: vi.fn((dep) => {
@@ -1 +1 @@
1
- {"version":3,"file":"route.test.js","sourceRoot":"","sources":["../../src/__tests__/route.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"route.test.js","sourceRoot":"","sources":["../../src/__tests__/route.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=settle-window.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settle-window.spec.d.ts","sourceRoot":"","sources":["../../src/__tests__/settle-window.spec.ts"],"names":[],"mappings":""}