"""Write the FL-D4 declared-application composition proof artifact."""

from __future__ import annotations

import json
from pathlib import Path

from src.domain.app_blocks.fast_lane_proof import assert_declared_applications_composable


ROOT = Path(__file__).resolve().parents[1]
OUTPUT = ROOT / "docs" / "audits" / "fixtures" / "fast_lane_composition_proof.json"


def main() -> None:
    proofs = assert_declared_applications_composable()
    payload = {
        "phase": "FL-D4",
        "status": "composition_proven",
        "declared_applications": len(proofs),
        "composition_proven": sum(item.composition_proven for item in proofs),
        "runtime_deployment_proven": 0,
        "applications": [
            {
                "id": item.application_id,
                "starter": item.starter,
                "packs": list(item.packs),
                "app_blocks": list(item.app_blocks),
                "composition_proven": item.composition_proven,
                "findings": list(item.findings),
            }
            for item in proofs
        ],
    }
    OUTPUT.write_text(json.dumps(payload, indent=2) + "\n", encoding="utf-8", newline="\n")
    print(f"wrote {OUTPUT} ({len(proofs)} applications)")


if __name__ == "__main__":
    main()
