#!/bin/bash
# Noctis Agent 快捷安装 · macOS（下载后登记登录启动，可关窗口）
DIR="${NOCTIS_AGENT_HOME:-$HOME/.noctis/node-agent}"
APP_BASE="${NOCTIS_APP_BASE:-https://app.noctis.world}"
TRACKER="${NOCTIS_TRACKER:-https://api.noctis.world}"
export NVM_DIR="${NVM_DIR:-$HOME/.nvm}"
if [ -s "$NVM_DIR/nvm.sh" ]; then
  # shellcheck disable=SC1090
  . "$NVM_DIR/nvm.sh"
fi
clear
echo ""
echo "  Noctis · 边缘节点 Agent 快捷安装"
echo ""
if ! command -v node >/dev/null 2>&1; then
  echo "未检测到 Node.js，正在打开官方 LTS 下载页…"
  open "https://nodejs.org/en/download"
  echo "请安装 Node.js 18+ 后，再次打开本文件。"
  read -r -p "按回车关闭…"
  exit 2
fi
major="$(node -p "process.versions.node.split('.')[0]" 2>/dev/null || echo 0)"
if [ "${major:-0}" -lt 18 ]; then
  echo "Node 版本过低（$(node -v)），需要 ≥18"
  open "https://nodejs.org/en/download"
  read -r -p "按回车关闭…"
  exit 2
fi
echo "✓ Node $(node -v)"
mkdir -p "$DIR"
cd "$DIR" || exit 1
echo "↓ 下载 Agent…"
curl -fsSL "$APP_BASE/install/agent.mjs" -o agent.mjs
curl -fsSL "$APP_BASE/install/package.json" -o package.json
curl -fsSL "$APP_BASE/install/persist-unix.sh" -o persist-unix.sh
echo "→ 登记登录启动…"
echo ""
export NOCTIS_TRACKER="$TRACKER"
export NOCTIS_AGENT_HOME="$DIR"
if bash persist-unix.sh; then
  echo ""
  read -r -p "按回车关闭（不必保持窗口）…"
  exit 0
fi
echo "开机登记失败，改为前台运行。请保持本窗口。"
exec node agent.mjs
