@pga-ai/core 0.4.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 (268) hide show
  1. package/README.md +278 -0
  2. package/dist/PGA.d.ts +156 -0
  3. package/dist/PGA.d.ts.map +1 -0
  4. package/dist/PGA.js +636 -0
  5. package/dist/PGA.js.map +1 -0
  6. package/dist/advanced-ai/ModelRouter.d.ts +82 -0
  7. package/dist/advanced-ai/ModelRouter.d.ts.map +1 -0
  8. package/dist/advanced-ai/ModelRouter.js +280 -0
  9. package/dist/advanced-ai/ModelRouter.js.map +1 -0
  10. package/dist/advanced-ai/ThinkingEngine.d.ts +50 -0
  11. package/dist/advanced-ai/ThinkingEngine.d.ts.map +1 -0
  12. package/dist/advanced-ai/ThinkingEngine.js +179 -0
  13. package/dist/advanced-ai/ThinkingEngine.js.map +1 -0
  14. package/dist/core/ContextMemory.d.ts +56 -0
  15. package/dist/core/ContextMemory.d.ts.map +1 -0
  16. package/dist/core/ContextMemory.js +253 -0
  17. package/dist/core/ContextMemory.js.map +1 -0
  18. package/dist/core/DNAProfile.d.ts +19 -0
  19. package/dist/core/DNAProfile.d.ts.map +1 -0
  20. package/dist/core/DNAProfile.js +141 -0
  21. package/dist/core/DNAProfile.js.map +1 -0
  22. package/dist/core/FitnessTracker.d.ts +13 -0
  23. package/dist/core/FitnessTracker.d.ts.map +1 -0
  24. package/dist/core/FitnessTracker.js +101 -0
  25. package/dist/core/FitnessTracker.js.map +1 -0
  26. package/dist/core/GenomeKernel.d.ts +57 -0
  27. package/dist/core/GenomeKernel.d.ts.map +1 -0
  28. package/dist/core/GenomeKernel.js +305 -0
  29. package/dist/core/GenomeKernel.js.map +1 -0
  30. package/dist/core/GenomeManager.d.ts +21 -0
  31. package/dist/core/GenomeManager.d.ts.map +1 -0
  32. package/dist/core/GenomeManager.js +123 -0
  33. package/dist/core/GenomeManager.js.map +1 -0
  34. package/dist/core/LearningAnnouncer.d.ts +16 -0
  35. package/dist/core/LearningAnnouncer.d.ts.map +1 -0
  36. package/dist/core/LearningAnnouncer.js +176 -0
  37. package/dist/core/LearningAnnouncer.js.map +1 -0
  38. package/dist/core/ProactiveSuggestions.d.ts +25 -0
  39. package/dist/core/ProactiveSuggestions.d.ts.map +1 -0
  40. package/dist/core/ProactiveSuggestions.js +238 -0
  41. package/dist/core/ProactiveSuggestions.js.map +1 -0
  42. package/dist/core/PromptAssembler.d.ts +12 -0
  43. package/dist/core/PromptAssembler.d.ts.map +1 -0
  44. package/dist/core/PromptAssembler.js +74 -0
  45. package/dist/core/PromptAssembler.js.map +1 -0
  46. package/dist/enterprise/AuthManager.d.ts +71 -0
  47. package/dist/enterprise/AuthManager.d.ts.map +1 -0
  48. package/dist/enterprise/AuthManager.js +216 -0
  49. package/dist/enterprise/AuthManager.js.map +1 -0
  50. package/dist/enterprise/RateLimiter.d.ts +48 -0
  51. package/dist/enterprise/RateLimiter.d.ts.map +1 -0
  52. package/dist/enterprise/RateLimiter.js +193 -0
  53. package/dist/enterprise/RateLimiter.js.map +1 -0
  54. package/dist/evaluation/BenchmarkSuites.d.ts +27 -0
  55. package/dist/evaluation/BenchmarkSuites.d.ts.map +1 -0
  56. package/dist/evaluation/BenchmarkSuites.js +69 -0
  57. package/dist/evaluation/BenchmarkSuites.js.map +1 -0
  58. package/dist/evaluation/CalibrationManager.d.ts +66 -0
  59. package/dist/evaluation/CalibrationManager.d.ts.map +1 -0
  60. package/dist/evaluation/CalibrationManager.js +117 -0
  61. package/dist/evaluation/CalibrationManager.js.map +1 -0
  62. package/dist/evaluation/Evaluator.d.ts +79 -0
  63. package/dist/evaluation/Evaluator.d.ts.map +1 -0
  64. package/dist/evaluation/Evaluator.js +359 -0
  65. package/dist/evaluation/Evaluator.js.map +1 -0
  66. package/dist/evaluation/EvolutionGuardrails.d.ts +29 -0
  67. package/dist/evaluation/EvolutionGuardrails.d.ts.map +1 -0
  68. package/dist/evaluation/EvolutionGuardrails.js +166 -0
  69. package/dist/evaluation/EvolutionGuardrails.js.map +1 -0
  70. package/dist/evaluation/SandboxSuites.d.ts +26 -0
  71. package/dist/evaluation/SandboxSuites.d.ts.map +1 -0
  72. package/dist/evaluation/SandboxSuites.js +252 -0
  73. package/dist/evaluation/SandboxSuites.js.map +1 -0
  74. package/dist/evaluation/SemanticJudge.d.ts +21 -0
  75. package/dist/evaluation/SemanticJudge.d.ts.map +1 -0
  76. package/dist/evaluation/SemanticJudge.js +139 -0
  77. package/dist/evaluation/SemanticJudge.js.map +1 -0
  78. package/dist/evaluation/fixtures/core-coding-v1.json +68 -0
  79. package/dist/evaluation/fixtures/core-general-v1.json +68 -0
  80. package/dist/evolution/CanaryDeployment.d.ts +77 -0
  81. package/dist/evolution/CanaryDeployment.d.ts.map +1 -0
  82. package/dist/evolution/CanaryDeployment.js +261 -0
  83. package/dist/evolution/CanaryDeployment.js.map +1 -0
  84. package/dist/evolution/DriftAnalyzer.d.ts +63 -0
  85. package/dist/evolution/DriftAnalyzer.d.ts.map +1 -0
  86. package/dist/evolution/DriftAnalyzer.js +283 -0
  87. package/dist/evolution/DriftAnalyzer.js.map +1 -0
  88. package/dist/evolution/FitnessCalculator.d.ts +47 -0
  89. package/dist/evolution/FitnessCalculator.d.ts.map +1 -0
  90. package/dist/evolution/FitnessCalculator.js +177 -0
  91. package/dist/evolution/FitnessCalculator.js.map +1 -0
  92. package/dist/evolution/MutationOperator.d.ts +76 -0
  93. package/dist/evolution/MutationOperator.d.ts.map +1 -0
  94. package/dist/evolution/MutationOperator.js +267 -0
  95. package/dist/evolution/MutationOperator.js.map +1 -0
  96. package/dist/evolution/PromotionGate.d.ts +45 -0
  97. package/dist/evolution/PromotionGate.d.ts.map +1 -0
  98. package/dist/evolution/PromotionGate.js +248 -0
  99. package/dist/evolution/PromotionGate.js.map +1 -0
  100. package/dist/evolution/boost/EvolutionBoostEngine.d.ts +69 -0
  101. package/dist/evolution/boost/EvolutionBoostEngine.d.ts.map +1 -0
  102. package/dist/evolution/boost/EvolutionBoostEngine.js +185 -0
  103. package/dist/evolution/boost/EvolutionBoostEngine.js.map +1 -0
  104. package/dist/evolution/boost/GeneticRecombinator.d.ts +26 -0
  105. package/dist/evolution/boost/GeneticRecombinator.d.ts.map +1 -0
  106. package/dist/evolution/boost/GeneticRecombinator.js +179 -0
  107. package/dist/evolution/boost/GeneticRecombinator.js.map +1 -0
  108. package/dist/evolution/boost/MetaEvolutionEngine.d.ts +48 -0
  109. package/dist/evolution/boost/MetaEvolutionEngine.d.ts.map +1 -0
  110. package/dist/evolution/boost/MetaEvolutionEngine.js +193 -0
  111. package/dist/evolution/boost/MetaEvolutionEngine.js.map +1 -0
  112. package/dist/evolution/boost/ParallelEvolutionEngine.d.ts +44 -0
  113. package/dist/evolution/boost/ParallelEvolutionEngine.d.ts.map +1 -0
  114. package/dist/evolution/boost/ParallelEvolutionEngine.js +135 -0
  115. package/dist/evolution/boost/ParallelEvolutionEngine.js.map +1 -0
  116. package/dist/evolution/boost/ParetoOptimizer.d.ts +42 -0
  117. package/dist/evolution/boost/ParetoOptimizer.d.ts.map +1 -0
  118. package/dist/evolution/boost/ParetoOptimizer.js +167 -0
  119. package/dist/evolution/boost/ParetoOptimizer.js.map +1 -0
  120. package/dist/evolution/boost/operators/BreakthroughOperator.d.ts +22 -0
  121. package/dist/evolution/boost/operators/BreakthroughOperator.d.ts.map +1 -0
  122. package/dist/evolution/boost/operators/BreakthroughOperator.js +217 -0
  123. package/dist/evolution/boost/operators/BreakthroughOperator.js.map +1 -0
  124. package/dist/evolution/boost/operators/CrossoverMutationOperator.d.ts +26 -0
  125. package/dist/evolution/boost/operators/CrossoverMutationOperator.d.ts.map +1 -0
  126. package/dist/evolution/boost/operators/CrossoverMutationOperator.js +160 -0
  127. package/dist/evolution/boost/operators/CrossoverMutationOperator.js.map +1 -0
  128. package/dist/evolution/boost/operators/PatternExtractionOperator.d.ts +24 -0
  129. package/dist/evolution/boost/operators/PatternExtractionOperator.d.ts.map +1 -0
  130. package/dist/evolution/boost/operators/PatternExtractionOperator.js +212 -0
  131. package/dist/evolution/boost/operators/PatternExtractionOperator.js.map +1 -0
  132. package/dist/evolution/boost/operators/SemanticRestructuringOperator.d.ts +19 -0
  133. package/dist/evolution/boost/operators/SemanticRestructuringOperator.d.ts.map +1 -0
  134. package/dist/evolution/boost/operators/SemanticRestructuringOperator.js +106 -0
  135. package/dist/evolution/boost/operators/SemanticRestructuringOperator.js.map +1 -0
  136. package/dist/gene-bank/CognitiveGene.d.ts +799 -0
  137. package/dist/gene-bank/CognitiveGene.d.ts.map +1 -0
  138. package/dist/gene-bank/CognitiveGene.js +128 -0
  139. package/dist/gene-bank/CognitiveGene.js.map +1 -0
  140. package/dist/gene-bank/GeneAdopter.d.ts +75 -0
  141. package/dist/gene-bank/GeneAdopter.d.ts.map +1 -0
  142. package/dist/gene-bank/GeneAdopter.js +271 -0
  143. package/dist/gene-bank/GeneAdopter.js.map +1 -0
  144. package/dist/gene-bank/GeneBank.d.ts +124 -0
  145. package/dist/gene-bank/GeneBank.d.ts.map +1 -0
  146. package/dist/gene-bank/GeneBank.js +261 -0
  147. package/dist/gene-bank/GeneBank.js.map +1 -0
  148. package/dist/gene-bank/GeneExtractor.d.ts +59 -0
  149. package/dist/gene-bank/GeneExtractor.d.ts.map +1 -0
  150. package/dist/gene-bank/GeneExtractor.js +311 -0
  151. package/dist/gene-bank/GeneExtractor.js.map +1 -0
  152. package/dist/gene-bank/GeneMatcher.d.ts +82 -0
  153. package/dist/gene-bank/GeneMatcher.d.ts.map +1 -0
  154. package/dist/gene-bank/GeneMatcher.js +215 -0
  155. package/dist/gene-bank/GeneMatcher.js.map +1 -0
  156. package/dist/gene-bank/PGAIntegration.d.ts +53 -0
  157. package/dist/gene-bank/PGAIntegration.d.ts.map +1 -0
  158. package/dist/gene-bank/PGAIntegration.js +139 -0
  159. package/dist/gene-bank/PGAIntegration.js.map +1 -0
  160. package/dist/gene-bank/SandboxTester.d.ts +92 -0
  161. package/dist/gene-bank/SandboxTester.d.ts.map +1 -0
  162. package/dist/gene-bank/SandboxTester.js +262 -0
  163. package/dist/gene-bank/SandboxTester.js.map +1 -0
  164. package/dist/gene-bank/adapters/InMemoryGeneStorage.d.ts +21 -0
  165. package/dist/gene-bank/adapters/InMemoryGeneStorage.d.ts.map +1 -0
  166. package/dist/gene-bank/adapters/InMemoryGeneStorage.js +115 -0
  167. package/dist/gene-bank/adapters/InMemoryGeneStorage.js.map +1 -0
  168. package/dist/gene-bank/adapters/PostgresGeneStorage.d.ts +21 -0
  169. package/dist/gene-bank/adapters/PostgresGeneStorage.d.ts.map +1 -0
  170. package/dist/gene-bank/adapters/PostgresGeneStorage.js +272 -0
  171. package/dist/gene-bank/adapters/PostgresGeneStorage.js.map +1 -0
  172. package/dist/gene-bank/index.d.ts +7 -0
  173. package/dist/gene-bank/index.d.ts.map +1 -0
  174. package/dist/gene-bank/index.js +7 -0
  175. package/dist/gene-bank/index.js.map +1 -0
  176. package/dist/index.d.ts +72 -0
  177. package/dist/index.d.ts.map +1 -0
  178. package/dist/index.js +37 -0
  179. package/dist/index.js.map +1 -0
  180. package/dist/interfaces/LLMAdapter.d.ts +31 -0
  181. package/dist/interfaces/LLMAdapter.d.ts.map +1 -0
  182. package/dist/interfaces/LLMAdapter.js +2 -0
  183. package/dist/interfaces/LLMAdapter.js.map +1 -0
  184. package/dist/interfaces/StorageAdapter.d.ts +49 -0
  185. package/dist/interfaces/StorageAdapter.d.ts.map +1 -0
  186. package/dist/interfaces/StorageAdapter.js +2 -0
  187. package/dist/interfaces/StorageAdapter.js.map +1 -0
  188. package/dist/memory/LayeredMemory.d.ts +112 -0
  189. package/dist/memory/LayeredMemory.d.ts.map +1 -0
  190. package/dist/memory/LayeredMemory.js +405 -0
  191. package/dist/memory/LayeredMemory.js.map +1 -0
  192. package/dist/memory-compaction/MemoryCompactor.d.ts +18 -0
  193. package/dist/memory-compaction/MemoryCompactor.d.ts.map +1 -0
  194. package/dist/memory-compaction/MemoryCompactor.js +156 -0
  195. package/dist/memory-compaction/MemoryCompactor.js.map +1 -0
  196. package/dist/memory-compaction/index.d.ts +6 -0
  197. package/dist/memory-compaction/index.d.ts.map +1 -0
  198. package/dist/memory-compaction/index.js +5 -0
  199. package/dist/memory-compaction/index.js.map +1 -0
  200. package/dist/memory-compaction/strategies/BaseStrategy.d.ts +9 -0
  201. package/dist/memory-compaction/strategies/BaseStrategy.d.ts.map +1 -0
  202. package/dist/memory-compaction/strategies/BaseStrategy.js +50 -0
  203. package/dist/memory-compaction/strategies/BaseStrategy.js.map +1 -0
  204. package/dist/memory-compaction/strategies/ImportanceBasedStrategy.d.ts +9 -0
  205. package/dist/memory-compaction/strategies/ImportanceBasedStrategy.d.ts.map +1 -0
  206. package/dist/memory-compaction/strategies/ImportanceBasedStrategy.js +101 -0
  207. package/dist/memory-compaction/strategies/ImportanceBasedStrategy.js.map +1 -0
  208. package/dist/memory-compaction/strategies/SlidingWindowStrategy.d.ts +9 -0
  209. package/dist/memory-compaction/strategies/SlidingWindowStrategy.d.ts.map +1 -0
  210. package/dist/memory-compaction/strategies/SlidingWindowStrategy.js +87 -0
  211. package/dist/memory-compaction/strategies/SlidingWindowStrategy.js.map +1 -0
  212. package/dist/memory-compaction/types.d.ts +78 -0
  213. package/dist/memory-compaction/types.d.ts.map +1 -0
  214. package/dist/memory-compaction/types.js +2 -0
  215. package/dist/memory-compaction/types.js.map +1 -0
  216. package/dist/monitoring/AlertWebhooks.d.ts +57 -0
  217. package/dist/monitoring/AlertWebhooks.d.ts.map +1 -0
  218. package/dist/monitoring/AlertWebhooks.js +205 -0
  219. package/dist/monitoring/AlertWebhooks.js.map +1 -0
  220. package/dist/monitoring/MetricsCollector.d.ts +120 -0
  221. package/dist/monitoring/MetricsCollector.d.ts.map +1 -0
  222. package/dist/monitoring/MetricsCollector.js +274 -0
  223. package/dist/monitoring/MetricsCollector.js.map +1 -0
  224. package/dist/monitoring/MonitoringDashboard.d.ts +38 -0
  225. package/dist/monitoring/MonitoringDashboard.d.ts.map +1 -0
  226. package/dist/monitoring/MonitoringDashboard.js +271 -0
  227. package/dist/monitoring/MonitoringDashboard.js.map +1 -0
  228. package/dist/plugins/PluginManager.d.ts +61 -0
  229. package/dist/plugins/PluginManager.d.ts.map +1 -0
  230. package/dist/plugins/PluginManager.js +154 -0
  231. package/dist/plugins/PluginManager.js.map +1 -0
  232. package/dist/rag/RAGEngine.d.ts +54 -0
  233. package/dist/rag/RAGEngine.d.ts.map +1 -0
  234. package/dist/rag/RAGEngine.js +162 -0
  235. package/dist/rag/RAGEngine.js.map +1 -0
  236. package/dist/rag/VectorStoreAdapter.d.ts +40 -0
  237. package/dist/rag/VectorStoreAdapter.d.ts.map +1 -0
  238. package/dist/rag/VectorStoreAdapter.js +106 -0
  239. package/dist/rag/VectorStoreAdapter.js.map +1 -0
  240. package/dist/realtime/EventEmitter.d.ts +86 -0
  241. package/dist/realtime/EventEmitter.d.ts.map +1 -0
  242. package/dist/realtime/EventEmitter.js +173 -0
  243. package/dist/realtime/EventEmitter.js.map +1 -0
  244. package/dist/realtime/StreamingManager.d.ts +26 -0
  245. package/dist/realtime/StreamingManager.d.ts.map +1 -0
  246. package/dist/realtime/StreamingManager.js +175 -0
  247. package/dist/realtime/StreamingManager.js.map +1 -0
  248. package/dist/reasoning/ReasoningEngine.d.ts +57 -0
  249. package/dist/reasoning/ReasoningEngine.d.ts.map +1 -0
  250. package/dist/reasoning/ReasoningEngine.js +316 -0
  251. package/dist/reasoning/ReasoningEngine.js.map +1 -0
  252. package/dist/resilience/CircuitBreaker.d.ts +41 -0
  253. package/dist/resilience/CircuitBreaker.d.ts.map +1 -0
  254. package/dist/resilience/CircuitBreaker.js +108 -0
  255. package/dist/resilience/CircuitBreaker.js.map +1 -0
  256. package/dist/resilience/RetryManager.d.ts +14 -0
  257. package/dist/resilience/RetryManager.d.ts.map +1 -0
  258. package/dist/resilience/RetryManager.js +35 -0
  259. package/dist/resilience/RetryManager.js.map +1 -0
  260. package/dist/types/GenomeV2.d.ts +226 -0
  261. package/dist/types/GenomeV2.d.ts.map +1 -0
  262. package/dist/types/GenomeV2.js +2 -0
  263. package/dist/types/GenomeV2.js.map +1 -0
  264. package/dist/types/index.d.ts +205 -0
  265. package/dist/types/index.d.ts.map +1 -0
  266. package/dist/types/index.js +2 -0
  267. package/dist/types/index.js.map +1 -0
  268. package/package.json +75 -0
@@ -0,0 +1,175 @@
1
+ export class StreamingManager {
2
+ async *streamText(content, options = {}) {
3
+ const bufferSize = options.bufferSize || 50;
4
+ const chunkDelay = options.chunkDelay || 0;
5
+ let index = 0;
6
+ for (let i = 0; i < content.length; i += bufferSize) {
7
+ const data = content.slice(i, i + bufferSize);
8
+ const done = i + bufferSize >= content.length;
9
+ const chunk = {
10
+ data,
11
+ index: index++,
12
+ done,
13
+ };
14
+ if (options.onChunk) {
15
+ try {
16
+ options.onChunk(chunk);
17
+ }
18
+ catch (error) {
19
+ if (options.onError) {
20
+ options.onError(error);
21
+ }
22
+ }
23
+ }
24
+ yield chunk;
25
+ if (chunkDelay > 0 && !done) {
26
+ await new Promise((resolve) => setTimeout(resolve, chunkDelay));
27
+ }
28
+ }
29
+ if (options.onComplete) {
30
+ try {
31
+ options.onComplete();
32
+ }
33
+ catch (error) {
34
+ if (options.onError) {
35
+ options.onError(error);
36
+ }
37
+ }
38
+ }
39
+ }
40
+ async *streamArray(items, options = {}) {
41
+ const chunkDelay = options.chunkDelay || 0;
42
+ for (let i = 0; i < items.length; i++) {
43
+ const chunk = {
44
+ data: items[i],
45
+ index: i,
46
+ done: i === items.length - 1,
47
+ };
48
+ if (options.onChunk) {
49
+ try {
50
+ options.onChunk(chunk);
51
+ }
52
+ catch (error) {
53
+ if (options.onError) {
54
+ options.onError(error);
55
+ }
56
+ }
57
+ }
58
+ yield chunk;
59
+ if (chunkDelay > 0 && i < items.length - 1) {
60
+ await new Promise((resolve) => setTimeout(resolve, chunkDelay));
61
+ }
62
+ }
63
+ if (options.onComplete) {
64
+ try {
65
+ options.onComplete();
66
+ }
67
+ catch (error) {
68
+ if (options.onError) {
69
+ options.onError(error);
70
+ }
71
+ }
72
+ }
73
+ }
74
+ async *bufferStream(stream, bufferSize) {
75
+ let buffer = [];
76
+ let index = 0;
77
+ for await (const chunk of stream) {
78
+ buffer.push(chunk.data);
79
+ if (buffer.length >= bufferSize || chunk.done) {
80
+ yield {
81
+ data: buffer,
82
+ index: index++,
83
+ done: chunk.done,
84
+ };
85
+ buffer = [];
86
+ }
87
+ }
88
+ if (buffer.length > 0) {
89
+ yield {
90
+ data: buffer,
91
+ index: index++,
92
+ done: true,
93
+ };
94
+ }
95
+ }
96
+ async *mapStream(stream, mapper) {
97
+ let index = 0;
98
+ for await (const chunk of stream) {
99
+ const mappedData = await mapper(chunk.data);
100
+ yield {
101
+ data: mappedData,
102
+ index: index++,
103
+ done: chunk.done,
104
+ metadata: chunk.metadata,
105
+ };
106
+ }
107
+ }
108
+ async *filterStream(stream, predicate) {
109
+ let index = 0;
110
+ for await (const chunk of stream) {
111
+ const shouldInclude = await predicate(chunk.data);
112
+ if (shouldInclude) {
113
+ yield {
114
+ data: chunk.data,
115
+ index: index++,
116
+ done: chunk.done,
117
+ metadata: chunk.metadata,
118
+ };
119
+ }
120
+ }
121
+ }
122
+ async collectStream(stream) {
123
+ const result = [];
124
+ for await (const chunk of stream) {
125
+ result.push(chunk.data);
126
+ }
127
+ return result;
128
+ }
129
+ async *mergeStreams(...streams) {
130
+ let index = 0;
131
+ for (const stream of streams) {
132
+ for await (const chunk of stream) {
133
+ yield {
134
+ data: chunk.data,
135
+ index: index++,
136
+ done: false,
137
+ metadata: chunk.metadata,
138
+ };
139
+ }
140
+ }
141
+ yield {
142
+ data: '',
143
+ index: index,
144
+ done: true,
145
+ };
146
+ }
147
+ async *takeStream(stream, count) {
148
+ let taken = 0;
149
+ for await (const chunk of stream) {
150
+ if (taken >= count) {
151
+ break;
152
+ }
153
+ yield {
154
+ ...chunk,
155
+ done: taken === count - 1 || chunk.done,
156
+ };
157
+ taken++;
158
+ }
159
+ }
160
+ async *rateLimitStream(stream, maxChunksPerSecond) {
161
+ const delayMs = 1000 / maxChunksPerSecond;
162
+ let lastChunkTime = 0;
163
+ for await (const chunk of stream) {
164
+ const now = Date.now();
165
+ const timeSinceLastChunk = now - lastChunkTime;
166
+ if (timeSinceLastChunk < delayMs) {
167
+ await new Promise((resolve) => setTimeout(resolve, delayMs - timeSinceLastChunk));
168
+ }
169
+ lastChunkTime = Date.now();
170
+ yield chunk;
171
+ }
172
+ }
173
+ }
174
+ export const globalStreaming = new StreamingManager();
175
+ //# sourceMappingURL=StreamingManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StreamingManager.js","sourceRoot":"","sources":["../../src/realtime/StreamingManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import type { LLMAdapter } from '../interfaces/LLMAdapter.js';
2
+ import type { MetricsCollector } from '../monitoring/MetricsCollector.js';
3
+ export type ReasoningStrategy = 'direct' | 'chain-of-thought' | 'self-consistency' | 'tree-of-thoughts' | 'reflection' | 'auto';
4
+ export interface ReasoningResult {
5
+ strategy: ReasoningStrategy;
6
+ answer: string;
7
+ reasoning: string[];
8
+ confidence: number;
9
+ tokensUsed: number;
10
+ durationMs: number;
11
+ }
12
+ export interface ReasoningConfig {
13
+ defaultStrategy: ReasoningStrategy;
14
+ chainOfThought?: {
15
+ minSteps: number;
16
+ maxSteps: number;
17
+ showSteps: boolean;
18
+ };
19
+ selfConsistency?: {
20
+ numPaths: number;
21
+ votingMethod: 'majority' | 'weighted';
22
+ };
23
+ treeOfThoughts?: {
24
+ maxDepth: number;
25
+ branchingFactor: number;
26
+ };
27
+ reflection?: {
28
+ maxIterations: number;
29
+ improvementThreshold: number;
30
+ };
31
+ auto?: {
32
+ costThreshold: number;
33
+ qualityTarget: number;
34
+ };
35
+ }
36
+ export declare class ReasoningEngine {
37
+ private llm;
38
+ private metricsCollector?;
39
+ private config;
40
+ constructor(llm: LLMAdapter, config?: Partial<ReasoningConfig>, metricsCollector?: MetricsCollector | undefined);
41
+ reason(question: string, context: string, strategy?: ReasoningStrategy): Promise<ReasoningResult>;
42
+ private directReasoning;
43
+ private chainOfThoughtReasoning;
44
+ private selfConsistencyReasoning;
45
+ private treeOfThoughtsReasoning;
46
+ private reflectionReasoning;
47
+ private autoSelectStrategy;
48
+ private extractReasoningSteps;
49
+ private extractFinalAnswer;
50
+ private extractApproaches;
51
+ private voteOnAnswers;
52
+ private normalizeAnswer;
53
+ private isSimilar;
54
+ private analyzeQuestionComplexity;
55
+ private estimateTokens;
56
+ }
57
+ //# sourceMappingURL=ReasoningEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReasoningEngine.d.ts","sourceRoot":"","sources":["../../src/reasoning/ReasoningEngine.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAI1E,MAAM,MAAM,iBAAiB,GACvB,QAAQ,GACR,kBAAkB,GAClB,kBAAkB,GAClB,kBAAkB,GAClB,YAAY,GACZ,MAAM,CAAC;AAEb,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACtB;AAID,MAAM,WAAW,eAAe;IAC5B,eAAe,EAAE,iBAAiB,CAAC;IAEnC,cAAc,CAAC,EAAE;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;KACtB,CAAC;IAEF,eAAe,CAAC,EAAE;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,UAAU,GAAG,UAAU,CAAC;KACzC,CAAC;IAEF,cAAc,CAAC,EAAE;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,eAAe,EAAE,MAAM,CAAC;KAC3B,CAAC;IAEF,UAAU,CAAC,EAAE;QACT,aAAa,EAAE,MAAM,CAAC;QACtB,oBAAoB,EAAE,MAAM,CAAC;KAChC,CAAC;IAEF,IAAI,CAAC,EAAE;QACH,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;KACzB,CAAC;CACL;AAID,qBAAa,eAAe;IAIpB,OAAO,CAAC,GAAG;IAEX,OAAO,CAAC,gBAAgB,CAAC;IAL7B,OAAO,CAAC,MAAM,CAAkB;gBAGpB,GAAG,EAAE,UAAU,EACvB,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,EACzB,gBAAgB,CAAC,EAAE,gBAAgB,YAAA;IAoCzC,MAAM,CACR,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,iBAAiB,GAC7B,OAAO,CAAC,eAAe,CAAC;YAmFb,eAAe;YAqBf,uBAAuB;YAmCvB,wBAAwB;YA2BxB,uBAAuB;YAgCvB,mBAAmB;YAkDnB,kBAAkB;IAoBhC,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,aAAa;IAsBrB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,yBAAyB;IAuBjC,OAAO,CAAC,cAAc;CAGzB"}
@@ -0,0 +1,316 @@
1
+ export class ReasoningEngine {
2
+ llm;
3
+ metricsCollector;
4
+ config;
5
+ constructor(llm, config, metricsCollector) {
6
+ this.llm = llm;
7
+ this.metricsCollector = metricsCollector;
8
+ this.config = {
9
+ defaultStrategy: config?.defaultStrategy || 'chain-of-thought',
10
+ chainOfThought: {
11
+ minSteps: 3,
12
+ maxSteps: 10,
13
+ showSteps: true,
14
+ ...config?.chainOfThought,
15
+ },
16
+ selfConsistency: {
17
+ numPaths: 3,
18
+ votingMethod: 'majority',
19
+ ...config?.selfConsistency,
20
+ },
21
+ treeOfThoughts: {
22
+ maxDepth: 3,
23
+ branchingFactor: 3,
24
+ ...config?.treeOfThoughts,
25
+ },
26
+ reflection: {
27
+ maxIterations: 3,
28
+ improvementThreshold: 0.1,
29
+ ...config?.reflection,
30
+ },
31
+ auto: {
32
+ costThreshold: 0.01,
33
+ qualityTarget: 0.8,
34
+ ...config?.auto,
35
+ },
36
+ };
37
+ }
38
+ async reason(question, context, strategy) {
39
+ const selectedStrategy = strategy || this.config.defaultStrategy;
40
+ const startTime = Date.now();
41
+ try {
42
+ let result;
43
+ switch (selectedStrategy) {
44
+ case 'direct':
45
+ result = await this.directReasoning(question, context);
46
+ break;
47
+ case 'chain-of-thought':
48
+ result = await this.chainOfThoughtReasoning(question, context);
49
+ break;
50
+ case 'self-consistency':
51
+ result = await this.selfConsistencyReasoning(question, context);
52
+ break;
53
+ case 'tree-of-thoughts':
54
+ result = await this.treeOfThoughtsReasoning(question, context);
55
+ break;
56
+ case 'reflection':
57
+ result = await this.reflectionReasoning(question, context);
58
+ break;
59
+ case 'auto':
60
+ result = await this.autoSelectStrategy(question, context);
61
+ break;
62
+ default:
63
+ result = await this.chainOfThoughtReasoning(question, context);
64
+ }
65
+ result.durationMs = Date.now() - startTime;
66
+ this.metricsCollector?.logAudit({
67
+ level: 'info',
68
+ component: 'ReasoningEngine',
69
+ operation: 'reason',
70
+ message: `Completed ${result.strategy} reasoning`,
71
+ duration: result.durationMs,
72
+ metadata: {
73
+ strategy: result.strategy,
74
+ questionLength: question.length,
75
+ contextLength: context.length,
76
+ confidence: result.confidence,
77
+ tokensUsed: result.tokensUsed,
78
+ reasoningSteps: result.reasoning.length,
79
+ answerLength: result.answer.length,
80
+ },
81
+ });
82
+ return result;
83
+ }
84
+ catch (error) {
85
+ const duration = Date.now() - startTime;
86
+ this.metricsCollector?.logAudit({
87
+ level: 'error',
88
+ component: 'ReasoningEngine',
89
+ operation: 'reason',
90
+ message: 'Failed to complete reasoning',
91
+ duration,
92
+ metadata: {
93
+ strategy: selectedStrategy,
94
+ questionLength: question.length,
95
+ },
96
+ error: error instanceof Error ? {
97
+ name: error.name,
98
+ message: error.message,
99
+ stack: error.stack,
100
+ } : {
101
+ name: 'UnknownError',
102
+ message: String(error),
103
+ },
104
+ });
105
+ throw error;
106
+ }
107
+ }
108
+ async directReasoning(question, context) {
109
+ const prompt = `${context}\n\nQuestion: ${question}\n\nAnswer:`;
110
+ const response = await this.llm.chat([
111
+ { role: 'system', content: prompt },
112
+ { role: 'user', content: question },
113
+ ]);
114
+ return {
115
+ strategy: 'direct',
116
+ answer: response.content,
117
+ reasoning: [],
118
+ confidence: 0.7,
119
+ tokensUsed: this.estimateTokens(prompt + response.content),
120
+ durationMs: 0,
121
+ };
122
+ }
123
+ async chainOfThoughtReasoning(question, context) {
124
+ const prompt = `${context}
125
+
126
+ Question: ${question}
127
+
128
+ IMPORTANT: Think step by step before providing your final answer.
129
+
130
+ Format your response as:
131
+ Step 1: [First reasoning step]
132
+ Step 2: [Second reasoning step]
133
+ ...
134
+ Final Answer: [Your answer]`;
135
+ const response = await this.llm.chat([
136
+ { role: 'system', content: prompt },
137
+ { role: 'user', content: question },
138
+ ]);
139
+ const steps = this.extractReasoningSteps(response.content);
140
+ const finalAnswer = this.extractFinalAnswer(response.content);
141
+ return {
142
+ strategy: 'chain-of-thought',
143
+ answer: finalAnswer,
144
+ reasoning: steps,
145
+ confidence: 0.85,
146
+ tokensUsed: this.estimateTokens(prompt + response.content),
147
+ durationMs: 0,
148
+ };
149
+ }
150
+ async selfConsistencyReasoning(question, context) {
151
+ const numPaths = this.config.selfConsistency.numPaths;
152
+ const paths = [];
153
+ for (let i = 0; i < numPaths; i++) {
154
+ const result = await this.chainOfThoughtReasoning(question, context);
155
+ paths.push(result);
156
+ }
157
+ const votedAnswer = this.voteOnAnswers(paths);
158
+ const allSteps = paths.flatMap(p => p.reasoning);
159
+ return {
160
+ strategy: 'self-consistency',
161
+ answer: votedAnswer,
162
+ reasoning: allSteps,
163
+ confidence: 0.9,
164
+ tokensUsed: paths.reduce((sum, p) => sum + p.tokensUsed, 0),
165
+ durationMs: 0,
166
+ };
167
+ }
168
+ async treeOfThoughtsReasoning(question, context) {
169
+ const prompt = `${context}
170
+
171
+ Question: ${question}
172
+
173
+ Generate 3 different approaches to solve this problem:
174
+ Approach 1: [Description]
175
+ Approach 2: [Description]
176
+ Approach 3: [Description]
177
+
178
+ For each approach, evaluate its pros and cons, then select the best one.`;
179
+ const response = await this.llm.chat([
180
+ { role: 'system', content: prompt },
181
+ { role: 'user', content: question },
182
+ ]);
183
+ const approaches = this.extractApproaches(response.content);
184
+ return {
185
+ strategy: 'tree-of-thoughts',
186
+ answer: response.content,
187
+ reasoning: approaches,
188
+ confidence: 0.88,
189
+ tokensUsed: this.estimateTokens(prompt + response.content),
190
+ durationMs: 0,
191
+ };
192
+ }
193
+ async reflectionReasoning(question, context) {
194
+ let currentAnswer = '';
195
+ let iterations = 0;
196
+ const maxIterations = this.config.reflection.maxIterations;
197
+ const reasoning = [];
198
+ const initial = await this.chainOfThoughtReasoning(question, context);
199
+ currentAnswer = initial.answer;
200
+ reasoning.push(`Initial answer: ${currentAnswer}`);
201
+ for (let i = 0; i < maxIterations; i++) {
202
+ const critiquePrompt = `${context}
203
+
204
+ Question: ${question}
205
+ Current Answer: ${currentAnswer}
206
+
207
+ Critique the above answer. What could be improved? Provide a better answer.`;
208
+ const critique = await this.llm.chat([
209
+ { role: 'system', content: critiquePrompt },
210
+ { role: 'user', content: question },
211
+ ]);
212
+ const improved = this.extractFinalAnswer(critique.content);
213
+ reasoning.push(`Iteration ${i + 1}: ${improved}`);
214
+ if (this.isSimilar(currentAnswer, improved)) {
215
+ break;
216
+ }
217
+ currentAnswer = improved;
218
+ iterations++;
219
+ }
220
+ return {
221
+ strategy: 'reflection',
222
+ answer: currentAnswer,
223
+ reasoning,
224
+ confidence: 0.92,
225
+ tokensUsed: this.estimateTokens(context + currentAnswer) * (iterations + 1),
226
+ durationMs: 0,
227
+ };
228
+ }
229
+ async autoSelectStrategy(question, context) {
230
+ const complexity = this.analyzeQuestionComplexity(question);
231
+ let selectedStrategy;
232
+ if (complexity < 0.3) {
233
+ selectedStrategy = 'direct';
234
+ }
235
+ else if (complexity < 0.6) {
236
+ selectedStrategy = 'chain-of-thought';
237
+ }
238
+ else if (complexity < 0.8) {
239
+ selectedStrategy = 'self-consistency';
240
+ }
241
+ else {
242
+ selectedStrategy = 'reflection';
243
+ }
244
+ return await this.reason(question, context, selectedStrategy);
245
+ }
246
+ extractReasoningSteps(response) {
247
+ const steps = [];
248
+ const lines = response.split('\n');
249
+ for (const line of lines) {
250
+ if (line.match(/^Step \d+:/i)) {
251
+ steps.push(line);
252
+ }
253
+ }
254
+ return steps;
255
+ }
256
+ extractFinalAnswer(response) {
257
+ const match = response.match(/Final Answer:(.+?)(?:\n|$)/is);
258
+ if (match) {
259
+ return match[1].trim();
260
+ }
261
+ const paragraphs = response.split('\n\n');
262
+ return paragraphs[paragraphs.length - 1].trim();
263
+ }
264
+ extractApproaches(response) {
265
+ const approaches = [];
266
+ const lines = response.split('\n');
267
+ for (const line of lines) {
268
+ if (line.match(/^Approach \d+:/i)) {
269
+ approaches.push(line);
270
+ }
271
+ }
272
+ return approaches;
273
+ }
274
+ voteOnAnswers(paths) {
275
+ const answerCounts = new Map();
276
+ for (const path of paths) {
277
+ const normalized = this.normalizeAnswer(path.answer);
278
+ answerCounts.set(normalized, (answerCounts.get(normalized) || 0) + 1);
279
+ }
280
+ let maxCount = 0;
281
+ let winner = '';
282
+ for (const [answer, count] of answerCounts.entries()) {
283
+ if (count > maxCount) {
284
+ maxCount = count;
285
+ winner = answer;
286
+ }
287
+ }
288
+ return winner;
289
+ }
290
+ normalizeAnswer(answer) {
291
+ return answer.toLowerCase().trim();
292
+ }
293
+ isSimilar(a, b) {
294
+ const normalized_a = this.normalizeAnswer(a);
295
+ const normalized_b = this.normalizeAnswer(b);
296
+ return normalized_a === normalized_b;
297
+ }
298
+ analyzeQuestionComplexity(question) {
299
+ let complexity = 0;
300
+ complexity += Math.min(question.length / 500, 0.3);
301
+ const complexKeywords = ['why', 'how', 'explain', 'analyze', 'compare', 'evaluate'];
302
+ for (const keyword of complexKeywords) {
303
+ if (question.toLowerCase().includes(keyword)) {
304
+ complexity += 0.2;
305
+ }
306
+ }
307
+ if (question.match(/\d+\s*[+\-*/]\s*\d+/)) {
308
+ complexity += 0.1;
309
+ }
310
+ return Math.min(complexity, 1.0);
311
+ }
312
+ estimateTokens(text) {
313
+ return Math.ceil(text.length / 4);
314
+ }
315
+ }
316
+ //# sourceMappingURL=ReasoningEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReasoningEngine.js","sourceRoot":"","sources":["../../src/reasoning/ReasoningEngine.ts"],"names":[],"mappings":"AAsEA,MAAM,OAAO,eAAe;IAIZ;IAEA;IALJ,MAAM,CAAkB;IAEhC,YACY,GAAe,EACvB,MAAiC,EACzB,gBAAmC;QAFnC,QAAG,GAAH,GAAG,CAAY;QAEf,qBAAgB,GAAhB,gBAAgB,CAAmB;QAE3C,IAAI,CAAC,MAAM,GAAG;YACV,eAAe,EAAE,MAAM,EAAE,eAAe,IAAI,kBAAkB;YAC9D,cAAc,EAAE;gBACZ,QAAQ,EAAE,CAAC;gBACX,QAAQ,EAAE,EAAE;gBACZ,SAAS,EAAE,IAAI;gBACf,GAAG,MAAM,EAAE,cAAc;aAC5B;YACD,eAAe,EAAE;gBACb,QAAQ,EAAE,CAAC;gBACX,YAAY,EAAE,UAAU;gBACxB,GAAG,MAAM,EAAE,eAAe;aAC7B;YACD,cAAc,EAAE;gBACZ,QAAQ,EAAE,CAAC;gBACX,eAAe,EAAE,CAAC;gBAClB,GAAG,MAAM,EAAE,cAAc;aAC5B;YACD,UAAU,EAAE;gBACR,aAAa,EAAE,CAAC;gBAChB,oBAAoB,EAAE,GAAG;gBACzB,GAAG,MAAM,EAAE,UAAU;aACxB;YACD,IAAI,EAAE;gBACF,aAAa,EAAE,IAAI;gBACnB,aAAa,EAAE,GAAG;gBAClB,GAAG,MAAM,EAAE,IAAI;aAClB;SACJ,CAAC;IACN,CAAC;IAKD,KAAK,CAAC,MAAM,CACR,QAAgB,EAChB,OAAe,EACf,QAA4B;QAE5B,MAAM,gBAAgB,GAAG,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;QACjE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,IAAI,CAAC;YACD,IAAI,MAAuB,CAAC;YAE5B,QAAQ,gBAAgB,EAAE,CAAC;gBACvB,KAAK,QAAQ;oBACT,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACvD,MAAM;gBACV,KAAK,kBAAkB;oBACnB,MAAM,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBAC/D,MAAM;gBACV,KAAK,kBAAkB;oBACnB,MAAM,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBAChE,MAAM;gBACV,KAAK,kBAAkB;oBACnB,MAAM,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBAC/D,MAAM;gBACV,KAAK,YAAY;oBACb,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBAC3D,MAAM;gBACV,KAAK,MAAM;oBACP,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBAC1D,MAAM;gBACV;oBACI,MAAM,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACvE,CAAC;YAED,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAG3C,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC;gBAC5B,KAAK,EAAE,MAAM;gBACb,SAAS,EAAE,iBAAiB;gBAC5B,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,aAAa,MAAM,CAAC,QAAQ,YAAY;gBACjD,QAAQ,EAAE,MAAM,CAAC,UAAU;gBAC3B,QAAQ,EAAE;oBACN,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,cAAc,EAAE,QAAQ,CAAC,MAAM;oBAC/B,aAAa,EAAE,OAAO,CAAC,MAAM;oBAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM;oBACvC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;iBACrC;aACJ,CAAC,CAAC;YAEH,OAAO,MAAM,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAExC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC;gBAC5B,KAAK,EAAE,OAAO;gBACd,SAAS,EAAE,iBAAiB;gBAC5B,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,8BAA8B;gBACvC,QAAQ;gBACR,QAAQ,EAAE;oBACN,QAAQ,EAAE,gBAAgB;oBAC1B,cAAc,EAAE,QAAQ,CAAC,MAAM;iBAClC;gBACD,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC;oBAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,KAAK,EAAE,KAAK,CAAC,KAAK;iBACrB,CAAC,CAAC,CAAC;oBACA,IAAI,EAAE,cAAc;oBACpB,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC;iBACzB;aACJ,CAAC,CAAC;YAEH,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAOO,KAAK,CAAC,eAAe,CAAC,QAAgB,EAAE,OAAe;QAC3D,MAAM,MAAM,GAAG,GAAG,OAAO,iBAAiB,QAAQ,aAAa,CAAC;QAEhE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YACjC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;YACnC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE;SACtC,CAAC,CAAC;QAEH,OAAO;YACH,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,QAAQ,CAAC,OAAO;YACxB,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,GAAG;YACf,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC;YAC1D,UAAU,EAAE,CAAC;SAChB,CAAC;IACN,CAAC;IAKO,KAAK,CAAC,uBAAuB,CAAC,QAAgB,EAAE,OAAe;QACnE,MAAM,MAAM,GAAG,GAAG,OAAO;;YAErB,QAAQ;;;;;;;;4BAQQ,CAAC;QAErB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YACjC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;YACnC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE;SACtC,CAAC,CAAC;QAGH,MAAM,KAAK,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE9D,OAAO;YACH,QAAQ,EAAE,kBAAkB;YAC5B,MAAM,EAAE,WAAW;YACnB,SAAS,EAAE,KAAK;YAChB,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC;YAC1D,UAAU,EAAE,CAAC;SAChB,CAAC;IACN,CAAC;IAKO,KAAK,CAAC,wBAAwB,CAAC,QAAgB,EAAE,OAAe;QACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,eAAgB,CAAC,QAAQ,CAAC;QACvD,MAAM,KAAK,GAAsB,EAAE,CAAC;QAGpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACrE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;QAGD,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAEjD,OAAO;YACH,QAAQ,EAAE,kBAAkB;YAC5B,MAAM,EAAE,WAAW;YACnB,SAAS,EAAE,QAAQ;YACnB,UAAU,EAAE,GAAG;YACf,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;YAC3D,UAAU,EAAE,CAAC;SAChB,CAAC;IACN,CAAC;IAKO,KAAK,CAAC,uBAAuB,CAAC,QAAgB,EAAE,OAAe;QACnE,MAAM,MAAM,GAAG,GAAG,OAAO;;YAErB,QAAQ;;;;;;;yEAOqD,CAAC;QAElE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YACjC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;YACnC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE;SACtC,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE5D,OAAO;YACH,QAAQ,EAAE,kBAAkB;YAC5B,MAAM,EAAE,QAAQ,CAAC,OAAO;YACxB,SAAS,EAAE,UAAU;YACrB,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC;YAC1D,UAAU,EAAE,CAAC;SAChB,CAAC;IACN,CAAC;IAKO,KAAK,CAAC,mBAAmB,CAAC,QAAgB,EAAE,OAAe;QAC/D,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,UAAW,CAAC,aAAa,CAAC;QAC5D,MAAM,SAAS,GAAa,EAAE,CAAC;QAG/B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACtE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;QAC/B,SAAS,CAAC,IAAI,CAAC,mBAAmB,aAAa,EAAE,CAAC,CAAC;QAGnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,cAAc,GAAG,GAAG,OAAO;;YAEjC,QAAQ;kBACF,aAAa;;4EAE6C,CAAC;YAEjE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;gBACjC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE;gBAC3C,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE;aACtC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC3D,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;YAGlD,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE,CAAC;gBAC1C,MAAM;YACV,CAAC;YAED,aAAa,GAAG,QAAQ,CAAC;YACzB,UAAU,EAAE,CAAC;QACjB,CAAC;QAED,OAAO;YACH,QAAQ,EAAE,YAAY;YACtB,MAAM,EAAE,aAAa;YACrB,SAAS;YACT,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC;YAC3E,UAAU,EAAE,CAAC;SAChB,CAAC;IACN,CAAC;IAKO,KAAK,CAAC,kBAAkB,CAAC,QAAgB,EAAE,OAAe;QAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;QAE5D,IAAI,gBAAmC,CAAC;QAExC,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;YACnB,gBAAgB,GAAG,QAAQ,CAAC;QAChC,CAAC;aAAM,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;YAC1B,gBAAgB,GAAG,kBAAkB,CAAC;QAC1C,CAAC;aAAM,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;YAC1B,gBAAgB,GAAG,kBAAkB,CAAC;QAC1C,CAAC;aAAM,CAAC;YACJ,gBAAgB,GAAG,YAAY,CAAC;QACpC,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAClE,CAAC;IAIO,qBAAqB,CAAC,QAAgB;QAC1C,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC5B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,kBAAkB,CAAC,QAAgB;QACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC7D,IAAI,KAAK,EAAE,CAAC;YACR,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC;QAGD,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1C,OAAO,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,CAAC;IAEO,iBAAiB,CAAC,QAAgB;QACtC,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBAChC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;QACL,CAAC;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IAEO,aAAa,CAAC,KAAwB;QAE1C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;QAE/C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrD,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;YACnD,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;gBACnB,QAAQ,GAAG,KAAK,CAAC;gBACjB,MAAM,GAAG,MAAM,CAAC;YACpB,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,eAAe,CAAC,MAAc;QAClC,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IAEO,SAAS,CAAC,CAAS,EAAE,CAAS;QAElC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAE7C,OAAO,YAAY,KAAK,YAAY,CAAC;IACzC,CAAC;IAEO,yBAAyB,CAAC,QAAgB;QAE9C,IAAI,UAAU,GAAG,CAAC,CAAC;QAGnB,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;QAGnD,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QACpF,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;YACpC,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3C,UAAU,IAAI,GAAG,CAAC;YACtB,CAAC;QACL,CAAC;QAGD,IAAI,QAAQ,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACxC,UAAU,IAAI,GAAG,CAAC;QACtB,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IAEO,cAAc,CAAC,IAAY;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtC,CAAC;CACJ"}
@@ -0,0 +1,41 @@
1
+ export type CircuitState = 'CLOSED' | 'OPEN' | 'HALF_OPEN';
2
+ export interface CircuitBreakerConfig {
3
+ failureThreshold?: number;
4
+ successThreshold?: number;
5
+ timeout?: number;
6
+ resetTimeout?: number;
7
+ }
8
+ export interface CircuitBreakerStats {
9
+ state: CircuitState;
10
+ failures: number;
11
+ successes: number;
12
+ lastFailureTime?: Date;
13
+ lastSuccessTime?: Date;
14
+ totalCalls: number;
15
+ totalFailures: number;
16
+ totalSuccesses: number;
17
+ }
18
+ export declare class CircuitBreaker {
19
+ private state;
20
+ private failures;
21
+ private successes;
22
+ private lastFailureTime?;
23
+ private lastSuccessTime?;
24
+ private totalCalls;
25
+ private totalFailures;
26
+ private totalSuccesses;
27
+ private resetTimer?;
28
+ private config;
29
+ constructor(config?: CircuitBreakerConfig);
30
+ execute<T>(fn: () => Promise<T>): Promise<T>;
31
+ private onSuccess;
32
+ private onFailure;
33
+ private trip;
34
+ private reset;
35
+ private shouldAttemptReset;
36
+ getState(): CircuitState;
37
+ getStats(): CircuitBreakerStats;
38
+ forceOpen(): void;
39
+ forceClose(): void;
40
+ }
41
+ //# sourceMappingURL=CircuitBreaker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CircuitBreaker.d.ts","sourceRoot":"","sources":["../../src/resilience/CircuitBreaker.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAE3D,MAAM,WAAW,oBAAoB;IACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAChC,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,IAAI,CAAC;IACvB,eAAe,CAAC,EAAE,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CAC1B;AAOD,qBAAa,cAAc;IACvB,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,eAAe,CAAC,CAAO;IAC/B,OAAO,CAAC,eAAe,CAAC,CAAO;IAC/B,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,UAAU,CAAC,CAAiB;IAEpC,OAAO,CAAC,MAAM,CAAiC;gBAEnC,MAAM,GAAE,oBAAyB;IAYvC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IA0BlD,OAAO,CAAC,SAAS;IAkBjB,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,IAAI;IAiBZ,OAAO,CAAC,KAAK;IAcb,OAAO,CAAC,kBAAkB;IAU1B,QAAQ,IAAI,YAAY;IAOxB,QAAQ,IAAI,mBAAmB;IAgB/B,SAAS,IAAI,IAAI;IAOjB,UAAU,IAAI,IAAI;CAGrB"}