agentic-qe 3.3.1 → 3.3.2

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 (72) hide show
  1. package/package.json +1 -1
  2. package/v3/CHANGELOG.md +46 -0
  3. package/v3/dist/cli/bundle.js +3675 -342
  4. package/v3/dist/coordination/queen-coordinator.d.ts +13 -1
  5. package/v3/dist/coordination/queen-coordinator.d.ts.map +1 -1
  6. package/v3/dist/coordination/queen-coordinator.js +91 -3
  7. package/v3/dist/coordination/queen-coordinator.js.map +1 -1
  8. package/v3/dist/domains/coverage-analysis/plugin.d.ts +6 -1
  9. package/v3/dist/domains/coverage-analysis/plugin.d.ts.map +1 -1
  10. package/v3/dist/domains/coverage-analysis/plugin.js +73 -0
  11. package/v3/dist/domains/coverage-analysis/plugin.js.map +1 -1
  12. package/v3/dist/domains/domain-interface.d.ts +39 -2
  13. package/v3/dist/domains/domain-interface.d.ts.map +1 -1
  14. package/v3/dist/domains/domain-interface.js +99 -0
  15. package/v3/dist/domains/domain-interface.js.map +1 -1
  16. package/v3/dist/domains/learning-optimization/coordinator.d.ts +83 -0
  17. package/v3/dist/domains/learning-optimization/coordinator.d.ts.map +1 -1
  18. package/v3/dist/domains/learning-optimization/coordinator.js +174 -0
  19. package/v3/dist/domains/learning-optimization/coordinator.js.map +1 -1
  20. package/v3/dist/domains/learning-optimization/interfaces.d.ts +14 -0
  21. package/v3/dist/domains/learning-optimization/interfaces.d.ts.map +1 -1
  22. package/v3/dist/domains/quality-assessment/coordinator.d.ts +23 -0
  23. package/v3/dist/domains/quality-assessment/coordinator.d.ts.map +1 -1
  24. package/v3/dist/domains/quality-assessment/coordinator.js +139 -1
  25. package/v3/dist/domains/quality-assessment/coordinator.js.map +1 -1
  26. package/v3/dist/domains/quality-assessment/plugin.d.ts +6 -1
  27. package/v3/dist/domains/quality-assessment/plugin.d.ts.map +1 -1
  28. package/v3/dist/domains/quality-assessment/plugin.js +67 -0
  29. package/v3/dist/domains/quality-assessment/plugin.js.map +1 -1
  30. package/v3/dist/domains/test-execution/plugin.d.ts +6 -1
  31. package/v3/dist/domains/test-execution/plugin.d.ts.map +1 -1
  32. package/v3/dist/domains/test-execution/plugin.js +77 -0
  33. package/v3/dist/domains/test-execution/plugin.js.map +1 -1
  34. package/v3/dist/domains/test-generation/coordinator.d.ts +40 -0
  35. package/v3/dist/domains/test-generation/coordinator.d.ts.map +1 -1
  36. package/v3/dist/domains/test-generation/coordinator.js +184 -1
  37. package/v3/dist/domains/test-generation/coordinator.js.map +1 -1
  38. package/v3/dist/domains/test-generation/plugin.d.ts +6 -1
  39. package/v3/dist/domains/test-generation/plugin.d.ts.map +1 -1
  40. package/v3/dist/domains/test-generation/plugin.js +84 -0
  41. package/v3/dist/domains/test-generation/plugin.js.map +1 -1
  42. package/v3/dist/kernel/interfaces.d.ts +54 -1
  43. package/v3/dist/kernel/interfaces.d.ts.map +1 -1
  44. package/v3/dist/learning/dream/dream-scheduler.d.ts +302 -0
  45. package/v3/dist/learning/dream/dream-scheduler.d.ts.map +1 -0
  46. package/v3/dist/learning/dream/dream-scheduler.js +551 -0
  47. package/v3/dist/learning/dream/dream-scheduler.js.map +1 -0
  48. package/v3/dist/learning/dream/index.d.ts +1 -0
  49. package/v3/dist/learning/dream/index.d.ts.map +1 -1
  50. package/v3/dist/learning/dream/index.js +4 -0
  51. package/v3/dist/learning/dream/index.js.map +1 -1
  52. package/v3/dist/mcp/bundle.js +66391 -60131
  53. package/v3/dist/mcp/handlers/core-handlers.d.ts.map +1 -1
  54. package/v3/dist/mcp/handlers/core-handlers.js +16 -2
  55. package/v3/dist/mcp/handlers/core-handlers.js.map +1 -1
  56. package/v3/dist/mcp/handlers/task-handlers.d.ts +1 -0
  57. package/v3/dist/mcp/handlers/task-handlers.d.ts.map +1 -1
  58. package/v3/dist/mcp/handlers/task-handlers.js +46 -12
  59. package/v3/dist/mcp/handlers/task-handlers.js.map +1 -1
  60. package/v3/dist/mcp/services/reasoning-bank-service.d.ts +87 -13
  61. package/v3/dist/mcp/services/reasoning-bank-service.d.ts.map +1 -1
  62. package/v3/dist/mcp/services/reasoning-bank-service.js +291 -31
  63. package/v3/dist/mcp/services/reasoning-bank-service.js.map +1 -1
  64. package/v3/dist/routing/qe-agent-registry.d.ts +27 -0
  65. package/v3/dist/routing/qe-agent-registry.d.ts.map +1 -1
  66. package/v3/dist/routing/qe-agent-registry.js +96 -0
  67. package/v3/dist/routing/qe-agent-registry.js.map +1 -1
  68. package/v3/dist/shared/events/domain-events.d.ts +27 -0
  69. package/v3/dist/shared/events/domain-events.d.ts.map +1 -1
  70. package/v3/dist/shared/events/domain-events.js +1 -0
  71. package/v3/dist/shared/events/domain-events.js.map +1 -1
  72. package/v3/package.json +1 -1
@@ -2,11 +2,18 @@
2
2
  * Agentic QE v3 - ReasoningBank Service
3
3
  * ADR-051: Provides ReasoningBank integration for MCP task handlers
4
4
  *
5
- * This service bridges the RealQEReasoningBank with MCP task execution,
6
- * enabling learning from task outcomes and intelligent routing.
5
+ * This service bridges the EnhancedReasoningBankAdapter with MCP task execution,
6
+ * enabling learning from task outcomes, intelligent routing, and trajectory tracking.
7
+ *
8
+ * INTEGRATION FIX: Now uses EnhancedReasoningBankAdapter for full learning pipeline:
9
+ * - Trajectory tracking during task execution
10
+ * - Experience-guided routing decisions
11
+ * - Pattern evolution and consolidation
12
+ * - Synchronous learning (no fire-and-forget)
7
13
  */
8
- import { createRealQEReasoningBank, } from '../../learning/real-qe-reasoning-bank';
9
- import { getPatternLoader } from '../../integrations/agentic-flow/pattern-loader';
14
+ import { createEnhancedReasoningBank, } from '../../integrations/agentic-flow/reasoning-bank/index.js';
15
+ import { getPatternLoader } from '../../integrations/agentic-flow/pattern-loader.js';
16
+ import { updateAgentPerformance } from '../../routing/qe-agent-registry.js';
10
17
  /**
11
18
  * Default configuration
12
19
  */
@@ -14,6 +21,9 @@ export const DEFAULT_SERVICE_CONFIG = {
14
21
  enableLearning: true,
15
22
  enableRouting: true,
16
23
  enableGuidance: true,
24
+ enableTrajectories: true,
25
+ enableExperienceReplay: true,
26
+ autoStoreExperiences: true,
17
27
  minQualityThreshold: 0.6,
18
28
  };
19
29
  // ============================================================================
@@ -23,13 +33,17 @@ export const DEFAULT_SERVICE_CONFIG = {
23
33
  * ReasoningBank Service
24
34
  *
25
35
  * Provides learning and routing capabilities for MCP task execution.
26
- * Integrates with RealQEReasoningBank for HNSW-indexed pattern storage.
36
+ * Uses EnhancedReasoningBankAdapter for full learning pipeline including:
37
+ * - Trajectory tracking
38
+ * - Experience replay
39
+ * - Pattern evolution
40
+ * - HNSW-indexed pattern storage
27
41
  */
28
42
  export class ReasoningBankService {
29
43
  static instance = null;
30
44
  static initPromise = null;
31
45
  config;
32
- reasoningBank;
46
+ enhancedAdapter;
33
47
  disposed = false;
34
48
  // ADR-051: Pattern loading status
35
49
  patternsLoaded = false;
@@ -40,9 +54,11 @@ export class ReasoningBankService {
40
54
  failedTasks = 0;
41
55
  patternsStored = 0;
42
56
  routingRequests = 0;
43
- constructor(config, reasoningBank) {
57
+ // INTEGRATION FIX: Track active trajectories per task
58
+ activeTrajectories = new Map();
59
+ constructor(config, enhancedAdapter) {
44
60
  this.config = config;
45
- this.reasoningBank = reasoningBank;
61
+ this.enhancedAdapter = enhancedAdapter;
46
62
  }
47
63
  /**
48
64
  * Get or create the singleton service instance
@@ -71,16 +87,21 @@ export class ReasoningBankService {
71
87
  ...DEFAULT_SERVICE_CONFIG,
72
88
  ...config,
73
89
  };
74
- const reasoningBank = createRealQEReasoningBank({
75
- enableLearning: fullConfig.enableLearning,
76
- enableRouting: fullConfig.enableRouting,
77
- enableGuidance: fullConfig.enableGuidance,
90
+ // INTEGRATION FIX: Use EnhancedReasoningBankAdapter instead of RealQEReasoningBank
91
+ const enhancedAdapter = createEnhancedReasoningBank({
92
+ enableTrajectories: fullConfig.enableTrajectories,
93
+ enableExperienceReplay: fullConfig.enableExperienceReplay,
94
+ enablePatternEvolution: true,
95
+ autoStoreExperiences: fullConfig.autoStoreExperiences,
96
+ autoConsolidate: true,
78
97
  });
79
- await reasoningBank.initialize();
80
- const service = new ReasoningBankService(fullConfig, reasoningBank);
98
+ await enhancedAdapter.initialize();
99
+ const service = new ReasoningBankService(fullConfig, enhancedAdapter);
81
100
  // ADR-051: Load quality thresholds from PatternLoader
82
101
  await service.loadPatternsFromLoader();
83
- console.error('[ReasoningBankService] Initialized with HNSW index');
102
+ // INTEGRATION FIX: Seed initial patterns if none exist
103
+ await service.seedInitialPatternsIfNeeded();
104
+ console.error('[ReasoningBankService] Initialized with EnhancedReasoningBankAdapter (trajectory + experience + evolution)');
84
105
  return service;
85
106
  }
86
107
  /**
@@ -108,6 +129,102 @@ export class ReasoningBankService {
108
129
  }
109
130
  this.patternsLoaded = false;
110
131
  }
132
+ /**
133
+ * INTEGRATION FIX: Seed initial QE patterns for bootstrap
134
+ * This ensures the system has baseline data to work with
135
+ */
136
+ async seedInitialPatternsIfNeeded() {
137
+ try {
138
+ const stats = await this.enhancedAdapter.getStats();
139
+ if (stats.reasoningBank.totalPatterns > 0) {
140
+ console.error(`[ReasoningBankService] Found ${stats.reasoningBank.totalPatterns} existing patterns, skipping seed`);
141
+ return;
142
+ }
143
+ console.error('[ReasoningBankService] Seeding initial QE patterns...');
144
+ // Helper to create template variables
145
+ const makeVar = (name, type = 'string', required = false) => ({
146
+ name,
147
+ type,
148
+ required,
149
+ description: `${name} parameter`,
150
+ });
151
+ const seedPatterns = [
152
+ {
153
+ patternType: 'test-template',
154
+ name: 'unit-test-generation',
155
+ description: 'Generate comprehensive unit tests for TypeScript/JavaScript modules',
156
+ domain: 'test-generation',
157
+ template: {
158
+ type: 'workflow',
159
+ content: 'Analyze module exports, identify edge cases, generate Jest/Vitest tests with proper mocking',
160
+ variables: [makeVar('modulePath'), makeVar('framework')],
161
+ },
162
+ context: { tags: ['unit', 'typescript', 'jest', 'vitest'] },
163
+ },
164
+ {
165
+ patternType: 'coverage-strategy',
166
+ name: 'coverage-gap-analysis',
167
+ description: 'Identify untested code paths and recommend targeted tests',
168
+ domain: 'coverage-analysis',
169
+ template: {
170
+ type: 'workflow',
171
+ content: 'Parse coverage report, identify uncovered branches, prioritize by risk, generate recommendations',
172
+ variables: [makeVar('coveragePath'), makeVar('threshold', 'number')],
173
+ },
174
+ context: { tags: ['coverage', 'analysis', 'risk'] },
175
+ },
176
+ {
177
+ patternType: 'test-template',
178
+ name: 'integration-test-generation',
179
+ description: 'Generate integration tests for API endpoints and service interactions',
180
+ domain: 'test-generation',
181
+ template: {
182
+ type: 'workflow',
183
+ content: 'Identify API contracts, generate request/response tests, validate error handling',
184
+ variables: [makeVar('apiPath'), makeVar('framework')],
185
+ },
186
+ context: { tags: ['integration', 'api', 'contract'] },
187
+ },
188
+ {
189
+ patternType: 'flaky-fix',
190
+ name: 'flaky-test-remediation',
191
+ description: 'Detect and fix flaky tests through pattern analysis',
192
+ domain: 'test-execution',
193
+ template: {
194
+ type: 'workflow',
195
+ content: 'Analyze test history, identify timing/race conditions, apply stabilization patterns',
196
+ variables: [makeVar('testPath'), makeVar('retryCount', 'number')],
197
+ },
198
+ context: { tags: ['flaky', 'stability', 'retry'] },
199
+ },
200
+ {
201
+ patternType: 'error-handling',
202
+ name: 'security-vulnerability-scan',
203
+ description: 'Scan code for security vulnerabilities using OWASP patterns',
204
+ domain: 'security-compliance',
205
+ template: {
206
+ type: 'workflow',
207
+ content: 'Run SAST analysis, check for injection risks, validate authentication/authorization',
208
+ variables: [makeVar('targetPath'), makeVar('severity')],
209
+ },
210
+ context: { tags: ['security', 'owasp', 'sast'] },
211
+ },
212
+ ];
213
+ for (const pattern of seedPatterns) {
214
+ try {
215
+ await this.enhancedAdapter.storePattern(pattern);
216
+ this.patternsStored++;
217
+ }
218
+ catch (err) {
219
+ console.error(`[ReasoningBankService] Failed to seed pattern ${pattern.name}:`, err);
220
+ }
221
+ }
222
+ console.error(`[ReasoningBankService] Seeded ${seedPatterns.length} initial patterns`);
223
+ }
224
+ catch (error) {
225
+ console.error('[ReasoningBankService] Failed to seed patterns:', error);
226
+ }
227
+ }
111
228
  /**
112
229
  * ADR-051: Get pattern loading status for health checks
113
230
  */
@@ -120,10 +237,85 @@ export class ReasoningBankService {
120
237
  getQualityThresholdsFromPatterns() {
121
238
  return this.qualityThresholdsFromPatterns;
122
239
  }
240
+ // ============================================================================
241
+ // INTEGRATION FIX: Trajectory Tracking Methods
242
+ // ============================================================================
243
+ /**
244
+ * Start tracking a task trajectory
245
+ * Call this when a task begins execution
246
+ */
247
+ async startTaskTrajectory(taskId, task, options = {}) {
248
+ if (!this.config.enableTrajectories || this.disposed) {
249
+ return taskId; // Return taskId as fallback trajectory ID
250
+ }
251
+ try {
252
+ const trajectoryId = await this.enhancedAdapter.startTaskTrajectory(task, options);
253
+ this.activeTrajectories.set(taskId, trajectoryId);
254
+ console.error(`[ReasoningBankService] Started trajectory: task=${taskId} trajectory=${trajectoryId}`);
255
+ return trajectoryId;
256
+ }
257
+ catch (error) {
258
+ console.error('[ReasoningBankService] Failed to start trajectory:', error);
259
+ return taskId;
260
+ }
261
+ }
262
+ /**
263
+ * Record a step in the current task trajectory
264
+ */
265
+ async recordTrajectoryStep(taskId, action, result, options) {
266
+ if (!this.config.enableTrajectories || this.disposed) {
267
+ return;
268
+ }
269
+ const trajectoryId = this.activeTrajectories.get(taskId);
270
+ if (!trajectoryId) {
271
+ console.error(`[ReasoningBankService] No active trajectory for task ${taskId}`);
272
+ return;
273
+ }
274
+ try {
275
+ await this.enhancedAdapter.recordTaskStep(trajectoryId, action, result, options);
276
+ }
277
+ catch (error) {
278
+ console.error('[ReasoningBankService] Failed to record trajectory step:', error);
279
+ }
280
+ }
281
+ /**
282
+ * End a task trajectory and trigger learning
283
+ * Call this when a task completes
284
+ */
285
+ async endTaskTrajectory(taskId, success, feedback) {
286
+ if (!this.config.enableTrajectories || this.disposed) {
287
+ return null;
288
+ }
289
+ const trajectoryId = this.activeTrajectories.get(taskId);
290
+ if (!trajectoryId) {
291
+ console.error(`[ReasoningBankService] No active trajectory for task ${taskId}`);
292
+ return null;
293
+ }
294
+ try {
295
+ const trajectory = await this.enhancedAdapter.endTaskTrajectory(trajectoryId, success, feedback);
296
+ this.activeTrajectories.delete(taskId);
297
+ console.error(`[ReasoningBankService] Ended trajectory: task=${taskId} success=${success} ` +
298
+ `steps=${trajectory.steps.length} quality=${trajectory.metrics.averageQuality.toFixed(2)}`);
299
+ return trajectory;
300
+ }
301
+ catch (error) {
302
+ console.error('[ReasoningBankService] Failed to end trajectory:', error);
303
+ this.activeTrajectories.delete(taskId);
304
+ return null;
305
+ }
306
+ }
307
+ /**
308
+ * Get active trajectory ID for a task
309
+ */
310
+ getActiveTrajectoryId(taskId) {
311
+ return this.activeTrajectories.get(taskId);
312
+ }
313
+ // ============================================================================
314
+ // Record Task Outcome (Synchronous Learning)
315
+ // ============================================================================
123
316
  /**
124
317
  * Record a task outcome for learning
125
- *
126
- * This is called after task execution to learn from the outcome.
318
+ * INTEGRATION FIX: Now synchronous (awaited) to ensure learning occurs
127
319
  */
128
320
  async recordTaskOutcome(outcome) {
129
321
  if (!this.config.enableLearning || this.disposed) {
@@ -151,18 +343,44 @@ export class ReasoningBankService {
151
343
  },
152
344
  feedback: outcome.error,
153
345
  };
154
- await this.reasoningBank.recordOutcome(learningOutcome);
346
+ await this.enhancedAdapter.recordPatternOutcome(learningOutcome);
155
347
  // If high quality, store as a pattern
156
348
  if (outcome.success &&
157
349
  (outcome.qualityScore || 0.5) >= this.config.minQualityThreshold) {
158
350
  await this.storeTaskPattern(outcome);
159
351
  this.patternsStored++;
160
352
  }
353
+ // INTEGRATION FIX: Update agent performance metrics
354
+ if (outcome.agentId) {
355
+ await this.updateAgentPerformanceFromOutcome(outcome);
356
+ }
161
357
  console.error(`[ReasoningBankService] Recorded outcome: task=${outcome.taskId} ` +
162
358
  `success=${outcome.success} quality=${outcome.qualityScore?.toFixed(2) || 'N/A'}`);
163
359
  }
164
360
  catch (error) {
165
361
  console.error('[ReasoningBankService] Failed to record outcome:', error);
362
+ // INTEGRATION FIX: Re-throw to ensure caller knows learning failed
363
+ throw error;
364
+ }
365
+ }
366
+ /**
367
+ * INTEGRATION FIX: Update agent performance metrics from task outcome
368
+ */
369
+ async updateAgentPerformanceFromOutcome(outcome) {
370
+ if (!outcome.agentId)
371
+ return;
372
+ try {
373
+ updateAgentPerformance(outcome.agentId, {
374
+ success: outcome.success,
375
+ executionTimeMs: outcome.executionTimeMs,
376
+ qualityScore: outcome.qualityScore,
377
+ });
378
+ console.error(`[ReasoningBankService] Updated agent performance: agent=${outcome.agentId} ` +
379
+ `success=${outcome.success} duration=${outcome.executionTimeMs}ms`);
380
+ }
381
+ catch (error) {
382
+ // Don't fail the whole operation if performance update fails
383
+ console.error('[ReasoningBankService] Failed to update agent performance:', error);
166
384
  }
167
385
  }
168
386
  /**
@@ -177,7 +395,7 @@ export class ReasoningBankService {
177
395
  outcome.agentId ? `agent:${outcome.agentId}` : undefined,
178
396
  outcome.modelTier ? `tier:${outcome.modelTier}` : undefined,
179
397
  ].filter((t) => t !== undefined);
180
- await this.reasoningBank.storeQEPattern({
398
+ await this.enhancedAdapter.storePattern({
181
399
  patternType: 'test-template',
182
400
  name: `${outcome.taskType}-${outcome.domain || 'general'}`,
183
401
  description: outcome.task,
@@ -199,10 +417,12 @@ export class ReasoningBankService {
199
417
  console.error('[ReasoningBankService] Failed to store pattern:', error);
200
418
  }
201
419
  }
420
+ // ============================================================================
421
+ // INTEGRATION FIX: Experience-Guided Routing
422
+ // ============================================================================
202
423
  /**
203
- * Get routing recommendation for a task
204
- *
205
- * Uses pattern similarity to recommend the best agent and approach.
424
+ * Get routing recommendation with experience guidance
425
+ * INTEGRATION FIX: Uses routeTaskWithExperience for enhanced routing
206
426
  */
207
427
  async getRoutingRecommendation(request) {
208
428
  if (!this.config.enableRouting || this.disposed) {
@@ -210,20 +430,43 @@ export class ReasoningBankService {
210
430
  }
211
431
  this.routingRequests++;
212
432
  try {
213
- const result = await this.reasoningBank.routeTask(request);
433
+ // INTEGRATION FIX: Use experience-guided routing
434
+ const result = await this.enhancedAdapter.routeTaskWithExperience(request);
214
435
  if (!result.success) {
215
436
  console.error('[ReasoningBankService] Routing returned error:', result.error);
216
437
  return this.createFallbackRouting(request);
217
438
  }
439
+ const enhancedResult = result.value;
440
+ // Log experience guidance if available
441
+ if (enhancedResult.experienceGuidance) {
442
+ console.error(`[ReasoningBankService] Experience guidance: strategy="${enhancedResult.experienceGuidance.recommendedStrategy}" ` +
443
+ `confidence=${enhancedResult.experienceGuidance.confidence.toFixed(2)} ` +
444
+ `tokenSavings=${enhancedResult.experienceGuidance.estimatedTokenSavings}`);
445
+ }
218
446
  console.error(`[ReasoningBankService] Routing: task="${request.task.slice(0, 50)}..." ` +
219
- `→ agent=${result.value.recommendedAgent} confidence=${result.value.confidence.toFixed(2)}`);
220
- return result.value;
447
+ `-> agent=${enhancedResult.recommendedAgent} confidence=${enhancedResult.confidence.toFixed(2)}`);
448
+ return enhancedResult;
221
449
  }
222
450
  catch (error) {
223
451
  console.error('[ReasoningBankService] Routing failed:', error);
224
452
  return this.createFallbackRouting(request);
225
453
  }
226
454
  }
455
+ /**
456
+ * Get experience guidance for a task (without routing)
457
+ */
458
+ async getExperienceGuidance(task, domain) {
459
+ if (!this.config.enableExperienceReplay || this.disposed) {
460
+ return null;
461
+ }
462
+ try {
463
+ return await this.enhancedAdapter.getExperienceGuidance(task, domain);
464
+ }
465
+ catch (error) {
466
+ console.error('[ReasoningBankService] Failed to get experience guidance:', error);
467
+ return null;
468
+ }
469
+ }
227
470
  /**
228
471
  * Get guidance for a task
229
472
  */
@@ -232,7 +475,7 @@ export class ReasoningBankService {
232
475
  return [];
233
476
  }
234
477
  try {
235
- const result = await this.reasoningBank.routeTask({
478
+ const result = await this.enhancedAdapter.routeTaskWithExperience({
236
479
  task,
237
480
  domain,
238
481
  });
@@ -254,7 +497,7 @@ export class ReasoningBankService {
254
497
  return [];
255
498
  }
256
499
  try {
257
- const results = await this.reasoningBank.searchQEPatterns(query, {
500
+ const results = await this.enhancedAdapter.searchPatterns(query, {
258
501
  limit: options?.limit || 10,
259
502
  domain: options?.domain,
260
503
  });
@@ -273,7 +516,7 @@ export class ReasoningBankService {
273
516
  * Get service statistics
274
517
  */
275
518
  async getStats() {
276
- const bankStats = await this.reasoningBank.getQEStats();
519
+ const adapterStats = await this.enhancedAdapter.getStats();
277
520
  return {
278
521
  service: {
279
522
  tasksRecorded: this.tasksRecorded,
@@ -282,9 +525,11 @@ export class ReasoningBankService {
282
525
  successRate: this.tasksRecorded > 0 ? this.successfulTasks / this.tasksRecorded : 0,
283
526
  patternsStored: this.patternsStored,
284
527
  routingRequests: this.routingRequests,
285
- patternsLoaded: this.patternsLoaded, // ADR-051
528
+ patternsLoaded: this.patternsLoaded,
529
+ activeTrajectories: this.activeTrajectories.size,
286
530
  },
287
- reasoningBank: bankStats,
531
+ reasoningBank: adapterStats.reasoningBank,
532
+ adapter: adapterStats.adapter,
288
533
  };
289
534
  }
290
535
  /**
@@ -315,7 +560,8 @@ export class ReasoningBankService {
315
560
  if (this.disposed)
316
561
  return;
317
562
  this.disposed = true;
318
- await this.reasoningBank.dispose();
563
+ await this.enhancedAdapter.dispose();
564
+ this.activeTrajectories.clear();
319
565
  ReasoningBankService.instance = null;
320
566
  console.error('[ReasoningBankService] Disposed');
321
567
  }
@@ -353,4 +599,18 @@ export async function getRoutingRecommendation(request) {
353
599
  const service = await getReasoningBankService();
354
600
  return service.getRoutingRecommendation(request);
355
601
  }
602
+ /**
603
+ * Start task trajectory (shorthand)
604
+ */
605
+ export async function startTaskTrajectory(taskId, task, options) {
606
+ const service = await getReasoningBankService();
607
+ return service.startTaskTrajectory(taskId, task, options);
608
+ }
609
+ /**
610
+ * End task trajectory (shorthand)
611
+ */
612
+ export async function endTaskTrajectory(taskId, success, feedback) {
613
+ const service = await getReasoningBankService();
614
+ return service.endTaskTrajectory(taskId, success, feedback);
615
+ }
356
616
  //# sourceMappingURL=reasoning-bank-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reasoning-bank-service.js","sourceRoot":"","sources":["../../../src/mcp/services/reasoning-bank-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reasoning-bank-service.js","sourceRoot":"","sources":["../../../src/mcp/services/reasoning-bank-service.ts"],"names":[],"mappings":"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"}
@@ -64,4 +64,31 @@ export declare function getAgentCounts(): {
64
64
  consensus: number;
65
65
  total: number;
66
66
  };
67
+ /**
68
+ * Performance update data from task outcomes
69
+ */
70
+ export interface AgentPerformanceUpdate {
71
+ /** Whether the task succeeded */
72
+ success: boolean;
73
+ /** Task execution time in milliseconds */
74
+ executionTimeMs: number;
75
+ /** Quality score (0-1) */
76
+ qualityScore?: number;
77
+ }
78
+ /**
79
+ * Update an agent's performance metrics based on task outcome
80
+ * INTEGRATION FIX: Closes the feedback loop from ReasoningBank learning
81
+ *
82
+ * @param agentId - The agent ID to update
83
+ * @param update - Performance update data
84
+ */
85
+ export declare function updateAgentPerformance(agentId: string, update: AgentPerformanceUpdate): void;
86
+ /**
87
+ * Get agents sorted by performance score
88
+ */
89
+ export declare function getAgentsByPerformance(domain?: QEDomain): QEAgentProfile[];
90
+ /**
91
+ * Reset all agent performance metrics (for testing)
92
+ */
93
+ export declare function resetAgentPerformanceMetrics(): void;
67
94
  //# sourceMappingURL=qe-agent-registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"qe-agent-registry.d.ts","sourceRoot":"","sources":["../../src/routing/qe-agent-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,eAAe,EAChB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAs+B3D;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,cAAc,EAQrD,CAAC;AAEH;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,QAAQ,GAAG,cAAc,EAAE,CAEpE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,eAAe,GAAG,cAAc,EAAE,CAEnF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,cAAc,EAAE,CAEnF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,aAAa,GAAG,cAAc,EAAE,CAE/E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,eAAe,GAAG,cAAc,EAAE,CAanF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEnE;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf,CAWA"}
1
+ {"version":3,"file":"qe-agent-registry.d.ts","sourceRoot":"","sources":["../../src/routing/qe-agent-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,eAAe,EAChB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAs+B3D;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,cAAc,EAQrD,CAAC;AAEH;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,QAAQ,GAAG,cAAc,EAAE,CAEpE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,eAAe,GAAG,cAAc,EAAE,CAEnF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,cAAc,EAAE,CAEnF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,aAAa,GAAG,cAAc,EAAE,CAE/E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,eAAe,GAAG,cAAc,EAAE,CAanF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEnE;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf,CAWA;AAMD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,iCAAiC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,0CAA0C;IAC1C,eAAe,EAAE,MAAM,CAAC;IACxB,0BAA0B;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,sBAAsB,GAC7B,IAAI,CAgBN;AAwDD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,cAAc,EAAE,CAmB1E;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,IAAI,CAQnD"}
@@ -1059,4 +1059,100 @@ export function getAgentCounts() {
1059
1059
  total: QE_AGENT_REGISTRY.length,
1060
1060
  };
1061
1061
  }
1062
+ /**
1063
+ * Update an agent's performance metrics based on task outcome
1064
+ * INTEGRATION FIX: Closes the feedback loop from ReasoningBank learning
1065
+ *
1066
+ * @param agentId - The agent ID to update
1067
+ * @param update - Performance update data
1068
+ */
1069
+ export function updateAgentPerformance(agentId, update) {
1070
+ const agent = QE_AGENT_REGISTRY.find(a => a.id === agentId);
1071
+ if (!agent) {
1072
+ // Try to find by partial match (e.g., "qe-test-architect" matches "v3-qe-test-architect")
1073
+ const partialMatch = QE_AGENT_REGISTRY.find(a => a.id.includes(agentId) || agentId.includes(a.id));
1074
+ if (!partialMatch) {
1075
+ console.error(`[AgentRegistry] Agent not found: ${agentId}`);
1076
+ return;
1077
+ }
1078
+ updateAgentMetrics(partialMatch, update);
1079
+ return;
1080
+ }
1081
+ updateAgentMetrics(agent, update);
1082
+ }
1083
+ /**
1084
+ * Internal function to update agent metrics
1085
+ */
1086
+ function updateAgentMetrics(agent, update) {
1087
+ const previousTasks = agent.tasksCompleted;
1088
+ const previousSuccesses = Math.round(agent.successRate * previousTasks);
1089
+ // Increment task count
1090
+ agent.tasksCompleted++;
1091
+ // Update success rate (exponential moving average for recent weighting)
1092
+ const newSuccesses = previousSuccesses + (update.success ? 1 : 0);
1093
+ agent.successRate = agent.tasksCompleted > 0
1094
+ ? newSuccesses / agent.tasksCompleted
1095
+ : 0;
1096
+ // Update average duration (exponential moving average)
1097
+ if (previousTasks === 0) {
1098
+ agent.avgDurationMs = update.executionTimeMs;
1099
+ }
1100
+ else {
1101
+ // Weight recent results more heavily (alpha = 0.3)
1102
+ const alpha = 0.3;
1103
+ agent.avgDurationMs = alpha * update.executionTimeMs + (1 - alpha) * agent.avgDurationMs;
1104
+ }
1105
+ // Update performance score based on success rate and quality
1106
+ const qualityFactor = update.qualityScore ?? (update.success ? 0.7 : 0.3);
1107
+ const successFactor = agent.successRate;
1108
+ // Performance score = weighted combination (quality 40%, success rate 60%)
1109
+ const newPerformanceScore = 0.4 * qualityFactor + 0.6 * successFactor;
1110
+ // Exponential moving average for stability
1111
+ if (previousTasks === 0) {
1112
+ agent.performanceScore = newPerformanceScore;
1113
+ }
1114
+ else {
1115
+ const alpha = 0.2;
1116
+ agent.performanceScore = alpha * newPerformanceScore + (1 - alpha) * agent.performanceScore;
1117
+ }
1118
+ // Clamp performance score to valid range
1119
+ agent.performanceScore = Math.max(0, Math.min(1, agent.performanceScore));
1120
+ console.error(`[AgentRegistry] Updated ${agent.id}: tasks=${agent.tasksCompleted} ` +
1121
+ `successRate=${(agent.successRate * 100).toFixed(1)}% ` +
1122
+ `performanceScore=${agent.performanceScore.toFixed(3)} ` +
1123
+ `avgDurationMs=${agent.avgDurationMs.toFixed(0)}`);
1124
+ }
1125
+ /**
1126
+ * Get agents sorted by performance score
1127
+ */
1128
+ export function getAgentsByPerformance(domain) {
1129
+ let agents = [...QE_AGENT_REGISTRY];
1130
+ if (domain) {
1131
+ agents = agents.filter(a => a.domains.includes(domain));
1132
+ }
1133
+ return agents.sort((a, b) => {
1134
+ // Primary sort by performance score (descending)
1135
+ if (b.performanceScore !== a.performanceScore) {
1136
+ return b.performanceScore - a.performanceScore;
1137
+ }
1138
+ // Secondary sort by success rate (descending)
1139
+ if (b.successRate !== a.successRate) {
1140
+ return b.successRate - a.successRate;
1141
+ }
1142
+ // Tertiary sort by tasks completed (descending) - prefer experienced agents
1143
+ return b.tasksCompleted - a.tasksCompleted;
1144
+ });
1145
+ }
1146
+ /**
1147
+ * Reset all agent performance metrics (for testing)
1148
+ */
1149
+ export function resetAgentPerformanceMetrics() {
1150
+ for (const agent of QE_AGENT_REGISTRY) {
1151
+ agent.performanceScore = 0.7;
1152
+ agent.tasksCompleted = 0;
1153
+ agent.successRate = 0;
1154
+ agent.avgDurationMs = 0;
1155
+ }
1156
+ console.error('[AgentRegistry] Reset all agent performance metrics');
1157
+ }
1062
1158
  //# sourceMappingURL=qe-agent-registry.js.map