@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,90 @@
|
|
|
1
|
+
import { describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { createLocalizeFor, createLocalizeViewFor, createViewLocaleOf, resolveProfileLocale, } from "./server-locale.js";
|
|
3
|
+
import { runWithMcpRequestInfo } from "./request-context.js";
|
|
4
|
+
const storeWith = (language) => ({
|
|
5
|
+
get: () => Promise.resolve({ language }),
|
|
6
|
+
});
|
|
7
|
+
/** A signed-in caller's handler ctx. */
|
|
8
|
+
const CTX = { auth: { user: { id: "user-1" } } };
|
|
9
|
+
describe("resolveProfileLocale", () => {
|
|
10
|
+
it("reads the caller's profile language", async () => {
|
|
11
|
+
expect(await resolveProfileLocale(storeWith("de"), CTX)).toBe("de");
|
|
12
|
+
});
|
|
13
|
+
it("falls back to English without a store, without a stored language, and without a key", async () => {
|
|
14
|
+
expect(await resolveProfileLocale(undefined, CTX)).toBe("en");
|
|
15
|
+
expect(await resolveProfileLocale(storeWith(undefined), CTX)).toBe("en");
|
|
16
|
+
// No identity: no request context at all, or an HTTP request without OAuth.
|
|
17
|
+
expect(await resolveProfileLocale(storeWith("de"))).toBe("en");
|
|
18
|
+
expect(await runWithMcpRequestInfo({}, () => resolveProfileLocale(storeWith("de")))).toBe("en");
|
|
19
|
+
});
|
|
20
|
+
it("reads the system preference — and a locale this build ships no catalog for — as English", async () => {
|
|
21
|
+
// The host locale `system` follows is a widget-side signal the server never sees.
|
|
22
|
+
expect(await resolveProfileLocale(storeWith("system"), CTX)).toBe("en");
|
|
23
|
+
expect(await resolveProfileLocale(storeWith("fr"), CTX)).toBe("en");
|
|
24
|
+
});
|
|
25
|
+
it("degrades to English on a store OUTAGE instead of failing the tool", async () => {
|
|
26
|
+
const warn = vi.spyOn(console, "warn").mockImplementation(() => { });
|
|
27
|
+
const broken = { get: () => Promise.reject(new Error("pg down")) };
|
|
28
|
+
expect(await resolveProfileLocale(broken, CTX)).toBe("en");
|
|
29
|
+
expect(warn).toHaveBeenCalledOnce();
|
|
30
|
+
warn.mockRestore();
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
describe("createLocalizeFor", () => {
|
|
34
|
+
const translator = (locale, key, params) => `${locale}:${key}${params ? `:${JSON.stringify(params)}` : ""}`;
|
|
35
|
+
it("binds the module translator to the resolved locale", async () => {
|
|
36
|
+
const localizeFor = createLocalizeFor(translator);
|
|
37
|
+
const t = await localizeFor(storeWith("de"), CTX);
|
|
38
|
+
expect(t("greeting")).toBe("de:greeting");
|
|
39
|
+
expect(t("count", { n: 2 })).toBe('de:count:{"n":2}');
|
|
40
|
+
});
|
|
41
|
+
it("localizes to English when no store is wired", async () => {
|
|
42
|
+
const t = await createLocalizeFor(translator)();
|
|
43
|
+
expect(t("greeting")).toBe("en:greeting");
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
/**
|
|
47
|
+
* The view-title rule every module's show tools share (#322 U3): a title
|
|
48
|
+
* only in a language the profile names. "system" follows the host's locale,
|
|
49
|
+
* which the server never sees, so the view carries no title rather than an
|
|
50
|
+
* English one over a German view.
|
|
51
|
+
*/
|
|
52
|
+
describe("createLocalizeViewFor / createViewLocaleOf", () => {
|
|
53
|
+
const translator = (locale, key, params) => `${locale}:${key}${params ? `:${JSON.stringify(params)}` : ""}`;
|
|
54
|
+
const localizeViewFor = createLocalizeViewFor(translator);
|
|
55
|
+
const viewLocaleOf = createViewLocaleOf(translator);
|
|
56
|
+
it("titles the view in the language the profile names, the summary alike", async () => {
|
|
57
|
+
for (const language of ["de", "en"]) {
|
|
58
|
+
const { t, title } = await localizeViewFor(storeWith(language), CTX);
|
|
59
|
+
expect(title("view.title")).toBe(`${language}:view.title`);
|
|
60
|
+
expect(title("view.title", { n: 2 })).toBe(`${language}:view.title:{"n":2}`);
|
|
61
|
+
expect(t("summary")).toBe(`${language}:summary`);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
it("sets no title for system, no saved language or one without a catalog; summaries in English", async () => {
|
|
65
|
+
for (const language of ["system", undefined, "fr"]) {
|
|
66
|
+
const { t, title } = await localizeViewFor(storeWith(language), CTX);
|
|
67
|
+
expect(title("view.title")).toBeUndefined();
|
|
68
|
+
expect(t("summary")).toBe("en:summary");
|
|
69
|
+
expect(viewLocaleOf(language).title("view.title")).toBeUndefined();
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
it("no store, no caller or a store outage reads as system: no title", async () => {
|
|
73
|
+
const warn = vi.spyOn(console, "warn").mockImplementation(() => { });
|
|
74
|
+
const broken = { get: () => Promise.reject(new Error("pg down")) };
|
|
75
|
+
for (const view of [
|
|
76
|
+
await localizeViewFor(undefined, CTX),
|
|
77
|
+
await localizeViewFor(storeWith("de")),
|
|
78
|
+
await localizeViewFor(broken, CTX),
|
|
79
|
+
]) {
|
|
80
|
+
expect(view.title("view.title")).toBeUndefined();
|
|
81
|
+
expect(view.t("summary")).toBe("en:summary");
|
|
82
|
+
}
|
|
83
|
+
warn.mockRestore();
|
|
84
|
+
});
|
|
85
|
+
it("a language already read titles the same way", () => {
|
|
86
|
+
expect(viewLocaleOf("de").title("view.title")).toBe("de:view.title");
|
|
87
|
+
expect(viewLocaleOf("en").t("summary")).toBe("en:summary");
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
//# sourceMappingURL=server-locale.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-locale.test.js","sourceRoot":"","sources":["../src/server-locale.test.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server-side surface of the widget shell (`@miragon/pulse-widget-shell/server`):
|
|
3
|
+
* the one import path for module tools and composition roots — the eager view
|
|
4
|
+
* builders for `*_show_*` tools (the toolkit core's, re-typed below), the
|
|
5
|
+
* shared error wrapper for raw `server.tool()` registrations, module
|
|
6
|
+
* composition and the composed-server boot, caller identity, the profile
|
|
7
|
+
* and dashboard persistence, and the one rule a BPMN model's names are read by.
|
|
8
|
+
*/
|
|
9
|
+
export type { ComposedViewEntry, ComposedViewInput, SingleWidgetViewInput, } from "@miragon/mcp-toolkit-core";
|
|
10
|
+
export { withToolErrors } from "@miragon/mcp-toolkit-core/tools";
|
|
11
|
+
export { createShellPlugin, shellDefinition, type ShellPluginOptions } from "./shell-catalogue.js";
|
|
12
|
+
export { SHELL_SAVE_SETTINGS, SHELL_SETTINGS_DATA, SHELL_SETTINGS_PAGE_WIDGET, SHELL_SETTINGS_WIDGET, SHELL_SHOW_SETTINGS, type ShellSettingsReadOnlyReason, type ShellSettingsView, } from "./shell-settings-contract.js";
|
|
13
|
+
export { createBuilderTexts, type BuilderTexts } from "./builder-texts.js";
|
|
14
|
+
export { ANONYMOUS_PROFILE_KEY, resolveAuthUserId, resolveProfileKey, withoutDefaults, type ProfileSlice, type ProfileSource, } from "./profile.js";
|
|
15
|
+
export { callerCacheKey, getMcpRequestInfo, installMcpRequestContext, runWithMcpRequestInfo, type McpMiddlewareHost, type McpRequestInfo, } from "./request-context.js";
|
|
16
|
+
export { OAUTH_ENV_VARS, oauthFromEnv, type OAuthFromEnvOptions } from "./oauth-env.js";
|
|
17
|
+
export { requestLogLevelWarning, resolvePort, swallowDevCliViewsPrime, type ResolvePortOptions, type ToolCallMiddlewareHost, } from "./host-boot.js";
|
|
18
|
+
export { installHealthEndpoints, type HealthOptions, type HealthReport, type HealthStatus, type HttpRouteHost, type ReadinessCheck, } from "./health.js";
|
|
19
|
+
export { installMetrics, type HttpMiddlewareContext, type HttpMiddlewareHost, type MetricsHost, type MetricsOptions, } from "./metrics.js";
|
|
20
|
+
export { DEFAULT_MAX_BODY_BYTES, HTTP_EDGE_ENV_VARS, installHttpEdgeGuard, resolveHttpEdgePolicy, type AllowList, type EdgeGuardContext, type EdgeGuardHost, type EdgeGuardOptions, type HttpEdgePolicy, } from "./http-edge.js";
|
|
21
|
+
export { fontAssetsCsp, installFontAssets, type FontAsset, type FontAssetsOptions, } from "./font-assets.js";
|
|
22
|
+
export { SERVED_FONT_FILES, SERVED_FONT_PATH, servedFontBaseUrl } from "./served-fonts.js";
|
|
23
|
+
export { honorWidgetMetaDefaults, withWidgetMetaDefaults, type WidgetMetaDefaults, } from "./widget-meta-defaults.js";
|
|
24
|
+
export { createBodyLimitedListener, type BodyLimitedListener, type BodyLimitedListenerOptions, type FetchTarget, } from "./node-listener.js";
|
|
25
|
+
export { createComposedServer, DEFAULT_DRAIN_TIMEOUT_MS, DEFAULT_REQUEST_TIMEOUT_MS, type BootComposition, type ComposedServer, type ComposedServerInfo, type ComposedServerOptions, type ComposedServerRuntime, type ListenOptions, type RunningServer, } from "./composed-server.js";
|
|
26
|
+
export { explicitLocale, LANGUAGES, LOCALES, PROFILE_SCHEMA_VERSION, type LanguagePref, type Locale, } from "./profile-constants.js";
|
|
27
|
+
export { defaultProfileRecord, profileRecordSchema, type ProfileRecord, type ProfileRecordSaveInput, } from "./profile-record.js";
|
|
28
|
+
export { parseStoredProfile } from "./profile-migrations.js";
|
|
29
|
+
export { createFileSystemProfileStore, createInMemoryProfileStore, mergeStoredProfile, type MergedProfile, type ProfileSaveOptions, type ProfileStore, } from "./profile-store.js";
|
|
30
|
+
export { readProfileAdvisory } from "./profile-advisory.js";
|
|
31
|
+
export { createPostgresProfileStore, PROFILE_STORE_MIGRATIONS } from "./profile-store-postgres.js";
|
|
32
|
+
export { createPostgresDashboardStore, DASHBOARD_STORE_MIGRATIONS, } from "./dashboard-store-postgres.js";
|
|
33
|
+
export { createSql, postgresReadinessCheck, runMigrations, type Migration } from "./postgres.js";
|
|
34
|
+
export { appOnly, showToolBinding, strictToolInput } from "./widget-tool-bindings.js";
|
|
35
|
+
export { composeModules, frameworkWritesAllowed, type ActiveModuleRef, type ComposableModule, type EffectiveToolset, type ModuleComposition, type ResolveBootOptions, type ResolvedBoot, } from "./composition.js";
|
|
36
|
+
export { announcePersistence, persistenceFromEnv, profileStoreFromEnv, type PersistenceBackend, type PersistenceSelection, } from "./profile-store-env.js";
|
|
37
|
+
export { createToolsetVocabulary, type EffectiveSelection, type ToolsetSource, type ToolsetVocabulary, } from "./toolsets.js";
|
|
38
|
+
export { createLocalizeFor, createLocalizeViewFor, createViewLocaleOf, resolveProfileLocale, type ServerT, type Translator, type ViewLocale, } from "./server-locale.js";
|
|
39
|
+
export { parseModuleSlice, requireProfileKey, saveModuleSlice } from "./profile-slice.js";
|
|
40
|
+
export { catalogueSyncIssues } from "./catalogue-sync.js";
|
|
41
|
+
export { bpmnProcessNameOf, parseBpmnNames, readBpmnNames, type BpmnModelNames, type BpmnNames, } from "./bpmn-names.js";
|
|
42
|
+
export { buildComposedView, buildDataFeedResult, buildSingleWidgetView } from "./view-results.js";
|
|
43
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/server.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export { withToolErrors } from "@miragon/mcp-toolkit-core/tools";
|
|
2
|
+
export { createShellPlugin, shellDefinition } from "./shell-catalogue.js";
|
|
3
|
+
export { SHELL_SAVE_SETTINGS, SHELL_SETTINGS_DATA, SHELL_SETTINGS_PAGE_WIDGET, SHELL_SETTINGS_WIDGET, SHELL_SHOW_SETTINGS, } from "./shell-settings-contract.js";
|
|
4
|
+
export { createBuilderTexts } from "./builder-texts.js";
|
|
5
|
+
export { ANONYMOUS_PROFILE_KEY, resolveAuthUserId, resolveProfileKey, withoutDefaults, } from "./profile.js";
|
|
6
|
+
export { callerCacheKey, getMcpRequestInfo, installMcpRequestContext, runWithMcpRequestInfo, } from "./request-context.js";
|
|
7
|
+
export { OAUTH_ENV_VARS, oauthFromEnv } from "./oauth-env.js";
|
|
8
|
+
export { requestLogLevelWarning, resolvePort, swallowDevCliViewsPrime, } from "./host-boot.js";
|
|
9
|
+
export { installHealthEndpoints, } from "./health.js";
|
|
10
|
+
export { installMetrics, } from "./metrics.js";
|
|
11
|
+
export { DEFAULT_MAX_BODY_BYTES, HTTP_EDGE_ENV_VARS, installHttpEdgeGuard, resolveHttpEdgePolicy, } from "./http-edge.js";
|
|
12
|
+
export { fontAssetsCsp, installFontAssets, } from "./font-assets.js";
|
|
13
|
+
export { SERVED_FONT_FILES, SERVED_FONT_PATH, servedFontBaseUrl } from "./served-fonts.js";
|
|
14
|
+
export { honorWidgetMetaDefaults, withWidgetMetaDefaults, } from "./widget-meta-defaults.js";
|
|
15
|
+
export { createBodyLimitedListener, } from "./node-listener.js";
|
|
16
|
+
export { createComposedServer, DEFAULT_DRAIN_TIMEOUT_MS, DEFAULT_REQUEST_TIMEOUT_MS, } from "./composed-server.js";
|
|
17
|
+
export { explicitLocale, LANGUAGES, LOCALES, PROFILE_SCHEMA_VERSION, } from "./profile-constants.js";
|
|
18
|
+
export { defaultProfileRecord, profileRecordSchema, } from "./profile-record.js";
|
|
19
|
+
export { parseStoredProfile } from "./profile-migrations.js";
|
|
20
|
+
export { createFileSystemProfileStore, createInMemoryProfileStore, mergeStoredProfile, } from "./profile-store.js";
|
|
21
|
+
export { readProfileAdvisory } from "./profile-advisory.js";
|
|
22
|
+
export { createPostgresProfileStore, PROFILE_STORE_MIGRATIONS } from "./profile-store-postgres.js";
|
|
23
|
+
export { createPostgresDashboardStore, DASHBOARD_STORE_MIGRATIONS, } from "./dashboard-store-postgres.js";
|
|
24
|
+
export { createSql, postgresReadinessCheck, runMigrations } from "./postgres.js";
|
|
25
|
+
export { appOnly, showToolBinding, strictToolInput } from "./widget-tool-bindings.js";
|
|
26
|
+
export { composeModules, frameworkWritesAllowed, } from "./composition.js";
|
|
27
|
+
export { announcePersistence, persistenceFromEnv, profileStoreFromEnv, } from "./profile-store-env.js";
|
|
28
|
+
export { createToolsetVocabulary, } from "./toolsets.js";
|
|
29
|
+
export { createLocalizeFor, createLocalizeViewFor, createViewLocaleOf, resolveProfileLocale, } from "./server-locale.js";
|
|
30
|
+
export { parseModuleSlice, requireProfileKey, saveModuleSlice } from "./profile-slice.js";
|
|
31
|
+
export { catalogueSyncIssues } from "./catalogue-sync.js";
|
|
32
|
+
export { bpmnProcessNameOf, parseBpmnNames, readBpmnNames, } from "./bpmn-names.js";
|
|
33
|
+
export { buildComposedView, buildDataFeedResult, buildSingleWidgetView } from "./view-results.js";
|
|
34
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type AppDefinition, type AppPlugin } from "@miragon/mcp-toolkit-core";
|
|
2
|
+
import type { MCPServer } from "mcp-use";
|
|
3
|
+
import { type ShellSettingsToolsOptions } from "./shell-settings.js";
|
|
4
|
+
export declare const shellDefinition: AppDefinition;
|
|
5
|
+
export type ShellPluginOptions = ShellSettingsToolsOptions;
|
|
6
|
+
/**
|
|
7
|
+
* The always-on shell plugin. With a profile store it registers the settings
|
|
8
|
+
* triple; without one (a root that persists nothing) the page renders the
|
|
9
|
+
* module sections alone and `ProfileGate` falls back to the host's locale.
|
|
10
|
+
*/
|
|
11
|
+
export declare function createShellPlugin(options?: ShellPluginOptions): AppPlugin<MCPServer>;
|
|
12
|
+
//# sourceMappingURL=shell-catalogue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell-catalogue.d.ts","sourceRoot":"","sources":["../src/shell-catalogue.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,SAAS,EAEf,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAExC,OAAO,EAA8B,KAAK,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AAkJhG,eAAO,MAAM,eAAe,EAAE,aA+D7B,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,yBAAyB,CAAA;AAE1D;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC,SAAS,CAAC,CAMpF"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { PROPS_SCHEMA_DISPLAY_KEYWORD, } from "@miragon/mcp-toolkit-core";
|
|
3
|
+
import { SHELL_SETTINGS_PAGE_WIDGET, SHELL_SETTINGS_WIDGET } from "./shell-settings-contract.js";
|
|
4
|
+
import { registerShellSettingsTools } from "./shell-settings.js";
|
|
5
|
+
/**
|
|
6
|
+
* The `shell` module: generic, module-agnostic widgets every deployment gets.
|
|
7
|
+
* They render plain data from ANY context key (named via `props.dataKey`) —
|
|
8
|
+
* the standard composition targets for `render-view` and the visual builder,
|
|
9
|
+
* so any module or pipeline step can feed a KPI row or data table without
|
|
10
|
+
* shipping a dedicated widget:
|
|
11
|
+
*
|
|
12
|
+
* step: produces ["camunda7:kpis"]
|
|
13
|
+
* layout: { widget: "shell:kpi-grid", props: { dataKey: "camunda7:kpis" } }
|
|
14
|
+
*
|
|
15
|
+
* Components live next door in `src/ui/generic-widgets.tsx` and
|
|
16
|
+
* `src/ui/shell-settings.tsx` (exported via `@miragon/pulse-widget-shell/widgets`,
|
|
17
|
+
* all four in `shellWidgets`); this file carries their catalogue metadata so
|
|
18
|
+
* host apps register the plugin without owning any domain UI. Its only tools
|
|
19
|
+
* are the settings triple (`shell-settings.ts`), and no step.
|
|
20
|
+
*
|
|
21
|
+
* `description`s are the model's text; the view builder shows people the
|
|
22
|
+
* `title`/`summary` (and each top-level field's `x-display`) in English or
|
|
23
|
+
* German (toolkit 2.8), never sent to the model.
|
|
24
|
+
*/
|
|
25
|
+
/** A text in both languages the builder speaks. */
|
|
26
|
+
const both = (en, de) => ({ en, de });
|
|
27
|
+
/** A props field's label and help line in the builder's props sheet. */
|
|
28
|
+
const field = (title, summary) => ({
|
|
29
|
+
[PROPS_SCHEMA_DISPLAY_KEYWORD]: { title, summary },
|
|
30
|
+
});
|
|
31
|
+
const DATA_KEY = both("Data key", "Datenschlüssel");
|
|
32
|
+
const EMPTY_TEXT = both("Text without data", "Text ohne Daten");
|
|
33
|
+
const kpiGridPropsSchema = z.toJSONSchema(z.object({
|
|
34
|
+
dataKey: z
|
|
35
|
+
.string()
|
|
36
|
+
.describe('Context key holding the KPI cells — either an array of { label, value, tone?, fraction? } (tone: danger|warning|success|info|neutral) or a plain { "label": value } object.')
|
|
37
|
+
.meta(field(DATA_KEY, both("The key whose metrics the strip shows.", "Der Schlüssel, dessen Kennzahlen die Leiste zeigt."))),
|
|
38
|
+
boxed: z
|
|
39
|
+
.boolean()
|
|
40
|
+
.optional()
|
|
41
|
+
.describe("Wrap the strip in a rounded bordered card.")
|
|
42
|
+
.meta(field(both("Framed", "Mit Rahmen"), both("Draws the strip in a framed card.", "Zeichnet die Leiste in einer Karte mit Rahmen."))),
|
|
43
|
+
variant: z
|
|
44
|
+
.enum(["strip", "soft"])
|
|
45
|
+
.optional()
|
|
46
|
+
.describe('"soft" renders tone-tinted cards instead of the bordered strip.')
|
|
47
|
+
.meta(field(both("Style", "Darstellung"), both("One strip, or a tinted card per metric.", "Eine Leiste oder eine getönte Karte je Kennzahl."))),
|
|
48
|
+
emptyText: z
|
|
49
|
+
.string()
|
|
50
|
+
.optional()
|
|
51
|
+
.describe("Text shown when the key holds no usable cells.")
|
|
52
|
+
.meta(field(EMPTY_TEXT, both("Shown when the key holds no metrics.", "Erscheint, wenn der Schlüssel keine Kennzahlen enthält."))),
|
|
53
|
+
}));
|
|
54
|
+
const dataTablePropsSchema = z.toJSONSchema(z.object({
|
|
55
|
+
dataKey: z
|
|
56
|
+
.string()
|
|
57
|
+
.describe("Context key holding the rows — an array of flat records, or { rows: [...] }.")
|
|
58
|
+
.meta(field(DATA_KEY, both("The key whose records the table shows.", "Der Schlüssel, dessen Datensätze die Tabelle zeigt."))),
|
|
59
|
+
// The props sheet edits top-level fields only (an array is JSON there),
|
|
60
|
+
// and the toolkit strips `x-display` at that level only: the column
|
|
61
|
+
// fields carry no builder text, or it would reach the model.
|
|
62
|
+
columns: z
|
|
63
|
+
.array(z.object({
|
|
64
|
+
key: z.string().describe("Record field to render."),
|
|
65
|
+
label: z
|
|
66
|
+
.string()
|
|
67
|
+
.optional()
|
|
68
|
+
.describe("Column header (defaults to the key in words: totalIncidents → Total incidents)."),
|
|
69
|
+
align: z.enum(["left", "right"]).optional(),
|
|
70
|
+
}))
|
|
71
|
+
.optional()
|
|
72
|
+
.describe("Column spec; derived from the first row's primitive fields when omitted.")
|
|
73
|
+
.meta(field(both("Columns", "Spalten"), both("The fields the table shows. Without them, those of the first row.", "Die Felder, die die Tabelle zeigt. Ohne Angabe die der ersten Zeile."))),
|
|
74
|
+
emptyText: z
|
|
75
|
+
.string()
|
|
76
|
+
.optional()
|
|
77
|
+
.describe("Text shown when there are no rows.")
|
|
78
|
+
.meta(field(EMPTY_TEXT, both("Shown when there are no rows.", "Erscheint, wenn es keine Zeilen gibt."))),
|
|
79
|
+
}));
|
|
80
|
+
export const shellDefinition = {
|
|
81
|
+
name: "shell",
|
|
82
|
+
title: both("Building blocks", "Bausteine"),
|
|
83
|
+
steps: [],
|
|
84
|
+
widgets: [
|
|
85
|
+
{
|
|
86
|
+
id: "shell:kpi-grid",
|
|
87
|
+
title: both("Metric strip", "Kennzahlenleiste"),
|
|
88
|
+
summary: both("A row of metrics from any data key.", "Eine Reihe Kennzahlen aus einem beliebigen Datenschlüssel."),
|
|
89
|
+
description: "Generic KPI strip. Renders the cells found under props.dataKey — lets any module or pipeline step feed a standard KPI row without shipping its own widget.",
|
|
90
|
+
requires: [],
|
|
91
|
+
consumes: [],
|
|
92
|
+
size: "half",
|
|
93
|
+
propsSchema: kpiGridPropsSchema,
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
id: "shell:data-table",
|
|
97
|
+
title: both("Data table", "Datentabelle"),
|
|
98
|
+
summary: both("A table of the records under any data key.", "Eine Tabelle der Datensätze unter einem beliebigen Datenschlüssel."),
|
|
99
|
+
description: "Generic data table. Renders the array of records found under props.dataKey as a cockpit-style table — columns configurable or derived from the data.",
|
|
100
|
+
requires: [],
|
|
101
|
+
consumes: [],
|
|
102
|
+
size: "full",
|
|
103
|
+
propsSchema: dataTablePropsSchema,
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
// Self-fetching from shell_settings_data; one row of the settings page.
|
|
107
|
+
id: SHELL_SETTINGS_WIDGET,
|
|
108
|
+
title: both("Language", "Sprache"),
|
|
109
|
+
summary: both("The language of the views and the summaries.", "Die Sprache der Ansichten und der Zusammenfassungen."),
|
|
110
|
+
description: "The UI language section of the settings page (shell_save_settings changes it).",
|
|
111
|
+
requires: [],
|
|
112
|
+
consumes: [],
|
|
113
|
+
size: "full",
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
// The page itself: the language section, then every `<module>:settings`
|
|
117
|
+
// section the host bundles — opened by shell_show_settings and the
|
|
118
|
+
// cockpit's settings tab, not composed into a view.
|
|
119
|
+
id: SHELL_SETTINGS_PAGE_WIDGET,
|
|
120
|
+
title: both("Settings", "Einstellungen"),
|
|
121
|
+
summary: both("The language and every module's settings on one page.", "Die Sprache und die Einstellungen jedes Moduls auf einer Seite."),
|
|
122
|
+
description: "The whole settings page — opened by shell_show_settings, not composed into a view.",
|
|
123
|
+
requires: [],
|
|
124
|
+
consumes: [],
|
|
125
|
+
size: "full",
|
|
126
|
+
},
|
|
127
|
+
],
|
|
128
|
+
};
|
|
129
|
+
/**
|
|
130
|
+
* The always-on shell plugin. With a profile store it registers the settings
|
|
131
|
+
* triple; without one (a root that persists nothing) the page renders the
|
|
132
|
+
* module sections alone and `ProfileGate` falls back to the host's locale.
|
|
133
|
+
*/
|
|
134
|
+
export function createShellPlugin(options) {
|
|
135
|
+
if (!options)
|
|
136
|
+
return { definition: shellDefinition };
|
|
137
|
+
return {
|
|
138
|
+
definition: shellDefinition,
|
|
139
|
+
registerWidgetTools: (server) => registerShellSettingsTools(server, options),
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=shell-catalogue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell-catalogue.js","sourceRoot":"","sources":["../src/shell-catalogue.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { LanguagePref } from "./profile-constants.js";
|
|
2
|
+
/**
|
|
3
|
+
* The shell's settings contract, shared by the server tools
|
|
4
|
+
* (`shell-settings.ts`) and the widgets (`ui/shell-settings.tsx`) — no
|
|
5
|
+
* runtime dependency, so the browser bundle imports it without server code.
|
|
6
|
+
*
|
|
7
|
+
* The shell owns the record-level preferences every module reads (today the
|
|
8
|
+
* UI `language`) and the settings PAGE, which composes one section per module
|
|
9
|
+
* (`<module>:settings`). Modules own only their `profile.modules.<module>`
|
|
10
|
+
* slice and its section.
|
|
11
|
+
*/
|
|
12
|
+
/** Renders the settings page: the shell's language section, then every module's section. */
|
|
13
|
+
export declare const SHELL_SHOW_SETTINGS = "shell_show_settings";
|
|
14
|
+
/** App-only feed of the shell's section; also what `ProfileGate` reads the language from. */
|
|
15
|
+
export declare const SHELL_SETTINGS_DATA = "shell_settings_data";
|
|
16
|
+
/** Saves the record-level preferences (the UI language). */
|
|
17
|
+
export declare const SHELL_SAVE_SETTINGS = "shell_save_settings";
|
|
18
|
+
/** The settings page widget (`shell_show_settings`, the cockpit's settings tab). */
|
|
19
|
+
export declare const SHELL_SETTINGS_PAGE_WIDGET = "shell:settings-page";
|
|
20
|
+
/** The shell's own section on that page. */
|
|
21
|
+
export declare const SHELL_SETTINGS_WIDGET = "shell:settings";
|
|
22
|
+
/**
|
|
23
|
+
* Why the section cannot save: no caller identity (no OAuth), or a deployment
|
|
24
|
+
* whose framework writes are off (`frameworkWritesAllowed`: a module runs on
|
|
25
|
+
* its read-only floor).
|
|
26
|
+
*/
|
|
27
|
+
export type ShellSettingsReadOnlyReason = "noSignIn" | "readOnly";
|
|
28
|
+
/** What `shell_settings_data` returns and `shell_show_settings` renders. */
|
|
29
|
+
export interface ShellSettingsView {
|
|
30
|
+
language: LanguagePref;
|
|
31
|
+
canSave: boolean;
|
|
32
|
+
readOnlyReason: ShellSettingsReadOnlyReason | null;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=shell-settings-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell-settings-contract.d.ts","sourceRoot":"","sources":["../src/shell-settings-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAE1D;;;;;;;;;GASG;AAEH,4FAA4F;AAC5F,eAAO,MAAM,mBAAmB,wBAAwB,CAAA;AACxD,6FAA6F;AAC7F,eAAO,MAAM,mBAAmB,wBAAwB,CAAA;AACxD,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB,wBAAwB,CAAA;AAExD,oFAAoF;AACpF,eAAO,MAAM,0BAA0B,wBAAwB,CAAA;AAC/D,4CAA4C;AAC5C,eAAO,MAAM,qBAAqB,mBAAmB,CAAA;AAErD;;;;GAIG;AACH,MAAM,MAAM,2BAA2B,GAAG,UAAU,GAAG,UAAU,CAAA;AAEjE,4EAA4E;AAC5E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,YAAY,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,EAAE,2BAA2B,GAAG,IAAI,CAAA;CACnD"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The shell's settings contract, shared by the server tools
|
|
3
|
+
* (`shell-settings.ts`) and the widgets (`ui/shell-settings.tsx`) — no
|
|
4
|
+
* runtime dependency, so the browser bundle imports it without server code.
|
|
5
|
+
*
|
|
6
|
+
* The shell owns the record-level preferences every module reads (today the
|
|
7
|
+
* UI `language`) and the settings PAGE, which composes one section per module
|
|
8
|
+
* (`<module>:settings`). Modules own only their `profile.modules.<module>`
|
|
9
|
+
* slice and its section.
|
|
10
|
+
*/
|
|
11
|
+
/** Renders the settings page: the shell's language section, then every module's section. */
|
|
12
|
+
export const SHELL_SHOW_SETTINGS = "shell_show_settings";
|
|
13
|
+
/** App-only feed of the shell's section; also what `ProfileGate` reads the language from. */
|
|
14
|
+
export const SHELL_SETTINGS_DATA = "shell_settings_data";
|
|
15
|
+
/** Saves the record-level preferences (the UI language). */
|
|
16
|
+
export const SHELL_SAVE_SETTINGS = "shell_save_settings";
|
|
17
|
+
/** The settings page widget (`shell_show_settings`, the cockpit's settings tab). */
|
|
18
|
+
export const SHELL_SETTINGS_PAGE_WIDGET = "shell:settings-page";
|
|
19
|
+
/** The shell's own section on that page. */
|
|
20
|
+
export const SHELL_SETTINGS_WIDGET = "shell:settings";
|
|
21
|
+
//# sourceMappingURL=shell-settings-contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell-settings-contract.js","sourceRoot":"","sources":["../src/shell-settings-contract.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,4FAA4F;AAC5F,MAAM,CAAC,MAAM,mBAAmB,GAAG,qBAAqB,CAAA;AACxD,6FAA6F;AAC7F,MAAM,CAAC,MAAM,mBAAmB,GAAG,qBAAqB,CAAA;AACxD,4DAA4D;AAC5D,MAAM,CAAC,MAAM,mBAAmB,GAAG,qBAAqB,CAAA;AAExD,oFAAoF;AACpF,MAAM,CAAC,MAAM,0BAA0B,GAAG,qBAAqB,CAAA;AAC/D,4CAA4C;AAC5C,MAAM,CAAC,MAAM,qBAAqB,GAAG,gBAAgB,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { MCPServer } from "mcp-use";
|
|
3
|
+
import { type Catalogs } from "@miragon/mcp-toolkit-core";
|
|
4
|
+
import type { ProfileStore } from "./profile-store.js";
|
|
5
|
+
/** The server texts, exported for the brand gates (`catalogTextFindings`). */
|
|
6
|
+
export declare const SHELL_SETTINGS_CATALOGS: Catalogs;
|
|
7
|
+
export declare const shellSettingsSaveInput: {
|
|
8
|
+
language: z.ZodEnum<{
|
|
9
|
+
en: "en";
|
|
10
|
+
de: "de";
|
|
11
|
+
system: "system";
|
|
12
|
+
}>;
|
|
13
|
+
};
|
|
14
|
+
export interface ShellSettingsToolsOptions {
|
|
15
|
+
/** The shared profile store; the language is a field of its record. */
|
|
16
|
+
profileStore: ProfileStore;
|
|
17
|
+
/**
|
|
18
|
+
* Whether the save tool exists: the composition root passes
|
|
19
|
+
* `frameworkWritesAllowed(boot)`. False keeps the section read-only.
|
|
20
|
+
*/
|
|
21
|
+
allowSave: boolean;
|
|
22
|
+
}
|
|
23
|
+
export declare function registerShellSettingsTools(server: MCPServer, { profileStore: store, allowSave }: ShellSettingsToolsOptions): void;
|
|
24
|
+
//# sourceMappingURL=shell-settings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell-settings.d.ts","sourceRoot":"","sources":["../src/shell-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACxC,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAI3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAyDtD,8EAA8E;AAC9E,eAAO,MAAM,uBAAuB,UAAW,CAAA;AAK/C,eAAO,MAAM,sBAAsB;;;;;;CAIlC,CAAA;AAED,MAAM,WAAW,yBAAyB;IACxC,uEAAuE;IACvE,YAAY,EAAE,YAAY,CAAA;IAC1B;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAA;CACnB;AAWD,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,SAAS,EACjB,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,yBAAyB,GAC5D,IAAI,CA6FN"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { createTranslator } from "@miragon/mcp-toolkit-core";
|
|
3
|
+
import { withToolErrors } from "@miragon/mcp-toolkit-core/tools";
|
|
4
|
+
import { LANGUAGES } from "./profile-constants.js";
|
|
5
|
+
import { requireProfileKey } from "./profile-slice.js";
|
|
6
|
+
import { resolveAuthUserId, resolveProfileKey } from "./profile.js";
|
|
7
|
+
import { createViewLocaleOf } from "./server-locale.js";
|
|
8
|
+
import { SHELL_SAVE_SETTINGS, SHELL_SETTINGS_DATA, SHELL_SETTINGS_PAGE_WIDGET, SHELL_SHOW_SETTINGS, } from "./shell-settings-contract.js";
|
|
9
|
+
import { buildDataFeedResult, buildSingleWidgetView } from "./view-results.js";
|
|
10
|
+
import { appOnly, showToolBinding, strictToolInput } from "./widget-tool-bindings.js";
|
|
11
|
+
/**
|
|
12
|
+
* The shell's settings tools — the record-level preferences every module
|
|
13
|
+
* reads (the UI language) and the settings page, owned by no connector (#346):
|
|
14
|
+
* - `shell_show_settings` renders the page (the shell's section first, then
|
|
15
|
+
* every module's `<module>:settings` section the host bundles);
|
|
16
|
+
* - `shell_settings_data` is the section's app-only feed, and what
|
|
17
|
+
* `ProfileGate` reads the language from in every view;
|
|
18
|
+
* - `shell_save_settings` saves the language.
|
|
19
|
+
*
|
|
20
|
+
* The save is a durable write no module toolset filters, so it follows the
|
|
21
|
+
* host rule for those: registered only while the composition root says
|
|
22
|
+
* framework writes are allowed (`frameworkWritesAllowed(boot)`: OAuth
|
|
23
|
+
* installed AND no module on its read-only floor). The two view tools carry
|
|
24
|
+
* the same decision as `canSave`, so the section never offers a Save that
|
|
25
|
+
* would resolve to an unknown tool.
|
|
26
|
+
*/
|
|
27
|
+
/** The model's summaries, in the profile's language (English for "system"). */
|
|
28
|
+
const catalogs = {
|
|
29
|
+
en: {
|
|
30
|
+
"settings.title": "Settings",
|
|
31
|
+
"settings.language.system": "automatic (follows the chat app)",
|
|
32
|
+
"settings.language.en": "English",
|
|
33
|
+
"settings.language.de": "German",
|
|
34
|
+
"settings.summary": ({ language }) => `Settings page: UI language ${String(language)}, then each module's settings section.`,
|
|
35
|
+
"settings.summary.canSave": " The user can change them on the page or ask you to.",
|
|
36
|
+
"settings.summary.readOnly": " Settings can't be saved on this server.",
|
|
37
|
+
"settings.saved": ({ language }) => `UI language saved: ${String(language)}.`,
|
|
38
|
+
},
|
|
39
|
+
de: {
|
|
40
|
+
"settings.title": "Einstellungen",
|
|
41
|
+
"settings.language.system": "automatisch (folgt der Chat-App)",
|
|
42
|
+
"settings.language.en": "Englisch",
|
|
43
|
+
"settings.language.de": "Deutsch",
|
|
44
|
+
"settings.summary": ({ language }) => `Einstellungen: Sprache der Oberfläche ${String(language)}, danach der Abschnitt jedes Moduls.`,
|
|
45
|
+
"settings.summary.canSave": " Du kannst sie auf der Seite ändern oder den Chat darum bitten.",
|
|
46
|
+
"settings.summary.readOnly": " Auf diesem Server lassen sich keine Einstellungen speichern.",
|
|
47
|
+
"settings.saved": ({ language }) => `Sprache der Oberfläche gespeichert: ${String(language)}.`,
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
/** The server texts, exported for the brand gates (`catalogTextFindings`). */
|
|
51
|
+
export const SHELL_SETTINGS_CATALOGS = catalogs;
|
|
52
|
+
const viewLocaleOf = createViewLocaleOf(createTranslator(catalogs));
|
|
53
|
+
const languageName = (t, language) => t(`settings.language.${language}`);
|
|
54
|
+
export const shellSettingsSaveInput = {
|
|
55
|
+
language: z
|
|
56
|
+
.enum(LANGUAGES)
|
|
57
|
+
.describe('"system" follows the chat app. Tool summaries follow it too.'),
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Which gate keeps the section read-only, so it can name the way out — the
|
|
61
|
+
* missing sign-in first: without a caller nothing saves on any deployment.
|
|
62
|
+
*/
|
|
63
|
+
function readOnlyReason(allowSave, key) {
|
|
64
|
+
if (key === undefined)
|
|
65
|
+
return "noSignIn";
|
|
66
|
+
return allowSave ? null : "readOnly";
|
|
67
|
+
}
|
|
68
|
+
export function registerShellSettingsTools(server, { profileStore: store, allowSave }) {
|
|
69
|
+
const loadView = async (ctx) => {
|
|
70
|
+
// Same key as the save, so a save is always read back. Without OAuth no
|
|
71
|
+
// key resolves: the defaults, read-only — the norm on an open server.
|
|
72
|
+
const key = resolveProfileKey(ctx);
|
|
73
|
+
const record = key ? await store.get(key) : undefined;
|
|
74
|
+
return {
|
|
75
|
+
language: record?.language ?? "system",
|
|
76
|
+
canSave: allowSave && key !== undefined,
|
|
77
|
+
readOnlyReason: readOnlyReason(allowSave, key),
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
server.tool({
|
|
81
|
+
name: SHELL_SHOW_SETTINGS,
|
|
82
|
+
title: "Settings",
|
|
83
|
+
description: "Open the settings page: the UI language and each module's settings.",
|
|
84
|
+
annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: false },
|
|
85
|
+
inputSchema: strictToolInput({}),
|
|
86
|
+
...showToolBinding(SHELL_SHOW_SETTINGS, "Settings"),
|
|
87
|
+
}, withToolErrors(async (_params, ctx) => {
|
|
88
|
+
const view = await loadView(ctx);
|
|
89
|
+
// Titled only in a language the profile names; with "system" the
|
|
90
|
+
// page's own heading names it in the host's language (#322 U3).
|
|
91
|
+
const { t, title } = viewLocaleOf(view.language);
|
|
92
|
+
const hint = view.canSave ? "settings.summary.canSave" : "settings.summary.readOnly";
|
|
93
|
+
return buildSingleWidgetView({
|
|
94
|
+
widget: SHELL_SETTINGS_PAGE_WIDGET,
|
|
95
|
+
app: "shell",
|
|
96
|
+
dataType: "shell:settings",
|
|
97
|
+
data: { ...view },
|
|
98
|
+
title: title("settings.title"),
|
|
99
|
+
summary: t("settings.summary", { language: languageName(t, view.language) }) + t(hint),
|
|
100
|
+
});
|
|
101
|
+
}));
|
|
102
|
+
server.tool({
|
|
103
|
+
name: SHELL_SETTINGS_DATA,
|
|
104
|
+
title: "Settings data (internal)",
|
|
105
|
+
description: "Internal JSON feed (no UI) for the settings page's language section. Prefer shell_show_settings.",
|
|
106
|
+
annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: false },
|
|
107
|
+
inputSchema: strictToolInput({}),
|
|
108
|
+
...appOnly,
|
|
109
|
+
}, withToolErrors(async (_params, ctx) => buildDataFeedResult({ ...(await loadView(ctx)) })));
|
|
110
|
+
if (!allowSave)
|
|
111
|
+
return;
|
|
112
|
+
server.tool({
|
|
113
|
+
name: SHELL_SAVE_SETTINGS,
|
|
114
|
+
title: "Save settings",
|
|
115
|
+
description: 'Set the caller\'s UI language, e.g. "switch the UI to German" (language: "de").',
|
|
116
|
+
// A local profile write: explicitly non-destructive (MCP presumes a
|
|
117
|
+
// write destructive unless told otherwise) and closed-world.
|
|
118
|
+
annotations: {
|
|
119
|
+
readOnlyHint: false,
|
|
120
|
+
destructiveHint: false,
|
|
121
|
+
idempotentHint: true,
|
|
122
|
+
openWorldHint: false,
|
|
123
|
+
},
|
|
124
|
+
inputSchema: strictToolInput(shellSettingsSaveInput),
|
|
125
|
+
}, withToolErrors(async ({ language }, ctx) => {
|
|
126
|
+
// A save without a caller fails visibly; the store merges the one
|
|
127
|
+
// field over the raw stored record under its per-key lock, so module
|
|
128
|
+
// slices saved concurrently survive. The OAuth caller is the owner.
|
|
129
|
+
const key = requireProfileKey(ctx);
|
|
130
|
+
const saved = await store.save(key, { language }, { userId: resolveAuthUserId(ctx) });
|
|
131
|
+
const view = {
|
|
132
|
+
language: saved.language,
|
|
133
|
+
canSave: true,
|
|
134
|
+
readOnlyReason: null,
|
|
135
|
+
};
|
|
136
|
+
const { t } = viewLocaleOf(saved.language);
|
|
137
|
+
return {
|
|
138
|
+
content: [
|
|
139
|
+
{
|
|
140
|
+
type: "text",
|
|
141
|
+
text: t("settings.saved", { language: languageName(t, saved.language) }),
|
|
142
|
+
},
|
|
143
|
+
],
|
|
144
|
+
structuredContent: { ...view },
|
|
145
|
+
};
|
|
146
|
+
}));
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=shell-settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell-settings.js","sourceRoot":"","sources":["../src/shell-settings.ts"],"names":[],"mappings":"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"}
|