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:
Devid HW
2026-04-19 02:25:25 +07:00
parent 1f63505cb9
commit bc5d0d7022
10 changed files with 703 additions and 693 deletions
+68
View File
@@ -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)
}