agentic-qe 2.3.3 → 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 (162) hide show
  1. package/CHANGELOG.md +97 -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/cli/commands/dream/index.d.ts +50 -0
  8. package/dist/cli/commands/dream/index.d.ts.map +1 -0
  9. package/dist/cli/commands/dream/index.js +282 -0
  10. package/dist/cli/commands/dream/index.js.map +1 -0
  11. package/dist/cli/commands/learn/index.d.ts +31 -5
  12. package/dist/cli/commands/learn/index.d.ts.map +1 -1
  13. package/dist/cli/commands/learn/index.js +183 -50
  14. package/dist/cli/commands/learn/index.js.map +1 -1
  15. package/dist/cli/commands/transfer/index.d.ts +55 -0
  16. package/dist/cli/commands/transfer/index.d.ts.map +1 -0
  17. package/dist/cli/commands/transfer/index.js +317 -0
  18. package/dist/cli/commands/transfer/index.js.map +1 -0
  19. package/dist/cli/index.js +156 -3
  20. package/dist/cli/index.js.map +1 -1
  21. package/dist/cli/init/index.d.ts.map +1 -1
  22. package/dist/cli/init/index.js +12 -4
  23. package/dist/cli/init/index.js.map +1 -1
  24. package/dist/cli/init/learning-init.d.ts +39 -0
  25. package/dist/cli/init/learning-init.d.ts.map +1 -0
  26. package/dist/cli/init/learning-init.js +239 -0
  27. package/dist/cli/init/learning-init.js.map +1 -0
  28. package/dist/core/memory/HNSWVectorMemory.js +1 -1
  29. package/dist/learning/baselines/BaselineCollector.d.ts +178 -0
  30. package/dist/learning/baselines/BaselineCollector.d.ts.map +1 -0
  31. package/dist/learning/baselines/BaselineCollector.js +398 -0
  32. package/dist/learning/baselines/BaselineCollector.js.map +1 -0
  33. package/dist/learning/baselines/StandardTaskSuite.d.ts +88 -0
  34. package/dist/learning/baselines/StandardTaskSuite.d.ts.map +1 -0
  35. package/dist/learning/baselines/StandardTaskSuite.js +801 -0
  36. package/dist/learning/baselines/StandardTaskSuite.js.map +1 -0
  37. package/dist/learning/baselines/index.d.ts +10 -0
  38. package/dist/learning/baselines/index.d.ts.map +1 -0
  39. package/dist/learning/baselines/index.js +15 -0
  40. package/dist/learning/baselines/index.js.map +1 -0
  41. package/dist/learning/capture/ExecutionRecorder.d.ts +97 -0
  42. package/dist/learning/capture/ExecutionRecorder.d.ts.map +1 -0
  43. package/dist/learning/capture/ExecutionRecorder.js +195 -0
  44. package/dist/learning/capture/ExecutionRecorder.js.map +1 -0
  45. package/dist/learning/capture/ExperienceCapture.d.ts +177 -0
  46. package/dist/learning/capture/ExperienceCapture.d.ts.map +1 -0
  47. package/dist/learning/capture/ExperienceCapture.js +432 -0
  48. package/dist/learning/capture/ExperienceCapture.js.map +1 -0
  49. package/dist/learning/capture/index.d.ts +12 -0
  50. package/dist/learning/capture/index.d.ts.map +1 -0
  51. package/dist/learning/capture/index.js +17 -0
  52. package/dist/learning/capture/index.js.map +1 -0
  53. package/dist/learning/dashboard/MetricsDashboard.d.ts +63 -0
  54. package/dist/learning/dashboard/MetricsDashboard.d.ts.map +1 -0
  55. package/dist/learning/dashboard/MetricsDashboard.js +230 -0
  56. package/dist/learning/dashboard/MetricsDashboard.js.map +1 -0
  57. package/dist/learning/dashboard/index.d.ts +7 -0
  58. package/dist/learning/dashboard/index.d.ts.map +1 -0
  59. package/dist/learning/dashboard/index.js +23 -0
  60. package/dist/learning/dashboard/index.js.map +1 -0
  61. package/dist/learning/dream/ConceptGraph.d.ts +160 -0
  62. package/dist/learning/dream/ConceptGraph.d.ts.map +1 -0
  63. package/dist/learning/dream/ConceptGraph.js +445 -0
  64. package/dist/learning/dream/ConceptGraph.js.map +1 -0
  65. package/dist/learning/dream/DreamEngine.d.ts +150 -0
  66. package/dist/learning/dream/DreamEngine.d.ts.map +1 -0
  67. package/dist/learning/dream/DreamEngine.js +551 -0
  68. package/dist/learning/dream/DreamEngine.js.map +1 -0
  69. package/dist/learning/dream/InsightGenerator.d.ts +152 -0
  70. package/dist/learning/dream/InsightGenerator.d.ts.map +1 -0
  71. package/dist/learning/dream/InsightGenerator.js +463 -0
  72. package/dist/learning/dream/InsightGenerator.js.map +1 -0
  73. package/dist/learning/dream/SpreadingActivation.d.ts +138 -0
  74. package/dist/learning/dream/SpreadingActivation.d.ts.map +1 -0
  75. package/dist/learning/dream/SpreadingActivation.js +320 -0
  76. package/dist/learning/dream/SpreadingActivation.js.map +1 -0
  77. package/dist/learning/dream/index.d.ts +14 -0
  78. package/dist/learning/dream/index.d.ts.map +1 -0
  79. package/dist/learning/dream/index.js +22 -0
  80. package/dist/learning/dream/index.js.map +1 -0
  81. package/dist/learning/metrics/AlertManager.d.ts +107 -0
  82. package/dist/learning/metrics/AlertManager.d.ts.map +1 -0
  83. package/dist/learning/metrics/AlertManager.js +246 -0
  84. package/dist/learning/metrics/AlertManager.js.map +1 -0
  85. package/dist/learning/metrics/LearningMetrics.d.ts +184 -0
  86. package/dist/learning/metrics/LearningMetrics.d.ts.map +1 -0
  87. package/dist/learning/metrics/LearningMetrics.js +754 -0
  88. package/dist/learning/metrics/LearningMetrics.js.map +1 -0
  89. package/dist/learning/metrics/MetricsCollector.d.ts +108 -0
  90. package/dist/learning/metrics/MetricsCollector.d.ts.map +1 -0
  91. package/dist/learning/metrics/MetricsCollector.js +240 -0
  92. package/dist/learning/metrics/MetricsCollector.js.map +1 -0
  93. package/dist/learning/metrics/MetricsStore.d.ts +149 -0
  94. package/dist/learning/metrics/MetricsStore.d.ts.map +1 -0
  95. package/dist/learning/metrics/MetricsStore.js +502 -0
  96. package/dist/learning/metrics/MetricsStore.js.map +1 -0
  97. package/dist/learning/metrics/TrendAnalyzer.d.ts +85 -0
  98. package/dist/learning/metrics/TrendAnalyzer.d.ts.map +1 -0
  99. package/dist/learning/metrics/TrendAnalyzer.js +210 -0
  100. package/dist/learning/metrics/TrendAnalyzer.js.map +1 -0
  101. package/dist/learning/metrics/index.d.ts +13 -0
  102. package/dist/learning/metrics/index.d.ts.map +1 -0
  103. package/dist/learning/metrics/index.js +39 -0
  104. package/dist/learning/metrics/index.js.map +1 -0
  105. package/dist/learning/scheduler/IdleDetector.d.ts +126 -0
  106. package/dist/learning/scheduler/IdleDetector.d.ts.map +1 -0
  107. package/dist/learning/scheduler/IdleDetector.js +281 -0
  108. package/dist/learning/scheduler/IdleDetector.js.map +1 -0
  109. package/dist/learning/scheduler/SleepCycle.d.ts +150 -0
  110. package/dist/learning/scheduler/SleepCycle.d.ts.map +1 -0
  111. package/dist/learning/scheduler/SleepCycle.js +506 -0
  112. package/dist/learning/scheduler/SleepCycle.js.map +1 -0
  113. package/dist/learning/scheduler/SleepScheduler.d.ts +131 -0
  114. package/dist/learning/scheduler/SleepScheduler.d.ts.map +1 -0
  115. package/dist/learning/scheduler/SleepScheduler.js +299 -0
  116. package/dist/learning/scheduler/SleepScheduler.js.map +1 -0
  117. package/dist/learning/scheduler/TimeBasedTrigger.d.ts +108 -0
  118. package/dist/learning/scheduler/TimeBasedTrigger.d.ts.map +1 -0
  119. package/dist/learning/scheduler/TimeBasedTrigger.js +222 -0
  120. package/dist/learning/scheduler/TimeBasedTrigger.js.map +1 -0
  121. package/dist/learning/scheduler/index.d.ts +16 -0
  122. package/dist/learning/scheduler/index.d.ts.map +1 -0
  123. package/dist/learning/scheduler/index.js +23 -0
  124. package/dist/learning/scheduler/index.js.map +1 -0
  125. package/dist/learning/synthesis/PatternSynthesis.d.ts +162 -0
  126. package/dist/learning/synthesis/PatternSynthesis.d.ts.map +1 -0
  127. package/dist/learning/synthesis/PatternSynthesis.js +479 -0
  128. package/dist/learning/synthesis/PatternSynthesis.js.map +1 -0
  129. package/dist/learning/synthesis/index.d.ts +10 -0
  130. package/dist/learning/synthesis/index.d.ts.map +1 -0
  131. package/dist/learning/synthesis/index.js +14 -0
  132. package/dist/learning/synthesis/index.js.map +1 -0
  133. package/dist/learning/transfer/CompatibilityScorer.d.ts +115 -0
  134. package/dist/learning/transfer/CompatibilityScorer.d.ts.map +1 -0
  135. package/dist/learning/transfer/CompatibilityScorer.js +319 -0
  136. package/dist/learning/transfer/CompatibilityScorer.js.map +1 -0
  137. package/dist/learning/transfer/TransferProtocol.d.ts +172 -0
  138. package/dist/learning/transfer/TransferProtocol.d.ts.map +1 -0
  139. package/dist/learning/transfer/TransferProtocol.js +611 -0
  140. package/dist/learning/transfer/TransferProtocol.js.map +1 -0
  141. package/dist/learning/transfer/TransferPrototype.d.ts +93 -0
  142. package/dist/learning/transfer/TransferPrototype.d.ts.map +1 -0
  143. package/dist/learning/transfer/TransferPrototype.js +433 -0
  144. package/dist/learning/transfer/TransferPrototype.js.map +1 -0
  145. package/dist/learning/transfer/TransferValidator.d.ts +140 -0
  146. package/dist/learning/transfer/TransferValidator.d.ts.map +1 -0
  147. package/dist/learning/transfer/TransferValidator.js +413 -0
  148. package/dist/learning/transfer/TransferValidator.js.map +1 -0
  149. package/dist/learning/transfer/index.d.ts +14 -0
  150. package/dist/learning/transfer/index.d.ts.map +1 -0
  151. package/dist/learning/transfer/index.js +22 -0
  152. package/dist/learning/transfer/index.js.map +1 -0
  153. package/dist/mcp/handlers/test/test-generate-enhanced.d.ts +26 -2
  154. package/dist/mcp/handlers/test/test-generate-enhanced.d.ts.map +1 -1
  155. package/dist/mcp/handlers/test/test-generate-enhanced.js +159 -27
  156. package/dist/mcp/handlers/test/test-generate-enhanced.js.map +1 -1
  157. package/dist/mcp/server-instructions.d.ts +1 -1
  158. package/dist/mcp/server-instructions.js +1 -1
  159. package/dist/mcp/server.d.ts.map +1 -1
  160. package/dist/mcp/server.js +2 -1
  161. package/dist/mcp/server.js.map +1 -1
  162. package/package.json +5 -2
@@ -0,0 +1,551 @@
1
+ "use strict";
2
+ /**
3
+ * DreamEngine - Main orchestrator for dream-based pattern discovery
4
+ *
5
+ * Coordinates ConceptGraph, SpreadingActivation, and InsightGenerator
6
+ * to discover novel patterns through simulated "dreaming".
7
+ *
8
+ * Part of the Nightly-Learner Phase 2 implementation.
9
+ *
10
+ * @version 1.0.0
11
+ * @module src/learning/dream/DreamEngine
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.DreamEngine = 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 ConceptGraph_1 = require("./ConceptGraph");
55
+ const SpreadingActivation_1 = require("./SpreadingActivation");
56
+ const InsightGenerator_1 = require("./InsightGenerator");
57
+ const Logger_1 = require("../../utils/Logger");
58
+ const SecureRandom_1 = require("../../utils/SecureRandom");
59
+ /**
60
+ * DreamEngine orchestrates dream-based pattern discovery
61
+ *
62
+ * @example
63
+ * ```typescript
64
+ * const engine = new DreamEngine({ cycleDuration: 30000 }); // 30 second cycles for testing
65
+ * await engine.initialize();
66
+ *
67
+ * // Run a dream cycle
68
+ * const result = await engine.dream();
69
+ * console.log(`Generated ${result.insightsGenerated} insights`);
70
+ *
71
+ * // Get pending insights
72
+ * const insights = engine.getPendingInsights();
73
+ * ```
74
+ */
75
+ class DreamEngine extends events_1.EventEmitter {
76
+ constructor(config) {
77
+ super();
78
+ this.state = {
79
+ isRunning: false,
80
+ cyclesCompleted: 0,
81
+ totalInsightsGenerated: 0,
82
+ averageInsightsPerCycle: 0,
83
+ };
84
+ this.logger = Logger_1.Logger.getInstance();
85
+ this.config = {
86
+ dbPath: config?.dbPath || path.join(process.cwd(), '.agentic-qe', 'memory.db'),
87
+ cycleDuration: config?.cycleDuration ?? 20 * 60 * 1000, // 20 minutes
88
+ targetInsights: config?.targetInsights ?? 5,
89
+ noveltyThreshold: config?.noveltyThreshold ?? 0.5,
90
+ dreamNoise: config?.dreamNoise ?? 0.2,
91
+ autoLoadPatterns: config?.autoLoadPatterns ?? true,
92
+ debug: config?.debug ?? false,
93
+ };
94
+ this.db = new better_sqlite3_1.default(this.config.dbPath);
95
+ // Initialize components
96
+ this.graph = new ConceptGraph_1.ConceptGraph({
97
+ dbPath: this.config.dbPath,
98
+ debug: this.config.debug,
99
+ });
100
+ this.activation = new SpreadingActivation_1.SpreadingActivation(this.graph, {
101
+ noise: this.config.dreamNoise,
102
+ debug: this.config.debug,
103
+ });
104
+ this.generator = new InsightGenerator_1.InsightGenerator(this.graph, {
105
+ dbPath: this.config.dbPath,
106
+ noveltyThreshold: this.config.noveltyThreshold,
107
+ debug: this.config.debug,
108
+ });
109
+ this.initializeSchema();
110
+ }
111
+ /**
112
+ * Initialize the dream engine
113
+ */
114
+ async initialize() {
115
+ await this.graph.initialize();
116
+ if (this.config.autoLoadPatterns) {
117
+ await this.loadPatternsAsConcepts();
118
+ await this.loadExperiencesAsConcepts();
119
+ }
120
+ this.logger.info('[DreamEngine] Initialized', {
121
+ concepts: this.graph.getStats().nodeCount,
122
+ cycleDuration: this.config.cycleDuration,
123
+ });
124
+ }
125
+ /**
126
+ * Initialize database schema for dream cycles
127
+ */
128
+ initializeSchema() {
129
+ this.db.exec(`
130
+ CREATE TABLE IF NOT EXISTS dream_cycles (
131
+ id TEXT PRIMARY KEY,
132
+ start_time INTEGER NOT NULL,
133
+ end_time INTEGER,
134
+ duration INTEGER,
135
+ concepts_processed INTEGER,
136
+ associations_found INTEGER,
137
+ insights_generated INTEGER,
138
+ status TEXT NOT NULL,
139
+ error TEXT,
140
+ created_at INTEGER NOT NULL
141
+ );
142
+
143
+ CREATE INDEX IF NOT EXISTS idx_dream_cycle_status ON dream_cycles(status);
144
+ CREATE INDEX IF NOT EXISTS idx_dream_cycle_time ON dream_cycles(start_time);
145
+ `);
146
+ }
147
+ /**
148
+ * Load existing patterns as concepts
149
+ */
150
+ async loadPatternsAsConcepts() {
151
+ try {
152
+ const patterns = this.db.prepare(`
153
+ SELECT id, content, metadata, created_at
154
+ FROM patterns
155
+ LIMIT 500
156
+ `).all();
157
+ this.logger.info('[DreamEngine] Loading patterns as concepts', { count: patterns.length });
158
+ for (const pattern of patterns) {
159
+ const metadata = pattern.metadata ? JSON.parse(pattern.metadata) : {};
160
+ await this.graph.addConcept({
161
+ id: `pattern-${pattern.id}`,
162
+ type: 'pattern',
163
+ content: pattern.content || `Pattern ${pattern.id}`,
164
+ metadata: {
165
+ originalId: pattern.id,
166
+ source: 'patterns_table',
167
+ ...metadata,
168
+ },
169
+ });
170
+ }
171
+ // Also load from synthesized_patterns
172
+ const synthesized = this.db.prepare(`
173
+ SELECT id, description, type, conditions, actions, confidence, agent_types, task_types
174
+ FROM synthesized_patterns
175
+ LIMIT 500
176
+ `).all();
177
+ for (const sp of synthesized) {
178
+ const type = this.mapPatternType(sp.type);
179
+ await this.graph.addConcept({
180
+ id: `synth-${sp.id}`,
181
+ type,
182
+ content: sp.description || `Synthesized pattern: ${sp.type}`,
183
+ metadata: {
184
+ originalId: sp.id,
185
+ source: 'synthesized_patterns',
186
+ patternType: sp.type,
187
+ conditions: sp.conditions ? JSON.parse(sp.conditions) : [],
188
+ actions: sp.actions ? JSON.parse(sp.actions) : [],
189
+ confidence: sp.confidence,
190
+ agentTypes: sp.agent_types ? JSON.parse(sp.agent_types) : [],
191
+ taskTypes: sp.task_types ? JSON.parse(sp.task_types) : [],
192
+ },
193
+ });
194
+ }
195
+ this.logger.info('[DreamEngine] Loaded patterns as concepts', {
196
+ patterns: patterns.length,
197
+ synthesized: synthesized.length,
198
+ total: this.graph.getStats().nodeCount,
199
+ });
200
+ }
201
+ catch (error) {
202
+ // Tables might not exist yet
203
+ if (this.config.debug) {
204
+ this.logger.debug('[DreamEngine] Could not load patterns', { error });
205
+ }
206
+ }
207
+ }
208
+ /**
209
+ * Load captured experiences as concepts for dream processing
210
+ * This connects real agent execution data to the concept graph
211
+ */
212
+ async loadExperiencesAsConcepts() {
213
+ try {
214
+ // Check if table exists
215
+ const tableExists = this.db.prepare(`
216
+ SELECT name FROM sqlite_master
217
+ WHERE type='table' AND name='captured_experiences'
218
+ `).get();
219
+ if (!tableExists) {
220
+ if (this.config.debug) {
221
+ this.logger.debug('[DreamEngine] captured_experiences table does not exist yet');
222
+ }
223
+ return;
224
+ }
225
+ const experiences = this.db.prepare(`
226
+ SELECT id, agent_id, agent_type, task_type, execution, context, outcome, created_at
227
+ FROM captured_experiences
228
+ WHERE processed = 0 OR created_at > ?
229
+ ORDER BY created_at DESC
230
+ LIMIT 500
231
+ `).all(Date.now() - 7 * 24 * 60 * 60 * 1000); // Last 7 days
232
+ this.logger.info('[DreamEngine] Loading experiences as concepts', { count: experiences.length });
233
+ for (const exp of experiences) {
234
+ const execution = JSON.parse(exp.execution);
235
+ const context = JSON.parse(exp.context);
236
+ const outcome = JSON.parse(exp.outcome);
237
+ // Create concept for the agent execution
238
+ const executionConcept = execution.success ? 'outcome' : 'error';
239
+ await this.graph.addConcept({
240
+ id: `exp-${exp.id}`,
241
+ type: executionConcept,
242
+ content: this.buildExperienceContent(exp, execution, context, outcome),
243
+ metadata: {
244
+ source: 'captured_experiences',
245
+ agentId: exp.agent_id,
246
+ agentType: exp.agent_type,
247
+ taskType: exp.task_type,
248
+ success: execution.success,
249
+ duration: execution.duration,
250
+ qualityScore: outcome.quality_score,
251
+ patternsUsed: context.patterns_used || [],
252
+ decisionsMode: context.decisions_made || [],
253
+ errorsEncountered: context.errors_encountered || [],
254
+ capturedAt: exp.created_at,
255
+ },
256
+ });
257
+ // Also create concepts for patterns used in this execution
258
+ if (context.patterns_used && context.patterns_used.length > 0) {
259
+ for (const patternId of context.patterns_used) {
260
+ const patternConceptId = `exp-pattern-${patternId}-${exp.id.substring(0, 8)}`;
261
+ // Check if concept already exists to avoid duplicates
262
+ const existingConcept = this.graph.getConcept(patternConceptId);
263
+ if (!existingConcept) {
264
+ await this.graph.addConcept({
265
+ id: patternConceptId,
266
+ type: 'pattern',
267
+ content: `Pattern ${patternId} used by ${exp.agent_type} agent`,
268
+ metadata: {
269
+ source: 'experience_pattern',
270
+ patternId,
271
+ agentType: exp.agent_type,
272
+ taskType: exp.task_type,
273
+ success: execution.success,
274
+ },
275
+ });
276
+ // Create edge between experience and pattern concept
277
+ this.graph.addEdge({
278
+ source: `exp-${exp.id}`,
279
+ target: patternConceptId,
280
+ weight: execution.success ? 0.8 : 0.3, // Higher weight for successful patterns
281
+ type: 'uses_pattern',
282
+ });
283
+ }
284
+ }
285
+ }
286
+ // Create concepts for decisions made
287
+ if (context.decisions_made && context.decisions_made.length > 0) {
288
+ for (const decision of context.decisions_made) {
289
+ const decisionConceptId = `exp-decision-${SecureRandom_1.SecureRandom.randomString(8, 'alphanumeric')}`;
290
+ await this.graph.addConcept({
291
+ id: decisionConceptId,
292
+ type: 'technique',
293
+ content: `Decision: ${decision}`,
294
+ metadata: {
295
+ source: 'experience_decision',
296
+ decision,
297
+ agentType: exp.agent_type,
298
+ taskType: exp.task_type,
299
+ success: execution.success,
300
+ },
301
+ });
302
+ // Link decision to experience
303
+ this.graph.addEdge({
304
+ source: `exp-${exp.id}`,
305
+ target: decisionConceptId,
306
+ weight: execution.success ? 0.7 : 0.4,
307
+ type: 'made_decision',
308
+ });
309
+ }
310
+ }
311
+ // Create concepts for errors encountered (learning from failures)
312
+ if (context.errors_encountered && context.errors_encountered.length > 0) {
313
+ for (const error of context.errors_encountered) {
314
+ const errorConceptId = `exp-error-${SecureRandom_1.SecureRandom.randomString(8, 'alphanumeric')}`;
315
+ await this.graph.addConcept({
316
+ id: errorConceptId,
317
+ type: 'error',
318
+ content: `Error: ${error}`,
319
+ metadata: {
320
+ source: 'experience_error',
321
+ error,
322
+ agentType: exp.agent_type,
323
+ taskType: exp.task_type,
324
+ },
325
+ });
326
+ // Link error to experience
327
+ this.graph.addEdge({
328
+ source: `exp-${exp.id}`,
329
+ target: errorConceptId,
330
+ weight: 0.9, // High weight for error associations
331
+ type: 'encountered_error',
332
+ });
333
+ }
334
+ }
335
+ }
336
+ this.logger.info('[DreamEngine] Loaded experiences as concepts', {
337
+ experiences: experiences.length,
338
+ totalConcepts: this.graph.getStats().nodeCount,
339
+ });
340
+ }
341
+ catch (error) {
342
+ // Table might not exist yet or other issue
343
+ if (this.config.debug) {
344
+ this.logger.debug('[DreamEngine] Could not load experiences', { error });
345
+ }
346
+ }
347
+ }
348
+ /**
349
+ * Build descriptive content for an experience concept
350
+ */
351
+ buildExperienceContent(exp, execution, context, outcome) {
352
+ const status = execution.success ? 'successful' : 'failed';
353
+ const quality = outcome.quality_score >= 0.7 ? 'high-quality' :
354
+ outcome.quality_score >= 0.4 ? 'medium-quality' : 'low-quality';
355
+ let content = `${status} ${exp.agent_type} execution for ${exp.task_type}`;
356
+ if (context.patterns_used && context.patterns_used.length > 0) {
357
+ content += ` using ${context.patterns_used.length} pattern(s)`;
358
+ }
359
+ if (context.decisions_made && context.decisions_made.length > 0) {
360
+ content += ` with ${context.decisions_made.length} decision(s)`;
361
+ }
362
+ content += ` (${quality}, ${execution.duration}ms)`;
363
+ return content;
364
+ }
365
+ /**
366
+ * Map pattern type to concept type
367
+ */
368
+ mapPatternType(type) {
369
+ switch (type) {
370
+ case 'success_strategy':
371
+ case 'efficiency_optimization':
372
+ return 'technique';
373
+ case 'failure_avoidance':
374
+ return 'outcome';
375
+ default:
376
+ return 'pattern';
377
+ }
378
+ }
379
+ /**
380
+ * Run a dream cycle
381
+ */
382
+ async dream() {
383
+ if (this.state.isRunning) {
384
+ throw new Error('Dream cycle already in progress');
385
+ }
386
+ const cycleId = `dream-${Date.now()}-${SecureRandom_1.SecureRandom.randomString(6, 'alphanumeric')}`;
387
+ const startTime = new Date();
388
+ this.state.isRunning = true;
389
+ this.state.currentCycleId = cycleId;
390
+ this.abortController = new AbortController();
391
+ this.logger.info('[DreamEngine] Starting dream cycle', {
392
+ cycleId,
393
+ duration: this.config.cycleDuration,
394
+ concepts: this.graph.getStats().nodeCount,
395
+ });
396
+ this.emit('dream:start', { cycleId, startTime });
397
+ // Store cycle start
398
+ this.db.prepare(`
399
+ INSERT INTO dream_cycles (id, start_time, status, created_at)
400
+ VALUES (?, ?, 'running', ?)
401
+ `).run(cycleId, startTime.getTime(), startTime.getTime());
402
+ let result;
403
+ try {
404
+ // Run spreading activation dream
405
+ const dreamResult = await this.activation.dream(this.config.cycleDuration);
406
+ // Generate insights from associations
407
+ const insights = await this.generator.generateInsights(dreamResult.novelAssociations);
408
+ const endTime = new Date();
409
+ result = {
410
+ cycleId,
411
+ startTime,
412
+ endTime,
413
+ duration: endTime.getTime() - startTime.getTime(),
414
+ conceptsProcessed: this.graph.getStats().nodeCount,
415
+ associationsFound: dreamResult.associations.length,
416
+ insightsGenerated: insights.length,
417
+ insights,
418
+ dreamResult,
419
+ status: 'completed',
420
+ };
421
+ // Update state
422
+ this.state.cyclesCompleted++;
423
+ this.state.totalInsightsGenerated += insights.length;
424
+ this.state.lastCycleTime = endTime;
425
+ this.state.averageInsightsPerCycle =
426
+ this.state.totalInsightsGenerated / this.state.cyclesCompleted;
427
+ // Update database
428
+ this.db.prepare(`
429
+ UPDATE dream_cycles
430
+ SET end_time = ?, duration = ?, concepts_processed = ?,
431
+ associations_found = ?, insights_generated = ?, status = ?
432
+ WHERE id = ?
433
+ `).run(endTime.getTime(), result.duration, result.conceptsProcessed, result.associationsFound, result.insightsGenerated, 'completed', cycleId);
434
+ this.logger.info('[DreamEngine] Dream cycle completed', {
435
+ cycleId,
436
+ duration: result.duration,
437
+ associations: result.associationsFound,
438
+ insights: result.insightsGenerated,
439
+ });
440
+ this.emit('dream:complete', result);
441
+ }
442
+ catch (error) {
443
+ const endTime = new Date();
444
+ const errorMessage = error instanceof Error ? error.message : String(error);
445
+ result = {
446
+ cycleId,
447
+ startTime,
448
+ endTime,
449
+ duration: endTime.getTime() - startTime.getTime(),
450
+ conceptsProcessed: 0,
451
+ associationsFound: 0,
452
+ insightsGenerated: 0,
453
+ insights: [],
454
+ dreamResult: {
455
+ duration: 0,
456
+ associations: [],
457
+ novelAssociations: [],
458
+ randomActivations: 0,
459
+ averageNovelty: 0,
460
+ },
461
+ status: 'failed',
462
+ error: errorMessage,
463
+ };
464
+ this.db.prepare(`
465
+ UPDATE dream_cycles
466
+ SET end_time = ?, duration = ?, status = ?, error = ?
467
+ WHERE id = ?
468
+ `).run(endTime.getTime(), result.duration, 'failed', errorMessage, cycleId);
469
+ this.logger.error('[DreamEngine] Dream cycle failed', { cycleId, error: errorMessage });
470
+ this.emit('dream:error', { cycleId, error: errorMessage });
471
+ }
472
+ finally {
473
+ this.state.isRunning = false;
474
+ this.state.currentCycleId = undefined;
475
+ this.abortController = undefined;
476
+ }
477
+ return result;
478
+ }
479
+ /**
480
+ * Abort current dream cycle
481
+ */
482
+ abort() {
483
+ if (this.abortController) {
484
+ this.abortController.abort();
485
+ this.logger.info('[DreamEngine] Dream cycle aborted');
486
+ }
487
+ }
488
+ /**
489
+ * Add a concept to the graph
490
+ */
491
+ async addConcept(concept) {
492
+ return this.graph.addConcept(concept);
493
+ }
494
+ /**
495
+ * Get pending insights
496
+ */
497
+ getPendingInsights(limit = 10) {
498
+ return this.generator.getPendingInsights(limit);
499
+ }
500
+ /**
501
+ * Get insights by type
502
+ */
503
+ getInsightsByType(type, limit = 10) {
504
+ return this.generator.getInsightsByType(type, limit);
505
+ }
506
+ /**
507
+ * Apply an insight
508
+ */
509
+ async applyInsight(insightId, feedback) {
510
+ return this.generator.applyInsight(insightId, feedback);
511
+ }
512
+ /**
513
+ * Get engine state
514
+ */
515
+ getState() {
516
+ return { ...this.state };
517
+ }
518
+ /**
519
+ * Get graph statistics
520
+ */
521
+ getGraphStats() {
522
+ return this.graph.getStats();
523
+ }
524
+ /**
525
+ * Get recent dream cycles
526
+ */
527
+ getRecentCycles(limit = 10) {
528
+ return this.db.prepare(`
529
+ SELECT * FROM dream_cycles
530
+ ORDER BY start_time DESC
531
+ LIMIT ?
532
+ `).all(limit);
533
+ }
534
+ /**
535
+ * Reset activation levels
536
+ */
537
+ resetActivations() {
538
+ this.activation.resetActivations();
539
+ }
540
+ /**
541
+ * Close all connections
542
+ */
543
+ close() {
544
+ this.graph.close();
545
+ this.generator.close();
546
+ this.db.close();
547
+ }
548
+ }
549
+ exports.DreamEngine = DreamEngine;
550
+ exports.default = DreamEngine;
551
+ //# sourceMappingURL=DreamEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DreamEngine.js","sourceRoot":"","sources":["../../../src/learning/dream/DreamEngine.ts"],"names":[],"mappings":"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"}