@meterapp/car-image 1.12.2 → 1.14.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.
@@ -1,45 +1,92 @@
1
1
  import { DEFAULT_BASE_URL } from "@meterapp/car-image-sdk";
2
- import { AUTO_UPDATE_MODES, CONFIG_KEYS, readConfig, storedBaseUrl, updateCachePath, updateConfig } from "../config.js";
2
+ import { AUTO_UPDATE_MODES, CONFIG_KEYS, DEFAULT_AUTO_UPDATE, readConfig, storedBaseUrl, updateCachePath, updateConfig } from "../config.js";
3
3
  import { CliError } from "../errors.js";
4
+ import { refreshHostPlugins } from "../host-plugins.js";
4
5
  import { keyValues, ok, printJson, warn } from "../output.js";
5
6
  import { TELEMETRY_DISCLOSURE, telemetryEnabled } from "../telemetry.js";
6
- import { checkForUpdate, detectPackageManager, installCommand, isNewer, isNpxInvocation, performUpdate } from "../update.js";
7
+ import { checkForUpdate, detectInstall, isNewer, recordInstall, registryUrl, runInstall } from "../update.js";
7
8
  import { CLI_VERSION, PACKAGE_NAME } from "../version.js";
8
9
  export const updateCommand = {
9
10
  name: "update",
10
- summary: "Update the CLI to the latest npm version (or just check with --check)",
11
- usage: "car-image update [--check] [--json]",
11
+ summary: "Update the CLI now, and the car-image plugin in Claude Code and Codex (new CLI versions also install themselves in the background); --check only reports",
12
+ usage: "car-image update [--check] [--no-plugins] [--json]",
12
13
  async run(ctx) {
13
14
  const { io } = ctx;
14
- const { latest } = await checkForUpdate({ cachePath: updateCachePath(ctx.env), force: true });
15
+ const cachePath = updateCachePath(ctx.env);
16
+ const { latest, fromCache } = await checkForUpdate({ cachePath, force: true, timeoutMs: 8000, registry: registryUrl(ctx.env) });
15
17
  const newer = isNewer(latest, CLI_VERSION);
16
- const viaNpx = isNpxInvocation(ctx.env);
17
- const manager = detectPackageManager(ctx.env);
18
- const install = installCommand(manager);
19
- if (ctx.args.flags.check === true || !newer) {
18
+ const target = detectInstall({ version: newer ? latest : "latest" });
19
+ const autoUpdate = ctx.config.autoUpdate ?? DEFAULT_AUTO_UPDATE;
20
+ const report = {
21
+ current: CLI_VERSION,
22
+ latest,
23
+ update_available: newer,
24
+ registry_reached: !fromCache,
25
+ auto_update: autoUpdate,
26
+ install: { method: target.method, command: target.display, blocked: target.blocked ?? null },
27
+ };
28
+ if (ctx.args.flags.check === true) {
20
29
  if (io.json) {
21
- printJson(io, { current: CLI_VERSION, latest, update_available: newer, via_npx: viaNpx, install: `${install.command} ${install.args.join(" ")}` });
30
+ printJson(io, report);
22
31
  return 0;
23
32
  }
24
- if (latest === null)
25
- io.stdout(`${warn(io, `Could not reach the npm registry; running ${CLI_VERSION}.`)}\n`);
33
+ if (fromCache)
34
+ io.stdout(`${warn(io, `Could not reach the npm registry; running ${CLI_VERSION}${latest ? ` (last known latest: ${latest})` : ""}.`)}\n`);
26
35
  else if (newer)
27
- io.stdout(`Update available: ${CLI_VERSION} → ${latest}. Run: ${viaNpx ? `npx ${PACKAGE_NAME}@latest` : `car-image update`}\n`);
36
+ io.stdout(`Update available: ${CLI_VERSION} → ${latest}. Run: ${target.method === "npx" ? `npx ${PACKAGE_NAME}@latest` : "car-image update"}\n`);
28
37
  else
29
38
  io.stdout(`${ok(io, `car-image ${CLI_VERSION} is up to date.`)}\n`);
30
39
  return 0;
31
40
  }
32
- if (viaNpx) {
33
- io.stdout(`You are running through npx; the next \`npx ${PACKAGE_NAME}@latest\` call uses ${latest} automatically.\n`);
34
- return 0;
41
+ let cli;
42
+ if (fromCache) {
43
+ cli = `Could not reach the npm registry; car-image stays at ${CLI_VERSION}.`;
44
+ if (!io.json)
45
+ io.stdout(`${warn(io, cli)}\n`);
35
46
  }
36
- io.stderr(`Updating ${CLI_VERSION} → ${latest} with ${manager}…\n`);
37
- const code = await performUpdate(manager, (line) => io.stderr(line));
38
- if (code !== 0) {
39
- throw new CliError(`Update failed (exit ${code}).`, 1, `Run manually: ${install.command} ${install.args.join(" ")} (add sudo only if your global prefix requires it, or switch to a user-writable prefix).`);
47
+ else if (!newer) {
48
+ cli = `car-image ${CLI_VERSION} is up to date.`;
49
+ if (!io.json)
50
+ io.stdout(`${ok(io, cli)}\n`);
40
51
  }
41
- io.stdout(`${ok(io, `Updated to ${latest}.`)}\n`);
42
- return 0;
52
+ else if (target.method === "npx") {
53
+ cli = `You are running through npx; the next \`npx ${PACKAGE_NAME}@latest\` call uses ${latest}.`;
54
+ if (!io.json)
55
+ io.stdout(`${cli}\n`);
56
+ }
57
+ else if (!target.command) {
58
+ cli = `car-image ${latest} is available; this copy updates with: ${target.display}.`;
59
+ if (!io.json)
60
+ io.stdout(`${cli}\n`);
61
+ }
62
+ else {
63
+ if (target.blocked) {
64
+ throw new CliError(`Cannot update car-image here: ${target.blocked}.`, 1, `Run ${target.display} as a user who can write there, or move npm's global prefix to a directory you own (npm config set prefix ~/.npm-global).`);
65
+ }
66
+ io.stderr(`Updating car-image ${CLI_VERSION} → ${latest} (${target.display})…\n`);
67
+ // The package manager's output goes to stderr, so --json stays one document on stdout.
68
+ const outcome = await runInstall(target, 2);
69
+ await recordInstall(cachePath, { version: latest, from: CLI_VERSION, at: Date.now(), ok: outcome.code === 0, ...(outcome.error ? { error: outcome.error } : {}) });
70
+ if (outcome.code !== 0) {
71
+ throw new CliError(`Update failed (${outcome.error ?? `exit ${outcome.code}`}).`, 1, `Run manually: ${target.display} (add sudo only if your global prefix requires it, or switch to a user-writable prefix).`);
72
+ }
73
+ cli = `Updated car-image to ${latest}.`;
74
+ if (!io.json)
75
+ io.stdout(`${ok(io, cli)}\n`);
76
+ }
77
+ const plugins = ctx.args.flags.plugins === false ? [] : await refreshHostPlugins("car-image");
78
+ if (io.json) {
79
+ printJson(io, { ...report, cli, plugins });
80
+ return plugins.some((entry) => !entry.ok) ? 1 : 0;
81
+ }
82
+ for (const entry of plugins) {
83
+ const line = `${entry.host}: ${entry.id} — ${entry.detail}`;
84
+ io.stdout(`${entry.ok ? ok(io, line) : warn(io, line)}\n`);
85
+ }
86
+ if (plugins.some((entry) => entry.host === "Claude Code" && entry.ok)) {
87
+ io.stdout("Restart Claude Code (or run /reload-plugins) to load the plugin. To have Claude Code keep it current: /plugin → Marketplaces → choose the marketplace → Enable auto-update.\n");
88
+ }
89
+ return plugins.some((entry) => !entry.ok) ? 1 : 0;
43
90
  },
44
91
  };
45
92
  function parseConfigValue(key, raw) {
@@ -77,7 +124,7 @@ function parseConfigValue(key, raw) {
77
124
  }
78
125
  export const configCommand = {
79
126
  name: "config",
80
- summary: "Read or change settings: autoUpdate (ask|always|never), telemetry (on|off), baseUrl; `config path`",
127
+ summary: "Read or change settings: autoUpdate (always|ask|never), telemetry (on|off), baseUrl; `config path`",
81
128
  usage: "car-image config path\ncar-image config get <autoUpdate|telemetry|baseUrl>\ncar-image config set <autoUpdate|telemetry|baseUrl> <value>\ncar-image config list",
82
129
  async run(ctx) {
83
130
  const [action, rawKey, value] = ctx.args.positionals;
@@ -86,7 +133,7 @@ export const configCommand = {
86
133
  const config = await readConfig(ctx.configPath);
87
134
  const view = {
88
135
  path: ctx.configPath,
89
- autoUpdate: config.autoUpdate ?? "ask",
136
+ autoUpdate: config.autoUpdate ?? DEFAULT_AUTO_UPDATE,
90
137
  telemetry: telemetryEnabled(config, ctx.env) ? "on" : "off",
91
138
  baseUrl: config.baseUrl ?? "(default)",
92
139
  apiKey: config.apiKey ? "(stored)" : "(none)",
@@ -107,7 +154,7 @@ export const configCommand = {
107
154
  const key = rawKey;
108
155
  if (action === "get") {
109
156
  const config = await readConfig(ctx.configPath);
110
- const current = key === "telemetry" ? (telemetryEnabled(config, ctx.env) ? "on" : "off") : key === "autoUpdate" ? (config.autoUpdate ?? "ask") : (config.baseUrl ?? "");
157
+ const current = key === "telemetry" ? (telemetryEnabled(config, ctx.env) ? "on" : "off") : key === "autoUpdate" ? (config.autoUpdate ?? DEFAULT_AUTO_UPDATE) : (config.baseUrl ?? "");
111
158
  if (io.json)
112
159
  printJson(io, { [key]: current });
113
160
  else
@@ -1 +1 @@
1
- {"version":3,"file":"maintenance.js","sourceRoot":"","sources":["../../src/commands/maintenance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"maintenance.js","sourceRoot":"","sources":["../../src/commands/maintenance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAuC,MAAM,cAAc,CAAC;AAElL,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC9G,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE1D,MAAM,CAAC,MAAM,aAAa,GAAsB;IAC9C,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,0JAA0J;IACnK,KAAK,EAAE,oDAAoD;IAC3D,KAAK,CAAC,GAAG,CAAC,GAAmB;QAC3B,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC;QACnB,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,cAAc,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChI,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,aAAa,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrE,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,mBAAmB,CAAC;QAChE,MAAM,MAAM,GAAG;YACb,OAAO,EAAE,WAAW;YACpB,MAAM;YACN,gBAAgB,EAAE,KAAK;YACvB,gBAAgB,EAAE,CAAC,SAAS;YAC5B,WAAW,EAAE,UAAU;YACvB,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI,EAAE;SAC7F,CAAC;QAEF,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YAClC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;gBACZ,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;gBACtB,OAAO,CAAC,CAAC;YACX,CAAC;YACD,IAAI,SAAS;gBAAE,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,6CAA6C,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,wBAAwB,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;iBACpJ,IAAI,KAAK;gBAAE,EAAE,CAAC,MAAM,CAAC,qBAAqB,WAAW,MAAM,MAAM,UAAU,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,YAAY,SAAS,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,CAAC;;gBAC5J,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,aAAa,WAAW,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACzE,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,GAAW,CAAC;QAChB,IAAI,SAAS,EAAE,CAAC;YACd,GAAG,GAAG,wDAAwD,WAAW,GAAG,CAAC;YAC7E,IAAI,CAAC,EAAE,CAAC,IAAI;gBAAE,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;aAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YAClB,GAAG,GAAG,aAAa,WAAW,iBAAiB,CAAC;YAChD,IAAI,CAAC,EAAE,CAAC,IAAI;gBAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YACnC,GAAG,GAAG,+CAA+C,YAAY,uBAAuB,MAAM,GAAG,CAAC;YAClG,IAAI,CAAC,EAAE,CAAC,IAAI;gBAAE,EAAE,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC3B,GAAG,GAAG,aAAa,MAAM,0CAA0C,MAAM,CAAC,OAAO,GAAG,CAAC;YACrF,IAAI,CAAC,EAAE,CAAC,IAAI;gBAAE,EAAE,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM,IAAI,QAAQ,CAAC,iCAAiC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC,EAAE,OAAO,MAAM,CAAC,OAAO,2HAA2H,CAAC,CAAC;YAC9N,CAAC;YACD,EAAE,CAAC,MAAM,CAAC,sBAAsB,WAAW,MAAM,MAAM,KAAK,MAAM,CAAC,OAAO,MAAM,CAAC,CAAC;YAClF,uFAAuF;YACvF,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC5C,MAAM,aAAa,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACnK,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,QAAQ,CAAC,kBAAkB,OAAO,CAAC,KAAK,IAAI,QAAQ,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,iBAAiB,MAAM,CAAC,OAAO,0FAA0F,CAAC,CAAC;YAClN,CAAC;YACD,GAAG,GAAG,wBAAwB,MAAM,GAAG,CAAC;YACxC,IAAI,CAAC,EAAE,CAAC,IAAI;gBAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAC9F,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;YACZ,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;YAC3C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;YAC5D,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;YACtE,EAAE,CAAC,MAAM,CAAC,+KAA+K,CAAC,CAAC;QAC7L,CAAC;QACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;CACF,CAAC;AAEF,SAAS,gBAAgB,CAAC,GAAiC,EAAE,GAAW;IACtE,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,YAAY,EAAE,CAAC;YAClB,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,CAAE,iBAAuC,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,MAAM,IAAI,QAAQ,CAAC,8BAA8B,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACnJ,OAAO,EAAE,UAAU,EAAE,KAAuB,EAAE,CAAC;QACjD,CAAC;QACD,KAAK,WAAW,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;YAC3E,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;YAC7E,MAAM,IAAI,QAAQ,CAAC,6BAA6B,EAAE,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,KAAK,SAAS,EAAE,CAAC;YACf,IAAI,OAAe,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;gBAChC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;gBACjE,OAAO,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC1D,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,IAAI,QAAQ,CAAC,gCAAgC,EAAE,CAAC,CAAC,CAAC;YAC1D,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,CAAC;QACD;YACE,MAAM,IAAI,QAAQ,CAAC,sBAAsB,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAsB;IAC9C,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,oGAAoG;IAC7G,KAAK,EAAE,gKAAgK;IACvK,KAAK,CAAC,GAAG,CAAC,GAAmB;QAC3B,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;QACrD,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC;QACnB,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG;gBACX,IAAI,EAAE,GAAG,CAAC,UAAU;gBACpB,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,mBAAmB;gBACpD,SAAS,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;gBAC3D,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,WAAW;gBACtC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;aAC9C,CAAC;YACF,IAAI,EAAE,CAAC,IAAI;gBAAE,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;;gBAC5B,EAAE,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;YAC3D,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,EAAE,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC;YACjC,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,CAAE,WAAiC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACpE,MAAM,IAAI,QAAQ,CAAC,2BAA2B,MAAM,KAAK,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACxF,CAAC;QACD,MAAM,GAAG,GAAG,MAAsC,CAAC;QACnD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAChD,MAAM,OAAO,GAAG,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YACtL,IAAI,EAAE,CAAC,IAAI;gBAAE,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;;gBAC1C,EAAE,CAAC,MAAM,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;YAC/B,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,IAAI,KAAK,KAAK,SAAS;gBAAE,MAAM,IAAI,QAAQ,CAAC,+BAA+B,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC;YAC7F,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC3C,MAAM,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;YAC1C,MAAM,OAAO,GAAG,GAAG,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC;YACjE,IAAI,EAAE,CAAC,IAAI;gBAAE,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;;gBACjH,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,uBAAuB,gBAAgB,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YACnI,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,IAAI,QAAQ,CAAC,0BAA0B,MAAM,GAAG,EAAE,CAAC,EAAE,2BAA2B,CAAC,CAAC;IAC1F,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAsB;IACjD,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,kEAAkE;IAC3E,KAAK,EAAE,mCAAmC;IAC1C,KAAK,CAAC,GAAG,CAAC,GAAmB;QAC3B,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QACnE,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC;QACnB,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,EAAE,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;YAClF,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;YACpD,IAAI,EAAE,CAAC,IAAI;gBAAE,SAAS,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;;gBACjE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,aAAa,MAAM,GAAG,CAAC,GAAG,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,6DAA6D,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAC3J,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,MAAM,KAAK,QAAQ;YAAE,MAAM,IAAI,QAAQ,CAAC,0CAA0C,EAAE,CAAC,CAAC,CAAC;QAC3F,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAClD,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;YACZ,SAAS,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,WAAW,IAAI,IAAI,EAAE,YAAY,EAAE,GAAG,CAAC,GAAG,CAAC,mBAAmB,IAAI,IAAI,EAAE,CAAC,CAAC;YACxH,OAAO,CAAC,CAAC;QACX,CAAC;QACD,EAAE,CAAC,MAAM,CAAC,gBAAgB,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,yBAAyB,GAAG,CAAC,GAAG,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,oBAAoB,IAAI,CAAC,CAAC;QAC3L,OAAO,CAAC,CAAC;IACX,CAAC;CACF,CAAC"}
package/dist/config.js CHANGED
@@ -3,6 +3,7 @@ import { chmod, mkdir, readFile, rename, writeFile } from "node:fs/promises";
3
3
  import { homedir } from "node:os";
4
4
  import { dirname, join } from "node:path";
5
5
  export const AUTO_UPDATE_MODES = ["ask", "always", "never"];
6
+ export const DEFAULT_AUTO_UPDATE = "always";
6
7
  export const CONFIG_KEYS = ["autoUpdate", "telemetry", "baseUrl"];
7
8
  /**
8
9
  * Hosts that serve the API only as an alias of https://carimage.dev.
@@ -37,10 +38,18 @@ export function configPath(env = process.env) {
37
38
  const root = env.XDG_CONFIG_HOME?.trim() || join(env.HOME?.trim() || homedir(), ".config");
38
39
  return join(root, "car-image-api", "config.json");
39
40
  }
40
- /** 24-hour update-check cache, next to the config file. */
41
+ /** Update-check cache, next to the config file. */
41
42
  export function updateCachePath(env = process.env) {
42
43
  return join(dirname(configPath(env)), "update-check.json");
43
44
  }
45
+ /** Held by the one background update worker allowed at a time. */
46
+ export function updateLockPath(env = process.env) {
47
+ return join(dirname(configPath(env)), "update.lock");
48
+ }
49
+ /** The package manager's output from the last automatic update. */
50
+ export function updateLogPath(env = process.env) {
51
+ return join(dirname(configPath(env)), "update.log");
52
+ }
44
53
  export async function readJsonFile(path) {
45
54
  try {
46
55
  const raw = await readFile(path, "utf8");
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAK9E,MAAM,OAAO,QAAS,SAAQ,KAAK;IACxB,QAAQ,CAAW;IACnB,IAAI,CAAqB;IAElC,YAAY,OAAe,EAAE,WAAqB,CAAC,EAAE,IAAa;QAChE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAKD,mDAAmD;AACnD,MAAM,UAAU,UAAU,CAAC,MAAiC,EAAE,iBAAiC;IAC7F,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,GAAG;YACN,OAAO,mEAAmE,CAAC;QAC7E,KAAK,GAAG;YACN,OAAO,kFAAkF,CAAC;QAC5F,KAAK,GAAG;YACN,OAAO,iIAAiI,CAAC;QAC3I,KAAK,GAAG;YACN,OAAO,qGAAqG,CAAC;QAC/G,KAAK,GAAG;YACN,OAAO,sBAAsB,iBAAiB,IAAI,OAAO,qBAAqB,CAAC;QACjF,KAAK,CAAC;YACJ,OAAO,yEAAyE,CAAC;QACnF,KAAK,GAAG,CAAC;QACT,KAAK,GAAG;YACN,OAAO,qFAAqF,CAAC;QAC/F;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAUD,iIAAiI;AACjI,MAAM,UAAU,aAAa,CAAC,KAAc,EAAE,UAAmB,UAAU;IACzE,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;IAChF,CAAC;IACD,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAkB,KAAK,CAAC;QACnC,OAAO;YACL,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,EAAE;YAC1C,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC;YACpD,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC/D,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAK9E,MAAM,OAAO,QAAS,SAAQ,KAAK;IACxB,QAAQ,CAAW;IACnB,IAAI,CAAqB;IAElC,YAAY,OAAe,EAAE,QAAQ,GAAa,CAAC,EAAE,IAAa;QAChE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAKD,mDAAmD;AACnD,MAAM,UAAU,UAAU,CAAC,MAAiC,EAAE,iBAAiC;IAC7F,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,GAAG;YACN,OAAO,mEAAmE,CAAC;QAC7E,KAAK,GAAG;YACN,OAAO,kFAAkF,CAAC;QAC5F,KAAK,GAAG;YACN,OAAO,iIAAiI,CAAC;QAC3I,KAAK,GAAG;YACN,OAAO,qGAAqG,CAAC;QAC/G,KAAK,GAAG;YACN,OAAO,sBAAsB,iBAAiB,IAAI,OAAO,qBAAqB,CAAC;QACjF,KAAK,CAAC;YACJ,OAAO,yEAAyE,CAAC;QACnF,KAAK,GAAG,CAAC;QACT,KAAK,GAAG;YACN,OAAO,qFAAqF,CAAC;QAC/F;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAUD,iIAAiI;AACjI,MAAM,UAAU,aAAa,CAAC,KAAc,EAAE,OAAO,GAAY,UAAU;IACzE,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;IAChF,CAAC;IACD,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAkB,KAAK,CAAC;QACnC,OAAO;YACL,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,EAAE;YAC1C,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC;YACpD,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC/D,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;AACjD,CAAC"}
@@ -0,0 +1,101 @@
1
+ import { execFile } from "node:child_process";
2
+ /** Runs a host's CLI without a shell (a `.cmd` shim needs one on Windows); a missing command is a non-zero code, never a throw. */
3
+ export const runHostCommand = (command, args, timeoutMs) => new Promise((resolve) => {
4
+ execFile(command, args, { timeout: timeoutMs, windowsHide: true, shell: process.platform === "win32", maxBuffer: 8 * 1024 * 1024 }, (error, stdout, stderr) => {
5
+ const code = error ? (typeof error.code === "number" ? error.code : 1) : 0;
6
+ resolve({ code, stdout: String(stdout), stderr: String(stderr) });
7
+ });
8
+ });
9
+ /** Where Claude Code installed `plugin`, from `claude plugin list --json`. */
10
+ export function claudeInstalls(stdout, plugin) {
11
+ let parsed;
12
+ try {
13
+ parsed = JSON.parse(stdout);
14
+ }
15
+ catch {
16
+ return [];
17
+ }
18
+ if (!Array.isArray(parsed))
19
+ return [];
20
+ return parsed.flatMap((entry) => {
21
+ const record = (entry && typeof entry === "object" ? entry : {});
22
+ const id = typeof record.id === "string" ? record.id : "";
23
+ const [name, marketplace] = id.split("@");
24
+ if (name !== plugin || !marketplace)
25
+ return [];
26
+ return [{ id, marketplace, ...(typeof record.scope === "string" ? { scope: record.scope } : {}) }];
27
+ });
28
+ }
29
+ /** The marketplaces `plugin` is installed from in Codex, read off `codex plugin list`'s table. */
30
+ export function codexMarketplaces(stdout, plugin) {
31
+ const marketplaces = new Set();
32
+ for (const line of stdout.split("\n")) {
33
+ const match = /^(\S+)@(\S+)\s+installed\b/.exec(line.trim());
34
+ if (match && match[1] === plugin && match[2])
35
+ marketplaces.add(match[2]);
36
+ }
37
+ return [...marketplaces];
38
+ }
39
+ function lastLine(text) {
40
+ return (text
41
+ .trim()
42
+ .split("\n")
43
+ .map((line) => line.trim())
44
+ .filter(Boolean)
45
+ .pop() ?? "");
46
+ }
47
+ /** The `message` of the one-line JSON result Claude Code prints with `--json`. */
48
+ function jsonMessage(stdout) {
49
+ for (const line of stdout.split("\n")) {
50
+ if (!line.trim().startsWith("{"))
51
+ continue;
52
+ try {
53
+ const parsed = JSON.parse(line);
54
+ if (typeof parsed.message === "string")
55
+ return parsed.message;
56
+ }
57
+ catch {
58
+ // not the result line
59
+ }
60
+ }
61
+ return null;
62
+ }
63
+ /**
64
+ * Brings the `plugin` installs of Claude Code and Codex up to date: refreshes
65
+ * each marketplace that installed it, then the plugin (Claude Code), or the
66
+ * marketplace snapshot (Codex). A host that is not installed, or does not have
67
+ * the plugin, is skipped without a word.
68
+ */
69
+ export async function refreshHostPlugins(plugin, run = runHostCommand) {
70
+ const results = [];
71
+ const claude = await run("claude", ["plugin", "list", "--json"], 30_000);
72
+ if (claude.code === 0) {
73
+ const installs = claudeInstalls(claude.stdout, plugin);
74
+ const failedMarketplaces = new Map();
75
+ for (const marketplace of new Set(installs.map((install) => install.marketplace))) {
76
+ const refreshed = await run("claude", ["plugin", "marketplace", "update", marketplace, "--json"], 120_000);
77
+ if (refreshed.code !== 0)
78
+ failedMarketplaces.set(marketplace, jsonMessage(refreshed.stdout) ?? (lastLine(refreshed.stderr || refreshed.stdout) || `exit ${refreshed.code}`));
79
+ }
80
+ for (const install of installs) {
81
+ const failed = failedMarketplaces.get(install.marketplace);
82
+ if (failed) {
83
+ results.push({ host: "Claude Code", id: install.id, ok: false, detail: `marketplace ${install.marketplace}: ${failed}` });
84
+ continue;
85
+ }
86
+ const updated = await run("claude", ["plugin", "update", install.id, "--json", ...(install.scope ? ["--scope", install.scope] : [])], 120_000);
87
+ const detail = jsonMessage(updated.stdout) ?? (lastLine(updated.code === 0 ? updated.stdout : updated.stderr || updated.stdout) || (updated.code === 0 ? "up to date" : `exit ${updated.code}`));
88
+ results.push({ host: "Claude Code", id: install.id, ok: updated.code === 0, detail });
89
+ }
90
+ }
91
+ const codex = await run("codex", ["plugin", "list"], 30_000);
92
+ if (codex.code === 0) {
93
+ for (const marketplace of codexMarketplaces(codex.stdout, plugin)) {
94
+ const upgraded = await run("codex", ["plugin", "marketplace", "upgrade", marketplace], 120_000);
95
+ const detail = lastLine(upgraded.code === 0 ? upgraded.stdout : upgraded.stderr || upgraded.stdout) || (upgraded.code === 0 ? "marketplace refreshed" : `exit ${upgraded.code}`);
96
+ results.push({ host: "Codex", id: `${plugin}@${marketplace}`, ok: upgraded.code === 0, detail });
97
+ }
98
+ }
99
+ return results;
100
+ }
101
+ //# sourceMappingURL=host-plugins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-plugins.js","sourceRoot":"","sources":["../src/host-plugins.ts"],"names":[],"mappings":"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"}
package/dist/main.js CHANGED
@@ -1,14 +1,14 @@
1
1
  import { parseArgs } from "./args.js";
2
2
  import { createClientContext } from "./client.js";
3
- import { COMMANDS, findCommand, helpEntries } from "./commands/index.js";
3
+ import { COMMANDS, findCommand, helpEntries, moreCommandNames } from "./commands/index.js";
4
4
  import { helpText } from "./commands/help.js";
5
- import { configPath as resolveConfigPath, readConfig, updateCachePath, updateConfig } from "./config.js";
5
+ import { DEFAULT_AUTO_UPDATE, configPath as resolveConfigPath, readConfig, updateCachePath, updateConfig, updateLockPath, updateLogPath } from "./config.js";
6
6
  import { describeError } from "./errors.js";
7
7
  import { createIo, paint } from "./output.js";
8
8
  import { confirm } from "./prompts.js";
9
9
  import { TELEMETRY_DISCLOSURE, commandEvent, newAnonymousId, sendEvents, simpleEvent, telemetryEnabled } from "./telemetry.js";
10
- import { checkForUpdate, decideUpdate, detectPackageManager, isNpxInvocation, markNoticeShown, performUpdate } from "./update.js";
11
- import { CLI_VERSION, PACKAGE_NAME } from "./version.js";
10
+ import { detectInstall, markAnnounced, markNoticeShown, planUpdate, readUpdateCache, registryUrl, runBackgroundUpdate, runInstall, spawnBackgroundUpdate, updateChecksDisabled, updateLockHeld } from "./update.js";
11
+ import { CLI_VERSION } from "./version.js";
12
12
  export function renderError(error, io, hintFor) {
13
13
  const described = describeError(error, hintFor);
14
14
  if (io.json) {
@@ -44,40 +44,46 @@ async function setupTelemetry(config, cfgPath, env, io, commandName) {
44
44
  }
45
45
  return { state: { enabled: true, anonymousId }, events };
46
46
  }
47
- async function passiveUpdateCheck(config, env, io, commandName) {
47
+ /**
48
+ * The update step of every command but `update`, from the cache alone: starts
49
+ * the background worker when the registry's answer is stale or a newer version
50
+ * waits to be installed, prompts in `ask` mode, and returns the line to print
51
+ * after the command at a terminal. Agents, scripts and the MCP server get the
52
+ * background update and nothing on their streams. Never waits for the
53
+ * network, never fails the command.
54
+ */
55
+ async function updateBeforeCommand(config, env, io, commandName) {
56
+ if (updateChecksDisabled(env))
57
+ return null;
48
58
  try {
49
59
  const cachePath = updateCachePath(env);
50
- const { latest, cache } = await checkForUpdate({ cachePath });
51
- const decision = decideUpdate({
52
- current: CLI_VERSION,
53
- latest,
54
- isTTY: io.isTTY,
55
- viaNpx: isNpxInvocation(env),
56
- autoUpdate: config.autoUpdate ?? "ask",
57
- lastNoticeAt: cache.lastNoticeAt ?? null,
58
- now: Date.now(),
59
- quiet: io.quiet,
60
- command: commandName,
61
- });
62
- if (decision.action === "none")
63
- return;
64
- const manager = detectPackageManager(env);
65
- if (decision.action === "notice") {
66
- io.stderr(`${paint(io, "yellow", `Update available: ${CLI_VERSION} → ${decision.latest}.`)} Run \`car-image update\`${isNpxInvocation(env) ? ` (or \`npx ${PACKAGE_NAME}@latest\`)` : ""}. Silence with \`car-image config set autoUpdate never\`.\n`);
60
+ const cache = await readUpdateCache(cachePath);
61
+ const now = Date.now();
62
+ const { spawn, plan } = planUpdate({ cache, current: CLI_VERSION, autoUpdate: config.autoUpdate ?? DEFAULT_AUTO_UPDATE, target: detectInstall(), now });
63
+ if (spawn && !updateLockHeld(updateLockPath(env), now))
64
+ spawnBackgroundUpdate(env);
65
+ if (plan.action === "none" || commandName === "mcp" || !io.isTTY || io.json || io.quiet)
66
+ return null;
67
+ if (plan.action === "announce") {
68
+ await markAnnounced(cachePath);
69
+ return paint(io, "dim", `car-image updated itself: ${plan.from} → ${plan.version}.`);
67
70
  }
68
- else if (decision.action === "ask") {
69
- const yes = await confirm(io, `Update car-image ${CLI_VERSION} → ${decision.latest} now? (config: car-image config set autoUpdate always|never)`, false);
70
- if (yes)
71
- await performUpdate(manager, (line) => io.stderr(line));
72
- }
73
- else {
74
- io.stderr(`${paint(io, "dim", `Auto-updating car-image ${CLI_VERSION} → ${decision.latest}…`)}\n`);
75
- await performUpdate(manager, () => undefined);
76
- }
77
- await markNoticeShown(cachePath, cache);
71
+ if (cache)
72
+ await markNoticeShown(cachePath, cache, now);
73
+ if (plan.action === "notice")
74
+ return paint(io, "yellow", plan.message);
75
+ if (!io.stdinTTY)
76
+ return paint(io, "yellow", `Update available: car-image ${CLI_VERSION} → ${plan.latest}. Run \`car-image update\`.`);
77
+ const yes = await confirm(io, `Update car-image ${CLI_VERSION} → ${plan.latest} now? (car-image config set autoUpdate always|never)`, false);
78
+ if (!yes)
79
+ return null;
80
+ const target = detectInstall({ version: plan.latest });
81
+ io.stderr(`Running: ${target.display}\n`);
82
+ const outcome = await runInstall(target, "inherit");
83
+ return outcome.code === 0 ? paint(io, "dim", `Installed car-image ${plan.latest}; the next command runs it.`) : paint(io, "yellow", `The update failed (${outcome.error ?? "see above"}); run \`car-image update\`.`);
78
84
  }
79
85
  catch {
80
- // Update checks are best-effort and never block a command.
86
+ return null;
81
87
  }
82
88
  }
83
89
  /** Entry point shared by the binary and tests. Resolves with the process exit code. */
@@ -99,14 +105,20 @@ export async function main(argv, deps = {}) {
99
105
  const requested = args.command;
100
106
  let command = requested ? findCommand(requested) : undefined;
101
107
  if (args.flags.help === true) {
102
- io.stdout(helpText(helpEntries(), command?.name ?? null));
108
+ // `<command> --help` shows that command whatever list it is on; bare `--help` shows the six main commands.
109
+ if (command)
110
+ io.stdout(helpText(helpEntries("all"), command.name));
111
+ else if (args.flags.all === true)
112
+ io.stdout(helpText(helpEntries("all")));
113
+ else
114
+ io.stdout(helpText(helpEntries("primary"), null, moreCommandNames()));
103
115
  return 0;
104
116
  }
105
117
  if (!requested) {
106
118
  if (io.isTTY && io.stdinTTY)
107
119
  command = findCommand("onboard");
108
120
  else {
109
- io.stdout(helpText(helpEntries()));
121
+ io.stdout(helpText(helpEntries("primary"), null, moreCommandNames()));
110
122
  return 0;
111
123
  }
112
124
  }
@@ -116,12 +128,15 @@ export async function main(argv, deps = {}) {
116
128
  }
117
129
  const cfgPath = resolveConfigPath(env);
118
130
  const config = await readConfig(cfgPath);
131
+ if (command.name === "update" && args.flags.worker === true) {
132
+ // The detached worker another command started: no telemetry, no output, one at a time.
133
+ await runBackgroundUpdate({ cachePath: updateCachePath(env), lockPath: updateLockPath(env), logPath: updateLogPath(env), autoUpdate: config.autoUpdate ?? DEFAULT_AUTO_UPDATE, registry: registryUrl(env) });
134
+ return 0;
135
+ }
119
136
  const clientContext = createClientContext(args.flags, env, config, { fetch: deps.fetch });
120
137
  const telemetry = await setupTelemetry(config, cfgPath, env, io, command.name);
121
138
  const queued = [...telemetry.events];
122
- if (!deps.skipUpdateCheck && command.name !== "mcp" && command.name !== "update" && io.isTTY) {
123
- await passiveUpdateCheck(config, env, io, command.name);
124
- }
139
+ const updateNotice = deps.skipUpdateCheck || command.name === "update" ? null : await updateBeforeCommand(config, env, io, command.name);
125
140
  const buildContext = (definition, parsed) => ({
126
141
  args: parsed,
127
142
  io,
@@ -161,6 +176,8 @@ export async function main(argv, deps = {}) {
161
176
  catch (error) {
162
177
  code = renderError(error, io, command.fixHint);
163
178
  }
179
+ if (updateNotice)
180
+ io.stderr(`${updateNotice}\n`);
164
181
  if (telemetry.state.enabled && telemetry.state.anonymousId && command.name !== "mcp") {
165
182
  queued.push(commandEvent(telemetry.state.anonymousId, command.name, code));
166
183
  void sendEvents(clientContext.client, queued);
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}