@iola_adm/iola-cli 0.1.90 → 0.1.92
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/package.json +1 -1
- package/src/cli.js +18 -9
- package/test/smoke-test.js +5 -2
package/package.json
CHANGED
package/src/cli.js
CHANGED
|
@@ -390,7 +390,6 @@ const COMMANDS = new Map([
|
|
|
390
390
|
["alias", handleAlias],
|
|
391
391
|
["run", runNaturalLanguage],
|
|
392
392
|
["config", handleConfig],
|
|
393
|
-
["purge", handleUninstall],
|
|
394
393
|
["delete", handleUninstall],
|
|
395
394
|
["banner", showBanner],
|
|
396
395
|
["agent", startAgent],
|
|
@@ -1261,7 +1260,6 @@ async function handleAgentLine(line, state) {
|
|
|
1261
1260
|
diff: ["diff", args],
|
|
1262
1261
|
config: ["config", args],
|
|
1263
1262
|
delete: ["delete", args],
|
|
1264
|
-
purge: ["purge", args],
|
|
1265
1263
|
layers: ["layers", args],
|
|
1266
1264
|
data: ["data", args],
|
|
1267
1265
|
schools: ["schools", args],
|
|
@@ -1286,7 +1284,8 @@ async function handleAgentLine(line, state) {
|
|
|
1286
1284
|
}
|
|
1287
1285
|
|
|
1288
1286
|
const [cliCommand, cliArgs] = mapped;
|
|
1289
|
-
await COMMANDS.get(cliCommand)(cliArgs);
|
|
1287
|
+
const result = await COMMANDS.get(cliCommand)(cliArgs);
|
|
1288
|
+
if (cliCommand === "delete" && result?.deleted) return true;
|
|
1290
1289
|
return false;
|
|
1291
1290
|
}
|
|
1292
1291
|
|
|
@@ -2139,6 +2138,7 @@ async function handleUninstall(args = []) {
|
|
|
2139
2138
|
description: "локальная папка .iola текущего проекта",
|
|
2140
2139
|
});
|
|
2141
2140
|
}
|
|
2141
|
+
const npmPackage = "@iola_adm/iola-cli";
|
|
2142
2142
|
|
|
2143
2143
|
const safeTargets = targets.map((target) => ({
|
|
2144
2144
|
...target,
|
|
@@ -2161,12 +2161,13 @@ async function handleUninstall(args = []) {
|
|
|
2161
2161
|
exists: existsSync(target.path),
|
|
2162
2162
|
description: target.description,
|
|
2163
2163
|
})),
|
|
2164
|
-
|
|
2164
|
+
willRemovePackage: npmPackage,
|
|
2165
|
+
willKeep: ["Codex CLI", "Codex auth/config"],
|
|
2165
2166
|
reinstall: "npm install -g @iola_adm/iola-cli@latest",
|
|
2166
2167
|
};
|
|
2167
2168
|
if (options.json) printJson(payload);
|
|
2168
2169
|
else printKeyValue(Object.fromEntries(payload.willDelete.map((item) => [item.label, `${item.path} (${item.exists ? "exists" : "missing"})`])));
|
|
2169
|
-
return;
|
|
2170
|
+
return { deleted: false };
|
|
2170
2171
|
}
|
|
2171
2172
|
|
|
2172
2173
|
if (!options.yes) {
|
|
@@ -2176,11 +2177,12 @@ async function handleUninstall(args = []) {
|
|
|
2176
2177
|
console.log(` ${target.description}`);
|
|
2177
2178
|
}
|
|
2178
2179
|
console.log("");
|
|
2180
|
+
console.log(`Будет удален npm-пакет: ${npmPackage}`);
|
|
2179
2181
|
console.log("Codex CLI и его настройки не удаляются.");
|
|
2180
|
-
const confirmed = await confirm("
|
|
2182
|
+
const confirmed = await confirm("Полностью удалить iola-cli? [y/N] ");
|
|
2181
2183
|
if (!confirmed) {
|
|
2182
2184
|
console.log("Удаление отменено.");
|
|
2183
|
-
return;
|
|
2185
|
+
return { deleted: false };
|
|
2184
2186
|
}
|
|
2185
2187
|
}
|
|
2186
2188
|
|
|
@@ -2189,10 +2191,13 @@ async function handleUninstall(args = []) {
|
|
|
2189
2191
|
}
|
|
2190
2192
|
|
|
2191
2193
|
console.log("Локальные данные iola-cli удалены.");
|
|
2194
|
+
console.log(`Удаляю npm-пакет ${npmPackage}...`);
|
|
2195
|
+
await runCommand(getNpmCommand(), ["remove", "-g", npmPackage], { inherit: true });
|
|
2196
|
+
console.log("npm-пакет iola-cli удален.");
|
|
2192
2197
|
console.log("Codex CLI не тронут.");
|
|
2193
|
-
console.log("Для
|
|
2194
|
-
console.log(" npm remove -g @iola_adm/iola-cli");
|
|
2198
|
+
console.log("Для повторной установки:");
|
|
2195
2199
|
console.log(" npm install -g @iola_adm/iola-cli@latest");
|
|
2200
|
+
return { deleted: true };
|
|
2196
2201
|
}
|
|
2197
2202
|
|
|
2198
2203
|
async function handleDb(args) {
|
|
@@ -9986,6 +9991,10 @@ function runCommand(command, args, options = {}) {
|
|
|
9986
9991
|
});
|
|
9987
9992
|
}
|
|
9988
9993
|
|
|
9994
|
+
function getNpmCommand() {
|
|
9995
|
+
return process.platform === "win32" ? "npm.cmd" : "npm";
|
|
9996
|
+
}
|
|
9997
|
+
|
|
9989
9998
|
function debugLog(message) {
|
|
9990
9999
|
if (!process.env.IOLA_DEBUG_FILE) return;
|
|
9991
10000
|
appendFile(process.env.IOLA_DEBUG_FILE, `[${new Date().toISOString()}] ${message}\n`, "utf8").catch(() => {});
|
package/test/smoke-test.js
CHANGED
|
@@ -64,8 +64,11 @@ assertIncludes(skills, "reports", "skills list");
|
|
|
64
64
|
assertNotIncludes(skills, "gosuslugi", "skills list");
|
|
65
65
|
|
|
66
66
|
const deletePlan = JSON.parse(await runCli(["delete", "--dry-run", "--json"]));
|
|
67
|
-
if (!Array.isArray(deletePlan.willDelete) || !deletePlan.willKeep.includes("Codex CLI")) {
|
|
68
|
-
throw new Error("delete dry-run should list delete targets and keep Codex CLI");
|
|
67
|
+
if (!Array.isArray(deletePlan.willDelete) || deletePlan.willRemovePackage !== "@iola_adm/iola-cli" || !deletePlan.willKeep.includes("Codex CLI")) {
|
|
68
|
+
throw new Error("delete dry-run should list delete targets, npm package, and keep Codex CLI");
|
|
69
|
+
}
|
|
70
|
+
if (deletePlan.willKeep.includes("npm package files")) {
|
|
71
|
+
throw new Error("delete dry-run should not keep npm package files");
|
|
69
72
|
}
|
|
70
73
|
|
|
71
74
|
console.log("smoke tests passed");
|