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,445 @@
1
+ "use strict";
2
+ /**
3
+ * ConceptGraph - Graph-based concept storage for Dream Engine
4
+ *
5
+ * Stores concepts (patterns, techniques, domains, outcomes) as nodes
6
+ * with weighted edges representing associations between them.
7
+ *
8
+ * Part of the Nightly-Learner Phase 2 implementation.
9
+ *
10
+ * @version 1.0.0
11
+ * @module src/learning/dream/ConceptGraph
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
47
+ return (mod && mod.__esModule) ? mod : { "default": mod };
48
+ };
49
+ Object.defineProperty(exports, "__esModule", { value: true });
50
+ exports.ConceptGraph = void 0;
51
+ const events_1 = require("events");
52
+ const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
53
+ const path = __importStar(require("path"));
54
+ const Logger_1 = require("../../utils/Logger");
55
+ const SecureRandom_1 = require("../../utils/SecureRandom");
56
+ /**
57
+ * ConceptGraph stores and manages concept associations
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * const graph = new ConceptGraph();
62
+ * await graph.initialize();
63
+ *
64
+ * await graph.addConcept({
65
+ * id: 'pattern-1',
66
+ * type: 'pattern',
67
+ * content: 'Use mocks for external dependencies',
68
+ * metadata: { framework: 'jest' },
69
+ * });
70
+ *
71
+ * graph.addEdge({
72
+ * source: 'pattern-1',
73
+ * target: 'technique-2',
74
+ * weight: 0.8,
75
+ * type: 'causation',
76
+ * });
77
+ * ```
78
+ */
79
+ class ConceptGraph extends events_1.EventEmitter {
80
+ constructor(config) {
81
+ super();
82
+ this.nodes = new Map();
83
+ this.edges = new Map();
84
+ this.initialized = false;
85
+ this.logger = Logger_1.Logger.getInstance();
86
+ this.config = {
87
+ dbPath: config?.dbPath || path.join(process.cwd(), '.agentic-qe', 'memory.db'),
88
+ similarityThreshold: config?.similarityThreshold ?? 0.5,
89
+ maxEdgesPerNode: config?.maxEdgesPerNode ?? 20,
90
+ debug: config?.debug ?? false,
91
+ };
92
+ this.db = new better_sqlite3_1.default(this.config.dbPath);
93
+ }
94
+ /**
95
+ * Initialize the concept graph
96
+ */
97
+ async initialize() {
98
+ if (this.initialized)
99
+ return;
100
+ this.initializeSchema();
101
+ await this.loadFromDatabase();
102
+ this.initialized = true;
103
+ this.logger.info('[ConceptGraph] Initialized', {
104
+ nodes: this.nodes.size,
105
+ edges: Array.from(this.edges.values()).flat().length,
106
+ });
107
+ }
108
+ /**
109
+ * Initialize database schema
110
+ */
111
+ initializeSchema() {
112
+ this.db.exec(`
113
+ CREATE TABLE IF NOT EXISTS concept_nodes (
114
+ id TEXT PRIMARY KEY,
115
+ type TEXT NOT NULL,
116
+ content TEXT NOT NULL,
117
+ embedding BLOB,
118
+ activation_level REAL DEFAULT 0,
119
+ last_activated INTEGER,
120
+ metadata TEXT,
121
+ created_at INTEGER NOT NULL
122
+ );
123
+
124
+ CREATE TABLE IF NOT EXISTS concept_edges (
125
+ id TEXT PRIMARY KEY,
126
+ source TEXT NOT NULL,
127
+ target TEXT NOT NULL,
128
+ weight REAL NOT NULL,
129
+ type TEXT NOT NULL,
130
+ evidence INTEGER DEFAULT 1,
131
+ created_at INTEGER NOT NULL,
132
+ updated_at INTEGER NOT NULL,
133
+ FOREIGN KEY (source) REFERENCES concept_nodes(id),
134
+ FOREIGN KEY (target) REFERENCES concept_nodes(id)
135
+ );
136
+
137
+ CREATE INDEX IF NOT EXISTS idx_concept_type ON concept_nodes(type);
138
+ CREATE INDEX IF NOT EXISTS idx_concept_activation ON concept_nodes(activation_level);
139
+ CREATE INDEX IF NOT EXISTS idx_edge_source ON concept_edges(source);
140
+ CREATE INDEX IF NOT EXISTS idx_edge_target ON concept_edges(target);
141
+ CREATE INDEX IF NOT EXISTS idx_edge_weight ON concept_edges(weight);
142
+ `);
143
+ }
144
+ /**
145
+ * Load graph from database
146
+ */
147
+ async loadFromDatabase() {
148
+ // Load nodes
149
+ const nodeRows = this.db.prepare('SELECT * FROM concept_nodes').all();
150
+ for (const row of nodeRows) {
151
+ const node = {
152
+ id: row.id,
153
+ type: row.type,
154
+ content: row.content,
155
+ embedding: row.embedding ? Array.from(new Float32Array(row.embedding)) : undefined,
156
+ activationLevel: row.activation_level || 0,
157
+ lastActivated: new Date(row.last_activated || Date.now()),
158
+ metadata: row.metadata ? JSON.parse(row.metadata) : {},
159
+ };
160
+ this.nodes.set(node.id, node);
161
+ }
162
+ // Load edges
163
+ const edgeRows = this.db.prepare('SELECT * FROM concept_edges').all();
164
+ for (const row of edgeRows) {
165
+ const edge = {
166
+ id: row.id,
167
+ source: row.source,
168
+ target: row.target,
169
+ weight: row.weight,
170
+ type: row.type,
171
+ evidence: row.evidence,
172
+ createdAt: new Date(row.created_at),
173
+ updatedAt: new Date(row.updated_at),
174
+ };
175
+ const sourceEdges = this.edges.get(edge.source) || [];
176
+ sourceEdges.push(edge);
177
+ this.edges.set(edge.source, sourceEdges);
178
+ }
179
+ }
180
+ /**
181
+ * Add a concept node to the graph
182
+ */
183
+ async addConcept(concept) {
184
+ const now = new Date();
185
+ const node = {
186
+ ...concept,
187
+ activationLevel: 0,
188
+ lastActivated: now,
189
+ };
190
+ // Store in memory
191
+ this.nodes.set(concept.id, node);
192
+ // Persist to database
193
+ this.db.prepare(`
194
+ INSERT OR REPLACE INTO concept_nodes
195
+ (id, type, content, embedding, activation_level, last_activated, metadata, created_at)
196
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)
197
+ `).run(node.id, node.type, node.content, node.embedding ? Buffer.from(new Float32Array(node.embedding).buffer) : null, node.activationLevel, now.getTime(), JSON.stringify(node.metadata), now.getTime());
198
+ // Auto-discover edges based on similarity
199
+ await this.discoverEdges(concept.id);
200
+ this.emit('concept:added', node);
201
+ if (this.config.debug) {
202
+ this.logger.debug('[ConceptGraph] Added concept', { id: node.id, type: node.type });
203
+ }
204
+ return node;
205
+ }
206
+ /**
207
+ * Get a concept by ID
208
+ */
209
+ getConcept(id) {
210
+ return this.nodes.get(id);
211
+ }
212
+ /**
213
+ * Get all concepts of a specific type
214
+ */
215
+ getConceptsByType(type) {
216
+ return Array.from(this.nodes.values()).filter(n => n.type === type);
217
+ }
218
+ /**
219
+ * Get all concepts (optionally filtered by activation threshold)
220
+ */
221
+ getAllConcepts(minActivation = 0) {
222
+ return Array.from(this.nodes.values())
223
+ .filter(n => n.activationLevel >= minActivation);
224
+ }
225
+ /**
226
+ * Get nodes above activation threshold
227
+ */
228
+ getActiveNodes(threshold = 0.3) {
229
+ return Array.from(this.nodes.values())
230
+ .filter(n => n.activationLevel >= threshold);
231
+ }
232
+ /**
233
+ * Discover edges by finding similar concepts
234
+ */
235
+ async discoverEdges(conceptId) {
236
+ const concept = this.nodes.get(conceptId);
237
+ if (!concept || !concept.embedding)
238
+ return;
239
+ // Find similar concepts based on content/type
240
+ for (const [otherId, other] of this.nodes) {
241
+ if (otherId === conceptId)
242
+ continue;
243
+ // Calculate similarity
244
+ const similarity = this.calculateSimilarity(concept, other);
245
+ if (similarity >= this.config.similarityThreshold) {
246
+ this.addEdge({
247
+ source: conceptId,
248
+ target: otherId,
249
+ weight: similarity,
250
+ type: 'similarity',
251
+ });
252
+ }
253
+ }
254
+ }
255
+ /**
256
+ * Calculate similarity between two concepts
257
+ */
258
+ calculateSimilarity(a, b) {
259
+ let similarity = 0;
260
+ // Type similarity (same type = bonus)
261
+ if (a.type === b.type) {
262
+ similarity += 0.3;
263
+ }
264
+ // Content similarity (simple word overlap)
265
+ const wordsA = new Set(a.content.toLowerCase().split(/\s+/));
266
+ const wordsB = new Set(b.content.toLowerCase().split(/\s+/));
267
+ const intersection = [...wordsA].filter(w => wordsB.has(w));
268
+ const union = new Set([...wordsA, ...wordsB]);
269
+ const jaccardSimilarity = intersection.length / union.size;
270
+ similarity += jaccardSimilarity * 0.4;
271
+ // Embedding similarity (if both have embeddings)
272
+ if (a.embedding && b.embedding) {
273
+ const cosineSim = this.cosineSimilarity(a.embedding, b.embedding);
274
+ similarity += cosineSim * 0.3;
275
+ }
276
+ else {
277
+ // No embeddings, add base similarity
278
+ similarity += 0.15;
279
+ }
280
+ return Math.min(1, similarity);
281
+ }
282
+ /**
283
+ * Calculate cosine similarity between two vectors
284
+ */
285
+ cosineSimilarity(a, b) {
286
+ if (a.length !== b.length)
287
+ return 0;
288
+ let dotProduct = 0;
289
+ let normA = 0;
290
+ let normB = 0;
291
+ for (let i = 0; i < a.length; i++) {
292
+ dotProduct += a[i] * b[i];
293
+ normA += a[i] * a[i];
294
+ normB += b[i] * b[i];
295
+ }
296
+ if (normA === 0 || normB === 0)
297
+ return 0;
298
+ return dotProduct / (Math.sqrt(normA) * Math.sqrt(normB));
299
+ }
300
+ /**
301
+ * Add or strengthen an edge
302
+ */
303
+ addEdge(edge) {
304
+ const existing = this.getEdge(edge.source, edge.target);
305
+ const now = new Date();
306
+ if (existing) {
307
+ // Strengthen existing edge
308
+ existing.weight = Math.min(1, existing.weight + 0.1);
309
+ existing.evidence++;
310
+ existing.updatedAt = now;
311
+ // Update in database
312
+ this.db.prepare(`
313
+ UPDATE concept_edges
314
+ SET weight = ?, evidence = ?, updated_at = ?
315
+ WHERE id = ?
316
+ `).run(existing.weight, existing.evidence, now.getTime(), existing.id);
317
+ this.emit('edge:strengthened', existing);
318
+ return existing;
319
+ }
320
+ // Create new edge
321
+ const newEdge = {
322
+ id: `edge-${Date.now()}-${SecureRandom_1.SecureRandom.randomString(6, 'alphanumeric')}`,
323
+ source: edge.source,
324
+ target: edge.target,
325
+ weight: edge.weight,
326
+ type: edge.type,
327
+ evidence: 1,
328
+ createdAt: now,
329
+ updatedAt: now,
330
+ };
331
+ // Store in memory
332
+ const sourceEdges = this.edges.get(edge.source) || [];
333
+ // Enforce max edges limit
334
+ if (sourceEdges.length >= this.config.maxEdgesPerNode) {
335
+ // Remove weakest edge
336
+ sourceEdges.sort((a, b) => a.weight - b.weight);
337
+ const removed = sourceEdges.shift();
338
+ if (removed) {
339
+ this.db.prepare('DELETE FROM concept_edges WHERE id = ?').run(removed.id);
340
+ }
341
+ }
342
+ sourceEdges.push(newEdge);
343
+ this.edges.set(edge.source, sourceEdges);
344
+ // Persist to database
345
+ this.db.prepare(`
346
+ INSERT INTO concept_edges
347
+ (id, source, target, weight, type, evidence, created_at, updated_at)
348
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)
349
+ `).run(newEdge.id, newEdge.source, newEdge.target, newEdge.weight, newEdge.type, newEdge.evidence, now.getTime(), now.getTime());
350
+ this.emit('edge:added', newEdge);
351
+ return newEdge;
352
+ }
353
+ /**
354
+ * Get all edges from a node
355
+ */
356
+ getEdges(nodeId) {
357
+ return this.edges.get(nodeId) || [];
358
+ }
359
+ /**
360
+ * Get specific edge between two nodes
361
+ */
362
+ getEdge(source, target) {
363
+ return this.getEdges(source).find(e => e.target === target);
364
+ }
365
+ /**
366
+ * Set activation level for a concept
367
+ */
368
+ setActivation(nodeId, level) {
369
+ const node = this.nodes.get(nodeId);
370
+ if (!node)
371
+ return;
372
+ node.activationLevel = Math.max(0, Math.min(1, level));
373
+ node.lastActivated = new Date();
374
+ // Update in database
375
+ this.db.prepare(`
376
+ UPDATE concept_nodes
377
+ SET activation_level = ?, last_activated = ?
378
+ WHERE id = ?
379
+ `).run(node.activationLevel, node.lastActivated.getTime(), nodeId);
380
+ }
381
+ /**
382
+ * Decay activation levels over time
383
+ */
384
+ decayActivations(factor = 0.9) {
385
+ for (const node of this.nodes.values()) {
386
+ node.activationLevel *= factor;
387
+ }
388
+ // Batch update in database
389
+ this.db.prepare(`
390
+ UPDATE concept_nodes
391
+ SET activation_level = activation_level * ?
392
+ `).run(factor);
393
+ }
394
+ /**
395
+ * Get graph statistics
396
+ */
397
+ getStats() {
398
+ const nodes = Array.from(this.nodes.values());
399
+ const allEdges = Array.from(this.edges.values()).flat();
400
+ const byType = {
401
+ pattern: 0,
402
+ technique: 0,
403
+ domain: 0,
404
+ outcome: 0,
405
+ error: 0,
406
+ };
407
+ for (const node of nodes) {
408
+ byType[node.type]++;
409
+ }
410
+ const avgActivation = nodes.length > 0
411
+ ? nodes.reduce((sum, n) => sum + n.activationLevel, 0) / nodes.length
412
+ : 0;
413
+ return {
414
+ nodeCount: nodes.length,
415
+ edgeCount: allEdges.length,
416
+ byType,
417
+ avgEdgesPerNode: nodes.length > 0 ? allEdges.length / nodes.length : 0,
418
+ avgActivation,
419
+ };
420
+ }
421
+ /**
422
+ * Remove a concept and its edges
423
+ */
424
+ removeConcept(id) {
425
+ this.nodes.delete(id);
426
+ this.edges.delete(id);
427
+ // Remove edges pointing to this node
428
+ for (const [source, edges] of this.edges) {
429
+ const filtered = edges.filter(e => e.target !== id);
430
+ this.edges.set(source, filtered);
431
+ }
432
+ // Remove from database
433
+ this.db.prepare('DELETE FROM concept_nodes WHERE id = ?').run(id);
434
+ this.db.prepare('DELETE FROM concept_edges WHERE source = ? OR target = ?').run(id, id);
435
+ }
436
+ /**
437
+ * Close database connection
438
+ */
439
+ close() {
440
+ this.db.close();
441
+ }
442
+ }
443
+ exports.ConceptGraph = ConceptGraph;
444
+ exports.default = ConceptGraph;
445
+ //# sourceMappingURL=ConceptGraph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConceptGraph.js","sourceRoot":"","sources":["../../../src/learning/dream/ConceptGraph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,150 @@
1
+ /**
2
+ * DreamEngine - Main orchestrator for dream-based pattern discovery
3
+ *
4
+ * Coordinates ConceptGraph, SpreadingActivation, and InsightGenerator
5
+ * to discover novel patterns through simulated "dreaming".
6
+ *
7
+ * Part of the Nightly-Learner Phase 2 implementation.
8
+ *
9
+ * @version 1.0.0
10
+ * @module src/learning/dream/DreamEngine
11
+ */
12
+ import { EventEmitter } from 'events';
13
+ import { ConceptNode } from './ConceptGraph';
14
+ import { DreamResult } from './SpreadingActivation';
15
+ import { DreamInsight, InsightType } from './InsightGenerator';
16
+ export interface DreamEngineConfig {
17
+ /** Database path. Default: .agentic-qe/memory.db */
18
+ dbPath?: string;
19
+ /** Duration of dream cycle in ms. Default: 20 * 60 * 1000 (20 minutes) */
20
+ cycleDuration?: number;
21
+ /** Minimum insights to generate per cycle. Default: 5 */
22
+ targetInsights?: number;
23
+ /** Novelty threshold for insights. Default: 0.5 */
24
+ noveltyThreshold?: number;
25
+ /** Noise level for dreaming. Default: 0.2 */
26
+ dreamNoise?: number;
27
+ /** Auto-load patterns from existing patterns table. Default: true */
28
+ autoLoadPatterns?: boolean;
29
+ /** Enable debug logging */
30
+ debug?: boolean;
31
+ }
32
+ export interface DreamCycleResult {
33
+ cycleId: string;
34
+ startTime: Date;
35
+ endTime: Date;
36
+ duration: number;
37
+ conceptsProcessed: number;
38
+ associationsFound: number;
39
+ insightsGenerated: number;
40
+ insights: DreamInsight[];
41
+ dreamResult: DreamResult;
42
+ status: 'completed' | 'interrupted' | 'failed';
43
+ error?: string;
44
+ }
45
+ export interface DreamEngineState {
46
+ isRunning: boolean;
47
+ currentCycleId?: string;
48
+ cyclesCompleted: number;
49
+ totalInsightsGenerated: number;
50
+ lastCycleTime?: Date;
51
+ averageInsightsPerCycle: number;
52
+ }
53
+ /**
54
+ * DreamEngine orchestrates dream-based pattern discovery
55
+ *
56
+ * @example
57
+ * ```typescript
58
+ * const engine = new DreamEngine({ cycleDuration: 30000 }); // 30 second cycles for testing
59
+ * await engine.initialize();
60
+ *
61
+ * // Run a dream cycle
62
+ * const result = await engine.dream();
63
+ * console.log(`Generated ${result.insightsGenerated} insights`);
64
+ *
65
+ * // Get pending insights
66
+ * const insights = engine.getPendingInsights();
67
+ * ```
68
+ */
69
+ export declare class DreamEngine extends EventEmitter {
70
+ private config;
71
+ private graph;
72
+ private activation;
73
+ private generator;
74
+ private db;
75
+ private logger;
76
+ private state;
77
+ private abortController?;
78
+ constructor(config?: DreamEngineConfig);
79
+ /**
80
+ * Initialize the dream engine
81
+ */
82
+ initialize(): Promise<void>;
83
+ /**
84
+ * Initialize database schema for dream cycles
85
+ */
86
+ private initializeSchema;
87
+ /**
88
+ * Load existing patterns as concepts
89
+ */
90
+ private loadPatternsAsConcepts;
91
+ /**
92
+ * Load captured experiences as concepts for dream processing
93
+ * This connects real agent execution data to the concept graph
94
+ */
95
+ private loadExperiencesAsConcepts;
96
+ /**
97
+ * Build descriptive content for an experience concept
98
+ */
99
+ private buildExperienceContent;
100
+ /**
101
+ * Map pattern type to concept type
102
+ */
103
+ private mapPatternType;
104
+ /**
105
+ * Run a dream cycle
106
+ */
107
+ dream(): Promise<DreamCycleResult>;
108
+ /**
109
+ * Abort current dream cycle
110
+ */
111
+ abort(): void;
112
+ /**
113
+ * Add a concept to the graph
114
+ */
115
+ addConcept(concept: Omit<ConceptNode, 'activationLevel' | 'lastActivated'>): Promise<ConceptNode>;
116
+ /**
117
+ * Get pending insights
118
+ */
119
+ getPendingInsights(limit?: number): DreamInsight[];
120
+ /**
121
+ * Get insights by type
122
+ */
123
+ getInsightsByType(type: InsightType, limit?: number): DreamInsight[];
124
+ /**
125
+ * Apply an insight
126
+ */
127
+ applyInsight(insightId: string, feedback?: string): Promise<void>;
128
+ /**
129
+ * Get engine state
130
+ */
131
+ getState(): DreamEngineState;
132
+ /**
133
+ * Get graph statistics
134
+ */
135
+ getGraphStats(): import("./ConceptGraph").GraphStats;
136
+ /**
137
+ * Get recent dream cycles
138
+ */
139
+ getRecentCycles(limit?: number): any[];
140
+ /**
141
+ * Reset activation levels
142
+ */
143
+ resetActivations(): void;
144
+ /**
145
+ * Close all connections
146
+ */
147
+ close(): void;
148
+ }
149
+ export default DreamEngine;
150
+ //# sourceMappingURL=DreamEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DreamEngine.d.ts","sourceRoot":"","sources":["../../../src/learning/dream/DreamEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,EAAgB,WAAW,EAAe,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAoC,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAoB,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIjF,MAAM,WAAW,iBAAiB;IAChC,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mDAAmD;IACnD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,WAAW,GAAG,aAAa,GAAG,QAAQ,CAAC;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,aAAa,CAAC,EAAE,IAAI,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,KAAK,CAKX;IAEF,OAAO,CAAC,eAAe,CAAC,CAAkB;gBAE9B,MAAM,CAAC,EAAE,iBAAiB;IAoCtC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAcjC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAoBxB;;OAEG;YACW,sBAAsB;IAiEpC;;;OAGG;YACW,yBAAyB;IAwJvC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAyB9B;;OAEG;IACH,OAAO,CAAC,cAAc;IAYtB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAgIxC;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,iBAAiB,GAAG,eAAe,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IAIvG;;OAEG;IACH,kBAAkB,CAAC,KAAK,GAAE,MAAW,GAAG,YAAY,EAAE;IAItD;;OAEG;IACH,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,GAAE,MAAW,GAAG,YAAY,EAAE;IAIxE;;OAEG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvE;;OAEG;IACH,QAAQ,IAAI,gBAAgB;IAI5B;;OAEG;IACH,aAAa;IAIb;;OAEG;IACH,eAAe,CAAC,KAAK,GAAE,MAAW,GAAG,GAAG,EAAE;IAQ1C;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAIxB;;OAEG;IACH,KAAK,IAAI,IAAI;CAKd;AAED,eAAe,WAAW,CAAC"}