SessionRunner<State> class

Executor responsible for running turns over input streams and persisting state.

The State type parameter mirrors the wrapped Session's: getCustom / updateCustom delegate straight through, so a SessionRunner<State> exposes the same typed custom-state API. It defaults to dynamic for the untyped (raw-JSON) case.

Annotations
  • @experimental

Constructors

SessionRunner(Session<State> session, Stream<AgentInput> inputCh, {SessionSnapshot? lastSnapshot, SessionStore? store, Map<String, dynamic>? context, CancellationToken? cancel, OnEndTurn? onEndTurn, OnDetach? onDetach})

Properties

cancel CancellationToken?
Cooperative cancellation token (the Dart stand-in for AbortSignal). When cancelled, a turn that rejects out of generate is reported as aborted (not failed) and settled with a single aborted snapshot write (the detached abort flip left the row aborting, which this finalize settles).
final
context Map<String, dynamic>?
Ambient action context used to scope all persistent-store operations.
final
firstCustomPatchInTurn bool
True until the first customPatch chunk of the current turn has been emitted. The first patch of every turn is a whole-document replace.
getter/setter pair
hashCode int
The hash code for this object.
no setterinherited
inputCh Stream<AgentInput>
final
isDetached bool
getter/setter pair
lastGoodState SessionState?
The state the most recently successful turn left behind. On a failed turn this is the state the failed turn started with.
getter/setter pair
lastGoodStateVersion int?
getter/setter pair
lastSnapshot SessionSnapshot?
The latest persisted snapshot (read-only view for callers).
no setter
lastTurnError ↔ AgentErrorDetails?
Error details of the most recent failed turn.
getter/setter pair
lastTurnFinishReason AgentFinishReason?
The finish reason of the most recently completed turn.
getter/setter pair
newSnapshotId String?
getter/setter pair
onDetach ↔ OnDetach?
getter/setter pair
onEndTurn ↔ OnEndTurn?
getter/setter pair
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
session Session<State>
final
turnIndex int
getter/setter pair

Methods

addArtifacts(List<Artifact> artifacts) → void
Adds artifacts to the session, deduplicating by name.
addMessages(List<Message> messages) → void
Appends messages to the session.
ensureRecoverySnapshot() Future<String?>
Returns the snapshotId a failed invocation should report as its resume point.
getArtifacts() List<Artifact>
Retrieves the list of artifacts generated during the session.
getCustom() → State?
Retrieves the custom state of the session as a typed State.
getMessages() List<Message>
Retrieves all messages associated with the session.
getState() SessionState
Returns a deep copy of the current session state.
maybeSnapshot({String? status, AgentErrorDetails? error, String? snapshotId, AgentFinishReason? finishReason}) Future<String?>
Evaluates whether to save a snapshot to the persistent store.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
run(Future<TurnResult?> fn(AgentInput input, TurnContext ctx)) Future<void>
Executes the flow handler against incoming input messages sequentially.
setMessages(List<Message> messages) → void
Overwrites the session messages.
toString() String
A string representation of this object.
inherited
updateCustom(State? fn(State? custom)) → void
Updates the custom state using a mutator function.

Operators

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