@cyanheads/mcp-ts-core 0.9.8 → 0.9.10

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.
@@ -8,9 +8,26 @@
8
8
  *
9
9
  * @module src/testing/fuzz
10
10
  */
11
- import fc from 'fast-check';
12
11
  import { ZodArray, ZodBoolean, ZodDefault, ZodEnum, ZodLiteral, ZodNullable, ZodNumber, ZodOptional, ZodString, ZodUnion, } from 'zod';
13
12
  import { createMockContext } from './index.js';
13
+ // ---------------------------------------------------------------------------
14
+ // Lazy-loaded peer dependency
15
+ // ---------------------------------------------------------------------------
16
+ let _fc;
17
+ /** Eagerly loads the `fast-check` peer dependency. Called automatically by `fuzzTool`/`fuzzResource`/`fuzzPrompt`. Call manually before using `zodToArbitrary` or `adversarialArbitrary` standalone. */
18
+ export async function loadFc() {
19
+ if (!_fc)
20
+ _fc = (await import('fast-check')).default;
21
+ return _fc;
22
+ }
23
+ /** Returns the cached fast-check module. Throws if called before `loadFc()`. */
24
+ function getFc() {
25
+ if (!_fc) {
26
+ throw new Error('fast-check not loaded. Call fuzzTool/fuzzResource/fuzzPrompt first, ' +
27
+ 'or `await loadFc()` before using zodToArbitrary/adversarialArbitrary directly.');
28
+ }
29
+ return _fc;
30
+ }
14
31
  const DEFAULTS = {
15
32
  numRuns: 50,
16
33
  numAdversarial: 30,
@@ -32,22 +49,26 @@ function zodTypeName(schema) {
32
49
  /**
33
50
  * Converts a Zod schema to a fast-check `Arbitrary` that produces valid values.
34
51
  * Supports the JSON-Schema-serializable subset used by MCP tool/resource schemas.
52
+ *
53
+ * Requires `fast-check` to be loaded first — call from within a `fuzzTool()`/
54
+ * `fuzzResource()`/`fuzzPrompt()` run, or call `loadFc()` before standalone use.
35
55
  */
36
56
  export function zodToArbitrary(schema) {
37
57
  return zodNodeToArbitrary(schema, 0);
38
58
  }
39
59
  function zodNodeToArbitrary(schema, depth) {
60
+ const f = getFc();
40
61
  if (depth > 6)
41
- return fc.constant(null);
62
+ return f.constant(null);
42
63
  // Unwrap wrappers — cast through any to avoid Zod 4 $ZodType vs ZodType mismatch
43
64
  if (schema instanceof ZodOptional) {
44
- return fc.option(zodNodeToArbitrary(schema.unwrap(), depth), { nil: undefined });
65
+ return f.option(zodNodeToArbitrary(schema.unwrap(), depth), { nil: undefined });
45
66
  }
46
67
  if (schema instanceof ZodNullable) {
47
- return fc.option(zodNodeToArbitrary(schema.unwrap(), depth), { nil: null });
68
+ return f.option(zodNodeToArbitrary(schema.unwrap(), depth), { nil: null });
48
69
  }
49
70
  if (schema instanceof ZodDefault) {
50
- return fc.option(zodNodeToArbitrary(schema.removeDefault(), depth), {
71
+ return f.option(zodNodeToArbitrary(schema.removeDefault(), depth), {
51
72
  nil: undefined,
52
73
  freq: 5,
53
74
  });
@@ -60,68 +81,75 @@ function zodNodeToArbitrary(schema, depth) {
60
81
  return arbitraryForZodNumber(schema);
61
82
  }
62
83
  if (schema instanceof ZodBoolean) {
63
- return fc.boolean();
84
+ return f.boolean();
64
85
  }
65
86
  // Enum / literal
66
87
  if (schema instanceof ZodEnum) {
67
88
  const values = schema.options;
68
- return fc.constantFrom(...values);
89
+ return f.constantFrom(...values);
69
90
  }
70
91
  if (schema instanceof ZodLiteral) {
71
- return fc.constant(schema.value);
92
+ return f.constant(schema.value);
72
93
  }
73
94
  // Array
74
95
  if (schema instanceof ZodArray) {
75
- return fc.array(zodNodeToArbitrary(schema.element, depth + 1), { maxLength: 5 });
96
+ const s = schema;
97
+ const minLen = typeof s.minLength === 'number' ? s.minLength : 0;
98
+ return f.array(zodNodeToArbitrary(s.element, depth + 1), {
99
+ minLength: minLen,
100
+ maxLength: Math.max(minLen, 5),
101
+ });
76
102
  }
77
103
  // Union
78
104
  if (schema instanceof ZodUnion) {
79
105
  const options = schema._def.options;
80
- return fc.oneof(...options.map((o) => zodNodeToArbitrary(o, depth + 1)));
106
+ return f.oneof(...options.map((o) => zodNodeToArbitrary(o, depth + 1)));
81
107
  }
82
108
  // Object — check by _def.type since instanceof ZodObject may have type issues
83
109
  if (zodTypeName(schema) === 'object') {
84
110
  const shape = schema.shape;
85
111
  if (!shape)
86
- return fc.constant({});
112
+ return f.constant({});
87
113
  const entries = Object.entries(shape);
88
114
  if (entries.length === 0)
89
- return fc.constant({});
115
+ return f.constant({});
90
116
  const arbs = {};
91
117
  for (const [key, fieldSchema] of entries) {
92
118
  arbs[key] = zodNodeToArbitrary(fieldSchema, depth + 1);
93
119
  }
94
- return fc.record(arbs);
120
+ return f.record(arbs);
95
121
  }
96
122
  // Fallback: generate JSON-safe primitives
97
- return fc.oneof(fc.string(), fc.integer(), fc.boolean(), fc.constant(null));
123
+ return f.oneof(f.string(), f.integer(), f.boolean(), f.constant(null));
98
124
  }
99
125
  /**
100
126
  * Zod 4 exposes `.minLength`, `.maxLength`, `.format` as direct accessors on ZodString.
101
127
  */
102
128
  function arbitraryForZodString(schema) {
129
+ const f = getFc();
103
130
  const s = schema;
104
131
  const format = s.format;
105
132
  if (format === 'email') {
106
133
  // fc.emailAddress() can produce emails Zod 4 rejects (e.g. "!a@a.aa").
107
134
  // Generate simple, spec-safe emails instead.
108
- return fc
109
- .tuple(fc.stringMatching(/^[a-z][a-z0-9]{0,10}$/), fc.stringMatching(/^[a-z]{2,8}\.[a-z]{2,4}$/))
135
+ return f
136
+ .tuple(f.stringMatching(/^[a-z][a-z0-9]{0,10}$/), f.stringMatching(/^[a-z]{2,8}\.[a-z]{2,4}$/))
110
137
  .map(([local, domain]) => `${local}@${domain}`);
111
138
  }
112
139
  if (format === 'url' || format === 'uri')
113
- return fc.webUrl();
140
+ return f.webUrl();
114
141
  if (format === 'uuid')
115
- return fc.uuid();
142
+ return f.uuid();
116
143
  const minLen = typeof s.minLength === 'number' ? s.minLength : 0;
117
144
  const maxLen = typeof s.maxLength === 'number' ? s.maxLength : 200;
118
- return fc.string({ minLength: minLen, maxLength: Math.max(minLen, maxLen) });
145
+ return f.string({ minLength: minLen, maxLength: Math.max(minLen, maxLen) });
119
146
  }
120
147
  /**
121
148
  * Zod 4 exposes `.minValue`, `.maxValue`, `.isInt`, `.isFinite` as direct accessors.
122
149
  * Zod 4 defaults to `isFinite: true`, rejecting Infinity/NaN — respect that.
123
150
  */
124
151
  function arbitraryForZodNumber(schema) {
152
+ const f = getFc();
125
153
  const s = schema;
126
154
  const isFiniteNum = s.isFinite !== false;
127
155
  const rawMin = typeof s.minValue === 'number' ? s.minValue : -1_000_000;
@@ -130,8 +158,8 @@ function arbitraryForZodNumber(schema) {
130
158
  const max = isFiniteNum && !Number.isFinite(rawMax) ? 1_000_000 : rawMax;
131
159
  const isInt = s.isInt === true;
132
160
  return isInt
133
- ? fc.integer({ min, max })
134
- : fc.double({ min, max, noNaN: true, noDefaultInfinity: true });
161
+ ? f.integer({ min, max })
162
+ : f.double({ min, max, noNaN: true, noDefaultInfinity: true });
135
163
  }
136
164
  // ---------------------------------------------------------------------------
137
165
  // Adversarial input generators
@@ -165,9 +193,9 @@ export const ADVERSARIAL_STRINGS = [
165
193
  // Encoding attacks
166
194
  '\0',
167
195
  '\x00',
168
- '\uFEFF',
196
+ '',
169
197
  '\uD800',
170
- '\uDBFF\uDFFF',
198
+ '􏿿',
171
199
  // Format string
172
200
  '%s%s%s%s%s',
173
201
  '%x%x%x%x',
@@ -196,29 +224,31 @@ export const ADVERSARIAL_STRINGS = [
196
224
  ];
197
225
  /** Generates adversarial values for object fields based on expected type. */
198
226
  export function adversarialArbitrary() {
199
- return fc.oneof(
227
+ const f = getFc();
228
+ return f.oneof(
200
229
  // Wrong types
201
- fc.constant(null), fc.constant(undefined), fc.constant(true), fc.constant(false), fc.constant(0), fc.constant(-1), fc.constant(Number.MAX_SAFE_INTEGER), fc.constant(Number.MIN_SAFE_INTEGER), fc.constant(NaN), fc.constant(Infinity), fc.constant(-Infinity), fc.constant(''), fc.constantFrom(...ADVERSARIAL_STRINGS),
230
+ f.constant(null), f.constant(undefined), f.constant(true), f.constant(false), f.constant(0), f.constant(-1), f.constant(Number.MAX_SAFE_INTEGER), f.constant(Number.MIN_SAFE_INTEGER), f.constant(NaN), f.constant(Infinity), f.constant(-Infinity), f.constant(''), f.constantFrom(...ADVERSARIAL_STRINGS),
202
231
  // Arrays where objects expected (and vice versa)
203
- fc.constant([]), fc.constant([1, 2, 3]), fc.constant({}),
232
+ f.constant([]), f.constant([1, 2, 3]), f.constant({}),
204
233
  // Prototype pollution objects
205
- fc.constant({ __proto__: { polluted: true } }), fc.constant({ constructor: { prototype: { polluted: true } } }),
234
+ f.constant({ __proto__: { polluted: true } }), f.constant({ constructor: { prototype: { polluted: true } } }),
206
235
  // Deeply nested
207
- fc.constant(buildDeepObject(20)),
236
+ f.constant(buildDeepObject(20)),
208
237
  // Circular-safe deep object
209
- fc.constant(buildWideObject(100)));
238
+ f.constant(buildWideObject(100)));
210
239
  }
211
240
  /**
212
241
  * Generates an adversarial variant of a Zod object schema's input.
213
242
  * Produces objects that match the key structure but have wrong-type values.
214
243
  */
215
244
  export function adversarialObjectArbitrary(schema) {
245
+ const f = getFc();
216
246
  const shape = schema.shape;
217
247
  const keys = shape ? Object.keys(shape) : [];
218
248
  if (keys.length === 0) {
219
249
  return adversarialArbitrary();
220
250
  }
221
- return fc.record(Object.fromEntries(keys.map((k) => [k, adversarialArbitrary()])));
251
+ return f.record(Object.fromEntries(keys.map((k) => [k, adversarialArbitrary()])));
222
252
  }
223
253
  function buildDeepObject(depth) {
224
254
  let obj = { value: 'leaf' };
@@ -294,6 +324,7 @@ function createProtoPollutionGuard() {
294
324
  * ```
295
325
  */
296
326
  export async function fuzzTool(def, options = {}) {
327
+ const f = await loadFc();
297
328
  const numRuns = options.numRuns ?? DEFAULTS.numRuns;
298
329
  const numAdversarial = options.numAdversarial ?? DEFAULTS.numAdversarial;
299
330
  const timeout = options.timeout ?? DEFAULTS.timeout;
@@ -308,22 +339,25 @@ export async function fuzzTool(def, options = {}) {
308
339
  prototypePollution: false,
309
340
  };
310
341
  const protoGuard = createProtoPollutionGuard();
311
- // Phase 1: Valid inputs
342
+ // Phase 1: Valid inputs — pre-parse to match production semantics (resolves defaults, enforces constraints)
312
343
  const validArb = zodToArbitrary(def.input);
313
- await fc.assert(fc.asyncProperty(validArb, async (input) => {
344
+ await f.assert(f.asyncProperty(validArb, async (raw) => {
314
345
  report.totalRuns++;
346
+ const parsed = def.input.safeParse(raw);
347
+ if (!parsed.success)
348
+ return;
315
349
  const ctx = createMockContext(options.ctx);
316
350
  try {
317
- const result = await withTimeout(def.handler(input, ctx), timeout);
351
+ const result = await withTimeout(def.handler(parsed.data, ctx), timeout);
318
352
  def.output.parse(result);
319
353
  }
320
354
  catch (err) {
321
- report.crashes.push({ input, error: err });
355
+ report.crashes.push({ input: parsed.data, error: err });
322
356
  }
323
357
  }), fcParams);
324
358
  // Phase 2: Adversarial inputs (should be caught by Zod or handler, never crash)
325
359
  const advArb = adversarialObjectArbitrary(def.input);
326
- await fc.assert(fc.asyncProperty(advArb, async (input) => {
360
+ await f.assert(f.asyncProperty(advArb, async (input) => {
327
361
  report.totalRuns++;
328
362
  const ctx = createMockContext(options.ctx);
329
363
  try {
@@ -371,8 +405,9 @@ export async function fuzzTool(def, options = {}) {
371
405
  const controller = new AbortController();
372
406
  controller.abort();
373
407
  const ctx = createMockContext({ ...options.ctx, signal: controller.signal });
374
- const validSample = generateOne(validArb);
375
- await withTimeout(def.handler(validSample, ctx), timeout);
408
+ const rawSample = generateOne(validArb);
409
+ const parsedSample = def.input.parse(rawSample);
410
+ await withTimeout(def.handler(parsedSample, ctx), timeout);
376
411
  }
377
412
  catch {
378
413
  // Expected
@@ -393,6 +428,7 @@ export async function fuzzTool(def, options = {}) {
393
428
  * ```
394
429
  */
395
430
  export async function fuzzResource(def, options = {}) {
431
+ const f = await loadFc();
396
432
  const numRuns = options.numRuns ?? DEFAULTS.numRuns;
397
433
  const numAdversarial = options.numAdversarial ?? DEFAULTS.numAdversarial;
398
434
  const timeout = options.timeout ?? DEFAULTS.timeout;
@@ -409,24 +445,27 @@ export async function fuzzResource(def, options = {}) {
409
445
  const protoGuard = createProtoPollutionGuard();
410
446
  const paramsSchema = def.params;
411
447
  if (paramsSchema) {
412
- // Phase 1: Valid params
448
+ // Phase 1: Valid params — pre-parse to match production semantics
413
449
  const validArb = zodToArbitrary(paramsSchema);
414
- await fc.assert(fc.asyncProperty(validArb, async (params) => {
450
+ await f.assert(f.asyncProperty(validArb, async (raw) => {
415
451
  report.totalRuns++;
452
+ const parsed = paramsSchema.safeParse(raw);
453
+ if (!parsed.success)
454
+ return;
416
455
  const ctx = createMockContext({
417
456
  ...options.ctx,
418
- uri: new URL(`fuzz://test/${encodeURIComponent(JSON.stringify(params))}`),
457
+ uri: new URL(`fuzz://test/${encodeURIComponent(JSON.stringify(parsed.data))}`),
419
458
  });
420
459
  try {
421
- await withTimeout(def.handler(params, ctx), timeout);
460
+ await withTimeout(def.handler(parsed.data, ctx), timeout);
422
461
  }
423
462
  catch (err) {
424
- report.crashes.push({ input: params, error: err });
463
+ report.crashes.push({ input: parsed.data, error: err });
425
464
  }
426
465
  }), fcParams);
427
466
  // Phase 2: Adversarial params
428
467
  const advArb = adversarialObjectArbitrary(paramsSchema);
429
- await fc.assert(fc.asyncProperty(advArb, async (params) => {
468
+ await f.assert(f.asyncProperty(advArb, async (params) => {
430
469
  report.totalRuns++;
431
470
  const ctx = createMockContext({
432
471
  ...options.ctx,
@@ -476,6 +515,7 @@ export async function fuzzResource(def, options = {}) {
476
515
  * ```
477
516
  */
478
517
  export async function fuzzPrompt(def, options = {}) {
518
+ const f = await loadFc();
479
519
  const numRuns = options.numRuns ?? DEFAULTS.numRuns;
480
520
  const numAdversarial = options.numAdversarial ?? DEFAULTS.numAdversarial;
481
521
  const timeout = options.timeout ?? DEFAULTS.timeout;
@@ -493,23 +533,26 @@ export async function fuzzPrompt(def, options = {}) {
493
533
  const argsSchema = def.args;
494
534
  if (argsSchema) {
495
535
  const validArb = zodToArbitrary(argsSchema);
496
- await fc.assert(fc.asyncProperty(validArb, async (args) => {
536
+ await f.assert(f.asyncProperty(validArb, async (raw) => {
497
537
  report.totalRuns++;
538
+ const parsed = argsSchema.safeParse(raw);
539
+ if (!parsed.success)
540
+ return;
498
541
  try {
499
- const messages = await withTimeout(def.generate(args), timeout);
542
+ const messages = await withTimeout(def.generate(parsed.data), timeout);
500
543
  if (!Array.isArray(messages)) {
501
544
  report.crashes.push({
502
- input: args,
545
+ input: parsed.data,
503
546
  error: new Error('generate() did not return array'),
504
547
  });
505
548
  }
506
549
  }
507
550
  catch (err) {
508
- report.crashes.push({ input: args, error: err });
551
+ report.crashes.push({ input: parsed.data, error: err });
509
552
  }
510
553
  }), fcParams);
511
554
  const advArb = adversarialObjectArbitrary(argsSchema);
512
- await fc.assert(fc.asyncProperty(advArb, async (args) => {
555
+ await f.assert(f.asyncProperty(advArb, async (args) => {
513
556
  report.totalRuns++;
514
557
  try {
515
558
  const validated = argsSchema.safeParse(args);
@@ -547,8 +590,9 @@ function withTimeout(promise, ms) {
547
590
  ]);
548
591
  }
549
592
  function generateOne(arb) {
593
+ const f = getFc();
550
594
  let value;
551
- fc.assert(fc.property(arb, (v) => {
595
+ f.assert(f.property(arb, (v) => {
552
596
  value = v;
553
597
  return false; // Stop after first
554
598
  }), { numRuns: 1, endOnFailure: true });
@@ -1 +1 @@
1
- {"version":3,"file":"fuzz.js","sourceRoot":"","sources":["../../src/testing/fuzz.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fuzz.js","sourceRoot":"","sources":["../../src/testing/fuzz.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cyanheads/mcp-ts-core",
3
- "version": "0.9.8",
3
+ "version": "0.9.10",
4
4
  "mcpName": "io.github.cyanheads/mcp-ts-core",
5
5
  "description": "Agent-native TypeScript framework for building MCP servers. Declarative definitions with auth, multi-backend storage, OpenTelemetry, and first-class support for Bun/Node/Cloudflare Workers.",
6
6
  "main": "dist/core/index.js",
@@ -18,7 +18,6 @@
18
18
  "scripts/lint-mcp.ts",
19
19
  "scripts/lint-packaging.ts",
20
20
  "scripts/list-skills.ts",
21
- "scripts/split-changelog.ts",
22
21
  "scripts/tree.ts",
23
22
  "skills/",
24
23
  "templates/",
@@ -169,9 +168,9 @@
169
168
  },
170
169
  "devDependencies": {
171
170
  "@biomejs/biome": "2.4.15",
172
- "@cloudflare/vitest-pool-workers": "^0.16.9",
173
- "@cloudflare/workers-types": "^4.20260524.1",
174
- "@duckdb/node-api": "^1.5.3-r.1",
171
+ "@cloudflare/vitest-pool-workers": "^0.16.10",
172
+ "@cloudflare/workers-types": "^4.20260527.1",
173
+ "@duckdb/node-api": "^1.5.3-r.2",
175
174
  "@hono/otel": "^1.1.2",
176
175
  "@opentelemetry/exporter-metrics-otlp-http": "^0.218.0",
177
176
  "@opentelemetry/exporter-trace-otlp-http": "^0.218.0",
@@ -182,7 +181,7 @@
182
181
  "@opentelemetry/sdk-node": "^0.218.0",
183
182
  "@opentelemetry/sdk-trace-node": "^2.7.1",
184
183
  "@opentelemetry/semantic-conventions": "^1.41.1",
185
- "@supabase/supabase-js": "^2.106.1",
184
+ "@supabase/supabase-js": "^2.106.2",
186
185
  "@types/bun": "^1.3.14",
187
186
  "@types/js-yaml": "^4.0.9",
188
187
  "@types/node": "^25.9.1",
@@ -198,7 +197,6 @@
198
197
  "depcheck": "^1.4.7",
199
198
  "diff": "^9.0.0",
200
199
  "execa": "^9.6.1",
201
- "fast-check": "^4.8.0",
202
200
  "fast-xml-parser": "^5.8.0",
203
201
  "ignore": "^7.0.5",
204
202
  "js-yaml": "^4.1.1",
@@ -209,7 +207,7 @@
209
207
  "partial-json": "^0.1.7",
210
208
  "pdf-lib": "^1.17.1",
211
209
  "pino-pretty": "^13.1.3",
212
- "repomix": "^1.14.0",
210
+ "repomix": "^1.14.1",
213
211
  "sanitize-html": "^2.17.4",
214
212
  "tsc-alias": "^1.8.17",
215
213
  "typedoc": "^0.28.19",
@@ -274,7 +272,7 @@
274
272
  "@modelcontextprotocol/sdk": "^1.29.0",
275
273
  "@opentelemetry/api": "^1.9.1",
276
274
  "dotenv": "^17.4.2",
277
- "hono": "^4.12.22",
275
+ "hono": "^4.12.23",
278
276
  "jose": "^6.2.3",
279
277
  "pino": "^10.3.1",
280
278
  "zod": "^4.4.3"
@@ -295,6 +293,7 @@
295
293
  "chrono-node": "^2.9.0",
296
294
  "defuddle": "^0.18.1",
297
295
  "diff": "latest",
296
+ "fast-check": "latest",
298
297
  "fast-xml-parser": "^5.8.0",
299
298
  "js-yaml": "^4.1.1",
300
299
  "linkedom": "^0.18.12",
@@ -354,6 +353,9 @@
354
353
  "diff": {
355
354
  "optional": true
356
355
  },
356
+ "fast-check": {
357
+ "optional": true
358
+ },
357
359
  "fast-xml-parser": {
358
360
  "optional": true
359
361
  },
@@ -1,9 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * @fileoverview Guards framework source against three SDK-coupling antipatterns
4
- * tempting to reach for when fixing tool input-validation error shape (#66) or
5
- * similar SDK-adjacent bugs. Each rule is narrow and mechanical — the goal is to
6
- * pin an architectural decision so it does not have to be re-litigated per PR.
3
+ * @fileoverview Guards against three SDK-coupling antipatterns. Scans `src/`
4
+ * via `git grep` all rules target framework-internal paths. Shipped to
5
+ * consumers via `package.json` `files:` because `devcheck` invokes it; in
6
+ * consumer projects the scanned paths (`src/mcp-server/tools/`,
7
+ * `src/mcp-server/transports/`) either don't exist or contain consumer code
8
+ * that follows different conventions, so the script exits cleanly with 0
9
+ * findings. Defense-in-depth: harmless when nothing matches, catches real
10
+ * regressions in the framework.
7
11
  *
8
12
  * Rules:
9
13
  * 1. Framework must not downgrade the Zod `inputSchema` passed to