@vibecodr/cli 1.0.3 → 1.0.4

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/CHANGELOG.md CHANGED
@@ -2,6 +2,25 @@
2
2
 
3
3
  Pre-1.0.0 history for the `@vibecodr/cli@0.2.x` and `0.1.x` lines lives at [`docs/legacy/CHANGELOG-mcp-cli.md`](docs/legacy/CHANGELOG-mcp-cli.md). The `@vibecodr/vc-tools@0.1.x` line was the other half of the May 2026 merge; its source history is preserved in the archived [`BradenHartsell/vc-tools`](https://github.com/BradenHartsell/vc-tools) repository.
4
4
 
5
+ ## 1.0.4
6
+
7
+ Adds `vibecodr update` (alias: `vibecodr-mcp update`) for in-place upgrades of the global install. The command fetches the latest `@vibecodr/cli` version from the npm registry, compares against the currently-installed version, and (with confirmation by default) runs the appropriate package-manager install command.
8
+
9
+ Behavior summary:
10
+
11
+ - **`vibecodr update --check`** prints `current → latest` and exits without installing. Always safe to run.
12
+ - **`vibecodr update`** with no flags fetches the latest version, prints the install command that's about to run, and prompts before executing. `--yes` (or the global `--non-interactive`) skips the prompt.
13
+ - **`vibecodr update --via <npm|pnpm|yarn|bun>`** forces the install channel. Without the flag, the command auto-detects which manager owns the current install by intersecting `pnpm root -g`, `yarn global dir`, the Bun global root, and `npm root -g` against the CLI's own install location. If no match is found the command defaults to npm with a warning.
14
+ - Refuses to run from a source-tree checkout of `@vibecodr/cli` (use `git pull` for those) or from an `npx` ephemeral cache (`npx` invocations are already ephemeral; the message recommends `npm install -g` for persistence).
15
+ - Honors `--json` for scripted invocations; envelopes carry `current`, `latest`, `upToDate`, and on a successful install `previousVersion`, `installedVersion`, `via`.
16
+
17
+ The command is wired into the canonical `vibecodr` / `vibecodr-mcp` bins only. The legacy `vc-tools` bin does not gain `update` — that surface stays byte-equivalent to vc-tools@0.1.4.
18
+
19
+ - `src/commands/update.ts`: new command module.
20
+ - `src/bin/vibecodr-mcp.ts`: dispatcher case + help text entry.
21
+ - `test/update.test.ts`: 6 cases (version comparator, both `--check` paths, unsupported `--via`, source-tree refusal, `--help` short-circuit).
22
+ - `test/e2e-cli.test.ts`: extends the per-command `--help` matrix to include `update`.
23
+
5
24
  ## 1.0.3
6
25
 
7
26
  Closes a Windows-CI flake in the hosted Browser Agent Workflow's idle-timeout closure path. No behavior change to the dispatcher or any CLI surface; the fix lives entirely inside `src/hosted/worker.ts` and matters only for the worker test suite plus the deployed Cloudflare Worker.
@@ -22,6 +22,7 @@ import { runPulseSetupCommand } from "../commands/pulse-setup.js";
22
22
  import { runPulsePublishCommand } from "../commands/pulse-publish.js";
23
23
  import { runPulseCommand } from "../commands/pulse.js";
24
24
  import { runUploadCommand } from "../commands/upload.js";
25
+ import { runUpdateCommand } from "../commands/update.js";
25
26
  reconcileEnv();
26
27
  await migrateLegacyDirsOnce();
27
28
  function helpText() {
@@ -47,6 +48,7 @@ function helpText() {
47
48
  " pulse <list|get|status|run|archive|restore|create|deploy>",
48
49
  " Publishes a standalone Pulse with private source/metadata visibility by default.",
49
50
  " The runtime URL is still public HTTP unless the Pulse code rejects callers.",
51
+ " update [--check] [--yes] [--via <npm|pnpm|yarn|bun>]",
50
52
  "",
51
53
  "Global flags:",
52
54
  " --profile <name>",
@@ -124,6 +126,9 @@ async function main() {
124
126
  case "pulse":
125
127
  await runPulseCommand(commandArgs, context);
126
128
  return;
129
+ case "update":
130
+ await runUpdateCommand(commandArgs, context);
131
+ return;
127
132
  default:
128
133
  if (VC_TOOLS_ONLY_COMMANDS.has(command)) {
129
134
  // Vibecodr v1 surfaces the hosted Agent Computer commands (browser, computer,
@@ -1 +1 @@
1
- {"version":3,"file":"vibecodr-mcp.js","sourceRoot":"","sources":["../../src/bin/vibecodr-mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vibecodr-mcp.js","sourceRoot":"","sources":["../../src/bin/vibecodr-mcp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { CommandContext } from "./context.js";
2
+ export declare function runUpdateCommand(args: string[], context: CommandContext): Promise<void>;
3
+ export declare function compareVersions(a: string, b: string): number;
4
+ //# sourceMappingURL=update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAiBnD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CA4F7F;AA+CD,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAiB5D"}
@@ -0,0 +1,254 @@
1
+ import { execSync, spawn } from "node:child_process";
2
+ import { existsSync, readFileSync } from "node:fs";
3
+ import path from "node:path";
4
+ import readline from "node:readline";
5
+ import { fileURLToPath } from "node:url";
6
+ import { parseFlags } from "../cli/parse.js";
7
+ import { CliError, EXIT_CODES } from "../cli/errors.js";
8
+ import { showHelpIfRequested } from "./help.js";
9
+ const SUPPORTED_VIA = new Set(["npm", "pnpm", "yarn", "bun"]);
10
+ const REGISTRY_URL = "https://registry.npmjs.org/@vibecodr%2fcli/latest";
11
+ export async function runUpdateCommand(args, context) {
12
+ if (showHelpIfRequested(args, context, [
13
+ "Usage: vibecodr update [--check] [--yes] [--via <npm|pnpm|yarn|bun>]",
14
+ "",
15
+ " --check Print current and latest version; do not install.",
16
+ " --yes Skip the confirmation prompt (also honored if --non-interactive is set).",
17
+ " --via <manager> Force the install channel instead of auto-detecting from the install location."
18
+ ].join("\n"))) {
19
+ return;
20
+ }
21
+ const { flags } = parseFlags(args, {
22
+ valueFlags: ["via"],
23
+ booleanFlags: ["check", "yes"]
24
+ });
25
+ const viaFlag = typeof flags["via"] === "string" ? flags["via"] : undefined;
26
+ if (viaFlag !== undefined && !SUPPORTED_VIA.has(viaFlag)) {
27
+ throw new CliError("update.unsupported_manager", `--via must be one of: ${[...SUPPORTED_VIA].join(", ")}.`, EXIT_CODES.usage);
28
+ }
29
+ const current = readInstalledVersion();
30
+ const latest = await fetchLatestVersion();
31
+ const upToDate = compareVersions(current, latest) >= 0;
32
+ if (flags["check"] === true || upToDate) {
33
+ context.output.success({
34
+ schemaVersion: 1,
35
+ ok: true,
36
+ current,
37
+ latest,
38
+ upToDate
39
+ }, upToDate
40
+ ? [`Already on the latest @vibecodr/cli version: ${current}.`]
41
+ : [`@vibecodr/cli ${current} → ${latest} is available. Re-run without --check to install.`]);
42
+ return;
43
+ }
44
+ refuseIfRunningFromSource(context);
45
+ refuseIfRunningFromNpx(context);
46
+ const channel = resolveInstallChannel(viaFlag, context);
47
+ const willPrompt = !context.globalOptions.nonInteractive && flags["yes"] !== true && !context.globalOptions.json;
48
+ if (willPrompt) {
49
+ process.stdout.write(`Update @vibecodr/cli ${current} → ${latest} via "${channel.installCommand.join(" ")}"? [y/N] `);
50
+ const answer = await readLine();
51
+ if (!/^y(es)?$/i.test(answer.trim())) {
52
+ throw new CliError("update.canceled", "Update canceled.", EXIT_CODES.canceled);
53
+ }
54
+ }
55
+ if (context.globalOptions.json) {
56
+ context.output.info(`@vibecodr/cli ${current} → ${latest} via ${channel.installCommand.join(" ")}`);
57
+ }
58
+ else {
59
+ process.stdout.write(`@vibecodr/cli ${current} → ${latest} via ${channel.installCommand.join(" ")}\n`);
60
+ }
61
+ const code = await runInstall(channel);
62
+ if (code !== 0) {
63
+ throw new CliError("update.install_failed", `Package manager exited with code ${code}.`, EXIT_CODES.runtime, {
64
+ nextStep: "Re-run the install command directly to see the package-manager output, then retry. " +
65
+ "If the failure is an EEXIST collision, see `vibecodr doctor` and the upgrade docs."
66
+ });
67
+ }
68
+ context.output.success({
69
+ schemaVersion: 1,
70
+ ok: true,
71
+ previousVersion: current,
72
+ installedVersion: latest,
73
+ via: channel.manager
74
+ }, [`@vibecodr/cli updated: ${current} → ${latest} via ${channel.manager}.`]);
75
+ }
76
+ function readInstalledVersion() {
77
+ const here = path.dirname(fileURLToPath(import.meta.url));
78
+ for (let dir = here;;) {
79
+ const candidate = path.join(dir, "package.json");
80
+ if (existsSync(candidate)) {
81
+ const pkg = JSON.parse(readFileSync(candidate, "utf8"));
82
+ if (pkg.name === "@vibecodr/cli" && typeof pkg.version === "string")
83
+ return pkg.version;
84
+ }
85
+ const parent = path.dirname(dir);
86
+ if (parent === dir)
87
+ break;
88
+ dir = parent;
89
+ }
90
+ throw new CliError("update.version_lookup", "Could not determine the installed @vibecodr/cli version.", EXIT_CODES.runtime);
91
+ }
92
+ async function fetchLatestVersion() {
93
+ let response;
94
+ try {
95
+ response = await fetch(REGISTRY_URL, { headers: { accept: "application/json" } });
96
+ }
97
+ catch (error) {
98
+ throw new CliError("update.network", "Could not reach the npm registry to check the latest @vibecodr/cli version.", EXIT_CODES.network, {
99
+ cause: error,
100
+ nextStep: "Check your network connection and retry. Override with --via <manager> if the install channel is not npm."
101
+ });
102
+ }
103
+ if (!response.ok) {
104
+ throw new CliError("update.registry", `Registry responded with HTTP ${response.status}.`, EXIT_CODES.network, { nextStep: "Retry in a moment. The npm registry occasionally returns transient 5xx errors." });
105
+ }
106
+ const body = (await response.json());
107
+ if (typeof body.version !== "string" || body.version.length === 0) {
108
+ throw new CliError("update.registry", "Registry response did not include a version.", EXIT_CODES.network);
109
+ }
110
+ return body.version;
111
+ }
112
+ export function compareVersions(a, b) {
113
+ const [aMain, aPre] = a.split("-", 2);
114
+ const [bMain, bPre] = b.split("-", 2);
115
+ const aParts = (aMain ?? "0").split(".").map((n) => Number.parseInt(n, 10));
116
+ const bParts = (bMain ?? "0").split(".").map((n) => Number.parseInt(n, 10));
117
+ for (let i = 0; i < 3; i += 1) {
118
+ const ai = aParts[i] ?? 0;
119
+ const bi = bParts[i] ?? 0;
120
+ if (ai !== bi)
121
+ return ai < bi ? -1 : 1;
122
+ }
123
+ if (aPre && !bPre)
124
+ return -1;
125
+ if (!aPre && bPre)
126
+ return 1;
127
+ if (aPre && bPre) {
128
+ if (aPre < bPre)
129
+ return -1;
130
+ if (aPre > bPre)
131
+ return 1;
132
+ }
133
+ return 0;
134
+ }
135
+ function resolveInstallChannel(viaFlag, context) {
136
+ if (viaFlag !== undefined) {
137
+ if (!SUPPORTED_VIA.has(viaFlag)) {
138
+ throw new CliError("update.unsupported_manager", `--via must be one of: ${[...SUPPORTED_VIA].join(", ")}.`, EXIT_CODES.usage);
139
+ }
140
+ return buildChannel(viaFlag, undefined);
141
+ }
142
+ const detected = detectInstallChannel();
143
+ if (detected)
144
+ return detected;
145
+ context.output.warn("Could not auto-detect the package manager that installed @vibecodr/cli. Defaulting to npm; rerun with --via <pnpm|yarn|bun> if that's wrong.");
146
+ return buildChannel("npm", undefined);
147
+ }
148
+ function detectInstallChannel() {
149
+ const here = path.dirname(fileURLToPath(import.meta.url));
150
+ const checks = [
151
+ { manager: "pnpm", root: tryRun("pnpm root -g") },
152
+ { manager: "yarn", root: tryRun("yarn global dir") },
153
+ { manager: "bun", root: bunGlobalRoot() },
154
+ { manager: "npm", root: tryRun("npm root -g") }
155
+ ];
156
+ for (const { manager, root } of checks) {
157
+ if (!root)
158
+ continue;
159
+ const resolvedRoot = path.resolve(root);
160
+ if (here.startsWith(resolvedRoot + path.sep) || here === resolvedRoot) {
161
+ return buildChannel(manager, resolvedRoot);
162
+ }
163
+ }
164
+ return undefined;
165
+ }
166
+ function buildChannel(manager, root) {
167
+ const target = "@vibecodr/cli@latest";
168
+ switch (manager) {
169
+ case "pnpm":
170
+ return { manager, installCommand: ["pnpm", "add", "-g", target], detectedFromGlobalRoot: root };
171
+ case "yarn":
172
+ return { manager, installCommand: ["yarn", "global", "add", target], detectedFromGlobalRoot: root };
173
+ case "bun":
174
+ return { manager, installCommand: ["bun", "add", "-g", target], detectedFromGlobalRoot: root };
175
+ case "npm":
176
+ default:
177
+ return { manager: "npm", installCommand: ["npm", "install", "-g", target], detectedFromGlobalRoot: root };
178
+ }
179
+ }
180
+ function tryRun(cmd) {
181
+ try {
182
+ const out = execSync(cmd, { encoding: "utf8", stdio: ["ignore", "pipe", "ignore"], shell: process.platform === "win32" ? "cmd.exe" : "/bin/sh" }).trim();
183
+ return out.length > 0 ? out : undefined;
184
+ }
185
+ catch {
186
+ return undefined;
187
+ }
188
+ }
189
+ function bunGlobalRoot() {
190
+ const candidates = [
191
+ process.env["BUN_INSTALL"] ? path.join(process.env["BUN_INSTALL"], "install", "global", "node_modules") : undefined,
192
+ path.join(process.env["HOME"] ?? "", ".bun", "install", "global", "node_modules"),
193
+ process.env["LOCALAPPDATA"] ? path.join(process.env["LOCALAPPDATA"], "bun", "install", "global", "node_modules") : undefined
194
+ ];
195
+ for (const candidate of candidates) {
196
+ if (candidate && existsSync(candidate))
197
+ return candidate;
198
+ }
199
+ return undefined;
200
+ }
201
+ function refuseIfRunningFromSource(context) {
202
+ const here = path.dirname(fileURLToPath(import.meta.url));
203
+ for (let dir = here;;) {
204
+ const pkgPath = path.join(dir, "package.json");
205
+ const srcPath = path.join(dir, "src");
206
+ if (existsSync(pkgPath) && existsSync(srcPath)) {
207
+ const pkg = JSON.parse(readFileSync(pkgPath, "utf8"));
208
+ if (pkg.name === "@vibecodr/cli") {
209
+ throw new CliError("update.source_install", "Refusing to update: this is a source-tree install of @vibecodr/cli.", EXIT_CODES.usage, {
210
+ nextStep: `Update the source repo with git instead (cwd: ${dir}). The auto-update path is only for global package installs.`
211
+ });
212
+ }
213
+ }
214
+ const parent = path.dirname(dir);
215
+ if (parent === dir)
216
+ break;
217
+ dir = parent;
218
+ }
219
+ void context;
220
+ }
221
+ function refuseIfRunningFromNpx(context) {
222
+ const here = path.dirname(fileURLToPath(import.meta.url));
223
+ if (here.includes(`${path.sep}_npx${path.sep}`) || here.includes(`${path.sep}.npx${path.sep}`)) {
224
+ throw new CliError("update.ephemeral_install", "Refusing to update: this CLI is running from an npx ephemeral cache.", EXIT_CODES.usage, {
225
+ nextStep: "Run `npm install -g @vibecodr/cli` (or `pnpm add -g @vibecodr/cli`) to get a persistent install, then `vibecodr update` will work."
226
+ });
227
+ }
228
+ void context;
229
+ }
230
+ async function readLine() {
231
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout, terminal: false });
232
+ try {
233
+ return await new Promise((resolve) => {
234
+ rl.once("line", (line) => resolve(line));
235
+ rl.once("close", () => resolve(""));
236
+ });
237
+ }
238
+ finally {
239
+ rl.close();
240
+ }
241
+ }
242
+ function runInstall(channel) {
243
+ return new Promise((resolve, reject) => {
244
+ const [cmd, ...rest] = channel.installCommand;
245
+ if (!cmd) {
246
+ reject(new CliError("update.invalid_command", "No install command resolved.", EXIT_CODES.runtime));
247
+ return;
248
+ }
249
+ const child = spawn(cmd, rest, { stdio: "inherit", shell: process.platform === "win32" });
250
+ child.on("error", reject);
251
+ child.on("exit", (code) => resolve(code ?? 1));
252
+ });
253
+ }
254
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- export declare const CLI_VERSION = "1.0.3";
2
- export declare const VC_TOOLS_VERSION = "1.0.3";
1
+ export declare const CLI_VERSION = "1.0.4";
2
+ export declare const VC_TOOLS_VERSION = "1.0.4";
3
3
  //# sourceMappingURL=version.d.ts.map
@@ -1,3 +1,3 @@
1
- export const CLI_VERSION = "1.0.3";
1
+ export const CLI_VERSION = "1.0.4";
2
2
  export const VC_TOOLS_VERSION = CLI_VERSION;
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibecodr/cli",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "The official Vibecodr CLI: hosted browser, hosted computer, capsule uploads, Pulse operations, and agent-client MCP setup under one command.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",