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)
|