@deepseek-harness-tui/dsh-tui 0.11.0 → 0.11.2

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 (484) hide show
  1. package/README.md +55 -20
  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 +63 -3
  6. package/cordis.patch.yml +43 -20
  7. package/cordis.yml +6 -4
  8. package/lib/settings.json +1272 -0
  9. package/lib/types/activityPrefs.d.ts +24 -0
  10. package/lib/types/activityPrefs.d.ts.map +1 -1
  11. package/lib/types/activityPrefs.js +50 -1
  12. package/lib/types/adapter/channel/state.d.ts.map +1 -1
  13. package/lib/types/adapter/channel/state.js +3 -1
  14. package/lib/types/adapter/channel/ui-policy.d.ts +9 -2
  15. package/lib/types/adapter/channel/ui-policy.d.ts.map +1 -1
  16. package/lib/types/adapter/channel/ui-policy.js +14 -1
  17. package/lib/types/adapter/kernel/replay.d.ts.map +1 -1
  18. package/lib/types/adapter/kernel/replay.js +2 -0
  19. package/lib/types/adapter/ports/channel-display.d.ts +12 -0
  20. package/lib/types/adapter/ports/channel-display.d.ts.map +1 -1
  21. package/lib/types/adapter/ports/channel-session.d.ts +38 -0
  22. package/lib/types/adapter/ports/channel-session.d.ts.map +1 -1
  23. package/lib/types/adapter/ports/channel-settings.d.ts +12 -0
  24. package/lib/types/adapter/ports/channel-settings.d.ts.map +1 -1
  25. package/lib/types/adapter/ports/channel-ui.d.ts +53 -7
  26. package/lib/types/adapter/ports/channel-ui.d.ts.map +1 -1
  27. package/lib/types/adapter/ports/channel-view.d.ts +43 -12
  28. package/lib/types/adapter/ports/channel-view.d.ts.map +1 -1
  29. package/lib/types/adapter/ports/channel.d.ts +4 -1
  30. package/lib/types/adapter/ports/channel.d.ts.map +1 -1
  31. package/lib/types/commands.d.ts.map +1 -1
  32. package/lib/types/commands.js +2 -0
  33. package/lib/types/components/ActivityLine.d.ts +7 -2
  34. package/lib/types/components/ActivityLine.d.ts.map +1 -1
  35. package/lib/types/components/ActivityLine.js +0 -8
  36. package/lib/types/components/BalanceReportRow.d.ts +10 -2
  37. package/lib/types/components/BalanceReportRow.d.ts.map +1 -1
  38. package/lib/types/components/BalanceReportRow.js +18 -4
  39. package/lib/types/components/CompactionStatusRow.d.ts +24 -0
  40. package/lib/types/components/CompactionStatusRow.d.ts.map +1 -0
  41. package/lib/types/components/CompactionStatusRow.js +72 -0
  42. package/lib/types/components/GoalTodoPanel.js +2 -2
  43. package/lib/types/components/HelpMenu.d.ts +2 -2
  44. package/lib/types/components/HelpMenu.d.ts.map +1 -1
  45. package/lib/types/components/HelpMenu.js +5 -4
  46. package/lib/types/components/InlineMathParagraph.d.ts +22 -0
  47. package/lib/types/components/InlineMathParagraph.d.ts.map +1 -0
  48. package/lib/types/components/InlineMathParagraph.js +178 -0
  49. package/lib/types/components/LogoV2.d.ts +41 -3
  50. package/lib/types/components/LogoV2.d.ts.map +1 -1
  51. package/lib/types/components/LogoV2.js +148 -24
  52. package/lib/types/components/Markdown.d.ts +10 -3
  53. package/lib/types/components/Markdown.d.ts.map +1 -1
  54. package/lib/types/components/Markdown.js +47 -14
  55. package/lib/types/components/MathBlock.d.ts +13 -0
  56. package/lib/types/components/MathBlock.d.ts.map +1 -0
  57. package/lib/types/components/MathBlock.js +136 -0
  58. package/lib/types/components/MessageList.d.ts +10 -1
  59. package/lib/types/components/MessageList.d.ts.map +1 -1
  60. package/lib/types/components/MessageList.js +15 -5
  61. package/lib/types/components/MigratePicker.d.ts +30 -0
  62. package/lib/types/components/MigratePicker.d.ts.map +1 -0
  63. package/lib/types/components/MigratePicker.js +38 -0
  64. package/lib/types/components/PromptInput.d.ts +17 -0
  65. package/lib/types/components/PromptInput.d.ts.map +1 -1
  66. package/lib/types/components/PromptInput.js +96 -9
  67. package/lib/types/components/SplitDiffView.d.ts.map +1 -1
  68. package/lib/types/components/SplitDiffView.js +3 -1
  69. package/lib/types/components/StarPrompt.d.ts +53 -0
  70. package/lib/types/components/StarPrompt.d.ts.map +1 -0
  71. package/lib/types/components/StarPrompt.js +281 -0
  72. package/lib/types/components/StreamingMarkdown.d.ts.map +1 -1
  73. package/lib/types/components/StreamingMarkdown.js +20 -3
  74. package/lib/types/components/SubagentCard.d.ts.map +1 -1
  75. package/lib/types/components/SubagentCard.js +12 -6
  76. package/lib/types/components/SubagentDetailScene.d.ts.map +1 -1
  77. package/lib/types/components/SubagentDetailScene.js +8 -3
  78. package/lib/types/components/TimelineRail.d.ts.map +1 -1
  79. package/lib/types/components/TimelineRail.js +9 -1
  80. package/lib/types/components/Whale.d.ts +17 -8
  81. package/lib/types/components/Whale.d.ts.map +1 -1
  82. package/lib/types/components/Whale.js +25 -15
  83. package/lib/types/components/WhaleGirl.d.ts +29 -0
  84. package/lib/types/components/WhaleGirl.d.ts.map +1 -0
  85. package/lib/types/components/WhaleGirl.js +32 -0
  86. package/lib/types/components/WorkingSpinner.d.ts +4 -1
  87. package/lib/types/components/WorkingSpinner.d.ts.map +1 -1
  88. package/lib/types/components/WorkingSpinner.js +2 -2
  89. package/lib/types/components/bigfont.d.ts +47 -18
  90. package/lib/types/components/bigfont.d.ts.map +1 -1
  91. package/lib/types/components/bigfont.js +55 -40
  92. package/lib/types/components/design-system/HintLine.d.ts +1 -2
  93. package/lib/types/components/design-system/HintLine.d.ts.map +1 -1
  94. package/lib/types/components/design-system/HintLine.js +1 -2
  95. package/lib/types/components/design-system/ThemeProvider.d.ts +6 -0
  96. package/lib/types/components/design-system/ThemeProvider.d.ts.map +1 -1
  97. package/lib/types/components/design-system/ThemeProvider.js +40 -1
  98. package/lib/types/components/maidPortrait.d.ts +44 -0
  99. package/lib/types/components/maidPortrait.d.ts.map +1 -0
  100. package/lib/types/components/maidPortrait.js +178 -0
  101. package/lib/types/components/mathPreview.d.ts +25 -0
  102. package/lib/types/components/mathPreview.d.ts.map +1 -0
  103. package/lib/types/components/mathPreview.js +48 -0
  104. package/lib/types/components/messages/AssistantThinkingMessage.d.ts +2 -1
  105. package/lib/types/components/messages/AssistantThinkingMessage.d.ts.map +1 -1
  106. package/lib/types/components/messages/AssistantThinkingMessage.js +4 -2
  107. package/lib/types/components/messages/AssistantToolUseMessage.d.ts +2 -2
  108. package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -1
  109. package/lib/types/components/messages/AssistantToolUseMessage.js +31 -26
  110. package/lib/types/components/messages/TranscriptImages.d.ts.map +1 -1
  111. package/lib/types/components/messages/TranscriptImages.js +11 -1
  112. package/lib/types/components/questions/AskUserQuestionPanel.d.ts +14 -2
  113. package/lib/types/components/questions/AskUserQuestionPanel.d.ts.map +1 -1
  114. package/lib/types/components/questions/AskUserQuestionPanel.js +80 -38
  115. package/lib/types/components/questions/PlanReviewPanel.d.ts.map +1 -1
  116. package/lib/types/components/questions/PlanReviewPanel.js +3 -3
  117. package/lib/types/components/sessions/ForeignSessionRow.d.ts +34 -0
  118. package/lib/types/components/sessions/ForeignSessionRow.d.ts.map +1 -0
  119. package/lib/types/components/sessions/ForeignSessionRow.js +43 -0
  120. package/lib/types/components/sessions/SourceTabs.d.ts +52 -0
  121. package/lib/types/components/sessions/SourceTabs.d.ts.map +1 -0
  122. package/lib/types/components/sessions/SourceTabs.js +70 -0
  123. package/lib/types/components/splashEggs.d.ts +56 -0
  124. package/lib/types/components/splashEggs.d.ts.map +1 -0
  125. package/lib/types/components/splashEggs.js +67 -0
  126. package/lib/types/components/splashFonts.d.ts +119 -0
  127. package/lib/types/components/splashFonts.d.ts.map +1 -0
  128. package/lib/types/components/splashFonts.js +267 -0
  129. package/lib/types/components/splashLayout.d.ts +41 -0
  130. package/lib/types/components/splashLayout.d.ts.map +1 -0
  131. package/lib/types/components/splashLayout.js +40 -0
  132. package/lib/types/components/whaleGirlSprite.d.ts +17 -0
  133. package/lib/types/components/whaleGirlSprite.d.ts.map +1 -0
  134. package/lib/types/components/whaleGirlSprite.js +47 -0
  135. package/lib/types/deepseekPricing.d.ts +74 -0
  136. package/lib/types/deepseekPricing.d.ts.map +1 -1
  137. package/lib/types/deepseekPricing.js +110 -11
  138. package/lib/types/dsh-adapter/activity-store.d.ts +221 -0
  139. package/lib/types/dsh-adapter/activity-store.d.ts.map +1 -0
  140. package/lib/types/dsh-adapter/activity-store.js +359 -0
  141. package/lib/types/dsh-adapter/channel/action-readiness.d.ts +1 -1
  142. package/lib/types/dsh-adapter/channel/action-readiness.d.ts.map +1 -1
  143. package/lib/types/dsh-adapter/channel/action-readiness.js +6 -1
  144. package/lib/types/dsh-adapter/channel/background-action.d.ts +2 -1
  145. package/lib/types/dsh-adapter/channel/background-action.d.ts.map +1 -1
  146. package/lib/types/dsh-adapter/channel/background-action.js +2 -0
  147. package/lib/types/dsh-adapter/channel/binding-events.d.ts +15 -14
  148. package/lib/types/dsh-adapter/channel/binding-events.d.ts.map +1 -1
  149. package/lib/types/dsh-adapter/channel/binding-events.js +70 -21
  150. package/lib/types/dsh-adapter/channel/compaction.d.ts +2 -2
  151. package/lib/types/dsh-adapter/channel/compaction.d.ts.map +1 -1
  152. package/lib/types/dsh-adapter/channel/compaction.js +35 -4
  153. package/lib/types/dsh-adapter/channel/local-actions.d.ts.map +1 -1
  154. package/lib/types/dsh-adapter/channel/local-actions.js +6 -1
  155. package/lib/types/dsh-adapter/channel/model-switch.d.ts +1 -2
  156. package/lib/types/dsh-adapter/channel/model-switch.d.ts.map +1 -1
  157. package/lib/types/dsh-adapter/channel/model-switch.js +6 -2
  158. package/lib/types/dsh-adapter/channel/paths.d.ts.map +1 -1
  159. package/lib/types/dsh-adapter/channel/paths.js +7 -1
  160. package/lib/types/dsh-adapter/channel/preferences.d.ts +1 -1
  161. package/lib/types/dsh-adapter/channel/preferences.d.ts.map +1 -1
  162. package/lib/types/dsh-adapter/channel/preferences.js +16 -0
  163. package/lib/types/dsh-adapter/channel/projection.d.ts +1 -2
  164. package/lib/types/dsh-adapter/channel/projection.d.ts.map +1 -1
  165. package/lib/types/dsh-adapter/channel/projection.js +127 -17
  166. package/lib/types/dsh-adapter/channel/question-record.d.ts +76 -0
  167. package/lib/types/dsh-adapter/channel/question-record.d.ts.map +1 -0
  168. package/lib/types/dsh-adapter/channel/question-record.js +107 -0
  169. package/lib/types/dsh-adapter/channel/session-adoption.d.ts +1 -1
  170. package/lib/types/dsh-adapter/channel/session-adoption.d.ts.map +1 -1
  171. package/lib/types/dsh-adapter/channel/session-adoption.js +1 -0
  172. package/lib/types/dsh-adapter/channel/session-lineage.d.ts +42 -0
  173. package/lib/types/dsh-adapter/channel/session-lineage.d.ts.map +1 -0
  174. package/lib/types/dsh-adapter/channel/session-lineage.js +51 -0
  175. package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts +3 -1
  176. package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts.map +1 -1
  177. package/lib/types/dsh-adapter/channel/session-live-adoption.js +10 -3
  178. package/lib/types/dsh-adapter/channel/session-metadata.d.ts +2 -1
  179. package/lib/types/dsh-adapter/channel/session-metadata.d.ts.map +1 -1
  180. package/lib/types/dsh-adapter/channel/session-metadata.js +43 -9
  181. package/lib/types/dsh-adapter/channel/session-reset.d.ts +1 -1
  182. package/lib/types/dsh-adapter/channel/session-reset.d.ts.map +1 -1
  183. package/lib/types/dsh-adapter/channel/session-reset.js +7 -1
  184. package/lib/types/dsh-adapter/channel/session-resume.d.ts +2 -1
  185. package/lib/types/dsh-adapter/channel/session-resume.d.ts.map +1 -1
  186. package/lib/types/dsh-adapter/channel/session-resume.js +5 -2
  187. package/lib/types/dsh-adapter/channel/settings-host.d.ts.map +1 -1
  188. package/lib/types/dsh-adapter/channel/settings-host.js +8 -0
  189. package/lib/types/dsh-adapter/channel/state.d.ts +19 -1
  190. package/lib/types/dsh-adapter/channel/state.d.ts.map +1 -1
  191. package/lib/types/dsh-adapter/channel/state.js +8 -3
  192. package/lib/types/dsh-adapter/channel/subagent-projection.d.ts +32 -17
  193. package/lib/types/dsh-adapter/channel/subagent-projection.d.ts.map +1 -1
  194. package/lib/types/dsh-adapter/channel/subagent-projection.js +309 -8
  195. package/lib/types/dsh-adapter/channel/types.d.ts +1 -1
  196. package/lib/types/dsh-adapter/channel/types.d.ts.map +1 -1
  197. package/lib/types/dsh-adapter/channel.d.ts +1 -1
  198. package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
  199. package/lib/types/dsh-adapter/channel.js +34 -18
  200. package/lib/types/dsh-adapter/compat/index.d.ts +1 -1
  201. package/lib/types/dsh-adapter/compat/index.d.ts.map +1 -1
  202. package/lib/types/dsh-adapter/compat/index.js +1 -1
  203. package/lib/types/dsh-adapter/compat/messages.d.ts +6 -0
  204. package/lib/types/dsh-adapter/compat/messages.d.ts.map +1 -1
  205. package/lib/types/dsh-adapter/compat/messages.js +9 -0
  206. package/lib/types/dsh-adapter/compat/sessionLog.d.ts +18 -0
  207. package/lib/types/dsh-adapter/compat/sessionLog.d.ts.map +1 -1
  208. package/lib/types/dsh-adapter/compat/sessionLog.js +18 -3
  209. package/lib/types/dsh-adapter/compat/settings.d.ts +2 -0
  210. package/lib/types/dsh-adapter/compat/settings.d.ts.map +1 -1
  211. package/lib/types/dsh-adapter/compat/settings.js +14 -0
  212. package/lib/types/dsh-adapter/contract.d.ts +5 -4
  213. package/lib/types/dsh-adapter/contract.d.ts.map +1 -1
  214. package/lib/types/dsh-adapter/contract.js +9 -5
  215. package/lib/types/dsh-adapter/index.d.ts +36 -1
  216. package/lib/types/dsh-adapter/index.d.ts.map +1 -1
  217. package/lib/types/dsh-adapter/index.js +22 -6
  218. package/lib/types/dsh-adapter/migrate/adapters/claude-code.d.ts +3 -0
  219. package/lib/types/dsh-adapter/migrate/adapters/claude-code.d.ts.map +1 -0
  220. package/lib/types/dsh-adapter/migrate/adapters/claude-code.js +131 -0
  221. package/lib/types/dsh-adapter/migrate/adapters/claude-code.parse.d.ts +17 -0
  222. package/lib/types/dsh-adapter/migrate/adapters/claude-code.parse.d.ts.map +1 -0
  223. package/lib/types/dsh-adapter/migrate/adapters/claude-code.parse.js +329 -0
  224. package/lib/types/dsh-adapter/migrate/adapters/codex.d.ts +3 -0
  225. package/lib/types/dsh-adapter/migrate/adapters/codex.d.ts.map +1 -0
  226. package/lib/types/dsh-adapter/migrate/adapters/codex.js +102 -0
  227. package/lib/types/dsh-adapter/migrate/adapters/codex.parse.d.ts +16 -0
  228. package/lib/types/dsh-adapter/migrate/adapters/codex.parse.d.ts.map +1 -0
  229. package/lib/types/dsh-adapter/migrate/adapters/codex.parse.js +289 -0
  230. package/lib/types/dsh-adapter/migrate/adapters/grok-build.d.ts +3 -0
  231. package/lib/types/dsh-adapter/migrate/adapters/grok-build.d.ts.map +1 -0
  232. package/lib/types/dsh-adapter/migrate/adapters/grok-build.js +117 -0
  233. package/lib/types/dsh-adapter/migrate/adapters/grok-build.parse.d.ts +13 -0
  234. package/lib/types/dsh-adapter/migrate/adapters/grok-build.parse.d.ts.map +1 -0
  235. package/lib/types/dsh-adapter/migrate/adapters/grok-build.parse.js +178 -0
  236. package/lib/types/dsh-adapter/migrate/adapters/omp.d.ts +3 -0
  237. package/lib/types/dsh-adapter/migrate/adapters/omp.d.ts.map +1 -0
  238. package/lib/types/dsh-adapter/migrate/adapters/omp.js +133 -0
  239. package/lib/types/dsh-adapter/migrate/adapters/scan-fs.d.ts +60 -0
  240. package/lib/types/dsh-adapter/migrate/adapters/scan-fs.d.ts.map +1 -0
  241. package/lib/types/dsh-adapter/migrate/adapters/scan-fs.js +178 -0
  242. package/lib/types/dsh-adapter/migrate/adapters/scan.d.ts +8 -0
  243. package/lib/types/dsh-adapter/migrate/adapters/scan.d.ts.map +1 -0
  244. package/lib/types/dsh-adapter/migrate/adapters/scan.js +40 -0
  245. package/lib/types/dsh-adapter/migrate/adapters/zcode.d.ts +3 -0
  246. package/lib/types/dsh-adapter/migrate/adapters/zcode.d.ts.map +1 -0
  247. package/lib/types/dsh-adapter/migrate/adapters/zcode.js +93 -0
  248. package/lib/types/dsh-adapter/migrate/adapters/zcode.parse.d.ts +9 -0
  249. package/lib/types/dsh-adapter/migrate/adapters/zcode.parse.d.ts.map +1 -0
  250. package/lib/types/dsh-adapter/migrate/adapters/zcode.parse.js +89 -0
  251. package/lib/types/dsh-adapter/migrate/bin-path.d.ts +6 -0
  252. package/lib/types/dsh-adapter/migrate/bin-path.d.ts.map +1 -0
  253. package/lib/types/dsh-adapter/migrate/bin-path.js +30 -0
  254. package/lib/types/dsh-adapter/migrate/browse.d.ts +42 -0
  255. package/lib/types/dsh-adapter/migrate/browse.d.ts.map +1 -0
  256. package/lib/types/dsh-adapter/migrate/browse.js +90 -0
  257. package/lib/types/dsh-adapter/migrate/cli.d.ts +9 -0
  258. package/lib/types/dsh-adapter/migrate/cli.d.ts.map +1 -0
  259. package/lib/types/dsh-adapter/migrate/cli.js +106 -0
  260. package/lib/types/dsh-adapter/migrate/import-one.d.ts +89 -0
  261. package/lib/types/dsh-adapter/migrate/import-one.d.ts.map +1 -0
  262. package/lib/types/dsh-adapter/migrate/import-one.js +133 -0
  263. package/lib/types/dsh-adapter/migrate/index.d.ts +35 -0
  264. package/lib/types/dsh-adapter/migrate/index.d.ts.map +1 -0
  265. package/lib/types/dsh-adapter/migrate/index.js +107 -0
  266. package/lib/types/dsh-adapter/migrate/parse/injection.d.ts +40 -0
  267. package/lib/types/dsh-adapter/migrate/parse/injection.d.ts.map +1 -0
  268. package/lib/types/dsh-adapter/migrate/parse/injection.js +127 -0
  269. package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts +28 -0
  270. package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts.map +1 -0
  271. package/lib/types/dsh-adapter/migrate/parse/jsonl.js +40 -0
  272. package/lib/types/dsh-adapter/migrate/parse/role-turns.d.ts +28 -0
  273. package/lib/types/dsh-adapter/migrate/parse/role-turns.d.ts.map +1 -0
  274. package/lib/types/dsh-adapter/migrate/parse/role-turns.js +50 -0
  275. package/lib/types/dsh-adapter/migrate/parse/title.d.ts +18 -0
  276. package/lib/types/dsh-adapter/migrate/parse/title.d.ts.map +1 -0
  277. package/lib/types/dsh-adapter/migrate/parse/title.js +29 -0
  278. package/lib/types/dsh-adapter/migrate/parse/tools.d.ts +62 -0
  279. package/lib/types/dsh-adapter/migrate/parse/tools.d.ts.map +1 -0
  280. package/lib/types/dsh-adapter/migrate/parse/tools.js +110 -0
  281. package/lib/types/dsh-adapter/migrate/picker.d.ts +64 -0
  282. package/lib/types/dsh-adapter/migrate/picker.d.ts.map +1 -0
  283. package/lib/types/dsh-adapter/migrate/picker.js +86 -0
  284. package/lib/types/dsh-adapter/migrate/recent-agents.d.ts +40 -0
  285. package/lib/types/dsh-adapter/migrate/recent-agents.d.ts.map +1 -0
  286. package/lib/types/dsh-adapter/migrate/recent-agents.js +100 -0
  287. package/lib/types/dsh-adapter/migrate/sessionize.d.ts +39 -0
  288. package/lib/types/dsh-adapter/migrate/sessionize.d.ts.map +1 -0
  289. package/lib/types/dsh-adapter/migrate/sessionize.js +271 -0
  290. package/lib/types/dsh-adapter/migrate/types.d.ts +176 -0
  291. package/lib/types/dsh-adapter/migrate/types.d.ts.map +1 -0
  292. package/lib/types/dsh-adapter/migrate/types.js +11 -0
  293. package/lib/types/dsh-adapter/migrate/uuid.d.ts +7 -0
  294. package/lib/types/dsh-adapter/migrate/uuid.d.ts.map +1 -0
  295. package/lib/types/dsh-adapter/migrate/uuid.js +25 -0
  296. package/lib/types/dsh-adapter/plugin.d.ts +5 -3
  297. package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
  298. package/lib/types/dsh-adapter/plugin.js +168 -372
  299. package/lib/types/dsh-adapter/providerWizard.d.ts +17 -0
  300. package/lib/types/dsh-adapter/providerWizard.d.ts.map +1 -1
  301. package/lib/types/dsh-adapter/providerWizard.js +254 -66
  302. package/lib/types/dsh-adapter/questions.d.ts +22 -15
  303. package/lib/types/dsh-adapter/questions.d.ts.map +1 -1
  304. package/lib/types/dsh-adapter/questions.js +47 -45
  305. package/lib/types/dsh-adapter/sessions/digest.d.ts +11 -6
  306. package/lib/types/dsh-adapter/sessions/digest.d.ts.map +1 -1
  307. package/lib/types/dsh-adapter/sessions/digest.js +20 -13
  308. package/lib/types/dsh-adapter/sessions/frames.d.ts +3 -1
  309. package/lib/types/dsh-adapter/sessions/frames.d.ts.map +1 -1
  310. package/lib/types/dsh-adapter/sessions/frames.js +5 -4
  311. package/lib/types/dsh-adapter/sessions/list.d.ts +6 -1
  312. package/lib/types/dsh-adapter/sessions/list.d.ts.map +1 -1
  313. package/lib/types/dsh-adapter/sessions/list.js +188 -164
  314. package/lib/types/dsh-adapter/sessions/recovery.d.ts +16 -0
  315. package/lib/types/dsh-adapter/sessions/recovery.d.ts.map +1 -0
  316. package/lib/types/dsh-adapter/sessions/recovery.js +108 -0
  317. package/lib/types/dsh-adapter/sessions/snapshot.d.ts +7 -0
  318. package/lib/types/dsh-adapter/sessions/snapshot.d.ts.map +1 -0
  319. package/lib/types/dsh-adapter/sessions/snapshot.js +90 -0
  320. package/lib/types/dsh-adapter/sessions/store.d.ts +10 -4
  321. package/lib/types/dsh-adapter/sessions/store.d.ts.map +1 -1
  322. package/lib/types/dsh-adapter/sessions/store.js +62 -25
  323. package/lib/types/dsh-adapter/settings-sections.d.ts.map +1 -1
  324. package/lib/types/dsh-adapter/settings-sections.js +7 -4
  325. package/lib/types/dsh-adapter/sideQuestion.d.ts +41 -2
  326. package/lib/types/dsh-adapter/sideQuestion.d.ts.map +1 -1
  327. package/lib/types/dsh-adapter/sideQuestion.js +98 -2
  328. package/lib/types/dsh-adapter/subagents.d.ts +44 -6
  329. package/lib/types/dsh-adapter/subagents.d.ts.map +1 -1
  330. package/lib/types/dsh-adapter/subagents.js +163 -26
  331. package/lib/types/herdr.d.ts +2 -0
  332. package/lib/types/herdr.d.ts.map +1 -1
  333. package/lib/types/herdr.js +9 -3
  334. package/lib/types/history.d.ts +13 -1
  335. package/lib/types/history.d.ts.map +1 -1
  336. package/lib/types/history.js +15 -2
  337. package/lib/types/i18n.d.ts +512 -41
  338. package/lib/types/i18n.d.ts.map +1 -1
  339. package/lib/types/i18n.js +199 -20
  340. package/lib/types/ink/components/App.d.ts +2 -2
  341. package/lib/types/ink/components/App.d.ts.map +1 -1
  342. package/lib/types/ink/components/App.js +5 -1
  343. package/lib/types/ink/components/Image.d.ts +14 -1
  344. package/lib/types/ink/components/Image.d.ts.map +1 -1
  345. package/lib/types/ink/components/Image.js +2 -2
  346. package/lib/types/ink/events/input-event.js +3 -3
  347. package/lib/types/ink/hooks/use-terminal-images.d.ts +12 -0
  348. package/lib/types/ink/hooks/use-terminal-images.d.ts.map +1 -1
  349. package/lib/types/ink/hooks/use-terminal-images.js +13 -0
  350. package/lib/types/ink/ink.d.ts +6 -0
  351. package/lib/types/ink/ink.d.ts.map +1 -1
  352. package/lib/types/ink/ink.js +16 -1
  353. package/lib/types/ink/kitty-graphics.d.ts +44 -3
  354. package/lib/types/ink/kitty-graphics.d.ts.map +1 -1
  355. package/lib/types/ink/kitty-graphics.js +184 -23
  356. package/lib/types/ink/log-update.d.ts.map +1 -1
  357. package/lib/types/ink/log-update.js +19 -1
  358. package/lib/types/ink/output.d.ts +24 -2
  359. package/lib/types/ink/output.d.ts.map +1 -1
  360. package/lib/types/ink/output.js +83 -5
  361. package/lib/types/ink/parse-keypress.d.ts +26 -1
  362. package/lib/types/ink/parse-keypress.d.ts.map +1 -1
  363. package/lib/types/ink/parse-keypress.js +156 -13
  364. package/lib/types/ink/render-node-to-output.d.ts.map +1 -1
  365. package/lib/types/ink/render-node-to-output.js +8 -1
  366. package/lib/types/ink/screen.d.ts +24 -0
  367. package/lib/types/ink/screen.d.ts.map +1 -1
  368. package/lib/types/ink/screen.js +89 -0
  369. package/lib/types/ink/selection.d.ts +68 -18
  370. package/lib/types/ink/selection.d.ts.map +1 -1
  371. package/lib/types/ink/selection.js +178 -31
  372. package/lib/types/ink/sixel-codec.d.ts +12 -1
  373. package/lib/types/ink/sixel-codec.d.ts.map +1 -1
  374. package/lib/types/ink/sixel-codec.js +29 -5
  375. package/lib/types/ink/sixel-graphics.d.ts.map +1 -1
  376. package/lib/types/ink/sixel-graphics.js +5 -3
  377. package/lib/types/ink/styles.d.ts +9 -0
  378. package/lib/types/ink/styles.d.ts.map +1 -1
  379. package/lib/types/ink/terminal-image.d.ts +8 -0
  380. package/lib/types/ink/terminal-image.d.ts.map +1 -1
  381. package/lib/types/ink/terminal-querier.d.ts +7 -1
  382. package/lib/types/ink/terminal-querier.d.ts.map +1 -1
  383. package/lib/types/ink/terminal-querier.js +12 -2
  384. package/lib/types/ink/timeline-rail.d.ts +5 -0
  385. package/lib/types/ink/timeline-rail.d.ts.map +1 -1
  386. package/lib/types/math/inline-layout.d.ts +29 -0
  387. package/lib/types/math/inline-layout.d.ts.map +1 -0
  388. package/lib/types/math/inline-layout.js +106 -0
  389. package/lib/types/math/layout.d.ts +58 -0
  390. package/lib/types/math/layout.d.ts.map +1 -0
  391. package/lib/types/math/layout.js +59 -0
  392. package/lib/types/math/renderer.d.ts +64 -0
  393. package/lib/types/math/renderer.d.ts.map +1 -0
  394. package/lib/types/math/renderer.js +256 -0
  395. package/lib/types/screens/Chat.d.ts +17 -1
  396. package/lib/types/screens/Chat.d.ts.map +1 -1
  397. package/lib/types/screens/Chat.js +618 -57
  398. package/lib/types/screens/SessionSupervisor.d.ts +2 -1
  399. package/lib/types/screens/SessionSupervisor.d.ts.map +1 -1
  400. package/lib/types/screens/SessionSupervisor.js +156 -19
  401. package/lib/types/screens/Settings.d.ts.map +1 -1
  402. package/lib/types/screens/Settings.js +49 -11
  403. package/lib/types/screens/StatusLine.d.ts +5 -1
  404. package/lib/types/screens/StatusLine.d.ts.map +1 -1
  405. package/lib/types/screens/StatusLine.js +47 -17
  406. package/lib/types/screens/chatOverlay.d.ts +5 -0
  407. package/lib/types/screens/chatOverlay.d.ts.map +1 -1
  408. package/lib/types/screens/chatOverlay.js +1 -0
  409. package/lib/types/screens/sessionSupervisor/ForeignSessionPanes.d.ts +47 -0
  410. package/lib/types/screens/sessionSupervisor/ForeignSessionPanes.d.ts.map +1 -0
  411. package/lib/types/screens/sessionSupervisor/ForeignSessionPanes.js +65 -0
  412. package/lib/types/screens/sessionSupervisor/model.d.ts +12 -0
  413. package/lib/types/screens/sessionSupervisor/model.d.ts.map +1 -1
  414. package/lib/types/screens/sessionSupervisor/model.js +26 -0
  415. package/lib/types/screens/sessionSupervisor/useForeignSessions.d.ts +107 -0
  416. package/lib/types/screens/sessionSupervisor/useForeignSessions.d.ts.map +1 -0
  417. package/lib/types/screens/sessionSupervisor/useForeignSessions.js +312 -0
  418. package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts +4 -1
  419. package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts.map +1 -1
  420. package/lib/types/screens/sessionSupervisor/useSessionSupervisor.js +97 -14
  421. package/lib/types/sessionHistory.d.ts +2 -2
  422. package/lib/types/sessionHistory.d.ts.map +1 -1
  423. package/lib/types/sessionHistory.js +31 -5
  424. package/lib/types/settings/definitions.d.ts +681 -0
  425. package/lib/types/settings/definitions.d.ts.map +1 -0
  426. package/lib/types/settings/definitions.js +511 -0
  427. package/lib/types/starAction.d.ts +44 -0
  428. package/lib/types/starAction.d.ts.map +1 -0
  429. package/lib/types/starAction.js +52 -0
  430. package/lib/types/terminal-utils/latex.d.ts +10 -0
  431. package/lib/types/terminal-utils/latex.d.ts.map +1 -0
  432. package/lib/types/terminal-utils/latex.js +1417 -0
  433. package/lib/types/terminal-utils/markdown.d.ts +3 -1
  434. package/lib/types/terminal-utils/markdown.d.ts.map +1 -1
  435. package/lib/types/terminal-utils/markdown.js +26 -1
  436. package/lib/types/terminal-utils/math.d.ts +66 -0
  437. package/lib/types/terminal-utils/math.d.ts.map +1 -0
  438. package/lib/types/terminal-utils/math.js +337 -0
  439. package/lib/types/tips.d.ts.map +1 -1
  440. package/lib/types/tips.js +6 -0
  441. package/lib/types/tuiDisplayPrefs.d.ts +67 -0
  442. package/lib/types/tuiDisplayPrefs.d.ts.map +1 -1
  443. package/lib/types/tuiDisplayPrefs.js +59 -0
  444. package/lib/types/ui.d.ts +1 -1
  445. package/lib/types/ui.d.ts.map +1 -1
  446. package/lib/types/ui.js +1 -1
  447. package/lib/types/usageStats.d.ts +98 -0
  448. package/lib/types/usageStats.d.ts.map +1 -0
  449. package/lib/types/usageStats.js +169 -0
  450. package/lib/types/utils/bmp.d.ts +17 -0
  451. package/lib/types/utils/bmp.d.ts.map +1 -0
  452. package/lib/types/utils/bmp.js +154 -0
  453. package/lib/types/utils/clipboard.d.ts +14 -2
  454. package/lib/types/utils/clipboard.d.ts.map +1 -1
  455. package/lib/types/utils/clipboard.js +143 -8
  456. package/lib/types/utils/fold-long-lines.d.ts +1 -1
  457. package/lib/types/utils/fold-long-lines.d.ts.map +1 -1
  458. package/lib/types/utils/fold-long-lines.js +3 -2
  459. package/lib/types/utils/keymap.d.ts +4 -1
  460. package/lib/types/utils/keymap.d.ts.map +1 -1
  461. package/lib/types/utils/keymap.js +8 -0
  462. package/lib/types/utils/modifiers.d.ts +4 -3
  463. package/lib/types/utils/modifiers.d.ts.map +1 -1
  464. package/lib/types/utils/modifiers.js +4 -3
  465. package/lib/types/working-activity.d.ts +10 -9
  466. package/lib/types/working-activity.d.ts.map +1 -1
  467. package/lib/types/working-activity.js +17 -10
  468. package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/LICENSE +202 -0
  469. package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/NOTICE +20 -0
  470. package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/index.d.ts +16 -0
  471. package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/lib/bundled-packages.json +4 -0
  472. package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/lib/index.mjs +20 -0
  473. package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/lib/index.mjs.LEGAL.txt +35 -0
  474. package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/package.json +29 -0
  475. package/package.json +117 -99
  476. package/lib/types/components/design-system/KeyboardShortcutHint.d.ts +0 -19
  477. package/lib/types/components/design-system/KeyboardShortcutHint.d.ts.map +0 -1
  478. package/lib/types/components/design-system/KeyboardShortcutHint.js +0 -14
  479. package/lib/types/dsh-adapter/channel/activity.d.ts +0 -20
  480. package/lib/types/dsh-adapter/channel/activity.d.ts.map +0 -1
  481. package/lib/types/dsh-adapter/channel/activity.js +0 -113
  482. package/lib/types/terminal-utils/terminal.d.ts +0 -18
  483. package/lib/types/terminal-utils/terminal.d.ts.map +0 -1
  484. package/lib/types/terminal-utils/terminal.js +0 -96
@@ -22,7 +22,36 @@
22
22
  * every entry carries zh, and en is optional only for the `cmd-desc-*`
23
23
  * family whose en truth lives in the command registry (see {@link tOr}).
24
24
  * scripts/verify-i18n.ts adds the checks types cannot express: placeholder
25
- * parity between languages, single-brace typos, and dead keys.
25
+ * parity between languages, single-brace typos, dead keys, and English
26
+ * UI-copy literals outside the dictionary (issue #980's leak shape).
27
+ *
28
+ * ## Adding a language (e.g. `ja`) — the full checklist
29
+ *
30
+ * The architecture is the standard flat-dict shape; a new language is
31
+ * translation work plus this mechanical touchpoint list (the compiler and
32
+ * verify-i18n fail until every step is done — partial translations cannot
33
+ * ship silently):
34
+ *
35
+ * 1. `Lang` union + `LANGS` display order (this file).
36
+ * 2. `isLang()` — add the literal.
37
+ * 3. `pluralRules` — add `new Intl.PluralRules('<tag>')`; if the language
38
+ * uses CLDR categories beyond one/other (ru/pl/ar…), widen `I18nText`
39
+ * to carry them and extend `pickText` accordingly.
40
+ * 4. Dictionary type below: add `ja?: I18nText` to the `satisfies` shape.
41
+ * Decide optionality deliberately: required = compile error per missing
42
+ * key (recommended — a half-translated UI is worse than none); optional
43
+ * = `t()` renders the raw key for gaps, so also give `t()`/`tOr()` an
44
+ * explicit fallback order (e.g. ja → en → key) if you go optional.
45
+ * 5. scripts/verify-i18n.ts: the completeness loop (§1) hardcodes the
46
+ * ['zh','en'] pair — extend it, and re-review FORBIDDEN_LITERALS
47
+ * (English sentences stay banned outside the dict; add the new
48
+ * language's equivalents only if the leak shape repeats).
49
+ * 6. Translate the dictionary (~1k keys today); zh comments above each
50
+ * key family describe tone/register — keep them.
51
+ * 7. `detectLocaleLang()` — map the new tag in the OS-locale guess.
52
+ * 8. Rendered-output regression: extend scripts/verify-toolcard-i18n.tsx
53
+ * style fixtures' language passes so the localized strings are proven
54
+ * on screen, not just present in the dict.
26
55
  */
27
56
  export type Lang = 'zh' | 'en';
28
57
  /** The languages shipped with the plugin, in display order. */
@@ -493,9 +522,9 @@ declare const dict: {
493
522
  readonly zh: " 运行中";
494
523
  readonly en: " running";
495
524
  };
496
- readonly 'subagent-archived': {
497
- readonly zh: " 已归档";
498
- readonly en: " archived";
525
+ readonly 'subagent-unknown': {
526
+ readonly zh: " 状态未知";
527
+ readonly en: " status unknown";
499
528
  };
500
529
  readonly 'subagent-query-failed': {
501
530
  readonly zh: "查询失败 · {{err}}";
@@ -885,6 +914,22 @@ declare const dict: {
885
914
  readonly zh: "压缩进行中,已取消并切换会话";
886
915
  readonly en: "In-flight compaction cancelled for the session switch";
887
916
  };
917
+ readonly 'compact-phase-prefill': {
918
+ readonly zh: "读取上下文…";
919
+ readonly en: "reading context…";
920
+ };
921
+ readonly 'compact-esc-cancel': {
922
+ readonly zh: "Esc 取消";
923
+ readonly en: "Esc cancels";
924
+ };
925
+ readonly 'compact-cancelled': {
926
+ readonly zh: "压缩已取消";
927
+ readonly en: "Compaction cancelled";
928
+ };
929
+ readonly 'compact-badge': {
930
+ readonly zh: "压缩中";
931
+ readonly en: "compacting";
932
+ };
888
933
  readonly 'turn-failed': {
889
934
  readonly zh: "回合出错{{detail}}";
890
935
  readonly en: "Turn error{{detail}}";
@@ -948,6 +993,98 @@ declare const dict: {
948
993
  readonly zh: "选区内容已变化,已取消复制";
949
994
  readonly en: "Content under the selection changed; copy cancelled";
950
995
  };
996
+ readonly 'migrate-failed': {
997
+ readonly zh: "{{n}} 个源导入失败,详见输出";
998
+ readonly en: "{{n}} source(s) failed — see the output";
999
+ };
1000
+ readonly 'migrate-spawn-failed': {
1001
+ readonly zh: "无法启动迁移子进程(找不到本包 bin)";
1002
+ readonly en: "Could not start the migration child process (package bin not found)";
1003
+ };
1004
+ readonly 'migrate-child-timeout': {
1005
+ readonly zh: "(子进程超过 {{minutes}} 分钟未结束,已终止)";
1006
+ readonly en: "(the child ran past {{minutes}} minutes and was terminated)";
1007
+ };
1008
+ readonly 'migrate-usage': {
1009
+ readonly zh: "一次只能迁移一个源:/migrate <agent> [--dry-run]";
1010
+ readonly en: "One source per run: /migrate <agent> [--dry-run]";
1011
+ };
1012
+ readonly 'migrate-dry-run-needs-source': {
1013
+ readonly zh: "请指明要预览的源:/migrate <agent> --dry-run";
1014
+ readonly en: "Name the source to preview: /migrate <agent> --dry-run";
1015
+ };
1016
+ readonly 'picker-title-migrate': {
1017
+ readonly zh: "迁移哪个代理的对话?";
1018
+ readonly en: "Import conversations from which agent?";
1019
+ };
1020
+ readonly 'migrate-picker-empty': {
1021
+ readonly zh: "没有可用的迁移源";
1022
+ readonly en: "No migration sources available";
1023
+ };
1024
+ readonly 'migrate-picker-scanning': {
1025
+ readonly zh: "正在扫描各源…";
1026
+ readonly en: "Scanning sources…";
1027
+ };
1028
+ readonly 'migrate-picker-recent': {
1029
+ readonly zh: "{{minutes}} 分钟前刚活动过";
1030
+ readonly en: "active {{minutes}} min ago";
1031
+ };
1032
+ readonly 'migrate-picker-cold': {
1033
+ readonly zh: "最近未活动";
1034
+ readonly en: "not active recently";
1035
+ };
1036
+ readonly 'migrate-picker-count': {
1037
+ readonly zh: "{{n}} 个会话文件";
1038
+ readonly en: "{{n}} session files";
1039
+ };
1040
+ readonly 'migrate-hint-notify': {
1041
+ readonly zh: "刚刚从 {{agent}} 过来?/migrate 来快速迁移";
1042
+ readonly en: "Just came from {{agent}}? /migrate imports it quickly";
1043
+ };
1044
+ readonly 'migrate-picker-hint': {
1045
+ readonly zh: "空格 勾选 · a 全选/全不选 · Enter 确认 · Esc 关闭";
1046
+ readonly en: "Space toggle · a all/none · Enter confirm · Esc close";
1047
+ };
1048
+ readonly 'migrate-confirm-title': {
1049
+ readonly zh: "确认导入";
1050
+ readonly en: "Confirm import";
1051
+ };
1052
+ readonly 'migrate-confirm-line': {
1053
+ readonly zh: "{{label}}:将导入 {{n}} 个会话文件";
1054
+ readonly en: "{{label}}: {{n}} session files to import";
1055
+ };
1056
+ readonly 'migrate-confirm-note': {
1057
+ readonly zh: "已存在的自动跳过,可重复执行";
1058
+ readonly en: "Existing sessions are skipped automatically; safe to re-run";
1059
+ };
1060
+ readonly 'migrate-confirm-actions': {
1061
+ readonly zh: "Enter 导入 · d 干跑预览 · Esc 返回选择";
1062
+ readonly en: "Enter import · d dry-run · Esc back";
1063
+ };
1064
+ readonly 'migrate-importing-source': {
1065
+ readonly zh: "正在导入 {{label}}({{i}}/{{n}})…";
1066
+ readonly en: "Importing {{label}} ({{i}}/{{n}})…";
1067
+ };
1068
+ readonly 'migrate-previewing-source': {
1069
+ readonly zh: "正在预览 {{label}}({{i}}/{{n}})…";
1070
+ readonly en: "Previewing {{label}} ({{i}}/{{n}})…";
1071
+ };
1072
+ readonly 'migrate-source-done': {
1073
+ readonly zh: "{{label}}:导入 {{imported}} · 已存在 {{existing}}";
1074
+ readonly en: "{{label}}: imported {{imported}} · already present {{existing}}";
1075
+ };
1076
+ readonly 'migrate-all-done': {
1077
+ readonly zh: "迁移完成({{n}} 个源)";
1078
+ readonly en: "Migration finished ({{n}} source(s))";
1079
+ };
1080
+ readonly 'migrate-all-previewed': {
1081
+ readonly zh: "预览完成({{n}} 个源,未写入)";
1082
+ readonly en: "Preview finished ({{n}} source(s), nothing written)";
1083
+ };
1084
+ readonly 'migrate-unknown-agent': {
1085
+ readonly zh: "未知迁移源 {{agent}},可用源见 /migrate";
1086
+ readonly en: "Unknown migration source {{agent}}; see /migrate for the list";
1087
+ };
951
1088
  readonly 'activity-current-preset': {
952
1089
  readonly zh: "当前预设 {{name}}";
953
1090
  readonly en: "Current preset {{name}}";
@@ -1203,6 +1340,10 @@ declare const dict: {
1203
1340
  readonly zh: "正在读取会话…";
1204
1341
  readonly en: "Loading sessions…";
1205
1342
  };
1343
+ readonly 'home-sessions-refreshing': {
1344
+ readonly zh: "后台刷新中";
1345
+ readonly en: "refreshing";
1346
+ };
1206
1347
  readonly 'home-sessions-failed': {
1207
1348
  readonly zh: "读取会话失败 · {{err}}";
1208
1349
  readonly en: "Failed to load sessions · {{err}}";
@@ -1324,8 +1465,84 @@ declare const dict: {
1324
1465
  readonly en: "The session you are attached to cannot be stopped";
1325
1466
  };
1326
1467
  readonly 'supervisor-open-failed': {
1327
- readonly zh: "无法进入会话「{{name}}」· 原因见下方通知";
1328
- readonly en: "Could not enter {{name}} · the reason is in the notification below";
1468
+ readonly zh: "无法进入会话「{{name}}」· {{reason}}";
1469
+ readonly en: "Could not enter {{name}} · {{reason}}";
1470
+ };
1471
+ readonly 'supervisor-hint-tabs': {
1472
+ readonly zh: "**Tab** 切换来源";
1473
+ readonly en: "**Tab** switch source";
1474
+ };
1475
+ readonly 'supervisor-foreign-sessions-title': {
1476
+ readonly zh: "{{source}} · {{name}} 的会话";
1477
+ readonly en: "{{source}} · sessions in {{name}}";
1478
+ };
1479
+ readonly 'supervisor-foreign-count': {
1480
+ readonly zh: "共 {{total}}";
1481
+ readonly en: "{{total}} total";
1482
+ };
1483
+ readonly 'supervisor-foreign-filter-placeholder': {
1484
+ readonly zh: "输入以按标题或目录搜索…";
1485
+ readonly en: "Type to search by title or directory…";
1486
+ };
1487
+ readonly 'supervisor-foreign-loading': {
1488
+ readonly zh: "正在读取 {{source}} 的会话…";
1489
+ readonly en: "Reading {{source}} sessions…";
1490
+ };
1491
+ readonly 'supervisor-foreign-empty': {
1492
+ readonly zh: "{{source}} 里没有可导入的会话";
1493
+ readonly en: "No importable sessions in {{source}}";
1494
+ };
1495
+ readonly 'supervisor-foreign-unknown-cwd': {
1496
+ readonly zh: "未知目录";
1497
+ readonly en: "Unknown directory";
1498
+ };
1499
+ readonly 'supervisor-foreign-hint-rail': {
1500
+ readonly zh: "**←/→** 切换栏位 · **↑/↓** 选择 · **Tab** 切换来源 · Esc 返回";
1501
+ readonly en: "**←/→** switch pane · **↑/↓** move · **Tab** switch source · Esc back";
1502
+ };
1503
+ readonly 'supervisor-foreign-hint-list': {
1504
+ readonly zh: "**←/→** 切换栏位 · **Enter** 导入并打开 · **Tab** 切换来源 · Ctrl+L 重新扫描 · Esc 返回";
1505
+ readonly en: "**←/→** switch pane · **Enter** import and open · **Tab** switch source · Ctrl+L rescan · Esc back";
1506
+ };
1507
+ readonly 'supervisor-foreign-hint-filter': {
1508
+ readonly zh: "输入过滤会话 · **Enter** 导入并打开 · Esc 清空";
1509
+ readonly en: "Type to filter · **Enter** import and open · Esc clears";
1510
+ };
1511
+ readonly 'supervisor-foreign-importing': {
1512
+ readonly zh: "正在导入「{{name}}」…";
1513
+ readonly en: "Importing {{name}}…";
1514
+ };
1515
+ readonly 'supervisor-foreign-import-failed': {
1516
+ readonly zh: "导入失败 · {{err}}";
1517
+ readonly en: "Import failed · {{err}}";
1518
+ };
1519
+ readonly 'supervisor-foreign-scan-failed': {
1520
+ readonly zh: "读取外部会话失败 · {{err}}";
1521
+ readonly en: "Failed to read foreign sessions · {{err}}";
1522
+ };
1523
+ readonly 'supervisor-foreign-cwd-missing': {
1524
+ readonly zh: "该会话的工作目录已不存在,未导入:{{cwd}}";
1525
+ readonly en: "Not imported: its working directory no longer exists: {{cwd}}";
1526
+ };
1527
+ readonly 'supervisor-foreign-failed-missing': {
1528
+ readonly zh: "源文件已不存在";
1529
+ readonly en: "the source file is gone";
1530
+ };
1531
+ readonly 'supervisor-foreign-failed-too-large': {
1532
+ readonly zh: "源文件过大";
1533
+ readonly en: "the source file is too large";
1534
+ };
1535
+ readonly 'supervisor-foreign-failed-not-a-session': {
1536
+ readonly zh: "不是可导入的会话";
1537
+ readonly en: "not an importable session";
1538
+ };
1539
+ readonly 'supervisor-foreign-failed-write-failed': {
1540
+ readonly zh: "写入会话失败";
1541
+ readonly en: "writing the session failed";
1542
+ };
1543
+ readonly 'supervisor-foreign-failed-unknown-source': {
1544
+ readonly zh: "未知来源";
1545
+ readonly en: "unknown source";
1329
1546
  };
1330
1547
  readonly 'cost-cache-rate': {
1331
1548
  readonly zh: "缓存率 {{rate}}% · {{read}} 读 / {{write}} 写";
@@ -1344,8 +1561,12 @@ declare const dict: {
1344
1561
  readonly en: "Cache hit rate {{rate}}% · cache {{read}} read / {{write}} write";
1345
1562
  };
1346
1563
  readonly 'cost-note': {
1347
- readonly zh: "注:DSH 不提供 API 费用计量,以上为 token 用量(按 provider 账单计费)";
1348
- readonly en: "Note: DSH provides no API cost metering; the above is token usage (billed by your provider)";
1564
+ readonly zh: "注:以上为本地估算(官方单价 × 用量),非平台账单,以 DeepSeek 平台为准";
1565
+ readonly en: "Note: the above is a local estimate (official unit rates × usage), not a platform bill — the DeepSeek platform is authoritative";
1566
+ };
1567
+ readonly 'cost-note-no-amount': {
1568
+ readonly zh: "注:以上仅为 token 用量,暂无可估算金额(本会话暂无用量,或模型未收录/非官方);估算仅供参考,以 DeepSeek 平台为准";
1569
+ 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";
1349
1570
  };
1350
1571
  readonly 'status-cost-label': {
1351
1572
  readonly zh: "≈";
@@ -1355,6 +1576,22 @@ declare const dict: {
1355
1576
  readonly zh: "估算(官方单价,非账单)";
1356
1577
  readonly en: "estimate (official rates, not a bill)";
1357
1578
  };
1579
+ readonly 'cost-session-estimate': {
1580
+ readonly zh: "本会话估算 ≈¥{{cost}}";
1581
+ readonly en: "Session estimate ≈¥{{cost}}";
1582
+ };
1583
+ readonly 'cost-split-main': {
1584
+ readonly zh: "主会话 ¥{{cost}}";
1585
+ readonly en: "main ¥{{cost}}";
1586
+ };
1587
+ readonly 'cost-split-subagent': {
1588
+ readonly zh: "子代理 ¥{{cost}}";
1589
+ readonly en: "subagent ¥{{cost}}";
1590
+ };
1591
+ readonly 'cost-unpriced': {
1592
+ readonly zh: "未计价 {{tokens}} tok";
1593
+ readonly en: "unpriced {{tokens}} tok";
1594
+ };
1358
1595
  readonly 'cost-peak-name': {
1359
1596
  readonly zh: "梁文峰";
1360
1597
  readonly en: "peak";
@@ -1752,8 +1989,8 @@ declare const dict: {
1752
1989
  readonly en: "Recommended: Windows Terminal (≥110 columns, monospace, TrueColor).";
1753
1990
  };
1754
1991
  readonly 'terminal-paste-hint': {
1755
- readonly zh: "{{mod}}V 或 Alt+V 粘贴文本、文件路径或图片;Ctrl+Shift+V 终端原生粘贴;右键粘贴同样可用;快捷键可在 /settings 修改。";
1756
- 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.";
1992
+ readonly zh: "{{keys}} 粘贴文本、文件路径或图片;Ctrl+Shift+V 终端原生粘贴;右键粘贴同样可用;快捷键可在 /settings 修改。";
1993
+ readonly en: "{{keys}} pastes text, file paths, or images; Ctrl+Shift+V is native terminal paste; right-click paste also works; remappable via /settings.";
1757
1994
  };
1758
1995
  readonly 'connect-none': {
1759
1996
  readonly zh: "当前环境未提供远程连接服务。";
@@ -2043,6 +2280,113 @@ declare const dict: {
2043
2280
  readonly zh: "探索未至之境!";
2044
2281
  readonly en: "Explore the uncharted!";
2045
2282
  };
2283
+ readonly 'logo-star-title': {
2284
+ readonly zh: "鲸鱼娘好像在等一颗小星星…… ☆";
2285
+ readonly en: "The whale girl seems to be waiting for a little star… ☆";
2286
+ };
2287
+ readonly 'logo-star-caught': {
2288
+ readonly zh: "鲸鱼娘捡到一颗小星星啦 ✨";
2289
+ readonly en: "The whale girl caught a little star ✨";
2290
+ };
2291
+ readonly 'logo-star-stats': {
2292
+ readonly zh: "已陪你 {{hours}} 小时 · 第 {{launches}} 次打开";
2293
+ readonly en: "{{hours}}h together · launch #{{launches}}";
2294
+ };
2295
+ readonly 'logo-star-ask': {
2296
+ readonly zh: "喜欢 dshTUI 的话,顺手点亮一颗 {{star}}?(点这一行或 {{key}} 一键支持)";
2297
+ readonly en: "If you like dsh-TUI, would you light a {{star}}? (click this line or {{key}})";
2298
+ };
2299
+ readonly 'cmd-desc-star': {
2300
+ readonly zh: "给这个项目点个 star(用 gh 一键)";
2301
+ };
2302
+ readonly 'star-ok': {
2303
+ readonly zh: "已 star,谢谢!";
2304
+ readonly en: "Starred — thank you!";
2305
+ };
2306
+ readonly 'star-no-gh': {
2307
+ readonly zh: "没找到 gh(GitHub CLI),已经替你在浏览器里打开仓库页:{{url}}。装一个 gh 就能一键 star:https://cli.github.com";
2308
+ 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";
2309
+ };
2310
+ readonly 'star-not-authed': {
2311
+ readonly zh: "gh 还没登录,已经替你在浏览器里打开仓库页:{{url}}。想一键 star 就先跑 gh auth login";
2312
+ 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";
2313
+ };
2314
+ readonly 'star-failed': {
2315
+ readonly zh: "一键 star 没成功:{{detail}}(也可以直接在浏览器里打开 {{url}})";
2316
+ readonly en: "One-key star failed: {{detail}} (or open {{url}} in a browser)";
2317
+ };
2318
+ readonly 'star-modal-title-hours': {
2319
+ readonly zh: "🐳 已经陪你 {{hours}} 小时了!";
2320
+ readonly en: "🐳 {{hours}} hours together!";
2321
+ };
2322
+ readonly 'star-modal-title-launches': {
2323
+ readonly zh: "🐳 已经陪你 {{launches}} 次启动了!";
2324
+ readonly en: "🐳 {{launches}} launches together!";
2325
+ };
2326
+ readonly 'star-modal-body-1': {
2327
+ readonly zh: "不知不觉,dshTUI 已经陪你走了这么久啦。";
2328
+ readonly en: "Before you noticed, dsh-TUI had already come this far with you.";
2329
+ };
2330
+ readonly 'star-modal-body-2': {
2331
+ readonly zh: "如果它有让你的 DSH 更好用一点、";
2332
+ readonly en: "If it made your DSH a little more usable,";
2333
+ };
2334
+ readonly 'star-modal-body-3': {
2335
+ readonly zh: "更顺手一点,或者只是让你开心了一点——";
2336
+ readonly en: "a little smoother — or just made you smile —";
2337
+ };
2338
+ readonly 'star-modal-body-4': {
2339
+ readonly zh: "那就送鲸鱼娘一颗小小的 Star 吧 ⭐";
2340
+ readonly en: "treat the whale girl to a tiny Star ⭐";
2341
+ };
2342
+ readonly 'star-modal-body-5': {
2343
+ readonly zh: "每一颗 Star,都会变成我们继续折腾";
2344
+ readonly en: "Every Star becomes fuel for us to keep tinkering";
2345
+ };
2346
+ readonly 'star-modal-body-6': {
2347
+ readonly zh: "和把 dshTUI 做得更好的动力!";
2348
+ readonly en: "and to keep making dsh-TUI better!";
2349
+ };
2350
+ readonly 'star-modal-star': {
2351
+ readonly zh: "投喂一颗 Star ⭐";
2352
+ readonly en: "Feed a Star ⭐";
2353
+ };
2354
+ readonly 'star-modal-open': {
2355
+ readonly zh: "在浏览器中打开 GitHub";
2356
+ readonly en: "Open GitHub in the browser";
2357
+ };
2358
+ readonly 'star-modal-working': {
2359
+ readonly zh: "正在点 star…";
2360
+ readonly en: "Starring…";
2361
+ };
2362
+ readonly 'star-modal-hint': {
2363
+ readonly zh: "↑↓ 选择 · **Enter** 确认 · **Esc** 下次一定 (´;ω;`)";
2364
+ readonly en: "↑↓ choose · **Enter** confirm · **Esc** next time (´;ω;`)";
2365
+ };
2366
+ readonly 'star-modal-thanks-title': {
2367
+ readonly zh: "🌟 收到 Star 啦!";
2368
+ readonly en: "🌟 Star received!";
2369
+ };
2370
+ readonly 'star-modal-thanks-1': {
2371
+ readonly zh: "鲸鱼娘成功接住了一颗小星星 ~";
2372
+ readonly en: "The whale girl caught a little star ~";
2373
+ };
2374
+ readonly 'star-modal-thanks-2': {
2375
+ readonly zh: "谢谢你的支持!";
2376
+ readonly en: "Thank you for your support!";
2377
+ };
2378
+ readonly 'star-modal-thanks-3': {
2379
+ readonly zh: "这颗 Star 会变成 dshTUI 继续成长的动力。";
2380
+ readonly en: "This Star becomes fuel for dsh-TUI to keep growing.";
2381
+ };
2382
+ readonly 'star-modal-thanks-4': {
2383
+ readonly zh: "希望以后,它也能继续陪你走很久。";
2384
+ readonly en: "May it keep you company for a long time to come.";
2385
+ };
2386
+ readonly 'star-modal-thanks-hint': {
2387
+ readonly zh: "**Enter** / **Esc** 关闭";
2388
+ readonly en: "**Enter** / **Esc** to close";
2389
+ };
2046
2390
  readonly 'logo-tip-prefix': {
2047
2391
  readonly zh: "提示:";
2048
2392
  readonly en: "Tip: ";
@@ -2119,6 +2463,10 @@ declare const dict: {
2119
2463
  readonly zh: "无法读取剪贴板:没有可用的 wl-paste / xclip / xsel(未安装或会话不可连接)";
2120
2464
  readonly en: "Cannot read clipboard: no usable wl-paste / xclip / xsel (not installed or session unreachable)";
2121
2465
  };
2466
+ readonly 'input-clipboard-unavailable-wsl': {
2467
+ readonly zh: "无法读取剪贴板:WSL 下请安装 wl-clipboard(需要 WSLg),或启用 Windows interop 以调用 powershell.exe";
2468
+ readonly en: "Cannot read clipboard: in WSL install wl-clipboard (needs WSLg) or enable Windows interop so powershell.exe is reachable";
2469
+ };
2122
2470
  readonly 'input-image-pasted': {
2123
2471
  readonly zh: "已粘贴图片 {{token}}";
2124
2472
  readonly en: "Pasted image {{token}}";
@@ -2223,6 +2571,66 @@ declare const dict: {
2223
2571
  readonly zh: "信号 {{name}}";
2224
2572
  readonly en: "signal {{name}}";
2225
2573
  };
2574
+ readonly 'tool-name-bash': {
2575
+ readonly zh: "Bash";
2576
+ readonly en: "Bash";
2577
+ };
2578
+ readonly 'tool-name-powershell': {
2579
+ readonly zh: "PowerShell";
2580
+ readonly en: "PowerShell";
2581
+ };
2582
+ readonly 'tool-name-read': {
2583
+ readonly zh: "读取";
2584
+ readonly en: "Read";
2585
+ };
2586
+ readonly 'tool-name-glob': {
2587
+ readonly zh: "文件搜索";
2588
+ readonly en: "Glob";
2589
+ };
2590
+ readonly 'tool-name-grep': {
2591
+ readonly zh: "内容搜索";
2592
+ readonly en: "Grep";
2593
+ };
2594
+ readonly 'tool-name-write': {
2595
+ readonly zh: "写入";
2596
+ readonly en: "Write";
2597
+ };
2598
+ readonly 'tool-name-edit': {
2599
+ readonly zh: "编辑";
2600
+ readonly en: "Edit";
2601
+ };
2602
+ readonly 'tool-name-todo_write': {
2603
+ readonly zh: "待办清单";
2604
+ readonly en: "TodoWrite";
2605
+ };
2606
+ readonly 'tool-name-subagent': {
2607
+ readonly zh: "子代理";
2608
+ readonly en: "Task";
2609
+ };
2610
+ readonly 'tool-name-web_search': {
2611
+ readonly zh: "联网搜索";
2612
+ readonly en: "WebSearch";
2613
+ };
2614
+ readonly 'tool-exit-code': {
2615
+ readonly zh: "退出码 {{code}}";
2616
+ readonly en: "Exit code {{code}}";
2617
+ };
2618
+ readonly 'tool-killed-signal': {
2619
+ readonly zh: "被信号 {{name}} 终止";
2620
+ readonly en: "Killed by signal {{name}}";
2621
+ };
2622
+ readonly 'tool-running-elapsed': {
2623
+ readonly zh: "运行中…({{duration}})";
2624
+ readonly en: "Running… ({{duration}})";
2625
+ };
2626
+ readonly 'search-results-total': {
2627
+ readonly zh: "…(共 {{n}} 条)";
2628
+ readonly en: "… ({{n}} total)";
2629
+ };
2630
+ readonly 'lines-folded-expand': {
2631
+ readonly zh: "… +{{n}} 行({{key}} 展开)";
2632
+ readonly en: "… +{{n}} lines ({{key}} to expand)";
2633
+ };
2226
2634
  readonly 'sugg-commands-title': {
2227
2635
  readonly zh: "命令";
2228
2636
  readonly en: "commands";
@@ -2312,16 +2720,16 @@ declare const dict: {
2312
2720
  readonly en: "? for this help";
2313
2721
  };
2314
2722
  readonly 'help-verbose-output': {
2315
- readonly zh: "{{mod}}o 详细输出";
2316
- readonly en: "{{mod}}o for verbose output";
2723
+ readonly zh: "{{key}} 详细输出";
2724
+ readonly en: "{{key}} for verbose output";
2317
2725
  };
2318
2726
  readonly 'help-open-trajectory': {
2319
- readonly zh: "{{mod}}t 打开会话轨迹";
2320
- readonly en: "{{mod}}t to open trajectory";
2727
+ readonly zh: "{{key}} 打开会话轨迹";
2728
+ readonly en: "{{key}} to open trajectory";
2321
2729
  };
2322
2730
  readonly 'help-search-history': {
2323
- readonly zh: "{{mod}}r 搜索历史";
2324
- readonly en: "{{mod}}r to search history";
2731
+ readonly zh: "{{key}} 搜索历史";
2732
+ readonly en: "{{key}} to search history";
2325
2733
  };
2326
2734
  readonly 'help-interrupt': {
2327
2735
  readonly zh: "ctrl+c 打断";
@@ -2332,8 +2740,8 @@ declare const dict: {
2332
2740
  readonly en: "ctrl+d to exit";
2333
2741
  };
2334
2742
  readonly 'help-redraw': {
2335
- readonly zh: "{{mod}}l 重绘";
2336
- readonly en: "{{mod}}l to redraw";
2743
+ readonly zh: "{{key}} 重绘";
2744
+ readonly en: "{{key}} to redraw";
2337
2745
  };
2338
2746
  readonly 'help-clear-input': {
2339
2747
  readonly zh: "esc 清空输入";
@@ -2360,16 +2768,16 @@ declare const dict: {
2360
2768
  readonly en: "shift+tab to cycle mode";
2361
2769
  };
2362
2770
  readonly 'help-open-editor': {
2363
- readonly zh: "ctrl+g 打开编辑器";
2364
- readonly en: "ctrl+g to open editor";
2771
+ readonly zh: "{{key}} 打开编辑器";
2772
+ readonly en: "{{key}} to open editor";
2365
2773
  };
2366
2774
  readonly 'help-fold-todos': {
2367
- readonly zh: "{{mod}}q 折叠待办";
2368
- readonly en: "{{mod}}q to fold todos";
2775
+ readonly zh: "{{key}} 折叠待办";
2776
+ readonly en: "{{key}} to fold todos";
2369
2777
  };
2370
2778
  readonly 'goal-todo-fold-hint': {
2371
- readonly zh: "{{mod}}q 折叠";
2372
- readonly en: "{{mod}}q to fold";
2779
+ readonly zh: "{{key}} 折叠";
2780
+ readonly en: "{{key}} to fold";
2373
2781
  };
2374
2782
  readonly 'help-commands-title': {
2375
2783
  readonly zh: "命令:";
@@ -2400,8 +2808,8 @@ declare const dict: {
2400
2808
  readonly en: " ↑ load earlier messages (full session log; /export for full text) ";
2401
2809
  };
2402
2810
  readonly 'show-previous-messages': {
2403
- readonly zh: " ctrl+e 显示前 {{n}} 条消息 ";
2404
- readonly en: " ctrl+e to show {{n}} previous messages ";
2811
+ readonly zh: " {{key}} 显示前 {{n}} 条消息 ";
2812
+ readonly en: " {{key}} to show {{n}} previous messages ";
2405
2813
  };
2406
2814
  readonly 'resume-resumed': {
2407
2815
  readonly zh: "已恢复会话";
@@ -2660,12 +3068,12 @@ declare const dict: {
2660
3068
  readonly en: "↑/↓ to navigate · **Enter** to select · Esc to cancel";
2661
3069
  };
2662
3070
  readonly 'hint-expand-ctrl-o': {
2663
- readonly zh: "(ctrl+o 展开)";
2664
- readonly en: "(ctrl+o to expand)";
3071
+ readonly zh: "({{key}} 展开)";
3072
+ readonly en: "({{key}} to expand)";
2665
3073
  };
2666
3074
  readonly 'long-line-folded': {
2667
- readonly zh: "… 已折叠 {{n}} 字符(点击或 ctrl+o 展开)";
2668
- readonly en: "… {{n}} chars folded (click or ctrl+o to expand)";
3075
+ readonly zh: "… 已折叠 {{n}} 字符(点击或 {{key}} 展开)";
3076
+ readonly en: "… {{n}} chars folded (click or {{key}} to expand)";
2669
3077
  };
2670
3078
  readonly 'file-actions-title': {
2671
3079
  readonly zh: "文件操作";
@@ -3135,8 +3543,8 @@ declare const dict: {
3135
3543
  readonly en: "Type answer";
3136
3544
  };
3137
3545
  readonly 'question-hint-paste': {
3138
- readonly zh: "Ctrl+V 粘贴";
3139
- readonly en: "Ctrl+V paste";
3546
+ readonly zh: "{{key}} 粘贴";
3547
+ readonly en: "{{key}} paste";
3140
3548
  };
3141
3549
  readonly 'question-hint-enter': {
3142
3550
  readonly zh: "Enter 提交";
@@ -3154,6 +3562,14 @@ declare const dict: {
3154
3562
  readonly zh: "Esc 上一题";
3155
3563
  readonly en: "Esc previous question";
3156
3564
  };
3565
+ readonly 'question-hint-switch': {
3566
+ readonly zh: "←/→ 换题";
3567
+ readonly en: "←/→ switch question";
3568
+ };
3569
+ readonly 'question-hint-switch-input': {
3570
+ readonly zh: "行首←/行尾→ 换题";
3571
+ readonly en: "←/→ at the text edge switches question";
3572
+ };
3157
3573
  readonly 'question-hint-cancel': {
3158
3574
  readonly zh: "Ctrl+C 取消整批";
3159
3575
  readonly en: "Ctrl+C cancel batch";
@@ -3431,8 +3847,8 @@ declare const dict: {
3431
3847
  readonly en: "Clear the feedback to approve (or press Enter on the input row to send it)";
3432
3848
  };
3433
3849
  readonly 'plan-review-hint': {
3434
- readonly zh: "↑/↓ 选择 · 1/2 快选 · 打字输入反馈 · Ctrl+V 粘贴 · Enter 提交 · Esc 打断评审";
3435
- readonly en: "↑/↓ select · 1/2 quick-pick · type feedback · Ctrl+V paste · Enter submit · Esc dismiss";
3850
+ readonly zh: "↑/↓ 选择 · 1/2 快选 · 打字输入反馈 · {{paste}} 粘贴 · Enter 提交 · Esc 打断评审";
3851
+ readonly en: "↑/↓ select · 1/2 quick-pick · type feedback · {{paste}} paste · Enter submit · Esc dismiss";
3436
3852
  };
3437
3853
  readonly 'provider-unavailable': {
3438
3854
  readonly zh: "/provider 需要经 dsh profile 启动(settings / credentials / llm-pi-ai 服务未挂载)";
@@ -3558,6 +3974,22 @@ declare const dict: {
3558
3974
  readonly zh: "取消";
3559
3975
  readonly en: "Cancel";
3560
3976
  };
3977
+ readonly 'provider-line-action-added': {
3978
+ readonly zh: "✓ {{route}} · 已添加";
3979
+ readonly en: "✓ {{route}} · added";
3980
+ };
3981
+ readonly 'provider-line-action-updated': {
3982
+ readonly zh: "✓ {{route}} · 配置已更新";
3983
+ readonly en: "✓ {{route}} · configuration updated";
3984
+ };
3985
+ readonly 'provider-line-action-updated-models': {
3986
+ readonly zh: "✓ {{route}} · 模型列表已更新";
3987
+ readonly en: "✓ {{route}} · model list updated";
3988
+ };
3989
+ readonly 'provider-line-action-deleted': {
3990
+ readonly zh: "✓ {{route}} · 已删除";
3991
+ readonly en: "✓ {{route}} · deleted";
3992
+ };
3561
3993
  readonly 'provider-line-route': {
3562
3994
  readonly zh: "路由:{{route}}";
3563
3995
  readonly en: "Route: {{route}}";
@@ -3566,17 +3998,17 @@ declare const dict: {
3566
3998
  readonly zh: "密钥引用:{{ref}}(已写入 ~/.dsh/.credentials.yaml)";
3567
3999
  readonly en: "Key ref: {{ref}} (stored in ~/.dsh/.credentials.yaml)";
3568
4000
  };
4001
+ readonly 'provider-line-keyref-preview': {
4002
+ readonly zh: "密钥引用:{{ref}}(确认后写入 ~/.dsh/.credentials.yaml)";
4003
+ readonly en: "Key ref: {{ref}} (will be stored in ~/.dsh/.credentials.yaml after confirmation)";
4004
+ };
3569
4005
  readonly 'provider-line-keyref-env': {
3570
4006
  readonly zh: "密钥引用:{{ref}}(进程环境已提供同名变量,跳过写入)";
3571
4007
  readonly en: "Key ref: {{ref}} (already in the process environment, write skipped)";
3572
4008
  };
3573
- readonly 'provider-line-baseurl': {
3574
- readonly zh: "baseURL:{{url}}";
3575
- readonly en: "baseURL: {{url}}";
3576
- };
3577
- readonly 'provider-line-protocol': {
3578
- readonly zh: "协议:{{api}}";
3579
- readonly en: "Protocol: {{api}}";
4009
+ readonly 'provider-line-endpoint': {
4010
+ readonly zh: "端点:{{url}}";
4011
+ readonly en: "Endpoint: {{url}}";
3580
4012
  };
3581
4013
  readonly 'provider-line-models': {
3582
4014
  readonly zh: "模型:{{models}}";
@@ -3586,6 +4018,42 @@ declare const dict: {
3586
4018
  readonly zh: "模型:整个 catalog(未收窄)";
3587
4019
  readonly en: "Models: the whole catalog (not narrowed)";
3588
4020
  };
4021
+ readonly 'provider-models-delta-added': {
4022
+ readonly zh: "新增 {{n}}";
4023
+ readonly en: "+{{n}}";
4024
+ };
4025
+ readonly 'provider-models-delta-removed': {
4026
+ readonly zh: "移除 {{n}}";
4027
+ readonly en: "-{{n}}";
4028
+ };
4029
+ readonly 'provider-models-delta-wrap': {
4030
+ readonly zh: "({{parts}})";
4031
+ readonly en: " ({{parts}})";
4032
+ };
4033
+ readonly 'provider-row-model-new': {
4034
+ readonly zh: "线上新增";
4035
+ readonly en: "new on endpoint";
4036
+ };
4037
+ readonly 'provider-live-fetch-failed': {
4038
+ readonly zh: "端点模型列表拉取失败,仅显示内置目录";
4039
+ readonly en: "Live model fetch failed — showing the installed catalog only";
4040
+ };
4041
+ readonly 'provider-catalog-fetch-failed': {
4042
+ readonly zh: "内置目录读取失败,线上模型容量不会写入 catalog 配置";
4043
+ readonly en: "Installed catalog lookup failed — endpoint capacities will not be written into the catalog profile";
4044
+ };
4045
+ readonly 'provider-live-fetch-unavailable': {
4046
+ readonly zh: "该路由无法安全实时拉取模型,已回退到内置目录";
4047
+ readonly en: "Live model fetch is unavailable for this route — showing the installed catalog only";
4048
+ };
4049
+ readonly 'provider-catalog-models-only': {
4050
+ readonly zh: "该 catalog 路由的协议无法确定,线上新增模型请先改用自定义端点并指定协议";
4051
+ readonly en: "This catalog route has no single known protocol; use a custom endpoint with an explicit protocol for new models";
4052
+ };
4053
+ readonly 'provider-catalog-snapshot-note': {
4054
+ readonly zh: "下方 {{n}} 项来自内置目录快照;该路由未设置 baseURL,无法实时拉取端点模型";
4055
+ readonly en: "The {{n}} items below come from the installed catalog snapshot; this route sets no baseURL, so its endpoint cannot be probed live";
4056
+ };
3589
4057
  readonly 'provider-rollback-ok': {
3590
4058
  readonly zh: "已回滚刚写入的密钥";
3591
4059
  readonly en: "Rolled back the just-written key";
@@ -3939,6 +4407,9 @@ declare const dict: {
3939
4407
  readonly 'cmd-desc-doctor': {
3940
4408
  readonly zh: "运行环境检查";
3941
4409
  };
4410
+ readonly 'cmd-desc-migrate': {
4411
+ readonly zh: "从其他编程代理导入对话(claude-code/codex/omp/zcode/grok-build)";
4412
+ };
3942
4413
  readonly 'cmd-desc-init': {
3943
4414
  readonly zh: "在工作目录创建 AGENTS.md";
3944
4415
  };