#[cfg(feature = "dangerous-builtin-tools")]
pub mod bash;
#[cfg(feature = "dangerous-builtin-tools")]
pub mod read_file;
use crate::tools::registry::ToolRegistry;
pub fn register_all(
_registry: &mut ToolRegistry,
_builtin_configs: Option<
&std::collections::HashMap<String, crate::config::simple::BuiltinToolConfig>,
>,
) {
#[cfg(feature = "dangerous-builtin-tools")]
{
_registry.register(Box::new(bash::BashTool));
let allowed_dirs = _builtin_configs
.and_then(|m| m.get("read_file"))
.map(|cfg| {
cfg.allowed_dirs
.iter()
.filter_map(|d| {
let p = std::path::PathBuf::from(d);
match p.canonicalize() {
Ok(canon) => Some(canon),
Err(e) => {
tracing::warn!(
dir = %d,
error = %e,
"read_file allowed_dirs entry could not be canonicalized; skipping"
);
None
}
}
})
.collect()
})
.unwrap_or_default();
_registry.register(Box::new(read_file::ReadFileTool { allowed_dirs }));
}
}