@ai-zen/cli 1.0.0-alpha.2 → 1.0.0-alpha.22
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 +514 -0
- package/README.md +136 -39
- package/README.zh.md +136 -39
- package/dist/agent-creator.d.ts +11 -0
- package/dist/agent-creator.d.ts.map +1 -1
- package/dist/agent-creator.js +52 -21
- 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/config-editor.d.ts +13 -5
- package/dist/config-editor.d.ts.map +1 -1
- package/dist/config-editor.js +36 -27
- package/dist/config-editor.js.map +1 -1
- package/dist/config.d.ts +24 -3
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +55 -15
- package/dist/config.js.map +1 -1
- package/dist/conversation-commands/registry.d.ts +123 -4
- package/dist/conversation-commands/registry.d.ts.map +1 -1
- package/dist/conversation-commands/registry.js +92 -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 +71 -13
- package/dist/conversation-repository.d.ts.map +1 -1
- package/dist/conversation-repository.js +81 -24
- package/dist/conversation-repository.js.map +1 -1
- package/dist/cwd-tracker-plugin.d.ts.map +1 -1
- package/dist/cwd-tracker-plugin.js +6 -2
- 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 +89 -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 +290 -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 +224 -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 +34 -0
- package/dist/i18n/preferences.d.ts.map +1 -0
- package/dist/i18n/preferences.js +69 -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 +293 -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 +228 -0
- package/dist/i18n/zh.js.map +1 -0
- package/dist/index.js +61 -25
- 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 +55 -0
- package/dist/sdk-log.d.ts.map +1 -0
- package/dist/sdk-log.js +91 -0
- package/dist/sdk-log.js.map +1 -0
- package/dist/session-pointer.d.ts +22 -9
- package/dist/session-pointer.d.ts.map +1 -1
- package/dist/session-pointer.js +55 -23
- 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 +5 -5
- package/dist/sub-agent-guard-plugin.d.ts.map +1 -1
- package/dist/sub-agent-guard-plugin.js +7 -7
- package/dist/sub-agent-guard-plugin.js.map +1 -1
- package/dist/tui/chat-session.d.ts +110 -59
- package/dist/tui/chat-session.d.ts.map +1 -1
- package/dist/tui/chat-session.js +268 -120
- package/dist/tui/chat-session.js.map +1 -1
- package/dist/tui/components.d.ts +48 -2
- package/dist/tui/components.d.ts.map +1 -1
- package/dist/tui/components.js +96 -3
- package/dist/tui/components.js.map +1 -1
- package/dist/tui/config-wizard/detail.d.ts +12 -6
- package/dist/tui/config-wizard/detail.d.ts.map +1 -1
- package/dist/tui/config-wizard/detail.js +33 -32
- package/dist/tui/config-wizard/detail.js.map +1 -1
- package/dist/tui/config-wizard/engine.d.ts.map +1 -1
- package/dist/tui/config-wizard/engine.js +27 -21
- 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 +216 -152
- package/dist/tui/config-wizard/fields.js.map +1 -1
- package/dist/tui/config-wizard/kv-editor.d.ts.map +1 -1
- package/dist/tui/config-wizard/kv-editor.js +9 -5
- package/dist/tui/config-wizard/kv-editor.js.map +1 -1
- package/dist/tui/config-wizard/list.d.ts.map +1 -1
- package/dist/tui/config-wizard/list.js +2 -1
- 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.map +1 -1
- package/dist/tui/config-wizard/prompt-editor.js +4 -3
- 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 +29 -20
- 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 +24 -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 +16 -6
- 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 +17 -19
- 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 +41 -26
- 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 +18 -3
- package/dist/tui/config-wizard/types.d.ts.map +1 -1
- package/dist/tui/config-wizard/wizard.d.ts.map +1 -1
- package/dist/tui/config-wizard/wizard.js +4 -3
- package/dist/tui/config-wizard/wizard.js.map +1 -1
- package/dist/tui/highlight.d.ts +3 -2
- package/dist/tui/highlight.d.ts.map +1 -1
- package/dist/tui/highlight.js +3 -2
- package/dist/tui/highlight.js.map +1 -1
- package/dist/tui/index.d.ts +18 -1
- package/dist/tui/index.d.ts.map +1 -1
- package/dist/tui/index.js +107 -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/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/chat-commands.d.ts +64 -3
- package/dist/tui/screens/chat-commands.d.ts.map +1 -1
- package/dist/tui/screens/chat-commands.js +483 -157
- package/dist/tui/screens/chat-commands.js.map +1 -1
- package/dist/tui/screens/chat.d.ts +10 -5
- package/dist/tui/screens/chat.d.ts.map +1 -1
- package/dist/tui/screens/chat.js +464 -301
- 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 +47 -0
- package/dist/tui/screens/frame-buffer.d.ts.map +1 -0
- package/dist/tui/screens/frame-buffer.js +78 -0
- package/dist/tui/screens/frame-buffer.js.map +1 -0
- 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 +8 -8
- package/dist/tui/screens/index.d.ts.map +1 -1
- package/dist/tui/screens/index.js +7 -7
- 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 +46 -1
- package/dist/tui/screens/input.d.ts.map +1 -1
- package/dist/tui/screens/input.js +83 -8
- package/dist/tui/screens/input.js.map +1 -1
- package/dist/tui/screens/layout.d.ts +21 -3
- package/dist/tui/screens/layout.d.ts.map +1 -1
- package/dist/tui/screens/layout.js +20 -9
- package/dist/tui/screens/layout.js.map +1 -1
- package/dist/tui/screens/lines.d.ts +12 -41
- package/dist/tui/screens/lines.d.ts.map +1 -1
- package/dist/tui/screens/lines.js +90 -98
- package/dist/tui/screens/lines.js.map +1 -1
- package/dist/tui/screens/messages-view.d.ts +10 -0
- package/dist/tui/screens/messages-view.d.ts.map +1 -0
- package/dist/tui/screens/messages-view.js +116 -0
- package/dist/tui/screens/messages-view.js.map +1 -0
- 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 +15 -0
- package/dist/tui/screens/notice-bar.js.map +1 -0
- package/dist/tui/screens/notice.d.ts +64 -0
- package/dist/tui/screens/notice.d.ts.map +1 -0
- package/dist/tui/screens/notice.js +106 -0
- package/dist/tui/screens/notice.js.map +1 -0
- package/dist/tui/screens/overlays.d.ts.map +1 -1
- package/dist/tui/screens/overlays.js +3 -2
- package/dist/tui/screens/overlays.js.map +1 -1
- package/dist/tui/screens/render.d.ts +2 -4
- package/dist/tui/screens/render.d.ts.map +1 -1
- package/dist/tui/screens/render.js +7 -43
- package/dist/tui/screens/render.js.map +1 -1
- package/dist/tui/screens/splash.d.ts +1 -1
- package/dist/tui/screens/splash.d.ts.map +1 -1
- package/dist/tui/screens/splash.js +12 -3
- package/dist/tui/screens/splash.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 +44 -0
- package/dist/tui/screens/use-input-editing.d.ts.map +1 -0
- package/dist/tui/screens/use-input-editing.js +192 -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 +35 -0
- package/dist/tui/screens/use-wizard-host.d.ts.map +1 -0
- package/dist/tui/screens/use-wizard-host.js +103 -0
- package/dist/tui/screens/use-wizard-host.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 +20 -7
- package/dist/tui/text.d.ts.map +1 -1
- package/dist/tui/text.js +111 -37
- package/dist/tui/text.js.map +1 -1
- package/dist/tui/theme.d.ts +7 -1
- package/dist/tui/theme.d.ts.map +1 -1
- package/dist/tui/theme.js +15 -3
- 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/package.json +4 -3
- 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 -59
- package/dist/migration-service.js.map +0 -1
- package/dist/tui/screens/state.d.ts +0 -13
- package/dist/tui/screens/state.d.ts.map +0 -1
- package/dist/tui/screens/state.js +0 -75
- package/dist/tui/screens/state.js.map +0 -1
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* English entries — Configuration center (`/config` wizard).
|
|
3
|
+
*
|
|
4
|
+
* Kept separate from `en.ts` for the same reason as `zh-wizard.ts`: the wizard is the
|
|
5
|
+
* densest text area in the CLI. `index.ts` merges both tables, so `t()` sees one map.
|
|
6
|
+
*/
|
|
7
|
+
export const en = {
|
|
8
|
+
// ---------- Field labels (reused heavily) ----------
|
|
9
|
+
"field.name": "Name",
|
|
10
|
+
"perm.tools": "Tools",
|
|
11
|
+
"perm.skills": "Skills",
|
|
12
|
+
"perm.mcps": "MCP",
|
|
13
|
+
"perm.subagents": "Sub-agents",
|
|
14
|
+
"field.description": "Description",
|
|
15
|
+
"field.endpoint": "Endpoint",
|
|
16
|
+
"field.modelName": "Model name",
|
|
17
|
+
"field.reasoningPreset": "Reasoning preset",
|
|
18
|
+
"field.handoffThreshold": "Handoff threshold",
|
|
19
|
+
"field.guardThreshold": "Guard threshold",
|
|
20
|
+
"field.vision": "Vision",
|
|
21
|
+
"field.custom": "Custom",
|
|
22
|
+
"field.size": "Size",
|
|
23
|
+
"field.quality": "Quality",
|
|
24
|
+
// ---------- Common ---------------------------------------------------
|
|
25
|
+
"common.yes": "Yes",
|
|
26
|
+
"common.no": "No",
|
|
27
|
+
"common.empty": "(empty)",
|
|
28
|
+
"common.emptyWithEditor": "(empty) · Enter to edit",
|
|
29
|
+
"common.linesWithEditor": "{n} lines · Enter to edit",
|
|
30
|
+
"common.bodyWithEditor": "{text} · Enter to edit",
|
|
31
|
+
"common.defaultInParens": "(default)",
|
|
32
|
+
"common.sameAsId": "(same as id)",
|
|
33
|
+
"common.notAdjustable": "(not adjustable)",
|
|
34
|
+
"common.customOnlyNote": "(marked as custom — changes are kept)",
|
|
35
|
+
"common.factoryManaged": "No (factory-managed)",
|
|
36
|
+
// ---------- Validation messages ----------
|
|
37
|
+
"err.nameRequired": "Name cannot be empty",
|
|
38
|
+
"err.baseUrlScheme": "Base URL must start with http:// or https://",
|
|
39
|
+
"err.apiKeyRequired": "API key cannot be empty",
|
|
40
|
+
"err.modelNameRequired": "Model name cannot be empty",
|
|
41
|
+
"err.handoffPositive": "Handoff threshold must be a positive integer",
|
|
42
|
+
"err.handoffLessThanGuard": "Handoff threshold must be lower than the guard threshold",
|
|
43
|
+
"err.guardPositive": "Guard threshold must be a positive integer",
|
|
44
|
+
"err.guardGreaterThanHandoff": "Guard threshold must be higher than the handoff threshold",
|
|
45
|
+
"err.presetNotFound": "Preset \"{name}\" does not exist (available: {options})",
|
|
46
|
+
"err.presetTableEmpty": "Preset \"{name}\" does not exist (the preset table is empty, see reasoning-presets.json)",
|
|
47
|
+
"err.idRequired": "ID cannot be empty",
|
|
48
|
+
"err.functionNameRequired": "Function name cannot be empty",
|
|
49
|
+
"err.mcpNameTaken": "A server named {name} already exists",
|
|
50
|
+
"err.agentIdTaken": "A definition with id {name} already exists",
|
|
51
|
+
// ---------- More field labels (MCP / Agent detail) ----------
|
|
52
|
+
"field.transport": "Transport",
|
|
53
|
+
"field.command": "Command",
|
|
54
|
+
"field.args": "Arguments",
|
|
55
|
+
"field.env": "Environment",
|
|
56
|
+
"field.headers": "Headers",
|
|
57
|
+
"field.id": "ID",
|
|
58
|
+
"field.model": "Model",
|
|
59
|
+
"field.prompt": "Prompt",
|
|
60
|
+
"field.permissions": "Permissions",
|
|
61
|
+
"field.functionName": "Function name",
|
|
62
|
+
"field.functionDescription": "Function description",
|
|
63
|
+
"field.paramsSchema": "Params schema",
|
|
64
|
+
"field.enabled": "Enabled",
|
|
65
|
+
"common.unset": "(not set)",
|
|
66
|
+
"common.disabledInParens": "No (disabled)",
|
|
67
|
+
"common.transportStdio": "stdio (local subprocess)",
|
|
68
|
+
"common.transportMode": "Transport type",
|
|
69
|
+
"common.enabledState": "Enabled state",
|
|
70
|
+
"common.customQuoted": "\"custom\"",
|
|
71
|
+
// ---------- Persist feedback (full sentences — parameterised, never concatenated) ----------
|
|
72
|
+
"wiz.endpointUpdated": "Endpoint {name}: {label} updated",
|
|
73
|
+
"wiz.modelUpdated": "Model {name}: {label} updated{suffix}",
|
|
74
|
+
"wiz.imageModelUpdated": "Image model {name}: {label} updated{suffix}",
|
|
75
|
+
"wiz.modelCustomSet": "Model {name}: custom set to {value}",
|
|
76
|
+
"wiz.imageModelCustomSet": "Image model {name}: custom set to {value}",
|
|
77
|
+
"wiz.mcpFieldUpdated": "MCP {id}: {label} updated ({scope})",
|
|
78
|
+
"wiz.mcpRenamed": "MCP {id} renamed to {name} ({scope})",
|
|
79
|
+
"wiz.agentFieldUpdated": "{kind} {id}: {label} updated{suffix}",
|
|
80
|
+
"wiz.agentRenamed": "{kind} {id} renamed to {name}",
|
|
81
|
+
"wiz.agentPermissionUpdated": "{kind} {id}: {dim} permission updated",
|
|
82
|
+
"wiz.presetLevels": "{name} ({levels})",
|
|
83
|
+
"wiz.presetMissingName": "{name} (preset missing)",
|
|
84
|
+
// ---------- Shared buttons / actions ----------
|
|
85
|
+
"ui.save": "Save",
|
|
86
|
+
"ui.cancel": "Cancel",
|
|
87
|
+
"ui.back": "Back",
|
|
88
|
+
"ui.confirm": "Confirm",
|
|
89
|
+
"ui.select": "Select",
|
|
90
|
+
"ui.move": "Move",
|
|
91
|
+
"ui.toggle": "Toggle",
|
|
92
|
+
"ui.open": "Open",
|
|
93
|
+
"ui.edit": "Edit",
|
|
94
|
+
"ui.run": "Run",
|
|
95
|
+
"ui.delete": "Delete",
|
|
96
|
+
"ui.add": "Add",
|
|
97
|
+
"ui.done": "Done",
|
|
98
|
+
"ui.plainOrMasked": "Plain / masked",
|
|
99
|
+
// ---------- Config center home ----------
|
|
100
|
+
"wiz.menu.title": "◆ Configuration",
|
|
101
|
+
"wiz.menu.hint": "Changes are written to disk immediately; changes touching the current endpoint rebuild the session (messages are kept).",
|
|
102
|
+
"wiz.menu.configFile": "Config file: {path}",
|
|
103
|
+
"wiz.menu.endpoints": "Endpoints",
|
|
104
|
+
"wiz.menu.models": "Models",
|
|
105
|
+
"wiz.menu.imageModels": "Image models",
|
|
106
|
+
"wiz.menu.mcp": "MCP servers",
|
|
107
|
+
"wiz.menu.agents": "Agent definitions",
|
|
108
|
+
"wiz.menu.defaults": "Defaults",
|
|
109
|
+
"wiz.menu.maxToolOutput": "Tool output limit",
|
|
110
|
+
"wiz.menu.done": "Done",
|
|
111
|
+
"wiz.menu.savedCount": "{n} change(s) saved",
|
|
112
|
+
"wiz.menu.backToChat": "Back to chat",
|
|
113
|
+
"wiz.menu.count": "{n}",
|
|
114
|
+
"wiz.menu.imageModelsSummary": "{n} · default {name}",
|
|
115
|
+
"wiz.menu.mcpSummary": "global {global} · project {project}",
|
|
116
|
+
"wiz.menu.defaultsSummary": "agent {agent} · migration {model}",
|
|
117
|
+
"wiz.menu.maxToolOutputSummary": "{n} chars",
|
|
118
|
+
"wiz.menu.agentsSummary": "agent {agent} · sub-agent {sub}",
|
|
119
|
+
"wiz.menu.doneReturn": "Done & back",
|
|
120
|
+
"common.unsetPlain": "not set",
|
|
121
|
+
"wiz.pickTitle": "{label} · Select",
|
|
122
|
+
"wiz.confirmTitle": "{label}?",
|
|
123
|
+
"wiz.irreversible": "{title} — this cannot be undone",
|
|
124
|
+
"wiz.confirmAction": "Confirm {label}",
|
|
125
|
+
// ---------- Lists / KV editor / prompt ----------
|
|
126
|
+
"wiz.listEmpty": " (no options)",
|
|
127
|
+
"wiz.truncated": " ({n} total, showing the first {m})",
|
|
128
|
+
"wiz.kvTitle": "{title} · {mode}",
|
|
129
|
+
"wiz.kvModeAdd": "Add",
|
|
130
|
+
"wiz.kvModeEdit": "Edit",
|
|
131
|
+
"wiz.kvHint": "Format: KEY=VALUE (split on the first =)",
|
|
132
|
+
"wiz.kvExample": "e.g. PATH=/usr/bin or Authorization=Bearer xxx",
|
|
133
|
+
"wiz.kvEmpty": " (none yet — press Enter to add)",
|
|
134
|
+
"err.keyValueFormat": "Expected the KEY=VALUE format",
|
|
135
|
+
"err.duplicateKey": "{key} already exists",
|
|
136
|
+
"wiz.promptSecretHint": "(paste or type, then Enter to save; Tab reveals plaintext for checking)",
|
|
137
|
+
"wiz.promptHint": "(type, then Enter to confirm)",
|
|
138
|
+
"scope.global": "global",
|
|
139
|
+
"scope.project": "project",
|
|
140
|
+
"common.noUrl": "(no URL configured)",
|
|
141
|
+
"common.noCommand": "(no command configured)",
|
|
142
|
+
"common.disabledSuffix": " · disabled",
|
|
143
|
+
// ---------- Models / image models (list · detail · create) ----------
|
|
144
|
+
"wiz.kind.custom": "custom",
|
|
145
|
+
"wiz.kind.factory": "factory-managed",
|
|
146
|
+
"wiz.modelKind.factoryNote": "factory-managed (editing switches it to custom)",
|
|
147
|
+
"wiz.modelKind.visionSuffix": " · vision",
|
|
148
|
+
"wiz.modelItem.hint": "{endpoint} · {kind}{vision}",
|
|
149
|
+
"wiz.detail.moveHint": "↑ ↓ move · Enter edit/toggle · changes are written to disk immediately",
|
|
150
|
+
"wiz.models.newItem": "+ New model",
|
|
151
|
+
"wiz.models.newItemHint": "marked as custom automatically",
|
|
152
|
+
"wiz.models.subtitle": "{n} model(s) · select one to edit / delete in place",
|
|
153
|
+
"wiz.models.detailTitle": "◆ Model · {name}",
|
|
154
|
+
"wiz.models.detailLine": "{id} · {kind}",
|
|
155
|
+
"wiz.models.delete": "Delete model",
|
|
156
|
+
"wiz.models.deleted": "Deleted model {name}",
|
|
157
|
+
"wiz.models.createTitle": "New model · name",
|
|
158
|
+
"wiz.models.createDesc": "Identifies the model in the config and the status bar, e.g. {example}",
|
|
159
|
+
"wiz.models.created": "Created model {name} ({id}, marked as custom)",
|
|
160
|
+
"wiz.models.noEndpoint": "⚠ No endpoint configured yet — add one under Endpoints after creating",
|
|
161
|
+
"wiz.models.defaultEndpoint": "Will bind the default endpoint: {endpoint}",
|
|
162
|
+
"wiz.createAndEdit": "Create & edit",
|
|
163
|
+
"wiz.imageModels.newItem": "+ New image model",
|
|
164
|
+
"wiz.imageModels.subtitle": "{n} total · select one to edit / delete in place",
|
|
165
|
+
"wiz.imageModels.detailTitle": "◆ Image model · {name}",
|
|
166
|
+
"wiz.imageModels.delete": "Delete image model",
|
|
167
|
+
"wiz.imageModels.deleted": "Deleted image model {name}",
|
|
168
|
+
"wiz.imageModels.createTitle": "New image model · name",
|
|
169
|
+
"wiz.imageModels.created": "Created image model {name} ({id}, marked as custom)",
|
|
170
|
+
// ---------- Agent definitions (list · detail · permissions · text editing · create) ----------
|
|
171
|
+
"wiz.agents.new": "+ New agent",
|
|
172
|
+
"wiz.agents.newHint": "top-level agent (can be the default agent)",
|
|
173
|
+
"wiz.agents.newSub": "+ New sub-agent",
|
|
174
|
+
"wiz.agents.newSubHint": "a delegatable child agent",
|
|
175
|
+
"wiz.agents.title": "◆ Agent definitions",
|
|
176
|
+
"wiz.agents.itemHint": "{kind} · {id}{factory}",
|
|
177
|
+
"wiz.agent.factorySuffix": " · factory-managed",
|
|
178
|
+
"wiz.agent.subSuffix": " · Sub-agent",
|
|
179
|
+
"wiz.agent.detailTitle": "◆ {kind} · {name}",
|
|
180
|
+
"wiz.agent.detailLine": "{id} · {kind}{subSuffix}",
|
|
181
|
+
"wiz.agent.moveHint": "↑ ↓ move · Enter edit/toggle/open · changes are written to disk immediately",
|
|
182
|
+
"wiz.agent.deleteAction": "Delete {kind}",
|
|
183
|
+
"wiz.agent.subscreenTitle": "◆ {kind} · {id} · {label}",
|
|
184
|
+
"wiz.agent.permHint": "Format: `allow: a, b` or `deny: x` (comma-separated; empty clears this dimension)",
|
|
185
|
+
"wiz.agent.permMoveHint": "↑ ↓ move · Enter edit · Esc back",
|
|
186
|
+
"wiz.agent.fnParamsSubtitle": "A JSON object; Enter opens the system editor, and saving validates and writes immediately",
|
|
187
|
+
"wiz.agent.editorSubtitle": "Enter opens the system editor ($EDITOR / notepad); saving writes to disk",
|
|
188
|
+
"wiz.agent.fnParamsUpdated": "{name}: params schema updated",
|
|
189
|
+
"wiz.agent.fnDescUpdated": "{name}: function description updated",
|
|
190
|
+
"wiz.agent.promptUpdated": "{name}: prompt updated",
|
|
191
|
+
"wiz.agent.newTitle": "New {kind} · name",
|
|
192
|
+
"wiz.agent.newDesc": "Identifies the definition in the list and the status bar, e.g. {example}",
|
|
193
|
+
"wiz.agent.newDescAgent": "After creating, pick it as the default under Defaults → Default agent",
|
|
194
|
+
"wiz.agent.newDescSub": "A function skeleton is generated automatically (editable)",
|
|
195
|
+
"wiz.agent.created": "Created {kind} {name} ({id})",
|
|
196
|
+
// ---------- Tool output limit / direct endpoint field editing ----------
|
|
197
|
+
"wiz.maxToolOutput.title": "Tool output limit (characters)",
|
|
198
|
+
"wiz.currentLine": "Current: {value}",
|
|
199
|
+
"wiz.maxToolOutput.desc": "Single tool output above this limit is written to disk or only warned about, so the context never blows up",
|
|
200
|
+
"wiz.maxToolOutput.updated": "Tool output limit → {n} chars",
|
|
201
|
+
"err.positiveInteger": "Must be a positive integer",
|
|
202
|
+
"wiz.apiKey.titleOnboarding": "First-time setup · set the API key for {name}",
|
|
203
|
+
"wiz.apiKey.title": "Set API key · {name}",
|
|
204
|
+
"wiz.apiKey.endpointLine": "Endpoint: {name} · {url}",
|
|
205
|
+
"wiz.apiKey.guideUrl": "{vendor} signup: {url}",
|
|
206
|
+
"wiz.apiKey.guideNoUrl": "{vendor}: get an API key from the provider",
|
|
207
|
+
"wiz.apiKey.onboardingNote": "Saving enters the chat immediately (Esc discards and exits).",
|
|
208
|
+
"wiz.apiKey.saveAndEnter": "Save & enter chat",
|
|
209
|
+
"ui.discard": "Discard",
|
|
210
|
+
"wiz.baseUrl.title": "Set base URL · {name}",
|
|
211
|
+
"wiz.baseUrl.hint": "Must start with http:// or https:// (OpenAI-compatible endpoint)",
|
|
212
|
+
// ---------- MCP servers / defaults ----------
|
|
213
|
+
"wiz.mcp.switchScope": "⇄ Switch to the \"{scope}\" scope",
|
|
214
|
+
"wiz.mcp.serverCount": "{n} server(s)",
|
|
215
|
+
"wiz.mcp.newItem": "+ New server",
|
|
216
|
+
"wiz.mcp.listTitle": "◆ MCP servers · {scope}",
|
|
217
|
+
"wiz.mcp.listSubtitle": "{n} · {path}",
|
|
218
|
+
"wiz.mcp.detailTitle": "◆ MCP · {id}",
|
|
219
|
+
"wiz.scopePath": "{scope} · {path}",
|
|
220
|
+
"wiz.mcp.detailLine": "transport {transport} · ↑ ↓ move · Enter edit/toggle",
|
|
221
|
+
"wiz.mcp.delete": "Delete server",
|
|
222
|
+
"wiz.mcp.deleted": "Deleted MCP server {id} ({scope})",
|
|
223
|
+
"wiz.mcp.kvTitle": "◆ MCP · {id} · {label}",
|
|
224
|
+
"wiz.mcp.kvSubtitle": "{scope} · {n} entries",
|
|
225
|
+
"wiz.mcp.newTitle": "New MCP server · name ({scope})",
|
|
226
|
+
"wiz.mcp.newDescKey": "Used as the key under mcpServers, e.g. github / chrome-devtools",
|
|
227
|
+
"wiz.mcp.newDescDefault": "Created as stdio by default; transport / command / args / env are all editable",
|
|
228
|
+
"wiz.mcp.created": "Created MCP server {id} ({scope})",
|
|
229
|
+
"wiz.defaults.title": "Defaults",
|
|
230
|
+
"wiz.defaults.subtitle": "Values used by new sessions and task migration",
|
|
231
|
+
"wiz.defaults.pickSubtitle": "Written to disk as soon as you pick",
|
|
232
|
+
"wiz.defaults.imageModel": "Default image model",
|
|
233
|
+
"wiz.defaults.agent": "Default agent",
|
|
234
|
+
"wiz.defaults.migrationModel": "Default migration model",
|
|
235
|
+
"wiz.defaults.keyReady": "API key ready",
|
|
236
|
+
"wiz.defaults.missingKey": "API key missing",
|
|
237
|
+
"wiz.defaults.itemHint": "{endpoint} · {state}",
|
|
238
|
+
"wiz.defaults.updated": "{label} → {value}",
|
|
239
|
+
// ---------- Endpoints list / new endpoint ----------
|
|
240
|
+
"ui.next": "Next",
|
|
241
|
+
"common.listSep": ", ",
|
|
242
|
+
"wiz.endpoints.newItem": "+ New endpoint",
|
|
243
|
+
"wiz.endpoints.newItemHint": "custom OpenAI-compatible service",
|
|
244
|
+
"wiz.endpoints.subtitle": "{n} endpoint(s) · select one to edit / delete in place",
|
|
245
|
+
"wiz.endpoints.detailTitle": "◆ Endpoint · {name}",
|
|
246
|
+
"wiz.endpoints.detailLine": "{id}{refs}",
|
|
247
|
+
"wiz.endpoints.refSuffix": " · referenced by {n} model(s)",
|
|
248
|
+
"wiz.endpoints.moveHint": "↑ ↓ move · Enter edit · changes are written to disk immediately",
|
|
249
|
+
"wiz.endpoints.delete": "Delete endpoint",
|
|
250
|
+
"wiz.endpoints.deleteBlocked": "Cannot delete: still referenced by {n} model(s) ({models}) — delete or rebind them first",
|
|
251
|
+
"wiz.endpoints.deleted": "Deleted endpoint {name}",
|
|
252
|
+
"wiz.newEndpoint.nameTitle": "New endpoint · name",
|
|
253
|
+
"wiz.newEndpoint.nameDesc": "Identifies the service in the config and the status bar, e.g. {example}",
|
|
254
|
+
"wiz.newEndpoint.baseUrlTitle": "New endpoint · base URL",
|
|
255
|
+
"wiz.newEndpoint.baseUrlDesc": "e.g. https://api.openai.com/v1 (must be an OpenAI-compatible API)",
|
|
256
|
+
"wiz.newEndpoint.apiKeyTitle": "New endpoint · API key",
|
|
257
|
+
"wiz.newEndpoint.apiKeyOptional": "Leave it empty to add later (the endpoint stays unusable until then)",
|
|
258
|
+
"wiz.newEndpoint.save": "Save endpoint",
|
|
259
|
+
"wiz.newEndpoint.created": "Added endpoint {name} ({id}){suffix}",
|
|
260
|
+
"wiz.newEndpoint.keyPending": " · API key pending",
|
|
261
|
+
// ---------- Write failures / editor / leftovers ----------
|
|
262
|
+
"wiz.writeConfigFailed": "Failed to write the config: {error}",
|
|
263
|
+
"wiz.writeMcpFailed": "Failed to write the MCP config: {error}",
|
|
264
|
+
"wiz.writeAgentFailed": "Failed to write the agent definition: {error}",
|
|
265
|
+
"wiz.deleteAgentFailed": "Failed to delete the agent definition: {error}",
|
|
266
|
+
"wiz.agentDeleted": "Deleted {kind} {id}",
|
|
267
|
+
"wiz.openEditorFailed": "Failed to open the editor: {error}",
|
|
268
|
+
"wiz.editorBusy": "Editing…",
|
|
269
|
+
"wiz.openSystemEditor": "Open system editor",
|
|
270
|
+
"wiz.kvAddRow": "+ Add",
|
|
271
|
+
"wiz.plaintextRevealed": "⚠ Showing plaintext (Tab returns to masked)",
|
|
272
|
+
// ---------- config-editor shared: summaries / validation / transports ----------
|
|
273
|
+
"common.noEndpoints": "no endpoints",
|
|
274
|
+
"common.kvSummary": "{n} entries ({keys})",
|
|
275
|
+
"common.permissionSummary": "{n} dimension(s) ({dims})",
|
|
276
|
+
"common.transportHttp": "http (Streamable HTTP)",
|
|
277
|
+
"common.transportSse": "sse (Server-Sent Events)",
|
|
278
|
+
"err.permissionFormat": "Expected \"allow: a, b\" or \"deny: x\"",
|
|
279
|
+
"err.permissionNeedsPattern": "At least one pattern is required (e.g. `*`)",
|
|
280
|
+
"err.paramsSchemaEmpty": "Params schema cannot be empty (at least {})",
|
|
281
|
+
"err.paramsSchemaNotObject": "Params must be a JSON object",
|
|
282
|
+
"err.jsonParseFailed": "Failed to parse JSON: {error}",
|
|
283
|
+
"vendor.zhipu": "Zhipu AI (BigModelCN)",
|
|
284
|
+
"vendor.deepseek": "DeepSeek",
|
|
285
|
+
"vendor.openai": "OpenAI",
|
|
286
|
+
"vendor.moonshot": "Moonshot (Kimi)",
|
|
287
|
+
"vendor.dashscope": "Alibaba Cloud Bailian (DashScope)",
|
|
288
|
+
"vendor.openaiCompatible": "OpenAI-compatible endpoint",
|
|
289
|
+
};
|
|
290
|
+
//# sourceMappingURL=en-wizard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"en-wizard.js","sourceRoot":"","sources":["../../src/i18n/en-wizard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAqOrC,CAAC"}
|
package/dist/i18n/en.js
ADDED
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* English entries — the fallback language.
|
|
3
|
+
*
|
|
4
|
+
* 约定与 `zh.ts` 一致(不做复数变体:数量词直接写 `(s)`)。
|
|
5
|
+
*/
|
|
6
|
+
export const en = {
|
|
7
|
+
// ---------- Input row ----------
|
|
8
|
+
"input.placeholder": "Type a message, / for commands…",
|
|
9
|
+
"input.hint.ready": "Enter send · Ctrl+J newline · / commands · PgUp history",
|
|
10
|
+
"input.hint.scrolling": "↕ scrolling · PgUp/PgDn pages · send to jump to bottom",
|
|
11
|
+
"input.hint.initializing": "Initializing…",
|
|
12
|
+
// ---------- Status bar ----------
|
|
13
|
+
"status.agent": " · agent ",
|
|
14
|
+
"status.effort": " · thinking ",
|
|
15
|
+
"status.lastTokens": "turn\u00a0{n}\u00a0tok",
|
|
16
|
+
"status.totalTokens": "total\u00a0{n}\u00a0tok",
|
|
17
|
+
"status.avgRate": "⚡\u00a0avg\u00a0{rate}",
|
|
18
|
+
// ---------- Reasoning effort ----------
|
|
19
|
+
"effort.off": "off",
|
|
20
|
+
"effort.none": "off",
|
|
21
|
+
"effort.minimal": "minimal",
|
|
22
|
+
"effort.low": "low",
|
|
23
|
+
"effort.medium": "medium",
|
|
24
|
+
"effort.high": "high",
|
|
25
|
+
"effort.xhigh": "xhigh",
|
|
26
|
+
"effort.max": "max",
|
|
27
|
+
"effort.custom": "custom",
|
|
28
|
+
"effort.default": "default",
|
|
29
|
+
"effort.unsupported": "—",
|
|
30
|
+
// ---------- Generation phases (message-area spinner; see `tui/phase.ts`) ----------
|
|
31
|
+
"phase.working": "Working…",
|
|
32
|
+
"phase.connecting": "Connecting…",
|
|
33
|
+
"phase.queued": "Queued…",
|
|
34
|
+
"phase.thinking": "Thinking…",
|
|
35
|
+
"phase.toolCalling": "Calling tool…",
|
|
36
|
+
"phase.toolCallingWith": "Calling {name}…",
|
|
37
|
+
"phase.toolWaiting": "Waiting for the tool…",
|
|
38
|
+
"phase.toolWaitingWith": "Waiting for {name}…",
|
|
39
|
+
"phase.streaming": "Streaming…",
|
|
40
|
+
// ---------- Notices ----------
|
|
41
|
+
"notice.reloaded": "Session rebuilt with the new config (messages and context kept)",
|
|
42
|
+
"notice.draftSaved": "Draft saved (Ctrl+S to restore)",
|
|
43
|
+
"notice.draftRestored": "Draft restored",
|
|
44
|
+
"notice.pasteImageUnsupported": "Image paste is not supported yet (Ctrl+V is reserved for it)",
|
|
45
|
+
"notice.inputCleared": "Input cleared · press Ctrl+C again to exit",
|
|
46
|
+
"notice.pressCtrlDAgain": "Press Ctrl+D again to exit",
|
|
47
|
+
"notice.languageChanged": "Language switched to English",
|
|
48
|
+
// ---------- Command descriptions (/help & slash menu) ----------
|
|
49
|
+
"cmd.save.desc": "Save the conversation",
|
|
50
|
+
"cmd.load.desc": "Load a conversation (replaces this one)",
|
|
51
|
+
"cmd.new.desc": "Reset the session (clear history)",
|
|
52
|
+
"cmd.back.desc": "Retract the last message (edit and resend)",
|
|
53
|
+
"cmd.editor.desc": "Compose a long message in your editor",
|
|
54
|
+
"cmd.clear.desc": "Clear the screen",
|
|
55
|
+
"cmd.config.desc": "Open the configuration center (model / endpoints)",
|
|
56
|
+
"cmd.model.desc": "Switch model (writes to config)",
|
|
57
|
+
"cmd.agent.desc": "Switch the primary agent (rebuilds the session)",
|
|
58
|
+
"cmd.reload.desc": "Refresh the runtime (rediscovers tools / MCP)",
|
|
59
|
+
"cmd.mcp.desc": "Manage MCP servers (add / remove / edit / toggle)",
|
|
60
|
+
"cmd.lang.desc": "Switch interface language",
|
|
61
|
+
"cmd.think.desc": "Switch reasoning effort",
|
|
62
|
+
"cmd.key.desc": "Set the endpoint API key",
|
|
63
|
+
"cmd.handoff.desc": "Write a handoff document (keeps the session)",
|
|
64
|
+
"cmd.migrate.desc": "Hand off and start a new session",
|
|
65
|
+
"cmd.help.desc": "Show this help",
|
|
66
|
+
"cmd.exit.desc": "Exit the conversation (offers to save)",
|
|
67
|
+
// ---------- Command interaction text (notices / pickers) ----------
|
|
68
|
+
"common.current": " (current)",
|
|
69
|
+
"cmd.model.noModels": "No models configured yet — use /config to add endpoints and models",
|
|
70
|
+
"cmd.model.title": "Switch model (writes to config)",
|
|
71
|
+
"cmd.model.cancelled": "Model switch cancelled",
|
|
72
|
+
"cmd.agent.noAgents": "No primary agents yet — use /config to create one",
|
|
73
|
+
"cmd.agent.unavailable": " · unavailable",
|
|
74
|
+
"cmd.agent.title": "Switch primary agent (writes the default agent)",
|
|
75
|
+
"cmd.agent.cancelled": "Agent switch cancelled",
|
|
76
|
+
"cmd.reload.done": "Runtime refreshed: config / tools / skills / MCP rediscovered (messages and context kept)",
|
|
77
|
+
"cmd.think.followDefault": "Follow model default",
|
|
78
|
+
"cmd.think.clearHint": "Remove the agent's reasoning params",
|
|
79
|
+
"cmd.think.cancelled": "Reasoning effort change cancelled",
|
|
80
|
+
"cmd.think.unchanged": "Reasoning effort unchanged",
|
|
81
|
+
"cmd.help.title": "Available commands:",
|
|
82
|
+
"cmd.new.archived": "Previous conversation archived: {id}\nStarted a new conversation",
|
|
83
|
+
"cmd.new.started": "Started a new conversation",
|
|
84
|
+
"cmd.load.none": "No saved conversations yet",
|
|
85
|
+
"cmd.load.title": "Load a saved conversation",
|
|
86
|
+
"cmd.load.titleReplacing": "Pick a conversation to load (replaces the current session)",
|
|
87
|
+
"cmd.load.cancelled": "Load cancelled",
|
|
88
|
+
"cmd.handoff.empty": "The current conversation has nothing to hand off",
|
|
89
|
+
"cmd.handoff.title": "Write a handoff document · pick a mode",
|
|
90
|
+
"cmd.handoff.cancelled": "Handoff cancelled",
|
|
91
|
+
"cmd.migrate.empty": "The current conversation has nothing to migrate",
|
|
92
|
+
"cmd.migrate.title": "Task migration · pick a handoff mode (starts a new session afterwards)",
|
|
93
|
+
"cmd.migrate.cancelled": "Migration cancelled",
|
|
94
|
+
"cmd.back.empty": "No messages to retract",
|
|
95
|
+
"cmd.back.title": "Pick the message to retract (everything after it is removed)",
|
|
96
|
+
"cmd.back.cancelled": "Retract cancelled",
|
|
97
|
+
"cmd.model.unknown": "Unknown model: {id} (available: {options})",
|
|
98
|
+
"cmd.model.already": "Already on model {id}",
|
|
99
|
+
"cmd.model.endpointMissing": "Model {id} references endpoint {endpoint}, which does not exist — check /config",
|
|
100
|
+
"cmd.model.noApiKey": "Endpoint \"{name}\" has no API key yet — set it up in /config before switching",
|
|
101
|
+
"cmd.model.failed": "Model switch failed: {error}",
|
|
102
|
+
"cmd.agent.unknown": "Unknown agent: {id} (available: {options})",
|
|
103
|
+
"cmd.agent.unavailableReason": "Agent \"{name}\" is unavailable: {reason}",
|
|
104
|
+
"cmd.agent.alreadyOn": "{summary} (this session is already on that agent)",
|
|
105
|
+
"cmd.agent.failed": "Agent switch failed: {error}",
|
|
106
|
+
"cmd.mcp.unknownScope": "Unknown scope: {scope} (use global / project, or no argument)",
|
|
107
|
+
"cmd.lang.unknown": "Unknown language: {lang} (use zh / en, or no argument to toggle)",
|
|
108
|
+
"cmd.reload.failed": "Refresh failed: {error}",
|
|
109
|
+
"cmd.think.noModel": "Agent \"{id}\" has no model bound — pick one in /config",
|
|
110
|
+
"cmd.think.modelMissing": "Model {id} does not exist — check with /model or /config",
|
|
111
|
+
"cmd.think.notAdjustable": "Model {id} has no usable reasoning preset (missing reasoningPreset, or the level is absent from the preset table), so it cannot be adjusted",
|
|
112
|
+
"cmd.think.unknown": "Unknown effort: {level} (available: {options} / default)",
|
|
113
|
+
"cmd.think.title": "Reasoning effort (current: {level})",
|
|
114
|
+
"cmd.think.failed": "Reasoning effort change failed: {error}",
|
|
115
|
+
"cmd.save.done": "Conversation saved: {id}",
|
|
116
|
+
"cmd.save.failed": "Save failed: {error}",
|
|
117
|
+
"cmd.load.tooMany": "Pick a conversation to load (showing the latest {n})",
|
|
118
|
+
"cmd.load.readFailed": "Conversation not found or unreadable: {id}",
|
|
119
|
+
"cmd.handoff.unknownMode": "Unknown mode: {who} (use self / summary)",
|
|
120
|
+
"cmd.handoff.done": "Handoff document created: {path}",
|
|
121
|
+
"cmd.handoff.failed": "Failed to write the handoff document: {error}",
|
|
122
|
+
"cmd.migrate.done": "Migration complete, a new session has started\n📄 Handoff document: {path}",
|
|
123
|
+
"cmd.migrate.failed": "Migration failed: {error}",
|
|
124
|
+
"cmd.back.tooMany": "Pick the message to retract (showing the latest {n})",
|
|
125
|
+
"cmd.editor.failed": "Failed to open the editor: {error}",
|
|
126
|
+
"cmd.unknown": "Unknown command: {cmd} (type /help for available commands)",
|
|
127
|
+
// ---------- Handoff picker / sub-task notices / splash / message placeholders ----------
|
|
128
|
+
"handoff.pickTitle": "Context is about to overflow ({used}/{limit} tokens) · choose how to hand off",
|
|
129
|
+
"handoff.modeSelf": "The current session writes the handoff itself",
|
|
130
|
+
"handoff.modeSelfHint": "faithful · verifies the real state",
|
|
131
|
+
"handoff.modeSummary": "A separate agent writes the handoff",
|
|
132
|
+
"handoff.modeSummaryHint": "independent summary · fast and cheap, does not verify files",
|
|
133
|
+
"handoff.modeSkip": "No handoff",
|
|
134
|
+
"handoff.modeSkipHint": "Skip this time",
|
|
135
|
+
"chat.subagentLabel": "sub-task",
|
|
136
|
+
"chat.subagentRunning": "🧩 Sub-task {name} running…",
|
|
137
|
+
"chat.subagentDone": "✓ Sub-task {name} done",
|
|
138
|
+
"chat.noMigratable": "This conversation has nothing to migrate yet",
|
|
139
|
+
"chat.noHandoffable": "This conversation has nothing to hand off yet",
|
|
140
|
+
"chat.configReadFailed": "Failed to read the config: {error}",
|
|
141
|
+
"chat.modelNoEndpoint": "Model {id} has no usable endpoint bound — check the config with /config",
|
|
142
|
+
"chat.configUpdated": "Config updated: {line}",
|
|
143
|
+
"chat.configUpdatedMulti": "Config updated:\n{lines}",
|
|
144
|
+
"chat.sessionReloadFailed": "Failed to rebuild the session: {error}",
|
|
145
|
+
"chat.bootFailed": "✖ Cannot start the conversation: {error}",
|
|
146
|
+
"chat.bootHint": "Press k to open the configuration center (set the API key / endpoint URL) · Enter to go back",
|
|
147
|
+
"splash.tagline": "The AI collaboration desk in your terminal",
|
|
148
|
+
"splash.pressAnyKey": "Press any key to start…",
|
|
149
|
+
"splash.preparing": "Preparing",
|
|
150
|
+
"msg.image": "[Image: {url}]",
|
|
151
|
+
"msg.file": "[File: {name}]",
|
|
152
|
+
"msg.inlineFile": "inline file",
|
|
153
|
+
"msg.userHeader": "❯ You",
|
|
154
|
+
"msg.aiHeader": "✦ AI",
|
|
155
|
+
"confirm.hint": "← → select · y/n · Enter confirm",
|
|
156
|
+
// ---------- Summaries / errors returned by business modules ----------
|
|
157
|
+
"effort.err.agentMissing": "Agent \"{id}\" does not exist",
|
|
158
|
+
"effort.err.noModel": "Agent \"{id}\" has no model bound — pick one for it first",
|
|
159
|
+
"effort.err.modelMissing": "Model \"{id}\" does not exist — check with /model or /config",
|
|
160
|
+
"effort.err.noPreset": "Model \"{id}\" has no usable reasoning preset (reasoningPreset), so the effort cannot be set",
|
|
161
|
+
"effort.err.unknownLevel": "Preset \"{preset}\" has no level \"{level}\" (available: {options})",
|
|
162
|
+
"effort.followDefault": "follow the model default",
|
|
163
|
+
"effort.quoted": "\"{label}\"",
|
|
164
|
+
"effort.summary": "Reasoning effort set to {label} · written to agent \"{id}\" (model {model})",
|
|
165
|
+
"modelSwitch.err.modelMissing": "Model \"{id}\" does not exist",
|
|
166
|
+
"modelSwitch.err.agentMissing": "Agent \"{id}\" does not exist",
|
|
167
|
+
"modelSwitch.resetHint": " · reasoning effort reset to the model default",
|
|
168
|
+
"modelSwitch.summary": "Switched model: {name} ({id}) · written to agent \"{agent}\"{hint}",
|
|
169
|
+
"agentSwitch.err.noModel": "no model bound",
|
|
170
|
+
"agentSwitch.err.modelMissing": "model {id} does not exist",
|
|
171
|
+
"agentSwitch.err.missingKey": "endpoint \"{endpoint}\" has no API key",
|
|
172
|
+
"agentSwitch.err.agentMissing": "Agent \"{id}\" does not exist",
|
|
173
|
+
"agentSwitch.err.agentNoModel": "Agent \"{name}\" has no model bound — pick one with /config first",
|
|
174
|
+
"agentSwitch.err.modelGone": "The model \"{id}\" bound to agent \"{name}\" is no longer in the config — pick another with /model or /config",
|
|
175
|
+
"agentSwitch.err.noKey": "Endpoint \"{endpoint}\" has no API key yet — configure it with /config before switching",
|
|
176
|
+
"agentSwitch.summary": "Switched main agent: {name} ({id}) · model {model} ({modelId})",
|
|
177
|
+
"handoff.mode.self": "original agent writes it",
|
|
178
|
+
"handoff.mode.summary": "independent summary",
|
|
179
|
+
"handoff.autoDetected": "📋 Context is about to overflow ({used}/{limit} tokens) — handing off ({mode})…",
|
|
180
|
+
"handoff.writing": "📋 Writing the handoff document ({mode})…",
|
|
181
|
+
"handoff.degraded": "⚠️ {requested} produced no document; fell back to {mode}",
|
|
182
|
+
"handoff.path": "📄 Handoff document: {path}",
|
|
183
|
+
"handoff.savedConversation": "✅ Original conversation saved: {name}",
|
|
184
|
+
"handoff.migrated": "🚀 Migration complete, a new session has started ({n} messages)",
|
|
185
|
+
"handoff.migratedHint": "💡 The new assistant reads the handoff document first, then carries on.",
|
|
186
|
+
"handoff.persistFailed": "⚠️ Failed to save the session after migration: {error}",
|
|
187
|
+
// ---------- Entry / exit / time formats ----------
|
|
188
|
+
"app.goodbye": "\nBye 👋\n",
|
|
189
|
+
"app.agentNoModel": "Agent \"{id}\" has no model bound — pick one with /config",
|
|
190
|
+
"app.agentModelGone": "The model \"{model}\" bound to agent \"{id}\" is no longer in the config — pick another with /config",
|
|
191
|
+
"app.noAgents": "No usable agent — create one in the config first (config.json)",
|
|
192
|
+
"app.bootFailed": "✖ Cannot start the conversation: {error}",
|
|
193
|
+
"app.unexpected": "✖ Unexpected error: {error}",
|
|
194
|
+
"chat.persistFailed": "⚠️ Failed to save the conversation: {error}",
|
|
195
|
+
"migrate.skipped": "⏭️ Task migration skipped this time; run /migrate whenever you like. If the context keeps growing past the hard limit, the safety guard will interrupt the conversation.",
|
|
196
|
+
"time.yesterday": "Yesterday {time}",
|
|
197
|
+
"time.pattern.thisYear": "MMM D, HH:mm",
|
|
198
|
+
"time.pattern.older": "MMM D, YYYY HH:mm",
|
|
199
|
+
"time.pattern.full": "MMM D, YYYY HH:mm:ss",
|
|
200
|
+
"time.messageCount": "{n} message(s), {time}",
|
|
201
|
+
// ---------- `ai --help` (printed outside the TUI, hence the locale init in the help branch) ----------
|
|
202
|
+
"cli.help.title": "ai — AI-Zen CLI v{version}",
|
|
203
|
+
"cli.help.usage": "\nUsage:\n ai Start the interactive UI (TUI; stdin/stdout must be a TTY)\n ai <prompt> Ask in pure stdio mode; the result goes to stdout\n cat file | ai \"summarize it\" Pipe content in; the argument is the instruction\n ai hook install Install the shell fallback hook (route unknown commands to the AI)\n ai hook uninstall Uninstall the shell fallback hook",
|
|
204
|
+
"cli.help.options": "\nOptions:\n --save Save this conversation to the archive (off by default)\n --tui [prompt…] Force the interactive UI; the prompt is auto-sent as the first message (used by the shell hook)\n --new Start a new conversation instead of resuming the last one\n -h, --help Show this help\n -v, --version Show the version",
|
|
205
|
+
"cli.help.notes": "\nNotes:\n stdio mode is non-interactive: the result goes to stdout, logs to stderr, exit code 0 on success.",
|
|
206
|
+
// ---------- `ai hook install / uninstall` (outside the TUI, locale initialised in that branch) ----------
|
|
207
|
+
"cli.hookUsage": "Usage: ai hook install|uninstall",
|
|
208
|
+
"cli.hookUnknownAction": "Unknown subcommand: {action}",
|
|
209
|
+
"hook.unsupportedShell": "❌ Unsupported shell (bash / zsh only)",
|
|
210
|
+
"hook.alreadyInstalled": "ℹ️ ai hook is already installed — nothing to do",
|
|
211
|
+
"hook.installed": "✅ ai hook installed into {file}",
|
|
212
|
+
"hook.updated": "✅ ai hook updated to the latest version ({file})",
|
|
213
|
+
"hook.upgraded": " (legacy aiz hook upgraded automatically)",
|
|
214
|
+
"hook.restartHint": " Restart the terminal or run `source {file}` to take effect",
|
|
215
|
+
"hook.forwardHint": " Unknown commands will then be forwarded to the AI",
|
|
216
|
+
"hook.notInstalledNoFile": "ℹ️ ai hook is not installed (the file does not exist)",
|
|
217
|
+
"hook.notInstalled": "ℹ️ ai hook is not installed",
|
|
218
|
+
"hook.uninstalled": "✅ ai hook removed from {file}",
|
|
219
|
+
// ---------- Shared leftovers ----------
|
|
220
|
+
"agent.subAgentTaskParam": "Full task description",
|
|
221
|
+
"app.mkdirFailed": "⚠️ Cannot create the directory: {dir} ({error})",
|
|
222
|
+
"time.pattern.short": "MMM D, YYYY HH:mm:ss",
|
|
223
|
+
};
|
|
224
|
+
//# sourceMappingURL=en.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI 国际化(i18n)骨架。
|
|
3
|
+
*
|
|
4
|
+
* ## 设计取舍
|
|
5
|
+
*
|
|
6
|
+
* 1. **不做运行时语言包加载**:CLI 只有中 / 英两种语言,词典直接编译进产物,
|
|
7
|
+
* `setLocale()` 只是换一个引用,切换语言不需要重读磁盘、也不需要重启。
|
|
8
|
+
* 2. **key 扁平化**(`status.lastTokens` 这种点号命名):找词条靠 `dict[key]` 一次哈希,
|
|
9
|
+
* 没有嵌套遍历;同一 `域.语义` 前缀在词典里天然聚在一起,读起来就是分组。
|
|
10
|
+
* 3. **复数走 `Intl.PluralRules`**:英文需要 `1 tool` / `2 tools`,中文没有复数。
|
|
11
|
+
* 词条可写 `key_one` / `key_other` 变体,`t()` 在 `params.n` 是数字时自动选;
|
|
12
|
+
* 没有变体就用基础 key(中文只写基础 key 即可)。
|
|
13
|
+
* 4. **缺词条返回 key 本身**:不做静默回退到另一种语言 —— 那样英文界面里会突然冒出
|
|
14
|
+
* 中文,比直接显示 `notice.draftSaved` 更难定位。
|
|
15
|
+
*
|
|
16
|
+
* ## 语言怎么定
|
|
17
|
+
*
|
|
18
|
+
* 优先级:`LC_ALL` → `LC_MESSAGES` → `LANG` → `Intl` 系统 locale → **兜底 en**。
|
|
19
|
+
* 环境变量放在前面是因为它是进程直接可见、用户可控的;`Intl` 用来兜住
|
|
20
|
+
* 「系统语言是中文但 LANG 没设」这类平台差异(如 macOS 的 AppleLocale)。
|
|
21
|
+
*/
|
|
22
|
+
/** 支持的语言 */
|
|
23
|
+
export type Locale = "zh" | "en";
|
|
24
|
+
/** 插值参数(`{n}` / `{name}` 这类占位符) */
|
|
25
|
+
export type InterpolateParams = Record<string, string | number>;
|
|
26
|
+
/** 支持的语言清单(`/lang` 的候选集) */
|
|
27
|
+
export declare const SUPPORTED_LOCALES: readonly Locale[];
|
|
28
|
+
/** 无法识别系统语言时的兜底 */
|
|
29
|
+
export declare const DEFAULT_LOCALE: Locale;
|
|
30
|
+
/** 当前语言 */
|
|
31
|
+
export declare function getLocale(): Locale;
|
|
32
|
+
/** 设置当前语言(只改内存,落盘由 `preferences.ts` 负责) */
|
|
33
|
+
export declare function setLocale(locale: Locale): void;
|
|
34
|
+
/**
|
|
35
|
+
* 把任意语言标识归一为支持的 locale。
|
|
36
|
+
*
|
|
37
|
+
* 接受 `zh` / `zh-CN` / `zh_CN.UTF-8` / `en-US` 等写法;`C` / `POSIX` 这类
|
|
38
|
+
* 「没有语言信息」的值返回 `null`,交给下一个候选。
|
|
39
|
+
*/
|
|
40
|
+
export declare function normalizeLocale(value: string | null | undefined): Locale | null;
|
|
41
|
+
/**
|
|
42
|
+
* 识别系统语言:环境变量优先,`Intl` 兜底,最后回落英文。
|
|
43
|
+
*
|
|
44
|
+
* 参数可注入,便于单测不依赖宿主环境。
|
|
45
|
+
*/
|
|
46
|
+
export declare function detectLocale(env?: NodeJS.ProcessEnv, sys?: string | undefined): Locale;
|
|
47
|
+
/**
|
|
48
|
+
* 取词条。
|
|
49
|
+
*
|
|
50
|
+
* - `{name}` 占位符用 params 替换,缺参数时保留原样(便于一眼看出漏传);
|
|
51
|
+
* - 词条不存在时返回 key 本身。
|
|
52
|
+
*
|
|
53
|
+
* 刻意不做复数变体(Intl.PluralRules):本项目的数量词都写成「{n} 个 / (s)」,
|
|
54
|
+
* 一套从未启用的复数机制只会让词条表看起来支持它、实际没有一条在用。
|
|
55
|
+
*/
|
|
56
|
+
export declare function t(key: string, params?: InterpolateParams): string;
|
|
57
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAOH,YAAY;AACZ,MAAM,MAAM,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjC,mCAAmC;AACnC,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAEhE,4BAA4B;AAC5B,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAAiB,CAAC;AAEjE,mBAAmB;AACnB,eAAO,MAAM,cAAc,EAAE,MAAa,CAAC;AAU3C,WAAW;AACX,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,2CAA2C;AAC3C,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAO/E;AAWD;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,GAAG,GAAE,MAAM,GAAG,SAA0B,GACvC,MAAM,CAOR;AAED;;;;;;;;GAQG;AACH,wBAAgB,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAIjE"}
|