Skip to content

Graphorin API reference v0.12.1


Graphorin API reference / @graphorin/store-sqlite / / VectorTableManager

Class: VectorTableManager

Defined in: packages/store-sqlite/src/vector-table-mgr.ts:20

Lazy-creator for per-embedder vec0 virtual tables. The first write for (entity, embedder_id) creates the corresponding *_vec_<slug> virtual table; subsequent writes hit the cached existence check.

Wave-D D5: in 'linear-fallback' mode (sqlite-vec unavailable + onMissingSqliteVec: 'linear-fallback') the same table names are created as PLAIN tables (<id> TEXT PRIMARY KEY, embedding BLOB) and KNN is served by VectorTableManager.linearKnn - a batched in-process cosine scan with setImmediate yields. A database must stay in one mode: opening vec0 tables in fallback mode (or plain fallback tables in vec0 mode) throws an actionable error at construction.

Stable

Constructors

Constructor

ts
new VectorTableManager(conn): VectorTableManager;

Defined in: packages/store-sqlite/src/vector-table-mgr.ts:25

Parameters

ParameterType
connSqliteConnection

Returns

VectorTableManager

Accessors

mode

Get Signature

ts
get mode(): "vec0" | "linear-fallback" | "disabled";

Defined in: packages/store-sqlite/src/vector-table-mgr.ts:96

Active vector-serving mode (wave-D D5).

Returns

"vec0" | "linear-fallback" | "disabled"

Methods

dropTable()

ts
dropTable(tableName): void;

Defined in: packages/store-sqlite/src/vector-table-mgr.ts:155

Internal

  • drop a table this manager tracks (space reclaim).

Parameters

ParameterType
tableNamestring

Returns

void


ensureTable()

ts
ensureTable(kind, meta): string;

Defined in: packages/store-sqlite/src/vector-table-mgr.ts:73

Ensures the per-embedder vector table for kind exists (vec0 virtual table, or a plain sidecar in linear-fallback mode). Returns the concrete table name (which the caller uses in their INSERT INTO + SELECT statements).

Parameters

ParameterType
kind"facts" | "episodes" | "messages"
metaEmbeddingMetaRow

Returns

string

Stable


knownTables()

ts
knownTables(): readonly string[];

Defined in: packages/store-sqlite/src/vector-table-mgr.ts:150

Internal

Returns

readonly string[]


linearKnn()

ts
linearKnn(
   tableName, 
   idColumn, 
   query, 
   k, 
   batchSize?): Promise<readonly {
  distance: number;
  id: string;
}[]>;

Defined in: packages/store-sqlite/src/vector-table-mgr.ts:109

In-process cosine KNN over a plain fallback sidecar (wave-D D5): scans the table in batches of batchSize rows, yielding to the event loop between batches (setImmediate) so a large scan cannot monopolise it, and keeps the k nearest by cosine distance (1 - cos, the same scale vec0 reports for its cosine metric).

Parameters

ParameterTypeDefault value
tableNamestringundefined
idColumnstringundefined
queryFloat32Arrayundefined
knumberundefined
batchSizenumber500

Returns

Promise<readonly { distance: number; id: string; }[]>

Stable