beast-agent 1.8.0 → 2.0.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.
Files changed (52) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +130 -128
  3. package/bin/beast-agent.js +137 -137
  4. package/package.json +1 -1
  5. package/scripts/fix-electron.js +138 -138
  6. package/scripts/release.js +137 -131
  7. package/scripts/swap-electron.js +40 -40
  8. package/src/agent/agentdefs.js +122 -122
  9. package/src/agent/bots.js +580 -580
  10. package/src/agent/bus.js +389 -389
  11. package/src/agent/computeruse.js +200 -200
  12. package/src/agent/config.js +284 -284
  13. package/src/agent/discord.js +332 -332
  14. package/src/agent/engine.js +85 -11
  15. package/src/agent/kb.js +123 -123
  16. package/src/agent/llm.js +430 -430
  17. package/src/agent/logger.js +90 -90
  18. package/src/agent/mcp.js +427 -0
  19. package/src/agent/mem0.js +605 -605
  20. package/src/agent/memory.js +427 -427
  21. package/src/agent/mqueue.js +124 -124
  22. package/src/agent/pdf.js +20 -20
  23. package/src/agent/research.js +133 -133
  24. package/src/agent/scripts/news.py +113 -113
  25. package/src/agent/scripts/stealthsearch.py +30 -30
  26. package/src/agent/scripts/websearch.py +225 -225
  27. package/src/agent/searxng.js +325 -325
  28. package/src/agent/seeds/brainstorming/SKILL.md +90 -90
  29. package/src/agent/seeds/dispatching-parallel-agents/SKILL.md +120 -120
  30. package/src/agent/seeds/executing-plans/SKILL.md +60 -60
  31. package/src/agent/seeds/subagent-driven-development/SKILL.md +167 -167
  32. package/src/agent/seeds/systematic-debugging/SKILL.md +131 -131
  33. package/src/agent/seeds/test-driven-development/SKILL.md +152 -152
  34. package/src/agent/seeds/verification-before-completion/SKILL.md +63 -63
  35. package/src/agent/seeds/writing-plans/SKILL.md +162 -162
  36. package/src/agent/seeds/writing-skills/SKILL.md +229 -229
  37. package/src/agent/skills.js +652 -651
  38. package/src/agent/store.js +378 -378
  39. package/src/agent/telegram.js +155 -155
  40. package/src/agent/tokens.js +39 -39
  41. package/src/agent/usage.js +125 -125
  42. package/src/agent/watchers.js +312 -312
  43. package/src/agent/watext.js +80 -80
  44. package/src/agent/whatsapp.js +555 -555
  45. package/src/cron.js +255 -255
  46. package/src/main.js +385 -6
  47. package/src/preload.js +13 -0
  48. package/src/renderer/browserPreload.js +73 -73
  49. package/src/renderer/i18n.js +38 -0
  50. package/src/renderer/index.html +448 -407
  51. package/src/renderer/renderer.js +897 -42
  52. package/src/renderer/style.css +275 -11
@@ -180,7 +180,8 @@ body {
180
180
  #langBtn,
181
181
  #storeBtn,
182
182
  #gitBtn,
183
- #ideBtn {
183
+ #ideBtn,
184
+ #studioBtn {
184
185
  background: none;
185
186
  border: none;
186
187
  color: var(--muted);
@@ -198,13 +199,18 @@ body {
198
199
  #langBtn:hover,
199
200
  #storeBtn:hover,
200
201
  #gitBtn:hover,
201
- #ideBtn:hover { background: var(--panel2); color: var(--text); }
202
+ #ideBtn:hover,
203
+ #studioBtn:hover { background: var(--panel2); color: var(--text); }
202
204
  #gearBtn:focus,
203
205
  #themeBtn:focus,
204
206
  #langBtn:focus,
205
207
  #storeBtn:focus,
206
208
  #gitBtn:focus,
207
- #ideBtn:focus { outline: none; }
209
+ #ideBtn:focus,
210
+ #studioBtn:focus { outline: none; }
211
+ /* aktif mod rozeti: IDE/Studio tuşu basılıyken vurgulanır */
212
+ #ideBtn.on,
213
+ #studioBtn.on { color: var(--accent); background: var(--panel2); }
208
214
 
209
215
  /* model refresh butonu — çekerken döner */
210
216
  #modelRefreshBtn.spin { opacity: .7; pointer-events: none; }
@@ -392,7 +398,7 @@ body.term-open #topbar { width: auto; }
392
398
  display: flex;
393
399
  align-items: center;
394
400
  gap: 8px;
395
- padding: 0 10px;
401
+ padding: 0 148px 0 10px; /* sağ: sabit pencere butonları (win-controls) alanı */
396
402
  border-bottom: 1px solid var(--border);
397
403
  }
398
404
  #termTitle { font-size: 11px; font-weight: 800; letter-spacing: 1px; color: var(--accent); flex: none; }
@@ -503,13 +509,18 @@ body.term-open #settingsOverlay { right: var(--tw, 520px); }
503
509
  .drag-spacer { flex: 1; height: 100%; -webkit-app-region: drag; }
504
510
 
505
511
  /* ---------- custom pencere butonları (native overlay yerine) ----------
506
- Arka plan YOK topbar'ın kendi zemininde yüzüyor; hover'da uygulamanın
507
- kendi accent-dim tonu, kapat Windows alışkanlığıyla kırmızı. */
512
+ PENCERENİN sağ üst köşesine SABİT: tarayıcı/terminal/paralel ajan konsolu
513
+ hangi panel açılırsa açılsın butonlar hep en sağda kalır (panellerin
514
+ başlık satırları bu alanı boş bırakır). Zemin yok — altındaki yüzeyde
515
+ yüzür; hover'da accent-dim, kapat kırmızı. */
508
516
  .win-controls {
517
+ position: fixed;
518
+ top: 0;
519
+ right: 0;
520
+ z-index: 100;
509
521
  display: flex;
510
522
  align-items: center;
511
- height: 100%;
512
- margin-left: -4px;
523
+ height: 46px;
513
524
  -webkit-app-region: no-drag;
514
525
  }
515
526
  .win-controls button {
@@ -1805,7 +1816,7 @@ body.browser-open #settingsDialog { width: min(70vw, calc(100vw - var(--bw, 480p
1805
1816
  display: flex;
1806
1817
  align-items: center;
1807
1818
  gap: 8px;
1808
- padding: 12px 12px 10px 16px;
1819
+ padding: 12px 148px 10px 16px; /* sağ: sabit pencere butonları (win-controls) alanı */
1809
1820
  font-weight: 800;
1810
1821
  letter-spacing: 1px;
1811
1822
  font-size: 13px;
@@ -2930,10 +2941,10 @@ body.ide-mode.editor-hidden #ideRow #bcPanel { flex: 1 1 auto; min-width: 0; }
2930
2941
  background: var(--text);
2931
2942
  }
2932
2943
 
2933
- /* ---------- dosya ağacı sağ tık menüsü ---------- */
2944
+ /* ---------- dosya ağacı + uygulama geneli sağ tık menüsü ---------- */
2934
2945
  #fileCtxMenu {
2935
2946
  position: fixed;
2936
- z-index: 70;
2947
+ z-index: 110; /* tüm modal/overlay'ların ÜSTÜNDE (setup 90, win-controls 100) */
2937
2948
  min-width: 150px;
2938
2949
  background: var(--panel);
2939
2950
  border: 1px solid var(--border);
@@ -2951,6 +2962,7 @@ body.ide-mode.editor-hidden #ideRow #bcPanel { flex: 1 1 auto; min-width: 0; }
2951
2962
  }
2952
2963
  .ctx-item:hover { background: var(--panel2); }
2953
2964
  .ctx-item.danger { color: var(--err); }
2965
+ .ctx-item.disabled { opacity: 0.4; pointer-events: none; }
2954
2966
 
2955
2967
  /* ---------- SKILLS STORE ---------- */
2956
2968
 
@@ -3381,3 +3393,255 @@ body.browser-open #ghOverlay { right: var(--bw, 480px); }
3381
3393
  text-overflow: ellipsis;
3382
3394
  white-space: nowrap;
3383
3395
  }
3396
+
3397
+ /* ================= BEAST STUDIO MODU =================
3398
+ Beast Code ile AYRI dünya: sol → klasör konsolu (başlığında BEAST STUDIO),
3399
+ sağ → [chat | video bölümü]. Sohbet oturumları Studio'ya özeldir; chat
3400
+ geçmişi ve Beast Code paneliyle ASLA paylaşılmaz. */
3401
+
3402
+ /* STUDIO modunda sol taraf: sohbet geçmişi yerine klasör konsolu —
3403
+ başlıkta "BEAST STUDIO" yazar (Beast Code/Agent değil) */
3404
+ body.studio-mode #newChat,
3405
+ body.studio-mode #sessList,
3406
+ body.studio-mode #botBar { display: none; }
3407
+ body.studio-mode #filePanel {
3408
+ display: flex;
3409
+ flex: 1;
3410
+ width: auto;
3411
+ min-width: 0;
3412
+ border-right: none;
3413
+ }
3414
+ body.studio-mode #filePanelTitle { display: inline; }
3415
+ body.studio-mode #filePreview { display: none; } /* preview statik-site aracı — studio'da yer yok */
3416
+ /* STUDIO modunda orta: sohbet + composer gizli, IDE satırı gizli */
3417
+ body.studio-mode #chatScroll,
3418
+ body.studio-mode #composerWrap,
3419
+ body.studio-mode #ideRow { display: none; }
3420
+
3421
+ #studioRow { display: none; flex: 1; min-height: 0; }
3422
+ body.studio-mode #studioRow { display: flex; flex-direction: row; }
3423
+
3424
+ #stPanel {
3425
+ display: flex;
3426
+ flex-direction: column;
3427
+ min-height: 0;
3428
+ min-width: 300px;
3429
+ flex: 0 0 var(--stSplit, 480px);
3430
+ background: var(--bg);
3431
+ overflow: hidden;
3432
+ }
3433
+ #stSplit {
3434
+ flex: none;
3435
+ width: 6px;
3436
+ cursor: col-resize;
3437
+ background: var(--border);
3438
+ opacity: 0.55;
3439
+ }
3440
+ #stVideo {
3441
+ display: flex;
3442
+ flex-direction: column;
3443
+ min-height: 0;
3444
+ min-width: 220px;
3445
+ flex: 1;
3446
+ background: var(--bg);
3447
+ overflow: hidden;
3448
+ }
3449
+ #stHead {
3450
+ flex: none;
3451
+ display: flex;
3452
+ align-items: center;
3453
+ gap: 8px;
3454
+ padding: 9px 12px;
3455
+ border-bottom: 1px solid var(--border);
3456
+ background: var(--panel);
3457
+ }
3458
+ #stTitle { font-size: 11px; font-weight: 800; letter-spacing: 1px; color: var(--accent); flex: none; }
3459
+ #stCwd {
3460
+ color: var(--muted);
3461
+ font-family: Consolas, monospace;
3462
+ font-size: 11px;
3463
+ min-width: 0;
3464
+ overflow: hidden;
3465
+ text-overflow: ellipsis;
3466
+ white-space: nowrap;
3467
+ }
3468
+ #stHead button {
3469
+ background: none;
3470
+ border: none;
3471
+ color: var(--muted);
3472
+ font-size: 12px;
3473
+ cursor: pointer;
3474
+ padding: 3px 7px;
3475
+ border-radius: 6px;
3476
+ line-height: 1;
3477
+ flex: none;
3478
+ }
3479
+ #stHead button:hover { background: var(--panel2); color: var(--text); }
3480
+ #stOut {
3481
+ flex: 1;
3482
+ overflow-y: auto;
3483
+ padding: 10px 14px;
3484
+ font-family: Consolas, "Cascadia Mono", monospace;
3485
+ font-size: 12px;
3486
+ line-height: 1.55;
3487
+ }
3488
+ #stTodoWrap { flex: none; }
3489
+ /* Studio todo kartı: Beast Code kartıyla aynı görünüm (bc-todobox sınıfları) */
3490
+ #stTodoWrap {
3491
+ display: flex;
3492
+ justify-content: center;
3493
+ padding: 0 12px;
3494
+ margin-top: -16px;
3495
+ position: relative;
3496
+ z-index: 2;
3497
+ }
3498
+ #stTodoWrap[hidden] { display: none; }
3499
+ #stInputRow {
3500
+ flex: none;
3501
+ display: flex;
3502
+ align-items: flex-end;
3503
+ gap: 6px;
3504
+ padding: 10px 12px;
3505
+ border-top: 1px solid var(--border);
3506
+ background: var(--panel);
3507
+ }
3508
+ #stAttach, #stMic {
3509
+ flex: none;
3510
+ width: 26px;
3511
+ height: 26px;
3512
+ margin-bottom: 5px;
3513
+ border: none;
3514
+ background: var(--panel2);
3515
+ color: var(--muted);
3516
+ border-radius: 7px;
3517
+ cursor: pointer;
3518
+ font-size: 14px;
3519
+ line-height: 1;
3520
+ display: inline-flex;
3521
+ align-items: center;
3522
+ justify-content: center;
3523
+ }
3524
+ #stAttach:hover, #stMic:hover { background: var(--panel); color: var(--accent); }
3525
+ #stMic.rec { color: #e5484d; animation: mic-pulse 1.2s ease-in-out infinite; }
3526
+ #stInput {
3527
+ flex: 1;
3528
+ min-width: 0;
3529
+ background: var(--bg);
3530
+ border: 1px solid var(--border);
3531
+ color: var(--text);
3532
+ border-radius: 7px;
3533
+ padding: 7px 10px;
3534
+ font-family: Consolas, monospace;
3535
+ font-size: 12.5px;
3536
+ outline: none;
3537
+ resize: none;
3538
+ overflow-y: hidden;
3539
+ max-height: 140px;
3540
+ line-height: 1.45;
3541
+ display: block;
3542
+ }
3543
+ #stInput.expand { overflow-y: auto; }
3544
+ #stInput:focus { border-color: var(--accent); }
3545
+ #stStop {
3546
+ flex: none;
3547
+ background: none;
3548
+ border: 1px solid var(--border);
3549
+ color: var(--err);
3550
+ border-radius: 7px;
3551
+ cursor: pointer;
3552
+ font-size: 11px;
3553
+ padding: 4px 8px;
3554
+ line-height: 1;
3555
+ margin-bottom: 3px;
3556
+ }
3557
+ #stStop[hidden] { display: none; }
3558
+ #stStop:hover { border-color: var(--err); }
3559
+ #stStatus {
3560
+ flex: none;
3561
+ align-self: center;
3562
+ margin: 0 12px 6px;
3563
+ padding: 3px 10px;
3564
+ font-size: 11px;
3565
+ color: var(--accent);
3566
+ background: var(--accent-dim);
3567
+ border: 1px solid var(--accent);
3568
+ border-radius: 999px;
3569
+ max-width: calc(100% - 24px);
3570
+ overflow: hidden;
3571
+ text-overflow: ellipsis;
3572
+ white-space: nowrap;
3573
+ }
3574
+ /* Studio eklentileri: dosya paneli araç ikonları da aynı boyutta dursun */
3575
+ #stAttach svg, #stMic svg { display: block; }
3576
+
3577
+ /* ---------- Studio video bölümü ---------- */
3578
+ #stVideoHead {
3579
+ flex: none;
3580
+ display: flex;
3581
+ align-items: center;
3582
+ gap: 8px;
3583
+ padding: 9px 12px;
3584
+ border-bottom: 1px solid var(--border);
3585
+ background: var(--panel);
3586
+ }
3587
+ #stVideoTitle { font-size: 11px; font-weight: 800; letter-spacing: 1px; color: var(--accent); flex: none; }
3588
+ #stVideoName {
3589
+ color: var(--muted);
3590
+ font-family: Consolas, monospace;
3591
+ font-size: 11px;
3592
+ min-width: 0;
3593
+ overflow: hidden;
3594
+ text-overflow: ellipsis;
3595
+ white-space: nowrap;
3596
+ }
3597
+ #stVideoHead button {
3598
+ background: none;
3599
+ border: 1px solid var(--border);
3600
+ color: var(--muted);
3601
+ font-size: 11.5px;
3602
+ cursor: pointer;
3603
+ padding: 3px 8px;
3604
+ border-radius: 6px;
3605
+ line-height: 1.2;
3606
+ flex: none;
3607
+ }
3608
+ #stVideoHead button:hover { background: var(--panel2); color: var(--text); border-color: var(--accent); }
3609
+ #stVideoBody {
3610
+ flex: 1;
3611
+ min-height: 0;
3612
+ display: flex;
3613
+ align-items: center;
3614
+ justify-content: center;
3615
+ background: #000;
3616
+ position: relative;
3617
+ }
3618
+ #stVideoEl {
3619
+ width: 100%;
3620
+ height: 100%;
3621
+ object-fit: contain;
3622
+ background: #000;
3623
+ }
3624
+ #stVideoEl[hidden] { display: none; }
3625
+ #stVideoEmpty {
3626
+ color: #888;
3627
+ font-size: 12px;
3628
+ text-align: center;
3629
+ line-height: 1.7;
3630
+ padding: 16px;
3631
+ user-select: none;
3632
+ }
3633
+ #stVideoBody.dragover::after {
3634
+ content: '⤓ bırak — oynat';
3635
+ position: absolute;
3636
+ inset: 8px;
3637
+ display: flex;
3638
+ align-items: center;
3639
+ justify-content: center;
3640
+ color: var(--accent);
3641
+ border: 2px dashed var(--accent);
3642
+ border-radius: 10px;
3643
+ background: rgba(0, 0, 0, 0.55);
3644
+ font-size: 13px;
3645
+ font-weight: 700;
3646
+ pointer-events: none;
3647
+ }