ccman 1.0.1 → 2.0.1

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 (91) hide show
  1. package/.env.development +3 -0
  2. package/.env.production +3 -0
  3. package/.github/workflows/release.yml +5 -5
  4. package/CLAUDE.md +246 -185
  5. package/README.md +282 -249
  6. package/README_zh.md +283 -250
  7. package/dev-test.sh +40 -0
  8. package/dist/cli.js +425 -369
  9. package/dist/cli.js.map +1 -1
  10. package/dist/commands/lang.d.ts +3 -0
  11. package/dist/commands/lang.d.ts.map +1 -0
  12. package/dist/commands/lang.js +99 -0
  13. package/dist/commands/lang.js.map +1 -0
  14. package/dist/config/static-env.d.ts +14 -0
  15. package/dist/config/static-env.d.ts.map +1 -0
  16. package/dist/config/static-env.js +17 -0
  17. package/dist/config/static-env.js.map +1 -0
  18. package/dist/core/CCMConfigManager.d.ts +52 -0
  19. package/dist/core/CCMConfigManager.d.ts.map +1 -0
  20. package/dist/core/CCMConfigManager.js +203 -0
  21. package/dist/core/CCMConfigManager.js.map +1 -0
  22. package/dist/core/ClaudeConfigManager.d.ts +35 -0
  23. package/dist/core/ClaudeConfigManager.d.ts.map +1 -0
  24. package/dist/core/ClaudeConfigManager.js +149 -0
  25. package/dist/core/ClaudeConfigManager.js.map +1 -0
  26. package/dist/i18n/LanguageManager.d.ts +43 -0
  27. package/dist/i18n/LanguageManager.d.ts.map +1 -0
  28. package/dist/i18n/LanguageManager.js +157 -0
  29. package/dist/i18n/LanguageManager.js.map +1 -0
  30. package/dist/i18n/messages.d.ts +65 -0
  31. package/dist/i18n/messages.d.ts.map +1 -0
  32. package/dist/i18n/messages.js +144 -0
  33. package/dist/i18n/messages.js.map +1 -0
  34. package/dist/index.d.ts +3 -3
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +3 -8
  37. package/dist/index.js.map +1 -1
  38. package/dist/providers/ProviderManager.d.ts +58 -0
  39. package/dist/providers/ProviderManager.d.ts.map +1 -0
  40. package/dist/providers/ProviderManager.js +335 -0
  41. package/dist/providers/ProviderManager.js.map +1 -0
  42. package/dist/types/index.d.ts +78 -38
  43. package/dist/types/index.d.ts.map +1 -1
  44. package/dist/types/index.js +1 -0
  45. package/dist/types/index.js.map +1 -1
  46. package/dist/utils/env-config.d.ts +27 -0
  47. package/dist/utils/env-config.d.ts.map +1 -0
  48. package/dist/{config/constants.js → utils/env-config.js} +36 -50
  49. package/dist/utils/env-config.js.map +1 -0
  50. package/dist/utils/version.d.ts +2 -64
  51. package/dist/utils/version.d.ts.map +1 -1
  52. package/dist/utils/version.js +12 -158
  53. package/dist/utils/version.js.map +1 -1
  54. package/package.json +17 -16
  55. package/release-temp/README.md +282 -249
  56. package/release-temp/package.json +17 -16
  57. package/scripts/build-env.js +75 -0
  58. package/scripts/modules/create-tag.sh +53 -10
  59. package/scripts/modules/monitor-release.sh +40 -12
  60. package/scripts/modules/version-bump.sh +14 -17
  61. package/scripts/smart-release-v3.sh +20 -26
  62. package/src/cli.ts +462 -394
  63. package/src/commands/lang.ts +105 -0
  64. package/src/core/CCMConfigManager.ts +185 -0
  65. package/src/core/ClaudeConfigManager.ts +125 -0
  66. package/src/i18n/LanguageManager.ts +169 -0
  67. package/src/i18n/messages.ts +233 -0
  68. package/src/index.ts +4 -5
  69. package/src/providers/ProviderManager.ts +393 -0
  70. package/src/types/index.ts +80 -39
  71. package/src/utils/env-config.ts +53 -0
  72. package/src/utils/version.ts +11 -184
  73. package/dist/config/ConfigManager.d.ts +0 -67
  74. package/dist/config/ConfigManager.d.ts.map +0 -1
  75. package/dist/config/ConfigManager.js +0 -226
  76. package/dist/config/ConfigManager.js.map +0 -1
  77. package/dist/config/EnvironmentManager.d.ts +0 -83
  78. package/dist/config/EnvironmentManager.d.ts.map +0 -1
  79. package/dist/config/EnvironmentManager.js +0 -280
  80. package/dist/config/EnvironmentManager.js.map +0 -1
  81. package/dist/config/constants.d.ts +0 -40
  82. package/dist/config/constants.d.ts.map +0 -1
  83. package/dist/config/constants.js.map +0 -1
  84. package/dist/shell/ShellManager.d.ts +0 -81
  85. package/dist/shell/ShellManager.d.ts.map +0 -1
  86. package/dist/shell/ShellManager.js +0 -490
  87. package/dist/shell/ShellManager.js.map +0 -1
  88. package/src/config/ConfigManager.ts +0 -227
  89. package/src/config/EnvironmentManager.ts +0 -327
  90. package/src/config/constants.ts +0 -64
  91. package/src/shell/ShellManager.ts +0 -526
@@ -0,0 +1,58 @@
1
+ import { AddProviderOptions, ProviderListItem, ProviderConfig, OperationResult } from '../types';
2
+ /**
3
+ * 供应商管理器
4
+ * 核心业务逻辑:管理多个供应商配置并切换Claude配置
5
+ */
6
+ export declare class ProviderManager {
7
+ private ccmConfig;
8
+ private claudeConfig;
9
+ constructor();
10
+ /**
11
+ * 初始化
12
+ */
13
+ init(): Promise<void>;
14
+ /**
15
+ * 添加新的供应商配置
16
+ */
17
+ addProvider(options: AddProviderOptions): Promise<OperationResult>;
18
+ /**
19
+ * 删除供应商配置
20
+ */
21
+ removeProvider(providerId: string): Promise<OperationResult>;
22
+ /**
23
+ * 切换到指定供应商
24
+ */
25
+ useProvider(providerId: string): Promise<OperationResult>;
26
+ /**
27
+ * 获取当前供应商
28
+ */
29
+ getCurrentProvider(): Promise<{
30
+ id: string;
31
+ config: ProviderConfig;
32
+ } | null>;
33
+ /**
34
+ * 列出所有供应商
35
+ */
36
+ listProviders(): Promise<ProviderListItem[]>;
37
+ /**
38
+ * 更新供应商配置
39
+ */
40
+ updateProvider(providerId: string, updates: Partial<AddProviderOptions>): Promise<OperationResult>;
41
+ /**
42
+ * 清除所有配置
43
+ */
44
+ clearAll(): Promise<OperationResult>;
45
+ /**
46
+ * 获取统计信息
47
+ */
48
+ getStats(): Promise<{
49
+ totalProviders: number;
50
+ currentProvider: string | null;
51
+ claudeConfigPath: string;
52
+ ccmConfigPath: string;
53
+ ccmConfigFile: string;
54
+ providersDir: string;
55
+ environment: string;
56
+ }>;
57
+ }
58
+ //# sourceMappingURL=ProviderManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProviderManager.d.ts","sourceRoot":"","sources":["../../src/providers/ProviderManager.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,eAAe,EAChB,MAAM,UAAU,CAAC;AAElB;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,YAAY,CAAsB;;IAQ1C;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAU3B;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC;IAyExE;;OAEG;IACG,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAuClE;;OAEG;IACG,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAiD/D;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,cAAc,CAAA;KAAE,GAAG,IAAI,CAAC;IAuBlF;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAqClD;;OAEG;IACG,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAqDxG;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,eAAe,CAAC;IAkB1C;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC;QACxB,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,gBAAgB,EAAE,MAAM,CAAC;QACzB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CA+BH"}
@@ -0,0 +1,335 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProviderManager = void 0;
4
+ const CCMConfigManager_1 = require("../core/CCMConfigManager");
5
+ const ClaudeConfigManager_1 = require("../core/ClaudeConfigManager");
6
+ const env_config_1 = require("../utils/env-config");
7
+ /**
8
+ * 供应商管理器
9
+ * 核心业务逻辑:管理多个供应商配置并切换Claude配置
10
+ */
11
+ class ProviderManager {
12
+ constructor() {
13
+ this.ccmConfig = new CCMConfigManager_1.CCMConfigManager();
14
+ // ClaudeConfigManager 将在 init() 中根据 CCM 配置初始化
15
+ this.claudeConfig = new ClaudeConfigManager_1.ClaudeConfigManager();
16
+ }
17
+ /**
18
+ * 初始化
19
+ */
20
+ async init() {
21
+ await this.ccmConfig.init();
22
+ // 获取 CCM 配置中的 Claude 配置路径
23
+ const config = await this.ccmConfig.readConfig();
24
+ this.claudeConfig = new ClaudeConfigManager_1.ClaudeConfigManager(config.claudeConfigPath);
25
+ await this.claudeConfig.ensureClaudeConfigDir();
26
+ }
27
+ /**
28
+ * 添加新的供应商配置
29
+ */
30
+ async addProvider(options) {
31
+ try {
32
+ // 检查供应商ID是否已存在
33
+ const existingProvider = await this.ccmConfig.readProviderConfig(options.id);
34
+ if (existingProvider) {
35
+ return {
36
+ success: false,
37
+ message: `Provider '${options.id}' already exists`
38
+ };
39
+ }
40
+ // 创建供应商配置
41
+ const providerConfig = {
42
+ name: options.name,
43
+ description: options.description || `${options.name} API Configuration`,
44
+ config: {
45
+ env: {
46
+ ANTHROPIC_AUTH_TOKEN: options.apiKey,
47
+ ANTHROPIC_BASE_URL: options.baseUrl,
48
+ CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: 1
49
+ },
50
+ permissions: {
51
+ allow: [],
52
+ deny: []
53
+ },
54
+ apiKeyHelper: options.apiKeyHelper || `echo '${options.apiKey}'`
55
+ },
56
+ metadata: {
57
+ createdAt: new Date().toISOString(),
58
+ updatedAt: new Date().toISOString(),
59
+ usageCount: 0
60
+ }
61
+ };
62
+ // 保存供应商配置
63
+ await this.ccmConfig.writeProviderConfig(options.id, providerConfig);
64
+ // 更新主配置
65
+ const config = await this.ccmConfig.readConfig();
66
+ config.providers[options.id] = {
67
+ name: options.name,
68
+ configFile: `${options.id}.json`,
69
+ lastUsed: new Date().toISOString()
70
+ };
71
+ // 如果这是第一个供应商,设为当前并更新Claude配置
72
+ if (Object.keys(config.providers).length === 1) {
73
+ config.currentProvider = options.id;
74
+ // 更新Claude配置
75
+ await this.claudeConfig.writeClaudeConfig(providerConfig.config);
76
+ // 增加使用次数
77
+ providerConfig.metadata.usageCount++;
78
+ await this.ccmConfig.writeProviderConfig(options.id, providerConfig);
79
+ }
80
+ await this.ccmConfig.writeConfig(config);
81
+ return {
82
+ success: true,
83
+ message: `Successfully added provider '${options.name}'`
84
+ };
85
+ }
86
+ catch (error) {
87
+ return {
88
+ success: false,
89
+ message: `Failed to add provider: ${error}`,
90
+ error: error instanceof Error ? error.message : String(error)
91
+ };
92
+ }
93
+ }
94
+ /**
95
+ * 删除供应商配置
96
+ */
97
+ async removeProvider(providerId) {
98
+ try {
99
+ const config = await this.ccmConfig.readConfig();
100
+ if (!config.providers[providerId]) {
101
+ return {
102
+ success: false,
103
+ message: `Provider '${providerId}' not found`
104
+ };
105
+ }
106
+ // 删除供应商配置文件
107
+ await this.ccmConfig.deleteProviderConfig(providerId);
108
+ // 从主配置中移除
109
+ delete config.providers[providerId];
110
+ // 如果删除的是当前供应商,重置当前供应商
111
+ if (config.currentProvider === providerId) {
112
+ const remainingProviders = Object.keys(config.providers);
113
+ config.currentProvider = remainingProviders.length > 0 ? remainingProviders[0] : '';
114
+ }
115
+ await this.ccmConfig.writeConfig(config);
116
+ return {
117
+ success: true,
118
+ message: `Successfully removed provider '${providerId}'`
119
+ };
120
+ }
121
+ catch (error) {
122
+ return {
123
+ success: false,
124
+ message: `Failed to remove provider: ${error}`,
125
+ error: error instanceof Error ? error.message : String(error)
126
+ };
127
+ }
128
+ }
129
+ /**
130
+ * 切换到指定供应商
131
+ */
132
+ async useProvider(providerId) {
133
+ try {
134
+ const config = await this.ccmConfig.readConfig();
135
+ if (!config.providers[providerId]) {
136
+ return {
137
+ success: false,
138
+ message: `Provider '${providerId}' not found`
139
+ };
140
+ }
141
+ // 读取供应商配置
142
+ const providerConfig = await this.ccmConfig.readProviderConfig(providerId);
143
+ if (!providerConfig) {
144
+ return {
145
+ success: false,
146
+ message: `Provider config file for '${providerId}' not found`
147
+ };
148
+ }
149
+ // 备份当前Claude配置
150
+ const backupPath = await this.claudeConfig.backupClaudeConfig();
151
+ // 更新Claude配置
152
+ await this.claudeConfig.writeClaudeConfig(providerConfig.config);
153
+ // 更新CCM配置
154
+ config.currentProvider = providerId;
155
+ config.providers[providerId].lastUsed = new Date().toISOString();
156
+ await this.ccmConfig.writeConfig(config);
157
+ // 增加使用次数
158
+ providerConfig.metadata.usageCount++;
159
+ await this.ccmConfig.writeProviderConfig(providerId, providerConfig);
160
+ return {
161
+ success: true,
162
+ message: `Successfully switched to provider '${config.providers[providerId].name}'${backupPath ? `. Backup created: ${backupPath}` : ''}`
163
+ };
164
+ }
165
+ catch (error) {
166
+ return {
167
+ success: false,
168
+ message: `Failed to switch provider: ${error}`,
169
+ error: error instanceof Error ? error.message : String(error)
170
+ };
171
+ }
172
+ }
173
+ /**
174
+ * 获取当前供应商
175
+ */
176
+ async getCurrentProvider() {
177
+ try {
178
+ const config = await this.ccmConfig.readConfig();
179
+ if (!config.currentProvider) {
180
+ return null;
181
+ }
182
+ const providerConfig = await this.ccmConfig.readProviderConfig(config.currentProvider);
183
+ if (!providerConfig) {
184
+ return null;
185
+ }
186
+ return {
187
+ id: config.currentProvider,
188
+ config: providerConfig
189
+ };
190
+ }
191
+ catch (error) {
192
+ return null;
193
+ }
194
+ }
195
+ /**
196
+ * 列出所有供应商
197
+ */
198
+ async listProviders() {
199
+ try {
200
+ const config = await this.ccmConfig.readConfig();
201
+ const providers = [];
202
+ for (const [providerId, providerInfo] of Object.entries(config.providers)) {
203
+ const providerConfig = await this.ccmConfig.readProviderConfig(providerId);
204
+ if (providerConfig) {
205
+ const info = providerInfo;
206
+ providers.push({
207
+ id: providerId,
208
+ name: providerConfig.name,
209
+ description: providerConfig.description,
210
+ baseUrl: providerConfig.config.env.ANTHROPIC_BASE_URL,
211
+ isCurrent: config.currentProvider === providerId,
212
+ lastUsed: info.lastUsed,
213
+ usageCount: providerConfig.metadata.usageCount
214
+ });
215
+ }
216
+ }
217
+ return providers.sort((a, b) => {
218
+ // 先按是否为当前排序,再按最后使用时间排序
219
+ if (a.isCurrent && !b.isCurrent)
220
+ return -1;
221
+ if (!a.isCurrent && b.isCurrent)
222
+ return 1;
223
+ const aTime = new Date(a.lastUsed || '').getTime();
224
+ const bTime = new Date(b.lastUsed || '').getTime();
225
+ return bTime - aTime;
226
+ });
227
+ }
228
+ catch (error) {
229
+ return [];
230
+ }
231
+ }
232
+ /**
233
+ * 更新供应商配置
234
+ */
235
+ async updateProvider(providerId, updates) {
236
+ try {
237
+ const providerConfig = await this.ccmConfig.readProviderConfig(providerId);
238
+ if (!providerConfig) {
239
+ return {
240
+ success: false,
241
+ message: `Provider '${providerId}' not found`
242
+ };
243
+ }
244
+ // 更新配置
245
+ if (updates.name) {
246
+ providerConfig.name = updates.name;
247
+ }
248
+ if (updates.description) {
249
+ providerConfig.description = updates.description;
250
+ }
251
+ if (updates.baseUrl) {
252
+ providerConfig.config.env.ANTHROPIC_BASE_URL = updates.baseUrl;
253
+ }
254
+ if (updates.apiKey) {
255
+ providerConfig.config.env.ANTHROPIC_AUTH_TOKEN = updates.apiKey;
256
+ providerConfig.config.apiKeyHelper = updates.apiKeyHelper || `echo '${updates.apiKey}'`;
257
+ }
258
+ await this.ccmConfig.writeProviderConfig(providerId, providerConfig);
259
+ // 如果更新的是当前供应商,同步更新Claude配置
260
+ const config = await this.ccmConfig.readConfig();
261
+ if (config.currentProvider === providerId) {
262
+ await this.claudeConfig.writeClaudeConfig(providerConfig.config);
263
+ }
264
+ // 更新主配置中的名称
265
+ if (updates.name) {
266
+ config.providers[providerId].name = updates.name;
267
+ await this.ccmConfig.writeConfig(config);
268
+ }
269
+ return {
270
+ success: true,
271
+ message: `Successfully updated provider '${providerId}'`
272
+ };
273
+ }
274
+ catch (error) {
275
+ return {
276
+ success: false,
277
+ message: `Failed to update provider: ${error}`,
278
+ error: error instanceof Error ? error.message : String(error)
279
+ };
280
+ }
281
+ }
282
+ /**
283
+ * 清除所有配置
284
+ */
285
+ async clearAll() {
286
+ try {
287
+ await this.ccmConfig.clearAll();
288
+ return {
289
+ success: true,
290
+ message: 'Successfully cleared all CCM configurations'
291
+ };
292
+ }
293
+ catch (error) {
294
+ return {
295
+ success: false,
296
+ message: `Failed to clear configurations: ${error}`,
297
+ error: error instanceof Error ? error.message : String(error)
298
+ };
299
+ }
300
+ }
301
+ /**
302
+ * 获取统计信息
303
+ */
304
+ async getStats() {
305
+ try {
306
+ const config = await this.ccmConfig.readConfig();
307
+ const currentProvider = config.currentProvider ?
308
+ (config.providers[config.currentProvider]?.name || config.currentProvider) : null;
309
+ // 从静态配置获取环境信息
310
+ const environment = env_config_1.envConfig.getCurrentEnvironment();
311
+ return {
312
+ totalProviders: Object.keys(config.providers).length,
313
+ currentProvider,
314
+ claudeConfigPath: this.claudeConfig.getClaudeConfigPath(),
315
+ ccmConfigPath: this.ccmConfig.getConfigDir(),
316
+ ccmConfigFile: `${this.ccmConfig.getConfigDir()}/config.json`,
317
+ providersDir: this.ccmConfig.getProvidersDir(),
318
+ environment
319
+ };
320
+ }
321
+ catch (error) {
322
+ return {
323
+ totalProviders: 0,
324
+ currentProvider: null,
325
+ claudeConfigPath: this.claudeConfig.getClaudeConfigPath(),
326
+ ccmConfigPath: this.ccmConfig.getConfigDir(),
327
+ ccmConfigFile: `${this.ccmConfig.getConfigDir()}/config.json`,
328
+ providersDir: this.ccmConfig.getProvidersDir(),
329
+ environment: 'unknown'
330
+ };
331
+ }
332
+ }
333
+ }
334
+ exports.ProviderManager = ProviderManager;
335
+ //# sourceMappingURL=ProviderManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProviderManager.js","sourceRoot":"","sources":["../../src/providers/ProviderManager.ts"],"names":[],"mappings":"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"}
@@ -1,55 +1,95 @@
1
1
  /**
2
2
  * Claude Code Manager 类型定义
3
+ * 新架构:直接修改 ~/.claude/settings.json
3
4
  */
4
- export interface ClaudeEnv {
5
- /** 环境名称 */
6
- name: string;
7
- /** API 基础 URL */
8
- baseUrl: string;
9
- /** API 密钥 */
10
- apiKey: string;
11
- /** 创建时间 */
12
- createdAt: string;
13
- /** 最后使用时间 */
14
- lastUsed?: string;
15
- }
16
- export interface Config {
17
- /** 当前使用的环境名称 */
18
- current: string | null;
19
- /** 环境配置列表 */
20
- environments: {
21
- [name: string]: ClaudeEnv;
5
+ /**
6
+ * Claude settings.json 结构
7
+ */
8
+ export interface ClaudeSettings {
9
+ env: {
10
+ ANTHROPIC_AUTH_TOKEN: string;
11
+ ANTHROPIC_BASE_URL: string;
12
+ CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC?: number;
13
+ };
14
+ permissions: {
15
+ allow: string[];
16
+ deny: string[];
22
17
  };
23
- /** 全局设置 */
24
- settings: GlobalSettings;
18
+ apiKeyHelper: string;
25
19
  }
26
- export interface GlobalSettings {
27
- /** 是否自动写入 shell 配置文件 */
28
- autoWriteShell: boolean;
29
- /** 首选的 shell 类型 */
30
- preferredShell: 'bash' | 'zsh' | 'auto';
31
- /** shell 配置文件路径(可自定义) */
32
- shellConfigPath?: string;
20
+ /**
21
+ * 供应商配置
22
+ */
23
+ export interface ProviderConfig {
24
+ name: string;
25
+ description: string;
26
+ config: ClaudeSettings;
27
+ metadata: {
28
+ createdAt: string;
29
+ updatedAt: string;
30
+ usageCount: number;
31
+ };
33
32
  }
34
- export interface ShellEnvVars {
35
- ANTHROPIC_BASE_URL: string;
36
- ANTHROPIC_AUTH_TOKEN: string;
33
+ /**
34
+ * CCM 主配置
35
+ */
36
+ export interface CCMConfig {
37
+ currentProvider: string;
38
+ claudeConfigPath: string;
39
+ providers: {
40
+ [providerId: string]: {
41
+ name: string;
42
+ configFile: string;
43
+ lastUsed: string;
44
+ };
45
+ };
46
+ settings: {
47
+ language: 'zh' | 'en' | 'auto' | null;
48
+ firstRun: boolean;
49
+ };
50
+ metadata: {
51
+ version: string;
52
+ createdAt: string;
53
+ updatedAt: string;
54
+ };
37
55
  }
38
- export interface AddEnvOptions {
56
+ /**
57
+ * 添加供应商选项
58
+ */
59
+ export interface AddProviderOptions {
60
+ id: string;
39
61
  name: string;
62
+ description?: string;
40
63
  baseUrl: string;
41
64
  apiKey: string;
42
- autoWriteShell?: boolean;
65
+ apiKeyHelper?: string;
43
66
  }
44
- export interface ShellWriteResult {
67
+ /**
68
+ * 供应商列表项
69
+ */
70
+ export interface ProviderListItem {
71
+ id: string;
72
+ name: string;
73
+ description: string;
74
+ baseUrl: string;
75
+ isCurrent: boolean;
76
+ lastUsed?: string;
77
+ usageCount: number;
78
+ }
79
+ /**
80
+ * 操作结果
81
+ */
82
+ export interface OperationResult {
45
83
  success: boolean;
46
- filePath: string;
47
84
  message: string;
48
85
  error?: string;
49
86
  }
50
- export interface EnvironmentListItem extends ClaudeEnv {
51
- /** 是否为当前使用的环境 */
52
- isCurrent: boolean;
87
+ /**
88
+ * 语言配置统计
89
+ */
90
+ export interface LanguageStats {
91
+ current: 'zh' | 'en' | 'auto';
92
+ isFirstRun: boolean;
93
+ autoDetected?: string;
53
94
  }
54
- export type ShellType = 'bash' | 'zsh' | 'fish' | 'unknown';
55
95
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,SAAS;IACxB,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,MAAM;IACrB,gBAAgB;IAChB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,aAAa;IACb,YAAY,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IAC5C,WAAW;IACX,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,wBAAwB;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,mBAAmB;IACnB,cAAc,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;IACxC,yBAAyB;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAoB,SAAQ,SAAS;IACpD,iBAAiB;IACjB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE;QACH,oBAAoB,EAAE,MAAM,CAAC;QAC7B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,wCAAwC,CAAC,EAAE,MAAM,CAAC;KACnD,CAAC;IACF,WAAW,EAAE;QACX,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,IAAI,EAAE,MAAM,EAAE,CAAC;KAChB,CAAC;IACF,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,EAAE;QACR,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE;QACT,CAAC,UAAU,EAAE,MAAM,GAAG;YACpB,IAAI,EAAE,MAAM,CAAC;YACb,UAAU,EAAE,MAAM,CAAC;YACnB,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC;KACH,CAAC;IACF,QAAQ,EAAE;QACR,QAAQ,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;QACtC,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,QAAQ,EAAE;QACR,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;IAC9B,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  /**
3
3
  * Claude Code Manager 类型定义
4
+ * 新架构:直接修改 ~/.claude/settings.json
4
5
  */
5
6
  Object.defineProperty(exports, "__esModule", { value: true });
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;GAEG"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * 环境配置管理器
3
+ * 使用编译时生成的静态配置
4
+ */
5
+ export declare class EnvConfigManager {
6
+ private static instance;
7
+ private constructor();
8
+ static getInstance(): EnvConfigManager;
9
+ /**
10
+ * 获取CCM配置目录路径
11
+ */
12
+ getCCMConfigDir(): string;
13
+ /**
14
+ * 获取Claude配置文件路径
15
+ */
16
+ getClaudeConfigPath(): string;
17
+ /**
18
+ * 扩展路径中的~符号
19
+ */
20
+ private expandPath;
21
+ /**
22
+ * 获取当前环境(从编译时确定的NODE_ENV)
23
+ */
24
+ getCurrentEnvironment(): 'development' | 'production';
25
+ }
26
+ export declare const envConfig: EnvConfigManager;
27
+ //# sourceMappingURL=env-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-config.d.ts","sourceRoot":"","sources":["../../src/utils/env-config.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiC;IAExD,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,gBAAgB;IAOtC;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,mBAAmB,IAAI,MAAM;IAI7B;;OAEG;IACH,OAAO,CAAC,UAAU;IAMlB;;OAEG;IACH,qBAAqB,IAAI,aAAa,GAAG,YAAY;CAGtD;AAGD,eAAO,MAAM,SAAS,kBAAiC,CAAC"}