@pikecode/api-key-manager 1.0.44 → 1.1.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/README.md +267 -1174
- package/bin/akm.js +125 -1
- package/package.json +1 -1
- package/src/CommandRegistry.js +15 -0
- package/src/commands/add.js +14 -189
- package/src/commands/backup.js +3 -0
- package/src/commands/claude-clean.js +253 -0
- package/src/commands/clone.js +265 -0
- package/src/commands/current.js +4 -18
- package/src/commands/edit.js +10 -39
- package/src/commands/list.js +17 -20
- package/src/commands/mcp.js +467 -0
- package/src/commands/switch.js +7 -39
- package/src/config.js +0 -6
- package/src/constants/index.js +6 -18
- package/src/utils/claude-settings.js +0 -1
- package/src/utils/env-launcher.js +8 -16
- package/src/utils/provider-status-checker.js +0 -4
package/src/constants/index.js
CHANGED
|
@@ -9,32 +9,22 @@
|
|
|
9
9
|
* 认证模式的显示名称映射
|
|
10
10
|
*/
|
|
11
11
|
const AUTH_MODE_DISPLAY = {
|
|
12
|
-
api_key: '
|
|
13
|
-
auth_token: '
|
|
14
|
-
oauth_token: 'OAuth令牌模式'
|
|
12
|
+
api_key: 'API Key 模式',
|
|
13
|
+
auth_token: 'Auth Token 模式'
|
|
15
14
|
};
|
|
16
15
|
|
|
17
16
|
/**
|
|
18
17
|
* 认证模式详细说明(用于添加供应商时)
|
|
19
18
|
*/
|
|
20
19
|
const AUTH_MODE_DISPLAY_DETAILED = {
|
|
21
|
-
api_key: '
|
|
22
|
-
auth_token: '
|
|
23
|
-
oauth_token: 'OAuth令牌模式 (CLAUDE_CODE_OAUTH_TOKEN)'
|
|
20
|
+
api_key: 'API Key 模式 (ANTHROPIC_API_KEY)',
|
|
21
|
+
auth_token: 'Auth Token 模式 (ANTHROPIC_AUTH_TOKEN)'
|
|
24
22
|
};
|
|
25
23
|
|
|
26
24
|
/**
|
|
27
25
|
* 所有支持的认证模式列表
|
|
28
26
|
*/
|
|
29
|
-
const AUTH_MODES = ['api_key', 'auth_token'
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Token 类型显示映射
|
|
33
|
-
*/
|
|
34
|
-
const TOKEN_TYPE_DISPLAY = {
|
|
35
|
-
auth_token: 'ANTHROPIC_AUTH_TOKEN',
|
|
36
|
-
api_key: 'ANTHROPIC_API_KEY'
|
|
37
|
-
};
|
|
27
|
+
const AUTH_MODES = ['api_key', 'auth_token'];
|
|
38
28
|
|
|
39
29
|
// ============ ESC 返回提示常量 ============
|
|
40
30
|
|
|
@@ -202,8 +192,7 @@ const ENV_VARS = {
|
|
|
202
192
|
ANTHROPIC_AUTH_TOKEN: 'ANTHROPIC_AUTH_TOKEN',
|
|
203
193
|
ANTHROPIC_API_KEY: 'ANTHROPIC_API_KEY',
|
|
204
194
|
OPENAI_API_KEY: 'OPENAI_API_KEY',
|
|
205
|
-
OPENAI_BASE_URL: 'OPENAI_BASE_URL'
|
|
206
|
-
CLAUDE_CODE_OAUTH_TOKEN: 'CLAUDE_CODE_OAUTH_TOKEN'
|
|
195
|
+
OPENAI_BASE_URL: 'OPENAI_BASE_URL'
|
|
207
196
|
};
|
|
208
197
|
|
|
209
198
|
module.exports = {
|
|
@@ -211,7 +200,6 @@ module.exports = {
|
|
|
211
200
|
AUTH_MODE_DISPLAY,
|
|
212
201
|
AUTH_MODE_DISPLAY_DETAILED,
|
|
213
202
|
AUTH_MODES,
|
|
214
|
-
TOKEN_TYPE_DISPLAY,
|
|
215
203
|
|
|
216
204
|
// ESC 提示
|
|
217
205
|
ESC_HINTS,
|
|
@@ -6,26 +6,18 @@ function buildEnvVariables(config) {
|
|
|
6
6
|
|
|
7
7
|
try {
|
|
8
8
|
// Claude Code 配置
|
|
9
|
-
if (config.authMode === '
|
|
10
|
-
env.CLAUDE_CODE_OAUTH_TOKEN = sanitizeEnvValue(config.authToken);
|
|
11
|
-
} else if (config.authMode === 'api_key') {
|
|
12
|
-
if (!config.baseUrl) {
|
|
13
|
-
throw new Error('未配置基础地址');
|
|
14
|
-
}
|
|
15
|
-
env.ANTHROPIC_BASE_URL = sanitizeEnvValue(config.baseUrl);
|
|
16
|
-
// 根据 tokenType 选择设置哪种 token
|
|
17
|
-
if (config.tokenType === 'auth_token') {
|
|
18
|
-
env.ANTHROPIC_AUTH_TOKEN = sanitizeEnvValue(config.authToken);
|
|
19
|
-
} else {
|
|
20
|
-
// 默认使用 ANTHROPIC_API_KEY
|
|
21
|
-
env.ANTHROPIC_API_KEY = sanitizeEnvValue(config.authToken);
|
|
22
|
-
}
|
|
23
|
-
} else {
|
|
24
|
-
// auth_token 模式
|
|
9
|
+
if (config.authMode === 'auth_token') {
|
|
25
10
|
if (config.baseUrl) {
|
|
26
11
|
env.ANTHROPIC_BASE_URL = sanitizeEnvValue(config.baseUrl);
|
|
27
12
|
}
|
|
28
13
|
env.ANTHROPIC_AUTH_TOKEN = sanitizeEnvValue(config.authToken);
|
|
14
|
+
} else {
|
|
15
|
+
// api_key 模式(默认)
|
|
16
|
+
if (!config.baseUrl) {
|
|
17
|
+
throw new Error('未配置基础地址');
|
|
18
|
+
}
|
|
19
|
+
env.ANTHROPIC_BASE_URL = sanitizeEnvValue(config.baseUrl);
|
|
20
|
+
env.ANTHROPIC_API_KEY = sanitizeEnvValue(config.authToken);
|
|
29
21
|
}
|
|
30
22
|
|
|
31
23
|
if (config.models && config.models.primary) {
|
|
@@ -102,10 +102,6 @@ class ProviderStatusChecker {
|
|
|
102
102
|
return result;
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
-
if (provider.authMode === 'oauth_token') {
|
|
106
|
-
return this._result('unknown', '暂不支持 OAuth 令牌检测', null);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
105
|
// auth_token 模式可留空 baseUrl(使用官方默认 API)
|
|
110
106
|
// api_key 模式需要 baseUrl(用于自定义端点/代理)
|
|
111
107
|
if (provider.authMode === 'auth_token' && !provider.baseUrl) {
|