"""Deposit-flight playbook, step 11: the model-risk dossier (`sr11-7.v2`).

The dossier assembles the model's documentation from its pinned evidence;
a section whose evidence is missing says so, it is never filled in.
"""

import sys
from pathlib import Path

sys.path.insert(0, str(Path(__file__).resolve().parents[1]))  # playbooks/playbook_api.py
from playbook_api import Api, State

api, state = Api(), State("deposit-flight")

dossier = api.post(
    "/dossiers",
    {"template_id": "sr11-7.v2", "subject": {"model_id": state["serving_model"]}},
    key="deposit-flight-dossier",
)
present = sorted(s["section_id"] for s in dossier["sections"] if s["evidence"] == "present")
missing = sorted(s["section_id"] for s in dossier["sections"] if s["evidence"] != "present")
template = dossier["template"]
template_id = template["template_id"] if isinstance(template, dict) else template
print(f"dossier template: {template_id}")
print(f"sections with evidence: {', '.join(present)}")
print(f"sections without evidence: {', '.join(missing) or 'none'}")
download = api.get(f"/dossiers/{dossier['dossier_id']}:download", format="json")
print(f"download: {download['media_type']}, bytes: {download['byte_length'] > 0}")
