agentic-qe 2.3.2 → 2.3.4

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 (283) hide show
  1. package/CHANGELOG.md +140 -0
  2. package/README.md +1 -1
  3. package/dist/agents/BaseAgent.d.ts +10 -0
  4. package/dist/agents/BaseAgent.d.ts.map +1 -1
  5. package/dist/agents/BaseAgent.js +113 -0
  6. package/dist/agents/BaseAgent.js.map +1 -1
  7. package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -1
  8. package/dist/agents/CoverageAnalyzerAgent.js +53 -27
  9. package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
  10. package/dist/agents/FlakyTestHunterAgent.d.ts +5 -0
  11. package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -1
  12. package/dist/agents/FlakyTestHunterAgent.js +20 -5
  13. package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
  14. package/dist/agents/QualityGateAgent.js +44 -6
  15. package/dist/agents/QualityGateAgent.js.map +1 -1
  16. package/dist/cli/commands/dream/index.d.ts +50 -0
  17. package/dist/cli/commands/dream/index.d.ts.map +1 -0
  18. package/dist/cli/commands/dream/index.js +282 -0
  19. package/dist/cli/commands/dream/index.js.map +1 -0
  20. package/dist/cli/commands/learn/index.d.ts +31 -5
  21. package/dist/cli/commands/learn/index.d.ts.map +1 -1
  22. package/dist/cli/commands/learn/index.js +183 -50
  23. package/dist/cli/commands/learn/index.js.map +1 -1
  24. package/dist/cli/commands/transfer/index.d.ts +55 -0
  25. package/dist/cli/commands/transfer/index.d.ts.map +1 -0
  26. package/dist/cli/commands/transfer/index.js +317 -0
  27. package/dist/cli/commands/transfer/index.js.map +1 -0
  28. package/dist/cli/index.js +156 -3
  29. package/dist/cli/index.js.map +1 -1
  30. package/dist/cli/init/database-init.js +5 -0
  31. package/dist/cli/init/database-init.js.map +1 -1
  32. package/dist/cli/init/index.d.ts.map +1 -1
  33. package/dist/cli/init/index.js +12 -4
  34. package/dist/cli/init/index.js.map +1 -1
  35. package/dist/cli/init/learning-init.d.ts +39 -0
  36. package/dist/cli/init/learning-init.d.ts.map +1 -0
  37. package/dist/cli/init/learning-init.js +239 -0
  38. package/dist/cli/init/learning-init.js.map +1 -0
  39. package/dist/core/memory/HNSWVectorMemory.js +1 -1
  40. package/dist/learning/PerformanceTracker.d.ts +9 -0
  41. package/dist/learning/PerformanceTracker.d.ts.map +1 -1
  42. package/dist/learning/PerformanceTracker.js +26 -2
  43. package/dist/learning/PerformanceTracker.js.map +1 -1
  44. package/dist/learning/baselines/BaselineCollector.d.ts +178 -0
  45. package/dist/learning/baselines/BaselineCollector.d.ts.map +1 -0
  46. package/dist/learning/baselines/BaselineCollector.js +398 -0
  47. package/dist/learning/baselines/BaselineCollector.js.map +1 -0
  48. package/dist/learning/baselines/StandardTaskSuite.d.ts +88 -0
  49. package/dist/learning/baselines/StandardTaskSuite.d.ts.map +1 -0
  50. package/dist/learning/baselines/StandardTaskSuite.js +801 -0
  51. package/dist/learning/baselines/StandardTaskSuite.js.map +1 -0
  52. package/dist/learning/baselines/index.d.ts +10 -0
  53. package/dist/learning/baselines/index.d.ts.map +1 -0
  54. package/dist/learning/baselines/index.js +15 -0
  55. package/dist/learning/baselines/index.js.map +1 -0
  56. package/dist/learning/capture/ExecutionRecorder.d.ts +97 -0
  57. package/dist/learning/capture/ExecutionRecorder.d.ts.map +1 -0
  58. package/dist/learning/capture/ExecutionRecorder.js +195 -0
  59. package/dist/learning/capture/ExecutionRecorder.js.map +1 -0
  60. package/dist/learning/capture/ExperienceCapture.d.ts +177 -0
  61. package/dist/learning/capture/ExperienceCapture.d.ts.map +1 -0
  62. package/dist/learning/capture/ExperienceCapture.js +432 -0
  63. package/dist/learning/capture/ExperienceCapture.js.map +1 -0
  64. package/dist/learning/capture/index.d.ts +12 -0
  65. package/dist/learning/capture/index.d.ts.map +1 -0
  66. package/dist/learning/capture/index.js +17 -0
  67. package/dist/learning/capture/index.js.map +1 -0
  68. package/dist/learning/dashboard/MetricsDashboard.d.ts +63 -0
  69. package/dist/learning/dashboard/MetricsDashboard.d.ts.map +1 -0
  70. package/dist/learning/dashboard/MetricsDashboard.js +230 -0
  71. package/dist/learning/dashboard/MetricsDashboard.js.map +1 -0
  72. package/dist/learning/dashboard/index.d.ts +7 -0
  73. package/dist/learning/dashboard/index.d.ts.map +1 -0
  74. package/dist/learning/dashboard/index.js +23 -0
  75. package/dist/learning/dashboard/index.js.map +1 -0
  76. package/dist/learning/dream/ConceptGraph.d.ts +160 -0
  77. package/dist/learning/dream/ConceptGraph.d.ts.map +1 -0
  78. package/dist/learning/dream/ConceptGraph.js +445 -0
  79. package/dist/learning/dream/ConceptGraph.js.map +1 -0
  80. package/dist/learning/dream/DreamEngine.d.ts +150 -0
  81. package/dist/learning/dream/DreamEngine.d.ts.map +1 -0
  82. package/dist/learning/dream/DreamEngine.js +551 -0
  83. package/dist/learning/dream/DreamEngine.js.map +1 -0
  84. package/dist/learning/dream/InsightGenerator.d.ts +152 -0
  85. package/dist/learning/dream/InsightGenerator.d.ts.map +1 -0
  86. package/dist/learning/dream/InsightGenerator.js +463 -0
  87. package/dist/learning/dream/InsightGenerator.js.map +1 -0
  88. package/dist/learning/dream/SpreadingActivation.d.ts +138 -0
  89. package/dist/learning/dream/SpreadingActivation.d.ts.map +1 -0
  90. package/dist/learning/dream/SpreadingActivation.js +320 -0
  91. package/dist/learning/dream/SpreadingActivation.js.map +1 -0
  92. package/dist/learning/dream/index.d.ts +14 -0
  93. package/dist/learning/dream/index.d.ts.map +1 -0
  94. package/dist/learning/dream/index.js +22 -0
  95. package/dist/learning/dream/index.js.map +1 -0
  96. package/dist/learning/metrics/AlertManager.d.ts +107 -0
  97. package/dist/learning/metrics/AlertManager.d.ts.map +1 -0
  98. package/dist/learning/metrics/AlertManager.js +246 -0
  99. package/dist/learning/metrics/AlertManager.js.map +1 -0
  100. package/dist/learning/metrics/LearningMetrics.d.ts +184 -0
  101. package/dist/learning/metrics/LearningMetrics.d.ts.map +1 -0
  102. package/dist/learning/metrics/LearningMetrics.js +754 -0
  103. package/dist/learning/metrics/LearningMetrics.js.map +1 -0
  104. package/dist/learning/metrics/MetricsCollector.d.ts +108 -0
  105. package/dist/learning/metrics/MetricsCollector.d.ts.map +1 -0
  106. package/dist/learning/metrics/MetricsCollector.js +240 -0
  107. package/dist/learning/metrics/MetricsCollector.js.map +1 -0
  108. package/dist/learning/metrics/MetricsStore.d.ts +149 -0
  109. package/dist/learning/metrics/MetricsStore.d.ts.map +1 -0
  110. package/dist/learning/metrics/MetricsStore.js +502 -0
  111. package/dist/learning/metrics/MetricsStore.js.map +1 -0
  112. package/dist/learning/metrics/TrendAnalyzer.d.ts +85 -0
  113. package/dist/learning/metrics/TrendAnalyzer.d.ts.map +1 -0
  114. package/dist/learning/metrics/TrendAnalyzer.js +210 -0
  115. package/dist/learning/metrics/TrendAnalyzer.js.map +1 -0
  116. package/dist/learning/metrics/index.d.ts +13 -0
  117. package/dist/learning/metrics/index.d.ts.map +1 -0
  118. package/dist/learning/metrics/index.js +39 -0
  119. package/dist/learning/metrics/index.js.map +1 -0
  120. package/dist/learning/scheduler/IdleDetector.d.ts +126 -0
  121. package/dist/learning/scheduler/IdleDetector.d.ts.map +1 -0
  122. package/dist/learning/scheduler/IdleDetector.js +281 -0
  123. package/dist/learning/scheduler/IdleDetector.js.map +1 -0
  124. package/dist/learning/scheduler/SleepCycle.d.ts +150 -0
  125. package/dist/learning/scheduler/SleepCycle.d.ts.map +1 -0
  126. package/dist/learning/scheduler/SleepCycle.js +506 -0
  127. package/dist/learning/scheduler/SleepCycle.js.map +1 -0
  128. package/dist/learning/scheduler/SleepScheduler.d.ts +131 -0
  129. package/dist/learning/scheduler/SleepScheduler.d.ts.map +1 -0
  130. package/dist/learning/scheduler/SleepScheduler.js +299 -0
  131. package/dist/learning/scheduler/SleepScheduler.js.map +1 -0
  132. package/dist/learning/scheduler/TimeBasedTrigger.d.ts +108 -0
  133. package/dist/learning/scheduler/TimeBasedTrigger.d.ts.map +1 -0
  134. package/dist/learning/scheduler/TimeBasedTrigger.js +222 -0
  135. package/dist/learning/scheduler/TimeBasedTrigger.js.map +1 -0
  136. package/dist/learning/scheduler/index.d.ts +16 -0
  137. package/dist/learning/scheduler/index.d.ts.map +1 -0
  138. package/dist/learning/scheduler/index.js +23 -0
  139. package/dist/learning/scheduler/index.js.map +1 -0
  140. package/dist/learning/synthesis/PatternSynthesis.d.ts +162 -0
  141. package/dist/learning/synthesis/PatternSynthesis.d.ts.map +1 -0
  142. package/dist/learning/synthesis/PatternSynthesis.js +479 -0
  143. package/dist/learning/synthesis/PatternSynthesis.js.map +1 -0
  144. package/dist/learning/synthesis/index.d.ts +10 -0
  145. package/dist/learning/synthesis/index.d.ts.map +1 -0
  146. package/dist/learning/synthesis/index.js +14 -0
  147. package/dist/learning/synthesis/index.js.map +1 -0
  148. package/dist/learning/transfer/CompatibilityScorer.d.ts +115 -0
  149. package/dist/learning/transfer/CompatibilityScorer.d.ts.map +1 -0
  150. package/dist/learning/transfer/CompatibilityScorer.js +319 -0
  151. package/dist/learning/transfer/CompatibilityScorer.js.map +1 -0
  152. package/dist/learning/transfer/TransferProtocol.d.ts +172 -0
  153. package/dist/learning/transfer/TransferProtocol.d.ts.map +1 -0
  154. package/dist/learning/transfer/TransferProtocol.js +611 -0
  155. package/dist/learning/transfer/TransferProtocol.js.map +1 -0
  156. package/dist/learning/transfer/TransferPrototype.d.ts +93 -0
  157. package/dist/learning/transfer/TransferPrototype.d.ts.map +1 -0
  158. package/dist/learning/transfer/TransferPrototype.js +433 -0
  159. package/dist/learning/transfer/TransferPrototype.js.map +1 -0
  160. package/dist/learning/transfer/TransferValidator.d.ts +140 -0
  161. package/dist/learning/transfer/TransferValidator.d.ts.map +1 -0
  162. package/dist/learning/transfer/TransferValidator.js +413 -0
  163. package/dist/learning/transfer/TransferValidator.js.map +1 -0
  164. package/dist/learning/transfer/index.d.ts +14 -0
  165. package/dist/learning/transfer/index.d.ts.map +1 -0
  166. package/dist/learning/transfer/index.js +22 -0
  167. package/dist/learning/transfer/index.js.map +1 -0
  168. package/dist/mcp/handlers/test/test-generate-enhanced.d.ts +26 -2
  169. package/dist/mcp/handlers/test/test-generate-enhanced.d.ts.map +1 -1
  170. package/dist/mcp/handlers/test/test-generate-enhanced.js +159 -27
  171. package/dist/mcp/handlers/test/test-generate-enhanced.js.map +1 -1
  172. package/dist/mcp/server-instructions.d.ts +1 -1
  173. package/dist/mcp/server-instructions.js +1 -1
  174. package/dist/mcp/server.d.ts.map +1 -1
  175. package/dist/mcp/server.js +2 -1
  176. package/dist/mcp/server.js.map +1 -1
  177. package/package.json +7 -2
  178. package/scripts/README.md +352 -0
  179. package/scripts/hooks/capture-task-learning.js +191 -0
  180. package/scripts/hooks/emit-task-complete.sh +35 -0
  181. package/scripts/hooks/emit-task-spawn.sh +27 -0
  182. package/.claude/agents/failing-agent.json +0 -9
  183. package/.claude/agents/test-agent.json +0 -9
  184. package/dist/App.d.ts +0 -5
  185. package/dist/App.d.ts.map +0 -1
  186. package/dist/App.js +0 -15
  187. package/dist/App.js.map +0 -1
  188. package/dist/cli/init/utils.d.ts +0 -183
  189. package/dist/cli/init/utils.d.ts.map +0 -1
  190. package/dist/cli/init/utils.js +0 -354
  191. package/dist/cli/init/utils.js.map +0 -1
  192. package/dist/components/Dashboard/Dashboard.d.ts +0 -4
  193. package/dist/components/Dashboard/Dashboard.d.ts.map +0 -1
  194. package/dist/components/Dashboard/Dashboard.js +0 -148
  195. package/dist/components/Dashboard/Dashboard.js.map +0 -1
  196. package/dist/components/Dashboard/DashboardHeader.d.ts +0 -4
  197. package/dist/components/Dashboard/DashboardHeader.d.ts.map +0 -1
  198. package/dist/components/Dashboard/DashboardHeader.js +0 -138
  199. package/dist/components/Dashboard/DashboardHeader.js.map +0 -1
  200. package/dist/contexts/DashboardContext.d.ts +0 -41
  201. package/dist/contexts/DashboardContext.d.ts.map +0 -1
  202. package/dist/contexts/DashboardContext.js +0 -187
  203. package/dist/contexts/DashboardContext.js.map +0 -1
  204. package/dist/core/transport/QUICTransport.d.ts +0 -320
  205. package/dist/core/transport/QUICTransport.d.ts.map +0 -1
  206. package/dist/core/transport/QUICTransport.js +0 -711
  207. package/dist/core/transport/QUICTransport.js.map +0 -1
  208. package/dist/learning/LearningPersistenceAdapter.d.ts +0 -84
  209. package/dist/learning/LearningPersistenceAdapter.d.ts.map +0 -1
  210. package/dist/learning/LearningPersistenceAdapter.js +0 -202
  211. package/dist/learning/LearningPersistenceAdapter.js.map +0 -1
  212. package/dist/learning/algorithms/QLearning.d.ts +0 -68
  213. package/dist/learning/algorithms/QLearning.d.ts.map +0 -1
  214. package/dist/learning/algorithms/QLearning.js +0 -116
  215. package/dist/learning/algorithms/QLearning.js.map +0 -1
  216. package/dist/mcp/handlers/advanced/requirements-generate-bdd.d.ts +0 -7
  217. package/dist/mcp/handlers/advanced/requirements-generate-bdd.d.ts.map +0 -1
  218. package/dist/mcp/handlers/advanced/requirements-generate-bdd.js +0 -267
  219. package/dist/mcp/handlers/advanced/requirements-generate-bdd.js.map +0 -1
  220. package/dist/mcp/handlers/advanced/requirements-validate.d.ts +0 -7
  221. package/dist/mcp/handlers/advanced/requirements-validate.d.ts.map +0 -1
  222. package/dist/mcp/handlers/advanced/requirements-validate.js +0 -175
  223. package/dist/mcp/handlers/advanced/requirements-validate.js.map +0 -1
  224. package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.d.ts +0 -15
  225. package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.d.ts.map +0 -1
  226. package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.js +0 -43
  227. package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.js.map +0 -1
  228. package/dist/mcp/handlers/analysis/performanceBenchmarkRun.d.ts +0 -58
  229. package/dist/mcp/handlers/analysis/performanceBenchmarkRun.d.ts.map +0 -1
  230. package/dist/mcp/handlers/analysis/performanceBenchmarkRun.js +0 -188
  231. package/dist/mcp/handlers/analysis/performanceBenchmarkRun.js.map +0 -1
  232. package/dist/mcp/handlers/optimize-tests.d.ts +0 -219
  233. package/dist/mcp/handlers/optimize-tests.d.ts.map +0 -1
  234. package/dist/mcp/handlers/optimize-tests.js +0 -533
  235. package/dist/mcp/handlers/optimize-tests.js.map +0 -1
  236. package/dist/mcp/handlers/predict-defects.d.ts +0 -194
  237. package/dist/mcp/handlers/predict-defects.d.ts.map +0 -1
  238. package/dist/mcp/handlers/predict-defects.js +0 -722
  239. package/dist/mcp/handlers/predict-defects.js.map +0 -1
  240. package/dist/mcp/handlers/prediction/regression-risk-analyze.d.ts +0 -199
  241. package/dist/mcp/handlers/prediction/regression-risk-analyze.d.ts.map +0 -1
  242. package/dist/mcp/handlers/prediction/regression-risk-analyze.js +0 -471
  243. package/dist/mcp/handlers/prediction/regression-risk-analyze.js.map +0 -1
  244. package/dist/mcp/handlers/quality/quality-decision-make.d.ts +0 -104
  245. package/dist/mcp/handlers/quality/quality-decision-make.d.ts.map +0 -1
  246. package/dist/mcp/handlers/quality/quality-decision-make.js +0 -408
  247. package/dist/mcp/handlers/quality/quality-decision-make.js.map +0 -1
  248. package/dist/mcp/handlers/quality/quality-gate-execute.d.ts +0 -160
  249. package/dist/mcp/handlers/quality/quality-gate-execute.d.ts.map +0 -1
  250. package/dist/mcp/handlers/quality/quality-gate-execute.js +0 -412
  251. package/dist/mcp/handlers/quality/quality-gate-execute.js.map +0 -1
  252. package/dist/mcp/handlers/quality/quality-policy-check.d.ts +0 -163
  253. package/dist/mcp/handlers/quality/quality-policy-check.d.ts.map +0 -1
  254. package/dist/mcp/handlers/quality/quality-policy-check.js +0 -455
  255. package/dist/mcp/handlers/quality/quality-policy-check.js.map +0 -1
  256. package/dist/mcp/handlers/quality/quality-risk-assess.d.ts +0 -123
  257. package/dist/mcp/handlers/quality/quality-risk-assess.d.ts.map +0 -1
  258. package/dist/mcp/handlers/quality/quality-risk-assess.js +0 -522
  259. package/dist/mcp/handlers/quality/quality-risk-assess.js.map +0 -1
  260. package/dist/mcp/handlers/quality/quality-validate-metrics.d.ts +0 -117
  261. package/dist/mcp/handlers/quality/quality-validate-metrics.d.ts.map +0 -1
  262. package/dist/mcp/handlers/quality/quality-validate-metrics.js +0 -288
  263. package/dist/mcp/handlers/quality/quality-validate-metrics.js.map +0 -1
  264. package/dist/mcp/handlers/quality-analyze.d.ts +0 -279
  265. package/dist/mcp/handlers/quality-analyze.d.ts.map +0 -1
  266. package/dist/mcp/handlers/quality-analyze.js +0 -720
  267. package/dist/mcp/handlers/quality-analyze.js.map +0 -1
  268. package/dist/mcp/handlers/security/check-authz.d.ts +0 -152
  269. package/dist/mcp/handlers/security/check-authz.d.ts.map +0 -1
  270. package/dist/mcp/handlers/security/check-authz.js +0 -434
  271. package/dist/mcp/handlers/security/check-authz.js.map +0 -1
  272. package/dist/mcp/handlers/security/scan-dependencies.d.ts +0 -148
  273. package/dist/mcp/handlers/security/scan-dependencies.d.ts.map +0 -1
  274. package/dist/mcp/handlers/security/scan-dependencies.js +0 -354
  275. package/dist/mcp/handlers/security/scan-dependencies.js.map +0 -1
  276. package/dist/mcp/handlers/security/validate-auth.d.ts +0 -128
  277. package/dist/mcp/handlers/security/validate-auth.d.ts.map +0 -1
  278. package/dist/mcp/handlers/security/validate-auth.js +0 -294
  279. package/dist/mcp/handlers/security/validate-auth.js.map +0 -1
  280. package/dist/mcp/handlers/test-generate.d.ts +0 -107
  281. package/dist/mcp/handlers/test-generate.d.ts.map +0 -1
  282. package/dist/mcp/handlers/test-generate.js +0 -454
  283. package/dist/mcp/handlers/test-generate.js.map +0 -1
@@ -0,0 +1,246 @@
1
+ "use strict";
2
+ /**
3
+ * AlertManager - Phase 3 Alert System
4
+ *
5
+ * Manages alerts for learning metrics that exceed thresholds.
6
+ * Tracks alert state and acknowledgments.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.AlertManager = exports.AlertStatus = exports.AlertSeverity = void 0;
10
+ const Logger_1 = require("../../utils/Logger");
11
+ /**
12
+ * Alert severity levels
13
+ */
14
+ var AlertSeverity;
15
+ (function (AlertSeverity) {
16
+ AlertSeverity["INFO"] = "info";
17
+ AlertSeverity["WARNING"] = "warning";
18
+ AlertSeverity["ERROR"] = "error";
19
+ })(AlertSeverity || (exports.AlertSeverity = AlertSeverity = {}));
20
+ /**
21
+ * Alert status
22
+ */
23
+ var AlertStatus;
24
+ (function (AlertStatus) {
25
+ AlertStatus["ACTIVE"] = "active";
26
+ AlertStatus["ACKNOWLEDGED"] = "acknowledged";
27
+ AlertStatus["RESOLVED"] = "resolved";
28
+ })(AlertStatus || (exports.AlertStatus = AlertStatus = {}));
29
+ /**
30
+ * AlertManager - Manages learning metric alerts
31
+ */
32
+ class AlertManager {
33
+ constructor(memoryManager) {
34
+ // Default thresholds
35
+ this.DEFAULT_THRESHOLDS = [
36
+ { metric: 'errorRate', warningThreshold: 0.1, errorThreshold: 0.2, comparison: 'gt' },
37
+ { metric: 'cycleCompletionRate', warningThreshold: 0.8, errorThreshold: 0.6, comparison: 'lt' },
38
+ { metric: 'avgAccuracy', warningThreshold: 0.7, errorThreshold: 0.5, comparison: 'lt' },
39
+ { metric: 'transferSuccessRate', warningThreshold: 0.6, errorThreshold: 0.4, comparison: 'lt' },
40
+ { metric: 'discoveryRate', warningThreshold: 1.0, errorThreshold: 0.5, comparison: 'lt' }
41
+ ];
42
+ this.logger = Logger_1.Logger.getInstance();
43
+ this.memoryManager = memoryManager;
44
+ this.alerts = new Map();
45
+ }
46
+ /**
47
+ * Initialize alert manager
48
+ */
49
+ async initialize() {
50
+ await this.loadAlerts();
51
+ }
52
+ /**
53
+ * Check metrics against thresholds and create alerts
54
+ */
55
+ async checkMetrics(metrics) {
56
+ const newAlerts = [];
57
+ // Check each threshold
58
+ for (const threshold of this.DEFAULT_THRESHOLDS) {
59
+ const value = this.getMetricValue(metrics, threshold.metric);
60
+ if (value === null)
61
+ continue;
62
+ const alert = this.checkThreshold(threshold, value);
63
+ if (alert) {
64
+ newAlerts.push(alert);
65
+ await this.storeAlert(alert);
66
+ }
67
+ }
68
+ return newAlerts;
69
+ }
70
+ /**
71
+ * Get all active alerts
72
+ */
73
+ getActiveAlerts() {
74
+ return Array.from(this.alerts.values())
75
+ .filter(a => a.status === AlertStatus.ACTIVE)
76
+ .sort((a, b) => {
77
+ // Sort by severity (error > warning > info) then by date
78
+ const severityOrder = { error: 0, warning: 1, info: 2 };
79
+ const severityDiff = severityOrder[a.severity] - severityOrder[b.severity];
80
+ if (severityDiff !== 0)
81
+ return severityDiff;
82
+ return b.createdAt.getTime() - a.createdAt.getTime();
83
+ });
84
+ }
85
+ /**
86
+ * Get all alerts (including acknowledged)
87
+ */
88
+ getAllAlerts() {
89
+ return Array.from(this.alerts.values())
90
+ .sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime());
91
+ }
92
+ /**
93
+ * Acknowledge an alert
94
+ */
95
+ async acknowledgeAlert(alertId) {
96
+ const alert = this.alerts.get(alertId);
97
+ if (!alert) {
98
+ throw new Error(`Alert not found: ${alertId}`);
99
+ }
100
+ alert.status = AlertStatus.ACKNOWLEDGED;
101
+ alert.acknowledgedAt = new Date();
102
+ this.alerts.set(alertId, alert);
103
+ await this.storeAlert(alert);
104
+ this.logger.info(`Alert acknowledged: ${alertId}`);
105
+ }
106
+ /**
107
+ * Resolve an alert
108
+ */
109
+ async resolveAlert(alertId) {
110
+ const alert = this.alerts.get(alertId);
111
+ if (!alert) {
112
+ throw new Error(`Alert not found: ${alertId}`);
113
+ }
114
+ alert.status = AlertStatus.RESOLVED;
115
+ alert.resolvedAt = new Date();
116
+ this.alerts.set(alertId, alert);
117
+ await this.storeAlert(alert);
118
+ this.logger.info(`Alert resolved: ${alertId}`);
119
+ }
120
+ /**
121
+ * Check a single threshold
122
+ */
123
+ checkThreshold(threshold, currentValue) {
124
+ let severity = null;
125
+ let thresholdValue = 0;
126
+ if (threshold.comparison === 'gt') {
127
+ // Value should be LESS than threshold
128
+ if (currentValue >= threshold.errorThreshold) {
129
+ severity = AlertSeverity.ERROR;
130
+ thresholdValue = threshold.errorThreshold;
131
+ }
132
+ else if (currentValue >= threshold.warningThreshold) {
133
+ severity = AlertSeverity.WARNING;
134
+ thresholdValue = threshold.warningThreshold;
135
+ }
136
+ }
137
+ else {
138
+ // Value should be GREATER than threshold
139
+ if (currentValue <= threshold.errorThreshold) {
140
+ severity = AlertSeverity.ERROR;
141
+ thresholdValue = threshold.errorThreshold;
142
+ }
143
+ else if (currentValue <= threshold.warningThreshold) {
144
+ severity = AlertSeverity.WARNING;
145
+ thresholdValue = threshold.warningThreshold;
146
+ }
147
+ }
148
+ if (!severity)
149
+ return null;
150
+ // Check if alert already exists for this metric
151
+ const existingAlert = Array.from(this.alerts.values()).find(a => a.metric === threshold.metric && a.status === AlertStatus.ACTIVE);
152
+ if (existingAlert) {
153
+ // Update existing alert if value changed significantly
154
+ if (Math.abs(existingAlert.currentValue - currentValue) > 0.01) {
155
+ existingAlert.currentValue = currentValue;
156
+ this.storeAlert(existingAlert);
157
+ }
158
+ return null;
159
+ }
160
+ // Create new alert
161
+ const alert = {
162
+ id: `alert-${threshold.metric}-${Date.now()}`,
163
+ severity,
164
+ metric: threshold.metric,
165
+ message: this.generateAlertMessage(threshold.metric, currentValue, thresholdValue, threshold.comparison),
166
+ currentValue,
167
+ threshold: thresholdValue,
168
+ status: AlertStatus.ACTIVE,
169
+ createdAt: new Date()
170
+ };
171
+ this.alerts.set(alert.id, alert);
172
+ return alert;
173
+ }
174
+ /**
175
+ * Generate alert message
176
+ */
177
+ generateAlertMessage(metric, currentValue, threshold, comparison) {
178
+ const formatted = (v) => (v * 100).toFixed(1) + '%';
179
+ const operator = comparison === 'gt' ? 'above' : 'below';
180
+ return `${metric} is ${operator} threshold: ${formatted(currentValue)} (threshold: ${formatted(threshold)})`;
181
+ }
182
+ /**
183
+ * Get metric value from aggregated metrics
184
+ */
185
+ getMetricValue(metrics, metricName) {
186
+ switch (metricName) {
187
+ case 'errorRate':
188
+ return metrics.system.errorRate;
189
+ case 'cycleCompletionRate':
190
+ return metrics.system.cycleCompletionRate;
191
+ case 'avgAccuracy':
192
+ return metrics.quality.avgAccuracy;
193
+ case 'transferSuccessRate':
194
+ return metrics.transfer.successRate;
195
+ case 'discoveryRate':
196
+ return metrics.discovery.discoveryRate;
197
+ default:
198
+ return null;
199
+ }
200
+ }
201
+ /**
202
+ * Store alert in memory
203
+ */
204
+ async storeAlert(alert) {
205
+ await this.memoryManager.store(`phase3/alerts/${alert.id}`, alert, { partition: 'learning' });
206
+ }
207
+ /**
208
+ * Load alerts from memory
209
+ */
210
+ async loadAlerts() {
211
+ try {
212
+ const entries = await this.memoryManager.query('phase3/alerts/%', { partition: 'learning' });
213
+ entries.forEach(entry => {
214
+ const alert = entry.value;
215
+ // Convert date strings back to Date objects
216
+ alert.createdAt = new Date(alert.createdAt);
217
+ if (alert.acknowledgedAt) {
218
+ alert.acknowledgedAt = new Date(alert.acknowledgedAt);
219
+ }
220
+ if (alert.resolvedAt) {
221
+ alert.resolvedAt = new Date(alert.resolvedAt);
222
+ }
223
+ this.alerts.set(alert.id, alert);
224
+ });
225
+ this.logger.info(`Loaded ${this.alerts.size} alerts from memory`);
226
+ }
227
+ catch (error) {
228
+ this.logger.warn('Failed to load alerts from memory', { error });
229
+ }
230
+ }
231
+ /**
232
+ * Get alert icon
233
+ */
234
+ static getAlertIcon(severity) {
235
+ switch (severity) {
236
+ case AlertSeverity.ERROR:
237
+ return '❌';
238
+ case AlertSeverity.WARNING:
239
+ return '⚠️';
240
+ case AlertSeverity.INFO:
241
+ return 'ℹ️';
242
+ }
243
+ }
244
+ }
245
+ exports.AlertManager = AlertManager;
246
+ //# sourceMappingURL=AlertManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlertManager.js","sourceRoot":"","sources":["../../../src/learning/metrics/AlertManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,184 @@
1
+ /**
2
+ * LearningMetrics - Collect and track learning effectiveness metrics
3
+ *
4
+ * Aggregates metrics from patterns, dreams, transfers, and experiences
5
+ * to measure the learning system's effectiveness.
6
+ *
7
+ * Part of the Nightly-Learner Phase 3 implementation.
8
+ *
9
+ * @version 1.0.0
10
+ * @module src/learning/metrics/LearningMetrics
11
+ */
12
+ export interface LearningMetricsData {
13
+ patternsDiscoveredTotal: number;
14
+ patternsDiscoveredToday: number;
15
+ discoveryRate: number;
16
+ patternAccuracy: number;
17
+ insightActionability: number;
18
+ falsePositiveRate: number;
19
+ transferSuccessRate: number;
20
+ adoptionRate: number;
21
+ negativeTransferCount: number;
22
+ taskTimeReduction: number;
23
+ coverageImprovement: number;
24
+ bugDetectionImprovement: number;
25
+ sleepCycleCompletionRate: number;
26
+ avgCycleDuration: number;
27
+ errorRate: number;
28
+ calculatedAt: Date;
29
+ periodStart: Date;
30
+ periodEnd: Date;
31
+ }
32
+ export interface MetricsSummary {
33
+ metrics: LearningMetricsData;
34
+ breakdown: {
35
+ discovery: DiscoveryBreakdown;
36
+ quality: QualityBreakdown;
37
+ transfer: TransferBreakdown;
38
+ impact: ImpactBreakdown;
39
+ system: SystemHealthBreakdown;
40
+ };
41
+ trends: {
42
+ discoveryTrend: number;
43
+ qualityTrend: number;
44
+ transferTrend: number;
45
+ impactTrend: number;
46
+ };
47
+ }
48
+ export interface DiscoveryBreakdown {
49
+ totalPatterns: number;
50
+ todayPatterns: number;
51
+ weekPatterns: number;
52
+ monthPatterns: number;
53
+ avgPatternsPerDay: number;
54
+ avgPatternsPerCycle: number;
55
+ }
56
+ export interface QualityBreakdown {
57
+ highConfidencePatterns: number;
58
+ mediumConfidencePatterns: number;
59
+ lowConfidencePatterns: number;
60
+ avgConfidence: number;
61
+ insightsApplied: number;
62
+ insightsPending: number;
63
+ insightsRejected: number;
64
+ }
65
+ export interface TransferBreakdown {
66
+ totalTransfers: number;
67
+ successfulTransfers: number;
68
+ failedTransfers: number;
69
+ avgCompatibilityScore: number;
70
+ transfersByAgentPair: Map<string, {
71
+ success: number;
72
+ fail: number;
73
+ }>;
74
+ patternsUsedPostTransfer: number;
75
+ }
76
+ export interface ImpactBreakdown {
77
+ tasksWithPatterns: number;
78
+ tasksWithoutPatterns: number;
79
+ avgTaskTimeWithPatterns: number;
80
+ avgTaskTimeWithoutPatterns: number;
81
+ timeReductionMs: number;
82
+ coverageBefore: number;
83
+ coverageAfter: number;
84
+ bugsDetectedBefore: number;
85
+ bugsDetectedAfter: number;
86
+ }
87
+ export interface SystemHealthBreakdown {
88
+ totalCycles: number;
89
+ completedCycles: number;
90
+ failedCycles: number;
91
+ interruptedCycles: number;
92
+ avgCycleDurationMs: number;
93
+ minCycleDurationMs: number;
94
+ maxCycleDurationMs: number;
95
+ totalErrors: number;
96
+ errorsByType: Map<string, number>;
97
+ }
98
+ export interface MetricsConfig {
99
+ /** Database path. Default: .agentic-qe/memory.db */
100
+ dbPath?: string;
101
+ /** Enable debug logging */
102
+ debug?: boolean;
103
+ }
104
+ /**
105
+ * LearningMetrics collects and analyzes learning system effectiveness
106
+ *
107
+ * @example
108
+ * ```typescript
109
+ * const metrics = new LearningMetrics();
110
+ *
111
+ * // Get current metrics
112
+ * const current = await metrics.getCurrentMetrics();
113
+ * console.log(`Discovery rate: ${current.discoveryRate} patterns/hour`);
114
+ * console.log(`Transfer success: ${(current.transferSuccessRate * 100).toFixed(1)}%`);
115
+ *
116
+ * // Get comprehensive summary with breakdown
117
+ * const summary = await metrics.getMetricsSummary();
118
+ * console.log(`Quality trend: ${summary.trends.qualityTrend > 0 ? 'improving' : 'declining'}`);
119
+ * ```
120
+ */
121
+ export declare class LearningMetrics {
122
+ private config;
123
+ private db;
124
+ private logger;
125
+ constructor(config?: MetricsConfig);
126
+ /**
127
+ * Get current learning metrics
128
+ */
129
+ getCurrentMetrics(periodHours?: number): Promise<LearningMetricsData>;
130
+ /**
131
+ * Get comprehensive metrics summary with breakdown
132
+ */
133
+ getMetricsSummary(periodHours?: number): Promise<MetricsSummary>;
134
+ /**
135
+ * Calculate discovery metrics
136
+ */
137
+ private calculateDiscoveryMetrics;
138
+ /**
139
+ * Calculate quality metrics
140
+ */
141
+ private calculateQualityMetrics;
142
+ /**
143
+ * Calculate transfer metrics
144
+ */
145
+ private calculateTransferMetrics;
146
+ /**
147
+ * Calculate impact metrics
148
+ */
149
+ private calculateImpactMetrics;
150
+ /**
151
+ * Calculate system health metrics
152
+ */
153
+ private calculateSystemHealthMetrics;
154
+ /**
155
+ * Get detailed discovery breakdown
156
+ */
157
+ private getDiscoveryBreakdown;
158
+ /**
159
+ * Get detailed quality breakdown
160
+ */
161
+ private getQualityBreakdown;
162
+ /**
163
+ * Get detailed transfer breakdown
164
+ */
165
+ private getTransferBreakdown;
166
+ /**
167
+ * Get detailed impact breakdown
168
+ */
169
+ private getImpactBreakdown;
170
+ /**
171
+ * Get detailed system health breakdown
172
+ */
173
+ private getSystemHealthBreakdown;
174
+ /**
175
+ * Calculate trends over time
176
+ */
177
+ private calculateTrends;
178
+ /**
179
+ * Close database connection
180
+ */
181
+ close(): void;
182
+ }
183
+ export default LearningMetrics;
184
+ //# sourceMappingURL=LearningMetrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LearningMetrics.d.ts","sourceRoot":"","sources":["../../../src/learning/metrics/LearningMetrics.ts"],"names":[],"mappings":"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"}