@miragon/mcp-toolkit-core 0.10.1 → 1.1.0

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 (76) hide show
  1. package/README.md +7 -7
  2. package/dist/framework/render-view.d.ts +1 -1
  3. package/dist/framework/render-view.d.ts.map +1 -1
  4. package/dist/framework/render-view.js +3 -0
  5. package/dist/framework/render-view.js.map +1 -1
  6. package/dist/index.d.ts +2 -2
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +1 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/middleware/role-filter.d.ts +16 -32
  11. package/dist/middleware/role-filter.d.ts.map +1 -1
  12. package/dist/middleware/role-filter.js +10 -22
  13. package/dist/middleware/role-filter.js.map +1 -1
  14. package/dist/tools/backend-registry.d.ts +9 -3
  15. package/dist/tools/backend-registry.d.ts.map +1 -1
  16. package/dist/tools/backend-registry.js +13 -12
  17. package/dist/tools/backend-registry.js.map +1 -1
  18. package/dist/tools/create-framework-app.d.ts +51 -38
  19. package/dist/tools/create-framework-app.d.ts.map +1 -1
  20. package/dist/tools/create-framework-app.js +79 -78
  21. package/dist/tools/create-framework-app.js.map +1 -1
  22. package/dist/tools/index.d.ts +4 -5
  23. package/dist/tools/index.d.ts.map +1 -1
  24. package/dist/tools/index.js +3 -3
  25. package/dist/tools/index.js.map +1 -1
  26. package/dist/tools/install-toolkit.d.ts +77 -0
  27. package/dist/tools/install-toolkit.d.ts.map +1 -0
  28. package/dist/tools/install-toolkit.js +85 -0
  29. package/dist/tools/install-toolkit.js.map +1 -0
  30. package/dist/tools/register-catalogue-tool.d.ts +1 -1
  31. package/dist/tools/register-catalogue-tool.d.ts.map +1 -1
  32. package/dist/tools/register-catalogue-tool.js +2 -3
  33. package/dist/tools/register-catalogue-tool.js.map +1 -1
  34. package/dist/tools/register-dashboard-tools.d.ts +1 -1
  35. package/dist/tools/register-dashboard-tools.d.ts.map +1 -1
  36. package/dist/tools/register-dashboard-tools.js +6 -6
  37. package/dist/tools/register-dashboard-tools.js.map +1 -1
  38. package/dist/tools/register-framework-tools.d.ts +15 -47
  39. package/dist/tools/register-framework-tools.d.ts.map +1 -1
  40. package/dist/tools/register-framework-tools.js +31 -63
  41. package/dist/tools/register-framework-tools.js.map +1 -1
  42. package/dist/tools/register-tool.d.ts +1 -1
  43. package/dist/tools/register-tool.d.ts.map +1 -1
  44. package/dist/tools/register-tool.js +14 -8
  45. package/dist/tools/register-tool.js.map +1 -1
  46. package/dist/tools/register-widget-tool.d.ts +35 -11
  47. package/dist/tools/register-widget-tool.d.ts.map +1 -1
  48. package/dist/tools/register-widget-tool.js +57 -30
  49. package/dist/tools/register-widget-tool.js.map +1 -1
  50. package/dist/tools/tool-results.d.ts +46 -0
  51. package/dist/tools/tool-results.d.ts.map +1 -0
  52. package/dist/tools/tool-results.js +39 -0
  53. package/dist/tools/tool-results.js.map +1 -0
  54. package/dist/tools/with-tool-errors.d.ts +12 -6
  55. package/dist/tools/with-tool-errors.d.ts.map +1 -1
  56. package/dist/tools/with-tool-errors.js +12 -6
  57. package/dist/tools/with-tool-errors.js.map +1 -1
  58. package/dist/types/app.d.ts +10 -7
  59. package/dist/types/app.d.ts.map +1 -1
  60. package/dist/types/index.d.ts +2 -2
  61. package/dist/types/index.d.ts.map +1 -1
  62. package/dist/types/index.js +1 -1
  63. package/dist/types/index.js.map +1 -1
  64. package/dist/types/meta.d.ts +73 -56
  65. package/dist/types/meta.d.ts.map +1 -1
  66. package/dist/types/meta.js +49 -53
  67. package/dist/types/meta.js.map +1 -1
  68. package/package.json +13 -6
  69. package/dist/tools/app-resource-uri.d.ts +0 -28
  70. package/dist/tools/app-resource-uri.d.ts.map +0 -1
  71. package/dist/tools/app-resource-uri.js +0 -30
  72. package/dist/tools/app-resource-uri.js.map +0 -1
  73. package/dist/tools/tool-call-name.d.ts +0 -53
  74. package/dist/tools/tool-call-name.d.ts.map +0 -1
  75. package/dist/tools/tool-call-name.js +0 -92
  76. package/dist/tools/tool-call-name.js.map +0 -1
package/README.md CHANGED
@@ -9,20 +9,20 @@ Published to the public npm registry under the `@miragon` scope — no `.npmrc`
9
9
  or token needed.
10
10
 
11
11
  ```sh
12
- pnpm add @miragon/mcp-toolkit-core @modelcontextprotocol/sdk@1.29.0 mcp-use@1.34.1 zod@4.4.3
12
+ pnpm add @miragon/mcp-toolkit-core mcp-use@2.1.0 zod@4.4.3
13
13
  ```
14
14
 
15
15
  Peer versions are pinned exactly — install the versions above.
16
16
 
17
17
  ## Import paths
18
18
 
19
- | Subpath | Key exports | Constraint |
20
- | --------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
21
- | `@miragon/mcp-toolkit-core` | `executePipeline`, `renderView`, `buildSingleWidgetView`, `buildComposedView`, `StepRegistry`, `WidgetRegistry`, `uiMeta`, types | Browser-safe: no `mcp-use/server`, no `node:*`. The barrel widget bundles import from. |
22
- | `…-core/tools` | `createFrameworkApp`, `createToolRegistrar`, `createWidgetToolRegistrar`, `registerFrameworkTools`, dashboard-store impls | Server-only — imports `mcp-use/server`. Keep out of browser bundles. |
23
- | `…-core/rest` | `createRestClient`, `createRestTool`, `RestError` | REST tool helpers; register the resulting `ToolConfig` via `createToolRegistrar` from `/tools`. |
19
+ | Subpath | Key exports | Constraint |
20
+ | --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
21
+ | `@miragon/mcp-toolkit-core` | `executePipeline`, `renderView`, `buildSingleWidgetView`, `buildComposedView`, `StepRegistry`, `WidgetRegistry`, `appsSdkMeta`, `viewResourceUri`, types | Browser-safe: no `mcp-use` server runtime, no `node:*`. The barrel widget bundles import from. |
22
+ | `…-core/tools` | `installToolkit`, `createFrameworkApp`, `createToolRegistrar`, `createWidgetToolRegistrar`, `registerFrameworkTools`, dashboard-store impls | Server-only — imports the `mcp-use` server runtime. Keep out of browser bundles. |
23
+ | `…-core/rest` | `createRestClient`, `createRestTool`, `RestError` | REST tool helpers; register the resulting `ToolConfig` via `createToolRegistrar` from `/tools`. |
24
24
 
25
- `createFrameworkApp` / `createToolRegistrar` live **only** in
25
+ `installToolkit` / `createFrameworkApp` / `createToolRegistrar` live **only** in
26
26
  `@miragon/mcp-toolkit-core/tools` — never in the root barrel.
27
27
 
28
28
  ## Links
@@ -40,7 +40,7 @@ export declare function renderView(options: RenderViewOptions): Promise<{
40
40
  type: "text";
41
41
  text: string;
42
42
  }[];
43
- isError: boolean;
43
+ isError: true;
44
44
  structuredContent?: undefined;
45
45
  } | {
46
46
  content: {
@@ -1 +1 @@
1
- {"version":3,"file":"render-view.d.ts","sourceRoot":"","sources":["../../src/framework/render-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAE/F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,KAAK,CAAC,EAAE,eAAe,EAAE,CAAA;IACzB,MAAM,EAAE,YAAY,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,eAAe,CAAA;IACtB,YAAY,EAAE,YAAY,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACpD;;;;;OAKG;IACH,GAAG,CAAC,EAAE,wBAAwB,CAAA;IAC9B;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB;;;;;;;;;;;;;;GAuE1D"}
1
+ {"version":3,"file":"render-view.d.ts","sourceRoot":"","sources":["../../src/framework/render-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAE/F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,KAAK,CAAC,EAAE,eAAe,EAAE,CAAA;IACzB,MAAM,EAAE,YAAY,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,eAAe,CAAA;IACtB,YAAY,EAAE,YAAY,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACpD;;;;;OAKG;IACH,GAAG,CAAC,EAAE,wBAAwB,CAAA;IAC9B;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB;;;;;;;;;;;;;;GA0E1D"}
@@ -19,6 +19,9 @@ export async function renderView(options) {
19
19
  text: `Pipeline validation failed: ${validation.issues.join("; ")}`,
20
20
  },
21
21
  ],
22
+ // Literal `true` (not widened to boolean): with `render-view` bound to
23
+ // a view its outputSchema makes mcp-use's callback type demand either
24
+ // `structuredContent` or an explicit `isError: true` result.
22
25
  isError: true,
23
26
  };
24
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"render-view.js","sourceRoot":"","sources":["../../src/framework/render-view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render-view.js","sourceRoot":"","sources":["../../src/framework/render-view.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export type { StepOutput, StepResult, PipelineContext, PipelineStepDefinition, OptionalKeyDeclaration, WidgetProps, WidgetSize, WidgetDefinition, AppDefinition, AppPlugin, PipelineConfig, PipelineStepRef, AppConfig, AppConfigEntry, ValidationResult, ViewStructuredContent, StepDataEntry, RefreshParams, } from "./types/index.js";
2
- export { APP_ONLY_META, uiMeta } from "./types/index.js";
3
- export type { UiMetaOptions } from "./types/index.js";
2
+ export { appsSdkMeta, viewResourceUri, VIEW_RESOURCE_URI_PREFIX } from "./types/index.js";
3
+ export type { AppsSdkMetaOptions, AppResourceCsp } from "./types/index.js";
4
4
  export { createTranslator } from "./i18n/index.js";
5
5
  export type { Message, MessageCatalog, Catalogs, Translate, CreateTranslatorOptions, } from "./i18n/index.js";
6
6
  export { executePipeline } from "./engine/pipeline-executor.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,UAAU,EACV,UAAU,EACV,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,SAAS,EACT,cAAc,EACd,eAAe,EACf,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,aAAa,EACb,aAAa,GACd,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACxD,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAOrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,YAAY,EACV,OAAO,EACP,cAAc,EACd,QAAQ,EACR,SAAS,EACT,uBAAuB,GACxB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,YAAY,EACV,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,YAAY,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AACpF,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,oBAAoB,GACrB,MAAM,8BAA8B,CAAA;AACrC,YAAY,EACV,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,GACf,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,eAAe,GAChB,MAAM,0BAA0B,CAAA;AAOjC,YAAY,EACV,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,+BAA+B,GAChC,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAA;AACvE,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAE1F,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AACxF,YAAY,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAE1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAClE,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AACxE,YAAY,EACV,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,6BAA6B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,UAAU,EACV,UAAU,EACV,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,SAAS,EACT,cAAc,EACd,eAAe,EACf,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,aAAa,EACb,aAAa,GACd,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AACzF,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAO1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,YAAY,EACV,OAAO,EACP,cAAc,EACd,QAAQ,EACR,SAAS,EACT,uBAAuB,GACxB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,YAAY,EACV,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,YAAY,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AACpF,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,oBAAoB,GACrB,MAAM,8BAA8B,CAAA;AACrC,YAAY,EACV,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,GACf,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,eAAe,GAChB,MAAM,0BAA0B,CAAA;AAOjC,YAAY,EACV,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,+BAA+B,GAChC,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAA;AACvE,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAE1F,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AACxF,YAAY,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAE1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAClE,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AACxE,YAAY,EACV,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,6BAA6B,CAAA"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { APP_ONLY_META, uiMeta } from "./types/index.js";
1
+ export { appsSdkMeta, viewResourceUri, VIEW_RESOURCE_URI_PREFIX } from "./types/index.js";
2
2
  // Localization engine — a dependency-free translator shared by the server (tool
3
3
  // summaries) and the UI (widget strings). Browser-safe, so it belongs in the
4
4
  // root barrel; ships no catalogs (the consuming app provides its own). The UI
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAGxD,gFAAgF;AAChF,6EAA6E;AAC7E,8EAA8E;AAC9E,wEAAwE;AACxE,yBAAyB;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AASlD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAK/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAEvD,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,oBAAoB,GACrB,MAAM,8BAA8B,CAAA;AAOrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAwB9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAE9D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAE7D,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAE1F,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAGxF,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAElE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AAQxE,6EAA6E;AAC7E,gEAAgE;AAChE,4EAA4E;AAC5E,4EAA4E;AAC5E,kEAAkE"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAGzF,gFAAgF;AAChF,6EAA6E;AAC7E,8EAA8E;AAC9E,wEAAwE;AACxE,yBAAyB;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AASlD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAK/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAEvD,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,oBAAoB,GACrB,MAAM,8BAA8B,CAAA;AAOrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAwB9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAE9D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAE7D,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAE1F,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAGxF,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAElE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AAQxE,6EAA6E;AAC7E,gEAAgE;AAChE,4EAA4E;AAC5E,4EAA4E;AAC5E,kEAAkE"}
@@ -7,12 +7,14 @@
7
7
  * - `toolsList` — filters `tools/list` responses so users only see tools
8
8
  * belonging to modules their role(s) can access.
9
9
  * - `toolsCall` — defence-in-depth: blocks a `tools/call` for a tool whose
10
- * module isn't allowed for the caller's role(s). Reads the tool name(s) via
11
- * the injected `resolveToolNames`/`resolveToolName` (mcp-use 1.28 does not
12
- * put them in `ctx.params`); a JSON-RPC batch can carry several `tools/call`
13
- * requests, and the guard denies when *any* of them is disallowed. When no
14
- * name can be resolved it fails *open* by default (allow) — pass
15
- * `failClosed: true` to deny instead.
10
+ * module isn't allowed for the caller's role(s). Reads the name straight off
11
+ * `ctx.params.name`. When no name is present it fails *open* by default
12
+ * (allow) — pass `failClosed: true` to deny instead.
13
+ *
14
+ * Batches need no special handling: mcp-use invokes `mcp:tools/call`
15
+ * middleware once per call, so each entry of a JSON-RPC batch is guarded
16
+ * individually (verified against 2.0.4 — a two-entry batch fires the guard
17
+ * twice, with each name).
16
18
  *
17
19
  * Tool-to-module mapping uses the prefix convention `<module>_<tool>`.
18
20
  * Tools without an underscore are always allowed (they're framework or
@@ -45,32 +47,14 @@ export interface RoleFilterMiddlewares {
45
47
  }
46
48
  export interface RoleFilterOptions {
47
49
  /**
48
- * Resolves the in-flight `tools/call` tool name. Required for the
49
- * `toolsCall` guard to function: mcp-use 1.28 populates `ctx.params` with the
50
- * tool *arguments*, not `{ name, arguments }`, so `ctx.params?.name` is never
51
- * the tool name at runtime (and a tool argument literally called `name` —
52
- * e.g. `save-dashboard`'s — would be misread as one). Wire this to
53
- * `installToolCallNameCapture(server)` from the `./tools` subpath, which
54
- * recovers the name from the JSON-RPC envelope. Falls back to
55
- * `ctx.params?.name` when omitted (legacy behaviour).
56
- */
57
- resolveToolName?: () => string | undefined;
58
- /**
59
- * Resolves *every* `tools/call` name of the in-flight request. A JSON-RPC
60
- * batch envelope can carry several `tools/call` requests — a guard that only
61
- * checks one of them can be bypassed by the others, so when this resolver is
62
- * provided the guard checks each name and denies if *any* is disallowed.
63
- * Wire it to the `.all` of `installToolCallNameCapture(server)`'s return.
64
- * Takes precedence over `resolveToolName` when it yields at least one name.
65
- */
66
- resolveToolNames?: () => string[] | undefined;
67
- /**
68
- * When `true`, a `tools/call` whose tool name can't be resolved is *denied*
69
- * instead of allowed. Defaults to `false` (fail-open) to preserve the prior
70
- * behaviour — opt in for stricter deployments where an unresolved name should
71
- * never slip past the module guard. Only meaningful alongside
72
- * `resolveToolName`; without a resolver the name is unavailable by design and
73
- * enabling this would block every call.
50
+ * When `true`, a `tools/call` that arrives without a readable tool name is
51
+ * *denied* instead of allowed. Defaults to `false` (fail-open), matching the
52
+ * prior behaviour. Opt in for deployments where an unnamed call must never
53
+ * slip past the module guard.
54
+ *
55
+ * Since mcp-use 2.x the name is always present on `ctx.params.name` for a
56
+ * well-formed call, so this now only fires on malformed input rather than on
57
+ * the framework's own shape.
74
58
  */
75
59
  failClosed?: boolean;
76
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"role-filter.d.ts","sourceRoot":"","sources":["../../src/middleware/role-filter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,OAAO,CAAA;SAAE,CAAA;KAAE,CAAA;IACrC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAC5B;AACD,KAAK,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;AAClC,MAAM,MAAM,oBAAoB,GAAG,CAAC,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;AAE3F,MAAM,WAAW,qBAAqB;IACpC,yDAAyD;IACzD,SAAS,EAAE,oBAAoB,CAAA;IAC/B,yDAAyD;IACzD,SAAS,EAAE,oBAAoB,CAAA;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;IAC1C;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,MAAM,MAAM,EAAE,GAAG,SAAS,CAAA;IAC7C;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACvC,IAAI,GAAE,iBAAsB,GAC3B,qBAAqB,CAqEvB"}
1
+ {"version":3,"file":"role-filter.d.ts","sourceRoot":"","sources":["../../src/middleware/role-filter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,OAAO,CAAA;SAAE,CAAA;KAAE,CAAA;IACrC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAC5B;AACD,KAAK,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;AAClC,MAAM,MAAM,oBAAoB,GAAG,CAAC,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;AAE3F,MAAM,WAAW,qBAAqB;IACpC,yDAAyD;IACzD,SAAS,EAAE,oBAAoB,CAAA;IAC/B,yDAAyD;IACzD,SAAS,EAAE,oBAAoB,CAAA;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACvC,IAAI,GAAE,iBAAsB,GAC3B,qBAAqB,CAqDvB"}
@@ -7,12 +7,14 @@
7
7
  * - `toolsList` — filters `tools/list` responses so users only see tools
8
8
  * belonging to modules their role(s) can access.
9
9
  * - `toolsCall` — defence-in-depth: blocks a `tools/call` for a tool whose
10
- * module isn't allowed for the caller's role(s). Reads the tool name(s) via
11
- * the injected `resolveToolNames`/`resolveToolName` (mcp-use 1.28 does not
12
- * put them in `ctx.params`); a JSON-RPC batch can carry several `tools/call`
13
- * requests, and the guard denies when *any* of them is disallowed. When no
14
- * name can be resolved it fails *open* by default (allow) — pass
15
- * `failClosed: true` to deny instead.
10
+ * module isn't allowed for the caller's role(s). Reads the name straight off
11
+ * `ctx.params.name`. When no name is present it fails *open* by default
12
+ * (allow) — pass `failClosed: true` to deny instead.
13
+ *
14
+ * Batches need no special handling: mcp-use invokes `mcp:tools/call`
15
+ * middleware once per call, so each entry of a JSON-RPC batch is guarded
16
+ * individually (verified against 2.0.4 — a two-entry batch fires the guard
17
+ * twice, with each name).
16
18
  *
17
19
  * Tool-to-module mapping uses the prefix convention `<module>_<tool>`.
18
20
  * Tools without an underscore are always allowed (they're framework or
@@ -25,8 +27,6 @@
25
27
  * role doesn't silently revoke anyone's tools.
26
28
  */
27
29
  export function createRoleFilterMiddleware(roleToModules, opts = {}) {
28
- const resolveToolName = opts.resolveToolName;
29
- const resolveToolNames = opts.resolveToolNames;
30
30
  const failClosed = opts.failClosed ?? false;
31
31
  const hasRules = Object.keys(roleToModules).length > 0;
32
32
  // Returns `null` = unrestricted (full access), array = restricted.
@@ -55,20 +55,8 @@ export function createRoleFilterMiddleware(roleToModules, opts = {}) {
55
55
  const toolsCall = async (ctx, next) => {
56
56
  if (!hasRules)
57
57
  return next();
58
- // A JSON-RPC batch can carry several tools/call requests — check them
59
- // all; a single-name check would let the remaining batch entries through.
60
- const resolvedNames = resolveToolNames?.();
61
- const resolved = resolveToolName?.();
62
- const fallbackName = typeof resolved === "string"
63
- ? resolved
64
- : typeof ctx.params?.name === "string"
65
- ? ctx.params.name
66
- : undefined;
67
- const toolNames = resolvedNames && resolvedNames.length > 0
68
- ? resolvedNames
69
- : fallbackName !== undefined
70
- ? [fallbackName]
71
- : [];
58
+ const name = typeof ctx.params?.name === "string" ? ctx.params.name : undefined;
59
+ const toolNames = name === undefined ? [] : [name];
72
60
  if (toolNames.length === 0) {
73
61
  if (failClosed) {
74
62
  throw new Error("Access denied: unable to resolve the tool name for this call; rejecting under fail-closed policy.");
@@ -1 +1 @@
1
- {"version":3,"file":"role-filter.js","sourceRoot":"","sources":["../../src/middleware/role-filter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"role-filter.js","sourceRoot":"","sources":["../../src/middleware/role-filter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AA+BH,MAAM,UAAU,0BAA0B,CACxC,aAAuC,EACvC,OAA0B,EAAE;IAE5B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,KAAK,CAAA;IAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;IAEtD,mEAAmE;IACnE,MAAM,iBAAiB,GAAG,CAAC,IAAqC,EAAmB,EAAE;QACnF,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAA;QAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,KAAkB,CAAC,CAAC,CAAC,EAAE,CAAA;QACxE,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,aAAa,CAAC,CAAA;QAC/D,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QAC7C,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IAC7E,CAAC,CAAA;IAED,MAAM,SAAS,GAAyB,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC1D,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,EAAE,CAAuB,CAAA;QAClD,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAA;QACpD,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACjD,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,KAAK,CAAA;QAClC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACxB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAA;YACtC,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;QACrD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,MAAM,SAAS,GAAyB,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC1D,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,EAAE,CAAA;QAC5B,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,MAAM,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;QAC/E,MAAM,SAAS,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAClD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CACb,mGAAmG,CACpG,CAAA;YACH,CAAC;YACD,OAAO,IAAI,EAAE,CAAA;QACf,CAAC;QACD,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACjD,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,IAAI,EAAE,CAAA;QACnC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,0EAA0E;YAC1E,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,SAAQ;YACrC,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YACjD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBACpC,MAAM,SAAS,GAAI,GAAG,CAAC,IAAI,EAAE,IAAyC,EAAE,KAAK,IAAI,EAAE,CAAA;gBACnF,MAAM,IAAI,KAAK,CACb,2BAA2B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,+BAA+B,YAAY,IAAI,CAC/F,CAAA;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,EAAE,CAAA;IACf,CAAC,CAAA;IAED,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAA;AACjC,CAAC"}
@@ -28,9 +28,15 @@ export interface CreateBackendRegistryOptions {
28
28
  */
29
29
  label?: string;
30
30
  /**
31
- * Resolves the current MCP session id. Defaults to reading the
32
- * `Mcp-Session-Id` header off the request context. Injectable for tests and
33
- * for hosts that key sessions differently.
31
+ * Resolves the current MCP session id, which keys the sticky per-session
32
+ * backend selection.
33
+ *
34
+ * **Required for multi-backend sticky selection since mcp-use 2.x.** The
35
+ * default returns `undefined` (see {@link defaultGetSessionId}), which makes
36
+ * every call fall back to the single default backend. Pass a resolver that
37
+ * reads the session off your tool handler's context —
38
+ * `(ctx) => ctx.session?.sessionId` — or off whatever your host keys
39
+ * sessions by.
34
40
  */
35
41
  getSessionId?: () => string | undefined;
36
42
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"backend-registry.d.ts","sourceRoot":"","sources":["../../src/tools/backend-registry.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,QAAsB,CAAA;AAEjE,uFAAuF;AACvF,MAAM,WAAW,YAAY,CAAC,OAAO,EAAE,KAAK,GAAG,SAAS;IACtD,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,OAAO,CAAA;IACf,IAAI,CAAC,EAAE,KAAK,CAAA;CACb;AAED,mDAAmD;AACnD,MAAM,WAAW,eAAe,CAAC,OAAO,EAAE,KAAK,GAAG,SAAS;IACzD,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,OAAO,CAAA;IACf,IAAI,EAAE,KAAK,GAAG,SAAS,CAAA;CACxB;AAkBD,MAAM,WAAW,4BAA4B;IAC3C,oFAAoF;IACpF,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;IACvC;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CACnB;AAED;;;;;;;;GAQG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,EAAG,sBAAsB,CAAS;IAC/C,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAA;gBACnB,YAAY,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM;CAQlD;AAED,yFAAyF;AACzF,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,IAAI,EAAG,iBAAiB,CAAS;IAC1C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAA;gBACnB,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM;CAMvE;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,eAAe,CAAC,OAAO,EAAE,KAAK,GAAG,SAAS;IACzD,iGAAiG;IACjG,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAC3D,oEAAoE;IACpE,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,yEAAyE;IACzE,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,wEAAwE;IACxE,IAAI,IAAI;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,KAAK,GAAG,SAAS,CAAA;KAAE,EAAE,CAAA;IACjD;;;;;;;OAOG;IACH,WAAW,IAAI,MAAM,GAAG,SAAS,CAAA;CAClC;AAOD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,KAAK,GAAG,SAAS,EAC9D,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EACvC,IAAI,GAAE,4BAAiC,GACtC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAmFjC;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EACxF,QAAQ,EAAE,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,EACzC,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,GAC9E,CAAC,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,CAMnC"}
1
+ {"version":3,"file":"backend-registry.d.ts","sourceRoot":"","sources":["../../src/tools/backend-registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,QAAsB,CAAA;AAEjE,uFAAuF;AACvF,MAAM,WAAW,YAAY,CAAC,OAAO,EAAE,KAAK,GAAG,SAAS;IACtD,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,OAAO,CAAA;IACf,IAAI,CAAC,EAAE,KAAK,CAAA;CACb;AAED,mDAAmD;AACnD,MAAM,WAAW,eAAe,CAAC,OAAO,EAAE,KAAK,GAAG,SAAS;IACzD,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,OAAO,CAAA;IACf,IAAI,EAAE,KAAK,GAAG,SAAS,CAAA;CACxB;AAqBD,MAAM,WAAW,4BAA4B;IAC3C,oFAAoF;IACpF,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;;;;;;;OAUG;IACH,YAAY,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;IACvC;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CACnB;AAED;;;;;;;;GAQG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,EAAG,sBAAsB,CAAS;IAC/C,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAA;gBACnB,YAAY,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM;CAQlD;AAED,yFAAyF;AACzF,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,IAAI,EAAG,iBAAiB,CAAS;IAC1C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAA;gBACnB,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM;CAMvE;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,eAAe,CAAC,OAAO,EAAE,KAAK,GAAG,SAAS;IACzD,iGAAiG;IACjG,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAC3D,oEAAoE;IACpE,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,yEAAyE;IACzE,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,wEAAwE;IACxE,IAAI,IAAI;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,KAAK,GAAG,SAAS,CAAA;KAAE,EAAE,CAAA;IACjD;;;;;;;OAOG;IACH,WAAW,IAAI,MAAM,GAAG,SAAS,CAAA;CAClC;AAOD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,KAAK,GAAG,SAAS,EAC9D,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EACvC,IAAI,GAAE,4BAAiC,GACtC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAmFjC;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EACxF,QAAQ,EAAE,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,EACzC,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,GAC9E,CAAC,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,CAMnC"}
@@ -1,4 +1,3 @@
1
- import { getRequestContext } from "mcp-use/server";
2
1
  /**
3
2
  * Default backend-selection TTL: how long a session's sticky pick survives
4
3
  * without being re-set. `mcp-use` exposes no session-close hook to plugins, so
@@ -8,20 +7,22 @@ import { getRequestContext } from "mcp-use/server";
8
7
  */
9
8
  export const DEFAULT_BACKEND_SESSION_TTL_MS = 24 * 60 * 60 * 1000;
10
9
  /**
11
- * Reads the active MCP session id for the in-flight tool call.
10
+ * Fallback session resolver: always `undefined`.
12
11
  *
13
- * `mcp-use` ships an internal session-id helper but it's not part of the
14
- * public `mcp-use/server` surface — we read the `Mcp-Session-Id` header off
15
- * the Hono request context that `mcp-use` propagates via AsyncLocalStorage to
16
- * every tool handler. Returns `undefined` for the stdio transport or when no
17
- * session header was negotiated (single-backend config keeps working anyway
18
- * because resolution falls back to the lone default).
12
+ * Until mcp-use 2.x this read the `Mcp-Session-Id` header off an ambient Hono
13
+ * context that `mcp-use` propagated through AsyncLocalStorage. 2.x removed
14
+ * `getRequestContext()` — a request's context now only reaches code that is
15
+ * handed it, and the transport is session-less by default — so there is no
16
+ * ambient source left to read.
17
+ *
18
+ * Returning `undefined` keeps the documented fail-soft path: resolution falls
19
+ * back to the lone default backend, so single-backend setups are unaffected.
20
+ * **Sticky per-session selection across several backends now requires passing
21
+ * {@link CreateBackendRegistryOptions.getSessionId} explicitly** — from a tool
22
+ * handler, `(ctx) => ctx.session?.sessionId` is the 2.x equivalent.
19
23
  */
20
24
  function defaultGetSessionId() {
21
- const ctx = getRequestContext();
22
- if (!ctx)
23
- return undefined;
24
- return ctx.req.header("Mcp-Session-Id") ?? ctx.req.header("mcp-session-id") ?? undefined;
25
+ return undefined;
25
26
  }
26
27
  /**
27
28
  * Thrown when a tool is invoked but no backend has been selected for the
@@ -1 +1 @@
1
- {"version":3,"file":"backend-registry.js","sourceRoot":"","sources":["../../src/tools/backend-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backend-registry.js","sourceRoot":"","sources":["../../src/tools/backend-registry.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- import { type McpServerInstance, type OAuthProvider, type ServerConfig } from "mcp-use/server";
2
- import { type DashboardStore } from "../framework/dashboard-store.js";
1
+ import { MCPServer, type ServerConfig } from "mcp-use";
2
+ import type { OAuthProvider } from "mcp-use/oauth";
3
+ import type { DashboardStore } from "../framework/dashboard-store.js";
3
4
  import type { AppConfig, AppPlugin } from "../types/index.js";
4
- import { type AppResourceCsp } from "./register-framework-tools.js";
5
+ import type { AppResourceCsp } from "../types/meta.js";
5
6
  export interface CreateFrameworkAppOptionsBase {
6
7
  name: string;
7
8
  version?: string;
@@ -11,22 +12,18 @@ export interface CreateFrameworkAppOptionsBase {
11
12
  * `serverInfo`-adjacent surfaces.
12
13
  */
13
14
  description?: string;
14
- /** Public base URL the server advertises (resource URIs, oauth callbacks). */
15
- baseUrl?: string;
16
15
  host?: string;
17
16
  /**
18
17
  * Pass-through of the remaining mcp-use {@link ServerConfig} handed to the
19
18
  * `MCPServer` constructor. The main use case is wiring session/stream
20
- * backends — e.g. Redis-backed `sessionStore` / `streamManager` so several
21
- * server instances can share sessions — but any mcp-use server option
22
- * (`stateless`, `cors`, `sessionIdleTimeoutMs`, `instructions`, …) works
23
- * without the toolkit having to mirror it. The six toolkit-owned keys
24
- * (`name`, `version`, `description`, `host`, `baseUrl`, `oauth`) are
25
- * excluded via `Omit` because they are first-class options on this
26
- * interface already; `oauth` additionally stays out because it selects the
27
- * `MCPServer<true | false>` constructor overload.
19
+ * options it does not mirror — `cors`, `instructions`, `allowedOrigins`,
20
+ * `logging`, … — straight through to the `MCPServer` constructor. The
21
+ * toolkit-owned keys
22
+ * (`name`, `version`, `description`, `host`, `oauth`) are excluded via
23
+ * `Omit` because they are first-class options on this interface already;
24
+ * `oauth` additionally stays out because it carries the `TUser` generic.
28
25
  */
29
- serverOptions?: Omit<ServerConfig, "name" | "version" | "description" | "host" | "baseUrl" | "oauth">;
26
+ serverOptions?: Omit<ServerConfig, "name" | "version" | "description" | "host" | "oauth">;
30
27
  plugins: AppPlugin[];
31
28
  middleware?: {
32
29
  /** When set, every RPC must come from a token with this organization_id. */
@@ -45,23 +42,26 @@ export interface CreateFrameworkAppOptionsBase {
45
42
  };
46
43
  app: {
47
44
  /**
48
- * MCP UI resource URI that hosts the widget bundle. Optional — when
49
- * omitted it is derived as `ui://<name>/mcp-app.<hash>.html`, content-
50
- * hashing the file at {@link htmlPath} so each build yields a distinct,
51
- * cache-busting URI (see `deriveAppResourceUri`). Pass an explicit value
52
- * only to pin the URI.
45
+ * The compiled widget bundle backing every view this server binds. Views
46
+ * are registered natively with mcp-use (which owns the view resources,
47
+ * their `ui://views/<name>.html` URIs, and the `_meta.ui` wire keys);
48
+ * every tool-bound view name resolves to this one bundle — the bundle's
49
+ * widget map decides what actually renders.
53
50
  */
54
- resourceUri?: string;
55
- /** Absolute path to the bundled `mcp-app.html` served under `resourceUri`. */
56
- htmlPath: string;
51
+ bundle: {
52
+ /** Absolute path to the bundle's ES module (e.g. `dist/mcp-app.js`). */
53
+ jsPath: string;
54
+ /** Absolute path to the bundle's stylesheet, when the build emits one. */
55
+ cssPath?: string;
56
+ };
57
57
  /** Override the refresh tool name (default: `refresh-view`). */
58
58
  refreshToolName?: string;
59
59
  /**
60
- * Additional CSP origins advertised on the widget resource
61
- * (`_meta.ui.csp`) and widget tools (`openai/widgetCSP`). The origin of
62
- * {@link CreateFrameworkAppOptionsBase.baseUrl} is always merged in, so
63
- * most deployments never need this — set it only when widgets fetch from
64
- * origins other than the server itself (e.g. a CDN).
60
+ * Additional CSP origins advertised on the view resources
61
+ * (`_meta.ui.csp`) and widget tools (`openai/widgetCSP`). The server
62
+ * origin is appended by mcp-use itself at emission time, so most
63
+ * deployments never need this — set it only when widgets fetch from
64
+ * origins other than the server (e.g. a CDN).
65
65
  */
66
66
  csp?: AppResourceCsp;
67
67
  /**
@@ -70,8 +70,8 @@ export interface CreateFrameworkAppOptionsBase {
70
70
  *
71
71
  * Widget rendering always works regardless of this flag:
72
72
  * `get-framework-manifest`, `render-view`, and `refresh-view` (plus the
73
- * `mcp-app.html` resource) are registered unconditionally — that is the
74
- * core surface every MCP server gets.
73
+ * natively registered view resources) are registered unconditionally —
74
+ * that is the core surface every MCP server gets.
75
75
  *
76
76
  * Setting `builder: true` additionally registers:
77
77
  * - `get-builder-catalogue` — the app-only data source the in-iframe
@@ -112,8 +112,8 @@ export interface CreateFrameworkAppOptionsBase {
112
112
  * typed as `MCPServer<true>`, so tool callbacks receive a non-nullable
113
113
  * `ctx.auth`.
114
114
  */
115
- export interface CreateFrameworkAppOptionsWithOAuth extends CreateFrameworkAppOptionsBase {
116
- oauth: OAuthProvider;
115
+ export interface CreateFrameworkAppOptionsWithOAuth<TUser = unknown> extends CreateFrameworkAppOptionsBase {
116
+ oauth: OAuthProvider<TUser>;
117
117
  }
118
118
  /**
119
119
  * `createFrameworkApp` options with OAuth disabled. The returned server is
@@ -123,12 +123,25 @@ export interface CreateFrameworkAppOptionsWithOAuth extends CreateFrameworkAppOp
123
123
  export interface CreateFrameworkAppOptionsWithoutOAuth extends CreateFrameworkAppOptionsBase {
124
124
  oauth?: undefined;
125
125
  }
126
- export type CreateFrameworkAppOptions = CreateFrameworkAppOptionsWithOAuth | CreateFrameworkAppOptionsWithoutOAuth;
126
+ export type CreateFrameworkAppOptions<TUser = unknown> = CreateFrameworkAppOptionsWithOAuth<TUser> | CreateFrameworkAppOptionsWithoutOAuth;
127
127
  /**
128
- * Orchestrates a full Miranum-style MCP server: MCPServer construction,
129
- * org-gate + role-filter middleware, per-plugin tool registration, and the
130
- * framework-level tool trio (`get-framework-manifest`, `render-view`,
131
- * `refresh-view`) + mcp-app.html resource.
128
+ * The batteries-included wrapper — the toolkit's **Node adapter**: MCPServer
129
+ * construction, org-gate + role-filter middleware, `installToolkit` (the
130
+ * framework tool surface), and native view registration from a self-built
131
+ * bundle. Reach for it when the server must run in your own process (embedded
132
+ * in existing infrastructure, custom entrypoints) or ship the views inline in
133
+ * the MCP resources (gateways that only forward the JSON-RPC endpoint).
134
+ *
135
+ * The standard path for new projects is the other way around: a plain
136
+ * mcp-use project (own `MCPServer`, `views/` convention, `mcp-use dev` /
137
+ * `build` / `start`) with {@link installToolkit} on top — the CLI then owns
138
+ * view building and serving, and this wrapper is not involved.
139
+ *
140
+ * Views are mcp-use-native either way: every tool registered with a `view`
141
+ * binding (render-view, plus each plugin's model-visible widget tools) is
142
+ * collected during boot, and the view registry is then primed once with the
143
+ * compiled app bundle from `app.bundle` — one bundle, many view names,
144
+ * mcp-use owns the resources and the `_meta.ui` wire keys.
132
145
  *
133
146
  * The server is deliberately self-contained: it serves only the first-party
134
147
  * plugins passed in. Aggregating several MCP servers into one surface is an
@@ -142,6 +155,6 @@ export type CreateFrameworkAppOptions = CreateFrameworkAppOptionsWithOAuth | Cre
142
155
  * Returns the booted server before `.listen()` — the caller decides the port
143
156
  * and the moment the server starts accepting traffic.
144
157
  */
145
- export declare function createFrameworkApp(options: CreateFrameworkAppOptionsWithOAuth): Promise<McpServerInstance<true>>;
146
- export declare function createFrameworkApp(options: CreateFrameworkAppOptionsWithoutOAuth): Promise<McpServerInstance<false>>;
158
+ export declare function createFrameworkApp<TUser>(options: CreateFrameworkAppOptionsWithOAuth<TUser>): Promise<MCPServer<TUser>>;
159
+ export declare function createFrameworkApp(options: CreateFrameworkAppOptionsWithoutOAuth): Promise<MCPServer>;
147
160
  //# sourceMappingURL=create-framework-app.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-framework-app.d.ts","sourceRoot":"","sources":["../../src/tools/create-framework-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,gBAAgB,CAAA;AAMvB,OAAO,EAAgC,KAAK,cAAc,EAAE,MAAM,iCAAiC,CAAA;AACnG,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAM3F,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,EAAE,IAAI,CAClB,YAAY,EACZ,MAAM,GAAG,SAAS,GAAG,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAClE,CAAA;IACD,OAAO,EAAE,SAAS,EAAE,CAAA;IACpB,UAAU,CAAC,EAAE;QACX,4EAA4E;QAC5E,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,wEAAwE;QACxE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;QACrC;;;;;;;WAOG;QACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;KAC/B,CAAA;IACD,GAAG,EAAE;QACH;;;;;;WAMG;QACH,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,8EAA8E;QAC9E,QAAQ,EAAE,MAAM,CAAA;QAChB,gEAAgE;QAChE,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB;;;;;;WAMG;QACH,GAAG,CAAC,EAAE,cAAc,CAAA;QACpB;;;;;;;;;;;;;;;;;;;;;WAqBG;QACH,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB;;;;;WAKG;QACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;QAC1B;;;;;;;WAOG;QACH,cAAc,CAAC,EAAE,cAAc,CAAA;KAChC,CAAA;IACD,iEAAiE;IACjE,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,kCAAmC,SAAQ,6BAA6B;IACvF,KAAK,EAAE,aAAa,CAAA;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,qCAAsC,SAAQ,6BAA6B;IAC1F,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB;AAED,MAAM,MAAM,yBAAyB,GACnC,kCAAkC,GAAG,qCAAqC,CAAA;AAE5E;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,kCAAkC,GAC1C,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAA;AACnC,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,qCAAqC,GAC7C,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"create-framework-app.d.ts","sourceRoot":"","sources":["../../src/tools/create-framework-app.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EAET,KAAK,YAAY,EAGlB,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAGlD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAGtD,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,aAAa,GAAG,MAAM,GAAG,OAAO,CAAC,CAAA;IACzF,OAAO,EAAE,SAAS,EAAE,CAAA;IACpB,UAAU,CAAC,EAAE;QACX,4EAA4E;QAC5E,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,wEAAwE;QACxE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;QACrC;;;;;;;WAOG;QACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;KAC/B,CAAA;IACD,GAAG,EAAE;QACH;;;;;;WAMG;QACH,MAAM,EAAE;YACN,wEAAwE;YACxE,MAAM,EAAE,MAAM,CAAA;YACd,0EAA0E;YAC1E,OAAO,CAAC,EAAE,MAAM,CAAA;SACjB,CAAA;QACD,gEAAgE;QAChE,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB;;;;;;WAMG;QACH,GAAG,CAAC,EAAE,cAAc,CAAA;QACpB;;;;;;;;;;;;;;;;;;;;;WAqBG;QACH,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB;;;;;WAKG;QACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;QAC1B;;;;;;;WAOG;QACH,cAAc,CAAC,EAAE,cAAc,CAAA;KAChC,CAAA;IACD,iEAAiE;IACjE,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,kCAAkC,CACjD,KAAK,GAAG,OAAO,CACf,SAAQ,6BAA6B;IACrC,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAA;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,qCAAsC,SAAQ,6BAA6B;IAC1F,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB;AAED,MAAM,MAAM,yBAAyB,CAAC,KAAK,GAAG,OAAO,IACnD,kCAAkC,CAAC,KAAK,CAAC,GAAG,qCAAqC,CAAA;AAoBnF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EACtC,OAAO,EAAE,kCAAkC,CAAC,KAAK,CAAC,GACjD,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;AAC5B,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,qCAAqC,GAC7C,OAAO,CAAC,SAAS,CAAC,CAAA"}