@ai-orchestration/core 0.1.0 → 0.3.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 (213) hide show
  1. package/README.md +145 -5
  2. package/dist/cjs/core/errors.d.ts +21 -0
  3. package/dist/cjs/core/errors.d.ts.map +1 -0
  4. package/dist/cjs/core/errors.js +40 -0
  5. package/dist/cjs/core/errors.js.map +1 -0
  6. package/dist/cjs/core/interfaces.d.ts +166 -0
  7. package/dist/cjs/core/interfaces.d.ts.map +1 -0
  8. package/dist/cjs/core/interfaces.js +6 -0
  9. package/dist/cjs/core/interfaces.js.map +1 -0
  10. package/dist/cjs/core/metrics.d.ts +161 -0
  11. package/dist/cjs/core/metrics.d.ts.map +1 -0
  12. package/dist/cjs/core/metrics.js +282 -0
  13. package/dist/cjs/core/metrics.js.map +1 -0
  14. package/dist/cjs/core/orchestrator.d.ts +97 -0
  15. package/dist/cjs/core/orchestrator.d.ts.map +1 -0
  16. package/dist/cjs/core/orchestrator.js +402 -0
  17. package/dist/cjs/core/orchestrator.js.map +1 -0
  18. package/dist/cjs/core/types.d.ts +111 -0
  19. package/dist/cjs/core/types.d.ts.map +1 -0
  20. package/dist/cjs/core/types.js +6 -0
  21. package/dist/cjs/core/types.js.map +1 -0
  22. package/dist/cjs/factory/index.d.ts +14 -0
  23. package/dist/cjs/factory/index.d.ts.map +1 -0
  24. package/dist/cjs/factory/index.js +208 -0
  25. package/dist/cjs/factory/index.js.map +1 -0
  26. package/dist/cjs/index.d.ts +16 -0
  27. package/dist/cjs/index.d.ts.map +1 -0
  28. package/dist/cjs/index.js +37 -0
  29. package/dist/cjs/index.js.map +1 -0
  30. package/dist/cjs/providers/base.d.ts +30 -0
  31. package/dist/cjs/providers/base.d.ts.map +1 -0
  32. package/dist/cjs/providers/base.js +35 -0
  33. package/dist/cjs/providers/base.js.map +1 -0
  34. package/dist/cjs/providers/cerebras.d.ts +26 -0
  35. package/dist/cjs/providers/cerebras.d.ts.map +1 -0
  36. package/dist/cjs/providers/cerebras.js +207 -0
  37. package/dist/cjs/providers/cerebras.js.map +1 -0
  38. package/dist/cjs/providers/gemini.d.ts +26 -0
  39. package/dist/cjs/providers/gemini.d.ts.map +1 -0
  40. package/dist/cjs/providers/gemini.js +180 -0
  41. package/dist/cjs/providers/gemini.js.map +1 -0
  42. package/dist/cjs/providers/groq.d.ts +26 -0
  43. package/dist/cjs/providers/groq.d.ts.map +1 -0
  44. package/dist/cjs/providers/groq.js +242 -0
  45. package/dist/cjs/providers/groq.js.map +1 -0
  46. package/dist/cjs/providers/index.d.ts +15 -0
  47. package/dist/cjs/providers/index.d.ts.map +1 -0
  48. package/dist/cjs/providers/index.js +19 -0
  49. package/dist/cjs/providers/index.js.map +1 -0
  50. package/dist/cjs/providers/local.d.ts +27 -0
  51. package/dist/cjs/providers/local.d.ts.map +1 -0
  52. package/dist/cjs/providers/local.js +205 -0
  53. package/dist/cjs/providers/local.js.map +1 -0
  54. package/dist/cjs/providers/openrouter.d.ts +26 -0
  55. package/dist/cjs/providers/openrouter.d.ts.map +1 -0
  56. package/dist/cjs/providers/openrouter.js +187 -0
  57. package/dist/cjs/providers/openrouter.js.map +1 -0
  58. package/dist/cjs/strategies/base.d.ts +16 -0
  59. package/dist/cjs/strategies/base.d.ts.map +1 -0
  60. package/dist/cjs/strategies/base.js +25 -0
  61. package/dist/cjs/strategies/base.js.map +1 -0
  62. package/dist/cjs/strategies/fallback.d.ts +14 -0
  63. package/dist/cjs/strategies/fallback.d.ts.map +1 -0
  64. package/dist/cjs/strategies/fallback.js +32 -0
  65. package/dist/cjs/strategies/fallback.js.map +1 -0
  66. package/dist/cjs/strategies/health-aware.d.ts +20 -0
  67. package/dist/cjs/strategies/health-aware.d.ts.map +1 -0
  68. package/dist/cjs/strategies/health-aware.js +108 -0
  69. package/dist/cjs/strategies/health-aware.js.map +1 -0
  70. package/dist/cjs/strategies/index.d.ts +14 -0
  71. package/dist/cjs/strategies/index.d.ts.map +1 -0
  72. package/dist/cjs/strategies/index.js +19 -0
  73. package/dist/cjs/strategies/index.js.map +1 -0
  74. package/dist/cjs/strategies/priority.d.ts +18 -0
  75. package/dist/cjs/strategies/priority.d.ts.map +1 -0
  76. package/dist/cjs/strategies/priority.js +39 -0
  77. package/dist/cjs/strategies/priority.js.map +1 -0
  78. package/dist/cjs/strategies/round-robin.d.ts +10 -0
  79. package/dist/cjs/strategies/round-robin.d.ts.map +1 -0
  80. package/dist/cjs/strategies/round-robin.js +28 -0
  81. package/dist/cjs/strategies/round-robin.js.map +1 -0
  82. package/dist/cjs/strategies/weighted.d.ts +20 -0
  83. package/dist/cjs/strategies/weighted.d.ts.map +1 -0
  84. package/dist/cjs/strategies/weighted.js +61 -0
  85. package/dist/cjs/strategies/weighted.js.map +1 -0
  86. package/dist/core/interfaces.d.ts +80 -1
  87. package/dist/core/interfaces.d.ts.map +1 -1
  88. package/dist/core/metrics.d.ts +161 -0
  89. package/dist/core/metrics.d.ts.map +1 -0
  90. package/dist/core/metrics.js +276 -0
  91. package/dist/core/metrics.js.map +1 -0
  92. package/dist/core/orchestrator.d.ts +45 -3
  93. package/dist/core/orchestrator.d.ts.map +1 -1
  94. package/dist/core/orchestrator.js +271 -11
  95. package/dist/core/orchestrator.js.map +1 -1
  96. package/dist/core/types.d.ts +39 -0
  97. package/dist/core/types.d.ts.map +1 -1
  98. package/dist/esm/core/errors.d.ts +21 -0
  99. package/dist/esm/core/errors.d.ts.map +1 -0
  100. package/dist/esm/core/errors.js +33 -0
  101. package/dist/esm/core/errors.js.map +1 -0
  102. package/dist/esm/core/interfaces.d.ts +166 -0
  103. package/dist/esm/core/interfaces.d.ts.map +1 -0
  104. package/dist/esm/core/interfaces.js +5 -0
  105. package/dist/esm/core/interfaces.js.map +1 -0
  106. package/dist/esm/core/metrics.d.ts +161 -0
  107. package/dist/esm/core/metrics.d.ts.map +1 -0
  108. package/dist/esm/core/metrics.js +278 -0
  109. package/dist/esm/core/metrics.js.map +1 -0
  110. package/dist/esm/core/orchestrator.d.ts +97 -0
  111. package/dist/esm/core/orchestrator.d.ts.map +1 -0
  112. package/dist/esm/core/orchestrator.js +398 -0
  113. package/dist/esm/core/orchestrator.js.map +1 -0
  114. package/dist/esm/core/types.d.ts +111 -0
  115. package/dist/esm/core/types.d.ts.map +1 -0
  116. package/dist/esm/core/types.js +5 -0
  117. package/dist/esm/core/types.js.map +1 -0
  118. package/dist/esm/factory/index.d.ts +14 -0
  119. package/dist/esm/factory/index.d.ts.map +1 -0
  120. package/dist/esm/factory/index.js +204 -0
  121. package/dist/esm/factory/index.js.map +1 -0
  122. package/dist/esm/index.d.ts +16 -0
  123. package/dist/esm/index.d.ts.map +1 -0
  124. package/dist/esm/index.js +16 -0
  125. package/dist/esm/index.js.map +1 -0
  126. package/dist/esm/providers/base.d.ts +30 -0
  127. package/dist/esm/providers/base.d.ts.map +1 -0
  128. package/dist/esm/providers/base.js +31 -0
  129. package/dist/esm/providers/base.js.map +1 -0
  130. package/dist/esm/providers/cerebras.d.ts +26 -0
  131. package/dist/esm/providers/cerebras.d.ts.map +1 -0
  132. package/dist/esm/providers/cerebras.js +203 -0
  133. package/dist/esm/providers/cerebras.js.map +1 -0
  134. package/dist/esm/providers/gemini.d.ts +26 -0
  135. package/dist/esm/providers/gemini.d.ts.map +1 -0
  136. package/dist/esm/providers/gemini.js +176 -0
  137. package/dist/esm/providers/gemini.js.map +1 -0
  138. package/dist/esm/providers/groq.d.ts +26 -0
  139. package/dist/esm/providers/groq.d.ts.map +1 -0
  140. package/dist/esm/providers/groq.js +238 -0
  141. package/dist/esm/providers/groq.js.map +1 -0
  142. package/dist/esm/providers/index.d.ts +15 -0
  143. package/dist/esm/providers/index.d.ts.map +1 -0
  144. package/dist/esm/providers/index.js +10 -0
  145. package/dist/esm/providers/index.js.map +1 -0
  146. package/dist/esm/providers/local.d.ts +27 -0
  147. package/dist/esm/providers/local.d.ts.map +1 -0
  148. package/dist/esm/providers/local.js +201 -0
  149. package/dist/esm/providers/local.js.map +1 -0
  150. package/dist/esm/providers/openrouter.d.ts +26 -0
  151. package/dist/esm/providers/openrouter.d.ts.map +1 -0
  152. package/dist/esm/providers/openrouter.js +183 -0
  153. package/dist/esm/providers/openrouter.js.map +1 -0
  154. package/dist/esm/strategies/base.d.ts +16 -0
  155. package/dist/esm/strategies/base.d.ts.map +1 -0
  156. package/dist/esm/strategies/base.js +21 -0
  157. package/dist/esm/strategies/base.js.map +1 -0
  158. package/dist/esm/strategies/fallback.d.ts +14 -0
  159. package/dist/esm/strategies/fallback.d.ts.map +1 -0
  160. package/dist/esm/strategies/fallback.js +28 -0
  161. package/dist/esm/strategies/fallback.js.map +1 -0
  162. package/dist/esm/strategies/health-aware.d.ts +20 -0
  163. package/dist/esm/strategies/health-aware.d.ts.map +1 -0
  164. package/dist/esm/strategies/health-aware.js +104 -0
  165. package/dist/esm/strategies/health-aware.js.map +1 -0
  166. package/dist/esm/strategies/index.d.ts +14 -0
  167. package/dist/esm/strategies/index.d.ts.map +1 -0
  168. package/dist/esm/strategies/index.js +10 -0
  169. package/dist/esm/strategies/index.js.map +1 -0
  170. package/dist/esm/strategies/priority.d.ts +18 -0
  171. package/dist/esm/strategies/priority.d.ts.map +1 -0
  172. package/dist/esm/strategies/priority.js +35 -0
  173. package/dist/esm/strategies/priority.js.map +1 -0
  174. package/dist/esm/strategies/round-robin.d.ts +10 -0
  175. package/dist/esm/strategies/round-robin.d.ts.map +1 -0
  176. package/dist/esm/strategies/round-robin.js +24 -0
  177. package/dist/esm/strategies/round-robin.js.map +1 -0
  178. package/dist/esm/strategies/weighted.d.ts +20 -0
  179. package/dist/esm/strategies/weighted.d.ts.map +1 -0
  180. package/dist/esm/strategies/weighted.js +57 -0
  181. package/dist/esm/strategies/weighted.js.map +1 -0
  182. package/dist/factory/index.d.ts.map +1 -1
  183. package/dist/factory/index.js +27 -7
  184. package/dist/factory/index.js.map +1 -1
  185. package/dist/index.d.ts +3 -1
  186. package/dist/index.d.ts.map +1 -1
  187. package/dist/index.js +1 -0
  188. package/dist/index.js.map +1 -1
  189. package/dist/providers/cerebras.d.ts.map +1 -1
  190. package/dist/providers/cerebras.js +22 -4
  191. package/dist/providers/cerebras.js.map +1 -1
  192. package/dist/providers/groq.d.ts.map +1 -1
  193. package/dist/providers/groq.js +22 -4
  194. package/dist/providers/groq.js.map +1 -1
  195. package/dist/providers/local.d.ts.map +1 -1
  196. package/dist/providers/local.js +9 -1
  197. package/dist/providers/local.js.map +1 -1
  198. package/dist/providers/openrouter.d.ts.map +1 -1
  199. package/dist/providers/openrouter.js +18 -2
  200. package/dist/providers/openrouter.js.map +1 -1
  201. package/docs/CHANGELOG.md +36 -0
  202. package/examples/README.md +205 -0
  203. package/examples/basic.ts +51 -17
  204. package/examples/chat-app/config.json +20 -1
  205. package/examples/chat-app/index.ts +41 -2
  206. package/examples/config.example.json +26 -4
  207. package/examples/language.ts +160 -0
  208. package/examples/metrics.ts +151 -0
  209. package/examples/strategies.ts +4 -2
  210. package/examples/test-local.ts +6 -6
  211. package/package.json +20 -7
  212. package/tsconfig.cjs.json +9 -0
  213. package/tsconfig.esm.json +9 -0
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Health-aware strategy: selects providers based on health metrics (latency, success rate)
3
+ */
4
+ import { BaseStrategy } from './base.js';
5
+ export class HealthAwareStrategy extends BaseStrategy {
6
+ constructor(config) {
7
+ super();
8
+ this.stats = new Map();
9
+ this.preferLowLatency = config?.preferLowLatency ?? true;
10
+ this.minHealthScore = config?.minHealthScore ?? 0;
11
+ }
12
+ async select(providers, context) {
13
+ const available = this.filterAttempted(providers, context);
14
+ if (available.length === 0) {
15
+ return null;
16
+ }
17
+ // Fetch health for all providers
18
+ const healthChecks = await Promise.allSettled(available.map(async (p) => {
19
+ const health = await p.checkHealth();
20
+ return { provider: p, health };
21
+ }));
22
+ // Build stats with health information
23
+ const candidates = [];
24
+ for (const result of healthChecks) {
25
+ if (result.status === 'fulfilled') {
26
+ const { provider, health } = result.value;
27
+ if (!health.healthy)
28
+ continue;
29
+ const stats = this.getOrCreateStats(provider);
30
+ stats.health = health;
31
+ const healthScore = this.calculateHealthScore(stats);
32
+ if (healthScore >= this.minHealthScore) {
33
+ candidates.push(stats);
34
+ }
35
+ }
36
+ }
37
+ if (candidates.length === 0) {
38
+ return null;
39
+ }
40
+ // Sort by health score (and latency if preferred)
41
+ candidates.sort((a, b) => {
42
+ const scoreA = this.calculateHealthScore(a);
43
+ const scoreB = this.calculateHealthScore(b);
44
+ if (scoreA !== scoreB) {
45
+ return scoreB - scoreA; // Higher score first
46
+ }
47
+ // If scores are equal and prefer low latency, sort by latency
48
+ if (this.preferLowLatency) {
49
+ const latencyA = a.health.latency ?? Infinity;
50
+ const latencyB = b.health.latency ?? Infinity;
51
+ return latencyA - latencyB;
52
+ }
53
+ return 0;
54
+ });
55
+ return candidates[0].provider;
56
+ }
57
+ update(provider, success, metadata) {
58
+ const stats = this.getOrCreateStats(provider);
59
+ if (success) {
60
+ stats.successCount++;
61
+ // Update latency if available
62
+ if (metadata && typeof metadata === 'object' && 'latency' in metadata) {
63
+ const latency = Number(metadata.latency);
64
+ if (!isNaN(latency)) {
65
+ stats.avgLatency =
66
+ stats.avgLatency === undefined
67
+ ? latency
68
+ : (stats.avgLatency + latency) / 2;
69
+ }
70
+ }
71
+ }
72
+ else {
73
+ stats.failureCount++;
74
+ }
75
+ }
76
+ getOrCreateStats(provider) {
77
+ let stats = this.stats.get(provider.id);
78
+ if (!stats) {
79
+ stats = {
80
+ provider,
81
+ health: { healthy: true },
82
+ successCount: 0,
83
+ failureCount: 0,
84
+ };
85
+ this.stats.set(provider.id, stats);
86
+ }
87
+ return stats;
88
+ }
89
+ calculateHealthScore(stats) {
90
+ const total = stats.successCount + stats.failureCount;
91
+ if (total === 0) {
92
+ return 1.0; // No data, assume healthy
93
+ }
94
+ const successRate = stats.successCount / total;
95
+ // Factor in latency if available
96
+ let latencyFactor = 1.0;
97
+ if (stats.avgLatency !== undefined) {
98
+ // Normalize latency (assume < 1000ms is good, > 5000ms is bad)
99
+ latencyFactor = Math.max(0, 1 - (stats.avgLatency - 1000) / 4000);
100
+ }
101
+ return successRate * latencyFactor;
102
+ }
103
+ }
104
+ //# sourceMappingURL=health-aware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health-aware.js","sourceRoot":"","sources":["../../../src/strategies/health-aware.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Export all strategies
3
+ */
4
+ export { BaseStrategy } from './base.js';
5
+ export { RoundRobinStrategy } from './round-robin.js';
6
+ export { PriorityStrategy } from './priority.js';
7
+ export type { PriorityStrategyConfig } from './priority.js';
8
+ export { FallbackStrategy } from './fallback.js';
9
+ export type { FallbackStrategyConfig } from './fallback.js';
10
+ export { WeightedStrategy } from './weighted.js';
11
+ export type { WeightedStrategyConfig } from './weighted.js';
12
+ export { HealthAwareStrategy } from './health-aware.js';
13
+ export type { HealthAwareStrategyConfig } from './health-aware.js';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/strategies/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Export all strategies
3
+ */
4
+ export { BaseStrategy } from './base.js';
5
+ export { RoundRobinStrategy } from './round-robin.js';
6
+ export { PriorityStrategy } from './priority.js';
7
+ export { FallbackStrategy } from './fallback.js';
8
+ export { WeightedStrategy } from './weighted.js';
9
+ export { HealthAwareStrategy } from './health-aware.js';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/strategies/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Priority strategy: selects providers based on priority order
3
+ */
4
+ import { BaseStrategy } from './base.js';
5
+ import type { AIService, SelectionContext } from '../core/interfaces.js';
6
+ export interface PriorityStrategyConfig {
7
+ priorities?: Record<string, number>;
8
+ }
9
+ export declare class PriorityStrategy extends BaseStrategy {
10
+ private priorities;
11
+ constructor(config?: PriorityStrategyConfig);
12
+ select(providers: AIService[], context?: SelectionContext): Promise<AIService | null>;
13
+ /**
14
+ * Set priority for a provider
15
+ */
16
+ setPriority(providerId: string, priority: number): void;
17
+ }
18
+ //# sourceMappingURL=priority.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"priority.d.ts","sourceRoot":"","sources":["../../../src/strategies/priority.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzE,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,OAAO,CAAC,UAAU,CAAkC;gBAExC,MAAM,CAAC,EAAE,sBAAsB;IASrC,MAAM,CACV,SAAS,EAAE,SAAS,EAAE,EACtB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAgB5B;;OAEG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;CAGxD"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Priority strategy: selects providers based on priority order
3
+ */
4
+ import { BaseStrategy } from './base.js';
5
+ export class PriorityStrategy extends BaseStrategy {
6
+ constructor(config) {
7
+ super();
8
+ this.priorities = new Map();
9
+ if (config?.priorities) {
10
+ Object.entries(config.priorities).forEach(([id, priority]) => {
11
+ this.priorities.set(id, priority);
12
+ });
13
+ }
14
+ }
15
+ async select(providers, context) {
16
+ const available = this.filterAttempted(providers, context);
17
+ if (available.length === 0) {
18
+ return null;
19
+ }
20
+ // Sort by priority (lower number = higher priority)
21
+ const sorted = [...available].sort((a, b) => {
22
+ const priorityA = this.priorities.get(a.id) ?? 999;
23
+ const priorityB = this.priorities.get(b.id) ?? 999;
24
+ return priorityA - priorityB;
25
+ });
26
+ return sorted[0];
27
+ }
28
+ /**
29
+ * Set priority for a provider
30
+ */
31
+ setPriority(providerId, priority) {
32
+ this.priorities.set(providerId, priority);
33
+ }
34
+ }
35
+ //# sourceMappingURL=priority.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"priority.js","sourceRoot":"","sources":["../../../src/strategies/priority.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAOzC,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAGhD,YAAY,MAA+B;QACzC,KAAK,EAAE,CAAC;QAHF,eAAU,GAAwB,IAAI,GAAG,EAAE,CAAC;QAIlD,IAAI,MAAM,EAAE,UAAU,EAAE,CAAC;YACvB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE;gBAC3D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CACV,SAAsB,EACtB,OAA0B;QAE1B,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC3D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,oDAAoD;QACpD,MAAM,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC;YACnD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC;YACnD,OAAO,SAAS,GAAG,SAAS,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,UAAkB,EAAE,QAAgB;QAC9C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;CACF"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Round-robin strategy: cycles through providers in order
3
+ */
4
+ import { BaseStrategy } from './base.js';
5
+ import type { AIService, SelectionContext } from '../core/interfaces.js';
6
+ export declare class RoundRobinStrategy extends BaseStrategy {
7
+ private currentIndex;
8
+ select(providers: AIService[], context?: SelectionContext): Promise<AIService | null>;
9
+ }
10
+ //# sourceMappingURL=round-robin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"round-robin.d.ts","sourceRoot":"","sources":["../../../src/strategies/round-robin.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzE,qBAAa,kBAAmB,SAAQ,YAAY;IAClD,OAAO,CAAC,YAAY,CAAK;IAEnB,MAAM,CACV,SAAS,EAAE,SAAS,EAAE,EACtB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;CAgB7B"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Round-robin strategy: cycles through providers in order
3
+ */
4
+ import { BaseStrategy } from './base.js';
5
+ export class RoundRobinStrategy extends BaseStrategy {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.currentIndex = 0;
9
+ }
10
+ async select(providers, context) {
11
+ const available = this.filterAttempted(providers, context);
12
+ if (available.length === 0) {
13
+ return null;
14
+ }
15
+ // Reset index if it's out of bounds
16
+ if (this.currentIndex >= available.length) {
17
+ this.currentIndex = 0;
18
+ }
19
+ const selected = available[this.currentIndex];
20
+ this.currentIndex = (this.currentIndex + 1) % available.length;
21
+ return selected;
22
+ }
23
+ }
24
+ //# sourceMappingURL=round-robin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"round-robin.js","sourceRoot":"","sources":["../../../src/strategies/round-robin.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGzC,MAAM,OAAO,kBAAmB,SAAQ,YAAY;IAApD;;QACU,iBAAY,GAAG,CAAC,CAAC;IAqB3B,CAAC;IAnBC,KAAK,CAAC,MAAM,CACV,SAAsB,EACtB,OAA0B;QAE1B,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC3D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,oCAAoC;QACpC,IAAI,IAAI,CAAC,YAAY,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;YAC1C,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACxB,CAAC;QAED,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;QAE/D,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Weighted strategy: selects providers based on weights (for load balancing or cost-aware selection)
3
+ */
4
+ import { BaseStrategy } from './base.js';
5
+ import type { AIService, SelectionContext } from '../core/interfaces.js';
6
+ export interface WeightedStrategyConfig {
7
+ weights?: Record<string, number>;
8
+ costAware?: boolean;
9
+ }
10
+ export declare class WeightedStrategy extends BaseStrategy {
11
+ private weights;
12
+ private costAware;
13
+ constructor(config?: WeightedStrategyConfig);
14
+ select(providers: AIService[], context?: SelectionContext): Promise<AIService | null>;
15
+ /**
16
+ * Set weight for a provider
17
+ */
18
+ setWeight(providerId: string, weight: number): void;
19
+ }
20
+ //# sourceMappingURL=weighted.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"weighted.d.ts","sourceRoot":"","sources":["../../../src/strategies/weighted.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzE,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,SAAS,CAAU;gBAEf,MAAM,CAAC,EAAE,sBAAsB;IAWrC,MAAM,CACV,SAAS,EAAE,SAAS,EAAE,EACtB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IA8C5B;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAGpD"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Weighted strategy: selects providers based on weights (for load balancing or cost-aware selection)
3
+ */
4
+ import { BaseStrategy } from './base.js';
5
+ export class WeightedStrategy extends BaseStrategy {
6
+ constructor(config) {
7
+ super();
8
+ this.weights = new Map();
9
+ this.costAware = config?.costAware ?? false;
10
+ if (config?.weights) {
11
+ Object.entries(config.weights).forEach(([id, weight]) => {
12
+ this.weights.set(id, weight);
13
+ });
14
+ }
15
+ }
16
+ async select(providers, context) {
17
+ const available = this.filterAttempted(providers, context);
18
+ if (available.length === 0) {
19
+ return null;
20
+ }
21
+ // Calculate effective weights
22
+ const weightedProviders = available.map((provider) => {
23
+ let weight = this.weights.get(provider.id) ?? 1.0;
24
+ // Adjust weight based on cost if cost-aware
25
+ if (this.costAware && provider.metadata.costPerToken) {
26
+ const avgCost = (provider.metadata.costPerToken.prompt +
27
+ provider.metadata.costPerToken.completion) /
28
+ 2;
29
+ // Lower cost = higher weight (inverse relationship)
30
+ weight = weight / (avgCost + 0.0001); // Add small epsilon to avoid division by zero
31
+ }
32
+ return { provider, weight };
33
+ });
34
+ // Calculate total weight
35
+ const totalWeight = weightedProviders.reduce((sum, wp) => sum + wp.weight, 0);
36
+ if (totalWeight === 0) {
37
+ return available[0]; // Fallback to first available
38
+ }
39
+ // Select using weighted random
40
+ let random = Math.random() * totalWeight;
41
+ for (const { provider, weight } of weightedProviders) {
42
+ random -= weight;
43
+ if (random <= 0) {
44
+ return provider;
45
+ }
46
+ }
47
+ // Fallback (shouldn't reach here)
48
+ return available[0];
49
+ }
50
+ /**
51
+ * Set weight for a provider
52
+ */
53
+ setWeight(providerId, weight) {
54
+ this.weights.set(providerId, weight);
55
+ }
56
+ }
57
+ //# sourceMappingURL=weighted.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"weighted.js","sourceRoot":"","sources":["../../../src/strategies/weighted.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAQzC,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAIhD,YAAY,MAA+B;QACzC,KAAK,EAAE,CAAC;QAJF,YAAO,GAAwB,IAAI,GAAG,EAAE,CAAC;QAK/C,IAAI,CAAC,SAAS,GAAG,MAAM,EAAE,SAAS,IAAI,KAAK,CAAC;QAE5C,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;gBACtD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CACV,SAAsB,EACtB,OAA0B;QAE1B,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC3D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,8BAA8B;QAC9B,MAAM,iBAAiB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YACnD,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC;YAElD,4CAA4C;YAC5C,IAAI,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;gBACrD,MAAM,OAAO,GACX,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM;oBACpC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC;oBAC5C,CAAC,CAAC;gBACJ,oDAAoD;gBACpD,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,8CAA8C;YACtF,CAAC;YAED,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,yBAAyB;QACzB,MAAM,WAAW,GAAG,iBAAiB,CAAC,MAAM,CAC1C,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,MAAM,EAC5B,CAAC,CACF,CAAC;QAEF,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,8BAA8B;QACrD,CAAC;QAED,+BAA+B;QAC/B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC;QACzC,KAAK,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,iBAAiB,EAAE,CAAC;YACrD,MAAM,IAAI,MAAM,CAAC;YACjB,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;gBAChB,OAAO,QAAQ,CAAC;YAClB,CAAC;QACH,CAAC;QAED,kCAAkC;QAClC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,UAAkB,EAAE,MAAc;QAC1C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;CACF"}
@@ -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',
@@ -1 +1 @@
1
- {"version":3,"file":"cerebras.js","sourceRoot":"","sources":["../../src/providers/cerebras.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cerebras.js","sourceRoot":"","sources":["../../src/providers/cerebras.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"groq.d.ts","sourceRoot":"","sources":["../../src/providers/groq.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,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,YAAa,SAAQ,YAAY;IAC5C,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,kBAAkB;IAehC,WAAW,IAAI,OAAO,CAAC,cAAc,CAAC;IA2CtC,IAAI,CACR,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,YAAY,CAAC;IAmClB,UAAU,CACd,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAuCrC,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":"groq.d.ts","sourceRoot":"","sources":["../../src/providers/groq.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,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,YAAa,SAAQ,YAAY;IAC5C,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,kBAAkB;IAehC,WAAW,IAAI,OAAO,CAAC,cAAc,CAAC;IA2CtC,IAAI,CACR,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,YAAY,CAAC;IAoDlB,UAAU,CACd,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAwDrC,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"}
@@ -77,8 +77,17 @@ export class GroqProvider extends BaseProvider {
77
77
  requestBody.top_p = options.topP;
78
78
  if (options?.stopSequences !== undefined)
79
79
  requestBody.stop = options.stopSequences;
80
- // Add any additional options (excluding camelCase ones we've already converted)
81
- const { maxTokens, topP, stopSequences, ...restOptions } = options || {};
80
+ if (options?.frequencyPenalty !== undefined)
81
+ requestBody.frequency_penalty = options.frequencyPenalty;
82
+ if (options?.presencePenalty !== undefined)
83
+ requestBody.presence_penalty = options.presencePenalty;
84
+ if (options?.seed !== undefined && options.seed !== null)
85
+ requestBody.seed = options.seed;
86
+ if (options?.user !== undefined)
87
+ requestBody.user = options.user;
88
+ // Exclude framework-specific options that shouldn't be sent to the API
89
+ const { maxTokens, topP, stopSequences, responseLanguage, timeout, frequencyPenalty, presencePenalty, seed, user, ...restOptions } = options || {};
90
+ // Add any additional provider-specific options
82
91
  Object.assign(requestBody, restOptions);
83
92
  const response = await fetch(`${this.baseURL}/chat/completions`, {
84
93
  method: 'POST',
@@ -111,8 +120,17 @@ export class GroqProvider extends BaseProvider {
111
120
  requestBody.top_p = options.topP;
112
121
  if (options?.stopSequences !== undefined)
113
122
  requestBody.stop = options.stopSequences;
114
- // Add any additional options (excluding camelCase ones we've already converted)
115
- const { maxTokens, topP, stopSequences, ...restOptions } = options || {};
123
+ if (options?.frequencyPenalty !== undefined)
124
+ requestBody.frequency_penalty = options.frequencyPenalty;
125
+ if (options?.presencePenalty !== undefined)
126
+ requestBody.presence_penalty = options.presencePenalty;
127
+ if (options?.seed !== undefined && options.seed !== null)
128
+ requestBody.seed = options.seed;
129
+ if (options?.user !== undefined)
130
+ requestBody.user = options.user;
131
+ // Exclude framework-specific options that shouldn't be sent to the API
132
+ const { maxTokens, topP, stopSequences, responseLanguage, timeout, frequencyPenalty, presencePenalty, seed, user, ...restOptions } = options || {};
133
+ // Add any additional provider-specific options
116
134
  Object.assign(requestBody, restOptions);
117
135
  const response = await fetch(`${this.baseURL}/chat/completions`, {
118
136
  method: 'POST',