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,506 @@
1
+ "use strict";
2
+ /**
3
+ * SleepCycle - State machine for learning cycle phases
4
+ *
5
+ * Implements a sleep-inspired learning cycle with phases:
6
+ * - N1_CAPTURE: Capture recent experiences (light sleep)
7
+ * - N2_PROCESS: Process and cluster patterns (deeper sleep)
8
+ * - N3_CONSOLIDATE: Consolidate into long-term memory (deep sleep)
9
+ * - REM_DREAM: Dream engine activation (REM sleep)
10
+ *
11
+ * Part of the Nightly-Learner Phase 1 implementation.
12
+ * Updated in Phase 3 to integrate with actual learning modules.
13
+ *
14
+ * @version 2.0.0
15
+ * @module src/learning/scheduler/SleepCycle
16
+ */
17
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ var desc = Object.getOwnPropertyDescriptor(m, k);
20
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
21
+ desc = { enumerable: true, get: function() { return m[k]; } };
22
+ }
23
+ Object.defineProperty(o, k2, desc);
24
+ }) : (function(o, m, k, k2) {
25
+ if (k2 === undefined) k2 = k;
26
+ o[k2] = m[k];
27
+ }));
28
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
29
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
30
+ }) : function(o, v) {
31
+ o["default"] = v;
32
+ });
33
+ var __importStar = (this && this.__importStar) || (function () {
34
+ var ownKeys = function(o) {
35
+ ownKeys = Object.getOwnPropertyNames || function (o) {
36
+ var ar = [];
37
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
38
+ return ar;
39
+ };
40
+ return ownKeys(o);
41
+ };
42
+ return function (mod) {
43
+ if (mod && mod.__esModule) return mod;
44
+ var result = {};
45
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
46
+ __setModuleDefault(result, mod);
47
+ return result;
48
+ };
49
+ })();
50
+ Object.defineProperty(exports, "__esModule", { value: true });
51
+ exports.SleepCycle = void 0;
52
+ const events_1 = require("events");
53
+ const path = __importStar(require("path"));
54
+ const Logger_1 = require("../../utils/Logger");
55
+ const ExperienceCapture_1 = require("../capture/ExperienceCapture");
56
+ const PatternSynthesis_1 = require("../synthesis/PatternSynthesis");
57
+ const DreamEngine_1 = require("../dream/DreamEngine");
58
+ const TransferProtocol_1 = require("../transfer/TransferProtocol");
59
+ /**
60
+ * SleepCycle manages the execution of learning phases
61
+ *
62
+ * Now integrates with actual learning modules:
63
+ * - ExperienceCapture for N1_CAPTURE
64
+ * - PatternSynthesis for N2_PROCESS
65
+ * - DreamEngine for REM_DREAM
66
+ * - TransferProtocol for cross-agent transfer
67
+ */
68
+ class SleepCycle extends events_1.EventEmitter {
69
+ constructor(config) {
70
+ super();
71
+ this.currentPhase = null;
72
+ this.phaseResults = [];
73
+ this._isActive = false;
74
+ this._isAborted = false;
75
+ this.startTime = null;
76
+ // Integrated learning modules
77
+ this.experienceCapture = null;
78
+ this.patternSynthesis = null;
79
+ this.dreamEngine = null;
80
+ this.transferProtocol = null;
81
+ // Collected data during cycle
82
+ this.capturedExperienceData = [];
83
+ this.synthesizedPatterns = [];
84
+ this.dreamResult = null;
85
+ this.transferResults = [];
86
+ this.processedAgents = new Set();
87
+ this.id = `cycle-${Date.now()}`;
88
+ this.config = config;
89
+ this.logger = Logger_1.Logger.getInstance();
90
+ this.dbPath = config.dbPath || path.join(process.cwd(), '.agentic-qe', 'memory.db');
91
+ // Set phase durations with defaults
92
+ this.phaseDurations = new Map([
93
+ ['N1_CAPTURE', config.phaseDurations?.N1_CAPTURE ?? 5 * 60 * 1000], // 5 minutes
94
+ ['N2_PROCESS', config.phaseDurations?.N2_PROCESS ?? 10 * 60 * 1000], // 10 minutes
95
+ ['N3_CONSOLIDATE', config.phaseDurations?.N3_CONSOLIDATE ?? 15 * 60 * 1000], // 15 minutes
96
+ ['REM_DREAM', config.phaseDurations?.REM_DREAM ?? 20 * 60 * 1000], // 20 minutes
97
+ ]);
98
+ // Initialize learning modules
99
+ this.initializeModules();
100
+ }
101
+ /**
102
+ * Initialize integrated learning modules
103
+ */
104
+ initializeModules() {
105
+ try {
106
+ this.experienceCapture = new ExperienceCapture_1.ExperienceCapture({
107
+ dbPath: this.dbPath,
108
+ debug: this.config.debug,
109
+ });
110
+ this.patternSynthesis = new PatternSynthesis_1.PatternSynthesis({
111
+ dbPath: this.dbPath,
112
+ debug: this.config.debug,
113
+ });
114
+ this.dreamEngine = new DreamEngine_1.DreamEngine({
115
+ dbPath: this.dbPath,
116
+ cycleDuration: this.phaseDurations.get('REM_DREAM') || 20 * 60 * 1000,
117
+ debug: this.config.debug,
118
+ });
119
+ this.transferProtocol = new TransferProtocol_1.TransferProtocol({
120
+ dbPath: this.dbPath,
121
+ debug: this.config.debug,
122
+ });
123
+ this.logger.info('[SleepCycle] Learning modules initialized');
124
+ }
125
+ catch (error) {
126
+ this.logger.error('[SleepCycle] Failed to initialize learning modules', { error });
127
+ }
128
+ }
129
+ /**
130
+ * Check if cycle is currently active
131
+ */
132
+ get isActive() {
133
+ return this._isActive;
134
+ }
135
+ /**
136
+ * Check if cycle was aborted
137
+ */
138
+ get isAborted() {
139
+ return this._isAborted;
140
+ }
141
+ /**
142
+ * Get cycle ID
143
+ */
144
+ getId() {
145
+ return this.id;
146
+ }
147
+ /**
148
+ * Get current phase
149
+ */
150
+ getCurrentPhase() {
151
+ return this.currentPhase;
152
+ }
153
+ /**
154
+ * Execute the complete sleep cycle
155
+ */
156
+ async execute() {
157
+ this._isActive = true;
158
+ this._isAborted = false;
159
+ this.startTime = new Date();
160
+ const summary = {
161
+ id: this.id,
162
+ startTime: this.startTime,
163
+ endTime: new Date(),
164
+ totalDuration: 0,
165
+ phasesCompleted: [],
166
+ phasesSkipped: [],
167
+ patternsDiscovered: 0,
168
+ patternsConsolidated: 0,
169
+ agentsProcessed: [],
170
+ phaseResults: [],
171
+ errors: [],
172
+ aborted: false,
173
+ };
174
+ this.logger.info('[SleepCycle] Starting cycle', { id: this.id });
175
+ const phases = ['N1_CAPTURE', 'N2_PROCESS', 'N3_CONSOLIDATE', 'REM_DREAM'];
176
+ for (const phase of phases) {
177
+ if (this._isAborted) {
178
+ this.logger.info('[SleepCycle] Cycle aborted', { lastPhase: this.currentPhase });
179
+ summary.aborted = true;
180
+ break;
181
+ }
182
+ // Check if phase should be skipped
183
+ if (this.config.skipPhases?.includes(phase)) {
184
+ summary.phasesSkipped.push(phase);
185
+ continue;
186
+ }
187
+ // Check budget constraints
188
+ if (!this.checkBudget(summary)) {
189
+ this.logger.info('[SleepCycle] Budget exhausted, ending cycle', {
190
+ patternsProcessed: summary.patternsDiscovered + summary.patternsConsolidated,
191
+ maxPatterns: this.config.budget.maxPatternsPerCycle,
192
+ });
193
+ break;
194
+ }
195
+ this.currentPhase = phase;
196
+ const duration = this.phaseDurations.get(phase) || 0;
197
+ try {
198
+ const result = await this.executePhase(phase, duration);
199
+ this.phaseResults.push(result);
200
+ summary.phaseResults.push(result);
201
+ summary.phasesCompleted.push(phase);
202
+ summary.patternsDiscovered += result.patternsProcessed;
203
+ if (result.error) {
204
+ summary.errors.push(result.error);
205
+ }
206
+ }
207
+ catch (error) {
208
+ this.logger.error('[SleepCycle] Phase failed', { phase, error });
209
+ summary.errors.push(error);
210
+ }
211
+ }
212
+ this._isActive = false;
213
+ this.currentPhase = 'COMPLETE';
214
+ summary.endTime = new Date();
215
+ summary.totalDuration = summary.endTime.getTime() - summary.startTime.getTime();
216
+ summary.patternsConsolidated = this.synthesizedPatterns.length + this.transferResults.length;
217
+ summary.agentsProcessed = Array.from(this.processedAgents);
218
+ this.logger.info('[SleepCycle] Cycle complete', {
219
+ id: this.id,
220
+ duration: summary.totalDuration,
221
+ phases: summary.phasesCompleted.length,
222
+ patterns: summary.patternsDiscovered,
223
+ agents: summary.agentsProcessed.length,
224
+ });
225
+ return summary;
226
+ }
227
+ /**
228
+ * Abort the current cycle gracefully
229
+ */
230
+ async abort() {
231
+ if (!this._isActive)
232
+ return;
233
+ this.logger.info('[SleepCycle] Aborting cycle', { id: this.id, currentPhase: this.currentPhase });
234
+ this._isAborted = true;
235
+ // Allow current phase to complete gracefully
236
+ // The execute loop will check _isAborted and exit
237
+ }
238
+ /**
239
+ * Execute a single phase
240
+ */
241
+ async executePhase(phase, maxDuration) {
242
+ const startTime = new Date();
243
+ this.emit('phase:start', phase);
244
+ this.logger.info('[SleepCycle] Starting phase', { phase, maxDuration });
245
+ let result;
246
+ try {
247
+ switch (phase) {
248
+ case 'N1_CAPTURE':
249
+ result = await this.captureExperiences(maxDuration);
250
+ break;
251
+ case 'N2_PROCESS':
252
+ result = await this.processPatterns(maxDuration);
253
+ break;
254
+ case 'N3_CONSOLIDATE':
255
+ result = await this.consolidateMemory(maxDuration);
256
+ break;
257
+ case 'REM_DREAM':
258
+ result = await this.activateDreamEngine(maxDuration);
259
+ break;
260
+ default:
261
+ result = { patterns: 0, agents: [] };
262
+ }
263
+ const phaseResult = {
264
+ phase,
265
+ startTime,
266
+ endTime: new Date(),
267
+ duration: Date.now() - startTime.getTime(),
268
+ patternsProcessed: result.patterns,
269
+ agentsProcessed: result.agents,
270
+ success: true,
271
+ metrics: {},
272
+ };
273
+ this.emit('phase:complete', phase, phaseResult);
274
+ return phaseResult;
275
+ }
276
+ catch (error) {
277
+ const phaseResult = {
278
+ phase,
279
+ startTime,
280
+ endTime: new Date(),
281
+ duration: Date.now() - startTime.getTime(),
282
+ patternsProcessed: 0,
283
+ agentsProcessed: [],
284
+ success: false,
285
+ error: error,
286
+ metrics: {},
287
+ };
288
+ this.emit('phase:error', phase, error);
289
+ return phaseResult;
290
+ }
291
+ }
292
+ /**
293
+ * N1 Phase: Capture recent experiences from agents
294
+ * Now uses ExperienceCapture.getRecentExperiences() for real data
295
+ */
296
+ async captureExperiences(maxDuration) {
297
+ const agents = [];
298
+ let experienceCount = 0;
299
+ this.logger.info('[SleepCycle:N1] Capturing experiences using ExperienceCapture');
300
+ if (!this.experienceCapture) {
301
+ this.logger.warn('[SleepCycle:N1] ExperienceCapture not available, falling back to empty result');
302
+ return { patterns: 0, agents: [] };
303
+ }
304
+ try {
305
+ // Get recent experiences from the last 24 hours
306
+ const limit = Math.min(100, this.config.budget.maxPatternsPerCycle);
307
+ const experiences = this.experienceCapture.getRecentExperiences(24, limit);
308
+ this.logger.info('[SleepCycle:N1] Retrieved experiences', { count: experiences.length });
309
+ // Group by agent type and collect unique agents
310
+ const agentTypeSet = new Set();
311
+ for (const exp of experiences) {
312
+ if (this._isAborted)
313
+ break;
314
+ if (agentTypeSet.size >= this.config.budget.maxAgentsPerCycle)
315
+ break;
316
+ agentTypeSet.add(exp.agentType);
317
+ this.processedAgents.add(exp.agentType);
318
+ }
319
+ agents.push(...agentTypeSet);
320
+ experienceCount = experiences.length;
321
+ // Store for next phase
322
+ this.capturedExperienceData = experiences;
323
+ this.logger.info('[SleepCycle:N1] Captured experiences', {
324
+ experienceCount,
325
+ agentTypes: agents.length,
326
+ agents,
327
+ });
328
+ }
329
+ catch (error) {
330
+ this.logger.error('[SleepCycle:N1] Failed to capture experiences', { error });
331
+ }
332
+ return { patterns: experienceCount, agents };
333
+ }
334
+ /**
335
+ * N2 Phase: Process experiences into pattern clusters
336
+ * Now uses PatternSynthesis.synthesize() for real pattern extraction
337
+ */
338
+ async processPatterns(maxDuration) {
339
+ let patternsFound = 0;
340
+ this.logger.info('[SleepCycle:N2] Processing patterns using PatternSynthesis');
341
+ if (!this.patternSynthesis) {
342
+ this.logger.warn('[SleepCycle:N2] PatternSynthesis not available, falling back to empty result');
343
+ return { patterns: 0, agents: Array.from(this.processedAgents) };
344
+ }
345
+ try {
346
+ // Run pattern synthesis on captured experiences
347
+ const result = await this.patternSynthesis.synthesize({
348
+ minSupport: 2, // Lower for more patterns during dev
349
+ minConfidence: 0.6,
350
+ maxPatterns: this.config.budget.maxPatternsPerCycle,
351
+ agentTypes: Array.from(this.processedAgents),
352
+ });
353
+ patternsFound = result.patterns.length;
354
+ this.synthesizedPatterns = result.patterns;
355
+ this.logger.info('[SleepCycle:N2] Pattern synthesis complete', {
356
+ patternsFound,
357
+ clustersAnalyzed: result.clustersAnalyzed,
358
+ experiencesProcessed: result.experiencesProcessed,
359
+ duration: result.duration,
360
+ stats: result.stats,
361
+ });
362
+ // Mark experiences as processed
363
+ if (this.experienceCapture && this.capturedExperienceData.length > 0) {
364
+ const expIds = this.capturedExperienceData.map(e => e.id);
365
+ this.experienceCapture.markAsProcessed(expIds);
366
+ this.logger.debug('[SleepCycle:N2] Marked experiences as processed', { count: expIds.length });
367
+ }
368
+ }
369
+ catch (error) {
370
+ this.logger.error('[SleepCycle:N2] Failed to process patterns', { error });
371
+ }
372
+ return { patterns: patternsFound, agents: Array.from(this.processedAgents) };
373
+ }
374
+ /**
375
+ * N3 Phase: Consolidate patterns into long-term memory
376
+ * Now uses TransferProtocol for cross-agent knowledge sharing
377
+ */
378
+ async consolidateMemory(maxDuration) {
379
+ let consolidated = 0;
380
+ this.logger.info('[SleepCycle:N3] Consolidating memory and initiating cross-agent transfer');
381
+ if (!this.transferProtocol) {
382
+ this.logger.warn('[SleepCycle:N3] TransferProtocol not available, skipping cross-agent transfer');
383
+ return { patterns: this.synthesizedPatterns.length, agents: Array.from(this.processedAgents) };
384
+ }
385
+ try {
386
+ // Get patterns that have high confidence and could benefit other agents
387
+ const highConfidencePatterns = this.synthesizedPatterns.filter(p => p.confidence >= 0.7);
388
+ if (highConfidencePatterns.length === 0) {
389
+ this.logger.info('[SleepCycle:N3] No high-confidence patterns to transfer');
390
+ return { patterns: this.synthesizedPatterns.length, agents: Array.from(this.processedAgents) };
391
+ }
392
+ // For each agent type that produced patterns, try to transfer to compatible agents
393
+ const processedAgentsArray = Array.from(this.processedAgents);
394
+ for (const sourceAgent of processedAgentsArray) {
395
+ if (this._isAborted)
396
+ break;
397
+ // Get patterns from this agent type
398
+ const agentPatterns = highConfidencePatterns.filter(p => p.agentTypes.includes(sourceAgent));
399
+ if (agentPatterns.length === 0)
400
+ continue;
401
+ // Broadcast each pattern to compatible agents
402
+ for (const pattern of agentPatterns) {
403
+ if (this._isAborted)
404
+ break;
405
+ try {
406
+ const results = await this.transferProtocol.broadcastPattern(pattern.id, sourceAgent);
407
+ // Count successful transfers
408
+ const successful = results.filter(r => r.patternsTransferred > 0);
409
+ if (successful.length > 0) {
410
+ this.transferResults.push(...successful);
411
+ consolidated += successful.length;
412
+ this.logger.info('[SleepCycle:N3] Pattern broadcast complete', {
413
+ patternId: pattern.id,
414
+ source: sourceAgent,
415
+ successfulTransfers: successful.length,
416
+ });
417
+ }
418
+ }
419
+ catch (transferError) {
420
+ this.logger.warn('[SleepCycle:N3] Pattern transfer failed', {
421
+ patternId: pattern.id,
422
+ agent: sourceAgent,
423
+ error: transferError,
424
+ });
425
+ }
426
+ }
427
+ }
428
+ // Consolidation count = synthesized patterns + transferred patterns
429
+ consolidated = this.synthesizedPatterns.length + consolidated;
430
+ this.logger.info('[SleepCycle:N3] Memory consolidation complete', {
431
+ synthesizedPatterns: this.synthesizedPatterns.length,
432
+ crossAgentTransfers: this.transferResults.length,
433
+ totalConsolidated: consolidated,
434
+ });
435
+ }
436
+ catch (error) {
437
+ this.logger.error('[SleepCycle:N3] Failed to consolidate memory', { error });
438
+ }
439
+ return { patterns: consolidated, agents: Array.from(this.processedAgents) };
440
+ }
441
+ /**
442
+ * REM Phase: Dream engine for creative pattern generation
443
+ * Now uses DreamEngine.dream() for real insight discovery
444
+ */
445
+ async activateDreamEngine(maxDuration) {
446
+ let insightsGenerated = 0;
447
+ this.logger.info('[SleepCycle:REM] Activating DreamEngine for pattern discovery');
448
+ if (!this.dreamEngine) {
449
+ this.logger.warn('[SleepCycle:REM] DreamEngine not available, skipping dream phase');
450
+ return { patterns: 0, agents: Array.from(this.processedAgents) };
451
+ }
452
+ try {
453
+ // Initialize dream engine (loads patterns as concepts)
454
+ await this.dreamEngine.initialize();
455
+ // Run the dream cycle
456
+ const result = await this.dreamEngine.dream();
457
+ insightsGenerated = result.insightsGenerated;
458
+ this.dreamResult = result;
459
+ this.logger.info('[SleepCycle:REM] Dream cycle complete', {
460
+ insightsGenerated,
461
+ associationsFound: result.associationsFound,
462
+ duration: result.duration,
463
+ status: result.status,
464
+ actionableInsights: result.insights.filter(i => i.actionable).length,
465
+ });
466
+ // Log notable insights
467
+ for (const insight of result.insights.slice(0, 5)) {
468
+ this.logger.debug('[SleepCycle:REM] Insight discovered', {
469
+ type: insight.type,
470
+ description: insight.description.substring(0, 100),
471
+ novelty: insight.noveltyScore.toFixed(2),
472
+ actionable: insight.actionable,
473
+ });
474
+ }
475
+ }
476
+ catch (error) {
477
+ this.logger.error('[SleepCycle:REM] Failed to run dream engine', { error });
478
+ }
479
+ return { patterns: insightsGenerated, agents: Array.from(this.processedAgents) };
480
+ }
481
+ /**
482
+ * Check if we're within budget constraints
483
+ */
484
+ checkBudget(summary) {
485
+ const totalPatterns = summary.patternsDiscovered + summary.patternsConsolidated;
486
+ if (totalPatterns >= this.config.budget.maxPatternsPerCycle) {
487
+ return false;
488
+ }
489
+ if (summary.agentsProcessed.length >= this.config.budget.maxAgentsPerCycle) {
490
+ return false;
491
+ }
492
+ if (summary.totalDuration >= this.config.budget.maxDurationMs) {
493
+ return false;
494
+ }
495
+ return true;
496
+ }
497
+ /**
498
+ * Helper to sleep for a duration
499
+ */
500
+ sleep(ms) {
501
+ return new Promise(resolve => setTimeout(resolve, ms));
502
+ }
503
+ }
504
+ exports.SleepCycle = SleepCycle;
505
+ exports.default = SleepCycle;
506
+ //# sourceMappingURL=SleepCycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SleepCycle.js","sourceRoot":"","sources":["../../../src/learning/scheduler/SleepCycle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * SleepScheduler - Orchestrates learning cycles during system idle periods
3
+ *
4
+ * Triggers learning activities when the system is idle, using either:
5
+ * - Idle detection (CPU/memory monitoring)
6
+ * - Time-based scheduling (cron-like)
7
+ * - Hybrid mode (both)
8
+ *
9
+ * Part of the Nightly-Learner Phase 1 implementation.
10
+ *
11
+ * @version 1.0.0
12
+ * @module src/learning/scheduler/SleepScheduler
13
+ */
14
+ import { EventEmitter } from 'events';
15
+ import { IdleDetectorConfig } from './IdleDetector';
16
+ import { SleepCycle, CycleSummary } from './SleepCycle';
17
+ export interface LearningBudget {
18
+ /** Maximum patterns to process per cycle. Default: 50 */
19
+ maxPatternsPerCycle: number;
20
+ /** Maximum agents to process per cycle. Default: 5 */
21
+ maxAgentsPerCycle: number;
22
+ /** Maximum duration for a cycle in ms. Default: 3600000 (1 hour) */
23
+ maxDurationMs: number;
24
+ }
25
+ export interface ScheduleConfig {
26
+ /** Hour to start (0-23). Default: 2 (2 AM) */
27
+ startHour: number;
28
+ /** Duration in minutes. Default: 60 */
29
+ durationMinutes: number;
30
+ /** Days to run (0=Sunday, 6=Saturday). Default: all days */
31
+ daysOfWeek?: number[];
32
+ }
33
+ export interface SleepSchedulerConfig {
34
+ /** Scheduling mode: idle-based, time-based, or hybrid */
35
+ mode: 'idle' | 'time' | 'hybrid';
36
+ /** Idle detector configuration (for idle/hybrid modes) */
37
+ idleConfig?: Partial<IdleDetectorConfig>;
38
+ /** Time-based schedule configuration (for time/hybrid modes) */
39
+ schedule?: Partial<ScheduleConfig>;
40
+ /** Learning budget constraints */
41
+ learningBudget: Partial<LearningBudget>;
42
+ /** Minimum time between cycles in ms. Default: 3600000 (1 hour) */
43
+ minCycleInterval?: number;
44
+ /** Enable debug logging */
45
+ debug?: boolean;
46
+ }
47
+ export interface SleepSchedulerState {
48
+ isRunning: boolean;
49
+ mode: 'idle' | 'time' | 'hybrid';
50
+ currentCycle: SleepCycle | null;
51
+ lastCycleEnd: Date | null;
52
+ cyclesCompleted: number;
53
+ totalPatternsProcessed: number;
54
+ totalAgentsProcessed: number;
55
+ nextScheduledRun: Date | null;
56
+ }
57
+ /**
58
+ * SleepScheduler orchestrates learning cycles during idle periods
59
+ *
60
+ * @example
61
+ * ```typescript
62
+ * const scheduler = new SleepScheduler({
63
+ * mode: 'hybrid',
64
+ * learningBudget: { maxPatternsPerCycle: 50, maxAgentsPerCycle: 5 },
65
+ * });
66
+ *
67
+ * scheduler.on('sleep:start', (cycle) => console.log('Learning cycle started'));
68
+ * scheduler.on('sleep:end', (summary) => console.log('Cycle complete:', summary));
69
+ *
70
+ * await scheduler.start();
71
+ * ```
72
+ */
73
+ export declare class SleepScheduler extends EventEmitter {
74
+ private config;
75
+ private idleDetector;
76
+ private currentCycle;
77
+ private isRunning;
78
+ private logger;
79
+ private timeBasedTimer;
80
+ private lastCycleEnd;
81
+ private cyclesCompleted;
82
+ private totalPatternsProcessed;
83
+ private totalAgentsProcessed;
84
+ constructor(config: SleepSchedulerConfig);
85
+ /**
86
+ * Start the sleep scheduler
87
+ */
88
+ start(): Promise<void>;
89
+ /**
90
+ * Stop the sleep scheduler
91
+ */
92
+ stop(): Promise<void>;
93
+ /**
94
+ * Manually trigger a learning cycle
95
+ */
96
+ triggerCycle(reason?: string): Promise<CycleSummary | null>;
97
+ /**
98
+ * Get current scheduler state
99
+ */
100
+ getState(): SleepSchedulerState;
101
+ /**
102
+ * Register a task to prevent idle detection during critical operations
103
+ */
104
+ registerTask(taskId: string): void;
105
+ /**
106
+ * Unregister a task to allow idle detection
107
+ */
108
+ unregisterTask(taskId: string): void;
109
+ /**
110
+ * Handle idle detection event
111
+ */
112
+ private handleIdleDetected;
113
+ /**
114
+ * Execute a learning cycle
115
+ */
116
+ private executeCycle;
117
+ /**
118
+ * Set up time-based scheduling
119
+ */
120
+ private scheduleTimeBased;
121
+ /**
122
+ * Calculate next scheduled run time
123
+ */
124
+ private getNextScheduledRun;
125
+ /**
126
+ * Get configuration
127
+ */
128
+ getConfig(): SleepSchedulerConfig;
129
+ }
130
+ export default SleepScheduler;
131
+ //# sourceMappingURL=SleepScheduler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SleepScheduler.d.ts","sourceRoot":"","sources":["../../../src/learning/scheduler/SleepScheduler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAgB,kBAAkB,EAAa,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAc,YAAY,EAAoB,MAAM,cAAc,CAAC;AAGtF,MAAM,WAAW,cAAc;IAC7B,yDAAyD;IACzD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,sDAAsD;IACtD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oEAAoE;IACpE,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,eAAe,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,yDAAyD;IACzD,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;IACjC,0DAA0D;IAC1D,UAAU,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzC,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACnC,kCAAkC;IAClC,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACxC,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;IACjC,YAAY,EAAE,UAAU,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,EAAE,IAAI,GAAG,IAAI,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,sBAAsB,CAAa;IAC3C,OAAO,CAAC,oBAAoB,CAAa;gBAE7B,MAAM,EAAE,oBAAoB;IAmCxC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA+B5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB3B;;OAEG;IACG,YAAY,CAAC,MAAM,GAAE,MAAiB,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAe3E;;OAEG;IACH,QAAQ,IAAI,mBAAmB;IAa/B;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIlC;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIpC;;OAEG;YACW,kBAAkB;IAsBhC;;OAEG;YACW,YAAY;IAmD1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAiCzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAuB3B;;OAEG;IACH,SAAS,IAAI,oBAAoB;CAGlC;AAED,eAAe,cAAc,CAAC"}