beast-agent 1.4.2 → 1.5.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 +1 -1
- package/src/agent/engine.js +239 -15
- package/src/agent/llm.js +62 -39
- package/src/main.js +509 -89
- 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 +478 -61
- package/src/renderer/style.css +291 -20
package/src/preload.js
CHANGED
|
@@ -4,6 +4,7 @@ const { contextBridge, ipcRenderer } = require('electron');
|
|
|
4
4
|
|
|
5
5
|
contextBridge.exposeInMainWorld('beast', {
|
|
6
6
|
getState: () => ipcRenderer.invoke('app:state'),
|
|
7
|
+
appVersion: () => ipcRenderer.invoke('app:version'),
|
|
7
8
|
logsGet: () => ipcRenderer.invoke('logs:get'),
|
|
8
9
|
logsClear: () => ipcRenderer.invoke('logs:clear'),
|
|
9
10
|
listSessions: () => ipcRenderer.invoke('sessions:list'),
|
|
@@ -66,7 +67,9 @@ contextBridge.exposeInMainWorld('beast', {
|
|
|
66
67
|
terminalToggle: () => ipcRenderer.invoke('terminal:toggle'),
|
|
67
68
|
terminalRun: (cmd, shell) => ipcRenderer.invoke('terminal:run', { cmd, shell }),
|
|
68
69
|
terminalStop: () => ipcRenderer.invoke('terminal:stop'),
|
|
69
|
-
beastcodeSend: (msg) => ipcRenderer.invoke('beastcode:send', { msg }),
|
|
70
|
+
beastcodeSend: (msg, attachments) => ipcRenderer.invoke('beastcode:send', { msg, attachments }),
|
|
71
|
+
bcTodos: (sessionId) => ipcRenderer.invoke('bc:todos', { sessionId }),
|
|
72
|
+
bcUndo: (sessionId, todoId) => ipcRenderer.invoke('bc:undo', { sessionId, todoId }),
|
|
70
73
|
beastcodeStop: () => ipcRenderer.invoke('beastcode:stop'),
|
|
71
74
|
beastcodeNew: () => ipcRenderer.invoke('beastcode:new'),
|
|
72
75
|
thinkSet: (v) => ipcRenderer.invoke('think:set', v),
|
|
@@ -83,6 +86,7 @@ contextBridge.exposeInMainWorld('beast', {
|
|
|
83
86
|
tinyfishClear: () => ipcRenderer.invoke('tinyfish:clear'),
|
|
84
87
|
browserNavigate: (url) => ipcRenderer.invoke('browser:navigate', url),
|
|
85
88
|
browserCtrl: (action) => ipcRenderer.invoke('browser:ctrl', action),
|
|
89
|
+
browserPhone: (on) => ipcRenderer.invoke('browser:phone', on),
|
|
86
90
|
browserSetWidth: (w) => ipcRenderer.invoke('browser:setWidth', w),
|
|
87
91
|
browserSetIgnoreMouse: (flag) => ipcRenderer.invoke('browser:setIgnoreMouse', flag),
|
|
88
92
|
browserScreenshot: () => ipcRenderer.invoke('browser:screenshot'),
|
package/src/renderer/i18n.js
CHANGED
|
@@ -52,6 +52,8 @@
|
|
|
52
52
|
// kenar çubuğu & paneller
|
|
53
53
|
labelParallel: 'Paralel Ajanlar',
|
|
54
54
|
set_title: 'AYARLAR',
|
|
55
|
+
tab_lang: 'DİL',
|
|
56
|
+
lang_sub: 'Arayüz dili — uygulama dili ve sesli komut dili buradan değişir',
|
|
55
57
|
tab_provider: 'Provider',
|
|
56
58
|
tab_fallout: 'Fallout',
|
|
57
59
|
tab_memory: 'Memory',
|
|
@@ -87,7 +89,7 @@
|
|
|
87
89
|
up_note: 'Kurulumdan sonra uygulama otomatik yeniden başlar. İstersen WhatsApp\u2019tan /update komutunu da kullanabilirsin.',
|
|
88
90
|
tab_events: 'Olay Merkezi',
|
|
89
91
|
tab_cron: 'Cron',
|
|
90
|
-
tab_usage: 'Maliyet',
|
|
92
|
+
tab_usage: 'Maliyet · Limit',
|
|
91
93
|
tab_logs: 'Log',
|
|
92
94
|
tab_dash: 'Dashboard',
|
|
93
95
|
tab_limits: 'Limit',
|
|
@@ -336,6 +338,7 @@
|
|
|
336
338
|
term_stop: 'Çalışan komutu durdur',
|
|
337
339
|
bb_ph: 'adres yaz veya ara…',
|
|
338
340
|
tip_bb_back: 'Geri',
|
|
341
|
+
tip_bb_phone: 'Telefon modu — mobil versiyon / web versiyonu',
|
|
339
342
|
tip_bb_fwd: 'İleri',
|
|
340
343
|
tip_bb_reload: 'Yenile',
|
|
341
344
|
tip_bb_shot: 'Ekran görüntüsünü sohbete ekle',
|
|
@@ -514,6 +517,8 @@
|
|
|
514
517
|
ide_files: 'DOSYALAR',
|
|
515
518
|
ide_pick: 'Klasör seç',
|
|
516
519
|
ide_refresh: 'Yenile',
|
|
520
|
+
ide_preview_t: '\u00D6nizleme',
|
|
521
|
+
ide_tasks: 'G\u00F6rev listesi + geri al',
|
|
517
522
|
ide_preview: '▶ Preview',
|
|
518
523
|
ide_saved: 'Kaydedildi — preview\u2019ı yenile',
|
|
519
524
|
bc_ph: 'Beast Code mesajı yaz — Enter ile gönder…',
|
|
@@ -609,6 +614,8 @@
|
|
|
609
614
|
tipLang: 'Dil değiştir / Switch language',
|
|
610
615
|
labelParallel: 'Parallel Agents',
|
|
611
616
|
set_title: 'SETTINGS',
|
|
617
|
+
tab_lang: 'LANGUAGE',
|
|
618
|
+
lang_sub: 'Interface language — app UI and voice command language',
|
|
612
619
|
tab_provider: 'Provider',
|
|
613
620
|
tab_fallout: 'Fallout',
|
|
614
621
|
tab_memory: 'Memory',
|
|
@@ -644,7 +651,7 @@
|
|
|
644
651
|
up_note: 'The app restarts itself after installing. You can also use the /update command from WhatsApp.',
|
|
645
652
|
tab_events: 'Event Center',
|
|
646
653
|
tab_cron: 'Cron',
|
|
647
|
-
tab_usage: '
|
|
654
|
+
tab_usage: 'Cost · Limit',
|
|
648
655
|
tab_logs: 'Logs',
|
|
649
656
|
tab_dash: 'Dashboard',
|
|
650
657
|
tab_limits: 'Limit',
|
|
@@ -954,6 +961,7 @@
|
|
|
954
961
|
term_stop: 'Stop running command',
|
|
955
962
|
bb_ph: 'type an address or search…',
|
|
956
963
|
tip_bb_back: 'Back',
|
|
964
|
+
tip_bb_phone: 'Phone mode — mobile / web version',
|
|
957
965
|
tip_bb_fwd: 'Forward',
|
|
958
966
|
tip_bb_reload: 'Reload',
|
|
959
967
|
tip_bb_shot: 'Add screenshot to chat',
|
|
@@ -1129,6 +1137,8 @@
|
|
|
1129
1137
|
ide_files: 'FILES',
|
|
1130
1138
|
ide_pick: 'Choose folder',
|
|
1131
1139
|
ide_refresh: 'Refresh',
|
|
1140
|
+
ide_preview_t: 'Preview',
|
|
1141
|
+
ide_tasks: 'Task list + undo',
|
|
1132
1142
|
ide_preview: '▶ Preview',
|
|
1133
1143
|
ide_saved: 'Saved — refresh the preview',
|
|
1134
1144
|
bc_ph: 'Type a message for Beast Code — press Enter to send…',
|
package/src/renderer/index.html
CHANGED
|
@@ -27,17 +27,18 @@
|
|
|
27
27
|
<div id="filePanelHead">
|
|
28
28
|
<span id="filePanelTitle" data-i18n="ide_files">DOSYALAR</span>
|
|
29
29
|
<span class="file-spacer"></span>
|
|
30
|
+
<button id="fileTasks" title="Görev listesi + geri al" data-i18n-title="ide_tasks"><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="5" y="3" width="14" height="18" rx="2"/><path d="M9 8h6M9 12h6M9 16h4"/></svg></button>
|
|
30
31
|
<button id="filePick" title="Klasör seç" data-i18n-title="ide_pick"><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>
|
|
31
32
|
<button id="fileRefresh" title="Yenile" data-i18n-title="ide_refresh">⟳</button>
|
|
32
|
-
<button id="filePreview" title="Preview" data-i18n="
|
|
33
|
+
<button id="filePreview" title="Preview" data-i18n-title="ide_preview_t">▶</button>
|
|
33
34
|
</div>
|
|
34
35
|
<div id="filePanelPath" title="">—</div>
|
|
36
|
+
<div id="tasksPanel" hidden></div>
|
|
35
37
|
<div id="fileTree"></div>
|
|
36
38
|
</aside>
|
|
37
39
|
<div id="sideFoot">
|
|
38
40
|
<button id="gearBtn" title="Ayarlar" data-i18n-title="tipGear">⚙︎</button>
|
|
39
41
|
<button id="themeBtn" title="Koyu tema">☾</button>
|
|
40
|
-
<button id="langBtn" title="Dil değiştir / Switch language" data-i18n-title="tipLang"><svg viewBox="0 0 24 24" width="15" height="15" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><circle cx="12" cy="12" r="9"/><path d="M3 12h18"/><path d="M12 3c2.6 2.6 2.6 15.4 0 18M12 3c-2.6 2.6-2.6 15.4 0 18"/></svg></button>
|
|
41
42
|
<button id="storeBtn" title="Skills Store" data-i18n-title="tipStore"><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="M4 7h16l-1.3 12.1a2 2 0 0 1-2 1.9H7.3a2 2 0 0 1-2-1.9L4 7z"/><path d="M8 10V6a4 4 0 0 1 8 0v4"/></svg></button>
|
|
42
43
|
<button id="gitBtn" title="GitHub Trending" data-i18n-title="tipGithub"><svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></button>
|
|
43
44
|
<button id="ideBtn" title="IDE Modu" data-i18n-title="tipIde"><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="M8 6l-5 6 5 6"/><path d="M16 6l5 6-5 6"/><path d="M13.5 4l-3 16"/></svg></button>
|
|
@@ -110,12 +111,30 @@
|
|
|
110
111
|
<div id="codeTabsBar">
|
|
111
112
|
<div id="codeTabs"></div>
|
|
112
113
|
<code id="codePath" title="">—</code>
|
|
114
|
+
<button id="codeDiffBtn" title="Değişiklikleri kırmızı/yeşil göster (ajan + kendi düzenlemelerin)">Diff</button>
|
|
113
115
|
<button id="codeSave" title="Kaydet (Ctrl+S)">Kaydet</button>
|
|
114
116
|
<button id="codeHide" title="Editörü kapat" data-i18n-title="tipCodeHide">✕︎</button>
|
|
115
117
|
</div>
|
|
116
118
|
<div id="codeBody">
|
|
117
119
|
<div id="codeGutter" aria-hidden="true"></div>
|
|
120
|
+
<pre id="codeLayer" aria-hidden="true"></pre>
|
|
118
121
|
<textarea id="codeTa" spellcheck="false" wrap="off"></textarea>
|
|
122
|
+
<div id="codeFind" hidden>
|
|
123
|
+
<input id="codeFindInp" placeholder="Bul… (Shift+F)" autocomplete="off" spellcheck="false" />
|
|
124
|
+
<span id="codeFindCount">0/0</span>
|
|
125
|
+
<button id="codeFindPrev" title="Önceki eşleşme (Shift+Enter)">↑</button>
|
|
126
|
+
<button id="codeFindNext" title="Sonraki eşleşme (Enter)">↓</button>
|
|
127
|
+
<button id="codeFindClose" title="Kapat (Esc)">×</button>
|
|
128
|
+
</div>
|
|
129
|
+
<div id="codeDiffView" hidden>
|
|
130
|
+
<div id="codeDiffBar">
|
|
131
|
+
<span id="codeDiffTitle">DEĞİŞİKLİKLER</span>
|
|
132
|
+
<span id="codeDiffStats"></span>
|
|
133
|
+
<span class="file-spacer"></span>
|
|
134
|
+
<button id="codeDiffClose" title="Düzenlemeye dön">✕︎ Kapat</button>
|
|
135
|
+
</div>
|
|
136
|
+
<div id="codeDiffRows"></div>
|
|
137
|
+
</div>
|
|
119
138
|
</div>
|
|
120
139
|
</section>
|
|
121
140
|
|
|
@@ -133,8 +152,10 @@
|
|
|
133
152
|
<div id="bcOut"></div>
|
|
134
153
|
<div id="bcTodoWrap" hidden></div>
|
|
135
154
|
<div id="bcStatus" hidden></div>
|
|
155
|
+
<div id="bcChips" hidden></div>
|
|
136
156
|
<div id="bcInputRow">
|
|
137
|
-
<
|
|
157
|
+
<button id="bcAttach" title="Dosya / resim ekle" data-i18n-title="tipAttach">+</button>
|
|
158
|
+
<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>
|
|
138
159
|
<textarea id="bcInput" rows="1" spellcheck="false" autocomplete="off" placeholder="Beast Code mesajı yaz — Enter ile gönder…" data-i18n-ph="bc_ph"></textarea>
|
|
139
160
|
<button id="bcStop" title="Çalışan mesajı durdur" hidden data-i18n-title="bc_stop">■︎</button>
|
|
140
161
|
</div>
|
|
@@ -161,7 +182,8 @@
|
|
|
161
182
|
<aside id="setTabs">
|
|
162
183
|
<div class="set-tabs-title" data-i18n="set_title">AYARLAR</div>
|
|
163
184
|
<nav class="set-tabs-list">
|
|
164
|
-
<button class="tab active" data-tab="
|
|
185
|
+
<button class="tab active" data-tab="lang" data-i18n="tab_lang">Dil</button>
|
|
186
|
+
<button class="tab" data-tab="provider" data-i18n="tab_provider">Provider</button>
|
|
165
187
|
<button class="tab" data-tab="fallout" data-i18n="tab_fallout">Fallout</button>
|
|
166
188
|
<button class="tab" data-tab="skills" data-i18n="tab_skills">Skills</button>
|
|
167
189
|
<button class="tab" data-tab="agents" data-i18n="tab_agents">Paralel Ajanlar</button>
|
|
@@ -171,10 +193,9 @@
|
|
|
171
193
|
<button class="tab" data-tab="websearch" data-i18n="tab_websearch">Web Arama</button>
|
|
172
194
|
<button class="tab" data-tab="events" data-i18n="tab_events">Olay Merkezi</button>
|
|
173
195
|
<button class="tab" data-tab="cron" data-i18n="tab_cron">Cron</button>
|
|
174
|
-
<button class="tab" data-tab="usage" data-i18n="tab_usage">Maliyet</button>
|
|
196
|
+
<button class="tab" data-tab="usage" data-i18n="tab_usage">Maliyet · Limit</button>
|
|
175
197
|
<button class="tab" data-tab="logs" data-i18n="tab_logs">Log</button>
|
|
176
198
|
<button class="tab" data-tab="dash" data-i18n="tab_dash">Dashboard</button>
|
|
177
|
-
<button class="tab" data-tab="limits" data-i18n="tab_limits">Limit</button>
|
|
178
199
|
<button class="tab" data-tab="sec" data-i18n="tab_security">Güvenlik</button>
|
|
179
200
|
<button class="tab" data-tab="update" data-i18n="tab_update">Güncelleme</button>
|
|
180
201
|
</nav>
|
|
@@ -186,9 +207,11 @@
|
|
|
186
207
|
</div>
|
|
187
208
|
</div>
|
|
188
209
|
<button id="setClose" data-i18n="btn_close">Kapat</button>
|
|
210
|
+
<div id="setVersion" class="set-version">—</div>
|
|
189
211
|
</div>
|
|
190
212
|
</aside>
|
|
191
213
|
<section id="setContent">
|
|
214
|
+
<div id="tab-lang" class="pane"></div>
|
|
192
215
|
<div id="tab-provider" class="pane"></div>
|
|
193
216
|
<div id="tab-fallout" class="pane" hidden></div>
|
|
194
217
|
<div id="tab-skills" class="pane" hidden></div>
|
|
@@ -201,7 +224,6 @@
|
|
|
201
224
|
<div id="tab-usage" class="pane" hidden></div>
|
|
202
225
|
<div id="tab-logs" class="pane" hidden></div>
|
|
203
226
|
<div id="tab-dash" class="pane" hidden></div>
|
|
204
|
-
<div id="tab-limits" class="pane" hidden></div>
|
|
205
227
|
<div id="tab-sec" class="pane" hidden></div>
|
|
206
228
|
<div id="tab-update" class="pane" hidden></div>
|
|
207
229
|
<div id="tab-cron" class="pane" hidden>
|
|
@@ -351,6 +373,7 @@
|
|
|
351
373
|
<button id="bbFwd" title="İleri" data-i18n-title="tip_bb_fwd">→</button>
|
|
352
374
|
<button id="bbReload" title="Yenile" data-i18n-title="tip_bb_reload">↻</button>
|
|
353
375
|
<input id="bbUrl" placeholder="adres yaz veya ara…" autocomplete="off" spellcheck="false" data-i18n-ph="bb_ph" />
|
|
376
|
+
<button id="bbPhone" title="Telefon modu — mobil versiyon / web versiyonu" data-i18n-title="tip_bb_phone"><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="7" y="2" width="10" height="20" rx="2.5"/><line x1="11" y1="18" x2="13" y2="18"/></svg></button>
|
|
354
377
|
<button id="bbShot" title="Ekran görüntüsünü sohbete ekle" data-i18n-title="tip_bb_shot">▣</button>
|
|
355
378
|
<button id="bbOpenExt" title="Tarayıcıda aç" data-i18n-title="tip_bb_open">↗</button>
|
|
356
379
|
<button id="bbClose" title="Kapat" data-i18n-title="btn_close">×</button>
|