The model's arguments as a raw JSON string.
Correlation id — echo it back on the tool result.
The declared tool name the model chose.
OptionalreplayedTrue when this delivery is a REPLAY of a still-outstanding call from a
turn that paused before a reconnect (see hello.ack pendingToolCalls) —
the app may have already performed it and crashed before posting the
result. Side-effecting tools should treat id as an idempotency key.
Absent on the original live delivery.
Payload of a
companion.tool_callevent — the companion is asking the host to run one of the app-declared tools it was given athello.argsis the raw JSON string the model produced (parse it yourself); reply by posting the result back withclient.sendToolResult(id, …).