beast-agent 1.9.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 -130
  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 +75 -10
  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 -427
  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 -652
  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 +348 -6
  47. package/src/preload.js +9 -0
  48. package/src/renderer/browserPreload.js +73 -73
  49. package/src/renderer/i18n.js +4 -0
  50. package/src/renderer/index.html +448 -409
  51. package/src/renderer/renderer.js +824 -41
  52. package/src/renderer/style.css +264 -5
@@ -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; }
@@ -2935,10 +2941,10 @@ body.ide-mode.editor-hidden #ideRow #bcPanel { flex: 1 1 auto; min-width: 0; }
2935
2941
  background: var(--text);
2936
2942
  }
2937
2943
 
2938
- /* ---------- dosya ağacı sağ tık menüsü ---------- */
2944
+ /* ---------- dosya ağacı + uygulama geneli sağ tık menüsü ---------- */
2939
2945
  #fileCtxMenu {
2940
2946
  position: fixed;
2941
- z-index: 70;
2947
+ z-index: 110; /* tüm modal/overlay'ların ÜSTÜNDE (setup 90, win-controls 100) */
2942
2948
  min-width: 150px;
2943
2949
  background: var(--panel);
2944
2950
  border: 1px solid var(--border);
@@ -2956,6 +2962,7 @@ body.ide-mode.editor-hidden #ideRow #bcPanel { flex: 1 1 auto; min-width: 0; }
2956
2962
  }
2957
2963
  .ctx-item:hover { background: var(--panel2); }
2958
2964
  .ctx-item.danger { color: var(--err); }
2965
+ .ctx-item.disabled { opacity: 0.4; pointer-events: none; }
2959
2966
 
2960
2967
  /* ---------- SKILLS STORE ---------- */
2961
2968
 
@@ -3386,3 +3393,255 @@ body.browser-open #ghOverlay { right: var(--bw, 480px); }
3386
3393
  text-overflow: ellipsis;
3387
3394
  white-space: nowrap;
3388
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
+ }