import type Database from 'better-sqlite3';
export function initializeDatabase(db: Database.Database): void {
db.pragma('foreign_keys = ON');
db.exec(`
CREATE TABLE IF NOT EXISTS memories (
id TEXT PRIMARY KEY,
content TEXT NOT NULL,
metadata TEXT, -- JSON string
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
)
`);
db.exec(`
CREATE VIRTUAL TABLE IF NOT EXISTS memory_embeddings USING vec0(
memory_id TEXT PRIMARY KEY,
embedding FLOAT[1536]
)
`);
db.exec(`
CREATE INDEX IF NOT EXISTS idx_memories_created_at ON memories(created_at);
`);
db.exec(`
CREATE INDEX IF NOT EXISTS idx_memories_updated_at ON memories(updated_at);
`);
db.exec(`
CREATE TRIGGER IF NOT EXISTS update_memories_updated_at
AFTER UPDATE ON memories
BEGIN
UPDATE memories SET updated_at = CURRENT_TIMESTAMP WHERE id = NEW.id;
END
`);
}