@kaitranntt/ccs 7.7.1 → 7.8.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/dist/auth/profile-registry.d.ts +11 -0
- package/dist/auth/profile-registry.d.ts.map +1 -1
- package/dist/auth/profile-registry.js +30 -0
- package/dist/auth/profile-registry.js.map +1 -1
- package/dist/ccs.js +12 -0
- package/dist/ccs.js.map +1 -1
- package/dist/cliproxy/auth-token-manager.d.ts +82 -0
- package/dist/cliproxy/auth-token-manager.d.ts.map +1 -0
- package/dist/cliproxy/auth-token-manager.js +187 -0
- package/dist/cliproxy/auth-token-manager.js.map +1 -0
- package/dist/cliproxy/cliproxy-executor.d.ts.map +1 -1
- package/dist/cliproxy/cliproxy-executor.js +5 -3
- package/dist/cliproxy/cliproxy-executor.js.map +1 -1
- package/dist/cliproxy/config-generator.d.ts +13 -4
- package/dist/cliproxy/config-generator.d.ts.map +1 -1
- package/dist/cliproxy/config-generator.js +37 -15
- package/dist/cliproxy/config-generator.js.map +1 -1
- package/dist/cliproxy/index.d.ts +1 -0
- package/dist/cliproxy/index.d.ts.map +1 -1
- package/dist/cliproxy/index.js +12 -1
- package/dist/cliproxy/index.js.map +1 -1
- package/dist/cliproxy/model-config.d.ts.map +1 -1
- package/dist/cliproxy/model-config.js +4 -3
- package/dist/cliproxy/model-config.js.map +1 -1
- package/dist/cliproxy/services/variant-config-adapter.d.ts +12 -2
- package/dist/cliproxy/services/variant-config-adapter.d.ts.map +1 -1
- package/dist/cliproxy/services/variant-config-adapter.js +49 -6
- package/dist/cliproxy/services/variant-config-adapter.js.map +1 -1
- package/dist/cliproxy/services/variant-service.d.ts +10 -0
- package/dist/cliproxy/services/variant-service.d.ts.map +1 -1
- package/dist/cliproxy/services/variant-service.js +63 -6
- package/dist/cliproxy/services/variant-service.js.map +1 -1
- package/dist/cliproxy/services/variant-settings.d.ts +6 -2
- package/dist/cliproxy/services/variant-settings.d.ts.map +1 -1
- package/dist/cliproxy/services/variant-settings.js +36 -8
- package/dist/cliproxy/services/variant-settings.js.map +1 -1
- package/dist/cliproxy/session-tracker.d.ts +17 -7
- package/dist/cliproxy/session-tracker.d.ts.map +1 -1
- package/dist/cliproxy/session-tracker.js +86 -40
- package/dist/cliproxy/session-tracker.js.map +1 -1
- package/dist/cliproxy/stats-fetcher.js +6 -6
- package/dist/cliproxy/stats-fetcher.js.map +1 -1
- package/dist/commands/cliproxy-command.d.ts.map +1 -1
- package/dist/commands/cliproxy-command.js +8 -3
- package/dist/commands/cliproxy-command.js.map +1 -1
- package/dist/commands/tokens-command.d.ts +19 -0
- package/dist/commands/tokens-command.d.ts.map +1 -0
- package/dist/commands/tokens-command.js +173 -0
- package/dist/commands/tokens-command.js.map +1 -0
- package/dist/config/unified-config-loader.d.ts.map +1 -1
- package/dist/config/unified-config-loader.js +4 -26
- package/dist/config/unified-config-loader.js.map +1 -1
- package/dist/config/unified-config-types.d.ts +18 -1
- package/dist/config/unified-config-types.d.ts.map +1 -1
- package/dist/config/unified-config-types.js +2 -1
- package/dist/config/unified-config-types.js.map +1 -1
- package/dist/management/checks/config-check.d.ts +12 -1
- package/dist/management/checks/config-check.d.ts.map +1 -1
- package/dist/management/checks/config-check.js +97 -41
- package/dist/management/checks/config-check.js.map +1 -1
- package/dist/management/checks/profile-check.d.ts +5 -1
- package/dist/management/checks/profile-check.d.ts.map +1 -1
- package/dist/management/checks/profile-check.js +56 -25
- package/dist/management/checks/profile-check.js.map +1 -1
- package/dist/management/recovery-manager.d.ts +0 -12
- package/dist/management/recovery-manager.d.ts.map +1 -1
- package/dist/management/recovery-manager.js +0 -92
- package/dist/management/recovery-manager.js.map +1 -1
- package/dist/types/config.d.ts +2 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js.map +1 -1
- package/dist/ui/assets/{accounts-BMhHiKKx.js → accounts-SAhf2aVn.js} +1 -1
- package/dist/ui/assets/{api-OCBlXCQa.js → api-DgjYmgeK.js} +1 -1
- package/dist/ui/assets/auth-section-c488oSia.js +1 -0
- package/dist/ui/assets/{card-CLsl42We.js → card-BrSGmssG.js} +1 -1
- package/dist/ui/assets/cliproxy-DagVtdBM.js +3 -0
- package/dist/ui/assets/cliproxy-control-panel-CqFvwaNM.js +1 -0
- package/dist/ui/assets/{confirm-dialog-BtYM09Tb.js → confirm-dialog-B0FsZkP6.js} +1 -1
- package/dist/ui/assets/{copilot-7MWkGdns.js → copilot-Bccuuvux.js} +2 -2
- package/dist/ui/assets/{globalenv-section-Co6qbs3V.js → globalenv-section-Bli-EFPP.js} +1 -1
- package/dist/ui/assets/{health-Bh1b5210.js → health-mnF1gWAc.js} +1 -1
- package/dist/ui/assets/icons-DBie6Tez.js +1 -0
- package/dist/ui/assets/{index-B_TRzkFq.js → index-B38yaYR3.js} +1 -1
- package/dist/ui/assets/{index-C8KcL2cj.js → index-Buv2h9oP.js} +1 -1
- package/dist/ui/assets/index-CytnH70K.css +1 -0
- package/dist/ui/assets/{index-CXVq9xuH.js → index-mn6heIpP.js} +1 -1
- package/dist/ui/assets/{index-CApIIy9d.js → index-t5yDkLoB.js} +12 -12
- package/dist/ui/assets/{shared-Ckt5nAjF.js → shared-B9w3h6Sd.js} +1 -1
- package/dist/ui/assets/{switch-BCFPnHGe.js → switch-CRxPpAN8.js} +1 -1
- package/dist/ui/index.html +3 -3
- package/dist/web-server/file-watcher.d.ts.map +1 -1
- package/dist/web-server/file-watcher.js +3 -2
- package/dist/web-server/file-watcher.js.map +1 -1
- package/dist/web-server/health/config-checks.d.ts +3 -2
- package/dist/web-server/health/config-checks.d.ts.map +1 -1
- package/dist/web-server/health/config-checks.js +40 -2
- package/dist/web-server/health/config-checks.js.map +1 -1
- package/dist/web-server/health/profile-checks.d.ts +2 -1
- package/dist/web-server/health/profile-checks.d.ts.map +1 -1
- package/dist/web-server/health/profile-checks.js +33 -1
- package/dist/web-server/health/profile-checks.js.map +1 -1
- package/dist/web-server/health-service.d.ts.map +1 -1
- package/dist/web-server/health-service.js +14 -0
- package/dist/web-server/health-service.js.map +1 -1
- package/dist/web-server/overview-routes.d.ts.map +1 -1
- package/dist/web-server/overview-routes.js +10 -29
- package/dist/web-server/overview-routes.js.map +1 -1
- package/dist/web-server/routes/account-routes.d.ts +3 -2
- package/dist/web-server/routes/account-routes.d.ts.map +1 -1
- package/dist/web-server/routes/account-routes.js +43 -46
- package/dist/web-server/routes/account-routes.js.map +1 -1
- package/dist/web-server/routes/route-helpers.d.ts +0 -6
- package/dist/web-server/routes/route-helpers.d.ts.map +1 -1
- package/dist/web-server/routes/route-helpers.js +1 -24
- package/dist/web-server/routes/route-helpers.js.map +1 -1
- package/dist/web-server/routes/settings-routes.d.ts.map +1 -1
- package/dist/web-server/routes/settings-routes.js +161 -13
- package/dist/web-server/routes/settings-routes.js.map +1 -1
- package/dist/web-server/routes/variant-routes.d.ts +2 -0
- package/dist/web-server/routes/variant-routes.d.ts.map +1 -1
- package/dist/web-server/routes/variant-routes.js +44 -98
- package/dist/web-server/routes/variant-routes.js.map +1 -1
- package/package.json +1 -1
- package/dist/ui/assets/cliproxy-C09j9zae.js +0 -3
- package/dist/ui/assets/cliproxy-control-panel-CM6pDYK8.js +0 -1
- package/dist/ui/assets/icons-B9mnOvwW.js +0 -1
- package/dist/ui/assets/index-CK2sRZzn.css +0 -1
|
@@ -14,8 +14,9 @@
|
|
|
14
14
|
* Version 3 = WebSearch config with model configuration for Gemini/OpenCode
|
|
15
15
|
* Version 4 = Copilot API integration (GitHub Copilot proxy)
|
|
16
16
|
* Version 5 = Remote proxy configuration (connect to remote CLIProxyAPI)
|
|
17
|
+
* Version 6 = Customizable auth tokens (API key and management secret)
|
|
17
18
|
*/
|
|
18
|
-
export declare const UNIFIED_CONFIG_VERSION =
|
|
19
|
+
export declare const UNIFIED_CONFIG_VERSION = 6;
|
|
19
20
|
/**
|
|
20
21
|
* Account configuration (formerly in profiles.json).
|
|
21
22
|
* Represents an isolated Claude instance via CLAUDE_CONFIG_DIR.
|
|
@@ -58,6 +59,20 @@ export interface CLIProxyVariantConfig {
|
|
|
58
59
|
account?: string;
|
|
59
60
|
/** Path to settings file (e.g., "~/.ccs/gemini-custom.settings.json") */
|
|
60
61
|
settings?: string;
|
|
62
|
+
/** Unique port for variant isolation (8318-8417) */
|
|
63
|
+
port?: number;
|
|
64
|
+
/** Per-variant auth override (optional) */
|
|
65
|
+
auth?: CLIProxyAuthConfig;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* CLIProxy authentication configuration.
|
|
69
|
+
* Allows customization of API key and management secret for CLIProxyAPI.
|
|
70
|
+
*/
|
|
71
|
+
export interface CLIProxyAuthConfig {
|
|
72
|
+
/** API key for CCS-managed requests (default: 'ccs-internal-managed') */
|
|
73
|
+
api_key?: string;
|
|
74
|
+
/** Management secret for Control Panel login (default: 'ccs') */
|
|
75
|
+
management_secret?: string;
|
|
61
76
|
}
|
|
62
77
|
/**
|
|
63
78
|
* CLIProxy logging configuration.
|
|
@@ -84,6 +99,8 @@ export interface CLIProxyConfig {
|
|
|
84
99
|
logging?: CLIProxyLoggingConfig;
|
|
85
100
|
/** Kiro: disable incognito browser mode (use normal browser to save credentials) */
|
|
86
101
|
kiro_no_incognito?: boolean;
|
|
102
|
+
/** Global auth configuration for CLIProxyAPI */
|
|
103
|
+
auth?: CLIProxyAuthConfig;
|
|
87
104
|
}
|
|
88
105
|
/**
|
|
89
106
|
* User preferences.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unified-config-types.d.ts","sourceRoot":"","sources":["../../src/config/unified-config-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH
|
|
1
|
+
{"version":3,"file":"unified-config-types.d.ts","sourceRoot":"","sources":["../../src/config/unified-config-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,8 +17,9 @@ exports.isUnifiedConfig = exports.createEmptyUnifiedConfig = exports.DEFAULT_CLI
|
|
|
17
17
|
* Version 3 = WebSearch config with model configuration for Gemini/OpenCode
|
|
18
18
|
* Version 4 = Copilot API integration (GitHub Copilot proxy)
|
|
19
19
|
* Version 5 = Remote proxy configuration (connect to remote CLIProxyAPI)
|
|
20
|
+
* Version 6 = Customizable auth tokens (API key and management secret)
|
|
20
21
|
*/
|
|
21
|
-
exports.UNIFIED_CONFIG_VERSION =
|
|
22
|
+
exports.UNIFIED_CONFIG_VERSION = 6;
|
|
22
23
|
/**
|
|
23
24
|
* Default global env vars for third-party profiles.
|
|
24
25
|
* These disable Claude Code telemetry/reporting since we're using proxy.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unified-config-types.js","sourceRoot":"","sources":["../../src/config/unified-config-types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH
|
|
1
|
+
{"version":3,"file":"unified-config-types.js","sourceRoot":"","sources":["../../src/config/unified-config-types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH;;;;;;;GAOG;AACU,QAAA,sBAAsB,GAAG,CAAC,CAAC;AAiQxC;;;GAGG;AACU,QAAA,kBAAkB,GAA2B;IACxD,mBAAmB,EAAE,GAAG;IACxB,uBAAuB,EAAE,GAAG;IAC5B,iBAAiB,EAAE,GAAG;CACvB,CAAC;AA2DF;;;;GAIG;AACU,QAAA,sBAAsB,GAAkB;IACnD,OAAO,EAAE,KAAK;IACd,UAAU,EAAE,KAAK;IACjB,IAAI,EAAE,IAAI;IACV,YAAY,EAAE,YAAY;IAC1B,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,IAAI;IACnB,KAAK,EAAE,SAAS,EAAE,uBAAuB;CAC1C,CAAC;AAEF;;;;GAIG;AACU,QAAA,8BAA8B,GAAyB;IAClE,MAAM,EAAE;QACN,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,EAAE;QACR,2FAA2F;QAC3F,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,EAAE;KACf;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,KAAK;KAClB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,IAAI;QACV,UAAU,EAAE,IAAI;KACjB;CACF,CAAC;AAEF;;GAEG;AACH,SAAgB,wBAAwB;IACtC,OAAO;QACL,OAAO,EAAE,8BAAsB;QAC/B,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE;YACR,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;YACtE,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE;gBACP,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,KAAK;aACnB;SACF;QACD,WAAW,EAAE;YACX,KAAK,EAAE,QAAQ;YACf,SAAS,EAAE,KAAK;YAChB,WAAW,EAAE,IAAI;SAClB;QACD,SAAS,EAAE;YACT,OAAO,EAAE,IAAI;YACb,SAAS,EAAE;gBACT,MAAM,EAAE;oBACN,OAAO,EAAE,IAAI;oBACb,KAAK,EAAE,kBAAkB;oBACzB,OAAO,EAAE,EAAE;iBACZ;gBACD,QAAQ,EAAE;oBACR,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,oBAAoB;oBAC3B,OAAO,EAAE,EAAE;iBACZ;gBACD,IAAI,EAAE;oBACJ,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,EAAE;iBACZ;aACF;SACF;QACD,UAAU,EAAE;YACV,OAAO,EAAE,IAAI;YACb,GAAG,EAAE,EAAE,GAAG,0BAAkB,EAAE;SAC/B;QACD,OAAO,EAAE,EAAE,GAAG,8BAAsB,EAAE;QACtC,eAAe,EAAE,EAAE,GAAG,sCAA8B,EAAE;KACvD,CAAC;AACJ,CAAC;AA9CD,4DA8CC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAC,GAAY;IAC1C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC1D,MAAM,MAAM,GAAG,GAA8B,CAAC;IAC9C,mEAAmE;IACnE,oFAAoF;IACpF,OAAO,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;AACnE,CAAC;AAND,0CAMC"}
|
|
@@ -3,13 +3,24 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { HealthCheck, IHealthChecker } from './types';
|
|
5
5
|
/**
|
|
6
|
-
* Check CCS config files exist and are valid
|
|
6
|
+
* Check CCS config files exist and are valid
|
|
7
|
+
* - Prefers config.yaml (v2) over config.json (legacy)
|
|
8
|
+
* - Settings files are optional (only checked if profile exists)
|
|
7
9
|
*/
|
|
8
10
|
export declare class ConfigFilesChecker implements IHealthChecker {
|
|
9
11
|
name: string;
|
|
10
12
|
private readonly ccsDir;
|
|
11
13
|
constructor();
|
|
12
14
|
run(results: HealthCheck): void;
|
|
15
|
+
/**
|
|
16
|
+
* Check main configuration file (config.yaml preferred, config.json fallback)
|
|
17
|
+
*/
|
|
18
|
+
private checkMainConfig;
|
|
19
|
+
/**
|
|
20
|
+
* Check optional settings files (only if corresponding profile is configured)
|
|
21
|
+
* These files are NOT required - they're only created when user configures a profile
|
|
22
|
+
*/
|
|
23
|
+
private checkOptionalSettingsFiles;
|
|
13
24
|
}
|
|
14
25
|
/**
|
|
15
26
|
* Check Claude settings.json
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-check.d.ts","sourceRoot":"","sources":["../../../src/management/checks/config-check.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAiB,MAAM,SAAS,CAAC;AAIrE
|
|
1
|
+
{"version":3,"file":"config-check.d.ts","sourceRoot":"","sources":["../../../src/management/checks/config-check.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAiB,MAAM,SAAS,CAAC;AAIrE;;;;GAIG;AACH,qBAAa,kBAAmB,YAAW,cAAc;IACvD,IAAI,SAAkB;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;;IAMhC,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAU/B;;OAEG;IACH,OAAO,CAAC,eAAe;IA+EvB;;;OAGG;IACH,OAAO,CAAC,0BAA0B;CAiEnC;AAED;;GAEG;AACH,qBAAa,qBAAsB,YAAW,cAAc;IAC1D,IAAI,SAAqB;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;;IAMnC,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;CAmChC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAM1D"}
|
|
@@ -34,7 +34,9 @@ const ui_1 = require("../../utils/ui");
|
|
|
34
34
|
const types_1 = require("./types");
|
|
35
35
|
const ora = (0, types_1.createSpinner)();
|
|
36
36
|
/**
|
|
37
|
-
* Check CCS config files exist and are valid
|
|
37
|
+
* Check CCS config files exist and are valid
|
|
38
|
+
* - Prefers config.yaml (v2) over config.json (legacy)
|
|
39
|
+
* - Settings files are optional (only checked if profile exists)
|
|
38
40
|
*/
|
|
39
41
|
class ConfigFilesChecker {
|
|
40
42
|
constructor() {
|
|
@@ -42,52 +44,106 @@ class ConfigFilesChecker {
|
|
|
42
44
|
this.ccsDir = path.join(os.homedir(), '.ccs');
|
|
43
45
|
}
|
|
44
46
|
run(results) {
|
|
45
|
-
const files = [
|
|
46
|
-
{ path: path.join(this.ccsDir, 'config.json'), name: 'config.json', key: 'config.json' },
|
|
47
|
-
{
|
|
48
|
-
path: path.join(this.ccsDir, 'glm.settings.json'),
|
|
49
|
-
name: 'glm.settings.json',
|
|
50
|
-
key: 'GLM Settings',
|
|
51
|
-
profile: 'glm',
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
path: path.join(this.ccsDir, 'kimi.settings.json'),
|
|
55
|
-
name: 'kimi.settings.json',
|
|
56
|
-
key: 'Kimi Settings',
|
|
57
|
-
profile: 'kimi',
|
|
58
|
-
},
|
|
59
|
-
];
|
|
60
47
|
const { DelegationValidator } = require('../../utils/delegation-validator');
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
48
|
+
// Check main config file (yaml preferred, json fallback)
|
|
49
|
+
this.checkMainConfig(results);
|
|
50
|
+
// Check optional settings files (only if profile exists in config)
|
|
51
|
+
this.checkOptionalSettingsFiles(results, DelegationValidator);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Check main configuration file (config.yaml preferred, config.json fallback)
|
|
55
|
+
*/
|
|
56
|
+
checkMainConfig(results) {
|
|
57
|
+
const configYamlPath = path.join(this.ccsDir, 'config.yaml');
|
|
58
|
+
const configJsonPath = path.join(this.ccsDir, 'config.json');
|
|
59
|
+
const yamlExists = fs.existsSync(configYamlPath);
|
|
60
|
+
const jsonExists = fs.existsSync(configJsonPath);
|
|
61
|
+
// Check config.yaml first (preferred format)
|
|
62
|
+
if (yamlExists) {
|
|
63
|
+
const spinner = ora('Checking config.yaml').start();
|
|
64
|
+
try {
|
|
65
|
+
const yaml = require('js-yaml');
|
|
66
|
+
const content = fs.readFileSync(configYamlPath, 'utf8');
|
|
67
|
+
yaml.load(content);
|
|
68
|
+
spinner.succeed();
|
|
69
|
+
console.log(` ${(0, ui_1.ok)('config.yaml'.padEnd(22))} Valid`);
|
|
70
|
+
results.addCheck('config.yaml', 'success', undefined, undefined, {
|
|
71
|
+
status: 'OK',
|
|
72
|
+
info: 'Valid',
|
|
73
|
+
});
|
|
74
|
+
// Inform if legacy config.json also exists (purely informational, not a check)
|
|
75
|
+
if (jsonExists) {
|
|
76
|
+
console.log(` ${(0, ui_1.info)('config.json'.padEnd(22))} Legacy (ignored)`);
|
|
77
|
+
}
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
catch (e) {
|
|
64
81
|
spinner.fail();
|
|
65
|
-
console.log(` ${(0, ui_1.fail)(
|
|
66
|
-
results.addCheck(
|
|
82
|
+
console.log(` ${(0, ui_1.fail)('config.yaml'.padEnd(22))} Invalid YAML`);
|
|
83
|
+
results.addCheck('config.yaml', 'error', `Invalid YAML: ${e.message}`, `Backup and recreate: mv ${configYamlPath} ${configYamlPath}.backup && npm install -g @kaitranntt/ccs --force`, { status: 'ERROR', info: 'Invalid YAML' });
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
// Fallback to config.json (legacy format)
|
|
88
|
+
if (jsonExists) {
|
|
89
|
+
const spinner = ora('Checking config.json').start();
|
|
90
|
+
try {
|
|
91
|
+
const content = fs.readFileSync(configJsonPath, 'utf8');
|
|
92
|
+
JSON.parse(content);
|
|
93
|
+
spinner.succeed();
|
|
94
|
+
console.log(` ${(0, ui_1.ok)('config.json'.padEnd(22))} Valid (legacy)`);
|
|
95
|
+
results.addCheck('config.json', 'success', undefined, undefined, {
|
|
96
|
+
status: 'OK',
|
|
97
|
+
info: 'Valid (legacy)',
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
catch (e) {
|
|
101
|
+
spinner.fail();
|
|
102
|
+
console.log(` ${(0, ui_1.fail)('config.json'.padEnd(22))} Invalid JSON`);
|
|
103
|
+
results.addCheck('config.json', 'error', `Invalid JSON: ${e.message}`, `Backup and recreate: mv ${configJsonPath} ${configJsonPath}.backup && npm install -g @kaitranntt/ccs --force`, { status: 'ERROR', info: 'Invalid JSON' });
|
|
104
|
+
}
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
// Neither exists - error
|
|
108
|
+
const spinner = ora('Checking config').start();
|
|
109
|
+
spinner.fail();
|
|
110
|
+
console.log(` ${(0, ui_1.fail)('config.yaml'.padEnd(22))} Not found`);
|
|
111
|
+
results.addCheck('config.yaml', 'error', 'No configuration file found (config.yaml or config.json)', 'Run: npm install -g @kaitranntt/ccs --force', { status: 'ERROR', info: 'Not found' });
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Check optional settings files (only if corresponding profile is configured)
|
|
115
|
+
* These files are NOT required - they're only created when user configures a profile
|
|
116
|
+
*/
|
|
117
|
+
checkOptionalSettingsFiles(results, DelegationValidator) {
|
|
118
|
+
// Settings files to check (only if profile exists)
|
|
119
|
+
const settingsFiles = [
|
|
120
|
+
{ name: 'glm.settings.json', profile: 'glm', displayName: 'GLM Settings' },
|
|
121
|
+
{ name: 'kimi.settings.json', profile: 'kimi', displayName: 'Kimi Settings' },
|
|
122
|
+
];
|
|
123
|
+
for (const file of settingsFiles) {
|
|
124
|
+
const filePath = path.join(this.ccsDir, file.name);
|
|
125
|
+
const exists = fs.existsSync(filePath);
|
|
126
|
+
if (!exists) {
|
|
127
|
+
// Not an error - these are optional files
|
|
128
|
+
// Only show info if user might expect them
|
|
67
129
|
continue;
|
|
68
130
|
}
|
|
69
|
-
//
|
|
131
|
+
// File exists - validate it
|
|
132
|
+
const spinner = ora(`Checking ${file.name}`).start();
|
|
70
133
|
try {
|
|
71
|
-
const content = fs.readFileSync(
|
|
134
|
+
const content = fs.readFileSync(filePath, 'utf8');
|
|
72
135
|
JSON.parse(content);
|
|
73
|
-
//
|
|
74
|
-
|
|
136
|
+
// Check if API key is properly configured
|
|
137
|
+
const validation = DelegationValidator.validate(file.profile);
|
|
138
|
+
let fileInfo = 'Valid JSON';
|
|
75
139
|
let status = 'OK';
|
|
76
|
-
if (
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
else if (validation.error && validation.error.includes('placeholder')) {
|
|
84
|
-
fileInfo = 'Placeholder key';
|
|
85
|
-
status = 'WARN';
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
fileInfo = 'Valid JSON';
|
|
89
|
-
status = 'OK';
|
|
90
|
-
}
|
|
140
|
+
if (validation.valid) {
|
|
141
|
+
fileInfo = 'Key configured';
|
|
142
|
+
status = 'OK';
|
|
143
|
+
}
|
|
144
|
+
else if (validation.error && validation.error.includes('placeholder')) {
|
|
145
|
+
fileInfo = 'Placeholder key';
|
|
146
|
+
status = 'WARN';
|
|
91
147
|
}
|
|
92
148
|
if (status === 'WARN') {
|
|
93
149
|
spinner.warn();
|
|
@@ -105,7 +161,7 @@ class ConfigFilesChecker {
|
|
|
105
161
|
catch (e) {
|
|
106
162
|
spinner.fail();
|
|
107
163
|
console.log(` ${(0, ui_1.fail)(file.name.padEnd(22))} Invalid JSON`);
|
|
108
|
-
results.addCheck(file.name, 'error', `Invalid JSON: ${e.message}`, `Backup and recreate: mv ${
|
|
164
|
+
results.addCheck(file.name, 'error', `Invalid JSON: ${e.message}`, `Backup and recreate: mv ${filePath} ${filePath}.backup`, { status: 'ERROR', info: 'Invalid JSON' });
|
|
109
165
|
}
|
|
110
166
|
}
|
|
111
167
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-check.js","sourceRoot":"","sources":["../../../src/management/checks/config-check.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AACzB,
|
|
1
|
+
{"version":3,"file":"config-check.js","sourceRoot":"","sources":["../../../src/management/checks/config-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,13 +3,17 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { HealthCheck, IHealthChecker } from './types';
|
|
5
5
|
/**
|
|
6
|
-
* Check profile configurations in config.json
|
|
6
|
+
* Check profile configurations in config.yaml (preferred) or config.json (legacy)
|
|
7
7
|
*/
|
|
8
8
|
export declare class ProfilesChecker implements IHealthChecker {
|
|
9
9
|
name: string;
|
|
10
10
|
private readonly ccsDir;
|
|
11
11
|
constructor();
|
|
12
12
|
run(results: HealthCheck): void;
|
|
13
|
+
/**
|
|
14
|
+
* Validate profiles object from parsed config
|
|
15
|
+
*/
|
|
16
|
+
private validateProfiles;
|
|
13
17
|
}
|
|
14
18
|
/**
|
|
15
19
|
* Check instance directories (account-based profiles)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-check.d.ts","sourceRoot":"","sources":["../../../src/management/checks/profile-check.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAiB,MAAM,SAAS,CAAC;AAIrE;;GAEG;AACH,qBAAa,eAAgB,YAAW,cAAc;IACpD,IAAI,SAAc;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;;IAMhC,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"profile-check.d.ts","sourceRoot":"","sources":["../../../src/management/checks/profile-check.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAiB,MAAM,SAAS,CAAC;AAIrE;;GAEG;AACH,qBAAa,eAAgB,YAAW,cAAc;IACpD,IAAI,SAAc;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;;IAMhC,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAmE/B;;OAEG;IACH,OAAO,CAAC,gBAAgB;CA6BzB;AAED;;GAEG;AACH,qBAAa,gBAAiB,YAAW,cAAc;IACrD,IAAI,SAAe;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;;IAMhC,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;CA0BhC;AAED;;GAEG;AACH,qBAAa,iBAAkB,YAAW,cAAc;IACtD,IAAI,SAAgB;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;;IAMhC,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;CAyDhC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAQ3D"}
|
|
@@ -34,7 +34,7 @@ const ui_1 = require("../../utils/ui");
|
|
|
34
34
|
const types_1 = require("./types");
|
|
35
35
|
const ora = (0, types_1.createSpinner)();
|
|
36
36
|
/**
|
|
37
|
-
* Check profile configurations in config.json
|
|
37
|
+
* Check profile configurations in config.yaml (preferred) or config.json (legacy)
|
|
38
38
|
*/
|
|
39
39
|
class ProfilesChecker {
|
|
40
40
|
constructor() {
|
|
@@ -43,37 +43,68 @@ class ProfilesChecker {
|
|
|
43
43
|
}
|
|
44
44
|
run(results) {
|
|
45
45
|
const spinner = ora('Checking profiles').start();
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
46
|
+
const configYamlPath = path.join(this.ccsDir, 'config.yaml');
|
|
47
|
+
const configJsonPath = path.join(this.ccsDir, 'config.json');
|
|
48
|
+
const yamlExists = fs.existsSync(configYamlPath);
|
|
49
|
+
const jsonExists = fs.existsSync(configJsonPath);
|
|
50
|
+
// Check config.yaml first (preferred format)
|
|
51
|
+
if (yamlExists) {
|
|
52
|
+
try {
|
|
53
|
+
const yaml = require('js-yaml');
|
|
54
|
+
const content = fs.readFileSync(configYamlPath, 'utf8');
|
|
55
|
+
const config = yaml.load(content);
|
|
56
|
+
this.validateProfiles(config, 'config.yaml', spinner, results);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
catch (e) {
|
|
60
|
+
spinner.fail();
|
|
61
|
+
console.log(` ${(0, ui_1.fail)('Profiles'.padEnd(22))} Invalid config.yaml: ${e.message}`);
|
|
62
|
+
results.addCheck('Profiles', 'error', `Invalid config.yaml: ${e.message}`, undefined, {
|
|
63
|
+
status: 'ERROR',
|
|
64
|
+
info: e.message,
|
|
65
|
+
});
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
51
68
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
69
|
+
// Fallback to config.json (legacy format)
|
|
70
|
+
if (jsonExists) {
|
|
71
|
+
try {
|
|
72
|
+
const config = JSON.parse(fs.readFileSync(configJsonPath, 'utf8'));
|
|
73
|
+
this.validateProfiles(config, 'config.json', spinner, results);
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
catch (e) {
|
|
55
77
|
spinner.fail();
|
|
56
|
-
console.log(` ${(0, ui_1.fail)('Profiles'.padEnd(22))}
|
|
57
|
-
results.addCheck('Profiles', 'error',
|
|
78
|
+
console.log(` ${(0, ui_1.fail)('Profiles'.padEnd(22))} Invalid config.json: ${e.message}`);
|
|
79
|
+
results.addCheck('Profiles', 'error', `Invalid config.json: ${e.message}`, undefined, {
|
|
80
|
+
status: 'ERROR',
|
|
81
|
+
info: e.message,
|
|
82
|
+
});
|
|
58
83
|
return;
|
|
59
84
|
}
|
|
60
|
-
const profileCount = Object.keys(config.profiles).length;
|
|
61
|
-
const profileNames = Object.keys(config.profiles).join(', ');
|
|
62
|
-
spinner.succeed();
|
|
63
|
-
console.log(` ${(0, ui_1.ok)('Profiles'.padEnd(22))} ${profileCount} configured (${profileNames})`);
|
|
64
|
-
results.addCheck('Profiles', 'success', `${profileCount} profiles configured`, undefined, {
|
|
65
|
-
status: 'OK',
|
|
66
|
-
info: `${profileCount} configured (${profileNames.length > 30 ? profileNames.substring(0, 27) + '...' : profileNames})`,
|
|
67
|
-
});
|
|
68
85
|
}
|
|
69
|
-
|
|
86
|
+
// Neither exists
|
|
87
|
+
spinner.info();
|
|
88
|
+
console.log(` ${(0, ui_1.info)('Profiles'.padEnd(22))} No config file found (config.yaml or config.json)`);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Validate profiles object from parsed config
|
|
92
|
+
*/
|
|
93
|
+
validateProfiles(config, configFileName, spinner, results) {
|
|
94
|
+
if (!config.profiles || typeof config.profiles !== 'object') {
|
|
70
95
|
spinner.fail();
|
|
71
|
-
console.log(` ${(0, ui_1.fail)('Profiles'.padEnd(22))} ${
|
|
72
|
-
results.addCheck('Profiles', 'error',
|
|
73
|
-
|
|
74
|
-
info: e.message,
|
|
75
|
-
});
|
|
96
|
+
console.log(` ${(0, ui_1.fail)('Profiles'.padEnd(22))} Missing profiles object in ${configFileName}`);
|
|
97
|
+
results.addCheck('Profiles', 'error', `${configFileName} missing profiles object`, 'Run: npm install -g @kaitranntt/ccs --force', { status: 'ERROR', info: 'Missing profiles object' });
|
|
98
|
+
return;
|
|
76
99
|
}
|
|
100
|
+
const profileCount = Object.keys(config.profiles).length;
|
|
101
|
+
const profileNames = Object.keys(config.profiles).join(', ');
|
|
102
|
+
spinner.succeed();
|
|
103
|
+
console.log(` ${(0, ui_1.ok)('Profiles'.padEnd(22))} ${profileCount} configured (${profileNames})`);
|
|
104
|
+
results.addCheck('Profiles', 'success', `${profileCount} profiles configured`, undefined, {
|
|
105
|
+
status: 'OK',
|
|
106
|
+
info: `${profileCount} configured (${profileNames.length > 30 ? profileNames.substring(0, 27) + '...' : profileNames})`,
|
|
107
|
+
});
|
|
77
108
|
}
|
|
78
109
|
}
|
|
79
110
|
exports.ProfilesChecker = ProfilesChecker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-check.js","sourceRoot":"","sources":["../../../src/management/checks/profile-check.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AACzB,uCAAsD;AACtD,mCAAqE;AAErE,MAAM,GAAG,GAAG,IAAA,qBAAa,GAAE,CAAC;AAE5B;;GAEG;AACH,MAAa,eAAe;IAI1B;QAHA,SAAI,GAAG,UAAU,CAAC;QAIhB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,GAAG,CAAC,OAAoB;QACtB,MAAM,OAAO,GAAG,GAAG,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;QACjD,MAAM,
|
|
1
|
+
{"version":3,"file":"profile-check.js","sourceRoot":"","sources":["../../../src/management/checks/profile-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,18 +31,6 @@ declare class RecoveryManager {
|
|
|
31
31
|
* Ensure ~/.ccs/shared/ directory structure exists
|
|
32
32
|
*/
|
|
33
33
|
ensureSharedDirectories(): boolean;
|
|
34
|
-
/**
|
|
35
|
-
* Ensure GLM settings file exists
|
|
36
|
-
*/
|
|
37
|
-
ensureGlmSettings(): boolean;
|
|
38
|
-
/**
|
|
39
|
-
* Ensure GLMT settings file exists
|
|
40
|
-
*/
|
|
41
|
-
ensureGlmtSettings(): boolean;
|
|
42
|
-
/**
|
|
43
|
-
* Ensure Kimi settings file exists
|
|
44
|
-
*/
|
|
45
|
-
ensureKimiSettings(): boolean;
|
|
46
34
|
/**
|
|
47
35
|
* Install shell completion files
|
|
48
36
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recovery-manager.d.ts","sourceRoot":"","sources":["../../src/management/recovery-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoBH;;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;;;OAGG;IACH,gBAAgB,IAAI,OAAO;IA4C3B;;OAEG;IACH,oBAAoB,IAAI,OAAO;IAsB/B;;OAEG;IACH,uBAAuB,IAAI,OAAO;IAuBlC;;OAEG;IACH,
|
|
1
|
+
{"version":3,"file":"recovery-manager.d.ts","sourceRoot":"","sources":["../../src/management/recovery-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoBH;;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;;;OAGG;IACH,gBAAgB,IAAI,OAAO;IA4C3B;;OAEG;IACH,oBAAoB,IAAI,OAAO;IAsB/B;;OAEG;IACH,uBAAuB,IAAI,OAAO;IAuBlC;;OAEG;IACH,sBAAsB,IAAI,OAAO;IA+CjC;;;;;;OAMG;IACH,UAAU,IAAI,OAAO;IAiBrB;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAI9B;;OAEG;IACH,iBAAiB,IAAI,IAAI;CAgB1B;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -151,83 +151,6 @@ class RecoveryManager {
|
|
|
151
151
|
}
|
|
152
152
|
return created;
|
|
153
153
|
}
|
|
154
|
-
/**
|
|
155
|
-
* Ensure GLM settings file exists
|
|
156
|
-
*/
|
|
157
|
-
ensureGlmSettings() {
|
|
158
|
-
const settingsPath = path.join(this.ccsDir, 'glm.settings.json');
|
|
159
|
-
if (fs.existsSync(settingsPath))
|
|
160
|
-
return false;
|
|
161
|
-
const settings = {
|
|
162
|
-
env: {
|
|
163
|
-
ANTHROPIC_BASE_URL: 'https://api.z.ai/api/anthropic',
|
|
164
|
-
ANTHROPIC_AUTH_TOKEN: 'YOUR_GLM_API_KEY_HERE',
|
|
165
|
-
ANTHROPIC_MODEL: 'glm-4.6',
|
|
166
|
-
ANTHROPIC_DEFAULT_OPUS_MODEL: 'glm-4.6',
|
|
167
|
-
ANTHROPIC_DEFAULT_SONNET_MODEL: 'glm-4.6',
|
|
168
|
-
ANTHROPIC_DEFAULT_HAIKU_MODEL: 'glm-4.6',
|
|
169
|
-
},
|
|
170
|
-
};
|
|
171
|
-
const tmpPath = `${settingsPath}.tmp`;
|
|
172
|
-
fs.writeFileSync(tmpPath, JSON.stringify(settings, null, 2) + '\n', 'utf8');
|
|
173
|
-
fs.renameSync(tmpPath, settingsPath);
|
|
174
|
-
this.recovered.push('Created ~/.ccs/glm.settings.json');
|
|
175
|
-
return true;
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* Ensure GLMT settings file exists
|
|
179
|
-
*/
|
|
180
|
-
ensureGlmtSettings() {
|
|
181
|
-
const settingsPath = path.join(this.ccsDir, 'glmt.settings.json');
|
|
182
|
-
if (fs.existsSync(settingsPath))
|
|
183
|
-
return false;
|
|
184
|
-
const settings = {
|
|
185
|
-
env: {
|
|
186
|
-
ANTHROPIC_BASE_URL: 'https://api.z.ai/api/coding/paas/v4/chat/completions',
|
|
187
|
-
ANTHROPIC_AUTH_TOKEN: 'YOUR_GLM_API_KEY_HERE',
|
|
188
|
-
ANTHROPIC_MODEL: 'glm-4.6',
|
|
189
|
-
ANTHROPIC_DEFAULT_OPUS_MODEL: 'glm-4.6',
|
|
190
|
-
ANTHROPIC_DEFAULT_SONNET_MODEL: 'glm-4.6',
|
|
191
|
-
ANTHROPIC_DEFAULT_HAIKU_MODEL: 'glm-4.6',
|
|
192
|
-
ANTHROPIC_TEMPERATURE: '0.2',
|
|
193
|
-
ANTHROPIC_MAX_TOKENS: '65536',
|
|
194
|
-
MAX_THINKING_TOKENS: '32768',
|
|
195
|
-
ENABLE_STREAMING: 'true',
|
|
196
|
-
ANTHROPIC_SAFE_MODE: 'false',
|
|
197
|
-
API_TIMEOUT_MS: '3000000',
|
|
198
|
-
},
|
|
199
|
-
alwaysThinkingEnabled: true,
|
|
200
|
-
};
|
|
201
|
-
const tmpPath = `${settingsPath}.tmp`;
|
|
202
|
-
fs.writeFileSync(tmpPath, JSON.stringify(settings, null, 2) + '\n', 'utf8');
|
|
203
|
-
fs.renameSync(tmpPath, settingsPath);
|
|
204
|
-
this.recovered.push('Created ~/.ccs/glmt.settings.json');
|
|
205
|
-
return true;
|
|
206
|
-
}
|
|
207
|
-
/**
|
|
208
|
-
* Ensure Kimi settings file exists
|
|
209
|
-
*/
|
|
210
|
-
ensureKimiSettings() {
|
|
211
|
-
const settingsPath = path.join(this.ccsDir, 'kimi.settings.json');
|
|
212
|
-
if (fs.existsSync(settingsPath))
|
|
213
|
-
return false;
|
|
214
|
-
const settings = {
|
|
215
|
-
env: {
|
|
216
|
-
ANTHROPIC_BASE_URL: 'https://api.kimi.com/coding/',
|
|
217
|
-
ANTHROPIC_AUTH_TOKEN: 'YOUR_KIMI_API_KEY_HERE',
|
|
218
|
-
ANTHROPIC_MODEL: 'kimi-k2-thinking-turbo',
|
|
219
|
-
ANTHROPIC_DEFAULT_OPUS_MODEL: 'kimi-k2-thinking-turbo',
|
|
220
|
-
ANTHROPIC_DEFAULT_SONNET_MODEL: 'kimi-k2-thinking-turbo',
|
|
221
|
-
ANTHROPIC_DEFAULT_HAIKU_MODEL: 'kimi-k2-thinking-turbo',
|
|
222
|
-
},
|
|
223
|
-
alwaysThinkingEnabled: true,
|
|
224
|
-
};
|
|
225
|
-
const tmpPath = `${settingsPath}.tmp`;
|
|
226
|
-
fs.writeFileSync(tmpPath, JSON.stringify(settings, null, 2) + '\n', 'utf8');
|
|
227
|
-
fs.renameSync(tmpPath, settingsPath);
|
|
228
|
-
this.recovered.push('Created ~/.ccs/kimi.settings.json');
|
|
229
|
-
return true;
|
|
230
|
-
}
|
|
231
154
|
/**
|
|
232
155
|
* Install shell completion files
|
|
233
156
|
*/
|
|
@@ -303,21 +226,6 @@ class RecoveryManager {
|
|
|
303
226
|
console.log('');
|
|
304
227
|
console.log((0, ui_1.info)('Auto-recovery completed:'));
|
|
305
228
|
this.recovered.forEach((msg) => console.log(` - ${msg}`));
|
|
306
|
-
// Show API key hints if created profile settings
|
|
307
|
-
const createdGlm = this.recovered.some((msg) => msg.includes('glm.settings.json'));
|
|
308
|
-
const createdKimi = this.recovered.some((msg) => msg.includes('kimi.settings.json'));
|
|
309
|
-
if (createdGlm || createdKimi) {
|
|
310
|
-
console.log('');
|
|
311
|
-
console.log((0, ui_1.info)('Configure API keys:'));
|
|
312
|
-
if (createdGlm) {
|
|
313
|
-
console.log(' GLM: Edit ~/.ccs/glm.settings.json');
|
|
314
|
-
console.log(' Get key from: https://api.z.ai');
|
|
315
|
-
}
|
|
316
|
-
if (createdKimi) {
|
|
317
|
-
console.log(' Kimi: Edit ~/.ccs/kimi.settings.json');
|
|
318
|
-
console.log(' Get key from: https://www.kimi.com/coding');
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
229
|
// Show login hint if created Claude settings
|
|
322
230
|
if (this.recovered.some((msg) => msg.includes('~/.claude/settings.json'))) {
|
|
323
231
|
console.log('');
|