agentic-qe 2.4.0 → 2.5.1

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 (174) hide show
  1. package/.claude/agents/qe-a11y-ally.md +855 -0
  2. package/.claude/agents/qx-partner.md +120 -4
  3. package/.claude/skills/testability-scoring/SKILL.md +107 -6
  4. package/CHANGELOG.md +135 -0
  5. package/README.md +7 -6
  6. package/dist/agents/AccessibilityAllyAgent.d.ts +168 -0
  7. package/dist/agents/AccessibilityAllyAgent.d.ts.map +1 -0
  8. package/dist/agents/AccessibilityAllyAgent.js +462 -0
  9. package/dist/agents/AccessibilityAllyAgent.js.map +1 -0
  10. package/dist/agents/SONAIntegration.d.ts +109 -0
  11. package/dist/agents/SONAIntegration.d.ts.map +1 -0
  12. package/dist/agents/SONAIntegration.js +167 -0
  13. package/dist/agents/SONAIntegration.js.map +1 -0
  14. package/dist/agents/index.d.ts +3 -0
  15. package/dist/agents/index.d.ts.map +1 -1
  16. package/dist/agents/index.js +93 -2
  17. package/dist/agents/index.js.map +1 -1
  18. package/dist/cli/init/agents.js +1 -1
  19. package/dist/cli/init/claude-config.js +2 -2
  20. package/dist/cli/init/database-init.js +1 -1
  21. package/dist/core/cache/BinaryCacheImpl.d.ts +161 -0
  22. package/dist/core/cache/BinaryCacheImpl.d.ts.map +1 -0
  23. package/dist/core/cache/BinaryCacheImpl.js +685 -0
  24. package/dist/core/cache/BinaryCacheImpl.js.map +1 -0
  25. package/dist/core/cache/BinaryMetadataCache.d.ts +244 -0
  26. package/dist/core/cache/BinaryMetadataCache.d.ts.map +1 -1
  27. package/dist/core/cache/BinaryMetadataCache.js +63 -1
  28. package/dist/core/cache/BinaryMetadataCache.js.map +1 -1
  29. package/dist/core/cache/index.d.ts +1 -0
  30. package/dist/core/cache/index.d.ts.map +1 -1
  31. package/dist/core/cache/index.js +10 -1
  32. package/dist/core/cache/index.js.map +1 -1
  33. package/dist/core/memory/AgentDBService.d.ts +30 -4
  34. package/dist/core/memory/AgentDBService.d.ts.map +1 -1
  35. package/dist/core/memory/AgentDBService.js +122 -12
  36. package/dist/core/memory/AgentDBService.js.map +1 -1
  37. package/dist/core/memory/CachedHNSWVectorMemory.d.ts +153 -0
  38. package/dist/core/memory/CachedHNSWVectorMemory.d.ts.map +1 -0
  39. package/dist/core/memory/CachedHNSWVectorMemory.js +329 -0
  40. package/dist/core/memory/CachedHNSWVectorMemory.js.map +1 -0
  41. package/dist/core/memory/HNSWVectorMemory.js +1 -1
  42. package/dist/core/memory/RuVectorPatternStore.d.ts.map +1 -1
  43. package/dist/core/memory/RuVectorPatternStore.js +8 -2
  44. package/dist/core/memory/RuVectorPatternStore.js.map +1 -1
  45. package/dist/core/memory/UnifiedMemoryCoordinator.d.ts +50 -0
  46. package/dist/core/memory/UnifiedMemoryCoordinator.d.ts.map +1 -1
  47. package/dist/core/memory/UnifiedMemoryCoordinator.js +206 -0
  48. package/dist/core/memory/UnifiedMemoryCoordinator.js.map +1 -1
  49. package/dist/core/memory/index.d.ts +2 -0
  50. package/dist/core/memory/index.d.ts.map +1 -1
  51. package/dist/core/memory/index.js +8 -1
  52. package/dist/core/memory/index.js.map +1 -1
  53. package/dist/core/optimization/RecursiveOptimizer.d.ts +233 -0
  54. package/dist/core/optimization/RecursiveOptimizer.d.ts.map +1 -0
  55. package/dist/core/optimization/RecursiveOptimizer.js +509 -0
  56. package/dist/core/optimization/RecursiveOptimizer.js.map +1 -0
  57. package/dist/core/strategies/SONALearningStrategy.d.ts +115 -0
  58. package/dist/core/strategies/SONALearningStrategy.d.ts.map +1 -0
  59. package/dist/core/strategies/SONALearningStrategy.js +656 -0
  60. package/dist/core/strategies/SONALearningStrategy.js.map +1 -0
  61. package/dist/core/strategies/TRMLearningStrategy.d.ts +162 -0
  62. package/dist/core/strategies/TRMLearningStrategy.d.ts.map +1 -0
  63. package/dist/core/strategies/TRMLearningStrategy.js +670 -0
  64. package/dist/core/strategies/TRMLearningStrategy.js.map +1 -0
  65. package/dist/core/strategies/index.d.ts +10 -1
  66. package/dist/core/strategies/index.d.ts.map +1 -1
  67. package/dist/core/strategies/index.js +4 -1
  68. package/dist/core/strategies/index.js.map +1 -1
  69. package/dist/learning/SONAFeedbackLoop.d.ts +168 -0
  70. package/dist/learning/SONAFeedbackLoop.d.ts.map +1 -0
  71. package/dist/learning/SONAFeedbackLoop.js +344 -0
  72. package/dist/learning/SONAFeedbackLoop.js.map +1 -0
  73. package/dist/learning/baselines/BaselineCollector.d.ts +1 -1
  74. package/dist/learning/baselines/BaselineCollector.js +1 -1
  75. package/dist/learning/baselines/StandardTaskSuite.d.ts +1 -1
  76. package/dist/learning/baselines/StandardTaskSuite.js +1 -1
  77. package/dist/learning/index.d.ts +2 -0
  78. package/dist/learning/index.d.ts.map +1 -1
  79. package/dist/learning/index.js +6 -1
  80. package/dist/learning/index.js.map +1 -1
  81. package/dist/mcp/server-instructions.d.ts +1 -1
  82. package/dist/mcp/server-instructions.js +1 -1
  83. package/dist/mcp/server.d.ts.map +1 -1
  84. package/dist/mcp/server.js +23 -16
  85. package/dist/mcp/server.js.map +1 -1
  86. package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
  87. package/dist/mcp/services/AgentRegistry.js +6 -1
  88. package/dist/mcp/services/AgentRegistry.js.map +1 -1
  89. package/dist/mcp/tools/qe/accessibility/accname-computation.d.ts +114 -0
  90. package/dist/mcp/tools/qe/accessibility/accname-computation.d.ts.map +1 -0
  91. package/dist/mcp/tools/qe/accessibility/accname-computation.js +566 -0
  92. package/dist/mcp/tools/qe/accessibility/accname-computation.js.map +1 -0
  93. package/dist/mcp/tools/qe/accessibility/apg-patterns.d.ts +103 -0
  94. package/dist/mcp/tools/qe/accessibility/apg-patterns.d.ts.map +1 -0
  95. package/dist/mcp/tools/qe/accessibility/apg-patterns.js +1028 -0
  96. package/dist/mcp/tools/qe/accessibility/apg-patterns.js.map +1 -0
  97. package/dist/mcp/tools/qe/accessibility/en-301-549-mapping.d.ts +48 -0
  98. package/dist/mcp/tools/qe/accessibility/en-301-549-mapping.d.ts.map +1 -0
  99. package/dist/mcp/tools/qe/accessibility/en-301-549-mapping.js +565 -0
  100. package/dist/mcp/tools/qe/accessibility/en-301-549-mapping.js.map +1 -0
  101. package/dist/mcp/tools/qe/accessibility/eu-accessibility-act.d.ts +117 -0
  102. package/dist/mcp/tools/qe/accessibility/eu-accessibility-act.d.ts.map +1 -0
  103. package/dist/mcp/tools/qe/accessibility/eu-accessibility-act.js +571 -0
  104. package/dist/mcp/tools/qe/accessibility/eu-accessibility-act.js.map +1 -0
  105. package/dist/mcp/tools/qe/accessibility/html-report-generator.d.ts +23 -0
  106. package/dist/mcp/tools/qe/accessibility/html-report-generator.d.ts.map +1 -0
  107. package/dist/mcp/tools/qe/accessibility/html-report-generator.js +1152 -0
  108. package/dist/mcp/tools/qe/accessibility/html-report-generator.js.map +1 -0
  109. package/dist/mcp/tools/qe/accessibility/index.d.ts +22 -0
  110. package/dist/mcp/tools/qe/accessibility/index.d.ts.map +1 -0
  111. package/dist/mcp/tools/qe/accessibility/index.js +38 -0
  112. package/dist/mcp/tools/qe/accessibility/index.js.map +1 -0
  113. package/dist/mcp/tools/qe/accessibility/markdown-report-generator.d.ts +18 -0
  114. package/dist/mcp/tools/qe/accessibility/markdown-report-generator.d.ts.map +1 -0
  115. package/dist/mcp/tools/qe/accessibility/markdown-report-generator.js +549 -0
  116. package/dist/mcp/tools/qe/accessibility/markdown-report-generator.js.map +1 -0
  117. package/dist/mcp/tools/qe/accessibility/remediation-code-generator.d.ts +139 -0
  118. package/dist/mcp/tools/qe/accessibility/remediation-code-generator.d.ts.map +1 -0
  119. package/dist/mcp/tools/qe/accessibility/remediation-code-generator.js +1300 -0
  120. package/dist/mcp/tools/qe/accessibility/remediation-code-generator.js.map +1 -0
  121. package/dist/mcp/tools/qe/accessibility/scan-comprehensive.d.ts +138 -0
  122. package/dist/mcp/tools/qe/accessibility/scan-comprehensive.d.ts.map +1 -0
  123. package/dist/mcp/tools/qe/accessibility/scan-comprehensive.js +1298 -0
  124. package/dist/mcp/tools/qe/accessibility/scan-comprehensive.js.map +1 -0
  125. package/dist/mcp/tools/qe/accessibility/video-vision-analyzer.d.ts +50 -0
  126. package/dist/mcp/tools/qe/accessibility/video-vision-analyzer.d.ts.map +1 -0
  127. package/dist/mcp/tools/qe/accessibility/video-vision-analyzer.js +469 -0
  128. package/dist/mcp/tools/qe/accessibility/video-vision-analyzer.js.map +1 -0
  129. package/dist/mcp/tools/qe/accessibility/webvtt-generator.d.ts +193 -0
  130. package/dist/mcp/tools/qe/accessibility/webvtt-generator.d.ts.map +1 -0
  131. package/dist/mcp/tools/qe/accessibility/webvtt-generator.js +511 -0
  132. package/dist/mcp/tools/qe/accessibility/webvtt-generator.js.map +1 -0
  133. package/dist/mcp/tools.d.ts +1 -0
  134. package/dist/mcp/tools.d.ts.map +1 -1
  135. package/dist/mcp/tools.js +61 -0
  136. package/dist/mcp/tools.js.map +1 -1
  137. package/dist/providers/HybridRouter.d.ts +34 -3
  138. package/dist/providers/HybridRouter.d.ts.map +1 -1
  139. package/dist/providers/HybridRouter.js +69 -4
  140. package/dist/providers/HybridRouter.js.map +1 -1
  141. package/dist/providers/LLMProviderFactory.d.ts +68 -1
  142. package/dist/providers/LLMProviderFactory.d.ts.map +1 -1
  143. package/dist/providers/LLMProviderFactory.js +173 -6
  144. package/dist/providers/LLMProviderFactory.js.map +1 -1
  145. package/dist/providers/OpenRouterProvider.d.ts +150 -0
  146. package/dist/providers/OpenRouterProvider.d.ts.map +1 -0
  147. package/dist/providers/OpenRouterProvider.js +545 -0
  148. package/dist/providers/OpenRouterProvider.js.map +1 -0
  149. package/dist/providers/RuvllmProvider.d.ts +130 -16
  150. package/dist/providers/RuvllmProvider.d.ts.map +1 -1
  151. package/dist/providers/RuvllmProvider.js +399 -83
  152. package/dist/providers/RuvllmProvider.js.map +1 -1
  153. package/dist/providers/index.d.ts +33 -4
  154. package/dist/providers/index.d.ts.map +1 -1
  155. package/dist/providers/index.js +72 -21
  156. package/dist/providers/index.js.map +1 -1
  157. package/dist/telemetry/instrumentation/agent.d.ts +1 -1
  158. package/dist/telemetry/instrumentation/agent.js +1 -1
  159. package/dist/telemetry/instrumentation/index.d.ts +1 -1
  160. package/dist/telemetry/instrumentation/index.js +1 -1
  161. package/dist/types/index.d.ts +2 -1
  162. package/dist/types/index.d.ts.map +1 -1
  163. package/dist/types/index.js +2 -0
  164. package/dist/types/index.js.map +1 -1
  165. package/dist/types/ruvllm.d.ts +97 -0
  166. package/dist/types/ruvllm.d.ts.map +1 -0
  167. package/dist/types/ruvllm.js +46 -0
  168. package/dist/types/ruvllm.js.map +1 -0
  169. package/dist/utils/ruvllm-loader.d.ts +94 -0
  170. package/dist/utils/ruvllm-loader.d.ts.map +1 -0
  171. package/dist/utils/ruvllm-loader.js +87 -0
  172. package/dist/utils/ruvllm-loader.js.map +1 -0
  173. package/docs/reference/agents.md +36 -1
  174. package/package.json +5 -2
@@ -0,0 +1,509 @@
1
+ "use strict";
2
+ /**
3
+ * RecursiveOptimizer - TRM-based recursive optimization with binary cache
4
+ *
5
+ * Implements iterative refinement optimization using Test-time Reasoning
6
+ * & Metacognition (TRM) patterns. Features:
7
+ * - Recursive quality improvement with convergence detection
8
+ * - Binary cache for fast pattern retrieval
9
+ * - SONA integration for adaptive learning
10
+ * - EWC++ for preventing catastrophic forgetting
11
+ *
12
+ * @module core/optimization/RecursiveOptimizer
13
+ * @version 1.0.0
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.RecursiveOptimizer = void 0;
17
+ exports.createTestGenerationOptimizer = createTestGenerationOptimizer;
18
+ exports.createCodeAnalysisOptimizer = createCodeAnalysisOptimizer;
19
+ const BinaryMetadataCache_1 = require("../cache/BinaryMetadataCache");
20
+ const Logger_1 = require("../../utils/Logger");
21
+ const ruvllm_loader_1 = require("../../utils/ruvllm-loader");
22
+ /**
23
+ * RecursiveOptimizer - TRM-based recursive optimization
24
+ *
25
+ * Uses iterative refinement with convergence detection to optimize
26
+ * outputs. Patterns are cached for fast retrieval on similar inputs.
27
+ */
28
+ class RecursiveOptimizer {
29
+ constructor(config) {
30
+ this.cache = new Map();
31
+ this.initialized = false;
32
+ // Statistics
33
+ this.stats = {
34
+ totalOptimizations: 0,
35
+ cacheHits: 0,
36
+ cacheMisses: 0,
37
+ avgIterations: 0,
38
+ avgQuality: 0,
39
+ avgDuration: 0,
40
+ convergenceRate: 0,
41
+ };
42
+ /**
43
+ * Default text quality evaluator using heuristic metrics.
44
+ *
45
+ * @warning All metrics currently use PLACEHOLDER HEURISTICS.
46
+ * See individual measure* methods for details on what proper implementations
47
+ * would look like. These heuristics are sufficient for testing TRM iteration
48
+ * mechanics but should not be used for production quality assessment.
49
+ *
50
+ * Available metrics:
51
+ * - 'coherence': Sentence structure analysis (heuristic)
52
+ * - 'coverage': Unique word ratio (heuristic)
53
+ * - 'diversity': Vocabulary variety (heuristic)
54
+ * - 'composite': Weighted combination (40% coherence, 30% coverage, 30% diversity)
55
+ *
56
+ * @todo M4 milestone: Replace with ML-based evaluation using ruvLLM
57
+ */
58
+ this.defaultTextEvaluator = (text, metric) => {
59
+ switch (metric) {
60
+ case 'coherence':
61
+ return this.measureCoherence(text);
62
+ case 'coverage':
63
+ return this.measureCoverage(text);
64
+ case 'diversity':
65
+ return this.measureDiversity(text);
66
+ case 'composite':
67
+ return (this.measureCoherence(text) * 0.4 +
68
+ this.measureCoverage(text) * 0.3 +
69
+ this.measureDiversity(text) * 0.3);
70
+ default:
71
+ return this.measureCoherence(text);
72
+ }
73
+ };
74
+ this.logger = Logger_1.Logger.getInstance();
75
+ this.config = {
76
+ maxIterations: config?.maxIterations ?? 7,
77
+ convergenceThreshold: config?.convergenceThreshold ?? 0.95,
78
+ qualityMetric: config?.qualityMetric ?? 'coherence',
79
+ minQuality: config?.minQuality ?? 0.5,
80
+ enableCache: config?.enableCache ?? true,
81
+ cachePath: config?.cachePath ?? '.aqe/cache/optimizer.bin',
82
+ enableSONA: config?.enableSONA ?? true,
83
+ loraRank: config?.loraRank ?? 8,
84
+ similarityThreshold: config?.similarityThreshold ?? 0.85,
85
+ };
86
+ }
87
+ /**
88
+ * Initialize the optimizer
89
+ */
90
+ async initialize() {
91
+ if (this.initialized) {
92
+ this.logger.warn('RecursiveOptimizer already initialized');
93
+ return;
94
+ }
95
+ try {
96
+ // Load ruvLLM if SONA enabled
97
+ if (this.config.enableSONA) {
98
+ const ruvllmModule = (0, ruvllm_loader_1.loadRuvLLM)();
99
+ if (ruvllmModule) {
100
+ this.ruvllm = new ruvllmModule.RuvLLM({ learningEnabled: true });
101
+ this.sonaCoordinator = new ruvllmModule.SonaCoordinator();
102
+ this.logger.info('SONA components loaded for RecursiveOptimizer');
103
+ }
104
+ else {
105
+ this.logger.warn('RuvLLM not available, SONA disabled');
106
+ }
107
+ }
108
+ this.initialized = true;
109
+ this.logger.info('RecursiveOptimizer initialized', {
110
+ maxIterations: this.config.maxIterations,
111
+ convergenceThreshold: this.config.convergenceThreshold,
112
+ qualityMetric: this.config.qualityMetric,
113
+ enableCache: this.config.enableCache,
114
+ enableSONA: this.config.enableSONA,
115
+ });
116
+ }
117
+ catch (error) {
118
+ this.logger.warn('Failed to load ruvLLM, using fallback mode', {
119
+ error: error.message,
120
+ });
121
+ this.initialized = true;
122
+ }
123
+ }
124
+ /**
125
+ * Optimize an output using recursive refinement
126
+ *
127
+ * @param initial - Initial output to optimize
128
+ * @param refine - Function to refine the output in each iteration
129
+ * @param evaluate - Function to evaluate output quality
130
+ * @param options - Override configuration options
131
+ * @returns Optimization result
132
+ */
133
+ async optimize(initial, refine, evaluate, options) {
134
+ this.ensureInitialized();
135
+ const startTime = Date.now();
136
+ const effectiveConfig = { ...this.config, ...options };
137
+ const qualityHistory = [];
138
+ // Check cache first
139
+ if (effectiveConfig.enableCache) {
140
+ const cached = this.checkCache(initial);
141
+ if (cached) {
142
+ this.stats.cacheHits++;
143
+ this.logger.debug('Cache hit for optimization', { patternId: cached.result.patternId });
144
+ return cached.result;
145
+ }
146
+ this.stats.cacheMisses++;
147
+ }
148
+ // Initial quality evaluation
149
+ let current = initial;
150
+ let quality = evaluate(current, effectiveConfig.qualityMetric);
151
+ const initialQuality = quality;
152
+ qualityHistory.push(quality);
153
+ this.logger.debug('Starting optimization', {
154
+ initialQuality,
155
+ metric: effectiveConfig.qualityMetric,
156
+ maxIterations: effectiveConfig.maxIterations,
157
+ });
158
+ // Iterative refinement loop
159
+ let converged = false;
160
+ let iteration = 0;
161
+ for (iteration = 1; iteration < effectiveConfig.maxIterations; iteration++) {
162
+ // Refine the output
163
+ const refined = await refine(current, iteration, quality);
164
+ // Evaluate new quality
165
+ const newQuality = evaluate(refined, effectiveConfig.qualityMetric);
166
+ const improvement = newQuality - quality;
167
+ qualityHistory.push(newQuality);
168
+ this.logger.debug(`Iteration ${iteration}`, {
169
+ quality: newQuality,
170
+ improvement,
171
+ converged: improvement < (1 - effectiveConfig.convergenceThreshold),
172
+ });
173
+ // Check convergence
174
+ if (improvement < (1 - effectiveConfig.convergenceThreshold)) {
175
+ converged = true;
176
+ this.logger.info('Optimization converged', {
177
+ iterations: iteration,
178
+ finalQuality: newQuality,
179
+ improvement: newQuality - initialQuality,
180
+ });
181
+ break;
182
+ }
183
+ current = refined;
184
+ quality = newQuality;
185
+ }
186
+ const duration = Date.now() - startTime;
187
+ // Create result
188
+ const result = {
189
+ output: current,
190
+ quality,
191
+ iterations: iteration,
192
+ converged,
193
+ qualityHistory,
194
+ duration,
195
+ metadata: {
196
+ metric: effectiveConfig.qualityMetric,
197
+ initialQuality,
198
+ improvement: quality - initialQuality,
199
+ avgIterationTime: duration / iteration,
200
+ cacheHit: false,
201
+ },
202
+ };
203
+ // Cache the result
204
+ if (effectiveConfig.enableCache && quality >= effectiveConfig.minQuality) {
205
+ result.patternId = await this.cacheResult(initial, result);
206
+ }
207
+ // Track trajectory in SONA
208
+ if (this.sonaCoordinator && this.config.enableSONA) {
209
+ await this.trackOptimizationTrajectory(initial, result);
210
+ }
211
+ // Update statistics
212
+ this.updateStats(result);
213
+ return result;
214
+ }
215
+ /**
216
+ * Optimize with default text quality evaluation
217
+ */
218
+ async optimizeText(initial, refine, options) {
219
+ return this.optimize(initial, refine, this.defaultTextEvaluator, options);
220
+ }
221
+ /**
222
+ * Batch optimize multiple outputs
223
+ */
224
+ async optimizeBatch(items, refine, evaluate, options) {
225
+ this.ensureInitialized();
226
+ if (options?.parallel) {
227
+ // Parallel optimization
228
+ return Promise.all(items.map((item) => this.optimize(item, refine, evaluate, options)));
229
+ }
230
+ // Sequential optimization
231
+ const results = [];
232
+ for (const item of items) {
233
+ results.push(await this.optimize(item, refine, evaluate, options));
234
+ }
235
+ return results;
236
+ }
237
+ /**
238
+ * Get optimizer statistics
239
+ */
240
+ getStats() {
241
+ return { ...this.stats };
242
+ }
243
+ /**
244
+ * Get cache statistics
245
+ */
246
+ getCacheStats() {
247
+ const entries = Array.from(this.cache.values());
248
+ const now = Date.now();
249
+ return {
250
+ entries: this.cache.size,
251
+ hitRate: this.stats.cacheHits / Math.max(this.stats.cacheHits + this.stats.cacheMisses, 1),
252
+ avgAccessCount: entries.length > 0
253
+ ? entries.reduce((sum, e) => sum + e.accessCount, 0) / entries.length
254
+ : 0,
255
+ oldestEntry: entries.length > 0
256
+ ? now - Math.min(...entries.map((e) => e.createdAt))
257
+ : 0,
258
+ newestEntry: entries.length > 0
259
+ ? now - Math.max(...entries.map((e) => e.createdAt))
260
+ : 0,
261
+ };
262
+ }
263
+ /**
264
+ * Clear the optimization cache
265
+ */
266
+ clearCache() {
267
+ this.cache.clear();
268
+ this.logger.info('Optimization cache cleared');
269
+ }
270
+ /**
271
+ * Reset optimizer statistics
272
+ */
273
+ resetStats() {
274
+ this.stats = {
275
+ totalOptimizations: 0,
276
+ cacheHits: 0,
277
+ cacheMisses: 0,
278
+ avgIterations: 0,
279
+ avgQuality: 0,
280
+ avgDuration: 0,
281
+ convergenceRate: 0,
282
+ };
283
+ }
284
+ // === Private Helpers ===
285
+ ensureInitialized() {
286
+ if (!this.initialized) {
287
+ throw new Error('RecursiveOptimizer not initialized. Call initialize() first.');
288
+ }
289
+ }
290
+ checkCache(input) {
291
+ const hash = this.hashInput(input);
292
+ const entry = this.cache.get(hash);
293
+ if (entry) {
294
+ entry.accessCount++;
295
+ entry.lastAccessed = Date.now();
296
+ return entry;
297
+ }
298
+ return null;
299
+ }
300
+ async cacheResult(input, result) {
301
+ const hash = this.hashInput(input);
302
+ const inputText = typeof input === 'string' ? input : JSON.stringify(input);
303
+ const outputText = typeof result.output === 'string'
304
+ ? result.output
305
+ : JSON.stringify(result.output);
306
+ // Generate embeddings
307
+ const inputEmb = this.generateEmbedding(inputText);
308
+ const outputEmb = this.generateEmbedding(outputText);
309
+ // Create TRM pattern
310
+ const pattern = (0, BinaryMetadataCache_1.createTRMPatternEntry)(inputText, outputText, inputEmb, outputEmb, {
311
+ quality: result.quality,
312
+ qualityMetric: result.metadata.metric,
313
+ iterations: result.iterations,
314
+ converged: result.converged,
315
+ confidence: result.quality,
316
+ avgIterationLatency: result.metadata.avgIterationTime,
317
+ });
318
+ // Store in cache
319
+ const entry = {
320
+ input,
321
+ inputHash: hash,
322
+ pattern,
323
+ result: { ...result, patternId: pattern.id },
324
+ createdAt: Date.now(),
325
+ accessCount: 1,
326
+ lastAccessed: Date.now(),
327
+ };
328
+ this.cache.set(hash, entry);
329
+ return pattern.id;
330
+ }
331
+ async trackOptimizationTrajectory(input, result) {
332
+ if (!this.sonaCoordinator)
333
+ return;
334
+ try {
335
+ const ruvllmModule = (0, ruvllm_loader_1.loadRuvLLM)();
336
+ if (!ruvllmModule)
337
+ return;
338
+ const inputText = typeof input === 'string' ? input : JSON.stringify(input);
339
+ const outputText = typeof result.output === 'string'
340
+ ? result.output
341
+ : JSON.stringify(result.output);
342
+ const trajectory = new ruvllmModule.TrajectoryBuilder()
343
+ .startStep('query', inputText)
344
+ .endStep(outputText, result.quality)
345
+ .complete(result.converged ? 'success' : 'partial');
346
+ this.sonaCoordinator.recordTrajectory(trajectory);
347
+ }
348
+ catch (error) {
349
+ this.logger.debug('Trajectory tracking failed', { error: error.message });
350
+ }
351
+ }
352
+ updateStats(result) {
353
+ const n = this.stats.totalOptimizations;
354
+ this.stats.totalOptimizations++;
355
+ // Running averages
356
+ this.stats.avgIterations = (this.stats.avgIterations * n + result.iterations) / (n + 1);
357
+ this.stats.avgQuality = (this.stats.avgQuality * n + result.quality) / (n + 1);
358
+ this.stats.avgDuration = (this.stats.avgDuration * n + result.duration) / (n + 1);
359
+ // Convergence rate
360
+ const convergedCount = this.stats.convergenceRate * n + (result.converged ? 1 : 0);
361
+ this.stats.convergenceRate = convergedCount / (n + 1);
362
+ }
363
+ hashInput(input) {
364
+ const str = typeof input === 'string' ? input : JSON.stringify(input);
365
+ // Simple hash function
366
+ let hash = 0;
367
+ for (let i = 0; i < str.length; i++) {
368
+ const char = str.charCodeAt(i);
369
+ hash = ((hash << 5) - hash) + char;
370
+ hash = hash & hash;
371
+ }
372
+ return `opt-${hash.toString(16)}`;
373
+ }
374
+ /**
375
+ * Generates embeddings for text input.
376
+ *
377
+ * When ruvLLM is available, uses proper transformer-based embeddings.
378
+ * Falls back to a simple character-based heuristic when ruvLLM is unavailable.
379
+ *
380
+ * @warning The fallback implementation is a PLACEHOLDER HEURISTIC.
381
+ * The character-based embedding:
382
+ * - Maps character codes to 768-dimensional space
383
+ * - Normalizes to unit magnitude
384
+ * - Does NOT capture semantic meaning
385
+ *
386
+ * This fallback is only used when:
387
+ * - ruvLLM native module fails to load
388
+ * - Running in test environment without ruvLLM server
389
+ *
390
+ * Production usage should always have ruvLLM available for proper embeddings.
391
+ */
392
+ generateEmbedding(text) {
393
+ // Use ruvLLM if available - proper transformer-based embeddings
394
+ if (this.ruvllm) {
395
+ try {
396
+ return Array.from(this.ruvllm.embed(text));
397
+ }
398
+ catch {
399
+ // Fallback to simple embedding on error
400
+ }
401
+ }
402
+ // HEURISTIC FALLBACK: Simple deterministic embedding
403
+ // This does NOT capture semantic meaning - only for testing/development
404
+ const embedding = new Array(768).fill(0);
405
+ for (let i = 0; i < text.length; i++) {
406
+ const idx = i % 768;
407
+ embedding[idx] += text.charCodeAt(i) / 256;
408
+ }
409
+ const magnitude = Math.sqrt(embedding.reduce((sum, v) => sum + v * v, 0));
410
+ return embedding.map((v) => v / (magnitude || 1));
411
+ }
412
+ /**
413
+ * HEURISTIC: Measures text coherence using simple sentence structure analysis.
414
+ *
415
+ * @warning This is a PLACEHOLDER HEURISTIC, not a proper ML-based evaluation.
416
+ * Current implementation uses:
417
+ * - Average sentence length (normalized to 0-1)
418
+ * - Sentence count (normalized to 0-1)
419
+ *
420
+ * A proper implementation would use:
421
+ * - Transformer-based coherence models (e.g., sentence embeddings + cosine similarity)
422
+ * - Discourse structure analysis
423
+ * - Named entity consistency tracking
424
+ * - Coreference resolution scoring
425
+ *
426
+ * @todo Replace with ML-based coherence scoring in M4
427
+ */
428
+ measureCoherence(text) {
429
+ const sentences = text.split(/[.!?]+/).filter((s) => s.trim().length > 0);
430
+ if (sentences.length === 0)
431
+ return 0;
432
+ const avgSentenceLength = text.length / sentences.length;
433
+ const normalizedLength = Math.min(avgSentenceLength / 100, 1.0);
434
+ const sentenceCount = Math.min(sentences.length / 10, 1.0);
435
+ return (normalizedLength + sentenceCount) / 2;
436
+ }
437
+ /**
438
+ * HEURISTIC: Measures text coverage using unique word ratio.
439
+ *
440
+ * @warning This is a PLACEHOLDER HEURISTIC, not a proper ML-based evaluation.
441
+ * Current implementation uses:
442
+ * - Ratio of unique words to total words
443
+ *
444
+ * A proper implementation would use:
445
+ * - Topic modeling (LDA, BERTopic) to measure topic coverage
446
+ * - Information density metrics
447
+ * - Semantic role coverage analysis
448
+ * - Requirement traceability scoring
449
+ *
450
+ * @todo Replace with ML-based coverage analysis in M4
451
+ */
452
+ measureCoverage(text) {
453
+ const words = text.toLowerCase().split(/\s+/);
454
+ const uniqueWords = new Set(words);
455
+ if (words.length === 0)
456
+ return 0;
457
+ return Math.min(uniqueWords.size / words.length, 1.0);
458
+ }
459
+ /**
460
+ * HEURISTIC: Measures text diversity using vocabulary variety.
461
+ *
462
+ * @warning This is a PLACEHOLDER HEURISTIC, not a proper ML-based evaluation.
463
+ * Current implementation uses:
464
+ * - Ratio of unique words (>3 chars) with 2x scaling
465
+ *
466
+ * A proper implementation would use:
467
+ * - Type-token ratio with smoothing
468
+ * - Lexical diversity indices (MTLD, HD-D, vocd-D)
469
+ * - N-gram entropy measures
470
+ * - Semantic embedding cluster analysis
471
+ *
472
+ * @todo Replace with ML-based diversity metrics in M4
473
+ */
474
+ measureDiversity(text) {
475
+ const words = text.toLowerCase().split(/\s+/).filter((w) => w.length > 3);
476
+ const uniqueWords = new Set(words);
477
+ if (words.length === 0)
478
+ return 0;
479
+ return Math.min((uniqueWords.size / words.length) * 2, 1.0);
480
+ }
481
+ }
482
+ exports.RecursiveOptimizer = RecursiveOptimizer;
483
+ /**
484
+ * Create a pre-configured RecursiveOptimizer for test generation
485
+ */
486
+ function createTestGenerationOptimizer() {
487
+ return new RecursiveOptimizer({
488
+ maxIterations: 5,
489
+ convergenceThreshold: 0.9,
490
+ qualityMetric: 'composite',
491
+ minQuality: 0.6,
492
+ enableCache: true,
493
+ enableSONA: true,
494
+ });
495
+ }
496
+ /**
497
+ * Create a pre-configured RecursiveOptimizer for code analysis
498
+ */
499
+ function createCodeAnalysisOptimizer() {
500
+ return new RecursiveOptimizer({
501
+ maxIterations: 3,
502
+ convergenceThreshold: 0.85,
503
+ qualityMetric: 'coverage',
504
+ minQuality: 0.7,
505
+ enableCache: true,
506
+ enableSONA: false, // Faster for code analysis
507
+ });
508
+ }
509
+ //# sourceMappingURL=RecursiveOptimizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RecursiveOptimizer.js","sourceRoot":"","sources":["../../../src/core/optimization/RecursiveOptimizer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * SONALearningStrategy - SONA-enhanced learning with adaptive LoRA and EWC++
3
+ *
4
+ * Extends AgentLearningStrategy with SONA (Self-Organizing Neural Architecture):
5
+ * - MicroLoRA: Instant adaptation for hot paths (rank 1-2)
6
+ * - BaseLoRA: Long-term consolidation (rank 4-16)
7
+ * - EWC++: Elastic Weight Consolidation prevents catastrophic forgetting
8
+ * - Trajectory tracking: Records successful reasoning paths
9
+ *
10
+ * @module core/strategies/SONALearningStrategy
11
+ * @version 1.0.0
12
+ */
13
+ import type { AgentLearningStrategy, LearnedPattern, PatternQuery, StrategyRecommendation, ExecutionEvent, TrainingResult, LearningStatus, LearningMetrics } from './AgentLearningStrategy';
14
+ /**
15
+ * SONA Learning configuration
16
+ */
17
+ export interface SONALearningConfig {
18
+ /** Enable SONA adaptive learning (default: true) */
19
+ enableSONA?: boolean;
20
+ /** MicroLoRA rank for instant adaptation (default: 2) */
21
+ microLoraRank?: number;
22
+ /** BaseLoRA rank for long-term learning (default: 8) */
23
+ baseLoraRank?: number;
24
+ /** LoRA alpha scaling factor (default: 16) */
25
+ loraAlpha?: number;
26
+ /** EWC lambda for forgetting prevention (default: 2000) */
27
+ ewcLambda?: number;
28
+ /** Consolidation interval (default: 100 tasks) */
29
+ consolidationInterval?: number;
30
+ /** Maximum patterns to store (default: 10000) */
31
+ maxPatterns?: number;
32
+ /** Minimum confidence threshold (default: 0.3) */
33
+ minConfidence?: number;
34
+ /** Enable trajectory tracking (default: true) */
35
+ enableTrajectories?: boolean;
36
+ /** Wrapped base strategy (optional) */
37
+ baseStrategy?: AgentLearningStrategy | undefined;
38
+ }
39
+ /**
40
+ * SONA-specific metrics
41
+ */
42
+ export interface SONAMetrics extends LearningMetrics {
43
+ microLoraAdaptations: number;
44
+ baseLoraConsolidations: number;
45
+ ewcRetentionRate: number;
46
+ trajectoriesRecorded: number;
47
+ hotPathsIdentified: number;
48
+ coldPathsPruned: number;
49
+ }
50
+ /**
51
+ * SONA-enhanced learning strategy
52
+ */
53
+ export declare class SONALearningStrategy implements AgentLearningStrategy {
54
+ private readonly config;
55
+ private readonly logger;
56
+ private ruvllm?;
57
+ private sonaCoordinator?;
58
+ private loraManager?;
59
+ private reasoningBank?;
60
+ private trajectoryBuilder?;
61
+ private initialized;
62
+ private patterns;
63
+ private executionHistory;
64
+ private taskCount;
65
+ private microLoraAdaptations;
66
+ private baseLoraConsolidations;
67
+ private trajectoriesRecorded;
68
+ private hotPaths;
69
+ private coldPathsPruned;
70
+ private recommendationsGiven;
71
+ private recommendationSuccesses;
72
+ constructor(config?: SONALearningConfig);
73
+ initialize(): Promise<void>;
74
+ getStatus(): LearningStatus;
75
+ getMetrics(): Promise<SONAMetrics>;
76
+ reset(): Promise<void>;
77
+ storePattern(pattern: LearnedPattern): Promise<void>;
78
+ getPatterns(query: PatternQuery): Promise<LearnedPattern[]>;
79
+ findSimilarPatterns(embedding: number[], limit?: number): Promise<LearnedPattern[]>;
80
+ updatePatternConfidence(patternId: string, success: boolean): Promise<void>;
81
+ recommendStrategy(taskState: unknown): Promise<StrategyRecommendation | null>;
82
+ recordRecommendationOutcome(recommendation: StrategyRecommendation, success: boolean): Promise<void>;
83
+ recordExecution(event: ExecutionEvent): Promise<void>;
84
+ getExecutionHistory(limit?: number): Promise<ExecutionEvent[]>;
85
+ train(iterations?: number): Promise<TrainingResult>;
86
+ exportPatterns(): Promise<LearnedPattern[]>;
87
+ importPatterns(patterns: LearnedPattern[]): Promise<number>;
88
+ /**
89
+ * Adapt MicroLoRA from a high-confidence pattern
90
+ */
91
+ private adaptMicroLoRA;
92
+ /**
93
+ * Adapt from a successful execution
94
+ */
95
+ private adaptFromExecution;
96
+ /**
97
+ * Consolidate MicroLoRA to BaseLoRA (every N tasks)
98
+ */
99
+ private consolidateToBaseLoRA;
100
+ /**
101
+ * Prune low-quality patterns when exceeding limit
102
+ */
103
+ private prunePatterns;
104
+ private getStateEmbedding;
105
+ private cosineSimilarity;
106
+ private calculateAverageConfidence;
107
+ private calculateEwcRetention;
108
+ private calculateEwcWeight;
109
+ private calculateImprovement;
110
+ }
111
+ /**
112
+ * Create a SONA learning strategy
113
+ */
114
+ export declare function createSONALearningStrategy(config?: SONALearningConfig): SONALearningStrategy;
115
+ //# sourceMappingURL=SONALearningStrategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SONALearningStrategy.d.ts","sourceRoot":"","sources":["../../../src/core/strategies/SONALearningStrategy.ts"],"names":[],"mappings":"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"}