#!/usr/bin/env python3
"""
PostToolUse hook: validate Python syntax after Write/Edit.
Exit 0 = OK, exit 1 = syntax warning (non-blocking), exit 2 not used here.
"""

from __future__ import annotations

import ast
import json
import sys
from pathlib import Path


def main() -> None:
    try:
        event = json.load(sys.stdin)
    except json.JSONDecodeError:
        sys.exit(0)

    tool_input = event.get("tool_input", {})
    file_path = tool_input.get("file_path", "")
    if not file_path:
        sys.exit(0)

    path = Path(file_path)
    if path.suffix != ".py" or not path.is_file():
        sys.exit(0)

    try:
        ast.parse(path.read_text(encoding="utf-8"))
        print(f"[PostToolUse] syntax OK: {path.name}", file=sys.stderr)
        sys.exit(0)
    except SyntaxError as exc:
        print(
            f"[PostToolUse] syntax error in {path.name}: {exc.msg} (line {exc.lineno})",
            file=sys.stderr,
        )
        sys.exit(1)


if __name__ == "__main__":
    main()
