Optionalid: stringOptionalname: stringOptionalarg_string: stringOptionalfinished: booleanOptionalresult: ToolCallResultProtected Optional_Protected Optional_Protected Optional_Protected Optional_Protected_Protected Optional_Protected Optional_Protected Optional_Protected Optional_Protected Optional_Protected_Protected Optional_Protected Readonly_Protected Optional_Protected_ReadonlykindReadonlyonFires 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.
Static ReadonlytypeTimeout in seconds for confirmation dialogs. 0 means no timeout.
Timeout in seconds for confirmation dialogs. 0 means no timeout.
Provider-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.
Stable identifier for deduplication in pending interaction tracking.
Whether the interaction has been resolved (e.g., confirmed/denied, option selected).
Resolves when the tool call requires user confirmation (show Allow/Deny UI).
Resolves 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.
Confirm the tool execution
Optionalreason: stringProtectedparseSignal that this tool call needs user confirmation. Resolves the needsUserConfirmation promise.
ProtectedresolveOptionalargs: stringOptionalfinished: booleanOptionalresult: ToolCallResultUpdate 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.
Staticis
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.