@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,31 @@
|
|
|
1
|
+
import type { CommandExecutionStartInfo } from '@vibesdotdev/cli/schemas/surface';
|
|
2
|
+
import type { CLICommandAssetDescriptor } from '@vibesdotdev/cli/schemas/types';
|
|
3
|
+
import { PluginsCLICommand, type PluginsCLIContext } from './context.ts';
|
|
4
|
+
/**
|
|
5
|
+
* `vibes plugins link <glob>` — Drew's requirement 2, implemented with the one
|
|
6
|
+
* mechanism bun actually has for path linking.
|
|
7
|
+
*
|
|
8
|
+
* A glob is written to `package.json#workspaces` and `bun install` does the
|
|
9
|
+
* rest. No custom link command, no hand-made symlink, no `file:` redirect
|
|
10
|
+
* (which copies) and no `link:` (which is a name in a global registry, not a
|
|
11
|
+
* path) — AGENTS.md forbids all three and P6 measured why: bun-native
|
|
12
|
+
* `workspaces` is the only path-glob link mechanism that exists.
|
|
13
|
+
*
|
|
14
|
+
* Two refusals, both loud, both before anything is written:
|
|
15
|
+
*
|
|
16
|
+
* - **A glob whose static parent is missing** cannot link anything, and a
|
|
17
|
+
* manifest carrying one makes every later `bun install` in that scope a
|
|
18
|
+
* guessing game.
|
|
19
|
+
* - **A glob whose members are already owned by another bun root.** This is
|
|
20
|
+
* the single-owner rule (plan §4). Co-ownership of a member farm is the only
|
|
21
|
+
* measured route to two `@vibesdotdev/kernel` copies in one process, and it
|
|
22
|
+
* surfaces later as a fatal `PluginGraphMismatch` at plugin-load time — a far
|
|
23
|
+
* worse moment than now. The refusal names the owning root and the remedy
|
|
24
|
+
* (`vibes plugins host --global <owner>`).
|
|
25
|
+
*/
|
|
26
|
+
export default class PluginsLinkCLICommand extends PluginsCLICommand {
|
|
27
|
+
constructor(descriptor: CLICommandAssetDescriptor, context: PluginsCLIContext);
|
|
28
|
+
execute(args: CommandExecutionStartInfo['args'], options: CommandExecutionStartInfo['options']): Promise<void>;
|
|
29
|
+
private report;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=plugins.link.cli-command.impl.consumer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins.link.cli-command.impl.consumer.d.ts","sourceRoot":"","sources":["../../src/cli/plugins.link.cli-command.impl.consumer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAKhF,OAAO,EAAE,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAWzE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,iBAAiB;gBACvD,UAAU,EAAE,yBAAyB,EAAE,OAAO,EAAE,iBAAiB;IAIvE,OAAO,CAAC,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,yBAAyB,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA8DpH,OAAO,CAAC,MAAM;CAkBd"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { resolveFileSystemAdapter } from '@vibesdotdev/filesystem/client/resolve-adapter';
|
|
2
|
+
import { getRuntimePath } from '@vibesdotdev/paths';
|
|
3
|
+
import { getRuntimePackagePlugins, requireRuntimeCwd } from '@vibesdotdev/kernel';
|
|
4
|
+
import { z } from 'zod/v4';
|
|
5
|
+
import { PluginsCLICommand } from "./context.js";
|
|
6
|
+
import { runBunOrThrow } from "./package-manager.consumer.js";
|
|
7
|
+
import { resolveSingleScope } from "./scopes.js";
|
|
8
|
+
import { seedGlobalScope, workspaceGlobParent } from "./seed.js";
|
|
9
|
+
/** The command's inputs, each read on its own: a missing or non-text glob is empty, a missing flag is off. */
|
|
10
|
+
const LinkInputSchema = z.object({
|
|
11
|
+
glob: z.string().trim().catch(''),
|
|
12
|
+
dryRun: z.boolean().catch(false)
|
|
13
|
+
});
|
|
14
|
+
/**
|
|
15
|
+
* `vibes plugins link <glob>` — Drew's requirement 2, implemented with the one
|
|
16
|
+
* mechanism bun actually has for path linking.
|
|
17
|
+
*
|
|
18
|
+
* A glob is written to `package.json#workspaces` and `bun install` does the
|
|
19
|
+
* rest. No custom link command, no hand-made symlink, no `file:` redirect
|
|
20
|
+
* (which copies) and no `link:` (which is a name in a global registry, not a
|
|
21
|
+
* path) — AGENTS.md forbids all three and P6 measured why: bun-native
|
|
22
|
+
* `workspaces` is the only path-glob link mechanism that exists.
|
|
23
|
+
*
|
|
24
|
+
* Two refusals, both loud, both before anything is written:
|
|
25
|
+
*
|
|
26
|
+
* - **A glob whose static parent is missing** cannot link anything, and a
|
|
27
|
+
* manifest carrying one makes every later `bun install` in that scope a
|
|
28
|
+
* guessing game.
|
|
29
|
+
* - **A glob whose members are already owned by another bun root.** This is
|
|
30
|
+
* the single-owner rule (plan §4). Co-ownership of a member farm is the only
|
|
31
|
+
* measured route to two `@vibesdotdev/kernel` copies in one process, and it
|
|
32
|
+
* surfaces later as a fatal `PluginGraphMismatch` at plugin-load time — a far
|
|
33
|
+
* worse moment than now. The refusal names the owning root and the remedy
|
|
34
|
+
* (`vibes plugins host --global <owner>`).
|
|
35
|
+
*/
|
|
36
|
+
export default class PluginsLinkCLICommand extends PluginsCLICommand {
|
|
37
|
+
constructor(descriptor, context) {
|
|
38
|
+
super(descriptor, context);
|
|
39
|
+
}
|
|
40
|
+
async execute(args, options) {
|
|
41
|
+
const flags = { ...args, ...options };
|
|
42
|
+
const input = LinkInputSchema.parse({ ...flags, glob: args.glob });
|
|
43
|
+
const raw = input.glob;
|
|
44
|
+
if (!raw)
|
|
45
|
+
throw new Error('plugins link requires a path glob');
|
|
46
|
+
const scope = await resolveSingleScope(this.runtime, flags, { fallback: 'global' });
|
|
47
|
+
const paths = await getRuntimePath(this.runtime);
|
|
48
|
+
// Global link globs are absolute by contract ($VIBES_HOME has no tree of
|
|
49
|
+
// its own); workspace globs stay in-tree and relative, which is what bun
|
|
50
|
+
// and every existing root manifest already use.
|
|
51
|
+
const glob = scope.kind === 'global'
|
|
52
|
+
? paths.isAbsolute(raw)
|
|
53
|
+
? raw
|
|
54
|
+
: paths.resolve(requireRuntimeCwd(this.runtime), raw)
|
|
55
|
+
: paths.isAbsolute(raw)
|
|
56
|
+
? paths.relative(scope.root, raw)
|
|
57
|
+
: raw;
|
|
58
|
+
if (scope.kind === 'workspace' && (glob.startsWith('..') || paths.isAbsolute(glob))) {
|
|
59
|
+
throw new Error(`'${raw}' is outside ${scope.root}. A workspace link glob must stay in-tree; ` +
|
|
60
|
+
'use --global for a provider path elsewhere on the machine.');
|
|
61
|
+
}
|
|
62
|
+
const parent = workspaceGlobParent(paths, glob, scope.root);
|
|
63
|
+
const filesystem = await resolveFileSystemAdapter(this.runtime, { binding: false });
|
|
64
|
+
if (!(await filesystem.exists(parent))) {
|
|
65
|
+
throw new Error(`workspaces glob '${glob}' has no static parent on disk (${parent}). ` +
|
|
66
|
+
'Create the directory or fix the glob before linking it.');
|
|
67
|
+
}
|
|
68
|
+
const plugins = await getRuntimePackagePlugins(this.runtime);
|
|
69
|
+
const ownership = plugins.describeGlobOwnership(scope.root, glob);
|
|
70
|
+
if (ownership.owner)
|
|
71
|
+
throw new Error(plugins.formatGlobOwnershipRefusal(ownership));
|
|
72
|
+
const members = [...ownership.members.keys()].sort();
|
|
73
|
+
if (input.dryRun) {
|
|
74
|
+
this.report(plugins, {
|
|
75
|
+
scope: scope.kind,
|
|
76
|
+
root: scope.root,
|
|
77
|
+
glob,
|
|
78
|
+
members,
|
|
79
|
+
linked: false,
|
|
80
|
+
dryRun: true
|
|
81
|
+
});
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
if (scope.kind === 'global')
|
|
85
|
+
await seedGlobalScope(this.runtime, { home: scope.root });
|
|
86
|
+
const added = await plugins.addWorkspaceGlob(scope.root, glob, () => ({
|
|
87
|
+
name: scope.kind === 'global' ? 'vibes-global' : 'vibes-workspace',
|
|
88
|
+
private: true,
|
|
89
|
+
vibes: { plugins: [] }
|
|
90
|
+
}));
|
|
91
|
+
await runBunOrThrow({ runtime: this.runtime, action: 'install', cwd: scope.root });
|
|
92
|
+
this.report(plugins, { scope: scope.kind, root: scope.root, glob, members, linked: added });
|
|
93
|
+
}
|
|
94
|
+
report(plugins, payload) {
|
|
95
|
+
if (this.format === 'json') {
|
|
96
|
+
this.ui.json({ ...payload, globs: plugins.readWorkspaceGlobs(payload.root) });
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
const verb = payload.dryRun ? 'Would link' : payload.linked ? 'Linked' : 'Already linked';
|
|
100
|
+
this.ui.success(`${verb} ${payload.glob} into the ${payload.scope} scope (${payload.root}) — ` +
|
|
101
|
+
`${payload.members.length} member(s): ${payload.members.join(', ') || 'none yet'}`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=plugins.link.cli-command.impl.consumer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins.link.cli-command.impl.consumer.js","sourceRoot":"","sources":["../../src/cli/plugins.link.cli-command.impl.consumer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
readonly id: "plugins.list";
|
|
3
|
+
readonly kind: "cli/command";
|
|
4
|
+
readonly name: "list";
|
|
5
|
+
readonly description: "List enabled package plugin exports, their versions and their composition status";
|
|
6
|
+
readonly group: "plugins";
|
|
7
|
+
readonly surfaces: ["cli"];
|
|
8
|
+
readonly hardware: ["consumer"];
|
|
9
|
+
readonly requiredContext: ["cli/ui", "cli/output-format"];
|
|
10
|
+
readonly effects: {
|
|
11
|
+
readonly homeWrite: "none";
|
|
12
|
+
};
|
|
13
|
+
readonly options: [{
|
|
14
|
+
readonly flags: "--global";
|
|
15
|
+
readonly description: "List the global scope ($VIBES_HOME) only";
|
|
16
|
+
}, {
|
|
17
|
+
readonly flags: "--workspace";
|
|
18
|
+
readonly description: "List the current workspace scope only";
|
|
19
|
+
}, {
|
|
20
|
+
readonly flags: "--scope <kind>";
|
|
21
|
+
readonly description: "Scope to list: global | workspace";
|
|
22
|
+
readonly choices: ["global", "workspace"];
|
|
23
|
+
}];
|
|
24
|
+
};
|
|
25
|
+
export default _default;
|
|
26
|
+
//# sourceMappingURL=plugins.list.cli-command.descriptor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins.list.cli-command.descriptor.d.ts","sourceRoot":"","sources":["../../src/cli/plugins.list.cli-command.descriptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAEA,wBAmBG"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { createRuntimeAsset } from '@vibesdotdev/kernel';
|
|
2
|
+
export default createRuntimeAsset({
|
|
3
|
+
id: 'plugins.list',
|
|
4
|
+
kind: 'cli/command',
|
|
5
|
+
name: 'list',
|
|
6
|
+
description: 'List enabled package plugin exports, their versions and their composition status',
|
|
7
|
+
group: 'plugins',
|
|
8
|
+
surfaces: ['cli'],
|
|
9
|
+
hardware: ['consumer'],
|
|
10
|
+
requiredContext: ['cli/ui', 'cli/output-format'],
|
|
11
|
+
effects: { homeWrite: 'none' },
|
|
12
|
+
options: [
|
|
13
|
+
{ flags: '--global', description: 'List the global scope ($VIBES_HOME) only' },
|
|
14
|
+
{ flags: '--workspace', description: 'List the current workspace scope only' },
|
|
15
|
+
{
|
|
16
|
+
flags: '--scope <kind>',
|
|
17
|
+
description: 'Scope to list: global | workspace',
|
|
18
|
+
choices: ['global', 'workspace']
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=plugins.list.cli-command.descriptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins.list.cli-command.descriptor.js","sourceRoot":"","sources":["../../src/cli/plugins.list.cli-command.descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,eAAe,kBAAkB,CAAC;IACjC,EAAE,EAAE,cAAc;IAClB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,kFAAkF;IAC/F,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,CAAC,KAAK,CAAC;IACjB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,eAAe,EAAE,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IAChD,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;IAC9B,OAAO,EAAE;QACR,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,0CAA0C,EAAE;QAC9E,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,uCAAuC,EAAE;QAC9E;YACC,KAAK,EAAE,gBAAgB;YACvB,WAAW,EAAE,mCAAmC;YAChD,OAAO,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC;SAChC;KACD;CACD,CAAC,CAAC"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import type { CommandExecutionStartInfo } from '@vibesdotdev/cli/schemas/surface';
|
|
2
|
+
import type { CLICommandAssetDescriptor } from '@vibesdotdev/cli/schemas/types';
|
|
3
|
+
import type { PluginCompositionReport } from '@vibesdotdev/kernel/schemas/package-plugins';
|
|
4
|
+
import { PluginsCLICommand, type PluginsCLIContext } from './context.ts';
|
|
5
|
+
import type { SelectedScope } from './schemas/scopes.ts';
|
|
6
|
+
/**
|
|
7
|
+
* DELEGATION DELEGATES THE LIST, TOO (plan §3) — the root whose own manifest
|
|
8
|
+
* supplies this process' GLOBAL list, or `null` when `$VIBES_HOME` owns it.
|
|
9
|
+
*
|
|
10
|
+
* TWO SCOPES REACH HERE, and they are the same shape: a home delegating through
|
|
11
|
+
* `vibes.hostWorkspace` (`global→hostWorkspace`), and an app BUNDLE whose CLI
|
|
12
|
+
* resolved `<dirname(realpath(execPath))>/../vibes-home` as R (`bundle`, plan
|
|
13
|
+
* §2.2 step 2c, added WU-12). In both, R is not `$VIBES_HOME`, R holds the
|
|
14
|
+
* packages, and R's manifest holds the list the loader actually composed as the
|
|
15
|
+
* global batch — so reading `$VIBES_HOME/package.json` reports an empty list
|
|
16
|
+
* for a process that is running nine umbrellas. For the bundle that is not a
|
|
17
|
+
* cosmetic gap: the user's `$VIBES_HOME` on a packaged-app machine is normally
|
|
18
|
+
* empty, so `plugins list --global` would have described a CLI that does not
|
|
19
|
+
* exist.
|
|
20
|
+
*
|
|
21
|
+
* When `$VIBES_HOME/package.json#vibes.hostWorkspace` is set the schema forces
|
|
22
|
+
* the home's own `vibes.plugins` empty (the workspace it delegates to owns the
|
|
23
|
+
* list) and the loader composes that root's list AS the global batch
|
|
24
|
+
* (`composition.consumer.ts`: `scope: host.scope === 'global→hostWorkspace' ?
|
|
25
|
+
* 'global' : 'workspace'`). Reading only `$VIBES_HOME/package.json` therefore
|
|
26
|
+
* reported `plugins: []` from a delegating home while `resolutions` listed
|
|
27
|
+
* every one of them `loaded` — the command whose whole job is to say what is
|
|
28
|
+
* installed said nothing was.
|
|
29
|
+
*
|
|
30
|
+
* R comes from the composition report, never re-derived: that is the root THIS
|
|
31
|
+
* process delegated to, established once by the host (the shim) and captured by the environment, so there is no
|
|
32
|
+
* second resolver to drift. `hostScope` is the discriminator because
|
|
33
|
+
* delegation is only IN EFFECT when the graph actually followed it — from
|
|
34
|
+
* inside a workspace, R is that workspace and the home's `hostWorkspace` key is
|
|
35
|
+
* inert for this process.
|
|
36
|
+
*
|
|
37
|
+
* Suppressed when a selected workspace scope already sits on R: that mirrors
|
|
38
|
+
* the loader's own `workspaceRoot !== host.root` guard, and reporting the rows
|
|
39
|
+
* twice would invent a second selection out of one list.
|
|
40
|
+
*/
|
|
41
|
+
export declare function resolveDelegatedGlobalRoot(report: Pick<PluginCompositionReport, 'hostRoot' | 'hostScope'> | null, scopes: ReadonlyArray<Pick<SelectedScope, 'kind' | 'root'>>): string | null;
|
|
42
|
+
/**
|
|
43
|
+
* `vibes plugins list` — what this host composed, and from which roots.
|
|
44
|
+
*
|
|
45
|
+
* Reports BOTH roots because they are different concepts with different
|
|
46
|
+
* readers and a user debugging composition needs to see them disagree:
|
|
47
|
+
*
|
|
48
|
+
* - `hostRoot` (R) is the module-graph root the host declared — the
|
|
49
|
+
* outermost bun root that materializes `@vibesdotdev/plugins`. It decides
|
|
50
|
+
* which framework copy runs.
|
|
51
|
+
* - `workspaceRoot` is the identity/state root (`findWorkspaceRoot`) that
|
|
52
|
+
* anchors PM socket ids, per-workspace `.vibes` state and config discovery.
|
|
53
|
+
*
|
|
54
|
+
* From a linked provider checkout they legitimately differ (`hostRoot` = the
|
|
55
|
+
* developer root that links the member, `workspaceRoot` = the member's own
|
|
56
|
+
* repository), and nothing derives one from the other.
|
|
57
|
+
*
|
|
58
|
+
* Scoping: `--global` / `--workspace`, or `--scope <kind>` — which is the form
|
|
59
|
+
* `vibes update` spawns when it verifies a scope through the shipping path.
|
|
60
|
+
* A scope selection narrows the ROWS only; the two roots and the resolution
|
|
61
|
+
* table describe the PROCESS, not a scope, and are always reported in full.
|
|
62
|
+
*
|
|
63
|
+
* Every row carries the composition `status` for its specifier when this host
|
|
64
|
+
* actually loaded it (`loaded`, `shadowed`, `missing`, `failed`, …), which is
|
|
65
|
+
* what makes `plugins list --json --scope global` a real verification instead
|
|
66
|
+
* of an echo of the manifest: `vibes update` requires every row to be `loaded`.
|
|
67
|
+
* A row this process did not compose reads `not-composed` rather than being
|
|
68
|
+
* silently omitted or reported as healthy.
|
|
69
|
+
*
|
|
70
|
+
* `plugins` IS THE HUMAN-FACING ANSWER, `resolutions` IS THE PROCESS RECORD.
|
|
71
|
+
* `plugins` is the addressable selection — one row per specifier some list
|
|
72
|
+
* declares, which is exactly the set `plugins add|remove` and `vibes update`
|
|
73
|
+
* act on — and the table printed in non-JSON mode is that same array, column
|
|
74
|
+
* for column, so the two formats cannot report different counts for one
|
|
75
|
+
* question. `resolutions` additionally carries the executable's own host floor
|
|
76
|
+
* (the repair kernel, selected by no list and removable by nobody) and the
|
|
77
|
+
* per-import realpath/linkage a doctor needs. The difference is stated in the
|
|
78
|
+
* `composed` line rather than left for a reader to discover as a discrepancy.
|
|
79
|
+
*
|
|
80
|
+
* The delegated case is the reason both had to be reconciled: from a home with
|
|
81
|
+
* `vibes.hostWorkspace`, `plugins` used to read `[]` while `resolutions`
|
|
82
|
+
* reported ten plugins `loaded` — two fields disagreeing about one fact.
|
|
83
|
+
*/
|
|
84
|
+
export default class PluginsListCLICommand extends PluginsCLICommand {
|
|
85
|
+
constructor(descriptor: CLICommandAssetDescriptor, context: PluginsCLIContext);
|
|
86
|
+
execute(args: CommandExecutionStartInfo['args'], options: CommandExecutionStartInfo['options']): Promise<void>;
|
|
87
|
+
/**
|
|
88
|
+
* The list a scope root declares, read through the SAME resolution the
|
|
89
|
+
* bootstrap loader composes from.
|
|
90
|
+
*
|
|
91
|
+
* The workspace half used to call `resolveWorkspaceListTarget`, the WRITER's
|
|
92
|
+
* target resolver, which reports an empty list for a `vibes.config.ts`
|
|
93
|
+
* because it refuses to rewrite a module. That made this command blind to
|
|
94
|
+
* plan §3's PRIMARY workspace surface — the one the docs tell users to use —
|
|
95
|
+
* so a config with a plugin list printed an empty table. It now reads
|
|
96
|
+
* Runtime's `readWorkspacePluginSurfaces` (`@vibesdotdev/kernel/bootstrap`,
|
|
97
|
+
* the owner of workspace composition formats) over the handed runtime's
|
|
98
|
+
* selected `runtime/loader` — the same reader the workspace composition
|
|
99
|
+
* reads, in the same precedence: `vibes.config.{ts,js,json}#plugins`
|
|
100
|
+
* primary, `package.json#vibes.plugins` fallback.
|
|
101
|
+
*
|
|
102
|
+
* `delegatedGlobalRoot` is R for a home that delegates through
|
|
103
|
+
* `vibes.hostWorkspace`: the global scope then has no list of its own and the
|
|
104
|
+
* delegated root's config surfaces ARE the global list (plan §3). Same reader,
|
|
105
|
+
* same precedence, different root — not a second resolution.
|
|
106
|
+
*/
|
|
107
|
+
private readScope;
|
|
108
|
+
/**
|
|
109
|
+
* `<root>/vibes.config.{ts,js,json}#plugins`, else
|
|
110
|
+
* `<root>/package.json#vibes.plugins` — one root, read once, shadowing
|
|
111
|
+
* reported. Both the workspace scope and a delegating global scope resolve
|
|
112
|
+
* their list this way; the only difference is which root they point at.
|
|
113
|
+
*/
|
|
114
|
+
private readConfigSurfaces;
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=plugins.list.cli-command.impl.consumer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins.list.cli-command.impl.consumer.d.ts","sourceRoot":"","sources":["../../src/cli/plugins.list.cli-command.impl.consumer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAGhF,OAAO,KAAK,EAAE,uBAAuB,EAAoB,MAAM,6CAA6C,CAAC;AAS7G,OAAO,EAAE,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEzE,OAAO,KAAK,EAAmB,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAmF1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,IAAI,CAAC,uBAAuB,EAAE,UAAU,GAAG,WAAW,CAAC,GAAG,IAAI,EACtE,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,GACzD,MAAM,GAAG,IAAI,CAQf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,iBAAiB;gBACvD,UAAU,EAAE,yBAAyB,EAAE,OAAO,EAAE,iBAAiB;IAIvE,OAAO,CAAC,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,yBAAyB,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAiKpH;;;;;;;;;;;;;;;;;;;OAmBG;YACW,SAAS;IA8BvB;;;;;OAKG;YACW,kBAAkB;CAoChC"}
|