use super::types::Tool;
pub fn create_web_search_tool(max_uses: Option<u32>) -> Tool {
Tool::web_search(max_uses)
}
pub fn create_web_fetch_tool() -> Tool {
Tool::web_fetch()
}
pub fn create_bash_tool() -> Tool {
Tool {
tool_type: Some("bash_20250124".to_string()),
name: "bash".to_string(),
description: None,
input_schema: None,
cache_control: None,
max_uses: None,
allowed_domains: None,
blocked_domains: None,
}
}
pub fn create_code_execution_tool() -> Tool {
Tool {
tool_type: Some("code_execution_20250825".to_string()),
name: "code_execution".to_string(),
description: None,
input_schema: None,
cache_control: None,
max_uses: None,
allowed_domains: None,
blocked_domains: None,
}
}
pub fn create_text_editor_tool() -> Tool {
Tool {
tool_type: Some("text_editor_20250728".to_string()),
name: "str_replace_based_edit_tool".to_string(),
description: None,
input_schema: None,
cache_control: None,
max_uses: None,
allowed_domains: None,
blocked_domains: None,
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_create_web_search_tool() {
let tool = create_web_search_tool(Some(5));
assert_eq!(tool.name, "web_search");
assert_eq!(tool.tool_type.as_ref().unwrap(), "web_search_20250305");
assert_eq!(tool.max_uses, Some(5));
}
#[test]
fn test_create_bash_tool() {
let tool = create_bash_tool();
assert_eq!(tool.name, "bash");
assert_eq!(tool.tool_type.as_ref().unwrap(), "bash_20250124");
}
}