CollapseUtils class
Manages message collapsing and grouping logic.
Usage:
final utils = Sint.put(CollapseUtils());
final collapsed = utils.collapseReadSearchGroups(messages, tools);
- Inheritance
-
- Object
- Listenable
- ListNotifier
- SintController
- CollapseUtils
Constructors
- CollapseUtils({bool fullscreenEnabled = false, bool teamMemEnabled = false, bool historySnipEnabled = false})
Properties
- fullscreenEnabled → bool
-
Feature flags.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- historySnipEnabled → bool
-
final
- initialized → bool
-
Checks whether the controller has already been initialized.
no setterinherited
- isAutoManagedMemoryFile ↔ bool Function(String path)?
-
Memory file detection callbacks.
getter/setter pair
- isAutoManagedMemoryPattern ↔ bool Function(String pattern)?
-
getter/setter pair
- isClosed → bool
-
Checks whether the controller has already been closed.
no setterinherited
- isDisposed → bool
-
no setterinherited
- isMemoryDirectory ↔ bool Function(String path)?
-
getter/setter pair
- isSearchOrReadChecker ↔ bool Function(String toolName, dynamic toolInput)?
-
Tool name to isSearchOrRead checker callback.
Set this externally for tool-aware collapsing.
getter/setter pair
- isShellCommandTargetingMemory ↔ bool Function(String command)?
-
getter/setter pair
- listenersLength → int
-
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- teamMemEnabled → bool
-
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
-
collapseReadSearchGroups(
List< RenderableMessage> messages) → List - Collapse consecutive Read/Search operations into summary groups.
-
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
-
ever<
T> (RxInterface< T> rx, void callback(T)) → void -
Calls
callbackevery timerxchanges. Auto-cancels on controller disposal.inherited -
getSearchOrReadFromContent(
Map< String, dynamic> ? content) → SearchOrReadResult? - Check if a tool_use content block is collapsible.
-
getToolSearchOrReadInfo(
String toolName, dynamic toolInput) → SearchOrReadResult - Checks if a tool is a search/read operation.
-
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
-
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
-
collapseBackgroundBashNotifications(
List< RenderableMessage> messages, {required bool verbose, required bool fullscreenEnabled}) → List<RenderableMessage> - Collapses consecutive completed-background-bash task-notifications into a single synthetic "N background commands completed" notification.
-
collapseHookSummaries(
List< RenderableMessage> messages) → List<RenderableMessage> - Collapses consecutive hook summary messages with the same hookLabel into a single summary.
-
collapseTeammateShutdowns(
List< RenderableMessage> messages) → List<RenderableMessage> - Collapses consecutive in-process teammate shutdown task_status attachments into a single batch attachment with a count.
-
commandAsHint(
String command) → String - Format a bash command for the hint display.
-
countToolUses(
RenderableMessage msg) → int - Count the number of tool uses in a message.
-
getFilePathFromToolInput(
dynamic toolInput) → String? - Extract the primary file/directory path from a tool_use input.
-
getFilePathsFromReadMessage(
RenderableMessage msg) → List< String> - Extract file paths from read tool inputs in a message.
-
getSearchReadSummaryText(
{required int searchCount, required int readCount, required bool isActive, int replCount = 0, int memorySearchCount = 0, int memoryReadCount = 0, int memoryWriteCount = 0, int teamMemorySearchCount = 0, int teamMemoryReadCount = 0, int teamMemoryWriteCount = 0, int listCount = 0}) → String - Generate a summary text for search/read/REPL counts.
-
getToolUseIdsFromCollapsedGroup(
CollapsedReadSearchGroup message) → List< String> - Get all tool use IDs from a collapsed group.
-
getToolUseIdsFromMessage(
RenderableMessage msg) → List< String> - Get all tool use IDs from a single message.
-
hasAnyToolInProgress(
CollapsedReadSearchGroup message, Set< String> inProgressToolUseIDs) → bool - Check if any tool in a collapsed group is in progress.
-
isPreToolHookSummary(
RenderableMessage msg) → bool - Check if a message is a pre-tool hook summary.
-
isTextBreaker(
RenderableMessage msg) → bool - Check if a message is assistant text that should break a group.
-
shouldSkipMessage(
RenderableMessage msg) → bool - Check if a message should be skipped (not break the group).
-
summarizeRecentActivities(
List< Map< activities) → String?String, dynamic> > - Summarize a list of recent tool activities into a compact description.