@cyanheads/mcp-ts-core 0.11.1 → 0.11.3

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 (215) hide show
  1. package/AGENTS.md +14 -10
  2. package/CLAUDE.md +14 -10
  3. package/README.md +3 -3
  4. package/biome.json +1 -1
  5. package/changelog/0.11.x/0.11.2.md +98 -0
  6. package/changelog/0.11.x/0.11.3.md +49 -0
  7. package/dist/config/index.d.ts.map +1 -1
  8. package/dist/config/index.js +3 -13
  9. package/dist/config/index.js.map +1 -1
  10. package/dist/config/logLevelAlias.d.ts +15 -0
  11. package/dist/config/logLevelAlias.d.ts.map +1 -0
  12. package/dist/config/logLevelAlias.js +30 -0
  13. package/dist/config/logLevelAlias.js.map +1 -0
  14. package/dist/core/app.d.ts +37 -14
  15. package/dist/core/app.d.ts.map +1 -1
  16. package/dist/core/app.js +56 -23
  17. package/dist/core/app.js.map +1 -1
  18. package/dist/core/context.d.ts +10 -0
  19. package/dist/core/context.d.ts.map +1 -1
  20. package/dist/core/context.js +10 -1
  21. package/dist/core/context.js.map +1 -1
  22. package/dist/core/index.d.ts +1 -1
  23. package/dist/core/index.d.ts.map +1 -1
  24. package/dist/core/index.js.map +1 -1
  25. package/dist/core/worker.d.ts.map +1 -1
  26. package/dist/core/worker.js +35 -18
  27. package/dist/core/worker.js.map +1 -1
  28. package/dist/logs/combined.log +16 -8
  29. package/dist/logs/error.log +12 -4
  30. package/dist/mcp-server/elicitation.d.ts +64 -0
  31. package/dist/mcp-server/elicitation.d.ts.map +1 -0
  32. package/dist/mcp-server/elicitation.js +81 -0
  33. package/dist/mcp-server/elicitation.js.map +1 -0
  34. package/dist/mcp-server/protocolSession.d.ts +34 -0
  35. package/dist/mcp-server/protocolSession.d.ts.map +1 -0
  36. package/dist/mcp-server/protocolSession.js +13 -0
  37. package/dist/mcp-server/protocolSession.js.map +1 -0
  38. package/dist/mcp-server/resources/resource-registration.d.ts +2 -1
  39. package/dist/mcp-server/resources/resource-registration.d.ts.map +1 -1
  40. package/dist/mcp-server/resources/resource-registration.js +6 -2
  41. package/dist/mcp-server/resources/resource-registration.js.map +1 -1
  42. package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts +7 -12
  43. package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts.map +1 -1
  44. package/dist/mcp-server/resources/utils/resourceHandlerFactory.js +24 -31
  45. package/dist/mcp-server/resources/utils/resourceHandlerFactory.js.map +1 -1
  46. package/dist/mcp-server/server.d.ts +3 -0
  47. package/dist/mcp-server/server.d.ts.map +1 -1
  48. package/dist/mcp-server/server.js +12 -2
  49. package/dist/mcp-server/server.js.map +1 -1
  50. package/dist/mcp-server/tools/tool-registration.d.ts +2 -1
  51. package/dist/mcp-server/tools/tool-registration.d.ts.map +1 -1
  52. package/dist/mcp-server/tools/tool-registration.js +6 -2
  53. package/dist/mcp-server/tools/tool-registration.js.map +1 -1
  54. package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts +7 -13
  55. package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts.map +1 -1
  56. package/dist/mcp-server/tools/utils/toolHandlerFactory.js +11 -44
  57. package/dist/mcp-server/tools/utils/toolHandlerFactory.js.map +1 -1
  58. package/dist/mcp-server/transports/http/httpErrorHandler.js +1 -1
  59. package/dist/mcp-server/transports/http/httpErrorHandler.js.map +1 -1
  60. package/dist/mcp-server/transports/http/httpServer.d.ts +2 -2
  61. package/dist/mcp-server/transports/http/httpServer.d.ts.map +1 -1
  62. package/dist/mcp-server/transports/http/httpServer.js.map +1 -1
  63. package/dist/mcp-server/transports/http/httpTransport.d.ts +2 -2
  64. package/dist/mcp-server/transports/http/httpTransport.d.ts.map +1 -1
  65. package/dist/mcp-server/transports/http/httpTransport.js +113 -55
  66. package/dist/mcp-server/transports/http/httpTransport.js.map +1 -1
  67. package/dist/mcp-server/transports/http/sessionStore.d.ts +17 -0
  68. package/dist/mcp-server/transports/http/sessionStore.d.ts.map +1 -1
  69. package/dist/mcp-server/transports/http/sessionStore.js +71 -0
  70. package/dist/mcp-server/transports/http/sessionStore.js.map +1 -1
  71. package/dist/mcp-server/transports/manager.d.ts +2 -6
  72. package/dist/mcp-server/transports/manager.d.ts.map +1 -1
  73. package/dist/mcp-server/transports/manager.js +4 -0
  74. package/dist/mcp-server/transports/manager.js.map +1 -1
  75. package/dist/services/canvas/core/CanvasRegistry.d.ts +2 -2
  76. package/dist/services/canvas/core/CanvasRegistry.d.ts.map +1 -1
  77. package/dist/services/canvas/core/CanvasRegistry.js +14 -3
  78. package/dist/services/canvas/core/CanvasRegistry.js.map +1 -1
  79. package/dist/services/canvas/core/DataCanvas.d.ts +1 -1
  80. package/dist/services/canvas/core/DataCanvas.d.ts.map +1 -1
  81. package/dist/services/canvas/core/DataCanvas.js +2 -2
  82. package/dist/services/canvas/core/DataCanvas.js.map +1 -1
  83. package/dist/services/canvas/providers/duckdb/DuckdbProvider.d.ts.map +1 -1
  84. package/dist/services/canvas/providers/duckdb/DuckdbProvider.js +11 -3
  85. package/dist/services/canvas/providers/duckdb/DuckdbProvider.js.map +1 -1
  86. package/dist/services/canvas/providers/duckdb/exportWriter.d.ts.map +1 -1
  87. package/dist/services/canvas/providers/duckdb/exportWriter.js +23 -2
  88. package/dist/services/canvas/providers/duckdb/exportWriter.js.map +1 -1
  89. package/dist/services/mirror/core/defineMirror.d.ts.map +1 -1
  90. package/dist/services/mirror/core/defineMirror.js +18 -7
  91. package/dist/services/mirror/core/defineMirror.js.map +1 -1
  92. package/dist/services/mirror/core/runner.d.ts.map +1 -1
  93. package/dist/services/mirror/core/runner.js +3 -0
  94. package/dist/services/mirror/core/runner.js.map +1 -1
  95. package/dist/services/mirror/index.d.ts +1 -1
  96. package/dist/services/mirror/index.d.ts.map +1 -1
  97. package/dist/services/mirror/index.js.map +1 -1
  98. package/dist/services/mirror/sqlite/sqliteMirrorStore.d.ts +20 -0
  99. package/dist/services/mirror/sqlite/sqliteMirrorStore.d.ts.map +1 -1
  100. package/dist/services/mirror/sqlite/sqliteMirrorStore.js +92 -8
  101. package/dist/services/mirror/sqlite/sqliteMirrorStore.js.map +1 -1
  102. package/dist/storage/core/StorageService.d.ts.map +1 -1
  103. package/dist/storage/core/StorageService.js +4 -1
  104. package/dist/storage/core/StorageService.js.map +1 -1
  105. package/dist/storage/core/storageValidation.d.ts +8 -0
  106. package/dist/storage/core/storageValidation.d.ts.map +1 -1
  107. package/dist/storage/core/storageValidation.js +22 -0
  108. package/dist/storage/core/storageValidation.js.map +1 -1
  109. package/dist/storage/providers/inMemory/inMemoryProvider.d.ts +1 -1
  110. package/dist/storage/providers/inMemory/inMemoryProvider.d.ts.map +1 -1
  111. package/dist/storage/providers/inMemory/inMemoryProvider.js +67 -25
  112. package/dist/storage/providers/inMemory/inMemoryProvider.js.map +1 -1
  113. package/dist/testing/fuzz.d.ts.map +1 -1
  114. package/dist/testing/fuzz.js +33 -14
  115. package/dist/testing/fuzz.js.map +1 -1
  116. package/dist/testing/index.d.ts +45 -13
  117. package/dist/testing/index.d.ts.map +1 -1
  118. package/dist/testing/index.js +29 -76
  119. package/dist/testing/index.js.map +1 -1
  120. package/dist/testing/vitest.d.ts +12 -3
  121. package/dist/testing/vitest.d.ts.map +1 -1
  122. package/dist/testing/vitest.js +3 -0
  123. package/dist/testing/vitest.js.map +1 -1
  124. package/dist/utils/formatting/diffFormatter.d.ts +5 -5
  125. package/dist/utils/formatting/diffFormatter.d.ts.map +1 -1
  126. package/dist/utils/formatting/diffFormatter.js +1 -1
  127. package/dist/utils/formatting/diffFormatter.js.map +1 -1
  128. package/dist/utils/formatting/tableFormatter.d.ts +3 -3
  129. package/dist/utils/formatting/tableFormatter.d.ts.map +1 -1
  130. package/dist/utils/formatting/tableFormatter.js +1 -1
  131. package/dist/utils/formatting/tableFormatter.js.map +1 -1
  132. package/dist/utils/formatting/treeFormatter.d.ts +3 -3
  133. package/dist/utils/formatting/treeFormatter.d.ts.map +1 -1
  134. package/dist/utils/formatting/treeFormatter.js +1 -1
  135. package/dist/utils/formatting/treeFormatter.js.map +1 -1
  136. package/dist/utils/index.d.ts +1 -1
  137. package/dist/utils/index.d.ts.map +1 -1
  138. package/dist/utils/index.js +1 -1
  139. package/dist/utils/index.js.map +1 -1
  140. package/dist/utils/metrics/tokenCounter.d.ts +3 -3
  141. package/dist/utils/metrics/tokenCounter.d.ts.map +1 -1
  142. package/dist/utils/metrics/tokenCounter.js.map +1 -1
  143. package/dist/utils/network/fetchWithTimeout.d.ts +50 -21
  144. package/dist/utils/network/fetchWithTimeout.d.ts.map +1 -1
  145. package/dist/utils/network/fetchWithTimeout.js +299 -90
  146. package/dist/utils/network/fetchWithTimeout.js.map +1 -1
  147. package/dist/utils/network/httpError.d.ts.map +1 -1
  148. package/dist/utils/network/httpError.js +2 -2
  149. package/dist/utils/network/httpError.js.map +1 -1
  150. package/dist/utils/network/responseBody.d.ts +35 -0
  151. package/dist/utils/network/responseBody.d.ts.map +1 -0
  152. package/dist/utils/network/responseBody.js +104 -0
  153. package/dist/utils/network/responseBody.js.map +1 -0
  154. package/dist/utils/network/retry.d.ts +2 -2
  155. package/dist/utils/network/retry.d.ts.map +1 -1
  156. package/dist/utils/pagination/pagination.d.ts +3 -3
  157. package/dist/utils/pagination/pagination.d.ts.map +1 -1
  158. package/dist/utils/pagination/pagination.js.map +1 -1
  159. package/dist/utils/parsing/csvParser.d.ts +2 -2
  160. package/dist/utils/parsing/csvParser.d.ts.map +1 -1
  161. package/dist/utils/parsing/csvParser.js +1 -1
  162. package/dist/utils/parsing/csvParser.js.map +1 -1
  163. package/dist/utils/parsing/dateParser.d.ts +11 -7
  164. package/dist/utils/parsing/dateParser.d.ts.map +1 -1
  165. package/dist/utils/parsing/dateParser.js +8 -4
  166. package/dist/utils/parsing/dateParser.js.map +1 -1
  167. package/dist/utils/parsing/frontmatterParser.d.ts +6 -3
  168. package/dist/utils/parsing/frontmatterParser.d.ts.map +1 -1
  169. package/dist/utils/parsing/frontmatterParser.js +9 -9
  170. package/dist/utils/parsing/frontmatterParser.js.map +1 -1
  171. package/dist/utils/parsing/htmlExtractor.d.ts +8 -3
  172. package/dist/utils/parsing/htmlExtractor.d.ts.map +1 -1
  173. package/dist/utils/parsing/htmlExtractor.js +7 -7
  174. package/dist/utils/parsing/htmlExtractor.js.map +1 -1
  175. package/dist/utils/parsing/index.d.ts +1 -0
  176. package/dist/utils/parsing/index.d.ts.map +1 -1
  177. package/dist/utils/parsing/index.js +1 -0
  178. package/dist/utils/parsing/index.js.map +1 -1
  179. package/dist/utils/parsing/inputBudget.d.ts +35 -0
  180. package/dist/utils/parsing/inputBudget.d.ts.map +1 -0
  181. package/dist/utils/parsing/inputBudget.js +79 -0
  182. package/dist/utils/parsing/inputBudget.js.map +1 -0
  183. package/dist/utils/parsing/jsonParser.d.ts +6 -3
  184. package/dist/utils/parsing/jsonParser.d.ts.map +1 -1
  185. package/dist/utils/parsing/jsonParser.js +8 -8
  186. package/dist/utils/parsing/jsonParser.js.map +1 -1
  187. package/dist/utils/parsing/pdfParser.d.ts +41 -19
  188. package/dist/utils/parsing/pdfParser.d.ts.map +1 -1
  189. package/dist/utils/parsing/pdfParser.js +86 -60
  190. package/dist/utils/parsing/pdfParser.js.map +1 -1
  191. package/dist/utils/parsing/xmlParser.d.ts +4 -2
  192. package/dist/utils/parsing/xmlParser.d.ts.map +1 -1
  193. package/dist/utils/parsing/xmlParser.js +6 -7
  194. package/dist/utils/parsing/xmlParser.js.map +1 -1
  195. package/dist/utils/parsing/yamlParser.d.ts +4 -2
  196. package/dist/utils/parsing/yamlParser.d.ts.map +1 -1
  197. package/dist/utils/parsing/yamlParser.js +6 -7
  198. package/dist/utils/parsing/yamlParser.js.map +1 -1
  199. package/dist/utils/security/rateLimiter.d.ts +2 -2
  200. package/dist/utils/security/rateLimiter.d.ts.map +1 -1
  201. package/dist/utils/security/rateLimiter.js +1 -1
  202. package/dist/utils/security/rateLimiter.js.map +1 -1
  203. package/dist/utils/telemetry/trace.d.ts +3 -3
  204. package/dist/utils/telemetry/trace.d.ts.map +1 -1
  205. package/dist/utils/telemetry/trace.js.map +1 -1
  206. package/package.json +17 -15
  207. package/skills/add-test/SKILL.md +2 -2
  208. package/skills/api-auth/SKILL.md +5 -5
  209. package/skills/api-context/SKILL.md +13 -12
  210. package/skills/api-testing/SKILL.md +29 -10
  211. package/skills/api-utils/SKILL.md +4 -2
  212. package/skills/api-utils/references/parsing.md +3 -2
  213. package/skills/git-wrapup/SKILL.md +22 -1
  214. package/templates/AGENTS.md +1 -1
  215. package/templates/CLAUDE.md +1 -1
package/AGENTS.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Developer Protocol
2
2
 
3
3
  **Package:** `@cyanheads/mcp-ts-core`
4
- **Version:** 0.11.1
4
+ **Version:** 0.11.3
5
5
  **Engines:** Bun ≥1.3.0, Node ≥24.0.0
6
6
  **MCP SDK:** `@modelcontextprotocol/sdk` ^1.30.0
7
7
  **Zod:** ^4.4.3
@@ -307,15 +307,17 @@ Opt-in domain-specific logging. Methods: `debug`, `info`, `notice`, `warning`, `
307
307
  Tenant-scoped KV. Accepts any serializable value — no manual `JSON.stringify`/`JSON.parse` needed.
308
308
 
309
309
  ```ts
310
- await ctx.state.set('item:123', { name: 'Widget', count: 42 });
311
- await ctx.state.set('item:123', data, { ttl: 3600 }); // with TTL (seconds)
312
- const item = await ctx.state.get<Item>('item:123'); // T | null
313
- const safe = await ctx.state.get('item:123', ItemSchema); // Zod-validated T | null
314
- await ctx.state.delete('item:123');
315
- const values = await ctx.state.getMany<Item>(['item:1', 'item:2']); // Map<string, T>
316
- const page = await ctx.state.list('item:', { cursor, limit: 20 }); // { items, cursor? }
310
+ await ctx.state.set('item/123', { name: 'Widget', count: 42 });
311
+ await ctx.state.set('item/123', data, { ttl: 3600 }); // with TTL (seconds)
312
+ const item = await ctx.state.get<Item>('item/123'); // T | null
313
+ const safe = await ctx.state.get('item/123', ItemSchema); // Zod-validated T | null
314
+ await ctx.state.delete('item/123');
315
+ const values = await ctx.state.getMany<Item>(['item/1', 'item/2']); // Map<string, T>
316
+ const page = await ctx.state.list('item/', { cursor, limit: 20 }); // { items, cursor? }
317
317
  ```
318
318
 
319
+ **Keys match `^[a-zA-Z0-9_.\-/]+$` and may not contain `..`** — slashes are the namespace separator. A colon (`item:123`) throws `McpError(ValidationError)` on every call, in tests and in production alike.
320
+
319
321
  Throws `McpError(InvalidRequest)` if `tenantId` missing. Tenant ID resolution:
320
322
 
321
323
  | Mode | `tenantId` source |
@@ -456,9 +458,11 @@ describe('myTool', () => {
456
458
  });
457
459
  ```
458
460
 
459
- **`createMockContext` options:** `createMockContext()` (minimal), `{ tenantId: 'test-tenant' }` (enables state), `{ elicit: vi.fn() }`, `{ progress: true }` (task progress).
461
+ **`createMockContext` options:** `createMockContext()` (state included), `{ tenantId: 'test-tenant' }` (explicit tenant; defaults to `'default'`, as stdio resolves it), `{ errors: myTool.errors }` (typed `ctx.fail`), `{ elicit: vi.fn() }`, `{ progress: true }` (task progress).
462
+
463
+ **`ctx.state` in tests is the production path.** The mock backs it with a real `StorageService` over an `InMemoryProvider`, so key validation (`[a-zA-Z0-9_.\-/]+` — colons rejected) and TTL expiry behave exactly as they do in a deployment. Passing `errors` narrows the return type to `HandlerContext<ReasonOf<…>>`, which is what a definition declaring a contract types its handler's `ctx` as — so `definition.handler(input, ctx)` typechecks.
460
464
 
461
- **HTTP/session fixtures:** `createFetchMock(routes)` provides a strict fetch-compatible fake with ordered routes, captured `Request` objects, one-shot responses, and optional global install/restore. `createMockSession(options)` returns `{ sessionId, tenantId?, ctx }` for handlers that branch on durable HTTP session identity.
465
+ **HTTP/session fixtures:** `createFetchMock(routes)` provides a strict fetch-compatible fake with ordered routes, captured `Request` objects, one-shot responses, and optional global install/restore. `createMockSession(options)` returns `{ sessionId, tenantId, ctx }` for handlers that branch on durable HTTP session identity.
462
466
 
463
467
  **Schema assertions:** `expect(result).toEqual(expect.schemaMatching(myTool.output))` — Vitest 4's Standard Schema asymmetric matcher validates handler output against the definition's own Zod schema. Use when output is dynamic (timestamps, generated IDs); exact `toEqual` still wins when the full value is known.
464
468
 
package/CLAUDE.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Developer Protocol
2
2
 
3
3
  **Package:** `@cyanheads/mcp-ts-core`
4
- **Version:** 0.11.1
4
+ **Version:** 0.11.3
5
5
  **Engines:** Bun ≥1.3.0, Node ≥24.0.0
6
6
  **MCP SDK:** `@modelcontextprotocol/sdk` ^1.30.0
7
7
  **Zod:** ^4.4.3
@@ -307,15 +307,17 @@ Opt-in domain-specific logging. Methods: `debug`, `info`, `notice`, `warning`, `
307
307
  Tenant-scoped KV. Accepts any serializable value — no manual `JSON.stringify`/`JSON.parse` needed.
308
308
 
309
309
  ```ts
310
- await ctx.state.set('item:123', { name: 'Widget', count: 42 });
311
- await ctx.state.set('item:123', data, { ttl: 3600 }); // with TTL (seconds)
312
- const item = await ctx.state.get<Item>('item:123'); // T | null
313
- const safe = await ctx.state.get('item:123', ItemSchema); // Zod-validated T | null
314
- await ctx.state.delete('item:123');
315
- const values = await ctx.state.getMany<Item>(['item:1', 'item:2']); // Map<string, T>
316
- const page = await ctx.state.list('item:', { cursor, limit: 20 }); // { items, cursor? }
310
+ await ctx.state.set('item/123', { name: 'Widget', count: 42 });
311
+ await ctx.state.set('item/123', data, { ttl: 3600 }); // with TTL (seconds)
312
+ const item = await ctx.state.get<Item>('item/123'); // T | null
313
+ const safe = await ctx.state.get('item/123', ItemSchema); // Zod-validated T | null
314
+ await ctx.state.delete('item/123');
315
+ const values = await ctx.state.getMany<Item>(['item/1', 'item/2']); // Map<string, T>
316
+ const page = await ctx.state.list('item/', { cursor, limit: 20 }); // { items, cursor? }
317
317
  ```
318
318
 
319
+ **Keys match `^[a-zA-Z0-9_.\-/]+$` and may not contain `..`** — slashes are the namespace separator. A colon (`item:123`) throws `McpError(ValidationError)` on every call, in tests and in production alike.
320
+
319
321
  Throws `McpError(InvalidRequest)` if `tenantId` missing. Tenant ID resolution:
320
322
 
321
323
  | Mode | `tenantId` source |
@@ -456,9 +458,11 @@ describe('myTool', () => {
456
458
  });
457
459
  ```
458
460
 
459
- **`createMockContext` options:** `createMockContext()` (minimal), `{ tenantId: 'test-tenant' }` (enables state), `{ elicit: vi.fn() }`, `{ progress: true }` (task progress).
461
+ **`createMockContext` options:** `createMockContext()` (state included), `{ tenantId: 'test-tenant' }` (explicit tenant; defaults to `'default'`, as stdio resolves it), `{ errors: myTool.errors }` (typed `ctx.fail`), `{ elicit: vi.fn() }`, `{ progress: true }` (task progress).
462
+
463
+ **`ctx.state` in tests is the production path.** The mock backs it with a real `StorageService` over an `InMemoryProvider`, so key validation (`[a-zA-Z0-9_.\-/]+` — colons rejected) and TTL expiry behave exactly as they do in a deployment. Passing `errors` narrows the return type to `HandlerContext<ReasonOf<…>>`, which is what a definition declaring a contract types its handler's `ctx` as — so `definition.handler(input, ctx)` typechecks.
460
464
 
461
- **HTTP/session fixtures:** `createFetchMock(routes)` provides a strict fetch-compatible fake with ordered routes, captured `Request` objects, one-shot responses, and optional global install/restore. `createMockSession(options)` returns `{ sessionId, tenantId?, ctx }` for handlers that branch on durable HTTP session identity.
465
+ **HTTP/session fixtures:** `createFetchMock(routes)` provides a strict fetch-compatible fake with ordered routes, captured `Request` objects, one-shot responses, and optional global install/restore. `createMockSession(options)` returns `{ sessionId, tenantId, ctx }` for handlers that branch on durable HTTP session identity.
462
466
 
463
467
  **Schema assertions:** `expect(result).toEqual(expect.schemaMatching(myTool.output))` — Vitest 4's Standard Schema asymmetric matcher validates handler output against the definition's own Zod schema. Use when output is dynamic (timestamps, generated IDs); exact `toEqual` still wins when the full value is known.
464
468
 
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  <div align="center">
7
7
 
8
- [![Version](https://img.shields.io/badge/Version-0.11.1-blue.svg?style=flat-square)](./CHANGELOG.md) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE) [![MCP Spec](https://img.shields.io/badge/MCP%20Spec-2025--11--25-8A2BE2.svg?style=flat-square)](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/main/docs/specification/2025-11-25/changelog.mdx)
8
+ [![Version](https://img.shields.io/badge/Version-0.11.3-blue.svg?style=flat-square)](./CHANGELOG.md) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE) [![MCP Spec](https://img.shields.io/badge/MCP%20Spec-2025--11--25-8A2BE2.svg?style=flat-square)](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/main/docs/specification/2025-11-25/changelog.mdx)
9
9
 
10
10
  [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^1.30.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![TypeScript](https://img.shields.io/badge/TypeScript-^7.0.2-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.3.0%2B-blueviolet.svg?style=flat-square)](https://bun.sh/)
11
11
 
@@ -268,12 +268,12 @@ The `examples/` directory contains a reference server consuming core through pub
268
268
  import { createMockContext } from '@cyanheads/mcp-ts-core/testing';
269
269
  import { myTool } from '@/mcp-server/tools/definitions/my-tool.tool.js';
270
270
 
271
- const ctx = createMockContext({ tenantId: 'test-tenant' });
271
+ const ctx = createMockContext();
272
272
  const input = myTool.input.parse({ query: 'test' });
273
273
  const result = await myTool.handler(input, ctx);
274
274
  ```
275
275
 
276
- `createMockContext()` provides stubbed `log`, `state`, and `signal`. Pass `{ tenantId }` for state operations, `{ elicit }` for elicitation mocking, `{ progress: true }` for task tools.
276
+ `createMockContext()` provides a recording `log`, a working `state`, and a `signal`. State runs on a real `StorageService` over an in-memory provider — the same key validation and TTL expiry a deployed server applies — scoped to tenant `'default'` unless `{ tenantId }` says otherwise. Pass `{ errors: myTool.errors }` for a typed `ctx.fail` matching the definition's contract, `{ elicit }` for elicitation mocking, `{ progress: true }` for task tools.
277
277
 
278
278
  `/testing` also exports `createMockSession()` for session-bound contexts, `createFetchMock()` for upstream HTTP boundaries, and `runToolContract()` to drive a definition through schema, handler, formatting, and error-envelope checks. `/testing/vitest` adds the `mcpTest` fixtures (`ctx`, `session`, `fetchMock`, `storage`) and `toolContractSuite()`.
279
279
 
package/biome.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "useIgnoreFile": true
7
7
  },
8
8
  "files": {
9
- "includes": ["src/**", "scripts/**", "tests/**", "*.json", "*.js"]
9
+ "includes": ["src/**", "scripts/**", "tests/**", "*.json", "*.js", "*.ts"]
10
10
  },
11
11
  "formatter": {
12
12
  "enabled": true,
@@ -0,0 +1,98 @@
1
+ ---
2
+ summary: "Elicitation and cancellation now work over Streamable HTTP, SSRF blocking moves from pattern matching to full non-global IP range checks, parsers bound their input and stop echoing library diagnostics into client errors, and a hermetic lane verifies the published tarball."
3
+ breaking: false
4
+ security: true
5
+ agent-notes: |
6
+ `ctx.elicit` is now defined over Streamable HTTP for clients that advertise the
7
+ capability. Servers whose handlers assumed the no-elicitation branch under HTTP
8
+ — including any tool description that says elicitation is stdio-only — should
9
+ re-read their fallback path.
10
+
11
+ Parser failures no longer carry the underlying library's message, stack, or a
12
+ content sample in `McpError.data`. Consumers matching on those strings must
13
+ match on `data.reason` instead (`json_parse_failed`, `yaml_parse_failed`,
14
+ `xml_parse_failed`, `frontmatter_parse_failed`, `html_extract_failed`,
15
+ `pdf_load_failed`, `pdf_text_extract_failed`, and siblings).
16
+
17
+ Text parsers now reject input over 1 MiB and binary parsers over 25 MiB. A
18
+ server that legitimately handles larger documents passes `{ maxBytes }` — the
19
+ final argument on `yamlParser.parse` / `xmlParser.parse` / `jsonParser.parse` /
20
+ `frontmatterParser.parse` and the PDF methods, or the `maxBytes` option on
21
+ `htmlExtractor.extractArticle` and `pdfParser.embedImage`.
22
+ ---
23
+
24
+ # 0.11.2 — 2026-08-10
25
+
26
+ ## Added
27
+
28
+ - **`normalizeLogLevelAlias(value)`** (`/config`) — resolves a raw `LOG_LEVEL` string through the same alias table `ConfigSchema` applies (`warn` → `warning`, `trace` → `debug`, `fatal`/`silent` → `emerg`, `err` → `error`, `information` → `info`).
29
+ - **`SupabaseClientHandle`** (root) — the dependency-free default for `CoreServices['supabase']`. `createApp<SupabaseClient<MyDatabase>>({ … })` opts a consumer into the concrete client type without making Supabase's generic graph part of every consumer's declarations.
30
+ - **`ParserInputBudgetOptions`, `DEFAULT_TEXT_PARSER_MAX_BYTES`, `DEFAULT_BINARY_PARSER_MAX_BYTES`** (`/utils`) — the input budget every parser now applies, and the knob to raise or lower it per call.
31
+ - **`SqliteMirrorStoreLimits`** (`/mirror`) — per-store ceilings on `query` and `getByIds`, supplied as `limits` on `sqliteMirrorStore(spec)`.
32
+ - **`expected` on `ToolContractSuccessCase`** (`/testing/vitest`) — a structured-output subset asserted with `toMatchObject`, so a success case pins behavior rather than schema shape alone.
33
+ - **Package verification lane** — `bun run test:package` packs the tarball, installs it into an isolated production-only consumer, and exercises every public subpath through runtime imports, declaration typechecking, and the published `init` bin. `scripts/public-api-contract.ts` records the exact named exports each subpath promises; both the source barrels and the installed tarball are checked against it, and `bun run scripts/public-api-contract-update.ts` re-derives the manifest after an intentional barrel change.
34
+ - **Deterministic-order and assertion-required lanes** — `bun run test:order` reruns the suites shuffled under a fixed seed, and every vitest config sets `expect.requireAssertions` (the typecheck project opts out, since `expectTypeOf` is not a runtime assertion).
35
+ - **`.github/workflows/ci.yml`** — an eight-job matrix running static checks, Bun, real Node, Worker, integration, package, async-leak, and shuffled-order lanes on every push and pull request.
36
+
37
+ ## Changed
38
+
39
+ - **Text parsers reject input over 1 MiB and binary parsers over 25 MiB.** `yamlParser.parse`, `xmlParser.parse`, `jsonParser.parse`, and `frontmatterParser.parse` take an optional budget as their final argument; `htmlExtractor.extractArticle`, `pdfParser.loadDocument`, `embedImage`, `mergePdfs`, `splitPdf`, and `extractText` take `maxBytes` alongside their existing options. PDF text extraction also caps decoded images at 4096×4096 pixels, which pdf.js leaves unbounded by default.
40
+ - **`fetchWithTimeout` rejects non-`http:`/`https:` URLs** before any network work, independent of `rejectPrivateIPs`.
41
+ - **`sqliteMirrorStore` bounds every query** — at most 32 filters, 500 bound values, `limit` 1–1000, `offset` 0–1,000,000, and 500 `ids` per `getByIds` call, each overridable through `limits`.
42
+ - **`StorageService` caps `getMany`, `setMany`, and `deleteMany` at 10,000 keys** and rejects a non-array key list or a non-`Map` entry set before dispatching to a provider.
43
+ - **`xmlParser` pins `maxNestedTags: 100`**, fast-xml-parser's own default, so an upstream change cannot silently raise the depth bound.
44
+ - **Resource URIs are stripped of credentials, query, and fragment** before reaching logs, spans, or metrics; the protocol response still carries the original URI, and a `resourceHasQuery` flag records whether one was present. Worker request URLs log the same way.
45
+ - **`git-wrapup` skill 1.9** — commit bodies are one or two lines and never carry a closing keyword; the changelog `summary` is written last, derived from the body.
46
+
47
+ ## Fixed
48
+
49
+ - **`ctx.elicit` works over Streamable HTTP** ([#312](https://github.com/cyanheads/mcp-ts-core/issues/312)). Client capabilities live on the SDK `Server` instance, and HTTP builds a fresh one per request (GHSA-345p-7cg4-v4c7), so the capability check never passed and every handler took its no-elicitation branch. The session store now captures the capabilities declared on a successful `initialize` and restores them onto each per-request server; elicitation requests route back through `RequestHandlerExtra.sendRequest` so they reach the caller on the open response stream, and an accepted payload is validated against the schema its request advertised.
50
+ - **`notifications/cancelled` aborts the handler over HTTP** ([#311](https://github.com/cyanheads/mcp-ts-core/issues/311)). The notification arrives on its own POST with its own `Server`, so the SDK's abort-controller lookup found nothing. Tool and resource invocations now register with the session store, the transport mirrors an incoming cancellation into that registry, and `ctx.signal` merges the SDK signal with the session-scoped one. Terminating a session, sweeping it as stale, or destroying the store aborts everything still in flight.
51
+ - **`MCP_HTTP_MAX_BODY_BYTES` is stream-enforced** ([#244](https://github.com/cyanheads/mcp-ts-core/issues/244)). A body with no `Content-Length` was buffered whole and measured afterward, so the cap bounded nothing on that path. The middleware now reads at most one chunk past the limit, cancels the stream, and answers `413`; a within-budget body is seeded into Hono's cache so the SDK still parses it.
52
+ - **`rejectPrivateIPs` blocks the IPv6 unspecified address** ([#314](https://github.com/cyanheads/mcp-ts-core/issues/314)). `::` fell through every pattern and was treated as public. The regex tables are replaced with range checks: IPv4 now covers the protocol assignments in `192.0.0.0/24`, `192.0.2.0/24`, `192.88.99.0/24`, `198.18.0.0/15`, `198.51.100.0/24`, `203.0.113.0/24`, and everything at or above `224.0.0.0` alongside the existing private space; IPv6 admits only globally routable `2000::/3`, minus Teredo, 6to4, benchmarking, ORCHID, and the two documentation ranges.
53
+ - **A missing PDF peer dependency surfaces as `ConfigurationError`** ([#306](https://github.com/cyanheads/mcp-ts-core/issues/306)). The lazy import sat inside each method's catch-all `try`, so the remediation hint was re-wrapped as an `InternalError`. An `McpError` raised inside a PDF operation now propagates with its own code intact.
54
+ - **Error bodies are read to the diagnostic cap, not in full.** `fetchWithTimeout` and `httpErrorFromResponse` buffered the entire non-2xx body before slicing it to 500 bytes. Both now stop at the cap and cancel the stream, trimming the capture to a UTF-8 boundary so a split code point cannot add a replacement marker past the budget.
55
+ - **`WWW-Authenticate` points at the configured public URL.** The `resource_metadata` parameter was derived from the inbound request origin, which behind a proxy is the internal container address; `MCP_PUBLIC_URL` now wins when set.
56
+ - **A failed shutdown step no longer strands the ones after it.** Transport stop, task-manager cleanup, rate-limiter disposal, scheduler teardown, and GC-pressure teardown each run independently, with the first failure rethrown after all of them have been attempted. A transport start that fails now rolls back everything startup allocated — process listeners, task and storage resources, telemetry — before the error reaches the caller.
57
+ - **The per-request HTTP server and transport close exactly once.** The error path closed only the transport, and a request that produced no response closed neither.
58
+ - **The Worker entry point resolves `LOG_LEVEL` aliases and rethrows fetch failures.** It screened the raw binding against the canonical level list, so `warn` was discarded and silently downgraded to `info`; a handler error was logged and then swallowed, hiding the failure from the runtime.
59
+ - **`InMemoryProvider` tenant bookkeeping.** A read against an unknown tenant allocated a map for it, `setMany` could commit past `maxEntries` because expired keys were counted as overwrites, a list cursor issued to another tenant was accepted whenever the requested tenant was empty, and a non-integer `maxEntries` was accepted at construction.
60
+ - **`DuckdbProvider` validates `rowLimit` and `preview`** before opening a connection, rejecting a non-integer, a negative, or a `rowLimit` above the configured default.
61
+ - **A cancelled `DataCanvas.acquire` no longer leaks a canvas.** The `AcquireOptions` signal was ignored; it is now checked before and after provider initialization, and a canvas created while cancellation was pending is destroyed.
62
+ - **DuckDB exports reject symlinked destinations.** Lexical confinement to the export root did not stop an in-sandbox symlink pointing outside it; every existing segment of the destination chain is now rejected if it is a link. The check/open race remains open ([#334](https://github.com/cyanheads/mcp-ts-core/issues/334)).
63
+ - **Mirror syncs are serialized and honor an abort mid-run.** Two concurrent `runSync` calls interleaved writes into one store; the runner only observed `ctx.signal` between pages, so an abort during the final count or state write still stamped the run complete. `sqliteMirrorStore.open()` no longer caches a rejected initialization, and `close()` is safe to call while an open is in flight.
64
+ - **Parser errors no longer echo library diagnostics.** JSON, YAML, XML, frontmatter, HTML, and PDF failures carried the underlying error's message, stack, and a 200-character content sample into client-facing `McpError.data`. Each now returns a fixed message plus `data.reason`, with the original error preserved on `cause` for the internal pipeline.
65
+ - **`fuzzTool`/`fuzzResource` leak-check the whole client-visible payload.** Only `error.message` was scanned, so a stack trace or internal path carried in `error.data` went unreported.
66
+ - **Integration suites fail on a stale or missing build.** They previously skipped themselves when `dist/` was absent and passed silently against an out-of-date one; a setup file now compares build-output mtimes against every TypeScript build input.
67
+
68
+ ## Security
69
+
70
+ - **SSRF blocking covers the full non-global IP surface** — see the `rejectPrivateIPs` entry above. `::` was reachable, and the IPv6 side previously matched only link-local and ULA prefixes.
71
+ - **Parser input budgets** bound the work one request can schedule inside a parser dependency, and the PDF image cap bounds raster allocation during text extraction.
72
+ - **Export-path symlink rejection** closes the in-sandbox redirect for DuckDB `COPY … TO`.
73
+ - **Error and log redaction** — parser diagnostics no longer reach clients, and credentials, query strings, and fragments are stripped from resource URIs and Worker request URLs before they reach logs or telemetry.
74
+ - **Batch and query ceilings** on `StorageService` and `sqliteMirrorStore` bound the fan-out a single client-shaped request can create.
75
+
76
+ ## Dependencies
77
+
78
+ Runtime:
79
+
80
+ - `@hono/node-server` `^2.0.12` → `^2.1.0`
81
+ - `hono` `^4.12.32` → `^4.13.1`
82
+ - `jose` `^6.2.5` → `^6.2.8`
83
+
84
+ Dev:
85
+
86
+ - `@duckdb/node-api` `^1.5.5-r.2` → `^1.5.5-r.3`
87
+ - `@supabase/supabase-js` `^2.111.0` → `^2.112.2`
88
+ - `better-sqlite3` `^13.0.2` → `^13.0.3`
89
+ - `execa` `^10.0.0` → `^10.0.1`
90
+ - `js-yaml` `^5.2.2` → `^5.2.3`
91
+ - `repomix` `^1.17.0` → `^1.18.0`
92
+
93
+ Overrides:
94
+
95
+ - `fast-uri` `^3.1.4` → `^3.1.5` ([#325](https://github.com/cyanheads/mcp-ts-core/issues/325) — `^3.1.4` is satisfied at 3.1.4, still inside the `>=3.0.0 <3.1.5` range of [GHSA-7p8r-x3mc-p8w7](https://github.com/advisories/GHSA-7p8r-x3mc-p8w7) and [GHSA-v2hh-gcrm-f6hx](https://github.com/advisories/GHSA-v2hh-gcrm-f6hx))
96
+ - `ip-address` `^10.3.1` added ([#325](https://github.com/cyanheads/mcp-ts-core/issues/325) — clears [GHSA-mwp4-54f8-5fhr](https://github.com/advisories/GHSA-mwp4-54f8-5fhr) at `<=10.3.0`, reached through `@modelcontextprotocol/sdk › express-rate-limit`)
97
+ - `postcss` `^8.5.22` → `^8.5.23`
98
+ - `@hono/node-server` `^2.0.11` override removed
@@ -0,0 +1,49 @@
1
+ ---
2
+ summary: "Input ceilings are opt-in again and parse errors carry the library diagnostic, fetchWithTimeout's timeoutMs now bounds the response body and keeps both ends of an over-budget error body, the /utils context parameters accept the handler Context, and the mock context runs the real storage path."
3
+ breaking: true
4
+ security: false
5
+ agent-notes: |
6
+ Reverses two 0.11.2 adoption steps. Parser errors carry the underlying
7
+ library's message again — `data.reason` is unchanged and remains the stable
8
+ matcher — and parsers apply no byte budget unless the caller passes
9
+ `maxBytes`, so a `{ maxBytes }` added only to clear the 1 MiB / 25 MiB
10
+ rejection can be dropped; one that encodes a real bound stays.
11
+
12
+ `createMockContext().state` now runs the production `StorageService`. A
13
+ consumer suite fails where it relied on a storage-illegal key (colons are the
14
+ common one — rewrite `cache:v1:abc` as `cache/v1/abc`), on TTL-free
15
+ persistence (an entry written with `{ ttl }` now expires), or on an undefined
16
+ `ctx.tenantId` (it defaults to `'default'`). `MockSession.tenantId` is
17
+ required rather than optional. Pass `{ errors: myTool.errors }` to
18
+ `createMockContext` where a contract-bearing handler is called, so the mock
19
+ types as the `HandlerContext` that handler declares.
20
+
21
+ `normalizeLogLevelAlias` is gone from `/config`, with no replacement — the
22
+ alias resolution it performed still runs inside `ConfigSchema` and the Worker
23
+ entry point.
24
+ ---
25
+
26
+ # 0.11.3 — 2026-08-10
27
+
28
+ ## Added
29
+
30
+ - **`errorBodyLimit`** (`FetchWithTimeoutOptions`) — bytes of a non-2xx response body captured into `error.data.body`. Default `500`, unchanged.
31
+ - **`maxImageSize`** (`ExtractTextOptions`) — pixel ceiling on a single decoded image, forwarded to pdf.js. Unbounded when omitted, matching pdf.js's own default.
32
+
33
+ ## Changed
34
+
35
+ - **Input ceilings are opt-in again** ([#338](https://github.com/cyanheads/mcp-ts-core/issues/338)). The five 0.11.2 defaults applied to calls that were valid in 0.11.1. Text and binary parsers are unbounded unless the caller passes `maxBytes`; `sqliteMirrorStore` enforces only the `limits` fields a spec declares; `StorageService` no longer caps `getMany`/`setMany`/`deleteMany` at 10,000 keys. `DEFAULT_TEXT_PARSER_MAX_BYTES` and `DEFAULT_BINARY_PARSER_MAX_BYTES` remain exported as suggested values, and `sqliteMirrorStore` still rejects a fractional or negative `limit`/`offset` — pagination shape is a caller bug, not a workload choice. `xmlParser` no longer pins `maxNestedTags: 100`; the pin was a no-op against fast-xml-parser's own default of 100.
36
+ - **Parse failures carry the library's diagnostic again** ([#339](https://github.com/cyanheads/mcp-ts-core/issues/339)). JSON, YAML, XML, frontmatter, HTML, and PDF failures throw `<summary>: <library message>` — `Failed to parse JSON content: Unexpected token …` — beside the stable `data.reason`, which is unchanged. The 200-character content sample and the stack that 0.11.2 removed stay out of `data`, on `cause`. Note that a library message embeds a short excerpt of the input by construction: js-yaml prints the offending line and its neighbours, fast-xml-parser a ~50-character window, `JSON.parse` the token prefix.
37
+ - **`context` parameters accept the handler `Context`** ([#297](https://github.com/cyanheads/mcp-ts-core/issues/297)). `fetchWithTimeout`, `withRetry`, `decodeCursor`/`paginateArray`, `countTokens`/`countChatTokens`, `buildTraceparent`/`runInContext`, `RateLimiter.check`, every parser, and the diff/table/tree formatters take `RequestContextLike | RequestContext`, so a handler passes `ctx` straight through instead of slicing it.
38
+ - **`createMockContext` state is the production storage path** ([#329](https://github.com/cyanheads/mcp-ts-core/issues/329)). `ctx.state` was a bare `Map`, so a key the real `StorageService` rejects passed every test and threw on the first deployed call. It now runs `createContextState` over an in-memory `StorageService` — key validation, TTL expiry, list pagination, and signal cancellation behave as they do in a server. `tenantId` defaults to `'default'`, the value stdio resolves, so state works with no options; `MockSession.tenantId` is required rather than optional.
39
+ - **`createMockContext` and `createMockSession` are generic over the error contract** ([#331](https://github.com/cyanheads/mcp-ts-core/issues/331)). Both returned a bare `Context`, so `definition.handler(input, ctx)` failed to typecheck for any definition declaring `errors[]`, and forwarding `definition.errors` tripped `exactOptionalPropertyTypes`. `MockContextOptions<TErrors>` accepts `TErrors | undefined` and the return narrows to `HandlerContext<ReasonOf<TErrors>>`.
40
+
41
+ ## Removed
42
+
43
+ - **`normalizeLogLevelAlias`** (`/config`) ([#340](https://github.com/cyanheads/mcp-ts-core/issues/340)). Added in 0.11.2 to share one alias table between `ConfigSchema` and the Worker entry point; it is now an internal module (`src/config/logLevelAlias.ts`) both import, and is out of the public API manifest before a consumer adopts it.
44
+ - **`.github/workflows/ci.yml`** — the eight-job matrix added in 0.11.2. Verification is local by design: `devcheck`, `rebuild`, and the test lanes run where the toolchain and secrets live.
45
+
46
+ ## Fixed
47
+
48
+ - **`fetchWithTimeout`'s `timeoutMs` bounds the whole exchange** ([#341](https://github.com/cyanheads/mcp-ts-core/issues/341)). `fetch` resolves once headers arrive and the deadline was cleared as the helper returned, so a peer that answered promptly and then stalled the stream held the request open indefinitely. A 2xx carrying a body now comes back as a passthrough wrapper that disarms the deadline when the body closes, errors, or is cancelled; an expiring deadline aborts the stream and the caller's `.text()`/`.json()` rejects with the same `Timeout` error the header phase raises. `status`, `statusText`, `headers`, `url`, `redirected`, and `type` carry across, and 204/205/304 and bodyless responses are returned untouched — but the wrapper is a new object, so an identity assertion (`expect(result).toBe(response)`) no longer holds. The deadline timer is unref'd once it follows the body, so a caller that never reads the response cannot pin the event loop.
49
+ - **Over-budget error bodies are captured from both ends** ([#298](https://github.com/cyanheads/mcp-ts-core/issues/298)). A head-only truncation kept an upstream's boilerplate preamble and dropped the diagnostic behind it — Overpass puts its parse error at byte 502 of a 787-byte document. `readBoundedResponseText` now reads to a 16 KiB scan ceiling; a body that ends within it is captured 40% head and 60% tail around `…[N bytes elided]…`, while one still streaming at the ceiling stays head-only with a trailing `…`, since its real tail was never read. `httpErrorFromResponse` passes no scan ceiling and its output is byte-identical to 0.11.2.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAexB,wEAAwE;AACxE,eAAO,MAAM,cAAc,2BAA2B,CAAC;AACvD,eAAO,MAAM,iBAAiB,QAAkC,CAAC;AAwDjE,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsYd,CAAC;AAGL,QAAA,MAAM,WAAW,kBAAmB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+MrE,CAAC;AAIF;;;;;;;;GAQG;AACH,QAAA,MAAM,WAAW,kBAAmB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,KAAG,IAExE,CAAC;AAEF;;;;;;GAMG;AACH,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuBV,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAgBxB,wEAAwE;AACxE,eAAO,MAAM,cAAc,2BAA2B,CAAC;AACvD,eAAO,MAAM,iBAAiB,QAAkC,CAAC;AAwDjE,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA0Xd,CAAC;AAGL,QAAA,MAAM,WAAW,kBAAmB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+MrE,CAAC;AAIF;;;;;;;;GAQG;AACH,QAAA,MAAM,WAAW,kBAAmB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,KAAG,IAExE,CAAC;AAEF;;;;;;GAMG;AACH,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuBV,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC"}
@@ -15,6 +15,7 @@ import { z } from 'zod';
15
15
  import packageJson from '../../package.json' with { type: 'json' };
16
16
  import { configurationError } from '../types-global/errors.js';
17
17
  import { runtimeCaps } from '../utils/internal/runtime.js';
18
+ import { normalizeLogLevelAlias } from './logLevelAlias.js';
18
19
  const frameworkPkg = packageJson;
19
20
  /** Framework identity — sourced from the package's own package.json. */
20
21
  export const FRAMEWORK_NAME = '@cyanheads/mcp-ts-core';
@@ -88,19 +89,8 @@ const ConfigSchema = z
88
89
  logLevel: z
89
90
  .preprocess((val) => {
90
91
  const str = emptyStringAsUndefined(val);
91
- if (typeof str === 'string') {
92
- const lower = str.toLowerCase();
93
- // Normalize common aliases to RFC5424/MCP log level names
94
- const aliasMap = {
95
- warn: 'warning',
96
- err: 'error',
97
- information: 'info',
98
- fatal: 'emerg',
99
- trace: 'debug',
100
- silent: 'emerg',
101
- };
102
- return aliasMap[lower] ?? lower;
103
- }
92
+ if (typeof str === 'string')
93
+ return normalizeLogLevelAlias(str);
104
94
  return str;
105
95
  }, z.enum(['debug', 'info', 'notice', 'warning', 'error', 'crit', 'alert', 'emerg']))
106
96
  .default('debug'),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @fileoverview Internal log-level alias table. Shared by `ConfigSchema` and the
3
+ * Worker entry point so a runtime that pre-screens `LOG_LEVEL` before it reaches
4
+ * the schema accepts the same spellings the schema does. Not part of the public
5
+ * `/config` surface — import it directly.
6
+ * @module src/config/logLevelAlias
7
+ */
8
+ /**
9
+ * Lowercases a log-level string and resolves its alias.
10
+ *
11
+ * @param value - A raw log-level string, in any casing.
12
+ * @returns The canonical spelling, which may still be an unsupported level.
13
+ */
14
+ export declare function normalizeLogLevelAlias(value: string): string;
15
+ //# sourceMappingURL=logLevelAlias.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logLevelAlias.d.ts","sourceRoot":"","sources":["../../src/config/logLevelAlias.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAeH;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG5D"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @fileoverview Internal log-level alias table. Shared by `ConfigSchema` and the
3
+ * Worker entry point so a runtime that pre-screens `LOG_LEVEL` before it reaches
4
+ * the schema accepts the same spellings the schema does. Not part of the public
5
+ * `/config` surface — import it directly.
6
+ * @module src/config/logLevelAlias
7
+ */
8
+ /**
9
+ * Common log-level spellings mapped to their RFC5424/MCP names, so an operator
10
+ * writing `warn` or `trace` gets the level they meant.
11
+ */
12
+ const LOG_LEVEL_ALIASES = {
13
+ err: 'error',
14
+ fatal: 'emerg',
15
+ information: 'info',
16
+ silent: 'emerg',
17
+ trace: 'debug',
18
+ warn: 'warning',
19
+ };
20
+ /**
21
+ * Lowercases a log-level string and resolves its alias.
22
+ *
23
+ * @param value - A raw log-level string, in any casing.
24
+ * @returns The canonical spelling, which may still be an unsupported level.
25
+ */
26
+ export function normalizeLogLevelAlias(value) {
27
+ const lower = value.toLowerCase();
28
+ return LOG_LEVEL_ALIASES[lower] ?? lower;
29
+ }
30
+ //# sourceMappingURL=logLevelAlias.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logLevelAlias.js","sourceRoot":"","sources":["../../src/config/logLevelAlias.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;GAGG;AACH,MAAM,iBAAiB,GAA2B;IAChD,GAAG,EAAE,OAAO;IACZ,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,MAAM;IACnB,MAAM,EAAE,OAAO;IACf,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,SAAS;CAChB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAClC,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;AAC3C,CAAC"}
@@ -5,12 +5,11 @@
5
5
  * management.
6
6
  * @module src/core/app
7
7
  */
8
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
9
8
  import type { Implementation } from '@modelcontextprotocol/sdk/types.js';
10
- import type { SupabaseClient } from '@supabase/supabase-js';
11
9
  import { config } from '../config/index.js';
12
10
  import { type LandingConfig, type ServerManifest } from '../core/serverManifest.js';
13
11
  import type { AnyPromptDefinition } from '../mcp-server/prompts/utils/promptDefinition.js';
12
+ import type { McpServerFactory } from '../mcp-server/protocolSession.js';
14
13
  import type { AnyResourceDefinition } from '../mcp-server/resources/utils/resourceDefinition.js';
15
14
  import { TaskManager } from '../mcp-server/tasks/core/taskManager.js';
16
15
  import type { AnyToolDef } from '../mcp-server/tools/tool-registration.js';
@@ -18,7 +17,6 @@ import type { DataCanvas } from '../services/canvas/core/DataCanvas.js';
18
17
  import type { ILlmProvider } from '../services/llm/core/ILlmProvider.js';
19
18
  import { SpeechService } from '../services/speech/core/SpeechService.js';
20
19
  import { StorageService } from '../storage/core/StorageService.js';
21
- import type { Database } from '../storage/providers/supabase/supabase.types.js';
22
20
  import { logger } from '../utils/internal/logger.js';
23
21
  import { RateLimiter } from '../utils/security/rateLimiter.js';
24
22
  /**
@@ -38,8 +36,28 @@ export interface ContextOptions {
38
36
  */
39
37
  exposeStatelessSessionId?: boolean;
40
38
  }
39
+ /**
40
+ * Dependency-free default type for the optional Supabase admin client.
41
+ *
42
+ * The framework deliberately does not expose Supabase's concrete generic graph
43
+ * from its root declarations. Consumers that use the raw client can opt into
44
+ * its exact type without making Supabase a requirement for every consumer:
45
+ *
46
+ * @example
47
+ * ```ts
48
+ * import type { SupabaseClient } from '@supabase/supabase-js';
49
+ * import { createApp } from '@cyanheads/mcp-ts-core';
50
+ *
51
+ * await createApp<SupabaseClient<MyDatabase>>({
52
+ * setup(core) {
53
+ * core.supabase?.from('items').select();
54
+ * },
55
+ * });
56
+ * ```
57
+ */
58
+ export type SupabaseClientHandle = object;
41
59
  /** Options for {@link createApp}. All arrays default to empty. */
42
- export interface CreateAppOptions {
60
+ export interface CreateAppOptions<TSupabaseClient extends object = SupabaseClientHandle> {
43
61
  /** Options affecting the `Context` object passed to handlers. */
44
62
  context?: ContextOptions;
45
63
  /**
@@ -95,7 +113,7 @@ export interface CreateAppOptions {
95
113
  /** Resource definitions. */
96
114
  resources?: AnyResourceDefinition[];
97
115
  /** Runs after core services are constructed, before transport starts. */
98
- setup?: (core: CoreServices) => void | Promise<void>;
116
+ setup?: (core: CoreServices<TSupabaseClient>) => void | Promise<void>;
99
117
  /**
100
118
  * Human-readable display name shown in client listings and consent UIs.
101
119
  * Supplements `name` (which is the machine identifier). Forwarded to the
@@ -118,7 +136,7 @@ export interface CreateAppOptions {
118
136
  websiteUrl?: string;
119
137
  }
120
138
  /** Services available in the `setup()` callback and on ServerHandle. */
121
- export interface CoreServices {
139
+ export interface CoreServices<TSupabaseClient extends object = SupabaseClientHandle> {
122
140
  /**
123
141
  * Optional DataCanvas primitive (issue #97). Present when
124
142
  * `CANVAS_PROVIDER_TYPE` is set to a supported engine (`duckdb`).
@@ -132,19 +150,24 @@ export interface CoreServices {
132
150
  rateLimiter: RateLimiter;
133
151
  speechService?: SpeechService;
134
152
  storage: StorageService;
135
- supabase?: SupabaseClient<Database>;
153
+ /**
154
+ * Optional Supabase admin client used by the Supabase storage provider.
155
+ * The default handle is intentionally dependency-free; pass the concrete
156
+ * client type to {@link createApp} when setup code accesses the raw SDK.
157
+ */
158
+ supabase?: TSupabaseClient;
136
159
  }
137
160
  /** Handle returned by {@link createApp} for controlling the server lifecycle. */
138
- export interface ServerHandle {
161
+ export interface ServerHandle<TSupabaseClient extends object = SupabaseClientHandle> {
139
162
  /** Read-only access to core services for integration testing or embedding. */
140
- readonly services: CoreServices;
163
+ readonly services: CoreServices<TSupabaseClient>;
141
164
  /** Initiates graceful shutdown (stops transport, flushes OTEL, closes logger). */
142
165
  shutdown(signal?: string): Promise<void>;
143
166
  }
144
167
  /** @internal Result of composeServices — used by createApp and createWorkerHandler. */
145
- export interface ComposedApp {
146
- coreServices: CoreServices;
147
- createServer: () => Promise<McpServer>;
168
+ export interface ComposedApp<TSupabaseClient extends object = SupabaseClientHandle> {
169
+ coreServices: CoreServices<TSupabaseClient>;
170
+ createServer: McpServerFactory;
148
171
  /**
149
172
  * Server manifest — the single source of truth for the `/mcp` status JSON,
150
173
  * the SEP-1649 Server Card at `/.well-known/mcp.json`, and the HTML landing
@@ -159,7 +182,7 @@ export interface ComposedApp {
159
182
  * Does NOT start transport, register signal handlers, or init OTEL/logger.
160
183
  * @internal
161
184
  */
162
- export declare function composeServices(options?: CreateAppOptions): Promise<ComposedApp>;
185
+ export declare function composeServices<TSupabaseClient extends object = SupabaseClientHandle>(options?: CreateAppOptions<TSupabaseClient>): Promise<ComposedApp<TSupabaseClient>>;
163
186
  /**
164
187
  * Composes the application, initializes all services, starts transport,
165
188
  * and registers signal/error handlers. This is the complete entry point
@@ -170,7 +193,7 @@ export declare function composeServices(options?: CreateAppOptions): Promise<Com
170
193
  * @returns A {@link ServerHandle} with `shutdown()` and `services`.
171
194
  * @throws {McpError} If config parsing or service construction fails.
172
195
  */
173
- export declare function createApp(options?: CreateAppOptions): Promise<ServerHandle>;
196
+ export declare function createApp<TSupabaseClient extends object = SupabaseClientHandle>(options?: CreateAppOptions<TSupabaseClient>): Promise<ServerHandle<TSupabaseClient>>;
174
197
  export { z } from 'zod';
175
198
  export type { Context, ContextLogger, ContextProgress, ContextState } from '../core/context.js';
176
199
  export type { PromptDefinition } from '../mcp-server/prompts/utils/promptDefinition.js';