primellm 1.1.1 → 1.2.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/index.js +82 -121
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +103 -135
package/dist/index.js
CHANGED
|
@@ -19,19 +19,23 @@ const { prompt } = enquirer_1.default;
|
|
|
19
19
|
// ============================================================================
|
|
20
20
|
const PRIMELLM_BASE_URL = 'https://api.primellm.in/v1';
|
|
21
21
|
const PRIMELLM_DASHBOARD_URL = 'https://primellm.in/dashboard/api-keys';
|
|
22
|
-
// Tool configuration
|
|
22
|
+
// Tool configuration
|
|
23
23
|
const TOOLS = {
|
|
24
24
|
'Claude Code': {
|
|
25
25
|
command: 'claude',
|
|
26
26
|
package: '@anthropic-ai/claude-code',
|
|
27
27
|
envKeyName: 'ANTHROPIC_API_KEY',
|
|
28
28
|
envBaseName: 'ANTHROPIC_BASE_URL',
|
|
29
|
+
configDir: '.claude',
|
|
30
|
+
configFile: 'settings.json',
|
|
29
31
|
},
|
|
30
32
|
'Codex': {
|
|
31
33
|
command: 'codex',
|
|
32
34
|
package: '@openai/codex',
|
|
33
35
|
envKeyName: 'OPENAI_API_KEY',
|
|
34
36
|
envBaseName: 'OPENAI_BASE_URL',
|
|
37
|
+
configDir: '.codex',
|
|
38
|
+
configFile: 'config.json',
|
|
35
39
|
},
|
|
36
40
|
};
|
|
37
41
|
// ============================================================================
|
|
@@ -66,45 +70,6 @@ function commandExists(cmd) {
|
|
|
66
70
|
}
|
|
67
71
|
}
|
|
68
72
|
// ============================================================================
|
|
69
|
-
// SHELL PROFILE DETECTION
|
|
70
|
-
// ============================================================================
|
|
71
|
-
function getShellProfilePath() {
|
|
72
|
-
const home = (0, os_1.homedir)();
|
|
73
|
-
const os = (0, os_1.platform)();
|
|
74
|
-
if (os === 'win32') {
|
|
75
|
-
// Windows uses PowerShell profile
|
|
76
|
-
return (0, path_1.join)(home, 'Documents', 'PowerShell', 'Microsoft.PowerShell_profile.ps1');
|
|
77
|
-
}
|
|
78
|
-
// Unix-like systems
|
|
79
|
-
const shell = process.env.SHELL || '';
|
|
80
|
-
if (shell.includes('zsh')) {
|
|
81
|
-
return (0, path_1.join)(home, '.zshrc');
|
|
82
|
-
}
|
|
83
|
-
else if (shell.includes('fish')) {
|
|
84
|
-
return (0, path_1.join)(home, '.config', 'fish', 'config.fish');
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
// Default to .bashrc
|
|
88
|
-
return (0, path_1.join)(home, '.bashrc');
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
function formatEnvExport(key, value) {
|
|
92
|
-
const os = (0, os_1.platform)();
|
|
93
|
-
const shell = process.env.SHELL || '';
|
|
94
|
-
if (os === 'win32') {
|
|
95
|
-
// PowerShell format
|
|
96
|
-
return `$env:${key} = "${value}"`;
|
|
97
|
-
}
|
|
98
|
-
else if (shell.includes('fish')) {
|
|
99
|
-
// Fish shell format
|
|
100
|
-
return `set -gx ${key} "${value}"`;
|
|
101
|
-
}
|
|
102
|
-
else {
|
|
103
|
-
// Bash/Zsh format
|
|
104
|
-
return `export ${key}="${value}"`;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
// ============================================================================
|
|
108
73
|
// ASCII ART & DISPLAY
|
|
109
74
|
// ============================================================================
|
|
110
75
|
function displayBanner() {
|
|
@@ -132,53 +97,57 @@ function displaySystemInfo() {
|
|
|
132
97
|
// ============================================================================
|
|
133
98
|
// CONFIGURATION
|
|
134
99
|
// ============================================================================
|
|
135
|
-
function
|
|
100
|
+
function getConfigPath(tool) {
|
|
101
|
+
const home = (0, os_1.homedir)();
|
|
136
102
|
const toolInfo = TOOLS[tool];
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
};
|
|
103
|
+
const dir = (0, path_1.join)(home, toolInfo.configDir);
|
|
104
|
+
const file = (0, path_1.join)(dir, toolInfo.configFile);
|
|
105
|
+
return { dir, file };
|
|
141
106
|
}
|
|
142
|
-
function
|
|
143
|
-
const
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
const endMarker = `# End PrimeLLM Configuration for ${tool}`;
|
|
149
|
-
const configBlock = `
|
|
150
|
-
${marker}
|
|
151
|
-
${keyExport}
|
|
152
|
-
${baseExport}
|
|
153
|
-
${endMarker}
|
|
154
|
-
`;
|
|
155
|
-
// Check if profile exists and if our config is already there
|
|
156
|
-
if ((0, fs_1.existsSync)(profilePath)) {
|
|
157
|
-
const content = (0, fs_1.readFileSync)(profilePath, 'utf8');
|
|
158
|
-
if (content.includes(marker)) {
|
|
159
|
-
// Replace existing config
|
|
160
|
-
const regex = new RegExp(`${marker}[\\s\\S]*?${endMarker}`, 'g');
|
|
161
|
-
const newContent = content.replace(regex, configBlock.trim());
|
|
162
|
-
(0, fs_1.writeFileSync)(profilePath, newContent);
|
|
163
|
-
}
|
|
164
|
-
else {
|
|
165
|
-
// Append new config
|
|
166
|
-
(0, fs_1.appendFileSync)(profilePath, configBlock);
|
|
107
|
+
function readExistingConfig(tool) {
|
|
108
|
+
const { file } = getConfigPath(tool);
|
|
109
|
+
try {
|
|
110
|
+
if ((0, fs_1.existsSync)(file)) {
|
|
111
|
+
const content = (0, fs_1.readFileSync)(file, 'utf8');
|
|
112
|
+
return JSON.parse(content);
|
|
167
113
|
}
|
|
168
114
|
}
|
|
115
|
+
catch {
|
|
116
|
+
// Config doesn't exist or is invalid
|
|
117
|
+
}
|
|
118
|
+
return null;
|
|
119
|
+
}
|
|
120
|
+
function writeConfig(tool, apiKey) {
|
|
121
|
+
const { dir, file } = getConfigPath(tool);
|
|
122
|
+
const toolInfo = TOOLS[tool];
|
|
123
|
+
// Create directory if it doesn't exist
|
|
124
|
+
if (!(0, fs_1.existsSync)(dir)) {
|
|
125
|
+
(0, fs_1.mkdirSync)(dir, { recursive: true });
|
|
126
|
+
}
|
|
127
|
+
// Read existing config
|
|
128
|
+
const existing = readExistingConfig(tool) || {};
|
|
129
|
+
if (tool === 'Claude Code') {
|
|
130
|
+
// Claude Code uses settings.json with env block
|
|
131
|
+
const config = {
|
|
132
|
+
...existing,
|
|
133
|
+
env: {
|
|
134
|
+
...existing.env,
|
|
135
|
+
[toolInfo.envKeyName]: apiKey,
|
|
136
|
+
[toolInfo.envBaseName]: PRIMELLM_BASE_URL,
|
|
137
|
+
},
|
|
138
|
+
};
|
|
139
|
+
(0, fs_1.writeFileSync)(file, JSON.stringify(config, null, 2));
|
|
140
|
+
}
|
|
169
141
|
else {
|
|
170
|
-
//
|
|
171
|
-
const
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
(0, fs_1.writeFileSync)(
|
|
142
|
+
// Codex uses config.json with direct properties
|
|
143
|
+
const config = {
|
|
144
|
+
...existing,
|
|
145
|
+
apiKey: apiKey,
|
|
146
|
+
baseUrl: PRIMELLM_BASE_URL,
|
|
147
|
+
};
|
|
148
|
+
(0, fs_1.writeFileSync)(file, JSON.stringify(config, null, 2));
|
|
177
149
|
}
|
|
178
|
-
return
|
|
179
|
-
profilePath,
|
|
180
|
-
commands: [keyExport, baseExport],
|
|
181
|
-
};
|
|
150
|
+
return file;
|
|
182
151
|
}
|
|
183
152
|
// ============================================================================
|
|
184
153
|
// TOOL INSTALLATION
|
|
@@ -259,23 +228,33 @@ async function main() {
|
|
|
259
228
|
}
|
|
260
229
|
console.log();
|
|
261
230
|
// ============ STEP 3: Check Existing Config ============
|
|
262
|
-
const existing =
|
|
263
|
-
if (existing
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
console.log(chalk_1.default.
|
|
276
|
-
|
|
231
|
+
const existing = readExistingConfig(selectedTool);
|
|
232
|
+
if (existing) {
|
|
233
|
+
const envConfig = existing.env;
|
|
234
|
+
const directConfig = existing;
|
|
235
|
+
const existingKey = selectedTool === 'Claude Code'
|
|
236
|
+
? envConfig?.[toolInfo.envKeyName]
|
|
237
|
+
: directConfig?.apiKey;
|
|
238
|
+
const existingBase = selectedTool === 'Claude Code'
|
|
239
|
+
? envConfig?.[toolInfo.envBaseName]
|
|
240
|
+
: directConfig?.baseUrl;
|
|
241
|
+
if (existingKey || existingBase) {
|
|
242
|
+
console.log(chalk_1.default.yellow('⚠ Existing configuration found:\n'));
|
|
243
|
+
console.log(chalk_1.default.gray(` API Key: ${existingKey ? maskApiKey(existingKey) : '(not set)'}`));
|
|
244
|
+
console.log(chalk_1.default.gray(` Base URL: ${existingBase || '(not set)'}`));
|
|
245
|
+
console.log();
|
|
246
|
+
const { confirmOverwrite } = await prompt({
|
|
247
|
+
type: 'confirm',
|
|
248
|
+
name: 'confirmOverwrite',
|
|
249
|
+
message: 'Do you want to overwrite this configuration?',
|
|
250
|
+
initial: true,
|
|
251
|
+
});
|
|
252
|
+
if (!confirmOverwrite) {
|
|
253
|
+
console.log(chalk_1.default.yellow('\n⚠ Configuration cancelled.'));
|
|
254
|
+
process.exit(0);
|
|
255
|
+
}
|
|
256
|
+
console.log();
|
|
277
257
|
}
|
|
278
|
-
console.log();
|
|
279
258
|
}
|
|
280
259
|
// ============ STEP 4: API Key ============
|
|
281
260
|
console.log(chalk_1.default.white.bold('🔑 API Key Configuration\n'));
|
|
@@ -315,37 +294,19 @@ async function main() {
|
|
|
315
294
|
console.log(chalk_1.default.green(`✓ API key validated: ${maskApiKey(apiKey)}`));
|
|
316
295
|
console.log();
|
|
317
296
|
// ============ STEP 5: Write Configuration ============
|
|
318
|
-
const writeSpinner = (0, ora_1.default)('Writing configuration
|
|
297
|
+
const writeSpinner = (0, ora_1.default)('Writing configuration...').start();
|
|
319
298
|
try {
|
|
320
|
-
const
|
|
321
|
-
writeSpinner.succeed(chalk_1.default.green('Configuration saved
|
|
299
|
+
const configFile = writeConfig(selectedTool, apiKey);
|
|
300
|
+
writeSpinner.succeed(chalk_1.default.green('Configuration saved'));
|
|
322
301
|
console.log();
|
|
323
302
|
console.log(chalk_1.default.gray('━'.repeat(60)));
|
|
324
303
|
console.log();
|
|
325
304
|
console.log(chalk_1.default.green.bold('✅ PrimeLLM configured successfully!'));
|
|
326
305
|
console.log();
|
|
327
|
-
console.log(chalk_1.default.
|
|
328
|
-
|
|
329
|
-
console.log(chalk_1.default.cyan(` ${cmd}`));
|
|
330
|
-
});
|
|
331
|
-
console.log();
|
|
332
|
-
console.log(chalk_1.default.gray(`Profile location: ${profilePath}`));
|
|
333
|
-
console.log();
|
|
334
|
-
console.log(chalk_1.default.yellow.bold('⚠ IMPORTANT: To apply the changes, run one of the following:'));
|
|
335
|
-
console.log();
|
|
336
|
-
const os = (0, os_1.platform)();
|
|
337
|
-
if (os === 'win32') {
|
|
338
|
-
console.log(chalk_1.default.cyan(' 1. Restart PowerShell'));
|
|
339
|
-
console.log(chalk_1.default.cyan(' 2. Or run: . $PROFILE'));
|
|
340
|
-
}
|
|
341
|
-
else {
|
|
342
|
-
const shell = process.env.SHELL || '/bin/bash';
|
|
343
|
-
const shellName = shell.split('/').pop();
|
|
344
|
-
console.log(chalk_1.default.cyan(` 1. Restart your terminal`));
|
|
345
|
-
console.log(chalk_1.default.cyan(` 2. Or run: source ${profilePath}`));
|
|
346
|
-
}
|
|
306
|
+
console.log(chalk_1.default.gray(`Config file: ${configFile}`));
|
|
307
|
+
console.log(chalk_1.default.gray(`Base URL: ${PRIMELLM_BASE_URL}`));
|
|
347
308
|
console.log();
|
|
348
|
-
console.log(chalk_1.default.white('
|
|
309
|
+
console.log(chalk_1.default.white('You can now use:'));
|
|
349
310
|
console.log(chalk_1.default.cyan(` ${toolInfo.command}`));
|
|
350
311
|
console.log(chalk_1.default.white('with PrimeLLM as the backend.'));
|
|
351
312
|
console.log();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -5,8 +5,8 @@ import figlet from 'figlet';
|
|
|
5
5
|
import ora from 'ora';
|
|
6
6
|
import { execSync } from 'child_process';
|
|
7
7
|
import { platform, homedir } from 'os';
|
|
8
|
-
import { existsSync, readFileSync, writeFileSync,
|
|
9
|
-
import { join
|
|
8
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
|
|
9
|
+
import { join } from 'path';
|
|
10
10
|
import open from 'open';
|
|
11
11
|
import Enquirer from 'enquirer';
|
|
12
12
|
|
|
@@ -19,19 +19,23 @@ const { prompt } = Enquirer;
|
|
|
19
19
|
const PRIMELLM_BASE_URL = 'https://api.primellm.in/v1';
|
|
20
20
|
const PRIMELLM_DASHBOARD_URL = 'https://primellm.in/dashboard/api-keys';
|
|
21
21
|
|
|
22
|
-
// Tool configuration
|
|
22
|
+
// Tool configuration
|
|
23
23
|
const TOOLS = {
|
|
24
24
|
'Claude Code': {
|
|
25
25
|
command: 'claude',
|
|
26
26
|
package: '@anthropic-ai/claude-code',
|
|
27
27
|
envKeyName: 'ANTHROPIC_API_KEY',
|
|
28
28
|
envBaseName: 'ANTHROPIC_BASE_URL',
|
|
29
|
+
configDir: '.claude',
|
|
30
|
+
configFile: 'settings.json',
|
|
29
31
|
},
|
|
30
32
|
'Codex': {
|
|
31
33
|
command: 'codex',
|
|
32
34
|
package: '@openai/codex',
|
|
33
35
|
envKeyName: 'OPENAI_API_KEY',
|
|
34
36
|
envBaseName: 'OPENAI_BASE_URL',
|
|
37
|
+
configDir: '.codex',
|
|
38
|
+
configFile: 'config.json',
|
|
35
39
|
},
|
|
36
40
|
} as const;
|
|
37
41
|
|
|
@@ -72,48 +76,6 @@ function commandExists(cmd: string): boolean {
|
|
|
72
76
|
}
|
|
73
77
|
}
|
|
74
78
|
|
|
75
|
-
// ============================================================================
|
|
76
|
-
// SHELL PROFILE DETECTION
|
|
77
|
-
// ============================================================================
|
|
78
|
-
|
|
79
|
-
function getShellProfilePath(): string {
|
|
80
|
-
const home = homedir();
|
|
81
|
-
const os = platform();
|
|
82
|
-
|
|
83
|
-
if (os === 'win32') {
|
|
84
|
-
// Windows uses PowerShell profile
|
|
85
|
-
return join(home, 'Documents', 'PowerShell', 'Microsoft.PowerShell_profile.ps1');
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
// Unix-like systems
|
|
89
|
-
const shell = process.env.SHELL || '';
|
|
90
|
-
|
|
91
|
-
if (shell.includes('zsh')) {
|
|
92
|
-
return join(home, '.zshrc');
|
|
93
|
-
} else if (shell.includes('fish')) {
|
|
94
|
-
return join(home, '.config', 'fish', 'config.fish');
|
|
95
|
-
} else {
|
|
96
|
-
// Default to .bashrc
|
|
97
|
-
return join(home, '.bashrc');
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
function formatEnvExport(key: string, value: string): string {
|
|
102
|
-
const os = platform();
|
|
103
|
-
const shell = process.env.SHELL || '';
|
|
104
|
-
|
|
105
|
-
if (os === 'win32') {
|
|
106
|
-
// PowerShell format
|
|
107
|
-
return `$env:${key} = "${value}"`;
|
|
108
|
-
} else if (shell.includes('fish')) {
|
|
109
|
-
// Fish shell format
|
|
110
|
-
return `set -gx ${key} "${value}"`;
|
|
111
|
-
} else {
|
|
112
|
-
// Bash/Zsh format
|
|
113
|
-
return `export ${key}="${value}"`;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
|
|
117
79
|
// ============================================================================
|
|
118
80
|
// ASCII ART & DISPLAY
|
|
119
81
|
// ============================================================================
|
|
@@ -150,58 +112,72 @@ function displaySystemInfo(): void {
|
|
|
150
112
|
// CONFIGURATION
|
|
151
113
|
// ============================================================================
|
|
152
114
|
|
|
153
|
-
function
|
|
115
|
+
function getConfigPath(tool: ToolName): { dir: string; file: string } {
|
|
116
|
+
const home = homedir();
|
|
154
117
|
const toolInfo = TOOLS[tool];
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
};
|
|
118
|
+
const dir = join(home, toolInfo.configDir);
|
|
119
|
+
const file = join(dir, toolInfo.configFile);
|
|
120
|
+
return { dir, file };
|
|
159
121
|
}
|
|
160
122
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
// Check if profile exists and if our config is already there
|
|
179
|
-
if (existsSync(profilePath)) {
|
|
180
|
-
const content = readFileSync(profilePath, 'utf8');
|
|
181
|
-
|
|
182
|
-
if (content.includes(marker)) {
|
|
183
|
-
// Replace existing config
|
|
184
|
-
const regex = new RegExp(`${marker}[\\s\\S]*?${endMarker}`, 'g');
|
|
185
|
-
const newContent = content.replace(regex, configBlock.trim());
|
|
186
|
-
writeFileSync(profilePath, newContent);
|
|
187
|
-
} else {
|
|
188
|
-
// Append new config
|
|
189
|
-
appendFileSync(profilePath, configBlock);
|
|
123
|
+
interface ClaudeSettings {
|
|
124
|
+
env?: Record<string, string>;
|
|
125
|
+
[key: string]: unknown;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
interface CodexConfig {
|
|
129
|
+
apiKey?: string;
|
|
130
|
+
baseUrl?: string;
|
|
131
|
+
[key: string]: unknown;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
function readExistingConfig(tool: ToolName): ClaudeSettings | CodexConfig | null {
|
|
135
|
+
const { file } = getConfigPath(tool);
|
|
136
|
+
try {
|
|
137
|
+
if (existsSync(file)) {
|
|
138
|
+
const content = readFileSync(file, 'utf8');
|
|
139
|
+
return JSON.parse(content);
|
|
190
140
|
}
|
|
141
|
+
} catch {
|
|
142
|
+
// Config doesn't exist or is invalid
|
|
143
|
+
}
|
|
144
|
+
return null;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
function writeConfig(tool: ToolName, apiKey: string): string {
|
|
148
|
+
const { dir, file } = getConfigPath(tool);
|
|
149
|
+
const toolInfo = TOOLS[tool];
|
|
150
|
+
|
|
151
|
+
// Create directory if it doesn't exist
|
|
152
|
+
if (!existsSync(dir)) {
|
|
153
|
+
mkdirSync(dir, { recursive: true });
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
// Read existing config
|
|
157
|
+
const existing = readExistingConfig(tool) || {};
|
|
158
|
+
|
|
159
|
+
if (tool === 'Claude Code') {
|
|
160
|
+
// Claude Code uses settings.json with env block
|
|
161
|
+
const config: ClaudeSettings = {
|
|
162
|
+
...existing,
|
|
163
|
+
env: {
|
|
164
|
+
...(existing as ClaudeSettings).env,
|
|
165
|
+
[toolInfo.envKeyName]: apiKey,
|
|
166
|
+
[toolInfo.envBaseName]: PRIMELLM_BASE_URL,
|
|
167
|
+
},
|
|
168
|
+
};
|
|
169
|
+
writeFileSync(file, JSON.stringify(config, null, 2));
|
|
191
170
|
} else {
|
|
192
|
-
//
|
|
193
|
-
const
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
writeFileSync(
|
|
171
|
+
// Codex uses config.json with direct properties
|
|
172
|
+
const config: CodexConfig = {
|
|
173
|
+
...existing,
|
|
174
|
+
apiKey: apiKey,
|
|
175
|
+
baseUrl: PRIMELLM_BASE_URL,
|
|
176
|
+
};
|
|
177
|
+
writeFileSync(file, JSON.stringify(config, null, 2));
|
|
199
178
|
}
|
|
200
179
|
|
|
201
|
-
return
|
|
202
|
-
profilePath,
|
|
203
|
-
commands: [keyExport, baseExport],
|
|
204
|
-
};
|
|
180
|
+
return file;
|
|
205
181
|
}
|
|
206
182
|
|
|
207
183
|
// ============================================================================
|
|
@@ -300,26 +276,38 @@ async function main(): Promise<void> {
|
|
|
300
276
|
console.log();
|
|
301
277
|
|
|
302
278
|
// ============ STEP 3: Check Existing Config ============
|
|
303
|
-
const existing =
|
|
304
|
-
|
|
305
|
-
if (existing
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
console.log(chalk.
|
|
320
|
-
|
|
279
|
+
const existing = readExistingConfig(selectedTool);
|
|
280
|
+
|
|
281
|
+
if (existing) {
|
|
282
|
+
const envConfig = (existing as ClaudeSettings).env;
|
|
283
|
+
const directConfig = existing as CodexConfig;
|
|
284
|
+
|
|
285
|
+
const existingKey = selectedTool === 'Claude Code'
|
|
286
|
+
? envConfig?.[toolInfo.envKeyName]
|
|
287
|
+
: directConfig?.apiKey;
|
|
288
|
+
const existingBase = selectedTool === 'Claude Code'
|
|
289
|
+
? envConfig?.[toolInfo.envBaseName]
|
|
290
|
+
: directConfig?.baseUrl;
|
|
291
|
+
|
|
292
|
+
if (existingKey || existingBase) {
|
|
293
|
+
console.log(chalk.yellow('⚠ Existing configuration found:\n'));
|
|
294
|
+
console.log(chalk.gray(` API Key: ${existingKey ? maskApiKey(existingKey) : '(not set)'}`));
|
|
295
|
+
console.log(chalk.gray(` Base URL: ${existingBase || '(not set)'}`));
|
|
296
|
+
console.log();
|
|
297
|
+
|
|
298
|
+
const { confirmOverwrite } = await prompt<{ confirmOverwrite: boolean }>({
|
|
299
|
+
type: 'confirm',
|
|
300
|
+
name: 'confirmOverwrite',
|
|
301
|
+
message: 'Do you want to overwrite this configuration?',
|
|
302
|
+
initial: true,
|
|
303
|
+
});
|
|
304
|
+
|
|
305
|
+
if (!confirmOverwrite) {
|
|
306
|
+
console.log(chalk.yellow('\n⚠ Configuration cancelled.'));
|
|
307
|
+
process.exit(0);
|
|
308
|
+
}
|
|
309
|
+
console.log();
|
|
321
310
|
}
|
|
322
|
-
console.log();
|
|
323
311
|
}
|
|
324
312
|
|
|
325
313
|
// ============ STEP 4: API Key ============
|
|
@@ -366,11 +354,11 @@ async function main(): Promise<void> {
|
|
|
366
354
|
console.log();
|
|
367
355
|
|
|
368
356
|
// ============ STEP 5: Write Configuration ============
|
|
369
|
-
const writeSpinner = ora('Writing configuration
|
|
357
|
+
const writeSpinner = ora('Writing configuration...').start();
|
|
370
358
|
|
|
371
359
|
try {
|
|
372
|
-
const
|
|
373
|
-
writeSpinner.succeed(chalk.green('Configuration saved
|
|
360
|
+
const configFile = writeConfig(selectedTool, apiKey);
|
|
361
|
+
writeSpinner.succeed(chalk.green('Configuration saved'));
|
|
374
362
|
|
|
375
363
|
console.log();
|
|
376
364
|
console.log(chalk.gray('━'.repeat(60)));
|
|
@@ -378,31 +366,11 @@ async function main(): Promise<void> {
|
|
|
378
366
|
console.log(chalk.green.bold('✅ PrimeLLM configured successfully!'));
|
|
379
367
|
console.log();
|
|
380
368
|
|
|
381
|
-
console.log(chalk.
|
|
382
|
-
|
|
383
|
-
console.log(chalk.cyan(` ${cmd}`));
|
|
384
|
-
});
|
|
385
|
-
console.log();
|
|
386
|
-
|
|
387
|
-
console.log(chalk.gray(`Profile location: ${profilePath}`));
|
|
388
|
-
console.log();
|
|
389
|
-
|
|
390
|
-
console.log(chalk.yellow.bold('⚠ IMPORTANT: To apply the changes, run one of the following:'));
|
|
369
|
+
console.log(chalk.gray(`Config file: ${configFile}`));
|
|
370
|
+
console.log(chalk.gray(`Base URL: ${PRIMELLM_BASE_URL}`));
|
|
391
371
|
console.log();
|
|
392
372
|
|
|
393
|
-
|
|
394
|
-
if (os === 'win32') {
|
|
395
|
-
console.log(chalk.cyan(' 1. Restart PowerShell'));
|
|
396
|
-
console.log(chalk.cyan(' 2. Or run: . $PROFILE'));
|
|
397
|
-
} else {
|
|
398
|
-
const shell = process.env.SHELL || '/bin/bash';
|
|
399
|
-
const shellName = shell.split('/').pop();
|
|
400
|
-
console.log(chalk.cyan(` 1. Restart your terminal`));
|
|
401
|
-
console.log(chalk.cyan(` 2. Or run: source ${profilePath}`));
|
|
402
|
-
}
|
|
403
|
-
|
|
404
|
-
console.log();
|
|
405
|
-
console.log(chalk.white('Then you can use:'));
|
|
373
|
+
console.log(chalk.white('You can now use:'));
|
|
406
374
|
console.log(chalk.cyan(` ${toolInfo.command}`));
|
|
407
375
|
console.log(chalk.white('with PrimeLLM as the backend.'));
|
|
408
376
|
console.log();
|