Zum Inhalt

start-gui.sh

#!/usr/bin/env bash
# Startet die touchstone-Steuerzentrale (lokales Web-UI) im Browser.
#
# Installiert bei Bedarf das optionale [gui]-Extra (FastAPI/uvicorn/Jinja) und
# reicht alle Argumente an `touchstone gui` durch.
#
#   ./start-gui.sh                # Auto-Port, öffnet den Browser
#   ./start-gui.sh --port 8000    # fester Port
#   ./start-gui.sh --no-open      # ohne Browser (z. B. für Remote/curl)
#   ./start-gui.sh --runs ./runs  # anderes runs-Verzeichnis
#
# Beenden mit Ctrl-C (beendet den Server sauber).

set -euo pipefail

# Ins Repo-Verzeichnis wechseln (Ort dieses Skripts), damit es von überall startet.
cd "$(dirname "$0")"

if ! command -v uv >/dev/null 2>&1; then
  echo "Fehler: 'uv' nicht gefunden. Installiere uv: https://docs.astral.sh/uv/" >&2
  exit 1
fi

# Hinweis, falls der Judge-Endpoint (LM Studio / mlx auf :1234) nicht läuft:
# 'judge' (bewerten) aus dem UI braucht ihn — Anschauen/Übersicht geht ohne.
if ! curl -s -o /dev/null --max-time 1 http://127.0.0.1:1234/v1/models 2>/dev/null; then
  echo "ℹ  Judge-Endpoint :1234 nicht erreichbar — Bewerten (judge) aus dem UI braucht ihn;"
  echo "   Übersicht/Ergebnisse anschauen geht auch ohne."
fi

echo "→ Starte touchstone gui  (installiert [gui]-Extra bei Bedarf) …"
# `uv run --extra gui` stellt das optionale Extra sicher und startet dann den Server.
exec uv run --extra gui touchstone gui "$@"