Based on the user's actual deepseek-v4-flash debug log (Responses protocol):
- real_log_captures_reasoning_and_tools: replays turn 1 of the real SSE
(reasoning item + reasoning_text.delta + two function calls) and asserts the
Done message is [Thinking, ToolCall, ToolCall] with usage mapped
(input 850 / output 157 / cache-read 768)
- agent_multi_turn_replays_reasoning: drives a 3-turn agent over the real
protocol (turn 1 + turn 2 from the log, plus a terminating text turn),
asserting thinking lands in the transcript and the second request's replay
carries a reasoning item with the captured text and matching call ids
MockTransport gains requests() to inspect all recorded requests.