//! File reading and search tools for AI agents.
//!
//! Tools for reading structured files (CSV, Excel, Word, PDF, PPT, Markdown,
//! SQL, JSON) and searching across repository files (git_grep).
//!
//! All tools operate on repository blobs (read via git context) or standalone
//! content, returning structured JSON suitable for AI consumption.

pub mod csv;
// TODO: fix calamine 0.26 API compatibility (open_workbook path requirement)
// pub mod excel;
pub mod grep;
pub mod json;
pub mod markdown;
// TODO: fix lopdf 0.34 API (no load_from_mem, different stream API)
// pub mod pdf;
// TODO: fix ppt archive borrow checker issue
// pub mod ppt;
pub mod sql;
// TODO: fix quick-xml 0.37 + zip Cursor API
// pub mod word;

use agent::ToolRegistry;

/// Maximum number of bytes to read from any single file (prevents huge blobs).
const MAX_FILE_SIZE: usize = 2 * 1024 * 1024; // 2MB

/// Registers all file tools into a ToolRegistry.
pub fn register_all(registry: &mut ToolRegistry) {
    grep::register_grep_tools(registry);
    csv::register_csv_tools(registry);
    // excel::register_excel_tools(registry);
    // word::register_word_tools(registry);
    // pdf::register_pdf_tools(registry);
    // ppt::register_ppt_tools(registry);
    markdown::register_markdown_tools(registry);
    sql::register_sql_tools(registry);
    json::register_json_tools(registry);
}
