#!/usr/bin/env bash
# The checkers, cheapest first: ruff, then pyright, then mypy. Any red stops the run.
# infra/tools is the operator's Python — the carrier's trunk, the SIP probe — checked to the same
# bar under its own two config files (docs/decisions/box.md says why they differ by two rules).
set -euo pipefail
cd "$(dirname "$0")/.."

uv run ruff format --check .
uv run ruff check .
uv run pyright
uv run pyright --project infra/tools
uv run mypy
# Last, because it is about what a migration does to a box and not about whether the tree parses.
scripts/lint-migrations
