getToolSearchOrReadInfo method

SearchOrReadResult getToolSearchOrReadInfo(
  1. String toolName,
  2. dynamic toolInput
)

Checks if a tool is a search/read operation.

Implementation

SearchOrReadResult getToolSearchOrReadInfo(
  String toolName,
  dynamic toolInput,
) {
  // REPL is absorbed silently.
  if (toolName == replToolName) {
    return const SearchOrReadResult(
      isCollapsible: true,
      isREPL: true,
      isAbsorbedSilently: true,
    );
  }

  // Memory file writes/edits are collapsible.
  if (_isMemoryWriteOrEdit(toolName, toolInput)) {
    return const SearchOrReadResult(isCollapsible: true, isMemoryWrite: true);
  }

  // Meta-operations absorbed silently.
  if ((historySnipEnabled && toolName == 'Snip') ||
      (fullscreenEnabled && toolName == toolSearchToolName)) {
    return const SearchOrReadResult(
      isCollapsible: true,
      isAbsorbedSilently: true,
    );
  }

  // Delegate to external checker.
  if (isSearchOrReadChecker != null &&
      isSearchOrReadChecker!(toolName, toolInput)) {
    return SearchOrReadResult(
      isCollapsible: true,
      isSearch: true,
      isRead: false,
    );
  }

  // Under fullscreen mode, non-search/read Bash commands are also collapsible.
  if (fullscreenEnabled && toolName == bashToolName) {
    return const SearchOrReadResult(isCollapsible: true, isBash: true);
  }

  return const SearchOrReadResult();
}