ToolResultStorage class
Manages tool result persistence and content replacement budgets.
- Inheritance
-
- Object
- Listenable
- ListNotifier
- SintController
- ToolResultStorage
Constructors
- ToolResultStorage({required String projectDir, required String sessionId, String? originalCwd})
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- initialized → bool
-
Checks whether the controller has already been initialized.
no setterinherited
- isClosed → bool
-
Checks whether the controller has already been closed.
no setterinherited
- isDisposed → bool
-
no setterinherited
- listenersLength → int
-
no setterinherited
-
persistThresholdOverrides
→ RxMap<
String, int> -
Persistence threshold overrides keyed by tool name.
final
- projectDir → String
-
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- sessionId → String
-
final
Methods
-
addListener(
SintStateUpdate listener) → Disposer -
Register a closure to be called when the object notifies its listeners.
inherited
-
addListenerId(
Object? key, SintStateUpdate listener) → Disposer -
inherited
-
applyToolResultBudget(
List< Message> messages, ContentReplacementState? state, {void writeToTranscript(List<ContentReplacementRecord> )?, Set<String> ? skipToolNames}) → Future<List< Message> > - Query-loop integration point for the aggregate budget.
-
containsListener(
SintStateUpdate listener) → bool -
inherited
-
debounce<
T> (RxInterface< T> rx, void callback(T), {Duration duration = const Duration(milliseconds: 400)}) → void -
Calls
callbackafterrxstops changing forduration. Useful for search-as-you-type, form validation, etc.inherited -
dispose(
) → void -
inherited
-
enforceToolResultBudget(
List< Message> messages, ContentReplacementState state, {Set<String> skipToolNames = const {}}) → Future<({List< Message> messages, List<ContentReplacementRecord> newlyReplaced})> - Enforce the per-message budget on aggregate tool result size.
-
ensureToolResultsDir(
) → Future< void> - Ensure the session-specific tool results directory exists.
-
ever<
T> (RxInterface< T> rx, void callback(T)) → void -
Calls
callbackevery timerxchanges. Auto-cancels on controller disposal.inherited -
getPerMessageBudgetLimit(
) → int - Resolve the per-message aggregate budget limit.
-
getPersistenceThreshold(
String toolName, int declaredMaxResultSizeChars) → int - Resolve the effective persistence threshold for a tool.
-
getSessionDir(
) → String - Get the session directory.
-
getToolResultPath(
String id, {required bool isJson}) → String - Get the filepath where a tool result would be persisted.
-
getToolResultsDir(
) → String - Get the tool results directory for this session.
-
interval<
T> (RxInterface< T> rx, void callback(T), {Duration duration = const Duration(seconds: 1)}) → void -
Calls
callbackat most once perduration, ignoring intermediate changes. Useful for rate-limiting UI updates.inherited -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
once<
T> (RxInterface< T> rx, void callback(T)) → void -
Calls
callbackonly the first timerxchanges, then cancels.inherited -
onClose(
) → void -
Called before onDelete method. onClose might be used to
dispose resources used by the controller. Like closing events,
or streams before the controller is destroyed.
Or dispose objects that can potentially create some memory leaks,
like TextEditingControllers, AnimationControllers.
Might be useful as well to persist some data on disk.
inherited
-
onDelete(
) → void -
inherited
-
onInit(
) → void -
Called immediately after the widget is allocated in memory.
You might use this to initialize something for the controller.
inherited
-
onReady(
) → void -
Called 1 frame after onInit(). It is the perfect place to enter
navigation events, like snackbar, dialogs, or a new route, or
async request.
inherited
-
onStart(
) → void -
Called at the exact moment the widget is allocated in memory.
It uses an internal "callable" type, to avoid any @overrides in subclasses.
This method should be internal and is required to define the
lifetime cycle of the subclass.
inherited
-
persistToolResult(
dynamic content, String toolUseId) → Future< Object> - Persist a tool result to disk and return information about the persisted file.
-
processPreMappedToolResultBlock(
{required ToolResultBlock toolResultBlock, required String toolName, required int maxResultSizeChars}) → Future< ToolResultBlock> - Process a pre-mapped tool result block.
-
processToolResultBlock(
{required String toolName, required int maxResultSizeChars, required ToolResultBlock toolResultBlock}) → Future< ToolResultBlock> - Process a tool result for inclusion in a message.
-
provisionContentReplacementState(
{List< Message> ? initialMessages, List<ContentReplacementRecord> ? initialContentReplacements, bool enabled = true}) → ContentReplacementState? - Provision replacement state for a new conversation thread.
-
reconstructContentReplacementState(
List< Message> messages, List<ContentReplacementRecord> records, {Map<String, String> ? inheritedReplacements}) → ContentReplacementState - Reconstruct replacement state from content-replacement records.
-
reconstructForSubagentResume(
ContentReplacementState? parentState, List< Message> resumedMessages, List<ContentReplacementRecord> sidechainRecords) → ContentReplacementState? - AgentTool-resume variant for subagent reconstruction.
-
refresh(
) → void -
inherited
-
refreshGroup(
Object id) → void -
inherited
-
removeListener(
VoidCallback listener) → void -
Remove a previously registered closure from the list of closures that the
object notifies.
inherited
-
removeListenerId(
Object id, VoidCallback listener) → void -
inherited
-
reportAdd(
VoidCallback disposer) → void -
inherited
-
reportRead(
) → void -
inherited
-
toString(
) → String -
A string representation of this object.
inherited
-
update(
[List< Object> ? ids, bool condition = true]) → void -
Notifies listeners to update the UI.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
buildLargeToolResultMessage(
PersistedToolResult result) → String - Build a message for large tool results with preview.
-
generatePreview(
String content, int maxBytes) → ({bool hasMore, String preview}) - Generate a preview of content, truncating at a newline boundary when possible.
-
isToolResultContentEmpty(
dynamic content) → bool - True when a tool_result's content is empty or effectively empty.