@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,38 @@
1
+ import type { MetricsCollector } from './MetricsCollector.js';
2
+ export interface DashboardConfig {
3
+ refreshInterval?: number;
4
+ showPerformance?: boolean;
5
+ showCost?: boolean;
6
+ showHealth?: boolean;
7
+ showAlerts?: boolean;
8
+ showAuditLogs?: boolean;
9
+ maxLogs?: number;
10
+ }
11
+ export declare class MonitoringDashboard {
12
+ private config;
13
+ private metricsCollector;
14
+ private intervalId?;
15
+ private isRunning;
16
+ constructor(metricsCollector: MetricsCollector, config?: DashboardConfig);
17
+ start(): void;
18
+ stop(): void;
19
+ renderSnapshot(): void;
20
+ private render;
21
+ private renderHealth;
22
+ private renderPerformance;
23
+ private renderCost;
24
+ private renderAlerts;
25
+ private renderAuditLogs;
26
+ private getStatusIcon;
27
+ private getStatusColor;
28
+ private getComponentStatus;
29
+ private getSeverityIcon;
30
+ private getSeverityColor;
31
+ private getLogLevelIcon;
32
+ private formatDuration;
33
+ private formatLatency;
34
+ private formatPercentage;
35
+ private truncate;
36
+ private colors;
37
+ }
38
+ //# sourceMappingURL=MonitoringDashboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MonitoringDashboard.d.ts","sourceRoot":"","sources":["../../src/monitoring/MonitoringDashboard.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,gBAAgB,EAAS,MAAM,uBAAuB,CAAC;AAErE,MAAM,WAAW,eAAe;IAK5B,eAAe,CAAC,EAAE,MAAM,CAAC;IAMzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAM1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAMnB,UAAU,CAAC,EAAE,OAAO,CAAC;IAMrB,UAAU,CAAC,EAAE,OAAO,CAAC;IAMrB,aAAa,CAAC,EAAE,OAAO,CAAC;IAMxB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAOD,qBAAa,mBAAmB;IAC5B,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,UAAU,CAAC,CAAiB;IACpC,OAAO,CAAC,SAAS,CAAS;gBAEd,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,GAAE,eAAoB;IAgB5E,KAAK,IAAI,IAAI;IAqBb,IAAI,IAAI,IAAI;IAaZ,cAAc,IAAI,IAAI;IAOtB,OAAO,CAAC,MAAM;IAsCd,OAAO,CAAC,YAAY;IA4BpB,OAAO,CAAC,iBAAiB;IA2BzB,OAAO,CAAC,UAAU;IA4BlB,OAAO,CAAC,YAAY;IA2BpB,OAAO,CAAC,eAAe;IAuBvB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,kBAAkB;IAqB1B,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,MAAM,CAOZ;CACL"}
@@ -0,0 +1,271 @@
1
+ export class MonitoringDashboard {
2
+ config;
3
+ metricsCollector;
4
+ intervalId;
5
+ isRunning = false;
6
+ constructor(metricsCollector, config = {}) {
7
+ this.metricsCollector = metricsCollector;
8
+ this.config = {
9
+ refreshInterval: config.refreshInterval ?? 2000,
10
+ showPerformance: config.showPerformance ?? true,
11
+ showCost: config.showCost ?? true,
12
+ showHealth: config.showHealth ?? true,
13
+ showAlerts: config.showAlerts ?? true,
14
+ showAuditLogs: config.showAuditLogs ?? false,
15
+ maxLogs: config.maxLogs ?? 5,
16
+ };
17
+ }
18
+ start() {
19
+ if (this.isRunning) {
20
+ console.warn('Dashboard is already running');
21
+ return;
22
+ }
23
+ this.isRunning = true;
24
+ this.render();
25
+ this.intervalId = setInterval(() => {
26
+ this.render();
27
+ }, this.config.refreshInterval);
28
+ console.log('\n📊 Monitoring Dashboard Started');
29
+ console.log(`Refreshing every ${this.config.refreshInterval}ms`);
30
+ console.log('Press Ctrl+C to stop\n');
31
+ }
32
+ stop() {
33
+ if (this.intervalId) {
34
+ clearInterval(this.intervalId);
35
+ this.intervalId = undefined;
36
+ }
37
+ this.isRunning = false;
38
+ console.log('\n📊 Monitoring Dashboard Stopped\n');
39
+ }
40
+ renderSnapshot() {
41
+ this.render();
42
+ }
43
+ render() {
44
+ if (process.stdout.isTTY) {
45
+ process.stdout.write('\x1Bc');
46
+ }
47
+ const timestamp = new Date().toISOString();
48
+ console.log('╔════════════════════════════════════════════════════════════════╗');
49
+ console.log('║ PGA MONITORING DASHBOARD — Real-Time Metrics ║');
50
+ console.log('╠════════════════════════════════════════════════════════════════╣');
51
+ console.log(`║ Updated: ${timestamp} ║`);
52
+ console.log('╚════════════════════════════════════════════════════════════════╝\n');
53
+ if (this.config.showHealth) {
54
+ this.renderHealth();
55
+ }
56
+ if (this.config.showPerformance) {
57
+ this.renderPerformance();
58
+ }
59
+ if (this.config.showCost) {
60
+ this.renderCost();
61
+ }
62
+ if (this.config.showAlerts) {
63
+ this.renderAlerts();
64
+ }
65
+ if (this.config.showAuditLogs) {
66
+ this.renderAuditLogs();
67
+ }
68
+ }
69
+ renderHealth() {
70
+ const health = this.metricsCollector.getHealthStatus();
71
+ console.log('┌─ SYSTEM HEALTH ─────────────────────────────────────────────┐');
72
+ const statusIcon = this.getStatusIcon(health.status);
73
+ const statusColor = this.getStatusColor(health.status);
74
+ console.log(`│ Status: ${statusColor}${statusIcon} ${health.status.toUpperCase()}${this.colors.reset}`);
75
+ console.log('│');
76
+ console.log('│ Components:');
77
+ console.log(`│ LLM: ${this.getComponentStatus(health.components.llm)}`);
78
+ console.log(`│ Storage: ${this.getComponentStatus(health.components.storage)}`);
79
+ console.log(`│ Genome: ${this.getComponentStatus(health.components.genome)}`);
80
+ console.log('│');
81
+ console.log(`│ Uptime: ${this.formatDuration(health.uptime)}`);
82
+ console.log(`│ Memory: ${health.memoryUsage.toFixed(1)} MB`);
83
+ console.log('└─────────────────────────────────────────────────────────────┘\n');
84
+ }
85
+ renderPerformance() {
86
+ const perf = this.metricsCollector.getPerformanceMetrics();
87
+ console.log('┌─ PERFORMANCE ───────────────────────────────────────────────┐');
88
+ console.log(`│ Total Requests: ${perf.totalRequests.toLocaleString()}`);
89
+ console.log(`│ Successful: ${perf.successfulRequests.toLocaleString()} (${this.formatPercentage(perf.successRate)})`);
90
+ console.log(`│ Failed: ${perf.failedRequests.toLocaleString()}`);
91
+ console.log('│');
92
+ console.log(`│ Avg Response Time: ${this.formatLatency(perf.avgResponseTime)}`);
93
+ console.log(`│ P95: ${this.formatLatency(perf.p95ResponseTime)}`);
94
+ console.log(`│ P99: ${this.formatLatency(perf.p99ResponseTime)}`);
95
+ console.log('│');
96
+ console.log(`│ Total Tokens: ${perf.totalTokens.toLocaleString()}`);
97
+ console.log(`│ Avg/Request: ${perf.avgTokensPerRequest.toFixed(0)}`);
98
+ console.log('└─────────────────────────────────────────────────────────────┘\n');
99
+ }
100
+ renderCost() {
101
+ const cost = this.metricsCollector.getCostMetrics();
102
+ console.log('┌─ COSTS ─────────────────────────────────────────────────────┐');
103
+ console.log(`│ Total Cost: $${cost.totalCost.toFixed(4)}`);
104
+ console.log(`│ Avg/Request: $${cost.avgCostPerRequest.toFixed(6)}`);
105
+ console.log('│');
106
+ console.log(`│ Input Tokens: ${cost.totalInputTokens.toLocaleString()} ($${cost.inputTokensCost.toFixed(4)})`);
107
+ console.log(`│ Output Tokens: ${cost.totalOutputTokens.toLocaleString()} ($${cost.outputTokensCost.toFixed(4)})`);
108
+ if (Object.keys(cost.costByModel).length > 0) {
109
+ console.log('│');
110
+ console.log('│ By Model:');
111
+ for (const [model, modelCost] of Object.entries(cost.costByModel)) {
112
+ const modelName = this.truncate(model, 20);
113
+ console.log(`│ ${modelName.padEnd(20)} $${modelCost.toFixed(6)}`);
114
+ }
115
+ }
116
+ console.log('└─────────────────────────────────────────────────────────────┘\n');
117
+ }
118
+ renderAlerts() {
119
+ const alerts = this.metricsCollector.getAlerts();
120
+ console.log('┌─ ACTIVE ALERTS ─────────────────────────────────────────────┐');
121
+ if (alerts.length === 0) {
122
+ console.log(`│ ${this.colors.green}✓ No active alerts${this.colors.reset}`);
123
+ }
124
+ else {
125
+ for (const alert of alerts.slice(0, 5)) {
126
+ const severityIcon = this.getSeverityIcon(alert.severity);
127
+ const severityColor = this.getSeverityColor(alert.severity);
128
+ console.log(`│ ${severityColor}${severityIcon} [${alert.severity.toUpperCase()}] ${alert.title}${this.colors.reset}`);
129
+ console.log(`│ ${this.truncate(alert.description, 58)}`);
130
+ console.log('│');
131
+ }
132
+ if (alerts.length > 5) {
133
+ console.log(`│ ... and ${alerts.length - 5} more alerts`);
134
+ }
135
+ }
136
+ console.log('└─────────────────────────────────────────────────────────────┘\n');
137
+ }
138
+ renderAuditLogs() {
139
+ const logs = this.metricsCollector.getAuditLogs(this.config.maxLogs);
140
+ console.log('┌─ RECENT ACTIVITY ───────────────────────────────────────────┐');
141
+ if (logs.length === 0) {
142
+ console.log('│ No recent activity');
143
+ }
144
+ else {
145
+ for (const log of logs.reverse()) {
146
+ const levelIcon = this.getLogLevelIcon(log.level);
147
+ const time = log.timestamp.toLocaleTimeString();
148
+ console.log(`│ ${levelIcon} [${time}] ${log.component}.${log.operation}`);
149
+ console.log(`│ ${this.truncate(log.message, 58)}`);
150
+ console.log('│');
151
+ }
152
+ }
153
+ console.log('└─────────────────────────────────────────────────────────────┘\n');
154
+ }
155
+ getStatusIcon(status) {
156
+ switch (status) {
157
+ case 'healthy':
158
+ return '✓';
159
+ case 'degraded':
160
+ return '⚠';
161
+ case 'unhealthy':
162
+ return '✗';
163
+ default:
164
+ return '?';
165
+ }
166
+ }
167
+ getStatusColor(status) {
168
+ switch (status) {
169
+ case 'healthy':
170
+ return this.colors.green;
171
+ case 'degraded':
172
+ return this.colors.yellow;
173
+ case 'unhealthy':
174
+ return this.colors.red;
175
+ default:
176
+ return this.colors.reset;
177
+ }
178
+ }
179
+ getComponentStatus(component) {
180
+ const icon = component.status === 'up' ? '●' : component.status === 'degraded' ? '◐' : '○';
181
+ const color = component.status === 'up'
182
+ ? this.colors.green
183
+ : component.status === 'degraded'
184
+ ? this.colors.yellow
185
+ : this.colors.red;
186
+ let statusStr = `${color}${icon} ${component.status}${this.colors.reset}`;
187
+ if (component.latency) {
188
+ statusStr += ` (${component.latency.toFixed(0)}ms)`;
189
+ }
190
+ return statusStr;
191
+ }
192
+ getSeverityIcon(severity) {
193
+ switch (severity) {
194
+ case 'low':
195
+ return 'ℹ';
196
+ case 'medium':
197
+ return '⚠';
198
+ case 'high':
199
+ return '⚠';
200
+ case 'critical':
201
+ return '🚨';
202
+ default:
203
+ return '?';
204
+ }
205
+ }
206
+ getSeverityColor(severity) {
207
+ switch (severity) {
208
+ case 'low':
209
+ return this.colors.blue;
210
+ case 'medium':
211
+ return this.colors.yellow;
212
+ case 'high':
213
+ return this.colors.orange;
214
+ case 'critical':
215
+ return this.colors.red;
216
+ default:
217
+ return this.colors.reset;
218
+ }
219
+ }
220
+ getLogLevelIcon(level) {
221
+ switch (level) {
222
+ case 'info':
223
+ return 'ℹ';
224
+ case 'warning':
225
+ return '⚠';
226
+ case 'error':
227
+ return '✗';
228
+ case 'critical':
229
+ return '🚨';
230
+ default:
231
+ return '·';
232
+ }
233
+ }
234
+ formatDuration(seconds) {
235
+ if (seconds < 60) {
236
+ return `${seconds.toFixed(0)}s`;
237
+ }
238
+ else if (seconds < 3600) {
239
+ return `${(seconds / 60).toFixed(1)}m`;
240
+ }
241
+ else {
242
+ return `${(seconds / 3600).toFixed(1)}h`;
243
+ }
244
+ }
245
+ formatLatency(ms) {
246
+ if (ms < 1000) {
247
+ return `${ms.toFixed(0)}ms`;
248
+ }
249
+ else {
250
+ return `${(ms / 1000).toFixed(2)}s`;
251
+ }
252
+ }
253
+ formatPercentage(value) {
254
+ return `${(value * 100).toFixed(1)}%`;
255
+ }
256
+ truncate(str, maxLength) {
257
+ if (str.length <= maxLength) {
258
+ return str;
259
+ }
260
+ return str.substring(0, maxLength - 3) + '...';
261
+ }
262
+ colors = {
263
+ reset: '\x1b[0m',
264
+ green: '\x1b[32m',
265
+ yellow: '\x1b[33m',
266
+ red: '\x1b[31m',
267
+ blue: '\x1b[34m',
268
+ orange: '\x1b[38;5;208m',
269
+ };
270
+ }
271
+ //# sourceMappingURL=MonitoringDashboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MonitoringDashboard.js","sourceRoot":"","sources":["../../src/monitoring/MonitoringDashboard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ export interface PluginMetadata {
2
+ name: string;
3
+ version: string;
4
+ author?: string;
5
+ description?: string;
6
+ homepage?: string;
7
+ tags?: string[];
8
+ dependencies?: string[];
9
+ }
10
+ export interface PluginHooks {
11
+ onLoad?: () => void | Promise<void>;
12
+ onUnload?: () => void | Promise<void>;
13
+ beforeGenomeCreate?: (config: unknown) => unknown | Promise<unknown>;
14
+ afterGenomeCreate?: (genome: unknown) => void | Promise<void>;
15
+ beforeChat?: (message: string, context: unknown) => string | Promise<string>;
16
+ afterChat?: (response: unknown) => unknown | Promise<unknown>;
17
+ beforeMutation?: (proposal: unknown) => unknown | Promise<unknown>;
18
+ afterMutation?: (result: unknown) => void | Promise<void>;
19
+ onMetricsUpdate?: (metrics: unknown) => void | Promise<void>;
20
+ onAlert?: (alert: unknown) => void | Promise<void>;
21
+ }
22
+ export interface Plugin {
23
+ metadata: PluginMetadata;
24
+ hooks: PluginHooks;
25
+ api?: Record<string, (...args: unknown[]) => unknown>;
26
+ }
27
+ export interface PluginConfig {
28
+ enabled?: boolean;
29
+ config?: Record<string, unknown>;
30
+ }
31
+ export declare class PluginManager {
32
+ private plugins;
33
+ private hookOrder;
34
+ register(plugin: Plugin, config?: PluginConfig): Promise<void>;
35
+ unregister(name: string): Promise<void>;
36
+ enable(name: string): Promise<void>;
37
+ disable(name: string): Promise<void>;
38
+ callHook<K extends keyof PluginHooks>(hookName: K, ...args: Parameters<NonNullable<PluginHooks[K]>>): Promise<unknown>;
39
+ setHookOrder(hookName: keyof PluginHooks, order: string[]): void;
40
+ getPluginAPI(name: string): Record<string, (...args: unknown[]) => unknown> | undefined;
41
+ callPluginAPI(name: string, method: string, ...args: unknown[]): Promise<unknown>;
42
+ list(): Array<{
43
+ name: string;
44
+ version: string;
45
+ author?: string;
46
+ description?: string;
47
+ enabled: boolean;
48
+ loadedAt: Date;
49
+ }>;
50
+ search(tag: string): Plugin[];
51
+ getMetadata(name: string): PluginMetadata | undefined;
52
+ getConfig(name: string): Record<string, unknown> | undefined;
53
+ updateConfig(name: string, config: Record<string, unknown>): void;
54
+ getStats(): {
55
+ totalPlugins: number;
56
+ enabledPlugins: number;
57
+ disabledPlugins: number;
58
+ pluginsByTag: Record<string, number>;
59
+ };
60
+ }
61
+ //# sourceMappingURL=PluginManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginManager.d.ts","sourceRoot":"","sources":["../../src/plugins/PluginManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,154 @@
1
+ export class PluginManager {
2
+ plugins = new Map();
3
+ hookOrder = new Map();
4
+ async register(plugin, config = {}) {
5
+ const name = plugin.metadata.name;
6
+ if (plugin.metadata.dependencies) {
7
+ for (const dep of plugin.metadata.dependencies) {
8
+ if (!this.plugins.has(dep)) {
9
+ throw new Error(`Plugin ${name} requires dependency: ${dep}`);
10
+ }
11
+ }
12
+ }
13
+ if (this.plugins.has(name)) {
14
+ throw new Error(`Plugin ${name} is already registered`);
15
+ }
16
+ this.plugins.set(name, {
17
+ plugin,
18
+ config: {
19
+ enabled: config.enabled ?? true,
20
+ config: config.config || {},
21
+ },
22
+ loadedAt: new Date(),
23
+ });
24
+ if (config.enabled !== false && plugin.hooks.onLoad) {
25
+ await plugin.hooks.onLoad();
26
+ }
27
+ }
28
+ async unregister(name) {
29
+ const loaded = this.plugins.get(name);
30
+ if (!loaded) {
31
+ throw new Error(`Plugin ${name} is not registered`);
32
+ }
33
+ if (loaded.plugin.hooks.onUnload) {
34
+ await loaded.plugin.hooks.onUnload();
35
+ }
36
+ this.plugins.delete(name);
37
+ }
38
+ async enable(name) {
39
+ const loaded = this.plugins.get(name);
40
+ if (!loaded) {
41
+ throw new Error(`Plugin ${name} is not registered`);
42
+ }
43
+ if (loaded.config.enabled) {
44
+ return;
45
+ }
46
+ loaded.config.enabled = true;
47
+ if (loaded.plugin.hooks.onLoad) {
48
+ await loaded.plugin.hooks.onLoad();
49
+ }
50
+ }
51
+ async disable(name) {
52
+ const loaded = this.plugins.get(name);
53
+ if (!loaded) {
54
+ throw new Error(`Plugin ${name} is not registered`);
55
+ }
56
+ if (!loaded.config.enabled) {
57
+ return;
58
+ }
59
+ loaded.config.enabled = false;
60
+ if (loaded.plugin.hooks.onUnload) {
61
+ await loaded.plugin.hooks.onUnload();
62
+ }
63
+ }
64
+ async callHook(hookName, ...args) {
65
+ let result = args[0];
66
+ const order = this.hookOrder.get(hookName) || Array.from(this.plugins.keys());
67
+ for (const name of order) {
68
+ const loaded = this.plugins.get(name);
69
+ if (!loaded || !loaded.config.enabled) {
70
+ continue;
71
+ }
72
+ const hook = loaded.plugin.hooks[hookName];
73
+ if (!hook) {
74
+ continue;
75
+ }
76
+ try {
77
+ const hookResult = await hook(result, ...args.slice(1));
78
+ if (hookResult !== undefined) {
79
+ result = hookResult;
80
+ }
81
+ }
82
+ catch (error) {
83
+ console.error(`Error in plugin ${name} hook ${hookName}:`, error);
84
+ }
85
+ }
86
+ return result;
87
+ }
88
+ setHookOrder(hookName, order) {
89
+ this.hookOrder.set(hookName, order);
90
+ }
91
+ getPluginAPI(name) {
92
+ const loaded = this.plugins.get(name);
93
+ if (!loaded || !loaded.config.enabled) {
94
+ return undefined;
95
+ }
96
+ return loaded.plugin.api;
97
+ }
98
+ async callPluginAPI(name, method, ...args) {
99
+ const api = this.getPluginAPI(name);
100
+ if (!api) {
101
+ throw new Error(`Plugin ${name} is not available`);
102
+ }
103
+ const fn = api[method];
104
+ if (!fn) {
105
+ throw new Error(`Plugin ${name} does not have method: ${method}`);
106
+ }
107
+ return await fn(...args);
108
+ }
109
+ list() {
110
+ return Array.from(this.plugins.entries()).map(([name, loaded]) => ({
111
+ name,
112
+ version: loaded.plugin.metadata.version,
113
+ author: loaded.plugin.metadata.author,
114
+ description: loaded.plugin.metadata.description,
115
+ enabled: loaded.config.enabled ?? true,
116
+ loadedAt: loaded.loadedAt,
117
+ }));
118
+ }
119
+ search(tag) {
120
+ return Array.from(this.plugins.values())
121
+ .filter((loaded) => loaded.plugin.metadata.tags?.includes(tag))
122
+ .map((loaded) => loaded.plugin);
123
+ }
124
+ getMetadata(name) {
125
+ return this.plugins.get(name)?.plugin.metadata;
126
+ }
127
+ getConfig(name) {
128
+ return this.plugins.get(name)?.config.config;
129
+ }
130
+ updateConfig(name, config) {
131
+ const loaded = this.plugins.get(name);
132
+ if (!loaded) {
133
+ throw new Error(`Plugin ${name} is not registered`);
134
+ }
135
+ loaded.config.config = { ...loaded.config.config, ...config };
136
+ }
137
+ getStats() {
138
+ const plugins = Array.from(this.plugins.values());
139
+ const enabled = plugins.filter((p) => p.config.enabled).length;
140
+ const pluginsByTag = {};
141
+ for (const loaded of plugins) {
142
+ for (const tag of loaded.plugin.metadata.tags || []) {
143
+ pluginsByTag[tag] = (pluginsByTag[tag] || 0) + 1;
144
+ }
145
+ }
146
+ return {
147
+ totalPlugins: plugins.length,
148
+ enabledPlugins: enabled,
149
+ disabledPlugins: plugins.length - enabled,
150
+ pluginsByTag,
151
+ };
152
+ }
153
+ }
154
+ //# sourceMappingURL=PluginManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginManager.js","sourceRoot":"","sources":["../../src/plugins/PluginManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import type { LLMAdapter } from '../interfaces/LLMAdapter.js';
2
+ import type { VectorStoreAdapter } from './VectorStoreAdapter.js';
3
+ import type { MetricsCollector } from '../monitoring/MetricsCollector.js';
4
+ export interface RAGDocument {
5
+ id: string;
6
+ content: string;
7
+ metadata: Record<string, any>;
8
+ embedding?: number[];
9
+ }
10
+ export interface RAGSearchResult {
11
+ document: RAGDocument;
12
+ score: number;
13
+ relevance: number;
14
+ }
15
+ export interface RAGContext {
16
+ query: string;
17
+ results: RAGSearchResult[];
18
+ augmentedPrompt: string;
19
+ totalTokens: number;
20
+ }
21
+ export interface RAGConfig {
22
+ enabled: boolean;
23
+ vectorStore: VectorStoreAdapter;
24
+ embeddings: {
25
+ model: string;
26
+ dimensions: number;
27
+ };
28
+ search: {
29
+ topK: number;
30
+ minScore: number;
31
+ hybridSearch: boolean;
32
+ };
33
+ context: {
34
+ maxTokens: number;
35
+ includeMetadata: boolean;
36
+ };
37
+ }
38
+ export declare class RAGEngine {
39
+ private llm;
40
+ private metricsCollector?;
41
+ private config;
42
+ constructor(llm: LLMAdapter, config: RAGConfig, metricsCollector?: MetricsCollector | undefined);
43
+ retrieve(query: string): Promise<RAGSearchResult[]>;
44
+ augment(query: string, basePrompt: string): Promise<RAGContext>;
45
+ generate(query: string, basePrompt: string): Promise<string>;
46
+ indexDocument(document: RAGDocument): Promise<void>;
47
+ indexDocuments(documents: RAGDocument[]): Promise<void>;
48
+ deleteDocument(documentId: string): Promise<void>;
49
+ private generateEmbedding;
50
+ private buildAugmentedPrompt;
51
+ private formatRetrievedContext;
52
+ private estimateTokens;
53
+ }
54
+ //# sourceMappingURL=RAGEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RAGEngine.d.ts","sourceRoot":"","sources":["../../src/rag/RAGEngine.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAI1E,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACvB;AAID,MAAM,WAAW,SAAS;IACtB,OAAO,EAAE,OAAO,CAAC;IAEjB,WAAW,EAAE,kBAAkB,CAAC;IAEhC,UAAU,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACtB,CAAC;IAEF,MAAM,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,OAAO,CAAC;KACzB,CAAC;IAEF,OAAO,EAAE;QACL,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,OAAO,CAAC;KAC5B,CAAC;CACL;AAID,qBAAa,SAAS;IAId,OAAO,CAAC,GAAG;IAEX,OAAO,CAAC,gBAAgB,CAAC;IAL7B,OAAO,CAAC,MAAM,CAAY;gBAGd,GAAG,EAAE,UAAU,EACvB,MAAM,EAAE,SAAS,EACT,gBAAgB,CAAC,EAAE,gBAAgB,YAAA;IAQzC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAyDnD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAqB/D,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgB5D,aAAa,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAanD,cAAc,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAwDvD,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAMzC,iBAAiB;IAM/B,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,sBAAsB;IAgB9B,OAAO,CAAC,cAAc;CAIzB"}