@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,314 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Base Platform Adapter
|
|
4
|
-
*
|
|
5
|
-
* Abstract base class for platform adapters with default implementations.
|
|
6
|
-
* Extend this class to create custom adapters for new platforms.
|
|
7
|
-
*
|
|
8
|
-
* @packageDocumentation
|
|
9
|
-
*/
|
|
10
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.BaseAdapter = exports.DEFAULT_SAFE_AREA = exports.DEFAULT_CAPABILITIES = void 0;
|
|
12
|
-
/**
|
|
13
|
-
* Default adapter capabilities (most features disabled).
|
|
14
|
-
*/
|
|
15
|
-
exports.DEFAULT_CAPABILITIES = {
|
|
16
|
-
canCallTools: false,
|
|
17
|
-
canSendMessages: false,
|
|
18
|
-
canOpenLinks: false,
|
|
19
|
-
canPersistState: true, // localStorage fallback
|
|
20
|
-
hasNetworkAccess: true,
|
|
21
|
-
supportsDisplayModes: false,
|
|
22
|
-
supportsTheme: true,
|
|
23
|
-
};
|
|
24
|
-
/**
|
|
25
|
-
* Default safe area insets (no insets).
|
|
26
|
-
*/
|
|
27
|
-
exports.DEFAULT_SAFE_AREA = {
|
|
28
|
-
top: 0,
|
|
29
|
-
bottom: 0,
|
|
30
|
-
left: 0,
|
|
31
|
-
right: 0,
|
|
32
|
-
};
|
|
33
|
-
/**
|
|
34
|
-
* Abstract base class for platform adapters.
|
|
35
|
-
* Provides default implementations that can be overridden.
|
|
36
|
-
*/
|
|
37
|
-
class BaseAdapter {
|
|
38
|
-
_capabilities = { ...exports.DEFAULT_CAPABILITIES };
|
|
39
|
-
_hostContext;
|
|
40
|
-
_widgetState = {};
|
|
41
|
-
_toolInput = {};
|
|
42
|
-
_toolOutput = undefined;
|
|
43
|
-
_structuredContent = undefined;
|
|
44
|
-
_initialized = false;
|
|
45
|
-
_contextListeners = new Set();
|
|
46
|
-
_toolResultListeners = new Set();
|
|
47
|
-
constructor() {
|
|
48
|
-
this._hostContext = this._createDefaultHostContext();
|
|
49
|
-
}
|
|
50
|
-
get capabilities() {
|
|
51
|
-
return this._capabilities;
|
|
52
|
-
}
|
|
53
|
-
async initialize() {
|
|
54
|
-
if (this._initialized)
|
|
55
|
-
return;
|
|
56
|
-
// Load persisted widget state
|
|
57
|
-
this._loadWidgetState();
|
|
58
|
-
// Read injected tool data
|
|
59
|
-
this._readInjectedData();
|
|
60
|
-
this._initialized = true;
|
|
61
|
-
}
|
|
62
|
-
dispose() {
|
|
63
|
-
this._contextListeners.clear();
|
|
64
|
-
this._toolResultListeners.clear();
|
|
65
|
-
this._initialized = false;
|
|
66
|
-
}
|
|
67
|
-
// ============================================
|
|
68
|
-
// Data Access
|
|
69
|
-
// ============================================
|
|
70
|
-
getTheme() {
|
|
71
|
-
return this._hostContext.theme;
|
|
72
|
-
}
|
|
73
|
-
getDisplayMode() {
|
|
74
|
-
return this._hostContext.displayMode;
|
|
75
|
-
}
|
|
76
|
-
getUserAgent() {
|
|
77
|
-
return this._hostContext.userAgent;
|
|
78
|
-
}
|
|
79
|
-
getLocale() {
|
|
80
|
-
return this._hostContext.locale;
|
|
81
|
-
}
|
|
82
|
-
getToolInput() {
|
|
83
|
-
return this._toolInput;
|
|
84
|
-
}
|
|
85
|
-
getToolOutput() {
|
|
86
|
-
return this._toolOutput;
|
|
87
|
-
}
|
|
88
|
-
getStructuredContent() {
|
|
89
|
-
return this._structuredContent;
|
|
90
|
-
}
|
|
91
|
-
getWidgetState() {
|
|
92
|
-
return this._widgetState;
|
|
93
|
-
}
|
|
94
|
-
getSafeArea() {
|
|
95
|
-
return this._hostContext.safeArea;
|
|
96
|
-
}
|
|
97
|
-
getViewport() {
|
|
98
|
-
return this._hostContext.viewport;
|
|
99
|
-
}
|
|
100
|
-
getHostContext() {
|
|
101
|
-
return { ...this._hostContext };
|
|
102
|
-
}
|
|
103
|
-
// ============================================
|
|
104
|
-
// Actions (override in subclasses for real functionality)
|
|
105
|
-
// ============================================
|
|
106
|
-
async callTool(_name, _args) {
|
|
107
|
-
if (!this._capabilities.canCallTools) {
|
|
108
|
-
throw new Error(`Tool calls are not supported by ${this.name} adapter`);
|
|
109
|
-
}
|
|
110
|
-
throw new Error('callTool not implemented');
|
|
111
|
-
}
|
|
112
|
-
async sendMessage(_content) {
|
|
113
|
-
if (!this._capabilities.canSendMessages) {
|
|
114
|
-
throw new Error(`Sending messages is not supported by ${this.name} adapter`);
|
|
115
|
-
}
|
|
116
|
-
throw new Error('sendMessage not implemented');
|
|
117
|
-
}
|
|
118
|
-
async openLink(url) {
|
|
119
|
-
if (!this._capabilities.canOpenLinks) {
|
|
120
|
-
// Fallback: try window.open
|
|
121
|
-
if (typeof window !== 'undefined') {
|
|
122
|
-
window.open(url, '_blank', 'noopener,noreferrer');
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
throw new Error(`Opening links is not supported by ${this.name} adapter`);
|
|
126
|
-
}
|
|
127
|
-
throw new Error('openLink not implemented');
|
|
128
|
-
}
|
|
129
|
-
async requestDisplayMode(_mode) {
|
|
130
|
-
if (!this._capabilities.supportsDisplayModes) {
|
|
131
|
-
// Silently ignore on unsupported platforms
|
|
132
|
-
return;
|
|
133
|
-
}
|
|
134
|
-
throw new Error('requestDisplayMode not implemented');
|
|
135
|
-
}
|
|
136
|
-
async requestClose() {
|
|
137
|
-
// Default: no-op (host controls widget lifecycle)
|
|
138
|
-
}
|
|
139
|
-
setWidgetState(state) {
|
|
140
|
-
this._widgetState = { ...this._widgetState, ...state };
|
|
141
|
-
this._persistWidgetState();
|
|
142
|
-
}
|
|
143
|
-
// ============================================
|
|
144
|
-
// Events
|
|
145
|
-
// ============================================
|
|
146
|
-
onContextChange(callback) {
|
|
147
|
-
this._contextListeners.add(callback);
|
|
148
|
-
return () => {
|
|
149
|
-
this._contextListeners.delete(callback);
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
onToolResult(callback) {
|
|
153
|
-
this._toolResultListeners.add(callback);
|
|
154
|
-
return () => {
|
|
155
|
-
this._toolResultListeners.delete(callback);
|
|
156
|
-
};
|
|
157
|
-
}
|
|
158
|
-
// ============================================
|
|
159
|
-
// Protected Helpers
|
|
160
|
-
// ============================================
|
|
161
|
-
/**
|
|
162
|
-
* Create default host context from environment detection.
|
|
163
|
-
*/
|
|
164
|
-
_createDefaultHostContext() {
|
|
165
|
-
return {
|
|
166
|
-
theme: this._detectTheme(),
|
|
167
|
-
displayMode: 'inline',
|
|
168
|
-
locale: this._detectLocale(),
|
|
169
|
-
userAgent: this._detectUserAgent(),
|
|
170
|
-
safeArea: exports.DEFAULT_SAFE_AREA,
|
|
171
|
-
viewport: this._detectViewport(),
|
|
172
|
-
};
|
|
173
|
-
}
|
|
174
|
-
/**
|
|
175
|
-
* Detect theme from CSS media query.
|
|
176
|
-
*/
|
|
177
|
-
_detectTheme() {
|
|
178
|
-
if (typeof window !== 'undefined' && window.matchMedia) {
|
|
179
|
-
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
|
|
180
|
-
}
|
|
181
|
-
return 'light';
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* Detect locale from navigator.
|
|
185
|
-
*/
|
|
186
|
-
_detectLocale() {
|
|
187
|
-
if (typeof navigator !== 'undefined') {
|
|
188
|
-
return navigator.language || 'en-US';
|
|
189
|
-
}
|
|
190
|
-
return 'en-US';
|
|
191
|
-
}
|
|
192
|
-
/**
|
|
193
|
-
* Detect user agent capabilities.
|
|
194
|
-
*/
|
|
195
|
-
_detectUserAgent() {
|
|
196
|
-
if (typeof navigator === 'undefined') {
|
|
197
|
-
return { type: 'web', hover: true, touch: false };
|
|
198
|
-
}
|
|
199
|
-
const ua = navigator.userAgent || '';
|
|
200
|
-
const isMobile = /iPhone|iPad|iPod|Android/i.test(ua);
|
|
201
|
-
const hasTouch = 'ontouchstart' in window || navigator.maxTouchPoints > 0;
|
|
202
|
-
const hasHover = typeof window !== 'undefined' && window.matchMedia && window.matchMedia('(hover: hover)').matches;
|
|
203
|
-
return {
|
|
204
|
-
type: isMobile ? 'mobile' : 'web',
|
|
205
|
-
hover: hasHover !== false,
|
|
206
|
-
touch: hasTouch,
|
|
207
|
-
};
|
|
208
|
-
}
|
|
209
|
-
/**
|
|
210
|
-
* Detect viewport dimensions.
|
|
211
|
-
*/
|
|
212
|
-
_detectViewport() {
|
|
213
|
-
if (typeof window !== 'undefined') {
|
|
214
|
-
return {
|
|
215
|
-
width: window.innerWidth,
|
|
216
|
-
height: window.innerHeight,
|
|
217
|
-
};
|
|
218
|
-
}
|
|
219
|
-
return undefined;
|
|
220
|
-
}
|
|
221
|
-
/**
|
|
222
|
-
* Read injected tool data from window globals.
|
|
223
|
-
*/
|
|
224
|
-
_readInjectedData() {
|
|
225
|
-
if (typeof window === 'undefined')
|
|
226
|
-
return;
|
|
227
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
228
|
-
const win = window;
|
|
229
|
-
if (win.__mcpToolInput) {
|
|
230
|
-
this._toolInput = win.__mcpToolInput;
|
|
231
|
-
}
|
|
232
|
-
if (win.__mcpToolOutput) {
|
|
233
|
-
this._toolOutput = win.__mcpToolOutput;
|
|
234
|
-
}
|
|
235
|
-
if (win.__mcpStructuredContent) {
|
|
236
|
-
this._structuredContent = win.__mcpStructuredContent;
|
|
237
|
-
}
|
|
238
|
-
if (win.__mcpHostContext) {
|
|
239
|
-
this._hostContext = { ...this._hostContext, ...win.__mcpHostContext };
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
/**
|
|
243
|
-
* Load widget state from localStorage.
|
|
244
|
-
*/
|
|
245
|
-
_loadWidgetState() {
|
|
246
|
-
if (typeof localStorage === 'undefined')
|
|
247
|
-
return;
|
|
248
|
-
try {
|
|
249
|
-
const key = this._getStateKey();
|
|
250
|
-
const stored = localStorage.getItem(key);
|
|
251
|
-
if (stored) {
|
|
252
|
-
this._widgetState = JSON.parse(stored);
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
catch {
|
|
256
|
-
// Ignore storage errors
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
/**
|
|
260
|
-
* Persist widget state to localStorage.
|
|
261
|
-
*/
|
|
262
|
-
_persistWidgetState() {
|
|
263
|
-
if (typeof localStorage === 'undefined')
|
|
264
|
-
return;
|
|
265
|
-
try {
|
|
266
|
-
const key = this._getStateKey();
|
|
267
|
-
localStorage.setItem(key, JSON.stringify(this._widgetState));
|
|
268
|
-
}
|
|
269
|
-
catch {
|
|
270
|
-
// Ignore storage errors
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
/**
|
|
274
|
-
* Get localStorage key for widget state.
|
|
275
|
-
*/
|
|
276
|
-
_getStateKey() {
|
|
277
|
-
if (typeof window !== 'undefined') {
|
|
278
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
279
|
-
const toolName = window.__mcpToolName || 'unknown';
|
|
280
|
-
return `frontmcp:widget:${toolName}`;
|
|
281
|
-
}
|
|
282
|
-
return 'frontmcp:widget:unknown';
|
|
283
|
-
}
|
|
284
|
-
/**
|
|
285
|
-
* Notify context change listeners.
|
|
286
|
-
*/
|
|
287
|
-
_notifyContextChange(changes) {
|
|
288
|
-
this._hostContext = { ...this._hostContext, ...changes };
|
|
289
|
-
this._contextListeners.forEach((cb) => {
|
|
290
|
-
try {
|
|
291
|
-
cb(changes);
|
|
292
|
-
}
|
|
293
|
-
catch (e) {
|
|
294
|
-
console.error('[FrontMcpBridge] Context change listener error:', e);
|
|
295
|
-
}
|
|
296
|
-
});
|
|
297
|
-
}
|
|
298
|
-
/**
|
|
299
|
-
* Notify tool result listeners.
|
|
300
|
-
*/
|
|
301
|
-
_notifyToolResult(result) {
|
|
302
|
-
this._toolOutput = result;
|
|
303
|
-
this._toolResultListeners.forEach((cb) => {
|
|
304
|
-
try {
|
|
305
|
-
cb(result);
|
|
306
|
-
}
|
|
307
|
-
catch (e) {
|
|
308
|
-
console.error('[FrontMcpBridge] Tool result listener error:', e);
|
|
309
|
-
}
|
|
310
|
-
});
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
exports.BaseAdapter = BaseAdapter;
|
|
314
|
-
//# sourceMappingURL=base-adapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base-adapter.js","sourceRoot":"","sources":["../../../../src/bridge/adapters/base-adapter.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Base Platform Adapter\n *\n * Abstract base class for platform adapters with default implementations.\n * Extend this class to create custom adapters for new platforms.\n *\n * @packageDocumentation\n */\n\nimport type {\n PlatformAdapter,\n AdapterCapabilities,\n DisplayMode,\n UserAgentInfo,\n SafeAreaInsets,\n ViewportInfo,\n HostContext,\n} from '../types';\n\n/**\n * Default adapter capabilities (most features disabled).\n */\nexport const DEFAULT_CAPABILITIES: AdapterCapabilities = {\n canCallTools: false,\n canSendMessages: false,\n canOpenLinks: false,\n canPersistState: true, // localStorage fallback\n hasNetworkAccess: true,\n supportsDisplayModes: false,\n supportsTheme: true,\n};\n\n/**\n * Default safe area insets (no insets).\n */\nexport const DEFAULT_SAFE_AREA: SafeAreaInsets = {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n};\n\n/**\n * Abstract base class for platform adapters.\n * Provides default implementations that can be overridden.\n */\nexport abstract class BaseAdapter implements PlatformAdapter {\n abstract readonly id: string;\n abstract readonly name: string;\n abstract readonly priority: number;\n\n protected _capabilities: AdapterCapabilities = { ...DEFAULT_CAPABILITIES };\n protected _hostContext: HostContext;\n protected _widgetState: Record<string, unknown> = {};\n protected _toolInput: Record<string, unknown> = {};\n protected _toolOutput: unknown = undefined;\n protected _structuredContent: unknown = undefined;\n protected _initialized = false;\n\n protected _contextListeners: Set<(changes: Partial<HostContext>) => void> = new Set();\n protected _toolResultListeners: Set<(result: unknown) => void> = new Set();\n\n constructor() {\n this._hostContext = this._createDefaultHostContext();\n }\n\n get capabilities(): AdapterCapabilities {\n return this._capabilities;\n }\n\n // ============================================\n // Lifecycle (override in subclasses)\n // ============================================\n\n abstract canHandle(): boolean;\n\n async initialize(): Promise<void> {\n if (this._initialized) return;\n\n // Load persisted widget state\n this._loadWidgetState();\n\n // Read injected tool data\n this._readInjectedData();\n\n this._initialized = true;\n }\n\n dispose(): void {\n this._contextListeners.clear();\n this._toolResultListeners.clear();\n this._initialized = false;\n }\n\n // ============================================\n // Data Access\n // ============================================\n\n getTheme(): 'light' | 'dark' {\n return this._hostContext.theme;\n }\n\n getDisplayMode(): DisplayMode {\n return this._hostContext.displayMode;\n }\n\n getUserAgent(): UserAgentInfo {\n return this._hostContext.userAgent;\n }\n\n getLocale(): string {\n return this._hostContext.locale;\n }\n\n getToolInput(): Record<string, unknown> {\n return this._toolInput;\n }\n\n getToolOutput(): unknown {\n return this._toolOutput;\n }\n\n getStructuredContent(): unknown {\n return this._structuredContent;\n }\n\n getWidgetState(): Record<string, unknown> {\n return this._widgetState;\n }\n\n getSafeArea(): SafeAreaInsets {\n return this._hostContext.safeArea;\n }\n\n getViewport(): ViewportInfo | undefined {\n return this._hostContext.viewport;\n }\n\n getHostContext(): HostContext {\n return { ...this._hostContext };\n }\n\n // ============================================\n // Actions (override in subclasses for real functionality)\n // ============================================\n\n async callTool(_name: string, _args: Record<string, unknown>): Promise<unknown> {\n if (!this._capabilities.canCallTools) {\n throw new Error(`Tool calls are not supported by ${this.name} adapter`);\n }\n throw new Error('callTool not implemented');\n }\n\n async sendMessage(_content: string): Promise<void> {\n if (!this._capabilities.canSendMessages) {\n throw new Error(`Sending messages is not supported by ${this.name} adapter`);\n }\n throw new Error('sendMessage not implemented');\n }\n\n async openLink(url: string): Promise<void> {\n if (!this._capabilities.canOpenLinks) {\n // Fallback: try window.open\n if (typeof window !== 'undefined') {\n window.open(url, '_blank', 'noopener,noreferrer');\n return;\n }\n throw new Error(`Opening links is not supported by ${this.name} adapter`);\n }\n throw new Error('openLink not implemented');\n }\n\n async requestDisplayMode(_mode: DisplayMode): Promise<void> {\n if (!this._capabilities.supportsDisplayModes) {\n // Silently ignore on unsupported platforms\n return;\n }\n throw new Error('requestDisplayMode not implemented');\n }\n\n async requestClose(): Promise<void> {\n // Default: no-op (host controls widget lifecycle)\n }\n\n setWidgetState(state: Record<string, unknown>): void {\n this._widgetState = { ...this._widgetState, ...state };\n this._persistWidgetState();\n }\n\n // ============================================\n // Events\n // ============================================\n\n onContextChange(callback: (changes: Partial<HostContext>) => void): () => void {\n this._contextListeners.add(callback);\n return () => {\n this._contextListeners.delete(callback);\n };\n }\n\n onToolResult(callback: (result: unknown) => void): () => void {\n this._toolResultListeners.add(callback);\n return () => {\n this._toolResultListeners.delete(callback);\n };\n }\n\n // ============================================\n // Protected Helpers\n // ============================================\n\n /**\n * Create default host context from environment detection.\n */\n protected _createDefaultHostContext(): HostContext {\n return {\n theme: this._detectTheme(),\n displayMode: 'inline',\n locale: this._detectLocale(),\n userAgent: this._detectUserAgent(),\n safeArea: DEFAULT_SAFE_AREA,\n viewport: this._detectViewport(),\n };\n }\n\n /**\n * Detect theme from CSS media query.\n */\n protected _detectTheme(): 'light' | 'dark' {\n if (typeof window !== 'undefined' && window.matchMedia) {\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n }\n return 'light';\n }\n\n /**\n * Detect locale from navigator.\n */\n protected _detectLocale(): string {\n if (typeof navigator !== 'undefined') {\n return navigator.language || 'en-US';\n }\n return 'en-US';\n }\n\n /**\n * Detect user agent capabilities.\n */\n protected _detectUserAgent(): UserAgentInfo {\n if (typeof navigator === 'undefined') {\n return { type: 'web', hover: true, touch: false };\n }\n\n const ua = navigator.userAgent || '';\n const isMobile = /iPhone|iPad|iPod|Android/i.test(ua);\n const hasTouch = 'ontouchstart' in window || navigator.maxTouchPoints > 0;\n const hasHover = typeof window !== 'undefined' && window.matchMedia && window.matchMedia('(hover: hover)').matches;\n\n return {\n type: isMobile ? 'mobile' : 'web',\n hover: hasHover !== false,\n touch: hasTouch,\n };\n }\n\n /**\n * Detect viewport dimensions.\n */\n protected _detectViewport(): ViewportInfo | undefined {\n if (typeof window !== 'undefined') {\n return {\n width: window.innerWidth,\n height: window.innerHeight,\n };\n }\n return undefined;\n }\n\n /**\n * Read injected tool data from window globals.\n */\n protected _readInjectedData(): void {\n if (typeof window === 'undefined') return;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const win = window as any;\n\n if (win.__mcpToolInput) {\n this._toolInput = win.__mcpToolInput;\n }\n if (win.__mcpToolOutput) {\n this._toolOutput = win.__mcpToolOutput;\n }\n if (win.__mcpStructuredContent) {\n this._structuredContent = win.__mcpStructuredContent;\n }\n if (win.__mcpHostContext) {\n this._hostContext = { ...this._hostContext, ...win.__mcpHostContext };\n }\n }\n\n /**\n * Load widget state from localStorage.\n */\n protected _loadWidgetState(): void {\n if (typeof localStorage === 'undefined') return;\n\n try {\n const key = this._getStateKey();\n const stored = localStorage.getItem(key);\n if (stored) {\n this._widgetState = JSON.parse(stored);\n }\n } catch {\n // Ignore storage errors\n }\n }\n\n /**\n * Persist widget state to localStorage.\n */\n protected _persistWidgetState(): void {\n if (typeof localStorage === 'undefined') return;\n\n try {\n const key = this._getStateKey();\n localStorage.setItem(key, JSON.stringify(this._widgetState));\n } catch {\n // Ignore storage errors\n }\n }\n\n /**\n * Get localStorage key for widget state.\n */\n protected _getStateKey(): string {\n if (typeof window !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const toolName = (window as any).__mcpToolName || 'unknown';\n return `frontmcp:widget:${toolName}`;\n }\n return 'frontmcp:widget:unknown';\n }\n\n /**\n * Notify context change listeners.\n */\n protected _notifyContextChange(changes: Partial<HostContext>): void {\n this._hostContext = { ...this._hostContext, ...changes };\n this._contextListeners.forEach((cb) => {\n try {\n cb(changes);\n } catch (e) {\n console.error('[FrontMcpBridge] Context change listener error:', e);\n }\n });\n }\n\n /**\n * Notify tool result listeners.\n */\n protected _notifyToolResult(result: unknown): void {\n this._toolOutput = result;\n this._toolResultListeners.forEach((cb) => {\n try {\n cb(result);\n } catch (e) {\n console.error('[FrontMcpBridge] Tool result listener error:', e);\n }\n });\n }\n}\n"]}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Claude Platform Adapter
|
|
3
|
-
*
|
|
4
|
-
* Adapter for Claude (Anthropic) artifacts and widgets.
|
|
5
|
-
* Claude artifacts have network restrictions - external fetches are blocked.
|
|
6
|
-
* This adapter relies on injected data and localStorage for state.
|
|
7
|
-
*
|
|
8
|
-
* @packageDocumentation
|
|
9
|
-
*/
|
|
10
|
-
import type { DisplayMode } from '../types';
|
|
11
|
-
import { BaseAdapter } from './base-adapter';
|
|
12
|
-
/**
|
|
13
|
-
* Claude adapter for Anthropic's Claude AI.
|
|
14
|
-
*
|
|
15
|
-
* Features:
|
|
16
|
-
* - Theme detection from system preferences
|
|
17
|
-
* - Injected tool data via window globals
|
|
18
|
-
* - LocalStorage persistence for widget state
|
|
19
|
-
* - No external network access (blocked by Claude)
|
|
20
|
-
*
|
|
21
|
-
* @example
|
|
22
|
-
* ```typescript
|
|
23
|
-
* import { ClaudeAdapter } from '@frontmcp/ui/bridge';
|
|
24
|
-
*
|
|
25
|
-
* const adapter = new ClaudeAdapter();
|
|
26
|
-
* if (adapter.canHandle()) {
|
|
27
|
-
* await adapter.initialize();
|
|
28
|
-
* const input = adapter.getToolInput();
|
|
29
|
-
* }
|
|
30
|
-
* ```
|
|
31
|
-
*/
|
|
32
|
-
export declare class ClaudeAdapter extends BaseAdapter {
|
|
33
|
-
readonly id = "claude";
|
|
34
|
-
readonly name = "Claude (Anthropic)";
|
|
35
|
-
readonly priority = 60;
|
|
36
|
-
constructor();
|
|
37
|
-
/**
|
|
38
|
-
* Check if we're running in a Claude artifact/widget context.
|
|
39
|
-
*/
|
|
40
|
-
canHandle(): boolean;
|
|
41
|
-
/**
|
|
42
|
-
* Initialize the Claude adapter.
|
|
43
|
-
*/
|
|
44
|
-
initialize(): Promise<void>;
|
|
45
|
-
/**
|
|
46
|
-
* Open a link in a new tab.
|
|
47
|
-
* This is one of the few actions available in Claude artifacts.
|
|
48
|
-
*/
|
|
49
|
-
openLink(url: string): Promise<void>;
|
|
50
|
-
/**
|
|
51
|
-
* Request display mode change (no-op for Claude).
|
|
52
|
-
*/
|
|
53
|
-
requestDisplayMode(_mode: DisplayMode): Promise<void>;
|
|
54
|
-
/**
|
|
55
|
-
* Request close (no-op for Claude).
|
|
56
|
-
*/
|
|
57
|
-
requestClose(): Promise<void>;
|
|
58
|
-
/**
|
|
59
|
-
* Setup listener for system theme changes.
|
|
60
|
-
*/
|
|
61
|
-
private _setupThemeListener;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Factory function for creating Claude adapter instances.
|
|
65
|
-
*/
|
|
66
|
-
export declare function createClaudeAdapter(): ClaudeAdapter;
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Claude Platform Adapter
|
|
4
|
-
*
|
|
5
|
-
* Adapter for Claude (Anthropic) artifacts and widgets.
|
|
6
|
-
* Claude artifacts have network restrictions - external fetches are blocked.
|
|
7
|
-
* This adapter relies on injected data and localStorage for state.
|
|
8
|
-
*
|
|
9
|
-
* @packageDocumentation
|
|
10
|
-
*/
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.ClaudeAdapter = void 0;
|
|
13
|
-
exports.createClaudeAdapter = createClaudeAdapter;
|
|
14
|
-
const base_adapter_1 = require("./base-adapter");
|
|
15
|
-
/**
|
|
16
|
-
* Claude adapter for Anthropic's Claude AI.
|
|
17
|
-
*
|
|
18
|
-
* Features:
|
|
19
|
-
* - Theme detection from system preferences
|
|
20
|
-
* - Injected tool data via window globals
|
|
21
|
-
* - LocalStorage persistence for widget state
|
|
22
|
-
* - No external network access (blocked by Claude)
|
|
23
|
-
*
|
|
24
|
-
* @example
|
|
25
|
-
* ```typescript
|
|
26
|
-
* import { ClaudeAdapter } from '@frontmcp/ui/bridge';
|
|
27
|
-
*
|
|
28
|
-
* const adapter = new ClaudeAdapter();
|
|
29
|
-
* if (adapter.canHandle()) {
|
|
30
|
-
* await adapter.initialize();
|
|
31
|
-
* const input = adapter.getToolInput();
|
|
32
|
-
* }
|
|
33
|
-
* ```
|
|
34
|
-
*/
|
|
35
|
-
class ClaudeAdapter extends base_adapter_1.BaseAdapter {
|
|
36
|
-
id = 'claude';
|
|
37
|
-
name = 'Claude (Anthropic)';
|
|
38
|
-
priority = 60;
|
|
39
|
-
constructor() {
|
|
40
|
-
super();
|
|
41
|
-
this._capabilities = {
|
|
42
|
-
...base_adapter_1.DEFAULT_CAPABILITIES,
|
|
43
|
-
canCallTools: false, // Claude artifacts can't call tools
|
|
44
|
-
canSendMessages: false, // Can't send messages back to conversation
|
|
45
|
-
canOpenLinks: true, // Can open links via window.open
|
|
46
|
-
canPersistState: true, // localStorage works
|
|
47
|
-
hasNetworkAccess: false, // Network is blocked
|
|
48
|
-
supportsDisplayModes: false, // No display mode control
|
|
49
|
-
supportsTheme: true, // Can detect system theme
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Check if we're running in a Claude artifact/widget context.
|
|
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
|
-
// Check explicit platform marker
|
|
61
|
-
if (win.__mcpPlatform === 'claude')
|
|
62
|
-
return true;
|
|
63
|
-
// Check for Claude-specific global
|
|
64
|
-
if (win.claude)
|
|
65
|
-
return true;
|
|
66
|
-
// Check for Claude artifact markers
|
|
67
|
-
if (win.__claudeArtifact)
|
|
68
|
-
return true;
|
|
69
|
-
// Check URL patterns for Claude
|
|
70
|
-
if (typeof location !== 'undefined') {
|
|
71
|
-
const href = location.href;
|
|
72
|
-
if (href.includes('claude.ai') || href.includes('anthropic.com')) {
|
|
73
|
-
return true;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
return false;
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Initialize the Claude adapter.
|
|
80
|
-
*/
|
|
81
|
-
async initialize() {
|
|
82
|
-
if (this._initialized)
|
|
83
|
-
return;
|
|
84
|
-
// Call base initialization (loads state, reads injected data)
|
|
85
|
-
await super.initialize();
|
|
86
|
-
// Setup theme detection listener
|
|
87
|
-
this._setupThemeListener();
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Open a link in a new tab.
|
|
91
|
-
* This is one of the few actions available in Claude artifacts.
|
|
92
|
-
*/
|
|
93
|
-
async openLink(url) {
|
|
94
|
-
if (typeof window !== 'undefined') {
|
|
95
|
-
window.open(url, '_blank', 'noopener,noreferrer');
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Request display mode change (no-op for Claude).
|
|
100
|
-
*/
|
|
101
|
-
async requestDisplayMode(_mode) {
|
|
102
|
-
// Claude doesn't support display mode changes
|
|
103
|
-
// Silently ignore
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Request close (no-op for Claude).
|
|
107
|
-
*/
|
|
108
|
-
async requestClose() {
|
|
109
|
-
// Claude artifacts can't close themselves
|
|
110
|
-
// Silently ignore
|
|
111
|
-
}
|
|
112
|
-
// ============================================
|
|
113
|
-
// Private Helpers
|
|
114
|
-
// ============================================
|
|
115
|
-
/**
|
|
116
|
-
* Setup listener for system theme changes.
|
|
117
|
-
*/
|
|
118
|
-
_setupThemeListener() {
|
|
119
|
-
if (typeof window === 'undefined' || !window.matchMedia)
|
|
120
|
-
return;
|
|
121
|
-
const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
|
|
122
|
-
const handleChange = (e) => {
|
|
123
|
-
const newTheme = e.matches ? 'dark' : 'light';
|
|
124
|
-
if (newTheme !== this._hostContext.theme) {
|
|
125
|
-
this._notifyContextChange({ theme: newTheme });
|
|
126
|
-
}
|
|
127
|
-
};
|
|
128
|
-
// Use addEventListener if available (newer API)
|
|
129
|
-
if (mediaQuery.addEventListener) {
|
|
130
|
-
mediaQuery.addEventListener('change', handleChange);
|
|
131
|
-
}
|
|
132
|
-
else if (mediaQuery.addListener) {
|
|
133
|
-
// Fallback for older browsers
|
|
134
|
-
mediaQuery.addListener(handleChange);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
exports.ClaudeAdapter = ClaudeAdapter;
|
|
139
|
-
/**
|
|
140
|
-
* Factory function for creating Claude adapter instances.
|
|
141
|
-
*/
|
|
142
|
-
function createClaudeAdapter() {
|
|
143
|
-
return new ClaudeAdapter();
|
|
144
|
-
}
|
|
145
|
-
//# sourceMappingURL=claude.adapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claude.adapter.js","sourceRoot":"","sources":["../../../../src/bridge/adapters/claude.adapter.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAgJH,kDAEC;AA/ID,iDAAmE;AAEnE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAa,aAAc,SAAQ,0BAAW;IACnC,EAAE,GAAG,QAAQ,CAAC;IACd,IAAI,GAAG,oBAAoB,CAAC;IAC5B,QAAQ,GAAG,EAAE,CAAC;IAEvB;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,aAAa,GAAG;YACnB,GAAG,mCAAoB;YACvB,YAAY,EAAE,KAAK,EAAE,oCAAoC;YACzD,eAAe,EAAE,KAAK,EAAE,2CAA2C;YACnE,YAAY,EAAE,IAAI,EAAE,iCAAiC;YACrD,eAAe,EAAE,IAAI,EAAE,qBAAqB;YAC5C,gBAAgB,EAAE,KAAK,EAAE,qBAAqB;YAC9C,oBAAoB,EAAE,KAAK,EAAE,0BAA0B;YACvD,aAAa,EAAE,IAAI,EAAE,0BAA0B;SAChD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,SAAS;QACP,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,KAAK,CAAC;QAEhD,8DAA8D;QAC9D,MAAM,GAAG,GAAG,MAAa,CAAC;QAE1B,iCAAiC;QACjC,IAAI,GAAG,CAAC,aAAa,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAEhD,mCAAmC;QACnC,IAAI,GAAG,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAE5B,oCAAoC;QACpC,IAAI,GAAG,CAAC,gBAAgB;YAAE,OAAO,IAAI,CAAC;QAEtC,gCAAgC;QAChC,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;gBACjE,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACM,KAAK,CAAC,UAAU;QACvB,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO;QAE9B,8DAA8D;QAC9D,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;QAEzB,iCAAiC;QACjC,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACM,KAAK,CAAC,QAAQ,CAAC,GAAW;QACjC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED;;OAEG;IACM,KAAK,CAAC,kBAAkB,CAAC,KAAkB;QAClD,8CAA8C;QAC9C,kBAAkB;IACpB,CAAC;IAED;;OAEG;IACM,KAAK,CAAC,YAAY;QACzB,0CAA0C;QAC1C,kBAAkB;IACpB,CAAC;IAED,+CAA+C;IAC/C,kBAAkB;IAClB,+CAA+C;IAE/C;;OAEG;IACK,mBAAmB;QACzB,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,CAAC,MAAM,CAAC,UAAU;YAAE,OAAO;QAEhE,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC;QAErE,MAAM,YAAY,GAAG,CAAC,CAAuC,EAAE,EAAE;YAC/D,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YAC9C,IAAI,QAAQ,KAAK,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;gBACzC,IAAI,CAAC,oBAAoB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YACjD,CAAC;QACH,CAAC,CAAC;QAEF,gDAAgD;QAChD,IAAI,UAAU,CAAC,gBAAgB,EAAE,CAAC;YAChC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACtD,CAAC;aAAM,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;YAClC,8BAA8B;YAC9B,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;CACF;AAlHD,sCAkHC;AAED;;GAEG;AACH,SAAgB,mBAAmB;IACjC,OAAO,IAAI,aAAa,EAAE,CAAC;AAC7B,CAAC","sourcesContent":["/**\n * Claude Platform Adapter\n *\n * Adapter for Claude (Anthropic) artifacts and widgets.\n * Claude artifacts have network restrictions - external fetches are blocked.\n * This adapter relies on injected data and localStorage for state.\n *\n * @packageDocumentation\n */\n\nimport type { DisplayMode } from '../types';\nimport { BaseAdapter, DEFAULT_CAPABILITIES } from './base-adapter';\n\n/**\n * Claude adapter for Anthropic's Claude AI.\n *\n * Features:\n * - Theme detection from system preferences\n * - Injected tool data via window globals\n * - LocalStorage persistence for widget state\n * - No external network access (blocked by Claude)\n *\n * @example\n * ```typescript\n * import { ClaudeAdapter } from '@frontmcp/ui/bridge';\n *\n * const adapter = new ClaudeAdapter();\n * if (adapter.canHandle()) {\n * await adapter.initialize();\n * const input = adapter.getToolInput();\n * }\n * ```\n */\nexport class ClaudeAdapter extends BaseAdapter {\n readonly id = 'claude';\n readonly name = 'Claude (Anthropic)';\n readonly priority = 60;\n\n constructor() {\n super();\n this._capabilities = {\n ...DEFAULT_CAPABILITIES,\n canCallTools: false, // Claude artifacts can't call tools\n canSendMessages: false, // Can't send messages back to conversation\n canOpenLinks: true, // Can open links via window.open\n canPersistState: true, // localStorage works\n hasNetworkAccess: false, // Network is blocked\n supportsDisplayModes: false, // No display mode control\n supportsTheme: true, // Can detect system theme\n };\n }\n\n /**\n * Check if we're running in a Claude artifact/widget context.\n */\n canHandle(): boolean {\n if (typeof window === 'undefined') return false;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const win = window as any;\n\n // Check explicit platform marker\n if (win.__mcpPlatform === 'claude') return true;\n\n // Check for Claude-specific global\n if (win.claude) return true;\n\n // Check for Claude artifact markers\n if (win.__claudeArtifact) return true;\n\n // Check URL patterns for Claude\n if (typeof location !== 'undefined') {\n const href = location.href;\n if (href.includes('claude.ai') || href.includes('anthropic.com')) {\n return true;\n }\n }\n\n return false;\n }\n\n /**\n * Initialize the Claude adapter.\n */\n override async initialize(): Promise<void> {\n if (this._initialized) return;\n\n // Call base initialization (loads state, reads injected data)\n await super.initialize();\n\n // Setup theme detection listener\n this._setupThemeListener();\n }\n\n /**\n * Open a link in a new tab.\n * This is one of the few actions available in Claude artifacts.\n */\n override async openLink(url: string): Promise<void> {\n if (typeof window !== 'undefined') {\n window.open(url, '_blank', 'noopener,noreferrer');\n }\n }\n\n /**\n * Request display mode change (no-op for Claude).\n */\n override async requestDisplayMode(_mode: DisplayMode): Promise<void> {\n // Claude doesn't support display mode changes\n // Silently ignore\n }\n\n /**\n * Request close (no-op for Claude).\n */\n override async requestClose(): Promise<void> {\n // Claude artifacts can't close themselves\n // Silently ignore\n }\n\n // ============================================\n // Private Helpers\n // ============================================\n\n /**\n * Setup listener for system theme changes.\n */\n private _setupThemeListener(): void {\n if (typeof window === 'undefined' || !window.matchMedia) return;\n\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n\n const handleChange = (e: MediaQueryListEvent | MediaQueryList) => {\n const newTheme = e.matches ? 'dark' : 'light';\n if (newTheme !== this._hostContext.theme) {\n this._notifyContextChange({ theme: newTheme });\n }\n };\n\n // Use addEventListener if available (newer API)\n if (mediaQuery.addEventListener) {\n mediaQuery.addEventListener('change', handleChange);\n } else if (mediaQuery.addListener) {\n // Fallback for older browsers\n mediaQuery.addListener(handleChange);\n }\n }\n}\n\n/**\n * Factory function for creating Claude adapter instances.\n */\nexport function createClaudeAdapter(): ClaudeAdapter {\n return new ClaudeAdapter();\n}\n"]}
|