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/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'),
@@ -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: 'Costs',
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…',
@@ -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">&#x27F3;</button>
32
- <button id="filePreview" title="Preview" data-i18n="ide_preview">&#9654; Preview</button>
33
+ <button id="filePreview" title="Preview" data-i18n-title="ide_preview_t">&#9654;</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">&#x2699;&#xFE0E;</button>
39
41
  <button id="themeBtn" title="Koyu tema">&#x263E;</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">&#x2715;&#xFE0E;</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)">&#x2191;</button>
126
+ <button id="codeFindNext" title="Sonraki eşleşme (Enter)">&#x2193;</button>
127
+ <button id="codeFindClose" title="Kapat (Esc)">&#x00D7;</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">&#x2715;&#xFE0E; 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
- <span id="bcPrompt">code&gt;</span>
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">&#x25A0;&#xFE0E;</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="provider" data-i18n="tab_provider">Provider</button>
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">&#x2192;</button>
352
374
  <button id="bbReload" title="Yenile" data-i18n-title="tip_bb_reload">&#x21BB;</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">&#x25A3;</button>
355
378
  <button id="bbOpenExt" title="Tarayıcıda aç" data-i18n-title="tip_bb_open">&#x2197;</button>
356
379
  <button id="bbClose" title="Kapat" data-i18n-title="btn_close">&#x00D7;</button>