@echo off
setlocal EnableExtensions
title Unlimited Luna CLI setup
cd /d "%~dp0"

echo.
echo  ==================================================
echo   Unlimited Luna CLI setup
echo   unlimitedcodex.com
echo  ==================================================
echo.
echo  Steps:
echo    [1] Find Python 3.9+
echo    [2] Package
echo    [3] Install runtime
echo    [4] Dependencies
echo    [5] API key
echo.

set "SCRIPT_DIR=%~dp0"
set "INSTALL_DIR=%USERPROFILE%\.unlimited\rt"
set "LAUNCHER=%USERPROFILE%\.unlimited\unlimited.cmd"
set "PKG_URL=https://unlimitedcodex.com/downloads/unlimited-cli-package.zip?v=luna-20260814-v393"
set "PKG_ZIP=%TEMP%\unlimited-cli-package.zip"
chcp 65001 >nul 2>nul
set "PYTHONIOENCODING=utf-8"
set "PYTHONUTF8=1"
if defined UCX_PKG_URL set "PKG_URL=%UCX_PKG_URL%"

set "PY="
where python >nul 2>nul
if not errorlevel 1 set "PY=python"
if not defined PY if exist "%LOCALAPPDATA%\Programs\Python\Python313\python.exe" set "PY=%LOCALAPPDATA%\Programs\Python\Python313\python.exe"
if not defined PY if exist "%LOCALAPPDATA%\Programs\Python\Python312\python.exe" set "PY=%LOCALAPPDATA%\Programs\Python\Python312\python.exe"
if not defined PY if exist "%LOCALAPPDATA%\Programs\Python\Python311\python.exe" set "PY=%LOCALAPPDATA%\Programs\Python\Python311\python.exe"
if not defined PY if exist "%LOCALAPPDATA%\Programs\Python\Python310\python.exe" set "PY=%LOCALAPPDATA%\Programs\Python\Python310\python.exe"
if not defined PY (
  echo [ERROR] Python not found.
  echo  Download: https://www.python.org/downloads/
  pause
  exit /b 1
)

echo [1/5] Python:
"%PY%" --version

echo [2/5] Package...
if defined UCX_LOCAL_ZIP (
  if exist "%UCX_LOCAL_ZIP%" (
    copy /Y "%UCX_LOCAL_ZIP%" "%PKG_ZIP%" >nul
    goto validate_zip
  )
)
if exist "%SCRIPT_DIR%unlimited-cli-package.zip" (
  echo       Checking local zip...
  copy /Y "%SCRIPT_DIR%unlimited-cli-package.zip" "%PKG_ZIP%" >nul
  goto validate_zip
)
if exist "%SCRIPT_DIR%..\unlimited-cli-package.zip" (
  copy /Y "%SCRIPT_DIR%..\unlimited-cli-package.zip" "%PKG_ZIP%" >nul
  goto validate_zip
)
goto download_zip

:validate_zip
if not exist "%PKG_ZIP%" goto download_zip
REM Require opaque runtime marker rt.ok OR package folder n4k9
powershell -NoProfile -ExecutionPolicy Bypass -Command "$z=$env:PKG_ZIP; Add-Type -AssemblyName System.IO.Compression.FileSystem; $a=[IO.Compression.ZipFile]::OpenRead($z); $ok=$false; foreach($e in $a.Entries){ $n=$e.FullName.Replace('\\','/'); if($n -eq 'rt.ok' -or $n -like 'n4k9/*' -or $n -like 'luna/*'){ $ok=$true; break } }; $a.Dispose(); if(-not $ok){ exit 2 }"
if errorlevel 2 (
  echo       Local zip outdated - downloading fresh package...
  del /f /q "%PKG_ZIP%" >nul 2>nul
  goto download_zip
)
if errorlevel 1 (
  del /f /q "%PKG_ZIP%" >nul 2>nul
  goto download_zip
)
echo       Package OK
goto have_zip

:download_zip
echo       Downloading package...
powershell -NoProfile -ExecutionPolicy Bypass -Command "try { Invoke-WebRequest -Uri $env:PKG_URL -OutFile $env:PKG_ZIP -UseBasicParsing } catch { Write-Host $_.Exception.Message; exit 1 }"
if errorlevel 1 (
  echo [ERROR] Download failed.
  pause
  exit /b 1
)

:have_zip
if not exist "%PKG_ZIP%" (
  echo [ERROR] Package missing.
  pause
  exit /b 1
)

echo [3/5] Install runtime...
if exist "%INSTALL_DIR%" rmdir /s /q "%INSTALL_DIR%" >nul 2>nul
if exist "%USERPROFILE%\.unlimited\app" rmdir /s /q "%USERPROFILE%\.unlimited\app" >nul 2>nul
mkdir "%INSTALL_DIR%" >nul 2>nul
if not exist "%USERPROFILE%\.unlimited" mkdir "%USERPROFILE%\.unlimited" >nul 2>nul
powershell -NoProfile -ExecutionPolicy Bypass -Command "Expand-Archive -LiteralPath $env:PKG_ZIP -DestinationPath $env:INSTALL_DIR -Force"
if errorlevel 1 (
  echo [ERROR] Extract failed.
  pause
  exit /b 1
)
if not exist "%INSTALL_DIR%\main.py" (
  echo [ERROR] Invalid package - main missing.
  pause
  exit /b 1
)
if exist "%INSTALL_DIR%\rt.ok" goto layout_ok
if exist "%INSTALL_DIR%\n4k9" goto layout_ok
if exist "%INSTALL_DIR%\luna" goto layout_ok
echo [ERROR] Invalid package layout.
pause
exit /b 1
:layout_ok

echo [4/5] Dependencies...
if exist "%INSTALL_DIR%\pyproject.toml" (
  "%PY%" -c "from pathlib import Path; p=Path(r'%INSTALL_DIR%')/'pyproject.toml'; b=p.read_bytes(); p.write_bytes(b[3:] if b.startswith(b'\xef\xbb\xbf') else b)"
)
"%PY%" -m pip install --user --quiet --upgrade pip
"%PY%" -m pip install --user --quiet -r "%INSTALL_DIR%\requirements.txt"
if errorlevel 1 (
  echo [ERROR] pip install failed.
  pause
  exit /b 1
)
"%PY%" -m pip install --user --quiet -e "%INSTALL_DIR%"
if errorlevel 1 echo [WARN] editable install failed - using launcher.

if exist "%INSTALL_DIR%\lock_install.py" (
  echo       Securing runtime...
  "%PY%" "%INSTALL_DIR%\lock_install.py" "%INSTALL_DIR%" >nul 2>nul
)

(
echo @echo off
echo setlocal
echo chcp 65001 ^>nul 2^>nul
echo set "PYTHONIOENCODING=utf-8"
echo set "PYTHONUTF8=1"
echo set "APP_DIR=%INSTALL_DIR%"
echo set "PY=%PY%"
echo "%%PY%%" "%%APP_DIR%%\main.py" %%*
echo exit /b %%errorlevel%%
) > "%LAUNCHER%"
copy /Y "%LAUNCHER%" "%SCRIPT_DIR%unlimited.cmd" >nul 2>nul

echo       Updating PATH...
powershell -NoProfile -ExecutionPolicy Bypass -Command "$d=Join-Path $env:USERPROFILE '.unlimited'; $p=[Environment]::GetEnvironmentVariable('Path','User'); if(-not $p){$p=''}; if($p -notlike ('*'+$d+'*')){ [Environment]::SetEnvironmentVariable('Path', ($p.TrimEnd(';')+';'+$d), 'User'); Write-Host '      PATH updated - new CMD: unlimited' } else { Write-Host '      PATH OK' }"

echo [5/5] API key - paste or Enter to skip
set "UCX_KEY="
set /p "UCX_KEY=API key > "
if "%UCX_KEY%"=="" (
  echo Install complete.
  echo Later: "%LAUNCHER%" login --key sk-...
  echo Or new CMD: unlimited
  pause
  exit /b 0
)

set "UCX_URL=https://api.unlimitedcodex.com"
"%PY%" "%INSTALL_DIR%\main.py" login --key "%UCX_KEY%" --url "%UCX_URL%"
set "UCX_KEY="
set "UCX_URL="
if errorlevel 1 (
  echo [ERROR] Login failed. Retry: "%LAUNCHER%" login
  pause
  exit /b 1
)

echo Setup complete.
"%PY%" "%INSTALL_DIR%\main.py"
set "EXITCODE=%errorlevel%"
if not "%EXITCODE%"=="0" pause
exit /b %EXITCODE%
