agentic-qe 2.6.3 → 2.6.5

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 (44) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/README.md +26 -1
  3. package/dist/cli/commands/providers/index.d.ts +20 -0
  4. package/dist/cli/commands/providers/index.d.ts.map +1 -0
  5. package/dist/cli/commands/providers/index.js +143 -0
  6. package/dist/cli/commands/providers/index.js.map +1 -0
  7. package/dist/cli/commands/providers/status.d.ts +117 -0
  8. package/dist/cli/commands/providers/status.d.ts.map +1 -0
  9. package/dist/cli/commands/providers/status.js +368 -0
  10. package/dist/cli/commands/providers/status.js.map +1 -0
  11. package/dist/cli/index.js +8 -62
  12. package/dist/cli/index.js.map +1 -1
  13. package/dist/core/memory/HNSWVectorMemory.js +1 -1
  14. package/dist/mcp/server-instructions.d.ts +1 -1
  15. package/dist/mcp/server-instructions.js +1 -1
  16. package/dist/monitoring/ProviderHealthMonitor.d.ts +195 -0
  17. package/dist/monitoring/ProviderHealthMonitor.d.ts.map +1 -0
  18. package/dist/monitoring/ProviderHealthMonitor.js +431 -0
  19. package/dist/monitoring/ProviderHealthMonitor.js.map +1 -0
  20. package/dist/monitoring/QuotaManager.d.ts +122 -0
  21. package/dist/monitoring/QuotaManager.d.ts.map +1 -0
  22. package/dist/monitoring/QuotaManager.js +351 -0
  23. package/dist/monitoring/QuotaManager.js.map +1 -0
  24. package/dist/providers/GitHubModelsProvider.d.ts +117 -0
  25. package/dist/providers/GitHubModelsProvider.d.ts.map +1 -0
  26. package/dist/providers/GitHubModelsProvider.js +464 -0
  27. package/dist/providers/GitHubModelsProvider.js.map +1 -0
  28. package/dist/providers/GroqProvider.d.ts +115 -0
  29. package/dist/providers/GroqProvider.d.ts.map +1 -0
  30. package/dist/providers/GroqProvider.js +443 -0
  31. package/dist/providers/GroqProvider.js.map +1 -0
  32. package/dist/providers/HybridRouterHealthIntegration.d.ts +191 -0
  33. package/dist/providers/HybridRouterHealthIntegration.d.ts.map +1 -0
  34. package/dist/providers/HybridRouterHealthIntegration.js +439 -0
  35. package/dist/providers/HybridRouterHealthIntegration.js.map +1 -0
  36. package/dist/providers/index.d.ts +6 -0
  37. package/dist/providers/index.d.ts.map +1 -1
  38. package/dist/providers/index.js +12 -1
  39. package/dist/providers/index.js.map +1 -1
  40. package/package.json +3 -2
  41. package/dist/cli/commands/providers.d.ts +0 -50
  42. package/dist/cli/commands/providers.d.ts.map +0 -1
  43. package/dist/cli/commands/providers.js +0 -403
  44. package/dist/cli/commands/providers.js.map +0 -1
@@ -0,0 +1,464 @@
1
+ "use strict";
2
+ /**
3
+ * GitHubModelsProvider - GitHub Models API Integration
4
+ *
5
+ * Provides LLM capabilities through GitHub Models with support for:
6
+ * - Unlimited free usage in GitHub Codespaces
7
+ * - OpenAI-compatible API format
8
+ * - Multiple model families (GPT-4, Phi, LLaMA)
9
+ * - Streaming responses
10
+ * - Automatic Codespaces detection
11
+ *
12
+ * @module providers/GitHubModelsProvider
13
+ * @version 1.0.0
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.GitHubModelsProvider = void 0;
17
+ const crypto_1 = require("crypto");
18
+ const ILLMProvider_1 = require("./ILLMProvider");
19
+ const Logger_1 = require("../utils/Logger");
20
+ /**
21
+ * Available GitHub Models
22
+ */
23
+ const GITHUB_MODELS = [
24
+ 'gpt-4o-mini',
25
+ 'gpt-4o',
26
+ 'Phi-3.5-mini-instruct',
27
+ 'Meta-Llama-3.1-8B-Instruct'
28
+ ];
29
+ /**
30
+ * Model pricing (per million tokens) - Free in Codespaces, estimated for external
31
+ */
32
+ const GITHUB_MODELS_PRICING = {
33
+ 'gpt-4o-mini': { input: 0.15, output: 0.6 },
34
+ 'gpt-4o': { input: 2.5, output: 10.0 },
35
+ 'Phi-3.5-mini-instruct': { input: 0.0, output: 0.0 },
36
+ 'Meta-Llama-3.1-8B-Instruct': { input: 0.0, output: 0.0 }
37
+ };
38
+ /**
39
+ * GitHubModelsProvider - GitHub Models API implementation
40
+ *
41
+ * This provider enables access to GitHub Models with unlimited free usage
42
+ * in GitHub Codespaces. Supports OpenAI-compatible API format.
43
+ */
44
+ class GitHubModelsProvider {
45
+ constructor(config = {}) {
46
+ this.logger = Logger_1.Logger.getInstance();
47
+ this.config = {
48
+ name: config.name || 'github-models',
49
+ debug: config.debug ?? false,
50
+ timeout: config.timeout ?? 60000, // 1 minute
51
+ maxRetries: config.maxRetries ?? 3,
52
+ baseUrl: config.baseUrl || 'https://models.inference.ai.azure.com',
53
+ defaultModel: config.defaultModel || 'gpt-4o-mini',
54
+ token: config.token,
55
+ inCodespaces: config.inCodespaces
56
+ };
57
+ this.isInitialized = false;
58
+ this.baseUrl = this.config.baseUrl;
59
+ this.token = this.config.token;
60
+ this.inCodespaces = this.config.inCodespaces ?? this.isInCodespaces();
61
+ this.requestCount = 0;
62
+ this.currentModel = this.config.defaultModel;
63
+ }
64
+ /**
65
+ * Check if running in GitHub Codespaces
66
+ */
67
+ isInCodespaces() {
68
+ return process.env.CODESPACES === 'true';
69
+ }
70
+ /**
71
+ * Initialize the GitHub Models provider
72
+ */
73
+ async initialize() {
74
+ if (this.isInitialized) {
75
+ this.logger.warn('GitHubModelsProvider already initialized');
76
+ return;
77
+ }
78
+ try {
79
+ // Get token from config or environment
80
+ this.token = this.config.token || process.env.GITHUB_TOKEN;
81
+ if (!this.token) {
82
+ throw new ILLMProvider_1.LLMProviderError('GitHub token is required. Set GITHUB_TOKEN environment variable or provide token in config.', 'github-models', 'AUTH_ERROR', false);
83
+ }
84
+ // Detect Codespaces environment
85
+ this.inCodespaces = this.config.inCodespaces ?? this.isInCodespaces();
86
+ // Validate token and API access
87
+ await this.validateToken();
88
+ this.isInitialized = true;
89
+ this.logger.info('GitHubModelsProvider initialized', {
90
+ baseUrl: this.baseUrl,
91
+ defaultModel: this.config.defaultModel,
92
+ inCodespaces: this.inCodespaces,
93
+ availableModels: GITHUB_MODELS
94
+ });
95
+ }
96
+ catch (error) {
97
+ if (error instanceof ILLMProvider_1.LLMProviderError) {
98
+ throw error;
99
+ }
100
+ throw new ILLMProvider_1.LLMProviderError(`Failed to initialize GitHub Models: ${error.message}`, 'github-models', 'INIT_ERROR', false, error);
101
+ }
102
+ }
103
+ /**
104
+ * Complete a prompt using GitHub Models
105
+ */
106
+ async complete(options) {
107
+ this.ensureInitialized();
108
+ const startTime = Date.now();
109
+ const model = options.model || this.currentModel;
110
+ try {
111
+ // Build messages array
112
+ const messages = this.buildMessages(options);
113
+ // Make request to GitHub Models
114
+ const response = await fetch(`${this.baseUrl}/chat/completions`, {
115
+ method: 'POST',
116
+ headers: {
117
+ 'Content-Type': 'application/json',
118
+ 'Authorization': `Bearer ${this.token}`
119
+ },
120
+ body: JSON.stringify({
121
+ model,
122
+ messages,
123
+ temperature: options.temperature ?? 0.7,
124
+ max_tokens: options.maxTokens || 2048,
125
+ stream: false
126
+ }),
127
+ signal: AbortSignal.timeout(this.config.timeout)
128
+ });
129
+ if (!response.ok) {
130
+ const errorText = await response.text();
131
+ throw new Error(`GitHub Models API returned ${response.status}: ${errorText}`);
132
+ }
133
+ const data = await response.json();
134
+ this.requestCount++;
135
+ const latency = Date.now() - startTime;
136
+ return {
137
+ content: [{
138
+ type: 'text',
139
+ text: data.choices[0]?.message?.content || ''
140
+ }],
141
+ usage: {
142
+ input_tokens: data.usage.prompt_tokens,
143
+ output_tokens: data.usage.completion_tokens
144
+ },
145
+ model: data.model,
146
+ stop_reason: this.mapFinishReason(data.choices[0]?.finish_reason),
147
+ id: data.id || `github-${Date.now()}-${(0, crypto_1.randomUUID)().split('-')[0]}`,
148
+ metadata: {
149
+ latency,
150
+ cost: this.trackCost({
151
+ input_tokens: data.usage.prompt_tokens,
152
+ output_tokens: data.usage.completion_tokens
153
+ }),
154
+ inCodespaces: this.inCodespaces
155
+ }
156
+ };
157
+ }
158
+ catch (error) {
159
+ throw new ILLMProvider_1.LLMProviderError(`GitHub Models completion failed: ${error.message}`, 'github-models', 'API_ERROR', true, error);
160
+ }
161
+ }
162
+ /**
163
+ * Stream a completion using GitHub Models
164
+ */
165
+ async *streamComplete(options) {
166
+ this.ensureInitialized();
167
+ const model = options.model || this.currentModel;
168
+ try {
169
+ const messages = this.buildMessages(options);
170
+ const response = await fetch(`${this.baseUrl}/chat/completions`, {
171
+ method: 'POST',
172
+ headers: {
173
+ 'Content-Type': 'application/json',
174
+ 'Authorization': `Bearer ${this.token}`
175
+ },
176
+ body: JSON.stringify({
177
+ model,
178
+ messages,
179
+ temperature: options.temperature ?? 0.7,
180
+ max_tokens: options.maxTokens || 2048,
181
+ stream: true
182
+ })
183
+ });
184
+ if (!response.ok) {
185
+ const errorText = await response.text();
186
+ throw new Error(`GitHub Models API returned ${response.status}: ${errorText}`);
187
+ }
188
+ const reader = response.body?.getReader();
189
+ if (!reader) {
190
+ throw new Error('No response body');
191
+ }
192
+ const decoder = new TextDecoder();
193
+ let buffer = '';
194
+ yield { type: 'message_start' };
195
+ yield { type: 'content_block_start', content_block: { type: 'text', text: '' } };
196
+ while (true) {
197
+ const { done, value } = await reader.read();
198
+ if (done)
199
+ break;
200
+ buffer += decoder.decode(value, { stream: true });
201
+ const lines = buffer.split('\n');
202
+ buffer = lines.pop() || '';
203
+ for (const line of lines) {
204
+ if (line.trim() === '' || line.startsWith(':'))
205
+ continue;
206
+ if (line === 'data: [DONE]') {
207
+ yield { type: 'content_block_stop' };
208
+ yield { type: 'message_stop' };
209
+ this.requestCount++;
210
+ return;
211
+ }
212
+ if (line.startsWith('data: ')) {
213
+ try {
214
+ const data = JSON.parse(line.slice(6));
215
+ const content = data.choices[0]?.delta?.content;
216
+ if (content) {
217
+ yield {
218
+ type: 'content_block_delta',
219
+ delta: { type: 'text_delta', text: content }
220
+ };
221
+ }
222
+ if (data.choices[0]?.finish_reason) {
223
+ yield { type: 'content_block_stop' };
224
+ yield { type: 'message_stop' };
225
+ this.requestCount++;
226
+ return;
227
+ }
228
+ }
229
+ catch {
230
+ // Skip invalid JSON lines
231
+ }
232
+ }
233
+ }
234
+ }
235
+ }
236
+ catch (error) {
237
+ throw new ILLMProvider_1.LLMProviderError(`GitHub Models stream failed: ${error.message}`, 'github-models', 'API_ERROR', true, error);
238
+ }
239
+ }
240
+ /**
241
+ * Generate embeddings (not supported by GitHub Models)
242
+ */
243
+ async embed(options) {
244
+ throw new ILLMProvider_1.LLMProviderError('Embeddings are not supported by GitHub Models', 'github-models', 'NOT_SUPPORTED', false);
245
+ }
246
+ /**
247
+ * Count tokens in text (approximate)
248
+ */
249
+ async countTokens(options) {
250
+ return this.estimateTokens(options.text);
251
+ }
252
+ /**
253
+ * Health check - verify API access
254
+ */
255
+ async healthCheck() {
256
+ const startTime = Date.now();
257
+ try {
258
+ // Make a minimal completion request
259
+ const response = await fetch(`${this.baseUrl}/chat/completions`, {
260
+ method: 'POST',
261
+ headers: {
262
+ 'Content-Type': 'application/json',
263
+ 'Authorization': `Bearer ${this.token}`
264
+ },
265
+ body: JSON.stringify({
266
+ model: this.currentModel,
267
+ messages: [{ role: 'user', content: 'test' }],
268
+ max_tokens: 1
269
+ }),
270
+ signal: AbortSignal.timeout(5000)
271
+ });
272
+ const latency = Date.now() - startTime;
273
+ const isHealthy = response.ok;
274
+ if (!isHealthy) {
275
+ const errorText = await response.text();
276
+ return {
277
+ healthy: false,
278
+ error: `API returned ${response.status}: ${errorText}`,
279
+ timestamp: new Date(),
280
+ latency
281
+ };
282
+ }
283
+ return {
284
+ healthy: true,
285
+ latency,
286
+ timestamp: new Date(),
287
+ metadata: {
288
+ baseUrl: this.baseUrl,
289
+ currentModel: this.currentModel,
290
+ inCodespaces: this.inCodespaces,
291
+ requestCount: this.requestCount
292
+ }
293
+ };
294
+ }
295
+ catch (error) {
296
+ return {
297
+ healthy: false,
298
+ error: error.message,
299
+ timestamp: new Date()
300
+ };
301
+ }
302
+ }
303
+ /**
304
+ * Get provider metadata
305
+ */
306
+ getMetadata() {
307
+ return {
308
+ name: 'github-models',
309
+ version: '1.0.0',
310
+ models: [...GITHUB_MODELS],
311
+ capabilities: {
312
+ streaming: true,
313
+ caching: false,
314
+ embeddings: false,
315
+ vision: false
316
+ },
317
+ costs: {
318
+ inputPerMillion: this.inCodespaces ? 0 : GITHUB_MODELS_PRICING[this.currentModel]?.input || 0,
319
+ outputPerMillion: this.inCodespaces ? 0 : GITHUB_MODELS_PRICING[this.currentModel]?.output || 0
320
+ },
321
+ location: 'cloud'
322
+ };
323
+ }
324
+ /**
325
+ * Shutdown the provider
326
+ */
327
+ async shutdown() {
328
+ this.isInitialized = false;
329
+ this.logger.info('GitHubModelsProvider shutdown', {
330
+ requestCount: this.requestCount
331
+ });
332
+ }
333
+ /**
334
+ * Track cost for a request
335
+ */
336
+ trackCost(usage) {
337
+ // Free in Codespaces
338
+ if (this.inCodespaces) {
339
+ return 0;
340
+ }
341
+ // Estimate cost for non-Codespaces usage
342
+ const pricing = GITHUB_MODELS_PRICING[this.currentModel];
343
+ if (!pricing) {
344
+ return 0;
345
+ }
346
+ const inputCost = (usage.input_tokens / 1000000) * pricing.input;
347
+ const outputCost = (usage.output_tokens / 1000000) * pricing.output;
348
+ return inputCost + outputCost;
349
+ }
350
+ /**
351
+ * Set the current model for subsequent requests
352
+ */
353
+ async setModel(model) {
354
+ this.ensureInitialized();
355
+ if (!GITHUB_MODELS.includes(model)) {
356
+ this.logger.warn(`Model ${model} is not in the known models list. It may not be supported.`);
357
+ }
358
+ this.currentModel = model;
359
+ this.logger.info(`Switched to model: ${model}`);
360
+ }
361
+ /**
362
+ * Get current model
363
+ */
364
+ getCurrentModel() {
365
+ return this.currentModel;
366
+ }
367
+ /**
368
+ * Get list of available models
369
+ */
370
+ getAvailableModels() {
371
+ return [...GITHUB_MODELS];
372
+ }
373
+ /**
374
+ * Validate GitHub token
375
+ */
376
+ async validateToken() {
377
+ try {
378
+ const response = await fetch(`${this.baseUrl}/chat/completions`, {
379
+ method: 'POST',
380
+ headers: {
381
+ 'Content-Type': 'application/json',
382
+ 'Authorization': `Bearer ${this.token}`
383
+ },
384
+ body: JSON.stringify({
385
+ model: this.currentModel,
386
+ messages: [{ role: 'user', content: 'test' }],
387
+ max_tokens: 1
388
+ }),
389
+ signal: AbortSignal.timeout(5000)
390
+ });
391
+ if (response.status === 401) {
392
+ throw new ILLMProvider_1.LLMProviderError('Invalid or expired GitHub token', 'github-models', 'AUTH_ERROR', false);
393
+ }
394
+ if (response.status === 403) {
395
+ throw new ILLMProvider_1.LLMProviderError('GitHub token does not have required permissions', 'github-models', 'AUTH_ERROR', false);
396
+ }
397
+ }
398
+ catch (error) {
399
+ // Re-throw LLMProviderError immediately
400
+ if (error instanceof ILLMProvider_1.LLMProviderError) {
401
+ throw error;
402
+ }
403
+ // For network errors or other issues, log warning and proceed
404
+ // The actual API calls will fail if there's a real issue
405
+ this.logger.warn('Token validation failed, but will attempt to proceed', {
406
+ error: error.message
407
+ });
408
+ }
409
+ }
410
+ /**
411
+ * Build messages array from options
412
+ */
413
+ buildMessages(options) {
414
+ const messages = [];
415
+ // Add system message if provided
416
+ if (options.system && options.system.length > 0) {
417
+ const systemContent = options.system.map(s => s.text).join('\n\n');
418
+ messages.push({
419
+ role: 'system',
420
+ content: systemContent
421
+ });
422
+ }
423
+ // Add conversation messages
424
+ for (const message of options.messages) {
425
+ const content = typeof message.content === 'string'
426
+ ? message.content
427
+ : message.content.map(c => c.text || '').join('');
428
+ messages.push({
429
+ role: message.role,
430
+ content
431
+ });
432
+ }
433
+ return messages;
434
+ }
435
+ /**
436
+ * Map OpenAI finish reason to Claude format
437
+ */
438
+ mapFinishReason(reason) {
439
+ switch (reason) {
440
+ case 'stop':
441
+ return 'end_turn';
442
+ case 'length':
443
+ return 'max_tokens';
444
+ default:
445
+ return 'end_turn';
446
+ }
447
+ }
448
+ /**
449
+ * Estimate token count (approximate: 1 token ≈ 4 characters)
450
+ */
451
+ estimateTokens(text) {
452
+ return Math.ceil(text.length / 4);
453
+ }
454
+ /**
455
+ * Ensure provider is initialized
456
+ */
457
+ ensureInitialized() {
458
+ if (!this.isInitialized) {
459
+ throw new ILLMProvider_1.LLMProviderError('GitHubModelsProvider not initialized. Call initialize() first.', 'github-models', 'NOT_INITIALIZED', false);
460
+ }
461
+ }
462
+ }
463
+ exports.GitHubModelsProvider = GitHubModelsProvider;
464
+ //# sourceMappingURL=GitHubModelsProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GitHubModelsProvider.js","sourceRoot":"","sources":["../../src/providers/GitHubModelsProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * GroqProvider - High-Performance LLM Inference via Groq
3
+ *
4
+ * Provides cloud-based LLM inference through Groq's ultra-fast API with support for:
5
+ * - FREE tier: 14,400 requests/day (10 req/min)
6
+ * - Streaming responses via SSE
7
+ * - Rate limit handling with exponential backoff
8
+ * - Rate limiting (10 req/min free tier)
9
+ * - Multiple model families (LLaMA, Mixtral, DeepSeek)
10
+ * - OpenAI-compatible API format
11
+ *
12
+ * @module providers/GroqProvider
13
+ * @version 1.0.0
14
+ */
15
+ import { ILLMProvider, LLMProviderConfig, LLMCompletionOptions, LLMCompletionResponse, LLMStreamEvent, LLMEmbeddingOptions, LLMEmbeddingResponse, LLMTokenCountOptions, LLMHealthStatus, LLMProviderMetadata } from './ILLMProvider';
16
+ /**
17
+ * Groq-specific configuration
18
+ */
19
+ export interface GroqProviderConfig extends LLMProviderConfig {
20
+ /** Groq API key (default: process.env.GROQ_API_KEY) */
21
+ apiKey?: string;
22
+ /** Base URL for Groq API (default: https://api.groq.com/openai/v1) */
23
+ baseUrl?: string;
24
+ /** Default model name */
25
+ defaultModel?: string;
26
+ /** Maximum retries on failure (default: 3) */
27
+ maxRetries?: number;
28
+ /** Rate limit retry delay in milliseconds (default: 6000) */
29
+ rateLimitRetryDelay?: number;
30
+ }
31
+ /**
32
+ * GroqProvider - High-performance cloud LLM inference
33
+ *
34
+ * This provider enables ultra-fast LLM inference using Groq's specialized
35
+ * LPU (Language Processing Unit) architecture, providing significantly
36
+ * faster inference than traditional GPU-based providers.
37
+ *
38
+ * Supported Models:
39
+ * - llama-3.3-70b-versatile (primary general-purpose model)
40
+ * - deepseek-r1-distill-llama-70b (reasoning-focused)
41
+ * - mixtral-8x7b-32768 (large context window)
42
+ * - llama-3.1-8b-instant (fast lightweight)
43
+ *
44
+ * Rate Limits (FREE tier):
45
+ * - 14,400 requests per day
46
+ * - 10 requests per minute
47
+ * - Automatic retry with exponential backoff
48
+ */
49
+ export declare class GroqProvider implements ILLMProvider {
50
+ private readonly logger;
51
+ private config;
52
+ private isInitialized;
53
+ private apiKey;
54
+ private baseUrl;
55
+ private requestCount;
56
+ private lastRequestTime;
57
+ constructor(config?: GroqProviderConfig);
58
+ /**
59
+ * Initialize the Groq provider
60
+ */
61
+ initialize(): Promise<void>;
62
+ /**
63
+ * Complete a prompt using Groq
64
+ */
65
+ complete(options: LLMCompletionOptions): Promise<LLMCompletionResponse>;
66
+ /**
67
+ * Stream a completion using Groq
68
+ */
69
+ streamComplete(options: LLMCompletionOptions): AsyncIterableIterator<LLMStreamEvent>;
70
+ /**
71
+ * Generate embeddings (not supported by Groq)
72
+ */
73
+ embed(options: LLMEmbeddingOptions): Promise<LLMEmbeddingResponse>;
74
+ /**
75
+ * Count tokens in text (approximate)
76
+ */
77
+ countTokens(options: LLMTokenCountOptions): Promise<number>;
78
+ /**
79
+ * Health check - ping Groq API
80
+ */
81
+ healthCheck(): Promise<LLMHealthStatus>;
82
+ /**
83
+ * Get provider metadata
84
+ */
85
+ getMetadata(): LLMProviderMetadata;
86
+ /**
87
+ * Shutdown the provider
88
+ */
89
+ shutdown(): Promise<void>;
90
+ /**
91
+ * Track cost (free tier = $0)
92
+ */
93
+ trackCost(usage: LLMCompletionResponse['usage']): number;
94
+ /**
95
+ * Build chat completion request
96
+ */
97
+ private buildChatRequest;
98
+ /**
99
+ * Map Groq finish reason to standard stop reason
100
+ */
101
+ private mapStopReason;
102
+ /**
103
+ * Extract retry-after header from rate limit response
104
+ */
105
+ private extractRetryAfter;
106
+ /**
107
+ * Sleep utility for retry delays
108
+ */
109
+ private sleep;
110
+ /**
111
+ * Ensure provider is initialized
112
+ */
113
+ private ensureInitialized;
114
+ }
115
+ //# sourceMappingURL=GroqProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroqProvider.d.ts","sourceRoot":"","sources":["../../src/providers/GroqProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EAEpB,MAAM,gBAAgB,CAAC;AAGxB;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AA+ED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,YAAa,YAAW,YAAY;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,eAAe,CAAS;gBAEpB,MAAM,GAAE,kBAAuB;IAkB3C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAqCjC;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA4I7E;;OAEG;IACI,cAAc,CAAC,OAAO,EAAE,oBAAoB,GAAG,qBAAqB,CAAC,cAAc,CAAC;IAuG3F;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IASxE;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC;IAKjE;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,eAAe,CAAC;IA0C7C;;OAEG;IACH,WAAW,IAAI,mBAAmB;IA4BlC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAO/B;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,GAAG,MAAM;IAMxD;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAoCxB;;OAEG;IACH,OAAO,CAAC,aAAa;IAerB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;OAEG;IACH,OAAO,CAAC,KAAK;IAIb;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAU1B"}