myagent-ai 1.24.1 → 1.24.3

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/start.js +23 -5
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "myagent-ai",
3
- "version": "1.24.1",
3
+ "version": "1.24.3",
4
4
  "description": "本地桌面端执行型AI助手 - Open Interpreter 风格 | Local Desktop Execution-Oriented AI Assistant",
5
5
  "main": "main.py",
6
6
  "bin": {
package/start.js CHANGED
@@ -624,7 +624,7 @@ function cleanPycache(pkgDir) {
624
624
  function cmdUninstall() {
625
625
  const venvDir = getVenvDir();
626
626
  const dataDir = getDataDir();
627
- const purgeArg = process.argv.includes("--purge") || process.argv.includes("-p");
627
+ const keepData = process.argv.includes("--keep-data");
628
628
 
629
629
  console.log("");
630
630
  console.log(" \x1b[36mMyAgent 卸载\x1b[0m");
@@ -641,19 +641,37 @@ function cmdUninstall() {
641
641
  if (IS_WIN) {
642
642
  execSync('taskkill /F /IM python.exe /FI "WINDOWTITLE eq myagent*" 2>nul', { encoding: "utf8", timeout: 5000 });
643
643
  } else {
644
- execSync("pkill -f 'myagent|main.py' 2>/dev/null", { encoding: "utf8", timeout: 10000 });
644
+ // 排除当前进程 PID,避免 pkill 杀掉 uninstall 脚本自身
645
+ const selfPid = process.pid;
646
+ execSync(
647
+ `pgrep -f 'myagent|main.py' | grep -v '^${selfPid}$' | xargs -r kill 2>/dev/null; sleep 1; ` +
648
+ `pgrep -f 'myagent|main.py' | grep -v '^${selfPid}$' | xargs -r kill -9 2>/dev/null`,
649
+ { encoding: "utf8", timeout: 10000 }
650
+ );
645
651
  }
646
652
  } catch (_) {}
647
653
 
654
+ // 卸载 npm 全局包
648
655
  try {
649
656
  execFileSync("npm", ["uninstall", "-g", PKG_NAME], {
650
657
  encoding: "utf8", stdio: "inherit", timeout: 60000,
651
658
  });
652
659
  } catch (_) {}
653
660
 
654
- if (purgeArg && fs.existsSync(dataDir)) {
655
- fs.rmSync(dataDir, { recursive: true, force: true });
656
- console.log(" 数据已清除");
661
+ // 清理数据目录(默认删除,--keep-data 保留)
662
+ if (fs.existsSync(dataDir)) {
663
+ if (keepData) {
664
+ console.log(" 数据已保留: " + dataDir);
665
+ } else {
666
+ try {
667
+ const data_size = execSync(`du -sh "${dataDir}" 2>/dev/null`, { encoding: "utf8" }).trim().split(/\s+/)[0] || "?";
668
+ console.log(" 清除数据目录: " + dataDir + " (" + data_size + ")");
669
+ fs.rmSync(dataDir, { recursive: true, force: true });
670
+ console.log(" \x1b[32m✓\x1b[0m 数据已清除");
671
+ } catch (e) {
672
+ console.log(" \x1b[33m⚠ 数据目录清理失败,可手动删除: " + dataDir + "\x1b[0m");
673
+ }
674
+ }
657
675
  }
658
676
  console.log("");
659
677
  console.log(" \x1b[32m✓ 卸载完成\x1b[0m");