#!/usr/bin/env python3
"""kb/stats - index health for the 2dph brain.

  bin/kb/stats            # leaf counts by root, db size, model
  bin/kb/stats --json     # machine-readable
"""
from __future__ import annotations

import json
import sys
from pathlib import Path

ROOT = Path(__file__).resolve().parents[2]
sys.path.insert(0, str(ROOT / "bin" / "tools"))

from kblib import open_readonly, stats  # noqa: E402
from yamlout import to_yaml  # noqa: E402


def main(argv: list[str]) -> int:
    import argparse
    p = argparse.ArgumentParser(description="brain index health")
    p.add_argument("--json", action="store_true")
    a = p.parse_args(argv)

    try:
        db, conn = open_readonly()
    except FileNotFoundError as e:
        print(e, file=sys.stderr)
        return 1

    s = stats(conn)
    conn.close()
    db.close()
    print(json.dumps(s, indent=2) if a.json else to_yaml(s))
    return 0


if __name__ == "__main__":
    sys.exit(main(sys.argv[1:]))