AgentLlmProvider class

Bridges an AIAgent into the chat UI's LlmProvider contract.

The provider keeps a lightweight UI transcript while sending agent-native ai.ChatMessage values to the underlying agent.

When the agent's tool-approval middleware pauses a run on a ai.ToolApprovalRequestContent, the request surfaces through pendingToolApproval and the run resumes via sendToolApprovalStream.

Inheritance
Implemented types
Mixed-in types

Constructors

AgentLlmProvider({required AIAgent agent, AgentSession? session, AgentRunOptions optionsBuilder()?, ValueListenable<String?>? toolActivity, AppActivityMonitor? activity, AgentRunTelemetryStore? runs, Future<AgentRunHandle> beginRun(AgentRunTelemetryStore runs)?, Iterable<ChatMessage>? history})
Creates a provider backed by an AIAgent.

Properties

activity → AppActivityMonitor?
Optional app-wide idle monitor; brackets each model turn so background work can tell when a generation is in flight.
final
agent → AIAgent
The core agent used to generate responses.
final
beginRun → Future<AgentRunHandle> Function(AgentRunTelemetryStore runs)?
Opens a run record for a turn about to start.
final
currentRunId → String?
The id of the run in flight, or null between turns.
no setter
hashCode → int
The hash code for this object.
no setterinherited
hasListeners → bool
Whether any listeners are currently registered.
no setterinherited
history ↔ Iterable<ChatMessage>
Returns an iterable of ChatMessage objects representing the chat history.
getter/setter pairoverride
isBusy → bool
Whether a turn is streaming or paused awaiting tool approval.
no setter
optionsBuilder → AgentRunOptions Function()?
Optional factory for per-run options.
final
pendingToolApproval → ToolApprovalRequest?
The unresolved approval request, if the last run stopped on one.
no setteroverride
runs → AgentRunTelemetryStore?
The run ledger, when telemetry is enabled for this conversation.
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
session → AgentSession?
Optional session to use for stateful agent runs.
final
toolActivity → ValueListenable<String?>?
Live tool-activity label, when the app tracks it.
final

Methods

addListener(VoidCallback listener) → void
Register a closure to be called when the object changes.
inherited
dispose() → void
Discards any resources used by the object.
override
generateStream(String prompt, {Iterable<Attachment> attachments = const []}) → 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.
override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
notifyListeners() → void
Call all the registered listeners.
inherited
removeListener(VoidCallback listener) → void
Remove a previously registered closure from the list of closures that are notified when the object changes.
inherited
sendMessageStream(String prompt, {Iterable<Attachment> attachments = const []}) → 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.
override
sendToolApprovalStream(ToolApprovalDecision decision) → Stream<String>
Answers pendingToolApproval with decision and resumes the run, streaming the continuation of the response text.
override
toString() → String
A string representation of this object.
inherited

Operators

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