@deepseek-harness-tui/dsh-tui 0.11.1 → 0.12.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 (531) hide show
  1. package/README.md +70 -24
  2. package/assets/whale-girl/whale-girl-dark.png +0 -0
  3. package/assets/whale-girl/whale-girl-happy.png +0 -0
  4. package/assets/whale-girl/whale-girl.png +0 -0
  5. package/bin/dsh-tui.js +93 -6
  6. package/cordis.patch.yml +63 -22
  7. package/cordis.yml +3 -2
  8. package/guide/dsh-tui-guide/SKILL.md +37 -0
  9. package/guide/dsh-tui-guide/configuration.en.md +410 -0
  10. package/guide/dsh-tui-guide/configuration.md +349 -0
  11. package/guide/dsh-tui-guide/getting-started.en.md +398 -0
  12. package/guide/dsh-tui-guide/getting-started.md +397 -0
  13. package/guide/dsh-tui-guide/interaction.en.md +674 -0
  14. package/guide/dsh-tui-guide/interaction.md +747 -0
  15. package/guide/dsh-tui-guide/migrate.en.md +166 -0
  16. package/guide/dsh-tui-guide/migrate.md +132 -0
  17. package/guide/dsh-tui-guide/plugins.en.md +68 -0
  18. package/guide/dsh-tui-guide/plugins.md +56 -0
  19. package/guide/dsh-tui-guide/themes.en.md +192 -0
  20. package/guide/dsh-tui-guide/themes.md +185 -0
  21. package/guide/dsh-tui-guide/user-guide.en.md +608 -0
  22. package/guide/dsh-tui-guide/user-guide.md +586 -0
  23. package/guide/dsh-tui-guide/vscode.en.md +301 -0
  24. package/guide/dsh-tui-guide/vscode.md +272 -0
  25. package/lib/settings.json +1272 -0
  26. package/lib/types/adapter/channel/ui-policy.d.ts +10 -2
  27. package/lib/types/adapter/channel/ui-policy.d.ts.map +1 -1
  28. package/lib/types/adapter/channel/ui-policy.js +17 -0
  29. package/lib/types/adapter/kernel/replay.d.ts.map +1 -1
  30. package/lib/types/adapter/kernel/replay.js +2 -0
  31. package/lib/types/adapter/ports/channel-display.d.ts +12 -0
  32. package/lib/types/adapter/ports/channel-display.d.ts.map +1 -1
  33. package/lib/types/adapter/ports/channel-session.d.ts +38 -0
  34. package/lib/types/adapter/ports/channel-session.d.ts.map +1 -1
  35. package/lib/types/adapter/ports/channel-settings.d.ts +14 -1
  36. package/lib/types/adapter/ports/channel-settings.d.ts.map +1 -1
  37. package/lib/types/adapter/ports/channel-ui.d.ts +75 -6
  38. package/lib/types/adapter/ports/channel-ui.d.ts.map +1 -1
  39. package/lib/types/adapter/ports/channel-view.d.ts +86 -9
  40. package/lib/types/adapter/ports/channel-view.d.ts.map +1 -1
  41. package/lib/types/commands.d.ts.map +1 -1
  42. package/lib/types/commands.js +2 -0
  43. package/lib/types/components/BalanceReportRow.d.ts +10 -2
  44. package/lib/types/components/BalanceReportRow.d.ts.map +1 -1
  45. package/lib/types/components/BalanceReportRow.js +18 -4
  46. package/lib/types/components/Chat/JobCard.d.ts +9 -0
  47. package/lib/types/components/Chat/JobCard.d.ts.map +1 -1
  48. package/lib/types/components/Chat/JobCard.js +42 -15
  49. package/lib/types/components/Chat/SubagentMessage.js +6 -6
  50. package/lib/types/components/CompactionStatusRow.d.ts +24 -0
  51. package/lib/types/components/CompactionStatusRow.d.ts.map +1 -0
  52. package/lib/types/components/CompactionStatusRow.js +72 -0
  53. package/lib/types/components/GoalTodoPanel.js +2 -2
  54. package/lib/types/components/HelpMenu.d.ts +2 -2
  55. package/lib/types/components/HelpMenu.d.ts.map +1 -1
  56. package/lib/types/components/HelpMenu.js +5 -4
  57. package/lib/types/components/InlineMathParagraph.d.ts +22 -0
  58. package/lib/types/components/InlineMathParagraph.d.ts.map +1 -0
  59. package/lib/types/components/InlineMathParagraph.js +178 -0
  60. package/lib/types/components/JobsPanel.d.ts.map +1 -1
  61. package/lib/types/components/JobsPanel.js +80 -33
  62. package/lib/types/components/LogoV2.d.ts +41 -3
  63. package/lib/types/components/LogoV2.d.ts.map +1 -1
  64. package/lib/types/components/LogoV2.js +148 -24
  65. package/lib/types/components/Markdown.d.ts +10 -3
  66. package/lib/types/components/Markdown.d.ts.map +1 -1
  67. package/lib/types/components/Markdown.js +47 -14
  68. package/lib/types/components/MathBlock.d.ts +13 -0
  69. package/lib/types/components/MathBlock.d.ts.map +1 -0
  70. package/lib/types/components/MathBlock.js +136 -0
  71. package/lib/types/components/MessageList.d.ts +10 -1
  72. package/lib/types/components/MessageList.d.ts.map +1 -1
  73. package/lib/types/components/MessageList.js +16 -7
  74. package/lib/types/components/MigratePicker.d.ts +30 -0
  75. package/lib/types/components/MigratePicker.d.ts.map +1 -0
  76. package/lib/types/components/MigratePicker.js +38 -0
  77. package/lib/types/components/PresetPicker.d.ts +4 -0
  78. package/lib/types/components/PresetPicker.d.ts.map +1 -1
  79. package/lib/types/components/PresetPicker.js +5 -1
  80. package/lib/types/components/PromptInput.d.ts +17 -0
  81. package/lib/types/components/PromptInput.d.ts.map +1 -1
  82. package/lib/types/components/PromptInput.js +60 -8
  83. package/lib/types/components/SplitDiffView.d.ts.map +1 -1
  84. package/lib/types/components/SplitDiffView.js +2 -1
  85. package/lib/types/components/StarPrompt.d.ts +59 -0
  86. package/lib/types/components/StarPrompt.d.ts.map +1 -0
  87. package/lib/types/components/StarPrompt.js +326 -0
  88. package/lib/types/components/StreamingMarkdown.d.ts.map +1 -1
  89. package/lib/types/components/StreamingMarkdown.js +20 -3
  90. package/lib/types/components/SubagentCard.d.ts.map +1 -1
  91. package/lib/types/components/SubagentCard.js +8 -8
  92. package/lib/types/components/SubagentDetailScene.d.ts.map +1 -1
  93. package/lib/types/components/SubagentDetailScene.js +108 -10
  94. package/lib/types/components/TimelineRail.d.ts.map +1 -1
  95. package/lib/types/components/TimelineRail.js +9 -1
  96. package/lib/types/components/Whale.d.ts +17 -8
  97. package/lib/types/components/Whale.d.ts.map +1 -1
  98. package/lib/types/components/Whale.js +25 -15
  99. package/lib/types/components/WhaleGirl.d.ts +35 -0
  100. package/lib/types/components/WhaleGirl.d.ts.map +1 -0
  101. package/lib/types/components/WhaleGirl.js +50 -0
  102. package/lib/types/components/WorkingSpinner.d.ts +4 -1
  103. package/lib/types/components/WorkingSpinner.d.ts.map +1 -1
  104. package/lib/types/components/WorkingSpinner.js +2 -2
  105. package/lib/types/components/bigfont.d.ts +47 -18
  106. package/lib/types/components/bigfont.d.ts.map +1 -1
  107. package/lib/types/components/bigfont.js +55 -40
  108. package/lib/types/components/design-system/ThemeProvider.d.ts +6 -0
  109. package/lib/types/components/design-system/ThemeProvider.d.ts.map +1 -1
  110. package/lib/types/components/design-system/ThemeProvider.js +40 -1
  111. package/lib/types/components/maidPortrait.d.ts +44 -0
  112. package/lib/types/components/maidPortrait.d.ts.map +1 -0
  113. package/lib/types/components/maidPortrait.js +178 -0
  114. package/lib/types/components/mathPreview.d.ts +25 -0
  115. package/lib/types/components/mathPreview.d.ts.map +1 -0
  116. package/lib/types/components/mathPreview.js +48 -0
  117. package/lib/types/components/messages/AssistantThinkingMessage.d.ts.map +1 -1
  118. package/lib/types/components/messages/AssistantThinkingMessage.js +6 -5
  119. package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -1
  120. package/lib/types/components/messages/AssistantToolUseMessage.js +3 -2
  121. package/lib/types/components/messages/TranscriptImages.d.ts.map +1 -1
  122. package/lib/types/components/messages/TranscriptImages.js +11 -1
  123. package/lib/types/components/questions/AskUserQuestionPanel.d.ts +14 -2
  124. package/lib/types/components/questions/AskUserQuestionPanel.d.ts.map +1 -1
  125. package/lib/types/components/questions/AskUserQuestionPanel.js +80 -38
  126. package/lib/types/components/questions/PlanReviewPanel.d.ts.map +1 -1
  127. package/lib/types/components/questions/PlanReviewPanel.js +3 -3
  128. package/lib/types/components/sessions/ForeignSessionRow.d.ts +34 -0
  129. package/lib/types/components/sessions/ForeignSessionRow.d.ts.map +1 -0
  130. package/lib/types/components/sessions/ForeignSessionRow.js +43 -0
  131. package/lib/types/components/sessions/SourceTabs.d.ts +52 -0
  132. package/lib/types/components/sessions/SourceTabs.d.ts.map +1 -0
  133. package/lib/types/components/sessions/SourceTabs.js +70 -0
  134. package/lib/types/components/splashEggs.d.ts +56 -0
  135. package/lib/types/components/splashEggs.d.ts.map +1 -0
  136. package/lib/types/components/splashEggs.js +67 -0
  137. package/lib/types/components/splashFonts.d.ts +119 -0
  138. package/lib/types/components/splashFonts.d.ts.map +1 -0
  139. package/lib/types/components/splashFonts.js +267 -0
  140. package/lib/types/components/splashLayout.d.ts +41 -0
  141. package/lib/types/components/splashLayout.d.ts.map +1 -0
  142. package/lib/types/components/splashLayout.js +40 -0
  143. package/lib/types/components/trajectory/MiniWake.d.ts +11 -1
  144. package/lib/types/components/trajectory/MiniWake.d.ts.map +1 -1
  145. package/lib/types/components/trajectory/MiniWake.js +9 -3
  146. package/lib/types/components/whaleGirlSprite.d.ts +17 -0
  147. package/lib/types/components/whaleGirlSprite.d.ts.map +1 -0
  148. package/lib/types/components/whaleGirlSprite.js +47 -0
  149. package/lib/types/deepseekPricing.d.ts +74 -0
  150. package/lib/types/deepseekPricing.d.ts.map +1 -1
  151. package/lib/types/deepseekPricing.js +110 -11
  152. package/lib/types/dsh-adapter/channel/action-readiness.d.ts +1 -1
  153. package/lib/types/dsh-adapter/channel/action-readiness.d.ts.map +1 -1
  154. package/lib/types/dsh-adapter/channel/action-readiness.js +6 -1
  155. package/lib/types/dsh-adapter/channel/background-action.d.ts +1 -0
  156. package/lib/types/dsh-adapter/channel/background-action.d.ts.map +1 -1
  157. package/lib/types/dsh-adapter/channel/background-action.js +1 -0
  158. package/lib/types/dsh-adapter/channel/binding-events.d.ts +8 -9
  159. package/lib/types/dsh-adapter/channel/binding-events.d.ts.map +1 -1
  160. package/lib/types/dsh-adapter/channel/binding-events.js +69 -21
  161. package/lib/types/dsh-adapter/channel/compaction.d.ts +2 -1
  162. package/lib/types/dsh-adapter/channel/compaction.d.ts.map +1 -1
  163. package/lib/types/dsh-adapter/channel/compaction.js +35 -2
  164. package/lib/types/dsh-adapter/channel/external-commands.d.ts.map +1 -1
  165. package/lib/types/dsh-adapter/channel/external-commands.js +8 -2
  166. package/lib/types/dsh-adapter/channel/job-projection.d.ts +1 -0
  167. package/lib/types/dsh-adapter/channel/job-projection.d.ts.map +1 -1
  168. package/lib/types/dsh-adapter/channel/job-projection.js +88 -3
  169. package/lib/types/dsh-adapter/channel/local-actions.d.ts.map +1 -1
  170. package/lib/types/dsh-adapter/channel/local-actions.js +6 -1
  171. package/lib/types/dsh-adapter/channel/mode-actions.d.ts +13 -0
  172. package/lib/types/dsh-adapter/channel/mode-actions.d.ts.map +1 -1
  173. package/lib/types/dsh-adapter/channel/mode-actions.js +48 -7
  174. package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts.map +1 -1
  175. package/lib/types/dsh-adapter/channel/mode-permission-actions.js +25 -9
  176. package/lib/types/dsh-adapter/channel/model-switch.d.ts.map +1 -1
  177. package/lib/types/dsh-adapter/channel/model-switch.js +5 -1
  178. package/lib/types/dsh-adapter/channel/paths.d.ts.map +1 -1
  179. package/lib/types/dsh-adapter/channel/paths.js +7 -1
  180. package/lib/types/dsh-adapter/channel/preferences.d.ts +1 -1
  181. package/lib/types/dsh-adapter/channel/preferences.d.ts.map +1 -1
  182. package/lib/types/dsh-adapter/channel/preferences.js +31 -5
  183. package/lib/types/dsh-adapter/channel/projection.d.ts +1 -2
  184. package/lib/types/dsh-adapter/channel/projection.d.ts.map +1 -1
  185. package/lib/types/dsh-adapter/channel/projection.js +127 -17
  186. package/lib/types/dsh-adapter/channel/question-record.d.ts +76 -0
  187. package/lib/types/dsh-adapter/channel/question-record.d.ts.map +1 -0
  188. package/lib/types/dsh-adapter/channel/question-record.js +107 -0
  189. package/lib/types/dsh-adapter/channel/session-lineage.d.ts +42 -0
  190. package/lib/types/dsh-adapter/channel/session-lineage.d.ts.map +1 -0
  191. package/lib/types/dsh-adapter/channel/session-lineage.js +51 -0
  192. package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts +2 -0
  193. package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts.map +1 -1
  194. package/lib/types/dsh-adapter/channel/session-live-adoption.js +9 -3
  195. package/lib/types/dsh-adapter/channel/session-metadata.d.ts +2 -1
  196. package/lib/types/dsh-adapter/channel/session-metadata.d.ts.map +1 -1
  197. package/lib/types/dsh-adapter/channel/session-metadata.js +39 -7
  198. package/lib/types/dsh-adapter/channel/session-reset.d.ts +1 -1
  199. package/lib/types/dsh-adapter/channel/session-reset.d.ts.map +1 -1
  200. package/lib/types/dsh-adapter/channel/session-reset.js +7 -0
  201. package/lib/types/dsh-adapter/channel/session-resume.d.ts +1 -0
  202. package/lib/types/dsh-adapter/channel/session-resume.d.ts.map +1 -1
  203. package/lib/types/dsh-adapter/channel/session-resume.js +4 -2
  204. package/lib/types/dsh-adapter/channel/settings-host.d.ts.map +1 -1
  205. package/lib/types/dsh-adapter/channel/settings-host.js +8 -0
  206. package/lib/types/dsh-adapter/channel/state.d.ts +17 -2
  207. package/lib/types/dsh-adapter/channel/state.d.ts.map +1 -1
  208. package/lib/types/dsh-adapter/channel/state.js +6 -1
  209. package/lib/types/dsh-adapter/channel/subagent-projection.d.ts +30 -35
  210. package/lib/types/dsh-adapter/channel/subagent-projection.d.ts.map +1 -1
  211. package/lib/types/dsh-adapter/channel/subagent-projection.js +143 -4
  212. package/lib/types/dsh-adapter/channel/types.d.ts +1 -1
  213. package/lib/types/dsh-adapter/channel/types.d.ts.map +1 -1
  214. package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
  215. package/lib/types/dsh-adapter/channel.js +35 -5
  216. package/lib/types/dsh-adapter/compat/messages.d.ts +6 -0
  217. package/lib/types/dsh-adapter/compat/messages.d.ts.map +1 -1
  218. package/lib/types/dsh-adapter/compat/messages.js +9 -0
  219. package/lib/types/dsh-adapter/contract.d.ts +6 -5
  220. package/lib/types/dsh-adapter/contract.d.ts.map +1 -1
  221. package/lib/types/dsh-adapter/contract.js +14 -6
  222. package/lib/types/dsh-adapter/index.d.ts +36 -1
  223. package/lib/types/dsh-adapter/index.d.ts.map +1 -1
  224. package/lib/types/dsh-adapter/index.js +22 -6
  225. package/lib/types/dsh-adapter/jobs.d.ts +82 -16
  226. package/lib/types/dsh-adapter/jobs.d.ts.map +1 -1
  227. package/lib/types/dsh-adapter/jobs.js +104 -9
  228. package/lib/types/dsh-adapter/migrate/adapters/claude-code.d.ts +3 -0
  229. package/lib/types/dsh-adapter/migrate/adapters/claude-code.d.ts.map +1 -0
  230. package/lib/types/dsh-adapter/migrate/adapters/claude-code.js +131 -0
  231. package/lib/types/dsh-adapter/migrate/adapters/claude-code.parse.d.ts +17 -0
  232. package/lib/types/dsh-adapter/migrate/adapters/claude-code.parse.d.ts.map +1 -0
  233. package/lib/types/dsh-adapter/migrate/adapters/claude-code.parse.js +329 -0
  234. package/lib/types/dsh-adapter/migrate/adapters/codex.d.ts +3 -0
  235. package/lib/types/dsh-adapter/migrate/adapters/codex.d.ts.map +1 -0
  236. package/lib/types/dsh-adapter/migrate/adapters/codex.js +102 -0
  237. package/lib/types/dsh-adapter/migrate/adapters/codex.parse.d.ts +16 -0
  238. package/lib/types/dsh-adapter/migrate/adapters/codex.parse.d.ts.map +1 -0
  239. package/lib/types/dsh-adapter/migrate/adapters/codex.parse.js +289 -0
  240. package/lib/types/dsh-adapter/migrate/adapters/grok-build.d.ts +3 -0
  241. package/lib/types/dsh-adapter/migrate/adapters/grok-build.d.ts.map +1 -0
  242. package/lib/types/dsh-adapter/migrate/adapters/grok-build.js +117 -0
  243. package/lib/types/dsh-adapter/migrate/adapters/grok-build.parse.d.ts +13 -0
  244. package/lib/types/dsh-adapter/migrate/adapters/grok-build.parse.d.ts.map +1 -0
  245. package/lib/types/dsh-adapter/migrate/adapters/grok-build.parse.js +178 -0
  246. package/lib/types/dsh-adapter/migrate/adapters/omp.d.ts +3 -0
  247. package/lib/types/dsh-adapter/migrate/adapters/omp.d.ts.map +1 -0
  248. package/lib/types/dsh-adapter/migrate/adapters/omp.js +133 -0
  249. package/lib/types/dsh-adapter/migrate/adapters/scan-fs.d.ts +60 -0
  250. package/lib/types/dsh-adapter/migrate/adapters/scan-fs.d.ts.map +1 -0
  251. package/lib/types/dsh-adapter/migrate/adapters/scan-fs.js +178 -0
  252. package/lib/types/dsh-adapter/migrate/adapters/scan.d.ts +8 -0
  253. package/lib/types/dsh-adapter/migrate/adapters/scan.d.ts.map +1 -0
  254. package/lib/types/dsh-adapter/migrate/adapters/scan.js +40 -0
  255. package/lib/types/dsh-adapter/migrate/adapters/zcode.d.ts +3 -0
  256. package/lib/types/dsh-adapter/migrate/adapters/zcode.d.ts.map +1 -0
  257. package/lib/types/dsh-adapter/migrate/adapters/zcode.js +93 -0
  258. package/lib/types/dsh-adapter/migrate/adapters/zcode.parse.d.ts +9 -0
  259. package/lib/types/dsh-adapter/migrate/adapters/zcode.parse.d.ts.map +1 -0
  260. package/lib/types/dsh-adapter/migrate/adapters/zcode.parse.js +89 -0
  261. package/lib/types/dsh-adapter/migrate/bin-path.d.ts +6 -0
  262. package/lib/types/dsh-adapter/migrate/bin-path.d.ts.map +1 -0
  263. package/lib/types/dsh-adapter/migrate/bin-path.js +30 -0
  264. package/lib/types/dsh-adapter/migrate/browse.d.ts +42 -0
  265. package/lib/types/dsh-adapter/migrate/browse.d.ts.map +1 -0
  266. package/lib/types/dsh-adapter/migrate/browse.js +90 -0
  267. package/lib/types/dsh-adapter/migrate/cli.d.ts +9 -0
  268. package/lib/types/dsh-adapter/migrate/cli.d.ts.map +1 -0
  269. package/lib/types/dsh-adapter/migrate/cli.js +106 -0
  270. package/lib/types/dsh-adapter/migrate/import-one.d.ts +89 -0
  271. package/lib/types/dsh-adapter/migrate/import-one.d.ts.map +1 -0
  272. package/lib/types/dsh-adapter/migrate/import-one.js +133 -0
  273. package/lib/types/dsh-adapter/migrate/index.d.ts +35 -0
  274. package/lib/types/dsh-adapter/migrate/index.d.ts.map +1 -0
  275. package/lib/types/dsh-adapter/migrate/index.js +107 -0
  276. package/lib/types/dsh-adapter/migrate/parse/injection.d.ts +40 -0
  277. package/lib/types/dsh-adapter/migrate/parse/injection.d.ts.map +1 -0
  278. package/lib/types/dsh-adapter/migrate/parse/injection.js +127 -0
  279. package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts +28 -0
  280. package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts.map +1 -0
  281. package/lib/types/dsh-adapter/migrate/parse/jsonl.js +40 -0
  282. package/lib/types/dsh-adapter/migrate/parse/role-turns.d.ts +28 -0
  283. package/lib/types/dsh-adapter/migrate/parse/role-turns.d.ts.map +1 -0
  284. package/lib/types/dsh-adapter/migrate/parse/role-turns.js +50 -0
  285. package/lib/types/dsh-adapter/migrate/parse/title.d.ts +18 -0
  286. package/lib/types/dsh-adapter/migrate/parse/title.d.ts.map +1 -0
  287. package/lib/types/dsh-adapter/migrate/parse/title.js +29 -0
  288. package/lib/types/dsh-adapter/migrate/parse/tools.d.ts +62 -0
  289. package/lib/types/dsh-adapter/migrate/parse/tools.d.ts.map +1 -0
  290. package/lib/types/dsh-adapter/migrate/parse/tools.js +110 -0
  291. package/lib/types/dsh-adapter/migrate/picker.d.ts +64 -0
  292. package/lib/types/dsh-adapter/migrate/picker.d.ts.map +1 -0
  293. package/lib/types/dsh-adapter/migrate/picker.js +86 -0
  294. package/lib/types/dsh-adapter/migrate/recent-agents.d.ts +40 -0
  295. package/lib/types/dsh-adapter/migrate/recent-agents.d.ts.map +1 -0
  296. package/lib/types/dsh-adapter/migrate/recent-agents.js +100 -0
  297. package/lib/types/dsh-adapter/migrate/sessionize.d.ts +39 -0
  298. package/lib/types/dsh-adapter/migrate/sessionize.d.ts.map +1 -0
  299. package/lib/types/dsh-adapter/migrate/sessionize.js +271 -0
  300. package/lib/types/dsh-adapter/migrate/types.d.ts +176 -0
  301. package/lib/types/dsh-adapter/migrate/types.d.ts.map +1 -0
  302. package/lib/types/dsh-adapter/migrate/types.js +11 -0
  303. package/lib/types/dsh-adapter/migrate/uuid.d.ts +7 -0
  304. package/lib/types/dsh-adapter/migrate/uuid.d.ts.map +1 -0
  305. package/lib/types/dsh-adapter/migrate/uuid.js +25 -0
  306. package/lib/types/dsh-adapter/oauth/bonus.d.ts +27 -0
  307. package/lib/types/dsh-adapter/oauth/bonus.d.ts.map +1 -0
  308. package/lib/types/dsh-adapter/oauth/bonus.js +69 -0
  309. package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/command.d.ts +2 -1
  310. package/lib/types/dsh-adapter/oauth/command.d.ts.map +1 -0
  311. package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/command.js +7 -4
  312. package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/credentials.d.ts +13 -10
  313. package/lib/types/dsh-adapter/oauth/credentials.d.ts.map +1 -0
  314. package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/credentials.js +61 -23
  315. package/lib/types/dsh-adapter/oauth/deepseek.d.ts +39 -0
  316. package/lib/types/dsh-adapter/oauth/deepseek.d.ts.map +1 -0
  317. package/lib/types/dsh-adapter/oauth/deepseek.js +189 -0
  318. package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/index.d.ts +24 -16
  319. package/lib/types/dsh-adapter/oauth/index.d.ts.map +1 -0
  320. package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/index.js +34 -20
  321. package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/interaction.d.ts +14 -12
  322. package/lib/types/dsh-adapter/oauth/interaction.d.ts.map +1 -0
  323. package/lib/types/dsh-adapter/oauth/interaction.js +283 -0
  324. package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/opener.d.ts +2 -1
  325. package/lib/types/dsh-adapter/oauth/opener.d.ts.map +1 -0
  326. package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/opener.js +1 -1
  327. package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/pi-ai.d.ts +10 -3
  328. package/lib/types/dsh-adapter/oauth/pi-ai.d.ts.map +1 -0
  329. package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/pi-ai.js +8 -3
  330. package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/profiles.d.ts +6 -3
  331. package/lib/types/dsh-adapter/oauth/profiles.d.ts.map +1 -0
  332. package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/profiles.js +11 -3
  333. package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/service.d.ts +14 -7
  334. package/lib/types/dsh-adapter/oauth/service.d.ts.map +1 -0
  335. package/{node_modules/@deepseek-harness-tui/dsh-auth/lib → lib/types/dsh-adapter/oauth}/service.js +82 -17
  336. package/lib/types/dsh-adapter/plugin.d.ts +12 -3
  337. package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
  338. package/lib/types/dsh-adapter/plugin.js +215 -376
  339. package/lib/types/dsh-adapter/presets.d.ts +6 -4
  340. package/lib/types/dsh-adapter/presets.d.ts.map +1 -1
  341. package/lib/types/dsh-adapter/presets.js +6 -4
  342. package/lib/types/dsh-adapter/providerWizard.d.ts +17 -0
  343. package/lib/types/dsh-adapter/providerWizard.d.ts.map +1 -1
  344. package/lib/types/dsh-adapter/providerWizard.js +260 -68
  345. package/lib/types/dsh-adapter/questions.d.ts +22 -15
  346. package/lib/types/dsh-adapter/questions.d.ts.map +1 -1
  347. package/lib/types/dsh-adapter/questions.js +47 -45
  348. package/lib/types/dsh-adapter/sessions/digest.d.ts +11 -6
  349. package/lib/types/dsh-adapter/sessions/digest.d.ts.map +1 -1
  350. package/lib/types/dsh-adapter/sessions/digest.js +20 -13
  351. package/lib/types/dsh-adapter/sessions/frames.d.ts +3 -1
  352. package/lib/types/dsh-adapter/sessions/frames.d.ts.map +1 -1
  353. package/lib/types/dsh-adapter/sessions/frames.js +5 -4
  354. package/lib/types/dsh-adapter/sessions/list.d.ts +6 -1
  355. package/lib/types/dsh-adapter/sessions/list.d.ts.map +1 -1
  356. package/lib/types/dsh-adapter/sessions/list.js +188 -164
  357. package/lib/types/dsh-adapter/sessions/recovery.d.ts +16 -0
  358. package/lib/types/dsh-adapter/sessions/recovery.d.ts.map +1 -0
  359. package/lib/types/dsh-adapter/sessions/recovery.js +108 -0
  360. package/lib/types/dsh-adapter/sessions/snapshot.d.ts +7 -0
  361. package/lib/types/dsh-adapter/sessions/snapshot.d.ts.map +1 -0
  362. package/lib/types/dsh-adapter/sessions/snapshot.js +90 -0
  363. package/lib/types/dsh-adapter/sessions/store.d.ts +10 -4
  364. package/lib/types/dsh-adapter/sessions/store.d.ts.map +1 -1
  365. package/lib/types/dsh-adapter/sessions/store.js +62 -25
  366. package/lib/types/dsh-adapter/sideQuestion.d.ts +41 -2
  367. package/lib/types/dsh-adapter/sideQuestion.d.ts.map +1 -1
  368. package/lib/types/dsh-adapter/sideQuestion.js +98 -2
  369. package/lib/types/dsh-adapter/subagents.d.ts +29 -3
  370. package/lib/types/dsh-adapter/subagents.d.ts.map +1 -1
  371. package/lib/types/dsh-adapter/subagents.js +87 -3
  372. package/lib/types/herdr.d.ts +2 -0
  373. package/lib/types/herdr.d.ts.map +1 -1
  374. package/lib/types/herdr.js +9 -3
  375. package/lib/types/i18n.d.ts +598 -60
  376. package/lib/types/i18n.d.ts.map +1 -1
  377. package/lib/types/i18n.js +198 -31
  378. package/lib/types/ink/components/App.d.ts +2 -2
  379. package/lib/types/ink/components/App.d.ts.map +1 -1
  380. package/lib/types/ink/components/App.js +15 -2
  381. package/lib/types/ink/components/Image.d.ts +14 -1
  382. package/lib/types/ink/components/Image.d.ts.map +1 -1
  383. package/lib/types/ink/components/Image.js +2 -2
  384. package/lib/types/ink/events/input-event.js +3 -3
  385. package/lib/types/ink/hooks/use-terminal-images.d.ts +12 -0
  386. package/lib/types/ink/hooks/use-terminal-images.d.ts.map +1 -1
  387. package/lib/types/ink/hooks/use-terminal-images.js +13 -0
  388. package/lib/types/ink/ink.d.ts +6 -0
  389. package/lib/types/ink/ink.d.ts.map +1 -1
  390. package/lib/types/ink/ink.js +16 -1
  391. package/lib/types/ink/kitty-graphics.d.ts +44 -3
  392. package/lib/types/ink/kitty-graphics.d.ts.map +1 -1
  393. package/lib/types/ink/kitty-graphics.js +184 -23
  394. package/lib/types/ink/output.d.ts +24 -2
  395. package/lib/types/ink/output.d.ts.map +1 -1
  396. package/lib/types/ink/output.js +83 -5
  397. package/lib/types/ink/parse-keypress.d.ts +61 -1
  398. package/lib/types/ink/parse-keypress.d.ts.map +1 -1
  399. package/lib/types/ink/parse-keypress.js +764 -93
  400. package/lib/types/ink/render-node-to-output.d.ts.map +1 -1
  401. package/lib/types/ink/render-node-to-output.js +8 -1
  402. package/lib/types/ink/screen.d.ts +24 -0
  403. package/lib/types/ink/screen.d.ts.map +1 -1
  404. package/lib/types/ink/screen.js +89 -0
  405. package/lib/types/ink/selection.d.ts +40 -18
  406. package/lib/types/ink/selection.d.ts.map +1 -1
  407. package/lib/types/ink/selection.js +142 -30
  408. package/lib/types/ink/sixel-codec.d.ts +12 -1
  409. package/lib/types/ink/sixel-codec.d.ts.map +1 -1
  410. package/lib/types/ink/sixel-codec.js +29 -5
  411. package/lib/types/ink/sixel-graphics.d.ts.map +1 -1
  412. package/lib/types/ink/sixel-graphics.js +5 -3
  413. package/lib/types/ink/styles.d.ts +9 -0
  414. package/lib/types/ink/styles.d.ts.map +1 -1
  415. package/lib/types/ink/terminal-image.d.ts +8 -0
  416. package/lib/types/ink/terminal-image.d.ts.map +1 -1
  417. package/lib/types/ink/terminal-querier.d.ts +32 -1
  418. package/lib/types/ink/terminal-querier.d.ts.map +1 -1
  419. package/lib/types/ink/terminal-querier.js +54 -2
  420. package/lib/types/ink/timeline-rail.d.ts +5 -0
  421. package/lib/types/ink/timeline-rail.d.ts.map +1 -1
  422. package/lib/types/ink/update-overflow-guard.d.ts +24 -0
  423. package/lib/types/ink/update-overflow-guard.d.ts.map +1 -1
  424. package/lib/types/ink/update-overflow-guard.js +25 -3
  425. package/lib/types/math/inline-layout.d.ts +29 -0
  426. package/lib/types/math/inline-layout.d.ts.map +1 -0
  427. package/lib/types/math/inline-layout.js +106 -0
  428. package/lib/types/math/layout.d.ts +58 -0
  429. package/lib/types/math/layout.d.ts.map +1 -0
  430. package/lib/types/math/layout.js +59 -0
  431. package/lib/types/math/renderer.d.ts +64 -0
  432. package/lib/types/math/renderer.d.ts.map +1 -0
  433. package/lib/types/math/renderer.js +256 -0
  434. package/lib/types/minimalUiMode.d.ts +19 -0
  435. package/lib/types/minimalUiMode.d.ts.map +1 -0
  436. package/lib/types/minimalUiMode.js +23 -0
  437. package/lib/types/oauth.d.ts +5 -10
  438. package/lib/types/oauth.d.ts.map +1 -1
  439. package/lib/types/oauth.js +5 -10
  440. package/lib/types/screens/Chat.d.ts +17 -1
  441. package/lib/types/screens/Chat.d.ts.map +1 -1
  442. package/lib/types/screens/Chat.js +627 -54
  443. package/lib/types/screens/SessionSupervisor.d.ts +2 -1
  444. package/lib/types/screens/SessionSupervisor.d.ts.map +1 -1
  445. package/lib/types/screens/SessionSupervisor.js +156 -19
  446. package/lib/types/screens/Settings.d.ts.map +1 -1
  447. package/lib/types/screens/Settings.js +49 -11
  448. package/lib/types/screens/StatusLine.d.ts +4 -0
  449. package/lib/types/screens/StatusLine.d.ts.map +1 -1
  450. package/lib/types/screens/StatusLine.js +57 -27
  451. package/lib/types/screens/chatOverlay.d.ts +5 -0
  452. package/lib/types/screens/chatOverlay.d.ts.map +1 -1
  453. package/lib/types/screens/chatOverlay.js +1 -0
  454. package/lib/types/screens/sessionSupervisor/ForeignSessionPanes.d.ts +47 -0
  455. package/lib/types/screens/sessionSupervisor/ForeignSessionPanes.d.ts.map +1 -0
  456. package/lib/types/screens/sessionSupervisor/ForeignSessionPanes.js +65 -0
  457. package/lib/types/screens/sessionSupervisor/model.d.ts +12 -0
  458. package/lib/types/screens/sessionSupervisor/model.d.ts.map +1 -1
  459. package/lib/types/screens/sessionSupervisor/model.js +26 -0
  460. package/lib/types/screens/sessionSupervisor/useForeignSessions.d.ts +107 -0
  461. package/lib/types/screens/sessionSupervisor/useForeignSessions.d.ts.map +1 -0
  462. package/lib/types/screens/sessionSupervisor/useForeignSessions.js +312 -0
  463. package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts +4 -1
  464. package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts.map +1 -1
  465. package/lib/types/screens/sessionSupervisor/useSessionSupervisor.js +97 -14
  466. package/lib/types/sessionHistory.d.ts +2 -2
  467. package/lib/types/sessionHistory.d.ts.map +1 -1
  468. package/lib/types/sessionHistory.js +31 -5
  469. package/lib/types/settings/definitions.d.ts +681 -0
  470. package/lib/types/settings/definitions.d.ts.map +1 -0
  471. package/lib/types/settings/definitions.js +511 -0
  472. package/lib/types/starAction.d.ts +44 -0
  473. package/lib/types/starAction.d.ts.map +1 -0
  474. package/lib/types/starAction.js +52 -0
  475. package/lib/types/terminal-utils/latex.d.ts +10 -0
  476. package/lib/types/terminal-utils/latex.d.ts.map +1 -0
  477. package/lib/types/terminal-utils/latex.js +1417 -0
  478. package/lib/types/terminal-utils/markdown.d.ts +3 -1
  479. package/lib/types/terminal-utils/markdown.d.ts.map +1 -1
  480. package/lib/types/terminal-utils/markdown.js +26 -1
  481. package/lib/types/terminal-utils/math.d.ts +66 -0
  482. package/lib/types/terminal-utils/math.d.ts.map +1 -0
  483. package/lib/types/terminal-utils/math.js +337 -0
  484. package/lib/types/tips.d.ts.map +1 -1
  485. package/lib/types/tips.js +16 -4
  486. package/lib/types/tuiDisplayPrefs.d.ts +67 -0
  487. package/lib/types/tuiDisplayPrefs.d.ts.map +1 -1
  488. package/lib/types/tuiDisplayPrefs.js +59 -0
  489. package/lib/types/ui.d.ts +1 -1
  490. package/lib/types/ui.d.ts.map +1 -1
  491. package/lib/types/ui.js +1 -1
  492. package/lib/types/update.js +2 -2
  493. package/lib/types/usageStats.d.ts +98 -0
  494. package/lib/types/usageStats.d.ts.map +1 -0
  495. package/lib/types/usageStats.js +169 -0
  496. package/lib/types/utils/bmp.d.ts +17 -0
  497. package/lib/types/utils/bmp.d.ts.map +1 -0
  498. package/lib/types/utils/bmp.js +154 -0
  499. package/lib/types/utils/clipboard.d.ts +14 -2
  500. package/lib/types/utils/clipboard.d.ts.map +1 -1
  501. package/lib/types/utils/clipboard.js +143 -8
  502. package/lib/types/utils/fold-long-lines.d.ts.map +1 -1
  503. package/lib/types/utils/fold-long-lines.js +2 -1
  504. package/lib/types/utils/keymap.d.ts +4 -1
  505. package/lib/types/utils/keymap.d.ts.map +1 -1
  506. package/lib/types/utils/keymap.js +8 -0
  507. package/lib/types/utils/modifiers.d.ts +4 -3
  508. package/lib/types/utils/modifiers.d.ts.map +1 -1
  509. package/lib/types/utils/modifiers.js +4 -3
  510. package/lib/types/utils/pastedImagePath.d.ts +8 -0
  511. package/lib/types/utils/pastedImagePath.d.ts.map +1 -1
  512. package/lib/types/utils/pastedImagePath.js +29 -5
  513. package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/LICENSE +202 -0
  514. package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/NOTICE +20 -0
  515. package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/index.d.ts +16 -0
  516. package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/lib/bundled-packages.json +4 -0
  517. package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/lib/index.mjs +20 -0
  518. package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/lib/index.mjs.LEGAL.txt +35 -0
  519. package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/package.json +29 -0
  520. package/package.json +127 -102
  521. package/presets/liangshen/agent.cordis.yml +4 -1
  522. package/presets/liangshen/preset.yml +1 -1
  523. package/lib/types/minimalMode.d.ts +0 -13
  524. package/lib/types/minimalMode.d.ts.map +0 -1
  525. package/lib/types/minimalMode.js +0 -17
  526. package/node_modules/@deepseek-harness-tui/dsh-auth/LICENSE +0 -21
  527. package/node_modules/@deepseek-harness-tui/dsh-auth/README.md +0 -143
  528. package/node_modules/@deepseek-harness-tui/dsh-auth/cordis.patch.yml +0 -11
  529. package/node_modules/@deepseek-harness-tui/dsh-auth/dsh-plugin.json +0 -44
  530. package/node_modules/@deepseek-harness-tui/dsh-auth/lib/interaction.js +0 -193
  531. package/node_modules/@deepseek-harness-tui/dsh-auth/package.json +0 -69
@@ -216,8 +216,8 @@ declare const dict: {
216
216
  readonly en: "Minimal";
217
217
  };
218
218
  readonly 'preset-desc-minimal': {
219
- readonly zh: "仅提供持久 bash 与 str_replace_editor 的双工具编码 Agent。";
220
- readonly en: "A two-tool coding agent exposing only persistent bash and str_replace_editor.";
219
+ readonly zh: "内核 Agent 预设(极简模式):只暴露一个持久 shell 工具(POSIX 为 bash,Windows 为 pwsh),不带 compaction、计划模式与运行时上下文。";
220
+ readonly en: "Kernel agent preset (Minimal): a single persistent-shell tool (bash on POSIX, pwsh on Windows), with no compaction, no plan mode and no runtime context.";
221
221
  };
222
222
  readonly 'preset-name-code': {
223
223
  readonly zh: "PTC 模式";
@@ -240,8 +240,12 @@ declare const dict: {
240
240
  readonly en: "Liangshen mode";
241
241
  };
242
242
  readonly 'preset-desc-liangshen': {
243
- readonly zh: "主 Agent 与子 Agent 首轮均保持 Minimal 双工具,首次工具调用后开放完整目录,压缩后重新锚定。";
244
- readonly en: "Root and delegated agents keep the minimal two-tool pair on the first turn; the full catalog opens after the first tool call and re-anchors after compaction.";
243
+ readonly zh: "主 Agent 与子 Agent 首轮均保持极简模式的最小工具面,首次工具调用后开放完整目录,压缩后重新锚定。";
244
+ readonly en: "Root and delegated agents keep the Minimal preset's minimal tool surface on the first turn; the full catalog opens after the first tool call and re-anchors after compaction.";
245
+ };
246
+ readonly 'preset-picker-title': {
247
+ readonly zh: "内核 Agent 预设";
248
+ readonly en: "Kernel agent preset";
245
249
  };
246
250
  readonly 'mcp-none-configured': {
247
251
  readonly zh: "未配置 MCP 服务器。";
@@ -522,9 +526,9 @@ declare const dict: {
522
526
  readonly zh: " 运行中";
523
527
  readonly en: " running";
524
528
  };
525
- readonly 'subagent-archived': {
526
- readonly zh: " 已归档";
527
- readonly en: " archived";
529
+ readonly 'subagent-unknown': {
530
+ readonly zh: " 状态未知";
531
+ readonly en: " status unknown";
528
532
  };
529
533
  readonly 'subagent-query-failed': {
530
534
  readonly zh: "查询失败 · {{err}}";
@@ -914,6 +918,22 @@ declare const dict: {
914
918
  readonly zh: "压缩进行中,已取消并切换会话";
915
919
  readonly en: "In-flight compaction cancelled for the session switch";
916
920
  };
921
+ readonly 'compact-phase-prefill': {
922
+ readonly zh: "读取上下文…";
923
+ readonly en: "reading context…";
924
+ };
925
+ readonly 'compact-esc-cancel': {
926
+ readonly zh: "Esc 取消";
927
+ readonly en: "Esc cancels";
928
+ };
929
+ readonly 'compact-cancelled': {
930
+ readonly zh: "压缩已取消";
931
+ readonly en: "Compaction cancelled";
932
+ };
933
+ readonly 'compact-badge': {
934
+ readonly zh: "压缩中";
935
+ readonly en: "compacting";
936
+ };
917
937
  readonly 'turn-failed': {
918
938
  readonly zh: "回合出错{{detail}}";
919
939
  readonly en: "Turn error{{detail}}";
@@ -977,6 +997,98 @@ declare const dict: {
977
997
  readonly zh: "选区内容已变化,已取消复制";
978
998
  readonly en: "Content under the selection changed; copy cancelled";
979
999
  };
1000
+ readonly 'migrate-failed': {
1001
+ readonly zh: "{{n}} 个源导入失败,详见输出";
1002
+ readonly en: "{{n}} source(s) failed — see the output";
1003
+ };
1004
+ readonly 'migrate-spawn-failed': {
1005
+ readonly zh: "无法启动迁移子进程(找不到本包 bin)";
1006
+ readonly en: "Could not start the migration child process (package bin not found)";
1007
+ };
1008
+ readonly 'migrate-child-timeout': {
1009
+ readonly zh: "(子进程超过 {{minutes}} 分钟未结束,已终止)";
1010
+ readonly en: "(the child ran past {{minutes}} minutes and was terminated)";
1011
+ };
1012
+ readonly 'migrate-usage': {
1013
+ readonly zh: "一次只能迁移一个源:/migrate <agent> [--dry-run]";
1014
+ readonly en: "One source per run: /migrate <agent> [--dry-run]";
1015
+ };
1016
+ readonly 'migrate-dry-run-needs-source': {
1017
+ readonly zh: "请指明要预览的源:/migrate <agent> --dry-run";
1018
+ readonly en: "Name the source to preview: /migrate <agent> --dry-run";
1019
+ };
1020
+ readonly 'picker-title-migrate': {
1021
+ readonly zh: "迁移哪个代理的对话?";
1022
+ readonly en: "Import conversations from which agent?";
1023
+ };
1024
+ readonly 'migrate-picker-empty': {
1025
+ readonly zh: "没有可用的迁移源";
1026
+ readonly en: "No migration sources available";
1027
+ };
1028
+ readonly 'migrate-picker-scanning': {
1029
+ readonly zh: "正在扫描各源…";
1030
+ readonly en: "Scanning sources…";
1031
+ };
1032
+ readonly 'migrate-picker-recent': {
1033
+ readonly zh: "{{minutes}} 分钟前刚活动过";
1034
+ readonly en: "active {{minutes}} min ago";
1035
+ };
1036
+ readonly 'migrate-picker-cold': {
1037
+ readonly zh: "最近未活动";
1038
+ readonly en: "not active recently";
1039
+ };
1040
+ readonly 'migrate-picker-count': {
1041
+ readonly zh: "{{n}} 个会话文件";
1042
+ readonly en: "{{n}} session files";
1043
+ };
1044
+ readonly 'migrate-hint-notify': {
1045
+ readonly zh: "刚刚从 {{agent}} 过来?/migrate 来快速迁移";
1046
+ readonly en: "Just came from {{agent}}? /migrate imports it quickly";
1047
+ };
1048
+ readonly 'migrate-picker-hint': {
1049
+ readonly zh: "空格 勾选 · a 全选/全不选 · Enter 确认 · Esc 关闭";
1050
+ readonly en: "Space toggle · a all/none · Enter confirm · Esc close";
1051
+ };
1052
+ readonly 'migrate-confirm-title': {
1053
+ readonly zh: "确认导入";
1054
+ readonly en: "Confirm import";
1055
+ };
1056
+ readonly 'migrate-confirm-line': {
1057
+ readonly zh: "{{label}}:将导入 {{n}} 个会话文件";
1058
+ readonly en: "{{label}}: {{n}} session files to import";
1059
+ };
1060
+ readonly 'migrate-confirm-note': {
1061
+ readonly zh: "已存在的自动跳过,可重复执行";
1062
+ readonly en: "Existing sessions are skipped automatically; safe to re-run";
1063
+ };
1064
+ readonly 'migrate-confirm-actions': {
1065
+ readonly zh: "Enter 导入 · d 干跑预览 · Esc 返回选择";
1066
+ readonly en: "Enter import · d dry-run · Esc back";
1067
+ };
1068
+ readonly 'migrate-importing-source': {
1069
+ readonly zh: "正在导入 {{label}}({{i}}/{{n}})…";
1070
+ readonly en: "Importing {{label}} ({{i}}/{{n}})…";
1071
+ };
1072
+ readonly 'migrate-previewing-source': {
1073
+ readonly zh: "正在预览 {{label}}({{i}}/{{n}})…";
1074
+ readonly en: "Previewing {{label}} ({{i}}/{{n}})…";
1075
+ };
1076
+ readonly 'migrate-source-done': {
1077
+ readonly zh: "{{label}}:导入 {{imported}} · 已存在 {{existing}}";
1078
+ readonly en: "{{label}}: imported {{imported}} · already present {{existing}}";
1079
+ };
1080
+ readonly 'migrate-all-done': {
1081
+ readonly zh: "迁移完成({{n}} 个源)";
1082
+ readonly en: "Migration finished ({{n}} source(s))";
1083
+ };
1084
+ readonly 'migrate-all-previewed': {
1085
+ readonly zh: "预览完成({{n}} 个源,未写入)";
1086
+ readonly en: "Preview finished ({{n}} source(s), nothing written)";
1087
+ };
1088
+ readonly 'migrate-unknown-agent': {
1089
+ readonly zh: "未知迁移源 {{agent}},可用源见 /migrate";
1090
+ readonly en: "Unknown migration source {{agent}}; see /migrate for the list";
1091
+ };
980
1092
  readonly 'activity-current-preset': {
981
1093
  readonly zh: "当前预设 {{name}}";
982
1094
  readonly en: "Current preset {{name}}";
@@ -1232,6 +1344,10 @@ declare const dict: {
1232
1344
  readonly zh: "正在读取会话…";
1233
1345
  readonly en: "Loading sessions…";
1234
1346
  };
1347
+ readonly 'home-sessions-refreshing': {
1348
+ readonly zh: "后台刷新中";
1349
+ readonly en: "refreshing";
1350
+ };
1235
1351
  readonly 'home-sessions-failed': {
1236
1352
  readonly zh: "读取会话失败 · {{err}}";
1237
1353
  readonly en: "Failed to load sessions · {{err}}";
@@ -1353,8 +1469,84 @@ declare const dict: {
1353
1469
  readonly en: "The session you are attached to cannot be stopped";
1354
1470
  };
1355
1471
  readonly 'supervisor-open-failed': {
1356
- readonly zh: "无法进入会话「{{name}}」· 原因见下方通知";
1357
- readonly en: "Could not enter {{name}} · the reason is in the notification below";
1472
+ readonly zh: "无法进入会话「{{name}}」· {{reason}}";
1473
+ readonly en: "Could not enter {{name}} · {{reason}}";
1474
+ };
1475
+ readonly 'supervisor-hint-tabs': {
1476
+ readonly zh: "**Tab** 切换来源";
1477
+ readonly en: "**Tab** switch source";
1478
+ };
1479
+ readonly 'supervisor-foreign-sessions-title': {
1480
+ readonly zh: "{{source}} · {{name}} 的会话";
1481
+ readonly en: "{{source}} · sessions in {{name}}";
1482
+ };
1483
+ readonly 'supervisor-foreign-count': {
1484
+ readonly zh: "共 {{total}}";
1485
+ readonly en: "{{total}} total";
1486
+ };
1487
+ readonly 'supervisor-foreign-filter-placeholder': {
1488
+ readonly zh: "输入以按标题或目录搜索…";
1489
+ readonly en: "Type to search by title or directory…";
1490
+ };
1491
+ readonly 'supervisor-foreign-loading': {
1492
+ readonly zh: "正在读取 {{source}} 的会话…";
1493
+ readonly en: "Reading {{source}} sessions…";
1494
+ };
1495
+ readonly 'supervisor-foreign-empty': {
1496
+ readonly zh: "{{source}} 里没有可导入的会话";
1497
+ readonly en: "No importable sessions in {{source}}";
1498
+ };
1499
+ readonly 'supervisor-foreign-unknown-cwd': {
1500
+ readonly zh: "未知目录";
1501
+ readonly en: "Unknown directory";
1502
+ };
1503
+ readonly 'supervisor-foreign-hint-rail': {
1504
+ readonly zh: "**←/→** 切换栏位 · **↑/↓** 选择 · **Tab** 切换来源 · Esc 返回";
1505
+ readonly en: "**←/→** switch pane · **↑/↓** move · **Tab** switch source · Esc back";
1506
+ };
1507
+ readonly 'supervisor-foreign-hint-list': {
1508
+ readonly zh: "**←/→** 切换栏位 · **Enter** 导入并打开 · **Tab** 切换来源 · Ctrl+L 重新扫描 · Esc 返回";
1509
+ readonly en: "**←/→** switch pane · **Enter** import and open · **Tab** switch source · Ctrl+L rescan · Esc back";
1510
+ };
1511
+ readonly 'supervisor-foreign-hint-filter': {
1512
+ readonly zh: "输入过滤会话 · **Enter** 导入并打开 · Esc 清空";
1513
+ readonly en: "Type to filter · **Enter** import and open · Esc clears";
1514
+ };
1515
+ readonly 'supervisor-foreign-importing': {
1516
+ readonly zh: "正在导入「{{name}}」…";
1517
+ readonly en: "Importing {{name}}…";
1518
+ };
1519
+ readonly 'supervisor-foreign-import-failed': {
1520
+ readonly zh: "导入失败 · {{err}}";
1521
+ readonly en: "Import failed · {{err}}";
1522
+ };
1523
+ readonly 'supervisor-foreign-scan-failed': {
1524
+ readonly zh: "读取外部会话失败 · {{err}}";
1525
+ readonly en: "Failed to read foreign sessions · {{err}}";
1526
+ };
1527
+ readonly 'supervisor-foreign-cwd-missing': {
1528
+ readonly zh: "该会话的工作目录已不存在,未导入:{{cwd}}";
1529
+ readonly en: "Not imported: its working directory no longer exists: {{cwd}}";
1530
+ };
1531
+ readonly 'supervisor-foreign-failed-missing': {
1532
+ readonly zh: "源文件已不存在";
1533
+ readonly en: "the source file is gone";
1534
+ };
1535
+ readonly 'supervisor-foreign-failed-too-large': {
1536
+ readonly zh: "源文件过大";
1537
+ readonly en: "the source file is too large";
1538
+ };
1539
+ readonly 'supervisor-foreign-failed-not-a-session': {
1540
+ readonly zh: "不是可导入的会话";
1541
+ readonly en: "not an importable session";
1542
+ };
1543
+ readonly 'supervisor-foreign-failed-write-failed': {
1544
+ readonly zh: "写入会话失败";
1545
+ readonly en: "writing the session failed";
1546
+ };
1547
+ readonly 'supervisor-foreign-failed-unknown-source': {
1548
+ readonly zh: "未知来源";
1549
+ readonly en: "unknown source";
1358
1550
  };
1359
1551
  readonly 'cost-cache-rate': {
1360
1552
  readonly zh: "缓存率 {{rate}}% · {{read}} 读 / {{write}} 写";
@@ -1373,8 +1565,12 @@ declare const dict: {
1373
1565
  readonly en: "Cache hit rate {{rate}}% · cache {{read}} read / {{write}} write";
1374
1566
  };
1375
1567
  readonly 'cost-note': {
1376
- readonly zh: "注:DSH 不提供 API 费用计量,以上为 token 用量(按 provider 账单计费)";
1377
- readonly en: "Note: DSH provides no API cost metering; the above is token usage (billed by your provider)";
1568
+ readonly zh: "注:以上为本地估算(官方单价 × 用量),非平台账单,以 DeepSeek 平台为准";
1569
+ readonly en: "Note: the above is a local estimate (official unit rates × usage), not a platform bill — the DeepSeek platform is authoritative";
1570
+ };
1571
+ readonly 'cost-note-no-amount': {
1572
+ readonly zh: "注:以上仅为 token 用量,暂无可估算金额(本会话暂无用量,或模型未收录/非官方);估算仅供参考,以 DeepSeek 平台为准";
1573
+ readonly en: "Note: the above is token usage only; no amount can be estimated (no usage yet, or the model is unlisted/non-official). Estimates are for reference — the DeepSeek platform is authoritative";
1378
1574
  };
1379
1575
  readonly 'status-cost-label': {
1380
1576
  readonly zh: "≈";
@@ -1384,6 +1580,22 @@ declare const dict: {
1384
1580
  readonly zh: "估算(官方单价,非账单)";
1385
1581
  readonly en: "estimate (official rates, not a bill)";
1386
1582
  };
1583
+ readonly 'cost-session-estimate': {
1584
+ readonly zh: "本会话估算 ≈¥{{cost}}";
1585
+ readonly en: "Session estimate ≈¥{{cost}}";
1586
+ };
1587
+ readonly 'cost-split-main': {
1588
+ readonly zh: "主会话 ¥{{cost}}";
1589
+ readonly en: "main ¥{{cost}}";
1590
+ };
1591
+ readonly 'cost-split-subagent': {
1592
+ readonly zh: "子代理 ¥{{cost}}";
1593
+ readonly en: "subagent ¥{{cost}}";
1594
+ };
1595
+ readonly 'cost-unpriced': {
1596
+ readonly zh: "未计价 {{tokens}} tok";
1597
+ readonly en: "unpriced {{tokens}} tok";
1598
+ };
1387
1599
  readonly 'cost-peak-name': {
1388
1600
  readonly zh: "梁文峰";
1389
1601
  readonly en: "peak";
@@ -1557,8 +1769,8 @@ declare const dict: {
1557
1769
  readonly en: "Manage DSH credentials with /provider; for env sources, remove the corresponding environment variable and restart dsh-tui";
1558
1770
  };
1559
1771
  readonly 'login-oauth-heading': {
1560
- readonly zh: "订阅账号(OAuth):";
1561
- readonly en: "Subscriptions (OAuth):";
1772
+ readonly zh: "OAuth 账号:";
1773
+ readonly en: "OAuth accounts:";
1562
1774
  };
1563
1775
  readonly 'login-oauth-row': {
1564
1776
  readonly zh: " {{provider}} — {{state}}";
@@ -1568,6 +1780,10 @@ declare const dict: {
1568
1780
  readonly zh: "已登录 · 令牌到期 {{time}}";
1569
1781
  readonly en: "signed in · token expires {{time}}";
1570
1782
  };
1783
+ readonly 'login-oauth-in-no-expiry': {
1784
+ readonly zh: "已登录";
1785
+ readonly en: "signed in";
1786
+ };
1571
1787
  readonly 'login-oauth-expired': {
1572
1788
  readonly zh: "已登录但令牌已过期,重新登录可恢复";
1573
1789
  readonly en: "signed in but the token expired — sign in again to restore";
@@ -1577,8 +1793,8 @@ declare const dict: {
1577
1793
  readonly en: "not signed in";
1578
1794
  };
1579
1795
  readonly 'login-oauth-hint': {
1580
- readonly zh: " 登录/登出:/provider 订阅账号登录,或 /auth login <provider>";
1581
- readonly en: " Sign in/out: /provider subscription sign-in, or /auth login <provider>";
1796
+ readonly zh: " 登录/登出:/provider 账号登录,或 /auth login <provider>";
1797
+ readonly en: " Sign in/out: /provider account sign-in, or /auth login <provider>";
1582
1798
  };
1583
1799
  readonly 'permission-policy-hint': {
1584
1800
  readonly zh: "DSH 权限策略由 fs-policy / bash-sandbox 配置决定(当前 leaf:workspace 内读写、写入需已读文件)。";
@@ -1781,8 +1997,8 @@ declare const dict: {
1781
1997
  readonly en: "Recommended: Windows Terminal (≥110 columns, monospace, TrueColor).";
1782
1998
  };
1783
1999
  readonly 'terminal-paste-hint': {
1784
- readonly zh: "{{mod}}V 或 Alt+V 粘贴文本、文件路径或图片;Ctrl+Shift+V 终端原生粘贴;右键粘贴同样可用;快捷键可在 /settings 修改。";
1785
- readonly en: "{{mod}}V or Alt+V pastes text, file paths, or images; Ctrl+Shift+V is native terminal paste; right-click paste also works; remappable via /settings.";
2000
+ readonly zh: "{{keys}} 粘贴文本、文件路径或图片;Ctrl+Shift+V 终端原生粘贴;右键粘贴同样可用;快捷键可在 /settings 修改。";
2001
+ readonly en: "{{keys}} pastes text, file paths, or images; Ctrl+Shift+V is native terminal paste; right-click paste also works; remappable via /settings.";
1786
2002
  };
1787
2003
  readonly 'connect-none': {
1788
2004
  readonly zh: "当前环境未提供远程连接服务。";
@@ -2048,6 +2264,10 @@ declare const dict: {
2048
2264
  readonly zh: "当前 preset 未注册 /plan 命令,无法切换计划模式";
2049
2265
  readonly en: "The active preset does not register /plan; cannot toggle plan mode";
2050
2266
  };
2267
+ readonly 'mode-switch-failed': {
2268
+ readonly zh: "模式切换失败 · {{err}}";
2269
+ readonly en: "Mode switch failed · {{err}}";
2270
+ };
2051
2271
  readonly 'mode-permission-unregistered': {
2052
2272
  readonly zh: "当前 preset 未注册 /permission 命令,无法切换权限模式";
2053
2273
  readonly en: "The active preset does not register /permission; cannot switch the permission mode";
@@ -2072,6 +2292,129 @@ declare const dict: {
2072
2292
  readonly zh: "探索未至之境!";
2073
2293
  readonly en: "Explore the uncharted!";
2074
2294
  };
2295
+ readonly 'logo-star-title': {
2296
+ readonly zh: "鲸鱼娘好像在等一颗小星星…… ☆";
2297
+ readonly en: "The whale girl seems to be waiting for a little star… ☆";
2298
+ };
2299
+ readonly 'logo-star-caught': {
2300
+ readonly zh: "鲸鱼娘捡到一颗小星星啦 ✨";
2301
+ readonly en: "The whale girl caught a little star ✨";
2302
+ };
2303
+ readonly 'logo-star-stats': {
2304
+ readonly zh: "已陪你 {{hours}} 小时 · 第 {{launches}} 次打开";
2305
+ readonly en: "{{hours}}h together · launch #{{launches}}";
2306
+ };
2307
+ readonly 'logo-star-ask': {
2308
+ readonly zh: "喜欢 dshTUI 的话,顺手点亮一颗 {{star}}?(点这一行或 {{key}} 一键支持)";
2309
+ readonly en: "If you like dsh-TUI, would you light a {{star}}? (click this line or {{key}})";
2310
+ };
2311
+ readonly 'cmd-desc-star': {
2312
+ readonly zh: "给这个项目点个 star(用 gh 一键)";
2313
+ };
2314
+ readonly 'star-ok': {
2315
+ readonly zh: "已 star,谢谢!";
2316
+ readonly en: "Starred — thank you!";
2317
+ };
2318
+ readonly 'star-no-gh': {
2319
+ readonly zh: "没找到 gh(GitHub CLI),已经替你在浏览器里打开仓库页:{{url}}。装一个 gh 就能一键 star:https://cli.github.com";
2320
+ readonly en: "gh (GitHub CLI) is not installed, so I opened the repo page in your browser: {{url}}. Install gh for one-key starring: https://cli.github.com";
2321
+ };
2322
+ readonly 'star-not-authed': {
2323
+ readonly zh: "gh 还没登录,已经替你在浏览器里打开仓库页:{{url}}。想一键 star 就先跑 gh auth login";
2324
+ readonly en: "gh is not logged in, so I opened the repo page in your browser: {{url}}. Run gh auth login for one-key starring";
2325
+ };
2326
+ readonly 'star-failed': {
2327
+ readonly zh: "一键 star 没成功:{{detail}}(也可以直接在浏览器里打开 {{url}})";
2328
+ readonly en: "One-key star failed: {{detail}} (or open {{url}} in a browser)";
2329
+ };
2330
+ readonly 'star-modal-title-hours': {
2331
+ readonly zh: "🐳 已经陪你 {{hours}} 小时了!";
2332
+ readonly en: "🐳 {{hours}} hours together!";
2333
+ };
2334
+ readonly 'star-modal-title-launches': {
2335
+ readonly zh: "🐳 已经陪你 {{launches}} 次启动了!";
2336
+ readonly en: "🐳 {{launches}} launches together!";
2337
+ };
2338
+ readonly 'star-modal-body-1': {
2339
+ readonly zh: "不知不觉,dshTUI 已经陪你走了这么久啦。";
2340
+ readonly en: "Before you noticed, dsh-TUI had already come this far with you.";
2341
+ };
2342
+ readonly 'star-modal-body-2': {
2343
+ readonly zh: "如果它有让你的 DSH 更好用一点、";
2344
+ readonly en: "If it made your DSH a little more usable,";
2345
+ };
2346
+ readonly 'star-modal-body-3': {
2347
+ readonly zh: "更顺手一点,或者只是让你开心了一点——";
2348
+ readonly en: "a little smoother — or just made you smile —";
2349
+ };
2350
+ readonly 'star-modal-body-4': {
2351
+ readonly zh: "那就送鲸鱼娘一颗小小的 Star 吧 ⭐";
2352
+ readonly en: "treat the whale girl to a tiny Star ⭐";
2353
+ };
2354
+ readonly 'star-modal-body-5': {
2355
+ readonly zh: "每一颗 Star,都会变成我们继续折腾";
2356
+ readonly en: "Every Star becomes fuel for us to keep tinkering";
2357
+ };
2358
+ readonly 'star-modal-body-6': {
2359
+ readonly zh: "和把 dshTUI 做得更好的动力!";
2360
+ readonly en: "and to keep making dsh-TUI better!";
2361
+ };
2362
+ readonly 'star-modal-star': {
2363
+ readonly zh: "投喂一颗 Star ⭐";
2364
+ readonly en: "Feed a Star ⭐";
2365
+ };
2366
+ readonly 'star-modal-open': {
2367
+ readonly zh: "在浏览器中打开 GitHub";
2368
+ readonly en: "Open GitHub in the browser";
2369
+ };
2370
+ readonly 'star-modal-working': {
2371
+ readonly zh: "正在点 star…";
2372
+ readonly en: "Starring…";
2373
+ };
2374
+ readonly 'star-modal-hint': {
2375
+ readonly zh: "↑↓ 选择 · **Enter** 确认 · **Esc** 下次一定 (´;ω;`)";
2376
+ readonly en: "↑↓ choose · **Enter** confirm · **Esc** next time (´;ω;`)";
2377
+ };
2378
+ readonly 'star-modal-thanks-title': {
2379
+ readonly zh: "🌟 收到 Star 啦!";
2380
+ readonly en: "🌟 Star received!";
2381
+ };
2382
+ readonly 'star-modal-thanks-1': {
2383
+ readonly zh: "鲸鱼娘成功接住了一颗小星星 ~";
2384
+ readonly en: "The whale girl caught a little star ~";
2385
+ };
2386
+ readonly 'star-modal-thanks-2': {
2387
+ readonly zh: "谢谢你的支持!";
2388
+ readonly en: "Thank you for your support!";
2389
+ };
2390
+ readonly 'star-modal-thanks-3': {
2391
+ readonly zh: "这颗 Star 会变成 dshTUI 继续成长的动力。";
2392
+ readonly en: "This Star becomes fuel for dsh-TUI to keep growing.";
2393
+ };
2394
+ readonly 'star-modal-thanks-4': {
2395
+ readonly zh: "希望以后,它也能继续陪你走很久。";
2396
+ readonly en: "May it keep you company for a long time to come.";
2397
+ };
2398
+ readonly 'star-modal-thanks-hint': {
2399
+ readonly zh: "**Enter** / **Esc** 关闭";
2400
+ readonly en: "**Enter** / **Esc** to close";
2401
+ };
2402
+ readonly 'coupon-modal-title': {
2403
+ readonly zh: "鲸鱼券";
2404
+ readonly en: "Whale coupon";
2405
+ };
2406
+ readonly 'coupon-modal-received': {
2407
+ readonly zh: "DeepSeek 送你的 {{amount}} {{unit}}鲸鱼券到账啦~";
2408
+ readonly en: "Your {{amount}} {{unit}} whale coupon from DeepSeek is here ~";
2409
+ };
2410
+ readonly 'coupon-modal-expiry': {
2411
+ readonly zh: "Deepy提醒:这张券 {{month}} 月 {{day}} 日 {{time}} 就要过期啦,别忘记用掉哦~";
2412
+ readonly en: "Deepy says: this coupon expires on {{month}}/{{day}} at {{time}}. Do not forget to use it ~";
2413
+ };
2414
+ readonly 'coupon-modal-hint': {
2415
+ readonly zh: "**Enter** / **Esc** 收好鲸鱼券";
2416
+ readonly en: "**Enter** / **Esc** to tuck it away";
2417
+ };
2075
2418
  readonly 'logo-tip-prefix': {
2076
2419
  readonly zh: "提示:";
2077
2420
  readonly en: "Tip: ";
@@ -2148,6 +2491,10 @@ declare const dict: {
2148
2491
  readonly zh: "无法读取剪贴板:没有可用的 wl-paste / xclip / xsel(未安装或会话不可连接)";
2149
2492
  readonly en: "Cannot read clipboard: no usable wl-paste / xclip / xsel (not installed or session unreachable)";
2150
2493
  };
2494
+ readonly 'input-clipboard-unavailable-wsl': {
2495
+ readonly zh: "无法读取剪贴板:WSL 下请安装 wl-clipboard(需要 WSLg),或启用 Windows interop 以调用 powershell.exe";
2496
+ readonly en: "Cannot read clipboard: in WSL install wl-clipboard (needs WSLg) or enable Windows interop so powershell.exe is reachable";
2497
+ };
2151
2498
  readonly 'input-image-pasted': {
2152
2499
  readonly zh: "已粘贴图片 {{token}}";
2153
2500
  readonly en: "Pasted image {{token}}";
@@ -2309,8 +2656,8 @@ declare const dict: {
2309
2656
  readonly en: "… ({{n}} total)";
2310
2657
  };
2311
2658
  readonly 'lines-folded-expand': {
2312
- readonly zh: "… +{{n}} 行(ctrl+o 展开)";
2313
- readonly en: "… +{{n}} lines (ctrl+o to expand)";
2659
+ readonly zh: "… +{{n}} 行({{key}} 展开)";
2660
+ readonly en: "… +{{n}} lines ({{key}} to expand)";
2314
2661
  };
2315
2662
  readonly 'sugg-commands-title': {
2316
2663
  readonly zh: "命令";
@@ -2401,16 +2748,16 @@ declare const dict: {
2401
2748
  readonly en: "? for this help";
2402
2749
  };
2403
2750
  readonly 'help-verbose-output': {
2404
- readonly zh: "{{mod}}o 详细输出";
2405
- readonly en: "{{mod}}o for verbose output";
2751
+ readonly zh: "{{key}} 详细输出";
2752
+ readonly en: "{{key}} for verbose output";
2406
2753
  };
2407
2754
  readonly 'help-open-trajectory': {
2408
- readonly zh: "{{mod}}t 打开会话轨迹";
2409
- readonly en: "{{mod}}t to open trajectory";
2755
+ readonly zh: "{{key}} 打开会话轨迹";
2756
+ readonly en: "{{key}} to open trajectory";
2410
2757
  };
2411
2758
  readonly 'help-search-history': {
2412
- readonly zh: "{{mod}}r 搜索历史";
2413
- readonly en: "{{mod}}r to search history";
2759
+ readonly zh: "{{key}} 搜索历史";
2760
+ readonly en: "{{key}} to search history";
2414
2761
  };
2415
2762
  readonly 'help-interrupt': {
2416
2763
  readonly zh: "ctrl+c 打断";
@@ -2421,8 +2768,8 @@ declare const dict: {
2421
2768
  readonly en: "ctrl+d to exit";
2422
2769
  };
2423
2770
  readonly 'help-redraw': {
2424
- readonly zh: "{{mod}}l 重绘";
2425
- readonly en: "{{mod}}l to redraw";
2771
+ readonly zh: "{{key}} 重绘";
2772
+ readonly en: "{{key}} to redraw";
2426
2773
  };
2427
2774
  readonly 'help-clear-input': {
2428
2775
  readonly zh: "esc 清空输入";
@@ -2449,16 +2796,16 @@ declare const dict: {
2449
2796
  readonly en: "shift+tab to cycle mode";
2450
2797
  };
2451
2798
  readonly 'help-open-editor': {
2452
- readonly zh: "ctrl+g 打开编辑器";
2453
- readonly en: "ctrl+g to open editor";
2799
+ readonly zh: "{{key}} 打开编辑器";
2800
+ readonly en: "{{key}} to open editor";
2454
2801
  };
2455
2802
  readonly 'help-fold-todos': {
2456
- readonly zh: "{{mod}}q 折叠待办";
2457
- readonly en: "{{mod}}q to fold todos";
2803
+ readonly zh: "{{key}} 折叠待办";
2804
+ readonly en: "{{key}} to fold todos";
2458
2805
  };
2459
2806
  readonly 'goal-todo-fold-hint': {
2460
- readonly zh: "{{mod}}q 折叠";
2461
- readonly en: "{{mod}}q to fold";
2807
+ readonly zh: "{{key}} 折叠";
2808
+ readonly en: "{{key}} to fold";
2462
2809
  };
2463
2810
  readonly 'help-commands-title': {
2464
2811
  readonly zh: "命令:";
@@ -2489,8 +2836,8 @@ declare const dict: {
2489
2836
  readonly en: " ↑ load earlier messages (full session log; /export for full text) ";
2490
2837
  };
2491
2838
  readonly 'show-previous-messages': {
2492
- readonly zh: " ctrl+e 显示前 {{n}} 条消息 ";
2493
- readonly en: " ctrl+e to show {{n}} previous messages ";
2839
+ readonly zh: " {{key}} 显示前 {{n}} 条消息 ";
2840
+ readonly en: " {{key}} to show {{n}} previous messages ";
2494
2841
  };
2495
2842
  readonly 'resume-resumed': {
2496
2843
  readonly zh: "已恢复会话";
@@ -2749,12 +3096,12 @@ declare const dict: {
2749
3096
  readonly en: "↑/↓ to navigate · **Enter** to select · Esc to cancel";
2750
3097
  };
2751
3098
  readonly 'hint-expand-ctrl-o': {
2752
- readonly zh: "(ctrl+o 展开)";
2753
- readonly en: "(ctrl+o to expand)";
3099
+ readonly zh: "({{key}} 展开)";
3100
+ readonly en: "({{key}} to expand)";
2754
3101
  };
2755
3102
  readonly 'long-line-folded': {
2756
- readonly zh: "… 已折叠 {{n}} 字符(点击或 ctrl+o 展开)";
2757
- readonly en: "… {{n}} chars folded (click or ctrl+o to expand)";
3103
+ readonly zh: "… 已折叠 {{n}} 字符(点击或 {{key}} 展开)";
3104
+ readonly en: "… {{n}} chars folded (click or {{key}} to expand)";
2758
3105
  };
2759
3106
  readonly 'file-actions-title': {
2760
3107
  readonly zh: "文件操作";
@@ -3224,8 +3571,8 @@ declare const dict: {
3224
3571
  readonly en: "Type answer";
3225
3572
  };
3226
3573
  readonly 'question-hint-paste': {
3227
- readonly zh: "Ctrl+V 粘贴";
3228
- readonly en: "Ctrl+V paste";
3574
+ readonly zh: "{{key}} 粘贴";
3575
+ readonly en: "{{key}} paste";
3229
3576
  };
3230
3577
  readonly 'question-hint-enter': {
3231
3578
  readonly zh: "Enter 提交";
@@ -3243,6 +3590,14 @@ declare const dict: {
3243
3590
  readonly zh: "Esc 上一题";
3244
3591
  readonly en: "Esc previous question";
3245
3592
  };
3593
+ readonly 'question-hint-switch': {
3594
+ readonly zh: "←/→ 换题";
3595
+ readonly en: "←/→ switch question";
3596
+ };
3597
+ readonly 'question-hint-switch-input': {
3598
+ readonly zh: "行首←/行尾→ 换题";
3599
+ readonly en: "←/→ at the text edge switches question";
3600
+ };
3246
3601
  readonly 'question-hint-cancel': {
3247
3602
  readonly zh: "Ctrl+C 取消整批";
3248
3603
  readonly en: "Ctrl+C cancel batch";
@@ -3387,6 +3742,14 @@ declare const dict: {
3387
3742
  readonly zh: "子代理:";
3388
3743
  readonly en: "Subagent: ";
3389
3744
  };
3745
+ readonly 'subagent-mode-continuable': {
3746
+ readonly zh: "♻ 可继续";
3747
+ readonly en: "♻ continuable";
3748
+ };
3749
+ readonly 'subagent-mode-one-shot': {
3750
+ readonly zh: "◇ 一次性";
3751
+ readonly en: "◇ one-shot";
3752
+ };
3390
3753
  readonly 'subagent-tab-summary': {
3391
3754
  readonly zh: "摘要";
3392
3755
  readonly en: "Summary";
@@ -3395,6 +3758,26 @@ declare const dict: {
3395
3758
  readonly zh: "暂无摘要";
3396
3759
  readonly en: "No summary yet";
3397
3760
  };
3761
+ readonly 'subagent-thinking-fold': {
3762
+ readonly zh: "思考 · {{count}} 段 · {{chars}} 字";
3763
+ readonly en: "Thinking · {{count}} paras · {{chars}} chars";
3764
+ };
3765
+ readonly 'subagent-thinking-expand': {
3766
+ readonly zh: "Enter 展开";
3767
+ readonly en: "Enter expand";
3768
+ };
3769
+ readonly 'subagent-thinking-collapse': {
3770
+ readonly zh: "Enter 收起";
3771
+ readonly en: "Enter collapse";
3772
+ };
3773
+ readonly 'subagent-conclusion': {
3774
+ readonly zh: "结论";
3775
+ readonly en: "Conclusion";
3776
+ };
3777
+ readonly 'subagent-hint-fold': {
3778
+ readonly zh: "Enter 思考折叠";
3779
+ readonly en: "Enter thinking";
3780
+ };
3398
3781
  readonly 'subagent-no-tools': {
3399
3782
  readonly zh: "暂无工具调用";
3400
3783
  readonly en: "No tool calls";
@@ -3464,8 +3847,12 @@ declare const dict: {
3464
3847
  readonly en: "Commands the agent runs in the background appear here";
3465
3848
  };
3466
3849
  readonly 'jobs-panel-hint': {
3467
- readonly zh: "↑/↓ 选择(聚焦行显示详情)· k 停止选中任务 · Esc 关闭";
3468
- readonly en: "↑/↓ select (focused row shows details) · k kill focused job · Esc close";
3850
+ readonly zh: "↑/↓ 或点击选择 · k 两次停止选中任务 · Esc 关闭";
3851
+ readonly en: "↑/↓ or click to select · press k twice to stop the focused job · Esc close";
3852
+ };
3853
+ readonly 'jobs-kill-armed': {
3854
+ readonly zh: "再按 k 确认停止";
3855
+ readonly en: "press k again to confirm";
3469
3856
  };
3470
3857
  readonly 'jobs-panel-started': {
3471
3858
  readonly zh: "开始";
@@ -3479,6 +3866,10 @@ declare const dict: {
3479
3866
  readonly zh: "命令";
3480
3867
  readonly en: "command";
3481
3868
  };
3869
+ readonly 'jobs-panel-output': {
3870
+ readonly zh: "输出";
3871
+ readonly en: "output";
3872
+ };
3482
3873
  readonly 'jobs-panel-output-at': {
3483
3874
  readonly zh: "输出更新于";
3484
3875
  readonly en: "output updated";
@@ -3487,6 +3878,18 @@ declare const dict: {
3487
3878
  readonly zh: "(暂无镜像输出——agent 读取后显示)";
3488
3879
  readonly en: "(no mirrored output yet — appears when the agent reads it)";
3489
3880
  };
3881
+ readonly 'jobs-output-gap': {
3882
+ readonly zh: "……较早的输出已丢弃……";
3883
+ readonly en: "……earlier output discarded……";
3884
+ };
3885
+ readonly 'jobs-output-dropped': {
3886
+ readonly zh: "部分输出未保留";
3887
+ readonly en: "some output not retained";
3888
+ };
3889
+ readonly 'jobs-output-spill': {
3890
+ readonly zh: "完整输出落盘:{{path}}";
3891
+ readonly en: "full output retained at: {{path}}";
3892
+ };
3490
3893
  readonly 'jobs-toast-completed': {
3491
3894
  readonly zh: "后台任务完成:{{label}}({{id}} · 用时 {{duration}})";
3492
3895
  readonly en: "Background job completed: {{label}} ({{id}} · {{duration}})";
@@ -3520,8 +3923,8 @@ declare const dict: {
3520
3923
  readonly en: "Clear the feedback to approve (or press Enter on the input row to send it)";
3521
3924
  };
3522
3925
  readonly 'plan-review-hint': {
3523
- readonly zh: "↑/↓ 选择 · 1/2 快选 · 打字输入反馈 · Ctrl+V 粘贴 · Enter 提交 · Esc 打断评审";
3524
- readonly en: "↑/↓ select · 1/2 quick-pick · type feedback · Ctrl+V paste · Enter submit · Esc dismiss";
3926
+ readonly zh: "↑/↓ 选择 · 1/2 快选 · 打字输入反馈 · {{paste}} 粘贴 · Enter 提交 · Esc 打断评审";
3927
+ readonly en: "↑/↓ select · 1/2 quick-pick · type feedback · {{paste}} paste · Enter submit · Esc dismiss";
3525
3928
  };
3526
3929
  readonly 'provider-unavailable': {
3527
3930
  readonly zh: "/provider 需要经 dsh profile 启动(settings / credentials / llm-pi-ai 服务未挂载)";
@@ -3647,6 +4050,22 @@ declare const dict: {
3647
4050
  readonly zh: "取消";
3648
4051
  readonly en: "Cancel";
3649
4052
  };
4053
+ readonly 'provider-line-action-added': {
4054
+ readonly zh: "✓ {{route}} · 已添加";
4055
+ readonly en: "✓ {{route}} · added";
4056
+ };
4057
+ readonly 'provider-line-action-updated': {
4058
+ readonly zh: "✓ {{route}} · 配置已更新";
4059
+ readonly en: "✓ {{route}} · configuration updated";
4060
+ };
4061
+ readonly 'provider-line-action-updated-models': {
4062
+ readonly zh: "✓ {{route}} · 模型列表已更新";
4063
+ readonly en: "✓ {{route}} · model list updated";
4064
+ };
4065
+ readonly 'provider-line-action-deleted': {
4066
+ readonly zh: "✓ {{route}} · 已删除";
4067
+ readonly en: "✓ {{route}} · deleted";
4068
+ };
3650
4069
  readonly 'provider-line-route': {
3651
4070
  readonly zh: "路由:{{route}}";
3652
4071
  readonly en: "Route: {{route}}";
@@ -3655,17 +4074,17 @@ declare const dict: {
3655
4074
  readonly zh: "密钥引用:{{ref}}(已写入 ~/.dsh/.credentials.yaml)";
3656
4075
  readonly en: "Key ref: {{ref}} (stored in ~/.dsh/.credentials.yaml)";
3657
4076
  };
4077
+ readonly 'provider-line-keyref-preview': {
4078
+ readonly zh: "密钥引用:{{ref}}(确认后写入 ~/.dsh/.credentials.yaml)";
4079
+ readonly en: "Key ref: {{ref}} (will be stored in ~/.dsh/.credentials.yaml after confirmation)";
4080
+ };
3658
4081
  readonly 'provider-line-keyref-env': {
3659
4082
  readonly zh: "密钥引用:{{ref}}(进程环境已提供同名变量,跳过写入)";
3660
4083
  readonly en: "Key ref: {{ref}} (already in the process environment, write skipped)";
3661
4084
  };
3662
- readonly 'provider-line-baseurl': {
3663
- readonly zh: "baseURL:{{url}}";
3664
- readonly en: "baseURL: {{url}}";
3665
- };
3666
- readonly 'provider-line-protocol': {
3667
- readonly zh: "协议:{{api}}";
3668
- readonly en: "Protocol: {{api}}";
4085
+ readonly 'provider-line-endpoint': {
4086
+ readonly zh: "端点:{{url}}";
4087
+ readonly en: "Endpoint: {{url}}";
3669
4088
  };
3670
4089
  readonly 'provider-line-models': {
3671
4090
  readonly zh: "模型:{{models}}";
@@ -3675,6 +4094,42 @@ declare const dict: {
3675
4094
  readonly zh: "模型:整个 catalog(未收窄)";
3676
4095
  readonly en: "Models: the whole catalog (not narrowed)";
3677
4096
  };
4097
+ readonly 'provider-models-delta-added': {
4098
+ readonly zh: "新增 {{n}}";
4099
+ readonly en: "+{{n}}";
4100
+ };
4101
+ readonly 'provider-models-delta-removed': {
4102
+ readonly zh: "移除 {{n}}";
4103
+ readonly en: "-{{n}}";
4104
+ };
4105
+ readonly 'provider-models-delta-wrap': {
4106
+ readonly zh: "({{parts}})";
4107
+ readonly en: " ({{parts}})";
4108
+ };
4109
+ readonly 'provider-row-model-new': {
4110
+ readonly zh: "线上新增";
4111
+ readonly en: "new on endpoint";
4112
+ };
4113
+ readonly 'provider-live-fetch-failed': {
4114
+ readonly zh: "端点模型列表拉取失败,仅显示内置目录";
4115
+ readonly en: "Live model fetch failed — showing the installed catalog only";
4116
+ };
4117
+ readonly 'provider-catalog-fetch-failed': {
4118
+ readonly zh: "内置目录读取失败,线上模型容量不会写入 catalog 配置";
4119
+ readonly en: "Installed catalog lookup failed — endpoint capacities will not be written into the catalog profile";
4120
+ };
4121
+ readonly 'provider-live-fetch-unavailable': {
4122
+ readonly zh: "该路由无法安全实时拉取模型,已回退到内置目录";
4123
+ readonly en: "Live model fetch is unavailable for this route — showing the installed catalog only";
4124
+ };
4125
+ readonly 'provider-catalog-models-only': {
4126
+ readonly zh: "该 catalog 路由的协议无法确定,线上新增模型请先改用自定义端点并指定协议";
4127
+ readonly en: "This catalog route has no single known protocol; use a custom endpoint with an explicit protocol for new models";
4128
+ };
4129
+ readonly 'provider-catalog-snapshot-note': {
4130
+ readonly zh: "下方 {{n}} 项来自内置目录快照;该路由未设置 baseURL,无法实时拉取端点模型";
4131
+ readonly en: "The {{n}} items below come from the installed catalog snapshot; this route sets no baseURL, so its endpoint cannot be probed live";
4132
+ };
3678
4133
  readonly 'provider-rollback-ok': {
3679
4134
  readonly zh: "已回滚刚写入的密钥";
3680
4135
  readonly en: "Rolled back the just-written key";
@@ -3712,21 +4167,25 @@ declare const dict: {
3712
4167
  readonly en: "Keep the current model";
3713
4168
  };
3714
4169
  readonly 'provider-opt-oauth': {
3715
- readonly zh: "订阅账号登录(OAuth)";
3716
- readonly en: "Subscription sign-in (OAuth)";
4170
+ readonly zh: "账号登录(OAuth)";
4171
+ readonly en: "Account sign-in (OAuth)";
3717
4172
  };
3718
4173
  readonly 'provider-opt-oauth-desc': {
3719
- readonly zh: "用 ChatGPT / Claude / Grok 等官方订阅账号登录,无需 API key";
3720
- readonly en: "Sign in with an official subscription (ChatGPT / Claude / Grok) — no API key";
4174
+ readonly zh: "使用当前宿主支持的账号登录,无需 API key";
4175
+ readonly en: "Sign in with an account supported by this host — no API key";
3721
4176
  };
3722
4177
  readonly 'provider-q-oauth': {
3723
- readonly zh: "登录哪个订阅账号?";
3724
- readonly en: "Sign in to which subscription?";
4178
+ readonly zh: "登录哪个账号?";
4179
+ readonly en: "Sign in to which account?";
3725
4180
  };
3726
4181
  readonly 'provider-oauth-state-in': {
3727
4182
  readonly zh: "已登录 · 令牌到期 {{time}}";
3728
4183
  readonly en: "Signed in · token expires {{time}}";
3729
4184
  };
4185
+ readonly 'provider-oauth-state-in-no-expiry': {
4186
+ readonly zh: "已登录";
4187
+ readonly en: "Signed in";
4188
+ };
3730
4189
  readonly 'provider-oauth-state-expired': {
3731
4190
  readonly zh: "已登录但令牌已过期,重新登录即可恢复";
3732
4191
  readonly en: "Signed in but the token expired — sign in again to restore";
@@ -3752,8 +4211,8 @@ declare const dict: {
3752
4211
  readonly en: "Remove the locally stored OAuth credential";
3753
4212
  };
3754
4213
  readonly 'provider-oauth-none': {
3755
- readonly zh: "没有可 OAuth 登录的 provider(检查 dsh-auth 插件是否挂载)";
3756
- readonly en: "No OAuth-capable providers (check whether the dsh-auth plugin is mounted)";
4214
+ readonly zh: "没有可 OAuth 登录的 provider(检查 OAuth 模块是否挂载)";
4215
+ readonly en: "No OAuth-capable providers (check whether the OAuth module is mounted)";
3757
4216
  };
3758
4217
  readonly 'provider-oauth-login-ok': {
3759
4218
  readonly zh: "{{provider}} 登录成功";
@@ -3783,6 +4242,82 @@ declare const dict: {
3783
4242
  readonly zh: "已登出,本地 OAuth 凭据已删除";
3784
4243
  readonly en: "Signed out — the stored OAuth credential was removed";
3785
4244
  };
4245
+ readonly 'oauth-event-auth-url': {
4246
+ readonly zh: "打开以下 URL 完成授权(本地回调会自动结束登录):\n{{url}}";
4247
+ readonly en: "Open this URL to authorize (a local callback completes sign-in):\n{{url}}";
4248
+ };
4249
+ readonly 'oauth-event-device-code': {
4250
+ readonly zh: "访问 {{uri}} 并输入以下代码:\n {{code}}";
4251
+ readonly en: "Visit {{uri}} and enter this code:\n {{code}}";
4252
+ };
4253
+ readonly 'oauth-copy-link': {
4254
+ readonly zh: "复制授权链接";
4255
+ readonly en: "Copy authorization link";
4256
+ };
4257
+ readonly 'oauth-copy-code': {
4258
+ readonly zh: "复制代码";
4259
+ readonly en: "Copy code";
4260
+ };
4261
+ readonly 'oauth-open-again': {
4262
+ readonly zh: "重新打开浏览器";
4263
+ readonly en: "Open browser again";
4264
+ };
4265
+ readonly 'oauth-cancel': {
4266
+ readonly zh: "取消登录";
4267
+ readonly en: "Cancel sign-in";
4268
+ };
4269
+ readonly 'oauth-auth-url-opened': {
4270
+ readonly zh: "授权页面已在浏览器打开,请在浏览器中完成登录。";
4271
+ readonly en: "Authorization page opened in your browser — complete the sign-in there.";
4272
+ };
4273
+ readonly 'oauth-auth-url-opened-fallback': {
4274
+ readonly zh: "若页面未打开,请复制下方链接手动访问。";
4275
+ readonly en: "If it did not open, copy the link below and open it by hand.";
4276
+ };
4277
+ readonly 'oauth-auth-url-manual': {
4278
+ readonly zh: "打开以下 URL 完成授权。";
4279
+ readonly en: "Open this URL to authorize.";
4280
+ };
4281
+ readonly 'oauth-auth-url-copy-hint': {
4282
+ readonly zh: "链接较长,换行后不宜手选;可使用复制操作。";
4283
+ readonly en: "Copy the link below (it is too long to select reliably once wrapped):";
4284
+ };
4285
+ readonly 'oauth-device-opened': {
4286
+ readonly zh: "请在已打开的浏览器页面({{uri}})输入以下代码:";
4287
+ readonly en: "Enter this code on the page opened in your browser ({{uri}}):";
4288
+ };
4289
+ readonly 'oauth-device-manual': {
4290
+ readonly zh: "访问 {{uri}} 并输入以下代码:";
4291
+ readonly en: "Visit {{uri}} and enter this code:";
4292
+ };
4293
+ readonly 'oauth-secret-unmasked': {
4294
+ readonly zh: "此输入界面不会隐藏内容,请留意屏幕可见范围";
4295
+ readonly en: "Input is not masked on this surface — mind your screen";
4296
+ };
4297
+ readonly 'oauth-copied': {
4298
+ readonly zh: "已复制,可粘贴到需要的位置。";
4299
+ readonly en: "Copied — paste it where you need it.";
4300
+ };
4301
+ readonly 'oauth-copy-failed': {
4302
+ readonly zh: "复制失败;请手动选取文字。";
4303
+ readonly en: "Copy failed — no clipboard helper answered; select the text manually.";
4304
+ };
4305
+ readonly 'oauth-reopened': {
4306
+ readonly zh: "已在浏览器重新打开。";
4307
+ readonly en: "Reopened in your browser.";
4308
+ };
4309
+ readonly 'oauth-open-failed': {
4310
+ readonly zh: "无法打开浏览器,请改为复制链接。";
4311
+ readonly en: "Could not open the browser; copy the link instead.";
4312
+ };
4313
+ readonly 'oauth-waiting': {
4314
+ readonly zh: "等待授权…";
4315
+ readonly en: "Waiting for authorization…";
4316
+ };
4317
+ readonly 'oauth-choose-action': {
4318
+ readonly zh: "请选择一个操作。";
4319
+ readonly en: "Choose an action.";
4320
+ };
3786
4321
  readonly 'provider-q-action': {
3787
4322
  readonly zh: "要做什么?";
3788
4323
  readonly en: "What do you want to do?";
@@ -4028,6 +4563,9 @@ declare const dict: {
4028
4563
  readonly 'cmd-desc-doctor': {
4029
4564
  readonly zh: "运行环境检查";
4030
4565
  };
4566
+ readonly 'cmd-desc-migrate': {
4567
+ readonly zh: "从其他编程代理导入对话(claude-code/codex/omp/zcode/grok-build)";
4568
+ };
4031
4569
  readonly 'cmd-desc-init': {
4032
4570
  readonly zh: "在工作目录创建 AGENTS.md";
4033
4571
  };