#!/usr/bin/env bash # apply.sh /src -- apply the prefix-cache patch series in order. # Every patch refuses unless its anchor matches exactly once, so a partial tree fails loudly. set -euo pipefail SRC="${1:?usage: apply.sh /path/to/TensorFold/src}" HERE="$(cd "$(dirname "$0")" && pwd)" CUDA="$SRC/tensorfold/families/glm_moe_dsa/cuda" DRAFT="$SRC/tensorfold/families/glm5_next/cuda" for f in "$CUDA/runner.py" "$CUDA/engine.py" "$DRAFT/dflash2.py"; do [ -f "$f" ] || { echo "missing: $f" >&2; exit 2; } done echo "==> installing prefix_cache.py" cp -f "$HERE/prefix_cache.py" "$CUDA/prefix_cache.py" P=python3 echo "==> 1/7 prefill offset"; $P "$HERE/patch_01_prefill_offset.py" "$CUDA/runner.py" --apply echo "==> 2/7 drafter resume"; $P "$HERE/patch_02_drafter_resume.py" "$DRAFT/dflash2.py" "$CUDA/runner.py" --apply echo "==> 3/7 engine wiring"; $P "$HERE/patch_03_engine_wiring.py" "$CUDA/engine.py" --apply echo "==> 4/7 chunk alignment"; $P "$HERE/patch_04_chunk_alignment.py" "$CUDA/runner.py" --apply echo "==> 5/7 fixed chunks"; $P "$HERE/patch_05_fixed_chunks.py" "$CUDA/runner.py" --apply echo "==> 6/7 finalize + bind"; $P "$HERE/patch_06_finalize.py" "$CUDA/prefix_cache.py" "$CUDA/runner.py" "$CUDA/engine.py" --apply echo "==> 7/7 canonical end"; $P "$HERE/patch_07_canonical_end.py" "$CUDA/prefix_cache.py" "$CUDA/runner.py" "$CUDA/engine.py" --apply find "$SRC" -name __pycache__ -type d -exec rm -rf {} + 2>/dev/null || true echo "==> done. Verify imports:" echo " PYTHONPATH=$SRC python3 -c 'import tensorfold.families.glm_moe_dsa.cuda.runner as R; print(R.FIXED_CHUNKS, R.PREFIX_ON)'"