import json
import tempfile
from datetime import UTC, datetime, timedelta
from pathlib import Path
ROOT = Path(tempfile.mkdtemp())
SESSION = "5c1f2f6e-1111-4000-8000-000000000001"
BASE = datetime(2026, 7, 16, 16, 20, tzinfo=UTC)
def line(uuid, secs, **fields):
return json.dumps({"uuid": uuid, "parentUuid": None, "sessionId": SESSION,
"timestamp": (BASE + timedelta(seconds=secs)).isoformat(), "cwd": "/repo",
"gitBranch": "main", "version": "2.1.0", "isSidechain": False} | fields)
def user(uuid, secs, content, **over):
return line(uuid, secs, type="user", message={"role": "user", "content": content}, **over)
def assistant(uuid, secs, blocks, **over):
return line(uuid, secs, type="assistant",
message={"role": "assistant", "model": "claude-opus-4-7", "content": blocks}, **over)
def tool(id, name, **input):
return {"type": "tool_use", "id": id, "name": name, "input": input}
def result(id, content="done"):
return {"type": "tool_result", "tool_use_id": id, "content": content, "is_error": False}
def write(path, lines):
path.parent.mkdir(parents=True, exist_ok=True)
path.write_text("\n".join(lines) + "\n")
return path
MAIN = write(ROOT / "proj" / f"{SESSION}.jsonl", [
user("u0", 0, "tighten the flaky login test"),
assistant("a0", 1, [tool("a", "Task", prompt="fix the test", subagent_type="worker")]),
user("u1", 2, [result("a")]),
])
A_DIR = MAIN.parent / MAIN.stem / "subagents"
write(A_DIR / "agent-a.jsonl", [
user("s0", 3, "fix the test", isSidechain=True),
assistant("s1", 4, [tool("c1", "Bash", command="pytest tests/test_login.py")], isSidechain=True),
assistant("s2", 5, [tool("b", "Task", prompt="find the sleep", subagent_type="scout")], isSidechain=True),
user("s3", 6, [result("b")], isSidechain=True),
])
write(A_DIR / "agent-a" / "subagents" / "agent-b.jsonl", [
user("d0", 7, "find the sleep", isSidechain=True),
assistant("d1", 8, [tool("g1", "Grep", pattern="sleep")], isSidechain=True),
assistant("d2", 9, [tool("e1", "Edit", file_path="/repo/tests/test_login.py",
old_string="sleep(5)", new_string="wait_for(ready)")], isSidechain=True),
])
sorted(str(path.relative_to(ROOT)) for path in ROOT.rglob("*.jsonl"))