@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,193 @@
1
+ export class MetaEvolutionEngine {
2
+ operatorPerformance = new Map();
3
+ contextualPerformance = [];
4
+ operatorProbabilities = new Map();
5
+ config;
6
+ constructor(config) {
7
+ this.config = {
8
+ learningRate: config?.learningRate ?? 0.1,
9
+ minSampleSize: config?.minSampleSize ?? 10,
10
+ explorationRate: config?.explorationRate ?? 0.15,
11
+ };
12
+ }
13
+ recordMutationAttempt(operatorName, success, fitnessImprovement, sandboxScore, context) {
14
+ let perf = this.operatorPerformance.get(operatorName);
15
+ if (!perf) {
16
+ perf = {
17
+ operatorName,
18
+ timesUsed: 0,
19
+ timesSuccessful: 0,
20
+ avgFitnessImprovement: 0,
21
+ avgSandboxScore: 0,
22
+ lastUsed: new Date(),
23
+ successRate: 0,
24
+ };
25
+ this.operatorPerformance.set(operatorName, perf);
26
+ }
27
+ perf.timesUsed++;
28
+ if (success) {
29
+ perf.timesSuccessful++;
30
+ }
31
+ const alpha = 0.2;
32
+ perf.avgFitnessImprovement =
33
+ alpha * fitnessImprovement + (1 - alpha) * perf.avgFitnessImprovement;
34
+ if (sandboxScore !== undefined) {
35
+ perf.avgSandboxScore =
36
+ alpha * sandboxScore + (1 - alpha) * perf.avgSandboxScore;
37
+ }
38
+ perf.successRate = perf.timesSuccessful / perf.timesUsed;
39
+ perf.lastUsed = new Date();
40
+ if (context) {
41
+ this.recordContextualPerformance(operatorName, context, success, fitnessImprovement);
42
+ }
43
+ this.adaptOperatorProbabilities();
44
+ }
45
+ recordContextualPerformance(operatorName, context, success, improvement) {
46
+ let ctx = this.contextualPerformance.find(c => c.context === context);
47
+ if (!ctx) {
48
+ ctx = {
49
+ context,
50
+ operators: new Map(),
51
+ };
52
+ this.contextualPerformance.push(ctx);
53
+ }
54
+ let stats = ctx.operators.get(operatorName);
55
+ if (!stats) {
56
+ stats = {
57
+ successRate: 0,
58
+ avgImprovement: 0,
59
+ sampleSize: 0,
60
+ };
61
+ ctx.operators.set(operatorName, stats);
62
+ }
63
+ stats.sampleSize++;
64
+ const alpha = 0.3;
65
+ stats.avgImprovement = alpha * improvement + (1 - alpha) * stats.avgImprovement;
66
+ stats.successRate =
67
+ alpha * (success ? 1 : 0) + (1 - alpha) * stats.successRate;
68
+ }
69
+ adaptOperatorProbabilities() {
70
+ const operators = Array.from(this.operatorPerformance.values());
71
+ if (operators.length === 0) {
72
+ return;
73
+ }
74
+ const hasEnoughSamples = operators.some(op => op.timesUsed >= this.config.minSampleSize);
75
+ if (!hasEnoughSamples) {
76
+ const equalProb = 1 / operators.length;
77
+ for (const op of operators) {
78
+ this.operatorProbabilities.set(op.operatorName, equalProb);
79
+ }
80
+ return;
81
+ }
82
+ const scores = operators.map(op => ({
83
+ name: op.operatorName,
84
+ score: this.calculateOperatorScore(op),
85
+ }));
86
+ const totalExp = scores.reduce((sum, s) => sum + Math.exp(s.score), 0);
87
+ for (const { name, score } of scores) {
88
+ const prob = Math.exp(score) / totalExp;
89
+ const finalProb = (1 - this.config.explorationRate) * prob +
90
+ this.config.explorationRate * (1 / operators.length);
91
+ this.operatorProbabilities.set(name, finalProb);
92
+ }
93
+ }
94
+ calculateOperatorScore(perf) {
95
+ const successWeight = 0.4;
96
+ const improvementWeight = 0.5;
97
+ const recencyWeight = 0.1;
98
+ const hoursSinceUse = (Date.now() - perf.lastUsed.getTime()) / (1000 * 60 * 60);
99
+ const recencyScore = Math.exp(-hoursSinceUse / 24);
100
+ const score = perf.successRate * successWeight +
101
+ perf.avgFitnessImprovement * improvementWeight +
102
+ recencyScore * recencyWeight;
103
+ return score;
104
+ }
105
+ selectOperator(availableOperators, context) {
106
+ if (context) {
107
+ const contextual = this.selectOperatorForContext(availableOperators, context);
108
+ if (contextual) {
109
+ return contextual;
110
+ }
111
+ }
112
+ const probabilities = availableOperators.map(name => ({
113
+ name,
114
+ prob: this.operatorProbabilities.get(name) || 1 / availableOperators.length,
115
+ }));
116
+ const total = probabilities.reduce((sum, p) => sum + p.prob, 0);
117
+ const normalized = probabilities.map(p => ({
118
+ ...p,
119
+ prob: p.prob / total,
120
+ }));
121
+ const rand = Math.random();
122
+ let cumulative = 0;
123
+ for (const { name, prob } of normalized) {
124
+ cumulative += prob;
125
+ if (rand <= cumulative) {
126
+ return name;
127
+ }
128
+ }
129
+ return availableOperators[0];
130
+ }
131
+ selectOperatorForContext(availableOperators, context) {
132
+ const ctx = this.contextualPerformance.find(c => c.context === context);
133
+ if (!ctx || ctx.operators.size === 0) {
134
+ return null;
135
+ }
136
+ let bestOperator = null;
137
+ let bestScore = -Infinity;
138
+ for (const name of availableOperators) {
139
+ const stats = ctx.operators.get(name);
140
+ if (!stats || stats.sampleSize < 3) {
141
+ continue;
142
+ }
143
+ const score = stats.successRate * 0.5 + stats.avgImprovement * 0.5;
144
+ if (score > bestScore) {
145
+ bestScore = score;
146
+ bestOperator = name;
147
+ }
148
+ }
149
+ return bestOperator;
150
+ }
151
+ getOperatorPerformance(operatorName) {
152
+ if (operatorName) {
153
+ const perf = this.operatorPerformance.get(operatorName);
154
+ return perf ? [perf] : [];
155
+ }
156
+ return Array.from(this.operatorPerformance.values());
157
+ }
158
+ getOperatorProbabilities() {
159
+ return new Map(this.operatorProbabilities);
160
+ }
161
+ getContextualPerformance() {
162
+ return [...this.contextualPerformance];
163
+ }
164
+ getLearningSummary() {
165
+ const operators = Array.from(this.operatorPerformance.values());
166
+ if (operators.length === 0) {
167
+ return {
168
+ totalMutations: 0,
169
+ successfulMutations: 0,
170
+ overallSuccessRate: 0,
171
+ bestOperator: null,
172
+ worstOperator: null,
173
+ };
174
+ }
175
+ const totalMutations = operators.reduce((sum, op) => sum + op.timesUsed, 0);
176
+ const successfulMutations = operators.reduce((sum, op) => sum + op.timesSuccessful, 0);
177
+ const overallSuccessRate = successfulMutations / totalMutations;
178
+ const sorted = [...operators].sort((a, b) => b.successRate - a.successRate);
179
+ return {
180
+ totalMutations,
181
+ successfulMutations,
182
+ overallSuccessRate,
183
+ bestOperator: sorted[0]?.operatorName || null,
184
+ worstOperator: sorted[sorted.length - 1]?.operatorName || null,
185
+ };
186
+ }
187
+ reset() {
188
+ this.operatorPerformance.clear();
189
+ this.contextualPerformance = [];
190
+ this.operatorProbabilities.clear();
191
+ }
192
+ }
193
+ //# sourceMappingURL=MetaEvolutionEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MetaEvolutionEngine.js","sourceRoot":"","sources":["../../../src/evolution/boost/MetaEvolutionEngine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import type { GenomeV2 } from '../../types/GenomeV2.js';
2
+ import type { IMutationOperator, MutationContext, MutationResult } from '../MutationOperator.js';
3
+ import { MutationEngine } from '../MutationOperator.js';
4
+ import { type InteractionData } from '../FitnessCalculator.js';
5
+ export interface ParallelEvolutionConfig {
6
+ branchCount: number;
7
+ keepTopN: number;
8
+ useParetoOptimization: boolean;
9
+ sandboxTest: boolean;
10
+ }
11
+ export interface MutationBranch {
12
+ id: string;
13
+ mutant: GenomeV2;
14
+ mutation: MutationResult;
15
+ operator: string;
16
+ sandboxFitness?: number;
17
+ realWorldFitness?: number;
18
+ }
19
+ export declare class ParallelEvolutionEngine {
20
+ private baseEngine;
21
+ private paretoOptimizer;
22
+ private fitnessCalc;
23
+ private config;
24
+ constructor(baseEngine?: MutationEngine, config?: Partial<ParallelEvolutionConfig>);
25
+ generateParallelMutations(context: MutationContext, additionalOperators?: IMutationOperator[]): Promise<MutationBranch[]>;
26
+ private createBranch;
27
+ evaluateBranches(branches: MutationBranch[], testInteractions: InteractionData[]): Promise<MutationBranch[]>;
28
+ selectBestBranches(branches: MutationBranch[]): MutationBranch[];
29
+ evolveGeneration(context: MutationContext, additionalOperators?: IMutationOperator[], testInteractions?: InteractionData[]): Promise<{
30
+ branches: MutationBranch[];
31
+ selected: MutationBranch[];
32
+ stats: {
33
+ totalGenerated: number;
34
+ totalEvaluated: number;
35
+ topFitness: number;
36
+ diversityScore: number;
37
+ };
38
+ }>;
39
+ private computeDiversity;
40
+ getConfig(): ParallelEvolutionConfig;
41
+ updateConfig(config: Partial<ParallelEvolutionConfig>): void;
42
+ getBaseEngine(): MutationEngine;
43
+ }
44
+ //# sourceMappingURL=ParallelEvolutionEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParallelEvolutionEngine.d.ts","sourceRoot":"","sources":["../../../src/evolution/boost/ParallelEvolutionEngine.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EACR,iBAAiB,EACjB,eAAe,EACf,cAAc,EACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAKlF,MAAM,WAAW,uBAAuB;IAEpC,WAAW,EAAE,MAAM,CAAC;IAGpB,QAAQ,EAAE,MAAM,CAAC;IAGjB,qBAAqB,EAAE,OAAO,CAAC;IAG/B,WAAW,EAAE,OAAO,CAAC;CACxB;AAKD,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,QAAQ,CAAC;IACjB,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAQD,qBAAa,uBAAuB;IAChC,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,MAAM,CAAoC;gBAG9C,UAAU,CAAC,EAAE,cAAc,EAC3B,MAAM,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC;IAmBvC,yBAAyB,CAC3B,OAAO,EAAE,eAAe,EACxB,mBAAmB,CAAC,EAAE,iBAAiB,EAAE,GAC1C,OAAO,CAAC,cAAc,EAAE,CAAC;YAwCd,YAAY;IAsCpB,gBAAgB,CAClB,QAAQ,EAAE,cAAc,EAAE,EAC1B,gBAAgB,EAAE,eAAe,EAAE,GACpC,OAAO,CAAC,cAAc,EAAE,CAAC;IAwB5B,kBAAkB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE;IAuC1D,gBAAgB,CAClB,OAAO,EAAE,eAAe,EACxB,mBAAmB,CAAC,EAAE,iBAAiB,EAAE,EACzC,gBAAgB,CAAC,EAAE,eAAe,EAAE,GACrC,OAAO,CAAC;QACP,QAAQ,EAAE,cAAc,EAAE,CAAC;QAC3B,QAAQ,EAAE,cAAc,EAAE,CAAC;QAC3B,KAAK,EAAE;YACH,cAAc,EAAE,MAAM,CAAC;YACvB,cAAc,EAAE,MAAM,CAAC;YACvB,UAAU,EAAE,MAAM,CAAC;YACnB,cAAc,EAAE,MAAM,CAAC;SAC1B,CAAC;KACL,CAAC;IAqCF,OAAO,CAAC,gBAAgB;IAaxB,SAAS,IAAI,uBAAuB;IAOpC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,uBAAuB,CAAC,GAAG,IAAI;IAU5D,aAAa,IAAI,cAAc;CAGlC"}
@@ -0,0 +1,135 @@
1
+ import { MutationEngine } from '../MutationOperator.js';
2
+ import { ParetoOptimizer } from './ParetoOptimizer.js';
3
+ import { FitnessCalculator } from '../FitnessCalculator.js';
4
+ export class ParallelEvolutionEngine {
5
+ baseEngine;
6
+ paretoOptimizer;
7
+ fitnessCalc;
8
+ config;
9
+ constructor(baseEngine, config) {
10
+ this.baseEngine = baseEngine || new MutationEngine();
11
+ this.paretoOptimizer = new ParetoOptimizer();
12
+ this.fitnessCalc = new FitnessCalculator();
13
+ this.config = {
14
+ branchCount: config?.branchCount ?? 10,
15
+ keepTopN: config?.keepTopN ?? 3,
16
+ useParetoOptimization: config?.useParetoOptimization ?? true,
17
+ sandboxTest: config?.sandboxTest ?? true,
18
+ };
19
+ }
20
+ async generateParallelMutations(context, additionalOperators) {
21
+ if (additionalOperators) {
22
+ for (const op of additionalOperators) {
23
+ this.baseEngine.registerOperator(op);
24
+ }
25
+ }
26
+ const operators = this.baseEngine.listOperators();
27
+ const branches = [];
28
+ const promises = [];
29
+ for (let i = 0; i < this.config.branchCount && i < operators.length * 3; i++) {
30
+ const operator = operators[i % operators.length];
31
+ const promise = this.createBranch(context, operator);
32
+ promises.push(promise);
33
+ }
34
+ const results = await Promise.all(promises);
35
+ for (const result of results) {
36
+ if (result) {
37
+ branches.push(result);
38
+ }
39
+ }
40
+ return branches;
41
+ }
42
+ async createBranch(context, operator) {
43
+ try {
44
+ const branchContext = {
45
+ ...context,
46
+ evidence: {
47
+ ...context.evidence,
48
+ randomSeed: Math.random(),
49
+ },
50
+ };
51
+ const result = await operator.mutate(branchContext);
52
+ if (!result.success) {
53
+ return null;
54
+ }
55
+ return {
56
+ id: `branch_${Date.now()}_${Math.random().toString(36).substring(7)}`,
57
+ mutant: result.mutant,
58
+ mutation: result,
59
+ operator: operator.name,
60
+ };
61
+ }
62
+ catch (error) {
63
+ console.error(`Branch creation failed for operator ${operator.name}:`, error);
64
+ return null;
65
+ }
66
+ }
67
+ async evaluateBranches(branches, testInteractions) {
68
+ if (!this.config.sandboxTest || testInteractions.length === 0) {
69
+ return branches;
70
+ }
71
+ const promises = branches.map(async (branch) => {
72
+ const fitness = this.fitnessCalc.computeFitness(testInteractions);
73
+ return {
74
+ ...branch,
75
+ sandboxFitness: fitness.composite,
76
+ };
77
+ });
78
+ return await Promise.all(promises);
79
+ }
80
+ selectBestBranches(branches) {
81
+ if (branches.length <= this.config.keepTopN) {
82
+ return branches;
83
+ }
84
+ if (!this.config.useParetoOptimization) {
85
+ const sorted = [...branches].sort((a, b) => b.mutation.expectedImprovement - a.mutation.expectedImprovement);
86
+ return sorted.slice(0, this.config.keepTopN);
87
+ }
88
+ const paretoSolutions = branches.map(branch => ({
89
+ genome: branch.mutant,
90
+ fitness: branch.mutant.fitness,
91
+ dominatedBy: 0,
92
+ crowdingDistance: 0,
93
+ }));
94
+ const best = this.paretoOptimizer.selectBest(paretoSolutions, this.config.keepTopN);
95
+ return branches.filter(branch => best.some(solution => solution.genome.id === branch.mutant.id));
96
+ }
97
+ async evolveGeneration(context, additionalOperators, testInteractions) {
98
+ const branches = await this.generateParallelMutations(context, additionalOperators);
99
+ const evaluated = testInteractions
100
+ ? await this.evaluateBranches(branches, testInteractions)
101
+ : branches;
102
+ const selected = this.selectBestBranches(evaluated);
103
+ const topFitness = Math.max(...selected.map(b => b.sandboxFitness || b.mutation.expectedImprovement));
104
+ const diversityScore = this.computeDiversity(selected);
105
+ return {
106
+ branches,
107
+ selected,
108
+ stats: {
109
+ totalGenerated: branches.length,
110
+ totalEvaluated: evaluated.length,
111
+ topFitness,
112
+ diversityScore,
113
+ },
114
+ };
115
+ }
116
+ computeDiversity(branches) {
117
+ if (branches.length <= 1)
118
+ return 0;
119
+ const uniqueOperators = new Set(branches.map(b => b.operator));
120
+ return uniqueOperators.size / branches.length;
121
+ }
122
+ getConfig() {
123
+ return { ...this.config };
124
+ }
125
+ updateConfig(config) {
126
+ this.config = {
127
+ ...this.config,
128
+ ...config,
129
+ };
130
+ }
131
+ getBaseEngine() {
132
+ return this.baseEngine;
133
+ }
134
+ }
135
+ //# sourceMappingURL=ParallelEvolutionEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParallelEvolutionEngine.js","sourceRoot":"","sources":["../../../src/evolution/boost/ParallelEvolutionEngine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import type { FitnessVector } from '../../types/GenomeV2.js';
2
+ import type { GenomeV2 } from '../../types/GenomeV2.js';
3
+ import { FitnessCalculator } from '../FitnessCalculator.js';
4
+ export interface ParetoSolution {
5
+ genome: GenomeV2;
6
+ fitness: FitnessVector;
7
+ dominatedBy: number;
8
+ crowdingDistance: number;
9
+ }
10
+ export interface OptimizationObjectives {
11
+ maximizeQuality: boolean;
12
+ maximizeSuccessRate: boolean;
13
+ maximizeTokenEfficiency: boolean;
14
+ minimizeLatency: boolean;
15
+ minimizeCost: boolean;
16
+ minimizeIntervention: boolean;
17
+ }
18
+ export declare class ParetoOptimizer {
19
+ private fitnessCalc;
20
+ constructor(fitnessCalc?: FitnessCalculator);
21
+ findParetoFrontier(solutions: ParetoSolution[], objectives?: Partial<OptimizationObjectives>): ParetoSolution[];
22
+ private dominates;
23
+ private calculateCrowdingDistance;
24
+ selectBest(solutions: ParetoSolution[], count: number, objectives?: Partial<OptimizationObjectives>): ParetoSolution[];
25
+ findBestForTradeoff(solutions: ParetoSolution[], tradeoff: 'quality' | 'cost' | 'speed' | 'balanced'): ParetoSolution | null;
26
+ analyzeTrade(frontier: ParetoSolution[]): {
27
+ qualityRange: {
28
+ min: number;
29
+ max: number;
30
+ };
31
+ costRange: {
32
+ min: number;
33
+ max: number;
34
+ };
35
+ latencyRange: {
36
+ min: number;
37
+ max: number;
38
+ };
39
+ tradeoffSummary: string;
40
+ };
41
+ }
42
+ //# sourceMappingURL=ParetoOptimizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParetoOptimizer.d.ts","sourceRoot":"","sources":["../../../src/evolution/boost/ParetoOptimizer.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAK5D,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,QAAQ,CAAC;IACjB,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;CAC5B;AAKD,MAAM,WAAW,sBAAsB;IACnC,eAAe,EAAE,OAAO,CAAC;IACzB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,uBAAuB,EAAE,OAAO,CAAC;IACjC,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,oBAAoB,EAAE,OAAO,CAAC;CACjC;AAOD,qBAAa,eAAe;IACxB,OAAO,CAAC,WAAW,CAAoB;gBAE3B,WAAW,CAAC,EAAE,iBAAiB;IAS3C,kBAAkB,CACd,SAAS,EAAE,cAAc,EAAE,EAC3B,UAAU,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAC7C,cAAc,EAAE;IAwCnB,OAAO,CAAC,SAAS;IAqDjB,OAAO,CAAC,yBAAyB;IA0DjC,UAAU,CACN,SAAS,EAAE,cAAc,EAAE,EAC3B,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAC7C,cAAc,EAAE;IA2BnB,mBAAmB,CACf,SAAS,EAAE,cAAc,EAAE,EAC3B,QAAQ,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GACpD,cAAc,GAAG,IAAI;IAuCxB,YAAY,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG;QACtC,YAAY,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QAC3C,SAAS,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QACxC,YAAY,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QAC3C,eAAe,EAAE,MAAM,CAAC;KAC3B;CAgCJ"}
@@ -0,0 +1,167 @@
1
+ import { FitnessCalculator } from '../FitnessCalculator.js';
2
+ export class ParetoOptimizer {
3
+ fitnessCalc;
4
+ constructor(fitnessCalc) {
5
+ this.fitnessCalc = fitnessCalc || new FitnessCalculator();
6
+ }
7
+ findParetoFrontier(solutions, objectives) {
8
+ const opts = {
9
+ maximizeQuality: objectives?.maximizeQuality ?? true,
10
+ maximizeSuccessRate: objectives?.maximizeSuccessRate ?? true,
11
+ maximizeTokenEfficiency: objectives?.maximizeTokenEfficiency ?? true,
12
+ minimizeLatency: objectives?.minimizeLatency ?? true,
13
+ minimizeCost: objectives?.minimizeCost ?? true,
14
+ minimizeIntervention: objectives?.minimizeIntervention ?? true,
15
+ };
16
+ for (let i = 0; i < solutions.length; i++) {
17
+ solutions[i].dominatedBy = 0;
18
+ for (let j = 0; j < solutions.length; j++) {
19
+ if (i !== j && this.dominates(solutions[j], solutions[i], opts)) {
20
+ solutions[i].dominatedBy++;
21
+ }
22
+ }
23
+ }
24
+ const frontier = solutions.filter(s => s.dominatedBy === 0);
25
+ this.calculateCrowdingDistance(frontier);
26
+ frontier.sort((a, b) => b.crowdingDistance - a.crowdingDistance);
27
+ return frontier;
28
+ }
29
+ dominates(a, b, objectives) {
30
+ let betterInAtLeastOne = false;
31
+ let worseInAny = false;
32
+ if (objectives.maximizeQuality) {
33
+ if (a.fitness.quality > b.fitness.quality)
34
+ betterInAtLeastOne = true;
35
+ if (a.fitness.quality < b.fitness.quality)
36
+ worseInAny = true;
37
+ }
38
+ if (objectives.maximizeSuccessRate) {
39
+ if (a.fitness.successRate > b.fitness.successRate)
40
+ betterInAtLeastOne = true;
41
+ if (a.fitness.successRate < b.fitness.successRate)
42
+ worseInAny = true;
43
+ }
44
+ if (objectives.maximizeTokenEfficiency) {
45
+ if (a.fitness.tokenEfficiency > b.fitness.tokenEfficiency)
46
+ betterInAtLeastOne = true;
47
+ if (a.fitness.tokenEfficiency < b.fitness.tokenEfficiency)
48
+ worseInAny = true;
49
+ }
50
+ if (objectives.minimizeLatency) {
51
+ if (a.fitness.latency < b.fitness.latency)
52
+ betterInAtLeastOne = true;
53
+ if (a.fitness.latency > b.fitness.latency)
54
+ worseInAny = true;
55
+ }
56
+ if (objectives.minimizeCost) {
57
+ if (a.fitness.costPerSuccess < b.fitness.costPerSuccess)
58
+ betterInAtLeastOne = true;
59
+ if (a.fitness.costPerSuccess > b.fitness.costPerSuccess)
60
+ worseInAny = true;
61
+ }
62
+ if (objectives.minimizeIntervention) {
63
+ if (a.fitness.interventionRate < b.fitness.interventionRate)
64
+ betterInAtLeastOne = true;
65
+ if (a.fitness.interventionRate > b.fitness.interventionRate)
66
+ worseInAny = true;
67
+ }
68
+ return betterInAtLeastOne && !worseInAny;
69
+ }
70
+ calculateCrowdingDistance(solutions) {
71
+ if (solutions.length <= 2) {
72
+ solutions.forEach(s => s.crowdingDistance = Infinity);
73
+ return;
74
+ }
75
+ solutions.forEach(s => s.crowdingDistance = 0);
76
+ const objectives = [
77
+ 'quality',
78
+ 'successRate',
79
+ 'tokenEfficiency',
80
+ 'latency',
81
+ 'costPerSuccess',
82
+ 'interventionRate',
83
+ ];
84
+ for (const objective of objectives) {
85
+ const sorted = [...solutions].sort((a, b) => {
86
+ const aVal = a.fitness[objective];
87
+ const bVal = b.fitness[objective];
88
+ return aVal - bVal;
89
+ });
90
+ sorted[0].crowdingDistance = Infinity;
91
+ sorted[sorted.length - 1].crowdingDistance = Infinity;
92
+ const minVal = sorted[0].fitness[objective];
93
+ const maxVal = sorted[sorted.length - 1].fitness[objective];
94
+ const range = maxVal - minVal;
95
+ if (range === 0)
96
+ continue;
97
+ for (let i = 1; i < sorted.length - 1; i++) {
98
+ const distance = (sorted[i + 1].fitness[objective] - sorted[i - 1].fitness[objective]) / range;
99
+ const original = solutions.find(s => s.genome.id === sorted[i].genome.id);
100
+ if (original) {
101
+ original.crowdingDistance += distance;
102
+ }
103
+ }
104
+ }
105
+ }
106
+ selectBest(solutions, count, objectives) {
107
+ const frontier = this.findParetoFrontier(solutions, objectives);
108
+ if (frontier.length >= count) {
109
+ return frontier.slice(0, count);
110
+ }
111
+ const selected = [...frontier];
112
+ const remaining = solutions.filter(s => !frontier.includes(s));
113
+ remaining.sort((a, b) => b.fitness.composite - a.fitness.composite);
114
+ while (selected.length < count && remaining.length > 0) {
115
+ selected.push(remaining.shift());
116
+ }
117
+ return selected;
118
+ }
119
+ findBestForTradeoff(solutions, tradeoff) {
120
+ if (solutions.length === 0)
121
+ return null;
122
+ const frontier = this.findParetoFrontier(solutions);
123
+ switch (tradeoff) {
124
+ case 'quality':
125
+ return frontier.reduce((best, current) => current.fitness.quality > best.fitness.quality ? current : best);
126
+ case 'cost':
127
+ return frontier
128
+ .filter(s => s.fitness.quality >= 0.7)
129
+ .reduce((best, current) => current.fitness.costPerSuccess < best.fitness.costPerSuccess ? current : best);
130
+ case 'speed':
131
+ return frontier
132
+ .filter(s => s.fitness.quality >= 0.7)
133
+ .reduce((best, current) => current.fitness.latency < best.fitness.latency ? current : best);
134
+ case 'balanced':
135
+ return frontier.reduce((best, current) => current.fitness.composite > best.fitness.composite ? current : best);
136
+ }
137
+ }
138
+ analyzeTrade(frontier) {
139
+ if (frontier.length === 0) {
140
+ return {
141
+ qualityRange: { min: 0, max: 0 },
142
+ costRange: { min: 0, max: 0 },
143
+ latencyRange: { min: 0, max: 0 },
144
+ tradeoffSummary: 'No solutions available',
145
+ };
146
+ }
147
+ const qualities = frontier.map(s => s.fitness.quality);
148
+ const costs = frontier.map(s => s.fitness.costPerSuccess);
149
+ const latencies = frontier.map(s => s.fitness.latency);
150
+ const qualityRange = { min: Math.min(...qualities), max: Math.max(...qualities) };
151
+ const costRange = { min: Math.min(...costs), max: Math.max(...costs) };
152
+ const latencyRange = { min: Math.min(...latencies), max: Math.max(...latencies) };
153
+ const tradeoffSummary = `Found ${frontier.length} Pareto-optimal solutions:
154
+ - Quality: ${(qualityRange.min * 100).toFixed(0)}% - ${(qualityRange.max * 100).toFixed(0)}%
155
+ - Cost: $${costRange.min.toFixed(4)} - $${costRange.max.toFixed(4)}
156
+ - Latency: ${latencyRange.min.toFixed(0)}ms - ${latencyRange.max.toFixed(0)}ms
157
+
158
+ Trade-off: ${qualityRange.max > qualityRange.min ? 'Higher quality costs more/takes longer' : 'Solutions are similar'}`;
159
+ return {
160
+ qualityRange,
161
+ costRange,
162
+ latencyRange,
163
+ tradeoffSummary,
164
+ };
165
+ }
166
+ }
167
+ //# sourceMappingURL=ParetoOptimizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParetoOptimizer.js","sourceRoot":"","sources":["../../../src/evolution/boost/ParetoOptimizer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { MutationType } from '../../../types/GenomeV2.js';
2
+ import type { IMutationOperator, MutationContext, MutationResult } from '../../MutationOperator.js';
3
+ import type { LLMAdapter } from '../../../interfaces/LLMAdapter.js';
4
+ export declare class BreakthroughOperator implements IMutationOperator {
5
+ private llm;
6
+ name: MutationType;
7
+ description: string;
8
+ targetChromosome: 'c1';
9
+ constructor(llm: LLMAdapter);
10
+ mutate(context: MutationContext): Promise<MutationResult>;
11
+ estimateImprovement(context: MutationContext): number;
12
+ private analyzeGenome;
13
+ private buildAnalysisPrompt;
14
+ private parseAnalysis;
15
+ private extractSection;
16
+ private generateBreakthrough;
17
+ private buildBreakthroughPrompt;
18
+ private parseBreakthrough;
19
+ private deepClone;
20
+ private generateId;
21
+ }
22
+ //# sourceMappingURL=BreakthroughOperator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BreakthroughOperator.d.ts","sourceRoot":"","sources":["../../../../src/evolution/boost/operators/BreakthroughOperator.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAGR,YAAY,EAEf,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EACR,iBAAiB,EACjB,eAAe,EACf,cAAc,EACjB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAUpE,qBAAa,oBAAqB,YAAW,iBAAiB;IAK9C,OAAO,CAAC,GAAG;IAJvB,IAAI,EAAE,YAAY,CAAkB;IACpC,WAAW,SAAgD;IAC3D,gBAAgB,EAAE,IAAI,CAAQ;gBAEV,GAAG,EAAE,UAAU;IAE7B,MAAM,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAoC/D,mBAAmB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM;YAqBvC,aAAa;IAoB3B,OAAO,CAAC,mBAAmB;IAgD3B,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,cAAc;YAmBR,oBAAoB;IA2BlC,OAAO,CAAC,uBAAuB;IAyD/B,OAAO,CAAC,iBAAiB;IAqDzB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,UAAU;CAGrB"}