@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.
- package/README.md +77 -2
- package/dist/src/commands/neural.d.ts.map +1 -1
- package/dist/src/commands/neural.js +248 -63
- package/dist/src/commands/neural.js.map +1 -1
- package/dist/src/memory/intelligence.d.ts +13 -1
- package/dist/src/memory/intelligence.d.ts.map +1 -1
- package/dist/src/memory/intelligence.js +59 -4
- package/dist/src/memory/intelligence.js.map +1 -1
- package/dist/src/services/ruvector-training.d.ts +45 -2
- package/dist/src/services/ruvector-training.d.ts.map +1 -1
- package/dist/src/services/ruvector-training.js +143 -2
- package/dist/src/services/ruvector-training.js.map +1 -1
- package/dist/src/tests/ruvector-integration-benchmark.d.ts +6 -0
- package/dist/src/tests/ruvector-integration-benchmark.d.ts.map +1 -0
- package/dist/src/tests/ruvector-integration-benchmark.js +385 -0
- package/dist/src/tests/ruvector-integration-benchmark.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -3,11 +3,14 @@
|
|
|
3
3
|
* Real WASM-accelerated neural training using @ruvector packages
|
|
4
4
|
*
|
|
5
5
|
* Features:
|
|
6
|
-
* - MicroLoRA: <
|
|
7
|
-
* -
|
|
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 @@
|
|
|
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
|