@vibesdotdev/applets 0.0.0-stage → 1.0.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +18 -0
- package/README.md +43 -2
- package/dist/applet-gate.d.ts +47 -0
- package/dist/applet-gate.d.ts.map +1 -0
- package/dist/applet-gate.js +167 -0
- package/dist/applet-gate.js.map +1 -0
- package/dist/applet-root-surface.d.ts +135 -0
- package/dist/applet-root-surface.d.ts.map +1 -0
- package/dist/applet-root-surface.js +222 -0
- package/dist/applet-root-surface.js.map +1 -0
- package/dist/applet-value-bound.d.ts +24 -0
- package/dist/applet-value-bound.d.ts.map +1 -0
- package/dist/applet-value-bound.js +46 -0
- package/dist/applet-value-bound.js.map +1 -0
- package/dist/applets.cloud.plugin.d.ts +4 -0
- package/dist/applets.cloud.plugin.d.ts.map +1 -0
- package/dist/applets.cloud.plugin.js +11 -0
- package/dist/applets.cloud.plugin.js.map +1 -0
- package/dist/applets.consumer.plugin.d.ts +4 -0
- package/dist/applets.consumer.plugin.d.ts.map +1 -0
- package/dist/applets.consumer.plugin.js +11 -0
- package/dist/applets.consumer.plugin.js.map +1 -0
- package/dist/applets.plugin.d.ts +3 -0
- package/dist/applets.plugin.d.ts.map +1 -0
- package/dist/applets.plugin.js +30 -0
- package/dist/applets.plugin.js.map +1 -0
- package/dist/authorization.d.ts +87 -0
- package/dist/authorization.d.ts.map +1 -0
- package/dist/authorization.js +189 -0
- package/dist/authorization.js.map +1 -0
- package/dist/browser-runtime.d.ts +34 -0
- package/dist/browser-runtime.d.ts.map +1 -0
- package/dist/browser-runtime.js +5 -0
- package/dist/browser-runtime.js.map +1 -0
- package/dist/build-definition.d.ts +34 -0
- package/dist/build-definition.d.ts.map +1 -0
- package/dist/build-definition.js +44 -0
- package/dist/build-definition.js.map +1 -0
- package/dist/capabilities/capability.kind.d.ts +44 -0
- package/dist/capabilities/capability.kind.d.ts.map +1 -0
- package/dist/capabilities/capability.kind.js +17 -0
- package/dist/capabilities/capability.kind.js.map +1 -0
- package/dist/capabilities/runtime-dispatch.d.ts +9 -0
- package/dist/capabilities/runtime-dispatch.d.ts.map +1 -0
- package/dist/capabilities/runtime-dispatch.js +62 -0
- package/dist/capabilities/runtime-dispatch.js.map +1 -0
- package/dist/cli/applet-group.descriptor.d.ts +11 -0
- package/dist/cli/applet-group.descriptor.d.ts.map +1 -0
- package/dist/cli/applet-group.descriptor.js +19 -0
- package/dist/cli/applet-group.descriptor.js.map +1 -0
- package/dist/cli/applet-local-store.storage.descriptor.d.ts +66 -0
- package/dist/cli/applet-local-store.storage.descriptor.d.ts.map +1 -0
- package/dist/cli/applet-local-store.storage.descriptor.js +39 -0
- package/dist/cli/applet-local-store.storage.descriptor.js.map +1 -0
- package/dist/cli/applet-serve.process.descriptor.d.ts +37 -0
- package/dist/cli/applet-serve.process.descriptor.d.ts.map +1 -0
- package/dist/cli/applet-serve.process.descriptor.js +41 -0
- package/dist/cli/applet-serve.process.descriptor.js.map +1 -0
- package/dist/cli/commands/build.command.descriptor.d.ts +40 -0
- package/dist/cli/commands/build.command.descriptor.d.ts.map +1 -0
- package/dist/cli/commands/build.command.descriptor.js +52 -0
- package/dist/cli/commands/build.command.descriptor.js.map +1 -0
- package/dist/cli/commands/build.command.impl.d.ts +8 -0
- package/dist/cli/commands/build.command.impl.d.ts.map +1 -0
- package/dist/cli/commands/build.command.impl.js +116 -0
- package/dist/cli/commands/build.command.impl.js.map +1 -0
- package/dist/cli/commands/init.command.descriptor.d.ts +29 -0
- package/dist/cli/commands/init.command.descriptor.d.ts.map +1 -0
- package/dist/cli/commands/init.command.descriptor.js +23 -0
- package/dist/cli/commands/init.command.descriptor.js.map +1 -0
- package/dist/cli/commands/init.command.impl.d.ts +7 -0
- package/dist/cli/commands/init.command.impl.d.ts.map +1 -0
- package/dist/cli/commands/init.command.impl.js +64 -0
- package/dist/cli/commands/init.command.impl.js.map +1 -0
- package/dist/cli/commands/list.command.descriptor.d.ts +26 -0
- package/dist/cli/commands/list.command.descriptor.d.ts.map +1 -0
- package/dist/cli/commands/list.command.descriptor.js +22 -0
- package/dist/cli/commands/list.command.descriptor.js.map +1 -0
- package/dist/cli/commands/list.command.impl.d.ts +13 -0
- package/dist/cli/commands/list.command.impl.d.ts.map +1 -0
- package/dist/cli/commands/list.command.impl.js +47 -0
- package/dist/cli/commands/list.command.impl.js.map +1 -0
- package/dist/cli/commands/serve-stylesheet.d.ts +11 -0
- package/dist/cli/commands/serve-stylesheet.d.ts.map +1 -0
- package/dist/cli/commands/serve-stylesheet.js +50 -0
- package/dist/cli/commands/serve-stylesheet.js.map +1 -0
- package/dist/cli/commands/serve-surface.d.ts +36 -0
- package/dist/cli/commands/serve-surface.d.ts.map +1 -0
- package/dist/cli/commands/serve-surface.js +410 -0
- package/dist/cli/commands/serve-surface.js.map +1 -0
- package/dist/cli/commands/serve.command.descriptor.d.ts +42 -0
- package/dist/cli/commands/serve.command.descriptor.d.ts.map +1 -0
- package/dist/cli/commands/serve.command.descriptor.js +46 -0
- package/dist/cli/commands/serve.command.descriptor.js.map +1 -0
- package/dist/cli/commands/serve.command.impl.d.ts +110 -0
- package/dist/cli/commands/serve.command.impl.d.ts.map +1 -0
- package/dist/cli/commands/serve.command.impl.js +1105 -0
- package/dist/cli/commands/serve.command.impl.js.map +1 -0
- package/dist/cli/commands/serve.schemas.d.ts +127 -0
- package/dist/cli/commands/serve.schemas.d.ts.map +1 -0
- package/dist/cli/commands/serve.schemas.js +85 -0
- package/dist/cli/commands/serve.schemas.js.map +1 -0
- package/dist/cli/commands/served-applet-browser.d.ts +12 -0
- package/dist/cli/commands/served-applet-browser.d.ts.map +1 -0
- package/dist/cli/commands/served-applet-browser.js +48 -0
- package/dist/cli/commands/served-applet-browser.js.map +1 -0
- package/dist/cli/commands/served-applet-connection.d.ts +15 -0
- package/dist/cli/commands/served-applet-connection.d.ts.map +1 -0
- package/dist/cli/commands/served-applet-connection.js +25 -0
- package/dist/cli/commands/served-applet-connection.js.map +1 -0
- package/dist/cli/commands/served-applet-rpc.d.ts +16 -0
- package/dist/cli/commands/served-applet-rpc.d.ts.map +1 -0
- package/dist/cli/commands/served-applet-rpc.js +108 -0
- package/dist/cli/commands/served-applet-rpc.js.map +1 -0
- package/dist/cli/commands/served-applet-surface.d.ts +14 -0
- package/dist/cli/commands/served-applet-surface.d.ts.map +1 -0
- package/dist/cli/commands/served-applet-surface.js +99 -0
- package/dist/cli/commands/served-applet-surface.js.map +1 -0
- package/dist/cli/commands/templates.command.descriptor.d.ts +22 -0
- package/dist/cli/commands/templates.command.descriptor.d.ts.map +1 -0
- package/dist/cli/commands/templates.command.descriptor.js +21 -0
- package/dist/cli/commands/templates.command.descriptor.js.map +1 -0
- package/dist/cli/commands/templates.command.impl.d.ts +35 -0
- package/dist/cli/commands/templates.command.impl.d.ts.map +1 -0
- package/dist/cli/commands/templates.command.impl.js +59 -0
- package/dist/cli/commands/templates.command.impl.js.map +1 -0
- package/dist/cli/index.d.ts +7 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +7 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/local-serve.authz-policy.descriptor.d.ts +22 -0
- package/dist/cli/local-serve.authz-policy.descriptor.d.ts.map +1 -0
- package/dist/cli/local-serve.authz-policy.descriptor.js +13 -0
- package/dist/cli/local-serve.authz-policy.descriptor.js.map +1 -0
- package/dist/cli/plugin.d.ts +19 -0
- package/dist/cli/plugin.d.ts.map +1 -0
- package/dist/cli/plugin.js +57 -0
- package/dist/cli/plugin.js.map +1 -0
- package/dist/cli/project-files.d.ts +48 -0
- package/dist/cli/project-files.d.ts.map +1 -0
- package/dist/cli/project-files.js +130 -0
- package/dist/cli/project-files.js.map +1 -0
- package/dist/client/contract.d.ts +113 -0
- package/dist/client/contract.d.ts.map +1 -0
- package/dist/client/contract.js +17 -0
- package/dist/client/contract.js.map +1 -0
- package/dist/client/index.d.ts +3 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +3 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/repository.context.d.ts +113 -0
- package/dist/client/repository.context.d.ts.map +1 -0
- package/dist/client/repository.context.js +8 -0
- package/dist/client/repository.context.js.map +1 -0
- package/dist/client/runtime-client.d.ts +22 -0
- package/dist/client/runtime-client.d.ts.map +1 -0
- package/dist/client/runtime-client.js +200 -0
- package/dist/client/runtime-client.js.map +1 -0
- package/dist/companion-path.d.ts +25 -0
- package/dist/companion-path.d.ts.map +1 -0
- package/dist/companion-path.js +90 -0
- package/dist/companion-path.js.map +1 -0
- package/dist/component-ref.d.ts +12 -0
- package/dist/component-ref.d.ts.map +1 -0
- package/dist/component-ref.js +45 -0
- package/dist/component-ref.js.map +1 -0
- package/dist/composition-plan.d.ts +92 -0
- package/dist/composition-plan.d.ts.map +1 -0
- package/dist/composition-plan.js +44 -0
- package/dist/composition-plan.js.map +1 -0
- package/dist/composition.d.ts +97 -0
- package/dist/composition.d.ts.map +1 -0
- package/dist/composition.js +99 -0
- package/dist/composition.js.map +1 -0
- package/dist/config/applets.config.descriptor.d.ts +55 -0
- package/dist/config/applets.config.descriptor.d.ts.map +1 -0
- package/dist/config/applets.config.descriptor.js +37 -0
- package/dist/config/applets.config.descriptor.js.map +1 -0
- package/dist/config/load.d.ts +4 -0
- package/dist/config/load.d.ts.map +1 -0
- package/dist/config/load.js +12 -0
- package/dist/config/load.js.map +1 -0
- package/dist/content-path.d.ts +62 -0
- package/dist/content-path.d.ts.map +1 -0
- package/dist/content-path.js +121 -0
- package/dist/content-path.js.map +1 -0
- package/dist/contribution-registry.d.ts +270 -0
- package/dist/contribution-registry.d.ts.map +1 -0
- package/dist/contribution-registry.js +488 -0
- package/dist/contribution-registry.js.map +1 -0
- package/dist/docs/applets.docs.descriptor.d.ts +4 -0
- package/dist/docs/applets.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/applets.docs.descriptor.js +74 -0
- package/dist/docs/applets.docs.descriptor.js.map +1 -0
- package/dist/host/local-host.contract.d.ts +7 -0
- package/dist/host/local-host.contract.d.ts.map +1 -0
- package/dist/host/local-host.contract.js +2 -0
- package/dist/host/local-host.contract.js.map +1 -0
- package/dist/host/local-host.impl.d.ts +9 -0
- package/dist/host/local-host.impl.d.ts.map +1 -0
- package/dist/host/local-host.impl.js +41 -0
- package/dist/host/local-host.impl.js.map +1 -0
- package/dist/host/local-host.plugin.d.ts +3 -0
- package/dist/host/local-host.plugin.d.ts.map +1 -0
- package/dist/host/local-host.plugin.js +16 -0
- package/dist/host/local-host.plugin.js.map +1 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -0
- package/dist/local-project.d.ts +106 -0
- package/dist/local-project.d.ts.map +1 -0
- package/dist/local-project.js +277 -0
- package/dist/local-project.js.map +1 -0
- package/dist/manifest-hash.d.ts +12 -0
- package/dist/manifest-hash.d.ts.map +1 -0
- package/dist/manifest-hash.js +76 -0
- package/dist/manifest-hash.js.map +1 -0
- package/dist/presentation.d.ts +43 -0
- package/dist/presentation.d.ts.map +1 -0
- package/dist/presentation.js +36 -0
- package/dist/presentation.js.map +1 -0
- package/dist/retention.d.ts +34 -0
- package/dist/retention.d.ts.map +1 -0
- package/dist/retention.js +51 -0
- package/dist/retention.js.map +1 -0
- package/dist/schemas/applet-messages.d.ts +97 -0
- package/dist/schemas/applet-messages.d.ts.map +1 -0
- package/dist/schemas/applet-messages.js +51 -0
- package/dist/schemas/applet-messages.js.map +1 -0
- package/dist/schemas/capabilities.d.ts +37 -0
- package/dist/schemas/capabilities.d.ts.map +1 -0
- package/dist/schemas/capabilities.js +28 -0
- package/dist/schemas/capabilities.js.map +1 -0
- package/dist/schemas/component-release-ref.d.ts +13 -0
- package/dist/schemas/component-release-ref.d.ts.map +1 -0
- package/dist/schemas/component-release-ref.js +21 -0
- package/dist/schemas/component-release-ref.js.map +1 -0
- package/dist/schemas/contributes.d.ts +306 -0
- package/dist/schemas/contributes.d.ts.map +1 -0
- package/dist/schemas/contributes.js +184 -0
- package/dist/schemas/contributes.js.map +1 -0
- package/dist/schemas/definition.d.ts +301 -0
- package/dist/schemas/definition.d.ts.map +1 -0
- package/dist/schemas/definition.js +457 -0
- package/dist/schemas/definition.js.map +1 -0
- package/dist/schemas/dispatch.d.ts +52 -0
- package/dist/schemas/dispatch.d.ts.map +1 -0
- package/dist/schemas/dispatch.js +32 -0
- package/dist/schemas/dispatch.js.map +1 -0
- package/dist/schemas/grants.d.ts +56 -0
- package/dist/schemas/grants.d.ts.map +1 -0
- package/dist/schemas/grants.js +64 -0
- package/dist/schemas/grants.js.map +1 -0
- package/dist/schemas/index.d.ts +16 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +16 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/instance.d.ts +230 -0
- package/dist/schemas/instance.d.ts.map +1 -0
- package/dist/schemas/instance.js +44 -0
- package/dist/schemas/instance.js.map +1 -0
- package/dist/schemas/lineage.d.ts +60 -0
- package/dist/schemas/lineage.d.ts.map +1 -0
- package/dist/schemas/lineage.js +52 -0
- package/dist/schemas/lineage.js.map +1 -0
- package/dist/schemas/observation.d.ts +70 -0
- package/dist/schemas/observation.d.ts.map +1 -0
- package/dist/schemas/observation.js +49 -0
- package/dist/schemas/observation.js.map +1 -0
- package/dist/schemas/patterns.d.ts +24 -0
- package/dist/schemas/patterns.d.ts.map +1 -0
- package/dist/schemas/patterns.js +24 -0
- package/dist/schemas/patterns.js.map +1 -0
- package/dist/schemas/publishing.d.ts +27 -0
- package/dist/schemas/publishing.d.ts.map +1 -0
- package/dist/schemas/publishing.js +20 -0
- package/dist/schemas/publishing.js.map +1 -0
- package/dist/schemas/run.d.ts +35 -0
- package/dist/schemas/run.d.ts.map +1 -0
- package/dist/schemas/run.js +26 -0
- package/dist/schemas/run.js.map +1 -0
- package/dist/schemas/share-link.d.ts +61 -0
- package/dist/schemas/share-link.d.ts.map +1 -0
- package/dist/schemas/share-link.js +68 -0
- package/dist/schemas/share-link.js.map +1 -0
- package/dist/schemas/state-events.d.ts +66 -0
- package/dist/schemas/state-events.d.ts.map +1 -0
- package/dist/schemas/state-events.js +66 -0
- package/dist/schemas/state-events.js.map +1 -0
- package/dist/schemas/subscription.d.ts +47 -0
- package/dist/schemas/subscription.d.ts.map +1 -0
- package/dist/schemas/subscription.js +46 -0
- package/dist/schemas/subscription.js.map +1 -0
- package/dist/schemas/template-revision.d.ts +53 -0
- package/dist/schemas/template-revision.d.ts.map +1 -0
- package/dist/schemas/template-revision.js +30 -0
- package/dist/schemas/template-revision.js.map +1 -0
- package/dist/selection.d.ts +22 -0
- package/dist/selection.d.ts.map +1 -0
- package/dist/selection.js +21 -0
- package/dist/selection.js.map +1 -0
- package/dist/storage/index.d.ts +27 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +27 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/records.d.ts +28 -0
- package/dist/storage/records.d.ts.map +1 -0
- package/dist/storage/records.js +272 -0
- package/dist/storage/records.js.map +1 -0
- package/dist/svelte/applets-svelte.plugin.d.ts +38 -0
- package/dist/svelte/applets-svelte.plugin.d.ts.map +1 -0
- package/dist/svelte/applets-svelte.plugin.js +25 -0
- package/dist/svelte/components/AppletCanvas.svelte +488 -0
- package/dist/svelte/components/AppletCanvas.svelte.d.ts +53 -0
- package/dist/svelte/components/AppletCanvas.svelte.d.ts.map +1 -0
- package/dist/svelte/components/AppletCatalog.svelte +42 -0
- package/dist/svelte/components/AppletCatalog.svelte.d.ts +8 -0
- package/dist/svelte/components/AppletCatalog.svelte.d.ts.map +1 -0
- package/dist/svelte/components/AppletComposition.svelte +128 -0
- package/dist/svelte/components/AppletComposition.svelte.d.ts +30 -0
- package/dist/svelte/components/AppletComposition.svelte.d.ts.map +1 -0
- package/dist/svelte/components/AppletConsent.svelte +143 -0
- package/dist/svelte/components/AppletConsent.svelte.d.ts +12 -0
- package/dist/svelte/components/AppletConsent.svelte.d.ts.map +1 -0
- package/dist/svelte/components/LocalAppletView.svelte +102 -0
- package/dist/svelte/components/LocalAppletView.svelte.d.ts +13 -0
- package/dist/svelte/components/LocalAppletView.svelte.d.ts.map +1 -0
- package/dist/svelte/components/RunnableTracker.svelte +51 -0
- package/dist/svelte/components/RunnableTracker.svelte.d.ts +18 -0
- package/dist/svelte/components/RunnableTracker.svelte.d.ts.map +1 -0
- package/dist/svelte/index.d.ts +11 -0
- package/dist/svelte/index.d.ts.map +1 -0
- package/dist/svelte/index.js +10 -0
- package/dist/svelte/lib/canvas-lifecycle.d.ts +68 -0
- package/dist/svelte/lib/canvas-lifecycle.d.ts.map +1 -0
- package/dist/svelte/lib/canvas-lifecycle.js +99 -0
- package/dist/svelte/lib/capability-review.d.ts +64 -0
- package/dist/svelte/lib/capability-review.d.ts.map +1 -0
- package/dist/svelte/lib/capability-review.js +77 -0
- package/dist/svelte/lib/message-protocol.d.ts +184 -0
- package/dist/svelte/lib/message-protocol.d.ts.map +1 -0
- package/dist/svelte/lib/message-protocol.js +251 -0
- package/dist/svelte/runnable-source.d.ts +5 -0
- package/dist/svelte/runnable-source.d.ts.map +1 -0
- package/dist/svelte/runnable-source.js +92 -0
- package/dist/svelte/serve-index.svelte +39 -0
- package/dist/svelte/serve-index.svelte.d.ts +10 -0
- package/dist/svelte/serve-index.svelte.d.ts.map +1 -0
- package/dist/svelte/state.svelte.d.ts +26 -0
- package/dist/svelte/state.svelte.d.ts.map +1 -0
- package/dist/svelte/state.svelte.js +74 -0
- package/dist/svelte/styles.css +4 -0
- package/dist/svelte/tool-widgets/AppletToolCard.svelte +148 -0
- package/dist/svelte/tool-widgets/AppletToolCard.svelte.d.ts +5 -0
- package/dist/svelte/tool-widgets/AppletToolCard.svelte.d.ts.map +1 -0
- package/dist/svelte/tool-widgets/applet-tool-card.d.ts +41 -0
- package/dist/svelte/tool-widgets/applet-tool-card.d.ts.map +1 -0
- package/dist/svelte/tool-widgets/applet-tool-card.js +167 -0
- package/dist/svelte/tool-widgets/index.d.ts +3 -0
- package/dist/svelte/tool-widgets/index.d.ts.map +1 -0
- package/dist/svelte/tool-widgets/index.js +2 -0
- package/dist/templates/index.d.ts +2 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/index.js +2 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/templates/template.kind.d.ts +39 -0
- package/dist/templates/template.kind.d.ts.map +1 -0
- package/dist/templates/template.kind.js +29 -0
- package/dist/templates/template.kind.js.map +1 -0
- package/dist/tools/applet.descriptor.d.ts +196 -0
- package/dist/tools/applet.descriptor.d.ts.map +1 -0
- package/dist/tools/applet.descriptor.js +81 -0
- package/dist/tools/applet.descriptor.js.map +1 -0
- package/dist/tools/applet.impl.d.ts +32 -0
- package/dist/tools/applet.impl.d.ts.map +1 -0
- package/dist/tools/applet.impl.js +485 -0
- package/dist/tools/applet.impl.js.map +1 -0
- package/dist/tools/applet.schemas.d.ts +198 -0
- package/dist/tools/applet.schemas.d.ts.map +1 -0
- package/dist/tools/applet.schemas.js +136 -0
- package/dist/tools/applet.schemas.js.map +1 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +3 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/upgrade.d.ts +45 -0
- package/dist/upgrade.d.ts.map +1 -0
- package/dist/upgrade.js +179 -0
- package/dist/upgrade.js.map +1 -0
- package/dist/vite.d.ts +26 -0
- package/dist/vite.d.ts.map +1 -0
- package/dist/vite.js +28 -0
- package/dist/vite.js.map +1 -0
- package/package.json +264 -4
- package/templates/applet-tour/Applet.svelte +95 -0
- package/templates/applet-tour/applet.descriptor.ts +15 -0
- package/templates/assembly-field/Applet.svelte +242 -0
- package/templates/assembly-field/applet.descriptor.ts +7 -0
- package/templates/assembly-field/applet.storage.json +47 -0
- package/templates/assembly-field/schemas/settings.ts +14 -0
- package/templates/assembly-field/settings.ts +32 -0
- package/templates/benchmark-comparison/Applet.svelte +17 -0
- package/templates/benchmark-comparison/applet.descriptor.ts +7 -0
- package/templates/file-diff-viewer/Applet.svelte +91 -0
- package/templates/file-diff-viewer/applet.descriptor.ts +14 -0
- package/templates/file-diff-viewer/diff.ts +63 -0
- package/templates/file-viewer/Applet.svelte +80 -0
- package/templates/file-viewer/applet.descriptor.ts +14 -0
- package/templates/fleet-runs/Applet.svelte +14 -0
- package/templates/fleet-runs/applet.descriptor.ts +7 -0
- package/templates/graph-runbook-tracker/Applet.svelte +13 -0
- package/templates/graph-runbook-tracker/applet.descriptor.ts +7 -0
- package/templates/runbook-tracker/Applet.svelte +12 -0
- package/templates/runbook-tracker/applet.descriptor.ts +7 -0
- package/templates/runnable-tracker/Applet.svelte +16 -0
- package/templates/runnable-tracker/applet.descriptor.ts +10 -0
- package/templates/storage-viewer/Applet.svelte +90 -0
- package/templates/storage-viewer/applet.descriptor.ts +15 -0
- package/templates/workspace-graph-runbook-tracker/Applet.svelte +13 -0
- package/templates/workspace-graph-runbook-tracker/applet.descriptor.ts +7 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 VIBES DEV LLC
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
|
|
6
|
+
associated documentation files (the "Software"), to deal in the Software without restriction, including
|
|
7
|
+
without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
8
|
+
copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the
|
|
9
|
+
following conditions:
|
|
10
|
+
|
|
11
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial
|
|
12
|
+
portions of the Software.
|
|
13
|
+
|
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
|
15
|
+
LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
|
|
16
|
+
EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
17
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
18
|
+
USE OR OTHER DEALINGS IN THE SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,44 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @vibesdotdev/applets
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Applet definitions, instances, capability grants, launch leases, subscriptions,
|
|
4
|
+
and the unified `applet` tool. An Applet is an installable web application
|
|
5
|
+
pinned to one exact Platform Component release; this package owns instances,
|
|
6
|
+
state, grants, and provenance, never source or compilation.
|
|
7
|
+
|
|
8
|
+
The contract is [SPEC.md](./SPEC.md), including the full public entrypoint
|
|
9
|
+
list. The Svelte canvas, consent UI, and lifecycle projection are described in
|
|
10
|
+
[SPEC.svelte.md](./SPEC.svelte.md).
|
|
11
|
+
|
|
12
|
+
This package is part of the public Vibes framework.
|
|
13
|
+
|
|
14
|
+
The Assembly Field template saves its controls through the supplied applet
|
|
15
|
+
surface and its declared settings store. Reset restores schema defaults;
|
|
16
|
+
loading and saving failures appear in the template.
|
|
17
|
+
|
|
18
|
+
## Install
|
|
19
|
+
|
|
20
|
+
```sh
|
|
21
|
+
bun add @vibesdotdev/applets
|
|
22
|
+
# or
|
|
23
|
+
npm install @vibesdotdev/applets
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Runtime and verification
|
|
27
|
+
|
|
28
|
+
Compose `@vibesdotdev/applets/plugin` and resolve
|
|
29
|
+
`getVibesAppletsClient(runtime)`; bind owner scope with `forRequest(scope)`.
|
|
30
|
+
The root exports the semantic contract. The compatible `./client` subpath
|
|
31
|
+
also exports `RuntimeAppletsClient` for explicit implementation consumers.
|
|
32
|
+
Compose CLI and Svelte plugins through their explicit subpaths.
|
|
33
|
+
|
|
34
|
+
Run `bun run check`, `bun test`, and `bun run build`.
|
|
35
|
+
The build emits production TypeScript and retains the packaged Svelte surface.
|
|
36
|
+
|
|
37
|
+
## Documentation
|
|
38
|
+
|
|
39
|
+
- Package guide: https://docs.vibes.dev/applets
|
|
40
|
+
- Vibes docs: https://docs.vibes.dev
|
|
41
|
+
|
|
42
|
+
## License
|
|
43
|
+
|
|
44
|
+
BUSL-1.1 (see LICENSE)
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The applet gate — grant enforcement as an `authz` interceptor.
|
|
3
|
+
*
|
|
4
|
+
* This replaces a bespoke decision function. `runtime-rpc` already routes every
|
|
5
|
+
* arriving invoke through L1's `authz -> friction` pipeline with `origin:
|
|
6
|
+
* 'remote'` and the peer's identity attached, so an applet's calls gate through
|
|
7
|
+
* the same chain as every other call in the system. A second gate chain for the
|
|
8
|
+
* least trusted peer in the product was the wrong shape.
|
|
9
|
+
*
|
|
10
|
+
* What this adds is the applet-specific RULE, not a parallel mechanism:
|
|
11
|
+
*
|
|
12
|
+
* storage.* needs a DECLARATION. The applets SPEC is explicit that
|
|
13
|
+
* "Applet-owned storage is not a browsing-user capability" — the
|
|
14
|
+
* host derives instance, viewer partition, descriptor, and adapter
|
|
15
|
+
* itself, so what it checks is that the consented release actually
|
|
16
|
+
* declared the store.
|
|
17
|
+
* assets the same: a declared reference, bound to the pinned revision.
|
|
18
|
+
* everything else needs the capability on the LIVE grant.
|
|
19
|
+
*
|
|
20
|
+
* A veto is a THROW, which is the pipeline's contract. `dispatchRequest` turns
|
|
21
|
+
* it into an `RPC_INVOKE_FAILED` response, so applet code sees a rejected call
|
|
22
|
+
* rather than a silent null.
|
|
23
|
+
*/
|
|
24
|
+
import { CapabilityError, type InvokeInterceptor } from '@vibesdotdev/kernel';
|
|
25
|
+
import type { AppletCapabilityGrant, AppletLaunchLease } from './schemas/grants.ts';
|
|
26
|
+
import type { AppletDefinitionManifest } from './schemas/definition.ts';
|
|
27
|
+
import type { ComponentReleaseRef } from './schemas/component-release-ref.ts';
|
|
28
|
+
/** What the host knows about one live applet connection. */
|
|
29
|
+
export interface AppletGateBinding {
|
|
30
|
+
readonly instanceId: string;
|
|
31
|
+
/** The exact release running. A grant for any other release is refused. */
|
|
32
|
+
readonly release: ComponentReleaseRef;
|
|
33
|
+
readonly manifest: AppletDefinitionManifest;
|
|
34
|
+
readonly grant: AppletCapabilityGrant;
|
|
35
|
+
readonly lease: AppletLaunchLease;
|
|
36
|
+
}
|
|
37
|
+
export declare class AppletGateDenied extends CapabilityError {
|
|
38
|
+
constructor(reason: string, detail: string);
|
|
39
|
+
}
|
|
40
|
+
export declare function createAppletInvokeGate(input: {
|
|
41
|
+
/** Resolve the live binding for the connection an invoke arrived on. */
|
|
42
|
+
bindingFor: (connectionId: string) => AppletGateBinding | undefined;
|
|
43
|
+
/** Consult current trusted host implementations on each call. Missing fails closed. */
|
|
44
|
+
supportsCapability?: (capability: string) => boolean;
|
|
45
|
+
now?: () => Date;
|
|
46
|
+
}): InvokeInterceptor;
|
|
47
|
+
//# sourceMappingURL=applet-gate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applet-gate.d.ts","sourceRoot":"","sources":["../src/applet-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,eAAe,EAAsB,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAElG,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAE9E,4DAA4D;AAC5D,MAAM,WAAW,iBAAiB;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,wBAAwB,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;CAClC;AAED,qBAAa,gBAAiB,SAAQ,eAAe;gBACxC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAI1C;AAuCD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC7C,wEAAwE;IACxE,UAAU,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,iBAAiB,GAAG,SAAS,CAAC;IACpE,uFAAuF;IACvF,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;IACrD,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CACjB,GAAG,iBAAiB,CAmIpB"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The applet gate — grant enforcement as an `authz` interceptor.
|
|
3
|
+
*
|
|
4
|
+
* This replaces a bespoke decision function. `runtime-rpc` already routes every
|
|
5
|
+
* arriving invoke through L1's `authz -> friction` pipeline with `origin:
|
|
6
|
+
* 'remote'` and the peer's identity attached, so an applet's calls gate through
|
|
7
|
+
* the same chain as every other call in the system. A second gate chain for the
|
|
8
|
+
* least trusted peer in the product was the wrong shape.
|
|
9
|
+
*
|
|
10
|
+
* What this adds is the applet-specific RULE, not a parallel mechanism:
|
|
11
|
+
*
|
|
12
|
+
* storage.* needs a DECLARATION. The applets SPEC is explicit that
|
|
13
|
+
* "Applet-owned storage is not a browsing-user capability" — the
|
|
14
|
+
* host derives instance, viewer partition, descriptor, and adapter
|
|
15
|
+
* itself, so what it checks is that the consented release actually
|
|
16
|
+
* declared the store.
|
|
17
|
+
* assets the same: a declared reference, bound to the pinned revision.
|
|
18
|
+
* everything else needs the capability on the LIVE grant.
|
|
19
|
+
*
|
|
20
|
+
* A veto is a THROW, which is the pipeline's contract. `dispatchRequest` turns
|
|
21
|
+
* it into an `RPC_INVOKE_FAILED` response, so applet code sees a rejected call
|
|
22
|
+
* rather than a silent null.
|
|
23
|
+
*/
|
|
24
|
+
import { CapabilityError } from '@vibesdotdev/kernel';
|
|
25
|
+
import * as z from 'zod/v4';
|
|
26
|
+
export class AppletGateDenied extends CapabilityError {
|
|
27
|
+
constructor(reason, detail) {
|
|
28
|
+
super(detail, 'PERMISSION_DENIED', { reason, retryable: false });
|
|
29
|
+
this.name = 'AppletGateDenied';
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/*
|
|
33
|
+
* There is deliberately NO target-ref check here.
|
|
34
|
+
*
|
|
35
|
+
* A previous version required a `rootRefId` on the binding and compared it to
|
|
36
|
+
* `ctx.implId`, documented as "the ONE ref this connection may invoke". Nothing
|
|
37
|
+
* read it, and wiring it would have added ceremony rather than safety: the ref
|
|
38
|
+
* is not a secret. `DefaultReferenceTable` mints `${prefix}:${kind}:${seq}`, so
|
|
39
|
+
* every connection's root is the same string, and it is broadcast to the frame
|
|
40
|
+
* anyway.
|
|
41
|
+
*
|
|
42
|
+
* The real containment is the PER-CONNECTION reference table: a ref the table
|
|
43
|
+
* never minted derefs to nothing, whatever it says. Claiming a second control
|
|
44
|
+
* that the id cannot provide was worse than having one control that works.
|
|
45
|
+
*/
|
|
46
|
+
/**
|
|
47
|
+
* Methods on the applet root that read or write a DECLARED store rather than
|
|
48
|
+
* exercising a capability. Kept as data so the rule is legible, and so adding a
|
|
49
|
+
* method cannot silently inherit "no capability required".
|
|
50
|
+
*/
|
|
51
|
+
const STORAGE_METHODS = new Set(['storageGet', 'storageList', 'storagePut', 'storageDelete']);
|
|
52
|
+
const ASSET_METHODS = new Set(['assetUrl']);
|
|
53
|
+
/**
|
|
54
|
+
* A2 runtime parity: the principal-bound runtime handle. No manifest
|
|
55
|
+
* declaration and no capability tag gate it — Drew's rule is no brittle
|
|
56
|
+
* per-source exposure. The handle acts AS the principal the host bound, so the
|
|
57
|
+
* runtime's own authz decides each call; the gate still proves the connection
|
|
58
|
+
* is live (grant, lease, instance, release) before anything reaches it.
|
|
59
|
+
*/
|
|
60
|
+
const RUNTIME_METHODS = new Set(['runtimeQuery', 'runtimeCall', 'runtimeToolCall']);
|
|
61
|
+
/**
|
|
62
|
+
* `call` on a FUNCTION ref the host handed the applet (an unsubscribe a runtime call answered,
|
|
63
|
+
* runtime-rpc SPEC rule 11). The transport admits `call` only on a ref it advertised as a function,
|
|
64
|
+
* never on the root, so this grants nothing beyond the function the host itself returned.
|
|
65
|
+
*/
|
|
66
|
+
const CALLBACK_METHODS = new Set(['call']);
|
|
67
|
+
export function createAppletInvokeGate(input) {
|
|
68
|
+
const now = input.now ?? (() => new Date());
|
|
69
|
+
return {
|
|
70
|
+
id: 'applets.grant',
|
|
71
|
+
phase: 'authz',
|
|
72
|
+
async intercept(ctx, next) {
|
|
73
|
+
// Local calls are not applet calls. This gate only speaks for invokes
|
|
74
|
+
// that arrived over an applet connection.
|
|
75
|
+
if (ctx.origin !== 'remote') {
|
|
76
|
+
return next();
|
|
77
|
+
}
|
|
78
|
+
const binding = ctx.remotePeer ? input.bindingFor(ctx.remotePeer.connectionId) : undefined;
|
|
79
|
+
if (!binding) {
|
|
80
|
+
throw new AppletGateDenied('no-binding', 'No live applet binding for this connection; the lease may have been revoked.');
|
|
81
|
+
}
|
|
82
|
+
// Liveness first, for EVERY method including storage. Consent to run
|
|
83
|
+
// this release is what makes its declared stores addressable at all, so
|
|
84
|
+
// a revoked grant stops a read as surely as it stops a capability.
|
|
85
|
+
const at = now();
|
|
86
|
+
if (binding.grant.revokedAt !== null) {
|
|
87
|
+
throw new AppletGateDenied('grant-revoked', 'Capability grant was revoked.');
|
|
88
|
+
}
|
|
89
|
+
if (binding.lease.revokedAt !== null) {
|
|
90
|
+
throw new AppletGateDenied('lease-revoked', 'Launch lease was revoked.');
|
|
91
|
+
}
|
|
92
|
+
if (binding.lease.expiresAt.getTime() <= at.getTime()) {
|
|
93
|
+
throw new AppletGateDenied('lease-expired', 'Launch lease has expired.');
|
|
94
|
+
}
|
|
95
|
+
if (binding.lease.instanceId !== binding.instanceId ||
|
|
96
|
+
binding.grant.instanceId !== binding.instanceId) {
|
|
97
|
+
throw new AppletGateDenied('instance-mismatched', 'Grant or lease belongs to a different applet instance.');
|
|
98
|
+
}
|
|
99
|
+
// THE GRANT MUST BE FOR THE RELEASE BEING GATED.
|
|
100
|
+
//
|
|
101
|
+
// Instance identity alone stopped being sufficient once a composed CHILD
|
|
102
|
+
// could hold its own grant: a child grant carries the SAME instance id
|
|
103
|
+
// and a different release, so `instance-mismatched` waves it through.
|
|
104
|
+
// Nothing selects one today — the page picks the parent grant by release
|
|
105
|
+
// — but "nothing currently does" is not a control, and this is the one
|
|
106
|
+
// place that can say so for every caller.
|
|
107
|
+
if (binding.grant.release.componentId !== binding.release.componentId ||
|
|
108
|
+
binding.grant.release.version !== binding.release.version ||
|
|
109
|
+
binding.grant.release.bundleHash !== binding.release.bundleHash ||
|
|
110
|
+
// FOUR fields, like every other release comparator in this codebase.
|
|
111
|
+
//
|
|
112
|
+
// VACUOUS TODAY, and worth saying so in the house style: nothing in
|
|
113
|
+
// this repository computes a `manifestHash`, so both sides are null on
|
|
114
|
+
// every product path and this term never decides anything. It is here
|
|
115
|
+
// because two releases with identical bytes and different manifests
|
|
116
|
+
// ARE different consent, and because a comparator that omits it would
|
|
117
|
+
// be the one place in the codebase that does.
|
|
118
|
+
//
|
|
119
|
+
// Distinct from dead code deleted elsewhere on this branch: a
|
|
120
|
+
// duplicated runner gate could never fire in ANY future, while this
|
|
121
|
+
// fires the moment a producer exists.
|
|
122
|
+
(binding.grant.release.manifestHash ?? null) !== (binding.release.manifestHash ?? null)) {
|
|
123
|
+
throw new AppletGateDenied('release-mismatched', 'Capability grant was consented for a different release.');
|
|
124
|
+
}
|
|
125
|
+
if (STORAGE_METHODS.has(ctx.method)) {
|
|
126
|
+
const parsed = z.string().safeParse(ctx.args[0]);
|
|
127
|
+
const descriptorId = parsed.success ? parsed.data : '';
|
|
128
|
+
const declared = binding.manifest.storage.some((store) => store.id === descriptorId);
|
|
129
|
+
if (!declared) {
|
|
130
|
+
throw new AppletGateDenied('storage-undeclared', `Store "${descriptorId}" is not declared by this release.`);
|
|
131
|
+
}
|
|
132
|
+
return next();
|
|
133
|
+
}
|
|
134
|
+
if (ASSET_METHODS.has(ctx.method)) {
|
|
135
|
+
const parsed = z.string().safeParse(ctx.args[0]);
|
|
136
|
+
const assetId = parsed.success ? parsed.data : '';
|
|
137
|
+
const referenced = binding.manifest.assets.some((asset) => asset.assetId === assetId);
|
|
138
|
+
if (!referenced) {
|
|
139
|
+
throw new AppletGateDenied('asset-undeclared', `Asset "${assetId}" is not referenced by this release.`);
|
|
140
|
+
}
|
|
141
|
+
return next();
|
|
142
|
+
}
|
|
143
|
+
if (RUNTIME_METHODS.has(ctx.method) || CALLBACK_METHODS.has(ctx.method)) {
|
|
144
|
+
return next();
|
|
145
|
+
}
|
|
146
|
+
// Anything else is authority. An unknown method reaching here is denied
|
|
147
|
+
// rather than allowed: a method added to the root without a rule should
|
|
148
|
+
// fail closed, not inherit one.
|
|
149
|
+
const parsedCap = z.string().safeParse(ctx.args[0]);
|
|
150
|
+
const capability = parsedCap.success ? parsedCap.data : '';
|
|
151
|
+
if (ctx.method !== 'capabilityInvoke') {
|
|
152
|
+
throw new AppletGateDenied('method-ungoverned', `Method "${ctx.method}" has no applet authority rule; refusing rather than assuming one.`);
|
|
153
|
+
}
|
|
154
|
+
if (!binding.grant.capabilities.includes(capability)) {
|
|
155
|
+
throw new AppletGateDenied('capability-not-granted', `Capability "${capability}" is not on the live grant.`);
|
|
156
|
+
}
|
|
157
|
+
if (!binding.manifest.capabilities.some(({ tag }) => tag === capability)) {
|
|
158
|
+
throw new AppletGateDenied('capability-not-declared', 'Capability was not declared by this release.');
|
|
159
|
+
}
|
|
160
|
+
if (!input.supportsCapability?.(capability)) {
|
|
161
|
+
throw new AppletGateDenied('capability-not-supported', 'Capability has no current host implementation.');
|
|
162
|
+
}
|
|
163
|
+
return next();
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=applet-gate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applet-gate.js","sourceRoot":"","sources":["../src/applet-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,eAAe,EAA8C,MAAM,qBAAqB,CAAC;AAClG,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAe5B,MAAM,OAAO,gBAAiB,SAAQ,eAAe;IACpD,YAAY,MAAc,EAAE,MAAc;QACzC,KAAK,CAAC,MAAM,EAAE,mBAAmB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IAChC,CAAC;CACD;AAED;;;;;;;;;;;;;GAaG;AAEH;;;;GAIG;AACH,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC;AAC9F,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AAC5C;;;;;;GAMG;AACH,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAAC,CAAC;AACpF;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAE3C,MAAM,UAAU,sBAAsB,CAAC,KAMtC;IACA,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAE5C,OAAO;QACN,EAAE,EAAE,eAAe;QACnB,KAAK,EAAE,OAAO;QACd,KAAK,CAAC,SAAS,CAAU,GAAkB,EAAE,IAA4B;YACxE,sEAAsE;YACtE,0CAA0C;YAC1C,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC7B,OAAO,IAAI,EAAE,CAAC;YACf,CAAC;YACD,MAAM,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3F,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,MAAM,IAAI,gBAAgB,CACzB,YAAY,EACZ,8EAA8E,CAC9E,CAAC;YACH,CAAC;YAED,qEAAqE;YACrE,wEAAwE;YACxE,mEAAmE;YACnE,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC;YACjB,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;gBACtC,MAAM,IAAI,gBAAgB,CAAC,eAAe,EAAE,+BAA+B,CAAC,CAAC;YAC9E,CAAC;YACD,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;gBACtC,MAAM,IAAI,gBAAgB,CAAC,eAAe,EAAE,2BAA2B,CAAC,CAAC;YAC1E,CAAC;YACD,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;gBACvD,MAAM,IAAI,gBAAgB,CAAC,eAAe,EAAE,2BAA2B,CAAC,CAAC;YAC1E,CAAC;YACD,IACC,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU;gBAC/C,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,EAC9C,CAAC;gBACF,MAAM,IAAI,gBAAgB,CACzB,qBAAqB,EACrB,wDAAwD,CACxD,CAAC;YACH,CAAC;YAED,iDAAiD;YACjD,EAAE;YACF,yEAAyE;YACzE,uEAAuE;YACvE,sEAAsE;YACtE,yEAAyE;YACzE,uEAAuE;YACvE,0CAA0C;YAC1C,IACC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC,WAAW;gBACjE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,OAAO;gBACzD,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,KAAK,OAAO,CAAC,OAAO,CAAC,UAAU;gBAC/D,qEAAqE;gBACrE,EAAE;gBACF,oEAAoE;gBACpE,uEAAuE;gBACvE,sEAAsE;gBACtE,oEAAoE;gBACpE,sEAAsE;gBACtE,8CAA8C;gBAC9C,EAAE;gBACF,8DAA8D;gBAC9D,oEAAoE;gBACpE,sCAAsC;gBACtC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,EACtF,CAAC;gBACF,MAAM,IAAI,gBAAgB,CACzB,oBAAoB,EACpB,yDAAyD,CACzD,CAAC;YACH,CAAC;YAED,IAAI,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC;gBACrF,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACf,MAAM,IAAI,gBAAgB,CACzB,oBAAoB,EACpB,UAAU,YAAY,oCAAoC,CAC1D,CAAC;gBACH,CAAC;gBACD,OAAO,IAAI,EAAE,CAAC;YACf,CAAC;YAED,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClD,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;gBACtF,IAAI,CAAC,UAAU,EAAE,CAAC;oBACjB,MAAM,IAAI,gBAAgB,CACzB,kBAAkB,EAClB,UAAU,OAAO,sCAAsC,CACvD,CAAC;gBACH,CAAC;gBACD,OAAO,IAAI,EAAE,CAAC;YACf,CAAC;YAED,IAAI,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzE,OAAO,IAAI,EAAE,CAAC;YACf,CAAC;YAED,wEAAwE;YACxE,wEAAwE;YACxE,gCAAgC;YAChC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACpD,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,IAAI,GAAG,CAAC,MAAM,KAAK,kBAAkB,EAAE,CAAC;gBACvC,MAAM,IAAI,gBAAgB,CACzB,mBAAmB,EACnB,WAAW,GAAG,CAAC,MAAM,oEAAoE,CACzF,CAAC;YACH,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACtD,MAAM,IAAI,gBAAgB,CACzB,wBAAwB,EACxB,eAAe,UAAU,6BAA6B,CACtD,CAAC;YACH,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,UAAU,CAAC,EAAE,CAAC;gBAC1E,MAAM,IAAI,gBAAgB,CAAC,yBAAyB,EAAE,8CAA8C,CAAC,CAAC;YACvG,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC7C,MAAM,IAAI,gBAAgB,CAAC,0BAA0B,EAAE,gDAAgD,CAAC,CAAC;YAC1G,CAAC;YACD,OAAO,IAAI,EAAE,CAAC;QACf,CAAC;KACD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one object an applet connection can reach.
|
|
3
|
+
*
|
|
4
|
+
* The host puts exactly this in its reference table for a connection, and
|
|
5
|
+
* `dispatchRequest` derefs `targetRef` through that table — so a frame cannot
|
|
6
|
+
* fabricate a ref and reach anything else. The surface here IS the attack
|
|
7
|
+
* surface, which is why it is small and why every method is named in the gate.
|
|
8
|
+
*
|
|
9
|
+
* Authorization is NOT re-done here; `createAppletInvokeGate` runs first on the
|
|
10
|
+
* `authz` phase. What this does is BIND: it reads scope and authority from the
|
|
11
|
+
* manifest and hands the backend a binding the caller could not have chosen.
|
|
12
|
+
* The gate proves a store was declared; this decides what that declaration
|
|
13
|
+
* MEANS. A caller that could name its own scope could read another viewer's
|
|
14
|
+
* rows.
|
|
15
|
+
*
|
|
16
|
+
* A2 runtime parity: the surface also carries a PRINCIPAL-BOUND runtime handle
|
|
17
|
+
* (`runtimeQuery`, `runtimeCall`, `runtimeToolCall`). The host binds the
|
|
18
|
+
* principal (local: the user; cloud: the viewer); the applet can never name it,
|
|
19
|
+
* and every call runs through the host's invoke pipeline so the same authz
|
|
20
|
+
* chain gates it as any other remote peer.
|
|
21
|
+
*/
|
|
22
|
+
import * as z from 'zod/v4';
|
|
23
|
+
import type { JsonValue } from '@vibesdotdev/shared/types';
|
|
24
|
+
import type { AppletDefinitionManifest, AppletOwnStorageDescriptor } from './schemas/definition.ts';
|
|
25
|
+
export interface AppletStorageBinding {
|
|
26
|
+
readonly descriptorId: string;
|
|
27
|
+
readonly scope: AppletOwnStorageDescriptor['scope'];
|
|
28
|
+
readonly authority: AppletOwnStorageDescriptor['authority'];
|
|
29
|
+
readonly instanceId: string;
|
|
30
|
+
}
|
|
31
|
+
/** One enabled descriptor, projected for an applet: identity and description only. */
|
|
32
|
+
export interface AppletRuntimeDescriptorView {
|
|
33
|
+
readonly id: string;
|
|
34
|
+
readonly name: string;
|
|
35
|
+
readonly description?: string;
|
|
36
|
+
readonly enabled: boolean;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* A callback an applet hands to a runtime call (`subscribe(listener)`): over runtime-rpc it crosses
|
|
40
|
+
* as a callback ref, so the host can call it back across the boundary. The host never sees the
|
|
41
|
+
* applet's function, only a ref it can invoke until the ref is released.
|
|
42
|
+
*/
|
|
43
|
+
export type AppletRuntimeCallback = AppletRuntimeFunction;
|
|
44
|
+
/** A function that crosses the applet boundary as a `call`-only ref: JSON in, JSON (or nothing) out. */
|
|
45
|
+
export type AppletRuntimeFunction = (...values: JsonValue[]) => JsonValue | void | Promise<JsonValue | void>;
|
|
46
|
+
/** One positional argument of a runtime call: bounded JSON, or a callback. */
|
|
47
|
+
export type AppletRuntimeArg = JsonValue | AppletRuntimeCallback;
|
|
48
|
+
/** What a runtime call answers: bounded JSON, or a function (an unsubscribe) that crosses back as a ref. */
|
|
49
|
+
export type AppletRuntimeAnswer = JsonValue | AppletRuntimeFunction;
|
|
50
|
+
/** What a host hands the surface before the surface checks it crosses: an answer, or nothing. */
|
|
51
|
+
export type AppletRuntimeHostValue = AppletRuntimeAnswer | undefined;
|
|
52
|
+
/** What one `runtimeQuery` answers: a bounded page of enabled descriptors. */
|
|
53
|
+
export interface AppletRuntimeQueryView {
|
|
54
|
+
readonly kind: string;
|
|
55
|
+
readonly total: number;
|
|
56
|
+
readonly truncated: boolean;
|
|
57
|
+
readonly descriptors: readonly AppletRuntimeDescriptorView[];
|
|
58
|
+
}
|
|
59
|
+
/** What the host must implement to make an applet's declarations real. */
|
|
60
|
+
export interface AppletSurfaceBackend {
|
|
61
|
+
storageGet: (binding: AppletStorageBinding, key: string) => Promise<JsonValue>;
|
|
62
|
+
storageList: (binding: AppletStorageBinding, query: {
|
|
63
|
+
limit?: number;
|
|
64
|
+
cursor?: string;
|
|
65
|
+
}) => Promise<{
|
|
66
|
+
results: JsonValue[];
|
|
67
|
+
nextCursor: string | null;
|
|
68
|
+
}>;
|
|
69
|
+
storagePut: (binding: AppletStorageBinding, key: string, value: JsonValue) => Promise<void>;
|
|
70
|
+
storageDelete: (binding: AppletStorageBinding, key: string) => Promise<void>;
|
|
71
|
+
assetUrl: (assetId: string, revision: string, digest: string) => Promise<string | null>;
|
|
72
|
+
capabilityInvoke: (capability: string, input: JsonValue) => Promise<JsonValue>;
|
|
73
|
+
/** Enabled descriptors of one kind, already projected; the surface bounds the answer. Absent: this host binds no runtime handle. */
|
|
74
|
+
runtimeQuery?: (kind: string) => Promise<AppletRuntimeQueryView>;
|
|
75
|
+
/** One method call on a resolved runtime asset, through the host's invoke pipeline. Absent: no runtime handle. */
|
|
76
|
+
runtimeCall?: (kind: string, id: string, method: string, args: readonly AppletRuntimeArg[]) => Promise<AppletRuntimeHostValue>;
|
|
77
|
+
/** One tool call, on the runtime the host bound to the principal. Absent: no runtime handle. */
|
|
78
|
+
runtimeToolCall?: (toolId: string, input: JsonValue) => Promise<AppletRuntimeHostValue>;
|
|
79
|
+
}
|
|
80
|
+
export interface AppletRootSurface {
|
|
81
|
+
storageGet: (descriptorId: string, key: string) => Promise<JsonValue>;
|
|
82
|
+
storageList: (descriptorId: string, query?: {
|
|
83
|
+
limit?: number;
|
|
84
|
+
cursor?: string;
|
|
85
|
+
}) => Promise<{
|
|
86
|
+
results: JsonValue[];
|
|
87
|
+
nextCursor: string | null;
|
|
88
|
+
}>;
|
|
89
|
+
storagePut: (descriptorId: string, key: string, value: JsonValue) => Promise<void>;
|
|
90
|
+
storageDelete: (descriptorId: string, key: string) => Promise<void>;
|
|
91
|
+
assetUrl: (assetId: string) => Promise<string | null>;
|
|
92
|
+
capabilityInvoke: (capability: string, input?: JsonValue) => Promise<JsonValue>;
|
|
93
|
+
/** Enabled descriptors of `kind` on the principal-bound runtime, bounded. */
|
|
94
|
+
runtimeQuery: (kind: string) => Promise<AppletRuntimeQueryView>;
|
|
95
|
+
/**
|
|
96
|
+
* One method call on a runtime asset of `kind`/`id`, as the bound principal. Arguments may be
|
|
97
|
+
* callbacks and the answer may be a function: `runtimeCall(kind, id, 'subscribe', listener)`
|
|
98
|
+
* subscribes to an existing store or hook and answers its unsubscribe. No subscribe method exists.
|
|
99
|
+
*/
|
|
100
|
+
runtimeCall: (kind: string, id: string, method: string, ...args: AppletRuntimeArg[]) => Promise<AppletRuntimeAnswer>;
|
|
101
|
+
/** One tool call on the principal-bound runtime, bounded. */
|
|
102
|
+
runtimeToolCall: (toolId: string, input?: JsonValue) => Promise<JsonValue>;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Every method an applet connection may call on its root surface. A host that
|
|
106
|
+
* serves the surface over runtime-rpc advertises exactly these as the listen
|
|
107
|
+
* target's `rootMethods`; an unadvertised method is refused before dispatch.
|
|
108
|
+
*/
|
|
109
|
+
export declare const APPLET_ROOT_SURFACE_METHODS: readonly ["storageGet", "storageList", "storagePut", "storageDelete", "assetUrl", "capabilityInvoke", "runtimeQuery", "runtimeCall", "runtimeToolCall"];
|
|
110
|
+
/** A function value: a callback argument or an unsubscribe answer, carried by the wire as a ref. */
|
|
111
|
+
export declare const appletRuntimeCallbackSchema: z.ZodCustom<AppletRuntimeFunction, AppletRuntimeFunction>;
|
|
112
|
+
/** A host's raw runtime answer, parsed where it enters the surface: a function, bounded JSON, or nothing. */
|
|
113
|
+
export declare const appletRuntimeHostValueSchema: z.ZodOptional<z.ZodUnion<readonly [z.ZodCustom<AppletRuntimeFunction, AppletRuntimeFunction>, z.ZodPipe<z.ZodCustom<import("@vibesdotdev/kernel/bootstrap").JsonValue, import("@vibesdotdev/kernel/bootstrap").JsonValue>, z.ZodTransform<string | number | boolean | import("@vibesdotdev/kernel/schemas/json").JsonObject | import("@vibesdotdev/kernel/schemas/json").JsonArray | null, import("@vibesdotdev/kernel/bootstrap").JsonValue>>]>>;
|
|
114
|
+
/** Most descriptors one runtime query answers. */
|
|
115
|
+
export declare const MAX_RUNTIME_DESCRIPTORS = 100;
|
|
116
|
+
/** Longest description the descriptor projection carries. */
|
|
117
|
+
export declare const MAX_RUNTIME_DESCRIPTION = 280;
|
|
118
|
+
/** What one `runtimeQuery` answers, checked at the surface before it crosses. */
|
|
119
|
+
export declare const appletRuntimeQueryViewSchema: z.ZodObject<{
|
|
120
|
+
kind: z.ZodString;
|
|
121
|
+
total: z.ZodNumber;
|
|
122
|
+
truncated: z.ZodBoolean;
|
|
123
|
+
descriptors: z.ZodArray<z.ZodObject<{
|
|
124
|
+
id: z.ZodString;
|
|
125
|
+
name: z.ZodString;
|
|
126
|
+
description: z.ZodOptional<z.ZodString>;
|
|
127
|
+
enabled: z.ZodBoolean;
|
|
128
|
+
}, z.core.$strip>>;
|
|
129
|
+
}, z.core.$strip>;
|
|
130
|
+
export declare function createAppletRootSurface(input: {
|
|
131
|
+
instanceId: string;
|
|
132
|
+
manifest: AppletDefinitionManifest;
|
|
133
|
+
backend: AppletSurfaceBackend;
|
|
134
|
+
}): AppletRootSurface;
|
|
135
|
+
//# sourceMappingURL=applet-root-surface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applet-root-surface.d.ts","sourceRoot":"","sources":["../src/applet-root-surface.ts"],"names":[],"mappings":"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"}
|