Crate cats

Crate cats 

Source
Expand description

§CATS - Coding Agent ToolS

A comprehensive toolkit for building AI-powered coding agents. This crate provides structured, LLM-friendly tools for software engineering tasks.

§Features

  • File Navigation: Windowed file viewing, line navigation, scrolling
  • Search Tools: File discovery, content search across files and directories
  • File Editing: Search/replace editing with integrated linting
  • State Management: Persistent tool state and session history
  • Utility Tools: Project structure visualization, task submission
  • LLM Integration: JSON conversion, tool execution, result handling for LLM providers

§Usage

use cats::{create_tool_registry, ToolArgs};

let mut registry = create_tool_registry();
let result = registry.execute_tool("_state", &ToolArgs::from_args(&[]))?;
println!("{}", result.message);

Re-exports§

pub use core::Tool;
pub use core::ToolArgs;
pub use core::ToolRegistry;
pub use core::ToolResult;
pub use editing::CopyPathTool;
pub use editing::CreateDirectoryTool;
pub use editing::CreateFileTool;
pub use editing::DeleteFunctionTool;
pub use editing::DeleteLineTool;
pub use editing::DeletePathTool;
pub use editing::DeleteTextTool;
pub use editing::InsertTextTool;
pub use editing::MovePathTool;
pub use editing::OverwriteFileTool;
pub use editing::ReplaceTextTool;
pub use execution::RunCommandTool;
pub use file_navigation::CreateTool;
pub use file_navigation::GotoTool;
pub use file_navigation::OpenTool;
pub use file_navigation::ScrollTool;
pub use file_navigation::WindowedFile;
pub use llm::assistant::generate_assistant_content;
pub use llm::assistant::ToolCallInfo;
pub use llm::converter::json_to_tool_args;
pub use llm::executor::execute_tool_calls;
pub use llm::executor::execute_tool_calls_structured;
pub use llm::executor::ExecutionCallback;
pub use llm::executor::NoOpCallback;
pub use llm::executor::ToolCallRequest;
pub use llm::executor::ToolExecutionResult;
pub use llm::result_handler::handle_large_result;
pub use llm::result_handler::ResultHandlerConfig;
pub use search::FindFileTool;
pub use search::SearchDirTool;
pub use search::SearchFileTool;
pub use state::StateTool;
pub use state::ToolState;
pub use utils::ClassifyTaskTool;
pub use utils::CountTokensTool;
pub use utils::FilemapTool;
pub use utils::SubmitTool;

Modules§

core
Core traits and types for the simpaticoder tools system
editing
Enhanced file editing tools with advanced matching and normalization
execution
Command execution tool for running shell commands
file_navigation
File navigation tools
linting
Linting integration for various languages
llm
LLM integration module for CATS tools
search
Search tools for file discovery and content search
state
State management for tools
utils
Utility tools for project analysis and task completion

Functions§

create_tool_registry
Initialize the tool registry with all available tools (backward-compatible)
create_tool_registry_with_open_window_size
Initialize the tool registry with a configurable default window size for the “open” tool