"""Agent preflight: COMPANY_CONTEXT=PASS/FAIL for one Firebird database (READ-ONLY). python agent/scripts/preflight_company_context.py [--database ] Configuration (environment or the local ignored .env): COMPANY_CODE / COMPANY_CNPJ (company selection when C000004 is ambiguous), COMPANY_CRT_SOURCE = EMISSOR | C000004 (explicit choice when the two CRT sources disagree). The full CNPJ is never printed. """ import argparse import json import os import sys from pathlib import Path ROOT = Path(__file__).resolve().parents[2] sys.path.insert(0, str(ROOT / "agent" / "src")) from gti_fiscal_agent.company_context import preflight_company_context, preflight_report # noqa: E402 def load_dotenv(path): if path.exists(): for line in path.read_text(encoding="utf-8").splitlines(): if "=" in line and not line.startswith("#"): k, _, v = line.partition("=") os.environ.setdefault(k.strip(), v.strip()) def main(argv=None): ap = argparse.ArgumentParser() ap.add_argument("--database") a = ap.parse_args(argv) load_dotenv(ROOT / ".env") if a.database: os.environ["FIREBIRD_DATABASE_PATH"] = a.database report = preflight_report(preflight_company_context(os.environ)) print(json.dumps(report, ensure_ascii=False, indent=1)) raise SystemExit(0 if report["COMPANY_CONTEXT"] == "PASS" else 2) if __name__ == "__main__": main()