@miragon/pulse-widget-shell 0.0.0-bootstrap.0 → 0.21.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.
- package/LICENSE +21 -0
- package/README.md +163 -3
- package/dist/adapt-data-widget.d.ts +7 -0
- package/dist/adapt-data-widget.d.ts.map +1 -0
- package/dist/adapt-data-widget.js +7 -0
- package/dist/adapt-data-widget.js.map +1 -0
- package/dist/bpmn-names.d.ts +42 -0
- package/dist/bpmn-names.d.ts.map +1 -0
- package/dist/bpmn-names.js +151 -0
- package/dist/bpmn-names.js.map +1 -0
- package/dist/bpmn-names.test.d.ts +2 -0
- package/dist/bpmn-names.test.d.ts.map +1 -0
- package/dist/bpmn-names.test.js +143 -0
- package/dist/bpmn-names.test.js.map +1 -0
- package/dist/build-data-feed-result.test.d.ts +2 -0
- package/dist/build-data-feed-result.test.d.ts.map +1 -0
- package/dist/build-data-feed-result.test.js +28 -0
- package/dist/build-data-feed-result.test.js.map +1 -0
- package/dist/build-single-widget-view.test.d.ts +2 -0
- package/dist/build-single-widget-view.test.d.ts.map +1 -0
- package/dist/build-single-widget-view.test.js +136 -0
- package/dist/build-single-widget-view.test.js.map +1 -0
- package/dist/builder-texts.d.ts +27 -0
- package/dist/builder-texts.d.ts.map +1 -0
- package/dist/builder-texts.js +32 -0
- package/dist/builder-texts.js.map +1 -0
- package/dist/builder-texts.test.d.ts +2 -0
- package/dist/builder-texts.test.d.ts.map +1 -0
- package/dist/builder-texts.test.js +54 -0
- package/dist/builder-texts.test.js.map +1 -0
- package/dist/catalogue-sync.d.ts +18 -0
- package/dist/catalogue-sync.d.ts.map +1 -0
- package/dist/catalogue-sync.js +31 -0
- package/dist/catalogue-sync.js.map +1 -0
- package/dist/catalogue-sync.test.d.ts +2 -0
- package/dist/catalogue-sync.test.d.ts.map +1 -0
- package/dist/catalogue-sync.test.js +22 -0
- package/dist/catalogue-sync.test.js.map +1 -0
- package/dist/composed-server.d.ts +110 -0
- package/dist/composed-server.d.ts.map +1 -0
- package/dist/composed-server.edge.test.d.ts +2 -0
- package/dist/composed-server.edge.test.d.ts.map +1 -0
- package/dist/composed-server.edge.test.js +184 -0
- package/dist/composed-server.edge.test.js.map +1 -0
- package/dist/composed-server.fonts.test.d.ts +2 -0
- package/dist/composed-server.fonts.test.d.ts.map +1 -0
- package/dist/composed-server.fonts.test.js +186 -0
- package/dist/composed-server.fonts.test.js.map +1 -0
- package/dist/composed-server.js +260 -0
- package/dist/composed-server.js.map +1 -0
- package/dist/composed-server.test.d.ts +2 -0
- package/dist/composed-server.test.d.ts.map +1 -0
- package/dist/composed-server.test.js +332 -0
- package/dist/composed-server.test.js.map +1 -0
- package/dist/composition.d.ts +155 -0
- package/dist/composition.d.ts.map +1 -0
- package/dist/composition.js +163 -0
- package/dist/composition.js.map +1 -0
- package/dist/composition.test.d.ts +2 -0
- package/dist/composition.test.d.ts.map +1 -0
- package/dist/composition.test.js +275 -0
- package/dist/composition.test.js.map +1 -0
- package/dist/dashboard-store-postgres.d.ts +43 -0
- package/dist/dashboard-store-postgres.d.ts.map +1 -0
- package/dist/dashboard-store-postgres.js +225 -0
- package/dist/dashboard-store-postgres.js.map +1 -0
- package/dist/dashboard-store-postgres.test.d.ts +2 -0
- package/dist/dashboard-store-postgres.test.d.ts.map +1 -0
- package/dist/dashboard-store-postgres.test.js +272 -0
- package/dist/dashboard-store-postgres.test.js.map +1 -0
- package/dist/font-assets.d.ts +47 -0
- package/dist/font-assets.d.ts.map +1 -0
- package/dist/font-assets.js +93 -0
- package/dist/font-assets.js.map +1 -0
- package/dist/font-assets.test.d.ts +2 -0
- package/dist/font-assets.test.d.ts.map +1 -0
- package/dist/font-assets.test.js +123 -0
- package/dist/font-assets.test.js.map +1 -0
- package/dist/health.d.ts +59 -0
- package/dist/health.d.ts.map +1 -0
- package/dist/health.js +74 -0
- package/dist/health.js.map +1 -0
- package/dist/health.test.d.ts +2 -0
- package/dist/health.test.d.ts.map +1 -0
- package/dist/health.test.js +140 -0
- package/dist/health.test.js.map +1 -0
- package/dist/host-boot.d.ts +56 -0
- package/dist/host-boot.d.ts.map +1 -0
- package/dist/host-boot.js +64 -0
- package/dist/host-boot.js.map +1 -0
- package/dist/host-boot.test.d.ts +2 -0
- package/dist/host-boot.test.d.ts.map +1 -0
- package/dist/host-boot.test.js +59 -0
- package/dist/host-boot.test.js.map +1 -0
- package/dist/http-edge.d.ts +117 -0
- package/dist/http-edge.d.ts.map +1 -0
- package/dist/http-edge.js +219 -0
- package/dist/http-edge.js.map +1 -0
- package/dist/http-edge.test.d.ts +2 -0
- package/dist/http-edge.test.d.ts.map +1 -0
- package/dist/http-edge.test.js +255 -0
- package/dist/http-edge.test.js.map +1 -0
- package/dist/metrics.d.ts +48 -0
- package/dist/metrics.d.ts.map +1 -0
- package/dist/metrics.js +124 -0
- package/dist/metrics.js.map +1 -0
- package/dist/metrics.test.d.ts +2 -0
- package/dist/metrics.test.d.ts.map +1 -0
- package/dist/metrics.test.js +154 -0
- package/dist/metrics.test.js.map +1 -0
- package/dist/node-listener.d.ts +61 -0
- package/dist/node-listener.d.ts.map +1 -0
- package/dist/node-listener.js +165 -0
- package/dist/node-listener.js.map +1 -0
- package/dist/node-listener.test.d.ts +2 -0
- package/dist/node-listener.test.d.ts.map +1 -0
- package/dist/node-listener.test.js +331 -0
- package/dist/node-listener.test.js.map +1 -0
- package/dist/oauth-env.d.ts +42 -0
- package/dist/oauth-env.d.ts.map +1 -0
- package/dist/oauth-env.js +78 -0
- package/dist/oauth-env.js.map +1 -0
- package/dist/oauth-env.test.d.ts +2 -0
- package/dist/oauth-env.test.d.ts.map +1 -0
- package/dist/oauth-env.test.js +76 -0
- package/dist/oauth-env.test.js.map +1 -0
- package/dist/postgres.d.ts +59 -0
- package/dist/postgres.d.ts.map +1 -0
- package/dist/postgres.js +80 -0
- package/dist/postgres.js.map +1 -0
- package/dist/profile-advisory.d.ts +19 -0
- package/dist/profile-advisory.d.ts.map +1 -0
- package/dist/profile-advisory.js +48 -0
- package/dist/profile-advisory.js.map +1 -0
- package/dist/profile-advisory.test.d.ts +2 -0
- package/dist/profile-advisory.test.d.ts.map +1 -0
- package/dist/profile-advisory.test.js +53 -0
- package/dist/profile-advisory.test.js.map +1 -0
- package/dist/profile-constants.d.ts +37 -0
- package/dist/profile-constants.d.ts.map +1 -0
- package/dist/profile-constants.js +37 -0
- package/dist/profile-constants.js.map +1 -0
- package/dist/profile-migrations.d.ts +71 -0
- package/dist/profile-migrations.d.ts.map +1 -0
- package/dist/profile-migrations.js +88 -0
- package/dist/profile-migrations.js.map +1 -0
- package/dist/profile-migrations.test.d.ts +2 -0
- package/dist/profile-migrations.test.d.ts.map +1 -0
- package/dist/profile-migrations.test.js +200 -0
- package/dist/profile-migrations.test.js.map +1 -0
- package/dist/profile-record.d.ts +60 -0
- package/dist/profile-record.d.ts.map +1 -0
- package/dist/profile-record.js +78 -0
- package/dist/profile-record.js.map +1 -0
- package/dist/profile-slice.d.ts +53 -0
- package/dist/profile-slice.d.ts.map +1 -0
- package/dist/profile-slice.js +73 -0
- package/dist/profile-slice.js.map +1 -0
- package/dist/profile-slice.test.d.ts +2 -0
- package/dist/profile-slice.test.d.ts.map +1 -0
- package/dist/profile-slice.test.js +73 -0
- package/dist/profile-slice.test.js.map +1 -0
- package/dist/profile-store-env.d.ts +34 -0
- package/dist/profile-store-env.d.ts.map +1 -0
- package/dist/profile-store-env.js +44 -0
- package/dist/profile-store-env.js.map +1 -0
- package/dist/profile-store-env.test.d.ts +2 -0
- package/dist/profile-store-env.test.d.ts.map +1 -0
- package/dist/profile-store-env.test.js +69 -0
- package/dist/profile-store-env.test.js.map +1 -0
- package/dist/profile-store-postgres.d.ts +33 -0
- package/dist/profile-store-postgres.d.ts.map +1 -0
- package/dist/profile-store-postgres.js +87 -0
- package/dist/profile-store-postgres.js.map +1 -0
- package/dist/profile-store-raw.test.d.ts +2 -0
- package/dist/profile-store-raw.test.d.ts.map +1 -0
- package/dist/profile-store-raw.test.js +185 -0
- package/dist/profile-store-raw.test.js.map +1 -0
- package/dist/profile-store.d.ts +85 -0
- package/dist/profile-store.d.ts.map +1 -0
- package/dist/profile-store.js +182 -0
- package/dist/profile-store.js.map +1 -0
- package/dist/profile-store.test.d.ts +2 -0
- package/dist/profile-store.test.d.ts.map +1 -0
- package/dist/profile-store.test.js +353 -0
- package/dist/profile-store.test.js.map +1 -0
- package/dist/profile.d.ts +75 -0
- package/dist/profile.d.ts.map +1 -0
- package/dist/profile.js +85 -0
- package/dist/profile.js.map +1 -0
- package/dist/profile.test.d.ts +2 -0
- package/dist/profile.test.d.ts.map +1 -0
- package/dist/profile.test.js +71 -0
- package/dist/profile.test.js.map +1 -0
- package/dist/request-context.d.ts +47 -0
- package/dist/request-context.d.ts.map +1 -0
- package/dist/request-context.js +85 -0
- package/dist/request-context.js.map +1 -0
- package/dist/request-context.test.d.ts +2 -0
- package/dist/request-context.test.d.ts.map +1 -0
- package/dist/request-context.test.js +107 -0
- package/dist/request-context.test.js.map +1 -0
- package/dist/served-fonts.d.ts +38 -0
- package/dist/served-fonts.d.ts.map +1 -0
- package/dist/served-fonts.js +51 -0
- package/dist/served-fonts.js.map +1 -0
- package/dist/served-fonts.test.d.ts +2 -0
- package/dist/served-fonts.test.d.ts.map +1 -0
- package/dist/served-fonts.test.js +30 -0
- package/dist/served-fonts.test.js.map +1 -0
- package/dist/server-locale.d.ts +58 -0
- package/dist/server-locale.d.ts.map +1 -0
- package/dist/server-locale.js +64 -0
- package/dist/server-locale.js.map +1 -0
- package/dist/server-locale.test.d.ts +2 -0
- package/dist/server-locale.test.d.ts.map +1 -0
- package/dist/server-locale.test.js +90 -0
- package/dist/server-locale.test.js.map +1 -0
- package/dist/server.d.ts +43 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +34 -0
- package/dist/server.js.map +1 -0
- package/dist/shell-catalogue.d.ts +12 -0
- package/dist/shell-catalogue.d.ts.map +1 -0
- package/dist/shell-catalogue.js +142 -0
- package/dist/shell-catalogue.js.map +1 -0
- package/dist/shell-settings-contract.d.ts +34 -0
- package/dist/shell-settings-contract.d.ts.map +1 -0
- package/dist/shell-settings-contract.js +21 -0
- package/dist/shell-settings-contract.js.map +1 -0
- package/dist/shell-settings.d.ts +24 -0
- package/dist/shell-settings.d.ts.map +1 -0
- package/dist/shell-settings.js +148 -0
- package/dist/shell-settings.js.map +1 -0
- package/dist/shell-settings.test.d.ts +2 -0
- package/dist/shell-settings.test.d.ts.map +1 -0
- package/dist/shell-settings.test.js +115 -0
- package/dist/shell-settings.test.js.map +1 -0
- package/dist/testing/catalog-text.d.ts +53 -0
- package/dist/testing/catalog-text.d.ts.map +1 -0
- package/dist/testing/catalog-text.js +146 -0
- package/dist/testing/catalog-text.js.map +1 -0
- package/dist/testing/catalog-text.test.d.ts +2 -0
- package/dist/testing/catalog-text.test.d.ts.map +1 -0
- package/dist/testing/catalog-text.test.js +137 -0
- package/dist/testing/catalog-text.test.js.map +1 -0
- package/dist/testing/colors.d.ts +34 -0
- package/dist/testing/colors.d.ts.map +1 -0
- package/dist/testing/colors.js +124 -0
- package/dist/testing/colors.js.map +1 -0
- package/dist/testing/colors.test.d.ts +2 -0
- package/dist/testing/colors.test.d.ts.map +1 -0
- package/dist/testing/colors.test.js +166 -0
- package/dist/testing/colors.test.js.map +1 -0
- package/dist/testing/contrast.d.ts +77 -0
- package/dist/testing/contrast.d.ts.map +1 -0
- package/dist/testing/contrast.js +382 -0
- package/dist/testing/contrast.js.map +1 -0
- package/dist/testing/contrast.test.d.ts +2 -0
- package/dist/testing/contrast.test.d.ts.map +1 -0
- package/dist/testing/contrast.test.js +230 -0
- package/dist/testing/contrast.test.js.map +1 -0
- package/dist/testing/display-texts.d.ts +23 -0
- package/dist/testing/display-texts.d.ts.map +1 -0
- package/dist/testing/display-texts.js +88 -0
- package/dist/testing/display-texts.js.map +1 -0
- package/dist/testing/display-texts.test.d.ts +2 -0
- package/dist/testing/display-texts.test.d.ts.map +1 -0
- package/dist/testing/display-texts.test.js +169 -0
- package/dist/testing/display-texts.test.js.map +1 -0
- package/dist/testing/glossary.d.ts +52 -0
- package/dist/testing/glossary.d.ts.map +1 -0
- package/dist/testing/glossary.js +135 -0
- package/dist/testing/glossary.js.map +1 -0
- package/dist/testing/glossary.test.d.ts +2 -0
- package/dist/testing/glossary.test.d.ts.map +1 -0
- package/dist/testing/glossary.test.js +78 -0
- package/dist/testing/glossary.test.js.map +1 -0
- package/dist/testing/glyphs.d.ts +27 -0
- package/dist/testing/glyphs.d.ts.map +1 -0
- package/dist/testing/glyphs.js +130 -0
- package/dist/testing/glyphs.js.map +1 -0
- package/dist/testing/glyphs.test.d.ts +2 -0
- package/dist/testing/glyphs.test.d.ts.map +1 -0
- package/dist/testing/glyphs.test.js +146 -0
- package/dist/testing/glyphs.test.js.map +1 -0
- package/dist/testing/icon-sizes.d.ts +22 -0
- package/dist/testing/icon-sizes.d.ts.map +1 -0
- package/dist/testing/icon-sizes.js +39 -0
- package/dist/testing/icon-sizes.js.map +1 -0
- package/dist/testing/icon-sizes.test.d.ts +2 -0
- package/dist/testing/icon-sizes.test.d.ts.map +1 -0
- package/dist/testing/icon-sizes.test.js +36 -0
- package/dist/testing/icon-sizes.test.js.map +1 -0
- package/dist/testing/index.d.ts +40 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +40 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/source-scan.d.ts +16 -0
- package/dist/testing/source-scan.d.ts.map +1 -0
- package/dist/testing/source-scan.js +57 -0
- package/dist/testing/source-scan.js.map +1 -0
- package/dist/testing/tone-pairs.d.ts +20 -0
- package/dist/testing/tone-pairs.d.ts.map +1 -0
- package/dist/testing/tone-pairs.js +154 -0
- package/dist/testing/tone-pairs.js.map +1 -0
- package/dist/testing/type-scale.d.ts +40 -0
- package/dist/testing/type-scale.d.ts.map +1 -0
- package/dist/testing/type-scale.js +55 -0
- package/dist/testing/type-scale.js.map +1 -0
- package/dist/testing/type-scale.test.d.ts +2 -0
- package/dist/testing/type-scale.test.d.ts.map +1 -0
- package/dist/testing/type-scale.test.js +61 -0
- package/dist/testing/type-scale.test.js.map +1 -0
- package/dist/tool-schema-trim.d.ts +24 -0
- package/dist/tool-schema-trim.d.ts.map +1 -0
- package/dist/tool-schema-trim.js +49 -0
- package/dist/tool-schema-trim.js.map +1 -0
- package/dist/tool-schema-trim.test.d.ts +2 -0
- package/dist/tool-schema-trim.test.d.ts.map +1 -0
- package/dist/tool-schema-trim.test.js +53 -0
- package/dist/tool-schema-trim.test.js.map +1 -0
- package/dist/toolsets.d.ts +76 -0
- package/dist/toolsets.d.ts.map +1 -0
- package/dist/toolsets.js +41 -0
- package/dist/toolsets.js.map +1 -0
- package/dist/toolsets.test.d.ts +2 -0
- package/dist/toolsets.test.d.ts.map +1 -0
- package/dist/toolsets.test.js +86 -0
- package/dist/toolsets.test.js.map +1 -0
- package/dist/ui/action-feedback.d.ts +33 -0
- package/dist/ui/action-feedback.d.ts.map +1 -0
- package/dist/ui/action-feedback.js +51 -0
- package/dist/ui/action-feedback.js.map +1 -0
- package/dist/ui/action-feedback.test.d.ts +2 -0
- package/dist/ui/action-feedback.test.d.ts.map +1 -0
- package/dist/ui/action-feedback.test.js +77 -0
- package/dist/ui/action-feedback.test.js.map +1 -0
- package/dist/ui/app-shell-providers.d.ts +18 -0
- package/dist/ui/app-shell-providers.d.ts.map +1 -0
- package/dist/ui/app-shell-providers.js +19 -0
- package/dist/ui/app-shell-providers.js.map +1 -0
- package/dist/ui/app-shell-providers.test.d.ts +2 -0
- package/dist/ui/app-shell-providers.test.d.ts.map +1 -0
- package/dist/ui/app-shell-providers.test.js +249 -0
- package/dist/ui/app-shell-providers.test.js.map +1 -0
- package/dist/ui/ask-ai-button.d.ts +56 -0
- package/dist/ui/ask-ai-button.d.ts.map +1 -0
- package/dist/ui/ask-ai-button.js +36 -0
- package/dist/ui/ask-ai-button.js.map +1 -0
- package/dist/ui/ask-ai-button.test.d.ts +2 -0
- package/dist/ui/ask-ai-button.test.d.ts.map +1 -0
- package/dist/ui/ask-ai-button.test.js +103 -0
- package/dist/ui/ask-ai-button.test.js.map +1 -0
- package/dist/ui/ask-ai-prompt.d.ts +115 -0
- package/dist/ui/ask-ai-prompt.d.ts.map +1 -0
- package/dist/ui/ask-ai-prompt.js +174 -0
- package/dist/ui/ask-ai-prompt.js.map +1 -0
- package/dist/ui/ask-ai-prompt.test.d.ts +2 -0
- package/dist/ui/ask-ai-prompt.test.d.ts.map +1 -0
- package/dist/ui/ask-ai-prompt.test.js +240 -0
- package/dist/ui/ask-ai-prompt.test.js.map +1 -0
- package/dist/ui/bpmn-heatmap/heat-ramp.test.d.ts +2 -0
- package/dist/ui/bpmn-heatmap/heat-ramp.test.d.ts.map +1 -0
- package/dist/ui/bpmn-heatmap/heat-ramp.test.js +174 -0
- package/dist/ui/bpmn-heatmap/heat-ramp.test.js.map +1 -0
- package/dist/ui/bpmn-heatmap/heat-utils.d.ts +119 -0
- package/dist/ui/bpmn-heatmap/heat-utils.d.ts.map +1 -0
- package/dist/ui/bpmn-heatmap/heat-utils.js +231 -0
- package/dist/ui/bpmn-heatmap/heat-utils.js.map +1 -0
- package/dist/ui/bpmn-heatmap/heat-utils.test.d.ts +2 -0
- package/dist/ui/bpmn-heatmap/heat-utils.test.d.ts.map +1 -0
- package/dist/ui/bpmn-heatmap/heat-utils.test.js +59 -0
- package/dist/ui/bpmn-heatmap/heat-utils.test.js.map +1 -0
- package/dist/ui/bpmn-heatmap-labels.d.ts +46 -0
- package/dist/ui/bpmn-heatmap-labels.d.ts.map +1 -0
- package/dist/ui/bpmn-heatmap-labels.js +16 -0
- package/dist/ui/bpmn-heatmap-labels.js.map +1 -0
- package/dist/ui/bpmn-heatmap-widget.d.ts +38 -0
- package/dist/ui/bpmn-heatmap-widget.d.ts.map +1 -0
- package/dist/ui/bpmn-heatmap-widget.js +65 -0
- package/dist/ui/bpmn-heatmap-widget.js.map +1 -0
- package/dist/ui/bpmn-heatmap-widget.test.d.ts +2 -0
- package/dist/ui/bpmn-heatmap-widget.test.d.ts.map +1 -0
- package/dist/ui/bpmn-heatmap-widget.test.js +173 -0
- package/dist/ui/bpmn-heatmap-widget.test.js.map +1 -0
- package/dist/ui/bpmn-heatmap.d.ts +61 -0
- package/dist/ui/bpmn-heatmap.d.ts.map +1 -0
- package/dist/ui/bpmn-heatmap.js +119 -0
- package/dist/ui/bpmn-heatmap.js.map +1 -0
- package/dist/ui/bpmn-tokens.d.ts +81 -0
- package/dist/ui/bpmn-tokens.d.ts.map +1 -0
- package/dist/ui/bpmn-tokens.js +114 -0
- package/dist/ui/bpmn-tokens.js.map +1 -0
- package/dist/ui/bpmn-tokens.test.d.ts +2 -0
- package/dist/ui/bpmn-tokens.test.d.ts.map +1 -0
- package/dist/ui/bpmn-tokens.test.js +98 -0
- package/dist/ui/bpmn-tokens.test.js.map +1 -0
- package/dist/ui/bpmn-zoom-controls.d.ts +30 -0
- package/dist/ui/bpmn-zoom-controls.d.ts.map +1 -0
- package/dist/ui/bpmn-zoom-controls.js +29 -0
- package/dist/ui/bpmn-zoom-controls.js.map +1 -0
- package/dist/ui/brand-gates.test.d.ts +2 -0
- package/dist/ui/brand-gates.test.d.ts.map +1 -0
- package/dist/ui/brand-gates.test.js +131 -0
- package/dist/ui/brand-gates.test.js.map +1 -0
- package/dist/ui/brand-mark.d.ts +37 -0
- package/dist/ui/brand-mark.d.ts.map +1 -0
- package/dist/ui/brand-mark.js +33 -0
- package/dist/ui/brand-mark.js.map +1 -0
- package/dist/ui/brand-mark.test.d.ts +2 -0
- package/dist/ui/brand-mark.test.d.ts.map +1 -0
- package/dist/ui/brand-mark.test.js +111 -0
- package/dist/ui/brand-mark.test.js.map +1 -0
- package/dist/ui/confirm-dialog.d.ts +55 -0
- package/dist/ui/confirm-dialog.d.ts.map +1 -0
- package/dist/ui/confirm-dialog.js +59 -0
- package/dist/ui/confirm-dialog.js.map +1 -0
- package/dist/ui/confirm-dialog.test.d.ts +2 -0
- package/dist/ui/confirm-dialog.test.d.ts.map +1 -0
- package/dist/ui/confirm-dialog.test.js +115 -0
- package/dist/ui/confirm-dialog.test.js.map +1 -0
- package/dist/ui/count-tone.d.ts +20 -0
- package/dist/ui/count-tone.d.ts.map +1 -0
- package/dist/ui/count-tone.js +27 -0
- package/dist/ui/count-tone.js.map +1 -0
- package/dist/ui/count-tone.test.d.ts +2 -0
- package/dist/ui/count-tone.test.d.ts.map +1 -0
- package/dist/ui/count-tone.test.js +27 -0
- package/dist/ui/count-tone.test.js.map +1 -0
- package/dist/ui/create-use-t.d.ts +15 -0
- package/dist/ui/create-use-t.d.ts.map +1 -0
- package/dist/ui/create-use-t.js +17 -0
- package/dist/ui/create-use-t.js.map +1 -0
- package/dist/ui/declare-served-fonts.d.ts +14 -0
- package/dist/ui/declare-served-fonts.d.ts.map +1 -0
- package/dist/ui/declare-served-fonts.js +38 -0
- package/dist/ui/declare-served-fonts.js.map +1 -0
- package/dist/ui/declare-served-fonts.test.d.ts +2 -0
- package/dist/ui/declare-served-fonts.test.d.ts.map +1 -0
- package/dist/ui/declare-served-fonts.test.js +44 -0
- package/dist/ui/declare-served-fonts.test.js.map +1 -0
- package/dist/ui/describe-error.d.ts +71 -0
- package/dist/ui/describe-error.d.ts.map +1 -0
- package/dist/ui/describe-error.js +175 -0
- package/dist/ui/describe-error.js.map +1 -0
- package/dist/ui/describe-error.test.d.ts +2 -0
- package/dist/ui/describe-error.test.d.ts.map +1 -0
- package/dist/ui/describe-error.test.js +274 -0
- package/dist/ui/describe-error.test.js.map +1 -0
- package/dist/ui/display-mode-toggle.d.ts +32 -0
- package/dist/ui/display-mode-toggle.d.ts.map +1 -0
- package/dist/ui/display-mode-toggle.js +39 -0
- package/dist/ui/display-mode-toggle.js.map +1 -0
- package/dist/ui/error-labels.d.ts +65 -0
- package/dist/ui/error-labels.d.ts.map +1 -0
- package/dist/ui/error-labels.js +111 -0
- package/dist/ui/error-labels.js.map +1 -0
- package/dist/ui/format.d.ts +81 -0
- package/dist/ui/format.d.ts.map +1 -0
- package/dist/ui/format.js +189 -0
- package/dist/ui/format.js.map +1 -0
- package/dist/ui/format.test.d.ts +2 -0
- package/dist/ui/format.test.d.ts.map +1 -0
- package/dist/ui/format.test.js +181 -0
- package/dist/ui/format.test.js.map +1 -0
- package/dist/ui/generic-widgets.d.ts +15 -0
- package/dist/ui/generic-widgets.d.ts.map +1 -0
- package/dist/ui/generic-widgets.js +122 -0
- package/dist/ui/generic-widgets.js.map +1 -0
- package/dist/ui/generic-widgets.test.d.ts +2 -0
- package/dist/ui/generic-widgets.test.d.ts.map +1 -0
- package/dist/ui/generic-widgets.test.js +139 -0
- package/dist/ui/generic-widgets.test.js.map +1 -0
- package/dist/ui/hand-off-button.d.ts +44 -0
- package/dist/ui/hand-off-button.d.ts.map +1 -0
- package/dist/ui/hand-off-button.js +44 -0
- package/dist/ui/hand-off-button.js.map +1 -0
- package/dist/ui/hand-off-button.test.d.ts +2 -0
- package/dist/ui/hand-off-button.test.d.ts.map +1 -0
- package/dist/ui/hand-off-button.test.js +78 -0
- package/dist/ui/hand-off-button.test.js.map +1 -0
- package/dist/ui/host-context.d.ts +66 -0
- package/dist/ui/host-context.d.ts.map +1 -0
- package/dist/ui/host-context.js +122 -0
- package/dist/ui/host-context.js.map +1 -0
- package/dist/ui/host-context.test.d.ts +2 -0
- package/dist/ui/host-context.test.d.ts.map +1 -0
- package/dist/ui/host-context.test.js +160 -0
- package/dist/ui/host-context.test.js.map +1 -0
- package/dist/ui/host-document.d.ts +25 -0
- package/dist/ui/host-document.d.ts.map +1 -0
- package/dist/ui/host-document.js +93 -0
- package/dist/ui/host-document.js.map +1 -0
- package/dist/ui/host-document.test.d.ts +2 -0
- package/dist/ui/host-document.test.d.ts.map +1 -0
- package/dist/ui/host-document.test.js +112 -0
- package/dist/ui/host-document.test.js.map +1 -0
- package/dist/ui/host-widgets.d.ts +8 -0
- package/dist/ui/host-widgets.d.ts.map +1 -0
- package/dist/ui/host-widgets.js +18 -0
- package/dist/ui/host-widgets.js.map +1 -0
- package/dist/ui/humanize-key.d.ts +11 -0
- package/dist/ui/humanize-key.d.ts.map +1 -0
- package/dist/ui/humanize-key.js +26 -0
- package/dist/ui/humanize-key.js.map +1 -0
- package/dist/ui/humanize-key.test.d.ts +2 -0
- package/dist/ui/humanize-key.test.d.ts.map +1 -0
- package/dist/ui/humanize-key.test.js +42 -0
- package/dist/ui/humanize-key.test.js.map +1 -0
- package/dist/ui/icon.d.ts +37 -0
- package/dist/ui/icon.d.ts.map +1 -0
- package/dist/ui/icon.js +32 -0
- package/dist/ui/icon.js.map +1 -0
- package/dist/ui/id-breaks.d.ts +17 -0
- package/dist/ui/id-breaks.d.ts.map +1 -0
- package/dist/ui/id-breaks.js +36 -0
- package/dist/ui/id-breaks.js.map +1 -0
- package/dist/ui/id-breaks.test.d.ts +2 -0
- package/dist/ui/id-breaks.test.d.ts.map +1 -0
- package/dist/ui/id-breaks.test.js +37 -0
- package/dist/ui/id-breaks.test.js.map +1 -0
- package/dist/ui/id-text.d.ts +29 -0
- package/dist/ui/id-text.d.ts.map +1 -0
- package/dist/ui/id-text.js +103 -0
- package/dist/ui/id-text.js.map +1 -0
- package/dist/ui/id-text.test.d.ts +2 -0
- package/dist/ui/id-text.test.d.ts.map +1 -0
- package/dist/ui/id-text.test.js +122 -0
- package/dist/ui/id-text.test.js.map +1 -0
- package/dist/ui/index.d.ts +57 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +65 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/index.test.d.ts +2 -0
- package/dist/ui/index.test.d.ts.map +1 -0
- package/dist/ui/index.test.js +34 -0
- package/dist/ui/index.test.js.map +1 -0
- package/dist/ui/inline-budget.d.ts +35 -0
- package/dist/ui/inline-budget.d.ts.map +1 -0
- package/dist/ui/inline-budget.js +27 -0
- package/dist/ui/inline-budget.js.map +1 -0
- package/dist/ui/inline-fit-registry.d.ts +56 -0
- package/dist/ui/inline-fit-registry.d.ts.map +1 -0
- package/dist/ui/inline-fit-registry.js +114 -0
- package/dist/ui/inline-fit-registry.js.map +1 -0
- package/dist/ui/inline-fit-solve.d.ts +50 -0
- package/dist/ui/inline-fit-solve.d.ts.map +1 -0
- package/dist/ui/inline-fit-solve.js +83 -0
- package/dist/ui/inline-fit-solve.js.map +1 -0
- package/dist/ui/inline-fit-solve.test.d.ts +2 -0
- package/dist/ui/inline-fit-solve.test.d.ts.map +1 -0
- package/dist/ui/inline-fit-solve.test.js +108 -0
- package/dist/ui/inline-fit-solve.test.js.map +1 -0
- package/dist/ui/inline-fit-time.test.d.ts +2 -0
- package/dist/ui/inline-fit-time.test.d.ts.map +1 -0
- package/dist/ui/inline-fit-time.test.js +110 -0
- package/dist/ui/inline-fit-time.test.js.map +1 -0
- package/dist/ui/inline-fit.d.ts +77 -0
- package/dist/ui/inline-fit.d.ts.map +1 -0
- package/dist/ui/inline-fit.js +242 -0
- package/dist/ui/inline-fit.js.map +1 -0
- package/dist/ui/inline-fit.test-support.d.ts +26 -0
- package/dist/ui/inline-fit.test-support.d.ts.map +1 -0
- package/dist/ui/inline-fit.test-support.js +34 -0
- package/dist/ui/inline-fit.test-support.js.map +1 -0
- package/dist/ui/inline-fit.test.d.ts +2 -0
- package/dist/ui/inline-fit.test.d.ts.map +1 -0
- package/dist/ui/inline-fit.test.js +159 -0
- package/dist/ui/inline-fit.test.js.map +1 -0
- package/dist/ui/kit-labels.d.ts +80 -0
- package/dist/ui/kit-labels.d.ts.map +1 -0
- package/dist/ui/kit-labels.js +110 -0
- package/dist/ui/kit-labels.js.map +1 -0
- package/dist/ui/kit-labels.test.d.ts +2 -0
- package/dist/ui/kit-labels.test.d.ts.map +1 -0
- package/dist/ui/kit-labels.test.js +98 -0
- package/dist/ui/kit-labels.test.js.map +1 -0
- package/dist/ui/kit-type-roles.test.d.ts +2 -0
- package/dist/ui/kit-type-roles.test.d.ts.map +1 -0
- package/dist/ui/kit-type-roles.test.js +122 -0
- package/dist/ui/kit-type-roles.test.js.map +1 -0
- package/dist/ui/komet-svg.d.ts +15 -0
- package/dist/ui/komet-svg.d.ts.map +1 -0
- package/dist/ui/komet-svg.js +21 -0
- package/dist/ui/komet-svg.js.map +1 -0
- package/dist/ui/list-table.d.ts +108 -0
- package/dist/ui/list-table.d.ts.map +1 -0
- package/dist/ui/list-table.js +161 -0
- package/dist/ui/list-table.js.map +1 -0
- package/dist/ui/list-table.test.d.ts +2 -0
- package/dist/ui/list-table.test.d.ts.map +1 -0
- package/dist/ui/list-table.test.js +169 -0
- package/dist/ui/list-table.test.js.map +1 -0
- package/dist/ui/localized-app-view.d.ts +40 -0
- package/dist/ui/localized-app-view.d.ts.map +1 -0
- package/dist/ui/localized-app-view.js +71 -0
- package/dist/ui/localized-app-view.js.map +1 -0
- package/dist/ui/log-text.d.ts +24 -0
- package/dist/ui/log-text.d.ts.map +1 -0
- package/dist/ui/log-text.js +31 -0
- package/dist/ui/log-text.js.map +1 -0
- package/dist/ui/menu-item.d.ts +12 -0
- package/dist/ui/menu-item.d.ts.map +1 -0
- package/dist/ui/menu-item.js +13 -0
- package/dist/ui/menu-item.js.map +1 -0
- package/dist/ui/named-id.d.ts +23 -0
- package/dist/ui/named-id.d.ts.map +1 -0
- package/dist/ui/named-id.js +21 -0
- package/dist/ui/named-id.js.map +1 -0
- package/dist/ui/named-id.test.d.ts +2 -0
- package/dist/ui/named-id.test.d.ts.map +1 -0
- package/dist/ui/named-id.test.js +57 -0
- package/dist/ui/named-id.test.js.map +1 -0
- package/dist/ui/native-select.d.ts +17 -0
- package/dist/ui/native-select.d.ts.map +1 -0
- package/dist/ui/native-select.js +20 -0
- package/dist/ui/native-select.js.map +1 -0
- package/dist/ui/navigation-focus.d.ts +20 -0
- package/dist/ui/navigation-focus.d.ts.map +1 -0
- package/dist/ui/navigation-focus.js +25 -0
- package/dist/ui/navigation-focus.js.map +1 -0
- package/dist/ui/navigation-focus.test.d.ts +2 -0
- package/dist/ui/navigation-focus.test.d.ts.map +1 -0
- package/dist/ui/navigation-focus.test.js +28 -0
- package/dist/ui/navigation-focus.test.js.map +1 -0
- package/dist/ui/open-in-cockpit-link.d.ts +28 -0
- package/dist/ui/open-in-cockpit-link.d.ts.map +1 -0
- package/dist/ui/open-in-cockpit-link.js +41 -0
- package/dist/ui/open-in-cockpit-link.js.map +1 -0
- package/dist/ui/paged-list-footer.test.d.ts +2 -0
- package/dist/ui/paged-list-footer.test.d.ts.map +1 -0
- package/dist/ui/paged-list-footer.test.js +128 -0
- package/dist/ui/paged-list-footer.test.js.map +1 -0
- package/dist/ui/paged-rows.d.ts +24 -0
- package/dist/ui/paged-rows.d.ts.map +1 -0
- package/dist/ui/paged-rows.js +25 -0
- package/dist/ui/paged-rows.js.map +1 -0
- package/dist/ui/parse-tool-result.test.d.ts +2 -0
- package/dist/ui/parse-tool-result.test.d.ts.map +1 -0
- package/dist/ui/parse-tool-result.test.js +88 -0
- package/dist/ui/parse-tool-result.test.js.map +1 -0
- package/dist/ui/profile-gate.d.ts +37 -0
- package/dist/ui/profile-gate.d.ts.map +1 -0
- package/dist/ui/profile-gate.js +126 -0
- package/dist/ui/profile-gate.js.map +1 -0
- package/dist/ui/profile-gate.test.d.ts +2 -0
- package/dist/ui/profile-gate.test.d.ts.map +1 -0
- package/dist/ui/profile-gate.test.js +246 -0
- package/dist/ui/profile-gate.test.js.map +1 -0
- package/dist/ui/query-fallback.d.ts +27 -0
- package/dist/ui/query-fallback.d.ts.map +1 -0
- package/dist/ui/query-fallback.js +30 -0
- package/dist/ui/query-fallback.js.map +1 -0
- package/dist/ui/query-fallback.test.d.ts +2 -0
- package/dist/ui/query-fallback.test.d.ts.map +1 -0
- package/dist/ui/query-fallback.test.js +49 -0
- package/dist/ui/query-fallback.test.js.map +1 -0
- package/dist/ui/row-card.d.ts +13 -0
- package/dist/ui/row-card.d.ts.map +1 -0
- package/dist/ui/row-card.js +11 -0
- package/dist/ui/row-card.js.map +1 -0
- package/dist/ui/section.d.ts +18 -0
- package/dist/ui/section.d.ts.map +1 -0
- package/dist/ui/section.js +14 -0
- package/dist/ui/section.js.map +1 -0
- package/dist/ui/segmented-control.d.ts +25 -0
- package/dist/ui/segmented-control.d.ts.map +1 -0
- package/dist/ui/segmented-control.js +22 -0
- package/dist/ui/segmented-control.js.map +1 -0
- package/dist/ui/settings-labels.d.ts +33 -0
- package/dist/ui/settings-labels.d.ts.map +1 -0
- package/dist/ui/settings-labels.js +50 -0
- package/dist/ui/settings-labels.js.map +1 -0
- package/dist/ui/settings-layout.d.ts +29 -0
- package/dist/ui/settings-layout.d.ts.map +1 -0
- package/dist/ui/settings-layout.js +49 -0
- package/dist/ui/settings-layout.js.map +1 -0
- package/dist/ui/settings-layout.test.d.ts +2 -0
- package/dist/ui/settings-layout.test.d.ts.map +1 -0
- package/dist/ui/settings-layout.test.js +73 -0
- package/dist/ui/settings-layout.test.js.map +1 -0
- package/dist/ui/settings.d.ts +47 -0
- package/dist/ui/settings.d.ts.map +1 -0
- package/dist/ui/settings.js +48 -0
- package/dist/ui/settings.js.map +1 -0
- package/dist/ui/settings.test.d.ts +2 -0
- package/dist/ui/settings.test.d.ts.map +1 -0
- package/dist/ui/settings.test.js +38 -0
- package/dist/ui/settings.test.js.map +1 -0
- package/dist/ui/shell-host.d.ts +46 -0
- package/dist/ui/shell-host.d.ts.map +1 -0
- package/dist/ui/shell-host.js +56 -0
- package/dist/ui/shell-host.js.map +1 -0
- package/dist/ui/shell-settings.d.ts +31 -0
- package/dist/ui/shell-settings.d.ts.map +1 -0
- package/dist/ui/shell-settings.js +97 -0
- package/dist/ui/shell-settings.js.map +1 -0
- package/dist/ui/shell-settings.test.d.ts +2 -0
- package/dist/ui/shell-settings.test.d.ts.map +1 -0
- package/dist/ui/shell-settings.test.js +108 -0
- package/dist/ui/shell-settings.test.js.map +1 -0
- package/dist/ui/shell-widgets.d.ts +14 -0
- package/dist/ui/shell-widgets.d.ts.map +1 -0
- package/dist/ui/shell-widgets.js +18 -0
- package/dist/ui/shell-widgets.js.map +1 -0
- package/dist/ui/table.d.ts +61 -0
- package/dist/ui/table.d.ts.map +1 -0
- package/dist/ui/table.js +43 -0
- package/dist/ui/table.js.map +1 -0
- package/dist/ui/tone-components.test.d.ts +2 -0
- package/dist/ui/tone-components.test.d.ts.map +1 -0
- package/dist/ui/tone-components.test.js +145 -0
- package/dist/ui/tone-components.test.js.map +1 -0
- package/dist/ui/tone-contrast.test.d.ts +2 -0
- package/dist/ui/tone-contrast.test.d.ts.map +1 -0
- package/dist/ui/tone-contrast.test.js +66 -0
- package/dist/ui/tone-contrast.test.js.map +1 -0
- package/dist/ui/toolkit-overlap.test.d.ts +2 -0
- package/dist/ui/toolkit-overlap.test.d.ts.map +1 -0
- package/dist/ui/toolkit-overlap.test.js +86 -0
- package/dist/ui/toolkit-overlap.test.js.map +1 -0
- package/dist/ui/use-apply-theme.d.ts +11 -0
- package/dist/ui/use-apply-theme.d.ts.map +1 -0
- package/dist/ui/use-apply-theme.js +37 -0
- package/dist/ui/use-apply-theme.js.map +1 -0
- package/dist/ui/use-apply-theme.test.d.ts +2 -0
- package/dist/ui/use-apply-theme.test.d.ts.map +1 -0
- package/dist/ui/use-apply-theme.test.js +102 -0
- package/dist/ui/use-apply-theme.test.js.map +1 -0
- package/dist/ui/use-bpmn-viewer.d.ts +135 -0
- package/dist/ui/use-bpmn-viewer.d.ts.map +1 -0
- package/dist/ui/use-bpmn-viewer.js +257 -0
- package/dist/ui/use-bpmn-viewer.js.map +1 -0
- package/dist/ui/use-bpmn-viewer.test.d.ts +2 -0
- package/dist/ui/use-bpmn-viewer.test.d.ts.map +1 -0
- package/dist/ui/use-bpmn-viewer.test.js +239 -0
- package/dist/ui/use-bpmn-viewer.test.js.map +1 -0
- package/dist/ui/use-detail-view.d.ts +49 -0
- package/dist/ui/use-detail-view.d.ts.map +1 -0
- package/dist/ui/use-detail-view.js +52 -0
- package/dist/ui/use-detail-view.js.map +1 -0
- package/dist/ui/use-detail-view.test.d.ts +2 -0
- package/dist/ui/use-detail-view.test.d.ts.map +1 -0
- package/dist/ui/use-detail-view.test.js +178 -0
- package/dist/ui/use-detail-view.test.js.map +1 -0
- package/dist/ui/use-paged-list-view.d.ts +48 -0
- package/dist/ui/use-paged-list-view.d.ts.map +1 -0
- package/dist/ui/use-paged-list-view.js +41 -0
- package/dist/ui/use-paged-list-view.js.map +1 -0
- package/dist/ui/use-paged-list-view.test.d.ts +2 -0
- package/dist/ui/use-paged-list-view.test.d.ts.map +1 -0
- package/dist/ui/use-paged-list-view.test.js +136 -0
- package/dist/ui/use-paged-list-view.test.js.map +1 -0
- package/dist/ui/use-paged-view-data.d.ts +103 -0
- package/dist/ui/use-paged-view-data.d.ts.map +1 -0
- package/dist/ui/use-paged-view-data.js +173 -0
- package/dist/ui/use-paged-view-data.js.map +1 -0
- package/dist/ui/use-paged-view-data.seeded.test.d.ts +2 -0
- package/dist/ui/use-paged-view-data.seeded.test.d.ts.map +1 -0
- package/dist/ui/use-paged-view-data.seeded.test.js +144 -0
- package/dist/ui/use-paged-view-data.seeded.test.js.map +1 -0
- package/dist/ui/use-paged-view-data.test.d.ts +2 -0
- package/dist/ui/use-paged-view-data.test.d.ts.map +1 -0
- package/dist/ui/use-paged-view-data.test.js +330 -0
- package/dist/ui/use-paged-view-data.test.js.map +1 -0
- package/dist/ui/use-reset-on-change.d.ts +22 -0
- package/dist/ui/use-reset-on-change.d.ts.map +1 -0
- package/dist/ui/use-reset-on-change.js +29 -0
- package/dist/ui/use-reset-on-change.js.map +1 -0
- package/dist/ui/use-reset-on-change.test.d.ts +2 -0
- package/dist/ui/use-reset-on-change.test.d.ts.map +1 -0
- package/dist/ui/use-reset-on-change.test.js +61 -0
- package/dist/ui/use-reset-on-change.test.js.map +1 -0
- package/dist/ui/use-view-data.seeded.test.d.ts +2 -0
- package/dist/ui/use-view-data.seeded.test.d.ts.map +1 -0
- package/dist/ui/use-view-data.seeded.test.js +168 -0
- package/dist/ui/use-view-data.seeded.test.js.map +1 -0
- package/dist/ui/view-data-state.d.ts +52 -0
- package/dist/ui/view-data-state.d.ts.map +1 -0
- package/dist/ui/view-data-state.js +54 -0
- package/dist/ui/view-data-state.js.map +1 -0
- package/dist/ui/view-data-state.test.d.ts +2 -0
- package/dist/ui/view-data-state.test.d.ts.map +1 -0
- package/dist/ui/view-data-state.test.js +62 -0
- package/dist/ui/view-data-state.test.js.map +1 -0
- package/dist/ui/view-meta.d.ts +70 -0
- package/dist/ui/view-meta.d.ts.map +1 -0
- package/dist/ui/view-meta.js +84 -0
- package/dist/ui/view-meta.js.map +1 -0
- package/dist/ui/view-meta.test.d.ts +2 -0
- package/dist/ui/view-meta.test.d.ts.map +1 -0
- package/dist/ui/view-meta.test.js +92 -0
- package/dist/ui/view-meta.test.js.map +1 -0
- package/dist/ui/view-refresh-state.d.ts +26 -0
- package/dist/ui/view-refresh-state.d.ts.map +1 -0
- package/dist/ui/view-refresh-state.js +15 -0
- package/dist/ui/view-refresh-state.js.map +1 -0
- package/dist/ui/widget-shell.d.ts +24 -0
- package/dist/ui/widget-shell.d.ts.map +1 -0
- package/dist/ui/widget-shell.js +50 -0
- package/dist/ui/widget-shell.js.map +1 -0
- package/dist/ui/widget-shell.test.d.ts +2 -0
- package/dist/ui/widget-shell.test.d.ts.map +1 -0
- package/dist/ui/widget-shell.test.js +41 -0
- package/dist/ui/widget-shell.test.js.map +1 -0
- package/dist/view-results.d.ts +42 -0
- package/dist/view-results.d.ts.map +1 -0
- package/dist/view-results.js +17 -0
- package/dist/view-results.js.map +1 -0
- package/dist/widget-meta-defaults.d.ts +48 -0
- package/dist/widget-meta-defaults.d.ts.map +1 -0
- package/dist/widget-meta-defaults.js +80 -0
- package/dist/widget-meta-defaults.js.map +1 -0
- package/dist/widget-meta-defaults.test.d.ts +2 -0
- package/dist/widget-meta-defaults.test.d.ts.map +1 -0
- package/dist/widget-meta-defaults.test.js +196 -0
- package/dist/widget-meta-defaults.test.js.map +1 -0
- package/dist/widget-tool-bindings.d.ts +71 -0
- package/dist/widget-tool-bindings.d.ts.map +1 -0
- package/dist/widget-tool-bindings.js +80 -0
- package/dist/widget-tool-bindings.js.map +1 -0
- package/dist/widget-tool-bindings.test.d.ts +2 -0
- package/dist/widget-tool-bindings.test.d.ts.map +1 -0
- package/dist/widget-tool-bindings.test.js +83 -0
- package/dist/widget-tool-bindings.test.js.map +1 -0
- package/dist/with-tool-errors.test.d.ts +2 -0
- package/dist/with-tool-errors.test.d.ts.map +1 -0
- package/dist/with-tool-errors.test.js +38 -0
- package/dist/with-tool-errors.test.js.map +1 -0
- package/package.json +113 -5
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { appOnly, showToolBinding } from "./widget-tool-bindings.js";
|
|
3
|
+
import { honorWidgetMetaDefaults, mergeDomainLists, withWidgetMetaDefaults, } from "./widget-meta-defaults.js";
|
|
4
|
+
/** A server whose `tool()` records the definitions it receives, plus one other member. */
|
|
5
|
+
function recordingServer() {
|
|
6
|
+
const definitions = [];
|
|
7
|
+
const server = {
|
|
8
|
+
basePath: "/mcp",
|
|
9
|
+
tool(definition) {
|
|
10
|
+
definitions.push(definition);
|
|
11
|
+
return { name: definition.name };
|
|
12
|
+
},
|
|
13
|
+
describe() {
|
|
14
|
+
return `${this.basePath} with ${definitions.length} tools`;
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
return { server: server, definitions };
|
|
18
|
+
}
|
|
19
|
+
const FONT_ORIGIN = "https://mcp.example.com";
|
|
20
|
+
const DEFAULTS = {
|
|
21
|
+
viewCsp: { resourceDomains: [FONT_ORIGIN] },
|
|
22
|
+
widgetCSP: { resource_domains: [FONT_ORIGIN] },
|
|
23
|
+
};
|
|
24
|
+
const register = (server, definition) => server.tool(definition, (() => ({ content: [] })));
|
|
25
|
+
describe("withWidgetMetaDefaults", () => {
|
|
26
|
+
it("adds the view CSP to a view binding and the Apps SDK CSP to the widget tool's _meta", () => {
|
|
27
|
+
const { server, definitions } = recordingServer();
|
|
28
|
+
register(withWidgetMetaDefaults(server, DEFAULTS), {
|
|
29
|
+
name: "x_show_thing",
|
|
30
|
+
...showToolBinding("x_show_thing", "Thing"),
|
|
31
|
+
});
|
|
32
|
+
const [definition] = definitions;
|
|
33
|
+
expect(definition.view).toEqual({
|
|
34
|
+
name: "x_show_thing",
|
|
35
|
+
description: "Thing",
|
|
36
|
+
prefersBorder: true,
|
|
37
|
+
csp: { resourceDomains: [FONT_ORIGIN] },
|
|
38
|
+
});
|
|
39
|
+
expect(definition._meta?.["openai/widgetCSP"]).toEqual({ resource_domains: [FONT_ORIGIN] });
|
|
40
|
+
expect(definition._meta?.["openai/outputTemplate"]).toBe("ui://views/x_show_thing.html");
|
|
41
|
+
});
|
|
42
|
+
it("keeps what a tool states itself first and appends each default origin once", () => {
|
|
43
|
+
const { server, definitions } = recordingServer();
|
|
44
|
+
const own = {
|
|
45
|
+
name: "x_show_map",
|
|
46
|
+
view: {
|
|
47
|
+
name: "x_show_map",
|
|
48
|
+
csp: {
|
|
49
|
+
resourceDomains: ["https://tiles.example", FONT_ORIGIN],
|
|
50
|
+
connectDomains: ["https://api.example"],
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
_meta: {
|
|
54
|
+
"openai/outputTemplate": "ui://views/x_show_map.html",
|
|
55
|
+
"openai/widgetCSP": { resource_domains: ["https://tiles.example"] },
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
register(withWidgetMetaDefaults(server, DEFAULTS), own);
|
|
59
|
+
const [definition] = definitions;
|
|
60
|
+
expect(definition.view?.csp).toEqual({
|
|
61
|
+
resourceDomains: ["https://tiles.example", FONT_ORIGIN],
|
|
62
|
+
connectDomains: ["https://api.example"],
|
|
63
|
+
});
|
|
64
|
+
expect(definition._meta?.["openai/widgetCSP"]).toEqual({
|
|
65
|
+
resource_domains: ["https://tiles.example", FONT_ORIGIN],
|
|
66
|
+
});
|
|
67
|
+
// A copy: the caller's definition is untouched.
|
|
68
|
+
expect(own.view?.csp?.resourceDomains).toEqual(["https://tiles.example", FONT_ORIGIN]);
|
|
69
|
+
expect(own._meta?.["openai/widgetCSP"]).toEqual({ resource_domains: ["https://tiles.example"] });
|
|
70
|
+
expect(definition).not.toBe(own);
|
|
71
|
+
});
|
|
72
|
+
it("leaves app-only feeds and plain tools as they are — nothing renders them", () => {
|
|
73
|
+
const { server, definitions } = recordingServer();
|
|
74
|
+
const bound = withWidgetMetaDefaults(server, DEFAULTS);
|
|
75
|
+
const feed = { name: "x_thing_data", ...appOnly };
|
|
76
|
+
const plain = { name: "x_list_things", description: "Lists things." };
|
|
77
|
+
register(bound, feed);
|
|
78
|
+
register(bound, plain);
|
|
79
|
+
expect(definitions).toEqual([feed, plain]);
|
|
80
|
+
expect(definitions[0]._meta).toEqual({ "openai/widgetAccessible": true });
|
|
81
|
+
});
|
|
82
|
+
it("applies each half on its own: a view CSP without an Apps SDK CSP and the other way round", () => {
|
|
83
|
+
const { server, definitions } = recordingServer();
|
|
84
|
+
const binding = showToolBinding("x_show_a", "A");
|
|
85
|
+
register(withWidgetMetaDefaults(server, { viewCsp: DEFAULTS.viewCsp }), {
|
|
86
|
+
name: "x_show_a",
|
|
87
|
+
...binding,
|
|
88
|
+
});
|
|
89
|
+
register(withWidgetMetaDefaults(server, { widgetCSP: DEFAULTS.widgetCSP }), {
|
|
90
|
+
name: "x_show_a",
|
|
91
|
+
...binding,
|
|
92
|
+
});
|
|
93
|
+
expect(definitions[0].view?.csp).toEqual({ resourceDomains: [FONT_ORIGIN] });
|
|
94
|
+
expect(definitions[0]._meta?.["openai/widgetCSP"]).toBeUndefined();
|
|
95
|
+
expect(definitions[1].view?.csp).toBeUndefined();
|
|
96
|
+
expect(definitions[1]._meta?.["openai/widgetCSP"]).toEqual({ resource_domains: [FONT_ORIGIN] });
|
|
97
|
+
});
|
|
98
|
+
it("is the server itself without defaults (or with empty ones)", () => {
|
|
99
|
+
const { server } = recordingServer();
|
|
100
|
+
expect(withWidgetMetaDefaults(server, undefined)).toBe(server);
|
|
101
|
+
expect(withWidgetMetaDefaults(server, {})).toBe(server);
|
|
102
|
+
expect(withWidgetMetaDefaults(server, { viewCsp: { resourceDomains: [] }, widgetCSP: {} })).toBe(server);
|
|
103
|
+
expect(withWidgetMetaDefaults(server, {
|
|
104
|
+
viewCsp: { resourceDomains: undefined },
|
|
105
|
+
widgetCSP: { resource_domains: undefined },
|
|
106
|
+
})).toBe(server);
|
|
107
|
+
});
|
|
108
|
+
it("forwards every other member to the real server, bound to it", () => {
|
|
109
|
+
const { server } = recordingServer();
|
|
110
|
+
const bound = withWidgetMetaDefaults(server, DEFAULTS);
|
|
111
|
+
register(bound, { name: "x_list" });
|
|
112
|
+
expect(bound.basePath).toBe("/mcp");
|
|
113
|
+
const { describe: describeServer } = bound;
|
|
114
|
+
expect(describeServer()).toBe("/mcp with 1 tools");
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
describe("honorWidgetMetaDefaults", () => {
|
|
118
|
+
it("hands the plugin's registerWidgetTools a server that applies the toolkit's defaults", () => {
|
|
119
|
+
const { server, definitions } = recordingServer();
|
|
120
|
+
const seen = [];
|
|
121
|
+
const plugin = {
|
|
122
|
+
definition: { name: "x", steps: [], widgets: [] },
|
|
123
|
+
registerWidgetTools: (target, defaults) => {
|
|
124
|
+
seen.push(defaults);
|
|
125
|
+
register(target, { name: "x_show_thing", ...showToolBinding("x_show_thing", "Thing") });
|
|
126
|
+
},
|
|
127
|
+
};
|
|
128
|
+
honorWidgetMetaDefaults(plugin).registerWidgetTools(server, DEFAULTS);
|
|
129
|
+
expect(seen).toEqual([DEFAULTS]);
|
|
130
|
+
expect(definitions[0].view?.csp).toEqual({ resourceDomains: [FONT_ORIGIN] });
|
|
131
|
+
});
|
|
132
|
+
it("keeps a class-based plugin whole: prototype hooks, one shared `this`, private fields", () => {
|
|
133
|
+
const { server, definitions } = recordingServer();
|
|
134
|
+
class BillingPlugin {
|
|
135
|
+
definition = { name: "billing", steps: [], widgets: [] };
|
|
136
|
+
appConfig = { region: "eu" };
|
|
137
|
+
#client = "billing-client";
|
|
138
|
+
registeredWith;
|
|
139
|
+
registerTools(target) {
|
|
140
|
+
this.registeredWith = this.#client;
|
|
141
|
+
register(target, { name: "billing_list_invoices" });
|
|
142
|
+
}
|
|
143
|
+
registerWidgetTools(target) {
|
|
144
|
+
register(target, {
|
|
145
|
+
name: "billing_show_invoice",
|
|
146
|
+
description: `${this.#client} after ${this.registeredWith}`,
|
|
147
|
+
...showToolBinding("billing_show_invoice", "Invoice"),
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
const plugin = new BillingPlugin();
|
|
152
|
+
const wrapped = honorWidgetMetaDefaults(plugin);
|
|
153
|
+
// The toolkit reads both hooks off the plugin and calls them as methods.
|
|
154
|
+
wrapped.registerTools?.(server);
|
|
155
|
+
wrapped.registerWidgetTools?.(server, DEFAULTS);
|
|
156
|
+
expect(definitions.map((definition) => definition.name)).toEqual([
|
|
157
|
+
"billing_list_invoices",
|
|
158
|
+
"billing_show_invoice",
|
|
159
|
+
]);
|
|
160
|
+
// registerTools wrote to the plugin itself; registerWidgetTools read it back there.
|
|
161
|
+
expect(plugin.registeredWith).toBe("billing-client");
|
|
162
|
+
expect(definitions[1].description).toBe("billing-client after billing-client");
|
|
163
|
+
expect(definitions[1].view?.csp).toEqual({ resourceDomains: [FONT_ORIGIN] });
|
|
164
|
+
expect(wrapped.definition).toBe(plugin.definition);
|
|
165
|
+
expect(wrapped.appConfig).toBe(plugin.appConfig);
|
|
166
|
+
expect(wrapped).toBeInstanceOf(BillingPlugin);
|
|
167
|
+
});
|
|
168
|
+
it("calls a method-shorthand hook on the plugin itself, even on a frozen plugin", () => {
|
|
169
|
+
const { server, definitions } = recordingServer();
|
|
170
|
+
const plugin = Object.freeze({
|
|
171
|
+
definition: { name: "z", steps: [], widgets: [] },
|
|
172
|
+
toolName: "z_show_thing",
|
|
173
|
+
registerWidgetTools(target) {
|
|
174
|
+
register(target, { name: this.toolName, ...showToolBinding(this.toolName, "Thing") });
|
|
175
|
+
},
|
|
176
|
+
});
|
|
177
|
+
honorWidgetMetaDefaults(plugin).registerWidgetTools?.(server, DEFAULTS);
|
|
178
|
+
expect(definitions[0].name).toBe("z_show_thing");
|
|
179
|
+
expect(definitions[0].view?.csp).toEqual({ resourceDomains: [FONT_ORIGIN] });
|
|
180
|
+
});
|
|
181
|
+
it("passes a plugin without widget tools through unchanged", () => {
|
|
182
|
+
const registerTools = vi.fn();
|
|
183
|
+
const plugin = {
|
|
184
|
+
definition: { name: "y", steps: [], widgets: [] },
|
|
185
|
+
registerTools,
|
|
186
|
+
};
|
|
187
|
+
expect(honorWidgetMetaDefaults(plugin)).toBe(plugin);
|
|
188
|
+
});
|
|
189
|
+
});
|
|
190
|
+
describe("mergeDomainLists", () => {
|
|
191
|
+
it("appends each default list to the tool's own, each entry once, and skips empty ones", () => {
|
|
192
|
+
expect(mergeDomainLists({ a: ["1"], b: ["2"] }, { a: ["1", "3"], c: ["4"], d: [], e: undefined })).toEqual({ a: ["1", "3"], b: ["2"], c: ["4"] });
|
|
193
|
+
expect(mergeDomainLists(undefined, { a: ["1"] })).toEqual({ a: ["1"] });
|
|
194
|
+
});
|
|
195
|
+
});
|
|
196
|
+
//# sourceMappingURL=widget-meta-defaults.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"widget-meta-defaults.test.js","sourceRoot":"","sources":["../src/widget-meta-defaults.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* The two spreads every module's raw `server.tool()` widget registrations
|
|
4
|
+
* compose — the wire-contract halves of architecture invariant 5. One
|
|
5
|
+
* implementation for all modules (they were byte-identical copies before):
|
|
6
|
+
* a module that hand-rolls these drifts out of the widget-contract e2e test's
|
|
7
|
+
* expectations on the first mcp-use change.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* View binding + Apps-SDK `_meta` half for a widget-RENDERING (model-visible)
|
|
11
|
+
* tool — spread into the `server.tool` definition of every `show_*` tool. The
|
|
12
|
+
* view name IS the tool name: mcp-use derives the entire MCP Apps half of the
|
|
13
|
+
* wire contract (`_meta.ui.resourceUri`, flat `ui/resourceUri`, resource CSP)
|
|
14
|
+
* from the first-class `view` binding — never stamp `ui` keys by hand, mcp-use
|
|
15
|
+
* overwrites that namespace on `tools/list`. What mcp-use does NOT derive is
|
|
16
|
+
* the OpenAI Apps SDK half (`openai/*`): `appsSdkMeta` builds it, pointing
|
|
17
|
+
* `openai/outputTemplate` at the same `ui://views/<name>.html` resource. The
|
|
18
|
+
* `outputSchema` is required by mcp-use for any view-bound tool; `passthrough`
|
|
19
|
+
* matches the free-form `structuredContent` the view builders return without
|
|
20
|
+
* stripping keys on SDK-side validation.
|
|
21
|
+
*
|
|
22
|
+
* The view resource carries its title as `description` (hosts that list
|
|
23
|
+
* resources show it) and asks the host for a border (`prefersBorder`, owner
|
|
24
|
+
* decision 2026-10-12, #344 N159): the cards draw none of their own, so a
|
|
25
|
+
* frame sets them off from the chat around them.
|
|
26
|
+
*/
|
|
27
|
+
export declare function showToolBinding(name: string, title: string): {
|
|
28
|
+
view: {
|
|
29
|
+
name: string;
|
|
30
|
+
description: string;
|
|
31
|
+
prefersBorder: boolean;
|
|
32
|
+
};
|
|
33
|
+
outputSchema: z.ZodObject<{}, z.core.$loose>;
|
|
34
|
+
_meta: Record<string, unknown>;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* The strict input schema every raw `server.tool()` registration declares —
|
|
38
|
+
* the twin of the toolkit registrar's `strictInput` option for the widget
|
|
39
|
+
* path, which registers outside the registrar. A non-strict `z.object` lets
|
|
40
|
+
* mcp-use STRIP an unknown key before the handler runs: a misnamed optional
|
|
41
|
+
* filter then silently widens the result (#329). Strict, the schema is
|
|
42
|
+
* advertised with `additionalProperties: false`, and an unknown key fails
|
|
43
|
+
* validation with the toolkit's own message — every unknown key plus every
|
|
44
|
+
* valid one — as an `isError` result the model can correct in one retry.
|
|
45
|
+
*
|
|
46
|
+
* The message mirrors the toolkit's `unknownKeysMessage` (not exported);
|
|
47
|
+
* `widget-tool-bindings.test.ts` pins the two to the same text.
|
|
48
|
+
*/
|
|
49
|
+
export declare function strictToolInput<TShape extends z.ZodRawShape>(shape: TShape): z.ZodObject<{ -readonly [P in keyof TShape]: TShape[P]; }, z.core.$strict>;
|
|
50
|
+
/**
|
|
51
|
+
* App-only marker for the internal `*_data` feeds — spread into each feed's
|
|
52
|
+
* `server.tool` definition. `visibility: "app"` is mcp-use 2's first-class
|
|
53
|
+
* field (emitted as SEP-1865 `_meta.ui.visibility: ["app"]`): conforming hosts
|
|
54
|
+
* hide these tools from the LLM tool surface while keeping them callable from
|
|
55
|
+
* widgets via `callTool`; the "Internal JSON feed" descriptions stay as
|
|
56
|
+
* fallback for non-conforming hosts. Deliberately no `view` binding — the
|
|
57
|
+
* feeds must return JSON, not render UI.
|
|
58
|
+
*
|
|
59
|
+
* `openai/widgetAccessible` covers the Apps-SDK half of the dual contract:
|
|
60
|
+
* those hosts only allow in-widget callTool on tools carrying the key — a
|
|
61
|
+
* feed without it renders fine but every pagination/search/refresh is denied.
|
|
62
|
+
* The key does NOT render anything (no outputTemplate), so the feeds stay
|
|
63
|
+
* JSON-only. mcp-use passes non-`ui` `_meta` entries through untouched.
|
|
64
|
+
*/
|
|
65
|
+
export declare const appOnly: {
|
|
66
|
+
visibility: "app";
|
|
67
|
+
_meta: {
|
|
68
|
+
"openai/widgetAccessible": boolean;
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=widget-tool-bindings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"widget-tool-bindings.d.ts","sourceRoot":"","sources":["../src/widget-tool-bindings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;;;;;;;;EAM1D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,MAAM,SAAS,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,8EAM1E;AAUD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,OAAO;;;;;CAGnB,CAAA"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { appsSdkMeta, viewResourceUri } from "@miragon/mcp-toolkit-core";
|
|
3
|
+
/**
|
|
4
|
+
* The two spreads every module's raw `server.tool()` widget registrations
|
|
5
|
+
* compose — the wire-contract halves of architecture invariant 5. One
|
|
6
|
+
* implementation for all modules (they were byte-identical copies before):
|
|
7
|
+
* a module that hand-rolls these drifts out of the widget-contract e2e test's
|
|
8
|
+
* expectations on the first mcp-use change.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* View binding + Apps-SDK `_meta` half for a widget-RENDERING (model-visible)
|
|
12
|
+
* tool — spread into the `server.tool` definition of every `show_*` tool. The
|
|
13
|
+
* view name IS the tool name: mcp-use derives the entire MCP Apps half of the
|
|
14
|
+
* wire contract (`_meta.ui.resourceUri`, flat `ui/resourceUri`, resource CSP)
|
|
15
|
+
* from the first-class `view` binding — never stamp `ui` keys by hand, mcp-use
|
|
16
|
+
* overwrites that namespace on `tools/list`. What mcp-use does NOT derive is
|
|
17
|
+
* the OpenAI Apps SDK half (`openai/*`): `appsSdkMeta` builds it, pointing
|
|
18
|
+
* `openai/outputTemplate` at the same `ui://views/<name>.html` resource. The
|
|
19
|
+
* `outputSchema` is required by mcp-use for any view-bound tool; `passthrough`
|
|
20
|
+
* matches the free-form `structuredContent` the view builders return without
|
|
21
|
+
* stripping keys on SDK-side validation.
|
|
22
|
+
*
|
|
23
|
+
* The view resource carries its title as `description` (hosts that list
|
|
24
|
+
* resources show it) and asks the host for a border (`prefersBorder`, owner
|
|
25
|
+
* decision 2026-10-12, #344 N159): the cards draw none of their own, so a
|
|
26
|
+
* frame sets them off from the chat around them.
|
|
27
|
+
*/
|
|
28
|
+
export function showToolBinding(name, title) {
|
|
29
|
+
return {
|
|
30
|
+
view: { name, description: title, prefersBorder: true },
|
|
31
|
+
outputSchema: z.object({}).passthrough(),
|
|
32
|
+
_meta: appsSdkMeta({ resourceUri: viewResourceUri(name), title }),
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* The strict input schema every raw `server.tool()` registration declares —
|
|
37
|
+
* the twin of the toolkit registrar's `strictInput` option for the widget
|
|
38
|
+
* path, which registers outside the registrar. A non-strict `z.object` lets
|
|
39
|
+
* mcp-use STRIP an unknown key before the handler runs: a misnamed optional
|
|
40
|
+
* filter then silently widens the result (#329). Strict, the schema is
|
|
41
|
+
* advertised with `additionalProperties: false`, and an unknown key fails
|
|
42
|
+
* validation with the toolkit's own message — every unknown key plus every
|
|
43
|
+
* valid one — as an `isError` result the model can correct in one retry.
|
|
44
|
+
*
|
|
45
|
+
* The message mirrors the toolkit's `unknownKeysMessage` (not exported);
|
|
46
|
+
* `widget-tool-bindings.test.ts` pins the two to the same text.
|
|
47
|
+
*/
|
|
48
|
+
export function strictToolInput(shape) {
|
|
49
|
+
const valid = Object.keys(shape);
|
|
50
|
+
return z.strictObject(shape, {
|
|
51
|
+
error: (issue) => issue.code === "unrecognized_keys" ? unknownKeysMessage(issue.keys, valid) : undefined,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
function unknownKeysMessage(unknown, valid) {
|
|
55
|
+
const quote = (keys) => keys.map((key) => JSON.stringify(key)).join(", ");
|
|
56
|
+
const head = `Unknown key${unknown.length === 1 ? "" : "s"} ${quote(unknown)}.`;
|
|
57
|
+
return valid.length === 0
|
|
58
|
+
? `${head} This tool takes no arguments.`
|
|
59
|
+
: `${head} Valid keys: ${quote(valid)}.`;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* App-only marker for the internal `*_data` feeds — spread into each feed's
|
|
63
|
+
* `server.tool` definition. `visibility: "app"` is mcp-use 2's first-class
|
|
64
|
+
* field (emitted as SEP-1865 `_meta.ui.visibility: ["app"]`): conforming hosts
|
|
65
|
+
* hide these tools from the LLM tool surface while keeping them callable from
|
|
66
|
+
* widgets via `callTool`; the "Internal JSON feed" descriptions stay as
|
|
67
|
+
* fallback for non-conforming hosts. Deliberately no `view` binding — the
|
|
68
|
+
* feeds must return JSON, not render UI.
|
|
69
|
+
*
|
|
70
|
+
* `openai/widgetAccessible` covers the Apps-SDK half of the dual contract:
|
|
71
|
+
* those hosts only allow in-widget callTool on tools carrying the key — a
|
|
72
|
+
* feed without it renders fine but every pagination/search/refresh is denied.
|
|
73
|
+
* The key does NOT render anything (no outputTemplate), so the feeds stay
|
|
74
|
+
* JSON-only. mcp-use passes non-`ui` `_meta` entries through untouched.
|
|
75
|
+
*/
|
|
76
|
+
export const appOnly = {
|
|
77
|
+
visibility: "app",
|
|
78
|
+
_meta: { "openai/widgetAccessible": true },
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=widget-tool-bindings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"widget-tool-bindings.js","sourceRoot":"","sources":["../src/widget-tool-bindings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAExE;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,KAAa;IACzD,OAAO;QACL,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE;QACvD,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;QACxC,KAAK,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;KAClE,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,eAAe,CAA+B,KAAa;IACzE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAChC,OAAO,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE;QAC3B,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,KAAK,CAAC,IAAI,KAAK,mBAAmB,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;KACzF,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,OAA0B,EAAE,KAAwB;IAC9E,MAAM,KAAK,GAAG,CAAC,IAAuB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC5F,MAAM,IAAI,GAAG,cAAc,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAA;IAC/E,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;QACvB,CAAC,CAAC,GAAG,IAAI,gCAAgC;QACzC,CAAC,CAAC,GAAG,IAAI,gBAAgB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAA;AAC5C,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,UAAU,EAAE,KAAc;IAC1B,KAAK,EAAE,EAAE,yBAAyB,EAAE,IAAI,EAAE;CAC3C,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"widget-tool-bindings.test.d.ts","sourceRoot":"","sources":["../src/widget-tool-bindings.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { createToolRegistrar } from "@miragon/mcp-toolkit-core/tools";
|
|
4
|
+
import { appOnly, showToolBinding, strictToolInput } from "./widget-tool-bindings.js";
|
|
5
|
+
describe("showToolBinding", () => {
|
|
6
|
+
it("binds the view to the tool name and stamps the Apps-SDK _meta half", () => {
|
|
7
|
+
const binding = showToolBinding("camunda7_show_thing", "Thing");
|
|
8
|
+
expect(binding.view).toEqual({
|
|
9
|
+
name: "camunda7_show_thing",
|
|
10
|
+
description: "Thing",
|
|
11
|
+
prefersBorder: true,
|
|
12
|
+
});
|
|
13
|
+
expect(binding._meta).toMatchObject({
|
|
14
|
+
"openai/outputTemplate": "ui://views/camunda7_show_thing.html",
|
|
15
|
+
"openai/widgetAccessible": true,
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
it("carries a passthrough outputSchema (mcp-use requires one for view-bound tools)", () => {
|
|
19
|
+
const binding = showToolBinding("t", "T");
|
|
20
|
+
// Free-form structuredContent must survive SDK-side validation unstripped.
|
|
21
|
+
expect(binding.outputSchema.parse({ anything: 1, nested: { x: true } })).toEqual({
|
|
22
|
+
anything: 1,
|
|
23
|
+
nested: { x: true },
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
describe("appOnly", () => {
|
|
28
|
+
it("marks the tool app-only + widget-accessible, without any rendering keys", () => {
|
|
29
|
+
expect(appOnly.visibility).toBe("app");
|
|
30
|
+
expect(appOnly._meta).toEqual({ "openai/widgetAccessible": true });
|
|
31
|
+
// No view binding and no outputTemplate — a feed result must never be
|
|
32
|
+
// rendered by the host (invariant 5).
|
|
33
|
+
expect(appOnly).not.toHaveProperty("view");
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
describe("strictToolInput", () => {
|
|
37
|
+
const shape = { processDefinitionKey: z.string().optional(), engine: z.string().optional() };
|
|
38
|
+
/** The input schema the toolkit registrar advertises for `input` with `strictInput`. */
|
|
39
|
+
function registrarSchema(input) {
|
|
40
|
+
let schema;
|
|
41
|
+
const server = {
|
|
42
|
+
tool: (definition) => {
|
|
43
|
+
schema = definition.inputSchema;
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
createToolRegistrar(server, null, { strictInput: true })({
|
|
47
|
+
name: "probe",
|
|
48
|
+
description: "probe",
|
|
49
|
+
inputSchema: input,
|
|
50
|
+
handler: () => Promise.resolve(null),
|
|
51
|
+
});
|
|
52
|
+
if (!schema)
|
|
53
|
+
throw new Error("the registrar registered nothing");
|
|
54
|
+
return schema;
|
|
55
|
+
}
|
|
56
|
+
const failure = (schema, args) => {
|
|
57
|
+
const result = schema.safeParse(args);
|
|
58
|
+
if (result.success)
|
|
59
|
+
throw new Error("expected a validation failure");
|
|
60
|
+
return result.error.issues.map((issue) => issue.message);
|
|
61
|
+
};
|
|
62
|
+
it("rejects an unknown key, naming it and every valid key", () => {
|
|
63
|
+
expect(failure(strictToolInput(shape), { processDefinitionKeyIn: "a" })).toEqual([
|
|
64
|
+
'Unknown key "processDefinitionKeyIn". Valid keys: "processDefinitionKey", "engine".',
|
|
65
|
+
]);
|
|
66
|
+
});
|
|
67
|
+
it("reports exactly the registrar's message (the widget path matches the registrar path)", () => {
|
|
68
|
+
for (const args of [{ bogus: 1 }, { a: 1, b: 2, engine: "x" }]) {
|
|
69
|
+
expect(failure(strictToolInput(shape), args)).toEqual(failure(registrarSchema(shape), args));
|
|
70
|
+
}
|
|
71
|
+
expect(failure(strictToolInput({}), { x: 1 })).toEqual(failure(registrarSchema({}), { x: 1 }));
|
|
72
|
+
});
|
|
73
|
+
it("keeps valid input and other validation messages untouched", () => {
|
|
74
|
+
expect(strictToolInput(shape).parse({ engine: "a" })).toEqual({ engine: "a" });
|
|
75
|
+
expect(failure(strictToolInput(shape), { engine: 1 })[0]).not.toMatch(/Unknown key/);
|
|
76
|
+
});
|
|
77
|
+
it("advertises additionalProperties: false", () => {
|
|
78
|
+
expect(z.toJSONSchema(strictToolInput(shape), { io: "input" })).toMatchObject({
|
|
79
|
+
additionalProperties: false,
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
//# sourceMappingURL=widget-tool-bindings.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"widget-tool-bindings.test.js","sourceRoot":"","sources":["../src/widget-tool-bindings.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"with-tool-errors.test.d.ts","sourceRoot":"","sources":["../src/with-tool-errors.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { withToolErrors } from "./server.js";
|
|
3
|
+
class CodedError extends Error {
|
|
4
|
+
code = "ENGINE_NOT_SELECTED";
|
|
5
|
+
}
|
|
6
|
+
describe("withToolErrors", () => {
|
|
7
|
+
it("passes successful results through untouched", async () => {
|
|
8
|
+
const result = { content: [{ type: "text", text: "ok" }] };
|
|
9
|
+
const wrapped = withToolErrors(() => Promise.resolve(result));
|
|
10
|
+
await expect(wrapped()).resolves.toBe(result);
|
|
11
|
+
});
|
|
12
|
+
it("forwards the handler arguments", async () => {
|
|
13
|
+
const wrapped = withToolErrors((args) => Promise.resolve(args.a * 2));
|
|
14
|
+
await expect(wrapped({ a: 21 })).resolves.toBe(42);
|
|
15
|
+
});
|
|
16
|
+
it("converts a coded exception to the registrar's `[code] message` error result", async () => {
|
|
17
|
+
const wrapped = withToolErrors(() => Promise.reject(new CodedError("No engine selected for this session.")));
|
|
18
|
+
const result = (await wrapped());
|
|
19
|
+
expect(result.isError).toBe(true);
|
|
20
|
+
expect(result.content[0].text).toBe("[ENGINE_NOT_SELECTED] No engine selected for this session.");
|
|
21
|
+
});
|
|
22
|
+
it("prefers an HTTP-ish `status` over `code`, matching the toolkit registrar", async () => {
|
|
23
|
+
const e = Object.assign(new Error("boom"), { status: 404, code: "IGNORED" });
|
|
24
|
+
const wrapped = withToolErrors(() => Promise.reject(e));
|
|
25
|
+
const result = (await wrapped());
|
|
26
|
+
expect(result.content[0].text).toBe("[404] boom");
|
|
27
|
+
});
|
|
28
|
+
it("handles plain errors and non-Error throwables without a code prefix", async () => {
|
|
29
|
+
const plain = withToolErrors(() => Promise.reject(new Error("plain failure")));
|
|
30
|
+
// Non-Error rejection on purpose: the wrapper must stringify whatever a
|
|
31
|
+
// misbehaving handler throws instead of crashing on it.
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
|
|
33
|
+
const thrownString = withToolErrors(() => Promise.reject("string failure"));
|
|
34
|
+
expect((await plain()).content[0].text).toBe("plain failure");
|
|
35
|
+
expect((await thrownString()).content[0].text).toBe("string failure");
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=with-tool-errors.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"with-tool-errors.test.js","sourceRoot":"","sources":["../src/with-tool-errors.test.ts"],"names":[],"mappings":"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"}
|