@kaitranntt/ccs 5.4.4-dev.2 → 5.5.0-dev.10
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/VERSION +1 -1
- package/config/base-kimi.settings.json +5 -1
- package/dist/ccs.js +18 -1
- package/dist/ccs.js.map +1 -1
- package/dist/cliproxy/binary-manager.d.ts +5 -0
- package/dist/cliproxy/binary-manager.d.ts.map +1 -1
- package/dist/cliproxy/binary-manager.js +18 -1
- package/dist/cliproxy/binary-manager.js.map +1 -1
- package/dist/cliproxy/cliproxy-executor.d.ts.map +1 -1
- package/dist/cliproxy/cliproxy-executor.js +31 -4
- package/dist/cliproxy/cliproxy-executor.js.map +1 -1
- package/dist/cliproxy/index.d.ts +4 -1
- package/dist/cliproxy/index.d.ts.map +1 -1
- package/dist/cliproxy/index.js +13 -1
- package/dist/cliproxy/index.js.map +1 -1
- package/dist/cliproxy/model-catalog.d.ts +60 -0
- package/dist/cliproxy/model-catalog.d.ts.map +1 -0
- package/dist/cliproxy/model-catalog.js +109 -0
- package/dist/cliproxy/model-catalog.js.map +1 -0
- package/dist/cliproxy/model-config.d.ts +28 -0
- package/dist/cliproxy/model-config.d.ts.map +1 -0
- package/dist/cliproxy/model-config.js +197 -0
- package/dist/cliproxy/model-config.js.map +1 -0
- package/dist/cliproxy/platform-detector.d.ts +2 -2
- package/dist/cliproxy/platform-detector.js +1 -1
- package/dist/commands/help-command.d.ts.map +1 -1
- package/dist/commands/help-command.js +4 -3
- package/dist/commands/help-command.js.map +1 -1
- package/dist/management/doctor.d.ts.map +1 -1
- package/dist/management/doctor.js +3 -2
- package/dist/management/doctor.js.map +1 -1
- package/dist/utils/prompt.d.ts +19 -0
- package/dist/utils/prompt.d.ts.map +1 -1
- package/dist/utils/prompt.js +92 -0
- package/dist/utils/prompt.js.map +1 -1
- package/package.json +1 -1
- package/scripts/postinstall.js +27 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/utils/prompt.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,UAAU,cAAc;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CAC7C;AAED,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,iBAAiB;IAC5B;;OAEG;WACU,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IA6DrF;;OAEG;WACU,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAwChF
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/utils/prompt.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,UAAU,cAAc;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CAC7C;AAED,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,aAAa;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,iBAAiB;IAC5B;;OAEG;WACU,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IA6DrF;;OAEG;WACU,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAwChF;;;;;;;OAOG;WACU,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IAkGtF;;;;;OAKG;WACU,cAAc,CACzB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,YAAY,EAAE,EACvB,aAAa,GAAE,aAAkB,GAChC,OAAO,CAAC,MAAM,CAAC;CA0EnB"}
|
package/dist/utils/prompt.js
CHANGED
|
@@ -113,6 +113,11 @@ class InteractivePrompt {
|
|
|
113
113
|
}
|
|
114
114
|
/**
|
|
115
115
|
* Get password/secret input (masked)
|
|
116
|
+
*
|
|
117
|
+
* Handles bracketed paste mode escape sequences that terminals send:
|
|
118
|
+
* - Start paste: ESC[200~
|
|
119
|
+
* - End paste: ESC[201~
|
|
120
|
+
* These are stripped automatically so pasted API keys work correctly.
|
|
116
121
|
*/
|
|
117
122
|
static async password(message, options = {}) {
|
|
118
123
|
const { mask = '*' } = options;
|
|
@@ -128,6 +133,7 @@ class InteractivePrompt {
|
|
|
128
133
|
process.stderr.write(promptText);
|
|
129
134
|
return new Promise((resolve) => {
|
|
130
135
|
let input = '';
|
|
136
|
+
let escapeBuffer = ''; // Buffer for escape sequence detection
|
|
131
137
|
const cleanup = () => {
|
|
132
138
|
if (process.stdin.setRawMode) {
|
|
133
139
|
process.stdin.setRawMode(false);
|
|
@@ -139,6 +145,28 @@ class InteractivePrompt {
|
|
|
139
145
|
const str = data.toString('utf8');
|
|
140
146
|
for (const char of str) {
|
|
141
147
|
const charCode = char.charCodeAt(0);
|
|
148
|
+
// ESC character (start of escape sequence)
|
|
149
|
+
if (charCode === 27) {
|
|
150
|
+
escapeBuffer = '\x1b';
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
// If we're in an escape sequence, buffer chars until we detect the pattern
|
|
154
|
+
if (escapeBuffer) {
|
|
155
|
+
escapeBuffer += char;
|
|
156
|
+
// Check for bracketed paste sequences: ESC[200~ (start) or ESC[201~ (end)
|
|
157
|
+
if (escapeBuffer === '\x1b[200~' || escapeBuffer === '\x1b[201~') {
|
|
158
|
+
// Discard bracketed paste markers
|
|
159
|
+
escapeBuffer = '';
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
162
|
+
// If buffer is getting too long without match, it's not a paste sequence
|
|
163
|
+
// Flush buffer as regular input (shouldn't happen with API keys)
|
|
164
|
+
if (escapeBuffer.length > 6) {
|
|
165
|
+
// Not a recognized sequence - skip it entirely (likely other escape seq)
|
|
166
|
+
escapeBuffer = '';
|
|
167
|
+
}
|
|
168
|
+
continue;
|
|
169
|
+
}
|
|
142
170
|
// Enter key (CR or LF)
|
|
143
171
|
if (charCode === 13 || charCode === 10) {
|
|
144
172
|
cleanup();
|
|
@@ -172,6 +200,70 @@ class InteractivePrompt {
|
|
|
172
200
|
process.stdin.resume();
|
|
173
201
|
});
|
|
174
202
|
}
|
|
203
|
+
/**
|
|
204
|
+
* Select from a numbered list
|
|
205
|
+
*
|
|
206
|
+
* Displays options with numbers and waits for user selection.
|
|
207
|
+
* Shows default with asterisk (*) prefix.
|
|
208
|
+
*/
|
|
209
|
+
static async selectFromList(prompt, options, selectOptions = {}) {
|
|
210
|
+
const { defaultIndex = 0 } = selectOptions;
|
|
211
|
+
// Check for --yes flag (automation) - use default
|
|
212
|
+
if (process.env.CCS_YES === '1' ||
|
|
213
|
+
process.argv.includes('--yes') ||
|
|
214
|
+
process.argv.includes('-y')) {
|
|
215
|
+
console.error(`[i] Using default: ${options[defaultIndex].label}`);
|
|
216
|
+
return options[defaultIndex].id;
|
|
217
|
+
}
|
|
218
|
+
// Check for --no-input flag (CI)
|
|
219
|
+
if (process.env.CCS_NO_INPUT === '1' || process.argv.includes('--no-input')) {
|
|
220
|
+
console.error(`[i] Using default: ${options[defaultIndex].label}`);
|
|
221
|
+
return options[defaultIndex].id;
|
|
222
|
+
}
|
|
223
|
+
// Non-TTY: use default
|
|
224
|
+
if (!process.stdin.isTTY) {
|
|
225
|
+
console.error(`[i] Using default: ${options[defaultIndex].label}`);
|
|
226
|
+
return options[defaultIndex].id;
|
|
227
|
+
}
|
|
228
|
+
// Display prompt and options
|
|
229
|
+
console.error(`${prompt}`);
|
|
230
|
+
console.error('');
|
|
231
|
+
options.forEach((opt, i) => {
|
|
232
|
+
const marker = i === defaultIndex ? '*' : ' ';
|
|
233
|
+
const num = String(i + 1).padStart(2);
|
|
234
|
+
console.error(` ${marker}${num}. ${opt.label}`);
|
|
235
|
+
});
|
|
236
|
+
console.error('');
|
|
237
|
+
const rl = readline.createInterface({
|
|
238
|
+
input: process.stdin,
|
|
239
|
+
output: process.stderr,
|
|
240
|
+
terminal: true,
|
|
241
|
+
});
|
|
242
|
+
const defaultNum = String(defaultIndex + 1);
|
|
243
|
+
const promptText = `Enter choice [1-${options.length}] (default: ${defaultNum}): `;
|
|
244
|
+
return new Promise((resolve) => {
|
|
245
|
+
rl.question(promptText, (answer) => {
|
|
246
|
+
rl.close();
|
|
247
|
+
const normalized = answer.trim();
|
|
248
|
+
// Empty answer: use default
|
|
249
|
+
if (normalized === '') {
|
|
250
|
+
console.error(`[i] Using default: ${options[defaultIndex].label}`);
|
|
251
|
+
resolve(options[defaultIndex].id);
|
|
252
|
+
return;
|
|
253
|
+
}
|
|
254
|
+
// Parse number
|
|
255
|
+
const num = parseInt(normalized, 10);
|
|
256
|
+
// Validate range
|
|
257
|
+
if (isNaN(num) || num < 1 || num > options.length) {
|
|
258
|
+
console.error(`[!] Invalid choice. Please enter 1-${options.length}`);
|
|
259
|
+
resolve(InteractivePrompt.selectFromList(prompt, options, selectOptions));
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
const selected = options[num - 1];
|
|
263
|
+
resolve(selected.id);
|
|
264
|
+
});
|
|
265
|
+
});
|
|
266
|
+
}
|
|
175
267
|
}
|
|
176
268
|
exports.InteractivePrompt = InteractivePrompt;
|
|
177
269
|
//# sourceMappingURL=prompt.js.map
|
package/dist/utils/prompt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/utils/prompt.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAqC;
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/utils/prompt.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/scripts/postinstall.js
CHANGED
|
@@ -336,7 +336,11 @@ function createConfigFiles() {
|
|
|
336
336
|
const kimiSettings = {
|
|
337
337
|
env: {
|
|
338
338
|
ANTHROPIC_BASE_URL: 'https://api.kimi.com/coding/',
|
|
339
|
-
ANTHROPIC_AUTH_TOKEN: 'YOUR_KIMI_API_KEY_HERE'
|
|
339
|
+
ANTHROPIC_AUTH_TOKEN: 'YOUR_KIMI_API_KEY_HERE',
|
|
340
|
+
ANTHROPIC_MODEL: 'kimi-k2-thinking-turbo',
|
|
341
|
+
ANTHROPIC_DEFAULT_OPUS_MODEL: 'kimi-k2-thinking-turbo',
|
|
342
|
+
ANTHROPIC_DEFAULT_SONNET_MODEL: 'kimi-k2-thinking-turbo',
|
|
343
|
+
ANTHROPIC_DEFAULT_HAIKU_MODEL: 'kimi-k2-thinking-turbo'
|
|
340
344
|
},
|
|
341
345
|
alwaysThinkingEnabled: true
|
|
342
346
|
};
|
|
@@ -360,12 +364,13 @@ function createConfigFiles() {
|
|
|
360
364
|
// They are created on-demand when user runs `ccs gemini` or `ccs codex` for the first time
|
|
361
365
|
// This prevents confusion - users need to run `--auth` first anyway
|
|
362
366
|
|
|
363
|
-
// Migrate existing Kimi configs to
|
|
364
|
-
// Kimi API
|
|
367
|
+
// Migrate existing Kimi configs to use kimi-k2-thinking-turbo model (v5.5.0)
|
|
368
|
+
// Kimi API now supports model specification with thinking models
|
|
365
369
|
if (fs.existsSync(kimiSettingsPath)) {
|
|
366
370
|
try {
|
|
367
371
|
const existing = JSON.parse(fs.readFileSync(kimiSettingsPath, 'utf8'));
|
|
368
372
|
let updated = false;
|
|
373
|
+
const defaultModel = 'kimi-k2-thinking-turbo';
|
|
369
374
|
|
|
370
375
|
// Ensure env object exists
|
|
371
376
|
if (!existing.env) {
|
|
@@ -373,22 +378,27 @@ function createConfigFiles() {
|
|
|
373
378
|
updated = true;
|
|
374
379
|
}
|
|
375
380
|
|
|
376
|
-
//
|
|
377
|
-
const
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
delete existing.env[field];
|
|
381
|
+
// Add/update model fields to use kimi-k2-thinking-turbo
|
|
382
|
+
const modelFields = {
|
|
383
|
+
ANTHROPIC_MODEL: defaultModel,
|
|
384
|
+
ANTHROPIC_DEFAULT_OPUS_MODEL: defaultModel,
|
|
385
|
+
ANTHROPIC_DEFAULT_SONNET_MODEL: defaultModel,
|
|
386
|
+
ANTHROPIC_DEFAULT_HAIKU_MODEL: defaultModel
|
|
387
|
+
};
|
|
388
|
+
|
|
389
|
+
for (const [field, value] of Object.entries(modelFields)) {
|
|
390
|
+
if (existing.env[field] !== value) {
|
|
391
|
+
existing.env[field] = value;
|
|
388
392
|
updated = true;
|
|
389
393
|
}
|
|
390
394
|
}
|
|
391
395
|
|
|
396
|
+
// Remove deprecated ANTHROPIC_SMALL_FAST_MODEL if present
|
|
397
|
+
if (existing.env.ANTHROPIC_SMALL_FAST_MODEL !== undefined) {
|
|
398
|
+
delete existing.env.ANTHROPIC_SMALL_FAST_MODEL;
|
|
399
|
+
updated = true;
|
|
400
|
+
}
|
|
401
|
+
|
|
392
402
|
// Ensure required fields exist
|
|
393
403
|
if (!existing.env.ANTHROPIC_BASE_URL) {
|
|
394
404
|
existing.env.ANTHROPIC_BASE_URL = 'https://api.kimi.com/coding/';
|
|
@@ -406,13 +416,11 @@ function createConfigFiles() {
|
|
|
406
416
|
const tmpPath = `${kimiSettingsPath}.tmp`;
|
|
407
417
|
fs.writeFileSync(tmpPath, JSON.stringify(existing, null, 2) + '\n', 'utf8');
|
|
408
418
|
fs.renameSync(tmpPath, kimiSettingsPath);
|
|
409
|
-
console.log('[OK] Migrated Kimi config (
|
|
410
|
-
console.log(' Kimi API no longer requires model fields (they cause 401 errors)');
|
|
419
|
+
console.log('[OK] Migrated Kimi config (v5.5.0): updated to kimi-k2-thinking-turbo model');
|
|
411
420
|
}
|
|
412
421
|
} catch (err) {
|
|
413
422
|
console.warn('[!] Kimi config migration failed:', err.message);
|
|
414
|
-
console.warn(' Existing config preserved
|
|
415
|
-
console.warn(' Manually remove ANTHROPIC_MODEL fields from ~/.ccs/kimi.settings.json');
|
|
423
|
+
console.warn(' Existing config preserved');
|
|
416
424
|
}
|
|
417
425
|
}
|
|
418
426
|
|