An AI agent built to do Ralph loops - plan mode for planning and ralph mode for implementing.
at main 34 lines 1.0 kB view raw
1use crate::security::SecurityValidator; 2use crate::security::permission::PermissionHandler; 3use crate::tools::ToolRegistry; 4use crate::tools::file::{ListFilesTool, ReadFileTool, WriteFileTool}; 5use crate::tools::shell::RunCommandTool; 6use crate::tools::signal::SignalTool; 7use std::sync::Arc; 8 9pub fn create_default_registry( 10 validator: Arc<SecurityValidator>, 11 permission_handler: Arc<dyn PermissionHandler>, 12) -> ToolRegistry { 13 let registry = ToolRegistry::new(); 14 15 registry.register(Arc::new(ReadFileTool::new( 16 validator.clone(), 17 permission_handler.clone(), 18 ))); 19 registry.register(Arc::new(WriteFileTool::new( 20 validator.clone(), 21 permission_handler.clone(), 22 ))); 23 registry.register(Arc::new(ListFilesTool::new( 24 validator.clone(), 25 permission_handler.clone(), 26 ))); 27 registry.register(Arc::new(RunCommandTool::new( 28 validator.clone(), 29 permission_handler.clone(), 30 ))); 31 registry.register(Arc::new(SignalTool::new())); 32 33 registry 34}