Documentation
PreviewTrace JSONL
PreviewTrace v1 is a closed JSON contract. Each physical JSONL line is one conversation and is accepted or rejected independently.
Minimal valid record
A user message followed by a final assistant message.
{"contract_kind":"preview_trace","schema_version":1,"privacy_class":"SYNTHETIC","trace_id":"trace-minimal","source_trace_id":"source-minimal","events":[{"sequence":0,"event_kind":"USER_MESSAGE","content":"Where is my order?"},{"sequence":1,"event_kind":"ASSISTANT_MESSAGE","content":"I can check that for you.","is_final":true}]}Complete tool-use record
A message, linked tool call and result, final assistant message, and terminal state.
{"contract_kind":"preview_trace","schema_version":1,"privacy_class":"SYNTHETIC","trace_id":"trace-tool-use","source_trace_id":"source-tool-use","events":[{"sequence":0,"event_kind":"USER_MESSAGE","content":"Check order ORDER-2048."},{"sequence":1,"event_kind":"TOOL_CALL","call_id":"call-1","tool_name":"get_order","arguments":{"order_id":"ORDER-2048"}},{"sequence":2,"event_kind":"TOOL_RESULT","call_id":"call-1","result_state":"SUCCEEDED","result":{"status":"in_transit"}},{"sequence":3,"event_kind":"ASSISTANT_MESSAGE","content":"Your order is in transit.","is_final":true},{"sequence":4,"event_kind":"TERMINAL","terminal_state":"SUCCESS"}]}Download example JSONL Accounting and gaps
- Accepted records
- Lines that match the closed schema and event-order rules. Accepted records become inspectable conversations.
- Rejected records
- Lines that fail size, JSON, schema, identity, or event-order validation. The UI shows a safe typed reason without turning rejected content into a valid conversation.
- Typed gaps
- Explicit markers for evidence that was not observed or returned. A gap is not repaired, guessed, or treated as a pass.
Supported events
USER_MESSAGE, ASSISTANT_MESSAGE, SYSTEM_VISIBLE_MESSAGE, TOOL_CALL, TOOL_RESULT, and TERMINAL.