@chrishdx/llm-dev-server 1.1.6 → 1.1.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.
Files changed (45) hide show
  1. package/backend/bin/wrapper.js +121 -0
  2. package/backend/dist/controllers/AuthController.d.ts +3 -0
  3. package/backend/dist/controllers/AuthController.d.ts.map +1 -1
  4. package/backend/dist/controllers/AuthController.js +40 -0
  5. package/backend/dist/controllers/AuthController.js.map +1 -1
  6. package/backend/dist/routes/auth.routes.d.ts.map +1 -1
  7. package/backend/dist/routes/auth.routes.js +3 -0
  8. package/backend/dist/routes/auth.routes.js.map +1 -1
  9. package/backend/dist/routes/index.d.ts.map +1 -1
  10. package/backend/dist/routes/index.js +4 -0
  11. package/backend/dist/routes/index.js.map +1 -1
  12. package/backend/dist/routes/system.routes.d.ts +15 -0
  13. package/backend/dist/routes/system.routes.d.ts.map +1 -0
  14. package/backend/dist/routes/system.routes.js +152 -0
  15. package/backend/dist/routes/system.routes.js.map +1 -0
  16. package/backend/dist/routes/test.routes.d.ts +3 -0
  17. package/backend/dist/routes/test.routes.d.ts.map +1 -0
  18. package/backend/dist/routes/test.routes.js +211 -0
  19. package/backend/dist/routes/test.routes.js.map +1 -0
  20. package/backend/dist/services/SystemService.d.ts +88 -0
  21. package/backend/dist/services/SystemService.d.ts.map +1 -0
  22. package/backend/dist/services/SystemService.js +299 -0
  23. package/backend/dist/services/SystemService.js.map +1 -0
  24. package/backend/dist/services/auth/TokenRefreshService.d.ts +4 -0
  25. package/backend/dist/services/auth/TokenRefreshService.d.ts.map +1 -1
  26. package/backend/dist/services/auth/TokenRefreshService.js +14 -0
  27. package/backend/dist/services/auth/TokenRefreshService.js.map +1 -1
  28. package/backend/dist/services/conversation/ConversationService.d.ts.map +1 -1
  29. package/backend/dist/services/conversation/ConversationService.js +21 -1
  30. package/backend/dist/services/conversation/ConversationService.js.map +1 -1
  31. package/backend/dist/services/llm/ClaudeProvider.d.ts +10 -8
  32. package/backend/dist/services/llm/ClaudeProvider.d.ts.map +1 -1
  33. package/backend/dist/services/llm/ClaudeProvider.js +104 -304
  34. package/backend/dist/services/llm/ClaudeProvider.js.map +1 -1
  35. package/backend/dist/services/llm/LLMProviderBase.d.ts +5 -0
  36. package/backend/dist/services/llm/LLMProviderBase.d.ts.map +1 -1
  37. package/backend/dist/services/llm/LLMProviderBase.js.map +1 -1
  38. package/backend/package.json +5 -5
  39. package/backend/public/assets/index-CrDmFy4C.js +242 -0
  40. package/backend/public/index.html +1 -1
  41. package/package.json +18 -17
  42. package/shared/dist/types/api.d.ts +38 -2
  43. package/shared/dist/types/api.d.ts.map +1 -1
  44. package/backend/bin/llm-dev-server.js +0 -3
  45. package/backend/public/assets/index-C5FA1UMN.js +0 -189
@@ -4,14 +4,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ClaudeProvider = void 0;
7
- const child_process_1 = require("child_process");
8
- const readline_1 = __importDefault(require("readline"));
9
- const path_1 = __importDefault(require("path"));
10
- const promises_1 = __importDefault(require("fs/promises"));
11
7
  const LLMProviderBase_1 = require("./LLMProviderBase");
12
8
  const models_1 = require("../../models");
13
9
  const crypto_1 = require("../../utils/crypto");
14
- const environment_1 = __importDefault(require("../../config/environment"));
15
10
  const logger_1 = __importDefault(require("../../utils/logger"));
16
11
  const CLAUDE_CLIENT_ID = '9d1c250a-e61b-44d9-88ed-5944d1962f5e';
17
12
  const CLAUDE_TOKEN_URL = 'https://console.anthropic.com/v1/oauth/token';
@@ -20,88 +15,27 @@ class ClaudeProvider extends LLMProviderBase_1.LLMProviderBase {
20
15
  super(providerConfig);
21
16
  }
22
17
  async initialize() {
23
- logger_1.default.info(`Initializing Claude provider for working directory: ${this.config.workingDirectory}`);
24
- // Set CLAUDE_CONFIG_DIR to our data directory where credentials are stored
25
- // This ensures the CLI uses the same credentials that we manage (refresh, etc.)
26
- const claudeConfigDir = path_1.default.join(environment_1.default.DATA_DIR, 'claude');
27
- logger_1.default.info(`CLAUDE_CONFIG_DIR: ${claudeConfigDir}`);
28
- logger_1.default.info(`HOME env: ${process.env.HOME}`);
29
- this.env = {
30
- ...process.env,
31
- HOME: process.env.HOME || "",
32
- CLAUDE_CONFIG_DIR: claudeConfigDir,
33
- };
34
- // Verify auth token exists
18
+ logger_1.default.info(`Initializing Claude provider (SDK V2) for working directory: ${this.config.workingDirectory}`);
19
+ // Load SDK dynamically (it's an ES module)
20
+ try {
21
+ this.sdk = await import("@anthropic-ai/claude-agent-sdk");
22
+ }
23
+ catch (error) {
24
+ logger_1.default.error("Failed to load Claude Agent SDK:", error);
25
+ throw new Error("Failed to load Claude Agent SDK. Make sure it's installed.");
26
+ }
27
+ // Verify auth token exists and get OAuth access token
35
28
  const token = await models_1.AuthToken.findByPk(this.config.tokenId);
36
29
  if (!token || token.provider !== "claude") {
37
30
  throw new Error("Invalid Claude auth token");
38
31
  }
39
- // Sync credentials from database to file for CLI
40
- await this.syncCredentialsToFile(token);
41
- // Use session from config if provided (like Gemini and Codex)
32
+ // Decrypt and store access token
33
+ this.accessToken = (0, crypto_1.decrypt)(token.accessToken);
34
+ // Use session from config if provided
42
35
  if (this.config.sessionId) {
43
36
  this.currentSessionId = this.config.sessionId;
44
37
  }
45
- logger_1.default.info("Claude provider initialized");
46
- }
47
- /**
48
- * Sync credentials from database to file for CLI usage
49
- * Writes credentials in the format that works on both macOS (with Keychain) and Linux (without Keychain)
50
- */
51
- async syncCredentialsToFile(token) {
52
- try {
53
- // Decrypt tokens from database
54
- const accessToken = (0, crypto_1.decrypt)(token.accessToken);
55
- const refreshToken = token.refreshToken
56
- ? (0, crypto_1.decrypt)(token.refreshToken)
57
- : undefined;
58
- // Write credentials in the format Claude CLI expects (matching n8n-nodes-claude-cli)
59
- const credentialsData = {
60
- claudeAiOauth: {
61
- accessToken: accessToken,
62
- refreshToken: refreshToken,
63
- expiresAt: token.expiresAt
64
- ? new Date(token.expiresAt).getTime()
65
- : Date.now() + 3600000,
66
- issuedAt: token.issuedAt
67
- ? new Date(token.issuedAt).getTime()
68
- : Date.now(),
69
- scopes: token.scopes || ["user:inference"],
70
- subscriptionType: "pro", // Default value
71
- rateLimitTier: "default_claude_ai", // Default value
72
- },
73
- claudeAiProfile: {
74
- email: token.email || null,
75
- organization: token.organization || null,
76
- subscriptionType: "pro",
77
- rateLimitTier: "default_claude_ai",
78
- },
79
- };
80
- const credentialsJson = JSON.stringify(credentialsData, null, 2);
81
- // Write to CLAUDE_CONFIG_DIR
82
- const claudeConfigDir = path_1.default.join(environment_1.default.DATA_DIR, "claude");
83
- const customCredentialsPath = path_1.default.join(claudeConfigDir, ".credentials.json");
84
- await promises_1.default.mkdir(claudeConfigDir, { recursive: true, mode: 0o700 });
85
- await promises_1.default.writeFile(customCredentialsPath, credentialsJson, {
86
- encoding: "utf8",
87
- mode: 0o600,
88
- });
89
- logger_1.default.info(`Claude credentials synced to: ${customCredentialsPath}`);
90
- // ALSO write to default HOME/.claude/ path (where CLI looks by default)
91
- const homeDir = process.env.HOME || "/root";
92
- const defaultClaudeDir = path_1.default.join(homeDir, ".claude");
93
- const defaultCredentialsPath = path_1.default.join(defaultClaudeDir, ".credentials.json");
94
- await promises_1.default.mkdir(defaultClaudeDir, { recursive: true, mode: 0o700 });
95
- await promises_1.default.writeFile(defaultCredentialsPath, credentialsJson, {
96
- encoding: "utf8",
97
- mode: 0o600,
98
- });
99
- logger_1.default.info(`Claude credentials synced to default path: ${defaultCredentialsPath}`);
100
- }
101
- catch (error) {
102
- logger_1.default.error("Failed to sync Claude credentials to file:", error);
103
- throw new Error("Failed to prepare Claude credentials");
104
- }
38
+ logger_1.default.info("Claude provider (SDK V2) initialized");
105
39
  }
106
40
  /**
107
41
  * Check if token needs refresh (expires within 5 minutes)
@@ -144,47 +78,13 @@ class ClaudeProvider extends LLMProviderBase_1.LLMProviderBase {
144
78
  const tokens = await tokenResponse.json();
145
79
  // Update token in database
146
80
  const newExpiresAt = new Date(Date.now() + tokens.expires_in * 1000);
147
- const newIssuedAt = Date.now();
148
81
  await token.update({
149
82
  accessToken: (0, crypto_1.encrypt)(tokens.access_token),
150
83
  refreshToken: tokens.refresh_token ? (0, crypto_1.encrypt)(tokens.refresh_token) : token.refreshToken,
151
84
  expiresAt: newExpiresAt,
152
85
  });
153
- // Also update credentials file for CLI (same format as syncCredentialsToFile)
154
- const credentialsData = {
155
- claudeAiOauth: {
156
- accessToken: tokens.access_token,
157
- refreshToken: tokens.refresh_token || (0, crypto_1.decrypt)(token.refreshToken),
158
- expiresAt: newExpiresAt.getTime(),
159
- issuedAt: newIssuedAt,
160
- scopes: token.scopes || ["user:inference"],
161
- subscriptionType: "pro",
162
- rateLimitTier: "default_claude_ai",
163
- },
164
- claudeAiProfile: {
165
- email: token.email || null,
166
- organization: token.organization || null,
167
- subscriptionType: "pro",
168
- rateLimitTier: "default_claude_ai",
169
- },
170
- };
171
- const credentialsJson = JSON.stringify(credentialsData, null, 2);
172
- // Write to both locations
173
- try {
174
- const claudeConfigDir = path_1.default.join(environment_1.default.DATA_DIR, 'claude');
175
- const credentialsPath = path_1.default.join(claudeConfigDir, '.credentials.json');
176
- await promises_1.default.mkdir(claudeConfigDir, { recursive: true, mode: 0o700 });
177
- await promises_1.default.writeFile(credentialsPath, credentialsJson, { encoding: 'utf8', mode: 0o600 });
178
- const homeDir = process.env.HOME || "/root";
179
- const defaultClaudeDir = path_1.default.join(homeDir, ".claude");
180
- const defaultCredentialsPath = path_1.default.join(defaultClaudeDir, ".credentials.json");
181
- await promises_1.default.mkdir(defaultClaudeDir, { recursive: true, mode: 0o700 });
182
- await promises_1.default.writeFile(defaultCredentialsPath, credentialsJson, { encoding: 'utf8', mode: 0o600 });
183
- logger_1.default.info("Claude credentials file updated after token refresh");
184
- }
185
- catch (fileError) {
186
- logger_1.default.warn("Could not update credentials file:", fileError);
187
- }
86
+ // Update in-memory access token
87
+ this.accessToken = tokens.access_token;
188
88
  logger_1.default.info("Claude token refreshed successfully, new expiry:", newExpiresAt);
189
89
  }
190
90
  catch (error) {
@@ -192,53 +92,98 @@ class ClaudeProvider extends LLMProviderBase_1.LLMProviderBase {
192
92
  throw new Error(`Token refresh failed: ${error instanceof Error ? error.message : String(error)}. Please run /login to re-authenticate.`);
193
93
  }
194
94
  }
95
+ /**
96
+ * Helper to extract text from assistant messages
97
+ */
98
+ getAssistantText(msg) {
99
+ if (msg.type !== 'assistant')
100
+ return null;
101
+ return msg.message.content
102
+ .filter((block) => block.type === 'text')
103
+ .map((block) => block.text)
104
+ .join('');
105
+ }
106
+ /**
107
+ * Helper to get token usage from SDK message
108
+ */
109
+ getTokenUsage(msg) {
110
+ const usage = msg.usage;
111
+ if (!usage) {
112
+ return { input: 0, output: 0, total: 0 };
113
+ }
114
+ const inputTokens = usage.input_tokens || 0;
115
+ const outputTokens = usage.output_tokens || 0;
116
+ return {
117
+ input: inputTokens,
118
+ output: outputTokens,
119
+ total: inputTokens + outputTokens,
120
+ };
121
+ }
195
122
  async sendMessage(params) {
196
123
  // Check and refresh token if needed before sending
197
124
  await this.checkAndRefreshToken();
198
- const { content, systemPrompt, attachments, onChunk } = params;
199
- // Build CLI arguments - put all options BEFORE the prompt
200
- const args = [
201
- "--print",
202
- "--output-format",
203
- onChunk ? "stream-json" : "json",
204
- "--dangerously-skip-permissions", // Skip permission prompts for automation
205
- ];
206
- if (this.config.model) {
207
- args.push("--model", this.config.model);
208
- }
209
- if (systemPrompt) {
210
- args.push("--append-system-prompt", systemPrompt);
211
- }
212
- if (this.currentSessionId) {
213
- args.push("--session-id", this.currentSessionId);
125
+ if (!this.accessToken) {
126
+ throw new Error("No access token available");
214
127
  }
215
- // Attachments as additional directories
216
- if (attachments && attachments.length > 0) {
217
- attachments.forEach((attachment) => {
218
- args.push("--add-dir", attachment);
219
- });
128
+ if (!this.sdk) {
129
+ throw new Error("SDK not initialized. Call initialize() first.");
220
130
  }
221
- // Add the prompt LAST
222
- args.push("-p", content);
223
- // Spawn Claude CLI
224
- const cliPath = this.resolveClaudeCli();
225
- logger_1.default.info(`Spawning Claude CLI: ${cliPath}`);
226
- logger_1.default.info(`Claude CLI args: ${args.join(" ")}`);
227
- logger_1.default.info(`Claude CLI env CLAUDE_CONFIG_DIR: ${this.env?.CLAUDE_CONFIG_DIR ?? "not set"}`);
228
- logger_1.default.info(`Claude CLI env HOME: ${this.env?.HOME}`);
229
- logger_1.default.info(`Claude CLI cwd: ${this.config.workingDirectory}`);
131
+ const { content, systemPrompt, onChunk } = params;
230
132
  try {
231
- const child = (0, child_process_1.spawn)(cliPath, args, {
232
- env: this.env,
233
- cwd: this.config.workingDirectory,
234
- stdio: ["ignore", "pipe", "pipe"], // Don't pipe stdin - we use -p flag for prompt
235
- });
236
- if (onChunk) {
237
- return await this.handleStreamingResponse(child, onChunk);
133
+ let session;
134
+ // Create session options with OAuth token
135
+ const sessionOptions = {
136
+ model: this.config.model || 'claude-sonnet-4-5-20250929',
137
+ apiKey: this.accessToken, // Use OAuth token as API key
138
+ workingDirectory: this.config.workingDirectory,
139
+ systemPrompt: systemPrompt,
140
+ };
141
+ // Create or resume session
142
+ if (this.currentSessionId) {
143
+ logger_1.default.info(`Resuming Claude session: ${this.currentSessionId}`);
144
+ session = this.sdk.unstable_v2_resumeSession(this.currentSessionId, sessionOptions);
238
145
  }
239
146
  else {
240
- return await this.handleJsonResponse(child);
147
+ logger_1.default.info("Creating new Claude session");
148
+ session = this.sdk.unstable_v2_createSession(sessionOptions);
149
+ }
150
+ // Send message
151
+ await session.send(content);
152
+ // Stream response
153
+ let fullContent = "";
154
+ let tokenUsage = { input: 0, output: 0, total: 0 };
155
+ let newSessionId;
156
+ for await (const msg of session.stream()) {
157
+ // Update session ID from any message
158
+ if (msg.session_id) {
159
+ newSessionId = msg.session_id;
160
+ }
161
+ // Handle assistant messages
162
+ const text = this.getAssistantText(msg);
163
+ if (text) {
164
+ fullContent += text;
165
+ if (onChunk) {
166
+ onChunk(text);
167
+ }
168
+ }
169
+ // Update token usage
170
+ const msgUsage = this.getTokenUsage(msg);
171
+ if (msgUsage.total > 0) {
172
+ tokenUsage = msgUsage;
173
+ }
241
174
  }
175
+ // Close session (cleanup)
176
+ session.close();
177
+ // Update current session ID if we got a new one
178
+ if (newSessionId) {
179
+ this.currentSessionId = newSessionId;
180
+ }
181
+ this.messageCount++;
182
+ return {
183
+ content: fullContent,
184
+ tokenUsage,
185
+ sessionId: this.currentSessionId,
186
+ };
242
187
  }
243
188
  catch (error) {
244
189
  // Check if error is due to expired token
@@ -248,145 +193,17 @@ class ClaudeProvider extends LLMProviderBase_1.LLMProviderBase {
248
193
  const token = await models_1.AuthToken.findByPk(this.config.tokenId);
249
194
  if (token) {
250
195
  await this.refreshToken(token);
251
- // Retry the request
252
- const child = (0, child_process_1.spawn)(cliPath, args, {
253
- env: this.env,
254
- cwd: this.config.workingDirectory,
255
- stdio: ["ignore", "pipe", "pipe"],
256
- });
257
- if (onChunk) {
258
- return await this.handleStreamingResponse(child, onChunk);
259
- }
260
- else {
261
- return await this.handleJsonResponse(child);
262
- }
196
+ // Retry the request with new token
197
+ return this.sendMessage(params);
263
198
  }
264
199
  }
200
+ logger_1.default.error("Failed to send message:", error);
265
201
  throw error;
266
202
  }
267
203
  }
268
- async handleJsonResponse(child) {
269
- let stdout = "";
270
- let stderr = "";
271
- child.stdout?.on("data", (data) => {
272
- const chunk = data.toString();
273
- stdout += chunk;
274
- logger_1.default.info(`Claude stdout chunk (${chunk.length} bytes): ${chunk.substring(0, 200)}...`);
275
- });
276
- child.stderr?.on("data", (data) => {
277
- const chunk = data.toString();
278
- stderr += chunk;
279
- logger_1.default.info(`Claude stderr chunk: ${chunk}`);
280
- });
281
- return new Promise((resolve, reject) => {
282
- child.on("close", async (code) => {
283
- // Check for token expiry error
284
- if (code !== 0) {
285
- const output = stderr || stdout || "";
286
- if (output.includes("authentication_error") || output.includes("OAuth token has expired")) {
287
- // Token expired - refresh and retry
288
- logger_1.default.info("Token expired error detected, attempting refresh...");
289
- try {
290
- const token = await models_1.AuthToken.findByPk(this.config.tokenId);
291
- if (token && token.refreshToken) {
292
- await this.refreshToken(token);
293
- reject(new Error("TOKEN_REFRESHED_RETRY_NEEDED"));
294
- return;
295
- }
296
- }
297
- catch (refreshError) {
298
- logger_1.default.error("Failed to refresh token:", refreshError);
299
- }
300
- }
301
- logger_1.default.error("Claude CLI failed with code:", code);
302
- logger_1.default.error("Claude CLI stderr:", stderr);
303
- logger_1.default.error("Claude CLI stdout:", stdout);
304
- reject(new Error(`Claude CLI exited with code ${code}: ${stderr || stdout || "No output"}`));
305
- return;
306
- }
307
- try {
308
- // Claude returns JSON with result field
309
- const output = JSON.parse(stdout);
310
- // Check if Claude returned an error
311
- if (output.is_error) {
312
- reject(new Error(output.result?.toString() || "Claude returned an error"));
313
- return;
314
- }
315
- // Extract session ID if present
316
- if (output.session_id) {
317
- this.currentSessionId = output.session_id;
318
- }
319
- const result = {
320
- content: typeof output.result === "string"
321
- ? output.result
322
- : JSON.stringify(output.result),
323
- tokenUsage: {
324
- input: output.usage?.input_tokens || 0,
325
- output: output.usage?.output_tokens || 0,
326
- total: (output.usage?.input_tokens || 0) +
327
- (output.usage?.output_tokens || 0),
328
- },
329
- sessionId: this.currentSessionId,
330
- };
331
- this.messageCount++;
332
- resolve(result);
333
- }
334
- catch (error) {
335
- const message = error instanceof Error ? error.message : String(error);
336
- reject(new Error(`Failed to parse Claude response: ${message}`));
337
- }
338
- });
339
- child.on("error", (error) => {
340
- const message = error instanceof Error ? error.message : String(error);
341
- reject(new Error(`Failed to spawn Claude CLI: ${message}`));
342
- });
343
- });
344
- }
345
- async handleStreamingResponse(child, onChunk) {
346
- let fullContent = "";
347
- let sessionId;
348
- let usage = { input: 0, output: 0, total: 0 };
349
- const rl = readline_1.default.createInterface({
350
- input: child.stdout,
351
- crlfDelay: Infinity,
352
- });
353
- for await (const line of rl) {
354
- try {
355
- const event = JSON.parse(line);
356
- if (event.type === "message") {
357
- const chunk = event.content || "";
358
- fullContent += chunk;
359
- onChunk(chunk);
360
- }
361
- else if (event.type === "result") {
362
- if (event.session_id) {
363
- sessionId = event.session_id;
364
- this.currentSessionId = sessionId;
365
- }
366
- if (event.usage) {
367
- usage = {
368
- input: event.usage.input_tokens || 0,
369
- output: event.usage.output_tokens || 0,
370
- total: (event.usage.input_tokens || 0) +
371
- (event.usage.output_tokens || 0),
372
- };
373
- }
374
- }
375
- }
376
- catch (error) {
377
- logger_1.default.warn("Failed to parse streaming event:", line);
378
- }
379
- }
380
- this.messageCount++;
381
- return {
382
- content: fullContent,
383
- tokenUsage: usage,
384
- sessionId,
385
- };
386
- }
387
204
  async resumeSession(sessionId) {
388
205
  this.currentSessionId = sessionId;
389
- logger_1.default.info(`Resumed Claude session: ${sessionId}`);
206
+ logger_1.default.info(`Set Claude session for resume: ${sessionId}`);
390
207
  return true;
391
208
  }
392
209
  async endSession() {
@@ -403,24 +220,7 @@ class ClaudeProvider extends LLMProviderBase_1.LLMProviderBase {
403
220
  async cleanup() {
404
221
  this.currentSessionId = undefined;
405
222
  this.messageCount = 0;
406
- }
407
- resolveClaudeCli() {
408
- if (environment_1.default.CLAUDE_CLI_PATH) {
409
- return environment_1.default.CLAUDE_CLI_PATH;
410
- }
411
- // Use system-installed claude CLI
412
- const possiblePaths = [
413
- "/Users/christianschindler/.local/bin/claude",
414
- "/usr/local/bin/claude",
415
- "claude", // Will use PATH
416
- ];
417
- const fs = require("fs");
418
- for (const cliPath of possiblePaths) {
419
- if (cliPath === "claude" || fs.existsSync(cliPath)) {
420
- return cliPath;
421
- }
422
- }
423
- throw new Error("Claude CLI not found. Install it from https://claude.ai/download");
223
+ this.accessToken = undefined;
424
224
  }
425
225
  }
426
226
  exports.ClaudeProvider = ClaudeProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"ClaudeProvider.js","sourceRoot":"","sources":["../../../src/services/llm/ClaudeProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ClaudeProvider.js","sourceRoot":"","sources":["../../../src/services/llm/ClaudeProvider.ts"],"names":[],"mappings":";;;;;;AAAA,uDAM2B;AAC3B,yCAAyC;AACzC,+CAAsD;AACtD,gEAAwC;AAExC,MAAM,gBAAgB,GAAG,sCAAsC,CAAC;AAChE,MAAM,gBAAgB,GAAG,8CAA8C,CAAC;AAUxE,MAAa,cAAe,SAAQ,iCAAe;IAQjD,YAAY,cAAiC;QAC3C,KAAK,CAAC,cAAc,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,gBAAM,CAAC,IAAI,CACT,gEAAgE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAC/F,CAAC;QAEF,2CAA2C;QAC3C,IAAI,CAAC;YACH,IAAI,CAAC,GAAG,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,gBAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,CAAC;QAED,sDAAsD;QACtD,MAAM,KAAK,GAAG,MAAM,kBAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,iCAAiC;QACjC,IAAI,CAAC,WAAW,GAAG,IAAA,gBAAO,EAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAE9C,sCAAsC;QACtC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QAChD,CAAC;QAED,gBAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,oBAAoB;QAChC,MAAM,KAAK,GAAG,MAAM,kBAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC1C,CAAC;QAED,0CAA0C;QAC1C,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACrE,MAAM,kBAAkB,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAEhE,IAAI,SAAS,IAAI,SAAS,GAAG,kBAAkB,EAAE,CAAC;YAChD,gBAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;YAChE,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY,CAAC,KAAgB;QACzC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACrF,CAAC;QAED,IAAI,CAAC;YACH,MAAM,qBAAqB,GAAG,IAAA,gBAAO,EAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAE1D,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,gBAAgB,EAAE;gBAClD,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,UAAU,EAAE,eAAe;oBAC3B,aAAa,EAAE,qBAAqB;oBACpC,SAAS,EAAE,gBAAgB;iBAC5B,CAAC;aACH,CAAC,CAAC;YAEH,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;gBACtB,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;gBACzC,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;YACpD,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,EAKtC,CAAC;YAEF,2BAA2B;YAC3B,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;YACrE,MAAM,KAAK,CAAC,MAAM,CAAC;gBACjB,WAAW,EAAE,IAAA,gBAAO,EAAC,MAAM,CAAC,YAAY,CAAC;gBACzC,YAAY,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAA,gBAAO,EAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY;gBACvF,SAAS,EAAE,YAAY;aACxB,CAAC,CAAC;YAEH,gCAAgC;YAChC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC;YAEvC,gBAAM,CAAC,IAAI,CAAC,kDAAkD,EAAE,YAAY,CAAC,CAAC;QAChF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,gBAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC5I,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,GAAe;QACtC,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW;YAAE,OAAO,IAAI,CAAC;QAC1C,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO;aACvB,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;aAC7C,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;aAC/B,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,GAAe;QACnC,MAAM,KAAK,GAAI,GAAW,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC3C,CAAC;QAED,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC;QAE9C,OAAO;YACL,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,YAAY;YACpB,KAAK,EAAE,WAAW,GAAG,YAAY;SAClC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAyB;QACzC,mDAAmD;QACnD,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAElC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAElD,IAAI,CAAC;YACH,IAAI,OAAsB,CAAC;YAE3B,0CAA0C;YAC1C,MAAM,cAAc,GAAG;gBACrB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,4BAA4B;gBACxD,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,6BAA6B;gBACvD,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB;gBAC9C,YAAY,EAAE,YAAY;aAC3B,CAAC;YAEF,2BAA2B;YAC3B,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,gBAAM,CAAC,IAAI,CAAC,4BAA4B,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;gBACjE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;YACtF,CAAC;iBAAM,CAAC;gBACN,gBAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;gBAC3C,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,yBAAyB,CAAC,cAAc,CAAC,CAAC;YAC/D,CAAC;YAED,eAAe;YACf,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAE5B,kBAAkB;YAClB,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,UAAU,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YACnD,IAAI,YAAgC,CAAC;YAErC,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBACzC,qCAAqC;gBACrC,IAAK,GAAW,CAAC,UAAU,EAAE,CAAC;oBAC5B,YAAY,GAAI,GAAW,CAAC,UAAU,CAAC;gBACzC,CAAC;gBAED,4BAA4B;gBAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBACxC,IAAI,IAAI,EAAE,CAAC;oBACT,WAAW,IAAI,IAAI,CAAC;oBACpB,IAAI,OAAO,EAAE,CAAC;wBACZ,OAAO,CAAC,IAAI,CAAC,CAAC;oBAChB,CAAC;gBACH,CAAC;gBAED,qBAAqB;gBACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACzC,IAAI,QAAQ,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;oBACvB,UAAU,GAAG,QAAQ,CAAC;gBACxB,CAAC;YACH,CAAC;YAED,0BAA0B;YAC1B,OAAO,CAAC,KAAK,EAAE,CAAC;YAEhB,gDAAgD;YAChD,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC;YACvC,CAAC;YAED,IAAI,CAAC,YAAY,EAAE,CAAC;YAEpB,OAAO;gBACL,OAAO,EAAE,WAAW;gBACpB,UAAU;gBACV,SAAS,EAAE,IAAI,CAAC,gBAAgB;aACjC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,yCAAyC;YACzC,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxE,IAAI,QAAQ,CAAC,QAAQ,CAAC,sBAAsB,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC;gBAC9F,gBAAM,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;gBAC7E,MAAM,KAAK,GAAG,MAAM,kBAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC5D,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;oBAE/B,mCAAmC;oBACnC,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;YAED,gBAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;YAC/C,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB;QACnC,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAClC,gBAAM,CAAC,IAAI,CAAC,kCAAkC,SAAS,EAAE,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAClC,gBAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO;YACL,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,IAAI,CAAC,gBAAgB;YAChC,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAClC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;IAC/B,CAAC;CACF;AAxQD,wCAwQC;AAED,kBAAe,cAAc,CAAC"}
@@ -6,10 +6,15 @@ export interface LLMProviderConfig {
6
6
  model?: string;
7
7
  sessionId?: string;
8
8
  }
9
+ export interface ConversationMessage {
10
+ role: 'user' | 'assistant';
11
+ content: string;
12
+ }
9
13
  export interface SendMessageParams {
10
14
  content: string;
11
15
  systemPrompt?: string;
12
16
  attachments?: string[];
17
+ conversationHistory?: ConversationMessage[];
13
18
  onChunk?: (chunk: string) => void;
14
19
  }
15
20
  export interface SendMessageResult {
@@ -1 +1 @@
1
- {"version":3,"file":"LLMProviderBase.d.ts","sourceRoot":"","sources":["../../../src/services/llm/LLMProviderBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,WAAW,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;IAClB,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,8BAAsB,eAAe;IACnC,SAAS,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACpC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAClD,SAAS,CAAC,YAAY,EAAE,MAAM,CAAK;gBAEvB,MAAM,EAAE,iBAAiB;IAKrC;;OAEG;IACH,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAEpC;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAE3E;;OAEG;IACH,QAAQ,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAE3D;;OAEG;IACH,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAEpC;;OAEG;IACH,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,cAAc,CAAC;IAE7C;;OAEG;IACH,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAEjC;;OAEG;IACH,WAAW,IAAI,WAAW;IAI1B;;OAEG;IACH,mBAAmB,IAAI,MAAM;IAI7B;;OAEG;IACH,QAAQ,IAAI,MAAM,GAAG,SAAS;CAG/B;AAED,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"LLMProviderBase.d.ts","sourceRoot":"","sources":["../../../src/services/llm/LLMProviderBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,WAAW,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,mBAAmB,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC5C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;IAClB,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,8BAAsB,eAAe;IACnC,SAAS,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACpC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAClD,SAAS,CAAC,YAAY,EAAE,MAAM,CAAK;gBAEvB,MAAM,EAAE,iBAAiB;IAKrC;;OAEG;IACH,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAEpC;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAE3E;;OAEG;IACH,QAAQ,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAE3D;;OAEG;IACH,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAEpC;;OAEG;IACH,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,cAAc,CAAC;IAE7C;;OAEG;IACH,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAEjC;;OAEG;IACH,WAAW,IAAI,WAAW;IAI1B;;OAEG;IACH,mBAAmB,IAAI,MAAM;IAI7B;;OAEG;IACH,QAAQ,IAAI,MAAM,GAAG,SAAS;CAG/B;AAED,eAAe,eAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"LLMProviderBase.js","sourceRoot":"","sources":["../../../src/services/llm/LLMProviderBase.ts"],"names":[],"mappings":";;;AAkCA;;GAEG;AACH,MAAsB,eAAe;IAKnC,YAAY,MAAyB;QAF3B,iBAAY,GAAW,CAAC,CAAC;QAGjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAChC,CAAC;IAgCD;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC3B,CAAC;CACF;AA5DD,0CA4DC;AAED,kBAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"LLMProviderBase.js","sourceRoot":"","sources":["../../../src/services/llm/LLMProviderBase.ts"],"names":[],"mappings":";;;AAwCA;;GAEG;AACH,MAAsB,eAAe;IAKnC,YAAY,MAAyB;QAF3B,iBAAY,GAAW,CAAC,CAAC;QAGjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAChC,CAAC;IAgCD;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC3B,CAAC;CACF;AA5DD,0CA4DC;AAED,kBAAe,eAAe,CAAC"}
@@ -1,11 +1,11 @@
1
1
  {
2
- "name": "@chrishdx/llm-dev-server-backend",
3
- "version": "1.0.0",
4
- "description": "Backend for Multi-LLM Development Server",
5
- "private": true,
2
+ "name": "@chrishdx/llm-dev-server",
3
+ "version": "1.2.0",
4
+ "description": "Multi-LLM Development Server with Claude, Codex, and Gemini support",
5
+ "private": false,
6
6
  "main": "dist/index.js",
7
7
  "bin": {
8
- "llm-dev-server": "bin/llm-dev-server.js"
8
+ "llm-dev-server": "bin/wrapper.js"
9
9
  },
10
10
  "scripts": {
11
11
  "dev": "nodemon --exec ts-node src/index.ts",