import sqlite3 from .config import settings def get_db() -> sqlite3.Connection: conn = sqlite3.connect(settings.db_path) conn.row_factory = sqlite3.Row return conn def init_db(): conn = get_db() conn.executescript(""" CREATE TABLE IF NOT EXISTS events ( id INTEGER PRIMARY KEY AUTOINCREMENT, timestamp TEXT DEFAULT (datetime('now')), source TEXT NOT NULL, event_type TEXT NOT NULL, payload TEXT NOT NULL, processed INTEGER DEFAULT 0 ); CREATE TABLE IF NOT EXISTS tasks ( id INTEGER PRIMARY KEY AUTOINCREMENT, plane_id TEXT, repo TEXT NOT NULL, branch TEXT, stage TEXT DEFAULT 'created', agent_running TEXT, created_at TEXT DEFAULT (datetime('now')), updated_at TEXT DEFAULT (datetime('now')) ); CREATE TABLE IF NOT EXISTS agent_runs ( id INTEGER PRIMARY KEY AUTOINCREMENT, task_id INTEGER REFERENCES tasks(id), agent TEXT NOT NULL, started_at TEXT DEFAULT (datetime('now')), finished_at TEXT, exit_code INTEGER, output_path TEXT ); """) conn.close()