@deepseek-harness-tui/dsh-tui 0.13.0 → 0.14.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 (1023) hide show
  1. package/README.md +85 -5
  2. package/assets/claude-girl/claude-girl-happy.png +0 -0
  3. package/assets/claude-girl/claude-girl.png +0 -0
  4. package/assets/codex-girl/codex-girl-happy.png +0 -0
  5. package/assets/codex-girl/codex-girl.png +0 -0
  6. package/bin/dsh-tui.js +104 -18
  7. package/cordis.patch.yml +2 -0
  8. package/cordis.yml +2 -0
  9. package/guide/dsh-tui-guide/SKILL.md +4 -2
  10. package/guide/dsh-tui-guide/claude-backend.en.md +203 -0
  11. package/guide/dsh-tui-guide/claude-backend.md +161 -0
  12. package/guide/dsh-tui-guide/codex-backend.en.md +297 -0
  13. package/guide/dsh-tui-guide/codex-backend.md +257 -0
  14. package/guide/dsh-tui-guide/configuration.en.md +9 -2
  15. package/guide/dsh-tui-guide/configuration.md +9 -2
  16. package/guide/dsh-tui-guide/interaction.en.md +169 -27
  17. package/guide/dsh-tui-guide/interaction.md +115 -17
  18. package/guide/dsh-tui-guide/themes.en.md +24 -2
  19. package/guide/dsh-tui-guide/themes.md +21 -2
  20. package/guide/dsh-tui-guide/user-guide.en.md +38 -23
  21. package/guide/dsh-tui-guide/user-guide.md +22 -11
  22. package/guide/dsh-tui-guide/vscode.en.md +1 -0
  23. package/guide/dsh-tui-guide/vscode.md +1 -0
  24. package/lib/settings.json +139 -6
  25. package/lib/types/adapter/channel/state.d.ts.map +1 -1
  26. package/lib/types/adapter/channel/state.js +1 -0
  27. package/lib/types/adapter/channel/ui-policy.d.ts +17 -2
  28. package/lib/types/adapter/channel/ui-policy.d.ts.map +1 -1
  29. package/lib/types/adapter/channel/ui-policy.js +29 -0
  30. package/lib/types/adapter/channel/ui.d.ts.map +1 -1
  31. package/lib/types/adapter/channel/ui.js +45 -5
  32. package/lib/types/adapter/ports/channel-catalog.d.ts +7 -0
  33. package/lib/types/adapter/ports/channel-catalog.d.ts.map +1 -1
  34. package/lib/types/adapter/ports/channel-display.d.ts +7 -1
  35. package/lib/types/adapter/ports/channel-display.d.ts.map +1 -1
  36. package/lib/types/adapter/ports/channel-session.d.ts +5 -0
  37. package/lib/types/adapter/ports/channel-session.d.ts.map +1 -1
  38. package/lib/types/adapter/ports/channel-settings.d.ts +20 -0
  39. package/lib/types/adapter/ports/channel-settings.d.ts.map +1 -1
  40. package/lib/types/adapter/ports/channel-ui.d.ts +183 -6
  41. package/lib/types/adapter/ports/channel-ui.d.ts.map +1 -1
  42. package/lib/types/adapter/ports/channel-view.d.ts +477 -13
  43. package/lib/types/adapter/ports/channel-view.d.ts.map +1 -1
  44. package/lib/types/agent/backend.d.ts +168 -0
  45. package/lib/types/agent/backend.d.ts.map +1 -0
  46. package/lib/types/agent/backend.js +1 -0
  47. package/lib/types/agent/capabilities.d.ts +461 -0
  48. package/lib/types/agent/capabilities.d.ts.map +1 -0
  49. package/lib/types/agent/capabilities.js +1 -0
  50. package/lib/types/agent/events.d.ts +733 -0
  51. package/lib/types/agent/events.d.ts.map +1 -0
  52. package/lib/types/agent/events.js +2 -0
  53. package/lib/types/agent/index.d.ts +8 -0
  54. package/lib/types/agent/index.d.ts.map +1 -0
  55. package/lib/types/agent/index.js +7 -0
  56. package/lib/types/agent/messages.d.ts +52 -0
  57. package/lib/types/agent/messages.d.ts.map +1 -0
  58. package/lib/types/agent/messages.js +91 -0
  59. package/lib/types/agent/presentation.d.ts +29 -0
  60. package/lib/types/agent/presentation.d.ts.map +1 -0
  61. package/lib/types/agent/presentation.js +4 -0
  62. package/lib/types/agent/refs.d.ts +30 -0
  63. package/lib/types/agent/refs.d.ts.map +1 -0
  64. package/lib/types/agent/refs.js +39 -0
  65. package/lib/types/agent/session.d.ts +78 -0
  66. package/lib/types/agent/session.d.ts.map +1 -0
  67. package/lib/types/agent/session.js +1 -0
  68. package/lib/types/backends/claude/activity.d.ts +53 -0
  69. package/lib/types/backends/claude/activity.d.ts.map +1 -0
  70. package/lib/types/backends/claude/activity.js +103 -0
  71. package/lib/types/backends/claude/auth.d.ts +245 -0
  72. package/lib/types/backends/claude/auth.d.ts.map +1 -0
  73. package/lib/types/backends/claude/auth.js +503 -0
  74. package/lib/types/backends/claude/backend.d.ts +32 -0
  75. package/lib/types/backends/claude/backend.d.ts.map +1 -0
  76. package/lib/types/backends/claude/backend.js +296 -0
  77. package/lib/types/backends/claude/catalog.d.ts +17 -0
  78. package/lib/types/backends/claude/catalog.d.ts.map +1 -0
  79. package/lib/types/backends/claude/catalog.js +94 -0
  80. package/lib/types/backends/claude/channels.d.ts +63 -0
  81. package/lib/types/backends/claude/channels.d.ts.map +1 -0
  82. package/lib/types/backends/claude/channels.js +275 -0
  83. package/lib/types/backends/claude/contract.d.ts +37 -0
  84. package/lib/types/backends/claude/contract.d.ts.map +1 -0
  85. package/lib/types/backends/claude/contract.js +46 -0
  86. package/lib/types/backends/claude/controls.d.ts +134 -0
  87. package/lib/types/backends/claude/controls.d.ts.map +1 -0
  88. package/lib/types/backends/claude/controls.js +425 -0
  89. package/lib/types/backends/claude/dialogs.d.ts +62 -0
  90. package/lib/types/backends/claude/dialogs.d.ts.map +1 -0
  91. package/lib/types/backends/claude/dialogs.js +253 -0
  92. package/lib/types/backends/claude/flag-settings.d.ts +12 -0
  93. package/lib/types/backends/claude/flag-settings.d.ts.map +1 -0
  94. package/lib/types/backends/claude/flag-settings.js +49 -0
  95. package/lib/types/backends/claude/images.d.ts +49 -0
  96. package/lib/types/backends/claude/images.d.ts.map +1 -0
  97. package/lib/types/backends/claude/images.js +94 -0
  98. package/lib/types/backends/claude/index.d.ts +5 -0
  99. package/lib/types/backends/claude/index.d.ts.map +1 -0
  100. package/lib/types/backends/claude/index.js +4 -0
  101. package/lib/types/backends/claude/install.d.ts +15 -0
  102. package/lib/types/backends/claude/install.d.ts.map +1 -0
  103. package/lib/types/backends/claude/install.js +91 -0
  104. package/lib/types/backends/claude/modelEnv.d.ts +64 -0
  105. package/lib/types/backends/claude/modelEnv.d.ts.map +1 -0
  106. package/lib/types/backends/claude/modelEnv.js +199 -0
  107. package/lib/types/backends/claude/narrow.d.ts +10 -0
  108. package/lib/types/backends/claude/narrow.d.ts.map +1 -0
  109. package/lib/types/backends/claude/narrow.js +8 -0
  110. package/lib/types/backends/claude/older-history.d.ts +16 -0
  111. package/lib/types/backends/claude/older-history.d.ts.map +1 -0
  112. package/lib/types/backends/claude/older-history.js +101 -0
  113. package/lib/types/backends/claude/options.d.ts +181 -0
  114. package/lib/types/backends/claude/options.d.ts.map +1 -0
  115. package/lib/types/backends/claude/options.js +208 -0
  116. package/lib/types/backends/claude/permissions.d.ts +83 -0
  117. package/lib/types/backends/claude/permissions.d.ts.map +1 -0
  118. package/lib/types/backends/claude/permissions.js +331 -0
  119. package/lib/types/backends/claude/prefs.d.ts +55 -0
  120. package/lib/types/backends/claude/prefs.d.ts.map +1 -0
  121. package/lib/types/backends/claude/prefs.js +150 -0
  122. package/lib/types/backends/claude/process.d.ts +19 -0
  123. package/lib/types/backends/claude/process.d.ts.map +1 -0
  124. package/lib/types/backends/claude/process.js +156 -0
  125. package/lib/types/backends/claude/replay.d.ts +129 -0
  126. package/lib/types/backends/claude/replay.d.ts.map +1 -0
  127. package/lib/types/backends/claude/replay.js +505 -0
  128. package/lib/types/backends/claude/sdk-warnings.d.ts +23 -0
  129. package/lib/types/backends/claude/sdk-warnings.d.ts.map +1 -0
  130. package/lib/types/backends/claude/sdk-warnings.js +55 -0
  131. package/lib/types/backends/claude/sdk.d.ts +12 -0
  132. package/lib/types/backends/claude/sdk.d.ts.map +1 -0
  133. package/lib/types/backends/claude/sdk.js +34 -0
  134. package/lib/types/backends/claude/send-message.d.ts +54 -0
  135. package/lib/types/backends/claude/send-message.d.ts.map +1 -0
  136. package/lib/types/backends/claude/send-message.js +65 -0
  137. package/lib/types/backends/claude/session/auth.d.ts +47 -0
  138. package/lib/types/backends/claude/session/auth.d.ts.map +1 -0
  139. package/lib/types/backends/claude/session/auth.js +226 -0
  140. package/lib/types/backends/claude/session/channels.d.ts +82 -0
  141. package/lib/types/backends/claude/session/channels.d.ts.map +1 -0
  142. package/lib/types/backends/claude/session/channels.js +45 -0
  143. package/lib/types/backends/claude/session/input.d.ts +16 -0
  144. package/lib/types/backends/claude/session/input.d.ts.map +1 -0
  145. package/lib/types/backends/claude/session/input.js +64 -0
  146. package/lib/types/backends/claude/session/lifecycle.d.ts +6 -0
  147. package/lib/types/backends/claude/session/lifecycle.d.ts.map +1 -0
  148. package/lib/types/backends/claude/session/lifecycle.js +852 -0
  149. package/lib/types/backends/claude/session/store.d.ts +17 -0
  150. package/lib/types/backends/claude/session/store.d.ts.map +1 -0
  151. package/lib/types/backends/claude/session/store.js +122 -0
  152. package/lib/types/backends/claude/session/subagents.d.ts +13 -0
  153. package/lib/types/backends/claude/session/subagents.d.ts.map +1 -0
  154. package/lib/types/backends/claude/session/subagents.js +77 -0
  155. package/lib/types/backends/claude/session/types.d.ts +89 -0
  156. package/lib/types/backends/claude/session/types.d.ts.map +1 -0
  157. package/lib/types/backends/claude/session/types.js +1 -0
  158. package/lib/types/backends/claude/session.d.ts +4 -0
  159. package/lib/types/backends/claude/session.d.ts.map +1 -0
  160. package/lib/types/backends/claude/session.js +2 -0
  161. package/lib/types/backends/claude/side-query.d.ts +34 -0
  162. package/lib/types/backends/claude/side-query.d.ts.map +1 -0
  163. package/lib/types/backends/claude/side-query.js +116 -0
  164. package/lib/types/backends/claude/task-output.d.ts +13 -0
  165. package/lib/types/backends/claude/task-output.d.ts.map +1 -0
  166. package/lib/types/backends/claude/task-output.js +101 -0
  167. package/lib/types/backends/claude/tools.d.ts +45 -0
  168. package/lib/types/backends/claude/tools.d.ts.map +1 -0
  169. package/lib/types/backends/claude/tools.js +231 -0
  170. package/lib/types/backends/claude/transcript-file.d.ts +41 -0
  171. package/lib/types/backends/claude/transcript-file.d.ts.map +1 -0
  172. package/lib/types/backends/claude/transcript-file.js +195 -0
  173. package/lib/types/backends/claude/translate/attempts.d.ts +33 -0
  174. package/lib/types/backends/claude/translate/attempts.d.ts.map +1 -0
  175. package/lib/types/backends/claude/translate/attempts.js +243 -0
  176. package/lib/types/backends/claude/translate/content.d.ts +33 -0
  177. package/lib/types/backends/claude/translate/content.d.ts.map +1 -0
  178. package/lib/types/backends/claude/translate/content.js +91 -0
  179. package/lib/types/backends/claude/translate/core.d.ts +76 -0
  180. package/lib/types/backends/claude/translate/core.d.ts.map +1 -0
  181. package/lib/types/backends/claude/translate/core.js +447 -0
  182. package/lib/types/backends/claude/translate/events.d.ts +9 -0
  183. package/lib/types/backends/claude/translate/events.d.ts.map +1 -0
  184. package/lib/types/backends/claude/translate/events.js +77 -0
  185. package/lib/types/backends/claude/translate/lanes.d.ts +31 -0
  186. package/lib/types/backends/claude/translate/lanes.d.ts.map +1 -0
  187. package/lib/types/backends/claude/translate/lanes.js +177 -0
  188. package/lib/types/backends/claude/translate/messages.d.ts +36 -0
  189. package/lib/types/backends/claude/translate/messages.d.ts.map +1 -0
  190. package/lib/types/backends/claude/translate/messages.js +202 -0
  191. package/lib/types/backends/claude/translate/system.d.ts +40 -0
  192. package/lib/types/backends/claude/translate/system.d.ts.map +1 -0
  193. package/lib/types/backends/claude/translate/system.js +399 -0
  194. package/lib/types/backends/claude/translate/tasks.d.ts +19 -0
  195. package/lib/types/backends/claude/translate/tasks.d.ts.map +1 -0
  196. package/lib/types/backends/claude/translate/tasks.js +159 -0
  197. package/lib/types/backends/claude/translate/types.d.ts +114 -0
  198. package/lib/types/backends/claude/translate/types.d.ts.map +1 -0
  199. package/lib/types/backends/claude/translate/types.js +1 -0
  200. package/lib/types/backends/claude/translate.d.ts +9 -0
  201. package/lib/types/backends/claude/translate.d.ts.map +1 -0
  202. package/lib/types/backends/claude/translate.js +6 -0
  203. package/lib/types/backends/codex/auth/external-tokens.d.ts +66 -0
  204. package/lib/types/backends/codex/auth/external-tokens.d.ts.map +1 -0
  205. package/lib/types/backends/codex/auth/external-tokens.js +325 -0
  206. package/lib/types/backends/codex/auth/route.d.ts +14 -0
  207. package/lib/types/backends/codex/auth/route.d.ts.map +1 -0
  208. package/lib/types/backends/codex/auth/route.js +52 -0
  209. package/lib/types/backends/codex/auth/status.d.ts +16 -0
  210. package/lib/types/backends/codex/auth/status.d.ts.map +1 -0
  211. package/lib/types/backends/codex/auth/status.js +115 -0
  212. package/lib/types/backends/codex/backend.d.ts +58 -0
  213. package/lib/types/backends/codex/backend.d.ts.map +1 -0
  214. package/lib/types/backends/codex/backend.js +201 -0
  215. package/lib/types/backends/codex/catalog.d.ts +17 -0
  216. package/lib/types/backends/codex/catalog.d.ts.map +1 -0
  217. package/lib/types/backends/codex/catalog.js +128 -0
  218. package/lib/types/backends/codex/channels.d.ts +59 -0
  219. package/lib/types/backends/codex/channels.d.ts.map +1 -0
  220. package/lib/types/backends/codex/channels.js +274 -0
  221. package/lib/types/backends/codex/contract.d.ts +46 -0
  222. package/lib/types/backends/codex/contract.d.ts.map +1 -0
  223. package/lib/types/backends/codex/contract.js +80 -0
  224. package/lib/types/backends/codex/detect.d.ts +14 -0
  225. package/lib/types/backends/codex/detect.d.ts.map +1 -0
  226. package/lib/types/backends/codex/detect.js +90 -0
  227. package/lib/types/backends/codex/index.d.ts +6 -0
  228. package/lib/types/backends/codex/index.d.ts.map +1 -0
  229. package/lib/types/backends/codex/index.js +5 -0
  230. package/lib/types/backends/codex/modes.d.ts +16 -0
  231. package/lib/types/backends/codex/modes.d.ts.map +1 -0
  232. package/lib/types/backends/codex/modes.js +49 -0
  233. package/lib/types/backends/codex/narrow.d.ts +20 -0
  234. package/lib/types/backends/codex/narrow.d.ts.map +1 -0
  235. package/lib/types/backends/codex/narrow.js +18 -0
  236. package/lib/types/backends/codex/prefs.d.ts +42 -0
  237. package/lib/types/backends/codex/prefs.d.ts.map +1 -0
  238. package/lib/types/backends/codex/prefs.js +124 -0
  239. package/lib/types/backends/codex/protocol/index.d.ts +149 -0
  240. package/lib/types/backends/codex/protocol/index.d.ts.map +1 -0
  241. package/lib/types/backends/codex/protocol/index.js +130 -0
  242. package/lib/types/backends/codex/rpc/binary.d.ts +35 -0
  243. package/lib/types/backends/codex/rpc/binary.d.ts.map +1 -0
  244. package/lib/types/backends/codex/rpc/binary.js +174 -0
  245. package/lib/types/backends/codex/rpc/client.d.ts +72 -0
  246. package/lib/types/backends/codex/rpc/client.d.ts.map +1 -0
  247. package/lib/types/backends/codex/rpc/client.js +214 -0
  248. package/lib/types/backends/codex/rpc/hub.d.ts +105 -0
  249. package/lib/types/backends/codex/rpc/hub.d.ts.map +1 -0
  250. package/lib/types/backends/codex/rpc/hub.js +532 -0
  251. package/lib/types/backends/codex/rpc/transport.d.ts +39 -0
  252. package/lib/types/backends/codex/rpc/transport.d.ts.map +1 -0
  253. package/lib/types/backends/codex/rpc/transport.js +212 -0
  254. package/lib/types/backends/codex/session/activity.d.ts +18 -0
  255. package/lib/types/backends/codex/session/activity.d.ts.map +1 -0
  256. package/lib/types/backends/codex/session/activity.js +108 -0
  257. package/lib/types/backends/codex/session/approvals.d.ts +39 -0
  258. package/lib/types/backends/codex/session/approvals.d.ts.map +1 -0
  259. package/lib/types/backends/codex/session/approvals.js +477 -0
  260. package/lib/types/backends/codex/session/commands.d.ts +37 -0
  261. package/lib/types/backends/codex/session/commands.d.ts.map +1 -0
  262. package/lib/types/backends/codex/session/commands.js +141 -0
  263. package/lib/types/backends/codex/session/controls.d.ts +37 -0
  264. package/lib/types/backends/codex/session/controls.d.ts.map +1 -0
  265. package/lib/types/backends/codex/session/controls.js +303 -0
  266. package/lib/types/backends/codex/session/goals.d.ts +25 -0
  267. package/lib/types/backends/codex/session/goals.d.ts.map +1 -0
  268. package/lib/types/backends/codex/session/goals.js +97 -0
  269. package/lib/types/backends/codex/session/history.d.ts +52 -0
  270. package/lib/types/backends/codex/session/history.d.ts.map +1 -0
  271. package/lib/types/backends/codex/session/history.js +196 -0
  272. package/lib/types/backends/codex/session/images.d.ts +17 -0
  273. package/lib/types/backends/codex/session/images.d.ts.map +1 -0
  274. package/lib/types/backends/codex/session/images.js +138 -0
  275. package/lib/types/backends/codex/session/input.d.ts +75 -0
  276. package/lib/types/backends/codex/session/input.d.ts.map +1 -0
  277. package/lib/types/backends/codex/session/input.js +294 -0
  278. package/lib/types/backends/codex/session/plan-review.d.ts +19 -0
  279. package/lib/types/backends/codex/session/plan-review.d.ts.map +1 -0
  280. package/lib/types/backends/codex/session/plan-review.js +48 -0
  281. package/lib/types/backends/codex/session/prompts.d.ts +7 -0
  282. package/lib/types/backends/codex/session/prompts.d.ts.map +1 -0
  283. package/lib/types/backends/codex/session/prompts.js +47 -0
  284. package/lib/types/backends/codex/session/session.d.ts +12 -0
  285. package/lib/types/backends/codex/session/session.d.ts.map +1 -0
  286. package/lib/types/backends/codex/session/session.js +871 -0
  287. package/lib/types/backends/codex/session/side-query.d.ts +25 -0
  288. package/lib/types/backends/codex/session/side-query.d.ts.map +1 -0
  289. package/lib/types/backends/codex/session/side-query.js +121 -0
  290. package/lib/types/backends/codex/session/state.d.ts +57 -0
  291. package/lib/types/backends/codex/session/state.d.ts.map +1 -0
  292. package/lib/types/backends/codex/session/state.js +1 -0
  293. package/lib/types/backends/codex/session/subagents.d.ts +28 -0
  294. package/lib/types/backends/codex/session/subagents.d.ts.map +1 -0
  295. package/lib/types/backends/codex/session/subagents.js +286 -0
  296. package/lib/types/backends/codex/session/tasks.d.ts +25 -0
  297. package/lib/types/backends/codex/session/tasks.d.ts.map +1 -0
  298. package/lib/types/backends/codex/session/tasks.js +207 -0
  299. package/lib/types/backends/codex/session/tool-output.d.ts +9 -0
  300. package/lib/types/backends/codex/session/tool-output.d.ts.map +1 -0
  301. package/lib/types/backends/codex/session/tool-output.js +29 -0
  302. package/lib/types/backends/codex/translate/commands.d.ts +30 -0
  303. package/lib/types/backends/codex/translate/commands.d.ts.map +1 -0
  304. package/lib/types/backends/codex/translate/commands.js +103 -0
  305. package/lib/types/backends/codex/translate/events.d.ts +9 -0
  306. package/lib/types/backends/codex/translate/events.d.ts.map +1 -0
  307. package/lib/types/backends/codex/translate/events.js +71 -0
  308. package/lib/types/backends/codex/translate/items.d.ts +112 -0
  309. package/lib/types/backends/codex/translate/items.d.ts.map +1 -0
  310. package/lib/types/backends/codex/translate/items.js +375 -0
  311. package/lib/types/backends/codex/translate/live.d.ts +39 -0
  312. package/lib/types/backends/codex/translate/live.d.ts.map +1 -0
  313. package/lib/types/backends/codex/translate/live.js +315 -0
  314. package/lib/types/backends/codex/translate/notices.d.ts +27 -0
  315. package/lib/types/backends/codex/translate/notices.d.ts.map +1 -0
  316. package/lib/types/backends/codex/translate/notices.js +99 -0
  317. package/lib/types/backends/codex/translate/presentation.d.ts +49 -0
  318. package/lib/types/backends/codex/translate/presentation.d.ts.map +1 -0
  319. package/lib/types/backends/codex/translate/presentation.js +237 -0
  320. package/lib/types/backends/codex/translate/replay.d.ts +18 -0
  321. package/lib/types/backends/codex/translate/replay.d.ts.map +1 -0
  322. package/lib/types/backends/codex/translate/replay.js +33 -0
  323. package/lib/types/backends/codex/translate/usage.d.ts +29 -0
  324. package/lib/types/backends/codex/translate/usage.d.ts.map +1 -0
  325. package/lib/types/backends/codex/translate/usage.js +65 -0
  326. package/lib/types/backends/shared/atomic-file.d.ts +4 -0
  327. package/lib/types/backends/shared/atomic-file.d.ts.map +1 -0
  328. package/lib/types/backends/shared/atomic-file.js +52 -0
  329. package/lib/types/backends/shared/channel-tokens.d.ts +29 -0
  330. package/lib/types/backends/shared/channel-tokens.d.ts.map +1 -0
  331. package/lib/types/backends/shared/channel-tokens.js +161 -0
  332. package/lib/types/backends/shared/display-path.d.ts +3 -0
  333. package/lib/types/backends/shared/display-path.d.ts.map +1 -0
  334. package/lib/types/backends/shared/display-path.js +12 -0
  335. package/lib/types/branding.d.ts +92 -0
  336. package/lib/types/branding.d.ts.map +1 -0
  337. package/lib/types/branding.js +117 -0
  338. package/lib/types/channel/activity.d.ts +53 -0
  339. package/lib/types/channel/activity.d.ts.map +1 -0
  340. package/lib/types/channel/activity.js +955 -0
  341. package/lib/types/channel/capabilities.d.ts +24 -0
  342. package/lib/types/channel/capabilities.d.ts.map +1 -0
  343. package/lib/types/channel/capabilities.js +57 -0
  344. package/lib/types/channel/channel-slug.d.ts +9 -0
  345. package/lib/types/channel/channel-slug.d.ts.map +1 -0
  346. package/lib/types/channel/channel-slug.js +15 -0
  347. package/lib/types/channel/channel-wizard.d.ts +30 -0
  348. package/lib/types/channel/channel-wizard.d.ts.map +1 -0
  349. package/lib/types/channel/channel-wizard.js +226 -0
  350. package/lib/types/channel/elicitation.d.ts +135 -0
  351. package/lib/types/channel/elicitation.d.ts.map +1 -0
  352. package/lib/types/channel/elicitation.js +360 -0
  353. package/lib/types/channel/goal-command.d.ts +49 -0
  354. package/lib/types/channel/goal-command.d.ts.map +1 -0
  355. package/lib/types/channel/goal-command.js +72 -0
  356. package/lib/types/channel/history-restore.d.ts +16 -0
  357. package/lib/types/channel/history-restore.d.ts.map +1 -0
  358. package/lib/types/channel/history-restore.js +214 -0
  359. package/lib/types/channel/interaction.d.ts +38 -0
  360. package/lib/types/channel/interaction.d.ts.map +1 -0
  361. package/lib/types/channel/interaction.js +110 -0
  362. package/lib/types/channel/job-format.d.ts +6 -0
  363. package/lib/types/channel/job-format.d.ts.map +1 -0
  364. package/lib/types/channel/job-format.js +12 -0
  365. package/lib/types/channel/live-output.d.ts +35 -0
  366. package/lib/types/channel/live-output.d.ts.map +1 -0
  367. package/lib/types/channel/live-output.js +74 -0
  368. package/lib/types/channel/model-capabilities.d.ts +10 -0
  369. package/lib/types/channel/model-capabilities.d.ts.map +1 -0
  370. package/lib/types/channel/model-capabilities.js +51 -0
  371. package/lib/types/channel/permissions.d.ts +155 -0
  372. package/lib/types/channel/permissions.d.ts.map +1 -0
  373. package/lib/types/channel/permissions.js +188 -0
  374. package/lib/types/channel/projection.d.ts +110 -0
  375. package/lib/types/channel/projection.d.ts.map +1 -0
  376. package/lib/types/channel/projection.js +1521 -0
  377. package/lib/types/channel/question-record.d.ts +76 -0
  378. package/lib/types/channel/question-record.d.ts.map +1 -0
  379. package/lib/types/channel/question-record.js +109 -0
  380. package/lib/types/channel/questions.d.ts +204 -0
  381. package/lib/types/channel/questions.d.ts.map +1 -0
  382. package/lib/types/channel/questions.js +286 -0
  383. package/lib/types/channel/sanitize.d.ts +49 -0
  384. package/lib/types/channel/sanitize.d.ts.map +1 -0
  385. package/lib/types/channel/sanitize.js +88 -0
  386. package/lib/types/channel/selection-record.d.ts +18 -0
  387. package/lib/types/channel/selection-record.d.ts.map +1 -0
  388. package/lib/types/channel/selection-record.js +45 -0
  389. package/lib/types/channel/side-prompts.d.ts +59 -0
  390. package/lib/types/channel/side-prompts.d.ts.map +1 -0
  391. package/lib/types/channel/side-prompts.js +127 -0
  392. package/lib/types/channel/transcript.d.ts +17 -0
  393. package/lib/types/channel/transcript.d.ts.map +1 -0
  394. package/lib/types/channel/transcript.js +19 -0
  395. package/lib/types/channel/usage.d.ts +48 -0
  396. package/lib/types/channel/usage.d.ts.map +1 -0
  397. package/lib/types/channel/usage.js +143 -0
  398. package/lib/types/commands.d.ts +147 -0
  399. package/lib/types/commands.d.ts.map +1 -1
  400. package/lib/types/commands.js +196 -2
  401. package/lib/types/components/AgentMessageComposer.d.ts +50 -0
  402. package/lib/types/components/AgentMessageComposer.d.ts.map +1 -0
  403. package/lib/types/components/AgentMessageComposer.js +159 -0
  404. package/lib/types/components/BtwPanel.d.ts +13 -12
  405. package/lib/types/components/BtwPanel.d.ts.map +1 -1
  406. package/lib/types/components/BtwPanel.js +35 -24
  407. package/lib/types/components/ChannelPicker.d.ts +40 -0
  408. package/lib/types/components/ChannelPicker.d.ts.map +1 -0
  409. package/lib/types/components/ChannelPicker.js +26 -0
  410. package/lib/types/components/Chat/JobCard.d.ts +29 -31
  411. package/lib/types/components/Chat/JobCard.d.ts.map +1 -1
  412. package/lib/types/components/Chat/JobCard.js +31 -112
  413. package/lib/types/components/Chat/SubagentMessage.d.ts +4 -1
  414. package/lib/types/components/Chat/SubagentMessage.d.ts.map +1 -1
  415. package/lib/types/components/Chat/SubagentMessage.js +10 -3
  416. package/lib/types/components/ClaudeGirl.d.ts +27 -0
  417. package/lib/types/components/ClaudeGirl.d.ts.map +1 -0
  418. package/lib/types/components/ClaudeGirl.js +30 -0
  419. package/lib/types/components/CodeBlockFrame.d.ts +19 -0
  420. package/lib/types/components/CodeBlockFrame.d.ts.map +1 -0
  421. package/lib/types/components/CodeBlockFrame.js +138 -0
  422. package/lib/types/components/CommandSuggestions.d.ts +10 -1
  423. package/lib/types/components/CommandSuggestions.d.ts.map +1 -1
  424. package/lib/types/components/CommandSuggestions.js +20 -3
  425. package/lib/types/components/ContextBarView.d.ts +2 -2
  426. package/lib/types/components/ContextBarView.d.ts.map +1 -1
  427. package/lib/types/components/ContextBarView.js +18 -8
  428. package/lib/types/components/EffortChargeGlyph.d.ts +1 -1
  429. package/lib/types/components/EffortChargeGlyph.d.ts.map +1 -1
  430. package/lib/types/components/EffortChargeGlyph.js +3 -4
  431. package/lib/types/components/EffortInputBorder.d.ts +1 -2
  432. package/lib/types/components/EffortInputBorder.d.ts.map +1 -1
  433. package/lib/types/components/EffortInputBorder.js +7 -4
  434. package/lib/types/components/EffortSlider.d.ts +5 -1
  435. package/lib/types/components/EffortSlider.d.ts.map +1 -1
  436. package/lib/types/components/EffortSlider.js +2 -2
  437. package/lib/types/components/EffortTierBadge.d.ts +1 -2
  438. package/lib/types/components/EffortTierBadge.d.ts.map +1 -1
  439. package/lib/types/components/EffortTierBadge.js +8 -5
  440. package/lib/types/components/GoalTodoPanel.d.ts +2 -1
  441. package/lib/types/components/GoalTodoPanel.d.ts.map +1 -1
  442. package/lib/types/components/GoalTodoPanel.js +11 -5
  443. package/lib/types/components/InlineMathParagraph.js +1 -1
  444. package/lib/types/components/JobsPanel.d.ts +8 -9
  445. package/lib/types/components/JobsPanel.d.ts.map +1 -1
  446. package/lib/types/components/JobsPanel.js +72 -13
  447. package/lib/types/components/KernelPicker.d.ts +28 -0
  448. package/lib/types/components/KernelPicker.d.ts.map +1 -0
  449. package/lib/types/components/KernelPicker.js +37 -0
  450. package/lib/types/components/LogoV2.d.ts +7 -1
  451. package/lib/types/components/LogoV2.d.ts.map +1 -1
  452. package/lib/types/components/LogoV2.js +120 -24
  453. package/lib/types/components/Markdown.d.ts +2 -1
  454. package/lib/types/components/Markdown.d.ts.map +1 -1
  455. package/lib/types/components/Markdown.js +37 -8
  456. package/lib/types/components/MathBlock.d.ts.map +1 -1
  457. package/lib/types/components/MathBlock.js +3 -1
  458. package/lib/types/components/MermaidDiagram.d.ts.map +1 -1
  459. package/lib/types/components/MermaidDiagram.js +7 -5
  460. package/lib/types/components/MessageList.d.ts +21 -3
  461. package/lib/types/components/MessageList.d.ts.map +1 -1
  462. package/lib/types/components/MessageList.js +62 -42
  463. package/lib/types/components/ModePicker.d.ts +20 -0
  464. package/lib/types/components/ModePicker.d.ts.map +1 -0
  465. package/lib/types/components/ModePicker.js +17 -0
  466. package/lib/types/components/PromptInput.d.ts +2 -2
  467. package/lib/types/components/PromptInput.d.ts.map +1 -1
  468. package/lib/types/components/PromptInput.js +308 -55
  469. package/lib/types/components/SdkInstallWizard.d.ts +44 -0
  470. package/lib/types/components/SdkInstallWizard.d.ts.map +1 -0
  471. package/lib/types/components/SdkInstallWizard.js +18 -0
  472. package/lib/types/components/SearchBox.d.ts +7 -8
  473. package/lib/types/components/SearchBox.d.ts.map +1 -1
  474. package/lib/types/components/SearchBox.js +18 -9
  475. package/lib/types/components/SplitDiffView.d.ts.map +1 -1
  476. package/lib/types/components/SplitDiffView.js +113 -6
  477. package/lib/types/components/StarPrompt.d.ts.map +1 -1
  478. package/lib/types/components/StarPrompt.js +5 -3
  479. package/lib/types/components/StreamingMarkdown.d.ts.map +1 -1
  480. package/lib/types/components/StreamingMarkdown.js +6 -4
  481. package/lib/types/components/SubagentCard.d.ts +2 -1
  482. package/lib/types/components/SubagentCard.d.ts.map +1 -1
  483. package/lib/types/components/SubagentCard.js +25 -18
  484. package/lib/types/components/SubagentDashboard.d.ts +10 -6
  485. package/lib/types/components/SubagentDashboard.d.ts.map +1 -1
  486. package/lib/types/components/SubagentDashboard.js +32 -21
  487. package/lib/types/components/SubagentDetailScene.d.ts +16 -1
  488. package/lib/types/components/SubagentDetailScene.d.ts.map +1 -1
  489. package/lib/types/components/SubagentDetailScene.js +196 -45
  490. package/lib/types/components/SyntaxText.d.ts.map +1 -1
  491. package/lib/types/components/SyntaxText.js +4 -1
  492. package/lib/types/components/TurnInterruptedRow.d.ts +3 -1
  493. package/lib/types/components/TurnInterruptedRow.d.ts.map +1 -1
  494. package/lib/types/components/TurnInterruptedRow.js +6 -3
  495. package/lib/types/components/TurnUsageRow.d.ts +24 -0
  496. package/lib/types/components/TurnUsageRow.d.ts.map +1 -0
  497. package/lib/types/components/TurnUsageRow.js +46 -0
  498. package/lib/types/components/WorkingSpinner.d.ts +2 -1
  499. package/lib/types/components/WorkingSpinner.d.ts.map +1 -1
  500. package/lib/types/components/WorkingSpinner.js +21 -4
  501. package/lib/types/components/approvals/ApprovalPanel.d.ts +36 -13
  502. package/lib/types/components/approvals/ApprovalPanel.d.ts.map +1 -1
  503. package/lib/types/components/approvals/ApprovalPanel.js +173 -25
  504. package/lib/types/components/claudeGirlSprite.d.ts +18 -0
  505. package/lib/types/components/claudeGirlSprite.d.ts.map +1 -0
  506. package/lib/types/components/claudeGirlSprite.js +48 -0
  507. package/lib/types/components/design-system/ThemeProvider.d.ts.map +1 -1
  508. package/lib/types/components/design-system/ThemeProvider.js +46 -13
  509. package/lib/types/components/design-system/ThemedText.d.ts +3 -1
  510. package/lib/types/components/design-system/ThemedText.d.ts.map +1 -1
  511. package/lib/types/components/design-system/ThemedText.js +2 -2
  512. package/lib/types/components/diffPatch.d.ts +55 -0
  513. package/lib/types/components/diffPatch.d.ts.map +1 -0
  514. package/lib/types/components/diffPatch.js +142 -0
  515. package/lib/types/components/kernelCatalog.d.ts +48 -0
  516. package/lib/types/components/kernelCatalog.d.ts.map +1 -0
  517. package/lib/types/components/kernelCatalog.js +53 -0
  518. package/lib/types/components/launchpadActions.d.ts +13 -6
  519. package/lib/types/components/launchpadActions.d.ts.map +1 -1
  520. package/lib/types/components/launchpadActions.js +26 -4
  521. package/lib/types/components/launchpadParams.d.ts +101 -0
  522. package/lib/types/components/launchpadParams.d.ts.map +1 -0
  523. package/lib/types/components/launchpadParams.js +171 -0
  524. package/lib/types/components/maidPortrait.d.ts +37 -5
  525. package/lib/types/components/maidPortrait.d.ts.map +1 -1
  526. package/lib/types/components/maidPortrait.js +73 -54
  527. package/lib/types/components/messages/AgentMessageFlow.d.ts +20 -0
  528. package/lib/types/components/messages/AgentMessageFlow.d.ts.map +1 -0
  529. package/lib/types/components/messages/AgentMessageFlow.js +37 -0
  530. package/lib/types/components/messages/AssistantThinkingMessage.d.ts +6 -1
  531. package/lib/types/components/messages/AssistantThinkingMessage.d.ts.map +1 -1
  532. package/lib/types/components/messages/AssistantThinkingMessage.js +29 -5
  533. package/lib/types/components/messages/AssistantToolUseMessage.d.ts +11 -2
  534. package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -1
  535. package/lib/types/components/messages/AssistantToolUseMessage.js +289 -36
  536. package/lib/types/components/messages/TranscriptLeaves.d.ts +85 -0
  537. package/lib/types/components/messages/TranscriptLeaves.d.ts.map +1 -0
  538. package/lib/types/components/messages/TranscriptLeaves.js +74 -0
  539. package/lib/types/components/messages/agentTeam.d.ts +69 -0
  540. package/lib/types/components/messages/agentTeam.d.ts.map +1 -0
  541. package/lib/types/components/messages/agentTeam.js +53 -0
  542. package/lib/types/components/messages/liveOutputLines.d.ts +33 -0
  543. package/lib/types/components/messages/liveOutputLines.d.ts.map +1 -0
  544. package/lib/types/components/messages/liveOutputLines.js +100 -0
  545. package/lib/types/components/messages/subagentTranscript.d.ts +146 -0
  546. package/lib/types/components/messages/subagentTranscript.d.ts.map +1 -0
  547. package/lib/types/components/messages/subagentTranscript.js +304 -0
  548. package/lib/types/components/questions/AskUserQuestionPanel.d.ts +16 -1
  549. package/lib/types/components/questions/AskUserQuestionPanel.d.ts.map +1 -1
  550. package/lib/types/components/questions/AskUserQuestionPanel.js +76 -6
  551. package/lib/types/components/questions/PlanReviewPanel.d.ts +8 -3
  552. package/lib/types/components/questions/PlanReviewPanel.d.ts.map +1 -1
  553. package/lib/types/components/questions/PlanReviewPanel.js +11 -6
  554. package/lib/types/components/questions/ProviderModelEditor.d.ts +12 -0
  555. package/lib/types/components/questions/ProviderModelEditor.d.ts.map +1 -0
  556. package/lib/types/components/questions/ProviderModelEditor.js +266 -0
  557. package/lib/types/components/shimmer.d.ts +26 -0
  558. package/lib/types/components/shimmer.d.ts.map +1 -1
  559. package/lib/types/components/shimmer.js +26 -0
  560. package/lib/types/components/sidePanel/InfoPanel.d.ts.map +1 -1
  561. package/lib/types/components/sidePanel/InfoPanel.js +13 -8
  562. package/lib/types/components/sidePanel/PanelBar.d.ts +0 -24
  563. package/lib/types/components/sidePanel/PanelBar.d.ts.map +1 -1
  564. package/lib/types/components/sidePanel/PanelBar.js +55 -77
  565. package/lib/types/components/sidePanel/PanelStore.d.ts +3 -1
  566. package/lib/types/components/sidePanel/PanelStore.d.ts.map +1 -1
  567. package/lib/types/components/sidePanel/PanelStore.js +8 -4
  568. package/lib/types/components/sidePanel/SidePanelColumn.d.ts +3 -10
  569. package/lib/types/components/sidePanel/SidePanelColumn.d.ts.map +1 -1
  570. package/lib/types/components/sidePanel/SidePanelColumn.js +9 -12
  571. package/lib/types/components/sidePanel/TrajectoryPanel.d.ts.map +1 -1
  572. package/lib/types/components/sidePanel/TrajectoryPanel.js +78 -14
  573. package/lib/types/components/sidePanel/agentViewStore.d.ts +20 -0
  574. package/lib/types/components/sidePanel/agentViewStore.d.ts.map +1 -0
  575. package/lib/types/components/sidePanel/agentViewStore.js +26 -0
  576. package/lib/types/components/sidePanel/btw/BtwComposer.d.ts +50 -0
  577. package/lib/types/components/sidePanel/btw/BtwComposer.d.ts.map +1 -0
  578. package/lib/types/components/sidePanel/btw/BtwComposer.js +45 -0
  579. package/lib/types/components/sidePanel/btw/BtwPanelAdapter.d.ts +13 -0
  580. package/lib/types/components/sidePanel/btw/BtwPanelAdapter.d.ts.map +1 -0
  581. package/lib/types/components/sidePanel/btw/BtwPanelAdapter.js +147 -0
  582. package/lib/types/components/sidePanel/btw/BtwThreadScene.d.ts +14 -0
  583. package/lib/types/components/sidePanel/btw/BtwThreadScene.d.ts.map +1 -0
  584. package/lib/types/components/sidePanel/btw/BtwThreadScene.js +131 -0
  585. package/lib/types/components/sidePanel/btw/BtwThreadView.d.ts +30 -0
  586. package/lib/types/components/sidePanel/btw/BtwThreadView.d.ts.map +1 -0
  587. package/lib/types/components/sidePanel/btw/BtwThreadView.js +87 -0
  588. package/lib/types/components/sidePanel/btw/threads.d.ts +111 -0
  589. package/lib/types/components/sidePanel/btw/threads.d.ts.map +1 -0
  590. package/lib/types/components/sidePanel/btw/threads.js +302 -0
  591. package/lib/types/components/sidePanel/builtinPanels.d.ts.map +1 -1
  592. package/lib/types/components/sidePanel/builtinPanels.js +70 -30
  593. package/lib/types/components/sidePanel/companion/CompanionPanel.d.ts +4 -46
  594. package/lib/types/components/sidePanel/companion/CompanionPanel.d.ts.map +1 -1
  595. package/lib/types/components/sidePanel/companion/CompanionPanel.js +19 -55
  596. package/lib/types/components/sidePanel/companion/mood.d.ts +32 -0
  597. package/lib/types/components/sidePanel/companion/mood.d.ts.map +1 -1
  598. package/lib/types/components/sidePanel/companion/mood.js +44 -0
  599. package/lib/types/components/sidePanel/companion/skins.d.ts +34 -0
  600. package/lib/types/components/sidePanel/companion/skins.d.ts.map +1 -1
  601. package/lib/types/components/sidePanel/companion/skins.js +203 -29
  602. package/lib/types/components/splashFonts.d.ts +17 -9
  603. package/lib/types/components/splashFonts.d.ts.map +1 -1
  604. package/lib/types/components/splashFonts.js +119 -15
  605. package/lib/types/components/splashLayout.d.ts.map +1 -1
  606. package/lib/types/components/splashLayout.js +3 -1
  607. package/lib/types/components/subagentDetailMemory.d.ts +17 -0
  608. package/lib/types/components/subagentDetailMemory.d.ts.map +1 -0
  609. package/lib/types/components/subagentDetailMemory.js +28 -0
  610. package/lib/types/components/trajectory/Inspector.d.ts.map +1 -1
  611. package/lib/types/components/trajectory/Inspector.js +9 -0
  612. package/lib/types/components/trajectory/Ledger.d.ts.map +1 -1
  613. package/lib/types/components/trajectory/Ledger.js +7 -1
  614. package/lib/types/components/trajectory/scope.d.ts +64 -0
  615. package/lib/types/components/trajectory/scope.d.ts.map +1 -0
  616. package/lib/types/components/trajectory/scope.js +88 -0
  617. package/lib/types/components/trajectory/useTrajectoryScope.d.ts +42 -0
  618. package/lib/types/components/trajectory/useTrajectoryScope.d.ts.map +1 -0
  619. package/lib/types/components/trajectory/useTrajectoryScope.js +86 -0
  620. package/lib/types/customTheme.d.ts +4 -6
  621. package/lib/types/customTheme.d.ts.map +1 -1
  622. package/lib/types/customTheme.js +6 -8
  623. package/lib/types/dsh-adapter/approvals.d.ts +18 -5
  624. package/lib/types/dsh-adapter/approvals.d.ts.map +1 -1
  625. package/lib/types/dsh-adapter/approvals.js +17 -4
  626. package/lib/types/dsh-adapter/backend/session.d.ts +64 -0
  627. package/lib/types/dsh-adapter/backend/session.d.ts.map +1 -0
  628. package/lib/types/dsh-adapter/backend/session.js +291 -0
  629. package/lib/types/dsh-adapter/backend/translate.d.ts +58 -0
  630. package/lib/types/dsh-adapter/backend/translate.d.ts.map +1 -0
  631. package/lib/types/dsh-adapter/backend/translate.js +467 -0
  632. package/lib/types/dsh-adapter/backends.d.ts +49 -0
  633. package/lib/types/dsh-adapter/backends.d.ts.map +1 -0
  634. package/lib/types/dsh-adapter/backends.js +124 -0
  635. package/lib/types/dsh-adapter/channel/action-readiness.d.ts +16 -0
  636. package/lib/types/dsh-adapter/channel/action-readiness.d.ts.map +1 -1
  637. package/lib/types/dsh-adapter/channel/action-readiness.js +109 -0
  638. package/lib/types/dsh-adapter/channel/agent-view-projection.d.ts +2 -2
  639. package/lib/types/dsh-adapter/channel/agent-view-projection.d.ts.map +1 -1
  640. package/lib/types/dsh-adapter/channel/background-action.d.ts +2 -2
  641. package/lib/types/dsh-adapter/channel/background-action.d.ts.map +1 -1
  642. package/lib/types/dsh-adapter/channel/background-action.js +7 -5
  643. package/lib/types/dsh-adapter/channel/binding-events.d.ts +19 -9
  644. package/lib/types/dsh-adapter/channel/binding-events.d.ts.map +1 -1
  645. package/lib/types/dsh-adapter/channel/binding-events.js +58 -135
  646. package/lib/types/dsh-adapter/channel/binding.d.ts +61 -14
  647. package/lib/types/dsh-adapter/channel/binding.d.ts.map +1 -1
  648. package/lib/types/dsh-adapter/channel/binding.js +102 -35
  649. package/lib/types/dsh-adapter/channel/command-completions.d.ts +3 -0
  650. package/lib/types/dsh-adapter/channel/command-completions.d.ts.map +1 -1
  651. package/lib/types/dsh-adapter/channel/command-completions.js +33 -4
  652. package/lib/types/dsh-adapter/channel/compaction.d.ts.map +1 -1
  653. package/lib/types/dsh-adapter/channel/compaction.js +3 -2
  654. package/lib/types/dsh-adapter/channel/composer-images.d.ts +5 -0
  655. package/lib/types/dsh-adapter/channel/composer-images.d.ts.map +1 -1
  656. package/lib/types/dsh-adapter/channel/composer-images.js +4 -3
  657. package/lib/types/dsh-adapter/channel/core/actions.d.ts +39 -0
  658. package/lib/types/dsh-adapter/channel/core/actions.d.ts.map +1 -0
  659. package/lib/types/dsh-adapter/channel/core/actions.js +152 -0
  660. package/lib/types/dsh-adapter/channel/core/binding-feed.d.ts +145 -0
  661. package/lib/types/dsh-adapter/channel/core/binding-feed.d.ts.map +1 -0
  662. package/lib/types/dsh-adapter/channel/core/binding-feed.js +289 -0
  663. package/lib/types/dsh-adapter/channel/core/compose.d.ts +217 -0
  664. package/lib/types/dsh-adapter/channel/core/compose.d.ts.map +1 -0
  665. package/lib/types/dsh-adapter/channel/core/compose.js +938 -0
  666. package/lib/types/dsh-adapter/channel/core/files.d.ts +57 -0
  667. package/lib/types/dsh-adapter/channel/core/files.d.ts.map +1 -0
  668. package/lib/types/dsh-adapter/channel/core/files.js +45 -0
  669. package/lib/types/dsh-adapter/channel/core/host.d.ts +55 -0
  670. package/lib/types/dsh-adapter/channel/core/host.d.ts.map +1 -0
  671. package/lib/types/dsh-adapter/channel/core/host.js +116 -0
  672. package/lib/types/dsh-adapter/channel/core/local-actions.d.ts +46 -0
  673. package/lib/types/dsh-adapter/channel/core/local-actions.d.ts.map +1 -0
  674. package/lib/types/dsh-adapter/channel/core/local-actions.js +117 -0
  675. package/lib/types/dsh-adapter/channel/core/local-images.d.ts +20 -0
  676. package/lib/types/dsh-adapter/channel/core/local-images.d.ts.map +1 -0
  677. package/lib/types/dsh-adapter/channel/core/local-images.js +147 -0
  678. package/lib/types/dsh-adapter/channel/core/reports.d.ts +12 -0
  679. package/lib/types/dsh-adapter/channel/core/reports.d.ts.map +1 -0
  680. package/lib/types/dsh-adapter/channel/core/reports.js +77 -0
  681. package/lib/types/dsh-adapter/channel/core/session-controls.d.ts +39 -0
  682. package/lib/types/dsh-adapter/channel/core/session-controls.d.ts.map +1 -0
  683. package/lib/types/dsh-adapter/channel/core/session-controls.js +219 -0
  684. package/lib/types/dsh-adapter/channel/core/session-switch.d.ts +174 -0
  685. package/lib/types/dsh-adapter/channel/core/session-switch.d.ts.map +1 -0
  686. package/lib/types/dsh-adapter/channel/core/session-switch.js +390 -0
  687. package/lib/types/dsh-adapter/channel/core/sessions.d.ts +40 -0
  688. package/lib/types/dsh-adapter/channel/core/sessions.d.ts.map +1 -0
  689. package/lib/types/dsh-adapter/channel/core/sessions.js +268 -0
  690. package/lib/types/dsh-adapter/channel/decisions.d.ts +4 -3
  691. package/lib/types/dsh-adapter/channel/decisions.d.ts.map +1 -1
  692. package/lib/types/dsh-adapter/channel/decisions.js +4 -4
  693. package/lib/types/dsh-adapter/channel/emitter.d.ts +15 -2
  694. package/lib/types/dsh-adapter/channel/emitter.d.ts.map +1 -1
  695. package/lib/types/dsh-adapter/channel/emitter.js +5 -3
  696. package/lib/types/dsh-adapter/channel/extensions.d.ts +36 -0
  697. package/lib/types/dsh-adapter/channel/extensions.d.ts.map +1 -0
  698. package/lib/types/dsh-adapter/channel/extensions.js +714 -0
  699. package/lib/types/dsh-adapter/channel/ide-selection.d.ts +1 -10
  700. package/lib/types/dsh-adapter/channel/ide-selection.d.ts.map +1 -1
  701. package/lib/types/dsh-adapter/channel/ide-selection.js +4 -46
  702. package/lib/types/dsh-adapter/channel/input-actions.d.ts +27 -4
  703. package/lib/types/dsh-adapter/channel/input-actions.d.ts.map +1 -1
  704. package/lib/types/dsh-adapter/channel/input-actions.js +240 -21
  705. package/lib/types/dsh-adapter/channel/input-delivery.d.ts +21 -5
  706. package/lib/types/dsh-adapter/channel/input-delivery.d.ts.map +1 -1
  707. package/lib/types/dsh-adapter/channel/input-delivery.js +65 -27
  708. package/lib/types/dsh-adapter/channel/local-actions.d.ts +10 -32
  709. package/lib/types/dsh-adapter/channel/local-actions.d.ts.map +1 -1
  710. package/lib/types/dsh-adapter/channel/local-actions.js +10 -78
  711. package/lib/types/dsh-adapter/channel/local-fs.d.ts +3 -0
  712. package/lib/types/dsh-adapter/channel/local-fs.d.ts.map +1 -0
  713. package/lib/types/dsh-adapter/channel/local-fs.js +46 -0
  714. package/lib/types/dsh-adapter/channel/mode-actions.d.ts +3 -3
  715. package/lib/types/dsh-adapter/channel/mode-actions.d.ts.map +1 -1
  716. package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts +2 -2
  717. package/lib/types/dsh-adapter/channel/mode-permission-actions.d.ts.map +1 -1
  718. package/lib/types/dsh-adapter/channel/model-actions.d.ts +3 -3
  719. package/lib/types/dsh-adapter/channel/model-actions.d.ts.map +1 -1
  720. package/lib/types/dsh-adapter/channel/model-actions.js +38 -5
  721. package/lib/types/dsh-adapter/channel/model-switch.d.ts +2 -2
  722. package/lib/types/dsh-adapter/channel/model-switch.d.ts.map +1 -1
  723. package/lib/types/dsh-adapter/channel/model-switch.js +9 -6
  724. package/lib/types/dsh-adapter/channel/preferences.d.ts +1 -1
  725. package/lib/types/dsh-adapter/channel/preferences.d.ts.map +1 -1
  726. package/lib/types/dsh-adapter/channel/preferences.js +16 -0
  727. package/lib/types/dsh-adapter/channel/projection.d.ts +16 -13
  728. package/lib/types/dsh-adapter/channel/projection.d.ts.map +1 -1
  729. package/lib/types/dsh-adapter/channel/projection.js +38 -1143
  730. package/lib/types/dsh-adapter/channel/question-record.d.ts +3 -75
  731. package/lib/types/dsh-adapter/channel/question-record.d.ts.map +1 -1
  732. package/lib/types/dsh-adapter/channel/question-record.js +3 -107
  733. package/lib/types/dsh-adapter/channel/session-activity.d.ts +9 -0
  734. package/lib/types/dsh-adapter/channel/session-activity.d.ts.map +1 -0
  735. package/lib/types/dsh-adapter/channel/session-activity.js +42 -0
  736. package/lib/types/dsh-adapter/channel/session-adoption.d.ts +4 -4
  737. package/lib/types/dsh-adapter/channel/session-adoption.d.ts.map +1 -1
  738. package/lib/types/dsh-adapter/channel/session-adoption.js +3 -1
  739. package/lib/types/dsh-adapter/channel/session-fork.d.ts +1 -1
  740. package/lib/types/dsh-adapter/channel/session-fork.d.ts.map +1 -1
  741. package/lib/types/dsh-adapter/channel/session-fork.js +2 -1
  742. package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts +7 -3
  743. package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts.map +1 -1
  744. package/lib/types/dsh-adapter/channel/session-live-adoption.js +1 -1
  745. package/lib/types/dsh-adapter/channel/session-metadata.d.ts +2 -9
  746. package/lib/types/dsh-adapter/channel/session-metadata.d.ts.map +1 -1
  747. package/lib/types/dsh-adapter/channel/session-reset.d.ts +1 -1
  748. package/lib/types/dsh-adapter/channel/session-reset.d.ts.map +1 -1
  749. package/lib/types/dsh-adapter/channel/session-reset.js +4 -0
  750. package/lib/types/dsh-adapter/channel/session-resume.d.ts +5 -10
  751. package/lib/types/dsh-adapter/channel/session-resume.d.ts.map +1 -1
  752. package/lib/types/dsh-adapter/channel/session-resume.js +74 -113
  753. package/lib/types/dsh-adapter/channel/session-rewind.d.ts +4 -4
  754. package/lib/types/dsh-adapter/channel/session-rewind.d.ts.map +1 -1
  755. package/lib/types/dsh-adapter/channel/session-rewind.js +7 -6
  756. package/lib/types/dsh-adapter/channel/session-tree-actions.d.ts +4 -4
  757. package/lib/types/dsh-adapter/channel/session-tree-actions.d.ts.map +1 -1
  758. package/lib/types/dsh-adapter/channel/session-tree-actions.js +8 -7
  759. package/lib/types/dsh-adapter/channel/settings-host.d.ts +1 -1
  760. package/lib/types/dsh-adapter/channel/settings-host.d.ts.map +1 -1
  761. package/lib/types/dsh-adapter/channel/settings-host.js +8 -0
  762. package/lib/types/dsh-adapter/channel/skill-catalog.d.ts +5 -1
  763. package/lib/types/dsh-adapter/channel/skill-catalog.d.ts.map +1 -1
  764. package/lib/types/dsh-adapter/channel/skill-catalog.js +2 -2
  765. package/lib/types/dsh-adapter/channel/state.d.ts +72 -1
  766. package/lib/types/dsh-adapter/channel/state.d.ts.map +1 -1
  767. package/lib/types/dsh-adapter/channel/state.js +7 -3
  768. package/lib/types/dsh-adapter/channel/subagent-projection.d.ts +58 -3
  769. package/lib/types/dsh-adapter/channel/subagent-projection.d.ts.map +1 -1
  770. package/lib/types/dsh-adapter/channel/subagent-projection.js +153 -9
  771. package/lib/types/dsh-adapter/channel/subagent-transcript.d.ts +114 -0
  772. package/lib/types/dsh-adapter/channel/subagent-transcript.d.ts.map +1 -0
  773. package/lib/types/dsh-adapter/channel/subagent-transcript.js +279 -0
  774. package/lib/types/dsh-adapter/channel/transcript.d.ts +7 -15
  775. package/lib/types/dsh-adapter/channel/transcript.d.ts.map +1 -1
  776. package/lib/types/dsh-adapter/channel/transcript.js +17 -21
  777. package/lib/types/dsh-adapter/channel/types.d.ts +16 -7
  778. package/lib/types/dsh-adapter/channel/types.d.ts.map +1 -1
  779. package/lib/types/dsh-adapter/channel/usage.d.ts +3 -23
  780. package/lib/types/dsh-adapter/channel/usage.d.ts.map +1 -1
  781. package/lib/types/dsh-adapter/channel/usage.js +5 -111
  782. package/lib/types/dsh-adapter/channel/workspace-actions.d.ts.map +1 -1
  783. package/lib/types/dsh-adapter/channel/workspace-actions.js +2 -1
  784. package/lib/types/dsh-adapter/channel.d.ts +17 -8
  785. package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
  786. package/lib/types/dsh-adapter/channel.js +24 -1059
  787. package/lib/types/dsh-adapter/context-occupancy.d.ts +6 -1
  788. package/lib/types/dsh-adapter/context-occupancy.d.ts.map +1 -1
  789. package/lib/types/dsh-adapter/context-occupancy.js +6 -1
  790. package/lib/types/dsh-adapter/decision-guard.d.ts +24 -0
  791. package/lib/types/dsh-adapter/decision-guard.d.ts.map +1 -1
  792. package/lib/types/dsh-adapter/decision-guard.js +44 -0
  793. package/lib/types/dsh-adapter/extension-events.d.ts +4 -1
  794. package/lib/types/dsh-adapter/extension-events.d.ts.map +1 -1
  795. package/lib/types/dsh-adapter/extension-events.js +22 -10
  796. package/lib/types/dsh-adapter/index.d.ts +41 -3
  797. package/lib/types/dsh-adapter/index.d.ts.map +1 -1
  798. package/lib/types/dsh-adapter/index.js +28 -1
  799. package/lib/types/dsh-adapter/jobs.d.ts +5 -3
  800. package/lib/types/dsh-adapter/jobs.d.ts.map +1 -1
  801. package/lib/types/dsh-adapter/jobs.js +53 -14
  802. package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts +1 -16
  803. package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts.map +1 -1
  804. package/lib/types/dsh-adapter/migrate/parse/jsonl.js +3 -29
  805. package/lib/types/dsh-adapter/oauth-credential-source.d.ts +34 -0
  806. package/lib/types/dsh-adapter/oauth-credential-source.d.ts.map +1 -0
  807. package/lib/types/dsh-adapter/oauth-credential-source.js +66 -0
  808. package/lib/types/dsh-adapter/plugin.d.ts +38 -2
  809. package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
  810. package/lib/types/dsh-adapter/plugin.js +546 -110
  811. package/lib/types/dsh-adapter/provider-model-capabilities.d.ts +10 -0
  812. package/lib/types/dsh-adapter/provider-model-capabilities.d.ts.map +1 -0
  813. package/lib/types/dsh-adapter/provider-model-capabilities.js +80 -0
  814. package/lib/types/dsh-adapter/providerWizard.d.ts +8 -2
  815. package/lib/types/dsh-adapter/providerWizard.d.ts.map +1 -1
  816. package/lib/types/dsh-adapter/providerWizard.js +118 -52
  817. package/lib/types/dsh-adapter/questions.d.ts +29 -124
  818. package/lib/types/dsh-adapter/questions.d.ts.map +1 -1
  819. package/lib/types/dsh-adapter/questions.js +33 -267
  820. package/lib/types/dsh-adapter/recap.d.ts +3 -15
  821. package/lib/types/dsh-adapter/recap.d.ts.map +1 -1
  822. package/lib/types/dsh-adapter/recap.js +3 -46
  823. package/lib/types/dsh-adapter/sanitize.d.ts +4 -44
  824. package/lib/types/dsh-adapter/sanitize.d.ts.map +1 -1
  825. package/lib/types/dsh-adapter/sanitize.js +4 -84
  826. package/lib/types/dsh-adapter/session-mount-heartbeat.d.ts +3 -1
  827. package/lib/types/dsh-adapter/session-mount-heartbeat.d.ts.map +1 -1
  828. package/lib/types/dsh-adapter/session-mount-heartbeat.js +4 -2
  829. package/lib/types/dsh-adapter/sessions/digest.d.ts +18 -3
  830. package/lib/types/dsh-adapter/sessions/digest.d.ts.map +1 -1
  831. package/lib/types/dsh-adapter/sessions/digest.js +60 -27
  832. package/lib/types/dsh-adapter/sessions/list.d.ts.map +1 -1
  833. package/lib/types/dsh-adapter/sessions/list.js +6 -4
  834. package/lib/types/dsh-adapter/sessions/recovery.d.ts +2 -2
  835. package/lib/types/dsh-adapter/sessions/recovery.d.ts.map +1 -1
  836. package/lib/types/dsh-adapter/sessions/recovery.js +23 -14
  837. package/lib/types/dsh-adapter/sessions/store.d.ts +2 -0
  838. package/lib/types/dsh-adapter/sessions/store.d.ts.map +1 -1
  839. package/lib/types/dsh-adapter/sessions/store.js +1 -0
  840. package/lib/types/dsh-adapter/sessions/types.d.ts +2 -0
  841. package/lib/types/dsh-adapter/sessions/types.d.ts.map +1 -1
  842. package/lib/types/dsh-adapter/sideQuestion.d.ts.map +1 -1
  843. package/lib/types/dsh-adapter/sideQuestion.js +3 -13
  844. package/lib/types/dsh-adapter/subagents.d.ts.map +1 -1
  845. package/lib/types/dsh-adapter/subagents.js +7 -0
  846. package/lib/types/dsh-adapter/themes.d.ts +1 -1
  847. package/lib/types/dsh-adapter/themes.d.ts.map +1 -1
  848. package/lib/types/dsh-adapter/trajectory/agent-source.d.ts +84 -0
  849. package/lib/types/dsh-adapter/trajectory/agent-source.d.ts.map +1 -0
  850. package/lib/types/dsh-adapter/trajectory/agent-source.js +601 -0
  851. package/lib/types/dsh-adapter/trajectory/guards.d.ts +31 -1
  852. package/lib/types/dsh-adapter/trajectory/guards.d.ts.map +1 -1
  853. package/lib/types/dsh-adapter/trajectory/guards.js +28 -0
  854. package/lib/types/dsh-adapter/trajectory/index.d.ts +3 -1
  855. package/lib/types/dsh-adapter/trajectory/index.d.ts.map +1 -1
  856. package/lib/types/dsh-adapter/trajectory/index.js +1 -0
  857. package/lib/types/dsh-adapter/trajectory/inspect.d.ts +7 -0
  858. package/lib/types/dsh-adapter/trajectory/inspect.d.ts.map +1 -1
  859. package/lib/types/dsh-adapter/trajectory/inspect.js +70 -2
  860. package/lib/types/dsh-adapter/trajectory/projection.d.ts +4 -0
  861. package/lib/types/dsh-adapter/trajectory/projection.d.ts.map +1 -1
  862. package/lib/types/dsh-adapter/trajectory/projection.js +36 -0
  863. package/lib/types/dsh-adapter/trajectory/types.d.ts +13 -0
  864. package/lib/types/dsh-adapter/trajectory/types.d.ts.map +1 -1
  865. package/lib/types/effortPrefs.d.ts +7 -0
  866. package/lib/types/effortPrefs.d.ts.map +1 -1
  867. package/lib/types/effortPrefs.js +11 -2
  868. package/lib/types/handoffAck.d.ts +57 -0
  869. package/lib/types/handoffAck.d.ts.map +1 -0
  870. package/lib/types/handoffAck.js +154 -0
  871. package/lib/types/handoffEvents.d.ts +52 -0
  872. package/lib/types/handoffEvents.d.ts.map +1 -0
  873. package/lib/types/handoffEvents.js +128 -0
  874. package/lib/types/i18n.d.ts +3189 -68
  875. package/lib/types/i18n.d.ts.map +1 -1
  876. package/lib/types/i18n.js +855 -9
  877. package/lib/types/ink/colorize.d.ts.map +1 -1
  878. package/lib/types/ink/colorize.js +8 -2
  879. package/lib/types/ink/components/AlternateScreen.d.ts +12 -1
  880. package/lib/types/ink/components/AlternateScreen.d.ts.map +1 -1
  881. package/lib/types/ink/components/AlternateScreen.js +25 -4
  882. package/lib/types/ink/components/App.d.ts +5 -1
  883. package/lib/types/ink/components/App.d.ts.map +1 -1
  884. package/lib/types/ink/components/App.js +52 -5
  885. package/lib/types/ink/components/Image.d.ts +8 -1
  886. package/lib/types/ink/components/Image.d.ts.map +1 -1
  887. package/lib/types/ink/components/Image.js +2 -2
  888. package/lib/types/ink/components/Text.d.ts +8 -1
  889. package/lib/types/ink/components/Text.d.ts.map +1 -1
  890. package/lib/types/ink/components/Text.js +11 -1
  891. package/lib/types/ink/dom.d.ts.map +1 -1
  892. package/lib/types/ink/dom.js +75 -3
  893. package/lib/types/ink/hooks/use-input.d.ts.map +1 -1
  894. package/lib/types/ink/hooks/use-input.js +9 -4
  895. package/lib/types/ink/ink.d.ts.map +1 -1
  896. package/lib/types/ink/ink.js +8 -2
  897. package/lib/types/ink/kitty-graphics.d.ts +7 -2
  898. package/lib/types/ink/kitty-graphics.d.ts.map +1 -1
  899. package/lib/types/ink/kitty-graphics.js +15 -7
  900. package/lib/types/ink/node-cache.d.ts +15 -1
  901. package/lib/types/ink/node-cache.d.ts.map +1 -1
  902. package/lib/types/ink/node-cache.js +4 -1
  903. package/lib/types/ink/output.d.ts.map +1 -1
  904. package/lib/types/ink/output.js +2 -0
  905. package/lib/types/ink/parse-keypress.d.ts +13 -0
  906. package/lib/types/ink/parse-keypress.d.ts.map +1 -1
  907. package/lib/types/ink/parse-keypress.js +438 -19
  908. package/lib/types/ink/reconciler.d.ts.map +1 -1
  909. package/lib/types/ink/reconciler.js +9 -0
  910. package/lib/types/ink/render-node-to-output.d.ts.map +1 -1
  911. package/lib/types/ink/render-node-to-output.js +200 -4
  912. package/lib/types/ink/render-stats.d.ts +35 -0
  913. package/lib/types/ink/render-stats.d.ts.map +1 -0
  914. package/lib/types/ink/render-stats.js +53 -0
  915. package/lib/types/ink/sixel-codec.d.ts +11 -1
  916. package/lib/types/ink/sixel-codec.d.ts.map +1 -1
  917. package/lib/types/ink/sixel-codec.js +10 -3
  918. package/lib/types/ink/sixel-graphics.js +2 -2
  919. package/lib/types/ink/styles.d.ts +46 -0
  920. package/lib/types/ink/styles.d.ts.map +1 -1
  921. package/lib/types/ink/terminal-image.d.ts +7 -0
  922. package/lib/types/ink/terminal-image.d.ts.map +1 -1
  923. package/lib/types/ink/terminal-querier.d.ts +1 -1
  924. package/lib/types/ink/terminal-querier.js +4 -4
  925. package/lib/types/ink/text-decoration.d.ts +49 -0
  926. package/lib/types/ink/text-decoration.d.ts.map +1 -0
  927. package/lib/types/ink/text-decoration.js +235 -0
  928. package/lib/types/ink/update-overflow-guard.d.ts +9 -0
  929. package/lib/types/ink/update-overflow-guard.d.ts.map +1 -1
  930. package/lib/types/ink/update-overflow-guard.js +41 -0
  931. package/lib/types/ink/wrap-text.d.ts.map +1 -1
  932. package/lib/types/ink/wrap-text.js +5 -1
  933. package/lib/types/kernelPrefs.d.ts +51 -0
  934. package/lib/types/kernelPrefs.d.ts.map +1 -0
  935. package/lib/types/kernelPrefs.js +126 -0
  936. package/lib/types/modelRecents.d.ts +10 -2
  937. package/lib/types/modelRecents.d.ts.map +1 -1
  938. package/lib/types/modelRecents.js +20 -7
  939. package/lib/types/screens/AgentTranscriptScene.d.ts +42 -0
  940. package/lib/types/screens/AgentTranscriptScene.d.ts.map +1 -0
  941. package/lib/types/screens/AgentTranscriptScene.js +269 -0
  942. package/lib/types/screens/Chat.d.ts +45 -7
  943. package/lib/types/screens/Chat.d.ts.map +1 -1
  944. package/lib/types/screens/Chat.js +625 -113
  945. package/lib/types/screens/Launchpad.d.ts +24 -7
  946. package/lib/types/screens/Launchpad.d.ts.map +1 -1
  947. package/lib/types/screens/Launchpad.js +147 -28
  948. package/lib/types/screens/SessionSupervisor.d.ts +3 -3
  949. package/lib/types/screens/SessionSupervisor.d.ts.map +1 -1
  950. package/lib/types/screens/SessionSupervisor.js +69 -5
  951. package/lib/types/screens/Settings.d.ts.map +1 -1
  952. package/lib/types/screens/Settings.js +211 -7
  953. package/lib/types/screens/StatusLine.d.ts +40 -1
  954. package/lib/types/screens/StatusLine.d.ts.map +1 -1
  955. package/lib/types/screens/StatusLine.js +131 -19
  956. package/lib/types/screens/StatusMetrics.d.ts +53 -17
  957. package/lib/types/screens/StatusMetrics.d.ts.map +1 -1
  958. package/lib/types/screens/StatusMetrics.js +141 -30
  959. package/lib/types/screens/TrajectoryScene.d.ts.map +1 -1
  960. package/lib/types/screens/TrajectoryScene.js +74 -12
  961. package/lib/types/screens/chat/backendCommands.d.ts +37 -0
  962. package/lib/types/screens/chat/backendCommands.d.ts.map +1 -0
  963. package/lib/types/screens/chat/backendCommands.js +51 -0
  964. package/lib/types/screens/chat/useBackendChannels.d.ts +20 -0
  965. package/lib/types/screens/chat/useBackendChannels.d.ts.map +1 -0
  966. package/lib/types/screens/chat/useBackendChannels.js +117 -0
  967. package/lib/types/screens/chat/useKernelPicker.d.ts +23 -0
  968. package/lib/types/screens/chat/useKernelPicker.d.ts.map +1 -0
  969. package/lib/types/screens/chat/useKernelPicker.js +72 -0
  970. package/lib/types/screens/chatOverlay.d.ts +32 -2
  971. package/lib/types/screens/chatOverlay.d.ts.map +1 -1
  972. package/lib/types/screens/chatOverlay.js +9 -0
  973. package/lib/types/screens/sessionSupervisor/useForeignSessions.d.ts.map +1 -1
  974. package/lib/types/screens/sessionSupervisor/useForeignSessions.js +5 -1
  975. package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts +14 -0
  976. package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts.map +1 -1
  977. package/lib/types/screens/sessionSupervisor/useSessionSupervisor.js +97 -22
  978. package/lib/types/sessionHistory.d.ts +18 -1
  979. package/lib/types/sessionHistory.d.ts.map +1 -1
  980. package/lib/types/sessionHistory.js +46 -4
  981. package/lib/types/sessionPins.d.ts +7 -0
  982. package/lib/types/sessionPins.d.ts.map +1 -1
  983. package/lib/types/sessionPins.js +9 -0
  984. package/lib/types/sessions/resumeFailure.d.ts.map +1 -1
  985. package/lib/types/sessions/resumeFailure.js +2 -1
  986. package/lib/types/settings/definitions.d.ts +74 -0
  987. package/lib/types/settings/definitions.d.ts.map +1 -1
  988. package/lib/types/settings/definitions.js +50 -4
  989. package/lib/types/terminal-utils/hyperlink.d.ts +2 -2
  990. package/lib/types/terminal-utils/hyperlink.d.ts.map +1 -1
  991. package/lib/types/terminal-utils/hyperlink.js +21 -4
  992. package/lib/types/terminal-utils/markdown.d.ts +34 -6
  993. package/lib/types/terminal-utils/markdown.d.ts.map +1 -1
  994. package/lib/types/terminal-utils/markdown.js +257 -66
  995. package/lib/types/theme.d.ts +49 -8
  996. package/lib/types/theme.d.ts.map +1 -1
  997. package/lib/types/theme.js +514 -18
  998. package/lib/types/tips.js +2 -2
  999. package/lib/types/trajectory/effortIgnition.d.ts +25 -7
  1000. package/lib/types/trajectory/effortIgnition.d.ts.map +1 -1
  1001. package/lib/types/trajectory/effortIgnition.js +106 -34
  1002. package/lib/types/trajectory/window.d.ts +26 -0
  1003. package/lib/types/trajectory/window.d.ts.map +1 -0
  1004. package/lib/types/trajectory/window.js +27 -0
  1005. package/lib/types/tuiDisplayPrefs.d.ts +38 -1
  1006. package/lib/types/tuiDisplayPrefs.d.ts.map +1 -1
  1007. package/lib/types/tuiDisplayPrefs.js +45 -1
  1008. package/lib/types/update.d.ts +88 -3
  1009. package/lib/types/update.d.ts.map +1 -1
  1010. package/lib/types/update.js +285 -18
  1011. package/lib/types/utils/crashDetail.d.ts +56 -0
  1012. package/lib/types/utils/crashDetail.d.ts.map +1 -0
  1013. package/lib/types/utils/crashDetail.js +175 -0
  1014. package/lib/types/utils/imageResize.d.ts +9 -23
  1015. package/lib/types/utils/imageResize.d.ts.map +1 -1
  1016. package/lib/types/utils/imageResize.js +24 -20
  1017. package/lib/types/utils/inputPaste.d.ts +9 -8
  1018. package/lib/types/utils/inputPaste.d.ts.map +1 -1
  1019. package/lib/types/utils/inputPaste.js +53 -16
  1020. package/lib/types/utils/jsonl.d.ts +24 -0
  1021. package/lib/types/utils/jsonl.d.ts.map +1 -0
  1022. package/lib/types/utils/jsonl.js +36 -0
  1023. package/package.json +18 -2
@@ -414,6 +414,1488 @@ declare const dict: {
414
414
  readonly zh: "发送失败 · {{err}}";
415
415
  readonly en: "Send failed · {{err}}";
416
416
  };
417
+ readonly 'agent-message-native-envelope': {
418
+ readonly zh: "请通过 {{tool}} 将下面的消息发送给子代理 {{name}}(id: {{id}})。不要代替子代理回复。\n\n{{text}}";
419
+ readonly en: "Use {{tool}} to send the following message to subagent {{name}} (id: {{id}}). Do not answer on behalf of the subagent.\n\n{{text}}";
420
+ };
421
+ readonly 'agent-message-envelope': {
422
+ readonly zh: "请把下面这条用户消息原样转发给子代理「{{name}}」(目标标识 {{id}}):使用 SendMessage 工具投递,不要改写内容,也不要代替它作答。转发后简短告知结果即可。\n\n{{text}}";
423
+ readonly en: "Please relay the following user message verbatim to subagent \"{{name}}\" (target id {{id}}): deliver it with the SendMessage tool, do not rewrite its content and do not answer on its behalf. Briefly report the outcome afterwards.\n\n{{text}}";
424
+ };
425
+ readonly 'session-cleared': {
426
+ readonly zh: "会话已清屏";
427
+ readonly en: "Session cleared";
428
+ };
429
+ readonly 'conversation-reset': {
430
+ readonly zh: "对话已重置,之前的上下文已清空";
431
+ readonly en: "The conversation was reset; the earlier context is gone";
432
+ };
433
+ readonly 'conversation-reset-clear': {
434
+ readonly zh: "对话已清空,接下来从新的上下文开始";
435
+ readonly en: "Conversation cleared; continuing with a fresh context";
436
+ };
437
+ readonly 'conversation-reset-plan': {
438
+ readonly zh: "退出计划模式时清空了上下文,接下来带着计划从新的上下文开始";
439
+ readonly en: "Context cleared on leaving plan mode; continuing from a fresh context with the plan";
440
+ };
441
+ readonly 'conversation-reset-fresh': {
442
+ readonly zh: "已开新会话来执行计划";
443
+ readonly en: "Started a fresh session to carry out the plan";
444
+ };
445
+ readonly 'cost-source-backend': {
446
+ readonly zh: "内核上报的会话费用";
447
+ readonly en: "session cost reported by the kernel";
448
+ };
449
+ readonly 'capability-unavailable-backend': {
450
+ readonly zh: "当前内核不支持:{{name}}";
451
+ readonly en: "Not supported by this kernel: {{name}}";
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': {
590
+ readonly zh: "低";
591
+ readonly en: "Low";
592
+ };
593
+ readonly 'claude-effort-medium': {
594
+ readonly zh: "中";
595
+ readonly en: "Medium";
596
+ };
597
+ readonly 'claude-effort-high': {
598
+ readonly zh: "高";
599
+ readonly en: "High";
600
+ };
601
+ readonly 'claude-effort-xhigh': {
602
+ readonly zh: "超高";
603
+ readonly en: "Extra high";
604
+ };
605
+ readonly 'claude-effort-max': {
606
+ readonly zh: "最高";
607
+ readonly en: "Max";
608
+ };
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
+ readonly 'login-backend-heading': {
710
+ readonly zh: "{{backend}} 登录状态";
711
+ readonly en: "{{backend}} sign-in";
712
+ };
713
+ readonly 'login-backend-no-oauth': {
714
+ readonly zh: "未挂载 dsh-auth 登录服务:只能用内核自己的凭证(环境变量或它自己的登录)";
715
+ readonly en: "No dsh-auth sign-in service is mounted: only the kernel's own credentials apply (environment or its own login)";
716
+ };
717
+ readonly 'login-backend-oauth-removed': {
718
+ readonly zh: "已移除 {{provider}} 的 dsh-auth 登录;内核原生登录未修改,已载入令牌需正常重启后停止使用";
719
+ readonly en: "Removed the {{provider}} dsh-auth credential; native login is unchanged. Restart normally to stop using already-loaded tokens";
720
+ };
721
+ readonly 'login-backend-oauth-missing': {
722
+ readonly zh: "dsh-auth 没有 {{provider}} 的登录可移除;内核原生登录未修改";
723
+ readonly en: "No {{provider}} dsh-auth credential to remove; native login is unchanged";
724
+ };
725
+ readonly 'login-backend-reconnected': {
726
+ readonly zh: "已用新凭证重新连接 {{backend}} 会话";
727
+ readonly en: "The {{backend}} session reconnected with the new credential";
728
+ };
729
+ readonly 'login-backend-reconnect-failed': {
730
+ readonly zh: "用新凭证重新连接失败 · {{err}}";
731
+ readonly en: "Reconnecting with the new credential failed · {{err}}";
732
+ };
733
+ readonly 'provider-oauth-unmounted': {
734
+ readonly zh: "dsh-auth 未挂载 {{provider}} 登录(在 dsh-auth 配置的 providers 中加入它)";
735
+ readonly en: "dsh-auth does not mount the {{provider}} sign-in (add it to the dsh-auth providers config)";
736
+ };
737
+ readonly 'backend-mcp-heading': {
738
+ readonly zh: "MCP 服务器({{n}})";
739
+ readonly en: "MCP servers ({{n}})";
740
+ };
741
+ readonly 'backend-mcp-row': {
742
+ readonly zh: " {{name}} · {{status}}{{tools}}";
743
+ readonly en: " {{name}} · {{status}}{{tools}}";
744
+ };
745
+ readonly 'backend-mcp-tools': {
746
+ readonly zh: " · {{n}} 个工具";
747
+ readonly en: " · {{n}} tools";
748
+ };
749
+ readonly 'backend-mcp-none': {
750
+ readonly zh: "没有配置 MCP 服务器";
751
+ readonly en: "No MCP servers configured";
752
+ };
753
+ readonly 'backend-mcp-loading': {
754
+ readonly zh: "正在读取 MCP 状态,稍后再运行 /mcp";
755
+ readonly en: "Reading MCP status; run /mcp again in a moment";
756
+ };
757
+ readonly 'mcp-control-usage': {
758
+ readonly zh: "用法:/mcp reconnect <服务器> 或 /mcp toggle <服务器> on|off";
759
+ readonly en: "Usage: /mcp reconnect <server> or /mcp toggle <server> on|off";
760
+ };
761
+ readonly 'mcp-reconnected': {
762
+ readonly zh: "已重新连接 MCP 服务器 {{name}}";
763
+ readonly en: "Reconnected the MCP server {{name}}";
764
+ };
765
+ readonly 'mcp-enabled': {
766
+ readonly zh: "已开启 MCP 服务器 {{name}}";
767
+ readonly en: "Enabled the MCP server {{name}}";
768
+ };
769
+ readonly 'mcp-disabled': {
770
+ readonly zh: "已关闭 MCP 服务器 {{name}}";
771
+ readonly en: "Disabled the MCP server {{name}}";
772
+ };
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
+ readonly 'backend-mcp-needs-auth': {
782
+ readonly zh: "需要授权的服务器请在终端运行 claude 后用 /mcp 完成";
783
+ readonly en: "For servers that need auth, finish it with /mcp in an interactive `claude`";
784
+ };
785
+ readonly 'context-tokens': {
786
+ readonly zh: "{{n}} tokens";
787
+ readonly en: "{{n}} tokens";
788
+ };
789
+ readonly 'status-rate-limit': {
790
+ readonly zh: "订阅用量 {{usage}}";
791
+ readonly en: "Subscription usage {{usage}}";
792
+ };
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
+ readonly 'interrupt-failed': {
814
+ readonly zh: "打断请求失败:排队消息没有撤回,仍会在下一回合发送;已取消暂存,避免重复发送";
815
+ 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";
816
+ };
817
+ readonly 'interrupt-unconfirmed': {
818
+ readonly zh: "无法确认排队消息已撤回:它们仍会在下一回合发送,不再暂存";
819
+ readonly en: "Could not confirm the queued messages were withdrawn: they will still run next turn and are no longer held";
820
+ };
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
+ readonly 'cmd-unavailable-backend': {
1896
+ readonly zh: "/{{cmd}} 在 {{backend}} 内核下不可用";
1897
+ readonly en: "/{{cmd}} is not available on the {{backend}} kernel";
1898
+ };
417
1899
  readonly 'export-user-section': {
418
1900
  readonly zh: "## 用户";
419
1901
  readonly en: "## User";
@@ -490,6 +1972,10 @@ declare const dict: {
490
1972
  readonly zh: "会话: {{id}}";
491
1973
  readonly en: "Session: {{id}}";
492
1974
  };
1975
+ readonly 'doctor-backend': {
1976
+ readonly zh: "内核: {{label}} ({{id}})";
1977
+ readonly en: "Kernel: {{label}} ({{id}})";
1978
+ };
493
1979
  readonly 'doctor-config': {
494
1980
  readonly zh: "配置: {{candidate}} {{state}}";
495
1981
  readonly en: "Config: {{candidate}} {{state}}";
@@ -554,6 +2040,22 @@ declare const dict: {
554
2040
  readonly zh: "失败";
555
2041
  readonly en: "failed";
556
2042
  };
2043
+ readonly 'subagent-status-unknown': {
2044
+ readonly zh: "状态未知";
2045
+ readonly en: "status unknown";
2046
+ };
2047
+ readonly 'subagent-task-fallback': {
2048
+ readonly zh: "{{kind}} 任务";
2049
+ readonly en: "{{kind}} task";
2050
+ };
2051
+ readonly 'subagent-background': {
2052
+ readonly zh: "后台";
2053
+ readonly en: "background";
2054
+ };
2055
+ readonly 'subagent-interrupt-failed': {
2056
+ readonly zh: "无法停止子代理 {{id}}(已结束或被拒绝)";
2057
+ readonly en: "Could not stop subagent {{id}} (already finished or refused)";
2058
+ };
557
2059
  readonly 'agent-preset-switched': {
558
2060
  readonly zh: "Agent preset 已切换:{{preset}}";
559
2061
  readonly en: "Agent preset switched: {{preset}}";
@@ -598,6 +2100,54 @@ declare const dict: {
598
2100
  readonly zh: "该点之后没有可回退的内容";
599
2101
  readonly en: "Nothing to rewind past this point";
600
2102
  };
2103
+ readonly 'rewind-while-working': {
2104
+ readonly zh: "回合运行中,无法回退";
2105
+ readonly en: "Cannot rewind while a turn is running";
2106
+ };
2107
+ readonly 'rewind-unanchored': {
2108
+ readonly zh: "这条消息没有可回退的锚点";
2109
+ readonly en: "This message has no rewind anchor";
2110
+ };
2111
+ readonly 'rewind-files-count': {
2112
+ readonly zh: "{{n}} 个文件";
2113
+ readonly en: "{{n}} file(s)";
2114
+ };
2115
+ readonly 'rewind-files-restored': {
2116
+ readonly zh: "已恢复文件 · {{summary}}";
2117
+ readonly en: "Files restored · {{summary}}";
2118
+ };
2119
+ readonly 'session-switch-input-parked': {
2120
+ readonly zh: "还有输入未送达当前会话({{input}}),送达后再切换";
2121
+ readonly en: "An input is still on its way to this session ({{input}}); switch once it has been delivered";
2122
+ };
2123
+ readonly 'rewind-conversation-failed': {
2124
+ readonly zh: "文件已恢复,但会话回退失败 · {{err}}";
2125
+ readonly en: "Files restored, but the conversation rewind failed · {{err}}";
2126
+ };
2127
+ readonly 'rewind-fork-kept': {
2128
+ readonly zh: "回退副本已保存但未能切换过去;可用此命令进入:{{command}}";
2129
+ readonly en: "The rewound copy is saved but could not be opened here; enter it with: {{command}}";
2130
+ };
2131
+ readonly 'rewind-mode-both': {
2132
+ readonly zh: "回退会话并恢复文件";
2133
+ readonly en: "Rewind conversation and restore files";
2134
+ };
2135
+ readonly 'rewind-mode-files': {
2136
+ readonly zh: "仅恢复文件(会话不变)";
2137
+ readonly en: "Restore files only (conversation unchanged)";
2138
+ };
2139
+ readonly 'rename-failed': {
2140
+ readonly zh: "重命名失败 · {{err}}";
2141
+ readonly en: "Rename failed · {{err}}";
2142
+ };
2143
+ readonly 'session-archive-failed': {
2144
+ readonly zh: "归档会话失败 · {{err}}";
2145
+ readonly en: "Archiving the session failed · {{err}}";
2146
+ };
2147
+ readonly 'session-delete-failed': {
2148
+ readonly zh: "删除会话失败 · {{err}}";
2149
+ readonly en: "Deleting the session failed · {{err}}";
2150
+ };
601
2151
  readonly 'rewind-session-changed': {
602
2152
  readonly zh: "会话已切换,回退已放弃";
603
2153
  readonly en: "The session changed; the rewind was dropped";
@@ -858,6 +2408,14 @@ declare const dict: {
858
2408
  readonly zh: "新建会话失败 · {{err}}";
859
2409
  readonly en: "New session failed · {{err}}";
860
2410
  };
2411
+ readonly 'resume-raced': {
2412
+ readonly zh: "会话打开期间当前会话开始了新的回合,已取消恢复;该回合在当前会话中继续";
2413
+ readonly en: "The current session started a turn while the other one was opening — the resume was cancelled; the turn continues here";
2414
+ };
2415
+ readonly 'new-session-raced': {
2416
+ readonly zh: "新会话打开期间当前会话开始了新的回合,已取消 /new;该回合在当前会话中继续";
2417
+ readonly en: "The current session started a turn while the new one was opening — /new was cancelled; the turn continues here";
2418
+ };
861
2419
  readonly 'new-session-attach-failed': {
862
2420
  readonly zh: "会话已创建,但工作区挂载失败 · {{err}}";
863
2421
  readonly en: "Session created, but workspace attachment failed · {{err}}";
@@ -1500,17 +3058,61 @@ declare const dict: {
1500
3058
  readonly zh: "已停止会话「{{name}}」";
1501
3059
  readonly en: "Stopped session {{name}}";
1502
3060
  };
1503
- readonly 'supervisor-stop-failed': {
1504
- readonly zh: "无法停止该会话";
1505
- readonly en: "Could not stop that session";
3061
+ readonly 'supervisor-stop-failed': {
3062
+ readonly zh: "无法停止该会话";
3063
+ readonly en: "Could not stop that session";
3064
+ };
3065
+ readonly 'supervisor-stop-current': {
3066
+ readonly zh: "不能停止当前正在使用的会话";
3067
+ readonly en: "The session you are attached to cannot be stopped";
3068
+ };
3069
+ readonly 'supervisor-open-failed': {
3070
+ readonly zh: "无法进入会话「{{name}}」· {{reason}}";
3071
+ readonly en: "Could not enter {{name}} · {{reason}}";
3072
+ };
3073
+ readonly 'supervisor-hint-list-backend': {
3074
+ readonly zh: "**←/→** 切换栏位 · **Enter** 进入会话 · Ctrl+R 重命名 · Ctrl+D 删除 · Esc 返回";
3075
+ readonly en: "**←/→** switch pane · **Enter** enter · Ctrl+R rename · Ctrl+D delete · Esc back";
3076
+ };
3077
+ readonly 'supervisor-hint-list-archive': {
3078
+ readonly zh: "**←/→** 切换栏位 · **Enter** 进入会话 · Ctrl+R 重命名 · Ctrl+D 归档 · Esc 返回";
3079
+ readonly en: "**←/→** switch pane · **Enter** enter · Ctrl+R rename · Ctrl+D archive · Esc back";
3080
+ };
3081
+ readonly 'supervisor-archive-confirm': {
3082
+ readonly zh: "归档会话「{{name}}」?原生对话记录保留 · **Enter** 确认 · Esc 取消";
3083
+ readonly en: "Archive session {{name}}? The native transcript is kept · **Enter** confirm · Esc cancel";
3084
+ };
3085
+ readonly 'supervisor-archive-current': {
3086
+ readonly zh: "不能归档当前正在使用的会话";
3087
+ readonly en: "The session you are attached to cannot be archived";
3088
+ };
3089
+ readonly 'supervisor-archive-failed': {
3090
+ readonly zh: "无法归档会话「{{name}}」";
3091
+ readonly en: "Could not archive {{name}}";
3092
+ };
3093
+ readonly 'supervisor-archived': {
3094
+ readonly zh: "已归档会话「{{name}}」";
3095
+ readonly en: "Archived session {{name}}";
3096
+ };
3097
+ readonly 'supervisor-hint-session-rename': {
3098
+ readonly zh: "输入新标题 · **Enter** 保存 · Esc 取消";
3099
+ readonly en: "Type a new title · **Enter** save · Esc cancel";
3100
+ };
3101
+ readonly 'supervisor-delete-confirm': {
3102
+ readonly zh: "删除会话「{{name}}」?对话记录会从磁盘移除 · **Enter** 确认 · Esc 取消";
3103
+ readonly en: "Delete session {{name}}? Its transcript is removed from disk · **Enter** confirm · Esc cancel";
3104
+ };
3105
+ readonly 'supervisor-delete-current': {
3106
+ readonly zh: "不能删除当前正在使用的会话";
3107
+ readonly en: "The session you are attached to cannot be deleted";
1506
3108
  };
1507
- readonly 'supervisor-stop-current': {
1508
- readonly zh: "不能停止当前正在使用的会话";
1509
- readonly en: "The session you are attached to cannot be stopped";
3109
+ readonly 'supervisor-delete-failed': {
3110
+ readonly zh: "无法删除会话「{{name}}」";
3111
+ readonly en: "Could not delete {{name}}";
1510
3112
  };
1511
- readonly 'supervisor-open-failed': {
1512
- readonly zh: "无法进入会话「{{name}}」· {{reason}}";
1513
- readonly en: "Could not enter {{name}} · {{reason}}";
3113
+ readonly 'supervisor-deleted': {
3114
+ readonly zh: "已删除会话「{{name}}」";
3115
+ readonly en: "Deleted session {{name}}";
1514
3116
  };
1515
3117
  readonly 'supervisor-hint-tabs': {
1516
3118
  readonly zh: "**Tab** 切换来源";
@@ -1596,6 +3198,10 @@ declare const dict: {
1596
3198
  readonly zh: "上下文占用 {{percent}}%({{used}}/{{window}})";
1597
3199
  readonly en: "Context occupancy {{percent}}% ({{used}}/{{window}})";
1598
3200
  };
3201
+ readonly 'context-bar-used': {
3202
+ readonly zh: "已用";
3203
+ readonly en: "used";
3204
+ };
1599
3205
  readonly 'status-title': {
1600
3206
  readonly zh: "标题 {{title}}";
1601
3207
  readonly en: "Title {{title}}";
@@ -1864,6 +3470,22 @@ declare const dict: {
1864
3470
  readonly zh: "权限预设";
1865
3471
  readonly en: "Permission preset";
1866
3472
  };
3473
+ readonly 'permission-mode-picker-title': {
3474
+ readonly zh: "权限模式";
3475
+ readonly en: "Permission mode";
3476
+ };
3477
+ readonly 'permission-mode-current': {
3478
+ readonly zh: "当前权限模式 {{name}}";
3479
+ readonly en: "Current permission mode {{name}}";
3480
+ };
3481
+ readonly 'permission-mode-switch-hint': {
3482
+ readonly zh: "切换:/permission <模式>,或点击底栏模式段";
3483
+ readonly en: "Switch with /permission <mode>, or click the mode segment in the footer";
3484
+ };
3485
+ readonly 'permission-mode-unknown': {
3486
+ readonly zh: "没有这个权限模式:{{id}}";
3487
+ readonly en: "No such permission mode: {{id}}";
3488
+ };
1867
3489
  readonly 'permission-preset-readonly': {
1868
3490
  readonly zh: "只读";
1869
3491
  readonly en: "Read-only";
@@ -2048,14 +3670,78 @@ declare const dict: {
2048
3670
  readonly zh: "主题「{{name}}」切换失败(无法写入 ~/.dsh-tui/theme.json)";
2049
3671
  readonly en: "Theme \"{{name}}\" switch failed (cannot write ~/.dsh-tui/theme.json)";
2050
3672
  };
2051
- readonly 'interrupt-delivered': {
2052
- readonly zh: "已打断当前回合,{{n}} 条消息立即处理";
2053
- readonly en: "Interrupted current turn, {{n}} messages processed immediately";
2054
- };
2055
3673
  readonly 'btw-usage': {
2056
3674
  readonly zh: "用法:/btw <问题> —— 不打断当前对话的快速侧问";
2057
3675
  readonly en: "Usage: /btw <question> — quick side question without interrupting the conversation";
2058
3676
  };
3677
+ readonly 'panel-title-btw': {
3678
+ readonly zh: "侧问";
3679
+ readonly en: "btw";
3680
+ };
3681
+ readonly 'btw-thread-empty': {
3682
+ readonly zh: "还没有侧问。输入 /btw <问题>,或在下方直接追问。";
3683
+ readonly en: "No side questions yet. Type /btw <question>, or ask a follow-up below.";
3684
+ };
3685
+ readonly 'btw-thread-new': {
3686
+ readonly zh: "新话题";
3687
+ readonly en: "New topic";
3688
+ };
3689
+ readonly 'btw-thread-clear': {
3690
+ readonly zh: "已开始新话题:上下文与未读已清空";
3691
+ readonly en: "New topic started: context and unread cleared";
3692
+ };
3693
+ readonly 'btw-thread-context-recent': {
3694
+ readonly zh: "后续答案参考最近 {{n}} 组问答";
3695
+ readonly en: "Answers use the last {{n}} Q/A pairs as context";
3696
+ };
3697
+ readonly 'btw-thread-context-omitted': {
3698
+ readonly zh: "已省略更早 {{n}} 组问答";
3699
+ readonly en: "{{n}} earlier Q/A pair(s) omitted";
3700
+ };
3701
+ readonly 'btw-thread-followup': {
3702
+ readonly zh: "输入追问…(Enter 发送 · Esc 回到对话 · Tab 切列表)";
3703
+ readonly en: "Type a follow-up… (Enter send · Esc back to chat · Tab list)";
3704
+ };
3705
+ readonly 'btw-thread-busy': {
3706
+ readonly zh: "上一个侧问还在回答,等它结束再追问";
3707
+ readonly en: "Still answering the last side question; ask again once it finishes";
3708
+ };
3709
+ readonly 'btw-thread-error': {
3710
+ readonly zh: "本轮失败";
3711
+ readonly en: "This turn failed";
3712
+ };
3713
+ readonly 'btw-thread-cancelled': {
3714
+ readonly zh: "已取消本轮侧问";
3715
+ readonly en: "Side question cancelled";
3716
+ };
3717
+ readonly 'btw-thread-unread': {
3718
+ readonly zh: "有新回答";
3719
+ readonly en: "New answer";
3720
+ };
3721
+ readonly 'btw-thread-send-to-chat': {
3722
+ readonly zh: "发送到聊天";
3723
+ readonly en: "Send to chat";
3724
+ };
3725
+ readonly 'btw-thread-answer-attached': {
3726
+ readonly zh: "答案已附加到下一次主聊天提交";
3727
+ readonly en: "Answer attached to your next main chat submission";
3728
+ };
3729
+ readonly 'btw-thread-answer-truncated': {
3730
+ readonly zh: "答案过长,附加时已截断";
3731
+ readonly en: "Answer exceeded the attach limit and was truncated";
3732
+ };
3733
+ readonly 'btw-fullscreen-title': {
3734
+ readonly zh: "btw 侧问线程";
3735
+ readonly en: "btw side thread";
3736
+ };
3737
+ readonly 'btw-panel-unavailable': {
3738
+ readonly zh: "btw 面板未启用(/settings → dsh-tui.sidePanel.panels)";
3739
+ readonly en: "btw panel not enabled (/settings → dsh-tui.sidePanel.panels)";
3740
+ };
3741
+ readonly 'btw-output-unavailable': {
3742
+ readonly zh: "没有收到回答";
3743
+ readonly en: "No answer received";
3744
+ };
2059
3745
  readonly 'btw-answering': {
2060
3746
  readonly zh: "思考中…";
2061
3747
  readonly en: "Answering…";
@@ -2288,6 +3974,10 @@ declare const dict: {
2288
3974
  readonly zh: "用法:/effort(滑杆)| /effort <id> | /effort status";
2289
3975
  readonly en: "Usage: /effort (slider) | /effort <id> | /effort status";
2290
3976
  };
3977
+ readonly 'effort-fallback-tier-note': {
3978
+ readonly zh: "该模型没有声明推理档位,这里列出的是通用档位";
3979
+ readonly en: "This model declares no effort levels; these are the standard ones";
3980
+ };
2291
3981
  readonly 'mode-switched': {
2292
3982
  readonly zh: "模式 → {{name}}";
2293
3983
  readonly en: "Mode → {{name}}";
@@ -2580,8 +4270,28 @@ declare const dict: {
2580
4270
  readonly en: "Queued · delivered after the turn";
2581
4271
  };
2582
4272
  readonly 'input-pending-actions-hint': {
2583
- readonly zh: "撤回 · Esc 打断并立即发送";
2584
- readonly en: "Retract · Esc interrupts and sends immediately";
4273
+ readonly zh: "撤回 · Esc 打断并暂存排队消息";
4274
+ readonly en: "Retract · Esc interrupts and holds the queue";
4275
+ };
4276
+ readonly 'input-pending-dock-label': {
4277
+ readonly zh: "已暂存 · 打断后保留,不会自动发送";
4278
+ readonly en: "Held · kept after the interrupt, not sent automatically";
4279
+ };
4280
+ readonly 'input-pending-dock-hint': {
4281
+ readonly zh: "按 ↑ 编辑排队消息,⏎ 立即发送";
4282
+ readonly en: "Press ↑ to edit queued messages, ⏎ to send now";
4283
+ };
4284
+ readonly 'input-dock-sent': {
4285
+ readonly zh: "已发送 {{n}} 条暂存消息";
4286
+ readonly en: "Sent {{n}} held message(s)";
4287
+ };
4288
+ readonly 'input-dock-swapped': {
4289
+ readonly zh: "已交换:草稿暂存,所点消息回到输入框(Ctrl+Z 换回)";
4290
+ readonly en: "Swapped: the draft is held and the picked message is back in the input (Ctrl+Z swaps back)";
4291
+ };
4292
+ readonly 'input-dock-confirming': {
4293
+ readonly zh: "{{n}} 条暂存消息还在等打断完成,稍后再发送或编辑";
4294
+ readonly en: "{{n}} held message(s) are waiting for the interrupt to finish; send or edit again in a moment";
2585
4295
  };
2586
4296
  readonly 'input-fold-stats': {
2587
4297
  readonly zh: "{{lines}} 行・{{chars}} 字";
@@ -2683,6 +4393,22 @@ declare const dict: {
2683
4393
  readonly zh: "联网搜索";
2684
4394
  readonly en: "WebSearch";
2685
4395
  };
4396
+ readonly 'tool-name-multiedit': {
4397
+ readonly zh: "多处编辑";
4398
+ readonly en: "MultiEdit";
4399
+ };
4400
+ readonly 'tool-name-notebookedit': {
4401
+ readonly zh: "笔记本编辑";
4402
+ readonly en: "NotebookEdit";
4403
+ };
4404
+ readonly 'tool-name-webfetch': {
4405
+ readonly zh: "网页抓取";
4406
+ readonly en: "WebFetch";
4407
+ };
4408
+ readonly 'tool-name-skill': {
4409
+ readonly zh: "技能";
4410
+ readonly en: "Skill";
4411
+ };
2686
4412
  readonly 'tool-exit-code': {
2687
4413
  readonly zh: "退出码 {{code}}";
2688
4414
  readonly en: "Exit code {{code}}";
@@ -2695,6 +4421,21 @@ declare const dict: {
2695
4421
  readonly zh: "运行中…({{duration}})";
2696
4422
  readonly en: "Running… ({{duration}})";
2697
4423
  };
4424
+ readonly 'diff-patch-added': {
4425
+ readonly zh: "新文件";
4426
+ readonly en: "new file";
4427
+ };
4428
+ readonly 'diff-patch-deleted': {
4429
+ readonly zh: "已删除";
4430
+ readonly en: "deleted";
4431
+ };
4432
+ readonly 'tool-live-omitted': {
4433
+ readonly zh: "… 已省略 {{count}} 行";
4434
+ readonly en: {
4435
+ readonly one: "… {{count}} line omitted";
4436
+ readonly other: "… {{count}} lines omitted";
4437
+ };
4438
+ };
2698
4439
  readonly 'search-results-total': {
2699
4440
  readonly zh: "…(共 {{n}} 条)";
2700
4441
  readonly en: "… ({{n}} total)";
@@ -2703,6 +4444,66 @@ declare const dict: {
2703
4444
  readonly zh: "… +{{n}} 行({{key}} 展开)";
2704
4445
  readonly en: "… +{{n}} lines ({{key}} to expand)";
2705
4446
  };
4447
+ readonly 'tool-card-lines-unit': {
4448
+ readonly zh: "{{n}} 行";
4449
+ readonly en: "{{n}} lines";
4450
+ };
4451
+ readonly 'tool-card-chars-unit': {
4452
+ readonly zh: "{{n}} 字符";
4453
+ readonly en: "{{n}} chars";
4454
+ };
4455
+ readonly 'tool-card-lines-hidden': {
4456
+ readonly zh: "… 已折叠 {{parts}}({{key}} 展开)";
4457
+ readonly en: "… folded {{parts}} ({{key}} to expand)";
4458
+ };
4459
+ readonly 'tool-card-source-truncated': {
4460
+ readonly zh: "原始数据已折叠:以上是预览,全文保留在会话日志里";
4461
+ readonly en: "Source folded: the above is a preview; the session log keeps the full text";
4462
+ };
4463
+ readonly 'tool-card-full-unavailable': {
4464
+ readonly zh: "以上是整理后的视图,没有保留可展开的原始全文";
4465
+ readonly en: "Formatted view above; no raw full text was kept to expand";
4466
+ };
4467
+ readonly 'tool-card-window-shown': {
4468
+ readonly zh: "… 只显示前 {{shown}}/{{total}} 行(全文仍保留)";
4469
+ readonly en: "… showing the first {{shown}}/{{total}} lines (the full text is kept)";
4470
+ };
4471
+ readonly 'usage-turn-summary': {
4472
+ readonly zh: "本轮";
4473
+ readonly en: "turn";
4474
+ };
4475
+ readonly 'usage-cache-read': {
4476
+ readonly zh: "读 {{n}}";
4477
+ readonly en: "read {{n}}";
4478
+ };
4479
+ readonly 'usage-cache-write': {
4480
+ readonly zh: "写 {{n}}";
4481
+ readonly en: "write {{n}}";
4482
+ };
4483
+ readonly 'usage-cache-segment': {
4484
+ readonly zh: "缓存 {{parts}}";
4485
+ readonly en: "cache {{parts}}";
4486
+ };
4487
+ readonly 'usage-retry-segment': {
4488
+ readonly zh: "重试 {{n}} 次";
4489
+ readonly en: "{{n}} retries";
4490
+ };
4491
+ readonly 'usage-turn-outcome-interrupted': {
4492
+ readonly zh: "已中断";
4493
+ readonly en: "interrupted";
4494
+ };
4495
+ readonly 'usage-turn-outcome-error': {
4496
+ readonly zh: "未完成";
4497
+ readonly en: "unfinished";
4498
+ };
4499
+ readonly 'usage-sampled-at': {
4500
+ readonly zh: "截至 {{time}}";
4501
+ readonly en: "as of {{time}}";
4502
+ };
4503
+ readonly 'usage-last-turn': {
4504
+ readonly zh: "上一轮";
4505
+ readonly en: "last turn";
4506
+ };
2706
4507
  readonly 'sugg-commands-title': {
2707
4508
  readonly zh: "命令";
2708
4509
  readonly en: "commands";
@@ -2767,6 +4568,26 @@ declare const dict: {
2767
4568
  readonly zh: "清除会话颜色,恢复主题默认";
2768
4569
  readonly en: "Clear the session color";
2769
4570
  };
4571
+ readonly 'sugg-mcp-reconnect-desc': {
4572
+ readonly zh: "重新连接一个 MCP 服务器";
4573
+ readonly en: "Reconnect an MCP server";
4574
+ };
4575
+ readonly 'sugg-mcp-toggle-desc': {
4576
+ readonly zh: "开启或关闭一个 MCP 服务器";
4577
+ readonly en: "Turn an MCP server on or off";
4578
+ };
4579
+ readonly 'sugg-mcp-server-desc': {
4580
+ readonly zh: "MCP 服务器";
4581
+ readonly en: "MCP server";
4582
+ };
4583
+ readonly 'sugg-mcp-on-desc': {
4584
+ readonly zh: "开启该服务器";
4585
+ readonly en: "Enable the server";
4586
+ };
4587
+ readonly 'sugg-mcp-off-desc': {
4588
+ readonly zh: "关闭该服务器";
4589
+ readonly en: "Disable the server";
4590
+ };
2770
4591
  readonly 'sugg-color-name-desc': {
2771
4592
  readonly zh: "会话强调色";
2772
4593
  readonly en: "Session accent color";
@@ -2851,6 +4672,78 @@ declare const dict: {
2851
4672
  readonly zh: "{{key}} 折叠";
2852
4673
  readonly en: "{{key}} to fold";
2853
4674
  };
4675
+ readonly 'goal-budget-used': {
4676
+ readonly zh: "已用 {{used}} / {{budget}} tokens · {{time}}";
4677
+ readonly en: "Used {{used}} / {{budget}} tokens · {{time}}";
4678
+ };
4679
+ readonly 'goal-budget-used-open': {
4680
+ readonly zh: "已用 {{used}} tokens · {{time}}";
4681
+ readonly en: "Used {{used}} tokens · {{time}}";
4682
+ };
4683
+ readonly 'goal-phase-active': {
4684
+ readonly zh: "进行中";
4685
+ readonly en: "active";
4686
+ };
4687
+ readonly 'goal-phase-paused': {
4688
+ readonly zh: "已暂停";
4689
+ readonly en: "paused";
4690
+ };
4691
+ readonly 'goal-phase-blocked': {
4692
+ readonly zh: "受阻";
4693
+ readonly en: "blocked";
4694
+ };
4695
+ readonly 'goal-phase-complete': {
4696
+ readonly zh: "已完成";
4697
+ readonly en: "complete";
4698
+ };
4699
+ readonly 'goal-backend-none': {
4700
+ readonly zh: "当前没有目标";
4701
+ readonly en: "No goal is set";
4702
+ };
4703
+ readonly 'goal-backend-usage': {
4704
+ readonly zh: "用法:/goal <目标>(可加 --budget 50k 设 token 预算)· /goal pause · /goal resume · /goal clear";
4705
+ readonly en: "Usage: /goal <objective> (add --budget 50k for a token budget) · /goal pause · /goal resume · /goal clear";
4706
+ };
4707
+ readonly 'goal-backend-objective': {
4708
+ readonly zh: "目标:{{objective}}";
4709
+ readonly en: "Goal: {{objective}}";
4710
+ };
4711
+ readonly 'goal-backend-phase': {
4712
+ readonly zh: "状态:{{phase}}";
4713
+ readonly en: "Status: {{phase}}";
4714
+ };
4715
+ readonly 'goal-backend-rounds': {
4716
+ readonly zh: "轮次:{{started}}/{{max}}";
4717
+ readonly en: "Rounds: {{started}}/{{max}}";
4718
+ };
4719
+ readonly 'goal-backend-blocked': {
4720
+ readonly zh: "受阻原因:{{message}}";
4721
+ readonly en: "Blocked: {{message}}";
4722
+ };
4723
+ readonly 'goal-backend-bad-budget': {
4724
+ readonly zh: "无效的 token 预算「{{value}}」(例:50000、50k、1.5m)";
4725
+ readonly en: "Invalid token budget \"{{value}}\" (e.g. 50000, 50k, 1.5m)";
4726
+ };
4727
+ readonly 'goal-backend-missing-objective': {
4728
+ readonly zh: "请写出目标内容:/goal <目标>";
4729
+ readonly en: "Say what the goal is: /goal <objective>";
4730
+ };
4731
+ readonly 'goal-backend-set': {
4732
+ readonly zh: "已设置目标";
4733
+ readonly en: "Goal set";
4734
+ };
4735
+ readonly 'goal-backend-paused': {
4736
+ readonly zh: "目标已暂停";
4737
+ readonly en: "Goal paused";
4738
+ };
4739
+ readonly 'goal-backend-resumed': {
4740
+ readonly zh: "目标已恢复";
4741
+ readonly en: "Goal resumed";
4742
+ };
4743
+ readonly 'goal-backend-cleared': {
4744
+ readonly zh: "目标已清除";
4745
+ readonly en: "Goal cleared";
4746
+ };
2854
4747
  readonly 'help-commands-title': {
2855
4748
  readonly zh: "命令:";
2856
4749
  readonly en: "commands:";
@@ -2875,6 +4768,10 @@ declare const dict: {
2875
4768
  readonly zh: "· 接下来想让 DeepSeek 做什么?";
2876
4769
  readonly en: "· What should DeepSeek do instead?";
2877
4770
  };
4771
+ readonly 'interrupted-ask-backend': {
4772
+ readonly zh: "· 接下来想让 {{name}} 做什么?";
4773
+ readonly en: "· What should {{name}} do instead?";
4774
+ };
2878
4775
  readonly 'load-earlier': {
2879
4776
  readonly zh: " ↑ 加载更早消息(会话日志完整,/export 导出全文) ";
2880
4777
  readonly en: " ↑ load earlier messages (full session log; /export for full text) ";
@@ -2991,6 +4888,22 @@ declare const dict: {
2991
4888
  readonly zh: "凭据 {{ref}} 由宿主保留,写入被拒绝:第三方设置区块不能覆盖宿主共享凭据";
2992
4889
  readonly en: "Credential {{ref}} is reserved by the host; write rejected: third-party settings sections cannot overwrite host-shared credentials";
2993
4890
  };
4891
+ readonly 'settings-panels-unclaimed': {
4892
+ readonly zh: "暂无面板使用此 id:先保留,等插件注册后生效";
4893
+ readonly en: "No panel uses this id yet; kept until a plugin registers it";
4894
+ };
4895
+ readonly 'settings-panels-plugin': {
4896
+ readonly zh: "插件面板({{plugin}})";
4897
+ readonly en: "Plugin panel ({{plugin}})";
4898
+ };
4899
+ readonly 'settings-panels-advanced': {
4900
+ readonly zh: "高级:编辑原始面板列表";
4901
+ readonly en: "Advanced: edit raw panel list";
4902
+ };
4903
+ readonly 'settings-panels-min-one': {
4904
+ readonly zh: "至少保留一个启用的面板";
4905
+ readonly en: "Keep at least one panel enabled";
4906
+ };
2994
4907
  readonly 'settings-hint-list': {
2995
4908
  readonly zh: "**Enter** 进入/编辑/切换(改动即保存) · Esc 退出";
2996
4909
  readonly en: "**Enter** open/edit/toggle (auto-saves) · Esc exit";
@@ -3127,6 +5040,18 @@ declare const dict: {
3127
5040
  readonly zh: "会话日志目录与此 id 同名";
3128
5041
  readonly en: "the session log directory is named after this id";
3129
5042
  };
5043
+ readonly 'status-detail-mode': {
5044
+ readonly zh: "点击或 /permission 切换权限模式";
5045
+ readonly en: "click or /permission to switch the permission mode";
5046
+ };
5047
+ readonly 'status-detail-model': {
5048
+ readonly zh: "点击或 /model 切换模型";
5049
+ readonly en: "click or /model to switch the model";
5050
+ };
5051
+ readonly 'status-detail-effort': {
5052
+ readonly zh: "点击或 /effort 调整推理强度";
5053
+ readonly en: "click or /effort to adjust reasoning effort";
5054
+ };
3130
5055
  readonly 'hint-ext-dialog-input': {
3131
5056
  readonly zh: "**Enter** 确认 · Esc 取消";
3132
5057
  readonly en: "**Enter** to confirm · Esc to cancel";
@@ -3478,6 +5403,14 @@ declare const dict: {
3478
5403
  readonly zh: "思考";
3479
5404
  readonly en: "Thinking";
3480
5405
  };
5406
+ readonly 'thinking-tokens-live': {
5407
+ readonly zh: "思考中 · ~{{n}} tokens";
5408
+ readonly en: "Thinking · ~{{n}} tokens";
5409
+ };
5410
+ readonly 'thinking-tokens-done': {
5411
+ readonly zh: "已思考 · ~{{n}} tokens";
5412
+ readonly en: "Thought · ~{{n}} tokens";
5413
+ };
3481
5414
  readonly 'history-search-title': {
3482
5415
  readonly zh: "搜索历史";
3483
5416
  readonly en: "Search history";
@@ -3726,10 +5659,30 @@ declare const dict: {
3726
5659
  readonly zh: "拒绝";
3727
5660
  readonly en: "No";
3728
5661
  };
5662
+ readonly 'approval-always': {
5663
+ readonly zh: "允许,且不再询问";
5664
+ readonly en: "Yes, and don't ask again";
5665
+ };
3729
5666
  readonly 'approval-hint': {
3730
5667
  readonly zh: "↑/↓ 选择 · Enter 确认 · Esc 拒绝";
3731
5668
  readonly en: "↑/↓ select · Enter confirm · Esc reject";
3732
5669
  };
5670
+ readonly 'approval-hint-feedback': {
5671
+ readonly zh: "↑/↓/Tab 选择 · Enter 确认 · 选中拒绝后可输入理由 · Esc 拒绝";
5672
+ readonly en: "↑/↓/Tab select · Enter confirm · on No, type a reason · Esc reject";
5673
+ };
5674
+ readonly 'approval-feedback-row': {
5675
+ readonly zh: "{{label}}:{{reason}}";
5676
+ readonly en: "{{label}}: {{reason}}";
5677
+ };
5678
+ readonly 'approval-subagent': {
5679
+ readonly zh: "来自子代理 {{id}} 的请求";
5680
+ readonly en: "Requested by subagent {{id}}";
5681
+ };
5682
+ readonly 'approval-blocked-path': {
5683
+ readonly zh: "涉及允许目录之外的路径:{{path}}";
5684
+ readonly en: "Outside the allowed directories: {{path}}";
5685
+ };
3733
5686
  readonly 'subagent-model': {
3734
5687
  readonly zh: "模型";
3735
5688
  readonly en: "Model";
@@ -3790,69 +5743,441 @@ declare const dict: {
3790
5743
  readonly zh: "↑/↓ 选择 · Enter 查看详情 · Esc 关闭";
3791
5744
  readonly en: "↑/↓ select · Enter view detail · Esc close";
3792
5745
  };
3793
- readonly 'subagent-dashboard-hint-panel': {
3794
- readonly zh: "↑/↓ 选择 · Enter 查看详情 · Esc 回到聊天";
3795
- readonly en: "↑/↓ select · Enter view detail · Esc chat";
3796
- };
3797
5746
  readonly 'subagent-card-prefix': {
3798
5747
  readonly zh: "子代理:";
3799
5748
  readonly en: "Subagent: ";
3800
5749
  };
3801
- readonly 'subagent-mode-continuable': {
3802
- readonly zh: "♻ 可继续";
3803
- readonly en: "♻ continuable";
5750
+ readonly 'subagent-mode-continuable': {
5751
+ readonly zh: "♻ 可继续";
5752
+ readonly en: "♻ continuable";
5753
+ };
5754
+ readonly 'subagent-mode-one-shot': {
5755
+ readonly zh: "◇ 一次性";
5756
+ readonly en: "◇ one-shot";
5757
+ };
5758
+ readonly 'subagent-tab-summary': {
5759
+ readonly zh: "摘要";
5760
+ readonly en: "Summary";
5761
+ };
5762
+ readonly 'subagent-no-summary': {
5763
+ readonly zh: "暂无摘要";
5764
+ readonly en: "No summary yet";
5765
+ };
5766
+ readonly 'subagent-thinking-fold': {
5767
+ readonly zh: "思考 · {{count}} 段 · {{chars}} 字";
5768
+ readonly en: "Thinking · {{count}} paras · {{chars}} chars";
5769
+ };
5770
+ readonly 'subagent-thinking-expand': {
5771
+ readonly zh: "Enter 展开";
5772
+ readonly en: "Enter expand";
5773
+ };
5774
+ readonly 'subagent-thinking-collapse': {
5775
+ readonly zh: "Enter 收起";
5776
+ readonly en: "Enter collapse";
5777
+ };
5778
+ readonly 'subagent-conclusion': {
5779
+ readonly zh: "结论";
5780
+ readonly en: "Conclusion";
5781
+ };
5782
+ readonly 'subagent-hint-fold': {
5783
+ readonly zh: "Enter 思考折叠";
5784
+ readonly en: "Enter thinking";
5785
+ };
5786
+ readonly 'subagent-no-tools': {
5787
+ readonly zh: "暂无工具调用";
5788
+ readonly en: "No tool calls";
5789
+ };
5790
+ readonly 'subagent-last-tool': {
5791
+ readonly zh: "最近工具";
5792
+ readonly en: "last tool";
5793
+ };
5794
+ readonly 'subagent-tools-kept': {
5795
+ readonly zh: "显示 {{kept}} 条记录(共 {{reported}} 次工具调用,其余未保留)";
5796
+ readonly en: "{{kept}} records shown ({{reported}} tool uses in total; the rest were not kept)";
5797
+ };
5798
+ readonly 'subagent-tab-transcript': {
5799
+ readonly zh: "转录";
5800
+ readonly en: "Transcript";
5801
+ };
5802
+ readonly 'subagent-transcript-loading': {
5803
+ readonly zh: "正在读取子代理转录…";
5804
+ readonly en: "Reading the subagent transcript…";
5805
+ };
5806
+ readonly 'subagent-transcript-unavailable': {
5807
+ readonly zh: "子代理转录暂时读不到";
5808
+ readonly en: "Subagent transcript unavailable";
5809
+ };
5810
+ readonly 'subagent-transcript-empty': {
5811
+ readonly zh: "子代理转录为空";
5812
+ readonly en: "The subagent transcript is empty";
5813
+ };
5814
+ readonly 'subagent-transcript-history': {
5815
+ readonly zh: "历史";
5816
+ readonly en: "history";
5817
+ };
5818
+ readonly 'subagent-transcript-live': {
5819
+ readonly zh: "实时";
5820
+ readonly en: "live";
5821
+ };
5822
+ readonly 'subagent-transcript-readonly': {
5823
+ readonly zh: "只读";
5824
+ readonly en: "read-only";
5825
+ };
5826
+ readonly 'subagent-transcript-load-older': {
5827
+ readonly zh: "载入更早 {{count}} 条";
5828
+ readonly en: "Load {{count}} older";
5829
+ };
5830
+ readonly 'subagent-thinking-count-only': {
5831
+ readonly zh: "思考内容不可见 · 约 {{tokens}} tokens";
5832
+ readonly en: "Thinking not shown · ~{{tokens}} tokens";
5833
+ };
5834
+ readonly 'subagent-thinking-unavailable': {
5835
+ readonly zh: "思考内容不可见";
5836
+ readonly en: "Thinking not shown";
5837
+ };
5838
+ readonly 'subagent-transcript-retained': {
5839
+ readonly zh: "已保留 {{count}} 条";
5840
+ readonly en: "{{count}} lines retained";
5841
+ };
5842
+ readonly 'subagent-transcript-parent': {
5843
+ readonly zh: "父代理 {{id}}";
5844
+ readonly en: "parent {{id}}";
5845
+ };
5846
+ readonly 'subagent-transcript-old-format': {
5847
+ readonly zh: "旧格式:没有记录父代理,按深度 {{depth}} 显示";
5848
+ readonly en: "old format: no parent recorded; shown at depth {{depth}}";
5849
+ };
5850
+ readonly 'subagent-hint-page': {
5851
+ readonly zh: "切页";
5852
+ readonly en: "page";
5853
+ };
5854
+ readonly 'subagent-hint-scroll': {
5855
+ readonly zh: "滚动";
5856
+ readonly en: "scroll";
5857
+ };
5858
+ readonly 'subagent-hint-back': {
5859
+ readonly zh: "返回";
5860
+ readonly en: "back";
5861
+ };
5862
+ readonly 'subagent-hint-compose': {
5863
+ readonly zh: "发消息";
5864
+ readonly en: "compose";
5865
+ };
5866
+ readonly 'subagent-empty-hint': {
5867
+ readonly zh: "让主代理发起 Task 后,子代理会出现在这里";
5868
+ readonly en: "Subagents appear here once the main agent starts Task delegations";
5869
+ };
5870
+ readonly 'agent-view-title': {
5871
+ readonly zh: "子代理转录";
5872
+ readonly en: "Agent transcript";
5873
+ };
5874
+ readonly 'agent-view-readonly': {
5875
+ readonly zh: "只读";
5876
+ readonly en: "read-only";
5877
+ };
5878
+ readonly 'agent-view-live': {
5879
+ readonly zh: "实时";
5880
+ readonly en: "live";
5881
+ };
5882
+ readonly 'agent-view-history': {
5883
+ readonly zh: "历史";
5884
+ readonly en: "history";
5885
+ };
5886
+ readonly 'agent-view-back': {
5887
+ readonly zh: "返回来源";
5888
+ readonly en: "back to source";
5889
+ };
5890
+ readonly 'agent-view-open-action': {
5891
+ readonly zh: "主屏查看";
5892
+ readonly en: "open in main view";
5893
+ };
5894
+ readonly 'agent-view-source-chat': {
5895
+ readonly zh: "来自聊天";
5896
+ readonly en: "from chat";
5897
+ };
5898
+ readonly 'agent-view-source-dashboard': {
5899
+ readonly zh: "来自代理面板";
5900
+ readonly en: "from agents panel";
5901
+ };
5902
+ readonly 'agent-view-source-detail': {
5903
+ readonly zh: "来自详情";
5904
+ readonly en: "from detail";
5905
+ };
5906
+ readonly 'agent-view-source-card': {
5907
+ readonly zh: "来自转录卡";
5908
+ readonly en: "from transcript card";
5909
+ };
5910
+ readonly 'agent-view-no-transcript': {
5911
+ readonly zh: "此代理没有可查看的转录";
5912
+ readonly en: "No transcript for this agent";
5913
+ };
5914
+ readonly 'agent-view-retained-tail': {
5915
+ readonly zh: "没有完整历史,只显示最近 {{count}} 条输出";
5916
+ readonly en: "No full history; showing the last {{count}} output lines";
5917
+ };
5918
+ readonly 'agent-view-panel-title': {
5919
+ readonly zh: "工作台";
5920
+ readonly en: "workbench";
5921
+ };
5922
+ readonly 'agent-view-panel-metadata': {
5923
+ readonly zh: "信息";
5924
+ readonly en: "metadata";
5925
+ };
5926
+ readonly 'agent-view-panel-tools': {
5927
+ readonly zh: "工具";
5928
+ readonly en: "tools";
5929
+ };
5930
+ readonly 'agent-view-parent-context': {
5931
+ readonly zh: "父代理与同级";
5932
+ readonly en: "parent & siblings";
5933
+ };
5934
+ readonly 'agent-view-field-status': {
5935
+ readonly zh: "状态";
5936
+ readonly en: "status";
5937
+ };
5938
+ readonly 'agent-view-field-mode': {
5939
+ readonly zh: "模式";
5940
+ readonly en: "mode";
5941
+ };
5942
+ readonly 'agent-view-field-model': {
5943
+ readonly zh: "模型";
5944
+ readonly en: "model";
5945
+ };
5946
+ readonly 'agent-view-field-tokens': {
5947
+ readonly zh: "token";
5948
+ readonly en: "tokens";
5949
+ };
5950
+ readonly 'agent-view-field-duration': {
5951
+ readonly zh: "时长";
5952
+ readonly en: "duration";
5953
+ };
5954
+ readonly 'agent-view-field-run': {
5955
+ readonly zh: "运行";
5956
+ readonly en: "run";
5957
+ };
5958
+ readonly 'agent-view-field-session': {
5959
+ readonly zh: "会话";
5960
+ readonly en: "session";
5961
+ };
5962
+ readonly 'agent-view-field-depth': {
5963
+ readonly zh: "深度";
5964
+ readonly en: "depth";
5965
+ };
5966
+ readonly 'agent-view-tools-none': {
5967
+ readonly zh: "无工具记录";
5968
+ readonly en: "no tool records";
5969
+ };
5970
+ readonly 'agent-view-tools-reported': {
5971
+ readonly zh: "共 {{reported}} 次 · 显示 {{kept}}";
5972
+ readonly en: "{{reported}} in total · {{kept}} shown";
5973
+ };
5974
+ readonly 'agent-view-tools-more': {
5975
+ readonly zh: "还有 {{count}} 条";
5976
+ readonly en: "{{count}} more";
5977
+ };
5978
+ readonly 'agent-view-parent-main': {
5979
+ readonly zh: "↑ 主循环";
5980
+ readonly en: "↑ main loop";
5981
+ };
5982
+ readonly 'agent-view-parent-unknown': {
5983
+ readonly zh: "父代理未知";
5984
+ readonly en: "parent unknown";
5985
+ };
5986
+ readonly 'agent-view-parent-agent': {
5987
+ readonly zh: "父代理 {{id}}";
5988
+ readonly en: "parent {{id}}";
5989
+ };
5990
+ readonly 'agent-view-parent-not-in-roster': {
5991
+ readonly zh: "父代理 {{id}}(不在当前列表)";
5992
+ readonly en: "parent {{id}} (not in the list)";
5993
+ };
5994
+ readonly 'agent-view-siblings-none': {
5995
+ readonly zh: "没有同级代理";
5996
+ readonly en: "no siblings";
5997
+ };
5998
+ readonly 'agent-view-siblings-more': {
5999
+ readonly zh: "还有 {{count}} 个同级";
6000
+ readonly en: "{{count}} more siblings";
6001
+ };
6002
+ readonly 'agent-view-select-sibling': {
6003
+ readonly zh: "Tab 工作台 · 切换同级";
6004
+ readonly en: "Tab workbench · switch siblings";
6005
+ };
6006
+ readonly 'agent-view-select-sibling-focused': {
6007
+ readonly zh: "↑↓ 选择 · ⏎ 切换 · Esc 退出面板";
6008
+ readonly en: "↑↓ select · ⏎ switch · Esc leave panel";
6009
+ };
6010
+ readonly 'agents-peers-title': {
6011
+ readonly zh: "其他会话的代理";
6012
+ readonly en: "agents in other sessions";
6013
+ };
6014
+ readonly 'agents-peers-empty': {
6015
+ readonly zh: "列表为空";
6016
+ readonly en: "none";
6017
+ };
6018
+ readonly 'agents-peers-note': {
6019
+ readonly zh: "无法从这里给其他会话的代理发消息";
6020
+ readonly en: "agents in other sessions cannot be messaged from here";
6021
+ };
6022
+ readonly 'subagent-count-nested': {
6023
+ readonly zh: "嵌套";
6024
+ readonly en: "nested";
6025
+ };
6026
+ readonly 'subagent-nested-mark': {
6027
+ readonly zh: "嵌套子代理";
6028
+ readonly en: "nested subagent";
6029
+ };
6030
+ readonly 'agent-message-source-user': {
6031
+ readonly zh: "用户";
6032
+ readonly en: "user";
6033
+ };
6034
+ readonly 'agent-message-source-parent': {
6035
+ readonly zh: "父代理";
6036
+ readonly en: "parent";
6037
+ };
6038
+ readonly 'agent-message-source-child': {
6039
+ readonly zh: "子代理";
6040
+ readonly en: "child";
6041
+ };
6042
+ readonly 'agent-message-from-to': {
6043
+ readonly zh: "{{from}} → {{to}}";
6044
+ readonly en: "{{from}} → {{to}}";
6045
+ };
6046
+ readonly 'agent-message-unknown-target': {
6047
+ readonly zh: "收发方未知";
6048
+ readonly en: "unknown sender/recipient";
6049
+ };
6050
+ readonly 'agent-message-no-delivery-fact': {
6051
+ readonly zh: "送达状态未知";
6052
+ readonly en: "delivery status unknown";
6053
+ };
6054
+ readonly 'agent-message-delivery-issued': {
6055
+ readonly zh: "已发出";
6056
+ readonly en: "issued";
6057
+ };
6058
+ readonly 'agent-message-delivery-queued': {
6059
+ readonly zh: "已入队";
6060
+ readonly en: "queued";
6061
+ };
6062
+ readonly 'agent-message-delivery-delivered': {
6063
+ readonly zh: "已送达";
6064
+ readonly en: "delivered";
6065
+ };
6066
+ readonly 'agent-message-delivery-held': {
6067
+ readonly zh: "暂扣";
6068
+ readonly en: "held";
6069
+ };
6070
+ readonly 'agent-message-delivery-refused': {
6071
+ readonly zh: "已拒收";
6072
+ readonly en: "refused";
6073
+ };
6074
+ readonly 'agent-message-delivery-expired': {
6075
+ readonly zh: "已过期";
6076
+ readonly en: "expired";
6077
+ };
6078
+ readonly 'agent-message-delivery-unknown': {
6079
+ readonly zh: "未知";
6080
+ readonly en: "unknown";
6081
+ };
6082
+ readonly 'agent-message-via-parent-mediated': {
6083
+ readonly zh: "经父代理转发";
6084
+ readonly en: "via parent relay";
6085
+ };
6086
+ readonly 'agent-message-via-direct-continuable': {
6087
+ readonly zh: "直发子代理";
6088
+ readonly en: "direct to child";
6089
+ };
6090
+ readonly 'agent-message-via-agent-relay': {
6091
+ readonly zh: "代理中继";
6092
+ readonly en: "agent relay";
6093
+ };
6094
+ readonly 'agent-message-compose-title': {
6095
+ readonly zh: "发送给 {{name}}";
6096
+ readonly en: "Send to {{name}}";
6097
+ };
6098
+ readonly 'agent-message-submitted': {
6099
+ readonly zh: "最近发送";
6100
+ readonly en: "submitted";
6101
+ };
6102
+ readonly 'agent-message-inbox-note': {
6103
+ readonly zh: "已送进对方收件箱,不代表已读或已执行";
6104
+ readonly en: "in the inbox; not necessarily read or acted on";
6105
+ };
6106
+ readonly 'agent-message-unavailable': {
6107
+ readonly zh: "当前无法发送";
6108
+ readonly en: "sending is unavailable right now";
6109
+ };
6110
+ readonly 'agent-message-target-ambiguous': {
6111
+ readonly zh: "有同名代理,按 id {{id}} 区分";
6112
+ readonly en: "duplicate names; told apart by id {{id}}";
6113
+ };
6114
+ readonly 'agent-message-target-nameless': {
6115
+ readonly zh: "此代理没有可用的名称,无法发送";
6116
+ readonly en: "this agent has no name to address; cannot send";
6117
+ };
6118
+ readonly 'agent-message-target-not-resumable': {
6119
+ readonly zh: "目标代理已无法恢复";
6120
+ readonly en: "target cannot be resumed";
6121
+ };
6122
+ readonly 'agent-message-parent-unavailable': {
6123
+ readonly zh: "父代理不可用,未发送";
6124
+ readonly en: "parent unavailable; not sent";
3804
6125
  };
3805
- readonly 'subagent-mode-one-shot': {
3806
- readonly zh: "◇ 一次性";
3807
- readonly en: "◇ one-shot";
6126
+ readonly 'agent-message-unauthorized': {
6127
+ readonly zh: "没有向该代理发消息的权限";
6128
+ readonly en: "not allowed to message this agent";
3808
6129
  };
3809
- readonly 'subagent-tab-summary': {
3810
- readonly zh: "摘要";
3811
- readonly en: "Summary";
6130
+ readonly 'agent-message-delivery-unavailable': {
6131
+ readonly zh: "当前无法投递给目标代理";
6132
+ readonly en: "delivery to the target is unavailable";
3812
6133
  };
3813
- readonly 'subagent-no-summary': {
3814
- readonly zh: "暂无摘要";
3815
- readonly en: "No summary yet";
6134
+ readonly 'send-message-card-resuming': {
6135
+ readonly zh: "唤醒中";
6136
+ readonly en: "resuming";
3816
6137
  };
3817
- readonly 'subagent-thinking-fold': {
3818
- readonly zh: "思考 · {{count}} 段 · {{chars}} 字";
3819
- readonly en: "Thinking · {{count}} paras · {{chars}} chars";
6138
+ readonly 'send-message-card-resumed': {
6139
+ readonly zh: "已唤醒 {{id}}";
6140
+ readonly en: "resumed {{id}}";
3820
6141
  };
3821
- readonly 'subagent-thinking-expand': {
3822
- readonly zh: "Enter 展开";
3823
- readonly en: "Enter expand";
6142
+ readonly 'send-message-card-args': {
6143
+ readonly zh: "── 参数 ──";
6144
+ readonly en: "── args ──";
3824
6145
  };
3825
- readonly 'subagent-thinking-collapse': {
3826
- readonly zh: "Enter 收起";
3827
- readonly en: "Enter collapse";
6146
+ readonly 'send-message-card-result': {
6147
+ readonly zh: "── 结果 ──";
6148
+ readonly en: "── result ──";
3828
6149
  };
3829
- readonly 'subagent-conclusion': {
3830
- readonly zh: "结论";
3831
- readonly en: "Conclusion";
6150
+ readonly 'send-message-card-summary-label': {
6151
+ readonly zh: "摘要";
6152
+ readonly en: "summary";
3832
6153
  };
3833
- readonly 'subagent-hint-fold': {
3834
- readonly zh: "Enter 思考折叠";
3835
- readonly en: "Enter thinking";
6154
+ readonly 'agent-message-dispatch-failed': {
6155
+ readonly zh: "发送失败";
6156
+ readonly en: "dispatch failed";
3836
6157
  };
3837
- readonly 'subagent-no-tools': {
3838
- readonly zh: "暂无工具调用";
3839
- readonly en: "No tool calls";
6158
+ readonly 'agent-message-parent-interrupted': {
6159
+ readonly zh: "父回合被中断,未送达";
6160
+ readonly en: "parent turn interrupted; not delivered";
3840
6161
  };
3841
- readonly 'subagent-hint-page': {
3842
- readonly zh: "切页";
3843
- readonly en: "page";
6162
+ readonly 'agent-message-draft-retained': {
6163
+ readonly zh: "草稿已保留";
6164
+ readonly en: "draft retained";
3844
6165
  };
3845
- readonly 'subagent-hint-scroll': {
3846
- readonly zh: "滚动";
3847
- readonly en: "scroll";
6166
+ readonly 'agent-message-hint-queue': {
6167
+ readonly zh: "Enter 发送(排在父代理当前回合之后,不打断)· Esc 退出输入";
6168
+ readonly en: "Enter send (after the parent's current turn, no interrupt) · Esc leave input";
3848
6169
  };
3849
- readonly 'subagent-hint-back': {
3850
- readonly zh: "返回";
3851
- readonly en: "back";
6170
+ readonly 'agent-message-hint-queue-steer': {
6171
+ readonly zh: "Enter 排队 · Ctrl+Enter 插话 · Esc 退出输入";
6172
+ readonly en: "Enter queue · Ctrl+Enter steer · Esc leave input";
3852
6173
  };
3853
- readonly 'subagent-empty-hint': {
3854
- readonly zh: "让主代理发起 Task 后,子代理会出现在这里";
3855
- readonly en: "Subagents appear here once the main agent starts Task delegations";
6174
+ readonly 'agent-message-hint-nameless': {
6175
+ readonly zh: "此代理没有名称:只能查看,不能发送";
6176
+ readonly en: "nameless agent: view only, cannot send";
6177
+ };
6178
+ readonly 'agent-messages-tab': {
6179
+ readonly zh: "消息";
6180
+ readonly en: "Messages";
3856
6181
  };
3857
6182
  readonly 'jobs-card-prefix': {
3858
6183
  readonly zh: "任务:";
@@ -3903,8 +6228,8 @@ declare const dict: {
3903
6228
  readonly en: "Commands the agent runs in the background appear here";
3904
6229
  };
3905
6230
  readonly 'jobs-panel-hint': {
3906
- readonly zh: "↑/↓ 或点击选择 · k 两次停止选中任务 · Esc 关闭";
3907
- readonly en: "↑/↓ or click to select · press k twice to stop the focused job · Esc close";
6231
+ readonly zh: "↑/↓ 选择 · e 展开/收起 · k 两次停止 · Esc 关闭";
6232
+ readonly en: "↑/↓ select · e expand/fold · press k twice to stop · Esc close";
3908
6233
  };
3909
6234
  readonly 'jobs-kill-armed': {
3910
6235
  readonly zh: "再按 k 确认停止";
@@ -3918,9 +6243,25 @@ declare const dict: {
3918
6243
  readonly zh: "结束";
3919
6244
  readonly en: "finished";
3920
6245
  };
3921
- readonly 'jobs-panel-command': {
3922
- readonly zh: "命令";
3923
- readonly en: "command";
6246
+ readonly 'jobs-panel-context-title': {
6247
+ readonly zh: "后台任务 {{id}}";
6248
+ readonly en: "Background job {{id}}";
6249
+ };
6250
+ readonly 'jobs-panel-context-heading': {
6251
+ readonly zh: "后台任务 {{id}}({{status}})";
6252
+ readonly en: "Background job {{id}} ({{status}})";
6253
+ };
6254
+ readonly 'jobs-panel-context-command': {
6255
+ readonly zh: "命令:{{command}}";
6256
+ readonly en: "Command: {{command}}";
6257
+ };
6258
+ readonly 'jobs-panel-context-output': {
6259
+ readonly zh: "输出(末 {{n}} 行):";
6260
+ readonly en: "Output (last {{n}} lines):";
6261
+ };
6262
+ readonly 'jobs-panel-context-no-output': {
6263
+ readonly zh: "(暂无输出)";
6264
+ readonly en: "(no output yet)";
3924
6265
  };
3925
6266
  readonly 'jobs-panel-output': {
3926
6267
  readonly zh: "输出";
@@ -3942,6 +6283,54 @@ declare const dict: {
3942
6283
  readonly zh: "部分输出未保留";
3943
6284
  readonly en: "some output not retained";
3944
6285
  };
6286
+ readonly 'jobs-progress-latest': {
6287
+ readonly zh: "进度";
6288
+ readonly en: "progress";
6289
+ };
6290
+ readonly 'jobs-progress-updated-at': {
6291
+ readonly zh: "更新 {{time}}";
6292
+ readonly en: "updated {{time}}";
6293
+ };
6294
+ readonly 'jobs-progress-source': {
6295
+ readonly zh: "来源 {{source}}";
6296
+ readonly en: "source {{source}}";
6297
+ };
6298
+ readonly 'jobs-timeline': {
6299
+ readonly zh: "时间线(最近)";
6300
+ readonly en: "timeline (latest)";
6301
+ };
6302
+ readonly 'jobs-timeline-started': {
6303
+ readonly zh: "启动";
6304
+ readonly en: "started";
6305
+ };
6306
+ readonly 'jobs-timeline-progress': {
6307
+ readonly zh: "进度";
6308
+ readonly en: "progress";
6309
+ };
6310
+ readonly 'jobs-timeline-output': {
6311
+ readonly zh: "输出";
6312
+ readonly en: "output";
6313
+ };
6314
+ readonly 'jobs-timeline-gap': {
6315
+ readonly zh: "缺口";
6316
+ readonly en: "gap";
6317
+ };
6318
+ readonly 'jobs-timeline-settled': {
6319
+ readonly zh: "结束";
6320
+ readonly en: "ended";
6321
+ };
6322
+ readonly 'jobs-timeline-gap-count': {
6323
+ readonly zh: "输出缺口 {{n}} 处";
6324
+ readonly en: "{{n}} output gaps";
6325
+ };
6326
+ readonly 'jobs-timeline-events-unavailable': {
6327
+ readonly zh: "时间线不可用(任务在本次启动前就已开始)";
6328
+ readonly en: "timeline unavailable (the job started before this launch)";
6329
+ };
6330
+ readonly 'jobs-output-retained-tail': {
6331
+ readonly zh: "仅保留最近 {{n}} 行";
6332
+ readonly en: "last {{n}} lines retained";
6333
+ };
3945
6334
  readonly 'jobs-output-spill': {
3946
6335
  readonly zh: "完整输出落盘:{{path}}";
3947
6336
  readonly en: "full output retained at: {{path}}";
@@ -3962,6 +6351,10 @@ declare const dict: {
3962
6351
  readonly zh: "无法停止任务 {{id}}(任务不存在或任务服务未挂载)";
3963
6352
  readonly en: "Could not kill job {{id}} (unknown job or jobs service not mounted)";
3964
6353
  };
6354
+ readonly 'jobs-detail-unknown': {
6355
+ readonly zh: "状态未知";
6356
+ readonly en: "status unknown";
6357
+ };
3965
6358
  readonly 'jobs-steer-killed': {
3966
6359
  readonly zh: "我通过 /jobs 面板停止了后台任务 {{id}}({{label}})";
3967
6360
  readonly en: "I killed background job {{id}} ({{label}}) via the /jobs panel";
@@ -4122,6 +6515,130 @@ declare const dict: {
4122
6515
  readonly zh: "选择要启用的模型(可在输入行逗号分隔补充)";
4123
6516
  readonly en: "Select the models to enable (add more comma-separated on the input row)";
4124
6517
  };
6518
+ readonly 'provider-model-edit-hint': {
6519
+ readonly zh: "聚焦模型 / 输入自定义 id 后按 Tab 编辑能力";
6520
+ readonly en: "Tab edits the focused model or last manual id";
6521
+ };
6522
+ readonly 'provider-model-editor-title': {
6523
+ readonly zh: "编辑模型能力";
6524
+ readonly en: "Edit model capabilities";
6525
+ };
6526
+ readonly 'provider-model-context-window': {
6527
+ readonly zh: "上下文窗口";
6528
+ readonly en: "Context window";
6529
+ };
6530
+ readonly 'provider-model-max-tokens': {
6531
+ readonly zh: "最大输出 token";
6532
+ readonly en: "Max output tokens";
6533
+ };
6534
+ readonly 'provider-model-reasoning-efforts': {
6535
+ readonly zh: "支持的推理档位";
6536
+ readonly en: "Supported reasoning efforts";
6537
+ };
6538
+ readonly 'provider-model-multimodal': {
6539
+ readonly zh: "多模态(图片)";
6540
+ readonly en: "Multimodal (images)";
6541
+ };
6542
+ readonly 'provider-model-multimodal-short': {
6543
+ readonly zh: "图片";
6544
+ readonly en: "image";
6545
+ };
6546
+ readonly 'provider-model-save': {
6547
+ readonly zh: "保存能力草稿";
6548
+ readonly en: "Save capability draft";
6549
+ };
6550
+ readonly 'provider-model-save-short': {
6551
+ readonly zh: "保存";
6552
+ readonly en: "save";
6553
+ };
6554
+ readonly 'provider-model-enter-to-save': {
6555
+ readonly zh: "Enter 保存";
6556
+ readonly en: "Enter saves";
6557
+ };
6558
+ readonly 'provider-model-inherit': {
6559
+ readonly zh: "继承默认";
6560
+ readonly en: "Inherit default";
6561
+ };
6562
+ readonly 'provider-model-default-capacity': {
6563
+ readonly zh: "目录/端点公布:{{n}}";
6564
+ readonly en: "Catalog/endpoint reports: {{n}}";
6565
+ };
6566
+ readonly 'provider-model-default-image': {
6567
+ readonly zh: "继承默认 · 文本+图片";
6568
+ readonly en: "Inherit · text+images";
6569
+ };
6570
+ readonly 'provider-model-default-text': {
6571
+ readonly zh: "继承默认 · 仅文本";
6572
+ readonly en: "Inherit · text only";
6573
+ };
6574
+ readonly 'provider-model-input-image': {
6575
+ readonly zh: "是 · 文本+图片";
6576
+ readonly en: "Yes · text+images";
6577
+ };
6578
+ readonly 'provider-model-input-text': {
6579
+ readonly zh: "否 · 仅文本";
6580
+ readonly en: "No · text only";
6581
+ };
6582
+ readonly 'provider-model-capacity-hint': {
6583
+ readonly zh: "正整数/K/M;留空恢复继承";
6584
+ readonly en: "Positive tokens / K / M; blank inherits";
6585
+ };
6586
+ readonly 'provider-model-reasoning-hint': {
6587
+ readonly zh: "none 禁用 · 如 off,low,high,max=ultra";
6588
+ readonly en: "none disables · e.g. off,low,high,max=ultra";
6589
+ };
6590
+ readonly 'provider-model-input-hint': {
6591
+ readonly zh: "←/→ 或空格切换;目前支持文本/图片";
6592
+ readonly en: "←/→ or Space changes text/image support";
6593
+ };
6594
+ readonly 'provider-model-capacity-invalid': {
6595
+ readonly zh: "容量必须为正的安全整数(支持 K/M)";
6596
+ readonly en: "Capacity must be a positive safe integer (K/M supported)";
6597
+ };
6598
+ readonly 'provider-model-reasoning-invalid': {
6599
+ readonly zh: "档位须为 off/minimal/low/medium/high/xhigh/max;不能重复或只含 off";
6600
+ readonly en: "Use off/minimal/low/medium/high/xhigh/max; no duplicates or off-only list";
6601
+ };
6602
+ readonly 'provider-model-input-invalid': {
6603
+ readonly zh: "至少保留文本或图片输入";
6604
+ readonly en: "Keep at least one text or image input modality";
6605
+ };
6606
+ readonly 'provider-model-field-too-long': {
6607
+ readonly zh: "字段最多 {{n}} 个字符";
6608
+ readonly en: "Field limit: {{n}} characters";
6609
+ };
6610
+ readonly 'provider-model-paste-text-only': {
6611
+ readonly zh: "此字段只接受文本粘贴";
6612
+ readonly en: "This field only accepts text paste";
6613
+ };
6614
+ readonly 'provider-model-reasoning-unavailable': {
6615
+ readonly zh: "推理档位编辑需要 DSH 0.2.0-rc.1+";
6616
+ readonly en: "Reasoning effort editing requires DSH 0.2.0-rc.1+";
6617
+ };
6618
+ readonly 'provider-model-reasoning-unavailable-short': {
6619
+ readonly zh: "上游版本不支持";
6620
+ readonly en: "unsupported by host";
6621
+ };
6622
+ readonly 'provider-model-override-unavailable': {
6623
+ readonly zh: "保持整个 catalog 时的单模型覆盖需要 DSH 0.2.0-rc.2+;请更新 DSH 后重试";
6624
+ readonly en: "Per-model overrides while keeping the full catalog require DSH 0.2.0-rc.2+; update DSH and retry";
6625
+ };
6626
+ readonly 'provider-model-edited': {
6627
+ readonly zh: "(能力已编辑)";
6628
+ readonly en: "(capabilities edited)";
6629
+ };
6630
+ readonly 'provider-models-stored-only': {
6631
+ readonly zh: "模型探测失败,仍可编辑已有模型的能力";
6632
+ readonly en: "Discovery failed; stored model capabilities are still editable";
6633
+ };
6634
+ readonly 'provider-line-model-capabilities': {
6635
+ readonly zh: "能力覆盖:{{models}}";
6636
+ readonly en: "Capability overrides: {{models}}";
6637
+ };
6638
+ readonly 'hint-provider-model-editor': {
6639
+ readonly zh: "↑/↓/Tab 字段 · Enter 保存 · Esc 返回";
6640
+ readonly en: "↑/↓/Tab fields · Enter save · Esc back";
6641
+ };
4125
6642
  readonly 'provider-q-models-fallback': {
4126
6643
  readonly zh: "输入模型 id(逗号分隔)";
4127
6644
  readonly en: "Enter model ids (comma-separated)";
@@ -4614,10 +7131,10 @@ declare const dict: {
4614
7131
  readonly zh: "打开会话总览";
4615
7132
  };
4616
7133
  readonly 'cmd-desc-bg': {
4617
- readonly zh: "当前会话转入后台并打开总览";
7134
+ readonly zh: "打开会话总览(DSH 先转后台)";
4618
7135
  };
4619
7136
  readonly 'cmd-desc-background': {
4620
- readonly zh: "当前会话转入后台并打开总览";
7137
+ readonly zh: "打开会话总览(DSH 先转后台)";
4621
7138
  };
4622
7139
  readonly 'cmd-desc-rename': {
4623
7140
  readonly zh: "重命名当前会话";
@@ -4683,6 +7200,14 @@ declare const dict: {
4683
7200
  readonly zh: "侧栏面板:开关 / 聚焦 / 缩放 / 切换";
4684
7201
  readonly en: "Side panel: toggle / focus / zoom / switch";
4685
7202
  };
7203
+ readonly 'cmd-desc-kernel': {
7204
+ readonly zh: "选择内核(切换后重启进入)";
7205
+ readonly en: "Choose the kernel (restarts into it)";
7206
+ };
7207
+ readonly 'cmd-desc-channel': {
7208
+ readonly zh: "渠道档案:切换 / 导入 / 查看映射(Claude)";
7209
+ readonly en: "Channel profiles: switch / import / view mappings (Claude)";
7210
+ };
4686
7211
  readonly 'panel-title-todo': {
4687
7212
  readonly zh: "待办";
4688
7213
  readonly en: "Todo";
@@ -4711,6 +7236,38 @@ declare const dict: {
4711
7236
  readonly zh: "工作区";
4712
7237
  readonly en: "Workspace";
4713
7238
  };
7239
+ readonly 'panel-desc-todo': {
7240
+ readonly zh: "目标与待办清单,Enter 勾选完成";
7241
+ readonly en: "Goal and todo checklist; Enter ticks items done";
7242
+ };
7243
+ readonly 'panel-desc-info': {
7244
+ readonly zh: "模型、上下文与消耗的信息栏";
7245
+ readonly en: "Model, context and cost readout";
7246
+ };
7247
+ readonly 'panel-desc-trajectory': {
7248
+ readonly zh: "回合轨迹:耗时、工具与重试";
7249
+ readonly en: "Per-turn trace: timing, tools, retries";
7250
+ };
7251
+ readonly 'panel-desc-jobs': {
7252
+ readonly zh: "后台任务名册与实时输出";
7253
+ readonly en: "Background jobs roster and live output";
7254
+ };
7255
+ readonly 'panel-desc-agents': {
7256
+ readonly zh: "子代理列表与详情";
7257
+ readonly en: "Subagent list and detail";
7258
+ };
7259
+ readonly 'panel-desc-workspace': {
7260
+ readonly zh: "工作区目录与最近会话";
7261
+ readonly en: "Workspace directories and recent sessions";
7262
+ };
7263
+ readonly 'panel-desc-btw': {
7264
+ readonly zh: "侧问线程:不打断主线的旁路问答";
7265
+ readonly en: "btw threads: side questions without derailing";
7266
+ };
7267
+ readonly 'panel-desc-companion': {
7268
+ readonly zh: "桌面宠物:状态、互动与通知气泡";
7269
+ readonly en: "Desktop pet: mood, interactions, notice bubbles";
7270
+ };
4714
7271
  readonly 'panel-trajectory-empty': {
4715
7272
  readonly zh: "本次会话还没有轨迹:发出第一条消息后,这里会画出唤醒带与账本。";
4716
7273
  readonly en: "No trajectory yet — the wake band and ledger appear once this session has turns.";
@@ -4719,6 +7276,66 @@ declare const dict: {
4719
7276
  readonly zh: "↑/↓ 选中 · Enter 展开 · Tab 热点 · ⤢ 全屏";
4720
7277
  readonly en: "↑/↓ select · Enter expand · Tab hotspots · ⤢ fullscreen";
4721
7278
  };
7279
+ readonly 'trajectory-unsupported': {
7280
+ readonly zh: "当前内核不提供轨迹数据,本会话没有可显示的时间线。";
7281
+ readonly en: "This kernel provides no trajectory data; there is no session timeline to show.";
7282
+ };
7283
+ readonly 'trajectory-unsupported-fullscreen': {
7284
+ readonly zh: "当前内核没有轨迹数据,⤢ 全屏不可用。";
7285
+ readonly en: "This kernel has no trajectory data, so ⤢ fullscreen is unavailable.";
7286
+ };
7287
+ readonly 'trajectory-unsupported-exit': {
7288
+ readonly zh: "q / Esc 返回对话";
7289
+ readonly en: "q / Esc to return";
7290
+ };
7291
+ readonly 'trajectory-time-observed': {
7292
+ readonly zh: "时间为收到事件的时刻";
7293
+ readonly en: "time is when the event was received";
7294
+ };
7295
+ readonly 'trajectory-wait-elapsed': {
7296
+ readonly zh: "已等待 {{duration}}";
7297
+ readonly en: "waiting {{duration}}";
7298
+ };
7299
+ readonly 'trajectory-inspect-unavailable': {
7300
+ readonly zh: "事件原文已读不到(可能已被压缩)";
7301
+ readonly en: "source event no longer readable (likely compacted)";
7302
+ };
7303
+ readonly 'trajectory-view-agent': {
7304
+ readonly zh: "代理 {{label}}";
7305
+ readonly en: "agent {{label}}";
7306
+ };
7307
+ readonly 'trajectory-view-parent': {
7308
+ readonly zh: "父回合 {{turn}}";
7309
+ readonly en: "parent turn {{turn}}";
7310
+ };
7311
+ readonly 'trajectory-view-descendants': {
7312
+ readonly zh: "后代 {{label}}";
7313
+ readonly en: "descendants {{label}}";
7314
+ };
7315
+ readonly 'trajectory-drill-hint': {
7316
+ readonly zh: "a 只看该代理";
7317
+ readonly en: "a focus this agent";
7318
+ };
7319
+ readonly 'trajectory-scope-hint-panel': {
7320
+ readonly zh: "a 切换范围";
7321
+ readonly en: "a cycle scope";
7322
+ };
7323
+ readonly 'trajectory-scope-hint': {
7324
+ readonly zh: "a 切换范围 · Esc 返回会话";
7325
+ readonly en: "a cycle scope · Esc back to session";
7326
+ };
7327
+ readonly 'trajectory-backend-label': {
7328
+ readonly zh: "轨迹源:{{name}}";
7329
+ readonly en: "trajectory source: {{name}}";
7330
+ };
7331
+ readonly 'trajectory-backend-dsh': {
7332
+ readonly zh: "DSH 会话日志";
7333
+ readonly en: "DSH session log";
7334
+ };
7335
+ readonly 'trajectory-backend-agent-events': {
7336
+ readonly zh: "会话事件";
7337
+ readonly en: "session events";
7338
+ };
4722
7339
  readonly 'info-section-session': {
4723
7340
  readonly zh: "会话";
4724
7341
  readonly en: "Session";
@@ -5232,6 +7849,14 @@ declare const dict: {
5232
7849
  readonly zh: "设置";
5233
7850
  readonly en: "Settings";
5234
7851
  };
7852
+ readonly 'launchpad-action-backend': {
7853
+ readonly zh: "内核";
7854
+ readonly en: "Kernel";
7855
+ };
7856
+ readonly 'launchpad-action-backend-named': {
7857
+ readonly zh: "内核 · {{name}}";
7858
+ readonly en: "Kernel · {{name}}";
7859
+ };
5235
7860
  readonly 'launchpad-action-help': {
5236
7861
  readonly zh: "帮助";
5237
7862
  readonly en: "Help";
@@ -5248,6 +7873,502 @@ declare const dict: {
5248
7873
  readonly zh: "投喂一颗 Star";
5249
7874
  readonly en: "Feed us a star";
5250
7875
  };
7876
+ readonly 'kernel-label-dsh': {
7877
+ readonly zh: "DeepSeek Harness";
7878
+ readonly en: "DeepSeek Harness";
7879
+ };
7880
+ readonly 'kernel-label-claude': {
7881
+ readonly zh: "Claude Agent";
7882
+ readonly en: "Claude Agent";
7883
+ };
7884
+ readonly 'kernel-label-codex': {
7885
+ readonly zh: "Codex";
7886
+ readonly en: "Codex";
7887
+ };
7888
+ readonly 'kernel-login-in-session': {
7889
+ readonly zh: "未登录 · 启动后用 /login 登录";
7890
+ readonly en: "Not signed in · sign in with /login after start";
7891
+ };
7892
+ readonly 'kernel-unavailable-not-installed': {
7893
+ readonly zh: "未安装";
7894
+ readonly en: "Not installed";
7895
+ };
7896
+ readonly 'kernel-unavailable-auth-missing': {
7897
+ readonly zh: "未登录";
7898
+ readonly en: "Not signed in";
7899
+ };
7900
+ readonly 'kernel-unavailable-too-old': {
7901
+ readonly zh: "版本过旧 · 需升级";
7902
+ readonly en: "Too old · upgrade needed";
7903
+ };
7904
+ readonly 'kernel-switch-restarting': {
7905
+ readonly zh: "正在以 {{name}} 内核重启…";
7906
+ readonly en: "Restarting on the {{name}} kernel…";
7907
+ };
7908
+ readonly 'kernel-handoff-starting': {
7909
+ readonly zh: "正在切换到 {{name}},启动新会话…";
7910
+ readonly en: "Switching to {{name}} and starting a new session…";
7911
+ };
7912
+ readonly 'kernel-handoff-session-kept': {
7913
+ readonly zh: "当前会话仍保留,可随时切回";
7914
+ readonly en: "The current session is preserved; switch back anytime";
7915
+ };
7916
+ readonly 'kernel-handoff-stage-start': {
7917
+ readonly zh: "正在启动 {{name}}…";
7918
+ readonly en: "Starting {{name}}…";
7919
+ };
7920
+ readonly 'kernel-handoff-failed': {
7921
+ readonly zh: "切换未完成({{reason}})。当前会话仍保留。";
7922
+ readonly en: "Switch did not complete ({{reason}}). The current session is preserved.";
7923
+ };
7924
+ readonly 'kernel-handoff-failed-reason-boot': {
7925
+ readonly zh: "新会话启动失败";
7926
+ readonly en: "the new session failed to start";
7927
+ };
7928
+ readonly 'kernel-handoff-failed-reason-spawn': {
7929
+ readonly zh: "无法启动替换进程";
7930
+ readonly en: "could not spawn the replacement process";
7931
+ };
7932
+ readonly 'kernel-handoff-crashed': {
7933
+ readonly zh: "新会话异常退出(代码 {{code}})。";
7934
+ readonly en: "The new session exited abnormally (code {{code}}).";
7935
+ };
7936
+ readonly 'kernel-handoff-safe-hint': {
7937
+ readonly zh: "可运行 dsh-tui safe 进入安全模式诊断。";
7938
+ readonly en: "Run dsh-tui safe for read-only diagnostics.";
7939
+ };
7940
+ readonly 'kernel-picker-title': {
7941
+ readonly zh: "选择内核";
7942
+ readonly en: "Choose kernel";
7943
+ };
7944
+ readonly 'kernel-probing': {
7945
+ readonly zh: "检测中…";
7946
+ readonly en: "Checking…";
7947
+ };
7948
+ readonly 'kernel-already-current': {
7949
+ readonly zh: "已经是当前内核";
7950
+ readonly en: "Already the current kernel";
7951
+ };
7952
+ readonly 'kernel-switch-unavailable': {
7953
+ readonly zh: "当前环境不支持切换内核";
7954
+ readonly en: "Switching kernels is unavailable here";
7955
+ };
7956
+ readonly 'kernel-switch-while-working': {
7957
+ readonly zh: "回合运行中,无法切换内核";
7958
+ readonly en: "Cannot switch kernels while a turn is running";
7959
+ };
7960
+ readonly 'kernel-memory-fallback': {
7961
+ readonly zh: "上次选择的 {{name}} 内核启动失败,已先以 DSH 内核启动:{{reason}}";
7962
+ readonly en: "The remembered {{name}} kernel failed to start; booted on DSH instead: {{reason}}";
7963
+ };
7964
+ readonly 'kernel-pinned-hint': {
7965
+ readonly zh: "启动参数已指定内核:本次会按你的选择重启,下次直接启动仍按参数进入。";
7966
+ readonly en: "A startup flag pins the kernel: this restart follows your choice, a later direct launch follows the flag.";
7967
+ };
7968
+ readonly 'kernel-not-installed-installable': {
7969
+ readonly zh: "未安装 · 按 Enter 安装";
7970
+ readonly en: "Not installed · Enter to install";
7971
+ };
7972
+ readonly 'sdk-install-title': {
7973
+ readonly zh: "安装 Claude 内核";
7974
+ readonly en: "Install the Claude kernel";
7975
+ };
7976
+ 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)";
7979
+ };
7980
+ readonly 'sdk-install-confirm-where': {
7981
+ readonly zh: "安装位置:{{dir}}";
7982
+ readonly en: "Install location: {{dir}}";
7983
+ };
7984
+ 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.";
7987
+ };
7988
+ readonly 'sdk-install-confirm-hint': {
7989
+ readonly zh: "**Enter** 安装 · Esc 返回";
7990
+ readonly en: "**Enter** install · Esc back";
7991
+ };
7992
+ readonly 'sdk-install-checking': {
7993
+ readonly zh: "正在检查 pnpm…";
7994
+ readonly en: "Checking pnpm…";
7995
+ };
7996
+ readonly 'sdk-install-running': {
7997
+ readonly zh: "正在安装,可能需要一分钟…";
7998
+ readonly en: "Installing… this can take a minute";
7999
+ };
8000
+ readonly 'sdk-install-running-sub': {
8001
+ readonly zh: "Esc 取消";
8002
+ readonly en: "Esc to cancel";
8003
+ };
8004
+ readonly 'sdk-install-done': {
8005
+ readonly zh: "SDK 安装完成,Claude 内核已可用。";
8006
+ readonly en: "SDK installed — the Claude kernel is ready.";
8007
+ };
8008
+ readonly 'sdk-install-done-hint': {
8009
+ readonly zh: "**Enter** 返回内核选择 · Esc 关闭";
8010
+ readonly en: "**Enter** back to the kernel picker · Esc close";
8011
+ };
8012
+ readonly 'sdk-install-failed': {
8013
+ readonly zh: "安装失败(pnpm 退出码 {{code}})。可手动安装:";
8014
+ readonly en: "Install failed (pnpm exit code {{code}}). Manual install:";
8015
+ };
8016
+ readonly 'sdk-install-manual': {
8017
+ readonly zh: "{{command}}";
8018
+ readonly en: "{{command}}";
8019
+ };
8020
+ readonly 'sdk-install-failed-hint': {
8021
+ readonly zh: "r 重试 · Esc 返回";
8022
+ readonly en: "r retry · Esc back";
8023
+ };
8024
+ readonly 'sdk-install-pnpm-missing': {
8025
+ readonly zh: "未检测到 pnpm。先运行 npm install -g pnpm 再回来重试,或手动安装:";
8026
+ readonly en: "pnpm was not found. Run npm install -g pnpm first and retry, or install manually:";
8027
+ };
8028
+ readonly 'sdk-install-cancelled': {
8029
+ readonly zh: "已取消安装。";
8030
+ readonly en: "Install cancelled.";
8031
+ };
8032
+ readonly 'sdk-install-no-target-standalone': {
8033
+ readonly zh: "当前是独立构建,没有可安装的 profile 目录;一键安装暂不支持。";
8034
+ readonly en: "This is a standalone build — there is no profile directory to install into; one-click install is unavailable here.";
8035
+ };
8036
+ readonly 'sdk-install-no-target-no-profile': {
8037
+ readonly zh: "本次启动未关联 dsh profile(源码运行或 --config 启动),没有可安装的目录;请用 dsh --profile 启动后重试。";
8038
+ readonly en: "This launch has no dsh profile (source checkout or --config start), so there is no install directory; launch via dsh --profile and retry.";
8039
+ };
8040
+ readonly 'sdk-install-exit-hint': {
8041
+ readonly zh: "Esc 返回";
8042
+ readonly en: "Esc back";
8043
+ };
8044
+ readonly 'channel-picker-title': {
8045
+ readonly zh: "渠道档案";
8046
+ readonly en: "Channel profiles";
8047
+ };
8048
+ readonly 'channel-empty-hint': {
8049
+ readonly zh: "还没有渠道:从 settings.json 导入一个,或直接编辑 channels.json(路径见「查看映射」)。";
8050
+ readonly en: "No channels yet: import one from settings.json, or edit channels.json directly (the path is in the mapping view).";
8051
+ };
8052
+ readonly 'channel-row-summary': {
8053
+ readonly zh: "{{models}} 条精确映射 · {{tiers}} 条档位规则";
8054
+ readonly en: "{{models}} exact mappings · {{tiers}} tier rules";
8055
+ };
8056
+ readonly 'channel-action-import': {
8057
+ readonly zh: "+ 从 settings.json 导入";
8058
+ readonly en: "+ Import from settings.json";
8059
+ };
8060
+ readonly 'channel-action-view': {
8061
+ readonly zh: "≡ 查看映射";
8062
+ readonly en: "≡ View mappings";
8063
+ };
8064
+ readonly 'channel-picker-hint': {
8065
+ readonly zh: "↑↓ 移动 · Enter 切换/执行 · Esc 关闭";
8066
+ readonly en: "↑↓ move · Enter switch/run · Esc close";
8067
+ };
8068
+ readonly 'channel-already-active': {
8069
+ readonly zh: "已是当前渠道";
8070
+ readonly en: "Already the active channel";
8071
+ };
8072
+ readonly 'channel-switch-while-working': {
8073
+ readonly zh: "回合运行中,无法切换或改动渠道";
8074
+ readonly en: "Cannot switch or change channels while a turn is running";
8075
+ };
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
+ readonly 'channel-switched': {
8085
+ readonly zh: "已切换到 {{name}},模型显示已刷新";
8086
+ readonly en: "Switched to {{name}}; the model display refreshed";
8087
+ };
8088
+ readonly 'channel-import-done': {
8089
+ readonly zh: "已导入渠道 {{name}}(重复导入会刷新它)";
8090
+ readonly en: "Imported channel {{name}} (a re-import refreshes it)";
8091
+ };
8092
+ readonly 'channel-import-none': {
8093
+ readonly zh: "settings.json 里没有可导入的映射(ANTHROPIC_BASE_URL / ANTHROPIC_*_MODEL)";
8094
+ readonly en: "Nothing importable in settings.json (ANTHROPIC_BASE_URL / ANTHROPIC_*_MODEL)";
8095
+ };
8096
+ readonly 'channel-map-none': {
8097
+ readonly zh: "当前没有激活的渠道(/channel 里选一个)";
8098
+ readonly en: "No active channel (pick one in /channel)";
8099
+ };
8100
+ readonly 'channel-map-heading': {
8101
+ readonly zh: "当前渠道:{{name}}";
8102
+ readonly en: "Active channel: {{name}}";
8103
+ };
8104
+ readonly 'channel-map-models-heading': {
8105
+ readonly zh: "精确映射(models)";
8106
+ readonly en: "Exact mappings (models)";
8107
+ };
8108
+ readonly 'channel-map-models-none': {
8109
+ readonly zh: "精确映射(models):无";
8110
+ readonly en: "Exact mappings (models): none";
8111
+ };
8112
+ readonly 'channel-map-tiers-heading': {
8113
+ readonly zh: "档位规则(tiers)";
8114
+ readonly en: "Tier rules (tiers)";
8115
+ };
8116
+ readonly 'channel-map-tiers-none': {
8117
+ readonly zh: "档位规则(tiers):无";
8118
+ readonly en: "Tier rules (tiers): none";
8119
+ };
8120
+ readonly 'channel-map-row': {
8121
+ readonly zh: "{{from}} → {{to}}";
8122
+ readonly en: "{{from}} → {{to}}";
8123
+ };
8124
+ readonly 'channel-map-file-hint': {
8125
+ readonly zh: "编辑 ~/.dsh-tui/backends/claude/channels.json 可增删映射,改动会立即反映到模型显示。";
8126
+ readonly en: "Edit ~/.dsh-tui/backends/claude/channels.json to change mappings; the model display follows the changes right away.";
8127
+ };
8128
+ readonly 'channel-row-summary-conn': {
8129
+ readonly zh: "{{url}} · token {{token}} · 环境变量 {{env}} · 精确 {{models}} · 档位 {{tiers}}";
8130
+ readonly en: "{{url}} · token {{token}} · env {{env}} · exact {{models}} · tiers {{tiers}}";
8131
+ };
8132
+ readonly 'channel-row-no-url': {
8133
+ readonly zh: "未设 baseUrl";
8134
+ readonly en: "no baseUrl";
8135
+ };
8136
+ readonly 'channel-action-add': {
8137
+ readonly zh: "* 新增渠道(向导)";
8138
+ readonly en: "* Add a channel (wizard)";
8139
+ };
8140
+ readonly 'channel-action-manage': {
8141
+ readonly zh: "⚙ 管理渠道(编辑/删除)";
8142
+ readonly en: "⚙ Manage channels (edit/delete)";
8143
+ };
8144
+ readonly 'channel-switch-restart': {
8145
+ readonly zh: "已切换到 {{name}}:连接信息不同,正在以新会话重启……";
8146
+ readonly en: "Switched to {{name}}: the connection differs — restarting with a fresh session…";
8147
+ };
8148
+ readonly 'channel-switch-restart-unavailable': {
8149
+ readonly zh: "已切换到 {{name}},新连接从下次会话起生效";
8150
+ readonly en: "Switched to {{name}}; the new connection applies from the next session";
8151
+ };
8152
+ readonly 'channel-wiz-active-channel': {
8153
+ readonly zh: "激活渠道";
8154
+ readonly en: "the active channel";
8155
+ };
8156
+ readonly 'channel-wiz-q-action': {
8157
+ readonly zh: "要做什么?";
8158
+ readonly en: "What would you like to do?";
8159
+ };
8160
+ readonly 'channel-wiz-opt-add': {
8161
+ readonly zh: "新增渠道";
8162
+ readonly en: "Add a channel";
8163
+ };
8164
+ readonly 'channel-wiz-opt-add-desc': {
8165
+ readonly zh: "名字 → baseUrl → token → 映射来源,向导一次配好";
8166
+ readonly en: "Name → baseUrl → token → mapping source, in one pass";
8167
+ };
8168
+ readonly 'channel-wiz-opt-manage': {
8169
+ readonly zh: "管理已有渠道";
8170
+ readonly en: "Manage an existing channel";
8171
+ };
8172
+ readonly 'channel-wiz-opt-manage-desc': {
8173
+ readonly zh: "编辑 baseUrl / token / 映射,或删除";
8174
+ readonly en: "Edit baseUrl / token / mappings, or delete";
8175
+ };
8176
+ readonly 'channel-wiz-cancelled': {
8177
+ readonly zh: "已取消(未写入任何内容)";
8178
+ readonly en: "Cancelled (nothing was written)";
8179
+ };
8180
+ readonly 'channel-wiz-q-name': {
8181
+ readonly zh: "渠道名字(id 由它派生)";
8182
+ readonly en: "Channel name (its id is derived from it)";
8183
+ };
8184
+ readonly 'channel-wiz-q-name-detail': {
8185
+ readonly zh: "例如 智谱、packycode;重复的名字会刷新同一条渠道";
8186
+ readonly en: "e.g. ZhiPu, packycode; the same name refreshes the same channel";
8187
+ };
8188
+ readonly 'channel-wiz-name-required': {
8189
+ readonly zh: "名字不能为空";
8190
+ readonly en: "The name cannot be empty";
8191
+ };
8192
+ readonly 'channel-wiz-q-clash': {
8193
+ readonly zh: "名字「{{name}}」会派生出与它相同的渠道 ID({{id}}),继续将覆盖该渠道的连接与凭据。覆盖?";
8194
+ readonly en: "The name would derive the same channel id ({{id}}) as \"{{name}}\" — continuing replaces that channel's connection and stored token. Overwrite?";
8195
+ };
8196
+ readonly 'channel-wiz-opt-clash-overwrite': {
8197
+ readonly zh: "覆盖该渠道";
8198
+ readonly en: "Overwrite that channel";
8199
+ };
8200
+ readonly 'channel-wiz-opt-clash-overwrite-desc': {
8201
+ readonly zh: "旧渠道的 baseUrl/token/映射将被本次输入替换";
8202
+ readonly en: "Replaces the old channel's baseUrl/token/mappings with this input";
8203
+ };
8204
+ readonly 'channel-wiz-opt-clash-cancel': {
8205
+ readonly zh: "取消(不写入任何内容)";
8206
+ readonly en: "Cancel (nothing is written)";
8207
+ };
8208
+ readonly 'channel-wiz-opt-clash-cancel-desc': {
8209
+ readonly zh: "换一个名字重试即可避开冲突";
8210
+ readonly en: "Retry with a different name to avoid the clash";
8211
+ };
8212
+ readonly 'channel-wiz-q-baseurl': {
8213
+ readonly zh: "API base URL(留空跳过)";
8214
+ readonly en: "API base URL (leave blank to skip)";
8215
+ };
8216
+ readonly 'channel-wiz-q-baseurl-detail': {
8217
+ readonly zh: "渠道的中转端点,如 https://open.bigmodel.cn/api/anthropic;settings.json 当前值:{{current}}";
8218
+ readonly en: "The relay endpoint, e.g. https://open.bigmodel.cn/api/anthropic; settings.json currently says: {{current}}";
8219
+ };
8220
+ readonly 'channel-wiz-q-token': {
8221
+ readonly zh: "渠道 Token(留空跳过)";
8222
+ readonly en: "Channel token (leave blank to skip)";
8223
+ };
8224
+ readonly 'channel-wiz-q-token-detail': {
8225
+ readonly zh: "存入 ~/.dsh/.credentials.yaml(权限 0600),channels.json 只存引用,不存明文";
8226
+ readonly en: "Stored in ~/.dsh/.credentials.yaml (mode 0600); channels.json keeps only a reference, never the token itself";
8227
+ };
8228
+ readonly 'channel-wiz-q-tiers': {
8229
+ readonly zh: "模型映射来源?";
8230
+ readonly en: "Model mapping source?";
8231
+ };
8232
+ readonly 'channel-wiz-opt-tiers-absorb': {
8233
+ readonly zh: "从 settings.json 导入档位规则";
8234
+ readonly en: "Import the tier rules from settings.json";
8235
+ };
8236
+ readonly 'channel-wiz-opt-tiers-absorb-desc': {
8237
+ readonly zh: "导入 {{n}} 条 ANTHROPIC_*_MODEL 档位规则";
8238
+ readonly en: "Imports {{n}} ANTHROPIC_*_MODEL tier rules";
8239
+ };
8240
+ readonly 'channel-wiz-opt-tiers-skip': {
8241
+ readonly zh: "跳过(以后可再导入或手编 channels.json)";
8242
+ readonly en: "Skip (import later or hand-edit channels.json)";
8243
+ };
8244
+ readonly 'channel-wiz-opt-tiers-skip-desc': {
8245
+ readonly zh: "渠道先只有连接信息";
8246
+ readonly en: "The channel starts connection-only";
8247
+ };
8248
+ readonly 'channel-wiz-save-failed': {
8249
+ readonly zh: "写入失败(详情见调试日志)";
8250
+ readonly en: "The write failed (see the debug log)";
8251
+ };
8252
+ readonly 'channel-wiz-saved': {
8253
+ readonly zh: "已保存渠道 {{name}}";
8254
+ readonly en: "Saved channel {{name}}";
8255
+ };
8256
+ readonly 'channel-wiz-q-switch': {
8257
+ readonly zh: "立即切换到 {{name}}?";
8258
+ readonly en: "Switch to {{name}} now?";
8259
+ };
8260
+ readonly 'channel-wiz-opt-switch-yes': {
8261
+ readonly zh: "切换(连接不同会以新会话重启)";
8262
+ readonly en: "Switch (a different connection restarts with a fresh session)";
8263
+ };
8264
+ readonly 'channel-wiz-opt-switch-no': {
8265
+ readonly zh: "先不切(/channel 里随时可切)";
8266
+ readonly en: "Not now (switch any time in /channel)";
8267
+ };
8268
+ readonly 'channel-wiz-empty': {
8269
+ readonly zh: "还没有渠道可管理(先新增或导入)";
8270
+ readonly en: "No channels to manage yet (add or import one first)";
8271
+ };
8272
+ readonly 'channel-wiz-q-pick': {
8273
+ readonly zh: "管理哪条渠道?";
8274
+ readonly en: "Which channel?";
8275
+ };
8276
+ readonly 'channel-wiz-row-mapping-only': {
8277
+ readonly zh: "仅映射(未管理连接)";
8278
+ readonly en: "mapping-only (connection not managed)";
8279
+ };
8280
+ readonly 'channel-wiz-q-edit': {
8281
+ readonly zh: "编辑 {{name}} 的什么?";
8282
+ readonly en: "Edit what of {{name}}?";
8283
+ };
8284
+ readonly 'channel-wiz-opt-edit-baseurl': {
8285
+ readonly zh: "baseUrl";
8286
+ readonly en: "baseUrl";
8287
+ };
8288
+ readonly 'channel-wiz-opt-edit-token': {
8289
+ readonly zh: "token";
8290
+ readonly en: "token";
8291
+ };
8292
+ readonly 'channel-wiz-opt-edit-tiers': {
8293
+ readonly zh: "从 settings.json 刷新映射";
8294
+ readonly en: "Refresh mappings from settings.json";
8295
+ };
8296
+ readonly 'channel-wiz-opt-edit-tiers-desc': {
8297
+ readonly zh: "当前 {{n}} 条档位规则,将被 settings.json 的值替换";
8298
+ readonly en: "{{n}} tier rules now; replaced by settings.json's values";
8299
+ };
8300
+ readonly 'channel-wiz-opt-edit-delete': {
8301
+ readonly zh: "删除这条渠道";
8302
+ readonly en: "Delete this channel";
8303
+ };
8304
+ readonly 'channel-wiz-opt-edit-delete-desc': {
8305
+ readonly zh: "连同凭据库里的 token 一起删";
8306
+ readonly en: "Removes the stored token too";
8307
+ };
8308
+ readonly 'channel-wiz-opt-edit-done': {
8309
+ readonly zh: "完成(不改动)";
8310
+ readonly en: "Done (change nothing)";
8311
+ };
8312
+ readonly 'channel-wiz-token-present': {
8313
+ readonly zh: "已存 token(输入新值替换,- 清除)";
8314
+ readonly en: "token stored (type a new one to replace, - to clear)";
8315
+ };
8316
+ readonly 'channel-wiz-token-absent': {
8317
+ readonly zh: "未存 token(输入即保存)";
8318
+ readonly en: "no token stored (typing stores one)";
8319
+ };
8320
+ readonly 'channel-wiz-q-delete': {
8321
+ readonly zh: "删除 {{name}}?";
8322
+ readonly en: "Delete {{name}}?";
8323
+ };
8324
+ readonly 'channel-wiz-opt-delete-yes': {
8325
+ readonly zh: "删除";
8326
+ readonly en: "Delete";
8327
+ };
8328
+ readonly 'channel-wiz-opt-delete-no': {
8329
+ readonly zh: "取消";
8330
+ readonly en: "Cancel";
8331
+ };
8332
+ readonly 'channel-wiz-deleted': {
8333
+ readonly zh: "已删除渠道 {{name}}";
8334
+ readonly en: "Deleted channel {{name}}";
8335
+ };
8336
+ readonly 'channel-wiz-q-edit-value-hint': {
8337
+ readonly zh: "留空保持不变;输入 - 清除该值";
8338
+ readonly en: "Leave blank to keep; type - to clear";
8339
+ };
8340
+ readonly 'channel-wiz-summary-heading': {
8341
+ readonly zh: "即将保存渠道:{{name}}";
8342
+ readonly en: "About to save the channel: {{name}}";
8343
+ };
8344
+ readonly 'channel-wiz-summary-url-set': {
8345
+ readonly zh: "baseUrl:将设置";
8346
+ readonly en: "baseUrl: will be set";
8347
+ };
8348
+ readonly 'channel-wiz-summary-url-skip': {
8349
+ readonly zh: "baseUrl:不设置";
8350
+ readonly en: "baseUrl: not set";
8351
+ };
8352
+ readonly 'channel-wiz-summary-token-set': {
8353
+ readonly zh: "token:将写入凭据库(0600)";
8354
+ readonly en: "token: stored in the credential store (0600)";
8355
+ };
8356
+ readonly 'channel-wiz-summary-token-skip': {
8357
+ readonly zh: "token:不设置";
8358
+ readonly en: "token: not set";
8359
+ };
8360
+ readonly 'channel-wiz-summary-tiers': {
8361
+ readonly zh: "档位规则:导入 {{n}} 条";
8362
+ readonly en: "tier rules: {{n}} imported";
8363
+ };
8364
+ readonly 'channel-wiz-summary-tiers-none': {
8365
+ readonly zh: "档位规则:无";
8366
+ readonly en: "tier rules: none";
8367
+ };
8368
+ readonly 'channel-wiz-summary-store': {
8369
+ readonly zh: "channels.json 不保存 token 明文;新连接在下次启动会话时生效";
8370
+ readonly en: "channels.json never stores the token itself; the connection applies when the next session starts";
8371
+ };
5251
8372
  readonly 'launchpad-continue-none': {
5252
8373
  readonly zh: "没有可继续的会话,已打开历史会话列表";
5253
8374
  readonly en: "No session to continue — opened the session list";