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,281 @@
1
+ "use strict";
2
+ /**
3
+ * IdleDetector - Detects system idle state for triggering learning cycles
4
+ *
5
+ * Monitors CPU, memory, and task queue to determine when the system is idle
6
+ * and learning activities can safely run without impacting user operations.
7
+ *
8
+ * Works in DevPod/Codespaces container environments.
9
+ *
10
+ * @version 1.0.0
11
+ * @module src/learning/scheduler/IdleDetector
12
+ */
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || (function () {
30
+ var ownKeys = function(o) {
31
+ ownKeys = Object.getOwnPropertyNames || function (o) {
32
+ var ar = [];
33
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
34
+ return ar;
35
+ };
36
+ return ownKeys(o);
37
+ };
38
+ return function (mod) {
39
+ if (mod && mod.__esModule) return mod;
40
+ var result = {};
41
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
42
+ __setModuleDefault(result, mod);
43
+ return result;
44
+ };
45
+ })();
46
+ Object.defineProperty(exports, "__esModule", { value: true });
47
+ exports.IdleDetector = void 0;
48
+ const events_1 = require("events");
49
+ const os = __importStar(require("os"));
50
+ const Logger_1 = require("../../utils/Logger");
51
+ /**
52
+ * IdleDetector monitors system resources to detect idle periods
53
+ *
54
+ * @example
55
+ * ```typescript
56
+ * const detector = new IdleDetector({ cpuThreshold: 20, minIdleDuration: 60000 });
57
+ * detector.on('idle:detected', (state) => {
58
+ * console.log('System is idle, starting learning cycle...');
59
+ * });
60
+ * await detector.start();
61
+ * ```
62
+ */
63
+ class IdleDetector extends events_1.EventEmitter {
64
+ constructor(config) {
65
+ super();
66
+ this.checkTimer = null;
67
+ this.previousCpuTimes = null;
68
+ this.idleSince = null;
69
+ this.isRunning = false;
70
+ this.taskQueue = new Set();
71
+ this.hasEmittedIdleDetected = false;
72
+ this.config = {
73
+ cpuThreshold: 20,
74
+ memoryThreshold: 70,
75
+ taskQueueEmpty: true,
76
+ minIdleDuration: 60000, // 1 minute
77
+ checkInterval: 10000, // 10 seconds
78
+ debug: false,
79
+ ...config,
80
+ };
81
+ this.logger = Logger_1.Logger.getInstance();
82
+ }
83
+ /**
84
+ * Start monitoring for idle state
85
+ */
86
+ async start() {
87
+ if (this.isRunning) {
88
+ this.logger.warn('[IdleDetector] Already running');
89
+ return;
90
+ }
91
+ this.isRunning = true;
92
+ this.previousCpuTimes = os.cpus();
93
+ this.hasEmittedIdleDetected = false;
94
+ this.logger.info('[IdleDetector] Starting idle detection', {
95
+ cpuThreshold: this.config.cpuThreshold,
96
+ memoryThreshold: this.config.memoryThreshold,
97
+ minIdleDuration: this.config.minIdleDuration,
98
+ checkInterval: this.config.checkInterval,
99
+ });
100
+ // Start periodic check
101
+ this.checkTimer = setInterval(() => this.checkIdleState(), this.config.checkInterval);
102
+ // Do initial check
103
+ await this.checkIdleState();
104
+ }
105
+ /**
106
+ * Stop monitoring
107
+ */
108
+ async stop() {
109
+ if (!this.isRunning)
110
+ return;
111
+ this.isRunning = false;
112
+ if (this.checkTimer) {
113
+ clearInterval(this.checkTimer);
114
+ this.checkTimer = null;
115
+ }
116
+ this.logger.info('[IdleDetector] Stopped');
117
+ }
118
+ /**
119
+ * Get current idle state
120
+ */
121
+ getState() {
122
+ return {
123
+ isIdle: this.isSystemIdle(),
124
+ idleSince: this.idleSince,
125
+ cpuUsage: this.getCpuUsage(),
126
+ memoryUsage: this.getMemoryUsage(),
127
+ activeTaskCount: this.taskQueue.size,
128
+ idleDuration: this.idleSince ? Date.now() - this.idleSince.getTime() : 0,
129
+ lastCheck: new Date(),
130
+ };
131
+ }
132
+ /**
133
+ * Register a task as active (prevents idle detection)
134
+ */
135
+ registerTask(taskId) {
136
+ this.taskQueue.add(taskId);
137
+ if (this.config.debug) {
138
+ this.logger.debug('[IdleDetector] Task registered', { taskId, queueSize: this.taskQueue.size });
139
+ }
140
+ }
141
+ /**
142
+ * Unregister a task (allows idle detection if queue empty)
143
+ */
144
+ unregisterTask(taskId) {
145
+ this.taskQueue.delete(taskId);
146
+ if (this.config.debug) {
147
+ this.logger.debug('[IdleDetector] Task unregistered', { taskId, queueSize: this.taskQueue.size });
148
+ }
149
+ }
150
+ /**
151
+ * Clear all registered tasks
152
+ */
153
+ clearTasks() {
154
+ this.taskQueue.clear();
155
+ }
156
+ /**
157
+ * Check and update idle state
158
+ */
159
+ async checkIdleState() {
160
+ try {
161
+ const state = this.getState();
162
+ const wasIdle = this.idleSince !== null;
163
+ const isNowIdle = this.isSystemIdle();
164
+ // Emit state update
165
+ this.emit('state:update', state);
166
+ if (this.config.debug) {
167
+ this.logger.debug('[IdleDetector] State check', {
168
+ cpu: state.cpuUsage.toFixed(1),
169
+ memory: state.memoryUsage.toFixed(1),
170
+ tasks: state.activeTaskCount,
171
+ isIdle: isNowIdle,
172
+ idleDuration: state.idleDuration,
173
+ });
174
+ }
175
+ if (isNowIdle && !wasIdle) {
176
+ // Transition to idle
177
+ this.idleSince = new Date();
178
+ this.hasEmittedIdleDetected = false;
179
+ if (this.config.debug) {
180
+ this.logger.info('[IdleDetector] System entering idle state');
181
+ }
182
+ }
183
+ else if (!isNowIdle && wasIdle) {
184
+ // Transition from idle
185
+ const finalState = this.getState();
186
+ this.idleSince = null;
187
+ this.hasEmittedIdleDetected = false;
188
+ this.emit('idle:ended', finalState);
189
+ this.logger.info('[IdleDetector] System exited idle state', {
190
+ idleDuration: finalState.idleDuration,
191
+ });
192
+ }
193
+ else if (isNowIdle && wasIdle && !this.hasEmittedIdleDetected) {
194
+ // Still idle - check if we've met minimum duration
195
+ const idleDuration = Date.now() - this.idleSince.getTime();
196
+ if (idleDuration >= this.config.minIdleDuration) {
197
+ this.hasEmittedIdleDetected = true;
198
+ const currentState = this.getState();
199
+ this.emit('idle:detected', currentState);
200
+ this.logger.info('[IdleDetector] Idle detected - minimum duration reached', {
201
+ idleDuration,
202
+ cpu: currentState.cpuUsage.toFixed(1),
203
+ memory: currentState.memoryUsage.toFixed(1),
204
+ });
205
+ }
206
+ }
207
+ }
208
+ catch (error) {
209
+ this.emit('error', error);
210
+ this.logger.error('[IdleDetector] Error checking idle state', error);
211
+ }
212
+ }
213
+ /**
214
+ * Check if system is currently idle based on thresholds
215
+ */
216
+ isSystemIdle() {
217
+ const cpuUsage = this.getCpuUsage();
218
+ const memoryUsage = this.getMemoryUsage();
219
+ const taskQueueCheck = !this.config.taskQueueEmpty || this.taskQueue.size === 0;
220
+ return (cpuUsage <= this.config.cpuThreshold &&
221
+ memoryUsage <= this.config.memoryThreshold &&
222
+ taskQueueCheck);
223
+ }
224
+ /**
225
+ * Get current CPU usage percentage
226
+ * Uses delta between two readings for accuracy
227
+ */
228
+ getCpuUsage() {
229
+ const currentCpus = os.cpus();
230
+ if (!this.previousCpuTimes) {
231
+ this.previousCpuTimes = currentCpus;
232
+ return 0; // No previous reading
233
+ }
234
+ let totalIdle = 0;
235
+ let totalTick = 0;
236
+ for (let i = 0; i < currentCpus.length; i++) {
237
+ const currentCpu = currentCpus[i];
238
+ const previousCpu = this.previousCpuTimes[i];
239
+ // Calculate deltas
240
+ const idleDelta = currentCpu.times.idle - previousCpu.times.idle;
241
+ const userDelta = currentCpu.times.user - previousCpu.times.user;
242
+ const niceDelta = currentCpu.times.nice - previousCpu.times.nice;
243
+ const sysDelta = currentCpu.times.sys - previousCpu.times.sys;
244
+ const irqDelta = currentCpu.times.irq - previousCpu.times.irq;
245
+ const totalDelta = idleDelta + userDelta + niceDelta + sysDelta + irqDelta;
246
+ totalIdle += idleDelta;
247
+ totalTick += totalDelta;
248
+ }
249
+ // Update previous reading
250
+ this.previousCpuTimes = currentCpus;
251
+ if (totalTick === 0)
252
+ return 0;
253
+ // Return CPU usage (100 - idle percentage)
254
+ const idlePercentage = (totalIdle / totalTick) * 100;
255
+ return Math.max(0, Math.min(100, 100 - idlePercentage));
256
+ }
257
+ /**
258
+ * Get current memory usage percentage
259
+ */
260
+ getMemoryUsage() {
261
+ const totalMemory = os.totalmem();
262
+ const freeMemory = os.freemem();
263
+ const usedMemory = totalMemory - freeMemory;
264
+ return (usedMemory / totalMemory) * 100;
265
+ }
266
+ /**
267
+ * Get configuration
268
+ */
269
+ getConfig() {
270
+ return { ...this.config };
271
+ }
272
+ /**
273
+ * Update configuration (requires restart to take effect for interval)
274
+ */
275
+ updateConfig(config) {
276
+ this.config = { ...this.config, ...config };
277
+ }
278
+ }
279
+ exports.IdleDetector = IdleDetector;
280
+ exports.default = IdleDetector;
281
+ //# sourceMappingURL=IdleDetector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IdleDetector.js","sourceRoot":"","sources":["../../../src/learning/scheduler/IdleDetector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,150 @@
1
+ /**
2
+ * SleepCycle - State machine for learning cycle phases
3
+ *
4
+ * Implements a sleep-inspired learning cycle with phases:
5
+ * - N1_CAPTURE: Capture recent experiences (light sleep)
6
+ * - N2_PROCESS: Process and cluster patterns (deeper sleep)
7
+ * - N3_CONSOLIDATE: Consolidate into long-term memory (deep sleep)
8
+ * - REM_DREAM: Dream engine activation (REM sleep)
9
+ *
10
+ * Part of the Nightly-Learner Phase 1 implementation.
11
+ * Updated in Phase 3 to integrate with actual learning modules.
12
+ *
13
+ * @version 2.0.0
14
+ * @module src/learning/scheduler/SleepCycle
15
+ */
16
+ import { EventEmitter } from 'events';
17
+ import { LearningBudget } from './SleepScheduler';
18
+ /**
19
+ * Sleep phases modeled after human sleep stages
20
+ */
21
+ export type SleepPhase = 'N1_CAPTURE' | 'N2_PROCESS' | 'N3_CONSOLIDATE' | 'REM_DREAM' | 'COMPLETE';
22
+ export interface PhaseResult {
23
+ phase: SleepPhase;
24
+ startTime: Date;
25
+ endTime: Date;
26
+ duration: number;
27
+ patternsProcessed: number;
28
+ agentsProcessed: string[];
29
+ success: boolean;
30
+ error?: Error;
31
+ metrics: Record<string, number>;
32
+ }
33
+ export interface CycleSummary {
34
+ id: string;
35
+ startTime: Date;
36
+ endTime: Date;
37
+ totalDuration: number;
38
+ phasesCompleted: SleepPhase[];
39
+ phasesSkipped: SleepPhase[];
40
+ patternsDiscovered: number;
41
+ patternsConsolidated: number;
42
+ agentsProcessed: string[];
43
+ phaseResults: PhaseResult[];
44
+ errors: Error[];
45
+ aborted: boolean;
46
+ }
47
+ export interface SleepCycleConfig {
48
+ budget: LearningBudget;
49
+ /** Phase durations in ms. Uses defaults if not specified */
50
+ phaseDurations?: Partial<Record<SleepPhase, number>>;
51
+ /** Skip phases if true */
52
+ skipPhases?: SleepPhase[];
53
+ /** Database path. Default: .agentic-qe/memory.db */
54
+ dbPath?: string;
55
+ /** Enable debug logging */
56
+ debug?: boolean;
57
+ }
58
+ /**
59
+ * SleepCycle manages the execution of learning phases
60
+ *
61
+ * Now integrates with actual learning modules:
62
+ * - ExperienceCapture for N1_CAPTURE
63
+ * - PatternSynthesis for N2_PROCESS
64
+ * - DreamEngine for REM_DREAM
65
+ * - TransferProtocol for cross-agent transfer
66
+ */
67
+ export declare class SleepCycle extends EventEmitter {
68
+ private id;
69
+ private config;
70
+ private logger;
71
+ private dbPath;
72
+ private phaseDurations;
73
+ private currentPhase;
74
+ private phaseResults;
75
+ private _isActive;
76
+ private _isAborted;
77
+ private startTime;
78
+ private experienceCapture;
79
+ private patternSynthesis;
80
+ private dreamEngine;
81
+ private transferProtocol;
82
+ private capturedExperienceData;
83
+ private synthesizedPatterns;
84
+ private dreamResult;
85
+ private transferResults;
86
+ private processedAgents;
87
+ constructor(config: SleepCycleConfig);
88
+ /**
89
+ * Initialize integrated learning modules
90
+ */
91
+ private initializeModules;
92
+ /**
93
+ * Check if cycle is currently active
94
+ */
95
+ get isActive(): boolean;
96
+ /**
97
+ * Check if cycle was aborted
98
+ */
99
+ get isAborted(): boolean;
100
+ /**
101
+ * Get cycle ID
102
+ */
103
+ getId(): string;
104
+ /**
105
+ * Get current phase
106
+ */
107
+ getCurrentPhase(): SleepPhase | null;
108
+ /**
109
+ * Execute the complete sleep cycle
110
+ */
111
+ execute(): Promise<CycleSummary>;
112
+ /**
113
+ * Abort the current cycle gracefully
114
+ */
115
+ abort(): Promise<void>;
116
+ /**
117
+ * Execute a single phase
118
+ */
119
+ private executePhase;
120
+ /**
121
+ * N1 Phase: Capture recent experiences from agents
122
+ * Now uses ExperienceCapture.getRecentExperiences() for real data
123
+ */
124
+ private captureExperiences;
125
+ /**
126
+ * N2 Phase: Process experiences into pattern clusters
127
+ * Now uses PatternSynthesis.synthesize() for real pattern extraction
128
+ */
129
+ private processPatterns;
130
+ /**
131
+ * N3 Phase: Consolidate patterns into long-term memory
132
+ * Now uses TransferProtocol for cross-agent knowledge sharing
133
+ */
134
+ private consolidateMemory;
135
+ /**
136
+ * REM Phase: Dream engine for creative pattern generation
137
+ * Now uses DreamEngine.dream() for real insight discovery
138
+ */
139
+ private activateDreamEngine;
140
+ /**
141
+ * Check if we're within budget constraints
142
+ */
143
+ private checkBudget;
144
+ /**
145
+ * Helper to sleep for a duration
146
+ */
147
+ private sleep;
148
+ }
149
+ export default SleepCycle;
150
+ //# sourceMappingURL=SleepCycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SleepCycle.d.ts","sourceRoot":"","sources":["../../../src/learning/scheduler/SleepCycle.ts"],"names":[],"mappings":"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"}