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,37 @@
|
||||
use serde_json::{json, Value};
|
||||
|
||||
pub fn tool_healthcheck() -> Value {
|
||||
json!({
|
||||
"name": "healthcheck",
|
||||
"description": "System health check with OS detection and configuration validation",
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"detailed": { "type": "boolean", "description": "Include detailed system info", "default": false }
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
pub fn tool_verify_setup() -> Value {
|
||||
json!({
|
||||
"name": "verify_setup",
|
||||
"description": "Validate MT5-Quant environment configuration",
|
||||
"inputSchema": {
|
||||
"type": "object"
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
pub fn tool_list_symbols() -> Value {
|
||||
json!({
|
||||
"name": "list_symbols",
|
||||
"description": "List symbols with local tick history",
|
||||
"inputSchema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"server": { "type": "string" }
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user