Skip to content

Preflight

preflight

Pre-flight validation for sandbox creation.

Runs 6 checks that ALL must pass before a sandbox is created.

PreflightResult dataclass

PreflightResult(ok, errors=list())

Result of all pre-flight checks.

run_preflight

run_preflight(mcps, skills, registry=None)

Run all pre-flight checks and return the result.

Source code in src/crux_cli/preflight.py
def run_preflight(
    mcps: list[str],
    skills: list[str],
    registry: dict[str, Any] | None = None,
) -> PreflightResult:
    """Run all pre-flight checks and return the result."""
    if registry is None:
        registry = _load_registry()

    mcp_defs = registry.get("mcp_definitions", {})
    skill_defs = registry.get("skill_definitions", {})
    errors: list[str] = []

    for mcp_name in mcps:
        _check_mcp_exists(mcp_name, mcp_defs, errors)
        if mcp_name in mcp_defs:
            mcp_data = mcp_defs[mcp_name]
            _check_mcp_source(mcp_name, mcp_data, errors)
            _check_auth_secrets(mcp_name, mcp_data, errors)
            _check_auth_preflight(mcp_name, mcp_data, errors)
            _check_build_artifacts(mcp_name, mcp_data, errors)

    for skill_name in skills:
        _check_skill(skill_name, skill_defs, errors)

    return PreflightResult(ok=len(errors) == 0, errors=errors)