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,210 @@
1
+ "use strict";
2
+ /**
3
+ * TrendAnalyzer - Phase 3 Trend Analysis
4
+ *
5
+ * Analyzes metric trends over time and provides forecasting.
6
+ * Detects improving, stable, or declining trends.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.TrendAnalyzer = exports.TrendPeriod = exports.TrendDirection = void 0;
10
+ const Logger_1 = require("../../utils/Logger");
11
+ /**
12
+ * Trend direction
13
+ */
14
+ var TrendDirection;
15
+ (function (TrendDirection) {
16
+ TrendDirection["IMPROVING"] = "improving";
17
+ TrendDirection["STABLE"] = "stable";
18
+ TrendDirection["DECLINING"] = "declining";
19
+ })(TrendDirection || (exports.TrendDirection = TrendDirection = {}));
20
+ /**
21
+ * Time period for trend analysis
22
+ */
23
+ var TrendPeriod;
24
+ (function (TrendPeriod) {
25
+ TrendPeriod["DAILY"] = "daily";
26
+ TrendPeriod["WEEKLY"] = "weekly";
27
+ TrendPeriod["MONTHLY"] = "monthly";
28
+ })(TrendPeriod || (exports.TrendPeriod = TrendPeriod = {}));
29
+ /**
30
+ * TrendAnalyzer - Analyzes metric trends
31
+ */
32
+ class TrendAnalyzer {
33
+ constructor(metricsCollector) {
34
+ this.logger = Logger_1.Logger.getInstance();
35
+ this.metricsCollector = metricsCollector;
36
+ }
37
+ /**
38
+ * Analyze trend for a specific metric
39
+ */
40
+ async analyzeTrend(metricName, days = 30) {
41
+ const history = await this.metricsCollector.getMetricHistory(metricName, days);
42
+ if (history.length < 2) {
43
+ return {
44
+ metric: metricName,
45
+ direction: TrendDirection.STABLE,
46
+ changePercentage: 0,
47
+ forecast: 0,
48
+ confidence: 0,
49
+ dataPoints: history.length
50
+ };
51
+ }
52
+ // Calculate trend using linear regression
53
+ const { slope, intercept } = this.linearRegression(history);
54
+ // Determine direction
55
+ const direction = this.determineTrendDirection(slope, history);
56
+ // Calculate change percentage
57
+ const firstValue = history[0].value;
58
+ const lastValue = history[history.length - 1].value;
59
+ const changePercentage = firstValue !== 0
60
+ ? ((lastValue - firstValue) / firstValue) * 100
61
+ : 0;
62
+ // Forecast next value
63
+ const forecast = slope * history.length + intercept;
64
+ // Calculate confidence based on R²
65
+ const confidence = this.calculateConfidence(history, slope, intercept);
66
+ return {
67
+ metric: metricName,
68
+ direction,
69
+ changePercentage,
70
+ forecast,
71
+ confidence,
72
+ dataPoints: history.length
73
+ };
74
+ }
75
+ /**
76
+ * Analyze all key metrics
77
+ */
78
+ async analyzeAllTrends(period = TrendPeriod.WEEKLY) {
79
+ const days = this.periodToDays(period);
80
+ const metricNames = [
81
+ 'patternsDiscovered',
82
+ 'discoveryRate',
83
+ 'avgAccuracy',
84
+ 'avgActionability',
85
+ 'transferSuccessRate',
86
+ 'avgTimeReduction',
87
+ 'avgCoverageImprovement',
88
+ 'cycleCompletionRate',
89
+ 'errorRate'
90
+ ];
91
+ const trends = await Promise.all(metricNames.map(name => this.analyzeTrend(name, days)));
92
+ return trends;
93
+ }
94
+ /**
95
+ * Get trend summary for all categories
96
+ */
97
+ async getTrendSummary(metrics) {
98
+ // Analyze trends for each category
99
+ const discoveryTrend = await this.analyzeTrend('discoveryRate', 30);
100
+ const qualityTrend = await this.analyzeTrend('avgAccuracy', 30);
101
+ const transferTrend = await this.analyzeTrend('transferSuccessRate', 30);
102
+ const impactTrend = await this.analyzeTrend('avgTimeReduction', 30);
103
+ const systemTrend = await this.analyzeTrend('cycleCompletionRate', 30);
104
+ return {
105
+ discovery: discoveryTrend.direction,
106
+ quality: qualityTrend.direction,
107
+ transfer: transferTrend.direction,
108
+ impact: impactTrend.direction,
109
+ system: systemTrend.direction
110
+ };
111
+ }
112
+ /**
113
+ * Linear regression for trend analysis
114
+ */
115
+ linearRegression(history) {
116
+ const n = history.length;
117
+ const x = Array.from({ length: n }, (_, i) => i);
118
+ const y = history.map(h => h.value);
119
+ const sumX = x.reduce((a, b) => a + b, 0);
120
+ const sumY = y.reduce((a, b) => a + b, 0);
121
+ const sumXY = x.reduce((sum, xi, i) => sum + xi * y[i], 0);
122
+ const sumX2 = x.reduce((sum, xi) => sum + xi * xi, 0);
123
+ const slope = (n * sumXY - sumX * sumY) / (n * sumX2 - sumX * sumX);
124
+ const intercept = (sumY - slope * sumX) / n;
125
+ return { slope, intercept };
126
+ }
127
+ /**
128
+ * Determine trend direction from slope
129
+ */
130
+ determineTrendDirection(slope, history) {
131
+ const avgValue = history.reduce((sum, h) => sum + h.value, 0) / history.length;
132
+ const threshold = Math.abs(avgValue) * 0.05; // 5% threshold
133
+ if (Math.abs(slope) < threshold) {
134
+ return TrendDirection.STABLE;
135
+ }
136
+ return slope > 0 ? TrendDirection.IMPROVING : TrendDirection.DECLINING;
137
+ }
138
+ /**
139
+ * Calculate confidence using R² (coefficient of determination)
140
+ */
141
+ calculateConfidence(history, slope, intercept) {
142
+ const n = history.length;
143
+ const y = history.map(h => h.value);
144
+ const yMean = y.reduce((a, b) => a + b, 0) / n;
145
+ // Calculate R²
146
+ let ssRes = 0; // Sum of squares of residuals
147
+ let ssTot = 0; // Total sum of squares
148
+ y.forEach((yi, i) => {
149
+ const yPred = slope * i + intercept;
150
+ ssRes += Math.pow(yi - yPred, 2);
151
+ ssTot += Math.pow(yi - yMean, 2);
152
+ });
153
+ const rSquared = ssTot !== 0 ? 1 - (ssRes / ssTot) : 0;
154
+ // Adjust for sample size
155
+ const adjustedConfidence = rSquared * Math.min(n / 30, 1);
156
+ return Math.max(0, Math.min(1, adjustedConfidence));
157
+ }
158
+ /**
159
+ * Convert period to days
160
+ */
161
+ periodToDays(period) {
162
+ switch (period) {
163
+ case TrendPeriod.DAILY:
164
+ return 1;
165
+ case TrendPeriod.WEEKLY:
166
+ return 7;
167
+ case TrendPeriod.MONTHLY:
168
+ return 30;
169
+ default:
170
+ return 7;
171
+ }
172
+ }
173
+ /**
174
+ * Get visual indicator for trend
175
+ */
176
+ static getTrendIndicator(direction) {
177
+ switch (direction) {
178
+ case TrendDirection.IMPROVING:
179
+ return '↑';
180
+ case TrendDirection.STABLE:
181
+ return '→';
182
+ case TrendDirection.DECLINING:
183
+ return '↓';
184
+ }
185
+ }
186
+ /**
187
+ * Generate sparkline from metric history
188
+ */
189
+ static generateSparkline(values, width = 10) {
190
+ if (values.length === 0)
191
+ return '';
192
+ const min = Math.min(...values);
193
+ const max = Math.max(...values);
194
+ const range = max - min;
195
+ if (range === 0)
196
+ return '▂'.repeat(width);
197
+ const bars = ['▁', '▂', '▃', '▄', '▅', '▆', '▇', '█'];
198
+ const step = Math.ceil(values.length / width);
199
+ let sparkline = '';
200
+ for (let i = 0; i < values.length; i += step) {
201
+ const value = values[i];
202
+ const normalized = (value - min) / range;
203
+ const barIndex = Math.min(Math.floor(normalized * bars.length), bars.length - 1);
204
+ sparkline += bars[barIndex];
205
+ }
206
+ return sparkline;
207
+ }
208
+ }
209
+ exports.TrendAnalyzer = TrendAnalyzer;
210
+ //# sourceMappingURL=TrendAnalyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrendAnalyzer.js","sourceRoot":"","sources":["../../../src/learning/metrics/TrendAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Learning Metrics - Phase 3
3
+ *
4
+ * Exports all metrics-related components for learning system monitoring.
5
+ */
6
+ export * from './MetricsCollector';
7
+ export * from './TrendAnalyzer';
8
+ export * from './AlertManager';
9
+ export { LearningMetricsData, MetricsSummary, DiscoveryBreakdown, QualityBreakdown, TransferBreakdown, ImpactBreakdown, SystemHealthBreakdown, MetricsConfig, LearningMetrics as LearningMetricsCollector, } from './LearningMetrics';
10
+ export { MetricsSnapshot, MetricsQuery, MetricsAggregation, MetricsStoreConfig, MetricsStore, } from './MetricsStore';
11
+ export { default as LearningMetricsDefault } from './LearningMetrics';
12
+ export { default as MetricsStoreDefault } from './MetricsStore';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/learning/metrics/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAG/B,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,aAAa,EACb,eAAe,IAAI,wBAAwB,GAC5C,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ /**
3
+ * Learning Metrics - Phase 3
4
+ *
5
+ * Exports all metrics-related components for learning system monitoring.
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.MetricsStoreDefault = exports.LearningMetricsDefault = exports.MetricsStore = exports.LearningMetricsCollector = void 0;
26
+ // Original Phase 3 implementation (SwarmMemoryManager-based)
27
+ __exportStar(require("./MetricsCollector"), exports);
28
+ __exportStar(require("./TrendAnalyzer"), exports);
29
+ __exportStar(require("./AlertManager"), exports);
30
+ // Enhanced Phase 3 implementation (BetterSqlite3-based, aligns with DreamEngine/TransferProtocol)
31
+ var LearningMetrics_1 = require("./LearningMetrics");
32
+ Object.defineProperty(exports, "LearningMetricsCollector", { enumerable: true, get: function () { return LearningMetrics_1.LearningMetrics; } });
33
+ var MetricsStore_1 = require("./MetricsStore");
34
+ Object.defineProperty(exports, "MetricsStore", { enumerable: true, get: function () { return MetricsStore_1.MetricsStore; } });
35
+ var LearningMetrics_2 = require("./LearningMetrics");
36
+ Object.defineProperty(exports, "LearningMetricsDefault", { enumerable: true, get: function () { return __importDefault(LearningMetrics_2).default; } });
37
+ var MetricsStore_2 = require("./MetricsStore");
38
+ Object.defineProperty(exports, "MetricsStoreDefault", { enumerable: true, get: function () { return __importDefault(MetricsStore_2).default; } });
39
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/learning/metrics/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;AAEH,6DAA6D;AAC7D,qDAAmC;AACnC,kDAAgC;AAChC,iDAA+B;AAE/B,kGAAkG;AAClG,qDAU2B;AADzB,2HAAA,eAAe,OAA4B;AAG7C,+CAMwB;AADtB,4GAAA,YAAY,OAAA;AAGd,qDAAsE;AAA7D,0IAAA,OAAO,OAA0B;AAC1C,+CAAgE;AAAvD,oIAAA,OAAO,OAAuB"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * IdleDetector - Detects system idle state for triggering learning cycles
3
+ *
4
+ * Monitors CPU, memory, and task queue to determine when the system is idle
5
+ * and learning activities can safely run without impacting user operations.
6
+ *
7
+ * Works in DevPod/Codespaces container environments.
8
+ *
9
+ * @version 1.0.0
10
+ * @module src/learning/scheduler/IdleDetector
11
+ */
12
+ import { EventEmitter } from 'events';
13
+ export interface IdleDetectorConfig {
14
+ /** CPU usage threshold below which system is considered idle (0-100). Default: 20 */
15
+ cpuThreshold: number;
16
+ /** Memory usage threshold below which system is considered idle (0-100). Default: 70 */
17
+ memoryThreshold: number;
18
+ /** Whether task queue must be empty. Default: true */
19
+ taskQueueEmpty: boolean;
20
+ /** Minimum continuous idle duration before triggering (ms). Default: 60000 (1 min) */
21
+ minIdleDuration: number;
22
+ /** How often to check idle state (ms). Default: 10000 (10 sec) */
23
+ checkInterval: number;
24
+ /** Enable debug logging. Default: false */
25
+ debug: boolean;
26
+ }
27
+ export interface IdleState {
28
+ /** Whether system is currently idle */
29
+ isIdle: boolean;
30
+ /** Timestamp when idle state started, null if not idle */
31
+ idleSince: Date | null;
32
+ /** Current CPU usage percentage (0-100) */
33
+ cpuUsage: number;
34
+ /** Current memory usage percentage (0-100) */
35
+ memoryUsage: number;
36
+ /** Number of active tasks in queue */
37
+ activeTaskCount: number;
38
+ /** How long system has been idle (ms), 0 if not idle */
39
+ idleDuration: number;
40
+ /** Last check timestamp */
41
+ lastCheck: Date;
42
+ }
43
+ export interface IdleDetectorEvents {
44
+ /** Emitted when system becomes idle (after minIdleDuration) */
45
+ 'idle:detected': (state: IdleState) => void;
46
+ /** Emitted when system exits idle state */
47
+ 'idle:ended': (state: IdleState) => void;
48
+ /** Emitted on each check with current state */
49
+ 'state:update': (state: IdleState) => void;
50
+ /** Emitted on error */
51
+ 'error': (error: Error) => void;
52
+ }
53
+ /**
54
+ * IdleDetector monitors system resources to detect idle periods
55
+ *
56
+ * @example
57
+ * ```typescript
58
+ * const detector = new IdleDetector({ cpuThreshold: 20, minIdleDuration: 60000 });
59
+ * detector.on('idle:detected', (state) => {
60
+ * console.log('System is idle, starting learning cycle...');
61
+ * });
62
+ * await detector.start();
63
+ * ```
64
+ */
65
+ export declare class IdleDetector extends EventEmitter {
66
+ private config;
67
+ private logger;
68
+ private checkTimer;
69
+ private previousCpuTimes;
70
+ private idleSince;
71
+ private isRunning;
72
+ private taskQueue;
73
+ private hasEmittedIdleDetected;
74
+ constructor(config?: Partial<IdleDetectorConfig>);
75
+ /**
76
+ * Start monitoring for idle state
77
+ */
78
+ start(): Promise<void>;
79
+ /**
80
+ * Stop monitoring
81
+ */
82
+ stop(): Promise<void>;
83
+ /**
84
+ * Get current idle state
85
+ */
86
+ getState(): IdleState;
87
+ /**
88
+ * Register a task as active (prevents idle detection)
89
+ */
90
+ registerTask(taskId: string): void;
91
+ /**
92
+ * Unregister a task (allows idle detection if queue empty)
93
+ */
94
+ unregisterTask(taskId: string): void;
95
+ /**
96
+ * Clear all registered tasks
97
+ */
98
+ clearTasks(): void;
99
+ /**
100
+ * Check and update idle state
101
+ */
102
+ private checkIdleState;
103
+ /**
104
+ * Check if system is currently idle based on thresholds
105
+ */
106
+ private isSystemIdle;
107
+ /**
108
+ * Get current CPU usage percentage
109
+ * Uses delta between two readings for accuracy
110
+ */
111
+ private getCpuUsage;
112
+ /**
113
+ * Get current memory usage percentage
114
+ */
115
+ private getMemoryUsage;
116
+ /**
117
+ * Get configuration
118
+ */
119
+ getConfig(): IdleDetectorConfig;
120
+ /**
121
+ * Update configuration (requires restart to take effect for interval)
122
+ */
123
+ updateConfig(config: Partial<IdleDetectorConfig>): void;
124
+ }
125
+ export default IdleDetector;
126
+ //# sourceMappingURL=IdleDetector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IdleDetector.d.ts","sourceRoot":"","sources":["../../../src/learning/scheduler/IdleDetector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,MAAM,WAAW,kBAAkB;IACjC,qFAAqF;IACrF,YAAY,EAAE,MAAM,CAAC;IACrB,wFAAwF;IACxF,eAAe,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,cAAc,EAAE,OAAO,CAAC;IACxB,sFAAsF;IACtF,eAAe,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,uCAAuC;IACvC,MAAM,EAAE,OAAO,CAAC;IAChB,0DAA0D;IAC1D,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,+DAA+D;IAC/D,eAAe,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC5C,2CAA2C;IAC3C,YAAY,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACzC,+CAA+C;IAC/C,cAAc,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC3C,uBAAuB;IACvB,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACjC;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,YAAa,SAAQ,YAAY;IAC5C,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,sBAAsB,CAAkB;gBAEpC,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC;IAchD;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3B;;OAEG;IACH,QAAQ,IAAI,SAAS;IAYrB;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAOlC;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAOpC;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;YACW,cAAc;IAuD5B;;OAEG;IACH,OAAO,CAAC,YAAY;IAYpB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAsCnB;;OAEG;IACH,OAAO,CAAC,cAAc;IAOtB;;OAEG;IACH,SAAS,IAAI,kBAAkB;IAI/B;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI;CAGxD;AAED,eAAe,YAAY,CAAC"}