beast-agent 1.4.2 → 1.5.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 +239 -15
- package/src/agent/llm.js +62 -39
- package/src/main.js +478 -75
- package/src/preload.js +5 -1
- package/src/renderer/i18n.js +12 -2
- package/src/renderer/index.html +30 -7
- package/src/renderer/renderer.js +477 -60
- package/src/renderer/style.css +288 -20
package/src/renderer/style.css
CHANGED
|
@@ -348,6 +348,9 @@ body.rail-hidden #rail { display: none; }
|
|
|
348
348
|
}
|
|
349
349
|
#bbUrl:focus { border-color: var(--accent); }
|
|
350
350
|
#bbClose:hover { color: var(--err); }
|
|
351
|
+
/* telefon modu: aktif buton vurgulu + dar dockta mobil çerçeve hissi */
|
|
352
|
+
#bbPhone.on { color: var(--accent); background: var(--panel2); box-shadow: inset 0 -2px 0 var(--accent); }
|
|
353
|
+
body.phone-mode #bbPhone { color: var(--accent); }
|
|
351
354
|
|
|
352
355
|
/* sürükle-boyutlandır tutamacı (görünmez) */
|
|
353
356
|
#bbResize {
|
|
@@ -1153,6 +1156,59 @@ body.term-open #settingsOverlay { right: var(--tw, 520px); }
|
|
|
1153
1156
|
#micBtn.rec { color: #e5484d; animation: mic-pulse 1.2s ease-in-out infinite; }
|
|
1154
1157
|
@keyframes mic-pulse { 50% { opacity: .45; } }
|
|
1155
1158
|
|
|
1159
|
+
/* Beast Code girişi: + ve mikrofon (chat composer ile aynı stil) */
|
|
1160
|
+
#bcAttach, #bcMic {
|
|
1161
|
+
width: 28px; height: 28px;
|
|
1162
|
+
border-radius: 8px;
|
|
1163
|
+
border: none;
|
|
1164
|
+
cursor: pointer;
|
|
1165
|
+
font-size: 16px;
|
|
1166
|
+
line-height: 1;
|
|
1167
|
+
flex-shrink: 0;
|
|
1168
|
+
background: none;
|
|
1169
|
+
color: var(--muted);
|
|
1170
|
+
display: inline-flex;
|
|
1171
|
+
align-items: center;
|
|
1172
|
+
justify-content: center;
|
|
1173
|
+
padding: 0;
|
|
1174
|
+
}
|
|
1175
|
+
#bcAttach:hover, #bcMic:hover { background: var(--panel); color: var(--accent); }
|
|
1176
|
+
#bcAttach, #bcMic { margin-bottom: 5px; }
|
|
1177
|
+
#bcMic.rec { color: #e5484d; animation: mic-pulse 1.2s ease-in-out infinite; }
|
|
1178
|
+
#bcChips {
|
|
1179
|
+
display: flex;
|
|
1180
|
+
flex-wrap: wrap;
|
|
1181
|
+
gap: 5px;
|
|
1182
|
+
padding: 0 10px 6px;
|
|
1183
|
+
}
|
|
1184
|
+
#bcChips[hidden] { display: none; }
|
|
1185
|
+
#bcChips .chip { font-size: 11.5px; padding: 2px 9px; }
|
|
1186
|
+
|
|
1187
|
+
/* sohbette dosya/resim ekleri: içerik AÇILMADAN kompakt kart */
|
|
1188
|
+
.att-row {
|
|
1189
|
+
display: flex;
|
|
1190
|
+
flex-wrap: wrap;
|
|
1191
|
+
gap: 5px;
|
|
1192
|
+
margin-top: 7px;
|
|
1193
|
+
}
|
|
1194
|
+
.att-chip {
|
|
1195
|
+
display: inline-flex;
|
|
1196
|
+
align-items: center;
|
|
1197
|
+
gap: 5px;
|
|
1198
|
+
background: var(--panel2);
|
|
1199
|
+
border: 1px solid var(--border);
|
|
1200
|
+
border-radius: 999px;
|
|
1201
|
+
padding: 2px 10px;
|
|
1202
|
+
font-size: 11.5px;
|
|
1203
|
+
color: var(--text);
|
|
1204
|
+
max-width: 260px;
|
|
1205
|
+
overflow: hidden;
|
|
1206
|
+
text-overflow: ellipsis;
|
|
1207
|
+
white-space: nowrap;
|
|
1208
|
+
}
|
|
1209
|
+
.msg-user .att-chip { background: var(--bg); }
|
|
1210
|
+
.att-chip.att-img { border-style: dashed; }
|
|
1211
|
+
|
|
1156
1212
|
#input {
|
|
1157
1213
|
flex: 1;
|
|
1158
1214
|
background: none;
|
|
@@ -1313,8 +1369,8 @@ body.browser-open #settingsDialog { width: min(70vw, calc(100vw - var(--bw, 480p
|
|
|
1313
1369
|
}
|
|
1314
1370
|
|
|
1315
1371
|
#setTabs {
|
|
1316
|
-
width:
|
|
1317
|
-
min-width:
|
|
1372
|
+
width: 210px;
|
|
1373
|
+
min-width: 210px;
|
|
1318
1374
|
background: var(--panel);
|
|
1319
1375
|
border-right: 1px solid var(--border);
|
|
1320
1376
|
display: flex;
|
|
@@ -1404,6 +1460,15 @@ body.browser-open #settingsDialog { width: min(70vw, calc(100vw - var(--bw, 480p
|
|
|
1404
1460
|
font-size: 13px;
|
|
1405
1461
|
}
|
|
1406
1462
|
#setClose:hover { color: var(--err); border-color: var(--err); background: rgba(19, 19, 21, 0.05); }
|
|
1463
|
+
/* kapat butonunun altında küçük + ortalı sürüm etiketi */
|
|
1464
|
+
.set-version {
|
|
1465
|
+
margin-top: 8px;
|
|
1466
|
+
text-align: center;
|
|
1467
|
+
font-size: 11px;
|
|
1468
|
+
letter-spacing: 0.5px;
|
|
1469
|
+
opacity: 0.55;
|
|
1470
|
+
user-select: text;
|
|
1471
|
+
}
|
|
1407
1472
|
|
|
1408
1473
|
#setContent { flex: 1; overflow-y: auto; padding: 22px 26px; }
|
|
1409
1474
|
.pane {
|
|
@@ -1432,6 +1497,9 @@ body.browser-open #settingsDialog { width: min(70vw, calc(100vw - var(--bw, 480p
|
|
|
1432
1497
|
background: var(--panel);
|
|
1433
1498
|
}
|
|
1434
1499
|
.prov-row:hover { border-color: var(--accent); }
|
|
1500
|
+
/* dil kartları: aktif seçim vurgusu */
|
|
1501
|
+
.lang-row.active { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
|
|
1502
|
+
.lang-row.active:hover { border-color: var(--accent); }
|
|
1435
1503
|
.prov-row.active { border-color: var(--accent); background: var(--accent-dim); }
|
|
1436
1504
|
.prov-name { font-weight: 700; font-size: 13px; }
|
|
1437
1505
|
.prov-model { color: var(--muted); font-size: 12px; font-family: Consolas, monospace; }
|
|
@@ -2161,6 +2229,7 @@ body.browser-open #botOverlay { right: var(--bw, 480px); }
|
|
|
2161
2229
|
border-right: 1px solid var(--border);
|
|
2162
2230
|
flex-direction: column;
|
|
2163
2231
|
overflow: hidden;
|
|
2232
|
+
position: relative;
|
|
2164
2233
|
}
|
|
2165
2234
|
/* IDE modunda sol taraf: sohbet geçmişi yerine klasör sistemi */
|
|
2166
2235
|
body.ide-mode #newChat,
|
|
@@ -2235,7 +2304,6 @@ body.ide-mode #bcPanel { display: flex; }
|
|
|
2235
2304
|
border-top: 1px solid var(--border);
|
|
2236
2305
|
background: var(--panel);
|
|
2237
2306
|
}
|
|
2238
|
-
#bcPrompt { color: var(--accent); font-family: Consolas, monospace; font-size: 12px; font-weight: 700; flex: none; padding-bottom: 7px; }
|
|
2239
2307
|
/* otomatik büyüyen chat input'u: satır sonunda alt satıra iner, alan açılır;
|
|
2240
2308
|
tavanı (140px ≈ 6 satır) aşarsa kendi içinde scroll'a döner */
|
|
2241
2309
|
#bcInput {
|
|
@@ -2461,6 +2529,73 @@ body.ide-mode #bcPanel { display: flex; }
|
|
|
2461
2529
|
text-overflow: ellipsis;
|
|
2462
2530
|
}
|
|
2463
2531
|
#fileTree { flex: 1; overflow-y: auto; padding: 6px 4px; }
|
|
2532
|
+
/* görev listesi + geri alma paneli (dosya paneli başlığından açılır) */
|
|
2533
|
+
#tasksPanel {
|
|
2534
|
+
position: absolute;
|
|
2535
|
+
top: 62px;
|
|
2536
|
+
left: 8px;
|
|
2537
|
+
right: 8px;
|
|
2538
|
+
max-height: 62%;
|
|
2539
|
+
overflow-y: auto;
|
|
2540
|
+
background: var(--panel);
|
|
2541
|
+
border: 1px solid var(--border);
|
|
2542
|
+
border-radius: 10px;
|
|
2543
|
+
box-shadow: 0 12px 30px rgba(0, 0, 0, 0.28);
|
|
2544
|
+
z-index: 45;
|
|
2545
|
+
padding: 4px;
|
|
2546
|
+
}
|
|
2547
|
+
#tasksPanel[hidden] { display: none; }
|
|
2548
|
+
#fileTasks.on { color: var(--accent); }
|
|
2549
|
+
.tsk-head {
|
|
2550
|
+
display: flex;
|
|
2551
|
+
align-items: center;
|
|
2552
|
+
gap: 6px;
|
|
2553
|
+
padding: 5px 7px 7px;
|
|
2554
|
+
font-size: 10.5px;
|
|
2555
|
+
font-weight: 800;
|
|
2556
|
+
letter-spacing: 1px;
|
|
2557
|
+
color: var(--muted);
|
|
2558
|
+
}
|
|
2559
|
+
.tsk-head button {
|
|
2560
|
+
margin-left: auto;
|
|
2561
|
+
background: none;
|
|
2562
|
+
border: 1px solid var(--border);
|
|
2563
|
+
border-radius: 6px;
|
|
2564
|
+
color: var(--muted);
|
|
2565
|
+
font-size: 10.5px;
|
|
2566
|
+
padding: 2px 8px;
|
|
2567
|
+
cursor: pointer;
|
|
2568
|
+
letter-spacing: 0;
|
|
2569
|
+
}
|
|
2570
|
+
.tsk-head button:hover { color: var(--text); border-color: var(--accent); }
|
|
2571
|
+
.tsk-head button[disabled] { opacity: 0.35; cursor: default; }
|
|
2572
|
+
.tsk-row {
|
|
2573
|
+
display: flex;
|
|
2574
|
+
align-items: center;
|
|
2575
|
+
gap: 6px;
|
|
2576
|
+
padding: 5px 7px;
|
|
2577
|
+
border-radius: 7px;
|
|
2578
|
+
font-size: 12px;
|
|
2579
|
+
}
|
|
2580
|
+
.tsk-row:hover { background: var(--panel2); }
|
|
2581
|
+
.tsk-id { flex: none; font-family: Consolas, monospace; font-size: 11px; color: var(--accent); font-weight: 700; }
|
|
2582
|
+
.tsk-title { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
2583
|
+
.tsk-st { flex: none; font-size: 11px; color: var(--muted); }
|
|
2584
|
+
.tsk-st.done { color: #16a34a; }
|
|
2585
|
+
.tsk-st.active { color: var(--accent); }
|
|
2586
|
+
.tsk-undo {
|
|
2587
|
+
flex: none;
|
|
2588
|
+
background: none;
|
|
2589
|
+
border: 1px solid var(--border);
|
|
2590
|
+
border-radius: 6px;
|
|
2591
|
+
color: var(--muted);
|
|
2592
|
+
font-size: 11px;
|
|
2593
|
+
padding: 2px 7px;
|
|
2594
|
+
cursor: pointer;
|
|
2595
|
+
}
|
|
2596
|
+
.tsk-undo:hover { color: var(--err); border-color: var(--err); }
|
|
2597
|
+
.tsk-undo[disabled] { opacity: 0.35; cursor: default; }
|
|
2598
|
+
.tsk-empty { padding: 8px 10px; font-size: 12px; color: var(--muted); }
|
|
2464
2599
|
.file-row {
|
|
2465
2600
|
display: flex;
|
|
2466
2601
|
align-items: center;
|
|
@@ -2591,7 +2726,90 @@ body.ide-mode.editor-hidden #ideRow #bcPanel { flex: 1 1 auto; min-width: 0; }
|
|
|
2591
2726
|
line-height: 1.4;
|
|
2592
2727
|
}
|
|
2593
2728
|
#codeSave:hover { color: var(--accent); border-color: var(--accent); background: var(--panel2); }
|
|
2594
|
-
#
|
|
2729
|
+
#codeDiffBtn {
|
|
2730
|
+
flex: none;
|
|
2731
|
+
background: none;
|
|
2732
|
+
border: 1px solid var(--border);
|
|
2733
|
+
border-radius: 7px;
|
|
2734
|
+
color: var(--muted);
|
|
2735
|
+
cursor: pointer;
|
|
2736
|
+
font-size: 11.5px;
|
|
2737
|
+
padding: 4px 10px;
|
|
2738
|
+
line-height: 1.4;
|
|
2739
|
+
}
|
|
2740
|
+
#codeDiffBtn:hover { color: var(--accent); border-color: var(--accent); background: var(--panel2); }
|
|
2741
|
+
#codeBody { flex: 1; display: flex; min-height: 0; position: relative; }
|
|
2742
|
+
/* canlı diff katmanı: textarea'nın ARKASINDA satır satır yeşil/kırmızı boya —
|
|
2743
|
+
metin birebir aynı yazıldığı için satırlar birebir üst üste gelir */
|
|
2744
|
+
#codeLayer {
|
|
2745
|
+
position: absolute;
|
|
2746
|
+
top: 0; bottom: 0;
|
|
2747
|
+
left: 57px; right: 0;
|
|
2748
|
+
margin: 0;
|
|
2749
|
+
padding: 12px 14px;
|
|
2750
|
+
font-family: Consolas, "Cascadia Mono", monospace;
|
|
2751
|
+
font-size: 12.5px;
|
|
2752
|
+
line-height: 20px;
|
|
2753
|
+
white-space: pre;
|
|
2754
|
+
overflow: hidden;
|
|
2755
|
+
pointer-events: none;
|
|
2756
|
+
z-index: 0;
|
|
2757
|
+
color: transparent;
|
|
2758
|
+
user-select: none;
|
|
2759
|
+
}
|
|
2760
|
+
#codeLayer .row { display: block; min-height: 20px; }
|
|
2761
|
+
#codeLayer .row.add {
|
|
2762
|
+
background: rgba(34, 197, 94, 0.18);
|
|
2763
|
+
box-shadow: inset 3px 0 0 #22c55e;
|
|
2764
|
+
}
|
|
2765
|
+
#codeLayer .row.mod {
|
|
2766
|
+
background: rgba(239, 68, 68, 0.12);
|
|
2767
|
+
box-shadow: inset 3px 0 0 #ef4444;
|
|
2768
|
+
}
|
|
2769
|
+
#codeLayer .row.find {
|
|
2770
|
+
background: rgba(250, 204, 21, 0.22);
|
|
2771
|
+
box-shadow: inset 3px 0 0 #eab308;
|
|
2772
|
+
}
|
|
2773
|
+
/* kod içi arama widget'ı (Shift+F) — editörün sağ üstünde yüzer */
|
|
2774
|
+
#codeFind {
|
|
2775
|
+
position: absolute;
|
|
2776
|
+
top: 6px;
|
|
2777
|
+
right: 14px;
|
|
2778
|
+
z-index: 7;
|
|
2779
|
+
display: flex;
|
|
2780
|
+
align-items: center;
|
|
2781
|
+
gap: 3px;
|
|
2782
|
+
background: var(--panel);
|
|
2783
|
+
border: 1px solid var(--border);
|
|
2784
|
+
border-radius: 8px;
|
|
2785
|
+
padding: 3px 6px;
|
|
2786
|
+
box-shadow: 0 6px 18px rgba(0, 0, 0, 0.25);
|
|
2787
|
+
}
|
|
2788
|
+
#codeFind[hidden] { display: none; }
|
|
2789
|
+
#codeFindInp {
|
|
2790
|
+
width: 170px;
|
|
2791
|
+
background: var(--bg);
|
|
2792
|
+
border: 1px solid var(--border);
|
|
2793
|
+
color: var(--text);
|
|
2794
|
+
border-radius: 6px;
|
|
2795
|
+
font-size: 12px;
|
|
2796
|
+
padding: 3px 7px;
|
|
2797
|
+
outline: none;
|
|
2798
|
+
font-family: Consolas, "Cascadia Mono", monospace;
|
|
2799
|
+
}
|
|
2800
|
+
#codeFindInp:focus { border-color: var(--accent); }
|
|
2801
|
+
#codeFindCount { font-size: 11px; color: var(--muted); min-width: 40px; text-align: center; }
|
|
2802
|
+
#codeFind button {
|
|
2803
|
+
background: none;
|
|
2804
|
+
border: none;
|
|
2805
|
+
color: var(--muted);
|
|
2806
|
+
cursor: pointer;
|
|
2807
|
+
font-size: 13px;
|
|
2808
|
+
padding: 2px 5px;
|
|
2809
|
+
border-radius: 5px;
|
|
2810
|
+
line-height: 1;
|
|
2811
|
+
}
|
|
2812
|
+
#codeFind button:hover { background: var(--panel2); color: var(--text); }
|
|
2595
2813
|
#codeGutter {
|
|
2596
2814
|
flex: none;
|
|
2597
2815
|
width: 56px;
|
|
@@ -2631,7 +2849,7 @@ body.ide-mode.editor-hidden #ideRow #bcPanel { flex: 1 1 auto; min-width: 0; }
|
|
|
2631
2849
|
resize: none;
|
|
2632
2850
|
border: none;
|
|
2633
2851
|
outline: none;
|
|
2634
|
-
background:
|
|
2852
|
+
background: transparent;
|
|
2635
2853
|
color: var(--text);
|
|
2636
2854
|
padding: 12px 14px;
|
|
2637
2855
|
font-family: Consolas, "Cascadia Mono", monospace;
|
|
@@ -2639,7 +2857,57 @@ body.ide-mode.editor-hidden #ideRow #bcPanel { flex: 1 1 auto; min-width: 0; }
|
|
|
2639
2857
|
line-height: 20px;
|
|
2640
2858
|
white-space: pre;
|
|
2641
2859
|
overflow: auto;
|
|
2860
|
+
position: relative;
|
|
2861
|
+
z-index: 1;
|
|
2642
2862
|
}
|
|
2863
|
+
/* okunur diff görünümü: ajan değiştirdiğinde / Diff butonunda açılır —
|
|
2864
|
+
silinen satırlar KIRMIZI, eklenenler YEŞİL (chat diffView gibi, metinle birlikte) */
|
|
2865
|
+
#codeDiffView {
|
|
2866
|
+
position: absolute;
|
|
2867
|
+
inset: 0;
|
|
2868
|
+
z-index: 6;
|
|
2869
|
+
display: flex;
|
|
2870
|
+
flex-direction: column;
|
|
2871
|
+
background: var(--bg);
|
|
2872
|
+
}
|
|
2873
|
+
#codeDiffView[hidden] { display: none; }
|
|
2874
|
+
#codeDiffBar {
|
|
2875
|
+
flex: none;
|
|
2876
|
+
display: flex;
|
|
2877
|
+
align-items: center;
|
|
2878
|
+
gap: 8px;
|
|
2879
|
+
padding: 5px 10px;
|
|
2880
|
+
border-bottom: 1px solid var(--border);
|
|
2881
|
+
background: var(--panel);
|
|
2882
|
+
font-size: 11.5px;
|
|
2883
|
+
color: var(--muted);
|
|
2884
|
+
}
|
|
2885
|
+
#codeDiffBar button {
|
|
2886
|
+
background: none;
|
|
2887
|
+
border: 1px solid var(--border);
|
|
2888
|
+
border-radius: 6px;
|
|
2889
|
+
color: var(--muted);
|
|
2890
|
+
font-size: 11px;
|
|
2891
|
+
padding: 2px 8px;
|
|
2892
|
+
cursor: pointer;
|
|
2893
|
+
}
|
|
2894
|
+
#codeDiffBar button:hover { color: var(--text); border-color: var(--accent); }
|
|
2895
|
+
#codeDiffStats .plus { color: #16a34a; font-weight: 700; }
|
|
2896
|
+
#codeDiffStats .minus { color: #dc2626; font-weight: 700; }
|
|
2897
|
+
#codeDiffRows {
|
|
2898
|
+
flex: 1;
|
|
2899
|
+
overflow: auto;
|
|
2900
|
+
font-family: Consolas, "Cascadia Mono", monospace;
|
|
2901
|
+
font-size: 12.5px;
|
|
2902
|
+
line-height: 20px;
|
|
2903
|
+
padding: 6px 0;
|
|
2904
|
+
}
|
|
2905
|
+
#codeDiffRows .dr { display: flex; white-space: pre; padding: 0 10px; min-height: 20px; }
|
|
2906
|
+
#codeDiffRows .dr .sign { flex: none; width: 16px; text-align: center; user-select: none; opacity: 0.75; }
|
|
2907
|
+
#codeDiffRows .dr .num { flex: none; width: 38px; text-align: right; padding-right: 8px; color: var(--muted); opacity: 0.7; user-select: none; }
|
|
2908
|
+
#codeDiffRows .dr .tx { white-space: pre; }
|
|
2909
|
+
#codeDiffRows .dr.del { background: rgba(239, 68, 68, 0.16); box-shadow: inset 3px 0 0 #ef4444; }
|
|
2910
|
+
#codeDiffRows .dr.add { background: rgba(34, 197, 94, 0.18); box-shadow: inset 3px 0 0 #22c55e; }
|
|
2643
2911
|
/* dikey scrollbar hep görünür, tutulabilir ve imleç değişsin */
|
|
2644
2912
|
#codeTa::-webkit-scrollbar {
|
|
2645
2913
|
width: 12px;
|
|
@@ -3094,19 +3362,19 @@ body.browser-open #ghOverlay { right: var(--bw, 480px); }
|
|
|
3094
3362
|
text-align: center;
|
|
3095
3363
|
}
|
|
3096
3364
|
|
|
3097
|
-
/* Beast Code durum balonu: dusunuyor… / arac adlari — inputun ustunde */
|
|
3098
|
-
#bcStatus {
|
|
3099
|
-
flex: none;
|
|
3100
|
-
align-self:
|
|
3101
|
-
margin: 0 12px 6px;
|
|
3102
|
-
padding:
|
|
3103
|
-
font-size: 11px;
|
|
3104
|
-
color: var(--
|
|
3105
|
-
background: var(--
|
|
3106
|
-
border: 1px solid var(--
|
|
3107
|
-
border-radius: 999px;
|
|
3108
|
-
max-width: calc(100% - 24px);
|
|
3109
|
-
overflow: hidden;
|
|
3110
|
-
text-overflow: ellipsis;
|
|
3111
|
-
white-space: nowrap;
|
|
3365
|
+
/* Beast Code durum balonu: dusunuyor… / arac adlari — inputun ustunde ORTALI (chat statusPill gibi) */
|
|
3366
|
+
#bcStatus {
|
|
3367
|
+
flex: none;
|
|
3368
|
+
align-self: center;
|
|
3369
|
+
margin: 0 12px 6px;
|
|
3370
|
+
padding: 3px 10px;
|
|
3371
|
+
font-size: 11px;
|
|
3372
|
+
color: var(--accent);
|
|
3373
|
+
background: var(--accent-dim);
|
|
3374
|
+
border: 1px solid var(--accent);
|
|
3375
|
+
border-radius: 999px;
|
|
3376
|
+
max-width: calc(100% - 24px);
|
|
3377
|
+
overflow: hidden;
|
|
3378
|
+
text-overflow: ellipsis;
|
|
3379
|
+
white-space: nowrap;
|
|
3112
3380
|
}
|