@chrischall/mcp-utils 2.10.0 → 2.11.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
@@ -210,9 +210,13 @@ The token is an HMAC over the tool, account, target, revision and a hash of the
210
210
  canonical payload (the same canonical form `binding` commits to), expires after
211
211
  `ttlSeconds` (default 600), and is **single-use** through a spent-token store
212
212
  (process-wide by default; pass `spent: createSpentTokenStore()` to scope it).
213
- The store is in memory, so with a key shared across processes a restart or
214
- another instance accepts a spent token again until it expires. A refused token
215
- returns `isError: true` and acts on nothing:
213
+ That store is in memory, so with a key shared across processes a restart or
214
+ another instance accepts a spent token again until it expires.
215
+ `createFileSpentTokenStore(dir)` keeps spends on disk instead — one 0600 file per
216
+ nonce, claimed atomically (`O_EXCL`, so of two processes sharing the directory
217
+ exactly one spends), pruned past expiry on every verify, and failing CLOSED: a
218
+ lookup or a spend it cannot do throws, so the gate errors and nothing runs.
219
+ A refused token returns `isError: true` and acts on nothing:
216
220
 
217
221
  | `error` | meaning |
218
222
  |---|---|
@@ -236,6 +240,16 @@ throws rather than binding only the target.
236
240
  | `MCP_CONFIRM_MODE` | `ask-user` | What a gated write does on a client that cannot show a prompt. `ask-user`: two steps, and the model must get the user's approval in chat before using the token. `auto`: two steps, but the model may use the token after reviewing the preview itself. `refuse`: refused on such clients. An unrecognised value is treated as `refuse` (with a stderr warning). A client that can be prompted always is. |
237
241
  | `MCP_CONFIRM_TTL_SECONDS` | `600` | token lifetime, a positive whole number of seconds. Anything else (`60s`, `1e3`) warns on stderr and is treated as `refuse`, never silently as the default. |
238
242
  | `MCP_CONFIRM_SECRET` | random per process | HMAC key (any length, stretched through SHA-256); set only if tokens must survive a restart |
243
+ | `MCP_HOST_CONFIRM_SECRET` | unset | The same, set by a host (mcp-host derives one per child). Honoured only beside an absolute `MCP_DATA_DIR`, and `MCP_CONFIRM_SECRET` wins over it. |
244
+
245
+ Whenever the key is stable (either secret) and `MCP_DATA_DIR` is absolute,
246
+ `confirmationFromEnv` records spends under `$MCP_DATA_DIR/.mcp-confirm/spent`
247
+ (`spentTokenStoreFromEnv`), so a restart cannot re-accept a spent token within
248
+ its TTL; a caller's own `spent` still wins. With `MCP_CONFIRM_SECRET` and no data
249
+ dir the store stays in memory, with the restart window above. The host's
250
+ variable has its own name so a server on an mcp-utils without the durable store
251
+ ignores it and keeps its random key, rather than pairing a stable key with an
252
+ in-memory store.
239
253
 
240
254
  ```ts
241
255
  const gate = await requireConfirmationWithFallback(ctx, confirmationFromEnv({
@@ -12,11 +12,21 @@ export declare function readConfirmMode(env?: EnvSource): ConfirmMode;
12
12
  */
13
13
  export declare function confirmTtlFromEnv(env?: EnvSource): number;
14
14
  /**
15
- * The HMAC key: `MCP_CONFIRM_SECRET` of any length stretched through SHA-256 to
15
+ * The HMAC key: `MCP_CONFIRM_SECRET` — else `MCP_HOST_CONFIRM_SECRET`, but only
16
+ * beside an absolute `MCP_DATA_DIR` — of any length stretched through SHA-256 to
16
17
  * the 32 bytes the token functions require, or 32 random bytes fixed for the
17
18
  * life of the process (so a restart invalidates every outstanding token).
18
19
  */
19
20
  export declare function confirmKeyFromEnv(env?: EnvSource): Uint8Array;
21
+ /**
22
+ * Where {@link confirmationFromEnv} records spent tokens by default: a
23
+ * {@link createFileSpentTokenStore} under `$MCP_DATA_DIR/.mcp-confirm/spent`
24
+ * when the key is stable and the data dir is absolute, else `undefined` (the
25
+ * process-wide in-memory store — enough for a random key, whose tokens cannot
26
+ * outlive the process; with an operator's secret and no data dir, a restart can
27
+ * re-accept a spent token until it expires).
28
+ */
29
+ export declare function spentTokenStoreFromEnv(env?: EnvSource): SpentTokenStore | undefined;
20
30
  /** Phase 1's instruction under `MCP_CONFIRM_MODE=auto`. */
21
31
  export declare const CONFIRM_TOKEN_AUTO_INSTRUCTION: string;
22
32
  /** {@link confirmationFromEnv}'s input: the confirmation options plus what the token binds. */
@@ -31,7 +41,7 @@ export interface ConfirmationFromEnvOptions extends RequireConfirmationOptions {
31
41
  subject: ConfirmTokenFallback['subject'];
32
42
  /** Phase 1's instruction in `ask-user` mode; defaults to {@link CONFIRM_TOKEN_INSTRUCTION}. */
33
43
  instruction?: string;
34
- /** Spent-token store; defaults to the process-wide one. */
44
+ /** Spent-token store; defaults to {@link spentTokenStoreFromEnv}, else the process-wide one. */
35
45
  spent?: SpentTokenStore;
36
46
  /** Environment to read; defaults to `process.env`. */
37
47
  env?: EnvSource;
@@ -1 +1 @@
1
- {"version":3,"file":"confirm-env.d.ts","sourceRoot":"","sources":["../../src/server/confirm-env.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,sCAAsC,EAC3C,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAC;AAE5B,6BAA6B;AAC7B,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;AAMzD,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,GAAG,GAAE,SAAuB,GAAG,WAAW,CAWzE;AAwBD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,SAAuB,GAAG,MAAM,CAEtE;AAID;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,SAAuB,GAAG,UAAU,CAK1E;AAED,2DAA2D;AAC3D,eAAO,MAAM,8BAA8B,QAE6E,CAAC;AAczH,+FAA+F;AAC/F,MAAM,WAAW,0BAA2B,SAAQ,0BAA0B;IAC5E,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sFAAsF;IACtF,OAAO,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACzC,+FAA+F;IAC/F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,sDAAsD;IACtD,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,sCAAsC,CAoC/G"}
1
+ {"version":3,"file":"confirm-env.d.ts","sourceRoot":"","sources":["../../src/server/confirm-env.ts"],"names":[],"mappings":"AAoCA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,sCAAsC,EAC3C,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAC;AAE5B,6BAA6B;AAC7B,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,CAAC;AAMzD,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,GAAG,GAAE,SAAuB,GAAG,WAAW,CAWzE;AAwBD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,SAAuB,GAAG,MAAM,CAEtE;AAgBD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,SAAuB,GAAG,UAAU,CAK1E;AAID;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,GAAE,SAAuB,GAAG,eAAe,GAAG,SAAS,CAUhG;AAED,2DAA2D;AAC3D,eAAO,MAAM,8BAA8B,QAE6E,CAAC;AAczH,+FAA+F;AAC/F,MAAM,WAAW,0BAA2B,SAAQ,0BAA0B;IAC5E,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sFAAsF;IACtF,OAAO,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACzC,+FAA+F;IAC/F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gGAAgG;IAChG,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,sDAAsD;IACtD,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,sCAAsC,CAuC/G"}
@@ -8,6 +8,15 @@
8
8
  * | `MCP_CONFIRM_MODE` | `ask-user` | what a gated write does on a client that CANNOT show a confirmation prompt |
9
9
  * | `MCP_CONFIRM_TTL_SECONDS` | `600` | how long a token stays valid; unparseable → `refuse` + a stderr warning |
10
10
  * | `MCP_CONFIRM_SECRET` | random per process | HMAC key; set only if tokens must survive a restart |
11
+ * | `MCP_HOST_CONFIRM_SECRET` | unset | the same, set by a HOST (mcp-host); honoured only beside an absolute `MCP_DATA_DIR` |
12
+ *
13
+ * Whenever the key is stable (either secret) and `MCP_DATA_DIR` is absolute,
14
+ * spent tokens are recorded under `$MCP_DATA_DIR/.mcp-confirm/spent`
15
+ * ({@link createFileSpentTokenStore}), so a restart cannot re-accept one
16
+ * within its TTL. The host's secret has a name of its own so that a child on an
17
+ * mcp-utils that predates the durable store ignores it — keeping its random,
18
+ * restart-invalidated key — rather than pairing a stable key with an in-memory
19
+ * store, and it is ignored without a data dir for the same reason.
11
20
  *
12
21
  * `MCP_CONFIRM_MODE`:
13
22
  * - `ask-user`: two steps. Phase 1 returns the preview and a token and tells the
@@ -24,7 +33,9 @@
24
33
  * server uses when it wants the fleet defaults.
25
34
  */
26
35
  import { createHash, randomBytes } from 'node:crypto';
36
+ import { isAbsolute, join } from 'node:path';
27
37
  import { readEnvVar } from '../config/index.js';
38
+ import { createFileSpentTokenStore } from './confirm-spent-file.js';
28
39
  import { CONFIRM_TOKEN_INSTRUCTION, } from './confirm-token.js';
29
40
  const MODES = new Set(['ask-user', 'auto', 'refuse']);
30
41
  const DEFAULT_TTL_SECONDS = 600;
@@ -72,18 +83,50 @@ export function confirmTtlFromEnv(env = process.env) {
72
83
  return readConfirmTtl(env) ?? DEFAULT_TTL_SECONDS;
73
84
  }
74
85
  let processKey;
86
+ /** `MCP_DATA_DIR` when it names an absolute directory; a relative one is the process cwd's, not durable. */
87
+ function durableDataDir(env) {
88
+ const dir = readEnvVar('MCP_DATA_DIR', { env });
89
+ return dir && isAbsolute(dir) ? dir : undefined;
90
+ }
91
+ /** The stable secret in force, if any: the operator's, else the host's when spends can be recorded. */
92
+ function stableSecret(env) {
93
+ return readEnvVar('MCP_CONFIRM_SECRET', { env })
94
+ ?? (durableDataDir(env) ? readEnvVar('MCP_HOST_CONFIRM_SECRET', { env }) : undefined);
95
+ }
75
96
  /**
76
- * The HMAC key: `MCP_CONFIRM_SECRET` of any length stretched through SHA-256 to
97
+ * The HMAC key: `MCP_CONFIRM_SECRET` — else `MCP_HOST_CONFIRM_SECRET`, but only
98
+ * beside an absolute `MCP_DATA_DIR` — of any length stretched through SHA-256 to
77
99
  * the 32 bytes the token functions require, or 32 random bytes fixed for the
78
100
  * life of the process (so a restart invalidates every outstanding token).
79
101
  */
80
102
  export function confirmKeyFromEnv(env = process.env) {
81
- const secret = readEnvVar('MCP_CONFIRM_SECRET', { env });
103
+ const secret = stableSecret(env);
82
104
  if (secret)
83
105
  return createHash('sha256').update(secret, 'utf8').digest();
84
106
  processKey ??= randomBytes(32);
85
107
  return processKey;
86
108
  }
109
+ const fileStores = new Map();
110
+ /**
111
+ * Where {@link confirmationFromEnv} records spent tokens by default: a
112
+ * {@link createFileSpentTokenStore} under `$MCP_DATA_DIR/.mcp-confirm/spent`
113
+ * when the key is stable and the data dir is absolute, else `undefined` (the
114
+ * process-wide in-memory store — enough for a random key, whose tokens cannot
115
+ * outlive the process; with an operator's secret and no data dir, a restart can
116
+ * re-accept a spent token until it expires).
117
+ */
118
+ export function spentTokenStoreFromEnv(env = process.env) {
119
+ const dataDir = durableDataDir(env);
120
+ if (!dataDir || !stableSecret(env))
121
+ return undefined;
122
+ const dir = join(dataDir, '.mcp-confirm', 'spent');
123
+ let store = fileStores.get(dir);
124
+ if (!store) {
125
+ store = createFileSpentTokenStore(dir);
126
+ fileStores.set(dir, store);
127
+ }
128
+ return store;
129
+ }
87
130
  /** Phase 1's instruction under `MCP_CONFIRM_MODE=auto`. */
88
131
  export const CONFIRM_TOKEN_AUTO_INSTRUCTION = 'Nothing has been done yet. Review this preview; if it is what was intended, call again with the same arguments '
89
132
  + 'plus confirmToken. (This server runs with MCP_CONFIRM_MODE=auto, so the user\'s approval in chat is not required.)';
@@ -112,7 +155,10 @@ function boundArgs(args) {
112
155
  * ```
113
156
  */
114
157
  export function confirmationFromEnv(options) {
115
- const { tool, account, confirmToken, subject, instruction, spent, args, env = process.env, ...rest } = options;
158
+ const { tool, account, confirmToken, subject, instruction, args, env = process.env, spent: callerSpent, ...rest } = options;
159
+ // Destructured out of `rest` so it rides the token fallback only, never the
160
+ // returned options (#312).
161
+ const spent = callerSpent ?? spentTokenStoreFromEnv(env);
116
162
  const mode = readConfirmMode(env);
117
163
  const ttlSeconds = readConfirmTtl(env);
118
164
  const bound = args === undefined ? undefined : boundArgs(args);
@@ -1 +1 @@
1
- {"version":3,"file":"confirm-env.js","sourceRoot":"","sources":["../../src/server/confirm-env.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"confirm-env.js","sourceRoot":"","sources":["../../src/server/confirm-env.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAkB,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,OAAO,EACL,yBAAyB,GAI1B,MAAM,oBAAoB,CAAC;AAK5B,MAAM,KAAK,GAAwB,IAAI,GAAG,CAAc,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;AACxF,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAChC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;AAEjC,uFAAuF;AACvF,MAAM,UAAU,eAAe,CAAC,GAAG,GAAc,OAAO,CAAC,GAAG;IAC1D,MAAM,GAAG,GAAG,UAAU,CAAC,kBAAkB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC1E,IAAI,CAAC,GAAG;QAAE,OAAO,UAAU,CAAC;IAC5B,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,GAAkB,CAAC;IAC9C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,qBAAqB,GAAG,kEAAkE,CAC3F,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,GAAc;IACpC,MAAM,GAAG,GAAG,UAAU,CAAC,yBAAyB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;IACnE,IAAI,CAAC,GAAG;QAAE,OAAO,mBAAmB,CAAC;IACrC,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,OAAO,GAAG,EAAE,CAAC;IACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,4BAA4B,GAAG,+CAA+C;cAC5E,iGAAiG,CACpG,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAG,GAAc,OAAO,CAAC,GAAG;IAC5D,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,mBAAmB,CAAC;AACpD,CAAC;AAED,IAAI,UAAkC,CAAC;AAEvC,4GAA4G;AAC5G,SAAS,cAAc,CAAC,GAAc;IACpC,MAAM,GAAG,GAAG,UAAU,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAChD,OAAO,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC;AAED,uGAAuG;AACvG,SAAS,YAAY,CAAC,GAAc;IAClC,OAAO,UAAU,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,CAAC;WAC3C,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,yBAAyB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAC1F,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAG,GAAc,OAAO,CAAC,GAAG;IAC5D,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,MAAM;QAAE,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;IACxE,UAAU,KAAK,WAAW,CAAC,EAAE,CAAC,CAAC;IAC/B,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,GAAG,IAAI,GAAG,EAA2B,CAAC;AAEtD;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAG,GAAc,OAAO,CAAC,GAAG;IACjE,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACrD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;IACnD,IAAI,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAC;QACvC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,2DAA2D;AAC3D,MAAM,CAAC,MAAM,8BAA8B,GACzC,iHAAiH;MAC/G,oHAAoH,CAAC;AAEzH,MAAM,WAAW,GAAG,qFAAqF,CAAC;AAC1G,MAAM,YAAY,GAAG,mGAAmG;MACpH,wBAAwB,CAAC;AAE7B,+GAA+G;AAC/G,SAAS,SAAS,CAAC,IAAa;IAC9B,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/G,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,GAAG,IAA+B,CAAC;IAClE,KAAK,YAAY,CAAC;IAClB,OAAO,IAAI,CAAC;AACd,CAAC;AAgCD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAmC;IACrE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAC5H,4EAA4E;IAC5E,2BAA2B;IAC3B,MAAM,KAAK,GAAG,WAAW,IAAI,sBAAsB,CAAC,GAAG,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/D,MAAM,YAAY,GAA+B,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO;QAClF,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,IAAI,mBAAmB,EAAE,EAAE,CAAC;IACtH,IAAI,IAAI,KAAK,QAAQ,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC;QAC5D,OAAO;YACL,GAAG,YAAY;YACf,eAAe,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,eAAe,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;SACjG,CAAC;IACJ,CAAC;IACD,MAAM,YAAY,GAAoC,KAAK,KAAK,SAAS;QACvE,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,KAAK,IAAI,EAAE;YACX,MAAM,IAAI,GAAG,MAAM,OAAO,EAAE,CAAC;YAC7B,0DAA0D;YAC1D,IAAI,SAAS,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAC;YACnC,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACtE,CAAC,CAAC;IACJ,OAAO;QACL,GAAG,YAAY;QACf,aAAa,EAAE;YACb,GAAG,EAAE,iBAAiB,CAAC,GAAG,CAAC;YAC3B,IAAI;YACJ,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;YAC7C,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;YACvD,OAAO,EAAE,YAAY;YACrB,UAAU;YACV,WAAW,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,yBAAyB,CAAC;YAC1G,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;SAC1C;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { SpentTokenStore } from './confirm-token.js';
2
+ /**
3
+ * A spent-token store backed by `dir` (created 0700 on the first spend). Share
4
+ * one directory between every process that verifies tokens under the same key.
5
+ */
6
+ export declare function createFileSpentTokenStore(dir: string): SpentTokenStore;
7
+ //# sourceMappingURL=confirm-spent-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirm-spent-file.d.ts","sourceRoot":"","sources":["../../src/server/confirm-spent-file.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAW1D;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAqEtE"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * A {@link SpentTokenStore} on disk, so "single use" survives a restart.
3
+ *
4
+ * The in-memory store forgets every spend when the process exits. With a
5
+ * random per-process key that is harmless — a restart invalidates every
6
+ * outstanding token anyway. With a STABLE key (an operator's
7
+ * `MCP_CONFIRM_SECRET`, or the one mcp-host derives per child) it is a replay
8
+ * window: a token spent just before a restart verifies again after it, until it
9
+ * expires. A hosted child idle-stops after about ten minutes, close to the
10
+ * default 600 s TTL, so that window is the normal case there, not an edge
11
+ * (fleet audit 2026-09-24, kiaaccess-mcp BUG-2).
12
+ *
13
+ * One file per spent nonce, named by the nonce and holding its expiry:
14
+ * - **Atomic spend.** `claim` creates the file with `O_EXCL` (`wx`), so of two
15
+ * processes sharing the directory that both passed `has`, exactly one spends.
16
+ * - **Bounded.** Every verify prunes entries past their expiry, so the
17
+ * directory holds at most one TTL's worth of approvals.
18
+ * - **Fails closed.** A lookup or a spend that cannot be done THROWS rather
19
+ * than answering "not spent", so the gate errors and nothing runs. Only
20
+ * `prune` swallows errors — it is housekeeping. An entry whose expiry cannot
21
+ * be read (a write torn by a crash) is kept until it is a day old rather
22
+ * than forgotten early.
23
+ *
24
+ * 0700 directory, 0600 entries, like the session store.
25
+ */
26
+ import { mkdirSync, readFileSync, readdirSync, rmSync, statSync, unlinkSync, writeFileSync } from 'node:fs';
27
+ import { join } from 'node:path';
28
+ /** Nonces are 16 random bytes base64url (`issueConfirmToken`); anything else is not ours. */
29
+ const NONCE = /^[A-Za-z0-9_-]{1,128}$/;
30
+ /** How long an entry whose expiry cannot be read is kept: far beyond any sane TTL. */
31
+ const UNREADABLE_KEEP_MS = 24 * 3600_000;
32
+ function code(err) {
33
+ return err?.code;
34
+ }
35
+ /**
36
+ * A spent-token store backed by `dir` (created 0700 on the first spend). Share
37
+ * one directory between every process that verifies tokens under the same key.
38
+ */
39
+ export function createFileSpentTokenStore(dir) {
40
+ const fail = (what, err) => {
41
+ throw new Error(`confirm token: the spent-token store at ${dir} could not be ${what} (${code(err) ?? String(err)}); `
42
+ + 'refusing rather than risking a second use of an approval.');
43
+ };
44
+ const entry = (nonce) => {
45
+ if (!NONCE.test(nonce))
46
+ throw new TypeError(`confirm token: ${JSON.stringify(nonce)} is not a nonce.`);
47
+ return join(dir, nonce);
48
+ };
49
+ const names = () => {
50
+ try {
51
+ return readdirSync(dir).filter((n) => NONCE.test(n));
52
+ }
53
+ catch (err) {
54
+ if (code(err) === 'ENOENT')
55
+ return [];
56
+ throw err;
57
+ }
58
+ };
59
+ const claim = (nonce, expiresAtMs) => {
60
+ const path = entry(nonce);
61
+ try {
62
+ mkdirSync(dir, { recursive: true, mode: 0o700 });
63
+ writeFileSync(path, String(expiresAtMs), { flag: 'wx', mode: 0o600 });
64
+ return true;
65
+ }
66
+ catch (err) {
67
+ if (code(err) === 'EEXIST')
68
+ return false;
69
+ return fail('written', err);
70
+ }
71
+ };
72
+ return {
73
+ has(nonce) {
74
+ const path = entry(nonce);
75
+ try {
76
+ statSync(path);
77
+ return true;
78
+ }
79
+ catch (err) {
80
+ if (code(err) === 'ENOENT')
81
+ return false;
82
+ return fail('read', err);
83
+ }
84
+ },
85
+ add(nonce, expiresAtMs) {
86
+ claim(nonce, expiresAtMs);
87
+ },
88
+ claim,
89
+ prune(now) {
90
+ try {
91
+ for (const name of names()) {
92
+ const path = join(dir, name);
93
+ try {
94
+ const raw = readFileSync(path, 'utf8').trim();
95
+ const exp = /^\d+$/.test(raw) ? Number(raw) : Number.NaN;
96
+ const expired = Number.isFinite(exp) ? exp < now : statSync(path).mtimeMs < now - UNREADABLE_KEEP_MS;
97
+ if (expired)
98
+ unlinkSync(path);
99
+ }
100
+ catch {
101
+ // One entry we cannot judge or remove stays; the next prune retries.
102
+ }
103
+ }
104
+ }
105
+ catch {
106
+ // Housekeeping only: `has` and `claim` are what refuse.
107
+ }
108
+ },
109
+ clear() {
110
+ for (const name of names())
111
+ rmSync(join(dir, name), { force: true });
112
+ },
113
+ get size() {
114
+ return names().length;
115
+ },
116
+ };
117
+ }
118
+ //# sourceMappingURL=confirm-spent-file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirm-spent-file.js","sourceRoot":"","sources":["../../src/server/confirm-spent-file.ts"],"names":[],"mappings":"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"}
@@ -31,12 +31,22 @@ export type ConfirmTokenVerdict = {
31
31
  };
32
32
  /**
33
33
  * Tokens already used, keyed by nonce until they would have expired anyway.
34
- * In memory: with a key shared across processes, a restart or a second instance
35
- * would accept a spent token again until it expires.
34
+ * {@link createSpentTokenStore} is in memory: with a key shared across
35
+ * processes, a restart or a second instance would accept a spent token again
36
+ * until it expires. `createFileSpentTokenStore` keeps them on disk.
37
+ *
38
+ * A store that cannot answer must THROW, never answer "not spent": the throw
39
+ * propagates out of the gate and the action does not run.
36
40
  */
37
41
  export interface SpentTokenStore {
38
42
  has(nonce: string): boolean;
39
43
  add(nonce: string, expiresAtMs: number): void;
44
+ /**
45
+ * Record the spend only if nothing has yet — atomically, where `has` then
46
+ * `add` is a race between two processes sharing the store. `true` means this
47
+ * caller spent it. Optional: without it, verification falls back to `add`.
48
+ */
49
+ claim?(nonce: string, expiresAtMs: number): boolean;
40
50
  /** Drop entries that expired before `now`. */
41
51
  prune(now: number): void;
42
52
  clear(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"confirm-token.d.ts","sourceRoot":"","sources":["../../src/server/confirm-token.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"confirm-token.d.ts","sourceRoot":"","sources":["../../src/server/confirm-token.ts"],"names":[],"mappings":"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"}
@@ -141,7 +141,14 @@ export function verifyConfirmToken(key, token, binding, options = {}) {
141
141
  return { ok: false, error: 'DRAFT_CHANGED', reason: 'revision-changed' };
142
142
  if (claims.h !== binding.payloadHash)
143
143
  return { ok: false, error: 'DRAFT_CHANGED', reason: 'payload-changed' };
144
- spent.add(claims.n, claims.exp);
144
+ if (spent.claim) {
145
+ // Lost the race to another process sharing the store since `has` above.
146
+ if (!spent.claim(claims.n, claims.exp))
147
+ return { ok: false, error: 'TOKEN_REUSED' };
148
+ }
149
+ else {
150
+ spent.add(claims.n, claims.exp);
151
+ }
145
152
  return { ok: true };
146
153
  }
147
154
  /** The phase-1 instruction a tool returns unless it supplies its own. */
@@ -1 +1 @@
1
- {"version":3,"file":"confirm-token.js","sourceRoot":"","sources":["../../src/server/confirm-token.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"confirm-token.js","sourceRoot":"","sources":["../../src/server/confirm-token.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAmC,MAAM,mBAAmB,CAAC;AAoDzF,iDAAiD;AACjD,MAAM,UAAU,qBAAqB;IACnC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,OAAO;QACL,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;QAChC,GAAG,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAC/C,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,GAAG,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,KAAK;YAAE,IAAI,GAAG,GAAG,GAAG;gBAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzF,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE;QAC1B,IAAI,IAAI,KAAK,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;KAClC,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,0EAA0E;AAC1E,MAAM,aAAa,GAAG,qBAAqB,EAAE,CAAC;AAE9C,MAAM,MAAM,GAAG,gBAAgB,CAAC;AAChC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAIhC,SAAS,QAAQ,CAAC,GAAwB;IACxC,MAAM,KAAK,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpF,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE;QAAE,MAAM,IAAI,UAAU,CAAC,+CAA+C,CAAC,CAAC;IAC7F,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,KAAK,CAAC,UAA8B;IAC3C,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,mBAAmB,CAAC;IACzD,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,UAAU,CAAC,mEAAmE,CAAC,CAAC;IAC5F,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,IAAI,CAAC,GAAW,EAAE,IAAY;IACrC,OAAO,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AACvE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACjF,CAAC;AAQD,0CAA0C;AAC1C,MAAM,UAAU,iBAAiB,CAC/B,GAAwB,EACxB,OAA4B,EAC5B,OAAO,GAAgD,EAAE;IAEzD,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IACxB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IACtC,MAAM,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IACnD,MAAM,MAAM,GAAW;QACrB,CAAC,EAAE,OAAO,CAAC,IAAI;QACf,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;QAChE,CAAC,EAAE,OAAO,CAAC,MAAM;QACjB,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;QAClE,CAAC,EAAE,OAAO,CAAC,WAAW;QACtB,GAAG;QACH,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;KACzC,CAAC;IACF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC/E,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;AACtH,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAW,CAAC;QACrF,OAAO,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,GAAwB,EACxB,KAAa,EACb,OAA4B,EAC5B,OAAO,GAAoD,EAAE;IAE7D,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IACxB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IACtC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC;IAC7C,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEjB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;IAC5E,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;IAC7H,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;IAE1D,IAAI,MAAM,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;QAC7F,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;IAC/C,CAAC;IACD,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IACrE,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;IACnE,IAAI,MAAM,CAAC,CAAC,KAAK,OAAO,CAAC,QAAQ;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC5G,IAAI,MAAM,CAAC,CAAC,KAAK,OAAO,CAAC,WAAW;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAE9G,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,wEAAwE;QACxE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;IACtF,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,yEAAyE;AACzE,MAAM,CAAC,MAAM,yBAAyB,GACpC,iGAAiG;MAC/F,oCAAoC,CAAC;AAEzC,gEAAgE;AAChE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAC7D,kHAAkH;MAChH,8GAA8G;MAC9G,8GAA8G;MAC9G,+DAA+D,CAClE,CAAC;AAgDF,MAAM,gBAAgB,GAAgE;IACpF,aAAa,EAAE,qGAAqG;UAChH,gDAAgD;IACpD,YAAY,EAAE,sGAAsG;UAChH,qGAAqG;IACzG,aAAa,EAAE,sGAAsG;UACjH,mHAAmH;CACxH,CAAC;AAEF,MAAM,YAAY,GAAuC;IACvD,kBAAkB,EAAE,6FAA6F;UAC7G,sDAAsD;IAC1D,iBAAiB,EAAE,0FAA0F;CAC9G,CAAC;AAEF,SAAS,YAAY,CAAC,KAAsC;IAC1D,OAAO,KAAK,CAAC,OAAO,CAAE,KAAwB,CAAC,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,SAAS,CAAC,IAA6B;IAC9C,OAAO,EAAE,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,uBAAuB,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC7H,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,MAAc,EAAE,EAAwB;IACvE,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC;IACnC,IAAI,YAAY,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAC1C,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAClC,4EAA4E;QAC5E,uEAAuE;QACvE,MAAM,IAAI,SAAS,CACjB,kBAAkB,EAAE,CAAC,IAAI,iFAAiF;cACxG,2DAA2D,CAC9D,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAwB;QACnC,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,GAAG,CAAC,EAAE,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC;QAC5D,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzE,WAAW,EAAE,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC;KACjD,CAAC;IACF,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC;QAC/F,OAAO;YACL,MAAM;YACN,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,YAAY,EAAE,KAAK;YACnB,SAAS;YACT,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC;YAChC,WAAW,EAAE,EAAE,CAAC,WAAW,IAAI,yBAAyB;SACzD,CAAC;IACJ,CAAC,CAAC;IACF,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;QACrB,OAAO,UAAU,CAAC,EAAE,MAAM,EAAE,uBAAuB,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC7G,CAAC;IACD,MAAM,OAAO,GAAG,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1F,IAAI,OAAO,CAAC,EAAE;QAAE,OAAO,SAAS,CAAC;IACjC,IAAI,OAAO,CAAC,KAAK,KAAK,eAAe,EAAE,CAAC;QACtC,OAAO,SAAS,CAAC;YACf,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,0DAA0D;YAC/F,GAAG,QAAQ,EAAE;SACd,CAAC,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC5F,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,GAAkB,EAClB,OAA+C;IAE/C,MAAM,EAAE,aAAa,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC;IACnD,IAAI,aAAa,IAAI,4BAA4B,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;QACjE,OAAO,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,mBAAmB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;AAChD,CAAC"}
@@ -4,6 +4,7 @@ import type { Transport } from '@modelcontextprotocol/server';
4
4
  export * from './confirmation.js';
5
5
  export * from './confirm-token.js';
6
6
  export * from './confirm-env.js';
7
+ export * from './confirm-spent-file.js';
7
8
  /**
8
9
  * The handle {@link runMcp} returns — re-exported so a caller can name the
9
10
  * type without importing the SDK's `/stdio` subpath itself.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,7 @@ import { errorResult } from '../response/index.js';
40
40
  export * from './confirmation.js';
41
41
  export * from './confirm-token.js';
42
42
  export * from './confirm-env.js';
43
+ export * from './confirm-spent-file.js';
43
44
  import { withCallSignal } from '../cancel/index.js';
44
45
  import { withCallerCapabilities } from '../caller/index.js';
45
46
  /** Protocol revisions supported by servers and the shared test harness. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAEhE,OAAO,EAAE,SAAS,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAEtF,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAsB5D,2EAA2E;AAC3E,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAC;IACpD,YAAY;IACZ,GAAG,2BAA2B;CAC/B,CAAC,CAAC;AAoCH;;;;;;;GAOG;AACH,SAAS,mBAAmB,CAAC,GAAY;IACvC,IAAI,GAAG,YAAY,YAAY,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QAC5C,OAAO,WAAW,CAAC,GAAG,GAAG,CAAC,OAAO,aAAa,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,GAAG,CAAC;AACZ,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,cAAc,CAAC,IAAwB;IAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAC9D,MAAM,GAAG,GAAI,GAA4B,CAAC,MAAM,CAAC;IACjD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAC9D,0EAA0E;IAC1E,yEAAyE;IACzE,OAAO,OAAQ,GAA4B,CAAC,MAAM,KAAK,UAAU;QAC/D,CAAC,CAAE,GAA4C;QAC/C,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,cAAc,CAAC,IAAwB;IAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAC9D,MAAM,GAAG,GAAI,GAA4B,CAAC,MAAM,CAAC;IACjD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAC9D,MAAM,MAAM,GAAI,GAA4B,CAAC,MAAM,CAAC;IACpD,OAAO,MAAM,YAAY,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5D,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,wBAAwB,CAAC,MAAiB;IACjD,MAAM,KAAK,GAAI,MAA0C,CAAC,MAAM,CAAC;IACjE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAClE,MAAM,IAAI,GAAI,KAA6C,CAAC,qBAAqB,CAAC;IAClF,IAAI,OAAO,IAAI,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IACjD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAI,IAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrD,OAAO,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI;YACtD,CAAC,CAAE,QAA+B;YAClC,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAiB;IAChD,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAEpC,CAAC;IAEb,6EAA6E;IAC7E,uEAAuE;IACvE,kEAAkE;IACjE,MAA+C,CAAC,YAAY,GAAG,CAC9D,IAAa,EACb,MAAe,EACf,EAAoE,EAC3D,EAAE,CACX,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE;IAC5C,gEAAgE;IAChE,qEAAqE;IACrE,mEAAmE;IACnE,mEAAmE;IACnE,oEAAoE;IACpE,mEAAmE;IACnE,gEAAgE;IAChE,2CAA2C;IAC3C,EAAE;IACF,iEAAiE;IACjE,mEAAmE;IACnE,8DAA8D;IAC9D,cAAc,CACZ,cAAc,CAAC,IAAI,CAAC,EACpB,GAAG,EAAE;IACH,kEAAkE;IAClE,mEAAmE;IACnE,oEAAoE;IACpE,oEAAoE;IACpE,qEAAqE;IACrE,iEAAiE;IACjE,mCAAmC;IACnC,sBAAsB,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE;QAC5D,IAAI,MAAgD,CAAC;QACrD,IAAI,CAAC;YACH,MAAM,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,MAAM,YAAY,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAChF,CAAC,CAAC,EACJ,cAAc,CAAC,IAAI,CAAC,CACrB,CACF,CAAC;AACN,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAmC;IAEnC,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAC1C,EAAE,yBAAyB,EAAE,CAAC,GAAG,wBAAwB,CAAC,EAAE,CAC7D,CAAC;IAEF,qEAAqE;IACrE,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK;QAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAE1D,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,wEAAwE;QACxE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,6EAA6E;IAC7E,2EAA2E;IAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,IAAa,CAAC;IAChC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAClC,MAAM,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAgED,kDAAkD;AAClD,MAAM,2BAA2B,GAAG,IAAI,CAAC;AACzC,kFAAkF;AAClF,MAAM,8BAA8B,GAAG,GAAG,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAiB,EACjB,IAAI,GAA4B,EAAE;IAElC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;IACrC,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;QAC7F,MAAM,IAAI,UAAU,CAAC,yEAAyE,CAAC,CAAC;IAClG,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,2BAA2B,CAAC;IAChE,IACE,IAAI,CAAC,mBAAmB,KAAK,SAAS;QACtC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC,EAC7E,CAAC;QACD,MAAM,IAAI,UAAU,CAAC,yEAAyE,CAAC,CAAC;IAClG,CAAC;IACD,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,IAAI,8BAA8B,CAAC;IACjF,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,MAAM,QAAQ,GAAG,GAAS,EAAE;QAC1B,IAAI,MAAM;YAAE,OAAO;QACnB,MAAM,GAAG,IAAI,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,MAAsB,EAAQ,EAAE;QAC/C,IAAI,YAAY,EAAE,CAAC;YACjB,kEAAkE;YAClE,IAAI,MAAM,KAAK,WAAW;gBAAE,OAAO;YACnC,uEAAuE;YACvE,wEAAwE;YACxE,0CAA0C;YAC1C,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,GAAG,aAAa;gBAAE,OAAO;YACvD,iDAAiD;YACjD,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,MAAM,gCAAgC,CAAC,CAAC;gBAC5E,QAAQ,EAAE,CAAC;YACb,CAAC;YACD,OAAO;QACT,CAAC;QACD,YAAY,GAAG,IAAI,CAAC;QACpB,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,KAAgD,CAAC;QACrD,IAAI,UAAU,EAAE,CAAC;YACf,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBACtB,OAAO,CAAC,KAAK,CAAC,oCAAoC,MAAM,sBAAsB,SAAS,cAAc,CAAC,CAAC;gBACvG,QAAQ,EAAE,CAAC;YACb,CAAC,EAAE,SAAS,CAAC,CAAC;YACd,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAClB,CAAC;QACD,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,IAAI,CAAC;gBACH,IAAI,IAAI,CAAC,QAAQ;oBAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC/C,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACvB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CACX,iDAAiD,MAAM,KACrD,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,EAAE,CACH,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,IAAI,KAAK,KAAK,SAAS;oBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC7C,IAAI,UAAU;oBAAE,QAAQ,EAAE,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAChD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,0EAA0E;QAC1E,4DAA4D;QAC5D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAiDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,MAAM,CAAkB,IAA0B;IAChE,2EAA2E;IAC3E,0DAA0D;IAC1D,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,wEAAwE;QACxE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,IAAI,GAAkB,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC;IAEtD,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;QAC/E,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,OAAO;QAC9B,OAAO,EACL,IAAI,CAAC,OAAO;YACZ,CAAC,CAAC,KAAY,EAAE,EAAE;gBAChB,uEAAuE;gBACvE,kEAAkE;gBAClE,kEAAkE;gBAClE,qEAAqE;gBACrE,gEAAgE;gBAChE,oEAAoE;gBACpE,+DAA+D;gBAC/D,OAAO,CAAC,KAAK,CAAC,mCAAmC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACnF,CAAC,CAAC;QACJ,wEAAwE;QACxE,0EAA0E;QAC1E,qEAAqE;QACrE,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;KACjD,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC;IACvC,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QACvB,oEAAoE;QACpE,+DAA+D;QAC/D,MAAM,YAAY,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,oBAAoB,CAAC,MAAM,EAAE,EAAE,GAAG,YAAY,EAAE,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chrischall/mcp-utils",
3
- "version": "2.10.0",
3
+ "version": "2.11.0",
4
4
  "description": "Shared scaffolding for the chrischall MCP fleet — server bootstrap, tool-result formatting, helpful errors, hardened env/config, a bearer API-client kit, zod atoms, session registries, a fetchproxy transport adapter, auth resolver skeletons, an in-memory test harness, and opt-in HTML helpers. The generic MCP glue hoisted out of ~19 sibling servers.",
5
5
  "type": "module",
6
6
  "license": "MIT",