beast-agent 2.37.0 → 2.37.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "beast-agent",
3
3
  "productName": "Beast Agent",
4
- "version": "2.37.0",
4
+ "version": "2.37.1",
5
5
  "description": "Ultra-fast local agent shell for Windows.",
6
6
  "author": "algokodcom (AlgoKod)",
7
7
  "license": "MIT",
@@ -2687,10 +2687,11 @@ class Engine {
2687
2687
 
2688
2688
  send(sessionId, payload, opts = {}) {
2689
2689
  const userAction = !!(opts && opts.userAction);
2690
- /* /stop kapısı: sistem tetikli gönderim durdurulur; kullanıcının kendi
2691
- mesajı (userAction) kapıyı kaldırır — "devam için bir şeyler yaz" */
2690
+ /* /stop KİLİDİ: sistem tetikli gönderimler (rapor, kick, cron, izleyici,
2691
+ arka plan) kilit açılana dek bloklanır. Kullanıcının yazdığı YENİ mesaj
2692
+ cevaplanır ama kilidi AÇMAZ — durdurulan iş kendiliğinden devam etmez;
2693
+ kilit yalnız /start (clearStop) ya da açık bir "başlat" eylemiyle açılır. */
2692
2694
  if (this._stopped && !userAction) return false;
2693
- if (userAction) this._stopped = false;
2694
2695
  const s = this._load(String(sessionId));
2695
2696
  if (!s) return false;
2696
2697
 
package/src/main.js CHANGED
@@ -1096,8 +1096,8 @@ function waSlashHelp() {
1096
1096
  '• */beastcode* [görev] – ⚡ UZAKTAN KODLAMA: masaüstünde Beast Code paneli açılır, WhatsApp\u2019tan uygulama yazdır (örn: /beastcode hava durumu uygulaması yaz)',
1097
1097
  '• */beastagent* – kodlama modunu kapat, masaüstünde chat ekranına dön',
1098
1098
  '• */plan* · */build* · */auto* – BeastCode modunda çalışma modu (planla · uygula · otomatik)',
1099
- '• */stop* – koşan işleri durdur (ajanlar+turlar; cron/izleyici/olay sürer)',
1100
- '• */start* – durdurulan servisleri devam ettir',
1099
+ '• */stop* – koşan her şeyi ANINDA durdur + kilitle (kilit yalnız */start* ile açılır; yeni mesaj durdurulan işi devam ettirmez)',
1100
+ '• */start* – kilidi aç; yeni istekler normal işlenir',
1101
1101
  '• */restart* – uygulamayı yeniden başlat',
1102
1102
  '• */change* – modelleri listele (*/change 5* ile 5.modele geç)',
1103
1103
  '• */notes* – bu oturumun notlarını göster',
@@ -1258,6 +1258,9 @@ let servicesPaused = false;
1258
1258
  function stopEverything() {
1259
1259
  let n = 0;
1260
1260
  try { n = engine.stopAll(); } catch {}
1261
+ /* BEAST FINANCE: trader + ekip + sembol işçileri de GERÇEKTEN durur
1262
+ (timer'ları kapanır, panel durumu kapanır; panelden ▶ ile yeniden başlar) */
1263
+ try { Promise.resolve(finStopAllFinanceAgents('/stop: kullanıcı tüm ajanları durdurdu')).catch(() => {}); } catch {}
1261
1264
  /* bekleyen masaüstü/WA birleştirme kuyrukları temizlenir */
1262
1265
  try { for (const [, q] of desktopQueue) clearTimeout(q.timer); } catch {}
1263
1266
  desktopQueue.clear();
@@ -1268,9 +1271,10 @@ function stopEverything() {
1268
1271
  return n;
1269
1272
  }
1270
1273
 
1274
+ /* /stop kilidini aç (YALNIZ /start ve açık "başlat" eylemleri çağırır;
1275
+ normal mesajlar kilidi AÇMAZ — durdurulan iş kendiliğinden devam etmez) */
1271
1276
  function resumeServices() {
1272
1277
  if (!servicesPaused) {
1273
- /* /stop kapısı burada da kalkar — /start VE kullanıcının kendi mesajı canlandırır */
1274
1278
  try { engine.clearStop(); } catch {}
1275
1279
  return;
1276
1280
  }
@@ -1535,19 +1539,18 @@ async function tryWaSlash(jid, rawText, senderNum, payload0) {
1535
1539
  const r = arg ? applyThinkLevel(arg) : null;
1536
1540
  out = r && r.error ? r.error : r ? r.text : thinkStatusText();
1537
1541
  } else if (cmd === 'stop') {
1538
- /* /stop: koşan paralel ajanlar + turlar + kuyruklar; cron/izleyici/olay SÜRER */
1542
+ /* /stop: koşan her şey + KİLİT; kilit yalnız /start ile açılır */
1539
1543
  const stopped = stopEverything();
1540
1544
  out =
1541
1545
  `*Durdu* — ${stopped} koşan iş kesildi.\n` +
1542
1546
  `Sürüyen sorgular, akıştaki cevaplar ve ajan faaliyetleri ANINDA kesildi; ajan yeni sorgu da açamaz.\n` +
1543
- `Devam için bir şeyler yaz ya da /start`;
1547
+ `Bu kilit yalnız /start ile açılır — yeni mesaj yazmak durdurulan işi devam ettirmez.`;
1544
1548
  } else if (cmd === 'start') {
1545
- if (servicesPaused) {
1546
- resumeServices();
1547
- out = '*Devam* — tüm servisler ve zamanlayıcılar yeniden başladı.';
1548
- } else {
1549
- out = 'Zaten çalışıyor — durdurulmuş bir şey yok.';
1550
- }
1549
+ const wasStopped = !!(engine && engine._stopped);
1550
+ resumeServices();
1551
+ out = wasStopped
1552
+ ? '*Devam* — kilit açıldı; yeni istekler normal işlenir. Finans trader durduysa panelden ▶ ile yeniden başlat.'
1553
+ : 'Zaten çalışıyor — durdurulmuş bir şey yok.';
1551
1554
  } else if (cmd === 'restart') {
1552
1555
  out = '*\u21BB Yeniden başlatılıyor…* Uygulama birkaç saniye içinde kapanıp açılacak.';
1553
1556
  setTimeout(() => {
@@ -2437,7 +2440,8 @@ async function handleWaIncoming(jid, payload, senderNum) {
2437
2440
  if (senderNum) waJidPn.set(jid, String(senderNum));
2438
2441
  }
2439
2442
  waLog(`gate: kuyruğa geçiliyor jid=${waPrettyJid(jid)} sender=+${senderNum || '?'}`);
2440
- resumeServices(); // pause durumunda gelen mesaj servisleri canlandırır
2443
+ /* /stop kilidi normal mesajla AÇILMAZ — mesaj yine işlenir (engine userAction),
2444
+ ama durdurulan iş/kuyruk kendiliğinden devam etmez */
2441
2445
  waQueuePush(jid, { ...payload, isGroup }, senderNum);
2442
2446
  } catch (e) {
2443
2447
  waLog(`handleWaIncoming KRASİ: ${String((e && e.stack) || e)}`);
@@ -2833,7 +2837,8 @@ async function handleTgIncoming(chatId, payload) {
2833
2837
  tgLog(`skip: isimsiz kayıt (${hit.id}) — cevap verilmedi, Entegrasyonlar'da isim ekle`);
2834
2838
  return;
2835
2839
  }
2836
- resumeServices(); // pause durumunda gelen mesaj servisleri canlandırır
2840
+ /* /stop kilidi normal mesajla AÇILMAZ — mesaj yine işlenir (engine userAction),
2841
+ ama durdurulan iş/kuyruk kendiliğinden devam etmez */
2837
2842
  tgQueuePush(String(chatId), payload);
2838
2843
  } catch (e) {
2839
2844
  tgLog(`handleTgIncoming KRASİ: ${String((e && e.stack) || e)}`);
@@ -3052,7 +3057,8 @@ async function handleDcIncoming(channelId, payload) {
3052
3057
  dcLog(`skip: isimsiz kayıt (${hit.id}) — cevap verilmedi, Entegrasyonlar'da isim ekle`);
3053
3058
  return;
3054
3059
  }
3055
- resumeServices(); // pause durumunda gelen mesaj servisleri canlandırır
3060
+ /* /stop kilidi normal mesajla AÇILMAZ — mesaj yine işlenir (engine userAction),
3061
+ ama durdurulan iş/kuyruk kendiliğinden devam etmez */
3056
3062
  dcQueuePush(String(channelId), payload);
3057
3063
  } catch (e) {
3058
3064
  dcLog(`handleDcIncoming KRASİ: ${String((e && e.stack) || e)}`);
@@ -5380,7 +5386,8 @@ ipcMain.handle('agent:send', (_e, { sessionId, text }) => {
5380
5386
  }
5381
5387
  return true;
5382
5388
  }
5383
- resumeServices(); // pause durumunda gerçek mesaj her şeyi canlandırır
5389
+ /* /stop kilidi normal mesajla AÇILMAZ — mesaj yine işlenir (engine userAction),
5390
+ ama durdurulan iş/kuyruk kendiliğinden devam etmez */
5384
5391
  queueDesktopMessage(sessionId, text);
5385
5392
  return true;
5386
5393
  });
@@ -5404,7 +5411,7 @@ function desktopSlashHelp() {
5404
5411
  '**/help** – bu liste',
5405
5412
  '**/version** – Beast Agent sürümünü göster',
5406
5413
  '**/restart** – uygulamayı yeniden başlat',
5407
- '**/stop** – koşan işleri durdur · **/start** – devam ettir',
5414
+ '**/stop** – koşan her şeyi durdur + kilitle · **/start** – kilidi aç',
5408
5415
  '**/change [n]** – modelleri listele · n. modele geç',
5409
5416
  '**/model [isim]** – aktif modeli göster / değiştir · **/model refresh** – tüm provider modellerini yeniden çek',
5410
5417
  '**/think 0-5** – düşünme seviyesi (0 kapalı · 5 max)',
@@ -5538,11 +5545,13 @@ function handleGlobalStopStart(sessionId, cmd) {
5538
5545
  reply =
5539
5546
  `\u25A0 **Durdu** — ${n} koşan iş kesildi.\n` +
5540
5547
  'Sürüyen sorgular, akıştaki cevaplar ve ajan faaliyetleri ANINDA kesildi; ajan yeni sorgu da açamaz.\n' +
5541
- 'Devam için bir şeyler yaz ya da `/start`';
5548
+ 'Bu kilit yalnız `/start` ile açılır — yeni mesaj yazmak durdurulan işi devam ettirmez.';
5542
5549
  } else {
5543
- const wasPaused = servicesPaused;
5550
+ const wasStopped = !!(engine && engine._stopped);
5544
5551
  resumeServices();
5545
- reply = wasPaused ? '\u25B6 **Devam** — tüm servisler yeniden başladı.' : 'Zaten çalışıyor — durdurulmuş bir şey yok.';
5552
+ reply = wasStopped
5553
+ ? '\u25B6 **Devam** — kilit açıldı; yeni istekler normal işlenir. Finans trader durduysa panelden \u25B6 ile yeniden başlat.'
5554
+ : 'Zaten çalışıyor — durdurulmuş bir şey yok.';
5546
5555
  }
5547
5556
  if (win && !win.isDestroyed()) {
5548
5557
  win.webContents.send('agent:event', { sessionId: sid, type: 'message', message: { role: 'user', content: cmd } });
@@ -6743,7 +6743,7 @@ const SLASH_COMMANDS = [
6743
6743
  { cmd: '/new', desc: 'yeni oturum aç (kod verilir)' },
6744
6744
  { cmd: '/open ', desc: 'koddaki oturuma geç' },
6745
6745
  { cmd: '/sessions', desc: 'bu sohbetin oturumları' },
6746
- { cmd: '/stop', desc: 'çalışan tüm işleri durdur' },
6746
+ { cmd: '/stop', desc: 'çalışan her şeyi durdur + kilitle — kilit yalnız /start ile açılır' },
6747
6747
  { cmd: '/restart', desc: 'uygulamayı yeniden başlat' },
6748
6748
  { cmd: '/change', desc: 'modelleri listele · /change 5 ile geç' },
6749
6749
  { cmd: '/screenshot', desc: 'ekran görüntüsünü sohbete ekle' },
@@ -6752,7 +6752,7 @@ const SLASH_COMMANDS = [
6752
6752
  { cmd: '/clear', desc: 'oturum geçmişini GERÇEKTEN sil (kod korunur)' },
6753
6753
  { cmd: '/autodel', desc: 'tüm otomatik hatırlatmaları sil · /autodel all: cron dahil hepsi' },
6754
6754
  { cmd: '/deltodo', desc: 'todo listesini temizle · /deltodo all: tüm oturumlar' },
6755
- { cmd: '/start', desc: 'durdurulan servisleri devam ettir' },
6755
+ { cmd: '/start', desc: 'kilidi aç; yeni istekler normal işlenir' },
6756
6756
  { cmd: '/rule ', desc: 'kalıcı kural ekle' },
6757
6757
  { cmd: '/rules', desc: 'kalıcı kuralları listele' },
6758
6758
  { cmd: '/model', desc: 'modeli göster/değiştir' },