"""C10 `CacheProvisioner` Protocol.

Concrete impl: engine compile + descriptors + manifest + content-hash gate. See
`_docs/02_document/components/11_c10_provisioning/`.
"""

from __future__ import annotations

from pathlib import Path
from typing import Protocol

from gps_denied_onboard._types.manifests import Manifest


class CacheProvisioner(Protocol):
    """Pre-flight cache provisioning (engine compile + descriptor batch + manifest)."""

    def provision(self, flight_id: str, output_root: Path) -> Manifest: ...
