import json from pathlib import Path from agent.trace import Trace, StepRecord def test_trace_records_steps_and_saves_json(tmp_path): trace = Trace(session_id="sess-1") trace.record(StepRecord( step=0, llm_messages=[{"role": "user", "content": "Q?"}], llm_response="print(1)", code="print(1)", stdout="1\n", stderr="", exception=None, timed_out=False, )) out = tmp_path / "trace.json" trace.save(out) data = json.loads(out.read_text()) assert data["session_id"] == "sess-1" assert len(data["steps"]) == 1 assert data["steps"][0]["code"] == "print(1)"