@ruvector/rvf 0.1.3 → 0.1.4

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ import type { RvfOptions, RvfQueryOptions, RvfSearchResult, RvfIngestResult, RvfIngestEntry, RvfDeleteResult, RvfCompactionResult, RvfStatus, RvfFilterExpr, RvfKernelData, RvfEbpfData, RvfSegmentInfo, BackendType } from './types';
2
+ import type { RvfBackend } from './backend';
3
+ /**
4
+ * Main user-facing RVF database class.
5
+ *
6
+ * Wraps a backend implementation (`NodeBackend` or `WasmBackend`) and exposes
7
+ * an ergonomic async API that mirrors the Rust `RvfStore` surface.
8
+ *
9
+ * Use the static factory methods (`create`, `open`, `openReadonly`) to obtain
10
+ * an instance. Do not construct directly.
11
+ */
12
+ export declare class RvfDatabase {
13
+ private backend;
14
+ private closed;
15
+ private constructor();
16
+ /**
17
+ * Create a new RVF store at `path`.
18
+ *
19
+ * @param path File path for the new store.
20
+ * @param options Store creation options (dimensions is required).
21
+ * @param backend Backend to use. Default: `'auto'`.
22
+ */
23
+ static create(path: string, options: RvfOptions, backend?: BackendType): Promise<RvfDatabase>;
24
+ /**
25
+ * Open an existing RVF store for read-write access.
26
+ *
27
+ * @param path File path to an existing `.rvf` file.
28
+ * @param backend Backend to use. Default: `'auto'`.
29
+ */
30
+ static open(path: string, backend?: BackendType): Promise<RvfDatabase>;
31
+ /**
32
+ * Open an existing RVF store for read-only access (no lock required).
33
+ *
34
+ * @param path File path to an existing `.rvf` file.
35
+ * @param backend Backend to use. Default: `'auto'`.
36
+ */
37
+ static openReadonly(path: string, backend?: BackendType): Promise<RvfDatabase>;
38
+ /**
39
+ * Create an RvfDatabase from an already-initialized backend.
40
+ *
41
+ * Used internally (e.g. by `derive()`) to wrap a child backend that was
42
+ * created by the native layer without going through the normal open/create
43
+ * flow.
44
+ */
45
+ static fromBackend(backend: RvfBackend): RvfDatabase;
46
+ /**
47
+ * Ingest a batch of vectors into the store.
48
+ *
49
+ * @param entries Array of `{ id, vector, metadata? }` entries.
50
+ * @returns Counts of accepted/rejected vectors and the new epoch.
51
+ */
52
+ ingestBatch(entries: RvfIngestEntry[]): Promise<RvfIngestResult>;
53
+ /**
54
+ * Soft-delete vectors by their IDs.
55
+ *
56
+ * @param ids Vector IDs to delete.
57
+ */
58
+ delete(ids: string[]): Promise<RvfDeleteResult>;
59
+ /**
60
+ * Soft-delete all vectors matching a filter expression.
61
+ *
62
+ * @param filter The filter to match against vector metadata.
63
+ */
64
+ deleteByFilter(filter: RvfFilterExpr): Promise<RvfDeleteResult>;
65
+ /**
66
+ * Query for the `k` nearest neighbors of a given vector.
67
+ *
68
+ * @param vector The query embedding.
69
+ * @param k Number of results to return.
70
+ * @param options Optional query parameters (efSearch, filter, timeout).
71
+ * @returns Sorted search results (closest first).
72
+ */
73
+ query(vector: Float32Array | number[], k: number, options?: RvfQueryOptions): Promise<RvfSearchResult[]>;
74
+ /**
75
+ * Run compaction to reclaim dead space from soft-deleted vectors.
76
+ */
77
+ compact(): Promise<RvfCompactionResult>;
78
+ /**
79
+ * Get the current store status (vector count, file size, epoch, etc.).
80
+ */
81
+ status(): Promise<RvfStatus>;
82
+ /** Get this file's unique identifier as a hex string. */
83
+ fileId(): Promise<string>;
84
+ /** Get the parent file's identifier as a hex string (all zeros if root). */
85
+ parentId(): Promise<string>;
86
+ /** Get the lineage depth (0 for root files). */
87
+ lineageDepth(): Promise<number>;
88
+ /**
89
+ * Derive a child store from this parent.
90
+ *
91
+ * Creates a new RVF file at `childPath` that records this store as its
92
+ * parent for provenance tracking. Returns a new `RvfDatabase` wrapping
93
+ * the child store.
94
+ */
95
+ derive(childPath: string, options?: RvfOptions): Promise<RvfDatabase>;
96
+ /** Embed a kernel image. Returns the segment ID. */
97
+ embedKernel(arch: number, kernelType: number, flags: number, image: Uint8Array, apiPort: number, cmdline?: string): Promise<number>;
98
+ /** Extract the kernel image. Returns null if not present. */
99
+ extractKernel(): Promise<RvfKernelData | null>;
100
+ /** Embed an eBPF program. Returns the segment ID. */
101
+ embedEbpf(programType: number, attachType: number, maxDimension: number, bytecode: Uint8Array, btf?: Uint8Array): Promise<number>;
102
+ /** Extract the eBPF program. Returns null if not present. */
103
+ extractEbpf(): Promise<RvfEbpfData | null>;
104
+ /** Get the list of segments in the store. */
105
+ segments(): Promise<RvfSegmentInfo[]>;
106
+ /** Get the vector dimensionality. */
107
+ dimension(): Promise<number>;
108
+ /**
109
+ * Close the store, releasing the writer lock and flushing pending data.
110
+ *
111
+ * After calling `close()`, all other methods will throw `RvfError` with
112
+ * code `StoreClosed`.
113
+ */
114
+ close(): Promise<void>;
115
+ /** True if the store has been closed. */
116
+ get isClosed(): boolean;
117
+ private ensureOpen;
118
+ }
@@ -0,0 +1,226 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RvfDatabase = void 0;
4
+ const backend_1 = require("./backend");
5
+ const errors_1 = require("./errors");
6
+ /**
7
+ * Main user-facing RVF database class.
8
+ *
9
+ * Wraps a backend implementation (`NodeBackend` or `WasmBackend`) and exposes
10
+ * an ergonomic async API that mirrors the Rust `RvfStore` surface.
11
+ *
12
+ * Use the static factory methods (`create`, `open`, `openReadonly`) to obtain
13
+ * an instance. Do not construct directly.
14
+ */
15
+ class RvfDatabase {
16
+ constructor(backend) {
17
+ this.closed = false;
18
+ this.backend = backend;
19
+ }
20
+ // -----------------------------------------------------------------------
21
+ // Factory methods
22
+ // -----------------------------------------------------------------------
23
+ /**
24
+ * Create a new RVF store at `path`.
25
+ *
26
+ * @param path File path for the new store.
27
+ * @param options Store creation options (dimensions is required).
28
+ * @param backend Backend to use. Default: `'auto'`.
29
+ */
30
+ static async create(path, options, backend = 'auto') {
31
+ const impl = (0, backend_1.resolveBackend)(backend);
32
+ await impl.create(path, options);
33
+ return new RvfDatabase(impl);
34
+ }
35
+ /**
36
+ * Open an existing RVF store for read-write access.
37
+ *
38
+ * @param path File path to an existing `.rvf` file.
39
+ * @param backend Backend to use. Default: `'auto'`.
40
+ */
41
+ static async open(path, backend = 'auto') {
42
+ const impl = (0, backend_1.resolveBackend)(backend);
43
+ await impl.open(path);
44
+ return new RvfDatabase(impl);
45
+ }
46
+ /**
47
+ * Open an existing RVF store for read-only access (no lock required).
48
+ *
49
+ * @param path File path to an existing `.rvf` file.
50
+ * @param backend Backend to use. Default: `'auto'`.
51
+ */
52
+ static async openReadonly(path, backend = 'auto') {
53
+ const impl = (0, backend_1.resolveBackend)(backend);
54
+ await impl.openReadonly(path);
55
+ return new RvfDatabase(impl);
56
+ }
57
+ /**
58
+ * Create an RvfDatabase from an already-initialized backend.
59
+ *
60
+ * Used internally (e.g. by `derive()`) to wrap a child backend that was
61
+ * created by the native layer without going through the normal open/create
62
+ * flow.
63
+ */
64
+ static fromBackend(backend) {
65
+ return new RvfDatabase(backend);
66
+ }
67
+ // -----------------------------------------------------------------------
68
+ // Write operations
69
+ // -----------------------------------------------------------------------
70
+ /**
71
+ * Ingest a batch of vectors into the store.
72
+ *
73
+ * @param entries Array of `{ id, vector, metadata? }` entries.
74
+ * @returns Counts of accepted/rejected vectors and the new epoch.
75
+ */
76
+ async ingestBatch(entries) {
77
+ this.ensureOpen();
78
+ return this.backend.ingestBatch(entries);
79
+ }
80
+ /**
81
+ * Soft-delete vectors by their IDs.
82
+ *
83
+ * @param ids Vector IDs to delete.
84
+ */
85
+ async delete(ids) {
86
+ this.ensureOpen();
87
+ return this.backend.delete(ids);
88
+ }
89
+ /**
90
+ * Soft-delete all vectors matching a filter expression.
91
+ *
92
+ * @param filter The filter to match against vector metadata.
93
+ */
94
+ async deleteByFilter(filter) {
95
+ this.ensureOpen();
96
+ return this.backend.deleteByFilter(filter);
97
+ }
98
+ // -----------------------------------------------------------------------
99
+ // Read operations
100
+ // -----------------------------------------------------------------------
101
+ /**
102
+ * Query for the `k` nearest neighbors of a given vector.
103
+ *
104
+ * @param vector The query embedding.
105
+ * @param k Number of results to return.
106
+ * @param options Optional query parameters (efSearch, filter, timeout).
107
+ * @returns Sorted search results (closest first).
108
+ */
109
+ async query(vector, k, options) {
110
+ this.ensureOpen();
111
+ const f32 = vector instanceof Float32Array ? vector : new Float32Array(vector);
112
+ return this.backend.query(f32, k, options);
113
+ }
114
+ // -----------------------------------------------------------------------
115
+ // Maintenance
116
+ // -----------------------------------------------------------------------
117
+ /**
118
+ * Run compaction to reclaim dead space from soft-deleted vectors.
119
+ */
120
+ async compact() {
121
+ this.ensureOpen();
122
+ return this.backend.compact();
123
+ }
124
+ /**
125
+ * Get the current store status (vector count, file size, epoch, etc.).
126
+ */
127
+ async status() {
128
+ this.ensureOpen();
129
+ return this.backend.status();
130
+ }
131
+ // -----------------------------------------------------------------------
132
+ // Lineage
133
+ // -----------------------------------------------------------------------
134
+ /** Get this file's unique identifier as a hex string. */
135
+ async fileId() {
136
+ this.ensureOpen();
137
+ return this.backend.fileId();
138
+ }
139
+ /** Get the parent file's identifier as a hex string (all zeros if root). */
140
+ async parentId() {
141
+ this.ensureOpen();
142
+ return this.backend.parentId();
143
+ }
144
+ /** Get the lineage depth (0 for root files). */
145
+ async lineageDepth() {
146
+ this.ensureOpen();
147
+ return this.backend.lineageDepth();
148
+ }
149
+ /**
150
+ * Derive a child store from this parent.
151
+ *
152
+ * Creates a new RVF file at `childPath` that records this store as its
153
+ * parent for provenance tracking. Returns a new `RvfDatabase` wrapping
154
+ * the child store.
155
+ */
156
+ async derive(childPath, options) {
157
+ this.ensureOpen();
158
+ const childBackend = await this.backend.derive(childPath, options);
159
+ return RvfDatabase.fromBackend(childBackend);
160
+ }
161
+ // -----------------------------------------------------------------------
162
+ // Kernel / eBPF
163
+ // -----------------------------------------------------------------------
164
+ /** Embed a kernel image. Returns the segment ID. */
165
+ async embedKernel(arch, kernelType, flags, image, apiPort, cmdline) {
166
+ this.ensureOpen();
167
+ return this.backend.embedKernel(arch, kernelType, flags, image, apiPort, cmdline);
168
+ }
169
+ /** Extract the kernel image. Returns null if not present. */
170
+ async extractKernel() {
171
+ this.ensureOpen();
172
+ return this.backend.extractKernel();
173
+ }
174
+ /** Embed an eBPF program. Returns the segment ID. */
175
+ async embedEbpf(programType, attachType, maxDimension, bytecode, btf) {
176
+ this.ensureOpen();
177
+ return this.backend.embedEbpf(programType, attachType, maxDimension, bytecode, btf);
178
+ }
179
+ /** Extract the eBPF program. Returns null if not present. */
180
+ async extractEbpf() {
181
+ this.ensureOpen();
182
+ return this.backend.extractEbpf();
183
+ }
184
+ // -----------------------------------------------------------------------
185
+ // Inspection
186
+ // -----------------------------------------------------------------------
187
+ /** Get the list of segments in the store. */
188
+ async segments() {
189
+ this.ensureOpen();
190
+ return this.backend.segments();
191
+ }
192
+ /** Get the vector dimensionality. */
193
+ async dimension() {
194
+ this.ensureOpen();
195
+ return this.backend.dimension();
196
+ }
197
+ // -----------------------------------------------------------------------
198
+ // Lifecycle
199
+ // -----------------------------------------------------------------------
200
+ /**
201
+ * Close the store, releasing the writer lock and flushing pending data.
202
+ *
203
+ * After calling `close()`, all other methods will throw `RvfError` with
204
+ * code `StoreClosed`.
205
+ */
206
+ async close() {
207
+ if (this.closed)
208
+ return;
209
+ this.closed = true;
210
+ await this.backend.close();
211
+ }
212
+ /** True if the store has been closed. */
213
+ get isClosed() {
214
+ return this.closed;
215
+ }
216
+ // -----------------------------------------------------------------------
217
+ // Internal
218
+ // -----------------------------------------------------------------------
219
+ ensureOpen() {
220
+ if (this.closed) {
221
+ throw new errors_1.RvfError(errors_1.RvfErrorCode.StoreClosed);
222
+ }
223
+ }
224
+ }
225
+ exports.RvfDatabase = RvfDatabase;
226
+ //# sourceMappingURL=database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Error codes mirroring the Rust `ErrorCode` enum (rvf-types).
3
+ *
4
+ * The high byte is the category, the low byte is the specific error.
5
+ */
6
+ export declare enum RvfErrorCode {
7
+ Ok = 0,
8
+ OkPartial = 1,
9
+ InvalidMagic = 256,
10
+ InvalidVersion = 257,
11
+ InvalidChecksum = 258,
12
+ InvalidSignature = 259,
13
+ TruncatedSegment = 260,
14
+ InvalidManifest = 261,
15
+ ManifestNotFound = 262,
16
+ UnknownSegmentType = 263,
17
+ AlignmentError = 264,
18
+ DimensionMismatch = 512,
19
+ EmptyIndex = 513,
20
+ MetricUnsupported = 514,
21
+ FilterParseError = 515,
22
+ KTooLarge = 516,
23
+ Timeout = 517,
24
+ LockHeld = 768,
25
+ LockStale = 769,
26
+ DiskFull = 770,
27
+ FsyncFailed = 771,
28
+ SegmentTooLarge = 772,
29
+ ReadOnly = 773,
30
+ TileTrap = 1024,
31
+ TileOom = 1025,
32
+ TileTimeout = 1026,
33
+ TileInvalidMsg = 1027,
34
+ TileUnsupportedOp = 1028,
35
+ KeyNotFound = 1280,
36
+ KeyExpired = 1281,
37
+ DecryptFailed = 1282,
38
+ AlgoUnsupported = 1283,
39
+ BackendNotFound = 65280,
40
+ BackendInitFailed = 65281,
41
+ StoreClosed = 65282
42
+ }
43
+ /**
44
+ * Custom error class for all RVF operations.
45
+ *
46
+ * Carries a typed `code` field for programmatic matching and a
47
+ * human-readable `message`.
48
+ */
49
+ export declare class RvfError extends Error {
50
+ /** The RVF error code. */
51
+ readonly code: RvfErrorCode;
52
+ /** Error category (high byte of the code). */
53
+ get category(): number;
54
+ /** True when the category indicates a format-level (fatal) error. */
55
+ get isFormatError(): boolean;
56
+ constructor(code: RvfErrorCode, detail?: string);
57
+ /**
58
+ * Create an RvfError from a native binding error.
59
+ * Attempts to extract an error code from the message or object.
60
+ */
61
+ static fromNative(err: unknown): RvfError;
62
+ }
package/dist/errors.js ADDED
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RvfError = exports.RvfErrorCode = void 0;
4
+ /**
5
+ * Error codes mirroring the Rust `ErrorCode` enum (rvf-types).
6
+ *
7
+ * The high byte is the category, the low byte is the specific error.
8
+ */
9
+ var RvfErrorCode;
10
+ (function (RvfErrorCode) {
11
+ // Category 0x00: Success
12
+ RvfErrorCode[RvfErrorCode["Ok"] = 0] = "Ok";
13
+ RvfErrorCode[RvfErrorCode["OkPartial"] = 1] = "OkPartial";
14
+ // Category 0x01: Format Errors
15
+ RvfErrorCode[RvfErrorCode["InvalidMagic"] = 256] = "InvalidMagic";
16
+ RvfErrorCode[RvfErrorCode["InvalidVersion"] = 257] = "InvalidVersion";
17
+ RvfErrorCode[RvfErrorCode["InvalidChecksum"] = 258] = "InvalidChecksum";
18
+ RvfErrorCode[RvfErrorCode["InvalidSignature"] = 259] = "InvalidSignature";
19
+ RvfErrorCode[RvfErrorCode["TruncatedSegment"] = 260] = "TruncatedSegment";
20
+ RvfErrorCode[RvfErrorCode["InvalidManifest"] = 261] = "InvalidManifest";
21
+ RvfErrorCode[RvfErrorCode["ManifestNotFound"] = 262] = "ManifestNotFound";
22
+ RvfErrorCode[RvfErrorCode["UnknownSegmentType"] = 263] = "UnknownSegmentType";
23
+ RvfErrorCode[RvfErrorCode["AlignmentError"] = 264] = "AlignmentError";
24
+ // Category 0x02: Query Errors
25
+ RvfErrorCode[RvfErrorCode["DimensionMismatch"] = 512] = "DimensionMismatch";
26
+ RvfErrorCode[RvfErrorCode["EmptyIndex"] = 513] = "EmptyIndex";
27
+ RvfErrorCode[RvfErrorCode["MetricUnsupported"] = 514] = "MetricUnsupported";
28
+ RvfErrorCode[RvfErrorCode["FilterParseError"] = 515] = "FilterParseError";
29
+ RvfErrorCode[RvfErrorCode["KTooLarge"] = 516] = "KTooLarge";
30
+ RvfErrorCode[RvfErrorCode["Timeout"] = 517] = "Timeout";
31
+ // Category 0x03: Write Errors
32
+ RvfErrorCode[RvfErrorCode["LockHeld"] = 768] = "LockHeld";
33
+ RvfErrorCode[RvfErrorCode["LockStale"] = 769] = "LockStale";
34
+ RvfErrorCode[RvfErrorCode["DiskFull"] = 770] = "DiskFull";
35
+ RvfErrorCode[RvfErrorCode["FsyncFailed"] = 771] = "FsyncFailed";
36
+ RvfErrorCode[RvfErrorCode["SegmentTooLarge"] = 772] = "SegmentTooLarge";
37
+ RvfErrorCode[RvfErrorCode["ReadOnly"] = 773] = "ReadOnly";
38
+ // Category 0x04: Tile Errors (WASM Microkernel)
39
+ RvfErrorCode[RvfErrorCode["TileTrap"] = 1024] = "TileTrap";
40
+ RvfErrorCode[RvfErrorCode["TileOom"] = 1025] = "TileOom";
41
+ RvfErrorCode[RvfErrorCode["TileTimeout"] = 1026] = "TileTimeout";
42
+ RvfErrorCode[RvfErrorCode["TileInvalidMsg"] = 1027] = "TileInvalidMsg";
43
+ RvfErrorCode[RvfErrorCode["TileUnsupportedOp"] = 1028] = "TileUnsupportedOp";
44
+ // Category 0x05: Crypto Errors
45
+ RvfErrorCode[RvfErrorCode["KeyNotFound"] = 1280] = "KeyNotFound";
46
+ RvfErrorCode[RvfErrorCode["KeyExpired"] = 1281] = "KeyExpired";
47
+ RvfErrorCode[RvfErrorCode["DecryptFailed"] = 1282] = "DecryptFailed";
48
+ RvfErrorCode[RvfErrorCode["AlgoUnsupported"] = 1283] = "AlgoUnsupported";
49
+ // SDK-level errors (0xFF__)
50
+ RvfErrorCode[RvfErrorCode["BackendNotFound"] = 65280] = "BackendNotFound";
51
+ RvfErrorCode[RvfErrorCode["BackendInitFailed"] = 65281] = "BackendInitFailed";
52
+ RvfErrorCode[RvfErrorCode["StoreClosed"] = 65282] = "StoreClosed";
53
+ })(RvfErrorCode || (exports.RvfErrorCode = RvfErrorCode = {}));
54
+ /** Human-readable labels for each error code. */
55
+ const ERROR_MESSAGES = {
56
+ [RvfErrorCode.Ok]: 'Operation succeeded',
57
+ [RvfErrorCode.OkPartial]: 'Partial success (some items failed)',
58
+ [RvfErrorCode.InvalidMagic]: 'Segment magic mismatch',
59
+ [RvfErrorCode.InvalidVersion]: 'Unsupported segment version',
60
+ [RvfErrorCode.InvalidChecksum]: 'Segment hash verification failed',
61
+ [RvfErrorCode.InvalidSignature]: 'Cryptographic signature invalid',
62
+ [RvfErrorCode.TruncatedSegment]: 'Segment payload shorter than declared',
63
+ [RvfErrorCode.InvalidManifest]: 'Root manifest validation failed',
64
+ [RvfErrorCode.ManifestNotFound]: 'No valid manifest in file',
65
+ [RvfErrorCode.UnknownSegmentType]: 'Unrecognized segment type',
66
+ [RvfErrorCode.AlignmentError]: 'Data not at expected 64-byte boundary',
67
+ [RvfErrorCode.DimensionMismatch]: 'Query vector dimension != index dimension',
68
+ [RvfErrorCode.EmptyIndex]: 'No index segments available',
69
+ [RvfErrorCode.MetricUnsupported]: 'Requested distance metric not available',
70
+ [RvfErrorCode.FilterParseError]: 'Invalid filter expression',
71
+ [RvfErrorCode.KTooLarge]: 'Requested K exceeds available vectors',
72
+ [RvfErrorCode.Timeout]: 'Query exceeded time budget',
73
+ [RvfErrorCode.LockHeld]: 'Another writer holds the lock',
74
+ [RvfErrorCode.LockStale]: 'Lock file exists but owner is dead',
75
+ [RvfErrorCode.DiskFull]: 'Insufficient space for write',
76
+ [RvfErrorCode.FsyncFailed]: 'Durable write (fsync) failed',
77
+ [RvfErrorCode.SegmentTooLarge]: 'Segment exceeds 4 GB limit',
78
+ [RvfErrorCode.ReadOnly]: 'Store opened in read-only mode',
79
+ [RvfErrorCode.TileTrap]: 'WASM trap (OOB, unreachable, stack overflow)',
80
+ [RvfErrorCode.TileOom]: 'Tile exceeded scratch memory',
81
+ [RvfErrorCode.TileTimeout]: 'Tile computation exceeded time budget',
82
+ [RvfErrorCode.TileInvalidMsg]: 'Malformed hub-tile message',
83
+ [RvfErrorCode.TileUnsupportedOp]: 'Operation not available on this profile',
84
+ [RvfErrorCode.KeyNotFound]: 'Referenced key_id not found',
85
+ [RvfErrorCode.KeyExpired]: 'Key past valid_until timestamp',
86
+ [RvfErrorCode.DecryptFailed]: 'Decryption or auth tag verification failed',
87
+ [RvfErrorCode.AlgoUnsupported]: 'Cryptographic algorithm not implemented',
88
+ [RvfErrorCode.BackendNotFound]: 'No suitable backend found (install @ruvector/rvf-node or @ruvector/rvf-wasm)',
89
+ [RvfErrorCode.BackendInitFailed]: 'Backend initialization failed',
90
+ [RvfErrorCode.StoreClosed]: 'Store has been closed',
91
+ };
92
+ /**
93
+ * Custom error class for all RVF operations.
94
+ *
95
+ * Carries a typed `code` field for programmatic matching and a
96
+ * human-readable `message`.
97
+ */
98
+ class RvfError extends Error {
99
+ /** Error category (high byte of the code). */
100
+ get category() {
101
+ return (this.code >> 8) & 0xff;
102
+ }
103
+ /** True when the category indicates a format-level (fatal) error. */
104
+ get isFormatError() {
105
+ return this.category === 0x01;
106
+ }
107
+ constructor(code, detail) {
108
+ const base = ERROR_MESSAGES[code] ?? `RVF error 0x${code.toString(16).padStart(4, '0')}`;
109
+ const message = detail ? `${base}: ${detail}` : base;
110
+ super(message);
111
+ this.name = 'RvfError';
112
+ this.code = code;
113
+ }
114
+ /**
115
+ * Create an RvfError from a native binding error.
116
+ * Attempts to extract an error code from the message or object.
117
+ */
118
+ static fromNative(err) {
119
+ if (err instanceof RvfError)
120
+ return err;
121
+ if (err instanceof Error) {
122
+ const codeMatch = err.message.match(/0x([0-9a-fA-F]{4})/);
123
+ if (codeMatch) {
124
+ const code = parseInt(codeMatch[1], 16);
125
+ if (code in RvfErrorCode) {
126
+ return new RvfError(code, err.message);
127
+ }
128
+ }
129
+ return new RvfError(RvfErrorCode.BackendInitFailed, err.message);
130
+ }
131
+ return new RvfError(RvfErrorCode.BackendInitFailed, String(err));
132
+ }
133
+ }
134
+ exports.RvfError = RvfError;
135
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @ruvector/rvf — Unified TypeScript SDK for the RuVector Format.
3
+ *
4
+ * Works with both the native Node.js backend (`@ruvector/rvf-node`) and
5
+ * the browser WASM backend (`@ruvector/rvf-wasm`).
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * import { RvfDatabase } from '@ruvector/rvf';
10
+ *
11
+ * const db = await RvfDatabase.create('./my.rvf', { dimensions: 128 });
12
+ * await db.ingestBatch([
13
+ * { id: '1', vector: new Float32Array(128) },
14
+ * ]);
15
+ * const results = await db.query(new Float32Array(128), 10);
16
+ * await db.close();
17
+ * ```
18
+ */
19
+ export type { DistanceMetric, CompressionProfile, HardwareProfile, RvfOptions, RvfFilterValue, RvfFilterExpr, RvfQueryOptions, RvfSearchResult, RvfIngestResult, RvfIngestEntry, RvfDeleteResult, RvfCompactionResult, CompactionState, RvfStatus, DerivationType, RvfKernelData, RvfEbpfData, RvfSegmentInfo, BackendType, } from './types';
20
+ export { RvfError, RvfErrorCode } from './errors';
21
+ export type { RvfBackend } from './backend';
22
+ export { NodeBackend, WasmBackend, resolveBackend } from './backend';
23
+ export { RvfDatabase } from './database';
package/dist/index.js ADDED
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ /**
3
+ * @ruvector/rvf — Unified TypeScript SDK for the RuVector Format.
4
+ *
5
+ * Works with both the native Node.js backend (`@ruvector/rvf-node`) and
6
+ * the browser WASM backend (`@ruvector/rvf-wasm`).
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * import { RvfDatabase } from '@ruvector/rvf';
11
+ *
12
+ * const db = await RvfDatabase.create('./my.rvf', { dimensions: 128 });
13
+ * await db.ingestBatch([
14
+ * { id: '1', vector: new Float32Array(128) },
15
+ * ]);
16
+ * const results = await db.query(new Float32Array(128), 10);
17
+ * await db.close();
18
+ * ```
19
+ */
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.RvfDatabase = exports.resolveBackend = exports.WasmBackend = exports.NodeBackend = exports.RvfErrorCode = exports.RvfError = void 0;
22
+ // Re-export error types
23
+ var errors_1 = require("./errors");
24
+ Object.defineProperty(exports, "RvfError", { enumerable: true, get: function () { return errors_1.RvfError; } });
25
+ Object.defineProperty(exports, "RvfErrorCode", { enumerable: true, get: function () { return errors_1.RvfErrorCode; } });
26
+ var backend_1 = require("./backend");
27
+ Object.defineProperty(exports, "NodeBackend", { enumerable: true, get: function () { return backend_1.NodeBackend; } });
28
+ Object.defineProperty(exports, "WasmBackend", { enumerable: true, get: function () { return backend_1.WasmBackend; } });
29
+ Object.defineProperty(exports, "resolveBackend", { enumerable: true, get: function () { return backend_1.resolveBackend; } });
30
+ // Re-export the main database class
31
+ var database_1 = require("./database");
32
+ Object.defineProperty(exports, "RvfDatabase", { enumerable: true, get: function () { return database_1.RvfDatabase; } });
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;AAyBH,wBAAwB;AACxB,mCAAkD;AAAzC,kGAAA,QAAQ,OAAA;AAAE,sGAAA,YAAY,OAAA;AAI/B,qCAAqE;AAA5D,sGAAA,WAAW,OAAA;AAAE,sGAAA,WAAW,OAAA;AAAE,yGAAA,cAAc,OAAA;AAEjD,oCAAoC;AACpC,uCAAyC;AAAhC,uGAAA,WAAW,OAAA"}