ruvector/npm/packages/rvf-node/index.d.ts
rUv 978a0e0d5a fix(rvf): populate backend binaries and fix SDK API wiring
- 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>
2026-02-16 20:24:51 +00:00

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;
}