feat: initial scaffold of agent_runner_api service Go :8486

This commit is contained in:
agent
2026-05-18 18:46:13 +02:00
commit b394d27e9f
17 changed files with 1449 additions and 0 deletions
+9
View File
@@ -0,0 +1,9 @@
CREATE TABLE IF NOT EXISTS workflows (
id TEXT PRIMARY KEY,
name TEXT NOT NULL,
prompt_template TEXT NOT NULL DEFAULT '',
dod_schema_json TEXT NOT NULL DEFAULT '[]',
created_at INTEGER NOT NULL
);
CREATE INDEX IF NOT EXISTS idx_workflows_name ON workflows(name);
+23
View File
@@ -0,0 +1,23 @@
CREATE TABLE IF NOT EXISTS runs (
id TEXT PRIMARY KEY,
workflow_id TEXT,
issue_id TEXT,
card_id TEXT,
kanban_app TEXT,
mode TEXT NOT NULL DEFAULT 'agent',
branch TEXT NOT NULL DEFAULT '',
worktree_path TEXT NOT NULL DEFAULT '',
status TEXT NOT NULL DEFAULT 'pending',
started_at INTEGER NOT NULL,
finished_at INTEGER,
agent_pid INTEGER,
agent_log_path TEXT,
error TEXT,
FOREIGN KEY (workflow_id) REFERENCES workflows(id)
);
CREATE INDEX IF NOT EXISTS idx_runs_status ON runs(status);
CREATE INDEX IF NOT EXISTS idx_runs_issue ON runs(issue_id);
CREATE INDEX IF NOT EXISTS idx_runs_card ON runs(card_id);
CREATE INDEX IF NOT EXISTS idx_runs_kanban_app ON runs(kanban_app);
CREATE INDEX IF NOT EXISTS idx_runs_started ON runs(started_at DESC);
+11
View File
@@ -0,0 +1,11 @@
CREATE TABLE IF NOT EXISTS worktrees (
id TEXT PRIMARY KEY,
run_id TEXT NOT NULL,
path TEXT NOT NULL,
branch TEXT NOT NULL,
created_at INTEGER NOT NULL,
removed_at INTEGER,
FOREIGN KEY (run_id) REFERENCES runs(id) ON DELETE CASCADE
);
CREATE INDEX IF NOT EXISTS idx_worktrees_run ON worktrees(run_id);
+14
View File
@@ -0,0 +1,14 @@
CREATE TABLE IF NOT EXISTS dod_items (
id TEXT PRIMARY KEY,
run_id TEXT NOT NULL,
item_key TEXT NOT NULL,
kind TEXT NOT NULL DEFAULT 'manual',
expected TEXT NOT NULL DEFAULT '',
required INTEGER NOT NULL DEFAULT 1,
status TEXT NOT NULL DEFAULT 'pending',
created_at INTEGER NOT NULL,
FOREIGN KEY (run_id) REFERENCES runs(id) ON DELETE CASCADE
);
CREATE INDEX IF NOT EXISTS idx_dod_items_run ON dod_items(run_id);
CREATE INDEX IF NOT EXISTS idx_dod_items_status ON dod_items(status);
+14
View File
@@ -0,0 +1,14 @@
CREATE TABLE IF NOT EXISTS dod_evidence (
id TEXT PRIMARY KEY,
dod_item_id TEXT NOT NULL,
kind TEXT NOT NULL DEFAULT 'text',
payload_path TEXT,
payload_url TEXT,
payload_text TEXT,
attached_at INTEGER NOT NULL,
validated_at INTEGER,
validated_by TEXT,
FOREIGN KEY (dod_item_id) REFERENCES dod_items(id) ON DELETE CASCADE
);
CREATE INDEX IF NOT EXISTS idx_dod_evidence_item ON dod_evidence(dod_item_id);