"""Prepare a lead resume plan through a ready host adapter."""
from __future__ import annotations

from okstra_ctl.domain.host import (
    HostSessionContext,
    HostUnavailable,
    LeadResumeRequest,
    LeadSessionPlan,
)
from okstra_ctl.ports import HostAdapter


def resume_run(
    request: LeadResumeRequest,
    context: HostSessionContext,
    adapter: HostAdapter,
) -> LeadSessionPlan:
    readiness = adapter.probe(context)
    if not readiness.ok:
        raise HostUnavailable(readiness.reason)
    return adapter.lead_session().build_resume(request, context)
