@cyanheads/mcp-ts-core 0.10.2 → 0.10.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 (74) hide show
  1. package/AGENTS.md +14 -8
  2. package/CLAUDE.md +14 -8
  3. package/README.md +5 -6
  4. package/changelog/0.10.x/0.10.2.md +4 -4
  5. package/changelog/0.10.x/0.10.3.md +46 -0
  6. package/dist/core/app.d.ts +36 -0
  7. package/dist/core/app.d.ts.map +1 -1
  8. package/dist/core/app.js +9 -4
  9. package/dist/core/app.js.map +1 -1
  10. package/dist/core/context.d.ts +35 -15
  11. package/dist/core/context.d.ts.map +1 -1
  12. package/dist/core/context.js +0 -1
  13. package/dist/core/context.js.map +1 -1
  14. package/dist/core/index.d.ts +5 -2
  15. package/dist/core/index.d.ts.map +1 -1
  16. package/dist/core/index.js +1 -0
  17. package/dist/core/index.js.map +1 -1
  18. package/dist/core/serverManifest.d.ts +18 -0
  19. package/dist/core/serverManifest.d.ts.map +1 -1
  20. package/dist/core/serverManifest.js +10 -2
  21. package/dist/core/serverManifest.js.map +1 -1
  22. package/dist/logs/combined.log +4 -4
  23. package/dist/logs/error.log +2 -2
  24. package/dist/mcp-server/notifications.d.ts +4 -4
  25. package/dist/mcp-server/prompts/prompt-registration.d.ts.map +1 -1
  26. package/dist/mcp-server/prompts/prompt-registration.js +1 -0
  27. package/dist/mcp-server/prompts/prompt-registration.js.map +1 -1
  28. package/dist/mcp-server/prompts/utils/promptDefinition.d.ts +6 -0
  29. package/dist/mcp-server/prompts/utils/promptDefinition.d.ts.map +1 -1
  30. package/dist/mcp-server/prompts/utils/promptDefinition.js.map +1 -1
  31. package/dist/mcp-server/resources/resource-registration.d.ts.map +1 -1
  32. package/dist/mcp-server/resources/resource-registration.js +3 -0
  33. package/dist/mcp-server/resources/resource-registration.js.map +1 -1
  34. package/dist/mcp-server/resources/utils/resourceDefinition.d.ts +9 -0
  35. package/dist/mcp-server/resources/utils/resourceDefinition.d.ts.map +1 -1
  36. package/dist/mcp-server/resources/utils/resourceDefinition.js.map +1 -1
  37. package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts +13 -2
  38. package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts.map +1 -1
  39. package/dist/mcp-server/resources/utils/resourceHandlerFactory.js +23 -12
  40. package/dist/mcp-server/resources/utils/resourceHandlerFactory.js.map +1 -1
  41. package/dist/mcp-server/server.d.ts +18 -2
  42. package/dist/mcp-server/server.d.ts.map +1 -1
  43. package/dist/mcp-server/server.js +4 -1
  44. package/dist/mcp-server/server.js.map +1 -1
  45. package/dist/mcp-server/tools/tool-registration.d.ts.map +1 -1
  46. package/dist/mcp-server/tools/tool-registration.js +2 -0
  47. package/dist/mcp-server/tools/tool-registration.js.map +1 -1
  48. package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts +14 -2
  49. package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts.map +1 -1
  50. package/dist/mcp-server/tools/utils/toolHandlerFactory.js +37 -13
  51. package/dist/mcp-server/tools/utils/toolHandlerFactory.js.map +1 -1
  52. package/dist/testing/index.d.ts +8 -14
  53. package/dist/testing/index.d.ts.map +1 -1
  54. package/dist/testing/index.js +10 -11
  55. package/dist/testing/index.js.map +1 -1
  56. package/package.json +2 -2
  57. package/skills/add-prompt/SKILL.md +33 -2
  58. package/skills/add-resource/SKILL.md +25 -1
  59. package/skills/add-service/SKILL.md +2 -2
  60. package/skills/add-test/SKILL.md +3 -3
  61. package/skills/api-config/SKILL.md +12 -3
  62. package/skills/api-context/SKILL.md +17 -31
  63. package/skills/api-testing/SKILL.md +2 -16
  64. package/skills/code-simplifier/SKILL.md +2 -2
  65. package/skills/polish-docs-meta/SKILL.md +1 -1
  66. package/skills/polish-docs-meta/references/agent-protocol.md +1 -1
  67. package/skills/report-issue-framework/SKILL.md +2 -2
  68. package/skills/security-pass/SKILL.md +6 -11
  69. package/templates/AGENTS.md +17 -5
  70. package/templates/CLAUDE.md +17 -5
  71. package/dist/mcp-server/roots/roots-registration.d.ts +0 -22
  72. package/dist/mcp-server/roots/roots-registration.d.ts.map +0 -1
  73. package/dist/mcp-server/roots/roots-registration.js +0 -25
  74. package/dist/mcp-server/roots/roots-registration.js.map +0 -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.10.2
4
+ **Version:** 0.10.3
5
5
  **Engines:** Bun ≥1.3.0, Node ≥24.0.0
6
6
  **MCP SDK:** `@modelcontextprotocol/sdk` ^1.29.0
7
7
  **Zod:** ^4.4.3
@@ -30,7 +30,7 @@ Both paths share the same public API. Init copies starter `package.json`, config
30
30
 
31
31
  - **Logic throws, framework catches.** Pure, stateless `handler` functions, no `try/catch`. Plain `Error` works — framework catches, classifies, formats. Use `McpError(code, message, data, options?)` only when you need a specific JSON-RPC code or structured data; 4th arg `{ cause }` chains.
32
32
  - **Full-stack observability.** The framework automatically instruments every tool/resource call — OTel span, duration/payload/memory metrics, structured completion log. Use `ctx.log` for additional domain-specific logging within handlers (external API calls, multi-step operations, business events). `requestId`, `traceId`, `tenantId` auto-correlated. No `console` calls.
33
- - **Unified Context.** Handlers receive `ctx` with logging (`ctx.log`), tenant-scoped storage (`ctx.state`), optional protocol capabilities (`ctx.elicit`, `ctx.sample`), and cancellation (`ctx.signal`).
33
+ - **Unified Context.** Handlers receive `ctx` with logging (`ctx.log`), tenant-scoped storage (`ctx.state`), optional protocol capabilities (`ctx.elicit`), and cancellation (`ctx.signal`).
34
34
  - **Decoupled storage.** `ctx.state` for tenant-scoped KV. Never access persistence backends directly.
35
35
  - **Canvas tokens are capabilities, not tenant-scoped state.** A `canvasId` is a 10-char URL-safe token; possession grants full read/write/drop. Shareable between agents and across users in single-tenant deployments. Tools accept token in `input` (omit to create fresh) and return in `output`; collaboration is opt-in via token exchange.
36
36
  - **Runtime parity.** All features work across `stdio`/`http`/Worker. Guard non-portable deps via `runtimeCaps` from `/utils` (`isNode`, `isBun`, `isWorkerLike`, `hasBuffer`, `hasProcess`, etc.). Prefer runtime-agnostic abstractions (Hono, Fetch APIs).
@@ -44,7 +44,7 @@ Both paths share the same public API. Init copies starter `package.json`, config
44
44
 
45
45
  | Subpath | Key Exports | Purpose |
46
46
  |:--------|:------------|:--------|
47
- | `@cyanheads/mcp-ts-core` | `createApp`, `tool`, `resource`, `prompt`, `appTool`, `appResource`, `APP_RESOURCE_MIME_TYPE`, `Context`, `createFail`, `createRecoveryFor`, `TypedFail`, `TypedRecoveryFor`, `ReasonOf`, `HandlerContext`, `Enrich`, `EnrichHelpers`, `TypedEnrich`, `z` | Main entry point |
47
+ | `@cyanheads/mcp-ts-core` | `createApp`, `tool`, `resource`, `prompt`, `appTool`, `appResource`, `APP_RESOURCE_MIME_TYPE`, `Context`, `createFail`, `createRecoveryFor`, `TypedFail`, `TypedRecoveryFor`, `ReasonOf`, `HandlerContext`, `Enrich`, `EnrichHelpers`, `TypedEnrich`, `z`, `completable`, `isCompletable`, `CompleteCallback`, `CompleteResourceTemplateCallback` | Main entry point |
48
48
  | `/worker` | `createWorkerHandler`, `CloudflareBindings` | Cloudflare Workers entry |
49
49
  | `/tools` | `ToolDefinition`, `AnyToolDefinition`, `ToolAnnotations` | Tool definition types |
50
50
  | `/resources` | `ResourceDefinition`, `AnyResourceDefinition` | Resource definition types |
@@ -93,6 +93,9 @@ import { allPromptDefinitions } from './mcp-server/prompts/index.js';
93
93
  await createApp({
94
94
  name: 'my-mcp-server', // overrides package.json / MCP_SERVER_NAME
95
95
  version: '0.1.0', // overrides package.json / MCP_SERVER_VERSION
96
+ title: 'My Server', // optional identity (SEP-973): display name for client UIs
97
+ websiteUrl: 'https://github.com/owner/my-mcp-server',
98
+ icons: [{ src: 'https://example.com/icon.png', sizes: ['48x48'], mimeType: 'image/png' }],
96
99
  tools: allToolDefinitions,
97
100
  resources: allResourceDefinitions,
98
101
  prompts: allPromptDefinitions,
@@ -110,6 +113,8 @@ await createApp({
110
113
 
111
114
  **`instructions`** — Optional server-level orientation, surfaced on every `initialize` response as session-level system context. Use for deployment-specific guidance (connection aliases, regional notes, scope hints) instead of repeating in tool descriptions. Client adoption uneven but no downside when set.
112
115
 
116
+ **Identity fields** — Optional `title`, `websiteUrl`, `description`, `icons` (SEP-973) pass through to the SDK's `initialize` serverInfo and to the server manifest, keeping the `/.well-known/mcp.json` server card and landing page consistent with what `initialize` reports. Explicit `description` wins over `MCP_SERVER_DESCRIPTION`/package.json.
117
+
113
118
  ### Cloudflare Workers — `createWorkerHandler(options)`
114
119
 
115
120
  ```ts
@@ -274,8 +279,7 @@ interface Context {
274
279
  readonly auth?: AuthContext;
275
280
  readonly log: ContextLogger; // auto-correlated: requestId, traceId, tenantId
276
281
  readonly state: ContextState; // tenant-scoped KV storage
277
- readonly elicit?: (message: string, schema: z.ZodObject<any>) => Promise<ElicitResult>;
278
- readonly sample?: (messages: SamplingMessage[], opts?: SamplingOpts) => Promise<CreateMessageResult>;
282
+ readonly elicit?: ElicitFn; // form call (message, schema) + .url(message, url); present iff client advertises elicitation
279
283
  readonly notifyResourceListChanged?: (() => void) | undefined; // resource list changed
280
284
  readonly notifyResourceUpdated?: ((uri: string) => void) | undefined; // resource content changed
281
285
  readonly signal: AbortSignal; // cancellation
@@ -312,7 +316,7 @@ Throws `McpError(InvalidRequest)` if `tenantId` missing. Tenant ID resolution:
312
316
  | HTTP + `MCP_AUTH_MODE=none` | `'default'` (single-tenant by design) |
313
317
  | HTTP + `MCP_AUTH_MODE=jwt`/`oauth` | JWT `'tid'` claim — fail-closed if absent |
314
318
 
315
- ### `ctx.elicit` / `ctx.sample`
319
+ ### `ctx.elicit`
316
320
 
317
321
  Check for presence before calling:
318
322
 
@@ -325,6 +329,8 @@ if (ctx.elicit) {
325
329
  }
326
330
  ```
327
331
 
332
+ URL mode: `await ctx.elicit.url('Authorize access', 'https://example.com/authorize')` — hands the user an external link instead of a form. `elicitationId` is generated internally; `content` is absent, only `action` reports the outcome.
333
+
328
334
  ### `ctx.progress`
329
335
 
330
336
  Present when `task: true`. Methods: `setTotal(n)`, `increment(amount?)`, `update(message)`.
@@ -438,7 +444,7 @@ describe('myTool', () => {
438
444
  });
439
445
  ```
440
446
 
441
- **`createMockContext` options:** `createMockContext()` (minimal), `{ tenantId: 'test-tenant' }` (enables state), `{ sample: vi.fn() }`, `{ elicit: vi.fn() }`, `{ progress: true }` (task progress).
447
+ **`createMockContext` options:** `createMockContext()` (minimal), `{ tenantId: 'test-tenant' }` (enables state), `{ elicit: vi.fn() }`, `{ progress: true }` (task progress).
442
448
 
443
449
  **Fuzz testing:** `fuzzTool`/`fuzzResource`/`fuzzPrompt` from `/testing/fuzz` generate valid and adversarial inputs from Zod schemas via `fast-check`, then assert handler invariants (no crashes, no prototype pollution, no stack trace leaks). Returns a `FuzzReport` for custom assertions.
444
450
 
@@ -485,7 +491,7 @@ Skills live in `skills/<name>/SKILL.md`. Read the relevant skill before starting
485
491
  - **Builders:** `tool()`/`resource()`/`prompt()` with correct fields (`handler`, `input`, `output`, `format`, `auth`, `args`)
486
492
  - **`format()` completeness:** must carry the same data as `output` (parity is lint-enforced — see Adding a Tool)
487
493
  - **Auth:** via `auth: ['scope']` on definitions (not HOF wrapper)
488
- - **Presence checks:** `ctx.elicit`/`ctx.sample` checked before use
494
+ - **Presence checks:** `ctx.elicit` checked before use
489
495
  - **Task tools:** use `task: true` flag
490
496
  - **Pagination:** large resource lists use `extractCursor`/`paginateArray`
491
497
  - **Registration:** definitions exported in `definitions/index.ts` barrel
package/CLAUDE.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Developer Protocol
2
2
 
3
3
  **Package:** `@cyanheads/mcp-ts-core`
4
- **Version:** 0.10.2
4
+ **Version:** 0.10.3
5
5
  **Engines:** Bun ≥1.3.0, Node ≥24.0.0
6
6
  **MCP SDK:** `@modelcontextprotocol/sdk` ^1.29.0
7
7
  **Zod:** ^4.4.3
@@ -30,7 +30,7 @@ Both paths share the same public API. Init copies starter `package.json`, config
30
30
 
31
31
  - **Logic throws, framework catches.** Pure, stateless `handler` functions, no `try/catch`. Plain `Error` works — framework catches, classifies, formats. Use `McpError(code, message, data, options?)` only when you need a specific JSON-RPC code or structured data; 4th arg `{ cause }` chains.
32
32
  - **Full-stack observability.** The framework automatically instruments every tool/resource call — OTel span, duration/payload/memory metrics, structured completion log. Use `ctx.log` for additional domain-specific logging within handlers (external API calls, multi-step operations, business events). `requestId`, `traceId`, `tenantId` auto-correlated. No `console` calls.
33
- - **Unified Context.** Handlers receive `ctx` with logging (`ctx.log`), tenant-scoped storage (`ctx.state`), optional protocol capabilities (`ctx.elicit`, `ctx.sample`), and cancellation (`ctx.signal`).
33
+ - **Unified Context.** Handlers receive `ctx` with logging (`ctx.log`), tenant-scoped storage (`ctx.state`), optional protocol capabilities (`ctx.elicit`), and cancellation (`ctx.signal`).
34
34
  - **Decoupled storage.** `ctx.state` for tenant-scoped KV. Never access persistence backends directly.
35
35
  - **Canvas tokens are capabilities, not tenant-scoped state.** A `canvasId` is a 10-char URL-safe token; possession grants full read/write/drop. Shareable between agents and across users in single-tenant deployments. Tools accept token in `input` (omit to create fresh) and return in `output`; collaboration is opt-in via token exchange.
36
36
  - **Runtime parity.** All features work across `stdio`/`http`/Worker. Guard non-portable deps via `runtimeCaps` from `/utils` (`isNode`, `isBun`, `isWorkerLike`, `hasBuffer`, `hasProcess`, etc.). Prefer runtime-agnostic abstractions (Hono, Fetch APIs).
@@ -44,7 +44,7 @@ Both paths share the same public API. Init copies starter `package.json`, config
44
44
 
45
45
  | Subpath | Key Exports | Purpose |
46
46
  |:--------|:------------|:--------|
47
- | `@cyanheads/mcp-ts-core` | `createApp`, `tool`, `resource`, `prompt`, `appTool`, `appResource`, `APP_RESOURCE_MIME_TYPE`, `Context`, `createFail`, `createRecoveryFor`, `TypedFail`, `TypedRecoveryFor`, `ReasonOf`, `HandlerContext`, `Enrich`, `EnrichHelpers`, `TypedEnrich`, `z` | Main entry point |
47
+ | `@cyanheads/mcp-ts-core` | `createApp`, `tool`, `resource`, `prompt`, `appTool`, `appResource`, `APP_RESOURCE_MIME_TYPE`, `Context`, `createFail`, `createRecoveryFor`, `TypedFail`, `TypedRecoveryFor`, `ReasonOf`, `HandlerContext`, `Enrich`, `EnrichHelpers`, `TypedEnrich`, `z`, `completable`, `isCompletable`, `CompleteCallback`, `CompleteResourceTemplateCallback` | Main entry point |
48
48
  | `/worker` | `createWorkerHandler`, `CloudflareBindings` | Cloudflare Workers entry |
49
49
  | `/tools` | `ToolDefinition`, `AnyToolDefinition`, `ToolAnnotations` | Tool definition types |
50
50
  | `/resources` | `ResourceDefinition`, `AnyResourceDefinition` | Resource definition types |
@@ -93,6 +93,9 @@ import { allPromptDefinitions } from './mcp-server/prompts/index.js';
93
93
  await createApp({
94
94
  name: 'my-mcp-server', // overrides package.json / MCP_SERVER_NAME
95
95
  version: '0.1.0', // overrides package.json / MCP_SERVER_VERSION
96
+ title: 'My Server', // optional identity (SEP-973): display name for client UIs
97
+ websiteUrl: 'https://github.com/owner/my-mcp-server',
98
+ icons: [{ src: 'https://example.com/icon.png', sizes: ['48x48'], mimeType: 'image/png' }],
96
99
  tools: allToolDefinitions,
97
100
  resources: allResourceDefinitions,
98
101
  prompts: allPromptDefinitions,
@@ -110,6 +113,8 @@ await createApp({
110
113
 
111
114
  **`instructions`** — Optional server-level orientation, surfaced on every `initialize` response as session-level system context. Use for deployment-specific guidance (connection aliases, regional notes, scope hints) instead of repeating in tool descriptions. Client adoption uneven but no downside when set.
112
115
 
116
+ **Identity fields** — Optional `title`, `websiteUrl`, `description`, `icons` (SEP-973) pass through to the SDK's `initialize` serverInfo and to the server manifest, keeping the `/.well-known/mcp.json` server card and landing page consistent with what `initialize` reports. Explicit `description` wins over `MCP_SERVER_DESCRIPTION`/package.json.
117
+
113
118
  ### Cloudflare Workers — `createWorkerHandler(options)`
114
119
 
115
120
  ```ts
@@ -274,8 +279,7 @@ interface Context {
274
279
  readonly auth?: AuthContext;
275
280
  readonly log: ContextLogger; // auto-correlated: requestId, traceId, tenantId
276
281
  readonly state: ContextState; // tenant-scoped KV storage
277
- readonly elicit?: (message: string, schema: z.ZodObject<any>) => Promise<ElicitResult>;
278
- readonly sample?: (messages: SamplingMessage[], opts?: SamplingOpts) => Promise<CreateMessageResult>;
282
+ readonly elicit?: ElicitFn; // form call (message, schema) + .url(message, url); present iff client advertises elicitation
279
283
  readonly notifyResourceListChanged?: (() => void) | undefined; // resource list changed
280
284
  readonly notifyResourceUpdated?: ((uri: string) => void) | undefined; // resource content changed
281
285
  readonly signal: AbortSignal; // cancellation
@@ -312,7 +316,7 @@ Throws `McpError(InvalidRequest)` if `tenantId` missing. Tenant ID resolution:
312
316
  | HTTP + `MCP_AUTH_MODE=none` | `'default'` (single-tenant by design) |
313
317
  | HTTP + `MCP_AUTH_MODE=jwt`/`oauth` | JWT `'tid'` claim — fail-closed if absent |
314
318
 
315
- ### `ctx.elicit` / `ctx.sample`
319
+ ### `ctx.elicit`
316
320
 
317
321
  Check for presence before calling:
318
322
 
@@ -325,6 +329,8 @@ if (ctx.elicit) {
325
329
  }
326
330
  ```
327
331
 
332
+ URL mode: `await ctx.elicit.url('Authorize access', 'https://example.com/authorize')` — hands the user an external link instead of a form. `elicitationId` is generated internally; `content` is absent, only `action` reports the outcome.
333
+
328
334
  ### `ctx.progress`
329
335
 
330
336
  Present when `task: true`. Methods: `setTotal(n)`, `increment(amount?)`, `update(message)`.
@@ -438,7 +444,7 @@ describe('myTool', () => {
438
444
  });
439
445
  ```
440
446
 
441
- **`createMockContext` options:** `createMockContext()` (minimal), `{ tenantId: 'test-tenant' }` (enables state), `{ sample: vi.fn() }`, `{ elicit: vi.fn() }`, `{ progress: true }` (task progress).
447
+ **`createMockContext` options:** `createMockContext()` (minimal), `{ tenantId: 'test-tenant' }` (enables state), `{ elicit: vi.fn() }`, `{ progress: true }` (task progress).
442
448
 
443
449
  **Fuzz testing:** `fuzzTool`/`fuzzResource`/`fuzzPrompt` from `/testing/fuzz` generate valid and adversarial inputs from Zod schemas via `fast-check`, then assert handler invariants (no crashes, no prototype pollution, no stack trace leaks). Returns a `FuzzReport` for custom assertions.
444
450
 
@@ -485,7 +491,7 @@ Skills live in `skills/<name>/SKILL.md`. Read the relevant skill before starting
485
491
  - **Builders:** `tool()`/`resource()`/`prompt()` with correct fields (`handler`, `input`, `output`, `format`, `auth`, `args`)
486
492
  - **`format()` completeness:** must carry the same data as `output` (parity is lint-enforced — see Adding a Tool)
487
493
  - **Auth:** via `auth: ['scope']` on definitions (not HOF wrapper)
488
- - **Presence checks:** `ctx.elicit`/`ctx.sample` checked before use
494
+ - **Presence checks:** `ctx.elicit` checked before use
489
495
  - **Task tools:** use `task: true` flag
490
496
  - **Pagination:** large resource lists use `extractCursor`/`paginateArray`
491
497
  - **Registration:** definitions exported in `definitions/index.ts` barrel
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.10.2-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.10.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.29.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![TypeScript](https://img.shields.io/badge/TypeScript-^6.0.3-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
 
@@ -138,7 +138,8 @@ It also works on Cloudflare Workers with `createWorkerHandler()` — same defini
138
138
 
139
139
  - **Declarative definitions** — `tool()`, `resource()`, `prompt()` builders with Zod schemas; `appTool()`/`appResource()` add interactive HTML UIs.
140
140
  - **Server-level orientation** — `instructions` on `createApp`/`createWorkerHandler` rides every `initialize` for the model. Cross-tool composition hints, regional notes, scope guidance — without leaking text into every tool description.
141
- - **Unified Context** — one `ctx` for logging, tenant-scoped storage, elicitation, sampling, cancellation, and task progress.
141
+ - **Server identity** — optional `title`, `websiteUrl`, `description`, `icons` (SEP-973) on `createApp`/`createWorkerHandler` flow to `initialize` serverInfo, the `/.well-known/mcp.json` server card, and the landing page.
142
+ - **Unified Context** — one `ctx` for logging, tenant-scoped storage, elicitation, cancellation, and task progress.
142
143
  - **Auth** — `auth: ['scope']` on definitions, checked before dispatch (no wrapper code). Modes: `none`, `jwt`, or `oauth` (local secret or JWKS).
143
144
  - **Task tools** — `task: true` for long-running ops; framework manages create/poll/progress/complete/cancel.
144
145
  - **Definition linter** — validates names, schemas, auth scopes, annotations, format-parity, and cross-vendor JSON Schema portability at build time. Run via `lint:mcp` or `devcheck` — not invoked at server startup.
@@ -216,8 +217,7 @@ Handlers receive a unified `Context` object:
216
217
  |:---------|:-----|:------------|
217
218
  | `ctx.log` | `ContextLogger` | Request-scoped logger (auto-correlates requestId, traceId, tenantId) |
218
219
  | `ctx.state` | `ContextState` | Tenant-scoped key-value storage |
219
- | `ctx.elicit` | `Function?` | Ask the user for input (when client supports it) |
220
- | `ctx.sample` | `Function?` | Request LLM completion from the client |
220
+ | `ctx.elicit` | `ElicitFn?` | Ask the user for input — form schema, or `.url()` for an external link (when client supports it) |
221
221
  | `ctx.fail` | `(reason, msg?, data?) => McpError` | Typed error throw — reason checked against `errors[]` contract at compile time |
222
222
  | `ctx.signal` | `AbortSignal` | Cancellation signal |
223
223
  | `ctx.notifyResourceUpdated` | `Function?` | Notify subscribed clients a resource changed |
@@ -254,7 +254,6 @@ The `examples/` directory contains a reference server consuming core through pub
254
254
  | `template_echo_message` | Basic tool with `format`, `auth` |
255
255
  | `template_cat_fact` | External API call, error factories |
256
256
  | `template_madlibs_elicitation` | `ctx.elicit` for interactive input |
257
- | `template_code_review_sampling` | `ctx.sample` for LLM completion |
258
257
  | `template_image_test` | Image content blocks |
259
258
  | `template_async_countdown` | `task: true` with `ctx.progress` |
260
259
  | `template_data_explorer` | MCP Apps with linked UI resource via `appTool()`/`appResource()` builders |
@@ -270,7 +269,7 @@ const input = myTool.input.parse({ query: 'test' });
270
269
  const result = await myTool.handler(input, ctx);
271
270
  ```
272
271
 
273
- `createMockContext()` provides stubbed `log`, `state`, and `signal`. Pass `{ tenantId }` for state operations, `{ sample }` for LLM mocking, `{ elicit }` for elicitation mocking, `{ progress: true }` for task tools.
272
+ `createMockContext()` provides stubbed `log`, `state`, and `signal`. Pass `{ tenantId }` for state operations, `{ elicit }` for elicitation mocking, `{ progress: true }` for task tools.
274
273
 
275
274
  ### Fuzz testing
276
275
 
@@ -18,12 +18,12 @@ agent-notes: |
18
18
  - **`QueryOptions.ttlMs` with `registerAs`** — when a query result is materialized into a named table, `ttlMs` sets its TTL; the sweep drops expired tables before the canvas-level check.
19
19
  - **`SpilloverOptions.ttlMs` passthrough** — spillover-created tables inherit `ttlMs` from the spillover options.
20
20
  - **`TableInfo.expiresAt`** — ISO 8601 expiry field on table metadata; set only for TTL'd tables; surfaced via `describe()`.
21
- - **Sliding TTL** — re-registering a named table resets its timer; re-registering without `ttlMs` clears the prior TTL. Failed drops are retried on the next sweep.
21
+ - **Sliding TTL** — the per-table window slides on reads and writes against that table (`registerTable`, SQL references in `query()`, `export`); re-registering without `ttlMs` clears the prior TTL. Failed sweep drops are retried on the next pass.
22
22
  - **`ctx.enrich.truncated({ shown, cap, ceiling?, guidance? })`** helper ([#197](https://github.com/cyanheads/mcp-ts-core/issues/197)) — writes `truncated`, `shown`, `cap`, `truncationCeiling?` enrichment values plus a `notice` (last-wins); eliminates boilerplate in cap-bounded list tools.
23
23
  - **`canvas-consumer-missing` lint rule** (warning) ([#209](https://github.com/cyanheads/mcp-ts-core/issues/209)) — fires when a tool outputs a canvas token with no `*_dataframe_query`-style consumer in the definition set. Knobs: `LintInput.canvasConsumers` (array literal or `false`) / `MCP_LINT_CANVAS_CONSUMERS` (CSV; `false` disables). Programmatic knob wins.
24
- - **`capped-list-no-truncation` lint rule** (warning) ([#197](https://github.com/cyanheads/mcp-ts-core/issues/197)) — fires when a tool has a cap-like input (`limit`/`max`/`count`/`pageSize`), an array output, and no `truncated`/`totalCount` disclosure. Knobs: `LintInput.truncationAllowlist` (tool names) / `MCP_LINT_TRUNCATION_ALLOWLIST` (CSV). Programmatic knob wins.
25
- - **Scaffold `Dockerfile` pre-creates writable data dirs** ([#199](https://github.com/cyanheads/mcp-ts-core/issues/199)) — `RUN mkdir -p /app/.cache /app/.mirror && chown node:node ...` ensures on-disk SQLite stores (`MirrorService`, `DuckdbProvider` disk mode) work out of the box in the scaffold container.
26
- - **`api-mirror` skill: "Shipping the mirror CLI in a production Docker image"** recipe ([#195](https://github.com/cyanheads/mcp-ts-core/issues/195)) — documents mounting a pre-built mirror into the image, running the sync CLI to hydrate it, and the commented-out `mirror-cli` reference block now included in the scaffold `Dockerfile`.
24
+ - **`capped-list-no-truncation` lint rule** (warning) ([#197](https://github.com/cyanheads/mcp-ts-core/issues/197)) — fires when a tool has a cap-like input (`limit`/`per_page`/`page_size`/`max_results`/`max_items`, snake or camel), an array output, and no `truncated`/`totalCount` disclosure. Knobs: `LintInput.truncationAllowlist` (tool names) / `MCP_LINT_TRUNCATION_ALLOWLIST` (CSV). Programmatic knob wins.
25
+ - **Scaffold `Dockerfile` pre-creates writable data dirs** ([#199](https://github.com/cyanheads/mcp-ts-core/issues/199)) — `RUN mkdir -p /usr/src/app/.cache /usr/src/app/.mirror && chown -R bun:bun ...` before `USER bun`, so on-disk SQLite stores (`sqliteMirrorStore` catalog/mirror paths) open cleanly for the non-root runtime user.
26
+ - **`api-mirror` skill: "Shipping the mirror CLI in a production Docker image"** recipe ([#195](https://github.com/cyanheads/mcp-ts-core/issues/195)) — copy the mirror lifecycle scripts (plus the shared `_mirror-context.ts` shim) into the runtime stage and emit a runtime `tsconfig.json` mapping `@/*` to `./dist/*`, so `docker exec <container> bun run mirror:*` works in production. A commented reference block in the scaffold `Dockerfile` points at the recipe.
27
27
  - **Skill updates**: api-mirror 1.0→1.1, api-canvas 1.4→1.5, api-linter 1.6→1.7, api-context 1.6→1.7, add-tool 2.13→2.14, design-mcp-server 2.17→2.18.
28
28
 
29
29
  ## Changed
@@ -0,0 +1,46 @@
1
+ ---
2
+ summary: "Elicitation wired on the wire (#211), URL-mode elicitation (#212), sampling surface removed (#220), server identity fields (#213), completable prompt args + resource template completion (#214), RootsRegistry deleted (#218)"
3
+ breaking: true
4
+ agent-notes: |
5
+ **Breaking — compilation stops for sampling consumers:**
6
+ `Context.sample`, `SamplingOpts`, `CreateMessageResult`, and `SamplingMessage` are removed from the public API. Delete any code paths that reference `ctx.sample` or import these types — the member was always `undefined` at runtime (no production behavior change). Sampling is deprecated by SEP-2577 (MCP 2026-07-28); the recommended replacement is a direct LLM provider service.
7
+
8
+ **Elicitation now works on the wire:**
9
+ `ctx.elicit` is defined when the connected client advertised the elicitation capability and `undefined` otherwise. Re-verify any handler that presence-gates on `ctx.elicit` — previously the guard always routed to the fallback; now it routes to the elicit branch for capable clients.
10
+
11
+ **Optional adoptions (no breaking change):**
12
+ - Pass `title`, `websiteUrl`, `description`, `icons` to `createApp()`/`createWorkerHandler()` to populate `initialize` serverInfo and `/.well-known/mcp.json`.
13
+ - Wrap `prompt()` args with `completable()` (re-exported from main entry) to enable argument autocompletion.
14
+ - Add `title` to `prompt()` definitions.
15
+ - Add a `complete` map to `resource()` definitions for URI template variable completion.
16
+ ---
17
+
18
+ # 0.10.3 — 2026-06-10
19
+
20
+ ## Added
21
+
22
+ - **`ElicitFn`** — new exported interface for `ctx.elicit`; directly callable for form-mode elicitation and carries a `.url(message, url)` method for URL-mode (external link) elicitation. `elicitationId` is generated internally for URL-mode. ([#211](https://github.com/cyanheads/mcp-ts-core/issues/211), [#212](https://github.com/cyanheads/mcp-ts-core/issues/212))
23
+ - **`completable`, `isCompletable`, `CompleteCallback`, `CompleteResourceTemplateCallback`** re-exported from the main entry (`@cyanheads/mcp-ts-core`) so consumers don't need a direct `@modelcontextprotocol/sdk` import. ([#214](https://github.com/cyanheads/mcp-ts-core/issues/214))
24
+ - **`PromptDefinition.title`** — optional human-readable display name forwarded to `registerPrompt`'s config and surfaced in `prompts/list`. ([#214](https://github.com/cyanheads/mcp-ts-core/issues/214))
25
+ - **`ResourceDefinition.complete`** — optional per-variable completion callbacks (`Record<string, CompleteResourceTemplateCallback>`) forwarded to the SDK's `ResourceTemplate` constructor; the SDK auto-installs `completion/complete` handling and advertises the `completions` capability. ([#214](https://github.com/cyanheads/mcp-ts-core/issues/214))
26
+ - **`CreateAppOptions`** — new optional fields `title`, `websiteUrl`, `description`, `icons` (typed against `Implementation['icons']`) forwarded to the `McpServer` constructor's `serverInfo` and to `buildServerManifest` so `initialize` and `/.well-known/mcp.json` stay consistent. Explicit `description` wins over `MCP_SERVER_DESCRIPTION`/`package.json`. ([#213](https://github.com/cyanheads/mcp-ts-core/issues/213))
27
+ - **`ManifestServer`** — new optional `title`, `websiteUrl`, `icons` fields in the server manifest output. ([#213](https://github.com/cyanheads/mcp-ts-core/issues/213))
28
+ - **Integration tests** — `tests/integration/elicitation.int.test.ts` drives a real SDK client over a linked in-memory transport; `tests/integration/completions.int.test.ts` covers completable prompt args and resource template completion. ([#211](https://github.com/cyanheads/mcp-ts-core/issues/211), [#214](https://github.com/cyanheads/mcp-ts-core/issues/214))
29
+ - **Linter regression test** — `tests/unit/linter/prompt-rules.test.ts` covers `generate-required`, `description-required`, `describe-on-fields` on args, and confirms `completable`-wrapped fields pass without warnings. ([#214](https://github.com/cyanheads/mcp-ts-core/issues/214))
30
+
31
+ ## Changed
32
+
33
+ - **`ctx.elicit`** is now wired at registration time via `elicitInput` and `getClientCapabilities` closures over the per-server SDK `Server` instance (rather than sniffing `RequestHandlerExtra`). Presence is gated at request time on the client's advertised `elicitation` capability. Zod schemas are converted to the spec's restricted flat JSON Schema via `toJSONSchema()` before being sent on the wire. ([#211](https://github.com/cyanheads/mcp-ts-core/issues/211))
34
+ - **`HandlerNotifiers` / `ResourceHandlerNotifiers`** — both interfaces gain `elicitInput` and `getClientCapabilities` fields bound at registration time. `wrapElicit` now accepts `notifiers` (not `SdkRuntimeCapabilities`) in both `toolHandlerFactory.ts` and `resourceHandlerFactory.ts`. ([#211](https://github.com/cyanheads/mcp-ts-core/issues/211))
35
+ - **`createMockContext`** — when `options.elicit` is provided, the mock context's `ctx.elicit` is promoted to an `ElicitFn` with a default no-op `.url()` stub (`{ action: 'cancel' }`), so tests that only exercise form-mode elicitation don't need to supply `.url` explicitly. ([#212](https://github.com/cyanheads/mcp-ts-core/issues/212))
36
+ - **`scripts/audit-open-index-signatures.ts`** — `listSourceFiles()` now filters out worktree-deleted files (`existsSync(p)` guard) so the audit doesn't crash on files removed but not yet staged. ([chore])
37
+ - **`@types/node` `^25.9.2` → `25.9.3`** (pinned).
38
+
39
+ ## Removed
40
+
41
+ - **`ctx.sample`** — removed from `Context`, `ContextDeps`, `createContext`, and all public type exports. Sampling is deprecated by SEP-2577 (MCP 2026-07-28); the member was always `undefined` at runtime. ([#220](https://github.com/cyanheads/mcp-ts-core/issues/220))
42
+ - **`SamplingOpts`** — removed from `src/core/context.ts` and the public API. ([#220](https://github.com/cyanheads/mcp-ts-core/issues/220))
43
+ - **`CreateMessageResult`, `SamplingMessage`** — removed from the main entry re-exports. ([#220](https://github.com/cyanheads/mcp-ts-core/issues/220))
44
+ - **`template_code_review_sampling`** example tool and its smoke test — deleted alongside the sampling surface. ([#220](https://github.com/cyanheads/mcp-ts-core/issues/220))
45
+ - **`RootsRegistry`** (`src/mcp-server/roots/roots-registration.ts`) — placeholder class deleted; the `roots/` directory and its test are gone. `RootsRegistry` was never exported publicly and `registerAll()` was a no-op. Roots is also deprecated by SEP-2577. ([#218](https://github.com/cyanheads/mcp-ts-core/issues/218))
46
+ - **`MockContextOptions.sample`** — removed from `src/testing/index.ts`. ([#220](https://github.com/cyanheads/mcp-ts-core/issues/220))
@@ -6,6 +6,7 @@
6
6
  * @module src/core/app
7
7
  */
8
8
  import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
9
+ import type { Implementation } from '@modelcontextprotocol/sdk/types.js';
9
10
  import type { SupabaseClient } from '@supabase/supabase-js';
10
11
  import { config } from '../config/index.js';
11
12
  import { type LandingConfig, type ServerManifest } from '../core/serverManifest.js';
@@ -41,11 +42,30 @@ export interface ContextOptions {
41
42
  export interface CreateAppOptions {
42
43
  /** Options affecting the `Context` object passed to handlers. */
43
44
  context?: ContextOptions;
45
+ /**
46
+ * One-line description shown in client listings and the server card.
47
+ * When set, this takes priority over the `MCP_SERVER_DESCRIPTION` env var
48
+ * and `package.json` `description`. Forwarded to the `McpServer` constructor
49
+ * and to `buildServerManifest` so `initialize` and `/.well-known/mcp.json`
50
+ * stay consistent.
51
+ */
52
+ description?: string;
44
53
  /**
45
54
  * SEP-2133 extensions to advertise in server capabilities.
46
55
  * Keys are extension identifiers (`vendor-prefix/extension-name`).
47
56
  */
48
57
  extensions?: Record<string, object>;
58
+ /**
59
+ * Server icon(s) rendered in client listings. Typed against the SDK's
60
+ * `Implementation['icons']` — each entry carries `src` (URL), optional
61
+ * `mimeType`, `sizes?: string[]`, and `theme?: 'light' | 'dark'`.
62
+ *
63
+ * @example
64
+ * ```ts
65
+ * icons: [{ src: 'https://example.com/icon.png', sizes: ['48x48'], mimeType: 'image/png' }]
66
+ * ```
67
+ */
68
+ icons?: Implementation['icons'];
49
69
  /**
50
70
  * Server-level orientation text included on every `initialize` response.
51
71
  * Spec-compliant clients SHOULD forward this to the model as session-level
@@ -71,10 +91,26 @@ export interface CreateAppOptions {
71
91
  resources?: AnyResourceDefinition[];
72
92
  /** Runs after core services are constructed, before transport starts. */
73
93
  setup?: (core: CoreServices) => void | Promise<void>;
94
+ /**
95
+ * Human-readable display name shown in client listings and consent UIs.
96
+ * Supplements `name` (which is the machine identifier). Forwarded to the
97
+ * `McpServer` constructor's `serverInfo` and to the server manifest.
98
+ *
99
+ * @example `'My Server'`
100
+ */
101
+ title?: string;
74
102
  /** Tool definitions (legacy, new-style, or task). */
75
103
  tools?: AnyToolDef[];
76
104
  /** Server version — overrides package.json and MCP_SERVER_VERSION env var. */
77
105
  version?: string;
106
+ /**
107
+ * Canonical URL for the server's homepage or repository. Forwarded to the
108
+ * `McpServer` constructor's `serverInfo` and to the server manifest so
109
+ * `initialize` and `/.well-known/mcp.json` stay consistent.
110
+ *
111
+ * @example `'https://github.com/owner/my-mcp-server'`
112
+ */
113
+ websiteUrl?: string;
78
114
  }
79
115
  /** Services available in the `setup()` callback and on ServerHandle. */
80
116
  export interface CoreServices {
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/core/app.ts"],"names":[],"mappings":"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"}
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
@@ -11,7 +11,6 @@ import { startGcPressureLoop } from '../core/gcPressure.js';
11
11
  import { buildServerManifest, } from '../core/serverManifest.js';
12
12
  import { PromptRegistry } from '../mcp-server/prompts/prompt-registration.js';
13
13
  import { ResourceRegistry } from '../mcp-server/resources/resource-registration.js';
14
- import { RootsRegistry } from '../mcp-server/roots/roots-registration.js';
15
14
  import { createMcpServerInstance } from '../mcp-server/server.js';
16
15
  import { TaskManager } from '../mcp-server/tasks/core/taskManager.js';
17
16
  import { isTaskToolDefinition } from '../mcp-server/tasks/utils/taskToolDefinition.js';
@@ -42,7 +41,7 @@ import { withSpan } from '../utils/telemetry/trace.js';
42
41
  * @internal
43
42
  */
44
43
  export async function composeServices(options = {}) {
45
- const { tools = [], resources = [], prompts = [], extensions, instructions, landing, setup, context: contextOptions, } = options;
44
+ const { tools = [], resources = [], prompts = [], description, extensions, icons, instructions, landing, setup, title, websiteUrl, context: contextOptions, } = options;
46
45
  // Persist name/version overrides to process.env so they survive resetConfig()
47
46
  // and are visible to OTEL, logger, and transport throughout the process lifetime.
48
47
  if (options.name || options.version) {
@@ -139,15 +138,17 @@ export async function composeServices(options = {}) {
139
138
  exposeStatelessSessionId,
140
139
  });
141
140
  const promptRegistry = new PromptRegistry(prompts, logger);
142
- const rootsRegistry = new RootsRegistry(logger);
143
141
  const createServer = () => createMcpServerInstance({
144
142
  advertiseTasks,
145
143
  config,
144
+ ...(description && { description }),
146
145
  ...(extensions && { extensions }),
146
+ ...(icons && { icons }),
147
147
  ...(instructions && { instructions }),
148
+ ...(title && { title }),
149
+ ...(websiteUrl && { websiteUrl }),
148
150
  promptRegistry,
149
151
  resourceRegistry,
150
- rootsRegistry,
151
152
  taskStore: taskManager.getTaskStore(),
152
153
  taskMessageQueue: taskManager.getMessageQueue(),
153
154
  toolRegistry,
@@ -157,8 +158,12 @@ export async function composeServices(options = {}) {
157
158
  tools,
158
159
  resources,
159
160
  prompts,
161
+ ...(description && { description }),
160
162
  ...(extensions && { extensions }),
163
+ ...(icons && { icons }),
161
164
  ...(landing && { landing }),
165
+ ...(title && { title }),
166
+ ...(websiteUrl && { websiteUrl }),
162
167
  });
163
168
  return {
164
169
  coreServices,
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/core/app.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EACL,mBAAmB,GAGpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAE7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iDAAiD,CAAC;AAEnF,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AAEtF,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAG9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAClF,OAAO,EAAE,MAAM,EAAoB,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACvF,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACpF,OAAO,EACL,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAuGtD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,UAA4B,EAAE;IAClE,MAAM,EACJ,KAAK,GAAG,EAAE,EACV,SAAS,GAAG,EAAE,EACd,OAAO,GAAG,EAAE,EACZ,UAAU,EACV,YAAY,EACZ,OAAO,EACP,KAAK,EACL,OAAO,EAAE,cAAc,GACxB,GAAG,OAAO,CAAC;IAEZ,8EAA8E;IAC9E,kFAAkF;IAClF,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpC,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAClD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;gBAC3C,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC;YACjD,CAAC;YACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;gBACjD,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC;YACvD,CAAC;QACH,CAAC;QACD,WAAW,EAAE,CAAC;IAChB,CAAC;IAED,wBAAwB;IAExB,IAAI,cAAoD,CAAC;IACzD,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC;YAC9D,MAAM,kBAAkB,CAAC,+DAA+D,CAAC,CAAC;QAC5F,CAAC;QACD,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACxE,MAAM,kBAAkB,CACtB,wFAAwF,CACzF,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,cAAc,GAAG,YAAY,CAAW,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE;YAC3F,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE;SACzD,CAAC,CAAC;IACL,CAAC;IAED,MAAM,eAAe,GAAG,qBAAqB,CAAC,MAAM,EAAE;QACpD,GAAG,CAAC,cAAc,IAAI,EAAE,cAAc,EAAE,CAAC;KAC1C,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,eAAe,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEpD,iEAAiE;IAEjE,IAAI,WAAqC,CAAC;IAC1C,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC5B,WAAW,GAAG,IAAI,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,aAAwC,CAAC;IAC7C,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,SAAS,GAAqC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO;YAC5E,CAAC,CAAE,MAAM,CAAC,MAAM,CAAC,GAA4B;YAC7C,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,SAAS,GAAqC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO;YAC5E,CAAC,CAAE,MAAM,CAAC,MAAM,CAAC,GAA4B;YAC7C,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;YAC3B,aAAa,GAAG,IAAI,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAE3C,MAAM,YAAY,GAAiB;QACjC,MAAM;QACN,MAAM;QACN,WAAW;QACX,OAAO,EAAE,cAAc;QACvB,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC;QACzB,GAAG,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,CAAC;QACnC,GAAG,CAAC,aAAa,IAAI,EAAE,aAAa,EAAE,CAAC;QACvC,GAAG,CAAC,cAAc,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;KACpD,CAAC;IAEF,gCAAgC;IAChC,8DAA8D;IAC9D,4EAA4E;IAC5E,4EAA4E;IAC5E,iDAAiD;IACjD,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAC9B,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;oBACrC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAClC,OAAO,OAAO,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;gBACzC,CAAC,CAAC,CAAC;gBACH,MAAM,kBAAkB,CACtB,mDAAmD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACrE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,EACtB,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;YACJ,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,uBAAuB;IAEvB,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC5D,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAE3F,MAAM,wBAAwB,GAAG,cAAc,EAAE,wBAAwB,KAAK,IAAI,CAAC;IACnF,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,KAAK,EAAE;QAC3C,MAAM;QACN,OAAO,EAAE,cAAc;QACvB,wBAAwB;KACzB,CAAC,CAAC;IACH,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,SAAS,EAAE;QACvD,MAAM;QACN,OAAO,EAAE,cAAc;QACvB,wBAAwB;KACzB,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3D,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;IAEhD,MAAM,YAAY,GAAG,GAAG,EAAE,CACxB,uBAAuB,CAAC;QACtB,cAAc;QACd,MAAM;QACN,GAAG,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,CAAC;QACjC,GAAG,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,CAAC;QACrC,cAAc;QACd,gBAAgB;QAChB,aAAa;QACb,SAAS,EAAE,WAAW,CAAC,YAAY,EAAE;QACrC,gBAAgB,EAAE,WAAW,CAAC,eAAe,EAAE;QAC/C,YAAY;KACb,CAAC,CAAC;IAEL,MAAM,QAAQ,GAAG,mBAAmB,CAAC;QACnC,MAAM;QACN,KAAK;QACL,SAAS;QACT,OAAO;QACP,GAAG,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,CAAC;QACjC,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC;KAC5B,CAAC,CAAC;IAEH,OAAO;QACL,YAAY;QACZ,YAAY;QACZ,QAAQ;QACR,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E;;GAEG;AACH,SAAS,cAAc;IACrB,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,WAAW,EAAE,CAAC;IACpE,MAAM,WAAW,GAAG,CAAC,aAAa,IAAI,aAAa,KAAK,OAAO,CAAC;IAChE,MAAM,oBAAoB,GAAG,aAAa,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IAE/E,IAAI,WAAW,IAAI,oBAAoB,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC;IAChC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,uBAAuB,CAAC,GAAa;IAC5C,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;IACpC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG;QACZ,EAAE;QACF,OAAO;QACP,+CAA+C;QAC/C,OAAO;QACP,GAAG,CAAC,OAAO;QACX,EAAE;QACF,4DAA4D;KAC7D,CAAC;IACF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IACzD,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAExB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE9C,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,UAA4B,EAAE;IAC5D,cAAc,EAAE,CAAC;IAEjB,iFAAiF;IACjF,yEAAyE;IACzE,0EAA0E;IAC1E,oEAAoE;IACpE,IAAI,QAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB,CAAC,kBAAkB,EAAE,CAAC;YAChF,uBAAuB,CAAC,GAAG,CAAC,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IACD,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC;IACvE,MAAM,EAAE,gBAAgB,EAAE,GAAG,QAAQ,CAAC;IAEtC,0EAA0E;IAC1E,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,uBAAuB,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YAC/C,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,GAAG,CAAC,CAAC;QACtE,CAAC,CAAC;QACF,gBAAgB,EAAE;KACnB,CAAC,CAAC;IAEH,+EAA+E;IAC/E,oBAAoB,EAAE,CAAC;IACvB,kBAAkB,EAAE,CAAC;IACrB,gBAAgB,EAAE,CAAC;IACnB,oBAAoB,EAAE,CAAC;IACvB,qBAAqB,EAAE,CAAC;IACxB,kBAAkB,EAAE,CAAC;IAErB,4EAA4E;IAC5E,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;QAChF,iJAAiJ;QACjJ,IAAI,WAA2C,CAAC;QAChD,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,MAAM,cAAc,GAAG,GAAuB,EAAE;YAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,WAAW,IAAI,GAAG,GAAG,aAAa,GAAG,GAAG,EAAE,CAAC;gBAC9C,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;gBACpC,aAAa,GAAG,GAAG,CAAC;YACtB,CAAC;YACD,OAAO,WAAW,CAAC;QACrB,CAAC,CAAC;QAEF,qBAAqB,CACnB,oBAAoB,EACpB,2BAA2B,EAC3B,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,GAAG,EAC1B,OAAO,CACR,CAAC;QACF,qBAAqB,CACnB,0BAA0B,EAC1B,qBAAqB,EACrB,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,QAAQ,EAC/B,OAAO,CACR,CAAC;QACF,qBAAqB,CACnB,2BAA2B,EAC3B,oBAAoB,EACpB,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,SAAS,EAChC,OAAO,CACR,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QAC3E,qBAAqB,CACnB,gBAAgB,EAChB,2BAA2B,EAC3B,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EACtB,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,kDAAkD;IAClD,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,EAAE,qBAAqB,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;YAC/E,MAAM,GAAG,GAAG,qBAAqB,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;YACtD,GAAG,CAAC,MAAM,EAAE,CAAC;YACb,qBAAqB,CACnB,0BAA0B,EAC1B,sCAAsC,EACtC,GAAG,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,UAAU;YAC1C,IAAI,CACL,CAAC;YACF,IAAI,OAAO,GAAG,WAAW,CAAC,oBAAoB,EAAE,CAAC;YACjD,qBAAqB,CACnB,gCAAgC,EAChC,wDAAwD,EACxD,GAAG,EAAE;gBACH,MAAM,OAAO,GAAG,WAAW,CAAC,oBAAoB,EAAE,CAAC;gBACnD,MAAM,KAAK,GAAG,WAAW,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACjE,OAAO,GAAG,OAAO,CAAC;gBAClB,OAAO,KAAK,CAAC,WAAW,CAAC;YAC3B,CAAC,EACD,GAAG,CACJ,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,yDAAyD;QAC3D,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,QAAuB,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAEjF,kEAAkE;IAClE,MAAM,cAAc,GAAG,mBAAmB,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;IAE3E,MAAM,CAAC,IAAI,CACT,+BAA+B,gBAAgB,CAAC,KAAK,aAAa,gBAAgB,CAAC,SAAS,iBAAiB,gBAAgB,CAAC,OAAO,wBAAwB,MAAM,CAAC,OAAO,CAAC,YAAY,GAAG,EAC3L,qBAAqB,CAAC,oBAAoB,CAAC;QACzC,SAAS,EAAE,YAAY;QACvB,iBAAiB,EAAE;YACjB,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC/C,SAAS,EAAE,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,WAAW,CAAC;YACxE,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SACpD;KACF,CAAC,CACH,CAAC;IAEF,oBAAoB;IACpB,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAC3C,MAAM,EACN,MAAM,EACN,YAAY,EACZ,WAAW,EACX,QAAQ,CACT,CAAC;IAEF,0BAA0B;IAC1B,MAAM,cAAc,GAAG,qBAAqB,CAAC,oBAAoB,CAAC;QAChE,SAAS,EAAE,eAAe;QAC1B,eAAe,EAAE,MAAM,CAAC,aAAa;QACrC,kBAAkB,EAAE,MAAM,CAAC,gBAAgB;QAC3C,eAAe,EAAE,MAAM,CAAC,WAAW;KACpC,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,aAAa,MAAM,MAAM,CAAC,gBAAgB,MAAM,EAAE,cAAc,CAAC,CAAC;IAEjG,mBAAmB;IACnB,IAAI,cAAc,GAAG,KAAK,CAAC;IAE3B,MAAM,uBAAuB,GAAG,KAAK,IAAmB,EAAE;QACxD,IAAI,CAAC;YACH,MAAM,qBAAqB,EAAE,CAAC;YAC9B,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,qCAAqC;QACvC,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAM,GAAG,UAAU,EAAiB,EAAE;QAC5D,IAAI,cAAc;YAAE,OAAO;QAC3B,cAAc,GAAG,IAAI,CAAC;QAEtB,6DAA6D;QAC7D,OAAO,CAAC,cAAc,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;QACjE,OAAO,CAAC,cAAc,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;QACnE,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC7C,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAE3C,MAAM,eAAe,GAAG,qBAAqB,CAAC,oBAAoB,CAAC;YACjE,SAAS,EAAE,gBAAgB;YAC3B,YAAY,EAAE,MAAM;SACrB,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,YAAY,MAAM,mCAAmC,EAAE,eAAe,CAAC,CAAC;QAEpF,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,qBAAqB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACnD,IAAI,CAAC,YAAY,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAC;gBAExD,MAAM,QAAQ,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;oBACzD,MAAM,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtC,CAAC,CAAC,CAAC;gBAEH,WAAW,CAAC,OAAO,EAAE,CAAC;gBACtB,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBACnC,gBAAgB,CAAC,UAAU,EAAE,CAAC;gBAC9B,cAAc,EAAE,CAAC;gBAEjB,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;oBACxB,MAAM,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;wBAChE,MAAM,CAAC,OAAO,CAAC,sCAAsC,EAAE;4BACrD,GAAG,eAAe;4BAClB,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;yBACxD,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,CAAC,IAAI,CAAC,2CAA2C,EAAE,eAAe,CAAC,CAAC;YAC5E,CAAC,CAAC,CAAC;YACH,MAAM,uBAAuB,EAAE,CAAC;QAClC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACtE,MAAM,CAAC,KAAK,CAAC,yCAAyC,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC;YAC9E,MAAM,uBAAuB,EAAE,CAAC;QAClC,CAAC;IACH,CAAC,CAAC;IAEF,uEAAuE;IAEvE,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,EAAE;QACvC,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC3D,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC;IACF,MAAM,mBAAmB,GAAG,CAAC,KAAY,EAAE,EAAE;QAC3C,MAAM,YAAY,GAAG,qBAAqB,CAAC,oBAAoB,CAAC;YAC9D,SAAS,EAAE,YAAY;YACvB,YAAY,EAAE,mBAAmB;SAClC,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;QACzE,aAAa,CAAC,mBAAmB,CAAC,CAAC;IACrC,CAAC,CAAC;IACF,MAAM,oBAAoB,GAAG,CAAC,MAAe,EAAE,EAAE;QAC/C,MAAM,GAAG,GAAG,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACzE,MAAM,YAAY,GAAG,qBAAqB,CAAC,oBAAoB,CAAC;YAC9D,SAAS,EAAE,YAAY;YACvB,YAAY,EAAE,oBAAoB;SACnC,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,8CAA8C,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;QAChF,aAAa,CAAC,oBAAoB,CAAC,CAAC;IACtC,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE/C,0EAA0E;IAC1E,6DAA6D;IAC7D,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;IACrD,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;IACvD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE/B,yEAAyE;IACzE,MAAM,QAAQ,CAAC,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAClD,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;QAC3D,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACjE,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACnE,IAAI,CAAC,YAAY,CAAC,wBAAwB,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACpE,IAAI,CAAC,YAAY,CAAC,4BAA4B,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC5E,IAAI,CAAC,YAAY,CAAC,0BAA0B,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAExE,MAAM,QAAQ,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;YACxD,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,aAAa,4BAA4B,EAAE,cAAc,CAAC,CAAC;IAEjF,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;AAC9C,CAAC;AAED,8EAA8E;AAC9E,mDAAmD;AACnD,8EAA8E;AAE9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAE,MAAM,gDAAgD,CAAC;AAKxE,OAAO,EAAE,QAAQ,EAAE,MAAM,oDAAoD,CAAC;AAO9E,OAAO,EACL,YAAY,EACZ,IAAI,GACL,MAAM,4CAA4C,CAAC"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/core/app.ts"],"names":[],"mappings":"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"}
@@ -6,13 +6,40 @@
6
6
  * @module src/core/context
7
7
  */
8
8
  import type { RequestTaskStore } from '@modelcontextprotocol/sdk/shared/protocol.js';
9
- import type { CreateMessageResult, ElicitResult, ModelPreferences, SamplingMessage } from '@modelcontextprotocol/sdk/types.js';
9
+ import type { ElicitResult } from '@modelcontextprotocol/sdk/types.js';
10
10
  import type { ZodObject, ZodRawShape, ZodType, z } from 'zod';
11
11
  import type { StorageService } from '../storage/core/StorageService.js';
12
12
  import { type ErrorContract, McpError } from '../types-global/errors.js';
13
13
  import type { Logger } from '../utils/internal/logger.js';
14
14
  import type { AuthContext, RequestContext } from '../utils/internal/requestContext.js';
15
15
  export type { AuthContext };
16
+ /**
17
+ * The full elicitation surface on `ctx.elicit`. Callable as a function for
18
+ * form-mode elicitation (present `requestedSchema` to the client as a structured
19
+ * form), plus a `.url()` helper for URL-mode elicitation (send the user to an
20
+ * external URL and wait for their return).
21
+ *
22
+ * Present only when the connected client advertised the elicitation capability.
23
+ * Check for presence before calling: `if (ctx.elicit) { ... }`.
24
+ */
25
+ export interface ElicitFn {
26
+ /**
27
+ * URL-mode elicitation. Directs the user to an external URL (an authorization
28
+ * link, hosted form, etc.) and returns an `ElicitResult` when the client
29
+ * signals completion. `content` is absent on URL-mode results — only `action`
30
+ * is meaningful.
31
+ *
32
+ * An `elicitationId` is generated automatically.
33
+ */
34
+ url(message: string, url: string): Promise<ElicitResult>;
35
+ /**
36
+ * Form-mode elicitation. Presents a structured form to the user from the
37
+ * provided Zod schema and returns an `ElicitResult` when the user responds.
38
+ * The schema is converted to the MCP elicitation spec's restricted flat JSON
39
+ * Schema form before being sent on the wire.
40
+ */
41
+ (message: string, schema: ZodObject<ZodRawShape>): Promise<ElicitResult>;
42
+ }
16
43
  /**
17
44
  * Structured logger scoped to the current request.
18
45
  * Auto-includes requestId, traceId, tenantId in every log entry.
@@ -71,14 +98,6 @@ export interface ContextProgress {
71
98
  /** Set a custom status message. */
72
99
  update(message: string): Promise<void>;
73
100
  }
74
- /** Options for sampling requests. */
75
- export interface SamplingOpts {
76
- includeContext?: 'none' | 'thisServer' | 'allServers';
77
- maxTokens?: number;
78
- modelPreferences?: ModelPreferences;
79
- stopSequences?: string[];
80
- temperature?: number;
81
- }
82
101
  /**
83
102
  * The unified object every tool and resource handler receives.
84
103
  * Replaces the split `appContext` + `sdkContext` pattern.
@@ -86,8 +105,12 @@ export interface SamplingOpts {
86
105
  export interface Context {
87
106
  /** Auth data when request is authenticated. */
88
107
  readonly auth?: AuthContext | undefined;
89
- /** Ask the human user a question. Present when client supports elicitation. */
90
- readonly elicit?: ((message: string, schema: z.ZodObject<z.ZodRawShape>) => Promise<ElicitResult>) | undefined;
108
+ /**
109
+ * Ask the human user a question. Present when the connected client advertised
110
+ * the elicitation capability. Call the function for form-mode elicitation, or
111
+ * use `.url(message, url)` for URL-mode elicitation.
112
+ */
113
+ readonly elicit?: ElicitFn | undefined;
91
114
  /**
92
115
  * Accumulates agent-facing enrichment fields onto this request — empty-result
93
116
  * notices, query/filter echo, pagination totals. Values reach `structuredContent`
@@ -139,8 +162,6 @@ export interface Context {
139
162
  } | Record<string, never>;
140
163
  /** Unique request ID for log correlation. */
141
164
  readonly requestId: string;
142
- /** Request LLM completion from the client. Present when client supports sampling. */
143
- readonly sample?: ((messages: SamplingMessage[], opts?: SamplingOpts) => Promise<CreateMessageResult>) | undefined;
144
165
  /**
145
166
  * HTTP session ID — the value of the `Mcp-Session-Id` header (or a
146
167
  * server-minted ID for new sessions) when the request carries a durable
@@ -413,13 +434,12 @@ export declare function readEnrichmentStore(ctx: Context): EnrichmentStore | und
413
434
  /** @internal */
414
435
  export interface ContextDeps {
415
436
  appContext: RequestContext;
416
- elicit?: Context['elicit'];
437
+ elicit?: ElicitFn | undefined;
417
438
  logger: Logger;
418
439
  notifyPromptListChanged?: Context['notifyPromptListChanged'];
419
440
  notifyResourceListChanged?: Context['notifyResourceListChanged'];
420
441
  notifyResourceUpdated?: Context['notifyResourceUpdated'];
421
442
  notifyToolListChanged?: Context['notifyToolListChanged'];
422
- sample?: Context['sample'];
423
443
  /**
424
444
  * HTTP session ID. Forwarded onto `Context.sessionId` as-is. Caller is
425
445
  * responsible for the durability gate (stateful mode / opt-in) — by the