from __future__ import annotations

import json
import re
from pathlib import Path

from refactor_master_helpers import ROOT, collect_gas_files, read_text


FORBIDDEN_OUTPUT_TERMS = ("--out", "write_json", "save_json", "write_text", "append_text")
TEMP_RUNTIME_HINTS = ("Temp/",)


def main() -> int:
    violations: list[dict[str, str]] = []
    for path in collect_gas_files():
        text = read_text(path)
        for lineno, line in enumerate(text.splitlines(), start=1):
            if "Temp/" not in line:
                continue
            if any(hint in line for hint in TEMP_RUNTIME_HINTS):
                violations.append({"file": str(path.relative_to(ROOT)), "line": str(lineno), "text": line.strip()})

    result = {
        "formula_id": "NO_TEMP_RUNTIME_READ_V1",
        "violation_count": len(violations),
        "violations": violations[:200],
        "gate": "PASS" if not violations else "FAIL",
    }
    out = ROOT / "Temp" / "no_temp_runtime_read_v1.json"
    out.write_text(json.dumps(result, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(result, ensure_ascii=True, indent=2))
    return 0 if not violations else 1


if __name__ == "__main__":
    raise SystemExit(main())
