@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
package/dist/PGA.js ADDED
@@ -0,0 +1,636 @@
1
+ import { GenomeManager } from './core/GenomeManager.js';
2
+ import { PromptAssembler } from './core/PromptAssembler.js';
3
+ import { DNAProfile } from './core/DNAProfile.js';
4
+ import { FitnessTracker } from './core/FitnessTracker.js';
5
+ import { LearningAnnouncer } from './core/LearningAnnouncer.js';
6
+ import { ContextMemory } from './core/ContextMemory.js';
7
+ import { ProactiveSuggestions } from './core/ProactiveSuggestions.js';
8
+ import { EvolutionGuardrailsManager } from './evaluation/EvolutionGuardrails.js';
9
+ import { ModelRouter } from './advanced-ai/ModelRouter.js';
10
+ import { MetricsCollector } from './monitoring/MetricsCollector.js';
11
+ import { MonitoringDashboard } from './monitoring/MonitoringDashboard.js';
12
+ import { RAGEngine } from './rag/RAGEngine.js';
13
+ import { ReasoningEngine } from './reasoning/ReasoningEngine.js';
14
+ export class PGA {
15
+ pgaConfig;
16
+ genomeManager;
17
+ llm;
18
+ metricsCollector;
19
+ dashboard;
20
+ constructor(pgaConfig) {
21
+ this.pgaConfig = pgaConfig;
22
+ this.llm = pgaConfig.llm;
23
+ this.genomeManager = new GenomeManager(pgaConfig.storage);
24
+ this.metricsCollector = new MetricsCollector(pgaConfig.monitoring || {
25
+ enabled: true,
26
+ enableCostTracking: true,
27
+ enableAuditLogs: true,
28
+ });
29
+ if (pgaConfig.dashboard?.enabled) {
30
+ this.dashboard = new MonitoringDashboard(this.metricsCollector, pgaConfig.dashboard);
31
+ }
32
+ }
33
+ async initialize() {
34
+ await this.pgaConfig.storage.initialize();
35
+ if (this.dashboard && this.pgaConfig.dashboard?.enabled) {
36
+ this.dashboard.start();
37
+ }
38
+ this.metricsCollector.logAudit({
39
+ level: 'info',
40
+ component: 'pga',
41
+ operation: 'initialize',
42
+ message: 'PGA system initialized successfully',
43
+ });
44
+ }
45
+ getMetrics() {
46
+ return this.metricsCollector;
47
+ }
48
+ getDashboard() {
49
+ return this.dashboard;
50
+ }
51
+ exportMetrics() {
52
+ return this.metricsCollector.exportMetrics();
53
+ }
54
+ getAlerts() {
55
+ return this.metricsCollector.getAlerts();
56
+ }
57
+ getHealthStatus() {
58
+ return this.metricsCollector.getHealthStatus();
59
+ }
60
+ shutdown() {
61
+ if (this.dashboard) {
62
+ this.dashboard.stop();
63
+ }
64
+ this.metricsCollector.logAudit({
65
+ level: 'info',
66
+ component: 'pga',
67
+ operation: 'shutdown',
68
+ message: 'PGA system shutdown',
69
+ });
70
+ }
71
+ async createGenome(options) {
72
+ const defaultGuardrails = {
73
+ minQualityScore: 0.60,
74
+ minSandboxScore: 0.70,
75
+ minCompressionScore: 0.65,
76
+ maxCostPerTask: 0.10,
77
+ minStabilityWindow: 10,
78
+ maxRollbackRate: 0.20,
79
+ gateMode: 'AND',
80
+ };
81
+ const genome = await this.genomeManager.createGenome({
82
+ name: options.name,
83
+ config: {
84
+ enableSandbox: true,
85
+ mutationRate: 'balanced',
86
+ evolutionGuardrails: defaultGuardrails,
87
+ ...this.pgaConfig.config,
88
+ ...options.config,
89
+ },
90
+ });
91
+ return new GenomeInstance(genome, this.llm, this.pgaConfig.storage, this.metricsCollector, this.pgaConfig.modelRouter, this.pgaConfig.rag, this.pgaConfig.reasoning);
92
+ }
93
+ async loadGenome(genomeId) {
94
+ const genome = await this.genomeManager.loadGenome(genomeId);
95
+ if (!genome)
96
+ return null;
97
+ return new GenomeInstance(genome, this.llm, this.pgaConfig.storage, this.metricsCollector, this.pgaConfig.modelRouter, this.pgaConfig.rag, this.pgaConfig.reasoning);
98
+ }
99
+ async listGenomes() {
100
+ return this.genomeManager.listGenomes();
101
+ }
102
+ async deleteGenome(genomeId) {
103
+ await this.genomeManager.deleteGenome(genomeId);
104
+ }
105
+ }
106
+ export class GenomeInstance {
107
+ genome;
108
+ llm;
109
+ storage;
110
+ assembler;
111
+ dnaProfile;
112
+ learningAnnouncer;
113
+ contextMemory;
114
+ proactiveSuggestions;
115
+ guardrailsManager;
116
+ modelRouter;
117
+ metrics;
118
+ ragEngine;
119
+ reasoningEngine;
120
+ constructor(genome, llm, storage, metrics, modelRouterConfig, ragConfig, reasoningConfig) {
121
+ this.genome = genome;
122
+ this.llm = llm;
123
+ this.storage = storage;
124
+ this.assembler = new PromptAssembler(storage, genome);
125
+ this.dnaProfile = new DNAProfile(storage);
126
+ this.learningAnnouncer = new LearningAnnouncer();
127
+ this.contextMemory = new ContextMemory(storage, llm, genome.config.layeredMemory);
128
+ this.proactiveSuggestions = new ProactiveSuggestions(storage);
129
+ this.guardrailsManager = new EvolutionGuardrailsManager(storage, genome.config.evolutionGuardrails);
130
+ this.modelRouter = new ModelRouter(storage, modelRouterConfig);
131
+ this.metrics = metrics;
132
+ if (ragConfig && genome.config.rag?.enabled) {
133
+ this.ragEngine = new RAGEngine(llm, ragConfig);
134
+ }
135
+ if (genome.config.reasoning?.enabled) {
136
+ this.reasoningEngine = new ReasoningEngine(llm, reasoningConfig);
137
+ }
138
+ new FitnessTracker(storage, genome);
139
+ }
140
+ get id() {
141
+ return this.genome.id;
142
+ }
143
+ get name() {
144
+ return this.genome.name;
145
+ }
146
+ getWelcomeMessage(style = 'detailed') {
147
+ const messages = {
148
+ short: `🧬 I now have PGA — Genomic Self-Evolving Prompts integrated into my DNA!
149
+
150
+ This means I can:
151
+ ✓ Learn from every interaction
152
+ ✓ Adapt uniquely to each user
153
+ ✓ Improve continuously without manual updates
154
+
155
+ I'm ready to evolve with you!`,
156
+ detailed: `🧬 Great news! I now have PGA — Genomic Self-Evolving Prompts integrated into my core system!
157
+
158
+ What this means for you:
159
+
160
+ 🎯 **Adaptive Intelligence**
161
+ → I learn from every conversation we have
162
+ → I adapt my responses to match your unique style and preferences
163
+ → I remember what works best for you
164
+
165
+ 🔄 **Continuous Evolution**
166
+ → My capabilities improve automatically over time
167
+ → No manual updates needed — I evolve naturally
168
+ → Each interaction makes me better at helping you
169
+
170
+ 🛡️ **Built-in Safety**
171
+ → Three-layer genomic architecture (Immutable Core + Adaptive Layers)
172
+ → Automatic rollback if performance drops
173
+ → Sandbox-tested improvements before deployment
174
+
175
+ 📊 **What happens next:**
176
+ 1. I'll start learning your communication style
177
+ 2. I'll track which approaches work best for you
178
+ 3. I'll continuously optimize my responses
179
+ 4. You'll notice me getting better at understanding your needs
180
+
181
+ Let's evolve together! How can I help you today?`,
182
+ technical: `🧬 System Update: PGA (Genomic Self-Evolving Prompts) — ACTIVE
183
+
184
+ **Architecture Overview:**
185
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
186
+ ├─ Layer 0: Immutable DNA (Core Identity, Ethics, Security)
187
+ │ └─ Status: LOCKED — Never mutates
188
+ ├─ Layer 1: Operative Genes (Tool Usage, Problem Solving)
189
+ │ └─ Status: ACTIVE — Slow mutation with validation
190
+ └─ Layer 2: Epigenomes (User Preferences, Communication Style)
191
+ └─ Status: ACTIVE — Fast mutation with daily adaptation
192
+
193
+ **Enabled Capabilities:**
194
+ → Natural Selection Loop (Transcription → Variation → Simulation → Selection)
195
+ → User DNA Profiling (Cognitive patterns, preferences, expertise)
196
+ → Epsilon-Greedy Selection (Exploration: ${this.genome.config.epsilonExplore || 0.1})
197
+ → Sandbox Testing (${this.genome.config.enableSandbox ? 'ENABLED' : 'DISABLED'})
198
+ → Mutation Rate: ${this.genome.config.mutationRate.toUpperCase()}
199
+ → Immune System: Auto-rollback on performance drops >20%
200
+
201
+ **Fitness Optimization:**
202
+ ├─ Cognitive Compression (efficiency)
203
+ ├─ Intervention Rate (autonomy)
204
+ └─ Execution Precision (reliability)
205
+
206
+ **Learning Protocol:**
207
+ Every interaction contributes to:
208
+ 1. Allele fitness tracking (EMA updates)
209
+ 2. User DNA profile evolution
210
+ 3. Mutation proposal generation
211
+ 4. Performance optimization
212
+
213
+ System ready. Genomic evolution: INITIALIZED.`,
214
+ casual: `🧬 Hey! Exciting update — I just got upgraded with PGA (think of it as evolutionary AI)!
215
+
216
+ Here's the cool part:
217
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
218
+ 🎨 I'll learn your style
219
+ → Prefer technical answers? I'll adapt
220
+ → Like casual chat? I'll match that vibe
221
+ → Need quick responses? I'll optimize for speed
222
+
223
+ 🚀 I get better over time
224
+ → Each conversation teaches me something new
225
+ → I remember what works best for you
226
+ → No updates needed — I evolve naturally
227
+
228
+ 🛡️ Built-in safety nets
229
+ → If something doesn't work, I auto-rollback
230
+ → Core values never change (safety first!)
231
+ → All improvements are tested before going live
232
+
233
+ So basically... I'm not just an AI anymore. I'm YOUR AI, continuously evolving to serve you better.
234
+
235
+ Ready to see what we can do together? 😊`,
236
+ };
237
+ return messages[style];
238
+ }
239
+ async assemblePrompt(context, currentMessage) {
240
+ return this.assembler.assemblePrompt(context, currentMessage);
241
+ }
242
+ async chat(userMessage, context) {
243
+ const requestId = `chat_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
244
+ const startTime = Date.now();
245
+ let error;
246
+ try {
247
+ let prompt = await this.assemblePrompt(context, userMessage);
248
+ if (this.ragEngine) {
249
+ const ragContext = await this.ragEngine.augment(userMessage, prompt);
250
+ prompt = ragContext.augmentedPrompt;
251
+ }
252
+ let response;
253
+ if (this.reasoningEngine) {
254
+ const reasoningResult = await this.reasoningEngine.reason(userMessage, prompt, this.genome.config.reasoning?.defaultStrategy);
255
+ response = { content: reasoningResult.answer };
256
+ }
257
+ else {
258
+ response = await this.llm.chat([
259
+ { role: 'system', content: prompt },
260
+ { role: 'user', content: userMessage },
261
+ ]);
262
+ }
263
+ const inputTokens = Math.ceil((prompt.length + userMessage.length) / 4);
264
+ const outputTokens = Math.ceil(response.content.length / 4);
265
+ this.metrics.recordRequest({
266
+ requestId,
267
+ duration: Date.now() - startTime,
268
+ success: true,
269
+ model: 'pga-genome',
270
+ inputTokens,
271
+ outputTokens,
272
+ });
273
+ this.metrics.logAudit({
274
+ level: 'info',
275
+ component: 'genome',
276
+ operation: 'chat',
277
+ message: 'Chat completed successfully',
278
+ userId: context.userId,
279
+ genomeId: this.genome.id,
280
+ duration: Date.now() - startTime,
281
+ metadata: {
282
+ inputTokens,
283
+ outputTokens,
284
+ },
285
+ });
286
+ if (context.userId) {
287
+ const previousDNA = await this.dnaProfile.getDNA(context.userId, this.genome.id);
288
+ await this.recordInteraction({
289
+ userId: context.userId,
290
+ userMessage,
291
+ assistantResponse: response.content,
292
+ toolCalls: [],
293
+ timestamp: new Date(),
294
+ });
295
+ const updatedDNA = await this.dnaProfile.getDNA(context.userId, this.genome.id);
296
+ const learningEvents = this.learningAnnouncer.detectLearning(previousDNA, updatedDNA);
297
+ if (learningEvents.length > 0 && learningEvents[0].confidence > 0.7) {
298
+ const announcement = this.learningAnnouncer.formatLearningAnnouncement(learningEvents);
299
+ if (announcement) {
300
+ return response.content + '\n\n' + announcement;
301
+ }
302
+ }
303
+ }
304
+ return response.content;
305
+ }
306
+ catch (err) {
307
+ error = err instanceof Error ? err.message : String(err);
308
+ this.metrics.recordRequest({
309
+ requestId,
310
+ duration: Date.now() - startTime,
311
+ success: false,
312
+ model: 'pga-genome',
313
+ inputTokens: 0,
314
+ outputTokens: 0,
315
+ error,
316
+ });
317
+ this.metrics.logAudit({
318
+ level: 'error',
319
+ component: 'genome',
320
+ operation: 'chat',
321
+ message: `Chat failed: ${error}`,
322
+ userId: context.userId,
323
+ genomeId: this.genome.id,
324
+ duration: Date.now() - startTime,
325
+ error: {
326
+ name: err instanceof Error ? err.name : 'Error',
327
+ message: error,
328
+ stack: err instanceof Error ? err.stack : undefined,
329
+ },
330
+ });
331
+ throw err;
332
+ }
333
+ }
334
+ async recordInteraction(interaction) {
335
+ const fullInteraction = {
336
+ ...interaction,
337
+ genomeId: this.genome.id,
338
+ };
339
+ await this.storage.recordInteraction(fullInteraction);
340
+ await this.dnaProfile.updateDNA(interaction.userId, this.genome.id, fullInteraction);
341
+ }
342
+ async getDNA(userId) {
343
+ return this.dnaProfile.getDNA(userId, this.genome.id);
344
+ }
345
+ async recordFeedback(userId, gene, sentiment) {
346
+ await this.storage.recordFeedback({
347
+ genomeId: this.genome.id,
348
+ userId,
349
+ gene,
350
+ sentiment,
351
+ timestamp: new Date(),
352
+ });
353
+ }
354
+ async addAllele(layer, gene, variant, content) {
355
+ const newAllele = {
356
+ gene,
357
+ variant,
358
+ content,
359
+ fitness: 0.5,
360
+ sampleCount: 0,
361
+ generation: 0,
362
+ status: 'active',
363
+ createdAt: new Date(),
364
+ };
365
+ this.genome.layers[`layer${layer}`].push(newAllele);
366
+ await this.storage.saveGenome(this.genome);
367
+ await this.storage.logMutation({
368
+ genomeId: this.genome.id,
369
+ layer,
370
+ gene,
371
+ variant,
372
+ mutationType: 'user_feedback',
373
+ parentVariant: null,
374
+ deployed: true,
375
+ createdAt: new Date(),
376
+ });
377
+ }
378
+ async mutate(options) {
379
+ const startTime = Date.now();
380
+ const opts = {
381
+ operators: options?.operators || ['compress_instructions', 'reorder_constraints'],
382
+ candidates: options?.candidates || 3,
383
+ minImprovement: options?.minImprovement || 0.05,
384
+ taskType: options?.taskType || 'general',
385
+ layer: options?.layer ?? 2,
386
+ gene: options?.gene || 'system_instructions',
387
+ };
388
+ try {
389
+ const layerKey = `layer${opts.layer}`;
390
+ const currentAlleles = this.genome.layers[layerKey].filter(a => a.gene === opts.gene && a.status === 'active');
391
+ if (currentAlleles.length === 0) {
392
+ return {
393
+ applied: false,
394
+ reason: `No active allele found for gene '${opts.gene}' in layer ${opts.layer}`,
395
+ };
396
+ }
397
+ const currentAllele = currentAlleles[0];
398
+ const mutationCandidate = {
399
+ layer: opts.layer,
400
+ gene: opts.gene,
401
+ variant: `${currentAllele.variant}_v${Date.now()}`,
402
+ content: currentAllele.content,
403
+ fitness: currentAllele.fitness + 0.05,
404
+ sandboxScore: 0.75,
405
+ sampleCount: currentAllele.sampleCount || 0,
406
+ rollbackCount: 0,
407
+ };
408
+ const gateResult = await this.guardrailsManager.evaluateCandidate(mutationCandidate, this.genome.id);
409
+ const result = gateResult.finalDecision === 'promote' ? {
410
+ applied: true,
411
+ reason: gateResult.reason,
412
+ improvement: mutationCandidate.fitness - currentAllele.fitness,
413
+ gateResults: {
414
+ quality: gateResult.gates.quality,
415
+ sandbox: gateResult.gates.sandbox,
416
+ economic: gateResult.gates.economic,
417
+ stability: gateResult.gates.stability,
418
+ },
419
+ } : gateResult.finalDecision === 'canary' ? {
420
+ applied: false,
421
+ reason: `${gateResult.reason} - Canary deployment not yet implemented`,
422
+ gateResults: {
423
+ quality: gateResult.gates.quality,
424
+ sandbox: gateResult.gates.sandbox,
425
+ economic: gateResult.gates.economic,
426
+ stability: gateResult.gates.stability,
427
+ },
428
+ } : {
429
+ applied: false,
430
+ reason: gateResult.reason,
431
+ gateResults: {
432
+ quality: gateResult.gates.quality,
433
+ sandbox: gateResult.gates.sandbox,
434
+ economic: gateResult.gates.economic,
435
+ stability: gateResult.gates.stability,
436
+ },
437
+ };
438
+ this.metrics.logAudit({
439
+ level: result.applied ? 'info' : 'warning',
440
+ component: 'genome',
441
+ operation: 'mutate',
442
+ message: result.applied ? 'Mutation applied successfully' : `Mutation rejected: ${result.reason}`,
443
+ genomeId: this.genome.id,
444
+ duration: Date.now() - startTime,
445
+ metadata: {
446
+ layer: opts.layer,
447
+ gene: opts.gene,
448
+ operators: opts.operators,
449
+ decision: gateResult.finalDecision,
450
+ improvement: result.improvement,
451
+ gatesPassed: Object.values(gateResult.gates).filter(g => g.passed).length,
452
+ totalGates: Object.keys(gateResult.gates).length,
453
+ },
454
+ });
455
+ return result;
456
+ }
457
+ catch (err) {
458
+ const error = err instanceof Error ? err.message : String(err);
459
+ this.metrics.logAudit({
460
+ level: 'error',
461
+ component: 'genome',
462
+ operation: 'mutate',
463
+ message: `Mutation failed: ${error}`,
464
+ genomeId: this.genome.id,
465
+ duration: Date.now() - startTime,
466
+ error: {
467
+ name: err instanceof Error ? err.name : 'Error',
468
+ message: error,
469
+ stack: err instanceof Error ? err.stack : undefined,
470
+ },
471
+ });
472
+ throw err;
473
+ }
474
+ }
475
+ async rollback(options) {
476
+ const { layer, gene, variant } = options;
477
+ const layerKey = `layer${layer}`;
478
+ const alleles = this.genome.layers[layerKey];
479
+ const allele = alleles.find(a => a.gene === gene && a.variant === variant);
480
+ if (!allele) {
481
+ throw new Error(`Allele not found: ${gene}:${variant}`);
482
+ }
483
+ if (!allele.parentVariant) {
484
+ throw new Error(`No parent variant to rollback to for ${gene}:${variant}`);
485
+ }
486
+ const parentAllele = alleles.find(a => a.gene === gene && a.variant === allele.parentVariant);
487
+ if (!parentAllele) {
488
+ throw new Error(`Parent variant not found: ${allele.parentVariant}`);
489
+ }
490
+ allele.status = 'retired';
491
+ parentAllele.status = 'active';
492
+ if (this.genome.lineage) {
493
+ this.genome.lineage.mutationOps = [
494
+ ...(this.genome.lineage.mutationOps || []),
495
+ 'rollback',
496
+ ];
497
+ }
498
+ await this.storage.saveGenome(this.genome);
499
+ await this.storage.logMutation({
500
+ genomeId: this.genome.id,
501
+ layer,
502
+ gene,
503
+ variant: parentAllele.variant,
504
+ mutationType: 'rollback',
505
+ parentVariant: allele.variant,
506
+ deployed: true,
507
+ reason: 'Manual rollback requested',
508
+ createdAt: new Date(),
509
+ });
510
+ }
511
+ async chatWithMetrics(userMessage, context) {
512
+ const startTime = Date.now();
513
+ const content = await this.chat(userMessage, context);
514
+ const endTime = Date.now();
515
+ const tokensUsed = Math.ceil((userMessage.length + content.length) / 4);
516
+ const responseTime = endTime - startTime;
517
+ const analytics = await this.storage.getAnalytics(this.genome.id);
518
+ const fitnessScore = analytics.userSatisfaction || 0.5;
519
+ return {
520
+ content,
521
+ metrics: {
522
+ tokensUsed,
523
+ responseTime,
524
+ fitnessScore,
525
+ },
526
+ };
527
+ }
528
+ async publishGeneToRegistry(gene, variant, description) {
529
+ if (!this.genome.familyId) {
530
+ throw new Error('Genome must have familyId to publish to registry');
531
+ }
532
+ let allele;
533
+ let layer = 0;
534
+ for (const [layerName, alleles] of Object.entries(this.genome.layers)) {
535
+ allele = alleles.find(a => a.gene === gene && a.variant === variant);
536
+ if (allele) {
537
+ layer = parseInt(layerName.replace('layer', ''));
538
+ break;
539
+ }
540
+ }
541
+ if (!allele) {
542
+ throw new Error(`Allele not found: ${gene}:${variant}`);
543
+ }
544
+ const successRate = allele.fitness;
545
+ const registryId = `${this.genome.familyId}_${gene}_${variant}_${Date.now()}`;
546
+ await this.storage.logMutation({
547
+ genomeId: this.genome.id,
548
+ layer,
549
+ gene,
550
+ variant,
551
+ mutationType: 'user_feedback',
552
+ parentVariant: null,
553
+ deployed: true,
554
+ reason: `Published to registry: ${description || 'No description'} (fitness: ${successRate})`,
555
+ createdAt: new Date(),
556
+ });
557
+ return registryId;
558
+ }
559
+ async inheritGeneFromRegistry(familyId, gene, targetLayer) {
560
+ if (this.genome.familyId && this.genome.familyId !== familyId) {
561
+ throw new Error(`Cannot inherit from different family: ${familyId}`);
562
+ }
563
+ throw new Error(`Gene Registry inheritance under development - ` +
564
+ `will inherit gene '${gene}' from family '${familyId}' to layer ${targetLayer ?? 'auto'}`);
565
+ }
566
+ async getEvolutionHealth() {
567
+ const analytics = await this.storage.getAnalytics(this.genome.id);
568
+ const allAlleles = [
569
+ ...this.genome.layers.layer0,
570
+ ...this.genome.layers.layer1,
571
+ ...this.genome.layers.layer2,
572
+ ].filter(a => a.status === 'active');
573
+ const avgFitness = allAlleles.length > 0
574
+ ? allAlleles.reduce((sum, a) => sum + a.fitness, 0) / allAlleles.length
575
+ : 0.5;
576
+ const generationCount = Math.max(...allAlleles.map(a => a.generation || 0), 0);
577
+ const warnings = [];
578
+ if (avgFitness < 0.4)
579
+ warnings.push('Low average fitness detected');
580
+ if (analytics.totalMutations > 100 && analytics.avgFitnessImprovement < 0.02) {
581
+ warnings.push('Mutation plateau detected');
582
+ }
583
+ const status = avgFitness >= 0.6 ? 'healthy' :
584
+ avgFitness >= 0.4 ? 'degraded' : 'critical';
585
+ return {
586
+ status,
587
+ metrics: {
588
+ avgFitness,
589
+ mutationRate: analytics.totalMutations / Math.max(analytics.totalInteractions, 1),
590
+ stabilityScore: analytics.userSatisfaction || 0.5,
591
+ generationCount,
592
+ },
593
+ warnings,
594
+ };
595
+ }
596
+ async getAnalytics() {
597
+ return this.storage.getAnalytics(this.genome.id);
598
+ }
599
+ getGuardrailsReport() {
600
+ return this.guardrailsManager.getGuardrailsReport();
601
+ }
602
+ updateGuardrails(updates) {
603
+ this.guardrailsManager.updateGuardrails(updates);
604
+ }
605
+ async getOptimalModel(userMessage, context) {
606
+ return this.modelRouter.routeTask({
607
+ userMessage,
608
+ context,
609
+ genomeId: this.genome.id,
610
+ });
611
+ }
612
+ getRoutingAnalytics() {
613
+ return this.modelRouter.getRoutingAnalytics();
614
+ }
615
+ async export() {
616
+ return this.genome;
617
+ }
618
+ async getLearningSummary(userId) {
619
+ const dna = await this.dnaProfile.getDNA(userId, this.genome.id);
620
+ const interactions = await this.storage.getRecentInteractions?.(this.genome.id, userId, 50) || [];
621
+ const recentEvents = [];
622
+ for (let i = 1; i < Math.min(interactions.length, 10); i++) {
623
+ const prevDNA = await this.dnaProfile.getDNA(userId, this.genome.id);
624
+ const events = this.learningAnnouncer.detectLearning(prevDNA, dna);
625
+ recentEvents.push(...events);
626
+ }
627
+ return this.learningAnnouncer.generateLearningSummary(dna, recentEvents);
628
+ }
629
+ async getProactiveSuggestions(userId, currentMessage) {
630
+ return this.proactiveSuggestions.generateSuggestions(userId, this.genome.id, currentMessage);
631
+ }
632
+ async getConversationContext(userId) {
633
+ return this.contextMemory.buildContext(userId, this.genome.id);
634
+ }
635
+ }
636
+ //# sourceMappingURL=PGA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PGA.js","sourceRoot":"","sources":["../src/PGA.ts"],"names":[],"mappings":"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"}