@cyanheads/mcp-ts-core 0.13.6 → 0.13.7

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 (131) hide show
  1. package/AGENTS.md +3 -3
  2. package/CLAUDE.md +3 -3
  3. package/README.md +55 -52
  4. package/biome.json +1 -1
  5. package/changelog/0.13.x/0.13.7.md +77 -0
  6. package/config/tsconfig.base.json +2 -2
  7. package/dist/config/index.d.ts.map +1 -1
  8. package/dist/config/index.js +42 -11
  9. package/dist/config/index.js.map +1 -1
  10. package/dist/core/app.d.ts.map +1 -1
  11. package/dist/core/app.js +21 -4
  12. package/dist/core/app.js.map +1 -1
  13. package/dist/core/context.d.ts +9 -1
  14. package/dist/core/context.d.ts.map +1 -1
  15. package/dist/core/context.js +4 -13
  16. package/dist/core/context.js.map +1 -1
  17. package/dist/core/worker.d.ts.map +1 -1
  18. package/dist/core/worker.js +7 -1
  19. package/dist/core/worker.js.map +1 -1
  20. package/dist/mcp-server/handlerContext.d.ts +6 -0
  21. package/dist/mcp-server/handlerContext.d.ts.map +1 -1
  22. package/dist/mcp-server/handlerContext.js +3 -0
  23. package/dist/mcp-server/handlerContext.js.map +1 -1
  24. package/dist/mcp-server/prompts/prompt-registration.d.ts.map +1 -1
  25. package/dist/mcp-server/prompts/prompt-registration.js +6 -3
  26. package/dist/mcp-server/prompts/prompt-registration.js.map +1 -1
  27. package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts.map +1 -1
  28. package/dist/mcp-server/tools/utils/toolHandlerFactory.js +5 -1
  29. package/dist/mcp-server/tools/utils/toolHandlerFactory.js.map +1 -1
  30. package/dist/mcp-server/transports/http/httpErrorHandler.d.ts.map +1 -1
  31. package/dist/mcp-server/transports/http/httpErrorHandler.js +15 -5
  32. package/dist/mcp-server/transports/http/httpErrorHandler.js.map +1 -1
  33. package/dist/storage/core/IStorageProvider.d.ts +5 -2
  34. package/dist/storage/core/IStorageProvider.d.ts.map +1 -1
  35. package/dist/storage/core/providerHelpers.d.ts +29 -8
  36. package/dist/storage/core/providerHelpers.d.ts.map +1 -1
  37. package/dist/storage/core/providerHelpers.js +49 -11
  38. package/dist/storage/core/providerHelpers.js.map +1 -1
  39. package/dist/storage/providers/cloudflare/d1Provider.js +4 -4
  40. package/dist/storage/providers/cloudflare/d1Provider.js.map +1 -1
  41. package/dist/storage/providers/cloudflare/kvProvider.d.ts +2 -0
  42. package/dist/storage/providers/cloudflare/kvProvider.d.ts.map +1 -1
  43. package/dist/storage/providers/cloudflare/kvProvider.js +11 -9
  44. package/dist/storage/providers/cloudflare/kvProvider.js.map +1 -1
  45. package/dist/storage/providers/cloudflare/r2Provider.d.ts.map +1 -1
  46. package/dist/storage/providers/cloudflare/r2Provider.js +8 -5
  47. package/dist/storage/providers/cloudflare/r2Provider.js.map +1 -1
  48. package/dist/storage/providers/fileSystem/fileSystemProvider.d.ts +1 -0
  49. package/dist/storage/providers/fileSystem/fileSystemProvider.d.ts.map +1 -1
  50. package/dist/storage/providers/fileSystem/fileSystemProvider.js +10 -8
  51. package/dist/storage/providers/fileSystem/fileSystemProvider.js.map +1 -1
  52. package/dist/storage/providers/inMemory/inMemoryProvider.d.ts +5 -0
  53. package/dist/storage/providers/inMemory/inMemoryProvider.d.ts.map +1 -1
  54. package/dist/storage/providers/inMemory/inMemoryProvider.js +9 -5
  55. package/dist/storage/providers/inMemory/inMemoryProvider.js.map +1 -1
  56. package/dist/storage/providers/supabase/supabaseProvider.d.ts.map +1 -1
  57. package/dist/storage/providers/supabase/supabaseProvider.js +5 -1
  58. package/dist/storage/providers/supabase/supabaseProvider.js.map +1 -1
  59. package/dist/testing/index.d.ts +6 -4
  60. package/dist/testing/index.d.ts.map +1 -1
  61. package/dist/testing/index.js +6 -4
  62. package/dist/testing/index.js.map +1 -1
  63. package/dist/utils/formatting/partialResult.d.ts +28 -2
  64. package/dist/utils/formatting/partialResult.d.ts.map +1 -1
  65. package/dist/utils/formatting/partialResult.js +46 -2
  66. package/dist/utils/formatting/partialResult.js.map +1 -1
  67. package/dist/utils/internal/error-handler/errorHandler.d.ts +8 -2
  68. package/dist/utils/internal/error-handler/errorHandler.d.ts.map +1 -1
  69. package/dist/utils/internal/error-handler/errorHandler.js +27 -16
  70. package/dist/utils/internal/error-handler/errorHandler.js.map +1 -1
  71. package/dist/utils/internal/error-handler/mappings.d.ts +1 -0
  72. package/dist/utils/internal/error-handler/mappings.d.ts.map +1 -1
  73. package/dist/utils/internal/error-handler/mappings.js +1 -0
  74. package/dist/utils/internal/error-handler/mappings.js.map +1 -1
  75. package/dist/utils/internal/performance.d.ts +5 -1
  76. package/dist/utils/internal/performance.d.ts.map +1 -1
  77. package/dist/utils/internal/performance.js +13 -8
  78. package/dist/utils/internal/performance.js.map +1 -1
  79. package/dist/utils/security/sanitization.d.ts +15 -15
  80. package/dist/utils/security/sanitization.d.ts.map +1 -1
  81. package/dist/utils/security/sanitization.js +108 -88
  82. package/dist/utils/security/sanitization.js.map +1 -1
  83. package/dist/utils/telemetry/instrumentation.d.ts +6 -2
  84. package/dist/utils/telemetry/instrumentation.d.ts.map +1 -1
  85. package/dist/utils/telemetry/instrumentation.js +23 -8
  86. package/dist/utils/telemetry/instrumentation.js.map +1 -1
  87. package/framework-skills/add-app-tool/SKILL.md +12 -18
  88. package/framework-skills/add-prompt/SKILL.md +3 -1
  89. package/framework-skills/add-provider/SKILL.md +14 -4
  90. package/framework-skills/add-resource/SKILL.md +3 -3
  91. package/framework-skills/add-tool/SKILL.md +22 -7
  92. package/framework-skills/api-canvas/SKILL.md +2 -2
  93. package/framework-skills/api-config/SKILL.md +4 -3
  94. package/framework-skills/api-context/SKILL.md +8 -5
  95. package/framework-skills/api-errors/SKILL.md +7 -3
  96. package/framework-skills/api-linter/SKILL.md +8 -8
  97. package/framework-skills/api-telemetry/SKILL.md +9 -4
  98. package/framework-skills/api-testing/SKILL.md +21 -13
  99. package/framework-skills/api-utils/SKILL.md +3 -3
  100. package/framework-skills/api-utils/references/security.md +7 -6
  101. package/framework-skills/code-simplifier/SKILL.md +31 -18
  102. package/framework-skills/design-mcp-server/SKILL.md +62 -35
  103. package/framework-skills/git-wrapup/SKILL.md +16 -10
  104. package/framework-skills/maintenance/SKILL.md +2 -2
  105. package/framework-skills/orchestrations/SKILL.md +1 -1
  106. package/framework-skills/orchestrations/workflows/greenfield-build.md +15 -8
  107. package/framework-skills/polish-docs-meta/SKILL.md +2 -2
  108. package/framework-skills/polish-docs-meta/references/package-meta.md +1 -1
  109. package/framework-skills/polish-docs-meta/references/readme.md +3 -3
  110. package/framework-skills/release-and-publish/SKILL.md +6 -4
  111. package/framework-skills/release-pr-review/SKILL.md +18 -1
  112. package/framework-skills/report-issue-framework/SKILL.md +2 -2
  113. package/framework-skills/report-issue-local/SKILL.md +3 -3
  114. package/framework-skills/security-pass/SKILL.md +11 -3
  115. package/framework-skills/tool-defs-analysis/SKILL.md +3 -3
  116. package/package.json +15 -36
  117. package/templates/.env.example +3 -1
  118. package/templates/.github/ISSUE_TEMPLATE/feature_request.yml +1 -1
  119. package/templates/AGENTS.md +2 -2
  120. package/templates/CLAUDE.md +2 -2
  121. package/templates/Dockerfile +4 -4
  122. package/templates/package.json +3 -3
  123. package/templates/src/mcp-server/prompts/definitions/echo.prompt.ts +2 -4
  124. package/templates/src/mcp-server/resources/definitions/echo-app-ui.app-resource.ts +51 -14
  125. package/templates/src/mcp-server/resources/definitions/echo.resource.ts +1 -1
  126. package/templates/src/mcp-server/tools/definitions/echo-app.app-tool.ts +2 -3
  127. package/templates/src/mcp-server/tools/definitions/echo.tool.ts +1 -1
  128. package/dist/utils/telemetry/index.d.ts +0 -12
  129. package/dist/utils/telemetry/index.d.ts.map +0 -1
  130. package/dist/utils/telemetry/index.js +0 -12
  131. package/dist/utils/telemetry/index.js.map +0 -1
@@ -11,13 +11,40 @@ async function loadSanitizeHtml() {
11
11
  })).default;
12
12
  return _sanitizeHtmlFn;
13
13
  }
14
- let _validator;
15
- async function loadValidator() {
16
- _validator ??= (await import('validator').catch(() => {
17
- throw configurationError('Install "validator" to use input validation: bun add validator');
18
- })).default;
19
- return _validator;
14
+ const URL_MAX_LENGTH = 2084;
15
+ const URL_FORBIDDEN_CHARS = /[\s<>]/;
16
+ const URL_AUTHORITY = /^[a-z][a-z0-9+.-]*:(?:\/\/)?([^/?#]*)/i;
17
+ const URL_HOST_LABEL = String.raw `[\p{L}\p{N}_](?:[\p{L}\p{M}\p{N}_-]*[\p{L}\p{M}\p{N}_])?`;
18
+ const URL_HOST = new RegExp(String.raw `^(?:${URL_HOST_LABEL}(?:\.${URL_HOST_LABEL})*\.?|\[[0-9a-f:.]+\])$`, 'iu');
19
+ const IPV4_HOST = /^\d+\.\d+\.\d+\.\d+$/;
20
+ /**
21
+ * Validates `input` as an absolute URL with a host, using a scheme from `protocols`.
22
+ *
23
+ * Rejects whitespace, `<`, or `>` anywhere, inputs over 2084 characters, and hosts outside
24
+ * letters, digits, `_`, and non-edge `-` labels (or a bracketed IPv6 literal). The host is
25
+ * checked as written and must match the host the WHATWG parser resolves, so inputs that read
26
+ * as one host but fetch another (a backslash before `@`, an obfuscated IPv4 form such as
27
+ * `2130706433` or `127.1`) are refused. Single-label hosts such as `localhost` are accepted.
28
+ */
29
+ function isAllowedUrl(input, protocols) {
30
+ if (!input || input.length > URL_MAX_LENGTH || URL_FORBIDDEN_CHARS.test(input))
31
+ return false;
32
+ const url = URL.parse(input);
33
+ if (!url || !protocols.some((protocol) => `${protocol.toLowerCase()}:` === url.protocol)) {
34
+ return false;
35
+ }
36
+ const authority = URL_AUTHORITY.exec(input)?.[1] ?? '';
37
+ const host = authority.slice(authority.lastIndexOf('@') + 1).replace(/:\d*$/, '');
38
+ if (!URL_HOST.test(host))
39
+ return false;
40
+ // The host as written must be the host the parser resolved — `http://evil.com\@good.com`
41
+ // reads as good.com but parses (and fetches) as evil.com.
42
+ if (URL.parse(`${url.protocol}//${host}`)?.hostname !== url.hostname)
43
+ return false;
44
+ return !IPV4_HOST.test(url.hostname) || url.hostname === host;
20
45
  }
46
+ /** A plain decimal: optional sign, optional fraction, no exponent or separators. */
47
+ const NUMERIC_STRING = /^[+-]?([0-9]*\.)?[0-9]+$/;
21
48
  // Dynamically import 'path' only in Node.js environments.
22
49
  // Top-level await ensures the module is loaded before any sanitizePath call.
23
50
  let pathModule;
@@ -253,22 +280,21 @@ export class Sanitization {
253
280
  /**
254
281
  * Sanitizes a string according to its intended usage context.
255
282
  *
256
- * This method is **async** because it lazy-loads `sanitize-html` and/or `validator`
257
- * depending on the requested context.
283
+ * This method is **async** because the HTML-stripping contexts lazy-load `sanitize-html`.
258
284
  *
259
285
  * | `context` | Behavior |
260
286
  * |----------------|----------|
261
287
  * | `'text'` | Strips all HTML tags and attributes (default). |
262
288
  * | `'html'` | Runs full HTML sanitization via `sanitizeHtml` (respects `allowedTags`/`allowedAttributes`). |
263
289
  * | `'attribute'` | Strips all tags and attributes — safe for use inside an HTML attribute value. |
264
- * | `'url'` | Validates the URL with `validator.isURL` (http/https only); returns `''` if invalid. |
290
+ * | `'url'` | Validates the URL as `sanitizeUrl` does (http/https only); returns `''` if invalid. |
265
291
  * | `'javascript'` | **Disallowed.** Always throws `McpError`. |
266
292
  *
267
293
  * @param input - The string to sanitize. Returns `''` immediately if falsy.
268
294
  * @param options - Context and optional allowlist overrides.
269
295
  * @returns Promise resolving to the sanitized string, or `''` for invalid URLs.
270
296
  * @throws {McpError} With `ValidationError` if `context` is `'javascript'`.
271
- * @throws {McpError} With `ConfigurationError` if a required peer dep is not installed.
297
+ * @throws {McpError} With `ConfigurationError` if `sanitize-html` is needed and not installed.
272
298
  * @example
273
299
  * ```ts
274
300
  * await sanitization.sanitizeString('<b>hello</b>', { context: 'text' });
@@ -301,19 +327,14 @@ export class Sanitization {
301
327
  return sanitizeHtmlFn(input, { allowedTags: [], allowedAttributes: {} });
302
328
  }
303
329
  case 'url': {
304
- const v = await loadValidator();
305
- if (!v.isURL(input, {
306
- protocols: ['http', 'https'],
307
- require_protocol: true,
308
- require_host: true,
309
- })) {
330
+ if (!isAllowedUrl(input, ['http', 'https'])) {
310
331
  logger.warning('Potentially invalid URL detected during string sanitization (context: url)', requestContextService.createRequestContext({
311
332
  operation: 'Sanitization.sanitizeString.urlWarning',
312
333
  additionalContext: { invalidUrlAttempt: input },
313
334
  }));
314
335
  return '';
315
336
  }
316
- return v.trim(input);
337
+ return input.trim();
317
338
  }
318
339
  case 'javascript':
319
340
  logger.error('Attempted JavaScript sanitization via sanitizeString, which is disallowed.', requestContextService.createRequestContext({
@@ -330,17 +351,19 @@ export class Sanitization {
330
351
  /**
331
352
  * Validates and sanitizes a URL string.
332
353
  *
333
- * This method is **async** because it lazy-loads the `validator` peer dependency on first call.
354
+ * Async for API stability; validation is built in and needs no peer dependency.
334
355
  *
335
- * Validation requires a protocol and host. Even if a protocol appears in `allowedProtocols`,
336
- * the pseudo-protocols `javascript:`, `data:`, and `vbscript:` are always rejected.
356
+ * Validation requires a protocol and host. Hosts may be domains, single-label names such as
357
+ * `localhost`, IPv4 dotted quads, or bracketed IPv6 literals. Whitespace, `<`, and `>` are
358
+ * rejected anywhere, as are URLs over 2084 characters. Even if a protocol appears in
359
+ * `allowedProtocols`, the pseudo-protocols `javascript:`, `data:`, and `vbscript:` are always
360
+ * rejected.
337
361
  *
338
362
  * @param input - The URL string to sanitize. Leading/trailing whitespace is trimmed.
339
363
  * @param allowedProtocols - URL schemes that are permitted. Defaults to `['http', 'https']`.
340
364
  * @returns Promise resolving to the trimmed, validated URL string.
341
365
  * @throws {McpError} With `ValidationError` if the URL is invalid, uses a disallowed protocol,
342
366
  * or uses a blocked pseudo-protocol (`javascript:`, `data:`, `vbscript:`).
343
- * @throws {McpError} With `ConfigurationError` if `validator` is not installed.
344
367
  * @example
345
368
  * ```ts
346
369
  * await sanitization.sanitizeUrl('https://example.com/path');
@@ -353,28 +376,25 @@ export class Sanitization {
353
376
  * // throws McpError (ValidationError)
354
377
  * ```
355
378
  */
356
- async sanitizeUrl(input, allowedProtocols = ['http', 'https']) {
357
- try {
358
- const v = await loadValidator();
359
- const trimmedInput = input.trim();
360
- if (!v.isURL(trimmedInput, {
361
- protocols: allowedProtocols,
362
- require_protocol: true,
363
- require_host: true,
364
- })) {
365
- throw new Error('Invalid URL format or protocol not in allowed list.');
379
+ sanitizeUrl(input, allowedProtocols = ['http', 'https']) {
380
+ return Promise.try(() => {
381
+ try {
382
+ const trimmedInput = input.trim();
383
+ if (!isAllowedUrl(trimmedInput, allowedProtocols)) {
384
+ throw new Error('Invalid URL format or protocol not in allowed list.');
385
+ }
386
+ const lowercasedInput = trimmedInput.toLowerCase();
387
+ if (lowercasedInput.startsWith('javascript:') ||
388
+ lowercasedInput.startsWith('data:') ||
389
+ lowercasedInput.startsWith('vbscript:')) {
390
+ throw new Error('Disallowed pseudo-protocol (javascript:, data:, or vbscript:) in URL.');
391
+ }
392
+ return trimmedInput;
366
393
  }
367
- const lowercasedInput = trimmedInput.toLowerCase();
368
- if (lowercasedInput.startsWith('javascript:') ||
369
- lowercasedInput.startsWith('data:') ||
370
- lowercasedInput.startsWith('vbscript:')) {
371
- throw new Error('Disallowed pseudo-protocol (javascript:, data:, or vbscript:) in URL.');
394
+ catch (error) {
395
+ throw validationError(error instanceof Error ? error.message : 'Invalid or unsafe URL provided.', { input });
372
396
  }
373
- return trimmedInput;
374
- }
375
- catch (error) {
376
- throw validationError(error instanceof Error ? error.message : 'Invalid or unsafe URL provided.', { input });
377
- }
397
+ });
378
398
  }
379
399
  /**
380
400
  * Sanitizes a file path, preventing path traversal attacks and normalizing format.
@@ -540,10 +560,10 @@ export class Sanitization {
540
560
  /**
541
561
  * Validates a numeric input and optionally clamps it to a range.
542
562
  *
543
- * This method is **async** because string inputs are validated using the `validator` peer
544
- * dependency, which is lazy-loaded on first call. Numeric inputs bypass the lazy load.
563
+ * Async for API stability; validation is built in and needs no peer dependency.
545
564
  *
546
- * - String inputs: trimmed and checked with `validator.isNumeric`, then parsed with `parseFloat`.
565
+ * - String inputs: trimmed, required to be a plain decimal (optional sign and fraction, no
566
+ * exponent or separators), then parsed with `parseFloat`.
547
567
  * - Number inputs: used directly.
548
568
  * - `NaN` and `Infinity` are always rejected.
549
569
  * - If `min` or `max` are provided, the value is silently clamped (a debug log is emitted).
@@ -553,7 +573,6 @@ export class Sanitization {
553
573
  * @param max - Inclusive upper bound. If the value is above this, it is clamped to `max`.
554
574
  * @returns Promise resolving to the validated (and potentially clamped) number.
555
575
  * @throws {McpError} With `ValidationError` if the input is not numeric, is `NaN`, or is `Infinity`.
556
- * @throws {McpError} With `ConfigurationError` if `validator` is not installed (string input only).
557
576
  * @example
558
577
  * ```ts
559
578
  * await sanitization.sanitizeNumber('42.5');
@@ -566,50 +585,51 @@ export class Sanitization {
566
585
  * // throws McpError (ValidationError)
567
586
  * ```
568
587
  */
569
- async sanitizeNumber(input, min, max) {
570
- let value;
571
- if (typeof input === 'string') {
572
- const v = await loadValidator();
573
- const trimmedInput = input.trim();
574
- if (trimmedInput === '' || !v.isNumeric(trimmedInput)) {
575
- throw validationError('Invalid number format: input is empty or not numeric.', { input });
588
+ sanitizeNumber(input, min, max) {
589
+ return Promise.try(() => {
590
+ let value;
591
+ if (typeof input === 'string') {
592
+ const trimmedInput = input.trim();
593
+ if (!NUMERIC_STRING.test(trimmedInput)) {
594
+ throw validationError('Invalid number format: input is empty or not numeric.', { input });
595
+ }
596
+ value = parseFloat(trimmedInput);
576
597
  }
577
- value = parseFloat(trimmedInput);
578
- }
579
- else if (typeof input === 'number') {
580
- value = input;
581
- }
582
- else {
583
- throw validationError('Invalid input type: expected number or string.', {
584
- input: String(input),
585
- });
586
- }
587
- if (Number.isNaN(value) || !Number.isFinite(value)) {
588
- throw validationError('Invalid number value (NaN or Infinity).', { input });
589
- }
590
- let clamped = false;
591
- const originalValueForLog = value;
592
- if (min !== undefined && value < min) {
593
- value = min;
594
- clamped = true;
595
- }
596
- if (max !== undefined && value > max) {
597
- value = max;
598
- clamped = true;
599
- }
600
- if (clamped) {
601
- logger.debug('Number clamped to range.', requestContextService.createRequestContext({
602
- operation: 'Sanitization.sanitizeNumber.clamped',
603
- additionalContext: {
604
- originalInput: String(input),
605
- parsedValue: originalValueForLog,
606
- minValue: min,
607
- maxValue: max,
608
- clampedValue: value,
609
- },
610
- }));
611
- }
612
- return value;
598
+ else if (typeof input === 'number') {
599
+ value = input;
600
+ }
601
+ else {
602
+ throw validationError('Invalid input type: expected number or string.', {
603
+ input: String(input),
604
+ });
605
+ }
606
+ if (Number.isNaN(value) || !Number.isFinite(value)) {
607
+ throw validationError('Invalid number value (NaN or Infinity).', { input });
608
+ }
609
+ let clamped = false;
610
+ const originalValueForLog = value;
611
+ if (min !== undefined && value < min) {
612
+ value = min;
613
+ clamped = true;
614
+ }
615
+ if (max !== undefined && value > max) {
616
+ value = max;
617
+ clamped = true;
618
+ }
619
+ if (clamped) {
620
+ logger.debug('Number clamped to range.', requestContextService.createRequestContext({
621
+ operation: 'Sanitization.sanitizeNumber.clamped',
622
+ additionalContext: {
623
+ originalInput: String(input),
624
+ parsedValue: originalValueForLog,
625
+ minValue: min,
626
+ maxValue: max,
627
+ clampedValue: value,
628
+ },
629
+ }));
630
+ }
631
+ return value;
632
+ });
613
633
  }
614
634
  /**
615
635
  * Produces a log-safe deep clone of `input` with sensitive field values replaced by `'[REDACTED]'`.
@@ -1 +1 @@
1
- {"version":3,"file":"sanitization.js","sourceRoot":"","sources":["../../../src/utils/security/sanitization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sanitization.js","sourceRoot":"","sources":["../../../src/utils/security/sanitization.ts"],"names":[],"mappings":"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"}
@@ -23,8 +23,12 @@ export declare let sdk: NodeSDK | null;
23
23
  * Worker bundle failures.
24
24
  *
25
25
  * Configures:
26
- * - OTLP trace exporter + `BatchSpanProcessor` (when `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` is set)
27
- * - OTLP metrics exporter + `PeriodicExportingMetricReader` at 15 s intervals (when `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` is set)
26
+ * - OTLP trace exporter + `BatchSpanProcessor` (when a traces endpoint resolves:
27
+ * `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT`, else `OTEL_EXPORTER_OTLP_ENDPOINT` + `v1/traces`)
28
+ * - OTLP metrics exporter + `PeriodicExportingMetricReader` at 15 s intervals (when a metrics
29
+ * endpoint resolves: `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT`, else the base + `v1/metrics`)
30
+ * - No log record processors, and no metric reader when no metrics endpoint resolves — so
31
+ * `NodeSDK`'s env-driven defaults never export anything the framework config did not ask for
28
32
  * - `TraceIdRatioBasedSampler` using `config.openTelemetry.samplingRatio`
29
33
  * - Node auto-instrumentations (HTTP enabled, FS disabled)
30
34
  * - Pino instrumentation that injects `trace_id`/`span_id` into log records
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../../src/utils/telemetry/instrumentation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAKvD;;;;;GAKG;AACH,eAAO,IAAI,GAAG,EAAE,OAAO,GAAG,IAAW,CAAC;AAmEtC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAsH7D;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,qBAAqB,CAAC,SAAS,SAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB3E"}
1
+ {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../../src/utils/telemetry/instrumentation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAKvD;;;;;GAKG;AACH,eAAO,IAAI,GAAG,EAAE,OAAO,GAAG,IAAW,CAAC;AAmEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAkI7D;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,qBAAqB,CAAC,SAAS,SAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAsB3E"}
@@ -80,8 +80,12 @@ function detectCloudResource() {
80
80
  * Worker bundle failures.
81
81
  *
82
82
  * Configures:
83
- * - OTLP trace exporter + `BatchSpanProcessor` (when `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` is set)
84
- * - OTLP metrics exporter + `PeriodicExportingMetricReader` at 15 s intervals (when `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` is set)
83
+ * - OTLP trace exporter + `BatchSpanProcessor` (when a traces endpoint resolves:
84
+ * `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT`, else `OTEL_EXPORTER_OTLP_ENDPOINT` + `v1/traces`)
85
+ * - OTLP metrics exporter + `PeriodicExportingMetricReader` at 15 s intervals (when a metrics
86
+ * endpoint resolves: `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT`, else the base + `v1/metrics`)
87
+ * - No log record processors, and no metric reader when no metrics endpoint resolves — so
88
+ * `NodeSDK`'s env-driven defaults never export anything the framework config did not ask for
85
89
  * - `TraceIdRatioBasedSampler` using `config.openTelemetry.samplingRatio`
86
90
  * - Node auto-instrumentations (HTTP enabled, FS disabled)
87
91
  * - Pino instrumentation that injects `trace_id`/`span_id` into log records
@@ -135,7 +139,7 @@ export async function initializeOpenTelemetry() {
135
139
  const tracesEndpoint = config.openTelemetry.tracesEndpoint;
136
140
  const metricsEndpoint = config.openTelemetry.metricsEndpoint;
137
141
  if (!tracesEndpoint && !metricsEndpoint) {
138
- diag.warn('OTEL_ENABLED is true, but no OTLP endpoint for traces or metrics is configured. OpenTelemetry will not export any telemetry.');
142
+ diag.warn('OTEL_ENABLED is true, but no OTLP endpoint for traces or metrics is configured. OpenTelemetry will not export any telemetry. Set OTEL_EXPORTER_OTLP_ENDPOINT, or the signal-specific OTEL_EXPORTER_OTLP_TRACES_ENDPOINT / OTEL_EXPORTER_OTLP_METRICS_ENDPOINT.');
139
143
  }
140
144
  const resource = resourceFromAttributes({
141
145
  [ATTR_SERVICE_NAME]: config.openTelemetry.serviceName,
@@ -152,16 +156,27 @@ export async function initializeOpenTelemetry() {
152
156
  else {
153
157
  diag.info('No OTLP traces endpoint configured. Traces will not be exported.');
154
158
  }
155
- const metricReader = metricsEndpoint
156
- ? new PeriodicExportingMetricReader({
159
+ const metricReaders = [];
160
+ if (metricsEndpoint) {
161
+ diag.info(`Using OTLP exporter for metrics, endpoint: ${metricsEndpoint}`);
162
+ metricReaders.push(new PeriodicExportingMetricReader({
157
163
  exporter: new OTLPMetricExporter({ url: metricsEndpoint }),
158
164
  exportIntervalMillis: 15000,
159
- })
160
- : undefined;
165
+ }));
166
+ }
167
+ else {
168
+ diag.info('No OTLP metrics endpoint configured. Metrics will not be exported.');
169
+ }
170
+ /**
171
+ * All three lists are passed explicitly, empty or not: an omitted one
172
+ * makes `NodeSDK` build its own OTLP exporter from `OTEL_*` env vars
173
+ * (defaulting to localhost:4318), exporting outside the framework config.
174
+ */
161
175
  sdk = new NodeSDK({
162
176
  resource,
163
177
  spanProcessors,
164
- ...(metricReader && { metricReaders: [metricReader] }),
178
+ metricReaders,
179
+ logRecordProcessors: [],
165
180
  sampler: new TraceIdRatioBasedSampler(config.openTelemetry.samplingRatio),
166
181
  instrumentations: [
167
182
  new HttpInstrumentation({
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../src/utils/telemetry/instrumentation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../../src/utils/telemetry/instrumentation.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ description: >
4
4
  Scaffold an MCP App tool + UI resource pair. Use when the user asks to add a tool with interactive UI, create an MCP App, or build a visual/interactive tool.
5
5
  metadata:
6
6
  author: cyanheads
7
- version: "1.5"
7
+ version: "1.6"
8
8
  audience: external
9
9
  type: reference
10
10
  ---
@@ -175,38 +175,31 @@ export const {{RESOURCE_EXPORT}} = appResource('ui://{{tool-name}}/app.html', {
175
175
  ctx.log.debug('Serving app UI.', { resourceUri: ctx.uri?.href });
176
176
  return APP_HTML;
177
177
  },
178
-
179
- list: () => ({
180
- resources: [
181
- {
182
- uri: 'ui://{{tool-name}}/app.html',
183
- name: '{{TOOL_TITLE}}',
184
- description: 'Interactive UI for {{tool_name}}.',
185
- },
186
- ],
187
- }),
188
178
  });
189
179
  ```
190
180
 
181
+ No `list` callback: `ui://{{tool-name}}/app.html` has no template variables, so it registers as a fixed resource that `resources/list` already reports. Registration ignores `list` on a variable-free URI.
182
+
191
183
  ## UI Notes
192
184
 
193
185
  - **Ship self-contained HTML.** Author with Vite + `vite-plugin-singlefile` or inline the SDK. Live CDN imports in a `ui://` resource are a CSP footgun (every domain has to be whitelisted on `_meta.ui.csp.resourceDomains`), a supply-chain footgun (third-party JS executes inside the host's iframe), and a runtime footgun (every render needs network). The `unpkg` line in the template is for prototyping only.
194
186
  - **CSP.** MCP Apps iframes run under deny-by-default CSP. With `appResource()`, put `_meta.ui.csp.resourceDomains` on the definition; the builder mirrors it into returned `resources/read` content items. With plain `resource()`, attach `_meta.ui` yourself in `format()`.
195
187
  - **Adopt the host's visual identity, don't impose your own.** App UIs render inside the host's iframe alongside its native UI. Three host hooks layer on top of your CSS:
196
188
  - `applyDocumentTheme(hostContext.theme)` — sets `color-scheme` and a `data-theme` attribute on `<html>`
197
- - `applyHostStyleVariables(hostContext.styles.variables)` — installs host CSS custom properties on `:root` (host decides the names, e.g. `--mcp-color-bg-primary`)
189
+ - `applyHostStyleVariables(hostContext.styles.variables)` — installs host CSS custom properties on `:root`. The MCP Apps spec fixes the names (`McpUiStyleVariableKey`): `--color-background-primary`, `--color-text-primary`, `--color-border-primary`, `--font-sans`, `--border-radius-md`, and so on. A host may send any subset.
198
190
  - `applyHostFonts(hostContext.styles.css.fonts)` — installs `@font-face` rules for the host's font stack
199
191
 
200
- Author CSS to *consume* these via `var(--mcp-color-bg-primary, /* fallback */ #fff)`. Don't hardcode brand colors that fight the host.
201
- - **Pre-connect baseline.** `app.connect()` is async — host context arrives a frame or two after first paint. Without a baseline, the UI flashes unstyled or wrong-themed on light hosts. Ship a `prefers-color-scheme`-aware default so the first frame is sensible:
192
+ Author CSS to *consume* these via `var(--color-background-primary, var(--bg))` — the host variable first, a local token as the fallback. Don't hardcode brand colors that fight the host.
193
+ - **Pre-connect baseline.** `app.connect()` is async — host context arrives a frame or two after first paint. Without a baseline, the UI flashes unstyled or wrong-themed on light hosts. Ship local tokens with a light default, a `prefers-color-scheme` dark override, and a `data-theme` pin so the first frame is sensible:
202
194
 
203
195
  ```css
204
196
  :root { color-scheme: light dark; --bg: #fff; --fg: #111; }
205
- @media (prefers-color-scheme: dark) { :root { --bg: #0c0d12; --fg: #ededef; } }
206
- body { background: var(--bg); color: var(--fg); }
197
+ @media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --bg: #0c0d12; --fg: #ededef; } }
198
+ :root[data-theme="dark"] { --bg: #0c0d12; --fg: #ededef; }
199
+ body { background: var(--color-background-primary, var(--bg)); color: var(--color-text-primary, var(--fg)); }
207
200
  ```
208
201
 
209
- Host vars override these once `onhostcontextchanged` fires.
202
+ Once host context is applied, the host's variables win; the local tokens cover the gap before it arrives and any variable the host omits.
210
203
  - **`format()` for app tools.** The first `text` content block is typically JSON that the UI parses via `ontoolresult`. Additional blocks are the human-readable fallback that non-app hosts and LLMs consume — they must render every field the LLM needs to reason about. JSON-only payloads leave model-visible context blind.
211
204
  - **App resource `format()`.** `appResource()` already preserves raw HTML for the default app MIME type and mirrors definition `_meta.ui` into content items. Add a custom `format()` only when you need extra per-read metadata or non-default content shaping.
212
205
 
@@ -237,7 +230,8 @@ If the repo already uses `definitions/index.ts` barrels, update those instead of
237
230
  - [ ] App resource `_meta.ui.csp.resourceDomains` lists every external domain loaded by the UI
238
231
  - [ ] UI bundles or inlines the client SDK for the shipped HTML, and handles `app.ontoolresult`
239
232
  - [ ] UI applies host context updates via `app.onhostcontextchanged`
240
- - [ ] App resource has a `list` callback returning at least one URI so resource-aware clients can discover it
233
+ - [ ] UI CSS reads host variables with local fallbacks (`var(--color-background-primary, var(--bg))`) over a light/dark baseline
234
+ - [ ] No `list` callback on the fixed `ui://…/app.html` resource — `resources/list` already reports it
241
235
  - [ ] Both registered in the project's existing `createApp()` arrays (directly or via barrels)
242
236
  - [ ] Handler tested directly via `createMockContext()`, or `add-test` skill run to scaffold the test file
243
237
  - [ ] `bun run devcheck` passes (linter validates `_meta.ui` and tool/resource pairing)
@@ -4,7 +4,7 @@ description: >
4
4
  Scaffold a new MCP prompt template. Use when the user asks to add a prompt, create a reusable message template, or define a prompt for LLM interactions.
5
5
  metadata:
6
6
  author: cyanheads
7
- version: "1.3"
7
+ version: "1.4"
8
8
  audience: external
9
9
  type: reference
10
10
  ---
@@ -121,6 +121,8 @@ export const codeReview = prompt('code_review', {
121
121
 
122
122
  `completable()` is transparent to the linter — it does not affect `describe-on-fields` or `schema-serializable` rules. All completable-wrapped fields still require `.describe()` on the underlying schema.
123
123
 
124
+ For an optional argument, wrap the inner schema and apply `.optional()` outside: `completable(z.string().describe('…'), cb).optional()`. The SDK unwraps `.optional()` before checking for a completer, so `completable(z.string().optional(), cb)` type-checks but never completes.
125
+
124
126
  ## Checklist
125
127
 
126
128
  - [ ] File created at `src/mcp-server/prompts/definitions/{{prompt-name}}.prompt.ts`
@@ -4,7 +4,7 @@ description: >
4
4
  Add a new storage or service provider to the core package. Use when implementing a new backend for StorageService (e.g., a new database) or a new service provider (e.g., a new LLM backend).
5
5
  metadata:
6
6
  author: cyanheads
7
- version: "1.1"
7
+ version: "1.2"
8
8
  audience: internal
9
9
  type: reference
10
10
  ---
@@ -57,10 +57,19 @@ Provider file location and naming differ by domain:
57
57
  on `src/storage/core/providerHelpers.ts` rather than re-deriving what the existing
58
58
  providers share:
59
59
 
60
+ - `serializeValue` / `encodeEntries` — the JSON guard every provider runs before it
61
+ writes. `serializeValue` returns the value's JSON text and throws
62
+ `McpError(SerializationError)` for a `bigint`, a cyclic reference, or a top-level
63
+ `undefined`, function, or symbol. `encodeEntries` encodes a whole `setMany` batch
64
+ first, so one bad value rejects the batch before anything is written. Store and
65
+ read back the JSON form; never keep the caller's object.
60
66
  - `getManyViaGet` / `setManyViaSet` / `deleteManyViaDelete` — the batch methods as a
61
- parallel fan-out over the single-key methods, for backends with no native batch API.
67
+ parallel fan-out of single-key operations, for backends with no native batch API.
68
+ Pass `setManyViaSet` the output of `encodeEntries` and a private per-key write. Calling
69
+ `this.set` per entry would let a bad entry fail after the others have landed.
62
70
  - `encodeEnvelope` / `decodeEnvelope` — the TTL envelope for backends with no TTL of their
63
- own (R2, filesystem). `decodeEnvelope` returns `{ kind: 'expired' }` so the provider can
71
+ own (R2, filesystem). `encodeEnvelope` takes the JSON text from `serializeValue` and
72
+ returns the stored document. `decodeEnvelope` returns `{ kind: 'expired' }` so the provider can
64
73
  delete on read, returns pre-envelope JSON as a plain value, and throws `SyntaxError` on
65
74
  invalid JSON so the provider can attach the key to the error it raises.
66
75
  - `paginateSortedKeys` — one `list()` page over an already-sorted key set, with the cursor
@@ -128,7 +137,8 @@ Provider file location and naming differ by domain:
128
137
  - [ ] Registered in the correct factory for the domain (see Step 5)
129
138
  - [ ] Storage: provider string added to `z.enum` in `src/config/index.ts`
130
139
  - [ ] Storage: Worker-compatible array in `storageFactory.ts` updated if applicable
131
- - [ ] Storage: batch, TTL envelope, paging, and `LIKE` escaping come from `providerHelpers.ts`, not a local copy
140
+ - [ ] Storage: value encoding, batch, TTL envelope, paging, and `LIKE` escaping come from `providerHelpers.ts`, not a local copy
141
+ - [ ] Storage: the shared compliance suite (`tests/compliance/storage-provider.ts`) runs against the provider
132
142
  - [ ] Speech: `provider` literal added to `SpeechProviderConfig` union in `types.ts`
133
143
  - [ ] LLM: `src/core/app.ts` instantiation logic updated if adding a second LLM provider
134
144
  - [ ] Optional peer dependency added to both `peerDependencies` and `peerDependenciesMeta` in `package.json` if Tier 3
@@ -4,7 +4,7 @@ description: >
4
4
  Scaffold a new MCP resource definition. Use when the user asks to add a resource, expose data via URI, or create a readable endpoint.
5
5
  metadata:
6
6
  author: cyanheads
7
- version: "1.6"
7
+ version: "1.7"
8
8
  audience: external
9
9
  type: reference
10
10
  ---
@@ -63,12 +63,12 @@ export const {{RESOURCE_EXPORT}} = resource('{{scheme}}://{{{paramName}}}/data',
63
63
 
64
64
  ### With pagination
65
65
 
66
- For resources that return large result sets, include `cursor` in the URI template params and use opaque cursor pagination in the `handler`. The cursor arrives as a validated URI param. `paginateArray` requires a `RequestContext` for logging — create one from `requestContextService`:
66
+ For resources that return large result sets, use opaque cursor pagination in the `handler`. `resources/read` carries no cursor of its own, so the cursor must be a URI template variable — it arrives as a validated URI param. Make it a path segment: a `{?cursor}` query expansion is mandatory in the SDK's template matcher, so the bare URI (no `?cursor=`) stops matching. Serve the first page from an unpaged sibling resource that returns `nextCursor`, or disclose truncation in the body and point callers at a tool that pages. `paginateArray` requires a `RequestContext` for logging — create one from `requestContextService`:
67
67
 
68
68
  ```typescript
69
69
  import { extractCursor, paginateArray, requestContextService } from '@cyanheads/mcp-ts-core/utils';
70
70
 
71
- // URI template: '{{scheme}}://{{{paramName}}}/items'
71
+ // URI template: '{{scheme}}://{{{paramName}}}/items/{cursor}'
72
72
  params: z.object({
73
73
  {{paramName}}: z.string().describe('{{PARAM_DESCRIPTION}}'),
74
74
  cursor: z.string().optional().describe('Opaque pagination cursor'),