114 lines
4.6 KiB
SQL
114 lines
4.6 KiB
SQL
-- call_monitor schema v1.0.0
|
|
-- Event-log de invocaciones del agente al registry + telemetria asociada.
|
|
-- Issue 0085. Aditivo. Aplicado via embed.FS al abrir operations.db.
|
|
|
|
PRAGMA journal_mode=WAL;
|
|
PRAGMA foreign_keys=ON;
|
|
|
|
-- Sesiones Claude Code. Una por arranque de claude-code.
|
|
CREATE TABLE IF NOT EXISTS sessions (
|
|
session_id TEXT PRIMARY KEY,
|
|
cwd TEXT NOT NULL DEFAULT '',
|
|
started_at INTEGER NOT NULL,
|
|
ended_at INTEGER,
|
|
health_score REAL,
|
|
mcp_ratio REAL,
|
|
notes TEXT NOT NULL DEFAULT ''
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_sessions_started ON sessions(started_at);
|
|
|
|
-- Cada invocacion del agente sobre funcion del registry (heredoc/mcp/fn_run).
|
|
CREATE TABLE IF NOT EXISTS calls (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
session_id TEXT NOT NULL DEFAULT '',
|
|
function_id TEXT NOT NULL DEFAULT '',
|
|
tool_used TEXT NOT NULL,
|
|
args_hash TEXT NOT NULL DEFAULT '',
|
|
duration_ms INTEGER NOT NULL DEFAULT 0,
|
|
success INTEGER NOT NULL DEFAULT 1,
|
|
error_class TEXT NOT NULL DEFAULT '',
|
|
error_snippet TEXT NOT NULL DEFAULT '',
|
|
ts INTEGER NOT NULL
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_calls_function ON calls(function_id);
|
|
CREATE INDEX IF NOT EXISTS idx_calls_session ON calls(session_id);
|
|
CREATE INDEX IF NOT EXISTS idx_calls_ts ON calls(ts);
|
|
CREATE INDEX IF NOT EXISTS idx_calls_tool ON calls(tool_used);
|
|
CREATE INDEX IF NOT EXISTS idx_calls_success ON calls(success);
|
|
|
|
-- Edit/Write del agente sobre archivos del registry.
|
|
CREATE TABLE IF NOT EXISTS code_writes (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
session_id TEXT NOT NULL DEFAULT '',
|
|
function_id TEXT NOT NULL DEFAULT '',
|
|
file_path TEXT NOT NULL,
|
|
lines_added INTEGER NOT NULL DEFAULT 0,
|
|
lines_removed INTEGER NOT NULL DEFAULT 0,
|
|
ts INTEGER NOT NULL
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_code_writes_function ON code_writes(function_id);
|
|
CREATE INDEX IF NOT EXISTS idx_code_writes_ts ON code_writes(ts);
|
|
|
|
-- Test run de unit tests del registry (go test / pytest / etc.).
|
|
CREATE TABLE IF NOT EXISTS test_runs (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
session_id TEXT NOT NULL DEFAULT '',
|
|
function_id TEXT NOT NULL DEFAULT '',
|
|
test_id TEXT NOT NULL DEFAULT '',
|
|
passed INTEGER NOT NULL DEFAULT 1,
|
|
duration_ms INTEGER NOT NULL DEFAULT 0,
|
|
output_snippet TEXT NOT NULL DEFAULT '',
|
|
ts INTEGER NOT NULL
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_test_runs_function ON test_runs(function_id);
|
|
CREATE INDEX IF NOT EXISTS idx_test_runs_passed ON test_runs(passed);
|
|
CREATE INDEX IF NOT EXISTS idx_test_runs_ts ON test_runs(ts);
|
|
|
|
-- E2E checks de apps que dependen de una funcion del registry.
|
|
CREATE TABLE IF NOT EXISTS e2e_runs_fn (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
session_id TEXT NOT NULL DEFAULT '',
|
|
function_id TEXT NOT NULL,
|
|
app_id TEXT NOT NULL,
|
|
check_id TEXT NOT NULL,
|
|
passed INTEGER NOT NULL DEFAULT 1,
|
|
ts INTEGER NOT NULL
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_e2e_function ON e2e_runs_fn(function_id);
|
|
CREATE INDEX IF NOT EXISTS idx_e2e_app ON e2e_runs_fn(app_id);
|
|
CREATE INDEX IF NOT EXISTS idx_e2e_passed ON e2e_runs_fn(passed);
|
|
|
|
-- Antipatrones detectados (sqlite3 inline, import *, heredoc reescribiendo, etc.).
|
|
CREATE TABLE IF NOT EXISTS violations (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
session_id TEXT NOT NULL DEFAULT '',
|
|
rule_id TEXT NOT NULL,
|
|
function_id TEXT NOT NULL DEFAULT '',
|
|
command_snippet TEXT NOT NULL DEFAULT '',
|
|
severity TEXT NOT NULL DEFAULT 'warning',
|
|
ts INTEGER NOT NULL
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_violations_rule ON violations(rule_id);
|
|
CREATE INDEX IF NOT EXISTS idx_violations_function ON violations(function_id);
|
|
CREATE INDEX IF NOT EXISTS idx_violations_severity ON violations(severity);
|
|
|
|
-- Heredocs/snippets clusterizados por similitud (alimenta proposals new_function).
|
|
CREATE TABLE IF NOT EXISTS patterns (
|
|
pattern_hash TEXT PRIMARY KEY,
|
|
representative_snippet TEXT NOT NULL,
|
|
occurrences INTEGER NOT NULL DEFAULT 1,
|
|
session_ids_json TEXT NOT NULL DEFAULT '[]',
|
|
first_seen INTEGER NOT NULL,
|
|
last_seen INTEGER NOT NULL,
|
|
proposal_id TEXT NOT NULL DEFAULT ''
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_patterns_occurrences ON patterns(occurrences);
|
|
CREATE INDEX IF NOT EXISTS idx_patterns_last_seen ON patterns(last_seen);
|