From 5ba2b59b5e4e6d0e4aa189ca77ab336fd93e5b82 Mon Sep 17 00:00:00 2001 From: rUv Date: Fri, 22 May 2026 02:43:43 -0400 Subject: [PATCH] fix(ts): align burst-scaling and ruvector-extensions with VectorDB API (#493) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - burst-scaling: rename unused `regions` param to `_regions` (TS6138) - burst-scaling: rename unused loop var `capacity` to `_capacity` (TS6133) - ruvector-extensions/ui-example: `dimension` → `dimensions`, `add()` → `insert()`, remove missing `getStats()`/`close()` API calls - ruvector-extensions/persistence-example: `metric` → `distanceMetric`, `stats().count` → `await len()`, add missing `await` on `get()`/`search()` Both packages build and typecheck cleanly (0 errors). Co-authored-by: ruvnet --- .../burst-scaling/capacity-manager.ts | 2 +- npm/packages/burst-scaling/reactive-scaler.ts | 2 +- .../src/examples/persistence-example.ts | 36 +++++++++---------- .../src/examples/ui-example.ts | 15 ++++---- 4 files changed, 27 insertions(+), 28 deletions(-) diff --git a/npm/packages/burst-scaling/capacity-manager.ts b/npm/packages/burst-scaling/capacity-manager.ts index 6ecd31e8..e3e25b32 100644 --- a/npm/packages/burst-scaling/capacity-manager.ts +++ b/npm/packages/burst-scaling/capacity-manager.ts @@ -180,7 +180,7 @@ export class CapacityManager { // 3. Process reactive scaling for each region const scalingActions: ScalingAction[] = []; - for (const [region, capacity] of this.regionCapacities) { + for (const [region, _capacity] of this.regionCapacities) { // Get current metrics (in production, fetch from monitoring) const metrics = await this.getCurrentMetrics(region); diff --git a/npm/packages/burst-scaling/reactive-scaler.ts b/npm/packages/burst-scaling/reactive-scaler.ts index 78439e0a..77091900 100644 --- a/npm/packages/burst-scaling/reactive-scaler.ts +++ b/npm/packages/burst-scaling/reactive-scaler.ts @@ -63,7 +63,7 @@ export class ReactiveScaler { private readonly historySize = 60; // Keep 60 samples (5 minutes at 5s intervals) constructor( - private readonly regions: string[] = ['us-central1', 'europe-west1', 'asia-east1'], + _regions: string[] = ['us-central1', 'europe-west1', 'asia-east1'], private readonly notifyHook: (message: string) => Promise = async (msg) => { await execAsync(`npx claude-flow@alpha hooks notify --message "${msg.replace(/"/g, '\\"')}"`); } diff --git a/npm/packages/ruvector-extensions/src/examples/persistence-example.ts b/npm/packages/ruvector-extensions/src/examples/persistence-example.ts index b82369c3..6f782b97 100644 --- a/npm/packages/ruvector-extensions/src/examples/persistence-example.ts +++ b/npm/packages/ruvector-extensions/src/examples/persistence-example.ts @@ -27,8 +27,8 @@ async function example1_BasicSaveLoad() { // Create a vector database const db = new VectorDB({ - dimension: 384, - metric: 'cosine', + dimensions: 384, + distanceMetric: 'cosine', }); // Add some sample vectors @@ -44,7 +44,7 @@ async function example1_BasicSaveLoad() { }); } - console.log(`Added ${db.stats().count} vectors`); + console.log(`Added ${await db.len()} vectors`); // Create persistence manager const persistence = new DatabasePersistence(db, { @@ -64,7 +64,7 @@ async function example1_BasicSaveLoad() { console.log(`Saved to: ${savePath}`); // Create a new database and load the saved data - const db2 = new VectorDB({ dimension: 384 }); + const db2 = new VectorDB({ dimensions: 384 }); const persistence2 = new DatabasePersistence(db2, { baseDir: './data/example1', }); @@ -78,11 +78,11 @@ async function example1_BasicSaveLoad() { }, }); - console.log(`Loaded ${db2.stats().count} vectors`); + console.log(`Loaded ${await db2.len()} vectors`); // Verify data integrity - const original = db.get('doc-500'); - const loaded = db2.get('doc-500'); + const original = await db.get('doc-500'); + const loaded = await db2.get('doc-500'); console.log('\nData integrity check:'); console.log(' Original metadata:', original?.metadata); console.log(' Loaded metadata: ', loaded?.metadata); @@ -96,7 +96,7 @@ async function example1_BasicSaveLoad() { async function example2_SnapshotManagement() { console.log('\n=== Example 2: Snapshot Management ===\n'); - const db = new VectorDB({ dimension: 128 }); + const db = new VectorDB({ dimensions: 128 }); const persistence = new DatabasePersistence(db, { baseDir: './data/example2', format: 'binary', @@ -154,7 +154,7 @@ async function example2_SnapshotManagement() { onProgress: (p) => console.log(` [${p.percentage}%] ${p.message}`), }); - console.log(`After restore: ${db.stats().count} vectors`); + console.log(`After restore: ${await db.len()} vectors`); // Delete a snapshot console.log('\nDeleting snapshot...'); @@ -170,7 +170,7 @@ async function example3_ExportImport() { console.log('\n=== Example 3: Export and Import ===\n'); // Create source database - const sourceDb = new VectorDB({ dimension: 256 }); + const sourceDb = new VectorDB({ dimensions: 256 }); console.log('Creating source database...'); for (let i = 0; i < 2000; i++) { @@ -208,7 +208,7 @@ async function example3_ExportImport() { }); // Import into new database - const targetDb = new VectorDB({ dimension: 256 }); + const targetDb = new VectorDB({ dimensions: 256 }); const targetPersistence = new DatabasePersistence(targetDb, { baseDir: './data/example3/target', }); @@ -222,12 +222,12 @@ async function example3_ExportImport() { onProgress: (p) => console.log(` [${p.percentage}%] ${p.message}`), }); - console.log(`\nImport complete: ${targetDb.stats().count} vectors`); + console.log(`\nImport complete: ${await targetDb.len()} vectors`); // Test a search to verify data integrity - const sampleVector = sourceDb.get('item-100'); + const sampleVector = await sourceDb.get('item-100'); if (sampleVector) { - const results = targetDb.search({ + const results = await targetDb.search({ vector: sampleVector.vector, k: 1, }); @@ -245,7 +245,7 @@ async function example3_ExportImport() { async function example4_AutoSaveIncremental() { console.log('\n=== Example 4: Auto-Save and Incremental Saves ===\n'); - const db = new VectorDB({ dimension: 64 }); + const db = new VectorDB({ dimensions: 64 }); const persistence = new DatabasePersistence(db, { baseDir: './data/example4', format: 'json', @@ -307,7 +307,7 @@ async function example4_AutoSaveIncremental() { async function example5_AdvancedProgress() { console.log('\n=== Example 5: Advanced Progress Tracking ===\n'); - const db = new VectorDB({ dimension: 512 }); + const db = new VectorDB({ dimensions: 512 }); // Create large dataset console.log('Creating large dataset (5000 vectors)...'); @@ -363,7 +363,7 @@ async function example5_AdvancedProgress() { console.log(`\n\nSave completed in ${Date.now() - saveStart}ms`); // Load with progress - const db2 = new VectorDB({ dimension: 512 }); + const db2 = new VectorDB({ dimensions: 512 }); const persistence2 = new DatabasePersistence(db2, { baseDir: './data/example5', }); @@ -378,7 +378,7 @@ async function example5_AdvancedProgress() { }); console.log(`\n\nLoad completed in ${Date.now() - loadStart}ms`); - console.log(`Loaded ${db2.stats().count} vectors`); + console.log(`Loaded ${await db2.len()} vectors`); } // ============================================================================ diff --git a/npm/packages/ruvector-extensions/src/examples/ui-example.ts b/npm/packages/ruvector-extensions/src/examples/ui-example.ts index 0f93ea9c..6228938c 100644 --- a/npm/packages/ruvector-extensions/src/examples/ui-example.ts +++ b/npm/packages/ruvector-extensions/src/examples/ui-example.ts @@ -12,7 +12,7 @@ async function main() { // Initialize database const db = new VectorDB({ - dimension: 384, + dimensions: 384, distanceMetric: 'cosine' }); @@ -52,17 +52,17 @@ async function main() { // Add all vectors to database for (const { id, embedding, metadata } of sampleData) { - await db.add(id, embedding, metadata); + await db.insert({ id, vector: embedding, metadata }); } console.log(`✅ Added ${sampleData.length} sample nodes\n`); // Get database statistics - const stats = await db.getStats(); + const totalVectors = await db.len(); console.log('📈 Database Statistics:'); - console.log(` Total vectors: ${stats.totalVectors}`); - console.log(` Dimension: ${stats.dimension}`); - console.log(` Distance metric: ${stats.distanceMetric}\n`); + console.log(` Total vectors: ${totalVectors}`); + console.log(` Dimension: 384`); + console.log(` Distance metric: cosine\n`); // Start UI server console.log('🌐 Starting UI server...\n'); @@ -113,7 +113,7 @@ async function main() { tags: [category, `tag-${Math.floor(Math.random() * 5)}`] }; - await db.add(id, embedding, metadata); + await db.insert({ id, vector: embedding, metadata }); // Notify UI of update server.notifyGraphUpdate(); @@ -133,7 +133,6 @@ async function main() { console.log('\n\n🛑 Shutting down gracefully...'); clearInterval(interval); await server.stop(); - await db.close(); console.log('👋 Goodbye!\n'); process.exit(0); });