"""Generate the FL-D5 runtime proof artifact for all declared applications."""

from __future__ import annotations

import argparse
from pathlib import Path

from src.domain.app_blocks.fast_lane_runtime_proof import (
    DEFAULT_ARTIFACT,
    prove_declared_runtime,
    write_artifact,
)


def main() -> int:
    parser = argparse.ArgumentParser(description=__doc__)
    parser.add_argument("--output", type=Path, default=DEFAULT_ARTIFACT)
    parser.add_argument("--generated-root", type=Path, default=Path(".fast-lane-runtime-proof"))
    args = parser.parse_args()
    proofs = prove_declared_runtime(args.generated_root)
    write_artifact(proofs, args.output)
    proven = sum(item.runtime_proven for item in proofs)
    print(f"FL-D5 runtime proof applications={len(proofs)} proven={proven} artifact={args.output}")
    return 0 if proven == len(proofs) else 1


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