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.
- package/LICENSE +21 -21
- package/README.md +130 -128
- package/bin/beast-agent.js +137 -137
- package/package.json +1 -1
- package/scripts/fix-electron.js +138 -138
- package/scripts/release.js +137 -131
- package/scripts/swap-electron.js +40 -40
- package/src/agent/agentdefs.js +122 -122
- package/src/agent/bots.js +580 -580
- package/src/agent/bus.js +389 -389
- package/src/agent/computeruse.js +200 -200
- package/src/agent/config.js +284 -284
- package/src/agent/discord.js +332 -332
- package/src/agent/engine.js +85 -11
- package/src/agent/kb.js +123 -123
- package/src/agent/llm.js +430 -430
- package/src/agent/logger.js +90 -90
- package/src/agent/mcp.js +427 -0
- package/src/agent/mem0.js +605 -605
- package/src/agent/memory.js +427 -427
- package/src/agent/mqueue.js +124 -124
- package/src/agent/pdf.js +20 -20
- package/src/agent/research.js +133 -133
- package/src/agent/scripts/news.py +113 -113
- package/src/agent/scripts/stealthsearch.py +30 -30
- package/src/agent/scripts/websearch.py +225 -225
- package/src/agent/searxng.js +325 -325
- package/src/agent/seeds/brainstorming/SKILL.md +90 -90
- package/src/agent/seeds/dispatching-parallel-agents/SKILL.md +120 -120
- package/src/agent/seeds/executing-plans/SKILL.md +60 -60
- package/src/agent/seeds/subagent-driven-development/SKILL.md +167 -167
- package/src/agent/seeds/systematic-debugging/SKILL.md +131 -131
- package/src/agent/seeds/test-driven-development/SKILL.md +152 -152
- package/src/agent/seeds/verification-before-completion/SKILL.md +63 -63
- package/src/agent/seeds/writing-plans/SKILL.md +162 -162
- package/src/agent/seeds/writing-skills/SKILL.md +229 -229
- package/src/agent/skills.js +652 -651
- package/src/agent/store.js +378 -378
- package/src/agent/telegram.js +155 -155
- package/src/agent/tokens.js +39 -39
- package/src/agent/usage.js +125 -125
- package/src/agent/watchers.js +312 -312
- package/src/agent/watext.js +80 -80
- package/src/agent/whatsapp.js +555 -555
- package/src/cron.js +255 -255
- package/src/main.js +385 -6
- package/src/preload.js +13 -0
- package/src/renderer/browserPreload.js +73 -73
- package/src/renderer/i18n.js +38 -0
- package/src/renderer/index.html +448 -407
- package/src/renderer/renderer.js +897 -42
- package/src/renderer/style.css +275 -11
package/src/renderer/style.css
CHANGED
|
@@ -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
|
|
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
|
|
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
|
-
|
|
507
|
-
|
|
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:
|
|
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
|
|
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:
|
|
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
|
+
}
|