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

PROJECT_ROOT="${PROJECT_ROOT:-$(pwd)}"
cd "$PROJECT_ROOT"

SLEEP_S="${SLEEP_S:-900}"
NPZ="${NPZ:-DEX_DATA/fast_npz/base_CHECK_USDC_2PCT_fresh_fee_replay_v2.npz}"
OUT_BASE="${OUT_BASE:-DEX_REPORTS/paper_live_check_regime_router_v1}"

mkdir -p "$OUT_BASE"

LAST_SIG=""

while true; do
  if [[ ! -s "$NPZ" ]]; then
    echo "[wait] missing npz=$NPZ"
    sleep "$SLEEP_S"
    continue
  fi

  SIG="$(stat -c '%Y:%s' "$NPZ")"

  if [[ "$SIG" != "$LAST_SIG" ]]; then
    TS="$(date -u +%Y%m%dT%H%M%SZ)"
    OUT="$OUT_BASE/run_$TS"
    DECISION="$OUT_BASE/decision_$TS.json"

    echo "[decision] $TS npz=$NPZ"
    python3 scripts/check_check_regime_decision_v1.py "$NPZ" | tee "$DECISION"

    STRATEGY="$(python3 - "$DECISION" <<'PY'
import json, sys
print(json.load(open(sys.argv[1]))["strategy"])
PY
)"

    ROUTE="$(python3 - "$DECISION" <<'PY'
import json, sys
print(json.load(open(sys.argv[1]))["route"])
PY
)"

    echo "[run] $TS route=$ROUTE strategy=$STRATEGY out=$OUT"

    python3 dex_platform/backtest/cl_fee_replay_fast_npz_v3.py \
      --npz "$NPZ" \
      --out-dir "$OUT" \
      --time-from 2026-05-01T00:00:00Z \
      --time-to "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
      --fee-rates metadata_0_2515:0.002515 \
      --strategies "$STRATEGY" \
      --capital-mode grid \
      --capital-grid 25 \
      --max-avg-liquidity-share-pct 3 \
      --max-p95-liquidity-share-pct 5 \
      --max-p99-liquidity-share-pct 10 \
      --max-liquidity-share-pct 25 \
      --target-mdd-pct 20 \
      --w-mdd 2 \
      --top-n 10 \
      --jobs 2 \
      --fast-core

    rm -f "$OUT_BASE/latest"
    ln -s "$(basename "$OUT")" "$OUT_BASE/latest"

    cp "$DECISION" "$OUT_BASE/latest_decision.json"

    cat "$OUT/summary.csv" || true

    LAST_SIG="$SIG"
  else
    echo "[idle] $(date -u +%Y-%m-%dT%H:%M:%SZ) unchanged npz=$NPZ"
  fi

  sleep "$SLEEP_S"
done
