feat: orchestrator MVP — webhooks, agent launcher, QG checks
This commit is contained in:
42
src/db.py
Normal file
42
src/db.py
Normal file
@@ -0,0 +1,42 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user