beast-agent 0.20.0 → 0.22.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.
@@ -164,7 +164,8 @@ body {
164
164
  #gearBtn,
165
165
  #themeBtn,
166
166
  #langBtn,
167
- #storeBtn {
167
+ #storeBtn,
168
+ #ideBtn {
168
169
  background: none;
169
170
  border: none;
170
171
  color: var(--muted);
@@ -178,7 +179,13 @@ body {
178
179
  #gearBtn:hover,
179
180
  #themeBtn:hover,
180
181
  #langBtn:hover,
181
- #storeBtn:hover { background: var(--panel2); color: var(--text); }
182
+ #storeBtn:hover,
183
+ #ideBtn:hover { background: var(--panel2); color: var(--text); }
184
+ #gearBtn:focus,
185
+ #themeBtn:focus,
186
+ #langBtn:focus,
187
+ #storeBtn:focus,
188
+ #ideBtn:focus { outline: none; }
182
189
 
183
190
  /* model refresh butonu — çekerken döner */
184
191
  #modelRefreshBtn.spin { opacity: .7; pointer-events: none; }
@@ -261,6 +268,11 @@ body.browser-open #app { margin-right: var(--bw, 480px); }
261
268
  body.browser-open #topbar { width: auto; }
262
269
 
263
270
  #browserBtn.on { background: var(--accent-dim); color: var(--accent); }
271
+
272
+ /* göz ikonu: gizli modda çapraz çizgi + soluk, görünür modda normal */
273
+ #eyeBtn .eye-slash { display: none; }
274
+ #eyeBtn:not(.on) .eye-slash { display: block; }
275
+ #eyeBtn:not(.on) { opacity: 0.55; }
264
276
  #eyeBtn.on { background: var(--accent-dim); color: var(--accent); }
265
277
 
266
278
  /* #19 sağ panel (paralel ajan konsolu) aç/kapa */
@@ -747,6 +759,52 @@ body.term-open #settingsOverlay { right: var(--tw, 520px); }
747
759
  @keyframes blink { 50% { opacity: 0; } }
748
760
 
749
761
  /* tool cards */
762
+ /* ard arda araç çağrıları tek kutuda toplanır; çalışırken lacivert outline döner */
763
+ .tool-box {
764
+ position: relative;
765
+ margin: 8px 0 12px;
766
+ border: 1px solid var(--border);
767
+ border-radius: 10px;
768
+ background: var(--panel);
769
+ overflow: hidden;
770
+ }
771
+ .tool-box.running {
772
+ border-color: transparent;
773
+ box-shadow: 0 0 12px rgba(37, 99, 235, 0.4);
774
+ }
775
+ .tool-box.running::before {
776
+ content: '';
777
+ position: absolute;
778
+ inset: 0;
779
+ border-radius: 10px;
780
+ padding: 3px;
781
+ background: conic-gradient(
782
+ from var(--bc-angle),
783
+ rgba(37, 99, 235, 0) 0deg,
784
+ rgba(37, 99, 235, 0) 220deg,
785
+ #1d4ed8 300deg,
786
+ #2563eb 330deg,
787
+ #60a5fa 350deg,
788
+ rgba(37, 99, 235, 0) 360deg
789
+ );
790
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
791
+ -webkit-mask-composite: xor;
792
+ mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
793
+ mask-composite: exclude;
794
+ animation: bc-ring-spin 2.4s linear infinite;
795
+ pointer-events: none;
796
+ }
797
+ .tool-boxbody {
798
+ max-height: 420px;
799
+ overflow-y: auto;
800
+ }
801
+ .tool-box .tool-card {
802
+ margin: 0;
803
+ border: none;
804
+ border-radius: 0;
805
+ border-bottom: 1px dashed var(--border);
806
+ }
807
+ .tool-box .tool-card:last-child { border-bottom: none; }
750
808
  .tool-card {
751
809
  border: 1px solid var(--border);
752
810
  border-radius: 9px;
@@ -1857,6 +1915,470 @@ body.browser-open #botOverlay { right: var(--bw, 480px); }
1857
1915
  }
1858
1916
 
1859
1917
 
1918
+ /* ---------- IDE MODU ---------- */
1919
+
1920
+ #filePanel {
1921
+ display: none;
1922
+ width: 250px;
1923
+ min-width: 250px;
1924
+ background: var(--panel);
1925
+ border-right: 1px solid var(--border);
1926
+ flex-direction: column;
1927
+ overflow: hidden;
1928
+ }
1929
+ /* IDE modunda sol taraf: sohbet geçmişi yerine klasör sistemi */
1930
+ body.ide-mode #newChat,
1931
+ body.ide-mode #sessList,
1932
+ body.ide-mode #botBar { display: none; }
1933
+ body.ide-mode #filePanel {
1934
+ display: flex;
1935
+ flex: 1;
1936
+ width: auto;
1937
+ min-width: 0;
1938
+ border-right: none;
1939
+ }
1940
+ /* IDE modunda sağdaki paralel ajan paneli kapalı */
1941
+ body.ide-mode #rail { display: none; }
1942
+ /* IDE modunda ortadaki sohbet yerine Beast Code paneli */
1943
+ body.ide-mode #chatScroll,
1944
+ body.ide-mode #composerWrap { display: none; }
1945
+ #bcPanel {
1946
+ display: none;
1947
+ flex: 1;
1948
+ min-height: 0;
1949
+ flex-direction: column;
1950
+ overflow: hidden;
1951
+ background: var(--bg);
1952
+ }
1953
+ body.ide-mode #bcPanel { display: flex; }
1954
+ #bcHead {
1955
+ flex: none;
1956
+ display: flex;
1957
+ align-items: center;
1958
+ gap: 8px;
1959
+ padding: 9px 12px;
1960
+ border-bottom: 1px solid var(--border);
1961
+ background: var(--panel);
1962
+ }
1963
+ #bcTitle { font-size: 11px; font-weight: 800; letter-spacing: 1px; color: var(--accent); flex: none; }
1964
+ #bcCwd {
1965
+ color: var(--muted);
1966
+ font-family: Consolas, monospace;
1967
+ font-size: 11px;
1968
+ min-width: 0;
1969
+ overflow: hidden;
1970
+ text-overflow: ellipsis;
1971
+ white-space: nowrap;
1972
+ }
1973
+ #bcHead button {
1974
+ background: none;
1975
+ border: none;
1976
+ color: var(--muted);
1977
+ font-size: 12px;
1978
+ cursor: pointer;
1979
+ padding: 3px 7px;
1980
+ border-radius: 6px;
1981
+ line-height: 1;
1982
+ flex: none;
1983
+ }
1984
+ #bcHead button:hover { background: var(--panel2); color: var(--text); }
1985
+ #bcOut {
1986
+ flex: 1;
1987
+ overflow-y: auto;
1988
+ padding: 10px 14px;
1989
+ font-family: Consolas, "Cascadia Mono", monospace;
1990
+ font-size: 12px;
1991
+ line-height: 1.55;
1992
+ }
1993
+ #bcInputRow {
1994
+ flex: none;
1995
+ display: flex;
1996
+ align-items: center;
1997
+ gap: 6px;
1998
+ padding: 10px 12px;
1999
+ border-top: 1px solid var(--border);
2000
+ background: var(--panel);
2001
+ }
2002
+ #bcPrompt { color: var(--accent); font-family: Consolas, monospace; font-size: 12px; font-weight: 700; flex: none; }
2003
+ #bcInput {
2004
+ flex: 1;
2005
+ min-width: 0;
2006
+ background: var(--bg);
2007
+ border: 1px solid var(--border);
2008
+ color: var(--text);
2009
+ border-radius: 7px;
2010
+ padding: 7px 10px;
2011
+ font-family: Consolas, monospace;
2012
+ font-size: 12.5px;
2013
+ outline: none;
2014
+ }
2015
+ #bcInput:focus { border-color: var(--accent); }
2016
+ #bcStop {
2017
+ flex: none;
2018
+ background: none;
2019
+ border: 1px solid var(--border);
2020
+ color: var(--err);
2021
+ border-radius: 7px;
2022
+ cursor: pointer;
2023
+ font-size: 11px;
2024
+ padding: 4px 8px;
2025
+ line-height: 1;
2026
+ }
2027
+ #bcStop[hidden] { display: none; }
2028
+ #bcStop:hover { border-color: var(--err); }
2029
+
2030
+ /* ---------- Beast Code araç kutuları (read/write/terminal çağrıları) ---------- */
2031
+
2032
+ .bc-toolbox {
2033
+ position: relative;
2034
+ margin: 6px 0;
2035
+ border: 1px solid var(--border);
2036
+ border-radius: 9px;
2037
+ background: var(--panel);
2038
+ overflow: hidden;
2039
+ }
2040
+ /* kutu gövdesi: belli yükseklikte kalır, uzun içerik kutu içinde scroll'lanır */
2041
+ .bc-toolbody {
2042
+ max-height: 420px;
2043
+ overflow-y: auto;
2044
+ }
2045
+ .bc-toolhead {
2046
+ display: flex;
2047
+ align-items: center;
2048
+ gap: 7px;
2049
+ padding: 6px 10px;
2050
+ font-family: Consolas, "Cascadia Mono", monospace;
2051
+ font-size: 11.5px;
2052
+ color: var(--muted);
2053
+ }
2054
+ .bc-toolsection { padding: 2px 0; }
2055
+ .bc-toolsection + .bc-toolsection { border-top: 1px dashed var(--border); }
2056
+ .bc-toolsection.done .bc-toolspin { display: none; }
2057
+ .bc-toolsection.failed .bc-toolname { color: var(--err); }
2058
+ .bc-toolhead .bc-toolname { color: var(--accent); font-weight: 700; flex: none; }
2059
+ .bc-toolhead .bc-toolar {
2060
+ min-width: 0;
2061
+ overflow: hidden;
2062
+ text-overflow: ellipsis;
2063
+ white-space: nowrap;
2064
+ }
2065
+ .bc-toolout {
2066
+ max-height: 180px;
2067
+ overflow-y: auto;
2068
+ border-top: 1px solid var(--border);
2069
+ padding: 7px 10px;
2070
+ font-family: Consolas, "Cascadia Mono", monospace;
2071
+ font-size: 11.5px;
2072
+ line-height: 1.5;
2073
+ white-space: pre-wrap;
2074
+ word-break: break-all;
2075
+ color: var(--text);
2076
+ opacity: 0.92;
2077
+ }
2078
+
2079
+ /* çalışırken kutunun etrafında FOSFORLU AÇIK MAVİ dönen outline */
2080
+ @property --bc-angle {
2081
+ syntax: '<angle>';
2082
+ initial-value: 0deg;
2083
+ inherits: false;
2084
+ }
2085
+ @keyframes bc-ring-spin {
2086
+ to { --bc-angle: 360deg; }
2087
+ }
2088
+ @keyframes bc-spin {
2089
+ to { transform: rotate(360deg); }
2090
+ }
2091
+ .bc-toolbox.running {
2092
+ border-color: transparent;
2093
+ box-shadow: 0 0 12px rgba(37, 99, 235, 0.4);
2094
+ }
2095
+ .bc-toolbox.running::before {
2096
+ content: '';
2097
+ position: absolute;
2098
+ inset: 0;
2099
+ border-radius: 9px;
2100
+ padding: 3px;
2101
+ background: conic-gradient(
2102
+ from var(--bc-angle),
2103
+ rgba(37, 99, 235, 0) 0deg,
2104
+ rgba(37, 99, 235, 0) 220deg,
2105
+ #1d4ed8 300deg,
2106
+ #2563eb 330deg,
2107
+ #60a5fa 350deg,
2108
+ rgba(37, 99, 235, 0) 360deg
2109
+ );
2110
+ -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
2111
+ -webkit-mask-composite: xor;
2112
+ mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
2113
+ mask-composite: exclude;
2114
+ animation: bc-ring-spin 2.4s linear infinite;
2115
+ pointer-events: none;
2116
+ }
2117
+ .bc-toolhead .bc-toolspin {
2118
+ flex: none;
2119
+ width: 11px;
2120
+ height: 11px;
2121
+ border-radius: 50%;
2122
+ border: 2px solid var(--border);
2123
+ border-top-color: #2563eb;
2124
+ animation: bc-spin 0.8s linear infinite;
2125
+ }
2126
+ .bc-toolbox:not(.running) .bc-toolspin { display: none; }
2127
+
2128
+ /* kutu içi ara yazı notu (iş turları arasındaki asistan yorumları) */
2129
+ .bc-toolnote {
2130
+ padding: 5px 12px;
2131
+ font-size: 11.5px;
2132
+ font-style: italic;
2133
+ color: var(--muted);
2134
+ white-space: pre-wrap;
2135
+ word-break: break-word;
2136
+ border-top: 1px dashed var(--border);
2137
+ }
2138
+
2139
+ /* ---------- Beast Code todo kartı (inputun hemen üstünde, ortalı kare) ---------- */
2140
+ #bcTodoWrap {
2141
+ flex: none;
2142
+ display: flex;
2143
+ justify-content: center;
2144
+ padding: 0 12px;
2145
+ margin-top: -16px; /* kartı 1-2 satır yukarı al */
2146
+ position: relative;
2147
+ z-index: 2;
2148
+ }
2149
+ #bcTodoWrap[hidden] { display: none; }
2150
+ .bc-todobox {
2151
+ width: fit-content;
2152
+ min-width: 240px;
2153
+ max-width: min(420px, 92%);
2154
+ border: 1px solid var(--accent-dim);
2155
+ border-radius: 10px;
2156
+ background: var(--panel);
2157
+ overflow: hidden;
2158
+ box-shadow: 0 6px 18px rgba(0, 0, 0, 0.14);
2159
+ }
2160
+ .bc-todotitle {
2161
+ display: flex;
2162
+ align-items: center;
2163
+ justify-content: space-between;
2164
+ padding: 6px 10px;
2165
+ font-size: 10.5px;
2166
+ font-weight: 800;
2167
+ letter-spacing: 2px;
2168
+ color: var(--accent);
2169
+ border-bottom: 1px solid var(--border);
2170
+ }
2171
+ .bc-todocount { color: var(--muted); letter-spacing: 0; font-weight: 700; }
2172
+ .bc-todoitems { padding: 4px 0; }
2173
+ .bc-todoitem {
2174
+ display: flex;
2175
+ align-items: baseline;
2176
+ gap: 8px;
2177
+ padding: 3px 12px;
2178
+ font-size: 12px;
2179
+ color: var(--text);
2180
+ }
2181
+ .bc-todoitem .bc-todocheck { flex: none; width: 14px; text-align: center; color: var(--muted); }
2182
+ .bc-todoitem.active { color: var(--accent); font-weight: 600; }
2183
+ .bc-todoitem.active .bc-todocheck { color: var(--accent); }
2184
+ .bc-todoitem.done { color: var(--muted); }
2185
+ .bc-todoitem.done .bc-todocheck { color: var(--ok, var(--accent)); }
2186
+ .bc-todoitem.done .bc-todotext { text-decoration: line-through; }
2187
+ #filePanelHead {
2188
+ display: flex;
2189
+ align-items: center;
2190
+ gap: 6px;
2191
+ padding: 10px 10px;
2192
+ border-bottom: 1px solid var(--border);
2193
+ }
2194
+ #filePanelTitle { font-size: 11px; letter-spacing: 2px; color: var(--muted); font-weight: 800; }
2195
+ .file-spacer { flex: 1; }
2196
+ #filePanelHead button {
2197
+ background: none;
2198
+ border: 1px solid var(--border);
2199
+ border-radius: 7px;
2200
+ color: var(--muted);
2201
+ cursor: pointer;
2202
+ font-size: 11.5px;
2203
+ padding: 3px 8px;
2204
+ line-height: 1.4;
2205
+ }
2206
+ #filePanelHead button:hover { color: var(--text); background: var(--panel2); }
2207
+ #filePreview { border-color: var(--accent); color: var(--accent); font-weight: 700; }
2208
+ #filePanelPath {
2209
+ font-family: var(--mono, monospace);
2210
+ font-size: 10px;
2211
+ color: var(--muted);
2212
+ padding: 5px 10px;
2213
+ border-bottom: 1px solid var(--border);
2214
+ white-space: nowrap;
2215
+ overflow: hidden;
2216
+ text-overflow: ellipsis;
2217
+ }
2218
+ #fileTree { flex: 1; overflow-y: auto; padding: 6px 4px; }
2219
+ .file-row {
2220
+ display: flex;
2221
+ align-items: center;
2222
+ gap: 6px;
2223
+ padding: 4px 6px;
2224
+ border-radius: 6px;
2225
+ cursor: pointer;
2226
+ font-size: 12.5px;
2227
+ white-space: nowrap;
2228
+ overflow: hidden;
2229
+ }
2230
+ .file-row:hover { background: var(--panel2); }
2231
+ .f-ico { flex: none; font-size: 13px; filter: grayscale(1); opacity: 0.72; }
2232
+ .f-nm { overflow: hidden; text-overflow: ellipsis; }
2233
+ .f-sz { margin-left: auto; font-size: 10px; color: var(--muted); flex: none; }
2234
+ .file-empty { color: var(--muted); font-size: 12px; padding: 12px; }
2235
+
2236
+ /* ---------- IDE MODU: sekmeli kod editörü (VS Code düzeni) ---------- */
2237
+
2238
+ /* IDE modunda ortam: [dosya ağacı | kod sekmeleri | Beast Code] */
2239
+ #ideRow { display: none; flex: 1; min-height: 0; }
2240
+ body.ide-mode #ideRow { display: flex; flex-direction: row; }
2241
+ #codePane {
2242
+ flex: 1;
2243
+ min-width: 0;
2244
+ display: none;
2245
+ flex-direction: column;
2246
+ background: var(--bg);
2247
+ }
2248
+ body.ide-mode #codePane { display: flex; }
2249
+ #ideRow #bcPanel {
2250
+ display: flex;
2251
+ flex: 0 0 var(--ideSplit, 420px);
2252
+ min-width: 280px;
2253
+ border-left: none;
2254
+ }
2255
+ #ideSplit {
2256
+ flex: none;
2257
+ width: 6px;
2258
+ cursor: col-resize;
2259
+ background: var(--border);
2260
+ opacity: 0.55;
2261
+ }
2262
+ #codeTabsBar {
2263
+ flex: none;
2264
+ display: flex;
2265
+ align-items: center;
2266
+ gap: 8px;
2267
+ padding: 0 8px;
2268
+ min-height: 38px;
2269
+ border-bottom: 1px solid var(--border);
2270
+ background: var(--panel);
2271
+ }
2272
+ #codeTabs {
2273
+ display: flex;
2274
+ overflow-x: auto;
2275
+ flex: 1;
2276
+ min-width: 0;
2277
+ }
2278
+ .code-tab {
2279
+ display: flex;
2280
+ align-items: center;
2281
+ gap: 6px;
2282
+ padding: 7px 10px;
2283
+ font-size: 12px;
2284
+ font-family: Consolas, monospace;
2285
+ color: var(--muted);
2286
+ cursor: pointer;
2287
+ white-space: nowrap;
2288
+ border-bottom: 2px solid transparent;
2289
+ }
2290
+ .code-tab:hover { background: var(--panel2); }
2291
+ .code-tab.active {
2292
+ color: var(--text);
2293
+ background: var(--bg);
2294
+ border-bottom-color: var(--accent);
2295
+ }
2296
+ .code-tab .code-tab-x {
2297
+ border: none;
2298
+ background: none;
2299
+ color: var(--muted);
2300
+ cursor: pointer;
2301
+ font-size: 12px;
2302
+ padding: 0 2px;
2303
+ line-height: 1;
2304
+ }
2305
+ .code-tab .code-tab-x:hover { color: var(--err); }
2306
+ .code-tab.dirty .code-tab-name::after { content: ' \25CF'; color: var(--accent); font-size: 10px; }
2307
+ #codePath {
2308
+ flex: none;
2309
+ max-width: 240px;
2310
+ overflow: hidden;
2311
+ text-overflow: ellipsis;
2312
+ white-space: nowrap;
2313
+ font-family: Consolas, monospace;
2314
+ font-size: 11px;
2315
+ color: var(--muted);
2316
+ }
2317
+ #codeSave {
2318
+ flex: none;
2319
+ background: none;
2320
+ border: 1px solid var(--border);
2321
+ border-radius: 7px;
2322
+ color: var(--muted);
2323
+ cursor: pointer;
2324
+ font-size: 11.5px;
2325
+ padding: 4px 10px;
2326
+ line-height: 1.4;
2327
+ }
2328
+ #codeSave:hover { color: var(--accent); border-color: var(--accent); background: var(--panel2); }
2329
+ #codeTa {
2330
+ flex: 1;
2331
+ resize: none;
2332
+ border: none;
2333
+ outline: none;
2334
+ background: var(--bg);
2335
+ color: var(--text);
2336
+ padding: 12px 14px;
2337
+ font-family: Consolas, "Cascadia Mono", monospace;
2338
+ font-size: 12.5px;
2339
+ line-height: 1.55;
2340
+ }
2341
+ /* dikey scrollbar hep görünür, tutulabilir ve imleç değişsin */
2342
+ #codeTa::-webkit-scrollbar {
2343
+ width: 12px;
2344
+ cursor: pointer;
2345
+ }
2346
+ #codeTa::-webkit-scrollbar-track {
2347
+ background: transparent;
2348
+ cursor: pointer;
2349
+ }
2350
+ #codeTa::-webkit-scrollbar-thumb {
2351
+ background: var(--muted);
2352
+ border-radius: 6px;
2353
+ border: 3px solid var(--bg);
2354
+ cursor: pointer;
2355
+ }
2356
+ #codeTa::-webkit-scrollbar-thumb:hover {
2357
+ background: var(--text);
2358
+ }
2359
+
2360
+ /* ---------- dosya ağacı sağ tık menüsü ---------- */
2361
+ #fileCtxMenu {
2362
+ position: fixed;
2363
+ z-index: 70;
2364
+ min-width: 150px;
2365
+ background: var(--panel);
2366
+ border: 1px solid var(--border);
2367
+ border-radius: 9px;
2368
+ padding: 4px;
2369
+ box-shadow: 0 10px 28px rgba(0, 0, 0, 0.22);
2370
+ }
2371
+ #fileCtxMenu[hidden] { display: none; }
2372
+ .ctx-item {
2373
+ padding: 7px 12px;
2374
+ font-size: 12.5px;
2375
+ color: var(--text);
2376
+ cursor: pointer;
2377
+ border-radius: 6px;
2378
+ }
2379
+ .ctx-item:hover { background: var(--panel2); }
2380
+ .ctx-item.danger { color: var(--err); }
2381
+
1860
2382
  /* ---------- SKILLS STORE ---------- */
1861
2383
 
1862
2384
  #storeOverlay {