ToolApprovalSupport class abstract interface

An LlmProvider that can surface user-in-the-loop tool approvals.

When a run stops because the agent needs permission to execute a tool, pendingToolApproval becomes non-null. The chat UI presents the request and resumes the run by streaming sendToolApprovalStream with the user's decision.

Implemented types
Implementers

Properties

hashCode → int
The hash code for this object.
no setterinherited
history ↔ Iterable<ChatMessage>
Returns an iterable of ChatMessage objects representing the chat history.
getter/setter pairinherited
pendingToolApproval → ToolApprovalRequest?
The unresolved approval request, if the last run stopped on one.
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited

Methods

addListener(VoidCallback listener) → void
Register a closure to be called when the object notifies its listeners.
inherited
generateStream(String prompt, {Iterable<Attachment> attachments}) → Stream<String>
Generates a stream of text based on the given prompt and attachments. This method does not interact with a chat or build on any chat history.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
removeListener(VoidCallback listener) → void
Remove a previously registered closure from the list of closures that the object notifies.
inherited
sendMessageStream(String prompt, {Iterable<Attachment> attachments}) → Stream<String>
Generates a stream of text based on the given prompt and attachments. Interacts with a chat and builds on the history of the chat associated with the provider.
inherited
sendToolApprovalStream(ToolApprovalDecision decision) → Stream<String>
Answers pendingToolApproval with decision and resumes the run, streaming the continuation of the response text.
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited