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/preload.js
CHANGED
|
@@ -139,6 +139,19 @@ contextBridge.exposeInMainWorld('beast', {
|
|
|
139
139
|
fetchModels: (opts) => ipcRenderer.invoke('custom:fetchModels', opts),
|
|
140
140
|
builtinProviders: () => ipcRenderer.invoke('providers:builtin'),
|
|
141
141
|
zenOneClick: () => ipcRenderer.invoke('zen:oneClick'),
|
|
142
|
+
|
|
143
|
+
sandboxList: () => ipcRenderer.invoke('sandbox:list'),
|
|
144
|
+
sandboxClone: (input) => ipcRenderer.invoke('sandbox:clone', input),
|
|
145
|
+
sandboxSend: (payload) => ipcRenderer.invoke('sandbox:send', payload),
|
|
146
|
+
sandboxStop: (payload) => ipcRenderer.invoke('sandbox:stop', payload),
|
|
147
|
+
sandboxNew: (payload) => ipcRenderer.invoke('sandbox:new', payload),
|
|
148
|
+
sandboxRemove: (payload) => ipcRenderer.invoke('sandbox:remove', payload),
|
|
149
|
+
sandboxReveal: (payload) => ipcRenderer.invoke('sandbox:reveal', payload),
|
|
150
|
+
sandboxOpen: (payload) => ipcRenderer.invoke('sandbox:open', payload),
|
|
151
|
+
sandboxTree: (payload) => ipcRenderer.invoke('sandbox:tree', payload),
|
|
152
|
+
sandboxRun: (payload) => ipcRenderer.invoke('sandbox:run', payload),
|
|
153
|
+
sandboxRunStop: () => ipcRenderer.invoke('sandbox:runstop'),
|
|
154
|
+
sandboxOpenUrl: (url) => ipcRenderer.invoke('sandbox:openurl', url),
|
|
142
155
|
waStart: () => ipcRenderer.invoke('wa:start'),
|
|
143
156
|
waStop: () => ipcRenderer.invoke('wa:stop'),
|
|
144
157
|
waReset: () => ipcRenderer.invoke('wa:reset'),
|
|
@@ -209,6 +222,11 @@ contextBridge.exposeInMainWorld('beast', {
|
|
|
209
222
|
idePreview: () => ipcRenderer.invoke('ide:preview'),
|
|
210
223
|
idePreviewFile: (rel) => ipcRenderer.invoke('ide:previewFile', rel),
|
|
211
224
|
idePreviewUrl: (url) => ipcRenderer.invoke('ide:previewUrl', url),
|
|
225
|
+
ideProjInfo: () => ipcRenderer.invoke('ide:projinfo'),
|
|
226
|
+
ideExpQr: () => ipcRenderer.invoke('ide:expqr'),
|
|
227
|
+
headroomToggle: (on) => ipcRenderer.invoke('headroom:toggle', !!on),
|
|
228
|
+
headroomStatus: () => ipcRenderer.invoke('headroom:status'),
|
|
229
|
+
headroomStats: () => ipcRenderer.invoke('headroom:stats'),
|
|
212
230
|
agentsClearAll: () => ipcRenderer.invoke('agents:clearAll'),
|
|
213
231
|
ideDelete: (rel) => ipcRenderer.invoke('ide:delete', rel),
|
|
214
232
|
onWaEvent: (cb) => ipcRenderer.on('wa:event', (_e, ev) => cb(ev)),
|
package/src/renderer/i18n.js
CHANGED
|
@@ -64,6 +64,7 @@
|
|
|
64
64
|
set_title: 'AYARLAR',
|
|
65
65
|
tab_lang: 'Dil',
|
|
66
66
|
lang_sub: 'Arayüz dili — uygulama dili ve sesli komut dili buradan değişir',
|
|
67
|
+
tab_headroom: 'Token Sıkıştırma',
|
|
67
68
|
tab_provider: 'Provider',
|
|
68
69
|
tab_fallout: 'Fallout',
|
|
69
70
|
tab_memory: 'Memory',
|
|
@@ -163,7 +164,7 @@
|
|
|
163
164
|
em_mem_clear: 'Hafızayı Temizle',
|
|
164
165
|
em_mem_cleared: 'Empati hafızası temizlendi',
|
|
165
166
|
tab_cron: 'Cron',
|
|
166
|
-
tab_usage: 'Maliyet
|
|
167
|
+
tab_usage: 'Maliyet',
|
|
167
168
|
tab_logs: 'Log',
|
|
168
169
|
tab_dash: 'Dashboard',
|
|
169
170
|
tab_limits: 'Limit',
|
|
@@ -579,6 +580,7 @@
|
|
|
579
580
|
tipGithub: 'GitHub Trending — repoları favorile, chate at, ajana araştır',
|
|
580
581
|
tipIde: 'IDE Modu — dosyalar + chat + preview',
|
|
581
582
|
tipStudio: 'Beast Studio — video yapma/düzenleme modu',
|
|
583
|
+
tipSandbox: 'Beast Sandbox — GitHub reposu indir & içinde çalış',
|
|
582
584
|
tipCodeHide: 'Editörü kapat',
|
|
583
585
|
tipCodeShow: 'Editörü göster',
|
|
584
586
|
ide_files: 'DOSYALAR',
|
|
@@ -695,6 +697,7 @@
|
|
|
695
697
|
set_title: 'SETTINGS',
|
|
696
698
|
tab_lang: 'Language',
|
|
697
699
|
lang_sub: 'Interface language — app UI and voice command language',
|
|
700
|
+
tab_headroom: 'Token Compression',
|
|
698
701
|
tab_provider: 'Provider',
|
|
699
702
|
tab_fallout: 'Fallout',
|
|
700
703
|
tab_memory: 'Memory',
|
|
@@ -794,7 +797,7 @@
|
|
|
794
797
|
em_mem_clear: 'Clear Memory',
|
|
795
798
|
em_mem_cleared: 'Empathy memory cleared',
|
|
796
799
|
tab_cron: 'Cron',
|
|
797
|
-
tab_usage: 'Cost
|
|
800
|
+
tab_usage: 'Cost',
|
|
798
801
|
tab_logs: 'Logs',
|
|
799
802
|
tab_dash: 'Dashboard',
|
|
800
803
|
tab_limits: 'Limit',
|
|
@@ -1268,6 +1271,7 @@
|
|
|
1268
1271
|
tipGithub: 'GitHub Trending — favorite repos, send to chat, ask the agent',
|
|
1269
1272
|
tipIde: 'IDE Mode — files + chat + preview',
|
|
1270
1273
|
tipStudio: 'Beast Studio — video making/editing mode',
|
|
1274
|
+
tipSandbox: 'Beast Sandbox — download a GitHub repo & work inside it',
|
|
1271
1275
|
tipCodeHide: 'Hide editor',
|
|
1272
1276
|
tipCodeShow: 'Show editor',
|
|
1273
1277
|
ide_files: 'FILES',
|
package/src/renderer/index.html
CHANGED
|
@@ -82,6 +82,7 @@
|
|
|
82
82
|
</div>
|
|
83
83
|
</div>
|
|
84
84
|
<button id="studioBtn" class="dd-btn dd-icon-btn" title="Beast Studio — video yapma/düzenleme" data-i18n-title="tipStudio"><svg viewBox="0 0 24 24" width="15" height="15" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="6" width="13" height="12" rx="2"/><path d="M15 10l7-4v12l-7-4"/></svg></button>
|
|
85
|
+
<button id="sbBtn" class="dd-btn dd-icon-btn" title="Beast Sandbox — GitHub reposu indir & içinde çalış" data-i18n-title="tipSandbox"><svg viewBox="0 0 24 24" width="15" height="15" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"/><polyline points="3.27 6.96 12 12.01 20.73 6.96"/><line x1="12" y1="22.08" x2="12" y2="12"/></svg></button>
|
|
85
86
|
<button id="railBtn" class="dd-btn dd-icon-btn" title="Paralel Ajan Konsolu" data-i18n-title="tipRail">▤</button>
|
|
86
87
|
<button id="watchBtn" class="dd-btn dd-icon-btn" title="İzleyiciler (Watchers)" data-i18n-title="tipWatch">◎</button>
|
|
87
88
|
<button id="cronBtn" class="dd-btn dd-icon-btn" title="Cron Görevler" data-i18n-title="tipCron">⏱︎</button>
|
|
@@ -163,11 +164,21 @@
|
|
|
163
164
|
<button id="codeShow" title="Editörü göster" data-i18n-title="tipCodeShow" hidden>▣︎</button>
|
|
164
165
|
<button id="bcNew" title="Yeni oturum" data-i18n-title="bc_new">*</button>
|
|
165
166
|
<button id="bcClear" title="Çıktıyı temizle" data-i18n-title="bc_clear">Temizle</button>
|
|
167
|
+
<button id="bcQrBtn" title="Expo Go QR" hidden>▣︎</button>
|
|
166
168
|
</div>
|
|
167
169
|
<div id="bcOut"></div>
|
|
168
170
|
<div id="bcTodoWrap" hidden></div>
|
|
169
171
|
<div id="bcStatus" hidden></div>
|
|
170
172
|
<div id="bcChips" hidden></div>
|
|
173
|
+
<div id="bcQrCard" hidden>
|
|
174
|
+
<div class="bq-head">
|
|
175
|
+
<span>EXPO GO QR</span>
|
|
176
|
+
<button id="bcQrClose" title="Kapat">×</button>
|
|
177
|
+
</div>
|
|
178
|
+
<img id="bcQrImg" alt="Expo QR" draggable="false" />
|
|
179
|
+
<div id="bcQrUrl" title=""></div>
|
|
180
|
+
<div class="bq-hint">Telefonda <b>Expo Go</b> uygulamasıyla okut</div>
|
|
181
|
+
</div>
|
|
171
182
|
<div id="bcInputRow">
|
|
172
183
|
<button id="bcAttach" title="Dosya / resim ekle" data-i18n-title="tipAttach">+</button>
|
|
173
184
|
<button id="bcMic" title="Sesli komut — konuş, bırakınca yazıya çevirsin" data-i18n-title="tipMic"><svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="2" width="6" height="12" rx="3"/><path d="M19 10v2a7 7 0 0 1-14 0v-2"/><path d="M12 19v3"/></svg></button>
|
|
@@ -212,9 +223,55 @@
|
|
|
212
223
|
<div id="stVideoEmpty">Soldaki klasörden bir video/ses seç<br>veya “Aç” ile dosya seç — ajanın ürettiği çıktılar da burada oynatılır</div>
|
|
213
224
|
<video id="stVideoEl" controls hidden></video>
|
|
214
225
|
</div>
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
226
|
+
</section>
|
|
227
|
+
</div>
|
|
228
|
+
|
|
229
|
+
<div id="sandboxRow">
|
|
230
|
+
<section id="sbPanel">
|
|
231
|
+
<div id="sbHead">
|
|
232
|
+
<span id="sbTitle">BEAST SANDBOX</span>
|
|
233
|
+
<select id="sbRepo" title="İndirilen repo seç"></select>
|
|
234
|
+
<span class="file-spacer"></span>
|
|
235
|
+
<button id="sbReveal" title="Klasörü aç (Explorer)"><svg viewBox="0 0 24 24" width="14" height="14" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7z"/></svg></button>
|
|
236
|
+
<button id="sbRemove" title="Reposunu sil" data-i18n-title="cr_del">×</button>
|
|
237
|
+
<button id="sbNew" title="Bu reponun oturumunu sıfırla" data-i18n-title="bc_new">*</button>
|
|
238
|
+
</div>
|
|
239
|
+
<div id="sbCloneRow">
|
|
240
|
+
<input id="sbCloneInput" placeholder="github.com/owner/repo veya owner/repo" spellcheck="false" autocomplete="off" />
|
|
241
|
+
<button id="sbCloneBtn" title="İndir (git clone)"><svg viewBox="0 0 24 24" width="13" height="13" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></svg><span id="sbCloneLabel">İndir</span></button>
|
|
242
|
+
<button id="sbGhBtn" title="GitHub'da ara"><svg viewBox="0 0 24 24" width="13" height="13" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg></button>
|
|
243
|
+
</div>
|
|
244
|
+
<div id="sbOut"></div>
|
|
245
|
+
<div id="sbStatus" hidden></div>
|
|
246
|
+
<div id="sbInputRow">
|
|
247
|
+
<textarea id="sbInput" rows="1" spellcheck="false" autocomplete="off" placeholder="Sandbox mesajı — ajan bu repo klasöründe çalışır…"></textarea>
|
|
248
|
+
<button id="sbStop" title="Çalışan mesajı durdur" hidden data-i18n-title="bc_stop"><svg viewBox="0 0 24 24" width="13" height="13" fill="currentColor" stroke="none"><rect x="6" y="6" width="12" height="12" rx="2"/></svg></button>
|
|
249
|
+
</div>
|
|
250
|
+
</section>
|
|
251
|
+
|
|
252
|
+
<section id="sbRun">
|
|
253
|
+
<div id="sbRunHead">
|
|
254
|
+
<span id="sbRunTitle">ÇALIŞTIR</span>
|
|
255
|
+
<span id="sbRunCwd" title="">—</span>
|
|
256
|
+
</div>
|
|
257
|
+
<div id="sbRunBtns">
|
|
258
|
+
<button id="sbRunInstall" title="Ajana talimat: projeyi kur — doğru komutu ajan bulur"><svg viewBox="0 0 24 24" width="12" height="12" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="vertical-align:-2px;margin-right:3px"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></svg>Kur</button>
|
|
259
|
+
<button id="sbRunStart" title="Ajana talimat: projeyi çalıştır — uzun süreli süreç ÇALIŞTIR panelinde başlar"><svg viewBox="0 0 24 24" width="12" height="12" fill="currentColor" stroke="none" style="vertical-align:-2px;margin-right:3px"><polygon points="6 3 20 12 6 21 6 3"/></svg>Başlat</button>
|
|
260
|
+
<button id="sbRunDev" title="Ajana talimat: geliştirme modunda başlat (dev)"><svg viewBox="0 0 24 24" width="12" height="12" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="vertical-align:-2px;margin-right:3px"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/></svg>Dev</button>
|
|
261
|
+
<button id="sbRunStop" title="Süreci durdur" hidden><svg viewBox="0 0 24 24" width="12" height="12" fill="currentColor" stroke="none" style="vertical-align:-2px;margin-right:3px"><rect x="6" y="6" width="12" height="12" rx="2"/></svg>Durdur</button>
|
|
262
|
+
</div>
|
|
263
|
+
<div id="sbRunCustom">
|
|
264
|
+
<input id="sbRunCmd" placeholder="özel komut: python main.py, cargo run, node index.js…" spellcheck="false" autocomplete="off" />
|
|
265
|
+
<button id="sbRunGo" title="Çalıştır"><svg viewBox="0 0 24 24" width="12" height="12" fill="currentColor" stroke="none"><polygon points="6 3 20 12 6 21 6 3"/></svg></button>
|
|
266
|
+
</div>
|
|
267
|
+
<div id="sbRunOut"></div>
|
|
268
|
+
<div id="sbRunFoot">
|
|
269
|
+
<button id="sbRunOpen" title="Ajana talimat: çalışma adresini bulup tarayıcıda açar" disabled><svg viewBox="0 0 24 24" width="12" height="12" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="vertical-align:-2px;margin-right:3px"><circle cx="12" cy="12" r="10"/><line x1="2" y1="12" x2="22" y2="12"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg><span id="sbRunOpenLabel">Tarayıcıda aç</span></button>
|
|
270
|
+
<span id="sbRunUrl" title=""></span>
|
|
271
|
+
</div>
|
|
272
|
+
</section>
|
|
273
|
+
</div>
|
|
274
|
+
</main>
|
|
218
275
|
|
|
219
276
|
<aside id="rail">
|
|
220
277
|
<div id="railHead">
|
|
@@ -250,6 +307,7 @@
|
|
|
250
307
|
<button class="tab" data-tab="empati" data-i18n="tab_empati">Empati Loop</button>
|
|
251
308
|
<button class="tab" data-tab="cron" data-i18n="tab_cron">Cron</button>
|
|
252
309
|
<button class="tab" data-tab="usage" data-i18n="tab_usage">Maliyet · Limit</button>
|
|
310
|
+
<button class="tab" data-tab="headroom" data-i18n="tab_headroom">Token Sıkıştırma</button>
|
|
253
311
|
<button class="tab" data-tab="logs" data-i18n="tab_logs">Log</button>
|
|
254
312
|
<button class="tab" data-tab="dash" data-i18n="tab_dash">Dashboard</button>
|
|
255
313
|
<button class="tab" data-tab="sec" data-i18n="tab_security">Güvenlik</button>
|
|
@@ -275,6 +333,7 @@
|
|
|
275
333
|
<div id="tab-events" class="pane" hidden></div>
|
|
276
334
|
<div id="tab-empati" class="pane" hidden></div>
|
|
277
335
|
<div id="tab-usage" class="pane" hidden></div>
|
|
336
|
+
<div id="tab-headroom" class="pane" hidden></div>
|
|
278
337
|
<div id="tab-logs" class="pane" hidden></div>
|
|
279
338
|
<div id="tab-dash" class="pane" hidden></div>
|
|
280
339
|
<div id="tab-sec" class="pane" hidden></div>
|