beast-agent 2.2.1 → 2.3.1
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 +7 -1
- package/src/agent/edgetts.js +201 -0
- package/src/agent/engine.js +93 -1
- package/src/agent/nightref.js +404 -0
- package/src/main.js +890 -57
- package/src/preload.js +7 -2
- package/src/renderer/handsfree.js +633 -0
- package/src/renderer/i18n.js +30 -6
- package/src/renderer/index.html +21 -7
- package/src/renderer/renderer.js +472 -83
- package/src/renderer/style.css +114 -24
package/src/renderer/style.css
CHANGED
|
@@ -66,9 +66,14 @@ body {
|
|
|
66
66
|
color: var(--text);
|
|
67
67
|
font-size: 14px;
|
|
68
68
|
overflow: hidden;
|
|
69
|
+
/* pencere = dikey kolon: [içerik (#app)] + [alt terminal] — terminal
|
|
70
|
+
overlay DEĞİL, akışın parçası; içerik kendiliğinden yukarı küçülür */
|
|
71
|
+
display: flex;
|
|
72
|
+
flex-direction: column;
|
|
73
|
+
height: 100vh;
|
|
69
74
|
}
|
|
70
75
|
|
|
71
|
-
#app { display: flex; height:
|
|
76
|
+
#app { display: flex; flex: 1 1 auto; min-height: 0; }
|
|
72
77
|
|
|
73
78
|
/* ---------- sidebar ---------- */
|
|
74
79
|
|
|
@@ -357,48 +362,115 @@ body.rail-hidden #rail { display: none; }
|
|
|
357
362
|
/* telefon modu: aktif buton vurgulu + dar dockta mobil çerçeve hissi */
|
|
358
363
|
#bbPhone.on { color: var(--accent); background: var(--panel2); box-shadow: inset 0 -2px 0 var(--accent); }
|
|
359
364
|
body.phone-mode #bbPhone { color: var(--accent); }
|
|
365
|
+
/* mobil önizleme: telefon silueti çerçevesi */
|
|
366
|
+
#bbMobile.on { color: var(--accent); background: var(--panel2); box-shadow: inset 0 -2px 0 var(--accent); }
|
|
367
|
+
body.mobile-preview #bbMobile { color: var(--accent); }
|
|
368
|
+
/* cihaz seçici: telefonun ALTINDA yüzen modern pill picker (konumu renderPhoneFrame) */
|
|
369
|
+
#bbDevice {
|
|
370
|
+
position: fixed;
|
|
371
|
+
display: none;
|
|
372
|
+
z-index: 10000;
|
|
373
|
+
height: 34px;
|
|
374
|
+
padding: 0 34px 0 16px;
|
|
375
|
+
border-radius: 17px;
|
|
376
|
+
border: 1px solid var(--border);
|
|
377
|
+
background-color: var(--panel2);
|
|
378
|
+
color: var(--text);
|
|
379
|
+
font-size: 12px;
|
|
380
|
+
font-weight: 600;
|
|
381
|
+
letter-spacing: .2px;
|
|
382
|
+
outline: none;
|
|
383
|
+
appearance: none;
|
|
384
|
+
-webkit-appearance: none;
|
|
385
|
+
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23888890' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
|
|
386
|
+
background-repeat: no-repeat;
|
|
387
|
+
background-position: right 14px center;
|
|
388
|
+
box-shadow: 0 6px 18px rgba(0, 0, 0, .3);
|
|
389
|
+
}
|
|
390
|
+
#bbDevice:hover { border-color: var(--accent); }
|
|
391
|
+
#bbDevice:focus { border-color: var(--accent); }
|
|
392
|
+
|
|
393
|
+
/* ---------- MOBİL ÖNİZLEME: telefon silueti çerçevesi ----------
|
|
394
|
+
WebContentsView ekranın kendisidir (main'deki PHONE_* sabitleriyle birebir);
|
|
395
|
+
çerçeve/çentik/durum çubuğu/home bar DOM'da çizilir — pointer-events yok,
|
|
396
|
+
native view'a asla dokunmaz (kenar şeritleri view sınırlarının dışındadır) */
|
|
397
|
+
#phoneFrame {
|
|
398
|
+
position: fixed;
|
|
399
|
+
display: none;
|
|
400
|
+
pointer-events: none;
|
|
401
|
+
z-index: 9999;
|
|
402
|
+
box-sizing: border-box; /* border rect sınırlarının İÇİNDE kalır — view ile birebir hizalı */
|
|
403
|
+
border: 12px solid #0a0a0e;
|
|
404
|
+
border-radius: 42px;
|
|
405
|
+
filter: drop-shadow(0 12px 32px rgba(0, 0, 0, .55));
|
|
406
|
+
}
|
|
407
|
+
#phoneFrame .pf-home {
|
|
408
|
+
/* alt kenar çerçeve bandının İÇİNDE — native view'ın dışında, görünür */
|
|
409
|
+
position: absolute;
|
|
410
|
+
bottom: -9px; left: 50%;
|
|
411
|
+
transform: translateX(-50%);
|
|
412
|
+
width: 38%; height: 4px;
|
|
413
|
+
border-radius: 3px;
|
|
414
|
+
background: rgba(255, 255, 255, .8);
|
|
415
|
+
}
|
|
360
416
|
|
|
361
417
|
/* sürükle-boyutlandır tutamacı (görünmez) */
|
|
418
|
+
/* Beast Code chat ↔ tarayıcı arası ayırıcı: ideSplit ile BİREBİR aynı çizgi
|
|
419
|
+
(6px, border rengi, col-resize). Görünmez genişletilmiş tutma alanı yok —
|
|
420
|
+
çizginin kendisi hem görsel hem tutamaçtır. */
|
|
362
421
|
#bbResize {
|
|
363
422
|
position: fixed;
|
|
364
423
|
top: 46px;
|
|
365
424
|
right: var(--bw, 480px);
|
|
366
|
-
width:
|
|
425
|
+
width: 6px;
|
|
367
426
|
height: calc(100vh - 46px);
|
|
368
427
|
cursor: col-resize;
|
|
428
|
+
background: var(--border);
|
|
429
|
+
opacity: 0.55;
|
|
369
430
|
z-index: 60;
|
|
431
|
+
transition: opacity 0.15s, background 0.15s;
|
|
432
|
+
}
|
|
433
|
+
#bbResize::before {
|
|
434
|
+
/* çizginin solundaki görünmez genişletilmiş tutma alanı (kolay kavrama) */
|
|
435
|
+
content: '';
|
|
436
|
+
position: absolute;
|
|
437
|
+
top: 0; bottom: 0; left: -10px;
|
|
438
|
+
width: 10px;
|
|
439
|
+
}
|
|
440
|
+
#bbResize:hover,
|
|
441
|
+
body.bb-dragging #bbResize {
|
|
442
|
+
opacity: 1; /* renk DEĞİŞMEZ — sadece netleşir */
|
|
370
443
|
}
|
|
371
444
|
body.bb-dragging { user-select: none; }
|
|
372
445
|
body.bb-dragging * { cursor: col-resize !important; }
|
|
373
446
|
|
|
374
|
-
/* ---------- terminal panel (
|
|
447
|
+
/* ---------- terminal panel (ALT DOCK — akışın parçası, overlay değil) ---------- */
|
|
375
448
|
|
|
376
449
|
#termBtn.on { background: var(--accent-dim); color: var(--accent); }
|
|
377
450
|
|
|
378
|
-
|
|
379
|
-
body.term-open #
|
|
451
|
+
/* tarayıcı dock'u terminal payını boşaltır (main view yüksekliğini kısaltır) */
|
|
452
|
+
body.term-open #bbResize { height: calc(100vh - 46px - var(--th, 180px)); }
|
|
380
453
|
|
|
381
454
|
#termPanel {
|
|
382
|
-
position:
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
width: var(--tw, 520px);
|
|
455
|
+
position: relative;
|
|
456
|
+
flex: 0 0 auto;
|
|
457
|
+
height: var(--th, 180px);
|
|
458
|
+
min-height: 0;
|
|
387
459
|
display: flex;
|
|
388
460
|
flex-direction: column;
|
|
389
461
|
background: var(--panel);
|
|
390
|
-
border-
|
|
462
|
+
border-top: 1px solid var(--border);
|
|
391
463
|
z-index: 55;
|
|
392
464
|
}
|
|
393
465
|
#termPanel[hidden] { display: none; }
|
|
394
466
|
|
|
395
467
|
#termHead {
|
|
396
|
-
height:
|
|
468
|
+
height: 38px;
|
|
397
469
|
flex: none;
|
|
398
470
|
display: flex;
|
|
399
471
|
align-items: center;
|
|
400
472
|
gap: 8px;
|
|
401
|
-
padding: 0
|
|
473
|
+
padding: 0 10px;
|
|
402
474
|
border-bottom: 1px solid var(--border);
|
|
403
475
|
}
|
|
404
476
|
#termTitle { font-size: 11px; font-weight: 800; letter-spacing: 1px; color: var(--accent); flex: none; }
|
|
@@ -483,19 +555,17 @@ body.term-open #topbar { width: auto; }
|
|
|
483
555
|
#termStop:hover { border-color: var(--err); }
|
|
484
556
|
|
|
485
557
|
#termResize {
|
|
486
|
-
position:
|
|
487
|
-
top:
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
height:
|
|
491
|
-
cursor:
|
|
492
|
-
z-index:
|
|
558
|
+
position: absolute;
|
|
559
|
+
top: -5px;
|
|
560
|
+
left: 0;
|
|
561
|
+
right: 0;
|
|
562
|
+
height: 10px;
|
|
563
|
+
cursor: row-resize;
|
|
564
|
+
z-index: 62;
|
|
493
565
|
}
|
|
566
|
+
#termResize:hover { background: var(--accent-dim); }
|
|
494
567
|
body.term-dragging { user-select: none; }
|
|
495
|
-
body.term-dragging * { cursor:
|
|
496
|
-
|
|
497
|
-
body.term-open .mini-overlay { right: var(--tw, 520px); }
|
|
498
|
-
body.term-open #settingsOverlay { right: var(--tw, 520px); }
|
|
568
|
+
body.term-dragging * { cursor: row-resize !important; }
|
|
499
569
|
|
|
500
570
|
#topbar {
|
|
501
571
|
height: 46px;
|
|
@@ -1170,6 +1240,20 @@ body.term-open #settingsOverlay { right: var(--tw, 520px); }
|
|
|
1170
1240
|
/* composer sol grubu: + mikrofon — yanyana boşluksuz */
|
|
1171
1241
|
#composerLeft { display: flex; align-items: center; gap: 0; flex-shrink: 0; }
|
|
1172
1242
|
|
|
1243
|
+
#ttsBtn {
|
|
1244
|
+
width: 32px; height: 32px;
|
|
1245
|
+
border-radius: 9px;
|
|
1246
|
+
border: none;
|
|
1247
|
+
cursor: pointer;
|
|
1248
|
+
font-size: 17px;
|
|
1249
|
+
line-height: 1;
|
|
1250
|
+
flex-shrink: 0;
|
|
1251
|
+
background: none;
|
|
1252
|
+
color: var(--muted);
|
|
1253
|
+
}
|
|
1254
|
+
#ttsBtn:hover { background: var(--panel); color: var(--accent); }
|
|
1255
|
+
#ttsBtn.on { color: var(--ok); background: var(--accent-dim); }
|
|
1256
|
+
|
|
1173
1257
|
#micBtn {
|
|
1174
1258
|
width: 32px; height: 32px;
|
|
1175
1259
|
border-radius: 9px;
|
|
@@ -1184,6 +1268,8 @@ body.term-open #settingsOverlay { right: var(--tw, 520px); }
|
|
|
1184
1268
|
#micBtn:hover { background: var(--panel); color: var(--accent); }
|
|
1185
1269
|
#micBtn.rec { color: #e5484d; animation: mic-pulse 1.2s ease-in-out infinite; }
|
|
1186
1270
|
@keyframes mic-pulse { 50% { opacity: .45; } }
|
|
1271
|
+
/* eller-serbest mod: dinlerken .rec (kırmızı nabız), aktif ama dinlemezken .hf (vurgu) */
|
|
1272
|
+
#micBtn.hf, #bcMic.hf, #stMic.hf { color: var(--accent); animation: mic-pulse 2.4s ease-in-out infinite; }
|
|
1187
1273
|
|
|
1188
1274
|
/* Beast Code girişi: + ve mikrofon (chat composer ile aynı stil) */
|
|
1189
1275
|
#bcAttach, #bcMic {
|
|
@@ -2652,6 +2738,10 @@ body.ide-mode #codePane { display: flex; }
|
|
|
2652
2738
|
cursor: col-resize;
|
|
2653
2739
|
background: var(--border);
|
|
2654
2740
|
opacity: 0.55;
|
|
2741
|
+
transition: opacity 0.15s;
|
|
2742
|
+
}
|
|
2743
|
+
#ideSplit:hover {
|
|
2744
|
+
opacity: 1; /* renk DEĞİŞMEZ — sadece netleşir */
|
|
2655
2745
|
}
|
|
2656
2746
|
/* editör kapatılabilir: kod bölmesi + ayırıcı gizlenir, Beast Code tam genişlik */
|
|
2657
2747
|
body.ide-mode.editor-hidden #codePane,
|