@vibeapi/api-helper 0.0.15 → 0.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/__tests__/api-validator.test.d.ts +1 -0
  2. package/dist/__tests__/api-validator.test.js +1 -0
  3. package/dist/__tests__/api-validator.test.js.map +1 -0
  4. package/dist/__tests__/config.test.d.ts +1 -0
  5. package/dist/__tests__/config.test.js +1 -0
  6. package/dist/__tests__/config.test.js.map +1 -0
  7. package/dist/__tests__/model-registry.test.d.ts +1 -0
  8. package/dist/__tests__/model-registry.test.js +1 -0
  9. package/dist/__tests__/model-registry.test.js.map +1 -0
  10. package/dist/cli.js +1 -17
  11. package/dist/commands/auth.js +1 -119
  12. package/dist/commands/auth.js.map +1 -1
  13. package/dist/commands/config.js +1 -130
  14. package/dist/commands/doctor.js +1 -105
  15. package/dist/commands/doctor.js.map +1 -1
  16. package/dist/commands/index.d.ts +1 -0
  17. package/dist/commands/index.js +1 -5
  18. package/dist/commands/index.js.map +1 -1
  19. package/dist/commands/lang.js +1 -28
  20. package/dist/commands/status.d.ts +1 -0
  21. package/dist/commands/status.js +1 -0
  22. package/dist/commands/status.js.map +1 -0
  23. package/dist/index.js +1 -10
  24. package/dist/lib/api-validator.js +1 -79
  25. package/dist/lib/claude-code-manager.d.ts +1 -0
  26. package/dist/lib/claude-code-manager.js +1 -269
  27. package/dist/lib/claude-code-manager.js.map +1 -1
  28. package/dist/lib/command.js +1 -175
  29. package/dist/lib/command.js.map +1 -1
  30. package/dist/lib/config.d.ts +4 -7
  31. package/dist/lib/config.js +1 -233
  32. package/dist/lib/config.js.map +1 -1
  33. package/dist/lib/i18n.js +1 -149
  34. package/dist/lib/i18n.js.map +1 -1
  35. package/dist/lib/model-registry.d.ts +20 -0
  36. package/dist/lib/model-registry.js +1 -0
  37. package/dist/lib/model-registry.js.map +1 -0
  38. package/dist/lib/opencode-manager.js +1 -134
  39. package/dist/lib/settings-template.d.ts +6 -0
  40. package/dist/lib/settings-template.js +1 -0
  41. package/dist/lib/settings-template.js.map +1 -0
  42. package/dist/lib/tool-manager.js +1 -280
  43. package/dist/lib/tool-manager.js.map +1 -1
  44. package/dist/lib/wizard.d.ts +5 -3
  45. package/dist/lib/wizard.js +1 -625
  46. package/dist/lib/wizard.js.map +1 -1
  47. package/dist/locales/en_US.json +34 -9
  48. package/dist/locales/zh_CN.json +33 -8
  49. package/dist/models.json +26 -0
  50. package/dist/settings-template.json +12 -0
  51. package/dist/utils/logger.js +1 -202
  52. package/dist/utils/string-width.js +1 -131
  53. package/models.json +26 -0
  54. package/package.json +77 -73
  55. package/settings-template.json +12 -0
@@ -1,79 +1 @@
1
- /**
2
- * API Key 和网络验证模块
3
- * 通过调用模型列表 API 来验证 API Key 的有效性和网络连通性
4
- */
5
- import { logger } from '../utils/logger.js';
6
- import { configManager } from './config.js';
7
- /**
8
- * 验证 API Key 的有效性和网络连通性
9
- *
10
- * @param apiKey - API Key
11
- * @returns 验证结果,包含 valid 状态和可选的错误信息
12
- */
13
- export async function validateApiKey(apiKey) {
14
- const url = `${configManager.getBaseUrl()}/v1/models`;
15
- try {
16
- const controller = new AbortController();
17
- const timeoutId = setTimeout(() => controller.abort(), 30000); // 30 秒超时
18
- const response = await fetch(url, {
19
- method: 'GET',
20
- headers: {
21
- 'Authorization': `Bearer ${apiKey}`,
22
- 'Content-Type': 'application/json'
23
- },
24
- signal: controller.signal
25
- });
26
- clearTimeout(timeoutId);
27
- if (response.status === 401) {
28
- return {
29
- valid: false,
30
- error: 'invalid_api_key',
31
- message: 'API Key is invalid or expired'
32
- };
33
- }
34
- if (response.ok) {
35
- // 尝试解析响应以确保是有效的 JSON
36
- try {
37
- const data = await response.json();
38
- if (data && data.object === 'list') {
39
- return { valid: true };
40
- }
41
- }
42
- catch {
43
- // JSON 解析失败但响应成功,仍然视为有效
44
- return { valid: true };
45
- }
46
- return { valid: true };
47
- }
48
- // 其他 HTTP 错误
49
- return {
50
- valid: false,
51
- error: 'unknown_error',
52
- message: `HTTP ${response.status}: ${response.statusText}`
53
- };
54
- }
55
- catch (error) {
56
- // 网络错误或超时
57
- logger.logError('validateApiKey', error);
58
- if (error instanceof Error) {
59
- if (error.name === 'AbortError') {
60
- return {
61
- valid: false,
62
- error: 'network_error',
63
- message: 'Request timeout'
64
- };
65
- }
66
- return {
67
- valid: false,
68
- error: 'network_error',
69
- message: error.message
70
- };
71
- }
72
- return {
73
- valid: false,
74
- error: 'network_error',
75
- message: 'Network connection failed'
76
- };
77
- }
78
- }
79
- //# sourceMappingURL=api-validator.js.map
1
+ import{logger as r}from"../utils/logger.js";import{configManager as e}from"./config.js";export async function validateApiKey(t){const o=`${e.getBaseUrl()}/v1/models`;try{const r=new AbortController,e=setTimeout(()=>r.abort(),3e4),a=await fetch(o,{method:"GET",headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json"},signal:r.signal});if(clearTimeout(e),401===a.status)return{valid:!1,error:"invalid_api_key",message:"API Key is invalid or expired"};if(a.ok){try{const r=await a.json();if(r&&"list"===r.object)return{valid:!0}}catch{return{valid:!0}}return{valid:!0}}return{valid:!1,error:"unknown_error",message:`HTTP ${a.status}: ${a.statusText}`}}catch(e){return r.logError("validateApiKey",e),e instanceof Error?"AbortError"===e.name?{valid:!1,error:"network_error",message:"Request timeout"}:{valid:!1,error:"network_error",message:e.message}:{valid:!1,error:"network_error",message:"Network connection failed"}}}
@@ -39,6 +39,7 @@ export declare class ClaudeCodeManager {
39
39
  * 确保配置目录存在
40
40
  */
41
41
  private ensureConfigDir;
42
+ private atomicWrite;
42
43
  /**
43
44
  * 读取 settings.json 配置
44
45
  */
@@ -1,269 +1 @@
1
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
2
- import { join, dirname } from 'path';
3
- import { homedir } from 'os';
4
- import { logger } from '../utils/logger.js';
5
- import { configManager, DEFAULT_MODELS } from './config.js';
6
- export class ClaudeCodeManager {
7
- static instance;
8
- settingsPath;
9
- mcpConfigPath;
10
- constructor() {
11
- // Claude Code 配置文件路径(跨平台支持)
12
- // - macOS/Linux: ~/.claude/settings.json 和 ~/.claude.json
13
- // - Windows: %USERPROFILE%\.claude\settings.json 和 %USERPROFILE%\.claude.json
14
- // (例如: C:\Users\username\.claude\settings.json)
15
- this.settingsPath = join(homedir(), '.claude', 'settings.json');
16
- this.mcpConfigPath = join(homedir(), '.claude.json');
17
- }
18
- static getInstance() {
19
- if (!ClaudeCodeManager.instance) {
20
- ClaudeCodeManager.instance = new ClaudeCodeManager();
21
- }
22
- return ClaudeCodeManager.instance;
23
- }
24
- /**
25
- * 确保配置目录存在
26
- */
27
- ensureConfigDir(filePath) {
28
- const dir = dirname(filePath);
29
- if (!existsSync(dir)) {
30
- mkdirSync(dir, { recursive: true });
31
- }
32
- }
33
- /**
34
- * 读取 settings.json 配置
35
- */
36
- getSettings() {
37
- try {
38
- if (existsSync(this.settingsPath)) {
39
- const content = readFileSync(this.settingsPath, 'utf-8');
40
- return JSON.parse(content);
41
- }
42
- }
43
- catch (error) {
44
- console.warn('Failed to read Claude Code settings:', error);
45
- logger.logError('ClaudeCodeManager.getSettings', error);
46
- }
47
- return {};
48
- }
49
- /**
50
- * 保存 settings.json 配置
51
- */
52
- saveSettings(config) {
53
- try {
54
- this.ensureConfigDir(this.settingsPath);
55
- writeFileSync(this.settingsPath, JSON.stringify(config, null, 2), 'utf-8');
56
- }
57
- catch (error) {
58
- throw new Error(`Failed to save Claude Code settings: ${error}`);
59
- }
60
- }
61
- /**
62
- * 读取 MCP 配置 (~/.claude.json)
63
- */
64
- getMCPConfig() {
65
- try {
66
- if (existsSync(this.mcpConfigPath)) {
67
- const content = readFileSync(this.mcpConfigPath, 'utf-8');
68
- return JSON.parse(content);
69
- }
70
- }
71
- catch (error) {
72
- console.warn('Failed to read Claude Code MCP config:', error);
73
- logger.logError('ClaudeCodeManager.getMCPConfig', error);
74
- }
75
- return {};
76
- }
77
- /**
78
- * 保存 MCP 配置 (~/.claude.json)
79
- */
80
- saveMCPConfig(config) {
81
- try {
82
- this.ensureConfigDir(this.mcpConfigPath);
83
- writeFileSync(this.mcpConfigPath, JSON.stringify(config, null, 2), 'utf-8');
84
- }
85
- catch (error) {
86
- throw new Error(`Failed to save Claude Code MCP config: ${error}`);
87
- }
88
- }
89
- /**
90
- * 加载私有 NewAPI 配置到 Claude Code
91
- */
92
- loadPrivateConfig(apiKey, models) {
93
- // 1. 确保 .claude.json 中有 hasCompletedOnboarding: true
94
- this.ensureOnboardingCompleted();
95
- // 2. 清理 shell rc 文件中的 ANTHROPIC_API_KEY 和 ANTHROPIC_BASE_URL
96
- this.cleanupShellEnvVars();
97
- // 3. 加载配置到 settings.json
98
- const currentSettings = this.getSettings();
99
- // 从 env 中移除 ANTHROPIC_API_KEY(如果存在),统一使用 ANTHROPIC_AUTH_TOKEN
100
- const currentEnv = currentSettings.env || {};
101
- const { ANTHROPIC_API_KEY: _, ...cleanedEnv } = currentEnv;
102
- const privateConfig = {
103
- ...currentSettings,
104
- env: {
105
- ...cleanedEnv,
106
- ANTHROPIC_AUTH_TOKEN: apiKey,
107
- ANTHROPIC_BASE_URL: configManager.getBaseUrl(),
108
- ANTHROPIC_DEFAULT_HAIKU_MODEL: models.haiku || DEFAULT_MODELS.haiku,
109
- ANTHROPIC_DEFAULT_SONNET_MODEL: models.sonnet || DEFAULT_MODELS.sonnet,
110
- ANTHROPIC_DEFAULT_OPUS_MODEL: models.opus || DEFAULT_MODELS.opus,
111
- ANTHROPIC_MODEL: models.opus || DEFAULT_MODELS.opus,
112
- ANTHROPIC_REASONING_MODEL: models.reasoning || DEFAULT_MODELS.reasoning,
113
- API_TIMEOUT_MS: '3000000',
114
- CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: 1
115
- }
116
- };
117
- this.saveSettings(privateConfig);
118
- }
119
- /**
120
- * 确保 .claude.json 中有 hasCompletedOnboarding: true
121
- */
122
- ensureOnboardingCompleted() {
123
- try {
124
- const mcpConfig = this.getMCPConfig();
125
- if (!mcpConfig.hasCompletedOnboarding) {
126
- this.saveMCPConfig({ ...mcpConfig, hasCompletedOnboarding: true });
127
- }
128
- }
129
- catch (error) {
130
- console.warn('Failed to ensure onboarding completed:', error);
131
- logger.logError('ClaudeCodeManager.ensureOnboardingCompleted', error);
132
- }
133
- }
134
- /**
135
- * 清理 shell rc 文件中的 ANTHROPIC_API_KEY 和 ANTHROPIC_BASE_URL 环境变量
136
- */
137
- cleanupShellEnvVars() {
138
- // 检查当前环境变量是否有这些值
139
- if (!process.env.ANTHROPIC_API_KEY && !process.env.ANTHROPIC_BASE_URL) {
140
- return;
141
- }
142
- try {
143
- // 根据操作系统和 shell 类型确定 rc 文件路径
144
- const rcFile = this.getShellRcFilePath();
145
- if (!rcFile || !existsSync(rcFile)) {
146
- return;
147
- }
148
- let content = readFileSync(rcFile, 'utf-8');
149
- const originalContent = content;
150
- // 移除 ANTHROPIC_BASE_URL 和 ANTHROPIC_API_KEY 相关行
151
- const linesToRemove = [
152
- /^\s*export\s+ANTHROPIC_BASE_URL=.*$/gm,
153
- /^\s*export\s+ANTHROPIC_API_KEY=.*$/gm,
154
- /^\s*#\s*Claude Code environment variables\s*$/gm
155
- ];
156
- for (const pattern of linesToRemove) {
157
- content = content.replace(pattern, '');
158
- }
159
- // 如果内容有变化,写回文件
160
- if (content !== originalContent) {
161
- writeFileSync(rcFile, content, 'utf-8');
162
- console.log(`Cleaned up ANTHROPIC_* environment variables from ${rcFile}`);
163
- setTimeout(() => { }, 1000);
164
- }
165
- }
166
- catch (error) {
167
- console.warn('Failed to cleanup shell environment variables:', error);
168
- logger.logError('ClaudeCodeManager.cleanupShellEnvVars', error);
169
- setTimeout(() => { }, 1000);
170
- }
171
- }
172
- /**
173
- * 获取当前 shell 的 rc 文件路径
174
- */
175
- getShellRcFilePath() {
176
- const home = homedir();
177
- // Windows 不使用 rc 文件
178
- if (process.platform === 'win32') {
179
- return null;
180
- }
181
- // 获取当前 shell
182
- const shell = process.env.SHELL || '';
183
- const shellName = shell.split('/').pop() || '';
184
- switch (shellName) {
185
- case 'bash':
186
- return join(home, '.bashrc');
187
- case 'zsh':
188
- return join(home, '.zshrc');
189
- case 'fish':
190
- return join(home, '.config', 'fish', 'config.fish');
191
- default:
192
- return join(home, '.profile');
193
- }
194
- }
195
- /**
196
- * 卸载私有配置从 Claude Code
197
- */
198
- unloadPrivateConfig() {
199
- const currentSettings = this.getSettings();
200
- if (!currentSettings.env) {
201
- return;
202
- }
203
- // 删除私有配置相关的环境变量
204
- const { ANTHROPIC_AUTH_TOKEN: _1, ANTHROPIC_BASE_URL: _2, ANTHROPIC_DEFAULT_HAIKU_MODEL: _3, ANTHROPIC_DEFAULT_SONNET_MODEL: _4, ANTHROPIC_DEFAULT_OPUS_MODEL: _5, ANTHROPIC_MODEL: _6, ANTHROPIC_REASONING_MODEL: _7, API_TIMEOUT_MS: _8, CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: _9, ...otherEnv } = currentSettings.env;
205
- const newSettings = {
206
- ...currentSettings,
207
- env: otherEnv
208
- };
209
- // 如果 env 为空对象,则删除 env 字段
210
- if (newSettings.env && Object.keys(newSettings.env).length === 0) {
211
- delete newSettings.env;
212
- }
213
- this.saveSettings(newSettings);
214
- }
215
- /**
216
- * 检测当前 Claude Code 配置的 API Key
217
- * @returns 包含 API Key 的对象
218
- */
219
- detectCurrentConfig() {
220
- try {
221
- const settings = this.getSettings();
222
- if (!settings.env || !settings.env.ANTHROPIC_AUTH_TOKEN) {
223
- return { apiKey: null };
224
- }
225
- return { apiKey: settings.env.ANTHROPIC_AUTH_TOKEN };
226
- }
227
- catch {
228
- return { apiKey: null };
229
- }
230
- }
231
- /**
232
- * Get experimental feature value
233
- */
234
- getExperimentalFeature(key) {
235
- const settings = this.getSettings();
236
- return settings.env?.[key];
237
- }
238
- /**
239
- * Set experimental feature (idempotent)
240
- */
241
- setExperimentalFeature(key, value) {
242
- const currentSettings = this.getSettings();
243
- const currentEnv = currentSettings.env || {};
244
- const newSettings = {
245
- ...currentSettings,
246
- env: {
247
- ...currentEnv,
248
- [key]: value
249
- }
250
- };
251
- this.saveSettings(newSettings);
252
- }
253
- /**
254
- * Remove experimental feature
255
- */
256
- removeExperimentalFeature(key) {
257
- const currentSettings = this.getSettings();
258
- if (!currentSettings.env)
259
- return;
260
- const { [key]: _, ...remainingEnv } = currentSettings.env;
261
- const newSettings = {
262
- ...currentSettings,
263
- env: remainingEnv
264
- };
265
- this.saveSettings(newSettings);
266
- }
267
- }
268
- export const claudeCodeManager = ClaudeCodeManager.getInstance();
269
- //# sourceMappingURL=claude-code-manager.js.map
1
+ import{existsSync as e,mkdirSync as t,readFileSync as n,writeFileSync as s,renameSync as r,unlinkSync as a}from"fs";import{join as i,dirname as o}from"path";import{homedir as g}from"os";import{logger as c}from"../utils/logger.js";import{configManager as l,DEFAULT_MODELS as C}from"./config.js";import{loadSettingsTemplate as h}from"./settings-template.js";export class ClaudeCodeManager{static instance;settingsPath;mcpConfigPath;constructor(){this.settingsPath=i(g(),".claude","settings.json"),this.mcpConfigPath=i(g(),".claude.json")}static getInstance(){return ClaudeCodeManager.instance||(ClaudeCodeManager.instance=new ClaudeCodeManager),ClaudeCodeManager.instance}ensureConfigDir(n){const s=o(n);e(s)||t(s,{recursive:!0})}atomicWrite(t,n){const i=`${t}.tmp`;try{s(i,n,"utf-8"),r(i,t)}catch(t){if(e(i))try{a(i)}catch{}throw t}}getSettings(){try{if(e(this.settingsPath)){const e=n(this.settingsPath,"utf-8");return JSON.parse(e)}}catch(e){c.warn("Failed to read Claude Code settings:",e),c.logError("ClaudeCodeManager.getSettings",e)}return{}}saveSettings(e){try{this.ensureConfigDir(this.settingsPath),this.atomicWrite(this.settingsPath,JSON.stringify(e,null,2))}catch(e){throw new Error(`Failed to save Claude Code settings: ${e}`)}}getMCPConfig(){try{if(e(this.mcpConfigPath)){const e=n(this.mcpConfigPath,"utf-8");return JSON.parse(e)}}catch(e){c.warn("Failed to read Claude Code MCP config:",e),c.logError("ClaudeCodeManager.getMCPConfig",e)}return{}}saveMCPConfig(e){try{this.ensureConfigDir(this.mcpConfigPath),this.atomicWrite(this.mcpConfigPath,JSON.stringify(e,null,2))}catch(e){throw new Error(`Failed to save Claude Code MCP config: ${e}`)}}loadPrivateConfig(e,t){this.ensureOnboardingCompleted(),this.cleanupShellEnvVars();const n=h(),s=n.env||{},{env:r,...a}=n,i=this.getSettings(),o=i.env||{},{ANTHROPIC_API_KEY:g,...c}=o,u={...i,...a,env:{...c,...s,ANTHROPIC_AUTH_TOKEN:e,ANTHROPIC_BASE_URL:l.getBaseUrl(),ANTHROPIC_DEFAULT_HAIKU_MODEL:t.haiku||C.haiku,ANTHROPIC_DEFAULT_SONNET_MODEL:t.sonnet||C.sonnet,ANTHROPIC_DEFAULT_OPUS_MODEL:t.opus||C.opus,ANTHROPIC_MODEL:t.opus||C.opus,ANTHROPIC_REASONING_MODEL:t.reasoning||C.reasoning}};this.saveSettings(u)}ensureOnboardingCompleted(){try{const e=this.getMCPConfig();e.hasCompletedOnboarding||this.saveMCPConfig({...e,hasCompletedOnboarding:!0})}catch(e){c.warn("Failed to ensure onboarding completed:",e),c.logError("ClaudeCodeManager.ensureOnboardingCompleted",e)}}cleanupShellEnvVars(){if("win32"!==process.platform&&(process.env.ANTHROPIC_API_KEY||process.env.ANTHROPIC_BASE_URL))try{const t=this.getShellRcFilePath();if(!t||!e(t))return;let r=n(t,"utf-8");const a=r,i=[/^\s*export\s+ANTHROPIC_BASE_URL=.*$/gm,/^\s*export\s+ANTHROPIC_API_KEY=.*$/gm,/^\s*#\s*Claude Code environment variables\s*$/gm];for(const e of i)r=r.replace(e,"");r!==a&&(s(t,r,"utf-8"),console.log(`Cleaned up ANTHROPIC_* environment variables from ${t}`))}catch(e){c.warn("Failed to cleanup shell environment variables:",e),c.logError("ClaudeCodeManager.cleanupShellEnvVars",e)}}getShellRcFilePath(){const e=g();if("win32"===process.platform)return null;switch((process.env.SHELL||"").split("/").pop()||""){case"bash":return i(e,".bashrc");case"zsh":return i(e,".zshrc");case"fish":return i(e,".config","fish","config.fish");default:return i(e,".profile")}}unloadPrivateConfig(){const e=this.getSettings();if(!e.env)return;const{ANTHROPIC_AUTH_TOKEN:t,ANTHROPIC_BASE_URL:n,ANTHROPIC_DEFAULT_HAIKU_MODEL:s,ANTHROPIC_DEFAULT_SONNET_MODEL:r,ANTHROPIC_DEFAULT_OPUS_MODEL:a,ANTHROPIC_MODEL:i,ANTHROPIC_REASONING_MODEL:o,API_TIMEOUT_MS:g,CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC:c,...l}=e.env,C={...e,env:l};C.env&&0===Object.keys(C.env).length&&delete C.env,this.saveSettings(C)}detectCurrentConfig(){try{const e=this.getSettings();return e.env&&e.env.ANTHROPIC_AUTH_TOKEN?{apiKey:e.env.ANTHROPIC_AUTH_TOKEN}:{apiKey:null}}catch{return{apiKey:null}}}getExperimentalFeature(e){const t=this.getSettings();return t.env?.[e]}setExperimentalFeature(e,t){const n=this.getSettings(),s=n.env||{},r={...n,env:{...s,[e]:t}};this.saveSettings(r)}removeExperimentalFeature(e){const t=this.getSettings();if(!t.env)return;const{[e]:n,...s}=t.env,r={...t,env:s};this.saveSettings(r)}}export const claudeCodeManager=ClaudeCodeManager.getInstance();
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code-manager.js","sourceRoot":"","sources":["../../src/lib/claude-code-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-code-manager.js","sourceRoot":"","sources":["../../src/lib/claude-code-manager.ts"],"names":[],"mappings":"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"}
@@ -1,175 +1 @@
1
- import { Command as Commander } from 'commander';
2
- import { i18n } from './i18n.js';
3
- import { configManager } from './config.js';
4
- import { wizard } from './wizard.js';
5
- import { langCommand, authCommand, doctorCommand, configCommand } from '../commands/index.js';
6
- import chalk from 'chalk';
7
- import { readFileSync } from 'fs';
8
- import { join, dirname } from 'path';
9
- import { fileURLToPath } from 'url';
10
- export class Command {
11
- program;
12
- constructor() {
13
- const lang = configManager.getLang();
14
- i18n.loadFromConfig(lang);
15
- this.program = new Commander();
16
- this.setupProgram();
17
- }
18
- getVersion() {
19
- try {
20
- const __filename = fileURLToPath(import.meta.url);
21
- const __dirname = dirname(__filename);
22
- const packagePath = join(__dirname, '../../package.json');
23
- const packageJson = JSON.parse(readFileSync(packagePath, 'utf-8'));
24
- return packageJson.version;
25
- }
26
- catch {
27
- return '1.0.0';
28
- }
29
- }
30
- setupProgram() {
31
- this.program
32
- .name('chelper')
33
- .description(i18n.t('cli.title'))
34
- .version(this.getVersion(), '-v, --version', i18n.t('commands.version'))
35
- .helpOption('-h, --help', i18n.t('commands.help'))
36
- .option('--base <url>', 'Custom API base URL');
37
- // Init command - interactive wizard
38
- this.program
39
- .command('init')
40
- .description(i18n.t('commands.init'))
41
- .action(async () => {
42
- await this.handleInitCommand();
43
- });
44
- // Lang command - language management
45
- const langCmd = this.program
46
- .command('lang')
47
- .description(i18n.t('commands.lang'));
48
- langCmd
49
- .command('show')
50
- .description(i18n.t('lang.show_usage'))
51
- .action(async () => {
52
- await langCommand(['show']);
53
- });
54
- langCmd
55
- .command('set <locale>')
56
- .description(i18n.t('lang.set_usage'))
57
- .action(async (locale) => {
58
- await langCommand(['set', locale]);
59
- });
60
- // Auth command - API key management
61
- const authCmd = this.program
62
- .command('auth')
63
- .description(i18n.t('commands.auth'));
64
- authCmd
65
- .argument('[token]', 'API token')
66
- .action(async (token) => {
67
- const args = [];
68
- if (token)
69
- args.push(token);
70
- await authCommand(args);
71
- });
72
- authCmd
73
- .command('revoke')
74
- .description('Revoke saved API key')
75
- .action(async () => {
76
- await authCommand(['revoke']);
77
- });
78
- authCmd
79
- .command('reload <tool>')
80
- .description('Reload plan configuration to the specified tool (e.g., claude)')
81
- .action(async (tool) => {
82
- await authCommand(['reload', tool]);
83
- });
84
- // Doctor command - health check
85
- this.program
86
- .command('doctor')
87
- .description(i18n.t('commands.doctor'))
88
- .action(async () => {
89
- await doctorCommand();
90
- });
91
- // Enter command - interactive menu
92
- const enterCmd = this.program
93
- .command('enter [option]')
94
- .description(i18n.t('commands.enter'));
95
- enterCmd
96
- .action(async (option) => {
97
- if (!option) {
98
- await wizard.showMainMenu();
99
- return;
100
- }
101
- switch (option) {
102
- case 'lang':
103
- case 'language':
104
- await wizard.configLanguage();
105
- break;
106
- case 'apikey':
107
- case 'api-key':
108
- await wizard.configApiKey();
109
- break;
110
- case 'models':
111
- await wizard.configModels();
112
- break;
113
- default: {
114
- const args = [option];
115
- await configCommand(args);
116
- break;
117
- }
118
- }
119
- });
120
- this.program.action(async () => {
121
- if (configManager.isFirstRun()) {
122
- console.log(chalk.cyan(i18n.t('messages.first_run')));
123
- await wizard.runFirstTimeSetup();
124
- }
125
- else {
126
- await wizard.showMainMenu();
127
- }
128
- });
129
- // Custom help
130
- this.program.configureHelp({
131
- sortSubcommands: true,
132
- subcommandTerm: (cmd) => cmd.name() + ' ' + cmd.usage()
133
- });
134
- // Add examples to help
135
- this.program.addHelpText('after', `
136
- ${chalk.bold(i18n.t('cli.examples'))}:
137
- ${chalk.gray('$ chelper # Interactive main menu')}
138
- ${chalk.gray('$ chelper init # Run first-time setup wizard')}
139
- ${chalk.gray('$ chelper enter # Interactive main menu')}
140
- ${chalk.gray('$ chelper enter lang # Interactive language configuration')}
141
- ${chalk.gray('$ chelper enter apikey # Interactive API key configuration')}
142
- ${chalk.gray('$ chelper enter models # Interactive model configuration')}
143
- ${chalk.gray('$ chelper lang show # Show current language')}
144
- ${chalk.gray('$ chelper lang set zh_CN')}
145
- ${chalk.gray('$ chelper auth # Interactive auth setup')}
146
- ${chalk.gray('$ chelper auth <token> # Set API key')}
147
- ${chalk.gray('$ chelper auth revoke')}
148
- ${chalk.gray('$ chelper doctor # Health check')}
149
- ${chalk.gray('$ chelper --base "https://custom.api.com" init # Custom base URL')}
150
- `);
151
- }
152
- async handleInitCommand() {
153
- await wizard.runFirstTimeSetup();
154
- }
155
- async execute(args) {
156
- try {
157
- // 预解析 --base 选项
158
- const baseIndex = args.indexOf('--base');
159
- if (baseIndex !== -1 && args[baseIndex + 1]) {
160
- configManager.setBaseUrl(args[baseIndex + 1]);
161
- }
162
- await this.program.parseAsync(args, { from: 'user' });
163
- }
164
- catch (error) {
165
- if (error instanceof Error) {
166
- console.error(chalk.red(i18n.t('cli.error_general')), error.message);
167
- }
168
- process.exit(1);
169
- }
170
- }
171
- getProgram() {
172
- return this.program;
173
- }
174
- }
175
- //# sourceMappingURL=command.js.map
1
+ import{Command as a}from"commander";import{i18n as e}from"./i18n.js";import{configManager as t}from"./config.js";import{wizard as r}from"./wizard.js";import{langCommand as n,authCommand as o,doctorCommand as i,configCommand as s,statusCommand as c}from"../commands/index.js";import m from"chalk";import{readFileSync as p}from"fs";import{join as g,dirname as l}from"path";import{fileURLToPath as d}from"url";export class Command{program;constructor(){const r=t.getLang();e.loadFromConfig(r),this.program=new a,this.setupProgram()}getVersion(){try{const a=d(import.meta.url),e=l(a),t=g(e,"../../package.json");return JSON.parse(p(t,"utf-8")).version}catch{return"1.0.0"}}setupProgram(){this.program.name("chelper").description(e.t("cli.title")).version(this.getVersion(),"-v, --version",e.t("commands.version")).helpOption("-h, --help",e.t("commands.help")).option("--base <url>","Custom API base URL"),this.program.command("init").description(e.t("commands.init")).action(async()=>{await this.handleInitCommand()});const a=this.program.command("lang").description(e.t("commands.lang"));a.command("show").description(e.t("lang.show_usage")).action(async()=>{await n(["show"])}),a.command("set <locale>").description(e.t("lang.set_usage")).action(async a=>{await n(["set",a])});const p=this.program.command("auth").description(e.t("commands.auth"));p.argument("[token]","API token").action(async a=>{const e=[];a&&e.push(a),await o(e)}),p.command("revoke").description("Revoke saved API key").action(async()=>{await o(["revoke"])}),p.command("reload <tool>").description("Reload plan configuration to the specified tool (e.g., claude)").action(async a=>{await o(["reload",a])}),this.program.command("doctor").description(e.t("commands.doctor")).action(async()=>{await i()}),this.program.command("status").description(e.t("commands.status")).action(async()=>{await c()}),this.program.command("enter [option]").description(e.t("commands.enter")).action(async a=>{if(a)switch(a){case"lang":case"language":await r.configLanguage();break;case"apikey":case"api-key":await r.configApiKey();break;case"models":await r.configModels();break;default:{const e=[a];await s(e);break}}else await r.showMainMenu()}),this.program.action(async()=>{t.isFirstRun()?(console.log(m.cyan(e.t("messages.first_run"))),await r.runFirstTimeSetup()):await r.showMainMenu()}),this.program.configureHelp({sortSubcommands:!0,subcommandTerm:a=>a.name()+" "+a.usage()}),this.program.addHelpText("after",`\n${m.bold(e.t("cli.examples"))}:\n ${m.gray("$ chelper # Interactive main menu")}\n ${m.gray("$ chelper init # Run first-time setup wizard")}\n ${m.gray("$ chelper enter # Interactive main menu")}\n ${m.gray("$ chelper enter lang # Interactive language configuration")}\n ${m.gray("$ chelper enter apikey # Interactive API key configuration")}\n ${m.gray("$ chelper enter models # Interactive model configuration")}\n ${m.gray("$ chelper lang show # Show current language")}\n ${m.gray("$ chelper lang set zh_CN")}\n ${m.gray("$ chelper auth # Interactive auth setup")}\n ${m.gray("$ chelper auth <token> # Set API key")}\n ${m.gray("$ chelper auth revoke")}\n ${m.gray("$ chelper doctor # Health check")}\n ${m.gray("$ chelper status # Show current status")}\n ${m.gray('$ chelper --base "https://custom.api.com" init # Custom base URL')}\n`)}async handleInitCommand(){await r.runFirstTimeSetup()}async execute(a){try{const e=a.indexOf("--base");-1!==e&&a[e+1]&&t.setBaseUrl(a[e+1]),await this.program.parseAsync(a,{from:"user"})}catch(a){a instanceof Error&&console.error(m.red(e.t("cli.error_general")),a.message),process.exit(1)}}getProgram(){return this.program}}
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/lib/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/lib/command.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,9 @@
1
1
  export declare const DEFAULT_BASE_URL = "https://www.vibeapi.cn";
2
- export declare const DEFAULT_MODELS: {
3
- haiku: string;
4
- sonnet: string;
5
- opus: string;
6
- reasoning: string;
7
- };
2
+ export declare const DEFAULT_MODELS: import("./model-registry.js").Models;
8
3
  export interface ChelperConfig {
9
4
  lang: string;
10
5
  api_key?: string;
6
+ base_url?: string;
11
7
  models?: {
12
8
  haiku: string;
13
9
  sonnet: string;
@@ -62,6 +58,7 @@ export declare class ConfigManager {
62
58
  setModels(models: typeof DEFAULT_MODELS): void;
63
59
  updateModels(partial: Partial<typeof DEFAULT_MODELS>): void;
64
60
  getBaseUrl(): string;
65
- setBaseUrl(url: string): void;
61
+ setBaseUrl(url: string, persist?: boolean): void;
62
+ resetBaseUrl(): void;
66
63
  }
67
64
  export declare const configManager: ConfigManager;