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,152 @@
1
+ /**
2
+ * InsightGenerator - Generate actionable insights from associations
3
+ *
4
+ * Transforms co-activated concept associations into actionable insights
5
+ * that can improve agent behavior.
6
+ *
7
+ * Part of the Nightly-Learner Phase 2 implementation.
8
+ *
9
+ * @version 1.0.0
10
+ * @module src/learning/dream/InsightGenerator
11
+ */
12
+ import { EventEmitter } from 'events';
13
+ import { ConceptGraph } from './ConceptGraph';
14
+ import { Association } from './SpreadingActivation';
15
+ export type InsightType = 'new_pattern' | 'optimization' | 'warning' | 'connection' | 'transfer';
16
+ export interface DreamInsight {
17
+ id: string;
18
+ type: InsightType;
19
+ title: string;
20
+ description: string;
21
+ associatedConcepts: string[];
22
+ noveltyScore: number;
23
+ confidenceScore: number;
24
+ actionable: boolean;
25
+ suggestedAction?: string;
26
+ targetAgentTypes?: string[];
27
+ priority: 'high' | 'medium' | 'low';
28
+ status: 'pending' | 'applied' | 'dismissed' | 'validated';
29
+ createdAt: Date;
30
+ appliedAt?: Date;
31
+ outcome?: {
32
+ success: boolean;
33
+ feedback?: string;
34
+ improvementMeasured?: number;
35
+ };
36
+ }
37
+ export interface InsightGeneratorConfig {
38
+ /** Database path. Default: .agentic-qe/memory.db */
39
+ dbPath?: string;
40
+ /** Minimum novelty score to generate insight. Default: 0.5 */
41
+ noveltyThreshold?: number;
42
+ /** Minimum confidence to mark as actionable. Default: 0.6 */
43
+ confidenceThreshold?: number;
44
+ /** Maximum insights to generate per cycle. Default: 10 */
45
+ maxInsightsPerCycle?: number;
46
+ /** Enable debug logging */
47
+ debug?: boolean;
48
+ }
49
+ export interface InsightGenerationResult {
50
+ totalAssociations: number;
51
+ insightsGenerated: number;
52
+ actionableInsights: number;
53
+ byType: Record<InsightType, number>;
54
+ averageNovelty: number;
55
+ averageConfidence: number;
56
+ duration: number;
57
+ }
58
+ /**
59
+ * InsightGenerator creates actionable insights from concept associations
60
+ *
61
+ * @example
62
+ * ```typescript
63
+ * const generator = new InsightGenerator(graph);
64
+ *
65
+ * const insights = await generator.generateInsights(associations);
66
+ * console.log(`Generated ${insights.length} insights`);
67
+ *
68
+ * // Apply an insight
69
+ * await generator.applyInsight(insights[0].id);
70
+ * ```
71
+ */
72
+ export declare class InsightGenerator extends EventEmitter {
73
+ private graph;
74
+ private config;
75
+ private db;
76
+ private logger;
77
+ constructor(graph: ConceptGraph, config?: InsightGeneratorConfig);
78
+ /**
79
+ * Initialize database schema
80
+ */
81
+ private initializeSchema;
82
+ /**
83
+ * Generate insights from associations
84
+ */
85
+ generateInsights(associations: Association[]): Promise<DreamInsight[]>;
86
+ /**
87
+ * Convert an association to an insight
88
+ */
89
+ private associationToInsight;
90
+ /**
91
+ * Determine insight type from concept types
92
+ */
93
+ private determineInsightType;
94
+ /**
95
+ * Calculate confidence score
96
+ */
97
+ private calculateConfidence;
98
+ /**
99
+ * Generate a title for the insight
100
+ */
101
+ private generateTitle;
102
+ /**
103
+ * Generate a description for the insight
104
+ */
105
+ private generateDescription;
106
+ /**
107
+ * Generate a suggested action
108
+ */
109
+ private generateAction;
110
+ /**
111
+ * Extract target agent types from concepts
112
+ */
113
+ private extractTargetAgentTypes;
114
+ /**
115
+ * Determine priority level
116
+ */
117
+ private determinePriority;
118
+ /**
119
+ * Store insights in database
120
+ */
121
+ private storeInsights;
122
+ /**
123
+ * Get pending insights
124
+ */
125
+ getPendingInsights(limit?: number): DreamInsight[];
126
+ /**
127
+ * Get insights by type
128
+ */
129
+ getInsightsByType(type: InsightType, limit?: number): DreamInsight[];
130
+ /**
131
+ * Apply an insight (mark as applied)
132
+ */
133
+ applyInsight(insightId: string, feedback?: string): Promise<void>;
134
+ /**
135
+ * Dismiss an insight
136
+ */
137
+ dismissInsight(insightId: string, reason?: string): void;
138
+ /**
139
+ * Record outcome of an applied insight
140
+ */
141
+ recordOutcome(insightId: string, success: boolean, feedback?: string, improvement?: number): void;
142
+ /**
143
+ * Convert database row to DreamInsight
144
+ */
145
+ private rowToInsight;
146
+ /**
147
+ * Close database connection
148
+ */
149
+ close(): void;
150
+ }
151
+ export default InsightGenerator;
152
+ //# sourceMappingURL=InsightGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InsightGenerator.d.ts","sourceRoot":"","sources":["../../../src/learning/dream/InsightGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,463 @@
1
+ "use strict";
2
+ /**
3
+ * InsightGenerator - Generate actionable insights from associations
4
+ *
5
+ * Transforms co-activated concept associations into actionable insights
6
+ * that can improve agent behavior.
7
+ *
8
+ * Part of the Nightly-Learner Phase 2 implementation.
9
+ *
10
+ * @version 1.0.0
11
+ * @module src/learning/dream/InsightGenerator
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.InsightGenerator = 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
+ * InsightGenerator creates actionable insights from concept associations
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * const generator = new InsightGenerator(graph);
62
+ *
63
+ * const insights = await generator.generateInsights(associations);
64
+ * console.log(`Generated ${insights.length} insights`);
65
+ *
66
+ * // Apply an insight
67
+ * await generator.applyInsight(insights[0].id);
68
+ * ```
69
+ */
70
+ class InsightGenerator extends events_1.EventEmitter {
71
+ constructor(graph, config) {
72
+ super();
73
+ this.graph = graph;
74
+ this.logger = Logger_1.Logger.getInstance();
75
+ this.config = {
76
+ dbPath: config?.dbPath || path.join(process.cwd(), '.agentic-qe', 'memory.db'),
77
+ noveltyThreshold: config?.noveltyThreshold ?? 0.5,
78
+ confidenceThreshold: config?.confidenceThreshold ?? 0.6,
79
+ maxInsightsPerCycle: config?.maxInsightsPerCycle ?? 10,
80
+ debug: config?.debug ?? false,
81
+ };
82
+ this.db = new better_sqlite3_1.default(this.config.dbPath);
83
+ this.initializeSchema();
84
+ }
85
+ /**
86
+ * Initialize database schema
87
+ */
88
+ initializeSchema() {
89
+ this.db.exec(`
90
+ CREATE TABLE IF NOT EXISTS dream_insights (
91
+ id TEXT PRIMARY KEY,
92
+ type TEXT NOT NULL,
93
+ title TEXT NOT NULL,
94
+ description TEXT NOT NULL,
95
+ associated_concepts TEXT NOT NULL,
96
+ novelty_score REAL NOT NULL,
97
+ confidence_score REAL NOT NULL,
98
+ actionable INTEGER NOT NULL,
99
+ suggested_action TEXT,
100
+ target_agent_types TEXT,
101
+ priority TEXT NOT NULL,
102
+ status TEXT NOT NULL DEFAULT 'pending',
103
+ created_at INTEGER NOT NULL,
104
+ applied_at INTEGER,
105
+ outcome TEXT
106
+ );
107
+
108
+ CREATE INDEX IF NOT EXISTS idx_insight_type ON dream_insights(type);
109
+ CREATE INDEX IF NOT EXISTS idx_insight_status ON dream_insights(status);
110
+ CREATE INDEX IF NOT EXISTS idx_insight_priority ON dream_insights(priority);
111
+ CREATE INDEX IF NOT EXISTS idx_insight_actionable ON dream_insights(actionable);
112
+ `);
113
+ }
114
+ /**
115
+ * Generate insights from associations
116
+ */
117
+ async generateInsights(associations) {
118
+ const startTime = Date.now();
119
+ const insights = [];
120
+ this.logger.info('[InsightGenerator] Generating insights', {
121
+ associations: associations.length,
122
+ });
123
+ for (const association of associations) {
124
+ if (association.novelty < this.config.noveltyThreshold) {
125
+ continue;
126
+ }
127
+ const insight = await this.associationToInsight(association);
128
+ if (insight) {
129
+ insights.push(insight);
130
+ if (insights.length >= this.config.maxInsightsPerCycle) {
131
+ break;
132
+ }
133
+ }
134
+ }
135
+ // Store insights
136
+ await this.storeInsights(insights);
137
+ // Calculate stats
138
+ const byType = {
139
+ new_pattern: 0,
140
+ optimization: 0,
141
+ warning: 0,
142
+ connection: 0,
143
+ transfer: 0,
144
+ };
145
+ for (const insight of insights) {
146
+ byType[insight.type]++;
147
+ }
148
+ const result = {
149
+ totalAssociations: associations.length,
150
+ insightsGenerated: insights.length,
151
+ actionableInsights: insights.filter(i => i.actionable).length,
152
+ byType,
153
+ averageNovelty: insights.length > 0
154
+ ? insights.reduce((sum, i) => sum + i.noveltyScore, 0) / insights.length
155
+ : 0,
156
+ averageConfidence: insights.length > 0
157
+ ? insights.reduce((sum, i) => sum + i.confidenceScore, 0) / insights.length
158
+ : 0,
159
+ duration: Date.now() - startTime,
160
+ };
161
+ this.logger.info('[InsightGenerator] Generation complete', {
162
+ generated: result.insightsGenerated,
163
+ actionable: result.actionableInsights,
164
+ duration: result.duration,
165
+ });
166
+ this.emit('generation:complete', result);
167
+ return insights;
168
+ }
169
+ /**
170
+ * Convert an association to an insight
171
+ */
172
+ async associationToInsight(association) {
173
+ // Get the concepts involved
174
+ const concepts = association.nodes
175
+ .map(id => this.graph.getConcept(id))
176
+ .filter(Boolean);
177
+ if (concepts.length < 2)
178
+ return null;
179
+ // Determine insight type based on concept types
180
+ const types = new Set(concepts.map(c => c.type));
181
+ const insightType = this.determineInsightType(types, concepts);
182
+ // Calculate confidence based on association strength and concept quality
183
+ const confidence = this.calculateConfidence(association, concepts);
184
+ // Determine if actionable
185
+ const actionable = confidence >= this.config.confidenceThreshold &&
186
+ insightType !== 'connection';
187
+ // Generate content
188
+ const title = this.generateTitle(concepts, insightType);
189
+ const description = this.generateDescription(concepts, insightType);
190
+ const suggestedAction = actionable ? this.generateAction(concepts, insightType) : undefined;
191
+ // Determine target agent types from concepts
192
+ const targetAgentTypes = this.extractTargetAgentTypes(concepts);
193
+ // Determine priority
194
+ const priority = this.determinePriority(association.novelty, confidence, insightType);
195
+ const insight = {
196
+ id: `insight-${Date.now()}-${SecureRandom_1.SecureRandom.randomString(8, 'alphanumeric')}`,
197
+ type: insightType,
198
+ title,
199
+ description,
200
+ associatedConcepts: association.nodes,
201
+ noveltyScore: association.novelty,
202
+ confidenceScore: confidence,
203
+ actionable,
204
+ suggestedAction,
205
+ targetAgentTypes: targetAgentTypes.length > 0 ? targetAgentTypes : undefined,
206
+ priority,
207
+ status: 'pending',
208
+ createdAt: new Date(),
209
+ };
210
+ this.emit('insight:generated', insight);
211
+ if (this.config.debug) {
212
+ this.logger.debug('[InsightGenerator] Generated insight', {
213
+ id: insight.id,
214
+ type: insight.type,
215
+ novelty: insight.noveltyScore.toFixed(3),
216
+ confidence: insight.confidenceScore.toFixed(3),
217
+ actionable: insight.actionable,
218
+ });
219
+ }
220
+ return insight;
221
+ }
222
+ /**
223
+ * Determine insight type from concept types
224
+ */
225
+ determineInsightType(types, concepts) {
226
+ if (types.has('pattern') && types.has('outcome')) {
227
+ return 'new_pattern';
228
+ }
229
+ if (types.has('technique') && types.has('outcome')) {
230
+ return 'optimization';
231
+ }
232
+ if (types.has('domain') && types.size > 1) {
233
+ return 'transfer';
234
+ }
235
+ // Check for warning indicators in content
236
+ const warningKeywords = ['fail', 'error', 'issue', 'problem', 'bug', 'slow'];
237
+ const hasWarning = concepts.some(c => warningKeywords.some(kw => c.content.toLowerCase().includes(kw)));
238
+ if (hasWarning) {
239
+ return 'warning';
240
+ }
241
+ return 'connection';
242
+ }
243
+ /**
244
+ * Calculate confidence score
245
+ */
246
+ calculateConfidence(association, concepts) {
247
+ let confidence = association.strength;
248
+ // Bonus for high-quality concepts (those with more metadata)
249
+ const avgMetadataSize = concepts.reduce((sum, c) => sum + Object.keys(c.metadata).length, 0) / concepts.length;
250
+ confidence += Math.min(0.2, avgMetadataSize * 0.05);
251
+ // Bonus for type diversity
252
+ const typeCount = new Set(concepts.map(c => c.type)).size;
253
+ if (typeCount >= 2) {
254
+ confidence += 0.1;
255
+ }
256
+ return Math.min(1, confidence);
257
+ }
258
+ /**
259
+ * Generate a title for the insight
260
+ */
261
+ generateTitle(concepts, type) {
262
+ const firstConcept = concepts[0].content.substring(0, 30);
263
+ switch (type) {
264
+ case 'new_pattern':
265
+ return `New Pattern: ${firstConcept}...`;
266
+ case 'optimization':
267
+ return `Optimization: ${firstConcept}...`;
268
+ case 'warning':
269
+ return `Warning: Potential issue with ${firstConcept}...`;
270
+ case 'transfer':
271
+ return `Transfer Opportunity: ${firstConcept}...`;
272
+ default:
273
+ return `Connection: ${concepts.length} concepts linked`;
274
+ }
275
+ }
276
+ /**
277
+ * Generate a description for the insight
278
+ */
279
+ generateDescription(concepts, type) {
280
+ const conceptSummaries = concepts.map(c => `[${c.type}] ${c.content.substring(0, 50)}`).join('; ');
281
+ switch (type) {
282
+ case 'new_pattern':
283
+ return `Discovered a potential new pattern by combining: ${conceptSummaries}. ` +
284
+ `This combination has not been seen before and may represent a novel approach.`;
285
+ case 'optimization':
286
+ return `Found an optimization opportunity: ${conceptSummaries}. ` +
287
+ `Applying this technique may improve performance.`;
288
+ case 'warning':
289
+ return `Detected potential issue: ${conceptSummaries}. ` +
290
+ `This combination has been associated with problems in the past.`;
291
+ case 'transfer':
292
+ return `Knowledge transfer opportunity between domains: ${conceptSummaries}. ` +
293
+ `Patterns from one domain may be applicable to another.`;
294
+ default:
295
+ return `Discovered connection between: ${conceptSummaries}.`;
296
+ }
297
+ }
298
+ /**
299
+ * Generate a suggested action
300
+ */
301
+ generateAction(concepts, type) {
302
+ switch (type) {
303
+ case 'new_pattern':
304
+ return 'Create a new test pattern combining these concepts and validate with a small test set.';
305
+ case 'optimization':
306
+ return 'Apply this technique to relevant agents and measure performance improvement.';
307
+ case 'warning':
308
+ return 'Review affected code paths and add defensive checks or tests.';
309
+ case 'transfer':
310
+ return 'Identify agents that could benefit from this cross-domain knowledge.';
311
+ default:
312
+ return 'Investigate this connection for potential applications.';
313
+ }
314
+ }
315
+ /**
316
+ * Extract target agent types from concepts
317
+ */
318
+ extractTargetAgentTypes(concepts) {
319
+ const agentTypes = new Set();
320
+ for (const concept of concepts) {
321
+ // Look for agent types in metadata
322
+ if (concept.metadata.agentType) {
323
+ agentTypes.add(concept.metadata.agentType);
324
+ }
325
+ if (concept.metadata.agentTypes && Array.isArray(concept.metadata.agentTypes)) {
326
+ for (const at of concept.metadata.agentTypes) {
327
+ agentTypes.add(at);
328
+ }
329
+ }
330
+ // Extract from content
331
+ const knownAgents = [
332
+ 'test-generator', 'coverage-analyzer', 'quality-gate',
333
+ 'performance-tester', 'security-scanner', 'flaky-test-hunter'
334
+ ];
335
+ for (const agent of knownAgents) {
336
+ if (concept.content.toLowerCase().includes(agent)) {
337
+ agentTypes.add(agent);
338
+ }
339
+ }
340
+ }
341
+ return Array.from(agentTypes);
342
+ }
343
+ /**
344
+ * Determine priority level
345
+ */
346
+ determinePriority(novelty, confidence, type) {
347
+ const score = novelty * 0.4 + confidence * 0.4 + (type === 'warning' ? 0.2 : 0);
348
+ if (score >= 0.7 || type === 'warning')
349
+ return 'high';
350
+ if (score >= 0.5)
351
+ return 'medium';
352
+ return 'low';
353
+ }
354
+ /**
355
+ * Store insights in database
356
+ */
357
+ async storeInsights(insights) {
358
+ const stmt = this.db.prepare(`
359
+ INSERT OR REPLACE INTO dream_insights
360
+ (id, type, title, description, associated_concepts, novelty_score, confidence_score,
361
+ actionable, suggested_action, target_agent_types, priority, status, created_at)
362
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
363
+ `);
364
+ const insertMany = this.db.transaction((ins) => {
365
+ for (const i of ins) {
366
+ stmt.run(i.id, i.type, i.title, i.description, JSON.stringify(i.associatedConcepts), i.noveltyScore, i.confidenceScore, i.actionable ? 1 : 0, i.suggestedAction || null, i.targetAgentTypes ? JSON.stringify(i.targetAgentTypes) : null, i.priority, i.status, i.createdAt.getTime());
367
+ }
368
+ });
369
+ insertMany(insights);
370
+ }
371
+ /**
372
+ * Get pending insights
373
+ */
374
+ getPendingInsights(limit = 10) {
375
+ const rows = this.db.prepare(`
376
+ SELECT * FROM dream_insights
377
+ WHERE status = 'pending'
378
+ ORDER BY
379
+ CASE priority WHEN 'high' THEN 1 WHEN 'medium' THEN 2 ELSE 3 END,
380
+ novelty_score DESC
381
+ LIMIT ?
382
+ `).all(limit);
383
+ return rows.map(row => this.rowToInsight(row));
384
+ }
385
+ /**
386
+ * Get insights by type
387
+ */
388
+ getInsightsByType(type, limit = 10) {
389
+ const rows = this.db.prepare(`
390
+ SELECT * FROM dream_insights
391
+ WHERE type = ?
392
+ ORDER BY created_at DESC
393
+ LIMIT ?
394
+ `).all(type, limit);
395
+ return rows.map(row => this.rowToInsight(row));
396
+ }
397
+ /**
398
+ * Apply an insight (mark as applied)
399
+ */
400
+ async applyInsight(insightId, feedback) {
401
+ const now = Date.now();
402
+ this.db.prepare(`
403
+ UPDATE dream_insights
404
+ SET status = 'applied', applied_at = ?
405
+ WHERE id = ?
406
+ `).run(now, insightId);
407
+ this.emit('insight:applied', { insightId, feedback });
408
+ }
409
+ /**
410
+ * Dismiss an insight
411
+ */
412
+ dismissInsight(insightId, reason) {
413
+ this.db.prepare(`
414
+ UPDATE dream_insights
415
+ SET status = 'dismissed'
416
+ WHERE id = ?
417
+ `).run(insightId);
418
+ this.emit('insight:dismissed', { insightId, reason });
419
+ }
420
+ /**
421
+ * Record outcome of an applied insight
422
+ */
423
+ recordOutcome(insightId, success, feedback, improvement) {
424
+ const outcome = JSON.stringify({ success, feedback, improvementMeasured: improvement });
425
+ this.db.prepare(`
426
+ UPDATE dream_insights
427
+ SET outcome = ?, status = 'validated'
428
+ WHERE id = ?
429
+ `).run(outcome, insightId);
430
+ this.emit('insight:validated', { insightId, success, improvement });
431
+ }
432
+ /**
433
+ * Convert database row to DreamInsight
434
+ */
435
+ rowToInsight(row) {
436
+ return {
437
+ id: row.id,
438
+ type: row.type,
439
+ title: row.title,
440
+ description: row.description,
441
+ associatedConcepts: JSON.parse(row.associated_concepts),
442
+ noveltyScore: row.novelty_score,
443
+ confidenceScore: row.confidence_score,
444
+ actionable: row.actionable === 1,
445
+ suggestedAction: row.suggested_action || undefined,
446
+ targetAgentTypes: row.target_agent_types ? JSON.parse(row.target_agent_types) : undefined,
447
+ priority: row.priority,
448
+ status: row.status,
449
+ createdAt: new Date(row.created_at),
450
+ appliedAt: row.applied_at ? new Date(row.applied_at) : undefined,
451
+ outcome: row.outcome ? JSON.parse(row.outcome) : undefined,
452
+ };
453
+ }
454
+ /**
455
+ * Close database connection
456
+ */
457
+ close() {
458
+ this.db.close();
459
+ }
460
+ }
461
+ exports.InsightGenerator = InsightGenerator;
462
+ exports.default = InsightGenerator;
463
+ //# sourceMappingURL=InsightGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InsightGenerator.js","sourceRoot":"","sources":["../../../src/learning/dream/InsightGenerator.ts"],"names":[],"mappings":"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"}