@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.
- package/README.md +44 -33
- package/dist/agent-config.js +8 -2
- package/dist/agent-config.js.map +1 -1
- package/dist/args.js +3 -0
- package/dist/args.js.map +1 -1
- package/dist/browser.js.map +1 -1
- package/dist/client.js.map +1 -1
- package/dist/commands/about.js.map +1 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/help.js +19 -9
- package/dist/commands/help.js.map +1 -1
- package/dist/commands/images.js.map +1 -1
- package/dist/commands/index.js +22 -7
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/maintenance.js +72 -25
- package/dist/commands/maintenance.js.map +1 -1
- package/dist/config.js +10 -1
- package/dist/config.js.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/host-plugins.js +101 -0
- package/dist/host-plugins.js.map +1 -0
- package/dist/main.js +55 -38
- package/dist/main.js.map +1 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/output.js.map +1 -1
- package/dist/telemetry.js.map +1 -1
- package/dist/update.js +332 -84
- package/dist/update.js.map +1 -1
- package/dist/version.js +1 -1
- package/package.json +8 -7
|
@@ -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,
|
|
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
|
|
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
|
|
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
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
|
|
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,
|
|
30
|
+
printJson(io, report);
|
|
22
31
|
return 0;
|
|
23
32
|
}
|
|
24
|
-
if (
|
|
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: ${
|
|
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
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
-
|
|
42
|
-
|
|
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|
|
|
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 ??
|
|
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 ??
|
|
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":"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"}
|
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
|
-
/**
|
|
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");
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.js.map
CHANGED
|
@@ -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,
|
|
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 {
|
|
11
|
-
import { CLI_VERSION
|
|
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
|
-
|
|
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
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":"AACA,OAAO,EAAE,SAAS,EAAmB,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAmB,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,UAAU,IAAI,iBAAiB,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAA4B,MAAM,aAAa,CAAC;AAEvL,OAAO,EAAE,aAAa,EAAgB,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAW,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC/H,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACpN,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAW3C,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,EAAM,EAAE,OAAiB;IACnE,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAChD,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;QACZ,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,SAAS,IAAI,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAChM,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,SAAS,CAAC,OAAO,IAAI,CAAC,CAAC;QAC7D,IAAI,SAAS,CAAC,IAAI;YAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC;QACnF,IAAI,SAAS,CAAC,SAAS;YAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,eAAe,SAAS,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC;IACtG,CAAC;IACD,OAAO,SAAS,CAAC,QAAQ,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,MAAiB,EAAE,OAAe,EAAE,GAAQ,EAAE,EAAM,EAAE,WAAmB;IACrG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACxG,MAAM,MAAM,GAAqB,EAAE,CAAC;IACpC,MAAM,KAAK,GAAuB,EAAE,CAAC;IACrC,IAAI,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC;IAC7C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,WAAW,GAAG,cAAc,EAAE,CAAC;QAC/B,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;QACxD,IAAI,CAAC,EAAE,CAAC,KAAK;YAAE,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACxE,KAAK,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAClC,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAC9B,MAAM,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC;AAC3D,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,mBAAmB,CAAC,MAAiB,EAAE,GAAQ,EAAE,EAAM,EAAE,WAAmB;IACzF,IAAI,oBAAoB,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,mBAAmB,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QACxJ,IAAI,KAAK,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;YAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC;QACnF,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,WAAW,KAAK,KAAK,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACrG,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC/B,MAAM,aAAa,CAAC,SAAS,CAAC,CAAC;YAC/B,OAAO,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,6BAA6B,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACvF,CAAC;QACD,IAAI,KAAK;YAAE,MAAM,eAAe,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACxD,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACvE,IAAI,CAAC,EAAE,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,+BAA+B,WAAW,MAAM,IAAI,CAAC,MAAM,6BAA6B,CAAC,CAAC;QACvI,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,EAAE,EAAE,oBAAoB,WAAW,MAAM,IAAI,CAAC,MAAM,sDAAsD,EAAE,KAAK,CAAC,CAAC;QAC7I,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,MAAM,MAAM,GAAG,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACvD,EAAE,CAAC,MAAM,CAAC,YAAY,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACpD,OAAO,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,uBAAuB,IAAI,CAAC,MAAM,6BAA6B,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,sBAAsB,OAAO,CAAC,KAAK,IAAI,WAAW,8BAA8B,CAAC,CAAC;IACxN,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,uFAAuF;AACvF,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAc,EAAE,IAAI,GAAa,EAAE;IAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACpC,IAAI,IAAgB,CAAC;IACrB,IAAI,CAAC;QACH,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QAChD,OAAO,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC;IACD,MAAM,EAAE,GAAO,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAE5D,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAChC,EAAE,CAAC,MAAM,CAAC,GAAG,WAAW,IAAI,CAAC,CAAC;QAC9B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;IAC/B,IAAI,OAAO,GAAkC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5F,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QAC7B,2GAA2G;QAC3G,IAAI,OAAO;YAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;aAC9D,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI;YAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;;YACrE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;QAC3E,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,QAAQ;YAAE,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;aACzD,CAAC;YACJ,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;YACtE,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,EAAE,CAAC,MAAM,CAAC,oBAAoB,SAAS,gBAAgB,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvJ,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QAC5D,uFAAuF;QACvF,MAAM,mBAAmB,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,mBAAmB,EAAE,QAAQ,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7M,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,aAAa,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1F,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,MAAM,MAAM,GAAqB,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAEvD,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,mBAAmB,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzI,MAAM,YAAY,GAAG,CAAC,UAA6B,EAAE,MAAkB,EAAkB,EAAE,CAAC,CAAC;QAC3F,IAAI,EAAE,MAAM;QACZ,EAAE;QACF,GAAG;QACH,MAAM;QACN,UAAU,EAAE,OAAO;QACnB,aAAa,EAAE,UAAU,CAAC,IAAI,KAAK,SAAS,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa;QACpK,SAAS,EAAE,SAAS,CAAC,KAAK;QAC1B,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;YACd,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QACD,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YAChC,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,CAAC,MAAM;gBAAE,OAAO,CAAC,CAAC;YACtB,+DAA+D;YAC/D,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;YAChC,MAAM,MAAM,GAAe,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;YACzH,MAAM,aAAa,GAAmB;gBACpC,GAAG,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;gBAC/B,MAAM,EAAE,MAAM;gBACd,aAAa,EAAE,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;aACrF,CAAC;YACF,IAAI,CAAC;gBACH,OAAO,MAAM,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACzC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,GAAG,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,YAAY;QAAE,EAAE,CAAC,MAAM,CAAC,GAAG,YAAY,IAAI,CAAC,CAAC;IACjD,IAAI,SAAS,CAAC,KAAK,CAAC,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACrF,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC3E,KAAK,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|