58 lines
3.2 KiB
SQL
58 lines
3.2 KiB
SQL
CREATE TABLE IF NOT EXISTS sessions (
|
|||
|
|
id TEXT PRIMARY KEY, title TEXT, project TEXT, project_path TEXT,
|
||
|
|
started_at TEXT, ended_at TEXT, git_branch TEXT, version TEXT,
|
||
|
|
message_count INTEGER DEFAULT 0, jsonl_path TEXT);
|
||
|
|
CREATE TABLE IF NOT EXISTS messages (
|
||
|
|
uuid TEXT PRIMARY KEY, session_id TEXT, type TEXT, parent_uuid TEXT,
|
||
|
|
timestamp TEXT, role TEXT, text TEXT, content_type TEXT,
|
||
|
|
is_meta INTEGER DEFAULT 0, model TEXT,
|
||
|
|
is_sidechain INTEGER DEFAULT 0, agent_id TEXT,
|
||
|
|
input_tokens INTEGER, output_tokens INTEGER,
|
||
|
|
cwd TEXT, skill TEXT, turn_duration_ms INTEGER);
|
||
|
|
CREATE TABLE IF NOT EXISTS tool_calls (
|
||
|
|
id TEXT PRIMARY KEY, message_uuid TEXT, session_id TEXT,
|
||
|
|
name TEXT, input_json TEXT, file_path TEXT);
|
||
|
|
CREATE TABLE IF NOT EXISTS tool_results (
|
||
|
|
tool_use_id TEXT PRIMARY KEY, message_uuid TEXT, session_id TEXT,
|
||
|
|
content TEXT, file_path TEXT, is_error INTEGER DEFAULT 0);
|
||
|
|
CREATE TABLE IF NOT EXISTS subagents (
|
||
|
|
agent_id TEXT PRIMARY KEY, session_id TEXT, parent_tool_use_id TEXT,
|
||
|
|
agent_type TEXT, description TEXT, duration_ms INTEGER, total_tokens INTEGER);
|
||
|
|
CREATE TABLE IF NOT EXISTS workflows (
|
||
|
|
run_id TEXT PRIMARY KEY, session_id TEXT, task_id TEXT,
|
||
|
|
script TEXT, result_json TEXT, timestamp TEXT, agent_count INTEGER DEFAULT 0,
|
||
|
|
duration_ms INTEGER, total_tokens INTEGER, status TEXT, workflow_name TEXT);
|
||
|
|
CREATE TABLE IF NOT EXISTS workflow_agents (
|
||
|
|
agent_id TEXT PRIMARY KEY, run_id TEXT, session_id TEXT,
|
||
|
|
agent_type TEXT, description TEXT,
|
||
|
|
phase TEXT, label TEXT, model TEXT, state TEXT,
|
||
|
|
duration_ms INTEGER, tokens INTEGER, tool_calls INTEGER);
|
||
|
|
CREATE TABLE IF NOT EXISTS index_state (
|
||
|
|
jsonl_path TEXT PRIMARY KEY, mtime REAL, lines_processed INTEGER);
|
||
|
|
CREATE TABLE IF NOT EXISTS summaries (
|
||
|
|
id TEXT PRIMARY KEY, session_id TEXT, timestamp TEXT,
|
||
|
|
source TEXT, content TEXT);
|
||
|
|
CREATE VIRTUAL TABLE IF NOT EXISTS messages_fts USING fts5(
|
||
|
|
uuid UNINDEXED, session_id UNINDEXED, text, content=messages, content_rowid=rowid);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_messages_session ON messages(session_id);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_messages_agent ON messages(agent_id);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_messages_ts ON messages(session_id, timestamp);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_tc_session_name ON tool_calls(session_id, name);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_tc_file ON tool_calls(file_path);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_sa_session ON subagents(session_id);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_wf_session ON workflows(session_id);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_wa_run ON workflow_agents(run_id);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_summaries_session ON summaries(session_id);
|
||
|
|
CREATE TABLE IF NOT EXISTS memories (
|
||
|
|
id TEXT PRIMARY KEY, session_id TEXT, project TEXT,
|
||
|
|
message_start TEXT, message_end TEXT,
|
||
|
|
path TEXT, anchors TEXT, summary TEXT, created_at TEXT,
|
||
|
|
deleted_at TEXT, deleted_reason TEXT);
|
||
|
|
CREATE VIRTUAL TABLE IF NOT EXISTS memories_fts USING fts5(
|
||
|
|
id UNINDEXED, path, summary,
|
||
|
|
content=memories, content_rowid=rowid,
|
||
|
|
tokenize='unicode61 remove_diacritics 1');
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_memories_project ON memories(project);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_memories_session ON memories(session_id);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_memories_created ON memories(created_at);
|