primellm 1.2.6 → 1.2.8
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 +103 -100
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +115 -112
- package/verify_config.js +1 -1
package/dist/index.js
CHANGED
|
@@ -157,9 +157,29 @@ function checkExistingEnvVars(tool) {
|
|
|
157
157
|
}
|
|
158
158
|
return { apiKey, baseUrl };
|
|
159
159
|
}
|
|
160
|
+
// Helper to get config block for a single tool
|
|
161
|
+
function getConfigBlock(tool, apiKey, isFish) {
|
|
162
|
+
const toolInfo = TOOLS[tool];
|
|
163
|
+
const startMarker = `# PrimeLLM Configuration for ${tool}`;
|
|
164
|
+
const endMarker = `# End PrimeLLM Configuration for ${tool}`;
|
|
165
|
+
let envVars = '';
|
|
166
|
+
if (tool === 'Claude Code') {
|
|
167
|
+
const keyVal = isFish ? `set -gx ANTHROPIC_API_KEY '${apiKey}'` : `export ANTHROPIC_API_KEY='${apiKey}'`;
|
|
168
|
+
const urlVal = isFish ? `set -gx ANTHROPIC_BASE_URL '${PRIMELLM_BASE_URL}'` : `export ANTHROPIC_BASE_URL='${PRIMELLM_BASE_URL}'`;
|
|
169
|
+
const tokenVal = isFish ? `set -gx ANTHROPIC_AUTH_TOKEN '${apiKey}'` : `export ANTHROPIC_AUTH_TOKEN='${apiKey}'`;
|
|
170
|
+
envVars = `${keyVal}\n${urlVal}\n${tokenVal}`;
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
// Codex
|
|
174
|
+
const keyVal = isFish ? `set -gx OPENAI_API_KEY '${apiKey}'` : `export OPENAI_API_KEY='${apiKey}'`;
|
|
175
|
+
const urlVal = isFish ? `set -gx OPENAI_BASE_URL '${PRIMELLM_BASE_URL}'` : `export OPENAI_BASE_URL='${PRIMELLM_BASE_URL}'`;
|
|
176
|
+
const primeKeyVal = isFish ? `set -gx PRIMELLM_API_KEY '${apiKey}'` : `export PRIMELLM_API_KEY='${apiKey}'`;
|
|
177
|
+
envVars = `${keyVal}\n${urlVal}\n${primeKeyVal}`;
|
|
178
|
+
}
|
|
179
|
+
return `\n${startMarker}\n${envVars}\n${endMarker}\n`;
|
|
180
|
+
}
|
|
160
181
|
function writeToShellProfile(tool, apiKey) {
|
|
161
182
|
const profilePath = getShellProfilePath();
|
|
162
|
-
const toolInfo = TOOLS[tool];
|
|
163
183
|
// Ensure directory exists (for PowerShell on Windows)
|
|
164
184
|
const profileDir = (0, path_1.join)(profilePath, '..');
|
|
165
185
|
if (!(0, fs_1.existsSync)(profileDir)) {
|
|
@@ -175,62 +195,62 @@ function writeToShellProfile(tool, apiKey) {
|
|
|
175
195
|
catch {
|
|
176
196
|
// File doesn't exist, will create new
|
|
177
197
|
}
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
const startIndex = profileContent.indexOf(startMarker);
|
|
182
|
-
const endIndex = profileContent.indexOf(endMarker);
|
|
183
|
-
if (startIndex !== -1 && endIndex !== -1) {
|
|
184
|
-
profileContent = profileContent.substring(0, startIndex) +
|
|
185
|
-
profileContent.substring(endIndex + endMarker.length);
|
|
186
|
-
}
|
|
187
|
-
// Build new configuration block
|
|
188
|
-
let configBlock;
|
|
189
|
-
if (isWindows()) {
|
|
190
|
-
// PowerShell syntax
|
|
191
|
-
// Also set PRIMELLM_API_KEY for Codex custom provider
|
|
192
|
-
const extraEnv = tool === 'Codex' ? `\n$env:PRIMELLM_API_KEY = '${apiKey}'` : '';
|
|
193
|
-
configBlock = `
|
|
194
|
-
${startMarker}
|
|
195
|
-
$env:${toolInfo.envKeyName} = '${apiKey}'
|
|
196
|
-
$env:${toolInfo.envBaseName} = '${PRIMELLM_BASE_URL}'${extraEnv}
|
|
197
|
-
${endMarker}
|
|
198
|
-
`;
|
|
198
|
+
let toolsToConfig = [];
|
|
199
|
+
if (tool === 'Configure Both') {
|
|
200
|
+
toolsToConfig = ['Claude Code', 'Codex'];
|
|
199
201
|
}
|
|
200
202
|
else {
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
${
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
203
|
+
toolsToConfig = [tool];
|
|
204
|
+
}
|
|
205
|
+
// Remove existing configs
|
|
206
|
+
['Claude Code', 'Codex'].forEach(t => {
|
|
207
|
+
const startMarker = `# PrimeLLM Configuration for ${t}`;
|
|
208
|
+
const endMarker = `# End PrimeLLM Configuration for ${t}`;
|
|
209
|
+
const startIndex = profileContent.indexOf(startMarker);
|
|
210
|
+
const endIndex = profileContent.indexOf(endMarker);
|
|
211
|
+
if (startIndex !== -1 && endIndex !== -1) {
|
|
212
|
+
profileContent = profileContent.substring(0, startIndex) +
|
|
213
|
+
profileContent.substring(endIndex + endMarker.length);
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
// Add new configs
|
|
217
|
+
const isFish = !isWindows() && (process.env.SHELL || '').includes('fish');
|
|
218
|
+
const isWin = isWindows();
|
|
219
|
+
toolsToConfig.forEach(t => {
|
|
220
|
+
if (isWin) {
|
|
221
|
+
// PowerShell
|
|
222
|
+
const startMarker = `# PrimeLLM Configuration for ${t}`;
|
|
223
|
+
const endMarker = `# End PrimeLLM Configuration for ${t}`;
|
|
224
|
+
let envVars = '';
|
|
225
|
+
if (t === 'Claude Code') {
|
|
226
|
+
envVars = `$env:ANTHROPIC_API_KEY = '${apiKey}'\n$env:ANTHROPIC_BASE_URL = '${PRIMELLM_BASE_URL}'\n$env:ANTHROPIC_AUTH_TOKEN = '${apiKey}'`;
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
envVars = `$env:OPENAI_API_KEY = '${apiKey}'\n$env:OPENAI_BASE_URL = '${PRIMELLM_BASE_URL}'\n$env:PRIMELLM_API_KEY = '${apiKey}'`;
|
|
230
|
+
}
|
|
231
|
+
profileContent = profileContent.trimEnd() + `\n\n${startMarker}\n${envVars}\n${endMarker}`;
|
|
211
232
|
}
|
|
212
233
|
else {
|
|
213
|
-
//
|
|
214
|
-
|
|
215
|
-
configBlock = `
|
|
216
|
-
${startMarker}
|
|
217
|
-
export ${toolInfo.envKeyName}='${apiKey}'
|
|
218
|
-
export ${toolInfo.envBaseName}='${PRIMELLM_BASE_URL}'${extraEnv}
|
|
219
|
-
${endMarker}
|
|
220
|
-
`;
|
|
234
|
+
// Unix
|
|
235
|
+
profileContent = profileContent.trimEnd() + getConfigBlock(t, apiKey, isFish);
|
|
221
236
|
}
|
|
222
|
-
}
|
|
223
|
-
// Append configuration
|
|
224
|
-
profileContent = profileContent.trimEnd() + '\n' + configBlock;
|
|
237
|
+
});
|
|
225
238
|
(0, fs_1.writeFileSync)(profilePath, profileContent);
|
|
226
239
|
return profilePath;
|
|
227
240
|
}
|
|
228
241
|
function setCurrentSessionEnv(tool, apiKey) {
|
|
229
|
-
const
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
242
|
+
const toolsToConfig = tool === 'Configure Both' ? ['Claude Code', 'Codex'] : [tool];
|
|
243
|
+
toolsToConfig.forEach(t => {
|
|
244
|
+
const toolInfo = TOOLS[t];
|
|
245
|
+
process.env[toolInfo.envKeyName] = apiKey;
|
|
246
|
+
process.env[toolInfo.envBaseName] = PRIMELLM_BASE_URL;
|
|
247
|
+
if (t === 'Codex') {
|
|
248
|
+
process.env['PRIMELLM_API_KEY'] = apiKey;
|
|
249
|
+
}
|
|
250
|
+
else if (t === 'Claude Code') {
|
|
251
|
+
process.env['ANTHROPIC_AUTH_TOKEN'] = apiKey;
|
|
252
|
+
}
|
|
253
|
+
});
|
|
234
254
|
}
|
|
235
255
|
// ============================================================================
|
|
236
256
|
// CODEX CONFIG.TOML CONFIGURATION
|
|
@@ -260,7 +280,7 @@ model = "gpt-4o"
|
|
|
260
280
|
name = "PrimeLLM"
|
|
261
281
|
base_url = "${PRIMELLM_BASE_URL}"
|
|
262
282
|
env_key = "PRIMELLM_API_KEY"
|
|
263
|
-
wire_api = "
|
|
283
|
+
wire_api = "responses"
|
|
264
284
|
`;
|
|
265
285
|
(0, fs_1.writeFileSync)(configPath, configContent);
|
|
266
286
|
return configPath;
|
|
@@ -315,54 +335,37 @@ async function main() {
|
|
|
315
335
|
type: 'select',
|
|
316
336
|
name: 'selectedTool',
|
|
317
337
|
message: 'Which tool would you like to configure?',
|
|
318
|
-
choices: ['Claude Code', 'Codex'],
|
|
338
|
+
choices: ['Configure Both', 'Claude Code', 'Codex'],
|
|
319
339
|
});
|
|
320
340
|
console.log();
|
|
341
|
+
const toolsToConfig = selectedTool === 'Configure Both' ? ['Claude Code', 'Codex'] : [selectedTool];
|
|
321
342
|
// ============ STEP 2: Tool Detection & Installation ============
|
|
322
|
-
const
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
else {
|
|
328
|
-
console.log(chalk_1.default.yellow(`⚠ ${selectedTool} is not installed`));
|
|
329
|
-
const { confirmInstall } = await prompt({
|
|
330
|
-
type: 'confirm',
|
|
331
|
-
name: 'confirmInstall',
|
|
332
|
-
message: `Would you like to install ${selectedTool}?`,
|
|
333
|
-
initial: true,
|
|
334
|
-
});
|
|
335
|
-
if (!confirmInstall) {
|
|
336
|
-
console.log(chalk_1.default.yellow('\n⚠ Installation cancelled. Please install manually and run again.'));
|
|
337
|
-
process.exit(0);
|
|
343
|
+
for (const tool of toolsToConfig) {
|
|
344
|
+
const toolInfo = TOOLS[tool];
|
|
345
|
+
const toolExists = commandExists(toolInfo.command);
|
|
346
|
+
if (toolExists) {
|
|
347
|
+
console.log(chalk_1.default.green(`✓ ${tool} is already installed`));
|
|
338
348
|
}
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
349
|
+
else {
|
|
350
|
+
console.log(chalk_1.default.yellow(`⚠ ${tool} is not installed`));
|
|
351
|
+
const { confirmInstall } = await prompt({
|
|
352
|
+
type: 'confirm',
|
|
353
|
+
name: 'confirmInstall',
|
|
354
|
+
message: `Would you like to install ${tool}?`,
|
|
355
|
+
initial: true,
|
|
356
|
+
});
|
|
357
|
+
if (!confirmInstall) {
|
|
358
|
+
console.log(chalk_1.default.yellow(`\n⚠ Skipping installation of ${tool}.`));
|
|
359
|
+
continue;
|
|
360
|
+
}
|
|
361
|
+
const installed = await installTool(tool);
|
|
362
|
+
if (!installed) {
|
|
363
|
+
console.log(chalk_1.default.red(`\n❌ Failed to install ${tool}. Please install manually.`));
|
|
364
|
+
}
|
|
343
365
|
}
|
|
344
366
|
}
|
|
345
367
|
console.log();
|
|
346
|
-
// ============ STEP 3:
|
|
347
|
-
const existing = checkExistingEnvVars(selectedTool);
|
|
348
|
-
if (existing.apiKey || existing.baseUrl) {
|
|
349
|
-
console.log(chalk_1.default.yellow('⚠ Existing configuration found:\n'));
|
|
350
|
-
console.log(chalk_1.default.gray(` API Key: ${existing.apiKey ? maskApiKey(existing.apiKey) : '(not set)'}`));
|
|
351
|
-
console.log(chalk_1.default.gray(` Base URL: ${existing.baseUrl || '(not set)'}`));
|
|
352
|
-
console.log();
|
|
353
|
-
const { confirmOverwrite } = await prompt({
|
|
354
|
-
type: 'confirm',
|
|
355
|
-
name: 'confirmOverwrite',
|
|
356
|
-
message: 'Do you want to overwrite this configuration?',
|
|
357
|
-
initial: true,
|
|
358
|
-
});
|
|
359
|
-
if (!confirmOverwrite) {
|
|
360
|
-
console.log(chalk_1.default.yellow('\n⚠ Configuration cancelled.'));
|
|
361
|
-
process.exit(0);
|
|
362
|
-
}
|
|
363
|
-
console.log();
|
|
364
|
-
}
|
|
365
|
-
// ============ STEP 4: API Key ============
|
|
368
|
+
// ============ STEP 3: API Key ============
|
|
366
369
|
console.log(chalk_1.default.white.bold('🔑 API Key Configuration\n'));
|
|
367
370
|
const { hasApiKey } = await prompt({
|
|
368
371
|
type: 'select',
|
|
@@ -399,25 +402,25 @@ async function main() {
|
|
|
399
402
|
apiKey = inputApiKey;
|
|
400
403
|
console.log(chalk_1.default.green(`✓ API key validated: ${maskApiKey(apiKey)}`));
|
|
401
404
|
console.log();
|
|
402
|
-
// ============ STEP
|
|
403
|
-
const writeSpinner = (0, ora_1.default)('Writing configuration
|
|
405
|
+
// ============ STEP 4: Write Configuration ============
|
|
406
|
+
const writeSpinner = (0, ora_1.default)('Writing configuration...').start();
|
|
404
407
|
try {
|
|
405
|
-
// Write to shell profile
|
|
408
|
+
// Write to shell profile (handles both if needed)
|
|
406
409
|
const profilePath = writeToShellProfile(selectedTool, apiKey);
|
|
407
410
|
// Also set for current session
|
|
408
411
|
setCurrentSessionEnv(selectedTool, apiKey);
|
|
409
412
|
// For Codex, also write config.toml
|
|
410
413
|
let codexConfigPath = null;
|
|
411
|
-
if (
|
|
414
|
+
if (toolsToConfig.includes('Codex')) {
|
|
412
415
|
codexConfigPath = writeCodexConfig(apiKey);
|
|
413
416
|
}
|
|
414
417
|
writeSpinner.succeed(chalk_1.default.green('Configuration saved'));
|
|
415
418
|
console.log();
|
|
416
419
|
console.log(chalk_1.default.gray('━'.repeat(60)));
|
|
417
420
|
console.log();
|
|
418
|
-
// Configuration Summary
|
|
421
|
+
// Configuration Summary
|
|
419
422
|
console.log(chalk_1.default.white.bold('📋 Configuration Summary:\n'));
|
|
420
|
-
console.log(` ${chalk_1.default.gray('
|
|
423
|
+
console.log(` ${chalk_1.default.gray('Tools:')} ${chalk_1.default.cyan(toolsToConfig.join(', '))}`);
|
|
421
424
|
console.log(` ${chalk_1.default.gray('Base URL:')} ${chalk_1.default.cyan(PRIMELLM_BASE_URL)}`);
|
|
422
425
|
console.log(` ${chalk_1.default.gray('API Key:')} ${chalk_1.default.yellow(maskApiKey(apiKey))}`);
|
|
423
426
|
console.log();
|
|
@@ -433,11 +436,11 @@ async function main() {
|
|
|
433
436
|
console.log(chalk_1.default.yellow.bold('⚠ IMPORTANT: Open a new terminal for changes to take effect!'));
|
|
434
437
|
console.log();
|
|
435
438
|
console.log(chalk_1.default.white('You can now use:'));
|
|
436
|
-
if (
|
|
437
|
-
console.log(chalk_1.default.cyan(`
|
|
439
|
+
if (toolsToConfig.includes('Claude Code')) {
|
|
440
|
+
console.log(chalk_1.default.cyan(` claude`));
|
|
438
441
|
}
|
|
439
|
-
|
|
440
|
-
console.log(chalk_1.default.cyan(`
|
|
442
|
+
if (toolsToConfig.includes('Codex')) {
|
|
443
|
+
console.log(chalk_1.default.cyan(` codex`));
|
|
441
444
|
}
|
|
442
445
|
console.log(chalk_1.default.white('with PrimeLLM as the backend.'));
|
|
443
446
|
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
|
@@ -180,9 +180,31 @@ function checkExistingEnvVars(tool: ToolName): { apiKey: string | null; baseUrl:
|
|
|
180
180
|
return { apiKey, baseUrl };
|
|
181
181
|
}
|
|
182
182
|
|
|
183
|
-
|
|
184
|
-
|
|
183
|
+
// Helper to get config block for a single tool
|
|
184
|
+
function getConfigBlock(tool: 'Claude Code' | 'Codex', apiKey: string, isFish: boolean): string {
|
|
185
185
|
const toolInfo = TOOLS[tool];
|
|
186
|
+
const startMarker = `# PrimeLLM Configuration for ${tool}`;
|
|
187
|
+
const endMarker = `# End PrimeLLM Configuration for ${tool}`;
|
|
188
|
+
|
|
189
|
+
let envVars = '';
|
|
190
|
+
if (tool === 'Claude Code') {
|
|
191
|
+
const keyVal = isFish ? `set -gx ANTHROPIC_API_KEY '${apiKey}'` : `export ANTHROPIC_API_KEY='${apiKey}'`;
|
|
192
|
+
const urlVal = isFish ? `set -gx ANTHROPIC_BASE_URL '${PRIMELLM_BASE_URL}'` : `export ANTHROPIC_BASE_URL='${PRIMELLM_BASE_URL}'`;
|
|
193
|
+
const tokenVal = isFish ? `set -gx ANTHROPIC_AUTH_TOKEN '${apiKey}'` : `export ANTHROPIC_AUTH_TOKEN='${apiKey}'`;
|
|
194
|
+
envVars = `${keyVal}\n${urlVal}\n${tokenVal}`;
|
|
195
|
+
} else {
|
|
196
|
+
// Codex
|
|
197
|
+
const keyVal = isFish ? `set -gx OPENAI_API_KEY '${apiKey}'` : `export OPENAI_API_KEY='${apiKey}'`;
|
|
198
|
+
const urlVal = isFish ? `set -gx OPENAI_BASE_URL '${PRIMELLM_BASE_URL}'` : `export OPENAI_BASE_URL='${PRIMELLM_BASE_URL}'`;
|
|
199
|
+
const primeKeyVal = isFish ? `set -gx PRIMELLM_API_KEY '${apiKey}'` : `export PRIMELLM_API_KEY='${apiKey}'`;
|
|
200
|
+
envVars = `${keyVal}\n${urlVal}\n${primeKeyVal}`;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
return `\n${startMarker}\n${envVars}\n${endMarker}\n`;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
function writeToShellProfile(tool: string, apiKey: string): string {
|
|
207
|
+
const profilePath = getShellProfilePath();
|
|
186
208
|
|
|
187
209
|
// Ensure directory exists (for PowerShell on Windows)
|
|
188
210
|
const profileDir = join(profilePath, '..');
|
|
@@ -200,68 +222,68 @@ function writeToShellProfile(tool: ToolName, apiKey: string): string {
|
|
|
200
222
|
// File doesn't exist, will create new
|
|
201
223
|
}
|
|
202
224
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
225
|
+
let toolsToConfig: ('Claude Code' | 'Codex')[] = [];
|
|
226
|
+
if (tool === 'Configure Both') {
|
|
227
|
+
toolsToConfig = ['Claude Code', 'Codex'];
|
|
228
|
+
} else {
|
|
229
|
+
toolsToConfig = [tool as 'Claude Code' | 'Codex'];
|
|
230
|
+
}
|
|
206
231
|
|
|
207
|
-
|
|
208
|
-
|
|
232
|
+
// Remove existing configs
|
|
233
|
+
['Claude Code', 'Codex'].forEach(t => {
|
|
234
|
+
const startMarker = `# PrimeLLM Configuration for ${t}`;
|
|
235
|
+
const endMarker = `# End PrimeLLM Configuration for ${t}`;
|
|
236
|
+
const startIndex = profileContent.indexOf(startMarker);
|
|
237
|
+
const endIndex = profileContent.indexOf(endMarker);
|
|
209
238
|
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
239
|
+
if (startIndex !== -1 && endIndex !== -1) {
|
|
240
|
+
profileContent = profileContent.substring(0, startIndex) +
|
|
241
|
+
profileContent.substring(endIndex + endMarker.length);
|
|
242
|
+
}
|
|
243
|
+
});
|
|
214
244
|
|
|
215
|
-
//
|
|
216
|
-
|
|
245
|
+
// Add new configs
|
|
246
|
+
const isFish = !isWindows() && (process.env.SHELL || '').includes('fish');
|
|
247
|
+
const isWin = isWindows();
|
|
217
248
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
${
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
const extraEnv = tool === 'Codex' ? `\nset -gx PRIMELLM_API_KEY '${apiKey}'` : '';
|
|
233
|
-
configBlock = `
|
|
234
|
-
${startMarker}
|
|
235
|
-
set -gx ${toolInfo.envKeyName} '${apiKey}'
|
|
236
|
-
set -gx ${toolInfo.envBaseName} '${PRIMELLM_BASE_URL}'${extraEnv}
|
|
237
|
-
${endMarker}
|
|
238
|
-
`;
|
|
249
|
+
toolsToConfig.forEach(t => {
|
|
250
|
+
if (isWin) {
|
|
251
|
+
// PowerShell
|
|
252
|
+
const startMarker = `# PrimeLLM Configuration for ${t}`;
|
|
253
|
+
const endMarker = `# End PrimeLLM Configuration for ${t}`;
|
|
254
|
+
let envVars = '';
|
|
255
|
+
|
|
256
|
+
if (t === 'Claude Code') {
|
|
257
|
+
envVars = `$env:ANTHROPIC_API_KEY = '${apiKey}'\n$env:ANTHROPIC_BASE_URL = '${PRIMELLM_BASE_URL}'\n$env:ANTHROPIC_AUTH_TOKEN = '${apiKey}'`;
|
|
258
|
+
} else {
|
|
259
|
+
envVars = `$env:OPENAI_API_KEY = '${apiKey}'\n$env:OPENAI_BASE_URL = '${PRIMELLM_BASE_URL}'\n$env:PRIMELLM_API_KEY = '${apiKey}'`;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
profileContent = profileContent.trimEnd() + `\n\n${startMarker}\n${envVars}\n${endMarker}`;
|
|
239
263
|
} else {
|
|
240
|
-
//
|
|
241
|
-
|
|
242
|
-
configBlock = `
|
|
243
|
-
${startMarker}
|
|
244
|
-
export ${toolInfo.envKeyName}='${apiKey}'
|
|
245
|
-
export ${toolInfo.envBaseName}='${PRIMELLM_BASE_URL}'${extraEnv}
|
|
246
|
-
${endMarker}
|
|
247
|
-
`;
|
|
264
|
+
// Unix
|
|
265
|
+
profileContent = profileContent.trimEnd() + getConfigBlock(t, apiKey, isFish);
|
|
248
266
|
}
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
// Append configuration
|
|
252
|
-
profileContent = profileContent.trimEnd() + '\n' + configBlock;
|
|
267
|
+
});
|
|
253
268
|
|
|
254
269
|
writeFileSync(profilePath, profileContent);
|
|
255
|
-
|
|
256
270
|
return profilePath;
|
|
257
271
|
}
|
|
258
272
|
|
|
259
|
-
function setCurrentSessionEnv(tool:
|
|
260
|
-
const
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
273
|
+
function setCurrentSessionEnv(tool: string, apiKey: string): void {
|
|
274
|
+
const toolsToConfig = tool === 'Configure Both' ? ['Claude Code', 'Codex'] : [tool];
|
|
275
|
+
|
|
276
|
+
toolsToConfig.forEach(t => {
|
|
277
|
+
const toolInfo = TOOLS[t as ToolName];
|
|
278
|
+
process.env[toolInfo.envKeyName] = apiKey;
|
|
279
|
+
process.env[toolInfo.envBaseName] = PRIMELLM_BASE_URL;
|
|
280
|
+
|
|
281
|
+
if (t === 'Codex') {
|
|
282
|
+
process.env['PRIMELLM_API_KEY'] = apiKey;
|
|
283
|
+
} else if (t === 'Claude Code') {
|
|
284
|
+
process.env['ANTHROPIC_AUTH_TOKEN'] = apiKey;
|
|
285
|
+
}
|
|
286
|
+
});
|
|
265
287
|
}
|
|
266
288
|
|
|
267
289
|
// ============================================================================
|
|
@@ -295,7 +317,7 @@ model = "gpt-4o"
|
|
|
295
317
|
name = "PrimeLLM"
|
|
296
318
|
base_url = "${PRIMELLM_BASE_URL}"
|
|
297
319
|
env_key = "PRIMELLM_API_KEY"
|
|
298
|
-
wire_api = "
|
|
320
|
+
wire_api = "responses"
|
|
299
321
|
`;
|
|
300
322
|
|
|
301
323
|
writeFileSync(configPath, configContent);
|
|
@@ -358,69 +380,49 @@ async function main(): Promise<void> {
|
|
|
358
380
|
// ============ STEP 1: Tool Selection ============
|
|
359
381
|
console.log(chalk.white.bold('🔧 Tool Selection\n'));
|
|
360
382
|
|
|
361
|
-
const { selectedTool } = await prompt<{ selectedTool:
|
|
383
|
+
const { selectedTool } = await prompt<{ selectedTool: string }>({
|
|
362
384
|
type: 'select',
|
|
363
385
|
name: 'selectedTool',
|
|
364
386
|
message: 'Which tool would you like to configure?',
|
|
365
|
-
choices: ['Claude Code', 'Codex'],
|
|
387
|
+
choices: ['Configure Both', 'Claude Code', 'Codex'],
|
|
366
388
|
});
|
|
367
389
|
|
|
368
390
|
console.log();
|
|
369
391
|
|
|
370
|
-
|
|
371
|
-
const toolInfo = TOOLS[selectedTool];
|
|
372
|
-
const toolExists = commandExists(toolInfo.command);
|
|
373
|
-
|
|
374
|
-
if (toolExists) {
|
|
375
|
-
console.log(chalk.green(`✓ ${selectedTool} is already installed`));
|
|
376
|
-
} else {
|
|
377
|
-
console.log(chalk.yellow(`⚠ ${selectedTool} is not installed`));
|
|
392
|
+
const toolsToConfig = selectedTool === 'Configure Both' ? ['Claude Code', 'Codex'] : [selectedTool];
|
|
378
393
|
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
initial: true,
|
|
384
|
-
});
|
|
385
|
-
|
|
386
|
-
if (!confirmInstall) {
|
|
387
|
-
console.log(chalk.yellow('\n⚠ Installation cancelled. Please install manually and run again.'));
|
|
388
|
-
process.exit(0);
|
|
389
|
-
}
|
|
394
|
+
// ============ STEP 2: Tool Detection & Installation ============
|
|
395
|
+
for (const tool of toolsToConfig) {
|
|
396
|
+
const toolInfo = TOOLS[tool as ToolName];
|
|
397
|
+
const toolExists = commandExists(toolInfo.command);
|
|
390
398
|
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
399
|
+
if (toolExists) {
|
|
400
|
+
console.log(chalk.green(`✓ ${tool} is already installed`));
|
|
401
|
+
} else {
|
|
402
|
+
console.log(chalk.yellow(`⚠ ${tool} is not installed`));
|
|
403
|
+
|
|
404
|
+
const { confirmInstall } = await prompt<{ confirmInstall: boolean }>({
|
|
405
|
+
type: 'confirm',
|
|
406
|
+
name: 'confirmInstall',
|
|
407
|
+
message: `Would you like to install ${tool}?`,
|
|
408
|
+
initial: true,
|
|
409
|
+
});
|
|
410
|
+
|
|
411
|
+
if (!confirmInstall) {
|
|
412
|
+
console.log(chalk.yellow(`\n⚠ Skipping installation of ${tool}.`));
|
|
413
|
+
continue;
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
const installed = await installTool(tool as ToolName);
|
|
417
|
+
if (!installed) {
|
|
418
|
+
console.log(chalk.red(`\n❌ Failed to install ${tool}. Please install manually.`));
|
|
419
|
+
}
|
|
395
420
|
}
|
|
396
421
|
}
|
|
397
422
|
|
|
398
423
|
console.log();
|
|
399
424
|
|
|
400
|
-
// ============ STEP 3:
|
|
401
|
-
const existing = checkExistingEnvVars(selectedTool);
|
|
402
|
-
|
|
403
|
-
if (existing.apiKey || existing.baseUrl) {
|
|
404
|
-
console.log(chalk.yellow('⚠ Existing configuration found:\n'));
|
|
405
|
-
console.log(chalk.gray(` API Key: ${existing.apiKey ? maskApiKey(existing.apiKey) : '(not set)'}`));
|
|
406
|
-
console.log(chalk.gray(` Base URL: ${existing.baseUrl || '(not set)'}`));
|
|
407
|
-
console.log();
|
|
408
|
-
|
|
409
|
-
const { confirmOverwrite } = await prompt<{ confirmOverwrite: boolean }>({
|
|
410
|
-
type: 'confirm',
|
|
411
|
-
name: 'confirmOverwrite',
|
|
412
|
-
message: 'Do you want to overwrite this configuration?',
|
|
413
|
-
initial: true,
|
|
414
|
-
});
|
|
415
|
-
|
|
416
|
-
if (!confirmOverwrite) {
|
|
417
|
-
console.log(chalk.yellow('\n⚠ Configuration cancelled.'));
|
|
418
|
-
process.exit(0);
|
|
419
|
-
}
|
|
420
|
-
console.log();
|
|
421
|
-
}
|
|
422
|
-
|
|
423
|
-
// ============ STEP 4: API Key ============
|
|
425
|
+
// ============ STEP 3: API Key ============
|
|
424
426
|
console.log(chalk.white.bold('🔑 API Key Configuration\n'));
|
|
425
427
|
|
|
426
428
|
const { hasApiKey } = await prompt<{ hasApiKey: string }>({
|
|
@@ -463,11 +465,11 @@ async function main(): Promise<void> {
|
|
|
463
465
|
console.log(chalk.green(`✓ API key validated: ${maskApiKey(apiKey)}`));
|
|
464
466
|
console.log();
|
|
465
467
|
|
|
466
|
-
// ============ STEP
|
|
467
|
-
const writeSpinner = ora('Writing configuration
|
|
468
|
+
// ============ STEP 4: Write Configuration ============
|
|
469
|
+
const writeSpinner = ora('Writing configuration...').start();
|
|
468
470
|
|
|
469
471
|
try {
|
|
470
|
-
// Write to shell profile
|
|
472
|
+
// Write to shell profile (handles both if needed)
|
|
471
473
|
const profilePath = writeToShellProfile(selectedTool, apiKey);
|
|
472
474
|
|
|
473
475
|
// Also set for current session
|
|
@@ -475,7 +477,7 @@ async function main(): Promise<void> {
|
|
|
475
477
|
|
|
476
478
|
// For Codex, also write config.toml
|
|
477
479
|
let codexConfigPath: string | null = null;
|
|
478
|
-
if (
|
|
480
|
+
if (toolsToConfig.includes('Codex')) {
|
|
479
481
|
codexConfigPath = writeCodexConfig(apiKey);
|
|
480
482
|
}
|
|
481
483
|
|
|
@@ -485,9 +487,9 @@ async function main(): Promise<void> {
|
|
|
485
487
|
console.log(chalk.gray('━'.repeat(60)));
|
|
486
488
|
console.log();
|
|
487
489
|
|
|
488
|
-
// Configuration Summary
|
|
490
|
+
// Configuration Summary
|
|
489
491
|
console.log(chalk.white.bold('📋 Configuration Summary:\n'));
|
|
490
|
-
console.log(` ${chalk.gray('
|
|
492
|
+
console.log(` ${chalk.gray('Tools:')} ${chalk.cyan(toolsToConfig.join(', '))}`);
|
|
491
493
|
console.log(` ${chalk.gray('Base URL:')} ${chalk.cyan(PRIMELLM_BASE_URL)}`);
|
|
492
494
|
console.log(` ${chalk.gray('API Key:')} ${chalk.yellow(maskApiKey(apiKey))}`);
|
|
493
495
|
console.log();
|
|
@@ -507,10 +509,11 @@ async function main(): Promise<void> {
|
|
|
507
509
|
console.log();
|
|
508
510
|
|
|
509
511
|
console.log(chalk.white('You can now use:'));
|
|
510
|
-
if (
|
|
512
|
+
if (toolsToConfig.includes('Claude Code')) {
|
|
513
|
+
console.log(chalk.cyan(` claude`));
|
|
514
|
+
}
|
|
515
|
+
if (toolsToConfig.includes('Codex')) {
|
|
511
516
|
console.log(chalk.cyan(` codex`));
|
|
512
|
-
} else {
|
|
513
|
-
console.log(chalk.cyan(` ${toolInfo.command}`));
|
|
514
517
|
}
|
|
515
518
|
console.log(chalk.white('with PrimeLLM as the backend.'));
|
|
516
519
|
console.log();
|