#!/bin/sh
# haharness bootstrap — отдаётся воркером на https://haharness.tt.hockey
# Установка:  curl https://haharness.tt.hockey | sh -s -- <invite-код>
set -e

INVITE="${1:-}"
DOMAIN="${HAHARNESS_DOMAIN:-https://haharness.tt.hockey}"

OS="$(uname -s)"; ARCH="$(uname -m)"
case "$OS/$ARCH" in
  Darwin/arm64)            T=darwin-arm64 ;;
  Darwin/x86_64)           T=darwin-x64 ;;
  Linux/aarch64|Linux/arm64) T=linux-arm64 ;;
  Linux/x86_64)            T=linux-x64 ;;
  *) echo "haharness: неподдерживаемая платформа $OS/$ARCH" >&2; exit 1 ;;
esac

BIN_DIR="$HOME/.local/bin"
BIN="$BIN_DIR/haharness"
mkdir -p "$BIN_DIR"

echo "haharness: качаю бинарник ($T)…"
curl -fsSL "$DOMAIN/bin/haharness-$T" -o "$BIN"
chmod +x "$BIN"

# самоустановка в PATH (~/.zshrc)
"$BIN" install-self

# Авторизация локальных CLI прямо из инсталлятора (issue #291). Спрашиваем на каждого агента
# отдельно (skip по n); флоу интерактивный — работает, только если stdin — терминал (curl … | sh
# оставляет stdin на pipe, поэтому пробуем перечитать /dev/tty). Идемпотентно: те же команды
# можно прогнать позже вручную — `haharness login claude` / `haharness login codex`.
ask_login() { # $1=agent
  agent="$1"
  if [ ! -t 0 ] && [ ! -r /dev/tty ]; then
    echo "haharness: авторизацию $agent пропускаю (нет терминала). Позже: haharness login $agent"
    return
  fi
  printf "haharness: Авторизовать %s сейчас? [Y/n] " "$agent" > /dev/tty 2>/dev/null || printf "haharness: Авторизовать %s сейчас? [Y/n] " "$agent"
  if [ -r /dev/tty ]; then read -r ans < /dev/tty; else read -r ans; fi
  case "$ans" in
    n|N|no|No|NO) echo "haharness: $agent пропущен (позже: haharness login $agent)" ;;
    *) "$BIN" login "$agent" || echo "haharness: вход $agent не завершён — повтори: haharness login $agent" ;;
  esac
}

if [ -n "$INVITE" ]; then
  "$BIN" enroll "$INVITE" "$DOMAIN"
  ask_login claude
  ask_login codex
  echo "haharness: готово. Демон-коннектор: haharness run (или launchd, поставленный enroll-ом)."
else
  echo "haharness: бинарник установлен, но инвайт не передан."
  echo "  Получи код: в Telegram-боте /invite, затем: haharness enroll <invite>"
  echo "  Авторизация агентов позже: haharness login claude  /  haharness login codex"
fi
