#!/usr/bin/env bash
set -euo pipefail

ROOT="$(cd "$(dirname "$0")/.." && pwd)"
REPO="$ROOT/go-sdk-patched"
PATCH_FILE="$ROOT/coding/proposed_fix.diff"

export PATH="$PATH:/usr/local/go/bin:/usr/lib/go-1.23/bin"

echo "[1/5] Checking prerequisites"
test -f "$PATCH_FILE"
test -d "$REPO/.git"
command -v go >/dev/null 2>&1

go version

echo "[2/5] Resetting target files to baseline"
git -C "$REPO" checkout -- mcp/sse.go mcp/sse_test.go

echo "[3/5] Applying patch"
patch -d "$REPO" -p1 < "$PATCH_FILE"

echo "[4/5] Running focused regression tests"
(
  cd "$REPO"
  go test ./mcp -run 'TestSSE(LocalhostProtection|405AllowHeader|Server)$' -count=1
  go test ./mcp -run 'Test(StreamableLocalhostProtection|SSELocalhostProtection)' -count=1
)

echo "[5/5] Verification complete: patch applies and tests pass"