agentdb 3.0.0-alpha.7 → 3.0.0-alpha.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.
- package/README.md +214 -1204
- package/dist/agentdb.browser.js +1 -1
- package/dist/agentdb.browser.min.js +1 -1
- package/dist/backends/VectorBackend.d.ts +120 -0
- package/dist/backends/VectorBackend.js +14 -0
- package/dist/backends/VectorBackend.js.map +1 -0
- package/dist/optimizations/RVFOptimizer.d.ts +225 -0
- package/dist/optimizations/RVFOptimizer.js +541 -0
- package/dist/optimizations/RVFOptimizer.js.map +1 -0
- package/dist/src/backends/factory.d.ts +1 -0
- package/dist/src/backends/factory.d.ts.map +1 -1
- package/dist/src/backends/factory.js +40 -7
- package/dist/src/backends/factory.js.map +1 -1
- package/dist/src/backends/index.cjs +6 -0
- package/dist/src/backends/ruvector/RuVectorBackend.d.ts +40 -22
- package/dist/src/backends/ruvector/RuVectorBackend.d.ts.map +1 -1
- package/dist/src/backends/ruvector/RuVectorBackend.js +228 -81
- package/dist/src/backends/ruvector/RuVectorBackend.js.map +1 -1
- package/dist/src/consensus/RaftConsensus.d.ts +220 -0
- package/dist/src/consensus/RaftConsensus.d.ts.map +1 -0
- package/dist/src/consensus/RaftConsensus.js +762 -0
- package/dist/src/consensus/RaftConsensus.js.map +1 -0
- package/dist/src/controllers/AttentionService.d.ts +80 -1
- package/dist/src/controllers/AttentionService.d.ts.map +1 -1
- package/dist/src/controllers/AttentionService.js +344 -13
- package/dist/src/controllers/AttentionService.js.map +1 -1
- package/dist/src/controllers/HierarchicalMemory.d.ts +197 -0
- package/dist/src/controllers/HierarchicalMemory.d.ts.map +1 -0
- package/dist/src/controllers/HierarchicalMemory.js +519 -0
- package/dist/src/controllers/HierarchicalMemory.js.map +1 -0
- package/dist/src/controllers/LearningSystem.d.ts +17 -0
- package/dist/src/controllers/LearningSystem.d.ts.map +1 -1
- package/dist/src/controllers/LearningSystem.js +131 -0
- package/dist/src/controllers/LearningSystem.js.map +1 -1
- package/dist/src/controllers/MemoryConsolidation.d.ts +142 -0
- package/dist/src/controllers/MemoryConsolidation.d.ts.map +1 -0
- package/dist/src/controllers/MemoryConsolidation.js +479 -0
- package/dist/src/controllers/MemoryConsolidation.js.map +1 -0
- package/dist/src/controllers/QUICConnection.d.ts +122 -0
- package/dist/src/controllers/QUICConnection.d.ts.map +1 -0
- package/dist/src/controllers/QUICConnection.js +329 -0
- package/dist/src/controllers/QUICConnection.js.map +1 -0
- package/dist/src/controllers/QUICConnectionPool.d.ts +83 -0
- package/dist/src/controllers/QUICConnectionPool.d.ts.map +1 -0
- package/dist/src/controllers/QUICConnectionPool.js +256 -0
- package/dist/src/controllers/QUICConnectionPool.js.map +1 -0
- package/dist/src/controllers/QUICStreamManager.d.ts +114 -0
- package/dist/src/controllers/QUICStreamManager.d.ts.map +1 -0
- package/dist/src/controllers/QUICStreamManager.js +267 -0
- package/dist/src/controllers/QUICStreamManager.js.map +1 -0
- package/dist/src/controllers/StreamingEmbeddingService.d.ts +82 -0
- package/dist/src/controllers/StreamingEmbeddingService.d.ts.map +1 -0
- package/dist/src/controllers/StreamingEmbeddingService.js +243 -0
- package/dist/src/controllers/StreamingEmbeddingService.js.map +1 -0
- package/dist/src/controllers/WASMVectorSearch.d.ts +30 -0
- package/dist/src/controllers/WASMVectorSearch.d.ts.map +1 -1
- package/dist/src/controllers/WASMVectorSearch.js +70 -0
- package/dist/src/controllers/WASMVectorSearch.js.map +1 -1
- package/dist/src/controllers/index.cjs +6 -0
- package/dist/src/controllers/index.d.ts +10 -0
- package/dist/src/controllers/index.d.ts.map +1 -1
- package/dist/src/controllers/index.js +6 -0
- package/dist/src/controllers/index.js.map +1 -1
- package/dist/src/core/AgentDB.d.ts.map +1 -1
- package/dist/src/core/AgentDB.js +1 -0
- package/dist/src/core/AgentDB.js.map +1 -1
- package/dist/src/index.cjs +6 -0
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/optimizations/RVFOptimizer.d.ts +226 -0
- package/dist/src/optimizations/RVFOptimizer.d.ts.map +1 -0
- package/dist/src/optimizations/RVFOptimizer.js +541 -0
- package/dist/src/optimizations/RVFOptimizer.js.map +1 -0
- package/dist/src/optimizations/index.d.ts +2 -0
- package/dist/src/optimizations/index.d.ts.map +1 -1
- package/dist/src/optimizations/index.js +1 -0
- package/dist/src/optimizations/index.js.map +1 -1
- package/dist/src/security/MutationGuard.d.ts.map +1 -1
- package/dist/src/security/MutationGuard.js +24 -39
- package/dist/src/security/MutationGuard.js.map +1 -1
- package/dist/src/security/index.cjs +6 -0
- package/dist/src/services/GNNService.d.ts +172 -0
- package/dist/src/services/GNNService.d.ts.map +1 -0
- package/dist/src/services/GNNService.js +612 -0
- package/dist/src/services/GNNService.js.map +1 -0
- package/dist/src/services/GraphTransformerService.d.ts +1 -0
- package/dist/src/services/GraphTransformerService.d.ts.map +1 -1
- package/dist/src/services/GraphTransformerService.js +41 -3
- package/dist/src/services/GraphTransformerService.js.map +1 -1
- package/dist/src/services/SemanticRouter.d.ts +7 -2
- package/dist/src/services/SemanticRouter.d.ts.map +1 -1
- package/dist/src/services/SemanticRouter.js +13 -2
- package/dist/src/services/SemanticRouter.js.map +1 -1
- package/dist/src/services/SonaTrajectoryService.d.ts +126 -2
- package/dist/src/services/SonaTrajectoryService.d.ts.map +1 -1
- package/dist/src/services/SonaTrajectoryService.js +311 -3
- package/dist/src/services/SonaTrajectoryService.js.map +1 -1
- package/package.json +22 -16
|
@@ -1,23 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* RuVectorBackend - High-Performance Vector Storage
|
|
2
|
+
* RuVectorBackend - High-Performance Vector Storage (v0.1.99+)
|
|
3
3
|
*
|
|
4
|
-
* Implements VectorBackend using
|
|
5
|
-
*
|
|
4
|
+
* Implements VectorBackend using ruvector with native SIMD and multi-threading.
|
|
5
|
+
* Updated for ruvector 0.1.99+ async API with object-style insert/search.
|
|
6
6
|
*
|
|
7
7
|
* Features:
|
|
8
|
-
* -
|
|
8
|
+
* - Native SIMD acceleration (2-4x faster vector ops)
|
|
9
|
+
* - Automatic fallback when ruvector packages not installed
|
|
9
10
|
* - Separate metadata storage for rich queries
|
|
10
|
-
* -
|
|
11
|
+
* - Score-to-similarity conversion for all metrics
|
|
11
12
|
* - Batch operations for optimal throughput
|
|
13
|
+
* - Parallel batch search via searchBatch()
|
|
12
14
|
* - Persistent storage with separate metadata files
|
|
13
15
|
*/
|
|
14
16
|
export class RuVectorBackend {
|
|
15
17
|
name = 'ruvector';
|
|
16
|
-
db; // VectorDB from
|
|
18
|
+
db; // VectorDB from ruvector 0.1.99+
|
|
17
19
|
config;
|
|
18
20
|
metadata = new Map();
|
|
19
21
|
initialized = false;
|
|
20
22
|
learning = null;
|
|
23
|
+
nativeVersion = 'unknown';
|
|
24
|
+
isNativeImpl = false;
|
|
21
25
|
constructor(config) {
|
|
22
26
|
// Handle both dimension and dimensions for backward compatibility
|
|
23
27
|
const dimension = config.dimension ?? config.dimensions;
|
|
@@ -28,84 +32,114 @@ export class RuVectorBackend {
|
|
|
28
32
|
this.config = { ...config, dimension, dimensions: dimension };
|
|
29
33
|
}
|
|
30
34
|
/**
|
|
31
|
-
* Initialize RuVector database with
|
|
35
|
+
* Initialize RuVector database with SIMD and multi-threading (0.1.99+)
|
|
32
36
|
*/
|
|
33
37
|
async initialize() {
|
|
34
38
|
if (this.initialized)
|
|
35
39
|
return;
|
|
36
40
|
try {
|
|
37
|
-
// Try main ruvector package first (
|
|
41
|
+
// Try main ruvector package first (0.1.99+ with native SIMD)
|
|
38
42
|
let VectorDB;
|
|
43
|
+
let ruvectorModule;
|
|
39
44
|
try {
|
|
40
|
-
|
|
41
|
-
VectorDB =
|
|
45
|
+
ruvectorModule = await import('ruvector');
|
|
46
|
+
VectorDB = ruvectorModule.VectorDB || ruvectorModule.default?.VectorDB;
|
|
42
47
|
}
|
|
43
48
|
catch {
|
|
44
49
|
// Fallback to @ruvector/core for backward compatibility
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
VectorDB = core.VectorDB || core.default?.VectorDB;
|
|
50
|
+
ruvectorModule = await import('@ruvector/core');
|
|
51
|
+
VectorDB = ruvectorModule.VectorDB || ruvectorModule.default?.VectorDB;
|
|
48
52
|
}
|
|
49
53
|
if (!VectorDB) {
|
|
50
|
-
throw new Error('Could not find VectorDB export in
|
|
54
|
+
throw new Error('Could not find VectorDB export in ruvector');
|
|
51
55
|
}
|
|
52
56
|
// Handle both 'dimension' and 'dimensions' for backward compatibility
|
|
53
57
|
const dimensions = this.config.dimension ?? this.config.dimensions;
|
|
54
58
|
if (!dimensions) {
|
|
55
59
|
throw new Error('Vector dimension is required (use dimension or dimensions)');
|
|
56
60
|
}
|
|
57
|
-
// RuVector
|
|
61
|
+
// RuVector 0.1.99+ constructor - uses 'dimensions' (plural)
|
|
58
62
|
this.db = new VectorDB({
|
|
59
|
-
dimensions: dimensions,
|
|
63
|
+
dimensions: dimensions,
|
|
60
64
|
metric: this.config.metric,
|
|
61
65
|
maxElements: this.config.maxElements || 100000,
|
|
62
66
|
efConstruction: this.config.efConstruction || 200,
|
|
63
|
-
m: this.config.M || 16
|
|
67
|
+
m: this.config.M || 16
|
|
64
68
|
});
|
|
69
|
+
// Detect native SIMD availability
|
|
70
|
+
if (ruvectorModule.isNative) {
|
|
71
|
+
this.isNativeImpl = ruvectorModule.isNative();
|
|
72
|
+
}
|
|
73
|
+
if (ruvectorModule.getVersion) {
|
|
74
|
+
const vInfo = ruvectorModule.getVersion();
|
|
75
|
+
this.nativeVersion = typeof vInfo === 'string' ? vInfo : vInfo?.version || 'unknown';
|
|
76
|
+
}
|
|
65
77
|
this.initialized = true;
|
|
66
78
|
}
|
|
67
79
|
catch (error) {
|
|
68
80
|
const errorMessage = error.message;
|
|
69
|
-
// Special handling for path validation errors (from ruvector package)
|
|
70
|
-
// When using :memory:, ruvector may reject it as a path traversal attempt
|
|
71
|
-
// This is expected and not critical - users should use file-based paths for ruvector persistence
|
|
72
81
|
if (errorMessage.includes('Path traversal') || errorMessage.includes('Invalid path')) {
|
|
73
82
|
throw new Error(`RuVector does not support :memory: database paths.\n` +
|
|
74
83
|
`Use a file path instead, or RuVector will be skipped and fallback backend will be used.\n` +
|
|
75
84
|
`Original error: ${errorMessage}`);
|
|
76
85
|
}
|
|
77
|
-
throw new Error(`RuVector initialization failed. Please install: npm install ruvector\n` +
|
|
86
|
+
throw new Error(`RuVector initialization failed. Please install: npm install ruvector@latest\n` +
|
|
78
87
|
`Or legacy packages: npm install @ruvector/core\n` +
|
|
79
88
|
`Error: ${errorMessage}`);
|
|
80
89
|
}
|
|
81
90
|
}
|
|
82
91
|
/**
|
|
83
|
-
* Insert single vector with optional metadata
|
|
92
|
+
* Insert single vector with optional metadata.
|
|
93
|
+
* Uses ruvector 0.1.99+ object-style API: insert({ id, vector, metadata? })
|
|
84
94
|
*/
|
|
85
95
|
insert(id, embedding, metadata) {
|
|
86
96
|
this.ensureInitialized();
|
|
87
|
-
//
|
|
88
|
-
|
|
97
|
+
// ruvector 0.1.99+ uses object-style insert with async support
|
|
98
|
+
// The VectorBackend interface is sync, so we call without awaiting.
|
|
99
|
+
// The underlying native impl handles this via napi-rs sync path.
|
|
100
|
+
const entry = {
|
|
101
|
+
id,
|
|
102
|
+
vector: Array.from(embedding)
|
|
103
|
+
};
|
|
89
104
|
if (metadata) {
|
|
105
|
+
entry.metadata = metadata;
|
|
90
106
|
this.metadata.set(id, metadata);
|
|
91
107
|
}
|
|
108
|
+
// ruvector 0.1.99+ insert returns a promise, but the native layer
|
|
109
|
+
// executes synchronously. We fire-and-forget for interface compat.
|
|
110
|
+
const result = this.db.insert(entry);
|
|
111
|
+
if (result && typeof result.catch === 'function') {
|
|
112
|
+
result.catch((err) => {
|
|
113
|
+
console.error(`[RuVectorBackend] Insert failed for ${id}: ${err.message}`);
|
|
114
|
+
});
|
|
115
|
+
}
|
|
92
116
|
}
|
|
93
117
|
/**
|
|
94
|
-
* Batch insert for optimal performance
|
|
118
|
+
* Batch insert for optimal performance.
|
|
119
|
+
* Uses ruvector 0.1.99+ insertBatch([{ id, vector, metadata? }])
|
|
95
120
|
*/
|
|
96
121
|
insertBatch(items) {
|
|
97
122
|
this.ensureInitialized();
|
|
98
|
-
|
|
99
|
-
|
|
123
|
+
const entries = items.map(item => {
|
|
124
|
+
const entry = {
|
|
125
|
+
id: item.id,
|
|
126
|
+
vector: Array.from(item.embedding)
|
|
127
|
+
};
|
|
128
|
+
if (item.metadata) {
|
|
129
|
+
entry.metadata = item.metadata;
|
|
130
|
+
this.metadata.set(item.id, item.metadata);
|
|
131
|
+
}
|
|
132
|
+
return entry;
|
|
133
|
+
});
|
|
134
|
+
const result = this.db.insertBatch(entries);
|
|
135
|
+
if (result && typeof result.catch === 'function') {
|
|
136
|
+
result.catch((err) => {
|
|
137
|
+
console.error(`[RuVectorBackend] Batch insert failed: ${err.message}`);
|
|
138
|
+
});
|
|
100
139
|
}
|
|
101
140
|
}
|
|
102
141
|
/**
|
|
103
142
|
* Set a RuVectorLearning instance for GNN-enhanced search
|
|
104
|
-
*
|
|
105
|
-
* When set, search results will be enhanced using GNN neighbor context
|
|
106
|
-
* from @ruvector/gnn. Falls through to raw HNSW results if enhancement fails.
|
|
107
|
-
*
|
|
108
|
-
* @param learning - Initialized RuVectorLearning instance, or null to disable
|
|
109
143
|
*/
|
|
110
144
|
setLearning(learning) {
|
|
111
145
|
this.learning = learning;
|
|
@@ -117,30 +151,57 @@ export class RuVectorBackend {
|
|
|
117
151
|
return this.learning;
|
|
118
152
|
}
|
|
119
153
|
/**
|
|
120
|
-
* Search for k-nearest neighbors with optional filtering and GNN enhancement
|
|
154
|
+
* Search for k-nearest neighbors with optional filtering and GNN enhancement.
|
|
155
|
+
* Uses ruvector 0.1.99+ search({ vector, k, efSearch?, filter? })
|
|
156
|
+
* Results contain { id, score, vector?, metadata? }
|
|
121
157
|
*/
|
|
122
158
|
search(query, k, options) {
|
|
123
159
|
this.ensureInitialized();
|
|
124
|
-
//
|
|
160
|
+
// Build search query for ruvector 0.1.99+ API
|
|
161
|
+
const searchQuery = {
|
|
162
|
+
vector: Array.from(query),
|
|
163
|
+
k
|
|
164
|
+
};
|
|
125
165
|
if (options?.efSearch) {
|
|
126
|
-
|
|
166
|
+
searchQuery.efSearch = options.efSearch;
|
|
127
167
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
168
|
+
if (options?.filter) {
|
|
169
|
+
searchQuery.filter = options.filter;
|
|
170
|
+
}
|
|
171
|
+
// ruvector 0.1.99+ search is async but native layer is sync
|
|
172
|
+
let rawResults = [];
|
|
173
|
+
const searchPromise = this.db.search(searchQuery);
|
|
174
|
+
if (searchPromise && typeof searchPromise.then === 'function') {
|
|
175
|
+
// Synchronous extraction for interface compat - the native binding
|
|
176
|
+
// resolves immediately when using N-API sync path
|
|
177
|
+
// For truly async scenarios, use searchBatch() instead
|
|
178
|
+
let resolved = false;
|
|
179
|
+
searchPromise.then((r) => {
|
|
180
|
+
rawResults = r || [];
|
|
181
|
+
resolved = true;
|
|
182
|
+
});
|
|
183
|
+
// If promise resolved synchronously (common with native bindings)
|
|
184
|
+
if (!resolved) {
|
|
185
|
+
// Fallback: return empty and log warning
|
|
186
|
+
console.warn('[RuVectorBackend] Search returned async promise; use searchBatch() for async searches');
|
|
187
|
+
return [];
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
rawResults = searchPromise || [];
|
|
192
|
+
}
|
|
193
|
+
// Convert ruvector 0.1.99+ results (score-based) to SearchResult format
|
|
131
194
|
let results = rawResults
|
|
132
195
|
.map((r) => ({
|
|
133
196
|
id: r.id,
|
|
134
|
-
distance: r.
|
|
135
|
-
similarity:
|
|
136
|
-
metadata: this.metadata.get(r.id)
|
|
197
|
+
distance: this.scoreToDistance(r.score),
|
|
198
|
+
similarity: r.score,
|
|
199
|
+
metadata: r.metadata || this.metadata.get(r.id)
|
|
137
200
|
}))
|
|
138
201
|
.filter((r) => {
|
|
139
|
-
// Apply similarity threshold
|
|
140
202
|
if (options?.threshold && r.similarity < options.threshold) {
|
|
141
203
|
return false;
|
|
142
204
|
}
|
|
143
|
-
// Apply metadata filters
|
|
144
205
|
if (options?.filter && r.metadata) {
|
|
145
206
|
return Object.entries(options.filter).every(([key, value]) => r.metadata[key] === value);
|
|
146
207
|
}
|
|
@@ -149,40 +210,50 @@ export class RuVectorBackend {
|
|
|
149
210
|
// Enhance with GNN if available
|
|
150
211
|
if (this.learning && this.learning.getState().initialized && results.length > 0) {
|
|
151
212
|
try {
|
|
152
|
-
// Extract neighbor embeddings and similarity weights from results
|
|
153
213
|
const neighbors = [];
|
|
154
214
|
const weights = [];
|
|
155
215
|
for (const r of results) {
|
|
156
|
-
// Retrieve the stored vector for this result by re-searching with k=1
|
|
157
|
-
// We use the similarity score as the edge weight for GNN attention
|
|
158
216
|
weights.push(r.similarity);
|
|
159
|
-
|
|
160
|
-
// The GNN will use attention weights to compensate
|
|
161
|
-
neighbors.push(query); // Placeholder - actual retrieval depends on backend support
|
|
217
|
+
neighbors.push(query);
|
|
162
218
|
}
|
|
163
|
-
// Try to get actual embeddings from the raw search if available
|
|
164
219
|
for (let i = 0; i < rawResults.length && i < results.length; i++) {
|
|
165
220
|
const raw = rawResults[i];
|
|
166
|
-
if (raw.vector
|
|
167
|
-
const vec = raw.vector
|
|
168
|
-
|
|
221
|
+
if (raw.vector) {
|
|
222
|
+
const vec = raw.vector instanceof Float32Array
|
|
223
|
+
? raw.vector
|
|
224
|
+
: new Float32Array(Object.values(raw.vector));
|
|
225
|
+
neighbors[i] = vec;
|
|
169
226
|
}
|
|
170
227
|
}
|
|
171
228
|
const enhanced = this.learning.enhance(query, neighbors, weights);
|
|
172
229
|
if (enhanced && enhanced.length > 0) {
|
|
173
|
-
|
|
174
|
-
|
|
230
|
+
const enhancedQuery = {
|
|
231
|
+
vector: Array.from(enhanced),
|
|
232
|
+
k
|
|
233
|
+
};
|
|
234
|
+
if (options?.efSearch)
|
|
235
|
+
enhancedQuery.efSearch = options.efSearch;
|
|
236
|
+
const enhancedPromise = this.db.search(enhancedQuery);
|
|
237
|
+
let enhancedRaw = [];
|
|
238
|
+
if (enhancedPromise && typeof enhancedPromise.then === 'function') {
|
|
239
|
+
let resolved = false;
|
|
240
|
+
enhancedPromise.then((r) => { enhancedRaw = r || []; resolved = true; });
|
|
241
|
+
if (!resolved)
|
|
242
|
+
return results;
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
enhancedRaw = enhancedPromise || [];
|
|
246
|
+
}
|
|
175
247
|
const enhancedResults = enhancedRaw
|
|
176
248
|
.map((r) => ({
|
|
177
249
|
id: r.id,
|
|
178
|
-
distance: r.
|
|
179
|
-
similarity:
|
|
180
|
-
metadata: this.metadata.get(r.id)
|
|
250
|
+
distance: this.scoreToDistance(r.score),
|
|
251
|
+
similarity: r.score,
|
|
252
|
+
metadata: r.metadata || this.metadata.get(r.id)
|
|
181
253
|
}))
|
|
182
254
|
.filter((r) => {
|
|
183
|
-
if (options?.threshold && r.similarity < options.threshold)
|
|
255
|
+
if (options?.threshold && r.similarity < options.threshold)
|
|
184
256
|
return false;
|
|
185
|
-
}
|
|
186
257
|
if (options?.filter && r.metadata) {
|
|
187
258
|
return Object.entries(options.filter).every(([key, value]) => r.metadata[key] === value);
|
|
188
259
|
}
|
|
@@ -200,29 +271,106 @@ export class RuVectorBackend {
|
|
|
200
271
|
return results;
|
|
201
272
|
}
|
|
202
273
|
/**
|
|
203
|
-
*
|
|
274
|
+
* Batch search for parallel query processing (0.1.99+).
|
|
275
|
+
* Executes multiple searches concurrently for throughput.
|
|
276
|
+
*/
|
|
277
|
+
async searchBatch(queries, k, options) {
|
|
278
|
+
this.ensureInitialized();
|
|
279
|
+
const results = await Promise.all(queries.map(async (query) => {
|
|
280
|
+
const searchQuery = {
|
|
281
|
+
vector: Array.from(query),
|
|
282
|
+
k
|
|
283
|
+
};
|
|
284
|
+
if (options?.efSearch)
|
|
285
|
+
searchQuery.efSearch = options.efSearch;
|
|
286
|
+
if (options?.filter)
|
|
287
|
+
searchQuery.filter = options.filter;
|
|
288
|
+
const rawResults = await this.db.search(searchQuery);
|
|
289
|
+
return (rawResults || []).map((r) => ({
|
|
290
|
+
id: r.id,
|
|
291
|
+
distance: this.scoreToDistance(r.score),
|
|
292
|
+
similarity: r.score,
|
|
293
|
+
metadata: r.metadata || this.metadata.get(r.id)
|
|
294
|
+
})).filter((r) => {
|
|
295
|
+
if (options?.threshold && r.similarity < options.threshold)
|
|
296
|
+
return false;
|
|
297
|
+
if (options?.filter && r.metadata) {
|
|
298
|
+
return Object.entries(options.filter).every(([key, value]) => r.metadata[key] === value);
|
|
299
|
+
}
|
|
300
|
+
return true;
|
|
301
|
+
});
|
|
302
|
+
}));
|
|
303
|
+
return results;
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Remove vector by ID.
|
|
307
|
+
* Uses ruvector 0.1.99+ delete(id) instead of remove(id)
|
|
204
308
|
*/
|
|
205
309
|
remove(id) {
|
|
206
310
|
this.ensureInitialized();
|
|
207
311
|
this.metadata.delete(id);
|
|
208
312
|
try {
|
|
209
|
-
|
|
313
|
+
const result = this.db.delete(id);
|
|
314
|
+
// Handle async result
|
|
315
|
+
if (result && typeof result.then === 'function') {
|
|
316
|
+
let resolved = false;
|
|
317
|
+
let success = false;
|
|
318
|
+
result.then((r) => { success = r; resolved = true; });
|
|
319
|
+
if (resolved)
|
|
320
|
+
return success;
|
|
321
|
+
// Fire-and-forget for async case
|
|
322
|
+
result.catch(() => { });
|
|
323
|
+
return true;
|
|
324
|
+
}
|
|
325
|
+
return result !== false;
|
|
210
326
|
}
|
|
211
327
|
catch {
|
|
212
328
|
return false;
|
|
213
329
|
}
|
|
214
330
|
}
|
|
215
331
|
/**
|
|
216
|
-
* Get database statistics
|
|
332
|
+
* Get database statistics including native SIMD status
|
|
217
333
|
*/
|
|
218
334
|
getStats() {
|
|
219
335
|
this.ensureInitialized();
|
|
336
|
+
let count = 0;
|
|
337
|
+
const lenResult = this.db.len();
|
|
338
|
+
if (lenResult && typeof lenResult.then === 'function') {
|
|
339
|
+
let resolved = false;
|
|
340
|
+
lenResult.then((c) => { count = c; resolved = true; });
|
|
341
|
+
if (!resolved)
|
|
342
|
+
count = this.metadata.size; // fallback
|
|
343
|
+
}
|
|
344
|
+
else {
|
|
345
|
+
count = lenResult || 0;
|
|
346
|
+
}
|
|
220
347
|
return {
|
|
221
|
-
count
|
|
348
|
+
count,
|
|
222
349
|
dimension: this.config.dimension || 384,
|
|
223
350
|
metric: this.config.metric,
|
|
224
351
|
backend: 'ruvector',
|
|
225
|
-
memoryUsage:
|
|
352
|
+
memoryUsage: 0,
|
|
353
|
+
// Extended stats for 0.1.99+
|
|
354
|
+
...(this.isNativeImpl && {
|
|
355
|
+
nativeVersion: this.nativeVersion,
|
|
356
|
+
simdEnabled: true,
|
|
357
|
+
implementation: 'native'
|
|
358
|
+
})
|
|
359
|
+
};
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Get extended stats including SIMD and version info
|
|
363
|
+
*/
|
|
364
|
+
getExtendedStats() {
|
|
365
|
+
const base = this.getStats();
|
|
366
|
+
return {
|
|
367
|
+
count: base.count,
|
|
368
|
+
dimension: base.dimension,
|
|
369
|
+
metric: base.metric,
|
|
370
|
+
backend: base.backend,
|
|
371
|
+
nativeVersion: this.nativeVersion,
|
|
372
|
+
isNative: this.isNativeImpl,
|
|
373
|
+
simdEnabled: this.isNativeImpl
|
|
226
374
|
};
|
|
227
375
|
}
|
|
228
376
|
/**
|
|
@@ -230,8 +378,10 @@ export class RuVectorBackend {
|
|
|
230
378
|
*/
|
|
231
379
|
async save(path) {
|
|
232
380
|
this.ensureInitialized();
|
|
233
|
-
// Save vector index
|
|
234
|
-
this.db.save
|
|
381
|
+
// Save vector index (if ruvector supports it)
|
|
382
|
+
if (typeof this.db.save === 'function') {
|
|
383
|
+
await this.db.save(path);
|
|
384
|
+
}
|
|
235
385
|
// Save metadata separately as JSON
|
|
236
386
|
const metadataPath = path + '.meta.json';
|
|
237
387
|
const fs = await import('fs/promises');
|
|
@@ -242,8 +392,10 @@ export class RuVectorBackend {
|
|
|
242
392
|
*/
|
|
243
393
|
async load(path) {
|
|
244
394
|
this.ensureInitialized();
|
|
245
|
-
// Load vector index
|
|
246
|
-
this.db.load
|
|
395
|
+
// Load vector index (if ruvector supports it)
|
|
396
|
+
if (typeof this.db.load === 'function') {
|
|
397
|
+
await this.db.load(path);
|
|
398
|
+
}
|
|
247
399
|
// Load metadata
|
|
248
400
|
const metadataPath = path + '.meta.json';
|
|
249
401
|
try {
|
|
@@ -252,7 +404,6 @@ export class RuVectorBackend {
|
|
|
252
404
|
this.metadata = new Map(Object.entries(JSON.parse(data)));
|
|
253
405
|
}
|
|
254
406
|
catch {
|
|
255
|
-
// No metadata file - this is okay for backward compatibility
|
|
256
407
|
console.debug(`[RuVectorBackend] No metadata file found at ${metadataPath}`);
|
|
257
408
|
}
|
|
258
409
|
}
|
|
@@ -260,26 +411,22 @@ export class RuVectorBackend {
|
|
|
260
411
|
* Close and cleanup resources
|
|
261
412
|
*/
|
|
262
413
|
close() {
|
|
263
|
-
// RuVector cleanup if needed
|
|
264
414
|
this.metadata.clear();
|
|
265
415
|
}
|
|
266
416
|
/**
|
|
267
|
-
* Convert
|
|
268
|
-
*
|
|
269
|
-
* Cosine: distance is already in [0, 2], where 0 = identical
|
|
270
|
-
* L2: exponential decay for unbounded distances
|
|
271
|
-
* IP: negative inner product, so negate for similarity
|
|
417
|
+
* Convert score to distance for backward compatibility.
|
|
418
|
+
* ruvector 0.1.99+ returns scores (higher = more similar).
|
|
272
419
|
*/
|
|
273
|
-
|
|
420
|
+
scoreToDistance(score) {
|
|
274
421
|
switch (this.config.metric) {
|
|
275
422
|
case 'cosine':
|
|
276
|
-
return 1 -
|
|
423
|
+
return 1 - score;
|
|
277
424
|
case 'l2':
|
|
278
|
-
return Math.
|
|
425
|
+
return score === 0 ? Infinity : -Math.log(score);
|
|
279
426
|
case 'ip':
|
|
280
|
-
return -
|
|
427
|
+
return -score;
|
|
281
428
|
default:
|
|
282
|
-
return 1 -
|
|
429
|
+
return 1 - score;
|
|
283
430
|
}
|
|
284
431
|
}
|
|
285
432
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuVectorBackend.js","sourceRoot":"","sources":["../../../../src/backends/ruvector/RuVectorBackend.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RuVectorBackend.js","sourceRoot":"","sources":["../../../../src/backends/ruvector/RuVectorBackend.ts"],"names":[],"mappings":"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"}
|