dsh-coding-sidebar 1.0.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.
Files changed (277) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +524 -0
  3. package/cordis.patch.yml +49 -0
  4. package/lib/client-editor.js +48229 -0
  5. package/lib/client-mermaid.js +200745 -0
  6. package/lib/client-registry.js +21867 -0
  7. package/lib/client-terminal.js +9361 -0
  8. package/lib/client.js +21867 -0
  9. package/lib/index.js +4556 -0
  10. package/lib/invariant.js +22 -0
  11. package/lib/types/agent-opens.d.ts +65 -0
  12. package/lib/types/agent-pty.d.ts +226 -0
  13. package/lib/types/browser-probe.d.ts +15 -0
  14. package/lib/types/bundle-route.d.ts +12 -0
  15. package/lib/types/client/BrowserView.d.ts +39 -0
  16. package/lib/types/client/DiffTab.d.ts +6 -0
  17. package/lib/types/client/DiffView.d.ts +51 -0
  18. package/lib/types/client/EditorHost.d.ts +13 -0
  19. package/lib/types/client/FileTree.d.ts +38 -0
  20. package/lib/types/client/FreeWindow.d.ts +29 -0
  21. package/lib/types/client/GitView.d.ts +10 -0
  22. package/lib/types/client/MarkdownHtml.d.ts +32 -0
  23. package/lib/types/client/OrphanedTab.d.ts +11 -0
  24. package/lib/types/client/PdfView.d.ts +6 -0
  25. package/lib/types/client/RenderBoundary.d.ts +32 -0
  26. package/lib/types/client/SandboxStatusBar.d.ts +10 -0
  27. package/lib/types/client/SideCardSection.d.ts +74 -0
  28. package/lib/types/client/SideChatView.d.ts +16 -0
  29. package/lib/types/client/Sidebar.d.ts +6 -0
  30. package/lib/types/client/SubagentView.d.ts +16 -0
  31. package/lib/types/client/TabBar.d.ts +54 -0
  32. package/lib/types/client/TerminalView.d.ts +24 -0
  33. package/lib/types/client/TextEditor.d.ts +10 -0
  34. package/lib/types/client/TreePanel.d.ts +24 -0
  35. package/lib/types/client/UploadOverlay.d.ts +20 -0
  36. package/lib/types/client/add-plugin-modal.d.ts +15 -0
  37. package/lib/types/client/api.d.ts +275 -0
  38. package/lib/types/client/binary-download.d.ts +12 -0
  39. package/lib/types/client/breakpoints.d.ts +17 -0
  40. package/lib/types/client/browser.d.ts +60 -0
  41. package/lib/types/client/builtins/index.d.ts +18 -0
  42. package/lib/types/client/builtins/tabs.d.ts +11 -0
  43. package/lib/types/client/builtins/viewers.d.ts +3 -0
  44. package/lib/types/client/chunk-loader.d.ts +131 -0
  45. package/lib/types/client/chunks/editor.d.ts +9 -0
  46. package/lib/types/client/chunks/mermaid.d.ts +10 -0
  47. package/lib/types/client/chunks/terminal.d.ts +9 -0
  48. package/lib/types/client/cm-themes.d.ts +24 -0
  49. package/lib/types/client/conversation-draft.d.ts +14 -0
  50. package/lib/types/client/desktop-env.d.ts +35 -0
  51. package/lib/types/client/editor-load.d.ts +66 -0
  52. package/lib/types/client/frame-batcher.d.ts +24 -0
  53. package/lib/types/client/icons.d.ts +59 -0
  54. package/lib/types/client/image-types.d.ts +3 -0
  55. package/lib/types/client/ime-guard.d.ts +36 -0
  56. package/lib/types/client/index.d.ts +25 -0
  57. package/lib/types/client/intercept.d.ts +46 -0
  58. package/lib/types/client/lang.d.ts +14 -0
  59. package/lib/types/client/layout-push.d.ts +15 -0
  60. package/lib/types/client/lazy-chunk.d.ts +25 -0
  61. package/lib/types/client/link-intercept.d.ts +42 -0
  62. package/lib/types/client/locales-ar.d.ts +18 -0
  63. package/lib/types/client/locales-de.d.ts +4 -0
  64. package/lib/types/client/locales-fr.d.ts +10 -0
  65. package/lib/types/client/locales-hi.d.ts +17 -0
  66. package/lib/types/client/locales-id.d.ts +15 -0
  67. package/lib/types/client/locales-it.d.ts +8 -0
  68. package/lib/types/client/locales-ja.d.ts +17 -0
  69. package/lib/types/client/locales-ko.d.ts +9 -0
  70. package/lib/types/client/locales-nl.d.ts +16 -0
  71. package/lib/types/client/locales-pl.d.ts +19 -0
  72. package/lib/types/client/locales-pt.d.ts +1 -0
  73. package/lib/types/client/locales-ru.d.ts +13 -0
  74. package/lib/types/client/locales-sv.d.ts +1 -0
  75. package/lib/types/client/locales-th.d.ts +17 -0
  76. package/lib/types/client/locales-tr.d.ts +17 -0
  77. package/lib/types/client/locales-vi.d.ts +17 -0
  78. package/lib/types/client/locales-zh-HK.d.ts +32 -0
  79. package/lib/types/client/locales-zh-MO.d.ts +32 -0
  80. package/lib/types/client/locales-zh-TW.d.ts +32 -0
  81. package/lib/types/client/locales.d.ts +452 -0
  82. package/lib/types/client/markdown-html.d.ts +96 -0
  83. package/lib/types/client/markdown-images.d.ts +45 -0
  84. package/lib/types/client/markdown-labels.d.ts +38 -0
  85. package/lib/types/client/md-toc.d.ts +4 -0
  86. package/lib/types/client/mermaid-blocks.d.ts +47 -0
  87. package/lib/types/client/mermaid-sanitize.d.ts +2 -0
  88. package/lib/types/client/mermaid.d.ts +12 -0
  89. package/lib/types/client/open-when-sized.d.ts +20 -0
  90. package/lib/types/client/open-with-settings.d.ts +4 -0
  91. package/lib/types/client/open-with.d.ts +87 -0
  92. package/lib/types/client/openpath-intercept.d.ts +85 -0
  93. package/lib/types/client/paths.d.ts +43 -0
  94. package/lib/types/client/pdf-types.d.ts +2 -0
  95. package/lib/types/client/pinned.d.ts +86 -0
  96. package/lib/types/client/plugin-settings.d.ts +8 -0
  97. package/lib/types/client/plugins-shared.d.ts +27 -0
  98. package/lib/types/client/plugins-tabs.d.ts +3 -0
  99. package/lib/types/client/plugins-viewers.d.ts +3 -0
  100. package/lib/types/client/prefs.d.ts +41 -0
  101. package/lib/types/client/produced-files.d.ts +29 -0
  102. package/lib/types/client/selection-payload.d.ts +27 -0
  103. package/lib/types/client/service.d.ts +439 -0
  104. package/lib/types/client/settings-nav-icon.d.ts +19 -0
  105. package/lib/types/client/shell-presets.d.ts +48 -0
  106. package/lib/types/client/sidechat-transcript.d.ts +103 -0
  107. package/lib/types/client/split-pane.d.ts +36 -0
  108. package/lib/types/client/state.d.ts +432 -0
  109. package/lib/types/client/subagent-detect.d.ts +54 -0
  110. package/lib/types/client/subagent-jobs.d.ts +63 -0
  111. package/lib/types/client/tab-content-memo.d.ts +40 -0
  112. package/lib/types/client/terminal-font.d.ts +78 -0
  113. package/lib/types/client/terminal-links.d.ts +119 -0
  114. package/lib/types/client/theme.d.ts +45 -0
  115. package/lib/types/client/titlebar-strip.d.ts +23 -0
  116. package/lib/types/client/upload.d.ts +69 -0
  117. package/lib/types/client/wco.d.ts +47 -0
  118. package/lib/types/config.d.ts +64 -0
  119. package/lib/types/context-types.d.ts +605 -0
  120. package/lib/types/fs-operations.d.ts +28 -0
  121. package/lib/types/fs-search.d.ts +24 -0
  122. package/lib/types/fs-tree.d.ts +51 -0
  123. package/lib/types/git.d.ts +124 -0
  124. package/lib/types/html-route.d.ts +59 -0
  125. package/lib/types/index.d.ts +47 -0
  126. package/lib/types/invariant.d.ts +15 -0
  127. package/lib/types/jobs-routes.d.ts +45 -0
  128. package/lib/types/open-external.d.ts +24 -0
  129. package/lib/types/path-security.d.ts +20 -0
  130. package/lib/types/prefs-shared.d.ts +236 -0
  131. package/lib/types/pty-deps.d.ts +78 -0
  132. package/lib/types/pty-manager.d.ts +168 -0
  133. package/lib/types/sidechat-core.d.ts +172 -0
  134. package/lib/types/sidechat-routes.d.ts +30 -0
  135. package/lib/types/subagent-activity.d.ts +44 -0
  136. package/lib/types/subagent-live-route.d.ts +44 -0
  137. package/lib/types/tools.d.ts +34 -0
  138. package/lib/types/trust-fence.d.ts +24 -0
  139. package/lib/types/wire.d.ts +38 -0
  140. package/package.json +172 -0
  141. package/scripts/install.ps1 +306 -0
  142. package/scripts/install.sh +287 -0
  143. package/src/agent-opens.ts +265 -0
  144. package/src/agent-pty.ts +527 -0
  145. package/src/browser-probe.ts +26 -0
  146. package/src/bundle-route.ts +129 -0
  147. package/src/client/BrowserView.tsx +289 -0
  148. package/src/client/DiffTab.tsx +114 -0
  149. package/src/client/DiffView.tsx +305 -0
  150. package/src/client/EditorHost.tsx +558 -0
  151. package/src/client/FileTree.tsx +669 -0
  152. package/src/client/FreeWindow.tsx +337 -0
  153. package/src/client/GitView.tsx +717 -0
  154. package/src/client/MarkdownHtml.tsx +296 -0
  155. package/src/client/OrphanedTab.tsx +27 -0
  156. package/src/client/PdfView.tsx +110 -0
  157. package/src/client/RenderBoundary.tsx +49 -0
  158. package/src/client/SandboxStatusBar.tsx +60 -0
  159. package/src/client/SideCardSection.module.css +960 -0
  160. package/src/client/SideCardSection.tsx +1163 -0
  161. package/src/client/SideChatView.module.css +437 -0
  162. package/src/client/SideChatView.tsx +645 -0
  163. package/src/client/Sidebar.tsx +1370 -0
  164. package/src/client/SubagentView.module.css +547 -0
  165. package/src/client/SubagentView.tsx +883 -0
  166. package/src/client/TabBar.tsx +365 -0
  167. package/src/client/TerminalView.tsx +424 -0
  168. package/src/client/TextEditor.tsx +468 -0
  169. package/src/client/TreePanel.tsx +275 -0
  170. package/src/client/UploadOverlay.tsx +62 -0
  171. package/src/client/add-plugin-modal.tsx +199 -0
  172. package/src/client/api.ts +357 -0
  173. package/src/client/binary-download.tsx +23 -0
  174. package/src/client/breakpoints.ts +61 -0
  175. package/src/client/browser.ts +167 -0
  176. package/src/client/builtins/index.ts +37 -0
  177. package/src/client/builtins/tabs.tsx +340 -0
  178. package/src/client/builtins/viewers.tsx +125 -0
  179. package/src/client/chunk-loader.ts +358 -0
  180. package/src/client/chunks/editor.tsx +9 -0
  181. package/src/client/chunks/mermaid.tsx +10 -0
  182. package/src/client/chunks/terminal.tsx +9 -0
  183. package/src/client/cm-themes.ts +129 -0
  184. package/src/client/conversation-draft.ts +29 -0
  185. package/src/client/css-modules.d.ts +5 -0
  186. package/src/client/desktop-env.ts +72 -0
  187. package/src/client/editor-load.ts +92 -0
  188. package/src/client/frame-batcher.ts +56 -0
  189. package/src/client/icons.tsx +152 -0
  190. package/src/client/image-types.ts +8 -0
  191. package/src/client/ime-guard.ts +47 -0
  192. package/src/client/index.tsx +427 -0
  193. package/src/client/intercept.tsx +188 -0
  194. package/src/client/lang.ts +225 -0
  195. package/src/client/layout-push.ts +24 -0
  196. package/src/client/layout.css +90 -0
  197. package/src/client/lazy-chunk.tsx +89 -0
  198. package/src/client/link-intercept.ts +73 -0
  199. package/src/client/locales-ar.ts +368 -0
  200. package/src/client/locales-de.ts +353 -0
  201. package/src/client/locales-fr.ts +360 -0
  202. package/src/client/locales-hi.ts +367 -0
  203. package/src/client/locales-id.ts +365 -0
  204. package/src/client/locales-it.ts +358 -0
  205. package/src/client/locales-ja.ts +367 -0
  206. package/src/client/locales-ko.ts +359 -0
  207. package/src/client/locales-nl.ts +365 -0
  208. package/src/client/locales-pl.ts +369 -0
  209. package/src/client/locales-pt.ts +350 -0
  210. package/src/client/locales-ru.ts +365 -0
  211. package/src/client/locales-sv.ts +350 -0
  212. package/src/client/locales-th.ts +367 -0
  213. package/src/client/locales-tr.ts +367 -0
  214. package/src/client/locales-vi.ts +367 -0
  215. package/src/client/locales-zh-HK.ts +382 -0
  216. package/src/client/locales-zh-MO.ts +382 -0
  217. package/src/client/locales-zh-TW.ts +382 -0
  218. package/src/client/locales.ts +894 -0
  219. package/src/client/markdown-html.ts +331 -0
  220. package/src/client/markdown-images.ts +137 -0
  221. package/src/client/markdown-labels.tsx +52 -0
  222. package/src/client/md-toc.tsx +127 -0
  223. package/src/client/mermaid-blocks.ts +110 -0
  224. package/src/client/mermaid-sanitize.ts +93 -0
  225. package/src/client/mermaid.tsx +406 -0
  226. package/src/client/open-when-sized.ts +43 -0
  227. package/src/client/open-with-settings.tsx +135 -0
  228. package/src/client/open-with.ts +221 -0
  229. package/src/client/openpath-intercept.ts +143 -0
  230. package/src/client/paths.ts +63 -0
  231. package/src/client/pdf-types.ts +4 -0
  232. package/src/client/pinned.ts +183 -0
  233. package/src/client/plugin-settings.ts +43 -0
  234. package/src/client/plugins-shared.ts +29 -0
  235. package/src/client/plugins-tabs.ts +96 -0
  236. package/src/client/plugins-viewers.ts +30 -0
  237. package/src/client/prefs.ts +210 -0
  238. package/src/client/produced-files.ts +120 -0
  239. package/src/client/selection-payload.ts +86 -0
  240. package/src/client/service.ts +859 -0
  241. package/src/client/settings-nav-icon.ts +45 -0
  242. package/src/client/shell-presets.ts +83 -0
  243. package/src/client/sidebar.module.css +2788 -0
  244. package/src/client/sidechat-transcript.ts +321 -0
  245. package/src/client/split-pane.tsx +331 -0
  246. package/src/client/state.ts +1497 -0
  247. package/src/client/subagent-detect.ts +137 -0
  248. package/src/client/subagent-jobs.ts +161 -0
  249. package/src/client/tab-content-memo.ts +55 -0
  250. package/src/client/terminal-font.ts +224 -0
  251. package/src/client/terminal-links.ts +194 -0
  252. package/src/client/theme.ts +110 -0
  253. package/src/client/titlebar-strip.ts +37 -0
  254. package/src/client/upload.ts +187 -0
  255. package/src/client/wco.ts +120 -0
  256. package/src/config.ts +154 -0
  257. package/src/context-types.ts +611 -0
  258. package/src/fs-operations.ts +95 -0
  259. package/src/fs-search.ts +113 -0
  260. package/src/fs-tree.ts +158 -0
  261. package/src/git.ts +446 -0
  262. package/src/html-route.ts +106 -0
  263. package/src/index.ts +1291 -0
  264. package/src/invariant.ts +32 -0
  265. package/src/jobs-routes.ts +257 -0
  266. package/src/open-external.ts +90 -0
  267. package/src/path-security.ts +75 -0
  268. package/src/prefs-shared.ts +280 -0
  269. package/src/pty-deps.ts +240 -0
  270. package/src/pty-manager.ts +376 -0
  271. package/src/sidechat-core.ts +468 -0
  272. package/src/sidechat-routes.ts +344 -0
  273. package/src/subagent-activity.ts +91 -0
  274. package/src/subagent-live-route.ts +93 -0
  275. package/src/tools.ts +482 -0
  276. package/src/trust-fence.ts +84 -0
  277. package/src/wire.ts +100 -0
@@ -0,0 +1,365 @@
1
+ /**
2
+ * The id (Indonesian) dictionary for the betterSidebar namespace.
3
+ *
4
+ * Mirrors the key set of `zh` in `locales.ts`. The sidebar's `t()`
5
+ * consults this dict when `attachBetterLocale(store)` has been called
6
+ * with an active better-locale store whose `active` is `'id'`; absent
7
+ * that, the existing zh/en chain runs unchanged.
8
+ *
9
+ * Translation conventions:
10
+ * - Git vocabulary stays close to the English form (stage, commit, branch, fork).
11
+ * - Settings labels mirror the zh cadence (… perilaku / … cara).
12
+ * - Placeholders keep {name} verbatim (interpolation runs after lookup).
13
+ * - English brand names (VS Code, Cursor, Zed, SSH) stay as-is.
14
+ */
15
+
16
+ export const id: Record<string, string> = {
17
+ files: 'Berkas',
18
+ explorer: 'Explorer',
19
+ git: 'Source Control',
20
+ terminal: 'Terminal',
21
+ editor: 'Editor',
22
+ editorExplorer: 'Perilaku buka berkas',
23
+ editorExplorerDesc: 'Mengontrol cara berkas dibuka',
24
+ editorExplorerMerged: 'Gabung',
25
+ editorExplorerMergedDesc: 'Berkas beralih di tempat di jendela yang sama; jendela baru memulai dengan pohon terbuka',
26
+ editorExplorerSplit: 'Terpisah',
27
+ editorExplorerSplitDesc: 'Jendela tanpa path adalah explorer mandiri (pohon saja); setiap berkas membuka jendelanya sendiri (pohon terpasang, tertutup secara default)',
28
+ editorTreeToggle: 'Panel pohon berkas',
29
+ editorPathPlaceholder: 'Path berkas (relatif terhadap direktori sesi atau absolut), Enter untuk membuka',
30
+ editorSearchPlaceholder: 'Cari berkas berdasarkan nama…',
31
+ editorSearchNoResults: 'Tidak ada berkas yang cocok',
32
+ editorSearchTruncated: 'Terlalu banyak hasil — menampilkan daftar parsial',
33
+ editorEmptyHint: 'Pilih berkas dari panel pohon atau input path di atas untuk mulai pratinjau',
34
+ openFileNewTab: 'Buka di Tab Baru',
35
+ openFileSide: 'Buka di Samping',
36
+ openWithMenu: 'Buka dengan',
37
+ openWithSshSuffix: ' (SSH)',
38
+ pinOpenWith: 'Sematkan ke menu',
39
+ unpinOpenWith: 'Lepas sematan',
40
+ openWithExplorer: 'File Manager',
41
+ openWithVscode: 'VS Code',
42
+ openWithCursor: 'Cursor',
43
+ openWithZed: 'Zed',
44
+ openWithSettingsSshTitle: 'Host remote SSH',
45
+ openWithSettingsSshDesc: 'Kosong = ruang kerja lokal; dengan user@host atau alias SSH, opener VSCode-family beralih ke protokol vscode-remote/ssh-remote dan File Manager / Zed / editor kustom non-VSCode-family disembunyikan dari menu',
46
+ openWithSettingsSshPlaceholder: 'user@host atau alias SSH',
47
+ openWithSettingsCustomTitle: 'Editor kustom',
48
+ openWithSettingsCustomDesc: 'Nama + template URL (placeholder {path}) + flag VSCode-family; dalam mode remote hanya editor VSCode-family yang dapat membuka path remote',
49
+ openWithSettingsAdd: 'Tambah',
50
+ openWithSettingsName: 'Nama',
51
+ openWithSettingsTemplate: 'mis. cursor://file/{path}',
52
+ openWithSettingsFamily: 'VSCode-family',
53
+ openWithSettingsFamilyDesc: 'Editor ini menggunakan dialek URL VSCode (mendukung pembukaan remote SSH)',
54
+ openWithSettingsRemove: 'Hapus',
55
+ openWithSettingsInvalidHint: 'Editor dengan nama hilang atau template tanpa {path} / scheme:// tidak ditampilkan di menu',
56
+ newTab: 'Tab baru',
57
+ openExplorer: 'Explorer',
58
+ brokenSymlink: 'Symlink rusak',
59
+ openGit: 'Panel Git',
60
+ newTerminal: 'Terminal baru',
61
+ terminalLimit: 'Batas terminal tercapai (3)',
62
+ close: 'Tutup',
63
+ closeOtherTabs: 'Tutup Tab Lain',
64
+ closeLeftTabs: 'Tutup Tab di Kiri',
65
+ closeRightTabs: 'Tutup Tab di Kanan',
66
+ moveToFreeWindow: 'Pindahkan ke jendela bebas',
67
+ floatDropHint: 'Lepaskan untuk membuka di jendela bebas',
68
+ dockToSidebar: 'Kembali ke bilah samping',
69
+ pinTerminal: 'Sematkan Terminal',
70
+ pinAgentTerminal: 'Sematkan Terminal Agent',
71
+ pinToWorkspace: 'Sematkan ke Workspace',
72
+ pinToGlobal: 'Sematkan Global',
73
+ unpinTerminal: 'Lepas Sematan',
74
+ pinnedTerminalTooltip: '{kind} · {scope} · {cwd}',
75
+ pinnedTerminalKindUi: 'Terminal UI',
76
+ pinnedTerminalKindAgent: 'Terminal Agent',
77
+ pinnedTerminalScopeWorkspace: 'Disematkan ke workspace',
78
+ pinnedTerminalScopeGlobal: 'Disematkan global',
79
+ pinnedRailLabel: 'Terminal Tersemat',
80
+ closePinnedTerminal: 'Tutup Terminal',
81
+ collapse: 'Lipat sidebar',
82
+ expand: 'Bentangkan sidebar',
83
+ terminalError: 'Koneksi terminal gagal',
84
+ terminalConnectFailed: 'Terminal gagal terhubung berulang kali',
85
+ terminalRetry: 'Coba lagi',
86
+ terminalDepsFailed: 'Dependensi terminal node-pty gagal dimuat',
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
+ terminalDepsProfile: ' (profil terdeteksi: {profile})',
89
+ preview: 'Pratinjau',
90
+ toc: 'Daftar Isi',
91
+ edit: 'Edit',
92
+ mermaidError: 'Render Mermaid gagal',
93
+ mermaidZoomIn: 'Perbesar',
94
+ mermaidZoomOut: 'Perkecil',
95
+ mermaidZoomReset: 'Reset',
96
+ mermaidZoomHint: 'Gulir untuk zoom · seret untuk geser · Esc untuk tutup',
97
+ refresh: 'Segarkan',
98
+ showInFolder: 'Tampilkan di folder',
99
+ refreshUnsavedConfirm: 'File berubah di disk. Menyegarkan akan membuang edit yang belum disimpan. Lanjutkan?',
100
+ save: 'Simpan',
101
+ saved: 'Tersimpan',
102
+ unsaved: 'Belum disimpan',
103
+ saveFailed: 'Gagal menyimpan',
104
+ truncation: 'Berkas terlalu besar — menampilkan 512KB pertama',
105
+ binary: 'Berkas biner, pratinjau tidak tersedia',
106
+ loading: 'Memuat…',
107
+ error: 'Gagal memuat',
108
+ retry: 'Coba lagi',
109
+ splitLeft: 'Bagi ke kiri',
110
+ splitRight: 'Bagi ke kanan',
111
+ splitUp: 'Bagi ke atas',
112
+ splitDown: 'Bagi ke bawah',
113
+ notRepo: 'Direktori ini bukan repositori git',
114
+ noChanges: 'Tidak ada perubahan',
115
+ statusTruncated: 'Terlalu banyak perubahan; hanya 2000 entri pertama yang ditampilkan',
116
+ stage: 'Stage',
117
+ unstage: 'Unstage',
118
+ stageAll: 'Stage semua',
119
+ unstageAll: 'Unstage semua',
120
+ commitPlaceholder: 'Pesan commit (Ctrl+Enter)',
121
+ commit: 'Commit',
122
+ commitError: 'Commit gagal',
123
+ branch: 'Branch',
124
+ worktree: 'Worktree',
125
+ checkoutError: 'Beralih branch gagal',
126
+ history: 'Riwayat',
127
+ changes: 'Perubahan',
128
+ staged: 'Staged',
129
+ unstaged: 'Unstaged',
130
+ cancel: 'Batal',
131
+ diffEmpty: 'Tidak ada perubahan teks',
132
+ diffLoadError: 'Gagal memuat diff',
133
+ diffBinary: 'Biner',
134
+ diffAdded: 'Ditambahkan',
135
+ diffDeleted: 'Dihapus',
136
+ diffRenamed: 'Diubah nama',
137
+ diffExpand: 'Bentangkan {count} baris lagi',
138
+ diffCollapse: 'Lipat',
139
+ discard: 'Buang perubahan',
140
+ discardTitle: 'Buang perubahan',
141
+ discardDesc: 'Ini membuang perubahan worktree "{path}" (tidak dapat dipulihkan).',
142
+ viewCommitDiff: 'Lihat diff commit',
143
+ copyShortHash: 'Salin hash pendek',
144
+ copyFullHash: 'Salin hash lengkap',
145
+ copySubject: 'Salin subjek',
146
+ revertCommit: 'Revert commit',
147
+ revertTitle: 'Revert commit',
148
+ revertDesc: 'Membuat commit baru pada branch saat ini yang membalikkan "{subject}".',
149
+ cherryPickCommit: 'Cherry-pick commit',
150
+ cherryPickTitle: 'Cherry-pick commit',
151
+ cherryPickDesc: 'Menerapkan perubahan dari "{subject}" ke branch saat ini.',
152
+ timeJustNow: 'baru saja',
153
+ timeMinutesAgo: '{n} mnt lalu',
154
+ timeHoursAgo: '{n} j lalu',
155
+ timeYesterday: 'kemarin',
156
+ loadMore: 'Muat lebih banyak',
157
+ historyLoadError: 'Gagal memuat lebih banyak riwayat',
158
+ produced: 'Dihasilkan',
159
+ producedOpen: 'Buka di sidebar',
160
+ disconnected: 'Terminal terputus, menyambung ulang…',
161
+ exited: 'Proses terminal keluar',
162
+ noSession: 'Pilih obrolan untuk menggunakan sidebar',
163
+ pluginNotLoaded: 'Plugin tidak dimuat; tab tidak tersedia untuk sementara:',
164
+ hiddenFiles: 'Berkas tersembunyi',
165
+ parent: 'Direktori induk',
166
+ copied: 'Tersalin',
167
+ copy: 'Salin',
168
+ newFile: 'Berkas baru',
169
+ openEditor: 'Buka editor',
170
+ gitDetail: 'Lihat detail perubahan',
171
+ referenceFile: '@berkas',
172
+ addToConversation: 'Tambahkan ke obrolan',
173
+ copyRelative: 'Salin path relatif',
174
+ copyAbsolute: 'Salin path absolut',
175
+ download: 'Unduh',
176
+ uploadFiles: 'Unggah berkas',
177
+ uploadFolder: 'Unggah folder',
178
+ uploadHere: 'Unggah di sini',
179
+ uploadDropHint: 'Jatuhkan berkas/folder di sini untuk mengunggah',
180
+ uploadDropChat: 'Jatuhkan ke area obrolan: tambahkan gambar ke obrolan',
181
+ uploadTo: 'Unggah ke {dir}',
182
+ uploadingTo: 'Mengunggah ke {dir}…',
183
+ uploadProgress: 'Mengunggah {done}/{total}: {name}',
184
+ uploadDone: 'Diunggah {count} berkas',
185
+ uploadFailed: 'Unggahan gagal: {error}',
186
+ uploadFailedUnknown: 'Galat tak dikenal',
187
+ uploadTooLarge: 'Berkas terlalu besar (melebihi batas unggah)',
188
+ uploadCancelled: 'Unggahan dibatalkan',
189
+ settingsNav: 'Kartu samping',
190
+ settingsIntro: 'Kelola apa yang ditampilkan kartu samping dan perilakunya',
191
+ settingsPopupDesc: 'Konfigurasikan opsi terkait untuk {feature}',
192
+ settingsDone: 'Selesai',
193
+ settingsOpenTitle: 'Buka secara default untuk obrolan baru',
194
+ settingsOpenDesc: 'Bentangkan kartu samping secara otomatis untuk obrolan baru; obrolan yang sudah ada mempertahankan tata letaknya',
195
+ settingsWidthTitle: 'Porsi lebar default',
196
+ settingsWidthDesc: 'Porsi lebar jendela default kartu samping untuk obrolan baru (20–60)',
197
+ settingsWidthSuffix: '%',
198
+ settingsOpenPathTitle: 'Buka berkas obrolan di sidebar',
199
+ settingsOpenPathDesc: 'Buka tautan berkas di obrolan (baris alat, berkas yang dihasilkan, mention) di editor sidebar alih-alih aplikasi default sistem',
200
+ settingsOpenToolsTitle: 'Suntik alat buka sidebar untuk model',
201
+ settingsOpenToolsDesc: 'Saat diaktifkan, model dapat membuka file, folder, dan halaman HTTP(S) di sidebar melalui alat sidebar_open (nonaktif secara default)',
202
+ settingsTitleBarTitle: 'Mode kompatibilitas posisi',
203
+ settingsTitleBarDesc: 'Pilih skema kompatibilitas title-bar: auto-detect (default, konservatif) / Web resmi DSH / shell desktop yang dikenal / kustom (jarak geser + CSS kustom)',
204
+ settingsTitleBarStripTitle: 'Jarak geser',
205
+ settingsTitleBarStripDesc: 'Tinggi strip title-bar: seberapa jauh tombol sidebar dan konten bergeser ke bawah dalam px (0–120, default 40; berlaku di bawah skema kustom)',
206
+ settingsSchemeAutoTitle: 'Auto-detect',
207
+ settingsSchemeAutoDesc: 'Konservatif: hanya API Window Controls Overlay standar yang berkontribusi (tinggi caption-overlay nyata); lingkungan web polos tidak dimodifikasi',
208
+ settingsSchemeWebTitle: 'Web resmi DSH',
209
+ settingsSchemeWebDesc: 'Deklarasikan secara eksplisit UI web resmi: tanpa adaptasi sama sekali (bahkan geometri WCO standar tidak berlaku)',
210
+ settingsSchemeCustomTitle: 'Kustom',
211
+ settingsSchemeCustomDesc: 'Kendali penuh: injeksikan CSS kustom (dapat menimpa style bawaan) dan atur jarak geser title-bar',
212
+ settingsSchemeDetectedSuffix: 'terdeteksi',
213
+ settingsCustomCssTitle: 'CSS kustom',
214
+ settingsCustomCssDesc: 'Style yang ditambahkan di akhir halaman (yang ditulis kemudian menang pada seri; gunakan !important untuk menimpa variabel inline yang ditulis JS)',
215
+ settingsCustomCssPlaceholder: '/* mis. sediakan 36px untuk shell dengan title-bar yang digambar sendiri */\nhtml[data-dsh-title-bar-height="36"] {\n --dsh-title-bar-strip: 36px !important;\n}',
216
+ settingsSaveFailed: 'Gagal menyimpan',
217
+ settingsConflict: 'Pengaturan diubah di jendela lain — silakan coba lagi',
218
+ binaryNoPreview: 'Tipe berkas ini tidak dapat dipratinjau',
219
+ downloadToView: 'Unduh untuk melihat',
220
+ settingsSubagentTitle: 'Buka otomatis halaman Tasks saat subagen muncul',
221
+ settingsSubagentDesc: 'Bentangkan kartu samping dan buka halaman Tasks saat obrolan saat ini menelurkan subagen baru; matikan untuk membukanya secara manual',
222
+ settingsJobsTitle: 'Buka otomatis halaman Jobs saat ada tugas latar baru',
223
+ 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',
224
+ settingsToolsTitle: 'Suntik alat terminal untuk model',
225
+ settingsToolsDesc: 'Saat diaktifkan, model dapat membuat dan mengendalikan terminal sidebar melalui 8 alat terminal_* (nonaktif secara default)',
226
+ settingsFontFamilyTitle: 'Keluarga font terminal',
227
+ settingsFontFamilyDesc: 'Keluarga font terminal kustom (stack CSS font-family seperti "JetBrains Mono", monospace; biarkan kosong untuk mengikuti font monospace tema)',
228
+ settingsFontFamilyPlaceholder: '"JetBrains Mono", monospace',
229
+ settingsFontSizeTitle: 'Ukuran font terminal',
230
+ settingsFontSizeDesc: 'Ukuran font terminal dalam px (9–32, default 13)',
231
+ settingsFontSizeSuffix: 'px',
232
+ settingsShellTitle: 'Path shell',
233
+ settingsShellDesc: 'Shell yang dibangkitkan untuk terminal UI dan model (path absolut atau executable polos). Kosong mempertahankan urutan lama: config.shell yaml → $SHELL / login shell / powershell.exe Windows. Berlaku untuk terminal yang dibuka setelahnya',
234
+ settingsShellPlaceholder: 'mis. /bin/zsh (kosong = auto)',
235
+ settingsShellArgsTitle: 'Argumen shell',
236
+ settingsShellArgsDesc: 'Argumen shell eksplisit, dipisah spasi; jika tidak kosong, sepenuhnya menggantikan default (kontrak yang sama dengan shellArgs yaml)',
237
+ settingsShellArgsPlaceholder: 'mis. -l (kosong = default)',
238
+ settingsTabsTitle: 'Konten sidebar',
239
+ settingsViewersTitle: 'Pratinjau berkas',
240
+ settingsGeneralTitle: 'Umum',
241
+ settingsPopup: 'Pengaturan fitur',
242
+ settingsViewerCatchAll: 'Catch-all: berkas apa pun',
243
+ viewerImage: 'Gambar',
244
+ viewerPdf: 'PDF',
245
+ viewerMarkdown: 'Markdown',
246
+ viewerCode: 'Kode',
247
+ viewerBinary: 'Unduhan biner',
248
+ viewerHtml: 'HTML',
249
+ browser: 'Browser',
250
+ browserPlaceholder: 'Masukkan URL, mis. example.com',
251
+ browserGo: 'Buka',
252
+ browserBack: 'Mundur',
253
+ browserForward: 'Maju',
254
+ browserStart: 'Masukkan URL untuk mulai menjelajah (mode sandbox)',
255
+ browserBlockedScheme: 'Diblokir: hanya URL http/https yang diizinkan',
256
+ browserBlockedLoopback: 'Diblokir: alamat lokal dan internal tidak dapat dijelajahi di sini',
257
+ browserInvalid: 'URL tidak valid',
258
+ browserNoSandboxWarning: 'Sandbox mati: halaman saat ini berjalan dengan hak penuh GUI (aktifkan kembali di pengaturan)',
259
+ htmlNoSandboxWarning: 'Sandbox mati: HTML ini berjalan dengan hak penuh GUI (aktifkan kembali di pengaturan)',
260
+ sandboxStatusOn: 'Mode sandbox: aktif · halaman tidak dapat mengakses data GUI atau berkas lokal; login dan cookie pihak ketiga mungkin tidak berfungsi',
261
+ sandboxUnlock: 'Nonaktifkan sementara (tidak aman)',
262
+ sandboxRestore: 'Pulihkan sandbox',
263
+ settingsHtmlDefaultUnsafeTitle: 'Buka pratinjau HTML tanpa sandbox secara default (tidak aman)',
264
+ settingsHtmlDefaultUnsafeDesc: 'Saat aktif, setiap pratinjau HTML yang baru dibuka dimulai dalam keadaan tanpa sandbox (asal yang sama dengan GUI — dapat membaca berkas sesi dan API internal); baris status masih menawarkan pemulihan sekali ketuk',
265
+ settingsHtmlSandboxTitle: 'Nonaktifkan sandbox pratinjau HTML (tidak aman)',
266
+ settingsHtmlSandboxDesc: 'Dengan sandbox mati, HTML yang dipratinjau berjalan dengan asal yang sama dengan GUI: dapat membaca berkas sesi, penyimpanan lokal, dan memanggil API internal. Hanya aktifkan untuk berkas yang sepenuhnya tepercaya',
267
+ settingsBrowserSandboxTitle: 'Nonaktifkan sandbox browser (tidak aman)',
268
+ settingsBrowserSandboxDesc: 'Dengan sandbox mati, situs yang dikunjungi berjalan dengan asal yang sama dengan GUI: dapat membaca data sesi dan menyamar sebagai sesi login Anda. Hanya aktifkan untuk situs yang sepenuhnya tepercaya',
269
+ settingsBrowserLinksTitle: 'Buka tautan eksternal obrolan di sidebar',
270
+ settingsBrowserLinksDesc: 'Saat aktif, mengeklik tautan eksternal di obrolan atau GUI membuka sidebar alih-alih jendela baru; HTTP dan HTTPS dikendalikan terpisah oleh sakelar di bawah; Ctrl/Cmd+klik selalu menembus',
271
+ settingsBrowserHttpTitle: 'Buka halaman HTTP di sidebar',
272
+ settingsBrowserHttpDesc: 'Saat aktif, mengeklik tautan eksternal HTTP di obrolan atau GUI membuka sidebar (halaman plugin yang mendeklarasikan urlTarget menang); Ctrl/Cmd+klik selalu menembus',
273
+ settingsBrowserHttpsTitle: 'Buka halaman HTTPS di sidebar',
274
+ settingsBrowserHttpsDesc: 'Saat aktif, mengeklik tautan eksternal HTTPS di obrolan atau GUI membuka sidebar. Nonaktif secara default: kebanyakan situs HTTPS menolak untuk disematkan, jadi browser sistem adalah default yang lebih mulus',
275
+ settingsBrowserLoopbackTitle: 'Alamat lokal yang diizinkan',
276
+ settingsBrowserLoopbackDesc: 'Daftar putih alamat loopback yang dipisahkan koma (mis. localhost:5174 atau 127.0.0.1:8080) yang dapat dikunjungi browser sidebar; kosong memblokir semua alamat lokal secara default. Sandbox tetap berlaku — halaman tidak dapat membaca data GUI',
277
+ settingsBrowserLoopbackPlaceholder: 'mis. localhost:5174, 127.0.0.1:8080',
278
+ browserOpenExternal: 'Buka di browser',
279
+ browserEmbedBlocked: '{host} menolak untuk disematkan',
280
+ browserEmbedBlockedDesc: 'Situs melarang ditampilkan di dalam halaman lain (X-Frame-Options / frame-ancestors), sehingga tidak dapat dimuat di sidebar. Buka langsung di browser Anda.',
281
+ browserEmbedAnyway: 'Tetap muat',
282
+ subagent: 'Tasks',
283
+ openSubagent: 'Tasks',
284
+ subagentMainAgent: 'Agen utama',
285
+ subagentEmpty: 'Tidak ada subagen',
286
+ subagentEmptyDesc: 'Subagen yang dibangkitkan di bawah agen utama akan muncul di sini',
287
+ subagentRunning: 'Berjalan',
288
+ subagentInactive: 'Menganggur',
289
+ subagentModeOneShot: 'Sekali pakai',
290
+ subagentModeContinuable: 'Dapat dilanjutkan',
291
+ subagentCount: '{count} subagen',
292
+ subagentCountRunning: '{count} subagen · {running} berjalan',
293
+ subagentDiagCorrupt: 'Rusak',
294
+ subagentDiagUnsupported: 'Tidak didukung',
295
+ subagentDiagUnavailable: 'Tidak tersedia',
296
+ subagentThinking: 'Berpikir…',
297
+ sideChat: 'Side Chat (beta)',
298
+ sideChatNew: 'Thread baru',
299
+ sideChatUntitled: 'Thread baru',
300
+ sideChatEmpty: 'Tidak ada obrolan samping',
301
+ sideChatEmptyDesc: 'Setiap obrolan samping adalah tab sendiri di strip tab — mewarisi konteks sesi saat ini dan tidak pernah masuk ke obrolan utama',
302
+ sideChatCreating: 'Membuat obrolan samping…',
303
+ sideChatRetry: 'Coba lagi',
304
+ sideChatThreads: 'Beralih thread / baru',
305
+ sideChatSave: 'Simpan sebagai sesi baru',
306
+ sideChatSaveTitle: 'Promosikan thread ini ke sesi tingkat atas dalam daftar sesi utama',
307
+ sideChatSaved: 'Tersimpan sebagai sesi baru',
308
+ sideChatNoTurn: 'Simpan tersedia setelah giliran pertama selesai',
309
+ sideChatPendingDrop: 'Tindak lanjut yang belum terjawab terakhir tidak akan disertakan dalam sesi yang disimpan',
310
+ sideChatFirstPlaceholder: 'Ajukan pertanyaan pertama — konteks diwarisi…',
311
+ sideChatComposerPlaceholder: 'Ajukan tindak lanjut…',
312
+ sideChatThinking: 'Mendalami…',
313
+ sideChatThink: 'Berpikir',
314
+ sideChatInjection: 'Konteks disuntik',
315
+ sideChatSend: 'Kirim',
316
+ sideChatCancel: 'Hentikan',
317
+ sideChatCancelTitle: 'Batalkan giliran yang berjalan (pekerjaan antrean dipertahankan)',
318
+ sideChatClose: 'Tutup thread',
319
+ sideChatCloseTitle: 'Lepaskan agen thread (riwayat dipertahankan)',
320
+ sideChatError: 'Kesalahan Side Chat: {message}',
321
+ jobs: 'Tugas latar',
322
+ jobsCount: '{count} tugas latar',
323
+ jobsCountRunning: '{count} tugas latar · {running} berjalan',
324
+ jobStatusRunning: 'Berjalan',
325
+ jobStatusStopping: 'Menghentikan',
326
+ jobStatusCompleted: 'Selesai',
327
+ jobStatusKilled: 'Dihentikan',
328
+ jobStatusFailed: 'Gagal',
329
+ jobDurationSeconds: '{seconds}d',
330
+ jobDurationMinutes: '{minutes}m {seconds}d',
331
+ jobDurationHours: '{hours}j {minutes}m',
332
+ jobViewOutput: 'Lihat keluaran',
333
+ jobHideOutput: 'Sembunyikan keluaran',
334
+ jobNoOutput: 'Belum ada keluaran',
335
+ jobNotReadYet: 'Menunggu model membaca tugas ini; keluarannya muncul di sini setelah model menjalankan job_output',
336
+ jobOutputTruncated: 'Keluaran dipotong',
337
+ jobOutputError: 'Gagal membaca keluaran',
338
+ jobKill: 'Hentikan',
339
+ jobKillConfirm: 'Klik lagi untuk mengonfirmasi penghentian',
340
+ jobKillError: 'Penghentian gagal',
341
+ addPluginsTabCard: 'Tambah plugin tab',
342
+ addPluginsTabCardDesc: 'Daftarkan halaman sidebar baru',
343
+ addPluginsViewerCard: 'Tambah plugin pratinjau',
344
+ addPluginsViewerCardDesc: 'Daftarkan pratinjau tipe berkas',
345
+ addPluginsTabDesc: 'Halaman sidebar (tab) dapat diperluas oleh plugin. Plugin mendaftar melalui layanan ctx.betterSidebar; klik Install menyalin perintah instalasi — tempel ke terminal tempat profil DSH Anda berada dan jalankan.',
346
+ addPluginsViewerDesc: 'Pratinjau berkas dapat diperluas oleh plugin. Plugin mendaftar melalui layanan ctx.betterSidebar; klik Install menyalin perintah instalasi — tempel ke terminal tempat profil DSH Anda berada dan jalankan.',
347
+ addPluginsBrowseMore: 'Jelajahi lebih banyak plugin di GitHub (topic: dsh-coding-sidebar)',
348
+ addPluginsSearch: 'Cari berdasarkan nama / deskripsi plugin…',
349
+ addPluginsNoMatch: 'Tidak ada plugin yang cocok',
350
+ addPluginsRecommended: 'Plugin yang direkomendasikan',
351
+ addPluginsEmpty: 'Belum ada plugin yang dikurasi — publikasikan plugin Anda di bawah topik GitHub',
352
+ openPlugin: 'Buka',
353
+ copyInstall: 'Salin perintah instalasi',
354
+ pluginOfficeDesc: 'Pratinjau Office-suite (.docx / .xlsx / .pptx) untuk editor dsh-coding-sidebar, menjaga pustaka render Office yang berat tetap di luar bundle inti',
355
+ pluginFlowglassDesc: 'Flowgraph sesi langsung dengan tiga lajur untuk pengguna, asisten, dan panggilan alat, plus grup paralel, cabang sub-agen, drill-down, dan status langsung; mendaftarkan tab Flowglass native saat dsh-coding-sidebar terpasang dan mempertahankan laci mandirinya sebagai fallback',
356
+ pluginGitForgeDesc: 'Tab Git Forge: pustaka akun GitHub/Gitea (dan forge lain) + pemberian izin per proyek + kebijakan push yang ditegakkan keras; token tetap di rahasia lokal (tidak pernah dalam konteks model); alat GitForge hanya-baca dan helper kredensial HTTPS agen',
357
+ pluginGitRemotesDesc: 'Tab Git Remotes: branch/upstream/ahead-behind, fetch (prune opsional), ff-only pull, dan push hanya setelah konfirmasi dalam tab. Tidak menggantikan tab stage/commit Git bawaan, dan tidak menawarkan force-push atau alat auto-push model',
358
+ pluginSentinelDesc: 'Sistem bangun agen berbasis kondisi: sensor berkas/proses/port/http/perintah/webhook membangunkan sesi yang tidur saat kondisi terpicu; mendaftarkan tab "Sentinel" dengan tabel pengawasan server-wide',
359
+ pluginSidebarQaDesc: 'Select-and-ask: Pilih teks obrolan → ajukan di panel kanan → sesi tindak lanjut khusus (❓追问) di ruang kerja yang sama; model no-thinking yang cepat mengompresi konteks utama dan menyuntiknya bersama kutipan, tanpa mengganggu obrolan utama. Tindak lanjut dapat bersarang, dilanjutkan, dan diarsipkan',
360
+ pluginSshTunnelDesc: 'Tab SSH Tunnel: inventaris multi-host + pemberian izin per proyek + rahasia lokal; alat SSHManager (exec/SFTP/strategi sesi); terminal interaktif pusat dan SFTP dua panel',
361
+ pluginTurnReviewDesc: 'Gerbang manusia pada giliran yang baru selesai: Approve / Request changes per path dengan komentar opsional; path dikelompokkan berdasarkan sesi utama / subagen / tidak teratribusi; diff snapshot-vs-now inline sebelum Anda memutuskan. Tanpa fork, tanpa /rewind',
362
+ pluginVideoPreviewDesc: 'Pratinjau video inline (.mp4/.webm/.mov/.mkv/.avi dll.) untuk editor dsh-coding-sidebar, didukung oleh rute host /video khusus dengan dukungan HTTP Range (206) — scrubbing berfungsi dan berkas tidak dibatasi oleh mediaLimit 20MB',
363
+ pluginDocsPanelDesc: 'Dokumen global di sidebar DSH: baca catatan Markdown Anda sendiri dari ruang kerja apa pun — daftar berkas, kerangka, buka di Chrome / VS Code, dan tombol salin; direktori docs dapat dikonfigurasi (default ~/.dsh/docs)',
364
+ pluginEgoBrowserDesc: 'Browser agen untuk DeepSeek Harness: 32 alat ego_* menggerakkan Chromium sungguhan; tab «ego browser» native di bilah samping menampilkan langsung setiap halaman yang dikunjungi agen — Anda bisa mengklik, menyeret, dan mengetik untuk mengambil alih. Tab terdaftar otomatis jika dsh-coding-sidebar terpasang; jika tidak, jatuh ke gelembung mengambang',
365
+ }