Warp Oz agent sessions from Warp's local SQLite database.
- Source:
src/providers/warp.ts - Loading: lazy (
src/providers/index.ts) - Test:
tests/providers/warp.test.ts
A SQLite database in Warp's group container.
| Channel | Default path |
|---|---|
| Stable | ~/Library/Group Containers/2BBY89MBSN.dev.warp/Library/Application Support/dev.warp.Warp-Stable/warp.sqlite |
| Preview | ~/Library/Group Containers/2BBY89MBSN.dev.warp/Library/Application Support/dev.warp.Warp-Preview/warp.sqlite |
Override with WARP_DB_PATH when needed.
SQLite. The parser requires these tables:
agent_conversationsai_queriesblocks
No provider-specific cache. Standard CodeBurn session cache applies.
Per exchange: warp:<conversationId>:<exchangeId>.
| codeburn field | Warp source |
|---|---|
sessionId |
agent_conversations.conversation_id |
timestamp |
ai_queries.start_ts |
userMessage |
ai_queries.input[0].Query.text (when present) |
project / projectPath |
ai_queries.working_directory |
model |
ai_queries.model_id with fallback to dominant conversation_data.token_usage[*].model_id |
tools / bashCommands |
blocks.stylized_command grouped onto nearest preceding exchange |
inputTokens |
Estimated from prompt-size weighting, normalized to conversation token totals |
outputTokens are set to 0 because Warp does not expose a reliable per-exchange input/output split in these tables.
ai_queries.output_statusmay be stored as a JSON-quoted string (for example"Completed"). The parser normalizes this before filtering.- Warp auto model IDs (
auto-efficient,auto-powerful) are resolved using dominant conversation model information when available. - Token and cost attribution is estimated. Calls are emitted with
costIsEstimated: true. - Command blocks are attached to the closest preceding exchange in the same conversation based on
start_ts.
- Reproduce with a fixture SQLite in
tests/providers/warp.test.tsbefore changing parser logic. - Verify schema compatibility first (
agent_conversations,ai_queries,blocks) before debugging parse behavior. - If model/cost looks wrong, inspect both
ai_queries.model_idandconversation_data.conversation_usage_metadata.token_usage. - If command attribution is wrong, compare
blocks.start_tsordering againstai_queries.start_ts; attribution is timestamp-based.