@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,217 @@
1
+ export class BreakthroughOperator {
2
+ llm;
3
+ name = 'breakthrough';
4
+ description = 'Radical redesign using deep LLM reflection';
5
+ targetChromosome = 'c1';
6
+ constructor(llm) {
7
+ this.llm = llm;
8
+ }
9
+ async mutate(context) {
10
+ const analysis = await this.analyzeGenome(context);
11
+ const redesign = await this.generateBreakthrough(context, analysis);
12
+ const mutant = this.deepClone(context.genome);
13
+ mutant.chromosomes.c1.operations = redesign.genes;
14
+ const mutation = {
15
+ id: this.generateId(),
16
+ timestamp: new Date(),
17
+ chromosome: 'c1',
18
+ operation: this.name,
19
+ before: JSON.stringify(context.genome.chromosomes.c1),
20
+ after: JSON.stringify(mutant.chromosomes.c1),
21
+ diff: redesign.summary,
22
+ trigger: 'drift-detected',
23
+ reason: context.reason,
24
+ sandboxTested: false,
25
+ promoted: false,
26
+ proposer: 'system',
27
+ };
28
+ return {
29
+ success: true,
30
+ mutant,
31
+ mutation,
32
+ description: redesign.summary,
33
+ expectedImprovement: redesign.expectedImprovement,
34
+ };
35
+ }
36
+ estimateImprovement(context) {
37
+ const fitness = context.genome.fitness;
38
+ const currentFitness = fitness.composite;
39
+ if (currentFitness < 0.5) {
40
+ return 0.80;
41
+ }
42
+ else if (currentFitness < 0.7) {
43
+ return 0.60;
44
+ }
45
+ else {
46
+ return 0.40;
47
+ }
48
+ }
49
+ async analyzeGenome(context) {
50
+ const analysisPrompt = this.buildAnalysisPrompt(context);
51
+ const response = await this.llm.generateText({
52
+ prompt: analysisPrompt,
53
+ temperature: 0.3,
54
+ maxTokens: 1500,
55
+ });
56
+ return this.parseAnalysis(response.content);
57
+ }
58
+ buildAnalysisPrompt(context) {
59
+ const genes = context.genome.chromosomes.c1.operations
60
+ .map((g, i) => `${i + 1}. ${g.category}:\n${g.content}`)
61
+ .join('\n\n');
62
+ return `You are an expert AI agent architect. Perform a DEEP analysis of this agent's genome.
63
+
64
+ CURRENT GENOME:
65
+ ${genes}
66
+
67
+ PERFORMANCE METRICS:
68
+ - Quality: ${(context.genome.fitness.quality * 100).toFixed(1)}%
69
+ - Success Rate: ${(context.genome.fitness.successRate * 100).toFixed(1)}%
70
+ - Token Efficiency: ${(context.genome.fitness.tokenEfficiency * 100).toFixed(1)}%
71
+ - Latency: ${context.genome.fitness.latency}ms
72
+ - Intervention Rate: ${(context.genome.fitness.interventionRate * 100).toFixed(1)}%
73
+ - Cost Per Success: $${context.genome.fitness.costPerSuccess.toFixed(4)}
74
+
75
+ CONTEXT: ${context.reason}
76
+
77
+ TASK: Analyze this genome comprehensively:
78
+
79
+ 1. STRENGTHS: What's working well?
80
+ 2. WEAKNESSES: What's limiting performance?
81
+ 3. ROOT CAUSES: Why are these weaknesses happening?
82
+ 4. OPPORTUNITIES: What radical changes could 10x performance?
83
+
84
+ Format your response as:
85
+ STRENGTHS:
86
+ - [strength 1]
87
+ - [strength 2]
88
+
89
+ WEAKNESSES:
90
+ - [weakness 1]
91
+ - [weakness 2]
92
+
93
+ ROOT_CAUSES:
94
+ - [root cause 1]
95
+ - [root cause 2]
96
+
97
+ OPPORTUNITIES:
98
+ - [opportunity 1]
99
+ - [opportunity 2]`;
100
+ }
101
+ parseAnalysis(response) {
102
+ const sections = {
103
+ strengths: this.extractSection(response, 'STRENGTHS'),
104
+ weaknesses: this.extractSection(response, 'WEAKNESSES'),
105
+ rootCauses: this.extractSection(response, 'ROOT_CAUSES'),
106
+ opportunities: this.extractSection(response, 'OPPORTUNITIES'),
107
+ };
108
+ return sections;
109
+ }
110
+ extractSection(response, sectionName) {
111
+ const regex = new RegExp(`${sectionName}:([\\s\\S]*?)(?=\\n[A-Z_]+:|$)`, 'i');
112
+ const match = response.match(regex);
113
+ if (!match)
114
+ return [];
115
+ const content = match[1];
116
+ const items = content
117
+ .split('\n')
118
+ .map(line => line.trim())
119
+ .filter(line => line.startsWith('-'))
120
+ .map(line => line.substring(1).trim());
121
+ return items;
122
+ }
123
+ async generateBreakthrough(context, analysis) {
124
+ const breakthroughPrompt = this.buildBreakthroughPrompt(context, analysis);
125
+ const response = await this.llm.generateText({
126
+ prompt: breakthroughPrompt,
127
+ temperature: 0.8,
128
+ maxTokens: 2500,
129
+ });
130
+ return this.parseBreakthrough(response.content, context);
131
+ }
132
+ buildBreakthroughPrompt(context, analysis) {
133
+ const currentGenes = context.genome.chromosomes.c1.operations;
134
+ return `You are a visionary AI agent architect. Design a BREAKTHROUGH redesign.
135
+
136
+ CURRENT PERFORMANCE:
137
+ - Quality: ${(context.genome.fitness.quality * 100).toFixed(1)}%
138
+ - Success Rate: ${(context.genome.fitness.successRate * 100).toFixed(1)}%
139
+ - Token Efficiency: ${(context.genome.fitness.tokenEfficiency * 100).toFixed(1)}%
140
+
141
+ ANALYSIS:
142
+ Strengths: ${analysis.strengths.join(', ')}
143
+ Weaknesses: ${analysis.weaknesses.join(', ')}
144
+ Root Causes: ${analysis.rootCauses.join(', ')}
145
+ Opportunities: ${analysis.opportunities.join(', ')}
146
+
147
+ TASK: Design a RADICAL redesign that addresses root causes and seizes opportunities.
148
+
149
+ GUIDELINES:
150
+ 1. Think BIG - aim for 2-10x improvement
151
+ 2. Don't be conservative - this is breakthrough time
152
+ 3. Leverage the opportunities identified
153
+ 4. Address root causes fundamentally
154
+ 5. Keep what works (strengths)
155
+ 6. Be bold and innovative
156
+
157
+ CATEGORIES TO REDESIGN:
158
+ ${currentGenes.map(g => `- ${g.category}`).join('\n')}
159
+
160
+ Return redesigned genes in this format:
161
+ ---GENE:tool-usage---
162
+ [Radically improved content]
163
+ ---END---
164
+
165
+ ---GENE:reasoning---
166
+ [Radically improved content]
167
+ ---END---
168
+
169
+ (Continue for all categories)
170
+
171
+ After all genes, add:
172
+ ---SUMMARY---
173
+ [Brief summary of breakthrough changes and expected improvement]
174
+ ---END---`;
175
+ }
176
+ parseBreakthrough(response, context) {
177
+ const genes = [];
178
+ const geneMatches = response.matchAll(/---GENE:(\S+)---([\s\S]*?)---END---/g);
179
+ for (const match of geneMatches) {
180
+ const category = match[1];
181
+ const content = match[2].trim();
182
+ const original = context.genome.chromosomes.c1.operations.find(g => g.category === category);
183
+ genes.push({
184
+ category,
185
+ content,
186
+ version: (original?.version || 0) + 1,
187
+ lastModified: new Date(),
188
+ successRate: original?.successRate || 0.5,
189
+ mutationHistory: [
190
+ ...(original?.mutationHistory || []),
191
+ {
192
+ operation: this.name,
193
+ timestamp: new Date(),
194
+ reason: 'Breakthrough redesign',
195
+ },
196
+ ],
197
+ });
198
+ }
199
+ const summaryMatch = response.match(/---SUMMARY---([\s\S]*?)---END---/);
200
+ const summary = summaryMatch ? summaryMatch[1].trim() : 'Radical breakthrough redesign';
201
+ const currentFitness = context.genome.fitness.composite;
202
+ const gap = 1 - currentFitness;
203
+ const expectedImprovement = 0.60 + (gap * 0.20);
204
+ return {
205
+ genes: genes.length > 0 ? genes : context.genome.chromosomes.c1.operations,
206
+ summary,
207
+ expectedImprovement,
208
+ };
209
+ }
210
+ deepClone(genome) {
211
+ return JSON.parse(JSON.stringify(genome));
212
+ }
213
+ generateId() {
214
+ return `mut_breakthrough_${Date.now()}_${Math.random().toString(36).substring(7)}`;
215
+ }
216
+ }
217
+ //# sourceMappingURL=BreakthroughOperator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BreakthroughOperator.js","sourceRoot":"","sources":["../../../../src/evolution/boost/operators/BreakthroughOperator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { GenomeV2, MutationType } from '../../../types/GenomeV2.js';
2
+ import type { IMutationOperator, MutationContext, MutationResult } from '../../MutationOperator.js';
3
+ export interface CrossoverParent {
4
+ genome: GenomeV2;
5
+ fitness: number;
6
+ }
7
+ export declare class CrossoverMutationOperator implements IMutationOperator {
8
+ name: MutationType;
9
+ description: string;
10
+ targetChromosome: 'c1';
11
+ private population;
12
+ addToPopulation(genome: GenomeV2, fitness: number): void;
13
+ mutate(context: MutationContext): Promise<MutationResult>;
14
+ estimateImprovement(context: MutationContext): number;
15
+ private selectParents;
16
+ private createOffspring;
17
+ private combineGenes;
18
+ private mergeContent;
19
+ private similarity;
20
+ private deepClone;
21
+ private generateId;
22
+ private createEmptyMutation;
23
+ getPopulationSize(): number;
24
+ clearPopulation(): void;
25
+ }
26
+ //# sourceMappingURL=CrossoverMutationOperator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CrossoverMutationOperator.d.ts","sourceRoot":"","sources":["../../../../src/evolution/boost/operators/CrossoverMutationOperator.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EACR,QAAQ,EAER,YAAY,EAEf,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EACR,iBAAiB,EACjB,eAAe,EACf,cAAc,EACjB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,QAAQ,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACnB;AAQD,qBAAa,yBAA0B,YAAW,iBAAiB;IAC/D,IAAI,EAAE,YAAY,CAAwB;IAC1C,WAAW,SAA8D;IACzE,gBAAgB,EAAE,IAAI,CAAQ;IAG9B,OAAO,CAAC,UAAU,CAAyB;IAK3C,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAUlD,MAAM,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IA2C/D,mBAAmB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM;IAsBrD,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,eAAe;IAqDvB,OAAO,CAAC,YAAY;IA0BpB,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,mBAAmB;IAoB3B,iBAAiB,IAAI,MAAM;IAO3B,eAAe,IAAI,IAAI;CAG1B"}
@@ -0,0 +1,160 @@
1
+ export class CrossoverMutationOperator {
2
+ name = 'crossover_mutation';
3
+ description = 'Genetic recombination from multiple high-fitness parents';
4
+ targetChromosome = 'c1';
5
+ population = [];
6
+ addToPopulation(genome, fitness) {
7
+ this.population.push({ genome, fitness });
8
+ this.population.sort((a, b) => b.fitness - a.fitness);
9
+ if (this.population.length > 10) {
10
+ this.population = this.population.slice(0, 10);
11
+ }
12
+ }
13
+ async mutate(context) {
14
+ if (this.population.length < 2) {
15
+ return {
16
+ success: false,
17
+ mutant: context.genome,
18
+ mutation: this.createEmptyMutation(),
19
+ description: 'Not enough parents for crossover (need at least 2)',
20
+ expectedImprovement: 0,
21
+ };
22
+ }
23
+ const parents = this.selectParents();
24
+ const offspring = this.createOffspring(parents, context);
25
+ const mutation = {
26
+ id: this.generateId(),
27
+ timestamp: new Date(),
28
+ chromosome: 'c1',
29
+ operation: this.name,
30
+ before: JSON.stringify(context.genome.chromosomes.c1),
31
+ after: JSON.stringify(offspring.chromosomes.c1),
32
+ diff: `Crossover from ${parents.length} parents`,
33
+ trigger: 'drift-detected',
34
+ reason: context.reason,
35
+ sandboxTested: false,
36
+ promoted: false,
37
+ proposer: 'system',
38
+ };
39
+ return {
40
+ success: true,
41
+ mutant: offspring,
42
+ mutation,
43
+ description: `Genetic recombination from ${parents.length} high-fitness parents`,
44
+ expectedImprovement: 0.35,
45
+ };
46
+ }
47
+ estimateImprovement(context) {
48
+ if (this.population.length < 2) {
49
+ return 0;
50
+ }
51
+ const avgParentFitness = this.population.slice(0, 3)
52
+ .reduce((sum, p) => sum + p.fitness, 0) / Math.min(3, this.population.length);
53
+ const currentFitness = context.genome.fitness.composite;
54
+ const fitnessGap = avgParentFitness - currentFitness;
55
+ return 0.35 + Math.max(0, fitnessGap * 0.5);
56
+ }
57
+ selectParents() {
58
+ const numParents = Math.min(3, this.population.length);
59
+ return this.population.slice(0, numParents);
60
+ }
61
+ createOffspring(parents, context) {
62
+ const offspring = this.deepClone(context.genome);
63
+ const allGenesByCategory = new Map();
64
+ for (const parent of parents) {
65
+ for (const gene of parent.genome.chromosomes.c1.operations) {
66
+ if (!allGenesByCategory.has(gene.category)) {
67
+ allGenesByCategory.set(gene.category, []);
68
+ }
69
+ allGenesByCategory.get(gene.category).push({
70
+ ...gene,
71
+ parentFitness: parent.fitness,
72
+ });
73
+ }
74
+ }
75
+ const offspringGenes = [];
76
+ for (const [category, genes] of allGenesByCategory) {
77
+ const sortedGenes = genes.sort((a, b) => {
78
+ const fitnessA = a.parentFitness || 0;
79
+ const fitnessB = b.parentFitness || 0;
80
+ return fitnessB - fitnessA;
81
+ });
82
+ const bestGene = sortedGenes[0];
83
+ if (sortedGenes.length > 1) {
84
+ const combinedGene = this.combineGenes(sortedGenes[0], sortedGenes[1]);
85
+ offspringGenes.push(combinedGene);
86
+ }
87
+ else {
88
+ offspringGenes.push(bestGene);
89
+ }
90
+ }
91
+ offspring.chromosomes.c1.operations = offspringGenes;
92
+ return offspring;
93
+ }
94
+ combineGenes(gene1, gene2) {
95
+ const combined = {
96
+ ...gene1,
97
+ content: this.mergeCont(gene1.content, gene2.content),
98
+ version: Math.max(gene1.version, gene2.version) + 1,
99
+ lastModified: new Date(),
100
+ successRate: Math.max(gene1.successRate, gene2.successRate),
101
+ mutationHistory: [
102
+ ...(gene1.mutationHistory || []),
103
+ {
104
+ operation: this.name,
105
+ timestamp: new Date(),
106
+ reason: 'Crossover recombination',
107
+ },
108
+ ],
109
+ };
110
+ return combined;
111
+ }
112
+ mergeContent(content1, content2) {
113
+ const sentences1 = content1.split(/[.!?]\s+/).filter(s => s.length > 10);
114
+ const sentences2 = content2.split(/[.!?]\s+/).filter(s => s.length > 10);
115
+ const allSentences = [...sentences1];
116
+ for (const s2 of sentences2) {
117
+ const isSimilar = sentences1.some(s1 => this.similarity(s1, s2) > 0.7);
118
+ if (!isSimilar) {
119
+ allSentences.push(s2);
120
+ }
121
+ }
122
+ return allSentences.join('. ') + '.';
123
+ }
124
+ similarity(s1, s2) {
125
+ const words1 = new Set(s1.toLowerCase().split(/\s+/));
126
+ const words2 = new Set(s2.toLowerCase().split(/\s+/));
127
+ const intersection = new Set([...words1].filter(w => words2.has(w)));
128
+ const union = new Set([...words1, ...words2]);
129
+ return intersection.size / union.size;
130
+ }
131
+ deepClone(genome) {
132
+ return JSON.parse(JSON.stringify(genome));
133
+ }
134
+ generateId() {
135
+ return `mut_crossover_${Date.now()}_${Math.random().toString(36).substring(7)}`;
136
+ }
137
+ createEmptyMutation() {
138
+ return {
139
+ id: this.generateId(),
140
+ timestamp: new Date(),
141
+ chromosome: 'c1',
142
+ operation: this.name,
143
+ before: '',
144
+ after: '',
145
+ diff: '',
146
+ trigger: 'drift-detected',
147
+ reason: 'Insufficient population for crossover',
148
+ sandboxTested: false,
149
+ promoted: false,
150
+ proposer: 'system',
151
+ };
152
+ }
153
+ getPopulationSize() {
154
+ return this.population.length;
155
+ }
156
+ clearPopulation() {
157
+ this.population = [];
158
+ }
159
+ }
160
+ //# sourceMappingURL=CrossoverMutationOperator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CrossoverMutationOperator.js","sourceRoot":"","sources":["../../../../src/evolution/boost/operators/CrossoverMutationOperator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { MutationType } from '../../../types/GenomeV2.js';
2
+ import type { IMutationOperator, MutationContext, MutationResult } from '../../MutationOperator.js';
3
+ import type { GeneBank } from '../../../gene-bank/GeneBank.js';
4
+ import type { LLMAdapter } from '../../../interfaces/LLMAdapter.js';
5
+ export declare class PatternExtractionOperator implements IMutationOperator {
6
+ private geneBank;
7
+ private llm;
8
+ name: MutationType;
9
+ description: string;
10
+ targetChromosome: 'c1';
11
+ constructor(geneBank: GeneBank, llm: LLMAdapter);
12
+ mutate(context: MutationContext): Promise<MutationResult>;
13
+ estimateImprovement(context: MutationContext): number;
14
+ private identifyWeaknesses;
15
+ private findRelevantPatterns;
16
+ private mapWeaknessToGeneType;
17
+ private integratePatterns;
18
+ private buildIntegrationPrompt;
19
+ private parseEnhancedGenes;
20
+ private deepClone;
21
+ private generateId;
22
+ private createEmptyMutation;
23
+ }
24
+ //# sourceMappingURL=PatternExtractionOperator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PatternExtractionOperator.d.ts","sourceRoot":"","sources":["../../../../src/evolution/boost/operators/PatternExtractionOperator.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,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAQpE,qBAAa,yBAA0B,YAAW,iBAAiB;IAM3D,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,GAAG;IANf,IAAI,EAAE,YAAY,CAAwB;IAC1C,WAAW,SAA8D;IACzE,gBAAgB,EAAE,IAAI,CAAQ;gBAGlB,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,UAAU;IAGrB,MAAM,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAoD/D,mBAAmB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM;IAqBrD,OAAO,CAAC,kBAAkB;YAuCZ,oBAAoB;IAqClC,OAAO,CAAC,qBAAqB;YAiBf,iBAAiB;IAuB/B,OAAO,CAAC,sBAAsB;IA2C9B,OAAO,CAAC,kBAAkB;IAiC1B,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,mBAAmB;CAgB9B"}
@@ -0,0 +1,212 @@
1
+ export class PatternExtractionOperator {
2
+ geneBank;
3
+ llm;
4
+ name = 'pattern_extraction';
5
+ description = 'Extract and integrate successful patterns from Gene Bank';
6
+ targetChromosome = 'c1';
7
+ constructor(geneBank, llm) {
8
+ this.geneBank = geneBank;
9
+ this.llm = llm;
10
+ }
11
+ async mutate(context) {
12
+ const mutant = this.deepClone(context.genome);
13
+ const weaknesses = this.identifyWeaknesses(context);
14
+ const relevantPatterns = await this.findRelevantPatterns(weaknesses, context);
15
+ if (relevantPatterns.length === 0) {
16
+ return {
17
+ success: false,
18
+ mutant: context.genome,
19
+ mutation: this.createEmptyMutation(),
20
+ description: 'No relevant patterns found in Gene Bank',
21
+ expectedImprovement: 0,
22
+ };
23
+ }
24
+ mutant.chromosomes.c1.operations = await this.integratePatterns(mutant.chromosomes.c1.operations, relevantPatterns, context);
25
+ const mutation = {
26
+ id: this.generateId(),
27
+ timestamp: new Date(),
28
+ chromosome: 'c1',
29
+ operation: this.name,
30
+ before: JSON.stringify(context.genome.chromosomes.c1),
31
+ after: JSON.stringify(mutant.chromosomes.c1),
32
+ diff: `Integrated ${relevantPatterns.length} patterns from Gene Bank`,
33
+ trigger: 'drift-detected',
34
+ reason: context.reason,
35
+ sandboxTested: false,
36
+ promoted: false,
37
+ proposer: 'system',
38
+ };
39
+ return {
40
+ success: true,
41
+ mutant,
42
+ mutation,
43
+ description: `Integrated ${relevantPatterns.length} successful patterns from Gene Bank`,
44
+ expectedImprovement: 0.50,
45
+ };
46
+ }
47
+ estimateImprovement(context) {
48
+ const fitness = context.genome.fitness;
49
+ const gaps = [
50
+ 1 - fitness.quality,
51
+ 1 - fitness.successRate,
52
+ 1 - fitness.tokenEfficiency,
53
+ fitness.interventionRate,
54
+ ];
55
+ const avgGap = gaps.reduce((sum, g) => sum + g, 0) / gaps.length;
56
+ return 0.50 + (avgGap * 0.20);
57
+ }
58
+ identifyWeaknesses(context) {
59
+ const weaknesses = [];
60
+ const fitness = context.genome.fitness;
61
+ if (fitness.quality < 0.7) {
62
+ weaknesses.push('low-quality-responses');
63
+ }
64
+ if (fitness.successRate < 0.8) {
65
+ weaknesses.push('low-success-rate');
66
+ }
67
+ if (fitness.tokenEfficiency < 0.6) {
68
+ weaknesses.push('inefficient-token-usage');
69
+ }
70
+ if (fitness.interventionRate > 0.15) {
71
+ weaknesses.push('high-intervention-rate');
72
+ }
73
+ if (fitness.latency > 2000) {
74
+ weaknesses.push('high-latency');
75
+ }
76
+ if (context.reason.toLowerCase().includes('error')) {
77
+ weaknesses.push('error-handling');
78
+ }
79
+ if (context.reason.toLowerCase().includes('tool')) {
80
+ weaknesses.push('tool-usage');
81
+ }
82
+ return weaknesses;
83
+ }
84
+ async findRelevantPatterns(weaknesses, context) {
85
+ const patterns = [];
86
+ try {
87
+ for (const weakness of weaknesses) {
88
+ const genes = await this.geneBank.searchGenes({
89
+ type: [this.mapWeaknessToGeneType(weakness)],
90
+ minFitness: 0.75,
91
+ limit: 3,
92
+ });
93
+ for (const gene of genes) {
94
+ if (gene.fitness > context.genome.fitness.composite) {
95
+ patterns.push({
96
+ pattern: gene.pattern,
97
+ fitness: gene.fitness,
98
+ category: gene.type,
99
+ });
100
+ }
101
+ }
102
+ }
103
+ }
104
+ catch (error) {
105
+ console.warn('Gene Bank not available for pattern extraction:', error);
106
+ }
107
+ return patterns.sort((a, b) => b.fitness - a.fitness).slice(0, 5);
108
+ }
109
+ mapWeaknessToGeneType(weakness) {
110
+ const mapping = {
111
+ 'low-quality-responses': 'reasoning-pattern',
112
+ 'low-success-rate': 'tool-usage-pattern',
113
+ 'inefficient-token-usage': 'cognitive-compression',
114
+ 'high-intervention-rate': 'safety-constraint',
115
+ 'high-latency': 'performance-optimization',
116
+ 'error-handling': 'error-recovery-pattern',
117
+ 'tool-usage': 'tool-usage-pattern',
118
+ };
119
+ return mapping[weakness] || 'reasoning-pattern';
120
+ }
121
+ async integratePatterns(genes, patterns, context) {
122
+ const integrationPrompt = this.buildIntegrationPrompt(genes, patterns, context);
123
+ const response = await this.llm.generateText({
124
+ prompt: integrationPrompt,
125
+ temperature: 0.5,
126
+ maxTokens: 2000,
127
+ });
128
+ const enhancedGenes = this.parseEnhancedGenes(response.content, genes);
129
+ return enhancedGenes;
130
+ }
131
+ buildIntegrationPrompt(genes, patterns, context) {
132
+ const genesText = genes.map((g, i) => `Gene ${i + 1} (${g.category}):\n${g.content}`).join('\n\n');
133
+ const patternsText = patterns.map((p, i) => `Pattern ${i + 1} (${p.category}, fitness: ${(p.fitness * 100).toFixed(0)}%):\n${p.pattern}`).join('\n\n');
134
+ return `You are an expert AI agent optimizer. Integrate successful patterns into existing genes.
135
+
136
+ CURRENT GENES:
137
+ ${genesText}
138
+
139
+ SUCCESSFUL PATTERNS TO INTEGRATE (from high-performing agents):
140
+ ${patternsText}
141
+
142
+ CURRENT PERFORMANCE:
143
+ - Quality: ${(context.genome.fitness.quality * 100).toFixed(1)}%
144
+ - Success Rate: ${(context.genome.fitness.successRate * 100).toFixed(1)}%
145
+ - Token Efficiency: ${(context.genome.fitness.tokenEfficiency * 100).toFixed(1)}%
146
+
147
+ TASK: Enhance the current genes by intelligently integrating these successful patterns.
148
+
149
+ GUIDELINES:
150
+ 1. Preserve core functionality of existing genes
151
+ 2. Integrate pattern techniques that address weaknesses
152
+ 3. Maintain clarity and actionability
153
+ 4. Don't duplicate - merge intelligently
154
+ 5. Keep each gene focused on its category
155
+
156
+ Return the enhanced genes in this EXACT format:
157
+ ---GENE:${genes[0]?.category || 'tool-usage'}---
158
+ [Enhanced content here]
159
+ ---END---
160
+
161
+ For each gene, use the separator format above.`;
162
+ }
163
+ parseEnhancedGenes(response, originalGenes) {
164
+ const enhanced = [];
165
+ const geneMatches = response.matchAll(/---GENE:(\S+)---([\s\S]*?)---END---/g);
166
+ for (const match of geneMatches) {
167
+ const category = match[1];
168
+ const content = match[2].trim();
169
+ const original = originalGenes.find(g => g.category === category);
170
+ if (original) {
171
+ enhanced.push({
172
+ ...original,
173
+ content,
174
+ version: original.version + 1,
175
+ lastModified: new Date(),
176
+ mutationHistory: [
177
+ ...(original.mutationHistory || []),
178
+ {
179
+ operation: this.name,
180
+ timestamp: new Date(),
181
+ reason: 'Pattern integration from Gene Bank',
182
+ },
183
+ ],
184
+ });
185
+ }
186
+ }
187
+ return enhanced.length > 0 ? enhanced : originalGenes;
188
+ }
189
+ deepClone(genome) {
190
+ return JSON.parse(JSON.stringify(genome));
191
+ }
192
+ generateId() {
193
+ return `mut_pattern_${Date.now()}_${Math.random().toString(36).substring(7)}`;
194
+ }
195
+ createEmptyMutation() {
196
+ return {
197
+ id: this.generateId(),
198
+ timestamp: new Date(),
199
+ chromosome: 'c1',
200
+ operation: this.name,
201
+ before: '',
202
+ after: '',
203
+ diff: '',
204
+ trigger: 'drift-detected',
205
+ reason: 'No patterns found',
206
+ sandboxTested: false,
207
+ promoted: false,
208
+ proposer: 'system',
209
+ };
210
+ }
211
+ }
212
+ //# sourceMappingURL=PatternExtractionOperator.js.map