@claude-flow/cli 3.0.0-alpha.176 → 3.0.0-alpha.177

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.
@@ -3,11 +3,14 @@
3
3
  * Real WASM-accelerated neural training using @ruvector packages
4
4
  *
5
5
  * Features:
6
- * - MicroLoRA: <100µs adaptation with rank-2 LoRA
7
- * - Flash Attention: 2.49x-7.47x speedup
6
+ * - MicroLoRA: <1µs adaptation with rank-2 LoRA (2.3M ops/s)
7
+ * - SONA: Self-Optimizing Neural Architecture (624k learn/s, 60k search/s)
8
+ * - Flash Attention: 2.49x-7.47x speedup (9k ops/s)
8
9
  * - Trajectory Buffer: Learning from success/failure
9
10
  * - Contrastive Learning: InfoNCE loss
10
11
  *
12
+ * Backward Compatible: All v1 APIs preserved, SONA adds new capabilities
13
+ *
11
14
  * Created with ❤️ by ruv.io
12
15
  */
13
16
  // Lazy-loaded WASM modules
@@ -21,10 +24,15 @@ let optimizer = null;
21
24
  let contrastiveLoss = null;
22
25
  let curriculum = null;
23
26
  let hardMiner = null;
27
+ // SONA engine (optional enhancement)
28
+ let sonaEngine = null;
29
+ let sonaAvailable = false;
24
30
  // Training state
25
31
  let initialized = false;
26
32
  let totalAdaptations = 0;
27
33
  let totalForwards = 0;
34
+ let totalSonaLearns = 0;
35
+ let totalSonaSearches = 0;
28
36
  let lastBenchmark = null;
29
37
  /**
30
38
  * Initialize the RuVector training system
@@ -86,6 +94,26 @@ export async function initializeTraining(config = {}) {
86
94
  catch {
87
95
  // Mining not available, continue without it
88
96
  }
97
+ // Initialize SONA (optional, backward compatible)
98
+ if (config.useSona !== false) {
99
+ try {
100
+ const sona = await import('@ruvector/sona');
101
+ const sonaRank = config.sonaRank || 4;
102
+ // SonaEngine constructor: (dim, rank, alpha, learningRate) - TypeScript types are wrong
103
+ // @ts-expect-error - SonaEngine accepts 4 positional args but types say 1
104
+ sonaEngine = new sona.SonaEngine(dim, sonaRank, alpha, lr);
105
+ sonaAvailable = true;
106
+ features.push(`SONA (${dim}-dim, rank-${sonaRank}, 624k learn/s)`);
107
+ }
108
+ catch (sonaError) {
109
+ // SONA not available, continue without it (backward compatible)
110
+ sonaAvailable = false;
111
+ // Only log if explicitly requested
112
+ if (config.useSona === true) {
113
+ console.warn('SONA requested but not available:', sonaError);
114
+ }
115
+ }
116
+ }
89
117
  initialized = true;
90
118
  return { success: true, features };
91
119
  }
@@ -268,6 +296,101 @@ export async function benchmarkTraining(dim, iterations) {
268
296
  lastBenchmark = attention.benchmarkAttention(dim || 256, 100, iterations || 1000);
269
297
  return lastBenchmark;
270
298
  }
299
+ // ============================================
300
+ // SONA Functions (v2 enhancement, optional)
301
+ // ============================================
302
+ /**
303
+ * Check if SONA is available
304
+ */
305
+ export function isSonaAvailable() {
306
+ return sonaAvailable && sonaEngine !== null;
307
+ }
308
+ /**
309
+ * Force-learn a pattern with SONA (1.6μs, 624k ops/s)
310
+ * This is a one-shot learning mechanism for immediate pattern storage
311
+ */
312
+ export function sonaForceLearn(embedding, reward) {
313
+ if (!sonaEngine) {
314
+ throw new Error('SONA not initialized. Call initializeTraining with useSona: true');
315
+ }
316
+ sonaEngine.forceLearn(embedding, reward);
317
+ totalSonaLearns++;
318
+ }
319
+ /**
320
+ * Search for similar patterns with SONA (16.7μs, 60k searches/s)
321
+ * Returns the k most similar patterns from the pattern bank
322
+ */
323
+ export function sonaFindPatterns(embedding, k = 5) {
324
+ if (!sonaEngine) {
325
+ throw new Error('SONA not initialized. Call initializeTraining with useSona: true');
326
+ }
327
+ // SONA requires Array, not Float32Array
328
+ const embeddingArray = Array.from(embedding);
329
+ totalSonaSearches++;
330
+ return sonaEngine.findPatterns(embeddingArray, k);
331
+ }
332
+ /**
333
+ * Process SONA background tasks (0.13μs, 7.5M ticks/s)
334
+ * Call periodically to process background learning and consolidation
335
+ */
336
+ export function sonaTick() {
337
+ if (!sonaEngine) {
338
+ return; // Silent no-op if SONA not available
339
+ }
340
+ sonaEngine.tick();
341
+ }
342
+ /**
343
+ * Get SONA statistics
344
+ */
345
+ export function getSonaStats() {
346
+ if (!sonaEngine) {
347
+ return {
348
+ available: false,
349
+ enabled: false,
350
+ stats: null,
351
+ totalLearns: totalSonaLearns,
352
+ totalSearches: totalSonaSearches,
353
+ };
354
+ }
355
+ try {
356
+ const statsJson = sonaEngine.getStats();
357
+ const stats = JSON.parse(statsJson);
358
+ return {
359
+ available: true,
360
+ enabled: sonaEngine.isEnabled(),
361
+ stats,
362
+ totalLearns: totalSonaLearns,
363
+ totalSearches: totalSonaSearches,
364
+ };
365
+ }
366
+ catch {
367
+ return {
368
+ available: true,
369
+ enabled: false,
370
+ stats: null,
371
+ totalLearns: totalSonaLearns,
372
+ totalSearches: totalSonaSearches,
373
+ };
374
+ }
375
+ }
376
+ /**
377
+ * Enable/disable SONA learning
378
+ */
379
+ export function setSonaEnabled(enabled) {
380
+ if (!sonaEngine) {
381
+ return;
382
+ }
383
+ sonaEngine.setEnabled(enabled);
384
+ }
385
+ /**
386
+ * Flush SONA buffers (persist any pending patterns)
387
+ */
388
+ export function sonaFlush() {
389
+ if (!sonaEngine) {
390
+ return;
391
+ }
392
+ sonaEngine.flush();
393
+ }
271
394
  /**
272
395
  * Get training statistics
273
396
  */
@@ -294,6 +417,10 @@ export function getTrainingStats() {
294
417
  if (trajectoryBuffer && !trajectoryBuffer.is_empty()) {
295
418
  stats.trajectoryStats = getTrajectoryStats();
296
419
  }
420
+ // Include SONA stats if available
421
+ if (sonaAvailable) {
422
+ stats.sonaStats = getSonaStats();
423
+ }
297
424
  if (lastBenchmark) {
298
425
  stats.lastBenchmark = lastBenchmark;
299
426
  }
@@ -309,8 +436,14 @@ export function resetTraining() {
309
436
  scopedLoRA.reset_all();
310
437
  if (trajectoryBuffer)
311
438
  trajectoryBuffer.reset();
439
+ // Reset SONA stats (engine doesn't have reset, just flush)
440
+ if (sonaEngine) {
441
+ sonaEngine.flush();
442
+ }
312
443
  totalAdaptations = 0;
313
444
  totalForwards = 0;
445
+ totalSonaLearns = 0;
446
+ totalSonaSearches = 0;
314
447
  }
315
448
  /**
316
449
  * Export trained weights
@@ -342,6 +475,12 @@ export function cleanup() {
342
475
  trajectoryBuffer.free();
343
476
  trajectoryBuffer = null;
344
477
  }
478
+ // Cleanup SONA
479
+ if (sonaEngine) {
480
+ sonaEngine.flush();
481
+ sonaEngine = null;
482
+ sonaAvailable = false;
483
+ }
345
484
  flashAttention = null;
346
485
  moeAttention = null;
347
486
  hyperbolicAttention = null;
@@ -352,6 +491,8 @@ export function cleanup() {
352
491
  initialized = false;
353
492
  totalAdaptations = 0;
354
493
  totalForwards = 0;
494
+ totalSonaLearns = 0;
495
+ totalSonaSearches = 0;
355
496
  lastBenchmark = null;
356
497
  }
357
498
  //# sourceMappingURL=ruvector-training.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ruvector-training.js","sourceRoot":"","sources":["../../../src/services/ruvector-training.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ruvector-training.js","sourceRoot":"","sources":["../../../src/services/ruvector-training.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * RuVector Integration Benchmark & Verification
3
+ * Tests real functionality and measures quantifiable benefits
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=ruvector-integration-benchmark.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruvector-integration-benchmark.d.ts","sourceRoot":"","sources":["../../../src/tests/ruvector-integration-benchmark.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,385 @@
1
+ /**
2
+ * RuVector Integration Benchmark & Verification
3
+ * Tests real functionality and measures quantifiable benefits
4
+ */
5
+ import { performance } from 'perf_hooks';
6
+ const results = [];
7
+ function formatNumber(n) {
8
+ return n.toLocaleString('en-US', { maximumFractionDigits: 2 });
9
+ }
10
+ async function benchmarkSona() {
11
+ console.log('\n📦 Testing @ruvector/sona...');
12
+ try {
13
+ const sona = await import('@ruvector/sona');
14
+ console.log(' Exports:', Object.keys(sona).slice(0, 15).join(', '), '...');
15
+ // Test 1: LoRA Manager
16
+ try {
17
+ const start = performance.now();
18
+ const lora = new sona.LoRAManager({
19
+ rank: 4,
20
+ alpha: 0.1,
21
+ targetModules: ['attention', 'mlp']
22
+ });
23
+ const initTime = performance.now() - start;
24
+ // Adapt with a test pattern
25
+ const adaptStart = performance.now();
26
+ const embedding = new Float32Array(256).fill(0.1);
27
+ lora.adapt(embedding, 0.5); // 50% improvement signal
28
+ const adaptTime = performance.now() - adaptStart;
29
+ results.push({
30
+ package: '@ruvector/sona',
31
+ feature: 'LoRA Init',
32
+ success: true,
33
+ latencyMs: initTime,
34
+ });
35
+ results.push({
36
+ package: '@ruvector/sona',
37
+ feature: 'LoRA Adapt',
38
+ success: true,
39
+ latencyMs: adaptTime,
40
+ improvement: adaptTime < 0.1 ? '<100μs (SOTA)' : `${formatNumber(adaptTime)}ms`
41
+ });
42
+ console.log(` ✅ LoRA: Init ${formatNumber(initTime)}ms, Adapt ${formatNumber(adaptTime)}ms`);
43
+ }
44
+ catch (e) {
45
+ results.push({
46
+ package: '@ruvector/sona',
47
+ feature: 'LoRA',
48
+ success: false,
49
+ latencyMs: 0,
50
+ error: e instanceof Error ? e.message : String(e)
51
+ });
52
+ console.log(` ❌ LoRA failed:`, e);
53
+ }
54
+ // Test 2: EWC++ (Elastic Weight Consolidation)
55
+ try {
56
+ if (sona.EWCManager) {
57
+ const ewc = new sona.EWCManager({
58
+ lambda: 1000, // Regularization strength
59
+ decay: 0.99
60
+ });
61
+ const start = performance.now();
62
+ const embedding = new Float32Array(256).fill(0.1);
63
+ ewc.registerImportance(embedding, 'task-1');
64
+ const time = performance.now() - start;
65
+ results.push({
66
+ package: '@ruvector/sona',
67
+ feature: 'EWC++',
68
+ success: true,
69
+ latencyMs: time,
70
+ improvement: 'Prevents catastrophic forgetting'
71
+ });
72
+ console.log(` ✅ EWC++: ${formatNumber(time)}ms`);
73
+ }
74
+ else {
75
+ console.log(' ⚠️ EWC++ not exported directly');
76
+ }
77
+ }
78
+ catch (e) {
79
+ console.log(` ⚠️ EWC++ not available:`, e instanceof Error ? e.message : String(e));
80
+ }
81
+ // Test 3: ReasoningBank
82
+ try {
83
+ if (sona.ReasoningBank) {
84
+ const bank = new sona.ReasoningBank({ capacity: 1000 });
85
+ const start = performance.now();
86
+ bank.store({
87
+ pattern: new Float32Array(256).fill(0.1),
88
+ verdict: 'success',
89
+ context: 'test-context'
90
+ });
91
+ const storeTime = performance.now() - start;
92
+ const searchStart = performance.now();
93
+ const similar = bank.search(new Float32Array(256).fill(0.1), 5);
94
+ const searchTime = performance.now() - searchStart;
95
+ results.push({
96
+ package: '@ruvector/sona',
97
+ feature: 'ReasoningBank Store',
98
+ success: true,
99
+ latencyMs: storeTime,
100
+ });
101
+ results.push({
102
+ package: '@ruvector/sona',
103
+ feature: 'ReasoningBank Search',
104
+ success: true,
105
+ latencyMs: searchTime,
106
+ improvement: searchTime < 1 ? 'Sub-ms search' : `${formatNumber(searchTime)}ms`
107
+ });
108
+ console.log(` ✅ ReasoningBank: Store ${formatNumber(storeTime)}ms, Search ${formatNumber(searchTime)}ms`);
109
+ }
110
+ else {
111
+ console.log(' ⚠️ ReasoningBank not exported');
112
+ }
113
+ }
114
+ catch (e) {
115
+ console.log(` ⚠️ ReasoningBank:`, e instanceof Error ? e.message : String(e));
116
+ }
117
+ // Test 4: SonaConfig (main entry)
118
+ try {
119
+ if (sona.createSona || sona.Sona || sona.default) {
120
+ const creator = sona.createSona || sona.Sona || sona.default;
121
+ const instance = typeof creator === 'function' ?
122
+ (creator.prototype ? new creator() : creator()) : creator;
123
+ console.log(` ✅ Sona instance created`);
124
+ }
125
+ }
126
+ catch (e) {
127
+ console.log(` ⚠️ Sona main:`, e instanceof Error ? e.message : String(e));
128
+ }
129
+ }
130
+ catch (e) {
131
+ console.log(` ❌ Package load failed:`, e);
132
+ results.push({
133
+ package: '@ruvector/sona',
134
+ feature: 'Load',
135
+ success: false,
136
+ latencyMs: 0,
137
+ error: e instanceof Error ? e.message : String(e)
138
+ });
139
+ }
140
+ }
141
+ async function benchmarkRouter() {
142
+ console.log('\n📦 Testing @ruvector/router...');
143
+ try {
144
+ const router = await import('@ruvector/router');
145
+ console.log(' Exports:', Object.keys(router).slice(0, 15).join(', '), '...');
146
+ // Test 1: Create semantic router
147
+ try {
148
+ const SemanticRouter = router.SemanticRouter || router.default;
149
+ const start = performance.now();
150
+ const sr = new SemanticRouter({
151
+ dim: 256,
152
+ efConstruction: 100,
153
+ M: 16
154
+ });
155
+ const initTime = performance.now() - start;
156
+ // Add some routes
157
+ const routes = [
158
+ { name: 'code', embedding: new Float32Array(256).fill(0.1) },
159
+ { name: 'test', embedding: new Float32Array(256).fill(0.2) },
160
+ { name: 'review', embedding: new Float32Array(256).fill(0.3) },
161
+ { name: 'debug', embedding: new Float32Array(256).fill(0.4) },
162
+ { name: 'refactor', embedding: new Float32Array(256).fill(0.5) },
163
+ ];
164
+ const addStart = performance.now();
165
+ for (const route of routes) {
166
+ sr.addRoute(route.name, route.embedding);
167
+ }
168
+ const addTime = performance.now() - addStart;
169
+ // Route a query
170
+ const queryStart = performance.now();
171
+ const ITERATIONS = 1000;
172
+ for (let i = 0; i < ITERATIONS; i++) {
173
+ sr.route(new Float32Array(256).fill(0.15));
174
+ }
175
+ const routeTime = (performance.now() - queryStart) / ITERATIONS;
176
+ results.push({
177
+ package: '@ruvector/router',
178
+ feature: 'Router Init',
179
+ success: true,
180
+ latencyMs: initTime,
181
+ });
182
+ results.push({
183
+ package: '@ruvector/router',
184
+ feature: 'Route Query',
185
+ success: true,
186
+ latencyMs: routeTime,
187
+ opsPerSec: 1000 / routeTime,
188
+ improvement: routeTime < 0.1 ? '<100μs routing' : `${formatNumber(routeTime)}ms`
189
+ });
190
+ console.log(` ✅ Router: Init ${formatNumber(initTime)}ms, Route ${formatNumber(routeTime)}ms (${formatNumber(1000 / routeTime)} ops/s)`);
191
+ }
192
+ catch (e) {
193
+ results.push({
194
+ package: '@ruvector/router',
195
+ feature: 'SemanticRouter',
196
+ success: false,
197
+ latencyMs: 0,
198
+ error: e instanceof Error ? e.message : String(e)
199
+ });
200
+ console.log(` ❌ SemanticRouter failed:`, e);
201
+ }
202
+ }
203
+ catch (e) {
204
+ console.log(` ❌ Package load failed:`, e);
205
+ results.push({
206
+ package: '@ruvector/router',
207
+ feature: 'Load',
208
+ success: false,
209
+ latencyMs: 0,
210
+ error: e instanceof Error ? e.message : String(e)
211
+ });
212
+ }
213
+ }
214
+ async function benchmarkCore() {
215
+ console.log('\n📦 Testing @ruvector/core...');
216
+ try {
217
+ const core = await import('@ruvector/core');
218
+ console.log(' Exports:', Object.keys(core).slice(0, 15).join(', '), '...');
219
+ // Test 1: Vector database operations
220
+ try {
221
+ const VectorDB = core.VectorDB || core.Database || core.default;
222
+ const start = performance.now();
223
+ const db = new VectorDB({
224
+ dim: 256,
225
+ metric: 'cosine',
226
+ efConstruction: 200,
227
+ M: 32
228
+ });
229
+ const initTime = performance.now() - start;
230
+ // Bulk insert benchmark
231
+ const vectors = [];
232
+ for (let i = 0; i < 10000; i++) {
233
+ const vec = new Float32Array(256);
234
+ for (let j = 0; j < 256; j++) {
235
+ vec[j] = Math.random();
236
+ }
237
+ vectors.push(vec);
238
+ }
239
+ const insertStart = performance.now();
240
+ for (let i = 0; i < vectors.length; i++) {
241
+ db.insert(`vec-${i}`, vectors[i]);
242
+ }
243
+ const insertTime = performance.now() - insertStart;
244
+ const insertsPerSec = (10000 / insertTime) * 1000;
245
+ // Search benchmark
246
+ const searchStart = performance.now();
247
+ const SEARCH_ITERS = 100;
248
+ for (let i = 0; i < SEARCH_ITERS; i++) {
249
+ db.search(vectors[i % vectors.length], 10);
250
+ }
251
+ const searchTime = (performance.now() - searchStart) / SEARCH_ITERS;
252
+ results.push({
253
+ package: '@ruvector/core',
254
+ feature: 'DB Init',
255
+ success: true,
256
+ latencyMs: initTime,
257
+ });
258
+ results.push({
259
+ package: '@ruvector/core',
260
+ feature: 'Insert 10k vectors',
261
+ success: true,
262
+ latencyMs: insertTime,
263
+ opsPerSec: insertsPerSec,
264
+ improvement: insertsPerSec > 50000 ? `${formatNumber(insertsPerSec)} ops/s (>50k target)` : `${formatNumber(insertsPerSec)} ops/s`
265
+ });
266
+ results.push({
267
+ package: '@ruvector/core',
268
+ feature: 'HNSW Search (k=10)',
269
+ success: true,
270
+ latencyMs: searchTime,
271
+ opsPerSec: 1000 / searchTime,
272
+ improvement: searchTime < 1 ? 'Sub-ms search' : `${formatNumber(searchTime)}ms`
273
+ });
274
+ console.log(` ✅ VectorDB: Init ${formatNumber(initTime)}ms`);
275
+ console.log(` ✅ Insert: ${formatNumber(insertsPerSec)} ops/s (10k vectors in ${formatNumber(insertTime)}ms)`);
276
+ console.log(` ✅ Search: ${formatNumber(searchTime)}ms per query (${formatNumber(1000 / searchTime)} queries/s)`);
277
+ }
278
+ catch (e) {
279
+ results.push({
280
+ package: '@ruvector/core',
281
+ feature: 'VectorDB',
282
+ success: false,
283
+ latencyMs: 0,
284
+ error: e instanceof Error ? e.message : String(e)
285
+ });
286
+ console.log(` ❌ VectorDB failed:`, e);
287
+ }
288
+ }
289
+ catch (e) {
290
+ console.log(` ❌ Package load failed:`, e);
291
+ results.push({
292
+ package: '@ruvector/core',
293
+ feature: 'Load',
294
+ success: false,
295
+ latencyMs: 0,
296
+ error: e instanceof Error ? e.message : String(e)
297
+ });
298
+ }
299
+ }
300
+ async function compareWithExisting() {
301
+ console.log('\n📊 Comparing with existing @ruvector/learning-wasm...');
302
+ try {
303
+ const fs = await import('fs');
304
+ const { createRequire } = await import('module');
305
+ const require = createRequire(import.meta.url);
306
+ const wasmPath = require.resolve('@ruvector/learning-wasm/ruvector_learning_wasm_bg.wasm');
307
+ const wasmBuffer = fs.readFileSync(wasmPath);
308
+ const learningWasm = await import('@ruvector/learning-wasm');
309
+ learningWasm.initSync({ module: wasmBuffer });
310
+ // Benchmark MicroLoRA
311
+ const microLoRA = new learningWasm.WasmMicroLoRA(256, 0.1, 0.01);
312
+ const start = performance.now();
313
+ const ITERATIONS = 10000;
314
+ for (let i = 0; i < ITERATIONS; i++) {
315
+ microLoRA.adapt_with_reward(0.1);
316
+ }
317
+ const adaptTime = (performance.now() - start) / ITERATIONS;
318
+ results.push({
319
+ package: '@ruvector/learning-wasm',
320
+ feature: 'MicroLoRA Adapt (baseline)',
321
+ success: true,
322
+ latencyMs: adaptTime,
323
+ opsPerSec: 1000 / adaptTime,
324
+ improvement: 'Current implementation'
325
+ });
326
+ console.log(` ✅ MicroLoRA baseline: ${formatNumber(adaptTime * 1000)}μs (${formatNumber(1000 / adaptTime)} ops/s)`);
327
+ microLoRA.free();
328
+ }
329
+ catch (e) {
330
+ console.log(` ⚠️ Baseline comparison failed:`, e);
331
+ }
332
+ }
333
+ async function printSummary() {
334
+ console.log('\n' + '='.repeat(80));
335
+ console.log('📊 RUVECTOR INTEGRATION BENCHMARK SUMMARY');
336
+ console.log('='.repeat(80));
337
+ const grouped = {};
338
+ for (const r of results) {
339
+ if (!grouped[r.package])
340
+ grouped[r.package] = [];
341
+ grouped[r.package].push(r);
342
+ }
343
+ for (const [pkg, pkgResults] of Object.entries(grouped)) {
344
+ console.log(`\n📦 ${pkg}`);
345
+ console.log('-'.repeat(60));
346
+ for (const r of pkgResults) {
347
+ const status = r.success ? '✅' : '❌';
348
+ const latency = r.latencyMs < 0.001 ? '<1μs' :
349
+ r.latencyMs < 1 ? `${formatNumber(r.latencyMs * 1000)}μs` :
350
+ `${formatNumber(r.latencyMs)}ms`;
351
+ const ops = r.opsPerSec ? ` (${formatNumber(r.opsPerSec)} ops/s)` : '';
352
+ const improvement = r.improvement ? ` → ${r.improvement}` : '';
353
+ const error = r.error ? ` [${r.error}]` : '';
354
+ console.log(` ${status} ${r.feature}: ${latency}${ops}${improvement}${error}`);
355
+ }
356
+ }
357
+ // Calculate overall success rate
358
+ const successCount = results.filter(r => r.success).length;
359
+ const totalCount = results.length;
360
+ console.log('\n' + '='.repeat(80));
361
+ console.log(`📈 OVERALL: ${successCount}/${totalCount} features working (${formatNumber(successCount / totalCount * 100)}%)`);
362
+ // Recommendations
363
+ console.log('\n🎯 RECOMMENDATIONS:');
364
+ const workingPackages = [...new Set(results.filter(r => r.success).map(r => r.package))];
365
+ const failedPackages = [...new Set(results.filter(r => !r.success).map(r => r.package))];
366
+ if (workingPackages.length > 0) {
367
+ console.log(` ✅ Ready to integrate: ${workingPackages.join(', ')}`);
368
+ }
369
+ if (failedPackages.length > 0) {
370
+ console.log(` ⚠️ Needs investigation: ${failedPackages.join(', ')}`);
371
+ }
372
+ console.log('='.repeat(80));
373
+ }
374
+ // Main execution
375
+ async function main() {
376
+ console.log('🚀 RuVector Integration Benchmark');
377
+ console.log('Testing real functionality and measuring quantifiable benefits...\n');
378
+ await benchmarkSona();
379
+ await benchmarkRouter();
380
+ await benchmarkCore();
381
+ await compareWithExisting();
382
+ await printSummary();
383
+ }
384
+ main().catch(console.error);
385
+ //# sourceMappingURL=ruvector-integration-benchmark.js.map