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/dist/index.js CHANGED
@@ -1,176 +1,354 @@
1
- /**
2
- * PrimeLLM JavaScript SDK - Main Client
3
- *
4
- * This is the main SDK file. Developers import this to talk to PrimeLLM
5
- * from JavaScript or TypeScript.
6
- *
7
- * Example usage:
8
- *
9
- * import { PrimeLLMClient } from "primellm";
10
- *
11
- * const client = new PrimeLLMClient({ apiKey: "primellm_live_XXX" });
12
- *
13
- * const response = await client.chat({
14
- * model: "gpt-5.1",
15
- * messages: [{ role: "user", content: "Hello!" }],
16
- * });
17
- *
18
- * console.log(response.choices[0].message.content);
19
- */
20
- // Re-export types for convenience
21
- export * from "./types.js";
22
- /**
23
- * PrimeLLM API Client
24
- *
25
- * This class handles all communication with the PrimeLLM API.
26
- * It provides methods for chat, completions, and the legacy generate endpoint.
27
- */
28
- export class PrimeLLMClient {
29
- /**
30
- * Create a new PrimeLLM client.
31
- *
32
- * @param options - Configuration options
33
- * @param options.apiKey - Your PrimeLLM API key (required)
34
- * @param options.baseURL - API base URL (default: "https://api.primellm.in")
35
- * @param options.timeoutMs - Request timeout in ms (default: 60000)
36
- *
37
- * @example
38
- * const client = new PrimeLLMClient({
39
- * apiKey: "primellm_live_XXX",
40
- * });
41
- */
42
- constructor(options) {
43
- if (!options.apiKey) {
44
- throw new Error("PrimeLLMClient: apiKey is required");
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
- this.apiKey = options.apiKey;
47
- this.baseURL = (options.baseURL ?? "https://api.primellm.in").replace(/\/$/, "");
48
- this.timeoutMs = options.timeoutMs ?? 60000;
49
- }
50
- /**
51
- * Internal helper to make API requests.
52
- * Handles authentication, JSON parsing, and error handling.
53
- */
54
- async request(path, body, options) {
55
- const controller = new AbortController();
56
- const timeout = setTimeout(() => controller.abort(), this.timeoutMs);
57
- try {
58
- const res = await fetch(`${this.baseURL}${path}`, {
59
- method: options?.method ?? "POST",
60
- headers: {
61
- "Authorization": `Bearer ${this.apiKey}`,
62
- "Content-Type": "application/json",
63
- },
64
- body: JSON.stringify(body),
65
- signal: controller.signal,
66
- });
67
- if (!res.ok) {
68
- const text = await res.text().catch(() => "");
69
- throw new Error(`PrimeLLM API error: ${res.status} ${res.statusText} - ${text}`);
70
- }
71
- const json = await res.json();
72
- return json;
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
- catch (error) {
75
- if (error instanceof Error && error.name === "AbortError") {
76
- throw new Error(`PrimeLLM API request timed out after ${this.timeoutMs}ms`);
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
- finally {
81
- clearTimeout(timeout);
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
- * Send a chat completion request using /v1/chat endpoint.
86
- *
87
- * This is the recommended method for most use cases.
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
- // Default export for convenience
176
- export default PrimeLLMClient;
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":"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"}
package/package.json CHANGED
@@ -1,38 +1,46 @@
1
1
  {
2
2
  "name": "primellm",
3
- "version": "0.1.0",
4
- "description": "Official JavaScript SDK for PrimeLLM (gpt-5.1, Claude-style AI).",
5
- "main": "dist/index.js",
6
- "module": "dist/index.mjs",
7
- "types": "dist/index.d.ts",
8
- "type": "module",
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
- "gemini",
17
- "openai",
18
- "sdk"
18
+ "codex",
19
+ "ai",
20
+ "llm",
21
+ "cli",
22
+ "configuration"
19
23
  ],
20
24
  "author": "PrimeLLM",
21
25
  "license": "MIT",
22
- "scripts": {
23
- "build": "tsc -p tsconfig.json",
24
- "lint": "echo \"no lint configured yet\"",
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": ">=18.0.0"
32
+ "node": ">=16.0.0"
32
33
  },
33
- "files": [
34
- "dist",
35
- "README.md"
36
- ],
37
- "homepage": "https://primellm.in"
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
  }