@cyanheads/mcp-ts-core 0.13.13 → 0.13.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/AGENTS.md +4 -4
  2. package/CLAUDE.md +4 -4
  3. package/README.md +1 -1
  4. package/changelog/0.13.x/0.13.14.md +68 -0
  5. package/dist/core/app.d.ts +4 -3
  6. package/dist/core/app.d.ts.map +1 -1
  7. package/dist/core/app.js.map +1 -1
  8. package/dist/mcp-server/prompts/prompt-registration.d.ts.map +1 -1
  9. package/dist/mcp-server/prompts/prompt-registration.js +12 -5
  10. package/dist/mcp-server/prompts/prompt-registration.js.map +1 -1
  11. package/dist/mcp-server/prompts/utils/promptDefinition.d.ts +4 -1
  12. package/dist/mcp-server/prompts/utils/promptDefinition.d.ts.map +1 -1
  13. package/dist/mcp-server/prompts/utils/promptDefinition.js.map +1 -1
  14. package/dist/mcp-server/tools/utils/inputPrevalidation.d.ts +309 -26
  15. package/dist/mcp-server/tools/utils/inputPrevalidation.d.ts.map +1 -1
  16. package/dist/mcp-server/tools/utils/inputPrevalidation.js +870 -106
  17. package/dist/mcp-server/tools/utils/inputPrevalidation.js.map +1 -1
  18. package/dist/mcp-server/tools/utils/schemaShape.d.ts +127 -5
  19. package/dist/mcp-server/tools/utils/schemaShape.d.ts.map +1 -1
  20. package/dist/mcp-server/tools/utils/schemaShape.js +432 -4
  21. package/dist/mcp-server/tools/utils/schemaShape.js.map +1 -1
  22. package/dist/mcp-server/tools/utils/toolDefinition.d.ts +7 -3
  23. package/dist/mcp-server/tools/utils/toolDefinition.d.ts.map +1 -1
  24. package/dist/mcp-server/tools/utils/toolDefinition.js.map +1 -1
  25. package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts +47 -23
  26. package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts.map +1 -1
  27. package/dist/mcp-server/tools/utils/toolHandlerFactory.js +777 -236
  28. package/dist/mcp-server/tools/utils/toolHandlerFactory.js.map +1 -1
  29. package/dist/utils/telemetry/attributes.d.ts +3 -2
  30. package/dist/utils/telemetry/attributes.d.ts.map +1 -1
  31. package/dist/utils/telemetry/attributes.js +3 -2
  32. package/dist/utils/telemetry/attributes.js.map +1 -1
  33. package/framework-skills/add-tool/SKILL.md +15 -7
  34. package/framework-skills/api-errors/SKILL.md +8 -8
  35. package/framework-skills/api-telemetry/SKILL.md +4 -4
  36. package/framework-skills/api-testing/SKILL.md +2 -2
  37. package/framework-skills/design-mcp-server/SKILL.md +3 -2
  38. package/framework-skills/field-test/SKILL.md +3 -2
  39. package/package.json +3 -3
@@ -1,9 +1,19 @@
1
1
  /**
2
2
  * @fileoverview Runtime shape checks for the Zod roots a tool definition may
3
- * declare. Zod 4 tags every schema with `_zod.def.type`, and a discriminated
4
- * union tags as `'union'` like any other — the discriminator on its `def` is
5
- * what separates the two. Kept in one place so the definition builder, the
6
- * server manifest, and the linter agree on what a union root is.
3
+ * declare, and the walk from a root down an argument path to the object that
4
+ * path sits in, the field it names, or the value that field received. Zod 4
5
+ * tags every schema with `_zod.def.type`, and a discriminated union tags as
6
+ * `'union'` like any other — the discriminator on its `def` is what separates
7
+ * the two. Kept in one place so the definition builder, the server manifest,
8
+ * the linter, the argument-rejection hint, and the argument repair agree on
9
+ * what a union root is and which schema and value a path names.
10
+ *
11
+ * An argument path names the value a schema received, which is not always one
12
+ * the caller sent: below a `z.preprocess()` or a `.transform().pipe()`, Zod's
13
+ * issue paths run through the transform's output (`items.0` for a lone object
14
+ * the transform wrapped in a list). The walk re-applies such a transform
15
+ * in-process and continues in the pipe's output schema, so every reader of a
16
+ * path reads the value Zod reported on (#599).
7
17
  * @module src/mcp-server/tools/utils/schemaShape
8
18
  */
9
19
  /** Reads `_zod.def` from any value; `undefined` when it is not a Zod 4 schema. */
@@ -42,4 +52,422 @@ export function inputVariants(schema) {
42
52
  }
43
53
  return isZodObjectSchema(schema) ? [schema] : [];
44
54
  }
55
+ /** The caller's value one step down, or `undefined` when nothing owns one there. */
56
+ export function stepInto(value, step) {
57
+ return value !== null && typeof value === 'object' && Object.hasOwn(value, step)
58
+ ? value[step]
59
+ : undefined;
60
+ }
61
+ /**
62
+ * The `z.object()` an argument path sits in, found by walking the path down
63
+ * from `schema` beside the caller's own `value` — or `undefined` when the path
64
+ * does not land on exactly one object (#566).
65
+ *
66
+ * Wrappers (`optional`, `nullable`, `default`, …), `pipe`, and `z.lazy()` are
67
+ * looked through. A pipe whose input side transforms — `z.preprocess()`, or
68
+ * `.transform()` followed by `.pipe()` — is walked through its output schema,
69
+ * beside what the transform makes of the value (#599). A numeric step enters
70
+ * an array element or tuple item; a string step, a property, a record value,
71
+ * or the value of a key an author's `.catchall()` types.
72
+ * A discriminated union follows the variant the argument's own discriminator
73
+ * selects, as Zod did. A plain union follows the one option under which the
74
+ * rest of the path still lands on an object, an option whose single-valued
75
+ * literal field refuses the argument's value there left out unless every
76
+ * object option does ({@link unionCandidates}). Anything else, an
77
+ * intersection or a union two options satisfy (one declaring the key, another
78
+ * declaring or catching it), resolves to nothing.
79
+ */
80
+ export function objectSchemaAt(schema, path, value, transforms = new Map()) {
81
+ return walkTo(schema, path, 0, value, transforms, (node) => isZodObjectSchema(node) ? node : undefined);
82
+ }
83
+ /**
84
+ * Whether any schema an argument path can land on routes its value through a
85
+ * transform ({@link routesThroughPipe}). Descends as {@link objectSchemaAt}
86
+ * does, and a key no `z.object()` declares lands on the author's `.catchall()`
87
+ * schema when one types it, so a pipe there counts as a declared field's
88
+ * would; under `.strict()` or `.passthrough()` it lands on nothing. Where the
89
+ * path resolves under several options of a plain union (one option declaring
90
+ * the key and another declaring or catching it) or under both sides of an
91
+ * intersection, every one is asked — and where a plain union's literal tags
92
+ * refuse every object option, every option ({@link unionCandidates}). The
93
+ * walk cannot tell which of them the parse read the value with, so a second
94
+ * reading of the path never hides a transform.
95
+ */
96
+ export function routesThroughPipeAt(schema, path, value, transforms = new Map()) {
97
+ const piped = (node) => routesThroughPipe(node) || undefined;
98
+ return walkTo(schema, path, 0, value, transforms, piped, 'any') === true;
99
+ }
100
+ /**
101
+ * The value an argument path names, walked down from `schema` beside the
102
+ * caller's `value` (#599). Descends as {@link objectSchemaAt} does — through a
103
+ * transforming pipe's output with the transform re-applied, an author catchall's
104
+ * value included — and where the schema no longer says what the path names (a
105
+ * key no object declares or types, an intersection, a union no single option
106
+ * resolves), it reads on in the value alone, as Zod's own issue paths do.
107
+ *
108
+ * A transform whose input side rejects the value is walked through that input
109
+ * side instead: the issue below it is the input side's own, about the value as
110
+ * sent. One that throws when re-applied leaves the path unknown. A pipe the
111
+ * path ends on is not run when the value is absent there — the caller left it
112
+ * out, whatever the transform would have made of that.
113
+ */
114
+ export function argumentAt(schema, path, value, transforms = new Map()) {
115
+ // Only a walk trying one union option comes back unresolved; this one reads on in the value.
116
+ const walks = new Map();
117
+ const at = walkArgument(schema, path, 0, value, undefined, false, transforms, walks);
118
+ const sent = at.transformed || at.sites.length === 0
119
+ ? at.value
120
+ : path.reduce((current, step) => stepInto(current, step), value);
121
+ return { ...at, sent };
122
+ }
123
+ /** The sites of a {@link SiteList}, outermost first. */
124
+ function siteArray(list) {
125
+ const sites = [];
126
+ for (let entry = list; entry; entry = entry.outer)
127
+ sites.push(entry.site);
128
+ return sites.reverse();
129
+ }
130
+ /**
131
+ * {@link argumentAt} from step `start` of `path`, below the transforms
132
+ * `sites` names. `strict` is set while trying one option of a union: the walk
133
+ * then comes back `undefined` wherever {@link walkTo} would — a step the
134
+ * schema does not declare, a union no single option resolves, a transform that
135
+ * throws above the path's end — and at a step taken from a value that is no
136
+ * object or array, which that option cannot have parsed below, instead of
137
+ * reading on in the value alone. A string beside a list option and an option
138
+ * that splits it then resolves to the option that split it.
139
+ *
140
+ * At a union, each option is walked to the end of the path once, and the one
141
+ * that resolves is the result. Picking the option with a walk to the end and
142
+ * then walking the rest again would cost the square of the depth on a
143
+ * recursive schema with a union at every level, and `walks` keeps what each
144
+ * union resolved, so options that walk on into the same union below read it
145
+ * once ({@link walkedAt}).
146
+ */
147
+ function walkArgument(schema, path, start, value, sites, strict, transforms, walks) {
148
+ let node = schema;
149
+ let current = value;
150
+ let passed = sites;
151
+ for (let index = start;; index++) {
152
+ const atPath = current;
153
+ let transformed = false;
154
+ for (let def = zodDef(node); def; def = zodDef(node)) {
155
+ if (def.type === 'lazy') {
156
+ node = lazyInner(node);
157
+ }
158
+ else if (def.type === 'pipe') {
159
+ if (!transformsIn(def.in) || (index === path.length && current === undefined)) {
160
+ node = def.in;
161
+ continue;
162
+ }
163
+ const applied = transformedBy(def.in, current, transforms);
164
+ if (applied.kind === 'threw') {
165
+ if (strict && index < path.length)
166
+ return undefined;
167
+ return {
168
+ known: false,
169
+ received: undefined,
170
+ sites: siteArray(passed),
171
+ transformed: false,
172
+ value: undefined,
173
+ };
174
+ }
175
+ if (applied.kind === 'rejected') {
176
+ node = def.in;
177
+ continue;
178
+ }
179
+ if (index < path.length) {
180
+ const site = { depth: index, output: applied.output, transform: def.in };
181
+ passed = { outer: passed, site };
182
+ }
183
+ transformed = true;
184
+ current = applied.output;
185
+ node = def.out;
186
+ }
187
+ else if (def.innerType !== undefined) {
188
+ node = def.innerType;
189
+ }
190
+ else if (def.type === 'union' && index < path.length) {
191
+ const through = unionThrough(def, path, index, current, passed, transforms, walks);
192
+ if (through !== undefined || strict)
193
+ return through;
194
+ node = undefined;
195
+ }
196
+ else {
197
+ break;
198
+ }
199
+ }
200
+ if (index === path.length) {
201
+ return {
202
+ known: true,
203
+ received: current,
204
+ sites: siteArray(passed),
205
+ transformed,
206
+ value: atPath,
207
+ };
208
+ }
209
+ const step = path[index];
210
+ node = childAt(zodDef(node), step);
211
+ if (strict && (zodDef(node) === undefined || current === null || typeof current !== 'object')) {
212
+ return undefined;
213
+ }
214
+ current = stepInto(current, step);
215
+ }
216
+ }
217
+ /**
218
+ * Whether a field routes its value through a transform before the type the
219
+ * field reports — a `.transform()`, `.pipe()`, or `z.preprocess()` on the field
220
+ * itself, behind any wrapper or `z.lazy()`, or on one option of a union. Such a
221
+ * field's rejection can describe the transform's output rather than the value
222
+ * the caller sent. A pipe inside an array element or an object property is the
223
+ * element's or property's own, not the field's.
224
+ */
225
+ export function routesThroughPipe(schema) {
226
+ const seen = new Set();
227
+ const piped = (node) => {
228
+ const def = zodDef(node);
229
+ if (!def || seen.has(node))
230
+ return false;
231
+ seen.add(node);
232
+ if (def.type === 'pipe')
233
+ return true;
234
+ if (def.type === 'lazy')
235
+ return piped(lazyInner(node));
236
+ if (def.innerType !== undefined)
237
+ return piped(def.innerType);
238
+ return def.type === 'union' && (def.options ?? []).some(piped);
239
+ };
240
+ return piped(schema);
241
+ }
242
+ /**
243
+ * A `z.lazy()` schema's inner type. Zod resolves the getter once and caches
244
+ * the result, so a walk reads the same schema the parse validated with instead
245
+ * of building a new one per step, which on a recursive schema would cost a
246
+ * schema per level per path.
247
+ */
248
+ function lazyInner(schema) {
249
+ return schema._zod.innerType;
250
+ }
251
+ /**
252
+ * The walk behind {@link objectSchemaAt} and {@link routesThroughPipeAt}: from
253
+ * `schema`, beside the caller's `value`, down `path` from `index`. `found`
254
+ * decides the node the path ends at — it is offered each node there, outermost
255
+ * first, and the walk looks through a wrapper, a `pipe`, or a `z.lazy()` only
256
+ * while `found` declines. Indexing the path rather than slicing it keeps a walk
257
+ * linear in its depth.
258
+ *
259
+ * `readings` decides a path several schemas resolve. Under `'one'` a plain
260
+ * union resolves only when one of its {@link unionCandidates} does, and an
261
+ * intersection never does. Under `'any'` the first candidate or side `found`
262
+ * accepts is returned. Either way each union and intersection is walked once
263
+ * per step and value, through `walks` ({@link walkedAt}).
264
+ */
265
+ function walkTo(schema, path, index, value, transforms, found, readings = 'one', walks = new Map()) {
266
+ const def = zodDef(schema);
267
+ if (!def)
268
+ return undefined;
269
+ if (index === path.length) {
270
+ const node = found(schema);
271
+ if (node !== undefined)
272
+ return node;
273
+ }
274
+ const on = (next, nextIndex, nextValue) => walkTo(next, path, nextIndex, nextValue, transforms, found, readings, walks);
275
+ if (def.type === 'lazy')
276
+ return on(lazyInner(schema), index, value);
277
+ if (def.type === 'pipe') {
278
+ if (!transformsIn(def.in))
279
+ return on(def.in, index, value);
280
+ const applied = transformedBy(def.in, value, transforms);
281
+ if (applied.kind === 'threw')
282
+ return undefined;
283
+ return applied.kind === 'output'
284
+ ? on(def.out, index, applied.output)
285
+ : on(def.in, index, value);
286
+ }
287
+ if (def.innerType !== undefined)
288
+ return on(def.innerType, index, value);
289
+ if (def.type === 'union' || (def.type === 'intersection' && readings === 'any')) {
290
+ const walked = walkedAt(walks, [def, index]);
291
+ if (walked.has(value))
292
+ return walked.get(value);
293
+ let result;
294
+ if (def.type === 'union') {
295
+ const resolved = [];
296
+ for (const option of unionCandidates(def, value)) {
297
+ const node = on(option, index, value);
298
+ if (node !== undefined)
299
+ resolved.push(node);
300
+ }
301
+ result =
302
+ resolved.length === 1 || (readings === 'any' && resolved.length > 0)
303
+ ? resolved[0]
304
+ : undefined;
305
+ }
306
+ else {
307
+ result = on(def.left, index, value) ?? on(def.right, index, value);
308
+ }
309
+ walked.set(value, result);
310
+ return result;
311
+ }
312
+ if (index === path.length)
313
+ return undefined;
314
+ const step = path[index];
315
+ return on(childAt(def, step), index + 1, stepInto(value, step));
316
+ }
317
+ /**
318
+ * The schema one path step enters from a container, or `undefined` when it
319
+ * declares none there. A key an object leaves undeclared enters its author's
320
+ * `.catchall()`, the schema Zod parses that key's value with.
321
+ */
322
+ function childAt(def, step) {
323
+ switch (def?.type) {
324
+ case 'object':
325
+ if (typeof step !== 'string')
326
+ return undefined;
327
+ return def.shape && Object.hasOwn(def.shape, step) ? def.shape[step] : typedCatchall(def);
328
+ case 'record':
329
+ return def.valueType;
330
+ case 'array':
331
+ return typeof step === 'number' ? def.element : undefined;
332
+ case 'tuple':
333
+ return typeof step === 'number' ? (def.items?.[step] ?? def.rest) : undefined;
334
+ default:
335
+ return undefined;
336
+ }
337
+ }
338
+ /**
339
+ * An object's catchall when it types its undeclared keys' values. `.strict()`
340
+ * records a `never` catchall, whose keys fail as one `unrecognized_keys` issue
341
+ * on the object itself, and `.passthrough()` an `unknown` one, which no value
342
+ * fails — no issue sits below either, so neither is walked, and a plain
343
+ * union's option open in either way never competes with one declaring the
344
+ * key. A typed catchall does compete: a path one option declares and another
345
+ * catches resolves under both.
346
+ */
347
+ function typedCatchall(def) {
348
+ const type = zodDef(def.catchall)?.type;
349
+ return type === undefined || type === 'never' || type === 'unknown' || type === 'any'
350
+ ? undefined
351
+ : def.catchall;
352
+ }
353
+ /**
354
+ * The options of a union a walk may follow for `value`: the variant a
355
+ * discriminated union's own discriminator selects, as Zod did, or every option
356
+ * of a plain union but one whose single-valued literal field — a tag like
357
+ * `kind: z.literal('a')` — refuses the value there. Zod reports such an option
358
+ * as that literal's failure alone, which the rejection drops (#417), so the
359
+ * walk does not follow it either (#570).
360
+ *
361
+ * When the tags leave no object option, every option is followed. The branch
362
+ * a rejection kept can refuse its own tag too — `"c"` where no branch takes
363
+ * it, `"1"` for `z.literal(1)`, a one-value enum left out — and a walk that
364
+ * found no branch would read its values off the arguments alone: a value a
365
+ * `z.preprocess()` there wrapped in a list would read as absent, a `null`
366
+ * there would never read as an optional key, and the string-repair gate would
367
+ * miss a field that routes through a transform.
368
+ */
369
+ function unionCandidates(def, value) {
370
+ const options = def.options ?? [];
371
+ const { discriminator } = def;
372
+ if (typeof discriminator !== 'string') {
373
+ const tagged = options.filter((option) => !refusesTag(option, value));
374
+ return tagged.some(isZodObjectSchema) ? tagged : options;
375
+ }
376
+ const tag = stepInto(value, discriminator);
377
+ const selected = options.find((option) => {
378
+ const field = isZodObjectSchema(option) ? option.shape[discriminator] : undefined;
379
+ return field?.safeParse(tag).success === true;
380
+ });
381
+ return selected === undefined ? [] : [selected];
382
+ }
383
+ /** Whether an object option has a single-valued literal field that refuses `value`'s own field. */
384
+ function refusesTag(option, value) {
385
+ const shape = isZodObjectSchema(option) ? zodDef(option)?.shape : undefined;
386
+ if (!shape)
387
+ return false;
388
+ return Object.entries(shape).some(([key, field]) => {
389
+ const def = zodDef(field);
390
+ const singleValued = def?.type === 'literal'
391
+ ? def.values?.length === 1
392
+ : def?.type === 'enum' && Object.keys(def.entries ?? {}).length === 1;
393
+ return singleValued && !field.safeParse(stepInto(value, key)).success;
394
+ });
395
+ }
396
+ /**
397
+ * What {@link argumentAt} reads at the end of the path through the one union
398
+ * candidate the rest of the path resolves under, or `undefined` when none or
399
+ * several do.
400
+ */
401
+ function unionThrough(def, path, index, value, sites, transforms, walks) {
402
+ const walked = walkedAt(walks, [def, index, sites]);
403
+ if (walked.has(value))
404
+ return walked.get(value);
405
+ let only;
406
+ for (const option of unionCandidates(def, value)) {
407
+ const at = walkArgument(option, path, index, value, sites, true, transforms, walks);
408
+ if (at === undefined)
409
+ continue;
410
+ if (only !== undefined) {
411
+ only = undefined;
412
+ break;
413
+ }
414
+ only = at;
415
+ }
416
+ walked.set(value, only);
417
+ return only;
418
+ }
419
+ /**
420
+ * The map of `walks` that holds, by value, what the walk resolved at `keys`
421
+ * (#648) — created on first use. Looked up before a node is walked and
422
+ * written after, so a walk keeps the depth of call stack it had without it.
423
+ */
424
+ function walkedAt(walks, keys) {
425
+ let level = walks;
426
+ for (const key of keys) {
427
+ let next = level.get(key);
428
+ if (next === undefined) {
429
+ next = new Map();
430
+ level.set(key, next);
431
+ }
432
+ level = next;
433
+ }
434
+ return level;
435
+ }
436
+ /**
437
+ * Whether a pipe's input side transforms the value its output schema
438
+ * receives: `z.preprocess()`'s input side is the transform itself, and
439
+ * `.transform(f).pipe(B)`'s is a pipe ending in one. Any other pipe — `.pipe()`
440
+ * after a plain schema, or a bare `.transform()`, whose input side is the
441
+ * schema it transforms — is walked through its input side, whose issues name
442
+ * the value as sent.
443
+ */
444
+ function transformsIn(schema) {
445
+ const def = zodDef(schema);
446
+ return def?.type === 'transform' || (def?.type === 'pipe' && transformsIn(def.out));
447
+ }
448
+ /**
449
+ * A pipe's input side re-applied to `value`, once per value per
450
+ * {@link TransformCache}. The author's transform may throw — on a value only
451
+ * the walk feeds it, or on a second run — and that is recorded rather than
452
+ * thrown, so reading a rejection's paths never turns it into a crash.
453
+ */
454
+ function transformedBy(input, value, transforms) {
455
+ let byValue = transforms.get(input);
456
+ if (byValue === undefined) {
457
+ byValue = new Map();
458
+ transforms.set(input, byValue);
459
+ }
460
+ let applied = byValue.get(value);
461
+ if (applied === undefined) {
462
+ try {
463
+ const parsed = input.safeParse(value);
464
+ applied = parsed.success ? { kind: 'output', output: parsed.data } : { kind: 'rejected' };
465
+ }
466
+ catch {
467
+ applied = { kind: 'threw' };
468
+ }
469
+ byValue.set(value, applied);
470
+ }
471
+ return applied;
472
+ }
45
473
  //# sourceMappingURL=schemaShape.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemaShape.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/utils/schemaShape.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAwBH,kFAAkF;AAClF,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC1D,OAAQ,KAAqC,CAAC,IAAI,EAAE,GAAG,CAAC;AAC1D,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,KAAK,QAAQ,CAAC;AAC1C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAAc;IAEd,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,OAAO,GAAG,EAAE,IAAI,KAAK,OAAO,IAAI,OAAO,GAAG,CAAC,aAAa,KAAK,QAAQ,CAAC;AACxE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,MAAe;IAC3C,IAAI,0BAA0B,CAAC,MAAM,CAAC,EAAE,CAAC;QACvC,MAAM,OAAO,GAAI,MAAgC,CAAC,OAAO,CAAC;QAC1D,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAC3B,CAAC,CAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAA8B;YACjE,CAAC,CAAC,EAAE,CAAC;IACT,CAAC;IACD,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"schemaShape.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/utils/schemaShape.ts"],"names":[],"mappings":"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"}
@@ -236,9 +236,13 @@ export interface ToolDefinition<TInput extends ToolInputSchema = ZodObject<ZodRa
236
236
  * Aliases are not advertised — `inputSchema` is byte-identical with or
237
237
  * without them, so the canonical key keeps its place in `required` and the
238
238
  * model is still told to use it. A rewrite applies only when the target key
239
- * is absent; with both present the call fails as it does today. Case-style
240
- * variants of a declared key (`max_results` for `maxResults`) are rewritten
241
- * without any declaration — see `createApp({ input: { caseStyleAliases } })`.
239
+ * is absent; with both present the call is rejected, and its hint names the
240
+ * alias beside its target (`drug_name is an alias of drug; send one of them,
241
+ * not both.`) rather than calling it an unknown key. The exception is an
242
+ * `_`-prefixed alias the drop discards as a client-added key: the target's
243
+ * value then validates. Case-style variants of a declared key (`max_results`
244
+ * for `maxResults`) are rewritten without any declaration — see
245
+ * `createApp({ input: { caseStyleAliases } })`.
242
246
  *
243
247
  * Root level only, matching `.strict()` itself. `lint:mcp` rejects an alias
244
248
  * that shadows a declared key, names a target that does not exist, or is
@@ -1 +1 @@
1
- {"version":3,"file":"toolDefinition.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/utils/toolDefinition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toolDefinition.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/utils/toolDefinition.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"toolDefinition.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/utils/toolDefinition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toolDefinition.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/utils/toolDefinition.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * @module src/mcp-server/tools/utils/toolHandlerFactory
5
5
  */
6
6
  import type { CallToolResult, ContentBlock, InputRequiredResult, ServerContext } from '@modelcontextprotocol/server';
7
- import { type ZodError, type ZodObject, type ZodRawShape, z } from 'zod';
7
+ import { type ZodObject, type ZodRawShape, z } from 'zod';
8
8
  import type { Context } from '../../../core/context.js';
9
9
  import { type HandlerServices } from '../../handlerContext.js';
10
10
  import { type ClientCapabilityView } from '../../inputRequired.js';
@@ -53,17 +53,6 @@ export declare function renderToolContent(def: AnyToolDefinition, validatedOutpu
53
53
  * path's `structuredContent` surface.
54
54
  */
55
55
  export declare function buildToolErrorResult(code: JsonRpcErrorCode, message: string, data: Record<string, unknown> | undefined): CallToolResult;
56
- /**
57
- * Renders an argument-validation failure the way the MCP SDK renders its own,
58
- * so the readable diagnostic — the offending key or field, and why it failed —
59
- * is unchanged for clients that read `content[]` text. The framework owns this
60
- * rejection (see `deferInputValidation`) purely so it can also carry
61
- * `structuredContent.error`.
62
- *
63
- * `args` are the caller's raw arguments, read only through
64
- * {@link readArgumentAt}; see {@link renderIssueMessage} for what that decides.
65
- */
66
- export declare function formatInputValidationMessage(toolName: string, error: ZodError, args: unknown): string;
67
56
  /** What {@link parseToolArguments} needs beyond the definition and the arguments. */
68
57
  export interface ParseToolArgumentsOptions {
69
58
  /** Request context the pre-validation step's debug logs correlate to. */
@@ -80,25 +69,60 @@ export interface ParseToolArgumentsOptions {
80
69
  * synthesizes (#445). {@link buildToolErrorResult} mirrors that hint into
81
70
  * `content[]`, so it reaches format()-only clients with no extra work.
82
71
  *
72
+ * The rejection is bounded whatever the caller sends (#648), here at the
73
+ * throw, so every path through this function carries the bound: the message
74
+ * and the hint render the first 10 issue lines, each cut to 1,024 characters,
75
+ * and `data.issues` and `data.input` are {@link boundedProjection}s — the
76
+ * first 10 entries of every array and own keys of every object, the first
77
+ * 1,024 characters of every string and key, and {@link REJECTION_LEVELS} levels
78
+ * of nesting below each issue, the uncut count or length beside each cut — with
79
+ * `data.issues` keeping at most {@link REJECTION_ISSUES} issues in all through
80
+ * every union's branches. `data.issuesCount`, how many issues Zod raised at
81
+ * the top level, sits beside `data.issues` whenever it keeps fewer of them —
82
+ * past the first 10, or sooner when that budget runs out — as `errorsCount`
83
+ * sits beside a cut branch list. A rejection within those caps carries Zod's
84
+ * list and the report exactly. Its cost grows
85
+ * with the distinct issues Zod raised, not with how many branches list one:
86
+ * every reader of the issues walks a shared one once or stops at a bound.
87
+ *
83
88
  * An ordered pre-validation step wraps the parse. Before it,
84
89
  * {@link prevalidateToolArguments} drops client-added keys (#453) and rewrites
85
90
  * key aliases (#452); after a failure — and only then —
86
- * {@link repairRepresentations} undoes a stringified array or object or an
87
- * integer sent for a string, and the arguments are parsed once more (#234,
88
- * #479, #487), the repair kept only if the author's own schema now accepts it.
91
+ * {@link repairRepresentations} undoes a stringified array or object, an
92
+ * integer sent for a string, a string sent for a number or boolean, or a lone
93
+ * string sent for an array, and deletes `null` sent for an optional field, at
94
+ * the paths {@link renderedIssues} names — inside a union field's one surviving
95
+ * branch (#570), at a discriminator or literal tag no variant accepts (#714),
96
+ * and inside a `z.preprocess()` output (#599) included — and the
97
+ * arguments are parsed once more (#234, #479, #487, #707, #602, #616), the
98
+ * repair kept only if the author's own schema now accepts it. The repair
99
+ * 0.13.13 made, of Zod's own issues in the arguments as sent
100
+ * ({@link repairAsSent}), is parsed before it, so every call that repair
101
+ * validated keeps its value. Every path the
102
+ * repair, the message, and the hint read is walked through the input schema,
103
+ * a transform on the way re-applied once per value for the whole call.
89
104
  * When that attempt still fails and its drop discarded a key,
90
105
  * {@link prevalidateAliasFirst} reruns the stages alias-first and the same
91
106
  * parse-then-repair runs on the result, kept only if it validates (#563).
92
107
  * {@link recordPrevalidation} then counts and logs the attempt the handler
93
108
  * receives, so a call the first attempt validates is untouched by the retry.
94
- * When nothing validates, the *original* rejection of the last attempt is
95
- * thrown — the retry's when it ran, since there every key the drop discarded
96
- * reached its target and the issues name what is wrong with the value it
97
- * carried — built from the arguments that produced it, identical to the one
98
- * the same call gets under `input: { coerce: false }`. It carries the rewrites
99
- * and underscore-rule drops that attempt made as `data.input`, and as
100
- * sentences closing the hint (#468); a call with neither gains no
101
- * `data.input`.
109
+ * When nothing validates, the last attempt's rejection is thrown — the
110
+ * retry's when it ran, since there every key the drop discarded reached its
111
+ * target and the issues name what is wrong with the value it carried. It is a
112
+ * parse of that attempt's arguments with only the repairs that held applied
113
+ * (#706, {@link repairAttempt}), rendered from those same arguments: a value
114
+ * the schema accepted once repaired is not reported — one that held only
115
+ * written in place below a transform that reorders or rewrites it excepted —
116
+ * and one whose repair the schema refused is reported as sent, so a call no
117
+ * repair helped gets exactly
118
+ * the rejection it gets under `input: { coerce: false }` — as does one the
119
+ * held repairs alone would validate (only a union or a cross-field refinement
120
+ * allows that), held values included. It carries the rewrites and
121
+ * underscore-rule drops that attempt made as `data.input`, and as sentences
122
+ * closing the hint (#468); a call with neither gains no `data.input`, and
123
+ * nothing in it says a repair held. An alias that attempt
124
+ * declined because its target was already present is named in the hint as an
125
+ * alias of that target (#639), never as an unknown or a dropped key.
102
126
  *
103
127
  * The single argument-rejection path. {@link createToolHandler} and the
104
128
  * `runToolContract` test helper both route through it, so a test written to
@@ -1 +1 @@
1
- {"version":3,"file":"toolHandlerFactory.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/utils/toolHandlerFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toolHandlerFactory.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/utils/toolHandlerFactory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACd,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAiB,KAAK,SAAS,EAAE,KAAK,WAAW,EAAgB,CAAC,EAAE,MAAM,KAAK,CAAC;AAGvF,OAAO,KAAK,EAAE,OAAO,EAAmB,MAAM,mBAAmB,CAAC;AAElE,OAAO,EAEL,KAAK,eAAe,EAGrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAEL,KAAK,oBAAoB,EAG1B,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGrE,OAAO,EAIL,gBAAgB,EAEjB,MAAM,0BAA0B,CAAC;AAalC,OAAO,EACL,KAAK,cAAc,EAGpB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EAML,KAAK,oBAAoB,EAS1B,MAAM,yBAAyB,CAAC;AAQjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAM7D,oEAAoE;AACpE,YAAY,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,YAAY,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAUpE;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,iBAAiB,EACtB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxC,GAAG,EAAE,OAAO,GACX,YAAY,EAAE,CAahB;AA8CD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACxC,cAAc,CAkBhB;AAm5BD,qFAAqF;AACrF,MAAM,WAAW,yBAAyB;IACxC,yEAAyE;IACzE,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,yEAAyE;IACzE,KAAK,CAAC,EAAE,oBAAoB,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,SAAS,iBAAiB,EACtE,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,yBAA8B,GACtC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAU/B;AAkLD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,OAAO,EACd,SAAS,CAAC,EAAE,MAAM,GACjB,cAAc,CAUhB;AAMD;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,iBAAiB,GAAG,SAAS,CAAC,WAAW,CAAC,CAGpF;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,iBAAiB,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAM/F;AA+DD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,iBAAiB,GAAG,SAAS,CAAC,WAAW,CAAC,CAkCrF;AA0GD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,iBAAiB,EACtB,GAAG,EAAE,OAAO,EACZ,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxC,aAAa,EAAE,YAAY,EAAE,GAC5B,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,mBAAmB,CAAC,CAmBvD;AAwED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,iBAAiB,EACtB,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,eAAe,EAC1B,YAAY,CAAC,EAAE,oBAAoB,GAClC,CACD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,GAAG,EAAE,aAAa,KACf,OAAO,CAAC,cAAc,GAAG,mBAAmB,CAAC,CA0IjD"}