Add report database and improve compile_ea tool

**Report Database (src/storage/):**
- New SQLite-based report registry for tracking backtest history
- ReportDb with methods: init, list, count, annotate, list_purgeable, delete_entry
- Charts relocation to temp directory with automatic cleanup
- Set file snapshotting alongside extracted data
- Database registration integrated into backtest pipeline

**compile_ea Tool Improvements:**
- Support both 'expert' (EA name) and 'expert_path' (full path) parameters
- Auto-discovery: searches MT5 Experts dir and current directory for .mq5 files
- Better error messages when EA not found
- Added files_synced and warning_list to response
- Updated tool definition to reflect new parameters

**Pipeline Updates:**
- Backtest pipeline now registers results in database after completion
- Equity charts moved to OS temp dir with unique report ID
- HTML reports cleaned up after extraction
- Set file snapshots preserved for reproducibility

**Dependencies:**
- Added rusqlite for SQLite database support
This commit is contained in:
Devid HW
2026-04-19 01:36:07 +07:00
parent 78f287d603
commit 13e821bc5d
8 changed files with 950 additions and 101 deletions
+3 -3
View File
@@ -144,12 +144,12 @@ fn tool_compare_baseline() -> Value {
fn tool_compile_ea() -> Value {
json!({
"name": "compile_ea",
"description": "Compile an MQL5 Expert Advisor via MetaEditor",
"description": "Compile an MQL5 Expert Advisor via MetaEditor. Provide either 'expert' (EA name, searches project and MT5 Experts dirs) or 'expert_path' (full path to .mq5 file).",
"inputSchema": {
"type": "object",
"required": ["expert_path"],
"properties": {
"expert_path": { "type": "string" }
"expert": { "type": "string", "description": "EA name without extension (e.g. 'DPS21')" },
"expert_path": { "type": "string", "description": "Full path to the .mq5 source file" }
}
}
})