init: initial commit
This commit is contained in:
@@ -0,0 +1,186 @@
|
||||
CREATE TABLE IF NOT EXISTS projects (
|
||||
id TEXT PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
root_path TEXT NOT NULL UNIQUE,
|
||||
canonical_path TEXT NOT NULL,
|
||||
is_git_repository INTEGER NOT NULL DEFAULT 0,
|
||||
trust_level TEXT NOT NULL DEFAULT 'readonly',
|
||||
detected_stack_json TEXT NOT NULL DEFAULT '{}',
|
||||
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
last_opened_at TEXT NOT NULL DEFAULT (datetime('now'))
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS project_settings (
|
||||
project_id TEXT PRIMARY KEY,
|
||||
model_profile_id TEXT,
|
||||
approval_mode TEXT NOT NULL DEFAULT 'balanced',
|
||||
git_isolation_mode TEXT NOT NULL DEFAULT 'worktree',
|
||||
network_policy TEXT NOT NULL DEFAULT 'local_only',
|
||||
read_roots_json TEXT NOT NULL DEFAULT '[]',
|
||||
write_roots_json TEXT NOT NULL DEFAULT '[]',
|
||||
ignored_paths_json TEXT NOT NULL DEFAULT '[]',
|
||||
commands_json TEXT NOT NULL DEFAULT '{}',
|
||||
FOREIGN KEY(project_id) REFERENCES projects(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS tasks (
|
||||
id TEXT PRIMARY KEY,
|
||||
project_id TEXT NOT NULL,
|
||||
title TEXT NOT NULL,
|
||||
description TEXT NOT NULL DEFAULT '',
|
||||
mode TEXT NOT NULL DEFAULT 'planAndExecute',
|
||||
status TEXT NOT NULL DEFAULT 'draft',
|
||||
base_revision TEXT,
|
||||
worktree_path TEXT,
|
||||
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
updated_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
completed_at TEXT,
|
||||
failure_code TEXT,
|
||||
failure_message TEXT,
|
||||
FOREIGN KEY(project_id) REFERENCES projects(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS task_events (
|
||||
id TEXT PRIMARY KEY,
|
||||
task_id TEXT NOT NULL,
|
||||
sequence INTEGER NOT NULL,
|
||||
event_type TEXT NOT NULL,
|
||||
payload_json TEXT NOT NULL DEFAULT '{}',
|
||||
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
UNIQUE(task_id, sequence),
|
||||
FOREIGN KEY(task_id) REFERENCES tasks(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS messages (
|
||||
id TEXT PRIMARY KEY,
|
||||
task_id TEXT NOT NULL,
|
||||
role TEXT NOT NULL,
|
||||
content_markdown TEXT NOT NULL DEFAULT '',
|
||||
metadata_json TEXT NOT NULL DEFAULT '{}',
|
||||
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
FOREIGN KEY(task_id) REFERENCES tasks(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS plans (
|
||||
id TEXT PRIMARY KEY,
|
||||
task_id TEXT NOT NULL,
|
||||
version INTEGER NOT NULL DEFAULT 1,
|
||||
status TEXT NOT NULL DEFAULT 'draft',
|
||||
content_json TEXT NOT NULL DEFAULT '{}',
|
||||
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
approved_at TEXT,
|
||||
FOREIGN KEY(task_id) REFERENCES tasks(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS tool_calls (
|
||||
id TEXT PRIMARY KEY,
|
||||
task_id TEXT NOT NULL,
|
||||
tool_name TEXT NOT NULL,
|
||||
arguments_json TEXT NOT NULL DEFAULT '{}',
|
||||
reason TEXT NOT NULL DEFAULT '',
|
||||
risk_level TEXT NOT NULL DEFAULT 'low',
|
||||
approval_status TEXT NOT NULL DEFAULT 'pending',
|
||||
status TEXT NOT NULL DEFAULT 'pending',
|
||||
output_summary TEXT,
|
||||
error_json TEXT,
|
||||
started_at TEXT,
|
||||
completed_at TEXT,
|
||||
FOREIGN KEY(task_id) REFERENCES tasks(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS patches (
|
||||
id TEXT PRIMARY KEY,
|
||||
task_id TEXT NOT NULL,
|
||||
version INTEGER NOT NULL DEFAULT 1,
|
||||
status TEXT NOT NULL DEFAULT 'draft',
|
||||
base_revision TEXT,
|
||||
summary TEXT NOT NULL DEFAULT '',
|
||||
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
applied_at TEXT,
|
||||
FOREIGN KEY(task_id) REFERENCES tasks(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS patch_files (
|
||||
id TEXT PRIMARY KEY,
|
||||
patch_id TEXT NOT NULL,
|
||||
file_path TEXT NOT NULL,
|
||||
operation TEXT NOT NULL,
|
||||
before_hash TEXT,
|
||||
after_hash TEXT,
|
||||
diff_text TEXT NOT NULL DEFAULT '',
|
||||
review_status TEXT NOT NULL DEFAULT 'pending',
|
||||
FOREIGN KEY(patch_id) REFERENCES patches(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS command_runs (
|
||||
id TEXT PRIMARY KEY,
|
||||
task_id TEXT,
|
||||
program TEXT NOT NULL,
|
||||
args_json TEXT NOT NULL DEFAULT '[]',
|
||||
cwd TEXT NOT NULL,
|
||||
risk_level TEXT NOT NULL DEFAULT 'low',
|
||||
exit_code INTEGER,
|
||||
status TEXT NOT NULL DEFAULT 'pending',
|
||||
output_log_path TEXT,
|
||||
started_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||
completed_at TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS model_profiles (
|
||||
id TEXT PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
role TEXT NOT NULL DEFAULT 'planner',
|
||||
provider TEXT NOT NULL,
|
||||
base_url TEXT NOT NULL,
|
||||
model_id TEXT NOT NULL,
|
||||
api_key_ref TEXT,
|
||||
context_window INTEGER,
|
||||
max_output_tokens INTEGER,
|
||||
temperature REAL,
|
||||
capabilities_json TEXT NOT NULL DEFAULT '{}',
|
||||
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS mcp_servers (
|
||||
id TEXT PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
transport TEXT NOT NULL DEFAULT 'stdio',
|
||||
command TEXT,
|
||||
args_json TEXT NOT NULL DEFAULT '[]',
|
||||
url TEXT,
|
||||
status TEXT NOT NULL DEFAULT 'stopped',
|
||||
auto_start INTEGER NOT NULL DEFAULT 0,
|
||||
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS index_files (
|
||||
id TEXT PRIMARY KEY,
|
||||
project_id TEXT NOT NULL,
|
||||
file_path TEXT NOT NULL,
|
||||
file_size INTEGER NOT NULL DEFAULT 0,
|
||||
modified_at TEXT NOT NULL,
|
||||
file_hash TEXT,
|
||||
language TEXT,
|
||||
is_ignored INTEGER NOT NULL DEFAULT 0,
|
||||
index_status TEXT NOT NULL DEFAULT 'pending',
|
||||
UNIQUE(project_id, file_path),
|
||||
FOREIGN KEY(project_id) REFERENCES projects(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS symbols (
|
||||
id TEXT PRIMARY KEY,
|
||||
project_id TEXT NOT NULL,
|
||||
file_path TEXT NOT NULL,
|
||||
symbol_name TEXT NOT NULL,
|
||||
symbol_kind TEXT NOT NULL,
|
||||
start_line INTEGER NOT NULL,
|
||||
end_line INTEGER,
|
||||
parent_symbol_id TEXT,
|
||||
FOREIGN KEY(project_id) REFERENCES projects(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS app_settings (
|
||||
key TEXT PRIMARY KEY,
|
||||
value_json TEXT NOT NULL DEFAULT '{}',
|
||||
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
||||
);
|
||||
Reference in New Issue
Block a user