OptionalargumentsOptionalconfirmationTimeout in seconds for confirmation dialogs. 0 means no timeout.
OptionaldataProvider-specific metadata about the tool call that the language model needs back on
subsequent turns (e.g. Google's thoughtSignature, cache pointers). The full record is
passed to the model via toLanguageModelMessage as ToolUseMessage.data.
OptionalidReadonlyinteractionStable identifier for deduplication in pending interaction tracking.
ReadonlyisWhether the interaction has been resolved (e.g., confirmed/denied, option selected).
OptionalnameResolves when the tool call requires user confirmation (show Allow/Deny UI).
ReadonlyonFires when the serialized form of this tool call changes outside of the agent's stream (e.g. after a renderer persists intermediate state via updateResult). The parent ChatResponse forwards this event so chat-session auto-save picks up the change.
OptionalresultReadonlywhenResolves when the interaction is resolved. Used for cleanup in delegation chains.
Represents the content as a string. Returns undefined if the content
is purely informational and/or visual and should not be included in the overall
representation of the response.
Optionalreason: unknownMark the tool call as completed with the given result.
This is used to update the UI immediately when a tool finishes execution, without waiting for all parallel tool calls to complete. The language model batches tool results (via Promise.all) before yielding them to the stream, so without this early completion signal, the UI wouldn't update until all tools finish. The values set here will be overwritten by merge() when the language model eventually yields the results, but they should be identical.
Optionalreason: stringSignal that this tool call needs user confirmation. Resolves the needsUserConfirmation promise.
Update the tool call's result without marking it finished. Use this to persist
intermediate state for long-running tools (e.g. the user-interaction wizard) so
progress survives chat-session reloads. On restore the tool call is always marked
finished (no live handler exists anymore), so a partial result must be
self-describing; consumers should not rely on finished to tell partial from final.
Interface for ChatResponseContent parts that require user interaction. Content parts that implement this interface can be tracked by the delegation renderer without content-type-specific checks.