@vibesdotdev/applets 0.0.0-stage → 1.0.0-rc.3
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
|
@@ -0,0 +1,485 @@
|
|
|
1
|
+
import { SYSTEM_OWNER, deleteSurfaceNotification, getSurfaceNotification, listSurfaceNotifications, updateSurfaceNotificationArtifact, writeSurfaceNotification } from '@vibesdotdev/os/surface/store';
|
|
2
|
+
/**
|
|
3
|
+
* `applet` tool — create / list / get / update-source for Applet artifacts.
|
|
4
|
+
*
|
|
5
|
+
* Writes go through the owner-scoped surface store (`@vibesdotdev/os`), the same
|
|
6
|
+
* seam hq-web reads. Owner is derived EXCLUSIVELY from surface-asserted
|
|
7
|
+
* `ctx.metadata` (the trusted channel — see tools/src/agents/
|
|
8
|
+
* trusted-context.ts) and never from tool input: a web/agent surface that
|
|
9
|
+
* verified a session stamps `userId`/`orgId`; owner-less callers (stdio MCP,
|
|
10
|
+
* CLI) act as the vibes-internal operator via the reserved `SYSTEM_OWNER`,
|
|
11
|
+
* exactly the workboard "non-request bridge → SYSTEM_OWNER" convention.
|
|
12
|
+
*/
|
|
13
|
+
import * as z from 'zod/v4';
|
|
14
|
+
import { CapabilityError, CaughtFailureSchema } from '@vibesdotdev/kernel';
|
|
15
|
+
import { JsonObjectSchema } from '@vibesdotdev/kernel/schemas/json';
|
|
16
|
+
import { serviceOrigin } from '@vibesdotdev/infra-core/service';
|
|
17
|
+
import { AppletTemplateDescriptorSchema } from "../templates/template.kind.js";
|
|
18
|
+
import { formatAppletComponentRef, parseAppletComponentRef } from "../component-ref.js";
|
|
19
|
+
import { getLogger } from '@vibesdotdev/logging';
|
|
20
|
+
import { getVibesAppletsClient } from '@vibesdotdev/applets/client';
|
|
21
|
+
import { isAppletNotification, selectAppletArtifact, selectAppletArtifactIndex } from "../selection.js";
|
|
22
|
+
function readString(value) {
|
|
23
|
+
const parsed = z.string().safeParse(value);
|
|
24
|
+
if (!parsed.success)
|
|
25
|
+
return undefined;
|
|
26
|
+
const trimmed = parsed.data.trim();
|
|
27
|
+
return trimmed.length > 0 ? trimmed : undefined;
|
|
28
|
+
}
|
|
29
|
+
const ownerContextMetadataSchema = z.object({
|
|
30
|
+
orgId: z.string().optional(),
|
|
31
|
+
organizationId: z.string().optional(),
|
|
32
|
+
sessionId: z.string().optional(),
|
|
33
|
+
codeSessionId: z.string().optional(),
|
|
34
|
+
actorUserId: z.string().optional(),
|
|
35
|
+
userId: z.string().optional()
|
|
36
|
+
}).passthrough();
|
|
37
|
+
/**
|
|
38
|
+
* Owner from the trusted channel only. Org scope wins over user scope,
|
|
39
|
+
* mirroring `actingScopeFromLocals`.
|
|
40
|
+
*/
|
|
41
|
+
export function ownerFromToolContext(ctx) {
|
|
42
|
+
const parsed = ownerContextMetadataSchema.safeParse(ctx.metadata);
|
|
43
|
+
if (!parsed.success)
|
|
44
|
+
return SYSTEM_OWNER;
|
|
45
|
+
const bag = parsed.data;
|
|
46
|
+
const orgId = readString(bag.orgId) ?? readString(bag.organizationId);
|
|
47
|
+
const sessionId = readString(bag.sessionId) ?? readString(bag.codeSessionId);
|
|
48
|
+
if (orgId) {
|
|
49
|
+
const owner = { ownerType: 'organization', ownerId: orgId };
|
|
50
|
+
if (sessionId)
|
|
51
|
+
owner.sessionId = sessionId;
|
|
52
|
+
return owner;
|
|
53
|
+
}
|
|
54
|
+
const userId = readString(bag.actorUserId) ?? readString(bag.userId);
|
|
55
|
+
if (userId) {
|
|
56
|
+
const owner = { ownerType: 'user', ownerId: userId };
|
|
57
|
+
if (sessionId)
|
|
58
|
+
owner.sessionId = sessionId;
|
|
59
|
+
return owner;
|
|
60
|
+
}
|
|
61
|
+
return sessionId ? { ...SYSTEM_OWNER, sessionId } : SYSTEM_OWNER;
|
|
62
|
+
}
|
|
63
|
+
export async function resolveAppletOwner(ctx, runtime) {
|
|
64
|
+
const fromCtx = ownerFromToolContext(ctx);
|
|
65
|
+
if (!isSystemOwner(fromCtx))
|
|
66
|
+
return fromCtx;
|
|
67
|
+
try {
|
|
68
|
+
const identity = await runtime.context('auth/identity');
|
|
69
|
+
const userId = readString(identity?.userId);
|
|
70
|
+
if (identity?.isAuthenticated === true && userId) {
|
|
71
|
+
const owner = { ownerType: 'user', ownerId: userId };
|
|
72
|
+
if (fromCtx.sessionId)
|
|
73
|
+
owner.sessionId = fromCtx.sessionId;
|
|
74
|
+
return owner;
|
|
75
|
+
}
|
|
76
|
+
return fromCtx;
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
if (error instanceof Error && (CapabilityError.isAbsenceOf(error, 'context', 'auth/identity') || CapabilityError.isAbsenceOf(error, 'runtime/kind', 'context'))) {
|
|
80
|
+
return fromCtx;
|
|
81
|
+
}
|
|
82
|
+
throw error;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
function isSystemOwner(owner) {
|
|
86
|
+
return owner.ownerType === 'system' && owner.ownerId === 'system';
|
|
87
|
+
}
|
|
88
|
+
const toolCallSurfaceSchema = z.object({
|
|
89
|
+
invocationSurface: z.string().optional()
|
|
90
|
+
}).passthrough();
|
|
91
|
+
/**
|
|
92
|
+
* Consumer CLI/MCP invocations are stamped by the tool execution boundary and
|
|
93
|
+
* must cross storage.cloud-api. Owner-app request surfaces stay on HQ's local
|
|
94
|
+
* record. The provenance marker is trusted metadata, never model input.
|
|
95
|
+
*/
|
|
96
|
+
export async function surfaceStoreOptionsForApplet(runtime, ctx, owner) {
|
|
97
|
+
const parsed = toolCallSurfaceSchema.safeParse(ctx.metadata);
|
|
98
|
+
const invocationSurface = readString(parsed.success ? parsed.data.invocationSurface : undefined);
|
|
99
|
+
return invocationSurface === 'consumer' && !isSystemOwner(owner)
|
|
100
|
+
? { target: 'owner-app', apiEndpoint: await hqOrigin(runtime) }
|
|
101
|
+
: { target: 'local' };
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* HQ's owner-app origin: the declared `hq` `infra/service` in the handed
|
|
105
|
+
* runtime's configured service environment (rc04 §2.4). No origin env and no
|
|
106
|
+
* default; an undeclared service fails `NOT_FOUND` `service-undeclared`.
|
|
107
|
+
*/
|
|
108
|
+
async function hqOrigin(runtime) {
|
|
109
|
+
return (await serviceOrigin(runtime, 'hq')).replace(/\/$/, '');
|
|
110
|
+
}
|
|
111
|
+
function appletVisibility(owner, store, id, ownerAppOrigin) {
|
|
112
|
+
if (store === 'owner-app' && owner && owner.ownerType !== 'system' && ownerAppOrigin) {
|
|
113
|
+
const url = `${ownerAppOrigin}/artifacts/${encodeURIComponent(id)}`;
|
|
114
|
+
return {
|
|
115
|
+
url,
|
|
116
|
+
visibility: `This applet is stored in HQ's owner-app store for ${owner.ownerType}/${owner.ownerId} and is visible at ${url}.`
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
if (!owner) {
|
|
120
|
+
return {
|
|
121
|
+
url: null,
|
|
122
|
+
visibility: 'This applet is stored machine-locally without owner metadata and cannot be shown on HQ because no authenticated owner was recorded.'
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
if (owner.ownerType === 'system') {
|
|
126
|
+
return {
|
|
127
|
+
url: null,
|
|
128
|
+
visibility: 'This applet is stored machine-locally under system/system because it was created without an authenticated identity; run vibes auth login, then applet adopt. It cannot be shown on HQ.'
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
return {
|
|
132
|
+
url: null,
|
|
133
|
+
visibility: `This applet is stored machine-locally for ${owner.ownerType}/${owner.ownerId}; it cannot be shown on HQ because it was not written through the HQ owner-app store.`
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
function toSummary(notification, options) {
|
|
137
|
+
const artifact = selectAppletArtifact(notification);
|
|
138
|
+
const owner = notification.ownerType && notification.ownerId
|
|
139
|
+
? { ownerType: notification.ownerType, ownerId: notification.ownerId }
|
|
140
|
+
: null;
|
|
141
|
+
const store = options.target === 'owner-app' ? 'owner-app' : 'local';
|
|
142
|
+
return {
|
|
143
|
+
id: notification.id,
|
|
144
|
+
summary: notification.summary,
|
|
145
|
+
status: notification.status,
|
|
146
|
+
createdAt: notification.createdAt,
|
|
147
|
+
artifactType: artifact?.type ?? 'note',
|
|
148
|
+
sourceFormat: artifact?.sourceFormat ?? null,
|
|
149
|
+
componentRef: artifact?.componentRef ?? null,
|
|
150
|
+
owner,
|
|
151
|
+
store,
|
|
152
|
+
...appletVisibility(owner, store, notification.id, options.apiEndpoint)
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Create the Applet instance that an exact release entitles the caller to.
|
|
157
|
+
*
|
|
158
|
+
* Both clients are resolved through `runtime.query()` rather than by importing
|
|
159
|
+
* another app's internals, which is how cross-package feature code reaches
|
|
160
|
+
* another domain here.
|
|
161
|
+
*
|
|
162
|
+
* A `componentRef` names a component and a version, NOT a bundle digest — and an
|
|
163
|
+
* instance is byte-pinned, so the digest has to be looked up from Platform,
|
|
164
|
+
* which owns releases. Without that lookup this function could only ever return
|
|
165
|
+
* undefined, which is the shape of a feature that cannot fire.
|
|
166
|
+
*
|
|
167
|
+
* FAILS SOFT, deliberately. The notification is already written and is what the
|
|
168
|
+
* agent sees; if no applets or platform client is registered in this runtime, or
|
|
169
|
+
* the version is not published, the tool must not turn a successful create into
|
|
170
|
+
* an error and lose the agent's work. The absence of `instanceId` in the result
|
|
171
|
+
* is the signal, and `instanceWarning` says why.
|
|
172
|
+
*/
|
|
173
|
+
const platformClientSchema = z.object({
|
|
174
|
+
components: z.object({
|
|
175
|
+
listVersions: z.function({
|
|
176
|
+
input: [z.string()],
|
|
177
|
+
output: z.promise(z.object({ results: z.array(z.object({ version: z.string(), bundleHash: z.string() })) }))
|
|
178
|
+
})
|
|
179
|
+
})
|
|
180
|
+
});
|
|
181
|
+
async function createAppletInstanceForRelease(runtime, owner, componentRef, title, description) {
|
|
182
|
+
let bundleHash;
|
|
183
|
+
try {
|
|
184
|
+
const resolved = await runtime.query('runtime/client').withId('platform').resolve();
|
|
185
|
+
const platform = platformClientSchema.safeParse(resolved);
|
|
186
|
+
if (!platform.success)
|
|
187
|
+
throw platform.error;
|
|
188
|
+
const { results } = await platform.data.components.listVersions(componentRef.id);
|
|
189
|
+
const match = results.find((candidate) => candidate.version === componentRef.version);
|
|
190
|
+
if (!match) {
|
|
191
|
+
return {
|
|
192
|
+
instanceWarning: `No published release ${componentRef.id}@${componentRef.version}; created the surface record only.`
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
bundleHash = match.bundleHash;
|
|
196
|
+
}
|
|
197
|
+
catch (error) {
|
|
198
|
+
getLogger('applets:tool', runtime).warn('platform client unavailable; no applet instance created', { error });
|
|
199
|
+
return {
|
|
200
|
+
instanceWarning: 'Platform client unavailable, so no Applet instance was created; the surface record exists.',
|
|
201
|
+
cause: CaughtFailureSchema.parse(error)
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
return createAppletInstance(runtime, owner, {
|
|
205
|
+
componentId: componentRef.id,
|
|
206
|
+
version: componentRef.version,
|
|
207
|
+
bundleHash
|
|
208
|
+
}, title, description);
|
|
209
|
+
}
|
|
210
|
+
async function createAppletInstance(runtime, owner, release, title, description) {
|
|
211
|
+
try {
|
|
212
|
+
const client = await getVibesAppletsClient(runtime);
|
|
213
|
+
const scoped = client.forRequest({ ownerType: owner.ownerType, ownerId: owner.ownerId });
|
|
214
|
+
const instanceInput = {
|
|
215
|
+
release,
|
|
216
|
+
title
|
|
217
|
+
};
|
|
218
|
+
if (description !== undefined)
|
|
219
|
+
instanceInput.description = description;
|
|
220
|
+
const instance = await scoped.instances.create(instanceInput);
|
|
221
|
+
return { instanceId: instance.id };
|
|
222
|
+
}
|
|
223
|
+
catch (error) {
|
|
224
|
+
getLogger('applets:tool', runtime).warn('applets client unavailable; no applet instance created', { error });
|
|
225
|
+
return {
|
|
226
|
+
instanceWarning: 'Applets client unavailable, so no Applet instance was created; the surface record exists.',
|
|
227
|
+
cause: CaughtFailureSchema.parse(error)
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
function registeredAppletTemplates(runtime) {
|
|
232
|
+
if (!runtime.hasKind('hq/applet-template'))
|
|
233
|
+
return [];
|
|
234
|
+
return runtime
|
|
235
|
+
.query('hq/applet-template')
|
|
236
|
+
.descriptors()
|
|
237
|
+
.map((descriptor) => AppletTemplateDescriptorSchema.parse(descriptor));
|
|
238
|
+
}
|
|
239
|
+
export default {
|
|
240
|
+
async execute(input, runtime, ctx) {
|
|
241
|
+
if (input.action === 'templates') {
|
|
242
|
+
const templates = registeredAppletTemplates(runtime)
|
|
243
|
+
.map(({ id, name, description, release, propsDoc, requiredProps, exampleProps, tags }) => ({
|
|
244
|
+
id,
|
|
245
|
+
name,
|
|
246
|
+
description,
|
|
247
|
+
componentRef: formatAppletComponentRef({ id: release.componentId, version: release.version }),
|
|
248
|
+
release,
|
|
249
|
+
propsDoc,
|
|
250
|
+
requiredProps,
|
|
251
|
+
exampleProps,
|
|
252
|
+
tags
|
|
253
|
+
}))
|
|
254
|
+
.sort((a, b) => a.id.localeCompare(b.id));
|
|
255
|
+
return { templates };
|
|
256
|
+
}
|
|
257
|
+
const owner = await resolveAppletOwner(ctx, runtime);
|
|
258
|
+
const storeOptions = await surfaceStoreOptionsForApplet(runtime, ctx, owner);
|
|
259
|
+
if (input.action === 'adopt') {
|
|
260
|
+
if (isSystemOwner(owner)) {
|
|
261
|
+
throw new Error('Cannot adopt applets without an authenticated identity. Run `vibes auth login` first.');
|
|
262
|
+
}
|
|
263
|
+
const ownerAppOptions = {
|
|
264
|
+
target: 'owner-app',
|
|
265
|
+
apiEndpoint: await hqOrigin(runtime)
|
|
266
|
+
};
|
|
267
|
+
let sourceApplets;
|
|
268
|
+
if (input.all) {
|
|
269
|
+
sourceApplets = (await listSurfaceNotifications(runtime, SYSTEM_OWNER, undefined, { target: 'local' })).filter((notification) => isAppletNotification(notification) &&
|
|
270
|
+
notification.ownerType === 'system' &&
|
|
271
|
+
notification.ownerId === 'system');
|
|
272
|
+
}
|
|
273
|
+
else {
|
|
274
|
+
const source = await getSurfaceNotification(runtime, SYSTEM_OWNER, input.appletId, {
|
|
275
|
+
target: 'local'
|
|
276
|
+
});
|
|
277
|
+
if (source &&
|
|
278
|
+
isAppletNotification(source) &&
|
|
279
|
+
source.ownerType === 'system' &&
|
|
280
|
+
source.ownerId === 'system') {
|
|
281
|
+
sourceApplets = [source];
|
|
282
|
+
}
|
|
283
|
+
else {
|
|
284
|
+
const remote = await getSurfaceNotification(runtime, owner, input.appletId, ownerAppOptions);
|
|
285
|
+
const local = remote
|
|
286
|
+
? undefined
|
|
287
|
+
: await getSurfaceNotification(runtime, owner, input.appletId, { target: 'local' });
|
|
288
|
+
const existing = remote ?? local;
|
|
289
|
+
if (!existing) {
|
|
290
|
+
throw new Error(`Applet not found or not eligible for adoption: ${input.appletId}`);
|
|
291
|
+
}
|
|
292
|
+
return {
|
|
293
|
+
applet: toSummary(existing, remote ? ownerAppOptions : { target: 'local' }),
|
|
294
|
+
message: 'Applet is already owned by the current authenticated owner; no adoption was needed.'
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
if (sourceApplets.length === 0) {
|
|
299
|
+
return {
|
|
300
|
+
applets: [],
|
|
301
|
+
adoptions: [],
|
|
302
|
+
message: 'No local system-owned applets need adoption.'
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
const adoptions = [];
|
|
306
|
+
const summaries = [];
|
|
307
|
+
for (const source of sourceApplets) {
|
|
308
|
+
const notificationInput = {
|
|
309
|
+
channelId: source.channelId,
|
|
310
|
+
scope: source.scope,
|
|
311
|
+
summary: source.summary,
|
|
312
|
+
artifacts: source.artifacts,
|
|
313
|
+
actions: source.actions
|
|
314
|
+
};
|
|
315
|
+
if (source.detail !== undefined)
|
|
316
|
+
notificationInput.detail = source.detail;
|
|
317
|
+
const notification = await writeSurfaceNotification(runtime, owner, notificationInput, ownerAppOptions);
|
|
318
|
+
await deleteSurfaceNotification(runtime, SYSTEM_OWNER, source.id, { target: 'local' });
|
|
319
|
+
const applet = toSummary(notification, ownerAppOptions);
|
|
320
|
+
summaries.push(applet);
|
|
321
|
+
adoptions.push({
|
|
322
|
+
sourceAppletId: source.id,
|
|
323
|
+
adoptedAppletId: notification.id,
|
|
324
|
+
url: applet.url
|
|
325
|
+
});
|
|
326
|
+
}
|
|
327
|
+
return {
|
|
328
|
+
...(summaries.length === 1 ? { applet: summaries[0] } : { applets: summaries }),
|
|
329
|
+
adoptions,
|
|
330
|
+
message: `Adopted ${adoptions.length} local system-owned applet${adoptions.length === 1 ? '' : 's'} into the HQ owner-app store.`
|
|
331
|
+
};
|
|
332
|
+
}
|
|
333
|
+
if (input.action === 'create') {
|
|
334
|
+
const modes = [input.source, input.componentRef, input.templateId].filter((value) => value !== undefined);
|
|
335
|
+
if (modes.length !== 1) {
|
|
336
|
+
throw new Error('applet create requires exactly one of `source`, `componentRef`, or `templateId`.');
|
|
337
|
+
}
|
|
338
|
+
const inputComponentRef = input.componentRef
|
|
339
|
+
? parseAppletComponentRef(input.componentRef)
|
|
340
|
+
: undefined;
|
|
341
|
+
if (input.componentRef && !inputComponentRef) {
|
|
342
|
+
throw new Error(`Invalid applet componentRef: ${input.componentRef}`);
|
|
343
|
+
}
|
|
344
|
+
const template = input.templateId
|
|
345
|
+
? registeredAppletTemplates(runtime).find((candidate) => candidate.id === input.templateId)
|
|
346
|
+
: undefined;
|
|
347
|
+
if (input.templateId && !template) {
|
|
348
|
+
const available = registeredAppletTemplates(runtime)
|
|
349
|
+
.map((candidate) => candidate.id)
|
|
350
|
+
.sort()
|
|
351
|
+
.join(', ');
|
|
352
|
+
throw new Error(`Applet template not found: ${input.templateId}. Available templates: ${available || '(none)'}.`);
|
|
353
|
+
}
|
|
354
|
+
if (template) {
|
|
355
|
+
const defaultPropsParsed = JsonObjectSchema.safeParse(template.defaults.props);
|
|
356
|
+
const defaultPropsRecord = defaultPropsParsed.success ? defaultPropsParsed.data : {};
|
|
357
|
+
const propsParsed = JsonObjectSchema.safeParse(input.content?.props);
|
|
358
|
+
const propsRecord = propsParsed.success
|
|
359
|
+
? { ...defaultPropsRecord, ...propsParsed.data }
|
|
360
|
+
: defaultPropsRecord;
|
|
361
|
+
const missingProps = template.requiredProps.filter((key) => !Object.hasOwn(propsRecord, key));
|
|
362
|
+
if (missingProps.length > 0) {
|
|
363
|
+
throw new Error(`Applet template ${template.id} is missing required content.props keys: ${missingProps.join(', ')}. See propsDoc for the template contract.`);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
const templateComponentRef = template
|
|
367
|
+
? { id: template.release.componentId, version: template.release.version }
|
|
368
|
+
: undefined;
|
|
369
|
+
const componentRef = templateComponentRef ?? inputComponentRef;
|
|
370
|
+
const formattedComponentRef = componentRef
|
|
371
|
+
? formatAppletComponentRef(componentRef)
|
|
372
|
+
: undefined;
|
|
373
|
+
const source = input.source;
|
|
374
|
+
const sourceFormat = input.source
|
|
375
|
+
? (input.sourceFormat ?? 'svelte-single-file-component')
|
|
376
|
+
: input.sourceFormat;
|
|
377
|
+
const content = template
|
|
378
|
+
? {
|
|
379
|
+
...template.defaults,
|
|
380
|
+
...input.content,
|
|
381
|
+
props: (() => {
|
|
382
|
+
const merged = {};
|
|
383
|
+
const defaultProps = JsonObjectSchema.safeParse(template.defaults.props);
|
|
384
|
+
if (defaultProps.success)
|
|
385
|
+
Object.assign(merged, defaultProps.data);
|
|
386
|
+
const inputProps = JsonObjectSchema.safeParse(input.content?.props);
|
|
387
|
+
if (inputProps.success)
|
|
388
|
+
Object.assign(merged, inputProps.data);
|
|
389
|
+
return merged;
|
|
390
|
+
})(),
|
|
391
|
+
template: { id: template.id, name: template.name }
|
|
392
|
+
}
|
|
393
|
+
: input.content;
|
|
394
|
+
const artifact = {
|
|
395
|
+
type: formattedComponentRef ? 'component' : 'applet',
|
|
396
|
+
description: input.detail ?? input.title,
|
|
397
|
+
browserRuntime: true
|
|
398
|
+
};
|
|
399
|
+
if (sourceFormat)
|
|
400
|
+
artifact.sourceFormat = sourceFormat;
|
|
401
|
+
if (formattedComponentRef)
|
|
402
|
+
artifact.componentRef = formattedComponentRef;
|
|
403
|
+
if (content)
|
|
404
|
+
artifact.content = content;
|
|
405
|
+
if (source !== undefined)
|
|
406
|
+
artifact.source = source;
|
|
407
|
+
const notification = await writeSurfaceNotification(runtime, owner, {
|
|
408
|
+
channelId: 'applet',
|
|
409
|
+
scope: 'agent',
|
|
410
|
+
summary: input.title,
|
|
411
|
+
detail: input.detail,
|
|
412
|
+
artifacts: [artifact],
|
|
413
|
+
actions: []
|
|
414
|
+
}, storeOptions);
|
|
415
|
+
// An exact release also becomes a real Applet INSTANCE.
|
|
416
|
+
//
|
|
417
|
+
// Until now this tool wrote a surface notification and nothing else, so
|
|
418
|
+
// an applet created the way agents actually create one could not declare
|
|
419
|
+
// storage, request capabilities, or contribute anything — those all hang
|
|
420
|
+
// off `applet_instances`, which this path never touched.
|
|
421
|
+
//
|
|
422
|
+
// The applets SPEC already settles which world is canonical: it names
|
|
423
|
+
// Applet "the canonical product noun", says Output and Artifact are
|
|
424
|
+
// "legacy persistence/projection terms, not competing products", and
|
|
425
|
+
// lists re-homing this tool with "legacy inline actions
|
|
426
|
+
// compatibility-only" as migration debt. The notification stays as the
|
|
427
|
+
// agent-facing projection; the instance is the record everything else
|
|
428
|
+
// reads.
|
|
429
|
+
//
|
|
430
|
+
// Component refs resolve their release digest from Platform; templates
|
|
431
|
+
// already carry the exact release. Inline compatibility source cannot
|
|
432
|
+
// create an instance because no published release exists to pin.
|
|
433
|
+
const instanceResult = template
|
|
434
|
+
? await createAppletInstance(runtime, owner, template.release, input.title, input.detail)
|
|
435
|
+
: inputComponentRef
|
|
436
|
+
? await createAppletInstanceForRelease(runtime, owner, inputComponentRef, input.title, input.detail)
|
|
437
|
+
: {};
|
|
438
|
+
const applet = toSummary(notification, storeOptions);
|
|
439
|
+
const output = {
|
|
440
|
+
applet,
|
|
441
|
+
message: applet.url ? `Applet created. View it at ${applet.url}` : `Applet created. ${applet.visibility}`
|
|
442
|
+
};
|
|
443
|
+
if (instanceResult.instanceId)
|
|
444
|
+
output.instanceId = instanceResult.instanceId;
|
|
445
|
+
if (instanceResult.instanceWarning)
|
|
446
|
+
output.instanceWarning = instanceResult.instanceWarning;
|
|
447
|
+
return output;
|
|
448
|
+
}
|
|
449
|
+
if (input.action === 'list') {
|
|
450
|
+
const notifications = await listSurfaceNotifications(runtime, owner, input.status, storeOptions);
|
|
451
|
+
const applets = notifications
|
|
452
|
+
.filter(isAppletNotification)
|
|
453
|
+
.sort((a, b) => b.createdAt.localeCompare(a.createdAt))
|
|
454
|
+
.slice(0, input.limit ?? 50)
|
|
455
|
+
.map((notification) => toSummary(notification, storeOptions));
|
|
456
|
+
return { applets };
|
|
457
|
+
}
|
|
458
|
+
if (input.action === 'get') {
|
|
459
|
+
const notification = await getSurfaceNotification(runtime, owner, input.appletId, storeOptions);
|
|
460
|
+
if (!notification)
|
|
461
|
+
throw new Error(`Applet not found: ${input.appletId}`);
|
|
462
|
+
return { applet: toSummary(notification, storeOptions), notification };
|
|
463
|
+
}
|
|
464
|
+
if (input.action === 'update-source') {
|
|
465
|
+
const notification = await getSurfaceNotification(runtime, owner, input.appletId, storeOptions);
|
|
466
|
+
if (!notification)
|
|
467
|
+
throw new Error(`Applet not found: ${input.appletId}`);
|
|
468
|
+
const artifactIndex = selectAppletArtifactIndex(notification);
|
|
469
|
+
if (artifactIndex === -1) {
|
|
470
|
+
throw new Error(`Not an applet: ${input.appletId} carries no applet artifact.`);
|
|
471
|
+
}
|
|
472
|
+
const patch = {
|
|
473
|
+
source: input.source
|
|
474
|
+
};
|
|
475
|
+
if (input.sourceFormat)
|
|
476
|
+
patch.sourceFormat = input.sourceFormat;
|
|
477
|
+
if (input.detail !== undefined)
|
|
478
|
+
patch.description = input.detail;
|
|
479
|
+
const updated = await updateSurfaceNotificationArtifact(runtime, owner, input.appletId, artifactIndex, patch, storeOptions);
|
|
480
|
+
return { applet: toSummary(updated, storeOptions), notification: updated };
|
|
481
|
+
}
|
|
482
|
+
throw new Error('Unknown action');
|
|
483
|
+
}
|
|
484
|
+
};
|
|
485
|
+
//# sourceMappingURL=applet.impl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applet.impl.js","sourceRoot":"","sources":["../../src/tools/applet.impl.ts"],"names":[],"mappings":"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"}
|