@deepseek-harness-tui/dsh-tui 0.14.0 → 0.15.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 (735) hide show
  1. package/README.md +73 -14
  2. package/bin/dsh-tui.js +200 -34
  3. package/cordis.patch.yml +16 -52
  4. package/cordis.yml +6 -2
  5. package/guide/dsh-tui-guide/claude-backend.en.md +44 -7
  6. package/guide/dsh-tui-guide/claude-backend.md +28 -6
  7. package/guide/dsh-tui-guide/codex-backend.en.md +34 -7
  8. package/guide/dsh-tui-guide/codex-backend.md +17 -2
  9. package/guide/dsh-tui-guide/configuration.en.md +129 -16
  10. package/guide/dsh-tui-guide/configuration.md +110 -14
  11. package/guide/dsh-tui-guide/interaction.en.md +57 -24
  12. package/guide/dsh-tui-guide/interaction.md +42 -19
  13. package/guide/dsh-tui-guide/plugins.en.md +36 -3
  14. package/guide/dsh-tui-guide/plugins.md +21 -2
  15. package/guide/dsh-tui-guide/themes.en.md +23 -14
  16. package/guide/dsh-tui-guide/themes.md +19 -12
  17. package/guide/dsh-tui-guide/user-guide.en.md +51 -20
  18. package/guide/dsh-tui-guide/user-guide.md +41 -21
  19. package/lib/settings.json +103 -9
  20. package/lib/types/adapter/channel/ui-policy.d.ts +1 -1
  21. package/lib/types/adapter/channel/ui-policy.d.ts.map +1 -1
  22. package/lib/types/adapter/channel/ui-policy.js +3 -0
  23. package/lib/types/adapter/channel/ui.d.ts +2 -0
  24. package/lib/types/adapter/channel/ui.d.ts.map +1 -1
  25. package/lib/types/adapter/channel/ui.js +6 -2
  26. package/lib/types/adapter/kernel/runtime.d.ts.map +1 -1
  27. package/lib/types/adapter/kernel/runtime.js +2 -0
  28. package/lib/types/adapter/ports/channel-settings.d.ts +9 -0
  29. package/lib/types/adapter/ports/channel-settings.d.ts.map +1 -1
  30. package/lib/types/adapter/ports/channel-ui.d.ts +50 -12
  31. package/lib/types/adapter/ports/channel-ui.d.ts.map +1 -1
  32. package/lib/types/adapter/ports/channel-view.d.ts +21 -0
  33. package/lib/types/adapter/ports/channel-view.d.ts.map +1 -1
  34. package/lib/types/adapter/spec/backend-capabilities.d.ts +22 -0
  35. package/lib/types/adapter/spec/backend-capabilities.d.ts.map +1 -0
  36. package/lib/types/adapter/spec/backend-capabilities.js +49 -0
  37. package/lib/types/adapter/spec/protocol-constants.d.ts.map +1 -1
  38. package/lib/types/adapter/spec/protocol-constants.js +10 -3
  39. package/lib/types/adapter/spec/tui-contributions.d.ts +3 -0
  40. package/lib/types/adapter/spec/tui-contributions.d.ts.map +1 -1
  41. package/lib/types/adapter/spec/tui-contributions.js +7 -0
  42. package/lib/types/adapter/standard/registry.d.ts +6 -0
  43. package/lib/types/adapter/standard/registry.d.ts.map +1 -1
  44. package/lib/types/adapter/standard/registry.js +65 -15
  45. package/lib/types/adapter/standard/tui-extension.d.ts.map +1 -1
  46. package/lib/types/adapter/standard/tui-extension.js +7 -1
  47. package/lib/types/adapter/standard/types.d.ts +10 -1
  48. package/lib/types/adapter/standard/types.d.ts.map +1 -1
  49. package/lib/types/adapter/upstream/host-descriptor-driver.d.ts.map +1 -1
  50. package/lib/types/adapter/upstream/host-descriptor-driver.js +52 -0
  51. package/lib/types/agent/backend-manifest.d.ts +152 -0
  52. package/lib/types/agent/backend-manifest.d.ts.map +1 -0
  53. package/lib/types/agent/backend-manifest.js +14 -0
  54. package/lib/types/agent/backend.d.ts +71 -5
  55. package/lib/types/agent/backend.d.ts.map +1 -1
  56. package/lib/types/agent/capabilities.d.ts +6 -0
  57. package/lib/types/agent/capabilities.d.ts.map +1 -1
  58. package/lib/types/agent/index.d.ts +2 -0
  59. package/lib/types/agent/index.d.ts.map +1 -1
  60. package/lib/types/agent/refs.d.ts +11 -1
  61. package/lib/types/agent/refs.d.ts.map +1 -1
  62. package/lib/types/agent/starting-session.d.ts +4 -0
  63. package/lib/types/agent/starting-session.d.ts.map +1 -0
  64. package/lib/types/agent/starting-session.js +19 -0
  65. package/lib/types/backends/claude/activity.d.ts +1 -1
  66. package/lib/types/backends/claude/activity.d.ts.map +1 -1
  67. package/lib/types/backends/claude/activity.js +5 -5
  68. package/lib/types/backends/claude/auth.d.ts.map +1 -1
  69. package/lib/types/backends/claude/auth.js +10 -3
  70. package/lib/types/backends/claude/backend.d.ts.map +1 -1
  71. package/lib/types/backends/claude/backend.js +103 -29
  72. package/lib/types/backends/claude/catalog.d.ts +2 -1
  73. package/lib/types/backends/claude/catalog.d.ts.map +1 -1
  74. package/lib/types/backends/claude/catalog.js +15 -5
  75. package/lib/types/backends/claude/channels.d.ts +5 -3
  76. package/lib/types/backends/claude/channels.d.ts.map +1 -1
  77. package/lib/types/backends/claude/channels.js +5 -4
  78. package/lib/types/backends/claude/contract.d.ts +4 -0
  79. package/lib/types/backends/claude/contract.d.ts.map +1 -1
  80. package/lib/types/backends/claude/contract.js +4 -0
  81. package/lib/types/backends/claude/controls.d.ts +4 -0
  82. package/lib/types/backends/claude/controls.d.ts.map +1 -1
  83. package/lib/types/backends/claude/controls.js +34 -42
  84. package/lib/types/backends/claude/dialogs.d.ts +8 -2
  85. package/lib/types/backends/claude/dialogs.d.ts.map +1 -1
  86. package/lib/types/backends/claude/dialogs.js +24 -16
  87. package/lib/types/backends/claude/images.d.ts +1 -1
  88. package/lib/types/backends/claude/images.d.ts.map +1 -1
  89. package/lib/types/backends/claude/images.js +7 -7
  90. package/lib/types/backends/claude/manifest.d.ts +21 -0
  91. package/lib/types/backends/claude/manifest.d.ts.map +1 -0
  92. package/lib/types/backends/claude/manifest.js +29 -0
  93. package/lib/types/backends/claude/older-history.js +2 -2
  94. package/lib/types/backends/claude/permissions.js +11 -11
  95. package/lib/types/backends/claude/prefs.d.ts +4 -2
  96. package/lib/types/backends/claude/prefs.d.ts.map +1 -1
  97. package/lib/types/backends/claude/prefs.js +4 -3
  98. package/lib/types/backends/claude/process.d.ts +16 -4
  99. package/lib/types/backends/claude/process.d.ts.map +1 -1
  100. package/lib/types/backends/claude/process.js +100 -37
  101. package/lib/types/backends/claude/send-message.d.ts +1 -1
  102. package/lib/types/backends/claude/send-message.d.ts.map +1 -1
  103. package/lib/types/backends/claude/session/auth.js +22 -22
  104. package/lib/types/backends/claude/session/channels.d.ts +4 -0
  105. package/lib/types/backends/claude/session/channels.d.ts.map +1 -1
  106. package/lib/types/backends/claude/session/channels.js +5 -3
  107. package/lib/types/backends/claude/session/lifecycle.d.ts.map +1 -1
  108. package/lib/types/backends/claude/session/lifecycle.js +31 -23
  109. package/lib/types/backends/claude/session/store.js +8 -8
  110. package/lib/types/backends/claude/session/subagents.js +2 -2
  111. package/lib/types/backends/claude/session/types.d.ts +7 -0
  112. package/lib/types/backends/claude/session/types.d.ts.map +1 -1
  113. package/lib/types/backends/claude/side-query.js +3 -3
  114. package/lib/types/backends/claude/task-output.js +5 -5
  115. package/lib/types/backends/claude/text.d.ts +778 -0
  116. package/lib/types/backends/claude/text.d.ts.map +1 -0
  117. package/lib/types/backends/claude/text.js +298 -0
  118. package/lib/types/backends/claude/transcript-file.d.ts +1 -1
  119. package/lib/types/backends/claude/transcript-file.d.ts.map +1 -1
  120. package/lib/types/backends/claude/transcript-file.js +4 -4
  121. package/lib/types/backends/claude/translate/attempts.js +2 -2
  122. package/lib/types/backends/claude/translate/core.js +3 -3
  123. package/lib/types/backends/claude/translate/messages.js +4 -4
  124. package/lib/types/backends/claude/translate/system.js +14 -14
  125. package/lib/types/backends/claude/translate/tasks.js +2 -2
  126. package/lib/types/backends/claude/translate/types.d.ts +1 -1
  127. package/lib/types/backends/claude/translate/types.d.ts.map +1 -1
  128. package/lib/types/backends/codex/auth/external-tokens.js +16 -16
  129. package/lib/types/backends/codex/auth/status.js +14 -14
  130. package/lib/types/backends/codex/backend.d.ts +4 -19
  131. package/lib/types/backends/codex/backend.d.ts.map +1 -1
  132. package/lib/types/backends/codex/backend.js +118 -25
  133. package/lib/types/backends/codex/catalog.d.ts +2 -1
  134. package/lib/types/backends/codex/catalog.d.ts.map +1 -1
  135. package/lib/types/backends/codex/catalog.js +63 -18
  136. package/lib/types/backends/codex/channels.d.ts +6 -3
  137. package/lib/types/backends/codex/channels.d.ts.map +1 -1
  138. package/lib/types/backends/codex/channels.js +15 -13
  139. package/lib/types/backends/codex/detect.d.ts.map +1 -1
  140. package/lib/types/backends/codex/detect.js +9 -6
  141. package/lib/types/backends/codex/manifest.d.ts +30 -0
  142. package/lib/types/backends/codex/manifest.d.ts.map +1 -0
  143. package/lib/types/backends/codex/manifest.js +23 -0
  144. package/lib/types/backends/codex/prefs.d.ts +4 -2
  145. package/lib/types/backends/codex/prefs.d.ts.map +1 -1
  146. package/lib/types/backends/codex/prefs.js +4 -3
  147. package/lib/types/backends/codex/rpc/hub.js +2 -2
  148. package/lib/types/backends/codex/session/activity.d.ts +1 -1
  149. package/lib/types/backends/codex/session/activity.d.ts.map +1 -1
  150. package/lib/types/backends/codex/session/activity.js +13 -13
  151. package/lib/types/backends/codex/session/approvals.js +30 -30
  152. package/lib/types/backends/codex/session/commands.d.ts +8 -2
  153. package/lib/types/backends/codex/session/commands.d.ts.map +1 -1
  154. package/lib/types/backends/codex/session/commands.js +71 -23
  155. package/lib/types/backends/codex/session/controls.d.ts +1 -1
  156. package/lib/types/backends/codex/session/controls.d.ts.map +1 -1
  157. package/lib/types/backends/codex/session/controls.js +21 -16
  158. package/lib/types/backends/codex/session/goals.d.ts.map +1 -1
  159. package/lib/types/backends/codex/session/goals.js +3 -3
  160. package/lib/types/backends/codex/session/history.js +2 -2
  161. package/lib/types/backends/codex/session/images.js +8 -8
  162. package/lib/types/backends/codex/session/input.d.ts +6 -2
  163. package/lib/types/backends/codex/session/input.d.ts.map +1 -1
  164. package/lib/types/backends/codex/session/input.js +55 -13
  165. package/lib/types/backends/codex/session/plan-review.js +6 -6
  166. package/lib/types/backends/codex/session/session.d.ts.map +1 -1
  167. package/lib/types/backends/codex/session/session.js +66 -34
  168. package/lib/types/backends/codex/session/side-query.d.ts.map +1 -1
  169. package/lib/types/backends/codex/session/side-query.js +27 -9
  170. package/lib/types/backends/codex/session/state.d.ts +6 -1
  171. package/lib/types/backends/codex/session/state.d.ts.map +1 -1
  172. package/lib/types/backends/codex/session/subagents.js +5 -5
  173. package/lib/types/backends/codex/session/tasks.js +4 -4
  174. package/lib/types/backends/codex/text.d.ts +933 -0
  175. package/lib/types/backends/codex/text.d.ts.map +1 -0
  176. package/lib/types/backends/codex/text.js +313 -0
  177. package/lib/types/backends/codex/translate/items.js +4 -4
  178. package/lib/types/backends/codex/translate/live.d.ts.map +1 -1
  179. package/lib/types/backends/codex/translate/live.js +11 -8
  180. package/lib/types/backends/codex/translate/notices.js +10 -10
  181. package/lib/types/backends/shared/channel-slug.d.ts +4 -0
  182. package/lib/types/backends/shared/channel-slug.d.ts.map +1 -0
  183. package/lib/types/backends/shared/channel-slug.js +25 -0
  184. package/lib/types/backends/shared/channel-tokens.d.ts.map +1 -1
  185. package/lib/types/backends/shared/channel-tokens.js +30 -23
  186. package/lib/types/{channel → backends/shared}/elicitation.d.ts +78 -21
  187. package/lib/types/backends/shared/elicitation.d.ts.map +1 -0
  188. package/lib/types/{channel → backends/shared}/elicitation.js +64 -66
  189. package/lib/types/backends/shared/image-size.d.ts +33 -0
  190. package/lib/types/backends/shared/image-size.d.ts.map +1 -0
  191. package/lib/types/backends/shared/image-size.js +134 -0
  192. package/lib/types/{utils → backends/shared}/jsonl.d.ts +5 -1
  193. package/lib/types/backends/shared/jsonl.d.ts.map +1 -0
  194. package/lib/types/{utils → backends/shared}/jsonl.js +5 -1
  195. package/lib/types/backends/shared/localized-text.d.ts +30 -0
  196. package/lib/types/backends/shared/localized-text.d.ts.map +1 -0
  197. package/lib/types/backends/shared/localized-text.js +24 -0
  198. package/lib/types/backends/shared/platform-text.d.ts +88 -0
  199. package/lib/types/backends/shared/platform-text.d.ts.map +1 -0
  200. package/lib/types/backends/shared/platform-text.js +33 -0
  201. package/lib/types/branding.d.ts +13 -0
  202. package/lib/types/branding.d.ts.map +1 -1
  203. package/lib/types/branding.js +18 -0
  204. package/lib/types/channel/channel-slug.d.ts +3 -1
  205. package/lib/types/channel/channel-slug.d.ts.map +1 -1
  206. package/lib/types/channel/channel-slug.js +3 -1
  207. package/lib/types/channel/sanitize.d.ts +7 -0
  208. package/lib/types/channel/sanitize.d.ts.map +1 -1
  209. package/lib/types/channel/sanitize.js +9 -0
  210. package/lib/types/channel/usage.d.ts.map +1 -1
  211. package/lib/types/channel/usage.js +5 -0
  212. package/lib/types/commands.d.ts +5 -0
  213. package/lib/types/commands.d.ts.map +1 -1
  214. package/lib/types/commands.js +47 -8
  215. package/lib/types/components/AgentMessageComposer.d.ts.map +1 -1
  216. package/lib/types/components/AgentMessageComposer.js +3 -2
  217. package/lib/types/components/BtwPanel.d.ts.map +1 -1
  218. package/lib/types/components/BtwPanel.js +4 -2
  219. package/lib/types/components/Chat/JobCard.js +3 -3
  220. package/lib/types/components/CommandSuggestions.d.ts.map +1 -1
  221. package/lib/types/components/CommandSuggestions.js +20 -6
  222. package/lib/types/components/ContextBarView.d.ts +5 -1
  223. package/lib/types/components/ContextBarView.d.ts.map +1 -1
  224. package/lib/types/components/ContextBarView.js +6 -3
  225. package/lib/types/components/ExtensionDialog.d.ts.map +1 -1
  226. package/lib/types/components/ExtensionDialog.js +2 -3
  227. package/lib/types/components/GoalTodoPanel.d.ts.map +1 -1
  228. package/lib/types/components/GoalTodoPanel.js +14 -3
  229. package/lib/types/components/InlineMathParagraph.js +1 -1
  230. package/lib/types/components/KernelPicker.d.ts.map +1 -1
  231. package/lib/types/components/KernelPicker.js +1 -1
  232. package/lib/types/components/LogoV2.d.ts.map +1 -1
  233. package/lib/types/components/LogoV2.js +9 -6
  234. package/lib/types/components/MarkdownTable.d.ts.map +1 -1
  235. package/lib/types/components/MarkdownTable.js +4 -3
  236. package/lib/types/components/MessageList.d.ts.map +1 -1
  237. package/lib/types/components/MessageList.js +18 -5
  238. package/lib/types/components/ModelPicker.d.ts +24 -31
  239. package/lib/types/components/ModelPicker.d.ts.map +1 -1
  240. package/lib/types/components/ModelPicker.js +115 -40
  241. package/lib/types/components/PromptEditor.d.ts +3 -3
  242. package/lib/types/components/PromptInput.d.ts +21 -3
  243. package/lib/types/components/PromptInput.d.ts.map +1 -1
  244. package/lib/types/components/PromptInput.js +58 -118
  245. package/lib/types/components/SdkInstallWizard.d.ts +3 -1
  246. package/lib/types/components/SdkInstallWizard.d.ts.map +1 -1
  247. package/lib/types/components/SdkInstallWizard.js +8 -1
  248. package/lib/types/components/SearchBox.d.ts +13 -15
  249. package/lib/types/components/SearchBox.d.ts.map +1 -1
  250. package/lib/types/components/SearchBox.js +58 -27
  251. package/lib/types/components/ThemePicker.d.ts +1 -1
  252. package/lib/types/components/ThemePicker.d.ts.map +1 -1
  253. package/lib/types/components/ThemePicker.js +14 -11
  254. package/lib/types/components/Tooltip.js +1 -1
  255. package/lib/types/components/WorkingSpinner.js +1 -1
  256. package/lib/types/components/WorkspaceFlowPicker.d.ts.map +1 -1
  257. package/lib/types/components/WorkspaceFlowPicker.js +4 -3
  258. package/lib/types/components/composerImageTokens.d.ts +24 -0
  259. package/lib/types/components/composerImageTokens.d.ts.map +1 -0
  260. package/lib/types/components/composerImageTokens.js +37 -0
  261. package/lib/types/components/design-system/InputCaret.d.ts +7 -0
  262. package/lib/types/components/design-system/InputCaret.d.ts.map +1 -0
  263. package/lib/types/components/design-system/InputCaret.js +9 -0
  264. package/lib/types/components/design-system/ListItem.d.ts +13 -2
  265. package/lib/types/components/design-system/ListItem.d.ts.map +1 -1
  266. package/lib/types/components/design-system/ListItem.js +11 -5
  267. package/lib/types/components/design-system/ThemeProvider.d.ts.map +1 -1
  268. package/lib/types/components/design-system/ThemeProvider.js +6 -8
  269. package/lib/types/components/kernelCatalog.d.ts +55 -11
  270. package/lib/types/components/kernelCatalog.d.ts.map +1 -1
  271. package/lib/types/components/kernelCatalog.js +42 -23
  272. package/lib/types/components/launchpadActions.d.ts +4 -0
  273. package/lib/types/components/launchpadActions.d.ts.map +1 -1
  274. package/lib/types/components/launchpadActions.js +5 -4
  275. package/lib/types/components/launchpadLayout.d.ts.map +1 -1
  276. package/lib/types/components/launchpadLayout.js +2 -2
  277. package/lib/types/components/messages/UserPromptMessage.d.ts +4 -3
  278. package/lib/types/components/messages/UserPromptMessage.d.ts.map +1 -1
  279. package/lib/types/components/messages/UserPromptMessage.js +4 -3
  280. package/lib/types/components/questions/AskUserQuestionPanel.d.ts.map +1 -1
  281. package/lib/types/components/questions/AskUserQuestionPanel.js +8 -3
  282. package/lib/types/components/questions/PlanReviewPanel.d.ts.map +1 -1
  283. package/lib/types/components/questions/PlanReviewPanel.js +4 -3
  284. package/lib/types/components/questions/ProviderModelEditor.d.ts.map +1 -1
  285. package/lib/types/components/questions/ProviderModelEditor.js +3 -13
  286. package/lib/types/components/sessions/ForeignSessionRow.d.ts +3 -1
  287. package/lib/types/components/sessions/ForeignSessionRow.d.ts.map +1 -1
  288. package/lib/types/components/sessions/ForeignSessionRow.js +5 -2
  289. package/lib/types/components/sessions/SessionListRow.d.ts +3 -1
  290. package/lib/types/components/sessions/SessionListRow.d.ts.map +1 -1
  291. package/lib/types/components/sessions/SessionListRow.js +5 -2
  292. package/lib/types/components/sidePanel/PanelBar.d.ts +1 -0
  293. package/lib/types/components/sidePanel/PanelBar.d.ts.map +1 -1
  294. package/lib/types/components/sidePanel/PanelBar.js +21 -17
  295. package/lib/types/components/sidePanel/SidePanelColumn.d.ts +1 -1
  296. package/lib/types/components/sidePanel/SidePanelColumn.d.ts.map +1 -1
  297. package/lib/types/components/sidePanel/SidePanelColumn.js +2 -1
  298. package/lib/types/components/sidePanel/SidePanelLayout.d.ts +6 -4
  299. package/lib/types/components/sidePanel/SidePanelLayout.d.ts.map +1 -1
  300. package/lib/types/components/sidePanel/SidePanelLayout.js +33 -7
  301. package/lib/types/components/sidePanel/btw/BtwComposer.d.ts +4 -2
  302. package/lib/types/components/sidePanel/btw/BtwComposer.d.ts.map +1 -1
  303. package/lib/types/components/sidePanel/btw/BtwComposer.js +12 -4
  304. package/lib/types/components/sidePanel/btw/BtwPanelAdapter.d.ts.map +1 -1
  305. package/lib/types/components/sidePanel/btw/BtwPanelAdapter.js +59 -15
  306. package/lib/types/components/sidePanel/btw/BtwThreadScene.d.ts.map +1 -1
  307. package/lib/types/components/sidePanel/btw/BtwThreadScene.js +4 -2
  308. package/lib/types/components/sidePanel/btw/BtwThreadView.d.ts +1 -1
  309. package/lib/types/components/sidePanel/btw/BtwThreadView.d.ts.map +1 -1
  310. package/lib/types/components/sidePanel/btw/BtwThreadView.js +12 -6
  311. package/lib/types/components/sidePanel/companion/CompanionPanel.js +2 -2
  312. package/lib/types/components/sidePanel/types.d.ts +1 -1
  313. package/lib/types/components/sidePanel/types.d.ts.map +1 -1
  314. package/lib/types/components/sidePanel/useSidePanel.d.ts +2 -0
  315. package/lib/types/components/sidePanel/useSidePanel.d.ts.map +1 -1
  316. package/lib/types/components/sidePanel/useSidePanel.js +11 -1
  317. package/lib/types/components/splashFonts.d.ts +24 -1
  318. package/lib/types/components/splashFonts.d.ts.map +1 -1
  319. package/lib/types/components/splashFonts.js +40 -5
  320. package/lib/types/components/workspaces/HomeWorkspaceRow.d.ts +3 -1
  321. package/lib/types/components/workspaces/HomeWorkspaceRow.d.ts.map +1 -1
  322. package/lib/types/components/workspaces/HomeWorkspaceRow.js +5 -2
  323. package/lib/types/dsh-adapter/admission-loader.d.ts +20 -0
  324. package/lib/types/dsh-adapter/admission-loader.d.ts.map +1 -0
  325. package/lib/types/dsh-adapter/admission-loader.js +256 -0
  326. package/lib/types/dsh-adapter/backend/translate.d.ts.map +1 -1
  327. package/lib/types/dsh-adapter/backend/translate.js +3 -0
  328. package/lib/types/dsh-adapter/backend-admission.d.ts +64 -0
  329. package/lib/types/dsh-adapter/backend-admission.d.ts.map +1 -0
  330. package/lib/types/dsh-adapter/backend-admission.js +34 -0
  331. package/lib/types/dsh-adapter/backend-contribution.d.ts +26 -0
  332. package/lib/types/dsh-adapter/backend-contribution.d.ts.map +1 -0
  333. package/lib/types/dsh-adapter/backend-contribution.js +37 -0
  334. package/lib/types/dsh-adapter/backend-registry.d.ts +136 -0
  335. package/lib/types/dsh-adapter/backend-registry.d.ts.map +1 -0
  336. package/lib/types/dsh-adapter/backend-registry.js +285 -0
  337. package/lib/types/dsh-adapter/backends.d.ts +67 -24
  338. package/lib/types/dsh-adapter/backends.d.ts.map +1 -1
  339. package/lib/types/dsh-adapter/backends.generated.d.ts +12 -0
  340. package/lib/types/dsh-adapter/backends.generated.d.ts.map +1 -0
  341. package/lib/types/dsh-adapter/backends.generated.js +6 -0
  342. package/lib/types/dsh-adapter/backends.js +92 -46
  343. package/lib/types/dsh-adapter/channel/action-readiness.d.ts +2 -0
  344. package/lib/types/dsh-adapter/channel/action-readiness.d.ts.map +1 -1
  345. package/lib/types/dsh-adapter/channel/action-readiness.js +9 -3
  346. package/lib/types/dsh-adapter/channel/agent-view-projection.js +2 -2
  347. package/lib/types/dsh-adapter/channel/background-action.d.ts.map +1 -1
  348. package/lib/types/dsh-adapter/channel/background-action.js +8 -3
  349. package/lib/types/dsh-adapter/channel/binding-events.d.ts +16 -3
  350. package/lib/types/dsh-adapter/channel/binding-events.d.ts.map +1 -1
  351. package/lib/types/dsh-adapter/channel/binding-events.js +18 -46
  352. package/lib/types/dsh-adapter/channel/channel-host.d.ts +45 -0
  353. package/lib/types/dsh-adapter/channel/channel-host.d.ts.map +1 -0
  354. package/lib/types/dsh-adapter/channel/channel-host.js +1 -0
  355. package/lib/types/dsh-adapter/channel/command-completions.d.ts +5 -0
  356. package/lib/types/dsh-adapter/channel/command-completions.d.ts.map +1 -1
  357. package/lib/types/dsh-adapter/channel/command-completions.js +16 -0
  358. package/lib/types/dsh-adapter/channel/composer-images.d.ts +4 -2
  359. package/lib/types/dsh-adapter/channel/composer-images.d.ts.map +1 -1
  360. package/lib/types/dsh-adapter/channel/composer-images.js +36 -5
  361. package/lib/types/dsh-adapter/channel/cordis-host.d.ts +14 -0
  362. package/lib/types/dsh-adapter/channel/cordis-host.d.ts.map +1 -0
  363. package/lib/types/dsh-adapter/channel/cordis-host.js +35 -0
  364. package/lib/types/dsh-adapter/channel/core/actions.d.ts +3 -3
  365. package/lib/types/dsh-adapter/channel/core/actions.d.ts.map +1 -1
  366. package/lib/types/dsh-adapter/channel/core/actions.js +15 -6
  367. package/lib/types/dsh-adapter/channel/core/binding-feed.d.ts +7 -3
  368. package/lib/types/dsh-adapter/channel/core/binding-feed.d.ts.map +1 -1
  369. package/lib/types/dsh-adapter/channel/core/binding-feed.js +3 -0
  370. package/lib/types/dsh-adapter/channel/core/compose.d.ts +12 -28
  371. package/lib/types/dsh-adapter/channel/core/compose.d.ts.map +1 -1
  372. package/lib/types/dsh-adapter/channel/core/compose.js +318 -117
  373. package/lib/types/dsh-adapter/channel/core/files.d.ts +7 -2
  374. package/lib/types/dsh-adapter/channel/core/files.d.ts.map +1 -1
  375. package/lib/types/dsh-adapter/channel/core/files.js +1 -0
  376. package/lib/types/dsh-adapter/channel/core/host.d.ts +12 -6
  377. package/lib/types/dsh-adapter/channel/core/host.d.ts.map +1 -1
  378. package/lib/types/dsh-adapter/channel/core/host.js +69 -35
  379. package/lib/types/dsh-adapter/channel/core/local-actions.d.ts +5 -3
  380. package/lib/types/dsh-adapter/channel/core/local-actions.d.ts.map +1 -1
  381. package/lib/types/dsh-adapter/channel/core/local-actions.js +5 -2
  382. package/lib/types/dsh-adapter/channel/core/session-controls.js +2 -2
  383. package/lib/types/dsh-adapter/channel/core/session-switch.d.ts +7 -4
  384. package/lib/types/dsh-adapter/channel/core/session-switch.d.ts.map +1 -1
  385. package/lib/types/dsh-adapter/channel/core/session-switch.js +8 -4
  386. package/lib/types/dsh-adapter/channel/core/sessions.d.ts +1 -1
  387. package/lib/types/dsh-adapter/channel/core/sessions.d.ts.map +1 -1
  388. package/lib/types/dsh-adapter/channel/core/sessions.js +75 -16
  389. package/lib/types/dsh-adapter/channel/extensions.d.ts +4 -3
  390. package/lib/types/dsh-adapter/channel/extensions.d.ts.map +1 -1
  391. package/lib/types/dsh-adapter/channel/extensions.js +41 -22
  392. package/lib/types/dsh-adapter/channel/input-delivery.d.ts +2 -2
  393. package/lib/types/dsh-adapter/channel/input-delivery.d.ts.map +1 -1
  394. package/lib/types/dsh-adapter/channel/input-delivery.js +14 -5
  395. package/lib/types/dsh-adapter/channel/job-projection.d.ts +4 -0
  396. package/lib/types/dsh-adapter/channel/job-projection.d.ts.map +1 -1
  397. package/lib/types/dsh-adapter/channel/job-projection.js +205 -24
  398. package/lib/types/dsh-adapter/channel/mentions.d.ts +3 -3
  399. package/lib/types/dsh-adapter/channel/mentions.d.ts.map +1 -1
  400. package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts +1 -0
  401. package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts.map +1 -1
  402. package/lib/types/dsh-adapter/channel/mode-permission-actions.js +138 -8
  403. package/lib/types/dsh-adapter/channel/model-actions.d.ts +5 -1
  404. package/lib/types/dsh-adapter/channel/model-actions.d.ts.map +1 -1
  405. package/lib/types/dsh-adapter/channel/model-actions.js +40 -28
  406. package/lib/types/dsh-adapter/channel/model-selection.d.ts +17 -0
  407. package/lib/types/dsh-adapter/channel/model-selection.d.ts.map +1 -0
  408. package/lib/types/dsh-adapter/channel/model-selection.js +109 -0
  409. package/lib/types/dsh-adapter/channel/model-switch.d.ts +12 -21
  410. package/lib/types/dsh-adapter/channel/model-switch.d.ts.map +1 -1
  411. package/lib/types/dsh-adapter/channel/model-switch.js +39 -102
  412. package/lib/types/dsh-adapter/channel/projection.js +1 -1
  413. package/lib/types/dsh-adapter/channel/reports.d.ts +1 -1
  414. package/lib/types/dsh-adapter/channel/reports.d.ts.map +1 -1
  415. package/lib/types/dsh-adapter/channel/reports.js +11 -3
  416. package/lib/types/dsh-adapter/channel/session-fork.d.ts.map +1 -1
  417. package/lib/types/dsh-adapter/channel/session-fork.js +33 -20
  418. package/lib/types/dsh-adapter/channel/session-listing.d.ts +20 -0
  419. package/lib/types/dsh-adapter/channel/session-listing.d.ts.map +1 -0
  420. package/lib/types/dsh-adapter/channel/session-listing.js +51 -0
  421. package/lib/types/dsh-adapter/channel/session-metadata.d.ts +3 -1
  422. package/lib/types/dsh-adapter/channel/session-metadata.d.ts.map +1 -1
  423. package/lib/types/dsh-adapter/channel/session-metadata.js +56 -27
  424. package/lib/types/dsh-adapter/channel/session-resume.d.ts.map +1 -1
  425. package/lib/types/dsh-adapter/channel/session-resume.js +15 -8
  426. package/lib/types/dsh-adapter/channel/session-rewind.d.ts.map +1 -1
  427. package/lib/types/dsh-adapter/channel/session-rewind.js +38 -24
  428. package/lib/types/dsh-adapter/channel/session-tree-actions.d.ts.map +1 -1
  429. package/lib/types/dsh-adapter/channel/session-tree-actions.js +38 -24
  430. package/lib/types/dsh-adapter/channel/settings-host.d.ts +2 -2
  431. package/lib/types/dsh-adapter/channel/settings-host.d.ts.map +1 -1
  432. package/lib/types/dsh-adapter/channel/settings-host.js +1 -0
  433. package/lib/types/dsh-adapter/channel/state.d.ts +37 -1
  434. package/lib/types/dsh-adapter/channel/state.d.ts.map +1 -1
  435. package/lib/types/dsh-adapter/channel/state.js +14 -1
  436. package/lib/types/dsh-adapter/channel/subagent-projection.d.ts.map +1 -1
  437. package/lib/types/dsh-adapter/channel/subagent-projection.js +66 -6
  438. package/lib/types/dsh-adapter/channel/task-completion.d.ts +6 -0
  439. package/lib/types/dsh-adapter/channel/task-completion.d.ts.map +1 -0
  440. package/lib/types/dsh-adapter/channel/task-completion.js +114 -0
  441. package/lib/types/dsh-adapter/channel/transcript.d.ts +1 -1
  442. package/lib/types/dsh-adapter/channel/transcript.js +1 -1
  443. package/lib/types/dsh-adapter/channel/upstream-retry.d.ts +81 -0
  444. package/lib/types/dsh-adapter/channel/upstream-retry.d.ts.map +1 -0
  445. package/lib/types/dsh-adapter/channel/upstream-retry.js +138 -0
  446. package/lib/types/dsh-adapter/channel/workspace-actions.d.ts.map +1 -1
  447. package/lib/types/dsh-adapter/channel/workspace-actions.js +9 -8
  448. package/lib/types/dsh-adapter/channel-ui.d.ts +3 -1
  449. package/lib/types/dsh-adapter/channel-ui.d.ts.map +1 -1
  450. package/lib/types/dsh-adapter/channel-ui.js +4 -2
  451. package/lib/types/dsh-adapter/channel.d.ts +2 -2
  452. package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
  453. package/lib/types/dsh-adapter/channel.js +19 -5
  454. package/lib/types/dsh-adapter/context-occupancy.d.ts +81 -4
  455. package/lib/types/dsh-adapter/context-occupancy.d.ts.map +1 -1
  456. package/lib/types/dsh-adapter/context-occupancy.js +108 -17
  457. package/lib/types/dsh-adapter/contract.d.ts +1 -1
  458. package/lib/types/dsh-adapter/contract.d.ts.map +1 -1
  459. package/lib/types/dsh-adapter/contract.js +15 -0
  460. package/lib/types/dsh-adapter/entry-slot.d.ts +36 -0
  461. package/lib/types/dsh-adapter/entry-slot.d.ts.map +1 -0
  462. package/lib/types/dsh-adapter/entry-slot.js +28 -0
  463. package/lib/types/dsh-adapter/fresh-agent.d.ts +22 -0
  464. package/lib/types/dsh-adapter/fresh-agent.d.ts.map +1 -0
  465. package/lib/types/dsh-adapter/fresh-agent.js +221 -0
  466. package/lib/types/dsh-adapter/host-access.d.ts +16 -1
  467. package/lib/types/dsh-adapter/host-access.d.ts.map +1 -1
  468. package/lib/types/dsh-adapter/host-access.js +53 -2
  469. package/lib/types/dsh-adapter/host-contract.d.ts +103 -0
  470. package/lib/types/dsh-adapter/host-contract.d.ts.map +1 -0
  471. package/lib/types/dsh-adapter/host-contract.js +76 -0
  472. package/lib/types/dsh-adapter/host-dsh.d.ts +106 -0
  473. package/lib/types/dsh-adapter/host-dsh.d.ts.map +1 -0
  474. package/lib/types/dsh-adapter/host-dsh.js +466 -0
  475. package/lib/types/dsh-adapter/host-entry.d.ts +9 -0
  476. package/lib/types/dsh-adapter/host-entry.d.ts.map +1 -0
  477. package/lib/types/dsh-adapter/host-entry.js +228 -0
  478. package/lib/types/dsh-adapter/index.d.ts +55 -18
  479. package/lib/types/dsh-adapter/index.d.ts.map +1 -1
  480. package/lib/types/dsh-adapter/index.js +59 -7
  481. package/lib/types/dsh-adapter/install/executors.d.ts +44 -0
  482. package/lib/types/dsh-adapter/install/executors.d.ts.map +1 -0
  483. package/lib/types/dsh-adapter/install/executors.js +15 -0
  484. package/lib/types/dsh-adapter/install/pnpm-profile-add.d.ts +3 -0
  485. package/lib/types/dsh-adapter/install/pnpm-profile-add.d.ts.map +1 -0
  486. package/lib/types/dsh-adapter/install/pnpm-profile-add.js +150 -0
  487. package/lib/types/dsh-adapter/jobs.d.ts +7 -0
  488. package/lib/types/dsh-adapter/jobs.d.ts.map +1 -1
  489. package/lib/types/dsh-adapter/jobs.js +13 -0
  490. package/lib/types/dsh-adapter/lite-profile.d.ts +50 -0
  491. package/lib/types/dsh-adapter/lite-profile.d.ts.map +1 -0
  492. package/lib/types/dsh-adapter/lite-profile.js +49 -0
  493. package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts +1 -1
  494. package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts.map +1 -1
  495. package/lib/types/dsh-adapter/migrate/parse/jsonl.js +4 -3
  496. package/lib/types/dsh-adapter/oauth/profiles.d.ts.map +1 -1
  497. package/lib/types/dsh-adapter/oauth/profiles.js +5 -1
  498. package/lib/types/dsh-adapter/panels.d.ts +7 -0
  499. package/lib/types/dsh-adapter/panels.d.ts.map +1 -1
  500. package/lib/types/dsh-adapter/panels.js +35 -2
  501. package/lib/types/dsh-adapter/plugin-completions.d.ts +32 -0
  502. package/lib/types/dsh-adapter/plugin-completions.d.ts.map +1 -0
  503. package/lib/types/dsh-adapter/plugin-completions.js +80 -0
  504. package/lib/types/dsh-adapter/plugin-declaration.d.ts +21 -0
  505. package/lib/types/dsh-adapter/plugin-declaration.d.ts.map +1 -0
  506. package/lib/types/dsh-adapter/plugin-declaration.js +53 -0
  507. package/lib/types/dsh-adapter/plugin-host.d.ts +13 -2
  508. package/lib/types/dsh-adapter/plugin-host.d.ts.map +1 -1
  509. package/lib/types/dsh-adapter/plugin-host.js +34 -8
  510. package/lib/types/dsh-adapter/plugin-manager.d.ts +68 -0
  511. package/lib/types/dsh-adapter/plugin-manager.d.ts.map +1 -0
  512. package/lib/types/dsh-adapter/plugin-manager.js +51 -0
  513. package/lib/types/dsh-adapter/plugin.d.ts +50 -1
  514. package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
  515. package/lib/types/dsh-adapter/plugin.js +870 -233
  516. package/lib/types/dsh-adapter/plugins-info.d.ts +44 -8
  517. package/lib/types/dsh-adapter/plugins-info.d.ts.map +1 -1
  518. package/lib/types/dsh-adapter/plugins-info.js +354 -34
  519. package/lib/types/dsh-adapter/process-exit.d.ts +43 -0
  520. package/lib/types/dsh-adapter/process-exit.d.ts.map +1 -0
  521. package/lib/types/dsh-adapter/process-exit.js +60 -0
  522. package/lib/types/dsh-adapter/root-dispose.d.ts +18 -0
  523. package/lib/types/dsh-adapter/root-dispose.d.ts.map +1 -0
  524. package/lib/types/dsh-adapter/root-dispose.js +28 -0
  525. package/lib/types/dsh-adapter/session-list-metadata.d.ts +20 -0
  526. package/lib/types/dsh-adapter/session-list-metadata.d.ts.map +1 -0
  527. package/lib/types/dsh-adapter/session-list-metadata.js +56 -0
  528. package/lib/types/dsh-adapter/session-seed.d.ts +11 -0
  529. package/lib/types/dsh-adapter/session-seed.d.ts.map +1 -0
  530. package/lib/types/dsh-adapter/session-seed.js +47 -0
  531. package/lib/types/dsh-adapter/sessions/list.d.ts +3 -1
  532. package/lib/types/dsh-adapter/sessions/list.d.ts.map +1 -1
  533. package/lib/types/dsh-adapter/sessions/list.js +11 -5
  534. package/lib/types/dsh-adapter/sessions/snapshot.d.ts +0 -2
  535. package/lib/types/dsh-adapter/sessions/snapshot.d.ts.map +1 -1
  536. package/lib/types/dsh-adapter/sessions/snapshot.js +7 -70
  537. package/lib/types/dsh-adapter/startup-args.d.ts +2 -0
  538. package/lib/types/dsh-adapter/startup-args.d.ts.map +1 -1
  539. package/lib/types/dsh-adapter/startup-args.js +5 -0
  540. package/lib/types/dsh-adapter/subagents.d.ts +33 -1
  541. package/lib/types/dsh-adapter/subagents.d.ts.map +1 -1
  542. package/lib/types/dsh-adapter/subagents.js +110 -8
  543. package/lib/types/dsh-adapter/tui-settings.d.ts +57 -0
  544. package/lib/types/dsh-adapter/tui-settings.d.ts.map +1 -0
  545. package/lib/types/dsh-adapter/tui-settings.js +199 -0
  546. package/lib/types/effortPrefs.d.ts +6 -3
  547. package/lib/types/effortPrefs.d.ts.map +1 -1
  548. package/lib/types/effortPrefs.js +7 -4
  549. package/lib/types/hostEntryRoute.d.ts +18 -0
  550. package/lib/types/hostEntryRoute.d.ts.map +1 -0
  551. package/lib/types/hostEntryRoute.js +57 -0
  552. package/lib/types/i18n.d.ts +363 -1432
  553. package/lib/types/i18n.d.ts.map +1 -1
  554. package/lib/types/i18n.js +155 -385
  555. package/lib/types/ink/components/AlternateScreen.js +2 -2
  556. package/lib/types/ink/components/App.d.ts +1 -0
  557. package/lib/types/ink/components/App.d.ts.map +1 -1
  558. package/lib/types/ink/components/App.js +16 -4
  559. package/lib/types/ink/components/CursorDeclarationContext.d.ts +9 -0
  560. package/lib/types/ink/components/CursorDeclarationContext.d.ts.map +1 -1
  561. package/lib/types/ink/components/CursorDeclarationContext.js +2 -0
  562. package/lib/types/ink/hooks/use-copy-on-select.d.ts +2 -2
  563. package/lib/types/ink/hooks/use-copy-on-select.d.ts.map +1 -1
  564. package/lib/types/ink/hooks/use-copy-on-select.js +13 -7
  565. package/lib/types/ink/hooks/use-declared-cursor.d.ts +11 -3
  566. package/lib/types/ink/hooks/use-declared-cursor.d.ts.map +1 -1
  567. package/lib/types/ink/hooks/use-declared-cursor.js +30 -10
  568. package/lib/types/ink/ink.d.ts +22 -17
  569. package/lib/types/ink/ink.d.ts.map +1 -1
  570. package/lib/types/ink/ink.js +151 -40
  571. package/lib/types/ink/kitty-graphics.d.ts +2 -0
  572. package/lib/types/ink/kitty-graphics.d.ts.map +1 -1
  573. package/lib/types/ink/kitty-graphics.js +6 -1
  574. package/lib/types/ink/node-cache.d.ts +2 -1
  575. package/lib/types/ink/node-cache.d.ts.map +1 -1
  576. package/lib/types/ink/output.d.ts +10 -4
  577. package/lib/types/ink/output.d.ts.map +1 -1
  578. package/lib/types/ink/output.js +14 -10
  579. package/lib/types/ink/render-node-to-output.d.ts +5 -2
  580. package/lib/types/ink/render-node-to-output.d.ts.map +1 -1
  581. package/lib/types/ink/render-node-to-output.js +27 -9
  582. package/lib/types/ink/renderer.d.ts +1 -0
  583. package/lib/types/ink/renderer.d.ts.map +1 -1
  584. package/lib/types/ink/renderer.js +4 -3
  585. package/lib/types/ink/root.d.ts +4 -1
  586. package/lib/types/ink/root.d.ts.map +1 -1
  587. package/lib/types/ink/screen.d.ts +4 -2
  588. package/lib/types/ink/screen.d.ts.map +1 -1
  589. package/lib/types/ink/selection.d.ts +10 -1
  590. package/lib/types/ink/selection.d.ts.map +1 -1
  591. package/lib/types/ink/selection.js +94 -25
  592. package/lib/types/ink/stdin-handoff.d.ts +11 -0
  593. package/lib/types/ink/stdin-handoff.d.ts.map +1 -0
  594. package/lib/types/ink/stdin-handoff.js +20 -0
  595. package/lib/types/ink/styles.d.ts +2 -1
  596. package/lib/types/ink/styles.d.ts.map +1 -1
  597. package/lib/types/ink/terminal-image.d.ts +6 -4
  598. package/lib/types/ink/terminal-image.d.ts.map +1 -1
  599. package/lib/types/ink/terminal-image.js +16 -39
  600. package/lib/types/ink/terminal-notification.d.ts +8 -0
  601. package/lib/types/ink/terminal-notification.d.ts.map +1 -0
  602. package/lib/types/ink/terminal-notification.js +83 -0
  603. package/lib/types/ink/terminal.d.ts +9 -0
  604. package/lib/types/ink/terminal.d.ts.map +1 -1
  605. package/lib/types/ink/terminal.js +34 -1
  606. package/lib/types/ink/termio/csi.d.ts +11 -0
  607. package/lib/types/ink/termio/csi.d.ts.map +1 -1
  608. package/lib/types/ink/termio/csi.js +13 -0
  609. package/lib/types/ink/update-overflow-guard.d.ts +6 -0
  610. package/lib/types/ink/update-overflow-guard.d.ts.map +1 -1
  611. package/lib/types/ink/update-overflow-guard.js +17 -0
  612. package/lib/types/ink/wrap-text.d.ts +6 -0
  613. package/lib/types/ink/wrap-text.d.ts.map +1 -1
  614. package/lib/types/ink/wrap-text.js +17 -0
  615. package/lib/types/kernelPrefs.d.ts +129 -16
  616. package/lib/types/kernelPrefs.d.ts.map +1 -1
  617. package/lib/types/kernelPrefs.js +98 -35
  618. package/lib/types/math/inline-layout.d.ts +2 -0
  619. package/lib/types/math/inline-layout.d.ts.map +1 -1
  620. package/lib/types/math/inline-layout.js +5 -27
  621. package/lib/types/modelGroups.d.ts +15 -27
  622. package/lib/types/modelGroups.d.ts.map +1 -1
  623. package/lib/types/modelGroups.js +17 -31
  624. package/lib/types/modelPrefs.d.ts +5 -4
  625. package/lib/types/modelPrefs.d.ts.map +1 -1
  626. package/lib/types/modelPrefs.js +5 -4
  627. package/lib/types/modelRoute.d.ts +23 -9
  628. package/lib/types/modelRoute.d.ts.map +1 -1
  629. package/lib/types/modelRoute.js +25 -11
  630. package/lib/types/permissionPrefs.d.ts +34 -0
  631. package/lib/types/permissionPrefs.d.ts.map +1 -0
  632. package/lib/types/permissionPrefs.js +61 -0
  633. package/lib/types/plugin-host.d.ts +1 -0
  634. package/lib/types/plugin-host.d.ts.map +1 -1
  635. package/lib/types/presetPrefs.d.ts +17 -3
  636. package/lib/types/presetPrefs.d.ts.map +1 -1
  637. package/lib/types/presetPrefs.js +20 -3
  638. package/lib/types/reload.d.ts +6 -10
  639. package/lib/types/reload.d.ts.map +1 -1
  640. package/lib/types/reload.js +14 -14
  641. package/lib/types/screens/Chat.d.ts +22 -15
  642. package/lib/types/screens/Chat.d.ts.map +1 -1
  643. package/lib/types/screens/Chat.js +442 -272
  644. package/lib/types/screens/Launchpad.d.ts +27 -17
  645. package/lib/types/screens/Launchpad.d.ts.map +1 -1
  646. package/lib/types/screens/Launchpad.js +241 -78
  647. package/lib/types/screens/SessionSupervisor.d.ts.map +1 -1
  648. package/lib/types/screens/SessionSupervisor.js +53 -12
  649. package/lib/types/screens/Settings.d.ts.map +1 -1
  650. package/lib/types/screens/Settings.js +6 -0
  651. package/lib/types/screens/StatusLine.d.ts.map +1 -1
  652. package/lib/types/screens/StatusLine.js +24 -7
  653. package/lib/types/screens/StatusMetrics.d.ts +46 -1
  654. package/lib/types/screens/StatusMetrics.d.ts.map +1 -1
  655. package/lib/types/screens/StatusMetrics.js +72 -0
  656. package/lib/types/screens/chat/useKernelPicker.d.ts +8 -4
  657. package/lib/types/screens/chat/useKernelPicker.d.ts.map +1 -1
  658. package/lib/types/screens/chat/useKernelPicker.js +61 -21
  659. package/lib/types/screens/chat/useModelPicker.d.ts +42 -0
  660. package/lib/types/screens/chat/useModelPicker.d.ts.map +1 -0
  661. package/lib/types/screens/chat/useModelPicker.js +182 -0
  662. package/lib/types/screens/chatOverlay.d.ts +11 -4
  663. package/lib/types/screens/chatOverlay.d.ts.map +1 -1
  664. package/lib/types/screens/chatOverlay.js +0 -1
  665. package/lib/types/screens/sessionSupervisor/ForeignSessionPanes.d.ts +4 -1
  666. package/lib/types/screens/sessionSupervisor/ForeignSessionPanes.d.ts.map +1 -1
  667. package/lib/types/screens/sessionSupervisor/ForeignSessionPanes.js +26 -5
  668. package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts +1 -1
  669. package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts.map +1 -1
  670. package/lib/types/screens/sessionSupervisor/useSessionSupervisor.js +51 -29
  671. package/lib/types/sessionHistory.d.ts +5 -0
  672. package/lib/types/sessionHistory.d.ts.map +1 -1
  673. package/lib/types/sessionHistory.js +5 -0
  674. package/lib/types/sessions/listSnapshot.d.ts +6 -0
  675. package/lib/types/sessions/listSnapshot.d.ts.map +1 -0
  676. package/lib/types/sessions/listSnapshot.js +67 -0
  677. package/lib/types/settings/definitions.d.ts +50 -0
  678. package/lib/types/settings/definitions.d.ts.map +1 -1
  679. package/lib/types/settings/definitions.js +42 -8
  680. package/lib/types/terminal-utils/cjk-emphasis.d.ts +28 -0
  681. package/lib/types/terminal-utils/cjk-emphasis.d.ts.map +1 -0
  682. package/lib/types/terminal-utils/cjk-emphasis.js +31 -0
  683. package/lib/types/terminal-utils/markdown.d.ts +3 -1
  684. package/lib/types/terminal-utils/markdown.d.ts.map +1 -1
  685. package/lib/types/terminal-utils/markdown.js +7 -2
  686. package/lib/types/theme.d.ts +29 -12
  687. package/lib/types/theme.d.ts.map +1 -1
  688. package/lib/types/theme.js +310 -23
  689. package/lib/types/themeCatalog.d.ts.map +1 -1
  690. package/lib/types/themeCatalog.js +21 -2
  691. package/lib/types/tips.js +4 -4
  692. package/lib/types/tuiSettingsFile.d.ts +56 -0
  693. package/lib/types/tuiSettingsFile.d.ts.map +1 -0
  694. package/lib/types/tuiSettingsFile.js +206 -0
  695. package/lib/types/ui.d.ts +2 -0
  696. package/lib/types/ui.d.ts.map +1 -1
  697. package/lib/types/ui.js +2 -0
  698. package/lib/types/update.d.ts +72 -26
  699. package/lib/types/update.d.ts.map +1 -1
  700. package/lib/types/update.js +131 -43
  701. package/lib/types/utils/bmp.d.ts +7 -0
  702. package/lib/types/utils/bmp.d.ts.map +1 -1
  703. package/lib/types/utils/bmp.js +27 -0
  704. package/lib/types/utils/bootTrace.d.ts +2 -0
  705. package/lib/types/utils/bootTrace.d.ts.map +1 -0
  706. package/lib/types/utils/bootTrace.js +20 -0
  707. package/lib/types/utils/clipboard.d.ts.map +1 -1
  708. package/lib/types/utils/clipboard.js +11 -3
  709. package/lib/types/utils/credentials.d.ts +14 -2
  710. package/lib/types/utils/credentials.d.ts.map +1 -1
  711. package/lib/types/utils/credentials.js +34 -11
  712. package/lib/types/utils/imageResize.d.ts +10 -20
  713. package/lib/types/utils/imageResize.d.ts.map +1 -1
  714. package/lib/types/utils/imageResize.js +61 -134
  715. package/lib/types/utils/inputPaste.d.ts +2 -2
  716. package/lib/types/utils/inputPaste.js +2 -2
  717. package/lib/types/utils/pastedImagePath.d.ts +5 -0
  718. package/lib/types/utils/pastedImagePath.d.ts.map +1 -1
  719. package/lib/types/utils/pastedImagePath.js +33 -0
  720. package/package.json +36 -6
  721. package/presets/winbash.mjs +716 -0
  722. package/tui-profile/protocols/profile-definitions.d.ts +1 -0
  723. package/tui-profile/protocols/profile-definitions.js +14 -0
  724. package/tui-profile/protocols/tui-contributions.d.ts +55 -0
  725. package/tui-profile/protocols/tui-contributions.js +141 -0
  726. package/tui-profile/registry/contracts/backend-v1alpha1.json +13 -0
  727. package/tui-profile/registry/registry-0.15.json +12 -0
  728. package/lib/types/backends/claude/install.d.ts +0 -15
  729. package/lib/types/backends/claude/install.d.ts.map +0 -1
  730. package/lib/types/backends/claude/install.js +0 -91
  731. package/lib/types/channel/elicitation.d.ts.map +0 -1
  732. package/lib/types/dsh-adapter/channel/session-lineage.d.ts +0 -42
  733. package/lib/types/dsh-adapter/channel/session-lineage.d.ts.map +0 -1
  734. package/lib/types/dsh-adapter/channel/session-lineage.js +0 -51
  735. package/lib/types/utils/jsonl.d.ts.map +0 -1
@@ -450,262 +450,26 @@ declare const dict: {
450
450
  readonly zh: "当前内核不支持:{{name}}";
451
451
  readonly en: "Not supported by this kernel: {{name}}";
452
452
  };
453
- readonly 'capability-failed': {
454
- readonly zh: "{{name}} 失败 · {{err}}";
455
- readonly en: "{{name}} failed · {{err}}";
456
- };
457
- readonly 'claude-permission-denied': {
458
- readonly zh: "{{tool}} 被权限规则拒绝";
459
- readonly en: "{{tool}} was denied by a permission rule";
460
- };
461
- readonly 'claude-permission-denied-reason': {
462
- readonly zh: "{{tool}} 被自动拒绝:{{reason}}";
463
- readonly en: "{{tool}} was denied automatically: {{reason}}";
464
- };
465
- readonly 'claude-denied-reason': {
466
- readonly zh: "拒绝原因:{{reason}}";
467
- readonly en: "Denied: {{reason}}";
468
- };
469
- readonly 'claude-question-unreadable': {
470
- readonly zh: "无法读取这次提问的内容,已拒绝";
471
- readonly en: "The question could not be read and was declined";
472
- };
473
- readonly 'claude-always-rules-session': {
474
- readonly zh: "允许,本次会话不再询问 {{rules}}";
475
- readonly en: "Yes, and don't ask again for {{rules}} this session";
476
- };
477
- readonly 'claude-always-rules-project': {
478
- readonly zh: "允许,本项目不再询问 {{rules}}";
479
- readonly en: "Yes, and don't ask again for {{rules}} in this project";
480
- };
481
- readonly 'claude-always-rules-user': {
482
- readonly zh: "允许,所有项目都不再询问 {{rules}}";
483
- readonly en: "Yes, and don't ask again for {{rules}} in any project";
484
- };
485
- readonly 'claude-always-accept-edits': {
486
- readonly zh: "允许,本次会话自动接受编辑";
487
- readonly en: "Yes, and auto-accept edits this session";
488
- };
489
- readonly 'claude-always-mode': {
490
- readonly zh: "允许,并切换到 {{mode}} 模式";
491
- readonly en: "Yes, and switch to {{mode}} mode";
492
- };
493
- readonly 'claude-always-directories': {
494
- readonly zh: "允许,并允许访问 {{dirs}}";
495
- readonly en: "Yes, and allow access to {{dirs}}";
496
- };
497
- readonly 'claude-plan-review-header': {
498
- readonly zh: "计划评审";
499
- readonly en: "Plan review";
500
- };
501
- readonly 'claude-plan-review-question': {
502
- readonly zh: "Claude 准备好了计划,要开始执行吗?";
503
- readonly en: "Claude has a plan. Ready to start?";
504
- };
505
- readonly 'claude-plan-accept-edits': {
506
- readonly zh: "批准,并自动接受编辑";
507
- readonly en: "Yes, and auto-accept edits";
508
- };
509
- readonly 'claude-plan-accept-edits-desc': {
510
- readonly zh: "退出计划模式,之后的文件编辑不再逐个询问";
511
- readonly en: "Leave plan mode; file edits no longer ask one by one";
512
- };
513
- readonly 'claude-plan-manual': {
514
- readonly zh: "批准,编辑仍逐个确认";
515
- readonly en: "Yes, and approve each edit";
516
- };
517
- readonly 'claude-plan-manual-desc': {
518
- readonly zh: "退出计划模式,回到默认权限模式";
519
- readonly en: "Leave plan mode for the default permission mode";
520
- };
521
- readonly 'claude-plan-keep': {
522
- readonly zh: "继续规划";
523
- readonly en: "No, keep planning";
524
- };
525
- readonly 'claude-plan-keep-desc': {
526
- readonly zh: "可在输入行写下要修改的地方";
527
- readonly en: "Type what to change on the input row";
528
- };
529
- readonly 'claude-plan-approved': {
530
- readonly zh: "计划已批准,开始执行";
531
- readonly en: "Plan approved; starting";
532
- };
533
- readonly 'claude-plan-kept': {
534
- readonly zh: "计划未批准,继续规划";
535
- readonly en: "Plan not approved; planning continues";
536
- };
537
- readonly 'claude-model-unknown': {
538
- readonly zh: "Claude 没有模型 {{model}}(/model 查看可用模型)";
539
- readonly en: "Claude has no model {{model}} (see /model)";
540
- };
541
- readonly 'claude-mode-default': {
542
- readonly zh: "默认";
543
- readonly en: "Default";
544
- };
545
- readonly 'claude-mode-acceptEdits': {
546
- readonly zh: "自动接受编辑";
547
- readonly en: "Accept edits";
548
- };
549
- readonly 'claude-mode-plan': {
550
- readonly zh: "计划模式";
551
- readonly en: "Plan mode";
552
- };
553
- readonly 'claude-mode-auto': {
554
- readonly zh: "自动审批";
555
- readonly en: "Auto";
556
- };
557
- readonly 'claude-mode-dontAsk': {
558
- readonly zh: "不询问";
559
- readonly en: "Don't ask";
560
- };
561
- readonly 'claude-mode-bypassPermissions': {
562
- readonly zh: "跳过权限";
563
- readonly en: "Bypass permissions";
564
- };
565
- readonly 'claude-mode-desc-default': {
566
- readonly zh: "默认:每个危险操作前都询问";
567
- readonly en: "Default: asks before every risky action";
568
- };
569
- readonly 'claude-mode-desc-acceptEdits': {
570
- readonly zh: "自动接受文件编辑,其他操作仍询问";
571
- readonly en: "Auto-accepts file edits, still asks for the rest";
572
- };
573
- readonly 'claude-mode-desc-plan': {
574
- readonly zh: "计划模式:只读,先出方案不动手";
575
- readonly en: "Plan mode: read-only, proposes before acting";
576
- };
577
- readonly 'claude-mode-desc-auto': {
578
- readonly zh: "自动审批:由模型分类器判定";
579
- readonly en: "Auto: a model classifier decides";
580
- };
581
- readonly 'claude-mode-desc-dontAsk': {
582
- readonly zh: "不询问:未预先批准的操作一律拒绝";
583
- readonly en: "Don't ask: anything not pre-approved is denied";
584
- };
585
- readonly 'claude-mode-desc-bypassPermissions': {
586
- readonly zh: "跳过全部权限检查(谨慎使用)";
587
- readonly en: "Skips every permission check (use with care)";
588
- };
589
- readonly 'claude-effort-low': {
453
+ readonly 'effort-tier-low': {
590
454
  readonly zh: "低";
591
455
  readonly en: "Low";
592
456
  };
593
- readonly 'claude-effort-medium': {
457
+ readonly 'effort-tier-medium': {
594
458
  readonly zh: "中";
595
459
  readonly en: "Medium";
596
460
  };
597
- readonly 'claude-effort-high': {
461
+ readonly 'effort-tier-high': {
598
462
  readonly zh: "高";
599
463
  readonly en: "High";
600
464
  };
601
- readonly 'claude-effort-xhigh': {
465
+ readonly 'effort-tier-xhigh': {
602
466
  readonly zh: "超高";
603
467
  readonly en: "Extra high";
604
468
  };
605
- readonly 'claude-effort-max': {
469
+ readonly 'effort-tier-max': {
606
470
  readonly zh: "最高";
607
471
  readonly en: "Max";
608
472
  };
609
- readonly 'claude-auth-failed-login': {
610
- readonly zh: "Claude 凭证仍被拒绝:用 /login 重新登录,或设置 ANTHROPIC_API_KEY、在终端运行 claude login";
611
- readonly en: "Claude still refuses the credential: sign in again with /login, set ANTHROPIC_API_KEY, or run `claude login` in a terminal";
612
- };
613
- readonly 'claude-auth-reconnected': {
614
- readonly zh: "凭证已刷新并重新连接同一会话,请重发上一条消息";
615
- readonly en: "Credential renewed and the same session reconnected; send your last message again";
616
- };
617
- readonly 'claude-auth-refresh-failed': {
618
- readonly zh: "刷新 Claude 凭证失败{{detail}}(可用 /login 重新登录)";
619
- readonly en: "Renewing the Claude credential failed{{detail}} (sign in again with /login)";
620
- };
621
- readonly 'claude-channel-token-missing': {
622
- readonly zh: "渠道 {{name}}({{host}})指向自定义端点,但没有可用的 token,已拒绝启动,以免向中转端点发送不带凭据的请求。请在 /channel → 管理渠道 里补上 token,或换一个渠道后重试。";
623
- readonly en: "Channel {{name}} ({{host}}) points at a custom endpoint but has no usable token, so the session was not started (no unauthenticated requests to a relay). Add a token under /channel → Manage channels, or switch to another channel, then retry.";
624
- };
625
- readonly 'claude-channel-helper-conflict': {
626
- readonly zh: "settings.json 配置了 apiKeyHelper,与当前渠道冲突:它生成的 x-api-key 会随请求发到渠道端点。请从 settings.json 删掉 apiKeyHelper,或在 /channel 里停用该渠道后再启动。";
627
- readonly en: "settings.json sets apiKeyHelper, which conflicts with the active channel: the x-api-key it produces would be sent to the channel endpoint. Remove apiKeyHelper from settings.json, or deactivate the channel in /channel, then retry.";
628
- };
629
- readonly 'claude-auth-refresh-status': {
630
- readonly zh: " · HTTP {{status}}";
631
- readonly en: " · HTTP {{status}}";
632
- };
633
- readonly 'claude-auth-reconnect-failed': {
634
- readonly zh: "重新连接 Claude 会话失败;可用 /login 重新登录";
635
- readonly en: "Reconnecting the Claude session failed; sign in again with /login";
636
- };
637
- readonly 'claude-auth-reconnect-deferred': {
638
- readonly zh: "当前回合结束后再用新凭证重新连接";
639
- readonly en: "Reconnecting with the new credential once the current turn ends";
640
- };
641
- readonly 'claude-auth-reconnect-forced': {
642
- readonly zh: "等待当前回合结束超时,现在重新连接,正在运行的回合会被中断";
643
- readonly en: "The turn did not finish in time; reconnecting now, which interrupts the running turn";
644
- };
645
- readonly 'claude-auth-inputs-dropped': {
646
- readonly zh: "重新连接失败,{{n}} 条尚未开始的消息未能送达";
647
- readonly en: "Reconnecting failed; {{n}} message(s) that had not started were not delivered";
648
- };
649
- readonly 'claude-auth-route': {
650
- readonly zh: "未使用订阅登录:{{route}}";
651
- readonly en: "Subscription sign-in not used: {{route}}";
652
- };
653
- readonly 'claude-route-custom-endpoint': {
654
- readonly zh: "自定义端点 {{host}}(ANTHROPIC_BASE_URL)";
655
- readonly en: "custom endpoint {{host}} (ANTHROPIC_BASE_URL)";
656
- };
657
- readonly 'claude-route-custom-oauth': {
658
- readonly zh: "自定义 OAuth 部署";
659
- readonly en: "custom OAuth deployment";
660
- };
661
- readonly 'claude-route-unix-socket': {
662
- readonly zh: "Unix 套接字(ANTHROPIC_UNIX_SOCKET)";
663
- readonly en: "Unix socket (ANTHROPIC_UNIX_SOCKET)";
664
- };
665
- readonly 'claude-route-gateway': {
666
- readonly zh: "云网关";
667
- readonly en: "cloud gateway";
668
- };
669
- readonly 'claude-route-api-key-helper': {
670
- readonly zh: "设置中的 apiKeyHelper";
671
- readonly en: "apiKeyHelper in settings";
672
- };
673
- readonly 'claude-route-settings-unreadable': {
674
- readonly zh: "无法读取 Claude 设置,无法确认连接方式";
675
- readonly en: "Claude settings could not be read, so the connection route is unknown";
676
- };
677
- readonly 'claude-auth-source': {
678
- readonly zh: "凭证来源:{{source}}";
679
- readonly en: "Credential: {{source}}";
680
- };
681
- readonly 'claude-auth-missing-hint': {
682
- readonly zh: "未找到 Claude 凭证:用 /login 登录 anthropic,或设置 ANTHROPIC_API_KEY、在终端运行 claude login";
683
- readonly en: "No Claude credential found: sign in to anthropic with /login, set ANTHROPIC_API_KEY, or run `claude login` in a terminal";
684
- };
685
- readonly 'claude-auth-cli': {
686
- readonly zh: "CLI 报告 · apiKeySource:{{source}} · tokenSource:{{token}}";
687
- readonly en: "CLI reports · apiKeySource: {{source}} · tokenSource: {{token}}";
688
- };
689
- readonly 'claude-auth-source-dsh-auth': {
690
- readonly zh: "dsh-auth anthropic 登录";
691
- readonly en: "dsh-auth anthropic sign-in";
692
- };
693
- readonly 'claude-auth-source-dsh-auth-expires': {
694
- readonly zh: "dsh-auth anthropic 登录(令牌到期 {{time}})";
695
- readonly en: "dsh-auth anthropic sign-in (token expires {{time}})";
696
- };
697
- readonly 'claude-auth-source-cloud': {
698
- readonly zh: "云厂商 {{provider}}(环境变量)";
699
- readonly en: "Cloud provider {{provider}} (environment)";
700
- };
701
- readonly 'claude-auth-source-claude-login': {
702
- readonly zh: "本机 claude login";
703
- readonly en: "Local `claude login`";
704
- };
705
- readonly 'claude-auth-account': {
706
- readonly zh: "账户:{{account}}";
707
- readonly en: "Account: {{account}}";
708
- };
709
473
  readonly 'login-backend-heading': {
710
474
  readonly zh: "{{backend}} 登录状态";
711
475
  readonly en: "{{backend}} sign-in";
@@ -770,14 +534,6 @@ declare const dict: {
770
534
  readonly zh: "已关闭 MCP 服务器 {{name}}";
771
535
  readonly en: "Disabled the MCP server {{name}}";
772
536
  };
773
- readonly 'claude-side-query-empty': {
774
- readonly zh: "会话还没有保存任何对话,暂无内容可问";
775
- readonly en: "The session has no saved conversation to ask about yet";
776
- };
777
- readonly 'claude-side-query-no-answer': {
778
- readonly zh: "没有得到回答";
779
- readonly en: "No answer was received";
780
- };
781
537
  readonly 'backend-mcp-needs-auth': {
782
538
  readonly zh: "需要授权的服务器请在终端运行 claude 后用 /mcp 完成";
783
539
  readonly en: "For servers that need auth, finish it with /mcp in an interactive `claude`";
@@ -790,26 +546,6 @@ declare const dict: {
790
546
  readonly zh: "订阅用量 {{usage}}";
791
547
  readonly en: "Subscription usage {{usage}}";
792
548
  };
793
- readonly 'status-rate-limit-five-hour': {
794
- readonly zh: "5小时";
795
- readonly en: "5h";
796
- };
797
- readonly 'status-rate-limit-seven-day': {
798
- readonly zh: "7天";
799
- readonly en: "7d";
800
- };
801
- readonly 'claude-process-exited': {
802
- readonly zh: "Claude 进程已退出:{{reason}}";
803
- readonly en: "The Claude process exited: {{reason}}";
804
- };
805
- readonly 'claude-process-ended': {
806
- readonly zh: "会话流已结束";
807
- readonly en: "the session stream ended";
808
- };
809
- readonly 'claude-cancel-forced': {
810
- readonly zh: "中断 30 秒未得到确认,已强制结束本回合";
811
- readonly en: "The interrupt was not confirmed within 30s; the turn was force-closed";
812
- };
813
549
  readonly 'interrupt-failed': {
814
550
  readonly zh: "打断请求失败:排队消息没有撤回,仍会在下一回合发送;已取消暂存,避免重复发送";
815
551
  readonly en: "The interrupt request failed: the queued messages were not withdrawn and will still run next turn; they are no longer held, so nothing is sent twice";
@@ -818,1080 +554,6 @@ declare const dict: {
818
554
  readonly zh: "无法确认排队消息已撤回:它们仍会在下一回合发送,不再暂存";
819
555
  readonly en: "Could not confirm the queued messages were withdrawn: they will still run next turn and are no longer held";
820
556
  };
821
- readonly 'claude-version-drift': {
822
- readonly zh: "Claude CLI {{version}} 未经本版 dsh-tui 验证(已验证:{{validated}}),继续运行";
823
- readonly en: "Claude CLI {{version}} is not validated with this dsh-tui (validated: {{validated}}); continuing";
824
- };
825
- readonly 'claude-sdk-drift': {
826
- readonly zh: "Claude Agent SDK {{version}} 与验证版本 {{validated}} 不一致,继续运行";
827
- readonly en: "Claude Agent SDK {{version}} differs from the validated {{validated}}; continuing";
828
- };
829
- readonly 'claude-sdk-missing': {
830
- readonly zh: "未安装 Claude Agent SDK:在 dsh-tui 安装目录运行 pnpm add @anthropic-ai/claude-agent-sdk@{{version}}";
831
- readonly en: "The Claude Agent SDK is not installed: run pnpm add @anthropic-ai/claude-agent-sdk@{{version}} in the dsh-tui install directory";
832
- };
833
- readonly 'claude-resume-not-found': {
834
- readonly zh: "本机 Claude 会话库中没有会话 {{id}}";
835
- readonly en: "No Claude session {{id}} in the local session store";
836
- };
837
- readonly 'claude-rewind-files-unavailable': {
838
- readonly zh: "该会话没有可用的文件检查点";
839
- readonly en: "No file checkpoints are available for this session";
840
- };
841
- readonly 'claude-fork-empty': {
842
- readonly zh: "会话还没有保存任何消息,无可分叉的内容";
843
- readonly en: "Nothing to fork yet — the session has no saved messages";
844
- };
845
- readonly 'claude-task-unnamed': {
846
- readonly zh: "任务 {{id}}(标题未恢复)";
847
- readonly en: "Task {{id}} (subject not recovered)";
848
- };
849
- readonly 'claude-task-output-refused': {
850
- readonly zh: "不读取任务 {{id}} 的输出:路径不在 Claude 的目录内";
851
- readonly en: "Not reading the output of task {{id}}: the path is outside the Claude directories";
852
- };
853
- readonly 'claude-task-output-missing': {
854
- readonly zh: "任务 {{id}} 的输出文件还不存在";
855
- readonly en: "The output file of task {{id}} does not exist yet";
856
- };
857
- readonly 'claude-task-output-unknown': {
858
- readonly zh: "任务 {{id}} 没有报告输出文件";
859
- readonly en: "Task {{id}} reported no output file";
860
- };
861
- readonly 'claude-transcript-missing': {
862
- readonly zh: "找不到会话 {{id}} 的转录文件";
863
- readonly en: "The transcript file of session {{id}} was not found";
864
- };
865
- readonly 'claude-transcript-too-large': {
866
- readonly zh: "会话转录超过 {{mb}} MB,不读取";
867
- readonly en: "The session transcript is larger than {{mb}} MB; not reading it";
868
- };
869
- readonly 'claude-rewind-not-found': {
870
- readonly zh: "该消息不在会话已保存的对话链中";
871
- readonly en: "That message is not in the session's saved conversation";
872
- };
873
- readonly 'claude-images-too-many': {
874
- readonly zh: "一条消息最多附 {{n}} 张图片";
875
- readonly en: "A message carries at most {{n}} images";
876
- };
877
- readonly 'claude-images-too-large': {
878
- readonly zh: "这条消息的图片合计超过 {{mb}} MB";
879
- readonly en: "The images of this message exceed {{mb}} MB together";
880
- };
881
- readonly 'claude-image-too-large': {
882
- readonly zh: "图片 {{name}} 超过 {{mb}} MB";
883
- readonly en: "The image {{name}} exceeds {{mb}} MB";
884
- };
885
- readonly 'claude-image-type-refused': {
886
- readonly zh: "Claude 不接受图片 {{name}} 的格式({{type}})";
887
- readonly en: "Claude does not take the format of {{name}} ({{type}})";
888
- };
889
- readonly 'claude-image-unreadable': {
890
- readonly zh: "无法读取图片 {{name}}:{{err}}";
891
- readonly en: "The image {{name}} could not be read: {{err}}";
892
- };
893
- readonly 'claude-image-gone': {
894
- readonly zh: "暂存的图片已不在内存中,请重新粘贴";
895
- readonly en: "the staged image is no longer in memory; paste it again";
896
- };
897
- readonly 'claude-session-closed': {
898
- readonly zh: "Claude 会话已关闭";
899
- readonly en: "The Claude session is closed";
900
- };
901
- readonly 'claude-start-timeout': {
902
- readonly zh: "Claude CLI 未在时限内完成启动握手";
903
- readonly en: "The Claude CLI did not finish its start handshake in time";
904
- };
905
- readonly 'claude-start-mode-downgraded': {
906
- readonly zh: "设置中的权限模式 {{mode}} 需在 /permission 里显式选择,本会话先以 default 启动";
907
- readonly en: "The configured permission mode {{mode}} needs an explicit choice in /permission; this session starts in default";
908
- };
909
- readonly 'claude-start-mode-env': {
910
- readonly zh: "权限模式由 DSH_TUI_CLAUDE_PERMISSION_MODE 指定:{{mode}}";
911
- readonly en: "Permission mode set by DSH_TUI_CLAUDE_PERMISSION_MODE: {{mode}}";
912
- };
913
- readonly 'claude-start-mode-env-ignored': {
914
- readonly zh: "已忽略 DSH_TUI_CLAUDE_PERMISSION_MODE={{mode}}(只接受 default/acceptEdits/plan/dontAsk/bypassPermissions)";
915
- readonly en: "Ignored DSH_TUI_CLAUDE_PERMISSION_MODE={{mode}} (accepts default/acceptEdits/plan/dontAsk/bypassPermissions)";
916
- };
917
- readonly 'claude-start-mode-bypass-not-carried': {
918
- readonly zh: "上次的「跳过权限」不会带到新会话,本会话照常审批;可用 /permission 重新开启";
919
- readonly en: "Bypass permissions from the last session is not carried into a new one; approvals are on. Turn it back on with /permission";
920
- };
921
- readonly 'claude-input-refused': {
922
- readonly zh: "Claude 拒绝了这条输入";
923
- readonly en: "Claude refused this input";
924
- };
925
- readonly 'claude-assistant-error': {
926
- readonly zh: "Claude 错误:{{error}}";
927
- readonly en: "Claude error: {{error}}";
928
- };
929
- readonly 'claude-api-retry': {
930
- readonly zh: "API 重试 {{attempt}}/{{max}}{{detail}}…";
931
- readonly en: "API retry {{attempt}}/{{max}}{{detail}}…";
932
- };
933
- readonly 'claude-api-retry-status': {
934
- readonly zh: " · HTTP {{status}}";
935
- readonly en: " · HTTP {{status}}";
936
- };
937
- readonly 'claude-notification-turn': {
938
- readonly zh: "后台任务完成,模型继续处理";
939
- readonly en: "A background task finished; the model continues";
940
- };
941
- readonly 'claude-model-fallback': {
942
- readonly zh: "{{original}} 拒绝了这次请求{{category}},已改用 {{model}} 重试(本会话之后都用它)";
943
- readonly en: "{{original}} declined this request{{category}}; retried on {{model}} (the session continues on it)";
944
- };
945
- readonly 'claude-model-fallback-local': {
946
- readonly zh: "一个子任务改由 {{model}} 回答({{original}} 拒绝了它),会话模型不变";
947
- readonly en: "A side task was answered by {{model}} ({{original}} declined it); the session model is unchanged";
948
- };
949
- readonly 'claude-model-refused': {
950
- readonly zh: "{{model}} 拒绝了这次请求{{category}},没有可用的回退模型";
951
- readonly en: "{{model}} declined this request{{category}} and no fallback model is available";
952
- };
953
- readonly 'claude-refusal-category-suffix': {
954
- readonly zh: "(类别:{{category}})";
955
- readonly en: " (category: {{category}})";
956
- };
957
- readonly 'claude-rate-limit-warning': {
958
- readonly zh: "订阅用量接近{{window}}上限({{percent}}%){{resets}}";
959
- readonly en: "Approaching the {{window}} usage limit ({{percent}}%){{resets}}";
960
- };
961
- readonly 'claude-rate-limit-rejected': {
962
- readonly zh: "已达到{{window}}用量上限{{resets}}";
963
- readonly en: "The {{window}} usage limit is reached{{resets}}";
964
- };
965
- readonly 'claude-rate-limit-resets': {
966
- readonly zh: ",{{time}}重置";
967
- readonly en: " — resets {{time}}";
968
- };
969
- readonly 'claude-rate-limit-in': {
970
- readonly zh: "{{duration}}后";
971
- readonly en: "in {{duration}}";
972
- };
973
- readonly 'claude-auth-status-error': {
974
- readonly zh: "Claude 认证出错:{{error}}";
975
- readonly en: "Claude authentication error: {{error}}";
976
- };
977
- readonly 'claude-memory-recalled': {
978
- readonly zh: "已回忆 {{count}} 条记忆";
979
- readonly en: {
980
- readonly one: "Recalled {{count}} memory";
981
- readonly other: "Recalled {{count}} memories";
982
- };
983
- };
984
- readonly 'claude-memory-synthesized': {
985
- readonly zh: "已从记忆中归纳相关上下文";
986
- readonly en: "Recalled a summary of relevant memories";
987
- };
988
- readonly 'claude-activity-thinking': {
989
- readonly zh: "思考中";
990
- readonly en: "Thinking";
991
- };
992
- readonly 'claude-activity-waiting': {
993
- readonly zh: "等待确认";
994
- readonly en: "Waiting for approval";
995
- };
996
- readonly 'claude-activity-done': {
997
- readonly zh: "完成";
998
- readonly en: "Done";
999
- };
1000
- readonly 'claude-activity-done-tools': {
1001
- readonly zh: "完成 · {{count}} 个工具";
1002
- readonly en: {
1003
- readonly one: "Done · 1 tool";
1004
- readonly other: "Done · {{count}} tools";
1005
- };
1006
- };
1007
- readonly 'elicit-skip': {
1008
- readonly zh: "跳过";
1009
- readonly en: "Skip";
1010
- };
1011
- readonly 'elicit-skip-desc': {
1012
- readonly zh: "这一项不填";
1013
- readonly en: "Leave this field empty";
1014
- };
1015
- readonly 'elicit-optional': {
1016
- readonly zh: "{{title}}(可选)";
1017
- readonly en: "{{title}} (optional)";
1018
- };
1019
- readonly 'elicit-yes': {
1020
- readonly zh: "是";
1021
- readonly en: "Yes";
1022
- };
1023
- readonly 'elicit-no': {
1024
- readonly zh: "否";
1025
- readonly en: "No";
1026
- };
1027
- readonly 'elicit-send': {
1028
- readonly zh: "发送";
1029
- readonly en: "Send";
1030
- };
1031
- readonly 'elicit-send-desc': {
1032
- readonly zh: "把这些回答交给 MCP 服务器";
1033
- readonly en: "Give these answers to the MCP server";
1034
- };
1035
- readonly 'elicit-decline': {
1036
- readonly zh: "拒绝";
1037
- readonly en: "Decline";
1038
- };
1039
- readonly 'elicit-decline-desc': {
1040
- readonly zh: "不提供,告诉服务器你拒绝了";
1041
- readonly en: "Provide nothing; tell the server you declined";
1042
- };
1043
- readonly 'elicit-confirm': {
1044
- readonly zh: "把回答发送给 MCP 服务器 {{server}}?";
1045
- readonly en: "Send your answers to the MCP server {{server}}?";
1046
- };
1047
- readonly 'elicit-invalid': {
1048
- readonly zh: "请重新填写:{{reason}}";
1049
- readonly en: "Please answer again: {{reason}}";
1050
- };
1051
- readonly 'elicit-invalid-required': {
1052
- readonly zh: "这一项必填";
1053
- readonly en: "this field is required";
1054
- };
1055
- readonly 'elicit-invalid-choice': {
1056
- readonly zh: "请选择一项";
1057
- readonly en: "pick one of the options";
1058
- };
1059
- readonly 'elicit-invalid-number': {
1060
- readonly zh: "需要一个数字";
1061
- readonly en: "a number is expected";
1062
- };
1063
- readonly 'elicit-invalid-integer': {
1064
- readonly zh: "需要一个整数";
1065
- readonly en: "a whole number is expected";
1066
- };
1067
- readonly 'elicit-invalid-min': {
1068
- readonly zh: "不能小于 {{min}}";
1069
- readonly en: "must be at least {{min}}";
1070
- };
1071
- readonly 'elicit-invalid-max': {
1072
- readonly zh: "不能大于 {{max}}";
1073
- readonly en: "must be at most {{max}}";
1074
- };
1075
- readonly 'elicit-invalid-min-length': {
1076
- readonly zh: "至少 {{n}} 个字符";
1077
- readonly en: "at least {{n}} characters";
1078
- };
1079
- readonly 'elicit-invalid-max-length': {
1080
- readonly zh: "至多 {{n}} 个字符";
1081
- readonly en: "at most {{n}} characters";
1082
- };
1083
- readonly 'elicit-invalid-min-items': {
1084
- readonly zh: "至少选 {{n}} 项";
1085
- readonly en: "pick at least {{n}}";
1086
- };
1087
- readonly 'elicit-invalid-max-items': {
1088
- readonly zh: "至多选 {{n}} 项";
1089
- readonly en: "pick at most {{n}}";
1090
- };
1091
- readonly 'elicit-invalid-email': {
1092
- readonly zh: "需要一个邮箱地址";
1093
- readonly en: "an email address is expected";
1094
- };
1095
- readonly 'elicit-invalid-uri': {
1096
- readonly zh: "需要一个完整的网址(URI)";
1097
- readonly en: "a full URI is expected";
1098
- };
1099
- readonly 'elicit-invalid-date': {
1100
- readonly zh: "需要日期(YYYY-MM-DD)";
1101
- readonly en: "a date is expected (YYYY-MM-DD)";
1102
- };
1103
- readonly 'elicit-invalid-date-time': {
1104
- readonly zh: "需要日期时间(ISO 8601)";
1105
- readonly en: "a date and time is expected (ISO 8601)";
1106
- };
1107
- readonly 'elicit-invalid-pattern': {
1108
- readonly zh: "格式不符合要求";
1109
- readonly en: "the format does not match";
1110
- };
1111
- readonly 'elicit-invalid-json': {
1112
- readonly zh: "需要 JSON 形式的值";
1113
- readonly en: "a JSON value is expected";
1114
- };
1115
- readonly 'elicit-kind-number': {
1116
- readonly zh: "数字";
1117
- readonly en: "number";
1118
- };
1119
- readonly 'elicit-kind-integer': {
1120
- readonly zh: "整数";
1121
- readonly en: "whole number";
1122
- };
1123
- readonly 'elicit-hint-range': {
1124
- readonly zh: "{{kind}},{{min}}–{{max}}";
1125
- readonly en: "{{kind}}, {{min}}–{{max}}";
1126
- };
1127
- readonly 'elicit-hint-min': {
1128
- readonly zh: "{{kind}},不小于 {{min}}";
1129
- readonly en: "{{kind}}, at least {{min}}";
1130
- };
1131
- readonly 'elicit-hint-max': {
1132
- readonly zh: "{{kind}},不大于 {{max}}";
1133
- readonly en: "{{kind}}, at most {{max}}";
1134
- };
1135
- readonly 'elicit-hint-json': {
1136
- readonly zh: "以 JSON 形式输入";
1137
- readonly en: "enter it as JSON";
1138
- };
1139
- readonly 'elicit-hint-format': {
1140
- readonly zh: "格式:{{format}}";
1141
- readonly en: "format: {{format}}";
1142
- };
1143
- readonly 'elicit-url-notice': {
1144
- readonly zh: "MCP 服务器 {{server}} 请你在浏览器中打开:{{url}}";
1145
- readonly en: "The MCP server {{server}} asks you to open: {{url}}";
1146
- };
1147
- readonly 'elicit-url-question': {
1148
- readonly zh: "MCP 服务器 {{server}} 需要你在浏览器中完成一步";
1149
- readonly en: "The MCP server {{server}} needs you to finish a step in the browser";
1150
- };
1151
- readonly 'elicit-url-detail': {
1152
- readonly zh: "打开下面的链接完成后选「继续」;完成时服务器也可能自动关闭这个面板";
1153
- readonly en: "Open the link below, then choose Continue; the server may also close this panel when it is done";
1154
- };
1155
- readonly 'elicit-url-accept': {
1156
- readonly zh: "继续(已打开链接)";
1157
- readonly en: "Continue (link opened)";
1158
- };
1159
- readonly 'elicit-url-accept-desc': {
1160
- readonly zh: "告诉服务器你同意并已打开链接";
1161
- readonly en: "Tell the server you agreed and opened the link";
1162
- };
1163
- readonly 'elicit-url-complete': {
1164
- readonly zh: "MCP 服务器 {{server}} 确认已完成";
1165
- readonly en: "The MCP server {{server}} confirmed it is done";
1166
- };
1167
- readonly 'elicit-url-missing': {
1168
- readonly zh: "MCP 服务器 {{server}} 请求打开链接却没有给出网址,已拒绝";
1169
- readonly en: "The MCP server {{server}} asked to open a link but gave none; declined";
1170
- };
1171
- readonly 'elicit-unsupported': {
1172
- readonly zh: "MCP 服务器 {{server}} 的请求({{mode}})无法在此显示,已拒绝";
1173
- readonly en: "The request of the MCP server {{server}} ({{mode}}) cannot be shown here; declined";
1174
- };
1175
- readonly 'claude-refusal-header': {
1176
- readonly zh: "模型拒绝";
1177
- readonly en: "Model declined";
1178
- };
1179
- readonly 'claude-refusal-question': {
1180
- readonly zh: "{{model}} 拒绝了这次请求,要换模型重试吗?";
1181
- readonly en: "{{model}} declined this request. Retry on another model?";
1182
- };
1183
- readonly 'claude-refusal-this-model': {
1184
- readonly zh: "当前模型";
1185
- readonly en: "The current model";
1186
- };
1187
- readonly 'claude-refusal-retry': {
1188
- readonly zh: "用 {{model}} 重试";
1189
- readonly en: "Retry on {{model}}";
1190
- };
1191
- readonly 'claude-refusal-retry-desc': {
1192
- readonly zh: "本次请求改由回退模型回答";
1193
- readonly en: "The fallback model answers this request";
1194
- };
1195
- readonly 'claude-refusal-cancel': {
1196
- readonly zh: "取消";
1197
- readonly en: "Cancel";
1198
- };
1199
- readonly 'claude-refusal-cancel-desc': {
1200
- readonly zh: "保留拒绝结果,结束本回合";
1201
- readonly en: "Keep the refusal and end the turn";
1202
- };
1203
- readonly 'claude-refusal-category': {
1204
- readonly zh: "拒绝类别:{{category}}";
1205
- readonly en: "Refusal category: {{category}}";
1206
- };
1207
- readonly 'claude-doctor-cli': {
1208
- readonly zh: "Claude CLI: {{path}}({{source}})· 版本 {{version}}";
1209
- readonly en: "Claude CLI: {{path}} ({{source}}) · version {{version}}";
1210
- };
1211
- readonly 'claude-doctor-bundled': {
1212
- readonly zh: "SDK 自带二进制";
1213
- readonly en: "SDK bundled binary";
1214
- };
1215
- readonly 'claude-doctor-sdk': {
1216
- readonly zh: "Claude Agent SDK {{version}}(已验证 {{validated}})";
1217
- readonly en: "Claude Agent SDK {{version}} (validated {{validated}})";
1218
- };
1219
- readonly 'claude-doctor-mode': {
1220
- readonly zh: "起始权限模式: {{mode}}(来源 {{source}})";
1221
- readonly en: "Start permission mode: {{mode}} (from {{source}})";
1222
- };
1223
- readonly 'codex-approve-accept': {
1224
- readonly zh: "是,执行";
1225
- readonly en: "Yes, proceed";
1226
- };
1227
- readonly 'codex-approve-decline': {
1228
- readonly zh: "否,跳过它继续";
1229
- readonly en: "No, continue without running it";
1230
- };
1231
- readonly 'codex-approve-cancel': {
1232
- readonly zh: "否,并告诉 Codex 怎么做";
1233
- readonly en: "No, and tell Codex what to do differently";
1234
- };
1235
- readonly 'codex-approve-decline-files': {
1236
- readonly zh: "否,不应用这些改动,继续";
1237
- readonly en: "No, continue without these changes";
1238
- };
1239
- readonly 'codex-approve-grant-turn': {
1240
- readonly zh: "是,本回合授予这些权限";
1241
- readonly en: "Yes, grant these permissions for this turn";
1242
- };
1243
- readonly 'codex-approve-deny-permissions': {
1244
- readonly zh: "否,不授予权限继续";
1245
- readonly en: "No, continue without permissions";
1246
- };
1247
- readonly 'codex-approve-stdin-name': {
1248
- readonly zh: "终端输入";
1249
- readonly en: "Terminal input";
1250
- };
1251
- readonly 'codex-approve-stdin': {
1252
- readonly zh: "向运行中的终端写入输入";
1253
- readonly en: "writes input to a running terminal";
1254
- };
1255
- readonly 'codex-approve-network-context': {
1256
- readonly zh: "访问网络主机 {{host}}({{protocol}})";
1257
- readonly en: "network access to {{host}} ({{protocol}})";
1258
- };
1259
- readonly 'codex-approve-extra-permissions': {
1260
- readonly zh: "额外权限:{{what}}";
1261
- readonly en: "extra permissions: {{what}}";
1262
- };
1263
- readonly 'codex-approve-cwd': {
1264
- readonly zh: "在 {{cwd}} 中运行";
1265
- readonly en: "runs in {{cwd}}";
1266
- };
1267
- readonly 'codex-approve-prefix': {
1268
- readonly zh: "是,以后以 `{{prefix}}` 开头的命令不再询问";
1269
- readonly en: "Yes, and don't ask again for commands that start with `{{prefix}}`";
1270
- };
1271
- readonly 'codex-approve-session-command': {
1272
- readonly zh: "是,本会话内此命令不再询问";
1273
- readonly en: "Yes, and don't ask again for this command in this session";
1274
- };
1275
- readonly 'codex-approve-session-files': {
1276
- readonly zh: "是,本会话内这些文件不再询问";
1277
- readonly en: "Yes, and don't ask again for these files";
1278
- };
1279
- readonly 'codex-approve-session-permissions': {
1280
- readonly zh: "是,本会话内都授予这些权限";
1281
- readonly en: "Yes, grant these permissions for this session";
1282
- };
1283
- readonly 'codex-approve-network': {
1284
- readonly zh: "是,以后允许访问 {{host}}";
1285
- readonly en: "Yes, and allow {{host}} in the future";
1286
- };
1287
- readonly 'codex-permissions-name': {
1288
- readonly zh: "额外权限";
1289
- readonly en: "Extra permissions";
1290
- };
1291
- readonly 'codex-perm-network': {
1292
- readonly zh: "联网";
1293
- readonly en: "network";
1294
- };
1295
- readonly 'codex-perm-read': {
1296
- readonly zh: "读取 {{paths}}";
1297
- readonly en: "read {{paths}}";
1298
- };
1299
- readonly 'codex-perm-write': {
1300
- readonly zh: "写入 {{paths}}";
1301
- readonly en: "write {{paths}}";
1302
- };
1303
- readonly 'codex-declined': {
1304
- readonly zh: "已拒绝";
1305
- readonly en: "Declined";
1306
- };
1307
- readonly 'codex-interrupted': {
1308
- readonly zh: "已中断";
1309
- readonly en: "Interrupted";
1310
- };
1311
- readonly 'codex-tool-failed': {
1312
- readonly zh: "执行失败";
1313
- readonly en: "Failed";
1314
- };
1315
- readonly 'codex-tool-unfinished': {
1316
- readonly zh: "回合结束时仍未完成";
1317
- readonly en: "Unfinished when the turn ended";
1318
- };
1319
- readonly 'codex-turn-failed': {
1320
- readonly zh: "回合失败";
1321
- readonly en: "The turn failed";
1322
- };
1323
- readonly 'codex-turn-start-failed': {
1324
- readonly zh: "Codex 没有接受这条消息:{{err}}";
1325
- readonly en: "Codex did not take this message: {{err}}";
1326
- };
1327
- readonly 'codex-steer-fallback': {
1328
- readonly zh: "当前回合无法插话,这条消息会在回合结束后发送";
1329
- readonly en: "The running turn cannot take this message now; it will be sent when the turn ends";
1330
- };
1331
- readonly 'codex-cancel-forced': {
1332
- readonly zh: "中断 15 秒未得到确认,已在本地结束本回合";
1333
- readonly en: "The interrupt was not confirmed within 15s; the turn was closed here";
1334
- };
1335
- readonly 'codex-session-closed': {
1336
- readonly zh: "Codex 会话已关闭";
1337
- readonly en: "The Codex session is closed";
1338
- };
1339
- readonly 'codex-retrying': {
1340
- readonly zh: "请求失败,Codex 正在重试:{{message}}";
1341
- readonly en: "The request failed; Codex is retrying: {{message}}";
1342
- };
1343
- readonly 'codex-rerouted': {
1344
- readonly zh: "模型已由 {{from}} 改为 {{to}}({{reason}})";
1345
- readonly en: "The model was rerouted from {{from}} to {{to}} ({{reason}})";
1346
- };
1347
- readonly 'codex-system-error': {
1348
- readonly zh: "Codex 报告该会话出现系统错误";
1349
- readonly en: "Codex reported a system error on this thread";
1350
- };
1351
- readonly 'codex-review-start': {
1352
- readonly zh: "开始代码审查:{{review}}";
1353
- readonly en: "Code review started: {{review}}";
1354
- };
1355
- readonly 'codex-auto-review-started': {
1356
- readonly zh: "自动审查中…";
1357
- readonly en: "Auto-review in progress…";
1358
- };
1359
- readonly 'codex-auto-review-approved': {
1360
- readonly zh: "自动审查:已批准";
1361
- readonly en: "Auto-review: approved";
1362
- };
1363
- readonly 'codex-auto-review-denied': {
1364
- readonly zh: "自动审查:已拒绝";
1365
- readonly en: "Auto-review: denied";
1366
- };
1367
- readonly 'codex-auto-review-ended': {
1368
- readonly zh: "自动审查已结束";
1369
- readonly en: "Auto-review ended";
1370
- };
1371
- readonly 'codex-strict-review': {
1372
- readonly zh: "本回合之后的命令需要先通过审查";
1373
- readonly en: "Further commands in this turn need a review first";
1374
- };
1375
- readonly 'codex-hook-started': {
1376
- readonly zh: "hook {{event}} 运行中…";
1377
- readonly en: "Hook {{event}} running…";
1378
- };
1379
- readonly 'codex-hook-done': {
1380
- readonly zh: "hook {{event}} 完成 {{duration}}";
1381
- readonly en: "Hook {{event}} finished {{duration}}";
1382
- };
1383
- readonly 'codex-hook-failed': {
1384
- readonly zh: "hook {{event}} 失败 {{duration}}";
1385
- readonly en: "Hook {{event}} failed {{duration}}";
1386
- };
1387
- readonly 'codex-mcp-failed': {
1388
- readonly zh: "MCP 服务器 {{name}} 启动失败:{{error}}";
1389
- readonly en: "The MCP server {{name}} failed to start: {{error}}";
1390
- };
1391
- readonly 'codex-thread-closed': {
1392
- readonly zh: "该会话已在别处关闭,仍可继续对话";
1393
- readonly en: "This thread was closed elsewhere; you can keep talking";
1394
- };
1395
- readonly 'codex-thread-archived': {
1396
- readonly zh: "该会话已在别处归档,仍可继续对话";
1397
- readonly en: "This thread was archived elsewhere; you can keep talking";
1398
- };
1399
- readonly 'codex-thread-deleted': {
1400
- readonly zh: "该会话已在别处删除";
1401
- readonly en: "This thread was deleted elsewhere";
1402
- };
1403
- readonly 'codex-rate-limit-reached': {
1404
- readonly zh: "已达到 Codex 用量上限({{kind}})";
1405
- readonly en: "The Codex usage limit is reached ({{kind}})";
1406
- };
1407
- readonly 'codex-hint-unauthorized': {
1408
- readonly zh: "Codex 凭据无效或已过期:在终端运行 codex login 重新登录";
1409
- readonly en: "The Codex credential is invalid or expired: sign in again with `codex login` in a terminal";
1410
- };
1411
- readonly 'codex-hint-context': {
1412
- readonly zh: "上下文已满:可以用 /compact 压缩后继续";
1413
- readonly en: "The context is full: run /compact and continue";
1414
- };
1415
- readonly 'codex-hint-limit': {
1416
- readonly zh: "已达到用量上限,稍后再试";
1417
- readonly en: "A usage limit is reached; try again later";
1418
- };
1419
- readonly 'codex-hint-sandbox': {
1420
- readonly zh: "沙箱出错:Linux 上请安装 bubblewrap(例如 apt install bubblewrap)";
1421
- readonly en: "Sandbox error: on Linux install bubblewrap (e.g. apt install bubblewrap)";
1422
- };
1423
- readonly 'codex-connection-lost': {
1424
- readonly zh: "Codex 进程退出,正在重连…";
1425
- readonly en: "The Codex process exited; reconnecting…";
1426
- };
1427
- readonly 'codex-connection-failed': {
1428
- readonly zh: "Codex 进程无法启动:{{err}}";
1429
- readonly en: "The Codex process cannot start: {{err}}";
1430
- };
1431
- readonly 'codex-connection-dead': {
1432
- readonly zh: "连接已断开且无法恢复,请重新打开会话";
1433
- readonly en: "The connection is gone for good; please reopen the session";
1434
- };
1435
- readonly 'codex-reconnected': {
1436
- readonly zh: "已重新连接 Codex";
1437
- readonly en: "Reconnected to Codex";
1438
- };
1439
- readonly 'codex-not-installed': {
1440
- readonly zh: "未找到 codex:npm i -g @openai/codex 或 brew install codex,或设置 CODEX_EXECUTABLE";
1441
- readonly en: "codex was not found: npm i -g @openai/codex or brew install codex, or set CODEX_EXECUTABLE";
1442
- };
1443
- readonly 'codex-too-old': {
1444
- readonly zh: "codex {{version}} 太旧(至少 {{min}}):请升级";
1445
- readonly en: "codex {{version}} is too old (needs {{min}}): please upgrade";
1446
- };
1447
- readonly 'codex-auth-missing-hint': {
1448
- readonly zh: "未检测到 Codex 凭据:启动后用 /login 登录,或设置 OPENAI_API_KEY";
1449
- readonly en: "No Codex credential found: sign in with /login after start, or set OPENAI_API_KEY";
1450
- };
1451
- readonly 'codex-start-failed': {
1452
- readonly zh: "Codex app-server 启动失败:{{err}}";
1453
- readonly en: "The Codex app-server failed to start: {{err}}";
1454
- };
1455
- readonly 'codex-open-failed': {
1456
- readonly zh: "无法打开 Codex 会话:{{err}}";
1457
- readonly en: "Could not open the Codex thread: {{err}}";
1458
- };
1459
- readonly 'codex-thread-busy': {
1460
- readonly zh: "Codex 会话 {{id}} 正被另一个 Codex 进程使用,先关闭那边再打开";
1461
- readonly en: "The Codex thread {{id}} is in use by another Codex process; close it there first";
1462
- };
1463
- readonly 'codex-resume-not-found': {
1464
- readonly zh: "找不到 Codex 会话 {{id}}({{err}})";
1465
- readonly en: "The Codex thread {{id}} was not found ({{err}})";
1466
- };
1467
- readonly 'codex-version-drift': {
1468
- readonly zh: "codex {{version}} 未经本版 dsh-tui 验证(已验证:{{validated}}),继续运行";
1469
- readonly en: "codex {{version}} is not validated with this dsh-tui (validated: {{validated}}); continuing";
1470
- };
1471
- readonly 'codex-doctor-cli': {
1472
- readonly zh: "Codex CLI: {{path}}({{source}})· 版本 {{version}}";
1473
- readonly en: "Codex CLI: {{path}} ({{source}}) · version {{version}}";
1474
- };
1475
- readonly 'codex-doctor-home': {
1476
- readonly zh: "Codex 主目录: {{home}}";
1477
- readonly en: "Codex home: {{home}}";
1478
- };
1479
- readonly 'codex-doctor-thread': {
1480
- readonly zh: "Codex 会话: {{id}} · provider {{provider}} · 模型 {{model}}";
1481
- readonly en: "Codex thread: {{id}} · provider {{provider}} · model {{model}}";
1482
- };
1483
- readonly 'codex-doctor-mode': {
1484
- readonly zh: "权限模式: {{mode}}";
1485
- readonly en: "Permission mode: {{mode}}";
1486
- };
1487
- readonly 'codex-doctor-bubblewrap': {
1488
- readonly zh: "未找到 bubblewrap:Codex 改用自带沙箱;建议用系统包管理器安装 bubblewrap";
1489
- readonly en: "bubblewrap was not found: Codex uses its bundled sandbox; installing bubblewrap from the system package manager is recommended";
1490
- };
1491
- readonly 'codex-mode-read-only': {
1492
- readonly zh: "只读";
1493
- readonly en: "Read Only";
1494
- };
1495
- readonly 'codex-mode-read-only-desc': {
1496
- readonly zh: "只读取文件;命令和修改需审批";
1497
- readonly en: "Read files; commands and changes require approval";
1498
- };
1499
- readonly 'codex-mode-auto': {
1500
- readonly zh: "默认";
1501
- readonly en: "Default";
1502
- };
1503
- readonly 'codex-mode-auto-desc': {
1504
- readonly zh: "可修改工作区;工作区外和网络操作需审批";
1505
- readonly en: "Edit the workspace; ask before outside-workspace or network access";
1506
- };
1507
- readonly 'codex-mode-full-access': {
1508
- readonly zh: "完全访问";
1509
- readonly en: "Full Access";
1510
- };
1511
- readonly 'codex-mode-full-access-desc': {
1512
- readonly zh: "关闭沙箱和审批,仅通过显式选择进入";
1513
- readonly en: "Disable sandbox and approvals; explicit selection only";
1514
- };
1515
- readonly 'codex-mode-plan': {
1516
- readonly zh: "计划";
1517
- readonly en: "Plan";
1518
- };
1519
- readonly 'codex-mode-plan-desc': {
1520
- readonly zh: "先调研和规划,保留当前权限档";
1521
- readonly en: "Research and plan, preserving the current permissions";
1522
- };
1523
- readonly 'codex-mode-invalid': {
1524
- readonly zh: "未知 Codex 模式:{{mode}}";
1525
- readonly en: "Unknown Codex mode: {{mode}}";
1526
- };
1527
- readonly 'codex-settings-deferred': {
1528
- readonly zh: "当前 Codex 版本不支持即时改设置,选择将在下一回合生效";
1529
- readonly en: "This Codex version cannot update idle settings; your choices apply on the next turn";
1530
- };
1531
- readonly 'codex-capability-unavailable': {
1532
- readonly zh: "当前 Codex 版本不支持 {{feature}},请升级";
1533
- readonly en: "This Codex version does not support {{feature}}; please upgrade";
1534
- };
1535
- readonly 'codex-effort-none': {
1536
- readonly zh: "无";
1537
- readonly en: "None";
1538
- };
1539
- readonly 'codex-effort-minimal': {
1540
- readonly zh: "极低";
1541
- readonly en: "Minimal";
1542
- };
1543
- readonly 'codex-effort-low': {
1544
- readonly zh: "低";
1545
- readonly en: "Low";
1546
- };
1547
- readonly 'codex-effort-medium': {
1548
- readonly zh: "中";
1549
- readonly en: "Medium";
1550
- };
1551
- readonly 'codex-effort-high': {
1552
- readonly zh: "高";
1553
- readonly en: "High";
1554
- };
1555
- readonly 'codex-effort-xhigh': {
1556
- readonly zh: "极高";
1557
- readonly en: "Extra high";
1558
- };
1559
- readonly 'codex-effort-ultra': {
1560
- readonly zh: "超高";
1561
- readonly en: "Ultra";
1562
- };
1563
- readonly 'codex-command-idle': {
1564
- readonly zh: "请先结束或中断当前回合";
1565
- readonly en: "Finish or interrupt the current turn first";
1566
- };
1567
- readonly 'codex-command-review': {
1568
- readonly zh: "审查未提交改动、分支、提交或自定义范围";
1569
- readonly en: "Review working changes, a branch, a commit, or custom instructions";
1570
- };
1571
- readonly 'codex-command-diff': {
1572
- readonly zh: "显示最近回合的文件差异";
1573
- readonly en: "Show the latest turn's file diff";
1574
- };
1575
- readonly 'codex-command-plan': {
1576
- readonly zh: "切换到 Plan 模式,可附带提示词";
1577
- readonly en: "Enter Plan mode, optionally with a prompt";
1578
- };
1579
- readonly 'codex-command-usage': {
1580
- readonly zh: "查看 Codex 额度和重置时间";
1581
- readonly en: "Show Codex usage limits and reset times";
1582
- };
1583
- readonly 'codex-diff-empty': {
1584
- readonly zh: "没有文件差异";
1585
- readonly en: "No file differences";
1586
- };
1587
- readonly 'codex-usage-window': {
1588
- readonly zh: "{{name}}:已用 {{used}}% · 重置 {{reset}}";
1589
- readonly en: "{{name}}: {{used}}% used · resets {{reset}}";
1590
- };
1591
- readonly 'codex-usage-credits': {
1592
- readonly zh: "额度余额 {{balance}} · 不限量:{{unlimited}}";
1593
- readonly en: "Credits {{balance}} · unlimited: {{unlimited}}";
1594
- };
1595
- readonly 'codex-usage-unavailable': {
1596
- readonly zh: "当前 provider 未提供额度信息";
1597
- readonly en: "The current provider supplies no usage-limit information";
1598
- };
1599
- readonly 'codex-yes': {
1600
- readonly zh: "是";
1601
- readonly en: "yes";
1602
- };
1603
- readonly 'codex-no': {
1604
- readonly zh: "否";
1605
- readonly en: "no";
1606
- };
1607
- readonly 'codex-question-auto-answered': {
1608
- readonly zh: "问卷等待超时,已按服务端设置选择默认答案";
1609
- readonly en: "The question timed out; the server's default answer was selected";
1610
- };
1611
- readonly 'codex-plan-implement': {
1612
- readonly zh: "要实施这个计划吗?";
1613
- readonly en: "Implement this plan?";
1614
- };
1615
- readonly 'codex-plan-yes': {
1616
- readonly zh: "是,实施这个计划";
1617
- readonly en: "Yes, implement this plan";
1618
- };
1619
- readonly 'codex-plan-clear': {
1620
- readonly zh: "是,清空上下文后实施";
1621
- readonly en: "Yes, clear context and implement";
1622
- };
1623
- readonly 'codex-plan-stay': {
1624
- readonly zh: "否,留在 Plan 模式";
1625
- readonly en: "No, stay in Plan mode";
1626
- };
1627
- readonly 'codex-plan-action-failed': {
1628
- readonly zh: "无法开始实施计划:{{error}}";
1629
- readonly en: "Could not start implementing the plan: {{error}}";
1630
- };
1631
- readonly 'codex-bwrap-warning': {
1632
- readonly zh: "未找到 bubblewrap,沙箱命令可能失败。请安装(如 apt install bubblewrap),或在 /permission 中明确选择完全访问";
1633
- readonly en: "bubblewrap was not found; sandboxed commands may fail. Install it (e.g. apt install bubblewrap), or explicitly select Full Access in /permission";
1634
- };
1635
- readonly 'codex-model-waiting': {
1636
- readonly zh: "等待模型响应…";
1637
- readonly en: "Waiting for the model…";
1638
- };
1639
- readonly 'codex-model-stalled': {
1640
- readonly zh: "模型长时间无响应,可按 Esc 中断";
1641
- readonly en: "The model has not responded for a long time; press Esc to interrupt";
1642
- };
1643
- readonly 'codex-working-command': {
1644
- readonly zh: "运行 {{command}}";
1645
- readonly en: "Running {{command}}";
1646
- };
1647
- readonly 'codex-working-files': {
1648
- readonly zh: "编辑 {{files}}";
1649
- readonly en: "Editing {{files}}";
1650
- };
1651
- readonly 'codex-working-subagents': {
1652
- readonly zh: "等待子代理";
1653
- readonly en: "Waiting for subagents";
1654
- };
1655
- readonly 'codex-working-thinking': {
1656
- readonly zh: "思考中…";
1657
- readonly en: "Thinking…";
1658
- };
1659
- readonly 'codex-channel-url-required': {
1660
- readonly zh: "渠道连接缺少 base URL,请用 /channel 配置";
1661
- readonly en: "The channel connection has no base URL; configure it with /channel";
1662
- };
1663
- readonly 'codex-channel-token-missing': {
1664
- readonly zh: "渠道 {{name}} 缺少可用令牌,请用 /channel 补充";
1665
- readonly en: "Channel {{name}} has no usable token; add one with /channel";
1666
- };
1667
- readonly 'codex-channel-store-unavailable': {
1668
- readonly zh: "宿主未提供渠道令牌库,无法保存令牌";
1669
- readonly en: "The host did not provide a channel token store; the token cannot be saved";
1670
- };
1671
- readonly 'codex-channel-token-write-failed': {
1672
- readonly zh: "渠道令牌保存失败,连接未更新";
1673
- readonly en: "The channel token could not be saved; the connection was not updated";
1674
- };
1675
- readonly 'codex-auth-login-needed': {
1676
- readonly zh: "Codex 需要凭据:用 /login 登录";
1677
- readonly en: "Codex needs credentials: sign in with /login";
1678
- };
1679
- readonly 'codex-auth-refresh-failed': {
1680
- readonly zh: "ChatGPT 订阅令牌刷新失败,已停止注入;用 /login 重新登录,或使用自己的 Codex 登录";
1681
- readonly en: "The ChatGPT subscription token refresh failed; injection stopped. Use /login again or your own Codex login";
1682
- };
1683
- readonly 'codex-auth-login-failed': {
1684
- readonly zh: "Codex 登录未完成,已停止托管令牌注入;请用 /login 重试";
1685
- readonly en: "Codex login did not complete; managed token injection stopped. Retry with /login";
1686
- };
1687
- readonly 'codex-auth-claims-missing': {
1688
- readonly zh: "内置 OAuth 令牌缺少 ChatGPT 账户信息,未注入;请用 /login 重新登录";
1689
- readonly en: "The built-in OAuth token has no ChatGPT account identity and was not injected; sign in again with /login";
1690
- };
1691
- readonly 'codex-auth-source-channel': {
1692
- readonly zh: "凭据来源:渠道 {{name}}";
1693
- readonly en: "Credential source: channel {{name}}";
1694
- };
1695
- readonly 'codex-auth-source-oauth': {
1696
- readonly zh: "凭据来源:dsh-auth ChatGPT 订阅";
1697
- readonly en: "Credential source: dsh-auth ChatGPT subscription";
1698
- };
1699
- readonly 'codex-auth-source-native': {
1700
- readonly zh: "凭据来源:Codex 自己的登录";
1701
- readonly en: "Credential source: Codex native login";
1702
- };
1703
- readonly 'codex-auth-source-api-key': {
1704
- readonly zh: "凭据来源:API key";
1705
- readonly en: "Credential source: API key";
1706
- };
1707
- readonly 'codex-auth-source-missing': {
1708
- readonly zh: "凭据来源:未登录";
1709
- readonly en: "Credential source: not signed in";
1710
- };
1711
- readonly 'codex-auth-source-unknown': {
1712
- readonly zh: "凭据来源:由 Codex 配置管理(无法确定)";
1713
- readonly en: "Credential source: managed by Codex configuration (unknown)";
1714
- };
1715
- readonly 'codex-auth-plan': {
1716
- readonly zh: "订阅:{{plan}}";
1717
- readonly en: "Subscription: {{plan}}";
1718
- };
1719
- readonly 'codex-auth-host': {
1720
- readonly zh: "Provider 主机:{{host}}";
1721
- readonly en: "Provider host: {{host}}";
1722
- };
1723
- readonly 'codex-auth-route-blocked': {
1724
- readonly zh: "当前路由不接受内置订阅令牌;请使用自己的 Codex 登录或 /channel 渠道";
1725
- readonly en: "This route does not accept built-in subscription tokens; use your own Codex login or /channel";
1726
- };
1727
- readonly 'codex-auth-channel-active': {
1728
- readonly zh: "当前使用渠道凭据;请在 /channel 管理连接,不改动 OpenAI 登录";
1729
- readonly en: "Channel credentials are active; manage the connection in /channel without changing OpenAI login";
1730
- };
1731
- readonly 'codex-auth-api-key-required': {
1732
- readonly zh: "请输入非空 API key";
1733
- readonly en: "Enter a non-empty API key";
1734
- };
1735
- readonly 'codex-login-choose': {
1736
- readonly zh: "选择 Codex 登录方式";
1737
- readonly en: "Choose a Codex sign-in method";
1738
- };
1739
- readonly 'codex-login-oauth': {
1740
- readonly zh: "内置 ChatGPT OAuth";
1741
- readonly en: "Built-in ChatGPT OAuth";
1742
- };
1743
- readonly 'codex-login-oauth-desc': {
1744
- readonly zh: "复用 dsh-auth 登录,只向第一方路由提供内存令牌";
1745
- readonly en: "Use dsh-auth; supply in-memory tokens only to first-party routes";
1746
- };
1747
- readonly 'codex-login-device': {
1748
- readonly zh: "Codex 设备码登录";
1749
- readonly en: "Codex device-code login";
1750
- };
1751
- readonly 'codex-login-device-desc': {
1752
- readonly zh: "在浏览器输入设备码,凭据由 Codex 保存";
1753
- readonly en: "Enter a device code in a browser; Codex stores the credential";
1754
- };
1755
- readonly 'codex-login-api-key': {
1756
- readonly zh: "API key";
1757
- readonly en: "API key";
1758
- };
1759
- readonly 'codex-login-api-key-prompt': {
1760
- readonly zh: "输入 OpenAI API key";
1761
- readonly en: "Enter an OpenAI API key";
1762
- };
1763
- readonly 'codex-login-api-key-storage': {
1764
- readonly zh: "此方式会把 API key 写入用户的 Codex 凭据存储";
1765
- readonly en: "This method writes the API key into your Codex credential store";
1766
- };
1767
- readonly 'codex-login-device-code': {
1768
- readonly zh: "在验证页面输入设备码:{{code}}";
1769
- readonly en: "Enter this device code on the verification page: {{code}}";
1770
- };
1771
- readonly 'codex-login-device-wait': {
1772
- readonly zh: "等待浏览器授权完成;可取消此次登录";
1773
- readonly en: "Waiting for browser authorization; you can cancel this login";
1774
- };
1775
- readonly 'codex-login-cancel': {
1776
- readonly zh: "取消此次登录";
1777
- readonly en: "Cancel this login";
1778
- };
1779
- readonly 'codex-login-success': {
1780
- readonly zh: "Codex 登录已完成";
1781
- readonly en: "Codex sign-in completed";
1782
- };
1783
- readonly 'codex-goal-usage-limited': {
1784
- readonly zh: "Codex 用量额度已达到上限";
1785
- readonly en: "The Codex usage limit was reached";
1786
- };
1787
- readonly 'codex-goal-budget-limited': {
1788
- readonly zh: "目标的 token 预算已用尽";
1789
- readonly en: "The goal token budget was exhausted";
1790
- };
1791
- readonly 'codex-goal-blocked': {
1792
- readonly zh: "Codex 目标暂时受阻";
1793
- readonly en: "The Codex goal is blocked";
1794
- };
1795
- readonly 'codex-tasks-unsupported': {
1796
- readonly zh: "此 Codex 不支持后台终端监控,任务能力已关闭";
1797
- readonly en: "This Codex does not support background terminal monitoring; task controls are unavailable";
1798
- };
1799
- readonly 'codex-terminal-ended': {
1800
- readonly zh: "终端已不在运行列表中;退出状态不可用";
1801
- readonly en: "The terminal is no longer running; exit status is unavailable";
1802
- };
1803
- readonly 'codex-terminal-stopped': {
1804
- readonly zh: "后台终端已停止";
1805
- readonly en: "The background terminal was stopped";
1806
- };
1807
- readonly 'codex-terminal-no-output': {
1808
- readonly zh: "此后台终端暂没有可读取的输出";
1809
- readonly en: "No readable output is available for this background terminal";
1810
- };
1811
- readonly 'codex-side-open-failed': {
1812
- readonly zh: "无法创建临时旁问会话";
1813
- readonly en: "Could not create the ephemeral side-question thread";
1814
- };
1815
- readonly 'codex-images-too-many': {
1816
- readonly zh: "Codex 一条消息最多接受 {{n}} 张图片";
1817
- readonly en: "Codex accepts at most {{n}} images per message";
1818
- };
1819
- readonly 'codex-image-type-refused': {
1820
- readonly zh: "图片 {{name}} 的格式 {{type}} 不受 Codex 支持";
1821
- readonly en: "Image {{name}} uses {{type}}, which Codex does not accept";
1822
- };
1823
- readonly 'codex-image-unreadable': {
1824
- readonly zh: "无法读取图片 {{name}}";
1825
- readonly en: "Image {{name}} could not be read";
1826
- };
1827
- readonly 'codex-image-too-large': {
1828
- readonly zh: "图片 {{name}} 超过 Codex 的 {{mb}} MiB 限制";
1829
- readonly en: "Image {{name}} exceeds the Codex {{mb}} MiB limit";
1830
- };
1831
- readonly 'codex-images-too-large': {
1832
- readonly zh: "本条消息的图片总大小超过 {{mb}} MiB";
1833
- readonly en: "The message images exceed {{mb}} MiB in total";
1834
- };
1835
- readonly 'codex-image-dimensions-refused': {
1836
- readonly zh: "图片 {{name}} 超过 {{px}} 像素限制,请缩小后重试";
1837
- readonly en: "Image {{name}} exceeds the {{px}} pixel limit; resize it and retry";
1838
- };
1839
- readonly 'codex-history-fetch-failed': {
1840
- readonly zh: "Codex 更早历史连续读取失败,暂时停止预取;可重新打开会话后重试";
1841
- readonly en: "Earlier Codex history could not be read after three attempts; reopen the session to retry";
1842
- };
1843
- readonly 'codex-preview-image': {
1844
- readonly zh: "[图片]";
1845
- readonly en: "[Image]";
1846
- };
1847
- readonly 'codex-archive-busy': {
1848
- readonly zh: "该 Codex 会话由活动中的内部任务使用,暂时无法归档";
1849
- readonly en: "This Codex thread is owned by an active internal worker and cannot be archived yet";
1850
- };
1851
- readonly 'codex-orphan-request': {
1852
- readonly zh: "无法确定 Codex 子代理请求所属会话,已取消该请求";
1853
- readonly en: "Could not find the session owning a Codex subagent request; the request was cancelled";
1854
- };
1855
- readonly 'codex-channel-url-invalid': {
1856
- readonly zh: "渠道 URL 只接受 HTTPS(HTTP 仅限 localhost/127.0.0.1),不能含账号密码、查询串、片段或疑似密钥路径";
1857
- readonly en: "A channel URL must use HTTPS (HTTP only on localhost/127.0.0.1), without userinfo, query, fragment, or key-like path segments";
1858
- };
1859
- readonly 'codex-channel-id-invalid': {
1860
- readonly zh: "渠道 ID 只能含字母、数字、下划线和连字符";
1861
- readonly en: "A channel ID may only contain letters, digits, underscores and hyphens";
1862
- };
1863
- readonly 'codex-channel-wire-api-invalid': {
1864
- readonly zh: "Codex 渠道仅支持 Responses API";
1865
- readonly en: "Codex channels only support the Responses API";
1866
- };
1867
- readonly 'codex-channel-env-invalid': {
1868
- readonly zh: "渠道 env 只能存非凭据变量;令牌请填入令牌输入框";
1869
- readonly en: "Channel env may only hold non-credential variables; use the token input for credentials";
1870
- };
1871
- readonly 'codex-anchor-missing': {
1872
- readonly zh: "找不到这条消息的原生回合,无法 fork 或回退";
1873
- readonly en: "The native turn for this message is unavailable; it cannot be forked or rewound";
1874
- };
1875
- readonly 'codex-rewind-files-unsupported': {
1876
- readonly zh: "Codex 仅支持对话回退,不恢复工作区文件";
1877
- readonly en: "Codex supports conversation rewind only; workspace files are not restored";
1878
- };
1879
- readonly 'codex-rewind-load-older': {
1880
- readonly zh: "请先加载更早的消息,再回退到这一回合";
1881
- readonly en: "Load earlier messages before rewinding to this turn";
1882
- };
1883
- readonly 'codex-goals-unsupported': {
1884
- readonly zh: "此 Codex 不支持目标管理,目标能力已关闭";
1885
- readonly en: "This Codex does not support goal management; goal controls are unavailable";
1886
- };
1887
- readonly 'codex-subagent-unavailable': {
1888
- readonly zh: "无法读取此 Codex 子代理的历史";
1889
- readonly en: "This Codex subagent history is unavailable";
1890
- };
1891
- readonly 'codex-reconnect-incomplete': {
1892
- readonly zh: "Codex 恢复缺口超过读取预算或游标失效,请重新打开会话";
1893
- readonly en: "Codex recovery exceeded its history budget or could not reach a known turn; reopen the session";
1894
- };
1895
557
  readonly 'cmd-unavailable-backend': {
1896
558
  readonly zh: "/{{cmd}} 在 {{backend}} 内核下不可用";
1897
559
  readonly en: "/{{cmd}} is not available on the {{backend}} kernel";
@@ -1964,10 +626,6 @@ declare const dict: {
1964
626
  readonly zh: "上下文窗口: {{window}} tokens";
1965
627
  readonly en: "Context window: {{window}} tokens";
1966
628
  };
1967
- readonly 'doctor-unknown': {
1968
- readonly zh: "未知";
1969
- readonly en: "unknown";
1970
- };
1971
629
  readonly 'doctor-session': {
1972
630
  readonly zh: "会话: {{id}}";
1973
631
  readonly en: "Session: {{id}}";
@@ -2048,6 +706,10 @@ declare const dict: {
2048
706
  readonly zh: "{{kind}} 任务";
2049
707
  readonly en: "{{kind}} task";
2050
708
  };
709
+ readonly 'task-complete-notification': {
710
+ readonly zh: "dsh-TUI · 任务已完成";
711
+ readonly en: "dsh-TUI · Task complete";
712
+ };
2051
713
  readonly 'subagent-background': {
2052
714
  readonly zh: "后台";
2053
715
  readonly en: "background";
@@ -2092,10 +754,6 @@ declare const dict: {
2092
754
  readonly zh: "无法读取该会话日志 · {{err}}";
2093
755
  readonly en: "Could not read that session log · {{err}}";
2094
756
  };
2095
- readonly 'rewind-first-message': {
2096
- readonly zh: "不能回退到第一条消息之前";
2097
- readonly en: "Cannot rewind past the very first message";
2098
- };
2099
757
  readonly 'rewind-noop': {
2100
758
  readonly zh: "该点之后没有可回退的内容";
2101
759
  readonly en: "Nothing to rewind past this point";
@@ -2136,10 +794,6 @@ declare const dict: {
2136
794
  readonly zh: "仅恢复文件(会话不变)";
2137
795
  readonly en: "Restore files only (conversation unchanged)";
2138
796
  };
2139
- readonly 'rename-failed': {
2140
- readonly zh: "重命名失败 · {{err}}";
2141
- readonly en: "Rename failed · {{err}}";
2142
- };
2143
797
  readonly 'session-archive-failed': {
2144
798
  readonly zh: "归档会话失败 · {{err}}";
2145
799
  readonly en: "Archiving the session failed · {{err}}";
@@ -2180,6 +834,10 @@ declare const dict: {
2180
834
  readonly zh: "已分叉({{id}})——仍在原会话中\n新进程进入分叉:{{command}}";
2181
835
  readonly en: "Forked ({{id}}) — still in the original session\nEnter the fork in a new process: {{command}}";
2182
836
  };
837
+ readonly 'fork-done-unstored': {
838
+ readonly zh: "已分叉({{id}})——仍在原会话中\n源会话还没有内容,分叉副本没有日志可恢复";
839
+ readonly en: "Forked ({{id}}) — still in the original session\nThe source session has no content yet, so the fork has no log to resume";
840
+ };
2183
841
  readonly 'tree-title': {
2184
842
  readonly zh: "会话树";
2185
843
  readonly en: "Session tree";
@@ -2408,6 +1066,34 @@ declare const dict: {
2408
1066
  readonly zh: "新建会话失败 · {{err}}";
2409
1067
  readonly en: "New session failed · {{err}}";
2410
1068
  };
1069
+ readonly 'startup-not-ready': {
1070
+ readonly zh: "{{backend}} 还在启动——就绪后按 Enter 发送";
1071
+ readonly en: "{{backend}} is still starting — press Enter to send once it is ready";
1072
+ };
1073
+ readonly 'startup-open-failed': {
1074
+ readonly zh: "{{backend}} 会话没能打开:{{err}}";
1075
+ readonly en: "{{backend}} session failed to open: {{err}}";
1076
+ };
1077
+ readonly 'startup-open-failed-hint': {
1078
+ readonly zh: "/new 重试 · /kernel 切换内核 · /quit 退出";
1079
+ readonly en: "/new to retry · /kernel to switch kernel · /quit to exit";
1080
+ };
1081
+ readonly 'startup-compose-failed-hint': {
1082
+ readonly zh: "DSH 没能启动 · /kernel 切换内核 · /quit 退出";
1083
+ readonly en: "DSH did not start · /kernel to switch kernel · /quit to exit";
1084
+ };
1085
+ readonly 'startup-compose-failed-hint-log': {
1086
+ readonly zh: "启动日志:{{path}} · /kernel 切换内核 · /quit 退出";
1087
+ readonly en: "Startup log: {{path}} · /kernel to switch kernel · /quit to exit";
1088
+ };
1089
+ readonly 'status-starting': {
1090
+ readonly zh: "正在启动 {{backend}}…";
1091
+ readonly en: "Starting {{backend}}…";
1092
+ };
1093
+ readonly 'host-dsh-unavailable': {
1094
+ readonly zh: "没有用上已安装的 dsh:{{reason}}";
1095
+ readonly en: "Not using the installed dsh: {{reason}}";
1096
+ };
2411
1097
  readonly 'resume-raced': {
2412
1098
  readonly zh: "会话打开期间当前会话开始了新的回合,已取消恢复;该回合在当前会话中继续";
2413
1099
  readonly en: "The current session started a turn while the other one was opening — the resume was cancelled; the turn continues here";
@@ -2424,22 +1110,14 @@ declare const dict: {
2424
1110
  readonly zh: "回合运行中,无法切换模型";
2425
1111
  readonly en: "Cannot switch models while a turn is running";
2426
1112
  };
2427
- readonly 'model-switch-unavailable': {
2428
- readonly zh: "模型切换不可用——会话服务未加载";
2429
- readonly en: "Model switch unavailable — session services not loaded";
2430
- };
2431
- readonly 'model-switch-fork-failed': {
2432
- readonly zh: "无法切换模型 · {{err}}";
2433
- readonly en: "Cannot switch models · {{err}}";
1113
+ readonly 'model-switch-legacy-unavailable': {
1114
+ readonly zh: "同会话切换模型需要 DSH >= 0.1.2-alpha.3,请先升级 DSH";
1115
+ readonly en: "Switching models within a session requires DSH >= 0.1.2-alpha.3; upgrade DSH first";
2434
1116
  };
2435
1117
  readonly 'model-switch-failed': {
2436
1118
  readonly zh: "模型切换失败 · {{err}}";
2437
1119
  readonly en: "Model switch failed · {{err}}";
2438
1120
  };
2439
- readonly 'model-switch-attach-failed': {
2440
- readonly zh: "模型已切换,但工作区挂载失败 · {{err}}";
2441
- readonly en: "Model switched, but workspace attachment failed · {{err}}";
2442
- };
2443
1121
  readonly 'model-usage': {
2444
1122
  readonly zh: "用法:/model <provider/model>(如 deepseek/deepseek-flash)";
2445
1123
  readonly en: "Usage: /model <provider/model> (e.g. deepseek/deepseek-flash)";
@@ -3679,8 +2357,8 @@ declare const dict: {
3679
2357
  readonly en: "btw";
3680
2358
  };
3681
2359
  readonly 'btw-thread-empty': {
3682
- readonly zh: "还没有侧问。输入 /btw <问题>,或在下方直接追问。";
3683
- readonly en: "No side questions yet. Type /btw <question>, or ask a follow-up below.";
2360
+ readonly zh: "还没有侧问。输入 /btw <问题>,或点击下方输入框开始提问。";
2361
+ readonly en: "No side questions yet. Type /btw <question>, or click the input below to ask.";
3684
2362
  };
3685
2363
  readonly 'btw-thread-new': {
3686
2364
  readonly zh: "新话题";
@@ -3702,6 +2380,18 @@ declare const dict: {
3702
2380
  readonly zh: "输入追问…(Enter 发送 · Esc 回到对话 · Tab 切列表)";
3703
2381
  readonly en: "Type a follow-up… (Enter send · Esc back to chat · Tab list)";
3704
2382
  };
2383
+ readonly 'btw-input-placeholder': {
2384
+ readonly zh: "点击或 Enter 提问";
2385
+ readonly en: "Click or press Enter to ask";
2386
+ };
2387
+ readonly 'btw-input-hint-edit': {
2388
+ readonly zh: "Enter 发送 · Esc";
2389
+ readonly en: "Enter send · Esc";
2390
+ };
2391
+ readonly 'btw-empty-lines': {
2392
+ readonly zh: "旁路问答不打断主线:答案只留在这里,不进主聊天与会话记录。";
2393
+ readonly en: "Side questions never derail the main line: answers stay here, out of the main chat and session log.";
2394
+ };
3705
2395
  readonly 'btw-thread-busy': {
3706
2396
  readonly zh: "上一个侧问还在回答,等它结束再追问";
3707
2397
  readonly en: "Still answering the last side question; ask again once it finishes";
@@ -3718,10 +2408,6 @@ declare const dict: {
3718
2408
  readonly zh: "有新回答";
3719
2409
  readonly en: "New answer";
3720
2410
  };
3721
- readonly 'btw-thread-send-to-chat': {
3722
- readonly zh: "发送到聊天";
3723
- readonly en: "Send to chat";
3724
- };
3725
2411
  readonly 'btw-thread-answer-attached': {
3726
2412
  readonly zh: "答案已附加到下一次主聊天提交";
3727
2413
  readonly en: "Answer attached to your next main chat submission";
@@ -3731,8 +2417,12 @@ declare const dict: {
3731
2417
  readonly en: "Answer exceeded the attach limit and was truncated";
3732
2418
  };
3733
2419
  readonly 'btw-fullscreen-title': {
3734
- readonly zh: "btw 侧问线程";
3735
- readonly en: "btw side thread";
2420
+ readonly zh: "侧问线程";
2421
+ readonly en: "Side thread";
2422
+ };
2423
+ readonly 'btw-scene-hints': {
2424
+ readonly zh: "Enter 追问 · ↑/↓ 滚动 · n 新话题 · s 送聊天 · c 复制 · Esc 返回";
2425
+ readonly en: "Enter ask · ↑/↓ scroll · n new · s to chat · c copy · Esc back";
3736
2426
  };
3737
2427
  readonly 'btw-panel-unavailable': {
3738
2428
  readonly zh: "btw 面板未启用(/settings → dsh-tui.sidePanel.panels)";
@@ -3962,10 +2652,6 @@ declare const dict: {
3962
2652
  readonly zh: "推理强度 → {{name}}";
3963
2653
  readonly en: "Reasoning effort → {{name}}";
3964
2654
  };
3965
- readonly 'effort-invalid': {
3966
- readonly zh: "未知推理等级 {{id}}(当前模型可选:{{ids}})";
3967
- readonly en: "Unknown reasoning effort {{id}} (this model offers: {{ids}})";
3968
- };
3969
2655
  readonly 'effort-current': {
3970
2656
  readonly zh: "当前推理强度 {{name}}";
3971
2657
  readonly en: "Current reasoning effort {{name}}";
@@ -4022,6 +2708,10 @@ declare const dict: {
4022
2708
  readonly zh: "切换权限预设(沙箱模式 + 审批策略)";
4023
2709
  readonly en: "Switch the permission preset (sandbox mode + approval policy)";
4024
2710
  };
2711
+ readonly 'upstream-retry-enabled': {
2712
+ readonly zh: "已为当前渠道 {{routes}} 启用上游断链自动重试(最多重试 5 次;cordis.yml upstreamRetry: false 可关闭)";
2713
+ readonly en: "Upstream auto-retry enabled for {{routes}} (the route in use) — up to 5 retries per request (opt out with upstreamRetry: false in cordis.yml)";
2714
+ };
4025
2715
  readonly 'logo-tagline': {
4026
2716
  readonly zh: "探索未至之境!";
4027
2717
  readonly en: "Explore the uncharted!";
@@ -4353,10 +3043,6 @@ declare const dict: {
4353
3043
  readonly zh: "信号 {{name}}";
4354
3044
  readonly en: "signal {{name}}";
4355
3045
  };
4356
- readonly 'tool-name-bash': {
4357
- readonly zh: "Bash";
4358
- readonly en: "Bash";
4359
- };
4360
3046
  readonly 'tool-name-powershell': {
4361
3047
  readonly zh: "PowerShell";
4362
3048
  readonly en: "PowerShell";
@@ -4377,10 +3063,6 @@ declare const dict: {
4377
3063
  readonly zh: "写入";
4378
3064
  readonly en: "Write";
4379
3065
  };
4380
- readonly 'tool-name-edit': {
4381
- readonly zh: "编辑";
4382
- readonly en: "Edit";
4383
- };
4384
3066
  readonly 'tool-name-todo_write': {
4385
3067
  readonly zh: "待办清单";
4386
3068
  readonly en: "TodoWrite";
@@ -4596,6 +3278,10 @@ declare const dict: {
4596
3278
  readonly zh: "全屏设置已保存,重启 dsh-tui 后生效";
4597
3279
  readonly en: "Fullscreen preference saved — restart dsh-tui to apply";
4598
3280
  };
3281
+ readonly 'settings-launchpad-restart': {
3282
+ readonly zh: "启动页设置已保存,重启 dsh-tui 后生效";
3283
+ readonly en: "Launchpad preference saved — restart dsh-tui to apply";
3284
+ };
4599
3285
  readonly 'settings-terminal-images-restart': {
4600
3286
  readonly zh: "图片预览设置已保存,使用 /restart 重启 TUI 后生效";
4601
3287
  readonly en: "Image preview preference saved — use /restart to apply";
@@ -4840,6 +3526,14 @@ declare const dict: {
4840
3526
  readonly zh: "重启生效";
4841
3527
  readonly en: "applies on restart";
4842
3528
  };
3529
+ readonly 'settings-badge-unreadable': {
3530
+ readonly zh: "设置文件无法读取——已回退默认;保存前会先备份原文件";
3531
+ readonly en: "settings file unreadable — defaults shown; saving backs up the original first";
3532
+ };
3533
+ readonly 'settings-badge-recovered': {
3534
+ readonly zh: "损坏的设置文件已备份到 {{backup}}";
3535
+ readonly en: "the broken settings file was backed up to {{backup}}";
3536
+ };
4843
3537
  readonly 'settings-badge-dirty': {
4844
3538
  readonly zh: "未保存";
4845
3539
  readonly en: "unsaved";
@@ -5100,17 +3794,49 @@ declare const dict: {
5100
3794
  readonly zh: "最近使用";
5101
3795
  readonly en: "Recently used";
5102
3796
  };
5103
- readonly 'picker-group-count': {
5104
- readonly zh: "{{count}} 个模型";
5105
- readonly en: "{{count}} models";
3797
+ readonly 'hint-model-provider': {
3798
+ readonly zh: "**Tab** / **Shift+Tab** 提供商";
3799
+ readonly en: "**Tab** / **Shift+Tab** providers";
3800
+ };
3801
+ readonly 'hint-model-navigation': {
3802
+ readonly zh: "**↑/↓** 模型";
3803
+ readonly en: "**↑/↓** model";
3804
+ };
3805
+ readonly 'hint-model-effort': {
3806
+ readonly zh: "**←/→** 调整";
3807
+ readonly en: "**←/→** adjust";
3808
+ };
3809
+ readonly 'hint-model-select': {
3810
+ readonly zh: "**Enter** 选择";
3811
+ readonly en: "**Enter** select";
3812
+ };
3813
+ readonly 'hint-model-cancel': {
3814
+ readonly zh: "**Esc** 取消";
3815
+ readonly en: "**Esc** cancel";
3816
+ };
3817
+ readonly 'picker-recents-empty': {
3818
+ readonly zh: "暂无最近使用的模型,按 Tab 查看提供商";
3819
+ readonly en: "No recent models; press Tab to browse providers";
3820
+ };
3821
+ readonly 'picker-models-empty': {
3822
+ readonly zh: "暂无可用模型";
3823
+ readonly en: "No models available";
5106
3824
  };
5107
- readonly 'hint-model-groups': {
5108
- readonly zh: "**Enter** 查看模型 · Esc 退出";
5109
- readonly en: "**Enter** to view models · Esc to exit";
3825
+ readonly 'picker-effort-loading': {
3826
+ readonly zh: "正在加载…";
3827
+ readonly en: "Loading…";
5110
3828
  };
5111
- readonly 'hint-model-back': {
5112
- readonly zh: "**Enter** 切换模型 · Esc/⌫ 返回上级";
5113
- readonly en: "**Enter** to switch · Esc/⌫ to go back";
3829
+ readonly 'picker-effort-error': {
3830
+ readonly zh: "读取失败";
3831
+ readonly en: "Failed to load";
3832
+ };
3833
+ readonly 'picker-effort-unavailable': {
3834
+ readonly zh: "不支持";
3835
+ readonly en: "Unavailable";
3836
+ };
3837
+ readonly 'picker-effort-default': {
3838
+ readonly zh: "默认";
3839
+ readonly en: "Default";
5114
3840
  };
5115
3841
  readonly 'picker-title-skills': {
5116
3842
  readonly zh: "技能";
@@ -5184,9 +3910,9 @@ declare const dict: {
5184
3910
  readonly zh: "正在加载模型";
5185
3911
  readonly en: "Loading models";
5186
3912
  };
5187
- readonly 'model-loading-subtitle': {
5188
- readonly zh: "正在查询 provider…";
5189
- readonly en: "Querying the provider…";
3913
+ readonly 'model-load-failed': {
3914
+ readonly zh: "模型列表加载失败";
3915
+ readonly en: "Failed to load the model list";
5190
3916
  };
5191
3917
  readonly 'model-switching': {
5192
3918
  readonly zh: "正在切换模型到 {{name}}…";
@@ -5308,12 +4034,12 @@ declare const dict: {
5308
4034
  readonly en: "Effect ledger ({{file}}), last 5 records:";
5309
4035
  };
5310
4036
  readonly 'plugins-unknown-subcommand': {
5311
- readonly zh: "未知子命令:{{sub}}(支持:check <路径>)";
5312
- readonly en: "Unknown subcommand: {{sub}} (supported: check <path>)";
4037
+ readonly zh: "未知子命令:{{sub}}(支持:list / check <路径> / info <spec> / registries)";
4038
+ readonly en: "Unknown subcommand: {{sub}} (supported: list / check <path> / info <spec> / registries)";
5313
4039
  };
5314
4040
  readonly 'plugins-check-usage': {
5315
- readonly zh: "用法:/plugins check <dsh-plugin.json 路径>";
5316
- readonly en: "Usage: /plugins check <path-to-dsh-plugin.json>";
4041
+ readonly zh: "用法:/plugin check <dsh-plugin.json 路径>";
4042
+ readonly en: "Usage: /plugin check <path-to-dsh-plugin.json>";
5317
4043
  };
5318
4044
  readonly 'plugins-check-not-found': {
5319
4045
  readonly zh: "文件不存在:{{path}}";
@@ -5355,6 +4081,142 @@ declare const dict: {
5355
4081
  readonly zh: "当前没有 live Host Descriptor;只做静态 manifest 校验,不进行协议支持声明/协商。";
5356
4082
  readonly en: "No live Host Descriptor is available; only static manifest validation was performed, no protocol support declaration/negotiation.";
5357
4083
  };
4084
+ readonly 'plugins-service-unavailable': {
4085
+ readonly zh: "当前内核没有 profile 插件服务(ctx.pluginManager):bundle/行列表不可用。装/卸/启用请从命令行运行 `dsh plugin --profile dsh-tui …`,或以 `dsh --profile dsh-tui` 启动本应用。";
4086
+ readonly en: "This kernel provides no profile plugin service (ctx.pluginManager): the bundle/row list is unavailable. Install, remove, or enable from the CLI with `dsh plugin --profile dsh-tui …`, or start this app through `dsh --profile dsh-tui`.";
4087
+ };
4088
+ readonly 'plugins-service-error': {
4089
+ readonly zh: "插件服务调用失败:{{err}}(上面的诊断部分照常显示。重试一次;仍失败请用 `dsh plugin --profile dsh-tui` 查看 CLI 侧的报错。)";
4090
+ readonly en: "The plugin service call failed: {{err}} (the diagnostics above are unaffected. Retry once; if it keeps failing, read the CLI-side error with `dsh plugin --profile dsh-tui`.)";
4091
+ };
4092
+ readonly 'plugins-list-header': {
4093
+ readonly zh: "你装的额外插件({{count}}):";
4094
+ readonly en: "Plugins you added ({{count}}):";
4095
+ };
4096
+ readonly 'plugins-list-empty': {
4097
+ readonly zh: "本 profile 没有额外插件:只有安装自带与 dsh-tui 自身。装好后用 /plugin list 复查。";
4098
+ readonly en: "No extra plugins in this profile: only the installation-supplied bundles and dsh-tui itself. Run /plugin list again after installing one.";
4099
+ };
4100
+ readonly 'plugins-list-hint': {
4101
+ readonly zh: "详情:/plugin info <名字>;安装源:/plugin registries;完整诊断:无参 /plugin。";
4102
+ readonly en: "Details: /plugin info <name>; registries: /plugin registries; full diagnostics: bare /plugin.";
4103
+ };
4104
+ readonly 'plugins-bundles-header': {
4105
+ readonly zh: "已装 bundle(数据来自 profile 插件服务):";
4106
+ readonly en: "Installed bundles (from the profile plugin service):";
4107
+ };
4108
+ readonly 'plugins-bundles-official': {
4109
+ readonly zh: "安装自带";
4110
+ readonly en: "Official (installation-supplied)";
4111
+ };
4112
+ readonly 'plugins-bundles-installed': {
4113
+ readonly zh: "profile 依赖";
4114
+ readonly en: "Profile dependencies";
4115
+ };
4116
+ readonly 'plugins-bundles-empty': {
4117
+ readonly zh: "(这个 profile 里还没有 bundle)";
4118
+ readonly en: "(no bundles in this profile yet)";
4119
+ };
4120
+ readonly 'plugins-bundle-on': {
4121
+ readonly zh: "已启用";
4122
+ readonly en: "on";
4123
+ };
4124
+ readonly 'plugins-bundle-off': {
4125
+ readonly zh: "未启用";
4126
+ readonly en: "off";
4127
+ };
4128
+ readonly 'plugins-bundle-kept': {
4129
+ readonly zh: "不可卸载";
4130
+ readonly en: "not removable";
4131
+ };
4132
+ readonly 'plugins-bundle-locked': {
4133
+ readonly zh: "不可管理({{reason}})";
4134
+ readonly en: "locked ({{reason}})";
4135
+ };
4136
+ readonly 'plugins-bundle-problem': {
4137
+ readonly zh: "问题:{{code}}";
4138
+ readonly en: "problem: {{code}}";
4139
+ };
4140
+ readonly 'plugins-bundle-rows': {
4141
+ readonly zh: "行 {{rows}} / 覆盖 {{overrides}}";
4142
+ readonly en: "rows {{rows}} / overrides {{overrides}}";
4143
+ };
4144
+ readonly 'plugins-rows-header': {
4145
+ readonly zh: "没有 patch 行可管理的 loader 条目:";
4146
+ readonly en: "Loader entries no patch row can address:";
4147
+ };
4148
+ readonly 'plugins-tag-undeclared': {
4149
+ readonly zh: "未声明 TUI 贡献";
4150
+ readonly en: "no TUI contribution declared";
4151
+ };
4152
+ readonly 'plugins-tag-undeclared-hint': {
4153
+ readonly zh: "「未声明 TUI 贡献」= 该包没有包根 dsh-plugin.json(@dsh-std/manifest 0.15 形状):它不会作为后端或贡献出现,运行时既不拒绝也不报错。声明写法见 tui-profile/docs/plugin-admission-and-development.md。";
4154
+ readonly en: "“no TUI contribution declared” = the package ships no package-root dsh-plugin.json (@dsh-std/manifest 0.15): it will not appear as a backend or contribution, and the runtime neither refuses it nor reports an error. See tui-profile/docs/plugin-admission-and-development.md for how to declare one.";
4155
+ };
4156
+ readonly 'plugins-tag-invalid': {
4157
+ readonly zh: "声明无法判定:{{err}}";
4158
+ readonly en: "declaration undecidable: {{err}}";
4159
+ };
4160
+ readonly 'plugins-tag-declared': {
4161
+ readonly zh: "TUI 贡献:{{state}}";
4162
+ readonly en: "TUI contribution: {{state}}";
4163
+ };
4164
+ readonly 'plugins-info-usage': {
4165
+ readonly zh: "用法:/plugin info <已装 bundle 名或待装 spec>";
4166
+ readonly en: "Usage: /plugin info <installed bundle name or install spec>";
4167
+ };
4168
+ readonly 'plugins-info-bundle': {
4169
+ readonly zh: "已装 bundle:{{name}}";
4170
+ readonly en: "Installed bundle: {{name}}";
4171
+ };
4172
+ readonly 'plugins-info-rows-label': {
4173
+ readonly zh: " 行:";
4174
+ readonly en: " rows:";
4175
+ };
4176
+ readonly 'plugins-info-overrides-label': {
4177
+ readonly zh: " 覆盖的行:{{list}}";
4178
+ readonly en: " overridden rows: {{list}}";
4179
+ };
4180
+ readonly 'plugins-info-problem': {
4181
+ readonly zh: " 问题:{{code}}{{diagnostic}}";
4182
+ readonly en: " problem: {{code}}{{diagnostic}}";
4183
+ };
4184
+ readonly 'plugins-info-inspect-refused': {
4185
+ readonly zh: "不可安装:{{problem}} — {{reason}}";
4186
+ readonly en: "Not installable: {{problem}} — {{reason}}";
4187
+ };
4188
+ readonly 'plugins-info-inspect-accepted': {
4189
+ readonly zh: "可安装:{{name}} {{version}} · {{kind}} · bundle={{bundle}} · 来源 {{registry}}";
4190
+ readonly en: "Installable: {{name}} {{version}} · {{kind}} · bundle={{bundle}} · from {{registry}}";
4191
+ };
4192
+ readonly 'plugins-info-inspect-description': {
4193
+ readonly zh: " {{description}}";
4194
+ readonly en: " {{description}}";
4195
+ };
4196
+ readonly 'plugins-info-inspect-host': {
4197
+ readonly zh: " 来源主机:{{host}}";
4198
+ readonly en: " source host: {{host}}";
4199
+ };
4200
+ readonly 'plugins-info-registries-header': {
4201
+ readonly zh: "安装源(首用优先,逐级回退):";
4202
+ readonly en: "Registries (asked first, then in order):";
4203
+ };
4204
+ readonly 'plugins-info-registries-first': {
4205
+ readonly zh: " 首选:{{registry}}";
4206
+ readonly en: " first: {{registry}}";
4207
+ };
4208
+ readonly 'plugins-info-registries-fallbacks': {
4209
+ readonly zh: " 回退:{{list}}";
4210
+ readonly en: " fallbacks: {{list}}";
4211
+ };
4212
+ readonly 'plugins-info-registries-resolved': {
4213
+ readonly zh: " pnpm 配置解析:{{registry}}";
4214
+ readonly en: " resolved from pnpm: {{registry}}";
4215
+ };
4216
+ readonly 'plugins-info-registries-none': {
4217
+ readonly zh: "(无)";
4218
+ readonly en: "(none)";
4219
+ };
5358
4220
  readonly 'doctor-plugin-generation': {
5359
4221
  readonly zh: "插件运行时 generation:{{id}}";
5360
4222
  readonly en: "Plugin runtime generation: {{id}}";
@@ -5443,10 +4305,6 @@ declare const dict: {
5443
4305
  readonly zh: "无匹配";
5444
4306
  readonly en: "no matches";
5445
4307
  };
5446
- readonly 'rename-usage': {
5447
- readonly zh: "用法 /rename <新名称>";
5448
- readonly en: "Usage /rename <new title>";
5449
- };
5450
4308
  readonly 'rename-current': {
5451
4309
  readonly zh: "当前名称 {{title}}";
5452
4310
  readonly en: "Current title {{title}}";
@@ -5472,8 +4330,8 @@ declare const dict: {
5472
4330
  readonly en: "↓ back to bottom (Enter/End)";
5473
4331
  };
5474
4332
  readonly 'theme-builtin-base': {
5475
- readonly zh: "内置 · {{name}} 基底";
5476
- readonly en: "Built-in · {{name}} base";
4333
+ readonly zh: "内置 · {{base}} 基底";
4334
+ readonly en: "Built-in · {{base}} base";
5477
4335
  };
5478
4336
  readonly 'theme-auto-base': {
5479
4337
  readonly zh: "内置 · 跟随系统/终端背景自动选择 light/dark";
@@ -7204,6 +6062,15 @@ declare const dict: {
7204
6062
  readonly zh: "选择内核(切换后重启进入)";
7205
6063
  readonly en: "Choose the kernel (restarts into it)";
7206
6064
  };
6065
+ readonly 'cmd-desc-dsh': {
6066
+ readonly zh: "切换到 DSH 内核(重启进入新会话)";
6067
+ };
6068
+ readonly 'cmd-desc-codex': {
6069
+ readonly zh: "切换到 Codex 内核(重启进入新会话)";
6070
+ };
6071
+ readonly 'cmd-desc-claude': {
6072
+ readonly zh: "切换到 Claude 内核(重启进入新会话)";
6073
+ };
7207
6074
  readonly 'cmd-desc-channel': {
7208
6075
  readonly zh: "渠道档案:切换 / 导入 / 查看映射(Claude)";
7209
6076
  readonly en: "Channel profiles: switch / import / view mappings (Claude)";
@@ -7592,6 +6459,22 @@ declare const dict: {
7592
6459
  readonly zh: "打开该面板";
7593
6460
  readonly en: "Open this panel";
7594
6461
  };
6462
+ readonly 'sugg-plugin-list-desc': {
6463
+ readonly zh: "列出你装的额外插件";
6464
+ readonly en: "List the plugins this profile added";
6465
+ };
6466
+ readonly 'sugg-plugin-info-desc': {
6467
+ readonly zh: "查单个条目或待装 spec";
6468
+ readonly en: "Describe an installed plugin or an install spec";
6469
+ };
6470
+ readonly 'sugg-plugin-registries-desc': {
6471
+ readonly zh: "查看安装源";
6472
+ readonly en: "Show where installations ask";
6473
+ };
6474
+ readonly 'sugg-plugin-check-desc': {
6475
+ readonly zh: "校验清单,不安装";
6476
+ readonly en: "Validate a manifest without installing it";
6477
+ };
7595
6478
  readonly 'panel-unavailable-hint': {
7596
6479
  readonly zh: "侧栏需要全屏且内容区 ≥93 列;该面板没有整屏形态";
7597
6480
  readonly en: "Sidebar needs fullscreen and ≥93 content columns; this panel has no fullscreen form";
@@ -7641,8 +6524,8 @@ declare const dict: {
7641
6524
  readonly 'cmd-desc-skills': {
7642
6525
  readonly zh: "列出所有可用技能";
7643
6526
  };
7644
- readonly 'cmd-desc-plugins': {
7645
- readonly zh: "显示插件契约、授权与台账诊断";
6527
+ readonly 'cmd-desc-plugin': {
6528
+ readonly zh: "插件诊断;`list` 列你装的额外插件,`info` 查单个条目或待装 spec";
7646
6529
  };
7647
6530
  readonly 'cmd-desc-update': {
7648
6531
  readonly zh: "更新 dsh-tui 并重启";
@@ -7886,17 +6769,13 @@ declare const dict: {
7886
6769
  readonly en: "Codex";
7887
6770
  };
7888
6771
  readonly 'kernel-login-in-session': {
7889
- readonly zh: "未登录 · 启动后用 /login 登录";
7890
- readonly en: "Not signed in · sign in with /login after start";
6772
+ readonly zh: "未登录";
6773
+ readonly en: "Not signed in";
7891
6774
  };
7892
6775
  readonly 'kernel-unavailable-not-installed': {
7893
6776
  readonly zh: "未安装";
7894
6777
  readonly en: "Not installed";
7895
6778
  };
7896
- readonly 'kernel-unavailable-auth-missing': {
7897
- readonly zh: "未登录";
7898
- readonly en: "Not signed in";
7899
- };
7900
6779
  readonly 'kernel-unavailable-too-old': {
7901
6780
  readonly zh: "版本过旧 · 需升级";
7902
6781
  readonly en: "Too old · upgrade needed";
@@ -7961,6 +6840,22 @@ declare const dict: {
7961
6840
  readonly zh: "上次选择的 {{name}} 内核启动失败,已先以 DSH 内核启动:{{reason}}";
7962
6841
  readonly en: "The remembered {{name}} kernel failed to start; booted on DSH instead: {{reason}}";
7963
6842
  };
6843
+ readonly 'resume-target-revoked': {
6844
+ readonly zh: "无法恢复上次会话:它由「{{from}}」后端记录,而本次启动使用的是「{{kernel}}」后端。启动恢复只针对所选后端——要恢复「{{from}}」记下的那条:dsh-tui --backend {{from}} --resume;要恢复本次所选后端自己的上次会话:dsh-tui --backend {{kernelId}} --resume;也可以去掉 --resume 重新启动。";
6845
+ readonly en: "Cannot resume the last session: it was recorded by the \"{{from}}\" backend while this launch runs on \"{{kernel}}\". Startup recovery only ever targets the selected backend — to reopen the session \"{{from}}\" recorded: `dsh-tui --backend {{from}} --resume`; to reopen the last session of this launch's backend: `dsh-tui --backend {{kernelId}} --resume`; or drop --resume to start fresh.";
6846
+ };
6847
+ readonly 'resume-target-revoked-uninstalled': {
6848
+ readonly zh: "无法恢复上次会话:它由「{{from}}」后端记录,而该后端本次启动未安装(或已不在此 profile 的注册表里),本次启动使用的是「{{kernel}}」后端。恢复它要先装上该后端,再运行 dsh-tui --backend {{from}} --resume;或去掉 --resume 重新启动。";
6849
+ readonly en: "Cannot resume the last session: it was recorded by the \"{{from}}\" backend, which is not installed for this launch (or is no longer in this profile's registry), while this launch runs on \"{{kernel}}\". Resuming it needs that backend installed first, then `dsh-tui --backend {{from}} --resume`; or drop --resume to start fresh.";
6850
+ };
6851
+ readonly 'resume-target-revoked-retry': {
6852
+ readonly zh: "安全模式重试:忽略由「{{from}}」后端记录的上次会话(本次启动用的是「{{kernel}}」),按冷启动继续。";
6853
+ readonly en: "Safe-mode retry: ignoring the last session recorded by the \"{{from}}\" backend (this launch runs on \"{{kernel}}\") and continuing with a cold start.";
6854
+ };
6855
+ readonly 'resume-backend-unavailable': {
6856
+ readonly zh: "无法恢复会话:本次启动指定的后端「{{backend}}」不可用(未安装或 id 不合法;已注册:{{installed}}),而要恢复的会话「{{session}}」属于它。回落 DSH 只会把别的后端的会话 id 交给 dsh,因此本次启动失败——装上该后端后重试,或去掉 --resume 重新启动。";
6857
+ readonly en: "Cannot resume: the backend named for this launch, \"{{backend}}\", is unavailable (not installed, or not a valid id; registered: {{installed}}), and the session \"{{session}}\" belongs to it. Falling back to DSH would only hand another backend's session id to dsh, so this launch fails — install the backend and retry, or drop --resume to start fresh.";
6858
+ };
7964
6859
  readonly 'kernel-pinned-hint': {
7965
6860
  readonly zh: "启动参数已指定内核:本次会按你的选择重启,下次直接启动仍按参数进入。";
7966
6861
  readonly en: "A startup flag pins the kernel: this restart follows your choice, a later direct launch follows the flag.";
@@ -7970,20 +6865,20 @@ declare const dict: {
7970
6865
  readonly en: "Not installed · Enter to install";
7971
6866
  };
7972
6867
  readonly 'sdk-install-title': {
7973
- readonly zh: "安装 Claude 内核";
7974
- readonly en: "Install the Claude kernel";
6868
+ readonly zh: "安装内核依赖";
6869
+ readonly en: "Install kernel dependencies";
7975
6870
  };
7976
6871
  readonly 'sdk-install-confirm-what': {
7977
- readonly zh: "将安装 Claude Agent SDK {{version}}(内置 Claude Code CLI)";
7978
- readonly en: "This installs Claude Agent SDK {{version}} (bundles the Claude Code CLI)";
6872
+ readonly zh: "将安装 {{specifier}}(验证版本:{{version}})";
6873
+ readonly en: "This installs {{specifier}} (validated version: {{version}})";
7979
6874
  };
7980
6875
  readonly 'sdk-install-confirm-where': {
7981
6876
  readonly zh: "安装位置:{{dir}}";
7982
6877
  readonly en: "Install location: {{dir}}";
7983
6878
  };
7984
6879
  readonly 'sdk-install-confirm-note': {
7985
- readonly zh: "只装进 dsh-tui 自己的目录:版本经过验证、不随全局变化;PATH 上已有的 Claude Code 会优先使用,不受影响。需要网络与 pnpm。";
7986
- readonly en: "Installs only into the dsh-tui directory: the version is validated and never follows your global one; a Claude Code already on PATH is used first and is not touched. Needs network and pnpm.";
6880
+ readonly zh: "只安装到当前 profile 目录。需要网络与 pnpm。";
6881
+ readonly en: "Installs only into the current profile directory. Needs network and pnpm.";
7987
6882
  };
7988
6883
  readonly 'sdk-install-confirm-hint': {
7989
6884
  readonly zh: "**Enter** 安装 · Esc 返回";
@@ -8002,8 +6897,12 @@ declare const dict: {
8002
6897
  readonly en: "Esc to cancel";
8003
6898
  };
8004
6899
  readonly 'sdk-install-done': {
8005
- readonly zh: "SDK 安装完成,Claude 内核已可用。";
8006
- readonly en: "SDK installed — the Claude kernel is ready.";
6900
+ readonly zh: "依赖安装完成,返回内核选择查看可用状态。";
6901
+ readonly en: "Dependencies installed. Return to the kernel picker to check availability.";
6902
+ };
6903
+ readonly 'sdk-install-rebuilt': {
6904
+ readonly zh: "检测到 pnpm store 漂移,已自动重建依赖后装好。";
6905
+ readonly en: "pnpm store drift detected — dependencies were rebuilt automatically.";
8007
6906
  };
8008
6907
  readonly 'sdk-install-done-hint': {
8009
6908
  readonly zh: "**Enter** 返回内核选择 · Esc 关闭";
@@ -8073,14 +6972,6 @@ declare const dict: {
8073
6972
  readonly zh: "回合运行中,无法切换或改动渠道";
8074
6973
  readonly en: "Cannot switch or change channels while a turn is running";
8075
6974
  };
8076
- readonly 'channel-conn-settings-mismatch': {
8077
- readonly zh: "settings.json 的 ANTHROPIC_BASE_URL 与当前渠道 {{name}} 不一致;本会话按渠道配置连接(settings.json 不改,直接运行 claude 时仍按它)";
8078
- readonly en: "The ANTHROPIC_BASE_URL in settings.json differs from the active channel {{name}}; this session connects as the channel says (settings.json is left as is for running claude directly)";
8079
- };
8080
- readonly 'channel-conn-creds-superseded': {
8081
- readonly zh: "本会话使用渠道凭据,settings.json 里的 {{keys}} 本次不生效(settings.json 不改,直接运行 claude 时仍会用到)";
8082
- readonly en: "This session uses the channel credential; {{keys}} from settings.json do not apply (settings.json is left as is for running claude directly)";
8083
- };
8084
6975
  readonly 'channel-switched': {
8085
6976
  readonly zh: "已切换到 {{name}},模型显示已刷新";
8086
6977
  readonly en: "Switched to {{name}}; the model display refreshed";
@@ -8632,6 +7523,46 @@ declare const dict: {
8632
7523
  readonly 'cmd-desc-setup': {
8633
7524
  readonly zh: "重跑首次引导(API Key / 语言主题 / 模型工作区 / 快捷键)";
8634
7525
  };
7526
+ readonly 'capability-failed': Readonly<{
7527
+ zh: "{{name}} 失败 · {{err}}";
7528
+ en: "{{name}} failed · {{err}}";
7529
+ }>;
7530
+ readonly 'status-rate-limit-five-hour': Readonly<{
7531
+ zh: "5小时";
7532
+ en: "5h";
7533
+ }>;
7534
+ readonly 'status-rate-limit-seven-day': Readonly<{
7535
+ zh: "7天";
7536
+ en: "7d";
7537
+ }>;
7538
+ readonly 'doctor-unknown': Readonly<{
7539
+ zh: "未知";
7540
+ en: "unknown";
7541
+ }>;
7542
+ readonly 'effort-invalid': Readonly<{
7543
+ zh: "未知推理等级 {{id}}(当前模型可选:{{ids}})";
7544
+ en: "Unknown reasoning effort {{id}} (this model offers: {{ids}})";
7545
+ }>;
7546
+ readonly 'tool-name-bash': Readonly<{
7547
+ zh: "Bash";
7548
+ en: "Bash";
7549
+ }>;
7550
+ readonly 'tool-name-edit': Readonly<{
7551
+ zh: "编辑";
7552
+ en: "Edit";
7553
+ }>;
7554
+ readonly 'rewind-first-message': Readonly<{
7555
+ zh: "不能回退到第一条消息之前";
7556
+ en: "Cannot rewind past the very first message";
7557
+ }>;
7558
+ readonly 'rename-failed': Readonly<{
7559
+ zh: "重命名失败 · {{err}}";
7560
+ en: "Rename failed · {{err}}";
7561
+ }>;
7562
+ readonly 'rename-usage': Readonly<{
7563
+ zh: "用法 /rename <新名称>";
7564
+ en: "Usage /rename <new title>";
7565
+ }>;
8635
7566
  };
8636
7567
  export type I18nKey = keyof typeof dict;
8637
7568
  export type I18nParams = Record<string, string | number>;