#!/bin/zsh
set -euo pipefail

APP_DIR="$HOME/Library/Application Support/停一下/DeepReviewAssistant"
VENV_DIR="$APP_DIR/.venv"
BASE_URL="https://api.tingyixia.top"
ASSISTANT_RELEASE="2026.07.11.1"
INSTALL_MARKER="$APP_DIR/.installed-release"

print_step() {
    printf "\n==> %s\n" "$1"
}

wait_for_enter() {
    printf "\n按回车键退出..."
    read -r _ || true
}

trap wait_for_enter EXIT

clear
echo "停一下本地深度复检助手"
echo "----------------------------------------"
echo "这个助手只监听 127.0.0.1，用你自己的电脑做深度复检。"
echo "首次安装会下载 AI 依赖和模型，可能需要较长时间。"

if ! command -v python3 >/dev/null 2>&1; then
    echo "没有找到 Python。请先安装 Python 3.9 到 3.12。"
    echo "下载地址：https://www.python.org/downloads/macos/"
    open "https://www.python.org/downloads/macos/" >/dev/null 2>&1 || true
    exit 1
fi

if ! python3 -c 'import sys; raise SystemExit(0 if (3, 9) <= sys.version_info[:2] < (3, 13) else 1)'; then
    echo "当前 Python 版本不兼容。请选择 Python 3.9、3.10、3.11 或 3.12。"
    echo "Python 3.13 暂不支持这套本地 AI 依赖。"
    open "https://www.python.org/downloads/macos/" >/dev/null 2>&1 || true
    exit 1
fi

print_step "准备安装目录"
mkdir -p "$APP_DIR"
cd "$APP_DIR"

print_step "下载本地助手文件"
curl -fsSL "$BASE_URL/downloads/deep-review-assistant/server.py" -o server.py
curl -fsSL "$BASE_URL/downloads/deep-review-assistant/preload_models.py" -o preload_models.py
curl -fsSL "$BASE_URL/downloads/deep-review-assistant/requirements.txt" -o requirements.txt

INSTALLED_RELEASE="$(cat "$INSTALL_MARKER" 2>/dev/null || true)"
if [[ "$INSTALLED_RELEASE" != "$ASSISTANT_RELEASE" ]]; then
    print_step "创建本地 Python 环境"
    if [[ -x "$VENV_DIR/bin/python" ]] && ! "$VENV_DIR/bin/python" -c 'import sys; raise SystemExit(0 if (3, 9) <= sys.version_info[:2] < (3, 13) else 1)'; then
        rm -rf "$VENV_DIR"
    fi
    if [[ ! -x "$VENV_DIR/bin/python" ]]; then
        python3 -m venv "$VENV_DIR"
    fi

    print_step "安装或更新依赖"
    "$VENV_DIR/bin/python" -m pip install --upgrade pip
    "$VENV_DIR/bin/python" -m pip install -r requirements.txt

    print_step "下载并预热本地 AI 模型"
    if "$VENV_DIR/bin/python" preload_models.py; then
        printf "%s" "$ASSISTANT_RELEASE" > "$INSTALL_MARKER"
    else
        echo "模型没有全部预热成功。本次不会标记安装完成，下次打开会自动继续。"
        echo "助手仍会保守运行：证据不确定就继续遮挡。"
    fi
else
    print_step "本地 AI 已安装，跳过重复安装"
fi

print_step "启动本地助手"
echo "看到 listening 后，回到 Chrome 扩展点击“检测连接”。"
echo "关闭这个窗口会停止本地助手。"
"$VENV_DIR/bin/python" server.py
