Coverage for src \ truenex_memory \ diagnostics \ doctor.py: 100%
15 statements
« prev ^ index » next coverage.py v7.14.0, created at 2026-05-19 10:21 +0200
« prev ^ index » next coverage.py v7.14.0, created at 2026-05-19 10:21 +0200
1"""Local diagnostics for Truenex Memory."""
3from __future__ import annotations
5from pathlib import Path
7from truenex_memory.core.config import resolve_project_config
8from truenex_memory.core.memory_service import MemoryService
9from truenex_memory.store.repository import MemoryRepository
12def run_doctor(project_root: Path | str = ".", *, privacy: bool = False) -> dict[str, object]:
13 """Return diagnostics without contacting network services."""
15 config = resolve_project_config(project_root)
16 service = MemoryService(project_root)
17 repo = MemoryRepository(config.db_path)
18 initialized = config.db_path.exists()
19 stats = repo.stats() if initialized else {"documents": 0, "chunks": 0, "memory_nodes": 0, "retrieval_logs": 0}
20 result: dict[str, object] = {
21 "ok": True,
22 "project_root": str(config.project_root),
23 "data_dir": str(config.data_dir),
24 "database": str(config.db_path),
25 "initialized": initialized,
26 "stats": stats,
27 "vector": service.vector_status(),
28 }
29 if privacy:
30 result["privacy"] = {
31 "cloud_enabled": False,
32 "telemetry_enabled": False,
33 "vector_backend": service.vector_status()["backend"],
34 "active_vector_backend": service.vector_status()["active_backend"],
35 "qdrant_url": service.vector_status()["qdrant_url"],
36 "qdrant_collection": service.vector_status()["qdrant_collection"],
37 "qdrant_available": service.vector_status()["available"],
38 "uploads_project_content": False,
39 }
40 return result