agentic-qe 2.5.7 → 2.5.9
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/CHANGELOG.md +133 -0
- package/README.md +1 -1
- package/dist/agents/BaseAgent.d.ts +231 -4
- package/dist/agents/BaseAgent.d.ts.map +1 -1
- package/dist/agents/BaseAgent.js +535 -5
- package/dist/agents/BaseAgent.js.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.d.ts +20 -23
- package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.js +95 -145
- package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
- package/dist/agents/QualityAnalyzerAgent.d.ts +2 -2
- package/dist/agents/QualityAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/QualityAnalyzerAgent.js.map +1 -1
- package/dist/agents/QualityGateAgent.d.ts +35 -18
- package/dist/agents/QualityGateAgent.d.ts.map +1 -1
- package/dist/agents/QualityGateAgent.js +72 -97
- package/dist/agents/QualityGateAgent.js.map +1 -1
- package/dist/agents/TestGeneratorAgent.d.ts +5 -0
- package/dist/agents/TestGeneratorAgent.d.ts.map +1 -1
- package/dist/agents/TestGeneratorAgent.js +38 -0
- package/dist/agents/TestGeneratorAgent.js.map +1 -1
- package/dist/agents/index.d.ts +1 -1
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +17 -4
- package/dist/agents/index.js.map +1 -1
- package/dist/core/memory/HNSWVectorMemory.js +1 -1
- package/dist/core/memory/RuVectorPatternStore.d.ts +90 -0
- package/dist/core/memory/RuVectorPatternStore.d.ts.map +1 -1
- package/dist/core/memory/RuVectorPatternStore.js +209 -0
- package/dist/core/memory/RuVectorPatternStore.js.map +1 -1
- package/dist/learning/FederatedManager.d.ts +232 -0
- package/dist/learning/FederatedManager.d.ts.map +1 -0
- package/dist/learning/FederatedManager.js +489 -0
- package/dist/learning/FederatedManager.js.map +1 -0
- package/dist/learning/HNSWPatternAdapter.d.ts +117 -0
- package/dist/learning/HNSWPatternAdapter.d.ts.map +1 -0
- package/dist/learning/HNSWPatternAdapter.js +262 -0
- package/dist/learning/HNSWPatternAdapter.js.map +1 -0
- package/dist/learning/LearningEngine.d.ts +27 -0
- package/dist/learning/LearningEngine.d.ts.map +1 -1
- package/dist/learning/LearningEngine.js +75 -1
- package/dist/learning/LearningEngine.js.map +1 -1
- package/dist/learning/PatternCurator.d.ts +217 -0
- package/dist/learning/PatternCurator.d.ts.map +1 -0
- package/dist/learning/PatternCurator.js +393 -0
- package/dist/learning/PatternCurator.js.map +1 -0
- package/dist/learning/index.d.ts +6 -0
- package/dist/learning/index.d.ts.map +1 -1
- package/dist/learning/index.js +16 -1
- package/dist/learning/index.js.map +1 -1
- package/dist/learning/types.d.ts +4 -0
- package/dist/learning/types.d.ts.map +1 -1
- package/dist/mcp/server-instructions.d.ts +1 -1
- package/dist/mcp/server-instructions.js +1 -1
- package/dist/mcp/tools.d.ts +6 -0
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +121 -0
- package/dist/mcp/tools.js.map +1 -1
- package/dist/memory/HNSWPatternStore.d.ts +176 -0
- package/dist/memory/HNSWPatternStore.d.ts.map +1 -0
- package/dist/memory/HNSWPatternStore.js +392 -0
- package/dist/memory/HNSWPatternStore.js.map +1 -0
- package/dist/memory/index.d.ts +8 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +13 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/providers/HybridRouter.d.ts +85 -4
- package/dist/providers/HybridRouter.d.ts.map +1 -1
- package/dist/providers/HybridRouter.js +332 -10
- package/dist/providers/HybridRouter.js.map +1 -1
- package/dist/providers/LLMBaselineTracker.d.ts +120 -0
- package/dist/providers/LLMBaselineTracker.d.ts.map +1 -0
- package/dist/providers/LLMBaselineTracker.js +305 -0
- package/dist/providers/LLMBaselineTracker.js.map +1 -0
- package/dist/providers/OpenRouterProvider.d.ts +26 -0
- package/dist/providers/OpenRouterProvider.d.ts.map +1 -1
- package/dist/providers/OpenRouterProvider.js +75 -6
- package/dist/providers/OpenRouterProvider.js.map +1 -1
- package/dist/providers/RuVectorClient.d.ts +259 -0
- package/dist/providers/RuVectorClient.d.ts.map +1 -0
- package/dist/providers/RuVectorClient.js +416 -0
- package/dist/providers/RuVectorClient.js.map +1 -0
- package/dist/providers/RuvllmPatternCurator.d.ts +116 -0
- package/dist/providers/RuvllmPatternCurator.d.ts.map +1 -0
- package/dist/providers/RuvllmPatternCurator.js +323 -0
- package/dist/providers/RuvllmPatternCurator.js.map +1 -0
- package/dist/providers/RuvllmProvider.d.ts +233 -1
- package/dist/providers/RuvllmProvider.d.ts.map +1 -1
- package/dist/providers/RuvllmProvider.js +781 -11
- package/dist/providers/RuvllmProvider.js.map +1 -1
- package/dist/providers/index.d.ts +5 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +12 -2
- package/dist/providers/index.js.map +1 -1
- package/dist/utils/ruvllm-loader.d.ts +98 -1
- package/dist/utils/ruvllm-loader.d.ts.map +1 -1
- package/dist/utils/ruvllm-loader.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* RuvllmPatternCurator - Integration layer between PatternCurator and RuvllmProvider
|
|
4
|
+
*
|
|
5
|
+
* Phase 0 M0.6: Wires manual pattern curation to RuvLLM's learning system
|
|
6
|
+
*
|
|
7
|
+
* This adapter:
|
|
8
|
+
* - Implements IPatternSource using HNSWPatternAdapter
|
|
9
|
+
* - Implements ILearningTrigger using RuvllmProvider
|
|
10
|
+
* - Enables manual curation to improve RuvLLM routing decisions
|
|
11
|
+
* - Provides 20% better routing through curated patterns
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.RuvllmPatternCurator = void 0;
|
|
15
|
+
exports.createRuvllmPatternCurator = createRuvllmPatternCurator;
|
|
16
|
+
const events_1 = require("events");
|
|
17
|
+
const PatternCurator_1 = require("../learning/PatternCurator");
|
|
18
|
+
const HNSWPatternAdapter_1 = require("../learning/HNSWPatternAdapter");
|
|
19
|
+
const Logger_1 = require("../utils/Logger");
|
|
20
|
+
const crypto_1 = require("crypto");
|
|
21
|
+
/**
|
|
22
|
+
* Adapter that implements IPatternSource using HNSW or RuvLLM memory
|
|
23
|
+
*/
|
|
24
|
+
class RuvllmPatternSource {
|
|
25
|
+
constructor(ruvllm, hnswAdapter, useEmbeddings = true) {
|
|
26
|
+
this.logger = Logger_1.Logger.getInstance();
|
|
27
|
+
this.ruvllm = ruvllm;
|
|
28
|
+
this.hnswAdapter = hnswAdapter;
|
|
29
|
+
this.useEmbeddings = useEmbeddings;
|
|
30
|
+
}
|
|
31
|
+
async findSimilar(query, k, options) {
|
|
32
|
+
const minConf = options?.minConfidence ?? 0;
|
|
33
|
+
// Try HNSW similarity search first
|
|
34
|
+
if (this.hnswAdapter && this.useEmbeddings) {
|
|
35
|
+
try {
|
|
36
|
+
const results = await this.hnswAdapter.searchSimilar(query, k);
|
|
37
|
+
return results
|
|
38
|
+
.filter(r => r.pattern.confidence >= minConf)
|
|
39
|
+
.map(r => this.convertToStoredPattern(r.pattern));
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
this.logger.warn('HNSW search failed, falling back to memory search:', error);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
// Fallback: Use RuvLLM memory search
|
|
46
|
+
try {
|
|
47
|
+
const memoryResults = this.ruvllm.searchMemory(query, k);
|
|
48
|
+
return memoryResults
|
|
49
|
+
.filter((m) => (m.confidence ?? 0.5) >= minConf)
|
|
50
|
+
.map((m) => this.convertMemoryToPattern(m));
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
this.logger.warn('RuvLLM memory search failed:', error);
|
|
54
|
+
return [];
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
async findByConfidenceRange(minConfidence, maxConfidence, limit) {
|
|
58
|
+
// Use HNSW adapter if available
|
|
59
|
+
if (this.hnswAdapter && this.useEmbeddings) {
|
|
60
|
+
try {
|
|
61
|
+
// Get all patterns and filter by confidence
|
|
62
|
+
const allResults = await this.hnswAdapter.searchSimilar('', limit * 10);
|
|
63
|
+
return allResults
|
|
64
|
+
.filter(r => r.pattern.confidence >= minConfidence && r.pattern.confidence <= maxConfidence)
|
|
65
|
+
.slice(0, limit)
|
|
66
|
+
.map(r => this.convertToStoredPattern(r.pattern));
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
this.logger.warn('HNSW confidence range search failed:', error);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
// Return empty - RuvLLM doesn't have direct confidence range query
|
|
73
|
+
return [];
|
|
74
|
+
}
|
|
75
|
+
async remove(id) {
|
|
76
|
+
if (this.hnswAdapter) {
|
|
77
|
+
try {
|
|
78
|
+
await this.hnswAdapter.deletePattern(id);
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
this.logger.warn('Failed to remove pattern from HNSW:', error);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// Note: RuvLLM memory doesn't support direct removal
|
|
85
|
+
}
|
|
86
|
+
async update(id, updates) {
|
|
87
|
+
// For HNSW, we need to re-store the pattern with updated values
|
|
88
|
+
if (this.hnswAdapter && updates.content) {
|
|
89
|
+
try {
|
|
90
|
+
await this.hnswAdapter.storePattern({
|
|
91
|
+
id,
|
|
92
|
+
pattern: updates.content,
|
|
93
|
+
confidence: updates.confidence ?? 0.5,
|
|
94
|
+
usageCount: updates.usageCount ?? 0,
|
|
95
|
+
successRate: 0.5,
|
|
96
|
+
contexts: [updates.category ?? 'test-generation'],
|
|
97
|
+
averageReward: 0,
|
|
98
|
+
createdAt: updates.createdAt ? new Date(updates.createdAt) : new Date(),
|
|
99
|
+
lastUsedAt: updates.lastUsedAt ? new Date(updates.lastUsedAt) : new Date(),
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
this.logger.warn('Failed to update pattern in HNSW:', error);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
async getStats() {
|
|
108
|
+
if (this.hnswAdapter) {
|
|
109
|
+
try {
|
|
110
|
+
const stats = await this.hnswAdapter.getStats();
|
|
111
|
+
return {
|
|
112
|
+
total: stats.patternCount,
|
|
113
|
+
avgConfidence: 0.7, // Approximate
|
|
114
|
+
avgQuality: 0.7, // Approximate
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
this.logger.warn('Failed to get HNSW stats:', error);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return { total: 0, avgConfidence: 0, avgQuality: 0 };
|
|
122
|
+
}
|
|
123
|
+
convertToStoredPattern(pattern) {
|
|
124
|
+
return {
|
|
125
|
+
id: pattern.id,
|
|
126
|
+
embedding: pattern.embedding || [],
|
|
127
|
+
content: pattern.pattern,
|
|
128
|
+
category: pattern.contexts?.[0] || 'test-generation',
|
|
129
|
+
confidence: pattern.confidence ?? 0.5,
|
|
130
|
+
quality: pattern.successRate ?? 0.5,
|
|
131
|
+
usageCount: pattern.usageCount ?? 0,
|
|
132
|
+
createdAt: pattern.createdAt?.getTime() ?? Date.now(),
|
|
133
|
+
lastUsedAt: pattern.lastUsedAt?.getTime() ?? Date.now(),
|
|
134
|
+
metadata: {},
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
convertMemoryToPattern(memory) {
|
|
138
|
+
return {
|
|
139
|
+
id: memory.id || (0, crypto_1.randomUUID)(),
|
|
140
|
+
embedding: memory.embedding || [],
|
|
141
|
+
content: memory.text || memory.content || '',
|
|
142
|
+
category: memory.category || 'test-generation',
|
|
143
|
+
confidence: memory.confidence ?? 0.5,
|
|
144
|
+
quality: memory.quality ?? 0.5,
|
|
145
|
+
usageCount: memory.usageCount ?? 0,
|
|
146
|
+
createdAt: memory.createdAt ?? Date.now(),
|
|
147
|
+
lastUsedAt: memory.lastUsedAt ?? Date.now(),
|
|
148
|
+
metadata: memory.metadata || {},
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Adapter that implements ILearningTrigger using RuvllmProvider
|
|
154
|
+
*/
|
|
155
|
+
class RuvllmLearningTrigger {
|
|
156
|
+
constructor(ruvllm) {
|
|
157
|
+
this.feedbackCount = 0;
|
|
158
|
+
this.logger = Logger_1.Logger.getInstance();
|
|
159
|
+
this.ruvllm = ruvllm;
|
|
160
|
+
}
|
|
161
|
+
async feedback(data) {
|
|
162
|
+
try {
|
|
163
|
+
// Send feedback to RuvLLM for learning
|
|
164
|
+
await this.ruvllm.provideFeedback({
|
|
165
|
+
requestId: data.requestId,
|
|
166
|
+
correction: data.correction,
|
|
167
|
+
rating: data.rating,
|
|
168
|
+
reasoning: data.reasoning,
|
|
169
|
+
});
|
|
170
|
+
this.feedbackCount++;
|
|
171
|
+
this.logger.debug('Sent feedback to RuvLLM', { requestId: data.requestId });
|
|
172
|
+
}
|
|
173
|
+
catch (error) {
|
|
174
|
+
this.logger.warn('Failed to send feedback to RuvLLM:', error);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
async forceLearn() {
|
|
178
|
+
try {
|
|
179
|
+
// Trigger RuvLLM learning consolidation
|
|
180
|
+
const result = await this.ruvllm.forceLearn();
|
|
181
|
+
this.logger.info('Forced RuvLLM learning consolidation', result);
|
|
182
|
+
const consolidated = this.feedbackCount;
|
|
183
|
+
this.feedbackCount = 0;
|
|
184
|
+
return {
|
|
185
|
+
patternsConsolidated: result.patternsConsolidated ?? consolidated,
|
|
186
|
+
newWeightVersion: result.newWeightVersion ?? 1,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
catch (error) {
|
|
190
|
+
this.logger.warn('Failed to force RuvLLM learning:', error);
|
|
191
|
+
return { patternsConsolidated: 0, newWeightVersion: 0 };
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
async getRoutingStats() {
|
|
195
|
+
try {
|
|
196
|
+
const metrics = await this.ruvllm.getMetrics();
|
|
197
|
+
return {
|
|
198
|
+
totalDecisions: metrics.requestCount ?? 0,
|
|
199
|
+
avgConfidence: metrics.averageConfidence ?? 0.7,
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
catch (error) {
|
|
203
|
+
this.logger.warn('Failed to get routing stats:', error);
|
|
204
|
+
return { totalDecisions: 0, avgConfidence: 0 };
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* RuvllmPatternCurator - Unified pattern curation with RuvLLM integration
|
|
210
|
+
*/
|
|
211
|
+
class RuvllmPatternCurator extends events_1.EventEmitter {
|
|
212
|
+
constructor(config) {
|
|
213
|
+
super();
|
|
214
|
+
this.logger = Logger_1.Logger.getInstance();
|
|
215
|
+
this.ruvllm = config.ruvllmProvider;
|
|
216
|
+
// Create adapters
|
|
217
|
+
this.patternSource = new RuvllmPatternSource(config.ruvllmProvider, config.hnswAdapter, config.useEmbeddings ?? true);
|
|
218
|
+
this.learningTrigger = new RuvllmLearningTrigger(config.ruvllmProvider);
|
|
219
|
+
// Create curator with real implementations
|
|
220
|
+
this.curator = (0, PatternCurator_1.createPatternCurator)(config.curatorConfig, this.patternSource, this.learningTrigger);
|
|
221
|
+
// Forward curator events
|
|
222
|
+
this.curator.on('sessionStarted', (data) => this.emit('sessionStarted', data));
|
|
223
|
+
this.curator.on('sessionEnded', (data) => this.emit('sessionEnded', data));
|
|
224
|
+
this.curator.on('patternReviewed', (data) => this.emit('patternReviewed', data));
|
|
225
|
+
this.curator.on('autoCurateComplete', (data) => this.emit('autoCurateComplete', data));
|
|
226
|
+
this.curator.on('learningForced', (data) => this.emit('learningForced', data));
|
|
227
|
+
this.curator.on('patternsFound', (data) => this.emit('patternsFound', data));
|
|
228
|
+
this.logger.info('RuvllmPatternCurator initialized', {
|
|
229
|
+
useEmbeddings: config.useEmbeddings ?? true,
|
|
230
|
+
hasHNSW: !!config.hnswAdapter,
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Start a curation session
|
|
235
|
+
*/
|
|
236
|
+
startSession(reviewerId) {
|
|
237
|
+
return this.curator.startSession(reviewerId);
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* End current curation session
|
|
241
|
+
*/
|
|
242
|
+
endSession() {
|
|
243
|
+
return this.curator.endSession();
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Find low-confidence patterns for review
|
|
247
|
+
*/
|
|
248
|
+
async findLowConfidencePatterns(limit) {
|
|
249
|
+
return this.curator.findLowConfidencePatterns(limit);
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Review a pattern manually
|
|
253
|
+
*/
|
|
254
|
+
async reviewPattern(pattern, curation) {
|
|
255
|
+
return this.curator.reviewPattern(pattern, curation);
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Auto-curate patterns based on confidence thresholds
|
|
259
|
+
*/
|
|
260
|
+
async autoCurate() {
|
|
261
|
+
return this.curator.autoCurate();
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Force learning consolidation
|
|
265
|
+
*/
|
|
266
|
+
async forceLearning() {
|
|
267
|
+
return this.curator.forceLearning();
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Get pattern analytics
|
|
271
|
+
*/
|
|
272
|
+
async getAnalytics() {
|
|
273
|
+
return this.curator.getAnalytics();
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Get routing improvement stats
|
|
277
|
+
*/
|
|
278
|
+
async getRoutingImprovement() {
|
|
279
|
+
return this.curator.getRoutingImprovement();
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Get curation history
|
|
283
|
+
*/
|
|
284
|
+
getCurationHistory() {
|
|
285
|
+
return this.curator.getCurationHistory();
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Get current session
|
|
289
|
+
*/
|
|
290
|
+
getCurrentSession() {
|
|
291
|
+
return this.curator.getCurrentSession();
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Get pending feedback count
|
|
295
|
+
*/
|
|
296
|
+
getPendingFeedbackCount() {
|
|
297
|
+
return this.curator.getPendingFeedbackCount();
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Interactive curation generator
|
|
301
|
+
*/
|
|
302
|
+
async *interactiveCuration(limit) {
|
|
303
|
+
yield* this.curator.interactiveCuration(limit);
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
exports.RuvllmPatternCurator = RuvllmPatternCurator;
|
|
307
|
+
/**
|
|
308
|
+
* Create a RuvllmPatternCurator with default configuration
|
|
309
|
+
*/
|
|
310
|
+
function createRuvllmPatternCurator(ruvllmProvider, options) {
|
|
311
|
+
// Create HNSW adapter if embeddings enabled
|
|
312
|
+
let hnswAdapter;
|
|
313
|
+
if (options?.useEmbeddings !== false) {
|
|
314
|
+
hnswAdapter = (0, HNSWPatternAdapter_1.createHNSWPatternAdapter)(options?.hnswConfig);
|
|
315
|
+
}
|
|
316
|
+
return new RuvllmPatternCurator({
|
|
317
|
+
ruvllmProvider,
|
|
318
|
+
curatorConfig: options?.curatorConfig,
|
|
319
|
+
hnswAdapter,
|
|
320
|
+
useEmbeddings: options?.useEmbeddings ?? true,
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
//# sourceMappingURL=RuvllmPatternCurator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RuvllmPatternCurator.js","sourceRoot":"","sources":["../../src/providers/RuvllmPatternCurator.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,26 @@
|
|
|
14
14
|
* @version 2.0.0
|
|
15
15
|
*/
|
|
16
16
|
import { ILLMProvider, LLMProviderConfig, LLMCompletionOptions, LLMCompletionResponse, LLMStreamEvent, LLMEmbeddingOptions, LLMEmbeddingResponse, LLMTokenCountOptions, LLMHealthStatus, LLMProviderMetadata } from './ILLMProvider';
|
|
17
|
+
/**
|
|
18
|
+
* Session information for multi-turn conversations
|
|
19
|
+
*/
|
|
20
|
+
export interface SessionInfo {
|
|
21
|
+
id: string;
|
|
22
|
+
createdAt: number;
|
|
23
|
+
lastUsedAt: number;
|
|
24
|
+
messageCount: number;
|
|
25
|
+
context: string[];
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Session metrics for monitoring
|
|
29
|
+
*/
|
|
30
|
+
export interface SessionMetrics {
|
|
31
|
+
totalSessions: number;
|
|
32
|
+
activeSessions: number;
|
|
33
|
+
avgMessagesPerSession: number;
|
|
34
|
+
avgLatencyReduction: number;
|
|
35
|
+
cacheHitRate: number;
|
|
36
|
+
}
|
|
17
37
|
/**
|
|
18
38
|
* TRM (Test-time Reasoning & Metacognition) configuration
|
|
19
39
|
*/
|
|
@@ -66,6 +86,12 @@ export interface RuvllmProviderConfig extends LLMProviderConfig {
|
|
|
66
86
|
convergenceThreshold?: number;
|
|
67
87
|
/** SONA configuration */
|
|
68
88
|
sonaConfig?: SONAConfig;
|
|
89
|
+
/** Enable SessionManager for multi-turn conversations (default: true) */
|
|
90
|
+
enableSessions?: boolean;
|
|
91
|
+
/** Session timeout in milliseconds (default: 30 minutes) */
|
|
92
|
+
sessionTimeout?: number;
|
|
93
|
+
/** Maximum concurrent sessions (default: 100) */
|
|
94
|
+
maxSessions?: number;
|
|
69
95
|
}
|
|
70
96
|
/**
|
|
71
97
|
* TRM iteration tracking
|
|
@@ -91,6 +117,73 @@ export interface RuvllmCompletionOptions extends LLMCompletionOptions {
|
|
|
91
117
|
/** TRM configuration for this request */
|
|
92
118
|
trmConfig?: TRMConfig;
|
|
93
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* Routing decision for model selection with observability
|
|
122
|
+
*/
|
|
123
|
+
export interface RoutingDecision {
|
|
124
|
+
model: string;
|
|
125
|
+
confidence: number;
|
|
126
|
+
reasoning: string[];
|
|
127
|
+
alternatives: Array<{
|
|
128
|
+
model: string;
|
|
129
|
+
score: number;
|
|
130
|
+
}>;
|
|
131
|
+
memoryHits: number;
|
|
132
|
+
estimatedLatency: number;
|
|
133
|
+
timestamp: number;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Aggregated routing metrics
|
|
137
|
+
*/
|
|
138
|
+
export interface RoutingMetrics {
|
|
139
|
+
totalDecisions: number;
|
|
140
|
+
modelDistribution: Record<string, number>;
|
|
141
|
+
averageConfidence: number;
|
|
142
|
+
averageLatency: number;
|
|
143
|
+
memoryHitRate: number;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Batch query request
|
|
147
|
+
*/
|
|
148
|
+
export interface BatchQueryRequest {
|
|
149
|
+
/** Array of prompts to process in batch */
|
|
150
|
+
prompts: string[];
|
|
151
|
+
/** Batch processing configuration */
|
|
152
|
+
config?: {
|
|
153
|
+
/** Maximum tokens per request */
|
|
154
|
+
maxTokens?: number;
|
|
155
|
+
/** Temperature for generation */
|
|
156
|
+
temperature?: number;
|
|
157
|
+
/** Number of parallel requests (default: 4) */
|
|
158
|
+
parallelism?: number;
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Batch query response
|
|
163
|
+
*/
|
|
164
|
+
export interface BatchQueryResponse {
|
|
165
|
+
/** Individual results for each prompt */
|
|
166
|
+
results: Array<{
|
|
167
|
+
/** Generated text */
|
|
168
|
+
text: string;
|
|
169
|
+
/** Input tokens consumed */
|
|
170
|
+
tokens: number;
|
|
171
|
+
/** Output tokens generated */
|
|
172
|
+
outputTokens: number;
|
|
173
|
+
/** Request latency in ms */
|
|
174
|
+
latency: number;
|
|
175
|
+
/** Error if request failed */
|
|
176
|
+
error?: string;
|
|
177
|
+
}>;
|
|
178
|
+
/** Total time for entire batch (ms) */
|
|
179
|
+
totalLatency: number;
|
|
180
|
+
/** Average latency per request (ms) */
|
|
181
|
+
averageLatency: number;
|
|
182
|
+
/** Number of successful requests */
|
|
183
|
+
successCount: number;
|
|
184
|
+
/** Number of failed requests */
|
|
185
|
+
failureCount: number;
|
|
186
|
+
}
|
|
94
187
|
/**
|
|
95
188
|
* RuvllmProvider - Local LLM inference implementation with TRM and SONA
|
|
96
189
|
*
|
|
@@ -116,19 +209,45 @@ export declare class RuvllmProvider implements ILLMProvider {
|
|
|
116
209
|
private sonaCoordinator?;
|
|
117
210
|
private reasoningBank?;
|
|
118
211
|
private loraManager?;
|
|
212
|
+
private sessionManager?;
|
|
213
|
+
private sessions;
|
|
214
|
+
private sessionMetrics;
|
|
215
|
+
private routingHistory;
|
|
216
|
+
private readonly MAX_ROUTING_HISTORY;
|
|
119
217
|
constructor(config?: RuvllmProviderConfig);
|
|
120
218
|
/**
|
|
121
219
|
* Initialize the ruvllm provider with TRM and SONA support
|
|
122
220
|
*/
|
|
123
221
|
initialize(): Promise<void>;
|
|
124
222
|
/**
|
|
125
|
-
* Complete a prompt using ruvLLM with optional TRM refinement
|
|
223
|
+
* Complete a prompt using ruvLLM with optional TRM refinement and session support
|
|
126
224
|
*/
|
|
127
225
|
complete(options: RuvllmCompletionOptions): Promise<LLMCompletionResponse>;
|
|
128
226
|
/**
|
|
129
227
|
* Complete with TRM (Test-time Reasoning & Metacognition)
|
|
130
228
|
*/
|
|
131
229
|
completeTRM(options: RuvllmCompletionOptions): Promise<TRMCompletionResponse>;
|
|
230
|
+
/**
|
|
231
|
+
* Batch complete multiple requests in parallel using REAL ruvllm.batchQuery()
|
|
232
|
+
*
|
|
233
|
+
* M0.2: Uses RuvLLM's native batch API for 4x throughput improvement.
|
|
234
|
+
* Processes multiple prompts in a single optimized batch call.
|
|
235
|
+
* Falls back to chunked Promise.all when ruvllm not available.
|
|
236
|
+
*
|
|
237
|
+
* @param requests - Array of completion options to process
|
|
238
|
+
* @returns Array of completion responses in same order as requests
|
|
239
|
+
*
|
|
240
|
+
* @example
|
|
241
|
+
* ```typescript
|
|
242
|
+
* const requests = [
|
|
243
|
+
* { messages: [{ role: 'user', content: 'Generate test 1' }] },
|
|
244
|
+
* { messages: [{ role: 'user', content: 'Generate test 2' }] },
|
|
245
|
+
* { messages: [{ role: 'user', content: 'Generate test 3' }] }
|
|
246
|
+
* ];
|
|
247
|
+
* const responses = await provider.batchComplete(requests);
|
|
248
|
+
* ```
|
|
249
|
+
*/
|
|
250
|
+
batchComplete(requests: LLMCompletionOptions[]): Promise<LLMCompletionResponse[]>;
|
|
132
251
|
/**
|
|
133
252
|
* Basic completion without TRM
|
|
134
253
|
*/
|
|
@@ -217,5 +336,118 @@ export declare class RuvllmProvider implements ILLMProvider {
|
|
|
217
336
|
* Map finish reason to standard stop reason
|
|
218
337
|
*/
|
|
219
338
|
private mapStopReason;
|
|
339
|
+
/**
|
|
340
|
+
* Get routing decision for observability (M0.4)
|
|
341
|
+
* Uses REAL ruvllm.route() for intelligent model selection
|
|
342
|
+
* Returns detailed routing decision with reasoning path and alternatives
|
|
343
|
+
*
|
|
344
|
+
* Note: The native ruvllm.route() returns {model, contextSize, temperature, topP, confidence}
|
|
345
|
+
* We adapt this to our extended RoutingDecision interface.
|
|
346
|
+
*/
|
|
347
|
+
getRoutingDecision(input: string, memoryHits?: number): RoutingDecision;
|
|
348
|
+
/**
|
|
349
|
+
* Record routing decision for analysis (M0.4)
|
|
350
|
+
* Stores decision in history for metrics and observability
|
|
351
|
+
*/
|
|
352
|
+
recordRoutingDecision(decision: RoutingDecision): void;
|
|
353
|
+
/**
|
|
354
|
+
* Get aggregated routing metrics
|
|
355
|
+
*/
|
|
356
|
+
getRoutingMetrics(): RoutingMetrics;
|
|
357
|
+
/**
|
|
358
|
+
* Get recent routing decisions
|
|
359
|
+
*/
|
|
360
|
+
getRoutingHistory(limit?: number): RoutingDecision[];
|
|
361
|
+
/**
|
|
362
|
+
* Create a new session
|
|
363
|
+
* Uses REAL SessionManager from @ruvector/ruvllm when available (M0.1)
|
|
364
|
+
*/
|
|
365
|
+
createSession(): SessionInfo;
|
|
366
|
+
/**
|
|
367
|
+
* Get existing session or create new one
|
|
368
|
+
* Uses REAL SessionManager from @ruvector/ruvllm when available (M0.1)
|
|
369
|
+
*/
|
|
370
|
+
private getOrCreateSession;
|
|
371
|
+
/**
|
|
372
|
+
* Get an existing session
|
|
373
|
+
* Uses REAL SessionManager from @ruvector/ruvllm when available (M0.1)
|
|
374
|
+
*/
|
|
375
|
+
getSession(sessionId: string): SessionInfo | undefined;
|
|
376
|
+
/**
|
|
377
|
+
* End a session and clean up resources
|
|
378
|
+
* Uses REAL SessionManager from @ruvector/ruvllm when available (M0.1)
|
|
379
|
+
*/
|
|
380
|
+
endSession(sessionId: string): boolean;
|
|
381
|
+
/**
|
|
382
|
+
* Chat within a session using REAL SessionManager (M0.1 - 50% faster)
|
|
383
|
+
* This method provides direct access to the optimized session chat
|
|
384
|
+
*/
|
|
385
|
+
sessionChat(sessionId: string, input: string): Promise<string>;
|
|
386
|
+
/**
|
|
387
|
+
* Get session metrics for monitoring
|
|
388
|
+
*/
|
|
389
|
+
getSessionMetrics(): SessionMetrics;
|
|
390
|
+
/**
|
|
391
|
+
* Enhance completion options with session context
|
|
392
|
+
*/
|
|
393
|
+
private enhanceWithSessionContext;
|
|
394
|
+
/**
|
|
395
|
+
* Update session with new message exchange
|
|
396
|
+
*/
|
|
397
|
+
private updateSession;
|
|
398
|
+
/**
|
|
399
|
+
* Evict oldest session to maintain max sessions limit
|
|
400
|
+
*/
|
|
401
|
+
private evictOldestSession;
|
|
402
|
+
/**
|
|
403
|
+
* Start periodic session cleanup
|
|
404
|
+
*/
|
|
405
|
+
private startSessionCleanup;
|
|
406
|
+
/**
|
|
407
|
+
* Search RuvLLM memory for similar patterns
|
|
408
|
+
* Phase 0 M0.6: Enables PatternCurator to find patterns for curation
|
|
409
|
+
*
|
|
410
|
+
* @param query Search query
|
|
411
|
+
* @param limit Maximum results to return
|
|
412
|
+
* @returns Array of memory results with text, confidence, and metadata
|
|
413
|
+
*/
|
|
414
|
+
searchMemory(query: string, limit?: number): Array<{
|
|
415
|
+
id: string;
|
|
416
|
+
text: string;
|
|
417
|
+
confidence: number;
|
|
418
|
+
metadata?: Record<string, unknown>;
|
|
419
|
+
}>;
|
|
420
|
+
/**
|
|
421
|
+
* Provide feedback to RuvLLM for learning
|
|
422
|
+
* Phase 0 M0.6: Enables PatternCurator to send curation results to RuvLLM
|
|
423
|
+
*
|
|
424
|
+
* @param feedback Learning feedback data
|
|
425
|
+
*/
|
|
426
|
+
provideFeedback(feedback: {
|
|
427
|
+
requestId: string;
|
|
428
|
+
correction: string;
|
|
429
|
+
rating: number;
|
|
430
|
+
reasoning: string;
|
|
431
|
+
}): Promise<void>;
|
|
432
|
+
/**
|
|
433
|
+
* Force RuvLLM learning consolidation
|
|
434
|
+
* Phase 0 M0.6: Triggers pattern consolidation after curation session
|
|
435
|
+
*
|
|
436
|
+
* @returns Consolidation results with patterns consolidated and new weight version
|
|
437
|
+
*/
|
|
438
|
+
forceLearn(): Promise<{
|
|
439
|
+
patternsConsolidated: number;
|
|
440
|
+
newWeightVersion: number;
|
|
441
|
+
}>;
|
|
442
|
+
/**
|
|
443
|
+
* Get RuvLLM provider metrics
|
|
444
|
+
* Phase 0 M0.6: Provides metrics for routing improvement tracking
|
|
445
|
+
*/
|
|
446
|
+
getMetrics(): Promise<{
|
|
447
|
+
requestCount: number;
|
|
448
|
+
averageLatency: number;
|
|
449
|
+
averageConfidence: number;
|
|
450
|
+
errorCount: number;
|
|
451
|
+
}>;
|
|
220
452
|
}
|
|
221
453
|
//# sourceMappingURL=RuvllmProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuvllmProvider.d.ts","sourceRoot":"","sources":["../../src/providers/RuvllmProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"RuvllmProvider.d.ts","sourceRoot":"","sources":["../../src/providers/RuvllmProvider.ts"],"names":[],"mappings":"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"}
|