""" modules/deep_diagnostics.py - Phase 8 deep diagnostic report Aggregates high-signal outputs from: - system_advisor - analytics - thermal trends - RAM patterns - disk health - driver anomalies - file intelligence - clipboard intelligence """ from __future__ import annotations import json import os from datetime import datetime from config import DATA_DIR REPORT_PATH = os.path.join(DATA_DIR, "deep_diagnostic_report.json") def generate_report() -> dict: report = {"generated": datetime.now().isoformat()} try: from modules.system_advisor import get_full_report report["system"] = get_full_report() except Exception: report["system"] = "" try: from engines.analytics_engine import generate_daily_briefing report["analytics"] = generate_daily_briefing() except Exception: report["analytics"] = "" for key, fn in [ ("thermal", ("modules.thermal_trends", "trend_report", 180)), ("ram", ("modules.ram_trends", "pattern_report", 240)), ("disk", ("modules.disk_health", "health_report", 180)), ("drivers", ("modules.driver_anomaly", "report", 48)), ]: try: mod_name, attr, arg = fn mod = __import__(mod_name, fromlist=[attr]) report[key] = getattr(mod, attr)(arg) except Exception: report[key] = "" try: from modules.file_intelligence import advisory report["files"] = advisory() except Exception: report["files"] = "" try: from modules.clipboard_intelligence import summary report["clipboard"] = summary() except Exception: report["clipboard"] = "" os.makedirs(os.path.dirname(REPORT_PATH), exist_ok=True) try: with open(REPORT_PATH, "w", encoding="utf-8") as f: json.dump(report, f, indent=2) except Exception: pass return report def summary() -> str: r = generate_report() parts = [r.get("system", ""), r.get("thermal", ""), r.get("ram", ""), r.get("disk", ""), r.get("drivers", "")] parts = [p for p in parts if p] if not parts: return "Deep diagnostics unavailable." return " ".join(parts[:5])[:800]