@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,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `--global` / `--workspace` scope vocabulary shared by every plugins
|
|
3
|
+
* command and by `vibes update`. `../scopes.ts` resolves it against the
|
|
4
|
+
* runtime it is handed.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod/v4';
|
|
7
|
+
export type PluginScopeKind = 'global' | 'workspace';
|
|
8
|
+
export interface SelectedScope {
|
|
9
|
+
kind: PluginScopeKind;
|
|
10
|
+
/** Directory bun operates on; bare specifiers resolve from here. */
|
|
11
|
+
root: string;
|
|
12
|
+
/** `true` when the user named this scope explicitly. */
|
|
13
|
+
explicit: boolean;
|
|
14
|
+
}
|
|
15
|
+
/** The scope flags as a command received them; {@link ScopeFlagsSchema} reads them. */
|
|
16
|
+
export interface ScopeFlags {
|
|
17
|
+
global?: unknown;
|
|
18
|
+
workspace?: unknown;
|
|
19
|
+
}
|
|
20
|
+
/** The two scope flags, each read on its own. */
|
|
21
|
+
export declare const ScopeFlagsSchema: z.ZodObject<{
|
|
22
|
+
global: z.ZodCatch<z.ZodPipe<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodLiteral<"true">]>, z.ZodTransform<boolean, true | "true">>>;
|
|
23
|
+
workspace: z.ZodCatch<z.ZodPipe<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodLiteral<"true">]>, z.ZodTransform<boolean, true | "true">>>;
|
|
24
|
+
}, z.core.$strip>;
|
|
25
|
+
export interface ResolveScopesOptions {
|
|
26
|
+
/**
|
|
27
|
+
* What an unflagged invocation means for THIS command.
|
|
28
|
+
* - `global`: today's `plugins add|remove` behaviour, kept so no user
|
|
29
|
+
* invocation changes meaning (`--workspace` is purely additive).
|
|
30
|
+
* - `both`: `plugins list` and `vibes update`, which report/act on the whole
|
|
31
|
+
* composition unless narrowed.
|
|
32
|
+
*/
|
|
33
|
+
fallback: 'global' | 'both';
|
|
34
|
+
/** Refuse `--workspace` when no workspace root exists. */
|
|
35
|
+
requireWorkspace?: boolean;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=scopes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scopes.d.ts","sourceRoot":"","sources":["../../../src/cli/schemas/scopes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,WAAW,CAAC;AAErD,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,eAAe,CAAC;IACtB,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED,uFAAuF;AACvF,MAAM,WAAW,UAAU;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAKD,iDAAiD;AACjD,eAAO,MAAM,gBAAgB;;;iBAAoE,CAAC;AAElG,MAAM,WAAW,oBAAoB;IACpC;;;;;;OAMG;IACH,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC5B,0DAA0D;IAC1D,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC3B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `--global` / `--workspace` scope vocabulary shared by every plugins
|
|
3
|
+
* command and by `vibes update`. `../scopes.ts` resolves it against the
|
|
4
|
+
* runtime it is handed.
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod/v4';
|
|
7
|
+
/** One scope flag: on for `true` or `'true'`, off for anything else (including absent). */
|
|
8
|
+
const ScopeFlagSchema = z.union([z.literal(true), z.literal('true')]).transform(() => true).catch(false);
|
|
9
|
+
/** The two scope flags, each read on its own. */
|
|
10
|
+
export const ScopeFlagsSchema = z.object({ global: ScopeFlagSchema, workspace: ScopeFlagSchema });
|
|
11
|
+
//# sourceMappingURL=scopes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scopes.js","sourceRoot":"","sources":["../../../src/cli/schemas/scopes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAkB3B,2FAA2F;AAC3F,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAEzG,iDAAiD;AACjD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/** The facts `vibes plugins unlink` judges a link glob by. */
|
|
2
|
+
/**
|
|
3
|
+
* A member the glob still supplies to something the scope has SELECTED.
|
|
4
|
+
*
|
|
5
|
+
* Either shape wedges the scope the moment the glob is dropped:
|
|
6
|
+
* `declaredAs: 'workspace:*'` makes the very next `bun install` fail with
|
|
7
|
+
* `Workspace dependency "<name>" not found` (bun cannot resolve the protocol
|
|
8
|
+
* without a supplying glob), and `enabledBy` makes the next boot fail
|
|
9
|
+
* `plugin-not-declared`.
|
|
10
|
+
*/
|
|
11
|
+
export interface StrandedMember {
|
|
12
|
+
name: string;
|
|
13
|
+
/** Enabled `vibes.plugins` specifiers whose package is this member. */
|
|
14
|
+
enabledBy: string[];
|
|
15
|
+
/** The `dependencies` range that names it, when it is a `workspace:` one. */
|
|
16
|
+
declaredAs: string | null;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=unlink.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unlink.d.ts","sourceRoot":"","sources":["../../../src/cli/schemas/unlink.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAE9D;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,6EAA6E;IAC7E,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unlink.js","sourceRoot":"","sources":["../../../src/cli/schemas/unlink.ts"],"names":[],"mappings":"AAAA,8DAA8D"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/** What `vibes update` reports per scope, about itself, and about why it did not complete. */
|
|
2
|
+
import type { CaughtFailure } from '@vibesdotdev/kernel';
|
|
3
|
+
import type { PluginResolution } from '@vibesdotdev/kernel/schemas/package-plugins';
|
|
4
|
+
/** One plugin row the shipping verification boot reported for a scope. */
|
|
5
|
+
export interface VerifiedPluginRow {
|
|
6
|
+
plugin: string;
|
|
7
|
+
status: string;
|
|
8
|
+
reason?: PluginResolution['reason'];
|
|
9
|
+
/** `true` when the realpath sits outside every `node_modules` — a linked provider. */
|
|
10
|
+
linked: boolean | null;
|
|
11
|
+
realpath: string | null;
|
|
12
|
+
}
|
|
13
|
+
export interface ScopeReport {
|
|
14
|
+
scope: string;
|
|
15
|
+
root: string;
|
|
16
|
+
manifestPath: string;
|
|
17
|
+
/**
|
|
18
|
+
* Config surface the plugin list was read FROM
|
|
19
|
+
* (`vibes.config.ts#plugins`, `package.json#vibes.plugins`). Distinct from
|
|
20
|
+
* `manifestPath`, which is always the bun manifest this scope installs.
|
|
21
|
+
*/
|
|
22
|
+
surface?: string;
|
|
23
|
+
lockBefore: string | null;
|
|
24
|
+
lockAfter: string | null;
|
|
25
|
+
changed: boolean;
|
|
26
|
+
packages: string[];
|
|
27
|
+
commands: string[][];
|
|
28
|
+
verified: boolean;
|
|
29
|
+
verifyDetail?: string;
|
|
30
|
+
/** Rows the shipping verification boot reported for this scope. */
|
|
31
|
+
plugins: VerifiedPluginRow[];
|
|
32
|
+
repair?: string[];
|
|
33
|
+
skipped?: string;
|
|
34
|
+
/**
|
|
35
|
+
* A skip that means the REQUEST could not be carried out (a refusal, a
|
|
36
|
+
* failed preflight) rather than a benign no-op like "this workspace has
|
|
37
|
+
* no plugin list". Only this kind makes the command exit non-zero.
|
|
38
|
+
*/
|
|
39
|
+
failed?: boolean;
|
|
40
|
+
}
|
|
41
|
+
/** A scope's report, and the failure raised behind a refused or unverified scope, kept as the command's cause. */
|
|
42
|
+
export interface ScopeOutcome {
|
|
43
|
+
report: ScopeReport;
|
|
44
|
+
failure?: CaughtFailure;
|
|
45
|
+
}
|
|
46
|
+
export interface UpdateFailure {
|
|
47
|
+
scope: string;
|
|
48
|
+
root: string;
|
|
49
|
+
reason: string;
|
|
50
|
+
}
|
|
51
|
+
/** What `--self` did to the running executable. */
|
|
52
|
+
export interface SelfUpdateReport {
|
|
53
|
+
replaced: boolean;
|
|
54
|
+
fromVersion: string;
|
|
55
|
+
toVersion: string;
|
|
56
|
+
target: string;
|
|
57
|
+
manifestUrl: string;
|
|
58
|
+
/** The release asset's digest, on both surfaces, so a dry run can be checked against SHA256SUMS.txt. */
|
|
59
|
+
sha256?: string;
|
|
60
|
+
note?: string;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* The on-disk rules that decide whether bun may run in a scope. `benign`
|
|
64
|
+
* separates "nothing here to do" from "the request could not be carried out".
|
|
65
|
+
*/
|
|
66
|
+
export interface ScopePreflight {
|
|
67
|
+
issues: string[];
|
|
68
|
+
benign: boolean;
|
|
69
|
+
}
|
|
70
|
+
/** The shipping verification boot's verdict on a scope, with the failure that stopped it when one was raised. */
|
|
71
|
+
export interface ScopeVerification {
|
|
72
|
+
ok: boolean;
|
|
73
|
+
detail?: string;
|
|
74
|
+
rows: VerifiedPluginRow[];
|
|
75
|
+
failure?: CaughtFailure;
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=update.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/cli/schemas/update.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAE9F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AAEpF,0EAA0E;AAC1E,MAAM,WAAW,iBAAiB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACpC,sFAAsF;IACtF,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mEAAmE;IACnE,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,kHAAkH;AAClH,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CACf;AAED,mDAAmD;AACnD,MAAM,WAAW,gBAAgB;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,wGAAwG;IACxG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CAChB;AAED,iHAAiH;AACjH,MAAM,WAAW,iBAAiB;IACjC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,aAAa,CAAC;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/cli/schemas/update.ts"],"names":[],"mappings":"AAAA,8FAA8F"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `--global` / `--workspace` selection, shared by every plugins command and by
|
|
3
|
+
* `vibes update`.
|
|
4
|
+
*
|
|
5
|
+
* Two scopes, and they are not interchangeable:
|
|
6
|
+
*
|
|
7
|
+
* - **global** — `$VIBES_HOME`. Machine-wide selections, `plugins: []` when the
|
|
8
|
+
* home delegates to a host workspace. Bun operates on `$VIBES_HOME` itself.
|
|
9
|
+
* - **workspace** — the identity/state root (the bound workspace, read
|
|
10
|
+
* through `runtime/workspace-path`; NOT the module-graph root R). Selections live in the discovered
|
|
11
|
+
* `vibes.config.json` or `package.json#vibes.plugins`, and bun operates on
|
|
12
|
+
* that root.
|
|
13
|
+
*
|
|
14
|
+
* `workspaceRoot` and R are deliberately different (plan §2.2 step 4). A
|
|
15
|
+
* command that wrote to R would edit the developer root from inside a linked
|
|
16
|
+
* member checkout; a command that installed into R would install into someone
|
|
17
|
+
* else's bun root. Every write here is anchored on the identity root, and only
|
|
18
|
+
* the READ path (`plugins list`) reports R, because that is the one a user
|
|
19
|
+
* debugging composition needs to see.
|
|
20
|
+
*/
|
|
21
|
+
import { type VibesRuntime } from '@vibesdotdev/kernel';
|
|
22
|
+
import { type ResolveScopesOptions, type ScopeFlags, type SelectedScope } from './schemas/scopes.ts';
|
|
23
|
+
export type { PluginScopeKind, ResolveScopesOptions, ScopeFlags, SelectedScope } from './schemas/scopes.ts';
|
|
24
|
+
/**
|
|
25
|
+
* The workspace scope root, or `null` when this invocation has no workspace
|
|
26
|
+
* (a bare `~` invocation on a consumer machine). Read through the one reader,
|
|
27
|
+
* `runtime/workspace-path`; only `workspace-unbound` means "no workspace".
|
|
28
|
+
* Never falls back to the module-graph root: an absent workspace is a fact,
|
|
29
|
+
* not something to invent.
|
|
30
|
+
*/
|
|
31
|
+
export declare function workspaceScopeRoot(runtime: VibesRuntime): Promise<string | null>;
|
|
32
|
+
/** `$VIBES_HOME`, as the paths owner publishes it, resolved by the runtime's path mechanics. */
|
|
33
|
+
export declare function globalScopeRoot(runtime: VibesRuntime): Promise<string>;
|
|
34
|
+
/**
|
|
35
|
+
* Turn `--global` / `--workspace` into the ordered scope list a command acts
|
|
36
|
+
* on. Both flags together is legal and means "both", in workspace-then-global
|
|
37
|
+
* order — the same order bootstrap registers them in.
|
|
38
|
+
*/
|
|
39
|
+
export declare function resolveScopes(runtime: VibesRuntime, flags: ScopeFlags, options: ResolveScopesOptions): Promise<SelectedScope[]>;
|
|
40
|
+
/** Exactly one scope, for commands that mutate a single list. */
|
|
41
|
+
export declare function resolveSingleScope(runtime: VibesRuntime, flags: ScopeFlags, options?: ResolveScopesOptions): Promise<SelectedScope>;
|
|
42
|
+
/** The `--global` / `--workspace` option pair every scoped command declares. */
|
|
43
|
+
export declare const SCOPE_OPTIONS: readonly [{
|
|
44
|
+
readonly flags: "--global";
|
|
45
|
+
readonly description: "Act on the global scope ($VIBES_HOME)";
|
|
46
|
+
}, {
|
|
47
|
+
readonly flags: "--workspace";
|
|
48
|
+
readonly description: "Act on the current workspace scope";
|
|
49
|
+
}];
|
|
50
|
+
//# sourceMappingURL=scopes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scopes.d.ts","sourceRoot":"","sources":["../../src/cli/scopes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAwC,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EAAoB,KAAK,oBAAoB,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEvH,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE5G;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQtF;AAED,gGAAgG;AAChG,wBAAsB,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAG5E;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAClC,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,oBAAoB,GAC3B,OAAO,CAAC,aAAa,EAAE,CAAC,CAyB1B;AAED,iEAAiE;AACjE,wBAAsB,kBAAkB,CACvC,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,UAAU,EACjB,OAAO,GAAE,oBAA6C,GACpD,OAAO,CAAC,aAAa,CAAC,CAUxB;AAED,gFAAgF;AAChF,eAAO,MAAM,aAAa;;;;;;EAGhB,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `--global` / `--workspace` selection, shared by every plugins command and by
|
|
3
|
+
* `vibes update`.
|
|
4
|
+
*
|
|
5
|
+
* Two scopes, and they are not interchangeable:
|
|
6
|
+
*
|
|
7
|
+
* - **global** — `$VIBES_HOME`. Machine-wide selections, `plugins: []` when the
|
|
8
|
+
* home delegates to a host workspace. Bun operates on `$VIBES_HOME` itself.
|
|
9
|
+
* - **workspace** — the identity/state root (the bound workspace, read
|
|
10
|
+
* through `runtime/workspace-path`; NOT the module-graph root R). Selections live in the discovered
|
|
11
|
+
* `vibes.config.json` or `package.json#vibes.plugins`, and bun operates on
|
|
12
|
+
* that root.
|
|
13
|
+
*
|
|
14
|
+
* `workspaceRoot` and R are deliberately different (plan §2.2 step 4). A
|
|
15
|
+
* command that wrote to R would edit the developer root from inside a linked
|
|
16
|
+
* member checkout; a command that installed into R would install into someone
|
|
17
|
+
* else's bun root. Every write here is anchored on the identity root, and only
|
|
18
|
+
* the READ path (`plugins list`) reports R, because that is the one a user
|
|
19
|
+
* debugging composition needs to see.
|
|
20
|
+
*/
|
|
21
|
+
import { getPathRoots, getRuntimePath } from '@vibesdotdev/paths';
|
|
22
|
+
import { CapabilityError, CaughtFailureSchema } from '@vibesdotdev/kernel';
|
|
23
|
+
import { ScopeFlagsSchema } from "./schemas/scopes.js";
|
|
24
|
+
/**
|
|
25
|
+
* The workspace scope root, or `null` when this invocation has no workspace
|
|
26
|
+
* (a bare `~` invocation on a consumer machine). Read through the one reader,
|
|
27
|
+
* `runtime/workspace-path`; only `workspace-unbound` means "no workspace".
|
|
28
|
+
* Never falls back to the module-graph root: an absent workspace is a fact,
|
|
29
|
+
* not something to invent.
|
|
30
|
+
*/
|
|
31
|
+
export async function workspaceScopeRoot(runtime) {
|
|
32
|
+
const paths = await getRuntimePath(runtime);
|
|
33
|
+
try {
|
|
34
|
+
return paths.resolve(await runtime.context('runtime/workspace-path'));
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
if (CapabilityError.isAbsenceOf(CaughtFailureSchema.parse(error), 'context', 'runtime/workspace-path'))
|
|
38
|
+
return null;
|
|
39
|
+
throw error;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/** `$VIBES_HOME`, as the paths owner publishes it, resolved by the runtime's path mechanics. */
|
|
43
|
+
export async function globalScopeRoot(runtime) {
|
|
44
|
+
const paths = await getRuntimePath(runtime);
|
|
45
|
+
return paths.resolve(getPathRoots(runtime).vibesHome);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Turn `--global` / `--workspace` into the ordered scope list a command acts
|
|
49
|
+
* on. Both flags together is legal and means "both", in workspace-then-global
|
|
50
|
+
* order — the same order bootstrap registers them in.
|
|
51
|
+
*/
|
|
52
|
+
export async function resolveScopes(runtime, flags, options) {
|
|
53
|
+
const { global: wantsGlobal, workspace: wantsWorkspace } = ScopeFlagsSchema.parse(flags);
|
|
54
|
+
const workspaceRoot = await workspaceScopeRoot(runtime);
|
|
55
|
+
if (wantsWorkspace && !workspaceRoot) {
|
|
56
|
+
throw new Error('--workspace was requested but this invocation has no workspace root. ' +
|
|
57
|
+
'Run from inside a workspace, or pass --workspace-root <dir>.');
|
|
58
|
+
}
|
|
59
|
+
const scopes = [];
|
|
60
|
+
if (wantsWorkspace) {
|
|
61
|
+
scopes.push({ kind: 'workspace', root: workspaceRoot, explicit: true });
|
|
62
|
+
}
|
|
63
|
+
if (wantsGlobal) {
|
|
64
|
+
scopes.push({ kind: 'global', root: await globalScopeRoot(runtime), explicit: true });
|
|
65
|
+
}
|
|
66
|
+
if (scopes.length > 0)
|
|
67
|
+
return scopes;
|
|
68
|
+
if (options.fallback === 'both' && workspaceRoot) {
|
|
69
|
+
scopes.push({ kind: 'workspace', root: workspaceRoot, explicit: false });
|
|
70
|
+
}
|
|
71
|
+
scopes.push({ kind: 'global', root: await globalScopeRoot(runtime), explicit: false });
|
|
72
|
+
return scopes;
|
|
73
|
+
}
|
|
74
|
+
/** Exactly one scope, for commands that mutate a single list. */
|
|
75
|
+
export async function resolveSingleScope(runtime, flags, options = { fallback: 'global' }) {
|
|
76
|
+
const scopes = await resolveScopes(runtime, flags, options);
|
|
77
|
+
if (scopes.length > 1) {
|
|
78
|
+
const explicit = scopes.filter((scope) => scope.explicit);
|
|
79
|
+
if (explicit.length === 1)
|
|
80
|
+
return explicit[0];
|
|
81
|
+
throw new Error('This command writes one list at a time; pass exactly one of --global or --workspace.');
|
|
82
|
+
}
|
|
83
|
+
return scopes[0];
|
|
84
|
+
}
|
|
85
|
+
/** The `--global` / `--workspace` option pair every scoped command declares. */
|
|
86
|
+
export const SCOPE_OPTIONS = [
|
|
87
|
+
{ flags: '--global', description: 'Act on the global scope ($VIBES_HOME)' },
|
|
88
|
+
{ flags: '--workspace', description: 'Act on the current workspace scope' }
|
|
89
|
+
];
|
|
90
|
+
//# sourceMappingURL=scopes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scopes.js","sourceRoot":"","sources":["../../src/cli/scopes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAqB,MAAM,qBAAqB,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAkE,MAAM,qBAAqB,CAAC;AAIvH;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAqB;IAC7D,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IAC5C,IAAI,CAAC;QACJ,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,OAAO,CAAC,OAAO,CAAS,wBAAwB,CAAC,CAAC,CAAC;IAC/E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,eAAe,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,wBAAwB,CAAC;YAAE,OAAO,IAAI,CAAC;QACpH,MAAM,KAAK,CAAC;IACb,CAAC;AACF,CAAC;AAED,gGAAgG;AAChG,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAqB;IAC1D,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IAC5C,OAAO,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,OAAqB,EACrB,KAAiB,EACjB,OAA6B;IAE7B,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACzF,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAExD,IAAI,cAAc,IAAI,CAAC,aAAa,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CACd,uEAAuE;YACtE,8DAA8D,CAC/D,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,IAAI,cAAc,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,aAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,WAAW,EAAE,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IAErC,IAAI,OAAO,CAAC,QAAQ,KAAK,MAAM,IAAI,aAAa,EAAE,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACvF,OAAO,MAAM,CAAC;AACf,CAAC;AAED,iEAAiE;AACjE,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,OAAqB,EACrB,KAAiB,EACjB,UAAgC,EAAE,QAAQ,EAAE,QAAQ,EAAE;IAEtD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC5D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC1D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,QAAQ,CAAC,CAAC,CAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CACd,sFAAsF,CACtF,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,CAAC,CAAE,CAAC;AACnB,CAAC;AAED,gFAAgF;AAChF,MAAM,CAAC,MAAM,aAAa,GAAG;IAC5B,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,uCAAuC,EAAE;IAC3E,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,oCAAoC,EAAE;CAClE,CAAC"}
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Seed / repair primitive for the global plugin scope (`$VIBES_HOME`).
|
|
3
|
+
*
|
|
4
|
+
* ONE implementation, shared by `vibes update --global [--repair]`, `vibes
|
|
5
|
+
* plugins add|link|host --global`. Every file operation goes through the
|
|
6
|
+
* handed runtime's filesystem adapter. (An earlier draft also served a
|
|
7
|
+
* compiled-shim `--seed-global` fast path and was kept dependency-free for it;
|
|
8
|
+
* no shim imports this module, so that contract is retired with its reason.)
|
|
9
|
+
*
|
|
10
|
+
* What it guarantees:
|
|
11
|
+
*
|
|
12
|
+
* - **Absent manifest → write the seed.** `{ name: 'vibes-global', private:
|
|
13
|
+
* true, vibes: { plugins: [] } }` plus, only if absent, a `bunfig.toml`
|
|
14
|
+
* carrying the registry URL, the measured linker and a `$VIBES_REGISTRY_TOKEN`
|
|
15
|
+
* REFERENCE for the `@vibesdotdev` scope. Never a credential VALUE: this
|
|
16
|
+
* module neither reads nor writes one. Bun does not merge bunfig files and
|
|
17
|
+
* sends scope auth only when the scope names a token, so the reference is
|
|
18
|
+
* what lets the token Secrets hands an install process reach the registry
|
|
19
|
+
* (anonymous when no token is handed). An existing scope entry that names no
|
|
20
|
+
* token is repaired to carry the reference, backed up first.
|
|
21
|
+
* - **`--repair` on an existing manifest → nothing is merged silently and
|
|
22
|
+
* nothing is deleted without a backup line.** The original `package.json`
|
|
23
|
+
* and `bun.lock` are copied to `*.fossil-<stamp>` first, then the manifest is
|
|
24
|
+
* rewritten from the KEPT set and the caller prints `kept | dropped`.
|
|
25
|
+
*
|
|
26
|
+
* ### The linker is `hoisted`, and that is a measured decision (plan §5.1)
|
|
27
|
+
*
|
|
28
|
+
* The first draft seeded `linker = "isolated"`. Measured on this fleet with
|
|
29
|
+
* Bun 1.4.0 against a real `$VIBES_HOME` + provider fixture:
|
|
30
|
+
*
|
|
31
|
+
* | probe | hoisted | isolated |
|
|
32
|
+
* | --- | --- | --- |
|
|
33
|
+
* | `workspaces` glob member NOT declared in `dependencies` | linked into `<home>/node_modules` | **not linked** |
|
|
34
|
+
* | transitive dep of an installed package (`debug` → `ms`) | sibling at `<home>/node_modules/ms` | only inside `.bun/debug@…/node_modules` |
|
|
35
|
+
* | installed package realpath | `<home>/node_modules/<pkg>` | `<home>/node_modules/.bun/<pkg>@<hash>/node_modules/<pkg>` |
|
|
36
|
+
*
|
|
37
|
+
* Row 1 is P6 and it is fatal for this program: `vibes plugins link <glob>` is
|
|
38
|
+
* the whole of Drew's requirement 2, and under `isolated` a linked provider is
|
|
39
|
+
* invisible to `$VIBES_HOME/node_modules` until something declares it. Row 2
|
|
40
|
+
* decides whether an installed `@vibesdotdev/plugins` can reach a name it does
|
|
41
|
+
* not itself declare. Row 3 changes every plugin realpath on every version
|
|
42
|
+
* bump, which is what the ONE-GRAPH ancestor walk and the `linked` predicate
|
|
43
|
+
* (`realpath outside node_modules/.bun/`) read. Independently, the isolated
|
|
44
|
+
* linker has already RSS-bombed this fleet once; hoisted was the fix.
|
|
45
|
+
*
|
|
46
|
+
* The decision is recorded in the manifest (`vibes.seed.linker`) so a home can
|
|
47
|
+
* be audited without re-deriving it, and `bunfig.toml` is only ever written
|
|
48
|
+
* when absent — a user who chose otherwise keeps their choice.
|
|
49
|
+
*/
|
|
50
|
+
import type { FileSystemAdapterInterface } from '@vibesdotdev/filesystem';
|
|
51
|
+
import { type VibesRuntime } from '@vibesdotdev/kernel';
|
|
52
|
+
import { z } from 'zod/v4';
|
|
53
|
+
/** Path arithmetic a glob-parent decision needs, from the same adapter. */
|
|
54
|
+
export type SeedPathOps = Pick<FileSystemAdapterInterface, 'resolve' | 'isAbsolute'>;
|
|
55
|
+
/** The manifest name that marks `$VIBES_HOME/package.json` as vibes-owned. */
|
|
56
|
+
export declare const GLOBAL_MANIFEST_NAME = "vibes-global";
|
|
57
|
+
/** Package whose presence under R makes a directory a host root. */
|
|
58
|
+
export declare const HOST_PACKAGE_NAME = "@vibesdotdev/plugins";
|
|
59
|
+
/**
|
|
60
|
+
* Range a seed or repair declares for a package the scope needs but does not
|
|
61
|
+
* yet declare. Explicit semver range (`^1.0.0-rc.0`) rather than a floating
|
|
62
|
+
* `latest` dist-tag so fresh seeds and repairs resolve deterministically.
|
|
63
|
+
* `vibes update --global` advances and owns the range from there on.
|
|
64
|
+
*/
|
|
65
|
+
export declare const SEED_DEPENDENCY_RANGE = "^1.0.0-rc.0";
|
|
66
|
+
/** Measured winner of the hoisted-vs-isolated probe above. */
|
|
67
|
+
export declare const SEED_LINKER: "hoisted";
|
|
68
|
+
/** Registry the `@vibesdotdev` scope resolves from. URL only — never auth. */
|
|
69
|
+
export declare function resolveSeedRegistryUrl(runtime: VibesRuntime, registryUrl?: string, environmentId?: string): Promise<string>;
|
|
70
|
+
export interface GlobalSeedManifest {
|
|
71
|
+
name: string;
|
|
72
|
+
private: true;
|
|
73
|
+
workspaces?: string[];
|
|
74
|
+
dependencies?: Record<string, string>;
|
|
75
|
+
vibes: {
|
|
76
|
+
plugins: string[];
|
|
77
|
+
hostWorkspace?: string;
|
|
78
|
+
/** Roots whose workspaces the installed host does not discover (internal org setup writes it). */
|
|
79
|
+
ignoreWorkspaceDiscovery?: string[];
|
|
80
|
+
seed?: SeedProvenance;
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
export interface SeedProvenance {
|
|
84
|
+
/** Linker recorded in the seeded `bunfig.toml`. */
|
|
85
|
+
linker: string;
|
|
86
|
+
/** Registry URL recorded for the `@vibesdotdev` scope. */
|
|
87
|
+
registry: string;
|
|
88
|
+
/** Version of whatever wrote the seed (shim version or host package version). */
|
|
89
|
+
writer?: string;
|
|
90
|
+
/** ISO timestamp. */
|
|
91
|
+
at: string;
|
|
92
|
+
}
|
|
93
|
+
export interface SeedOptions {
|
|
94
|
+
/** `$VIBES_HOME`. */
|
|
95
|
+
home: string;
|
|
96
|
+
registryUrl?: string;
|
|
97
|
+
/** Explicit Config environment target; otherwise the runtime's active environment is used. */
|
|
98
|
+
environmentId?: string;
|
|
99
|
+
/** Version string of the writer, recorded as provenance. */
|
|
100
|
+
writer?: string;
|
|
101
|
+
/** Delegate the global scope to a self-hosting workspace (`vibes plugins host`). */
|
|
102
|
+
hostWorkspace?: string;
|
|
103
|
+
/** Injected clock (tests, byte-equality). */
|
|
104
|
+
now?: Date;
|
|
105
|
+
/** Plan only: compute the result without touching the disk. */
|
|
106
|
+
dryRun?: boolean;
|
|
107
|
+
/**
|
|
108
|
+
* Package names the KEPT `workspaces` globs actually supply.
|
|
109
|
+
*
|
|
110
|
+
* Injected: expanding a glob is the package-plugins capability's
|
|
111
|
+
* (`expandWorkspaceMembers`). `vibes update --repair` passes it; a caller
|
|
112
|
+
* that does not keeps every `workspace:` dependency whose scope still has at
|
|
113
|
+
* least one glob, and drops them only when NO glob survives — which needs no
|
|
114
|
+
* expansion to be exact.
|
|
115
|
+
*/
|
|
116
|
+
workspaceMembers?: (root: string, globs: readonly string[]) => Iterable<string>;
|
|
117
|
+
}
|
|
118
|
+
export interface SeedResult {
|
|
119
|
+
manifestPath: string;
|
|
120
|
+
bunfigPath: string;
|
|
121
|
+
/** `true` when this call created the manifest (it was absent). */
|
|
122
|
+
wroteManifest: boolean;
|
|
123
|
+
/** `true` when this call created `bunfig.toml` (it was absent). */
|
|
124
|
+
wroteBunfig: boolean;
|
|
125
|
+
/** `true` when an existing `bunfig.toml` had its `@vibesdotdev` scope given the token reference. */
|
|
126
|
+
migratedBunfig: boolean;
|
|
127
|
+
manifest: GlobalSeedManifest;
|
|
128
|
+
bunfig: string;
|
|
129
|
+
}
|
|
130
|
+
/** Reason per dropped entry, keyed by the entry itself. */
|
|
131
|
+
declare const RepairReasonsSchema: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
132
|
+
export type RepairReasons = z.infer<typeof RepairReasonsSchema>;
|
|
133
|
+
export interface RepairKeptDropped {
|
|
134
|
+
dependencies: string[];
|
|
135
|
+
workspaces: string[];
|
|
136
|
+
plugins: string[];
|
|
137
|
+
}
|
|
138
|
+
export interface RepairResult {
|
|
139
|
+
manifestPath: string;
|
|
140
|
+
/** Absolute paths of every `*.fossil-<stamp>` copy written, in write order. */
|
|
141
|
+
backups: string[];
|
|
142
|
+
/**
|
|
143
|
+
* `bun.lock` this repair retired, or `undefined`. Set only when the repaired
|
|
144
|
+
* manifest declares no dependencies and no `workspaces` globs, i.e. when the
|
|
145
|
+
* lock provably describes nothing that survived. Its content is preserved at
|
|
146
|
+
* the matching `bun.lock.fossil-<stamp>` entry in {@link RepairResult.backups}.
|
|
147
|
+
*/
|
|
148
|
+
removedLock?: string;
|
|
149
|
+
/**
|
|
150
|
+
* `node_modules` this repair retired (renamed to its `.fossil-<stamp>` path),
|
|
151
|
+
* under the same condition as {@link RepairResult.removedLock}: the repaired
|
|
152
|
+
* manifest declares nothing for an installation to hold.
|
|
153
|
+
*/
|
|
154
|
+
retiredNodeModules?: {
|
|
155
|
+
from: string;
|
|
156
|
+
to: string;
|
|
157
|
+
};
|
|
158
|
+
kept: RepairKeptDropped;
|
|
159
|
+
dropped: RepairKeptDropped;
|
|
160
|
+
/**
|
|
161
|
+
* Packages this repair declared at {@link SEED_DEPENDENCY_RANGE}: the host
|
|
162
|
+
* package and the package of each kept plugin, when the manifest named none.
|
|
163
|
+
*/
|
|
164
|
+
added: string[];
|
|
165
|
+
/** Reason per dropped entry, keyed by the entry itself. */
|
|
166
|
+
reasons: RepairReasons;
|
|
167
|
+
manifest: GlobalSeedManifest;
|
|
168
|
+
/** `true` when the manifest was absent and the seed was written instead. */
|
|
169
|
+
seeded: boolean;
|
|
170
|
+
/** Manifest `name` as found — a fossil announces itself here. */
|
|
171
|
+
previousName: string | null;
|
|
172
|
+
}
|
|
173
|
+
/** Env var the seeded scope REFERENCES: the name Secrets hands an install process, never a value. */
|
|
174
|
+
export declare const SEED_TOKEN_ENV_VAR = "VIBES_REGISTRY_TOKEN";
|
|
175
|
+
/**
|
|
176
|
+
* The seeded `bunfig.toml`: registry URL, linker, and a `$VAR` REFERENCE to the
|
|
177
|
+
* env var an install process receives the scope's token in.
|
|
178
|
+
*
|
|
179
|
+
* Measured (bun 1.4): a URL-only scope sends no Authorization header even when
|
|
180
|
+
* the token is in the install's environment, so every credentialed install
|
|
181
|
+
* 404s on a registry that hides unauthenticated reads; with the reference the
|
|
182
|
+
* header is present, and with the variable unset the request is anonymous.
|
|
183
|
+
*/
|
|
184
|
+
export declare function renderSeedBunfig(input: {
|
|
185
|
+
linker?: string;
|
|
186
|
+
registryUrl: string;
|
|
187
|
+
}): string;
|
|
188
|
+
/** The one scope line the seed owns inside a user-editable `bunfig.toml`. */
|
|
189
|
+
export declare function seedScopeLine(registryUrl: string): string;
|
|
190
|
+
/**
|
|
191
|
+
* Give an existing `bunfig.toml` a usable `@vibesdotdev` scope, or return null
|
|
192
|
+
* when it already names a token for the scope. Only the scope entry is
|
|
193
|
+
* touched; an entry that names ANY token, literal or reference, is the user's.
|
|
194
|
+
*/
|
|
195
|
+
export declare function migrateBunfigScope(text: string, registryUrl: string): string | null;
|
|
196
|
+
/** `2026-08-30T134500Z` — filesystem-safe, sorts chronologically. */
|
|
197
|
+
export declare function fossilStamp(now?: Date): string;
|
|
198
|
+
/**
|
|
199
|
+
* Write the `vibes-global` seed when `$VIBES_HOME/package.json` is absent, and
|
|
200
|
+
* `bunfig.toml` when IT is absent. Never touches an existing file — repairing
|
|
201
|
+
* one is `repairGlobalScope`'s job, and it backs up first.
|
|
202
|
+
*/
|
|
203
|
+
export declare function seedGlobalScope(runtime: VibesRuntime, options: SeedOptions): Promise<SeedResult>;
|
|
204
|
+
/** The static parent of a bun `workspaces` glob — the directory that must exist. */
|
|
205
|
+
export declare function workspaceGlobParent(paths: SeedPathOps, glob: string, root: string): string;
|
|
206
|
+
/**
|
|
207
|
+
* Repair `$VIBES_HOME/package.json` in place, with a backup and a receipt.
|
|
208
|
+
*
|
|
209
|
+
* KEPT: `@vibesdotdev/plugins`, every dependency named by an enabled
|
|
210
|
+
* `vibes.plugins` specifier, `vibes.hostWorkspace`, and every `workspaces`
|
|
211
|
+
* glob whose static parent exists on disk. DROPPED: everything else, each with
|
|
212
|
+
* a reason. The original `package.json` (and `bun.lock`, when present) is
|
|
213
|
+
* copied to `*.fossil-<stamp>` BEFORE the write, and the paths are returned so
|
|
214
|
+
* the caller can print them — a deletion the user cannot undo is not a repair.
|
|
215
|
+
*
|
|
216
|
+
* ### A `workspace:` dependency nothing supplies is DROPPED, with its plugins
|
|
217
|
+
*
|
|
218
|
+
* bun refuses to install a `workspace:*` range no `workspaces` glob expands to
|
|
219
|
+
* (`error: Workspace dependency "<name>" not found`), so a home in that shape
|
|
220
|
+
* cannot be installed, updated, or repaired — the last-resort command failed
|
|
221
|
+
* on exactly the manifest it exists for. Repair now drops such a dependency
|
|
222
|
+
* (`options.workspaceMembers` decides which names survive; with no glob left
|
|
223
|
+
* the answer needs no expansion) and every `vibes.plugins` specifier it
|
|
224
|
+
* supplied, each with its own reason line, after the backup.
|
|
225
|
+
*/
|
|
226
|
+
export declare function repairGlobalScope(runtime: VibesRuntime, options: SeedOptions & {
|
|
227
|
+
stamp?: string;
|
|
228
|
+
}): Promise<RepairResult>;
|
|
229
|
+
/** One-line-per-fact `kept | dropped` receipt (plan §9 step 1 prints this). */
|
|
230
|
+
export declare function formatRepairReceipt(result: RepairResult): string[];
|
|
231
|
+
export {};
|
|
232
|
+
//# sourceMappingURL=seed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../src/cli/seed.ts"],"names":[],"mappings":"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"}
|