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.
- package/package.json +1 -1
- package/start.js +23 -5
package/package.json
CHANGED
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
|
|
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
|
-
|
|
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
|
-
|
|
655
|
-
|
|
656
|
-
|
|
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");
|