| 1 | # Adapter fixture provenance |
| 2 | |
| 3 | Each fixture below reproduces the real on-disk or export schema of the tool it |
| 4 | represents. Where the structure came from a real session or a real published |
| 5 | sample, the message text has been replaced with neutral placeholder content so |
| 6 | no private conversation is republished. The field shapes, key names, value |
| 7 | types, and nesting are kept exactly as the real format. |
| 8 | |
| 9 | ## codex-session.jsonl |
| 10 | - Format: Codex CLI rollout JSONL (`~/.codex/sessions/.../rollout-*.jsonl`). |
| 11 | - Source: a real Codex CLI session captured locally (cli_version 0.139.0). |
| 12 | - Scrubbing: message text, cwd, instructions, and turn context replaced with |
| 13 | neutral placeholders. Event/record schema (`session_meta`, `turn_context`, |
| 14 | `response_item` messages, `function_call`, `token_count`) is unchanged. |
| 15 | - Status: VERIFIED against the original real session. |
| 16 | |
| 17 | ## gemini-session.json |
| 18 | - Format: gemini-cli ChatRecordingService session JSON. |
| 19 | - Source: google-gemini/gemini-cli, memory-tests/large-chat-session.json |
| 20 | (https://github.com/google-gemini/gemini-cli), Apache-2.0. |
| 21 | - Scrubbing: a short slice of the real file with message `content`, `thoughts`, |
| 22 | and `toolCalls` text replaced with neutral placeholders. The `sessionId`, |
| 23 | `projectHash`, `messages[].type`, `content`, `tokens`, `model`, and |
| 24 | `toolCalls` shapes are unchanged. |
| 25 | - Status: VERIFIED. The full real file parses through the adapter (51 user |
| 26 | prompts, 1334 model turns, model gemini-3-flash-preview). |
| 27 | |
| 28 | ## chatgpt-conversations.json |
| 29 | - Format: ChatGPT/OpenAI account export `conversations.json` (array of |
| 30 | conversations, each with a `mapping` of node id to message node). |
| 31 | - Source: sanand0/openai-conversations, samples/seoul-weather-early-october.json |
| 32 | (https://github.com/sanand0/openai-conversations), MIT. |
| 33 | - Scrubbing: real export structure kept (`mapping`, `author.role`, |
| 34 | `content.content_type`, `content.parts`, `parent`, `children`, |
| 35 | `create_time`); all message text and tool output replaced with placeholders; |
| 36 | heavy per-node metadata trimmed to `model_slug` only. |
| 37 | - Status: VERIFIED. The original sample parses through the adapter. |
| 38 | |
| 39 | ## copilot-chatsession.json |
| 40 | - Format: VS Code GitHub Copilot Chat session JSON (version 3, `requests[]`). |
| 41 | - Source: Timcooking/VSCode-Copilot-Chat-Viewer, demo-chat.json |
| 42 | (https://github.com/Timcooking/VSCode-Copilot-Chat-Viewer), MIT. |
| 43 | - Scrubbing: real `requesterUsername`, `responderUsername`, `requests[].message` |
| 44 | (`text` + `parts`), and `response[].value` shapes kept; text replaced with |
| 45 | neutral placeholders. |
| 46 | - Status: VERIFIED against the published demo session. |
| 47 | |
| 48 | ## cursor-export.json |
| 49 | - Format: Cursor exported-chat JSON, matching the cursor-history exporter's |
| 50 | single-session JSON (`id`, `title`, `messages[].role/content/model/toolCalls`). |
| 51 | - Source: schema from S2thend/cursor-history src/core/types.ts and |
| 52 | src/cli/formatters/json.ts (https://github.com/S2thend/cursor-history), MIT. |
| 53 | Cursor stores chat in state.vscdb (SQLite); the adapter ingests the exported |
| 54 | JSON because TreeTrace ships with zero runtime dependencies and cannot open |
| 55 | SQLite. This fixture mirrors that exporter's output. |
| 56 | - Status: VERIFIED against the exporter's documented schema (no SQLite needed). |
| 57 | |
| 58 | ## grok-session.json |
| 59 | - Format: Grok CLI exported conversation JSON |
| 60 | (`timestamp`, `model`, `messageCount`, `conversation[].role/content`), the |
| 61 | xAI OpenAI-compatible message shape. |
| 62 | - Source: schema from lalomorales22/grok-4-cli lib/export.js `exportToJSON` |
| 63 | (https://github.com/lalomorales22/grok-4-cli). The primary superagent-ai |
| 64 | grok-cli stores history in SQLite (no JSON on disk), so this adapter targets |
| 65 | the exported-JSON shape. |
| 66 | - Status: EXPERIMENTAL. Built to the exporter's documented JSON shape; not yet |
| 67 | validated against a captured real Grok session on this machine. |