010-add-llm-requests.sql

 1-- LLM Requests table for tracking/debugging API calls
 2-- Each row represents one HTTP request/response to an LLM provider
 3
 4CREATE TABLE llm_requests (
 5    id INTEGER PRIMARY KEY AUTOINCREMENT,
 6    conversation_id TEXT,  -- optional, may be NULL for requests outside conversations
 7    model TEXT NOT NULL,   -- model ID used for the request
 8    provider TEXT NOT NULL, -- e.g., "anthropic", "openai", "gemini"
 9    url TEXT NOT NULL,
10    request_body TEXT,     -- JSON request body
11    response_body TEXT,    -- JSON response body
12    status_code INTEGER,
13    error TEXT,            -- error message if any
14    duration_ms INTEGER,   -- request duration in milliseconds
15    created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
16);
17
18-- Index on conversation_id for debugging specific conversations
19CREATE INDEX idx_llm_requests_conversation_id ON llm_requests(conversation_id);
20
21-- Index on created_at for time-based queries
22CREATE INDEX idx_llm_requests_created_at ON llm_requests(created_at DESC);
23
24-- Index on model for filtering by model
25CREATE INDEX idx_llm_requests_model ON llm_requests(model);