@ai-zen/cli 1.0.0-alpha.3 → 1.0.0-alpha.30

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 (338) hide show
  1. package/CHANGELOG.md +885 -0
  2. package/LICENSE +21 -0
  3. package/README.md +135 -30
  4. package/README.zh.md +135 -30
  5. package/dist/agent-creator.d.ts +11 -0
  6. package/dist/agent-creator.d.ts.map +1 -1
  7. package/dist/agent-creator.js +50 -20
  8. package/dist/agent-creator.js.map +1 -1
  9. package/dist/agent-switch.d.ts +61 -0
  10. package/dist/agent-switch.d.ts.map +1 -0
  11. package/dist/agent-switch.js +83 -0
  12. package/dist/agent-switch.js.map +1 -0
  13. package/dist/agents-store.d.ts +6 -1
  14. package/dist/agents-store.d.ts.map +1 -1
  15. package/dist/agents-store.js +46 -4
  16. package/dist/agents-store.js.map +1 -1
  17. package/dist/auto-migrate-confirm.d.ts +43 -0
  18. package/dist/auto-migrate-confirm.d.ts.map +1 -0
  19. package/dist/auto-migrate-confirm.js +47 -0
  20. package/dist/auto-migrate-confirm.js.map +1 -0
  21. package/dist/clipboard.d.ts +68 -0
  22. package/dist/clipboard.d.ts.map +1 -0
  23. package/dist/clipboard.js +177 -0
  24. package/dist/clipboard.js.map +1 -0
  25. package/dist/config-editor.d.ts +42 -5
  26. package/dist/config-editor.d.ts.map +1 -1
  27. package/dist/config-editor.js +80 -27
  28. package/dist/config-editor.js.map +1 -1
  29. package/dist/config.d.ts +76 -17
  30. package/dist/config.d.ts.map +1 -1
  31. package/dist/config.js +143 -39
  32. package/dist/config.js.map +1 -1
  33. package/dist/conversation-commands/registry.d.ts +127 -4
  34. package/dist/conversation-commands/registry.d.ts.map +1 -1
  35. package/dist/conversation-commands/registry.js +93 -14
  36. package/dist/conversation-commands/registry.js.map +1 -1
  37. package/dist/conversation-persist-plugin.d.ts +0 -1
  38. package/dist/conversation-persist-plugin.d.ts.map +1 -1
  39. package/dist/conversation-persist-plugin.js +7 -16
  40. package/dist/conversation-persist-plugin.js.map +1 -1
  41. package/dist/conversation-repository.d.ts +79 -18
  42. package/dist/conversation-repository.d.ts.map +1 -1
  43. package/dist/conversation-repository.js +96 -30
  44. package/dist/conversation-repository.js.map +1 -1
  45. package/dist/cwd-tracker-plugin.d.ts.map +1 -1
  46. package/dist/cwd-tracker-plugin.js +22 -7
  47. package/dist/cwd-tracker-plugin.js.map +1 -1
  48. package/dist/format-time.d.ts +17 -6
  49. package/dist/format-time.d.ts.map +1 -1
  50. package/dist/format-time.js +32 -14
  51. package/dist/format-time.js.map +1 -1
  52. package/dist/handoff-service.d.ts +19 -0
  53. package/dist/handoff-service.d.ts.map +1 -0
  54. package/dist/handoff-service.js +89 -0
  55. package/dist/handoff-service.js.map +1 -0
  56. package/dist/hook.d.ts.map +1 -1
  57. package/dist/hook.js +69 -15
  58. package/dist/hook.js.map +1 -1
  59. package/dist/i18n/en-wizard.d.ts +8 -0
  60. package/dist/i18n/en-wizard.d.ts.map +1 -0
  61. package/dist/i18n/en-wizard.js +303 -0
  62. package/dist/i18n/en-wizard.js.map +1 -0
  63. package/dist/i18n/en.d.ts +7 -0
  64. package/dist/i18n/en.d.ts.map +1 -0
  65. package/dist/i18n/en.js +247 -0
  66. package/dist/i18n/en.js.map +1 -0
  67. package/dist/i18n/index.d.ts +57 -0
  68. package/dist/i18n/index.d.ts.map +1 -0
  69. package/dist/i18n/index.js +109 -0
  70. package/dist/i18n/index.js.map +1 -0
  71. package/dist/i18n/preferences.d.ts +37 -0
  72. package/dist/i18n/preferences.d.ts.map +1 -0
  73. package/dist/i18n/preferences.js +73 -0
  74. package/dist/i18n/preferences.js.map +1 -0
  75. package/dist/i18n/zh-wizard.d.ts +11 -0
  76. package/dist/i18n/zh-wizard.d.ts.map +1 -0
  77. package/dist/i18n/zh-wizard.js +306 -0
  78. package/dist/i18n/zh-wizard.js.map +1 -0
  79. package/dist/i18n/zh.d.ts +10 -0
  80. package/dist/i18n/zh.d.ts.map +1 -0
  81. package/dist/i18n/zh.js +251 -0
  82. package/dist/i18n/zh.js.map +1 -0
  83. package/dist/index.js +72 -25
  84. package/dist/index.js.map +1 -1
  85. package/dist/mcp-command.d.ts +32 -0
  86. package/dist/mcp-command.d.ts.map +1 -0
  87. package/dist/mcp-command.js +37 -0
  88. package/dist/mcp-command.js.map +1 -0
  89. package/dist/mode.d.ts +31 -4
  90. package/dist/mode.d.ts.map +1 -1
  91. package/dist/mode.js +42 -7
  92. package/dist/mode.js.map +1 -1
  93. package/dist/model-switch.d.ts +58 -0
  94. package/dist/model-switch.d.ts.map +1 -0
  95. package/dist/model-switch.js +62 -0
  96. package/dist/model-switch.js.map +1 -0
  97. package/dist/reasoning-effort.d.ts +96 -0
  98. package/dist/reasoning-effort.d.ts.map +1 -0
  99. package/dist/reasoning-effort.js +164 -0
  100. package/dist/reasoning-effort.js.map +1 -0
  101. package/dist/reasoning-presets.d.ts +34 -0
  102. package/dist/reasoning-presets.d.ts.map +1 -0
  103. package/dist/reasoning-presets.js +85 -0
  104. package/dist/reasoning-presets.js.map +1 -0
  105. package/dist/sdk-log.d.ts +84 -0
  106. package/dist/sdk-log.d.ts.map +1 -0
  107. package/dist/sdk-log.js +167 -0
  108. package/dist/sdk-log.js.map +1 -0
  109. package/dist/session-pointer.d.ts.map +1 -1
  110. package/dist/session-pointer.js +10 -4
  111. package/dist/session-pointer.js.map +1 -1
  112. package/dist/stdio-runner.d.ts.map +1 -1
  113. package/dist/stdio-runner.js +32 -30
  114. package/dist/stdio-runner.js.map +1 -1
  115. package/dist/sub-agent-guard-plugin.d.ts +10 -7
  116. package/dist/sub-agent-guard-plugin.d.ts.map +1 -1
  117. package/dist/sub-agent-guard-plugin.js +12 -9
  118. package/dist/sub-agent-guard-plugin.js.map +1 -1
  119. package/dist/tui/chat-history.d.ts +29 -0
  120. package/dist/tui/chat-history.d.ts.map +1 -0
  121. package/dist/tui/chat-history.js +55 -0
  122. package/dist/tui/chat-history.js.map +1 -0
  123. package/dist/tui/chat-session.d.ts +177 -57
  124. package/dist/tui/chat-session.d.ts.map +1 -1
  125. package/dist/tui/chat-session.js +362 -126
  126. package/dist/tui/chat-session.js.map +1 -1
  127. package/dist/tui/components.d.ts +113 -7
  128. package/dist/tui/components.d.ts.map +1 -1
  129. package/dist/tui/components.js +177 -12
  130. package/dist/tui/components.js.map +1 -1
  131. package/dist/tui/config-wizard/detail.d.ts +18 -10
  132. package/dist/tui/config-wizard/detail.d.ts.map +1 -1
  133. package/dist/tui/config-wizard/detail.js +53 -46
  134. package/dist/tui/config-wizard/detail.js.map +1 -1
  135. package/dist/tui/config-wizard/engine.d.ts +2 -2
  136. package/dist/tui/config-wizard/engine.d.ts.map +1 -1
  137. package/dist/tui/config-wizard/engine.js +48 -26
  138. package/dist/tui/config-wizard/engine.js.map +1 -1
  139. package/dist/tui/config-wizard/fields.d.ts +3 -1
  140. package/dist/tui/config-wizard/fields.d.ts.map +1 -1
  141. package/dist/tui/config-wizard/fields.js +202 -167
  142. package/dist/tui/config-wizard/fields.js.map +1 -1
  143. package/dist/tui/config-wizard/frame.js +1 -1
  144. package/dist/tui/config-wizard/kv-editor.d.ts.map +1 -1
  145. package/dist/tui/config-wizard/kv-editor.js +13 -5
  146. package/dist/tui/config-wizard/kv-editor.js.map +1 -1
  147. package/dist/tui/config-wizard/list.d.ts +3 -1
  148. package/dist/tui/config-wizard/list.d.ts.map +1 -1
  149. package/dist/tui/config-wizard/list.js +4 -4
  150. package/dist/tui/config-wizard/list.js.map +1 -1
  151. package/dist/tui/config-wizard/mcp-helpers.d.ts.map +1 -1
  152. package/dist/tui/config-wizard/mcp-helpers.js +4 -3
  153. package/dist/tui/config-wizard/mcp-helpers.js.map +1 -1
  154. package/dist/tui/config-wizard/menu.d.ts.map +1 -1
  155. package/dist/tui/config-wizard/menu.js +33 -21
  156. package/dist/tui/config-wizard/menu.js.map +1 -1
  157. package/dist/tui/config-wizard/prompt-editor.d.ts +8 -1
  158. package/dist/tui/config-wizard/prompt-editor.d.ts.map +1 -1
  159. package/dist/tui/config-wizard/prompt-editor.js +11 -7
  160. package/dist/tui/config-wizard/prompt-editor.js.map +1 -1
  161. package/dist/tui/config-wizard/prompt.d.ts.map +1 -1
  162. package/dist/tui/config-wizard/prompt.js +8 -7
  163. package/dist/tui/config-wizard/prompt.js.map +1 -1
  164. package/dist/tui/config-wizard/step-agents.d.ts.map +1 -1
  165. package/dist/tui/config-wizard/step-agents.js +50 -29
  166. package/dist/tui/config-wizard/step-agents.js.map +1 -1
  167. package/dist/tui/config-wizard/step-defaults.d.ts.map +1 -1
  168. package/dist/tui/config-wizard/step-defaults.js +77 -27
  169. package/dist/tui/config-wizard/step-defaults.js.map +1 -1
  170. package/dist/tui/config-wizard/step-endpoints.d.ts.map +1 -1
  171. package/dist/tui/config-wizard/step-endpoints.js +27 -14
  172. package/dist/tui/config-wizard/step-endpoints.js.map +1 -1
  173. package/dist/tui/config-wizard/step-mcp.d.ts.map +1 -1
  174. package/dist/tui/config-wizard/step-mcp.js +29 -25
  175. package/dist/tui/config-wizard/step-mcp.js.map +1 -1
  176. package/dist/tui/config-wizard/step-models.d.ts.map +1 -1
  177. package/dist/tui/config-wizard/step-models.js +98 -43
  178. package/dist/tui/config-wizard/step-models.js.map +1 -1
  179. package/dist/tui/config-wizard/step-new-endpoint.d.ts.map +1 -1
  180. package/dist/tui/config-wizard/step-new-endpoint.js +16 -12
  181. package/dist/tui/config-wizard/step-new-endpoint.js.map +1 -1
  182. package/dist/tui/config-wizard/step-simple.d.ts.map +1 -1
  183. package/dist/tui/config-wizard/step-simple.js +18 -17
  184. package/dist/tui/config-wizard/step-simple.js.map +1 -1
  185. package/dist/tui/config-wizard/types.d.ts +31 -3
  186. package/dist/tui/config-wizard/types.d.ts.map +1 -1
  187. package/dist/tui/config-wizard/types.js.map +1 -1
  188. package/dist/tui/file-index.d.ts +38 -0
  189. package/dist/tui/file-index.d.ts.map +1 -0
  190. package/dist/tui/file-index.js +117 -0
  191. package/dist/tui/file-index.js.map +1 -0
  192. package/dist/tui/index.d.ts +18 -1
  193. package/dist/tui/index.d.ts.map +1 -1
  194. package/dist/tui/index.js +107 -49
  195. package/dist/tui/index.js.map +1 -1
  196. package/dist/tui/input-editing.d.ts +52 -0
  197. package/dist/tui/input-editing.d.ts.map +1 -0
  198. package/dist/tui/input-editing.js +91 -0
  199. package/dist/tui/input-editing.js.map +1 -0
  200. package/dist/tui/key-debug.d.ts +62 -0
  201. package/dist/tui/key-debug.d.ts.map +1 -0
  202. package/dist/tui/key-debug.js +92 -0
  203. package/dist/tui/key-debug.js.map +1 -0
  204. package/dist/tui/mention.d.ts +47 -0
  205. package/dist/tui/mention.d.ts.map +1 -0
  206. package/dist/tui/mention.js +152 -0
  207. package/dist/tui/mention.js.map +1 -0
  208. package/dist/tui/mouse.d.ts +55 -0
  209. package/dist/tui/mouse.d.ts.map +1 -0
  210. package/dist/tui/mouse.js +74 -0
  211. package/dist/tui/mouse.js.map +1 -0
  212. package/dist/tui/phase.d.ts +64 -0
  213. package/dist/tui/phase.d.ts.map +1 -0
  214. package/dist/tui/phase.js +112 -0
  215. package/dist/tui/phase.js.map +1 -0
  216. package/dist/tui/screens/agent-tabs.d.ts +53 -0
  217. package/dist/tui/screens/agent-tabs.d.ts.map +1 -0
  218. package/dist/tui/screens/agent-tabs.js +81 -0
  219. package/dist/tui/screens/agent-tabs.js.map +1 -0
  220. package/dist/tui/screens/chat-commands.d.ts +82 -3
  221. package/dist/tui/screens/chat-commands.d.ts.map +1 -1
  222. package/dist/tui/screens/chat-commands.js +688 -160
  223. package/dist/tui/screens/chat-commands.js.map +1 -1
  224. package/dist/tui/screens/chat.d.ts +57 -5
  225. package/dist/tui/screens/chat.d.ts.map +1 -1
  226. package/dist/tui/screens/chat.js +799 -304
  227. package/dist/tui/screens/chat.js.map +1 -1
  228. package/dist/tui/screens/common-keys.d.ts +36 -0
  229. package/dist/tui/screens/common-keys.d.ts.map +1 -0
  230. package/dist/tui/screens/common-keys.js +67 -0
  231. package/dist/tui/screens/common-keys.js.map +1 -0
  232. package/dist/tui/screens/frame-buffer.d.ts +47 -0
  233. package/dist/tui/screens/frame-buffer.d.ts.map +1 -0
  234. package/dist/tui/screens/frame-buffer.js +78 -0
  235. package/dist/tui/screens/frame-buffer.js.map +1 -0
  236. package/dist/tui/screens/handoff-choice.d.ts +37 -0
  237. package/dist/tui/screens/handoff-choice.d.ts.map +1 -0
  238. package/dist/tui/screens/handoff-choice.js +42 -0
  239. package/dist/tui/screens/handoff-choice.js.map +1 -0
  240. package/dist/tui/screens/index.d.ts +11 -9
  241. package/dist/tui/screens/index.d.ts.map +1 -1
  242. package/dist/tui/screens/index.js +9 -8
  243. package/dist/tui/screens/index.js.map +1 -1
  244. package/dist/tui/screens/input-row.d.ts +64 -0
  245. package/dist/tui/screens/input-row.d.ts.map +1 -0
  246. package/dist/tui/screens/input-row.js +67 -0
  247. package/dist/tui/screens/input-row.js.map +1 -0
  248. package/dist/tui/screens/input.d.ts +77 -1
  249. package/dist/tui/screens/input.d.ts.map +1 -1
  250. package/dist/tui/screens/input.js +125 -8
  251. package/dist/tui/screens/input.js.map +1 -1
  252. package/dist/tui/screens/layout.d.ts +42 -3
  253. package/dist/tui/screens/layout.d.ts.map +1 -1
  254. package/dist/tui/screens/layout.js +43 -13
  255. package/dist/tui/screens/layout.js.map +1 -1
  256. package/dist/tui/screens/lines.d.ts +6 -36
  257. package/dist/tui/screens/lines.d.ts.map +1 -1
  258. package/dist/tui/screens/lines.js +8 -71
  259. package/dist/tui/screens/lines.js.map +1 -1
  260. package/dist/tui/screens/messages-view.d.ts +29 -0
  261. package/dist/tui/screens/messages-view.d.ts.map +1 -0
  262. package/dist/tui/screens/messages-view.js +162 -0
  263. package/dist/tui/screens/messages-view.js.map +1 -0
  264. package/dist/tui/screens/notice-bar.d.ts +5 -0
  265. package/dist/tui/screens/notice-bar.d.ts.map +1 -0
  266. package/dist/tui/screens/notice-bar.js +21 -0
  267. package/dist/tui/screens/notice-bar.js.map +1 -0
  268. package/dist/tui/screens/notice.d.ts +66 -0
  269. package/dist/tui/screens/notice.d.ts.map +1 -0
  270. package/dist/tui/screens/notice.js +106 -0
  271. package/dist/tui/screens/notice.js.map +1 -0
  272. package/dist/tui/screens/overlays.d.ts.map +1 -1
  273. package/dist/tui/screens/overlays.js +4 -3
  274. package/dist/tui/screens/overlays.js.map +1 -1
  275. package/dist/tui/screens/render.d.ts +2 -4
  276. package/dist/tui/screens/render.d.ts.map +1 -1
  277. package/dist/tui/screens/render.js +19 -50
  278. package/dist/tui/screens/render.js.map +1 -1
  279. package/dist/tui/screens/splash.d.ts +1 -1
  280. package/dist/tui/screens/splash.d.ts.map +1 -1
  281. package/dist/tui/screens/splash.js +12 -3
  282. package/dist/tui/screens/splash.js.map +1 -1
  283. package/dist/tui/screens/use-chat-viewport.d.ts +22 -0
  284. package/dist/tui/screens/use-chat-viewport.d.ts.map +1 -0
  285. package/dist/tui/screens/use-chat-viewport.js +50 -0
  286. package/dist/tui/screens/use-chat-viewport.js.map +1 -0
  287. package/dist/tui/screens/use-input-editing.d.ts +69 -0
  288. package/dist/tui/screens/use-input-editing.d.ts.map +1 -0
  289. package/dist/tui/screens/use-input-editing.js +220 -0
  290. package/dist/tui/screens/use-input-editing.js.map +1 -0
  291. package/dist/tui/screens/use-overlays.d.ts +25 -0
  292. package/dist/tui/screens/use-overlays.d.ts.map +1 -0
  293. package/dist/tui/screens/use-overlays.js +32 -0
  294. package/dist/tui/screens/use-overlays.js.map +1 -0
  295. package/dist/tui/screens/use-wizard-host.d.ts +46 -0
  296. package/dist/tui/screens/use-wizard-host.d.ts.map +1 -0
  297. package/dist/tui/screens/use-wizard-host.js +123 -0
  298. package/dist/tui/screens/use-wizard-host.js.map +1 -0
  299. package/dist/tui/status-segments.d.ts +37 -0
  300. package/dist/tui/status-segments.d.ts.map +1 -0
  301. package/dist/tui/status-segments.js +166 -0
  302. package/dist/tui/status-segments.js.map +1 -0
  303. package/dist/tui/text.d.ts +27 -7
  304. package/dist/tui/text.d.ts.map +1 -1
  305. package/dist/tui/text.js +116 -38
  306. package/dist/tui/text.js.map +1 -1
  307. package/dist/tui/theme.d.ts +2 -0
  308. package/dist/tui/theme.d.ts.map +1 -1
  309. package/dist/tui/theme.js +2 -0
  310. package/dist/tui/theme.js.map +1 -1
  311. package/dist/tui/token-rate.d.ts +83 -0
  312. package/dist/tui/token-rate.d.ts.map +1 -0
  313. package/dist/tui/token-rate.js +195 -0
  314. package/dist/tui/token-rate.js.map +1 -0
  315. package/dist/types.d.ts +7 -8
  316. package/dist/types.d.ts.map +1 -1
  317. package/dist/user-content.d.ts +41 -0
  318. package/dist/user-content.d.ts.map +1 -0
  319. package/dist/user-content.js +37 -0
  320. package/dist/user-content.js.map +1 -0
  321. package/dist/version-compare.d.ts +37 -0
  322. package/dist/version-compare.d.ts.map +1 -0
  323. package/dist/version-compare.js +105 -0
  324. package/dist/version-compare.js.map +1 -0
  325. package/dist/version.js.map +1 -1
  326. package/package.json +5 -4
  327. package/dist/auto-migrate-confirm-plugin.d.ts +0 -58
  328. package/dist/auto-migrate-confirm-plugin.d.ts.map +0 -1
  329. package/dist/auto-migrate-confirm-plugin.js +0 -61
  330. package/dist/auto-migrate-confirm-plugin.js.map +0 -1
  331. package/dist/migration-service.d.ts +0 -15
  332. package/dist/migration-service.d.ts.map +0 -1
  333. package/dist/migration-service.js +0 -59
  334. package/dist/migration-service.js.map +0 -1
  335. package/dist/tui/screens/state.d.ts +0 -30
  336. package/dist/tui/screens/state.d.ts.map +0 -1
  337. package/dist/tui/screens/state.js +0 -100
  338. package/dist/tui/screens/state.js.map +0 -1
@@ -0,0 +1,303 @@
1
+ /**
2
+ * English entries — Configuration center (`/config` wizard).
3
+ *
4
+ * Kept separate from `en.ts` for the same reason as `zh-wizard.ts`: the wizard is the
5
+ * densest text area in the CLI. `index.ts` merges both tables, so `t()` sees one map.
6
+ */
7
+ export const en = {
8
+ // ---------- Field labels (reused heavily) ----------
9
+ "field.name": "Name",
10
+ "perm.tools": "Tools",
11
+ "perm.skills": "Skills",
12
+ "perm.mcps": "MCP",
13
+ "perm.subagents": "Sub-agents",
14
+ "field.description": "Description",
15
+ "field.endpoint": "Endpoint",
16
+ "field.modelName": "Model name",
17
+ "field.reasoningPreset": "Reasoning preset",
18
+ "field.handoffThreshold": "Handoff threshold",
19
+ "field.guardThreshold": "Guard threshold",
20
+ "field.vision": "Vision",
21
+ "field.size": "Size",
22
+ "field.quality": "Quality",
23
+ // ---------- Common ---------------------------------------------------
24
+ "common.yes": "Yes",
25
+ "common.no": "No",
26
+ "common.empty": "(empty)",
27
+ "common.emptyWithEditor": "(empty) · Enter to edit",
28
+ "common.linesWithEditor": "{n} lines · Enter to edit",
29
+ "common.bodyWithEditor": "{text} · Enter to edit",
30
+ "common.defaultInParens": "(default)",
31
+ "common.sameAsId": "(same as id)",
32
+ "common.notAdjustable": "(not adjustable)",
33
+ "common.customOnlyNote": "(marked as custom — changes are kept)",
34
+ // ---------- Validation messages ----------
35
+ "err.nameRequired": "Name cannot be empty",
36
+ "err.baseUrlScheme": "Base URL must start with http:// or https://",
37
+ "err.apiKeyRequired": "API key cannot be empty",
38
+ "err.modelNameRequired": "Model name cannot be empty",
39
+ "err.handoffPositive": "Handoff threshold must be a positive integer",
40
+ "err.handoffLessThanGuard": "Handoff threshold must be lower than the guard threshold",
41
+ "err.guardPositive": "Guard threshold must be a positive integer",
42
+ "err.guardGreaterThanHandoff": "Guard threshold must be higher than the handoff threshold",
43
+ "err.presetNotFound": "Preset \"{name}\" does not exist (available: {options})",
44
+ "err.presetTableEmpty": "Preset \"{name}\" does not exist (the preset table is empty, see reasoning-presets.json)",
45
+ "err.idRequired": "ID cannot be empty",
46
+ "err.functionNameRequired": "Function name cannot be empty",
47
+ "err.mcpNameTaken": "A server named {name} already exists",
48
+ "err.agentIdTaken": "A definition with id {name} already exists",
49
+ "err.noEndpoint": "No usable endpoint — add one under Endpoints first",
50
+ // ---------- More field labels (MCP / Agent detail) ----------
51
+ "field.transport": "Transport",
52
+ "field.command": "Command",
53
+ "field.args": "Arguments",
54
+ "field.env": "Environment",
55
+ "field.headers": "Headers",
56
+ "field.id": "ID",
57
+ "field.model": "Model",
58
+ "field.prompt": "Prompt",
59
+ "field.permissions": "Permissions",
60
+ "field.functionName": "Function name",
61
+ "field.functionDescription": "Function description",
62
+ "field.paramsSchema": "Params schema",
63
+ "field.enabled": "Enabled",
64
+ "common.unset": "(not set)",
65
+ "common.disabledInParens": "No (disabled)",
66
+ "common.transportStdio": "stdio (local subprocess)",
67
+ "common.transportMode": "Transport type",
68
+ "common.enabledState": "Enabled state",
69
+ // ---------- Persist feedback (full sentences — parameterised, never concatenated) ----------
70
+ "wiz.endpointUpdated": "Endpoint {name}: {label} updated",
71
+ "wiz.modelUpdated": "Model {name}: {label} updated{suffix}",
72
+ "wiz.imageModelUpdated": "Image model {name}: {label} updated{suffix}",
73
+ "wiz.mcpFieldUpdated": "MCP {id}: {label} updated ({scope})",
74
+ "wiz.mcpRenamed": "MCP {id} renamed to {name} ({scope})",
75
+ "wiz.agentFieldUpdated": "{kind} {id}: {label} updated{suffix}",
76
+ "wiz.agentRenamed": "{kind} {id} renamed to {name}",
77
+ "wiz.agentPermissionUpdated": "{kind} {id}: {dim} permission updated",
78
+ "wiz.presetLevels": "{name} ({levels})",
79
+ "wiz.presetMissingName": "{name} (preset missing)",
80
+ // ---------- Shared buttons / actions ----------
81
+ "ui.save": "Save",
82
+ "ui.cancel": "Cancel",
83
+ "ui.back": "Back",
84
+ "ui.confirm": "Confirm",
85
+ "ui.select": "Select",
86
+ "ui.move": "Move",
87
+ "ui.toggle": "Toggle",
88
+ "ui.open": "Open",
89
+ "ui.edit": "Edit",
90
+ "ui.run": "Run",
91
+ "ui.delete": "Delete",
92
+ "ui.add": "Add",
93
+ "ui.done": "Done",
94
+ "ui.plainOrMasked": "Plain / masked",
95
+ // ---------- Config center home ----------
96
+ "wiz.menu.title": "◆ Configuration",
97
+ "wiz.menu.hint": "Changes are written to disk immediately; changes touching the current endpoint rebuild the session (messages are kept).",
98
+ "wiz.menu.configFile": "Config file: {path}",
99
+ "wiz.menu.endpoints": "Endpoints",
100
+ "wiz.menu.models": "Models",
101
+ "wiz.menu.imageModels": "Image models",
102
+ "wiz.menu.mcp": "MCP servers",
103
+ "wiz.menu.agents": "Agent definitions",
104
+ "wiz.menu.defaults": "Defaults",
105
+ "wiz.menu.maxToolOutput": "Tool output limit",
106
+ "wiz.menu.done": "Done",
107
+ "wiz.menu.savedCount": "{n} change(s) saved",
108
+ "wiz.menu.backToChat": "Back to chat",
109
+ "wiz.menu.count": "{n}",
110
+ "wiz.menu.imageModelsSummary": "{n} · default {name}",
111
+ "wiz.menu.mcpSummary": "global {global} · project {project}",
112
+ "wiz.menu.defaultsSummary": "agent {agent} · migration {model}",
113
+ "wiz.menu.maxToolOutputSummary": "{n} chars",
114
+ "wiz.menu.agentsSummary": "agent {agent} · sub-agent {sub}",
115
+ "wiz.menu.doneReturn": "Done & back",
116
+ "common.unsetPlain": "not set",
117
+ "wiz.pickTitle": "{label} · Select",
118
+ "wiz.confirmTitle": "{label}?",
119
+ "wiz.irreversible": "{title} — this cannot be undone",
120
+ "wiz.confirmAction": "Confirm {label}",
121
+ // ---------- Lists / KV editor / prompt ----------
122
+ "wiz.listEmpty": " (no options)",
123
+ "wiz.truncated": " ({n} total, showing the first {m})",
124
+ "wiz.kvTitle": "{title} · {mode}",
125
+ "wiz.kvModeAdd": "Add",
126
+ "wiz.kvModeEdit": "Edit",
127
+ "wiz.kvHint": "Format: KEY=VALUE (split on the first =)",
128
+ "wiz.kvExample": "e.g. PATH=/usr/bin or Authorization=Bearer xxx",
129
+ "wiz.kvEmpty": " (none yet — press Enter to add)",
130
+ "err.keyValueFormat": "Expected the KEY=VALUE format",
131
+ "err.duplicateKey": "{key} already exists",
132
+ "wiz.promptSecretHint": "(paste or type, then Enter to save; Tab reveals plaintext for checking)",
133
+ "wiz.promptHint": "(type, then Enter to confirm)",
134
+ "scope.global": "global",
135
+ "scope.project": "project",
136
+ "common.noUrl": "(no URL configured)",
137
+ "common.noCommand": "(no command configured)",
138
+ "common.disabledSuffix": " · disabled",
139
+ // ---------- Models / image models (list · detail · create) ----------
140
+ "wiz.kind.custom": "custom",
141
+ "wiz.kind.factory": "factory-managed",
142
+ "wiz.modelKind.factoryNote": "factory-managed (editing switches it to custom)",
143
+ "wiz.modelKind.visionSuffix": " · vision",
144
+ "wiz.modelItem.hint": "{endpoint} · {kind}{vision}",
145
+ "wiz.detail.moveHint": "↑ ↓ move · Enter edit/toggle · changes are written to disk immediately",
146
+ "wiz.models.newItem": "+ New model",
147
+ "wiz.models.newItemHint": "marked as custom automatically",
148
+ "wiz.models.subtitle": "{n} model(s) · select one to edit / delete in place",
149
+ "wiz.models.detailTitle": "◆ Model · {name}",
150
+ "wiz.models.detailLine": "{id} · {kind}",
151
+ "wiz.models.delete": "Delete model",
152
+ "wiz.models.restore": "Restore factory defaults",
153
+ "wiz.models.restored": "Restored model {name} to its factory definition",
154
+ "wiz.models.deleted": "Deleted model {name}",
155
+ "wiz.models.createTitle": "New model · name",
156
+ "wiz.models.createDesc": "Identifies the model in the config and the status bar, e.g. {example}",
157
+ "wiz.models.created": "Created model {name} ({id}, marked as custom)",
158
+ "wiz.models.noEndpoint": "⚠ No endpoint configured — cannot create; add one under Endpoints first",
159
+ "wiz.models.defaultEndpoint": "Will bind the default endpoint: {endpoint}",
160
+ "wiz.createAndEdit": "Create & edit",
161
+ "wiz.imageModels.newItem": "+ New image model",
162
+ "wiz.imageModels.subtitle": "{n} total · select one to edit / delete in place",
163
+ "wiz.imageModels.detailTitle": "◆ Image model · {name}",
164
+ "wiz.imageModels.delete": "Delete image model",
165
+ "wiz.imageModels.restore": "Restore factory defaults",
166
+ "wiz.imageModels.restored": "Restored image model {name} to its factory definition",
167
+ "wiz.imageModels.deleted": "Deleted image model {name}",
168
+ "wiz.imageModels.createTitle": "New image model · name",
169
+ "wiz.imageModels.created": "Created image model {name} ({id}, marked as custom)",
170
+ // ---------- Agent definitions (list · detail · permissions · text editing · create) ----------
171
+ "wiz.agents.new": "+ New agent",
172
+ "wiz.agents.newHint": "top-level agent (can be the default agent)",
173
+ "wiz.agents.newSub": "+ New sub-agent",
174
+ "wiz.agents.newSubHint": "a delegatable child agent",
175
+ "wiz.agents.title": "◆ Agent definitions",
176
+ "wiz.agents.itemHint": "{kind} · {id}{factory}",
177
+ "wiz.agent.factorySuffix": " · factory-managed",
178
+ "wiz.agent.subSuffix": " · Sub-agent",
179
+ "wiz.agent.detailTitle": "◆ {kind} · {name}",
180
+ "wiz.agent.detailLine": "{id} · {kind}{subSuffix}",
181
+ "wiz.agent.moveHint": "↑ ↓ move · Enter edit/toggle/open · changes are written to disk immediately",
182
+ "wiz.agent.deleteAction": "Delete {kind}",
183
+ "wiz.agent.restore": "Restore factory defaults",
184
+ "wiz.agentRestored": "Restored the {kind} {id} prompt to its factory definition",
185
+ "wiz.agent.subscreenTitle": "◆ {kind} · {id} · {label}",
186
+ "wiz.agent.permHint": "Format: `allow: a, b` or `deny: x` (comma-separated; empty clears this dimension)",
187
+ "wiz.agent.permMoveHint": "↑ ↓ move · Enter edit · Esc back",
188
+ "wiz.agent.fnParamsSubtitle": "A JSON object; Enter opens the system editor, and saving validates and writes immediately",
189
+ "wiz.agent.editorSubtitle": "Enter opens the system editor ($EDITOR / notepad); saving writes to disk",
190
+ "wiz.agent.fnParamsUpdated": "{name}: params schema updated",
191
+ "wiz.agent.fnDescUpdated": "{name}: function description updated",
192
+ "wiz.agent.promptUpdated": "{name}: prompt updated",
193
+ "wiz.agent.newTitle": "New {kind} · name",
194
+ "wiz.agent.newDesc": "Identifies the definition in the list and the status bar, e.g. {example}",
195
+ "wiz.agent.newDescAgent": "After creating, pick it as the default under Defaults → Default agent",
196
+ "wiz.agent.newDescSub": "A function skeleton is generated automatically (editable)",
197
+ "wiz.agent.created": "Created {kind} {name} ({id})",
198
+ // ---------- Tool output limit / direct endpoint field editing ----------
199
+ "wiz.maxToolOutput.title": "Tool output limit (characters)",
200
+ "wiz.currentLine": "Current: {value}",
201
+ "wiz.maxToolOutput.desc": "Single tool output above this limit is written to disk or only warned about, so the context never blows up",
202
+ "wiz.maxToolOutput.updated": "Tool output limit → {n} chars",
203
+ "err.positiveInteger": "Must be a positive integer",
204
+ "wiz.apiKey.titleOnboarding": "First-time setup · set the API key for {name}",
205
+ "wiz.apiKey.title": "Set API key · {name}",
206
+ "wiz.apiKey.endpointLine": "Endpoint: {name} · {url}",
207
+ "wiz.apiKey.guideUrl": "{vendor} signup: {url}",
208
+ "wiz.apiKey.guideNoUrl": "{vendor}: get an API key from the provider",
209
+ "wiz.apiKey.onboardingNote": "Saving enters the chat immediately (Esc discards and exits).",
210
+ "wiz.apiKey.saveAndEnter": "Save & enter chat",
211
+ "ui.discard": "Discard",
212
+ "wiz.baseUrl.title": "Set base URL · {name}",
213
+ "wiz.baseUrl.hint": "Must start with http:// or https:// (OpenAI-compatible endpoint)",
214
+ // ---------- MCP servers / defaults ----------
215
+ "wiz.mcp.switchScope": "⇄ Switch to the \"{scope}\" scope",
216
+ "wiz.mcp.serverCount": "{n} server(s)",
217
+ "wiz.mcp.newItem": "+ New server",
218
+ "wiz.mcp.listTitle": "◆ MCP servers · {scope}",
219
+ "wiz.mcp.damaged": "mcp.json cannot be parsed ({error}); this screen shows an empty config",
220
+ "wiz.mcp.listSubtitle": "{n} · {path}",
221
+ "wiz.mcp.detailTitle": "◆ MCP · {id}",
222
+ "wiz.scopePath": "{scope} · {path}",
223
+ "wiz.mcp.detailLine": "transport {transport} · ↑ ↓ move · Enter edit/toggle",
224
+ "wiz.mcp.delete": "Delete server",
225
+ "wiz.mcp.deleted": "Deleted MCP server {id} ({scope})",
226
+ "wiz.mcp.kvTitle": "◆ MCP · {id} · {label}",
227
+ "wiz.mcp.kvSubtitle": "{scope} · {n} entries",
228
+ "wiz.mcp.newTitle": "New MCP server · name ({scope})",
229
+ "wiz.mcp.newDescKey": "Used as the key under mcpServers, e.g. github / chrome-devtools",
230
+ "wiz.mcp.newDescDefault": "Created as stdio by default; transport / command / args / env are all editable",
231
+ "wiz.mcp.created": "Created MCP server {id} ({scope})",
232
+ "wiz.defaults.title": "Defaults",
233
+ "wiz.defaults.subtitle": "Values used by new sessions and task migration",
234
+ "wiz.defaults.pickSubtitle": "Written to disk as soon as you pick",
235
+ "wiz.defaults.imageModel": "Default image model",
236
+ "wiz.defaults.agent": "Default agent",
237
+ "wiz.defaults.migrationModel": "Default migration model",
238
+ "wiz.defaults.keyReady": "API key ready",
239
+ "wiz.defaults.missingKey": "API key missing",
240
+ "wiz.defaults.itemHint": "{endpoint} · {state}",
241
+ "wiz.defaults.updated": "{label} → {value}",
242
+ "wiz.defaults.strategyMessage": "Keep output on interrupt",
243
+ "wiz.defaults.strategyToolRound": "Interrupted tool rounds",
244
+ "wiz.defaults.strategySubtitle": "Written to disk as soon as you pick; the session is rebuilt when you close the config center",
245
+ "wiz.strategy.keep": "Keep (keep)",
246
+ "wiz.strategy.drop": "Drop (drop)",
247
+ "wiz.strategy.fill": "Keep the whole round (fill)",
248
+ "wiz.strategy.keepHint": "After an interrupt the partial reasoning and answer stay in context, so the model can continue",
249
+ "wiz.strategy.dropHint": "The partial turn never enters the context (core library default)",
250
+ "wiz.strategy.fillHint": "Restore the whole round and backfill a reason for unfinished results — tool_calls must pair with results",
251
+ "wiz.strategy.toolDropHint": "Drop the whole round: neither the assistant message nor its tool results are sent",
252
+ // ---------- Endpoints list / new endpoint ----------
253
+ "ui.next": "Next",
254
+ "common.listSep": ", ",
255
+ "wiz.endpoints.newItem": "+ New endpoint",
256
+ "wiz.endpoints.newItemHint": "custom OpenAI-compatible service",
257
+ "wiz.endpoints.subtitle": "{n} endpoint(s) · select one to edit / delete in place",
258
+ "wiz.endpoints.detailTitle": "◆ Endpoint · {name}",
259
+ "wiz.endpoints.detailLine": "{id}{refs}",
260
+ "wiz.endpoints.refSuffix": " · referenced by {n} model(s)",
261
+ "wiz.endpoints.moveHint": "↑ ↓ move · Enter edit · changes are written to disk immediately",
262
+ "wiz.endpoints.delete": "Delete endpoint",
263
+ "wiz.endpoints.deleteBlocked": "Cannot delete: still referenced by {n} model(s) ({models}) — delete or rebind them first",
264
+ "wiz.endpoints.deleted": "Deleted endpoint {name}",
265
+ "wiz.newEndpoint.nameTitle": "New endpoint · name",
266
+ "wiz.newEndpoint.nameDesc": "Identifies the service in the config and the status bar, e.g. {example}",
267
+ "wiz.newEndpoint.baseUrlTitle": "New endpoint · base URL",
268
+ "wiz.newEndpoint.baseUrlDesc": "e.g. https://api.openai.com/v1 (must be an OpenAI-compatible API)",
269
+ "wiz.newEndpoint.apiKeyTitle": "New endpoint · API key",
270
+ "wiz.newEndpoint.apiKeyOptional": "Leave it empty to add later (the endpoint stays unusable until then)",
271
+ "wiz.newEndpoint.save": "Save endpoint",
272
+ "wiz.newEndpoint.created": "Added endpoint {name} ({id}){suffix}",
273
+ "wiz.newEndpoint.keyPending": " · API key pending",
274
+ // ---------- Write failures / editor / leftovers ----------
275
+ "wiz.writeConfigFailed": "Failed to write the config: {error}",
276
+ "wiz.writeMcpFailed": "Failed to write the MCP config: {error}",
277
+ "wiz.writeAgentFailed": "Failed to write the agent definition: {error}",
278
+ "wiz.deleteAgentFailed": "Failed to delete the agent definition: {error}",
279
+ "wiz.agentDeleted": "Deleted {kind} {id}",
280
+ "wiz.openEditorFailed": "Failed to open the editor: {error}",
281
+ "wiz.editorBusy": "Editing…",
282
+ "wiz.openSystemEditor": "Open system editor",
283
+ "wiz.kvAddRow": "+ Add",
284
+ "wiz.plaintextRevealed": "⚠ Showing plaintext (Tab returns to masked)",
285
+ // ---------- config-editor shared: summaries / validation / transports ----------
286
+ "common.noEndpoints": "no endpoints",
287
+ "common.kvSummary": "{n} entries ({keys})",
288
+ "common.permissionSummary": "{n} dimension(s) ({dims})",
289
+ "common.transportHttp": "http (Streamable HTTP)",
290
+ "common.transportSse": "sse (Server-Sent Events)",
291
+ "err.permissionFormat": "Expected \"allow: a, b\" or \"deny: x\"",
292
+ "err.permissionNeedsPattern": "At least one pattern is required (e.g. `*`)",
293
+ "err.paramsSchemaEmpty": "Params schema cannot be empty (at least {})",
294
+ "err.paramsSchemaNotObject": "Params must be a JSON object",
295
+ "err.jsonParseFailed": "Failed to parse JSON: {error}",
296
+ "vendor.zhipu": "Zhipu AI (BigModelCN)",
297
+ "vendor.deepseek": "DeepSeek",
298
+ "vendor.openai": "OpenAI",
299
+ "vendor.moonshot": "Moonshot (Kimi)",
300
+ "vendor.dashscope": "Alibaba Cloud Bailian (DashScope)",
301
+ "vendor.openaiCompatible": "OpenAI-compatible endpoint",
302
+ };
303
+ //# sourceMappingURL=en-wizard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"en-wizard.js","sourceRoot":"","sources":["../../src/i18n/en-wizard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * English entries — the fallback language.
3
+ *
4
+ * 约定与 `zh.ts` 一致(不做复数变体:数量词直接写 `(s)`)。
5
+ */
6
+ export declare const en: Record<string, string>;
7
+ //# sourceMappingURL=en.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA4PrC,CAAC"}
@@ -0,0 +1,247 @@
1
+ /**
2
+ * English entries — the fallback language.
3
+ *
4
+ * 约定与 `zh.ts` 一致(不做复数变体:数量词直接写 `(s)`)。
5
+ */
6
+ export const en = {
7
+ // ---------- Input row ----------
8
+ "input.placeholder": "Type a message, / commands, @ files…",
9
+ "input.hint.ready": "Enter send · Ctrl+J newline · / commands · PgUp history",
10
+ "input.hint.scrolling": "↕ scrolling · PgUp/PgDn pages · send to jump to bottom",
11
+ "input.hint.initializing": "Initializing…",
12
+ "mention.scanning": "Scanning project files…",
13
+ "input.pastedImages": "{n} attached · Ctrl+V add more · Esc to clear",
14
+ // ---------- Status bar ----------
15
+ "status.agent": " · agent ",
16
+ "status.effort": " · thinking ",
17
+ "status.lastTokens": "turn\u00a0{n}\u00a0tok",
18
+ "status.totalTokens": "total\u00a0{n}\u00a0tok",
19
+ "status.avgRate": "⚡\u00a0avg\u00a0{rate}",
20
+ // ---------- Reasoning effort ----------
21
+ "effort.off": "off",
22
+ "effort.none": "off",
23
+ "effort.minimal": "minimal",
24
+ "effort.low": "low",
25
+ "effort.medium": "medium",
26
+ "effort.high": "high",
27
+ "effort.xhigh": "xhigh",
28
+ "effort.max": "max",
29
+ "effort.custom": "custom",
30
+ "effort.default": "default",
31
+ "effort.unsupported": "—",
32
+ // ---------- Generation phases (message-area spinner; see `tui/phase.ts`) ----------
33
+ "phase.working": "Working…",
34
+ "phase.connecting": "Connecting…",
35
+ "phase.queued": "Queued…",
36
+ "phase.thinking": "Thinking…",
37
+ "phase.toolCalling": "Calling tool…",
38
+ "phase.toolCallingWith": "Calling {name}…",
39
+ "phase.toolWaiting": "Waiting for the tool…",
40
+ "phase.toolWaitingWith": "Waiting for {name}…",
41
+ "phase.streaming": "Streaming…",
42
+ // ---------- Notices ----------
43
+ "notice.reloaded": "Session rebuilt with the new config (messages and context kept)",
44
+ "notice.draftSaved": "Draft saved (Ctrl+S to restore)",
45
+ "notice.draftRestored": "Draft restored",
46
+ "notice.imagePasted": "Image pasted ({n} attached). Enter to send",
47
+ "notice.imageLimit": "At most {n} images per message",
48
+ "notice.imageTooLarge": "Image too large ({size}MB), over the 20MB limit",
49
+ "notice.imagesCleared": "Attached images cleared",
50
+ "notice.textTooLarge": "Clipboard text is {size}KB, over the {limit}KB limit — nothing was pasted; save long content to a file and reference it with @",
51
+ "notice.clipboardEmpty": "The clipboard is empty",
52
+ "notice.clipboardUnavailable": "No clipboard tool available (pbpaste on macOS, wl-paste or xclip on Linux)",
53
+ "notice.inputCleared": "Input cleared · press Ctrl+C again to exit",
54
+ "notice.pressCtrlDAgain": "Press Ctrl+D again to exit",
55
+ "notice.languageChanged": "Language switched to English",
56
+ // ---------- Command descriptions (/help & slash menu) ----------
57
+ "cmd.save.desc": "Save the conversation",
58
+ "cmd.load.desc": "Load a conversation (replaces this one)",
59
+ "cmd.new.desc": "Reset the session (clear history)",
60
+ "cmd.back.desc": "Retract the last message (edit and resend)",
61
+ "cmd.editor.desc": "Compose a long message in your editor",
62
+ "cmd.clear.desc": "Clear the screen",
63
+ "cmd.config.desc": "Open the configuration center (model / endpoints)",
64
+ "cmd.model.desc": "Switch model (writes to config)",
65
+ "cmd.agent.desc": "Switch the primary agent (rebuilds the session)",
66
+ "cmd.reload.desc": "Refresh the runtime (rediscovers tools / MCP)",
67
+ "cmd.update.desc": "Upgrade the CLI to the newest published release",
68
+ "cmd.mcp.desc": "Manage MCP servers (add / remove / edit / toggle)",
69
+ "cmd.lang.desc": "Switch interface language",
70
+ "cmd.think.desc": "Switch reasoning effort",
71
+ "cmd.key.desc": "Set the endpoint API key",
72
+ "cmd.handoff.desc": "Write a handoff document (keeps the session)",
73
+ "cmd.migrate.desc": "Hand off and start a new session",
74
+ "cmd.help.desc": "Show this help",
75
+ "cmd.exit.desc": "Exit the conversation (offers to save)",
76
+ "cmd.running": "Running /{name}…",
77
+ // ---------- Command interaction text (notices / pickers) ----------
78
+ "common.current": " (current)",
79
+ "cmd.model.noModels": "No models configured yet — use /config to add endpoints and models",
80
+ "cmd.model.title": "Switch model (writes to config)",
81
+ "cmd.model.cancelled": "Model switch cancelled",
82
+ "cmd.agent.noAgents": "No primary agents yet — use /config to create one",
83
+ "cmd.agent.unavailable": " · unavailable",
84
+ "cmd.agent.title": "Switch primary agent (writes the default agent)",
85
+ "cmd.agent.cancelled": "Agent switch cancelled",
86
+ "cmd.reload.done": "Runtime refreshed: config / tools / skills / MCP rediscovered (messages and context kept)",
87
+ "cmd.update.done": "✅ Installed {spec}: v{current} → v{version}",
88
+ "cmd.update.checking": "Checking the latest version of {pkg}…",
89
+ "cmd.update.found": "Found v{target} (current v{current}) — installing…",
90
+ "cmd.update.installHeader": "\n📦 Installing {spec} (current v{current})\n Location {root}\n Command npm install -g {spec} --prefer-online --no-fund",
91
+ "cmd.update.rootUnknown": "unknown",
92
+ "cmd.update.confirmRestart": "Installed v{version}; it takes effect after a restart (this process still runs v{current}). Restart now? The current conversation is saved.",
93
+ "cmd.update.same": "✅ Already on the newest version v{version} — no restart needed",
94
+ "cmd.update.restart": "Restart ai to take effect (this process still runs the old v{current} code)",
95
+ "cmd.update.failed": "❌ Failed to install {spec}: {error}",
96
+ "cmd.update.tagsFailed": "❌ Failed to read the published versions of {pkg} (npm missing or network down)",
97
+ "cmd.update.noVersion": "❌ {pkg} has no installable version on the registry",
98
+ "cmd.think.followDefault": "Follow model default",
99
+ "cmd.think.clearHint": "Remove the agent's reasoning params",
100
+ "cmd.think.cancelled": "Reasoning effort change cancelled",
101
+ "cmd.think.unchanged": "Reasoning effort unchanged",
102
+ "cmd.help.title": "Available commands:",
103
+ "cmd.new.archived": "Previous conversation archived: {id}\nStarted a new conversation",
104
+ "cmd.new.started": "Started a new conversation",
105
+ "cmd.load.none": "No saved conversations yet",
106
+ "cmd.load.title": "Load a saved conversation",
107
+ "cmd.load.titleReplacing": "Pick a conversation to load (replaces the current session)",
108
+ "cmd.load.cancelled": "Load cancelled",
109
+ "cmd.handoff.empty": "The current conversation has nothing to hand off",
110
+ "cmd.handoff.title": "Write a handoff document · pick a mode",
111
+ "cmd.handoff.cancelled": "Handoff cancelled",
112
+ "cmd.migrate.empty": "The current conversation has nothing to migrate",
113
+ "cmd.migrate.title": "Task migration · pick a handoff mode (starts a new session afterwards)",
114
+ "cmd.migrate.cancelled": "Migration cancelled",
115
+ "cmd.back.empty": "No messages to retract",
116
+ "cmd.back.title": "Pick the message to retract (everything after it is removed)",
117
+ "cmd.back.cancelled": "Retract cancelled",
118
+ "cmd.model.unknown": "Unknown model: {id} (available: {options})",
119
+ "cmd.model.already": "Already on model {id}",
120
+ "cmd.model.endpointMissing": "Model {id} references endpoint {endpoint}, which does not exist — check /config",
121
+ "cmd.model.noApiKey": "Endpoint \"{name}\" has no API key yet — set it up in /config before switching",
122
+ "cmd.model.failed": "Model switch failed: {error}",
123
+ "cmd.agent.unknown": "Unknown agent: {id} (available: {options})",
124
+ "cmd.agent.unavailableReason": "Agent \"{name}\" is unavailable: {reason}",
125
+ "cmd.agent.alreadyOn": "{summary} (this session is already on that agent)",
126
+ "cmd.agent.failed": "Agent switch failed: {error}",
127
+ "cmd.mcp.unknownScope": "Unknown scope: {scope} (use global / project, or no argument)",
128
+ "cmd.lang.unknown": "Unknown language: {lang} (use zh / en, or no argument to toggle)",
129
+ "cmd.reload.failed": "Refresh failed: {error}",
130
+ "cmd.think.noModel": "Agent \"{id}\" has no model bound — pick one in /config",
131
+ "cmd.think.modelMissing": "Model {id} does not exist — check with /model or /config",
132
+ "cmd.think.notAdjustable": "Model {id} has no usable reasoning preset (missing reasoningPreset, or the level is absent from the preset table), so it cannot be adjusted",
133
+ "cmd.think.unknown": "Unknown effort: {level} (available: {options} / default)",
134
+ "cmd.think.title": "Reasoning effort (current: {level})",
135
+ "cmd.think.failed": "Reasoning effort change failed: {error}",
136
+ "cmd.save.done": "Conversation saved: {id}",
137
+ "cmd.save.failed": "Save failed: {error}",
138
+ "cmd.save.overwrite": "A conversation named {id} already exists. Overwrite it?",
139
+ "cmd.save.cancelled": "Save cancelled",
140
+ "cmd.load.tooMany": "Pick a conversation to load (showing the latest {n})",
141
+ "cmd.load.readFailed": "Conversation not found or unreadable: {id}",
142
+ "cmd.handoff.unknownMode": "Unknown mode: {who} (use self / summary)",
143
+ "cmd.handoff.done": "Handoff document created: {path}",
144
+ "cmd.handoff.failed": "Failed to write the handoff document: {error}",
145
+ "cmd.migrate.done": "Migration complete, a new session has started\n📄 Handoff document: {path}",
146
+ "cmd.migrate.failed": "Migration failed: {error}",
147
+ "cmd.back.tooMany": "Pick the message to retract (showing the latest {n})",
148
+ "cmd.editor.failed": "Failed to open the editor: {error}",
149
+ "cmd.unknown": "Unknown command: {cmd} (type /help for available commands)",
150
+ // ---------- Handoff picker / sub-task notices / splash / message placeholders ----------
151
+ "handoff.pickTitle": "Context is about to overflow ({used}/{limit} tokens) · choose how to hand off",
152
+ "handoff.modeSelf": "The current session writes the handoff itself",
153
+ "handoff.modeSelfHint": "faithful · verifies the real state",
154
+ "handoff.modeSummary": "A separate agent writes the handoff",
155
+ "handoff.modeSummaryHint": "independent summary · fast and cheap, does not verify files",
156
+ "handoff.modeSkip": "No handoff",
157
+ "handoff.modeSkipHint": "Skip this time",
158
+ "agentTabs.main": "MAIN",
159
+ "agentTabs.sub": "SUB{n}",
160
+ "chat.noMigratable": "This conversation has nothing to migrate yet",
161
+ "chat.noHandoffable": "This conversation has nothing to hand off yet",
162
+ "chat.configReadFailed": "Failed to read the config: {error}",
163
+ "chat.modelNoEndpoint": "Model {id} has no usable endpoint bound — check the config with /config",
164
+ "chat.configUpdated": "Config updated: {line}",
165
+ "chat.configUpdatedMulti": "Config updated:\n{lines}",
166
+ "chat.sessionReloadFailed": "Failed to rebuild the session: {error}",
167
+ "chat.bootFailed": "✖ Cannot start the conversation: {error}",
168
+ "chat.bootHint": "Press k to open the configuration center (set the API key / endpoint URL) · Enter to go back",
169
+ "splash.tagline": "The AI collaboration desk in your terminal",
170
+ "splash.pressAnyKey": "Press any key to start…",
171
+ "splash.preparing": "Preparing",
172
+ "msg.image": "[Image: {url}]",
173
+ "msg.imageInline": "[image]",
174
+ "msg.file": "[File: {name}]",
175
+ "msg.inlineFile": "inline file",
176
+ "msg.userHeader": "❯ You",
177
+ "msg.aiHeader": "✦ AI",
178
+ "confirm.hint": "← → select · y/n · Enter confirm",
179
+ // ---------- Summaries / errors returned by business modules ----------
180
+ "effort.err.agentMissing": "Agent \"{id}\" does not exist",
181
+ "effort.err.noModel": "Agent \"{id}\" has no model bound — pick one for it first",
182
+ "effort.err.modelMissing": "Model \"{id}\" does not exist — check with /model or /config",
183
+ "effort.err.noPreset": "Model \"{id}\" has no usable reasoning preset (reasoningPreset), so the effort cannot be set",
184
+ "effort.err.unknownLevel": "Preset \"{preset}\" has no level \"{level}\" (available: {options})",
185
+ "effort.followDefault": "follow the model default",
186
+ "effort.quoted": "\"{label}\"",
187
+ "effort.summary": "Reasoning effort set to {label} · written to agent \"{id}\" (model {model})",
188
+ "modelSwitch.err.modelMissing": "Model \"{id}\" does not exist",
189
+ "modelSwitch.err.agentMissing": "Agent \"{id}\" does not exist",
190
+ "modelSwitch.resetHint": " · reasoning effort reset to the model default",
191
+ "modelSwitch.summary": "Switched model: {name} ({id}) · written to agent \"{agent}\"{hint}",
192
+ "agentSwitch.err.noModel": "no model bound",
193
+ "agentSwitch.err.modelMissing": "model {id} does not exist",
194
+ "agentSwitch.err.missingKey": "endpoint \"{endpoint}\" has no API key",
195
+ "agentSwitch.err.agentMissing": "Agent \"{id}\" does not exist",
196
+ "agentSwitch.err.agentNoModel": "Agent \"{name}\" has no model bound — pick one with /config first",
197
+ "agentSwitch.err.modelGone": "The model \"{id}\" bound to agent \"{name}\" is no longer in the config — pick another with /model or /config",
198
+ "agentSwitch.err.noKey": "Endpoint \"{endpoint}\" has no API key yet — configure it with /config before switching",
199
+ "agentSwitch.summary": "Switched main agent: {name} ({id}) · model {model} ({modelId})",
200
+ "handoff.mode.self": "original agent writes it",
201
+ "handoff.mode.summary": "independent summary",
202
+ "handoff.autoDetected": "📋 Context is about to overflow ({used}/{limit} tokens) — handing off ({mode})…",
203
+ "handoff.writing": "📋 Writing the handoff document ({mode})…",
204
+ "handoff.degraded": "⚠️ {requested} produced no document; fell back to {mode}",
205
+ "handoff.path": "📄 Handoff document: {path}",
206
+ "handoff.savedConversation": "✅ Original conversation saved: {name}",
207
+ "handoff.migrated": "🚀 Migration complete, a new session has started ({n} messages)",
208
+ "handoff.migratedHint": "💡 The new assistant reads the handoff document first, then carries on.",
209
+ "handoff.persistFailed": "⚠️ Failed to save the session after migration: {error}",
210
+ // ---------- Entry / exit / time formats ----------
211
+ "app.goodbye": "\nBye 👋\n",
212
+ "app.agentNoModel": "Agent \"{id}\" has no model bound — pick one with /config",
213
+ "app.agentModelGone": "The model \"{model}\" bound to agent \"{id}\" is no longer in the config — pick another with /config",
214
+ "app.noAgents": "No usable agent — create one in the config first (config.json)",
215
+ "app.bootFailed": "✖ Cannot start the conversation: {error}",
216
+ "app.unexpected": "✖ Unexpected error: {error}",
217
+ "chat.persistFailed": "⚠️ Failed to save the conversation: {error}",
218
+ "migrate.skipped": "⏭️ Task migration skipped this time; run /migrate whenever you like. If the context keeps growing past the hard limit, the safety guard will interrupt the conversation.",
219
+ "time.yesterday": "Yesterday {time}",
220
+ "time.pattern.thisYear": "MMM D, HH:mm",
221
+ "time.pattern.older": "MMM D, YYYY HH:mm",
222
+ "time.pattern.full": "MMM D, YYYY HH:mm:ss",
223
+ "time.messageCount": "{n} message(s), {time}",
224
+ // ---------- `ai --help` (printed outside the TUI, hence the locale init in the help branch) ----------
225
+ "cli.help.title": "ai — AI-Zen CLI v{version}",
226
+ "cli.help.usage": "\nUsage:\n ai Start the interactive UI (TUI; stdin/stdout must be a TTY)\n ai <prompt> Ask in pure stdio mode; the result goes to stdout\n cat file | ai \"summarize it\" Pipe content in; the argument is the instruction\n ai hook install Install the shell fallback hook (route unknown commands to the AI)\n ai hook uninstall Uninstall the shell fallback hook",
227
+ "cli.help.options": "\nOptions:\n --save Save this conversation to the archive (off by default)\n --tui [prompt…] Force the interactive UI; the prompt is auto-sent as the first message (used by the shell hook)\n --new Start a new conversation instead of resuming the last one\n -h, --help Show this help\n -v, --version Show the version",
228
+ "cli.help.notes": "\nNotes:\n stdio mode is non-interactive: the result goes to stdout, logs to stderr, exit code 0 on success.",
229
+ // ---------- `ai hook install / uninstall` (outside the TUI, locale initialised in that branch) ----------
230
+ "cli.hookUsage": "Usage: ai hook install|uninstall",
231
+ "cli.hookUnknownAction": "Unknown subcommand: {action}",
232
+ "hook.unsupportedShell": "❌ Unsupported shell (bash / zsh only)",
233
+ "hook.alreadyInstalled": "ℹ️ ai hook is already installed — nothing to do",
234
+ "hook.installed": "✅ ai hook installed into {file}",
235
+ "hook.updated": "✅ ai hook updated to the latest version ({file})",
236
+ "hook.upgraded": " (legacy aiz hook upgraded automatically)",
237
+ "hook.restartHint": " Restart the terminal or run `source {file}` to take effect",
238
+ "hook.forwardHint": " Unknown commands will then be forwarded to the AI",
239
+ "hook.notInstalledNoFile": "ℹ️ ai hook is not installed (the file does not exist)",
240
+ "hook.notInstalled": "ℹ️ ai hook is not installed",
241
+ "hook.uninstalled": "✅ ai hook removed from {file}",
242
+ // ---------- Shared leftovers ----------
243
+ "agent.subAgentTaskParam": "Full task description",
244
+ "app.mkdirFailed": "⚠️ Cannot create the directory: {dir} ({error})",
245
+ "time.pattern.short": "MMM D, YYYY HH:mm:ss",
246
+ };
247
+ //# sourceMappingURL=en.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"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"}