@echo off
chcp 65001 >nul
setlocal

set "BASE_URL=https://api.tingyixia.top"
set "APP_DIR=%LOCALAPPDATA%\Tingyixia\DeepReviewAssistant"
set "VENV_DIR=%APP_DIR%\.venv"
set "VENV_PY=%VENV_DIR%\Scripts\python.exe"
set "ASSISTANT_RELEASE=2026.07.11.1"
set "INSTALL_MARKER=%APP_DIR%\.installed-release"

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

if not defined PY (
  py -3.12 -c "import sys" >nul 2>nul && set "PY=py -3.12"
)
if not defined PY (
  py -3.11 -c "import sys" >nul 2>nul && set "PY=py -3.11"
)
if not defined PY (
  py -3.10 -c "import sys" >nul 2>nul && set "PY=py -3.10"
)
if not defined PY (
  py -3.9 -c "import sys" >nul 2>nul && set "PY=py -3.9"
)
if not defined PY (
  python -c "import sys; raise SystemExit(0 if (3, 9) ^<= sys.version_info[:2] ^< (3, 13) else 1)" >nul 2>nul && set "PY=python"
)

if not defined PY (
  echo 没有找到 Python 3。
  echo 请先安装 Python 3.9 到 3.12，然后重新双击这个安装器。
  echo Python 3.13 暂不支持这套本地 AI 依赖。
  echo 下载地址：https://www.python.org/downloads/windows/
  start "" "https://www.python.org/downloads/windows/"
  echo.
  pause
  exit /b 1
)

echo.
echo ==^> 准备安装目录
powershell -NoProfile -ExecutionPolicy Bypass -Command "New-Item -ItemType Directory -Force -Path '%APP_DIR%' | Out-Null"
cd /d "%APP_DIR%"

echo.
echo ==^> 下载本地助手文件
powershell -NoProfile -ExecutionPolicy Bypass -Command "Invoke-WebRequest -Uri '%BASE_URL%/downloads/deep-review-assistant/server.py' -OutFile '%APP_DIR%\server.py'; Invoke-WebRequest -Uri '%BASE_URL%/downloads/deep-review-assistant/preload_models.py' -OutFile '%APP_DIR%\preload_models.py'; Invoke-WebRequest -Uri '%BASE_URL%/downloads/deep-review-assistant/requirements.txt' -OutFile '%APP_DIR%\requirements.txt'"
if %errorlevel% neq 0 (
  echo 下载失败。请检查网络后重新运行这个安装器。
  pause
  exit /b 1
)

set "INSTALLED_RELEASE="
if exist "%INSTALL_MARKER%" set /p INSTALLED_RELEASE=<"%INSTALL_MARKER%"
if not "%INSTALLED_RELEASE%"=="%ASSISTANT_RELEASE%" (
  echo.
  echo ==^> 创建本地 Python 环境
  if exist "%VENV_PY%" (
    "%VENV_PY%" -c "import sys; raise SystemExit(0 if (3, 9) ^<= sys.version_info[:2] ^< (3, 13) else 1)" >nul 2>nul
    if errorlevel 1 rmdir /s /q "%VENV_DIR%"
  )
  if not exist "%VENV_PY%" %PY% -m venv "%VENV_DIR%"
  if not exist "%VENV_PY%" (
    echo 创建 Python 环境失败。请确认 Python 安装完整。
    pause
    exit /b 1
  )

  echo.
  echo ==^> 安装或更新依赖
  "%VENV_PY%" -m pip install --upgrade pip
  "%VENV_PY%" -m pip install -r "%APP_DIR%\requirements.txt"
  if errorlevel 1 (
    echo 依赖安装失败。请检查网络后重新运行这个安装器。
    pause
    exit /b 1
  )

  echo.
  echo ==^> 下载并预热本地 AI 模型
  "%VENV_PY%" "%APP_DIR%\preload_models.py"
  if errorlevel 1 (
    echo 模型没有全部预热成功。本次不会标记安装完成，下次打开会自动继续。
    echo 助手仍会保守运行：证据不确定就继续遮挡。
  ) else (
    >"%INSTALL_MARKER%" echo %ASSISTANT_RELEASE%
  )
) else (
  echo.
  echo ==^> 本地 AI 已安装，跳过重复安装
)

echo.
echo ==^> 启动本地助手
echo 看到 listening 后，回到 Chrome 扩展点击“检测连接”。
echo 关闭这个窗口会停止本地助手。
echo.
"%VENV_PY%" "%APP_DIR%\server.py"
echo.
pause
