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.
Files changed (98) hide show
  1. package/CHANGELOG.md +133 -0
  2. package/README.md +1 -1
  3. package/dist/agents/BaseAgent.d.ts +231 -4
  4. package/dist/agents/BaseAgent.d.ts.map +1 -1
  5. package/dist/agents/BaseAgent.js +535 -5
  6. package/dist/agents/BaseAgent.js.map +1 -1
  7. package/dist/agents/CoverageAnalyzerAgent.d.ts +20 -23
  8. package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -1
  9. package/dist/agents/CoverageAnalyzerAgent.js +95 -145
  10. package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
  11. package/dist/agents/QualityAnalyzerAgent.d.ts +2 -2
  12. package/dist/agents/QualityAnalyzerAgent.d.ts.map +1 -1
  13. package/dist/agents/QualityAnalyzerAgent.js.map +1 -1
  14. package/dist/agents/QualityGateAgent.d.ts +35 -18
  15. package/dist/agents/QualityGateAgent.d.ts.map +1 -1
  16. package/dist/agents/QualityGateAgent.js +72 -97
  17. package/dist/agents/QualityGateAgent.js.map +1 -1
  18. package/dist/agents/TestGeneratorAgent.d.ts +5 -0
  19. package/dist/agents/TestGeneratorAgent.d.ts.map +1 -1
  20. package/dist/agents/TestGeneratorAgent.js +38 -0
  21. package/dist/agents/TestGeneratorAgent.js.map +1 -1
  22. package/dist/agents/index.d.ts +1 -1
  23. package/dist/agents/index.d.ts.map +1 -1
  24. package/dist/agents/index.js +17 -4
  25. package/dist/agents/index.js.map +1 -1
  26. package/dist/core/memory/HNSWVectorMemory.js +1 -1
  27. package/dist/core/memory/RuVectorPatternStore.d.ts +90 -0
  28. package/dist/core/memory/RuVectorPatternStore.d.ts.map +1 -1
  29. package/dist/core/memory/RuVectorPatternStore.js +209 -0
  30. package/dist/core/memory/RuVectorPatternStore.js.map +1 -1
  31. package/dist/learning/FederatedManager.d.ts +232 -0
  32. package/dist/learning/FederatedManager.d.ts.map +1 -0
  33. package/dist/learning/FederatedManager.js +489 -0
  34. package/dist/learning/FederatedManager.js.map +1 -0
  35. package/dist/learning/HNSWPatternAdapter.d.ts +117 -0
  36. package/dist/learning/HNSWPatternAdapter.d.ts.map +1 -0
  37. package/dist/learning/HNSWPatternAdapter.js +262 -0
  38. package/dist/learning/HNSWPatternAdapter.js.map +1 -0
  39. package/dist/learning/LearningEngine.d.ts +27 -0
  40. package/dist/learning/LearningEngine.d.ts.map +1 -1
  41. package/dist/learning/LearningEngine.js +75 -1
  42. package/dist/learning/LearningEngine.js.map +1 -1
  43. package/dist/learning/PatternCurator.d.ts +217 -0
  44. package/dist/learning/PatternCurator.d.ts.map +1 -0
  45. package/dist/learning/PatternCurator.js +393 -0
  46. package/dist/learning/PatternCurator.js.map +1 -0
  47. package/dist/learning/index.d.ts +6 -0
  48. package/dist/learning/index.d.ts.map +1 -1
  49. package/dist/learning/index.js +16 -1
  50. package/dist/learning/index.js.map +1 -1
  51. package/dist/learning/types.d.ts +4 -0
  52. package/dist/learning/types.d.ts.map +1 -1
  53. package/dist/mcp/server-instructions.d.ts +1 -1
  54. package/dist/mcp/server-instructions.js +1 -1
  55. package/dist/mcp/tools.d.ts +6 -0
  56. package/dist/mcp/tools.d.ts.map +1 -1
  57. package/dist/mcp/tools.js +121 -0
  58. package/dist/mcp/tools.js.map +1 -1
  59. package/dist/memory/HNSWPatternStore.d.ts +176 -0
  60. package/dist/memory/HNSWPatternStore.d.ts.map +1 -0
  61. package/dist/memory/HNSWPatternStore.js +392 -0
  62. package/dist/memory/HNSWPatternStore.js.map +1 -0
  63. package/dist/memory/index.d.ts +8 -0
  64. package/dist/memory/index.d.ts.map +1 -0
  65. package/dist/memory/index.js +13 -0
  66. package/dist/memory/index.js.map +1 -0
  67. package/dist/providers/HybridRouter.d.ts +85 -4
  68. package/dist/providers/HybridRouter.d.ts.map +1 -1
  69. package/dist/providers/HybridRouter.js +332 -10
  70. package/dist/providers/HybridRouter.js.map +1 -1
  71. package/dist/providers/LLMBaselineTracker.d.ts +120 -0
  72. package/dist/providers/LLMBaselineTracker.d.ts.map +1 -0
  73. package/dist/providers/LLMBaselineTracker.js +305 -0
  74. package/dist/providers/LLMBaselineTracker.js.map +1 -0
  75. package/dist/providers/OpenRouterProvider.d.ts +26 -0
  76. package/dist/providers/OpenRouterProvider.d.ts.map +1 -1
  77. package/dist/providers/OpenRouterProvider.js +75 -6
  78. package/dist/providers/OpenRouterProvider.js.map +1 -1
  79. package/dist/providers/RuVectorClient.d.ts +259 -0
  80. package/dist/providers/RuVectorClient.d.ts.map +1 -0
  81. package/dist/providers/RuVectorClient.js +416 -0
  82. package/dist/providers/RuVectorClient.js.map +1 -0
  83. package/dist/providers/RuvllmPatternCurator.d.ts +116 -0
  84. package/dist/providers/RuvllmPatternCurator.d.ts.map +1 -0
  85. package/dist/providers/RuvllmPatternCurator.js +323 -0
  86. package/dist/providers/RuvllmPatternCurator.js.map +1 -0
  87. package/dist/providers/RuvllmProvider.d.ts +233 -1
  88. package/dist/providers/RuvllmProvider.d.ts.map +1 -1
  89. package/dist/providers/RuvllmProvider.js +781 -11
  90. package/dist/providers/RuvllmProvider.js.map +1 -1
  91. package/dist/providers/index.d.ts +5 -1
  92. package/dist/providers/index.d.ts.map +1 -1
  93. package/dist/providers/index.js +12 -2
  94. package/dist/providers/index.js.map +1 -1
  95. package/dist/utils/ruvllm-loader.d.ts +98 -1
  96. package/dist/utils/ruvllm-loader.d.ts.map +1 -1
  97. package/dist/utils/ruvllm-loader.js.map +1 -1
  98. package/package.json +1 -1
@@ -0,0 +1,392 @@
1
+ "use strict";
2
+ /**
3
+ * HNSW Pattern Store - Direct vector pattern storage using @ruvector/core
4
+ *
5
+ * Phase 0 M0.3: AQE LLM Independence - 150x faster pattern matching
6
+ *
7
+ * Performance targets:
8
+ * - Search latency: <1ms p95
9
+ * - Insert latency: <5ms
10
+ * - Memory: <100MB for 100k patterns
11
+ */
12
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ var desc = Object.getOwnPropertyDescriptor(m, k);
15
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
16
+ desc = { enumerable: true, get: function() { return m[k]; } };
17
+ }
18
+ Object.defineProperty(o, k2, desc);
19
+ }) : (function(o, m, k, k2) {
20
+ if (k2 === undefined) k2 = k;
21
+ o[k2] = m[k];
22
+ }));
23
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
24
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
25
+ }) : function(o, v) {
26
+ o["default"] = v;
27
+ });
28
+ var __importStar = (this && this.__importStar) || (function () {
29
+ var ownKeys = function(o) {
30
+ ownKeys = Object.getOwnPropertyNames || function (o) {
31
+ var ar = [];
32
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
33
+ return ar;
34
+ };
35
+ return ownKeys(o);
36
+ };
37
+ return function (mod) {
38
+ if (mod && mod.__esModule) return mod;
39
+ var result = {};
40
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
41
+ __setModuleDefault(result, mod);
42
+ return result;
43
+ };
44
+ })();
45
+ Object.defineProperty(exports, "__esModule", { value: true });
46
+ exports.PatternStorePresets = exports.HNSWPatternStore = exports.DistanceMetric = void 0;
47
+ exports.createPatternStore = createPatternStore;
48
+ // Import JsDistanceMetric for runtime usage
49
+ const ruvectorCore = require('@ruvector/core');
50
+ const JsDistanceMetric = ruvectorCore.JsDistanceMetric;
51
+ // Runtime uses VectorDb (lowercase) - alias for consistency
52
+ const VectorDbRuntime = ruvectorCore.VectorDb;
53
+ const fs = __importStar(require("fs/promises"));
54
+ const path = __importStar(require("path"));
55
+ /**
56
+ * Distance metric for similarity calculation
57
+ * Matches JsDistanceMetric from @ruvector/core
58
+ */
59
+ var DistanceMetric;
60
+ (function (DistanceMetric) {
61
+ DistanceMetric["Euclidean"] = "Euclidean";
62
+ DistanceMetric["Cosine"] = "Cosine";
63
+ DistanceMetric["DotProduct"] = "DotProduct";
64
+ DistanceMetric["Manhattan"] = "Manhattan";
65
+ })(DistanceMetric || (exports.DistanceMetric = DistanceMetric = {}));
66
+ /**
67
+ * HNSW-based pattern store for O(log n) similarity search
68
+ *
69
+ * Uses @ruvector/core for high-performance vector operations with SIMD optimization
70
+ */
71
+ class HNSWPatternStore {
72
+ constructor(config = {}) {
73
+ const { dimension = 768, m = 32, efConstruction = 200, efSearch = 100, storagePath, distanceMetric = DistanceMetric.Cosine, } = config;
74
+ this.dimension = dimension;
75
+ this.distanceMetric = distanceMetric;
76
+ this.storagePath = storagePath;
77
+ this.metadataStore = new Map();
78
+ // Initialize VectorDB with HNSW configuration
79
+ // Convert our DistanceMetric to JsDistanceMetric enum
80
+ const jsDistanceMetric = JsDistanceMetric[distanceMetric];
81
+ // storagePath should be a file path, not a directory
82
+ const vectorDbPath = storagePath ? path.join(storagePath, 'vectors.db') : undefined;
83
+ const dbOptions = {
84
+ dimensions: dimension,
85
+ distanceMetric: jsDistanceMetric,
86
+ storagePath: vectorDbPath,
87
+ hnswConfig: {
88
+ m,
89
+ efConstruction,
90
+ efSearch,
91
+ maxElements: 1000000, // Support up to 1M patterns
92
+ },
93
+ };
94
+ // Use runtime VectorDb (the TypeScript type is VectorDB but runtime export is VectorDb)
95
+ this.vectorDB = new VectorDbRuntime(dbOptions);
96
+ }
97
+ /**
98
+ * Store a pattern in the HNSW index
99
+ * O(log n) insertion complexity
100
+ */
101
+ async store(pattern) {
102
+ if (pattern.embedding.length !== this.dimension) {
103
+ throw new Error(`Embedding dimension mismatch: expected ${this.dimension}, got ${pattern.embedding.length}`);
104
+ }
105
+ // Validate quality score
106
+ if (pattern.quality < 0 || pattern.quality > 1) {
107
+ throw new Error('Quality must be between 0 and 1');
108
+ }
109
+ // Convert to Float32Array for optimal performance
110
+ const vector = new Float32Array(pattern.embedding);
111
+ // Store vector in HNSW index
112
+ const vectorEntry = {
113
+ id: pattern.id,
114
+ vector,
115
+ };
116
+ await this.vectorDB.insert(vectorEntry);
117
+ // Store metadata separately
118
+ const metadata = {
119
+ content: pattern.content,
120
+ type: pattern.type,
121
+ quality: pattern.quality,
122
+ metadata: pattern.metadata,
123
+ createdAt: pattern.createdAt.toISOString(),
124
+ };
125
+ this.metadataStore.set(pattern.id, metadata);
126
+ }
127
+ /**
128
+ * Search for similar patterns using HNSW
129
+ * O(log n) search complexity with <1ms p95 latency
130
+ *
131
+ * @param embedding Query embedding vector
132
+ * @param k Number of nearest neighbors to return
133
+ * @returns Top-k most similar patterns sorted by similarity
134
+ */
135
+ async search(embedding, k) {
136
+ if (embedding.length !== this.dimension) {
137
+ throw new Error(`Embedding dimension mismatch: expected ${this.dimension}, got ${embedding.length}`);
138
+ }
139
+ // Convert to Float32Array for optimal performance
140
+ const vector = new Float32Array(embedding);
141
+ // Execute HNSW search
142
+ const query = {
143
+ vector,
144
+ k,
145
+ };
146
+ const results = await this.vectorDB.search(query);
147
+ // Reconstruct QEPattern objects from results
148
+ const patterns = [];
149
+ for (const result of results) {
150
+ const metadata = this.metadataStore.get(result.id);
151
+ if (!metadata) {
152
+ // Skip if metadata is missing (shouldn't happen in normal operation)
153
+ console.warn(`Missing metadata for pattern ${result.id}`);
154
+ continue;
155
+ }
156
+ // Get the original vector
157
+ const vectorEntry = await this.vectorDB.get(result.id);
158
+ if (!vectorEntry) {
159
+ console.warn(`Missing vector for pattern ${result.id}`);
160
+ continue;
161
+ }
162
+ const pattern = {
163
+ id: result.id,
164
+ embedding: Array.from(vectorEntry.vector),
165
+ content: metadata.content,
166
+ type: metadata.type,
167
+ quality: metadata.quality,
168
+ metadata: metadata.metadata,
169
+ createdAt: new Date(metadata.createdAt),
170
+ };
171
+ patterns.push(pattern);
172
+ }
173
+ return patterns;
174
+ }
175
+ /**
176
+ * Delete a pattern by ID
177
+ *
178
+ * @param id Pattern ID to delete
179
+ */
180
+ async delete(id) {
181
+ const deleted = await this.vectorDB.delete(id);
182
+ if (deleted) {
183
+ this.metadataStore.delete(id);
184
+ }
185
+ else {
186
+ throw new Error(`Pattern ${id} not found`);
187
+ }
188
+ }
189
+ /**
190
+ * Get the total number of patterns stored
191
+ *
192
+ * @returns Pattern count
193
+ */
194
+ async count() {
195
+ return this.vectorDB.len();
196
+ }
197
+ /**
198
+ * Check if the store is empty
199
+ */
200
+ async isEmpty() {
201
+ return this.vectorDB.isEmpty();
202
+ }
203
+ /**
204
+ * Clear all patterns from the store
205
+ */
206
+ async clear() {
207
+ // Unfortunately, @ruvector/core doesn't expose a clear() method
208
+ // We need to delete all patterns individually
209
+ const ids = Array.from(this.metadataStore.keys());
210
+ for (const id of ids) {
211
+ await this.vectorDB.delete(id);
212
+ }
213
+ this.metadataStore.clear();
214
+ }
215
+ /**
216
+ * Save metadata to disk for persistence
217
+ * Vector data is automatically persisted by @ruvector/core if storagePath is set
218
+ */
219
+ async saveMetadata() {
220
+ if (!this.storagePath) {
221
+ throw new Error('Storage path not configured');
222
+ }
223
+ const metadataPath = this.getMetadataPath();
224
+ const metadataObj = Object.fromEntries(this.metadataStore);
225
+ await fs.mkdir(path.dirname(metadataPath), { recursive: true });
226
+ await fs.writeFile(metadataPath, JSON.stringify(metadataObj, null, 2), 'utf-8');
227
+ }
228
+ /**
229
+ * Load metadata from disk
230
+ */
231
+ async loadMetadata() {
232
+ if (!this.storagePath) {
233
+ throw new Error('Storage path not configured');
234
+ }
235
+ const metadataPath = this.getMetadataPath();
236
+ try {
237
+ const data = await fs.readFile(metadataPath, 'utf-8');
238
+ const metadataObj = JSON.parse(data);
239
+ this.metadataStore = new Map(Object.entries(metadataObj));
240
+ }
241
+ catch (error) {
242
+ if (error.code === 'ENOENT') {
243
+ // File doesn't exist yet, start with empty store
244
+ this.metadataStore = new Map();
245
+ }
246
+ else {
247
+ throw error;
248
+ }
249
+ }
250
+ }
251
+ /**
252
+ * Get metadata file path
253
+ */
254
+ getMetadataPath() {
255
+ if (!this.storagePath) {
256
+ throw new Error('Storage path not configured');
257
+ }
258
+ return path.join(this.storagePath, 'metadata.json');
259
+ }
260
+ /**
261
+ * Get store statistics
262
+ */
263
+ async getStats() {
264
+ const totalPatterns = await this.count();
265
+ // Estimate memory: vectors + metadata
266
+ // Each vector: dimension * 4 bytes (float32) + HNSW overhead (~2x)
267
+ // Metadata: rough estimate ~500 bytes per pattern
268
+ const vectorMemoryMB = (totalPatterns * this.dimension * 4 * 3) / (1024 * 1024);
269
+ const metadataMemoryMB = (totalPatterns * 500) / (1024 * 1024);
270
+ const memoryEstimateMB = vectorMemoryMB + metadataMemoryMB;
271
+ return {
272
+ totalPatterns,
273
+ dimension: this.dimension,
274
+ distanceMetric: this.distanceMetric,
275
+ memoryEstimateMB: Math.round(memoryEstimateMB * 100) / 100,
276
+ };
277
+ }
278
+ /**
279
+ * Batch store multiple patterns efficiently
280
+ * Uses insertBatch for better performance
281
+ */
282
+ async storeBatch(patterns) {
283
+ // Validate all patterns first
284
+ for (const pattern of patterns) {
285
+ if (pattern.embedding.length !== this.dimension) {
286
+ throw new Error(`Embedding dimension mismatch for pattern ${pattern.id}: expected ${this.dimension}, got ${pattern.embedding.length}`);
287
+ }
288
+ if (pattern.quality < 0 || pattern.quality > 1) {
289
+ throw new Error(`Invalid quality for pattern ${pattern.id}: must be between 0 and 1`);
290
+ }
291
+ }
292
+ // Prepare vector entries
293
+ const vectorEntries = patterns.map(pattern => ({
294
+ id: pattern.id,
295
+ vector: new Float32Array(pattern.embedding),
296
+ }));
297
+ // Batch insert vectors
298
+ await this.vectorDB.insertBatch(vectorEntries);
299
+ // Store all metadata
300
+ for (const pattern of patterns) {
301
+ const metadata = {
302
+ content: pattern.content,
303
+ type: pattern.type,
304
+ quality: pattern.quality,
305
+ metadata: pattern.metadata,
306
+ createdAt: pattern.createdAt.toISOString(),
307
+ };
308
+ this.metadataStore.set(pattern.id, metadata);
309
+ }
310
+ }
311
+ /**
312
+ * Search with filtering by pattern type and quality threshold
313
+ *
314
+ * @param embedding Query embedding
315
+ * @param k Number of results
316
+ * @param type Optional pattern type filter
317
+ * @param minQuality Optional minimum quality threshold
318
+ */
319
+ async searchFiltered(embedding, k, type, minQuality) {
320
+ // Get more results than needed for filtering
321
+ const searchK = type || minQuality ? k * 3 : k;
322
+ const results = await this.search(embedding, searchK);
323
+ // Apply filters
324
+ let filtered = results;
325
+ if (type) {
326
+ filtered = filtered.filter(p => p.type === type);
327
+ }
328
+ if (minQuality !== undefined) {
329
+ filtered = filtered.filter(p => p.quality >= minQuality);
330
+ }
331
+ // Return top k after filtering
332
+ return filtered.slice(0, k);
333
+ }
334
+ }
335
+ exports.HNSWPatternStore = HNSWPatternStore;
336
+ /**
337
+ * Factory function to create a pattern store with common configurations
338
+ */
339
+ function createPatternStore(config) {
340
+ return new HNSWPatternStore(config);
341
+ }
342
+ /**
343
+ * Create a pattern store optimized for specific use cases
344
+ */
345
+ exports.PatternStorePresets = {
346
+ /**
347
+ * Fast search, moderate memory (default)
348
+ */
349
+ default: () => createPatternStore({
350
+ dimension: 768,
351
+ m: 32,
352
+ efConstruction: 200,
353
+ efSearch: 100,
354
+ }),
355
+ /**
356
+ * Ultra-fast search, higher memory usage
357
+ */
358
+ highPerformance: () => createPatternStore({
359
+ dimension: 768,
360
+ m: 64,
361
+ efConstruction: 400,
362
+ efSearch: 200,
363
+ }),
364
+ /**
365
+ * Memory-efficient, slightly slower search
366
+ */
367
+ lowMemory: () => createPatternStore({
368
+ dimension: 768,
369
+ m: 16,
370
+ efConstruction: 100,
371
+ efSearch: 50,
372
+ }),
373
+ /**
374
+ * Small embeddings (e.g., 384-dim models)
375
+ */
376
+ smallEmbeddings: () => createPatternStore({
377
+ dimension: 384,
378
+ m: 32,
379
+ efConstruction: 200,
380
+ efSearch: 100,
381
+ }),
382
+ /**
383
+ * Large embeddings (e.g., 1536-dim models like OpenAI)
384
+ */
385
+ largeEmbeddings: () => createPatternStore({
386
+ dimension: 1536,
387
+ m: 48,
388
+ efConstruction: 300,
389
+ efSearch: 150,
390
+ }),
391
+ };
392
+ //# sourceMappingURL=HNSWPatternStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HNSWPatternStore.js","sourceRoot":"","sources":["../../src/memory/HNSWPatternStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Memory subsystem exports
3
+ *
4
+ * Phase 0 M0.3: HNSW Pattern Store for O(log n) similarity search
5
+ */
6
+ export { HNSWPatternStore, DistanceMetric, } from './HNSWPatternStore';
7
+ export type { QEPattern, PatternType, IPatternStore, HNSWPatternStoreConfig, } from './HNSWPatternStore';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,gBAAgB,EAChB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,SAAS,EACT,WAAW,EACX,aAAa,EACb,sBAAsB,GACvB,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ /**
3
+ * Memory subsystem exports
4
+ *
5
+ * Phase 0 M0.3: HNSW Pattern Store for O(log n) similarity search
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.DistanceMetric = exports.HNSWPatternStore = void 0;
9
+ // HNSW Pattern Store - Direct vector pattern storage using @ruvector/core
10
+ var HNSWPatternStore_1 = require("./HNSWPatternStore");
11
+ Object.defineProperty(exports, "HNSWPatternStore", { enumerable: true, get: function () { return HNSWPatternStore_1.HNSWPatternStore; } });
12
+ Object.defineProperty(exports, "DistanceMetric", { enumerable: true, get: function () { return HNSWPatternStore_1.DistanceMetric; } });
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,0EAA0E;AAC1E,uDAG4B;AAF1B,oHAAA,gBAAgB,OAAA;AAChB,kHAAA,cAAc,OAAA"}
@@ -85,6 +85,27 @@ export interface HybridCompletionOptions extends LLMCompletionOptions {
85
85
  /** Force use of specific provider */
86
86
  forceProvider?: 'local' | 'cloud';
87
87
  }
88
+ /**
89
+ * RuVector cache configuration for Phase 0.5 self-learning integration
90
+ */
91
+ export interface RuVectorCacheConfig {
92
+ /** Enable RuVector as intelligent cache layer */
93
+ enabled: boolean;
94
+ /** RuVector service base URL (default: http://localhost:8080) */
95
+ baseUrl?: string;
96
+ /** Confidence threshold for cache hits (default: 0.85) */
97
+ cacheThreshold?: number;
98
+ /** Enable automatic learning from LLM responses (default: true) */
99
+ learningEnabled?: boolean;
100
+ /** LoRA rank for adapter learning (default: 8) */
101
+ loraRank?: number;
102
+ /** Enable EWC to prevent catastrophic forgetting (default: true) */
103
+ ewcEnabled?: boolean;
104
+ /** Embedding dimension (default: 768) */
105
+ embeddingDimension?: number;
106
+ /** Skip cache for complex tasks (default: false) */
107
+ skipCacheForComplexTasks?: boolean;
108
+ }
88
109
  /**
89
110
  * Hybrid router configuration
90
111
  */
@@ -93,6 +114,8 @@ export interface HybridRouterConfig extends LLMProviderConfig {
93
114
  claude?: ClaudeProviderConfig;
94
115
  /** Ruvllm provider configuration */
95
116
  ruvllm?: RuvllmProviderConfig;
117
+ /** RuVector cache configuration (Phase 0.5 - Self-Learning Integration) */
118
+ ruvector?: RuVectorCacheConfig;
96
119
  /** Default routing strategy */
97
120
  defaultStrategy?: RoutingStrategy;
98
121
  /** Enable circuit breakers */
@@ -127,6 +150,7 @@ export declare class HybridRouter implements ILLMProvider {
127
150
  private config;
128
151
  private localProvider?;
129
152
  private cloudProvider?;
153
+ private ruVectorClient?;
130
154
  private circuitBreakers;
131
155
  private routingHistory;
132
156
  private isInitialized;
@@ -134,6 +158,8 @@ export declare class HybridRouter implements ILLMProvider {
134
158
  private requestCount;
135
159
  private localRequestCount;
136
160
  private cloudRequestCount;
161
+ private cacheHitCount;
162
+ private cacheMissCount;
137
163
  constructor(config?: HybridRouterConfig);
138
164
  /**
139
165
  * Initialize the hybrid router and its providers
@@ -142,10 +168,35 @@ export declare class HybridRouter implements ILLMProvider {
142
168
  /**
143
169
  * Complete a prompt with intelligent routing and TRM support
144
170
  *
171
+ * Phase 0.5 Enhancement: RuVector cache layer for sub-ms pattern matching
172
+ * - Check RuVector cache first (GNN-enhanced semantic search)
173
+ * - If cache hit with high confidence, return cached result
174
+ * - Otherwise, route to LLM and store result for learning
175
+ *
145
176
  * When routing to the local provider (ruvLLM), TRM (Test-time Reasoning & Metacognition)
146
177
  * can be enabled for iterative quality improvement.
147
178
  */
148
179
  complete(options: HybridCompletionOptions): Promise<LLMCompletionResponse>;
180
+ /**
181
+ * Check if cache should be used for this request
182
+ */
183
+ private shouldUseCache;
184
+ /**
185
+ * Try to get response from RuVector cache
186
+ */
187
+ private tryRuVectorCache;
188
+ /**
189
+ * Execute with decision and store result in RuVector for learning
190
+ */
191
+ private executeWithDecisionAndLearn;
192
+ /**
193
+ * Store LLM response in RuVector for future learning
194
+ */
195
+ private storeResponseForLearning;
196
+ /**
197
+ * Extract query string from completion options
198
+ */
199
+ private extractQueryFromOptions;
149
200
  /**
150
201
  * Execute request with routing decision
151
202
  */
@@ -163,9 +214,13 @@ export declare class HybridRouter implements ILLMProvider {
163
214
  */
164
215
  countTokens(options: LLMTokenCountOptions): Promise<number>;
165
216
  /**
166
- * Health check all providers
217
+ * Health check all providers including RuVector cache
167
218
  */
168
219
  healthCheck(): Promise<LLMHealthStatus>;
220
+ /**
221
+ * Get cache hit rate (0-1)
222
+ */
223
+ getCacheHitRate(): number;
169
224
  /**
170
225
  * Get metadata (aggregated from all providers)
171
226
  */
@@ -179,20 +234,46 @@ export declare class HybridRouter implements ILLMProvider {
179
234
  */
180
235
  trackCost(usage: LLMCompletionResponse['usage']): number;
181
236
  /**
182
- * Get cost savings report
237
+ * Get cost savings report including RuVector cache savings
183
238
  */
184
- getCostSavingsReport(): CostSavingsReport;
239
+ getCostSavingsReport(): CostSavingsReport & {
240
+ cacheHits: number;
241
+ cacheSavings: number;
242
+ };
185
243
  /**
186
- * Get routing statistics
244
+ * Get routing statistics including cache metrics
187
245
  */
188
246
  getRoutingStats(): {
189
247
  totalDecisions: number;
190
248
  localDecisions: number;
191
249
  cloudDecisions: number;
250
+ cacheHits: number;
251
+ cacheMisses: number;
252
+ cacheHitRate: number;
192
253
  averageLocalLatency: number;
193
254
  averageCloudLatency: number;
194
255
  successRate: number;
195
256
  };
257
+ /**
258
+ * Get RuVector cache metrics (Phase 0.5)
259
+ */
260
+ getRuVectorMetrics(): Promise<{
261
+ enabled: boolean;
262
+ healthy: boolean;
263
+ cacheHitRate: number;
264
+ patternCount: number;
265
+ loraUpdates: number;
266
+ memoryUsageMB?: number;
267
+ } | null>;
268
+ /**
269
+ * Force RuVector learning consolidation
270
+ */
271
+ forceRuVectorLearn(): Promise<{
272
+ success: boolean;
273
+ updatedParameters?: number;
274
+ duration?: number;
275
+ error?: string;
276
+ }>;
196
277
  /**
197
278
  * Make intelligent routing decision
198
279
  */
@@ -1 +1 @@
1
- {"version":3,"file":"HybridRouter.d.ts","sourceRoot":"","sources":["../../src/providers/HybridRouter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HybridRouter.d.ts","sourceRoot":"","sources":["../../src/providers/HybridRouter.ts"],"names":[],"mappings":"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"}