mcpose 3.0.0 → 3.1.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.
package/README.md CHANGED
@@ -290,7 +290,7 @@ interface ProxyOptions {
290
290
  localTools?: ReadonlyArray<LocalTool>;
291
291
  stripRequestMeta?: boolean; // Default: true
292
292
  stripResultMeta?: boolean; // Default: true
293
- onTelemetry?: (event: TelemetryEvent) => void;
293
+ onTelemetry?: (event: TelemetryEvent) => unknown;
294
294
  }
295
295
 
296
296
  interface LocalTool {
@@ -338,7 +338,7 @@ interface LocalTool {
338
338
  A `'tool_call'` event fires after every tool call with timing, outcome, tool name, and identity; results with `isError: true` are reported as outcome `'error'`.
339
339
  A `'backend_degraded'` event fires when one backend of a mesh drops out of a list call (`tools/list`, `prompts/list`, or `resources/list`), naming the backend key, the method, and the error.
340
340
  Both variants carry an optional `proxy: ProxyIdentity`, the same frozen `{ name, version }` stamped on `ProxyContext` (ADR-0012), so a fleet of proxies feeding one telemetry sink can attribute events to an instance.
341
- A throwing sink is logged but never fails the call.
341
+ A sink that throws, or whose returned promise rejects, is logged but never fails the call; the sink is not awaited, so a slow one does not delay it either.
342
342
  [`@mcpose/otel`](https://github.com/amir-gorji/mcpose/blob/main/packages/otel/README.md) maps both variants onto OpenTelemetry spans if you do not want to write the sink yourself.
343
343
 
344
344
  ### HTTP options (`HttpProxyOptions`)
@@ -352,8 +352,8 @@ interface HttpProxyOptions {
352
352
  host?: string; // Default: '127.0.0.1' (loopback); non-loopback is a deliberate opt-in
353
353
  path?: string; // Default: '/mcp'
354
354
  onRequest?: (req: http.IncomingMessage, res: http.ServerResponse) => boolean | Promise<boolean>;
355
- onError?: (err: unknown) => void;
356
- maxBodyBytes?: number; // Default: 4 MB (4,194,304); excess returns 413
355
+ onError?: (err: unknown) => unknown;
356
+ maxBodyBytes?: number; // Default: 4 MB (4,194,304); excess returns 413; Infinity opts out
357
357
  maxSessions?: number; // Default: 1000; excess requests return 503; Infinity opts out
358
358
  sessionTtlMs?: number; // Default: 30 minutes (1,800,000); max finite 2,147,483,647; Infinity opts out
359
359
  /** Resolves caller identity once per session. A throw reports through onError and aborts the session with 401. */
@@ -395,8 +395,10 @@ function startHttpProxy(
395
395
  Unlimited sessions that never expire are a memory exhaustion path open to any client that can initialize, and each live session also pins whatever per-session state a host keeps beside it.
396
396
  Both are overridable, and `Infinity` is the explicit opt-out for either.
397
397
  `maxSessions: 0` is not an opt-out: it already means "reject every session", so it keeps that meaning.
398
- A `maxSessions` below zero, or a `sessionTtlMs` of zero or below, throws at startup rather than silently disabling the bound.
398
+ A `maxSessions` below zero, a `sessionTtlMs` of zero or below, or a `maxBodyBytes` that is below zero or is not a number at all, throws at startup rather than quietly enforcing something other than what the option reads as.
399
399
  So does a finite `sessionTtlMs` above 2,147,483,647 ms (about 24.8 days), Node's maximum timer delay: `setTimeout` would otherwise clamp it to 1 ms and expire every session immediately, so anything longer must use `Infinity`.
400
+ A `maxBodyBytes` of `NaN`, which is what `Number(process.env.MAX_BODY_BYTES)` gives for an unset key, compares false against every body size, so mcpose reads and serves a body far larger than the cap it was configured with instead of answering 413.
401
+ `maxBodyBytes: 0` and `maxBodyBytes: Infinity` keep their literal meanings: reject every POST body, and no cap.
400
402
 
401
403
  This is a behavior change: both options used to be opt-in, so a proxy started with defaults accepted unlimited sessions that never expired.
402
404
  A long-lived deployment that relied on that must now pass `sessionTtlMs: Infinity`, `maxSessions: Infinity`, or values that match its own limits.
@@ -519,6 +521,7 @@ Every blocked call embeds a `RejectionReason` in the MCP error `data` field.
519
521
  The top-level error code is unchanged, so clients that only inspect the code are unaffected, while audit middleware and agents can branch on `error.data.rejectionReason`.
520
522
 
521
523
  Use `rejectionMcpError(reason, code, message)` to reject from your own middleware in the same structured shape the proxy uses.
524
+ A `data.rejectionReason` outside the union is not a rejection: `onTelemetry` and the audit middleware both report that call as an ordinary `error`.
522
525
 
523
526
  <details>
524
527
  <summary>Show the <code>RejectionReason</code> union</summary>
@@ -527,6 +530,7 @@ Use `rejectionMcpError(reason, code, message)` to reject from your own middlewar
527
530
  type RejectionReason =
528
531
  | 'TOOL_HIDDEN' // tool exists but is hidden from this caller
529
532
  | 'RESOURCE_HIDDEN' // resource exists but is hidden from this caller
533
+ | 'BACKEND_UNROUTABLE' // mesh mode: the name or URI prefix names no configured backend
530
534
  | 'POLICY_DENIED' // @mcpose/policy: a rule denied, or no rule allowed
531
535
  | 'IDENTITY_UNRESOLVED' // identity could not be established
532
536
  | 'CONSENT_MISSING' // v3: GDPR/CCPA consent gate blocked the call
package/dist/core.d.ts CHANGED
@@ -41,6 +41,15 @@ export type ListToolsMiddleware = Middleware<ListToolsRequest, ListToolsResult>;
41
41
  * This guard narrows `CompatibilityCallToolResult` to `CallToolResult`
42
42
  * (has `.content` array). Both union members carry `[x: string]: unknown`,
43
43
  * so this avoids unsafe casts.
44
+ *
45
+ * A guard, not an assertion: the union's two members are both objects, but a
46
+ * pipeline result is not the union. The legacy shape has no `.content`, and a
47
+ * handler that produced nothing at all (a local tool with a missing `return`,
48
+ * or a middleware that dropped the result) produces a nullish one, which has
49
+ * none either. Both answer `false` here. Throwing instead replaced whatever
50
+ * the pipeline produced with `TypeError: Cannot read properties of undefined
51
+ * (reading 'content')` — inside `mapToolResult`, and inside the `tools/call`
52
+ * handler's telemetry read of `result.isError`.
44
53
  */
45
54
  export declare function hasToolContent(r: CompatibilityCallToolResult): r is CallToolResult;
46
55
  /**
@@ -96,10 +105,20 @@ export interface HttpProxyOptions {
96
105
  /**
97
106
  * Called on unhandled errors instead of console.error, and on every auth
98
107
  * hook that throws: the request still fails closed, and the operator still
99
- * sees why.
108
+ * sees why. If this hook itself throws or returns a rejected promise, the
109
+ * failure is contained and changes nothing the caller sees.
110
+ */
111
+ onError?: (err: unknown) => unknown;
112
+ /**
113
+ * Maximum request body size in bytes. Excess POST bodies return 413.
114
+ * Default: 4 MB. Set to `Infinity` to opt out of the cap.
115
+ *
116
+ * `0` is a valid value and means "reject every POST body", so it is not the
117
+ * opt-out. The two shapes that are mistakes rather than choices throw at
118
+ * startup: a negative number returns 413 for every POST, and `NaN`, which is
119
+ * what `Number(process.env.MAX_BODY_BYTES)` returns for an unset key,
120
+ * compares false against every body size and so gates nothing at all.
100
121
  */
101
- onError?: (err: unknown) => void;
102
- /** Maximum request body size in bytes. Default: 4 MB. */
103
122
  maxBodyBytes?: number;
104
123
  /**
105
124
  * Maximum number of concurrent MCP sessions. Excess requests return 503.
@@ -370,9 +389,11 @@ export interface ProxyOptions {
370
389
  * Called after every tool call with timing and outcome data. Wire to any
371
390
  * custom telemetry sink, or to `createOtelTelemetry` from `@mcpose/otel`
372
391
  * for OpenTelemetry spans.
373
- * A throwing sink is logged and never fails the tool call.
392
+ * A sink that throws, or whose returned promise rejects, is logged and never
393
+ * fails the tool call. The sink is not awaited, so a slow one does not delay
394
+ * the call either.
374
395
  */
375
- onTelemetry?: (event: TelemetryEvent) => void;
396
+ onTelemetry?: (event: TelemetryEvent) => unknown;
376
397
  }
377
398
  /**
378
399
  * Creates a proxy MCP server without connecting it to a transport.
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
package/dist/core.js CHANGED
@@ -13,7 +13,7 @@ import { listAcrossMesh, namespaceName, namespaceUri, normalizeBackends, routeNa
13
13
  import { attachDelegationMeta, detectDelegationLoop, readInboundDelegation, } from './delegation.js';
14
14
  import { createInMemoryEventStore, scopeEventStore } from './eventStore.js';
15
15
  import { initializeParamsOf, replayInitialize, } from './sessionRegistry.js';
16
- import { rejectionMcpError } from './rejection.js';
16
+ import { isRejectionReason, rejectionMcpError } from './rejection.js';
17
17
  import { VERSION } from './version.js';
18
18
  /**
19
19
  * The result channels of a `CallToolResult` — everything a redaction or
@@ -34,9 +34,20 @@ import { VERSION } from './version.js';
34
34
  * This guard narrows `CompatibilityCallToolResult` to `CallToolResult`
35
35
  * (has `.content` array). Both union members carry `[x: string]: unknown`,
36
36
  * so this avoids unsafe casts.
37
+ *
38
+ * A guard, not an assertion: the union's two members are both objects, but a
39
+ * pipeline result is not the union. The legacy shape has no `.content`, and a
40
+ * handler that produced nothing at all (a local tool with a missing `return`,
41
+ * or a middleware that dropped the result) produces a nullish one, which has
42
+ * none either. Both answer `false` here. Throwing instead replaced whatever
43
+ * the pipeline produced with `TypeError: Cannot read properties of undefined
44
+ * (reading 'content')` — inside `mapToolResult`, and inside the `tools/call`
45
+ * handler's telemetry read of `result.isError`.
37
46
  */
38
47
  export function hasToolContent(r) {
39
- return Array.isArray(r.content);
48
+ return (r !== null &&
49
+ typeof r === 'object' &&
50
+ Array.isArray(r.content));
40
51
  }
41
52
  /**
42
53
  * Maps every payload channel of a tool result through the given handlers.
@@ -63,6 +74,28 @@ export function mapToolResult(result, handlers) {
63
74
  ...(structured === undefined ? {} : { structuredContent: structured }),
64
75
  };
65
76
  }
77
+ /**
78
+ * Hands one event to the telemetry sink. A sink that throws, or whose returned
79
+ * promise rejects, is logged here and nowhere else: the caller is already past
80
+ * the point where the tool call could fail, and a rejection that nobody observes
81
+ * ends the process on Node's default `--unhandled-rejections=throw`.
82
+ *
83
+ * The sink is called, not awaited, so a slow exporter cannot delay a tool call.
84
+ *
85
+ * `Promise.resolve` rather than an `instanceof Promise` test: a sink loaded from
86
+ * another realm (`node:vm`), or one handing back a non-native thenable, would
87
+ * fail the latter and leave its rejection unobserved all the same.
88
+ */
89
+ function callTelemetrySink(sink, event) {
90
+ try {
91
+ Promise.resolve(sink?.(event)).catch((err) => {
92
+ console.error(err);
93
+ });
94
+ }
95
+ catch (err) {
96
+ console.error(err);
97
+ }
98
+ }
66
99
  const listChangedBuses = new WeakMap();
67
100
  const httpProxyContext = new AsyncLocalStorage();
68
101
  /**
@@ -152,10 +185,10 @@ function getMiddlewareContext(proxy, signal, delegatedFrom) {
152
185
  });
153
186
  }
154
187
  function getRejectionReason(err) {
155
- const data = err?.data;
156
- return typeof data?.rejectionReason === 'string'
157
- ? data.rejectionReason
158
- : undefined;
188
+ const reason = err?.data
189
+ ?.rejectionReason;
190
+ // A reason outside the union is an ordinary failure, not a rejection (#238).
191
+ return isRejectionReason(reason) ? reason : undefined;
159
192
  }
160
193
  /**
161
194
  * Removes `params._meta` at the proxy boundary, before the pipeline runs,
@@ -375,25 +408,18 @@ export function createProxyServer(backends, options) {
375
408
  * degraded list into a failed one.
376
409
  */
377
410
  const reportDegraded = (context, backendKey, method, error) => {
378
- try {
379
- options.onTelemetry?.({
380
- type: 'backend_degraded',
381
- requestId: context.requestId,
382
- ...(context.sessionId === undefined
383
- ? {}
384
- : { sessionId: context.sessionId }),
385
- backend: backendKey,
386
- method,
387
- error,
388
- ...(context.identity === undefined
389
- ? {}
390
- : { identity: context.identity }),
391
- ...(context.proxy === undefined ? {} : { proxy: context.proxy }),
392
- });
393
- }
394
- catch (err) {
395
- console.error(err);
396
- }
411
+ callTelemetrySink(options.onTelemetry, {
412
+ type: 'backend_degraded',
413
+ requestId: context.requestId,
414
+ ...(context.sessionId === undefined
415
+ ? {}
416
+ : { sessionId: context.sessionId }),
417
+ backend: backendKey,
418
+ method,
419
+ error,
420
+ ...(context.identity === undefined ? {} : { identity: context.identity }),
421
+ ...(context.proxy === undefined ? {} : { proxy: context.proxy }),
422
+ });
397
423
  };
398
424
  // ── Tool handlers ──────────────────────────────────────────────────────────
399
425
  if (capabilities.tools) {
@@ -451,27 +477,21 @@ export function createProxyServer(backends, options) {
451
477
  const delegationError = wireError ?? detectDelegationLoop(context);
452
478
  const start = performance.now();
453
479
  const emitTelemetry = (outcome, rejectionReason) => {
454
- try {
455
- options.onTelemetry?.({
456
- type: 'tool_call',
457
- requestId: context.requestId,
458
- ...(context.sessionId === undefined
459
- ? {}
460
- : { sessionId: context.sessionId }),
461
- tool: name,
462
- duration_ms: Math.round(performance.now() - start),
463
- outcome,
464
- ...(rejectionReason === undefined ? {} : { rejectionReason }),
465
- ...(context.identity === undefined
466
- ? {}
467
- : { identity: context.identity }),
468
- ...(context.proxy === undefined ? {} : { proxy: context.proxy }),
469
- });
470
- }
471
- catch (err) {
472
- // A throwing telemetry sink must never fail the tool call.
473
- console.error(err);
474
- }
480
+ callTelemetrySink(options.onTelemetry, {
481
+ type: 'tool_call',
482
+ requestId: context.requestId,
483
+ ...(context.sessionId === undefined
484
+ ? {}
485
+ : { sessionId: context.sessionId }),
486
+ tool: name,
487
+ duration_ms: Math.round(performance.now() - start),
488
+ outcome,
489
+ ...(rejectionReason === undefined ? {} : { rejectionReason }),
490
+ ...(context.identity === undefined
491
+ ? {}
492
+ : { identity: context.identity }),
493
+ ...(context.proxy === undefined ? {} : { proxy: context.proxy }),
494
+ });
475
495
  };
476
496
  // Hidden beats pass-through. The rejection is thrown by the innermost
477
497
  // `next` INSIDE the pipeline so middleware (audit) observes it in-chain;
@@ -519,9 +539,27 @@ export function createProxyServer(backends, options) {
519
539
  ? callBackend
520
540
  : () => Promise.reject(delegationError), context);
521
541
  // MCP signals tool-level failures in-band via isError, not by throwing.
522
- emitTelemetry(hasToolContent(result) && result.isError === true
542
+ // Three shapes reach here, and `hasToolContent` alone cannot tell them
543
+ // apart because it answers false for two of them:
544
+ //
545
+ // - a CallToolResult: judge it by `isError`;
546
+ // - the legacy `{ toolResult }` shape (protocol 2024-10-07): a valid
547
+ // result with no `.content`, so `mapToolResult` passes it through —
548
+ // a success;
549
+ // - nothing at all, from a local tool with a missing `return` or a
550
+ // middleware that dropped the result: the call produced no result,
551
+ // so it is not a success.
552
+ //
553
+ // A result-less call used to reach the `catch` as a TypeError from
554
+ // `hasToolContent` and be recorded as an error; now that the guard
555
+ // answers false instead of throwing, the shape has to be distinguished
556
+ // here or a `&&` would report it as a clean one.
557
+ const isResultless = result === null || result === undefined || typeof result !== 'object';
558
+ emitTelemetry(isResultless
523
559
  ? 'error'
524
- : 'success');
560
+ : hasToolContent(result) && result.isError === true
561
+ ? 'error'
562
+ : 'success');
525
563
  return result;
526
564
  }
527
565
  catch (err) {
@@ -781,6 +819,19 @@ export function startHttpProxy(backends, options, httpOptions = {}) {
781
819
  if (Number.isFinite(sessionTtlMs) && sessionTtlMs > MAX_NODE_TIMER_DELAY_MS) {
782
820
  throw new Error(`mcpose: sessionTtlMs must be <= ${MAX_NODE_TIMER_DELAY_MS} or Infinity, got ${String(httpOptions.sessionTtlMs)}`);
783
821
  }
822
+ // Resolved once, like the two limits above, so a bad value fails at startup
823
+ // instead of quietly gating nothing. A `NaN` cap compares false against both
824
+ // the declared `Content-Length` and the running byte count, so a body far
825
+ // larger than the configured limit passes this layer untouched.
826
+ // `Number(process.env.MAX_BODY_BYTES)` is the ordinary way a host wires an
827
+ // operator-supplied limit in, and it is NaN when the key is unset or
828
+ // misspelled; #264 rejected a non-finite `budget.maxCallsPerSession` for
829
+ // exactly this reason. `Infinity` opts out, and `0`, like `maxSessions: 0`,
830
+ // keeps its literal meaning instead of doubling as one.
831
+ const maxBodyBytes = httpOptions.maxBodyBytes ?? 4 * 1024 * 1024;
832
+ if (!(maxBodyBytes >= 0)) {
833
+ throw new Error(`mcpose: maxBodyBytes must be >= 0 or Infinity, got ${String(httpOptions.maxBodyBytes)}`);
834
+ }
784
835
  // Filled in once the server is listening (the real port is only known
785
836
  // then); sessions are only created after that. The SDK transport
786
837
  // validates Host/Origin only against a non-empty list, so an enabled flag
@@ -798,7 +849,25 @@ export function startHttpProxy(backends, options, httpOptions = {}) {
798
849
  // maxSessions.
799
850
  let pendingSessions = 0;
800
851
  const reportError = (err) => {
801
- (httpOptions.onError ?? console.error)(err);
852
+ // `onError` is observability, so its own failure must change nothing, the
853
+ // same containment `onAuditError` applies to `@mcpose/audit`'s reporter
854
+ // (#172) and `createConsentMiddleware` applies to its resolver hook. Left
855
+ // unguarded, a throwing reporter replaced the 401 this file documents for
856
+ // a failed auth hook with a 500, aborted `destroySession` before it closed
857
+ // the proxy server, and threw out of the `server.on('error')` handler
858
+ // that exists precisely so a post-listen error does not crash the process.
859
+ // An async reporter that rejects after its first await escapes the same
860
+ // guard one tick later (#245): nobody observes the rejection, and Node's
861
+ // default --unhandled-rejections=throw ends the process, so the returned
862
+ // promise is adopted here too.
863
+ try {
864
+ Promise.resolve((httpOptions.onError ?? console.error)(err)).catch(() => {
865
+ // Nothing left to report it to.
866
+ });
867
+ }
868
+ catch {
869
+ // Nothing left to report it to.
870
+ }
802
871
  };
803
872
  /**
804
873
  * Single teardown path for every way a session can end: client DELETE,
@@ -959,7 +1028,7 @@ export function startHttpProxy(backends, options, httpOptions = {}) {
959
1028
  return;
960
1029
  }
961
1030
  if (method === 'POST') {
962
- const rejected = applyBodySizeLimit(req, res, httpOptions.maxBodyBytes ?? 4 * 1024 * 1024);
1031
+ const rejected = applyBodySizeLimit(req, res, maxBodyBytes);
963
1032
  if (rejected)
964
1033
  return;
965
1034
  }
@@ -1125,7 +1194,7 @@ export function startHttpProxy(backends, options, httpOptions = {}) {
1125
1194
  handle().catch((err) => {
1126
1195
  if (!res.headersSent)
1127
1196
  res.writeHead(500).end();
1128
- (httpOptions.onError ?? console.error)(err);
1197
+ reportError(err);
1129
1198
  });
1130
1199
  };
1131
1200
  const server = httpOptions.tlsOptions
package/dist/core.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,12 @@ import { McpError, ErrorCode } from '@modelcontextprotocol/sdk/types.js';
10
10
  * @stable
11
11
  */
12
12
  export type RejectionReason = 'TOOL_HIDDEN' | 'RESOURCE_HIDDEN' | 'BACKEND_UNROUTABLE' | 'POLICY_DENIED' | 'IDENTITY_UNRESOLVED' | 'CONSENT_MISSING' | 'SENSITIVITY_BLOCKED' | 'DELEGATION_INVALID' | 'BUDGET_EXCEEDED' | 'SESSION_LIMIT' | 'BODY_LIMIT';
13
+ /**
14
+ * Narrows an untrusted value to `RejectionReason`.
15
+ * `Object.hasOwn`, not `in`: the value can come from an upstream error, so a
16
+ * prototype key like `constructor` must not pass as a member.
17
+ */
18
+ export declare function isRejectionReason(value: unknown): value is RejectionReason;
13
19
  /**
14
20
  * Creates an `McpError` with the rejection reason embedded in `error.data`.
15
21
  * The top-level `code` is unchanged so clients that only inspect the code
@@ -1 +1 @@
1
- {"version":3,"file":"rejection.d.ts","sourceRoot":"","sources":["../src/rejection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAEzE;;;;;;;;;GASG;AACH,MAAM,MAAM,eAAe,GACvB,aAAa,GACb,iBAAiB,GACjB,oBAAoB,GACpB,eAAe,GACf,qBAAqB,GACrB,iBAAiB,GACjB,qBAAqB,GACrB,oBAAoB,GACpB,iBAAiB,GACjB,eAAe,GACf,YAAY,CAAC;AAEjB;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,GACd,QAAQ,CAEV"}
1
+ {"version":3,"file":"rejection.d.ts","sourceRoot":"","sources":["../src/rejection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAEzE;;;;;;;;;GASG;AACH,MAAM,MAAM,eAAe,GACvB,aAAa,GACb,iBAAiB,GACjB,oBAAoB,GACpB,eAAe,GACf,qBAAqB,GACrB,iBAAiB,GACjB,qBAAqB,GACrB,oBAAoB,GACpB,iBAAiB,GACjB,eAAe,GACf,YAAY,CAAC;AAkBjB;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAE1E;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,GACd,QAAQ,CAEV"}
package/dist/rejection.js CHANGED
@@ -1,4 +1,27 @@
1
1
  import { McpError, ErrorCode } from '@modelcontextprotocol/sdk/types.js';
2
+ // The `Record` annotation keeps this table and the union from drifting apart:
3
+ // a missing or extra key is a compile error.
4
+ const REJECTION_REASONS = {
5
+ TOOL_HIDDEN: true,
6
+ RESOURCE_HIDDEN: true,
7
+ BACKEND_UNROUTABLE: true,
8
+ POLICY_DENIED: true,
9
+ IDENTITY_UNRESOLVED: true,
10
+ CONSENT_MISSING: true,
11
+ SENSITIVITY_BLOCKED: true,
12
+ DELEGATION_INVALID: true,
13
+ BUDGET_EXCEEDED: true,
14
+ SESSION_LIMIT: true,
15
+ BODY_LIMIT: true,
16
+ };
17
+ /**
18
+ * Narrows an untrusted value to `RejectionReason`.
19
+ * `Object.hasOwn`, not `in`: the value can come from an upstream error, so a
20
+ * prototype key like `constructor` must not pass as a member.
21
+ */
22
+ export function isRejectionReason(value) {
23
+ return typeof value === 'string' && Object.hasOwn(REJECTION_REASONS, value);
24
+ }
2
25
  /**
3
26
  * Creates an `McpError` with the rejection reason embedded in `error.data`.
4
27
  * The top-level `code` is unchanged so clients that only inspect the code
@@ -1 +1 @@
1
- {"version":3,"file":"rejection.js","sourceRoot":"","sources":["../src/rejection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAyBzE;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAuB,EACvB,IAAe,EACf,OAAe;IAEf,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,CAAC;AAClE,CAAC"}
1
+ {"version":3,"file":"rejection.js","sourceRoot":"","sources":["../src/rejection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAyBzE,8EAA8E;AAC9E,6CAA6C;AAC7C,MAAM,iBAAiB,GAAkC;IACvD,WAAW,EAAE,IAAI;IACjB,eAAe,EAAE,IAAI;IACrB,kBAAkB,EAAE,IAAI;IACxB,aAAa,EAAE,IAAI;IACnB,mBAAmB,EAAE,IAAI;IACzB,eAAe,EAAE,IAAI;IACrB,mBAAmB,EAAE,IAAI;IACzB,kBAAkB,EAAE,IAAI;IACxB,eAAe,EAAE,IAAI;IACrB,aAAa,EAAE,IAAI;IACnB,UAAU,EAAE,IAAI;CACjB,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAuB,EACvB,IAAe,EACf,OAAe;IAEf,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,CAAC;AAClE,CAAC"}