claude-flow 2.0.0-alpha.63 → 2.0.0-alpha.65

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 (106) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/bin/claude-flow +1 -1
  3. package/dist/api/claude-api-errors.d.ts +115 -0
  4. package/dist/api/claude-api-errors.d.ts.map +1 -0
  5. package/dist/api/claude-api-errors.js +198 -0
  6. package/dist/api/claude-api-errors.js.map +1 -0
  7. package/dist/api/claude-client-enhanced.d.ts +109 -0
  8. package/dist/api/claude-client-enhanced.d.ts.map +1 -0
  9. package/dist/api/claude-client-enhanced.js +479 -0
  10. package/dist/api/claude-client-enhanced.js.map +1 -0
  11. package/dist/api/claude-client.d.ts +42 -0
  12. package/dist/api/claude-client.d.ts.map +1 -1
  13. package/dist/api/claude-client.js +217 -14
  14. package/dist/api/claude-client.js.map +1 -1
  15. package/dist/cli/commands/hive-mind/pause.d.ts.map +1 -1
  16. package/dist/cli/commands/hive-mind/pause.js +6 -5
  17. package/dist/cli/commands/hive-mind/pause.js.map +1 -1
  18. package/dist/cli/commands/hive-mind/ps.js.map +1 -1
  19. package/dist/cli/commands/hive-mind/resume.d.ts.map +1 -1
  20. package/dist/cli/commands/hive-mind/resume.js +4 -3
  21. package/dist/cli/commands/hive-mind/resume.js.map +1 -1
  22. package/dist/cli/commands/hive-mind/stop.js.map +1 -1
  23. package/dist/cli/repl.d.ts.map +1 -1
  24. package/dist/cli/repl.js +44 -22
  25. package/dist/cli/repl.js.map +1 -1
  26. package/dist/cli/simple-cli.js +4 -3
  27. package/dist/cli/simple-cli.js.map +1 -1
  28. package/dist/cli/simple-commands/coordination.js +60 -40
  29. package/dist/cli/simple-commands/coordination.js.map +1 -1
  30. package/dist/cli/simple-commands/hive-mind/auto-save-middleware.d.ts +3 -4
  31. package/dist/cli/simple-commands/hive-mind/auto-save-middleware.d.ts.map +1 -1
  32. package/dist/cli/simple-commands/hive-mind/auto-save-middleware.js +6 -6
  33. package/dist/cli/simple-commands/hive-mind/auto-save-middleware.js.map +1 -1
  34. package/dist/cli/simple-commands/hive-mind/mcp-wrapper.d.ts +1 -1
  35. package/dist/cli/simple-commands/hive-mind/mcp-wrapper.d.ts.map +1 -1
  36. package/dist/cli/simple-commands/hive-mind/mcp-wrapper.js +64 -7
  37. package/dist/cli/simple-commands/hive-mind/mcp-wrapper.js.map +1 -1
  38. package/dist/cli/simple-commands/hive-mind/session-manager.d.ts +139 -0
  39. package/dist/cli/simple-commands/hive-mind/session-manager.d.ts.map +1 -0
  40. package/dist/cli/simple-commands/hive-mind/session-manager.js +308 -95
  41. package/dist/cli/simple-commands/hive-mind/session-manager.js.map +1 -1
  42. package/dist/cli/simple-commands/hive-mind.d.ts.map +1 -1
  43. package/dist/cli/simple-commands/hive-mind.js +88 -10
  44. package/dist/cli/simple-commands/hive-mind.js.map +1 -1
  45. package/dist/cli/simple-commands/init/claude-commands/optimized-slash-commands.d.ts.map +1 -1
  46. package/dist/cli/simple-commands/init/claude-commands/optimized-slash-commands.js +45 -22
  47. package/dist/cli/simple-commands/init/claude-commands/optimized-slash-commands.js.map +1 -1
  48. package/dist/cli/simple-commands/init/claude-commands/slash-commands.d.ts.map +1 -1
  49. package/dist/cli/simple-commands/init/claude-commands/slash-commands.js +34 -13
  50. package/dist/cli/simple-commands/init/claude-commands/slash-commands.js.map +1 -1
  51. package/dist/cli/simple-commands/init/claude-commands/sparc-commands.d.ts.map +1 -1
  52. package/dist/cli/simple-commands/init/claude-commands/sparc-commands.js +107 -30
  53. package/dist/cli/simple-commands/init/claude-commands/sparc-commands.js.map +1 -1
  54. package/dist/cli/simple-commands/init/copy-revised-templates.d.ts +29 -0
  55. package/dist/cli/simple-commands/init/copy-revised-templates.d.ts.map +1 -0
  56. package/dist/cli/simple-commands/init/copy-revised-templates.js +159 -0
  57. package/dist/cli/simple-commands/init/copy-revised-templates.js.map +1 -0
  58. package/dist/cli/simple-commands/init/index.d.ts.map +1 -1
  59. package/dist/cli/simple-commands/init/index.js +139 -196
  60. package/dist/cli/simple-commands/init/index.js.map +1 -1
  61. package/dist/cli/simple-commands/init/template-copier.d.ts +27 -0
  62. package/dist/cli/simple-commands/init/template-copier.d.ts.map +1 -0
  63. package/dist/cli/simple-commands/init/template-copier.js +510 -0
  64. package/dist/cli/simple-commands/init/template-copier.js.map +1 -0
  65. package/dist/cli/simple-commands/init/templates/sparc-modes.d.ts.map +1 -1
  66. package/dist/cli/simple-commands/init/templates/sparc-modes.js +634 -23
  67. package/dist/cli/simple-commands/init/templates/sparc-modes.js.map +1 -1
  68. package/dist/cli/simple-orchestrator.d.ts.map +1 -1
  69. package/dist/cli/simple-orchestrator.js +2 -1
  70. package/dist/cli/simple-orchestrator.js.map +1 -1
  71. package/dist/cli/ui/compatible-ui.js +1 -1
  72. package/dist/cli/ui/compatible-ui.js.map +1 -1
  73. package/dist/cli/ui/index.d.ts.map +1 -1
  74. package/dist/cli/ui/index.js +4 -2
  75. package/dist/cli/ui/index.js.map +1 -1
  76. package/dist/cli/utils/environment-detector.d.ts +5 -0
  77. package/dist/cli/utils/environment-detector.d.ts.map +1 -1
  78. package/dist/cli/utils/environment-detector.js.map +1 -1
  79. package/dist/core/logger.d.ts +2 -0
  80. package/dist/core/logger.d.ts.map +1 -1
  81. package/dist/core/logger.js +3 -0
  82. package/dist/core/logger.js.map +1 -1
  83. package/dist/hive-mind/core/DatabaseManager.d.ts +6 -0
  84. package/dist/hive-mind/core/DatabaseManager.d.ts.map +1 -1
  85. package/dist/hive-mind/core/DatabaseManager.js +66 -15
  86. package/dist/hive-mind/core/DatabaseManager.js.map +1 -1
  87. package/dist/memory/backends/sqlite.d.ts +1 -0
  88. package/dist/memory/backends/sqlite.d.ts.map +1 -1
  89. package/dist/memory/backends/sqlite.js +17 -2
  90. package/dist/memory/backends/sqlite.js.map +1 -1
  91. package/package.json +1 -1
  92. package/src/cli/commands/hive-mind/pause.ts +6 -5
  93. package/src/cli/commands/hive-mind/ps.ts +4 -4
  94. package/src/cli/commands/hive-mind/resume.ts +4 -3
  95. package/src/cli/commands/hive-mind/stop.ts +1 -1
  96. package/src/cli/help-text.js +2 -2
  97. package/src/cli/repl.ts +44 -22
  98. package/src/cli/simple-cli.js +1 -1
  99. package/src/cli/simple-cli.ts +11 -10
  100. package/src/cli/simple-commands/init/index.js +1 -0
  101. package/src/cli/simple-commands/init/templates/claude-flow-universal +1 -1
  102. package/src/cli/simple-orchestrator.ts +2 -1
  103. package/src/cli/ui/compatible-ui.ts +1 -1
  104. package/src/cli/ui/index.ts +4 -2
  105. package/src/cli/utils/environment-detector.ts +2 -2
  106. package/src/core/logger.ts +5 -0
@@ -0,0 +1,479 @@
1
+ /**
2
+ * Enhanced Claude API client with comprehensive error handling
3
+ * Implements exponential backoff, health checks, and improved error messages
4
+ */
5
+ import { EventEmitter } from 'events';
6
+ import { ClaudeAPIError, ClaudeInternalServerError, ClaudeServiceUnavailableError, ClaudeRateLimitError, ClaudeTimeoutError, ClaudeNetworkError, ClaudeAuthenticationError, ClaudeValidationError, getUserFriendlyError, } from './claude-api-errors.js';
7
+ import { circuitBreaker } from '../utils/helpers.js';
8
+ export class EnhancedClaudeAPIClient extends EventEmitter {
9
+ config;
10
+ logger;
11
+ configManager;
12
+ circuitBreaker;
13
+ lastHealthCheck;
14
+ healthCheckTimer;
15
+ constructor(logger, configManager, config) {
16
+ super();
17
+ this.logger = logger;
18
+ this.configManager = configManager;
19
+ this.config = this.loadConfiguration(config);
20
+ // Initialize circuit breaker
21
+ this.circuitBreaker = circuitBreaker('claude-api', {
22
+ threshold: this.config.circuitBreakerThreshold || 5,
23
+ timeout: this.config.circuitBreakerTimeout || 60000,
24
+ resetTimeout: this.config.circuitBreakerResetTimeout || 300000,
25
+ });
26
+ // Start health check if enabled
27
+ if (this.config.enableHealthCheck) {
28
+ this.startHealthCheck();
29
+ }
30
+ }
31
+ /**
32
+ * Load configuration with enhanced defaults
33
+ */
34
+ loadConfiguration(overrides) {
35
+ const config = {
36
+ apiKey: '',
37
+ apiUrl: 'https://api.anthropic.com/v1/messages',
38
+ model: 'claude-3-sonnet-20240229',
39
+ temperature: 0.7,
40
+ maxTokens: 4096,
41
+ topP: 1,
42
+ topK: undefined,
43
+ systemPrompt: undefined,
44
+ timeout: 60000,
45
+ retryAttempts: 3,
46
+ retryDelay: 1000,
47
+ // Enhanced configurations
48
+ enableHealthCheck: true,
49
+ healthCheckInterval: 300000, // 5 minutes
50
+ circuitBreakerThreshold: 5,
51
+ circuitBreakerTimeout: 60000,
52
+ circuitBreakerResetTimeout: 300000,
53
+ maxRetries: 3,
54
+ retryBaseDelay: 1000,
55
+ retryMaxDelay: 30000,
56
+ retryJitter: true,
57
+ };
58
+ // Load from environment
59
+ if (process.env.ANTHROPIC_API_KEY) {
60
+ config.apiKey = process.env.ANTHROPIC_API_KEY;
61
+ }
62
+ // Load from config manager
63
+ const claudeConfig = this.configManager.get('claude');
64
+ if (claudeConfig) {
65
+ Object.assign(config, claudeConfig);
66
+ }
67
+ // Apply overrides
68
+ if (overrides) {
69
+ Object.assign(config, overrides);
70
+ }
71
+ this.validateConfiguration(config);
72
+ return config;
73
+ }
74
+ /**
75
+ * Validate configuration
76
+ */
77
+ validateConfiguration(config) {
78
+ if (!config.apiKey) {
79
+ throw new ClaudeAuthenticationError('Claude API key is required. Set ANTHROPIC_API_KEY environment variable.');
80
+ }
81
+ if (config.temperature !== undefined && (config.temperature < 0 || config.temperature > 1)) {
82
+ throw new ClaudeValidationError('Temperature must be between 0 and 1');
83
+ }
84
+ if (config.maxTokens !== undefined && (config.maxTokens < 1 || config.maxTokens > 100000)) {
85
+ throw new ClaudeValidationError('Max tokens must be between 1 and 100000');
86
+ }
87
+ }
88
+ /**
89
+ * Start periodic health checks
90
+ */
91
+ startHealthCheck() {
92
+ this.performHealthCheck(); // Initial check
93
+ this.healthCheckTimer = setInterval(() => this.performHealthCheck(), this.config.healthCheckInterval || 300000);
94
+ }
95
+ /**
96
+ * Perform a health check on the API
97
+ */
98
+ async performHealthCheck() {
99
+ const startTime = Date.now();
100
+ try {
101
+ // Simple health check request
102
+ const controller = new AbortController();
103
+ const timeout = setTimeout(() => controller.abort(), 10000); // 10 second timeout
104
+ const response = await fetch(this.config.apiUrl || '', {
105
+ method: 'POST',
106
+ headers: {
107
+ 'Content-Type': 'application/json',
108
+ 'anthropic-version': '2023-06-01',
109
+ 'x-api-key': this.config.apiKey,
110
+ },
111
+ body: JSON.stringify({
112
+ model: this.config.model,
113
+ messages: [{ role: 'user', content: 'Hi' }],
114
+ max_tokens: 1,
115
+ }),
116
+ signal: controller.signal,
117
+ });
118
+ clearTimeout(timeout);
119
+ const latency = Date.now() - startTime;
120
+ const healthy = response.ok || response.status === 429; // Rate limit is still "healthy"
121
+ this.lastHealthCheck = {
122
+ healthy,
123
+ latency,
124
+ error: healthy ? undefined : `Status: ${response.status}`,
125
+ timestamp: new Date(),
126
+ };
127
+ this.logger.debug('Claude API health check completed', this.lastHealthCheck);
128
+ this.emit('health_check', this.lastHealthCheck);
129
+ return this.lastHealthCheck;
130
+ }
131
+ catch (error) {
132
+ const latency = Date.now() - startTime;
133
+ this.lastHealthCheck = {
134
+ healthy: false,
135
+ latency,
136
+ error: error instanceof Error ? error.message : 'Unknown error',
137
+ timestamp: new Date(),
138
+ };
139
+ this.logger.warn('Claude API health check failed', this.lastHealthCheck);
140
+ this.emit('health_check', this.lastHealthCheck);
141
+ return this.lastHealthCheck;
142
+ }
143
+ }
144
+ /**
145
+ * Get last health check result
146
+ */
147
+ getHealthStatus() {
148
+ return this.lastHealthCheck;
149
+ }
150
+ /**
151
+ * Send a message with enhanced error handling
152
+ */
153
+ async sendMessage(messages, options) {
154
+ const request = {
155
+ model: options?.model || this.config.model || 'claude-3-sonnet-20240229',
156
+ messages,
157
+ system: options?.systemPrompt || this.config.systemPrompt,
158
+ max_tokens: options?.maxTokens || this.config.maxTokens || 4096,
159
+ temperature: options?.temperature ?? this.config.temperature,
160
+ top_p: this.config.topP,
161
+ top_k: this.config.topK,
162
+ stream: options?.stream || false,
163
+ };
164
+ this.logger.debug('Sending Claude API request', {
165
+ model: request.model,
166
+ temperature: request.temperature,
167
+ maxTokens: request.max_tokens,
168
+ messageCount: messages.length,
169
+ stream: request.stream,
170
+ });
171
+ try {
172
+ // Use circuit breaker for the request
173
+ const result = await this.circuitBreaker.execute(async () => {
174
+ if (request.stream) {
175
+ return this.streamRequestWithRetry(request);
176
+ }
177
+ else {
178
+ return this.sendRequestWithRetry(request);
179
+ }
180
+ });
181
+ return result;
182
+ }
183
+ catch (error) {
184
+ // Handle circuit breaker open state
185
+ if (error instanceof Error && error.message.includes('Circuit breaker')) {
186
+ const apiError = new ClaudeServiceUnavailableError('Claude API is temporarily unavailable due to repeated failures. Please try again later.');
187
+ this.handleError(apiError);
188
+ throw apiError;
189
+ }
190
+ throw error;
191
+ }
192
+ }
193
+ /**
194
+ * Send request with retry logic and enhanced error handling
195
+ */
196
+ async sendRequestWithRetry(request) {
197
+ let lastError;
198
+ const maxRetries = this.config.maxRetries || 3;
199
+ for (let attempt = 0; attempt < maxRetries; attempt++) {
200
+ try {
201
+ return await this.sendRequestOnce(request);
202
+ }
203
+ catch (error) {
204
+ lastError = this.transformError(error);
205
+ // Don't retry non-retryable errors
206
+ if (!lastError.retryable) {
207
+ this.handleError(lastError);
208
+ throw lastError;
209
+ }
210
+ this.logger.warn(`Claude API request failed (attempt ${attempt + 1}/${maxRetries})`, {
211
+ error: lastError.message,
212
+ statusCode: lastError.statusCode,
213
+ retryable: lastError.retryable,
214
+ });
215
+ // Don't retry on the last attempt
216
+ if (attempt < maxRetries - 1) {
217
+ const delay = this.calculateRetryDelay(attempt, lastError);
218
+ this.logger.info(`Retrying after ${delay}ms...`);
219
+ await this.delay(delay);
220
+ }
221
+ }
222
+ }
223
+ this.handleError(lastError);
224
+ throw lastError;
225
+ }
226
+ /**
227
+ * Send a single request
228
+ */
229
+ async sendRequestOnce(request) {
230
+ const controller = new AbortController();
231
+ const timeout = setTimeout(() => controller.abort(), this.config.timeout || 60000);
232
+ try {
233
+ const response = await fetch(this.config.apiUrl || '', {
234
+ method: 'POST',
235
+ headers: {
236
+ 'Content-Type': 'application/json',
237
+ 'anthropic-version': '2023-06-01',
238
+ 'x-api-key': this.config.apiKey,
239
+ },
240
+ body: JSON.stringify(request),
241
+ signal: controller.signal,
242
+ });
243
+ clearTimeout(timeout);
244
+ // Handle different error status codes
245
+ if (!response.ok) {
246
+ const errorText = await response.text();
247
+ let errorData;
248
+ try {
249
+ errorData = JSON.parse(errorText);
250
+ }
251
+ catch {
252
+ errorData = { message: errorText };
253
+ }
254
+ throw this.createAPIError(response.status, errorData);
255
+ }
256
+ const data = (await response.json());
257
+ this.logger.info('Claude API response received', {
258
+ model: data.model,
259
+ inputTokens: data.usage.input_tokens,
260
+ outputTokens: data.usage.output_tokens,
261
+ stopReason: data.stop_reason,
262
+ });
263
+ this.emit('response', data);
264
+ return data;
265
+ }
266
+ catch (error) {
267
+ clearTimeout(timeout);
268
+ // Handle abort/timeout
269
+ if (error instanceof Error && error.name === 'AbortError') {
270
+ throw new ClaudeTimeoutError('Request timed out', this.config.timeout || 60000);
271
+ }
272
+ throw error;
273
+ }
274
+ }
275
+ /**
276
+ * Stream request with retry logic
277
+ */
278
+ async *streamRequestWithRetry(request) {
279
+ let lastError;
280
+ const maxRetries = this.config.maxRetries || 3;
281
+ for (let attempt = 0; attempt < maxRetries; attempt++) {
282
+ try {
283
+ yield* this.streamRequestOnce(request);
284
+ return;
285
+ }
286
+ catch (error) {
287
+ lastError = this.transformError(error);
288
+ if (!lastError.retryable) {
289
+ this.handleError(lastError);
290
+ throw lastError;
291
+ }
292
+ this.logger.warn(`Claude API stream request failed (attempt ${attempt + 1}/${maxRetries})`, { error: lastError.message });
293
+ if (attempt < maxRetries - 1) {
294
+ const delay = this.calculateRetryDelay(attempt, lastError);
295
+ await this.delay(delay);
296
+ }
297
+ }
298
+ }
299
+ this.handleError(lastError);
300
+ throw lastError;
301
+ }
302
+ /**
303
+ * Send a single streaming request
304
+ */
305
+ async *streamRequestOnce(request) {
306
+ const controller = new AbortController();
307
+ const timeout = setTimeout(() => controller.abort(), (this.config.timeout || 60000) * 2);
308
+ try {
309
+ const response = await fetch(this.config.apiUrl || '', {
310
+ method: 'POST',
311
+ headers: {
312
+ 'Content-Type': 'application/json',
313
+ 'anthropic-version': '2023-06-01',
314
+ 'x-api-key': this.config.apiKey,
315
+ },
316
+ body: JSON.stringify({ ...request, stream: true }),
317
+ signal: controller.signal,
318
+ });
319
+ if (!response.ok) {
320
+ const errorText = await response.text();
321
+ let errorData;
322
+ try {
323
+ errorData = JSON.parse(errorText);
324
+ }
325
+ catch {
326
+ errorData = { message: errorText };
327
+ }
328
+ throw this.createAPIError(response.status, errorData);
329
+ }
330
+ if (!response.body) {
331
+ throw new ClaudeAPIError('Response body is null');
332
+ }
333
+ const reader = response.body.getReader();
334
+ const decoder = new TextDecoder();
335
+ let buffer = '';
336
+ while (true) {
337
+ const { done, value } = await reader.read();
338
+ if (done)
339
+ break;
340
+ buffer += decoder.decode(value, { stream: true });
341
+ const lines = buffer.split('\n');
342
+ buffer = lines.pop() || '';
343
+ for (const line of lines) {
344
+ if (line.startsWith('data: ')) {
345
+ const data = line.slice(6);
346
+ if (data === '[DONE]')
347
+ continue;
348
+ try {
349
+ const event = JSON.parse(data);
350
+ this.emit('stream_event', event);
351
+ yield event;
352
+ }
353
+ catch (e) {
354
+ this.logger.warn('Failed to parse stream event', { data, error: e });
355
+ }
356
+ }
357
+ }
358
+ }
359
+ }
360
+ finally {
361
+ clearTimeout(timeout);
362
+ }
363
+ }
364
+ /**
365
+ * Create appropriate error based on status code
366
+ */
367
+ createAPIError(statusCode, errorData) {
368
+ const message = errorData.error?.message || errorData.message || 'Unknown error';
369
+ switch (statusCode) {
370
+ case 400:
371
+ return new ClaudeValidationError(message, errorData);
372
+ case 401:
373
+ case 403:
374
+ return new ClaudeAuthenticationError(message, errorData);
375
+ case 429:
376
+ const retryAfter = errorData.error?.retry_after;
377
+ return new ClaudeRateLimitError(message, retryAfter, errorData);
378
+ case 500:
379
+ return new ClaudeInternalServerError(message, errorData);
380
+ case 503:
381
+ return new ClaudeServiceUnavailableError(message, errorData);
382
+ default:
383
+ return new ClaudeAPIError(message, statusCode, statusCode >= 500, errorData);
384
+ }
385
+ }
386
+ /**
387
+ * Transform generic errors to Claude API errors
388
+ */
389
+ transformError(error) {
390
+ if (error instanceof ClaudeAPIError) {
391
+ return error;
392
+ }
393
+ if (error instanceof Error) {
394
+ // Network errors
395
+ if (error.message.includes('fetch failed') || error.message.includes('ECONNREFUSED')) {
396
+ return new ClaudeNetworkError(error.message);
397
+ }
398
+ // Timeout errors
399
+ if (error.name === 'AbortError' || error.message.includes('timeout')) {
400
+ return new ClaudeTimeoutError(error.message, this.config.timeout || 60000);
401
+ }
402
+ }
403
+ return new ClaudeAPIError(error instanceof Error ? error.message : String(error), undefined, true);
404
+ }
405
+ /**
406
+ * Calculate retry delay with exponential backoff and jitter
407
+ */
408
+ calculateRetryDelay(attempt, error) {
409
+ // If rate limit error with retry-after header, use that
410
+ if (error instanceof ClaudeRateLimitError && error.retryAfter) {
411
+ return error.retryAfter * 1000; // Convert to milliseconds
412
+ }
413
+ const baseDelay = this.config.retryBaseDelay || 1000;
414
+ const maxDelay = this.config.retryMaxDelay || 30000;
415
+ // Exponential backoff: delay = baseDelay * (2 ^ attempt)
416
+ let delay = Math.min(baseDelay * Math.pow(2, attempt), maxDelay);
417
+ // Add jitter to prevent thundering herd
418
+ if (this.config.retryJitter) {
419
+ const jitter = Math.random() * 0.3 * delay; // Up to 30% jitter
420
+ delay = delay + jitter;
421
+ }
422
+ return Math.floor(delay);
423
+ }
424
+ /**
425
+ * Handle errors with user-friendly messages and logging
426
+ */
427
+ handleError(error) {
428
+ const errorInfo = getUserFriendlyError(error);
429
+ this.logger.error(`${errorInfo.title}: ${errorInfo.message}`, {
430
+ error: error.message,
431
+ code: error.code,
432
+ statusCode: error.statusCode,
433
+ retryable: error.retryable,
434
+ details: error.details,
435
+ });
436
+ // Log suggestions in debug mode
437
+ if (this.logger.level === 'debug' && errorInfo.suggestions.length > 0) {
438
+ this.logger.debug('Suggestions to resolve the issue:', errorInfo.suggestions);
439
+ }
440
+ this.emit('error', {
441
+ error,
442
+ userFriendly: errorInfo,
443
+ });
444
+ }
445
+ /**
446
+ * Helper method for simple completions with error handling
447
+ */
448
+ async complete(prompt, options) {
449
+ try {
450
+ const messages = [{ role: 'user', content: prompt }];
451
+ const response = (await this.sendMessage(messages, options));
452
+ return response.content[0].text;
453
+ }
454
+ catch (error) {
455
+ if (error instanceof ClaudeAPIError) {
456
+ const errorInfo = getUserFriendlyError(error);
457
+ throw new Error(`${errorInfo.title}: ${errorInfo.message}`);
458
+ }
459
+ throw error;
460
+ }
461
+ }
462
+ /**
463
+ * Delay helper
464
+ */
465
+ delay(ms) {
466
+ return new Promise((resolve) => setTimeout(resolve, ms));
467
+ }
468
+ /**
469
+ * Clean up resources
470
+ */
471
+ destroy() {
472
+ if (this.healthCheckTimer) {
473
+ clearInterval(this.healthCheckTimer);
474
+ this.healthCheckTimer = undefined;
475
+ }
476
+ this.removeAllListeners();
477
+ }
478
+ }
479
+ //# sourceMappingURL=claude-client-enhanced.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-client-enhanced.js","sourceRoot":"","sources":["../../src/api/claude-client-enhanced.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@
5
5
  import { EventEmitter } from 'events';
6
6
  import { ILogger } from '../core/logger.js';
7
7
  import { ConfigManager } from '../config/config-manager.js';
8
+ import { HealthCheckResult } from './claude-api-errors.js';
8
9
  export interface ClaudeAPIConfig {
9
10
  apiKey: string;
10
11
  apiUrl?: string;
@@ -17,6 +18,12 @@ export interface ClaudeAPIConfig {
17
18
  timeout?: number;
18
19
  retryAttempts?: number;
19
20
  retryDelay?: number;
21
+ enableHealthCheck?: boolean;
22
+ healthCheckInterval?: number;
23
+ circuitBreakerThreshold?: number;
24
+ circuitBreakerTimeout?: number;
25
+ circuitBreakerResetTimeout?: number;
26
+ retryJitter?: boolean;
20
27
  }
21
28
  export type ClaudeModel = 'claude-3-opus-20240229' | 'claude-3-sonnet-20240229' | 'claude-3-haiku-20240307' | 'claude-2.1' | 'claude-2.0' | 'claude-instant-1.2';
22
29
  export interface ClaudeMessage {
@@ -82,6 +89,9 @@ export declare class ClaudeAPIClient extends EventEmitter {
82
89
  private defaultModel;
83
90
  private defaultTemperature;
84
91
  private defaultMaxTokens;
92
+ private circuitBreaker;
93
+ private lastHealthCheck?;
94
+ private healthCheckTimer?;
85
95
  constructor(logger: ILogger, configManager: ConfigManager, config?: Partial<ClaudeAPIConfig>);
86
96
  /**
87
97
  * Load configuration from various sources
@@ -151,5 +161,37 @@ export declare class ClaudeAPIClient extends EventEmitter {
151
161
  * Delay helper for retries
152
162
  */
153
163
  private delay;
164
+ /**
165
+ * Start periodic health checks
166
+ */
167
+ private startHealthCheck;
168
+ /**
169
+ * Perform a health check on the API
170
+ */
171
+ performHealthCheck(): Promise<HealthCheckResult>;
172
+ /**
173
+ * Get last health check result
174
+ */
175
+ getHealthStatus(): HealthCheckResult | undefined;
176
+ /**
177
+ * Create appropriate error based on status code
178
+ */
179
+ private createAPIError;
180
+ /**
181
+ * Transform generic errors to Claude API errors
182
+ */
183
+ private transformError;
184
+ /**
185
+ * Calculate retry delay with exponential backoff and jitter
186
+ */
187
+ private calculateRetryDelay;
188
+ /**
189
+ * Handle errors with user-friendly messages and logging
190
+ */
191
+ private handleError;
192
+ /**
193
+ * Clean up resources
194
+ */
195
+ destroy(): void;
154
196
  }
155
197
  //# sourceMappingURL=claude-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude-client.d.ts","sourceRoot":"","sources":["../../src/api/claude-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,WAAW,GACnB,wBAAwB,GACxB,0BAA0B,GAC1B,yBAAyB,GACzB,YAAY,GACZ,YAAY,GACZ,oBAAoB,CAAC;AAEzB,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE;QACT,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,KAAK,EAAE,WAAW,CAAC;IACnB,WAAW,EAAE,UAAU,GAAG,YAAY,GAAG,eAAe,CAAC;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EACA,eAAe,GACf,qBAAqB,GACrB,qBAAqB,GACrB,oBAAoB,GACpB,eAAe,GACf,cAAc,GACd,MAAM,GACN,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,YAAY,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,aAAa,CAAC,EAAE;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,KAAK,CAAC,EAAE;QACN,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,YAAY,CAA2C;IAC/D,OAAO,CAAC,kBAAkB,CAAe;IACzC,OAAO,CAAC,gBAAgB,CAAgB;gBAE5B,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;IAS5F;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkDzB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAsB7B;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;IAUrD;;OAEG;IACH,SAAS,IAAI,eAAe;IAI5B;;OAEG;IACG,WAAW,CACf,QAAQ,EAAE,aAAa,EAAE,EACzB,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,WAAW,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,GACA,OAAO,CAAC,cAAc,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC;IA2B7D;;OAEG;YACW,WAAW;IAwDzB;;OAEG;YACY,aAAa;IAwD5B;;OAEG;IACG,QAAQ,CACZ,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,WAAW,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GACA,OAAO,CAAC,MAAM,CAAC;IAMlB;;OAEG;IACI,cAAc,CACnB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,WAAW,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GACA,aAAa,CAAC,MAAM,CAAC;IAcxB;;OAEG;IACH,kBAAkB,IAAI,WAAW,EAAE;IAWnC;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG;QAChC,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;KACrB;IA8CD;;OAEG;IACH,OAAO,CAAC,KAAK;CAGd"}
1
+ {"version":3,"file":"claude-client.d.ts","sourceRoot":"","sources":["../../src/api/claude-client.ts"],"names":[],"mappings":"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"}