@guckdev/cli 0.13.0 → 0.15.0

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/dist/cli.js CHANGED
@@ -2,12 +2,12 @@
2
2
  import { randomUUID } from "node:crypto";
3
3
  import fs from "node:fs";
4
4
  import path from "node:path";
5
- import { spawn } from "node:child_process";
5
+ import { spawn, spawnSync } from "node:child_process";
6
6
  import { loadConfig, resolveStoreDir, getDefaultConfig, findRepoRoot, resolveCheckpointPath, redactEvent, appendEvent, } from "@guckdev/core";
7
7
  import { emit } from "@guckdev/sdk";
8
8
  import { startMcpServer } from "@guckdev/mcp";
9
9
  const printHelp = () => {
10
- console.log(`Guck - MCP-first telemetry\n\nCommands:\n init Create .guck.json and .guck.local.json\n checkpoint Write a .guck-checkpoint epoch timestamp\n wrap --service <s> --session <id> -- <cmd...>\n Capture stdout/stderr and write JSONL\n emit --service <s> --session <id>\n Read JSON events from stdin and append\n mcp Start MCP server\n upgrade Update the @guckdev/cli install\n\nOptions:\n --version, -v Print version\n`);
10
+ console.log(`Guck - MCP-first telemetry\n\nCommands:\n init Create .guck.json and .guck.local.json\n checkpoint Write a .guck-checkpoint epoch timestamp\n wrap --service <s> --session <id> -- <cmd...>\n Capture stdout/stderr and write JSONL\n emit --service <s> --session <id>\n Read JSON events from stdin and append\n mcp Start MCP server\n upgrade [--manager <npm|pnpm|yarn|bun>]\n Update the @guckdev/cli install\n\nOptions:\n --version, -v Print version\n`);
11
11
  };
12
12
  const loadVersion = () => {
13
13
  try {
@@ -31,6 +31,14 @@ const printVersion = () => {
31
31
  }
32
32
  process.stdout.write(`${version}\n`);
33
33
  };
34
+ const isPackageManager = (value) => value === "npm" || value === "pnpm" || value === "yarn" || value === "bun";
35
+ const parsePackageManager = (value) => {
36
+ if (!value) {
37
+ return null;
38
+ }
39
+ const normalized = value.trim().toLowerCase();
40
+ return isPackageManager(normalized) ? normalized : null;
41
+ };
34
42
  const detectPackageManager = () => {
35
43
  const userAgent = process.env.npm_config_user_agent;
36
44
  if (!userAgent) {
@@ -39,6 +47,64 @@ const detectPackageManager = () => {
39
47
  const match = userAgent.match(/^(npm|pnpm|yarn|bun)\//);
40
48
  return match ? match[1] : null;
41
49
  };
50
+ const detectPackageManagerFromExecPath = (execPath) => {
51
+ if (!execPath) {
52
+ return null;
53
+ }
54
+ const lowered = execPath.toLowerCase();
55
+ if (lowered.includes("pnpm")) {
56
+ return "pnpm";
57
+ }
58
+ if (lowered.includes("yarn")) {
59
+ return "yarn";
60
+ }
61
+ if (lowered.includes("npm")) {
62
+ return "npm";
63
+ }
64
+ return null;
65
+ };
66
+ const detectPackageManagerFromEntryPath = (entryPath) => {
67
+ if (!entryPath) {
68
+ return null;
69
+ }
70
+ const lowered = entryPath.toLowerCase();
71
+ if (lowered.includes("/.pnpm/")) {
72
+ return "pnpm";
73
+ }
74
+ if (lowered.includes("/.yarn/") || lowered.includes("/.config/yarn/")) {
75
+ return "yarn";
76
+ }
77
+ if (lowered.includes("/.bun/")) {
78
+ return "bun";
79
+ }
80
+ if (lowered.includes("/lib/node_modules/") || lowered.includes("/node_modules/@guckdev/cli/")) {
81
+ return "npm";
82
+ }
83
+ return null;
84
+ };
85
+ const resolveUpgradeManager = (opts, env, entryPath) => {
86
+ const fromFlag = parsePackageManager(opts.manager);
87
+ if (fromFlag) {
88
+ return { manager: fromFlag, source: "flag" };
89
+ }
90
+ const fromEnv = parsePackageManager(env.GUCK_UPGRADE_MANAGER);
91
+ if (fromEnv) {
92
+ return { manager: fromEnv, source: "env" };
93
+ }
94
+ const fromUserAgent = detectPackageManager();
95
+ if (fromUserAgent) {
96
+ return { manager: fromUserAgent, source: "user agent" };
97
+ }
98
+ const fromExecPath = detectPackageManagerFromExecPath(env.npm_execpath);
99
+ if (fromExecPath) {
100
+ return { manager: fromExecPath, source: "execpath" };
101
+ }
102
+ const fromEntryPath = detectPackageManagerFromEntryPath(entryPath);
103
+ if (fromEntryPath) {
104
+ return { manager: fromEntryPath, source: "entry path" };
105
+ }
106
+ return null;
107
+ };
42
108
  const getPackageManagerCandidates = () => {
43
109
  const preferred = detectPackageManager();
44
110
  const defaults = ["npm", "pnpm", "yarn", "bun"];
@@ -60,11 +126,27 @@ const buildUpgradeArgs = (manager) => {
60
126
  return ["install", "-g", "@guckdev/cli"];
61
127
  }
62
128
  };
63
- const runUpgrade = async (manager) => {
129
+ const canUseExecPath = (manager, execPath) => {
130
+ if (!execPath) {
131
+ return false;
132
+ }
133
+ if (manager === "bun") {
134
+ return false;
135
+ }
136
+ const lowered = execPath.toLowerCase();
137
+ return lowered.includes(manager);
138
+ };
139
+ const spawnUpgradeProcess = (manager, args, execPath) => {
140
+ if (canUseExecPath(manager, execPath)) {
141
+ return spawn(process.execPath, [execPath, ...args], { stdio: "inherit" });
142
+ }
143
+ return spawn(manager, args, { stdio: "inherit" });
144
+ };
145
+ const runUpgrade = async (manager, execPath) => {
64
146
  const args = buildUpgradeArgs(manager);
65
147
  return await new Promise((resolve) => {
66
148
  let settled = false;
67
- const child = spawn(manager, args, { stdio: "inherit" });
149
+ const child = spawnUpgradeProcess(manager, args, execPath);
68
150
  const finish = (result) => {
69
151
  if (settled) {
70
152
  return;
@@ -260,19 +342,106 @@ const handleEmit = async (argv) => {
260
342
  };
261
343
  const handleUpgrade = async (argv) => {
262
344
  if (argv.includes("--help") || argv.includes("-h")) {
263
- console.log("Usage: guck upgrade\nUpdates @guckdev/cli using a global install.");
345
+ console.log("Usage: guck upgrade [--manager <npm|pnpm|yarn|bun>]\nUpdates @guckdev/cli using a global install.");
264
346
  return 0;
265
347
  }
266
- for (const manager of getPackageManagerCandidates()) {
267
- const result = await runUpgrade(manager);
348
+ const { opts } = parseArgs(argv);
349
+ const beforeVersion = loadVersion();
350
+ let entryPath = null;
351
+ const argvPath = process.argv[1];
352
+ if (argvPath) {
353
+ try {
354
+ entryPath = fs.realpathSync(argvPath);
355
+ }
356
+ catch {
357
+ entryPath = argvPath;
358
+ }
359
+ }
360
+ const explicitManager = opts.manager ? parsePackageManager(opts.manager) : null;
361
+ if (opts.manager && !explicitManager) {
362
+ console.error(`Invalid package manager: ${opts.manager}. Expected npm, pnpm, yarn, or bun.`);
363
+ return 1;
364
+ }
365
+ const resolved = resolveUpgradeManager(opts, process.env, entryPath);
366
+ const execPath = process.env.npm_execpath;
367
+ const tryUpgrade = async (manager, source) => {
368
+ if (source) {
369
+ console.log(`Using ${manager} (detected from ${source}).`);
370
+ }
371
+ const result = await runUpgrade(manager, execPath);
268
372
  if (result.status === "missing") {
269
- continue;
373
+ return { status: "missing" };
270
374
  }
271
375
  if (result.status === "failed") {
272
376
  console.error(`Failed to run ${manager}.`, result.error);
377
+ return { status: "failed", code: 1 };
378
+ }
379
+ return { status: "ok", code: result.code };
380
+ };
381
+ const verifyUpgrade = (exitCode) => {
382
+ const after = spawnSync("guck", ["--version"], { encoding: "utf8" });
383
+ const afterVersion = after.status === 0 ? after.stdout.trim() : null;
384
+ if (!afterVersion || !beforeVersion) {
385
+ console.warn("Upgrade completed, but could not verify the installed version.");
386
+ if (after.status !== 0 && after.stderr) {
387
+ console.warn(after.stderr.trim());
388
+ }
389
+ console.warn(`Current script path: ${process.argv[1] ?? "unknown"}`);
390
+ return exitCode;
391
+ }
392
+ if (afterVersion === beforeVersion) {
393
+ let resolvedPath = "";
394
+ const whichCmd = process.platform === "win32" ? "where" : "which";
395
+ const whichResult = spawnSync(whichCmd, ["guck"], { encoding: "utf8" });
396
+ if (whichResult.status === 0) {
397
+ resolvedPath = whichResult.stdout.trim();
398
+ }
399
+ console.warn("Upgrade finished, but the active guck version did not change.");
400
+ console.warn(`Before: ${beforeVersion}`);
401
+ console.warn(`After : ${afterVersion}`);
402
+ console.warn(`Current script path: ${process.argv[1] ?? "unknown"}`);
403
+ if (resolvedPath) {
404
+ console.warn(`PATH-resolved guck: ${resolvedPath}`);
405
+ }
406
+ return exitCode;
407
+ }
408
+ console.log("Upgraded @guckdev/cli");
409
+ console.log(`Before: ${beforeVersion}`);
410
+ console.log(`After : ${afterVersion}`);
411
+ return exitCode;
412
+ };
413
+ if (explicitManager) {
414
+ const result = await tryUpgrade(explicitManager, "flag");
415
+ if (result.status === "missing") {
416
+ console.error(`No ${explicitManager} executable found on PATH.`);
273
417
  return 1;
274
418
  }
275
- return result.code;
419
+ if (result.status === "failed") {
420
+ return result.code;
421
+ }
422
+ return verifyUpgrade(result.code);
423
+ }
424
+ const candidates = [];
425
+ if (resolved) {
426
+ candidates.push({ manager: resolved.manager, source: resolved.source });
427
+ }
428
+ for (const manager of getPackageManagerCandidates()) {
429
+ if (!candidates.some((candidate) => candidate.manager === manager)) {
430
+ candidates.push({ manager, source: null });
431
+ }
432
+ }
433
+ for (const candidate of candidates) {
434
+ const result = await tryUpgrade(candidate.manager, candidate.source);
435
+ if (result.status === "missing") {
436
+ if (candidate.source) {
437
+ console.warn(`${candidate.manager} not found. Falling back to other package managers.`);
438
+ }
439
+ continue;
440
+ }
441
+ if (result.status === "failed") {
442
+ return result.code;
443
+ }
444
+ return verifyUpgrade(result.code);
276
445
  }
277
446
  console.error("No supported package manager found (npm, pnpm, yarn, bun).");
278
447
  return 1;
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@guckdev/cli",
3
- "version": "0.13.0",
3
+ "version": "0.15.0",
4
4
  "description": "CLI for Guck telemetry capture and MCP",
5
5
  "repository": {
6
6
  "type": "git",
@@ -31,9 +31,9 @@
31
31
  "node": ">=18"
32
32
  },
33
33
  "dependencies": {
34
- "@guckdev/sdk": "0.13.0",
35
- "@guckdev/core": "0.13.0",
36
- "@guckdev/mcp": "0.13.0"
34
+ "@guckdev/sdk": "0.15.0",
35
+ "@guckdev/core": "0.15.0",
36
+ "@guckdev/mcp": "0.15.0"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@types/node": "25.2.2"
package/src/cli.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  import { randomUUID } from "node:crypto";
3
3
  import fs from "node:fs";
4
4
  import path from "node:path";
5
- import { spawn } from "node:child_process";
5
+ import { spawn, spawnSync } from "node:child_process";
6
6
  import {
7
7
  loadConfig,
8
8
  resolveStoreDir,
@@ -18,7 +18,7 @@ import { startMcpServer } from "@guckdev/mcp";
18
18
 
19
19
  const printHelp = (): void => {
20
20
  console.log(
21
- `Guck - MCP-first telemetry\n\nCommands:\n init Create .guck.json and .guck.local.json\n checkpoint Write a .guck-checkpoint epoch timestamp\n wrap --service <s> --session <id> -- <cmd...>\n Capture stdout/stderr and write JSONL\n emit --service <s> --session <id>\n Read JSON events from stdin and append\n mcp Start MCP server\n upgrade Update the @guckdev/cli install\n\nOptions:\n --version, -v Print version\n`,
21
+ `Guck - MCP-first telemetry\n\nCommands:\n init Create .guck.json and .guck.local.json\n checkpoint Write a .guck-checkpoint epoch timestamp\n wrap --service <s> --session <id> -- <cmd...>\n Capture stdout/stderr and write JSONL\n emit --service <s> --session <id>\n Read JSON events from stdin and append\n mcp Start MCP server\n upgrade [--manager <npm|pnpm|yarn|bun>]\n Update the @guckdev/cli install\n\nOptions:\n --version, -v Print version\n`,
22
22
  );
23
23
  };
24
24
 
@@ -47,6 +47,24 @@ const printVersion = (): void => {
47
47
 
48
48
  type PackageManagerName = "npm" | "pnpm" | "yarn" | "bun";
49
49
 
50
+ type UpgradeManagerSource =
51
+ | "flag"
52
+ | "env"
53
+ | "user agent"
54
+ | "execpath"
55
+ | "entry path";
56
+
57
+ const isPackageManager = (value: string): value is PackageManagerName =>
58
+ value === "npm" || value === "pnpm" || value === "yarn" || value === "bun";
59
+
60
+ const parsePackageManager = (value: string | undefined | null): PackageManagerName | null => {
61
+ if (!value) {
62
+ return null;
63
+ }
64
+ const normalized = value.trim().toLowerCase();
65
+ return isPackageManager(normalized) ? normalized : null;
66
+ };
67
+
50
68
  const detectPackageManager = (): PackageManagerName | null => {
51
69
  const userAgent = process.env.npm_config_user_agent;
52
70
  if (!userAgent) {
@@ -56,6 +74,76 @@ const detectPackageManager = (): PackageManagerName | null => {
56
74
  return match ? (match[1] as PackageManagerName) : null;
57
75
  };
58
76
 
77
+ const detectPackageManagerFromExecPath = (execPath: string | undefined): PackageManagerName | null => {
78
+ if (!execPath) {
79
+ return null;
80
+ }
81
+ const lowered = execPath.toLowerCase();
82
+ if (lowered.includes("pnpm")) {
83
+ return "pnpm";
84
+ }
85
+ if (lowered.includes("yarn")) {
86
+ return "yarn";
87
+ }
88
+ if (lowered.includes("npm")) {
89
+ return "npm";
90
+ }
91
+ return null;
92
+ };
93
+
94
+ const detectPackageManagerFromEntryPath = (entryPath: string | null): PackageManagerName | null => {
95
+ if (!entryPath) {
96
+ return null;
97
+ }
98
+ const lowered = entryPath.toLowerCase();
99
+ if (lowered.includes("/.pnpm/")) {
100
+ return "pnpm";
101
+ }
102
+ if (lowered.includes("/.yarn/") || lowered.includes("/.config/yarn/")) {
103
+ return "yarn";
104
+ }
105
+ if (lowered.includes("/.bun/")) {
106
+ return "bun";
107
+ }
108
+ if (lowered.includes("/lib/node_modules/") || lowered.includes("/node_modules/@guckdev/cli/")) {
109
+ return "npm";
110
+ }
111
+ return null;
112
+ };
113
+
114
+ const resolveUpgradeManager = (
115
+ opts: Record<string, string>,
116
+ env: NodeJS.ProcessEnv,
117
+ entryPath: string | null,
118
+ ): { manager: PackageManagerName; source: UpgradeManagerSource } | null => {
119
+ const fromFlag = parsePackageManager(opts.manager);
120
+ if (fromFlag) {
121
+ return { manager: fromFlag, source: "flag" };
122
+ }
123
+
124
+ const fromEnv = parsePackageManager(env.GUCK_UPGRADE_MANAGER);
125
+ if (fromEnv) {
126
+ return { manager: fromEnv, source: "env" };
127
+ }
128
+
129
+ const fromUserAgent = detectPackageManager();
130
+ if (fromUserAgent) {
131
+ return { manager: fromUserAgent, source: "user agent" };
132
+ }
133
+
134
+ const fromExecPath = detectPackageManagerFromExecPath(env.npm_execpath);
135
+ if (fromExecPath) {
136
+ return { manager: fromExecPath, source: "execpath" };
137
+ }
138
+
139
+ const fromEntryPath = detectPackageManagerFromEntryPath(entryPath);
140
+ if (fromEntryPath) {
141
+ return { manager: fromEntryPath, source: "entry path" };
142
+ }
143
+
144
+ return null;
145
+ };
146
+
59
147
  const getPackageManagerCandidates = (): PackageManagerName[] => {
60
148
  const preferred = detectPackageManager();
61
149
  const defaults: PackageManagerName[] = ["npm", "pnpm", "yarn", "bun"];
@@ -79,13 +167,36 @@ const buildUpgradeArgs = (manager: PackageManagerName): string[] => {
79
167
  }
80
168
  };
81
169
 
170
+ const canUseExecPath = (manager: PackageManagerName, execPath: string | undefined): boolean => {
171
+ if (!execPath) {
172
+ return false;
173
+ }
174
+ if (manager === "bun") {
175
+ return false;
176
+ }
177
+ const lowered = execPath.toLowerCase();
178
+ return lowered.includes(manager);
179
+ };
180
+
181
+ const spawnUpgradeProcess = (
182
+ manager: PackageManagerName,
183
+ args: string[],
184
+ execPath: string | undefined,
185
+ ): ReturnType<typeof spawn> => {
186
+ if (canUseExecPath(manager, execPath)) {
187
+ return spawn(process.execPath, [execPath as string, ...args], { stdio: "inherit" });
188
+ }
189
+ return spawn(manager, args, { stdio: "inherit" });
190
+ };
191
+
82
192
  const runUpgrade = async (
83
193
  manager: PackageManagerName,
194
+ execPath: string | undefined,
84
195
  ): Promise<{ status: "ok"; code: number } | { status: "missing" } | { status: "failed"; error: Error }> => {
85
196
  const args = buildUpgradeArgs(manager);
86
197
  return await new Promise((resolve) => {
87
198
  let settled = false;
88
- const child = spawn(manager, args, { stdio: "inherit" });
199
+ const child = spawnUpgradeProcess(manager, args, execPath);
89
200
  const finish = (
90
201
  result: { status: "ok"; code: number } | { status: "missing" } | { status: "failed"; error: Error },
91
202
  ) => {
@@ -310,20 +421,114 @@ const handleEmit = async (argv: string[]): Promise<number> => {
310
421
 
311
422
  const handleUpgrade = async (argv: string[]): Promise<number> => {
312
423
  if (argv.includes("--help") || argv.includes("-h")) {
313
- console.log("Usage: guck upgrade\nUpdates @guckdev/cli using a global install.");
424
+ console.log("Usage: guck upgrade [--manager <npm|pnpm|yarn|bun>]\nUpdates @guckdev/cli using a global install.");
314
425
  return 0;
315
426
  }
316
427
 
317
- for (const manager of getPackageManagerCandidates()) {
318
- const result = await runUpgrade(manager);
428
+ const { opts } = parseArgs(argv);
429
+ const beforeVersion = loadVersion();
430
+ let entryPath: string | null = null;
431
+ const argvPath = process.argv[1];
432
+ if (argvPath) {
433
+ try {
434
+ entryPath = fs.realpathSync(argvPath);
435
+ } catch {
436
+ entryPath = argvPath;
437
+ }
438
+ }
439
+
440
+ const explicitManager = opts.manager ? parsePackageManager(opts.manager) : null;
441
+ if (opts.manager && !explicitManager) {
442
+ console.error(`Invalid package manager: ${opts.manager}. Expected npm, pnpm, yarn, or bun.`);
443
+ return 1;
444
+ }
445
+
446
+ const resolved = resolveUpgradeManager(opts, process.env, entryPath);
447
+ const execPath = process.env.npm_execpath;
448
+
449
+ const tryUpgrade = async (manager: PackageManagerName, source: UpgradeManagerSource | null) => {
450
+ if (source) {
451
+ console.log(`Using ${manager} (detected from ${source}).`);
452
+ }
453
+ const result = await runUpgrade(manager, execPath);
319
454
  if (result.status === "missing") {
320
- continue;
455
+ return { status: "missing" as const };
321
456
  }
322
457
  if (result.status === "failed") {
323
458
  console.error(`Failed to run ${manager}.`, result.error);
459
+ return { status: "failed" as const, code: 1 };
460
+ }
461
+ return { status: "ok" as const, code: result.code };
462
+ };
463
+
464
+ const verifyUpgrade = (exitCode: number): number => {
465
+ const after = spawnSync("guck", ["--version"], { encoding: "utf8" });
466
+ const afterVersion = after.status === 0 ? after.stdout.trim() : null;
467
+ if (!afterVersion || !beforeVersion) {
468
+ console.warn("Upgrade completed, but could not verify the installed version.");
469
+ if (after.status !== 0 && after.stderr) {
470
+ console.warn(after.stderr.trim());
471
+ }
472
+ console.warn(`Current script path: ${process.argv[1] ?? "unknown"}`);
473
+ return exitCode;
474
+ }
475
+ if (afterVersion === beforeVersion) {
476
+ let resolvedPath = "";
477
+ const whichCmd = process.platform === "win32" ? "where" : "which";
478
+ const whichResult = spawnSync(whichCmd, ["guck"], { encoding: "utf8" });
479
+ if (whichResult.status === 0) {
480
+ resolvedPath = whichResult.stdout.trim();
481
+ }
482
+ console.warn("Upgrade finished, but the active guck version did not change.");
483
+ console.warn(`Before: ${beforeVersion}`);
484
+ console.warn(`After : ${afterVersion}`);
485
+ console.warn(`Current script path: ${process.argv[1] ?? "unknown"}`);
486
+ if (resolvedPath) {
487
+ console.warn(`PATH-resolved guck: ${resolvedPath}`);
488
+ }
489
+ return exitCode;
490
+ }
491
+
492
+ console.log("Upgraded @guckdev/cli");
493
+ console.log(`Before: ${beforeVersion}`);
494
+ console.log(`After : ${afterVersion}`);
495
+ return exitCode;
496
+ };
497
+
498
+ if (explicitManager) {
499
+ const result = await tryUpgrade(explicitManager, "flag");
500
+ if (result.status === "missing") {
501
+ console.error(`No ${explicitManager} executable found on PATH.`);
324
502
  return 1;
325
503
  }
326
- return result.code;
504
+ if (result.status === "failed") {
505
+ return result.code;
506
+ }
507
+ return verifyUpgrade(result.code);
508
+ }
509
+
510
+ const candidates: Array<{ manager: PackageManagerName; source: UpgradeManagerSource | null }> = [];
511
+ if (resolved) {
512
+ candidates.push({ manager: resolved.manager, source: resolved.source });
513
+ }
514
+ for (const manager of getPackageManagerCandidates()) {
515
+ if (!candidates.some((candidate) => candidate.manager === manager)) {
516
+ candidates.push({ manager, source: null });
517
+ }
518
+ }
519
+
520
+ for (const candidate of candidates) {
521
+ const result = await tryUpgrade(candidate.manager, candidate.source);
522
+ if (result.status === "missing") {
523
+ if (candidate.source) {
524
+ console.warn(`${candidate.manager} not found. Falling back to other package managers.`);
525
+ }
526
+ continue;
527
+ }
528
+ if (result.status === "failed") {
529
+ return result.code;
530
+ }
531
+ return verifyUpgrade(result.code);
327
532
  }
328
533
 
329
534
  console.error("No supported package manager found (npm, pnpm, yarn, bun).");