@iola_adm/iola-cli 0.2.11 → 0.2.12

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/cli.js +32 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iola_adm/iola-cli",
3
- "version": "0.2.11",
3
+ "version": "0.2.12",
4
4
  "description": "CLI и AI-агент городского округа Йошкар-Ола.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/adm-iola/iola-cli#readme",
package/src/cli.js CHANGED
@@ -1085,9 +1085,9 @@ async function startAgentRawInput() {
1085
1085
  const shouldExit = await handleAgentLine(line, state);
1086
1086
  stopActivity();
1087
1087
  flushPendingAgentOutput(state);
1088
- await refreshAgentAiStatus(state);
1089
- if (!shouldExit) restoreRawInput();
1090
1088
  if (shouldExit) break;
1089
+ await refreshAgentAiStatus(state);
1090
+ restoreRawInput();
1091
1091
  } catch (error) {
1092
1092
  stopActivity();
1093
1093
  restoreRawInput();
@@ -2452,14 +2452,42 @@ async function handleUninstall(args = []) {
2452
2452
 
2453
2453
  console.log("Локальные данные iola-cli удалены.");
2454
2454
  console.log(`Удаляю npm-пакет ${npmPackage}...`);
2455
- await runCommand(getNpmCommand(), ["remove", "-g", npmPackage], { inherit: true });
2456
- console.log("npm-пакет iola-cli удален.");
2455
+ const packageRemoval = await removeGlobalNpmPackage(npmPackage).catch((error) => ({
2456
+ status: "failed",
2457
+ error: error instanceof Error ? error.message : String(error),
2458
+ }));
2459
+ if (packageRemoval.status === "scheduled") {
2460
+ console.log("Удаление npm-пакета запланировано после выхода из CLI.");
2461
+ } else if (packageRemoval.status === "removed") {
2462
+ console.log("npm-пакет iola-cli удален.");
2463
+ } else {
2464
+ console.log(`Не удалось удалить npm-пакет автоматически: ${packageRemoval.error}`);
2465
+ console.log("Локальные данные уже удалены, CLI сейчас выйдет.");
2466
+ console.log("После выхода выполните вручную:");
2467
+ console.log(` npm remove -g ${npmPackage}`);
2468
+ }
2457
2469
  console.log("Codex CLI не тронут.");
2458
2470
  console.log("Для повторной установки:");
2459
2471
  console.log(" npm install -g @iola_adm/iola-cli@latest");
2460
2472
  return { deleted: true };
2461
2473
  }
2462
2474
 
2475
+ async function removeGlobalNpmPackage(npmPackage) {
2476
+ if (process.platform === "win32") {
2477
+ const command = quoteWindowsCommand(getNpmCommand(), ["remove", "-g", npmPackage]);
2478
+ const script = `ping 127.0.0.1 -n 3 > nul & ${command}`;
2479
+ const child = spawn(process.env.ComSpec || "cmd.exe", ["/d", "/s", "/c", script], {
2480
+ detached: true,
2481
+ stdio: "ignore",
2482
+ windowsHide: true,
2483
+ });
2484
+ child.unref();
2485
+ return { status: "scheduled" };
2486
+ }
2487
+ await runCommand(getNpmCommand(), ["remove", "-g", npmPackage], { inherit: true });
2488
+ return { status: "removed" };
2489
+ }
2490
+
2463
2491
  async function handleDb(args) {
2464
2492
  const [action = "status"] = args;
2465
2493
  const options = parseOptions(args);