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.
- package/.claude/agents/qe-a11y-ally.md +855 -0
- package/.claude/agents/qx-partner.md +120 -4
- package/.claude/skills/testability-scoring/SKILL.md +107 -6
- package/CHANGELOG.md +135 -0
- package/README.md +7 -6
- package/dist/agents/AccessibilityAllyAgent.d.ts +168 -0
- package/dist/agents/AccessibilityAllyAgent.d.ts.map +1 -0
- package/dist/agents/AccessibilityAllyAgent.js +462 -0
- package/dist/agents/AccessibilityAllyAgent.js.map +1 -0
- package/dist/agents/SONAIntegration.d.ts +109 -0
- package/dist/agents/SONAIntegration.d.ts.map +1 -0
- package/dist/agents/SONAIntegration.js +167 -0
- package/dist/agents/SONAIntegration.js.map +1 -0
- package/dist/agents/index.d.ts +3 -0
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +93 -2
- package/dist/agents/index.js.map +1 -1
- package/dist/cli/init/agents.js +1 -1
- package/dist/cli/init/claude-config.js +2 -2
- package/dist/cli/init/database-init.js +1 -1
- package/dist/core/cache/BinaryCacheImpl.d.ts +161 -0
- package/dist/core/cache/BinaryCacheImpl.d.ts.map +1 -0
- package/dist/core/cache/BinaryCacheImpl.js +685 -0
- package/dist/core/cache/BinaryCacheImpl.js.map +1 -0
- package/dist/core/cache/BinaryMetadataCache.d.ts +244 -0
- package/dist/core/cache/BinaryMetadataCache.d.ts.map +1 -1
- package/dist/core/cache/BinaryMetadataCache.js +63 -1
- package/dist/core/cache/BinaryMetadataCache.js.map +1 -1
- package/dist/core/cache/index.d.ts +1 -0
- package/dist/core/cache/index.d.ts.map +1 -1
- package/dist/core/cache/index.js +10 -1
- package/dist/core/cache/index.js.map +1 -1
- package/dist/core/memory/AgentDBService.d.ts +30 -4
- package/dist/core/memory/AgentDBService.d.ts.map +1 -1
- package/dist/core/memory/AgentDBService.js +122 -12
- package/dist/core/memory/AgentDBService.js.map +1 -1
- package/dist/core/memory/CachedHNSWVectorMemory.d.ts +153 -0
- package/dist/core/memory/CachedHNSWVectorMemory.d.ts.map +1 -0
- package/dist/core/memory/CachedHNSWVectorMemory.js +329 -0
- package/dist/core/memory/CachedHNSWVectorMemory.js.map +1 -0
- package/dist/core/memory/HNSWVectorMemory.js +1 -1
- package/dist/core/memory/RuVectorPatternStore.d.ts.map +1 -1
- package/dist/core/memory/RuVectorPatternStore.js +8 -2
- package/dist/core/memory/RuVectorPatternStore.js.map +1 -1
- package/dist/core/memory/UnifiedMemoryCoordinator.d.ts +50 -0
- package/dist/core/memory/UnifiedMemoryCoordinator.d.ts.map +1 -1
- package/dist/core/memory/UnifiedMemoryCoordinator.js +206 -0
- package/dist/core/memory/UnifiedMemoryCoordinator.js.map +1 -1
- package/dist/core/memory/index.d.ts +2 -0
- package/dist/core/memory/index.d.ts.map +1 -1
- package/dist/core/memory/index.js +8 -1
- package/dist/core/memory/index.js.map +1 -1
- package/dist/core/optimization/RecursiveOptimizer.d.ts +233 -0
- package/dist/core/optimization/RecursiveOptimizer.d.ts.map +1 -0
- package/dist/core/optimization/RecursiveOptimizer.js +509 -0
- package/dist/core/optimization/RecursiveOptimizer.js.map +1 -0
- package/dist/core/strategies/SONALearningStrategy.d.ts +115 -0
- package/dist/core/strategies/SONALearningStrategy.d.ts.map +1 -0
- package/dist/core/strategies/SONALearningStrategy.js +656 -0
- package/dist/core/strategies/SONALearningStrategy.js.map +1 -0
- package/dist/core/strategies/TRMLearningStrategy.d.ts +162 -0
- package/dist/core/strategies/TRMLearningStrategy.d.ts.map +1 -0
- package/dist/core/strategies/TRMLearningStrategy.js +670 -0
- package/dist/core/strategies/TRMLearningStrategy.js.map +1 -0
- package/dist/core/strategies/index.d.ts +10 -1
- package/dist/core/strategies/index.d.ts.map +1 -1
- package/dist/core/strategies/index.js +4 -1
- package/dist/core/strategies/index.js.map +1 -1
- package/dist/learning/SONAFeedbackLoop.d.ts +168 -0
- package/dist/learning/SONAFeedbackLoop.d.ts.map +1 -0
- package/dist/learning/SONAFeedbackLoop.js +344 -0
- package/dist/learning/SONAFeedbackLoop.js.map +1 -0
- package/dist/learning/baselines/BaselineCollector.d.ts +1 -1
- package/dist/learning/baselines/BaselineCollector.js +1 -1
- package/dist/learning/baselines/StandardTaskSuite.d.ts +1 -1
- package/dist/learning/baselines/StandardTaskSuite.js +1 -1
- package/dist/learning/index.d.ts +2 -0
- package/dist/learning/index.d.ts.map +1 -1
- package/dist/learning/index.js +6 -1
- package/dist/learning/index.js.map +1 -1
- package/dist/mcp/server-instructions.d.ts +1 -1
- package/dist/mcp/server-instructions.js +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +23 -16
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
- package/dist/mcp/services/AgentRegistry.js +6 -1
- package/dist/mcp/services/AgentRegistry.js.map +1 -1
- package/dist/mcp/tools/qe/accessibility/accname-computation.d.ts +114 -0
- package/dist/mcp/tools/qe/accessibility/accname-computation.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/accname-computation.js +566 -0
- package/dist/mcp/tools/qe/accessibility/accname-computation.js.map +1 -0
- package/dist/mcp/tools/qe/accessibility/apg-patterns.d.ts +103 -0
- package/dist/mcp/tools/qe/accessibility/apg-patterns.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/apg-patterns.js +1028 -0
- package/dist/mcp/tools/qe/accessibility/apg-patterns.js.map +1 -0
- package/dist/mcp/tools/qe/accessibility/en-301-549-mapping.d.ts +48 -0
- package/dist/mcp/tools/qe/accessibility/en-301-549-mapping.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/en-301-549-mapping.js +565 -0
- package/dist/mcp/tools/qe/accessibility/en-301-549-mapping.js.map +1 -0
- package/dist/mcp/tools/qe/accessibility/eu-accessibility-act.d.ts +117 -0
- package/dist/mcp/tools/qe/accessibility/eu-accessibility-act.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/eu-accessibility-act.js +571 -0
- package/dist/mcp/tools/qe/accessibility/eu-accessibility-act.js.map +1 -0
- package/dist/mcp/tools/qe/accessibility/html-report-generator.d.ts +23 -0
- package/dist/mcp/tools/qe/accessibility/html-report-generator.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/html-report-generator.js +1152 -0
- package/dist/mcp/tools/qe/accessibility/html-report-generator.js.map +1 -0
- package/dist/mcp/tools/qe/accessibility/index.d.ts +22 -0
- package/dist/mcp/tools/qe/accessibility/index.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/index.js +38 -0
- package/dist/mcp/tools/qe/accessibility/index.js.map +1 -0
- package/dist/mcp/tools/qe/accessibility/markdown-report-generator.d.ts +18 -0
- package/dist/mcp/tools/qe/accessibility/markdown-report-generator.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/markdown-report-generator.js +549 -0
- package/dist/mcp/tools/qe/accessibility/markdown-report-generator.js.map +1 -0
- package/dist/mcp/tools/qe/accessibility/remediation-code-generator.d.ts +139 -0
- package/dist/mcp/tools/qe/accessibility/remediation-code-generator.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/remediation-code-generator.js +1300 -0
- package/dist/mcp/tools/qe/accessibility/remediation-code-generator.js.map +1 -0
- package/dist/mcp/tools/qe/accessibility/scan-comprehensive.d.ts +138 -0
- package/dist/mcp/tools/qe/accessibility/scan-comprehensive.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/scan-comprehensive.js +1298 -0
- package/dist/mcp/tools/qe/accessibility/scan-comprehensive.js.map +1 -0
- package/dist/mcp/tools/qe/accessibility/video-vision-analyzer.d.ts +50 -0
- package/dist/mcp/tools/qe/accessibility/video-vision-analyzer.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/video-vision-analyzer.js +469 -0
- package/dist/mcp/tools/qe/accessibility/video-vision-analyzer.js.map +1 -0
- package/dist/mcp/tools/qe/accessibility/webvtt-generator.d.ts +193 -0
- package/dist/mcp/tools/qe/accessibility/webvtt-generator.d.ts.map +1 -0
- package/dist/mcp/tools/qe/accessibility/webvtt-generator.js +511 -0
- package/dist/mcp/tools/qe/accessibility/webvtt-generator.js.map +1 -0
- package/dist/mcp/tools.d.ts +1 -0
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +61 -0
- package/dist/mcp/tools.js.map +1 -1
- package/dist/providers/HybridRouter.d.ts +34 -3
- package/dist/providers/HybridRouter.d.ts.map +1 -1
- package/dist/providers/HybridRouter.js +69 -4
- package/dist/providers/HybridRouter.js.map +1 -1
- package/dist/providers/LLMProviderFactory.d.ts +68 -1
- package/dist/providers/LLMProviderFactory.d.ts.map +1 -1
- package/dist/providers/LLMProviderFactory.js +173 -6
- package/dist/providers/LLMProviderFactory.js.map +1 -1
- package/dist/providers/OpenRouterProvider.d.ts +150 -0
- package/dist/providers/OpenRouterProvider.d.ts.map +1 -0
- package/dist/providers/OpenRouterProvider.js +545 -0
- package/dist/providers/OpenRouterProvider.js.map +1 -0
- package/dist/providers/RuvllmProvider.d.ts +130 -16
- package/dist/providers/RuvllmProvider.d.ts.map +1 -1
- package/dist/providers/RuvllmProvider.js +399 -83
- package/dist/providers/RuvllmProvider.js.map +1 -1
- package/dist/providers/index.d.ts +33 -4
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +72 -21
- package/dist/providers/index.js.map +1 -1
- package/dist/telemetry/instrumentation/agent.d.ts +1 -1
- package/dist/telemetry/instrumentation/agent.js +1 -1
- package/dist/telemetry/instrumentation/index.d.ts +1 -1
- package/dist/telemetry/instrumentation/index.js +1 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/ruvllm.d.ts +97 -0
- package/dist/types/ruvllm.d.ts.map +1 -0
- package/dist/types/ruvllm.js +46 -0
- package/dist/types/ruvllm.js.map +1 -0
- package/dist/utils/ruvllm-loader.d.ts +94 -0
- package/dist/utils/ruvllm-loader.d.ts.map +1 -0
- package/dist/utils/ruvllm-loader.js +87 -0
- package/dist/utils/ruvllm-loader.js.map +1 -0
- package/docs/reference/agents.md +36 -1
- 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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"}
|