@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
@@ -7,6 +7,7 @@ import { DetailStep } from "./detail.js";
7
7
  import { KvEditorScreen } from "./kv-editor.js";
8
8
  import { PromptScreen } from "./prompt.js";
9
9
  import { scopeLabel, mcpCount, mcpServerHint } from "./mcp-helpers.js";
10
+ import { t } from "../../i18n/index.js";
10
11
  export function renderMcpStep(ctx) {
11
12
  const { mcp, error, notice, activeStep, go, persistMcp, setError, mcpServerFields, cols, rows } = ctx;
12
13
  // ---------- MCP 服务器列表(含作用域切换)----------
@@ -15,18 +16,21 @@ export function renderMcpStep(ctx) {
15
16
  const other = scope === "global" ? "project" : "global";
16
17
  const items = [
17
18
  {
18
- label: `⇄ 切换到「${scopeLabel(other)}」作用域`,
19
+ label: t("wiz.mcp.switchScope", { scope: scopeLabel(other) }),
19
20
  value: SWITCH_SCOPE,
20
- hint: `${mcpCount(mcp, other)} 个服务器`,
21
+ hint: t("wiz.mcp.serverCount", { n: mcpCount(mcp, other) }),
21
22
  },
22
- { label: "+ 新建服务器", value: NEW_MCP_SERVER, hint: "stdio / http / sse" },
23
+ { label: t("wiz.mcp.newItem"), value: NEW_MCP_SERVER, hint: "stdio / http / sse" },
23
24
  ...Object.entries(mcp[scope].mcpServers).map(([id, entry]) => ({
24
25
  label: id,
25
26
  value: id,
26
27
  hint: mcpServerHint(entry),
27
28
  })),
28
29
  ];
29
- return (_jsx(ListStep, { columns: cols, rows: rows, title: `◆ MCP 服务器 · ${scopeLabel(scope)}`, subtitle: `${mcpCount(mcp, scope)} 个 · ${mcpConfigPath(scope)}`, items: items, onPick: (value) => {
30
+ const damaged = mcp.errors?.[scope];
31
+ return (_jsx(ListStep, { columns: cols, rows: rows, title: t("wiz.mcp.listTitle", { scope: scopeLabel(scope) }), subtitle: t("wiz.mcp.listSubtitle", { n: mcpCount(mcp, scope), path: mcpConfigPath(scope) }),
32
+ // 文件坏了照常进屏编辑:保存产出的是一份格式正确的新文件,那就是修复
33
+ warning: damaged ? t("wiz.mcp.damaged", { error: damaged }) : undefined, items: items, onPick: (value) => {
30
34
  if (value === SWITCH_SCOPE)
31
35
  go({ kind: "mcp", scope: other });
32
36
  else if (value === NEW_MCP_SERVER)
@@ -39,51 +43,51 @@ export function renderMcpStep(ctx) {
39
43
  if (activeStep.kind === "mcp-server") {
40
44
  const { scope, serverId } = activeStep;
41
45
  const entry = findMcpServer(mcp[scope], serverId);
42
- return (_jsx(DetailStep, { columns: cols, rows: rows, title: `◆ MCP · ${serverId}`, details: [
43
- `${scopeLabel(scope)} · ${mcpConfigPath(scope)}`,
44
- `传输 ${entry.type ?? "stdio"} · ↑ ↓ 移动 · Enter 编辑/切换`,
45
- ], fields: mcpServerFields(scope, serverId, entry), notice: notice, action: {
46
- label: "删除服务器",
47
- run: async () => {
48
- const failure = await persistMcp(scope, removeMcpServer(mcp[scope], serverId), `已删除 MCP 服务器 ${serverId}(${scopeLabel(scope)})`);
49
- if (!failure)
50
- go({ kind: "mcp", scope });
51
- return failure;
46
+ return (_jsx(DetailStep, { columns: cols, rows: rows, title: t("wiz.mcp.detailTitle", { id: serverId }), details: [
47
+ t("wiz.scopePath", { scope: scopeLabel(scope), path: mcpConfigPath(scope) }),
48
+ t("wiz.mcp.detailLine", { transport: entry.type ?? "stdio" }),
49
+ ], fields: mcpServerFields(scope, serverId, entry), notice: notice, actions: [
50
+ {
51
+ label: t("wiz.mcp.delete"),
52
+ danger: true,
53
+ run: async () => {
54
+ const failure = await persistMcp(scope, removeMcpServer(mcp[scope], serverId), t("wiz.mcp.deleted", { id: serverId, scope: scopeLabel(scope) }));
55
+ if (!failure)
56
+ go({ kind: "mcp", scope });
57
+ return failure;
58
+ },
52
59
  },
53
- }, onBack: () => go({ kind: "mcp", scope }) }));
60
+ ], onBack: () => go({ kind: "mcp", scope }) }));
54
61
  }
55
62
  // ---------- MCP 键值编辑(env / headers)----------
56
63
  if (activeStep.kind === "mcp-kv") {
57
64
  const { scope, serverId, field } = activeStep;
58
65
  const entry = findMcpServer(mcp[scope], serverId);
59
- const label = field === "env" ? "环境变量" : "请求头";
66
+ const label = field === "env" ? t("field.env") : t("field.headers");
60
67
  const current = entry[field] ?? {};
61
- return (_jsx(KvEditorScreen, { columns: cols, rows: rows, title: `◆ MCP · ${serverId} · ${label}`, subtitle: `${scopeLabel(scope)} · ${Object.keys(current).length} 项`, map: current, notice: notice, onCommit: (next) => {
68
+ return (_jsx(KvEditorScreen, { columns: cols, rows: rows, title: t("wiz.mcp.kvTitle", { id: serverId, label }), subtitle: t("wiz.mcp.kvSubtitle", { scope: scopeLabel(scope), n: Object.keys(current).length }), map: current, notice: notice, onCommit: (next) => {
62
69
  const patch = field === "env"
63
70
  ? { env: Object.keys(next).length ? next : undefined }
64
71
  : { headers: Object.keys(next).length ? next : undefined };
65
- return persistMcp(scope, updateMcpServer(mcp[scope], serverId, patch), `MCP ${serverId} 的${label}已更新(${scopeLabel(scope)})`);
72
+ return persistMcp(scope, updateMcpServer(mcp[scope], serverId, patch), t("wiz.mcpFieldUpdated", { id: serverId, label, scope: scopeLabel(scope) }));
66
73
  }, onBack: () => go({ kind: "mcp-server", scope, serverId }) }));
67
74
  }
68
75
  // ---------- 新建 MCP 服务器 ----------
69
76
  if (activeStep.kind === "mcp-new") {
70
77
  const scope = activeStep.scope;
71
- return (_jsx(PromptScreen, { columns: cols, rows: rows, title: `新建 MCP 服务器 · 名称(${scopeLabel(scope)})`, details: [
72
- "作为 mcpServers 的键,例如 github / chrome-devtools",
73
- "创建后默认 stdio,可编辑传输方式 / 命令 / 参数 / 环境变量等",
74
- ], error: error, hints: [["Enter", "创建并编辑"], ["Esc", "返回"]], onSubmit: (value) => {
78
+ return (_jsx(PromptScreen, { columns: cols, rows: rows, title: t("wiz.mcp.newTitle", { scope: scopeLabel(scope) }), details: [t("wiz.mcp.newDescKey"), t("wiz.mcp.newDescDefault")], error: error, hints: [["Enter", t("wiz.createAndEdit")], ["Esc", t("ui.back")]], onSubmit: (value) => {
75
79
  const name = value.trim();
76
80
  if (!name) {
77
- setError("名称不能为空");
81
+ setError(t("err.nameRequired"));
78
82
  return;
79
83
  }
80
84
  if (mcpServerIdTaken(mcp[scope], name)) {
81
- setError(`已存在名为 ${name} 的服务器`);
85
+ setError(t("err.mcpNameTaken", { name }));
82
86
  return;
83
87
  }
84
88
  const { mcp: next, id } = addMcpServer(mcp[scope], name);
85
89
  void (async () => {
86
- const failure = await persistMcp(scope, next, `已新建 MCP 服务器 ${id}(${scopeLabel(scope)})`);
90
+ const failure = await persistMcp(scope, next, t("wiz.mcp.created", { id, scope: scopeLabel(scope) }));
87
91
  if (failure) {
88
92
  setError(failure);
89
93
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"step-mcp.js","sourceRoot":"","sources":["../../../src/tui/config-wizard/step-mcp.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"step-mcp.js","sourceRoot":"","sources":["../../../src/tui/config-wizard/step-mcp.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"step-models.d.ts","sourceRoot":"","sources":["../../../src/tui/config-wizard/step-models.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIlC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAK5C,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,SAAS,CAqL9D"}
1
+ {"version":3,"file":"step-models.d.ts","sourceRoot":"","sources":["../../../src/tui/config-wizard/step-models.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKlC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAY5C,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,SAAS,CA+O9D"}
@@ -1,81 +1,131 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { addImageModel, addModel, findEndpoint, findModel, removeImageModel, removeModel } from "../../config-editor.js";
2
+ import { DEFAULT_APP_CONFIG } from "@ai-zen/agents-sdk";
3
+ import { addImageModel, addModel, findEndpoint, findModel, removeImageModel, removeModel, restoreFactoryImageModel, restoreFactoryModel } from "../../config-editor.js";
3
4
  import { NEW_MODEL, NEW_IMAGE_MODEL } from "./types.js";
4
5
  import { ListStep } from "./list.js";
5
6
  import { DetailStep } from "./detail.js";
6
7
  import { PromptScreen } from "./prompt.js";
8
+ import { t } from "../../i18n/index.js";
9
+ /** 模型来源标签:`出厂托管` 在详情屏里要多带一句说明(改动会转自定义) */
10
+ function kindLabel(custom, withNote = false) {
11
+ if (custom)
12
+ return t("wiz.kind.custom");
13
+ return t(withNote ? "wiz.modelKind.factoryNote" : "wiz.kind.factory");
14
+ }
7
15
  export function renderModelsStep(ctx) {
8
16
  const { config, error, notice, activeStep, go, persist, setError, modelFields, imageModelFields, cols, rows } = ctx;
9
17
  // ---------- 模型管理 ----------
10
18
  if (activeStep.kind === "models") {
11
19
  const items = [
12
- { label: "+ 新建模型", value: NEW_MODEL, hint: "自动标记为自定义(custom)" },
20
+ { label: t("wiz.models.newItem"), value: NEW_MODEL, hint: t("wiz.models.newItemHint") },
13
21
  ...config.models.map((model) => ({
14
22
  label: model.name || model.id,
15
23
  value: model.id,
16
- hint: `${findEndpoint(config, model.endpointId)?.name ?? model.endpointId} · ${model.custom ? "自定义" : "出厂托管"}${model.vision ? " · 视觉" : ""}`,
24
+ hint: t("wiz.modelItem.hint", {
25
+ endpoint: findEndpoint(config, model.endpointId)?.name ?? model.endpointId,
26
+ kind: kindLabel(model.custom),
27
+ vision: model.vision ? t("wiz.modelKind.visionSuffix") : "",
28
+ }),
17
29
  })),
18
30
  ];
19
- return (_jsx(ListStep, { columns: cols, rows: rows, title: "\u6A21\u578B\u7BA1\u7406", subtitle: `共 ${config.models.length} 个模型 · 选中后可就地编辑 / 删除`, items: items, onPick: (value) => (value === NEW_MODEL ? go({ kind: "new-model" }) : go({ kind: "model", modelId: value })), onCancel: () => go({ kind: "menu" }) }));
31
+ return (_jsx(ListStep, { columns: cols, rows: rows, title: t("wiz.menu.models"), subtitle: t("wiz.models.subtitle", { n: config.models.length }), items: items, onPick: (value) => (value === NEW_MODEL ? go({ kind: "new-model" }) : go({ kind: "model", modelId: value })), onCancel: () => go({ kind: "menu" }) }));
20
32
  }
33
+ /**
34
+ * 出厂清单里同 id 的定义。
35
+ *
36
+ * 有它才能「恢复出厂设置」;没有就是用户自建的,不给这个动作(恢复成什么?)。
37
+ */
38
+ const factoryOf = (list, id) => list?.find((item) => item.id === id);
21
39
  // ---------- 模型详情 ----------
22
40
  if (activeStep.kind === "model") {
23
41
  const model = findModel(config, activeStep.modelId);
24
42
  const name = model.name || model.id;
25
- return (_jsx(DetailStep, { columns: cols, rows: rows, title: `◆ 模型 · ${name}`, details: [`${model.id} · ${model.custom ? "自定义" : "出厂托管(编辑会自动转自定义)"}`, "↑ ↓ 移动 · Enter 编辑/切换 · 改动即时写入磁盘"], fields: modelFields(model), notice: notice, action: {
26
- label: "删除模型",
27
- run: async () => {
28
- const failure = await persist(removeModel(config, model.id), `已删除模型 ${name}`);
29
- if (!failure)
30
- go({ kind: "models" });
31
- return failure;
32
- },
33
- }, onBack: () => go({ kind: "models" }) }));
43
+ const factory = factoryOf(DEFAULT_APP_CONFIG.models, model.id);
44
+ const actions = [];
45
+ if (factory) {
46
+ actions.push({
47
+ label: t("wiz.models.restore"),
48
+ run: async () => persist(restoreFactoryModel(config, factory), t("wiz.models.restored", { name }),
49
+ // 出厂定义自带端点:用户可能把它改绑过,两边都算改动了端点
50
+ [model.endpointId, factory.endpointId]),
51
+ });
52
+ }
53
+ actions.push({
54
+ label: t("wiz.models.delete"),
55
+ danger: true,
56
+ run: async () => {
57
+ const failure = await persist(removeModel(config, model.id), t("wiz.models.deleted", { name }));
58
+ if (!failure)
59
+ go({ kind: "models" });
60
+ return failure;
61
+ },
62
+ });
63
+ return (_jsx(DetailStep, { columns: cols, rows: rows, title: t("wiz.models.detailTitle", { name }), details: [t("wiz.models.detailLine", { id: model.id, kind: kindLabel(model.custom, true) }), t("wiz.detail.moveHint")], fields: modelFields(model), notice: notice, actions: actions, onBack: () => go({ kind: "models" }) }));
34
64
  }
35
65
  // ---------- 图片模型列表 ----------
36
66
  if (activeStep.kind === "image-models") {
37
67
  const list = config.imageModels ?? [];
38
68
  const items = [
39
- { label: "+ 新建图片模型", value: NEW_IMAGE_MODEL, hint: "自动标记为自定义(custom)" },
69
+ { label: t("wiz.imageModels.newItem"), value: NEW_IMAGE_MODEL, hint: t("wiz.models.newItemHint") },
40
70
  ...list.map((model) => ({
41
71
  label: model.name || model.id,
42
72
  value: model.id,
43
- hint: `${findEndpoint(config, model.endpointId)?.name ?? model.endpointId} · ${model.custom ? "自定义" : "出厂托管"}`,
73
+ hint: t("wiz.modelItem.hint", {
74
+ endpoint: findEndpoint(config, model.endpointId)?.name ?? model.endpointId,
75
+ kind: kindLabel(model.custom),
76
+ vision: "",
77
+ }),
44
78
  })),
45
79
  ];
46
- return (_jsx(ListStep, { columns: cols, rows: rows, title: "\u56FE\u7247\u6A21\u578B", subtitle: `共 ${list.length} 个 · 选中后可就地编辑 / 删除`, items: items, onPick: (value) => (value === NEW_IMAGE_MODEL ? go({ kind: "new-image-model" }) : go({ kind: "image-model", modelId: value })), onCancel: () => go({ kind: "menu" }) }));
80
+ return (_jsx(ListStep, { columns: cols, rows: rows, title: t("wiz.menu.imageModels"), subtitle: t("wiz.imageModels.subtitle", { n: list.length }), items: items, onPick: (value) => (value === NEW_IMAGE_MODEL ? go({ kind: "new-image-model" }) : go({ kind: "image-model", modelId: value })), onCancel: () => go({ kind: "menu" }) }));
47
81
  }
48
82
  // ---------- 图片模型详情 ----------
49
83
  if (activeStep.kind === "image-model") {
50
84
  const model = (config.imageModels ?? []).find((m) => m.id === activeStep.modelId);
51
85
  const name = model.name || model.id;
52
- return (_jsx(DetailStep, { columns: cols, rows: rows, title: `◆ 图片模型 · ${name}`, details: [`${model.id} · ${model.custom ? "自定义" : "出厂托管(编辑会自动转自定义)"}`, "↑ ↓ 移动 · Enter 编辑/切换 · 改动即时写入磁盘"], fields: imageModelFields(model), notice: notice, action: {
53
- label: "删除图片模型",
54
- run: async () => {
55
- const failure = await persist(removeImageModel(config, model.id), `已删除图片模型 ${name}`);
56
- if (!failure)
57
- go({ kind: "image-models" });
58
- return failure;
59
- },
60
- }, onBack: () => go({ kind: "image-models" }) }));
86
+ const factory = factoryOf(DEFAULT_APP_CONFIG.imageModels, model.id);
87
+ const actions = [];
88
+ if (factory) {
89
+ actions.push({
90
+ label: t("wiz.imageModels.restore"),
91
+ run: async () => persist(restoreFactoryImageModel(config, factory), t("wiz.imageModels.restored", { name }), [model.endpointId, factory.endpointId]),
92
+ });
93
+ }
94
+ actions.push({
95
+ label: t("wiz.imageModels.delete"),
96
+ danger: true,
97
+ run: async () => {
98
+ const failure = await persist(removeImageModel(config, model.id), t("wiz.imageModels.deleted", { name }));
99
+ if (!failure)
100
+ go({ kind: "image-models" });
101
+ return failure;
102
+ },
103
+ });
104
+ return (_jsx(DetailStep, { columns: cols, rows: rows, title: t("wiz.imageModels.detailTitle", { name }), details: [t("wiz.models.detailLine", { id: model.id, kind: kindLabel(model.custom, true) }), t("wiz.detail.moveHint")], fields: imageModelFields(model), notice: notice, actions: actions, onBack: () => go({ kind: "image-models" }) }));
61
105
  }
62
106
  // ---------- 新建模型(名称 → 创建并进入详情)----------
63
107
  if (activeStep.kind === "new-model") {
64
- const endpointId = config.endpoints[0]?.id ?? "";
65
- return (_jsx(PromptScreen, { columns: cols, rows: rows, title: "\u65B0\u5EFA\u6A21\u578B \u00B7 \u540D\u79F0", details: [
66
- "用于在配置与状态栏中标识该模型,例如 My GPT",
67
- config.endpoints.length === 0
68
- ? "⚠ 尚未配置端点,创建后请先到「端点管理」添加端点"
69
- : `将默认绑定端点:${findEndpoint(config, endpointId)?.name ?? endpointId}`,
70
- ], error: error, hints: [["Enter", "创建并编辑"], ["Esc", "返回"]], onSubmit: (value) => {
108
+ // 只用于屏上的提示;真正的拦截在 onSubmit(入口不禁用,避免两处校验)
109
+ const first = config.endpoints[0];
110
+ return (_jsx(PromptScreen, { columns: cols, rows: rows, title: t("wiz.models.createTitle"), details: [
111
+ t("wiz.models.createDesc", { example: "My GPT" }),
112
+ first
113
+ ? t("wiz.models.defaultEndpoint", { endpoint: first.name || first.id })
114
+ : t("wiz.models.noEndpoint"),
115
+ ], error: error, hints: [["Enter", t("wiz.createAndEdit")], ["Esc", t("ui.back")]], onSubmit: (value) => {
71
116
  const name = value.trim();
72
117
  if (!name) {
73
- setError("名称不能为空");
118
+ setError(t("err.nameRequired"));
119
+ return;
120
+ }
121
+ const endpointId = config.endpoints[0]?.id;
122
+ if (!endpointId) {
123
+ setError(t("err.noEndpoint"));
74
124
  return;
75
125
  }
76
126
  const { config: next, model } = addModel(config, { name, endpointId });
77
127
  void (async () => {
78
- const failure = await persist(next, `已新建模型 ${model.name}(${model.id},已标记为自定义)`);
128
+ const failure = await persist(next, t("wiz.models.created", { name: model.name, id: model.id }));
79
129
  if (failure) {
80
130
  setError(failure);
81
131
  return;
@@ -86,21 +136,26 @@ export function renderModelsStep(ctx) {
86
136
  }
87
137
  // ---------- 新建图片模型(名称 → 创建并进入详情)----------
88
138
  if (activeStep.kind === "new-image-model") {
89
- const endpointId = config.endpoints[0]?.id ?? "";
90
- return (_jsx(PromptScreen, { columns: cols, rows: rows, title: "\u65B0\u5EFA\u56FE\u7247\u6A21\u578B \u00B7 \u540D\u79F0", details: [
91
- "用于在配置与状态栏中标识该模型,例如 My Image",
92
- config.endpoints.length === 0
93
- ? "⚠ 尚未配置端点,创建后请先到「端点管理」添加端点"
94
- : `将默认绑定端点:${findEndpoint(config, endpointId)?.name ?? endpointId}`,
95
- ], error: error, hints: [["Enter", "创建并编辑"], ["Esc", "返回"]], onSubmit: (value) => {
139
+ const first = config.endpoints[0];
140
+ return (_jsx(PromptScreen, { columns: cols, rows: rows, title: t("wiz.imageModels.createTitle"), details: [
141
+ t("wiz.models.createDesc", { example: "My Image" }),
142
+ first
143
+ ? t("wiz.models.defaultEndpoint", { endpoint: first.name || first.id })
144
+ : t("wiz.models.noEndpoint"),
145
+ ], error: error, hints: [["Enter", t("wiz.createAndEdit")], ["Esc", t("ui.back")]], onSubmit: (value) => {
96
146
  const name = value.trim();
97
147
  if (!name) {
98
- setError("名称不能为空");
148
+ setError(t("err.nameRequired"));
149
+ return;
150
+ }
151
+ const endpointId = config.endpoints[0]?.id;
152
+ if (!endpointId) {
153
+ setError(t("err.noEndpoint"));
99
154
  return;
100
155
  }
101
156
  const { config: next, model } = addImageModel(config, { name, endpointId });
102
157
  void (async () => {
103
- const failure = await persist(next, `已新建图片模型 ${model.name}(${model.id},已标记为自定义)`);
158
+ const failure = await persist(next, t("wiz.imageModels.created", { name: model.name, id: model.id }));
104
159
  if (failure) {
105
160
  setError(failure);
106
161
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"step-models.js","sourceRoot":"","sources":["../../../src/tui/config-wizard/step-models.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"step-models.js","sourceRoot":"","sources":["../../../src/tui/config-wizard/step-models.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"step-new-endpoint.d.ts","sourceRoot":"","sources":["../../../src/tui/config-wizard/step-new-endpoint.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,aAAa,GAAG,SAAS,CA+FnE"}
1
+ {"version":3,"file":"step-new-endpoint.d.ts","sourceRoot":"","sources":["../../../src/tui/config-wizard/step-new-endpoint.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI5C,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,aAAa,GAAG,SAAS,CAkGnE"}
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { addEndpoint, apiKeyGuide } from "../../config-editor.js";
3
3
  import { PromptScreen } from "./prompt.js";
4
+ import { t } from "../../i18n/index.js";
4
5
  export function renderNewEndpointStep(ctx) {
5
6
  const { config, error, draft, activeStep, go, commit, setDraft, setError, setStep, cols, rows } = ctx;
6
7
  if (activeStep.kind !== "new-endpoint")
@@ -8,10 +9,10 @@ export function renderNewEndpointStep(ctx) {
8
9
  // ---------- 新建端点(名称 → Base URL → API Key)----------
9
10
  const field = activeStep.field;
10
11
  if (field === "name") {
11
- return (_jsx(PromptScreen, { columns: cols, rows: rows, title: "\u65B0\u5EFA\u7AEF\u70B9 \u00B7 \u540D\u79F0", details: ["用于在配置与状态栏中标识该服务,例如 My Gateway"], initialValue: draft.name, error: error, hints: [["Enter", "下一步"], ["Esc", "返回"]], onSubmit: (value) => {
12
+ return (_jsx(PromptScreen, { columns: cols, rows: rows, title: t("wiz.newEndpoint.nameTitle"), details: [t("wiz.newEndpoint.nameDesc", { example: "My Gateway" })], initialValue: draft.name, error: error, hints: [["Enter", t("ui.next")], ["Esc", t("ui.back")]], onSubmit: (value) => {
12
13
  const name = value.trim();
13
14
  if (!name) {
14
- setError("名称不能为空");
15
+ setError(t("err.nameRequired"));
15
16
  return;
16
17
  }
17
18
  const next = { ...draft, name };
@@ -21,10 +22,10 @@ export function renderNewEndpointStep(ctx) {
21
22
  }, onCancel: () => go({ kind: "endpoints" }) }, "new:name"));
22
23
  }
23
24
  if (field === "baseUrl") {
24
- return (_jsx(PromptScreen, { columns: cols, rows: rows, title: "\u65B0\u5EFA\u7AEF\u70B9 \u00B7 Base URL", details: ["例如 https://api.openai.com/v1(须为 OpenAI 兼容接口)"], initialValue: draft.baseUrl, error: error, hints: [["Enter", "下一步"], ["Esc", "返回"]], onSubmit: (value) => {
25
+ return (_jsx(PromptScreen, { columns: cols, rows: rows, title: t("wiz.newEndpoint.baseUrlTitle"), details: [t("wiz.newEndpoint.baseUrlDesc")], initialValue: draft.baseUrl, error: error, hints: [["Enter", t("ui.next")], ["Esc", t("ui.back")]], onSubmit: (value) => {
25
26
  const baseUrl = value.trim();
26
27
  if (!/^https?:\/\//i.test(baseUrl)) {
27
- setError("Base URL 需以 http:// 或 https:// 开头");
28
+ setError(t("err.baseUrlScheme"));
28
29
  return;
29
30
  }
30
31
  const next = { ...draft, baseUrl };
@@ -36,16 +37,19 @@ export function renderNewEndpointStep(ctx) {
36
37
  setStep({ kind: "new-endpoint", field: "name", draft });
37
38
  } }, "new:baseUrl"));
38
39
  }
39
- return (_jsx(PromptScreen, { columns: cols, rows: rows, title: "\u65B0\u5EFA\u7AEF\u70B9 \u00B7 API Key", details: [
40
- `端点:${draft.name} · ${draft.baseUrl}`,
41
- "可留空稍后再补(留空时该端点暂不可用)",
42
- apiKeyGuide(draft.baseUrl).url
43
- ? `${apiKeyGuide(draft.baseUrl).vendor} 申请地址:${apiKeyGuide(draft.baseUrl).url}`
44
- : undefined,
45
- ].filter((line) => Boolean(line)), mask: true, error: error, hints: [["Enter", "保存端点"], ["Tab", "明文/掩码"], ["Esc", "返回"]], onSubmit: (value) => {
40
+ const guide = apiKeyGuide(draft.baseUrl);
41
+ return (_jsx(PromptScreen, { columns: cols, rows: rows, title: t("wiz.newEndpoint.apiKeyTitle"), details: [
42
+ t("wiz.apiKey.endpointLine", { name: draft.name, url: draft.baseUrl }),
43
+ t("wiz.newEndpoint.apiKeyOptional"),
44
+ guide.url ? t("wiz.apiKey.guideUrl", { vendor: guide.vendor, url: guide.url }) : undefined,
45
+ ].filter((line) => Boolean(line)), mask: true, error: error, hints: [["Enter", t("wiz.newEndpoint.save")], ["Tab", t("ui.plainOrMasked")], ["Esc", t("ui.back")]], onSubmit: (value) => {
46
46
  const apiKey = value.trim();
47
47
  const { config: next, endpoint } = addEndpoint(config, { ...draft, apiKey });
48
- void commit(next, `已添加端点 ${endpoint.name}(${endpoint.id})${apiKey ? "" : " · API Key 待补充"}`, [endpoint.id], { kind: "endpoints" });
48
+ void commit(next, t("wiz.newEndpoint.created", {
49
+ name: endpoint.name,
50
+ id: endpoint.id,
51
+ suffix: apiKey ? "" : t("wiz.newEndpoint.keyPending"),
52
+ }), [endpoint.id], { kind: "endpoints" });
49
53
  }, onCancel: () => {
50
54
  setError(null);
51
55
  setStep({ kind: "new-endpoint", field: "baseUrl", draft });
@@ -1 +1 @@
1
- {"version":3,"file":"step-new-endpoint.js","sourceRoot":"","sources":["../../../src/tui/config-wizard/step-new-endpoint.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"step-new-endpoint.js","sourceRoot":"","sources":["../../../src/tui/config-wizard/step-new-endpoint.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"step-simple.d.ts","sourceRoot":"","sources":["../../../src/tui/config-wizard/step-simple.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,SAAS,CA8F9D"}
1
+ {"version":3,"file":"step-simple.d.ts","sourceRoot":"","sources":["../../../src/tui/config-wizard/step-simple.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI5C,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,SAAS,CA8F9D"}
@@ -1,18 +1,19 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { apiKeyGuide, findEndpoint, maskApiKey, setEndpointApiKey, setEndpointBaseUrl, setMaxToolOutput } from "../../config-editor.js";
3
3
  import { PromptScreen } from "./prompt.js";
4
+ import { t } from "../../i18n/index.js";
4
5
  export function renderSimpleStep(ctx) {
5
6
  const { config, error, activeStep, snapshot, go, commit, setError, cols, rows, props } = ctx;
6
7
  // ---------- 工具输出上限 ----------
7
8
  if (activeStep.kind === "max-tool-output") {
8
9
  const current = config.maxToolOutput ?? 32768;
9
- return (_jsx(PromptScreen, { columns: cols, rows: rows, title: "\u5DE5\u5177\u8F93\u51FA\u4E0A\u9650\uFF08\u5B57\u7B26\u6570\uFF09", details: [`当前:${current}`, "工具单次输出超过该值时落盘或仅警告,避免撑爆上下文"], initialValue: String(current), error: error, hints: [["Enter", "保存"], ["Esc", "返回"]], onSubmit: (value) => {
10
+ return (_jsx(PromptScreen, { columns: cols, rows: rows, title: t("wiz.maxToolOutput.title"), details: [t("wiz.currentLine", { value: current }), t("wiz.maxToolOutput.desc")], initialValue: String(current), error: error, hints: [["Enter", t("ui.save")], ["Esc", t("ui.back")]], onSubmit: (value) => {
10
11
  const n = Number(value.trim());
11
12
  if (!Number.isFinite(n) || n <= 0) {
12
- setError("需为正整数");
13
+ setError(t("err.positiveInteger"));
13
14
  return;
14
15
  }
15
- void commit(setMaxToolOutput(config, Math.floor(n)), `工具输出上限 → ${Math.floor(n)} 字符`, [], { kind: "menu" });
16
+ void commit(setMaxToolOutput(config, Math.floor(n)), t("wiz.maxToolOutput.updated", { n: Math.floor(n) }), [], { kind: "menu" });
16
17
  }, onCancel: () => go({ kind: "menu" }) }, "maxToolOutput"));
17
18
  }
18
19
  // ---------- 端点字段直达编辑(首启引导 / `/key`)----------
@@ -21,33 +22,33 @@ export function renderSimpleStep(ctx) {
21
22
  const name = endpoint.name || endpoint.id;
22
23
  if (activeStep.field === "apiKey") {
23
24
  const guide = apiKeyGuide(endpoint.baseUrl);
24
- return (_jsx(PromptScreen, { columns: cols, rows: rows, title: props.onboarding ? `首次配置 · 设置 ${name} 的 API Key` : `设置 API Key · ${name}`, details: [
25
- `端点:${name} · ${endpoint.baseUrl}`,
26
- `当前:${maskApiKey(endpoint.apiKey)}`,
25
+ return (_jsx(PromptScreen, { columns: cols, rows: rows, title: props.onboarding ? t("wiz.apiKey.titleOnboarding", { name }) : t("wiz.apiKey.title", { name }), details: [
26
+ t("wiz.apiKey.endpointLine", { name, url: endpoint.baseUrl }),
27
+ t("wiz.currentLine", { value: maskApiKey(endpoint.apiKey) }),
27
28
  guide.url
28
- ? `${guide.vendor} 申请地址:${guide.url}`
29
- : `${guide.vendor}:请向服务提供方获取 API Key`,
30
- props.onboarding ? "保存后立即进入对话(Esc 放弃并退出)。" : undefined,
29
+ ? t("wiz.apiKey.guideUrl", { vendor: guide.vendor, url: guide.url })
30
+ : t("wiz.apiKey.guideNoUrl", { vendor: guide.vendor }),
31
+ props.onboarding ? t("wiz.apiKey.onboardingNote") : undefined,
31
32
  ].filter((line) => Boolean(line)), mask: true, error: error, hints: [
32
- ["Enter", props.onboarding ? "保存并进入对话" : "保存"],
33
- ["Tab", "明文/掩码"],
34
- ["Esc", props.closeOnSave ? "放弃" : "返回"],
33
+ ["Enter", props.onboarding ? t("wiz.apiKey.saveAndEnter") : t("ui.save")],
34
+ ["Tab", t("ui.plainOrMasked")],
35
+ ["Esc", props.closeOnSave ? t("ui.discard") : t("ui.back")],
35
36
  ], onSubmit: (value) => {
36
37
  const key = value.trim();
37
38
  if (!key) {
38
- setError("API Key 不能为空");
39
+ setError(t("err.apiKeyRequired"));
39
40
  return;
40
41
  }
41
- void commit(setEndpointApiKey(config, endpoint.id, key), `端点 ${name} 的 API Key 已更新`, [endpoint.id]);
42
+ void commit(setEndpointApiKey(config, endpoint.id, key), t("wiz.endpointUpdated", { name, label: "API Key" }), [endpoint.id]);
42
43
  }, onCancel: () => (props.closeOnSave ? props.onClose(snapshot()) : go({ kind: "menu" })) }, `apiKey:${endpoint.id}`));
43
44
  }
44
- return (_jsx(PromptScreen, { columns: cols, rows: rows, title: `设置 Base URL · ${name}`, details: [`当前:${endpoint.baseUrl}`, "需以 http:// 或 https:// 开头(OpenAI 兼容端点)"], initialValue: endpoint.baseUrl, error: error, hints: [["Enter", "保存"], ["Esc", "返回"]], onSubmit: (value) => {
45
+ return (_jsx(PromptScreen, { columns: cols, rows: rows, title: t("wiz.baseUrl.title", { name }), details: [t("wiz.currentLine", { value: endpoint.baseUrl }), t("wiz.baseUrl.hint")], initialValue: endpoint.baseUrl, error: error, hints: [["Enter", t("ui.save")], ["Esc", t("ui.back")]], onSubmit: (value) => {
45
46
  const baseUrl = value.trim();
46
47
  if (!/^https?:\/\//i.test(baseUrl)) {
47
- setError("Base URL 需以 http:// 或 https:// 开头");
48
+ setError(t("err.baseUrlScheme"));
48
49
  return;
49
50
  }
50
- void commit(setEndpointBaseUrl(config, endpoint.id, baseUrl), `端点 ${name} 的 Base URL 已更新`, [endpoint.id]);
51
+ void commit(setEndpointBaseUrl(config, endpoint.id, baseUrl), t("wiz.endpointUpdated", { name, label: "Base URL" }), [endpoint.id]);
51
52
  }, onCancel: () => go({ kind: "menu" }) }, `baseUrl:${endpoint.id}`));
52
53
  }
53
54
  return null;