agentic-qe 2.5.9 → 2.5.10

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 (42) hide show
  1. package/CHANGELOG.md +75 -0
  2. package/README.md +2 -2
  3. package/dist/agents/BaseAgent.d.ts +119 -0
  4. package/dist/agents/BaseAgent.d.ts.map +1 -1
  5. package/dist/agents/BaseAgent.js +288 -0
  6. package/dist/agents/BaseAgent.js.map +1 -1
  7. package/dist/agents/FlakyTestHunterAgent.d.ts +15 -0
  8. package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -1
  9. package/dist/agents/FlakyTestHunterAgent.js +93 -0
  10. package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
  11. package/dist/agents/SecurityScannerAgent.d.ts +19 -0
  12. package/dist/agents/SecurityScannerAgent.d.ts.map +1 -1
  13. package/dist/agents/SecurityScannerAgent.js +137 -0
  14. package/dist/agents/SecurityScannerAgent.js.map +1 -1
  15. package/dist/cli/commands/ruvector/index.d.ts +13 -0
  16. package/dist/cli/commands/ruvector/index.d.ts.map +1 -0
  17. package/dist/cli/commands/ruvector/index.js +308 -0
  18. package/dist/cli/commands/ruvector/index.js.map +1 -0
  19. package/dist/cli/index.js +5 -0
  20. package/dist/cli/index.js.map +1 -1
  21. package/dist/cli/init/index.d.ts.map +1 -1
  22. package/dist/cli/init/index.js +11 -0
  23. package/dist/cli/init/index.js.map +1 -1
  24. package/dist/core/memory/HNSWVectorMemory.js +1 -1
  25. package/dist/core/memory/HNSWVectorMemory.js.map +1 -1
  26. package/dist/mcp/server-instructions.d.ts +1 -1
  27. package/dist/mcp/server-instructions.d.ts.map +1 -1
  28. package/dist/mcp/server-instructions.js +1 -1
  29. package/dist/mcp/server-instructions.js.map +1 -1
  30. package/dist/memory/RuVectorPatternStore.d.ts +258 -0
  31. package/dist/memory/RuVectorPatternStore.d.ts.map +1 -0
  32. package/dist/memory/RuVectorPatternStore.js +525 -0
  33. package/dist/memory/RuVectorPatternStore.js.map +1 -0
  34. package/dist/providers/RuVectorPostgresAdapter.d.ts +134 -0
  35. package/dist/providers/RuVectorPostgresAdapter.d.ts.map +1 -0
  36. package/dist/providers/RuVectorPostgresAdapter.js +504 -0
  37. package/dist/providers/RuVectorPostgresAdapter.js.map +1 -0
  38. package/dist/providers/index.d.ts +2 -0
  39. package/dist/providers/index.d.ts.map +1 -1
  40. package/dist/providers/index.js +7 -1
  41. package/dist/providers/index.js.map +1 -1
  42. package/package.json +4 -2
@@ -0,0 +1,525 @@
1
+ "use strict";
2
+ /**
3
+ * RuVector Pattern Store - Migration layer for AgentDB to HNSW transition
4
+ *
5
+ * Phase 0 M0.5.5: Dual-write migration strategy with validation
6
+ *
7
+ * Migration phases:
8
+ * 1. DUAL_WRITE: Write to both HNSW (new) and legacy storage
9
+ * 2. DUAL_READ: Read from HNSW but compare with legacy for validation
10
+ * 3. HNSW_ONLY: Read from HNSW only (legacy deprecated)
11
+ *
12
+ * Performance targets:
13
+ * - HNSW search: <1ms p95 (100x+ faster than legacy)
14
+ * - Zero data loss during migration
15
+ * - Reversible at any phase
16
+ *
17
+ * @deprecated AgentDB storage (v2.2.0) - migrate to HNSW
18
+ */
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.MigrationPresets = exports.RuVectorPatternStore = exports.MigrationPhase = void 0;
21
+ exports.createMigrationPatternStore = createMigrationPatternStore;
22
+ const HNSWPatternStore_1 = require("./HNSWPatternStore");
23
+ const SwarmMemoryManager_1 = require("../core/memory/SwarmMemoryManager");
24
+ /**
25
+ * Migration phase configuration
26
+ */
27
+ var MigrationPhase;
28
+ (function (MigrationPhase) {
29
+ /** Write to both stores, read from legacy */
30
+ MigrationPhase["DUAL_WRITE"] = "dual_write";
31
+ /** Write to both stores, read from HNSW with comparison */
32
+ MigrationPhase["DUAL_READ"] = "dual_read";
33
+ /** Write to HNSW only, read from HNSW only */
34
+ MigrationPhase["HNSW_ONLY"] = "hnsw_only";
35
+ })(MigrationPhase || (exports.MigrationPhase = MigrationPhase = {}));
36
+ /**
37
+ * Pattern store with dual-write migration support
38
+ *
39
+ * Enables gradual migration from legacy SwarmMemoryManager to HNSW-based storage
40
+ * with validation, comparison logging, and rollback capabilities.
41
+ *
42
+ * Usage:
43
+ * ```typescript
44
+ * // Phase 1: Start dual-write
45
+ * const store = new RuVectorPatternStore({
46
+ * migrationPhase: MigrationPhase.DUAL_WRITE,
47
+ * storagePath: './data/hnsw',
48
+ * legacyDbPath: './data/legacy.db'
49
+ * });
50
+ *
51
+ * // Phase 2: Enable dual-read for validation
52
+ * store.setMigrationPhase(MigrationPhase.DUAL_READ);
53
+ * // Monitor metrics: store.getMigrationMetrics()
54
+ *
55
+ * // Phase 3: Switch to HNSW only after validation
56
+ * store.setMigrationPhase(MigrationPhase.HNSW_ONLY);
57
+ * ```
58
+ */
59
+ class RuVectorPatternStore {
60
+ constructor(config = {}) {
61
+ // Metrics tracking
62
+ this.comparisons = [];
63
+ this.metrics = {
64
+ errors: 0,
65
+ totalWrites: 0,
66
+ totalReads: 0,
67
+ };
68
+ const { migrationPhase = MigrationPhase.DUAL_WRITE, legacyDbPath, enableComparisonLogging = true, maxComparisons = 100, ...hnswConfig } = config;
69
+ this.migrationPhase = migrationPhase;
70
+ this.enableComparisonLogging = enableComparisonLogging;
71
+ this.maxComparisons = maxComparisons;
72
+ // Initialize HNSW store (always present)
73
+ this.hnswStore = new HNSWPatternStore_1.HNSWPatternStore(hnswConfig);
74
+ // Initialize legacy store if needed
75
+ if (this.isDualMode() && legacyDbPath) {
76
+ this.legacyStore = new SwarmMemoryManager_1.SwarmMemoryManager(legacyDbPath);
77
+ }
78
+ else {
79
+ this.legacyStore = null;
80
+ }
81
+ }
82
+ /**
83
+ * Check if we're in dual-write or dual-read mode
84
+ */
85
+ isDualMode() {
86
+ return (this.migrationPhase === MigrationPhase.DUAL_WRITE ||
87
+ this.migrationPhase === MigrationPhase.DUAL_READ);
88
+ }
89
+ /**
90
+ * Store a pattern with dual-write support
91
+ *
92
+ * Behavior by phase:
93
+ * - DUAL_WRITE/DUAL_READ: Write to both HNSW and legacy
94
+ * - HNSW_ONLY: Write to HNSW only
95
+ *
96
+ * @param pattern Pattern to store
97
+ */
98
+ async store(pattern) {
99
+ this.metrics.totalWrites++;
100
+ try {
101
+ // Always write to HNSW (new storage)
102
+ await this.hnswStore.store(pattern);
103
+ // Dual-write to legacy during migration
104
+ if (this.isDualMode() && this.legacyStore) {
105
+ await this.storeLegacy(pattern);
106
+ }
107
+ }
108
+ catch (error) {
109
+ this.metrics.errors++;
110
+ throw new Error(`Failed to store pattern ${pattern.id}: ${error}`);
111
+ }
112
+ }
113
+ /**
114
+ * Store pattern in legacy SwarmMemoryManager
115
+ */
116
+ async storeLegacy(pattern) {
117
+ if (!this.legacyStore)
118
+ return;
119
+ const key = `pattern:${pattern.id}`;
120
+ const value = {
121
+ embedding: pattern.embedding,
122
+ content: pattern.content,
123
+ type: pattern.type,
124
+ quality: pattern.quality,
125
+ metadata: pattern.metadata,
126
+ createdAt: pattern.createdAt.toISOString(),
127
+ };
128
+ const options = {
129
+ partition: `patterns:${pattern.type}`,
130
+ metadata: {
131
+ quality: pattern.quality,
132
+ dimension: pattern.embedding.length,
133
+ },
134
+ };
135
+ await this.legacyStore.store(key, value, options);
136
+ }
137
+ /**
138
+ * Search for similar patterns with migration support
139
+ *
140
+ * Behavior by phase:
141
+ * - DUAL_WRITE: Read from legacy (safe fallback)
142
+ * - DUAL_READ: Read from HNSW + compare with legacy
143
+ * - HNSW_ONLY: Read from HNSW only
144
+ *
145
+ * @param embedding Query embedding vector
146
+ * @param k Number of nearest neighbors
147
+ * @returns Top-k most similar patterns
148
+ */
149
+ async search(embedding, k) {
150
+ this.metrics.totalReads++;
151
+ try {
152
+ switch (this.migrationPhase) {
153
+ case MigrationPhase.DUAL_WRITE:
154
+ // Phase 1: Still using legacy for reads (safe)
155
+ return await this.searchLegacy(embedding, k);
156
+ case MigrationPhase.DUAL_READ:
157
+ // Phase 2: Use HNSW but validate against legacy
158
+ return await this.searchWithComparison(embedding, k);
159
+ case MigrationPhase.HNSW_ONLY:
160
+ // Phase 3: HNSW only (legacy deprecated)
161
+ return await this.hnswStore.search(embedding, k);
162
+ default:
163
+ throw new Error(`Unknown migration phase: ${this.migrationPhase}`);
164
+ }
165
+ }
166
+ catch (error) {
167
+ this.metrics.errors++;
168
+ throw new Error(`Search failed: ${error}`);
169
+ }
170
+ }
171
+ /**
172
+ * Search from legacy store (brute-force O(n) comparison)
173
+ *
174
+ * This is the deprecated path - used only during early migration
175
+ */
176
+ async searchLegacy(embedding, k) {
177
+ if (!this.legacyStore) {
178
+ // Fallback to HNSW if legacy not available
179
+ return await this.hnswStore.search(embedding, k);
180
+ }
181
+ // Note: SwarmMemoryManager doesn't have vector search
182
+ // This is a placeholder showing the interface mismatch
183
+ // In reality, legacy storage would need custom vector search implementation
184
+ console.warn('Legacy vector search not implemented - falling back to HNSW');
185
+ return await this.hnswStore.search(embedding, k);
186
+ }
187
+ /**
188
+ * Search with dual-read comparison for validation
189
+ *
190
+ * Reads from HNSW (new) and compares with legacy to validate migration
191
+ */
192
+ async searchWithComparison(embedding, k) {
193
+ // Search HNSW (should be <1ms)
194
+ const hnswStart = Date.now();
195
+ const hnswResults = await this.hnswStore.search(embedding, k);
196
+ const hnswLatencyMs = Date.now() - hnswStart;
197
+ // Search legacy for comparison (expected to be 100x+ slower)
198
+ let legacyResults = [];
199
+ let legacyLatencyMs = 0;
200
+ if (this.legacyStore && this.enableComparisonLogging) {
201
+ const legacyStart = Date.now();
202
+ legacyResults = await this.searchLegacy(embedding, k);
203
+ legacyLatencyMs = Date.now() - legacyStart;
204
+ // Log comparison
205
+ this.logComparison(embedding, k, hnswResults, legacyResults, hnswLatencyMs, legacyLatencyMs);
206
+ }
207
+ // Return HNSW results (validated source)
208
+ return hnswResults;
209
+ }
210
+ /**
211
+ * Log comparison between HNSW and legacy search results
212
+ */
213
+ logComparison(queryEmbedding, k, hnswResults, legacyResults, hnswLatencyMs, legacyLatencyMs) {
214
+ const hnswIds = new Set(hnswResults.map(p => p.id));
215
+ const legacyIds = new Set(legacyResults.map(p => p.id));
216
+ // Calculate overlap
217
+ const commonIds = new Set([...hnswIds].filter(id => legacyIds.has(id)));
218
+ const overlap = legacyIds.size > 0 ? (commonIds.size / legacyIds.size) * 100 : 0;
219
+ // Calculate speedup
220
+ const speedupFactor = legacyLatencyMs > 0 ? legacyLatencyMs / hnswLatencyMs : 0;
221
+ // Find differences
222
+ const hnswOnly = [...hnswIds].filter(id => !legacyIds.has(id));
223
+ const legacyOnly = [...legacyIds].filter(id => !hnswIds.has(id));
224
+ const comparison = {
225
+ timestamp: new Date(),
226
+ queryEmbedding,
227
+ k,
228
+ hnswResults: Array.from(hnswIds),
229
+ legacyResults: Array.from(legacyIds),
230
+ hnswLatencyMs,
231
+ legacyLatencyMs,
232
+ speedupFactor,
233
+ overlap,
234
+ hnswOnly,
235
+ legacyOnly,
236
+ };
237
+ // Store comparison (keep last N)
238
+ this.comparisons.push(comparison);
239
+ if (this.comparisons.length > this.maxComparisons) {
240
+ this.comparisons.shift();
241
+ }
242
+ // Log if significant divergence
243
+ if (overlap < 90 && legacyIds.size > 0) {
244
+ console.warn(`[RuVectorPatternStore] Low overlap (${overlap.toFixed(1)}%) between HNSW and legacy. ` +
245
+ `HNSW-only: ${hnswOnly.length}, Legacy-only: ${legacyOnly.length}`);
246
+ }
247
+ // Log performance gain
248
+ if (speedupFactor > 1) {
249
+ console.log(`[RuVectorPatternStore] HNSW ${speedupFactor.toFixed(1)}x faster ` +
250
+ `(${hnswLatencyMs.toFixed(2)}ms vs ${legacyLatencyMs.toFixed(2)}ms)`);
251
+ }
252
+ }
253
+ /**
254
+ * Delete a pattern from both stores during dual-write
255
+ */
256
+ async delete(id) {
257
+ try {
258
+ // Always delete from HNSW
259
+ await this.hnswStore.delete(id);
260
+ // Delete from legacy during migration
261
+ if (this.isDualMode() && this.legacyStore) {
262
+ const key = `pattern:${id}`;
263
+ await this.legacyStore.delete(key);
264
+ }
265
+ }
266
+ catch (error) {
267
+ this.metrics.errors++;
268
+ throw new Error(`Failed to delete pattern ${id}: ${error}`);
269
+ }
270
+ }
271
+ /**
272
+ * Get total pattern count
273
+ */
274
+ async count() {
275
+ // Always use HNSW count (source of truth)
276
+ return await this.hnswStore.count();
277
+ }
278
+ /**
279
+ * Clear all patterns from both stores
280
+ */
281
+ async clear() {
282
+ try {
283
+ await this.hnswStore.clear();
284
+ if (this.isDualMode() && this.legacyStore) {
285
+ // Clear legacy patterns (would need custom implementation)
286
+ console.warn('Legacy pattern clearing not implemented');
287
+ }
288
+ }
289
+ catch (error) {
290
+ this.metrics.errors++;
291
+ throw new Error(`Failed to clear patterns: ${error}`);
292
+ }
293
+ }
294
+ /**
295
+ * Get migration metrics for monitoring
296
+ *
297
+ * @returns Current migration status and performance comparison
298
+ */
299
+ async getMigrationMetrics() {
300
+ const hnswPatterns = await this.hnswStore.count();
301
+ const legacyPatterns = this.legacyStore ? 0 : 0; // Would need actual count
302
+ // Calculate average speedup and overlap from comparisons
303
+ const avgSpeedupFactor = this.comparisons.length > 0
304
+ ? this.comparisons.reduce((sum, c) => sum + c.speedupFactor, 0) / this.comparisons.length
305
+ : 0;
306
+ const avgOverlap = this.comparisons.length > 0
307
+ ? this.comparisons.reduce((sum, c) => sum + c.overlap, 0) / this.comparisons.length
308
+ : 0;
309
+ return {
310
+ phase: this.migrationPhase,
311
+ totalPatterns: hnswPatterns,
312
+ hnswPatterns,
313
+ legacyPatterns,
314
+ syncedPatterns: Math.min(hnswPatterns, legacyPatterns),
315
+ divergedPatterns: Math.abs(hnswPatterns - legacyPatterns),
316
+ comparisons: this.comparisons.length,
317
+ avgSpeedupFactor,
318
+ avgOverlap,
319
+ errors: this.metrics.errors,
320
+ lastComparison: this.comparisons[this.comparisons.length - 1],
321
+ };
322
+ }
323
+ /**
324
+ * Set migration phase (with validation)
325
+ *
326
+ * Safe transitions:
327
+ * - DUAL_WRITE -> DUAL_READ (start validation)
328
+ * - DUAL_READ -> HNSW_ONLY (complete migration)
329
+ * - DUAL_READ -> DUAL_WRITE (rollback if issues found)
330
+ * - HNSW_ONLY -> DUAL_READ (rollback migration)
331
+ *
332
+ * @param phase New migration phase
333
+ */
334
+ setMigrationPhase(phase) {
335
+ const validTransitions = {
336
+ [MigrationPhase.DUAL_WRITE]: [MigrationPhase.DUAL_READ],
337
+ [MigrationPhase.DUAL_READ]: [MigrationPhase.DUAL_WRITE, MigrationPhase.HNSW_ONLY],
338
+ [MigrationPhase.HNSW_ONLY]: [MigrationPhase.DUAL_READ],
339
+ };
340
+ const allowed = validTransitions[this.migrationPhase];
341
+ if (!allowed.includes(phase)) {
342
+ throw new Error(`Invalid migration transition: ${this.migrationPhase} -> ${phase}. ` +
343
+ `Allowed: ${allowed.join(', ')}`);
344
+ }
345
+ console.log(`[RuVectorPatternStore] Migration phase: ${this.migrationPhase} -> ${phase}`);
346
+ this.migrationPhase = phase;
347
+ // Initialize/cleanup legacy store as needed
348
+ if (!this.isDualMode() && this.legacyStore) {
349
+ console.log('[RuVectorPatternStore] Cleaning up legacy store connection');
350
+ this.legacyStore = null;
351
+ }
352
+ }
353
+ /**
354
+ * Get current migration phase
355
+ */
356
+ getMigrationPhase() {
357
+ return this.migrationPhase;
358
+ }
359
+ /**
360
+ * Get recent comparisons for analysis
361
+ */
362
+ getRecentComparisons(limit = 10) {
363
+ return this.comparisons.slice(-limit);
364
+ }
365
+ /**
366
+ * Export comparison data for external analysis
367
+ */
368
+ exportComparisonData() {
369
+ return [...this.comparisons];
370
+ }
371
+ /**
372
+ * Batch store patterns (delegates to HNSW)
373
+ */
374
+ async storeBatch(patterns) {
375
+ this.metrics.totalWrites += patterns.length;
376
+ try {
377
+ // Batch write to HNSW
378
+ await this.hnswStore.storeBatch(patterns);
379
+ // Individual writes to legacy (no batch support)
380
+ if (this.isDualMode() && this.legacyStore) {
381
+ for (const pattern of patterns) {
382
+ await this.storeLegacy(pattern);
383
+ }
384
+ }
385
+ }
386
+ catch (error) {
387
+ this.metrics.errors++;
388
+ throw new Error(`Failed to store batch: ${error}`);
389
+ }
390
+ }
391
+ /**
392
+ * Get underlying HNSW store (for advanced operations)
393
+ */
394
+ getHNSWStore() {
395
+ return this.hnswStore;
396
+ }
397
+ /**
398
+ * Get statistics from HNSW store
399
+ */
400
+ async getStats() {
401
+ const hnswStats = await this.hnswStore.getStats();
402
+ return {
403
+ ...hnswStats,
404
+ migrationPhase: this.migrationPhase,
405
+ };
406
+ }
407
+ /**
408
+ * Save both HNSW and legacy stores to disk
409
+ */
410
+ async save() {
411
+ try {
412
+ // Save HNSW metadata
413
+ await this.hnswStore.saveMetadata();
414
+ // Legacy save would happen automatically via SwarmMemoryManager
415
+ console.log('[RuVectorPatternStore] Pattern stores saved');
416
+ }
417
+ catch (error) {
418
+ this.metrics.errors++;
419
+ throw new Error(`Failed to save stores: ${error}`);
420
+ }
421
+ }
422
+ /**
423
+ * Load both HNSW and legacy stores from disk
424
+ */
425
+ async load() {
426
+ try {
427
+ // Load HNSW metadata
428
+ await this.hnswStore.loadMetadata();
429
+ // Legacy load would happen automatically via SwarmMemoryManager
430
+ console.log('[RuVectorPatternStore] Pattern stores loaded');
431
+ }
432
+ catch (error) {
433
+ this.metrics.errors++;
434
+ throw new Error(`Failed to load stores: ${error}`);
435
+ }
436
+ }
437
+ /**
438
+ * Verify data integrity between stores
439
+ *
440
+ * Runs a comprehensive check to ensure HNSW and legacy stores are in sync
441
+ * Useful before switching from DUAL_READ to HNSW_ONLY
442
+ */
443
+ async verifyIntegrity() {
444
+ const hnswCount = await this.hnswStore.count();
445
+ const legacyCount = this.legacyStore ? 0 : 0; // Would need actual implementation
446
+ const recommendations = [];
447
+ let inSync = true;
448
+ // Check counts
449
+ if (Math.abs(hnswCount - legacyCount) > hnswCount * 0.01) {
450
+ // >1% difference
451
+ inSync = false;
452
+ recommendations.push(`Pattern count mismatch: HNSW=${hnswCount}, Legacy=${legacyCount}. ` +
453
+ `Recommend staying in DUAL_WRITE mode.`);
454
+ }
455
+ // Check recent comparison overlap
456
+ if (this.comparisons.length > 0) {
457
+ const recentOverlap = this.comparisons.slice(-10).reduce((sum, c) => sum + c.overlap, 0) / 10;
458
+ if (recentOverlap < 95) {
459
+ inSync = false;
460
+ recommendations.push(`Low search result overlap (${recentOverlap.toFixed(1)}%). ` +
461
+ `Investigate divergence before switching to HNSW_ONLY.`);
462
+ }
463
+ }
464
+ // Check performance gain
465
+ const metrics = await this.getMigrationMetrics();
466
+ if (metrics.avgSpeedupFactor > 100) {
467
+ recommendations.push(`HNSW is ${metrics.avgSpeedupFactor.toFixed(0)}x faster. ` +
468
+ `Migration will significantly improve performance.`);
469
+ }
470
+ if (inSync && metrics.comparisons > 10 && metrics.avgOverlap > 95) {
471
+ recommendations.push('Data verified. Safe to switch to HNSW_ONLY mode.');
472
+ }
473
+ return {
474
+ inSync,
475
+ hnswCount,
476
+ legacyCount,
477
+ sampleChecks: this.comparisons.length,
478
+ sampleMatches: Math.round((metrics.avgOverlap / 100) * this.comparisons.length),
479
+ recommendations,
480
+ };
481
+ }
482
+ }
483
+ exports.RuVectorPatternStore = RuVectorPatternStore;
484
+ /**
485
+ * Factory function to create pattern store with migration support
486
+ */
487
+ function createMigrationPatternStore(config) {
488
+ return new RuVectorPatternStore(config);
489
+ }
490
+ /**
491
+ * Migration presets for common scenarios
492
+ */
493
+ exports.MigrationPresets = {
494
+ /**
495
+ * Start fresh migration (Phase 1)
496
+ */
497
+ startMigration: (storagePath, legacyDbPath) => new RuVectorPatternStore({
498
+ migrationPhase: MigrationPhase.DUAL_WRITE,
499
+ storagePath,
500
+ legacyDbPath,
501
+ enableComparisonLogging: true,
502
+ dimension: 768,
503
+ }),
504
+ /**
505
+ * Enable validation (Phase 2)
506
+ */
507
+ enableValidation: (storagePath, legacyDbPath) => new RuVectorPatternStore({
508
+ migrationPhase: MigrationPhase.DUAL_READ,
509
+ storagePath,
510
+ legacyDbPath,
511
+ enableComparisonLogging: true,
512
+ maxComparisons: 1000, // Store more comparisons for analysis
513
+ dimension: 768,
514
+ }),
515
+ /**
516
+ * Complete migration (Phase 3)
517
+ */
518
+ completeMigration: (storagePath) => new RuVectorPatternStore({
519
+ migrationPhase: MigrationPhase.HNSW_ONLY,
520
+ storagePath,
521
+ enableComparisonLogging: false, // No legacy to compare
522
+ dimension: 768,
523
+ }),
524
+ };
525
+ //# sourceMappingURL=RuVectorPatternStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuVectorPatternStore.js","sourceRoot":"","sources":["../../src/memory/RuVectorPatternStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * RuVectorPostgresAdapter - PostgreSQL adapter for RuVector Docker integration
3
+ *
4
+ * Provides direct PostgreSQL connectivity to the RuVector Docker container
5
+ * for GNN-enhanced vector search with LoRA learning capabilities.
6
+ *
7
+ * This adapter unlocks the full self-learning features:
8
+ * - GNN (Graph Neural Network) reranking
9
+ * - LoRA (Low-Rank Adaptation) parameter updates
10
+ * - EWC++ (Elastic Weight Consolidation) for catastrophic forgetting prevention
11
+ *
12
+ * @module providers/RuVectorPostgresAdapter
13
+ */
14
+ import { RuVectorConfig, SearchResult, Pattern, QueryResult, LearningMetrics, HealthCheckResponse } from './RuVectorClient';
15
+ /**
16
+ * PostgreSQL-specific configuration for RuVector
17
+ */
18
+ export interface RuVectorPostgresConfig extends Omit<RuVectorConfig, 'baseUrl'> {
19
+ /** PostgreSQL connection string or config */
20
+ connectionString?: string;
21
+ /** PostgreSQL host (default: localhost) */
22
+ host?: string;
23
+ /** PostgreSQL port (default: 5432) */
24
+ port?: number;
25
+ /** PostgreSQL database name (default: ruvector_db) */
26
+ database?: string;
27
+ /** PostgreSQL user (default: ruvector) */
28
+ user?: string;
29
+ /** PostgreSQL password (default: ruvector) */
30
+ password?: string;
31
+ /** Table name for patterns (default: qe_patterns) */
32
+ tableName?: string;
33
+ /** Embedding dimension (default: 768) */
34
+ embeddingDimension?: number;
35
+ /** Connection pool size (default: 10) */
36
+ poolSize?: number;
37
+ }
38
+ /**
39
+ * RuVector PostgreSQL Adapter
40
+ *
41
+ * Provides direct PostgreSQL integration with RuVector Docker container
42
+ * for full self-learning capabilities.
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * const adapter = new RuVectorPostgresAdapter({
47
+ * host: 'localhost',
48
+ * port: 5432,
49
+ * database: 'ruvector_db',
50
+ * user: 'ruvector',
51
+ * password: 'ruvector',
52
+ * learningEnabled: true,
53
+ * cacheThreshold: 0.8,
54
+ * loraRank: 8,
55
+ * ewcEnabled: true
56
+ * });
57
+ *
58
+ * await adapter.initialize();
59
+ * const result = await adapter.search(embedding, 5);
60
+ * ```
61
+ */
62
+ export declare class RuVectorPostgresAdapter {
63
+ private pool;
64
+ private readonly config;
65
+ private readonly tableName;
66
+ private initialized;
67
+ private queryCount;
68
+ private cacheHits;
69
+ private totalLatency;
70
+ constructor(config: RuVectorPostgresConfig);
71
+ /**
72
+ * Initialize the adapter and create required tables
73
+ */
74
+ initialize(): Promise<void>;
75
+ /**
76
+ * Search for similar patterns using RuVector's cosine distance
77
+ */
78
+ search(embedding: number[], k?: number, options?: {
79
+ useGNN?: boolean;
80
+ minConfidence?: number;
81
+ }): Promise<SearchResult[]>;
82
+ /**
83
+ * Store a pattern with automatic LoRA learning
84
+ */
85
+ store(pattern: Pattern, options?: {
86
+ id?: string;
87
+ triggerLearning?: boolean;
88
+ }): Promise<string>;
89
+ /**
90
+ * Query with automatic learning and LLM fallback
91
+ */
92
+ queryWithLearning(query: string, embedding: number[], llmFallback: () => Promise<string>): Promise<QueryResult>;
93
+ /**
94
+ * Get learning metrics from PostgreSQL
95
+ */
96
+ getMetrics(): Promise<LearningMetrics>;
97
+ /**
98
+ * Force learning consolidation
99
+ */
100
+ forceLearn(): Promise<{
101
+ success: boolean;
102
+ updatedParameters: number;
103
+ duration: number;
104
+ }>;
105
+ /**
106
+ * Health check
107
+ */
108
+ healthCheck(): Promise<HealthCheckResponse>;
109
+ /**
110
+ * Close the connection pool
111
+ */
112
+ close(): Promise<void>;
113
+ /**
114
+ * Reset metrics
115
+ */
116
+ resetMetrics(): void;
117
+ private ensureInitialized;
118
+ private validateEmbedding;
119
+ private parseEmbedding;
120
+ private parseSize;
121
+ private generateId;
122
+ private handleError;
123
+ private log;
124
+ }
125
+ /**
126
+ * Factory function to create a PostgreSQL adapter
127
+ */
128
+ export declare function createRuVectorPostgresAdapter(config: RuVectorPostgresConfig): RuVectorPostgresAdapter;
129
+ /**
130
+ * Create adapter with Docker defaults
131
+ */
132
+ export declare function createDockerRuVectorAdapter(options?: Partial<RuVectorPostgresConfig>): RuVectorPostgresAdapter;
133
+ export declare const RUVECTOR_POSTGRES_ADAPTER_VERSION = "1.0.0";
134
+ //# sourceMappingURL=RuVectorPostgresAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuVectorPostgresAdapter.d.ts","sourceRoot":"","sources":["../../src/providers/RuVectorPostgresAdapter.ts"],"names":[],"mappings":"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"}