Devid HW
|
e94ec8153d
|
Add get_latest_report tool with equity chart support
**New Tool: get_latest_report**
- Returns the most recent backtest report from the database
- Includes full report details: metrics, paths, tags, notes, verdict
- Optional include_chart parameter (default: true)
- Returns equity chart as base64 PNG when available
**Implementation:**
- ReportDb.get_latest(): Query for most recent report by created_at DESC
- handle_get_latest_report(): Fetches report and reads equity.png from charts_dir
- Base64 encoding using base64 crate v0.22
- Graceful handling when chart not found (equity_chart_error field)
**Files Changed:**
- storage/database.rs: Added get_latest() method
- tools/definitions.rs: Added tool_get_latest_report() definition
- tools/handlers/mod.rs: Added dispatch for get_latest_report
- tools/handlers/reports.rs: Implemented handler with base64 chart encoding
- Cargo.toml: Added base64 = 0.22 dependency
|
2026-04-19 01:56:41 +07:00 |
|
Devid HW
|
d8646074fb
|
Refactor handlers into SRP modules and add indicator/script tools
**Handler Refactoring:**
- Split monolithic handlers.rs (1468 lines) into 7 focused modules:
- system.rs: verify_setup, healthcheck, list_symbols
- experts.rs: list_experts, list_indicators, list_scripts, compile_ea
- backtest.rs: run_backtest, get_backtest_status, cache_status, clean_cache
- optimization.rs: run_optimization, get_optimization_results, list_jobs
- analysis.rs: analyze_report, compare_baseline
- setfiles.rs: read/write/patch/clone/diff set files
- reports.rs: list/search/prune reports, archive, promote, annotate
**New Tools:**
- list_indicators: List custom indicators in MQL5/Indicators
- list_scripts: List scripts in MQL5/Scripts
**Config Updates:**
- Added indicators_dir and scripts_dir to Config model
- Auto-discovery for MQL5/Indicators and MQL5/Scripts paths
- Updated healthcheck to validate new directories
**Benefits:**
- Single Responsibility Principle: each module handles one domain
- Easier maintenance and testing
- Clear separation of concerns
- Reduced cognitive load when modifying handlers
|
2026-04-18 18:38:28 +07:00 |
|