@deepseek-harness-tui/dsh-tui 0.10.2 → 0.11.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/README.md +171 -124
  2. package/bin/dsh-tui.js +748 -22
  3. package/cordis.patch.yml +38 -10
  4. package/cordis.yml +2 -0
  5. package/lib/types/adapter/channel/session-projection.d.ts.map +1 -1
  6. package/lib/types/adapter/channel/session-projection.js +2 -0
  7. package/lib/types/adapter/channel/ui-policy.d.ts +4 -1
  8. package/lib/types/adapter/channel/ui-policy.d.ts.map +1 -1
  9. package/lib/types/adapter/channel/ui-policy.js +5 -1
  10. package/lib/types/adapter/kernel/host-facade.d.ts.map +1 -1
  11. package/lib/types/adapter/kernel/host-facade.js +1 -0
  12. package/lib/types/adapter/kernel/replay.d.ts.map +1 -1
  13. package/lib/types/adapter/kernel/replay.js +3 -0
  14. package/lib/types/adapter/kernel/runtime.d.ts.map +1 -1
  15. package/lib/types/adapter/kernel/runtime.js +2 -0
  16. package/lib/types/adapter/kernel/slices/workspace.d.ts.map +1 -1
  17. package/lib/types/adapter/kernel/slices/workspace.js +1 -0
  18. package/lib/types/adapter/ports/channel-ui.d.ts +22 -2
  19. package/lib/types/adapter/ports/channel-ui.d.ts.map +1 -1
  20. package/lib/types/adapter/ports/channel-view.d.ts +66 -0
  21. package/lib/types/adapter/ports/channel-view.d.ts.map +1 -1
  22. package/lib/types/adapter/ports/channel-workspace.d.ts +23 -0
  23. package/lib/types/adapter/ports/channel-workspace.d.ts.map +1 -1
  24. package/lib/types/adapter/ports/workspace.d.ts +2 -0
  25. package/lib/types/adapter/ports/workspace.d.ts.map +1 -1
  26. package/lib/types/adapter/upstream/workspace-driver.d.ts.map +1 -1
  27. package/lib/types/adapter/upstream/workspace-driver.js +10 -2
  28. package/lib/types/commands.d.ts.map +1 -1
  29. package/lib/types/commands.js +1 -0
  30. package/lib/types/components/ContextBarView.d.ts +15 -7
  31. package/lib/types/components/ContextBarView.d.ts.map +1 -1
  32. package/lib/types/components/ContextBarView.js +26 -22
  33. package/lib/types/components/ImagePreviewOverlay.d.ts.map +1 -1
  34. package/lib/types/components/ImagePreviewOverlay.js +11 -5
  35. package/lib/types/components/Markdown.d.ts +11 -1
  36. package/lib/types/components/Markdown.d.ts.map +1 -1
  37. package/lib/types/components/Markdown.js +20 -2
  38. package/lib/types/components/MermaidDiagram.d.ts +13 -0
  39. package/lib/types/components/MermaidDiagram.d.ts.map +1 -0
  40. package/lib/types/components/MermaidDiagram.js +61 -0
  41. package/lib/types/components/MessageList.d.ts +26 -1
  42. package/lib/types/components/MessageList.d.ts.map +1 -1
  43. package/lib/types/components/MessageList.js +72 -7
  44. package/lib/types/components/PageMargin.d.ts +1 -1
  45. package/lib/types/components/PromptInput.d.ts +37 -1
  46. package/lib/types/components/PromptInput.d.ts.map +1 -1
  47. package/lib/types/components/PromptInput.js +243 -28
  48. package/lib/types/components/ScrollbarGutter.d.ts +20 -5
  49. package/lib/types/components/ScrollbarGutter.d.ts.map +1 -1
  50. package/lib/types/components/ScrollbarGutter.js +88 -10
  51. package/lib/types/components/StreamingMarkdown.d.ts.map +1 -1
  52. package/lib/types/components/StreamingMarkdown.js +30 -28
  53. package/lib/types/components/Tooltip.d.ts.map +1 -1
  54. package/lib/types/components/Tooltip.js +45 -7
  55. package/lib/types/components/messages/UserPromptMessage.d.ts.map +1 -1
  56. package/lib/types/components/messages/UserPromptMessage.js +5 -7
  57. package/lib/types/components/messages/useImageInspection.d.ts.map +1 -1
  58. package/lib/types/components/messages/useImageInspection.js +19 -9
  59. package/lib/types/components/promptDraftCache.d.ts +102 -0
  60. package/lib/types/components/promptDraftCache.d.ts.map +1 -0
  61. package/lib/types/components/promptDraftCache.js +76 -0
  62. package/lib/types/components/questions/AskUserQuestionPanel.d.ts +17 -1
  63. package/lib/types/components/questions/AskUserQuestionPanel.d.ts.map +1 -1
  64. package/lib/types/components/questions/AskUserQuestionPanel.js +40 -7
  65. package/lib/types/components/questions/QuestionMinimizedBar.d.ts +12 -0
  66. package/lib/types/components/questions/QuestionMinimizedBar.d.ts.map +1 -0
  67. package/lib/types/components/questions/QuestionMinimizedBar.js +43 -0
  68. package/lib/types/components/sessions/SessionListRow.d.ts +23 -1
  69. package/lib/types/components/sessions/SessionListRow.d.ts.map +1 -1
  70. package/lib/types/components/sessions/SessionListRow.js +52 -5
  71. package/lib/types/components/workspaces/HomeWorkspaceRow.d.ts +49 -0
  72. package/lib/types/components/workspaces/HomeWorkspaceRow.d.ts.map +1 -0
  73. package/lib/types/components/workspaces/HomeWorkspaceRow.js +50 -0
  74. package/lib/types/dsh-adapter/bundled-presets.d.ts +10 -0
  75. package/lib/types/dsh-adapter/bundled-presets.d.ts.map +1 -0
  76. package/lib/types/dsh-adapter/bundled-presets.js +80 -0
  77. package/lib/types/dsh-adapter/channel/action-readiness.d.ts +1 -1
  78. package/lib/types/dsh-adapter/channel/action-readiness.d.ts.map +1 -1
  79. package/lib/types/dsh-adapter/channel/action-readiness.js +3 -0
  80. package/lib/types/dsh-adapter/channel/agent-view-projection.d.ts +1 -1
  81. package/lib/types/dsh-adapter/channel/agent-view-projection.d.ts.map +1 -1
  82. package/lib/types/dsh-adapter/channel/agent-view-projection.js +19 -2
  83. package/lib/types/dsh-adapter/channel/background-action.d.ts.map +1 -1
  84. package/lib/types/dsh-adapter/channel/background-action.js +52 -29
  85. package/lib/types/dsh-adapter/channel/binding.d.ts +19 -2
  86. package/lib/types/dsh-adapter/channel/binding.d.ts.map +1 -1
  87. package/lib/types/dsh-adapter/channel/binding.js +78 -18
  88. package/lib/types/dsh-adapter/channel/composer-images.d.ts +5 -0
  89. package/lib/types/dsh-adapter/channel/composer-images.d.ts.map +1 -1
  90. package/lib/types/dsh-adapter/channel/composer-images.js +105 -6
  91. package/lib/types/dsh-adapter/channel/context-bookkeeping.d.ts +8 -0
  92. package/lib/types/dsh-adapter/channel/context-bookkeeping.d.ts.map +1 -1
  93. package/lib/types/dsh-adapter/channel/context-bookkeeping.js +3 -2
  94. package/lib/types/dsh-adapter/channel/ide-selection.d.ts +58 -0
  95. package/lib/types/dsh-adapter/channel/ide-selection.d.ts.map +1 -0
  96. package/lib/types/dsh-adapter/channel/ide-selection.js +226 -0
  97. package/lib/types/dsh-adapter/channel/input-delivery.d.ts +6 -1
  98. package/lib/types/dsh-adapter/channel/input-delivery.d.ts.map +1 -1
  99. package/lib/types/dsh-adapter/channel/input-delivery.js +9 -1
  100. package/lib/types/dsh-adapter/channel/local-actions.d.ts +3 -19
  101. package/lib/types/dsh-adapter/channel/local-actions.d.ts.map +1 -1
  102. package/lib/types/dsh-adapter/channel/local-actions.js +2 -1
  103. package/lib/types/dsh-adapter/channel/model-actions.d.ts +4 -1
  104. package/lib/types/dsh-adapter/channel/model-actions.d.ts.map +1 -1
  105. package/lib/types/dsh-adapter/channel/model-actions.js +82 -6
  106. package/lib/types/dsh-adapter/channel/model-switch.d.ts.map +1 -1
  107. package/lib/types/dsh-adapter/channel/model-switch.js +49 -31
  108. package/lib/types/dsh-adapter/channel/projection.d.ts +4 -0
  109. package/lib/types/dsh-adapter/channel/projection.d.ts.map +1 -1
  110. package/lib/types/dsh-adapter/channel/projection.js +29 -19
  111. package/lib/types/dsh-adapter/channel/reports.d.ts.map +1 -1
  112. package/lib/types/dsh-adapter/channel/reports.js +4 -12
  113. package/lib/types/dsh-adapter/channel/session-fork.d.ts.map +1 -1
  114. package/lib/types/dsh-adapter/channel/session-fork.js +26 -2
  115. package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts +3 -0
  116. package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts.map +1 -1
  117. package/lib/types/dsh-adapter/channel/session-live-adoption.js +1 -0
  118. package/lib/types/dsh-adapter/channel/session-metadata.d.ts +10 -0
  119. package/lib/types/dsh-adapter/channel/session-metadata.d.ts.map +1 -1
  120. package/lib/types/dsh-adapter/channel/session-metadata.js +2 -2
  121. package/lib/types/dsh-adapter/channel/session-resume.d.ts +11 -2
  122. package/lib/types/dsh-adapter/channel/session-resume.d.ts.map +1 -1
  123. package/lib/types/dsh-adapter/channel/session-resume.js +291 -94
  124. package/lib/types/dsh-adapter/channel/session-rewind.d.ts.map +1 -1
  125. package/lib/types/dsh-adapter/channel/session-rewind.js +34 -16
  126. package/lib/types/dsh-adapter/channel/session-tree-actions.d.ts.map +1 -1
  127. package/lib/types/dsh-adapter/channel/session-tree-actions.js +19 -3
  128. package/lib/types/dsh-adapter/channel/settings-host.d.ts.map +1 -1
  129. package/lib/types/dsh-adapter/channel/settings-host.js +4 -3
  130. package/lib/types/dsh-adapter/channel/state.d.ts +1 -1
  131. package/lib/types/dsh-adapter/channel/state.d.ts.map +1 -1
  132. package/lib/types/dsh-adapter/channel/state.js +1 -1
  133. package/lib/types/dsh-adapter/channel/transcript.d.ts.map +1 -1
  134. package/lib/types/dsh-adapter/channel/transcript.js +6 -12
  135. package/lib/types/dsh-adapter/channel/types.d.ts +6 -1
  136. package/lib/types/dsh-adapter/channel/types.d.ts.map +1 -1
  137. package/lib/types/dsh-adapter/channel/workspace-actions.d.ts +4 -1
  138. package/lib/types/dsh-adapter/channel/workspace-actions.d.ts.map +1 -1
  139. package/lib/types/dsh-adapter/channel/workspace-actions.js +41 -1
  140. package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
  141. package/lib/types/dsh-adapter/channel.js +67 -6
  142. package/lib/types/dsh-adapter/compat/messages.d.ts +15 -0
  143. package/lib/types/dsh-adapter/compat/messages.d.ts.map +1 -0
  144. package/lib/types/dsh-adapter/compat/messages.js +15 -0
  145. package/lib/types/dsh-adapter/compat/settings.d.ts +33 -0
  146. package/lib/types/dsh-adapter/compat/settings.d.ts.map +1 -0
  147. package/lib/types/dsh-adapter/compat/settings.js +43 -0
  148. package/lib/types/dsh-adapter/compat/shell.d.ts +25 -0
  149. package/lib/types/dsh-adapter/compat/shell.d.ts.map +1 -0
  150. package/lib/types/dsh-adapter/compat/shell.js +11 -0
  151. package/lib/types/dsh-adapter/contract.d.ts +4 -4
  152. package/lib/types/dsh-adapter/contract.d.ts.map +1 -1
  153. package/lib/types/dsh-adapter/contract.js +15 -6
  154. package/lib/types/dsh-adapter/ide-channel.d.ts +224 -0
  155. package/lib/types/dsh-adapter/ide-channel.d.ts.map +1 -0
  156. package/lib/types/dsh-adapter/ide-channel.js +556 -0
  157. package/lib/types/dsh-adapter/index.d.ts +18 -3
  158. package/lib/types/dsh-adapter/index.d.ts.map +1 -1
  159. package/lib/types/dsh-adapter/index.js +32 -5
  160. package/lib/types/dsh-adapter/plugin.d.ts +5 -2
  161. package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
  162. package/lib/types/dsh-adapter/plugin.js +173 -42
  163. package/lib/types/dsh-adapter/preset-resolution.d.ts +8 -0
  164. package/lib/types/dsh-adapter/preset-resolution.d.ts.map +1 -1
  165. package/lib/types/dsh-adapter/preset-resolution.js +10 -0
  166. package/lib/types/dsh-adapter/session-mount-heartbeat.d.ts +53 -0
  167. package/lib/types/dsh-adapter/session-mount-heartbeat.d.ts.map +1 -0
  168. package/lib/types/dsh-adapter/session-mount-heartbeat.js +100 -0
  169. package/lib/types/dsh-adapter/sessionTree.d.ts.map +1 -1
  170. package/lib/types/dsh-adapter/sessionTree.js +3 -2
  171. package/lib/types/dsh-adapter/subagents.d.ts.map +1 -1
  172. package/lib/types/dsh-adapter/subagents.js +6 -5
  173. package/lib/types/dsh-adapter/workspaces.d.ts +46 -3
  174. package/lib/types/dsh-adapter/workspaces.d.ts.map +1 -1
  175. package/lib/types/dsh-adapter/workspaces.js +116 -0
  176. package/lib/types/effortPrefs.d.ts +15 -3
  177. package/lib/types/effortPrefs.d.ts.map +1 -1
  178. package/lib/types/effortPrefs.js +37 -3
  179. package/lib/types/homePrefs.d.ts +15 -0
  180. package/lib/types/homePrefs.d.ts.map +1 -0
  181. package/lib/types/homePrefs.js +53 -0
  182. package/lib/types/i18n.d.ts +257 -296
  183. package/lib/types/i18n.d.ts.map +1 -1
  184. package/lib/types/i18n.js +78 -84
  185. package/lib/types/ink/colorize.d.ts +10 -0
  186. package/lib/types/ink/colorize.d.ts.map +1 -1
  187. package/lib/types/ink/colorize.js +21 -0
  188. package/lib/types/ink/components/ScrollBox.d.ts.map +1 -1
  189. package/lib/types/ink/components/ScrollBox.js +12 -1
  190. package/lib/types/ink/dom.d.ts +1 -0
  191. package/lib/types/ink/dom.d.ts.map +1 -1
  192. package/lib/types/ink/hooks/use-copy-on-select.d.ts +5 -1
  193. package/lib/types/ink/hooks/use-copy-on-select.d.ts.map +1 -1
  194. package/lib/types/ink/hooks/use-copy-on-select.js +15 -1
  195. package/lib/types/ink/ink.d.ts.map +1 -1
  196. package/lib/types/ink/ink.js +36 -1
  197. package/lib/types/ink/output.d.ts +10 -1
  198. package/lib/types/ink/output.d.ts.map +1 -1
  199. package/lib/types/ink/output.js +109 -17
  200. package/lib/types/ink/render-border.d.ts +6 -1
  201. package/lib/types/ink/render-border.d.ts.map +1 -1
  202. package/lib/types/ink/render-border.js +25 -9
  203. package/lib/types/ink/render-node-to-output.d.ts.map +1 -1
  204. package/lib/types/ink/render-node-to-output.js +48 -6
  205. package/lib/types/ink/renderer.d.ts +6 -0
  206. package/lib/types/ink/renderer.d.ts.map +1 -1
  207. package/lib/types/ink/renderer.js +2 -1
  208. package/lib/types/ink/selection.d.ts +60 -0
  209. package/lib/types/ink/selection.d.ts.map +1 -1
  210. package/lib/types/ink/selection.js +129 -0
  211. package/lib/types/ink/sixel-graphics.d.ts +19 -1
  212. package/lib/types/ink/sixel-graphics.d.ts.map +1 -1
  213. package/lib/types/ink/sixel-graphics.js +124 -12
  214. package/lib/types/ink/terminal-image.d.ts +18 -1
  215. package/lib/types/ink/terminal-image.d.ts.map +1 -1
  216. package/lib/types/ink/terminal.d.ts +17 -0
  217. package/lib/types/ink/terminal.d.ts.map +1 -1
  218. package/lib/types/ink/terminal.js +20 -1
  219. package/lib/types/screens/Chat.d.ts +17 -1
  220. package/lib/types/screens/Chat.d.ts.map +1 -1
  221. package/lib/types/screens/Chat.js +284 -72
  222. package/lib/types/screens/SessionSupervisor.d.ts +84 -0
  223. package/lib/types/screens/SessionSupervisor.d.ts.map +1 -0
  224. package/lib/types/screens/SessionSupervisor.js +350 -0
  225. package/lib/types/screens/SessionTree.js +2 -2
  226. package/lib/types/screens/Settings.d.ts.map +1 -1
  227. package/lib/types/screens/Settings.js +32 -9
  228. package/lib/types/screens/StatusLine.d.ts +13 -0
  229. package/lib/types/screens/StatusLine.d.ts.map +1 -1
  230. package/lib/types/screens/StatusLine.js +36 -17
  231. package/lib/types/screens/StatusMetrics.d.ts +79 -22
  232. package/lib/types/screens/StatusMetrics.d.ts.map +1 -1
  233. package/lib/types/screens/StatusMetrics.js +153 -88
  234. package/lib/types/screens/sessionSupervisor/model.d.ts +83 -0
  235. package/lib/types/screens/sessionSupervisor/model.d.ts.map +1 -0
  236. package/lib/types/screens/sessionSupervisor/model.js +69 -0
  237. package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts +120 -0
  238. package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts.map +1 -0
  239. package/lib/types/screens/sessionSupervisor/useSessionSupervisor.js +593 -0
  240. package/lib/types/sessionMounts.d.ts +272 -0
  241. package/lib/types/sessionMounts.d.ts.map +1 -0
  242. package/lib/types/sessionMounts.js +706 -0
  243. package/lib/types/sessions/format.d.ts.map +1 -1
  244. package/lib/types/sessions/format.js +4 -1
  245. package/lib/types/sessions/resumeFailure.d.ts +38 -0
  246. package/lib/types/sessions/resumeFailure.d.ts.map +1 -0
  247. package/lib/types/sessions/resumeFailure.js +58 -0
  248. package/lib/types/terminal-utils/mermaid.d.ts +44 -0
  249. package/lib/types/terminal-utils/mermaid.d.ts.map +1 -0
  250. package/lib/types/terminal-utils/mermaid.js +83 -0
  251. package/lib/types/tips.d.ts.map +1 -1
  252. package/lib/types/tips.js +175 -19
  253. package/lib/types/tuiDisplayPrefs.d.ts +7 -9
  254. package/lib/types/tuiDisplayPrefs.d.ts.map +1 -1
  255. package/lib/types/tuiDisplayPrefs.js +31 -28
  256. package/lib/types/update.d.ts +61 -0
  257. package/lib/types/update.d.ts.map +1 -1
  258. package/lib/types/update.js +194 -0
  259. package/lib/types/utils/imageResize.d.ts +90 -0
  260. package/lib/types/utils/imageResize.d.ts.map +1 -0
  261. package/lib/types/utils/imageResize.js +272 -0
  262. package/lib/types/utils/keymap.d.ts +5 -1
  263. package/lib/types/utils/keymap.d.ts.map +1 -1
  264. package/lib/types/utils/keymap.js +23 -0
  265. package/lib/types/workspaces.d.ts +2 -1
  266. package/lib/types/workspaces.d.ts.map +1 -1
  267. package/lib/types/workspaces.js +1 -1
  268. package/node_modules/@deepseek-harness-tui/dsh-auth/package.json +10 -10
  269. package/package.json +120 -103
  270. package/presets/liangshen/.dsh-tui-managed.json +1 -1
  271. package/presets/liangshen/agent.cordis.yml +15 -0
  272. package/lib/types/screens/AgentView.d.ts +0 -23
  273. package/lib/types/screens/AgentView.d.ts.map +0 -1
  274. package/lib/types/screens/AgentView.js +0 -546
  275. package/lib/types/screens/SessionBrowser.d.ts +0 -42
  276. package/lib/types/screens/SessionBrowser.d.ts.map +0 -1
  277. package/lib/types/screens/SessionBrowser.js +0 -911
@@ -269,6 +269,13 @@ declare const dict: {
269
269
  readonly zh: "未找到引用: {{paths}}";
270
270
  readonly en: "References not found: {{paths}}";
271
271
  };
272
+ readonly 'selection-attached': {
273
+ readonly zh: "已选中 {{lines}} 行 · {{path}}";
274
+ readonly en: {
275
+ readonly one: "Selected {{lines}} line from {{path}}";
276
+ readonly other: "Selected {{lines}} lines from {{path}}";
277
+ };
278
+ };
272
279
  readonly 'transcript-image': {
273
280
  readonly zh: "图片";
274
281
  readonly en: "Image";
@@ -359,6 +366,13 @@ declare const dict: {
359
366
  readonly other: "Attached {{count}} images";
360
367
  };
361
368
  };
369
+ readonly 'input-images-staged-adapted': {
370
+ readonly zh: "已附加 {{count}} 张图片 · {{adapted}} 张已适配";
371
+ readonly en: {
372
+ readonly one: "Attached {{count}} image · {{adapted}} adapted";
373
+ readonly other: "Attached {{count}} images · {{adapted}} adapted";
374
+ };
375
+ };
362
376
  readonly 'send-failed': {
363
377
  readonly zh: "发送失败 · {{err}}";
364
378
  readonly en: "Send failed · {{err}}";
@@ -767,6 +781,22 @@ declare const dict: {
767
781
  readonly zh: "恢复不可用——agents 服务未加载";
768
782
  readonly en: "Resume unavailable — agents service not loaded";
769
783
  };
784
+ readonly 'resume-session-occupied': {
785
+ readonly zh: "该会话正被其他 TUI 终端占用(进程 {{pid}}),无法进入";
786
+ readonly en: "Another TUI terminal holds this session (pid {{pid}}); cannot enter";
787
+ };
788
+ readonly 'resume-mount-busy': {
789
+ readonly zh: "无法确认该会话是否被其他终端占用(占用检查正忙),请稍后重试";
790
+ readonly en: "Could not confirm whether another terminal holds this session (the occupancy check is busy); retry in a moment";
791
+ };
792
+ readonly 'resume-mount-unavailable': {
793
+ readonly zh: "无法验证该会话的占用状态 · {{detail}}";
794
+ readonly en: "Could not verify this session's occupancy · {{detail}}";
795
+ };
796
+ readonly 'session-mount-occupied-short': {
797
+ readonly zh: "占用 pid {{pid}}";
798
+ readonly en: "held by pid {{pid}}";
799
+ };
770
800
  readonly 'resume-failed': {
771
801
  readonly zh: "恢复失败 · {{err}}";
772
802
  readonly en: "Resume failed · {{err}}";
@@ -914,6 +944,10 @@ declare const dict: {
914
944
  readonly zh: "已复制 {{n}} 个字符";
915
945
  readonly en: "Copied {{n}} characters";
916
946
  };
947
+ readonly 'copy-refused-stale': {
948
+ readonly zh: "选区内容已变化,已取消复制";
949
+ readonly en: "Content under the selection changed; copy cancelled";
950
+ };
917
951
  readonly 'activity-current-preset': {
918
952
  readonly zh: "当前预设 {{name}}";
919
953
  readonly en: "Current preset {{name}}";
@@ -1118,6 +1152,181 @@ declare const dict: {
1118
1152
  readonly zh: "工作区重命名失败 · {{err}}";
1119
1153
  readonly en: "Failed to rename workspace · {{err}}";
1120
1154
  };
1155
+ readonly 'workspace-removed': {
1156
+ readonly zh: "已从工作区列表移除:{{target}}(会话与目录保留)";
1157
+ readonly en: "Removed from the workspace list: {{target}} (sessions and directory kept)";
1158
+ };
1159
+ readonly 'workspace-remove-unknown': {
1160
+ readonly zh: "工作区列表中没有:{{target}}";
1161
+ readonly en: "Not in the workspace list: {{target}}";
1162
+ };
1163
+ readonly 'workspace-remove-failed': {
1164
+ readonly zh: "移除工作区失败 · {{err}}";
1165
+ readonly en: "Failed to remove the workspace · {{err}}";
1166
+ };
1167
+ readonly 'home-section-workspaces': {
1168
+ readonly zh: "工作区({{n}})";
1169
+ readonly en: "Workspaces ({{n}})";
1170
+ };
1171
+ readonly 'home-add-workspace': {
1172
+ readonly zh: "添加工作区";
1173
+ readonly en: "Add workspace";
1174
+ };
1175
+ readonly 'home-add-hint': {
1176
+ readonly zh: "选择目录并加入列表";
1177
+ readonly en: "Pick a directory and add it to the list";
1178
+ };
1179
+ readonly 'home-workspace-missing': {
1180
+ readonly zh: "目录不存在";
1181
+ readonly en: "directory missing";
1182
+ };
1183
+ readonly 'home-no-workspaces': {
1184
+ readonly zh: "还没有工作区 · 在任意目录启动 dsh-tui 即可自动加入";
1185
+ readonly en: "No workspaces yet · start dsh-tui in a directory to add it";
1186
+ };
1187
+ readonly 'home-sessions-title': {
1188
+ readonly zh: "{{name}} 的会话";
1189
+ readonly en: "Sessions in {{name}}";
1190
+ };
1191
+ readonly 'home-sessions-count': {
1192
+ readonly zh: "{{n}} 个会话";
1193
+ readonly en: {
1194
+ readonly one: "{{n}} session";
1195
+ readonly other: "{{n}} sessions";
1196
+ };
1197
+ };
1198
+ readonly 'home-no-sessions': {
1199
+ readonly zh: "这个工作区还没有会话 · Enter 新建一个";
1200
+ readonly en: "No sessions in this workspace yet · Enter starts one";
1201
+ };
1202
+ readonly 'home-sessions-loading': {
1203
+ readonly zh: "正在读取会话…";
1204
+ readonly en: "Loading sessions…";
1205
+ };
1206
+ readonly 'home-sessions-failed': {
1207
+ readonly zh: "读取会话失败 · {{err}}";
1208
+ readonly en: "Failed to load sessions · {{err}}";
1209
+ };
1210
+ readonly 'home-hint-list': {
1211
+ readonly zh: "**←/→** 切换栏位 · **↑/↓** 选择 · **Enter** 编辑 · Ctrl+N 新建 · Esc 进入会话";
1212
+ readonly en: "**←/→** switch pane · **↑/↓** move · **Enter** edit · Ctrl+N new · Esc enter the session";
1213
+ };
1214
+ readonly 'home-hint-menu': {
1215
+ readonly zh: "**↑/↓** 选择 · **Enter** 确认 · Esc 关闭";
1216
+ readonly en: "**↑/↓** move · **Enter** confirm · Esc close";
1217
+ };
1218
+ readonly 'home-hint-rename': {
1219
+ readonly zh: "输入新名称 · **Enter** 保存 · Esc 取消";
1220
+ readonly en: "Type a new name · **Enter** save · Esc cancel";
1221
+ };
1222
+ readonly 'home-hint-confirm-remove': {
1223
+ readonly zh: "**Enter** 确认移除 · Esc 取消";
1224
+ readonly en: "**Enter** confirm removal · Esc cancel";
1225
+ };
1226
+ readonly 'home-menu-edit': {
1227
+ readonly zh: "编辑";
1228
+ readonly en: "Edit";
1229
+ };
1230
+ readonly 'home-menu-new': {
1231
+ readonly zh: "在此新建会话";
1232
+ readonly en: "New session here";
1233
+ };
1234
+ readonly 'home-menu-rename': {
1235
+ readonly zh: "重命名工作区";
1236
+ readonly en: "Rename workspace";
1237
+ };
1238
+ readonly 'home-menu-remove': {
1239
+ readonly zh: "从列表移除";
1240
+ readonly en: "Remove from list";
1241
+ };
1242
+ readonly 'home-rename-placeholder': {
1243
+ readonly zh: "新名称";
1244
+ readonly en: "New name";
1245
+ };
1246
+ readonly 'home-rename-empty': {
1247
+ readonly zh: "名称不能为空";
1248
+ readonly en: "The name cannot be empty";
1249
+ };
1250
+ readonly 'home-rename-failed': {
1251
+ readonly zh: "重命名失败 · {{err}}";
1252
+ readonly en: "Rename failed · {{err}}";
1253
+ };
1254
+ readonly 'home-remove-title': {
1255
+ readonly zh: "移除工作区「{{name}}」?";
1256
+ readonly en: "Remove workspace \"{{name}}\"?";
1257
+ };
1258
+ readonly 'home-remove-detail': {
1259
+ readonly zh: "只从列表移除,会话记录与磁盘目录都会保留";
1260
+ readonly en: "Only the list entry goes away; sessions and the directory stay";
1261
+ };
1262
+ readonly 'supervisor-title': {
1263
+ readonly zh: "会话管理";
1264
+ readonly en: "Sessions";
1265
+ };
1266
+ readonly 'supervisor-unregistered': {
1267
+ readonly zh: "未登记的工作区";
1268
+ readonly en: "Unregistered";
1269
+ };
1270
+ readonly 'supervisor-no-matches': {
1271
+ readonly zh: "没有匹配的会话 · Esc 清空筛选";
1272
+ readonly en: "No sessions match · Esc clears the filter";
1273
+ };
1274
+ readonly 'supervisor-subtitle': {
1275
+ readonly zh: "本终端托管多个会话 · 切换不中断";
1276
+ readonly en: "This terminal hosts several sessions · switching does not stop them";
1277
+ };
1278
+ readonly 'supervisor-filter-placeholder': {
1279
+ readonly zh: "输入以搜索会话…";
1280
+ readonly en: "Type to search sessions…";
1281
+ };
1282
+ readonly 'supervisor-hint-list': {
1283
+ readonly zh: "**←/→** 切换栏位 · **Enter** 进入会话 · Ctrl+N 新建 · Ctrl+X 停止 · Esc 返回";
1284
+ readonly en: "**←/→** switch pane · **Enter** enter · Ctrl+N new · Ctrl+X stop · Esc back";
1285
+ };
1286
+ readonly 'supervisor-hint-filter': {
1287
+ readonly zh: "输入过滤会话 · **Enter** 进入 · Esc 清空";
1288
+ readonly en: "Type to filter · **Enter** enter · Esc clears";
1289
+ };
1290
+ readonly 'supervisor-occupied': {
1291
+ readonly zh: "被其他 TUI 终端占用(pid {{pid}}),无法进入";
1292
+ readonly en: "Held by another TUI terminal (pid {{pid}}) — cannot enter";
1293
+ };
1294
+ readonly 'supervisor-occupied-badge': {
1295
+ readonly zh: "占用 pid {{pid}}";
1296
+ readonly en: "held by pid {{pid}}";
1297
+ };
1298
+ readonly 'supervisor-current': {
1299
+ readonly zh: "当前";
1300
+ readonly en: "current";
1301
+ };
1302
+ readonly 'supervisor-counts': {
1303
+ readonly zh: "{{working}} 运行中 · {{live}} 个活跃 · 共 {{total}}";
1304
+ readonly en: "{{working}} working · {{live}} live · {{total}} total";
1305
+ };
1306
+ readonly 'supervisor-new-session': {
1307
+ readonly zh: "+ 新建会话";
1308
+ readonly en: "+ New session";
1309
+ };
1310
+ readonly 'supervisor-new-session-hint': {
1311
+ readonly zh: "在「{{name}}」新建一个会话";
1312
+ readonly en: "Start a session in \"{{name}}\"";
1313
+ };
1314
+ readonly 'supervisor-stopped': {
1315
+ readonly zh: "已停止会话「{{name}}」";
1316
+ readonly en: "Stopped session {{name}}";
1317
+ };
1318
+ readonly 'supervisor-stop-failed': {
1319
+ readonly zh: "无法停止该会话";
1320
+ readonly en: "Could not stop that session";
1321
+ };
1322
+ readonly 'supervisor-stop-current': {
1323
+ readonly zh: "不能停止当前正在使用的会话";
1324
+ readonly en: "The session you are attached to cannot be stopped";
1325
+ };
1326
+ readonly 'supervisor-open-failed': {
1327
+ readonly zh: "无法进入会话「{{name}}」· 原因见下方通知";
1328
+ readonly en: "Could not enter {{name}} · the reason is in the notification below";
1329
+ };
1121
1330
  readonly 'cost-cache-rate': {
1122
1331
  readonly zh: "缓存率 {{rate}}% · {{read}} 读 / {{write}} 写";
1123
1332
  readonly en: "Cache rate {{rate}}% · {{read}} read / {{write}} write";
@@ -1526,6 +1735,10 @@ declare const dict: {
1526
1735
  readonly zh: "…(前 {{count}} 字符流式期间已折叠,落定后完整显示)";
1527
1736
  readonly en: "…(first {{count}} chars folded while streaming; full text renders once the turn settles)";
1528
1737
  };
1738
+ readonly 'mermaid-too-wide': {
1739
+ readonly zh: "(图需要 {{width}} 列,当前宽度不足,显示源码)";
1740
+ readonly en: "(diagram needs {{width}} columns; showing the source)";
1741
+ };
1529
1742
  readonly 'vim-on': {
1530
1743
  readonly zh: "vim 模式已开启(Esc 切 normal,i/a/o 回 insert)";
1531
1744
  readonly en: "vim mode on (Esc = normal, i/a/o = insert)";
@@ -1762,6 +1975,14 @@ declare const dict: {
1762
1975
  readonly zh: "当前模型不支持推理等级切换";
1763
1976
  readonly en: "Current model does not support reasoning effort switching";
1764
1977
  };
1978
+ readonly 'effort-preference-downgraded': {
1979
+ readonly zh: "偏好推理强度 {{preferred}} 不被当前模型支持,已就近降档至 {{applied}}";
1980
+ readonly en: "Preferred reasoning effort {{preferred}} is unavailable on this model; fell back to the nearest lower tier {{applied}}";
1981
+ };
1982
+ readonly 'effort-preference-unsupported': {
1983
+ readonly zh: "偏好推理强度 {{preferred}} 不被当前模型支持,且无更低可用档,保持模型默认";
1984
+ readonly en: "Preferred reasoning effort {{preferred}} is unavailable on this model with no lower tier; keeping the model default";
1985
+ };
1765
1986
  readonly 'effort-switched': {
1766
1987
  readonly zh: "推理强度 → {{name}}";
1767
1988
  readonly en: "Reasoning effort → {{name}}";
@@ -1902,6 +2123,22 @@ declare const dict: {
1902
2123
  readonly zh: "已粘贴图片 {{token}}";
1903
2124
  readonly en: "Pasted image {{token}}";
1904
2125
  };
2126
+ readonly 'input-image-pasted-adjusted': {
2127
+ readonly zh: "已粘贴图片 {{token}}({{detail}})";
2128
+ readonly en: "Pasted image {{token}} ({{detail}})";
2129
+ };
2130
+ readonly 'input-image-detail-resized': {
2131
+ readonly zh: "已缩放至 {{width}}×{{height}}";
2132
+ readonly en: "resized to {{width}}×{{height}}";
2133
+ };
2134
+ readonly 'input-image-detail-converted': {
2135
+ readonly zh: "{{from}} 已转 {{to}}";
2136
+ readonly en: "{{from}} converted to {{to}}";
2137
+ };
2138
+ readonly 'input-image-detail-converted-flattened': {
2139
+ readonly zh: "{{from}} 已转 {{to}},透明区域已填白";
2140
+ readonly en: "{{from}} converted to {{to}}, transparency filled white";
2141
+ };
1905
2142
  readonly 'input-image-paste-failed': {
1906
2143
  readonly zh: "粘贴图片失败:{{err}}";
1907
2144
  readonly en: "Could not paste image: {{err}}";
@@ -1927,16 +2164,16 @@ declare const dict: {
1927
2164
  readonly en: "Retract · Esc interrupts and sends immediately";
1928
2165
  };
1929
2166
  readonly 'input-fold-stats': {
1930
- readonly zh: "{{lines}} 行 · {{chars}} 字";
1931
- readonly en: "{{lines}} lines · {{chars}} chars";
2167
+ readonly zh: "{{lines}} 行・{{chars}} 字";
2168
+ readonly en: "{{lines}} lines・{{chars}} chars";
1932
2169
  };
1933
2170
  readonly 'input-fold-hover': {
1934
2171
  readonly zh: "悬停查看";
1935
2172
  readonly en: "hover to peek";
1936
2173
  };
1937
2174
  readonly 'input-fold-peek-footer': {
1938
- readonly zh: "… 共 {{lines}} 行 · 点击展开编辑";
1939
- readonly en: "… {{lines}} lines total · click to edit";
2175
+ readonly zh: "… 共 {{lines}} 行・点击展开编辑";
2176
+ readonly en: "… {{lines}} lines total・click to edit";
1940
2177
  };
1941
2178
  readonly 'input-expand-editor-title': {
1942
2179
  readonly zh: "草稿编辑";
@@ -2166,86 +2403,10 @@ declare const dict: {
2166
2403
  readonly zh: " ctrl+e 显示前 {{n}} 条消息 ";
2167
2404
  readonly en: " ctrl+e to show {{n}} previous messages ";
2168
2405
  };
2169
- readonly 'resume-none-in-cwd': {
2170
- readonly zh: "当前目录没有可恢复的历史会话";
2171
- readonly en: "No resumable sessions in the current directory";
2172
- };
2173
2406
  readonly 'resume-resumed': {
2174
2407
  readonly zh: "已恢复会话";
2175
2408
  readonly en: "Session resumed";
2176
2409
  };
2177
- readonly 'resume-delete-confirm': {
2178
- readonly zh: "删除「{{name}}」?会话日志将被永久移除。";
2179
- readonly en: "Delete \"{{name}}\"? The session log is removed permanently.";
2180
- };
2181
- readonly 'resume-deleted': {
2182
- readonly zh: "已删除会话「{{name}}」";
2183
- readonly en: "Deleted session {{name}}";
2184
- };
2185
- readonly 'resume-delete-failed': {
2186
- readonly zh: "无法删除会话「{{name}}」";
2187
- readonly en: "Could not delete session {{name}}";
2188
- };
2189
- readonly 'resume-rename-placeholder': {
2190
- readonly zh: "新的会话名称…";
2191
- readonly en: "New session name…";
2192
- };
2193
- readonly 'resume-rename-failed': {
2194
- readonly zh: "无法重命名会话「{{name}}」";
2195
- readonly en: "Could not rename session {{name}}";
2196
- };
2197
- readonly 'resume-hint-delete': {
2198
- readonly zh: "**Enter** 删除 · Esc 取消";
2199
- readonly en: "**Enter** to delete · Esc to cancel";
2200
- };
2201
- readonly 'resume-hint-rename': {
2202
- readonly zh: "**Enter** 保存 · Esc 取消";
2203
- readonly en: "**Enter** to save · Esc to cancel";
2204
- };
2205
- readonly 'resume-title': {
2206
- readonly zh: "恢复会话";
2207
- readonly en: "Resume session";
2208
- };
2209
- readonly 'agentview-title': {
2210
- readonly zh: "会话总览";
2211
- readonly en: "Session overview";
2212
- };
2213
- readonly 'agentview-count-awaited': {
2214
- readonly zh: "{{n}} 个等待输入";
2215
- readonly en: "{{n}} awaiting input";
2216
- };
2217
- readonly 'agentview-count-working': {
2218
- readonly zh: "{{n}} 个运行中";
2219
- readonly en: "{{n}} working";
2220
- };
2221
- readonly 'agentview-count-completed': {
2222
- readonly zh: "{{n}} 个已完成";
2223
- readonly en: "{{n}} completed";
2224
- };
2225
- readonly 'agentview-count-failed': {
2226
- readonly zh: "{{n}} 个失败";
2227
- readonly en: "{{n}} failed";
2228
- };
2229
- readonly 'agentview-bg-notice': {
2230
- readonly zh: "当前会话已转入后台 —— **Enter** 打开它 · **Esc** 返回它 · **Ctrl+C** 两次退出";
2231
- readonly en: "Your conversation moved to the background — **Enter** opens it · **Esc** returns to it · **Ctrl+C** twice quits";
2232
- };
2233
- readonly 'agentview-current-session': {
2234
- readonly zh: "当前会话";
2235
- readonly en: "current session";
2236
- };
2237
- readonly 'agentview-untitled': {
2238
- readonly zh: "未命名";
2239
- readonly en: "untitled";
2240
- };
2241
- readonly 'agentview-summary-empty': {
2242
- readonly zh: "输入提示词开始";
2243
- readonly en: "send a prompt to start";
2244
- };
2245
- readonly 'agentview-none': {
2246
- readonly zh: "没有会话。在下方输入任务描述并回车,派发第一个后台会话。";
2247
- readonly en: "No sessions. Type a task below and press Enter to dispatch your first background session.";
2248
- };
2249
2410
  readonly 'agentview-empty-prompt': {
2250
2411
  readonly zh: "派发内容不能为空";
2251
2412
  readonly en: "Dispatch prompt cannot be empty";
@@ -2258,66 +2419,6 @@ declare const dict: {
2258
2419
  readonly zh: "后台会话创建失败 · {{err}}";
2259
2420
  readonly en: "Background session creation failed · {{err}}";
2260
2421
  };
2261
- readonly 'agentview-dispatch-done': {
2262
- readonly zh: "已派发新会话";
2263
- readonly en: "Dispatched a new session";
2264
- };
2265
- readonly 'agentview-stopped': {
2266
- readonly zh: "已停止会话";
2267
- readonly en: "Session stopped";
2268
- };
2269
- readonly 'agentview-stop-failed': {
2270
- readonly zh: "无法停止——该会话不是本 TUI 派发的后台会话";
2271
- readonly en: "Cannot stop — this is not a background session dispatched by this TUI";
2272
- };
2273
- readonly 'agentview-stop-confirm': {
2274
- readonly zh: "**Ctrl+X** 再次按下删除会话「{{name}}」,其他键取消";
2275
- readonly en: "**Ctrl+X** again to delete \"{{name}}\", any other key cancels";
2276
- };
2277
- readonly 'agentview-deleted': {
2278
- readonly zh: "已删除会话「{{name}}」";
2279
- readonly en: "Deleted session \"{{name}}\"";
2280
- };
2281
- readonly 'agentview-delete-failed': {
2282
- readonly zh: "无法删除会话「{{name}}」";
2283
- readonly en: "Could not delete session \"{{name}}\"";
2284
- };
2285
- readonly 'agentview-attached': {
2286
- readonly zh: "已切换到会话";
2287
- readonly en: "Attached to session";
2288
- };
2289
- readonly 'agentview-attach-failed': {
2290
- readonly zh: "切换失败 · {{err}}";
2291
- readonly en: "Attach failed · {{err}}";
2292
- };
2293
- readonly 'agentview-current-marker': {
2294
- readonly zh: "当前";
2295
- readonly en: "attached";
2296
- };
2297
- readonly 'agentview-input-placeholder': {
2298
- readonly zh: "输入任务并回车派发后台会话 · Shift+Enter 派发并立即切换";
2299
- readonly en: "Type a task and press Enter to dispatch · Shift+Enter dispatch and attach";
2300
- };
2301
- readonly 'agentview-hint-list': {
2302
- readonly zh: "**Enter**/→ 切换 · **Space** 预览 · **Ctrl+X** 停止(两次删除) · **Ctrl+R** 重命名 · **Esc** 退出 · **?** 帮助";
2303
- readonly en: "**Enter**/→ attach · **Space** peek · **Ctrl+X** stop (twice: delete) · **Ctrl+R** rename · **Esc** exit · **?** help";
2304
- };
2305
- readonly 'agentview-hint-rename': {
2306
- readonly zh: "**Enter** 保存 · Esc 取消";
2307
- readonly en: "**Enter** to save · Esc to cancel";
2308
- };
2309
- readonly 'agentview-hint-peek': {
2310
- readonly zh: "输入回复并按 **Enter** 发送 · **Esc** 关闭预览";
2311
- readonly en: "Type a reply and press **Enter** to send · **Esc** close";
2312
- };
2313
- readonly 'agentview-reply-sent': {
2314
- readonly zh: "已发送回复";
2315
- readonly en: "Reply sent";
2316
- };
2317
- readonly 'agentview-reply-failed': {
2318
- readonly zh: "回复发送失败 · {{err}}";
2319
- readonly en: "Reply failed · {{err}}";
2320
- };
2321
2422
  readonly 'agentview-reply-empty': {
2322
2423
  readonly zh: "回复内容为空";
2323
2424
  readonly en: "Reply is empty";
@@ -2326,54 +2427,6 @@ declare const dict: {
2326
2427
  readonly zh: "该会话未运行——回车切换进去后回复";
2327
2428
  readonly en: "This session is not running — press Enter to attach and reply";
2328
2429
  };
2329
- readonly 'agentview-help-title': {
2330
- readonly zh: "会话总览快捷键";
2331
- readonly en: "Session overview shortcuts";
2332
- };
2333
- readonly 'agentview-help': {
2334
- readonly zh: "↑/↓ 移动 · PgUp/PgDn 翻页\nEnter/→ 切换到选中会话(输入框有文字时:派发);后台化打开时 **Enter** 打开当前会话\nShift+Enter 派发并立即切换\nSpace 打开/关闭预览 · 预览内可输入回复并 Enter 发送\nCtrl+X 停止会话 · 两秒内再次按下删除\nCtrl+R 重命名选中会话\nEsc 关闭预览 → 清空输入 → 退出;后台化打开时返回被转入后台的会话\nCtrl+C 清空输入 · 两次退出\n? 本帮助\n\n后台会话运行在本进程内:TUI 退出后停止,日志保留可 /resume 恢复。";
2335
- readonly en: "↑/↓ move · PgUp/PgDn page\nEnter/→ attach to the selected session (with input text: dispatch); after backgrounding, **Enter** opens the current session\nShift+Enter dispatch and attach\nSpace toggle the peek panel · type a reply inside and Enter to send\nCtrl+X stop the session · press again within 2s to delete\nCtrl+R rename the selected session\nEsc close peek → clear input → exit; after backgrounding, returns to the backgrounded session\nCtrl+C clear input · twice to exit\n? this help\n\nBackground sessions run inside this process: they stop when the TUI exits; their logs survive for /resume.";
2336
- };
2337
- readonly 'agentview-rename-placeholder': {
2338
- readonly zh: "新的会话名称…";
2339
- readonly en: "New session name…";
2340
- };
2341
- readonly 'agentview-renamed': {
2342
- readonly zh: "已重命名「{{title}}」";
2343
- readonly en: "Renamed \"{{title}}\"";
2344
- };
2345
- readonly 'agentview-rename-failed': {
2346
- readonly zh: "重命名失败";
2347
- readonly en: "Rename failed";
2348
- };
2349
- readonly 'agentview-hint-help': {
2350
- readonly zh: "**Esc** 关闭帮助";
2351
- readonly en: "**Esc** to close help";
2352
- };
2353
- readonly 'agentview-state-needs-input': {
2354
- readonly zh: "等待输入";
2355
- readonly en: "Needs input";
2356
- };
2357
- readonly 'agentview-state-working': {
2358
- readonly zh: "运行中";
2359
- readonly en: "Working";
2360
- };
2361
- readonly 'agentview-state-completed': {
2362
- readonly zh: "已完成";
2363
- readonly en: "Completed";
2364
- };
2365
- readonly 'agentview-state-failed': {
2366
- readonly zh: "失败";
2367
- readonly en: "Failed";
2368
- };
2369
- readonly 'agentview-state-idle': {
2370
- readonly zh: "空闲";
2371
- readonly en: "Idle";
2372
- };
2373
- readonly 'agentview-state-stopped': {
2374
- readonly zh: "已停止";
2375
- readonly en: "Stopped";
2376
- };
2377
2430
  readonly 'approval-background-agent': {
2378
2431
  readonly zh: "来自后台会话 {{id}} 的审批请求";
2379
2432
  readonly en: "Approval request from background session {{id}}";
@@ -2470,14 +2523,6 @@ declare const dict: {
2470
2523
  readonly zh: "**Enter** 确认并保存 · Esc 取消";
2471
2524
  readonly en: "**Enter** to confirm & save · Esc to cancel";
2472
2525
  };
2473
- readonly 'session-loading': {
2474
- readonly zh: "正在读取会话…";
2475
- readonly en: "Reading sessions…";
2476
- };
2477
- readonly 'session-list-failed': {
2478
- readonly zh: "无法读取会话列表 · {{err}}";
2479
- readonly en: "Could not read the session list · {{err}}";
2480
- };
2481
2526
  readonly 'session-resume-failed': {
2482
2527
  readonly zh: "恢复会话失败 · {{err}}";
2483
2528
  readonly en: "Resuming the session failed · {{err}}";
@@ -2522,30 +2567,6 @@ declare const dict: {
2522
2567
  readonly zh: "(未记录目录)";
2523
2568
  readonly en: "(no directory recorded)";
2524
2569
  };
2525
- readonly 'session-scope-all': {
2526
- readonly zh: "全部工作目录";
2527
- readonly en: "all working directories";
2528
- };
2529
- readonly 'session-search-placeholder': {
2530
- readonly zh: "输入以搜索 · {{scope}}";
2531
- readonly en: "Type to search · {{scope}}";
2532
- };
2533
- readonly 'session-workspace-scope': {
2534
- readonly zh: "工作目录";
2535
- readonly en: "Working directory";
2536
- };
2537
- readonly 'session-workspace-switch': {
2538
- readonly zh: "← 选择目录";
2539
- readonly en: "← choose directory";
2540
- };
2541
- readonly 'session-workspace-select-title': {
2542
- readonly zh: "选择工作目录";
2543
- readonly en: "Choose working directory";
2544
- };
2545
- readonly 'session-workspace-search-placeholder': {
2546
- readonly zh: "输入以搜索工作目录";
2547
- readonly en: "Type to search working directories";
2548
- };
2549
2570
  readonly 'session-workspace-all': {
2550
2571
  readonly zh: "全部工作目录";
2551
2572
  readonly en: "All working directories";
@@ -2566,14 +2587,6 @@ declare const dict: {
2566
2587
  readonly zh: "暂无历史会话";
2567
2588
  readonly en: "no history yet";
2568
2589
  };
2569
- readonly 'session-workspace-no-match': {
2570
- readonly zh: "没有匹配的工作目录";
2571
- readonly en: "No matching working directory";
2572
- };
2573
- readonly 'resume-menu-open': {
2574
- readonly zh: "打开";
2575
- readonly en: "Open";
2576
- };
2577
2590
  readonly 'resume-menu-pin': {
2578
2591
  readonly zh: "固定到顶部";
2579
2592
  readonly en: "Pin to top";
@@ -2582,26 +2595,6 @@ declare const dict: {
2582
2595
  readonly zh: "取消固定";
2583
2596
  readonly en: "Unpin";
2584
2597
  };
2585
- readonly 'resume-menu-rename': {
2586
- readonly zh: "重命名";
2587
- readonly en: "Rename";
2588
- };
2589
- readonly 'resume-menu-delete': {
2590
- readonly zh: "删除";
2591
- readonly en: "Delete";
2592
- };
2593
- readonly 'session-pinned-group': {
2594
- readonly zh: "已固定";
2595
- readonly en: "Pinned";
2596
- };
2597
- readonly 'resume-pinned': {
2598
- readonly zh: "已固定 {{name}}";
2599
- readonly en: "Pinned {{name}}";
2600
- };
2601
- readonly 'resume-unpinned': {
2602
- readonly zh: "已取消固定 {{name}}";
2603
- readonly en: "Unpinned {{name}}";
2604
- };
2605
2598
  readonly 'resume-pin-save-failed': {
2606
2599
  readonly zh: "固定状态保存失败,未应用更改";
2607
2600
  readonly en: "Could not save pin; no change was applied";
@@ -2610,22 +2603,6 @@ declare const dict: {
2610
2603
  readonly zh: "{{n}} 个会话";
2611
2604
  readonly en: "{{n}} sessions";
2612
2605
  };
2613
- readonly 'session-count-subagents': {
2614
- readonly zh: "{{n}} 个子运行已折叠";
2615
- readonly en: "{{n}} runs folded";
2616
- };
2617
- readonly 'session-count-empty': {
2618
- readonly zh: "{{n}} 个空会话";
2619
- readonly en: "{{n}} empty";
2620
- };
2621
- readonly 'session-clean-confirm': {
2622
- readonly zh: "清理 {{n}} 个没有对话内容的会话?日志将被永久移除。";
2623
- readonly en: "Remove {{n}} sessions that hold no conversation? Their logs are deleted permanently.";
2624
- };
2625
- readonly 'session-cleaned': {
2626
- readonly zh: "已清理 {{n}} 个空会话";
2627
- readonly en: "Removed {{n}} empty sessions";
2628
- };
2629
2606
  readonly 'session-preview-times': {
2630
2607
  readonly zh: "创建于 {{created}} · 最后活动 {{updated}}";
2631
2608
  readonly en: "created {{created}} · last active {{updated}}";
@@ -2638,34 +2615,6 @@ declare const dict: {
2638
2615
  readonly zh: "这个会话没有可预览的往来消息";
2639
2616
  readonly en: "No exchanges to preview in this session";
2640
2617
  };
2641
- readonly 'session-toggle-on': {
2642
- readonly zh: "开";
2643
- readonly en: "on";
2644
- };
2645
- readonly 'session-toggle-off': {
2646
- readonly zh: "关";
2647
- readonly en: "off";
2648
- };
2649
- readonly 'session-hint-list': {
2650
- readonly zh: "**Enter** 恢复 · ← 工作目录 · Tab 预览 · 右键菜单 · {{mod}}a 全部目录({{projects}}) · {{mod}}s 子运行({{runs}}) · {{mod}}b 本分支 · {{mod}}r 重命名 · {{mod}}p 固定 · {{mod}}d 删除 · {{mod}}x 清空壳 · Esc 退出";
2651
- readonly en: "**Enter** resume · ← directories · Tab preview · right-click menu · {{mod}}a all directories ({{projects}}) · {{mod}}s runs ({{runs}}) · {{mod}}b this branch · {{mod}}r rename · {{mod}}p pin · {{mod}}d delete · {{mod}}x clean · Esc exit";
2652
- };
2653
- readonly 'session-hint-list-mid': {
2654
- readonly zh: "**Enter** 恢复 · ← 工作目录 · Tab 预览 · 右键菜单 · {{mod}}a 全部目录 · {{mod}}s 子运行 · {{mod}}r 重命名 · {{mod}}p 固定 · {{mod}}d 删除 · Esc 退出";
2655
- readonly en: "**Enter** resume · ← directories · Tab preview · right-click menu · {{mod}}a all directories · {{mod}}s runs · {{mod}}r rename · {{mod}}p pin · {{mod}}d delete · Esc exit";
2656
- };
2657
- readonly 'session-hint-list-short': {
2658
- readonly zh: "**Enter** 恢复 · {{mod}}p ★ · ← 目录 · Esc";
2659
- readonly en: "**Enter** resume · {{mod}}p ★ · ← dirs · Esc";
2660
- };
2661
- readonly 'session-hint-workspaces': {
2662
- readonly zh: "**Enter/→** 查看会话 · ↑/↓ 选择 · {{mod}}a 全部目录 · Esc 返回";
2663
- readonly en: "**Enter/→** view sessions · ↑/↓ choose · {{mod}}a all directories · Esc back";
2664
- };
2665
- readonly 'session-hint-workspaces-short': {
2666
- readonly zh: "**Enter/→** 查看 · Esc";
2667
- readonly en: "**Enter/→** view · Esc";
2668
- };
2669
2618
  readonly 'hint-confirm-exit': {
2670
2619
  readonly zh: "**Enter** 确认 · Esc 退出";
2671
2620
  readonly en: "**Enter** to confirm · Esc to exit";
@@ -2694,10 +2643,6 @@ declare const dict: {
2694
2643
  readonly zh: "? 查看快捷键";
2695
2644
  readonly en: "? for shortcuts";
2696
2645
  };
2697
- readonly 'status-detail-of-window': {
2698
- readonly zh: "的窗口";
2699
- readonly en: "of window";
2700
- };
2701
2646
  readonly 'status-detail-session-id': {
2702
2647
  readonly zh: "会话日志目录与此 id 同名";
2703
2648
  readonly en: "the session log directory is named after this id";
@@ -3229,6 +3174,22 @@ declare const dict: {
3229
3174
  readonly zh: "输入文字附带回答";
3230
3175
  readonly en: "Type text to attach an answer";
3231
3176
  };
3177
+ readonly 'question-fold-waiting': {
3178
+ readonly zh: "正在等你回答";
3179
+ readonly en: "Waiting for your answer";
3180
+ };
3181
+ readonly 'question-fold-expand': {
3182
+ readonly zh: "{{combo}} 展开";
3183
+ readonly en: "{{combo}} to expand";
3184
+ };
3185
+ readonly 'question-fold-hint': {
3186
+ readonly zh: "{{combo}} 折叠 / 点标题行收起";
3187
+ readonly en: "{{combo}} to fold / click the header";
3188
+ };
3189
+ readonly 'question-submit-selection': {
3190
+ readonly zh: "提交选择(Enter)";
3191
+ readonly en: "Submit selection (Enter)";
3192
+ };
3232
3193
  readonly 'question-custom-tab': {
3233
3194
  readonly zh: "自定义回答";
3234
3195
  readonly en: "Custom answer";