centaurus-cli 2.0.1 → 2.1.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/CONFIG_GUIDE.md +100 -106
- package/README.md +68 -63
- package/dist/cli-adapter.d.ts +9 -3
- package/dist/cli-adapter.d.ts.map +1 -1
- package/dist/cli-adapter.js +175 -164
- package/dist/cli-adapter.js.map +1 -1
- package/dist/commands/CommandParser.d.ts +1 -1
- package/dist/commands/CommandParser.d.ts.map +1 -1
- package/dist/commands/CommandParser.js +3 -18
- package/dist/commands/CommandParser.js.map +1 -1
- package/dist/commands/view-duplication-logs.d.ts +5 -0
- package/dist/commands/view-duplication-logs.d.ts.map +1 -0
- package/dist/commands/view-duplication-logs.js +14 -0
- package/dist/commands/view-duplication-logs.js.map +1 -0
- package/dist/config/ConfigManager.d.ts +10 -7
- package/dist/config/ConfigManager.d.ts.map +1 -1
- package/dist/config/ConfigManager.js +43 -142
- package/dist/config/ConfigManager.js.map +1 -1
- package/dist/config/defaultConfig.d.ts +0 -4
- package/dist/config/defaultConfig.d.ts.map +1 -1
- package/dist/config/defaultConfig.js +1 -6
- package/dist/config/defaultConfig.js.map +1 -1
- package/dist/config/manager.d.ts +15 -13
- package/dist/config/manager.d.ts.map +1 -1
- package/dist/config/manager.js +52 -41
- package/dist/config/manager.js.map +1 -1
- package/dist/config/models.d.ts +31 -0
- package/dist/config/models.d.ts.map +1 -0
- package/dist/config/models.js +49 -0
- package/dist/config/models.js.map +1 -0
- package/dist/config/types.d.ts +0 -3
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +0 -1
- package/dist/config/types.js.map +1 -1
- package/dist/index.js +48 -8
- package/dist/index.js.map +1 -1
- package/dist/prompts/system-prompt.d.ts +1 -1
- package/dist/prompts/system-prompt.d.ts.map +1 -1
- package/dist/prompts/system-prompt.js +0 -1
- package/dist/prompts/system-prompt.js.map +1 -1
- package/dist/services/ai-service-client.d.ts +87 -0
- package/dist/services/ai-service-client.d.ts.map +1 -0
- package/dist/services/ai-service-client.js +268 -0
- package/dist/services/ai-service-client.js.map +1 -0
- package/dist/services/api-client.d.ts +5 -0
- package/dist/services/api-client.d.ts.map +1 -1
- package/dist/services/api-client.js +72 -59
- package/dist/services/api-client.js.map +1 -1
- package/dist/services/auth-handler.js +2 -2
- package/dist/services/auth-handler.js.map +1 -1
- package/dist/tools/ToolRegistry.d.ts +14 -3
- package/dist/tools/ToolRegistry.d.ts.map +1 -1
- package/dist/tools/ToolRegistry.js +46 -34
- package/dist/tools/ToolRegistry.js.map +1 -1
- package/dist/tools/command.d.ts.map +1 -1
- package/dist/tools/command.js +17 -3
- package/dist/tools/command.js.map +1 -1
- package/dist/tools/file-ops.js +3 -3
- package/dist/tools/file-ops.js.map +1 -1
- package/dist/tools/web-search.d.ts.map +1 -1
- package/dist/tools/web-search.js +6 -2
- package/dist/tools/web-search.js.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/ui/components/App.d.ts +3 -2
- package/dist/ui/components/App.d.ts.map +1 -1
- package/dist/ui/components/App.js +107 -16
- package/dist/ui/components/App.js.map +1 -1
- package/dist/ui/components/CodeBlock.d.ts.map +1 -1
- package/dist/ui/components/CodeBlock.js +15 -3
- package/dist/ui/components/CodeBlock.js.map +1 -1
- package/dist/ui/components/ConfirmPrompt.d.ts.map +1 -1
- package/dist/ui/components/ConfirmPrompt.js +32 -20
- package/dist/ui/components/ConfirmPrompt.js.map +1 -1
- package/dist/ui/components/DiffViewer.d.ts.map +1 -1
- package/dist/ui/components/DiffViewer.js +16 -2
- package/dist/ui/components/DiffViewer.js.map +1 -1
- package/dist/ui/components/InputBox.d.ts.map +1 -1
- package/dist/ui/components/InputBox.js +26 -9
- package/dist/ui/components/InputBox.js.map +1 -1
- package/dist/ui/components/LoadingIndicator.d.ts.map +1 -1
- package/dist/ui/components/LoadingIndicator.js +6 -2
- package/dist/ui/components/LoadingIndicator.js.map +1 -1
- package/dist/ui/components/MarkdownRenderer.d.ts.map +1 -1
- package/dist/ui/components/MarkdownRenderer.js +8 -12
- package/dist/ui/components/MarkdownRenderer.js.map +1 -1
- package/dist/ui/components/StreamingMessageDisplay.d.ts +6 -7
- package/dist/ui/components/StreamingMessageDisplay.d.ts.map +1 -1
- package/dist/ui/components/StreamingMessageDisplay.js +69 -12
- package/dist/ui/components/StreamingMessageDisplay.js.map +1 -1
- package/dist/ui/components/ToolExecutionMessage.d.ts.map +1 -1
- package/dist/ui/components/ToolExecutionMessage.js +44 -16
- package/dist/ui/components/ToolExecutionMessage.js.map +1 -1
- package/dist/ui/components/WelcomeBanner.d.ts.map +1 -1
- package/dist/ui/components/WelcomeBanner.js.map +1 -1
- package/dist/ui/utils/duplication-detector.d.ts +32 -0
- package/dist/ui/utils/duplication-detector.d.ts.map +1 -0
- package/dist/ui/utils/duplication-detector.js +227 -0
- package/dist/ui/utils/duplication-detector.js.map +1 -0
- package/dist/ui/utils/duplication-logger.d.ts +21 -0
- package/dist/ui/utils/duplication-logger.d.ts.map +1 -0
- package/dist/ui/utils/duplication-logger.js +85 -0
- package/dist/ui/utils/duplication-logger.js.map +1 -0
- package/dist/ui/utils/terminal-scanner.d.ts +19 -0
- package/dist/ui/utils/terminal-scanner.d.ts.map +1 -0
- package/dist/ui/utils/terminal-scanner.js +217 -0
- package/dist/ui/utils/terminal-scanner.js.map +1 -0
- package/package.json +2 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandParser.js","sourceRoot":"","sources":["../../src/commands/CommandParser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgBH,MAAM,OAAO,aAAa;IAChB,QAAQ,GAAyB,IAAI,GAAG,EAAE,CAAC;IAEnD;QACE,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACjC,CAAC;IAEO,uBAAuB;QAC7B,6BAA6B;QAC7B,IAAI,CAAC,QAAQ,CAAC;YACZ,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,yBAAyB;YACtC,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;YACnB,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;gBACpB,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,WAAW;gBACnB,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;aACrB,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC;YACZ,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,iBAAiB;YAC9B,OAAO,EAAE,CAAC,GAAG,CAAC;YACd,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACtB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpB,yBAAyB;oBACzB,OAAO;wBACL,OAAO,EAAE,IAAI;wBACb,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;qBAChC,CAAC;gBACJ,CAAC;gBACD,oBAAoB;gBACpB,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,mBAAmB;iBAC5B,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"CommandParser.js","sourceRoot":"","sources":["../../src/commands/CommandParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view-duplication-logs.d.ts","sourceRoot":"","sources":["../../src/commands/view-duplication-logs.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,wBAAgB,mBAAmB,CAAC,KAAK,GAAE,MAAW,GAAG,IAAI,CAQ5D"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Command to view duplication detection logs
|
|
3
|
+
*/
|
|
4
|
+
import { getLogFilePath, readLastLogLines } from '../ui/utils/duplication-logger.js';
|
|
5
|
+
export function viewDuplicationLogs(lines = 50) {
|
|
6
|
+
const logPath = getLogFilePath();
|
|
7
|
+
console.log(`\n📋 Duplication Detection Logs (last ${lines} lines)`);
|
|
8
|
+
console.log(`📁 Log file: ${logPath}\n`);
|
|
9
|
+
console.log('─'.repeat(80));
|
|
10
|
+
console.log(readLastLogLines(lines));
|
|
11
|
+
console.log('─'.repeat(80));
|
|
12
|
+
console.log(`\nTo view full log: cat "${logPath}"\n`);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=view-duplication-logs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view-duplication-logs.js","sourceRoot":"","sources":["../../src/commands/view-duplication-logs.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAErF,MAAM,UAAU,mBAAmB,CAAC,QAAgB,EAAE;IACpD,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,yCAAyC,KAAK,SAAS,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,gBAAgB,OAAO,IAAI,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,4BAA4B,OAAO,KAAK,CAAC,CAAC;AACxD,CAAC"}
|
|
@@ -10,11 +10,9 @@ export declare class ConfigManager {
|
|
|
10
10
|
private config;
|
|
11
11
|
private encryptionKey;
|
|
12
12
|
private useBackendSync;
|
|
13
|
+
private migrationPerformed;
|
|
13
14
|
private constructor();
|
|
14
15
|
static getInstance(): ConfigManager;
|
|
15
|
-
private getMachineKey;
|
|
16
|
-
private encrypt;
|
|
17
|
-
private decrypt;
|
|
18
16
|
initialize(): Promise<void>;
|
|
19
17
|
/**
|
|
20
18
|
* Enable backend synchronization
|
|
@@ -37,15 +35,11 @@ export declare class ConfigManager {
|
|
|
37
35
|
save(): Promise<void>;
|
|
38
36
|
get(key: keyof CentaurusConfig): any;
|
|
39
37
|
getAll(): CentaurusConfig;
|
|
40
|
-
getProvider(): string;
|
|
41
38
|
getModel(): string;
|
|
42
|
-
getApiKey(provider?: string): string | undefined;
|
|
43
39
|
isAutoAcceptEnabled(): boolean;
|
|
44
40
|
getTheme(): string;
|
|
45
41
|
set<K extends keyof CentaurusConfig>(key: K, value: CentaurusConfig[K]): Promise<void>;
|
|
46
|
-
setProvider(provider: string): Promise<void>;
|
|
47
42
|
setModel(model: string): Promise<void>;
|
|
48
|
-
setApiKey(provider: string, apiKey: string): Promise<void>;
|
|
49
43
|
setAutoAccept(enabled: boolean): Promise<void>;
|
|
50
44
|
setTheme(theme: string): Promise<void>;
|
|
51
45
|
validateConfig(): {
|
|
@@ -54,6 +48,15 @@ export declare class ConfigManager {
|
|
|
54
48
|
};
|
|
55
49
|
reset(): Promise<void>;
|
|
56
50
|
exportConfig(): object;
|
|
51
|
+
/**
|
|
52
|
+
* Check if configuration migration was performed
|
|
53
|
+
* This is used to show a one-time migration message to users
|
|
54
|
+
*/
|
|
55
|
+
wasMigrationPerformed(): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Reset migration flag (after showing migration message)
|
|
58
|
+
*/
|
|
59
|
+
resetMigrationFlag(): void;
|
|
57
60
|
}
|
|
58
61
|
export default ConfigManager;
|
|
59
62
|
//# sourceMappingURL=ConfigManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigManager.d.ts","sourceRoot":"","sources":["../../src/config/ConfigManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"ConfigManager.d.ts","sourceRoot":"","sources":["../../src/config/ConfigManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAiB,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAIpE,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,kBAAkB,CAAkB;IAE5C,OAAO;IAOP,MAAM,CAAC,WAAW,IAAI,aAAa;IAQ7B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBjC;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAIzB;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAI1B;;OAEG;YACW,eAAe;IA2B7B;;OAEG;YACW,aAAa;YAiBb,eAAe;IASvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAyCrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAW3B,GAAG,CAAC,GAAG,EAAE,MAAM,eAAe,GAAG,GAAG;IAIpC,MAAM,IAAI,eAAe;IAKzB,QAAQ,IAAI,MAAM;IAIlB,mBAAmB,IAAI,OAAO;IAI9B,QAAQ,IAAI,MAAM;IAKZ,GAAG,CAAC,CAAC,SAAS,MAAM,eAAe,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWtC,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAM9C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU5C,cAAc,IAAI;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IAchD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B,YAAY,IAAI,MAAM;IAItB;;;OAGG;IACH,qBAAqB,IAAI,OAAO;IAIhC;;OAEG;IACH,kBAAkB,IAAI,IAAI;CAG3B;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -6,21 +6,21 @@
|
|
|
6
6
|
import * as fs from 'fs/promises';
|
|
7
7
|
import * as path from 'path';
|
|
8
8
|
import * as os from 'os';
|
|
9
|
-
import * as crypto from 'crypto';
|
|
10
9
|
import { defaultConfig } from './defaultConfig.js';
|
|
11
10
|
import { apiClient } from '../services/api-client.js';
|
|
11
|
+
import { isValidModel, getInvalidModelError } from './models.js';
|
|
12
12
|
export class ConfigManager {
|
|
13
13
|
static instance;
|
|
14
14
|
configPath;
|
|
15
15
|
config;
|
|
16
16
|
encryptionKey;
|
|
17
17
|
useBackendSync = false;
|
|
18
|
+
migrationPerformed = false;
|
|
18
19
|
constructor() {
|
|
19
20
|
const configDir = path.join(os.homedir(), '.centaurus');
|
|
20
21
|
this.configPath = path.join(configDir, 'config.json');
|
|
21
22
|
this.config = { ...defaultConfig };
|
|
22
|
-
//
|
|
23
|
-
this.encryptionKey = this.getMachineKey();
|
|
23
|
+
this.encryptionKey = ''; // No longer needed but kept for compatibility
|
|
24
24
|
}
|
|
25
25
|
static getInstance() {
|
|
26
26
|
if (!ConfigManager.instance) {
|
|
@@ -28,44 +28,6 @@ export class ConfigManager {
|
|
|
28
28
|
}
|
|
29
29
|
return ConfigManager.instance;
|
|
30
30
|
}
|
|
31
|
-
getMachineKey() {
|
|
32
|
-
// Use a combination of hostname and username for encryption key
|
|
33
|
-
const hostname = os.hostname();
|
|
34
|
-
const username = os.userInfo().username;
|
|
35
|
-
return crypto.createHash('sha256')
|
|
36
|
-
.update(`${hostname}:${username}:centaurus`)
|
|
37
|
-
.digest('hex')
|
|
38
|
-
.substring(0, 32);
|
|
39
|
-
}
|
|
40
|
-
encrypt(text) {
|
|
41
|
-
const algorithm = 'aes-256-gcm';
|
|
42
|
-
const iv = crypto.randomBytes(16);
|
|
43
|
-
const cipher = crypto.createCipheriv(algorithm, Buffer.from(this.encryptionKey), iv);
|
|
44
|
-
let encrypted = cipher.update(text, 'utf8', 'hex');
|
|
45
|
-
encrypted += cipher.final('hex');
|
|
46
|
-
const authTag = cipher.getAuthTag();
|
|
47
|
-
return iv.toString('hex') + ':' + authTag.toString('hex') + ':' + encrypted;
|
|
48
|
-
}
|
|
49
|
-
decrypt(encryptedData) {
|
|
50
|
-
try {
|
|
51
|
-
const parts = encryptedData.split(':');
|
|
52
|
-
if (parts.length !== 3)
|
|
53
|
-
return encryptedData; // Not encrypted
|
|
54
|
-
const algorithm = 'aes-256-gcm';
|
|
55
|
-
const iv = Buffer.from(parts[0], 'hex');
|
|
56
|
-
const authTag = Buffer.from(parts[1], 'hex');
|
|
57
|
-
const encrypted = parts[2];
|
|
58
|
-
const decipher = crypto.createDecipheriv(algorithm, Buffer.from(this.encryptionKey), iv);
|
|
59
|
-
decipher.setAuthTag(authTag);
|
|
60
|
-
let decrypted = decipher.update(encrypted, 'hex', 'utf8');
|
|
61
|
-
decrypted += decipher.final('utf8');
|
|
62
|
-
return decrypted;
|
|
63
|
-
}
|
|
64
|
-
catch (error) {
|
|
65
|
-
// If decryption fails, return the original (might be plain text from old version)
|
|
66
|
-
return encryptedData;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
31
|
async initialize() {
|
|
70
32
|
try {
|
|
71
33
|
await this.load();
|
|
@@ -106,9 +68,6 @@ export class ConfigManager {
|
|
|
106
68
|
if (settings.defaultModel) {
|
|
107
69
|
this.config.model = settings.defaultModel;
|
|
108
70
|
}
|
|
109
|
-
if (settings.defaultProvider) {
|
|
110
|
-
this.config.provider = settings.defaultProvider;
|
|
111
|
-
}
|
|
112
71
|
if (settings.theme) {
|
|
113
72
|
this.config.theme = settings.theme;
|
|
114
73
|
}
|
|
@@ -133,7 +92,6 @@ export class ConfigManager {
|
|
|
133
92
|
try {
|
|
134
93
|
await apiClient.updateSettings({
|
|
135
94
|
defaultModel: this.config.model,
|
|
136
|
-
defaultProvider: this.config.provider,
|
|
137
95
|
theme: this.config.theme,
|
|
138
96
|
autoSave: this.config.autoAccept,
|
|
139
97
|
});
|
|
@@ -156,18 +114,29 @@ export class ConfigManager {
|
|
|
156
114
|
try {
|
|
157
115
|
const data = await fs.readFile(this.configPath, 'utf-8');
|
|
158
116
|
const loadedConfig = JSON.parse(data);
|
|
159
|
-
//
|
|
160
|
-
|
|
161
|
-
|
|
117
|
+
// Detect if old config format exists (migration needed)
|
|
118
|
+
const hasDeprecatedFields = 'googleApiKey' in loadedConfig ||
|
|
119
|
+
'openrouterApiKey' in loadedConfig ||
|
|
120
|
+
'openRouterApiKey' in loadedConfig ||
|
|
121
|
+
'anthropicApiKey' in loadedConfig ||
|
|
122
|
+
'provider' in loadedConfig;
|
|
123
|
+
if (hasDeprecatedFields) {
|
|
124
|
+
this.migrationPerformed = true;
|
|
125
|
+
// Remove deprecated fields
|
|
126
|
+
delete loadedConfig.googleApiKey;
|
|
127
|
+
delete loadedConfig.openrouterApiKey;
|
|
128
|
+
delete loadedConfig.openRouterApiKey;
|
|
129
|
+
delete loadedConfig.anthropicApiKey;
|
|
130
|
+
delete loadedConfig.provider;
|
|
131
|
+
// Preserve model preference and other settings
|
|
132
|
+
this.config = { ...defaultConfig, ...loadedConfig };
|
|
133
|
+
// Save the migrated config immediately
|
|
134
|
+
await this.save();
|
|
162
135
|
}
|
|
163
|
-
|
|
164
|
-
|
|
136
|
+
else {
|
|
137
|
+
// Merge with defaults to ensure all fields exist
|
|
138
|
+
this.config = { ...defaultConfig, ...loadedConfig };
|
|
165
139
|
}
|
|
166
|
-
if (loadedConfig.anthropicApiKey) {
|
|
167
|
-
loadedConfig.anthropicApiKey = this.decrypt(loadedConfig.anthropicApiKey);
|
|
168
|
-
}
|
|
169
|
-
// Merge with defaults to ensure all fields exist
|
|
170
|
-
this.config = { ...defaultConfig, ...loadedConfig };
|
|
171
140
|
}
|
|
172
141
|
catch (error) {
|
|
173
142
|
if (error.code !== 'ENOENT') {
|
|
@@ -179,19 +148,7 @@ export class ConfigManager {
|
|
|
179
148
|
}
|
|
180
149
|
async save() {
|
|
181
150
|
await this.ensureConfigDir();
|
|
182
|
-
|
|
183
|
-
const configToSave = { ...this.config };
|
|
184
|
-
// Encrypt API keys before saving
|
|
185
|
-
if (configToSave.googleApiKey) {
|
|
186
|
-
configToSave.googleApiKey = this.encrypt(configToSave.googleApiKey);
|
|
187
|
-
}
|
|
188
|
-
if (configToSave.openRouterApiKey) {
|
|
189
|
-
configToSave.openRouterApiKey = this.encrypt(configToSave.openRouterApiKey);
|
|
190
|
-
}
|
|
191
|
-
if (configToSave.anthropicApiKey) {
|
|
192
|
-
configToSave.anthropicApiKey = this.encrypt(configToSave.anthropicApiKey);
|
|
193
|
-
}
|
|
194
|
-
await fs.writeFile(this.configPath, JSON.stringify(configToSave, null, 2), 'utf-8');
|
|
151
|
+
await fs.writeFile(this.configPath, JSON.stringify(this.config, null, 2), 'utf-8');
|
|
195
152
|
}
|
|
196
153
|
// Getters
|
|
197
154
|
get(key) {
|
|
@@ -201,25 +158,9 @@ export class ConfigManager {
|
|
|
201
158
|
// Return a copy to prevent direct modification
|
|
202
159
|
return { ...this.config };
|
|
203
160
|
}
|
|
204
|
-
getProvider() {
|
|
205
|
-
return this.config.provider;
|
|
206
|
-
}
|
|
207
161
|
getModel() {
|
|
208
162
|
return this.config.model;
|
|
209
163
|
}
|
|
210
|
-
getApiKey(provider) {
|
|
211
|
-
const p = provider || this.config.provider;
|
|
212
|
-
switch (p) {
|
|
213
|
-
case 'google':
|
|
214
|
-
return this.config.googleApiKey;
|
|
215
|
-
case 'openrouter':
|
|
216
|
-
return this.config.openRouterApiKey;
|
|
217
|
-
case 'anthropic':
|
|
218
|
-
return this.config.anthropicApiKey;
|
|
219
|
-
default:
|
|
220
|
-
return undefined;
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
164
|
isAutoAcceptEnabled() {
|
|
224
165
|
return this.config.autoAccept;
|
|
225
166
|
}
|
|
@@ -232,50 +173,15 @@ export class ConfigManager {
|
|
|
232
173
|
await this.save();
|
|
233
174
|
await this.syncToBackend();
|
|
234
175
|
}
|
|
235
|
-
async setProvider(provider) {
|
|
236
|
-
if (!['google', 'openrouter', 'anthropic'].includes(provider)) {
|
|
237
|
-
throw new Error(`Invalid provider: ${provider}`);
|
|
238
|
-
}
|
|
239
|
-
this.config.provider = provider;
|
|
240
|
-
await this.save();
|
|
241
|
-
await this.syncToBackend();
|
|
242
|
-
}
|
|
243
176
|
async setModel(model) {
|
|
177
|
+
// Validate model before setting
|
|
178
|
+
if (!isValidModel(model)) {
|
|
179
|
+
throw new Error(getInvalidModelError(model));
|
|
180
|
+
}
|
|
244
181
|
this.config.model = model;
|
|
245
182
|
await this.save();
|
|
246
183
|
await this.syncToBackend();
|
|
247
184
|
}
|
|
248
|
-
async setApiKey(provider, apiKey) {
|
|
249
|
-
// If backend sync is enabled, store API key in backend
|
|
250
|
-
if (this.useBackendSync && apiClient.isAuthenticated()) {
|
|
251
|
-
try {
|
|
252
|
-
await apiClient.storeApiKey({
|
|
253
|
-
provider: provider,
|
|
254
|
-
keyName: `${provider} API Key`,
|
|
255
|
-
apiKey: apiKey,
|
|
256
|
-
});
|
|
257
|
-
}
|
|
258
|
-
catch (error) {
|
|
259
|
-
console.error('Failed to store API key in backend:', error);
|
|
260
|
-
// Fall back to local storage
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
// Also store locally for offline access
|
|
264
|
-
switch (provider) {
|
|
265
|
-
case 'google':
|
|
266
|
-
this.config.googleApiKey = apiKey;
|
|
267
|
-
break;
|
|
268
|
-
case 'openrouter':
|
|
269
|
-
this.config.openRouterApiKey = apiKey;
|
|
270
|
-
break;
|
|
271
|
-
case 'anthropic':
|
|
272
|
-
this.config.anthropicApiKey = apiKey;
|
|
273
|
-
break;
|
|
274
|
-
default:
|
|
275
|
-
throw new Error(`Invalid provider: ${provider}`);
|
|
276
|
-
}
|
|
277
|
-
await this.save();
|
|
278
|
-
}
|
|
279
185
|
async setAutoAccept(enabled) {
|
|
280
186
|
this.config.autoAccept = enabled;
|
|
281
187
|
await this.save();
|
|
@@ -292,16 +198,9 @@ export class ConfigManager {
|
|
|
292
198
|
// Validation
|
|
293
199
|
validateConfig() {
|
|
294
200
|
const errors = [];
|
|
295
|
-
if (!this.config.provider) {
|
|
296
|
-
errors.push('Provider is not set');
|
|
297
|
-
}
|
|
298
201
|
if (!this.config.model) {
|
|
299
202
|
errors.push('Model is not set');
|
|
300
203
|
}
|
|
301
|
-
const apiKey = this.getApiKey();
|
|
302
|
-
if (!apiKey) {
|
|
303
|
-
errors.push(`API key for ${this.config.provider} is not set`);
|
|
304
|
-
}
|
|
305
204
|
return {
|
|
306
205
|
valid: errors.length === 0,
|
|
307
206
|
errors
|
|
@@ -314,18 +213,20 @@ export class ConfigManager {
|
|
|
314
213
|
}
|
|
315
214
|
// Export configuration (without sensitive data)
|
|
316
215
|
exportConfig() {
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
216
|
+
return { ...this.config };
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Check if configuration migration was performed
|
|
220
|
+
* This is used to show a one-time migration message to users
|
|
221
|
+
*/
|
|
222
|
+
wasMigrationPerformed() {
|
|
223
|
+
return this.migrationPerformed;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Reset migration flag (after showing migration message)
|
|
227
|
+
*/
|
|
228
|
+
resetMigrationFlag() {
|
|
229
|
+
this.migrationPerformed = false;
|
|
329
230
|
}
|
|
330
231
|
}
|
|
331
232
|
export default ConfigManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigManager.js","sourceRoot":"","sources":["../../src/config/ConfigManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,
|
|
1
|
+
{"version":3,"file":"ConfigManager.js","sourceRoot":"","sources":["../../src/config/ConfigManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,11 +3,7 @@
|
|
|
3
3
|
* Defines default settings and configuration types
|
|
4
4
|
*/
|
|
5
5
|
export interface CentaurusConfig {
|
|
6
|
-
provider: string;
|
|
7
6
|
model: string;
|
|
8
|
-
googleApiKey?: string;
|
|
9
|
-
openRouterApiKey?: string;
|
|
10
|
-
anthropicApiKey?: string;
|
|
11
7
|
autoAccept: boolean;
|
|
12
8
|
streamResponses: boolean;
|
|
13
9
|
saveSession: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultConfig.d.ts","sourceRoot":"","sources":["../../src/config/defaultConfig.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,eAAe;IAE9B,
|
|
1
|
+
{"version":3,"file":"defaultConfig.d.ts","sourceRoot":"","sources":["../../src/config/defaultConfig.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,eAAe;IAE9B,KAAK,EAAE,MAAM,CAAC;IAGd,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IAGrB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,kBAAkB,EAAE,OAAO,CAAC;IAG5B,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IAGnB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAG1B,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,aAAa,EAAE,eA6B3B,CAAC;AAEF,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDlB,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -3,13 +3,8 @@
|
|
|
3
3
|
* Defines default settings and configuration types
|
|
4
4
|
*/
|
|
5
5
|
export const defaultConfig = {
|
|
6
|
-
//
|
|
7
|
-
provider: 'google',
|
|
6
|
+
// Model settings
|
|
8
7
|
model: 'gemini-2.0-flash-exp',
|
|
9
|
-
// API Keys (will be set during first run)
|
|
10
|
-
googleApiKey: undefined,
|
|
11
|
-
openRouterApiKey: undefined,
|
|
12
|
-
anthropicApiKey: undefined,
|
|
13
8
|
// Features
|
|
14
9
|
autoAccept: false,
|
|
15
10
|
streamResponses: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultConfig.js","sourceRoot":"","sources":["../../src/config/defaultConfig.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"defaultConfig.js","sourceRoot":"","sources":["../../src/config/defaultConfig.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiCH,MAAM,CAAC,MAAM,aAAa,GAAoB;IAC5C,iBAAiB;IACjB,KAAK,EAAE,sBAAsB;IAE7B,WAAW;IACX,UAAU,EAAE,KAAK;IACjB,eAAe,EAAE,IAAI;IACrB,WAAW,EAAE,IAAI;IAEjB,cAAc;IACd,KAAK,EAAE,SAAS;IAChB,iBAAiB,EAAE,IAAI;IACvB,aAAa,EAAE,IAAI;IACnB,kBAAkB,EAAE,IAAI;IAExB,gBAAgB;IAChB,eAAe,EAAE,IAAI;IACrB,WAAW,EAAE,KAAK,EAAE,aAAa;IACjC,UAAU,EAAE,CAAC;IAEb,mBAAmB;IACnB,cAAc,EAAE,IAAI;IACpB,iBAAiB,EAAE,EAAE,EAAE,wCAAwC;IAE/D,oBAAoB;IACpB,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE,OAAO;IACjB,WAAW,EAAE,GAAG;IAChB,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,OAAO,EAAE;QACP,OAAO,EAAE,SAAS,EAAO,OAAO;QAChC,SAAS,EAAE,SAAS,EAAK,cAAc;QACvC,OAAO,EAAE,SAAS,EAAO,QAAQ;QACjC,KAAK,EAAE,SAAS,EAAS,MAAM;QAC/B,OAAO,EAAE,SAAS,EAAO,SAAS;QAClC,IAAI,EAAE,SAAS,EAAU,WAAW;QACpC,IAAI,EAAE,SAAS,EAAU,QAAQ;QACjC,OAAO,EAAE,SAAS,CAAO,OAAO;KACjC;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,SAAS;KACnB;IACD,KAAK,EAAE;QACL,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,SAAS;KACnB;IACD,KAAK,EAAE;QACL,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,SAAS;KACnB;IACD,MAAM,EAAE;QACN,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,SAAS;KACnB;CACF,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
package/dist/config/manager.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export declare class ConfigManager {
|
|
|
3
3
|
private configPath;
|
|
4
4
|
private config;
|
|
5
5
|
private useBackendSync;
|
|
6
|
+
private migrationPerformed;
|
|
6
7
|
constructor();
|
|
7
8
|
/**
|
|
8
9
|
* Enable backend synchronization
|
|
@@ -16,18 +17,6 @@ export declare class ConfigManager {
|
|
|
16
17
|
* Sync settings to backend
|
|
17
18
|
*/
|
|
18
19
|
private syncToBackend;
|
|
19
|
-
/**
|
|
20
|
-
* Parse comma-separated API keys into an array
|
|
21
|
-
*/
|
|
22
|
-
private parseApiKeys;
|
|
23
|
-
/**
|
|
24
|
-
* Get all Google API keys as an array
|
|
25
|
-
*/
|
|
26
|
-
getGoogleApiKeys(): string[];
|
|
27
|
-
/**
|
|
28
|
-
* Get all OpenRouter API keys as an array
|
|
29
|
-
*/
|
|
30
|
-
getOpenRouterApiKeys(): string[];
|
|
31
20
|
/**
|
|
32
21
|
* Load configuration from disk
|
|
33
22
|
*/
|
|
@@ -44,17 +33,30 @@ export declare class ConfigManager {
|
|
|
44
33
|
* Set a specific configuration value
|
|
45
34
|
*/
|
|
46
35
|
set<K extends keyof Config>(key: K, value: Config[K]): void;
|
|
36
|
+
/**
|
|
37
|
+
* Set model with validation
|
|
38
|
+
*/
|
|
39
|
+
setModel(model: string): void;
|
|
47
40
|
/**
|
|
48
41
|
* Get all configuration
|
|
49
42
|
*/
|
|
50
43
|
getAll(): Config;
|
|
51
44
|
/**
|
|
52
|
-
* Check if configuration is complete
|
|
45
|
+
* Check if configuration is complete
|
|
53
46
|
*/
|
|
54
47
|
isComplete(): boolean;
|
|
55
48
|
/**
|
|
56
49
|
* Get the config file path
|
|
57
50
|
*/
|
|
58
51
|
getConfigPath(): string;
|
|
52
|
+
/**
|
|
53
|
+
* Check if configuration migration was performed
|
|
54
|
+
* This is used to show a one-time migration message to users
|
|
55
|
+
*/
|
|
56
|
+
wasMigrationPerformed(): boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Reset migration flag (after showing migration message)
|
|
59
|
+
*/
|
|
60
|
+
resetMigrationFlag(): void;
|
|
59
61
|
}
|
|
60
62
|
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/config/manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAkB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/config/manager.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAkB,MAAM,YAAY,CAAC;AAIpD,qBAAa,aAAa;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,kBAAkB,CAAkB;;IAa5C;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAIzB;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAI1B;;OAEG;YACW,aAAa;IAgB3B;;OAEG;IACH,IAAI,IAAI,MAAM;IA+Cd;;OAEG;IACH,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI;IASnC;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS;IAI1D;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI;IAkB3D;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAO7B;;OAEG;IACH,MAAM,IAAI,MAAM;IAIhB;;OAEG;IACH,UAAU,IAAI,OAAO;IAKrB;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;;OAGG;IACH,qBAAqB,IAAI,OAAO;IAIhC;;OAEG;IACH,kBAAkB,IAAI,IAAI;CAG3B"}
|