use thiserror::Error;
#[derive(Debug, Error)]
pub enum ToolError {
#[error("tool not implemented: {0}")]
NotImplemented(&'static str),
#[error(transparent)]
Io(#[from] std::io::Error),
#[error("invalid query: {0}")]
InvalidQuery(String),
#[error("parse error: {0}")]
ParseError(String),
#[error("not found: {0}")]
NotFound(String),
#[error("unsupported language: {0}")]
UnsupportedLanguage(String),
}
pub trait CodeTool {
type Query;
type Output;
fn search(&self, _query: Self::Query) -> Result<Self::Output, ToolError>;
}
pub mod fd_find;
pub mod tree_sitter;
pub mod queries;
pub mod ast_agent_tools;
pub mod ast_grep;
pub mod search;
#[cfg(test)]
mod ast_agent_tools_test;