ccman 2.1.6 → 3.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.
Files changed (172) hide show
  1. package/README.md +103 -227
  2. package/dist/commands/claudecode/add.d.ts +3 -0
  3. package/dist/commands/claudecode/add.d.ts.map +1 -0
  4. package/dist/commands/claudecode/add.js +129 -0
  5. package/dist/commands/claudecode/add.js.map +1 -0
  6. package/dist/commands/claudecode/clone.d.ts +3 -0
  7. package/dist/commands/claudecode/clone.d.ts.map +1 -0
  8. package/dist/commands/claudecode/clone.js +71 -0
  9. package/dist/commands/claudecode/clone.js.map +1 -0
  10. package/dist/commands/claudecode/current.d.ts +3 -0
  11. package/dist/commands/claudecode/current.d.ts.map +1 -0
  12. package/dist/commands/claudecode/current.js +32 -0
  13. package/dist/commands/claudecode/current.js.map +1 -0
  14. package/dist/commands/claudecode/edit.d.ts +3 -0
  15. package/dist/commands/claudecode/edit.d.ts.map +1 -0
  16. package/dist/commands/claudecode/edit.js +94 -0
  17. package/dist/commands/claudecode/edit.js.map +1 -0
  18. package/dist/commands/claudecode/index.d.ts +6 -0
  19. package/dist/commands/claudecode/index.d.ts.map +1 -0
  20. package/dist/commands/claudecode/index.js +20 -0
  21. package/dist/commands/claudecode/index.js.map +1 -0
  22. package/dist/commands/claudecode/list.d.ts +3 -0
  23. package/dist/commands/claudecode/list.d.ts.map +1 -0
  24. package/dist/commands/claudecode/list.js +45 -0
  25. package/dist/commands/claudecode/list.js.map +1 -0
  26. package/dist/commands/claudecode/remove.d.ts +3 -0
  27. package/dist/commands/claudecode/remove.d.ts.map +1 -0
  28. package/dist/commands/claudecode/remove.js +75 -0
  29. package/dist/commands/claudecode/remove.js.map +1 -0
  30. package/dist/commands/claudecode/use.d.ts +3 -0
  31. package/dist/commands/claudecode/use.d.ts.map +1 -0
  32. package/dist/commands/claudecode/use.js +66 -0
  33. package/dist/commands/claudecode/use.js.map +1 -0
  34. package/dist/commands/codex/add.d.ts +3 -0
  35. package/dist/commands/codex/add.d.ts.map +1 -0
  36. package/dist/commands/codex/add.js +130 -0
  37. package/dist/commands/codex/add.js.map +1 -0
  38. package/dist/commands/codex/clone.d.ts +3 -0
  39. package/dist/commands/codex/clone.d.ts.map +1 -0
  40. package/dist/commands/codex/clone.js +71 -0
  41. package/dist/commands/codex/clone.js.map +1 -0
  42. package/dist/commands/codex/current.d.ts +3 -0
  43. package/dist/commands/codex/current.d.ts.map +1 -0
  44. package/dist/commands/codex/current.js +32 -0
  45. package/dist/commands/codex/current.js.map +1 -0
  46. package/dist/commands/codex/edit.d.ts +3 -0
  47. package/dist/commands/codex/edit.d.ts.map +1 -0
  48. package/dist/commands/codex/edit.js +94 -0
  49. package/dist/commands/codex/edit.js.map +1 -0
  50. package/dist/commands/codex/index.d.ts +6 -0
  51. package/dist/commands/codex/index.d.ts.map +1 -0
  52. package/dist/commands/codex/index.js +20 -0
  53. package/dist/commands/codex/index.js.map +1 -0
  54. package/dist/commands/codex/list.d.ts +3 -0
  55. package/dist/commands/codex/list.d.ts.map +1 -0
  56. package/dist/commands/codex/list.js +45 -0
  57. package/dist/commands/codex/list.js.map +1 -0
  58. package/dist/commands/codex/remove.d.ts +3 -0
  59. package/dist/commands/codex/remove.d.ts.map +1 -0
  60. package/dist/commands/codex/remove.js +75 -0
  61. package/dist/commands/codex/remove.js.map +1 -0
  62. package/dist/commands/codex/use.d.ts +3 -0
  63. package/dist/commands/codex/use.d.ts.map +1 -0
  64. package/dist/commands/codex/use.js +66 -0
  65. package/dist/commands/codex/use.js.map +1 -0
  66. package/dist/index.d.ts +2 -4
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/index.js +53 -19
  69. package/dist/index.js.map +1 -1
  70. package/dist/interactive.d.ts +36 -0
  71. package/dist/interactive.d.ts.map +1 -0
  72. package/dist/interactive.js +509 -0
  73. package/dist/interactive.js.map +1 -0
  74. package/dist/utils/file-check.d.ts +5 -0
  75. package/dist/utils/file-check.d.ts.map +1 -0
  76. package/dist/utils/file-check.js +14 -0
  77. package/dist/utils/file-check.js.map +1 -0
  78. package/dist/utils/logo.d.ts +2 -0
  79. package/dist/utils/logo.d.ts.map +1 -0
  80. package/dist/utils/logo.js +13 -0
  81. package/dist/utils/logo.js.map +1 -0
  82. package/package.json +28 -61
  83. package/LICENSE +0 -21
  84. package/README_en.md +0 -294
  85. package/dist/cli.d.ts +0 -3
  86. package/dist/cli.d.ts.map +0 -1
  87. package/dist/cli.js +0 -948
  88. package/dist/cli.js.map +0 -1
  89. package/dist/commands/lang.d.ts +0 -3
  90. package/dist/commands/lang.d.ts.map +0 -1
  91. package/dist/commands/lang.js +0 -99
  92. package/dist/commands/lang.js.map +0 -1
  93. package/dist/config/default-providers.d.ts +0 -34
  94. package/dist/config/default-providers.d.ts.map +0 -1
  95. package/dist/config/default-providers.js +0 -96
  96. package/dist/config/default-providers.js.map +0 -1
  97. package/dist/config/static-env.d.ts +0 -14
  98. package/dist/config/static-env.d.ts.map +0 -1
  99. package/dist/config/static-env.js +0 -17
  100. package/dist/config/static-env.js.map +0 -1
  101. package/dist/core/CCMConfigManager.d.ts +0 -64
  102. package/dist/core/CCMConfigManager.d.ts.map +0 -1
  103. package/dist/core/CCMConfigManager.js +0 -267
  104. package/dist/core/CCMConfigManager.js.map +0 -1
  105. package/dist/core/ClaudeConfigManager.d.ts +0 -39
  106. package/dist/core/ClaudeConfigManager.d.ts.map +0 -1
  107. package/dist/core/ClaudeConfigManager.js +0 -161
  108. package/dist/core/ClaudeConfigManager.js.map +0 -1
  109. package/dist/core/EnvironmentManager.d.ts +0 -27
  110. package/dist/core/EnvironmentManager.d.ts.map +0 -1
  111. package/dist/core/EnvironmentManager.js +0 -46
  112. package/dist/core/EnvironmentManager.js.map +0 -1
  113. package/dist/i18n/LanguageManager.d.ts +0 -43
  114. package/dist/i18n/LanguageManager.d.ts.map +0 -1
  115. package/dist/i18n/LanguageManager.js +0 -157
  116. package/dist/i18n/LanguageManager.js.map +0 -1
  117. package/dist/i18n/messages.d.ts +0 -95
  118. package/dist/i18n/messages.d.ts.map +0 -1
  119. package/dist/i18n/messages.js +0 -206
  120. package/dist/i18n/messages.js.map +0 -1
  121. package/dist/providers/ProviderManager.d.ts +0 -63
  122. package/dist/providers/ProviderManager.d.ts.map +0 -1
  123. package/dist/providers/ProviderManager.js +0 -350
  124. package/dist/providers/ProviderManager.js.map +0 -1
  125. package/dist/setup/checker.d.ts +0 -33
  126. package/dist/setup/checker.d.ts.map +0 -1
  127. package/dist/setup/checker.js +0 -169
  128. package/dist/setup/checker.js.map +0 -1
  129. package/dist/setup/installer.d.ts +0 -17
  130. package/dist/setup/installer.d.ts.map +0 -1
  131. package/dist/setup/installer.js +0 -108
  132. package/dist/setup/installer.js.map +0 -1
  133. package/dist/setup/planner.d.ts +0 -22
  134. package/dist/setup/planner.d.ts.map +0 -1
  135. package/dist/setup/planner.js +0 -213
  136. package/dist/setup/planner.js.map +0 -1
  137. package/dist/setup/strategies/base.d.ts +0 -26
  138. package/dist/setup/strategies/base.d.ts.map +0 -1
  139. package/dist/setup/strategies/base.js +0 -32
  140. package/dist/setup/strategies/base.js.map +0 -1
  141. package/dist/setup/strategies/node.d.ts +0 -9
  142. package/dist/setup/strategies/node.d.ts.map +0 -1
  143. package/dist/setup/strategies/node.js +0 -141
  144. package/dist/setup/strategies/node.js.map +0 -1
  145. package/dist/setup/strategies/nvm.d.ts +0 -9
  146. package/dist/setup/strategies/nvm.d.ts.map +0 -1
  147. package/dist/setup/strategies/nvm.js +0 -106
  148. package/dist/setup/strategies/nvm.js.map +0 -1
  149. package/dist/setup/strategies/volta.d.ts +0 -9
  150. package/dist/setup/strategies/volta.d.ts.map +0 -1
  151. package/dist/setup/strategies/volta.js +0 -111
  152. package/dist/setup/strategies/volta.js.map +0 -1
  153. package/dist/setup/types.d.ts +0 -95
  154. package/dist/setup/types.d.ts.map +0 -1
  155. package/dist/setup/types.js +0 -6
  156. package/dist/setup/types.js.map +0 -1
  157. package/dist/types/index.d.ts +0 -95
  158. package/dist/types/index.d.ts.map +0 -1
  159. package/dist/types/index.js +0 -7
  160. package/dist/types/index.js.map +0 -1
  161. package/dist/utils/command.d.ts +0 -33
  162. package/dist/utils/command.d.ts.map +0 -1
  163. package/dist/utils/command.js +0 -73
  164. package/dist/utils/command.js.map +0 -1
  165. package/dist/utils/env-config.d.ts +0 -27
  166. package/dist/utils/env-config.d.ts.map +0 -1
  167. package/dist/utils/env-config.js +0 -83
  168. package/dist/utils/env-config.js.map +0 -1
  169. package/dist/utils/version.d.ts +0 -5
  170. package/dist/utils/version.d.ts.map +0 -1
  171. package/dist/utils/version.js +0 -53
  172. package/dist/utils/version.js.map +0 -1
@@ -1,267 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.CCMConfigManager = void 0;
37
- const fs = __importStar(require("fs-extra"));
38
- const path = __importStar(require("path"));
39
- const version_1 = require("../utils/version");
40
- const env_config_1 = require("../utils/env-config");
41
- /**
42
- * CCM配置管理器
43
- * 负责管理 ~/.ccman/ 目录下的配置文件
44
- */
45
- class CCMConfigManager {
46
- constructor() {
47
- // 使用编译时生成的静态配置
48
- this.configDir = env_config_1.envConfig.getCCMConfigDir();
49
- this.configPath = path.join(this.configDir, 'config.json');
50
- this.providersDir = path.join(this.configDir, 'providers');
51
- }
52
- /**
53
- * 初始化配置目录和文件
54
- */
55
- async init() {
56
- await fs.ensureDir(this.configDir);
57
- await fs.ensureDir(this.providersDir);
58
- if (!await fs.pathExists(this.configPath)) {
59
- // 使用编译时确定的Claude配置路径
60
- const defaultConfig = {
61
- version: (0, version_1.getPackageVersion)(),
62
- currentProvider: '',
63
- claudeConfigPath: env_config_1.envConfig.getClaudeConfigPath(),
64
- providers: {},
65
- settings: {
66
- language: null,
67
- firstRun: true
68
- },
69
- metadata: {
70
- version: (0, version_1.getPackageVersion)(),
71
- createdAt: new Date().toISOString(),
72
- updatedAt: new Date().toISOString()
73
- }
74
- };
75
- await fs.writeFile(this.configPath, JSON.stringify(defaultConfig, null, 2));
76
- }
77
- }
78
- /**
79
- * 读取主配置
80
- */
81
- async readConfig() {
82
- try {
83
- if (!await fs.pathExists(this.configPath)) {
84
- await this.init();
85
- }
86
- const content = await fs.readFile(this.configPath, 'utf8');
87
- const config = JSON.parse(content);
88
- // 迁移旧版本配置
89
- const migratedConfig = await this.migrateConfig(config);
90
- // 如果配置被迁移了,立即保存新格式
91
- if (this.needsMigration(config)) {
92
- await fs.writeFile(this.configPath, JSON.stringify(migratedConfig, null, 2));
93
- }
94
- return migratedConfig;
95
- }
96
- catch (error) {
97
- throw new Error(`Failed to read CCM config: ${error}`);
98
- }
99
- }
100
- /**
101
- * 写入主配置
102
- */
103
- async writeConfig(config) {
104
- try {
105
- // 确保配置结构完整,兼容旧版本
106
- const migratedConfig = await this.migrateConfig(config);
107
- // 更新版本信息和时间戳
108
- migratedConfig.version = (0, version_1.getPackageVersion)();
109
- migratedConfig.metadata.version = (0, version_1.getPackageVersion)();
110
- migratedConfig.metadata.updatedAt = new Date().toISOString();
111
- await fs.writeFile(this.configPath, JSON.stringify(migratedConfig, null, 2));
112
- }
113
- catch (error) {
114
- throw new Error(`Failed to write CCM config: ${error}`);
115
- }
116
- }
117
- /**
118
- * 检查是否需要迁移配置
119
- */
120
- needsMigration(config) {
121
- // 只检查metadata字段,因为version字段是新添加的
122
- return !config.metadata;
123
- }
124
- /**
125
- * 执行配置迁移
126
- */
127
- async performMigration(config) {
128
- console.log('🔄 Migrating configuration from older version...');
129
- // 备份旧配置
130
- const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
131
- const backupPath = `${this.configPath}.backup-v1-${timestamp}`;
132
- if (await fs.pathExists(this.configPath)) {
133
- await fs.copy(this.configPath, backupPath);
134
- console.log(`📦 Old config backed up to: ${backupPath}`);
135
- }
136
- // 迁移到新格式
137
- const migratedConfig = {
138
- version: (0, version_1.getPackageVersion)(),
139
- currentProvider: config.currentProvider || '',
140
- claudeConfigPath: config.claudeConfigPath || env_config_1.envConfig.getClaudeConfigPath(),
141
- providers: config.providers || {},
142
- settings: {
143
- language: config.settings?.language || null,
144
- firstRun: config.settings?.firstRun ?? true
145
- },
146
- metadata: {
147
- version: (0, version_1.getPackageVersion)(),
148
- createdAt: new Date().toISOString(),
149
- updatedAt: new Date().toISOString()
150
- }
151
- };
152
- console.log('✅ Configuration migration completed');
153
- return migratedConfig;
154
- }
155
- /**
156
- * 配置迁移和兼容性处理
157
- */
158
- async migrateConfig(config) {
159
- // 检查是否需要迁移
160
- if (this.needsMigration(config)) {
161
- return await this.performMigration(config);
162
- }
163
- // 确保所有必需字段存在
164
- return {
165
- version: config.version || (0, version_1.getPackageVersion)(),
166
- currentProvider: config.currentProvider || '',
167
- claudeConfigPath: config.claudeConfigPath || env_config_1.envConfig.getClaudeConfigPath(),
168
- providers: config.providers || {},
169
- settings: {
170
- language: config.settings?.language || null,
171
- firstRun: config.settings?.firstRun ?? true
172
- },
173
- metadata: {
174
- version: config.metadata?.version || (0, version_1.getPackageVersion)(),
175
- createdAt: config.metadata?.createdAt || new Date().toISOString(),
176
- updatedAt: config.metadata?.updatedAt || new Date().toISOString()
177
- }
178
- };
179
- }
180
- /**
181
- * 读取供应商配置
182
- */
183
- async readProviderConfig(providerId) {
184
- try {
185
- const providerPath = path.join(this.providersDir, `${providerId}.json`);
186
- if (!await fs.pathExists(providerPath)) {
187
- return null;
188
- }
189
- const content = await fs.readFile(providerPath, 'utf8');
190
- return JSON.parse(content);
191
- }
192
- catch (error) {
193
- throw new Error(`Failed to read provider config: ${error}`);
194
- }
195
- }
196
- /**
197
- * 写入供应商配置
198
- */
199
- async writeProviderConfig(providerId, config) {
200
- try {
201
- const providerPath = path.join(this.providersDir, `${providerId}.json`);
202
- config.metadata.updatedAt = new Date().toISOString();
203
- await fs.writeFile(providerPath, JSON.stringify(config, null, 2));
204
- }
205
- catch (error) {
206
- throw new Error(`Failed to write provider config: ${error}`);
207
- }
208
- }
209
- /**
210
- * 删除供应商配置
211
- */
212
- async deleteProviderConfig(providerId) {
213
- try {
214
- const providerPath = path.join(this.providersDir, `${providerId}.json`);
215
- if (await fs.pathExists(providerPath)) {
216
- await fs.remove(providerPath);
217
- }
218
- }
219
- catch (error) {
220
- throw new Error(`Failed to delete provider config: ${error}`);
221
- }
222
- }
223
- /**
224
- * 列出所有供应商配置文件
225
- */
226
- async listProviderFiles() {
227
- try {
228
- if (!await fs.pathExists(this.providersDir)) {
229
- return [];
230
- }
231
- const files = await fs.readdir(this.providersDir);
232
- return files
233
- .filter((file) => file.endsWith('.json'))
234
- .map((file) => file.replace('.json', ''));
235
- }
236
- catch (error) {
237
- throw new Error(`Failed to list provider files: ${error}`);
238
- }
239
- }
240
- /**
241
- * 清除所有配置
242
- */
243
- async clearAll() {
244
- try {
245
- if (await fs.pathExists(this.configDir)) {
246
- await fs.remove(this.configDir);
247
- }
248
- }
249
- catch (error) {
250
- throw new Error(`Failed to clear all configs: ${error}`);
251
- }
252
- }
253
- /**
254
- * 获取配置目录路径
255
- */
256
- getConfigDir() {
257
- return this.configDir;
258
- }
259
- /**
260
- * 获取供应商配置目录路径
261
- */
262
- getProvidersDir() {
263
- return this.providersDir;
264
- }
265
- }
266
- exports.CCMConfigManager = CCMConfigManager;
267
- //# sourceMappingURL=CCMConfigManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CCMConfigManager.js","sourceRoot":"","sources":["../../src/core/CCMConfigManager.ts"],"names":[],"mappings":"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"}
@@ -1,39 +0,0 @@
1
- import { ClaudeSettings } from '../types';
2
- /**
3
- * Claude配置管理器
4
- * 负责直接修改 ~/.claude/settings.json
5
- */
6
- export declare class ClaudeConfigManager {
7
- private claudeConfigPath;
8
- constructor(claudeConfigPath?: string);
9
- /**
10
- * 读取Claude配置
11
- */
12
- readClaudeConfig(): Promise<ClaudeSettings | null>;
13
- /**
14
- * 选择性写入Claude配置
15
- * 只覆盖指定的key,保留其他用户配置
16
- */
17
- writeClaudeConfig(config: ClaudeSettings, skipBackup?: boolean): Promise<string | null>;
18
- /**
19
- * 备份当前Claude配置
20
- */
21
- backupClaudeConfig(): Promise<string>;
22
- /**
23
- * 恢复Claude配置
24
- */
25
- restoreClaudeConfig(backupPath: string): Promise<void>;
26
- /**
27
- * 检查配置是否已被CCM管理
28
- */
29
- private isCCMManaged;
30
- /**
31
- * 确保Claude配置目录存在(不存在则创建)
32
- */
33
- ensureClaudeConfigDir(): Promise<void>;
34
- /**
35
- * 获取Claude配置路径
36
- */
37
- getClaudeConfigPath(): string;
38
- }
39
- //# sourceMappingURL=ClaudeConfigManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ClaudeConfigManager.d.ts","sourceRoot":"","sources":["../../src/core/ClaudeConfigManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG1C;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,gBAAgB,CAAS;gBAErB,gBAAgB,CAAC,EAAE,MAAM;IAKrC;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAaxD;;;OAGG;IACG,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA+CpG;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAgB3C;;OAEG;IACG,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU5D;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACG,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5C;;OAEG;IACH,mBAAmB,IAAI,MAAM;CAG9B"}
@@ -1,161 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.ClaudeConfigManager = void 0;
37
- const fs = __importStar(require("fs-extra"));
38
- const path = __importStar(require("path"));
39
- const env_config_1 = require("../utils/env-config");
40
- /**
41
- * Claude配置管理器
42
- * 负责直接修改 ~/.claude/settings.json
43
- */
44
- class ClaudeConfigManager {
45
- constructor(claudeConfigPath) {
46
- // 优先使用传入参数,否则使用编译时确定的路径
47
- this.claudeConfigPath = claudeConfigPath || env_config_1.envConfig.getClaudeConfigPath();
48
- }
49
- /**
50
- * 读取Claude配置
51
- */
52
- async readClaudeConfig() {
53
- try {
54
- if (!await fs.pathExists(this.claudeConfigPath)) {
55
- return null;
56
- }
57
- const content = await fs.readFile(this.claudeConfigPath, 'utf8');
58
- return JSON.parse(content);
59
- }
60
- catch (error) {
61
- throw new Error(`Failed to read Claude config: ${error}`);
62
- }
63
- }
64
- /**
65
- * 选择性写入Claude配置
66
- * 只覆盖指定的key,保留其他用户配置
67
- */
68
- async writeClaudeConfig(config, skipBackup = false) {
69
- try {
70
- await fs.ensureDir(path.dirname(this.claudeConfigPath));
71
- let existingConfig = {};
72
- let backupPath = null;
73
- // 如果文件已存在,先读取现有配置
74
- if (await fs.pathExists(this.claudeConfigPath)) {
75
- const content = await fs.readFile(this.claudeConfigPath, 'utf8');
76
- existingConfig = JSON.parse(content);
77
- // 只有在需要时才备份(首次CCM接管用户配置)
78
- if (!skipBackup && !this.isCCMManaged(existingConfig)) {
79
- backupPath = await this.backupClaudeConfig();
80
- }
81
- }
82
- // 选择性覆盖只有CCM管理的key
83
- const mergedConfig = {
84
- ...existingConfig, // 保留现有配置
85
- env: {
86
- ...existingConfig.env, // 保留现有env配置
87
- // 只覆盖CCM管理的环境变量
88
- ANTHROPIC_AUTH_TOKEN: config.env.ANTHROPIC_AUTH_TOKEN,
89
- ANTHROPIC_BASE_URL: config.env.ANTHROPIC_BASE_URL,
90
- CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: config.env.CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC,
91
- CLAUDE_CODE_MAX_OUTPUT_TOKENS: config.env.CLAUDE_CODE_MAX_OUTPUT_TOKENS
92
- },
93
- permissions: {
94
- ...existingConfig.permissions, // 保留现有permissions配置
95
- // 覆盖CCM管理的权限设置
96
- allow: config.permissions.allow,
97
- deny: config.permissions.deny
98
- },
99
- // 添加CCM管理标记(隐藏字段)
100
- '_ccm_managed': true,
101
- '_ccm_version': '2.0.0'
102
- };
103
- await fs.writeFile(this.claudeConfigPath, JSON.stringify(mergedConfig, null, 2), 'utf8');
104
- return backupPath;
105
- }
106
- catch (error) {
107
- throw new Error(`Failed to write Claude config: ${error}`);
108
- }
109
- }
110
- /**
111
- * 备份当前Claude配置
112
- */
113
- async backupClaudeConfig() {
114
- try {
115
- const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
116
- const backupPath = `${this.claudeConfigPath}.backup-${timestamp}`;
117
- if (await fs.pathExists(this.claudeConfigPath)) {
118
- await fs.copy(this.claudeConfigPath, backupPath);
119
- return backupPath;
120
- }
121
- return '';
122
- }
123
- catch (error) {
124
- throw new Error(`Failed to backup Claude config: ${error}`);
125
- }
126
- }
127
- /**
128
- * 恢复Claude配置
129
- */
130
- async restoreClaudeConfig(backupPath) {
131
- try {
132
- if (await fs.pathExists(backupPath)) {
133
- await fs.copy(backupPath, this.claudeConfigPath);
134
- }
135
- }
136
- catch (error) {
137
- throw new Error(`Failed to restore Claude config: ${error}`);
138
- }
139
- }
140
- /**
141
- * 检查配置是否已被CCM管理
142
- */
143
- isCCMManaged(config) {
144
- return config && config._ccm_managed === true;
145
- }
146
- /**
147
- * 确保Claude配置目录存在(不存在则创建)
148
- */
149
- async ensureClaudeConfigDir() {
150
- const claudeDir = path.dirname(this.claudeConfigPath);
151
- await fs.ensureDir(claudeDir);
152
- }
153
- /**
154
- * 获取Claude配置路径
155
- */
156
- getClaudeConfigPath() {
157
- return this.claudeConfigPath;
158
- }
159
- }
160
- exports.ClaudeConfigManager = ClaudeConfigManager;
161
- //# sourceMappingURL=ClaudeConfigManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ClaudeConfigManager.js","sourceRoot":"","sources":["../../src/core/ClaudeConfigManager.ts"],"names":[],"mappings":"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"}
@@ -1,27 +0,0 @@
1
- import { EnvironmentCheckResult, InstallationPlan } from '../setup/types';
2
- /**
3
- * 环境管理器类
4
- */
5
- export declare class EnvironmentManager {
6
- private checker;
7
- private planner;
8
- constructor();
9
- /**
10
- * 检查环境状态
11
- */
12
- checkEnvironment(): Promise<EnvironmentCheckResult>;
13
- /**
14
- * 生成安装计划
15
- */
16
- generateInstallPlan(checkResult: EnvironmentCheckResult): Promise<InstallationPlan>;
17
- /**
18
- * 快速验证 Claude Code 是否可用
19
- * 用于在关键操作前进行检查
20
- */
21
- verifyClaudeCode(): Promise<boolean>;
22
- /**
23
- * 获取环境要求
24
- */
25
- getRequirements(): import("../setup/types").ClaudeCodeRequirements;
26
- }
27
- //# sourceMappingURL=EnvironmentManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EnvironmentManager.d.ts","sourceRoot":"","sources":["../../src/core/EnvironmentManager.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE1E;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,OAAO,CAAsB;;IAOrC;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAIzD;;OAEG;IACG,mBAAmB,CAAC,WAAW,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIzF;;;OAGG;IACG,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAK1C;;OAEG;IACH,eAAe;CAGhB"}
@@ -1,46 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EnvironmentManager = void 0;
4
- /**
5
- * 环境管理器
6
- * 负责检查和管理 Claude Code 运行环境
7
- */
8
- const checker_1 = require("../setup/checker");
9
- const planner_1 = require("../setup/planner");
10
- /**
11
- * 环境管理器类
12
- */
13
- class EnvironmentManager {
14
- constructor() {
15
- this.checker = new checker_1.EnvironmentChecker();
16
- this.planner = new planner_1.InstallationPlanner();
17
- }
18
- /**
19
- * 检查环境状态
20
- */
21
- async checkEnvironment() {
22
- return await this.checker.check();
23
- }
24
- /**
25
- * 生成安装计划
26
- */
27
- async generateInstallPlan(checkResult) {
28
- return await this.planner.generatePlan(checkResult);
29
- }
30
- /**
31
- * 快速验证 Claude Code 是否可用
32
- * 用于在关键操作前进行检查
33
- */
34
- async verifyClaudeCode() {
35
- const result = await this.checkEnvironment();
36
- return result.status === 'ready';
37
- }
38
- /**
39
- * 获取环境要求
40
- */
41
- getRequirements() {
42
- return this.checker.getRequirements();
43
- }
44
- }
45
- exports.EnvironmentManager = EnvironmentManager;
46
- //# sourceMappingURL=EnvironmentManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EnvironmentManager.js","sourceRoot":"","sources":["../../src/core/EnvironmentManager.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,8CAAsD;AACtD,8CAAuD;AAGvD;;GAEG;AACH,MAAa,kBAAkB;IAI7B;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,4BAAkB,EAAE,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,IAAI,6BAAmB,EAAE,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB;QACpB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,WAAmC;QAC3D,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IACtD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,gBAAgB;QACpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC7C,OAAO,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;IACxC,CAAC;CACF;AAtCD,gDAsCC"}
@@ -1,43 +0,0 @@
1
- import { MessageBundle } from './messages';
2
- import { LanguageStats } from '../types';
3
- export declare class LanguageManager {
4
- private configManager;
5
- constructor();
6
- /**
7
- * 检测系统是否为英文环境
8
- */
9
- private shouldUseEnglish;
10
- /**
11
- * 检查是否为首次运行
12
- */
13
- isFirstRun(): Promise<boolean>;
14
- /**
15
- * 获取当前语言设置
16
- */
17
- getCurrentLanguage(): Promise<'zh' | 'en'>;
18
- /**
19
- * 获取当前语言的消息包
20
- */
21
- getMessages(): Promise<MessageBundle>;
22
- /**
23
- * 首次运行语言选择向导
24
- */
25
- promptLanguageChoice(): Promise<'zh' | 'en' | 'auto'>;
26
- /**
27
- * 设置语言
28
- */
29
- setLanguage(language: 'zh' | 'en' | 'auto'): Promise<void>;
30
- /**
31
- * 重置语言设置(恢复首次运行状态)
32
- */
33
- resetLanguage(): Promise<void>;
34
- /**
35
- * 获取语言统计信息
36
- */
37
- getLanguageStats(): Promise<LanguageStats>;
38
- /**
39
- * 处理首次运行流程
40
- */
41
- handleFirstRun(): Promise<void>;
42
- }
43
- //# sourceMappingURL=LanguageManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LanguageManager.d.ts","sourceRoot":"","sources":["../../src/i18n/LanguageManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAoC,MAAM,YAAY,CAAC;AAE7E,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,qBAAa,eAAe;IAC1B,OAAO,CAAC,aAAa,CAAmB;;IAMxC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAWpC;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAuBhD;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC;IAK3C;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;IA8B3D;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBhE;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBpC;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC;IAWhD;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;CAWtC"}