@cyanheads/mcp-ts-core 0.13.7 → 0.13.8

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 (210) hide show
  1. package/AGENTS.md +3 -3
  2. package/CLAUDE.md +3 -3
  3. package/README.md +3 -1
  4. package/changelog/0.13.x/0.13.8.md +101 -0
  5. package/dist/config/index.d.ts +9 -0
  6. package/dist/config/index.d.ts.map +1 -1
  7. package/dist/config/index.js +19 -0
  8. package/dist/config/index.js.map +1 -1
  9. package/dist/core/app.d.ts.map +1 -1
  10. package/dist/core/app.js +14 -2
  11. package/dist/core/app.js.map +1 -1
  12. package/dist/core/context.d.ts.map +1 -1
  13. package/dist/core/context.js +13 -3
  14. package/dist/core/context.js.map +1 -1
  15. package/dist/core/worker.d.ts +2 -0
  16. package/dist/core/worker.d.ts.map +1 -1
  17. package/dist/core/worker.js +2 -0
  18. package/dist/core/worker.js.map +1 -1
  19. package/dist/linter/rules/enrichment-rules.d.ts +3 -2
  20. package/dist/linter/rules/enrichment-rules.d.ts.map +1 -1
  21. package/dist/linter/rules/enrichment-rules.js +9 -2
  22. package/dist/linter/rules/enrichment-rules.js.map +1 -1
  23. package/dist/linter/rules/handler-body-rules.d.ts.map +1 -1
  24. package/dist/linter/rules/handler-body-rules.js +10 -4
  25. package/dist/linter/rules/handler-body-rules.js.map +1 -1
  26. package/dist/linter/rules/schema-rules.d.ts +5 -0
  27. package/dist/linter/rules/schema-rules.d.ts.map +1 -1
  28. package/dist/linter/rules/schema-rules.js +44 -17
  29. package/dist/linter/rules/schema-rules.js.map +1 -1
  30. package/dist/mcp-server/outputContract.d.ts +33 -0
  31. package/dist/mcp-server/outputContract.d.ts.map +1 -0
  32. package/dist/mcp-server/outputContract.js +43 -0
  33. package/dist/mcp-server/outputContract.js.map +1 -0
  34. package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts.map +1 -1
  35. package/dist/mcp-server/resources/utils/resourceHandlerFactory.js +10 -2
  36. package/dist/mcp-server/resources/utils/resourceHandlerFactory.js.map +1 -1
  37. package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts +16 -5
  38. package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts.map +1 -1
  39. package/dist/mcp-server/tools/utils/toolHandlerFactory.js +65 -13
  40. package/dist/mcp-server/tools/utils/toolHandlerFactory.js.map +1 -1
  41. package/dist/mcp-server/transports/auth/lib/authUtils.js +4 -1
  42. package/dist/mcp-server/transports/auth/lib/authUtils.js.map +1 -1
  43. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.d.ts.map +1 -1
  44. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js +1 -1
  45. package/dist/mcp-server/transports/auth/strategies/jwtStrategy.js.map +1 -1
  46. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.d.ts.map +1 -1
  47. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js +2 -5
  48. package/dist/mcp-server/transports/auth/strategies/oauthStrategy.js.map +1 -1
  49. package/dist/mcp-server/transports/http/sessionStore.d.ts.map +1 -1
  50. package/dist/mcp-server/transports/http/sessionStore.js +2 -2
  51. package/dist/mcp-server/transports/http/sessionStore.js.map +1 -1
  52. package/dist/services/canvas/core/CanvasRegistry.js +1 -1
  53. package/dist/services/canvas/core/CanvasRegistry.js.map +1 -1
  54. package/dist/services/canvas/core/DataCanvas.d.ts.map +1 -1
  55. package/dist/services/canvas/core/DataCanvas.js +7 -5
  56. package/dist/services/canvas/core/DataCanvas.js.map +1 -1
  57. package/dist/services/canvas/core/canvasFactory.d.ts.map +1 -1
  58. package/dist/services/canvas/core/canvasFactory.js +2 -2
  59. package/dist/services/canvas/core/canvasFactory.js.map +1 -1
  60. package/dist/services/canvas/providers/duckdb/DuckdbProvider.d.ts.map +1 -1
  61. package/dist/services/canvas/providers/duckdb/DuckdbProvider.js +25 -16
  62. package/dist/services/canvas/providers/duckdb/DuckdbProvider.js.map +1 -1
  63. package/dist/services/llm/providers/openrouter.provider.js +1 -1
  64. package/dist/services/llm/providers/openrouter.provider.js.map +1 -1
  65. package/dist/services/speech/providers/elevenlabs.provider.js +3 -3
  66. package/dist/services/speech/providers/elevenlabs.provider.js.map +1 -1
  67. package/dist/services/speech/providers/whisper.provider.d.ts.map +1 -1
  68. package/dist/services/speech/providers/whisper.provider.js +5 -5
  69. package/dist/services/speech/providers/whisper.provider.js.map +1 -1
  70. package/dist/storage/core/StorageService.d.ts.map +1 -1
  71. package/dist/storage/core/StorageService.js +3 -6
  72. package/dist/storage/core/StorageService.js.map +1 -1
  73. package/dist/storage/core/storageFactory.d.ts.map +1 -1
  74. package/dist/storage/core/storageFactory.js +12 -15
  75. package/dist/storage/core/storageFactory.js.map +1 -1
  76. package/dist/storage/core/storageValidation.d.ts +13 -13
  77. package/dist/storage/core/storageValidation.d.ts.map +1 -1
  78. package/dist/storage/core/storageValidation.js +49 -125
  79. package/dist/storage/core/storageValidation.js.map +1 -1
  80. package/dist/storage/providers/cloudflare/d1Provider.d.ts.map +1 -1
  81. package/dist/storage/providers/cloudflare/d1Provider.js +5 -3
  82. package/dist/storage/providers/cloudflare/d1Provider.js.map +1 -1
  83. package/dist/storage/providers/cloudflare/kvProvider.d.ts.map +1 -1
  84. package/dist/storage/providers/cloudflare/kvProvider.js +1 -1
  85. package/dist/storage/providers/cloudflare/kvProvider.js.map +1 -1
  86. package/dist/storage/providers/cloudflare/r2Provider.d.ts.map +1 -1
  87. package/dist/storage/providers/cloudflare/r2Provider.js +3 -3
  88. package/dist/storage/providers/cloudflare/r2Provider.js.map +1 -1
  89. package/dist/storage/providers/fileSystem/fileSystemProvider.js +4 -4
  90. package/dist/storage/providers/fileSystem/fileSystemProvider.js.map +1 -1
  91. package/dist/storage/providers/inMemory/inMemoryProvider.d.ts +1 -1
  92. package/dist/storage/providers/inMemory/inMemoryProvider.d.ts.map +1 -1
  93. package/dist/storage/providers/inMemory/inMemoryProvider.js +6 -5
  94. package/dist/storage/providers/inMemory/inMemoryProvider.js.map +1 -1
  95. package/dist/testing/fuzz.d.ts.map +1 -1
  96. package/dist/testing/fuzz.js +7 -1
  97. package/dist/testing/fuzz.js.map +1 -1
  98. package/dist/testing/index.d.ts +15 -2
  99. package/dist/testing/index.d.ts.map +1 -1
  100. package/dist/testing/index.js +51 -6
  101. package/dist/testing/index.js.map +1 -1
  102. package/dist/types-global/errors.d.ts +7 -4
  103. package/dist/types-global/errors.d.ts.map +1 -1
  104. package/dist/types-global/errors.js.map +1 -1
  105. package/dist/utils/formatting/codeSpan.d.ts +27 -0
  106. package/dist/utils/formatting/codeSpan.d.ts.map +1 -0
  107. package/dist/utils/formatting/codeSpan.js +42 -0
  108. package/dist/utils/formatting/codeSpan.js.map +1 -0
  109. package/dist/utils/formatting/diffFormatter.d.ts.map +1 -1
  110. package/dist/utils/formatting/diffFormatter.js +7 -15
  111. package/dist/utils/formatting/diffFormatter.js.map +1 -1
  112. package/dist/utils/formatting/markdownBuilder.d.ts +12 -5
  113. package/dist/utils/formatting/markdownBuilder.d.ts.map +1 -1
  114. package/dist/utils/formatting/markdownBuilder.js +14 -2
  115. package/dist/utils/formatting/markdownBuilder.js.map +1 -1
  116. package/dist/utils/formatting/tableFormatter.d.ts.map +1 -1
  117. package/dist/utils/formatting/tableFormatter.js +5 -9
  118. package/dist/utils/formatting/tableFormatter.js.map +1 -1
  119. package/dist/utils/formatting/treeFormatter.d.ts.map +1 -1
  120. package/dist/utils/formatting/treeFormatter.js +5 -9
  121. package/dist/utils/formatting/treeFormatter.js.map +1 -1
  122. package/dist/utils/internal/error-handler/errorHandler.d.ts +17 -10
  123. package/dist/utils/internal/error-handler/errorHandler.d.ts.map +1 -1
  124. package/dist/utils/internal/error-handler/errorHandler.js +47 -26
  125. package/dist/utils/internal/error-handler/errorHandler.js.map +1 -1
  126. package/dist/utils/internal/error-handler/mappings.d.ts +17 -1
  127. package/dist/utils/internal/error-handler/mappings.d.ts.map +1 -1
  128. package/dist/utils/internal/error-handler/mappings.js +22 -1
  129. package/dist/utils/internal/error-handler/mappings.js.map +1 -1
  130. package/dist/utils/internal/error-handler/types.d.ts +2 -0
  131. package/dist/utils/internal/error-handler/types.d.ts.map +1 -1
  132. package/dist/utils/internal/logger.d.ts +75 -3
  133. package/dist/utils/internal/logger.d.ts.map +1 -1
  134. package/dist/utils/internal/logger.js +181 -52
  135. package/dist/utils/internal/logger.js.map +1 -1
  136. package/dist/utils/internal/performance.d.ts +11 -0
  137. package/dist/utils/internal/performance.d.ts.map +1 -1
  138. package/dist/utils/internal/performance.js +46 -12
  139. package/dist/utils/internal/performance.js.map +1 -1
  140. package/dist/utils/network/fetchWithTimeout.d.ts +11 -5
  141. package/dist/utils/network/fetchWithTimeout.d.ts.map +1 -1
  142. package/dist/utils/network/fetchWithTimeout.js +50 -23
  143. package/dist/utils/network/fetchWithTimeout.js.map +1 -1
  144. package/dist/utils/network/retry.d.ts +16 -8
  145. package/dist/utils/network/retry.d.ts.map +1 -1
  146. package/dist/utils/network/retry.js +19 -8
  147. package/dist/utils/network/retry.js.map +1 -1
  148. package/dist/utils/overflow/outlineOnOverflow.d.ts +18 -2
  149. package/dist/utils/overflow/outlineOnOverflow.d.ts.map +1 -1
  150. package/dist/utils/overflow/outlineOnOverflow.js +28 -3
  151. package/dist/utils/overflow/outlineOnOverflow.js.map +1 -1
  152. package/dist/utils/pagination/pagination.d.ts +3 -1
  153. package/dist/utils/pagination/pagination.d.ts.map +1 -1
  154. package/dist/utils/pagination/pagination.js +10 -2
  155. package/dist/utils/pagination/pagination.js.map +1 -1
  156. package/dist/utils/parsing/csvParser.d.ts.map +1 -1
  157. package/dist/utils/parsing/csvParser.js +4 -2
  158. package/dist/utils/parsing/csvParser.js.map +1 -1
  159. package/dist/utils/parsing/htmlExtractor.js +1 -1
  160. package/dist/utils/parsing/htmlExtractor.js.map +1 -1
  161. package/dist/utils/parsing/jsonParser.d.ts.map +1 -1
  162. package/dist/utils/parsing/jsonParser.js +3 -1
  163. package/dist/utils/parsing/jsonParser.js.map +1 -1
  164. package/dist/utils/parsing/xmlParser.d.ts.map +1 -1
  165. package/dist/utils/parsing/xmlParser.js +3 -1
  166. package/dist/utils/parsing/xmlParser.js.map +1 -1
  167. package/dist/utils/parsing/yamlParser.d.ts.map +1 -1
  168. package/dist/utils/parsing/yamlParser.js +3 -1
  169. package/dist/utils/parsing/yamlParser.js.map +1 -1
  170. package/dist/utils/security/idGenerator.d.ts.map +1 -1
  171. package/dist/utils/security/idGenerator.js +20 -4
  172. package/dist/utils/security/idGenerator.js.map +1 -1
  173. package/dist/utils/security/sanitization.d.ts +31 -0
  174. package/dist/utils/security/sanitization.d.ts.map +1 -1
  175. package/dist/utils/security/sanitization.js +98 -11
  176. package/dist/utils/security/sanitization.js.map +1 -1
  177. package/dist/utils/telemetry/attributes.d.ts +16 -1
  178. package/dist/utils/telemetry/attributes.d.ts.map +1 -1
  179. package/dist/utils/telemetry/attributes.js +16 -1
  180. package/dist/utils/telemetry/attributes.js.map +1 -1
  181. package/dist/utils/telemetry/instrumentation.d.ts +9 -3
  182. package/dist/utils/telemetry/instrumentation.d.ts.map +1 -1
  183. package/dist/utils/telemetry/instrumentation.js +85 -13
  184. package/dist/utils/telemetry/instrumentation.js.map +1 -1
  185. package/framework-skills/api-auth/SKILL.md +3 -1
  186. package/framework-skills/api-canvas/SKILL.md +3 -3
  187. package/framework-skills/api-config/SKILL.md +6 -3
  188. package/framework-skills/api-context/SKILL.md +3 -3
  189. package/framework-skills/api-errors/SKILL.md +16 -11
  190. package/framework-skills/api-linter/SKILL.md +7 -3
  191. package/framework-skills/api-telemetry/SKILL.md +31 -11
  192. package/framework-skills/api-testing/SKILL.md +5 -3
  193. package/framework-skills/api-utils/SKILL.md +9 -9
  194. package/framework-skills/api-utils/references/formatting.md +1 -1
  195. package/framework-skills/api-utils/references/parsing.md +2 -2
  196. package/framework-skills/api-utils/references/security.md +6 -4
  197. package/framework-skills/git-wrapup/SKILL.md +5 -2
  198. package/framework-skills/maintenance/SKILL.md +2 -2
  199. package/framework-skills/polish-docs-meta/SKILL.md +1 -1
  200. package/framework-skills/polish-docs-meta/references/readme.md +1 -0
  201. package/framework-skills/release-and-publish/SKILL.md +2 -2
  202. package/framework-skills/techniques/SKILL.md +1 -1
  203. package/framework-skills/techniques/references/outline-on-overflow.md +12 -7
  204. package/package.json +18 -3
  205. package/scripts/check-skill-versions.ts +103 -22
  206. package/scripts/devcheck.ts +4 -3
  207. package/scripts/lint-packaging.ts +38 -1
  208. package/templates/.env.example +4 -0
  209. package/templates/Dockerfile +26 -6
  210. package/templates/package.json +1 -0
@@ -45,6 +45,18 @@ function isAllowedUrl(input, protocols) {
45
45
  }
46
46
  /** A plain decimal: optional sign, optional fraction, no exponent or separators. */
47
47
  const NUMERIC_STRING = /^[+-]?([0-9]*\.)?[0-9]+$/;
48
+ /** `data.reason` + recovery shared by every `sanitizeNumber` rejection. */
49
+ const INVALID_NUMBER = {
50
+ reason: 'invalid_number',
51
+ recovery: {
52
+ hint: 'Provide a finite decimal number, such as 42 or -3.5, without an exponent or thousands separators.',
53
+ },
54
+ };
55
+ const PATH_REJECTION_HINTS = {
56
+ invalid_path: 'Provide a non-empty path string that contains no null bytes.',
57
+ path_traversal: 'Provide a relative path that stays inside the permitted directory, with no `..` segments climbing out of it.',
58
+ absolute_path_disallowed: 'Provide a relative path instead of an absolute one.',
59
+ };
48
60
  // Dynamically import 'path' only in Node.js environments.
49
61
  // Top-level await ensures the module is loaded before any sanitizePath call.
50
62
  let pathModule;
@@ -341,7 +353,7 @@ export class Sanitization {
341
353
  operation: 'Sanitization.sanitizeString.jsAttempt',
342
354
  additionalContext: { inputSnippet: input.substring(0, 50) },
343
355
  }));
344
- throw validationError('JavaScript sanitization is not supported through sanitizeString due to security risks.');
356
+ throw validationError('JavaScript sanitization is not supported through sanitizeString due to security risks.', { reason: 'unsupported_sanitize_context' });
345
357
  default: {
346
358
  const sanitizeHtmlFn = await loadSanitizeHtml();
347
359
  return sanitizeHtmlFn(input, { allowedTags: [], allowedAttributes: {} });
@@ -392,7 +404,13 @@ export class Sanitization {
392
404
  return trimmedInput;
393
405
  }
394
406
  catch (error) {
395
- throw validationError(error instanceof Error ? error.message : 'Invalid or unsafe URL provided.', { input });
407
+ throw validationError(error instanceof Error ? error.message : 'Invalid or unsafe URL provided.', {
408
+ input,
409
+ reason: 'invalid_url',
410
+ recovery: {
411
+ hint: `Provide an absolute URL with a host and no whitespace or angle brackets, using one of these schemes: ${allowedProtocols.join(', ')}.`,
412
+ },
413
+ });
396
414
  }
397
415
  });
398
416
  }
@@ -438,11 +456,16 @@ export class Sanitization {
438
456
  ...(resolvedRootDir && { rootDir: resolvedRootDir }),
439
457
  };
440
458
  let wasAbsoluteInitially = false;
459
+ const rejectPath = (message, reason) => validationError(message, {
460
+ input: originalInput,
461
+ reason,
462
+ recovery: { hint: PATH_REJECTION_HINTS[reason] },
463
+ });
441
464
  try {
442
465
  if (!input || typeof input !== 'string')
443
- throw new Error('Invalid path input: must be a non-empty string.');
466
+ throw rejectPath('Invalid path input: must be a non-empty string.', 'invalid_path');
444
467
  if (input.includes('\0'))
445
- throw new Error('Path contains null byte, which is disallowed.');
468
+ throw rejectPath('Path contains null byte, which is disallowed.', 'invalid_path');
446
469
  let normalized = path.normalize(input);
447
470
  wasAbsoluteInitially = path.isAbsolute(normalized);
448
471
  if (effectiveOptions.toPosix) {
@@ -452,18 +475,18 @@ export class Sanitization {
452
475
  if (resolvedRootDir) {
453
476
  const fullPath = path.resolve(resolvedRootDir, normalized);
454
477
  if (!fullPath.startsWith(resolvedRootDir + path.sep) && fullPath !== resolvedRootDir) {
455
- throw new Error('Path traversal detected: attempts to escape the defined root directory.');
478
+ throw rejectPath('Path traversal detected: attempts to escape the defined root directory.', 'path_traversal');
456
479
  }
457
480
  finalSanitizedPath = path.relative(resolvedRootDir, fullPath);
458
481
  finalSanitizedPath = finalSanitizedPath === '' ? '.' : finalSanitizedPath;
459
482
  if (path.isAbsolute(finalSanitizedPath) && !effectiveOptions.allowAbsolute) {
460
- throw new Error('Path resolved to absolute outside root when absolute paths are disallowed.');
483
+ throw rejectPath('Path resolved to absolute outside root when absolute paths are disallowed.', 'path_traversal');
461
484
  }
462
485
  }
463
486
  else {
464
487
  if (path.isAbsolute(normalized)) {
465
488
  if (!effectiveOptions.allowAbsolute) {
466
- throw new Error('Absolute paths are disallowed by current options.');
489
+ throw rejectPath('Absolute paths are disallowed by current options.', 'absolute_path_disallowed');
467
490
  }
468
491
  else {
469
492
  finalSanitizedPath = normalized;
@@ -474,7 +497,7 @@ export class Sanitization {
474
497
  const currentWorkingDir = path.resolve('.');
475
498
  if (!resolvedAgainstCwd.startsWith(currentWorkingDir + path.sep) &&
476
499
  resolvedAgainstCwd !== currentWorkingDir) {
477
- throw new Error('Relative path traversal detected (escapes current working directory context).');
500
+ throw rejectPath('Relative path traversal detected (escapes current working directory context).', 'path_traversal');
478
501
  }
479
502
  finalSanitizedPath = normalized;
480
503
  }
@@ -498,7 +521,9 @@ export class Sanitization {
498
521
  errorMessage: error instanceof Error ? error.message : String(error),
499
522
  },
500
523
  }));
501
- throw validationError(error instanceof Error ? error.message : 'Invalid or unsafe path provided.', { input: originalInput });
524
+ if (error instanceof McpError)
525
+ throw error;
526
+ throw rejectPath(error instanceof Error ? error.message : 'Invalid or unsafe path provided.', 'invalid_path');
502
527
  }
503
528
  }
504
529
  /**
@@ -545,6 +570,8 @@ export class Sanitization {
545
570
  throw validationError(`JSON string exceeds maximum allowed size of ${maxSize} bytes.`, {
546
571
  actualSize: computeBytes(input),
547
572
  maxSize,
573
+ reason: 'json_too_large',
574
+ recovery: { hint: `Send a JSON payload of at most ${maxSize} bytes.` },
548
575
  });
549
576
  }
550
577
  return JSON.parse(input);
@@ -554,6 +581,8 @@ export class Sanitization {
554
581
  throw error;
555
582
  throw validationError(error instanceof Error ? error.message : 'Invalid JSON format.', {
556
583
  inputPreview: input.length > 100 ? `${input.substring(0, 100)}...` : input,
584
+ reason: 'invalid_json',
585
+ recovery: { hint: 'Send the value as a well-formed JSON string.' },
557
586
  });
558
587
  }
559
588
  }
@@ -591,7 +620,10 @@ export class Sanitization {
591
620
  if (typeof input === 'string') {
592
621
  const trimmedInput = input.trim();
593
622
  if (!NUMERIC_STRING.test(trimmedInput)) {
594
- throw validationError('Invalid number format: input is empty or not numeric.', { input });
623
+ throw validationError('Invalid number format: input is empty or not numeric.', {
624
+ input,
625
+ ...INVALID_NUMBER,
626
+ });
595
627
  }
596
628
  value = parseFloat(trimmedInput);
597
629
  }
@@ -601,10 +633,14 @@ export class Sanitization {
601
633
  else {
602
634
  throw validationError('Invalid input type: expected number or string.', {
603
635
  input: String(input),
636
+ ...INVALID_NUMBER,
604
637
  });
605
638
  }
606
639
  if (Number.isNaN(value) || !Number.isFinite(value)) {
607
- throw validationError('Invalid number value (NaN or Infinity).', { input });
640
+ throw validationError('Invalid number value (NaN or Infinity).', {
641
+ input,
642
+ ...INVALID_NUMBER,
643
+ });
608
644
  }
609
645
  let clamped = false;
610
646
  const originalValueForLog = value;
@@ -675,6 +711,57 @@ export class Sanitization {
675
711
  return '[Log Sanitization Failed]';
676
712
  }
677
713
  }
714
+ /**
715
+ * Redacts, serializes, and caps a value for a log field: {@link sanitizeForLogging},
716
+ * then `JSON.stringify`, then truncation to at most `maxBytes` UTF-8 bytes.
717
+ *
718
+ * Redaction runs first, so a cut can never keep the prefix of a secret the
719
+ * redactor would have replaced. The cut lands on a character boundary — never
720
+ * inside a multi-byte sequence or between the halves of a surrogate pair — so
721
+ * the result is always well-formed. It is a prefix of the whole serialization,
722
+ * so a truncated payload is no longer valid JSON; `truncated` says so.
723
+ *
724
+ * Returned as a string rather than an object because the logger drops values
725
+ * nested past its sanitize depth, which would silently strip the deep parts of
726
+ * a payload. A value `JSON.stringify` rejects (a `bigint`) yields
727
+ * `'[Log Serialization Failed]'` rather than throwing into the caller's path.
728
+ *
729
+ * Key-name redaction only: a secret inside a free-form string value (a query,
730
+ * a message) is serialized as-is.
731
+ *
732
+ * @param value - The value to serialize.
733
+ * @param maxBytes - Maximum UTF-8 byte length of `text`.
734
+ * @returns `text`, the serialized and possibly truncated payload, and `truncated`.
735
+ * @example
736
+ * ```ts
737
+ * sanitization.serializeForLogging({ query: 'q', apiKey: 'sk-1' }, 16_384);
738
+ * // => { text: '{"query":"q","apiKey":"[REDACTED]"}', truncated: false }
739
+ * ```
740
+ */
741
+ serializeForLogging(value, maxBytes) {
742
+ let json;
743
+ try {
744
+ json = JSON.stringify(this.sanitizeForLogging(value)) ?? 'undefined';
745
+ }
746
+ catch {
747
+ return { text: '[Log Serialization Failed]', truncated: false };
748
+ }
749
+ // Counted by hand rather than with `TextEncoder.encodeInto`, whose fill of a
750
+ // short buffer differs by runtime (Node stops up to two bytes early). A
751
+ // high surrogate starts a 4-byte pair and is sliced only with its partner;
752
+ // `JSON.stringify` escapes lone surrogates, so none reach here.
753
+ let bytes = 0;
754
+ for (let i = 0; i < json.length; i++) {
755
+ const unit = json.charCodeAt(i);
756
+ const width = unit < 0x80 ? 1 : unit < 0x800 ? 2 : unit >= 0xd800 && unit < 0xdc00 ? 4 : 3;
757
+ if (bytes + width > maxBytes)
758
+ return { text: json.slice(0, i), truncated: true };
759
+ bytes += width;
760
+ if (width === 4)
761
+ i++;
762
+ }
763
+ return { text: json, truncated: false };
764
+ }
678
765
  /**
679
766
  * Recursively redacts sensitive fields in an object or array in place.
680
767
  * @param obj - The object or array to redact.
@@ -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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"}
@@ -35,10 +35,19 @@ export declare const ATTR_MCP_TOOL_SUCCESS = "mcp.tool.success";
35
35
  * dashboards can separate incomplete rounds from completed calls.
36
36
  */
37
37
  export declare const ATTR_MCP_TOOL_INPUT_REQUIRED = "mcp.tool.input_required";
38
- /** JSON-RPC error code from the thrown `McpError`, present when `mcp.tool.success` is `false`. */
38
+ /**
39
+ * JSON-RPC error code from the thrown `McpError`, present when `mcp.tool.success` is `false`.
40
+ * Also the code label on `mcp.tool.rejections`, where it is the code the caller received.
41
+ */
39
42
  export declare const ATTR_MCP_TOOL_ERROR_CODE = "mcp.tool.error_code";
40
43
  /** Broad error category: 'upstream' (external API), 'server' (internal bug), or 'client' (bad input). */
41
44
  export declare const ATTR_MCP_TOOL_ERROR_CATEGORY = "mcp.tool.error_category";
45
+ /**
46
+ * How a measured tool call ended, on `mcp.tool.calls` and `mcp.tool.errors`: `ok` (a result
47
+ * or an `input_required` round), `error`, or `cancelled` (`RequestCancelled`, -32011 — the
48
+ * caller hung up). Separates a hang-up from a failure without moving `mcp.tool.success`.
49
+ */
50
+ export declare const ATTR_MCP_TOOL_OUTCOME = "mcp.tool.outcome";
42
51
  /** Whether the tool returned a result containing partial failures (non-empty `failed` array). */
43
52
  export declare const ATTR_MCP_TOOL_PARTIAL_SUCCESS = "mcp.tool.partial_success";
44
53
  /** Whether the tool populated agent-facing enrichment (`ctx.enrich`) on this call. */
@@ -177,6 +186,12 @@ export declare const ATTR_MCP_AUTH_SUBJECT = "mcp.auth.subject";
177
186
  export declare const ATTR_MCP_CONNECTION_TRANSPORT = "mcp.connection.transport";
178
187
  /** Classified JSON-RPC error code from ErrorHandler (e.g., `-32001`, `-32602`). */
179
188
  export declare const ATTR_MCP_ERROR_CLASSIFIED_CODE = "mcp.error.classified_code";
189
+ /**
190
+ * Origin bucket of the classified code — `upstream`, `server`, or `client` — from the same
191
+ * `getErrorCategory` that fills `mcp.tool.error_category` and `mcp.prompt.error_category`,
192
+ * so it separates the canvas tenant-cap refusal (`server`) from upstream throttling on `-32003`.
193
+ */
194
+ export declare const ATTR_MCP_ERROR_CATEGORY = "mcp.error.category";
180
195
  /**
181
196
  * Log level a definition declared for this failure mode: `debug`, `info`,
182
197
  * `notice`, or `warning`. Set only on a record whose declared severity
@@ -1 +1 @@
1
- {"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../../../src/utils/telemetry/attributes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../../../src/utils/telemetry/attributes.ts"],"names":[],"mappings":"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"}
@@ -41,10 +41,19 @@ export const ATTR_MCP_TOOL_SUCCESS = 'mcp.tool.success';
41
41
  * dashboards can separate incomplete rounds from completed calls.
42
42
  */
43
43
  export const ATTR_MCP_TOOL_INPUT_REQUIRED = 'mcp.tool.input_required';
44
- /** JSON-RPC error code from the thrown `McpError`, present when `mcp.tool.success` is `false`. */
44
+ /**
45
+ * JSON-RPC error code from the thrown `McpError`, present when `mcp.tool.success` is `false`.
46
+ * Also the code label on `mcp.tool.rejections`, where it is the code the caller received.
47
+ */
45
48
  export const ATTR_MCP_TOOL_ERROR_CODE = 'mcp.tool.error_code';
46
49
  /** Broad error category: 'upstream' (external API), 'server' (internal bug), or 'client' (bad input). */
47
50
  export const ATTR_MCP_TOOL_ERROR_CATEGORY = 'mcp.tool.error_category';
51
+ /**
52
+ * How a measured tool call ended, on `mcp.tool.calls` and `mcp.tool.errors`: `ok` (a result
53
+ * or an `input_required` round), `error`, or `cancelled` (`RequestCancelled`, -32011 — the
54
+ * caller hung up). Separates a hang-up from a failure without moving `mcp.tool.success`.
55
+ */
56
+ export const ATTR_MCP_TOOL_OUTCOME = 'mcp.tool.outcome';
48
57
  /** Whether the tool returned a result containing partial failures (non-empty `failed` array). */
49
58
  export const ATTR_MCP_TOOL_PARTIAL_SUCCESS = 'mcp.tool.partial_success';
50
59
  /** Whether the tool populated agent-facing enrichment (`ctx.enrich`) on this call. */
@@ -228,6 +237,12 @@ export const ATTR_MCP_CONNECTION_TRANSPORT = 'mcp.connection.transport';
228
237
  // ============================================================================
229
238
  /** Classified JSON-RPC error code from ErrorHandler (e.g., `-32001`, `-32602`). */
230
239
  export const ATTR_MCP_ERROR_CLASSIFIED_CODE = 'mcp.error.classified_code';
240
+ /**
241
+ * Origin bucket of the classified code — `upstream`, `server`, or `client` — from the same
242
+ * `getErrorCategory` that fills `mcp.tool.error_category` and `mcp.prompt.error_category`,
243
+ * so it separates the canvas tenant-cap refusal (`server`) from upstream throttling on `-32003`.
244
+ */
245
+ export const ATTR_MCP_ERROR_CATEGORY = 'mcp.error.category';
231
246
  /**
232
247
  * Log level a definition declared for this failure mode: `debug`, `info`,
233
248
  * `notice`, or `warning`. Set only on a record whose declared severity
@@ -1 +1 @@
1
- {"version":3,"file":"attributes.js","sourceRoot":"","sources":["../../../src/utils/telemetry/attributes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attributes.js","sourceRoot":"","sources":["../../../src/utils/telemetry/attributes.ts"],"names":[],"mappings":"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"}
@@ -27,12 +27,18 @@ export declare let sdk: NodeSDK | null;
27
27
  * `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT`, else `OTEL_EXPORTER_OTLP_ENDPOINT` + `v1/traces`)
28
28
  * - OTLP metrics exporter + `PeriodicExportingMetricReader` at 15 s intervals (when a metrics
29
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
30
+ * - OTLP log exporter + `BatchLogRecordProcessor` only when `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT`
31
+ * is set (never derived from the base), with the framework logger attached to the Logs API;
32
+ * otherwise no log record processors. Every list is passed explicitly, so `NodeSDK`'s
33
+ * env-driven defaults never export anything the framework config did not ask for
32
34
  * - `TraceIdRatioBasedSampler` using `config.openTelemetry.samplingRatio`
33
35
  * - Node auto-instrumentations (HTTP enabled, FS disabled)
34
- * - Pino instrumentation that injects `trace_id`/`span_id` into log records
36
+ * - Pino instrumentation, which reaches only a `pino` loaded after `start()` — the framework
37
+ * logger's records carry `traceId`/`spanId` from the request context instead
35
38
  * - Cloud resource attributes via `detectCloudResource()`
39
+ * - One diag logger: the framework's, writing every level to stderr at
40
+ * `config.openTelemetry.logLevel` (aliases resolved). `NodeSDK` would register a console
41
+ * logger of its own when `OTEL_LOG_LEVEL` is set, so its constructor never sees the variable.
36
42
  *
37
43
  * @returns Promise that resolves when initialization is complete (or was already complete)
38
44
  * @throws Error if `NodeSDK.start()` or any lazy import fails; re-thrown after resetting `sdk` to `null`
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAkI7D;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;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAavD;;;;;GAKG;AACH,eAAO,IAAI,GAAG,EAAE,OAAO,GAAG,IAAW,CAAC;AAiGtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CA0K7D;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,qBAAqB,CAAC,SAAS,SAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAuB3E"}
@@ -4,9 +4,16 @@
4
4
  * Supports both Node.js (full NodeSDK) and serverless runtimes (lightweight telemetry).
5
5
  * @module src/utils/telemetry/instrumentation
6
6
  */
7
- import { DiagConsoleLogger, DiagLogLevel, diag } from '@opentelemetry/api';
7
+ import { DiagLogLevel, diag } from '@opentelemetry/api';
8
8
  import { config } from '../../config/index.js';
9
+ import { setOtelLogSink } from '../internal/logger.js';
9
10
  import { runtimeCaps } from '../internal/runtime.js';
11
+ /**
12
+ * Metric export cadence, and the per-export timeout. The reader clamps a
13
+ * timeout longer than its interval down to it and logs a notice on every boot
14
+ * saying so, so the timeout is set to the interval outright.
15
+ */
16
+ const METRIC_EXPORT_INTERVAL_MS = 15_000;
10
17
  /**
11
18
  * The active OpenTelemetry `NodeSDK` instance, or `null` when telemetry is disabled,
12
19
  * the runtime is not Node/Bun, or the SDK has been shut down.
@@ -69,6 +76,36 @@ function detectCloudResource() {
69
76
  }
70
77
  return attrs;
71
78
  }
79
+ /**
80
+ * A diag logger that writes every level to stderr. `DiagConsoleLogger` sends
81
+ * `info` and `debug` to stdout, which the stdio transport reserves for JSON-RPC.
82
+ */
83
+ function createStderrDiagLogger(format) {
84
+ const write = (message, ...args) => {
85
+ process.stderr.write(`${format(message, ...args)}\n`);
86
+ };
87
+ return { debug: write, error: write, info: write, verbose: write, warn: write };
88
+ }
89
+ /**
90
+ * Runs `construct` with `OTEL_LOG_LEVEL` absent from `process.env`, restoring
91
+ * it afterwards. `NodeSDK`'s constructor registers a `DiagConsoleLogger` of its
92
+ * own whenever the variable is set: it parses the raw value, so the
93
+ * framework's aliases (`warning`, `err`) read as unknown; it writes info and
94
+ * debug to stdout; and at `DEBUG` it announces its own registration there
95
+ * before anything could replace it. The framework's diag logger already
96
+ * carries the configured level, so the constructor never needs to see it.
97
+ */
98
+ function withoutOtelLogLevelEnv(construct) {
99
+ const level = process.env.OTEL_LOG_LEVEL;
100
+ delete process.env.OTEL_LOG_LEVEL;
101
+ try {
102
+ return construct();
103
+ }
104
+ finally {
105
+ if (level !== undefined)
106
+ process.env.OTEL_LOG_LEVEL = level;
107
+ }
108
+ }
72
109
  /**
73
110
  * Initializes the OpenTelemetry SDK with runtime-appropriate configuration.
74
111
  * Idempotent — safe to call multiple times; subsequent calls return the existing promise or resolve immediately.
@@ -84,12 +121,18 @@ function detectCloudResource() {
84
121
  * `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT`, else `OTEL_EXPORTER_OTLP_ENDPOINT` + `v1/traces`)
85
122
  * - OTLP metrics exporter + `PeriodicExportingMetricReader` at 15 s intervals (when a metrics
86
123
  * 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
124
+ * - OTLP log exporter + `BatchLogRecordProcessor` only when `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT`
125
+ * is set (never derived from the base), with the framework logger attached to the Logs API;
126
+ * otherwise no log record processors. Every list is passed explicitly, so `NodeSDK`'s
127
+ * env-driven defaults never export anything the framework config did not ask for
89
128
  * - `TraceIdRatioBasedSampler` using `config.openTelemetry.samplingRatio`
90
129
  * - Node auto-instrumentations (HTTP enabled, FS disabled)
91
- * - Pino instrumentation that injects `trace_id`/`span_id` into log records
130
+ * - Pino instrumentation, which reaches only a `pino` loaded after `start()` — the framework
131
+ * logger's records carry `traceId`/`spanId` from the request context instead
92
132
  * - Cloud resource attributes via `detectCloudResource()`
133
+ * - One diag logger: the framework's, writing every level to stderr at
134
+ * `config.openTelemetry.logLevel` (aliases resolved). `NodeSDK` would register a console
135
+ * logger of its own when `OTEL_LOG_LEVEL` is set, so its constructor never sees the variable.
93
136
  *
94
137
  * @returns Promise that resolves when initialization is complete (or was already complete)
95
138
  * @throws Error if `NodeSDK.start()` or any lazy import fails; re-thrown after resetting `sdk` to `null`
@@ -122,7 +165,7 @@ export async function initializeOpenTelemetry() {
122
165
  }
123
166
  try {
124
167
  // Lazy-load Node-specific modules
125
- const [{ HttpInstrumentation }, { OTLPMetricExporter }, { OTLPTraceExporter }, { PinoInstrumentation }, { resourceFromAttributes }, { PeriodicExportingMetricReader }, { NodeSDK }, { BatchSpanProcessor, TraceIdRatioBasedSampler }, { ATTR_DEPLOYMENT_ENVIRONMENT_NAME, ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION },] = await Promise.all([
168
+ const [{ HttpInstrumentation }, { OTLPMetricExporter }, { OTLPTraceExporter }, { PinoInstrumentation }, { resourceFromAttributes }, { PeriodicExportingMetricReader }, { NodeSDK }, { BatchSpanProcessor, TraceIdRatioBasedSampler }, { ATTR_DEPLOYMENT_ENVIRONMENT_NAME, ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION }, { format },] = await Promise.all([
126
169
  import('@opentelemetry/instrumentation-http'),
127
170
  import('@opentelemetry/exporter-metrics-otlp-http'),
128
171
  import('@opentelemetry/exporter-trace-otlp-http'),
@@ -132,14 +175,20 @@ export async function initializeOpenTelemetry() {
132
175
  import('@opentelemetry/sdk-node'),
133
176
  import('@opentelemetry/sdk-trace-node'),
134
177
  import('@opentelemetry/semantic-conventions'),
178
+ import('node:util'),
135
179
  ]);
136
180
  const otelLogLevelString = config.openTelemetry.logLevel.toUpperCase();
137
- const otelLogLevel = DiagLogLevel[otelLogLevelString] ?? DiagLogLevel.INFO;
138
- diag.setLogger(new DiagConsoleLogger(), otelLogLevel);
181
+ diag.setLogger(createStderrDiagLogger(format), {
182
+ logLevel: DiagLogLevel[otelLogLevelString] ?? DiagLogLevel.INFO,
183
+ // The framework owns diag once OTel is on; replacing an earlier registration
184
+ // (a re-initialization after shutdown included) is not worth a stack trace.
185
+ suppressOverrideMessage: true,
186
+ });
139
187
  const tracesEndpoint = config.openTelemetry.tracesEndpoint;
140
188
  const metricsEndpoint = config.openTelemetry.metricsEndpoint;
141
- if (!tracesEndpoint && !metricsEndpoint) {
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.');
189
+ const logsEndpoint = config.openTelemetry.logsEndpoint;
190
+ if (!tracesEndpoint && !metricsEndpoint && !logsEndpoint) {
191
+ diag.warn('OTEL_ENABLED is true, but no OTLP endpoint for traces, metrics, or logs 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 / OTEL_EXPORTER_OTLP_LOGS_ENDPOINT.');
143
192
  }
144
193
  const resource = resourceFromAttributes({
145
194
  [ATTR_SERVICE_NAME]: config.openTelemetry.serviceName,
@@ -161,22 +210,39 @@ export async function initializeOpenTelemetry() {
161
210
  diag.info(`Using OTLP exporter for metrics, endpoint: ${metricsEndpoint}`);
162
211
  metricReaders.push(new PeriodicExportingMetricReader({
163
212
  exporter: new OTLPMetricExporter({ url: metricsEndpoint }),
164
- exportIntervalMillis: 15000,
213
+ exportIntervalMillis: METRIC_EXPORT_INTERVAL_MS,
214
+ exportTimeoutMillis: METRIC_EXPORT_INTERVAL_MS,
165
215
  }));
166
216
  }
167
217
  else {
168
218
  diag.info('No OTLP metrics endpoint configured. Metrics will not be exported.');
169
219
  }
220
+ /**
221
+ * The log packages are optional peers loaded only when log export is
222
+ * asked for, so a deployment without them never reaches these imports.
223
+ */
224
+ const logRecordProcessors = [];
225
+ let loggerProvider;
226
+ if (logsEndpoint) {
227
+ const [{ BatchLogRecordProcessor }, { OTLPLogExporter }, { logs }] = await Promise.all([
228
+ import('@opentelemetry/sdk-logs'),
229
+ import('@opentelemetry/exporter-logs-otlp-http'),
230
+ import('@opentelemetry/api-logs'),
231
+ ]);
232
+ diag.info(`Using OTLP exporter for logs, endpoint: ${logsEndpoint}`);
233
+ logRecordProcessors.push(new BatchLogRecordProcessor({ exporter: new OTLPLogExporter({ url: logsEndpoint }) }));
234
+ loggerProvider = logs;
235
+ }
170
236
  /**
171
237
  * All three lists are passed explicitly, empty or not: an omitted one
172
238
  * makes `NodeSDK` build its own OTLP exporter from `OTEL_*` env vars
173
239
  * (defaulting to localhost:4318), exporting outside the framework config.
174
240
  */
175
- sdk = new NodeSDK({
241
+ sdk = withoutOtelLogLevelEnv(() => new NodeSDK({
176
242
  resource,
177
243
  spanProcessors,
178
244
  metricReaders,
179
- logRecordProcessors: [],
245
+ logRecordProcessors,
180
246
  sampler: new TraceIdRatioBasedSampler(config.openTelemetry.samplingRatio),
181
247
  instrumentations: [
182
248
  new HttpInstrumentation({
@@ -189,8 +255,13 @@ export async function initializeOpenTelemetry() {
189
255
  },
190
256
  }),
191
257
  ],
192
- });
258
+ }));
193
259
  sdk.start();
260
+ // `PinoInstrumentation` never sees the framework's `pino` (imported at module
261
+ // load, before `start()`), so the logger forwards its records to the Logs API itself.
262
+ if (loggerProvider) {
263
+ setOtelLogSink(loggerProvider.getLogger(config.openTelemetry.serviceName, config.openTelemetry.serviceVersion));
264
+ }
194
265
  isOtelInitialized = true;
195
266
  diag.info(`OpenTelemetry NodeSDK initialized for ${config.openTelemetry.serviceName} v${config.openTelemetry.serviceVersion}`);
196
267
  }
@@ -227,6 +298,7 @@ export async function shutdownOpenTelemetry(timeoutMs = 5000) {
227
298
  return;
228
299
  }
229
300
  let timer;
301
+ setOtelLogSink(undefined);
230
302
  try {
231
303
  const shutdownPromise = sdk.shutdown();
232
304
  await new Promise((resolve, reject) => {