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,432 @@
1
+ "use strict";
2
+ /**
3
+ * ExperienceCapture - Captures agent executions for learning
4
+ *
5
+ * Automatically captures agent execution data and stores it for later
6
+ * pattern synthesis during sleep cycles.
7
+ *
8
+ * Part of the Nightly-Learner Phase 1 implementation.
9
+ *
10
+ * @version 1.0.0
11
+ * @module src/learning/capture/ExperienceCapture
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.ExperienceCapture = 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 fs = __importStar(require("fs"));
55
+ const Logger_1 = require("../../utils/Logger");
56
+ const SecureRandom_1 = require("../../utils/SecureRandom");
57
+ /**
58
+ * ExperienceCapture captures and stores agent execution experiences
59
+ *
60
+ * @example
61
+ * ```typescript
62
+ * const capture = new ExperienceCapture({ bufferSize: 50 });
63
+ * await capture.start();
64
+ *
65
+ * // Capture an execution
66
+ * await capture.captureExecution({
67
+ * agentId: 'agent-123',
68
+ * agentType: 'test-generator',
69
+ * taskType: 'unit-test-generation',
70
+ * // ...
71
+ * });
72
+ * ```
73
+ */
74
+ class ExperienceCapture extends events_1.EventEmitter {
75
+ /**
76
+ * Get or create the shared ExperienceCapture instance
77
+ * Uses singleton pattern to ensure all agents share the same capture buffer
78
+ */
79
+ static async getSharedInstance(config) {
80
+ if (ExperienceCapture.instance && ExperienceCapture.instance.isRunning) {
81
+ return ExperienceCapture.instance;
82
+ }
83
+ // Handle concurrent initialization
84
+ if (ExperienceCapture.instancePromise) {
85
+ return ExperienceCapture.instancePromise;
86
+ }
87
+ ExperienceCapture.instancePromise = (async () => {
88
+ if (!ExperienceCapture.instance) {
89
+ ExperienceCapture.instance = new ExperienceCapture(config);
90
+ }
91
+ if (!ExperienceCapture.instance.isRunning) {
92
+ await ExperienceCapture.instance.start();
93
+ }
94
+ return ExperienceCapture.instance;
95
+ })();
96
+ const instance = await ExperienceCapture.instancePromise;
97
+ ExperienceCapture.instancePromise = null;
98
+ return instance;
99
+ }
100
+ /**
101
+ * Reset the shared instance (for testing)
102
+ */
103
+ static resetInstance() {
104
+ if (ExperienceCapture.instance) {
105
+ ExperienceCapture.instance.stop().catch(() => { });
106
+ ExperienceCapture.instance = null;
107
+ }
108
+ ExperienceCapture.instancePromise = null;
109
+ }
110
+ constructor(config) {
111
+ super();
112
+ this.buffer = [];
113
+ this.flushTimer = null;
114
+ this.isRunning = false;
115
+ // Stats tracking
116
+ this.totalCaptured = 0;
117
+ this.totalFlushed = 0;
118
+ this.lastFlush = null;
119
+ this.byAgentType = {};
120
+ this.byTaskType = {};
121
+ this.successCount = 0;
122
+ this.logger = Logger_1.Logger.getInstance();
123
+ this.config = {
124
+ dbPath: config?.dbPath || path.join(process.cwd(), '.agentic-qe', 'memory.db'),
125
+ bufferSize: config?.bufferSize ?? 100,
126
+ flushInterval: config?.flushInterval ?? 30000,
127
+ debug: config?.debug ?? false,
128
+ };
129
+ // Ensure the directory exists before opening the database
130
+ const dbDir = path.dirname(this.config.dbPath);
131
+ if (!fs.existsSync(dbDir)) {
132
+ fs.mkdirSync(dbDir, { recursive: true });
133
+ }
134
+ this.db = new better_sqlite3_1.default(this.config.dbPath);
135
+ this.initializeSchema();
136
+ }
137
+ /**
138
+ * Initialize database schema for experience storage
139
+ */
140
+ initializeSchema() {
141
+ this.db.exec(`
142
+ CREATE TABLE IF NOT EXISTS captured_experiences (
143
+ id TEXT PRIMARY KEY,
144
+ agent_id TEXT NOT NULL,
145
+ agent_type TEXT NOT NULL,
146
+ task_type TEXT NOT NULL,
147
+ execution TEXT NOT NULL,
148
+ context TEXT NOT NULL,
149
+ outcome TEXT NOT NULL,
150
+ embedding BLOB,
151
+ created_at INTEGER NOT NULL,
152
+ processed INTEGER DEFAULT 0
153
+ );
154
+
155
+ CREATE INDEX IF NOT EXISTS idx_exp_agent_type ON captured_experiences(agent_type);
156
+ CREATE INDEX IF NOT EXISTS idx_exp_task_type ON captured_experiences(task_type);
157
+ CREATE INDEX IF NOT EXISTS idx_exp_created_at ON captured_experiences(created_at);
158
+ CREATE INDEX IF NOT EXISTS idx_exp_processed ON captured_experiences(processed);
159
+ `);
160
+ }
161
+ /**
162
+ * Start capturing experiences
163
+ */
164
+ async start() {
165
+ if (this.isRunning) {
166
+ this.logger.warn('[ExperienceCapture] Already running');
167
+ return;
168
+ }
169
+ this.isRunning = true;
170
+ // Start periodic flush
171
+ this.flushTimer = setInterval(() => this.flush(), this.config.flushInterval);
172
+ this.logger.info('[ExperienceCapture] Started', {
173
+ bufferSize: this.config.bufferSize,
174
+ flushInterval: this.config.flushInterval,
175
+ });
176
+ this.emit('started');
177
+ }
178
+ /**
179
+ * Stop capturing and flush remaining buffer
180
+ */
181
+ async stop() {
182
+ if (!this.isRunning)
183
+ return;
184
+ this.isRunning = false;
185
+ if (this.flushTimer) {
186
+ clearInterval(this.flushTimer);
187
+ this.flushTimer = null;
188
+ }
189
+ // Final flush
190
+ await this.flush();
191
+ this.logger.info('[ExperienceCapture] Stopped', {
192
+ totalCaptured: this.totalCaptured,
193
+ totalFlushed: this.totalFlushed,
194
+ });
195
+ this.emit('stopped');
196
+ }
197
+ /**
198
+ * Capture an agent execution event
199
+ */
200
+ async captureExecution(event) {
201
+ if (!this.isRunning) {
202
+ throw new Error('ExperienceCapture not running');
203
+ }
204
+ const experience = await this.extractExperience(event);
205
+ this.buffer.push(experience);
206
+ // Update stats
207
+ this.totalCaptured++;
208
+ this.byAgentType[event.agentType] = (this.byAgentType[event.agentType] || 0) + 1;
209
+ this.byTaskType[event.taskType] = (this.byTaskType[event.taskType] || 0) + 1;
210
+ if (event.success)
211
+ this.successCount++;
212
+ if (this.config.debug) {
213
+ this.logger.debug('[ExperienceCapture] Captured', {
214
+ id: experience.id,
215
+ agentType: event.agentType,
216
+ taskType: event.taskType,
217
+ bufferSize: this.buffer.length,
218
+ });
219
+ }
220
+ this.emit('captured', experience);
221
+ // Auto-flush if buffer is full
222
+ if (this.buffer.length >= this.config.bufferSize) {
223
+ await this.flush();
224
+ }
225
+ return experience.id;
226
+ }
227
+ /**
228
+ * Flush buffer to database
229
+ */
230
+ async flush() {
231
+ if (this.buffer.length === 0)
232
+ return 0;
233
+ const experiences = [...this.buffer];
234
+ this.buffer = [];
235
+ const stmt = this.db.prepare(`
236
+ INSERT INTO captured_experiences
237
+ (id, agent_id, agent_type, task_type, execution, context, outcome, embedding, created_at, processed)
238
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, 0)
239
+ `);
240
+ const insertMany = this.db.transaction((exps) => {
241
+ for (const exp of exps) {
242
+ stmt.run(exp.id, exp.agentId, exp.agentType, exp.taskType, JSON.stringify(exp.execution), JSON.stringify(exp.context), JSON.stringify(exp.outcome), exp.embedding ? Buffer.from(new Float32Array(exp.embedding).buffer) : null, exp.timestamp.getTime());
243
+ }
244
+ return exps.length;
245
+ });
246
+ const flushed = insertMany(experiences);
247
+ this.totalFlushed += flushed;
248
+ this.lastFlush = new Date();
249
+ this.logger.info('[ExperienceCapture] Flushed', { count: flushed });
250
+ this.emit('flushed', { count: flushed, experiences });
251
+ return flushed;
252
+ }
253
+ /**
254
+ * Get unprocessed experiences for learning
255
+ */
256
+ getUnprocessedExperiences(limit = 100) {
257
+ const rows = this.db.prepare(`
258
+ SELECT * FROM captured_experiences
259
+ WHERE processed = 0
260
+ ORDER BY created_at ASC
261
+ LIMIT ?
262
+ `).all(limit);
263
+ return rows.map(row => this.rowToExperience(row));
264
+ }
265
+ /**
266
+ * Get experiences by agent type
267
+ */
268
+ getExperiencesByAgentType(agentType, limit = 100) {
269
+ const rows = this.db.prepare(`
270
+ SELECT * FROM captured_experiences
271
+ WHERE agent_type = ?
272
+ ORDER BY created_at DESC
273
+ LIMIT ?
274
+ `).all(agentType, limit);
275
+ return rows.map(row => this.rowToExperience(row));
276
+ }
277
+ /**
278
+ * Get recent experiences
279
+ */
280
+ getRecentExperiences(hours = 24, limit = 100) {
281
+ const since = Date.now() - hours * 60 * 60 * 1000;
282
+ const rows = this.db.prepare(`
283
+ SELECT * FROM captured_experiences
284
+ WHERE created_at >= ?
285
+ ORDER BY created_at DESC
286
+ LIMIT ?
287
+ `).all(since, limit);
288
+ return rows.map(row => this.rowToExperience(row));
289
+ }
290
+ /**
291
+ * Mark experiences as processed
292
+ */
293
+ markAsProcessed(ids) {
294
+ const stmt = this.db.prepare(`
295
+ UPDATE captured_experiences SET processed = 1 WHERE id = ?
296
+ `);
297
+ const updateMany = this.db.transaction((expIds) => {
298
+ for (const id of expIds) {
299
+ stmt.run(id);
300
+ }
301
+ });
302
+ updateMany(ids);
303
+ }
304
+ /**
305
+ * Get capture statistics
306
+ */
307
+ getStats() {
308
+ return {
309
+ totalCaptured: this.totalCaptured,
310
+ totalFlushed: this.totalFlushed,
311
+ bufferSize: this.buffer.length,
312
+ lastFlush: this.lastFlush,
313
+ byAgentType: { ...this.byAgentType },
314
+ byTaskType: { ...this.byTaskType },
315
+ successRate: this.totalCaptured > 0 ? this.successCount / this.totalCaptured : 0,
316
+ };
317
+ }
318
+ /**
319
+ * Extract a CapturedExperience from an execution event
320
+ */
321
+ async extractExperience(event) {
322
+ // Extract patterns and decisions from output
323
+ const patternsUsed = this.extractPatterns(event.output);
324
+ const decisionsMade = this.extractDecisions(event.output);
325
+ const errorsEncountered = event.error ? [event.error.message] : [];
326
+ // Calculate quality score
327
+ const qualityScore = this.calculateQualityScore(event);
328
+ return {
329
+ id: `exp-${Date.now()}-${SecureRandom_1.SecureRandom.randomString(8, 'alphanumeric')}`,
330
+ agentId: event.agentId,
331
+ agentType: event.agentType,
332
+ taskType: event.taskType,
333
+ execution: {
334
+ input: event.input,
335
+ output: event.output,
336
+ duration: event.duration,
337
+ success: event.success,
338
+ },
339
+ context: {
340
+ patterns_used: patternsUsed,
341
+ decisions_made: decisionsMade,
342
+ errors_encountered: errorsEncountered,
343
+ },
344
+ outcome: {
345
+ quality_score: qualityScore,
346
+ coverage_delta: event.metrics?.coverage_delta || 0,
347
+ },
348
+ timestamp: event.timestamp,
349
+ };
350
+ }
351
+ /**
352
+ * Extract pattern IDs from execution output
353
+ */
354
+ extractPatterns(output) {
355
+ const patterns = [];
356
+ // Look for pattern references in output
357
+ if (output.patterns && Array.isArray(output.patterns)) {
358
+ patterns.push(...output.patterns.map((p) => p.id || String(p)));
359
+ }
360
+ if (output.patternsApplied && Array.isArray(output.patternsApplied)) {
361
+ patterns.push(...output.patternsApplied);
362
+ }
363
+ return patterns;
364
+ }
365
+ /**
366
+ * Extract decision points from execution output
367
+ */
368
+ extractDecisions(output) {
369
+ const decisions = [];
370
+ // Look for decision references in output
371
+ if (output.decisions && Array.isArray(output.decisions)) {
372
+ decisions.push(...output.decisions.map(String));
373
+ }
374
+ if (output.strategy) {
375
+ decisions.push(`strategy:${output.strategy}`);
376
+ }
377
+ if (output.framework) {
378
+ decisions.push(`framework:${output.framework}`);
379
+ }
380
+ return decisions;
381
+ }
382
+ /**
383
+ * Calculate a quality score for the execution
384
+ */
385
+ calculateQualityScore(event) {
386
+ let score = event.success ? 0.5 : 0.0;
387
+ // Bonus for metrics
388
+ if (event.metrics) {
389
+ if (event.metrics.coverage && event.metrics.coverage > 70) {
390
+ score += 0.2;
391
+ }
392
+ if (event.metrics.testsGenerated && event.metrics.testsGenerated > 5) {
393
+ score += 0.1;
394
+ }
395
+ if (event.metrics.duration && event.metrics.duration < 5000) {
396
+ score += 0.1; // Fast execution bonus
397
+ }
398
+ }
399
+ // Penalty for errors
400
+ if (event.error) {
401
+ score -= 0.2;
402
+ }
403
+ return Math.max(0, Math.min(1, score));
404
+ }
405
+ /**
406
+ * Convert database row to CapturedExperience
407
+ */
408
+ rowToExperience(row) {
409
+ return {
410
+ id: row.id,
411
+ agentId: row.agent_id,
412
+ agentType: row.agent_type,
413
+ taskType: row.task_type,
414
+ execution: JSON.parse(row.execution),
415
+ context: JSON.parse(row.context),
416
+ outcome: JSON.parse(row.outcome),
417
+ timestamp: new Date(row.created_at),
418
+ embedding: row.embedding ? Array.from(new Float32Array(row.embedding)) : undefined,
419
+ };
420
+ }
421
+ /**
422
+ * Close database connection
423
+ */
424
+ close() {
425
+ this.db.close();
426
+ }
427
+ }
428
+ exports.ExperienceCapture = ExperienceCapture;
429
+ ExperienceCapture.instance = null;
430
+ ExperienceCapture.instancePromise = null;
431
+ exports.default = ExperienceCapture;
432
+ //# sourceMappingURL=ExperienceCapture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExperienceCapture.js","sourceRoot":"","sources":["../../../src/learning/capture/ExperienceCapture.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Experience Capture Module
3
+ *
4
+ * Provides experience capture infrastructure for the Nightly-Learner system:
5
+ * - ExperienceCapture: Store agent execution experiences
6
+ * - ExecutionRecorder: Hook into agent execution pipeline
7
+ *
8
+ * @module src/learning/capture
9
+ */
10
+ export { ExperienceCapture, ExperienceCaptureConfig, CapturedExperience, AgentExecutionEvent, CaptureStats, } from './ExperienceCapture';
11
+ export { ExecutionRecorder, ExecutionRecorderConfig, RecordedExecution, } from './ExecutionRecorder';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/learning/capture/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,GACb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ /**
3
+ * Experience Capture Module
4
+ *
5
+ * Provides experience capture infrastructure for the Nightly-Learner system:
6
+ * - ExperienceCapture: Store agent execution experiences
7
+ * - ExecutionRecorder: Hook into agent execution pipeline
8
+ *
9
+ * @module src/learning/capture
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ExecutionRecorder = exports.ExperienceCapture = void 0;
13
+ var ExperienceCapture_1 = require("./ExperienceCapture");
14
+ Object.defineProperty(exports, "ExperienceCapture", { enumerable: true, get: function () { return ExperienceCapture_1.ExperienceCapture; } });
15
+ var ExecutionRecorder_1 = require("./ExecutionRecorder");
16
+ Object.defineProperty(exports, "ExecutionRecorder", { enumerable: true, get: function () { return ExecutionRecorder_1.ExecutionRecorder; } });
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/learning/capture/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH,yDAM6B;AAL3B,sHAAA,iBAAiB,OAAA;AAOnB,yDAI6B;AAH3B,sHAAA,iBAAiB,OAAA"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * MetricsDashboard - Phase 3 Dashboard Utilities
3
+ *
4
+ * Provides utilities for displaying metrics in CLI dashboard format.
5
+ */
6
+ import { AggregatedMetrics } from '../metrics/MetricsCollector';
7
+ import { TrendAnalysis } from '../metrics/TrendAnalyzer';
8
+ import { Alert } from '../metrics/AlertManager';
9
+ /**
10
+ * Dashboard display options
11
+ */
12
+ export interface DashboardOptions {
13
+ detailed?: boolean;
14
+ format?: 'table' | 'json';
15
+ showTrends?: boolean;
16
+ showAlerts?: boolean;
17
+ }
18
+ /**
19
+ * MetricsDashboard - Formats and displays learning metrics
20
+ */
21
+ export declare class MetricsDashboard {
22
+ /**
23
+ * Display complete metrics dashboard
24
+ */
25
+ static displayMetrics(metrics: AggregatedMetrics, options?: DashboardOptions): void;
26
+ /**
27
+ * Display trend analysis
28
+ */
29
+ static displayTrends(trends: TrendAnalysis[], options?: DashboardOptions): void;
30
+ /**
31
+ * Display alerts
32
+ */
33
+ static displayAlerts(alerts: Alert[], options?: DashboardOptions): void;
34
+ /**
35
+ * Display a metrics section
36
+ */
37
+ private static displaySection;
38
+ /**
39
+ * Display trend section
40
+ */
41
+ private static displayTrendSection;
42
+ /**
43
+ * Format percentage
44
+ */
45
+ private static formatPercentage;
46
+ /**
47
+ * Get color for trend direction
48
+ */
49
+ private static getTrendColor;
50
+ /**
51
+ * Get color for alert severity
52
+ */
53
+ private static getAlertColor;
54
+ /**
55
+ * Format metric name for display
56
+ */
57
+ private static formatMetricName;
58
+ /**
59
+ * Create summary table
60
+ */
61
+ static createSummaryTable(metrics: AggregatedMetrics): string;
62
+ }
63
+ //# sourceMappingURL=MetricsDashboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MetricsDashboard.d.ts","sourceRoot":"","sources":["../../../src/learning/dashboard/MetricsDashboard.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAkB,aAAa,EAAiB,MAAM,0BAA0B,CAAC;AACxF,OAAO,EAAE,KAAK,EAA+B,MAAM,yBAAyB,CAAC;AAE7E;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,GAAE,gBAAqB,GAAG,IAAI;IAoDvF;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,OAAO,GAAE,gBAAqB,GAAG,IAAI;IAwBnF;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,GAAE,gBAAqB,GAAG,IAAI;IA0B3E;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAU7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAoBlC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAgB/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAW5B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAW5B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAO/B;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM;CA2C9D"}