beast-agent 2.19.1 → 2.21.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/customtools.js +242 -0
- package/src/agent/engine.js +47 -12
- package/src/agent/skills.js +83 -1
- package/src/main.js +47 -6
- package/src/preload.js +5 -0
- package/src/renderer/index.html +56 -2
- package/src/renderer/renderer.js +340 -42
- package/src/renderer/style.css +285 -4
package/src/renderer/style.css
CHANGED
|
@@ -110,15 +110,16 @@ body {
|
|
|
110
110
|
}
|
|
111
111
|
#newChat:hover { background: rgba(19, 19, 21, 0.14); }
|
|
112
112
|
|
|
113
|
-
#sessList { flex: 1; overflow-y: auto; padding: 4px 8px; }
|
|
113
|
+
#sessList { flex: 1 1 0; min-height: 0; overflow-y: auto; padding: 4px 8px; }
|
|
114
114
|
|
|
115
115
|
/* ---------- İZLEYİCİLER paneli (sol kenar çubuğu — sohbet geçmişinin alt yarısı) ----------
|
|
116
|
-
Yalnız agent (chat) modunda görünür; IDE/Studio/Sandbox'ta sessList ile birlikte gizli.
|
|
116
|
+
Yalnız agent (chat) modunda görünür; IDE/Studio/Sandbox'ta sessList ile birlikte gizli.
|
|
117
|
+
Sohbet geçmişi + izleyiciler + toollar EŞİT yer paylaşır (flex 1 1 0). */
|
|
117
118
|
#watchPane {
|
|
118
119
|
display: none;
|
|
119
120
|
flex-direction: column;
|
|
120
|
-
|
|
121
|
-
min-height:
|
|
121
|
+
flex: 1 1 0;
|
|
122
|
+
min-height: 110px;
|
|
122
123
|
border-top: 1px solid var(--border);
|
|
123
124
|
background: var(--panel);
|
|
124
125
|
}
|
|
@@ -2187,6 +2188,66 @@ body.rail-hidden #dmRailHead { padding-right: 148px; }
|
|
|
2187
2188
|
margin-top: 2px;
|
|
2188
2189
|
}
|
|
2189
2190
|
|
|
2191
|
+
/* ---------- AJAN DM modalı (✉) ---------- */
|
|
2192
|
+
#dmOverlay {
|
|
2193
|
+
position: fixed;
|
|
2194
|
+
inset: 0;
|
|
2195
|
+
background: rgba(0, 0, 0, 0.45);
|
|
2196
|
+
z-index: 300;
|
|
2197
|
+
display: flex;
|
|
2198
|
+
align-items: center;
|
|
2199
|
+
justify-content: center;
|
|
2200
|
+
}
|
|
2201
|
+
#dmOverlay[hidden] { display: none; }
|
|
2202
|
+
#dmDialog {
|
|
2203
|
+
width: min(680px, 92vw);
|
|
2204
|
+
max-height: 86vh;
|
|
2205
|
+
display: flex;
|
|
2206
|
+
flex-direction: column;
|
|
2207
|
+
background: var(--panel);
|
|
2208
|
+
border: 1px solid var(--border);
|
|
2209
|
+
border-radius: 12px;
|
|
2210
|
+
padding: 14px 16px;
|
|
2211
|
+
gap: 10px;
|
|
2212
|
+
}
|
|
2213
|
+
#dmDialogHead {
|
|
2214
|
+
display: flex;
|
|
2215
|
+
align-items: center;
|
|
2216
|
+
justify-content: space-between;
|
|
2217
|
+
font-size: 13px;
|
|
2218
|
+
font-weight: 800;
|
|
2219
|
+
letter-spacing: 1px;
|
|
2220
|
+
color: var(--text);
|
|
2221
|
+
}
|
|
2222
|
+
#dmDialogHead button {
|
|
2223
|
+
border: none;
|
|
2224
|
+
background: none;
|
|
2225
|
+
color: var(--muted);
|
|
2226
|
+
cursor: pointer;
|
|
2227
|
+
font-size: 13px;
|
|
2228
|
+
padding: 2px 6px;
|
|
2229
|
+
border-radius: 6px;
|
|
2230
|
+
display: inline-flex;
|
|
2231
|
+
align-items: center;
|
|
2232
|
+
}
|
|
2233
|
+
#dmDialogHead button:hover { color: var(--accent); background: var(--panel2); }
|
|
2234
|
+
#dmDialogHead .bot-bar-btns { display: flex; gap: 4px; }
|
|
2235
|
+
#dmDialogList {
|
|
2236
|
+
flex: 1 1 auto;
|
|
2237
|
+
min-height: 200px;
|
|
2238
|
+
overflow-y: auto;
|
|
2239
|
+
display: flex;
|
|
2240
|
+
flex-direction: column;
|
|
2241
|
+
align-items: stretch;
|
|
2242
|
+
}
|
|
2243
|
+
.dm-hint {
|
|
2244
|
+
flex: none;
|
|
2245
|
+
font-size: 10px;
|
|
2246
|
+
color: var(--muted);
|
|
2247
|
+
text-align: center;
|
|
2248
|
+
letter-spacing: 0.4px;
|
|
2249
|
+
}
|
|
2250
|
+
|
|
2190
2251
|
/* PİYASA satırındaki ▶ ajan butonu */
|
|
2191
2252
|
.fin-sym { position: relative; }
|
|
2192
2253
|
.fin-sym .fs-agent {
|
|
@@ -2274,6 +2335,226 @@ body.rail-hidden #dmRailHead { padding-right: 148px; }
|
|
|
2274
2335
|
letter-spacing: 1.5px;
|
|
2275
2336
|
color: var(--muted);
|
|
2276
2337
|
}
|
|
2338
|
+
|
|
2339
|
+
/* ---------- sol panel: TOOLS konsolu (kişisel araçlar) ----------
|
|
2340
|
+
Sohbet geçmişi + izleyiciler + toollar EŞİT yer paylaşır (flex 1 1 0). */
|
|
2341
|
+
#toolBox {
|
|
2342
|
+
flex: 1 1 0;
|
|
2343
|
+
min-height: 90px;
|
|
2344
|
+
display: none;
|
|
2345
|
+
flex-direction: column;
|
|
2346
|
+
border-top: 1px solid var(--border);
|
|
2347
|
+
padding: 6px 8px 6px;
|
|
2348
|
+
}
|
|
2349
|
+
body:not(.ide-mode):not(.studio-mode):not(.sandbox-mode) #toolBox { display: flex; }
|
|
2350
|
+
#toolBoxHead {
|
|
2351
|
+
display: flex;
|
|
2352
|
+
align-items: center;
|
|
2353
|
+
justify-content: space-between;
|
|
2354
|
+
padding: 2px 2px 6px;
|
|
2355
|
+
font-size: 10.5px;
|
|
2356
|
+
font-weight: 800;
|
|
2357
|
+
letter-spacing: 1.5px;
|
|
2358
|
+
color: var(--muted);
|
|
2359
|
+
}
|
|
2360
|
+
#toolList {
|
|
2361
|
+
flex: 1 1 auto;
|
|
2362
|
+
min-height: 40px;
|
|
2363
|
+
overflow-y: auto;
|
|
2364
|
+
display: flex;
|
|
2365
|
+
flex-direction: column;
|
|
2366
|
+
gap: 2px;
|
|
2367
|
+
}
|
|
2368
|
+
.tool-empty {
|
|
2369
|
+
color: var(--muted);
|
|
2370
|
+
font-size: 10.5px;
|
|
2371
|
+
line-height: 1.5;
|
|
2372
|
+
padding: 6px 2px;
|
|
2373
|
+
}
|
|
2374
|
+
.tool-row {
|
|
2375
|
+
display: flex;
|
|
2376
|
+
align-items: center;
|
|
2377
|
+
gap: 6px;
|
|
2378
|
+
min-width: 0;
|
|
2379
|
+
padding: 3px 4px;
|
|
2380
|
+
border-radius: 6px;
|
|
2381
|
+
cursor: pointer;
|
|
2382
|
+
color: var(--text);
|
|
2383
|
+
}
|
|
2384
|
+
.tool-row:hover { background: var(--panel2); }
|
|
2385
|
+
.tool-dot {
|
|
2386
|
+
flex: none;
|
|
2387
|
+
width: 7px;
|
|
2388
|
+
height: 7px;
|
|
2389
|
+
border-radius: 50%;
|
|
2390
|
+
background: var(--border);
|
|
2391
|
+
}
|
|
2392
|
+
.tool-dot.ok { background: #43c463; }
|
|
2393
|
+
.tool-dot.err { background: var(--err); }
|
|
2394
|
+
.tool-name {
|
|
2395
|
+
flex: 1;
|
|
2396
|
+
min-width: 0;
|
|
2397
|
+
font-size: 12px;
|
|
2398
|
+
font-weight: 600;
|
|
2399
|
+
white-space: nowrap;
|
|
2400
|
+
overflow: hidden;
|
|
2401
|
+
text-overflow: ellipsis;
|
|
2402
|
+
}
|
|
2403
|
+
.tool-btns {
|
|
2404
|
+
flex: none;
|
|
2405
|
+
display: flex;
|
|
2406
|
+
gap: 2px;
|
|
2407
|
+
visibility: hidden;
|
|
2408
|
+
}
|
|
2409
|
+
.tool-row:hover .tool-btns { visibility: visible; }
|
|
2410
|
+
.tool-btns button {
|
|
2411
|
+
border: none;
|
|
2412
|
+
background: none;
|
|
2413
|
+
color: var(--muted);
|
|
2414
|
+
font-size: 11px;
|
|
2415
|
+
cursor: pointer;
|
|
2416
|
+
padding: 2px 5px;
|
|
2417
|
+
border-radius: 4px;
|
|
2418
|
+
}
|
|
2419
|
+
.tool-btns button:hover { background: var(--accent-dim); color: var(--accent); }
|
|
2420
|
+
.tool-btns .tb-del:hover { color: var(--err); background: rgba(220, 60, 60, 0.12); }
|
|
2421
|
+
|
|
2422
|
+
/* ---------- TOOL editör dialogu ---------- */
|
|
2423
|
+
#toolOverlay {
|
|
2424
|
+
position: fixed;
|
|
2425
|
+
inset: 0;
|
|
2426
|
+
background: rgba(0, 0, 0, 0.45);
|
|
2427
|
+
z-index: 300;
|
|
2428
|
+
display: flex;
|
|
2429
|
+
align-items: center;
|
|
2430
|
+
justify-content: center;
|
|
2431
|
+
}
|
|
2432
|
+
#toolOverlay[hidden] { display: none; }
|
|
2433
|
+
#toolDialog {
|
|
2434
|
+
width: min(760px, 92vw);
|
|
2435
|
+
max-height: 88vh;
|
|
2436
|
+
overflow-y: auto;
|
|
2437
|
+
background: var(--panel);
|
|
2438
|
+
border: 1px solid var(--border);
|
|
2439
|
+
border-radius: 12px;
|
|
2440
|
+
padding: 14px 16px;
|
|
2441
|
+
display: flex;
|
|
2442
|
+
flex-direction: column;
|
|
2443
|
+
gap: 10px;
|
|
2444
|
+
}
|
|
2445
|
+
#toolDialogHead {
|
|
2446
|
+
display: flex;
|
|
2447
|
+
align-items: center;
|
|
2448
|
+
justify-content: space-between;
|
|
2449
|
+
font-size: 13px;
|
|
2450
|
+
font-weight: 800;
|
|
2451
|
+
letter-spacing: 1px;
|
|
2452
|
+
color: var(--text);
|
|
2453
|
+
}
|
|
2454
|
+
#toolDialogHead button {
|
|
2455
|
+
border: none;
|
|
2456
|
+
background: none;
|
|
2457
|
+
color: var(--muted);
|
|
2458
|
+
font-size: 13px;
|
|
2459
|
+
cursor: pointer;
|
|
2460
|
+
padding: 2px 6px;
|
|
2461
|
+
border-radius: 6px;
|
|
2462
|
+
}
|
|
2463
|
+
#toolDialogHead button:hover { color: var(--err); background: rgba(220, 60, 60, 0.1); }
|
|
2464
|
+
.tool-form {
|
|
2465
|
+
display: flex;
|
|
2466
|
+
flex-direction: column;
|
|
2467
|
+
gap: 4px;
|
|
2468
|
+
}
|
|
2469
|
+
.tool-form label {
|
|
2470
|
+
font-size: 10.5px;
|
|
2471
|
+
font-weight: 700;
|
|
2472
|
+
letter-spacing: 0.5px;
|
|
2473
|
+
color: var(--muted);
|
|
2474
|
+
margin-top: 4px;
|
|
2475
|
+
}
|
|
2476
|
+
.tool-form input,
|
|
2477
|
+
.tool-form textarea {
|
|
2478
|
+
width: 100%;
|
|
2479
|
+
background: var(--bg);
|
|
2480
|
+
color: var(--text);
|
|
2481
|
+
border: 1px solid var(--border);
|
|
2482
|
+
border-radius: 8px;
|
|
2483
|
+
padding: 7px 9px;
|
|
2484
|
+
font-size: 12px;
|
|
2485
|
+
font-family: Consolas, monospace;
|
|
2486
|
+
}
|
|
2487
|
+
.tool-form input { font-family: inherit; }
|
|
2488
|
+
.tool-form textarea { resize: vertical; min-height: 60px; }
|
|
2489
|
+
.tool-form input:focus,
|
|
2490
|
+
.tool-form textarea:focus { outline: none; border-color: var(--accent); }
|
|
2491
|
+
#toolTestRow {
|
|
2492
|
+
display: flex;
|
|
2493
|
+
gap: 6px;
|
|
2494
|
+
}
|
|
2495
|
+
#toolTestArgs {
|
|
2496
|
+
flex: 1;
|
|
2497
|
+
background: var(--bg);
|
|
2498
|
+
color: var(--text);
|
|
2499
|
+
border: 1px solid var(--border);
|
|
2500
|
+
border-radius: 8px;
|
|
2501
|
+
padding: 7px 9px;
|
|
2502
|
+
font-size: 12px;
|
|
2503
|
+
font-family: Consolas, monospace;
|
|
2504
|
+
}
|
|
2505
|
+
#toolTestArgs:focus { outline: none; border-color: var(--accent); }
|
|
2506
|
+
#toolTestBtn {
|
|
2507
|
+
border: none;
|
|
2508
|
+
background: var(--accent-dim);
|
|
2509
|
+
color: var(--accent);
|
|
2510
|
+
font-weight: 800;
|
|
2511
|
+
font-size: 12px;
|
|
2512
|
+
border-radius: 8px;
|
|
2513
|
+
padding: 7px 12px;
|
|
2514
|
+
cursor: pointer;
|
|
2515
|
+
}
|
|
2516
|
+
#toolTestBtn:hover { filter: brightness(1.1); }
|
|
2517
|
+
#toolTestOut {
|
|
2518
|
+
margin: 0;
|
|
2519
|
+
max-height: 220px;
|
|
2520
|
+
overflow: auto;
|
|
2521
|
+
background: var(--bg);
|
|
2522
|
+
border: 1px solid var(--border);
|
|
2523
|
+
border-radius: 8px;
|
|
2524
|
+
padding: 8px 10px;
|
|
2525
|
+
font-size: 11px;
|
|
2526
|
+
line-height: 1.5;
|
|
2527
|
+
white-space: pre-wrap;
|
|
2528
|
+
word-break: break-word;
|
|
2529
|
+
color: var(--text);
|
|
2530
|
+
}
|
|
2531
|
+
#toolDialogBtns {
|
|
2532
|
+
display: flex;
|
|
2533
|
+
align-items: center;
|
|
2534
|
+
gap: 8px;
|
|
2535
|
+
}
|
|
2536
|
+
.tool-primary {
|
|
2537
|
+
border: none;
|
|
2538
|
+
background: var(--accent);
|
|
2539
|
+
color: #fff;
|
|
2540
|
+
font-weight: 800;
|
|
2541
|
+
font-size: 12.5px;
|
|
2542
|
+
border-radius: 8px;
|
|
2543
|
+
padding: 8px 16px;
|
|
2544
|
+
cursor: pointer;
|
|
2545
|
+
}
|
|
2546
|
+
.tool-primary:hover { filter: brightness(1.08); }
|
|
2547
|
+
.tool-danger {
|
|
2548
|
+
border: none;
|
|
2549
|
+
background: rgba(220, 60, 60, 0.12);
|
|
2550
|
+
color: var(--err);
|
|
2551
|
+
font-weight: 700;
|
|
2552
|
+
font-size: 12px;
|
|
2553
|
+
border-radius: 8px;
|
|
2554
|
+
padding: 8px 14px;
|
|
2555
|
+
cursor: pointer;
|
|
2556
|
+
}
|
|
2557
|
+
.tool-danger:hover { background: rgba(220, 60, 60, 0.2); }
|
|
2277
2558
|
.bot-bar-btns { display: flex; gap: 4px; }
|
|
2278
2559
|
.bot-bar-btns button {
|
|
2279
2560
|
border: none; background: none; color: var(--muted);
|