import Database from "better-sqlite3";
import knex from "knex";
import * as sqlite_vec from "sqlite-vec";
const db = new Database("vector.db");
sqlite_vec.load(db);
const knexDb = knex({
client: "better-sqlite3",
connection: {
filename: "vector.db",
},
useNullAsDefault: true,
});
export const EMBEDDING_DIM = Number(process.env.VEC_DIM ?? 3);
export function initDb() {
db.exec(`
CREATE TABLE if not exists items (
id INTEGER PRIMARY KEY,
content TEXT
);
CREATE VIRTUAL TABLE if not exists vec_items USING vec0(
id integer primary key,
embedding float[${EMBEDDING_DIM}]
);
`);
}
export { db, knexDb };