@cyanheads/mcp-ts-core 0.12.3 → 0.12.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +2 -2
- package/CLAUDE.md +2 -2
- package/README.md +1 -1
- package/changelog/0.12.x/0.12.4.md +54 -0
- package/dist/config/index.d.ts +17 -17
- package/dist/linter/rules/error-contract-rules.d.ts +2 -2
- package/dist/linter/rules/error-contract-rules.d.ts.map +1 -1
- package/dist/linter/rules/error-contract-rules.js +6 -3
- package/dist/linter/rules/error-contract-rules.js.map +1 -1
- package/dist/mcp-server/transports/http/httpErrorHandler.d.ts.map +1 -1
- package/dist/mcp-server/transports/http/httpErrorHandler.js +11 -0
- package/dist/mcp-server/transports/http/httpErrorHandler.js.map +1 -1
- package/dist/types-global/errors.d.ts +7 -0
- package/dist/types-global/errors.d.ts.map +1 -1
- package/dist/types-global/errors.js +7 -0
- package/dist/types-global/errors.js.map +1 -1
- package/dist/utils/internal/error-handler/errorHandler.d.ts +10 -7
- package/dist/utils/internal/error-handler/errorHandler.d.ts.map +1 -1
- package/dist/utils/internal/error-handler/errorHandler.js +45 -28
- package/dist/utils/internal/error-handler/errorHandler.js.map +1 -1
- package/dist/utils/network/fetchWithTimeout.d.ts +14 -7
- package/dist/utils/network/fetchWithTimeout.d.ts.map +1 -1
- package/dist/utils/network/fetchWithTimeout.js +59 -34
- package/dist/utils/network/fetchWithTimeout.js.map +1 -1
- package/dist/utils/network/httpError.d.ts +25 -3
- package/dist/utils/network/httpError.d.ts.map +1 -1
- package/dist/utils/network/httpError.js +23 -8
- package/dist/utils/network/httpError.js.map +1 -1
- package/package.json +21 -21
- package/skills/add-tool/SKILL.md +2 -2
- package/skills/api-config/SKILL.md +2 -2
- package/skills/api-context/SKILL.md +3 -1
- package/skills/api-errors/SKILL.md +11 -8
- package/skills/api-linter/SKILL.md +2 -2
- package/skills/api-utils/SKILL.md +4 -4
- package/skills/design-mcp-server/SKILL.md +2 -2
- package/skills/maintenance/SKILL.md +2 -1
- package/skills/release-and-publish/SKILL.md +4 -1
- package/templates/Dockerfile +11 -1
package/AGENTS.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# Developer Protocol
|
|
2
2
|
|
|
3
3
|
**Package:** `@cyanheads/mcp-ts-core`
|
|
4
|
-
**Version:** 0.12.
|
|
4
|
+
**Version:** 0.12.4
|
|
5
5
|
**Engines:** Bun ≥1.3.0, Node ≥24.0.0
|
|
6
6
|
**MCP SDK:** `@modelcontextprotocol/server` ^2.0.0 (protocol revisions 2026-07-28 and 2025-*)
|
|
7
|
-
**Zod:** ^4.4
|
|
7
|
+
**Zod:** ^4.5.4
|
|
8
8
|
**GitHub:** [cyanheads/mcp-ts-core](https://github.com/cyanheads/mcp-ts-core)
|
|
9
9
|
**npm:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core)
|
|
10
10
|
**Docker:** [ghcr.io/cyanheads/mcp-ts-core](https://ghcr.io/cyanheads/mcp-ts-core)
|
package/CLAUDE.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# Developer Protocol
|
|
2
2
|
|
|
3
3
|
**Package:** `@cyanheads/mcp-ts-core`
|
|
4
|
-
**Version:** 0.12.
|
|
4
|
+
**Version:** 0.12.4
|
|
5
5
|
**Engines:** Bun ≥1.3.0, Node ≥24.0.0
|
|
6
6
|
**MCP SDK:** `@modelcontextprotocol/server` ^2.0.0 (protocol revisions 2026-07-28 and 2025-*)
|
|
7
|
-
**Zod:** ^4.4
|
|
7
|
+
**Zod:** ^4.5.4
|
|
8
8
|
**GitHub:** [cyanheads/mcp-ts-core](https://github.com/cyanheads/mcp-ts-core)
|
|
9
9
|
**npm:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core)
|
|
10
10
|
**Docker:** [ghcr.io/cyanheads/mcp-ts-core](https://ghcr.io/cyanheads/mcp-ts-core)
|
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
<div align="center">
|
|
7
7
|
|
|
8
|
-
[](./CHANGELOG.md) [](./LICENSE) [](https://modelcontextprotocol.io/specification/2026-07-28)
|
|
9
9
|
|
|
10
10
|
[](https://modelcontextprotocol.io/) [](https://www.typescriptlang.org/) [](https://bun.sh/)
|
|
11
11
|
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Security: the SSRF DNS guard now queries both node:dns resolvers, closing a Bun 1.4 Linux bypass. A caller disconnect classifies as RequestCancelled (-32011) rather than InternalError, an upstream 500 retries as ServiceUnavailable, and the Docker build stage cross-compiles instead of emulating."
|
|
3
|
+
breaking: false
|
|
4
|
+
security: true
|
|
5
|
+
agent-notes: |
|
|
6
|
+
Add `FROM --platform=$BUILDPLATFORM` to the build stage of this server's own
|
|
7
|
+
`Dockerfile` — the `templates/Dockerfile` change reaches newly scaffolded
|
|
8
|
+
servers only, and an existing one loses its GHCR publish on any arm64 build
|
|
9
|
+
host once it is on Bun 1.4.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# 0.12.4 — 2026-09-02
|
|
13
|
+
|
|
14
|
+
## Added
|
|
15
|
+
|
|
16
|
+
- **`JsonRpcErrorCode.RequestCancelled` (-32011) and the `requestCancelled()` factory** on `/errors` ([#386](https://github.com/cyanheads/mcp-ts-core/issues/386)) — the code for a caller that went away. It is an `error-contract-conformance` baseline code, so no tool declares it; `withRetry` treats it as non-transient and the HTTP transport answers `499`.
|
|
17
|
+
|
|
18
|
+
## Changed
|
|
19
|
+
|
|
20
|
+
- **No HTTP status maps to `InternalError`** ([#323](https://github.com/cyanheads/mcp-ts-core/issues/323)) — that code means *this* server failed, which a remote status cannot establish. 500 and 501 join the rest of the 5xx range as `ServiceUnavailable`; 504 stays `Timeout` and 4xx is unchanged.
|
|
21
|
+
- **A 501 carries `data.retryable: false`** — it now shares `ServiceUnavailable`'s transient code, so the in-band opt-out is what keeps a method the upstream does not implement out of `withRetry`. Both `httpErrorFromResponse` and `fetchWithTimeout` set it.
|
|
22
|
+
- Shipped skills: `add-tool` 2.21, `api-config` 1.14, `api-context` 2.2, `api-errors` 1.8, `api-linter` 1.13, `api-utils` 2.7, `design-mcp-server` 2.23, `maintenance` 2.6, `release-and-publish` 2.13.
|
|
23
|
+
|
|
24
|
+
## Fixed
|
|
25
|
+
|
|
26
|
+
- **A client disconnect mid-call classifies as a cancellation** — `fetchWithTimeout`'s external-abort path no longer hand-builds `InternalError`, and `determineErrorCode` matches the SDK's `ConnectionClosed` rejection by code ahead of the pattern ladder, so the wording that says "aborted" is not read as a `Timeout`. Logged at `info` with no stack.
|
|
27
|
+
- **An upstream 500 retries** — its `InternalError` classification sat outside `withRetry`'s default transient set, so it failed on the first attempt while the 502 beside it retried.
|
|
28
|
+
- **Multi-arch Docker publish no longer fails on an arm64 host** ([#370](https://github.com/cyanheads/mcp-ts-core/issues/370)) — the build stage in `Dockerfile` and `templates/Dockerfile` is pinned to `$BUILDPLATFORM`, so the `linux/amd64` leg cross-compiles instead of running under QEMU, where bun >= 1.4 aborts inside `bun run build` and no image publishes for either architecture. A build stage that compiles a native addon cannot cross-compile this way; `templates/Dockerfile` states the constraint.
|
|
29
|
+
- **Downstream skill sync reaches `release-and-publish` again** ([#372](https://github.com/cyanheads/mcp-ts-core/issues/372)) — its stamp had regressed 2.12 → 1.11, so the `maintenance` skill read every consumer copy as a local override and skipped it permanently. 2.13 clears the fleet high-water mark, and Phase A now reports each skipped skill with both versions.
|
|
30
|
+
|
|
31
|
+
## Security
|
|
32
|
+
|
|
33
|
+
- **The SSRF DNS guard queries both resolvers** ([#365](https://github.com/cyanheads/mcp-ts-core/issues/365)) — `assertDnsNotPrivate` adds `dns.lookup(hostname, { all: true })` beside `resolve4`/`resolve6` and rejects a non-global answer from either. Bun 1.4 left `dns.resolve*()` on c-ares while moving Linux hostname resolution in `net.connect()` to `getaddrinfo`, so a name only the system resolver could see — `/etc/hosts`, split DNS, an NSS module — passed the guard and then connected. Each probe settles independently, so a resolver absent from the runtime is skipped rather than fatal.
|
|
34
|
+
|
|
35
|
+
## Dependencies
|
|
36
|
+
|
|
37
|
+
- `hono` `^4.13.2` → `^4.13.5`
|
|
38
|
+
- `jose` `^6.2.9` → `^6.2.10`
|
|
39
|
+
- `zod` `^4.4.3` → `^4.5.4` (the `peerDependencies` floor stays `^4.4.3`)
|
|
40
|
+
- `@biomejs/biome` (dev) `2.5.8` → `2.5.11`
|
|
41
|
+
- `@cloudflare/vitest-pool-workers` (dev) `^0.21.3` → `^0.22.0`
|
|
42
|
+
- `@supabase/supabase-js` (dev) `^2.112.3` → `^2.112.4`
|
|
43
|
+
- `@types/bun`, `bun-types` (dev) `^1.3.14` → `^1.4.0`
|
|
44
|
+
- `@types/node` (dev) `26.2.0` → `26.4.0`
|
|
45
|
+
- `@vitest/coverage-istanbul`, `@vitest/ui` (dev) `4.1.10` → `4.1.11`
|
|
46
|
+
- `defuddle` (dev) `^0.19.2` → `^0.19.3`
|
|
47
|
+
- `fast-xml-parser` (dev) `^5.11.0` → `^5.11.1`
|
|
48
|
+
- `ignore` (dev) `^7.0.6` → `^7.0.7`
|
|
49
|
+
- `js-yaml` (dev) `^5.3.0` → `^5.4.1`
|
|
50
|
+
- `openai` (dev) `^7.5.0` → `^7.8.0`
|
|
51
|
+
- `papaparse` (dev) `^5.6.0` → `^5.7.0`
|
|
52
|
+
- `vite` (dev) `8.2.1` → `8.2.2`
|
|
53
|
+
- `vitest` (dev) `^4.1.10` → `^4.1.11`
|
|
54
|
+
- `fast-uri` (override) `^3.1.5` → `^3.1.6`
|
package/dist/config/index.d.ts
CHANGED
|
@@ -23,39 +23,39 @@ declare const ConfigSchema: z.ZodObject<{
|
|
|
23
23
|
info: "info";
|
|
24
24
|
notice: "notice";
|
|
25
25
|
warning: "warning";
|
|
26
|
-
}
|
|
26
|
+
}>, unknown>>;
|
|
27
27
|
logsPath: z.ZodOptional<z.ZodString>;
|
|
28
|
-
logLlmInteractions: z.ZodPreprocess<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodCodec<z.ZodString, z.ZodBoolean>]
|
|
28
|
+
logLlmInteractions: z.ZodPreprocess<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodCodec<z.ZodString, z.ZodBoolean>]>>, unknown>;
|
|
29
29
|
logRateLimitThreshold: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
30
30
|
logRateLimitWindowMs: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
31
31
|
environment: z.ZodDefault<z.ZodPreprocess<z.ZodEnum<{
|
|
32
32
|
development: "development";
|
|
33
33
|
production: "production";
|
|
34
34
|
testing: "testing";
|
|
35
|
-
}
|
|
35
|
+
}>, unknown>>;
|
|
36
36
|
mcpTransportType: z.ZodPreprocess<z.ZodDefault<z.ZodEnum<{
|
|
37
37
|
http: "http";
|
|
38
38
|
stdio: "stdio";
|
|
39
|
-
}
|
|
39
|
+
}>>, unknown>;
|
|
40
40
|
mcpSessionMode: z.ZodPreprocess<z.ZodDefault<z.ZodEnum<{
|
|
41
41
|
auto: "auto";
|
|
42
42
|
stateful: "stateful";
|
|
43
43
|
stateless: "stateless";
|
|
44
|
-
}
|
|
44
|
+
}>>, unknown>;
|
|
45
45
|
mcpResponseVerbosity: z.ZodPreprocess<z.ZodDefault<z.ZodEnum<{
|
|
46
46
|
full: "full";
|
|
47
47
|
minimal: "minimal";
|
|
48
48
|
standard: "standard";
|
|
49
|
-
}
|
|
49
|
+
}>>, unknown>;
|
|
50
50
|
mcpHttpPort: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
51
51
|
mcpHttpHost: z.ZodDefault<z.ZodString>;
|
|
52
52
|
mcpHttpEndpointPath: z.ZodDefault<z.ZodString>;
|
|
53
53
|
mcpHttpMaxBodyBytes: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
54
|
-
mcpPublicUrl: z.ZodPreprocess<z.ZodOptional<z.ZodURL
|
|
54
|
+
mcpPublicUrl: z.ZodPreprocess<z.ZodOptional<z.ZodURL>, unknown>;
|
|
55
55
|
mcpHttpMaxPortRetries: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
56
56
|
mcpHttpPortRetryDelayMs: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
57
57
|
mcpStatefulSessionStaleTimeoutMs: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
58
|
-
mcpHttpResumability: z.ZodPreprocess<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodCodec<z.ZodString, z.ZodBoolean>]
|
|
58
|
+
mcpHttpResumability: z.ZodPreprocess<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodCodec<z.ZodString, z.ZodBoolean>]>>, unknown>;
|
|
59
59
|
mcpHttpResumabilityMaxEvents: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
60
60
|
mcpHttpResumabilityTtlMs: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
61
61
|
mcpHeartbeatIntervalMs: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
@@ -69,15 +69,15 @@ declare const ConfigSchema: z.ZodObject<{
|
|
|
69
69
|
jwt: "jwt";
|
|
70
70
|
none: "none";
|
|
71
71
|
oauth: "oauth";
|
|
72
|
-
}
|
|
73
|
-
mcpAuthDisableScopeChecks: z.ZodPreprocess<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodCodec<z.ZodString, z.ZodBoolean>]
|
|
72
|
+
}>>, unknown>;
|
|
73
|
+
mcpAuthDisableScopeChecks: z.ZodPreprocess<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodCodec<z.ZodString, z.ZodBoolean>]>>, unknown>;
|
|
74
74
|
oauthIssuerUrl: z.ZodOptional<z.ZodURL>;
|
|
75
75
|
oauthJwksUri: z.ZodOptional<z.ZodURL>;
|
|
76
76
|
oauthAudience: z.ZodOptional<z.ZodString>;
|
|
77
77
|
oauthJwksCooldownMs: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
78
78
|
oauthJwksTimeoutMs: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
79
79
|
mcpServerResourceIdentifier: z.ZodOptional<z.ZodURL>;
|
|
80
|
-
devMcpAuthBypass: z.ZodPreprocess<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodCodec<z.ZodString, z.ZodBoolean>]
|
|
80
|
+
devMcpAuthBypass: z.ZodPreprocess<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodCodec<z.ZodString, z.ZodBoolean>]>>, unknown>;
|
|
81
81
|
devMcpClientId: z.ZodOptional<z.ZodString>;
|
|
82
82
|
devMcpScopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
83
83
|
openrouterAppUrl: z.ZodDefault<z.ZodString>;
|
|
@@ -110,14 +110,14 @@ declare const ConfigSchema: z.ZodObject<{
|
|
|
110
110
|
filesystem: "filesystem";
|
|
111
111
|
"in-memory": "in-memory";
|
|
112
112
|
supabase: "supabase";
|
|
113
|
-
}
|
|
113
|
+
}>, unknown>>;
|
|
114
114
|
filesystemPath: z.ZodDefault<z.ZodString>;
|
|
115
115
|
}, z.core.$strip>;
|
|
116
116
|
canvas: z.ZodObject<{
|
|
117
117
|
providerType: z.ZodPreprocess<z.ZodDefault<z.ZodEnum<{
|
|
118
118
|
duckdb: "duckdb";
|
|
119
119
|
none: "none";
|
|
120
|
-
}
|
|
120
|
+
}>>, unknown>;
|
|
121
121
|
defaultMemoryLimitMb: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
122
122
|
exportRootPath: z.ZodDefault<z.ZodString>;
|
|
123
123
|
tempRootPath: z.ZodOptional<z.ZodString>;
|
|
@@ -129,7 +129,7 @@ declare const ConfigSchema: z.ZodObject<{
|
|
|
129
129
|
schemaSniffRows: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
|
|
130
130
|
}, z.core.$strip>;
|
|
131
131
|
openTelemetry: z.ZodObject<{
|
|
132
|
-
enabled: z.ZodPreprocess<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodCodec<z.ZodString, z.ZodBoolean>]
|
|
132
|
+
enabled: z.ZodPreprocess<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodCodec<z.ZodString, z.ZodBoolean>]>>, unknown>;
|
|
133
133
|
serviceName: z.ZodString;
|
|
134
134
|
serviceVersion: z.ZodString;
|
|
135
135
|
tracesEndpoint: z.ZodOptional<z.ZodURL>;
|
|
@@ -143,11 +143,11 @@ declare const ConfigSchema: z.ZodObject<{
|
|
|
143
143
|
NONE: "NONE";
|
|
144
144
|
VERBOSE: "VERBOSE";
|
|
145
145
|
WARN: "WARN";
|
|
146
|
-
}
|
|
146
|
+
}>, unknown>>;
|
|
147
147
|
}, z.core.$strip>;
|
|
148
148
|
speech: z.ZodOptional<z.ZodObject<{
|
|
149
149
|
tts: z.ZodOptional<z.ZodObject<{
|
|
150
|
-
enabled: z.ZodPreprocess<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodCodec<z.ZodString, z.ZodBoolean>]
|
|
150
|
+
enabled: z.ZodPreprocess<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodCodec<z.ZodString, z.ZodBoolean>]>>, unknown>;
|
|
151
151
|
provider: z.ZodDefault<z.ZodEnum<{
|
|
152
152
|
elevenlabs: "elevenlabs";
|
|
153
153
|
}>>;
|
|
@@ -158,7 +158,7 @@ declare const ConfigSchema: z.ZodObject<{
|
|
|
158
158
|
timeout: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
|
|
159
159
|
}, z.core.$strip>>;
|
|
160
160
|
stt: z.ZodOptional<z.ZodObject<{
|
|
161
|
-
enabled: z.ZodPreprocess<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodCodec<z.ZodString, z.ZodBoolean>]
|
|
161
|
+
enabled: z.ZodPreprocess<z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodCodec<z.ZodString, z.ZodBoolean>]>>, unknown>;
|
|
162
162
|
provider: z.ZodDefault<z.ZodEnum<{
|
|
163
163
|
"openai-whisper": "openai-whisper";
|
|
164
164
|
}>>;
|
|
@@ -33,8 +33,8 @@ export declare function lintErrorContract(errors: unknown, definitionType: LintD
|
|
|
33
33
|
* observers see consistent `data.reason` values.
|
|
34
34
|
*
|
|
35
35
|
* **Baseline codes** (`InternalError`, `ServiceUnavailable`, `Timeout`,
|
|
36
|
-
* `ValidationError`, `SerializationError`) are skipped —
|
|
37
|
-
* anywhere and don't need to be enumerated per-tool.
|
|
36
|
+
* `ValidationError`, `SerializationError`, `RequestCancelled`) are skipped —
|
|
37
|
+
* they bubble from anywhere and don't need to be enumerated per-tool.
|
|
38
38
|
*
|
|
39
39
|
* Heuristic only: scans handler source text for `new McpError(JsonRpcErrorCode.X)`
|
|
40
40
|
* constructions and `throw factory()` calls — comparisons (`=== JsonRpcErrorCode.X`)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-contract-rules.d.ts","sourceRoot":"","sources":["../../../src/linter/rules/error-contract-rules.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAetE;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,OAAO,EACf,cAAc,EAAE,kBAAkB,EAClC,cAAc,EAAE,MAAM,GACrB,cAAc,EAAE,CAmLlB;
|
|
1
|
+
{"version":3,"file":"error-contract-rules.d.ts","sourceRoot":"","sources":["../../../src/linter/rules/error-contract-rules.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAetE;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,OAAO,EACf,cAAc,EAAE,kBAAkB,EAClC,cAAc,EAAE,MAAM,GACrB,cAAc,EAAE,CAmLlB;AAyDD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,EAC5C,cAAc,EAAE,kBAAkB,EAClC,cAAc,EAAE,MAAM,GACrB,cAAc,EAAE,CAiGlB"}
|
|
@@ -224,6 +224,7 @@ const FACTORY_TO_CODE = {
|
|
|
224
224
|
internalError: JsonRpcErrorCode.InternalError,
|
|
225
225
|
serializationError: JsonRpcErrorCode.SerializationError,
|
|
226
226
|
databaseError: JsonRpcErrorCode.DatabaseError,
|
|
227
|
+
requestCancelled: JsonRpcErrorCode.RequestCancelled,
|
|
227
228
|
};
|
|
228
229
|
/**
|
|
229
230
|
* Codes that bubble up from anywhere — services, framework utilities,
|
|
@@ -240,6 +241,7 @@ const BASELINE_CONFORMANCE_CODES = new Set([
|
|
|
240
241
|
JsonRpcErrorCode.Timeout,
|
|
241
242
|
JsonRpcErrorCode.ValidationError,
|
|
242
243
|
JsonRpcErrorCode.SerializationError,
|
|
244
|
+
JsonRpcErrorCode.RequestCancelled,
|
|
243
245
|
]);
|
|
244
246
|
/**
|
|
245
247
|
* Cross-checks a definition's declared `errors[]` contract against the codes
|
|
@@ -256,8 +258,8 @@ const BASELINE_CONFORMANCE_CODES = new Set([
|
|
|
256
258
|
* observers see consistent `data.reason` values.
|
|
257
259
|
*
|
|
258
260
|
* **Baseline codes** (`InternalError`, `ServiceUnavailable`, `Timeout`,
|
|
259
|
-
* `ValidationError`, `SerializationError`) are skipped —
|
|
260
|
-
* anywhere and don't need to be enumerated per-tool.
|
|
261
|
+
* `ValidationError`, `SerializationError`, `RequestCancelled`) are skipped —
|
|
262
|
+
* they bubble from anywhere and don't need to be enumerated per-tool.
|
|
261
263
|
*
|
|
262
264
|
* Heuristic only: scans handler source text for `new McpError(JsonRpcErrorCode.X)`
|
|
263
265
|
* constructions and `throw factory()` calls — comparisons (`=== JsonRpcErrorCode.X`)
|
|
@@ -329,7 +331,8 @@ export function lintErrorContractConformance(def, definitionType, definitionName
|
|
|
329
331
|
`${undeclared.join(', ')}. Add them to the contract (with a stable reason) so ` +
|
|
330
332
|
'`tools/list` accurately advertises this failure mode. ' +
|
|
331
333
|
'Baseline codes (InternalError, ServiceUnavailable, Timeout, ValidationError, ' +
|
|
332
|
-
'SerializationError) are auto-allowed — only domain-specific
|
|
334
|
+
'SerializationError, RequestCancelled) are auto-allowed — only domain-specific ' +
|
|
335
|
+
'codes need declaring.',
|
|
333
336
|
definitionType,
|
|
334
337
|
definitionName,
|
|
335
338
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-contract-rules.js","sourceRoot":"","sources":["../../../src/linter/rules/error-contract-rules.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"error-contract-rules.js","sourceRoot":"","sources":["../../../src/linter/rules/error-contract-rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpErrorHandler.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/transports/http/httpErrorHandler.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAKpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAOlF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,GAAU,SAAS,SAAS,MAAM,GAAG,gBAAgB,OAC3E,KAAK,KACP,OAAO,CAAC;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,CAAC,KAClC,OAAO,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"httpErrorHandler.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/transports/http/httpErrorHandler.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAKpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAOlF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,GAAU,SAAS,SAAS,MAAM,GAAG,gBAAgB,OAC3E,KAAK,KACP,OAAO,CAAC;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,CAAC,KAClC,OAAO,CAAC,QAAQ,CAmKlB,CAAC"}
|
|
@@ -116,6 +116,17 @@ export const httpErrorHandler = async (err, c) => {
|
|
|
116
116
|
case JsonRpcErrorCode.RateLimited:
|
|
117
117
|
status = 429;
|
|
118
118
|
break;
|
|
119
|
+
/**
|
|
120
|
+
* 499 Client Closed Request — nginx's de-facto code for a caller that hung
|
|
121
|
+
* up mid-request, written for the access log since the response rarely
|
|
122
|
+
* reaches anyone. The standard alternatives both misreport: a 5xx blames
|
|
123
|
+
* this server for a disconnect it did not cause, and a 4xx tells the caller
|
|
124
|
+
* to fix a request that was fine. 499 sits outside Hono's IANA-derived
|
|
125
|
+
* union, hence the `UnofficialStatusCode` escape hatch Hono documents.
|
|
126
|
+
*/
|
|
127
|
+
case JsonRpcErrorCode.RequestCancelled:
|
|
128
|
+
status = 499;
|
|
129
|
+
break;
|
|
119
130
|
default:
|
|
120
131
|
status = 500;
|
|
121
132
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpErrorHandler.js","sourceRoot":"","sources":["../../../../src/mcp-server/transports/http/httpErrorHandler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"httpErrorHandler.js","sourceRoot":"","sources":["../../../../src/mcp-server/transports/http/httpErrorHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,6 +40,7 @@ export declare enum JsonRpcErrorCode {
|
|
|
40
40
|
ConfigurationError = -32008,
|
|
41
41
|
InitializationFailed = -32009,
|
|
42
42
|
DatabaseError = -32010,
|
|
43
|
+
RequestCancelled = -32011,// Caller abandoned the request (disconnect, abort signal)
|
|
43
44
|
SerializationError = -32070,// Data serialization/deserialization failed
|
|
44
45
|
UnknownError = -32099
|
|
45
46
|
}
|
|
@@ -103,6 +104,12 @@ export declare const internalError: (message: string, data?: ErrorData, options?
|
|
|
103
104
|
export declare const serializationError: (message: string, data?: ErrorData, options?: ErrorFactoryOptions) => McpError;
|
|
104
105
|
/** Create a DatabaseError (-32010) error. */
|
|
105
106
|
export declare const databaseError: (message: string, data?: ErrorData, options?: ErrorFactoryOptions) => McpError;
|
|
107
|
+
/**
|
|
108
|
+
* Create a RequestCancelled (-32011) error — the caller abandoned the request
|
|
109
|
+
* (client disconnect, external abort signal). Not a server fault and never
|
|
110
|
+
* retryable: there is no longer anyone to answer.
|
|
111
|
+
*/
|
|
112
|
+
export declare const requestCancelled: (message: string, data?: ErrorData, options?: ErrorFactoryOptions) => McpError;
|
|
106
113
|
/**
|
|
107
114
|
* Zod schema for validating error objects. This schema can be used for:
|
|
108
115
|
* - Validating error structures when parsing error responses from external services.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/types-global/errors.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/types-global/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,6 +30,7 @@ export var JsonRpcErrorCode;
|
|
|
30
30
|
JsonRpcErrorCode[JsonRpcErrorCode["ConfigurationError"] = -32008] = "ConfigurationError";
|
|
31
31
|
JsonRpcErrorCode[JsonRpcErrorCode["InitializationFailed"] = -32009] = "InitializationFailed";
|
|
32
32
|
JsonRpcErrorCode[JsonRpcErrorCode["DatabaseError"] = -32010] = "DatabaseError";
|
|
33
|
+
JsonRpcErrorCode[JsonRpcErrorCode["RequestCancelled"] = -32011] = "RequestCancelled";
|
|
33
34
|
JsonRpcErrorCode[JsonRpcErrorCode["SerializationError"] = -32070] = "SerializationError";
|
|
34
35
|
JsonRpcErrorCode[JsonRpcErrorCode["UnknownError"] = -32099] = "UnknownError";
|
|
35
36
|
})(JsonRpcErrorCode || (JsonRpcErrorCode = {}));
|
|
@@ -109,6 +110,12 @@ export const internalError = (message, data, options) => new McpError(JsonRpcErr
|
|
|
109
110
|
export const serializationError = (message, data, options) => new McpError(JsonRpcErrorCode.SerializationError, message, data, options);
|
|
110
111
|
/** Create a DatabaseError (-32010) error. */
|
|
111
112
|
export const databaseError = (message, data, options) => new McpError(JsonRpcErrorCode.DatabaseError, message, data, options);
|
|
113
|
+
/**
|
|
114
|
+
* Create a RequestCancelled (-32011) error — the caller abandoned the request
|
|
115
|
+
* (client disconnect, external abort signal). Not a server fault and never
|
|
116
|
+
* retryable: there is no longer anyone to answer.
|
|
117
|
+
*/
|
|
118
|
+
export const requestCancelled = (message, data, options) => new McpError(JsonRpcErrorCode.RequestCancelled, message, data, options);
|
|
112
119
|
/**
|
|
113
120
|
* Zod schema for validating error objects. This schema can be used for:
|
|
114
121
|
* - Validating error structures when parsing error responses from external services.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/types-global/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiBxB;;;GAGG;AACH,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/types-global/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,11 +16,12 @@ export declare class ErrorHandler {
|
|
|
16
16
|
*
|
|
17
17
|
* Resolution order:
|
|
18
18
|
* 1. `McpError` instances — returns `error.code` directly.
|
|
19
|
-
* 2.
|
|
20
|
-
* 3.
|
|
21
|
-
* 4.
|
|
22
|
-
* 5.
|
|
23
|
-
* 6.
|
|
19
|
+
* 2. SDK `ConnectionClosed` rejections — mapped to `RequestCancelled`, ahead of the pattern ladder.
|
|
20
|
+
* 3. Standard JS error constructor names via `ERROR_TYPE_MAPPINGS` (e.g. `TypeError` → `ValidationError`).
|
|
21
|
+
* 4. Provider-specific patterns (AWS, HTTP status codes, Supabase, OpenRouter) — checked before common patterns for specificity.
|
|
22
|
+
* 5. Common message/name patterns (auth, not-found, rate-limit, etc.).
|
|
23
|
+
* 6. `AbortError` name — mapped to `Timeout`.
|
|
24
|
+
* 7. Falls back to `JsonRpcErrorCode.InternalError`.
|
|
24
25
|
*
|
|
25
26
|
* @param error - The error instance or value to classify.
|
|
26
27
|
* @returns The most specific `JsonRpcErrorCode` that fits the error.
|
|
@@ -45,8 +46,10 @@ export declare class ErrorHandler {
|
|
|
45
46
|
* 1. Records the exception on the active OTel span and sets span status to ERROR.
|
|
46
47
|
* 2. Sanitizes `options.input` via `sanitizeInputForLogging` before including in logs.
|
|
47
48
|
* 3. Extracts and consolidates error data, original stack, and the full cause chain.
|
|
48
|
-
* 4.
|
|
49
|
-
*
|
|
49
|
+
* 4. Rebuilds the error as a new `McpError` carrying the consolidated data, preserving the
|
|
50
|
+
* classified code (or delegates to `options.errorMapper`).
|
|
51
|
+
* 5. Logs the result via the global logger with full structured context — at `error` level,
|
|
52
|
+
* or at `info` without a stack for `RequestCancelled`, which is a routine caller disconnect.
|
|
50
53
|
* 6. Returns the processed error, or rethrows it if `options.rethrow` is `true`.
|
|
51
54
|
*
|
|
52
55
|
* @param error - The error instance or value that occurred.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorHandler.d.ts","sourceRoot":"","sources":["../../../../src/utils/internal/error-handler/errorHandler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"errorHandler.d.ts","sourceRoot":"","sources":["../../../../src/utils/internal/error-handler/errorHandler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,gBAAgB,EAAY,MAAM,0BAA0B,CAAC;AActE,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAapE,0FAA0F;AAC1F,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED;;GAEG;AAEH,qBAAa,YAAY;IACvB;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,OAAc,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAgDjE;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,OAAc,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,GAAG,KAAK,CAqJ7E;IAED;;;;;;;;;;OAUG;IACH,OAAc,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG;QAC1C,IAAI,EAAE,gBAAgB,CAAC;QACvB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,CAeA;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,OAAc,QAAQ,CAAC,CAAC,SAAS,KAAK,EACpC,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EACxC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,GACxE,CAAC,GAAG,KAAK,CAgBX;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAc,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAsBjE;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,OAAoB,QAAQ,CAAC,CAAC,EAC5B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EACxB,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,GAC5C,OAAO,CAAC,CAAC,CAAC,CAUZ;CACF"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Provides error classification, formatting, and consistent error handling patterns.
|
|
4
4
|
* @module src/utils/internal/error-handler/errorHandler
|
|
5
5
|
*/
|
|
6
|
+
import { SdkError, SdkErrorCode } from '@modelcontextprotocol/server';
|
|
6
7
|
import { SpanStatusCode, trace } from '@opentelemetry/api';
|
|
7
8
|
import { ZodError } from 'zod';
|
|
8
9
|
import { JsonRpcErrorCode, McpError } from '../../../types-global/errors.js';
|
|
@@ -33,11 +34,12 @@ export class ErrorHandler {
|
|
|
33
34
|
*
|
|
34
35
|
* Resolution order:
|
|
35
36
|
* 1. `McpError` instances — returns `error.code` directly.
|
|
36
|
-
* 2.
|
|
37
|
-
* 3.
|
|
38
|
-
* 4.
|
|
39
|
-
* 5.
|
|
40
|
-
* 6.
|
|
37
|
+
* 2. SDK `ConnectionClosed` rejections — mapped to `RequestCancelled`, ahead of the pattern ladder.
|
|
38
|
+
* 3. Standard JS error constructor names via `ERROR_TYPE_MAPPINGS` (e.g. `TypeError` → `ValidationError`).
|
|
39
|
+
* 4. Provider-specific patterns (AWS, HTTP status codes, Supabase, OpenRouter) — checked before common patterns for specificity.
|
|
40
|
+
* 5. Common message/name patterns (auth, not-found, rate-limit, etc.).
|
|
41
|
+
* 6. `AbortError` name — mapped to `Timeout`.
|
|
42
|
+
* 7. Falls back to `JsonRpcErrorCode.InternalError`.
|
|
41
43
|
*
|
|
42
44
|
* @param error - The error instance or value to classify.
|
|
43
45
|
* @returns The most specific `JsonRpcErrorCode` that fits the error.
|
|
@@ -58,6 +60,16 @@ export class ErrorHandler {
|
|
|
58
60
|
if (error instanceof McpError) {
|
|
59
61
|
return error.code;
|
|
60
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* The SDK rejects every request still in flight when the transport closes,
|
|
65
|
+
* which is what a client disconnect looks like from in here. Matched on the
|
|
66
|
+
* code rather than the message: the SDK uses this same code for more than
|
|
67
|
+
* one wording, and the one that says "aborted" would otherwise be caught by
|
|
68
|
+
* the generic abort pattern below and read as a `Timeout`.
|
|
69
|
+
*/
|
|
70
|
+
if (error instanceof SdkError && error.code === SdkErrorCode.ConnectionClosed) {
|
|
71
|
+
return JsonRpcErrorCode.RequestCancelled;
|
|
72
|
+
}
|
|
61
73
|
const errorName = getErrorName(error);
|
|
62
74
|
const errorMessage = getErrorMessage(error);
|
|
63
75
|
// Check against standard JavaScript error types
|
|
@@ -93,8 +105,10 @@ export class ErrorHandler {
|
|
|
93
105
|
* 1. Records the exception on the active OTel span and sets span status to ERROR.
|
|
94
106
|
* 2. Sanitizes `options.input` via `sanitizeInputForLogging` before including in logs.
|
|
95
107
|
* 3. Extracts and consolidates error data, original stack, and the full cause chain.
|
|
96
|
-
* 4.
|
|
97
|
-
*
|
|
108
|
+
* 4. Rebuilds the error as a new `McpError` carrying the consolidated data, preserving the
|
|
109
|
+
* classified code (or delegates to `options.errorMapper`).
|
|
110
|
+
* 5. Logs the result via the global logger with full structured context — at `error` level,
|
|
111
|
+
* or at `info` without a stack for `RequestCancelled`, which is a routine caller disconnect.
|
|
98
112
|
* 6. Returns the processed error, or rethrows it if `options.rethrow` is `true`.
|
|
99
113
|
*
|
|
100
114
|
* @param error - The error instance or value that occurred.
|
|
@@ -135,8 +149,16 @@ export class ErrorHandler {
|
|
|
135
149
|
const originalErrorName = getErrorName(error);
|
|
136
150
|
const originalErrorMessage = getErrorMessage(error);
|
|
137
151
|
const originalStack = error instanceof Error ? error.stack : undefined;
|
|
138
|
-
|
|
139
|
-
|
|
152
|
+
/**
|
|
153
|
+
* Classified before the record is assembled, because the code decides more
|
|
154
|
+
* than the wire response: a caller-abandoned request is a routine event, so
|
|
155
|
+
* it is logged at `info` and carries no stack. Attaching one invites triage
|
|
156
|
+
* to read a client hanging up as a fault in this server.
|
|
157
|
+
*/
|
|
158
|
+
const loggedErrorCode = error instanceof McpError
|
|
159
|
+
? error.code
|
|
160
|
+
: explicitErrorCode || ErrorHandler.determineErrorCode(error);
|
|
161
|
+
const isCancellation = loggedErrorCode === JsonRpcErrorCode.RequestCancelled;
|
|
140
162
|
const errorDataSeed = error instanceof McpError && typeof error.data === 'object' && error.data !== null
|
|
141
163
|
? { ...error.data }
|
|
142
164
|
: {};
|
|
@@ -153,7 +175,9 @@ export class ErrorHandler {
|
|
|
153
175
|
originalErrorName,
|
|
154
176
|
originalMessage: originalErrorMessage,
|
|
155
177
|
};
|
|
156
|
-
if (originalStack &&
|
|
178
|
+
if (originalStack &&
|
|
179
|
+
!isCancellation &&
|
|
180
|
+
!(error instanceof McpError && error.data?.originalStack)) {
|
|
157
181
|
consolidatedData.originalStack = originalStack;
|
|
158
182
|
}
|
|
159
183
|
const cause = error instanceof Error ? error : undefined;
|
|
@@ -171,22 +195,9 @@ export class ErrorHandler {
|
|
|
171
195
|
consolidatedData.causeChain = causeChain;
|
|
172
196
|
}
|
|
173
197
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
? errorMapper(error)
|
|
178
|
-
: new McpError(error.code, error.message, consolidatedData, {
|
|
179
|
-
cause,
|
|
180
|
-
});
|
|
181
|
-
}
|
|
182
|
-
else {
|
|
183
|
-
loggedErrorCode = explicitErrorCode || ErrorHandler.determineErrorCode(error);
|
|
184
|
-
finalError = errorMapper
|
|
185
|
-
? errorMapper(error)
|
|
186
|
-
: new McpError(loggedErrorCode, originalErrorMessage, consolidatedData, {
|
|
187
|
-
cause,
|
|
188
|
-
});
|
|
189
|
-
}
|
|
198
|
+
const finalError = errorMapper
|
|
199
|
+
? errorMapper(error)
|
|
200
|
+
: new McpError(loggedErrorCode, originalErrorMessage, consolidatedData, { cause });
|
|
190
201
|
// Record error classification metric
|
|
191
202
|
getErrorMetrics().errorClassifiedCounter.add(1, {
|
|
192
203
|
[ATTR_MCP_ERROR_CLASSIFIED_CODE]: String(loggedErrorCode),
|
|
@@ -220,10 +231,16 @@ export class ErrorHandler {
|
|
|
220
231
|
originalErrorType: originalErrorName,
|
|
221
232
|
finalErrorType: getErrorName(finalError),
|
|
222
233
|
errorData: finalError instanceof McpError && finalError.data ? finalError.data : consolidatedData,
|
|
223
|
-
...(includeStack && stack ? { stack } : {}),
|
|
234
|
+
...(includeStack && stack && !isCancellation ? { stack } : {}),
|
|
224
235
|
},
|
|
225
236
|
};
|
|
226
|
-
|
|
237
|
+
const logDescription = finalError.message || originalErrorMessage;
|
|
238
|
+
if (isCancellation) {
|
|
239
|
+
logger.info(`Cancelled ${operation}: ${logDescription}`, logContext);
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
logger.error(`Error in ${operation}: ${logDescription}`, logContext);
|
|
243
|
+
}
|
|
227
244
|
if (rethrow) {
|
|
228
245
|
throw finalError;
|
|
229
246
|
}
|