Files
OpenQode/OpenQode.bat

185 lines
4.2 KiB
Batchfile

@echo off
setlocal EnableDelayedExpansion
title OpenQode v1.01 - AI Coding Assistant
color 0A
cd /d "%~dp0"
echo.
echo ========================================
echo OpenQode v1.01 - AI Coding Assistant
echo ========================================
echo.
:: Quick Node.js check
node --version >nul 2>&1
if %errorlevel% neq 0 (
echo ERROR: Node.js is not installed!
echo Please run Install.bat first or install Node.js from https://nodejs.org/
start https://nodejs.org/
pause
exit /b 1
)
echo [OK] Node.js detected
:: Install dependencies if needed (root level)
if not exist "node_modules" (
echo [INFO] First run - Installing dependencies...
call npm install --legacy-peer-deps 2>nul || call npm install
)
:: Install dependencies in goose-ultra-final if needed
if not exist "bin\goose-ultra-final\node_modules" (
echo [INFO] Installing Goose Ultra dependencies...
pushd "%~dp0bin\goose-ultra-final"
call npm install --legacy-peer-deps 2>nul || call npm install
popd
)
echo [OK] Dependencies ready
:MENU
cls
echo.
echo ========================================
echo OPENQODE v1.01 - LAUNCH MENU
echo ========================================
echo.
echo RECOMMENDED:
echo [1] *** GOOSE ULTRA *** (Full IDE Experience)
echo [2] GOOSE ULTRA DEV (Live Reload Mode)
echo.
echo TERMINAL INTERFACES:
echo [3] Next-Gen TUI (Gen 5 - Ink)
echo [4] TUI Classic (Gen 4 - Node.js)
echo.
echo TOOLS:
echo [5] Qwen Authentication (Login/Refresh)
echo [8] Smart Repair (Fix TUI crashes)
echo [9] Check Updates
echo.
echo [0] Exit
echo.
set /p choice="Enter choice (0-9): "
if "%choice%"=="1" goto GOOSE
if "%choice%"=="2" goto GOOSEDEV
if "%choice%"=="3" goto INKTUI
if "%choice%"=="4" goto CLASSICTUI
if "%choice%"=="5" goto QWENAUTH
if "%choice%"=="8" goto REPAIR
if "%choice%"=="9" goto UPDATE
if "%choice%"=="0" goto EXIT
echo Invalid choice.
timeout /t 1 /nobreak >nul
goto MENU
:GOOSE
echo.
echo ========================================
echo GOOSE ULTRA - Production Mode
echo ========================================
echo.
echo Building Goose Ultra...
pushd "%~dp0bin\goose-ultra-final"
call npm run build
if %errorlevel% neq 0 (
echo [ERROR] Build failed! Attempting recovery...
call npm install --legacy-peer-deps
call npm run build
if %errorlevel% neq 0 (
echo [ERROR] Build still failing. Please check errors above.
popd
pause
goto MENU
)
)
echo.
echo Starting Goose Ultra...
start "" npx electron .
popd
echo.
echo Goose Ultra launched! Check for the window.
timeout /t 3 /nobreak >nul
goto MENU
:GOOSEDEV
echo.
echo ========================================
echo GOOSE ULTRA DEV MODE
echo ========================================
echo.
echo Starting Vite dev server + Electron...
pushd "%~dp0bin\goose-ultra-final"
start "" cmd /c "npm run dev"
echo Waiting for Vite to start...
timeout /t 5 /nobreak >nul
start "" cmd /c "set GOOSE_DEV=true && npx electron ."
popd
echo.
echo Dev mode started! Edits will hot-reload.
timeout /t 2 /nobreak >nul
goto MENU
:INKTUI
echo.
echo Starting Next-Gen TUI (Gen 5)...
node "%~dp0bin\auth-check.mjs" --quiet 2>nul
node --experimental-require-module "%~dp0bin\opencode-ink.mjs"
pause
goto MENU
:CLASSICTUI
echo.
echo Starting TUI Classic (Gen 4)...
node "%~dp0bin\opencode-tui.cjs"
pause
goto MENU
:QWENAUTH
echo.
echo ========================================
echo QWEN AUTHENTICATION
echo ========================================
echo.
echo Starting Qwen authentication flow...
echo.
node "%~dp0bin\auth.js"
if %errorlevel% equ 0 (
echo.
echo [OK] Authentication complete!
) else (
echo.
echo [INFO] Authentication may have been cancelled or failed.
echo You can try again or use the TUI's /auth command.
)
pause
goto MENU
:REPAIR
echo.
echo Running Smart Repair...
node bin\smart-repair.mjs
pause
goto MENU
:UPDATE
echo.
echo Checking for updates...
git pull 2>nul
if %errorlevel% equ 0 (
echo [OK] Repository updated!
echo Please restart the launcher.
) else (
echo [INFO] Git not available or not a git repository.
echo Visit https://github.com/your-repo for manual updates.
)
pause
goto MENU
:EXIT
echo.
echo Goodbye!
exit /b 0