@kaitranntt/ccs 6.7.0-dev.2 → 6.7.0-dev.3
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.
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Auto-recovery for missing or corrupted configuration
|
|
3
|
+
* Lazy initialization: Creates ~/.ccs/ structure on first CLI run
|
|
4
|
+
* Mirrors postinstall.js behavior for package managers that skip lifecycle scripts (e.g., bun)
|
|
3
5
|
*/
|
|
4
6
|
/**
|
|
5
7
|
* Recovery Manager Class
|
|
@@ -8,6 +10,8 @@ declare class RecoveryManager {
|
|
|
8
10
|
private readonly homedir;
|
|
9
11
|
private readonly ccsDir;
|
|
10
12
|
private readonly claudeDir;
|
|
13
|
+
private readonly sharedDir;
|
|
14
|
+
private readonly completionsDir;
|
|
11
15
|
private recovered;
|
|
12
16
|
constructor();
|
|
13
17
|
/**
|
|
@@ -23,7 +27,28 @@ declare class RecoveryManager {
|
|
|
23
27
|
*/
|
|
24
28
|
ensureClaudeSettings(): boolean;
|
|
25
29
|
/**
|
|
26
|
-
*
|
|
30
|
+
* Ensure ~/.ccs/shared/ directory structure exists
|
|
31
|
+
*/
|
|
32
|
+
ensureSharedDirectories(): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Ensure GLM settings file exists
|
|
35
|
+
*/
|
|
36
|
+
ensureGlmSettings(): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Ensure GLMT settings file exists
|
|
39
|
+
*/
|
|
40
|
+
ensureGlmtSettings(): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Ensure Kimi settings file exists
|
|
43
|
+
*/
|
|
44
|
+
ensureKimiSettings(): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Install shell completion files
|
|
47
|
+
*/
|
|
48
|
+
ensureShellCompletions(): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Run all recovery operations (lazy initialization)
|
|
51
|
+
* Mirrors postinstall.js behavior
|
|
27
52
|
*/
|
|
28
53
|
recoverAll(): boolean;
|
|
29
54
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recovery-manager.d.ts","sourceRoot":"","sources":["../../src/management/recovery-manager.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"recovery-manager.d.ts","sourceRoot":"","sources":["../../src/management/recovery-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAcH;;GAEG;AACH,cAAM,eAAe;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,SAAS,CAAW;;IAW5B;;OAEG;IACH,kBAAkB,IAAI,OAAO;IAS7B;;OAEG;IACH,gBAAgB,IAAI,OAAO;IAoC3B;;OAEG;IACH,oBAAoB,IAAI,OAAO;IAsB/B;;OAEG;IACH,uBAAuB,IAAI,OAAO;IAuBlC;;OAEG;IACH,iBAAiB,IAAI,OAAO;IAsB5B;;OAEG;IACH,kBAAkB,IAAI,OAAO;IA6B7B;;OAEG;IACH,kBAAkB,IAAI,OAAO;IAuB7B;;OAEG;IACH,sBAAsB,IAAI,OAAO;IA+CjC;;;OAGG;IACH,UAAU,IAAI,OAAO;IAoBrB;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAI9B;;OAEG;IACH,iBAAiB,IAAI,IAAI;CAiC1B;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* Auto-recovery for missing or corrupted configuration
|
|
4
|
+
* Lazy initialization: Creates ~/.ccs/ structure on first CLI run
|
|
5
|
+
* Mirrors postinstall.js behavior for package managers that skip lifecycle scripts (e.g., bun)
|
|
4
6
|
*/
|
|
5
7
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
8
|
if (k2 === undefined) k2 = k;
|
|
@@ -30,14 +32,22 @@ const fs = __importStar(require("fs"));
|
|
|
30
32
|
const path = __importStar(require("path"));
|
|
31
33
|
const os = __importStar(require("os"));
|
|
32
34
|
const ui_1 = require("../utils/ui");
|
|
35
|
+
/**
|
|
36
|
+
* Get CCS home directory (respects CCS_HOME env for test isolation)
|
|
37
|
+
*/
|
|
38
|
+
function getCcsHome() {
|
|
39
|
+
return process.env.CCS_HOME || os.homedir();
|
|
40
|
+
}
|
|
33
41
|
/**
|
|
34
42
|
* Recovery Manager Class
|
|
35
43
|
*/
|
|
36
44
|
class RecoveryManager {
|
|
37
45
|
constructor() {
|
|
38
|
-
this.homedir =
|
|
46
|
+
this.homedir = getCcsHome();
|
|
39
47
|
this.ccsDir = path.join(this.homedir, '.ccs');
|
|
40
48
|
this.claudeDir = path.join(this.homedir, '.claude');
|
|
49
|
+
this.sharedDir = path.join(this.ccsDir, 'shared');
|
|
50
|
+
this.completionsDir = path.join(this.ccsDir, 'completions');
|
|
41
51
|
this.recovered = [];
|
|
42
52
|
}
|
|
43
53
|
/**
|
|
@@ -70,12 +80,14 @@ class RecoveryManager {
|
|
|
70
80
|
this.recovered.push(`Backed up corrupted config.json to ${path.basename(backupPath)}`);
|
|
71
81
|
}
|
|
72
82
|
}
|
|
73
|
-
// Create default config
|
|
83
|
+
// Create default config (matches postinstall.js)
|
|
84
|
+
// NOTE: No 'default' entry - when no profile specified, CCS passes through
|
|
85
|
+
// to Claude's native auth without --settings flag
|
|
74
86
|
const defaultConfig = {
|
|
75
87
|
profiles: {
|
|
76
88
|
glm: '~/.ccs/glm.settings.json',
|
|
89
|
+
glmt: '~/.ccs/glmt.settings.json',
|
|
77
90
|
kimi: '~/.ccs/kimi.settings.json',
|
|
78
|
-
default: '~/.claude/settings.json',
|
|
79
91
|
},
|
|
80
92
|
};
|
|
81
93
|
const tmpPath = `${configPath}.tmp`;
|
|
@@ -105,13 +117,162 @@ class RecoveryManager {
|
|
|
105
117
|
return false;
|
|
106
118
|
}
|
|
107
119
|
/**
|
|
108
|
-
*
|
|
120
|
+
* Ensure ~/.ccs/shared/ directory structure exists
|
|
121
|
+
*/
|
|
122
|
+
ensureSharedDirectories() {
|
|
123
|
+
let created = false;
|
|
124
|
+
// Create shared directory
|
|
125
|
+
if (!fs.existsSync(this.sharedDir)) {
|
|
126
|
+
fs.mkdirSync(this.sharedDir, { recursive: true, mode: 0o755 });
|
|
127
|
+
this.recovered.push('Created ~/.ccs/shared/');
|
|
128
|
+
created = true;
|
|
129
|
+
}
|
|
130
|
+
// Create subdirectories
|
|
131
|
+
const subdirs = ['commands', 'skills', 'agents', 'plugins'];
|
|
132
|
+
for (const subdir of subdirs) {
|
|
133
|
+
const subdirPath = path.join(this.sharedDir, subdir);
|
|
134
|
+
if (!fs.existsSync(subdirPath)) {
|
|
135
|
+
fs.mkdirSync(subdirPath, { recursive: true, mode: 0o755 });
|
|
136
|
+
created = true;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return created;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Ensure GLM settings file exists
|
|
143
|
+
*/
|
|
144
|
+
ensureGlmSettings() {
|
|
145
|
+
const settingsPath = path.join(this.ccsDir, 'glm.settings.json');
|
|
146
|
+
if (fs.existsSync(settingsPath))
|
|
147
|
+
return false;
|
|
148
|
+
const settings = {
|
|
149
|
+
env: {
|
|
150
|
+
ANTHROPIC_BASE_URL: 'https://api.z.ai/api/anthropic',
|
|
151
|
+
ANTHROPIC_AUTH_TOKEN: 'YOUR_GLM_API_KEY_HERE',
|
|
152
|
+
ANTHROPIC_MODEL: 'glm-4.6',
|
|
153
|
+
ANTHROPIC_DEFAULT_OPUS_MODEL: 'glm-4.6',
|
|
154
|
+
ANTHROPIC_DEFAULT_SONNET_MODEL: 'glm-4.6',
|
|
155
|
+
ANTHROPIC_DEFAULT_HAIKU_MODEL: 'glm-4.6',
|
|
156
|
+
},
|
|
157
|
+
};
|
|
158
|
+
const tmpPath = `${settingsPath}.tmp`;
|
|
159
|
+
fs.writeFileSync(tmpPath, JSON.stringify(settings, null, 2) + '\n', 'utf8');
|
|
160
|
+
fs.renameSync(tmpPath, settingsPath);
|
|
161
|
+
this.recovered.push('Created ~/.ccs/glm.settings.json');
|
|
162
|
+
return true;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Ensure GLMT settings file exists
|
|
166
|
+
*/
|
|
167
|
+
ensureGlmtSettings() {
|
|
168
|
+
const settingsPath = path.join(this.ccsDir, 'glmt.settings.json');
|
|
169
|
+
if (fs.existsSync(settingsPath))
|
|
170
|
+
return false;
|
|
171
|
+
const settings = {
|
|
172
|
+
env: {
|
|
173
|
+
ANTHROPIC_BASE_URL: 'https://api.z.ai/api/coding/paas/v4/chat/completions',
|
|
174
|
+
ANTHROPIC_AUTH_TOKEN: 'YOUR_GLM_API_KEY_HERE',
|
|
175
|
+
ANTHROPIC_MODEL: 'glm-4.6',
|
|
176
|
+
ANTHROPIC_DEFAULT_OPUS_MODEL: 'glm-4.6',
|
|
177
|
+
ANTHROPIC_DEFAULT_SONNET_MODEL: 'glm-4.6',
|
|
178
|
+
ANTHROPIC_DEFAULT_HAIKU_MODEL: 'glm-4.6',
|
|
179
|
+
ANTHROPIC_TEMPERATURE: '0.2',
|
|
180
|
+
ANTHROPIC_MAX_TOKENS: '65536',
|
|
181
|
+
MAX_THINKING_TOKENS: '32768',
|
|
182
|
+
ENABLE_STREAMING: 'true',
|
|
183
|
+
ANTHROPIC_SAFE_MODE: 'false',
|
|
184
|
+
API_TIMEOUT_MS: '3000000',
|
|
185
|
+
},
|
|
186
|
+
alwaysThinkingEnabled: true,
|
|
187
|
+
};
|
|
188
|
+
const tmpPath = `${settingsPath}.tmp`;
|
|
189
|
+
fs.writeFileSync(tmpPath, JSON.stringify(settings, null, 2) + '\n', 'utf8');
|
|
190
|
+
fs.renameSync(tmpPath, settingsPath);
|
|
191
|
+
this.recovered.push('Created ~/.ccs/glmt.settings.json');
|
|
192
|
+
return true;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Ensure Kimi settings file exists
|
|
196
|
+
*/
|
|
197
|
+
ensureKimiSettings() {
|
|
198
|
+
const settingsPath = path.join(this.ccsDir, 'kimi.settings.json');
|
|
199
|
+
if (fs.existsSync(settingsPath))
|
|
200
|
+
return false;
|
|
201
|
+
const settings = {
|
|
202
|
+
env: {
|
|
203
|
+
ANTHROPIC_BASE_URL: 'https://api.kimi.com/coding/',
|
|
204
|
+
ANTHROPIC_AUTH_TOKEN: 'YOUR_KIMI_API_KEY_HERE',
|
|
205
|
+
ANTHROPIC_MODEL: 'kimi-k2-thinking-turbo',
|
|
206
|
+
ANTHROPIC_DEFAULT_OPUS_MODEL: 'kimi-k2-thinking-turbo',
|
|
207
|
+
ANTHROPIC_DEFAULT_SONNET_MODEL: 'kimi-k2-thinking-turbo',
|
|
208
|
+
ANTHROPIC_DEFAULT_HAIKU_MODEL: 'kimi-k2-thinking-turbo',
|
|
209
|
+
},
|
|
210
|
+
alwaysThinkingEnabled: true,
|
|
211
|
+
};
|
|
212
|
+
const tmpPath = `${settingsPath}.tmp`;
|
|
213
|
+
fs.writeFileSync(tmpPath, JSON.stringify(settings, null, 2) + '\n', 'utf8');
|
|
214
|
+
fs.renameSync(tmpPath, settingsPath);
|
|
215
|
+
this.recovered.push('Created ~/.ccs/kimi.settings.json');
|
|
216
|
+
return true;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Install shell completion files
|
|
220
|
+
*/
|
|
221
|
+
ensureShellCompletions() {
|
|
222
|
+
// Find the scripts/completion directory relative to this module
|
|
223
|
+
// In dist: dist/management/recovery-manager.js → scripts/completion
|
|
224
|
+
// In src: src/management/recovery-manager.ts → scripts/completion
|
|
225
|
+
const possiblePaths = [
|
|
226
|
+
path.join(__dirname, '..', '..', 'scripts', 'completion'), // from dist/management/
|
|
227
|
+
path.join(__dirname, '..', '..', '..', 'scripts', 'completion'), // alternative
|
|
228
|
+
];
|
|
229
|
+
let scriptsCompletionDir = null;
|
|
230
|
+
for (const p of possiblePaths) {
|
|
231
|
+
if (fs.existsSync(p)) {
|
|
232
|
+
scriptsCompletionDir = p;
|
|
233
|
+
break;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
if (!scriptsCompletionDir) {
|
|
237
|
+
// Completion scripts not found - skip silently (may be installed differently)
|
|
238
|
+
return false;
|
|
239
|
+
}
|
|
240
|
+
// Create completions directory
|
|
241
|
+
if (!fs.existsSync(this.completionsDir)) {
|
|
242
|
+
fs.mkdirSync(this.completionsDir, { recursive: true, mode: 0o755 });
|
|
243
|
+
}
|
|
244
|
+
const files = ['ccs.bash', 'ccs.zsh', 'ccs.fish', 'ccs.ps1'];
|
|
245
|
+
let installed = false;
|
|
246
|
+
for (const file of files) {
|
|
247
|
+
const src = path.join(scriptsCompletionDir, file);
|
|
248
|
+
const dest = path.join(this.completionsDir, file);
|
|
249
|
+
if (fs.existsSync(src) && !fs.existsSync(dest)) {
|
|
250
|
+
fs.copyFileSync(src, dest);
|
|
251
|
+
installed = true;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
if (installed) {
|
|
255
|
+
this.recovered.push('Installed shell completions to ~/.ccs/completions/');
|
|
256
|
+
}
|
|
257
|
+
return installed;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Run all recovery operations (lazy initialization)
|
|
261
|
+
* Mirrors postinstall.js behavior
|
|
109
262
|
*/
|
|
110
263
|
recoverAll() {
|
|
111
264
|
this.recovered = [];
|
|
265
|
+
// Core directories
|
|
112
266
|
this.ensureCcsDirectory();
|
|
113
|
-
this.
|
|
267
|
+
this.ensureSharedDirectories();
|
|
114
268
|
this.ensureClaudeSettings();
|
|
269
|
+
// Config files
|
|
270
|
+
this.ensureConfigJson();
|
|
271
|
+
this.ensureGlmSettings();
|
|
272
|
+
this.ensureGlmtSettings();
|
|
273
|
+
this.ensureKimiSettings();
|
|
274
|
+
// Shell completions
|
|
275
|
+
this.ensureShellCompletions();
|
|
115
276
|
return this.recovered.length > 0;
|
|
116
277
|
}
|
|
117
278
|
/**
|
|
@@ -129,8 +290,23 @@ class RecoveryManager {
|
|
|
129
290
|
console.log('');
|
|
130
291
|
console.log((0, ui_1.info)('Auto-recovery completed:'));
|
|
131
292
|
this.recovered.forEach((msg) => console.log(` - ${msg}`));
|
|
293
|
+
// Show API key hints if created profile settings
|
|
294
|
+
const createdGlm = this.recovered.some((msg) => msg.includes('glm.settings.json'));
|
|
295
|
+
const createdKimi = this.recovered.some((msg) => msg.includes('kimi.settings.json'));
|
|
296
|
+
if (createdGlm || createdKimi) {
|
|
297
|
+
console.log('');
|
|
298
|
+
console.log((0, ui_1.info)('Configure API keys:'));
|
|
299
|
+
if (createdGlm) {
|
|
300
|
+
console.log(' GLM: Edit ~/.ccs/glm.settings.json');
|
|
301
|
+
console.log(' Get key from: https://api.z.ai');
|
|
302
|
+
}
|
|
303
|
+
if (createdKimi) {
|
|
304
|
+
console.log(' Kimi: Edit ~/.ccs/kimi.settings.json');
|
|
305
|
+
console.log(' Get key from: https://www.kimi.com/coding');
|
|
306
|
+
}
|
|
307
|
+
}
|
|
132
308
|
// Show login hint if created Claude settings
|
|
133
|
-
if (this.recovered.some((msg) => msg.includes('settings.json'))) {
|
|
309
|
+
if (this.recovered.some((msg) => msg.includes('~/.claude/settings.json'))) {
|
|
134
310
|
console.log('');
|
|
135
311
|
console.log((0, ui_1.info)('Next step: Login to Claude CLI'));
|
|
136
312
|
console.log(' Run: claude /login');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recovery-manager.js","sourceRoot":"","sources":["../../src/management/recovery-manager.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"recovery-manager.js","sourceRoot":"","sources":["../../src/management/recovery-manager.ts"],"names":[],"mappings":"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"}
|