beast-agent 2.2.1 → 2.3.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.
@@ -31,11 +31,18 @@
31
31
  bc_copied: 'Kopyalandı',
32
32
  tipModelRefresh: 'Modelleri yeniden çek (tüm providerlar)',
33
33
  mr_done: 'Modeller yenilendi',
34
- tipMic: 'Sesli komut konuş, bırakınca yazıya çevirsin',
35
- mic_listening: 'Dinliyorum… bitirmek için mikrofona tekrar bas',
34
+ tipMic: 'Eller serbest: bas, konuş, susunca otomatik gönderir',
35
+ tip_tts_btn: 'Otomatik seslendirme (TTS) ajanın cevaplarını sesli okur',
36
+ tts_btn_on: 'Otomatik seslendirme AÇIK',
37
+ tts_btn_off: 'Otomatik seslendirme kapalı',
38
+ mic_listening: 'Dinliyorum… konuş, susunca gönderilir',
36
39
  mic_transcribing: 'Ses yazıya çevriliyor (yerel Whisper)…',
37
40
  mic_fail: 'Konuşma algılanamadı',
38
41
  mic_denied: 'Mikrofon erişimi verilmedi',
42
+ hf_start: 'Eller serbest AÇIK — konuşun, susunca gönderilir; kapatmak için tekrar bas',
43
+ hf_listening: 'Eller serbest: dinliyorum…',
44
+ hf_thinking: 'Eller serbest: cevap bekleniyor…',
45
+ hf_stopped: 'Eller serbest mod kapatıldı',
39
46
  tip_dark: 'Koyu tema',
40
47
  tipTerm: 'Terminal (PowerShell)',
41
48
  tipTermG: 'Git Bash terminali',
@@ -207,7 +214,11 @@
207
214
  tts_sub: 'Açık olursa WhatsApp cevapları metnin yanı sıra sesli not olarak da gönderilir.',
208
215
  tts_active: 'Aktif',
209
216
  tts_save: 'TTS Kaydet',
210
- tts_note: 'OpenAI-uyumlu bir speech API kullanır (tts-1, tts-1-hd vb.). Sesler: alloy, echo, fable, onyx, nova, shimmer.',
217
+ tts_test: 'Test sesi çal',
218
+ tts_note: 'Edge TTS: ücretsiz yerel motor — anahtar gerekmez (Ahmet/Emel vb.). OpenAI motoru: uyumlu speech API (tts-1, tts-1-hd; sesler alloy, echo, fable, onyx, nova, shimmer).',
219
+ tts_engine: 'Motor',
220
+ tts_edge_voice: 'Edge sesi',
221
+ tts_chat_auto: 'Chat\'te ajanın yazdıklarını otomatik seslendir',
211
222
  tts_on: 'TTS açık — cevaplar sesli de gider',
212
223
  tts_off: 'TTS kapalı',
213
224
  em_h2: 'E-posta (Gmail)',
@@ -339,6 +350,7 @@
339
350
  bb_ph: 'adres yaz veya ara…',
340
351
  tip_bb_back: 'Geri',
341
352
  tip_bb_phone: 'Telefon modu — mobil versiyon / web versiyonu',
353
+ tip_bb_mobile: 'Mobil önizleme — telefon siluetinde canlı uygulama (Expo/Metro dev server)',
342
354
  tip_bb_fwd: 'İleri',
343
355
  tip_bb_reload: 'Yenile',
344
356
  tip_bb_shot: 'Ekran görüntüsünü sohbete ekle',
@@ -595,11 +607,18 @@
595
607
  bc_copied: 'Copied',
596
608
  tipModelRefresh: 'Refresh models (all providers)',
597
609
  mr_done: 'Models refreshed',
598
- tipMic: 'Voice command speak, it transcribes when you stop',
599
- mic_listening: 'Listening… press the mic again to finish',
610
+ tipMic: 'Hands-free: tap, speak, it auto-sends when you fall silent',
611
+ tip_tts_btn: 'Auto-speak (TTS) reads agent replies aloud',
612
+ tts_btn_on: 'Auto-speak ON',
613
+ tts_btn_off: 'Auto-speak off',
614
+ mic_listening: 'Listening… speak, it sends when you stop',
600
615
  mic_transcribing: 'Transcribing (local Whisper)…',
601
616
  mic_fail: 'Could not detect speech',
602
617
  mic_denied: 'Microphone access denied',
618
+ hf_start: 'Hands-free ON — speak, it sends when you fall silent; tap again to stop',
619
+ hf_listening: 'Hands-free: listening…',
620
+ hf_thinking: 'Hands-free: waiting for reply…',
621
+ hf_stopped: 'Hands-free mode stopped',
603
622
  tip_dark: 'Dark theme',
604
623
  tipTerm: 'Terminal (PowerShell)',
605
624
  tipTermG: 'Git Bash terminal',
@@ -770,7 +789,11 @@
770
789
  tts_sub: 'When on, WhatsApp replies are also sent as voice notes alongside text.',
771
790
  tts_active: 'Active',
772
791
  tts_save: 'Save TTS',
773
- tts_note: 'Uses an OpenAI-compatible speech API (tts-1, tts-1-hd, etc.). Voices: alloy, echo, fable, onyx, nova, shimmer.',
792
+ tts_test: 'Play test sound',
793
+ tts_note: 'Edge TTS: free local engine — no key needed (Ahmet/Emel etc.). OpenAI engine: compatible speech API (tts-1, tts-1-hd; voices alloy, echo, fable, onyx, nova, shimmer).',
794
+ tts_engine: 'Engine',
795
+ tts_edge_voice: 'Edge voice',
796
+ tts_chat_auto: 'Auto-speak agent replies in chat',
774
797
  tts_on: 'TTS on — replies also go as voice',
775
798
  tts_off: 'TTS off',
776
799
  em_h2: 'E-mail (Gmail)',
@@ -963,6 +986,7 @@
963
986
  bb_ph: 'type an address or search…',
964
987
  tip_bb_back: 'Back',
965
988
  tip_bb_phone: 'Phone mode — mobile / web version',
989
+ tip_bb_mobile: 'Mobile preview — live app in a phone frame (Expo/Metro dev server)',
966
990
  tip_bb_fwd: 'Forward',
967
991
  tip_bb_reload: 'Reload',
968
992
  tip_bb_shot: 'Add screenshot to chat',
@@ -1,4 +1,4 @@
1
- <!DOCTYPE html>
1
+ <!DOCTYPE html>
2
2
  <html lang="tr">
3
3
  <head>
4
4
  <meta charset="UTF-8" />
@@ -51,7 +51,7 @@
51
51
  <header id="topbar">
52
52
  <span id="botChip" title="Aktif bot">🦁 Beast</span>
53
53
  <div id="modelDD" class="dd">
54
- <button id="modelBtn" class="dd-btn" title="Model seç" data-i18n-title="tipModel"><span id="modelBtnLabel">Model</span><span class="dd-caret">▾</span></button>
54
+ <button id="modelBtn" class="dd-btn" title="Model seç" data-i18n-title="tipModel"><span id="modelBtnLabel">Model</span><span class="dd-caret">Ⓘ</span></button>
55
55
  <div id="modelMenu" class="dd-menu" hidden>
56
56
  <input id="modelFilter" class="dd-filter" placeholder="Model ara…" autocomplete="off" />
57
57
  <div id="modelList" class="dd-list"></div>
@@ -65,7 +65,7 @@
65
65
  </div>
66
66
  <button id="modelRefreshBtn" class="dd-btn dd-icon-btn" title="Modelleri yeniden çek" data-i18n-title="tipModelRefresh">&#x27F3;</button>
67
67
  <div id="pickCfg" class="dd">
68
- <button id="pickCfgBtn" class="dd-btn dd-icon-btn" title="Picker'da görünecek modeller" data-i18n-title="tipPickCfg">⚙</button>
68
+ <button id="pickCfgBtn" class="dd-btn dd-icon-btn" title="Picker'da görünecek modeller" data-i18n-title="tipPickCfg"><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="M4 6h9"/><circle cx="16.5" cy="6" r="2.5"/><path d="M20 6h0.01"/><path d="M4 12h3"/><circle cx="10.5" cy="12" r="2.5"/><path d="M15 12h5"/><path d="M4 18h11"/><circle cx="18.5" cy="18" r="2.5"/></svg></button>
69
69
  <div id="pickCfgMenu" class="dd-menu cfg-menu" hidden>
70
70
  <div class="cfg-head">
71
71
  <span>Picker modelleri</span>
@@ -103,8 +103,9 @@
103
103
  <div id="slashMenu" hidden></div>
104
104
  <div id="composer">
105
105
  <div id="composerLeft" class="dd">
106
+ <button id="ttsBtn" title="Otomatik seslendirme (TTS) — ajanın cevaplarını sesli okur" data-i18n-title="tip_tts_btn"><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="M11 5 6 9H2v6h4l5 4V5z"/><path d="M15.5 8.5a5 5 0 0 1 0 7"/><path d="M18.5 5.5a9 9 0 0 1 0 13"/></svg></button>
106
107
  <button id="attachBtn" title="Dosya / resim ekle" data-i18n-title="tipAttach">+</button>
107
- <button id="micBtn" title="Sesli komut konuş, bırakınca yazıya çevirsin" data-i18n-title="tipMic"><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="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>
108
+ <button id="micBtn" title="Eller serbest: bas, konuş, susunca gönderir" data-i18n-title="tipMic"><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="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>
108
109
  </div>
109
110
  <textarea id="input" rows="1" placeholder="Bir şey sor ya da görev ver… (Enter: gönder · Shift+Enter: satır · /: komutlar)" data-i18n-ph="composerPh"></textarea>
110
111
  <button id="stopBtn" title="Durdur" hidden data-i18n-title="tipStop">■</button>
@@ -152,7 +153,7 @@
152
153
  <span id="bcCwd" title=""></span>
153
154
  <span class="file-spacer"></span>
154
155
  <button id="codeShow" title="Editörü göster" data-i18n-title="tipCodeShow" hidden>&#x25A3;&#xFE0E;</button>
155
- <button id="bcNew" title="Yeni oturum" data-i18n-title="bc_new">+</button>
156
+ <button id="bcNew" title="Yeni oturum" data-i18n-title="bc_new">*</button>
156
157
  <button id="bcClear" title="Çıktıyı temizle" data-i18n-title="bc_clear">Temizle</button>
157
158
  </div>
158
159
  <div id="bcOut"></div>
@@ -174,7 +175,7 @@
174
175
  <span id="stTitle">BEAST STUDIO</span>
175
176
  <span id="stCwd" title=""></span>
176
177
  <span class="file-spacer"></span>
177
- <button id="stNew" title="Yeni oturum" data-i18n-title="bc_new">+</button>
178
+ <button id="stNew" title="Yeni oturum" data-i18n-title="bc_new">*</button>
178
179
  <button id="stClear" title="Çıktıyı temizle" data-i18n-title="bc_clear">Temizle</button>
179
180
  </div>
180
181
  <div id="stOut"></div>
@@ -365,7 +366,7 @@
365
366
  <button data-range="2w" class="on" title="Son 2 hafta">2 Hafta</button>
366
367
  <button data-range="1w" title="Son 1 hafta">1 Hafta</button>
367
368
  </div>
368
- <button id="ghSortBtn" title="Yıldız sırası: azalan / artan">↓ Yıldız</button>
369
+ <button id="ghSortBtn" title="Yıldız sırası: azalan / artan">⅏ Yıldız</button>
369
370
  <input id="ghSearch" placeholder="Repo ara… (Enter)" spellcheck="false" />
370
371
  <button id="ghTrendRefresh" class="gh-refresh" title="Sıfırla ve yenile — modal ilk açıldığı gibi">&#x27F3;</button>
371
372
  </div>
@@ -414,6 +415,7 @@
414
415
  <button id="bbReload" title="Yenile" data-i18n-title="tip_bb_reload">&#x21BB;</button>
415
416
  <input id="bbUrl" placeholder="adres yaz veya ara…" autocomplete="off" spellcheck="false" data-i18n-ph="bb_ph" />
416
417
  <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>
418
+ <button id="bbMobile" title="Mobil önizleme — telefon silueti (Expo/Metro dev server)" data-i18n-title="tip_bb_mobile"><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="1.5" width="14" height="21" rx="3.5"/><line x1="9.5" y1="4.5" x2="14.5" y2="4.5"/><line x1="10.5" y1="19.5" x2="13.5" y2="19.5"/></svg></button>
417
419
  <button id="bbOpenExt" title="Tarayıcıda aç" data-i18n-title="tip_bb_open">&#x2197;</button>
418
420
  <button id="bbClose" title="Kapat" data-i18n-title="btn_close">&#x00D7;</button>
419
421
  </div>
@@ -442,7 +444,19 @@
442
444
  <input type="file" id="fileInput" multiple hidden
443
445
  accept="image/*,.txt,.md,.json,.csv,.log,.js,.ts,.py,.ps1,.bat,.cmd,.html,.css,.yaml,.yml,.xml,.ini" />
444
446
 
447
+ <!-- mobil önizleme cihaz seçici: telefonun ALTINDA yüzen modern picker -->
448
+ <select id="bbDevice" title="Cihaz ölçüleri" hidden>
449
+ <option value="iphone15promax">iPhone 15 Pro Max · 430×932</option>
450
+ <option value="iphone15pro">iPhone 15 Pro · 393×852</option>
451
+ <option value="iphone14">iPhone 14 · 390×844</option>
452
+ <option value="iphonese">iPhone SE · 375×667</option>
453
+ <option value="pixel8">Pixel 8 · 412×915</option>
454
+ <option value="galaxys23">Galaxy S23 · 360×780</option>
455
+ <option value="android">Android · 360×800</option>
456
+ </select>
457
+
445
458
  <script src="i18n.js"></script>
459
+ <script src="handsfree.js"></script>
446
460
  <script src="renderer.js"></script>
447
461
  </body>
448
462
  </html>