@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,120 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Enclave-VM Secure Code Executor
|
|
3
|
-
*
|
|
4
|
-
* Executes bundled code in a secure sandbox using enclave-vm.
|
|
5
|
-
* Provides defense-in-depth security with:
|
|
6
|
-
* - AST-based validation (81+ blocked attack vectors)
|
|
7
|
-
* - Timeout enforcement (default 5000ms)
|
|
8
|
-
* - Resource limits (maxIterations, maxToolCalls)
|
|
9
|
-
* - Six security layers
|
|
10
|
-
*
|
|
11
|
-
* @packageDocumentation
|
|
12
|
-
*/
|
|
13
|
-
import type { SecurityPolicy } from '../types';
|
|
14
|
-
/**
|
|
15
|
-
* Context for code execution.
|
|
16
|
-
*/
|
|
17
|
-
export interface ExecutionContext {
|
|
18
|
-
/**
|
|
19
|
-
* React module to inject.
|
|
20
|
-
*/
|
|
21
|
-
React?: unknown;
|
|
22
|
-
/**
|
|
23
|
-
* ReactDOM module to inject.
|
|
24
|
-
*/
|
|
25
|
-
ReactDOM?: unknown;
|
|
26
|
-
/**
|
|
27
|
-
* Additional modules to inject.
|
|
28
|
-
*/
|
|
29
|
-
modules?: Record<string, unknown>;
|
|
30
|
-
/**
|
|
31
|
-
* Additional global variables.
|
|
32
|
-
*/
|
|
33
|
-
globals?: Record<string, unknown>;
|
|
34
|
-
/**
|
|
35
|
-
* Security policy to enforce.
|
|
36
|
-
*/
|
|
37
|
-
security?: SecurityPolicy;
|
|
38
|
-
/**
|
|
39
|
-
* Execution timeout in milliseconds.
|
|
40
|
-
* @default 5000
|
|
41
|
-
*/
|
|
42
|
-
timeout?: number;
|
|
43
|
-
/**
|
|
44
|
-
* Maximum loop iterations allowed.
|
|
45
|
-
* @default 10000
|
|
46
|
-
*/
|
|
47
|
-
maxIterations?: number;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Result of code execution.
|
|
51
|
-
*/
|
|
52
|
-
export interface ExecutionResult<T = unknown> {
|
|
53
|
-
/**
|
|
54
|
-
* Exported value from the code.
|
|
55
|
-
*/
|
|
56
|
-
exports: T;
|
|
57
|
-
/**
|
|
58
|
-
* Execution time in ms.
|
|
59
|
-
*/
|
|
60
|
-
executionTime: number;
|
|
61
|
-
/**
|
|
62
|
-
* Console output captured during execution.
|
|
63
|
-
*/
|
|
64
|
-
consoleOutput?: string[];
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Execute bundled code in a secure enclave-vm sandbox.
|
|
68
|
-
*
|
|
69
|
-
* Provides a sandboxed execution context with:
|
|
70
|
-
* - AST-based code validation (81+ attack vectors blocked)
|
|
71
|
-
* - Timeout enforcement (default 5000ms)
|
|
72
|
-
* - Resource limits (maxIterations)
|
|
73
|
-
* - Six security layers (defense-in-depth)
|
|
74
|
-
*
|
|
75
|
-
* @param code - Bundled JavaScript code
|
|
76
|
-
* @param context - Execution context
|
|
77
|
-
* @returns Execution result with exports
|
|
78
|
-
*
|
|
79
|
-
* @example
|
|
80
|
-
* ```typescript
|
|
81
|
-
* const code = `
|
|
82
|
-
* const React = require('react');
|
|
83
|
-
* function Widget({ data }) {
|
|
84
|
-
* return React.createElement('div', null, data.message);
|
|
85
|
-
* }
|
|
86
|
-
* module.exports = Widget;
|
|
87
|
-
* `;
|
|
88
|
-
*
|
|
89
|
-
* const result = await executeCode(code, {
|
|
90
|
-
* React: require('react'),
|
|
91
|
-
* timeout: 3000,
|
|
92
|
-
* });
|
|
93
|
-
*
|
|
94
|
-
* console.log(result.exports); // Widget function
|
|
95
|
-
* ```
|
|
96
|
-
*/
|
|
97
|
-
export declare function executeCode<T = unknown>(code: string, context?: ExecutionContext): Promise<ExecutionResult<T>>;
|
|
98
|
-
/**
|
|
99
|
-
* Execute bundled code and extract the default export.
|
|
100
|
-
*
|
|
101
|
-
* Convenience wrapper around executeCode that extracts
|
|
102
|
-
* the default export.
|
|
103
|
-
*
|
|
104
|
-
* @param code - Bundled JavaScript code
|
|
105
|
-
* @param context - Execution context
|
|
106
|
-
* @returns Default export from the code
|
|
107
|
-
*/
|
|
108
|
-
export declare function executeDefault<T = unknown>(code: string, context?: ExecutionContext): Promise<T>;
|
|
109
|
-
/**
|
|
110
|
-
* Error thrown during code execution.
|
|
111
|
-
*/
|
|
112
|
-
export declare class ExecutionError extends Error {
|
|
113
|
-
/** Error code for categorization */
|
|
114
|
-
code?: string;
|
|
115
|
-
constructor(message: string, cause?: unknown);
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Check if an error is an ExecutionError.
|
|
119
|
-
*/
|
|
120
|
-
export declare function isExecutionError(error: unknown): error is ExecutionError;
|
|
@@ -1,339 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Enclave-VM Secure Code Executor
|
|
4
|
-
*
|
|
5
|
-
* Executes bundled code in a secure sandbox using enclave-vm.
|
|
6
|
-
* Provides defense-in-depth security with:
|
|
7
|
-
* - AST-based validation (81+ blocked attack vectors)
|
|
8
|
-
* - Timeout enforcement (default 5000ms)
|
|
9
|
-
* - Resource limits (maxIterations, maxToolCalls)
|
|
10
|
-
* - Six security layers
|
|
11
|
-
*
|
|
12
|
-
* @packageDocumentation
|
|
13
|
-
*/
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.ExecutionError = void 0;
|
|
16
|
-
exports.executeCode = executeCode;
|
|
17
|
-
exports.executeDefault = executeDefault;
|
|
18
|
-
exports.isExecutionError = isExecutionError;
|
|
19
|
-
const enclave_vm_1 = require("enclave-vm");
|
|
20
|
-
/**
|
|
21
|
-
* Default enclave options for secure widget execution.
|
|
22
|
-
*/
|
|
23
|
-
const DEFAULT_ENCLAVE_OPTIONS = {
|
|
24
|
-
securityLevel: 'SECURE',
|
|
25
|
-
timeout: 5000,
|
|
26
|
-
maxIterations: 10000,
|
|
27
|
-
validate: true,
|
|
28
|
-
transform: true,
|
|
29
|
-
};
|
|
30
|
-
/**
|
|
31
|
-
* Threshold of blocked imports that triggers STRICT security level.
|
|
32
|
-
* When a SecurityPolicy blocks more than this many imports, we escalate to STRICT.
|
|
33
|
-
*/
|
|
34
|
-
const STRICT_SECURITY_BLOCKED_IMPORTS_THRESHOLD = 10;
|
|
35
|
-
/**
|
|
36
|
-
* Map SecurityPolicy to enclave-vm security level.
|
|
37
|
-
*/
|
|
38
|
-
function mapSecurityLevel(policy) {
|
|
39
|
-
// If policy has specific blockedImports or restrictive settings, use STRICT
|
|
40
|
-
if (policy?.blockedImports && policy.blockedImports.length > STRICT_SECURITY_BLOCKED_IMPORTS_THRESHOLD) {
|
|
41
|
-
return 'STRICT';
|
|
42
|
-
}
|
|
43
|
-
// Default to SECURE for widget code
|
|
44
|
-
return 'SECURE';
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Create a minimal JSX runtime from React.
|
|
48
|
-
*/
|
|
49
|
-
function createJSXRuntime(React) {
|
|
50
|
-
const R = React;
|
|
51
|
-
return {
|
|
52
|
-
jsx: (type, props, key) => {
|
|
53
|
-
const { children, ...rest } = props;
|
|
54
|
-
return R.createElement(type, key ? { ...rest, key } : rest, children);
|
|
55
|
-
},
|
|
56
|
-
jsxs: (type, props, key) => {
|
|
57
|
-
const { children, ...rest } = props;
|
|
58
|
-
return R.createElement(type, key ? { ...rest, key } : rest, children);
|
|
59
|
-
},
|
|
60
|
-
jsxDEV: (type, props, key, _isStaticChildren, _source, _self) => {
|
|
61
|
-
const { children, ...rest } = props;
|
|
62
|
-
return R.createElement(type, key ? { ...rest, key } : rest, children);
|
|
63
|
-
},
|
|
64
|
-
Fragment: R.Fragment,
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Dangerous global keys that should never be injected from user context.
|
|
69
|
-
* These could potentially bypass enclave security if allowed.
|
|
70
|
-
*/
|
|
71
|
-
const DANGEROUS_GLOBAL_KEYS = new Set([
|
|
72
|
-
'process',
|
|
73
|
-
'require',
|
|
74
|
-
'__dirname',
|
|
75
|
-
'__filename',
|
|
76
|
-
'Buffer',
|
|
77
|
-
'eval',
|
|
78
|
-
'Function',
|
|
79
|
-
'constructor',
|
|
80
|
-
'global',
|
|
81
|
-
'globalThis',
|
|
82
|
-
'module',
|
|
83
|
-
'exports',
|
|
84
|
-
'__proto__',
|
|
85
|
-
]);
|
|
86
|
-
/**
|
|
87
|
-
* Sanitize a key for use as a global variable name.
|
|
88
|
-
* Replaces non-alphanumeric characters (except _ and $) with underscores.
|
|
89
|
-
*/
|
|
90
|
-
function sanitizeGlobalKey(key) {
|
|
91
|
-
return key.replace(/[^a-zA-Z0-9_$]/g, '_');
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Build globals object from execution context.
|
|
95
|
-
*/
|
|
96
|
-
function buildGlobals(context) {
|
|
97
|
-
const globals = {};
|
|
98
|
-
// Add React and ReactDOM if provided
|
|
99
|
-
if (context.React) {
|
|
100
|
-
globals['React'] = context.React;
|
|
101
|
-
}
|
|
102
|
-
if (context.ReactDOM) {
|
|
103
|
-
globals['ReactDOM'] = context.ReactDOM;
|
|
104
|
-
}
|
|
105
|
-
// Add JSX runtime if React is available
|
|
106
|
-
if (context.React) {
|
|
107
|
-
const jsxRuntime = createJSXRuntime(context.React);
|
|
108
|
-
globals['__jsx'] = jsxRuntime['jsx'];
|
|
109
|
-
globals['__jsxs'] = jsxRuntime['jsxs'];
|
|
110
|
-
globals['__jsxDEV'] = jsxRuntime['jsxDEV'];
|
|
111
|
-
globals['Fragment'] = jsxRuntime['Fragment'];
|
|
112
|
-
}
|
|
113
|
-
// Add modules as globals (enclave-vm handles require internally)
|
|
114
|
-
if (context.modules) {
|
|
115
|
-
for (const [key, value] of Object.entries(context.modules)) {
|
|
116
|
-
// Sanitize key and make modules accessible as globals
|
|
117
|
-
const sanitizedKey = sanitizeGlobalKey(key);
|
|
118
|
-
if (DANGEROUS_GLOBAL_KEYS.has(sanitizedKey)) {
|
|
119
|
-
throw new ExecutionError(`Dangerous module key '${key}' (sanitized: '${sanitizedKey}') is not allowed in execution context`, { code: 'SECURITY_VIOLATION' });
|
|
120
|
-
}
|
|
121
|
-
globals[sanitizedKey] = value;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
// Add user globals with security filtering
|
|
125
|
-
if (context.globals) {
|
|
126
|
-
for (const [key, value] of Object.entries(context.globals)) {
|
|
127
|
-
// Check for dangerous keys (both original and sanitized)
|
|
128
|
-
if (DANGEROUS_GLOBAL_KEYS.has(key)) {
|
|
129
|
-
throw new ExecutionError(`Dangerous global key '${key}' is not allowed in execution context`, {
|
|
130
|
-
code: 'SECURITY_VIOLATION',
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
// Sanitize the key for safe global variable naming
|
|
134
|
-
const sanitizedKey = sanitizeGlobalKey(key);
|
|
135
|
-
if (DANGEROUS_GLOBAL_KEYS.has(sanitizedKey)) {
|
|
136
|
-
throw new ExecutionError(`Dangerous global key '${key}' (sanitized: '${sanitizedKey}') is not allowed in execution context`, { code: 'SECURITY_VIOLATION' });
|
|
137
|
-
}
|
|
138
|
-
globals[sanitizedKey] = value;
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
return globals;
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Build require function for module resolution.
|
|
145
|
-
*/
|
|
146
|
-
function buildRequireFunction(context) {
|
|
147
|
-
// Normalize all context.modules keys to lowercase for consistent lookup
|
|
148
|
-
const normalizedContextModules = {};
|
|
149
|
-
if (context.modules) {
|
|
150
|
-
for (const [key, value] of Object.entries(context.modules)) {
|
|
151
|
-
normalizedContextModules[key.toLowerCase()] = value;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
const modules = {
|
|
155
|
-
react: context.React,
|
|
156
|
-
'react-dom': context.ReactDOM,
|
|
157
|
-
'react/jsx-runtime': context.React ? createJSXRuntime(context.React) : undefined,
|
|
158
|
-
'react/jsx-dev-runtime': context.React ? createJSXRuntime(context.React) : undefined,
|
|
159
|
-
...normalizedContextModules,
|
|
160
|
-
};
|
|
161
|
-
return (id) => {
|
|
162
|
-
const normalizedId = id.toLowerCase();
|
|
163
|
-
if (normalizedId in modules) {
|
|
164
|
-
const mod = modules[normalizedId];
|
|
165
|
-
if (mod === undefined) {
|
|
166
|
-
throw new Error(`Module '${id}' is not available. Did you forget to provide it in the context?`);
|
|
167
|
-
}
|
|
168
|
-
return mod;
|
|
169
|
-
}
|
|
170
|
-
throw new Error(`Module '${id}' is not available in the sandbox environment`);
|
|
171
|
-
};
|
|
172
|
-
}
|
|
173
|
-
/**
|
|
174
|
-
* Execute bundled code in a secure enclave-vm sandbox.
|
|
175
|
-
*
|
|
176
|
-
* Provides a sandboxed execution context with:
|
|
177
|
-
* - AST-based code validation (81+ attack vectors blocked)
|
|
178
|
-
* - Timeout enforcement (default 5000ms)
|
|
179
|
-
* - Resource limits (maxIterations)
|
|
180
|
-
* - Six security layers (defense-in-depth)
|
|
181
|
-
*
|
|
182
|
-
* @param code - Bundled JavaScript code
|
|
183
|
-
* @param context - Execution context
|
|
184
|
-
* @returns Execution result with exports
|
|
185
|
-
*
|
|
186
|
-
* @example
|
|
187
|
-
* ```typescript
|
|
188
|
-
* const code = `
|
|
189
|
-
* const React = require('react');
|
|
190
|
-
* function Widget({ data }) {
|
|
191
|
-
* return React.createElement('div', null, data.message);
|
|
192
|
-
* }
|
|
193
|
-
* module.exports = Widget;
|
|
194
|
-
* `;
|
|
195
|
-
*
|
|
196
|
-
* const result = await executeCode(code, {
|
|
197
|
-
* React: require('react'),
|
|
198
|
-
* timeout: 3000,
|
|
199
|
-
* });
|
|
200
|
-
*
|
|
201
|
-
* console.log(result.exports); // Widget function
|
|
202
|
-
* ```
|
|
203
|
-
*/
|
|
204
|
-
async function executeCode(code, context = {}) {
|
|
205
|
-
const consoleOutput = [];
|
|
206
|
-
// Build globals with console capture
|
|
207
|
-
const globals = buildGlobals(context);
|
|
208
|
-
// Add sandboxed console
|
|
209
|
-
globals['console'] = {
|
|
210
|
-
log: (...args) => {
|
|
211
|
-
consoleOutput.push(args.map(String).join(' '));
|
|
212
|
-
},
|
|
213
|
-
info: (...args) => {
|
|
214
|
-
consoleOutput.push(`[INFO] ${args.map(String).join(' ')}`);
|
|
215
|
-
},
|
|
216
|
-
warn: (...args) => {
|
|
217
|
-
consoleOutput.push(`[WARN] ${args.map(String).join(' ')}`);
|
|
218
|
-
},
|
|
219
|
-
error: (...args) => {
|
|
220
|
-
consoleOutput.push(`[ERROR] ${args.map(String).join(' ')}`);
|
|
221
|
-
},
|
|
222
|
-
debug: (...args) => {
|
|
223
|
-
consoleOutput.push(`[DEBUG] ${args.map(String).join(' ')}`);
|
|
224
|
-
},
|
|
225
|
-
trace: () => { },
|
|
226
|
-
dir: () => { },
|
|
227
|
-
table: () => { },
|
|
228
|
-
group: () => { },
|
|
229
|
-
groupEnd: () => { },
|
|
230
|
-
time: () => { },
|
|
231
|
-
timeEnd: () => { },
|
|
232
|
-
assert: () => { },
|
|
233
|
-
clear: () => { },
|
|
234
|
-
count: () => { },
|
|
235
|
-
countReset: () => { },
|
|
236
|
-
};
|
|
237
|
-
// Add require function
|
|
238
|
-
globals['require'] = buildRequireFunction(context);
|
|
239
|
-
// Create enclave with options
|
|
240
|
-
const enclave = new enclave_vm_1.Enclave({
|
|
241
|
-
...DEFAULT_ENCLAVE_OPTIONS,
|
|
242
|
-
timeout: context.timeout ?? DEFAULT_ENCLAVE_OPTIONS.timeout,
|
|
243
|
-
maxIterations: context.maxIterations ?? DEFAULT_ENCLAVE_OPTIONS.maxIterations,
|
|
244
|
-
securityLevel: mapSecurityLevel(context.security),
|
|
245
|
-
globals,
|
|
246
|
-
allowFunctionsInGlobals: true, // Required for React components
|
|
247
|
-
});
|
|
248
|
-
try {
|
|
249
|
-
// Wrap code in module pattern to match CommonJS behavior
|
|
250
|
-
const wrappedCode = `
|
|
251
|
-
const module = { exports: {} };
|
|
252
|
-
const exports = module.exports;
|
|
253
|
-
const __filename = 'widget.js';
|
|
254
|
-
const __dirname = '/';
|
|
255
|
-
${code}
|
|
256
|
-
return module.exports;
|
|
257
|
-
`;
|
|
258
|
-
const result = await enclave.run(wrappedCode);
|
|
259
|
-
if (!result.success) {
|
|
260
|
-
const errorMessage = result.error?.message ?? 'Execution failed';
|
|
261
|
-
const errorCode = result.error?.code;
|
|
262
|
-
// Map enclave error codes to descriptive messages
|
|
263
|
-
if (errorCode === 'TIMEOUT') {
|
|
264
|
-
throw new ExecutionError(`Execution timed out after ${context.timeout ?? DEFAULT_ENCLAVE_OPTIONS.timeout}ms`, {
|
|
265
|
-
code: 'TIMEOUT',
|
|
266
|
-
});
|
|
267
|
-
}
|
|
268
|
-
if (errorCode === 'MAX_ITERATIONS') {
|
|
269
|
-
throw new ExecutionError(`Maximum iterations exceeded (${context.maxIterations ?? DEFAULT_ENCLAVE_OPTIONS.maxIterations})`, {
|
|
270
|
-
code: 'MAX_ITERATIONS',
|
|
271
|
-
});
|
|
272
|
-
}
|
|
273
|
-
if (errorCode === 'VALIDATION_ERROR') {
|
|
274
|
-
throw new ExecutionError(`Security validation failed: ${errorMessage}`, { code: 'SECURITY_VIOLATION' });
|
|
275
|
-
}
|
|
276
|
-
throw new ExecutionError(errorMessage, result.error);
|
|
277
|
-
}
|
|
278
|
-
return {
|
|
279
|
-
exports: result.value,
|
|
280
|
-
executionTime: result.stats.duration,
|
|
281
|
-
consoleOutput: consoleOutput.length > 0 ? consoleOutput : undefined,
|
|
282
|
-
};
|
|
283
|
-
}
|
|
284
|
-
finally {
|
|
285
|
-
enclave.dispose();
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
/**
|
|
289
|
-
* Execute bundled code and extract the default export.
|
|
290
|
-
*
|
|
291
|
-
* Convenience wrapper around executeCode that extracts
|
|
292
|
-
* the default export.
|
|
293
|
-
*
|
|
294
|
-
* @param code - Bundled JavaScript code
|
|
295
|
-
* @param context - Execution context
|
|
296
|
-
* @returns Default export from the code
|
|
297
|
-
*/
|
|
298
|
-
async function executeDefault(code, context = {}) {
|
|
299
|
-
const result = await executeCode(code, context);
|
|
300
|
-
// Check for default export
|
|
301
|
-
if ('default' in result.exports) {
|
|
302
|
-
return result.exports.default;
|
|
303
|
-
}
|
|
304
|
-
// Check for named exports
|
|
305
|
-
const exportKeys = Object.keys(result.exports);
|
|
306
|
-
// Handle empty exports - throw error as code should export something
|
|
307
|
-
if (exportKeys.length === 0) {
|
|
308
|
-
throw new ExecutionError('Code did not export any values');
|
|
309
|
-
}
|
|
310
|
-
// If only one named export, return it as the default
|
|
311
|
-
if (exportKeys.length === 1) {
|
|
312
|
-
return result.exports[exportKeys[0]];
|
|
313
|
-
}
|
|
314
|
-
// Multiple exports - return the whole exports object
|
|
315
|
-
return result.exports;
|
|
316
|
-
}
|
|
317
|
-
/**
|
|
318
|
-
* Error thrown during code execution.
|
|
319
|
-
*/
|
|
320
|
-
class ExecutionError extends Error {
|
|
321
|
-
/** Error code for categorization */
|
|
322
|
-
code;
|
|
323
|
-
constructor(message, cause) {
|
|
324
|
-
super(message, { cause });
|
|
325
|
-
this.name = 'ExecutionError';
|
|
326
|
-
// Extract code from cause if present
|
|
327
|
-
if (cause && typeof cause === 'object' && 'code' in cause) {
|
|
328
|
-
this.code = cause.code;
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
exports.ExecutionError = ExecutionError;
|
|
333
|
-
/**
|
|
334
|
-
* Check if an error is an ExecutionError.
|
|
335
|
-
*/
|
|
336
|
-
function isExecutionError(error) {
|
|
337
|
-
return error instanceof ExecutionError;
|
|
338
|
-
}
|
|
339
|
-
//# sourceMappingURL=enclave-adapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"enclave-adapter.js","sourceRoot":"","sources":["../../../../src/bundler/sandbox/enclave-adapter.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Enclave-VM Secure Code Executor\n *\n * Executes bundled code in a secure sandbox using enclave-vm.\n * Provides defense-in-depth security with:\n * - AST-based validation (81+ blocked attack vectors)\n * - Timeout enforcement (default 5000ms)\n * - Resource limits (maxIterations, maxToolCalls)\n * - Six security layers\n *\n * @packageDocumentation\n */\n\nimport { Enclave, type CreateEnclaveOptions, type SecurityLevel } from 'enclave-vm';\nimport type { SecurityPolicy } from '../types';\n\n/**\n * Context for code execution.\n */\nexport interface ExecutionContext {\n /**\n * React module to inject.\n */\n React?: unknown;\n\n /**\n * ReactDOM module to inject.\n */\n ReactDOM?: unknown;\n\n /**\n * Additional modules to inject.\n */\n modules?: Record<string, unknown>;\n\n /**\n * Additional global variables.\n */\n globals?: Record<string, unknown>;\n\n /**\n * Security policy to enforce.\n */\n security?: SecurityPolicy;\n\n /**\n * Execution timeout in milliseconds.\n * @default 5000\n */\n timeout?: number;\n\n /**\n * Maximum loop iterations allowed.\n * @default 10000\n */\n maxIterations?: number;\n}\n\n/**\n * Result of code execution.\n */\nexport interface ExecutionResult<T = unknown> {\n /**\n * Exported value from the code.\n */\n exports: T;\n\n /**\n * Execution time in ms.\n */\n executionTime: number;\n\n /**\n * Console output captured during execution.\n */\n consoleOutput?: string[];\n}\n\n/**\n * Default enclave options for secure widget execution.\n */\nconst DEFAULT_ENCLAVE_OPTIONS: Partial<CreateEnclaveOptions> = {\n securityLevel: 'SECURE',\n timeout: 5000,\n maxIterations: 10000,\n validate: true,\n transform: true,\n};\n\n/**\n * Threshold of blocked imports that triggers STRICT security level.\n * When a SecurityPolicy blocks more than this many imports, we escalate to STRICT.\n */\nconst STRICT_SECURITY_BLOCKED_IMPORTS_THRESHOLD = 10;\n\n/**\n * Map SecurityPolicy to enclave-vm security level.\n */\nfunction mapSecurityLevel(policy?: SecurityPolicy): SecurityLevel {\n // If policy has specific blockedImports or restrictive settings, use STRICT\n if (policy?.blockedImports && policy.blockedImports.length > STRICT_SECURITY_BLOCKED_IMPORTS_THRESHOLD) {\n return 'STRICT';\n }\n // Default to SECURE for widget code\n return 'SECURE';\n}\n\n/**\n * Create a minimal JSX runtime from React.\n */\nfunction createJSXRuntime(React: unknown): Record<string, unknown> {\n const R = React as {\n createElement: (...args: unknown[]) => unknown;\n Fragment: unknown;\n };\n\n return {\n jsx: (type: unknown, props: Record<string, unknown>, key?: string) => {\n const { children, ...rest } = props;\n return R.createElement(type, key ? { ...rest, key } : rest, children);\n },\n jsxs: (type: unknown, props: Record<string, unknown>, key?: string) => {\n const { children, ...rest } = props;\n return R.createElement(type, key ? { ...rest, key } : rest, children);\n },\n jsxDEV: (\n type: unknown,\n props: Record<string, unknown>,\n key: string | undefined,\n _isStaticChildren: boolean,\n _source: unknown,\n _self: unknown,\n ) => {\n const { children, ...rest } = props;\n return R.createElement(type, key ? { ...rest, key } : rest, children);\n },\n Fragment: R.Fragment,\n };\n}\n\n/**\n * Dangerous global keys that should never be injected from user context.\n * These could potentially bypass enclave security if allowed.\n */\nconst DANGEROUS_GLOBAL_KEYS = new Set([\n 'process',\n 'require',\n '__dirname',\n '__filename',\n 'Buffer',\n 'eval',\n 'Function',\n 'constructor',\n 'global',\n 'globalThis',\n 'module',\n 'exports',\n '__proto__',\n]);\n\n/**\n * Sanitize a key for use as a global variable name.\n * Replaces non-alphanumeric characters (except _ and $) with underscores.\n */\nfunction sanitizeGlobalKey(key: string): string {\n return key.replace(/[^a-zA-Z0-9_$]/g, '_');\n}\n\n/**\n * Build globals object from execution context.\n */\nfunction buildGlobals(context: ExecutionContext): Record<string, unknown> {\n const globals: Record<string, unknown> = {};\n\n // Add React and ReactDOM if provided\n if (context.React) {\n globals['React'] = context.React;\n }\n if (context.ReactDOM) {\n globals['ReactDOM'] = context.ReactDOM;\n }\n\n // Add JSX runtime if React is available\n if (context.React) {\n const jsxRuntime = createJSXRuntime(context.React);\n globals['__jsx'] = jsxRuntime['jsx'];\n globals['__jsxs'] = jsxRuntime['jsxs'];\n globals['__jsxDEV'] = jsxRuntime['jsxDEV'];\n globals['Fragment'] = jsxRuntime['Fragment'];\n }\n\n // Add modules as globals (enclave-vm handles require internally)\n if (context.modules) {\n for (const [key, value] of Object.entries(context.modules)) {\n // Sanitize key and make modules accessible as globals\n const sanitizedKey = sanitizeGlobalKey(key);\n if (DANGEROUS_GLOBAL_KEYS.has(sanitizedKey)) {\n throw new ExecutionError(\n `Dangerous module key '${key}' (sanitized: '${sanitizedKey}') is not allowed in execution context`,\n { code: 'SECURITY_VIOLATION' },\n );\n }\n globals[sanitizedKey] = value;\n }\n }\n\n // Add user globals with security filtering\n if (context.globals) {\n for (const [key, value] of Object.entries(context.globals)) {\n // Check for dangerous keys (both original and sanitized)\n if (DANGEROUS_GLOBAL_KEYS.has(key)) {\n throw new ExecutionError(`Dangerous global key '${key}' is not allowed in execution context`, {\n code: 'SECURITY_VIOLATION',\n });\n }\n // Sanitize the key for safe global variable naming\n const sanitizedKey = sanitizeGlobalKey(key);\n if (DANGEROUS_GLOBAL_KEYS.has(sanitizedKey)) {\n throw new ExecutionError(\n `Dangerous global key '${key}' (sanitized: '${sanitizedKey}') is not allowed in execution context`,\n { code: 'SECURITY_VIOLATION' },\n );\n }\n globals[sanitizedKey] = value;\n }\n }\n\n return globals;\n}\n\n/**\n * Build require function for module resolution.\n */\nfunction buildRequireFunction(context: ExecutionContext): (id: string) => unknown {\n // Normalize all context.modules keys to lowercase for consistent lookup\n const normalizedContextModules: Record<string, unknown> = {};\n if (context.modules) {\n for (const [key, value] of Object.entries(context.modules)) {\n normalizedContextModules[key.toLowerCase()] = value;\n }\n }\n\n const modules: Record<string, unknown> = {\n react: context.React,\n 'react-dom': context.ReactDOM,\n 'react/jsx-runtime': context.React ? createJSXRuntime(context.React) : undefined,\n 'react/jsx-dev-runtime': context.React ? createJSXRuntime(context.React) : undefined,\n ...normalizedContextModules,\n };\n\n return (id: string): unknown => {\n const normalizedId = id.toLowerCase();\n\n if (normalizedId in modules) {\n const mod = modules[normalizedId];\n if (mod === undefined) {\n throw new Error(`Module '${id}' is not available. Did you forget to provide it in the context?`);\n }\n return mod;\n }\n\n throw new Error(`Module '${id}' is not available in the sandbox environment`);\n };\n}\n\n/**\n * Execute bundled code in a secure enclave-vm sandbox.\n *\n * Provides a sandboxed execution context with:\n * - AST-based code validation (81+ attack vectors blocked)\n * - Timeout enforcement (default 5000ms)\n * - Resource limits (maxIterations)\n * - Six security layers (defense-in-depth)\n *\n * @param code - Bundled JavaScript code\n * @param context - Execution context\n * @returns Execution result with exports\n *\n * @example\n * ```typescript\n * const code = `\n * const React = require('react');\n * function Widget({ data }) {\n * return React.createElement('div', null, data.message);\n * }\n * module.exports = Widget;\n * `;\n *\n * const result = await executeCode(code, {\n * React: require('react'),\n * timeout: 3000,\n * });\n *\n * console.log(result.exports); // Widget function\n * ```\n */\nexport async function executeCode<T = unknown>(\n code: string,\n context: ExecutionContext = {},\n): Promise<ExecutionResult<T>> {\n const consoleOutput: string[] = [];\n\n // Build globals with console capture\n const globals = buildGlobals(context);\n\n // Add sandboxed console\n globals['console'] = {\n log: (...args: unknown[]) => {\n consoleOutput.push(args.map(String).join(' '));\n },\n info: (...args: unknown[]) => {\n consoleOutput.push(`[INFO] ${args.map(String).join(' ')}`);\n },\n warn: (...args: unknown[]) => {\n consoleOutput.push(`[WARN] ${args.map(String).join(' ')}`);\n },\n error: (...args: unknown[]) => {\n consoleOutput.push(`[ERROR] ${args.map(String).join(' ')}`);\n },\n debug: (...args: unknown[]) => {\n consoleOutput.push(`[DEBUG] ${args.map(String).join(' ')}`);\n },\n trace: () => {},\n dir: () => {},\n table: () => {},\n group: () => {},\n groupEnd: () => {},\n time: () => {},\n timeEnd: () => {},\n assert: () => {},\n clear: () => {},\n count: () => {},\n countReset: () => {},\n };\n\n // Add require function\n globals['require'] = buildRequireFunction(context);\n\n // Create enclave with options\n const enclave = new Enclave({\n ...DEFAULT_ENCLAVE_OPTIONS,\n timeout: context.timeout ?? DEFAULT_ENCLAVE_OPTIONS.timeout,\n maxIterations: context.maxIterations ?? DEFAULT_ENCLAVE_OPTIONS.maxIterations,\n securityLevel: mapSecurityLevel(context.security),\n globals,\n allowFunctionsInGlobals: true, // Required for React components\n });\n\n try {\n // Wrap code in module pattern to match CommonJS behavior\n const wrappedCode = `\n const module = { exports: {} };\n const exports = module.exports;\n const __filename = 'widget.js';\n const __dirname = '/';\n ${code}\n return module.exports;\n `;\n\n const result = await enclave.run<T>(wrappedCode);\n\n if (!result.success) {\n const errorMessage = result.error?.message ?? 'Execution failed';\n const errorCode = result.error?.code;\n\n // Map enclave error codes to descriptive messages\n if (errorCode === 'TIMEOUT') {\n throw new ExecutionError(`Execution timed out after ${context.timeout ?? DEFAULT_ENCLAVE_OPTIONS.timeout}ms`, {\n code: 'TIMEOUT',\n });\n }\n if (errorCode === 'MAX_ITERATIONS') {\n throw new ExecutionError(\n `Maximum iterations exceeded (${context.maxIterations ?? DEFAULT_ENCLAVE_OPTIONS.maxIterations})`,\n {\n code: 'MAX_ITERATIONS',\n },\n );\n }\n if (errorCode === 'VALIDATION_ERROR') {\n throw new ExecutionError(`Security validation failed: ${errorMessage}`, { code: 'SECURITY_VIOLATION' });\n }\n\n throw new ExecutionError(errorMessage, result.error);\n }\n\n return {\n exports: result.value as T,\n executionTime: result.stats.duration,\n consoleOutput: consoleOutput.length > 0 ? consoleOutput : undefined,\n };\n } finally {\n enclave.dispose();\n }\n}\n\n/**\n * Execute bundled code and extract the default export.\n *\n * Convenience wrapper around executeCode that extracts\n * the default export.\n *\n * @param code - Bundled JavaScript code\n * @param context - Execution context\n * @returns Default export from the code\n */\nexport async function executeDefault<T = unknown>(code: string, context: ExecutionContext = {}): Promise<T> {\n const result = await executeCode<{ default?: T } & Record<string, unknown>>(code, context);\n\n // Check for default export\n if ('default' in result.exports) {\n return result.exports.default as T;\n }\n\n // Check for named exports\n const exportKeys = Object.keys(result.exports);\n\n // Handle empty exports - throw error as code should export something\n if (exportKeys.length === 0) {\n throw new ExecutionError('Code did not export any values');\n }\n\n // If only one named export, return it as the default\n if (exportKeys.length === 1) {\n return result.exports[exportKeys[0]] as T;\n }\n\n // Multiple exports - return the whole exports object\n return result.exports as T;\n}\n\n/**\n * Error thrown during code execution.\n */\nexport class ExecutionError extends Error {\n /** Error code for categorization */\n code?: string;\n\n constructor(message: string, cause?: unknown) {\n super(message, { cause });\n this.name = 'ExecutionError';\n\n // Extract code from cause if present\n if (cause && typeof cause === 'object' && 'code' in cause) {\n this.code = (cause as { code: string }).code;\n }\n }\n}\n\n/**\n * Check if an error is an ExecutionError.\n */\nexport function isExecutionError(error: unknown): error is ExecutionError {\n return error instanceof ExecutionError;\n}\n"]}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Secure Code Executor
|
|
3
|
-
*
|
|
4
|
-
* Executes bundled code in a secure sandbox using enclave-vm.
|
|
5
|
-
* Provides defense-in-depth security with:
|
|
6
|
-
* - AST-based validation (81+ blocked attack vectors)
|
|
7
|
-
* - Timeout enforcement (default 5000ms)
|
|
8
|
-
* - Resource limits (maxIterations)
|
|
9
|
-
* - Six security layers
|
|
10
|
-
*
|
|
11
|
-
* @packageDocumentation
|
|
12
|
-
*/
|
|
13
|
-
export { executeCode, executeDefault, ExecutionError, isExecutionError, type ExecutionContext, type ExecutionResult, } from './enclave-adapter';
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Secure Code Executor
|
|
4
|
-
*
|
|
5
|
-
* Executes bundled code in a secure sandbox using enclave-vm.
|
|
6
|
-
* Provides defense-in-depth security with:
|
|
7
|
-
* - AST-based validation (81+ blocked attack vectors)
|
|
8
|
-
* - Timeout enforcement (default 5000ms)
|
|
9
|
-
* - Resource limits (maxIterations)
|
|
10
|
-
* - Six security layers
|
|
11
|
-
*
|
|
12
|
-
* @packageDocumentation
|
|
13
|
-
*/
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.isExecutionError = exports.ExecutionError = exports.executeDefault = exports.executeCode = void 0;
|
|
16
|
-
// Re-export everything from enclave-adapter
|
|
17
|
-
var enclave_adapter_1 = require("./enclave-adapter");
|
|
18
|
-
Object.defineProperty(exports, "executeCode", { enumerable: true, get: function () { return enclave_adapter_1.executeCode; } });
|
|
19
|
-
Object.defineProperty(exports, "executeDefault", { enumerable: true, get: function () { return enclave_adapter_1.executeDefault; } });
|
|
20
|
-
Object.defineProperty(exports, "ExecutionError", { enumerable: true, get: function () { return enclave_adapter_1.ExecutionError; } });
|
|
21
|
-
Object.defineProperty(exports, "isExecutionError", { enumerable: true, get: function () { return enclave_adapter_1.isExecutionError; } });
|
|
22
|
-
//# sourceMappingURL=executor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../src/bundler/sandbox/executor.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAEH,4CAA4C;AAC5C,qDAO2B;AANzB,8GAAA,WAAW,OAAA;AACX,iHAAA,cAAc,OAAA;AACd,iHAAA,cAAc,OAAA;AACd,mHAAA,gBAAgB,OAAA","sourcesContent":["/**\n * Secure Code Executor\n *\n * Executes bundled code in a secure sandbox using enclave-vm.\n * Provides defense-in-depth security with:\n * - AST-based validation (81+ blocked attack vectors)\n * - Timeout enforcement (default 5000ms)\n * - Resource limits (maxIterations)\n * - Six security layers\n *\n * @packageDocumentation\n */\n\n// Re-export everything from enclave-adapter\nexport {\n executeCode,\n executeDefault,\n ExecutionError,\n isExecutionError,\n type ExecutionContext,\n type ExecutionResult,\n} from './enclave-adapter';\n"]}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Sandbox Security Policy
|
|
3
|
-
*
|
|
4
|
-
* Defines and validates security policies for bundler execution.
|
|
5
|
-
*
|
|
6
|
-
* @packageDocumentation
|
|
7
|
-
*/
|
|
8
|
-
import type { SecurityPolicy, SecurityViolation } from '../types';
|
|
9
|
-
/**
|
|
10
|
-
* Validate source code against a security policy.
|
|
11
|
-
*
|
|
12
|
-
* @param source - Source code to validate
|
|
13
|
-
* @param policy - Security policy to enforce
|
|
14
|
-
* @returns Array of security violations (empty if valid)
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```typescript
|
|
18
|
-
* const violations = validateSource(code, DEFAULT_SECURITY_POLICY);
|
|
19
|
-
* if (violations.length > 0) {
|
|
20
|
-
* throw new Error(`Security violations: ${violations.map(v => v.message).join(', ')}`);
|
|
21
|
-
* }
|
|
22
|
-
* ```
|
|
23
|
-
*/
|
|
24
|
-
export declare function validateSource(source: string, policy?: SecurityPolicy): SecurityViolation[];
|
|
25
|
-
/**
|
|
26
|
-
* Validate import statements against policy.
|
|
27
|
-
*
|
|
28
|
-
* @param source - Source code to check
|
|
29
|
-
* @param policy - Security policy
|
|
30
|
-
* @returns Array of import violations
|
|
31
|
-
*/
|
|
32
|
-
export declare function validateImports(source: string, policy?: SecurityPolicy): SecurityViolation[];
|
|
33
|
-
/**
|
|
34
|
-
* Validate bundle size against policy.
|
|
35
|
-
*
|
|
36
|
-
* @param size - Bundle size in bytes
|
|
37
|
-
* @param policy - Security policy
|
|
38
|
-
* @returns Violation if size exceeds limit, undefined otherwise
|
|
39
|
-
*/
|
|
40
|
-
export declare function validateSize(size: number, policy?: SecurityPolicy): SecurityViolation | undefined;
|
|
41
|
-
/**
|
|
42
|
-
* Create a merged security policy with defaults.
|
|
43
|
-
*
|
|
44
|
-
* @param userPolicy - User-provided policy overrides
|
|
45
|
-
* @returns Merged policy with defaults
|
|
46
|
-
*/
|
|
47
|
-
export declare function mergePolicy(userPolicy?: Partial<SecurityPolicy>): SecurityPolicy;
|
|
48
|
-
/**
|
|
49
|
-
* Security error thrown when policy is violated.
|
|
50
|
-
*/
|
|
51
|
-
export declare class SecurityError extends Error {
|
|
52
|
-
readonly violations: SecurityViolation[];
|
|
53
|
-
constructor(message: string, violations: SecurityViolation[]);
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Throw if any violations exist.
|
|
57
|
-
*
|
|
58
|
-
* @param violations - Array of violations to check
|
|
59
|
-
* @throws SecurityError if violations exist
|
|
60
|
-
*/
|
|
61
|
-
export declare function throwOnViolations(violations: SecurityViolation[]): void;
|