#!/usr/bin/env bash set -euo pipefail cd "$(dirname "$0")/.." command -v uv >/dev/null || { echo "Install uv first: https://docs.astral.sh/uv/getting-started/installation/"; exit 2; } ENV="${BRAINMU_ENV:-$PWD/.venv}" [[ ! -e "$ENV" ]] || { echo "Environment already exists: $ENV (not overwritten)"; exit 2; } uv venv --python 3.12 "$ENV" PY="$ENV/bin/python" uv pip install --python "$PY" torch==2.11.0 torchvision==0.26.0 --index-url https://download.pytorch.org/whl/cu130 uv pip install --python "$PY" -r requirements.txt packaging ninja wheel setuptools # No build isolation: compile against the torch installed above. MAX_JOBS="${MAX_JOBS:-4}" uv pip install --python "$PY" flash-attn==2.8.3.post1 --no-build-isolation "$PY" -c 'import torch, torchvision, flash_attn; print("Environment ready:", torch.__version__, torchvision.__version__, flash_attn.__version__)' echo "Run: bash scripts/test.sh"