@echo off
:: ============================================================
:: transparent-encrypt-file-mcp MCP Launcher (Portable)
:: Auto-detects Node.js, fixes the working directory, launches index.js.
::
:: Deploy: copy this file to  start-portable.bat  (same folder as index.js)
:: Other users only need to:
::   1. Copy this folder to their machine
::   2. Run setup-once.bat   (installs npm dependencies)
::   3. Point mcp.json "args" at THIS .bat file
::
:: NOTE ON cmd.exe: this launcher is itself started by cmd /c, so it does NOT
:: "avoid cmd.exe". If the DLP driver blocks cmd.exe outright, register the
:: MCP server as { "command": "<abs node.exe>", "args": ["<abs index.js>"] }
:: instead (see SKILL.md section "MCP configuration").
:: ============================================================

setlocal EnableExtensions

cd /d "%~dp0"

:: ---- Guard: server file must be materialized next to this launcher ----
if not exist "%~dp0index.js" (
    echo [ERROR] index.js not found next to this launcher.
    echo         Copy references\server_template.js to index.js first ^(see README - Deploy^).
    exit /b 1
)

:: ---- 1) WorkBuddy managed Node: scan versions dir, newest first ----
set "NODE_EXE="
for /f "delims=" %%d in ('dir /b /ad /o-n "%USERPROFILE%\.workbuddy\binaries\node\versions" 2^>nul') do (
    if not defined NODE_EXE if exist "%USERPROFILE%\.workbuddy\binaries\node\versions\%%d\node.exe" set "NODE_EXE=%USERPROFILE%\.workbuddy\binaries\node\versions\%%d\node.exe"
)

:: ---- 2) Node on PATH ----
if not defined NODE_EXE for /f "delims=" %%i in ('where node.exe 2^>nul') do (
    if not defined NODE_EXE set "NODE_EXE=%%i"
)

:: ---- 3) Common install locations ----
if not defined NODE_EXE if exist "D:\Node.js\node.exe" set "NODE_EXE=D:\Node.js\node.exe"
if not defined NODE_EXE if exist "%ProgramFiles%\nodejs\node.exe" set "NODE_EXE=%ProgramFiles%\nodejs\node.exe"
if not defined NODE_EXE if exist "%LOCALAPPDATA%\Programs\node\node.exe" set "NODE_EXE=%LOCALAPPDATA%\Programs\node\node.exe"

if not defined NODE_EXE (
    echo [ERROR] Node.js 18+ not found.
    echo         Install Node.js, add it to PATH, or set NODE_EXE manually in this file.
    exit /b 1
)

:: ---- Node major version guard (server requires >= 18) ----
set "NODE_MAJOR=0"
for /f "tokens=1 delims=." %%v in ('"%NODE_EXE%" -v 2^>nul') do set "NODE_MAJOR=%%v"
set "NODE_MAJOR=%NODE_MAJOR:v=%"
if %NODE_MAJOR% LSS 18 (
    echo [ERROR] Node.js 18+ required. Found:
    "%NODE_EXE%" -v
    exit /b 1
)

"%NODE_EXE%" "%~dp0index.js"
endlocal
