@cyanheads/mcp-ts-core 0.13.8 → 0.13.9
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.
- package/AGENTS.md +17 -13
- package/CLAUDE.md +17 -13
- package/README.md +2 -2
- package/changelog/0.13.x/0.13.9.md +113 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +20 -9
- package/dist/config/index.js.map +1 -1
- package/dist/core/app.d.ts +6 -3
- package/dist/core/app.d.ts.map +1 -1
- package/dist/core/app.js +6 -4
- package/dist/core/app.js.map +1 -1
- package/dist/core/context.d.ts +25 -1
- package/dist/core/context.d.ts.map +1 -1
- package/dist/core/context.js.map +1 -1
- package/dist/core/serverManifest.d.ts +6 -0
- package/dist/core/serverManifest.d.ts.map +1 -1
- package/dist/core/serverManifest.js +6 -0
- package/dist/core/serverManifest.js.map +1 -1
- package/dist/linter/rules/tool-rules.d.ts +2 -1
- package/dist/linter/rules/tool-rules.d.ts.map +1 -1
- package/dist/linter/rules/tool-rules.js +36 -1
- package/dist/linter/rules/tool-rules.js.map +1 -1
- package/dist/mcp-server/inputRequired.d.ts +14 -5
- package/dist/mcp-server/inputRequired.d.ts.map +1 -1
- package/dist/mcp-server/inputRequired.js +15 -8
- package/dist/mcp-server/inputRequired.js.map +1 -1
- package/dist/mcp-server/tools/utils/inputPrevalidation.d.ts +163 -40
- package/dist/mcp-server/tools/utils/inputPrevalidation.d.ts.map +1 -1
- package/dist/mcp-server/tools/utils/inputPrevalidation.js +330 -114
- package/dist/mcp-server/tools/utils/inputPrevalidation.js.map +1 -1
- package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts +23 -10
- package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts.map +1 -1
- package/dist/mcp-server/tools/utils/toolHandlerFactory.js +296 -80
- package/dist/mcp-server/tools/utils/toolHandlerFactory.js.map +1 -1
- package/dist/mcp-server/transports/http/httpTransport.d.ts.map +1 -1
- package/dist/mcp-server/transports/http/httpTransport.js +65 -9
- package/dist/mcp-server/transports/http/httpTransport.js.map +1 -1
- package/dist/mcp-server/transports/stdio/stdioTransport.d.ts +9 -5
- package/dist/mcp-server/transports/stdio/stdioTransport.d.ts.map +1 -1
- package/dist/mcp-server/transports/stdio/stdioTransport.js +9 -5
- package/dist/mcp-server/transports/stdio/stdioTransport.js.map +1 -1
- package/dist/services/canvas/core/CanvasRegistry.d.ts +6 -2
- package/dist/services/canvas/core/CanvasRegistry.d.ts.map +1 -1
- package/dist/services/canvas/core/CanvasRegistry.js +7 -3
- package/dist/services/canvas/core/CanvasRegistry.js.map +1 -1
- package/dist/services/canvas/providers/duckdb/DuckdbProvider.d.ts +82 -18
- package/dist/services/canvas/providers/duckdb/DuckdbProvider.d.ts.map +1 -1
- package/dist/services/canvas/providers/duckdb/DuckdbProvider.js +620 -328
- package/dist/services/canvas/providers/duckdb/DuckdbProvider.js.map +1 -1
- package/dist/services/canvas/providers/duckdb/exportWriter.d.ts +11 -7
- package/dist/services/canvas/providers/duckdb/exportWriter.d.ts.map +1 -1
- package/dist/services/canvas/providers/duckdb/exportWriter.js +19 -16
- package/dist/services/canvas/providers/duckdb/exportWriter.js.map +1 -1
- package/dist/services/mirror/core/defineMirror.d.ts +1 -0
- package/dist/services/mirror/core/defineMirror.d.ts.map +1 -1
- package/dist/services/mirror/core/defineMirror.js +1 -0
- package/dist/services/mirror/core/defineMirror.js.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/network/pacer.d.ts +38 -5
- package/dist/utils/network/pacer.d.ts.map +1 -1
- package/dist/utils/network/pacer.js +87 -25
- package/dist/utils/network/pacer.js.map +1 -1
- package/dist/utils/telemetry/attributes.d.ts +5 -1
- package/dist/utils/telemetry/attributes.d.ts.map +1 -1
- package/dist/utils/telemetry/attributes.js +5 -1
- package/dist/utils/telemetry/attributes.js.map +1 -1
- package/framework-skills/add-app-tool/SKILL.md +3 -3
- package/framework-skills/add-export/SKILL.md +5 -16
- package/framework-skills/add-prompt/SKILL.md +7 -3
- package/framework-skills/add-resource/SKILL.md +7 -5
- package/framework-skills/add-tool/SKILL.md +12 -10
- package/framework-skills/api-auth/SKILL.md +2 -2
- package/framework-skills/api-canvas/SKILL.md +17 -8
- package/framework-skills/api-config/SKILL.md +4 -4
- package/framework-skills/api-context/SKILL.md +14 -3
- package/framework-skills/api-errors/SKILL.md +8 -7
- package/framework-skills/api-linter/SKILL.md +26 -7
- package/framework-skills/api-mirror/SKILL.md +2 -1
- package/framework-skills/api-telemetry/SKILL.md +4 -4
- package/framework-skills/api-utils/SKILL.md +2 -2
- package/framework-skills/design-mcp-server/SKILL.md +2 -2
- package/framework-skills/field-test/SKILL.md +4 -4
- package/framework-skills/git-wrapup/SKILL.md +8 -6
- package/framework-skills/orchestrations/SKILL.md +7 -6
- package/framework-skills/orchestrations/workflows/field-test-fix.md +9 -19
- package/framework-skills/orchestrations/workflows/fix-wrapup-release.md +7 -7
- package/framework-skills/orchestrations/workflows/greenfield-build.md +8 -5
- package/framework-skills/orchestrations/workflows/maintenance-release.md +8 -8
- package/framework-skills/polish-docs-meta/SKILL.md +4 -4
- package/framework-skills/release-and-publish/SKILL.md +6 -4
- package/framework-skills/release-pr-review/SKILL.md +37 -23
- package/framework-skills/report-issue-framework/SKILL.md +7 -5
- package/framework-skills/report-issue-local/SKILL.md +8 -6
- package/framework-skills/security-pass/SKILL.md +8 -8
- package/package.json +3 -3
- package/scripts/devcheck.ts +7 -6
- package/scripts/lint-mcp.ts +87 -27
- package/scripts/lint-packaging.ts +61 -0
- package/scripts/release-github.ts +117 -5
- package/templates/_.mcpbignore +2 -0
package/AGENTS.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# Developer Protocol
|
|
2
2
|
|
|
3
3
|
**Package:** `@cyanheads/mcp-ts-core`
|
|
4
|
-
**Version:** 0.13.
|
|
4
|
+
**Version:** 0.13.9
|
|
5
5
|
**Engines:** Bun ≥1.4.0, Node ≥24.0.0
|
|
6
|
-
**MCP SDK:** `@modelcontextprotocol/server` ^2.
|
|
6
|
+
**MCP SDK:** `@modelcontextprotocol/server` ^2.1.0 (protocol revisions 2026-07-28 and 2025-*)
|
|
7
7
|
**Zod:** ^4.6.5
|
|
8
8
|
**GitHub:** [cyanheads/mcp-ts-core](https://github.com/cyanheads/mcp-ts-core)
|
|
9
9
|
**npm:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core)
|
|
@@ -100,9 +100,8 @@ await createApp({
|
|
|
100
100
|
tools: allToolDefinitions,
|
|
101
101
|
resources: allResourceDefinitions,
|
|
102
102
|
prompts: allPromptDefinitions,
|
|
103
|
-
instructions: // server-level orientation, sent on every initialize
|
|
104
|
-
'
|
|
105
|
-
'Other endpoints reachable via `connect({ baseUrl })`.',
|
|
103
|
+
instructions: // server-level orientation, sent on every initialize — one literal, a few sentences
|
|
104
|
+
'Calls reach the production API by default. Pass `baseUrl` to `connect` to reach another endpoint.',
|
|
106
105
|
extensions: { // SEP-2133 extensions advertised in capabilities
|
|
107
106
|
'vendor/my-extension': { /* extension config */ },
|
|
108
107
|
},
|
|
@@ -168,7 +167,7 @@ interface ServerHandle {
|
|
|
168
167
|
}
|
|
169
168
|
```
|
|
170
169
|
|
|
171
|
-
**Exit contract.** `shutdown()` is exit-free and unbounded: it also serves the startup-failure rollback and direct calls from embedders and tests, so ending the process belongs to the handlers. `SIGTERM`, `SIGINT`, and stdin EOF each run that same shutdown and then exit explicitly. A signal exits 0 once the shutdown settles and 1 when the 10 s ceiling fires, after a warning naming the step that never settled; stdin EOF exits 0 either way, unchanged. The ceiling bounds the shutdown as a whole rather than any single await, so a step that settles inside it is never truncated. A second signal mid-shutdown reaches no handler (shutdown detaches them as it starts) and terminates on the OS default, 143 / 130 — the operator's force-kill escape hatch. `uncaughtException` / `unhandledRejection` exit 1.
|
|
170
|
+
**Exit contract.** `shutdown()` is exit-free and unbounded: it also serves the startup-failure rollback and direct calls from embedders and tests, so ending the process belongs to the handlers. `SIGTERM`, `SIGINT`, and stdin EOF each run that same shutdown and then exit explicitly. On stdin EOF the SDK transport has already closed itself, so a request still in flight is aborted (its `ctx.signal` fires) and never answered — the client has hung up. A signal exits 0 once the shutdown settles and 1 when the 10 s ceiling fires, after a warning naming the step that never settled; stdin EOF exits 0 either way, unchanged. The ceiling bounds the shutdown as a whole rather than any single await, so a step that settles inside it is never truncated. A second signal mid-shutdown reaches no handler (shutdown detaches them as it starts) and terminates on the OS default, 143 / 130 — the operator's force-kill escape hatch. `uncaughtException` / `unhandledRejection` exit 1.
|
|
172
171
|
|
|
173
172
|
---
|
|
174
173
|
|
|
@@ -238,7 +237,7 @@ export const myTool = tool('my_tool', {
|
|
|
238
237
|
});
|
|
239
238
|
```
|
|
240
239
|
|
|
241
|
-
**Steps:** Create `src/mcp-server/tools/definitions/[name].tool.ts` (kebab-case) → use `tool('snake_case', {...})` with Zod `.describe()` on all fields → implement `handler(input, ctx)` (pure, throws on failure) → add `auth`/`format` if needed → register in `definitions/index.ts` → `bun run devcheck` → smoke-test with `bun run rebuild && bun run start:stdio` (or `start:http`).
|
|
240
|
+
**Steps:** Create `src/mcp-server/tools/definitions/[name].tool.ts` (kebab-case) → use `tool('snake_case', {...})` with Zod `.describe()` on all fields → implement `handler(input, ctx)` (pure, throws on failure) → add `auth`/`format` if needed → register in `definitions/index.ts` → `bun run devcheck` → smoke-test with `bun run rebuild && bun run start:stdio < /dev/null` (or `start:http`) and confirm the `Core services constructed` log record lists the tool in its `tools` field (the message text shows only counts).
|
|
242
241
|
|
|
243
242
|
**Schema constraint:** Input/output schemas must use JSON-Schema-serializable Zod types only. The MCP SDK converts schemas to JSON Schema for `tools/list` — non-serializable types (`z.custom()`, `z.date()`, `z.transform()`, `z.bigint()`, `z.symbol()`, `z.void()`, `z.map()`, `z.set()`, `z.function()`, `z.nan()`) cause a hard runtime failure. Use structural equivalents instead (e.g., `z.string()` with `.describe('ISO 8601 date')` instead of `z.date()`). The `schema-serializable` lint rule catches this at build time (`bun run lint:mcp` / `devcheck`).
|
|
244
243
|
|
|
@@ -255,7 +254,7 @@ export const myTool = tool('my_tool', {
|
|
|
255
254
|
|
|
256
255
|
**Strict input:** `tool()` stores `input.strict()`, so an unrecognized argument key is rejected by name before the handler runs and `inputSchema` advertises `additionalProperties: false`. Root-level only — a nested `z.object()` still strips unless it is strict itself. An explicit `.passthrough()` / `.catchall()` is honored. Declare `.strict()` **before** `.describe()` / `.meta()` on the root: Zod keys both to the schema instance and `.strict()` clones without it, so a root describe declared after is discarded and never advertised — `lint:mcp` reports that as `schema-root-meta-discarded`.
|
|
257
256
|
|
|
258
|
-
**Pre-validation:** an ordered step inside `parseToolArguments` rescues calls strict input would otherwise reject — drop client-added root keys (`_meta`, `tool_call_description`, `toolCallId`, any undeclared `_`-prefixed key) → rewrite key aliases (declared `inputAliases`, plus any undeclared key whose case-folded form names exactly one declared key) → parse → on failure, repair a JSON-stringified array and re-parse once, keeping
|
|
257
|
+
**Pre-validation:** an ordered step inside `parseToolArguments` rescues calls strict input would otherwise reject — drop client-added root keys (`_meta`, `tool_call_description`, `toolCallId`, any undeclared `_`-prefixed key) → rewrite key aliases (declared `inputAliases`, plus any undeclared key whose case-folded form names exactly one declared key) → parse → on failure, repair a JSON-stringified array or object, or a safe integer where a string is expected (`8654467` → `"8654467"`), and re-parse once, keeping the repair only if the schema then accepts it. If that still fails and the drop discarded a key, the stages rerun alias-first so `_query` or a declared `_q` alias reaches its target, and the retry (repair included) is kept only if it validates — a call the first order validates resolves exactly as it would without the retry. All on by default, and nothing changes the advertised `inputSchema`. A call that still fails throws the rejection of the last order tried — the retry's when it ran, so a declared `_q` alias with a bad value reports that value's failure and `Validated _q as query.` — the same one it gets under `coerce: false`, reporting that order's rewrites and underscore-rule drops as `data.input` and in the hint. A declared key, an author-opened root, and a `headerParam` target are never touched. Server-level switches: `createApp({ input: { ignoreKeys, caseStyleAliases, coerce } })`. Counters, for the attempt the handler receives: `mcp.input.ignored_key`, `mcp.input.aliased`, `mcp.input.coerced` (once per repair kind). Lint: `input-alias-conflict`. See `add-tool` skill.
|
|
259
258
|
|
|
260
259
|
**Header-mirrored input (2026-07-28):** `headerParam(z.string(), 'Region')` designates an input property with `x-mcp-header`, so its value also rides an `Mcp-Param-Region` request header and an intermediary can read it without parsing the body. Mirroring, not relocation — the handler still reads the argument from the body, and nothing else about the field changes. Only a primitive-typed (`string`/`integer`/`number`/`boolean`) property statically reachable through a chain of `properties` keys qualifies: an array element, a `z.record()` value, and every field of a discriminated-union input root are unreachable, and header names must be RFC 9110 tokens, case-insensitively unique per schema. `tool()` rejects a violation at definition time naming the field path — the SDK only warns, then conforming Streamable HTTP clients drop the tool. Lint rule: `header-param-designation`.
|
|
261
260
|
|
|
@@ -303,7 +302,7 @@ interface Context {
|
|
|
303
302
|
readonly auth?: AuthContext;
|
|
304
303
|
readonly log: ContextLogger; // auto-correlated: requestId, traceId, tenantId
|
|
305
304
|
readonly state: ContextState; // tenant-scoped KV storage
|
|
306
|
-
readonly requestInput: RequestInputFn; // (spec) => never — suspends and asks the caller for input
|
|
305
|
+
readonly requestInput: RequestInputFn; // (spec, options?) => never — suspends and asks the caller for input
|
|
307
306
|
readonly inputs: ContextInputs; // reader over a retried request's responses
|
|
308
307
|
readonly notifyPromptListChanged?: (() => void) | undefined; // prompt list changed
|
|
309
308
|
readonly notifyResourceListChanged?: (() => void) | undefined; // resource list changed
|
|
@@ -368,6 +367,11 @@ useFormat(answer.format);
|
|
|
368
367
|
cancelled prompt is terminal, not a round to retry. `inputRequired.elicitUrl({ message, url })`
|
|
369
368
|
hands the user an external link instead of a form.
|
|
370
369
|
|
|
370
|
+
A 2025-era client that declared no matching capability is refused as `client_capability_missing`,
|
|
371
|
+
with a hint that ends at reconnecting. When the tool's own arguments can stand in for the answer,
|
|
372
|
+
say so per call — `ctx.requestInput(spec, { fallbackHint: 'Or call again with noun supplied.' })` —
|
|
373
|
+
and the sentence is appended to that hint. A consent gate passes none: it has no such field.
|
|
374
|
+
|
|
371
375
|
### `ctx.content`
|
|
372
376
|
|
|
373
377
|
Accumulates non-text content blocks — image/audio bytes, embedded resources, resource links — onto the response: `ctx.content.image(data, mimeType)`, `ctx.content.audio(data, mimeType)`, or `ctx.content(block)` for a raw `ContentBlock`. Blocks are prepended to `content[]` after `format()` runs and never enter `structuredContent`, so a handler can emit media for the calling model without the base64 duplicating into typed output. Always present (no-op when unused); callable from handler and service layer.
|
|
@@ -418,7 +422,7 @@ For HTTP responses from upstream APIs, use `httpErrorFromResponse(response, { se
|
|
|
418
422
|
|
|
419
423
|
**Auto-classification.** Plain `Error`, `ZodError`, and any other thrown value are caught and classified automatically. Resolution order: request signal already aborted (→ `RequestCancelled`, outranking the thrown value's own code, `McpError` included) → `McpError` code (preserved as-is) → SDK `ConnectionClosed` (→ `RequestCancelled`) → engine resource-limit `RangeError` by whole message — stack overflow, maximum string size (→ `InternalError`) → JS constructor name (`SyntaxError` → `ValidationError`; `TypeError` is excluded) → provider patterns (HTTP status codes, AWS errors, DB errors) → common message patterns → `AbortError` name (→ `Timeout`) → `InternalError` fallback. A result that breaks the definition's own `output` or `enrichment` schema fails as `InternalError` naming that contract, not `ValidationError`.
|
|
420
424
|
|
|
421
|
-
**Error-path parity.** Tool errors: `content[]` carries `Error: <message>`, then `Recovery: <hint>` when the hint says something the message does not already contain, then a closing `(reason … · not retryable)` for whichever of `data.reason` / `data.retryable` is present; the numeric code and `data.issues` stay JSON-only. `structuredContent.error` carries `{ code, message, data? }`. No `_meta.error`. Resources re-throw via JSON-RPC error envelope. An argument rejection is one of them: `-32602` with `data.issues`, plus `data.reason: 'invalid_arguments'` and a hint synthesized from the issues and the root schema — never a tool-declared `reason`, since the handler never ran. `client_capability_missing` is the second framework-owned reason: a `ctx.requestInput` return a 2025-era connection cannot serve is refused before any wire traffic as `-32600` carrying that reason and a hint naming the capability.
|
|
425
|
+
**Error-path parity.** Tool errors: `content[]` carries `Error: <message>`, then `Recovery: <hint>` when the hint says something the message does not already contain, then a closing `(reason … · not retryable)` for whichever of `data.reason` / `data.retryable` is present; the numeric code and `data.issues` stay JSON-only. `structuredContent.error` carries `{ code, message, data? }`. No `_meta.error`. Resources re-throw via JSON-RPC error envelope. An argument rejection is one of them: `-32602` with `data.issues`, plus `data.reason: 'invalid_arguments'` and a hint synthesized from the issues and the root schema — never a tool-declared `reason`, since the handler never ran. When pre-validation rewrote or dropped a key the caller wrote, `data.input` (`{ aliased: [{ alias, target }], ignored }`) names it and the hint closes with `Validated … as ….` / `Dropped undeclared key ….`; an ignore-list drop is never reported. `client_capability_missing` is the second framework-owned reason: a `ctx.requestInput` return a 2025-era connection cannot serve is refused before any wire traffic as `-32600` carrying that reason and a hint naming the capability.
|
|
422
426
|
|
|
423
427
|
**Lint rules** (all warnings, surfaced in `devcheck`): `prefer-mcp-error-in-handler`, `prefer-error-factory`, `preserve-cause-on-rethrow`, `no-stringify-upstream-error`, `error-contract-conformance`, `error-contract-prefer-fail`, `error-contract-unthrown` (a declared reason no literal `ctx.fail`/`ctx.recoveryFor` in the handler names, unless marked `thrownBy: 'service'`), `error-contract-recovery-unforwarded` (a `ctx.fail` site carrying neither `ctx.recoveryFor('<reason>')` nor its own `recovery` key, so the declared hint reaches neither client surface). See `api-linter` skill.
|
|
424
428
|
|
|
@@ -540,10 +544,10 @@ Skills live in `framework-skills/<name>/SKILL.md`; the full list is discoverable
|
|
|
540
544
|
- **Auth:** via `auth: ['scope']` on definitions (not HOF wrapper)
|
|
541
545
|
- **Missing input:** read `ctx.inputs` first, then `return ctx.requestInput(...)`
|
|
542
546
|
- **Pagination:** large resource lists use `extractCursor`/`paginateArray`
|
|
543
|
-
- **Registration:** definitions
|
|
547
|
+
- **Registration:** definitions collected in the `definitions/index.ts` barrel's array passed to `createApp()` — an `export` line alone registers nothing
|
|
544
548
|
- **Tests:** `createMockContext()`, `.handler()` tested directly
|
|
545
549
|
- **Gate:** `bun run devcheck` passes (includes MCP definition linting)
|
|
546
|
-
- **Smoke-test:** `bun run rebuild && bun run start:stdio` (or `start:http`)
|
|
550
|
+
- **Smoke-test:** `bun run rebuild && bun run start:stdio < /dev/null` (or `start:http`); the `Core services constructed` log record lists every definition in its `tools` / `resources` / `prompts` fields
|
|
547
551
|
|
|
548
552
|
---
|
|
549
553
|
|
|
@@ -566,7 +570,7 @@ Skills live in `framework-skills/<name>/SKILL.md`; the full list is discoverable
|
|
|
566
570
|
| `bun run test:leak-gate` | The retention gate's own sentinel suite. Each case spawns a full Vitest run, so it is excluded from the `unit` project |
|
|
567
571
|
| `bun run test:coverage` | Root projects with coverage thresholds enforced |
|
|
568
572
|
| `bun run test:integration` | Real server subprocesses over stdio and HTTP |
|
|
569
|
-
| `bun run test:worker` | The framework under real `workerd`, then a standalone Worker bundle through the Wrangler toolchain — real Node on both legs |
|
|
573
|
+
| `bun run test:worker` | The framework under real `workerd`, then a standalone Worker bundle through the Wrangler toolchain — real Node on both legs. The `workerd` leg enforces its own coverage thresholds over the Worker entry and Cloudflare storage providers, reported to `reports/coverage-worker/` |
|
|
570
574
|
| `bun run test:package` | Rebuilds, packs the tarball, and consumes it as an external project would (exports, declarations, both runtimes) |
|
|
571
575
|
| `bun run test:node` | Root projects + integration under real Node via `scripts/with-node.ts`, which bypasses Bun's `node` PATH shim |
|
|
572
576
|
| `bun run test:order` | Root projects on real Node in shuffled file order under a pinned seed — catches inter-file state leakage |
|
package/CLAUDE.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# Developer Protocol
|
|
2
2
|
|
|
3
3
|
**Package:** `@cyanheads/mcp-ts-core`
|
|
4
|
-
**Version:** 0.13.
|
|
4
|
+
**Version:** 0.13.9
|
|
5
5
|
**Engines:** Bun ≥1.4.0, Node ≥24.0.0
|
|
6
|
-
**MCP SDK:** `@modelcontextprotocol/server` ^2.
|
|
6
|
+
**MCP SDK:** `@modelcontextprotocol/server` ^2.1.0 (protocol revisions 2026-07-28 and 2025-*)
|
|
7
7
|
**Zod:** ^4.6.5
|
|
8
8
|
**GitHub:** [cyanheads/mcp-ts-core](https://github.com/cyanheads/mcp-ts-core)
|
|
9
9
|
**npm:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core)
|
|
@@ -100,9 +100,8 @@ await createApp({
|
|
|
100
100
|
tools: allToolDefinitions,
|
|
101
101
|
resources: allResourceDefinitions,
|
|
102
102
|
prompts: allPromptDefinitions,
|
|
103
|
-
instructions: // server-level orientation, sent on every initialize
|
|
104
|
-
'
|
|
105
|
-
'Other endpoints reachable via `connect({ baseUrl })`.',
|
|
103
|
+
instructions: // server-level orientation, sent on every initialize — one literal, a few sentences
|
|
104
|
+
'Calls reach the production API by default. Pass `baseUrl` to `connect` to reach another endpoint.',
|
|
106
105
|
extensions: { // SEP-2133 extensions advertised in capabilities
|
|
107
106
|
'vendor/my-extension': { /* extension config */ },
|
|
108
107
|
},
|
|
@@ -168,7 +167,7 @@ interface ServerHandle {
|
|
|
168
167
|
}
|
|
169
168
|
```
|
|
170
169
|
|
|
171
|
-
**Exit contract.** `shutdown()` is exit-free and unbounded: it also serves the startup-failure rollback and direct calls from embedders and tests, so ending the process belongs to the handlers. `SIGTERM`, `SIGINT`, and stdin EOF each run that same shutdown and then exit explicitly. A signal exits 0 once the shutdown settles and 1 when the 10 s ceiling fires, after a warning naming the step that never settled; stdin EOF exits 0 either way, unchanged. The ceiling bounds the shutdown as a whole rather than any single await, so a step that settles inside it is never truncated. A second signal mid-shutdown reaches no handler (shutdown detaches them as it starts) and terminates on the OS default, 143 / 130 — the operator's force-kill escape hatch. `uncaughtException` / `unhandledRejection` exit 1.
|
|
170
|
+
**Exit contract.** `shutdown()` is exit-free and unbounded: it also serves the startup-failure rollback and direct calls from embedders and tests, so ending the process belongs to the handlers. `SIGTERM`, `SIGINT`, and stdin EOF each run that same shutdown and then exit explicitly. On stdin EOF the SDK transport has already closed itself, so a request still in flight is aborted (its `ctx.signal` fires) and never answered — the client has hung up. A signal exits 0 once the shutdown settles and 1 when the 10 s ceiling fires, after a warning naming the step that never settled; stdin EOF exits 0 either way, unchanged. The ceiling bounds the shutdown as a whole rather than any single await, so a step that settles inside it is never truncated. A second signal mid-shutdown reaches no handler (shutdown detaches them as it starts) and terminates on the OS default, 143 / 130 — the operator's force-kill escape hatch. `uncaughtException` / `unhandledRejection` exit 1.
|
|
172
171
|
|
|
173
172
|
---
|
|
174
173
|
|
|
@@ -238,7 +237,7 @@ export const myTool = tool('my_tool', {
|
|
|
238
237
|
});
|
|
239
238
|
```
|
|
240
239
|
|
|
241
|
-
**Steps:** Create `src/mcp-server/tools/definitions/[name].tool.ts` (kebab-case) → use `tool('snake_case', {...})` with Zod `.describe()` on all fields → implement `handler(input, ctx)` (pure, throws on failure) → add `auth`/`format` if needed → register in `definitions/index.ts` → `bun run devcheck` → smoke-test with `bun run rebuild && bun run start:stdio` (or `start:http`).
|
|
240
|
+
**Steps:** Create `src/mcp-server/tools/definitions/[name].tool.ts` (kebab-case) → use `tool('snake_case', {...})` with Zod `.describe()` on all fields → implement `handler(input, ctx)` (pure, throws on failure) → add `auth`/`format` if needed → register in `definitions/index.ts` → `bun run devcheck` → smoke-test with `bun run rebuild && bun run start:stdio < /dev/null` (or `start:http`) and confirm the `Core services constructed` log record lists the tool in its `tools` field (the message text shows only counts).
|
|
242
241
|
|
|
243
242
|
**Schema constraint:** Input/output schemas must use JSON-Schema-serializable Zod types only. The MCP SDK converts schemas to JSON Schema for `tools/list` — non-serializable types (`z.custom()`, `z.date()`, `z.transform()`, `z.bigint()`, `z.symbol()`, `z.void()`, `z.map()`, `z.set()`, `z.function()`, `z.nan()`) cause a hard runtime failure. Use structural equivalents instead (e.g., `z.string()` with `.describe('ISO 8601 date')` instead of `z.date()`). The `schema-serializable` lint rule catches this at build time (`bun run lint:mcp` / `devcheck`).
|
|
244
243
|
|
|
@@ -255,7 +254,7 @@ export const myTool = tool('my_tool', {
|
|
|
255
254
|
|
|
256
255
|
**Strict input:** `tool()` stores `input.strict()`, so an unrecognized argument key is rejected by name before the handler runs and `inputSchema` advertises `additionalProperties: false`. Root-level only — a nested `z.object()` still strips unless it is strict itself. An explicit `.passthrough()` / `.catchall()` is honored. Declare `.strict()` **before** `.describe()` / `.meta()` on the root: Zod keys both to the schema instance and `.strict()` clones without it, so a root describe declared after is discarded and never advertised — `lint:mcp` reports that as `schema-root-meta-discarded`.
|
|
257
256
|
|
|
258
|
-
**Pre-validation:** an ordered step inside `parseToolArguments` rescues calls strict input would otherwise reject — drop client-added root keys (`_meta`, `tool_call_description`, `toolCallId`, any undeclared `_`-prefixed key) → rewrite key aliases (declared `inputAliases`, plus any undeclared key whose case-folded form names exactly one declared key) → parse → on failure, repair a JSON-stringified array and re-parse once, keeping
|
|
257
|
+
**Pre-validation:** an ordered step inside `parseToolArguments` rescues calls strict input would otherwise reject — drop client-added root keys (`_meta`, `tool_call_description`, `toolCallId`, any undeclared `_`-prefixed key) → rewrite key aliases (declared `inputAliases`, plus any undeclared key whose case-folded form names exactly one declared key) → parse → on failure, repair a JSON-stringified array or object, or a safe integer where a string is expected (`8654467` → `"8654467"`), and re-parse once, keeping the repair only if the schema then accepts it. If that still fails and the drop discarded a key, the stages rerun alias-first so `_query` or a declared `_q` alias reaches its target, and the retry (repair included) is kept only if it validates — a call the first order validates resolves exactly as it would without the retry. All on by default, and nothing changes the advertised `inputSchema`. A call that still fails throws the rejection of the last order tried — the retry's when it ran, so a declared `_q` alias with a bad value reports that value's failure and `Validated _q as query.` — the same one it gets under `coerce: false`, reporting that order's rewrites and underscore-rule drops as `data.input` and in the hint. A declared key, an author-opened root, and a `headerParam` target are never touched. Server-level switches: `createApp({ input: { ignoreKeys, caseStyleAliases, coerce } })`. Counters, for the attempt the handler receives: `mcp.input.ignored_key`, `mcp.input.aliased`, `mcp.input.coerced` (once per repair kind). Lint: `input-alias-conflict`. See `add-tool` skill.
|
|
259
258
|
|
|
260
259
|
**Header-mirrored input (2026-07-28):** `headerParam(z.string(), 'Region')` designates an input property with `x-mcp-header`, so its value also rides an `Mcp-Param-Region` request header and an intermediary can read it without parsing the body. Mirroring, not relocation — the handler still reads the argument from the body, and nothing else about the field changes. Only a primitive-typed (`string`/`integer`/`number`/`boolean`) property statically reachable through a chain of `properties` keys qualifies: an array element, a `z.record()` value, and every field of a discriminated-union input root are unreachable, and header names must be RFC 9110 tokens, case-insensitively unique per schema. `tool()` rejects a violation at definition time naming the field path — the SDK only warns, then conforming Streamable HTTP clients drop the tool. Lint rule: `header-param-designation`.
|
|
261
260
|
|
|
@@ -303,7 +302,7 @@ interface Context {
|
|
|
303
302
|
readonly auth?: AuthContext;
|
|
304
303
|
readonly log: ContextLogger; // auto-correlated: requestId, traceId, tenantId
|
|
305
304
|
readonly state: ContextState; // tenant-scoped KV storage
|
|
306
|
-
readonly requestInput: RequestInputFn; // (spec) => never — suspends and asks the caller for input
|
|
305
|
+
readonly requestInput: RequestInputFn; // (spec, options?) => never — suspends and asks the caller for input
|
|
307
306
|
readonly inputs: ContextInputs; // reader over a retried request's responses
|
|
308
307
|
readonly notifyPromptListChanged?: (() => void) | undefined; // prompt list changed
|
|
309
308
|
readonly notifyResourceListChanged?: (() => void) | undefined; // resource list changed
|
|
@@ -368,6 +367,11 @@ useFormat(answer.format);
|
|
|
368
367
|
cancelled prompt is terminal, not a round to retry. `inputRequired.elicitUrl({ message, url })`
|
|
369
368
|
hands the user an external link instead of a form.
|
|
370
369
|
|
|
370
|
+
A 2025-era client that declared no matching capability is refused as `client_capability_missing`,
|
|
371
|
+
with a hint that ends at reconnecting. When the tool's own arguments can stand in for the answer,
|
|
372
|
+
say so per call — `ctx.requestInput(spec, { fallbackHint: 'Or call again with noun supplied.' })` —
|
|
373
|
+
and the sentence is appended to that hint. A consent gate passes none: it has no such field.
|
|
374
|
+
|
|
371
375
|
### `ctx.content`
|
|
372
376
|
|
|
373
377
|
Accumulates non-text content blocks — image/audio bytes, embedded resources, resource links — onto the response: `ctx.content.image(data, mimeType)`, `ctx.content.audio(data, mimeType)`, or `ctx.content(block)` for a raw `ContentBlock`. Blocks are prepended to `content[]` after `format()` runs and never enter `structuredContent`, so a handler can emit media for the calling model without the base64 duplicating into typed output. Always present (no-op when unused); callable from handler and service layer.
|
|
@@ -418,7 +422,7 @@ For HTTP responses from upstream APIs, use `httpErrorFromResponse(response, { se
|
|
|
418
422
|
|
|
419
423
|
**Auto-classification.** Plain `Error`, `ZodError`, and any other thrown value are caught and classified automatically. Resolution order: request signal already aborted (→ `RequestCancelled`, outranking the thrown value's own code, `McpError` included) → `McpError` code (preserved as-is) → SDK `ConnectionClosed` (→ `RequestCancelled`) → engine resource-limit `RangeError` by whole message — stack overflow, maximum string size (→ `InternalError`) → JS constructor name (`SyntaxError` → `ValidationError`; `TypeError` is excluded) → provider patterns (HTTP status codes, AWS errors, DB errors) → common message patterns → `AbortError` name (→ `Timeout`) → `InternalError` fallback. A result that breaks the definition's own `output` or `enrichment` schema fails as `InternalError` naming that contract, not `ValidationError`.
|
|
420
424
|
|
|
421
|
-
**Error-path parity.** Tool errors: `content[]` carries `Error: <message>`, then `Recovery: <hint>` when the hint says something the message does not already contain, then a closing `(reason … · not retryable)` for whichever of `data.reason` / `data.retryable` is present; the numeric code and `data.issues` stay JSON-only. `structuredContent.error` carries `{ code, message, data? }`. No `_meta.error`. Resources re-throw via JSON-RPC error envelope. An argument rejection is one of them: `-32602` with `data.issues`, plus `data.reason: 'invalid_arguments'` and a hint synthesized from the issues and the root schema — never a tool-declared `reason`, since the handler never ran. `client_capability_missing` is the second framework-owned reason: a `ctx.requestInput` return a 2025-era connection cannot serve is refused before any wire traffic as `-32600` carrying that reason and a hint naming the capability.
|
|
425
|
+
**Error-path parity.** Tool errors: `content[]` carries `Error: <message>`, then `Recovery: <hint>` when the hint says something the message does not already contain, then a closing `(reason … · not retryable)` for whichever of `data.reason` / `data.retryable` is present; the numeric code and `data.issues` stay JSON-only. `structuredContent.error` carries `{ code, message, data? }`. No `_meta.error`. Resources re-throw via JSON-RPC error envelope. An argument rejection is one of them: `-32602` with `data.issues`, plus `data.reason: 'invalid_arguments'` and a hint synthesized from the issues and the root schema — never a tool-declared `reason`, since the handler never ran. When pre-validation rewrote or dropped a key the caller wrote, `data.input` (`{ aliased: [{ alias, target }], ignored }`) names it and the hint closes with `Validated … as ….` / `Dropped undeclared key ….`; an ignore-list drop is never reported. `client_capability_missing` is the second framework-owned reason: a `ctx.requestInput` return a 2025-era connection cannot serve is refused before any wire traffic as `-32600` carrying that reason and a hint naming the capability.
|
|
422
426
|
|
|
423
427
|
**Lint rules** (all warnings, surfaced in `devcheck`): `prefer-mcp-error-in-handler`, `prefer-error-factory`, `preserve-cause-on-rethrow`, `no-stringify-upstream-error`, `error-contract-conformance`, `error-contract-prefer-fail`, `error-contract-unthrown` (a declared reason no literal `ctx.fail`/`ctx.recoveryFor` in the handler names, unless marked `thrownBy: 'service'`), `error-contract-recovery-unforwarded` (a `ctx.fail` site carrying neither `ctx.recoveryFor('<reason>')` nor its own `recovery` key, so the declared hint reaches neither client surface). See `api-linter` skill.
|
|
424
428
|
|
|
@@ -540,10 +544,10 @@ Skills live in `framework-skills/<name>/SKILL.md`; the full list is discoverable
|
|
|
540
544
|
- **Auth:** via `auth: ['scope']` on definitions (not HOF wrapper)
|
|
541
545
|
- **Missing input:** read `ctx.inputs` first, then `return ctx.requestInput(...)`
|
|
542
546
|
- **Pagination:** large resource lists use `extractCursor`/`paginateArray`
|
|
543
|
-
- **Registration:** definitions
|
|
547
|
+
- **Registration:** definitions collected in the `definitions/index.ts` barrel's array passed to `createApp()` — an `export` line alone registers nothing
|
|
544
548
|
- **Tests:** `createMockContext()`, `.handler()` tested directly
|
|
545
549
|
- **Gate:** `bun run devcheck` passes (includes MCP definition linting)
|
|
546
|
-
- **Smoke-test:** `bun run rebuild && bun run start:stdio` (or `start:http`)
|
|
550
|
+
- **Smoke-test:** `bun run rebuild && bun run start:stdio < /dev/null` (or `start:http`); the `Core services constructed` log record lists every definition in its `tools` / `resources` / `prompts` fields
|
|
547
551
|
|
|
548
552
|
---
|
|
549
553
|
|
|
@@ -566,7 +570,7 @@ Skills live in `framework-skills/<name>/SKILL.md`; the full list is discoverable
|
|
|
566
570
|
| `bun run test:leak-gate` | The retention gate's own sentinel suite. Each case spawns a full Vitest run, so it is excluded from the `unit` project |
|
|
567
571
|
| `bun run test:coverage` | Root projects with coverage thresholds enforced |
|
|
568
572
|
| `bun run test:integration` | Real server subprocesses over stdio and HTTP |
|
|
569
|
-
| `bun run test:worker` | The framework under real `workerd`, then a standalone Worker bundle through the Wrangler toolchain — real Node on both legs |
|
|
573
|
+
| `bun run test:worker` | The framework under real `workerd`, then a standalone Worker bundle through the Wrangler toolchain — real Node on both legs. The `workerd` leg enforces its own coverage thresholds over the Worker entry and Cloudflare storage providers, reported to `reports/coverage-worker/` |
|
|
570
574
|
| `bun run test:package` | Rebuilds, packs the tarball, and consumes it as an external project would (exports, declarations, both runtimes) |
|
|
571
575
|
| `bun run test:node` | Root projects + integration under real Node via `scripts/with-node.ts`, which bypasses Bun's `node` PATH shim |
|
|
572
576
|
| `bun run test:order` | Root projects on real Node in shuffled file order under a pinned seed — catches inter-file state leakage |
|
package/README.md
CHANGED
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
|
|
7
7
|
<div align="center">
|
|
8
8
|
|
|
9
|
-
[](./CHANGELOG.md) [](./LICENSE) [](https://modelcontextprotocol.io/specification/2026-07-28)
|
|
10
10
|
|
|
11
|
-
[](https://modelcontextprotocol.io/) [](https://www.typescriptlang.org/) [](https://bun.sh/)
|
|
12
12
|
|
|
13
13
|
[Quick start](#quick-start) · [Capabilities](#what-comes-with-it) · [API reference](#api-overview) · [Examples](#examples)
|
|
14
14
|
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Canvas scratch files move into a private directory, a JSON-stringified object or an integer sent for a string is repaired before the schema rejects it, and argument rejections name the field paths and key rewrites behind them."
|
|
3
|
+
breaking: false
|
|
4
|
+
security: true
|
|
5
|
+
agent-notes: |
|
|
6
|
+
Adoption steps for a consumer upgrading from 0.13.8.
|
|
7
|
+
|
|
8
|
+
1. `lint:mcp` (and so `devcheck`) now fails on three conditions it used to
|
|
9
|
+
pass: a definition file that fails to import (`definition-import-failed`),
|
|
10
|
+
a `server.json` that exists but does not parse (`server-json-parse`), and
|
|
11
|
+
an `inputAliases` entry whose target is a `headerParam` field
|
|
12
|
+
(`input-alias-conflict`). The first two arrive with the maintenance
|
|
13
|
+
resync of `scripts/lint-mcp.ts`, the third with the package itself. Run
|
|
14
|
+
`bun run lint:mcp` once both are in: a server that passes needs no
|
|
15
|
+
change. Otherwise, for an import failure install the missing optional
|
|
16
|
+
peer where lint runs (a devDependency is enough) or make the import lazy
|
|
17
|
+
(`await import()` inside the handler or service, with module-load work
|
|
18
|
+
moved into `setup()` or a service's init); fix the `server.json` syntax;
|
|
19
|
+
and remove the dead alias, or drop the header designation.
|
|
20
|
+
2. A `runToolContract` / `toolContractSuite` case that expects
|
|
21
|
+
`InvalidParams` for an integer sent to a string field, or for a
|
|
22
|
+
JSON-stringified object sent to an object field, now succeeds: the
|
|
23
|
+
framework repairs both before the handler runs. Change such a case to
|
|
24
|
+
send a boolean so it keeps its wrong-type intent.
|
|
25
|
+
3. `CANVAS_TEMP_PATH` now names a parent directory. The DuckDB provider
|
|
26
|
+
creates a private `mcp-canvas-XXXXXX` directory inside it (or inside the
|
|
27
|
+
OS temp directory when unset), so a value pointing at a dedicated mount
|
|
28
|
+
keeps working. A leftover `<tmpdir>/mcp-canvas` from earlier versions is
|
|
29
|
+
never used again and can be deleted once no older server shares the
|
|
30
|
+
host. A process that exits abnormally leaves its `mcp-canvas-XXXXXX`
|
|
31
|
+
behind, still private; nothing sweeps it on the next start.
|
|
32
|
+
4. A tool whose handler has a non-elicitation path, where its own
|
|
33
|
+
arguments can stand in for what `ctx.requestInput` asks, passes one:
|
|
34
|
+
`ctx.requestInput(spec, { fallbackHint: 'Or call again with <field> supplied.' })`.
|
|
35
|
+
Without it, a 2025-era client lacking the capability is told only to
|
|
36
|
+
reconnect. A consent gate passes none.
|
|
37
|
+
5. MCP SDK 2.1.0 changes what callers see on the transports. A 2026-07-28
|
|
38
|
+
POST without `MCP-Protocol-Version` is refused `400` / `-32020`, as is a
|
|
39
|
+
2026-07-28 `tasks/get`, `tasks/update`, or `tasks/cancel` without an
|
|
40
|
+
`Mcp-Name` matching `params.taskId`. A JSON-RPC batch of more than 100
|
|
41
|
+
messages is refused whole, `400` / `-32600`. `notifications/cancelled`
|
|
42
|
+
with `requestId: 0` now aborts the handler. On stdio, stdin EOF aborts
|
|
43
|
+
requests still in flight, and they are never answered.
|
|
44
|
+
`MCP_HTTP_MAX_BODY_BYTES` remains the only request-body limit. Update
|
|
45
|
+
any client code or test that relied on the old answers.
|
|
46
|
+
6. The pre-validation repair's debug log field `coercion` is now
|
|
47
|
+
`coercions`, an array of repair kinds (`stringified_array`,
|
|
48
|
+
`stringified_object`, `integer_as_string`). Update any log query that
|
|
49
|
+
reads it.
|
|
50
|
+
7. A server with a `.mcpbignore` adds `/docs/idea.md` and `/logs/` to it,
|
|
51
|
+
as the scaffold now does.
|
|
52
|
+
8. `lint:packaging` (and so `devcheck`) now fails two conditions it used to
|
|
53
|
+
pass: a `manifest.json` whose `version` differs from `package.json`'s —
|
|
54
|
+
set it to the package version — and a Dockerfile stage that runs
|
|
55
|
+
`bun run build` without `FROM --platform=$BUILDPLATFORM` — start that
|
|
56
|
+
stage with `FROM --platform=$BUILDPLATFORM` and copy `dist/` into a
|
|
57
|
+
separate runtime stage, as the scaffold's `Dockerfile` does. Both arrive
|
|
58
|
+
with the maintenance resync of `scripts/lint-packaging.ts`. Run
|
|
59
|
+
`bun run lint:packaging` once it is in: a server that passes needs no
|
|
60
|
+
change.
|
|
61
|
+
9. `bun run release:github`, once `scripts/release-github.ts` is resynced,
|
|
62
|
+
refuses a tag that breaks the `release-and-publish` step 4 format before
|
|
63
|
+
any `gh` call. Run `bun run release:github -- --check` after
|
|
64
|
+
`git tag -a` and before pushing the tag, and recreate a tag it rejects.
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
# 0.13.9 — 2026-09-26
|
|
68
|
+
|
|
69
|
+
## Added
|
|
70
|
+
|
|
71
|
+
- **Stringified objects and integers sent for strings are repaired** ([#479](https://github.com/cyanheads/mcp-ts-core/issues/479), [#487](https://github.com/cyanheads/mcp-ts-core/issues/487)) — after a failed parse, a JSON-stringified object is decoded and a safe integer sent for a string becomes its digits (`8654467` → `"8654467"`), each kept only if the re-parse passes. `mcp.input.coercion` gains `stringified_object` and `integer_as_string`.
|
|
72
|
+
- **Argument rejections name pre-validation's rewrites** ([#468](https://github.com/cyanheads/mcp-ts-core/issues/468)) — when an alias rewrite or an underscore-rule drop touched a rejected call's keys, `data.input` names them (`{ aliased: [{ alias, target }], ignored }`) and the hint closes with `Validated q as query.` or `Dropped undeclared key _search.` (ignore-list drops never appear).
|
|
73
|
+
- **`pacer.cooldown`** ([#467](https://github.com/cyanheads/mcp-ts-core/issues/467)) — samples the shared gate as `PacerCooldownState` `{ remainingMs, consecutive }`, exported from `/utils`, so a task's rejection handler can report the wait on its own error. Both stay 0 without a `cooldown` option.
|
|
74
|
+
- **`lint:packaging` checks the manifest version and the Dockerfile build platform** — a `manifest.json` `version` other than `package.json`'s fails, as does a Dockerfile stage that runs `bun run build` without `FROM --platform=$BUILDPLATFORM`. `devcheck` runs the step when a `Dockerfile` is its only input.
|
|
75
|
+
- **`release:github` validates the tag before publishing** — a lightweight tag, a subject over 72 characters or carrying the version or a `;`, a section header, a leaked signature block, or a final line other than the changelog link is refused before any `gh` call; `-- --check` runs only that validation.
|
|
76
|
+
|
|
77
|
+
## Changed
|
|
78
|
+
|
|
79
|
+
- **Capability refusals end at reconnecting** ([#495](https://github.com/cyanheads/mcp-ts-core/issues/495)) — the `client_capability_missing` hint no longer offers to take the answer as an argument, which a consent gate cannot. A handler whose arguments can stand in passes `ctx.requestInput(spec, { fallbackHint })`, a sentence appended to the hint.
|
|
80
|
+
- **`CanvasIdSchema` says what a canvas ID is** ([#483](https://github.com/cyanheads/mcp-ts-core/issues/483)) — a rejected `canvas_id` reads "Expected a canvas ID exactly as an earlier response on this server returned it…" in the message and hint instead of the bare regex. The advertised JSON Schema is unchanged.
|
|
81
|
+
- **MCP SDK 2.1.0 transport behavior** — a 2026-07-28 POST without `MCP-Protocol-Version` is refused `400` / `-32020`, and a JSON-RPC batch over 100 messages `400` / `-32600`. `notifications/cancelled` with `requestId: 0` now cancels, and stdin EOF on stdio aborts in-flight requests unanswered.
|
|
82
|
+
- **Release workflow skills** — `git-wrapup`'s gate adds `rebuild`; `release-pr-review` waits on code scanning in bounded calls, reads the PR's merge-ref alerts, and reports `finished` or `halted`; the greenfield workflow disables CodeQL while the repo is private, then reopens the release PR once it is public so the first scan runs; `security-pass` flags catching `client_capability_missing` to run a side effect. `release-and-publish` runs `release:github -- --check` before the push, and the orchestration workflows defer the tag format to it and drop the tag-moving protocol.
|
|
83
|
+
- **Skill corrections** — issue reads fetch the body and the thread separately, since `gh issue view --comments` prints no body without a TTY; smoke tests run `start:stdio < /dev/null` and check the `Core services constructed` record's `tools` / `resources` / `prompts` fields; the `add-resource` and `add-prompt` barrel snippets add to the `createApp()` array; `security-pass` greps use `grep -E`.
|
|
84
|
+
- **Scaffold `.mcpbignore`** — excludes `docs/idea.md` and `logs/` from the bundle.
|
|
85
|
+
- Skill versions: `add-app-tool` 1.6 → 1.7, `add-export` 1.1 → 1.2, `add-prompt` 1.4 → 1.5, `add-resource` 1.7 → 1.8, `add-tool` 2.30 → 2.31, `api-auth` 1.4 → 1.5, `api-canvas` 2.5 → 2.6, `api-config` 1.21 → 1.22, `api-context` 2.7 → 2.8, `api-errors` 1.17 → 1.18, `api-linter` 1.19 → 1.20, `api-mirror` 1.2 → 1.3, `api-telemetry` 1.14 → 1.15, `api-utils` 2.13 → 2.14, `design-mcp-server` 2.29 → 2.30, `field-test` 2.16 → 2.17, `git-wrapup` 1.26 → 1.27, `orchestrations` 1.11 → 1.12 (workflows `field-test-fix` 1.1 → 1.2, `fix-wrapup-release` 1.1 → 1.2, `greenfield-build` 1.2 → 1.3, `maintenance-release` 1.2 → 1.3), `polish-docs-meta` 2.19 → 2.20, `release-and-publish` 2.21 → 2.22, `release-pr-review` 1.5 → 1.6, `report-issue-framework` 1.13 → 1.14, `report-issue-local` 1.11 → 1.12, `security-pass` 1.10 → 1.11.
|
|
86
|
+
|
|
87
|
+
## Fixed
|
|
88
|
+
|
|
89
|
+
- **Underscore-prefixed keys reach their alias** ([#563](https://github.com/cyanheads/mcp-ts-core/issues/563)) — when a call fails after the drop stage discarded a key, pre-validation retries alias-first and keeps the retry only if it validates, so a declared `_q` alias or an undeclared `_query` reaches `query`. A call that fails both ways is rejected as the retry saw it: the value's own failure, closed by `Validated _q as query.`
|
|
90
|
+
- **One-or-many unions render like the field they wrap** ([#492](https://github.com/cyanheads/mcp-ts-core/issues/492)) — a bad element in `z.union([z.array(Item), Item])` reports `items.1.name: …` with the typed hint `Send items.1.name as a string, not a boolean.`, as a plain array field does.
|
|
91
|
+
- **Argument hints keep field paths** ([#493](https://github.com/cyanheads/mcp-ts-core/issues/493)) — a constraint or refinement restated in the hint carries its path (`start: Must be …, end: Must be …`) and repeats collapse, so a consumer test pinning a path-less hint moves.
|
|
92
|
+
- **A fractional number on an integer field names the fix** ([#499](https://github.com/cyanheads/mcp-ts-core/issues/499)) — `Send rows as an integer, not a fractional number.` instead of `as an int, not a number`.
|
|
93
|
+
- **Nested unknown keys are hinted from their own object** ([#566](https://github.com/cyanheads/mcp-ts-core/issues/566)) — `Unknown key opts.b. opts accepts: a.` instead of the root's key list.
|
|
94
|
+
- **The pacer's cooldown streak decays** ([#471](https://github.com/cyanheads/mcp-ts-core/issues/471)) — a rate limit arriving once the gate has stood open for `cooldown.maxMs` restarts the doubling at `baseMs`.
|
|
95
|
+
- **Pacer sheds report their kind and a usable `retryAfter`** ([#472](https://github.com/cyanheads/mcp-ts-core/issues/472)) — sheds carry `data.shedKind` (`queue_full` / `wait_projected` / `wait_elapsed`, type `PacerShedKind`), and `retryAfter` counts every remaining waiter and, under a saturated `maxConcurrent`, is at least the longest queued wait and 1. A due waiter starts before a new arrival meets `maxQueueDepth`.
|
|
96
|
+
- **A nested pacer's shed leaves the outer gate open** ([#559](https://github.com/cyanheads/mcp-ts-core/issues/559)) — a task error with `data.reason: 'pacer_shed'` neither closes the cooldown gate nor touches the streak.
|
|
97
|
+
- **`maxQueueDepth` bounds waiters, not arrivals** ([#560](https://github.com/cyanheads/mcp-ts-core/issues/560)) — an arrival whose slot is open starts at once, so `maxQueueDepth: 0` means "run when a slot is free, never wait".
|
|
98
|
+
- **A `baseMs: 0` cooldown keeps pacing** ([#564](https://github.com/cyanheads/mcp-ts-core/issues/564)) — the doubling exponent is capped, so a streak past 1,024 rate limits no longer computes `NaN` and switches off every window, gap, and gate.
|
|
99
|
+
- **Concurrent canvas spills no longer corrupt each other** ([#561](https://github.com/cyanheads/mcp-ts-core/issues/561)) — each canvas spills into its own `temp_directory`, removed when the canvas is dropped or evicted, once the calls still running on it settle.
|
|
100
|
+
- **DuckDB errors classify by DuckDB's error class and redact host paths** ([#565](https://github.com/cyanheads/mcp-ts-core/issues/565)) — `sql_read_only` needs a `Permission Error` or a read-only-mode message and `sql_parse_error` a `Parser Error`, so an `IO Error` such as an unwritable export directory is `DatabaseError` (`-32010`) without a reason. The export root and scratch paths read `[path]` in engine error messages.
|
|
101
|
+
- **`lint:mcp` fails on definitions it cannot load** ([#516](https://github.com/cyanheads/mcp-ts-core/issues/516)) — a definition file whose `import()` rejects is a `definition-import-failed` error and an unparseable `server.json` a `server-json-parse` error, both exiting 1, while the remaining files are still linted.
|
|
102
|
+
- **`input-alias-conflict` covers `headerParam` targets** ([#569](https://github.com/cyanheads/mcp-ts-core/issues/569)) — an alias onto a header-mirrored field, which the rewrite never targets, now fails lint.
|
|
103
|
+
- **The CORS preflight allows the 2026-07-28 request headers** ([#571](https://github.com/cyanheads/mcp-ts-core/issues/571)) — an origin the Origin guard admits may also send `Mcp-Method`, `Mcp-Name`, `Last-Event-ID`, and each registered tool's `Mcp-Param-<Name>` (the manifest's new `headerParams`); other origins keep the 2025-era set. Every CORS response carries `Vary: Origin`.
|
|
104
|
+
- **Mirror examples pass `table`** — the `api-mirror` skill and the `defineMirror` JSDoc give `sqliteMirrorStore` its required `table` option.
|
|
105
|
+
|
|
106
|
+
## Security
|
|
107
|
+
|
|
108
|
+
- **Canvas scratch files live in a private directory** ([#554](https://github.com/cyanheads/mcp-ts-core/issues/554)) — the DuckDB provider no longer uses the fixed `<tmpdir>/mcp-canvas`, which other local users could read or pre-create. It creates a private `mkdtemp` directory (`0700` on POSIX) inside `CANVAS_TEMP_PATH`, now a parent directory, and removes it at shutdown; one it cannot create fails canvas creation as `ConfigurationError`.
|
|
109
|
+
|
|
110
|
+
## Dependencies
|
|
111
|
+
|
|
112
|
+
- `@modelcontextprotocol/server` ^2.0.0 → ^2.1.0 (transport behavior under Changed).
|
|
113
|
+
- Dev: `@modelcontextprotocol/client` ^2.0.0 → ^2.1.0.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,wEAAwE;AACxE,eAAO,MAAM,cAAc,2BAA2B,CAAC;AACvD,eAAO,MAAM,iBAAiB,QAAkC,CAAC;AA6DjE,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,wEAAwE;AACxE,eAAO,MAAM,cAAc,2BAA2B,CAAC;AACvD,eAAO,MAAM,iBAAiB,QAAkC,CAAC;AA6DjE,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiYd,CAAC;AAGL,QAAA,MAAM,WAAW,kBAAmB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8MrE,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;;;;;;GAMG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC"}
|
package/dist/config/index.js
CHANGED
|
@@ -154,6 +154,9 @@ const ConfigSchema = z
|
|
|
154
154
|
* much data they stage. Default 1 MiB; raise only for servers whose tools
|
|
155
155
|
* accept large payloads in the request body itself (base64 media, pasted
|
|
156
156
|
* documents). Set to `0` to disable and defer to the runtime/reverse proxy.
|
|
157
|
+
* The only request-body limit the transport applies: the SDK's own 4 MiB
|
|
158
|
+
* read cap never engages, since it is handed the already-parsed body, so a
|
|
159
|
+
* value above 4 MiB holds as set.
|
|
157
160
|
*/
|
|
158
161
|
mcpHttpMaxBodyBytes: z.coerce
|
|
159
162
|
.number()
|
|
@@ -281,16 +284,24 @@ const ConfigSchema = z
|
|
|
281
284
|
*/
|
|
282
285
|
exportRootPath: z.string().default('./.canvas-exports'),
|
|
283
286
|
/**
|
|
284
|
-
*
|
|
285
|
-
*
|
|
286
|
-
*
|
|
287
|
+
* Parent directory for canvas scratch I/O. On first use the DuckDB
|
|
288
|
+
* provider creates a private `mcp-canvas-XXXXXX` directory inside it
|
|
289
|
+
* (`mkdtemp`, mode `0700` on POSIX) holding each canvas's own DuckDB
|
|
290
|
+
* `temp_directory` (where a query exceeding `memory_limit` spills)
|
|
291
|
+
* and the transient files behind stream exports and `importFrom`;
|
|
292
|
+
* shutdown removes it once the calls still running against it
|
|
293
|
+
* settle.
|
|
287
294
|
*
|
|
288
|
-
* Left unset, the
|
|
289
|
-
*
|
|
290
|
-
*
|
|
291
|
-
*
|
|
292
|
-
*
|
|
293
|
-
*
|
|
295
|
+
* Left unset, the parent is the OS temp directory — never the process
|
|
296
|
+
* cwd, since DuckDB's own default for an in-memory database is a
|
|
297
|
+
* cwd-relative `.tmp`, which fails outright under a non-root or
|
|
298
|
+
* read-only container rootfs. A configured parent is created if
|
|
299
|
+
* missing and gets no ownership or mode check, so it must not be a
|
|
300
|
+
* directory another local user controls. On Windows the private
|
|
301
|
+
* directory inherits the parent's ACL, so there the parent must also
|
|
302
|
+
* not grant other users access. Distinct from
|
|
303
|
+
* `CANVAS_EXPORT_PATH`, which holds user-requested export files and
|
|
304
|
+
* stays where the caller asked for them.
|
|
294
305
|
*/
|
|
295
306
|
tempRootPath: z.string().optional(),
|
|
296
307
|
/** Maximum active canvases per tenant before `RateLimited`. */
|
package/dist/config/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,WAAW,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAwB,cAAc,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,MAAM,YAAY,GAAG,WAA8B,CAAC;AAEpD,wEAAwE;AACxE,MAAM,CAAC,MAAM,cAAc,GAAG,wBAAwB,CAAC;AACvD,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAAY,CAAC,OAAO,IAAI,OAAO,CAAC;AAEjE,4DAA4D;AAC5D,6EAA6E;AAC7E,eAAe;AACf,IAAI,cAAc,GAAG,KAAK,CAAC;AAE3B;;;;;GAKG;AACH,SAAS,WAAW;IAClB,IAAI,CAAC;QACH,OAAO,CAAC,WAAW,EAAE,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO;QAC/D,MAAM,kBAAkB,CACtB,iDAAiD,EACjD,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,EACtB,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;IACJ,CAAC;AACH,CAAC;AAED,2BAA2B;AAC3B;;;;;;;;;;GAUG;AACH,MAAM,oBAAoB,GAAG,CAAC,QAAiB,EAAE,EAAE,CACjD,CAAC,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEjG,MAAM,UAAU,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,kBAAkB,GAAG,CACzB,cAAkC,EAClC,YAAgC,EAChC,UAAsC,EAClB,EAAE;IACtB,IAAI,cAAc,KAAK,SAAS;QAAE,OAAO,cAAc,CAAC;IACxD,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACjD,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,GAAG,UAAU,EAAE,CAAC;AAC1F,CAAC,CAAC;AAEF,4BAA4B;AAC5B,MAAM,YAAY,GAAG,CAAC;KACnB,MAAM,CAAC;IACN,yDAAyD;IACzD,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC;QACZ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAClC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;KACzC,CAAC;IACF,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,gCAAgC;IAC3D,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,mCAAmC;IACjE,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,uCAAuC;IACpF,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,oCAAoC;IACvF,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,oCAAoC;IAC9E,QAAQ,EAAE,CAAC;SACR,UAAU,CACT,CAAC,GAAG,EAAE,EAAE;QACN,MAAM,GAAG,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAChE,OAAO,GAAG,CAAC;IACb,CAAC,EACD,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAClF;SACA,OAAO,CAAC,OAAO,CAAC;IACnB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,sCAAsC;IACvE;;;;;;;OAOG;IACH,kBAAkB,EAAE,UAAU;IAC9B;;;;;;OAMG;IACH,sBAAsB,EAAE,UAAU;IAClC,oFAAoF;IACpF,6BAA6B,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IACjF;;;;;;OAMG;IACH,qBAAqB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACjE,8EAA8E;IAC9E,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IACxE,WAAW,EAAE,CAAC;SACX,UAAU,CACT,CAAC,GAAG,EAAE,EAAE;QACN,MAAM,GAAG,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YAChC,MAAM,QAAQ,GAA2B;gBACvC,GAAG,EAAE,aAAa;gBAClB,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,SAAS;aAChB,CAAC;YACF,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;QAClC,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EACD,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CACjD;SACA,OAAO,CAAC,aAAa,CAAC;IACzB,gBAAgB,EAAE,CAAC,CAAC,UAAU,CAC5B,sBAAsB,EACtB,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAC3C;IACD,cAAc,EAAE,CAAC,CAAC,UAAU,CAC1B,sBAAsB,EACtB,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAC1D;IACD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAC9D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;IAC5C,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IAC/C;;;;;;;;;;;;;;OAcG;IACH,mBAAmB,EAAE,CAAC,CAAC,MAAM;SAC1B,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IACvB;;;;;;;;OAQG;IACH,YAAY,EAAE,CAAC,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;IACtE,qBAAqB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACpD,uBAAuB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACtD,gCAAgC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC;IACtE;;;;;;;OAOG;IACH,mBAAmB,EAAE,oBAAoB,CAAC,IAAI,CAAC;IAC/C,wEAAwE;IACxE,4BAA4B,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IACzE,mEAAmE;IACnE,wBAAwB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACzE,sBAAsB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3D,yBAAyB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9D;;;;;;;;;;OAUG;IACH,uBAAuB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5D,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACjD,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3C,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7C,WAAW,EAAE,CAAC,CAAC,UAAU,CACvB,sBAAsB,EACtB,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CACjD;IACD;;;;;;;;OAQG;IACH,yBAAyB,EAAE,UAAU;IACrC,cAAc,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAClC,YAAY,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAChC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,mBAAmB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,YAAY;IACrE,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,YAAY;IAClE,2BAA2B,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,8BAA8B;IAC/E,gBAAgB,EAAE,UAAU;IAC5B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5C,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC;IAC7D,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC7B,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,uCAAuC,CAAC;IAC5E,qBAAqB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnD,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5C,mBAAmB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjD,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5C,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5C,QAAQ,EAAE,CAAC;SACR,MAAM,CAAC;QACN,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE;QACZ,yFAAyF;QACzF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,kEAAkE;QAClE,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACtC,CAAC;SACD,QAAQ,EAAE;IACb,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,YAAY,EAAE,CAAC;aACZ,UAAU,CACT,CAAC,GAAG,EAAE,EAAE;YACN,MAAM,GAAG,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;gBAChC,MAAM,QAAQ,GAA2B;oBACvC,GAAG,EAAE,WAAW;oBAChB,EAAE,EAAE,YAAY;iBACjB,CAAC;gBACF,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;YAClC,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EACD,CAAC,CAAC,IAAI,CAAC;YACL,WAAW;YACX,YAAY;YACZ,UAAU;YACV,eAAe;YACf,eAAe;YACf,eAAe;SAChB,CAAC,CACH;aACA,OAAO,CAAC,WAAW,CAAC;QACvB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,sEAAsE;KACzH,CAAC;IACF,iDAAiD;IACjD,MAAM,EAAE,CAAC;SACN,MAAM,CAAC;QACN,YAAY,EAAE,CAAC,CAAC,UAAU,CACxB,sBAAsB,EACtB,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAC3C;QACD;;;WAGG;QACH,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QAC7D;;;;WAIG;QACH,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC;QACvD;;;;;;;;;;;WAWG;QACH,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACnC,+DAA+D;QAC/D,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;QAC3D,gDAAgD;QAChD,KAAK,EAAE,CAAC,CAAC,MAAM;aACZ,MAAM,EAAE;aACR,GAAG,CAAC,IAAI,CAAC;aACT,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAC/B,8DAA8D;QAC9D,aAAa,EAAE,CAAC,CAAC,MAAM;aACpB,MAAM,EAAE;aACR,GAAG,CAAC,IAAI,CAAC;aACT,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACnC,0EAA0E;QAC1E,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QAC3D,6CAA6C;QAC7C,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACzD,2EAA2E;QAC3E,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;KACvD,CAAC;SACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,KAAK,EAAE;QACzC,OAAO,EACL,wIAAwI;QAC1I,IAAI,EAAE,CAAC,eAAe,CAAC;KACxB,CAAC;IACJ,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC;QACtB,OAAO,EAAE,UAAU;QACnB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;QACvB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;QAC1B,6FAA6F;QAC7F,cAAc,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QAClC,+FAA+F;QAC/F,eAAe,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QACnC;;;;WAIG;QACH,YAAY,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QAChC,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;QAC3D,QAAQ,EAAE,CAAC;aACR,UAAU,CACT,CAAC,GAAG,EAAE,EAAE;YACN,MAAM,GAAG,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;gBAChC,MAAM,QAAQ,GAA2B;oBACvC,GAAG,EAAE,OAAO;oBACZ,OAAO,EAAE,MAAM;oBACf,WAAW,EAAE,MAAM;iBACpB,CAAC;gBACF,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;YAC9C,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EACD,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CACrE;aACA,OAAO,CAAC,MAAM,CAAC;KACnB,CAAC;IACF,MAAM,EAAE,CAAC;SACN,MAAM,CAAC;QACN,GAAG,EAAE,CAAC;aACH,MAAM,CAAC;YACN,OAAO,EAAE,UAAU;YACnB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;YACtD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC7B,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;YAC3B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACrC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACrC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACtC,CAAC;aACD,QAAQ,EAAE;QACb,GAAG,EAAE,CAAC;aACH,MAAM,CAAC;YACN,OAAO,EAAE,UAAU;YACnB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;YAC9D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC7B,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;YAC3B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACrC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACtC,CAAC;aACD,QAAQ,EAAE;KACd,CAAC;SACD,QAAQ,EAAE;CACd,CAAC;KACD,WAAW,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IACzB,4EAA4E;IAC5E,IAAI,IAAI,CAAC,WAAW,KAAK,YAAY,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC/D,GAAG,CAAC,QAAQ,CAAC;YACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,IAAI,EAAE,CAAC,kBAAkB,CAAC;YAC1B,OAAO,EACL,+GAA+G;SAClH,CAAC,CAAC;IACL,CAAC;IAED,8EAA8E;IAC9E,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,IAAI,EAAE,CAAC,kBAAkB,CAAC;gBAC1B,OAAO,EACL,+GAA+G;aAClH,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC7C,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,IAAI,EAAE,CAAC,kBAAkB,CAAC;gBAC1B,OAAO,EAAE,kEAAkE;aAC5E,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,8CAA8C;IAC9C,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,IAAI,EAAE,CAAC,gBAAgB,CAAC;gBACxB,OAAO,EAAE,wDAAwD;aAClE,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,IAAI,EAAE,CAAC,eAAe,CAAC;gBACvB,OAAO,EAAE,sDAAsD;aAChE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,wBAAwB;AACxB,MAAM,WAAW,GAAG,CAAC,YAAiD,EAAE,EAAE;IACxE,gGAAgG;IAChG,IAAI,CAAC,cAAc,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,IAAI,CAAC,YAAY,EAAE,CAAC;QACxF,WAAW,EAAE,CAAC;QACd,cAAc,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,wEAAwE;IACxE,4EAA4E;IAC5E,gEAAgE;IAChE,MAAM,GAAG,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3F,2EAA2E;IAC3E,6EAA6E;IAC7E,4EAA4E;IAC5E,sEAAsE;IACtE,MAAM,WAAW,GAAoB,cAAc,EAAE,EAAE,QAAQ,IAAI,EAAE,CAAC;IAEtE,MAAM,SAAS,GAAG;QAChB,GAAG,EAAE;YACH,IAAI,EAAE,GAAG,CAAC,YAAY,IAAI,WAAW,CAAC,IAAI,IAAI,YAAY,CAAC,IAAI;YAC/D,OAAO,EAAE,GAAG,CAAC,eAAe,IAAI,WAAW,CAAC,OAAO,IAAI,YAAY,CAAC,OAAO;YAC3E,WAAW,EAAE,GAAG,CAAC,mBAAmB,IAAI,WAAW,CAAC,WAAW,IAAI,YAAY,CAAC,WAAW;YAC3F,QAAQ,EACN,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,GAAG,CAAC;iBAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBACpB,MAAM,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,QAAQ;SAC7C;QACD,QAAQ,EAAE,GAAG,CAAC,aAAa;QAC3B,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,kBAAkB,EAAE,GAAG,CAAC,oBAAoB;QAC5C,sBAAsB,EAAE,GAAG,CAAC,yBAAyB;QACrD,6BAA6B,EAAE,GAAG,CAAC,kCAAkC;QACrE,qBAAqB,EAAE,GAAG,CAAC,4BAA4B;QACvD,oBAAoB,EAAE,GAAG,CAAC,4BAA4B;QACtD,WAAW,EAAE,GAAG,CAAC,QAAQ;QACzB,gBAAgB,EAAE,GAAG,CAAC,kBAAkB;QACxC,cAAc,EAAE,GAAG,CAAC,gBAAgB;QACpC,WAAW,EAAE,GAAG,CAAC,aAAa;QAC9B,WAAW,EAAE,GAAG,CAAC,aAAa;QAC9B,mBAAmB,EAAE,GAAG,CAAC,sBAAsB;QAC/C,mBAAmB,EAAE,GAAG,CAAC,uBAAuB;QAChD,YAAY,EAAE,GAAG,CAAC,cAAc;QAChC,qBAAqB,EAAE,GAAG,CAAC,yBAAyB;QACpD,uBAAuB,EAAE,GAAG,CAAC,4BAA4B;QACzD,gCAAgC,EAAE,GAAG,CAAC,qCAAqC;QAC3E,mBAAmB,EAAE,GAAG,CAAC,qBAAqB;QAC9C,4BAA4B,EAAE,GAAG,CAAC,gCAAgC;QAClE,wBAAwB,EAAE,GAAG,CAAC,4BAA4B;QAC1D,sBAAsB,EAAE,GAAG,CAAC,yBAAyB;QACrD,yBAAyB,EAAE,GAAG,CAAC,4BAA4B;QAC3D,uBAAuB,EAAE,GAAG,CAAC,2BAA2B;QACxD,iBAAiB,EAAE,GAAG,CAAC,mBAAmB,EAAE,KAAK,CAAC,GAAG,CAAC;aACnD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC;QAClB,gBAAgB,EAAE,GAAG,CAAC,mBAAmB;QACzC,oBAAoB,EAAE,GAAG,CAAC,uBAAuB;QACjD,sBAAsB,EAAE,GAAG,CAAC,yBAAyB;QACrD,WAAW,EAAE,GAAG,CAAC,aAAa;QAC9B,yBAAyB,EAAE,GAAG,CAAC,6BAA6B;QAC5D,cAAc,EAAE,GAAG,CAAC,gBAAgB;QACpC,YAAY,EAAE,GAAG,CAAC,cAAc;QAChC,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,mBAAmB,EAAE,GAAG,CAAC,sBAAsB;QAC/C,kBAAkB,EAAE,GAAG,CAAC,qBAAqB;QAC7C,2BAA2B,EAAE,GAAG,CAAC,8BAA8B;QAC/D,gBAAgB,EAAE,GAAG,CAAC,mBAAmB;QACzC,cAAc,EAAE,GAAG,CAAC,iBAAiB;QACrC,YAAY,EAAE,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACjE,gBAAgB,EAAE,GAAG,CAAC,kBAAkB;QACxC,iBAAiB,EAAE,GAAG,CAAC,mBAAmB;QAC1C,gBAAgB,EAAE,GAAG,CAAC,kBAAkB;QACxC,eAAe,EAAE,GAAG,CAAC,iBAAiB;QACtC,qBAAqB,EAAE,GAAG,CAAC,uBAAuB;QAClD,cAAc,EAAE,GAAG,CAAC,iBAAiB;QACrC,mBAAmB,EAAE,GAAG,CAAC,sBAAsB;QAC/C,cAAc,EAAE,GAAG,CAAC,iBAAiB;QACrC,cAAc,EAAE,GAAG,CAAC,iBAAiB;QACrC,QAAQ,EAAE,GAAG,CAAC,YAAY;YACxB,CAAC,CAAC;gBACE,GAAG,EAAE,GAAG,CAAC,YAAY;gBACrB,OAAO,EAAE,GAAG,CAAC,iBAAiB;gBAC9B,cAAc,EAAE,GAAG,CAAC,yBAAyB;aAC9C;YACH,CAAC,CAAC,SAAS;QACb,OAAO,EAAE;YACP,YAAY,EAAE,GAAG,CAAC,qBAAqB;YACvC,cAAc,EAAE,GAAG,CAAC,uBAAuB;SAC5C;QACD,MAAM,EAAE;YACN,YAAY,EAAE,GAAG,CAAC,oBAAoB;YACtC,oBAAoB,EAAE,GAAG,CAAC,8BAA8B;YACxD,cAAc,EAAE,GAAG,CAAC,kBAAkB;YACtC,YAAY,EAAE,GAAG,CAAC,gBAAgB;YAClC,oBAAoB,EAAE,GAAG,CAAC,8BAA8B;YACxD,KAAK,EAAE,GAAG,CAAC,aAAa;YACxB,aAAa,EAAE,GAAG,CAAC,sBAAsB;YACzC,iBAAiB,EAAE,GAAG,CAAC,0BAA0B;YACjD,eAAe,EAAE,GAAG,CAAC,wBAAwB;YAC7C,eAAe,EAAE,GAAG,CAAC,wBAAwB;SAC9C;QACD,aAAa,EAAE;YACb,OAAO,EAAE,GAAG,CAAC,YAAY;YACzB,WAAW,EAAE,GAAG,CAAC,iBAAiB;YAClC,cAAc,EAAE,GAAG,CAAC,oBAAoB;YACxC,cAAc,EAAE,kBAAkB,CAChC,GAAG,CAAC,kCAAkC,EACtC,GAAG,CAAC,2BAA2B,EAC/B,WAAW,CACZ;YACD,eAAe,EAAE,kBAAkB,CACjC,GAAG,CAAC,mCAAmC,EACvC,GAAG,CAAC,2BAA2B,EAC/B,YAAY,CACb;YACD,YAAY,EAAE,GAAG,CAAC,gCAAgC;YAClD,aAAa,EAAE,GAAG,CAAC,uBAAuB;YAC1C,QAAQ,EAAE,GAAG,CAAC,cAAc;SAC7B;QACD,MAAM,EACJ,GAAG,CAAC,kBAAkB,IAAI,GAAG,CAAC,kBAAkB;YAC9C,CAAC,CAAC;gBACE,GAAG,EAAE,GAAG,CAAC,kBAAkB;oBACzB,CAAC,CAAC;wBACE,OAAO,EAAE,GAAG,CAAC,kBAAkB;wBAC/B,QAAQ,EAAE,GAAG,CAAC,mBAAmB;wBACjC,MAAM,EAAE,GAAG,CAAC,kBAAkB;wBAC9B,OAAO,EAAE,GAAG,CAAC,mBAAmB;wBAChC,cAAc,EAAE,GAAG,CAAC,2BAA2B;wBAC/C,cAAc,EAAE,GAAG,CAAC,2BAA2B;wBAC/C,OAAO,EAAE,GAAG,CAAC,kBAAkB;qBAChC;oBACH,CAAC,CAAC,SAAS;gBACb,GAAG,EAAE,GAAG,CAAC,kBAAkB;oBACzB,CAAC,CAAC;wBACE,OAAO,EAAE,GAAG,CAAC,kBAAkB;wBAC/B,QAAQ,EAAE,GAAG,CAAC,mBAAmB;wBACjC,MAAM,EAAE,GAAG,CAAC,kBAAkB;wBAC9B,OAAO,EAAE,GAAG,CAAC,mBAAmB;wBAChC,cAAc,EAAE,GAAG,CAAC,2BAA2B;wBAC/C,OAAO,EAAE,GAAG,CAAC,kBAAkB;qBAChC;oBACH,CAAC,CAAC,SAAS;aACd;YACH,CAAC,CAAC,SAAS;QACf,qEAAqE;QACrE,aAAa,EAAE,GAAG,CAAC,eAAe;QAClC,gBAAgB,EAAE,GAAG,CAAC,kBAAkB;QACxC,oBAAoB,EAAE,GAAG,CAAC,sBAAsB;QAChD,iBAAiB,EAAE,GAAG,CAAC,mBAAmB;KAC3C,CAAC;IAEF,oEAAoE;IACpE,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;QACzB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAClC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QACxC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAChC,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAEjD,uEAAuE;IACvE,MAAM,cAAc,GAAG;QACrB,GAAG,SAAS;QACZ,GAAG,EAAE,SAAS;QACd,QAAQ,EACN,WAAW,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY;YAC7C,CAAC,CAAC,CAAC,GAAG,EAAE;gBACJ,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,IAAI,MAAM,CAAC;gBAC7C,IAAI,UAAU,CAAC,OAAO,CAAC;oBAAE,OAAO,OAAO,CAAC;gBACxC,kEAAkE;gBAClE,kEAAkE;gBAClE,0CAA0C;gBAC1C,OAAO,IAAI,CAAC,cAAc,EAAE,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;YAC/D,CAAC,CAAC,EAAE;YACN,CAAC,CAAC,SAAS;QACf,aAAa,EAAE,GAAG,CAAC,eAAe,IAAI,SAAS,CAAC,IAAI;QACpD,gBAAgB,EAAE,GAAG,CAAC,kBAAkB,IAAI,SAAS,CAAC,OAAO;QAC7D,oBAAoB,EAAE,GAAG,CAAC,sBAAsB,IAAI,SAAS,CAAC,WAAW;QACzE,iBAAiB,EAAE,SAAS,CAAC,QAAQ;QACrC,iBAAiB,EAAE,GAAG,CAAC,mBAAmB,EAAE,8CAA8C;QAC1F,aAAa,EAAE;YACb,GAAG,SAAS,CAAC,aAAa;YAC1B,WAAW,EAAE,GAAG,CAAC,iBAAiB,IAAI,SAAS,CAAC,IAAI;YACpD,cAAc,EAAE,GAAG,CAAC,oBAAoB,IAAI,SAAS,CAAC,OAAO;SAC9D;QACD,iBAAiB,EAAE,GAAG,CAAC,mBAAmB,IAAI,SAAS,CAAC,IAAI;KAC7D,CAAC;IAEF,MAAM,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAE5D,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC1B,6DAA6D;QAC7D,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CACX,yEAAyE,EACzE,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,WAAW,CACzC,CAAC;QACJ,CAAC;QACD,oDAAoD;QACpD,MAAM,kBAAkB,CAAC,oCAAoC,EAAE;YAC7D,gBAAgB,EAAE,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,WAAW;SAC3D,CAAC,CAAC;IACL,CAAC;IAED,OAAO,YAAY,CAAC,IAAI,CAAC;AAC3B,CAAC,CAAC;AAEF,IAAI,OAA8B,CAAC;AAEnC;;;;;;;;GAQG;AACH,MAAM,WAAW,GAAG,CAAC,YAAiD,EAAQ,EAAE;IAC9E,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,EAAe,EAAE;IACxC,GAAG,CAAC,OAAO,EAAE,IAAI;QACf,OAAO,KAAK,WAAW,EAAE,CAAC;QAC1B,OAAQ,OAA4C,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;IACD,GAAG;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,cAAc;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;IACD,GAAG,CAAC,OAAO,EAAE,IAAI;QACf,OAAO,KAAK,WAAW,EAAE,CAAC;QAC1B,OAAO,IAAI,IAAI,OAAO,CAAC;IACzB,CAAC;IACD,OAAO;QACL,OAAO,KAAK,WAAW,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IACD,wBAAwB,CAAC,OAAO,EAAE,IAAI;QACpC,OAAO,KAAK,WAAW,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;CACF,CAAC,CAAC;AAOH;;;;;;GAMG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
|
package/dist/core/app.d.ts
CHANGED
|
@@ -117,8 +117,11 @@ export interface CreateAppOptions<TSupabaseClient extends object = SupabaseClien
|
|
|
117
117
|
icons?: Implementation['icons'];
|
|
118
118
|
/**
|
|
119
119
|
* Switches for the pre-validation step every `tools/call` argument object
|
|
120
|
-
* passes through: dropping client-added root keys, rewriting key
|
|
121
|
-
*
|
|
120
|
+
* passes through: dropping client-added root keys, then rewriting key
|
|
121
|
+
* aliases, and, after a failed parse, repairing a JSON-stringified array or
|
|
122
|
+
* object or an integer sent for a string. When that still fails and the drop
|
|
123
|
+
* discarded a key, the stages rerun alias-first, kept only if the call then
|
|
124
|
+
* validates.
|
|
122
125
|
*
|
|
123
126
|
* Every stage is on with no configuration. An entry here either extends a
|
|
124
127
|
* stage or turns it off for the whole server; nothing about the advertised
|
|
@@ -129,7 +132,7 @@ export interface CreateAppOptions<TSupabaseClient extends object = SupabaseClien
|
|
|
129
132
|
* input: {
|
|
130
133
|
* ignoreKeys: ['some_client_field'], // adds to the built-in list; `false` disables the stage
|
|
131
134
|
* caseStyleAliases: false, // declared `inputAliases` only
|
|
132
|
-
* coerce: false, // never
|
|
135
|
+
* coerce: false, // never repair an argument value
|
|
133
136
|
* }
|
|
134
137
|
* ```
|
|
135
138
|
*/
|
package/dist/core/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/core/app.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,MAAM,EAA6B,MAAM,mBAAmB,CAAC;AAEtE,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAyB,KAAK,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAGpF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAE1F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAC;AAEhG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AAG1E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AAK3F,OAAO,EACL,KAAK,sBAAsB,EAE3B,KAAK,WAAW,EACjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAExE,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAKlE,OAAO,EAAE,MAAM,EAAoB,MAAM,4BAA4B,CAAC;AAKtE,OAAO,EAAwB,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAQpF;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;;;;OASG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC;AAc1C,kEAAkE;AAClE,MAAM,WAAW,gBAAgB,CAAC,eAAe,SAAS,MAAM,GAAG,oBAAoB;IACrF;;;;;;;;;;;;;;;;;;;OAmBG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,iEAAiE;IACjE,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAChC
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/core/app.ts"],"names":[],"mappings":"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"}
|
package/dist/core/app.js
CHANGED
|
@@ -540,10 +540,12 @@ export async function createApp(options = {}) {
|
|
|
540
540
|
};
|
|
541
541
|
/**
|
|
542
542
|
* Stdin EOF is a stdio client hanging up — a transport disconnect, handled
|
|
543
|
-
* like a signal.
|
|
544
|
-
*
|
|
545
|
-
*
|
|
546
|
-
*
|
|
543
|
+
* like a signal. The SDK transport closes itself on the same EOF, aborting
|
|
544
|
+
* requests still in flight, but that is the connection alone. Left
|
|
545
|
+
* unobserved, the process instead runs out of ref'd handles and drains:
|
|
546
|
+
* shutdown never runs, the OTel export never leaves, and a handle server
|
|
547
|
+
* code forgot to `unref()` keeps the server resident long after its client
|
|
548
|
+
* is gone (#322).
|
|
547
549
|
*
|
|
548
550
|
* The backstop is ref'd, unlike `fatalShutdown`'s. It holds the loop open for
|
|
549
551
|
* the duration — that same drain would otherwise exit mid-cleanup — and caps
|