@frontmcp/ui 0.5.1 → 0.6.1
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/README.md +140 -362
- 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 +10 -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/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 +3707 -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 +2525 -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/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 +10 -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/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 +3640 -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 +2396 -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/index.d.ts +40 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +8326 -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 +409 -0
- package/esm/layouts/presets.d.ts +134 -0
- package/esm/layouts/presets.d.ts.map +1 -0
- package/esm/package.json +72 -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 +1036 -0
- package/esm/react/Alert.d.ts +101 -0
- package/esm/react/Alert.d.ts.map +1 -0
- package/esm/react/Badge.d.ts +100 -0
- package/esm/react/Badge.d.ts.map +1 -0
- package/esm/react/Button.d.ts +108 -0
- package/esm/react/Button.d.ts.map +1 -0
- package/esm/react/Card.d.ts +103 -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 +80 -0
- package/esm/react/index.d.ts.map +1 -0
- package/esm/react/index.js +3124 -0
- package/esm/react/types.d.ts +105 -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/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/index.d.ts +21 -0
- package/esm/renderers/index.d.ts.map +1 -0
- package/esm/renderers/index.js +381 -0
- package/esm/renderers/react.adapter.d.ts +70 -0
- package/esm/renderers/react.adapter.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/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/index.js +1755 -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/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 +1993 -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 +883 -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/index.d.ts +40 -0
- package/index.d.ts.map +1 -0
- package/index.js +8526 -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 +437 -0
- package/layouts/presets.d.ts +134 -0
- package/layouts/presets.d.ts.map +1 -0
- package/package.json +33 -110
- 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 +1065 -0
- package/react/Alert.d.ts +101 -0
- package/react/Alert.d.ts.map +1 -0
- package/react/Badge.d.ts +100 -0
- package/react/Badge.d.ts.map +1 -0
- package/react/Button.d.ts +108 -0
- package/react/Button.d.ts.map +1 -0
- package/react/Card.d.ts +103 -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 +80 -0
- package/react/index.d.ts.map +1 -0
- package/react/index.js +3160 -0
- package/react/types.d.ts +105 -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/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/index.d.ts +21 -0
- package/renderers/index.d.ts.map +1 -0
- package/renderers/index.js +416 -0
- package/renderers/react.adapter.d.ts +70 -0
- package/renderers/react.adapter.d.ts.map +1 -0
- package/renderers/react.renderer.d.ts +96 -0
- package/renderers/react.renderer.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/index.js +1841 -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/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 +2028 -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 +910 -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,194 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* OpenAI Platform Adapter
|
|
4
|
-
*
|
|
5
|
-
* Adapter for OpenAI's ChatGPT Apps SDK.
|
|
6
|
-
* Provides full widget functionality including tool calls, messaging,
|
|
7
|
-
* and display mode changes via the window.openai API.
|
|
8
|
-
*
|
|
9
|
-
* @packageDocumentation
|
|
10
|
-
*/
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.OpenAIAdapter = void 0;
|
|
13
|
-
exports.createOpenAIAdapter = createOpenAIAdapter;
|
|
14
|
-
const base_adapter_1 = require("./base-adapter");
|
|
15
|
-
/**
|
|
16
|
-
* OpenAI Apps SDK adapter.
|
|
17
|
-
*
|
|
18
|
-
* Detects the presence of `window.openai` and proxies all operations
|
|
19
|
-
* through the ChatGPT Apps SDK.
|
|
20
|
-
*
|
|
21
|
-
* @example
|
|
22
|
-
* ```typescript
|
|
23
|
-
* import { OpenAIAdapter } from '@frontmcp/ui/bridge';
|
|
24
|
-
*
|
|
25
|
-
* const adapter = new OpenAIAdapter();
|
|
26
|
-
* if (adapter.canHandle()) {
|
|
27
|
-
* await adapter.initialize();
|
|
28
|
-
* const theme = adapter.getTheme();
|
|
29
|
-
* }
|
|
30
|
-
* ```
|
|
31
|
-
*/
|
|
32
|
-
class OpenAIAdapter extends base_adapter_1.BaseAdapter {
|
|
33
|
-
id = 'openai';
|
|
34
|
-
name = 'OpenAI ChatGPT';
|
|
35
|
-
priority = 100; // Highest priority
|
|
36
|
-
_openai;
|
|
37
|
-
_unsubscribeContext;
|
|
38
|
-
_unsubscribeToolResult;
|
|
39
|
-
constructor() {
|
|
40
|
-
super();
|
|
41
|
-
this._capabilities = {
|
|
42
|
-
...base_adapter_1.DEFAULT_CAPABILITIES,
|
|
43
|
-
canCallTools: true,
|
|
44
|
-
canSendMessages: true,
|
|
45
|
-
canOpenLinks: true,
|
|
46
|
-
canPersistState: true,
|
|
47
|
-
hasNetworkAccess: true,
|
|
48
|
-
supportsDisplayModes: true,
|
|
49
|
-
supportsTheme: true,
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Check if OpenAI Apps SDK is available.
|
|
54
|
-
*/
|
|
55
|
-
canHandle() {
|
|
56
|
-
if (typeof window === 'undefined')
|
|
57
|
-
return false;
|
|
58
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
59
|
-
const win = window;
|
|
60
|
-
return Boolean(win.openai?.canvas);
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Initialize the OpenAI adapter.
|
|
64
|
-
*/
|
|
65
|
-
async initialize() {
|
|
66
|
-
if (this._initialized)
|
|
67
|
-
return;
|
|
68
|
-
// Get OpenAI SDK reference
|
|
69
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
70
|
-
this._openai = window.openai;
|
|
71
|
-
// Call base initialization (loads widget state, reads injected data)
|
|
72
|
-
await super.initialize();
|
|
73
|
-
// Get initial context from OpenAI SDK
|
|
74
|
-
this._syncContextFromSDK();
|
|
75
|
-
// Subscribe to context changes
|
|
76
|
-
if (this._openai?.canvas?.onContextChange) {
|
|
77
|
-
this._unsubscribeContext = this._openai.canvas.onContextChange((changes) => {
|
|
78
|
-
this._notifyContextChange(changes);
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
// Subscribe to tool results if available
|
|
82
|
-
if (this._openai?.canvas?.onToolResult) {
|
|
83
|
-
this._unsubscribeToolResult = this._openai.canvas.onToolResult((result) => {
|
|
84
|
-
this._notifyToolResult(result);
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Dispose adapter resources.
|
|
90
|
-
*/
|
|
91
|
-
dispose() {
|
|
92
|
-
if (this._unsubscribeContext) {
|
|
93
|
-
this._unsubscribeContext();
|
|
94
|
-
this._unsubscribeContext = undefined;
|
|
95
|
-
}
|
|
96
|
-
if (this._unsubscribeToolResult) {
|
|
97
|
-
this._unsubscribeToolResult();
|
|
98
|
-
this._unsubscribeToolResult = undefined;
|
|
99
|
-
}
|
|
100
|
-
this._openai = undefined;
|
|
101
|
-
super.dispose();
|
|
102
|
-
}
|
|
103
|
-
// ============================================
|
|
104
|
-
// Data Access (override with SDK calls)
|
|
105
|
-
// ============================================
|
|
106
|
-
getTheme() {
|
|
107
|
-
if (this._openai?.canvas?.getTheme) {
|
|
108
|
-
const theme = this._openai.canvas.getTheme();
|
|
109
|
-
return theme === 'dark' ? 'dark' : 'light';
|
|
110
|
-
}
|
|
111
|
-
return super.getTheme();
|
|
112
|
-
}
|
|
113
|
-
getDisplayMode() {
|
|
114
|
-
if (this._openai?.canvas?.getDisplayMode) {
|
|
115
|
-
const mode = this._openai.canvas.getDisplayMode();
|
|
116
|
-
if (mode === 'fullscreen' || mode === 'pip' || mode === 'carousel') {
|
|
117
|
-
return mode;
|
|
118
|
-
}
|
|
119
|
-
return 'inline';
|
|
120
|
-
}
|
|
121
|
-
return super.getDisplayMode();
|
|
122
|
-
}
|
|
123
|
-
// ============================================
|
|
124
|
-
// Actions (proxy to SDK)
|
|
125
|
-
// ============================================
|
|
126
|
-
async callTool(name, args) {
|
|
127
|
-
if (!this._openai?.canvas?.callServerTool) {
|
|
128
|
-
throw new Error('callServerTool not available in OpenAI SDK');
|
|
129
|
-
}
|
|
130
|
-
return this._openai.canvas.callServerTool(name, args);
|
|
131
|
-
}
|
|
132
|
-
async sendMessage(content) {
|
|
133
|
-
if (!this._openai?.canvas?.sendMessage) {
|
|
134
|
-
throw new Error('sendMessage not available in OpenAI SDK');
|
|
135
|
-
}
|
|
136
|
-
await this._openai.canvas.sendMessage(content);
|
|
137
|
-
}
|
|
138
|
-
async openLink(url) {
|
|
139
|
-
if (!this._openai?.canvas?.openLink) {
|
|
140
|
-
// Fallback to window.open
|
|
141
|
-
return super.openLink(url);
|
|
142
|
-
}
|
|
143
|
-
await this._openai.canvas.openLink(url);
|
|
144
|
-
}
|
|
145
|
-
async requestDisplayMode(mode) {
|
|
146
|
-
if (!this._openai?.canvas?.setDisplayMode) {
|
|
147
|
-
return super.requestDisplayMode(mode);
|
|
148
|
-
}
|
|
149
|
-
await this._openai.canvas.setDisplayMode(mode);
|
|
150
|
-
this._hostContext = { ...this._hostContext, displayMode: mode };
|
|
151
|
-
}
|
|
152
|
-
async requestClose() {
|
|
153
|
-
if (this._openai?.canvas?.close) {
|
|
154
|
-
await this._openai.canvas.close();
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
// ============================================
|
|
158
|
-
// Private Helpers
|
|
159
|
-
// ============================================
|
|
160
|
-
/**
|
|
161
|
-
* Sync context from OpenAI SDK.
|
|
162
|
-
*/
|
|
163
|
-
_syncContextFromSDK() {
|
|
164
|
-
if (!this._openai?.canvas)
|
|
165
|
-
return;
|
|
166
|
-
// Update theme
|
|
167
|
-
if (this._openai.canvas.getTheme) {
|
|
168
|
-
const theme = this._openai.canvas.getTheme();
|
|
169
|
-
this._hostContext.theme = theme === 'dark' ? 'dark' : 'light';
|
|
170
|
-
}
|
|
171
|
-
// Update display mode
|
|
172
|
-
if (this._openai.canvas.getDisplayMode) {
|
|
173
|
-
const mode = this._openai.canvas.getDisplayMode();
|
|
174
|
-
if (mode === 'fullscreen' || mode === 'pip' || mode === 'carousel' || mode === 'inline') {
|
|
175
|
-
this._hostContext.displayMode = mode;
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
// Get full context if available
|
|
179
|
-
if (this._openai.canvas.getContext) {
|
|
180
|
-
const ctx = this._openai.canvas.getContext();
|
|
181
|
-
if (ctx) {
|
|
182
|
-
this._hostContext = { ...this._hostContext, ...ctx };
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
exports.OpenAIAdapter = OpenAIAdapter;
|
|
188
|
-
/**
|
|
189
|
-
* Factory function for creating OpenAI adapter instances.
|
|
190
|
-
*/
|
|
191
|
-
function createOpenAIAdapter() {
|
|
192
|
-
return new OpenAIAdapter();
|
|
193
|
-
}
|
|
194
|
-
//# sourceMappingURL=openai.adapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai.adapter.js","sourceRoot":"","sources":["../../../../src/bridge/adapters/openai.adapter.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * OpenAI Platform Adapter\n *\n * Adapter for OpenAI's ChatGPT Apps SDK.\n * Provides full widget functionality including tool calls, messaging,\n * and display mode changes via the window.openai API.\n *\n * @packageDocumentation\n */\n\nimport type { DisplayMode, HostContext } from '../types';\nimport { BaseAdapter, DEFAULT_CAPABILITIES } from './base-adapter';\n\n/**\n * OpenAI SDK global interface (simplified type).\n */\ninterface OpenAISDK {\n canvas?: {\n getTheme(): string;\n getDisplayMode(): string;\n setDisplayMode(mode: string): Promise<void>;\n sendMessage(text: string): Promise<void>;\n openLink(url: string): Promise<void>;\n callServerTool(name: string, args: Record<string, unknown>): Promise<unknown>;\n onContextChange(callback: (context: Partial<HostContext>) => void): () => void;\n onToolResult?(callback: (result: unknown) => void): () => void;\n close(): Promise<void>;\n getContext?(): Partial<HostContext>;\n };\n}\n\n/**\n * OpenAI Apps SDK adapter.\n *\n * Detects the presence of `window.openai` and proxies all operations\n * through the ChatGPT Apps SDK.\n *\n * @example\n * ```typescript\n * import { OpenAIAdapter } from '@frontmcp/ui/bridge';\n *\n * const adapter = new OpenAIAdapter();\n * if (adapter.canHandle()) {\n * await adapter.initialize();\n * const theme = adapter.getTheme();\n * }\n * ```\n */\nexport class OpenAIAdapter extends BaseAdapter {\n readonly id = 'openai';\n readonly name = 'OpenAI ChatGPT';\n readonly priority = 100; // Highest priority\n\n private _openai: OpenAISDK | undefined;\n private _unsubscribeContext: (() => void) | undefined;\n private _unsubscribeToolResult: (() => void) | undefined;\n\n constructor() {\n super();\n this._capabilities = {\n ...DEFAULT_CAPABILITIES,\n canCallTools: true,\n canSendMessages: true,\n canOpenLinks: true,\n canPersistState: true,\n hasNetworkAccess: true,\n supportsDisplayModes: true,\n supportsTheme: true,\n };\n }\n\n /**\n * Check if OpenAI Apps SDK is available.\n */\n canHandle(): boolean {\n if (typeof window === 'undefined') return false;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const win = window as any;\n return Boolean(win.openai?.canvas);\n }\n\n /**\n * Initialize the OpenAI adapter.\n */\n override async initialize(): Promise<void> {\n if (this._initialized) return;\n\n // Get OpenAI SDK reference\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this._openai = (window as any).openai as OpenAISDK;\n\n // Call base initialization (loads widget state, reads injected data)\n await super.initialize();\n\n // Get initial context from OpenAI SDK\n this._syncContextFromSDK();\n\n // Subscribe to context changes\n if (this._openai?.canvas?.onContextChange) {\n this._unsubscribeContext = this._openai.canvas.onContextChange((changes) => {\n this._notifyContextChange(changes);\n });\n }\n\n // Subscribe to tool results if available\n if (this._openai?.canvas?.onToolResult) {\n this._unsubscribeToolResult = this._openai.canvas.onToolResult((result) => {\n this._notifyToolResult(result);\n });\n }\n }\n\n /**\n * Dispose adapter resources.\n */\n override dispose(): void {\n if (this._unsubscribeContext) {\n this._unsubscribeContext();\n this._unsubscribeContext = undefined;\n }\n if (this._unsubscribeToolResult) {\n this._unsubscribeToolResult();\n this._unsubscribeToolResult = undefined;\n }\n this._openai = undefined;\n super.dispose();\n }\n\n // ============================================\n // Data Access (override with SDK calls)\n // ============================================\n\n override getTheme(): 'light' | 'dark' {\n if (this._openai?.canvas?.getTheme) {\n const theme = this._openai.canvas.getTheme();\n return theme === 'dark' ? 'dark' : 'light';\n }\n return super.getTheme();\n }\n\n override getDisplayMode(): DisplayMode {\n if (this._openai?.canvas?.getDisplayMode) {\n const mode = this._openai.canvas.getDisplayMode();\n if (mode === 'fullscreen' || mode === 'pip' || mode === 'carousel') {\n return mode;\n }\n return 'inline';\n }\n return super.getDisplayMode();\n }\n\n // ============================================\n // Actions (proxy to SDK)\n // ============================================\n\n override async callTool(name: string, args: Record<string, unknown>): Promise<unknown> {\n if (!this._openai?.canvas?.callServerTool) {\n throw new Error('callServerTool not available in OpenAI SDK');\n }\n return this._openai.canvas.callServerTool(name, args);\n }\n\n override async sendMessage(content: string): Promise<void> {\n if (!this._openai?.canvas?.sendMessage) {\n throw new Error('sendMessage not available in OpenAI SDK');\n }\n await this._openai.canvas.sendMessage(content);\n }\n\n override async openLink(url: string): Promise<void> {\n if (!this._openai?.canvas?.openLink) {\n // Fallback to window.open\n return super.openLink(url);\n }\n await this._openai.canvas.openLink(url);\n }\n\n override async requestDisplayMode(mode: DisplayMode): Promise<void> {\n if (!this._openai?.canvas?.setDisplayMode) {\n return super.requestDisplayMode(mode);\n }\n await this._openai.canvas.setDisplayMode(mode);\n this._hostContext = { ...this._hostContext, displayMode: mode };\n }\n\n override async requestClose(): Promise<void> {\n if (this._openai?.canvas?.close) {\n await this._openai.canvas.close();\n }\n }\n\n // ============================================\n // Private Helpers\n // ============================================\n\n /**\n * Sync context from OpenAI SDK.\n */\n private _syncContextFromSDK(): void {\n if (!this._openai?.canvas) return;\n\n // Update theme\n if (this._openai.canvas.getTheme) {\n const theme = this._openai.canvas.getTheme();\n this._hostContext.theme = theme === 'dark' ? 'dark' : 'light';\n }\n\n // Update display mode\n if (this._openai.canvas.getDisplayMode) {\n const mode = this._openai.canvas.getDisplayMode();\n if (mode === 'fullscreen' || mode === 'pip' || mode === 'carousel' || mode === 'inline') {\n this._hostContext.displayMode = mode;\n }\n }\n\n // Get full context if available\n if (this._openai.canvas.getContext) {\n const ctx = this._openai.canvas.getContext();\n if (ctx) {\n this._hostContext = { ...this._hostContext, ...ctx };\n }\n }\n }\n}\n\n/**\n * Factory function for creating OpenAI adapter instances.\n */\nexport function createOpenAIAdapter(): OpenAIAdapter {\n return new OpenAIAdapter();\n}\n"]}
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Adapter Registry
|
|
3
|
-
*
|
|
4
|
-
* Manages platform adapter registration and auto-detection.
|
|
5
|
-
* Adapters are registered with priorities and selected based on
|
|
6
|
-
* environment detection during initialization.
|
|
7
|
-
*
|
|
8
|
-
* @packageDocumentation
|
|
9
|
-
*/
|
|
10
|
-
import type { PlatformAdapter, AdapterFactory, AdapterConfig } from '../types';
|
|
11
|
-
/**
|
|
12
|
-
* Registry for managing platform adapters.
|
|
13
|
-
* Handles registration, retrieval, and auto-detection of adapters.
|
|
14
|
-
*/
|
|
15
|
-
export declare class AdapterRegistry {
|
|
16
|
-
private _adapters;
|
|
17
|
-
private _disabledAdapters;
|
|
18
|
-
private _adapterConfigs;
|
|
19
|
-
private _debug;
|
|
20
|
-
/**
|
|
21
|
-
* Enable or disable debug logging.
|
|
22
|
-
*/
|
|
23
|
-
setDebug(enabled: boolean): void;
|
|
24
|
-
/**
|
|
25
|
-
* Register an adapter factory with the registry.
|
|
26
|
-
* @param id - Unique adapter identifier
|
|
27
|
-
* @param factory - Factory function that creates the adapter
|
|
28
|
-
* @param defaultConfig - Optional default configuration
|
|
29
|
-
*/
|
|
30
|
-
register(id: string, factory: AdapterFactory, defaultConfig?: AdapterConfig): void;
|
|
31
|
-
/**
|
|
32
|
-
* Unregister an adapter from the registry.
|
|
33
|
-
* @param id - Adapter identifier to remove
|
|
34
|
-
*/
|
|
35
|
-
unregister(id: string): boolean;
|
|
36
|
-
/**
|
|
37
|
-
* Check if an adapter is registered.
|
|
38
|
-
* @param id - Adapter identifier
|
|
39
|
-
*/
|
|
40
|
-
has(id: string): boolean;
|
|
41
|
-
/**
|
|
42
|
-
* Get all registered adapter IDs.
|
|
43
|
-
*/
|
|
44
|
-
getRegisteredIds(): string[];
|
|
45
|
-
/**
|
|
46
|
-
* Disable specific adapters (they won't be selected during auto-detection).
|
|
47
|
-
* @param ids - Adapter IDs to disable
|
|
48
|
-
*/
|
|
49
|
-
disable(...ids: string[]): void;
|
|
50
|
-
/**
|
|
51
|
-
* Enable previously disabled adapters.
|
|
52
|
-
* @param ids - Adapter IDs to enable
|
|
53
|
-
*/
|
|
54
|
-
enable(...ids: string[]): void;
|
|
55
|
-
/**
|
|
56
|
-
* Check if an adapter is disabled.
|
|
57
|
-
* @param id - Adapter identifier
|
|
58
|
-
*/
|
|
59
|
-
isDisabled(id: string): boolean;
|
|
60
|
-
/**
|
|
61
|
-
* Set adapter-specific configuration.
|
|
62
|
-
* @param id - Adapter identifier
|
|
63
|
-
* @param config - Configuration to apply
|
|
64
|
-
*/
|
|
65
|
-
configure(id: string, config: AdapterConfig): void;
|
|
66
|
-
/**
|
|
67
|
-
* Get an adapter instance by ID.
|
|
68
|
-
* @param id - Adapter identifier
|
|
69
|
-
* @returns Adapter instance or undefined if not found/disabled
|
|
70
|
-
*/
|
|
71
|
-
get(id: string): PlatformAdapter | undefined;
|
|
72
|
-
/**
|
|
73
|
-
* Auto-detect and return the best adapter for the current environment.
|
|
74
|
-
* Adapters are checked in priority order (highest first).
|
|
75
|
-
* @returns The first adapter that can handle the current environment, or undefined
|
|
76
|
-
*/
|
|
77
|
-
detect(): PlatformAdapter | undefined;
|
|
78
|
-
/**
|
|
79
|
-
* Get all adapters that can handle the current environment.
|
|
80
|
-
* Useful for debugging or showing available options.
|
|
81
|
-
* @returns Array of compatible adapters sorted by priority (highest first)
|
|
82
|
-
*/
|
|
83
|
-
detectAll(): PlatformAdapter[];
|
|
84
|
-
/**
|
|
85
|
-
* Clear all registered adapters.
|
|
86
|
-
*/
|
|
87
|
-
clear(): void;
|
|
88
|
-
/**
|
|
89
|
-
* Get sorted candidate adapters by priority (highest first).
|
|
90
|
-
*/
|
|
91
|
-
private _getSortedCandidates;
|
|
92
|
-
/**
|
|
93
|
-
* Merge default config with user config.
|
|
94
|
-
*/
|
|
95
|
-
private _mergeConfig;
|
|
96
|
-
/**
|
|
97
|
-
* Log debug message if debugging is enabled.
|
|
98
|
-
*/
|
|
99
|
-
private _log;
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Default global adapter registry instance.
|
|
103
|
-
* Use this for the standard registration pattern.
|
|
104
|
-
*/
|
|
105
|
-
export declare const defaultRegistry: AdapterRegistry;
|
|
106
|
-
/**
|
|
107
|
-
* Helper function to register an adapter with the default registry.
|
|
108
|
-
* @param id - Unique adapter identifier
|
|
109
|
-
* @param factory - Factory function that creates the adapter
|
|
110
|
-
* @param defaultConfig - Optional default configuration
|
|
111
|
-
*/
|
|
112
|
-
export declare function registerAdapter(id: string, factory: AdapterFactory, defaultConfig?: AdapterConfig): void;
|
|
113
|
-
/**
|
|
114
|
-
* Helper function to get an adapter from the default registry.
|
|
115
|
-
* @param id - Adapter identifier
|
|
116
|
-
*/
|
|
117
|
-
export declare function getAdapter(id: string): PlatformAdapter | undefined;
|
|
118
|
-
/**
|
|
119
|
-
* Helper function to auto-detect the best adapter from the default registry.
|
|
120
|
-
*/
|
|
121
|
-
export declare function detectAdapter(): PlatformAdapter | undefined;
|
|
@@ -1,271 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Adapter Registry
|
|
4
|
-
*
|
|
5
|
-
* Manages platform adapter registration and auto-detection.
|
|
6
|
-
* Adapters are registered with priorities and selected based on
|
|
7
|
-
* environment detection during initialization.
|
|
8
|
-
*
|
|
9
|
-
* @packageDocumentation
|
|
10
|
-
*/
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.defaultRegistry = exports.AdapterRegistry = void 0;
|
|
13
|
-
exports.registerAdapter = registerAdapter;
|
|
14
|
-
exports.getAdapter = getAdapter;
|
|
15
|
-
exports.detectAdapter = detectAdapter;
|
|
16
|
-
/**
|
|
17
|
-
* Registry for managing platform adapters.
|
|
18
|
-
* Handles registration, retrieval, and auto-detection of adapters.
|
|
19
|
-
*/
|
|
20
|
-
class AdapterRegistry {
|
|
21
|
-
_adapters = new Map();
|
|
22
|
-
_disabledAdapters = new Set();
|
|
23
|
-
_adapterConfigs = new Map();
|
|
24
|
-
_debug = false;
|
|
25
|
-
/**
|
|
26
|
-
* Enable or disable debug logging.
|
|
27
|
-
*/
|
|
28
|
-
setDebug(enabled) {
|
|
29
|
-
this._debug = enabled;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Register an adapter factory with the registry.
|
|
33
|
-
* @param id - Unique adapter identifier
|
|
34
|
-
* @param factory - Factory function that creates the adapter
|
|
35
|
-
* @param defaultConfig - Optional default configuration
|
|
36
|
-
*/
|
|
37
|
-
register(id, factory, defaultConfig) {
|
|
38
|
-
if (this._adapters.has(id)) {
|
|
39
|
-
this._log(`Overwriting existing adapter: ${id}`);
|
|
40
|
-
}
|
|
41
|
-
this._adapters.set(id, {
|
|
42
|
-
id,
|
|
43
|
-
factory,
|
|
44
|
-
defaultConfig,
|
|
45
|
-
});
|
|
46
|
-
this._log(`Registered adapter: ${id}`);
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Unregister an adapter from the registry.
|
|
50
|
-
* @param id - Adapter identifier to remove
|
|
51
|
-
*/
|
|
52
|
-
unregister(id) {
|
|
53
|
-
const removed = this._adapters.delete(id);
|
|
54
|
-
if (removed) {
|
|
55
|
-
this._log(`Unregistered adapter: ${id}`);
|
|
56
|
-
}
|
|
57
|
-
return removed;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Check if an adapter is registered.
|
|
61
|
-
* @param id - Adapter identifier
|
|
62
|
-
*/
|
|
63
|
-
has(id) {
|
|
64
|
-
return this._adapters.has(id);
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Get all registered adapter IDs.
|
|
68
|
-
*/
|
|
69
|
-
getRegisteredIds() {
|
|
70
|
-
return Array.from(this._adapters.keys());
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Disable specific adapters (they won't be selected during auto-detection).
|
|
74
|
-
* @param ids - Adapter IDs to disable
|
|
75
|
-
*/
|
|
76
|
-
disable(...ids) {
|
|
77
|
-
for (const id of ids) {
|
|
78
|
-
this._disabledAdapters.add(id);
|
|
79
|
-
this._log(`Disabled adapter: ${id}`);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Enable previously disabled adapters.
|
|
84
|
-
* @param ids - Adapter IDs to enable
|
|
85
|
-
*/
|
|
86
|
-
enable(...ids) {
|
|
87
|
-
for (const id of ids) {
|
|
88
|
-
this._disabledAdapters.delete(id);
|
|
89
|
-
this._log(`Enabled adapter: ${id}`);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* Check if an adapter is disabled.
|
|
94
|
-
* @param id - Adapter identifier
|
|
95
|
-
*/
|
|
96
|
-
isDisabled(id) {
|
|
97
|
-
return this._disabledAdapters.has(id);
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Set adapter-specific configuration.
|
|
101
|
-
* @param id - Adapter identifier
|
|
102
|
-
* @param config - Configuration to apply
|
|
103
|
-
*/
|
|
104
|
-
configure(id, config) {
|
|
105
|
-
this._adapterConfigs.set(id, config);
|
|
106
|
-
this._log(`Configured adapter: ${id}`);
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Get an adapter instance by ID.
|
|
110
|
-
* @param id - Adapter identifier
|
|
111
|
-
* @returns Adapter instance or undefined if not found/disabled
|
|
112
|
-
*/
|
|
113
|
-
get(id) {
|
|
114
|
-
if (this._disabledAdapters.has(id)) {
|
|
115
|
-
this._log(`Adapter ${id} is disabled`);
|
|
116
|
-
return undefined;
|
|
117
|
-
}
|
|
118
|
-
const registration = this._adapters.get(id);
|
|
119
|
-
if (!registration) {
|
|
120
|
-
this._log(`Adapter ${id} not found`);
|
|
121
|
-
return undefined;
|
|
122
|
-
}
|
|
123
|
-
const config = this._mergeConfig(registration.defaultConfig, this._adapterConfigs.get(id));
|
|
124
|
-
if (config?.enabled === false) {
|
|
125
|
-
this._log(`Adapter ${id} is disabled via config`);
|
|
126
|
-
return undefined;
|
|
127
|
-
}
|
|
128
|
-
return registration.factory(config);
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Auto-detect and return the best adapter for the current environment.
|
|
132
|
-
* Adapters are checked in priority order (highest first).
|
|
133
|
-
* @returns The first adapter that can handle the current environment, or undefined
|
|
134
|
-
*/
|
|
135
|
-
detect() {
|
|
136
|
-
const candidates = this._getSortedCandidates();
|
|
137
|
-
for (const registration of candidates) {
|
|
138
|
-
if (this._disabledAdapters.has(registration.id)) {
|
|
139
|
-
this._log(`Skipping disabled adapter: ${registration.id}`);
|
|
140
|
-
continue;
|
|
141
|
-
}
|
|
142
|
-
const config = this._mergeConfig(registration.defaultConfig, this._adapterConfigs.get(registration.id));
|
|
143
|
-
if (config?.enabled === false) {
|
|
144
|
-
this._log(`Skipping adapter disabled via config: ${registration.id}`);
|
|
145
|
-
continue;
|
|
146
|
-
}
|
|
147
|
-
try {
|
|
148
|
-
const adapter = registration.factory(config);
|
|
149
|
-
if (adapter.canHandle()) {
|
|
150
|
-
this._log(`Detected adapter: ${registration.id} (priority: ${adapter.priority})`);
|
|
151
|
-
return adapter;
|
|
152
|
-
}
|
|
153
|
-
this._log(`Adapter ${registration.id} cannot handle current environment`);
|
|
154
|
-
}
|
|
155
|
-
catch (error) {
|
|
156
|
-
this._log(`Error creating adapter ${registration.id}: ${error}`);
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
this._log('No suitable adapter detected');
|
|
160
|
-
return undefined;
|
|
161
|
-
}
|
|
162
|
-
/**
|
|
163
|
-
* Get all adapters that can handle the current environment.
|
|
164
|
-
* Useful for debugging or showing available options.
|
|
165
|
-
* @returns Array of compatible adapters sorted by priority (highest first)
|
|
166
|
-
*/
|
|
167
|
-
detectAll() {
|
|
168
|
-
const candidates = this._getSortedCandidates();
|
|
169
|
-
const compatible = [];
|
|
170
|
-
for (const registration of candidates) {
|
|
171
|
-
if (this._disabledAdapters.has(registration.id)) {
|
|
172
|
-
continue;
|
|
173
|
-
}
|
|
174
|
-
const config = this._mergeConfig(registration.defaultConfig, this._adapterConfigs.get(registration.id));
|
|
175
|
-
if (config?.enabled === false) {
|
|
176
|
-
continue;
|
|
177
|
-
}
|
|
178
|
-
try {
|
|
179
|
-
const adapter = registration.factory(config);
|
|
180
|
-
if (adapter.canHandle()) {
|
|
181
|
-
compatible.push(adapter);
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
catch {
|
|
185
|
-
// Skip adapters that fail to instantiate
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
return compatible;
|
|
189
|
-
}
|
|
190
|
-
/**
|
|
191
|
-
* Clear all registered adapters.
|
|
192
|
-
*/
|
|
193
|
-
clear() {
|
|
194
|
-
this._adapters.clear();
|
|
195
|
-
this._disabledAdapters.clear();
|
|
196
|
-
this._adapterConfigs.clear();
|
|
197
|
-
this._log('Cleared all adapters');
|
|
198
|
-
}
|
|
199
|
-
/**
|
|
200
|
-
* Get sorted candidate adapters by priority (highest first).
|
|
201
|
-
*/
|
|
202
|
-
_getSortedCandidates() {
|
|
203
|
-
const registrations = Array.from(this._adapters.values());
|
|
204
|
-
// Create temporary adapters to get their priorities
|
|
205
|
-
const withPriority = registrations.map((reg) => {
|
|
206
|
-
try {
|
|
207
|
-
const adapter = reg.factory(reg.defaultConfig);
|
|
208
|
-
return { registration: reg, priority: adapter.priority };
|
|
209
|
-
}
|
|
210
|
-
catch {
|
|
211
|
-
return { registration: reg, priority: -1 };
|
|
212
|
-
}
|
|
213
|
-
});
|
|
214
|
-
// Sort by priority descending
|
|
215
|
-
withPriority.sort((a, b) => b.priority - a.priority);
|
|
216
|
-
return withPriority.map((item) => item.registration);
|
|
217
|
-
}
|
|
218
|
-
/**
|
|
219
|
-
* Merge default config with user config.
|
|
220
|
-
*/
|
|
221
|
-
_mergeConfig(defaultConfig, userConfig) {
|
|
222
|
-
if (!defaultConfig && !userConfig) {
|
|
223
|
-
return undefined;
|
|
224
|
-
}
|
|
225
|
-
return {
|
|
226
|
-
...defaultConfig,
|
|
227
|
-
...userConfig,
|
|
228
|
-
options: {
|
|
229
|
-
...defaultConfig?.options,
|
|
230
|
-
...userConfig?.options,
|
|
231
|
-
},
|
|
232
|
-
};
|
|
233
|
-
}
|
|
234
|
-
/**
|
|
235
|
-
* Log debug message if debugging is enabled.
|
|
236
|
-
*/
|
|
237
|
-
_log(message) {
|
|
238
|
-
if (this._debug) {
|
|
239
|
-
console.log(`[AdapterRegistry] ${message}`);
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
exports.AdapterRegistry = AdapterRegistry;
|
|
244
|
-
/**
|
|
245
|
-
* Default global adapter registry instance.
|
|
246
|
-
* Use this for the standard registration pattern.
|
|
247
|
-
*/
|
|
248
|
-
exports.defaultRegistry = new AdapterRegistry();
|
|
249
|
-
/**
|
|
250
|
-
* Helper function to register an adapter with the default registry.
|
|
251
|
-
* @param id - Unique adapter identifier
|
|
252
|
-
* @param factory - Factory function that creates the adapter
|
|
253
|
-
* @param defaultConfig - Optional default configuration
|
|
254
|
-
*/
|
|
255
|
-
function registerAdapter(id, factory, defaultConfig) {
|
|
256
|
-
exports.defaultRegistry.register(id, factory, defaultConfig);
|
|
257
|
-
}
|
|
258
|
-
/**
|
|
259
|
-
* Helper function to get an adapter from the default registry.
|
|
260
|
-
* @param id - Adapter identifier
|
|
261
|
-
*/
|
|
262
|
-
function getAdapter(id) {
|
|
263
|
-
return exports.defaultRegistry.get(id);
|
|
264
|
-
}
|
|
265
|
-
/**
|
|
266
|
-
* Helper function to auto-detect the best adapter from the default registry.
|
|
267
|
-
*/
|
|
268
|
-
function detectAdapter() {
|
|
269
|
-
return exports.defaultRegistry.detect();
|
|
270
|
-
}
|
|
271
|
-
//# sourceMappingURL=adapter-registry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"adapter-registry.js","sourceRoot":"","sources":["../../../../src/bridge/core/adapter-registry.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Adapter Registry\n *\n * Manages platform adapter registration and auto-detection.\n * Adapters are registered with priorities and selected based on\n * environment detection during initialization.\n *\n * @packageDocumentation\n */\n\nimport type { PlatformAdapter, AdapterFactory, AdapterRegistration, AdapterConfig } from '../types';\n\n/**\n * Registry for managing platform adapters.\n * Handles registration, retrieval, and auto-detection of adapters.\n */\nexport class AdapterRegistry {\n private _adapters: Map<string, AdapterRegistration> = new Map();\n private _disabledAdapters: Set<string> = new Set();\n private _adapterConfigs: Map<string, AdapterConfig> = new Map();\n private _debug = false;\n\n /**\n * Enable or disable debug logging.\n */\n setDebug(enabled: boolean): void {\n this._debug = enabled;\n }\n\n /**\n * Register an adapter factory with the registry.\n * @param id - Unique adapter identifier\n * @param factory - Factory function that creates the adapter\n * @param defaultConfig - Optional default configuration\n */\n register(id: string, factory: AdapterFactory, defaultConfig?: AdapterConfig): void {\n if (this._adapters.has(id)) {\n this._log(`Overwriting existing adapter: ${id}`);\n }\n\n this._adapters.set(id, {\n id,\n factory,\n defaultConfig,\n });\n\n this._log(`Registered adapter: ${id}`);\n }\n\n /**\n * Unregister an adapter from the registry.\n * @param id - Adapter identifier to remove\n */\n unregister(id: string): boolean {\n const removed = this._adapters.delete(id);\n if (removed) {\n this._log(`Unregistered adapter: ${id}`);\n }\n return removed;\n }\n\n /**\n * Check if an adapter is registered.\n * @param id - Adapter identifier\n */\n has(id: string): boolean {\n return this._adapters.has(id);\n }\n\n /**\n * Get all registered adapter IDs.\n */\n getRegisteredIds(): string[] {\n return Array.from(this._adapters.keys());\n }\n\n /**\n * Disable specific adapters (they won't be selected during auto-detection).\n * @param ids - Adapter IDs to disable\n */\n disable(...ids: string[]): void {\n for (const id of ids) {\n this._disabledAdapters.add(id);\n this._log(`Disabled adapter: ${id}`);\n }\n }\n\n /**\n * Enable previously disabled adapters.\n * @param ids - Adapter IDs to enable\n */\n enable(...ids: string[]): void {\n for (const id of ids) {\n this._disabledAdapters.delete(id);\n this._log(`Enabled adapter: ${id}`);\n }\n }\n\n /**\n * Check if an adapter is disabled.\n * @param id - Adapter identifier\n */\n isDisabled(id: string): boolean {\n return this._disabledAdapters.has(id);\n }\n\n /**\n * Set adapter-specific configuration.\n * @param id - Adapter identifier\n * @param config - Configuration to apply\n */\n configure(id: string, config: AdapterConfig): void {\n this._adapterConfigs.set(id, config);\n this._log(`Configured adapter: ${id}`);\n }\n\n /**\n * Get an adapter instance by ID.\n * @param id - Adapter identifier\n * @returns Adapter instance or undefined if not found/disabled\n */\n get(id: string): PlatformAdapter | undefined {\n if (this._disabledAdapters.has(id)) {\n this._log(`Adapter ${id} is disabled`);\n return undefined;\n }\n\n const registration = this._adapters.get(id);\n if (!registration) {\n this._log(`Adapter ${id} not found`);\n return undefined;\n }\n\n const config = this._mergeConfig(registration.defaultConfig, this._adapterConfigs.get(id));\n\n if (config?.enabled === false) {\n this._log(`Adapter ${id} is disabled via config`);\n return undefined;\n }\n\n return registration.factory(config);\n }\n\n /**\n * Auto-detect and return the best adapter for the current environment.\n * Adapters are checked in priority order (highest first).\n * @returns The first adapter that can handle the current environment, or undefined\n */\n detect(): PlatformAdapter | undefined {\n const candidates = this._getSortedCandidates();\n\n for (const registration of candidates) {\n if (this._disabledAdapters.has(registration.id)) {\n this._log(`Skipping disabled adapter: ${registration.id}`);\n continue;\n }\n\n const config = this._mergeConfig(registration.defaultConfig, this._adapterConfigs.get(registration.id));\n\n if (config?.enabled === false) {\n this._log(`Skipping adapter disabled via config: ${registration.id}`);\n continue;\n }\n\n try {\n const adapter = registration.factory(config);\n\n if (adapter.canHandle()) {\n this._log(`Detected adapter: ${registration.id} (priority: ${adapter.priority})`);\n return adapter;\n }\n\n this._log(`Adapter ${registration.id} cannot handle current environment`);\n } catch (error) {\n this._log(`Error creating adapter ${registration.id}: ${error}`);\n }\n }\n\n this._log('No suitable adapter detected');\n return undefined;\n }\n\n /**\n * Get all adapters that can handle the current environment.\n * Useful for debugging or showing available options.\n * @returns Array of compatible adapters sorted by priority (highest first)\n */\n detectAll(): PlatformAdapter[] {\n const candidates = this._getSortedCandidates();\n const compatible: PlatformAdapter[] = [];\n\n for (const registration of candidates) {\n if (this._disabledAdapters.has(registration.id)) {\n continue;\n }\n\n const config = this._mergeConfig(registration.defaultConfig, this._adapterConfigs.get(registration.id));\n\n if (config?.enabled === false) {\n continue;\n }\n\n try {\n const adapter = registration.factory(config);\n\n if (adapter.canHandle()) {\n compatible.push(adapter);\n }\n } catch {\n // Skip adapters that fail to instantiate\n }\n }\n\n return compatible;\n }\n\n /**\n * Clear all registered adapters.\n */\n clear(): void {\n this._adapters.clear();\n this._disabledAdapters.clear();\n this._adapterConfigs.clear();\n this._log('Cleared all adapters');\n }\n\n /**\n * Get sorted candidate adapters by priority (highest first).\n */\n private _getSortedCandidates(): AdapterRegistration[] {\n const registrations = Array.from(this._adapters.values());\n\n // Create temporary adapters to get their priorities\n const withPriority = registrations.map((reg) => {\n try {\n const adapter = reg.factory(reg.defaultConfig);\n return { registration: reg, priority: adapter.priority };\n } catch {\n return { registration: reg, priority: -1 };\n }\n });\n\n // Sort by priority descending\n withPriority.sort((a, b) => b.priority - a.priority);\n\n return withPriority.map((item) => item.registration);\n }\n\n /**\n * Merge default config with user config.\n */\n private _mergeConfig(defaultConfig?: AdapterConfig, userConfig?: AdapterConfig): AdapterConfig | undefined {\n if (!defaultConfig && !userConfig) {\n return undefined;\n }\n\n return {\n ...defaultConfig,\n ...userConfig,\n options: {\n ...defaultConfig?.options,\n ...userConfig?.options,\n },\n };\n }\n\n /**\n * Log debug message if debugging is enabled.\n */\n private _log(message: string): void {\n if (this._debug) {\n console.log(`[AdapterRegistry] ${message}`);\n }\n }\n}\n\n/**\n * Default global adapter registry instance.\n * Use this for the standard registration pattern.\n */\nexport const defaultRegistry = new AdapterRegistry();\n\n/**\n * Helper function to register an adapter with the default registry.\n * @param id - Unique adapter identifier\n * @param factory - Factory function that creates the adapter\n * @param defaultConfig - Optional default configuration\n */\nexport function registerAdapter(id: string, factory: AdapterFactory, defaultConfig?: AdapterConfig): void {\n defaultRegistry.register(id, factory, defaultConfig);\n}\n\n/**\n * Helper function to get an adapter from the default registry.\n * @param id - Adapter identifier\n */\nexport function getAdapter(id: string): PlatformAdapter | undefined {\n return defaultRegistry.get(id);\n}\n\n/**\n * Helper function to auto-detect the best adapter from the default registry.\n */\nexport function detectAdapter(): PlatformAdapter | undefined {\n return defaultRegistry.detect();\n}\n"]}
|