beast-agent 2.11.0 → 2.13.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/package.json +1 -1
- package/src/agent/engine.js +34 -0
- package/src/agent/headroom.js +279 -0
- package/src/agent/llm.js +17 -1
- package/src/agent/tools.js +15 -0
- package/src/main.js +586 -7
- package/src/preload.js +18 -0
- package/src/renderer/i18n.js +6 -2
- package/src/renderer/index.html +62 -3
- package/src/renderer/renderer.js +734 -89
- package/src/renderer/style.css +322 -0
package/src/renderer/style.css
CHANGED
|
@@ -2315,8 +2315,61 @@ body.ide-mode #composerWrap { display: none; }
|
|
|
2315
2315
|
flex-direction: column;
|
|
2316
2316
|
overflow: hidden;
|
|
2317
2317
|
background: var(--bg);
|
|
2318
|
+
position: relative;
|
|
2318
2319
|
}
|
|
2319
2320
|
body.ide-mode #bcPanel { display: flex; }
|
|
2321
|
+
|
|
2322
|
+
/* ---------- Expo Go QR kartı (Beast Code) ---------- */
|
|
2323
|
+
#bcQrCard {
|
|
2324
|
+
position: absolute;
|
|
2325
|
+
right: 14px;
|
|
2326
|
+
bottom: 74px;
|
|
2327
|
+
z-index: 40;
|
|
2328
|
+
width: 232px;
|
|
2329
|
+
padding: 10px;
|
|
2330
|
+
background: var(--panel);
|
|
2331
|
+
border: 1px solid var(--border);
|
|
2332
|
+
border-radius: 12px;
|
|
2333
|
+
box-shadow: 0 10px 34px rgba(0, 0, 0, 0.45);
|
|
2334
|
+
}
|
|
2335
|
+
.bq-head {
|
|
2336
|
+
display: flex;
|
|
2337
|
+
align-items: center;
|
|
2338
|
+
justify-content: space-between;
|
|
2339
|
+
font-size: 10px;
|
|
2340
|
+
letter-spacing: 2px;
|
|
2341
|
+
font-weight: 800;
|
|
2342
|
+
color: var(--muted);
|
|
2343
|
+
margin-bottom: 6px;
|
|
2344
|
+
}
|
|
2345
|
+
#bcQrClose {
|
|
2346
|
+
background: none;
|
|
2347
|
+
border: none;
|
|
2348
|
+
color: var(--muted);
|
|
2349
|
+
font-size: 14px;
|
|
2350
|
+
cursor: pointer;
|
|
2351
|
+
line-height: 1;
|
|
2352
|
+
padding: 0 2px;
|
|
2353
|
+
}
|
|
2354
|
+
#bcQrClose:hover { color: var(--text); }
|
|
2355
|
+
#bcQrImg {
|
|
2356
|
+
width: 100%;
|
|
2357
|
+
display: block;
|
|
2358
|
+
border-radius: 8px;
|
|
2359
|
+
background: #fff;
|
|
2360
|
+
padding: 6px;
|
|
2361
|
+
image-rendering: pixelated;
|
|
2362
|
+
}
|
|
2363
|
+
#bcQrUrl {
|
|
2364
|
+
font-family: Consolas, monospace;
|
|
2365
|
+
font-size: 10px;
|
|
2366
|
+
color: var(--accent);
|
|
2367
|
+
margin-top: 6px;
|
|
2368
|
+
white-space: nowrap;
|
|
2369
|
+
overflow: hidden;
|
|
2370
|
+
text-overflow: ellipsis;
|
|
2371
|
+
}
|
|
2372
|
+
.bq-hint { font-size: 10.5px; color: var(--muted); margin-top: 4px; text-align: center; }
|
|
2320
2373
|
#bcHead {
|
|
2321
2374
|
flex: none;
|
|
2322
2375
|
display: flex;
|
|
@@ -3581,6 +3634,275 @@ body.studio-mode #ideRow { display: none; }
|
|
|
3581
3634
|
#studioRow { display: none; flex: 1; min-height: 0; }
|
|
3582
3635
|
body.studio-mode #studioRow { display: flex; flex-direction: row; }
|
|
3583
3636
|
|
|
3637
|
+
/* ================= BEAST SANDBOX MODU =================
|
|
3638
|
+
Studio düzeniyle birebir: sol → repo dosya konsolu (filePanel yeniden
|
|
3639
|
+
kullanılır), ortada CHAT, sağda ÇALIŞTIR (yönetilen süreç). Sohbet
|
|
3640
|
+
oturumları Sandbox'a özeldir; chat geçmişi ve Code/Studio ile paylaşılmaz. */
|
|
3641
|
+
body.sandbox-mode #newChat,
|
|
3642
|
+
body.sandbox-mode #sessList,
|
|
3643
|
+
body.sandbox-mode #botBar { display: none; }
|
|
3644
|
+
body.sandbox-mode #filePanel {
|
|
3645
|
+
display: flex;
|
|
3646
|
+
flex: 1;
|
|
3647
|
+
width: auto;
|
|
3648
|
+
min-width: 0;
|
|
3649
|
+
border-right: none;
|
|
3650
|
+
}
|
|
3651
|
+
body.sandbox-mode #filePanelTitle { display: inline; }
|
|
3652
|
+
body.sandbox-mode #filePreview { display: none; }
|
|
3653
|
+
body.sandbox-mode #bcHistWrap { display: none; }
|
|
3654
|
+
/* SANDBOX modunda orta: sohbet + composer + diğer mod satırları gizli */
|
|
3655
|
+
body.sandbox-mode #chatScroll,
|
|
3656
|
+
body.sandbox-mode #composerWrap,
|
|
3657
|
+
body.sandbox-mode #ideRow,
|
|
3658
|
+
body.sandbox-mode #studioRow { display: none; }
|
|
3659
|
+
|
|
3660
|
+
#sandboxRow { display: none; flex: 1; min-height: 0; }
|
|
3661
|
+
body.sandbox-mode #sandboxRow { display: flex; flex-direction: row; }
|
|
3662
|
+
|
|
3663
|
+
#sbPanel {
|
|
3664
|
+
display: flex;
|
|
3665
|
+
flex-direction: column;
|
|
3666
|
+
min-height: 0;
|
|
3667
|
+
min-width: 300px;
|
|
3668
|
+
flex: 0 0 var(--sbSplit, 480px);
|
|
3669
|
+
background: var(--bg);
|
|
3670
|
+
overflow: hidden;
|
|
3671
|
+
}
|
|
3672
|
+
#sbRun {
|
|
3673
|
+
display: flex;
|
|
3674
|
+
flex-direction: column;
|
|
3675
|
+
min-height: 0;
|
|
3676
|
+
min-width: 240px;
|
|
3677
|
+
flex: 1;
|
|
3678
|
+
background: var(--bg);
|
|
3679
|
+
overflow: hidden;
|
|
3680
|
+
border-left: 1px solid var(--border);
|
|
3681
|
+
}
|
|
3682
|
+
|
|
3683
|
+
#sbHead {
|
|
3684
|
+
flex: none;
|
|
3685
|
+
display: flex;
|
|
3686
|
+
align-items: center;
|
|
3687
|
+
gap: 6px;
|
|
3688
|
+
padding: 9px 12px;
|
|
3689
|
+
border-bottom: 1px solid var(--border);
|
|
3690
|
+
background: var(--panel);
|
|
3691
|
+
}
|
|
3692
|
+
#sbTitle { font-size: 11px; font-weight: 800; letter-spacing: 1px; color: var(--accent); flex: none; }
|
|
3693
|
+
#sbRepo {
|
|
3694
|
+
flex: 1;
|
|
3695
|
+
min-width: 0;
|
|
3696
|
+
background: var(--panel2);
|
|
3697
|
+
border: 1px solid var(--border);
|
|
3698
|
+
color: var(--text);
|
|
3699
|
+
font-size: 12px;
|
|
3700
|
+
padding: 4px 6px;
|
|
3701
|
+
border-radius: 6px;
|
|
3702
|
+
}
|
|
3703
|
+
#sbHead button {
|
|
3704
|
+
background: none;
|
|
3705
|
+
border: none;
|
|
3706
|
+
color: var(--muted);
|
|
3707
|
+
font-size: 13px;
|
|
3708
|
+
cursor: pointer;
|
|
3709
|
+
padding: 3px 7px;
|
|
3710
|
+
border-radius: 6px;
|
|
3711
|
+
}
|
|
3712
|
+
#sbHead button:hover { background: var(--panel2); color: var(--text); }
|
|
3713
|
+
#sbRemove:hover { color: var(--err); }
|
|
3714
|
+
|
|
3715
|
+
#sbCloneRow {
|
|
3716
|
+
flex: none;
|
|
3717
|
+
display: flex;
|
|
3718
|
+
gap: 6px;
|
|
3719
|
+
padding: 8px 12px;
|
|
3720
|
+
border-bottom: 1px solid var(--border);
|
|
3721
|
+
}
|
|
3722
|
+
#sbCloneInput {
|
|
3723
|
+
flex: 1;
|
|
3724
|
+
min-width: 0;
|
|
3725
|
+
background: var(--panel2);
|
|
3726
|
+
border: 1px solid var(--border);
|
|
3727
|
+
color: var(--text);
|
|
3728
|
+
font-size: 12px;
|
|
3729
|
+
padding: 5px 8px;
|
|
3730
|
+
border-radius: 6px;
|
|
3731
|
+
}
|
|
3732
|
+
#sbCloneInput:focus { border-color: var(--accent); outline: none; }
|
|
3733
|
+
#sbCloneRow button {
|
|
3734
|
+
flex: none;
|
|
3735
|
+
background: var(--panel2);
|
|
3736
|
+
border: 1px solid var(--border);
|
|
3737
|
+
color: var(--text);
|
|
3738
|
+
font-size: 12px;
|
|
3739
|
+
padding: 4px 9px;
|
|
3740
|
+
border-radius: 6px;
|
|
3741
|
+
cursor: pointer;
|
|
3742
|
+
}
|
|
3743
|
+
#sbCloneRow button:hover { border-color: var(--accent); }
|
|
3744
|
+
|
|
3745
|
+
#sbOut {
|
|
3746
|
+
flex: 1;
|
|
3747
|
+
min-height: 0;
|
|
3748
|
+
overflow-y: auto;
|
|
3749
|
+
padding: 10px 12px;
|
|
3750
|
+
font-family: Consolas, monospace;
|
|
3751
|
+
font-size: 12px;
|
|
3752
|
+
line-height: 1.5;
|
|
3753
|
+
white-space: pre-wrap;
|
|
3754
|
+
word-break: break-word;
|
|
3755
|
+
}
|
|
3756
|
+
#sbStatus {
|
|
3757
|
+
flex: none;
|
|
3758
|
+
align-self: center;
|
|
3759
|
+
margin: 0 12px 6px;
|
|
3760
|
+
padding: 3px 10px;
|
|
3761
|
+
font-size: 11px;
|
|
3762
|
+
color: var(--accent);
|
|
3763
|
+
background: var(--accent-dim);
|
|
3764
|
+
border: 1px solid var(--accent);
|
|
3765
|
+
border-radius: 999px;
|
|
3766
|
+
max-width: calc(100% - 24px);
|
|
3767
|
+
overflow: hidden;
|
|
3768
|
+
text-overflow: ellipsis;
|
|
3769
|
+
white-space: nowrap;
|
|
3770
|
+
}
|
|
3771
|
+
#sbInputRow {
|
|
3772
|
+
flex: none;
|
|
3773
|
+
display: flex;
|
|
3774
|
+
gap: 6px;
|
|
3775
|
+
align-items: flex-end;
|
|
3776
|
+
padding: 8px 12px;
|
|
3777
|
+
border-top: 1px solid var(--border);
|
|
3778
|
+
background: var(--panel);
|
|
3779
|
+
}
|
|
3780
|
+
#sbInput {
|
|
3781
|
+
flex: 1;
|
|
3782
|
+
min-width: 0;
|
|
3783
|
+
resize: none;
|
|
3784
|
+
background: var(--panel2);
|
|
3785
|
+
border: 1px solid var(--border);
|
|
3786
|
+
color: var(--text);
|
|
3787
|
+
font-size: 12.5px;
|
|
3788
|
+
padding: 7px 9px;
|
|
3789
|
+
border-radius: 8px;
|
|
3790
|
+
font-family: inherit;
|
|
3791
|
+
}
|
|
3792
|
+
#sbInput:focus { border-color: var(--accent); outline: none; }
|
|
3793
|
+
#sbInput.expand { overflow-y: auto; }
|
|
3794
|
+
|
|
3795
|
+
/* ---------- ÇALIŞTIR bölmesi ---------- */
|
|
3796
|
+
#sbRunHead {
|
|
3797
|
+
flex: none;
|
|
3798
|
+
display: flex;
|
|
3799
|
+
align-items: center;
|
|
3800
|
+
gap: 10px;
|
|
3801
|
+
padding: 9px 12px;
|
|
3802
|
+
border-bottom: 1px solid var(--border);
|
|
3803
|
+
background: var(--panel);
|
|
3804
|
+
}
|
|
3805
|
+
#sbRunTitle { font-size: 11px; font-weight: 800; letter-spacing: 1px; color: var(--accent); flex: none; }
|
|
3806
|
+
#sbRunCwd {
|
|
3807
|
+
color: var(--muted);
|
|
3808
|
+
font-family: Consolas, monospace;
|
|
3809
|
+
font-size: 11px;
|
|
3810
|
+
min-width: 0;
|
|
3811
|
+
overflow: hidden;
|
|
3812
|
+
text-overflow: ellipsis;
|
|
3813
|
+
white-space: nowrap;
|
|
3814
|
+
}
|
|
3815
|
+
#sbRunBtns {
|
|
3816
|
+
flex: none;
|
|
3817
|
+
display: flex;
|
|
3818
|
+
gap: 6px;
|
|
3819
|
+
padding: 8px 12px;
|
|
3820
|
+
border-bottom: 1px solid var(--border);
|
|
3821
|
+
flex-wrap: wrap;
|
|
3822
|
+
}
|
|
3823
|
+
#sbRunBtns button {
|
|
3824
|
+
background: var(--panel2);
|
|
3825
|
+
border: 1px solid var(--border);
|
|
3826
|
+
color: var(--text);
|
|
3827
|
+
font-size: 12px;
|
|
3828
|
+
padding: 5px 10px;
|
|
3829
|
+
border-radius: 6px;
|
|
3830
|
+
cursor: pointer;
|
|
3831
|
+
}
|
|
3832
|
+
#sbRunBtns button:hover { border-color: var(--accent); }
|
|
3833
|
+
#sbRunStop { background: var(--err) !important; color: #fff !important; border-color: var(--err) !important; }
|
|
3834
|
+
#sbRunCustom {
|
|
3835
|
+
flex: none;
|
|
3836
|
+
display: flex;
|
|
3837
|
+
gap: 6px;
|
|
3838
|
+
padding: 8px 12px;
|
|
3839
|
+
border-bottom: 1px solid var(--border);
|
|
3840
|
+
}
|
|
3841
|
+
#sbRunCmd {
|
|
3842
|
+
flex: 1;
|
|
3843
|
+
min-width: 0;
|
|
3844
|
+
background: var(--panel2);
|
|
3845
|
+
border: 1px solid var(--border);
|
|
3846
|
+
color: var(--text);
|
|
3847
|
+
font-family: Consolas, monospace;
|
|
3848
|
+
font-size: 12px;
|
|
3849
|
+
padding: 5px 8px;
|
|
3850
|
+
border-radius: 6px;
|
|
3851
|
+
}
|
|
3852
|
+
#sbRunCmd:focus { border-color: var(--accent); outline: none; }
|
|
3853
|
+
#sbRunCustom button {
|
|
3854
|
+
flex: none;
|
|
3855
|
+
background: var(--panel2);
|
|
3856
|
+
border: 1px solid var(--border);
|
|
3857
|
+
color: var(--text);
|
|
3858
|
+
font-size: 12px;
|
|
3859
|
+
padding: 4px 10px;
|
|
3860
|
+
border-radius: 6px;
|
|
3861
|
+
cursor: pointer;
|
|
3862
|
+
}
|
|
3863
|
+
#sbRunCustom button:hover { border-color: var(--accent); }
|
|
3864
|
+
#sbRunOut {
|
|
3865
|
+
flex: 1;
|
|
3866
|
+
min-height: 0;
|
|
3867
|
+
overflow-y: auto;
|
|
3868
|
+
padding: 10px 12px;
|
|
3869
|
+
font-family: Consolas, monospace;
|
|
3870
|
+
font-size: 12px;
|
|
3871
|
+
line-height: 1.45;
|
|
3872
|
+
white-space: pre-wrap;
|
|
3873
|
+
word-break: break-word;
|
|
3874
|
+
background: var(--panel);
|
|
3875
|
+
}
|
|
3876
|
+
#sbRunFoot {
|
|
3877
|
+
flex: none;
|
|
3878
|
+
display: flex;
|
|
3879
|
+
align-items: center;
|
|
3880
|
+
gap: 8px;
|
|
3881
|
+
padding: 8px 12px;
|
|
3882
|
+
border-top: 1px solid var(--border);
|
|
3883
|
+
background: var(--panel);
|
|
3884
|
+
}
|
|
3885
|
+
#sbRunOpen {
|
|
3886
|
+
background: var(--panel2);
|
|
3887
|
+
border: 1px solid var(--border);
|
|
3888
|
+
color: var(--text);
|
|
3889
|
+
font-size: 12px;
|
|
3890
|
+
padding: 4px 10px;
|
|
3891
|
+
border-radius: 6px;
|
|
3892
|
+
cursor: pointer;
|
|
3893
|
+
}
|
|
3894
|
+
#sbRunOpen:hover:not([disabled]) { border-color: var(--accent); }
|
|
3895
|
+
#sbRunOpen[disabled] { opacity: 0.4; cursor: default; }
|
|
3896
|
+
#sbRunUrl {
|
|
3897
|
+
color: var(--muted);
|
|
3898
|
+
font-family: Consolas, monospace;
|
|
3899
|
+
font-size: 11px;
|
|
3900
|
+
min-width: 0;
|
|
3901
|
+
overflow: hidden;
|
|
3902
|
+
text-overflow: ellipsis;
|
|
3903
|
+
white-space: nowrap;
|
|
3904
|
+
}
|
|
3905
|
+
|
|
3584
3906
|
#stPanel {
|
|
3585
3907
|
display: flex;
|
|
3586
3908
|
flex-direction: column;
|