@sochdb/sochdb 0.4.1 → 0.4.2

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,90 @@
1
+ /**
2
+ * HNSW Vector Index FFI Bindings
3
+ *
4
+ * Native vector search using HNSW (Hierarchical Navigable Small World) algorithm.
5
+ *
6
+ * @see sochdb-index/src/ffi.rs
7
+ */
8
+ export interface SearchResult {
9
+ id: string;
10
+ distance: number;
11
+ }
12
+ export interface HnswConfig {
13
+ dimension: number;
14
+ maxConnections?: number;
15
+ efConstruction?: number;
16
+ efSearch?: number;
17
+ }
18
+ export declare class HnswBindings {
19
+ private static instance;
20
+ private lib;
21
+ hnsw_new: any;
22
+ hnsw_free: any;
23
+ hnsw_insert: any;
24
+ hnsw_insert_batch: any;
25
+ hnsw_insert_flat: any;
26
+ hnsw_insert_batch_flat: any;
27
+ hnsw_search: any;
28
+ hnsw_search_fast: any;
29
+ hnsw_search_ultra: any;
30
+ hnsw_len: any;
31
+ hnsw_dimension: any;
32
+ hnsw_set_ef_search: any;
33
+ hnsw_get_ef_search: any;
34
+ hnsw_build_flat_cache: any;
35
+ private constructor();
36
+ static getInstance(): HnswBindings;
37
+ }
38
+ /**
39
+ * High-level HNSW Index wrapper
40
+ */
41
+ export declare class HnswIndex {
42
+ private ptr;
43
+ private bindings;
44
+ private _dimension;
45
+ private _efSearch;
46
+ constructor(config: HnswConfig);
47
+ /**
48
+ * Insert a single vector
49
+ */
50
+ insert(id: string, vector: number[]): void;
51
+ /**
52
+ * Insert multiple vectors in batch (faster)
53
+ */
54
+ insertBatch(ids: string[], vectors: number[][]): void;
55
+ /**
56
+ * Search for k nearest neighbors
57
+ */
58
+ search(queryVector: number[], k: number, fast?: boolean): SearchResult[];
59
+ /**
60
+ * Ultra-fast search with minimal ef_search
61
+ */
62
+ searchUltra(queryVector: number[], k: number): SearchResult[];
63
+ /**
64
+ * Get number of vectors in index
65
+ */
66
+ get length(): number;
67
+ /**
68
+ * Get vector dimension
69
+ */
70
+ get dimension(): number;
71
+ /**
72
+ * Set ef_search parameter (controls search quality vs speed)
73
+ */
74
+ set efSearch(value: number);
75
+ /**
76
+ * Get ef_search parameter
77
+ */
78
+ get efSearch(): number;
79
+ /**
80
+ * Build flat cache for faster searches
81
+ */
82
+ buildFlatCache(): void;
83
+ /**
84
+ * Free native resources
85
+ */
86
+ close(): void;
87
+ private stringToId;
88
+ private idToString;
89
+ }
90
+ //# sourceMappingURL=hnsw-bindings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hnsw-bindings.d.ts","sourceRoot":"","sources":["../../../../src/embedded/ffi/hnsw-bindings.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAeH,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,YAAY;IACrB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAe;IACtC,OAAO,CAAC,GAAG,CAAM;IAGV,QAAQ,EAAE,GAAG,CAAC;IACd,SAAS,EAAE,GAAG,CAAC;IACf,WAAW,EAAE,GAAG,CAAC;IACjB,iBAAiB,EAAE,GAAG,CAAC;IACvB,gBAAgB,EAAE,GAAG,CAAC;IACtB,sBAAsB,EAAE,GAAG,CAAC;IAC5B,WAAW,EAAE,GAAG,CAAC;IACjB,gBAAgB,EAAE,GAAG,CAAC;IACtB,iBAAiB,EAAE,GAAG,CAAC;IACvB,QAAQ,EAAE,GAAG,CAAC;IACd,cAAc,EAAE,GAAG,CAAC;IACpB,kBAAkB,EAAE,GAAG,CAAC;IACxB,kBAAkB,EAAE,GAAG,CAAC;IACxB,qBAAqB,EAAE,GAAG,CAAC;IAElC,OAAO;WAuFO,WAAW,IAAI,YAAY;CAM5C;AAED;;GAEG;AACH,qBAAa,SAAS;IAClB,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,UAAU;IAmB9B;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAgB1C;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI;IAmCrD;;OAEG;IACH,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,OAAe,GAAG,YAAY,EAAE;IAgC/E;;OAEG;IACH,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE;IA6B7D;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;OAEG;IACH,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAGzB;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED;;OAEG;IACH,cAAc,IAAI,IAAI;IAOtB;;OAEG;IACH,KAAK,IAAI,IAAI;IAQb,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,UAAU;CAIrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"library-finder.d.ts","sourceRoot":"","sources":["../../../../src/embedded/ffi/library-finder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAyCH;;;;;;;;GAQG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAyDpC"}
1
+ {"version":3,"file":"library-finder.d.ts","sourceRoot":"","sources":["../../../../src/embedded/ffi/library-finder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAyCH;;;;;;;;GAQG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAiEpC"}
@@ -6,4 +6,5 @@
6
6
  */
7
7
  export { EmbeddedDatabase, EmbeddedDatabaseConfig } from './database';
8
8
  export { EmbeddedTransaction } from './transaction';
9
+ export { HnswIndex, HnswConfig, HnswBindings, SearchResult } from './ffi/hnsw-bindings';
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/embedded/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/embedded/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * SochDB Node.js SDK v0.4.0
2
+ * SochDB Node.js SDK v0.4.2
3
3
  *
4
4
  * Dual-mode architecture: Embedded (FFI) + Server (gRPC/IPC)
5
5
  *
@@ -35,9 +35,11 @@
35
35
  * await client.putKv('key', Buffer.from('value'));
36
36
  * ```
37
37
  */
38
- export declare const VERSION = "0.4.1";
38
+ export declare const VERSION = "0.4.2";
39
39
  export { EmbeddedDatabase, EmbeddedDatabaseConfig } from './embedded';
40
40
  export { EmbeddedTransaction } from './embedded';
41
+ export { HnswIndex, HnswConfig, HnswBindings } from './embedded';
42
+ export { SearchResult as HnswSearchResult } from './embedded';
41
43
  export { EmbeddedDatabase as Database } from './embedded';
42
44
  export { Namespace, Collection, DistanceMetric, NamespaceNotFoundError, NamespaceExistsError, CollectionNotFoundError, CollectionExistsError, } from './namespace';
43
45
  export type { NamespaceConfig, CollectionConfig, SearchRequest, SearchResult as NamespaceSearchResult, } from './namespace';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAGH,eAAO,MAAM,OAAO,UAAU,CAAC;AAG/B,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGjD,OAAO,EAAE,gBAAgB,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG1D,OAAO,EACL,SAAS,EACT,UAAU,EACV,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,YAAY,IAAI,qBAAqB,GACtC,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,aAAa,EACb,SAAS,EACT,WAAW,GACZ,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,UAAU,GACX,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,UAAU,EACV,QAAQ,EACR,UAAU,GACX,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,aAAa,GACd,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,UAAU,EACV,eAAe,GAChB,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,MAAM,EACN,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,cAAc,GACf,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,YAAY,EACV,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,SAAS,GACV,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EACL,UAAU,EACV,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EACL,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,aAAa,EAEb,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,GAChB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,YAAY,IAAI,UAAU,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAGH,eAAO,MAAM,OAAO,UAAU,CAAC;AAG/B,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9D,OAAO,EAAE,gBAAgB,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG1D,OAAO,EACL,SAAS,EACT,UAAU,EACV,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,YAAY,IAAI,qBAAqB,GACtC,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,aAAa,EACb,SAAS,EACT,WAAW,GACZ,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,UAAU,GACX,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,UAAU,EACV,QAAQ,EACR,UAAU,GACX,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,aAAa,GACd,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,UAAU,EACV,eAAe,GAChB,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,MAAM,EACN,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,cAAc,GACf,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,YAAY,EACV,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,SAAS,GACV,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EACL,UAAU,EACV,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EACL,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,aAAa,EAEb,SAAS,EACT,SAAS,EACT,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,GAChB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,YAAY,IAAI,UAAU,EAAE,MAAM,eAAe,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sochdb/sochdb",
3
- "version": "0.4.1",
3
+ "version": "0.4.2",
4
4
  "description": "SochDB is an AI-native database with token-optimized output, O(|path|) lookups, built-in vector search, and durable transactions.",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",