from pathlib import Path
from typing import Protocol

from ..models import HarnessConfig, ProjectSelection, Toolchain, ValidationPlan


class AdapterError(RuntimeError):
    pass


class ValidationAdapter(Protocol):
    def create_plan(
        self,
        root: Path,
        selection: ProjectSelection,
        config: HarnessConfig,
        tools: Toolchain,
    ) -> ValidationPlan:
        raise NotImplementedError
