pub mod conversion_tools;
pub mod encoding_tools;
pub mod engine_tools;
pub mod file_tools;
pub mod flow_tools;
pub mod git_tools;
pub mod hash_tools;
pub mod json_tools;
pub mod math_tools;
pub mod net_tools;
pub mod process_tools;
pub mod state_tools;
pub mod step_tools;
pub mod system_tools;
pub mod template_tools;
use crate::mcp::Tool;
pub fn all_tools() -> Vec<Box<dyn Tool>> {
vec![
Box::new(step_tools::StepCreate),
Box::new(step_tools::StepValidate),
Box::new(step_tools::StepInspect),
Box::new(flow_tools::FlowCreate),
Box::new(flow_tools::FlowValidate),
Box::new(flow_tools::FlowFromJson),
Box::new(flow_tools::FlowListModes),
Box::new(flow_tools::FlowAddStep),
Box::new(state_tools::StateCheck),
Box::new(state_tools::StateTransition),
Box::new(state_tools::StateLifecycle),
Box::new(engine_tools::EngineCreate),
Box::new(engine_tools::ResultInspect),
Box::new(engine_tools::StepStatusList),
Box::new(engine_tools::ErrorList),
Box::new(engine_tools::ServerInfo),
Box::new(system_tools::SystemInfo),
Box::new(system_tools::Cwd),
Box::new(system_tools::EnvGet),
Box::new(system_tools::Timestamp),
Box::new(encoding_tools::UuidGen),
Box::new(encoding_tools::Base64Tool),
Box::new(json_tools::JsonPath),
Box::new(json_tools::JsonDiff),
Box::new(json_tools::JsonValidate),
Box::new(file_tools::FileRead),
Box::new(file_tools::FileWrite),
Box::new(file_tools::DirList),
Box::new(file_tools::FileStat),
Box::new(file_tools::PathExists),
Box::new(process_tools::Exec),
Box::new(process_tools::Pid),
Box::new(process_tools::Which),
Box::new(hash_tools::Sha256),
Box::new(hash_tools::Md5),
Box::new(hash_tools::RandomToken),
Box::new(template_tools::TemplateRender),
Box::new(template_tools::WordCount),
Box::new(template_tools::TextReplace),
Box::new(template_tools::TextSplit),
Box::new(template_tools::TextJoin),
Box::new(net_tools::HttpRequest),
Box::new(net_tools::DnsLookup),
Box::new(net_tools::PortCheck),
Box::new(net_tools::UrlEncode),
Box::new(math_tools::MathEval),
Box::new(conversion_tools::BaseConvert),
Box::new(conversion_tools::ByteFormat),
Box::new(conversion_tools::DurationFormat),
Box::new(git_tools::GitStatus),
Box::new(git_tools::GitLog),
Box::new(git_tools::GitDiff),
Box::new(git_tools::GitBranch),
Box::new(git_tools::GitBlame),
]
}