@vibesdotdev/docs 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 +74 -2
- package/dist/cli/cli.plugin.d.ts +14 -0
- package/dist/cli/cli.plugin.d.ts.map +1 -0
- package/dist/cli/cli.plugin.js +57 -0
- package/dist/cli/cli.plugin.js.map +1 -0
- package/dist/cli/commands/docs.list.command.descriptor.d.ts +33 -0
- package/dist/cli/commands/docs.list.command.descriptor.d.ts.map +1 -0
- package/dist/cli/commands/docs.list.command.descriptor.js +34 -0
- package/dist/cli/commands/docs.list.command.descriptor.js.map +1 -0
- package/dist/cli/commands/docs.list.command.impl.d.ts +25 -0
- package/dist/cli/commands/docs.list.command.impl.d.ts.map +1 -0
- package/dist/cli/commands/docs.list.command.impl.js +87 -0
- package/dist/cli/commands/docs.list.command.impl.js.map +1 -0
- package/dist/cli/commands/docs.show.command.descriptor.d.ts +44 -0
- package/dist/cli/commands/docs.show.command.descriptor.d.ts.map +1 -0
- package/dist/cli/commands/docs.show.command.descriptor.js +48 -0
- package/dist/cli/commands/docs.show.command.descriptor.js.map +1 -0
- package/dist/cli/commands/docs.show.command.impl.d.ts +26 -0
- package/dist/cli/commands/docs.show.command.impl.d.ts.map +1 -0
- package/dist/cli/commands/docs.show.command.impl.js +82 -0
- package/dist/cli/commands/docs.show.command.impl.js.map +1 -0
- package/dist/cli/commands/generate/docs.generate.cli-command.descriptor.d.ts +4 -0
- package/dist/cli/commands/generate/docs.generate.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/commands/generate/docs.generate.cli-command.descriptor.js +58 -0
- package/dist/cli/commands/generate/docs.generate.cli-command.descriptor.js.map +1 -0
- package/dist/cli/commands/generate/docs.generate.cli-command.impl.d.ts +24 -0
- package/dist/cli/commands/generate/docs.generate.cli-command.impl.d.ts.map +1 -0
- package/dist/cli/commands/generate/docs.generate.cli-command.impl.js +283 -0
- package/dist/cli/commands/generate/docs.generate.cli-command.impl.js.map +1 -0
- package/dist/cli/commands/man/man.cli-command.descriptor.d.ts +4 -0
- package/dist/cli/commands/man/man.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/commands/man/man.cli-command.descriptor.js +32 -0
- package/dist/cli/commands/man/man.cli-command.descriptor.js.map +1 -0
- package/dist/cli/commands/man/man.cli-command.impl.d.ts +23 -0
- package/dist/cli/commands/man/man.cli-command.impl.d.ts.map +1 -0
- package/dist/cli/commands/man/man.cli-command.impl.js +22 -0
- package/dist/cli/commands/man/man.cli-command.impl.js.map +1 -0
- package/dist/cli/commands/open/docs.open.cli-command.descriptor.d.ts +4 -0
- package/dist/cli/commands/open/docs.open.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/commands/open/docs.open.cli-command.descriptor.js +18 -0
- package/dist/cli/commands/open/docs.open.cli-command.descriptor.js.map +1 -0
- package/dist/cli/commands/open/docs.open.cli-command.impl.d.ts +14 -0
- package/dist/cli/commands/open/docs.open.cli-command.impl.d.ts.map +1 -0
- package/dist/cli/commands/open/docs.open.cli-command.impl.js +52 -0
- package/dist/cli/commands/open/docs.open.cli-command.impl.js.map +1 -0
- package/dist/cli/commands/search.command.descriptor.d.ts +36 -0
- package/dist/cli/commands/search.command.descriptor.d.ts.map +1 -0
- package/dist/cli/commands/search.command.descriptor.js +35 -0
- package/dist/cli/commands/search.command.descriptor.js.map +1 -0
- package/dist/cli/commands/search.command.impl.d.ts +25 -0
- package/dist/cli/commands/search.command.impl.d.ts.map +1 -0
- package/dist/cli/commands/search.command.impl.js +113 -0
- package/dist/cli/commands/search.command.impl.js.map +1 -0
- package/dist/cli/directives/card.d.ts +11 -0
- package/dist/cli/directives/card.d.ts.map +1 -0
- package/dist/cli/directives/card.js +18 -0
- package/dist/cli/directives/card.js.map +1 -0
- package/dist/cli/directives/descriptor.d.ts +11 -0
- package/dist/cli/directives/descriptor.d.ts.map +1 -0
- package/dist/cli/directives/descriptor.js +20 -0
- package/dist/cli/directives/descriptor.js.map +1 -0
- package/dist/cli/directives/endpoint.d.ts +8 -0
- package/dist/cli/directives/endpoint.d.ts.map +1 -0
- package/dist/cli/directives/endpoint.js +31 -0
- package/dist/cli/directives/endpoint.js.map +1 -0
- package/dist/cli/directives/index.d.ts +9 -0
- package/dist/cli/directives/index.d.ts.map +1 -0
- package/dist/cli/directives/index.js +37 -0
- package/dist/cli/directives/index.js.map +1 -0
- package/dist/cli/directives/install.d.ts +12 -0
- package/dist/cli/directives/install.d.ts.map +1 -0
- package/dist/cli/directives/install.js +27 -0
- package/dist/cli/directives/install.js.map +1 -0
- package/dist/cli/directives/shell.d.ts +10 -0
- package/dist/cli/directives/shell.d.ts.map +1 -0
- package/dist/cli/directives/shell.js +16 -0
- package/dist/cli/directives/shell.js.map +1 -0
- package/dist/cli/directives/usage.d.ts +9 -0
- package/dist/cli/directives/usage.d.ts.map +1 -0
- package/dist/cli/directives/usage.js +13 -0
- package/dist/cli/directives/usage.js.map +1 -0
- package/dist/cli/docs/docs.cli.docs.descriptor.d.ts +22 -0
- package/dist/cli/docs/docs.cli.docs.descriptor.d.ts.map +1 -0
- package/dist/cli/docs/docs.cli.docs.descriptor.js +92 -0
- package/dist/cli/docs/docs.cli.docs.descriptor.js.map +1 -0
- package/dist/cli/docs.cli-group.descriptor.d.ts +4 -0
- package/dist/cli/docs.cli-group.descriptor.d.ts.map +1 -0
- package/dist/cli/docs.cli-group.descriptor.js +11 -0
- package/dist/cli/docs.cli-group.descriptor.js.map +1 -0
- package/dist/client/citations.d.ts +11 -0
- package/dist/client/citations.d.ts.map +1 -0
- package/dist/client/citations.js +197 -0
- package/dist/client/citations.js.map +1 -0
- package/dist/client/docs-client.d.ts +51 -0
- package/dist/client/docs-client.d.ts.map +1 -0
- package/dist/client/docs-client.js +298 -0
- package/dist/client/docs-client.js.map +1 -0
- package/dist/client/index.d.ts +12 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +13 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/types.d.ts +26 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/types.js +2 -0
- package/dist/client/types.js.map +1 -0
- package/dist/config/docs.svelte.config.descriptor.d.ts +50 -0
- package/dist/config/docs.svelte.config.descriptor.d.ts.map +1 -0
- package/dist/config/docs.svelte.config.descriptor.js +46 -0
- package/dist/config/docs.svelte.config.descriptor.js.map +1 -0
- package/dist/config/documents.source-refresh.config.descriptor.d.ts +41 -0
- package/dist/config/documents.source-refresh.config.descriptor.d.ts.map +1 -0
- package/dist/config/documents.source-refresh.config.descriptor.js +39 -0
- package/dist/config/documents.source-refresh.config.descriptor.js.map +1 -0
- package/dist/directives/index.d.ts +4 -0
- package/dist/directives/index.d.ts.map +1 -0
- package/dist/directives/index.js +3 -0
- package/dist/directives/index.js.map +1 -0
- package/dist/directives/registry.d.ts +31 -0
- package/dist/directives/registry.d.ts.map +1 -0
- package/dist/directives/registry.js +65 -0
- package/dist/directives/registry.js.map +1 -0
- package/dist/directives/types.d.ts +33 -0
- package/dist/directives/types.d.ts.map +1 -0
- package/dist/directives/types.js +2 -0
- package/dist/directives/types.js.map +1 -0
- package/dist/docs/agent-voice.docs.descriptor.d.ts +30 -0
- package/dist/docs/agent-voice.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/agent-voice.docs.descriptor.js +107 -0
- package/dist/docs/agent-voice.docs.descriptor.js.map +1 -0
- package/dist/docs/charts.usage.docs.descriptor.d.ts +27 -0
- package/dist/docs/charts.usage.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/charts.usage.docs.descriptor.js +90 -0
- package/dist/docs/charts.usage.docs.descriptor.js.map +1 -0
- package/dist/docs/command-palette.actions.docs.descriptor.d.ts +25 -0
- package/dist/docs/command-palette.actions.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/command-palette.actions.docs.descriptor.js +80 -0
- package/dist/docs/command-palette.actions.docs.descriptor.js.map +1 -0
- package/dist/docs/docs.directives.docs.descriptor.d.ts +22 -0
- package/dist/docs/docs.directives.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/docs.directives.docs.descriptor.js +104 -0
- package/dist/docs/docs.directives.docs.descriptor.js.map +1 -0
- package/dist/docs/docs.topics.docs.descriptor.d.ts +22 -0
- package/dist/docs/docs.topics.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/docs.topics.docs.descriptor.js +90 -0
- package/dist/docs/docs.topics.docs.descriptor.js.map +1 -0
- package/dist/docs/fleet-pairing-direct.docs.descriptor.d.ts +30 -0
- package/dist/docs/fleet-pairing-direct.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/fleet-pairing-direct.docs.descriptor.js +93 -0
- package/dist/docs/fleet-pairing-direct.docs.descriptor.js.map +1 -0
- package/dist/docs/fleet-pairing-mdns.docs.descriptor.d.ts +30 -0
- package/dist/docs/fleet-pairing-mdns.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/fleet-pairing-mdns.docs.descriptor.js +88 -0
- package/dist/docs/fleet-pairing-mdns.docs.descriptor.js.map +1 -0
- package/dist/docs/fleet-pairing-platform.docs.descriptor.d.ts +30 -0
- package/dist/docs/fleet-pairing-platform.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/fleet-pairing-platform.docs.descriptor.js +101 -0
- package/dist/docs/fleet-pairing-platform.docs.descriptor.js.map +1 -0
- package/dist/docs/fleet-pairing.docs.descriptor.d.ts +28 -0
- package/dist/docs/fleet-pairing.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/fleet-pairing.docs.descriptor.js +89 -0
- package/dist/docs/fleet-pairing.docs.descriptor.js.map +1 -0
- package/dist/docs/getting-started-cli.docs.descriptor.d.ts +4 -0
- package/dist/docs/getting-started-cli.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/getting-started-cli.docs.descriptor.js +141 -0
- package/dist/docs/getting-started-cli.docs.descriptor.js.map +1 -0
- package/dist/docs/getting-started.concepts.docs.descriptor.d.ts +4 -0
- package/dist/docs/getting-started.concepts.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/getting-started.concepts.docs.descriptor.js +100 -0
- package/dist/docs/getting-started.concepts.docs.descriptor.js.map +1 -0
- package/dist/docs/getting-started.docs.descriptor.d.ts +4 -0
- package/dist/docs/getting-started.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/getting-started.docs.descriptor.js +63 -0
- package/dist/docs/getting-started.docs.descriptor.js.map +1 -0
- package/dist/docs/getting-started.first-query.docs.descriptor.d.ts +4 -0
- package/dist/docs/getting-started.first-query.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/getting-started.first-query.docs.descriptor.js +95 -0
- package/dist/docs/getting-started.first-query.docs.descriptor.js.map +1 -0
- package/dist/docs/guided-flows.flows.docs.descriptor.d.ts +22 -0
- package/dist/docs/guided-flows.flows.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/guided-flows.flows.docs.descriptor.js +114 -0
- package/dist/docs/guided-flows.flows.docs.descriptor.js.map +1 -0
- package/dist/docs/runtime-rpc-relay.docs.descriptor.d.ts +19 -0
- package/dist/docs/runtime-rpc-relay.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/runtime-rpc-relay.docs.descriptor.js +140 -0
- package/dist/docs/runtime-rpc-relay.docs.descriptor.js.map +1 -0
- package/dist/docs/tutorials.ai-text-generation.docs.descriptor.d.ts +4 -0
- package/dist/docs/tutorials.ai-text-generation.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/tutorials.ai-text-generation.docs.descriptor.js +115 -0
- package/dist/docs/tutorials.ai-text-generation.docs.descriptor.js.map +1 -0
- package/dist/docs/tutorials.build-an-app.docs.descriptor.d.ts +4 -0
- package/dist/docs/tutorials.build-an-app.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/tutorials.build-an-app.docs.descriptor.js +172 -0
- package/dist/docs/tutorials.build-an-app.docs.descriptor.js.map +1 -0
- package/dist/docs/tutorials.crud-collection.docs.descriptor.d.ts +4 -0
- package/dist/docs/tutorials.crud-collection.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/tutorials.crud-collection.docs.descriptor.js +142 -0
- package/dist/docs/tutorials.crud-collection.docs.descriptor.js.map +1 -0
- package/dist/docs/tutorials.docs.descriptor.d.ts +4 -0
- package/dist/docs/tutorials.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/tutorials.docs.descriptor.js +52 -0
- package/dist/docs/tutorials.docs.descriptor.js.map +1 -0
- package/dist/docs/tutorials.runtime-plugin.docs.descriptor.d.ts +4 -0
- package/dist/docs/tutorials.runtime-plugin.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/tutorials.runtime-plugin.docs.descriptor.js +121 -0
- package/dist/docs/tutorials.runtime-plugin.docs.descriptor.js.map +1 -0
- package/dist/docs.plugin.d.ts +12 -0
- package/dist/docs.plugin.d.ts.map +1 -0
- package/dist/docs.plugin.js +118 -0
- package/dist/docs.plugin.js.map +1 -0
- package/dist/documents/documents.cloud.plugin.d.ts +3 -0
- package/dist/documents/documents.cloud.plugin.d.ts.map +1 -0
- package/dist/documents/documents.cloud.plugin.js +26 -0
- package/dist/documents/documents.cloud.plugin.js.map +1 -0
- package/dist/documents/documents.consumer.plugin.d.ts +3 -0
- package/dist/documents/documents.consumer.plugin.d.ts.map +1 -0
- package/dist/documents/documents.consumer.plugin.js +26 -0
- package/dist/documents/documents.consumer.plugin.js.map +1 -0
- package/dist/documents/documents.plugin.d.ts +3 -0
- package/dist/documents/documents.plugin.d.ts.map +1 -0
- package/dist/documents/documents.plugin.js +33 -0
- package/dist/documents/documents.plugin.js.map +1 -0
- package/dist/documents/docx/client.d.ts +56 -0
- package/dist/documents/docx/client.d.ts.map +1 -0
- package/dist/documents/docx/client.js +90 -0
- package/dist/documents/docx/client.js.map +1 -0
- package/dist/documents/docx/extract.d.ts +12 -0
- package/dist/documents/docx/extract.d.ts.map +1 -0
- package/dist/documents/docx/extract.js +62 -0
- package/dist/documents/docx/extract.js.map +1 -0
- package/dist/documents/docx/generator.d.ts +49 -0
- package/dist/documents/docx/generator.d.ts.map +1 -0
- package/dist/documents/docx/generator.js +101 -0
- package/dist/documents/docx/generator.js.map +1 -0
- package/dist/documents/docx/index.d.ts +19 -0
- package/dist/documents/docx/index.d.ts.map +1 -0
- package/dist/documents/docx/index.js +16 -0
- package/dist/documents/docx/index.js.map +1 -0
- package/dist/documents/docx/kinds.d.ts +10 -0
- package/dist/documents/docx/kinds.d.ts.map +1 -0
- package/dist/documents/docx/kinds.js +11 -0
- package/dist/documents/docx/kinds.js.map +1 -0
- package/dist/documents/docx/plugin/docx.plugin.d.ts +9 -0
- package/dist/documents/docx/plugin/docx.plugin.d.ts.map +1 -0
- package/dist/documents/docx/plugin/docx.plugin.js +35 -0
- package/dist/documents/docx/plugin/docx.plugin.js.map +1 -0
- package/dist/documents/docx/schemas/generator.d.ts +10 -0
- package/dist/documents/docx/schemas/generator.d.ts.map +1 -0
- package/dist/documents/docx/schemas/generator.js +2 -0
- package/dist/documents/docx/schemas/generator.js.map +1 -0
- package/dist/documents/docx/schemas/index.d.ts +4 -0
- package/dist/documents/docx/schemas/index.d.ts.map +1 -0
- package/dist/documents/docx/schemas/index.js +2 -0
- package/dist/documents/docx/schemas/index.js.map +1 -0
- package/dist/documents/docx/schemas/runtime.d.ts +68 -0
- package/dist/documents/docx/schemas/runtime.d.ts.map +1 -0
- package/dist/documents/docx/schemas/runtime.js +30 -0
- package/dist/documents/docx/schemas/runtime.js.map +1 -0
- package/dist/documents/docx/schemas/template-registry.d.ts +21 -0
- package/dist/documents/docx/schemas/template-registry.d.ts.map +1 -0
- package/dist/documents/docx/schemas/template-registry.js +2 -0
- package/dist/documents/docx/schemas/template-registry.js.map +1 -0
- package/dist/documents/docx/templates/index.d.ts +3 -0
- package/dist/documents/docx/templates/index.d.ts.map +1 -0
- package/dist/documents/docx/templates/index.js +2 -0
- package/dist/documents/docx/templates/index.js.map +1 -0
- package/dist/documents/docx/templates/loader.d.ts +20 -0
- package/dist/documents/docx/templates/loader.d.ts.map +1 -0
- package/dist/documents/docx/templates/loader.js +36 -0
- package/dist/documents/docx/templates/loader.js.map +1 -0
- package/dist/documents/docx/templates/types.d.ts +2 -0
- package/dist/documents/docx/templates/types.d.ts.map +1 -0
- package/dist/documents/docx/templates/types.js +2 -0
- package/dist/documents/docx/templates/types.js.map +1 -0
- package/dist/documents/index.d.ts +4 -0
- package/dist/documents/index.d.ts.map +1 -0
- package/dist/documents/index.js +4 -0
- package/dist/documents/index.js.map +1 -0
- package/dist/documents/outline/parse-outline.d.ts +132 -0
- package/dist/documents/outline/parse-outline.d.ts.map +1 -0
- package/dist/documents/outline/parse-outline.js +246 -0
- package/dist/documents/outline/parse-outline.js.map +1 -0
- package/dist/documents/plugin.d.ts +3 -0
- package/dist/documents/plugin.d.ts.map +1 -0
- package/dist/documents/plugin.js +13 -0
- package/dist/documents/plugin.js.map +1 -0
- package/dist/documents/presentations/capabilities/index.d.ts +3 -0
- package/dist/documents/presentations/capabilities/index.d.ts.map +1 -0
- package/dist/documents/presentations/capabilities/index.js +3 -0
- package/dist/documents/presentations/capabilities/index.js.map +1 -0
- package/dist/documents/presentations/capabilities/presentations.directory.impl.consumer.worker.d.ts +333 -0
- package/dist/documents/presentations/capabilities/presentations.directory.impl.consumer.worker.d.ts.map +1 -0
- package/dist/documents/presentations/capabilities/presentations.directory.impl.consumer.worker.js +101 -0
- package/dist/documents/presentations/capabilities/presentations.directory.impl.consumer.worker.js.map +1 -0
- package/dist/documents/presentations/capabilities/presentations.directory.kind.d.ts +65 -0
- package/dist/documents/presentations/capabilities/presentations.directory.kind.d.ts.map +1 -0
- package/dist/documents/presentations/capabilities/presentations.directory.kind.js +152 -0
- package/dist/documents/presentations/capabilities/presentations.directory.kind.js.map +1 -0
- package/dist/documents/presentations/capabilities/presentations.surface.kind.d.ts +68 -0
- package/dist/documents/presentations/capabilities/presentations.surface.kind.d.ts.map +1 -0
- package/dist/documents/presentations/capabilities/presentations.surface.kind.js +100 -0
- package/dist/documents/presentations/capabilities/presentations.surface.kind.js.map +1 -0
- package/dist/documents/presentations/client/contracts.d.ts +20 -0
- package/dist/documents/presentations/client/contracts.d.ts.map +1 -0
- package/dist/documents/presentations/client/contracts.js +2 -0
- package/dist/documents/presentations/client/contracts.js.map +1 -0
- package/dist/documents/presentations/client/index.d.ts +5 -0
- package/dist/documents/presentations/client/index.d.ts.map +1 -0
- package/dist/documents/presentations/client/index.js +5 -0
- package/dist/documents/presentations/client/index.js.map +1 -0
- package/dist/documents/presentations/client/presentations.runtime-client.descriptor.d.ts +4 -0
- package/dist/documents/presentations/client/presentations.runtime-client.descriptor.d.ts.map +1 -0
- package/dist/documents/presentations/client/presentations.runtime-client.descriptor.js +13 -0
- package/dist/documents/presentations/client/presentations.runtime-client.descriptor.js.map +1 -0
- package/dist/documents/presentations/client/presentations.runtime-client.impl.d.ts +711 -0
- package/dist/documents/presentations/client/presentations.runtime-client.impl.d.ts.map +1 -0
- package/dist/documents/presentations/client/presentations.runtime-client.impl.js +72 -0
- package/dist/documents/presentations/client/presentations.runtime-client.impl.js.map +1 -0
- package/dist/documents/presentations/docs/presentations.docs.descriptor.d.ts +4 -0
- package/dist/documents/presentations/docs/presentations.docs.descriptor.d.ts.map +1 -0
- package/dist/documents/presentations/docs/presentations.docs.descriptor.js +54 -0
- package/dist/documents/presentations/docs/presentations.docs.descriptor.js.map +1 -0
- package/dist/documents/presentations/index.d.ts +8 -0
- package/dist/documents/presentations/index.d.ts.map +1 -0
- package/dist/documents/presentations/index.js +8 -0
- package/dist/documents/presentations/index.js.map +1 -0
- package/dist/documents/presentations/presentations.consumer.plugin.d.ts +4 -0
- package/dist/documents/presentations/presentations.consumer.plugin.d.ts.map +1 -0
- package/dist/documents/presentations/presentations.consumer.plugin.js +16 -0
- package/dist/documents/presentations/presentations.consumer.plugin.js.map +1 -0
- package/dist/documents/presentations/presentations.plugin.d.ts +3 -0
- package/dist/documents/presentations/presentations.plugin.d.ts.map +1 -0
- package/dist/documents/presentations/presentations.plugin.js +48 -0
- package/dist/documents/presentations/presentations.plugin.js.map +1 -0
- package/dist/documents/presentations/review-read-authority.d.ts +117 -0
- package/dist/documents/presentations/review-read-authority.d.ts.map +1 -0
- package/dist/documents/presentations/review-read-authority.js +74 -0
- package/dist/documents/presentations/review-read-authority.js.map +1 -0
- package/dist/documents/presentations/schemas/index.d.ts +5 -0
- package/dist/documents/presentations/schemas/index.d.ts.map +1 -0
- package/dist/documents/presentations/schemas/index.js +5 -0
- package/dist/documents/presentations/schemas/index.js.map +1 -0
- package/dist/documents/presentations/schemas/owner.d.ts +28 -0
- package/dist/documents/presentations/schemas/owner.d.ts.map +1 -0
- package/dist/documents/presentations/schemas/owner.js +18 -0
- package/dist/documents/presentations/schemas/owner.js.map +1 -0
- package/dist/documents/presentations/schemas/request.d.ts +325 -0
- package/dist/documents/presentations/schemas/request.d.ts.map +1 -0
- package/dist/documents/presentations/schemas/request.js +169 -0
- package/dist/documents/presentations/schemas/request.js.map +1 -0
- package/dist/documents/presentations/schemas/review.d.ts +154 -0
- package/dist/documents/presentations/schemas/review.d.ts.map +1 -0
- package/dist/documents/presentations/schemas/review.js +83 -0
- package/dist/documents/presentations/schemas/review.js.map +1 -0
- package/dist/documents/presentations/schemas/surface.d.ts +315 -0
- package/dist/documents/presentations/schemas/surface.d.ts.map +1 -0
- package/dist/documents/presentations/schemas/surface.js +125 -0
- package/dist/documents/presentations/schemas/surface.js.map +1 -0
- package/dist/documents/presentations/state-machine.d.ts +36 -0
- package/dist/documents/presentations/state-machine.d.ts.map +1 -0
- package/dist/documents/presentations/state-machine.js +158 -0
- package/dist/documents/presentations/state-machine.js.map +1 -0
- package/dist/documents/presentations/storage/index.d.ts +3 -0
- package/dist/documents/presentations/storage/index.d.ts.map +1 -0
- package/dist/documents/presentations/storage/index.js +3 -0
- package/dist/documents/presentations/storage/index.js.map +1 -0
- package/dist/documents/presentations/storage/owner-app.d.ts +12 -0
- package/dist/documents/presentations/storage/owner-app.d.ts.map +1 -0
- package/dist/documents/presentations/storage/owner-app.js +43 -0
- package/dist/documents/presentations/storage/owner-app.js.map +1 -0
- package/dist/documents/presentations/storage/owner-transforms.d.ts +476 -0
- package/dist/documents/presentations/storage/owner-transforms.d.ts.map +1 -0
- package/dist/documents/presentations/storage/owner-transforms.js +77 -0
- package/dist/documents/presentations/storage/owner-transforms.js.map +1 -0
- package/dist/documents/presentations/storage/records.d.ts +227 -0
- package/dist/documents/presentations/storage/records.d.ts.map +1 -0
- package/dist/documents/presentations/storage/records.js +145 -0
- package/dist/documents/presentations/storage/records.js.map +1 -0
- package/dist/documents/presentations/tools/presentations.tool.descriptor.d.ts +543 -0
- package/dist/documents/presentations/tools/presentations.tool.descriptor.d.ts.map +1 -0
- package/dist/documents/presentations/tools/presentations.tool.descriptor.js +47 -0
- package/dist/documents/presentations/tools/presentations.tool.descriptor.js.map +1 -0
- package/dist/documents/presentations/tools/presentations.tool.impl.consumer.d.ts +8 -0
- package/dist/documents/presentations/tools/presentations.tool.impl.consumer.d.ts.map +1 -0
- package/dist/documents/presentations/tools/presentations.tool.impl.consumer.js +68 -0
- package/dist/documents/presentations/tools/presentations.tool.impl.consumer.js.map +1 -0
- package/dist/documents/presentations/tools/presentations.tool.schemas.d.ts +504 -0
- package/dist/documents/presentations/tools/presentations.tool.schemas.d.ts.map +1 -0
- package/dist/documents/presentations/tools/presentations.tool.schemas.js +76 -0
- package/dist/documents/presentations/tools/presentations.tool.schemas.js.map +1 -0
- package/dist/documents/render/grid.d.ts +96 -0
- package/dist/documents/render/grid.d.ts.map +1 -0
- package/dist/documents/render/grid.js +115 -0
- package/dist/documents/render/grid.js.map +1 -0
- package/dist/documents/render/index.d.ts +2 -0
- package/dist/documents/render/index.d.ts.map +1 -0
- package/dist/documents/render/index.js +2 -0
- package/dist/documents/render/index.js.map +1 -0
- package/dist/documents/render/render.impl.cloud.d.ts +25 -0
- package/dist/documents/render/render.impl.cloud.d.ts.map +1 -0
- package/dist/documents/render/render.impl.cloud.js +245 -0
- package/dist/documents/render/render.impl.cloud.js.map +1 -0
- package/dist/documents/render/render.impl.consumer.d.ts +35 -0
- package/dist/documents/render/render.impl.consumer.d.ts.map +1 -0
- package/dist/documents/render/render.impl.consumer.js +104 -0
- package/dist/documents/render/render.impl.consumer.js.map +1 -0
- package/dist/documents/render/render.interface.d.ts +147 -0
- package/dist/documents/render/render.interface.d.ts.map +1 -0
- package/dist/documents/render/render.interface.js +90 -0
- package/dist/documents/render/render.interface.js.map +1 -0
- package/dist/documents/schemas/ai-service-binding.schema.d.ts +11 -0
- package/dist/documents/schemas/ai-service-binding.schema.d.ts.map +1 -0
- package/dist/documents/schemas/ai-service-binding.schema.js +8 -0
- package/dist/documents/schemas/ai-service-binding.schema.js.map +1 -0
- package/dist/documents/schemas/document-read.schema.d.ts +107 -0
- package/dist/documents/schemas/document-read.schema.d.ts.map +1 -0
- package/dist/documents/schemas/document-read.schema.js +124 -0
- package/dist/documents/schemas/document-read.schema.js.map +1 -0
- package/dist/documents/schemas/document-view.schema.d.ts +74 -0
- package/dist/documents/schemas/document-view.schema.d.ts.map +1 -0
- package/dist/documents/schemas/document-view.schema.js +66 -0
- package/dist/documents/schemas/document-view.schema.js.map +1 -0
- package/dist/documents/schemas/index.d.ts +3 -0
- package/dist/documents/schemas/index.d.ts.map +1 -0
- package/dist/documents/schemas/index.js +3 -0
- package/dist/documents/schemas/index.js.map +1 -0
- package/dist/documents/schemas/page-cache.schema.d.ts +29 -0
- package/dist/documents/schemas/page-cache.schema.d.ts.map +1 -0
- package/dist/documents/schemas/page-cache.schema.js +50 -0
- package/dist/documents/schemas/page-cache.schema.js.map +1 -0
- package/dist/documents/storage/index.d.ts +3 -0
- package/dist/documents/storage/index.d.ts.map +1 -0
- package/dist/documents/storage/index.js +2 -0
- package/dist/documents/storage/index.js.map +1 -0
- package/dist/documents/storage/page-cache.descriptor.d.ts +17 -0
- package/dist/documents/storage/page-cache.descriptor.d.ts.map +1 -0
- package/dist/documents/storage/page-cache.descriptor.js +45 -0
- package/dist/documents/storage/page-cache.descriptor.js.map +1 -0
- package/dist/documents/tools/descriptors.d.ts +248 -0
- package/dist/documents/tools/descriptors.d.ts.map +1 -0
- package/dist/documents/tools/descriptors.js +78 -0
- package/dist/documents/tools/descriptors.js.map +1 -0
- package/dist/documents/tools/document-read-loop-guard.d.ts +61 -0
- package/dist/documents/tools/document-read-loop-guard.d.ts.map +1 -0
- package/dist/documents/tools/document-read-loop-guard.js +314 -0
- package/dist/documents/tools/document-read-loop-guard.js.map +1 -0
- package/dist/documents/tools/document-read.impl.d.ts +77 -0
- package/dist/documents/tools/document-read.impl.d.ts.map +1 -0
- package/dist/documents/tools/document-read.impl.js +1139 -0
- package/dist/documents/tools/document-read.impl.js.map +1 -0
- package/dist/documents/tools/document-view.impl.d.ts +45 -0
- package/dist/documents/tools/document-view.impl.d.ts.map +1 -0
- package/dist/documents/tools/document-view.impl.js +168 -0
- package/dist/documents/tools/document-view.impl.js.map +1 -0
- package/dist/documents/tools/index.d.ts +3 -0
- package/dist/documents/tools/index.d.ts.map +1 -0
- package/dist/documents/tools/index.js +6 -0
- package/dist/documents/tools/index.js.map +1 -0
- package/dist/documents/tools/source-refresh.d.ts +33 -0
- package/dist/documents/tools/source-refresh.d.ts.map +1 -0
- package/dist/documents/tools/source-refresh.js +127 -0
- package/dist/documents/tools/source-refresh.js.map +1 -0
- package/dist/documents/tools/unavailable.impl.d.ts +5 -0
- package/dist/documents/tools/unavailable.impl.d.ts.map +1 -0
- package/dist/documents/tools/unavailable.impl.js +12 -0
- package/dist/documents/tools/unavailable.impl.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/descriptors/vibes-platform.prompt.descriptor.d.ts +113 -0
- package/dist/prompts/descriptors/vibes-platform.prompt.descriptor.d.ts.map +1 -0
- package/dist/prompts/descriptors/vibes-platform.prompt.descriptor.js +35 -0
- package/dist/prompts/descriptors/vibes-platform.prompt.descriptor.js.map +1 -0
- package/dist/render/ansi.d.ts +86 -0
- package/dist/render/ansi.d.ts.map +1 -0
- package/dist/render/ansi.js +125 -0
- package/dist/render/ansi.js.map +1 -0
- package/dist/render/frontmatter.d.ts +21 -0
- package/dist/render/frontmatter.d.ts.map +1 -0
- package/dist/render/frontmatter.js +57 -0
- package/dist/render/frontmatter.js.map +1 -0
- package/dist/render/index.d.ts +10 -0
- package/dist/render/index.d.ts.map +1 -0
- package/dist/render/index.js +6 -0
- package/dist/render/index.js.map +1 -0
- package/dist/render/parse.d.ts +29 -0
- package/dist/render/parse.d.ts.map +1 -0
- package/dist/render/parse.js +145 -0
- package/dist/render/parse.js.map +1 -0
- package/dist/render/sections.d.ts +24 -0
- package/dist/render/sections.d.ts.map +1 -0
- package/dist/render/sections.js +76 -0
- package/dist/render/sections.js.map +1 -0
- package/dist/render/terminal.d.ts +15 -0
- package/dist/render/terminal.d.ts.map +1 -0
- package/dist/render/terminal.js +293 -0
- package/dist/render/terminal.js.map +1 -0
- package/dist/runbooks/index.d.ts +4 -0
- package/dist/runbooks/index.d.ts.map +1 -0
- package/dist/runbooks/index.js +3 -0
- package/dist/runbooks/index.js.map +1 -0
- package/dist/runbooks/runbooks.plugin.d.ts +3 -0
- package/dist/runbooks/runbooks.plugin.d.ts.map +1 -0
- package/dist/runbooks/runbooks.plugin.js +3 -0
- package/dist/runbooks/runbooks.plugin.js.map +1 -0
- package/dist/schemas/citations.schema.d.ts +21 -0
- package/dist/schemas/citations.schema.d.ts.map +1 -0
- package/dist/schemas/citations.schema.js +17 -0
- package/dist/schemas/citations.schema.js.map +1 -0
- package/dist/schemas/index.d.ts +4 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +3 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/topic.schema.d.ts +179 -0
- package/dist/schemas/topic.schema.d.ts.map +1 -0
- package/dist/schemas/topic.schema.js +15 -0
- package/dist/schemas/topic.schema.js.map +1 -0
- package/dist/svelte/build/highlight.d.ts +33 -0
- package/dist/svelte/build/highlight.d.ts.map +1 -0
- package/dist/svelte/build/highlight.js +95 -0
- package/dist/svelte/build/topic-index.d.ts +96 -0
- package/dist/svelte/build/topic-index.d.ts.map +1 -0
- package/dist/svelte/build/topic-index.js +247 -0
- package/dist/svelte/context.d.ts +12 -0
- package/dist/svelte/context.d.ts.map +1 -0
- package/dist/svelte/context.js +16 -0
- package/dist/svelte/docs-origin.d.ts +14 -0
- package/dist/svelte/docs-origin.d.ts.map +1 -0
- package/dist/svelte/docs-origin.js +49 -0
- package/dist/svelte/docs-svelte.plugin.d.ts +121 -0
- package/dist/svelte/docs-svelte.plugin.d.ts.map +1 -0
- package/dist/svelte/docs-svelte.plugin.js +35 -0
- package/dist/svelte/documents/presentations/components/PresentationMonitor.svelte +261 -0
- package/dist/svelte/documents/presentations/components/PresentationMonitor.svelte.d.ts +16 -0
- package/dist/svelte/documents/presentations/components/PresentationMonitor.svelte.d.ts.map +1 -0
- package/dist/svelte/documents/presentations/index.d.ts +3 -0
- package/dist/svelte/documents/presentations/index.d.ts.map +1 -0
- package/dist/svelte/documents/presentations/index.js +2 -0
- package/dist/svelte/documents/presentations/monitor-state.d.ts +17 -0
- package/dist/svelte/documents/presentations/monitor-state.d.ts.map +1 -0
- package/dist/svelte/documents/presentations/monitor-state.js +38 -0
- package/dist/svelte/index.d.ts +20 -0
- package/dist/svelte/index.d.ts.map +1 -0
- package/dist/svelte/index.js +16 -0
- package/dist/svelte/loaders.d.ts +57 -0
- package/dist/svelte/loaders.d.ts.map +1 -0
- package/dist/svelte/loaders.js +74 -0
- package/dist/svelte/state.svelte.d.ts +366 -0
- package/dist/svelte/state.svelte.d.ts.map +1 -0
- package/dist/svelte/state.svelte.js +155 -0
- package/dist/svelte/styles.css +8 -0
- package/dist/svelte/tool-widgets/DocsToolCard.svelte +41 -0
- package/dist/svelte/tool-widgets/DocsToolCard.svelte.d.ts +5 -0
- package/dist/svelte/tool-widgets/DocsToolCard.svelte.d.ts.map +1 -0
- package/dist/svelte/tool-widgets/DocumentReadToolCard.svelte +28 -0
- package/dist/svelte/tool-widgets/DocumentReadToolCard.svelte.d.ts +8 -0
- package/dist/svelte/tool-widgets/DocumentReadToolCard.svelte.d.ts.map +1 -0
- package/dist/svelte/tool-widgets/PresentationsToolCard.svelte +25 -0
- package/dist/svelte/tool-widgets/PresentationsToolCard.svelte.d.ts +8 -0
- package/dist/svelte/tool-widgets/PresentationsToolCard.svelte.d.ts.map +1 -0
- package/dist/svelte/tool-widgets/RunbookToolCard.svelte +29 -0
- package/dist/svelte/tool-widgets/RunbookToolCard.svelte.d.ts +8 -0
- package/dist/svelte/tool-widgets/RunbookToolCard.svelte.d.ts.map +1 -0
- package/dist/svelte/tool-widgets/index.d.ts +7 -0
- package/dist/svelte/tool-widgets/index.d.ts.map +1 -0
- package/dist/svelte/tool-widgets/index.js +5 -0
- package/dist/svelte/tool-widgets/models.d.ts +47 -0
- package/dist/svelte/tool-widgets/models.d.ts.map +1 -0
- package/dist/svelte/tool-widgets/models.js +112 -0
- package/dist/svelte/ui/DocViewer.svelte +122 -0
- package/dist/svelte/ui/DocViewer.svelte.d.ts +17 -0
- package/dist/svelte/ui/DocViewer.svelte.d.ts.map +1 -0
- package/dist/svelte/ui/DocsLoader.svelte +37 -0
- package/dist/svelte/ui/DocsLoader.svelte.d.ts +21 -0
- package/dist/svelte/ui/DocsLoader.svelte.d.ts.map +1 -0
- package/dist/svelte/ui/DocsSearch.svelte +129 -0
- package/dist/svelte/ui/DocsSearch.svelte.d.ts +15 -0
- package/dist/svelte/ui/DocsSearch.svelte.d.ts.map +1 -0
- package/dist/svelte/ui/directives/Card.svelte +61 -0
- package/dist/svelte/ui/directives/Card.svelte.d.ts +8 -0
- package/dist/svelte/ui/directives/Card.svelte.d.ts.map +1 -0
- package/dist/svelte/ui/directives/Descriptor.svelte +73 -0
- package/dist/svelte/ui/directives/Descriptor.svelte.d.ts +8 -0
- package/dist/svelte/ui/directives/Descriptor.svelte.d.ts.map +1 -0
- package/dist/svelte/ui/directives/DirectiveDispatch.svelte +45 -0
- package/dist/svelte/ui/directives/DirectiveDispatch.svelte.d.ts +8 -0
- package/dist/svelte/ui/directives/DirectiveDispatch.svelte.d.ts.map +1 -0
- package/dist/svelte/ui/directives/Endpoint.svelte +68 -0
- package/dist/svelte/ui/directives/Endpoint.svelte.d.ts +8 -0
- package/dist/svelte/ui/directives/Endpoint.svelte.d.ts.map +1 -0
- package/dist/svelte/ui/directives/Install.svelte +112 -0
- package/dist/svelte/ui/directives/Install.svelte.d.ts +8 -0
- package/dist/svelte/ui/directives/Install.svelte.d.ts.map +1 -0
- package/dist/svelte/ui/directives/Shell.svelte +32 -0
- package/dist/svelte/ui/directives/Shell.svelte.d.ts +8 -0
- package/dist/svelte/ui/directives/Shell.svelte.d.ts.map +1 -0
- package/dist/svelte/ui/directives/Usage.svelte +14 -0
- package/dist/svelte/ui/directives/Usage.svelte.d.ts +8 -0
- package/dist/svelte/ui/directives/Usage.svelte.d.ts.map +1 -0
- package/dist/svelte/ui/help/HelpDialog.svelte +210 -0
- package/dist/svelte/ui/help/HelpDialog.svelte.d.ts +11 -0
- package/dist/svelte/ui/help/HelpDialog.svelte.d.ts.map +1 -0
- package/dist/svelte/ui/help/HelpIcon.svelte +83 -0
- package/dist/svelte/ui/help/HelpIcon.svelte.d.ts +16 -0
- package/dist/svelte/ui/help/HelpIcon.svelte.d.ts.map +1 -0
- package/dist/svelte/ui/markdown/CodeBlock.svelte +125 -0
- package/dist/svelte/ui/markdown/CodeBlock.svelte.d.ts +8 -0
- package/dist/svelte/ui/markdown/CodeBlock.svelte.d.ts.map +1 -0
- package/dist/svelte/ui/markdown/MarkdownView.svelte +319 -0
- package/dist/svelte/ui/markdown/MarkdownView.svelte.d.ts +9 -0
- package/dist/svelte/ui/markdown/MarkdownView.svelte.d.ts.map +1 -0
- package/dist/tools/docs.descriptor.d.ts +48 -0
- package/dist/tools/docs.descriptor.d.ts.map +1 -0
- package/dist/tools/docs.descriptor.js +23 -0
- package/dist/tools/docs.descriptor.js.map +1 -0
- package/dist/tools/docs.impl.d.ts +7 -0
- package/dist/tools/docs.impl.d.ts.map +1 -0
- package/dist/tools/docs.impl.js +67 -0
- package/dist/tools/docs.impl.js.map +1 -0
- package/dist/tools/schemas.d.ts +43 -0
- package/dist/tools/schemas.d.ts.map +1 -0
- package/dist/tools/schemas.js +30 -0
- package/dist/tools/schemas.js.map +1 -0
- package/dist/tui/docs-tui.plugin.d.ts +3 -0
- package/dist/tui/docs-tui.plugin.d.ts.map +1 -0
- package/dist/tui/docs-tui.plugin.js +18 -0
- package/dist/tui/docs-tui.plugin.js.map +1 -0
- package/dist/tui/index.d.ts +2 -0
- package/dist/tui/index.d.ts.map +1 -0
- package/dist/tui/index.js +2 -0
- package/dist/tui/index.js.map +1 -0
- package/dist/tui/tui/docs-explorer.impl.consumer.d.ts +38 -0
- package/dist/tui/tui/docs-explorer.impl.consumer.d.ts.map +1 -0
- package/dist/tui/tui/docs-explorer.impl.consumer.js +334 -0
- package/dist/tui/tui/docs-explorer.impl.consumer.js.map +1 -0
- package/dist/tui/tui/docs-explorer.tui.descriptor.d.ts +13 -0
- package/dist/tui/tui/docs-explorer.tui.descriptor.d.ts.map +1 -0
- package/dist/tui/tui/docs-explorer.tui.descriptor.js +29 -0
- package/dist/tui/tui/docs-explorer.tui.descriptor.js.map +1 -0
- package/package.json +450 -4
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
const buildAnAppMarkdown = `---
|
|
2
|
+
title: Build a real app
|
|
3
|
+
summary: Scaffold a SvelteKit app on the vibes runtime with the VibesKit AppShell and a runtime-backed chat surface
|
|
4
|
+
tags: [tutorial, app, vibeskit, runtime, sveltekit, chat]
|
|
5
|
+
parent: tutorials
|
|
6
|
+
order: 1
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Build a real app
|
|
10
|
+
|
|
11
|
+
This walks through a complete vibes app: a SvelteKit project wired to the runtime, wrapped in the
|
|
12
|
+
VibesKit \`AppShell\`, with a runtime-backed chat surface dropped in. The fastest start is to copy the
|
|
13
|
+
canonical template at \`apps/vibes-app-template\` and rename it — everything below describes the wiring
|
|
14
|
+
that template already contains.
|
|
15
|
+
|
|
16
|
+
## 1. Project shape
|
|
17
|
+
|
|
18
|
+
A vibes app is a normal SvelteKit app plus three things: a Vite config from the SvelteKit surface, a
|
|
19
|
+
\`vibes.config.ts\` plugin manifest, and server hooks. Dependencies (from the template's
|
|
20
|
+
\`package.json\`):
|
|
21
|
+
|
|
22
|
+
:::install{package="@vibesdotdev/kit @vibesdotdev/kernel @vibesdotdev/surface-sveltekit"}
|
|
23
|
+
:::
|
|
24
|
+
|
|
25
|
+
## 2. Vite config — mount the runtime surface
|
|
26
|
+
|
|
27
|
+
\`createAppViteConfig\` registers the SvelteKit runtime surface (SSR + client) and dev hosts for your slug.
|
|
28
|
+
|
|
29
|
+
:::usage{language="ts"}
|
|
30
|
+
// vite.config.ts
|
|
31
|
+
import { defineConfig } from 'vite';
|
|
32
|
+
import { createAppViteConfig } from '@vibesdotdev/surface-sveltekit/vite';
|
|
33
|
+
|
|
34
|
+
export default defineConfig(
|
|
35
|
+
createAppViteConfig({
|
|
36
|
+
slug: 'template',
|
|
37
|
+
extraHosts: ['app-template.vibes.local']
|
|
38
|
+
})
|
|
39
|
+
);
|
|
40
|
+
:::
|
|
41
|
+
|
|
42
|
+
## 3. Server hooks
|
|
43
|
+
|
|
44
|
+
Compose the standard server handles. They come from \`@vibesdotdev/kit/server\` and are chained with
|
|
45
|
+
SvelteKit's \`sequence\`:
|
|
46
|
+
|
|
47
|
+
:::usage{language="ts"}
|
|
48
|
+
// src/hooks.server.ts
|
|
49
|
+
import { sequence } from '@sveltejs/kit/hooks';
|
|
50
|
+
import {
|
|
51
|
+
applySecurityHeaders,
|
|
52
|
+
createCacheControlHandle,
|
|
53
|
+
createCorsHandle
|
|
54
|
+
} from '@vibesdotdev/kit/server';
|
|
55
|
+
|
|
56
|
+
export const handle = sequence(
|
|
57
|
+
applySecurityHeaders(),
|
|
58
|
+
createCacheControlHandle(),
|
|
59
|
+
createCorsHandle()
|
|
60
|
+
);
|
|
61
|
+
:::
|
|
62
|
+
|
|
63
|
+
## 4. Wrap the layout in AppShell
|
|
64
|
+
|
|
65
|
+
\`AppShell\` (from \`@vibesdotdev/kit/components/app-shell\`) renders the sidebar, header, app switcher,
|
|
66
|
+
and the scroll container. Pass your \`appId\`, the current \`pathname\`, your sidebar \`navigation\`, and the
|
|
67
|
+
loaded \`user\`:
|
|
68
|
+
|
|
69
|
+
:::usage{language="svelte"}
|
|
70
|
+
<!-- src/routes/app/+layout.svelte -->
|
|
71
|
+
<script lang="ts">
|
|
72
|
+
import { AppShell } from '@vibesdotdev/kit/components/app-shell';
|
|
73
|
+
import {
|
|
74
|
+
AppCommandPalette,
|
|
75
|
+
AppCommandPaletteTrigger
|
|
76
|
+
} from '@vibesdotdev/command-palette/svelte';
|
|
77
|
+
import { page } from '$app/state';
|
|
78
|
+
|
|
79
|
+
let { data, children } = $props();
|
|
80
|
+
|
|
81
|
+
const navigation = [
|
|
82
|
+
{ title: 'Overview', items: [{ id: 'home', label: 'Home', href: '/app' }] }
|
|
83
|
+
];
|
|
84
|
+
</script>
|
|
85
|
+
|
|
86
|
+
<AppShell
|
|
87
|
+
appId="template"
|
|
88
|
+
appLabel="Template"
|
|
89
|
+
appIcon="lucide:layout-template"
|
|
90
|
+
pathname={page.url.pathname}
|
|
91
|
+
{navigation}
|
|
92
|
+
user={data?.user}
|
|
93
|
+
signInHref="/auth/signin"
|
|
94
|
+
signOutHref="/auth/signout"
|
|
95
|
+
>
|
|
96
|
+
{#snippet headerActions()}
|
|
97
|
+
<AppCommandPaletteTrigger appId="template" />
|
|
98
|
+
{/snippet}
|
|
99
|
+
<AppCommandPalette appId="template" pages={[]} actions={[]} />
|
|
100
|
+
{@render children()}
|
|
101
|
+
</AppShell>
|
|
102
|
+
:::
|
|
103
|
+
|
|
104
|
+
The shell owns the scrollable \`#main-content\` region and resets it on navigation — render your page
|
|
105
|
+
content directly as the children; you do not need to add your own scroll container.
|
|
106
|
+
|
|
107
|
+
## 5. Declare your plugins
|
|
108
|
+
|
|
109
|
+
\`vibes.config.ts\` is the per-app manifest of runtime plugins, loaded lazily. Add only what your app
|
|
110
|
+
uses; the runtime resolves capabilities from these at boot:
|
|
111
|
+
|
|
112
|
+
:::usage{language="ts"}
|
|
113
|
+
// vibes.config.ts
|
|
114
|
+
import type { VibesAppConfig } from '@vibesdotdev/kernel/config';
|
|
115
|
+
|
|
116
|
+
export default {
|
|
117
|
+
plugins: [
|
|
118
|
+
() => import('@vibesdotdev/kernel/context/context.plugin'),
|
|
119
|
+
() => import('@vibesdotdev/kernel/client/plugin')
|
|
120
|
+
// add capability plugins here (ai, chat, storage, integrations, …)
|
|
121
|
+
]
|
|
122
|
+
} satisfies VibesAppConfig;
|
|
123
|
+
:::
|
|
124
|
+
|
|
125
|
+
## 6. Drop in a runtime-backed chat surface
|
|
126
|
+
|
|
127
|
+
\`@vibesdotdev/chat/svelte\` renders a chat UI that talks to the runtime. Mount the loader inside a
|
|
128
|
+
route that has the runtime Svelte context available:
|
|
129
|
+
|
|
130
|
+
:::usage{language="svelte"}
|
|
131
|
+
<!-- src/routes/app/chat/+page.svelte -->
|
|
132
|
+
<script lang="ts">
|
|
133
|
+
import { ChatLoader } from '@vibesdotdev/chat/svelte';
|
|
134
|
+
</script>
|
|
135
|
+
|
|
136
|
+
<ChatLoader />
|
|
137
|
+
:::
|
|
138
|
+
|
|
139
|
+
## Run it
|
|
140
|
+
|
|
141
|
+
:::shell
|
|
142
|
+
vibes pm start template-dev
|
|
143
|
+
:::
|
|
144
|
+
|
|
145
|
+
Then open your dev host (e.g. \`https://app-template.vibes.local\`).
|
|
146
|
+
|
|
147
|
+
## Related
|
|
148
|
+
|
|
149
|
+
- [\`app.config\`](app.config) — the \`vibes.config.ts\` plugin manifest in depth
|
|
150
|
+
- [\`runtime.plugins\`](runtime.plugins) — how plugins register and resolve capabilities
|
|
151
|
+
- [\`tutorials.ai-text-generation\`](tutorials.ai-text-generation) — add AI generation to your app
|
|
152
|
+
- [\`tutorials.runtime-plugin\`](tutorials.runtime-plugin) — author your own capability plugin
|
|
153
|
+
`;
|
|
154
|
+
const descriptor = {
|
|
155
|
+
kind: 'docs/topic',
|
|
156
|
+
id: 'tutorials.build-an-app',
|
|
157
|
+
title: 'Build a real app',
|
|
158
|
+
summary: 'Scaffold a SvelteKit app on the vibes runtime with the VibesKit AppShell and a runtime-backed chat surface',
|
|
159
|
+
body: {
|
|
160
|
+
type: 'markdown',
|
|
161
|
+
sourceType: 'raw',
|
|
162
|
+
source: buildAnAppMarkdown
|
|
163
|
+
},
|
|
164
|
+
parent: 'tutorials',
|
|
165
|
+
order: 1,
|
|
166
|
+
tags: ['tutorial', 'app', 'vibeskit', 'runtime', 'sveltekit', 'chat'],
|
|
167
|
+
surfaces: ['web', 'in-app'],
|
|
168
|
+
hardware: ['consumer', 'cloud'],
|
|
169
|
+
enabled: true
|
|
170
|
+
};
|
|
171
|
+
export default descriptor;
|
|
172
|
+
//# sourceMappingURL=tutorials.build-an-app.docs.descriptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tutorials.build-an-app.docs.descriptor.js","sourceRoot":"","sources":["../../src/docs/tutorials.build-an-app.docs.descriptor.ts"],"names":[],"mappings":"AAEA,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwJ1B,CAAC;AAEF,MAAM,UAAU,GAAwB;IACvC,IAAI,EAAE,YAAY;IAClB,EAAE,EAAE,wBAAwB;IAC5B,KAAK,EAAE,kBAAkB;IACzB,OAAO,EACN,4GAA4G;IAC7G,IAAI,EAAE;QACL,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,kBAAkB;KAC1B;IACD,MAAM,EAAE,WAAW;IACnB,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC;IACrE,QAAQ,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;IAC3B,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;IAC/B,OAAO,EAAE,IAAI;CACb,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tutorials.crud-collection.docs.descriptor.d.ts","sourceRoot":"","sources":["../../src/docs/tutorials.crud-collection.docs.descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AA8HvE,QAAA,MAAM,UAAU,EAAE,mBAiBjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
const crudMarkdown = `---
|
|
2
|
+
title: Cloud-backed CRUD collection
|
|
3
|
+
summary: Stand up typed list/create/update/delete routes over a storage transform with vibesCrudCollection
|
|
4
|
+
tags: [tutorial, crud, storage, kit, server, routes]
|
|
5
|
+
parent: tutorials
|
|
6
|
+
order: 3
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Cloud-backed CRUD collection
|
|
10
|
+
|
|
11
|
+
\`vibesCrudCollection\` (from \`@vibesdotdev/kit/server/crud\`) turns a storage-backed resource into a
|
|
12
|
+
set of SvelteKit route handlers — list, create, read, update, delete — with auth and validation hooks
|
|
13
|
+
wired in. You supply how to fetch and persist; it supplies the HTTP surface and a typed JSON contract.
|
|
14
|
+
|
|
15
|
+
## 1. The wire contract
|
|
16
|
+
|
|
17
|
+
A collection produces these endpoints and response shapes:
|
|
18
|
+
|
|
19
|
+
| Method | Route | Response |
|
|
20
|
+
|---|---|---|
|
|
21
|
+
| \`GET\` | \`/api/<resource>\` | \`{ results: T[] }\` |
|
|
22
|
+
| \`POST\` | \`/api/<resource>\` | \`{ result: T }\` |
|
|
23
|
+
| \`GET\` | \`/api/<resource>/[id]\` | \`{ result: T }\` |
|
|
24
|
+
| \`PATCH\` | \`/api/<resource>/[id]\` | \`{ result: T }\` |
|
|
25
|
+
| \`DELETE\` | \`/api/<resource>/[id]\` | \`204 No Content\` |
|
|
26
|
+
|
|
27
|
+
## 2. Define the collection
|
|
28
|
+
|
|
29
|
+
Point it at a \`storageDescriptorId\` (the storage transform that maps stored rows to API shape) and
|
|
30
|
+
give each operation an auth guard plus a data function. \`quick.auth()\` applies the standard
|
|
31
|
+
authenticated-actor guard. Each callback receives \`(event, context)\`; validated input is read from
|
|
32
|
+
\`context.validated!.body | query | params\`:
|
|
33
|
+
|
|
34
|
+
:::usage{language="ts"}
|
|
35
|
+
// src/routes/api/widgets/+server.ts
|
|
36
|
+
import { vibesCrudCollection, quick } from '@vibesdotdev/kit/server/crud';
|
|
37
|
+
import { db, widgets } from '$lib/server/db';
|
|
38
|
+
import { widgetCreateSchema, type WidgetCreate } from '$lib/schemas';
|
|
39
|
+
|
|
40
|
+
const { GET, POST } = vibesCrudCollection({
|
|
41
|
+
storageDescriptorId: 'app.widgets',
|
|
42
|
+
list: {
|
|
43
|
+
...quick.auth(),
|
|
44
|
+
fetch: async (event) =>
|
|
45
|
+
db.query.widgets.findMany({ where: ownedBy(event.locals.actor) })
|
|
46
|
+
},
|
|
47
|
+
create: {
|
|
48
|
+
...quick.auth(),
|
|
49
|
+
validation: { body: widgetCreateSchema },
|
|
50
|
+
insert: async (event, context) => {
|
|
51
|
+
const body = context.validated!.body as WidgetCreate;
|
|
52
|
+
const [row] = await db
|
|
53
|
+
.insert(widgets)
|
|
54
|
+
.values({ ...body, ownerId: event.locals.actor.id })
|
|
55
|
+
.returning();
|
|
56
|
+
return row;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
export { GET, POST };
|
|
62
|
+
:::
|
|
63
|
+
|
|
64
|
+
## 3. The item route
|
|
65
|
+
|
|
66
|
+
\`vibesCrudItem\` mounts the per-id handlers under \`[id]\` — \`get.fetch\` returns the row or \`null\`
|
|
67
|
+
(the helper sends a 404), \`update.patch\` applies a partial update, and \`delete.remove\` erases it:
|
|
68
|
+
|
|
69
|
+
:::usage{language="ts"}
|
|
70
|
+
// src/routes/api/widgets/[id]/+server.ts
|
|
71
|
+
import { vibesCrudItem, quick } from '@vibesdotdev/kit/server/crud';
|
|
72
|
+
import { db, widgets, eq } from '$lib/server/db';
|
|
73
|
+
import { widgetUpdateSchema, type WidgetUpdate } from '$lib/schemas';
|
|
74
|
+
|
|
75
|
+
const { GET, PATCH, DELETE } = vibesCrudItem({
|
|
76
|
+
storageDescriptorId: 'app.widgets',
|
|
77
|
+
get: {
|
|
78
|
+
...quick.auth(),
|
|
79
|
+
fetch: (event) =>
|
|
80
|
+
db.query.widgets.findFirst({ where: eq(widgets.id, event.params.id) }) ?? null
|
|
81
|
+
},
|
|
82
|
+
update: {
|
|
83
|
+
...quick.auth(),
|
|
84
|
+
validation: { body: widgetUpdateSchema },
|
|
85
|
+
patch: async (event, context) => {
|
|
86
|
+
const body = context.validated!.body as WidgetUpdate;
|
|
87
|
+
const [row] = await db
|
|
88
|
+
.update(widgets)
|
|
89
|
+
.set(body)
|
|
90
|
+
.where(eq(widgets.id, event.params.id))
|
|
91
|
+
.returning();
|
|
92
|
+
return row;
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
delete: {
|
|
96
|
+
...quick.auth(),
|
|
97
|
+
remove: async (event) => {
|
|
98
|
+
await db.delete(widgets).where(eq(widgets.id, event.params.id));
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
export { GET, PATCH, DELETE };
|
|
104
|
+
:::
|
|
105
|
+
|
|
106
|
+
## 4. The storage transform
|
|
107
|
+
|
|
108
|
+
\`storageDescriptorId\` resolves a storage transform from the runtime at first request — it maps stored
|
|
109
|
+
rows (\`TRow\`) to the descriptor shape (\`TDescriptor\`) returned to clients, so persistence columns and
|
|
110
|
+
API fields can differ. See [\`storage.transform\`](storage.transform) for declaring one.
|
|
111
|
+
|
|
112
|
+
## 5. Lifecycle hooks
|
|
113
|
+
|
|
114
|
+
Each operation accepts \`onBefore*\`/\`onAfter*\` hooks for validation side-effects, audit logging, or
|
|
115
|
+
cache invalidation — e.g. \`onAfterCreate\` to enqueue a notification.
|
|
116
|
+
|
|
117
|
+
## Related
|
|
118
|
+
|
|
119
|
+
- [\`storage.transform\`](storage.transform) — map stored rows to API shape
|
|
120
|
+
- [\`storage.records\`](storage.records) — the record storage protocol
|
|
121
|
+
- [\`storage.adapters\`](storage.adapters) — where records are persisted
|
|
122
|
+
- [\`app.apis\`](app.apis) — app route conventions
|
|
123
|
+
`;
|
|
124
|
+
const descriptor = {
|
|
125
|
+
kind: 'docs/topic',
|
|
126
|
+
id: 'tutorials.crud-collection',
|
|
127
|
+
title: 'Cloud-backed CRUD collection',
|
|
128
|
+
summary: 'Stand up typed list/create/update/delete routes over a storage transform with vibesCrudCollection',
|
|
129
|
+
body: {
|
|
130
|
+
type: 'markdown',
|
|
131
|
+
sourceType: 'raw',
|
|
132
|
+
source: crudMarkdown
|
|
133
|
+
},
|
|
134
|
+
parent: 'tutorials',
|
|
135
|
+
order: 3,
|
|
136
|
+
tags: ['tutorial', 'crud', 'storage', 'kit', 'server', 'routes'],
|
|
137
|
+
surfaces: ['web', 'in-app'],
|
|
138
|
+
hardware: ['consumer', 'cloud'],
|
|
139
|
+
enabled: true
|
|
140
|
+
};
|
|
141
|
+
export default descriptor;
|
|
142
|
+
//# sourceMappingURL=tutorials.crud-collection.docs.descriptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tutorials.crud-collection.docs.descriptor.js","sourceRoot":"","sources":["../../src/docs/tutorials.crud-collection.docs.descriptor.ts"],"names":[],"mappings":"AAEA,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0HpB,CAAC;AAEF,MAAM,UAAU,GAAwB;IACvC,IAAI,EAAE,YAAY;IAClB,EAAE,EAAE,2BAA2B;IAC/B,KAAK,EAAE,8BAA8B;IACrC,OAAO,EACN,mGAAmG;IACpG,IAAI,EAAE;QACL,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,YAAY;KACpB;IACD,MAAM,EAAE,WAAW;IACnB,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC;IAChE,QAAQ,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;IAC3B,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;IAC/B,OAAO,EAAE,IAAI;CACb,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tutorials.docs.descriptor.d.ts","sourceRoot":"","sources":["../../src/docs/tutorials.docs.descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAqCvE,QAAA,MAAM,UAAU,EAAE,mBAejB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
const tutorialsMarkdown = `---
|
|
2
|
+
title: Tutorials
|
|
3
|
+
summary: End-to-end, copy-runnable guides for building on the vibes platform
|
|
4
|
+
tags: [tutorials, guides, getting-started]
|
|
5
|
+
order: 0
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Tutorials
|
|
9
|
+
|
|
10
|
+
Task-focused, end-to-end guides that wire real vibes packages together. Every code sample on
|
|
11
|
+
these pages is checked against the actual source — copy them as a starting point.
|
|
12
|
+
|
|
13
|
+
:::card{title="Build something"}
|
|
14
|
+
- [Build a real app](tutorials.build-an-app) — scaffold a SvelteKit app on the vibes runtime with the VibesKit AppShell and a runtime-backed chat surface.
|
|
15
|
+
- [Generate text with an AI provider](tutorials.ai-text-generation) — resolve a generation executor and stream tokens, locally (LM Studio) or in the cloud.
|
|
16
|
+
- [Cloud-backed CRUD collection](tutorials.crud-collection) — stand up typed list/create/update/delete routes over a storage transform with \`vibesCrudCollection\`.
|
|
17
|
+
- [Understand OAuth integration](auth.oauth) — use the canonical authentication and provider authorization contract.
|
|
18
|
+
- [Build a runtime plugin](tutorials.runtime-plugin) — register descriptors and lazy implementations and resolve them with \`runtime.query()\`.
|
|
19
|
+
:::
|
|
20
|
+
|
|
21
|
+
## How these fit together
|
|
22
|
+
|
|
23
|
+
The vibes platform is **runtime-first**: capabilities are published as descriptors against a
|
|
24
|
+
[runtime](runtime.query) and resolved by kind, not imported directly. Most tutorials follow the
|
|
25
|
+
same shape — register a plugin, then query the runtime for what it exposes. Start with
|
|
26
|
+
[Build a real app](tutorials.build-an-app) for the end-to-end picture, then drill into the
|
|
27
|
+
capability you need.
|
|
28
|
+
|
|
29
|
+
## Related
|
|
30
|
+
|
|
31
|
+
- [\`runtime.query\`](runtime.query) — resolve capabilities by kind
|
|
32
|
+
- [\`runtime.plugins\`](runtime.plugins) — how plugins register descriptors and implementations
|
|
33
|
+
- [\`app.config\`](app.config) — the per-app \`vibes.config.ts\` plugin manifest
|
|
34
|
+
`;
|
|
35
|
+
const descriptor = {
|
|
36
|
+
kind: 'docs/topic',
|
|
37
|
+
id: 'tutorials',
|
|
38
|
+
title: 'Tutorials',
|
|
39
|
+
summary: 'End-to-end, copy-runnable guides for building on the vibes platform',
|
|
40
|
+
body: {
|
|
41
|
+
type: 'markdown',
|
|
42
|
+
sourceType: 'raw',
|
|
43
|
+
source: tutorialsMarkdown
|
|
44
|
+
},
|
|
45
|
+
order: 0,
|
|
46
|
+
tags: ['tutorials', 'guides', 'getting-started'],
|
|
47
|
+
surfaces: ['web', 'in-app'],
|
|
48
|
+
hardware: ['consumer', 'cloud'],
|
|
49
|
+
enabled: true
|
|
50
|
+
};
|
|
51
|
+
export default descriptor;
|
|
52
|
+
//# sourceMappingURL=tutorials.docs.descriptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tutorials.docs.descriptor.js","sourceRoot":"","sources":["../../src/docs/tutorials.docs.descriptor.ts"],"names":[],"mappings":"AAEA,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCzB,CAAC;AAEF,MAAM,UAAU,GAAwB;IACvC,IAAI,EAAE,YAAY;IAClB,EAAE,EAAE,WAAW;IACf,KAAK,EAAE,WAAW;IAClB,OAAO,EAAE,qEAAqE;IAC9E,IAAI,EAAE;QACL,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,iBAAiB;KACzB;IACD,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,iBAAiB,CAAC;IAChD,QAAQ,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;IAC3B,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;IAC/B,OAAO,EAAE,IAAI;CACb,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tutorials.runtime-plugin.docs.descriptor.d.ts","sourceRoot":"","sources":["../../src/docs/tutorials.runtime-plugin.docs.descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAyGvE,QAAA,MAAM,UAAU,EAAE,mBAiBjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
const pluginMarkdown = `---
|
|
2
|
+
title: Build a runtime plugin
|
|
3
|
+
summary: Register descriptors and lazy implementations with createRuntimePlugin and resolve them via runtime.query
|
|
4
|
+
tags: [tutorial, runtime, plugin, descriptors, query]
|
|
5
|
+
parent: tutorials
|
|
6
|
+
order: 5
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Build a runtime plugin
|
|
10
|
+
|
|
11
|
+
The runtime is the platform's extensibility seam: capabilities are published as **descriptors** of a
|
|
12
|
+
**kind**, backed by lazily-loaded **implementations**, and resolved by querying that kind. A plugin
|
|
13
|
+
bundles those together. This is how AI providers, storage adapters, integrations, and chat surfaces all
|
|
14
|
+
plug in.
|
|
15
|
+
|
|
16
|
+
## 1. Author the plugin
|
|
17
|
+
|
|
18
|
+
\`createRuntimePlugin\` (from \`@vibesdotdev/kernel/factory\`) takes static \`descriptors\` plus \`loaders\`
|
|
19
|
+
that import the implementation on demand. \`loader(id, { kind }, importer)\` ties a descriptor id to its
|
|
20
|
+
impl module:
|
|
21
|
+
|
|
22
|
+
:::usage{language="ts"}
|
|
23
|
+
import { createRuntimePlugin, loader } from '@vibesdotdev/kernel/factory';
|
|
24
|
+
|
|
25
|
+
const greeterDescriptor = {
|
|
26
|
+
id: 'greeter/friendly',
|
|
27
|
+
kind: 'greeter/strategy',
|
|
28
|
+
label: 'Friendly greeter'
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export default createRuntimePlugin({
|
|
32
|
+
id: 'greeter',
|
|
33
|
+
name: 'Greeter Module',
|
|
34
|
+
description: 'Pluggable greeting strategies',
|
|
35
|
+
descriptors: [greeterDescriptor],
|
|
36
|
+
loaders: [
|
|
37
|
+
loader(greeterDescriptor.id, { kind: 'greeter/strategy' }, async () => {
|
|
38
|
+
const { FriendlyGreeter } = await import('./friendly.impl.js');
|
|
39
|
+
return { default: FriendlyGreeter };
|
|
40
|
+
})
|
|
41
|
+
]
|
|
42
|
+
});
|
|
43
|
+
:::
|
|
44
|
+
|
|
45
|
+
## 2. Lifecycle hooks (optional)
|
|
46
|
+
|
|
47
|
+
A plugin may run setup when it registers or after discovery completes. Use \`onRegister\` for work that
|
|
48
|
+
only needs the runtime reference, and \`onActivate\` for cross-kind wiring once every plugin is present:
|
|
49
|
+
|
|
50
|
+
:::usage{language="ts"}
|
|
51
|
+
createRuntimePlugin({
|
|
52
|
+
id: 'greeter',
|
|
53
|
+
descriptors: [greeterDescriptor],
|
|
54
|
+
loaders: [/* … */],
|
|
55
|
+
onRegister: async (runtime) => {
|
|
56
|
+
// runtime is available; register extra descriptors, read scope, etc.
|
|
57
|
+
},
|
|
58
|
+
onActivate: async (runtime) => {
|
|
59
|
+
// all plugins discovered; safe to resolve other kinds here
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
:::
|
|
63
|
+
|
|
64
|
+
## 3. Register the plugin
|
|
65
|
+
|
|
66
|
+
Apps and packages select plugins lazily in \`vibes.config.ts\` (see [\`app.config\`](app.config));
|
|
67
|
+
bootstrap registers them once. A test composes the plugin into its own test runtime:
|
|
68
|
+
|
|
69
|
+
:::usage{language="ts"}
|
|
70
|
+
import { createTestRuntime } from '@vibesdotdev/testing/runtime';
|
|
71
|
+
import greeterPlugin from '@vibesdotdev/greeter/plugin';
|
|
72
|
+
|
|
73
|
+
const { runtime, cleanup } = await createTestRuntime({ plugins: [greeterPlugin] });
|
|
74
|
+
:::
|
|
75
|
+
|
|
76
|
+
## 4. Resolve and use it
|
|
77
|
+
|
|
78
|
+
Query the kind. \`.first()\` resolves the highest-priority implementation; \`.withId()\` targets a
|
|
79
|
+
specific one; \`.descriptors()\` lists what's registered without instantiating:
|
|
80
|
+
|
|
81
|
+
:::usage{language="ts"}
|
|
82
|
+
const greeter = await runtime
|
|
83
|
+
.query('greeter/strategy')
|
|
84
|
+
.withId('greeter/friendly')
|
|
85
|
+
.resolve();
|
|
86
|
+
|
|
87
|
+
console.log(await greeter.greet('world'));
|
|
88
|
+
|
|
89
|
+
// list everything registered for this kind (no impls loaded)
|
|
90
|
+
const available = runtime.query('greeter/strategy').descriptors();
|
|
91
|
+
:::
|
|
92
|
+
|
|
93
|
+
The implementation module is imported only when first resolved, so registering a plugin is cheap and
|
|
94
|
+
server-only impls never ship to the browser bundle.
|
|
95
|
+
|
|
96
|
+
## Related
|
|
97
|
+
|
|
98
|
+
- [\`runtime.plugins\`](runtime.plugins) — the plugin model
|
|
99
|
+
- [\`runtime.query\`](runtime.query) — the full query API (\`first\`, \`withId\`, \`forHardware\`, \`descriptors\`, \`resolve\`)
|
|
100
|
+
- [\`runtime.scopes\`](runtime.scopes) — runtime scopes and where impls run
|
|
101
|
+
- [\`auth.oauth\`](auth.oauth) — the canonical OAuth contract used by integration hosts
|
|
102
|
+
`;
|
|
103
|
+
const descriptor = {
|
|
104
|
+
kind: 'docs/topic',
|
|
105
|
+
id: 'tutorials.runtime-plugin',
|
|
106
|
+
title: 'Build a runtime plugin',
|
|
107
|
+
summary: 'Register descriptors and lazy implementations with createRuntimePlugin and resolve them via runtime.query',
|
|
108
|
+
body: {
|
|
109
|
+
type: 'markdown',
|
|
110
|
+
sourceType: 'raw',
|
|
111
|
+
source: pluginMarkdown
|
|
112
|
+
},
|
|
113
|
+
parent: 'tutorials',
|
|
114
|
+
order: 5,
|
|
115
|
+
tags: ['tutorial', 'runtime', 'plugin', 'descriptors', 'query'],
|
|
116
|
+
surfaces: ['web', 'in-app'],
|
|
117
|
+
hardware: ['consumer', 'cloud'],
|
|
118
|
+
enabled: true
|
|
119
|
+
};
|
|
120
|
+
export default descriptor;
|
|
121
|
+
//# sourceMappingURL=tutorials.runtime-plugin.docs.descriptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tutorials.runtime-plugin.docs.descriptor.js","sourceRoot":"","sources":["../../src/docs/tutorials.runtime-plugin.docs.descriptor.ts"],"names":[],"mappings":"AAEA,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqGtB,CAAC;AAEF,MAAM,UAAU,GAAwB;IACvC,IAAI,EAAE,YAAY;IAClB,EAAE,EAAE,0BAA0B;IAC9B,KAAK,EAAE,wBAAwB;IAC/B,OAAO,EACN,2GAA2G;IAC5G,IAAI,EAAE;QACL,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,cAAc;KACtB;IACD,MAAM,EAAE,WAAW;IACnB,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC;IAC/D,QAAQ,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;IAC3B,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;IAC/B,OAAO,EAAE,IAAI;CACb,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Docs Plugin
|
|
3
|
+
*
|
|
4
|
+
* Registers:
|
|
5
|
+
* - the `docs/topic` runtime kind (descriptor schema + hardware-filtered resolve)
|
|
6
|
+
* - the canonical `runtime/client` with id `docs`
|
|
7
|
+
*
|
|
8
|
+
* Tier 1 of `docs/architecture/DOCS-RUNTIME.md`.
|
|
9
|
+
*/
|
|
10
|
+
export declare const docsPlugin: import("@vibesdotdev/kernel").RuntimePlugin;
|
|
11
|
+
export default docsPlugin;
|
|
12
|
+
//# sourceMappingURL=docs.plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs.plugin.d.ts","sourceRoot":"","sources":["../src/docs.plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAoGH,eAAO,MAAM,UAAU,6CAyBrB,CAAC;AAEH,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Docs Plugin
|
|
3
|
+
*
|
|
4
|
+
* Registers:
|
|
5
|
+
* - the `docs/topic` runtime kind (descriptor schema + hardware-filtered resolve)
|
|
6
|
+
* - the canonical `runtime/client` with id `docs`
|
|
7
|
+
*
|
|
8
|
+
* Tier 1 of `docs/architecture/DOCS-RUNTIME.md`.
|
|
9
|
+
*/
|
|
10
|
+
import { createRuntimePlugin, loader } from '@vibesdotdev/kernel';
|
|
11
|
+
import { DocsTopicDescriptorSchema } from "./schemas/topic.schema.js";
|
|
12
|
+
import docsToolDescriptor from "./tools/docs.descriptor.js";
|
|
13
|
+
import vibesPlatformPromptDescriptor from "./prompts/descriptors/vibes-platform.prompt.descriptor.js";
|
|
14
|
+
import docsTopicsDocsDescriptor from "./docs/docs.topics.docs.descriptor.js";
|
|
15
|
+
import docsDirectivesDocsDescriptor from "./docs/docs.directives.docs.descriptor.js";
|
|
16
|
+
import docsCliDocsDescriptor from "./cli/docs/docs.cli.docs.descriptor.js";
|
|
17
|
+
import chartsUsageDocsDescriptor from "./docs/charts.usage.docs.descriptor.js";
|
|
18
|
+
import commandPaletteActionsDocsDescriptor from "./docs/command-palette.actions.docs.descriptor.js";
|
|
19
|
+
import guidedFlowsFlowsDocsDescriptor from "./docs/guided-flows.flows.docs.descriptor.js";
|
|
20
|
+
import gettingStartedDocsDescriptor from "./docs/getting-started.docs.descriptor.js";
|
|
21
|
+
import gettingStartedCliDocsDescriptor from "./docs/getting-started-cli.docs.descriptor.js";
|
|
22
|
+
import gettingStartedConceptsDocsDescriptor from "./docs/getting-started.concepts.docs.descriptor.js";
|
|
23
|
+
import gettingStartedFirstQueryDocsDescriptor from "./docs/getting-started.first-query.docs.descriptor.js";
|
|
24
|
+
import tutorialsDocsDescriptor from "./docs/tutorials.docs.descriptor.js";
|
|
25
|
+
import tutorialsAiTextGenerationDocsDescriptor from "./docs/tutorials.ai-text-generation.docs.descriptor.js";
|
|
26
|
+
import tutorialsBuildAnAppDocsDescriptor from "./docs/tutorials.build-an-app.docs.descriptor.js";
|
|
27
|
+
import tutorialsCrudCollectionDocsDescriptor from "./docs/tutorials.crud-collection.docs.descriptor.js";
|
|
28
|
+
import tutorialsRuntimePluginDocsDescriptor from "./docs/tutorials.runtime-plugin.docs.descriptor.js";
|
|
29
|
+
import fleetPairingDocsDescriptor from "./docs/fleet-pairing.docs.descriptor.js";
|
|
30
|
+
import fleetPairingDirectDocsDescriptor from "./docs/fleet-pairing-direct.docs.descriptor.js";
|
|
31
|
+
import fleetPairingMdnsDocsDescriptor from "./docs/fleet-pairing-mdns.docs.descriptor.js";
|
|
32
|
+
import fleetPairingPlatformDocsDescriptor from "./docs/fleet-pairing-platform.docs.descriptor.js";
|
|
33
|
+
import agentVoiceDocsDescriptor from "./docs/agent-voice.docs.descriptor.js";
|
|
34
|
+
import runtimeRpcRelayDocsDescriptor from "./docs/runtime-rpc-relay.docs.descriptor.js";
|
|
35
|
+
import docsSvelteConfigDescriptor from "./config/docs.svelte.config.descriptor.js";
|
|
36
|
+
/**
|
|
37
|
+
* `docs/topic` kind — hardware-filtered resolve, consumer-default.
|
|
38
|
+
*/
|
|
39
|
+
const docsTopicKind = {
|
|
40
|
+
id: 'docs/topic',
|
|
41
|
+
descriptorSchema: DocsTopicDescriptorSchema,
|
|
42
|
+
defaultImplementation: class DefaultDocsTopic {
|
|
43
|
+
descriptor;
|
|
44
|
+
_context;
|
|
45
|
+
constructor(descriptor, _context) {
|
|
46
|
+
this.descriptor = descriptor;
|
|
47
|
+
this._context = _context;
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
resolve(candidates, scope) {
|
|
51
|
+
if (candidates.length === 0)
|
|
52
|
+
return undefined;
|
|
53
|
+
if (candidates.length === 1)
|
|
54
|
+
return candidates[0];
|
|
55
|
+
const matches = candidates.filter((d) => {
|
|
56
|
+
if (!d.hardware || d.hardware.length === 0)
|
|
57
|
+
return true;
|
|
58
|
+
return d.hardware.some((h) => h === scope.hardware);
|
|
59
|
+
});
|
|
60
|
+
return matches.length > 0 ? matches[0] : undefined;
|
|
61
|
+
},
|
|
62
|
+
contexts: ['runtime']
|
|
63
|
+
};
|
|
64
|
+
function registerDocsRuntimeClient(runtime) {
|
|
65
|
+
runtime.registerDescriptor('runtime/client', {
|
|
66
|
+
id: 'docs',
|
|
67
|
+
kind: 'runtime/client',
|
|
68
|
+
description: 'Canonical Docs client — topic descriptor discovery, subject lookup, body resolution',
|
|
69
|
+
config: { citations: { links: [{ kind: 'docs', source: 'docs' }], queryPolicy: 'literal', originPolicy: 'declared' } }
|
|
70
|
+
});
|
|
71
|
+
runtime.registerLoader('runtime/client', 'docs', async () => {
|
|
72
|
+
const { DocsClient } = await import("./client/docs-client.js");
|
|
73
|
+
return { impl: DocsClient };
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
const builtInTopicDescriptors = [
|
|
77
|
+
docsTopicsDocsDescriptor,
|
|
78
|
+
docsDirectivesDocsDescriptor,
|
|
79
|
+
docsCliDocsDescriptor,
|
|
80
|
+
chartsUsageDocsDescriptor,
|
|
81
|
+
commandPaletteActionsDocsDescriptor,
|
|
82
|
+
guidedFlowsFlowsDocsDescriptor,
|
|
83
|
+
gettingStartedDocsDescriptor,
|
|
84
|
+
gettingStartedCliDocsDescriptor,
|
|
85
|
+
gettingStartedConceptsDocsDescriptor,
|
|
86
|
+
gettingStartedFirstQueryDocsDescriptor,
|
|
87
|
+
tutorialsDocsDescriptor,
|
|
88
|
+
tutorialsAiTextGenerationDocsDescriptor,
|
|
89
|
+
tutorialsBuildAnAppDocsDescriptor,
|
|
90
|
+
tutorialsCrudCollectionDocsDescriptor,
|
|
91
|
+
tutorialsRuntimePluginDocsDescriptor,
|
|
92
|
+
fleetPairingDocsDescriptor,
|
|
93
|
+
fleetPairingDirectDocsDescriptor,
|
|
94
|
+
fleetPairingMdnsDocsDescriptor,
|
|
95
|
+
fleetPairingPlatformDocsDescriptor,
|
|
96
|
+
agentVoiceDocsDescriptor,
|
|
97
|
+
runtimeRpcRelayDocsDescriptor
|
|
98
|
+
];
|
|
99
|
+
export const docsPlugin = createRuntimePlugin({
|
|
100
|
+
id: 'docs',
|
|
101
|
+
name: 'Docs',
|
|
102
|
+
description: 'Documentation runtime kind and docs client',
|
|
103
|
+
kinds: [docsTopicKind],
|
|
104
|
+
descriptors: [
|
|
105
|
+
docsToolDescriptor,
|
|
106
|
+
vibesPlatformPromptDescriptor,
|
|
107
|
+
docsSvelteConfigDescriptor,
|
|
108
|
+
...builtInTopicDescriptors
|
|
109
|
+
],
|
|
110
|
+
loaders: [
|
|
111
|
+
loader('docs', { kind: 'tools/tool' }, () => import("./tools/docs.impl.js"))
|
|
112
|
+
],
|
|
113
|
+
async onActivate(runtime) {
|
|
114
|
+
registerDocsRuntimeClient(runtime);
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
export default docsPlugin;
|
|
118
|
+
//# sourceMappingURL=docs.plugin.js.map
|