primellm 0.1.0 → 1.0.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/README.md +60 -161
- package/dist/index.d.ts +2 -123
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +347 -169
- package/dist/index.js.map +1 -0
- package/package.json +34 -26
- package/src/index.ts +411 -0
- package/tsconfig.json +27 -0
- package/dist/types.d.ts +0 -141
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -10
package/dist/index.js
CHANGED
|
@@ -1,176 +1,354 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const figlet_1 = __importDefault(require("figlet"));
|
|
9
|
+
const ora_1 = __importDefault(require("ora"));
|
|
10
|
+
const child_process_1 = require("child_process");
|
|
11
|
+
const os_1 = require("os");
|
|
12
|
+
const fs_1 = require("fs");
|
|
13
|
+
const path_1 = require("path");
|
|
14
|
+
const open_1 = __importDefault(require("open"));
|
|
15
|
+
const enquirer_1 = __importDefault(require("enquirer"));
|
|
16
|
+
const { prompt } = enquirer_1.default;
|
|
17
|
+
// ============================================================================
|
|
18
|
+
// CONSTANTS
|
|
19
|
+
// ============================================================================
|
|
20
|
+
const PRIMELLM_BASE_URL = 'https://api.primellm.in/v1';
|
|
21
|
+
const PRIMELLM_DASHBOARD_URL = 'https://primellm.in/dashboard/api-keys';
|
|
22
|
+
// Tool installation packages
|
|
23
|
+
const TOOLS = {
|
|
24
|
+
'Claude Code': {
|
|
25
|
+
command: 'claude',
|
|
26
|
+
package: '@anthropic-ai/claude-code',
|
|
27
|
+
configName: 'claude',
|
|
28
|
+
},
|
|
29
|
+
'Codex': {
|
|
30
|
+
command: 'codex',
|
|
31
|
+
package: '@openai/codex',
|
|
32
|
+
configName: 'codex',
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
// ============================================================================
|
|
36
|
+
// SYSTEM DETECTION
|
|
37
|
+
// ============================================================================
|
|
38
|
+
function getOS() {
|
|
39
|
+
const os = (0, os_1.platform)();
|
|
40
|
+
switch (os) {
|
|
41
|
+
case 'darwin': return 'macOS';
|
|
42
|
+
case 'linux': return 'Linux';
|
|
43
|
+
case 'win32': return 'Windows';
|
|
44
|
+
default: return os;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
function getShell() {
|
|
48
|
+
const shell = process.env.SHELL || process.env.COMSPEC || 'unknown';
|
|
49
|
+
const shellName = shell.split(/[/\\]/).pop() || 'unknown';
|
|
50
|
+
return shellName;
|
|
51
|
+
}
|
|
52
|
+
function getNodeVersion() {
|
|
53
|
+
return process.version;
|
|
54
|
+
}
|
|
55
|
+
function commandExists(cmd) {
|
|
56
|
+
try {
|
|
57
|
+
const isWindows = (0, os_1.platform)() === 'win32';
|
|
58
|
+
const checkCmd = isWindows ? `where ${cmd}` : `which ${cmd}`;
|
|
59
|
+
(0, child_process_1.execSync)(checkCmd, { stdio: 'ignore' });
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// ============================================================================
|
|
67
|
+
// ASCII ART & DISPLAY
|
|
68
|
+
// ============================================================================
|
|
69
|
+
function displayBanner() {
|
|
70
|
+
console.clear();
|
|
71
|
+
const banner = figlet_1.default.textSync('PrimeLLM', {
|
|
72
|
+
font: 'Big',
|
|
73
|
+
horizontalLayout: 'default',
|
|
74
|
+
});
|
|
75
|
+
console.log(chalk_1.default.cyan(banner));
|
|
76
|
+
console.log(chalk_1.default.gray('━'.repeat(60)));
|
|
77
|
+
console.log(chalk_1.default.white.bold(' Configure AI coding tools with PrimeLLM'));
|
|
78
|
+
console.log(chalk_1.default.gray('━'.repeat(60)));
|
|
79
|
+
console.log();
|
|
80
|
+
}
|
|
81
|
+
function displaySystemInfo() {
|
|
82
|
+
console.log(chalk_1.default.white.bold('📊 System Information\n'));
|
|
83
|
+
const os = getOS();
|
|
84
|
+
const shell = getShell();
|
|
85
|
+
const nodeVersion = getNodeVersion();
|
|
86
|
+
console.log(` ${chalk_1.default.gray('OS:')} ${chalk_1.default.green(os)}`);
|
|
87
|
+
console.log(` ${chalk_1.default.gray('Shell:')} ${chalk_1.default.green(shell)}`);
|
|
88
|
+
console.log(` ${chalk_1.default.gray('Node:')} ${chalk_1.default.green(nodeVersion)}`);
|
|
89
|
+
console.log();
|
|
90
|
+
}
|
|
91
|
+
// ============================================================================
|
|
92
|
+
// CONFIGURATION PATHS
|
|
93
|
+
// ============================================================================
|
|
94
|
+
function getConfigPaths(tool, scope) {
|
|
95
|
+
const home = (0, os_1.homedir)();
|
|
96
|
+
if (tool === 'Claude Code') {
|
|
97
|
+
if (scope === 'system') {
|
|
98
|
+
return {
|
|
99
|
+
dir: (0, path_1.join)(home, '.claude'),
|
|
100
|
+
file: (0, path_1.join)(home, '.claude', 'config.json'),
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
return {
|
|
105
|
+
dir: '.claude',
|
|
106
|
+
file: (0, path_1.join)('.claude', 'config.json'),
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
// Codex uses OpenAI-compatible config
|
|
112
|
+
if (scope === 'system') {
|
|
113
|
+
return {
|
|
114
|
+
dir: (0, path_1.join)(home, '.codex'),
|
|
115
|
+
file: (0, path_1.join)(home, '.codex', 'config.json'),
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
return {
|
|
120
|
+
dir: '.codex',
|
|
121
|
+
file: (0, path_1.join)('.codex', 'config.json'),
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
function readExistingConfig(configPath) {
|
|
127
|
+
try {
|
|
128
|
+
if ((0, fs_1.existsSync)(configPath)) {
|
|
129
|
+
const content = (0, fs_1.readFileSync)(configPath, 'utf8');
|
|
130
|
+
return JSON.parse(content);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
// Config doesn't exist or is invalid
|
|
135
|
+
}
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
function writeConfig(tool, scope, apiKey) {
|
|
139
|
+
const { dir, file } = getConfigPaths(tool, scope);
|
|
140
|
+
// Create directory if it doesn't exist
|
|
141
|
+
if (!(0, fs_1.existsSync)(dir)) {
|
|
142
|
+
(0, fs_1.mkdirSync)(dir, { recursive: true });
|
|
143
|
+
}
|
|
144
|
+
let config;
|
|
145
|
+
if (tool === 'Claude Code') {
|
|
146
|
+
// Claude Code configuration format
|
|
147
|
+
config = {
|
|
148
|
+
apiKey: apiKey,
|
|
149
|
+
baseUrl: PRIMELLM_BASE_URL,
|
|
150
|
+
model: 'claude-sonnet-4-20250514', // Default model
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
// Codex (OpenAI-compatible) configuration format
|
|
155
|
+
config = {
|
|
156
|
+
apiKey: apiKey,
|
|
157
|
+
baseUrl: PRIMELLM_BASE_URL,
|
|
158
|
+
model: 'gpt-4.1', // Default model
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
// Preserve existing config values
|
|
162
|
+
const existing = readExistingConfig(file);
|
|
163
|
+
if (existing) {
|
|
164
|
+
config = { ...existing, ...config };
|
|
165
|
+
}
|
|
166
|
+
(0, fs_1.writeFileSync)(file, JSON.stringify(config, null, 2));
|
|
167
|
+
}
|
|
168
|
+
// ============================================================================
|
|
169
|
+
// TOOL INSTALLATION
|
|
170
|
+
// ============================================================================
|
|
171
|
+
async function installTool(tool) {
|
|
172
|
+
const toolInfo = TOOLS[tool];
|
|
173
|
+
const spinner = (0, ora_1.default)(`Installing ${tool}...`).start();
|
|
174
|
+
try {
|
|
175
|
+
const isWindows = (0, os_1.platform)() === 'win32';
|
|
176
|
+
const npmCmd = isWindows ? 'npm.cmd' : 'npm';
|
|
177
|
+
const result = (0, child_process_1.spawnSync)(npmCmd, ['install', '-g', toolInfo.package], {
|
|
178
|
+
stdio: 'pipe',
|
|
179
|
+
shell: true,
|
|
180
|
+
});
|
|
181
|
+
if (result.status !== 0) {
|
|
182
|
+
spinner.fail(chalk_1.default.red(`Failed to install ${tool}`));
|
|
183
|
+
console.error(chalk_1.default.gray(result.stderr?.toString() || 'Unknown error'));
|
|
184
|
+
return false;
|
|
45
185
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
186
|
+
spinner.succeed(chalk_1.default.green(`${tool} installed successfully`));
|
|
187
|
+
return true;
|
|
188
|
+
}
|
|
189
|
+
catch (error) {
|
|
190
|
+
spinner.fail(chalk_1.default.red(`Failed to install ${tool}`));
|
|
191
|
+
console.error(chalk_1.default.gray(String(error)));
|
|
192
|
+
return false;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
// ============================================================================
|
|
196
|
+
// VALIDATION
|
|
197
|
+
// ============================================================================
|
|
198
|
+
function validateApiKey(key) {
|
|
199
|
+
return key.startsWith('primellm_') && key.length > 15;
|
|
200
|
+
}
|
|
201
|
+
function maskApiKey(key) {
|
|
202
|
+
if (key.length <= 12)
|
|
203
|
+
return '***';
|
|
204
|
+
return key.substring(0, 12) + '...' + key.substring(key.length - 4);
|
|
205
|
+
}
|
|
206
|
+
// ============================================================================
|
|
207
|
+
// MAIN FLOW
|
|
208
|
+
// ============================================================================
|
|
209
|
+
async function main() {
|
|
210
|
+
displayBanner();
|
|
211
|
+
displaySystemInfo();
|
|
212
|
+
const spinner = (0, ora_1.default)('Initializing...').start();
|
|
213
|
+
await new Promise(resolve => setTimeout(resolve, 500));
|
|
214
|
+
spinner.succeed('Ready');
|
|
215
|
+
console.log();
|
|
216
|
+
// ============ STEP 1: Tool Selection ============
|
|
217
|
+
console.log(chalk_1.default.white.bold('🔧 Tool Selection\n'));
|
|
218
|
+
const { selectedTool } = await prompt({
|
|
219
|
+
type: 'select',
|
|
220
|
+
name: 'selectedTool',
|
|
221
|
+
message: 'Which tool would you like to configure?',
|
|
222
|
+
choices: ['Claude Code', 'Codex'],
|
|
223
|
+
});
|
|
224
|
+
console.log();
|
|
225
|
+
// ============ STEP 2: Tool Detection & Installation ============
|
|
226
|
+
const toolInfo = TOOLS[selectedTool];
|
|
227
|
+
const toolExists = commandExists(toolInfo.command);
|
|
228
|
+
if (toolExists) {
|
|
229
|
+
console.log(chalk_1.default.green(`✓ ${selectedTool} is already installed`));
|
|
230
|
+
}
|
|
231
|
+
else {
|
|
232
|
+
console.log(chalk_1.default.yellow(`⚠ ${selectedTool} is not installed`));
|
|
233
|
+
const { confirmInstall } = await prompt({
|
|
234
|
+
type: 'confirm',
|
|
235
|
+
name: 'confirmInstall',
|
|
236
|
+
message: `Would you like to install ${selectedTool}?`,
|
|
237
|
+
initial: true,
|
|
238
|
+
});
|
|
239
|
+
if (!confirmInstall) {
|
|
240
|
+
console.log(chalk_1.default.yellow('\n⚠ Installation cancelled. Please install manually and run again.'));
|
|
241
|
+
process.exit(0);
|
|
73
242
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
throw error;
|
|
243
|
+
const installed = await installTool(selectedTool);
|
|
244
|
+
if (!installed) {
|
|
245
|
+
console.log(chalk_1.default.red('\n❌ Installation failed. Please install manually and run again.'));
|
|
246
|
+
process.exit(1);
|
|
79
247
|
}
|
|
80
|
-
|
|
81
|
-
|
|
248
|
+
}
|
|
249
|
+
console.log();
|
|
250
|
+
// ============ STEP 3: API Key ============
|
|
251
|
+
console.log(chalk_1.default.white.bold('🔑 API Key Configuration\n'));
|
|
252
|
+
const { hasApiKey } = await prompt({
|
|
253
|
+
type: 'select',
|
|
254
|
+
name: 'hasApiKey',
|
|
255
|
+
message: 'Do you already have a PrimeLLM API key?',
|
|
256
|
+
choices: [
|
|
257
|
+
{ name: 'yes', message: 'Yes, I have an API key' },
|
|
258
|
+
{ name: 'no', message: 'No, I need to create one' },
|
|
259
|
+
],
|
|
260
|
+
});
|
|
261
|
+
let apiKey;
|
|
262
|
+
if (hasApiKey === 'no') {
|
|
263
|
+
console.log(chalk_1.default.cyan('\n📝 Opening PrimeLLM dashboard to create an API key...\n'));
|
|
264
|
+
await (0, open_1.default)(PRIMELLM_DASHBOARD_URL);
|
|
265
|
+
await prompt({
|
|
266
|
+
type: 'confirm',
|
|
267
|
+
name: 'ready',
|
|
268
|
+
message: 'Press Enter when you have created your API key...',
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
// Prompt for API key
|
|
272
|
+
const { inputApiKey } = await prompt({
|
|
273
|
+
type: 'password',
|
|
274
|
+
name: 'inputApiKey',
|
|
275
|
+
message: 'Enter your PrimeLLM API key:',
|
|
276
|
+
validate: (value) => {
|
|
277
|
+
if (!value)
|
|
278
|
+
return 'API key is required';
|
|
279
|
+
if (!validateApiKey(value))
|
|
280
|
+
return 'API key must start with "primellm_"';
|
|
281
|
+
return true;
|
|
282
|
+
},
|
|
283
|
+
});
|
|
284
|
+
apiKey = inputApiKey;
|
|
285
|
+
console.log(chalk_1.default.green(`✓ API key validated: ${maskApiKey(apiKey)}`));
|
|
286
|
+
console.log();
|
|
287
|
+
// ============ STEP 4: Configuration Scope ============
|
|
288
|
+
console.log(chalk_1.default.white.bold('📁 Configuration Scope\n'));
|
|
289
|
+
const { configScope } = await prompt({
|
|
290
|
+
type: 'select',
|
|
291
|
+
name: 'configScope',
|
|
292
|
+
message: 'Choose configuration scope:',
|
|
293
|
+
choices: [
|
|
294
|
+
{ name: 'system', message: 'System-level (applies to all projects)' },
|
|
295
|
+
{ name: 'project', message: 'Project-level (current project only)' },
|
|
296
|
+
],
|
|
297
|
+
});
|
|
298
|
+
console.log();
|
|
299
|
+
// ============ STEP 5: Check Existing Config ============
|
|
300
|
+
const { file: configFile } = getConfigPaths(selectedTool, configScope);
|
|
301
|
+
const existingConfig = readExistingConfig(configFile);
|
|
302
|
+
if (existingConfig) {
|
|
303
|
+
console.log(chalk_1.default.yellow('⚠ Existing configuration found:\n'));
|
|
304
|
+
console.log(chalk_1.default.gray(` Base URL: ${existingConfig.baseUrl || '(not set)'}`));
|
|
305
|
+
console.log(chalk_1.default.gray(` API Key: ${existingConfig.apiKey ? maskApiKey(existingConfig.apiKey) : '(not set)'}`));
|
|
306
|
+
console.log();
|
|
307
|
+
const { confirmOverwrite } = await prompt({
|
|
308
|
+
type: 'confirm',
|
|
309
|
+
name: 'confirmOverwrite',
|
|
310
|
+
message: 'Do you want to overwrite this configuration?',
|
|
311
|
+
initial: true,
|
|
312
|
+
});
|
|
313
|
+
if (!confirmOverwrite) {
|
|
314
|
+
console.log(chalk_1.default.yellow('\n⚠ Configuration cancelled.'));
|
|
315
|
+
process.exit(0);
|
|
82
316
|
}
|
|
317
|
+
console.log();
|
|
318
|
+
}
|
|
319
|
+
// ============ STEP 6: Write Configuration ============
|
|
320
|
+
const writeSpinner = (0, ora_1.default)('Writing configuration...').start();
|
|
321
|
+
try {
|
|
322
|
+
writeConfig(selectedTool, configScope, apiKey);
|
|
323
|
+
writeSpinner.succeed(chalk_1.default.green('Configuration saved'));
|
|
83
324
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
* Returns an OpenAI-compatible response format.
|
|
89
|
-
*
|
|
90
|
-
* @param request - The chat request with model and messages
|
|
91
|
-
* @returns The chat response with choices, usage, and credits
|
|
92
|
-
*
|
|
93
|
-
* @example
|
|
94
|
-
* const response = await client.chat({
|
|
95
|
-
* model: "gpt-5.1",
|
|
96
|
-
* messages: [
|
|
97
|
-
* { role: "system", content: "You are a helpful assistant." },
|
|
98
|
-
* { role: "user", content: "What is TypeScript?" },
|
|
99
|
-
* ],
|
|
100
|
-
* });
|
|
101
|
-
* console.log(response.choices[0].message.content);
|
|
102
|
-
*/
|
|
103
|
-
async chat(request) {
|
|
104
|
-
return this.request("/v1/chat", request);
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Send a chat completion request using /v1/chat/completions endpoint.
|
|
108
|
-
*
|
|
109
|
-
* This is an alternative endpoint that also returns OpenAI-compatible format.
|
|
110
|
-
* Use this if you need compatibility with OpenAI's exact endpoint path.
|
|
111
|
-
*
|
|
112
|
-
* @param request - The chat request with model and messages
|
|
113
|
-
* @returns The chat response with choices, usage, and credits
|
|
114
|
-
*/
|
|
115
|
-
async completions(request) {
|
|
116
|
-
return this.request("/v1/chat/completions", request);
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Send a request to the legacy /generate endpoint.
|
|
120
|
-
*
|
|
121
|
-
* This endpoint returns a different response format than chat().
|
|
122
|
-
* Use chat() for new projects; this is for backwards compatibility.
|
|
123
|
-
*
|
|
124
|
-
* @param request - The generate request with model and messages
|
|
125
|
-
* @returns The generate response with reply, tokens_used, cost
|
|
126
|
-
*
|
|
127
|
-
* @example
|
|
128
|
-
* const response = await client.generate({
|
|
129
|
-
* model: "gpt-5.1",
|
|
130
|
-
* messages: [{ role: "user", content: "Hello!" }],
|
|
131
|
-
* });
|
|
132
|
-
* console.log(response.reply);
|
|
133
|
-
*/
|
|
134
|
-
async generate(request) {
|
|
135
|
-
return this.request("/generate", request);
|
|
136
|
-
}
|
|
137
|
-
// ============================================================
|
|
138
|
-
// STREAMING METHODS (Not implemented yet)
|
|
139
|
-
// ============================================================
|
|
140
|
-
/**
|
|
141
|
-
* Stream a chat completion response.
|
|
142
|
-
*
|
|
143
|
-
* ⚠️ NOT IMPLEMENTED YET - Backend streaming support coming soon.
|
|
144
|
-
*
|
|
145
|
-
* @throws Error always - streaming not supported in this version
|
|
146
|
-
*/
|
|
147
|
-
async *streamChat(_request) {
|
|
148
|
-
throw new Error("streamChat is not implemented yet: backend streaming not supported in this SDK version.");
|
|
149
|
-
// This yield is never reached but satisfies TypeScript
|
|
150
|
-
yield undefined;
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Stream a completions response.
|
|
154
|
-
*
|
|
155
|
-
* ⚠️ NOT IMPLEMENTED YET - Backend streaming support coming soon.
|
|
156
|
-
*
|
|
157
|
-
* @throws Error always - streaming not supported in this version
|
|
158
|
-
*/
|
|
159
|
-
async *streamCompletions(_request) {
|
|
160
|
-
throw new Error("streamCompletions is not implemented yet: backend streaming not supported in this SDK version.");
|
|
161
|
-
yield undefined;
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* Stream a generate response.
|
|
165
|
-
*
|
|
166
|
-
* ⚠️ NOT IMPLEMENTED YET - Backend streaming support coming soon.
|
|
167
|
-
*
|
|
168
|
-
* @throws Error always - streaming not supported in this version
|
|
169
|
-
*/
|
|
170
|
-
async *streamGenerate(_request) {
|
|
171
|
-
throw new Error("streamGenerate is not implemented yet: backend streaming not supported in this SDK version.");
|
|
172
|
-
yield undefined;
|
|
325
|
+
catch (error) {
|
|
326
|
+
writeSpinner.fail(chalk_1.default.red('Failed to write configuration'));
|
|
327
|
+
console.error(chalk_1.default.gray(String(error)));
|
|
328
|
+
process.exit(1);
|
|
173
329
|
}
|
|
330
|
+
// ============ SUCCESS ============
|
|
331
|
+
console.log();
|
|
332
|
+
console.log(chalk_1.default.gray('━'.repeat(60)));
|
|
333
|
+
console.log();
|
|
334
|
+
console.log(chalk_1.default.green.bold('✅ PrimeLLM configured successfully!'));
|
|
335
|
+
console.log();
|
|
336
|
+
console.log(chalk_1.default.white('You can now use:'));
|
|
337
|
+
console.log(chalk_1.default.cyan(` ${toolInfo.command}`));
|
|
338
|
+
console.log(chalk_1.default.white('with PrimeLLM as the backend.'));
|
|
339
|
+
console.log();
|
|
340
|
+
console.log(chalk_1.default.gray(`Config location: ${configFile}`));
|
|
341
|
+
console.log(chalk_1.default.gray(`Base URL: ${PRIMELLM_BASE_URL}`));
|
|
342
|
+
console.log();
|
|
343
|
+
console.log(chalk_1.default.gray('━'.repeat(60)));
|
|
344
|
+
console.log();
|
|
345
|
+
console.log(chalk_1.default.white('Need help? Visit ') + chalk_1.default.cyan('https://primellm.in/docs'));
|
|
346
|
+
console.log();
|
|
174
347
|
}
|
|
175
|
-
//
|
|
176
|
-
|
|
348
|
+
// Run the CLI
|
|
349
|
+
main().catch((error) => {
|
|
350
|
+
console.error(chalk_1.default.red('An unexpected error occurred:'));
|
|
351
|
+
console.error(chalk_1.default.gray(String(error)));
|
|
352
|
+
process.exit(1);
|
|
353
|
+
});
|
|
354
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAEA,kDAA0B;AAC1B,oDAA4B;AAC5B,8CAAsB;AACtB,iDAAoD;AACpD,2BAAuC;AACvC,2BAAwE;AACxE,+BAA4B;AAC5B,gDAAwB;AACxB,wDAAgC;AAEhC,MAAM,EAAE,MAAM,EAAE,GAAG,kBAAQ,CAAC;AAE5B,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E,MAAM,iBAAiB,GAAG,4BAA4B,CAAC;AACvD,MAAM,sBAAsB,GAAG,wCAAwC,CAAC;AAExE,6BAA6B;AAC7B,MAAM,KAAK,GAAG;IACV,aAAa,EAAE;QACX,OAAO,EAAE,QAAQ;QACjB,OAAO,EAAE,2BAA2B;QACpC,UAAU,EAAE,QAAQ;KACvB;IACD,OAAO,EAAE;QACL,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,eAAe;QACxB,UAAU,EAAE,OAAO;KACtB;CACK,CAAC;AAIX,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,SAAS,KAAK;IACV,MAAM,EAAE,GAAG,IAAA,aAAQ,GAAE,CAAC;IACtB,QAAQ,EAAE,EAAE,CAAC;QACT,KAAK,QAAQ,CAAC,CAAC,OAAO,OAAO,CAAC;QAC9B,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;QAC7B,KAAK,OAAO,CAAC,CAAC,OAAO,SAAS,CAAC;QAC/B,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;AACL,CAAC;AAED,SAAS,QAAQ;IACb,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,SAAS,CAAC;IACpE,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC;IAC1D,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAS,cAAc;IACnB,OAAO,OAAO,CAAC,OAAO,CAAC;AAC3B,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IAC9B,IAAI,CAAC;QACD,MAAM,SAAS,GAAG,IAAA,aAAQ,GAAE,KAAK,OAAO,CAAC;QACzC,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,EAAE,CAAC;QAC7D,IAAA,wBAAQ,EAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E,SAAS,aAAa;IAClB,OAAO,CAAC,KAAK,EAAE,CAAC;IAEhB,MAAM,MAAM,GAAG,gBAAM,CAAC,QAAQ,CAAC,UAAU,EAAE;QACvC,IAAI,EAAE,KAAK;QACX,gBAAgB,EAAE,SAAS;KAC9B,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,EAAE,CAAC;AAClB,CAAC;AAED,SAAS,iBAAiB;IACtB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAEzD,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,OAAO,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,eAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,eAAK,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,EAAE,CAAC;AAClB,CAAC;AAED,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E,SAAS,cAAc,CAAC,IAAc,EAAE,KAA2B;IAC/D,MAAM,IAAI,GAAG,IAAA,YAAO,GAAE,CAAC;IAEvB,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QACzB,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrB,OAAO;gBACH,GAAG,EAAE,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,CAAC;gBAC1B,IAAI,EAAE,IAAA,WAAI,EAAC,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC;aAC7C,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,OAAO;gBACH,GAAG,EAAE,SAAS;gBACd,IAAI,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,aAAa,CAAC;aACvC,CAAC;QACN,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,sCAAsC;QACtC,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrB,OAAO;gBACH,GAAG,EAAE,IAAA,WAAI,EAAC,IAAI,EAAE,QAAQ,CAAC;gBACzB,IAAI,EAAE,IAAA,WAAI,EAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC;aAC5C,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,OAAO;gBACH,GAAG,EAAE,QAAQ;gBACb,IAAI,EAAE,IAAA,WAAI,EAAC,QAAQ,EAAE,aAAa,CAAC;aACtC,CAAC;QACN,CAAC;IACL,CAAC;AACL,CAAC;AAQD,SAAS,kBAAkB,CAAC,UAAkB;IAC1C,IAAI,CAAC;QACD,IAAI,IAAA,eAAU,EAAC,UAAU,CAAC,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,IAAA,iBAAY,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACL,qCAAqC;IACzC,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,IAAc,EAAE,KAA2B,EAAE,MAAc;IAC5E,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAElD,uCAAuC;IACvC,IAAI,CAAC,IAAA,eAAU,EAAC,GAAG,CAAC,EAAE,CAAC;QACnB,IAAA,cAAS,EAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,MAAc,CAAC;IAEnB,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QACzB,mCAAmC;QACnC,MAAM,GAAG;YACL,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,iBAAiB;YAC1B,KAAK,EAAE,0BAA0B,EAAE,gBAAgB;SACtD,CAAC;IACN,CAAC;SAAM,CAAC;QACJ,iDAAiD;QACjD,MAAM,GAAG;YACL,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,iBAAiB;YAC1B,KAAK,EAAE,SAAS,EAAE,gBAAgB;SACrC,CAAC;IACN,CAAC;IAED,kCAAkC;IAClC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,QAAQ,EAAE,CAAC;QACX,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;IACxC,CAAC;IAED,IAAA,kBAAa,EAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,KAAK,UAAU,WAAW,CAAC,IAAc;IACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,cAAc,IAAI,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;IAErD,IAAI,CAAC;QACD,MAAM,SAAS,GAAG,IAAA,aAAQ,GAAE,KAAK,OAAO,CAAC;QACzC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;QAE7C,MAAM,MAAM,GAAG,IAAA,yBAAS,EAAC,MAAM,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE;YAClE,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC,CAAC;YACrD,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,eAAe,CAAC,CAAC,CAAC;YACxE,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,IAAI,yBAAyB,CAAC,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED,+EAA+E;AAC/E,aAAa;AACb,+EAA+E;AAE/E,SAAS,cAAc,CAAC,GAAW;IAC/B,OAAO,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;AAC1D,CAAC;AAED,SAAS,UAAU,CAAC,GAAW;IAC3B,IAAI,GAAG,CAAC,MAAM,IAAI,EAAE;QAAE,OAAO,KAAK,CAAC;IACnC,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E,KAAK,UAAU,IAAI;IACf,aAAa,EAAE,CAAC;IAChB,iBAAiB,EAAE,CAAC;IAEpB,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,CAAC;IAC/C,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACzB,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,mDAAmD;IACnD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAErD,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAA6B;QAC9D,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,yCAAyC;QAClD,OAAO,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC;KACpC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,kEAAkE;IAClE,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAEnD,IAAI,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,YAAY,uBAAuB,CAAC,CAAC,CAAC;IACvE,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,KAAK,YAAY,mBAAmB,CAAC,CAAC,CAAC;QAEhE,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAA8B;YACjE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,6BAA6B,YAAY,GAAG;YACrD,OAAO,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,oEAAoE,CAAC,CAAC,CAAC;YAChG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC,CAAC;YAC1F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACL,CAAC;IAED,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,4CAA4C;IAC5C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAE5D,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAwB;QACtD,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,yCAAyC;QAClD,OAAO,EAAE;YACL,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,wBAAwB,EAAE;YAClD,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,0BAA0B,EAAE;SACtD;KACJ,CAAC,CAAC;IAEH,IAAI,MAAc,CAAC;IAEnB,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC,CAAC;QAErF,MAAM,IAAA,cAAI,EAAC,sBAAsB,CAAC,CAAC;QAEnC,MAAM,MAAM,CAAC;YACT,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,mDAAmD;SAC/D,CAAC,CAAC;IACP,CAAC;IAED,qBAAqB;IACrB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAA0B;QAC1D,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,8BAA8B;QACvC,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;YACxB,IAAI,CAAC,KAAK;gBAAE,OAAO,qBAAqB,CAAC;YACzC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBAAE,OAAO,qCAAqC,CAAC;YACzE,OAAO,IAAI,CAAC;QAChB,CAAC;KACJ,CAAC,CAAC;IAEH,MAAM,GAAG,WAAW,CAAC;IACrB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,wBAAwB,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,wDAAwD;IACxD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAE1D,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAwC;QACxE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,6BAA6B;QACtC,OAAO,EAAE;YACL,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,wCAAwC,EAAE;YACrE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,sCAAsC,EAAE;SACvE;KACJ,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,0DAA0D;IAC1D,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IACvE,MAAM,cAAc,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAEtD,IAAI,cAAc,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,eAAe,cAAc,CAAC,OAAO,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC;QAChF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,eAAe,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAClH,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAgC;YACrE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,8CAA8C;YACvD,OAAO,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC;YAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAClB,CAAC;IAED,wDAAwD;IACxD,MAAM,YAAY,GAAG,IAAA,aAAG,EAAC,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAC;IAE7D,IAAI,CAAC;QACD,WAAW,CAAC,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QAC/C,YAAY,CAAC,OAAO,CAAC,eAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC7D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,YAAY,CAAC,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,oCAAoC;IACpC,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,oBAAoB,UAAU,EAAE,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,aAAa,iBAAiB,EAAE,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACvF,OAAO,CAAC,GAAG,EAAE,CAAC;AAClB,CAAC;AAED,cAAc;AACd,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,38 +1,46 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "primellm",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
5
|
-
"
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
"
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Configure Claude Code and Codex to use PrimeLLM as the backend",
|
|
5
|
+
"bin": {
|
|
6
|
+
"primellm": "./dist/index.js"
|
|
7
|
+
},
|
|
8
|
+
"main": "./dist/index.js",
|
|
9
|
+
"scripts": {
|
|
10
|
+
"build": "tsc",
|
|
11
|
+
"start": "node dist/index.js",
|
|
12
|
+
"dev": "npx ts-node src/index.ts",
|
|
13
|
+
"prepublishOnly": "npm run build"
|
|
14
|
+
},
|
|
9
15
|
"keywords": [
|
|
10
|
-
"ai",
|
|
11
|
-
"llm",
|
|
12
|
-
"chat",
|
|
13
16
|
"primellm",
|
|
14
|
-
"gpt-5.1",
|
|
15
17
|
"claude",
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
18
|
+
"codex",
|
|
19
|
+
"ai",
|
|
20
|
+
"llm",
|
|
21
|
+
"cli",
|
|
22
|
+
"configuration"
|
|
19
23
|
],
|
|
20
24
|
"author": "PrimeLLM",
|
|
21
25
|
"license": "MIT",
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"test": "node ./examples/chat-basic.mjs"
|
|
26
|
-
},
|
|
27
|
-
"devDependencies": {
|
|
28
|
-
"typescript": "^5.6.0"
|
|
26
|
+
"repository": {
|
|
27
|
+
"type": "git",
|
|
28
|
+
"url": "https://github.com/rishuuu-codesss/primellm-backend"
|
|
29
29
|
},
|
|
30
|
+
"homepage": "https://primellm.in",
|
|
30
31
|
"engines": {
|
|
31
|
-
"node": ">=
|
|
32
|
+
"node": ">=16.0.0"
|
|
32
33
|
},
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"chalk": "^4.1.2",
|
|
36
|
+
"enquirer": "^2.4.1",
|
|
37
|
+
"figlet": "^1.7.0",
|
|
38
|
+
"ora": "^5.4.1",
|
|
39
|
+
"open": "^8.4.2"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@types/figlet": "^1.5.8",
|
|
43
|
+
"@types/node": "^20.11.0",
|
|
44
|
+
"typescript": "^5.3.0"
|
|
45
|
+
}
|
|
38
46
|
}
|