agentic-qe 2.3.3 → 2.3.5

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 (255) hide show
  1. package/CHANGELOG.md +122 -0
  2. package/README.md +1 -1
  3. package/dist/agents/ApiContractValidatorAgent.d.ts +5 -0
  4. package/dist/agents/ApiContractValidatorAgent.d.ts.map +1 -1
  5. package/dist/agents/ApiContractValidatorAgent.js +41 -0
  6. package/dist/agents/ApiContractValidatorAgent.js.map +1 -1
  7. package/dist/agents/BaseAgent.d.ts +10 -0
  8. package/dist/agents/BaseAgent.d.ts.map +1 -1
  9. package/dist/agents/BaseAgent.js +113 -0
  10. package/dist/agents/BaseAgent.js.map +1 -1
  11. package/dist/agents/CodeComplexityAnalyzerAgent.d.ts +5 -0
  12. package/dist/agents/CodeComplexityAnalyzerAgent.d.ts.map +1 -1
  13. package/dist/agents/CodeComplexityAnalyzerAgent.js +47 -0
  14. package/dist/agents/CodeComplexityAnalyzerAgent.js.map +1 -1
  15. package/dist/agents/CoverageAnalyzerAgent.d.ts +26 -0
  16. package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -1
  17. package/dist/agents/CoverageAnalyzerAgent.js +149 -1
  18. package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
  19. package/dist/agents/DeploymentReadinessAgent.d.ts +5 -0
  20. package/dist/agents/DeploymentReadinessAgent.d.ts.map +1 -1
  21. package/dist/agents/DeploymentReadinessAgent.js +41 -0
  22. package/dist/agents/DeploymentReadinessAgent.js.map +1 -1
  23. package/dist/agents/FlakyTestHunterAgent.d.ts +5 -0
  24. package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -1
  25. package/dist/agents/FlakyTestHunterAgent.js +40 -0
  26. package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
  27. package/dist/agents/FleetCommanderAgent.d.ts +5 -0
  28. package/dist/agents/FleetCommanderAgent.d.ts.map +1 -1
  29. package/dist/agents/FleetCommanderAgent.js +51 -0
  30. package/dist/agents/FleetCommanderAgent.js.map +1 -1
  31. package/dist/agents/PerformanceTesterAgent.d.ts +5 -0
  32. package/dist/agents/PerformanceTesterAgent.d.ts.map +1 -1
  33. package/dist/agents/PerformanceTesterAgent.js +44 -0
  34. package/dist/agents/PerformanceTesterAgent.js.map +1 -1
  35. package/dist/agents/ProductionIntelligenceAgent.d.ts +5 -0
  36. package/dist/agents/ProductionIntelligenceAgent.d.ts.map +1 -1
  37. package/dist/agents/ProductionIntelligenceAgent.js +46 -0
  38. package/dist/agents/ProductionIntelligenceAgent.js.map +1 -1
  39. package/dist/agents/QXPartnerAgent.js +52 -0
  40. package/dist/agents/QXPartnerAgent.js.map +1 -1
  41. package/dist/agents/QualityAnalyzerAgent.d.ts +5 -0
  42. package/dist/agents/QualityAnalyzerAgent.d.ts.map +1 -1
  43. package/dist/agents/QualityAnalyzerAgent.js +45 -0
  44. package/dist/agents/QualityAnalyzerAgent.js.map +1 -1
  45. package/dist/agents/QualityGateAgent.d.ts +40 -0
  46. package/dist/agents/QualityGateAgent.d.ts.map +1 -1
  47. package/dist/agents/QualityGateAgent.js +227 -1
  48. package/dist/agents/QualityGateAgent.js.map +1 -1
  49. package/dist/agents/RegressionRiskAnalyzerAgent.d.ts +5 -0
  50. package/dist/agents/RegressionRiskAnalyzerAgent.d.ts.map +1 -1
  51. package/dist/agents/RegressionRiskAnalyzerAgent.js +46 -0
  52. package/dist/agents/RegressionRiskAnalyzerAgent.js.map +1 -1
  53. package/dist/agents/RequirementsValidatorAgent.d.ts +5 -0
  54. package/dist/agents/RequirementsValidatorAgent.d.ts.map +1 -1
  55. package/dist/agents/RequirementsValidatorAgent.js +42 -0
  56. package/dist/agents/RequirementsValidatorAgent.js.map +1 -1
  57. package/dist/agents/SecurityScannerAgent.d.ts +5 -0
  58. package/dist/agents/SecurityScannerAgent.d.ts.map +1 -1
  59. package/dist/agents/SecurityScannerAgent.js +39 -0
  60. package/dist/agents/SecurityScannerAgent.js.map +1 -1
  61. package/dist/agents/TestDataArchitectAgent.d.ts +5 -0
  62. package/dist/agents/TestDataArchitectAgent.d.ts.map +1 -1
  63. package/dist/agents/TestDataArchitectAgent.js +46 -0
  64. package/dist/agents/TestDataArchitectAgent.js.map +1 -1
  65. package/dist/agents/TestExecutorAgent.d.ts +5 -0
  66. package/dist/agents/TestExecutorAgent.d.ts.map +1 -1
  67. package/dist/agents/TestExecutorAgent.js +48 -0
  68. package/dist/agents/TestExecutorAgent.js.map +1 -1
  69. package/dist/agents/TestGeneratorAgent.d.ts +5 -0
  70. package/dist/agents/TestGeneratorAgent.d.ts.map +1 -1
  71. package/dist/agents/TestGeneratorAgent.js +36 -0
  72. package/dist/agents/TestGeneratorAgent.js.map +1 -1
  73. package/dist/agents/lifecycle/AgentLifecycleManager.d.ts.map +1 -1
  74. package/dist/agents/lifecycle/AgentLifecycleManager.js +5 -2
  75. package/dist/agents/lifecycle/AgentLifecycleManager.js.map +1 -1
  76. package/dist/cli/commands/dream/index.d.ts +50 -0
  77. package/dist/cli/commands/dream/index.d.ts.map +1 -0
  78. package/dist/cli/commands/dream/index.js +282 -0
  79. package/dist/cli/commands/dream/index.js.map +1 -0
  80. package/dist/cli/commands/learn/index.d.ts +31 -5
  81. package/dist/cli/commands/learn/index.d.ts.map +1 -1
  82. package/dist/cli/commands/learn/index.js +183 -50
  83. package/dist/cli/commands/learn/index.js.map +1 -1
  84. package/dist/cli/commands/transfer/index.d.ts +55 -0
  85. package/dist/cli/commands/transfer/index.d.ts.map +1 -0
  86. package/dist/cli/commands/transfer/index.js +317 -0
  87. package/dist/cli/commands/transfer/index.js.map +1 -0
  88. package/dist/cli/index.js +224 -3
  89. package/dist/cli/index.js.map +1 -1
  90. package/dist/cli/init/index.d.ts.map +1 -1
  91. package/dist/cli/init/index.js +12 -4
  92. package/dist/cli/init/index.js.map +1 -1
  93. package/dist/cli/init/learning-init.d.ts +39 -0
  94. package/dist/cli/init/learning-init.d.ts.map +1 -0
  95. package/dist/cli/init/learning-init.js +239 -0
  96. package/dist/cli/init/learning-init.js.map +1 -0
  97. package/dist/core/memory/HNSWVectorMemory.js +1 -1
  98. package/dist/learning/baselines/BaselineCollector.d.ts +178 -0
  99. package/dist/learning/baselines/BaselineCollector.d.ts.map +1 -0
  100. package/dist/learning/baselines/BaselineCollector.js +398 -0
  101. package/dist/learning/baselines/BaselineCollector.js.map +1 -0
  102. package/dist/learning/baselines/StandardTaskSuite.d.ts +88 -0
  103. package/dist/learning/baselines/StandardTaskSuite.d.ts.map +1 -0
  104. package/dist/learning/baselines/StandardTaskSuite.js +801 -0
  105. package/dist/learning/baselines/StandardTaskSuite.js.map +1 -0
  106. package/dist/learning/baselines/index.d.ts +10 -0
  107. package/dist/learning/baselines/index.d.ts.map +1 -0
  108. package/dist/learning/baselines/index.js +15 -0
  109. package/dist/learning/baselines/index.js.map +1 -0
  110. package/dist/learning/capture/ExecutionRecorder.d.ts +97 -0
  111. package/dist/learning/capture/ExecutionRecorder.d.ts.map +1 -0
  112. package/dist/learning/capture/ExecutionRecorder.js +195 -0
  113. package/dist/learning/capture/ExecutionRecorder.js.map +1 -0
  114. package/dist/learning/capture/ExperienceCapture.d.ts +177 -0
  115. package/dist/learning/capture/ExperienceCapture.d.ts.map +1 -0
  116. package/dist/learning/capture/ExperienceCapture.js +432 -0
  117. package/dist/learning/capture/ExperienceCapture.js.map +1 -0
  118. package/dist/learning/capture/ExperienceExtractor.d.ts +219 -0
  119. package/dist/learning/capture/ExperienceExtractor.d.ts.map +1 -0
  120. package/dist/learning/capture/ExperienceExtractor.js +536 -0
  121. package/dist/learning/capture/ExperienceExtractor.js.map +1 -0
  122. package/dist/learning/capture/ExperienceStore.d.ts +196 -0
  123. package/dist/learning/capture/ExperienceStore.d.ts.map +1 -0
  124. package/dist/learning/capture/ExperienceStore.js +453 -0
  125. package/dist/learning/capture/ExperienceStore.js.map +1 -0
  126. package/dist/learning/capture/index.d.ts +12 -0
  127. package/dist/learning/capture/index.d.ts.map +1 -0
  128. package/dist/learning/capture/index.js +17 -0
  129. package/dist/learning/capture/index.js.map +1 -0
  130. package/dist/learning/dashboard/MetricsDashboard.d.ts +63 -0
  131. package/dist/learning/dashboard/MetricsDashboard.d.ts.map +1 -0
  132. package/dist/learning/dashboard/MetricsDashboard.js +230 -0
  133. package/dist/learning/dashboard/MetricsDashboard.js.map +1 -0
  134. package/dist/learning/dashboard/index.d.ts +7 -0
  135. package/dist/learning/dashboard/index.d.ts.map +1 -0
  136. package/dist/learning/dashboard/index.js +23 -0
  137. package/dist/learning/dashboard/index.js.map +1 -0
  138. package/dist/learning/dream/ConceptGraph.d.ts +160 -0
  139. package/dist/learning/dream/ConceptGraph.d.ts.map +1 -0
  140. package/dist/learning/dream/ConceptGraph.js +445 -0
  141. package/dist/learning/dream/ConceptGraph.js.map +1 -0
  142. package/dist/learning/dream/DreamEngine.d.ts +150 -0
  143. package/dist/learning/dream/DreamEngine.d.ts.map +1 -0
  144. package/dist/learning/dream/DreamEngine.js +551 -0
  145. package/dist/learning/dream/DreamEngine.js.map +1 -0
  146. package/dist/learning/dream/InsightGenerator.d.ts +152 -0
  147. package/dist/learning/dream/InsightGenerator.d.ts.map +1 -0
  148. package/dist/learning/dream/InsightGenerator.js +463 -0
  149. package/dist/learning/dream/InsightGenerator.js.map +1 -0
  150. package/dist/learning/dream/SpreadingActivation.d.ts +138 -0
  151. package/dist/learning/dream/SpreadingActivation.d.ts.map +1 -0
  152. package/dist/learning/dream/SpreadingActivation.js +320 -0
  153. package/dist/learning/dream/SpreadingActivation.js.map +1 -0
  154. package/dist/learning/dream/index.d.ts +14 -0
  155. package/dist/learning/dream/index.d.ts.map +1 -0
  156. package/dist/learning/dream/index.js +22 -0
  157. package/dist/learning/dream/index.js.map +1 -0
  158. package/dist/learning/metrics/AlertManager.d.ts +107 -0
  159. package/dist/learning/metrics/AlertManager.d.ts.map +1 -0
  160. package/dist/learning/metrics/AlertManager.js +246 -0
  161. package/dist/learning/metrics/AlertManager.js.map +1 -0
  162. package/dist/learning/metrics/LearningMetrics.d.ts +184 -0
  163. package/dist/learning/metrics/LearningMetrics.d.ts.map +1 -0
  164. package/dist/learning/metrics/LearningMetrics.js +754 -0
  165. package/dist/learning/metrics/LearningMetrics.js.map +1 -0
  166. package/dist/learning/metrics/MetricsCollector.d.ts +108 -0
  167. package/dist/learning/metrics/MetricsCollector.d.ts.map +1 -0
  168. package/dist/learning/metrics/MetricsCollector.js +240 -0
  169. package/dist/learning/metrics/MetricsCollector.js.map +1 -0
  170. package/dist/learning/metrics/MetricsStore.d.ts +149 -0
  171. package/dist/learning/metrics/MetricsStore.d.ts.map +1 -0
  172. package/dist/learning/metrics/MetricsStore.js +502 -0
  173. package/dist/learning/metrics/MetricsStore.js.map +1 -0
  174. package/dist/learning/metrics/TrendAnalyzer.d.ts +85 -0
  175. package/dist/learning/metrics/TrendAnalyzer.d.ts.map +1 -0
  176. package/dist/learning/metrics/TrendAnalyzer.js +210 -0
  177. package/dist/learning/metrics/TrendAnalyzer.js.map +1 -0
  178. package/dist/learning/metrics/index.d.ts +13 -0
  179. package/dist/learning/metrics/index.d.ts.map +1 -0
  180. package/dist/learning/metrics/index.js +39 -0
  181. package/dist/learning/metrics/index.js.map +1 -0
  182. package/dist/learning/scheduler/IdleDetector.d.ts +126 -0
  183. package/dist/learning/scheduler/IdleDetector.d.ts.map +1 -0
  184. package/dist/learning/scheduler/IdleDetector.js +281 -0
  185. package/dist/learning/scheduler/IdleDetector.js.map +1 -0
  186. package/dist/learning/scheduler/SleepCycle.d.ts +150 -0
  187. package/dist/learning/scheduler/SleepCycle.d.ts.map +1 -0
  188. package/dist/learning/scheduler/SleepCycle.js +506 -0
  189. package/dist/learning/scheduler/SleepCycle.js.map +1 -0
  190. package/dist/learning/scheduler/SleepScheduler.d.ts +133 -0
  191. package/dist/learning/scheduler/SleepScheduler.d.ts.map +1 -0
  192. package/dist/learning/scheduler/SleepScheduler.js +301 -0
  193. package/dist/learning/scheduler/SleepScheduler.js.map +1 -0
  194. package/dist/learning/scheduler/TimeBasedTrigger.d.ts +108 -0
  195. package/dist/learning/scheduler/TimeBasedTrigger.d.ts.map +1 -0
  196. package/dist/learning/scheduler/TimeBasedTrigger.js +222 -0
  197. package/dist/learning/scheduler/TimeBasedTrigger.js.map +1 -0
  198. package/dist/learning/scheduler/index.d.ts +16 -0
  199. package/dist/learning/scheduler/index.d.ts.map +1 -0
  200. package/dist/learning/scheduler/index.js +23 -0
  201. package/dist/learning/scheduler/index.js.map +1 -0
  202. package/dist/learning/synthesis/ClusteringEngine.d.ts +122 -0
  203. package/dist/learning/synthesis/ClusteringEngine.d.ts.map +1 -0
  204. package/dist/learning/synthesis/ClusteringEngine.js +356 -0
  205. package/dist/learning/synthesis/ClusteringEngine.js.map +1 -0
  206. package/dist/learning/synthesis/PatternSynthesis.d.ts +162 -0
  207. package/dist/learning/synthesis/PatternSynthesis.d.ts.map +1 -0
  208. package/dist/learning/synthesis/PatternSynthesis.js +479 -0
  209. package/dist/learning/synthesis/PatternSynthesis.js.map +1 -0
  210. package/dist/learning/synthesis/index.d.ts +10 -0
  211. package/dist/learning/synthesis/index.d.ts.map +1 -0
  212. package/dist/learning/synthesis/index.js +14 -0
  213. package/dist/learning/synthesis/index.js.map +1 -0
  214. package/dist/learning/transfer/CompatibilityScorer.d.ts +115 -0
  215. package/dist/learning/transfer/CompatibilityScorer.d.ts.map +1 -0
  216. package/dist/learning/transfer/CompatibilityScorer.js +319 -0
  217. package/dist/learning/transfer/CompatibilityScorer.js.map +1 -0
  218. package/dist/learning/transfer/TransferProtocol.d.ts +172 -0
  219. package/dist/learning/transfer/TransferProtocol.d.ts.map +1 -0
  220. package/dist/learning/transfer/TransferProtocol.js +611 -0
  221. package/dist/learning/transfer/TransferProtocol.js.map +1 -0
  222. package/dist/learning/transfer/TransferPrototype.d.ts +93 -0
  223. package/dist/learning/transfer/TransferPrototype.d.ts.map +1 -0
  224. package/dist/learning/transfer/TransferPrototype.js +433 -0
  225. package/dist/learning/transfer/TransferPrototype.js.map +1 -0
  226. package/dist/learning/transfer/TransferRegistry.d.ts +245 -0
  227. package/dist/learning/transfer/TransferRegistry.d.ts.map +1 -0
  228. package/dist/learning/transfer/TransferRegistry.js +410 -0
  229. package/dist/learning/transfer/TransferRegistry.js.map +1 -0
  230. package/dist/learning/transfer/TransferValidator.d.ts +140 -0
  231. package/dist/learning/transfer/TransferValidator.d.ts.map +1 -0
  232. package/dist/learning/transfer/TransferValidator.js +413 -0
  233. package/dist/learning/transfer/TransferValidator.js.map +1 -0
  234. package/dist/learning/transfer/index.d.ts +14 -0
  235. package/dist/learning/transfer/index.d.ts.map +1 -0
  236. package/dist/learning/transfer/index.js +22 -0
  237. package/dist/learning/transfer/index.js.map +1 -0
  238. package/dist/mcp/handlers/task-orchestrate.d.ts +11 -0
  239. package/dist/mcp/handlers/task-orchestrate.d.ts.map +1 -1
  240. package/dist/mcp/handlers/task-orchestrate.js +297 -4
  241. package/dist/mcp/handlers/task-orchestrate.js.map +1 -1
  242. package/dist/mcp/handlers/test/test-generate-enhanced.d.ts +26 -2
  243. package/dist/mcp/handlers/test/test-generate-enhanced.d.ts.map +1 -1
  244. package/dist/mcp/handlers/test/test-generate-enhanced.js +159 -27
  245. package/dist/mcp/handlers/test/test-generate-enhanced.js.map +1 -1
  246. package/dist/mcp/server-instructions.d.ts +1 -1
  247. package/dist/mcp/server-instructions.js +1 -1
  248. package/dist/mcp/server.d.ts.map +1 -1
  249. package/dist/mcp/server.js +2 -1
  250. package/dist/mcp/server.js.map +1 -1
  251. package/dist/mcp/services/AgentRegistry.d.ts +6 -1
  252. package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
  253. package/dist/mcp/services/AgentRegistry.js +34 -3
  254. package/dist/mcp/services/AgentRegistry.js.map +1 -1
  255. package/package.json +5 -2
@@ -0,0 +1,138 @@
1
+ /**
2
+ * SpreadingActivation - Activation propagation for Dream Engine
3
+ *
4
+ * Implements spreading activation algorithm for concept association
5
+ * discovery. Simulates the neural activation patterns seen in memory
6
+ * consolidation during sleep.
7
+ *
8
+ * Part of the Nightly-Learner Phase 2 implementation.
9
+ *
10
+ * @version 1.0.0
11
+ * @module src/learning/dream/SpreadingActivation
12
+ */
13
+ import { EventEmitter } from 'events';
14
+ import { ConceptGraph } from './ConceptGraph';
15
+ export interface ActivationConfig {
16
+ /** How fast activation decays (0-1). Default: 0.9 */
17
+ decayRate: number;
18
+ /** How much activation spreads to neighbors (0-1). Default: 0.5 */
19
+ spreadFactor: number;
20
+ /** Minimum activation to spread from a node. Default: 0.2 */
21
+ threshold: number;
22
+ /** Maximum iterations to prevent infinite loops. Default: 10 */
23
+ maxIterations: number;
24
+ /** Random activation noise for dreaming (0-1). Default: 0.1 */
25
+ noise: number;
26
+ /** Enable debug logging */
27
+ debug?: boolean;
28
+ }
29
+ export interface Association {
30
+ /** Co-activated node IDs */
31
+ nodes: string[];
32
+ /** Combined activation strength */
33
+ strength: number;
34
+ /** How unexpected this association is (0-1) */
35
+ novelty: number;
36
+ /** Types of nodes involved */
37
+ nodeTypes: string[];
38
+ /** When this association was detected */
39
+ detectedAt: Date;
40
+ }
41
+ export interface ActivationResult {
42
+ /** Number of spread iterations performed */
43
+ iterations: number;
44
+ /** Number of nodes that became activated */
45
+ nodesActivated: number;
46
+ /** Peak activation level reached */
47
+ peakActivation: number;
48
+ /** Associations discovered during activation */
49
+ associations: Association[];
50
+ /** Duration of activation spread in ms */
51
+ duration: number;
52
+ }
53
+ export interface DreamResult {
54
+ /** Total duration of dream cycle */
55
+ duration: number;
56
+ /** All associations discovered */
57
+ associations: Association[];
58
+ /** Novel associations (novelty > threshold) */
59
+ novelAssociations: Association[];
60
+ /** Number of random activations performed */
61
+ randomActivations: number;
62
+ /** Average novelty score */
63
+ averageNovelty: number;
64
+ }
65
+ /**
66
+ * SpreadingActivation implements neural-inspired activation spreading
67
+ *
68
+ * @example
69
+ * ```typescript
70
+ * const graph = new ConceptGraph();
71
+ * const activation = new SpreadingActivation(graph, { noise: 0.2 });
72
+ *
73
+ * // Activate a concept and spread
74
+ * const result = await activation.activate('pattern-1', 1.0);
75
+ *
76
+ * // Or run dream mode
77
+ * const dreamResult = await activation.dream(5000); // 5 second dream
78
+ * ```
79
+ */
80
+ export declare class SpreadingActivation extends EventEmitter {
81
+ private graph;
82
+ private config;
83
+ private logger;
84
+ private activationHistory;
85
+ constructor(graph: ConceptGraph, config?: Partial<ActivationConfig>);
86
+ /**
87
+ * Activate a concept and spread activation to neighbors
88
+ */
89
+ activate(conceptId: string, initialActivation?: number): Promise<ActivationResult>;
90
+ /**
91
+ * Dream mode: Random activation with increased noise
92
+ * Simulates the "reduced logical filtering" of REM sleep
93
+ */
94
+ dream(durationMs: number): Promise<DreamResult>;
95
+ /**
96
+ * Detect an association from co-activated nodes
97
+ */
98
+ private detectAssociation;
99
+ /**
100
+ * Calculate novelty score for a set of co-activated nodes
101
+ *
102
+ * Novelty is higher when:
103
+ * 1. Nodes have different types
104
+ * 2. Nodes have low/no edge weights between them
105
+ * 3. Nodes haven't been co-activated frequently before
106
+ */
107
+ private calculateNovelty;
108
+ /**
109
+ * Calculate novelty based on activation history
110
+ */
111
+ private calculateHistoryNovelty;
112
+ /**
113
+ * Record activation for history tracking
114
+ */
115
+ private recordActivation;
116
+ /**
117
+ * Filter to keep only novel associations
118
+ */
119
+ private filterNovelAssociations;
120
+ /**
121
+ * Reset all activations
122
+ */
123
+ resetActivations(): void;
124
+ /**
125
+ * Get configuration
126
+ */
127
+ getConfig(): ActivationConfig;
128
+ /**
129
+ * Update configuration
130
+ */
131
+ updateConfig(config: Partial<ActivationConfig>): void;
132
+ /**
133
+ * Helper to sleep for a duration
134
+ */
135
+ private sleep;
136
+ }
137
+ export default SpreadingActivation;
138
+ //# sourceMappingURL=SpreadingActivation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpreadingActivation.d.ts","sourceRoot":"","sources":["../../../src/learning/dream/SpreadingActivation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,YAAY,EAAe,MAAM,gBAAgB,CAAC;AAI3D,MAAM,WAAW,gBAAgB;IAC/B,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,YAAY,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,aAAa,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,4BAA4B;IAC5B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,yCAAyC;IACzC,UAAU,EAAE,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,cAAc,EAAE,MAAM,CAAC;IACvB,oCAAoC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,gDAAgD;IAChD,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,+CAA+C;IAC/C,iBAAiB,EAAE,WAAW,EAAE,CAAC;IACjC,6CAA6C;IAC7C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,4BAA4B;IAC5B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,mBAAoB,SAAQ,YAAY;IACnD,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,iBAAiB,CAAoC;gBAEjD,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC;IAgBnE;;OAEG;IACG,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,iBAAiB,GAAE,MAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA8F7F;;;OAGG;IACG,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAuErD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAazB;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IAmCxB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAkB/B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAYxB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAoB/B;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAQxB;;OAEG;IACH,SAAS,IAAI,gBAAgB;IAI7B;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAIrD;;OAEG;IACH,OAAO,CAAC,KAAK;CAGd;AAED,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,320 @@
1
+ "use strict";
2
+ /**
3
+ * SpreadingActivation - Activation propagation for Dream Engine
4
+ *
5
+ * Implements spreading activation algorithm for concept association
6
+ * discovery. Simulates the neural activation patterns seen in memory
7
+ * consolidation during sleep.
8
+ *
9
+ * Part of the Nightly-Learner Phase 2 implementation.
10
+ *
11
+ * @version 1.0.0
12
+ * @module src/learning/dream/SpreadingActivation
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.SpreadingActivation = void 0;
16
+ const events_1 = require("events");
17
+ const Logger_1 = require("../../utils/Logger");
18
+ const SecureRandom_1 = require("../../utils/SecureRandom");
19
+ /**
20
+ * SpreadingActivation implements neural-inspired activation spreading
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * const graph = new ConceptGraph();
25
+ * const activation = new SpreadingActivation(graph, { noise: 0.2 });
26
+ *
27
+ * // Activate a concept and spread
28
+ * const result = await activation.activate('pattern-1', 1.0);
29
+ *
30
+ * // Or run dream mode
31
+ * const dreamResult = await activation.dream(5000); // 5 second dream
32
+ * ```
33
+ */
34
+ class SpreadingActivation extends events_1.EventEmitter {
35
+ constructor(graph, config) {
36
+ super();
37
+ this.activationHistory = new Map();
38
+ this.graph = graph;
39
+ this.logger = Logger_1.Logger.getInstance();
40
+ this.config = {
41
+ decayRate: 0.9,
42
+ spreadFactor: 0.5,
43
+ threshold: 0.2,
44
+ maxIterations: 10,
45
+ noise: 0.1,
46
+ debug: false,
47
+ ...config,
48
+ };
49
+ }
50
+ /**
51
+ * Activate a concept and spread activation to neighbors
52
+ */
53
+ async activate(conceptId, initialActivation = 1.0) {
54
+ const startTime = Date.now();
55
+ const associations = [];
56
+ // Set initial activation
57
+ const node = this.graph.getConcept(conceptId);
58
+ if (!node) {
59
+ return {
60
+ iterations: 0,
61
+ nodesActivated: 0,
62
+ peakActivation: 0,
63
+ associations: [],
64
+ duration: 0,
65
+ };
66
+ }
67
+ this.graph.setActivation(conceptId, initialActivation);
68
+ this.recordActivation(conceptId, initialActivation);
69
+ if (this.config.debug) {
70
+ this.logger.debug('[SpreadingActivation] Starting activation', {
71
+ conceptId,
72
+ initialActivation,
73
+ });
74
+ }
75
+ // Spread activation iteratively
76
+ let iteration = 0;
77
+ let peakActivation = initialActivation;
78
+ while (iteration < this.config.maxIterations) {
79
+ const activeNodes = this.graph.getActiveNodes(this.config.threshold);
80
+ if (activeNodes.length === 0) {
81
+ if (this.config.debug) {
82
+ this.logger.debug('[SpreadingActivation] No active nodes, stopping');
83
+ }
84
+ break;
85
+ }
86
+ // Spread from each active node
87
+ for (const activeNode of activeNodes) {
88
+ const edges = this.graph.getEdges(activeNode.id);
89
+ for (const edge of edges) {
90
+ const targetNode = this.graph.getConcept(edge.target);
91
+ if (!targetNode)
92
+ continue;
93
+ // Calculate spread amount
94
+ const spreadAmount = activeNode.activationLevel * edge.weight * this.config.spreadFactor;
95
+ const newActivation = Math.min(1, targetNode.activationLevel + spreadAmount);
96
+ this.graph.setActivation(edge.target, newActivation);
97
+ this.recordActivation(edge.target, newActivation);
98
+ if (newActivation > peakActivation) {
99
+ peakActivation = newActivation;
100
+ }
101
+ }
102
+ }
103
+ // Decay all activations
104
+ this.graph.decayActivations(this.config.decayRate);
105
+ // Detect co-activations (potential insights)
106
+ const coActivated = this.graph.getActiveNodes(0.5);
107
+ if (coActivated.length >= 2) {
108
+ const association = this.detectAssociation(coActivated);
109
+ associations.push(association);
110
+ this.emit('association:detected', association);
111
+ }
112
+ iteration++;
113
+ }
114
+ const result = {
115
+ iterations: iteration,
116
+ nodesActivated: this.graph.getActiveNodes(0.1).length,
117
+ peakActivation,
118
+ associations,
119
+ duration: Date.now() - startTime,
120
+ };
121
+ if (this.config.debug) {
122
+ this.logger.debug('[SpreadingActivation] Activation complete', {
123
+ iterations: result.iterations,
124
+ nodesActivated: result.nodesActivated,
125
+ associations: result.associations.length,
126
+ });
127
+ }
128
+ return result;
129
+ }
130
+ /**
131
+ * Dream mode: Random activation with increased noise
132
+ * Simulates the "reduced logical filtering" of REM sleep
133
+ */
134
+ async dream(durationMs) {
135
+ const startTime = Date.now();
136
+ const associations = [];
137
+ let randomActivations = 0;
138
+ this.logger.info('[SpreadingActivation] Starting dream cycle', { durationMs });
139
+ while (Date.now() - startTime < durationMs) {
140
+ // Get all concepts
141
+ const allNodes = this.graph.getAllConcepts(0);
142
+ if (allNodes.length === 0) {
143
+ await this.sleep(100);
144
+ continue;
145
+ }
146
+ // Randomly select a concept to activate
147
+ const randomIndex = Math.floor(SecureRandom_1.SecureRandom.randomFloat() * allNodes.length);
148
+ const randomNode = allNodes[randomIndex];
149
+ if (randomNode) {
150
+ // Apply noise to activation
151
+ const noiseActivation = this.config.noise + SecureRandom_1.SecureRandom.randomFloat() * this.config.noise;
152
+ const currentActivation = randomNode.activationLevel;
153
+ const newActivation = Math.min(1, currentActivation + noiseActivation);
154
+ this.graph.setActivation(randomNode.id, newActivation);
155
+ randomActivations++;
156
+ // Let activation spread
157
+ const result = await this.activate(randomNode.id, newActivation);
158
+ associations.push(...result.associations);
159
+ this.emit('dream:activation', {
160
+ nodeId: randomNode.id,
161
+ activation: newActivation,
162
+ associations: result.associations.length,
163
+ });
164
+ }
165
+ // Small delay to prevent CPU spike and allow for graceful interruption
166
+ await this.sleep(50 + SecureRandom_1.SecureRandom.randomFloat() * 50);
167
+ }
168
+ // Filter to novel associations
169
+ const novelAssociations = this.filterNovelAssociations(associations);
170
+ const averageNovelty = associations.length > 0
171
+ ? associations.reduce((sum, a) => sum + a.novelty, 0) / associations.length
172
+ : 0;
173
+ const result = {
174
+ duration: Date.now() - startTime,
175
+ associations,
176
+ novelAssociations,
177
+ randomActivations,
178
+ averageNovelty,
179
+ };
180
+ this.logger.info('[SpreadingActivation] Dream cycle complete', {
181
+ duration: result.duration,
182
+ totalAssociations: associations.length,
183
+ novelAssociations: novelAssociations.length,
184
+ randomActivations,
185
+ averageNovelty: averageNovelty.toFixed(3),
186
+ });
187
+ this.emit('dream:complete', result);
188
+ return result;
189
+ }
190
+ /**
191
+ * Detect an association from co-activated nodes
192
+ */
193
+ detectAssociation(nodes) {
194
+ const strength = nodes.reduce((sum, n) => sum + n.activationLevel, 0) / nodes.length;
195
+ const novelty = this.calculateNovelty(nodes);
196
+ return {
197
+ nodes: nodes.map(n => n.id),
198
+ strength,
199
+ novelty,
200
+ nodeTypes: nodes.map(n => n.type),
201
+ detectedAt: new Date(),
202
+ };
203
+ }
204
+ /**
205
+ * Calculate novelty score for a set of co-activated nodes
206
+ *
207
+ * Novelty is higher when:
208
+ * 1. Nodes have different types
209
+ * 2. Nodes have low/no edge weights between them
210
+ * 3. Nodes haven't been co-activated frequently before
211
+ */
212
+ calculateNovelty(nodes) {
213
+ let novelty = 0;
214
+ // Type diversity (more diverse = more novel)
215
+ const types = new Set(nodes.map(n => n.type));
216
+ const typeDiversity = types.size / 4; // 4 possible types
217
+ novelty += typeDiversity * 0.4;
218
+ // Edge weakness (weaker/missing edges = more novel)
219
+ let edgeScore = 0;
220
+ let edgeCount = 0;
221
+ for (let i = 0; i < nodes.length; i++) {
222
+ for (let j = i + 1; j < nodes.length; j++) {
223
+ const edge = this.graph.getEdge(nodes[i].id, nodes[j].id);
224
+ if (!edge) {
225
+ edgeScore += 1.0; // No edge = maximum novelty
226
+ }
227
+ else {
228
+ edgeScore += (1 - edge.weight); // Weaker edge = more novel
229
+ }
230
+ edgeCount++;
231
+ }
232
+ }
233
+ if (edgeCount > 0) {
234
+ novelty += (edgeScore / edgeCount) * 0.4;
235
+ }
236
+ // Co-activation history (less frequent = more novel)
237
+ const historyScore = this.calculateHistoryNovelty(nodes);
238
+ novelty += historyScore * 0.2;
239
+ return Math.min(1, novelty);
240
+ }
241
+ /**
242
+ * Calculate novelty based on activation history
243
+ */
244
+ calculateHistoryNovelty(nodes) {
245
+ // Check if these nodes have been co-activated before
246
+ const nodeIds = nodes.map(n => n.id).sort();
247
+ const historyKey = nodeIds.join(':');
248
+ // Simple heuristic: newer activations are more novel
249
+ let novelty = 1.0;
250
+ for (const node of nodes) {
251
+ const history = this.activationHistory.get(node.id) || [];
252
+ if (history.length > 5) {
253
+ novelty -= 0.1; // Reduce novelty for frequently activated nodes
254
+ }
255
+ }
256
+ return Math.max(0, novelty);
257
+ }
258
+ /**
259
+ * Record activation for history tracking
260
+ */
261
+ recordActivation(nodeId, level) {
262
+ const history = this.activationHistory.get(nodeId) || [];
263
+ history.push(level);
264
+ // Keep only recent history
265
+ if (history.length > 100) {
266
+ history.shift();
267
+ }
268
+ this.activationHistory.set(nodeId, history);
269
+ }
270
+ /**
271
+ * Filter to keep only novel associations
272
+ */
273
+ filterNovelAssociations(associations) {
274
+ // Remove duplicates based on node sets
275
+ const unique = new Map();
276
+ for (const assoc of associations) {
277
+ const key = assoc.nodes.sort().join(':');
278
+ const existing = unique.get(key);
279
+ if (!existing || assoc.novelty > existing.novelty) {
280
+ unique.set(key, assoc);
281
+ }
282
+ }
283
+ // Filter by novelty threshold and sort
284
+ return Array.from(unique.values())
285
+ .filter(a => a.novelty > 0.5)
286
+ .sort((a, b) => b.novelty - a.novelty)
287
+ .slice(0, 10); // Top 10 novel associations
288
+ }
289
+ /**
290
+ * Reset all activations
291
+ */
292
+ resetActivations() {
293
+ const allNodes = this.graph.getAllConcepts(0);
294
+ for (const node of allNodes) {
295
+ this.graph.setActivation(node.id, 0);
296
+ }
297
+ this.activationHistory.clear();
298
+ }
299
+ /**
300
+ * Get configuration
301
+ */
302
+ getConfig() {
303
+ return { ...this.config };
304
+ }
305
+ /**
306
+ * Update configuration
307
+ */
308
+ updateConfig(config) {
309
+ this.config = { ...this.config, ...config };
310
+ }
311
+ /**
312
+ * Helper to sleep for a duration
313
+ */
314
+ sleep(ms) {
315
+ return new Promise(resolve => setTimeout(resolve, ms));
316
+ }
317
+ }
318
+ exports.SpreadingActivation = SpreadingActivation;
319
+ exports.default = SpreadingActivation;
320
+ //# sourceMappingURL=SpreadingActivation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpreadingActivation.js","sourceRoot":"","sources":["../../../src/learning/dream/SpreadingActivation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Dream Engine Module
3
+ *
4
+ * Implements dream-based pattern discovery for the Nightly-Learner system.
5
+ * Uses spreading activation to find novel associations between concepts.
6
+ *
7
+ * @module src/learning/dream
8
+ */
9
+ export { ConceptGraph, ConceptNode, ConceptEdge, ConceptType, EdgeType, ConceptGraphConfig, GraphStats, } from './ConceptGraph';
10
+ export { SpreadingActivation, ActivationConfig, Association, ActivationResult, DreamResult, } from './SpreadingActivation';
11
+ export { InsightGenerator, DreamInsight, InsightType, InsightGeneratorConfig, InsightGenerationResult, } from './InsightGenerator';
12
+ export { DreamEngine, DreamEngineConfig, DreamCycleResult, DreamEngineState, } from './DreamEngine';
13
+ export { DreamEngine as default } from './DreamEngine';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/learning/dream/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,YAAY,EACZ,WAAW,EACX,WAAW,EACX,WAAW,EACX,QAAQ,EACR,kBAAkB,EAClB,UAAU,GACX,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,WAAW,GACZ,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,WAAW,IAAI,OAAO,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ /**
3
+ * Dream Engine Module
4
+ *
5
+ * Implements dream-based pattern discovery for the Nightly-Learner system.
6
+ * Uses spreading activation to find novel associations between concepts.
7
+ *
8
+ * @module src/learning/dream
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.default = exports.DreamEngine = exports.InsightGenerator = exports.SpreadingActivation = exports.ConceptGraph = void 0;
12
+ var ConceptGraph_1 = require("./ConceptGraph");
13
+ Object.defineProperty(exports, "ConceptGraph", { enumerable: true, get: function () { return ConceptGraph_1.ConceptGraph; } });
14
+ var SpreadingActivation_1 = require("./SpreadingActivation");
15
+ Object.defineProperty(exports, "SpreadingActivation", { enumerable: true, get: function () { return SpreadingActivation_1.SpreadingActivation; } });
16
+ var InsightGenerator_1 = require("./InsightGenerator");
17
+ Object.defineProperty(exports, "InsightGenerator", { enumerable: true, get: function () { return InsightGenerator_1.InsightGenerator; } });
18
+ var DreamEngine_1 = require("./DreamEngine");
19
+ Object.defineProperty(exports, "DreamEngine", { enumerable: true, get: function () { return DreamEngine_1.DreamEngine; } });
20
+ var DreamEngine_2 = require("./DreamEngine");
21
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return DreamEngine_2.DreamEngine; } });
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/learning/dream/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAEH,+CAQwB;AAPtB,4GAAA,YAAY,OAAA;AASd,6DAM+B;AAL7B,0HAAA,mBAAmB,OAAA;AAOrB,uDAM4B;AAL1B,oHAAA,gBAAgB,OAAA;AAOlB,6CAKuB;AAJrB,0GAAA,WAAW,OAAA;AAMb,6CAAuD;AAA9C,sGAAA,WAAW,OAAW"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * AlertManager - Phase 3 Alert System
3
+ *
4
+ * Manages alerts for learning metrics that exceed thresholds.
5
+ * Tracks alert state and acknowledgments.
6
+ */
7
+ import { SwarmMemoryManager } from '../../core/memory/SwarmMemoryManager';
8
+ import { AggregatedMetrics } from './MetricsCollector';
9
+ /**
10
+ * Alert severity levels
11
+ */
12
+ export declare enum AlertSeverity {
13
+ INFO = "info",
14
+ WARNING = "warning",
15
+ ERROR = "error"
16
+ }
17
+ /**
18
+ * Alert status
19
+ */
20
+ export declare enum AlertStatus {
21
+ ACTIVE = "active",
22
+ ACKNOWLEDGED = "acknowledged",
23
+ RESOLVED = "resolved"
24
+ }
25
+ /**
26
+ * Alert definition
27
+ */
28
+ export interface Alert {
29
+ id: string;
30
+ severity: AlertSeverity;
31
+ metric: string;
32
+ message: string;
33
+ currentValue: number;
34
+ threshold: number;
35
+ status: AlertStatus;
36
+ createdAt: Date;
37
+ acknowledgedAt?: Date;
38
+ resolvedAt?: Date;
39
+ }
40
+ /**
41
+ * Alert threshold configuration
42
+ */
43
+ export interface AlertThreshold {
44
+ metric: string;
45
+ warningThreshold: number;
46
+ errorThreshold: number;
47
+ comparison: 'gt' | 'lt';
48
+ }
49
+ /**
50
+ * AlertManager - Manages learning metric alerts
51
+ */
52
+ export declare class AlertManager {
53
+ private readonly logger;
54
+ private readonly memoryManager;
55
+ private alerts;
56
+ private readonly DEFAULT_THRESHOLDS;
57
+ constructor(memoryManager: SwarmMemoryManager);
58
+ /**
59
+ * Initialize alert manager
60
+ */
61
+ initialize(): Promise<void>;
62
+ /**
63
+ * Check metrics against thresholds and create alerts
64
+ */
65
+ checkMetrics(metrics: AggregatedMetrics): Promise<Alert[]>;
66
+ /**
67
+ * Get all active alerts
68
+ */
69
+ getActiveAlerts(): Alert[];
70
+ /**
71
+ * Get all alerts (including acknowledged)
72
+ */
73
+ getAllAlerts(): Alert[];
74
+ /**
75
+ * Acknowledge an alert
76
+ */
77
+ acknowledgeAlert(alertId: string): Promise<void>;
78
+ /**
79
+ * Resolve an alert
80
+ */
81
+ resolveAlert(alertId: string): Promise<void>;
82
+ /**
83
+ * Check a single threshold
84
+ */
85
+ private checkThreshold;
86
+ /**
87
+ * Generate alert message
88
+ */
89
+ private generateAlertMessage;
90
+ /**
91
+ * Get metric value from aggregated metrics
92
+ */
93
+ private getMetricValue;
94
+ /**
95
+ * Store alert in memory
96
+ */
97
+ private storeAlert;
98
+ /**
99
+ * Load alerts from memory
100
+ */
101
+ private loadAlerts;
102
+ /**
103
+ * Get alert icon
104
+ */
105
+ static getAlertIcon(severity: AlertSeverity): string;
106
+ }
107
+ //# sourceMappingURL=AlertManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlertManager.d.ts","sourceRoot":"","sources":["../../../src/learning/metrics/AlertManager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;GAEG;AACH,oBAAY,aAAa;IACvB,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED;;GAEG;AACH,oBAAY,WAAW;IACrB,MAAM,WAAW;IACjB,YAAY,iBAAiB;IAC7B,QAAQ,aAAa;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;IAChB,cAAc,CAAC,EAAE,IAAI,CAAC;IACtB,UAAU,CAAC,EAAE,IAAI,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;CACzB;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,MAAM,CAAqB;IAGnC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAMjC;gBAEU,aAAa,EAAE,kBAAkB;IAM7C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAkBhE;;OAEG;IACH,eAAe,IAAI,KAAK,EAAE;IAY1B;;OAEG;IACH,YAAY,IAAI,KAAK,EAAE;IAKvB;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAetD;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAelD;;OAEG;IACH,OAAO,CAAC,cAAc;IAwDtB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAY5B;;OAEG;IACH,OAAO,CAAC,cAAc;IAiBtB;;OAEG;YACW,UAAU;IAQxB;;OAEG;YACW,UAAU;IA0BxB;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM;CAUrD"}