Reorganize tool definitions into granular domain modules
**New structure:** src/tools/definitions/ ├── mod.rs # Aggregates all 43 tools ├── system.rs # 3 tools: healthcheck, verify_setup, list_symbols ├── experts.rs # 4 tools: compile_ea, list_experts, list_indicators, list_scripts ├── backtest.rs # 4 tools: run_backtest, get_backtest_status, cache_status, clean_cache ├── optimization.rs # 4 tools: run_optimization, get_optimization_status, get_optimization_results, list_jobs ├── analytics.rs # 9 tools: analyze_report + 8 granular analytics ├── reports.rs # 11 tools: list_reports, search_reports, get_latest_report, etc. ├── setfiles.rs # 8 tools: read/write/patch/clone/diff set files └── baseline.rs # 1 tool: compare_baseline **Benefits:** - Domain-based organization (21KB monolith -> 9 focused files) - Each domain can evolve independently - Easier to find and modify tool definitions - Clear separation between system, experts, backtest, optimization, analytics, reports, setfiles
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
use serde_json::Value;
|
||||
|
||||
pub mod analytics;
|
||||
pub mod backtest;
|
||||
pub mod baseline;
|
||||
pub mod experts;
|
||||
pub mod optimization;
|
||||
pub mod reports;
|
||||
pub mod setfiles;
|
||||
pub mod system;
|
||||
|
||||
pub fn get_tools_list() -> Value {
|
||||
let tools = vec![
|
||||
// Backtest
|
||||
backtest::tool_run_backtest(),
|
||||
backtest::tool_get_backtest_status(),
|
||||
backtest::tool_cache_status(),
|
||||
backtest::tool_clean_cache(),
|
||||
// Optimization
|
||||
optimization::tool_run_optimization(),
|
||||
optimization::tool_get_optimization_status(),
|
||||
optimization::tool_get_optimization_results(),
|
||||
optimization::tool_list_jobs(),
|
||||
// Analytics (9 tools)
|
||||
analytics::tool_analyze_report(),
|
||||
analytics::tool_analyze_monthly_pnl(),
|
||||
analytics::tool_analyze_drawdown_events(),
|
||||
analytics::tool_analyze_top_losses(),
|
||||
analytics::tool_analyze_loss_sequences(),
|
||||
analytics::tool_analyze_position_pairs(),
|
||||
analytics::tool_analyze_direction_bias(),
|
||||
analytics::tool_analyze_streaks(),
|
||||
analytics::tool_analyze_concurrent_peak(),
|
||||
// Baseline
|
||||
baseline::tool_compare_baseline(),
|
||||
// Experts
|
||||
experts::tool_compile_ea(),
|
||||
experts::tool_list_experts(),
|
||||
experts::tool_list_indicators(),
|
||||
experts::tool_list_scripts(),
|
||||
// System
|
||||
system::tool_verify_setup(),
|
||||
system::tool_list_symbols(),
|
||||
system::tool_healthcheck(),
|
||||
// Set Files
|
||||
setfiles::tool_read_set_file(),
|
||||
setfiles::tool_write_set_file(),
|
||||
setfiles::tool_patch_set_file(),
|
||||
setfiles::tool_clone_set_file(),
|
||||
setfiles::tool_diff_set_files(),
|
||||
setfiles::tool_describe_sweep(),
|
||||
setfiles::tool_list_set_files(),
|
||||
setfiles::tool_set_from_optimization(),
|
||||
// Reports (11 tools)
|
||||
reports::tool_list_reports(),
|
||||
reports::tool_search_reports(),
|
||||
reports::tool_get_latest_report(),
|
||||
reports::tool_prune_reports(),
|
||||
reports::tool_tail_log(),
|
||||
reports::tool_archive_report(),
|
||||
reports::tool_archive_all_reports(),
|
||||
reports::tool_get_history(),
|
||||
reports::tool_promote_to_baseline(),
|
||||
reports::tool_annotate_history(),
|
||||
];
|
||||
|
||||
serde_json::json!(tools)
|
||||
}
|
||||
Reference in New Issue
Block a user