@ai-zen/cli 1.0.0-alpha.9 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1334 -275
- package/LICENSE +21 -0
- package/README.md +136 -31
- package/README.zh.md +136 -31
- package/dist/agent-creator.d.ts +11 -0
- package/dist/agent-creator.d.ts.map +1 -1
- package/dist/agent-creator.js +50 -20
- package/dist/agent-creator.js.map +1 -1
- package/dist/agent-switch.d.ts +61 -0
- package/dist/agent-switch.d.ts.map +1 -0
- package/dist/agent-switch.js +83 -0
- package/dist/agent-switch.js.map +1 -0
- package/dist/agents-store.d.ts +6 -1
- package/dist/agents-store.d.ts.map +1 -1
- package/dist/agents-store.js +46 -4
- package/dist/agents-store.js.map +1 -1
- package/dist/auto-migrate-confirm.d.ts +43 -0
- package/dist/auto-migrate-confirm.d.ts.map +1 -0
- package/dist/auto-migrate-confirm.js +47 -0
- package/dist/auto-migrate-confirm.js.map +1 -0
- package/dist/clipboard.d.ts +68 -0
- package/dist/clipboard.d.ts.map +1 -0
- package/dist/clipboard.js +177 -0
- package/dist/clipboard.js.map +1 -0
- package/dist/config-editor.d.ts +42 -5
- package/dist/config-editor.d.ts.map +1 -1
- package/dist/config-editor.js +80 -27
- package/dist/config-editor.js.map +1 -1
- package/dist/config.d.ts +76 -17
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +143 -39
- package/dist/config.js.map +1 -1
- package/dist/conversation-commands/registry.d.ts +127 -4
- package/dist/conversation-commands/registry.d.ts.map +1 -1
- package/dist/conversation-commands/registry.js +93 -14
- package/dist/conversation-commands/registry.js.map +1 -1
- package/dist/conversation-persist-plugin.d.ts +0 -1
- package/dist/conversation-persist-plugin.d.ts.map +1 -1
- package/dist/conversation-persist-plugin.js +7 -16
- package/dist/conversation-persist-plugin.js.map +1 -1
- package/dist/conversation-repository.d.ts +79 -18
- package/dist/conversation-repository.d.ts.map +1 -1
- package/dist/conversation-repository.js +96 -30
- package/dist/conversation-repository.js.map +1 -1
- package/dist/cwd-tracker-plugin.d.ts.map +1 -1
- package/dist/cwd-tracker-plugin.js +22 -7
- package/dist/cwd-tracker-plugin.js.map +1 -1
- package/dist/format-time.d.ts +17 -6
- package/dist/format-time.d.ts.map +1 -1
- package/dist/format-time.js +32 -14
- package/dist/format-time.js.map +1 -1
- package/dist/handoff-service.d.ts +19 -0
- package/dist/handoff-service.d.ts.map +1 -0
- package/dist/handoff-service.js +85 -0
- package/dist/handoff-service.js.map +1 -0
- package/dist/hook.d.ts.map +1 -1
- package/dist/hook.js +69 -15
- package/dist/hook.js.map +1 -1
- package/dist/i18n/en-wizard.d.ts +8 -0
- package/dist/i18n/en-wizard.d.ts.map +1 -0
- package/dist/i18n/en-wizard.js +303 -0
- package/dist/i18n/en-wizard.js.map +1 -0
- package/dist/i18n/en.d.ts +7 -0
- package/dist/i18n/en.d.ts.map +1 -0
- package/dist/i18n/en.js +245 -0
- package/dist/i18n/en.js.map +1 -0
- package/dist/i18n/index.d.ts +57 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +109 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/preferences.d.ts +37 -0
- package/dist/i18n/preferences.d.ts.map +1 -0
- package/dist/i18n/preferences.js +73 -0
- package/dist/i18n/preferences.js.map +1 -0
- package/dist/i18n/zh-wizard.d.ts +11 -0
- package/dist/i18n/zh-wizard.d.ts.map +1 -0
- package/dist/i18n/zh-wizard.js +306 -0
- package/dist/i18n/zh-wizard.js.map +1 -0
- package/dist/i18n/zh.d.ts +10 -0
- package/dist/i18n/zh.d.ts.map +1 -0
- package/dist/i18n/zh.js +249 -0
- package/dist/i18n/zh.js.map +1 -0
- package/dist/index.js +52 -23
- package/dist/index.js.map +1 -1
- package/dist/mcp-command.d.ts +32 -0
- package/dist/mcp-command.d.ts.map +1 -0
- package/dist/mcp-command.js +37 -0
- package/dist/mcp-command.js.map +1 -0
- package/dist/mode.d.ts +31 -4
- package/dist/mode.d.ts.map +1 -1
- package/dist/mode.js +42 -7
- package/dist/mode.js.map +1 -1
- package/dist/model-switch.d.ts +58 -0
- package/dist/model-switch.d.ts.map +1 -0
- package/dist/model-switch.js +62 -0
- package/dist/model-switch.js.map +1 -0
- package/dist/reasoning-effort.d.ts +96 -0
- package/dist/reasoning-effort.d.ts.map +1 -0
- package/dist/reasoning-effort.js +164 -0
- package/dist/reasoning-effort.js.map +1 -0
- package/dist/reasoning-presets.d.ts +34 -0
- package/dist/reasoning-presets.d.ts.map +1 -0
- package/dist/reasoning-presets.js +85 -0
- package/dist/reasoning-presets.js.map +1 -0
- package/dist/sdk-log.d.ts +84 -0
- package/dist/sdk-log.d.ts.map +1 -0
- package/dist/sdk-log.js +167 -0
- package/dist/sdk-log.js.map +1 -0
- package/dist/session-pointer.d.ts.map +1 -1
- package/dist/session-pointer.js +10 -4
- package/dist/session-pointer.js.map +1 -1
- package/dist/stdio-runner.d.ts.map +1 -1
- package/dist/stdio-runner.js +32 -30
- package/dist/stdio-runner.js.map +1 -1
- package/dist/sub-agent-guard-plugin.d.ts +10 -7
- package/dist/sub-agent-guard-plugin.d.ts.map +1 -1
- package/dist/sub-agent-guard-plugin.js +12 -9
- package/dist/sub-agent-guard-plugin.js.map +1 -1
- package/dist/tui/chat-history.d.ts +29 -0
- package/dist/tui/chat-history.d.ts.map +1 -0
- package/dist/tui/chat-history.js +55 -0
- package/dist/tui/chat-history.js.map +1 -0
- package/dist/tui/chat-session.d.ts +144 -13
- package/dist/tui/chat-session.d.ts.map +1 -1
- package/dist/tui/chat-session.js +312 -73
- package/dist/tui/chat-session.js.map +1 -1
- package/dist/tui/components.d.ts +109 -6
- package/dist/tui/components.d.ts.map +1 -1
- package/dist/tui/components.js +177 -12
- package/dist/tui/components.js.map +1 -1
- package/dist/tui/config-wizard/detail.d.ts +18 -10
- package/dist/tui/config-wizard/detail.d.ts.map +1 -1
- package/dist/tui/config-wizard/detail.js +53 -46
- package/dist/tui/config-wizard/detail.js.map +1 -1
- package/dist/tui/config-wizard/engine.d.ts +2 -2
- package/dist/tui/config-wizard/engine.d.ts.map +1 -1
- package/dist/tui/config-wizard/engine.js +48 -26
- package/dist/tui/config-wizard/engine.js.map +1 -1
- package/dist/tui/config-wizard/fields.d.ts +3 -1
- package/dist/tui/config-wizard/fields.d.ts.map +1 -1
- package/dist/tui/config-wizard/fields.js +202 -167
- package/dist/tui/config-wizard/fields.js.map +1 -1
- package/dist/tui/config-wizard/frame.js +1 -1
- package/dist/tui/config-wizard/kv-editor.d.ts.map +1 -1
- package/dist/tui/config-wizard/kv-editor.js +13 -5
- package/dist/tui/config-wizard/kv-editor.js.map +1 -1
- package/dist/tui/config-wizard/list.d.ts +3 -1
- package/dist/tui/config-wizard/list.d.ts.map +1 -1
- package/dist/tui/config-wizard/list.js +4 -4
- package/dist/tui/config-wizard/list.js.map +1 -1
- package/dist/tui/config-wizard/mcp-helpers.d.ts.map +1 -1
- package/dist/tui/config-wizard/mcp-helpers.js +4 -3
- package/dist/tui/config-wizard/mcp-helpers.js.map +1 -1
- package/dist/tui/config-wizard/menu.d.ts.map +1 -1
- package/dist/tui/config-wizard/menu.js +33 -21
- package/dist/tui/config-wizard/menu.js.map +1 -1
- package/dist/tui/config-wizard/prompt-editor.d.ts +8 -1
- package/dist/tui/config-wizard/prompt-editor.d.ts.map +1 -1
- package/dist/tui/config-wizard/prompt-editor.js +11 -7
- package/dist/tui/config-wizard/prompt-editor.js.map +1 -1
- package/dist/tui/config-wizard/prompt.d.ts.map +1 -1
- package/dist/tui/config-wizard/prompt.js +8 -7
- package/dist/tui/config-wizard/prompt.js.map +1 -1
- package/dist/tui/config-wizard/step-agents.d.ts.map +1 -1
- package/dist/tui/config-wizard/step-agents.js +50 -29
- package/dist/tui/config-wizard/step-agents.js.map +1 -1
- package/dist/tui/config-wizard/step-defaults.d.ts.map +1 -1
- package/dist/tui/config-wizard/step-defaults.js +77 -27
- package/dist/tui/config-wizard/step-defaults.js.map +1 -1
- package/dist/tui/config-wizard/step-endpoints.d.ts.map +1 -1
- package/dist/tui/config-wizard/step-endpoints.js +27 -14
- package/dist/tui/config-wizard/step-endpoints.js.map +1 -1
- package/dist/tui/config-wizard/step-mcp.d.ts.map +1 -1
- package/dist/tui/config-wizard/step-mcp.js +29 -25
- package/dist/tui/config-wizard/step-mcp.js.map +1 -1
- package/dist/tui/config-wizard/step-models.d.ts.map +1 -1
- package/dist/tui/config-wizard/step-models.js +98 -43
- package/dist/tui/config-wizard/step-models.js.map +1 -1
- package/dist/tui/config-wizard/step-new-endpoint.d.ts.map +1 -1
- package/dist/tui/config-wizard/step-new-endpoint.js +16 -12
- package/dist/tui/config-wizard/step-new-endpoint.js.map +1 -1
- package/dist/tui/config-wizard/step-simple.d.ts.map +1 -1
- package/dist/tui/config-wizard/step-simple.js +18 -17
- package/dist/tui/config-wizard/step-simple.js.map +1 -1
- package/dist/tui/config-wizard/types.d.ts +31 -3
- package/dist/tui/config-wizard/types.d.ts.map +1 -1
- package/dist/tui/config-wizard/types.js.map +1 -1
- package/dist/tui/file-index.d.ts +38 -0
- package/dist/tui/file-index.d.ts.map +1 -0
- package/dist/tui/file-index.js +117 -0
- package/dist/tui/file-index.js.map +1 -0
- package/dist/tui/index.d.ts +17 -1
- package/dist/tui/index.d.ts.map +1 -1
- package/dist/tui/index.js +105 -49
- package/dist/tui/index.js.map +1 -1
- package/dist/tui/input-editing.d.ts +52 -0
- package/dist/tui/input-editing.d.ts.map +1 -0
- package/dist/tui/input-editing.js +91 -0
- package/dist/tui/input-editing.js.map +1 -0
- package/dist/tui/key-debug.d.ts +62 -0
- package/dist/tui/key-debug.d.ts.map +1 -0
- package/dist/tui/key-debug.js +92 -0
- package/dist/tui/key-debug.js.map +1 -0
- package/dist/tui/mention.d.ts +47 -0
- package/dist/tui/mention.d.ts.map +1 -0
- package/dist/tui/mention.js +152 -0
- package/dist/tui/mention.js.map +1 -0
- package/dist/tui/mouse.d.ts +55 -0
- package/dist/tui/mouse.d.ts.map +1 -0
- package/dist/tui/mouse.js +74 -0
- package/dist/tui/mouse.js.map +1 -0
- package/dist/tui/phase.d.ts +64 -0
- package/dist/tui/phase.d.ts.map +1 -0
- package/dist/tui/phase.js +112 -0
- package/dist/tui/phase.js.map +1 -0
- package/dist/tui/screens/agent-tabs.d.ts +53 -0
- package/dist/tui/screens/agent-tabs.d.ts.map +1 -0
- package/dist/tui/screens/agent-tabs.js +81 -0
- package/dist/tui/screens/agent-tabs.js.map +1 -0
- package/dist/tui/screens/chat-commands.d.ts +78 -1
- package/dist/tui/screens/chat-commands.d.ts.map +1 -1
- package/dist/tui/screens/chat-commands.js +688 -157
- package/dist/tui/screens/chat-commands.js.map +1 -1
- package/dist/tui/screens/chat.d.ts +57 -1
- package/dist/tui/screens/chat.d.ts.map +1 -1
- package/dist/tui/screens/chat.js +708 -261
- package/dist/tui/screens/chat.js.map +1 -1
- package/dist/tui/screens/common-keys.d.ts +36 -0
- package/dist/tui/screens/common-keys.d.ts.map +1 -0
- package/dist/tui/screens/common-keys.js +67 -0
- package/dist/tui/screens/common-keys.js.map +1 -0
- package/dist/tui/screens/frame-buffer.d.ts.map +1 -1
- package/dist/tui/screens/frame-buffer.js.map +1 -1
- package/dist/tui/screens/handoff-choice.d.ts +37 -0
- package/dist/tui/screens/handoff-choice.d.ts.map +1 -0
- package/dist/tui/screens/handoff-choice.js +42 -0
- package/dist/tui/screens/handoff-choice.js.map +1 -0
- package/dist/tui/screens/index.d.ts +7 -5
- package/dist/tui/screens/index.d.ts.map +1 -1
- package/dist/tui/screens/index.js +6 -5
- package/dist/tui/screens/index.js.map +1 -1
- package/dist/tui/screens/input-row.d.ts +64 -0
- package/dist/tui/screens/input-row.d.ts.map +1 -0
- package/dist/tui/screens/input-row.js +67 -0
- package/dist/tui/screens/input-row.js.map +1 -0
- package/dist/tui/screens/input.d.ts +77 -1
- package/dist/tui/screens/input.d.ts.map +1 -1
- package/dist/tui/screens/input.js +125 -8
- package/dist/tui/screens/input.js.map +1 -1
- package/dist/tui/screens/layout.d.ts +49 -0
- package/dist/tui/screens/layout.d.ts.map +1 -1
- package/dist/tui/screens/layout.js +45 -7
- package/dist/tui/screens/layout.js.map +1 -1
- package/dist/tui/screens/lines.d.ts +7 -0
- package/dist/tui/screens/lines.d.ts.map +1 -1
- package/dist/tui/screens/lines.js +6 -6
- package/dist/tui/screens/lines.js.map +1 -1
- package/dist/tui/screens/messages-view.d.ts +20 -1
- package/dist/tui/screens/messages-view.d.ts.map +1 -1
- package/dist/tui/screens/messages-view.js +55 -8
- package/dist/tui/screens/messages-view.js.map +1 -1
- package/dist/tui/screens/notice-bar.d.ts +5 -0
- package/dist/tui/screens/notice-bar.d.ts.map +1 -0
- package/dist/tui/screens/notice-bar.js +21 -0
- package/dist/tui/screens/notice-bar.js.map +1 -0
- package/dist/tui/screens/notice.d.ts +44 -10
- package/dist/tui/screens/notice.d.ts.map +1 -1
- package/dist/tui/screens/notice.js +75 -15
- package/dist/tui/screens/notice.js.map +1 -1
- package/dist/tui/screens/overlays.d.ts.map +1 -1
- package/dist/tui/screens/overlays.js +4 -3
- package/dist/tui/screens/overlays.js.map +1 -1
- package/dist/tui/screens/render.d.ts +1 -1
- package/dist/tui/screens/render.d.ts.map +1 -1
- package/dist/tui/screens/render.js +18 -11
- package/dist/tui/screens/render.js.map +1 -1
- package/dist/tui/screens/use-chat-viewport.d.ts +22 -0
- package/dist/tui/screens/use-chat-viewport.d.ts.map +1 -0
- package/dist/tui/screens/use-chat-viewport.js +50 -0
- package/dist/tui/screens/use-chat-viewport.js.map +1 -0
- package/dist/tui/screens/use-input-editing.d.ts +69 -0
- package/dist/tui/screens/use-input-editing.d.ts.map +1 -0
- package/dist/tui/screens/use-input-editing.js +220 -0
- package/dist/tui/screens/use-input-editing.js.map +1 -0
- package/dist/tui/screens/use-overlays.d.ts +25 -0
- package/dist/tui/screens/use-overlays.d.ts.map +1 -0
- package/dist/tui/screens/use-overlays.js +32 -0
- package/dist/tui/screens/use-overlays.js.map +1 -0
- package/dist/tui/screens/use-wizard-host.d.ts +46 -0
- package/dist/tui/screens/use-wizard-host.d.ts.map +1 -0
- package/dist/tui/screens/use-wizard-host.js +123 -0
- package/dist/tui/screens/use-wizard-host.js.map +1 -0
- package/dist/tui/screens/welcome.d.ts +12 -0
- package/dist/tui/screens/welcome.d.ts.map +1 -0
- package/dist/tui/screens/welcome.js +36 -0
- package/dist/tui/screens/welcome.js.map +1 -0
- package/dist/tui/status-segments.d.ts +37 -0
- package/dist/tui/status-segments.d.ts.map +1 -0
- package/dist/tui/status-segments.js +166 -0
- package/dist/tui/status-segments.js.map +1 -0
- package/dist/tui/text.d.ts +22 -7
- package/dist/tui/text.d.ts.map +1 -1
- package/dist/tui/text.js +110 -39
- package/dist/tui/text.js.map +1 -1
- package/dist/tui/theme.d.ts +2 -0
- package/dist/tui/theme.d.ts.map +1 -1
- package/dist/tui/theme.js +2 -0
- package/dist/tui/theme.js.map +1 -1
- package/dist/tui/token-rate.d.ts +83 -0
- package/dist/tui/token-rate.d.ts.map +1 -0
- package/dist/tui/token-rate.js +195 -0
- package/dist/tui/token-rate.js.map +1 -0
- package/dist/types.d.ts +7 -8
- package/dist/types.d.ts.map +1 -1
- package/dist/user-content.d.ts +41 -0
- package/dist/user-content.d.ts.map +1 -0
- package/dist/user-content.js +37 -0
- package/dist/user-content.js.map +1 -0
- package/dist/version-compare.d.ts +37 -0
- package/dist/version-compare.d.ts.map +1 -0
- package/dist/version-compare.js +105 -0
- package/dist/version-compare.js.map +1 -0
- package/dist/version.js.map +1 -1
- package/package.json +7 -5
- package/dist/auto-migrate-confirm-plugin.d.ts +0 -58
- package/dist/auto-migrate-confirm-plugin.d.ts.map +0 -1
- package/dist/auto-migrate-confirm-plugin.js +0 -61
- package/dist/auto-migrate-confirm-plugin.js.map +0 -1
- package/dist/migration-service.d.ts +0 -15
- package/dist/migration-service.d.ts.map +0 -1
- package/dist/migration-service.js +0 -66
- package/dist/migration-service.js.map +0 -1
- package/dist/tui/screens/splash.d.ts +0 -5
- package/dist/tui/screens/splash.d.ts.map +0 -1
- package/dist/tui/screens/splash.js +0 -51
- package/dist/tui/screens/splash.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:
|
|
19
|
+
label: t("wiz.mcp.switchScope", { scope: scopeLabel(other) }),
|
|
19
20
|
value: SWITCH_SCOPE,
|
|
20
|
-
hint:
|
|
21
|
+
hint: t("wiz.mcp.serverCount", { n: mcpCount(mcp, other) }),
|
|
21
22
|
},
|
|
22
|
-
{ label: "
|
|
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
|
-
|
|
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:
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
], fields: mcpServerFields(scope, serverId, entry), notice: notice,
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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
|
-
|
|
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:
|
|
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),
|
|
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:
|
|
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(
|
|
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,
|
|
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":";AAGA,OAAO,EAAE,aAAa,EAA4B,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzH,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE1D,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
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;
|
|
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 {
|
|
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: "
|
|
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:
|
|
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: "
|
|
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
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
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: "
|
|
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:
|
|
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: "
|
|
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
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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,
|
|
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
|
|
90
|
-
return (_jsx(PromptScreen, { columns: cols, rows: rows, title: "
|
|
91
|
-
"
|
|
92
|
-
|
|
93
|
-
? "
|
|
94
|
-
:
|
|
95
|
-
], error: error, hints: [["Enter", "
|
|
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,
|
|
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":";
|
|
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;
|
|
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: "
|
|
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: "
|
|
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("
|
|
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
|
-
|
|
40
|
-
|
|
41
|
-
"
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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,
|
|
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":";AAEA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"step-new-endpoint.js","sourceRoot":"","sources":["../../../src/tui/config-wizard/step-new-endpoint.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,CAAC,EAAE,MAAM,qBAAqB,CAAC;AAExC,MAAM,UAAU,qBAAqB,CAAC,GAAkB;IACtD,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;IACtG,IAAI,UAAU,CAAC,IAAI,KAAK,cAAc;QAAE,OAAO,IAAI,CAAC;IACpD,qDAAqD;IACrD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;IAE/B,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,OAAO,CACL,KAAC,YAAY,IAEX,OAAO,EAAE,IAAI,EACb,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,CAAC,CAAC,2BAA2B,CAAC,EACrC,OAAO,EAAE,CAAC,CAAC,CAAC,0BAA0B,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,EACnE,YAAY,EAAE,KAAK,CAAC,IAAI,EACxB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EACvD,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;gBAClB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC1B,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;oBAChC,OAAO;gBACT,CAAC;gBACD,MAAM,IAAI,GAAG,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;gBAChC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACf,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACf,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACnE,CAAC,EACD,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,IAnBrC,UAAU,CAoBd,CACH,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,CACL,KAAC,YAAY,IAEX,OAAO,EAAE,IAAI,EACb,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,CAAC,CAAC,8BAA8B,CAAC,EACxC,OAAO,EAAE,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,EAC3C,YAAY,EAAE,KAAK,CAAC,OAAO,EAC3B,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EACvD,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;gBAClB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC7B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;oBACnC,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;oBACjC,OAAO;gBACT,CAAC;gBACD,MAAM,IAAI,GAAG,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,CAAC;gBACnC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACf,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACf,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAClE,CAAC,EACD,QAAQ,EAAE,GAAG,EAAE;gBACb,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACf,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAC1D,CAAC,IAtBG,aAAa,CAuBjB,CACH,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACzC,OAAO,CACL,KAAC,YAAY,IAEX,OAAO,EAAE,IAAI,EACb,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,CAAC,CAAC,6BAA6B,CAAC,EACvC,OAAO,EAAE;YACP,CAAC,CAAC,yBAAyB,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;YACtE,CAAC,CAAC,gCAAgC,CAAC;YACnC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;SAC3F,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EACjD,IAAI,QACJ,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EACpG,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAC5B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAC7E,KAAK,MAAM,CACT,IAAI,EACJ,CAAC,CAAC,yBAAyB,EAAE;gBAC3B,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC;aACtD,CAAC,EACF,CAAC,QAAQ,CAAC,EAAE,CAAC,EACb,EAAE,IAAI,EAAE,WAAW,EAAE,CACtB,CAAC;QACJ,CAAC,EACD,QAAQ,EAAE,GAAG,EAAE;YACb,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7D,CAAC,IA7BG,YAAY,CA8BhB,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -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;
|
|
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: "
|
|
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)),
|
|
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 ?
|
|
25
|
-
|
|
26
|
-
|
|
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
|
-
?
|
|
29
|
-
:
|
|
30
|
-
props.onboarding ? "
|
|
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("
|
|
39
|
+
setError(t("err.apiKeyRequired"));
|
|
39
40
|
return;
|
|
40
41
|
}
|
|
41
|
-
void commit(setEndpointApiKey(config, endpoint.id, key),
|
|
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:
|
|
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("
|
|
48
|
+
setError(t("err.baseUrlScheme"));
|
|
48
49
|
return;
|
|
49
50
|
}
|
|
50
|
-
void commit(setEndpointBaseUrl(config, endpoint.id, baseUrl),
|
|
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;
|