6caafdb794
Major upgrade making the AI loop visible and the project ready for public release. UI / UX - Live AI Thinking Feed: streams reasoning, decisions, and outcomes per iteration - Parameter Changes panel: prev → new + reason for every AI-driven edit - Validation Activity panel: out-of-sample + sensitivity runs with live metrics - Early Termination banner: surfaces why optimization stopped (targets met, no profit, budget, stuck, user stop) - 3-phase tracker renamed Exploration / Iteration / Validation with live N/total - Best Result modal exposes Evolution Path showing how the AI arrived at the winner - Run-detail modal accessible from every recent run row - Setup form validation (dates, walk-forward order, params selection, AI targets) - Pause button removed; misleading sidebar nav consolidated to Dashboard / New Run / Reports / Source Backend - AIGuidedLoop streams ai_thinking, param_changes, ai_targets_met, ai_stuck - Pipeline emits validation_start / validation_run_start / validation_run_complete / validation_done - Pipeline emits early_termination on every early-stop path - /api/best_result returns best run + full evolution chain - /api/run/<id> + /api/runs sorted by ts - AIReasoner falls back to ANTHROPIC_API_KEY env var when config is a placeholder - Demo mode (APEX_DEMO_MODE=1) generates deterministic synthetic backtests so judges can run end-to-end without MT5 Open-source readiness - README.md with pitch, demo flow, architecture diagram, quickstart, event reference - LICENSE (MIT) - config.example.yaml template (config.yaml now git-ignored) - requirements.txt: added anthropic / requests / psutil / beautifulsoup4, capped majors - .gitignore: secrets, *.set, scratch screenshots, ea_registry.yaml - demo/run_demo.py: one-command offline demo runner - 10 polished screenshots for README + judge review
77 lines
3.1 KiB
Plaintext
77 lines
3.1 KiB
Plaintext
# ── Python ────────────────────────────────────────────────────────────────────
|
|
__pycache__/
|
|
*.py[cod]
|
|
*.pyd
|
|
*.pyo
|
|
*.egg-info/
|
|
*.egg
|
|
.eggs/
|
|
dist/
|
|
build/
|
|
*.spec
|
|
|
|
# ── Virtual Environments ──────────────────────────────────────────────────────
|
|
venv/
|
|
env/
|
|
.env
|
|
.venv/
|
|
|
|
# ── MT5 Optimizer Runtime Files ───────────────────────────────────────────────
|
|
# Don't commit generated run data or reports (can be large)
|
|
runs/
|
|
Reports/
|
|
|
|
# Keep the optimizer database (optional — remove this line to commit it)
|
|
optimizer.db
|
|
|
|
# ── Sensitive Config (DO NOT COMMIT — contains API keys) ────────────────────
|
|
# Users copy config.example.yaml → config.yaml and fill in their key locally.
|
|
config.yaml
|
|
.env
|
|
.env.local
|
|
*.secret.yaml
|
|
*.secret.yml
|
|
config.secret.yaml
|
|
|
|
# ── EA Registry (machine-specific paths) ─────────────────────────────────────
|
|
ea_registry.yaml
|
|
|
|
# ── Generated set files ──────────────────────────────────────────────────────
|
|
*.set
|
|
!**/templates/*.set
|
|
|
|
# ── Screenshots scratch (Playwright debug + health-test artifacts) ──────────
|
|
screenshots/health_*.png
|
|
screenshots/health_*.json
|
|
screenshots/debug*.png
|
|
screenshots/playwright_*.png
|
|
screenshots/*.py
|
|
screenshots/crop_*.png
|
|
|
|
# ── Claude session artifacts ─────────────────────────────────────────────────
|
|
Claude_Code_session*
|
|
.claude/sessions/
|
|
|
|
# ── Logs ──────────────────────────────────────────────────────────────────────
|
|
*.log
|
|
logs/
|
|
|
|
# ── OS Files ──────────────────────────────────────────────────────────────────
|
|
.DS_Store
|
|
Thumbs.db
|
|
desktop.ini
|
|
|
|
# ── IDE ───────────────────────────────────────────────────────────────────────
|
|
.vscode/
|
|
.idea/
|
|
*.swp
|
|
|
|
# ── PyInstaller ───────────────────────────────────────────────────────────────
|
|
*.exe
|
|
*.zip
|
|
dist/
|
|
|
|
# ── Data files ────────────────────────────────────────────────────────────────
|
|
*.parquet
|
|
*.csv
|