@vibesdotdev/plugins 0.0.0-stage → 1.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +18 -0
- package/README.md +54 -2
- package/VIBES.md +165 -0
- package/dist/ai/index.d.ts +4 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +3 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/plugin.impl.cloud.d.ts +4 -0
- package/dist/ai/plugin.impl.cloud.d.ts.map +1 -0
- package/dist/ai/plugin.impl.cloud.js +32 -0
- package/dist/ai/plugin.impl.cloud.js.map +1 -0
- package/dist/ai/plugin.impl.consumer.d.ts +7 -0
- package/dist/ai/plugin.impl.consumer.d.ts.map +1 -0
- package/dist/ai/plugin.impl.consumer.js +222 -0
- package/dist/ai/plugin.impl.consumer.js.map +1 -0
- package/dist/auth/consumer.plugin.d.ts +3 -0
- package/dist/auth/consumer.plugin.d.ts.map +1 -0
- package/dist/auth/consumer.plugin.js +105 -0
- package/dist/auth/consumer.plugin.js.map +1 -0
- package/dist/auth/index.d.ts +2 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +2 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/plugin.d.ts +4 -0
- package/dist/auth/plugin.d.ts.map +1 -0
- package/dist/auth/plugin.js +33 -0
- package/dist/auth/plugin.js.map +1 -0
- package/dist/automation/consumer.plugin.d.ts +3 -0
- package/dist/automation/consumer.plugin.d.ts.map +1 -0
- package/dist/automation/consumer.plugin.js +92 -0
- package/dist/automation/consumer.plugin.js.map +1 -0
- package/dist/automation/index.d.ts +2 -0
- package/dist/automation/index.d.ts.map +1 -0
- package/dist/automation/index.js +2 -0
- package/dist/automation/index.js.map +1 -0
- package/dist/automation/plugin.d.ts +4 -0
- package/dist/automation/plugin.d.ts.map +1 -0
- package/dist/automation/plugin.js +30 -0
- package/dist/automation/plugin.js.map +1 -0
- package/dist/bun/host.d.ts +44 -0
- package/dist/bun/host.d.ts.map +1 -0
- package/dist/bun/host.js +71 -0
- package/dist/bun/host.js.map +1 -0
- package/dist/cli/child-failure.d.ts +37 -0
- package/dist/cli/child-failure.d.ts.map +1 -0
- package/dist/cli/child-failure.js +86 -0
- package/dist/cli/child-failure.js.map +1 -0
- package/dist/cli/context.d.ts +12 -0
- package/dist/cli/context.d.ts.map +1 -0
- package/dist/cli/context.js +11 -0
- package/dist/cli/context.js.map +1 -0
- package/dist/cli/execution.d.ts +10 -0
- package/dist/cli/execution.d.ts.map +1 -0
- package/dist/cli/execution.js +20 -0
- package/dist/cli/execution.js.map +1 -0
- package/dist/cli/failure-facts.d.ts +16 -0
- package/dist/cli/failure-facts.d.ts.map +1 -0
- package/dist/cli/failure-facts.js +39 -0
- package/dist/cli/failure-facts.js.map +1 -0
- package/dist/cli/package-manager.consumer.d.ts +106 -0
- package/dist/cli/package-manager.consumer.d.ts.map +1 -0
- package/dist/cli/package-manager.consumer.js +258 -0
- package/dist/cli/package-manager.consumer.js.map +1 -0
- package/dist/cli/plugin.d.ts +9 -0
- package/dist/cli/plugin.d.ts.map +1 -0
- package/dist/cli/plugin.js +34 -0
- package/dist/cli/plugin.js.map +1 -0
- package/dist/cli/plugins.add.cli-command.descriptor.d.ts +36 -0
- package/dist/cli/plugins.add.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/plugins.add.cli-command.descriptor.js +31 -0
- package/dist/cli/plugins.add.cli-command.descriptor.js.map +1 -0
- package/dist/cli/plugins.add.cli-command.impl.consumer.d.ts +63 -0
- package/dist/cli/plugins.add.cli-command.impl.consumer.d.ts.map +1 -0
- package/dist/cli/plugins.add.cli-command.impl.consumer.js +206 -0
- package/dist/cli/plugins.add.cli-command.impl.consumer.js.map +1 -0
- package/dist/cli/plugins.cli-group.descriptor.d.ts +4 -0
- package/dist/cli/plugins.cli-group.descriptor.d.ts.map +1 -0
- package/dist/cli/plugins.cli-group.descriptor.js +10 -0
- package/dist/cli/plugins.cli-group.descriptor.js.map +1 -0
- package/dist/cli/plugins.host.cli-command.descriptor.d.ts +31 -0
- package/dist/cli/plugins.host.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/plugins.host.cli-command.descriptor.js +37 -0
- package/dist/cli/plugins.host.cli-command.descriptor.js.map +1 -0
- package/dist/cli/plugins.host.cli-command.impl.consumer.d.ts +29 -0
- package/dist/cli/plugins.host.cli-command.impl.consumer.d.ts.map +1 -0
- package/dist/cli/plugins.host.cli-command.impl.consumer.js +109 -0
- package/dist/cli/plugins.host.cli-command.impl.consumer.js.map +1 -0
- package/dist/cli/plugins.link.cli-command.descriptor.d.ts +35 -0
- package/dist/cli/plugins.link.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/plugins.link.cli-command.descriptor.js +32 -0
- package/dist/cli/plugins.link.cli-command.descriptor.js.map +1 -0
- package/dist/cli/plugins.link.cli-command.impl.consumer.d.ts +31 -0
- package/dist/cli/plugins.link.cli-command.impl.consumer.d.ts.map +1 -0
- package/dist/cli/plugins.link.cli-command.impl.consumer.js +104 -0
- package/dist/cli/plugins.link.cli-command.impl.consumer.js.map +1 -0
- package/dist/cli/plugins.list.cli-command.descriptor.d.ts +26 -0
- package/dist/cli/plugins.list.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/plugins.list.cli-command.descriptor.js +22 -0
- package/dist/cli/plugins.list.cli-command.descriptor.js.map +1 -0
- package/dist/cli/plugins.list.cli-command.impl.consumer.d.ts +116 -0
- package/dist/cli/plugins.list.cli-command.impl.consumer.d.ts.map +1 -0
- package/dist/cli/plugins.list.cli-command.impl.consumer.js +343 -0
- package/dist/cli/plugins.list.cli-command.impl.consumer.js.map +1 -0
- package/dist/cli/plugins.remove.cli-command.descriptor.d.ts +31 -0
- package/dist/cli/plugins.remove.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/plugins.remove.cli-command.descriptor.js +26 -0
- package/dist/cli/plugins.remove.cli-command.descriptor.js.map +1 -0
- package/dist/cli/plugins.remove.cli-command.impl.consumer.d.ts +30 -0
- package/dist/cli/plugins.remove.cli-command.impl.consumer.d.ts.map +1 -0
- package/dist/cli/plugins.remove.cli-command.impl.consumer.js +80 -0
- package/dist/cli/plugins.remove.cli-command.impl.consumer.js.map +1 -0
- package/dist/cli/plugins.unlink.cli-command.descriptor.d.ts +31 -0
- package/dist/cli/plugins.unlink.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/plugins.unlink.cli-command.descriptor.js +21 -0
- package/dist/cli/plugins.unlink.cli-command.descriptor.js.map +1 -0
- package/dist/cli/plugins.unlink.cli-command.impl.consumer.d.ts +76 -0
- package/dist/cli/plugins.unlink.cli-command.impl.consumer.d.ts.map +1 -0
- package/dist/cli/plugins.unlink.cli-command.impl.consumer.js +190 -0
- package/dist/cli/plugins.unlink.cli-command.impl.consumer.js.map +1 -0
- package/dist/cli/registry-sign-in.consumer.d.ts +80 -0
- package/dist/cli/registry-sign-in.consumer.d.ts.map +1 -0
- package/dist/cli/registry-sign-in.consumer.js +199 -0
- package/dist/cli/registry-sign-in.consumer.js.map +1 -0
- package/dist/cli/roll.d.ts +230 -0
- package/dist/cli/roll.d.ts.map +1 -0
- package/dist/cli/roll.js +569 -0
- package/dist/cli/roll.js.map +1 -0
- package/dist/cli/schemas/context.d.ts +10 -0
- package/dist/cli/schemas/context.d.ts.map +1 -0
- package/dist/cli/schemas/context.js +3 -0
- package/dist/cli/schemas/context.js.map +1 -0
- package/dist/cli/schemas/scopes.d.ts +37 -0
- package/dist/cli/schemas/scopes.d.ts.map +1 -0
- package/dist/cli/schemas/scopes.js +11 -0
- package/dist/cli/schemas/scopes.js.map +1 -0
- package/dist/cli/schemas/unlink.d.ts +18 -0
- package/dist/cli/schemas/unlink.d.ts.map +1 -0
- package/dist/cli/schemas/unlink.js +3 -0
- package/dist/cli/schemas/unlink.js.map +1 -0
- package/dist/cli/schemas/update.d.ts +77 -0
- package/dist/cli/schemas/update.d.ts.map +1 -0
- package/dist/cli/schemas/update.js +3 -0
- package/dist/cli/schemas/update.js.map +1 -0
- package/dist/cli/scopes.d.ts +50 -0
- package/dist/cli/scopes.d.ts.map +1 -0
- package/dist/cli/scopes.js +90 -0
- package/dist/cli/scopes.js.map +1 -0
- package/dist/cli/seed.d.ts +232 -0
- package/dist/cli/seed.d.ts.map +1 -0
- package/dist/cli/seed.js +590 -0
- package/dist/cli/seed.js.map +1 -0
- package/dist/cli/self-update.d.ts +120 -0
- package/dist/cli/self-update.d.ts.map +1 -0
- package/dist/cli/self-update.js +274 -0
- package/dist/cli/self-update.js.map +1 -0
- package/dist/cli/update.cli-command.descriptor.d.ts +62 -0
- package/dist/cli/update.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/update.cli-command.descriptor.js +49 -0
- package/dist/cli/update.cli-command.descriptor.js.map +1 -0
- package/dist/cli/update.cli-command.impl.consumer.d.ts +178 -0
- package/dist/cli/update.cli-command.impl.consumer.d.ts.map +1 -0
- package/dist/cli/update.cli-command.impl.consumer.js +750 -0
- package/dist/cli/update.cli-command.impl.consumer.js.map +1 -0
- package/dist/comms/consumer.plugin.d.ts +3 -0
- package/dist/comms/consumer.plugin.d.ts.map +1 -0
- package/dist/comms/consumer.plugin.js +108 -0
- package/dist/comms/consumer.plugin.js.map +1 -0
- package/dist/comms/index.d.ts +2 -0
- package/dist/comms/index.d.ts.map +1 -0
- package/dist/comms/index.js +2 -0
- package/dist/comms/index.js.map +1 -0
- package/dist/comms/plugin.d.ts +4 -0
- package/dist/comms/plugin.d.ts.map +1 -0
- package/dist/comms/plugin.js +30 -0
- package/dist/comms/plugin.js.map +1 -0
- package/dist/consumer.d.ts +3 -0
- package/dist/consumer.d.ts.map +1 -0
- package/dist/consumer.js +3 -0
- package/dist/consumer.js.map +1 -0
- package/dist/consumer.plugin.d.ts +63 -0
- package/dist/consumer.plugin.d.ts.map +1 -0
- package/dist/consumer.plugin.js +89 -0
- package/dist/consumer.plugin.js.map +1 -0
- package/dist/core/consumer.plugin.d.ts +4 -0
- package/dist/core/consumer.plugin.d.ts.map +1 -0
- package/dist/core/consumer.plugin.js +364 -0
- package/dist/core/consumer.plugin.js.map +1 -0
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +2 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/optional-member.d.ts +11 -0
- package/dist/core/optional-member.d.ts.map +1 -0
- package/dist/core/optional-member.js +68 -0
- package/dist/core/optional-member.js.map +1 -0
- package/dist/core/optional-plugin.d.ts +40 -0
- package/dist/core/optional-plugin.d.ts.map +1 -0
- package/dist/core/optional-plugin.js +107 -0
- package/dist/core/optional-plugin.js.map +1 -0
- package/dist/core/plugin.d.ts +10 -0
- package/dist/core/plugin.d.ts.map +1 -0
- package/dist/core/plugin.js +64 -0
- package/dist/core/plugin.js.map +1 -0
- package/dist/core/setup-requirements.descriptors.d.ts +7 -0
- package/dist/core/setup-requirements.descriptors.d.ts.map +1 -0
- package/dist/core/setup-requirements.descriptors.js +117 -0
- package/dist/core/setup-requirements.descriptors.js.map +1 -0
- package/dist/data/consumer.plugin.d.ts +3 -0
- package/dist/data/consumer.plugin.d.ts.map +1 -0
- package/dist/data/consumer.plugin.js +99 -0
- package/dist/data/consumer.plugin.js.map +1 -0
- package/dist/data/index.d.ts +2 -0
- package/dist/data/index.d.ts.map +1 -0
- package/dist/data/index.js +2 -0
- package/dist/data/index.js.map +1 -0
- package/dist/data/plugin.d.ts +4 -0
- package/dist/data/plugin.d.ts.map +1 -0
- package/dist/data/plugin.js +37 -0
- package/dist/data/plugin.js.map +1 -0
- package/dist/devtools/consumer.plugin.d.ts +3 -0
- package/dist/devtools/consumer.plugin.d.ts.map +1 -0
- package/dist/devtools/consumer.plugin.js +323 -0
- package/dist/devtools/consumer.plugin.js.map +1 -0
- package/dist/devtools/index.d.ts +2 -0
- package/dist/devtools/index.d.ts.map +1 -0
- package/dist/devtools/index.js +2 -0
- package/dist/devtools/index.js.map +1 -0
- package/dist/devtools/plugin.d.ts +4 -0
- package/dist/devtools/plugin.d.ts.map +1 -0
- package/dist/devtools/plugin.js +34 -0
- package/dist/devtools/plugin.js.map +1 -0
- package/dist/filesystem/index.d.ts +2 -0
- package/dist/filesystem/index.d.ts.map +1 -0
- package/dist/filesystem/index.js +2 -0
- package/dist/filesystem/index.js.map +1 -0
- package/dist/filesystem/plugin.d.ts +4 -0
- package/dist/filesystem/plugin.d.ts.map +1 -0
- package/dist/filesystem/plugin.js +21 -0
- package/dist/filesystem/plugin.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/plugin.d.ts +7 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +16 -0
- package/dist/plugin.js.map +1 -0
- package/dist/schemas/ai.d.ts +119 -0
- package/dist/schemas/ai.d.ts.map +1 -0
- package/dist/schemas/ai.js +84 -0
- package/dist/schemas/ai.js.map +1 -0
- package/dist/schemas/auth.d.ts +15 -0
- package/dist/schemas/auth.d.ts.map +1 -0
- package/dist/schemas/auth.js +19 -0
- package/dist/schemas/auth.js.map +1 -0
- package/dist/schemas/automation.d.ts +66 -0
- package/dist/schemas/automation.d.ts.map +1 -0
- package/dist/schemas/automation.js +36 -0
- package/dist/schemas/automation.js.map +1 -0
- package/dist/schemas/comms.d.ts +13 -0
- package/dist/schemas/comms.d.ts.map +1 -0
- package/dist/schemas/comms.js +27 -0
- package/dist/schemas/comms.js.map +1 -0
- package/dist/schemas/core.d.ts +102 -0
- package/dist/schemas/core.d.ts.map +1 -0
- package/dist/schemas/core.js +124 -0
- package/dist/schemas/core.js.map +1 -0
- package/dist/schemas/data.d.ts +13 -0
- package/dist/schemas/data.d.ts.map +1 -0
- package/dist/schemas/data.js +25 -0
- package/dist/schemas/data.js.map +1 -0
- package/dist/schemas/devtools.d.ts +33 -0
- package/dist/schemas/devtools.d.ts.map +1 -0
- package/dist/schemas/devtools.js +56 -0
- package/dist/schemas/devtools.js.map +1 -0
- package/dist/schemas/family.d.ts +11 -0
- package/dist/schemas/family.d.ts.map +1 -0
- package/dist/schemas/family.js +21 -0
- package/dist/schemas/family.js.map +1 -0
- package/dist/schemas/filesystem.d.ts +25 -0
- package/dist/schemas/filesystem.d.ts.map +1 -0
- package/dist/schemas/filesystem.js +24 -0
- package/dist/schemas/filesystem.js.map +1 -0
- package/dist/schemas/host.d.ts +10 -0
- package/dist/schemas/host.d.ts.map +1 -0
- package/dist/schemas/host.js +2 -0
- package/dist/schemas/host.js.map +1 -0
- package/dist/schemas/optional-member.d.ts +67 -0
- package/dist/schemas/optional-member.d.ts.map +1 -0
- package/dist/schemas/optional-member.js +31 -0
- package/dist/schemas/optional-member.js.map +1 -0
- package/dist/schemas/roll.d.ts +47 -0
- package/dist/schemas/roll.d.ts.map +1 -0
- package/dist/schemas/roll.js +18 -0
- package/dist/schemas/roll.js.map +1 -0
- package/dist/schemas/tui.d.ts +33 -0
- package/dist/schemas/tui.d.ts.map +1 -0
- package/dist/schemas/tui.js +95 -0
- package/dist/schemas/tui.js.map +1 -0
- package/dist/schemas/ui.d.ts +15 -0
- package/dist/schemas/ui.d.ts.map +1 -0
- package/dist/schemas/ui.js +45 -0
- package/dist/schemas/ui.js.map +1 -0
- package/dist/tui/code-sessions-tui-plugin-shim.d.ts +7 -0
- package/dist/tui/code-sessions-tui-plugin-shim.d.ts.map +1 -0
- package/dist/tui/code-sessions-tui-plugin-shim.js +2 -0
- package/dist/tui/code-sessions-tui-plugin-shim.js.map +1 -0
- package/dist/tui/index.d.ts +8 -0
- package/dist/tui/index.d.ts.map +1 -0
- package/dist/tui/index.js +8 -0
- package/dist/tui/index.js.map +1 -0
- package/dist/tui/plugin.d.ts +53 -0
- package/dist/tui/plugin.d.ts.map +1 -0
- package/dist/tui/plugin.js +350 -0
- package/dist/tui/plugin.js.map +1 -0
- package/dist/ui/consumer.plugin.d.ts +3 -0
- package/dist/ui/consumer.plugin.d.ts.map +1 -0
- package/dist/ui/consumer.plugin.js +75 -0
- package/dist/ui/consumer.plugin.js.map +1 -0
- package/dist/ui/index.d.ts +2 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +2 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/plugin.d.ts +4 -0
- package/dist/ui/plugin.d.ts.map +1 -0
- package/dist/ui/plugin.js +35 -0
- package/dist/ui/plugin.js.map +1 -0
- package/host-start.mjs +39 -0
- package/host.mjs +24 -0
- package/package.json +437 -4
|
@@ -0,0 +1,364 @@
|
|
|
1
|
+
import { CapabilityError, createRuntimePlugin, createRuntimeKind, hasRuntimeStdioCapture } from '@vibesdotdev/kernel';
|
|
2
|
+
import { adapterFieldOmitted, CoreConfigDescriptorSchema, mergeConfig } from "../schemas/core.js";
|
|
3
|
+
import { optionalMemberRegistrar } from "./optional-member.js";
|
|
4
|
+
const storageAdapterEntries = {
|
|
5
|
+
'cloud-api': {
|
|
6
|
+
localRetention: false,
|
|
7
|
+
load: async () => (await import('@vibesdotdev/storage/adapters/cloud-api/plugin')).storageAdapterCloudApiPlugin
|
|
8
|
+
},
|
|
9
|
+
json: {
|
|
10
|
+
localRetention: true,
|
|
11
|
+
load: async () => (await import('@vibesdotdev/storage/adapters/json/plugin')).storageAdapterJsonPlugin
|
|
12
|
+
},
|
|
13
|
+
localdb: {
|
|
14
|
+
localRetention: true,
|
|
15
|
+
load: async () => (await import('@vibesdotdev/storage/adapters/localdb/plugin')).storageAdapterLocaldbPlugin
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
function unknownStorageAdapter(id) {
|
|
19
|
+
return new CapabilityError(`Unknown storage adapter '${id}'.`, 'UNAVAILABLE', {
|
|
20
|
+
reason: 'storage-adapter-unknown',
|
|
21
|
+
retryable: false,
|
|
22
|
+
details: { adapter: id },
|
|
23
|
+
recoveryHint: 'Select a registered storage adapter id.'
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
const filesystemAdapterEntries = {
|
|
27
|
+
// The host environment composes its filesystem adapter.
|
|
28
|
+
bun: { load: null },
|
|
29
|
+
// Provider adapters are composed by the host integration package
|
|
30
|
+
// (Cloudflare Artifacts: createCloudflareArtifactsFileSystemPlugin
|
|
31
|
+
// from @vibesdotdev/integrations-cloudflare/filesystem/artifacts/plugin,
|
|
32
|
+
// which needs the Worker's ARTIFACTS binding). Framework keeps the
|
|
33
|
+
// adapter selection contract but never imports a provider implementation.
|
|
34
|
+
cloudflare: { load: null },
|
|
35
|
+
artifacts: { load: null },
|
|
36
|
+
// Vendor-backed S3 composition belongs to the app host. The public
|
|
37
|
+
// umbrella retains only the configuration contract.
|
|
38
|
+
s3: { load: null },
|
|
39
|
+
platform: {
|
|
40
|
+
load: async () => (await import('@vibesdotdev/workspace/environment/platform-fs/plugin')).platformFileSystemAdapterPlugin
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
/** Declarative lookup: the id selects its entry, or nothing when unregistered. */
|
|
44
|
+
function lookupEntry(entries, id) {
|
|
45
|
+
return Object.hasOwn(entries, id) ? entries[id] : undefined;
|
|
46
|
+
}
|
|
47
|
+
function unknownFilesystemAdapter(id) {
|
|
48
|
+
return new CapabilityError(`Unknown filesystem adapter '${id}'.`, 'UNAVAILABLE', {
|
|
49
|
+
reason: 'filesystem-adapter-unknown',
|
|
50
|
+
retryable: false,
|
|
51
|
+
details: { adapter: id },
|
|
52
|
+
recoveryHint: 'Select a registered filesystem adapter id.'
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
/** Full consumer graph. The host environment supplies native filesystem implementations. */
|
|
56
|
+
const consumerCore = createRuntimePlugin({
|
|
57
|
+
id: '@vibesdotdev/plugins-core',
|
|
58
|
+
name: 'Core Consumer Composition',
|
|
59
|
+
dependencies: ['context'],
|
|
60
|
+
kinds: [createRuntimeKind({ id: 'plugins/core/config', descriptorSchema: CoreConfigDescriptorSchema })],
|
|
61
|
+
async onRegister(runtime) {
|
|
62
|
+
// Now read config and register optional plugins
|
|
63
|
+
const configId = 'plugins.core';
|
|
64
|
+
const userConfig = runtime.hasContext(configId) ? await runtime.context(configId) : undefined;
|
|
65
|
+
const effectiveConfig = mergeConfig(userConfig, runtime.scope);
|
|
66
|
+
// Consumer floor when the caller omits the field. The public schema names no adapter.
|
|
67
|
+
// An explicit list, including [], is the caller's selection.
|
|
68
|
+
if (adapterFieldOmitted(userConfig, 'storage')) {
|
|
69
|
+
effectiveConfig.storage = { enabled: true, adapters: ['localdb', 'json'], default: 'localdb' };
|
|
70
|
+
}
|
|
71
|
+
if (adapterFieldOmitted(userConfig, 'filesystem')) {
|
|
72
|
+
effectiveConfig.filesystem = { enabled: true, adapters: ['bun'], default: 'bun' };
|
|
73
|
+
}
|
|
74
|
+
const registerOptional = optionalMemberRegistrar('plugins-core', runtime);
|
|
75
|
+
const { default: hooksPlugin } = await import('@vibesdotdev/kernel/hooks/hooks.plugin');
|
|
76
|
+
await runtime.registerPlugin(hooksPlugin);
|
|
77
|
+
const { default: eventsPlugin } = await import('@vibesdotdev/kernel/events/plugin');
|
|
78
|
+
await runtime.registerPlugin(eventsPlugin);
|
|
79
|
+
const { default: storagePlugin } = await import('@vibesdotdev/storage/storage.plugin');
|
|
80
|
+
await runtime.registerPlugin(storagePlugin);
|
|
81
|
+
const { default: loggingPlugin } = await import('@vibesdotdev/logging/plugin');
|
|
82
|
+
await runtime.registerPlugin(loggingPlugin);
|
|
83
|
+
const { default: runtimeResolverPlugin } = await import('@vibesdotdev/kernel/resolver/resolver.plugin');
|
|
84
|
+
await runtime.registerPlugin(runtimeResolverPlugin);
|
|
85
|
+
const { default: runtimeClientPlugin } = await import('@vibesdotdev/kernel/client/plugin');
|
|
86
|
+
await runtime.registerPlugin(runtimeClientPlugin);
|
|
87
|
+
// Media is a Framework runtime kind, not an optional feature. Register it
|
|
88
|
+
// before feature umbrellas so providers such as Bridge can declare their
|
|
89
|
+
// capture descriptors without depending on app registration order.
|
|
90
|
+
const { default: mediaPlugin } = await import('@vibesdotdev/media/plugin');
|
|
91
|
+
await runtime.registerPlugin(mediaPlugin);
|
|
92
|
+
// Canvas board document+ops contract (W2 canvas/board). Register early so
|
|
93
|
+
// Vessel whiteboard host / adapters can declare board descriptors without
|
|
94
|
+
// depending on feature umbrella order.
|
|
95
|
+
const { default: canvasPlugin } = await import('@vibesdotdev/canvas/plugin');
|
|
96
|
+
await runtime.registerPlugin(canvasPlugin);
|
|
97
|
+
// Realtime owns the SSE channel hub. Its plugin registers only the owner
|
|
98
|
+
// docs topics, so every host that loads plugins can show them.
|
|
99
|
+
const { default: realtimePlugin } = await import('@vibesdotdev/realtime/plugin');
|
|
100
|
+
await runtime.registerPlugin(realtimePlugin);
|
|
101
|
+
const { default: configPlugin } = await import('@vibesdotdev/config/plugin');
|
|
102
|
+
await runtime.registerPlugin(configPlugin);
|
|
103
|
+
if (runtime.scope.surface === 'cli') {
|
|
104
|
+
const { default: configCliPlugin } = await import('@vibesdotdev/config/cli/plugin');
|
|
105
|
+
await runtime.registerPlugin(configCliPlugin);
|
|
106
|
+
}
|
|
107
|
+
const { default: environmentPlugin } = await import('@vibesdotdev/config/environment/environment.plugin');
|
|
108
|
+
await runtime.registerPlugin(environmentPlugin);
|
|
109
|
+
const { default: setupPlugin } = await import('@vibesdotdev/config/setup/plugin');
|
|
110
|
+
await runtime.registerPlugin(setupPlugin);
|
|
111
|
+
if (runtime.scope.surface === 'cli') {
|
|
112
|
+
const { default: setupCliPlugin } = await import('@vibesdotdev/config/setup/cli.plugin');
|
|
113
|
+
await runtime.registerPlugin(setupCliPlugin);
|
|
114
|
+
}
|
|
115
|
+
const { default: runtimePlugin } = await import('@vibesdotdev/kernel/plugin');
|
|
116
|
+
await runtime.registerPlugin(runtimePlugin);
|
|
117
|
+
// Native capture follows a declared host port on consumer and cloud hosts.
|
|
118
|
+
// An absent optional port declines composition; malformed ports still fail.
|
|
119
|
+
if (await hasRuntimeStdioCapture(runtime)) {
|
|
120
|
+
const { loggingStdoutCapturePlugin } = await import('@vibesdotdev/logging');
|
|
121
|
+
await runtime.registerPlugin(loggingStdoutCapturePlugin);
|
|
122
|
+
}
|
|
123
|
+
if (effectiveConfig.loggingBrowser) {
|
|
124
|
+
const { default: loggingBrowserPlugin } = await import('@vibesdotdev/logging/browser/plugin');
|
|
125
|
+
await runtime.registerPlugin(loggingBrowserPlugin);
|
|
126
|
+
}
|
|
127
|
+
if (effectiveConfig.docs) {
|
|
128
|
+
const { default: docsPlugin } = await import('@vibesdotdev/docs/plugin');
|
|
129
|
+
await runtime.registerPlugin(docsPlugin);
|
|
130
|
+
}
|
|
131
|
+
if (effectiveConfig.tools) {
|
|
132
|
+
if (runtime.scope.hardware === 'cloud') {
|
|
133
|
+
const { default: toolsPlugin } = await import('@vibesdotdev/tools/cloud.plugin');
|
|
134
|
+
await runtime.registerPlugin(toolsPlugin);
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
const { default: toolsPlugin } = await import('@vibesdotdev/tools/plugin');
|
|
138
|
+
await runtime.registerPlugin(toolsPlugin);
|
|
139
|
+
}
|
|
140
|
+
// Built-in tool implementations extracted from @vibesdotdev/tools into their
|
|
141
|
+
// own packages (so tools stays pure framework). Composed here, above tools.
|
|
142
|
+
const { default: calculateToolPlugin } = await import('@vibesdotdev/tools/calculate/plugin');
|
|
143
|
+
await runtime.registerPlugin(calculateToolPlugin);
|
|
144
|
+
const { default: fetchToolPlugin } = await import('@vibesdotdev/tools/fetch/plugin');
|
|
145
|
+
await runtime.registerPlugin(fetchToolPlugin);
|
|
146
|
+
const { default: reasoningToolPlugin } = await import('@vibesdotdev/ai/reasoning/plugin');
|
|
147
|
+
await runtime.registerPlugin(reasoningToolPlugin);
|
|
148
|
+
// Work-items projection + vibes work CLI (extracted from tools).
|
|
149
|
+
if (await registerOptional('@vibesdotdev/projects/work/plugin', async () => (await import('@vibesdotdev/projects/work/plugin')).default)) {
|
|
150
|
+
if (runtime.scope.surface === 'cli') {
|
|
151
|
+
await registerOptional('@vibesdotdev/projects/work/cli/plugin', async () => (await import('@vibesdotdev/projects/work/cli/plugin')).default);
|
|
152
|
+
}
|
|
153
|
+
await registerOptional('@vibesdotdev/projects/work/tools/plugin', async () => (await import('@vibesdotdev/projects/work/tools/plugin')).default);
|
|
154
|
+
}
|
|
155
|
+
// `vibes projects` (create / list / get / update / delete / switch / current).
|
|
156
|
+
if (runtime.scope.surface === 'cli') {
|
|
157
|
+
await registerOptional('@vibesdotdev/projects/app/cli/plugin', async () => (await import('@vibesdotdev/projects/app/cli/plugin')).default);
|
|
158
|
+
}
|
|
159
|
+
// Project-local planning records + `vibes plan` CLI.
|
|
160
|
+
await registerOptional('@vibesdotdev/projects/planning/plugin', async () => (await import('@vibesdotdev/projects/planning/plugin')).default);
|
|
161
|
+
if (runtime.scope.surface === 'cli') {
|
|
162
|
+
await registerOptional('@vibesdotdev/projects/planning/cli/plugin', async () => (await import('@vibesdotdev/projects/planning/cli/plugin')).default);
|
|
163
|
+
}
|
|
164
|
+
// Forge tools (repos / files / issues / PRs / reviews) — optional, skipped
|
|
165
|
+
// if the package isn't installed for this surface. Exposes itself to MCP
|
|
166
|
+
// clients + the native loop via its descriptors' purpose:['mcp','agent'].
|
|
167
|
+
await registerOptional('@vibesdotdev/forge/tools/plugin', async () => (await import('@vibesdotdev/forge/tools/plugin')).default);
|
|
168
|
+
}
|
|
169
|
+
if (effectiveConfig.workers) {
|
|
170
|
+
// The workers owner is provider-neutral on every hardware kind. Hosted
|
|
171
|
+
// queue implementations are contributed by their integration plugins;
|
|
172
|
+
// selecting a provider-owned adapter from this umbrella would invert the
|
|
173
|
+
// dependency boundary and makes the core composition package lie.
|
|
174
|
+
const { default: workersPlugin } = await import('@vibesdotdev/workers/plugin');
|
|
175
|
+
await runtime.registerPlugin(workersPlugin);
|
|
176
|
+
}
|
|
177
|
+
if (effectiveConfig.app) {
|
|
178
|
+
// App's projects plugin depends on the client plugin for its api/client
|
|
179
|
+
// descriptor. Register client first so CLI startup cannot silently
|
|
180
|
+
// degrade to tracking-only and drop `vibes projects`.
|
|
181
|
+
if (await registerOptional('@vibesdotdev/client/plugin', async () => (await import('@vibesdotdev/client/plugin')).default)) {
|
|
182
|
+
// The universal App plugin declares the planning/tracking ledgers;
|
|
183
|
+
// their consumer storage implementations are a separate slice.
|
|
184
|
+
// Without it the ledgers resolve to a bare manifest and
|
|
185
|
+
// `vibes work sync` refuses "no upsertItem".
|
|
186
|
+
if (await registerOptional('@vibesdotdev/projects/app/plugin', async () => (await import('@vibesdotdev/projects/app/plugin')).default)) {
|
|
187
|
+
await registerOptional('@vibesdotdev/projects/app/consumer.plugin', async () => (await import('@vibesdotdev/projects/app/consumer.plugin')).default);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
// One-Authority work↔tracking sync (forge issue #141): pair the local
|
|
191
|
+
// tracking-ledger endpoint (work.sync) with the platform authority
|
|
192
|
+
// endpoint (projects.sync) through the seeded binding
|
|
193
|
+
// `sync.binding.vibes.tracking-items`, driven by `vibes work sync
|
|
194
|
+
// --push/--pull`. registerPlugin is idempotent, so pre-registering the
|
|
195
|
+
// sync substrate here never conflicts with the CLI integration host
|
|
196
|
+
// registering it again for productivity providers.
|
|
197
|
+
if (runtime.hasPlugin('app')) {
|
|
198
|
+
const synced = (await registerOptional('@vibesdotdev/sync/plugin', async () => (await import('@vibesdotdev/sync/plugin')).default)) &&
|
|
199
|
+
(await registerOptional('@vibesdotdev/projects/api-client-plugin', async () => (await import('@vibesdotdev/projects/api-client-plugin')).default)) &&
|
|
200
|
+
(await registerOptional('@vibesdotdev/projects/sync.plugin', async () => (await import('@vibesdotdev/projects/sync.plugin')).default));
|
|
201
|
+
if (synced) {
|
|
202
|
+
await registerOptional('@vibesdotdev/projects/work/sync.plugin', async () => (await import('@vibesdotdev/projects/work/sync.plugin')).default);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
if (effectiveConfig.cache) {
|
|
207
|
+
const { default: cachePlugin } = await import('@vibesdotdev/cache/plugin');
|
|
208
|
+
await runtime.registerPlugin(cachePlugin);
|
|
209
|
+
}
|
|
210
|
+
const { default: storageConsumer } = await import('@vibesdotdev/storage/storage.consumer.plugin');
|
|
211
|
+
await runtime.registerPlugin(storageConsumer);
|
|
212
|
+
// Register storage adapters based on config
|
|
213
|
+
const storageConfig = effectiveConfig.storage;
|
|
214
|
+
if (storageConfig.enabled) {
|
|
215
|
+
let localRetention = false;
|
|
216
|
+
for (const adapter of storageConfig.adapters) {
|
|
217
|
+
const entry = lookupEntry(storageAdapterEntries, adapter);
|
|
218
|
+
if (entry === undefined)
|
|
219
|
+
continue;
|
|
220
|
+
await runtime.registerPlugin(await entry.load());
|
|
221
|
+
localRetention = localRetention || entry.localRetention;
|
|
222
|
+
}
|
|
223
|
+
// Filesystem maintenance (retention) for the consumer stores composed above,
|
|
224
|
+
// composed from its own entry rather than from an adapter plugin.
|
|
225
|
+
if (localRetention) {
|
|
226
|
+
const { default: storageNodePlugin } = await import('@vibesdotdev/storage/node.plugin');
|
|
227
|
+
await runtime.registerPlugin(storageNodePlugin);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
// Register filesystem
|
|
231
|
+
const filesystemConfig = effectiveConfig.filesystem;
|
|
232
|
+
if (filesystemConfig.enabled) {
|
|
233
|
+
const { filesystemPlugin } = await import('@vibesdotdev/filesystem');
|
|
234
|
+
await runtime.registerPlugin(filesystemPlugin);
|
|
235
|
+
// Register all requested adapters. Each id resolves through the
|
|
236
|
+
// declared table above: host-composed entries register nothing
|
|
237
|
+
// here, and an id with no entry refuses instead of being ignored.
|
|
238
|
+
for (const adapter of filesystemConfig.adapters) {
|
|
239
|
+
const entry = lookupEntry(filesystemAdapterEntries, adapter);
|
|
240
|
+
if (entry === undefined)
|
|
241
|
+
continue;
|
|
242
|
+
if (entry.load !== null)
|
|
243
|
+
await runtime.registerPlugin(await entry.load());
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
// Register paths
|
|
247
|
+
if (effectiveConfig.paths) {
|
|
248
|
+
const { pathsPlugin } = await import('@vibesdotdev/paths');
|
|
249
|
+
await runtime.registerPlugin(pathsPlugin);
|
|
250
|
+
}
|
|
251
|
+
// Register workspace
|
|
252
|
+
if (effectiveConfig.workspace) {
|
|
253
|
+
const { default: plugin } = await import('@vibesdotdev/workspace/plugin');
|
|
254
|
+
await runtime.registerPlugin(plugin);
|
|
255
|
+
const { default: custodyPlugin } = await import('@vibesdotdev/bridge/workspace/plugin');
|
|
256
|
+
await runtime.registerPlugin(custodyPlugin);
|
|
257
|
+
const { default: workspaceLockPlugin } = await import('@vibesdotdev/workspace/lock/plugin');
|
|
258
|
+
await runtime.registerPlugin(workspaceLockPlugin);
|
|
259
|
+
const { default: workspaceFsPlugin } = await import('@vibesdotdev/workspace/fs/plugin');
|
|
260
|
+
await runtime.registerPlugin(workspaceFsPlugin);
|
|
261
|
+
const { default: workspaceOwnershipPlugin } = await import('@vibesdotdev/workspace/ownership/plugin');
|
|
262
|
+
await runtime.registerPlugin(workspaceOwnershipPlugin);
|
|
263
|
+
const { default: workspaceIsolationPlugin } = await import('@vibesdotdev/workspace/isolation/plugin');
|
|
264
|
+
await runtime.registerPlugin(workspaceIsolationPlugin);
|
|
265
|
+
const { default: editorPlugin } = await import('@vibesdotdev/editor/plugin');
|
|
266
|
+
await runtime.registerPlugin(editorPlugin);
|
|
267
|
+
const { default: codeAtlasPlugin } = await import('@vibesdotdev/editor/code-atlas/plugin');
|
|
268
|
+
await runtime.registerPlugin(codeAtlasPlugin);
|
|
269
|
+
const { default: workspaceLspPlugin } = await import('@vibesdotdev/workspace/lsp/plugin');
|
|
270
|
+
await runtime.registerPlugin(workspaceLspPlugin);
|
|
271
|
+
if (runtime.scope.surface === 'cli') {
|
|
272
|
+
const { default: workspaceCliPlugin } = await import('@vibesdotdev/workspace/cli/plugin');
|
|
273
|
+
await runtime.registerPlugin(workspaceCliPlugin);
|
|
274
|
+
const { default: workspaceLspCliPlugin } = await import('@vibesdotdev/workspace/lsp/cli.plugin');
|
|
275
|
+
await runtime.registerPlugin(workspaceLspCliPlugin);
|
|
276
|
+
}
|
|
277
|
+
const { default: workspaceRulesPlugin } = await import('@vibesdotdev/workspace/rules-plugin/plugin');
|
|
278
|
+
await runtime.registerPlugin(workspaceRulesPlugin);
|
|
279
|
+
const { default: workspaceSignalsPlugin } = await import('@vibesdotdev/workspace/signals/plugin');
|
|
280
|
+
await runtime.registerPlugin(workspaceSignalsPlugin);
|
|
281
|
+
}
|
|
282
|
+
// Register session
|
|
283
|
+
if (effectiveConfig.session) {
|
|
284
|
+
const { default: sessionPlugin } = await import('@vibesdotdev/session/plugin');
|
|
285
|
+
await runtime.registerPlugin(sessionPlugin);
|
|
286
|
+
}
|
|
287
|
+
// Canonical `./cli` isolated subpath of the account package (Wave 4 of
|
|
288
|
+
// SURFACE-PACKAGE-CONVENTIONS §3, folded into @vibesdotdev/account under
|
|
289
|
+
// repository-collection-reshape-2026-08). Registers `vibes account whoami`,
|
|
290
|
+
// `vibes account orgs`, and `vibes account set-org`. CLI-only by
|
|
291
|
+
// surface; we still gate on the cli/group + cli/command kinds being
|
|
292
|
+
// available (i.e. `@vibesdotdev/cli` is composed in this runtime),
|
|
293
|
+
// and silently skip when the optional peer is not installed in
|
|
294
|
+
// the current workspace slice.
|
|
295
|
+
if (runtime.scope.surface === 'cli') {
|
|
296
|
+
await registerOptional('@vibesdotdev/account/cli/plugin', async () => (await import('@vibesdotdev/account/cli/plugin')).default);
|
|
297
|
+
// Canonical sibling -cli surface for the applets package: `vibes applet
|
|
298
|
+
// list` and `vibes applet build`, local authoring over `.vibes/applets`.
|
|
299
|
+
//
|
|
300
|
+
// Registered HERE rather than by `@vibesdotdev/applets`, because a base
|
|
301
|
+
// package must not depend on its own surface.
|
|
302
|
+
//
|
|
303
|
+
await registerOptional('@vibesdotdev/applets/cli/plugin', async () => (await import('@vibesdotdev/applets/cli/plugin')).default);
|
|
304
|
+
}
|
|
305
|
+
// Backup base plugin: targets, the backup.snapshot job and the backup.daily
|
|
306
|
+
// channel. Every consumer host that has its dependencies (paths, localdb)
|
|
307
|
+
// gets it, not only the CLI: the PM daemon (which schedules backup.daily)
|
|
308
|
+
// and the workers consumer (which runs backup.snapshot) serve on the
|
|
309
|
+
// `worker` surface. Gating this on `cli` stopped every scheduled snapshot
|
|
310
|
+
// once those hosts moved to `worker`.
|
|
311
|
+
if (runtime.scope.hardware === 'consumer') {
|
|
312
|
+
const { default: backupPlugin, BACKUP_PLUGIN_DEPENDENCIES } = await import('@vibesdotdev/storage/backup/plugin');
|
|
313
|
+
if (BACKUP_PLUGIN_DEPENDENCIES.every((id) => runtime.hasPlugin(id))) {
|
|
314
|
+
await runtime.registerPlugin(backupPlugin);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
// Storage CLI surface (vibes storage list + storage sync {pull,push,status,resolve}).
|
|
318
|
+
// The cli/command impls call process.exit + statically import node:fs-backed
|
|
319
|
+
// sync-state.consumer, so they live in @vibesdotdev/storage/cli.plugin (split
|
|
320
|
+
// out of storage/plugin to keep that consumer edge off cloud bundles). Mount
|
|
321
|
+
// CLI-scope-only here; the core storage plugin (registered unconditionally
|
|
322
|
+
// above) satisfies the `storage` dependency, and the composed @vibesdotdev/cli
|
|
323
|
+
// satisfies the `cli` (cli/command + cli/group) dependency.
|
|
324
|
+
if (runtime.scope.surface === 'cli') {
|
|
325
|
+
await registerOptional('@vibesdotdev/storage/cli.plugin', async () => (await import('@vibesdotdev/storage/cli.plugin')).default);
|
|
326
|
+
// The backup CLI depends on the backup base plugin registered above; without it, it is skipped as unmet.
|
|
327
|
+
await registerOptional('@vibesdotdev/storage/backup/cli/plugin', async () => (await import('@vibesdotdev/storage/backup/cli/plugin')).default);
|
|
328
|
+
// `vibes gc status` / `vibes gc run`. Everything else about
|
|
329
|
+
// retention is automatic, but a user staring at a full disk needs
|
|
330
|
+
// a way to look and a way to act now — not at 03:30 tomorrow.
|
|
331
|
+
await registerOptional('@vibesdotdev/storage/cli/gc/plugin', async () => (await import('@vibesdotdev/storage/cli/gc/plugin')).default);
|
|
332
|
+
}
|
|
333
|
+
},
|
|
334
|
+
async onActivate(runtime) {
|
|
335
|
+
const userConfig = runtime.hasContext('plugins.core') ? await runtime.context('plugins.core') : undefined;
|
|
336
|
+
const config = mergeConfig(userConfig, runtime.scope);
|
|
337
|
+
if (config.storage.enabled) {
|
|
338
|
+
for (const id of config.storage.adapters) {
|
|
339
|
+
if (lookupEntry(storageAdapterEntries, id))
|
|
340
|
+
continue;
|
|
341
|
+
if (runtime.query('storage/adapter').withId(id).enabled().descriptors({ requireImpl: true }).length === 0) {
|
|
342
|
+
throw unknownStorageAdapter(id);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
if (config.filesystem.enabled) {
|
|
347
|
+
for (const id of config.filesystem.adapters) {
|
|
348
|
+
if (lookupEntry(filesystemAdapterEntries, id))
|
|
349
|
+
continue;
|
|
350
|
+
if (runtime.query('filesystem/adapter').withId(id).enabled().descriptors({ requireImpl: true }).length === 0) {
|
|
351
|
+
throw unknownFilesystemAdapter(id);
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
});
|
|
357
|
+
export const coreConsumerPluginsPlugin = createRuntimePlugin({
|
|
358
|
+
id: '@vibesdotdev/plugins-core.consumer',
|
|
359
|
+
name: 'Core Consumer Host',
|
|
360
|
+
dependencies: ['context'],
|
|
361
|
+
async onRegister(runtime) { await runtime.registerPlugin(consumerCore); }
|
|
362
|
+
});
|
|
363
|
+
export default coreConsumerPluginsPlugin;
|
|
364
|
+
//# sourceMappingURL=consumer.plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consumer.plugin.js","sourceRoot":"","sources":["../../src/core/consumer.plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { CapabilityError, type CaughtFailure, type ValueFreeFailure, type RuntimeRef } from '@vibesdotdev/kernel';
|
|
2
|
+
import { type OptionalMemberRegistrar, type OptionalMemberStage, type RegistrationAbsence } from '../schemas/optional-member.ts';
|
|
3
|
+
export type { OptionalMemberLoad, OptionalMemberRegistrar, OptionalMemberStage, MemberFailureDetails, UnreadableRead, RegistrationAbsence } from '../schemas/optional-member.ts';
|
|
4
|
+
export declare const PLUGIN_MEMBER_FAILED = "plugin-member-failed";
|
|
5
|
+
/** Preserve the caught failure whole; classification diagnostics contain no error text. */
|
|
6
|
+
export declare function memberFailure(family: string, member: string, stage: OptionalMemberStage, cause: CaughtFailure, unreadable?: ValueFreeFailure): CapabilityError;
|
|
7
|
+
/** A dependency refusal must name this plugin; kind absence must carry its exact kernel subject. */
|
|
8
|
+
export declare function classifyRegistrationFailure(pluginId: string, failure: CaughtFailure): RegistrationAbsence;
|
|
9
|
+
/** Register the real owner plugin, skipping only a confirmed absence of this subject. */
|
|
10
|
+
export declare function optionalMemberRegistrar(family: string, runtime: RuntimeRef): OptionalMemberRegistrar;
|
|
11
|
+
//# sourceMappingURL=optional-member.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optional-member.d.ts","sourceRoot":"","sources":["../../src/core/optional-member.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,eAAe,EACf,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAsB,KAAK,UAAU,EAC9E,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEqB,KAAK,uBAAuB,EACvD,KAAK,mBAAmB,EAA6B,KAAK,mBAAmB,EAC7E,MAAM,+BAA+B,CAAC;AAGvC,YAAY,EACX,kBAAkB,EAAE,uBAAuB,EAAE,mBAAmB,EAChE,oBAAoB,EAAE,cAAc,EAAE,mBAAmB,EACzD,MAAM,+BAA+B,CAAC;AAEvC,eAAO,MAAM,oBAAoB,yBAAyB,CAAC;AAE3D,2FAA2F;AAC3F,wBAAgB,aAAa,CAC5B,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,EAC1D,KAAK,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,gBAAgB,GACjD,eAAe,CAYjB;AAED,oGAAoG;AACpG,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,mBAAmB,CAWzG;AASD,yFAAyF;AACzF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,uBAAuB,CAoBpG"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { CapabilityError, isCapabilityError, valueFreeFailure, settle, settleNow } from '@vibesdotdev/kernel';
|
|
2
|
+
import { RuntimePluginSchema, RegistrationRefusalSchema } from "../schemas/optional-member.js";
|
|
3
|
+
import { classifyOptionalLoad, optionalPluginSkipLogger } from "./optional-plugin.js";
|
|
4
|
+
export const PLUGIN_MEMBER_FAILED = 'plugin-member-failed';
|
|
5
|
+
/** Preserve the caught failure whole; classification diagnostics contain no error text. */
|
|
6
|
+
export function memberFailure(family, member, stage, cause, unreadable) {
|
|
7
|
+
const details = { family, member, stage };
|
|
8
|
+
if (unreadable !== undefined) {
|
|
9
|
+
details.unreadable = { name: unreadable.name };
|
|
10
|
+
if (unreadable.code !== undefined)
|
|
11
|
+
details.unreadable.code = unreadable.code;
|
|
12
|
+
if (unreadable.reason !== undefined)
|
|
13
|
+
details.unreadable.reason = unreadable.reason;
|
|
14
|
+
}
|
|
15
|
+
return new CapabilityError(`Optional plugin '${member}' of ${family} failed at ${stage}.`, 'INTERNAL', {
|
|
16
|
+
reason: PLUGIN_MEMBER_FAILED, retryable: false, details,
|
|
17
|
+
recoveryHint: `Fix or remove '${member}'; installed plugin defects cannot be skipped.`,
|
|
18
|
+
cause
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
/** A dependency refusal must name this plugin; kind absence must carry its exact kernel subject. */
|
|
22
|
+
export function classifyRegistrationFailure(pluginId, failure) {
|
|
23
|
+
const classified = settleNow(() => {
|
|
24
|
+
if (!isCapabilityError(failure))
|
|
25
|
+
return { absent: false };
|
|
26
|
+
const parsed = RegistrationRefusalSchema.safeParse(failure);
|
|
27
|
+
if (!parsed.success)
|
|
28
|
+
return { absent: false };
|
|
29
|
+
if (parsed.data.code === 'UNAVAILABLE') {
|
|
30
|
+
return { absent: parsed.data.details.pluginId === pluginId && parsed.data.details.missing.length > 0 };
|
|
31
|
+
}
|
|
32
|
+
return { absent: CapabilityError.isAbsenceOf(failure, 'runtime/kind', parsed.data.details.id) };
|
|
33
|
+
});
|
|
34
|
+
return classified.ok ? classified.value : { absent: false, unreadable: valueFreeFailure(classified.cause) };
|
|
35
|
+
}
|
|
36
|
+
function admitExport(family, specifier, loaded) {
|
|
37
|
+
const read = settleNow(() => RuntimePluginSchema.safeParse(loaded));
|
|
38
|
+
if (!read.ok)
|
|
39
|
+
throw memberFailure(family, specifier, 'export', read.cause);
|
|
40
|
+
if (!read.value.success)
|
|
41
|
+
throw memberFailure(family, specifier, 'export', read.value.error);
|
|
42
|
+
return read.value.data;
|
|
43
|
+
}
|
|
44
|
+
/** Register the real owner plugin, skipping only a confirmed absence of this subject. */
|
|
45
|
+
export function optionalMemberRegistrar(family, runtime) {
|
|
46
|
+
const logSkip = optionalPluginSkipLogger(family, runtime);
|
|
47
|
+
return async (specifier, load) => {
|
|
48
|
+
const loaded = await settle(load);
|
|
49
|
+
if (!loaded.ok) {
|
|
50
|
+
const absence = classifyOptionalLoad(specifier, loaded.cause);
|
|
51
|
+
if (!absence.absent)
|
|
52
|
+
throw memberFailure(family, specifier, 'load', loaded.cause, absence.unreadable);
|
|
53
|
+
logSkip(specifier, loaded.cause);
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
const plugin = admitExport(family, specifier, loaded.value);
|
|
57
|
+
const registered = await settle(() => runtime.registerPlugin(plugin));
|
|
58
|
+
if (!registered.ok) {
|
|
59
|
+
const absence = classifyRegistrationFailure(plugin.id, registered.cause);
|
|
60
|
+
if (!absence.absent)
|
|
61
|
+
throw memberFailure(family, specifier, 'register', registered.cause, absence.unreadable);
|
|
62
|
+
logSkip(specifier, registered.cause);
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
return true;
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=optional-member.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optional-member.js","sourceRoot":"","sources":["../../src/core/optional-member.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One rule for an optional family member that did not register.
|
|
3
|
+
*
|
|
4
|
+
* Each family umbrella registers optional peers that a given install may not
|
|
5
|
+
* have. The public global home installs `@vibesdotdev/plugins` without, for
|
|
6
|
+
* example, `@vibesdotdev/casework`, so a WARN for that absence printed on every
|
|
7
|
+
* command a new user ran. An ABSENT peer, or one whose family this scope does
|
|
8
|
+
* not compose, is expected and logs at debug. A peer that is present but fails
|
|
9
|
+
* to load is a real defect and stays a warning.
|
|
10
|
+
*
|
|
11
|
+
* The rule reads facts, not wording: a loader miss by its `code` and
|
|
12
|
+
* `specifier`, an unmet dependency by the plugin ids it names. Anything it
|
|
13
|
+
* cannot attribute stays a warning, so a real misconfiguration is never
|
|
14
|
+
* demoted to debug.
|
|
15
|
+
*/
|
|
16
|
+
import { type CaughtFailure, type RuntimeRef } from '@vibesdotdev/kernel';
|
|
17
|
+
import { type RegistrationAbsence, type OptionalPluginFailureInput } from '../schemas/optional-member.ts';
|
|
18
|
+
/**
|
|
19
|
+
* True when the skip is an expected absence: the loader could not resolve the
|
|
20
|
+
* plugin's OWN package (a miss inside it is the peer's defect), or every
|
|
21
|
+
* dependency it lacks is one of the host-composed ids above. A missing
|
|
22
|
+
* `localdb` or `storage` is a composition defect, not an absence.
|
|
23
|
+
*/
|
|
24
|
+
export declare function isAbsentOptionalPeer(pluginId: string, cause: unknown): boolean;
|
|
25
|
+
/** Loading can skip only the requested package itself, never a dependency refusal. */
|
|
26
|
+
export declare function classifyOptionalLoad(pluginId: string, cause: CaughtFailure): RegistrationAbsence;
|
|
27
|
+
/**
|
|
28
|
+
* The skip logger for one family umbrella (`plugins-core`, `plugins-comms`, …)
|
|
29
|
+
* on the Runtime it is registering into. Entries go to that Runtime's Logging,
|
|
30
|
+
* never an ambient default; an unprepared Runtime refuses (C083a).
|
|
31
|
+
*/
|
|
32
|
+
export declare function optionalPluginSkipLogger(family: string, runtime: RuntimeRef): (pluginId: string, cause: OptionalPluginFailureInput) => void;
|
|
33
|
+
/**
|
|
34
|
+
* A toggle whose implementation left the public install (public-framework
|
|
35
|
+
* decisions 7 and 10, 2026-09-22). The key is still accepted so existing
|
|
36
|
+
* configs parse; turning it on registers nothing here, and says where the
|
|
37
|
+
* implementation lives now instead of doing nothing silently.
|
|
38
|
+
*/
|
|
39
|
+
export declare function relocatedPluginNotice(family: string, runtime: RuntimeRef): (key: string, destination: string) => void;
|
|
40
|
+
//# sourceMappingURL=optional-plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optional-plugin.d.ts","sourceRoot":"","sources":["../../src/core/optional-plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAA4D,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACpI,OAAO,EAAqD,KAAK,mBAAmB,EAAE,KAAK,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAwB7J;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAE9E;AAuBD,sFAAsF;AACtF,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,mBAAmB,CAQhG;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAS3I;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAQrH"}
|