beast-agent 0.18.1 → 0.19.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 CHANGED
@@ -92,6 +92,16 @@ All app data lives under `%APPDATA%\beast` (sessions, memory, WhatsApp pairing,
92
92
 
93
93
  Type `/help` in the chat to see every command.
94
94
 
95
+ ## 🗑️ Uninstall
96
+
97
+ ```bash
98
+ beast-agent uninstall
99
+ ```
100
+
101
+ This removes the app (package, startup registration, desktop shortcut) but **keeps all your personal data** — `config.yaml`, `.env`, sessions, memory, WhatsApp pairing and encrypted backups stay in `%APPDATA%\beast`. Reinstall later with `npm install -g beast-agent` and everything is exactly where you left it.
102
+
103
+ To wipe everything instead, delete the `%APPDATA%\beast` folder after uninstalling.
104
+
95
105
  ## 🔒 Security & Privacy
96
106
 
97
107
  - Everything runs **locally**: sessions, memory and logs stay on your disk
@@ -8,6 +8,45 @@
8
8
  const { spawn, spawnSync } = require('child_process');
9
9
  const path = require('path');
10
10
 
11
+ /* kaldırma modu: uygulamayı kaldırır ama KİŞİSEL VERİLERİ korur
12
+ (%APPDATA%\beast: config.yaml, .env, oturumlar, hafıza, WhatsApp eşlemesi, yedekler) */
13
+ if (process.argv[2] === 'uninstall') {
14
+ const isWin = process.platform === 'win32';
15
+ console.log('Beast Agent kald\u0131r\u0131l\u0131yor\u2026');
16
+ if (isWin) {
17
+ /* çalışan örnekleri kapat */
18
+ try {
19
+ spawnSync('powershell.exe', ['-NoProfile', '-Command',
20
+ "Get-Process electron -ErrorAction SilentlyContinue | Where-Object { $_.Path -like '*node_modules*beast-agent*' } | Stop-Process -Force"],
21
+ { stdio: 'ignore' });
22
+ console.log('\u2022 \u00E7al\u0131\u015Fan Beast kapat\u0131ld\u0131 (varsa)');
23
+ } catch {}
24
+ /* startup kaydını sil — yalnız verisi beast-agent'a işaret ediyorsa */
25
+ try {
26
+ spawnSync('powershell.exe', ['-NoProfile', '-Command',
27
+ "$k='HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Run';" +
28
+ "foreach($n in (Get-Item $k -ErrorAction SilentlyContinue).GetValueNames()){" +
29
+ "$v=(Get-ItemProperty $k).$n; if($v -like '*node_modules*beast-agent*'){ Remove-ItemProperty -Path $k -Name $n; Write-Host '• startup kayd\u0131 silindi' } }"],
30
+ { stdio: 'inherit' });
31
+ } catch {}
32
+ /* masaüstü kısayolunu sil (gerçek Masaüstü yolu: OneDrive olabilir) */
33
+ try {
34
+ spawnSync('powershell.exe', ['-NoProfile', '-Command',
35
+ "$d=[Environment]::GetFolderPath('Desktop'); if(Test-Path \"$d\\Beast Agent.lnk\"){ Remove-Item \"$d\\Beast Agent.lnk\" -Force; Write-Host '\u2022 masa\u00FCst\u00FC k\u0131sayolu silindi' }"],
36
+ { stdio: 'inherit' });
37
+ } catch {}
38
+ } else {
39
+ try { spawnSync('pkill', ['-f', 'node_modules/beast-agent'], { stdio: 'ignore' }); } catch {}
40
+ }
41
+ console.log('\u2022 npm paketi kald\u0131r\u0131l\u0131yor\u2026');
42
+ const ur = spawnSync('npm', ['uninstall', '-g', 'beast-agent'], { stdio: 'inherit', shell: isWin });
43
+ console.log('\n\u2713 Beast Agent kald\u0131r\u0131ld\u0131.');
44
+ console.log('\u2139 Ki\u015Fisel verilerin korundu \u2014 %APPDATA%\\beast');
45
+ console.log(' (config.yaml, .env, oturumlar, haf\u0131za, WhatsApp e\u015Flemesi, \u015Fifreli yedekler)');
46
+ console.log(' Tekrar kurmak i\u00E7in: npm install -g beast-agent');
47
+ process.exit(ur.status || 0);
48
+ }
49
+
11
50
  /* güncelleme modu: çalışan Beast'i kapat (dosya kilidi EBUSY vermesin) → npm güncelle → yeniden başlat */
12
51
  if (process.argv[2] === 'update') {
13
52
  const isWin = process.platform === 'win32';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "beast-agent",
3
3
  "productName": "Beast Agent",
4
- "version": "0.18.1",
4
+ "version": "0.19.0",
5
5
  "description": "Ultra-fast local agent shell for Windows.",
6
6
  "author": "algokodcom (AlgoKod)",
7
7
  "license": "MIT",
@@ -527,7 +527,7 @@ function switchTab(name) {
527
527
  if (name === 'dash') renderDashboardPane();
528
528
  if (name === 'limits') renderLimitsPane();
529
529
  if (name === 'sec') renderSecurityPane();
530
- if (name === 'update') renderUpdatePane();
530
+ if (name === 'update') renderUpdatePane(true);
531
531
  if (name === 'agents') refreshAgentsPane();
532
532
  if (name === 'websearch') renderWebSearchPane();
533
533
  /* Fallout: her açılışta güncel provider zincirini çek */
@@ -1562,7 +1562,7 @@ function renderUpdateStateHtml(st) {
1562
1562
  return `<div class="usage-stat" id="upStatusBox"><div class="us-label">${_t('up_status')}</div><div class="us-value" style="font-size:14px">${escapeHtml(status)}</div></div>`;
1563
1563
  }
1564
1564
 
1565
- async function renderUpdatePane() {
1565
+ async function renderUpdatePane(autoCheck) {
1566
1566
  const pane = $('#tab-update');
1567
1567
  if (!pane) return;
1568
1568
  const st = await beast.updateStatus().catch(() => null);
@@ -1632,6 +1632,9 @@ async function renderUpdatePane() {
1632
1632
  if (box) box.outerHTML = renderUpdateStateHtml(s);
1633
1633
  }).catch(() => {});
1634
1634
  }, 1000);
1635
+
1636
+ /* sekme açılırken otomatik sürüm kontrolü */
1637
+ if (autoCheck) beast.updateCheck().catch(() => {});
1635
1638
  }
1636
1639
 
1637
1640
  /* Sohbete onay kartı düşürür — Onayla / Her zaman / Reddet */function showApprovalCard(ev) {