acmecode 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/.acmecode/config.json +6 -0
- package/README.md +124 -0
- package/dist/agent/index.js +161 -0
- package/dist/cli/bin/acmecode.js +3 -0
- package/dist/cli/package.json +25 -0
- package/dist/cli/src/index.d.ts +1 -0
- package/dist/cli/src/index.js +53 -0
- package/dist/config/index.js +92 -0
- package/dist/context/index.js +30 -0
- package/dist/core/src/agent/index.d.ts +52 -0
- package/dist/core/src/agent/index.js +476 -0
- package/dist/core/src/config/index.d.ts +83 -0
- package/dist/core/src/config/index.js +318 -0
- package/dist/core/src/context/index.d.ts +1 -0
- package/dist/core/src/context/index.js +30 -0
- package/dist/core/src/llm/provider.d.ts +27 -0
- package/dist/core/src/llm/provider.js +202 -0
- package/dist/core/src/llm/vision.d.ts +7 -0
- package/dist/core/src/llm/vision.js +37 -0
- package/dist/core/src/mcp/index.d.ts +10 -0
- package/dist/core/src/mcp/index.js +84 -0
- package/dist/core/src/prompt/anthropic.d.ts +1 -0
- package/dist/core/src/prompt/anthropic.js +32 -0
- package/dist/core/src/prompt/architect.d.ts +1 -0
- package/dist/core/src/prompt/architect.js +17 -0
- package/dist/core/src/prompt/autopilot.d.ts +1 -0
- package/dist/core/src/prompt/autopilot.js +18 -0
- package/dist/core/src/prompt/beast.d.ts +1 -0
- package/dist/core/src/prompt/beast.js +83 -0
- package/dist/core/src/prompt/gemini.d.ts +1 -0
- package/dist/core/src/prompt/gemini.js +45 -0
- package/dist/core/src/prompt/index.d.ts +18 -0
- package/dist/core/src/prompt/index.js +239 -0
- package/dist/core/src/prompt/zen.d.ts +1 -0
- package/dist/core/src/prompt/zen.js +13 -0
- package/dist/core/src/session/index.d.ts +18 -0
- package/dist/core/src/session/index.js +97 -0
- package/dist/core/src/skills/index.d.ts +6 -0
- package/dist/core/src/skills/index.js +72 -0
- package/dist/core/src/tools/batch.d.ts +2 -0
- package/dist/core/src/tools/batch.js +65 -0
- package/dist/core/src/tools/browser.d.ts +7 -0
- package/dist/core/src/tools/browser.js +86 -0
- package/dist/core/src/tools/edit.d.ts +11 -0
- package/dist/core/src/tools/edit.js +312 -0
- package/dist/core/src/tools/index.d.ts +13 -0
- package/dist/core/src/tools/index.js +980 -0
- package/dist/core/src/tools/lsp-client.d.ts +11 -0
- package/dist/core/src/tools/lsp-client.js +224 -0
- package/dist/index.js +41 -0
- package/dist/llm/provider.js +34 -0
- package/dist/mcp/index.js +84 -0
- package/dist/session/index.js +74 -0
- package/dist/skills/index.js +32 -0
- package/dist/tools/index.js +96 -0
- package/dist/tui/App.js +297 -0
- package/dist/tui/Spinner.js +16 -0
- package/dist/tui/TextInput.js +98 -0
- package/dist/tui/src/App.d.ts +11 -0
- package/dist/tui/src/App.js +1211 -0
- package/dist/tui/src/CatLogo.d.ts +10 -0
- package/dist/tui/src/CatLogo.js +99 -0
- package/dist/tui/src/OptionList.d.ts +15 -0
- package/dist/tui/src/OptionList.js +60 -0
- package/dist/tui/src/Spinner.d.ts +7 -0
- package/dist/tui/src/Spinner.js +18 -0
- package/dist/tui/src/TextInput.d.ts +28 -0
- package/dist/tui/src/TextInput.js +139 -0
- package/dist/tui/src/Tips.d.ts +2 -0
- package/dist/tui/src/Tips.js +62 -0
- package/dist/tui/src/Toast.d.ts +19 -0
- package/dist/tui/src/Toast.js +39 -0
- package/dist/tui/src/TodoItem.d.ts +7 -0
- package/dist/tui/src/TodoItem.js +21 -0
- package/dist/tui/src/i18n.d.ts +172 -0
- package/dist/tui/src/i18n.js +189 -0
- package/dist/tui/src/markdown.d.ts +6 -0
- package/dist/tui/src/markdown.js +356 -0
- package/dist/tui/src/theme.d.ts +31 -0
- package/dist/tui/src/theme.js +239 -0
- package/output.txt +0 -0
- package/package.json +44 -0
- package/packages/cli/package.json +25 -0
- package/packages/cli/src/index.ts +59 -0
- package/packages/cli/tsconfig.json +26 -0
- package/packages/core/package.json +39 -0
- package/packages/core/src/agent/index.ts +588 -0
- package/packages/core/src/config/index.ts +383 -0
- package/packages/core/src/context/index.ts +34 -0
- package/packages/core/src/llm/provider.ts +237 -0
- package/packages/core/src/llm/vision.ts +43 -0
- package/packages/core/src/mcp/index.ts +110 -0
- package/packages/core/src/prompt/anthropic.ts +32 -0
- package/packages/core/src/prompt/architect.ts +17 -0
- package/packages/core/src/prompt/autopilot.ts +18 -0
- package/packages/core/src/prompt/beast.ts +83 -0
- package/packages/core/src/prompt/gemini.ts +45 -0
- package/packages/core/src/prompt/index.ts +267 -0
- package/packages/core/src/prompt/zen.ts +13 -0
- package/packages/core/src/session/index.ts +129 -0
- package/packages/core/src/skills/index.ts +86 -0
- package/packages/core/src/tools/batch.ts +73 -0
- package/packages/core/src/tools/browser.ts +95 -0
- package/packages/core/src/tools/edit.ts +317 -0
- package/packages/core/src/tools/index.ts +1112 -0
- package/packages/core/src/tools/lsp-client.ts +303 -0
- package/packages/core/tsconfig.json +19 -0
- package/packages/tui/package.json +24 -0
- package/packages/tui/src/App.tsx +1702 -0
- package/packages/tui/src/CatLogo.tsx +134 -0
- package/packages/tui/src/OptionList.tsx +95 -0
- package/packages/tui/src/Spinner.tsx +28 -0
- package/packages/tui/src/TextInput.tsx +202 -0
- package/packages/tui/src/Tips.tsx +64 -0
- package/packages/tui/src/Toast.tsx +60 -0
- package/packages/tui/src/TodoItem.tsx +29 -0
- package/packages/tui/src/i18n.ts +203 -0
- package/packages/tui/src/markdown.ts +403 -0
- package/packages/tui/src/theme.ts +287 -0
- package/packages/tui/tsconfig.json +24 -0
- package/tsconfig.json +18 -0
- package/vscode-acmecode/.vscodeignore +11 -0
- package/vscode-acmecode/README.md +57 -0
- package/vscode-acmecode/esbuild.js +46 -0
- package/vscode-acmecode/images/button-dark.svg +5 -0
- package/vscode-acmecode/images/button-light.svg +5 -0
- package/vscode-acmecode/images/icon.png +1 -0
- package/vscode-acmecode/package-lock.json +490 -0
- package/vscode-acmecode/package.json +87 -0
- package/vscode-acmecode/src/extension.ts +128 -0
- package/vscode-acmecode/tsconfig.json +16 -0
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
export type Language = "en" | "zh";
|
|
2
|
+
declare const translations: {
|
|
3
|
+
en: {
|
|
4
|
+
"command.exit": string;
|
|
5
|
+
"command.clear": string;
|
|
6
|
+
"command.model": string;
|
|
7
|
+
"command.skill": string;
|
|
8
|
+
"command.theme": string;
|
|
9
|
+
"command.lang": string;
|
|
10
|
+
"command.reason": string;
|
|
11
|
+
"command.mode": string;
|
|
12
|
+
"command.config": string;
|
|
13
|
+
"command.cancel": string;
|
|
14
|
+
"status.thinking": string;
|
|
15
|
+
"status.tool_complete": string;
|
|
16
|
+
"status.switched_model": string;
|
|
17
|
+
"status.switched_theme": string;
|
|
18
|
+
"status.switched_lang": string;
|
|
19
|
+
"status.skill_activated": string;
|
|
20
|
+
"status.skill_not_found": string;
|
|
21
|
+
"status.theme_not_found": string;
|
|
22
|
+
"status.lang_not_found": string;
|
|
23
|
+
"status.config_saved": string;
|
|
24
|
+
"status.no_skills": string;
|
|
25
|
+
"status.select_provider": string;
|
|
26
|
+
"status.available_providers": string;
|
|
27
|
+
"status.available_models": string;
|
|
28
|
+
"status.available_themes": string;
|
|
29
|
+
"status.available_langs": string;
|
|
30
|
+
"status.available_reasoning": string;
|
|
31
|
+
"status.available_modes": string;
|
|
32
|
+
"status.switched_reasoning": string;
|
|
33
|
+
"status.switched_mode": string;
|
|
34
|
+
"status.context_usage": string;
|
|
35
|
+
"status.reasoning_not_found": string;
|
|
36
|
+
"status.model_hint": string;
|
|
37
|
+
"status.theme_hint": string;
|
|
38
|
+
"status.lang_hint": string;
|
|
39
|
+
"status.reason_hint": string;
|
|
40
|
+
"status.mode_hint": string;
|
|
41
|
+
"status.current": string;
|
|
42
|
+
"ui.input_placeholder": string;
|
|
43
|
+
"ui.tagline": string;
|
|
44
|
+
"ui.tool_call": string;
|
|
45
|
+
"tool.read_file": string;
|
|
46
|
+
"tool.write_file": string;
|
|
47
|
+
"tool.run_command": string;
|
|
48
|
+
"tool.list_dir": string;
|
|
49
|
+
"tool.webfetch": string;
|
|
50
|
+
"tool.websearch": string;
|
|
51
|
+
"tool.codesearch": string;
|
|
52
|
+
"tool.grep_search": string;
|
|
53
|
+
"tool.switch_mode": string;
|
|
54
|
+
"tool.lsp": string;
|
|
55
|
+
"tool.edit_file": string;
|
|
56
|
+
"tool.batch": string;
|
|
57
|
+
"tool.browser_action": string;
|
|
58
|
+
"mode.plan": string;
|
|
59
|
+
"mode.code": string;
|
|
60
|
+
"mode.agent": string;
|
|
61
|
+
"mode.zen": string;
|
|
62
|
+
"status.mode": string;
|
|
63
|
+
"status.plan_file": string;
|
|
64
|
+
"tip.prefix": string;
|
|
65
|
+
"ui.approval_required": string;
|
|
66
|
+
"ui.dangerous_command_warning": string;
|
|
67
|
+
"ui.approve_execution_q": string;
|
|
68
|
+
"ui.approve": string;
|
|
69
|
+
"ui.deny": string;
|
|
70
|
+
"ui.risk_level": string;
|
|
71
|
+
"ui.risk_high": string;
|
|
72
|
+
"ui.risk_medium": string;
|
|
73
|
+
"ui.risk_low": string;
|
|
74
|
+
"ui.local_guard_hit": string;
|
|
75
|
+
"ui.config_title": string;
|
|
76
|
+
"ui.enter_api_key": string;
|
|
77
|
+
"ui.enter_base_url": string;
|
|
78
|
+
"ui.select_protocol": string;
|
|
79
|
+
"ui.enter_custom_name": string;
|
|
80
|
+
"ui.add_custom_provider": string;
|
|
81
|
+
"ui.vision_model": string;
|
|
82
|
+
"ui.disabled": string;
|
|
83
|
+
"ui.output_truncated": string;
|
|
84
|
+
};
|
|
85
|
+
zh: {
|
|
86
|
+
"command.exit": string;
|
|
87
|
+
"command.clear": string;
|
|
88
|
+
"command.model": string;
|
|
89
|
+
"command.skill": string;
|
|
90
|
+
"command.theme": string;
|
|
91
|
+
"command.lang": string;
|
|
92
|
+
"command.reason": string;
|
|
93
|
+
"command.mode": string;
|
|
94
|
+
"command.config": string;
|
|
95
|
+
"command.cancel": string;
|
|
96
|
+
"status.thinking": string;
|
|
97
|
+
"status.tool_complete": string;
|
|
98
|
+
"status.switched_model": string;
|
|
99
|
+
"status.switched_theme": string;
|
|
100
|
+
"status.switched_lang": string;
|
|
101
|
+
"status.skill_activated": string;
|
|
102
|
+
"status.skill_not_found": string;
|
|
103
|
+
"status.theme_not_found": string;
|
|
104
|
+
"status.lang_not_found": string;
|
|
105
|
+
"status.config_saved": string;
|
|
106
|
+
"status.no_skills": string;
|
|
107
|
+
"status.select_provider": string;
|
|
108
|
+
"status.available_providers": string;
|
|
109
|
+
"status.available_models": string;
|
|
110
|
+
"status.available_themes": string;
|
|
111
|
+
"status.available_langs": string;
|
|
112
|
+
"status.available_reasoning": string;
|
|
113
|
+
"status.available_modes": string;
|
|
114
|
+
"status.switched_reasoning": string;
|
|
115
|
+
"status.switched_mode": string;
|
|
116
|
+
"status.context_usage": string;
|
|
117
|
+
"status.reasoning_not_found": string;
|
|
118
|
+
"status.model_hint": string;
|
|
119
|
+
"status.theme_hint": string;
|
|
120
|
+
"status.lang_hint": string;
|
|
121
|
+
"status.reason_hint": string;
|
|
122
|
+
"status.mode_hint": string;
|
|
123
|
+
"status.current": string;
|
|
124
|
+
"ui.input_placeholder": string;
|
|
125
|
+
"ui.tagline": string;
|
|
126
|
+
"ui.tool_call": string;
|
|
127
|
+
"tool.read_file": string;
|
|
128
|
+
"tool.write_file": string;
|
|
129
|
+
"tool.run_command": string;
|
|
130
|
+
"tool.list_dir": string;
|
|
131
|
+
"tool.webfetch": string;
|
|
132
|
+
"tool.websearch": string;
|
|
133
|
+
"tool.codesearch": string;
|
|
134
|
+
"tool.grep_search": string;
|
|
135
|
+
"tool.switch_mode": string;
|
|
136
|
+
"tool.lsp": string;
|
|
137
|
+
"tool.edit_file": string;
|
|
138
|
+
"tool.batch": string;
|
|
139
|
+
"tool.browser_action": string;
|
|
140
|
+
"mode.plan": string;
|
|
141
|
+
"mode.code": string;
|
|
142
|
+
"mode.agent": string;
|
|
143
|
+
"mode.zen": string;
|
|
144
|
+
"status.mode": string;
|
|
145
|
+
"status.plan_file": string;
|
|
146
|
+
"tip.prefix": string;
|
|
147
|
+
"ui.approval_required": string;
|
|
148
|
+
"ui.dangerous_command_warning": string;
|
|
149
|
+
"ui.approve_execution_q": string;
|
|
150
|
+
"ui.approve": string;
|
|
151
|
+
"ui.deny": string;
|
|
152
|
+
"ui.risk_level": string;
|
|
153
|
+
"ui.risk_high": string;
|
|
154
|
+
"ui.risk_medium": string;
|
|
155
|
+
"ui.risk_low": string;
|
|
156
|
+
"ui.local_guard_hit": string;
|
|
157
|
+
"ui.config_title": string;
|
|
158
|
+
"ui.enter_api_key": string;
|
|
159
|
+
"ui.enter_base_url": string;
|
|
160
|
+
"ui.select_protocol": string;
|
|
161
|
+
"ui.enter_custom_name": string;
|
|
162
|
+
"ui.add_custom_provider": string;
|
|
163
|
+
"ui.vision_model": string;
|
|
164
|
+
"ui.disabled": string;
|
|
165
|
+
"ui.output_truncated": string;
|
|
166
|
+
};
|
|
167
|
+
};
|
|
168
|
+
export declare function t(key: keyof typeof translations.en, params?: Record<string, string>): string;
|
|
169
|
+
export declare function setLang(lang: Language): boolean;
|
|
170
|
+
export declare function getLang(): Language;
|
|
171
|
+
export declare function listLangs(): string[];
|
|
172
|
+
export {};
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import { loadLangConfig, saveGlobalLangConfig, } from "@acmecode/core/config/index.js";
|
|
2
|
+
const translations = {
|
|
3
|
+
en: {
|
|
4
|
+
"command.exit": "Quit",
|
|
5
|
+
"command.clear": "Clear",
|
|
6
|
+
"command.model": "Models",
|
|
7
|
+
"command.skill": "Skills",
|
|
8
|
+
"command.theme": "Theme",
|
|
9
|
+
"command.lang": "Language",
|
|
10
|
+
"command.reason": "Reasoning",
|
|
11
|
+
"command.mode": "Mode",
|
|
12
|
+
"command.config": "Config",
|
|
13
|
+
"command.cancel": "Cancel Generation",
|
|
14
|
+
"status.thinking": "Thinking...",
|
|
15
|
+
"status.tool_complete": "Tool Complete",
|
|
16
|
+
"status.switched_model": "Switched to: {name}",
|
|
17
|
+
"status.switched_theme": "Switched to {name} theme",
|
|
18
|
+
"status.switched_lang": "Language switched to: {name}",
|
|
19
|
+
"status.skill_activated": "Activated skill: {name}",
|
|
20
|
+
"status.skill_not_found": "Skill not found: {name}",
|
|
21
|
+
"status.theme_not_found": "Theme not found: {name}",
|
|
22
|
+
"status.lang_not_found": "Language not found: {name}. Available: en, zh",
|
|
23
|
+
"status.config_saved": "Configuration for {name} saved.",
|
|
24
|
+
"status.no_skills": "No skills found",
|
|
25
|
+
"status.select_provider": "🌐 Select Provider:",
|
|
26
|
+
"status.available_providers": "🌐 Available Providers:",
|
|
27
|
+
"status.available_models": "📋 Available models:",
|
|
28
|
+
"status.available_themes": "🎨 Available themes:",
|
|
29
|
+
"status.available_langs": "🌐 Available languages:",
|
|
30
|
+
"status.available_reasoning": "🧠 Reasoning Levels:",
|
|
31
|
+
"status.available_modes": "⚙️ Agent Modes:",
|
|
32
|
+
"status.switched_reasoning": "Reasoning level set to: {name}",
|
|
33
|
+
"status.switched_mode": "Agent mode set to: {name}",
|
|
34
|
+
"status.context_usage": "Context:",
|
|
35
|
+
"status.reasoning_not_found": "Reasoning level not found: {name}",
|
|
36
|
+
"status.model_hint": "Use {cmd} to select.",
|
|
37
|
+
"status.theme_hint": "Use {cmd} to switch.",
|
|
38
|
+
"status.lang_hint": "Use {cmd} to switch.",
|
|
39
|
+
"status.reason_hint": "Use {cmd} to adjust thinking intensity.",
|
|
40
|
+
"status.mode_hint": "Use {cmd} to switch agent workflow.",
|
|
41
|
+
"status.current": "Current",
|
|
42
|
+
"ui.input_placeholder": "Ask AcmeCode (or type /exit)...",
|
|
43
|
+
"ui.tagline": "AI Coding Assistant",
|
|
44
|
+
"ui.tool_call": "Calling Tool",
|
|
45
|
+
"tool.read_file": "Read File",
|
|
46
|
+
"tool.write_file": "Write File",
|
|
47
|
+
"tool.run_command": "Run Command",
|
|
48
|
+
"tool.list_dir": "List Directory",
|
|
49
|
+
"tool.webfetch": "Fetch URL",
|
|
50
|
+
"tool.websearch": "Search Web",
|
|
51
|
+
"tool.codesearch": "Code Search",
|
|
52
|
+
"tool.grep_search": "Global Search",
|
|
53
|
+
"tool.switch_mode": "Switch Mode",
|
|
54
|
+
"tool.lsp": "Analyze Code",
|
|
55
|
+
"tool.edit_file": "Edit File",
|
|
56
|
+
"tool.batch": "Batch Execute",
|
|
57
|
+
"tool.browser_action": "Browser Action",
|
|
58
|
+
"mode.plan": "Plan (Architect)",
|
|
59
|
+
"mode.code": "Code (Execute Tasks)",
|
|
60
|
+
"mode.agent": "Agent (Autopilot)",
|
|
61
|
+
"mode.zen": "Zen (Minimalist)",
|
|
62
|
+
"status.mode": "Mode:",
|
|
63
|
+
"status.plan_file": "Plan:",
|
|
64
|
+
"tip.prefix": "Tip",
|
|
65
|
+
"ui.approval_required": "Approval Required",
|
|
66
|
+
"ui.dangerous_command_warning": "Dangerous Command Detected",
|
|
67
|
+
"ui.approve_execution_q": "Do you want to execute this command?",
|
|
68
|
+
"ui.approve": "Approve (Confirm)",
|
|
69
|
+
"ui.deny": "Deny (Reject)",
|
|
70
|
+
"ui.risk_level": "Risk Level: {level}",
|
|
71
|
+
"ui.risk_high": "HIGH",
|
|
72
|
+
"ui.risk_medium": "MEDIUM",
|
|
73
|
+
"ui.risk_low": "LOW",
|
|
74
|
+
"ui.local_guard_hit": "Local Safety Guard Triggered",
|
|
75
|
+
"ui.config_title": "⚙️ Configuration Wizard",
|
|
76
|
+
"ui.enter_api_key": "Enter API Key for {name}:",
|
|
77
|
+
"ui.enter_base_url": "Enter Base URL for {name} (e.g. {example}):",
|
|
78
|
+
"ui.select_protocol": "Select Interface Protocol for {name}:",
|
|
79
|
+
"ui.enter_custom_name": "Enter Custom Provider Name:",
|
|
80
|
+
"ui.add_custom_provider": "+ Add Custom Provider",
|
|
81
|
+
"ui.vision_model": "Vision Model",
|
|
82
|
+
"ui.disabled": "Disabled",
|
|
83
|
+
"ui.output_truncated": "Previous lines hidden for stability",
|
|
84
|
+
},
|
|
85
|
+
zh: {
|
|
86
|
+
"command.exit": "退出",
|
|
87
|
+
"command.clear": "清空",
|
|
88
|
+
"command.model": "模型",
|
|
89
|
+
"command.skill": "技能",
|
|
90
|
+
"command.theme": "主题",
|
|
91
|
+
"command.lang": "语言",
|
|
92
|
+
"command.reason": "推理",
|
|
93
|
+
"command.mode": "模式",
|
|
94
|
+
"command.config": "配置",
|
|
95
|
+
"command.cancel": "取消生成",
|
|
96
|
+
"status.thinking": "正在思考...",
|
|
97
|
+
"status.tool_complete": "工具完成",
|
|
98
|
+
"status.switched_model": "已切换到:{name}",
|
|
99
|
+
"status.switched_theme": "已切换到 {name} 主题",
|
|
100
|
+
"status.switched_lang": "语言设定已切换为:{name}",
|
|
101
|
+
"status.skill_activated": "已激活技能:{name}",
|
|
102
|
+
"status.skill_not_found": "未找到技能:{name}",
|
|
103
|
+
"status.theme_not_found": "未找到主题:{name}",
|
|
104
|
+
"status.lang_not_found": "未找到语言:{name}。可选:en, zh",
|
|
105
|
+
"status.config_saved": "{name} 的配置已保存。",
|
|
106
|
+
"status.no_skills": "未找到技能",
|
|
107
|
+
"status.select_provider": "🌐 选择服务商:",
|
|
108
|
+
"status.available_providers": "🌐 可用服务商:",
|
|
109
|
+
"status.available_models": "📋 可用模型:",
|
|
110
|
+
"status.available_themes": "🎨 可用主题:",
|
|
111
|
+
"status.available_langs": "🌐 可用语言:",
|
|
112
|
+
"status.available_reasoning": "🧠 推理级别:",
|
|
113
|
+
"status.available_modes": "⚙️ 工作模式:",
|
|
114
|
+
"status.switched_reasoning": "推理级别已设定为:{name}",
|
|
115
|
+
"status.switched_mode": "工作模式已设定为:{name}",
|
|
116
|
+
"status.context_usage": "上下文:",
|
|
117
|
+
"status.reasoning_not_found": "未找到推理级别:{name}",
|
|
118
|
+
"status.model_hint": "使用 {cmd} 进行选择。",
|
|
119
|
+
"status.theme_hint": "使用 {cmd} 进行切换。",
|
|
120
|
+
"status.lang_hint": "使用 {cmd} 进行切换。",
|
|
121
|
+
"status.reason_hint": "使用 {cmd} 调整思考强度。",
|
|
122
|
+
"status.mode_hint": "使用 {cmd} 切换工作流模式。",
|
|
123
|
+
"status.current": "当前",
|
|
124
|
+
"ui.input_placeholder": "问问 AcmeCode (输入 /exit 退出)...",
|
|
125
|
+
"ui.tagline": "AI 编码助手",
|
|
126
|
+
"ui.tool_call": "调用工具",
|
|
127
|
+
"tool.read_file": "读取文件",
|
|
128
|
+
"tool.write_file": "写入文件",
|
|
129
|
+
"tool.run_command": "执行命令",
|
|
130
|
+
"tool.list_dir": "列出目录",
|
|
131
|
+
"tool.webfetch": "获取网页",
|
|
132
|
+
"tool.websearch": "网页搜索",
|
|
133
|
+
"tool.codesearch": "代码搜索",
|
|
134
|
+
"tool.grep_search": "全局内容检索",
|
|
135
|
+
"tool.switch_mode": "切换模式",
|
|
136
|
+
"tool.lsp": "代码解析",
|
|
137
|
+
"tool.edit_file": "编辑文件",
|
|
138
|
+
"tool.batch": "批量执行",
|
|
139
|
+
"tool.browser_action": "浏览器操作",
|
|
140
|
+
"mode.plan": "Plan (方案建筑师)",
|
|
141
|
+
"mode.code": "Code (执行模式)",
|
|
142
|
+
"mode.agent": "Agent (无人驾驶)",
|
|
143
|
+
"mode.zen": "Zen (禅模式)",
|
|
144
|
+
"status.mode": "模式:",
|
|
145
|
+
"status.plan_file": "方案:",
|
|
146
|
+
"tip.prefix": "提示",
|
|
147
|
+
"ui.approval_required": "需要授权",
|
|
148
|
+
"ui.dangerous_command_warning": "检测到危险命令",
|
|
149
|
+
"ui.approve_execution_q": "是否确认执行该命令?",
|
|
150
|
+
"ui.approve": "允许执行",
|
|
151
|
+
"ui.deny": "拒绝执行",
|
|
152
|
+
"ui.risk_level": "风险等级:{level}",
|
|
153
|
+
"ui.risk_high": "高",
|
|
154
|
+
"ui.risk_medium": "中",
|
|
155
|
+
"ui.risk_low": "低",
|
|
156
|
+
"ui.local_guard_hit": "本地安全守卫触发",
|
|
157
|
+
"ui.config_title": "⚙️ 配置向导",
|
|
158
|
+
"ui.enter_api_key": "请输入 {name} 的 API Key:",
|
|
159
|
+
"ui.enter_base_url": "请输入 {name} 的 Base URL (例如 {example}):",
|
|
160
|
+
"ui.select_protocol": "请选择 {name} 的接口类型:",
|
|
161
|
+
"ui.enter_custom_name": "请输入自定义供应商名称:",
|
|
162
|
+
"ui.add_custom_provider": "+ 添加自定义供应商",
|
|
163
|
+
"ui.vision_model": "视觉模型",
|
|
164
|
+
"ui.disabled": "未开启",
|
|
165
|
+
"ui.output_truncated": "此处省略部分内容以保持输出稳定",
|
|
166
|
+
},
|
|
167
|
+
};
|
|
168
|
+
let currentLang = loadLangConfig() || "en";
|
|
169
|
+
export function t(key, params = {}) {
|
|
170
|
+
let text = translations[currentLang][key] || translations.en[key] || key;
|
|
171
|
+
for (const [k, v] of Object.entries(params)) {
|
|
172
|
+
text = text.replace(`{${k}}`, v);
|
|
173
|
+
}
|
|
174
|
+
return text;
|
|
175
|
+
}
|
|
176
|
+
export function setLang(lang) {
|
|
177
|
+
if (translations[lang]) {
|
|
178
|
+
currentLang = lang;
|
|
179
|
+
saveGlobalLangConfig(lang);
|
|
180
|
+
return true;
|
|
181
|
+
}
|
|
182
|
+
return false;
|
|
183
|
+
}
|
|
184
|
+
export function getLang() {
|
|
185
|
+
return currentLang;
|
|
186
|
+
}
|
|
187
|
+
export function listLangs() {
|
|
188
|
+
return Object.keys(translations);
|
|
189
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lightweight terminal markdown renderer.
|
|
3
|
+
* Converts common markdown syntax to ANSI-styled text for terminal display.
|
|
4
|
+
* Handles: headers, bold, italic, inline code, code blocks, lists, checkboxes, horizontal rules.
|
|
5
|
+
*/
|
|
6
|
+
export declare function renderMarkdown(input: string): string;
|