Add initial Go CLI skeleton
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
CREATE TABLE IF NOT EXISTS threads (
|
||||
thread_id TEXT PRIMARY KEY,
|
||||
run_id TEXT NOT NULL,
|
||||
task_id TEXT NOT NULL,
|
||||
subject TEXT NOT NULL,
|
||||
created_by TEXT NOT NULL,
|
||||
assigned_to TEXT NOT NULL,
|
||||
status TEXT NOT NULL,
|
||||
priority TEXT NOT NULL DEFAULT 'normal',
|
||||
latest_message_id TEXT,
|
||||
created_at TEXT NOT NULL,
|
||||
updated_at TEXT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS messages (
|
||||
message_id TEXT PRIMARY KEY,
|
||||
thread_id TEXT NOT NULL,
|
||||
from_agent TEXT NOT NULL,
|
||||
to_agent TEXT NOT NULL,
|
||||
kind TEXT NOT NULL,
|
||||
summary TEXT NOT NULL,
|
||||
body TEXT NOT NULL DEFAULT '',
|
||||
payload_json TEXT NOT NULL DEFAULT '{}',
|
||||
created_at TEXT NOT NULL,
|
||||
FOREIGN KEY(thread_id) REFERENCES threads(thread_id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS leases (
|
||||
thread_id TEXT PRIMARY KEY,
|
||||
agent_id TEXT NOT NULL,
|
||||
lease_token TEXT NOT NULL,
|
||||
claimed_at TEXT NOT NULL,
|
||||
expires_at TEXT NOT NULL,
|
||||
released_at TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS artifacts (
|
||||
artifact_id TEXT PRIMARY KEY,
|
||||
message_id TEXT NOT NULL,
|
||||
path TEXT NOT NULL,
|
||||
kind TEXT NOT NULL,
|
||||
metadata_json TEXT NOT NULL DEFAULT '{}',
|
||||
created_at TEXT NOT NULL,
|
||||
FOREIGN KEY(message_id) REFERENCES messages(message_id)
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_threads_status_assigned
|
||||
ON threads(status, assigned_to, updated_at);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_messages_thread_created
|
||||
ON messages(thread_id, created_at);
|
||||
@@ -0,0 +1,52 @@
|
||||
CREATE TABLE IF NOT EXISTS runs (
|
||||
run_id TEXT PRIMARY KEY,
|
||||
goal TEXT NOT NULL,
|
||||
summary TEXT NOT NULL DEFAULT '',
|
||||
status TEXT NOT NULL DEFAULT 'active',
|
||||
created_at TEXT NOT NULL,
|
||||
updated_at TEXT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS tasks (
|
||||
run_id TEXT NOT NULL,
|
||||
task_id TEXT NOT NULL,
|
||||
title TEXT NOT NULL,
|
||||
summary TEXT NOT NULL DEFAULT '',
|
||||
status TEXT NOT NULL,
|
||||
default_to TEXT,
|
||||
priority TEXT NOT NULL DEFAULT 'normal',
|
||||
acceptance_json TEXT NOT NULL DEFAULT '[]',
|
||||
latest_attempt_no INTEGER,
|
||||
created_at TEXT NOT NULL,
|
||||
updated_at TEXT NOT NULL,
|
||||
PRIMARY KEY (run_id, task_id),
|
||||
FOREIGN KEY(run_id) REFERENCES runs(run_id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS task_dependencies (
|
||||
run_id TEXT NOT NULL,
|
||||
task_id TEXT NOT NULL,
|
||||
depends_on_task_id TEXT NOT NULL,
|
||||
PRIMARY KEY (run_id, task_id, depends_on_task_id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS task_attempts (
|
||||
run_id TEXT NOT NULL,
|
||||
task_id TEXT NOT NULL,
|
||||
attempt_no INTEGER NOT NULL,
|
||||
assigned_to TEXT NOT NULL,
|
||||
thread_id TEXT NOT NULL,
|
||||
base_ref TEXT,
|
||||
base_commit TEXT,
|
||||
branch_name TEXT,
|
||||
worktree_path TEXT,
|
||||
workspace_status TEXT,
|
||||
result_commit TEXT,
|
||||
status TEXT NOT NULL,
|
||||
created_at TEXT NOT NULL,
|
||||
updated_at TEXT NOT NULL,
|
||||
PRIMARY KEY (run_id, task_id, attempt_no)
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_tasks_run_status
|
||||
ON tasks(run_id, status, priority, updated_at);
|
||||
@@ -0,0 +1,18 @@
|
||||
CREATE TABLE IF NOT EXISTS events (
|
||||
event_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
run_id TEXT NOT NULL,
|
||||
task_id TEXT NOT NULL,
|
||||
thread_id TEXT,
|
||||
source TEXT NOT NULL,
|
||||
event_type TEXT NOT NULL,
|
||||
message_id TEXT,
|
||||
summary TEXT NOT NULL DEFAULT '',
|
||||
payload_json TEXT NOT NULL DEFAULT '{}',
|
||||
created_at TEXT NOT NULL
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_events_run_event
|
||||
ON events(run_id, event_id);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_events_thread_event
|
||||
ON events(thread_id, event_id);
|
||||
@@ -0,0 +1,45 @@
|
||||
CREATE TABLE IF NOT EXISTS council_runs (
|
||||
run_id TEXT PRIMARY KEY,
|
||||
mode TEXT NOT NULL,
|
||||
target_type TEXT NOT NULL,
|
||||
output_mode TEXT NOT NULL,
|
||||
only_unanimous INTEGER NOT NULL DEFAULT 0,
|
||||
created_at TEXT NOT NULL,
|
||||
updated_at TEXT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS council_reviewers (
|
||||
run_id TEXT NOT NULL,
|
||||
reviewer_role TEXT NOT NULL,
|
||||
task_id TEXT NOT NULL,
|
||||
status TEXT NOT NULL,
|
||||
PRIMARY KEY (run_id, reviewer_role)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS council_findings (
|
||||
run_id TEXT NOT NULL,
|
||||
reviewer_role TEXT NOT NULL,
|
||||
finding_id TEXT NOT NULL,
|
||||
title TEXT NOT NULL,
|
||||
summary TEXT NOT NULL,
|
||||
proposal TEXT NOT NULL,
|
||||
rationale TEXT NOT NULL,
|
||||
confidence TEXT NOT NULL,
|
||||
tags_json TEXT NOT NULL DEFAULT '[]',
|
||||
target_refs_json TEXT NOT NULL DEFAULT '{}',
|
||||
PRIMARY KEY (run_id, reviewer_role, finding_id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS council_groups (
|
||||
run_id TEXT NOT NULL,
|
||||
group_id TEXT NOT NULL,
|
||||
proposal TEXT NOT NULL,
|
||||
bucket TEXT NOT NULL,
|
||||
support_count INTEGER NOT NULL,
|
||||
supporters_json TEXT NOT NULL DEFAULT '[]',
|
||||
dissenters_json TEXT NOT NULL DEFAULT '[]',
|
||||
rationale_summary TEXT NOT NULL DEFAULT '',
|
||||
tags_json TEXT NOT NULL DEFAULT '[]',
|
||||
source_finding_ids_json TEXT NOT NULL DEFAULT '[]',
|
||||
PRIMARY KEY (run_id, group_id)
|
||||
);
|
||||
Reference in New Issue
Block a user