mirror of
https://github.com/ruvnet/RuVector.git
synced 2026-05-30 20:43:38 +00:00
- Build NAPI native addon (linux-x64-gnu, 1.3MB) and WASM binary (42KB) - Fix NodeBackend to use RvfDatabase class instance methods instead of module-level functions - Fix WasmBackend to use C-ABI store functions with integer handles - Add platform loader (index.js) and TypeScript declarations (index.d.ts) - Create JS glue and type declarations for WASM package - Set up platform-specific npm packages for all 5 targets - Bump rvf-node/rvf-wasm to 0.1.4, SDK to 0.1.6 - Fix version pins from 0.1.0 to ^0.1.4 Resolves: rvf-node and rvf-wasm published as empty stubs with no binaries Verified: E2E test passes (create -> ingest -> query -> status -> close) Co-Authored-By: claude-flow <ruv@ruv.net>
95 lines
2.2 KiB
TypeScript
95 lines
2.2 KiB
TypeScript
/* auto-generated: TypeScript declarations for @ruvector/rvf-node */
|
|
|
|
export interface RvfOptions {
|
|
dimension: number;
|
|
metric?: string;
|
|
profile?: number;
|
|
signing?: boolean;
|
|
m?: number;
|
|
efConstruction?: number;
|
|
}
|
|
|
|
export interface RvfQueryOptions {
|
|
efSearch?: number;
|
|
filter?: string;
|
|
timeoutMs?: number;
|
|
}
|
|
|
|
export interface RvfSearchResult {
|
|
id: number;
|
|
distance: number;
|
|
}
|
|
|
|
export interface RvfIngestResult {
|
|
accepted: number;
|
|
rejected: number;
|
|
epoch: number;
|
|
}
|
|
|
|
export interface RvfDeleteResult {
|
|
deleted: number;
|
|
epoch: number;
|
|
}
|
|
|
|
export interface RvfCompactionResult {
|
|
segmentsCompacted: number;
|
|
bytesReclaimed: number;
|
|
epoch: number;
|
|
}
|
|
|
|
export interface RvfStatus {
|
|
totalVectors: number;
|
|
totalSegments: number;
|
|
fileSize: number;
|
|
currentEpoch: number;
|
|
profileId: number;
|
|
compactionState: string;
|
|
deadSpaceRatio: number;
|
|
readOnly: boolean;
|
|
}
|
|
|
|
export interface RvfMetadataEntry {
|
|
fieldId: number;
|
|
valueType: string;
|
|
value: string;
|
|
}
|
|
|
|
export interface RvfKernelData {
|
|
header: Buffer;
|
|
image: Buffer;
|
|
}
|
|
|
|
export interface RvfEbpfData {
|
|
header: Buffer;
|
|
payload: Buffer;
|
|
}
|
|
|
|
export interface RvfSegmentInfo {
|
|
id: number;
|
|
offset: number;
|
|
payloadLength: number;
|
|
segType: string;
|
|
}
|
|
|
|
export class RvfDatabase {
|
|
static create(path: string, options: RvfOptions): RvfDatabase;
|
|
static open(path: string): RvfDatabase;
|
|
static openReadonly(path: string): RvfDatabase;
|
|
ingestBatch(vectors: Float32Array, ids: number[], metadata?: RvfMetadataEntry[]): RvfIngestResult;
|
|
query(vector: Float32Array, k: number, options?: RvfQueryOptions): RvfSearchResult[];
|
|
delete(ids: number[]): RvfDeleteResult;
|
|
deleteByFilter(filterJson: string): RvfDeleteResult;
|
|
compact(): RvfCompactionResult;
|
|
status(): RvfStatus;
|
|
close(): void;
|
|
fileId(): string;
|
|
parentId(): string;
|
|
lineageDepth(): number;
|
|
derive(childPath: string, options?: RvfOptions): RvfDatabase;
|
|
embedKernel(arch: number, kernelType: number, flags: number, image: Buffer, apiPort: number, cmdline?: string): number;
|
|
extractKernel(): RvfKernelData | null;
|
|
embedEbpf(programType: number, attachType: number, maxDimension: number, bytecode: Buffer, btf?: Buffer): number;
|
|
extractEbpf(): RvfEbpfData | null;
|
|
segments(): RvfSegmentInfo[];
|
|
dimension(): number;
|
|
}
|