@ai-orchestration/core 0.1.0 → 0.2.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.
Files changed (43) hide show
  1. package/README.md +129 -5
  2. package/dist/core/interfaces.d.ts +80 -1
  3. package/dist/core/interfaces.d.ts.map +1 -1
  4. package/dist/core/metrics.d.ts +161 -0
  5. package/dist/core/metrics.d.ts.map +1 -0
  6. package/dist/core/metrics.js +276 -0
  7. package/dist/core/metrics.js.map +1 -0
  8. package/dist/core/orchestrator.d.ts +45 -3
  9. package/dist/core/orchestrator.d.ts.map +1 -1
  10. package/dist/core/orchestrator.js +271 -11
  11. package/dist/core/orchestrator.js.map +1 -1
  12. package/dist/core/types.d.ts +39 -0
  13. package/dist/core/types.d.ts.map +1 -1
  14. package/dist/factory/index.d.ts.map +1 -1
  15. package/dist/factory/index.js +27 -7
  16. package/dist/factory/index.js.map +1 -1
  17. package/dist/index.d.ts +3 -1
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +1 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/providers/cerebras.d.ts.map +1 -1
  22. package/dist/providers/cerebras.js +22 -4
  23. package/dist/providers/cerebras.js.map +1 -1
  24. package/dist/providers/groq.d.ts.map +1 -1
  25. package/dist/providers/groq.js +22 -4
  26. package/dist/providers/groq.js.map +1 -1
  27. package/dist/providers/local.d.ts.map +1 -1
  28. package/dist/providers/local.js +9 -1
  29. package/dist/providers/local.js.map +1 -1
  30. package/dist/providers/openrouter.d.ts.map +1 -1
  31. package/dist/providers/openrouter.js +18 -2
  32. package/dist/providers/openrouter.js.map +1 -1
  33. package/docs/CHANGELOG.md +36 -0
  34. package/examples/README.md +205 -0
  35. package/examples/basic.ts +51 -17
  36. package/examples/chat-app/config.json +20 -1
  37. package/examples/chat-app/index.ts +41 -2
  38. package/examples/config.example.json +26 -4
  39. package/examples/language.ts +160 -0
  40. package/examples/metrics.ts +150 -0
  41. package/examples/strategies.ts +4 -2
  42. package/examples/test-local.ts +6 -6
  43. package/package.json +6 -2
@@ -1,12 +1,111 @@
1
1
  /**
2
2
  * Core orchestrator that manages providers and strategies
3
3
  */
4
+ import { MetricsCollector } from './metrics.js';
5
+ /**
6
+ * Language instruction mapping
7
+ */
8
+ const LANGUAGE_INSTRUCTIONS = {
9
+ // ISO 639-1 codes
10
+ es: 'Responde siempre en español.',
11
+ en: 'Respond always in English.',
12
+ fr: 'Répondez toujours en français.',
13
+ de: 'Antworte immer auf Deutsch.',
14
+ it: 'Rispondi sempre in italiano.',
15
+ pt: 'Responda sempre em português.',
16
+ ja: '常に日本語で回答してください。',
17
+ zh: '请始终用中文回答。',
18
+ ru: 'Всегда отвечайте на русском языке.',
19
+ ko: '항상 한국어로 답변하세요.',
20
+ ar: 'أجب دائماً بالعربية.',
21
+ hi: 'हमेशा हिंदी में उत्तर दें।',
22
+ nl: 'Antwoord altijd in het Nederlands.',
23
+ pl: 'Zawsze odpowiadaj po polsku.',
24
+ sv: 'Svara alltid på svenska.',
25
+ tr: 'Her zaman Türkçe cevap verin.',
26
+ // Full language names
27
+ spanish: 'Responde siempre en español.',
28
+ english: 'Respond always in English.',
29
+ french: 'Répondez toujours en français.',
30
+ german: 'Antworte immer auf Deutsch.',
31
+ italian: 'Rispondi sempre in italiano.',
32
+ portuguese: 'Responda sempre em português.',
33
+ japanese: '常に日本語で回答してください。',
34
+ chinese: '请始终用中文回答。',
35
+ russian: 'Всегда отвечайте на русском языке.',
36
+ korean: '항상 한국어로 답변하세요.',
37
+ arabic: 'أجب دائماً بالعربية.',
38
+ hindi: 'हमेशा हिंदी में उत्तर दें।',
39
+ dutch: 'Antwoord altijd in het Nederlands.',
40
+ polish: 'Zawsze odpowiadaj po polsku.',
41
+ swedish: 'Svara alltid på svenska.',
42
+ turkish: 'Her zaman Türkçe cevap verin.',
43
+ };
44
+ /**
45
+ * Get language instruction for a given language code or name
46
+ */
47
+ function getLanguageInstruction(language) {
48
+ const normalized = language.toLowerCase().trim();
49
+ return LANGUAGE_INSTRUCTIONS[normalized] || `Respond always in ${language}.`;
50
+ }
51
+ /**
52
+ * Process messages to add language instruction if responseLanguage is specified
53
+ */
54
+ function processMessagesWithLanguage(messages, options) {
55
+ if (!options?.responseLanguage) {
56
+ return messages;
57
+ }
58
+ // Check if there's already a system message
59
+ const hasSystemMessage = messages.some((msg) => msg.role === 'system');
60
+ // If there's already a system message, prepend the language instruction to it
61
+ if (hasSystemMessage) {
62
+ const languageInstruction = getLanguageInstruction(options.responseLanguage);
63
+ return messages.map((msg) => {
64
+ if (msg.role === 'system') {
65
+ return {
66
+ ...msg,
67
+ content: `${languageInstruction}\n\n${msg.content}`,
68
+ };
69
+ }
70
+ return msg;
71
+ });
72
+ }
73
+ // Otherwise, add a new system message at the beginning
74
+ const languageInstruction = getLanguageInstruction(options.responseLanguage);
75
+ return [
76
+ { role: 'system', content: languageInstruction },
77
+ ...messages,
78
+ ];
79
+ }
4
80
  export class Orchestrator {
5
81
  providers = new Map();
6
82
  strategy;
7
83
  healthCheckInterval;
8
- constructor(strategy) {
84
+ maxRetries;
85
+ requestTimeout;
86
+ retryDelay;
87
+ circuitBreaker;
88
+ circuitBreakerStates = new Map();
89
+ healthCheckConfig;
90
+ providerFailureCounts = new Map();
91
+ metrics;
92
+ strategyName;
93
+ constructor(strategy, options) {
9
94
  this.strategy = strategy;
95
+ this.maxRetries = options?.maxRetries ?? -1; // -1 means use providers.size
96
+ this.requestTimeout = options?.requestTimeout ?? 30000; // 30 seconds default
97
+ this.retryDelay = options?.retryDelay ?? 1000; // 1 second default
98
+ this.circuitBreaker = options?.circuitBreaker;
99
+ this.healthCheckConfig = options?.healthCheck;
100
+ this.strategyName = strategy.constructor.name.replace('Strategy', '').toLowerCase();
101
+ // Initialize metrics collector
102
+ this.metrics = new MetricsCollector();
103
+ if (options?.enableMetrics !== false) {
104
+ // Enable metrics by default
105
+ if (options?.onMetricsEvent) {
106
+ this.metrics.onEvent(options.onMetricsEvent);
107
+ }
108
+ }
10
109
  }
11
110
  /**
12
111
  * Register a provider
@@ -32,21 +131,101 @@ export class Orchestrator {
32
131
  getAllProviders() {
33
132
  return Array.from(this.providers.values());
34
133
  }
134
+ /**
135
+ * Check if a provider's circuit breaker is open
136
+ */
137
+ isCircuitBreakerOpen(providerId) {
138
+ if (!this.circuitBreaker?.enabled) {
139
+ return false;
140
+ }
141
+ const state = this.circuitBreakerStates.get(providerId);
142
+ if (!state || !state.isOpen) {
143
+ return false;
144
+ }
145
+ // Check if reset timeout has passed
146
+ if (state.lastFailureTime) {
147
+ const resetTimeout = this.circuitBreaker.resetTimeout ?? 60000;
148
+ if (Date.now() - state.lastFailureTime >= resetTimeout) {
149
+ // Reset circuit breaker
150
+ this.circuitBreakerStates.set(providerId, {
151
+ failures: 0,
152
+ isOpen: false,
153
+ });
154
+ return false;
155
+ }
156
+ }
157
+ return true;
158
+ }
159
+ /**
160
+ * Record a provider failure for circuit breaker
161
+ */
162
+ recordFailure(providerId) {
163
+ if (!this.circuitBreaker?.enabled) {
164
+ return;
165
+ }
166
+ const state = this.circuitBreakerStates.get(providerId) || {
167
+ failures: 0,
168
+ isOpen: false,
169
+ };
170
+ state.failures++;
171
+ state.lastFailureTime = Date.now();
172
+ const threshold = this.circuitBreaker.failureThreshold ?? 5;
173
+ if (state.failures >= threshold) {
174
+ state.isOpen = true;
175
+ }
176
+ this.circuitBreakerStates.set(providerId, state);
177
+ }
178
+ /**
179
+ * Record a provider success (reset circuit breaker)
180
+ */
181
+ recordSuccess(providerId) {
182
+ if (!this.circuitBreaker?.enabled) {
183
+ return;
184
+ }
185
+ this.circuitBreakerStates.set(providerId, {
186
+ failures: 0,
187
+ isOpen: false,
188
+ });
189
+ this.providerFailureCounts.set(providerId, 0);
190
+ }
35
191
  /**
36
192
  * Get enabled providers (those that pass basic checks)
37
193
  */
38
194
  async getAvailableProviders() {
39
195
  const providers = this.getAllProviders();
40
196
  const available = [];
197
+ const healthCheckTimeout = this.healthCheckConfig?.timeout ?? 5000; // 5 seconds default
41
198
  for (const provider of providers) {
199
+ // Check circuit breaker
200
+ if (this.isCircuitBreakerOpen(provider.id)) {
201
+ continue;
202
+ }
203
+ // Check consecutive failures
204
+ const consecutiveFailures = this.providerFailureCounts.get(provider.id) ?? 0;
205
+ const maxFailures = this.healthCheckConfig?.maxConsecutiveFailures ?? 3;
206
+ if (consecutiveFailures >= maxFailures) {
207
+ continue;
208
+ }
42
209
  try {
43
- const health = await provider.checkHealth();
210
+ // Use Promise.race to implement timeout
211
+ const healthPromise = provider.checkHealth();
212
+ const timeoutPromise = new Promise((_, reject) => setTimeout(() => reject(new Error('Health check timeout')), healthCheckTimeout));
213
+ const health = await Promise.race([healthPromise, timeoutPromise]);
214
+ // Record health check in metrics
215
+ this.metrics.recordHealthCheck(provider, health);
216
+ // Check latency threshold
217
+ const latencyThreshold = this.healthCheckConfig?.latencyThreshold ?? 10000; // 10 seconds default
44
218
  if (health.healthy) {
45
- available.push(provider);
219
+ if (!health.latency || health.latency <= latencyThreshold) {
220
+ available.push(provider);
221
+ this.providerFailureCounts.set(provider.id, 0);
222
+ }
46
223
  }
47
224
  }
48
225
  catch {
49
226
  // Skip unhealthy providers
227
+ const currentFailures = this.providerFailureCounts.get(provider.id) ?? 0;
228
+ this.providerFailureCounts.set(provider.id, currentFailures + 1);
50
229
  }
51
230
  }
52
231
  return available;
@@ -55,24 +234,49 @@ export class Orchestrator {
55
234
  * Select a provider using the configured strategy
56
235
  */
57
236
  async selectProvider(context) {
237
+ const startTime = Date.now();
58
238
  const available = await this.getAvailableProviders();
59
239
  if (available.length === 0) {
60
240
  return null;
61
241
  }
62
- return this.strategy.select(available, context);
242
+ const provider = await this.strategy.select(available, context);
243
+ if (provider) {
244
+ const selectionTime = Date.now() - startTime;
245
+ this.metrics.recordSelection(provider, this.strategyName, selectionTime);
246
+ }
247
+ return provider;
248
+ }
249
+ /**
250
+ * Calculate retry delay based on attempt number
251
+ */
252
+ getRetryDelay(attempt) {
253
+ if (this.retryDelay === 'exponential') {
254
+ return Math.min(1000 * Math.pow(2, attempt), 30000); // Max 30 seconds
255
+ }
256
+ return this.retryDelay;
63
257
  }
64
258
  /**
65
259
  * Perform a chat completion with automatic provider selection and fallback
66
260
  */
67
261
  async chat(messages, options) {
262
+ // Process messages to add language instruction if responseLanguage is specified
263
+ const processedMessages = processMessagesWithLanguage(messages, options);
68
264
  const context = {
69
- messages,
265
+ messages: processedMessages,
70
266
  options,
71
267
  previousAttempts: [],
72
268
  };
73
- const maxAttempts = this.providers.size || 1;
269
+ // Determine max attempts
270
+ const maxAttempts = this.maxRetries === -1 ? this.providers.size || 1 : this.maxRetries;
74
271
  let lastError = null;
272
+ // Get timeout (request-level or global)
273
+ const timeout = options?.timeout ?? this.requestTimeout;
75
274
  for (let attempt = 0; attempt < maxAttempts; attempt++) {
275
+ // Add delay between retries (except first attempt)
276
+ if (attempt > 0) {
277
+ const delay = this.getRetryDelay(attempt - 1);
278
+ await new Promise((resolve) => setTimeout(resolve, delay));
279
+ }
76
280
  const provider = await this.selectProvider(context);
77
281
  if (!provider) {
78
282
  throw new Error('No available providers. All providers are unhealthy or unavailable.');
@@ -82,14 +286,26 @@ export class Orchestrator {
82
286
  continue;
83
287
  }
84
288
  try {
85
- const response = await provider.chat(messages, options);
289
+ this.metrics.recordRequestStart(provider);
290
+ const requestStart = Date.now();
291
+ // Wrap provider call with timeout
292
+ const chatPromise = provider.chat(processedMessages, options);
293
+ const timeoutPromise = new Promise((_, reject) => setTimeout(() => reject(new Error('Request timeout')), timeout));
294
+ const response = await Promise.race([chatPromise, timeoutPromise]);
295
+ const latency = Date.now() - requestStart;
86
296
  this.strategy.update?.(provider, true, { response });
297
+ this.recordSuccess(provider.id);
298
+ this.metrics.recordSuccess(provider, response, latency);
87
299
  return response;
88
300
  }
89
301
  catch (error) {
302
+ const requestStart = Date.now();
303
+ const latency = Date.now() - requestStart;
90
304
  lastError = error instanceof Error ? error : new Error(String(error));
91
305
  context.previousAttempts?.push(provider.id);
92
306
  this.strategy.update?.(provider, false, { error });
307
+ this.recordFailure(provider.id);
308
+ this.metrics.recordFailure(provider, lastError, latency);
93
309
  }
94
310
  }
95
311
  throw lastError || new Error('Failed to get response from any provider');
@@ -98,8 +314,10 @@ export class Orchestrator {
98
314
  * Perform a streaming chat completion with automatic provider selection
99
315
  */
100
316
  async chatStream(messages, options) {
317
+ // Process messages to add language instruction if responseLanguage is specified
318
+ const processedMessages = processMessagesWithLanguage(messages, options);
101
319
  const context = {
102
- messages,
320
+ messages: processedMessages,
103
321
  options: { ...options, stream: true },
104
322
  previousAttempts: [],
105
323
  };
@@ -107,13 +325,27 @@ export class Orchestrator {
107
325
  if (!provider) {
108
326
  throw new Error('No available providers. All providers are unhealthy or unavailable.');
109
327
  }
328
+ // Get timeout (request-level or global)
329
+ const timeout = options?.timeout ?? this.requestTimeout;
110
330
  try {
111
- const stream = await provider.chatStream(messages, options);
331
+ this.metrics.recordRequestStart(provider);
332
+ // Wrap provider call with timeout
333
+ const streamPromise = provider.chatStream(processedMessages, options);
334
+ const timeoutPromise = new Promise((_, reject) => setTimeout(() => reject(new Error('Request timeout')), timeout));
335
+ const stream = await Promise.race([streamPromise, timeoutPromise]);
336
+ // Note: For streaming, we can't track success until stream completes
337
+ // This is a limitation - we'd need to wrap the stream to track completion
338
+ // Latency tracking would require wrapping the stream reader
112
339
  this.strategy.update?.(provider, true);
340
+ this.recordSuccess(provider.id);
113
341
  return stream;
114
342
  }
115
343
  catch (error) {
344
+ const err = error instanceof Error ? error : new Error(String(error));
116
345
  this.strategy.update?.(provider, false, { error });
346
+ this.recordFailure(provider.id);
347
+ // For streaming errors, we can't measure latency accurately
348
+ this.metrics.recordFailure(provider, err);
117
349
  throw error;
118
350
  }
119
351
  }
@@ -122,10 +354,26 @@ export class Orchestrator {
122
354
  */
123
355
  startHealthChecks(intervalMs) {
124
356
  this.stopHealthChecks();
357
+ const interval = intervalMs ?? this.healthCheckConfig?.interval ?? 60000; // Default 60 seconds
358
+ if (interval < 1000) {
359
+ console.warn('Health check interval is very low (< 1000ms). Consider using at least 1000ms.');
360
+ }
125
361
  this.healthCheckInterval = setInterval(async () => {
126
362
  const providers = this.getAllProviders();
127
- await Promise.allSettled(providers.map((p) => p.checkHealth().catch(() => null)));
128
- }, intervalMs);
363
+ const healthCheckTimeout = this.healthCheckConfig?.timeout ?? 5000; // 5 seconds default
364
+ await Promise.allSettled(providers.map(async (p) => {
365
+ try {
366
+ const healthPromise = p.checkHealth();
367
+ const timeoutPromise = new Promise((_, reject) => setTimeout(() => reject(new Error('Health check timeout')), healthCheckTimeout));
368
+ await Promise.race([healthPromise, timeoutPromise]);
369
+ this.providerFailureCounts.set(p.id, 0);
370
+ }
371
+ catch {
372
+ const currentFailures = this.providerFailureCounts.get(p.id) ?? 0;
373
+ this.providerFailureCounts.set(p.id, currentFailures + 1);
374
+ }
375
+ }));
376
+ }, interval);
129
377
  }
130
378
  /**
131
379
  * Stop periodic health checks
@@ -136,6 +384,18 @@ export class Orchestrator {
136
384
  this.healthCheckInterval = undefined;
137
385
  }
138
386
  }
387
+ /**
388
+ * Get metrics collector instance
389
+ */
390
+ getMetrics() {
391
+ return this.metrics;
392
+ }
393
+ /**
394
+ * Register a callback for metrics events
395
+ */
396
+ onMetricsEvent(callback) {
397
+ return this.metrics.onEvent(callback);
398
+ }
139
399
  /**
140
400
  * Cleanup resources
141
401
  */
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/core/orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/core/orchestrator.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,45 @@ export interface ChatOptions {
18
18
  topK?: number;
19
19
  stream?: boolean;
20
20
  stopSequences?: string[];
21
+ /**
22
+ * Force the response language. When set, automatically prepends a system message
23
+ * instructing the model to respond in the specified language.
24
+ *
25
+ * Supported values: ISO 639-1 language codes (e.g., 'es', 'en', 'fr', 'de', 'it', 'pt', 'ja', 'zh', 'ru')
26
+ * or full language names (e.g., 'spanish', 'english', 'french').
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * await orchestrator.chat(messages, { responseLanguage: 'es' });
31
+ * await orchestrator.chat(messages, { responseLanguage: 'spanish' });
32
+ * ```
33
+ */
34
+ responseLanguage?: string;
35
+ /**
36
+ * Number between -2.0 and 2.0. Positive values penalize new tokens based on their
37
+ * existing frequency in the text so far, decreasing the model's likelihood to
38
+ * repeat the same line verbatim.
39
+ */
40
+ frequencyPenalty?: number;
41
+ /**
42
+ * Number between -2.0 and 2.0. Positive values penalize new tokens based on whether
43
+ * they appear in the text so far, increasing the model's likelihood to talk about
44
+ * new topics.
45
+ */
46
+ presencePenalty?: number;
47
+ /**
48
+ * If specified, the system will make a best effort to sample deterministically,
49
+ * such that repeated requests with the same seed and parameters should return the same result.
50
+ */
51
+ seed?: number | null;
52
+ /**
53
+ * Request timeout in milliseconds. If not specified, uses the orchestrator's default timeout.
54
+ */
55
+ timeout?: number;
56
+ /**
57
+ * A unique identifier representing your end-user, which can help to monitor and detect abuse.
58
+ */
59
+ user?: string;
21
60
  [key: string]: unknown;
22
61
  }
23
62
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE;QACN,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE;QACb,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;;;;;;;;;;;;OAYG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE;QACN,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE;QACb,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,KAAK,EACV,kBAAkB,EAKnB,MAAM,uBAAuB,CAAC;AAyK/B;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY,CAkD3E;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,OAAO,GACd,MAAM,IAAI,kBAAkB,CAqB9B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,KAAK,EACV,kBAAkB,EAKnB,MAAM,uBAAuB,CAAC;AAyK/B;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY,CAuE3E;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,OAAO,GACd,MAAM,IAAI,kBAAkB,CAqB9B"}
@@ -133,8 +133,31 @@ export function createOrchestrator(config) {
133
133
  }
134
134
  // Create strategy
135
135
  const strategy = createStrategy(config.strategy);
136
- // Create orchestrator
137
- const orchestrator = new Orchestrator(strategy);
136
+ // Merge health check config (support deprecated fields for backward compatibility)
137
+ const healthCheckConfig = config.healthCheck
138
+ ? {
139
+ ...config.healthCheck,
140
+ enabled: config.healthCheck.enabled ??
141
+ config.enableHealthChecks ??
142
+ false,
143
+ interval: config.healthCheck.interval ?? config.healthCheckInterval,
144
+ }
145
+ : config.enableHealthChecks || config.healthCheckInterval
146
+ ? {
147
+ enabled: config.enableHealthChecks ?? true,
148
+ interval: config.healthCheckInterval,
149
+ }
150
+ : undefined;
151
+ // Create orchestrator with new configuration options
152
+ const orchestrator = new Orchestrator(strategy, {
153
+ maxRetries: config.maxRetries,
154
+ requestTimeout: config.requestTimeout,
155
+ retryDelay: config.retryDelay,
156
+ circuitBreaker: config.circuitBreaker,
157
+ healthCheck: healthCheckConfig,
158
+ enableMetrics: config.enableMetrics,
159
+ onMetricsEvent: config.onMetricsEvent,
160
+ });
138
161
  // Register providers
139
162
  const registeredProviders = [];
140
163
  for (const providerConfig of config.providers) {
@@ -153,11 +176,8 @@ export function createOrchestrator(config) {
153
176
  throw new ConfigurationError('No providers could be created. Check your configuration.');
154
177
  }
155
178
  // Start health checks if enabled
156
- if (config.enableHealthChecks && config.healthCheckInterval) {
157
- if (config.healthCheckInterval < 1000) {
158
- console.warn('Health check interval is very low (< 1000ms). Consider using at least 1000ms.');
159
- }
160
- orchestrator.startHealthChecks(config.healthCheckInterval);
179
+ if (healthCheckConfig?.enabled) {
180
+ orchestrator.startHealthChecks(healthCheckConfig.interval);
161
181
  }
162
182
  return orchestrator;
163
183
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,7 +3,9 @@
3
3
  * Main entry point
4
4
  */
5
5
  export { Orchestrator } from './core/orchestrator.js';
6
- export type { AIService, SelectionStrategy, ChatMessage, ChatOptions, ChatResponse, ChatChunk, ProviderHealth, ProviderMetadata, SelectionContext, ProviderConfig, StrategyConfig, OrchestratorConfig, } from './core/interfaces.js';
6
+ export { MetricsCollector } from './core/metrics.js';
7
+ export type { AIService, SelectionStrategy, ChatMessage, ChatOptions, ChatResponse, ChatChunk, ProviderHealth, ProviderMetadata, SelectionContext, ProviderConfig, StrategyConfig, OrchestratorConfig, CircuitBreakerConfig, HealthCheckConfig, } from './core/interfaces.js';
8
+ export type { ProviderMetrics, StrategyMetrics, OrchestratorMetrics, MetricsEvent, MetricsCallback, } from './core/metrics.js';
7
9
  export type { ChatMessage as ChatMessageType, ChatOptions as ChatOptionsType, ChatResponse as ChatResponseType, ChatChunk as ChatChunkType, ProviderHealth as ProviderHealthType, ProviderMetadata as ProviderMetadataType, } from './core/types.js';
8
10
  export { ProviderError, StrategyError, OrchestratorError, ConfigurationError, } from './core/errors.js';
9
11
  export { RoundRobinStrategy, PriorityStrategy, FallbackStrategy, WeightedStrategy, HealthAwareStrategy, } from './strategies/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,YAAY,EACV,SAAS,EACT,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,YAAY,EACZ,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,WAAW,IAAI,eAAe,EAC9B,WAAW,IAAI,eAAe,EAC9B,YAAY,IAAI,gBAAgB,EAChC,SAAS,IAAI,aAAa,EAC1B,cAAc,IAAI,kBAAkB,EACpC,gBAAgB,IAAI,oBAAoB,GACzC,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,YAAY,EACV,SAAS,EACT,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,YAAY,EACZ,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,WAAW,IAAI,eAAe,EAC9B,WAAW,IAAI,eAAe,EAC9B,YAAY,IAAI,gBAAgB,EAChC,SAAS,IAAI,aAAa,EAC1B,cAAc,IAAI,kBAAkB,EACpC,gBAAgB,IAAI,oBAAoB,GACzC,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -4,6 +4,7 @@
4
4
  */
5
5
  // Core exports
6
6
  export { Orchestrator } from './core/orchestrator.js';
7
+ export { MetricsCollector } from './core/metrics.js';
7
8
  // Error exports
8
9
  export { ProviderError, StrategyError, OrchestratorError, ConfigurationError, } from './core/errors.js';
9
10
  // Strategy exports
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAe;AACf,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAyBtD,gBAAgB;AAChB,OAAO,EACL,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAE1B,mBAAmB;AACnB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAQ/B,mBAAmB;AACnB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,aAAa,GACd,MAAM,sBAAsB,CAAC;AAS9B,kBAAkB;AAClB,OAAO,EACL,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAe;AACf,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAkCrD,gBAAgB;AAChB,OAAO,EACL,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAE1B,mBAAmB;AACnB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAQ/B,mBAAmB;AACnB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,aAAa,GACd,MAAM,sBAAsB,CAAC;AAS9B,kBAAkB;AAClB,OAAO,EACL,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cerebras.d.ts","sourceRoot":"","sources":["../../src/providers/cerebras.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACZ,SAAS,EACT,cAAc,EACd,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,sBAAsB;IAgBpC,WAAW,IAAI,OAAO,CAAC,cAAc,CAAC;IAItC,IAAI,CACR,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,YAAY,CAAC;IAoClB,UAAU,CACd,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAwCrC,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO;IAO1D,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,GAAG,YAAY;IAiCxD,SAAS,CAAC,WAAW,CACnB,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,GAC9B,cAAc,CAAC,SAAS,CAAC;CAoE7B"}
1
+ {"version":3,"file":"cerebras.d.ts","sourceRoot":"","sources":["../../src/providers/cerebras.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACZ,SAAS,EACT,cAAc,EACd,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,sBAAsB;IAgBpC,WAAW,IAAI,OAAO,CAAC,cAAc,CAAC;IAItC,IAAI,CACR,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,YAAY,CAAC;IAqDlB,UAAU,CACd,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAyDrC,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO;IAO1D,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,GAAG,YAAY;IAiCxD,SAAS,CAAC,WAAW,CACnB,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,GAC9B,cAAc,CAAC,SAAS,CAAC;CAoE7B"}
@@ -40,8 +40,17 @@ export class CerebrasProvider extends BaseProvider {
40
40
  requestBody.top_p = options.topP;
41
41
  if (options?.stopSequences !== undefined)
42
42
  requestBody.stop = options.stopSequences;
43
- // Add any additional options (excluding camelCase ones we've already converted)
44
- const { maxTokens, topP, stopSequences, ...restOptions } = options || {};
43
+ if (options?.frequencyPenalty !== undefined)
44
+ requestBody.frequency_penalty = options.frequencyPenalty;
45
+ if (options?.presencePenalty !== undefined)
46
+ requestBody.presence_penalty = options.presencePenalty;
47
+ if (options?.seed !== undefined && options.seed !== null)
48
+ requestBody.seed = options.seed;
49
+ if (options?.user !== undefined)
50
+ requestBody.user = options.user;
51
+ // Exclude framework-specific options that shouldn't be sent to the API
52
+ const { maxTokens, topP, stopSequences, responseLanguage, timeout, frequencyPenalty, presencePenalty, seed, user, ...restOptions } = options || {};
53
+ // Add any additional provider-specific options
45
54
  Object.assign(requestBody, restOptions);
46
55
  const response = await fetch(`${this.baseURL}/chat/completions`, {
47
56
  method: 'POST',
@@ -75,8 +84,17 @@ export class CerebrasProvider extends BaseProvider {
75
84
  requestBody.top_p = options.topP;
76
85
  if (options?.stopSequences !== undefined)
77
86
  requestBody.stop = options.stopSequences;
78
- // Add any additional options (excluding camelCase ones we've already converted)
79
- const { maxTokens, topP, stopSequences, ...restOptions } = options || {};
87
+ if (options?.frequencyPenalty !== undefined)
88
+ requestBody.frequency_penalty = options.frequencyPenalty;
89
+ if (options?.presencePenalty !== undefined)
90
+ requestBody.presence_penalty = options.presencePenalty;
91
+ if (options?.seed !== undefined && options.seed !== null)
92
+ requestBody.seed = options.seed;
93
+ if (options?.user !== undefined)
94
+ requestBody.user = options.user;
95
+ // Exclude framework-specific options that shouldn't be sent to the API
96
+ const { maxTokens, topP, stopSequences, responseLanguage, timeout, frequencyPenalty, presencePenalty, seed, user, ...restOptions } = options || {};
97
+ // Add any additional provider-specific options
80
98
  Object.assign(requestBody, restOptions);
81
99
  const response = await fetch(`${this.baseURL}/chat/completions`, {
82
100
  method: 'POST',