Project tools channel events into ToolCallStream handles.
Each tool-started event spawns a ToolCallStream, pushed onto
run.tool_calls. Subsequent tool-output-delta events append to
that stream's deltas log; tool-finished and tool-error close it.
Native transformer — the tool_calls projection is exposed as a
direct attribute on the run stream.
A nameless StreamChannel[ToolCallStream] is used (no protocol
auto-forwarding) because the live handles are not serializable and
should not be injected into the main event log. Wire consumers
subscribe to the tools channel instead, where the raw protocol
events flow through untouched by this transformer (process
returns True).
Registered explicitly by users at compile time via
builder.compile(transformers=[ToolCallTransformer]) — not a
default built-in, so the tools channel is user-opt-in.