#!/bin/bash
set -euo pipefail

PRESET_NAME="qwen3.6-35b-a3b-macstudio-m1-128gb.preset.json"
PRESET_SRC="${HOME}/Downloads/${PRESET_NAME}"
PRESET_DIR="${HOME}/.lmstudio/presets"
MODEL_KEY="qwen/qwen3.6-35b-a3b"
MODEL_ID="qwen/qwen3.6-35b-a3b"

echo "[1/6] Pruefe LM Studio CLI ..."
if ! command -v lms >/dev/null 2>&1; then
  if [ -x "${HOME}/.lmstudio/bin/lms" ]; then
    export PATH="${HOME}/.lmstudio/bin:${PATH}"
  fi
fi
command -v lms >/dev/null 2>&1 || {
  echo "Fehler: 'lms' nicht gefunden. Oeffne LM Studio mindestens einmal und fuehre ggf. ~/.lmstudio/bin/lms bootstrap aus."
  exit 1
}

echo "[2/6] Starte LM Studio Daemon ..."
lms daemon up || true

echo "[3/6] Installiere Preset ..."
mkdir -p "${PRESET_DIR}"
if [ -f "${PRESET_SRC}" ]; then
  cp "${PRESET_SRC}" "${PRESET_DIR}/${PRESET_NAME}"
  echo "Preset kopiert nach ${PRESET_DIR}/${PRESET_NAME}"
else
  echo "Hinweis: ${PRESET_SRC} nicht gefunden. Preset separat aus dem Dashboard-Download kopieren."
fi

echo "[4/6] Lade Modell herunter, falls noetig ..."
lms get "${MODEL_KEY}"

echo "[5/6] Lade Modell in den Server ..."
lms load "${MODEL_KEY}" --identifier "${MODEL_ID}" --gpu max --context-length 65536

echo "[6/6] Starte API-Server im Netzwerkmodus ..."
lms server start --cors --bind 0.0.0.0 --port 1234 >/tmp/lmstudio-macstudio.log 2>&1 &
sleep 4

echo "Verifiziere Server ..."
curl -fsS http://127.0.0.1:1234/v1/models | sed -n '1,40p'

cat <<'EOF'

Fertig.
- Tailscale-Ziel vom VPS: http://100.82.59.70:1234/v1/models
- Empfohlenes Modell: qwen/qwen3.6-35b-a3b
- Logdatei: /tmp/lmstudio-macstudio.log

Wenn du den Server dauerhaft willst:
- In LM Studio "Run on system startup" aktivieren
- Oder einen LaunchAgent/Service fuer `lms daemon up` + `lms server start` anlegen
EOF
