dsh-coding-sidebar 1.0.6 → 1.0.8

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.
Files changed (70) hide show
  1. package/README.md +2 -2
  2. package/lib/client-editor.js +436 -227
  3. package/lib/client-registry.js +639 -7397
  4. package/lib/client-terminal.js +239 -187
  5. package/lib/client.js +644 -7402
  6. package/lib/index.js +367 -67
  7. package/lib/types/agent-pty.d.ts +62 -4
  8. package/lib/types/bundle-route.d.ts +1 -1
  9. package/lib/types/client/EditorHost.d.ts +1 -1
  10. package/lib/types/client/FileTree.d.ts +2 -2
  11. package/lib/types/client/TreePanel.d.ts +1 -1
  12. package/lib/types/client/chunk-loader.d.ts +1 -1
  13. package/lib/types/client/chunks/locale.d.ts +3 -0
  14. package/lib/types/client/conversation-draft.d.ts +85 -4
  15. package/lib/types/client/locales.d.ts +1 -20
  16. package/lib/types/client/selection-popup.d.ts +58 -0
  17. package/lib/types/client/service.d.ts +1 -1
  18. package/lib/types/client/terminal-font.d.ts +25 -2
  19. package/lib/types/context-types.d.ts +3 -1
  20. package/lib/types/index.d.ts +9 -0
  21. package/lib/types/prefs-shared.d.ts +7 -5
  22. package/lib/types/pty-manager.d.ts +53 -0
  23. package/lib/types/wire.d.ts +6 -2
  24. package/package.json +1 -1
  25. package/src/agent-pty.ts +221 -33
  26. package/src/bundle-route.ts +1 -1
  27. package/src/client/BrowserView.tsx +17 -9
  28. package/src/client/EditorHost.tsx +1 -1
  29. package/src/client/FileTree.tsx +4 -4
  30. package/src/client/Sidebar.tsx +41 -22
  31. package/src/client/TerminalView.tsx +13 -0
  32. package/src/client/TextEditor.tsx +27 -45
  33. package/src/client/TreePanel.tsx +16 -1
  34. package/src/client/chunk-loader.ts +1 -1
  35. package/src/client/chunks/locale.tsx +60 -0
  36. package/src/client/conversation-draft.ts +233 -7
  37. package/src/client/index.tsx +19 -8
  38. package/src/client/locales-ar.ts +5 -4
  39. package/src/client/locales-de.ts +5 -4
  40. package/src/client/locales-fr.ts +5 -4
  41. package/src/client/locales-hi.ts +5 -4
  42. package/src/client/locales-id.ts +5 -4
  43. package/src/client/locales-it.ts +5 -4
  44. package/src/client/locales-ja.ts +5 -4
  45. package/src/client/locales-ko.ts +5 -4
  46. package/src/client/locales-nl.ts +5 -4
  47. package/src/client/locales-pl.ts +5 -4
  48. package/src/client/locales-pt.ts +5 -4
  49. package/src/client/locales-ru.ts +5 -4
  50. package/src/client/locales-sv.ts +5 -4
  51. package/src/client/locales-th.ts +5 -4
  52. package/src/client/locales-tr.ts +5 -4
  53. package/src/client/locales-vi.ts +5 -4
  54. package/src/client/locales-zh-HK.ts +5 -4
  55. package/src/client/locales-zh-MO.ts +5 -4
  56. package/src/client/locales-zh-TW.ts +5 -4
  57. package/src/client/locales.ts +17 -51
  58. package/src/client/selection-popup.ts +155 -0
  59. package/src/client/service.ts +1 -1
  60. package/src/client/state.ts +14 -7
  61. package/src/client/terminal-font.ts +34 -3
  62. package/src/context-types.ts +3 -2
  63. package/src/git.ts +17 -1
  64. package/src/index.ts +39 -6
  65. package/src/open-external.ts +3 -4
  66. package/src/prefs-shared.ts +7 -5
  67. package/src/pty-manager.ts +176 -5
  68. package/src/sidechat-routes.ts +13 -1
  69. package/src/tools.ts +24 -6
  70. package/src/wire.ts +3 -0
@@ -88,6 +88,7 @@ export const hi: Record<string, string> = {
88
88
  terminalDepsFailed: 'टर्मिनल निर्भरता node-pty लोड विफल',
89
89
  terminalDepsHint: 'DSH मशीन पर एक टर्मिनल या cmd में नीचे दिया गया कमांड चलाएँ, फिर पुनः प्रयास करें (node-pty DSH कोर संस्करण के साथ सिंक रहता है):',
90
90
  terminalDepsProfile: ' (पहचाना गया प्रोफ़ाइल: {profile})',
91
+ terminalShellNotFound: 'कॉन्फ़िगर किया गया shell नहीं मिला: {name} — Settings → Side card → Terminal में shell पथ जाँचें',
91
92
  preview: 'पूर्वावलोकन',
92
93
  edit: 'संपादित करें',
93
94
  refresh: 'ताज़ा करें',
@@ -213,10 +214,10 @@ export const hi: Record<string, string> = {
213
214
  settingsConflict: 'सेटिंग दूसरी विंडो में बदली — कृपया पुनः प्रयास करें',
214
215
  binaryNoPreview: 'इस फ़ाइल प्रकार का पूर्वावलोकन नहीं हो सकता',
215
216
  downloadToView: 'देखने के लिए डाउनलोड करें',
216
- settingsSubagentTitle: 'सबएजेंट दिखने पर स्वतः कार्य पृष्ठ खोलें',
217
- settingsSubagentDesc: 'वर्तमान वार्तालाप में नया सबएजेंट बनने पर साइडबार विस्तृत करें और कार्य पृष्ठ खोलें; बंद करने पर मैन्युअल रूप से खोलें',
218
- settingsJobsTitle: 'नया बैकग्राउंड कार्य आने पर स्वतः कार्य पृष्ठ खोलें',
219
- settingsJobsDesc: 'वर्तमान वार्तालाप में नया बैकग्राउंड कार्य दिखने पर साइडबार विस्तृत करें और कार्य पृष्ठ खोलें (हर नया कार्य ट्रिगर करता है); बंद करने पर मैन्युअल रूप से खोलें',
217
+ settingsSubagentTitle: 'सब-एजेंट दिखने पर कार्य पृष्ठ स्वतः सक्रिय करें',
218
+ settingsSubagentDesc: 'जब मौजूदा बातचीत नया सब-एजेंट बनाती है तो कार्य पृष्ठ सक्रिय होता है; चौड़ी स्क्रीन पर साइड कार्ड भी खुलता है, संकरी स्क्रीन फुल-स्क्रीन ड्रॉअर बाध्य नहीं करती; मैन्युअल रूप से खोलने के लिए बंद करें',
219
+ settingsJobsTitle: 'नए बैकग्राउंड कार्य पर बैकग्राउंड कार्य पृष्ठ स्वतः सक्रिय करें',
220
+ settingsJobsDesc: 'जब मौजूदा बातचीत के लिए कोई नया बैकग्राउंड कार्य दिखे तो बैकग्राउंड कार्य पृष्ठ सक्रिय होता है (हर नया कार्य ट्रिगर करता है); चौड़ी स्क्रीन पर साइड कार्ड भी खुलता है, संकरी स्क्रीन फुल-स्क्रीन ड्रॉअर बाध्य नहीं करती; मैन्युअल रूप से खोलने के लिए बंद करें',
220
221
  settingsToolsTitle: 'मॉडल के लिए टर्मिनल टूल इंजेक्ट करें',
221
222
  settingsToolsDesc: 'सक्षम होने पर, मॉडल 8 terminal_* टूल्स से साइडबार टर्मिनल बना और चला सकता है (डिफ़ॉल्ट रूप से बंद)',
222
223
  settingsFontFamilyTitle: 'टर्मिनल फ़ॉन्ट परिवार',
@@ -86,6 +86,7 @@ export const id: Record<string, string> = {
86
86
  terminalDepsFailed: 'Dependensi terminal node-pty gagal dimuat',
87
87
  terminalDepsHint: 'Jalankan perintah di bawah ini di terminal atau cmd pada mesin DSH untuk memperbaikinya, lalu coba lagi (node-pty tetap sinkron dengan versi inti DSH):',
88
88
  terminalDepsProfile: ' (profil terdeteksi: {profile})',
89
+ terminalShellNotFound: 'Shell yang dikonfigurasi tidak ditemukan: {name} — periksa path shell di Pengaturan → Side card → Terminal',
89
90
  preview: 'Pratinjau',
90
91
  edit: 'Edit',
91
92
  refresh: 'Segarkan',
@@ -211,10 +212,10 @@ export const id: Record<string, string> = {
211
212
  settingsConflict: 'Pengaturan diubah di jendela lain — silakan coba lagi',
212
213
  binaryNoPreview: 'Tipe berkas ini tidak dapat dipratinjau',
213
214
  downloadToView: 'Unduh untuk melihat',
214
- settingsSubagentTitle: 'Buka otomatis halaman Tasks saat subagen muncul',
215
- settingsSubagentDesc: 'Bentangkan kartu samping dan buka halaman Tasks saat obrolan saat ini menelurkan subagen baru; matikan untuk membukanya secara manual',
216
- settingsJobsTitle: 'Buka otomatis halaman Jobs saat ada tugas latar baru',
217
- settingsJobsDesc: 'Bentangkan kartu samping dan buka halaman Jobs setiap kali tugas latar baru muncul untuk obrolan saat ini (setiap tugas baru memicu); matikan untuk membukanya secara manual',
215
+ settingsSubagentTitle: 'Aktifkan halaman tugas secara otomatis saat ada subagen',
216
+ settingsSubagentDesc: 'Mengaktifkan halaman tugas saat percakapan saat ini membuat subagen baru; di layar lebar kartu samping juga terbuka, layar sempit tidak memaksa laci layar penuh; matikan untuk membuka manual',
217
+ settingsJobsTitle: 'Aktifkan halaman tugas latar secara otomatis saat ada tugas latar baru',
218
+ settingsJobsDesc: 'Mengaktifkan halaman tugas latar setiap kali tugas latar baru muncul untuk percakapan saat ini (setiap tugas baru memicu); di layar lebar kartu samping juga terbuka, layar sempit tidak memaksa laci layar penuh; matikan untuk membuka manual',
218
219
  settingsToolsTitle: 'Suntik alat terminal untuk model',
219
220
  settingsToolsDesc: 'Saat diaktifkan, model dapat membuat dan mengendalikan terminal sidebar melalui 8 alat terminal_* (nonaktif secara default)',
220
221
  settingsFontFamilyTitle: 'Keluarga font terminal',
@@ -79,6 +79,7 @@ export const it: Record<string, string> = {
79
79
  terminalDepsFailed: 'Caricamento della dipendenza del terminale node-pty non riuscito',
80
80
  terminalDepsHint: 'Esegua il comando seguente in un terminale o cmd sul computer DSH per ripristinarlo, poi riprovi (node-pty resta sincronizzato con la versione del core DSH):',
81
81
  terminalDepsProfile: ' (rilevato profilo: {profile})',
82
+ terminalShellNotFound: 'Shell configurata non trovata: {name} — verifica il percorso della shell in Impostazioni → Side card → Terminal',
82
83
  preview: 'Anteprima',
83
84
  edit: 'Modifica',
84
85
  refresh: 'Aggiorna',
@@ -204,10 +205,10 @@ export const it: Record<string, string> = {
204
205
  settingsConflict: 'L’impostazione è stata modificata in un’altra finestra — riprovi',
205
206
  binaryNoPreview: 'Questo tipo di file non può essere visualizzato in anteprima',
206
207
  downloadToView: 'Scarica per visualizzare',
207
- settingsSubagentTitle: 'Apri automaticamente la pagina Attività quando compare un sottoagente',
208
- settingsSubagentDesc: 'Espande la barra laterale e apre la pagina Attività quando la conversazione attuale genera un nuovo sottoagente; disattivato va aperta manualmente',
209
- settingsJobsTitle: 'Apri automaticamente la pagina Attività in background in caso di nuova attività',
210
- settingsJobsDesc: 'Espande la barra laterale e apre la pagina Attività in background ogni volta che compare una nuova attività in background per la conversazione attuale (ogni nuova attività la attiva); disattivato va aperta manualmente',
208
+ settingsSubagentTitle: 'Attiva automaticamente la pagina attività quando compare un sottoagente',
209
+ settingsSubagentDesc: 'Attiva la pagina attività quando la conversazione corrente genera un nuovo sottoagente; sugli schermi larghi si espande anche la scheda laterale, quelli stretti non forzano il cassetto a schermo intero; disattiva per aprire manualmente',
210
+ settingsJobsTitle: 'Attiva automaticamente la pagina attività in background per una nuova attività',
211
+ settingsJobsDesc: 'Attiva la pagina attività in background ogni volta che compare una nuova attività per la conversazione corrente (ogni nuova attività la attiva); sugli schermi larghi si espande anche la scheda laterale, quelli stretti non forzano il cassetto a schermo intero; disattiva per aprire manualmente',
211
212
  settingsToolsTitle: 'Inietta strumenti del terminale per il modello',
212
213
  settingsToolsDesc: 'Se attivato, il modello può creare e gestire terminali della barra laterale attraverso gli 8 strumenti terminal_* (disattivato per impostazione predefinita)',
213
214
  settingsFontFamilyTitle: 'Famiglia di caratteri del terminale',
@@ -88,6 +88,7 @@ export const ja: Record<string, string> = {
88
88
  terminalDepsFailed: 'ターミナル依存関係 node-pty の読み込みに失敗',
89
89
  terminalDepsHint: 'DSH 環境のターミナルまたは cmd で以下のコマンドを実行して修復し、再試行してください(node-pty は DSH コアと同じバージョンを維持):',
90
90
  terminalDepsProfile: '(検出された profile:{profile})',
91
+ terminalShellNotFound: '設定されたシェルが見つかりません:{name}(設定 → サイドカード → ターミナル のシェルパスを確認してください)',
91
92
  preview: 'プレビュー',
92
93
  edit: '編集',
93
94
  refresh: '更新',
@@ -213,10 +214,10 @@ export const ja: Record<string, string> = {
213
214
  settingsConflict: '設定が別のウィンドウで変更されました、再試行してください',
214
215
  binaryNoPreview: 'このファイル形式はプレビューできません',
215
216
  downloadToView: 'ダウンロードして表示',
216
- settingsSubagentTitle: 'サブエージェント検出時に自動展開',
217
- settingsSubagentDesc: '現在の会話で新しいサブエージェントが発生した際、サイドバーを自動展開してタスク管理ページを開く。オフ時は手動で開く必要あり',
218
- settingsJobsTitle: '新規バックグラウンドタスク時に自動展開',
219
- settingsJobsDesc: '現在の会話で新しいバックグラウンドタスクが発生するたびにサイドバーを展開してタスクページを開く(新規タスクごとに発火)。オフ時は手動で開く必要あり',
217
+ settingsSubagentTitle: 'サブエージェント検出時にタスク管理ページを自動アクティブ化',
218
+ settingsSubagentDesc: '現在のセッションで新しいサブエージェントが生成されると、タスク管理ページを自動アクティブ化します。幅の広い画面ではサイドカードも展開し、狭い画面では全画面ドロワーを強制しません。オフにすると手動で開きます',
219
+ settingsJobsTitle: '新しいバックグラウンドタスク時にタスクページを自動アクティブ化',
220
+ settingsJobsDesc: '現在のセッションに新しいバックグラウンドタスクが現れると、バックグラウンドタスクページを自動アクティブ化します(すべての新タスクで発火)。幅の広い画面ではサイドカードも展開し、狭い画面では全画面ドロワーを強制しません。オフにすると手動で開きます',
220
221
  settingsToolsTitle: 'モデルにターミナルツールを注入',
221
222
  settingsToolsDesc: 'オンにすると、モデルが terminal_create 等 8 個のツールでサイドバーターミナルを作成・操作可能(デフォルトオフ)',
222
223
  settingsFontFamilyTitle: 'ターミナルフォント',
@@ -80,6 +80,7 @@ export const ko: Record<string, string> = {
80
80
  terminalDepsFailed: '터미널 의존성 node-pty 로드 실패',
81
81
  terminalDepsHint: 'DSH가 설치된 환경의 터미널 또는 cmd에서 아래 명령을 실행하여 복구한 후 다시 시도를 클릭하세요(node-pty는 DSH 코어와 동일한 버전을 유지합니다):',
82
82
  terminalDepsProfile: ' (profile 감지됨: {profile})',
83
+ terminalShellNotFound: '설정된 셸을 찾을 수 없습니다: {name} — 설정 → 사이드 카드 → 터미널에서 셸 경로를 확인하세요',
83
84
  preview: '미리보기',
84
85
  edit: '편집',
85
86
  refresh: '새로고침',
@@ -205,10 +206,10 @@ export const ko: Record<string, string> = {
205
206
  settingsConflict: '설정이 다른 창에서 수정되었습니다. 다시 시도하세요',
206
207
  binaryNoPreview: '이 파일 형식은 미리보기를 지원하지 않습니다',
207
208
  downloadToView: '다운로드하여 보기',
208
- settingsSubagentTitle: '서브 에이전트를 감지하면 작업 관리 페이지를 자동으로 펼치기',
209
- settingsSubagentDesc: '현재 대화에 새 서브 에이전트가 생기면 사이드바를 자동으로 펼치고 작업 관리 페이지를 엽니다. 끄면 수동으로 열어야 합니다',
210
- settingsJobsTitle: '새 백그라운드 작업이 있으면 백그라운드 작업 페이지를 자동으로 펼치기',
211
- settingsJobsDesc: '현재 대화에 새 백그라운드 작업이 생기면 사이드바를 자동으로 펼치고 백그라운드 작업 페이지를 엽니다(새 작업마다 트리거됨). 끄면 수동으로 열어야 합니다',
209
+ settingsSubagentTitle: '서브 에이전트 감지 작업 관리 페이지 자동 활성화',
210
+ settingsSubagentDesc: '현재 세션에서 새 서브 에이전트가 생성되면 작업 관리 페이지를 자동 활성화합니다. 넓은 화면에서는 사이드 카드도 함께 펼쳐지며, 좁은 화면에서는 전체 화면 서랍을 강제하지 않습니다. 끄면 수동으로 엽니다',
211
+ settingsJobsTitle: '새 백그라운드 작업 백그라운드 작업 페이지 자동 활성화',
212
+ settingsJobsDesc: '현재 세션에 새 백그라운드 작업이 나타나면 백그라운드 작업 페이지를 자동 활성화합니다(모든 작업이 트리거). 넓은 화면에서는 사이드 카드도 함께 펼쳐지며, 좁은 화면에서는 전체 화면 서랍을 강제하지 않습니다. 끄면 수동으로 엽니다',
212
213
  settingsToolsTitle: '모델에 터미널 도구 주입',
213
214
  settingsToolsDesc: '켜면 모델이 terminal_create 등 8개 도구로 사이드바 터미널을 만들고 조작할 수 있습니다(기본 꺼짐)',
214
215
  settingsFontFamilyTitle: '터미널 글꼴',
@@ -86,6 +86,7 @@ export const nl: Record<string, string> = {
86
86
  terminalDepsFailed: 'Terminalafhankelijkheid node-pty kon niet worden geladen',
87
87
  terminalDepsHint: 'Voer het onderstaande commando uit in een terminal of cmd op de DSH-machine om het te herstellen en probeer het opnieuw (node-pty blijft in sync met de DSH-coreversie):',
88
88
  terminalDepsProfile: ' (gedetecteerde profile: {profile})',
89
+ terminalShellNotFound: 'Geconfigureerde shell niet gevonden: {name} — controleer het shell-pad onder Instellingen → Side card → Terminal',
89
90
  preview: 'Voorbeeld',
90
91
  edit: 'Bewerken',
91
92
  refresh: 'Vernieuwen',
@@ -211,10 +212,10 @@ export const nl: Record<string, string> = {
211
212
  settingsConflict: 'De instelling is in een ander venster gewijzigd — probeer het opnieuw',
212
213
  binaryNoPreview: 'Dit bestandstype kan niet worden gepreviewed',
213
214
  downloadToView: 'Downloaden om te bekijken',
214
- settingsSubagentTitle: 'Taken-pagina automatisch openen wanneer een subagent verschijnt',
215
- settingsSubagentDesc: 'De zijkaart uitklappen en de Taken-pagina openen wanneer de huidige conversatie een nieuwe subagent voortbrengt; schakel uit om het handmatig te openen',
216
- settingsJobsTitle: 'Jobs-pagina automatisch openen bij een nieuwe achtergrondtaak',
217
- settingsJobsDesc: 'De zijkaart uitklappen en de Jobs-pagina openen telkens een nieuwe achtergrondtaak verschijnt voor de huidige conversatie (elke nieuwe taak triggert); schakel uit om het handmatig te openen',
215
+ settingsSubagentTitle: 'Takenpagina automatisch activeren bij een nieuwe subagent',
216
+ settingsSubagentDesc: 'Activeert de takenpagina zodra het huidige gesprek een nieuwe subagent maakt; op brede schermen klapt de zijkantkaart ook uit, smalle schermen forceren geen volledige schermlade; zet uit om handmatig te openen',
217
+ settingsJobsTitle: 'Takenpagina automatisch activeren bij een nieuwe achtergrondtaak',
218
+ settingsJobsDesc: 'Activeert de takenpagina zodra er een nieuwe achtergrondtaak voor het huidige gesprek verschijnt (elke nieuwe taak activeert); op brede schermen klapt de zijkantkaart ook uit, smalle schermen forceren geen volledige schermlade; zet uit om handmatig te openen',
218
219
  settingsToolsTitle: 'Terminaltools voor het model injecteren',
219
220
  settingsToolsDesc: 'Indien ingeschakeld kan het model zijbalk-terminals aanmaken en besturen via de 8 terminal_*-tools (standaard uit)',
220
221
  settingsFontFamilyTitle: 'Terminallettertype-familie',
@@ -90,6 +90,7 @@ export const pl: Record<string, string> = {
90
90
  terminalDepsFailed: 'Zależność terminala node-pty nie mogła się załadować',
91
91
  terminalDepsHint: 'Uruchom poniższe polecenie w terminalu lub cmd na maszynie DSH, aby to naprawić, a następnie ponów (node-pty pozostaje w synchronizacji z wersją rdzenia DSH):',
92
92
  terminalDepsProfile: ' (wykryty profil: {profile})',
93
+ terminalShellNotFound: 'Nie znaleziono skonfigurowanej powłoki: {name} — sprawdź ścieżkę powłoki w Ustawienia → Side card → Terminal',
93
94
  preview: 'Podgląd',
94
95
  edit: 'Edytuj',
95
96
  refresh: 'Odśwież',
@@ -215,10 +216,10 @@ export const pl: Record<string, string> = {
215
216
  settingsConflict: 'Ustawienie zmienione w innym oknie — spróbuj ponownie',
216
217
  binaryNoPreview: 'Tego typu pliku nie można wyświetlić w podglądzie',
217
218
  downloadToView: 'Pobierz, aby zobaczyć',
218
- settingsSubagentTitle: 'Automatycznie otwieraj stronę Zadań przy pojawieniu się podagenta',
219
- settingsSubagentDesc: 'Gdy bieżąca rozmowa powoła nowego podagenta, rozwiń panel boczny i otwórz stronę Zadań; wyłącz, aby otwierać ręcznie',
220
- settingsJobsTitle: 'Automatycznie otwieraj stronę zadań w tle przy nowym zadaniu',
221
- settingsJobsDesc: 'Gdy w bieżącej rozmowie pojawi się nowe zadanie w tle, rozwiń panel boczny i otwórz stronę zadań w tle (każde nowe zadanie wyzwala); wyłącz, aby otwierać ręcznie',
219
+ settingsSubagentTitle: 'Automycznie aktywuj stronę zadań przy pojawieniu się podagentów',
220
+ settingsSubagentDesc: 'Aktywuje stronę zadań, gdy bieżąca rozmowa utworzy nowego podagenta; na szerokich ekranach rozwinie się też karta boczna, wąskie ekrany nie wymuszają pełnoekranowej szuflady; wyłącz, aby otwierać ręcznie',
221
+ settingsJobsTitle: 'Automycznie aktywuj stronę zadań w tle przy nowym zadaniu',
222
+ settingsJobsDesc: 'Aktywuje stronę zadań w tle przy każdym nowym zadaniu tła bieżącej rozmowy (każde nowe zadanie aktywuje); na szerokich ekranach rozwinie się też karta boczna, wąskie ekrany nie wymuszają pełnoekranowej szuflady; wyłącz, aby otwierać ręcznie',
222
223
  settingsToolsTitle: 'Wstrzyknij narzędzia terminala dla modelu',
223
224
  settingsToolsDesc: 'Po włączeniu model może tworzyć i sterować terminalami panelu bocznego przez 8 narzędzi terminal_* (domyślnie wyłączone)',
224
225
  settingsFontFamilyTitle: 'Krój czcionki terminala',
@@ -71,6 +71,7 @@ export const pt: Record<string, string> = {
71
71
  terminalDepsFailed: 'A dependência do terminal node-pty falhou ao carregar',
72
72
  terminalDepsHint: 'Execute o comando abaixo em um terminal ou cmd na máquina do DSH para reparar e tente novamente (node-pty permanece em sincronia com a versão do núcleo do DSH):',
73
73
  terminalDepsProfile: ' (perfil detectado: {profile})',
74
+ terminalShellNotFound: 'Shell configurado não encontrado: {name} — verifique o caminho do shell em Configurações → Side card → Terminal',
74
75
  preview: 'Pré-visualizar',
75
76
  edit: 'Editar',
76
77
  refresh: 'Atualizar',
@@ -196,10 +197,10 @@ export const pt: Record<string, string> = {
196
197
  settingsConflict: 'A configuração foi alterada em outra janela — tente novamente',
197
198
  binaryNoPreview: 'Este tipo de arquivo não pode ser pré-visualizado',
198
199
  downloadToView: 'Baixar para ver',
199
- settingsSubagentTitle: 'Abrir automaticamente a página de Tarefas quando um subagente aparecer',
200
- settingsSubagentDesc: 'Expandir o cartão lateral e abrir a página de Tarefas quando a conversa atual gerar um novo subagente; desative para abrir manualmente',
201
- settingsJobsTitle: 'Abrir automaticamente a página de Tarefas em segundo plano quando houver uma nova tarefa',
202
- settingsJobsDesc: 'Expandir o cartão lateral e abrir a página de Tarefas sempre que uma nova tarefa em segundo plano aparecer para a conversa atual (cada nova tarefa dispara); desative para abrir manualmente',
200
+ settingsSubagentTitle: 'Ativar automaticamente a página de tarefas quando aparecer um subagente',
201
+ settingsSubagentDesc: 'Ativa a página de tarefas quando a conversa atual gerar um novo subagente; em ecrãs largos o cartão lateral também expande, ecrãs estreitos nunca forçam a gaveta de ecrã inteiro; desative para abrir manualmente',
202
+ settingsJobsTitle: 'Ativar automaticamente a página de tarefas em segundo plano com nova tarefa',
203
+ settingsJobsDesc: 'Ativa a página de tarefas em segundo plano sempre que uma nova tarefa aparecer para a conversa atual (cada nova tarefa aciona); em ecrãs largos o cartão lateral também expande, ecrãs estreitos nunca forçam a gaveta de ecrã inteiro; desative para abrir manualmente',
203
204
  settingsToolsTitle: 'Injetar ferramentas de terminal para o modelo',
204
205
  settingsToolsDesc: 'Quando ativado, o modelo pode criar e operar terminais da barra lateral por meio das 8 ferramentas terminal_* (desativado por padrão)',
205
206
  settingsFontFamilyTitle: 'Família de fonte do terminal',
@@ -84,6 +84,7 @@ export const ru: Record<string, string> = {
84
84
  terminalDepsFailed: 'Не удалось загрузить зависимость терминала node-pty',
85
85
  terminalDepsHint: 'Выполните приведённую ниже команду в терминале или cmd на машине DSH, затем нажмите «Повторить» (node-pty остаётся синхронизированным с версией ядра DSH):',
86
86
  terminalDepsProfile: ' (обнаружен profile: {profile})',
87
+ terminalShellNotFound: 'Настроенная оболочка не найдена: {name} — проверьте путь к оболочке в Настройки → Side card → Terminal',
87
88
  preview: 'Предпросмотр',
88
89
  edit: 'Изменить',
89
90
  refresh: 'Обновить',
@@ -210,10 +211,10 @@ export const ru: Record<string, string> = {
210
211
  settingsConflict: 'Настройки были изменены в другом окне — повторите',
211
212
  binaryNoPreview: 'Этот тип файла не поддерживает предпросмотр',
212
213
  downloadToView: 'Скачать для просмотра',
213
- settingsSubagentTitle: 'Автоматически разворачивать страницу «Задачи» при появлении субагента',
214
- settingsSubagentDesc: 'При появлении нового субагента в текущей сессии боковая панель автоматически разворачивается и открывается страница «Задачи»; при отключении нужно открывать вручную',
215
- settingsJobsTitle: 'Автоматически разворачивать страницу «Фоновые задачи» при новой задаче',
216
- settingsJobsDesc: 'При появлении новой фоновой задачи в текущей сессии боковая панель автоматически разворачивается и открывается страница «Фоновые задачи» (срабатывает на каждую новую задачу); при отключении нужно открывать вручную',
214
+ settingsSubagentTitle: 'Автоматически открывать страницу задач при появлении субагента',
215
+ settingsSubagentDesc: 'Открывает страницу задач, когда текущая беседа порождает нового субагента; на широких экранах раскрывается и боковая карточка, узкие экраны не заставляют полноэкранную шторку; выключите, чтобы открывать вручную',
216
+ settingsJobsTitle: 'Автоматически открывать страницу фоновых задач при новой задаче',
217
+ settingsJobsDesc: 'Открывает страницу фоновых задач при появлении новой фоновой задачи в текущей беседе (каждая новая задача срабатывает); на широких экранах раскрывается и боковая карточка, узкие экраны не заставляют полноэкранную шторку; выключите, чтобы открывать вручную',
217
218
  settingsToolsTitle: 'Внедрить терминальные инструменты для модели',
218
219
  settingsToolsDesc: 'Если включено, модель может через 8 инструментов (terminal_create и др.) создавать терминалы боковой панели и управлять ими (по умолчанию выключено)',
219
220
  settingsFontFamilyTitle: 'Шрифт терминала',
@@ -71,6 +71,7 @@ export const sv: Record<string, string> = {
71
71
  terminalDepsFailed: 'Terminalberoendet node-pty kunde inte laddas',
72
72
  terminalDepsHint: 'Kör kommandot nedan i en terminal eller cmd på DSH-maskinen för att reparera det, försök sedan igen (node-pty hålls synkad med DSH-kärnversionen):',
73
73
  terminalDepsProfile: ' (upptäckt profil: {profile})',
74
+ terminalShellNotFound: 'Konfigurerat skal hittades inte: {name} — kontrollera skalsökvägen under Inställningar → Side card → Terminal',
74
75
  preview: 'Förhandsgranska',
75
76
  edit: 'Redigera',
76
77
  refresh: 'Uppdatera',
@@ -196,10 +197,10 @@ export const sv: Record<string, string> = {
196
197
  settingsConflict: 'Inställningen ändrades i ett annat fönster — vänligen försök igen',
197
198
  binaryNoPreview: 'Denna filtyp kan inte förhandsgranskas',
198
199
  downloadToView: 'Ladda ner för att visa',
199
- settingsSubagentTitle: 'Öppna automatiskt Uppgiftssidan när en subagent dyker upp',
200
- settingsSubagentDesc: 'Expandera sidokortet och öppna Uppgiftssidan när aktuell konversation skapar en ny subagent; stäng av för att öppna manuellt',
201
- settingsJobsTitle: 'Öppna automatiskt Jobbsidan vid nytt bakgrundsjobb',
202
- settingsJobsDesc: 'Expandera sidokortet och öppna Jobbsidan när ett nytt bakgrundsjobb dyker upp för aktuell konversation (varje nytt jobb utlöser); stäng av för att öppna manuellt',
200
+ settingsSubagentTitle: 'Aktivera uppgiftssidan automatiskt när en subagent visas',
201
+ settingsSubagentDesc: 'Aktiverar uppgiftssidan när den aktuella konversationen skapar en ny subagent; på breda skärmar fälls sidokortet också ut, smala skärmar tvingar inte fram helskärmslådan; stäng av för att öppna manuellt',
202
+ settingsJobsTitle: 'Aktivera bakgrundsuppgiftssidan automatiskt vid ny bakgrundsuppgift',
203
+ settingsJobsDesc: 'Aktiverar bakgrundsuppgiftssidan närhelst en ny bakgrundsuppgift visas för den aktuella konversationen (varje ny uppgift aktiverar); på breda skärmar fälls sidokortet också ut, smala skärmar tvingar inte fram helskärmslådan; stäng av för att öppna manuellt',
203
204
  settingsToolsTitle: 'Injicera terminalverktyg för modellen',
204
205
  settingsToolsDesc: 'När aktiverat kan modellen skapa och styra sidopanelsterminaler via de 8 terminal_*-verktygen (av som standard)',
205
206
  settingsFontFamilyTitle: 'Terminalens teckensnittsfamilj',
@@ -88,6 +88,7 @@ export const th: Record<string, string> = {
88
88
  terminalDepsFailed: 'การอ้างอิงเทอร์มินัล node-pty โหลดล้มเหลว',
89
89
  terminalDepsHint: 'เรียกใช้คำสั่งด้านล่างในเทอร์มินัลหรือ cmd บนเครื่อง DSH เพื่อซ่อมแซม แล้วกดลองอีกครั้ง (node-pty ต้องซิงค์กับเวอร์ชันหลักของ DSH):',
90
90
  terminalDepsProfile: ' (ตรวจพบ profile: {profile})',
91
+ terminalShellNotFound: 'ไม่พบ shell ที่กำหนดไว้: {name} — ตรวจสอบพาธ shell ใน การตั้งค่า → Side card → Terminal',
91
92
  preview: 'พรีวิว',
92
93
  edit: 'แก้ไข',
93
94
  refresh: 'รีเฟรช',
@@ -213,10 +214,10 @@ export const th: Record<string, string> = {
213
214
  settingsConflict: 'การตั้งค่าถูกเปลี่ยนในหน้าต่างอื่น — โปรดลองอีกครั้ง',
214
215
  binaryNoPreview: 'ไม่สามารถพรีวิวประเภทไฟล์นี้ได้',
215
216
  downloadToView: 'ดาวน์โหลดเพื่อดู',
216
- settingsSubagentTitle: 'เปิดหน้า Tasks อัตโนมัติเมื่อมีตัวแทนย่อยปรากฏ',
217
- settingsSubagentDesc: 'ขยายการ์ดด้านข้างและเปิดหน้า Tasks เมื่อแชทปัจจุบันสร้างตัวแทนย่อยใหม่; ปิดเพื่อเปิดเอง',
218
- settingsJobsTitle: 'เปิดหน้า Jobs อัตโนมัติเมื่อมีงานเบื้องหลังใหม่',
219
- settingsJobsDesc: 'ขยายการ์ดด้านข้างและเปิดหน้า Jobs เมื่อใดก็ตามที่มีงานเบื้องหลังใหม่ปรากฏสำหรับแชทปัจจุบัน (ทุกงานใหม่จะทริกเกอร์); ปิดเพื่อเปิดเอง',
217
+ settingsSubagentTitle: 'เปิดหน้างานอัตโนมัติเมื่อมีซับเอเจนต์',
218
+ settingsSubagentDesc: 'เปิดหน้างานเมื่อเซสชันปัจจุบันสร้างซับเอเจนต์ใหม่ บนหน้าจอกว้างจะขยายการ์ดข้างด้วย หน้าจอแคบจะไม่บังคับลิ้นชักเต็มหน้าจอ ปิดไว้เพื่อเปิดเอง',
219
+ settingsJobsTitle: 'เปิดหน้างานพื้นหลังอัตโนมัติเมื่อมีงานพื้นหลังใหม่',
220
+ settingsJobsDesc: 'เปิดหน้างานพื้นหลังทุกครั้งที่มีงานพื้นหลังใหม่สำหรับเซสชันปัจจุบัน (ทุกงานใหม่จะเรียกใช้) บนหน้าจอกว้างจะขยายการ์ดข้างด้วย หน้าจอแคบจะไม่บังคับลิ้นชักเต็มหน้าจอ ปิดไว้เพื่อเปิดเอง',
220
221
  settingsToolsTitle: 'ฉีดเครื่องมือเทอร์มินัลสำหรับโมเดล',
221
222
  settingsToolsDesc: 'เมื่อเปิดใช้ โมเดลสามารถสร้างและควบคุมเทอร์มินัลแถบด้านข้างผ่านเครื่องมือ terminal_* 8 ตัว (ปิดเป็นค่าเริ่มต้น)',
222
223
  settingsFontFamilyTitle: 'ฟอนต์เทอร์มินัล',
@@ -88,6 +88,7 @@ export const tr: Record<string, string> = {
88
88
  terminalDepsFailed: 'Terminal bağımlılığı node-pty yüklenemedi',
89
89
  terminalDepsHint: 'Onarmak için DSH makinesindeki bir terminalde veya cmd’de aşağıdaki komutu çalıştırın, sonra yeniden deneyin (node-pty, DSH çekirdek sürümüyle senkron kalır):',
90
90
  terminalDepsProfile: ' (algılanan profil: {profile})',
91
+ terminalShellNotFound: 'Yapılandırılan kabuk bulunamadı: {name} — Ayarlar → Side card → Terminal altındaki kabuk yolunu denetleyin',
91
92
  preview: 'Önizleme',
92
93
  edit: 'Düzenle',
93
94
  refresh: 'Yenile',
@@ -213,10 +214,10 @@ export const tr: Record<string, string> = {
213
214
  settingsConflict: 'Ayar başka bir pencerede değiştirildi — lütfen yeniden deneyin',
214
215
  binaryNoPreview: 'Bu dosya türü önizlenemiyor',
215
216
  downloadToView: 'Görüntülemek için indir',
216
- settingsSubagentTitle: 'Bir alt aracı belirdiğinde Görevler sayfasını otomatik ',
217
- settingsSubagentDesc: 'Geçerli sohbet yeni bir alt aracı doğurduğunda yan kartı genişlet ve Görevler sayfasını aç; elle açmak için kapatın',
218
- settingsJobsTitle: 'Yeni arka plan işinde İşler sayfasını otomatik ',
219
- settingsJobsDesc: 'Geçerli sohbet için yeni bir arka plan işi belirdiğinde yan kartı genişlet ve İşler sayfasını (her yeni iş tetikler); elle açmak için kapatın',
217
+ settingsSubagentTitle: 'Alt ajan göründüğünde görevler sayfasını otomatik etkinleştir',
218
+ settingsSubagentDesc: 'Geçerli sohbet yeni bir alt ajan oluşturduğunda görevler sayfasını etkinleştirir; geniş ekranlarda yan kart da açılır, dar ekranlar tam ekran çekmecesini zorlamaz; elle açmak için kapatın',
219
+ settingsJobsTitle: 'Yeni arka plan işi çıkınca arka plan işleri sayfasını otomatik etkinleştir',
220
+ settingsJobsDesc: 'Geçerli sohbet için yeni bir arka plan işi her çıktığında arka plan işleri sayfasını etkinleştirir (her yeni iş tetikler); geniş ekranlarda yan kart da açılır, dar ekranlar tam ekran çekmecesini zorlamaz; elle açmak için kapatın',
220
221
  settingsToolsTitle: 'Model için terminal araçları enjekte et',
221
222
  settingsToolsDesc: 'Etkinleştirildiğinde model, 8 terminal_* aracı üzerinden kenar çubuğu terminalleri oluşturup kullanabilir (varsayılan kapalı)',
222
223
  settingsFontFamilyTitle: 'Terminal yazı tipi ailesi',
@@ -88,6 +88,7 @@ export const vi: Record<string, string> = {
88
88
  terminalDepsFailed: 'Dependency terminal node-pty tải thất bại',
89
89
  terminalDepsHint: 'Chạy lệnh sau trong terminal hoặc cmd trên máy DSH để sửa, rồi nhấn thử lại (node-pty đồng bộ phiên bản với lõi DSH):',
90
90
  terminalDepsProfile: ' (phát hiện profile: {profile})',
91
+ terminalShellNotFound: 'Không tìm thấy shell đã cấu hình: {name} — kiểm tra đường dẫn shell trong Cài đặt → Side card → Terminal',
91
92
  preview: 'Xem trước',
92
93
  edit: 'Chỉnh sửa',
93
94
  refresh: 'Làm mới',
@@ -213,10 +214,10 @@ export const vi: Record<string, string> = {
213
214
  settingsConflict: 'Cài đặt đã bị sửa bởi cửa sổ khác, vui lòng thử lại',
214
215
  binaryNoPreview: 'Loại tệp này không hỗ trợ xem trước',
215
216
  downloadToView: 'Tải xuống để xem',
216
- settingsSubagentTitle: 'Tự động mở trang Quản lý tác vụ khi phát hiện tác nhân con',
217
- settingsSubagentDesc: 'Khi phiên hiện tại tạo tác nhân con mới, tự động mở rộng thanh bên mở trang Quản tác vụ; tắt thì phải mở thủ công',
218
- settingsJobsTitle: 'Tự động mở trang Tác vụ nền khi có tác vụ nền mới',
219
- settingsJobsDesc: 'Khi phiên hiện tại có tác vụ nền mới, tự động mở rộng thanh bên mở trang Tác vụ nền (mỗi tác vụ mới đều kích hoạt); tắt thì phải mở thủ công',
217
+ settingsSubagentTitle: 'Tự động kích hoạt trang tác vụ khi subagent',
218
+ settingsSubagentDesc: 'Kích hoạt trang tác vụ khi hội thoại hiện tại tạo subagent mới; màn hình rộng sẽ mở cả thẻ bên, màn hình hẹp không ép ngăn kéo toàn màn hình; tắt để mở thủ công',
219
+ settingsJobsTitle: 'Tự động kích hoạt trang tác vụ nền khi có tác vụ nền mới',
220
+ settingsJobsDesc: 'Kích hoạt trang tác vụ nền mỗi khi tác vụ nền mới cho hội thoại hiện tại (mọi tác vụ mới đều kích hoạt); màn hình rộng sẽ mở cả thẻ bên, màn hình hẹp không ép ngăn kéo toàn màn hình; tắt để mở thủ công',
220
221
  settingsToolsTitle: 'Tiêm công cụ terminal cho mô hình',
221
222
  settingsToolsDesc: 'Khi bật, mô hình có thể tạo và điều khiển terminal thanh bên qua 8 công cụ terminal_* (mặc định tắt)',
222
223
  settingsFontFamilyTitle: 'Font terminal',
@@ -103,6 +103,7 @@ export const zhHK: Record<string, string> = {
103
103
  terminalDepsFailed: '終端依賴 node-pty 載入失敗',
104
104
  terminalDepsHint: '在 DSH 所在環境的終端或 cmd 中執行以下命令修復,然後點重試(node-pty 與 DSH 核心保持同一版本):',
105
105
  terminalDepsProfile: '(偵測到 profile:{profile})',
106
+ terminalShellNotFound: '未找到配置的 Shell:{name},請到 設定 → 側邊卡片 → 終端 檢查 Shell 路徑',
106
107
  preview: '預覽',
107
108
  edit: '編輯',
108
109
  refresh: '重新整理',
@@ -228,10 +229,10 @@ export const zhHK: Record<string, string> = {
228
229
  settingsConflict: '設定已被其他視窗修改,請重試',
229
230
  binaryNoPreview: '此檔案類型不支援預覽',
230
231
  downloadToView: '下載檢視',
231
- settingsSubagentTitle: '偵測到子代理時自動展開任務管理頁',
232
- settingsSubagentDesc: '目前工作階段產生新的子代理時,自動展開側邊欄並開啟任務管理頁;關閉後需手動開啟',
233
- settingsJobsTitle: '有新背景任務時自動展開背景任務頁',
234
- settingsJobsDesc: '目前工作階段出現新的背景任務時,自動展開側邊欄並開啟背景任務頁(每個新任務都會觸發);關閉後需手動開啟',
232
+ settingsSubagentTitle: '檢測到子代理時自動啟用任務管理頁',
233
+ settingsSubagentDesc: '當前會話產生新的子代理時,自動啟用任務管理頁;寬屏同時展開側邊欄,窄屏不強制展開全屏抽屜;關閉後需手動打開',
234
+ settingsJobsTitle: '有新背景任務時自動啟用背景任務頁',
235
+ settingsJobsDesc: '當前會話出現新的背景任務時,自動啟用背景任務頁(每個新任務都會觸發);寬屏同時展開側邊欄,窄屏不強制展開全屏抽屜;關閉後需手動打開',
235
236
  settingsToolsTitle: '為模型注入終端工具',
236
237
  settingsToolsDesc: '開啟後,模型可透過 terminal_create 等 8 個工具建立並操作側邊欄終端(預設關閉)',
237
238
  settingsFontFamilyTitle: '終端字體',
@@ -103,6 +103,7 @@ export const zhMO: Record<string, string> = {
103
103
  terminalDepsFailed: '終端依賴 node-pty 載入失敗',
104
104
  terminalDepsHint: '在 DSH 所在環境的終端或 cmd 中執行以下命令修復,然後點重試(node-pty 與 DSH 核心保持同一版本):',
105
105
  terminalDepsProfile: '(偵測到 profile:{profile})',
106
+ terminalShellNotFound: '未找到配置的 Shell:{name},請到 設定 → 側邊卡片 → 終端 檢查 Shell 路徑',
106
107
  preview: '預覽',
107
108
  edit: '編輯',
108
109
  refresh: '重新整理',
@@ -228,10 +229,10 @@ export const zhMO: Record<string, string> = {
228
229
  settingsConflict: '設定已被其他視窗修改,請重試',
229
230
  binaryNoPreview: '此檔案類型不支援預覽',
230
231
  downloadToView: '下載檢視',
231
- settingsSubagentTitle: '偵測到子代理時自動展開任務管理頁',
232
- settingsSubagentDesc: '目前工作階段產生新的子代理時,自動展開側邊欄並開啟任務管理頁;關閉後需手動開啟',
233
- settingsJobsTitle: '有新背景任務時自動展開背景任務頁',
234
- settingsJobsDesc: '目前工作階段出現新的背景任務時,自動展開側邊欄並開啟背景任務頁(每個新任務都會觸發);關閉後需手動開啟',
232
+ settingsSubagentTitle: '檢測到子代理時自動啟用任務管理頁',
233
+ settingsSubagentDesc: '當前會話產生新的子代理時,自動啟用任務管理頁;寬屏同時展開側邊欄,窄屏不強制展開全屏抽屜;關閉後需手動打開',
234
+ settingsJobsTitle: '有新背景任務時自動啟用背景任務頁',
235
+ settingsJobsDesc: '當前會話出現新的背景任務時,自動啟用背景任務頁(每個新任務都會觸發);寬屏同時展開側邊欄,窄屏不強制展開全屏抽屜;關閉後需手動打開',
235
236
  settingsToolsTitle: '為模型注入終端工具',
236
237
  settingsToolsDesc: '開啟後,模型可透過 terminal_create 等 8 個工具建立並操作側邊欄終端(預設關閉)',
237
238
  settingsFontFamilyTitle: '終端字體',
@@ -103,6 +103,7 @@ export const zhTW: Record<string, string> = {
103
103
  terminalDepsFailed: '終端依賴 node-pty 載入失敗',
104
104
  terminalDepsHint: '在 DSH 所在環境的終端或 cmd 中執行以下命令修復,然後點重試(node-pty 與 DSH 核心保持同一版本):',
105
105
  terminalDepsProfile: '(偵測到 profile:{profile})',
106
+ terminalShellNotFound: '未找到配置的 Shell:{name},請到 設定 → 側邊卡片 → 終端 檢查 Shell 路徑',
106
107
  preview: '預覽',
107
108
  edit: '編輯',
108
109
  refresh: '重新整理',
@@ -228,10 +229,10 @@ export const zhTW: Record<string, string> = {
228
229
  settingsConflict: '設定已被其他視窗修改,請重試',
229
230
  binaryNoPreview: '此檔案類型不支援預覽',
230
231
  downloadToView: '下載檢視',
231
- settingsSubagentTitle: '偵測到子代理時自動展開任務管理頁',
232
- settingsSubagentDesc: '目前工作階段產生新的子代理時,自動展開側邊欄並開啟任務管理頁;關閉後需手動開啟',
233
- settingsJobsTitle: '有新背景任務時自動展開背景任務頁',
234
- settingsJobsDesc: '目前工作階段出現新的背景任務時,自動展開側邊欄並開啟背景任務頁(每個新任務都會觸發);關閉後需手動開啟',
232
+ settingsSubagentTitle: '偵測到子代理時自動啟用任務管理頁',
233
+ settingsSubagentDesc: '目前會話產生新的子代理時,自動啟用任務管理頁;寬螢幕同時展開側邊欄,窄螢幕不強制展開全螢幕抽屜;關閉後需手動開啟',
234
+ settingsJobsTitle: '有新背景任務時自動啟用背景任務頁',
235
+ settingsJobsDesc: '目前會話出現新的背景任務時,自動啟用背景任務頁(每個新任務都會觸發);寬螢幕同時展開側邊欄,窄螢幕不強制展開全螢幕抽屜;關閉後需手動開啟',
235
236
  settingsToolsTitle: '為模型注入終端工具',
236
237
  settingsToolsDesc: '開啟後,模型可透過 terminal_create 等 8 個工具建立並操作側邊欄終端(預設關閉)',
237
238
  settingsFontFamilyTitle: '終端字體',
@@ -95,6 +95,7 @@ export const zh = {
95
95
  terminalDepsFailed: '终端依赖 node-pty 加载失败',
96
96
  terminalDepsHint: '在 DSH 所在环境的终端或 cmd 中执行以下命令修复,然后点重试(node-pty 与 DSH 核心保持同一版本):',
97
97
  terminalDepsProfile: '(检测到 profile:{profile})',
98
+ terminalShellNotFound: '未找到配置的 Shell:{name},请到 设置 → 侧边卡片 → 终端 检查 Shell 路径',
98
99
  refresh: '刷新',
99
100
  refreshUnsavedConfirm: '文件已在磁盘更新,刷新将丢弃未保存编辑。继续吗?',
100
101
  save: '保存',
@@ -218,10 +219,10 @@ export const zh = {
218
219
  settingsConflict: '设置已被其他窗口修改,请重试',
219
220
  binaryNoPreview: '此文件类型不支持预览',
220
221
  downloadToView: '下载查看',
221
- settingsSubagentTitle: '检测到子代理时自动展开任务管理页',
222
- settingsSubagentDesc: '当前会话产生新的子代理时,自动展开侧边栏并打开任务管理页;关闭后需手动打开',
223
- settingsJobsTitle: '有新后台任务时自动展开后台任务页',
224
- settingsJobsDesc: '当前会话出现新的后台任务时,自动展开侧边栏并打开后台任务页(每个新任务都会触发);关闭后需手动打开',
222
+ settingsSubagentTitle: '检测到子代理时自动激活任务管理页',
223
+ settingsSubagentDesc: '当前会话产生新的子代理时,自动激活任务管理页;宽屏同时展开侧边栏,窄屏不强制展开全屏抽屉;关闭后需手动打开',
224
+ settingsJobsTitle: '有新后台任务时自动激活后台任务页',
225
+ settingsJobsDesc: '当前会话出现新的后台任务时,自动激活后台任务页(每个新任务都会触发);宽屏同时展开侧边栏,窄屏不强制展开全屏抽屉;关闭后需手动打开',
225
226
  settingsToolsTitle: '为模型注入终端工具',
226
227
  settingsToolsDesc: '开启后,模型可通过 terminal_create 等 8 个工具创建并操作侧边栏终端(默认关闭)',
227
228
  settingsFontFamilyTitle: '终端字体',
@@ -431,6 +432,7 @@ export const en: Record<keyof typeof zh, string> = {
431
432
  terminalDepsFailed: 'Terminal dependency node-pty failed to load',
432
433
  terminalDepsHint: 'Run the command below in a terminal or cmd on the DSH machine to repair it, then retry (node-pty stays in sync with the DSH core version):',
433
434
  terminalDepsProfile: ' (detected profile: {profile})',
435
+ terminalShellNotFound: 'Configured shell not found: {name} — check the shell path under Settings → Side card → Terminal',
434
436
  refresh: 'Refresh',
435
437
  refreshUnsavedConfirm: 'The file changed on disk. Refreshing will discard unsaved edits. Continue?',
436
438
  save: 'Save',
@@ -554,10 +556,10 @@ export const en: Record<keyof typeof zh, string> = {
554
556
  settingsConflict: 'The setting changed in another window — please retry',
555
557
  binaryNoPreview: 'This file type cannot be previewed',
556
558
  downloadToView: 'Download to view',
557
- settingsSubagentTitle: 'Auto-open the Tasks page when a subagent appears',
558
- settingsSubagentDesc: 'Expand the side card and open the Tasks page when the current conversation spawns a new subagent; turn off to open it manually',
559
- settingsJobsTitle: 'Auto-open the Jobs page on a new background job',
560
- settingsJobsDesc: 'Expand the side card and open the Jobs page whenever a new background job appears for the current conversation (every new job triggers); turn off to open it manually',
559
+ settingsSubagentTitle: 'Auto-activate the Tasks page when a subagent appears',
560
+ settingsSubagentDesc: 'Activate the Tasks page when the current conversation spawns a new subagent; on wide screens the side card expands with it, narrow screens never force the full-screen drawer; turn off to open it manually',
561
+ settingsJobsTitle: 'Auto-activate the Jobs page on a new background job',
562
+ settingsJobsDesc: 'Activate the Jobs page whenever a new background job appears for the current conversation (every new job triggers); on wide screens the side card expands with it, narrow screens never force the full-screen drawer; turn off to open it manually',
561
563
  settingsToolsTitle: 'Inject terminal tools for the model',
562
564
  settingsToolsDesc: 'When enabled, the model can create and drive sidebar terminals through the 8 terminal_* tools (off by default)',
563
565
  settingsFontFamilyTitle: 'Terminal font family',
@@ -699,49 +701,13 @@ export const en: Record<keyof typeof zh, string> = {
699
701
  */
700
702
  export const LOCALE_NS = 'betterSidebar'
701
703
 
702
- // The ja dictionary lives in a sibling file (326 keys) so this module
703
- // stays readable. Type-checked against the zh key set: a missing or extra
704
- // ja key is a compile error.
705
- import { ja as jaDict } from './locales-ja.ts'
706
- import { de as deDict } from './locales-de.ts'
707
- import { fr as frDict } from './locales-fr.ts'
708
- import { pt as ptDict } from './locales-pt.ts'
709
- import { ko as koDict } from './locales-ko.ts'
710
- import { ar as arDict } from './locales-ar.ts'
711
- import { hi as hiDict } from './locales-hi.ts'
712
- import { id as idDict } from './locales-id.ts'
713
- import { tr as trDict } from './locales-tr.ts'
714
- import { vi as viDict } from './locales-vi.ts'
715
- import { th as thDict } from './locales-th.ts'
716
- import { ru as ruDict } from './locales-ru.ts'
717
- import { it as itDict } from './locales-it.ts'
718
- import { nl as nlDict } from './locales-nl.ts'
719
- import { sv as svDict } from './locales-sv.ts'
720
- import { pl as plDict } from './locales-pl.ts'
721
- import { zhHK as zhHKDict } from './locales-zh-HK.ts'
722
- import { zhTW as zhTWDict } from './locales-zh-TW.ts'
723
- import { zhMO as zhMODict } from './locales-zh-MO.ts'
724
-
725
- /** The ja dictionary (key-set-equal to zh, enforced by the type annotation). */
726
- export const ja: Record<keyof typeof zh, string> = jaDict as Record<keyof typeof zh, string>
727
- export const de: Record<keyof typeof zh, string> = deDict as Record<keyof typeof zh, string>
728
- export const fr: Record<keyof typeof zh, string> = frDict as Record<keyof typeof zh, string>
729
- export const pt: Record<keyof typeof zh, string> = ptDict as Record<keyof typeof zh, string>
730
- export const ko: Record<keyof typeof zh, string> = koDict as Record<keyof typeof zh, string>
731
- export const ar: Record<keyof typeof zh, string> = arDict as Record<keyof typeof zh, string>
732
- export const hi: Record<keyof typeof zh, string> = hiDict as Record<keyof typeof zh, string>
733
- export const id: Record<keyof typeof zh, string> = idDict as Record<keyof typeof zh, string>
734
- export const tr: Record<keyof typeof zh, string> = trDict as Record<keyof typeof zh, string>
735
- export const vi: Record<keyof typeof zh, string> = viDict as Record<keyof typeof zh, string>
736
- export const th: Record<keyof typeof zh, string> = thDict as Record<keyof typeof zh, string>
737
- export const ru: Record<keyof typeof zh, string> = ruDict as Record<keyof typeof zh, string>
738
- export const it: Record<keyof typeof zh, string> = itDict as Record<keyof typeof zh, string>
739
- export const nl: Record<keyof typeof zh, string> = nlDict as Record<keyof typeof zh, string>
740
- export const sv: Record<keyof typeof zh, string> = svDict as Record<keyof typeof zh, string>
741
- export const pl: Record<keyof typeof zh, string> = plDict as Record<keyof typeof zh, string>
742
- export const zhHK: Record<keyof typeof zh, string> = zhHKDict as Record<keyof typeof zh, string>
743
- export const zhTW: Record<keyof typeof zh, string> = zhTWDict as Record<keyof typeof zh, string>
744
- export const zhMO: Record<keyof typeof zh, string> = zhMODict as Record<keyof typeof zh, string>
704
+ // The 19 non-zh/en dictionaries live in the LAZY `locale` chunk
705
+ // (src/client/chunks/locale.tsx → lib/client-locale.js): `t()` only ever
706
+ // consults zh/en plus the better-locale override store, so those dicts are
707
+ // needed only when better-locale is installed — the client apply fetches the
708
+ // chunk there and registers its `localeDicts` into the override store. They
709
+ // used to sit statically in the core bundle (≈ half its weight) for a code
710
+ // path most sessions never enter.
745
711
 
746
712
  /** The DSH locale service attached by the client apply (absent → browser detection). */
747
713
  let localeService: { getSnapshot(): { active: string } } | undefined