@cyanheads/mcp-ts-core 0.12.0 → 0.12.2

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 (129) hide show
  1. package/AGENTS.md +7 -3
  2. package/CLAUDE.md +7 -3
  3. package/README.md +1 -1
  4. package/changelog/0.12.x/0.12.1.md +26 -0
  5. package/changelog/0.12.x/0.12.2.md +29 -0
  6. package/dist/config/index.d.ts +9 -0
  7. package/dist/config/index.d.ts.map +1 -1
  8. package/dist/config/index.js +21 -3
  9. package/dist/config/index.js.map +1 -1
  10. package/dist/core/app.d.ts +45 -1
  11. package/dist/core/app.d.ts.map +1 -1
  12. package/dist/core/app.js +18 -3
  13. package/dist/core/app.js.map +1 -1
  14. package/dist/core/index.d.ts +3 -2
  15. package/dist/core/index.d.ts.map +1 -1
  16. package/dist/core/index.js +1 -1
  17. package/dist/core/index.js.map +1 -1
  18. package/dist/core/serverManifest.d.ts +11 -2
  19. package/dist/core/serverManifest.d.ts.map +1 -1
  20. package/dist/core/serverManifest.js +30 -12
  21. package/dist/core/serverManifest.js.map +1 -1
  22. package/dist/core/worker.d.ts.map +1 -1
  23. package/dist/core/worker.js +2 -2
  24. package/dist/core/worker.js.map +1 -1
  25. package/dist/linter/rules/enrichment-rules.d.ts.map +1 -1
  26. package/dist/linter/rules/enrichment-rules.js +5 -2
  27. package/dist/linter/rules/enrichment-rules.js.map +1 -1
  28. package/dist/linter/rules/portability-rules.d.ts +4 -2
  29. package/dist/linter/rules/portability-rules.d.ts.map +1 -1
  30. package/dist/linter/rules/portability-rules.js +33 -4
  31. package/dist/linter/rules/portability-rules.js.map +1 -1
  32. package/dist/linter/rules/schema-rules.d.ts +28 -3
  33. package/dist/linter/rules/schema-rules.d.ts.map +1 -1
  34. package/dist/linter/rules/schema-rules.js +87 -25
  35. package/dist/linter/rules/schema-rules.js.map +1 -1
  36. package/dist/linter/rules/tool-rules.d.ts.map +1 -1
  37. package/dist/linter/rules/tool-rules.js +9 -3
  38. package/dist/linter/rules/tool-rules.js.map +1 -1
  39. package/dist/linter/types.d.ts +2 -1
  40. package/dist/linter/types.d.ts.map +1 -1
  41. package/dist/logs/combined.log +10 -10
  42. package/dist/logs/error.log +6 -6
  43. package/dist/mcp-server/cacheHints.d.ts +35 -0
  44. package/dist/mcp-server/cacheHints.d.ts.map +1 -0
  45. package/dist/mcp-server/cacheHints.js +43 -0
  46. package/dist/mcp-server/cacheHints.js.map +1 -0
  47. package/dist/mcp-server/notifications.d.ts +68 -1
  48. package/dist/mcp-server/notifications.d.ts.map +1 -1
  49. package/dist/mcp-server/notifications.js +67 -0
  50. package/dist/mcp-server/notifications.js.map +1 -1
  51. package/dist/mcp-server/resources/resource-registration.d.ts +2 -2
  52. package/dist/mcp-server/resources/resource-registration.d.ts.map +1 -1
  53. package/dist/mcp-server/resources/resource-registration.js +6 -2
  54. package/dist/mcp-server/resources/resource-registration.js.map +1 -1
  55. package/dist/mcp-server/resources/utils/resourceDefinition.d.ts +14 -1
  56. package/dist/mcp-server/resources/utils/resourceDefinition.d.ts.map +1 -1
  57. package/dist/mcp-server/resources/utils/resourceDefinition.js.map +1 -1
  58. package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts +13 -5
  59. package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts.map +1 -1
  60. package/dist/mcp-server/resources/utils/resourceHandlerFactory.js +28 -26
  61. package/dist/mcp-server/resources/utils/resourceHandlerFactory.js.map +1 -1
  62. package/dist/mcp-server/server.d.ts +16 -1
  63. package/dist/mcp-server/server.d.ts.map +1 -1
  64. package/dist/mcp-server/server.js +7 -2
  65. package/dist/mcp-server/server.js.map +1 -1
  66. package/dist/mcp-server/tools/tool-registration.d.ts +2 -2
  67. package/dist/mcp-server/tools/tool-registration.d.ts.map +1 -1
  68. package/dist/mcp-server/tools/tool-registration.js +2 -1
  69. package/dist/mcp-server/tools/tool-registration.js.map +1 -1
  70. package/dist/mcp-server/tools/utils/headerParam.d.ts +113 -0
  71. package/dist/mcp-server/tools/utils/headerParam.d.ts.map +1 -0
  72. package/dist/mcp-server/tools/utils/headerParam.js +280 -0
  73. package/dist/mcp-server/tools/utils/headerParam.js.map +1 -0
  74. package/dist/mcp-server/tools/utils/schemaShape.d.ts +27 -0
  75. package/dist/mcp-server/tools/utils/schemaShape.d.ts.map +1 -0
  76. package/dist/mcp-server/tools/utils/schemaShape.js +43 -0
  77. package/dist/mcp-server/tools/utils/schemaShape.js.map +1 -0
  78. package/dist/mcp-server/tools/utils/toolDefinition.d.ts +28 -5
  79. package/dist/mcp-server/tools/utils/toolDefinition.d.ts.map +1 -1
  80. package/dist/mcp-server/tools/utils/toolDefinition.js +22 -3
  81. package/dist/mcp-server/tools/utils/toolDefinition.js.map +1 -1
  82. package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts +13 -5
  83. package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts.map +1 -1
  84. package/dist/mcp-server/tools/utils/toolHandlerFactory.js +35 -28
  85. package/dist/mcp-server/tools/utils/toolHandlerFactory.js.map +1 -1
  86. package/dist/mcp-server/transports/http/eventStore.d.ts +57 -0
  87. package/dist/mcp-server/transports/http/eventStore.d.ts.map +1 -0
  88. package/dist/mcp-server/transports/http/eventStore.js +114 -0
  89. package/dist/mcp-server/transports/http/eventStore.js.map +1 -0
  90. package/dist/mcp-server/transports/http/httpServer.d.ts +2 -1
  91. package/dist/mcp-server/transports/http/httpServer.d.ts.map +1 -1
  92. package/dist/mcp-server/transports/http/httpServer.js +2 -2
  93. package/dist/mcp-server/transports/http/httpServer.js.map +1 -1
  94. package/dist/mcp-server/transports/http/httpTransport.d.ts +8 -3
  95. package/dist/mcp-server/transports/http/httpTransport.d.ts.map +1 -1
  96. package/dist/mcp-server/transports/http/httpTransport.js +30 -5
  97. package/dist/mcp-server/transports/http/httpTransport.js.map +1 -1
  98. package/dist/mcp-server/transports/http/landing-page/sections/tools.js +22 -2
  99. package/dist/mcp-server/transports/http/landing-page/sections/tools.js.map +1 -1
  100. package/dist/mcp-server/transports/manager.d.ts +10 -1
  101. package/dist/mcp-server/transports/manager.d.ts.map +1 -1
  102. package/dist/mcp-server/transports/manager.js +6 -2
  103. package/dist/mcp-server/transports/manager.js.map +1 -1
  104. package/dist/mcp-server/types.d.ts +20 -1
  105. package/dist/mcp-server/types.d.ts.map +1 -1
  106. package/dist/mcp-server/types.js +14 -0
  107. package/dist/mcp-server/types.js.map +1 -1
  108. package/dist/testing/fuzz.d.ts +7 -4
  109. package/dist/testing/fuzz.d.ts.map +1 -1
  110. package/dist/testing/fuzz.js +13 -5
  111. package/dist/testing/fuzz.js.map +1 -1
  112. package/dist/utils/internal/performance.d.ts +12 -4
  113. package/dist/utils/internal/performance.d.ts.map +1 -1
  114. package/dist/utils/internal/performance.js +23 -8
  115. package/dist/utils/internal/performance.js.map +1 -1
  116. package/dist/utils/internal/requestContext.d.ts +13 -0
  117. package/dist/utils/internal/requestContext.d.ts.map +1 -1
  118. package/dist/utils/internal/requestContext.js +43 -8
  119. package/dist/utils/internal/requestContext.js.map +1 -1
  120. package/package.json +2 -2
  121. package/skills/add-resource/SKILL.md +31 -1
  122. package/skills/add-tool/SKILL.md +70 -1
  123. package/skills/api-config/SKILL.md +30 -3
  124. package/skills/api-context/SKILL.md +47 -15
  125. package/skills/api-linter/SKILL.md +39 -3
  126. package/skills/api-telemetry/SKILL.md +3 -1
  127. package/skills/api-workers/SKILL.md +9 -1
  128. package/skills/tool-defs-analysis/SKILL.md +15 -5
  129. package/templates/.env.example +4 -0
@@ -1 +1 @@
1
- {"version":3,"file":"performance.d.ts","sourceRoot":"","sources":["../../../src/utils/internal/performance.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,OAAO,EAAE,KAAK,cAAc,EAAa,MAAM,oCAAoC,CAAC;AAkEpF,kGAAkG;AAClG,wBAAgB,kBAAkB,IAAI,IAAI,CAKzC;AAWD;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAAC;IACvC,WAAW,EAAE;QAAE,GAAG,EAAE,MAAM,MAAM,CAAA;KAAE,CAAC;CACpC,CAAC,CAID;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,CAAC,EAAE,OAAO,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAGlF;AAED;;;;;;;;;GASG;AAGH,eAAO,MAAM,KAAK,QAAO,MAA2B,CAAC;AAuFrD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,WAAW,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC7B,OAAO,EAAE,cAAc,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,EAC9C,YAAY,EAAE,OAAO,EACrB,iBAAiB,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,GAClE,OAAO,CAAC,CAAC,CAAC,CA0IZ;AAoCD;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAAC,CAAC,EAC9C,eAAe,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACjC,OAAO,EAAE,cAAc,GAAG;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,EAClD,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACtC,OAAO,CAAC,CAAC,CAAC,CAgGZ;AAkDD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,uBAAuB,CAAC,CAAC,EAC7C,aAAa,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC/B,OAAO,EAAE,cAAc,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,EAChD,YAAY,EAAE,OAAO,GACpB,OAAO,CAAC,CAAC,CAAC,CAoHZ"}
1
+ {"version":3,"file":"performance.d.ts","sourceRoot":"","sources":["../../../src/utils/internal/performance.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,OAAO,EAAE,KAAK,cAAc,EAA6B,MAAM,oCAAoC,CAAC;AAkEpG,kGAAkG;AAClG,wBAAgB,kBAAkB,IAAI,IAAI,CAKzC;AAWD;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAAC;IACvC,WAAW,EAAE;QAAE,GAAG,EAAE,MAAM,MAAM,CAAA;KAAE,CAAC;CACpC,CAAC,CAID;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,CAAC,EAAE,OAAO,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAGlF;AAED;;;;;;;;;GASG;AAGH,eAAO,MAAM,KAAK,QAAO,MAA2B,CAAC;AAuFrD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,WAAW,EAAE,CAAC,WAAW,EAAE,cAAc,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,CAAC,CAAC,EAC/E,OAAO,EAAE,cAAc,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,EAC9C,YAAY,EAAE,OAAO,EACrB,iBAAiB,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,GAClE,OAAO,CAAC,CAAC,CAAC,CA+IZ;AAoCD;;;;;;;;;;GAUG;AACH,wBAAsB,wBAAwB,CAAC,CAAC,EAC9C,eAAe,EAAE,CAAC,WAAW,EAAE,cAAc,GAAG;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,CAAC,CAAC,EACvF,OAAO,EAAE,cAAc,GAAG;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,EAClD,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACtC,OAAO,CAAC,CAAC,CAAC,CAkGZ;AAkDD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,uBAAuB,CAAC,CAAC,EAC7C,aAAa,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC/B,OAAO,EAAE,cAAc,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,EAChD,YAAY,EAAE,OAAO,GACpB,OAAO,CAAC,CAAC,CAAC,CAwHZ"}
@@ -11,7 +11,7 @@ import { isInputRequiredSignal } from '../../mcp-server/inputRequired.js';
11
11
  import { McpError } from '../../types-global/errors.js';
12
12
  import { getErrorCategory } from '../../utils/internal/error-handler/mappings.js';
13
13
  import { logger } from '../../utils/internal/logger.js';
14
- import { withExtra } from '../../utils/internal/requestContext.js';
14
+ import { withActiveSpan, withExtra } from '../../utils/internal/requestContext.js';
15
15
  import { TELEMETRY_LOG_MESSAGES } from '../../utils/internal/telemetryMessages.js';
16
16
  import { ATTR_CODE_FUNCTION_NAME, ATTR_CODE_NAMESPACE, ATTR_MCP_PROMPT_DURATION_MS, ATTR_MCP_PROMPT_ERROR_CATEGORY, ATTR_MCP_PROMPT_ERROR_CODE, ATTR_MCP_PROMPT_INPUT_BYTES, ATTR_MCP_PROMPT_INPUT_REQUIRED, ATTR_MCP_PROMPT_MESSAGE_COUNT, ATTR_MCP_PROMPT_NAME, ATTR_MCP_PROMPT_OUTPUT_BYTES, ATTR_MCP_PROMPT_SUCCESS, ATTR_MCP_RESOURCE_DURATION_MS, ATTR_MCP_RESOURCE_ERROR_CODE, ATTR_MCP_RESOURCE_INPUT_REQUIRED, ATTR_MCP_RESOURCE_MIME_TYPE, ATTR_MCP_RESOURCE_NAME, ATTR_MCP_RESOURCE_SIZE_BYTES, ATTR_MCP_RESOURCE_SUCCESS, ATTR_MCP_RESOURCE_URI, ATTR_MCP_TOOL_BATCH_FAILED, ATTR_MCP_TOOL_BATCH_SUCCEEDED, ATTR_MCP_TOOL_DURATION_MS, ATTR_MCP_TOOL_ERROR_CATEGORY, ATTR_MCP_TOOL_ERROR_CODE, ATTR_MCP_TOOL_INPUT_BYTES, ATTR_MCP_TOOL_INPUT_REQUIRED, ATTR_MCP_TOOL_NAME, ATTR_MCP_TOOL_OUTPUT_BYTES, ATTR_MCP_TOOL_PARTIAL_SUCCESS, ATTR_MCP_TOOL_SUCCESS, } from '../../utils/telemetry/attributes.js';
17
17
  import { createCounter, createHistogram, createUpDownCounter } from '../../utils/telemetry/metrics.js';
@@ -181,7 +181,10 @@ const toBytes = (payload) => {
181
181
  * `McpError` instances surface their numeric `code` as the error code attribute.
182
182
  *
183
183
  * @template T - The resolved type of the tool's return value.
184
- * @param toolLogicFn - Zero-argument async function containing the tool's business logic.
184
+ * @param toolLogicFn - Async function containing the tool's business logic. Receives
185
+ * `context` re-bound to the execution span this function opens, so a handler
186
+ * context built from it correlates to the span the handler actually runs in
187
+ * rather than to the enclosing request span.
185
188
  * @param context - Request context extended with `toolName`; used for span/log correlation.
186
189
  * @param inputPayload - The raw input object passed to the tool, serialized to compute byte size.
187
190
  * @param successAttributes - Optional thunk evaluated after a successful run; its
@@ -194,6 +197,11 @@ export async function measureToolExecution(toolLogicFn, context, inputPayload, s
194
197
  const tracer = trace.getTracer(config.openTelemetry.serviceName, config.openTelemetry.serviceVersion);
195
198
  const { toolName } = context;
196
199
  return await tracer.startActiveSpan(`tool_execution:${toolName}`, async (span) => {
200
+ // The span is active from here down, so everything below — the handler
201
+ // context the logic function builds and this function's own completion log
202
+ // — correlates to `tool_execution:*` rather than to whatever was active
203
+ // when the caller built `context`.
204
+ const spanContext = withActiveSpan(context);
197
205
  const activeGauge = getActiveRequestsGauge();
198
206
  activeGauge.add(1);
199
207
  const t0 = nowMs();
@@ -212,7 +220,7 @@ export async function measureToolExecution(toolLogicFn, context, inputPayload, s
212
220
  let batchSucceeded;
213
221
  let batchFailed;
214
222
  try {
215
- const result = await toolLogicFn();
223
+ const result = await toolLogicFn(spanContext);
216
224
  ok = true;
217
225
  outputBytes = toBytes(result);
218
226
  // Detect partial success: handler returned but result contains a non-empty `failed` array.
@@ -303,7 +311,7 @@ export async function measureToolExecution(toolLogicFn, context, inputPayload, s
303
311
  m.toolParamUsage.add(1, { [ATTR_MCP_TOOL_NAME]: toolName, 'mcp.tool.param': param });
304
312
  }
305
313
  }
306
- logger.info(TELEMETRY_LOG_MESSAGES.toolExecutionFinished, withExtra(context, {
314
+ logger.info(TELEMETRY_LOG_MESSAGES.toolExecutionFinished, withExtra(spanContext, {
307
315
  toolName,
308
316
  metrics: {
309
317
  durationMs,
@@ -337,7 +345,8 @@ function getResourceMetrics() {
337
345
  * and a structured log. Mirrors {@link measureToolExecution} but tuned for resource reads.
338
346
  *
339
347
  * @template T - The resolved type of the resource handler's return value.
340
- * @param resourceLogicFn - Zero-argument async function containing the resource handler.
348
+ * @param resourceLogicFn - Async function containing the resource handler. Receives
349
+ * `context` re-bound to the execution span this function opens.
341
350
  * @param context - Request context extended with `resourceName`; used for span/log correlation.
342
351
  * @param meta - Resource metadata: URI and MIME type for span attributes.
343
352
  * @returns A promise that resolves with the handler's return value or rejects with the original error.
@@ -346,6 +355,8 @@ export async function measureResourceExecution(resourceLogicFn, context, meta) {
346
355
  const tracer = trace.getTracer(config.openTelemetry.serviceName, config.openTelemetry.serviceVersion);
347
356
  const { resourceName } = context;
348
357
  return await tracer.startActiveSpan(`resource_read:${resourceName}`, async (span) => {
358
+ // Active from here down — see the note in `measureToolExecution`.
359
+ const spanContext = withActiveSpan(context);
349
360
  const activeGauge = getActiveRequestsGauge();
350
361
  activeGauge.add(1);
351
362
  const t0 = nowMs();
@@ -360,7 +371,7 @@ export async function measureResourceExecution(resourceLogicFn, context, meta) {
360
371
  let errorCode;
361
372
  let outputBytes = 0;
362
373
  try {
363
- const result = await resourceLogicFn();
374
+ const result = await resourceLogicFn(spanContext);
364
375
  ok = true;
365
376
  outputBytes = toBytes(result);
366
377
  span.setStatus({ code: SpanStatusCode.OK });
@@ -417,7 +428,7 @@ export async function measureResourceExecution(resourceLogicFn, context, meta) {
417
428
  m.resourceOutputBytes.record(outputBytes, resourceAttrs);
418
429
  if (!ok)
419
430
  m.resourceReadErrors.add(1, resourceAttrs);
420
- logger.info(TELEMETRY_LOG_MESSAGES.resourceReadFinished, withExtra(context, {
431
+ logger.info(TELEMETRY_LOG_MESSAGES.resourceReadFinished, withExtra(spanContext, {
421
432
  resourceName,
422
433
  metrics: {
423
434
  durationMs,
@@ -476,6 +487,10 @@ export async function measurePromptGeneration(promptLogicFn, context, inputPaylo
476
487
  const tracer = trace.getTracer(config.openTelemetry.serviceName, config.openTelemetry.serviceVersion);
477
488
  const { promptName } = context;
478
489
  return await tracer.startActiveSpan(`prompt_generation:${promptName}`, async (span) => {
490
+ // Active from here down — see the note in `measureToolExecution`. Prompt
491
+ // generators take no handler context, so this only re-binds the completion
492
+ // log below.
493
+ const spanContext = withActiveSpan(context);
479
494
  const activeGauge = getActiveRequestsGauge();
480
495
  activeGauge.add(1);
481
496
  const t0 = nowMs();
@@ -562,7 +577,7 @@ export async function measurePromptGeneration(promptLogicFn, context, inputPaylo
562
577
  const promptMessage = ok
563
578
  ? TELEMETRY_LOG_MESSAGES.promptGenerationFinished
564
579
  : TELEMETRY_LOG_MESSAGES.promptGenerationFailed;
565
- logFn.call(logger, promptMessage, withExtra(context, {
580
+ logFn.call(logger, promptMessage, withExtra(spanContext, {
566
581
  promptName,
567
582
  metrics: {
568
583
  durationMs,
@@ -1 +1 @@
1
- {"version":3,"file":"performance.js","sourceRoot":"","sources":["../../../src/utils/internal/performance.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAsB,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAClG,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAuB,SAAS,EAAE,MAAM,oCAAoC,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,2BAA2B,EAC3B,8BAA8B,EAC9B,0BAA0B,EAC1B,2BAA2B,EAC3B,8BAA8B,EAC9B,6BAA6B,EAC7B,oBAAoB,EACpB,4BAA4B,EAC5B,uBAAuB,EACvB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,2BAA2B,EAC3B,sBAAsB,EACtB,4BAA4B,EAC5B,yBAAyB,EACzB,qBAAqB,EACrB,0BAA0B,EAC1B,6BAA6B,EAC7B,yBAAyB,EACzB,4BAA4B,EAC5B,wBAAwB,EACxB,yBAAyB,EACzB,4BAA4B,EAC5B,kBAAkB,EAClB,0BAA0B,EAC1B,6BAA6B,EAC7B,qBAAqB,GACtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnG,6EAA6E;AAC7E,IAAI,eAA6D,CAAC;AAClE,IAAI,gBAAgE,CAAC;AACrE,IAAI,cAA4D,CAAC;AACjE,IAAI,cAA8D,CAAC;AACnE,IAAI,eAA+D,CAAC;AACpE,IAAI,cAA4D,CAAC;AACjE,IAAI,cAAkE,CAAC;AAEvE,SAAS,cAAc;IACrB,eAAe,KAAK,aAAa,CAAC,gBAAgB,EAAE,4BAA4B,EAAE,SAAS,CAAC,CAAC;IAC7F,gBAAgB,KAAK,eAAe,CAAC,mBAAmB,EAAE,6BAA6B,EAAE,IAAI,CAAC,CAAC;IAC/F,cAAc,KAAK,aAAa,CAAC,iBAAiB,EAAE,uBAAuB,EAAE,UAAU,CAAC,CAAC;IACzF,cAAc,KAAK,eAAe,CAAC,sBAAsB,EAAE,yBAAyB,EAAE,OAAO,CAAC,CAAC;IAC/F,eAAe,KAAK,eAAe,CAAC,uBAAuB,EAAE,0BAA0B,EAAE,OAAO,CAAC,CAAC;IAClG,cAAc,KAAK,aAAa,CAC9B,sBAAsB,EACtB,0CAA0C,EAC1C,QAAQ,CACT,CAAC;IACF,OAAO;QACL,eAAe;QACf,gBAAgB;QAChB,cAAc;QACd,cAAc;QACd,eAAe;QACf,cAAc;KACf,CAAC;AACJ,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,kBAAkB;IAChC,cAAc,EAAE,CAAC;IACjB,kBAAkB,EAAE,CAAC;IACrB,gBAAgB,EAAE,CAAC;IACnB,sBAAsB,EAAE,CAAC;AAC3B,CAAC;AAED,SAAS,sBAAsB;IAC7B,cAAc,KAAK,mBAAmB,CACpC,qBAAqB,EACrB,mEAAmE,EACnE,YAAY,CACb,CAAC;IACF,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAG3B,6EAA6E;IAC7E,6EAA6E;IAC7E,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAkC;IACjE,2EAA2E;IAC3E,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;AAC3B,CAAC;AAED;;;;;;;;;GASG;AACH,6EAA6E;AAC7E,6EAA6E;AAC7E,MAAM,CAAC,MAAM,KAAK,GAAG,GAAW,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;AAErD,gEAAgE;AAChE,IAAI,aAAsC,CAAC;AAC3C,SAAS,UAAU;IACjB,aAAa,KAAK,IAAI,WAAW,EAAE,CAAC;IACpC,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC,CAAC,SAAS;IAE9D,QAAQ,OAAO,KAAK,EAAE,CAAC;QACrB,KAAK,QAAQ;YACX,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,4BAA4B;QACvD,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;QAC9B,KAAK,SAAS;YACZ,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB;YACE,MAAM;IACV,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,GAAG,CAAC;gBAAE,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ;YAC/B,KAAK,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,KAAgC,CAAC;QAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAW,CAAC;YAC9B,IAAI,CAAC,GAAG,CAAC;gBAAE,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ;YAC/B,KAAK,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS;YAClC,KAAK,IAAI,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,GAAG,CAAC,OAAgB,EAAU,EAAE;IAC3C,IAAI,OAAO,IAAI,IAAI;QAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACrC,yEAAyE;QACzE,0EAA0E;QAC1E,sEAAsE;QACtE,6DAA6D;QAC7D,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YAC7E,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE,CAAC;YACvC,OAAO,UAAU,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QAC1C,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,wEAAwE;QACxE,mEAAmE;QACnE,IAAI,CAAC;YACH,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,WAA6B,EAC7B,OAA8C,EAC9C,YAAqB,EACrB,iBAAmE;IAEnE,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAC5B,MAAM,CAAC,aAAa,CAAC,WAAW,EAChC,MAAM,CAAC,aAAa,CAAC,cAAc,CACpC,CAAC;IAEF,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAE7B,OAAO,MAAM,MAAM,CAAC,eAAe,CAAC,kBAAkB,QAAQ,EAAW,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACxF,MAAM,WAAW,GAAG,sBAAsB,EAAE,CAAC;QAC7C,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAEnB,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;QACnB,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;QACzC,IAAI,CAAC,aAAa,CAAC;YACjB,CAAC,uBAAuB,CAAC,EAAE,QAAQ;YACnC,CAAC,mBAAmB,CAAC,EAAE,WAAW;YAClC,CAAC,yBAAyB,CAAC,EAAE,UAAU;SACxC,CAAC,CAAC;QAEH,IAAI,EAAE,GAAG,KAAK,CAAC;QACf,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,SAA6B,CAAC;QAClC,IAAI,aAAwC,CAAC;QAC7C,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,IAAI,cAAkC,CAAC;QACvC,IAAI,WAA+B,CAAC;QAEpC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,WAAW,EAAE,CAAC;YACnC,EAAE,GAAG,IAAI,CAAC;YACV,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAE9B,2FAA2F;YAC3F,yFAAyF;YACzF,IAAI,MAAM,IAAI,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3E,MAAM,GAAG,GAAG,MAAiC,CAAC;gBAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvD,cAAc,GAAG,IAAI,CAAC;oBACtB,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;oBAChC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;wBAAE,cAAc,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC;gBAC1E,CAAC;YACH,CAAC;YAED,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5C,IAAI,CAAC,YAAY,CAAC,0BAA0B,EAAE,WAAW,CAAC,CAAC;YAC3D,IAAI,cAAc,EAAE,CAAC;gBACnB,IAAI,CAAC,YAAY,CAAC,6BAA6B,EAAE,IAAI,CAAC,CAAC;gBACvD,IAAI,WAAW,KAAK,SAAS;oBAAE,IAAI,CAAC,YAAY,CAAC,0BAA0B,EAAE,WAAW,CAAC,CAAC;gBAC1F,IAAI,cAAc,KAAK,SAAS;oBAC9B,IAAI,CAAC,YAAY,CAAC,6BAA6B,EAAE,cAAc,CAAC,CAAC;YACrE,CAAC;YACD,IAAI,iBAAiB,EAAE,CAAC;gBACtB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC;oBAC/D,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;YACD,OAAO,MAAM,CAAC;YACd,0EAA0E;YAC1E,0EAA0E;YAC1E,qEAAqE;YACrE,2DAA2D;YAC3D,4BAA4B;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,EAAE,GAAG,IAAI,CAAC;gBACV,aAAa,GAAG,IAAI,CAAC;gBACrB,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC5C,IAAI,CAAC,YAAY,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAC;gBACtD,MAAM,GAAG,CAAC;YACZ,CAAC;YAED,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;gBAC5B,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC7B,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,SAAS,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,eAAe,CAAC;gBACvE,aAAa,GAAG,QAAQ,CAAC;YAC3B,CAAC;YAED,IAAI,GAAG,YAAY,KAAK;gBAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YACpD,IAAI,CAAC,SAAS,CAAC;gBACb,IAAI,EAAE,cAAc,CAAC,KAAK;gBAC1B,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aAC1D,CAAC,CAAC;YACH,MAAM,GAAG,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACpB,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YACnB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;YAErD,IAAI,CAAC,aAAa,CAAC;gBACjB,CAAC,yBAAyB,CAAC,EAAE,UAAU;gBACvC,CAAC,qBAAqB,CAAC,EAAE,EAAE;aAC5B,CAAC,CAAC;YACH,IAAI,SAAS;gBAAE,IAAI,CAAC,YAAY,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;YACtE,IAAI,CAAC,GAAG,EAAE,CAAC;YAEX,8DAA8D;YAC9D,MAAM,CAAC,GAAG,cAAc,EAAE,CAAC;YAC3B,MAAM,WAAW,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,QAAQ,EAAE,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,CAAC;YACpF,MAAM,SAAS,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,QAAQ,EAAE,CAAC;YACrD,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;YACtC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YACnD,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YAC/C,IAAI,EAAE,IAAI,CAAC,aAAa;gBAAE,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YAC3E,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE;oBACtB,GAAG,SAAS;oBACZ,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,4BAA4B,CAAC,EAAE,aAAa,EAAE,CAAC;iBACxE,CAAC,CAAC;YACL,CAAC;YAED,8DAA8D;YAC9D,IAAI,YAAY,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;gBACrD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,YAAuC,CAAC,EAAE,CAAC;oBACzE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAC;gBACvF,CAAC;YACH,CAAC;YAED,MAAM,CAAC,IAAI,CACT,sBAAsB,CAAC,qBAAqB,EAC5C,SAAS,CAAC,OAAO,EAAE;gBACjB,QAAQ;gBACR,OAAO,EAAE;oBACP,UAAU;oBACV,SAAS,EAAE,EAAE;oBACb,SAAS;oBACT,UAAU;oBACV,WAAW;oBACX,GAAG,CAAC,aAAa,IAAI,EAAE,aAAa,EAAE,CAAC;oBACvC,GAAG,CAAC,cAAc,IAAI,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC;iBACvE;aACF,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,6EAA6E;AAC7E,iCAAiC;AACjC,6EAA6E;AAE7E,IAAI,mBAAiE,CAAC;AACtE,IAAI,oBAAoE,CAAC;AACzE,IAAI,kBAAgE,CAAC;AAErE,IAAI,mBAAmE,CAAC;AAExE,SAAS,kBAAkB;IACzB,mBAAmB,KAAK,aAAa,CACnC,oBAAoB,EACpB,qCAAqC,EACrC,SAAS,CACV,CAAC;IACF,oBAAoB,KAAK,eAAe,CACtC,uBAAuB,EACvB,sCAAsC,EACtC,IAAI,CACL,CAAC;IACF,kBAAkB,KAAK,aAAa,CAClC,qBAAqB,EACrB,gCAAgC,EAChC,UAAU,CACX,CAAC;IACF,mBAAmB,KAAK,eAAe,CACrC,2BAA2B,EAC3B,8BAA8B,EAC9B,OAAO,CACR,CAAC;IACF,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,CAAC;AAChG,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,eAAiC,EACjC,OAAkD,EAClD,IAAuC;IAEvC,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAC5B,MAAM,CAAC,aAAa,CAAC,WAAW,EAChC,MAAM,CAAC,aAAa,CAAC,cAAc,CACpC,CAAC;IAEF,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAEjC,OAAO,MAAM,MAAM,CAAC,eAAe,CAAC,iBAAiB,YAAY,EAAW,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC3F,MAAM,WAAW,GAAG,sBAAsB,EAAE,CAAC;QAC7C,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACnB,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;QAEnB,IAAI,CAAC,aAAa,CAAC;YACjB,CAAC,uBAAuB,CAAC,EAAE,YAAY;YACvC,CAAC,mBAAmB,CAAC,EAAE,eAAe;YACtC,CAAC,qBAAqB,CAAC,EAAE,IAAI,CAAC,GAAG;YACjC,CAAC,2BAA2B,CAAC,EAAE,IAAI,CAAC,QAAQ;SAC7C,CAAC,CAAC;QAEH,IAAI,EAAE,GAAG,KAAK,CAAC;QACf,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,SAA6B,CAAC;QAClC,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC;YACvC,EAAE,GAAG,IAAI,CAAC;YACV,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAC9B,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5C,IAAI,CAAC,YAAY,CAAC,4BAA4B,EAAE,WAAW,CAAC,CAAC;YAC7D,OAAO,MAAM,CAAC;YACd,0EAA0E;YAC1E,0EAA0E;YAC1E,qEAAqE;YACrE,2DAA2D;YAC3D,4BAA4B;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,EAAE,GAAG,IAAI,CAAC;gBACV,aAAa,GAAG,IAAI,CAAC;gBACrB,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC5C,IAAI,CAAC,YAAY,CAAC,gCAAgC,EAAE,IAAI,CAAC,CAAC;gBAC1D,MAAM,GAAG,CAAC;YACZ,CAAC;YAED,IAAI,GAAG,YAAY,QAAQ;gBAAE,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;iBACrD,IAAI,GAAG,YAAY,KAAK;gBAAE,SAAS,GAAG,iBAAiB,CAAC;;gBACxD,SAAS,GAAG,eAAe,CAAC;YAEjC,IAAI,GAAG,YAAY,KAAK;gBAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YACpD,IAAI,CAAC,SAAS,CAAC;gBACb,IAAI,EAAE,cAAc,CAAC,KAAK;gBAC1B,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aAC1D,CAAC,CAAC;YACH,MAAM,GAAG,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACpB,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YACnB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;YAErD,IAAI,CAAC,aAAa,CAAC;gBACjB,CAAC,6BAA6B,CAAC,EAAE,UAAU;gBAC3C,CAAC,yBAAyB,CAAC,EAAE,EAAE;aAChC,CAAC,CAAC;YACH,IAAI,SAAS;gBAAE,IAAI,CAAC,YAAY,CAAC,4BAA4B,EAAE,SAAS,CAAC,CAAC;YAC1E,IAAI,CAAC,GAAG,EAAE,CAAC;YAEX,MAAM,CAAC,GAAG,kBAAkB,EAAE,CAAC;YAC/B,MAAM,WAAW,GAAG;gBAClB,CAAC,sBAAsB,CAAC,EAAE,YAAY;gBACtC,CAAC,yBAAyB,CAAC,EAAE,EAAE;aAChC,CAAC;YACF,MAAM,aAAa,GAAG,EAAE,CAAC,sBAAsB,CAAC,EAAE,YAAY,EAAE,CAAC;YACjE,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;YAC1C,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YACvD,IAAI,EAAE,IAAI,CAAC,aAAa;gBAAE,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;YACnF,IAAI,CAAC,EAAE;gBAAE,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;YAEpD,MAAM,CAAC,IAAI,CACT,sBAAsB,CAAC,oBAAoB,EAC3C,SAAS,CAAC,OAAO,EAAE;gBACjB,YAAY;gBACZ,OAAO,EAAE;oBACP,UAAU;oBACV,SAAS,EAAE,EAAE;oBACb,SAAS;oBACT,WAAW;oBACX,GAAG,CAAC,aAAa,IAAI,EAAE,aAAa,EAAE,CAAC;oBACvC,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB;aACF,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,6EAA6E;AAC7E,gCAAgC;AAChC,6EAA6E;AAE7E,IAAI,gBAA8D,CAAC;AACnE,IAAI,iBAAiE,CAAC;AACtE,IAAI,eAA6D,CAAC;AAClE,IAAI,gBAAgE,CAAC;AACrE,IAAI,iBAAiE,CAAC;AACtE,IAAI,kBAAkE,CAAC;AAEvE,SAAS,gBAAgB;IACvB,gBAAgB,KAAK,aAAa,CAChC,wBAAwB,EACxB,8BAA8B,EAC9B,eAAe,CAChB,CAAC;IACF,iBAAiB,KAAK,eAAe,CACnC,qBAAqB,EACrB,gCAAgC,EAChC,IAAI,CACL,CAAC;IACF,eAAe,KAAK,aAAa,CAAC,mBAAmB,EAAE,yBAAyB,EAAE,UAAU,CAAC,CAAC;IAC9F,gBAAgB,KAAK,eAAe,CAClC,wBAAwB,EACxB,8BAA8B,EAC9B,OAAO,CACR,CAAC;IACF,iBAAiB,KAAK,eAAe,CACnC,yBAAyB,EACzB,wCAAwC,EACxC,OAAO,CACR,CAAC;IACF,kBAAkB,KAAK,eAAe,CACpC,0BAA0B,EAC1B,uDAAuD,EACvD,YAAY,CACb,CAAC;IACF,OAAO;QACL,gBAAgB;QAChB,iBAAiB;QACjB,eAAe;QACf,gBAAgB;QAChB,iBAAiB;QACjB,kBAAkB;KACnB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,aAA+B,EAC/B,OAAgD,EAChD,YAAqB;IAErB,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAC5B,MAAM,CAAC,aAAa,CAAC,WAAW,EAChC,MAAM,CAAC,aAAa,CAAC,cAAc,CACpC,CAAC;IAEF,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAE/B,OAAO,MAAM,MAAM,CAAC,eAAe,CAAC,qBAAqB,UAAU,EAAW,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC7F,MAAM,WAAW,GAAG,sBAAsB,EAAE,CAAC;QAC7C,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAEnB,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;QACnB,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;QACzC,IAAI,CAAC,aAAa,CAAC;YACjB,CAAC,uBAAuB,CAAC,EAAE,UAAU;YACrC,CAAC,mBAAmB,CAAC,EAAE,aAAa;YACpC,CAAC,2BAA2B,CAAC,EAAE,UAAU;SAC1C,CAAC,CAAC;QAEH,IAAI,EAAE,GAAG,KAAK,CAAC;QACf,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,SAA6B,CAAC;QAClC,IAAI,aAAwC,CAAC;QAC7C,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;YACrC,EAAE,GAAG,IAAI,CAAC;YACV,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBAAE,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;YAExD,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5C,IAAI,CAAC,YAAY,CAAC,4BAA4B,EAAE,WAAW,CAAC,CAAC;YAC7D,IAAI,CAAC,YAAY,CAAC,6BAA6B,EAAE,YAAY,CAAC,CAAC;YAC/D,OAAO,MAAM,CAAC;YACd,0EAA0E;YAC1E,0EAA0E;YAC1E,qEAAqE;YACrE,2DAA2D;YAC3D,4BAA4B;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,qBAAqB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,EAAE,GAAG,IAAI,CAAC;gBACV,aAAa,GAAG,IAAI,CAAC;gBACrB,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC5C,IAAI,CAAC,YAAY,CAAC,8BAA8B,EAAE,IAAI,CAAC,CAAC;gBACxD,MAAM,GAAG,CAAC;YACZ,CAAC;YAED,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;gBAC5B,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC7B,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,SAAS,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,eAAe,CAAC;gBACvE,aAAa,GAAG,QAAQ,CAAC;YAC3B,CAAC;YAED,IAAI,GAAG,YAAY,KAAK;gBAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YACpD,IAAI,CAAC,SAAS,CAAC;gBACb,IAAI,EAAE,cAAc,CAAC,KAAK;gBAC1B,OAAO,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aAC1D,CAAC,CAAC;YACH,MAAM,GAAG,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACpB,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;YACnB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;YAErD,IAAI,CAAC,aAAa,CAAC;gBACjB,CAAC,2BAA2B,CAAC,EAAE,UAAU;gBACzC,CAAC,uBAAuB,CAAC,EAAE,EAAE;aAC9B,CAAC,CAAC;YACH,IAAI,SAAS;gBAAE,IAAI,CAAC,YAAY,CAAC,0BAA0B,EAAE,SAAS,CAAC,CAAC;YACxE,IAAI,CAAC,GAAG,EAAE,CAAC;YAEX,MAAM,CAAC,GAAG,gBAAgB,EAAE,CAAC;YAC7B,MAAM,WAAW,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,CAAC,uBAAuB,CAAC,EAAE,EAAE,EAAE,CAAC;YAC1F,MAAM,WAAW,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,CAAC;YAC3D,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;YACvC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YACpD,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YACnD,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;gBACzB,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;gBACrD,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YACzD,CAAC;YACD,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE;oBACvB,GAAG,WAAW;oBACd,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,8BAA8B,CAAC,EAAE,aAAa,EAAE,CAAC;iBAC1E,CAAC,CAAC;YACL,CAAC;YAED,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAC9C,MAAM,aAAa,GAAG,EAAE;gBACtB,CAAC,CAAC,sBAAsB,CAAC,wBAAwB;gBACjD,CAAC,CAAC,sBAAsB,CAAC,sBAAsB,CAAC;YAClD,KAAK,CAAC,IAAI,CACR,MAAM,EACN,aAAa,EACb,SAAS,CAAC,OAAO,EAAE;gBACjB,UAAU;gBACV,OAAO,EAAE;oBACP,UAAU;oBACV,SAAS,EAAE,EAAE;oBACb,SAAS;oBACT,UAAU;oBACV,WAAW;oBACX,YAAY;oBACZ,GAAG,CAAC,aAAa,IAAI,EAAE,aAAa,EAAE,CAAC;iBACxC;aACF,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"performance.js","sourceRoot":"","sources":["../../../src/utils/internal/performance.ts"],"names":[],"mappings":"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"}
@@ -144,6 +144,19 @@ export declare function toCanonicalContext(context: Readonly<Record<string, unkn
144
144
  * ```
145
145
  */
146
146
  export declare function withExtra(context: RequestContext, fields: Readonly<Record<string, unknown>>): RequestContext;
147
+ /**
148
+ * Returns a copy of `context` whose `traceId` / `spanId` name the span that is
149
+ * active *now*, rather than the one that was active when the context was built.
150
+ *
151
+ * A context created before a span opens carries the enclosing span's IDs, so a
152
+ * handler running inside a `tool_execution:*` span would advertise the request
153
+ * span instead of its own. Re-binding at the point the span becomes active is
154
+ * what makes `ctx.spanId` name the execution the handler is part of.
155
+ *
156
+ * Returns the input unchanged when no valid span is active, so a
157
+ * telemetry-disabled path is untouched.
158
+ */
159
+ export declare function withActiveSpan<T extends RequestContext>(context: T): T;
147
160
  /**
148
161
  * Parameters accepted by {@link requestContextService.createRequestContext}.
149
162
  *
@@ -1 +1 @@
1
- {"version":3,"file":"requestContext.d.ts","sourceRoot":"","sources":["../../../src/utils/internal/requestContext.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+CAA+C,CAAC;AAc9E;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,WAAW;IAC1B,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,2HAA2H;IAC3H,GAAG,EAAE,MAAM,CAAC;IACZ,wFAAwF;IACxF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sEAAsE;IAEtE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAE/B;;;;;;;;OAQG;IAEH,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAEtD;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE/B;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE/B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE5B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC;AAmBhD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,cAAc,CAM7F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACxC,cAAc,CAEhB;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAElE;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE/B;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;IAEpD,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AA6HD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,qBAAqB;IA1IhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;kCAC0B,0BAA0B,GAAQ,cAAc;IAmD7E;;;;;;;;;;;;;;;;;;;;;OAqBG;2BACoB,QAAQ,kBAAkB,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc;CAoCzB,CAAC"}
1
+ {"version":3,"file":"requestContext.d.ts","sourceRoot":"","sources":["../../../src/utils/internal/requestContext.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+CAA+C,CAAC;AAc9E;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,WAAW;IAC1B,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,2HAA2H;IAC3H,GAAG,EAAE,MAAM,CAAC;IACZ,wFAAwF;IACxF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sEAAsE;IAEtE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAE/B;;;;;;;;OAQG;IAEH,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAEtD;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE/B;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE/B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE5B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC;AAmBhD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,cAAc,CAM7F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GACxC,cAAc,CAEhB;AAmBD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,cAAc,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAKtE;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAElE;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE/B;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;IAEpD,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B;AA0HD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,qBAAqB;IAvIhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;kCAC0B,0BAA0B,GAAQ,cAAc;IAgD7E;;;;;;;;;;;;;;;;;;;;;OAqBG;2BACoB,QAAQ,kBAAkB,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc;CAoCzB,CAAC"}
@@ -20,7 +20,7 @@
20
20
  *
21
21
  * @module src/utils/internal/requestContext
22
22
  */
23
- import { trace } from '@opentelemetry/api';
23
+ import { isSpanContextValid, trace } from '@opentelemetry/api';
24
24
  import { authContext as alsAuthContext } from '../../mcp-server/transports/auth/lib/authContext.js';
25
25
  import { generateRequestContextId } from '../../utils/security/idGenerator.js';
26
26
  /** Maps validated token info to the context-facing auth shape. */
@@ -88,6 +88,44 @@ export function toCanonicalContext(context) {
88
88
  export function withExtra(context, fields) {
89
89
  return { ...context, extra: { ...context.extra, ...fields } };
90
90
  }
91
+ /**
92
+ * Reads the trace and span IDs of the currently-active OpenTelemetry span, or
93
+ * `undefined` when there is no active span or its span context is invalid.
94
+ *
95
+ * An invalid span context is what a non-recording span carries — the shape
96
+ * `startActiveSpan` produces when telemetry is disabled. Its IDs are all
97
+ * zeroes, which correlate to nothing; treating them as absent keeps a
98
+ * telemetry-off deployment reporting `undefined` rather than a run of zeroes.
99
+ */
100
+ function activeSpanIds() {
101
+ const activeSpan = trace.getActiveSpan();
102
+ if (!activeSpan || typeof activeSpan.spanContext !== 'function')
103
+ return undefined;
104
+ const spanContext = activeSpan.spanContext();
105
+ if (!spanContext || !isSpanContextValid(spanContext))
106
+ return undefined;
107
+ return { spanId: spanContext.spanId, traceId: spanContext.traceId };
108
+ }
109
+ /**
110
+ * Returns a copy of `context` whose `traceId` / `spanId` name the span that is
111
+ * active *now*, rather than the one that was active when the context was built.
112
+ *
113
+ * A context created before a span opens carries the enclosing span's IDs, so a
114
+ * handler running inside a `tool_execution:*` span would advertise the request
115
+ * span instead of its own. Re-binding at the point the span becomes active is
116
+ * what makes `ctx.spanId` name the execution the handler is part of.
117
+ *
118
+ * Returns the input unchanged when no valid span is active, so a
119
+ * telemetry-disabled path is untouched.
120
+ */
121
+ export function withActiveSpan(context) {
122
+ const ids = activeSpanIds();
123
+ if (!ids)
124
+ return context;
125
+ if (context.traceId === ids.traceId && context.spanId === ids.spanId)
126
+ return context;
127
+ return { ...context, traceId: ids.traceId, spanId: ids.spanId };
128
+ }
91
129
  /**
92
130
  * Singleton-like service object for managing request context operations.
93
131
  * @private
@@ -150,13 +188,10 @@ const requestContextServiceInstance = {
150
188
  ...(authFromStore && { auth: authFromStore }),
151
189
  };
152
190
  // --- OpenTelemetry Integration ---
153
- const activeSpan = trace.getActiveSpan();
154
- if (activeSpan && typeof activeSpan.spanContext === 'function') {
155
- const spanContext = activeSpan.spanContext();
156
- if (spanContext) {
157
- context.traceId = spanContext.traceId;
158
- context.spanId = spanContext.spanId;
159
- }
191
+ const ids = activeSpanIds();
192
+ if (ids) {
193
+ context.traceId = ids.traceId;
194
+ context.spanId = ids.spanId;
160
195
  }
161
196
  // --- End OpenTelemetry Integration ---
162
197
  return context;
@@ -1 +1 @@
1
- {"version":3,"file":"requestContext.js","sourceRoot":"","sources":["../../../src/utils/internal/requestContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"requestContext.js","sourceRoot":"","sources":["../../../src/utils/internal/requestContext.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,iDAAiD,CAAC;AAEhG,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,kEAAkE;AAClE,SAAS,aAAa,CAAC,IAAc;IACnC,OAAO;QACL,GAAG,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ;QAClC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACjD,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;KACzC,CAAC;AACJ,CAAC;AAkID;;;;GAIG;AACH,MAAM,sBAAsB,GAAG;IAC7B,MAAM;IACN,OAAO;IACP,WAAW;IACX,WAAW;IACX,WAAW;IACX,QAAQ;IACR,UAAU;IACV,WAAW;IACX,SAAS;CAC2C,CAAC;AAEvD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAA0C;IAC3E,MAAM,SAAS,GAA4B,EAAE,CAAC;IAC9C,KAAK,MAAM,GAAG,IAAI,sBAAsB,EAAE,CAAC;QACzC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS;YAAE,SAAS,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,SAAsC,CAAC;AAChD,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,SAAS,CACvB,OAAuB,EACvB,MAAyC;IAEzC,OAAO,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC;AAChE,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,aAAa;IACpB,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;IACzC,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,CAAC,WAAW,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IAClF,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IAC7C,IAAI,CAAC,WAAW,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC;QAAE,OAAO,SAAS,CAAC;IACvE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC;AACtE,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,cAAc,CAA2B,OAAU;IACjE,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,IAAI,CAAC,GAAG;QAAE,OAAO,OAAO,CAAC;IACzB,IAAI,OAAO,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM;QAAE,OAAO,OAAO,CAAC;IACrF,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;AAClE,CAAC;AAyCD;;;GAGG;AACH,MAAM,6BAA6B,GAAG;IACpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,oBAAoB,CAAC,MAAM,GAA+B,EAAE;QAC1D,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QAEzE,MAAM,SAAS,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC;QAC5C,MAAM,gBAAgB,GAAG,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC;QAEvD,sEAAsE;QACtE,8EAA8E;QAC9E,MAAM,aAAa,GAA4B,SAAS,EAAE,QAAQ;YAChE,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC;YACnC,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,SAAS,GAAG,aAAa,EAAE,SAAS;YACxC,CAAC,CAAC,aAAa,CAAC,SAAS;YACzB,CAAC,CAAC,wBAAwB,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAE3C,MAAM,kBAAkB,GACtB,OAAO,iBAAiB,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3F,MAAM,gBAAgB,GACpB,kBAAkB,IAAI,QAAQ,IAAI,aAAa,EAAE,QAAQ,IAAI,gBAAgB,CAAC;QAEhF,MAAM,KAAK,GACT,aAAa,EAAE,KAAK,IAAI,iBAAiB;YACvC,CAAC,CAAC,EAAE,GAAG,aAAa,EAAE,KAAK,EAAE,GAAG,iBAAiB,EAAE;YACnD,CAAC,CAAC,SAAS,CAAC;QAEhB,MAAM,OAAO,GAAmB;YAC9B,GAAG,aAAa;YAChB,SAAS;YACT,SAAS;YACT,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC;YACvB,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,GAAG,CAAC,aAAa,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;SAC9C,CAAC;QAEF,oCAAoC;QACpC,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;QAC5B,IAAI,GAAG,EAAE,CAAC;YACR,OAAO,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;YAC9B,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QAC9B,CAAC;QACD,wCAAwC;QAExC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,YAAY,CAAC,QAAkB,EAAE,aAAuC;QACtE,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC;YAC5C,0EAA0E;YAC1E,iDAAiD;YACjD,SAAS,EAAE,aAAa,EAAE,SAAS,IAAI,cAAc;YACrD,GAAG,CAAC,aAAa,IAAI,EAAE,aAAa,EAAE,CAAC;YACvC,GAAG,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC1D,CAAC,CAAC;QAEH,OAAO;YACL,GAAG,WAAW;YACd,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC;SAC9B,CAAC;IACJ,CAAC;CACF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,6BAA6B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cyanheads/mcp-ts-core",
3
- "version": "0.12.0",
3
+ "version": "0.12.2",
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
  "files": [
@@ -227,7 +227,7 @@
227
227
  "js-yaml": "^5.3.0",
228
228
  "linkedom": "^0.18.13",
229
229
  "node-cron": "^4.6.0",
230
- "openai": "^7.4.0",
230
+ "openai": "^7.5.0",
231
231
  "papaparse": "^5.6.0",
232
232
  "partial-json": "^0.1.7",
233
233
  "pdf-lib": "^1.17.1",
@@ -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.4"
7
+ version: "1.5"
8
8
  audience: external
9
9
  type: reference
10
10
  ---
@@ -177,6 +177,35 @@ Beyond `description`, `params`, `handler`, and `list`, the builder also supports
177
177
  | `title` | Human-readable display title (defaults to `name`). |
178
178
  | `examples` | Array of `{ name, uri }` example entries surfaced in `resources/list` for discoverability. |
179
179
  | `complete` | Per-variable completion callbacks for URI template variables. Keys match template variable names. Enables `completion/complete` and the `completions` capability. |
180
+ | `cacheHint` | `{ ttlMs?, cacheScope? }` — how long a client may cache this resource's `resources/read` result on protocol revision 2026-07-28. See below. |
181
+
182
+ ### Cache hints (2026-07-28)
183
+
184
+ A resource that serves slow-changing data can declare how long its `resources/read` result stays fresh. `ttlMs` is the lifetime in milliseconds (a non-negative safe integer); `cacheScope` is `'private'` (only the requesting client may cache it) or `'public'` (shared caches may too).
185
+
186
+ ```typescript
187
+ export const referenceTable = resource('reference://units', {
188
+ description: 'Unit conversion reference table.',
189
+ cacheHint: { ttlMs: 86_400_000, cacheScope: 'public' },
190
+ handler: () => UNIT_TABLE,
191
+ });
192
+ ```
193
+
194
+ Resolution is per field, most specific first: the resource's own `cacheHint`, then the `resources/read` entry of `createApp({ cacheHints })`, then the SDK defaults (`ttlMs: 0`, `cacheScope: 'private'`). So a resource that names only a scope still inherits the server-wide lifetime.
195
+
196
+ Set a server-wide policy for the list operations alongside it — those results the SDK builds itself, so a resource cannot speak for them:
197
+
198
+ ```typescript
199
+ await createApp({
200
+ cacheHints: {
201
+ 'tools/list': { ttlMs: 3_600_000, cacheScope: 'public' },
202
+ 'resources/read': { ttlMs: 60_000 },
203
+ },
204
+ resources: [referenceTable],
205
+ });
206
+ ```
207
+
208
+ Cacheable operations are `tools/list`, `prompts/list`, `resources/list`, `resources/templates/list`, `resources/read`, and `server/discover`. Responses to 2025-era clients are unaffected — the hint only fills fields the 2026-07-28 revision defines.
180
209
 
181
210
  ## Checklist
182
211
 
@@ -189,6 +218,7 @@ Beyond `description`, `params`, `handler`, and `list`, the builder also supports
189
218
  - [ ] If `errors[]` contract declared: every entry has a `recovery` field (≥5 words, lint-enforced)
190
219
  - [ ] Data is reachable via the tool surface — confirm by checking `src/mcp-server/tools/definitions/` for a tool that exposes this data, or document why this resource is resources-only
191
220
  - [ ] `list()` function provided if the resource is discoverable
221
+ - [ ] `cacheHint` set if the data is slow-changing and worth caching (`ttlMs` a non-negative safe integer)
192
222
  - [ ] Pagination used for large result sets (`extractCursor`/`paginateArray`) — applies to both `handler` data and `list()` catalogs with many entries
193
223
  - [ ] Registered in the project's existing `createApp()` resource list (directly or via barrel)
194
224
  - [ ] `bun run devcheck` passes
@@ -4,7 +4,7 @@ description: >
4
4
  Scaffold a new MCP tool definition. Use when the user asks to add a tool, create a new tool, or implement a new capability for the server.
5
5
  metadata:
6
6
  author: cyanheads
7
- version: "2.18"
7
+ version: "2.20"
8
8
  audience: external
9
9
  type: reference
10
10
  ---
@@ -244,6 +244,75 @@ Two limits worth knowing when you write a schema:
244
244
 
245
245
  - **Root level only**, matching `.strict()` itself. A nested `z.object()` inside the input still strips unknown keys unless it is strict in its own right — mark the nested option objects you want guarded.
246
246
  - **An explicit opening wins.** A definition that declared `.passthrough()` or `.catchall(...)` asked for an open object, and `tool()` leaves it alone. Use that (deliberately) for tools that proxy arbitrary upstream query parameters.
247
+ - **A union root is strictened per variant.** See below — the branch is where the properties live, so that is where `additionalProperties: false` lands.
248
+
249
+ ### Multi-mode tools take a discriminated-union input
250
+
251
+ When a tool has genuinely exclusive argument sets — look up by ID *or* search by name, never both — declare the union directly instead of making every field optional and checking the combination by hand:
252
+
253
+ ```ts
254
+ const lookup = tool('lookup', {
255
+ description: 'Looks a record up by exactly one of the supported keys.',
256
+ input: z.discriminatedUnion('mode', [
257
+ z.object({
258
+ mode: z.literal('byId').describe('Look up by exact ID.'),
259
+ id: z.string().describe('Record ID.'),
260
+ }),
261
+ z.object({
262
+ mode: z.literal('byName').describe('Search by name.'),
263
+ name: z.string().describe('Name fragment.'),
264
+ fuzzy: z.boolean().default(false).describe('Whether to match loosely.'),
265
+ }),
266
+ ]),
267
+ output: z.object({ /* … a flat object; see below */ }),
268
+ handler: (input) =>
269
+ input.mode === 'byId' ? byId(input.id) : byName(input.name, input.fuzzy),
270
+ });
271
+ ```
272
+
273
+ The handler dispatches on the discriminator and TypeScript narrows `input` to that branch — `input.id` exists only under `'byId'`, and reaching for `input.name` there is a compile error.
274
+
275
+ What reaches the wire is `{"type": "object", "oneOf": [<branch>, …]}`: branches intact, each with its own `required` list and a `const`-tagged discriminator, `additionalProperties: false` on every one. Identical bytes on a 2025-11-25 and a 2026-07-28 connection — the legacy projection inspects `outputSchema` alone and never rewrites an input root.
276
+
277
+ Three constraints:
278
+
279
+ - **The union must be discriminated.** A bare `z.union(...)` is rejected: with no literal-tagged key the model has nothing to choose a branch by, and every variant's `required` would read as applying at once.
280
+ - **`output` stays a flat `z.object`** — see the widening section below for why a non-object output root breaks the success path. When the *result* shape varies by mode, use a `kind` discriminator with presence-based optional fields and render each arm on field presence in `format()`.
281
+ - **Portability is unmeasured at the parameter root.** `schema-root-oneof-portability` (strict mode only) says so; for Anthropic clients the union is the better shape, and flattening is the escape hatch if you target the widest vendor matrix.
282
+ - **A union root rules out `headerParam`.** See below — the branches sit under `oneOf`, which the reachability rule excludes.
283
+
284
+ ### `headerParam` mirrors an argument into a request header
285
+
286
+ Protocol revision 2026-07-28 lets a tool designate an input property with `x-mcp-header`, so its value also rides an `Mcp-Param-<Name>` request header. A proxy, gateway, or router can then read it without parsing the JSON-RPC body:
287
+
288
+ ```ts
289
+ import { headerParam, tool, z } from '@cyanheads/mcp-ts-core';
290
+
291
+ input: z.object({
292
+ query: z.string().describe('Search query.'),
293
+ routing: z.object({
294
+ region: headerParam(z.string(), 'Region').describe('Deployment region.'),
295
+ shard: headerParam(z.int(), 'Shard-Id').describe('Shard the record lives on.'),
296
+ }).describe('Where to route the lookup.'),
297
+ }),
298
+ ```
299
+
300
+ The emitted property carries `"x-mcp-header": "Region"` and nothing else about the field changes — description, type, validation, and requiredness are untouched. Order does not matter: `headerParam(z.string(), 'Region').describe('…')` and `headerParam(z.string().describe('…'), 'Region')` are the same schema.
301
+
302
+ **It mirrors, it does not relocate.** When the body carries a value for a designated property, the matching `Mcp-Param-<Name>` header MUST be present and decode to an equal value; the SDK cross-checks the pair before dispatch and rejects a disagreement with `-32020` (`HeaderMismatch`, HTTP `400`). Absent or `null` in the body means no header is expected. **Your handler still reads the argument from `input`** — there is nothing new to do in the handler body.
303
+
304
+ **Where a designation is legal.** The property must be primitive-typed (`string`, `integer`, `number`, `boolean`) and statically reachable through a chain of `properties` keys. Top-level and nested `z.object()` fields qualify. These do not:
305
+
306
+ | Placement | Why |
307
+ |:--|:--|
308
+ | An array element (`z.array(z.object({ … }))`) | Lives under `items` |
309
+ | A `z.record()` value | Lives under `additionalProperties` |
310
+ | Any field of a **discriminated-union input root** | The root advertises `oneOf`, so every branch is off the chain — no field of a union-input tool can be designated |
311
+ | A schema reused under `.meta({ id })` | Hoisted into `$defs` and reached by `$ref` |
312
+
313
+ Header names must be non-empty RFC 9110 tokens (no spaces, control characters, or HTTP delimiters) and case-insensitively unique across the whole input schema.
314
+
315
+ **Violations fail at definition time.** `tool()` throws on import, naming the field path and the reason. That is deliberate: the SDK only `console.warn`s and registers the tool anyway, leaving conforming Streamable HTTP clients to drop it from `tools/list` — a tool that silently disappears with nothing reporting the gap. The linter reports the same verdict as `header-param-designation` for definitions assembled without the builder.
247
316
 
248
317
  ### The advertised `outputSchema` is widened
249
318
 
@@ -4,7 +4,7 @@ description: >
4
4
  Reference for core and server configuration in `@cyanheads/mcp-ts-core`. Covers env var tables with defaults, priority order, server-specific Zod schema pattern, and Workers lazy-parsing requirement.
5
5
  metadata:
6
6
  author: cyanheads
7
- version: "1.10"
7
+ version: "1.12"
8
8
  audience: external
9
9
  type: reference
10
10
  ---
@@ -47,12 +47,36 @@ Managed by `@cyanheads/mcp-ts-core`. Validated via Zod from environment variable
47
47
  | `websiteUrl` | `string?` | Canonical homepage / repository URL |
48
48
  | `description` | `string?` | One-line description; wins over `MCP_SERVER_DESCRIPTION` when set |
49
49
  | `icons` | `Implementation['icons']?` | Array of icon objects: `{ src, mimeType?, sizes?: string[], theme?: 'light'\|'dark' }` |
50
+ | `cacheHints` | `CacheHints?` | Cache hints for the 2026-07-28 cacheable results, keyed by operation — see below |
51
+
52
+ #### Cache hints (`cacheHints`)
53
+
54
+ API-only, no env var. Sets the `ttlMs` / `cacheScope` a client may cache a cacheable result for on protocol revision 2026-07-28. Keys are the closed set of cacheable operations: `tools/list`, `prompts/list`, `resources/list`, `resources/templates/list`, `resources/read`, `server/discover`.
55
+
56
+ ```ts
57
+ await createApp({
58
+ cacheHints: {
59
+ 'tools/list': { ttlMs: 3_600_000, cacheScope: 'public' },
60
+ 'resources/read': { ttlMs: 60_000 },
61
+ },
62
+ });
63
+ ```
64
+
65
+ - `ttlMs` — cache lifetime in milliseconds; must be a non-negative safe integer. An invalid value fails at startup with a `ConfigurationError` naming the field.
66
+ - `cacheScope` — `'private'` (only the requesting client may cache) or `'public'` (shared caches may too).
67
+ - A resource's own `cacheHint` overrides the `resources/read` entry for that resource, field by field — see the `add-resource` skill.
68
+ - Omitting a hint keeps the SDK defaults (`ttlMs: 0`, `cacheScope: 'private'`). Responses to 2025-era clients are never affected.
69
+
70
+ ---
71
+
72
+ ### Environment & logging
73
+
74
+ | Env Var | `AppConfig` field | Default | Notes |
75
+ |:--------|:-----------------|:--------|:------|
50
76
  | `NODE_ENV` | `environment` | `development` | Aliases: `dev`→`development`, `prod`→`production`, `test`→`testing` |
51
77
  | `MCP_LOG_LEVEL` | `logLevel` | `debug` | Aliases: `warn`→`warning`, `err`→`error`, `fatal`/`silent`→`emerg`, `trace`→`debug`, `information`→`info` |
52
78
  | `LOGS_DIR` | `logsPath` | `<project-root>/logs` | Node.js only; absolute or relative to project root |
53
79
 
54
- ---
55
-
56
80
  ### Transport
57
81
 
58
82
  | Env Var | `AppConfig` field | Default | Notes |
@@ -66,6 +90,9 @@ Managed by `@cyanheads/mcp-ts-core`. Validated via Zod from environment variable
66
90
  | `MCP_HTTP_PORT_RETRY_DELAY_MS` | `mcpHttpPortRetryDelayMs` | `50` | Delay between port retries (ms) |
67
91
  | `MCP_SESSION_MODE` | `mcpSessionMode` | `auto` | `stateless` \| `stateful` \| `auto` |
68
92
  | `MCP_STATEFUL_SESSION_STALE_TIMEOUT_MS` | `mcpStatefulSessionStaleTimeoutMs` | `1800000` | 30 min; stale session eviction |
93
+ | `MCP_HTTP_RESUMABILITY` | `mcpHttpResumability` | `true` | SSE stream replay under stateful HTTP. On by default — selecting a session mode is the opt-in. Kill switch only; no effect on stateless serving or the session-less 2026-07-28 era |
94
+ | `MCP_HTTP_RESUMABILITY_MAX_EVENTS` | `mcpHttpResumabilityMaxEvents` | `512` | Events retained per session for replay; oldest evicted first. Lower it on a server whose tools return large results |
95
+ | `MCP_HTTP_RESUMABILITY_TTL_MS` | `mcpHttpResumabilityTtlMs` | `300000` | 5 min; how long a retained event stays replayable |
69
96
  | `MCP_RESPONSE_VERBOSITY` | `mcpResponseVerbosity` | `standard` | `minimal` \| `standard` \| `full` |
70
97
  | `MCP_ALLOWED_ORIGINS` | `mcpAllowedOrigins` | — | Comma-separated list; omit to allow all |
71
98
  | `MCP_SERVER_RESOURCE_IDENTIFIER` | `mcpServerResourceIdentifier` | — | RFC 8707 resource indicator URL |