@frontmcp/ui 0.5.1 → 0.6.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/adapters/index.d.ts +13 -0
- package/adapters/index.d.ts.map +1 -0
- package/adapters/index.js +462 -0
- package/adapters/platform-meta.d.ts +166 -0
- package/adapters/platform-meta.d.ts.map +1 -0
- package/adapters/response-builder.d.ts +108 -0
- package/adapters/response-builder.d.ts.map +1 -0
- package/adapters/serving-mode.d.ts +107 -0
- package/adapters/serving-mode.d.ts.map +1 -0
- package/base-template/bridge.d.ts +90 -0
- package/base-template/bridge.d.ts.map +1 -0
- package/base-template/default-base-template.d.ts +92 -0
- package/base-template/default-base-template.d.ts.map +1 -0
- package/base-template/index.d.ts +15 -0
- package/base-template/index.d.ts.map +1 -0
- package/base-template/index.js +1398 -0
- package/base-template/polyfills.d.ts +31 -0
- package/base-template/polyfills.d.ts.map +1 -0
- package/base-template/theme-styles.d.ts +74 -0
- package/base-template/theme-styles.d.ts.map +1 -0
- package/bridge/adapters/base-adapter.d.ts +104 -0
- package/bridge/adapters/base-adapter.d.ts.map +1 -0
- package/bridge/adapters/claude.adapter.d.ts +67 -0
- package/bridge/adapters/claude.adapter.d.ts.map +1 -0
- package/bridge/adapters/ext-apps.adapter.d.ts +143 -0
- package/bridge/adapters/ext-apps.adapter.d.ts.map +1 -0
- package/bridge/adapters/gemini.adapter.d.ts +64 -0
- package/bridge/adapters/gemini.adapter.d.ts.map +1 -0
- package/bridge/adapters/generic.adapter.d.ts +56 -0
- package/bridge/adapters/generic.adapter.d.ts.map +1 -0
- package/bridge/adapters/index.d.ts +26 -0
- package/bridge/adapters/index.d.ts.map +1 -0
- package/bridge/adapters/openai.adapter.d.ts +65 -0
- package/bridge/adapters/openai.adapter.d.ts.map +1 -0
- package/bridge/core/adapter-registry.d.ts +122 -0
- package/bridge/core/adapter-registry.d.ts.map +1 -0
- package/bridge/core/bridge-factory.d.ts +199 -0
- package/bridge/core/bridge-factory.d.ts.map +1 -0
- package/bridge/core/index.d.ts +10 -0
- package/bridge/core/index.d.ts.map +1 -0
- package/bridge/index.d.ts +62 -0
- package/bridge/index.d.ts.map +1 -0
- package/bridge/index.js +2540 -0
- package/bridge/runtime/iife-generator.d.ts +62 -0
- package/bridge/runtime/iife-generator.d.ts.map +1 -0
- package/bridge/runtime/index.d.ts +9 -0
- package/bridge/runtime/index.d.ts.map +1 -0
- package/bridge/types.d.ts +386 -0
- package/bridge/types.d.ts.map +1 -0
- package/build/cdn-resources.d.ts +243 -0
- package/build/cdn-resources.d.ts.map +1 -0
- package/build/index.d.ts +295 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +7096 -0
- package/build/widget-manifest.d.ts +362 -0
- package/build/widget-manifest.d.ts.map +1 -0
- package/bundler/bundler.d.ts +208 -0
- package/bundler/bundler.d.ts.map +1 -0
- package/bundler/cache.d.ts +173 -0
- package/bundler/cache.d.ts.map +1 -0
- package/bundler/file-cache/component-builder.d.ts +167 -0
- package/bundler/file-cache/component-builder.d.ts.map +1 -0
- package/bundler/file-cache/hash-calculator.d.ts +155 -0
- package/bundler/file-cache/hash-calculator.d.ts.map +1 -0
- package/bundler/file-cache/index.d.ts +12 -0
- package/bundler/file-cache/index.d.ts.map +1 -0
- package/bundler/file-cache/storage/filesystem.d.ts +149 -0
- package/bundler/file-cache/storage/filesystem.d.ts.map +1 -0
- package/bundler/file-cache/storage/index.d.ts +11 -0
- package/bundler/file-cache/storage/index.d.ts.map +1 -0
- package/bundler/file-cache/storage/interface.d.ts +152 -0
- package/bundler/file-cache/storage/interface.d.ts.map +1 -0
- package/bundler/file-cache/storage/redis.d.ts +139 -0
- package/bundler/file-cache/storage/redis.d.ts.map +1 -0
- package/bundler/index.d.ts +43 -0
- package/bundler/index.d.ts.map +1 -0
- package/bundler/index.js +4754 -0
- package/bundler/sandbox/enclave-adapter.d.ts +121 -0
- package/bundler/sandbox/enclave-adapter.d.ts.map +1 -0
- package/bundler/sandbox/executor.d.ts +14 -0
- package/bundler/sandbox/executor.d.ts.map +1 -0
- package/bundler/sandbox/policy.d.ts +62 -0
- package/bundler/sandbox/policy.d.ts.map +1 -0
- package/bundler/types.d.ts +702 -0
- package/bundler/types.d.ts.map +1 -0
- package/components/alert.d.ts +66 -0
- package/components/alert.d.ts.map +1 -0
- package/components/alert.schema.d.ts +98 -0
- package/components/alert.schema.d.ts.map +1 -0
- package/components/avatar.d.ts +77 -0
- package/components/avatar.d.ts.map +1 -0
- package/components/avatar.schema.d.ts +170 -0
- package/components/avatar.schema.d.ts.map +1 -0
- package/components/badge.d.ts +64 -0
- package/components/badge.d.ts.map +1 -0
- package/components/badge.schema.d.ts +91 -0
- package/components/badge.schema.d.ts.map +1 -0
- package/components/button.d.ts +100 -0
- package/components/button.d.ts.map +1 -0
- package/components/button.schema.d.ts +120 -0
- package/components/button.schema.d.ts.map +1 -0
- package/components/card.d.ts +53 -0
- package/components/card.d.ts.map +1 -0
- package/components/card.schema.d.ts +93 -0
- package/components/card.schema.d.ts.map +1 -0
- package/components/form.d.ts +212 -0
- package/components/form.d.ts.map +1 -0
- package/components/form.schema.d.ts +365 -0
- package/components/form.schema.d.ts.map +1 -0
- package/components/index.d.ts +29 -0
- package/components/index.d.ts.map +1 -0
- package/components/index.js +2595 -0
- package/components/list.d.ts +121 -0
- package/components/list.d.ts.map +1 -0
- package/components/list.schema.d.ts +129 -0
- package/components/list.schema.d.ts.map +1 -0
- package/components/modal.d.ts +100 -0
- package/components/modal.d.ts.map +1 -0
- package/components/modal.schema.d.ts +151 -0
- package/components/modal.schema.d.ts.map +1 -0
- package/components/table.d.ts +91 -0
- package/components/table.d.ts.map +1 -0
- package/components/table.schema.d.ts +123 -0
- package/components/table.schema.d.ts.map +1 -0
- package/dependency/cdn-registry.d.ts +98 -0
- package/dependency/cdn-registry.d.ts.map +1 -0
- package/dependency/import-map.d.ts +186 -0
- package/dependency/import-map.d.ts.map +1 -0
- package/dependency/import-parser.d.ts +82 -0
- package/dependency/import-parser.d.ts.map +1 -0
- package/dependency/index.d.ts +17 -0
- package/dependency/index.d.ts.map +1 -0
- package/dependency/resolver.d.ts +164 -0
- package/dependency/resolver.d.ts.map +1 -0
- package/dependency/schemas.d.ts +486 -0
- package/dependency/schemas.d.ts.map +1 -0
- package/dependency/template-loader.d.ts +204 -0
- package/dependency/template-loader.d.ts.map +1 -0
- package/dependency/template-processor.d.ts +118 -0
- package/dependency/template-processor.d.ts.map +1 -0
- package/dependency/types.d.ts +739 -0
- package/dependency/types.d.ts.map +1 -0
- package/esm/adapters/index.d.ts +13 -0
- package/esm/adapters/index.d.ts.map +1 -0
- package/esm/adapters/index.js +427 -0
- package/esm/adapters/platform-meta.d.ts +166 -0
- package/esm/adapters/platform-meta.d.ts.map +1 -0
- package/esm/adapters/response-builder.d.ts +108 -0
- package/esm/adapters/response-builder.d.ts.map +1 -0
- package/esm/adapters/serving-mode.d.ts +107 -0
- package/esm/adapters/serving-mode.d.ts.map +1 -0
- package/esm/base-template/bridge.d.ts +90 -0
- package/esm/base-template/bridge.d.ts.map +1 -0
- package/esm/base-template/default-base-template.d.ts +92 -0
- package/esm/base-template/default-base-template.d.ts.map +1 -0
- package/esm/base-template/index.d.ts +15 -0
- package/esm/base-template/index.d.ts.map +1 -0
- package/esm/base-template/index.js +1364 -0
- package/esm/base-template/polyfills.d.ts +31 -0
- package/esm/base-template/polyfills.d.ts.map +1 -0
- package/esm/base-template/theme-styles.d.ts +74 -0
- package/esm/base-template/theme-styles.d.ts.map +1 -0
- package/esm/bridge/adapters/base-adapter.d.ts +104 -0
- package/esm/bridge/adapters/base-adapter.d.ts.map +1 -0
- package/esm/bridge/adapters/claude.adapter.d.ts +67 -0
- package/esm/bridge/adapters/claude.adapter.d.ts.map +1 -0
- package/esm/bridge/adapters/ext-apps.adapter.d.ts +143 -0
- package/esm/bridge/adapters/ext-apps.adapter.d.ts.map +1 -0
- package/esm/bridge/adapters/gemini.adapter.d.ts +64 -0
- package/esm/bridge/adapters/gemini.adapter.d.ts.map +1 -0
- package/esm/bridge/adapters/generic.adapter.d.ts +56 -0
- package/esm/bridge/adapters/generic.adapter.d.ts.map +1 -0
- package/esm/bridge/adapters/index.d.ts +26 -0
- package/esm/bridge/adapters/index.d.ts.map +1 -0
- package/esm/bridge/adapters/openai.adapter.d.ts +65 -0
- package/esm/bridge/adapters/openai.adapter.d.ts.map +1 -0
- package/esm/bridge/core/adapter-registry.d.ts +122 -0
- package/esm/bridge/core/adapter-registry.d.ts.map +1 -0
- package/esm/bridge/core/bridge-factory.d.ts +199 -0
- package/esm/bridge/core/bridge-factory.d.ts.map +1 -0
- package/esm/bridge/core/index.d.ts +10 -0
- package/esm/bridge/core/index.d.ts.map +1 -0
- package/esm/bridge/index.d.ts +62 -0
- package/esm/bridge/index.d.ts.map +1 -0
- package/esm/bridge/index.js +2487 -0
- package/esm/bridge/runtime/iife-generator.d.ts +62 -0
- package/esm/bridge/runtime/iife-generator.d.ts.map +1 -0
- package/esm/bridge/runtime/index.d.ts +9 -0
- package/esm/bridge/runtime/index.d.ts.map +1 -0
- package/esm/bridge/types.d.ts +386 -0
- package/esm/bridge/types.d.ts.map +1 -0
- package/esm/build/cdn-resources.d.ts +243 -0
- package/esm/build/cdn-resources.d.ts.map +1 -0
- package/esm/build/index.d.ts +295 -0
- package/esm/build/index.d.ts.map +1 -0
- package/esm/build/index.js +7021 -0
- package/esm/build/widget-manifest.d.ts +362 -0
- package/esm/build/widget-manifest.d.ts.map +1 -0
- package/esm/bundler/bundler.d.ts +208 -0
- package/esm/bundler/bundler.d.ts.map +1 -0
- package/esm/bundler/cache.d.ts +173 -0
- package/esm/bundler/cache.d.ts.map +1 -0
- package/esm/bundler/file-cache/component-builder.d.ts +167 -0
- package/esm/bundler/file-cache/component-builder.d.ts.map +1 -0
- package/esm/bundler/file-cache/hash-calculator.d.ts +155 -0
- package/esm/bundler/file-cache/hash-calculator.d.ts.map +1 -0
- package/esm/bundler/file-cache/index.d.ts +12 -0
- package/esm/bundler/file-cache/index.d.ts.map +1 -0
- package/esm/bundler/file-cache/storage/filesystem.d.ts +149 -0
- package/esm/bundler/file-cache/storage/filesystem.d.ts.map +1 -0
- package/esm/bundler/file-cache/storage/index.d.ts +11 -0
- package/esm/bundler/file-cache/storage/index.d.ts.map +1 -0
- package/esm/bundler/file-cache/storage/interface.d.ts +152 -0
- package/esm/bundler/file-cache/storage/interface.d.ts.map +1 -0
- package/esm/bundler/file-cache/storage/redis.d.ts +139 -0
- package/esm/bundler/file-cache/storage/redis.d.ts.map +1 -0
- package/esm/bundler/index.d.ts +43 -0
- package/esm/bundler/index.d.ts.map +1 -0
- package/esm/bundler/index.js +4687 -0
- package/esm/bundler/sandbox/enclave-adapter.d.ts +121 -0
- package/esm/bundler/sandbox/enclave-adapter.d.ts.map +1 -0
- package/esm/bundler/sandbox/executor.d.ts +14 -0
- package/esm/bundler/sandbox/executor.d.ts.map +1 -0
- package/esm/bundler/sandbox/policy.d.ts +62 -0
- package/esm/bundler/sandbox/policy.d.ts.map +1 -0
- package/esm/bundler/types.d.ts +702 -0
- package/esm/bundler/types.d.ts.map +1 -0
- package/esm/components/alert.d.ts +66 -0
- package/esm/components/alert.d.ts.map +1 -0
- package/esm/components/alert.schema.d.ts +98 -0
- package/esm/components/alert.schema.d.ts.map +1 -0
- package/esm/components/avatar.d.ts +77 -0
- package/esm/components/avatar.d.ts.map +1 -0
- package/esm/components/avatar.schema.d.ts +170 -0
- package/esm/components/avatar.schema.d.ts.map +1 -0
- package/esm/components/badge.d.ts +64 -0
- package/esm/components/badge.d.ts.map +1 -0
- package/esm/components/badge.schema.d.ts +91 -0
- package/esm/components/badge.schema.d.ts.map +1 -0
- package/esm/components/button.d.ts +100 -0
- package/esm/components/button.d.ts.map +1 -0
- package/esm/components/button.schema.d.ts +120 -0
- package/esm/components/button.schema.d.ts.map +1 -0
- package/esm/components/card.d.ts +53 -0
- package/esm/components/card.d.ts.map +1 -0
- package/esm/components/card.schema.d.ts +93 -0
- package/esm/components/card.schema.d.ts.map +1 -0
- package/esm/components/form.d.ts +212 -0
- package/esm/components/form.d.ts.map +1 -0
- package/esm/components/form.schema.d.ts +365 -0
- package/esm/components/form.schema.d.ts.map +1 -0
- package/esm/components/index.d.ts +29 -0
- package/esm/components/index.d.ts.map +1 -0
- package/esm/components/index.js +2456 -0
- package/esm/components/list.d.ts +121 -0
- package/esm/components/list.d.ts.map +1 -0
- package/esm/components/list.schema.d.ts +129 -0
- package/esm/components/list.schema.d.ts.map +1 -0
- package/esm/components/modal.d.ts +100 -0
- package/esm/components/modal.d.ts.map +1 -0
- package/esm/components/modal.schema.d.ts +151 -0
- package/esm/components/modal.schema.d.ts.map +1 -0
- package/esm/components/table.d.ts +91 -0
- package/esm/components/table.d.ts.map +1 -0
- package/esm/components/table.schema.d.ts +123 -0
- package/esm/components/table.schema.d.ts.map +1 -0
- package/esm/dependency/cdn-registry.d.ts +98 -0
- package/esm/dependency/cdn-registry.d.ts.map +1 -0
- package/esm/dependency/import-map.d.ts +186 -0
- package/esm/dependency/import-map.d.ts.map +1 -0
- package/esm/dependency/import-parser.d.ts +82 -0
- package/esm/dependency/import-parser.d.ts.map +1 -0
- package/esm/dependency/index.d.ts +17 -0
- package/esm/dependency/index.d.ts.map +1 -0
- package/esm/dependency/resolver.d.ts +164 -0
- package/esm/dependency/resolver.d.ts.map +1 -0
- package/esm/dependency/schemas.d.ts +486 -0
- package/esm/dependency/schemas.d.ts.map +1 -0
- package/esm/dependency/template-loader.d.ts +204 -0
- package/esm/dependency/template-loader.d.ts.map +1 -0
- package/esm/dependency/template-processor.d.ts +118 -0
- package/esm/dependency/template-processor.d.ts.map +1 -0
- package/esm/dependency/types.d.ts +739 -0
- package/esm/dependency/types.d.ts.map +1 -0
- package/esm/handlebars/expression-extractor.d.ts +147 -0
- package/esm/handlebars/expression-extractor.d.ts.map +1 -0
- package/esm/handlebars/helpers.d.ts +339 -0
- package/esm/handlebars/helpers.d.ts.map +1 -0
- package/esm/handlebars/index.d.ts +195 -0
- package/esm/handlebars/index.d.ts.map +1 -0
- package/esm/handlebars/index.js +587 -0
- package/esm/index.d.ts +56 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +20511 -0
- package/esm/layouts/base.d.ts +86 -0
- package/esm/layouts/base.d.ts.map +1 -0
- package/esm/layouts/index.d.ts +8 -0
- package/esm/layouts/index.d.ts.map +1 -0
- package/esm/layouts/index.js +892 -0
- package/esm/layouts/presets.d.ts +134 -0
- package/esm/layouts/presets.d.ts.map +1 -0
- package/esm/package.json +90 -0
- package/esm/pages/consent.d.ts +117 -0
- package/esm/pages/consent.d.ts.map +1 -0
- package/esm/pages/error.d.ts +101 -0
- package/esm/pages/error.d.ts.map +1 -0
- package/esm/pages/index.d.ts +9 -0
- package/esm/pages/index.d.ts.map +1 -0
- package/esm/pages/index.js +1563 -0
- package/esm/react/Alert.d.ts +102 -0
- package/esm/react/Alert.d.ts.map +1 -0
- package/esm/react/Badge.d.ts +101 -0
- package/esm/react/Badge.d.ts.map +1 -0
- package/esm/react/Button.d.ts +109 -0
- package/esm/react/Button.d.ts.map +1 -0
- package/esm/react/Card.d.ts +104 -0
- package/esm/react/Card.d.ts.map +1 -0
- package/esm/react/hooks/context.d.ts +179 -0
- package/esm/react/hooks/context.d.ts.map +1 -0
- package/esm/react/hooks/index.d.ts +42 -0
- package/esm/react/hooks/index.d.ts.map +1 -0
- package/esm/react/hooks/tools.d.ts +284 -0
- package/esm/react/hooks/tools.d.ts.map +1 -0
- package/esm/react/index.d.ts +81 -0
- package/esm/react/index.d.ts.map +1 -0
- package/esm/react/index.js +1372 -0
- package/esm/react/types.d.ts +106 -0
- package/esm/react/types.d.ts.map +1 -0
- package/esm/react/utils.d.ts +43 -0
- package/esm/react/utils.d.ts.map +1 -0
- package/esm/registry/index.d.ts +46 -0
- package/esm/registry/index.d.ts.map +1 -0
- package/esm/registry/index.js +6422 -0
- package/esm/registry/render-template.d.ts +91 -0
- package/esm/registry/render-template.d.ts.map +1 -0
- package/esm/registry/tool-ui.registry.d.ts +294 -0
- package/esm/registry/tool-ui.registry.d.ts.map +1 -0
- package/esm/registry/uri-utils.d.ts +56 -0
- package/esm/registry/uri-utils.d.ts.map +1 -0
- package/esm/render/index.d.ts +8 -0
- package/esm/render/index.d.ts.map +1 -0
- package/esm/render/index.js +45 -0
- package/esm/render/prerender.d.ts +57 -0
- package/esm/render/prerender.d.ts.map +1 -0
- package/esm/renderers/cache.d.ts +145 -0
- package/esm/renderers/cache.d.ts.map +1 -0
- package/esm/renderers/html.renderer.d.ts +123 -0
- package/esm/renderers/html.renderer.d.ts.map +1 -0
- package/esm/renderers/index.d.ts +36 -0
- package/esm/renderers/index.d.ts.map +1 -0
- package/esm/renderers/index.js +1827 -0
- package/esm/renderers/mdx.renderer.d.ts +120 -0
- package/esm/renderers/mdx.renderer.d.ts.map +1 -0
- package/esm/renderers/react.renderer.d.ts +96 -0
- package/esm/renderers/react.renderer.d.ts.map +1 -0
- package/esm/renderers/registry.d.ts +134 -0
- package/esm/renderers/registry.d.ts.map +1 -0
- package/esm/renderers/types.d.ts +342 -0
- package/esm/renderers/types.d.ts.map +1 -0
- package/esm/renderers/utils/detect.d.ts +107 -0
- package/esm/renderers/utils/detect.d.ts.map +1 -0
- package/esm/renderers/utils/hash.d.ts +40 -0
- package/esm/renderers/utils/hash.d.ts.map +1 -0
- package/esm/renderers/utils/index.d.ts +9 -0
- package/esm/renderers/utils/index.d.ts.map +1 -0
- package/esm/renderers/utils/transpiler.d.ts +89 -0
- package/esm/renderers/utils/transpiler.d.ts.map +1 -0
- package/esm/runtime/adapters/html.adapter.d.ts +59 -0
- package/esm/runtime/adapters/html.adapter.d.ts.map +1 -0
- package/esm/runtime/adapters/index.d.ts +26 -0
- package/esm/runtime/adapters/index.d.ts.map +1 -0
- package/esm/runtime/adapters/mdx.adapter.d.ts +73 -0
- package/esm/runtime/adapters/mdx.adapter.d.ts.map +1 -0
- package/esm/runtime/adapters/react.adapter.d.ts +70 -0
- package/esm/runtime/adapters/react.adapter.d.ts.map +1 -0
- package/esm/runtime/adapters/types.d.ts +95 -0
- package/esm/runtime/adapters/types.d.ts.map +1 -0
- package/esm/runtime/csp.d.ts +48 -0
- package/esm/runtime/csp.d.ts.map +1 -0
- package/esm/runtime/index.d.ts +17 -0
- package/esm/runtime/index.d.ts.map +1 -0
- package/esm/runtime/index.js +5186 -0
- package/esm/runtime/mcp-bridge.d.ts +101 -0
- package/esm/runtime/mcp-bridge.d.ts.map +1 -0
- package/esm/runtime/renderer-runtime.d.ts +133 -0
- package/esm/runtime/renderer-runtime.d.ts.map +1 -0
- package/esm/runtime/sanitizer.d.ts +172 -0
- package/esm/runtime/sanitizer.d.ts.map +1 -0
- package/esm/runtime/types.d.ts +415 -0
- package/esm/runtime/types.d.ts.map +1 -0
- package/esm/runtime/wrapper.d.ts +421 -0
- package/esm/runtime/wrapper.d.ts.map +1 -0
- package/esm/styles/index.d.ts +8 -0
- package/esm/styles/index.d.ts.map +1 -0
- package/esm/styles/index.js +171 -0
- package/esm/styles/variants.d.ts +51 -0
- package/esm/styles/variants.d.ts.map +1 -0
- package/esm/theme/cdn.d.ts +195 -0
- package/esm/theme/cdn.d.ts.map +1 -0
- package/esm/theme/index.d.ts +18 -0
- package/esm/theme/index.d.ts.map +1 -0
- package/esm/theme/index.js +700 -0
- package/esm/theme/platforms.d.ts +107 -0
- package/esm/theme/platforms.d.ts.map +1 -0
- package/esm/theme/presets/github-openai.d.ts +50 -0
- package/esm/theme/presets/github-openai.d.ts.map +1 -0
- package/esm/theme/presets/index.d.ts +11 -0
- package/esm/theme/presets/index.d.ts.map +1 -0
- package/esm/theme/theme.d.ts +396 -0
- package/esm/theme/theme.d.ts.map +1 -0
- package/esm/tool-template/builder.d.ts +213 -0
- package/esm/tool-template/builder.d.ts.map +1 -0
- package/esm/tool-template/index.d.ts +16 -0
- package/esm/tool-template/index.d.ts.map +1 -0
- package/esm/tool-template/index.js +3515 -0
- package/esm/types/index.d.ts +14 -0
- package/esm/types/index.d.ts.map +1 -0
- package/esm/types/index.js +75 -0
- package/esm/types/ui-config.d.ts +639 -0
- package/esm/types/ui-config.d.ts.map +1 -0
- package/esm/types/ui-runtime.d.ts +1007 -0
- package/esm/types/ui-runtime.d.ts.map +1 -0
- package/esm/typings/cache/cache-adapter.d.ts +125 -0
- package/esm/typings/cache/cache-adapter.d.ts.map +1 -0
- package/esm/typings/cache/index.d.ts +10 -0
- package/esm/typings/cache/index.d.ts.map +1 -0
- package/esm/typings/cache/memory-cache.d.ts +92 -0
- package/esm/typings/cache/memory-cache.d.ts.map +1 -0
- package/esm/typings/dts-parser.d.ts +90 -0
- package/esm/typings/dts-parser.d.ts.map +1 -0
- package/esm/typings/index.d.ts +48 -0
- package/esm/typings/index.d.ts.map +1 -0
- package/esm/typings/schemas.d.ts +232 -0
- package/esm/typings/schemas.d.ts.map +1 -0
- package/esm/typings/type-fetcher.d.ts +89 -0
- package/esm/typings/type-fetcher.d.ts.map +1 -0
- package/esm/typings/types.d.ts +320 -0
- package/esm/typings/types.d.ts.map +1 -0
- package/esm/universal/UniversalApp.d.ts +108 -0
- package/esm/universal/UniversalApp.d.ts.map +1 -0
- package/esm/universal/cached-runtime.d.ts +115 -0
- package/esm/universal/cached-runtime.d.ts.map +1 -0
- package/esm/universal/context.d.ts +122 -0
- package/esm/universal/context.d.ts.map +1 -0
- package/esm/universal/index.d.ts +57 -0
- package/esm/universal/index.d.ts.map +1 -0
- package/esm/universal/renderers/html.renderer.d.ts +37 -0
- package/esm/universal/renderers/html.renderer.d.ts.map +1 -0
- package/esm/universal/renderers/index.d.ts +112 -0
- package/esm/universal/renderers/index.d.ts.map +1 -0
- package/esm/universal/renderers/markdown.renderer.d.ts +33 -0
- package/esm/universal/renderers/markdown.renderer.d.ts.map +1 -0
- package/esm/universal/renderers/mdx.renderer.d.ts +38 -0
- package/esm/universal/renderers/mdx.renderer.d.ts.map +1 -0
- package/esm/universal/renderers/react.renderer.d.ts +46 -0
- package/esm/universal/renderers/react.renderer.d.ts.map +1 -0
- package/esm/universal/runtime-builder.d.ts +33 -0
- package/esm/universal/runtime-builder.d.ts.map +1 -0
- package/esm/universal/store.d.ts +135 -0
- package/esm/universal/store.d.ts.map +1 -0
- package/esm/universal/types.d.ts +199 -0
- package/esm/universal/types.d.ts.map +1 -0
- package/esm/utils/escape-html.d.ts +58 -0
- package/esm/utils/escape-html.d.ts.map +1 -0
- package/esm/utils/index.d.ts +10 -0
- package/esm/utils/index.d.ts.map +1 -0
- package/esm/utils/index.js +40 -0
- package/esm/utils/safe-stringify.d.ts +30 -0
- package/esm/utils/safe-stringify.d.ts.map +1 -0
- package/esm/validation/error-box.d.ts +56 -0
- package/esm/validation/error-box.d.ts.map +1 -0
- package/esm/validation/index.d.ts +13 -0
- package/esm/validation/index.d.ts.map +1 -0
- package/esm/validation/index.js +562 -0
- package/esm/validation/schema-paths.d.ts +118 -0
- package/esm/validation/schema-paths.d.ts.map +1 -0
- package/esm/validation/template-validator.d.ts +143 -0
- package/esm/validation/template-validator.d.ts.map +1 -0
- package/esm/validation/wrapper.d.ts +97 -0
- package/esm/validation/wrapper.d.ts.map +1 -0
- package/esm/web-components/core/attribute-parser.d.ts +82 -0
- package/esm/web-components/core/attribute-parser.d.ts.map +1 -0
- package/esm/web-components/core/base-element.d.ts +197 -0
- package/esm/web-components/core/base-element.d.ts.map +1 -0
- package/esm/web-components/core/index.d.ts +9 -0
- package/esm/web-components/core/index.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-alert.d.ts +46 -0
- package/esm/web-components/elements/fmcp-alert.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-badge.d.ts +47 -0
- package/esm/web-components/elements/fmcp-badge.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-button.d.ts +117 -0
- package/esm/web-components/elements/fmcp-button.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-card.d.ts +53 -0
- package/esm/web-components/elements/fmcp-card.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-input.d.ts +96 -0
- package/esm/web-components/elements/fmcp-input.d.ts.map +1 -0
- package/esm/web-components/elements/fmcp-select.d.ts +100 -0
- package/esm/web-components/elements/fmcp-select.d.ts.map +1 -0
- package/esm/web-components/elements/index.d.ts +13 -0
- package/esm/web-components/elements/index.d.ts.map +1 -0
- package/esm/web-components/index.d.ts +50 -0
- package/esm/web-components/index.d.ts.map +1 -0
- package/esm/web-components/index.js +2048 -0
- package/esm/web-components/register.d.ts +57 -0
- package/esm/web-components/register.d.ts.map +1 -0
- package/esm/web-components/types.d.ts +122 -0
- package/esm/web-components/types.d.ts.map +1 -0
- package/esm/widgets/index.d.ts +8 -0
- package/esm/widgets/index.d.ts.map +1 -0
- package/esm/widgets/index.js +941 -0
- package/esm/widgets/progress.d.ts +133 -0
- package/esm/widgets/progress.d.ts.map +1 -0
- package/esm/widgets/resource.d.ts +163 -0
- package/esm/widgets/resource.d.ts.map +1 -0
- package/handlebars/expression-extractor.d.ts +147 -0
- package/handlebars/expression-extractor.d.ts.map +1 -0
- package/handlebars/helpers.d.ts +339 -0
- package/handlebars/helpers.d.ts.map +1 -0
- package/handlebars/index.d.ts +195 -0
- package/handlebars/index.d.ts.map +1 -0
- package/handlebars/index.js +666 -0
- package/index.d.ts +56 -0
- package/index.d.ts.map +1 -0
- package/index.js +20942 -0
- package/layouts/base.d.ts +86 -0
- package/layouts/base.d.ts.map +1 -0
- package/layouts/index.d.ts +8 -0
- package/layouts/index.d.ts.map +1 -0
- package/layouts/index.js +930 -0
- package/layouts/presets.d.ts +134 -0
- package/layouts/presets.d.ts.map +1 -0
- package/package.json +26 -85
- package/pages/consent.d.ts +117 -0
- package/pages/consent.d.ts.map +1 -0
- package/pages/error.d.ts +101 -0
- package/pages/error.d.ts.map +1 -0
- package/pages/index.d.ts +9 -0
- package/pages/index.d.ts.map +1 -0
- package/pages/index.js +1602 -0
- package/react/Alert.d.ts +102 -0
- package/react/Alert.d.ts.map +1 -0
- package/react/Badge.d.ts +101 -0
- package/react/Badge.d.ts.map +1 -0
- package/react/Button.d.ts +109 -0
- package/react/Button.d.ts.map +1 -0
- package/react/Card.d.ts +104 -0
- package/react/Card.d.ts.map +1 -0
- package/react/hooks/context.d.ts +179 -0
- package/react/hooks/context.d.ts.map +1 -0
- package/react/hooks/index.d.ts +42 -0
- package/react/hooks/index.d.ts.map +1 -0
- package/react/hooks/tools.d.ts +284 -0
- package/react/hooks/tools.d.ts.map +1 -0
- package/react/index.d.ts +81 -0
- package/react/index.d.ts.map +1 -0
- package/react/index.js +1430 -0
- package/react/types.d.ts +106 -0
- package/react/types.d.ts.map +1 -0
- package/react/utils.d.ts +43 -0
- package/react/utils.d.ts.map +1 -0
- package/registry/index.d.ts +46 -0
- package/registry/index.d.ts.map +1 -0
- package/registry/index.js +6465 -0
- package/registry/render-template.d.ts +91 -0
- package/registry/render-template.d.ts.map +1 -0
- package/registry/tool-ui.registry.d.ts +294 -0
- package/registry/tool-ui.registry.d.ts.map +1 -0
- package/registry/uri-utils.d.ts +56 -0
- package/registry/uri-utils.d.ts.map +1 -0
- package/render/index.d.ts +8 -0
- package/render/index.d.ts.map +1 -0
- package/render/index.js +77 -0
- package/render/prerender.d.ts +57 -0
- package/render/prerender.d.ts.map +1 -0
- package/renderers/cache.d.ts +145 -0
- package/renderers/cache.d.ts.map +1 -0
- package/renderers/html.renderer.d.ts +123 -0
- package/renderers/html.renderer.d.ts.map +1 -0
- package/renderers/index.d.ts +36 -0
- package/renderers/index.d.ts.map +1 -0
- package/renderers/index.js +1882 -0
- package/renderers/mdx.renderer.d.ts +120 -0
- package/renderers/mdx.renderer.d.ts.map +1 -0
- package/renderers/react.renderer.d.ts +96 -0
- package/renderers/react.renderer.d.ts.map +1 -0
- package/renderers/registry.d.ts +134 -0
- package/renderers/registry.d.ts.map +1 -0
- package/renderers/types.d.ts +342 -0
- package/renderers/types.d.ts.map +1 -0
- package/renderers/utils/detect.d.ts +107 -0
- package/renderers/utils/detect.d.ts.map +1 -0
- package/renderers/utils/hash.d.ts +40 -0
- package/renderers/utils/hash.d.ts.map +1 -0
- package/renderers/utils/index.d.ts +9 -0
- package/renderers/utils/index.d.ts.map +1 -0
- package/renderers/utils/transpiler.d.ts +89 -0
- package/renderers/utils/transpiler.d.ts.map +1 -0
- package/runtime/adapters/html.adapter.d.ts +59 -0
- package/runtime/adapters/html.adapter.d.ts.map +1 -0
- package/runtime/adapters/index.d.ts +26 -0
- package/runtime/adapters/index.d.ts.map +1 -0
- package/runtime/adapters/mdx.adapter.d.ts +73 -0
- package/runtime/adapters/mdx.adapter.d.ts.map +1 -0
- package/runtime/adapters/react.adapter.d.ts +70 -0
- package/runtime/adapters/react.adapter.d.ts.map +1 -0
- package/runtime/adapters/types.d.ts +95 -0
- package/runtime/adapters/types.d.ts.map +1 -0
- package/runtime/csp.d.ts +48 -0
- package/runtime/csp.d.ts.map +1 -0
- package/runtime/index.d.ts +17 -0
- package/runtime/index.d.ts.map +1 -0
- package/runtime/index.js +5264 -0
- package/runtime/mcp-bridge.d.ts +101 -0
- package/runtime/mcp-bridge.d.ts.map +1 -0
- package/runtime/renderer-runtime.d.ts +133 -0
- package/runtime/renderer-runtime.d.ts.map +1 -0
- package/runtime/sanitizer.d.ts +172 -0
- package/runtime/sanitizer.d.ts.map +1 -0
- package/runtime/types.d.ts +415 -0
- package/runtime/types.d.ts.map +1 -0
- package/runtime/wrapper.d.ts +421 -0
- package/runtime/wrapper.d.ts.map +1 -0
- package/styles/index.d.ts +8 -0
- package/styles/index.d.ts.map +1 -0
- package/styles/index.js +222 -0
- package/styles/variants.d.ts +51 -0
- package/styles/variants.d.ts.map +1 -0
- package/theme/cdn.d.ts +195 -0
- package/theme/cdn.d.ts.map +1 -0
- package/theme/index.d.ts +18 -0
- package/theme/index.d.ts.map +1 -0
- package/theme/index.js +757 -0
- package/theme/platforms.d.ts +107 -0
- package/theme/platforms.d.ts.map +1 -0
- package/theme/presets/github-openai.d.ts +50 -0
- package/theme/presets/github-openai.d.ts.map +1 -0
- package/theme/presets/index.d.ts +11 -0
- package/theme/presets/index.d.ts.map +1 -0
- package/theme/theme.d.ts +396 -0
- package/theme/theme.d.ts.map +1 -0
- package/tool-template/builder.d.ts +213 -0
- package/tool-template/builder.d.ts.map +1 -0
- package/tool-template/index.d.ts +16 -0
- package/tool-template/index.d.ts.map +1 -0
- package/tool-template/index.js +3559 -0
- package/types/index.d.ts +14 -0
- package/types/index.d.ts.map +1 -0
- package/types/index.js +108 -0
- package/types/ui-config.d.ts +639 -0
- package/types/ui-config.d.ts.map +1 -0
- package/types/ui-runtime.d.ts +1007 -0
- package/types/ui-runtime.d.ts.map +1 -0
- package/typings/cache/cache-adapter.d.ts +125 -0
- package/typings/cache/cache-adapter.d.ts.map +1 -0
- package/typings/cache/index.d.ts +10 -0
- package/typings/cache/index.d.ts.map +1 -0
- package/typings/cache/memory-cache.d.ts +92 -0
- package/typings/cache/memory-cache.d.ts.map +1 -0
- package/typings/dts-parser.d.ts +90 -0
- package/typings/dts-parser.d.ts.map +1 -0
- package/typings/index.d.ts +48 -0
- package/typings/index.d.ts.map +1 -0
- package/typings/schemas.d.ts +232 -0
- package/typings/schemas.d.ts.map +1 -0
- package/typings/type-fetcher.d.ts +89 -0
- package/typings/type-fetcher.d.ts.map +1 -0
- package/typings/types.d.ts +320 -0
- package/typings/types.d.ts.map +1 -0
- package/universal/UniversalApp.d.ts +108 -0
- package/universal/UniversalApp.d.ts.map +1 -0
- package/universal/cached-runtime.d.ts +115 -0
- package/universal/cached-runtime.d.ts.map +1 -0
- package/universal/context.d.ts +122 -0
- package/universal/context.d.ts.map +1 -0
- package/universal/index.d.ts +57 -0
- package/universal/index.d.ts.map +1 -0
- package/universal/renderers/html.renderer.d.ts +37 -0
- package/universal/renderers/html.renderer.d.ts.map +1 -0
- package/universal/renderers/index.d.ts +112 -0
- package/universal/renderers/index.d.ts.map +1 -0
- package/universal/renderers/markdown.renderer.d.ts +33 -0
- package/universal/renderers/markdown.renderer.d.ts.map +1 -0
- package/universal/renderers/mdx.renderer.d.ts +38 -0
- package/universal/renderers/mdx.renderer.d.ts.map +1 -0
- package/universal/renderers/react.renderer.d.ts +46 -0
- package/universal/renderers/react.renderer.d.ts.map +1 -0
- package/universal/runtime-builder.d.ts +33 -0
- package/universal/runtime-builder.d.ts.map +1 -0
- package/universal/store.d.ts +135 -0
- package/universal/store.d.ts.map +1 -0
- package/universal/types.d.ts +199 -0
- package/universal/types.d.ts.map +1 -0
- package/utils/escape-html.d.ts +58 -0
- package/utils/escape-html.d.ts.map +1 -0
- package/utils/index.d.ts +10 -0
- package/utils/index.d.ts.map +1 -0
- package/utils/index.js +70 -0
- package/utils/safe-stringify.d.ts +30 -0
- package/utils/safe-stringify.d.ts.map +1 -0
- package/validation/error-box.d.ts +56 -0
- package/validation/error-box.d.ts.map +1 -0
- package/validation/index.d.ts +13 -0
- package/validation/index.d.ts.map +1 -0
- package/validation/index.js +603 -0
- package/validation/schema-paths.d.ts +118 -0
- package/validation/schema-paths.d.ts.map +1 -0
- package/validation/template-validator.d.ts +143 -0
- package/validation/template-validator.d.ts.map +1 -0
- package/validation/wrapper.d.ts +97 -0
- package/validation/wrapper.d.ts.map +1 -0
- package/web-components/core/attribute-parser.d.ts +82 -0
- package/web-components/core/attribute-parser.d.ts.map +1 -0
- package/web-components/core/base-element.d.ts +197 -0
- package/web-components/core/base-element.d.ts.map +1 -0
- package/web-components/core/index.d.ts +9 -0
- package/web-components/core/index.d.ts.map +1 -0
- package/web-components/elements/fmcp-alert.d.ts +46 -0
- package/web-components/elements/fmcp-alert.d.ts.map +1 -0
- package/web-components/elements/fmcp-badge.d.ts +47 -0
- package/web-components/elements/fmcp-badge.d.ts.map +1 -0
- package/web-components/elements/fmcp-button.d.ts +117 -0
- package/web-components/elements/fmcp-button.d.ts.map +1 -0
- package/web-components/elements/fmcp-card.d.ts +53 -0
- package/web-components/elements/fmcp-card.d.ts.map +1 -0
- package/web-components/elements/fmcp-input.d.ts +96 -0
- package/web-components/elements/fmcp-input.d.ts.map +1 -0
- package/web-components/elements/fmcp-select.d.ts +100 -0
- package/web-components/elements/fmcp-select.d.ts.map +1 -0
- package/web-components/elements/index.d.ts +13 -0
- package/web-components/elements/index.d.ts.map +1 -0
- package/web-components/index.d.ts +50 -0
- package/web-components/index.d.ts.map +1 -0
- package/web-components/index.js +2093 -0
- package/web-components/register.d.ts +57 -0
- package/web-components/register.d.ts.map +1 -0
- package/web-components/types.d.ts +122 -0
- package/web-components/types.d.ts.map +1 -0
- package/widgets/index.d.ts +8 -0
- package/widgets/index.d.ts.map +1 -0
- package/widgets/index.js +978 -0
- package/widgets/progress.d.ts +133 -0
- package/widgets/progress.d.ts.map +1 -0
- package/widgets/resource.d.ts +163 -0
- package/widgets/resource.d.ts.map +1 -0
- package/src/adapters/index.d.ts +0 -10
- package/src/adapters/index.js +0 -18
- package/src/adapters/index.js.map +0 -1
- package/src/adapters/platform-meta.d.ts +0 -165
- package/src/adapters/platform-meta.js +0 -310
- package/src/adapters/platform-meta.js.map +0 -1
- package/src/base-template/bridge.d.ts +0 -89
- package/src/base-template/bridge.js +0 -452
- package/src/base-template/bridge.js.map +0 -1
- package/src/base-template/default-base-template.d.ts +0 -91
- package/src/base-template/default-base-template.js +0 -435
- package/src/base-template/default-base-template.js.map +0 -1
- package/src/base-template/index.d.ts +0 -14
- package/src/base-template/index.js +0 -30
- package/src/base-template/index.js.map +0 -1
- package/src/base-template/polyfills.d.ts +0 -30
- package/src/base-template/polyfills.js +0 -190
- package/src/base-template/polyfills.js.map +0 -1
- package/src/base-template/theme-styles.d.ts +0 -73
- package/src/base-template/theme-styles.js +0 -95
- package/src/base-template/theme-styles.js.map +0 -1
- package/src/bridge/adapters/base-adapter.d.ts +0 -103
- package/src/bridge/adapters/base-adapter.js +0 -314
- package/src/bridge/adapters/base-adapter.js.map +0 -1
- package/src/bridge/adapters/claude.adapter.d.ts +0 -66
- package/src/bridge/adapters/claude.adapter.js +0 -145
- package/src/bridge/adapters/claude.adapter.js.map +0 -1
- package/src/bridge/adapters/ext-apps.adapter.d.ts +0 -142
- package/src/bridge/adapters/ext-apps.adapter.js +0 -416
- package/src/bridge/adapters/ext-apps.adapter.js.map +0 -1
- package/src/bridge/adapters/gemini.adapter.d.ts +0 -63
- package/src/bridge/adapters/gemini.adapter.js +0 -160
- package/src/bridge/adapters/gemini.adapter.js.map +0 -1
- package/src/bridge/adapters/generic.adapter.d.ts +0 -55
- package/src/bridge/adapters/generic.adapter.js +0 -108
- package/src/bridge/adapters/generic.adapter.js.map +0 -1
- package/src/bridge/adapters/index.d.ts +0 -25
- package/src/bridge/adapters/index.js +0 -65
- package/src/bridge/adapters/index.js.map +0 -1
- package/src/bridge/adapters/openai.adapter.d.ts +0 -64
- package/src/bridge/adapters/openai.adapter.js +0 -194
- package/src/bridge/adapters/openai.adapter.js.map +0 -1
- package/src/bridge/core/adapter-registry.d.ts +0 -121
- package/src/bridge/core/adapter-registry.js +0 -271
- package/src/bridge/core/adapter-registry.js.map +0 -1
- package/src/bridge/core/bridge-factory.d.ts +0 -198
- package/src/bridge/core/bridge-factory.js +0 -428
- package/src/bridge/core/bridge-factory.js.map +0 -1
- package/src/bridge/core/index.d.ts +0 -9
- package/src/bridge/core/index.js +0 -22
- package/src/bridge/core/index.js.map +0 -1
- package/src/bridge/index.d.ts +0 -61
- package/src/bridge/index.js +0 -94
- package/src/bridge/index.js.map +0 -1
- package/src/bridge/runtime/iife-generator.d.ts +0 -61
- package/src/bridge/runtime/iife-generator.js +0 -940
- package/src/bridge/runtime/iife-generator.js.map +0 -1
- package/src/bridge/runtime/index.d.ts +0 -8
- package/src/bridge/runtime/index.js +0 -16
- package/src/bridge/runtime/index.js.map +0 -1
- package/src/bridge/types.d.ts +0 -385
- package/src/bridge/types.js +0 -11
- package/src/bridge/types.js.map +0 -1
- package/src/build/cdn-resources.d.ts +0 -140
- package/src/build/cdn-resources.js +0 -314
- package/src/build/cdn-resources.js.map +0 -1
- package/src/build/index.d.ts +0 -294
- package/src/build/index.js +0 -325
- package/src/build/index.js.map +0 -1
- package/src/build/widget-manifest.d.ts +0 -212
- package/src/build/widget-manifest.js +0 -652
- package/src/build/widget-manifest.js.map +0 -1
- package/src/bundler/bundler.d.ts +0 -110
- package/src/bundler/bundler.js +0 -432
- package/src/bundler/bundler.js.map +0 -1
- package/src/bundler/cache.d.ts +0 -172
- package/src/bundler/cache.js +0 -250
- package/src/bundler/cache.js.map +0 -1
- package/src/bundler/index.d.ts +0 -41
- package/src/bundler/index.js +0 -73
- package/src/bundler/index.js.map +0 -1
- package/src/bundler/sandbox/enclave-adapter.d.ts +0 -120
- package/src/bundler/sandbox/enclave-adapter.js +0 -339
- package/src/bundler/sandbox/enclave-adapter.js.map +0 -1
- package/src/bundler/sandbox/executor.d.ts +0 -13
- package/src/bundler/sandbox/executor.js +0 -22
- package/src/bundler/sandbox/executor.js.map +0 -1
- package/src/bundler/sandbox/policy.d.ts +0 -61
- package/src/bundler/sandbox/policy.js +0 -238
- package/src/bundler/sandbox/policy.js.map +0 -1
- package/src/bundler/types.d.ts +0 -347
- package/src/bundler/types.js +0 -132
- package/src/bundler/types.js.map +0 -1
- package/src/components/alert.d.ts +0 -71
- package/src/components/alert.js +0 -189
- package/src/components/alert.js.map +0 -1
- package/src/components/alert.schema.d.ts +0 -114
- package/src/components/alert.schema.js +0 -105
- package/src/components/alert.schema.js.map +0 -1
- package/src/components/avatar.d.ts +0 -76
- package/src/components/avatar.js +0 -176
- package/src/components/avatar.js.map +0 -1
- package/src/components/avatar.schema.d.ts +0 -169
- package/src/components/avatar.schema.js +0 -103
- package/src/components/avatar.schema.js.map +0 -1
- package/src/components/badge.d.ts +0 -70
- package/src/components/badge.js +0 -149
- package/src/components/badge.js.map +0 -1
- package/src/components/badge.schema.d.ts +0 -109
- package/src/components/badge.schema.js +0 -96
- package/src/components/badge.schema.js.map +0 -1
- package/src/components/button.d.ts +0 -111
- package/src/components/button.js +0 -336
- package/src/components/button.js.map +0 -1
- package/src/components/button.schema.d.ts +0 -148
- package/src/components/button.schema.js +0 -121
- package/src/components/button.schema.js.map +0 -1
- package/src/components/card.d.ts +0 -60
- package/src/components/card.js +0 -117
- package/src/components/card.js.map +0 -1
- package/src/components/card.schema.d.ts +0 -113
- package/src/components/card.schema.js +0 -98
- package/src/components/card.schema.js.map +0 -1
- package/src/components/form.d.ts +0 -239
- package/src/components/form.js +0 -420
- package/src/components/form.js.map +0 -1
- package/src/components/form.schema.d.ts +0 -441
- package/src/components/form.schema.js +0 -406
- package/src/components/form.schema.js.map +0 -1
- package/src/components/index.d.ts +0 -29
- package/src/components/index.js +0 -98
- package/src/components/index.js.map +0 -1
- package/src/components/list.d.ts +0 -127
- package/src/components/list.js +0 -279
- package/src/components/list.js.map +0 -1
- package/src/components/list.schema.d.ts +0 -134
- package/src/components/list.schema.js +0 -168
- package/src/components/list.schema.js.map +0 -1
- package/src/components/modal.d.ts +0 -111
- package/src/components/modal.js +0 -260
- package/src/components/modal.js.map +0 -1
- package/src/components/modal.schema.d.ts +0 -186
- package/src/components/modal.schema.js +0 -167
- package/src/components/modal.schema.js.map +0 -1
- package/src/components/table.d.ts +0 -105
- package/src/components/table.js +0 -283
- package/src/components/table.js.map +0 -1
- package/src/components/table.schema.d.ts +0 -159
- package/src/components/table.schema.js +0 -173
- package/src/components/table.schema.js.map +0 -1
- package/src/handlebars/helpers.d.ts +0 -348
- package/src/handlebars/helpers.js +0 -605
- package/src/handlebars/helpers.js.map +0 -1
- package/src/handlebars/index.d.ts +0 -193
- package/src/handlebars/index.js +0 -350
- package/src/handlebars/index.js.map +0 -1
- package/src/index.d.ts +0 -50
- package/src/index.js +0 -192
- package/src/index.js.map +0 -1
- package/src/layouts/base.d.ts +0 -88
- package/src/layouts/base.js +0 -227
- package/src/layouts/base.js.map +0 -1
- package/src/layouts/index.d.ts +0 -7
- package/src/layouts/index.js +0 -25
- package/src/layouts/index.js.map +0 -1
- package/src/layouts/presets.d.ts +0 -133
- package/src/layouts/presets.js +0 -277
- package/src/layouts/presets.js.map +0 -1
- package/src/pages/consent.d.ts +0 -116
- package/src/pages/consent.js +0 -218
- package/src/pages/consent.js.map +0 -1
- package/src/pages/error.d.ts +0 -100
- package/src/pages/error.js +0 -263
- package/src/pages/error.js.map +0 -1
- package/src/pages/index.d.ts +0 -8
- package/src/pages/index.js +0 -27
- package/src/pages/index.js.map +0 -1
- package/src/react/Alert.d.ts +0 -101
- package/src/react/Alert.js +0 -51
- package/src/react/Alert.js.map +0 -1
- package/src/react/Badge.d.ts +0 -100
- package/src/react/Badge.js +0 -55
- package/src/react/Badge.js.map +0 -1
- package/src/react/Button.d.ts +0 -108
- package/src/react/Button.js +0 -52
- package/src/react/Button.js.map +0 -1
- package/src/react/Card.d.ts +0 -103
- package/src/react/Card.js +0 -55
- package/src/react/Card.js.map +0 -1
- package/src/react/hooks/context.d.ts +0 -178
- package/src/react/hooks/context.js +0 -287
- package/src/react/hooks/context.js.map +0 -1
- package/src/react/hooks/index.d.ts +0 -41
- package/src/react/hooks/index.js +0 -61
- package/src/react/hooks/index.js.map +0 -1
- package/src/react/hooks/tools.d.ts +0 -283
- package/src/react/hooks/tools.js +0 -465
- package/src/react/hooks/tools.js.map +0 -1
- package/src/react/index.d.ts +0 -80
- package/src/react/index.js +0 -113
- package/src/react/index.js.map +0 -1
- package/src/react/types.d.ts +0 -105
- package/src/react/types.js +0 -12
- package/src/react/types.js.map +0 -1
- package/src/react/utils.d.ts +0 -42
- package/src/react/utils.js +0 -99
- package/src/react/utils.js.map +0 -1
- package/src/registry/index.d.ts +0 -45
- package/src/registry/index.js +0 -67
- package/src/registry/index.js.map +0 -1
- package/src/registry/render-template.d.ts +0 -86
- package/src/registry/render-template.js +0 -239
- package/src/registry/render-template.js.map +0 -1
- package/src/registry/tool-ui.registry.d.ts +0 -260
- package/src/registry/tool-ui.registry.js +0 -438
- package/src/registry/tool-ui.registry.js.map +0 -1
- package/src/registry/uri-utils.d.ts +0 -55
- package/src/registry/uri-utils.js +0 -97
- package/src/registry/uri-utils.js.map +0 -1
- package/src/render/index.d.ts +0 -7
- package/src/render/index.js +0 -14
- package/src/render/index.js.map +0 -1
- package/src/render/prerender.d.ts +0 -56
- package/src/render/prerender.js +0 -98
- package/src/render/prerender.js.map +0 -1
- package/src/renderers/cache.d.ts +0 -144
- package/src/renderers/cache.js +0 -240
- package/src/renderers/cache.js.map +0 -1
- package/src/renderers/html.renderer.d.ts +0 -122
- package/src/renderers/html.renderer.js +0 -204
- package/src/renderers/html.renderer.js.map +0 -1
- package/src/renderers/index.d.ts +0 -35
- package/src/renderers/index.js +0 -70
- package/src/renderers/index.js.map +0 -1
- package/src/renderers/mdx.renderer.d.ts +0 -119
- package/src/renderers/mdx.renderer.js +0 -305
- package/src/renderers/mdx.renderer.js.map +0 -1
- package/src/renderers/react.renderer.d.ts +0 -95
- package/src/renderers/react.renderer.js +0 -260
- package/src/renderers/react.renderer.js.map +0 -1
- package/src/renderers/registry.d.ts +0 -133
- package/src/renderers/registry.js +0 -232
- package/src/renderers/registry.js.map +0 -1
- package/src/renderers/types.d.ts +0 -341
- package/src/renderers/types.js +0 -9
- package/src/renderers/types.js.map +0 -1
- package/src/renderers/utils/detect.d.ts +0 -106
- package/src/renderers/utils/detect.js +0 -267
- package/src/renderers/utils/detect.js.map +0 -1
- package/src/renderers/utils/hash.d.ts +0 -39
- package/src/renderers/utils/hash.js +0 -75
- package/src/renderers/utils/hash.js.map +0 -1
- package/src/renderers/utils/index.d.ts +0 -8
- package/src/renderers/utils/index.js +0 -28
- package/src/renderers/utils/index.js.map +0 -1
- package/src/renderers/utils/transpiler.d.ts +0 -88
- package/src/renderers/utils/transpiler.js +0 -215
- package/src/renderers/utils/transpiler.js.map +0 -1
- package/src/runtime/adapters/html.adapter.d.ts +0 -58
- package/src/runtime/adapters/html.adapter.js +0 -131
- package/src/runtime/adapters/html.adapter.js.map +0 -1
- package/src/runtime/adapters/index.d.ts +0 -25
- package/src/runtime/adapters/index.js +0 -54
- package/src/runtime/adapters/index.js.map +0 -1
- package/src/runtime/adapters/mdx.adapter.d.ts +0 -72
- package/src/runtime/adapters/mdx.adapter.js +0 -241
- package/src/runtime/adapters/mdx.adapter.js.map +0 -1
- package/src/runtime/adapters/react.adapter.d.ts +0 -69
- package/src/runtime/adapters/react.adapter.js +0 -245
- package/src/runtime/adapters/react.adapter.js.map +0 -1
- package/src/runtime/adapters/types.d.ts +0 -94
- package/src/runtime/adapters/types.js +0 -11
- package/src/runtime/adapters/types.js.map +0 -1
- package/src/runtime/csp.d.ts +0 -37
- package/src/runtime/csp.js +0 -140
- package/src/runtime/csp.js.map +0 -1
- package/src/runtime/index.d.ts +0 -16
- package/src/runtime/index.js +0 -72
- package/src/runtime/index.js.map +0 -1
- package/src/runtime/mcp-bridge.d.ts +0 -100
- package/src/runtime/mcp-bridge.js +0 -581
- package/src/runtime/mcp-bridge.js.map +0 -1
- package/src/runtime/renderer-runtime.d.ts +0 -132
- package/src/runtime/renderer-runtime.js +0 -389
- package/src/runtime/renderer-runtime.js.map +0 -1
- package/src/runtime/sanitizer.d.ts +0 -171
- package/src/runtime/sanitizer.js +0 -318
- package/src/runtime/sanitizer.js.map +0 -1
- package/src/runtime/types.d.ts +0 -414
- package/src/runtime/types.js +0 -12
- package/src/runtime/types.js.map +0 -1
- package/src/runtime/wrapper.d.ts +0 -375
- package/src/runtime/wrapper.js +0 -1793
- package/src/runtime/wrapper.js.map +0 -1
- package/src/styles/index.d.ts +0 -7
- package/src/styles/index.js +0 -11
- package/src/styles/index.js.map +0 -1
- package/src/styles/variants.d.ts +0 -50
- package/src/styles/variants.js +0 -175
- package/src/styles/variants.js.map +0 -1
- package/src/theme/cdn.d.ts +0 -194
- package/src/theme/cdn.js +0 -375
- package/src/theme/cdn.js.map +0 -1
- package/src/theme/index.d.ts +0 -17
- package/src/theme/index.js +0 -57
- package/src/theme/index.js.map +0 -1
- package/src/theme/platforms.d.ts +0 -106
- package/src/theme/platforms.js +0 -161
- package/src/theme/platforms.js.map +0 -1
- package/src/theme/presets/github-openai.d.ts +0 -49
- package/src/theme/presets/github-openai.js +0 -189
- package/src/theme/presets/github-openai.js.map +0 -1
- package/src/theme/presets/index.d.ts +0 -10
- package/src/theme/presets/index.js +0 -17
- package/src/theme/presets/index.js.map +0 -1
- package/src/theme/theme.d.ts +0 -395
- package/src/theme/theme.js +0 -332
- package/src/theme/theme.js.map +0 -1
- package/src/tool-template/builder.d.ts +0 -212
- package/src/tool-template/builder.js +0 -397
- package/src/tool-template/builder.js.map +0 -1
- package/src/tool-template/index.d.ts +0 -15
- package/src/tool-template/index.js +0 -38
- package/src/tool-template/index.js.map +0 -1
- package/src/types/index.d.ts +0 -13
- package/src/types/index.js +0 -26
- package/src/types/index.js.map +0 -1
- package/src/types/ui-config.d.ts +0 -357
- package/src/types/ui-config.js +0 -12
- package/src/types/ui-config.js.map +0 -1
- package/src/types/ui-runtime.d.ts +0 -965
- package/src/types/ui-runtime.js +0 -117
- package/src/types/ui-runtime.js.map +0 -1
- package/src/validation/error-box.d.ts +0 -55
- package/src/validation/error-box.js +0 -75
- package/src/validation/error-box.js.map +0 -1
- package/src/validation/index.d.ts +0 -12
- package/src/validation/index.js +0 -21
- package/src/validation/index.js.map +0 -1
- package/src/validation/wrapper.d.ts +0 -96
- package/src/validation/wrapper.js +0 -117
- package/src/validation/wrapper.js.map +0 -1
- package/src/web-components/core/attribute-parser.d.ts +0 -85
- package/src/web-components/core/attribute-parser.js +0 -189
- package/src/web-components/core/attribute-parser.js.map +0 -1
- package/src/web-components/core/base-element.d.ts +0 -197
- package/src/web-components/core/base-element.js +0 -289
- package/src/web-components/core/base-element.js.map +0 -1
- package/src/web-components/core/index.d.ts +0 -8
- package/src/web-components/core/index.js +0 -18
- package/src/web-components/core/index.js.map +0 -1
- package/src/web-components/elements/fmcp-alert.d.ts +0 -45
- package/src/web-components/elements/fmcp-alert.js +0 -93
- package/src/web-components/elements/fmcp-alert.js.map +0 -1
- package/src/web-components/elements/fmcp-badge.d.ts +0 -46
- package/src/web-components/elements/fmcp-badge.js +0 -99
- package/src/web-components/elements/fmcp-badge.js.map +0 -1
- package/src/web-components/elements/fmcp-button.d.ts +0 -124
- package/src/web-components/elements/fmcp-button.js +0 -233
- package/src/web-components/elements/fmcp-button.js.map +0 -1
- package/src/web-components/elements/fmcp-card.d.ts +0 -52
- package/src/web-components/elements/fmcp-card.js +0 -115
- package/src/web-components/elements/fmcp-card.js.map +0 -1
- package/src/web-components/elements/fmcp-input.d.ts +0 -95
- package/src/web-components/elements/fmcp-input.js +0 -248
- package/src/web-components/elements/fmcp-input.js.map +0 -1
- package/src/web-components/elements/fmcp-select.d.ts +0 -99
- package/src/web-components/elements/fmcp-select.js +0 -243
- package/src/web-components/elements/fmcp-select.js.map +0 -1
- package/src/web-components/elements/index.d.ts +0 -12
- package/src/web-components/elements/index.js +0 -34
- package/src/web-components/elements/index.js.map +0 -1
- package/src/web-components/index.d.ts +0 -49
- package/src/web-components/index.js +0 -75
- package/src/web-components/index.js.map +0 -1
- package/src/web-components/register.d.ts +0 -56
- package/src/web-components/register.js +0 -80
- package/src/web-components/register.js.map +0 -1
- package/src/web-components/types.d.ts +0 -121
- package/src/web-components/types.js +0 -25
- package/src/web-components/types.js.map +0 -1
- package/src/widgets/index.d.ts +0 -7
- package/src/widgets/index.js +0 -24
- package/src/widgets/index.js.map +0 -1
- package/src/widgets/progress.d.ts +0 -132
- package/src/widgets/progress.js +0 -303
- package/src/widgets/progress.js.map +0 -1
- package/src/widgets/resource.d.ts +0 -162
- package/src/widgets/resource.js +0 -340
- package/src/widgets/resource.js.map +0 -1
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Renderer Adapter Types
|
|
3
|
-
*
|
|
4
|
-
* Defines the interface for renderer adapters that handle different
|
|
5
|
-
* UI types (HTML, React, MDX) at runtime.
|
|
6
|
-
*
|
|
7
|
-
* @packageDocumentation
|
|
8
|
-
*/
|
|
9
|
-
import type { UIType } from '../../types/ui-runtime';
|
|
10
|
-
/**
|
|
11
|
-
* Context passed to renderer adapters.
|
|
12
|
-
*/
|
|
13
|
-
export interface RenderContext {
|
|
14
|
-
/** Tool input arguments */
|
|
15
|
-
input: Record<string, unknown>;
|
|
16
|
-
/** Tool output/result */
|
|
17
|
-
output: unknown;
|
|
18
|
-
/** Structured content (if schema provided) */
|
|
19
|
-
structuredContent?: unknown;
|
|
20
|
-
/** Tool name */
|
|
21
|
-
toolName: string;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Options for rendering.
|
|
25
|
-
*/
|
|
26
|
-
export interface RenderOptions {
|
|
27
|
-
/** Target element to render into */
|
|
28
|
-
target?: HTMLElement;
|
|
29
|
-
/** Whether to hydrate existing SSR content */
|
|
30
|
-
hydrate?: boolean;
|
|
31
|
-
/** Manifest data from the page */
|
|
32
|
-
manifest?: Record<string, unknown>;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Result of a render operation.
|
|
36
|
-
*/
|
|
37
|
-
export interface RenderResult {
|
|
38
|
-
/** Whether rendering was successful */
|
|
39
|
-
success: boolean;
|
|
40
|
-
/** Error message if failed */
|
|
41
|
-
error?: string;
|
|
42
|
-
/** The rendered HTML (for SSR) */
|
|
43
|
-
html?: string;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Renderer adapter interface.
|
|
47
|
-
*
|
|
48
|
-
* Each adapter handles a specific UI type and provides methods
|
|
49
|
-
* for rendering templates to the DOM.
|
|
50
|
-
*/
|
|
51
|
-
export interface RendererAdapter {
|
|
52
|
-
/** The UI type this adapter handles */
|
|
53
|
-
readonly type: UIType;
|
|
54
|
-
/**
|
|
55
|
-
* Check if this adapter can handle the given content.
|
|
56
|
-
*/
|
|
57
|
-
canHandle(content: string | unknown): boolean;
|
|
58
|
-
/**
|
|
59
|
-
* Render content to an HTML string.
|
|
60
|
-
* Used for SSR and initial page generation.
|
|
61
|
-
*/
|
|
62
|
-
render(content: string, context: RenderContext, options?: RenderOptions): Promise<string>;
|
|
63
|
-
/**
|
|
64
|
-
* Render content directly to the DOM.
|
|
65
|
-
* Used for client-side rendering.
|
|
66
|
-
*/
|
|
67
|
-
renderToDOM?(content: string, target: HTMLElement, context: RenderContext, options?: RenderOptions): Promise<RenderResult>;
|
|
68
|
-
/**
|
|
69
|
-
* Hydrate existing SSR content with interactivity.
|
|
70
|
-
* Used for React/MDX components that were server-rendered.
|
|
71
|
-
*/
|
|
72
|
-
hydrate?(target: HTMLElement, context: RenderContext, options?: RenderOptions): Promise<RenderResult>;
|
|
73
|
-
/**
|
|
74
|
-
* Update the rendered content with new data.
|
|
75
|
-
* Used when tool output changes at runtime.
|
|
76
|
-
*/
|
|
77
|
-
update?(target: HTMLElement, context: RenderContext): Promise<RenderResult>;
|
|
78
|
-
/**
|
|
79
|
-
* Clean up any resources (event listeners, etc.).
|
|
80
|
-
*/
|
|
81
|
-
destroy?(target: HTMLElement): void;
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Lazy loader function for adapters.
|
|
85
|
-
*/
|
|
86
|
-
export type AdapterLoader = () => Promise<RendererAdapter>;
|
|
87
|
-
/**
|
|
88
|
-
* Adapter registry entry.
|
|
89
|
-
*/
|
|
90
|
-
export interface AdapterRegistryEntry {
|
|
91
|
-
type: UIType;
|
|
92
|
-
loader: AdapterLoader;
|
|
93
|
-
instance?: RendererAdapter;
|
|
94
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Renderer Adapter Types
|
|
4
|
-
*
|
|
5
|
-
* Defines the interface for renderer adapters that handle different
|
|
6
|
-
* UI types (HTML, React, MDX) at runtime.
|
|
7
|
-
*
|
|
8
|
-
* @packageDocumentation
|
|
9
|
-
*/
|
|
10
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/runtime/adapters/types.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG","sourcesContent":["/**\n * Renderer Adapter Types\n *\n * Defines the interface for renderer adapters that handle different\n * UI types (HTML, React, MDX) at runtime.\n *\n * @packageDocumentation\n */\n\nimport type { UIType } from '../../types/ui-runtime';\n\n/**\n * Context passed to renderer adapters.\n */\nexport interface RenderContext {\n /** Tool input arguments */\n input: Record<string, unknown>;\n /** Tool output/result */\n output: unknown;\n /** Structured content (if schema provided) */\n structuredContent?: unknown;\n /** Tool name */\n toolName: string;\n}\n\n/**\n * Options for rendering.\n */\nexport interface RenderOptions {\n /** Target element to render into */\n target?: HTMLElement;\n /** Whether to hydrate existing SSR content */\n hydrate?: boolean;\n /** Manifest data from the page */\n manifest?: Record<string, unknown>;\n}\n\n/**\n * Result of a render operation.\n */\nexport interface RenderResult {\n /** Whether rendering was successful */\n success: boolean;\n /** Error message if failed */\n error?: string;\n /** The rendered HTML (for SSR) */\n html?: string;\n}\n\n/**\n * Renderer adapter interface.\n *\n * Each adapter handles a specific UI type and provides methods\n * for rendering templates to the DOM.\n */\nexport interface RendererAdapter {\n /** The UI type this adapter handles */\n readonly type: UIType;\n\n /**\n * Check if this adapter can handle the given content.\n */\n canHandle(content: string | unknown): boolean;\n\n /**\n * Render content to an HTML string.\n * Used for SSR and initial page generation.\n */\n render(content: string, context: RenderContext, options?: RenderOptions): Promise<string>;\n\n /**\n * Render content directly to the DOM.\n * Used for client-side rendering.\n */\n renderToDOM?(\n content: string,\n target: HTMLElement,\n context: RenderContext,\n options?: RenderOptions,\n ): Promise<RenderResult>;\n\n /**\n * Hydrate existing SSR content with interactivity.\n * Used for React/MDX components that were server-rendered.\n */\n hydrate?(target: HTMLElement, context: RenderContext, options?: RenderOptions): Promise<RenderResult>;\n\n /**\n * Update the rendered content with new data.\n * Used when tool output changes at runtime.\n */\n update?(target: HTMLElement, context: RenderContext): Promise<RenderResult>;\n\n /**\n * Clean up any resources (event listeners, etc.).\n */\n destroy?(target: HTMLElement): void;\n}\n\n/**\n * Lazy loader function for adapters.\n */\nexport type AdapterLoader = () => Promise<RendererAdapter>;\n\n/**\n * Adapter registry entry.\n */\nexport interface AdapterRegistryEntry {\n type: UIType;\n loader: AdapterLoader;\n instance?: RendererAdapter;\n}\n"]}
|
package/src/runtime/csp.d.ts
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Content Security Policy Builder
|
|
3
|
-
*
|
|
4
|
-
* Generates CSP meta tags for sandboxed UI templates based on
|
|
5
|
-
* OpenAI Apps SDK and ext-apps (SEP-1865) specifications.
|
|
6
|
-
*/
|
|
7
|
-
import type { UIContentSecurityPolicy } from './types';
|
|
8
|
-
/**
|
|
9
|
-
* Default CSP when no custom policy is provided.
|
|
10
|
-
* Very restrictive - no external resources allowed.
|
|
11
|
-
*/
|
|
12
|
-
export declare const DEFAULT_CSP_DIRECTIVES: readonly ["default-src 'none'", "script-src 'self' 'unsafe-inline'", "style-src 'self' 'unsafe-inline'", "img-src 'self' data:", "font-src 'self' data:", "connect-src 'none'"];
|
|
13
|
-
/**
|
|
14
|
-
* Build CSP directives from a UIContentSecurityPolicy configuration
|
|
15
|
-
*/
|
|
16
|
-
export declare function buildCSPDirectives(csp?: UIContentSecurityPolicy): string[];
|
|
17
|
-
/**
|
|
18
|
-
* Build a CSP meta tag from directives
|
|
19
|
-
*/
|
|
20
|
-
export declare function buildCSPMetaTag(csp?: UIContentSecurityPolicy): string;
|
|
21
|
-
/**
|
|
22
|
-
* Build CSP for OpenAI Apps SDK format
|
|
23
|
-
* Returns the object format expected by _meta['openai/widgetCSP']
|
|
24
|
-
*/
|
|
25
|
-
export declare function buildOpenAICSP(csp?: UIContentSecurityPolicy): {
|
|
26
|
-
connect_domains?: string[];
|
|
27
|
-
resource_domains?: string[];
|
|
28
|
-
} | undefined;
|
|
29
|
-
/**
|
|
30
|
-
* Validate CSP domain format
|
|
31
|
-
* Domains should be valid URLs or wildcard patterns
|
|
32
|
-
*/
|
|
33
|
-
export declare function validateCSPDomain(domain: string): boolean;
|
|
34
|
-
/**
|
|
35
|
-
* Filter and warn about invalid CSP domains
|
|
36
|
-
*/
|
|
37
|
-
export declare function sanitizeCSPDomains(domains: string[] | undefined): string[];
|
package/src/runtime/csp.js
DELETED
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Content Security Policy Builder
|
|
4
|
-
*
|
|
5
|
-
* Generates CSP meta tags for sandboxed UI templates based on
|
|
6
|
-
* OpenAI Apps SDK and ext-apps (SEP-1865) specifications.
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.DEFAULT_CSP_DIRECTIVES = void 0;
|
|
10
|
-
exports.buildCSPDirectives = buildCSPDirectives;
|
|
11
|
-
exports.buildCSPMetaTag = buildCSPMetaTag;
|
|
12
|
-
exports.buildOpenAICSP = buildOpenAICSP;
|
|
13
|
-
exports.validateCSPDomain = validateCSPDomain;
|
|
14
|
-
exports.sanitizeCSPDomains = sanitizeCSPDomains;
|
|
15
|
-
/**
|
|
16
|
-
* Default CSP when no custom policy is provided.
|
|
17
|
-
* Very restrictive - no external resources allowed.
|
|
18
|
-
*/
|
|
19
|
-
exports.DEFAULT_CSP_DIRECTIVES = [
|
|
20
|
-
"default-src 'none'",
|
|
21
|
-
"script-src 'self' 'unsafe-inline'",
|
|
22
|
-
"style-src 'self' 'unsafe-inline'",
|
|
23
|
-
"img-src 'self' data:",
|
|
24
|
-
"font-src 'self' data:",
|
|
25
|
-
"connect-src 'none'",
|
|
26
|
-
];
|
|
27
|
-
/**
|
|
28
|
-
* Build CSP directives from a UIContentSecurityPolicy configuration
|
|
29
|
-
*/
|
|
30
|
-
function buildCSPDirectives(csp) {
|
|
31
|
-
if (!csp) {
|
|
32
|
-
return [...exports.DEFAULT_CSP_DIRECTIVES];
|
|
33
|
-
}
|
|
34
|
-
// Validate and sanitize domains before use
|
|
35
|
-
const validResourceDomains = sanitizeCSPDomains(csp.resourceDomains);
|
|
36
|
-
const validConnectDomains = sanitizeCSPDomains(csp.connectDomains);
|
|
37
|
-
const directives = [
|
|
38
|
-
"default-src 'none'",
|
|
39
|
-
"script-src 'self' 'unsafe-inline'",
|
|
40
|
-
"style-src 'self' 'unsafe-inline'",
|
|
41
|
-
];
|
|
42
|
-
// Image sources
|
|
43
|
-
const imgSources = ["'self'", 'data:'];
|
|
44
|
-
if (validResourceDomains.length) {
|
|
45
|
-
imgSources.push(...validResourceDomains);
|
|
46
|
-
}
|
|
47
|
-
directives.push(`img-src ${imgSources.join(' ')}`);
|
|
48
|
-
// Font sources
|
|
49
|
-
const fontSources = ["'self'", 'data:'];
|
|
50
|
-
if (validResourceDomains.length) {
|
|
51
|
-
fontSources.push(...validResourceDomains);
|
|
52
|
-
}
|
|
53
|
-
directives.push(`font-src ${fontSources.join(' ')}`);
|
|
54
|
-
// Connect sources (for fetch/XHR/WebSocket)
|
|
55
|
-
if (validConnectDomains.length) {
|
|
56
|
-
directives.push(`connect-src ${validConnectDomains.join(' ')}`);
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
directives.push("connect-src 'none'");
|
|
60
|
-
}
|
|
61
|
-
// Script sources (add resource domains if specified)
|
|
62
|
-
if (validResourceDomains.length) {
|
|
63
|
-
directives[1] = `script-src 'self' 'unsafe-inline' ${validResourceDomains.join(' ')}`;
|
|
64
|
-
directives[2] = `style-src 'self' 'unsafe-inline' ${validResourceDomains.join(' ')}`;
|
|
65
|
-
}
|
|
66
|
-
return directives;
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Build a CSP meta tag from directives
|
|
70
|
-
*/
|
|
71
|
-
function buildCSPMetaTag(csp) {
|
|
72
|
-
const directives = buildCSPDirectives(csp);
|
|
73
|
-
const content = directives.join('; ');
|
|
74
|
-
return `<meta http-equiv="Content-Security-Policy" content="${escapeAttribute(content)}">`;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Build CSP for OpenAI Apps SDK format
|
|
78
|
-
* Returns the object format expected by _meta['openai/widgetCSP']
|
|
79
|
-
*/
|
|
80
|
-
function buildOpenAICSP(csp) {
|
|
81
|
-
if (!csp)
|
|
82
|
-
return undefined;
|
|
83
|
-
const result = {};
|
|
84
|
-
if (csp.connectDomains?.length) {
|
|
85
|
-
result.connect_domains = csp.connectDomains;
|
|
86
|
-
}
|
|
87
|
-
if (csp.resourceDomains?.length) {
|
|
88
|
-
result.resource_domains = csp.resourceDomains;
|
|
89
|
-
}
|
|
90
|
-
return Object.keys(result).length > 0 ? result : undefined;
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Escape a string for use in an HTML attribute
|
|
94
|
-
*/
|
|
95
|
-
function escapeAttribute(str) {
|
|
96
|
-
return str
|
|
97
|
-
.replace(/&/g, '&')
|
|
98
|
-
.replace(/"/g, '"')
|
|
99
|
-
.replace(/'/g, ''')
|
|
100
|
-
.replace(/</g, '<')
|
|
101
|
-
.replace(/>/g, '>');
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Validate CSP domain format
|
|
105
|
-
* Domains should be valid URLs or wildcard patterns
|
|
106
|
-
*/
|
|
107
|
-
function validateCSPDomain(domain) {
|
|
108
|
-
// Allow wildcard subdomains (e.g., https://*.example.com, https://*.x.io)
|
|
109
|
-
if (domain.startsWith('https://*.')) {
|
|
110
|
-
const rest = domain.slice(10);
|
|
111
|
-
// Allow single-char segments and multi-level domains
|
|
112
|
-
return /^[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?\.[a-zA-Z]{2,}$/.test(rest);
|
|
113
|
-
}
|
|
114
|
-
// Standard HTTPS URL
|
|
115
|
-
try {
|
|
116
|
-
const url = new URL(domain);
|
|
117
|
-
return url.protocol === 'https:';
|
|
118
|
-
}
|
|
119
|
-
catch {
|
|
120
|
-
return false;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Filter and warn about invalid CSP domains
|
|
125
|
-
*/
|
|
126
|
-
function sanitizeCSPDomains(domains) {
|
|
127
|
-
if (!domains)
|
|
128
|
-
return [];
|
|
129
|
-
const valid = [];
|
|
130
|
-
for (const domain of domains) {
|
|
131
|
-
if (validateCSPDomain(domain)) {
|
|
132
|
-
valid.push(domain);
|
|
133
|
-
}
|
|
134
|
-
else {
|
|
135
|
-
console.warn(`Invalid CSP domain ignored: ${domain}`);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
return valid;
|
|
139
|
-
}
|
|
140
|
-
//# sourceMappingURL=csp.js.map
|
package/src/runtime/csp.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"csp.js","sourceRoot":"","sources":["../../../src/runtime/csp.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAoBH,gDA2CC;AAKD,0CAIC;AAMD,wCAsBC;AAkBD,8CAeC;AAKD,gDAaC;AAnJD;;;GAGG;AACU,QAAA,sBAAsB,GAAG;IACpC,oBAAoB;IACpB,mCAAmC;IACnC,kCAAkC;IAClC,sBAAsB;IACtB,uBAAuB;IACvB,oBAAoB;CACZ,CAAC;AAEX;;GAEG;AACH,SAAgB,kBAAkB,CAAC,GAA6B;IAC9D,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,8BAAsB,CAAC,CAAC;IACrC,CAAC;IAED,2CAA2C;IAC3C,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACrE,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAEnE,MAAM,UAAU,GAAa;QAC3B,oBAAoB;QACpB,mCAAmC;QACnC,kCAAkC;KACnC,CAAC;IAEF,gBAAgB;IAChB,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACvC,IAAI,oBAAoB,CAAC,MAAM,EAAE,CAAC;QAChC,UAAU,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,CAAC;IAC3C,CAAC;IACD,UAAU,CAAC,IAAI,CAAC,WAAW,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEnD,eAAe;IACf,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACxC,IAAI,oBAAoB,CAAC,MAAM,EAAE,CAAC;QAChC,WAAW,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,CAAC;IAC5C,CAAC;IACD,UAAU,CAAC,IAAI,CAAC,YAAY,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAErD,4CAA4C;IAC5C,IAAI,mBAAmB,CAAC,MAAM,EAAE,CAAC;QAC/B,UAAU,CAAC,IAAI,CAAC,eAAe,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;SAAM,CAAC;QACN,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACxC,CAAC;IAED,qDAAqD;IACrD,IAAI,oBAAoB,CAAC,MAAM,EAAE,CAAC;QAChC,UAAU,CAAC,CAAC,CAAC,GAAG,qCAAqC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACtF,UAAU,CAAC,CAAC,CAAC,GAAG,oCAAoC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACvF,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,GAA6B;IAC3D,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,OAAO,uDAAuD,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC;AAC7F,CAAC;AAED;;;GAGG;AACH,SAAgB,cAAc,CAAC,GAA6B;IAM1D,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAE3B,MAAM,MAAM,GAGR,EAAE,CAAC;IAEP,IAAI,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;QAC/B,MAAM,CAAC,eAAe,GAAG,GAAG,CAAC,cAAc,CAAC;IAC9C,CAAC;IAED,IAAI,GAAG,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;QAChC,MAAM,CAAC,gBAAgB,GAAG,GAAG,CAAC,eAAe,CAAC;IAChD,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,GAAW;IAClC,OAAO,GAAG;SACP,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,MAAc;IAC9C,0EAA0E;IAC1E,IAAI,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9B,qDAAqD;QACrD,OAAO,wDAAwD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7E,CAAC;IAED,qBAAqB;IACrB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5B,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,OAA6B;IAC9D,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAExB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,+BAA+B,MAAM,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["/**\n * Content Security Policy Builder\n *\n * Generates CSP meta tags for sandboxed UI templates based on\n * OpenAI Apps SDK and ext-apps (SEP-1865) specifications.\n */\n\nimport type { UIContentSecurityPolicy } from './types';\n\n/**\n * Default CSP when no custom policy is provided.\n * Very restrictive - no external resources allowed.\n */\nexport const DEFAULT_CSP_DIRECTIVES = [\n \"default-src 'none'\",\n \"script-src 'self' 'unsafe-inline'\",\n \"style-src 'self' 'unsafe-inline'\",\n \"img-src 'self' data:\",\n \"font-src 'self' data:\",\n \"connect-src 'none'\",\n] as const;\n\n/**\n * Build CSP directives from a UIContentSecurityPolicy configuration\n */\nexport function buildCSPDirectives(csp?: UIContentSecurityPolicy): string[] {\n if (!csp) {\n return [...DEFAULT_CSP_DIRECTIVES];\n }\n\n // Validate and sanitize domains before use\n const validResourceDomains = sanitizeCSPDomains(csp.resourceDomains);\n const validConnectDomains = sanitizeCSPDomains(csp.connectDomains);\n\n const directives: string[] = [\n \"default-src 'none'\",\n \"script-src 'self' 'unsafe-inline'\",\n \"style-src 'self' 'unsafe-inline'\",\n ];\n\n // Image sources\n const imgSources = [\"'self'\", 'data:'];\n if (validResourceDomains.length) {\n imgSources.push(...validResourceDomains);\n }\n directives.push(`img-src ${imgSources.join(' ')}`);\n\n // Font sources\n const fontSources = [\"'self'\", 'data:'];\n if (validResourceDomains.length) {\n fontSources.push(...validResourceDomains);\n }\n directives.push(`font-src ${fontSources.join(' ')}`);\n\n // Connect sources (for fetch/XHR/WebSocket)\n if (validConnectDomains.length) {\n directives.push(`connect-src ${validConnectDomains.join(' ')}`);\n } else {\n directives.push(\"connect-src 'none'\");\n }\n\n // Script sources (add resource domains if specified)\n if (validResourceDomains.length) {\n directives[1] = `script-src 'self' 'unsafe-inline' ${validResourceDomains.join(' ')}`;\n directives[2] = `style-src 'self' 'unsafe-inline' ${validResourceDomains.join(' ')}`;\n }\n\n return directives;\n}\n\n/**\n * Build a CSP meta tag from directives\n */\nexport function buildCSPMetaTag(csp?: UIContentSecurityPolicy): string {\n const directives = buildCSPDirectives(csp);\n const content = directives.join('; ');\n return `<meta http-equiv=\"Content-Security-Policy\" content=\"${escapeAttribute(content)}\">`;\n}\n\n/**\n * Build CSP for OpenAI Apps SDK format\n * Returns the object format expected by _meta['openai/widgetCSP']\n */\nexport function buildOpenAICSP(csp?: UIContentSecurityPolicy):\n | {\n connect_domains?: string[];\n resource_domains?: string[];\n }\n | undefined {\n if (!csp) return undefined;\n\n const result: {\n connect_domains?: string[];\n resource_domains?: string[];\n } = {};\n\n if (csp.connectDomains?.length) {\n result.connect_domains = csp.connectDomains;\n }\n\n if (csp.resourceDomains?.length) {\n result.resource_domains = csp.resourceDomains;\n }\n\n return Object.keys(result).length > 0 ? result : undefined;\n}\n\n/**\n * Escape a string for use in an HTML attribute\n */\nfunction escapeAttribute(str: string): string {\n return str\n .replace(/&/g, '&')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n .replace(/</g, '<')\n .replace(/>/g, '>');\n}\n\n/**\n * Validate CSP domain format\n * Domains should be valid URLs or wildcard patterns\n */\nexport function validateCSPDomain(domain: string): boolean {\n // Allow wildcard subdomains (e.g., https://*.example.com, https://*.x.io)\n if (domain.startsWith('https://*.')) {\n const rest = domain.slice(10);\n // Allow single-char segments and multi-level domains\n return /^[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?\\.[a-zA-Z]{2,}$/.test(rest);\n }\n\n // Standard HTTPS URL\n try {\n const url = new URL(domain);\n return url.protocol === 'https:';\n } catch {\n return false;\n }\n}\n\n/**\n * Filter and warn about invalid CSP domains\n */\nexport function sanitizeCSPDomains(domains: string[] | undefined): string[] {\n if (!domains) return [];\n\n const valid: string[] = [];\n for (const domain of domains) {\n if (validateCSPDomain(domain)) {\n valid.push(domain);\n } else {\n console.warn(`Invalid CSP domain ignored: ${domain}`);\n }\n }\n\n return valid;\n}\n"]}
|
package/src/runtime/index.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MCP Bridge Runtime Module
|
|
3
|
-
*
|
|
4
|
-
* Provides the infrastructure for rendering tool UI templates
|
|
5
|
-
* that work across multiple host environments (OpenAI, Claude, ext-apps).
|
|
6
|
-
*
|
|
7
|
-
* @module @frontmcp/ui/runtime
|
|
8
|
-
*/
|
|
9
|
-
export type { ProviderType, DisplayMode, ThemeMode, HostContext, MCPBridge, MCPBridgeExtended, WrapToolUIOptions, OpenAIRuntime, OpenAIUserAgent, SafeAreaInsets, UIContentSecurityPolicy, TemplateContext, TemplateHelpers, TemplateBuilderFn, ToolUITemplate, ToolUIConfig, WidgetServingMode, } from './types';
|
|
10
|
-
export { MCP_BRIDGE_RUNTIME, getMCPBridgeScript, isMCPBridgeSupported } from './mcp-bridge';
|
|
11
|
-
export { FRONTMCP_BRIDGE_RUNTIME, PLATFORM_BRIDGE_SCRIPTS, generateCustomBridge, type IIFEGeneratorOptions, } from './mcp-bridge';
|
|
12
|
-
export { DEFAULT_CSP_DIRECTIVES, buildCSPDirectives, buildCSPMetaTag, buildOpenAICSP, validateCSPDomain, sanitizeCSPDomains, } from './csp';
|
|
13
|
-
export { type WrapToolUIFullOptions, type WrapToolUIUniversalOptions, type WrapStaticWidgetOptions, type WrapLeanWidgetShellOptions, type WrapHybridWidgetShellOptions, wrapToolUI, wrapToolUIMinimal, wrapToolUIUniversal, wrapStaticWidgetUniversal, wrapLeanWidgetShell, wrapHybridWidgetShell, createTemplateHelpers, buildOpenAIMeta, getToolUIMimeType, } from './wrapper';
|
|
14
|
-
export { type SanitizerFn, type SanitizeOptions, REDACTION_TOKENS, PII_PATTERNS, sanitizeInput, createSanitizer, detectPII, isEmail, isPhone, isCreditCard, isSSN, isIPv4, detectPIIType, redactPIIFromText, } from './sanitizer';
|
|
15
|
-
export { RendererRuntime, createRendererRuntime, bootstrapRendererRuntime, generateBootstrapScript, type RendererRuntimeConfig, } from './renderer-runtime';
|
|
16
|
-
export { type RendererAdapter, type RenderContext, type RenderOptions, type RenderResult, type AdapterLoader, HtmlRendererAdapter, ReactRendererAdapter, MdxRendererAdapter, createHtmlAdapter, createReactAdapter, createMdxAdapter, loadAdapter, getAdapterLoader, adapterLoaders, } from './adapters';
|
package/src/runtime/index.js
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* MCP Bridge Runtime Module
|
|
4
|
-
*
|
|
5
|
-
* Provides the infrastructure for rendering tool UI templates
|
|
6
|
-
* that work across multiple host environments (OpenAI, Claude, ext-apps).
|
|
7
|
-
*
|
|
8
|
-
* @module @frontmcp/ui/runtime
|
|
9
|
-
*/
|
|
10
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.adapterLoaders = exports.getAdapterLoader = exports.loadAdapter = exports.createMdxAdapter = exports.createReactAdapter = exports.createHtmlAdapter = exports.MdxRendererAdapter = exports.ReactRendererAdapter = exports.HtmlRendererAdapter = exports.generateBootstrapScript = exports.bootstrapRendererRuntime = exports.createRendererRuntime = exports.RendererRuntime = exports.redactPIIFromText = exports.detectPIIType = exports.isIPv4 = exports.isSSN = exports.isCreditCard = exports.isPhone = exports.isEmail = exports.detectPII = exports.createSanitizer = exports.sanitizeInput = exports.PII_PATTERNS = exports.REDACTION_TOKENS = exports.getToolUIMimeType = exports.buildOpenAIMeta = exports.createTemplateHelpers = exports.wrapHybridWidgetShell = exports.wrapLeanWidgetShell = exports.wrapStaticWidgetUniversal = exports.wrapToolUIUniversal = exports.wrapToolUIMinimal = exports.wrapToolUI = exports.sanitizeCSPDomains = exports.validateCSPDomain = exports.buildOpenAICSP = exports.buildCSPMetaTag = exports.buildCSPDirectives = exports.DEFAULT_CSP_DIRECTIVES = exports.generateCustomBridge = exports.PLATFORM_BRIDGE_SCRIPTS = exports.FRONTMCP_BRIDGE_RUNTIME = exports.isMCPBridgeSupported = exports.getMCPBridgeScript = exports.MCP_BRIDGE_RUNTIME = void 0;
|
|
12
|
-
// MCP Bridge Runtime (legacy)
|
|
13
|
-
var mcp_bridge_1 = require("./mcp-bridge");
|
|
14
|
-
Object.defineProperty(exports, "MCP_BRIDGE_RUNTIME", { enumerable: true, get: function () { return mcp_bridge_1.MCP_BRIDGE_RUNTIME; } });
|
|
15
|
-
Object.defineProperty(exports, "getMCPBridgeScript", { enumerable: true, get: function () { return mcp_bridge_1.getMCPBridgeScript; } });
|
|
16
|
-
Object.defineProperty(exports, "isMCPBridgeSupported", { enumerable: true, get: function () { return mcp_bridge_1.isMCPBridgeSupported; } });
|
|
17
|
-
// New FrontMcpBridge Runtime
|
|
18
|
-
var mcp_bridge_2 = require("./mcp-bridge");
|
|
19
|
-
Object.defineProperty(exports, "FRONTMCP_BRIDGE_RUNTIME", { enumerable: true, get: function () { return mcp_bridge_2.FRONTMCP_BRIDGE_RUNTIME; } });
|
|
20
|
-
Object.defineProperty(exports, "PLATFORM_BRIDGE_SCRIPTS", { enumerable: true, get: function () { return mcp_bridge_2.PLATFORM_BRIDGE_SCRIPTS; } });
|
|
21
|
-
Object.defineProperty(exports, "generateCustomBridge", { enumerable: true, get: function () { return mcp_bridge_2.generateCustomBridge; } });
|
|
22
|
-
// CSP utilities
|
|
23
|
-
var csp_1 = require("./csp");
|
|
24
|
-
Object.defineProperty(exports, "DEFAULT_CSP_DIRECTIVES", { enumerable: true, get: function () { return csp_1.DEFAULT_CSP_DIRECTIVES; } });
|
|
25
|
-
Object.defineProperty(exports, "buildCSPDirectives", { enumerable: true, get: function () { return csp_1.buildCSPDirectives; } });
|
|
26
|
-
Object.defineProperty(exports, "buildCSPMetaTag", { enumerable: true, get: function () { return csp_1.buildCSPMetaTag; } });
|
|
27
|
-
Object.defineProperty(exports, "buildOpenAICSP", { enumerable: true, get: function () { return csp_1.buildOpenAICSP; } });
|
|
28
|
-
Object.defineProperty(exports, "validateCSPDomain", { enumerable: true, get: function () { return csp_1.validateCSPDomain; } });
|
|
29
|
-
Object.defineProperty(exports, "sanitizeCSPDomains", { enumerable: true, get: function () { return csp_1.sanitizeCSPDomains; } });
|
|
30
|
-
// Wrapper utilities
|
|
31
|
-
var wrapper_1 = require("./wrapper");
|
|
32
|
-
Object.defineProperty(exports, "wrapToolUI", { enumerable: true, get: function () { return wrapper_1.wrapToolUI; } });
|
|
33
|
-
Object.defineProperty(exports, "wrapToolUIMinimal", { enumerable: true, get: function () { return wrapper_1.wrapToolUIMinimal; } });
|
|
34
|
-
Object.defineProperty(exports, "wrapToolUIUniversal", { enumerable: true, get: function () { return wrapper_1.wrapToolUIUniversal; } });
|
|
35
|
-
Object.defineProperty(exports, "wrapStaticWidgetUniversal", { enumerable: true, get: function () { return wrapper_1.wrapStaticWidgetUniversal; } });
|
|
36
|
-
Object.defineProperty(exports, "wrapLeanWidgetShell", { enumerable: true, get: function () { return wrapper_1.wrapLeanWidgetShell; } });
|
|
37
|
-
Object.defineProperty(exports, "wrapHybridWidgetShell", { enumerable: true, get: function () { return wrapper_1.wrapHybridWidgetShell; } });
|
|
38
|
-
Object.defineProperty(exports, "createTemplateHelpers", { enumerable: true, get: function () { return wrapper_1.createTemplateHelpers; } });
|
|
39
|
-
Object.defineProperty(exports, "buildOpenAIMeta", { enumerable: true, get: function () { return wrapper_1.buildOpenAIMeta; } });
|
|
40
|
-
Object.defineProperty(exports, "getToolUIMimeType", { enumerable: true, get: function () { return wrapper_1.getToolUIMimeType; } });
|
|
41
|
-
// Input sanitization
|
|
42
|
-
var sanitizer_1 = require("./sanitizer");
|
|
43
|
-
Object.defineProperty(exports, "REDACTION_TOKENS", { enumerable: true, get: function () { return sanitizer_1.REDACTION_TOKENS; } });
|
|
44
|
-
Object.defineProperty(exports, "PII_PATTERNS", { enumerable: true, get: function () { return sanitizer_1.PII_PATTERNS; } });
|
|
45
|
-
Object.defineProperty(exports, "sanitizeInput", { enumerable: true, get: function () { return sanitizer_1.sanitizeInput; } });
|
|
46
|
-
Object.defineProperty(exports, "createSanitizer", { enumerable: true, get: function () { return sanitizer_1.createSanitizer; } });
|
|
47
|
-
Object.defineProperty(exports, "detectPII", { enumerable: true, get: function () { return sanitizer_1.detectPII; } });
|
|
48
|
-
Object.defineProperty(exports, "isEmail", { enumerable: true, get: function () { return sanitizer_1.isEmail; } });
|
|
49
|
-
Object.defineProperty(exports, "isPhone", { enumerable: true, get: function () { return sanitizer_1.isPhone; } });
|
|
50
|
-
Object.defineProperty(exports, "isCreditCard", { enumerable: true, get: function () { return sanitizer_1.isCreditCard; } });
|
|
51
|
-
Object.defineProperty(exports, "isSSN", { enumerable: true, get: function () { return sanitizer_1.isSSN; } });
|
|
52
|
-
Object.defineProperty(exports, "isIPv4", { enumerable: true, get: function () { return sanitizer_1.isIPv4; } });
|
|
53
|
-
Object.defineProperty(exports, "detectPIIType", { enumerable: true, get: function () { return sanitizer_1.detectPIIType; } });
|
|
54
|
-
Object.defineProperty(exports, "redactPIIFromText", { enumerable: true, get: function () { return sanitizer_1.redactPIIFromText; } });
|
|
55
|
-
// Renderer Runtime
|
|
56
|
-
var renderer_runtime_1 = require("./renderer-runtime");
|
|
57
|
-
Object.defineProperty(exports, "RendererRuntime", { enumerable: true, get: function () { return renderer_runtime_1.RendererRuntime; } });
|
|
58
|
-
Object.defineProperty(exports, "createRendererRuntime", { enumerable: true, get: function () { return renderer_runtime_1.createRendererRuntime; } });
|
|
59
|
-
Object.defineProperty(exports, "bootstrapRendererRuntime", { enumerable: true, get: function () { return renderer_runtime_1.bootstrapRendererRuntime; } });
|
|
60
|
-
Object.defineProperty(exports, "generateBootstrapScript", { enumerable: true, get: function () { return renderer_runtime_1.generateBootstrapScript; } });
|
|
61
|
-
// Renderer Adapters
|
|
62
|
-
var adapters_1 = require("./adapters");
|
|
63
|
-
Object.defineProperty(exports, "HtmlRendererAdapter", { enumerable: true, get: function () { return adapters_1.HtmlRendererAdapter; } });
|
|
64
|
-
Object.defineProperty(exports, "ReactRendererAdapter", { enumerable: true, get: function () { return adapters_1.ReactRendererAdapter; } });
|
|
65
|
-
Object.defineProperty(exports, "MdxRendererAdapter", { enumerable: true, get: function () { return adapters_1.MdxRendererAdapter; } });
|
|
66
|
-
Object.defineProperty(exports, "createHtmlAdapter", { enumerable: true, get: function () { return adapters_1.createHtmlAdapter; } });
|
|
67
|
-
Object.defineProperty(exports, "createReactAdapter", { enumerable: true, get: function () { return adapters_1.createReactAdapter; } });
|
|
68
|
-
Object.defineProperty(exports, "createMdxAdapter", { enumerable: true, get: function () { return adapters_1.createMdxAdapter; } });
|
|
69
|
-
Object.defineProperty(exports, "loadAdapter", { enumerable: true, get: function () { return adapters_1.loadAdapter; } });
|
|
70
|
-
Object.defineProperty(exports, "getAdapterLoader", { enumerable: true, get: function () { return adapters_1.getAdapterLoader; } });
|
|
71
|
-
Object.defineProperty(exports, "adapterLoaders", { enumerable: true, get: function () { return adapters_1.adapterLoaders; } });
|
|
72
|
-
//# sourceMappingURL=index.js.map
|
package/src/runtime/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAwBH,8BAA8B;AAC9B,2CAA4F;AAAnF,gHAAA,kBAAkB,OAAA;AAAE,gHAAA,kBAAkB,OAAA;AAAE,kHAAA,oBAAoB,OAAA;AAErE,6BAA6B;AAC7B,2CAKsB;AAJpB,qHAAA,uBAAuB,OAAA;AACvB,qHAAA,uBAAuB,OAAA;AACvB,kHAAA,oBAAoB,OAAA;AAItB,gBAAgB;AAChB,6BAOe;AANb,6GAAA,sBAAsB,OAAA;AACtB,yGAAA,kBAAkB,OAAA;AAClB,sGAAA,eAAe,OAAA;AACf,qGAAA,cAAc,OAAA;AACd,wGAAA,iBAAiB,OAAA;AACjB,yGAAA,kBAAkB,OAAA;AAGpB,oBAAoB;AACpB,qCAemB;AATjB,qGAAA,UAAU,OAAA;AACV,4GAAA,iBAAiB,OAAA;AACjB,8GAAA,mBAAmB,OAAA;AACnB,oHAAA,yBAAyB,OAAA;AACzB,8GAAA,mBAAmB,OAAA;AACnB,gHAAA,qBAAqB,OAAA;AACrB,gHAAA,qBAAqB,OAAA;AACrB,0GAAA,eAAe,OAAA;AACf,4GAAA,iBAAiB,OAAA;AAGnB,qBAAqB;AACrB,yCAeqB;AAZnB,6GAAA,gBAAgB,OAAA;AAChB,yGAAA,YAAY,OAAA;AACZ,0GAAA,aAAa,OAAA;AACb,4GAAA,eAAe,OAAA;AACf,sGAAA,SAAS,OAAA;AACT,oGAAA,OAAO,OAAA;AACP,oGAAA,OAAO,OAAA;AACP,yGAAA,YAAY,OAAA;AACZ,kGAAA,KAAK,OAAA;AACL,mGAAA,MAAM,OAAA;AACN,0GAAA,aAAa,OAAA;AACb,8GAAA,iBAAiB,OAAA;AAGnB,mBAAmB;AACnB,uDAM4B;AAL1B,mHAAA,eAAe,OAAA;AACf,yHAAA,qBAAqB,OAAA;AACrB,4HAAA,wBAAwB,OAAA;AACxB,2HAAA,uBAAuB,OAAA;AAIzB,oBAAoB;AACpB,uCAeoB;AATlB,+GAAA,mBAAmB,OAAA;AACnB,gHAAA,oBAAoB,OAAA;AACpB,8GAAA,kBAAkB,OAAA;AAClB,6GAAA,iBAAiB,OAAA;AACjB,8GAAA,kBAAkB,OAAA;AAClB,4GAAA,gBAAgB,OAAA;AAChB,uGAAA,WAAW,OAAA;AACX,4GAAA,gBAAgB,OAAA;AAChB,0GAAA,cAAc,OAAA","sourcesContent":["/**\n * MCP Bridge Runtime Module\n *\n * Provides the infrastructure for rendering tool UI templates\n * that work across multiple host environments (OpenAI, Claude, ext-apps).\n *\n * @module @frontmcp/ui/runtime\n */\n\n// Types (including UI types that were previously re-exported from SDK)\nexport type {\n ProviderType,\n DisplayMode,\n ThemeMode,\n HostContext,\n MCPBridge,\n MCPBridgeExtended,\n WrapToolUIOptions,\n OpenAIRuntime,\n OpenAIUserAgent,\n SafeAreaInsets,\n // UI template types (defined locally to avoid circular dependency with SDK)\n UIContentSecurityPolicy,\n TemplateContext,\n TemplateHelpers,\n TemplateBuilderFn,\n ToolUITemplate,\n ToolUIConfig,\n WidgetServingMode,\n} from './types';\n\n// MCP Bridge Runtime (legacy)\nexport { MCP_BRIDGE_RUNTIME, getMCPBridgeScript, isMCPBridgeSupported } from './mcp-bridge';\n\n// New FrontMcpBridge Runtime\nexport {\n FRONTMCP_BRIDGE_RUNTIME,\n PLATFORM_BRIDGE_SCRIPTS,\n generateCustomBridge,\n type IIFEGeneratorOptions,\n} from './mcp-bridge';\n\n// CSP utilities\nexport {\n DEFAULT_CSP_DIRECTIVES,\n buildCSPDirectives,\n buildCSPMetaTag,\n buildOpenAICSP,\n validateCSPDomain,\n sanitizeCSPDomains,\n} from './csp';\n\n// Wrapper utilities\nexport {\n type WrapToolUIFullOptions,\n type WrapToolUIUniversalOptions,\n type WrapStaticWidgetOptions,\n type WrapLeanWidgetShellOptions,\n type WrapHybridWidgetShellOptions,\n wrapToolUI,\n wrapToolUIMinimal,\n wrapToolUIUniversal,\n wrapStaticWidgetUniversal,\n wrapLeanWidgetShell,\n wrapHybridWidgetShell,\n createTemplateHelpers,\n buildOpenAIMeta,\n getToolUIMimeType,\n} from './wrapper';\n\n// Input sanitization\nexport {\n type SanitizerFn,\n type SanitizeOptions,\n REDACTION_TOKENS,\n PII_PATTERNS,\n sanitizeInput,\n createSanitizer,\n detectPII,\n isEmail,\n isPhone,\n isCreditCard,\n isSSN,\n isIPv4,\n detectPIIType,\n redactPIIFromText,\n} from './sanitizer';\n\n// Renderer Runtime\nexport {\n RendererRuntime,\n createRendererRuntime,\n bootstrapRendererRuntime,\n generateBootstrapScript,\n type RendererRuntimeConfig,\n} from './renderer-runtime';\n\n// Renderer Adapters\nexport {\n type RendererAdapter,\n type RenderContext,\n type RenderOptions,\n type RenderResult,\n type AdapterLoader,\n HtmlRendererAdapter,\n ReactRendererAdapter,\n MdxRendererAdapter,\n createHtmlAdapter,\n createReactAdapter,\n createMdxAdapter,\n loadAdapter,\n getAdapterLoader,\n adapterLoaders,\n} from './adapters';\n"]}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MCP Bridge Runtime
|
|
3
|
-
*
|
|
4
|
-
* Universal JavaScript runtime injected into UI templates that adapts
|
|
5
|
-
* to the host environment (OpenAI Apps SDK, ext-apps, Claude, etc.).
|
|
6
|
-
*
|
|
7
|
-
* This script is designed to be embedded directly into HTML templates
|
|
8
|
-
* via the MCP_BRIDGE_RUNTIME constant.
|
|
9
|
-
*
|
|
10
|
-
* Architecture:
|
|
11
|
-
* - On OpenAI: Proxy directly to native window.openai API
|
|
12
|
-
* - On Claude: Polyfill with limited functionality (network-blocked)
|
|
13
|
-
* - On ext-apps: JSON-RPC postMessage bridge (SEP-1865 compliant)
|
|
14
|
-
* - On Gemini: Gemini SDK integration
|
|
15
|
-
* - On Unknown: LocalStorage-based state, basic functionality
|
|
16
|
-
*
|
|
17
|
-
* @see https://developers.openai.com/apps-sdk/build/chatgpt-ui
|
|
18
|
-
* @see https://github.com/modelcontextprotocol/ext-apps (SEP-1865)
|
|
19
|
-
*/
|
|
20
|
-
/**
|
|
21
|
-
* The MCP Bridge runtime script.
|
|
22
|
-
* This is injected into UI templates to provide a unified API across providers.
|
|
23
|
-
*
|
|
24
|
-
* Uses the new FrontMcpBridge adapter system which supports:
|
|
25
|
-
* - OpenAI ChatGPT Apps SDK
|
|
26
|
-
* - ext-apps (SEP-1865 protocol)
|
|
27
|
-
* - Claude (Anthropic)
|
|
28
|
-
* - Gemini (Google)
|
|
29
|
-
* - Generic fallback
|
|
30
|
-
*
|
|
31
|
-
* The bridge exposes:
|
|
32
|
-
* - window.FrontMcpBridge - New unified bridge API
|
|
33
|
-
* - window.mcpBridge - Legacy compatibility bridge
|
|
34
|
-
* - window.openai - OpenAI polyfill for non-OpenAI platforms
|
|
35
|
-
*
|
|
36
|
-
* Provides full OpenAI window.openai API compatibility:
|
|
37
|
-
* - Properties: theme, userAgent, locale, maxHeight, displayMode, safeArea,
|
|
38
|
-
* toolInput, toolOutput, toolResponseMetadata, widgetState
|
|
39
|
-
* - Methods: callTool, requestDisplayMode, requestClose, openExternal,
|
|
40
|
-
* sendFollowUpMessage, setWidgetState
|
|
41
|
-
*/
|
|
42
|
-
export declare const MCP_BRIDGE_RUNTIME = "\n<script>\n(function() {\n 'use strict';\n\n // ==================== Environment Detection ====================\n\n var isOpenAI = typeof window.openai !== 'undefined';\n var isExtApps = window.parent !== window && !isOpenAI;\n var isClaude = typeof window.claude !== 'undefined' ||\n (window.__mcpPlatform === 'claude');\n var isGemini = window.__mcpPlatform === 'gemini';\n\n // ==================== Internal State ====================\n\n var messageId = 0;\n var pendingRequests = new Map();\n var contextChangeListeners = [];\n var toolResultListeners = [];\n\n // Default values for polyfilled properties\n var defaultSafeArea = { top: 0, bottom: 0, left: 0, right: 0 };\n var defaultUserAgent = { type: 'web', hover: true, touch: false };\n\n // Host context (for ext-apps and polyfill mode)\n var hostContext = window.__mcpHostContext || {\n theme: 'light',\n displayMode: 'inline'\n };\n\n // Trusted origin for postMessage validation (set during ext-apps initialization)\n var trustedOrigin = null;\n\n // Detect device capabilities\n var detectUserAgent = function() {\n var ua = navigator.userAgent || '';\n var isMobile = /iPhone|iPad|iPod|Android/i.test(ua);\n var hasTouch = 'ontouchstart' in window || navigator.maxTouchPoints > 0;\n var hasHover = window.matchMedia && window.matchMedia('(hover: hover)').matches;\n return {\n type: isMobile ? 'mobile' : 'web',\n hover: hasHover !== false,\n touch: hasTouch\n };\n };\n\n // Detect theme from system preference\n var detectTheme = function() {\n if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {\n return 'dark';\n }\n return 'light';\n };\n\n // ==================== Bridge Implementation ====================\n\n /**\n * MCP Bridge provides full OpenAI API compatibility.\n * On OpenAI, it proxies directly to window.openai.\n * On other platforms, it provides polyfills.\n */\n var bridge = {\n // ==================== Environment Info ====================\n\n get provider() {\n if (isOpenAI) return 'openai';\n if (isClaude) return 'claude';\n if (isGemini) return 'gemini';\n if (isExtApps) return 'ext-apps';\n return 'unknown';\n },\n\n // ==================== OpenAI-Compatible Properties ====================\n\n get theme() {\n if (isOpenAI && window.openai) {\n return window.openai.theme || 'light';\n }\n return hostContext.theme || detectTheme();\n },\n\n get userAgent() {\n if (isOpenAI && window.openai && window.openai.userAgent) {\n return window.openai.userAgent;\n }\n return hostContext.userAgent || detectUserAgent();\n },\n\n get locale() {\n if (isOpenAI && window.openai && window.openai.locale) {\n return window.openai.locale;\n }\n return navigator.language || 'en-US';\n },\n\n get maxHeight() {\n if (isOpenAI && window.openai) {\n return window.openai.maxHeight;\n }\n return hostContext.viewport ? hostContext.viewport.maxHeight : undefined;\n },\n\n get displayMode() {\n if (isOpenAI && window.openai) {\n return window.openai.displayMode || 'inline';\n }\n return hostContext.displayMode || 'inline';\n },\n\n get safeArea() {\n if (isOpenAI && window.openai && window.openai.safeArea) {\n return window.openai.safeArea;\n }\n return hostContext.safeArea || defaultSafeArea;\n },\n\n get toolInput() {\n if (isOpenAI && window.openai && window.openai.toolInput) {\n return window.openai.toolInput;\n }\n return window.__mcpToolInput || {};\n },\n\n get toolOutput() {\n if (isOpenAI && window.openai) {\n return window.openai.toolOutput;\n }\n return window.__mcpToolOutput;\n },\n\n get structuredContent() {\n // Alias for toolOutput to maintain compatibility\n if (isOpenAI && window.openai) {\n return window.openai.toolOutput;\n }\n return window.__mcpStructuredContent;\n },\n\n get toolResponseMetadata() {\n if (isOpenAI && window.openai && window.openai.toolResponseMetadata) {\n return window.openai.toolResponseMetadata;\n }\n return window.__mcpToolResponseMetadata || {};\n },\n\n get widgetState() {\n if (isOpenAI && window.openai) {\n return window.openai.widgetState || {};\n }\n // Polyfill: use localStorage\n try {\n var stored = localStorage.getItem('__mcpWidgetState');\n return stored ? JSON.parse(stored) : {};\n } catch (e) {\n return {};\n }\n },\n\n // ==================== OpenAI-Compatible Methods ====================\n\n callTool: function(name, params) {\n if (isOpenAI && window.openai && window.openai.callTool) {\n return window.openai.callTool(name, params);\n }\n if (isClaude) {\n return Promise.reject(new Error(\n 'Tool calls are not supported in Claude widgets (network-blocked sandbox)'\n ));\n }\n if (isGemini) {\n return Promise.reject(new Error(\n 'Tool calls are not supported in Gemini widgets'\n ));\n }\n if (isExtApps) {\n return this._sendRequest('tools/call', { name: name, arguments: params });\n }\n return Promise.reject(new Error('Tool calls not supported in this environment'));\n },\n\n requestDisplayMode: function(options) {\n if (isOpenAI && window.openai && window.openai.requestDisplayMode) {\n return window.openai.requestDisplayMode(options);\n }\n if (isExtApps) {\n return this._sendRequest('ui/request-display-mode', options);\n }\n // Polyfill: just update local state\n if (options && options.mode) {\n hostContext.displayMode = options.mode;\n contextChangeListeners.forEach(function(cb) {\n try { cb({ displayMode: options.mode }); } catch (e) {}\n });\n }\n return Promise.resolve();\n },\n\n requestClose: function() {\n if (isOpenAI && window.openai && window.openai.requestClose) {\n return window.openai.requestClose();\n }\n if (isExtApps) {\n return this._sendRequest('ui/request-close', {});\n }\n // Polyfill: dispatch event for parent to handle\n window.dispatchEvent(new CustomEvent('mcp:request-close'));\n return Promise.resolve();\n },\n\n openExternal: function(options) {\n var href = typeof options === 'string' ? options : (options && options.href);\n if (!href) {\n return Promise.reject(new Error('URL required'));\n }\n if (isOpenAI && window.openai && window.openai.openExternal) {\n return window.openai.openExternal({ href: href });\n }\n if (isExtApps) {\n return this._sendRequest('ui/open-link', { url: href });\n }\n // Fallback: open in new window\n window.open(href, '_blank', 'noopener,noreferrer');\n return Promise.resolve();\n },\n\n // Alias for openExternal (backwards compatibility)\n openLink: function(url) {\n return this.openExternal({ href: url });\n },\n\n sendFollowUpMessage: function(options) {\n var prompt = typeof options === 'string' ? options : (options && options.prompt);\n if (!prompt) {\n return Promise.reject(new Error('Prompt required'));\n }\n if (isOpenAI && window.openai && window.openai.sendFollowUpMessage) {\n return window.openai.sendFollowUpMessage({ prompt: prompt });\n }\n if (isClaude) {\n return Promise.reject(new Error(\n 'Follow-up messages are not supported in Claude widgets (network-blocked sandbox)'\n ));\n }\n if (isGemini) {\n return Promise.reject(new Error(\n 'Follow-up messages are not supported in Gemini widgets'\n ));\n }\n if (isExtApps) {\n return this._sendRequest('ui/message', {\n role: 'user',\n content: { type: 'text', text: prompt }\n });\n }\n return Promise.reject(new Error('Messages not supported in this environment'));\n },\n\n // Alias for sendFollowUpMessage (backwards compatibility)\n sendMessage: function(content) {\n return this.sendFollowUpMessage({ prompt: content });\n },\n\n setWidgetState: function(state) {\n if (isOpenAI && window.openai && window.openai.setWidgetState) {\n window.openai.setWidgetState(state);\n return;\n }\n // Polyfill: persist to localStorage\n try {\n localStorage.setItem('__mcpWidgetState', JSON.stringify(state));\n } catch (e) {\n console.warn('Failed to persist widget state:', e);\n }\n },\n\n // ==================== Context API (MCP-specific) ====================\n\n get context() {\n return {\n theme: this.theme,\n displayMode: this.displayMode,\n viewport: this.maxHeight ? { maxHeight: this.maxHeight } : undefined,\n userAgent: this.userAgent,\n locale: this.locale,\n safeArea: this.safeArea\n };\n },\n\n onContextChange: function(callback) {\n contextChangeListeners.push(callback);\n return function() {\n var index = contextChangeListeners.indexOf(callback);\n if (index > -1) contextChangeListeners.splice(index, 1);\n };\n },\n\n onToolResult: function(callback) {\n toolResultListeners.push(callback);\n return function() {\n var index = toolResultListeners.indexOf(callback);\n if (index > -1) toolResultListeners.splice(index, 1);\n };\n },\n\n // ==================== Internal Methods ====================\n\n _sendRequest: function(method, params) {\n return new Promise(function(resolve, reject) {\n var id = ++messageId;\n pendingRequests.set(id, { resolve: resolve, reject: reject });\n\n window.parent.postMessage({\n jsonrpc: '2.0',\n id: id,\n method: method,\n params: params\n }, '*');\n\n // Timeout after 30s\n setTimeout(function() {\n if (pendingRequests.has(id)) {\n pendingRequests.delete(id);\n reject(new Error('Request timeout'));\n }\n }, 30000);\n });\n },\n\n _initExtApps: function() {\n var self = this;\n return this._sendRequest('ui/initialize', {}).then(function(result) {\n if (result && result.hostContext) {\n hostContext = Object.assign(hostContext, result.hostContext);\n }\n // Note: trustedOrigin is now set from first message event origin (trust-on-first-use)\n // Send initialized notification\n window.parent.postMessage({\n jsonrpc: '2.0',\n method: 'ui/notifications/initialized',\n params: {}\n }, '*');\n return result;\n });\n }\n };\n\n // ==================== Event Handling ====================\n\n window.addEventListener('message', function(event) {\n var data = event.data;\n if (!data || data.jsonrpc !== '2.0') return;\n\n // Trust-on-first-use: Establish trusted origin from the first valid message\n if (isExtApps && !trustedOrigin && event.origin) {\n trustedOrigin = event.origin;\n }\n\n // Validate origin for ext-apps environment to prevent spoofed messages\n if (isExtApps && trustedOrigin && event.origin !== trustedOrigin) {\n console.warn('MCP Bridge: Ignoring message from untrusted origin:', event.origin);\n return;\n }\n\n // Handle responses\n if (data.id && pendingRequests.has(data.id)) {\n var pending = pendingRequests.get(data.id);\n pendingRequests.delete(data.id);\n\n if (data.error) {\n var err = new Error(data.error.message || 'Unknown error');\n err.code = data.error.code;\n err.data = data.error.data;\n pending.reject(err);\n } else {\n pending.resolve(data.result);\n }\n return;\n }\n\n // Handle notifications\n switch (data.method) {\n case 'ui/notifications/tool-input':\n window.__mcpToolInput = data.params && data.params.arguments;\n window.dispatchEvent(new CustomEvent('mcp:tool-input', { detail: data.params }));\n break;\n\n case 'ui/notifications/tool-input-partial':\n if (data.params && data.params.arguments) {\n window.__mcpToolInput = Object.assign(window.__mcpToolInput || {}, data.params.arguments);\n }\n break;\n\n case 'ui/notifications/tool-result':\n window.__mcpToolOutput = data.params && data.params.content;\n window.__mcpStructuredContent = data.params && data.params.structuredContent;\n toolResultListeners.forEach(function(cb) {\n try { cb(data.params); } catch (e) { console.error('Tool result listener error:', e); }\n });\n window.dispatchEvent(new CustomEvent('mcp:tool-result', { detail: data.params }));\n break;\n\n case 'ui/notifications/tool-cancelled':\n window.dispatchEvent(new CustomEvent('mcp:tool-cancelled', { detail: data.params }));\n break;\n\n case 'ui/host-context-change':\n hostContext = Object.assign(hostContext, data.params);\n contextChangeListeners.forEach(function(cb) {\n try { cb(data.params); } catch (e) { console.error('Context change listener error:', e); }\n });\n window.dispatchEvent(new CustomEvent('mcp:context-change', { detail: data.params }));\n break;\n\n case 'ui/size-change':\n if (hostContext.viewport) {\n hostContext.viewport = Object.assign(hostContext.viewport, data.params);\n } else {\n hostContext.viewport = data.params;\n }\n break;\n }\n });\n\n // ==================== Initialize ====================\n\n // Export bridge\n window.mcpBridge = bridge;\n\n // Also create window.openai polyfill for non-OpenAI platforms\n // This allows code written for OpenAI to work on other platforms\n if (!isOpenAI) {\n window.openai = {\n get theme() { return bridge.theme; },\n get userAgent() { return bridge.userAgent; },\n get locale() { return bridge.locale; },\n get maxHeight() { return bridge.maxHeight; },\n get displayMode() { return bridge.displayMode; },\n get safeArea() { return bridge.safeArea; },\n get toolInput() { return bridge.toolInput; },\n get toolOutput() { return bridge.toolOutput; },\n get toolResponseMetadata() { return bridge.toolResponseMetadata; },\n get widgetState() { return bridge.widgetState; },\n callTool: function(n, a) { return bridge.callTool(n, a); },\n requestDisplayMode: function(o) { return bridge.requestDisplayMode(o); },\n requestClose: function() { return bridge.requestClose(); },\n openExternal: function(o) { return bridge.openExternal(o); },\n sendFollowUpMessage: function(o) { return bridge.sendFollowUpMessage(o); },\n setWidgetState: function(s) { return bridge.setWidgetState(s); }\n };\n }\n\n // Auto-initialize for ext-apps\n if (isExtApps) {\n bridge._initExtApps().catch(function(err) {\n console.warn('Failed to initialize MCP bridge:', err);\n });\n }\n\n // Dispatch ready event\n window.dispatchEvent(new CustomEvent('mcp:bridge-ready'));\n})();\n</script>\n";
|
|
43
|
-
/**
|
|
44
|
-
* Get the MCP Bridge runtime script as a string (without script tags)
|
|
45
|
-
* Useful for inline embedding in specific scenarios.
|
|
46
|
-
*/
|
|
47
|
-
export declare function getMCPBridgeScript(): string;
|
|
48
|
-
/**
|
|
49
|
-
* Check if the current environment supports the MCP bridge
|
|
50
|
-
*/
|
|
51
|
-
export declare function isMCPBridgeSupported(): boolean;
|
|
52
|
-
/**
|
|
53
|
-
* The new FrontMcpBridge runtime script (universal - includes all adapters).
|
|
54
|
-
* This is the recommended bridge for new integrations.
|
|
55
|
-
*
|
|
56
|
-
* @example
|
|
57
|
-
* ```typescript
|
|
58
|
-
* import { FRONTMCP_BRIDGE_RUNTIME } from '@frontmcp/ui/runtime';
|
|
59
|
-
* const html = `<!DOCTYPE html><html><head>${FRONTMCP_BRIDGE_RUNTIME}</head>...</html>`;
|
|
60
|
-
* ```
|
|
61
|
-
*/
|
|
62
|
-
export declare const FRONTMCP_BRIDGE_RUNTIME: string;
|
|
63
|
-
/**
|
|
64
|
-
* Platform-specific bridge scripts.
|
|
65
|
-
*
|
|
66
|
-
* Use these for smaller bundle sizes when targeting a specific platform.
|
|
67
|
-
*
|
|
68
|
-
* @example
|
|
69
|
-
* ```typescript
|
|
70
|
-
* import { PLATFORM_BRIDGE_SCRIPTS } from '@frontmcp/ui/runtime';
|
|
71
|
-
*
|
|
72
|
-
* // For ChatGPT only
|
|
73
|
-
* const chatgptHtml = `<html><head>${PLATFORM_BRIDGE_SCRIPTS.chatgpt}</head>...</html>`;
|
|
74
|
-
*
|
|
75
|
-
* // For Claude only
|
|
76
|
-
* const claudeHtml = `<html><head>${PLATFORM_BRIDGE_SCRIPTS.claude}</head>...</html>`;
|
|
77
|
-
* ```
|
|
78
|
-
*/
|
|
79
|
-
export declare const PLATFORM_BRIDGE_SCRIPTS: {
|
|
80
|
-
universal: string;
|
|
81
|
-
chatgpt: string;
|
|
82
|
-
claude: string;
|
|
83
|
-
gemini: string;
|
|
84
|
-
};
|
|
85
|
-
/**
|
|
86
|
-
* Generate a custom bridge script with specific options.
|
|
87
|
-
*
|
|
88
|
-
* @example
|
|
89
|
-
* ```typescript
|
|
90
|
-
* import { generateCustomBridge } from '@frontmcp/ui/runtime';
|
|
91
|
-
*
|
|
92
|
-
* const script = generateCustomBridge({
|
|
93
|
-
* adapters: ['openai', 'ext-apps'],
|
|
94
|
-
* debug: true,
|
|
95
|
-
* trustedOrigins: ['https://my-host.com']
|
|
96
|
-
* });
|
|
97
|
-
* ```
|
|
98
|
-
*/
|
|
99
|
-
export { generateBridgeIIFE as generateCustomBridge } from '../bridge/runtime/iife-generator';
|
|
100
|
-
export type { IIFEGeneratorOptions } from '../bridge/runtime/iife-generator';
|