@echo off
REM Manual deployment script for recall endpoint fix
REM Uses plink/pscp with guru username

echo ============================================================
echo ClaudeTools Recall Endpoint Deployment
echo ============================================================
echo.

echo [Step 1] Copying file to RMM server...
pscp D:\ClaudeTools\api\routers\conversation_contexts.py guru@172.16.3.30:/tmp/conversation_contexts.py
if errorlevel 1 (
    echo [ERROR] File copy failed
    pause
    exit /b 1
)
echo [OK] File copied successfully
echo.

echo [Step 2] Checking file was copied...
plink guru@172.16.3.30 "ls -lh /tmp/conversation_contexts.py"
echo.

echo [Step 3] Moving file to production location...
plink guru@172.16.3.30 "sudo mv /tmp/conversation_contexts.py /opt/claudetools/api/routers/conversation_contexts.py"
if errorlevel 1 (
    echo [ERROR] File move failed
    pause
    exit /b 1
)
echo [OK] File moved
echo.

echo [Step 4] Setting correct ownership...
plink guru@172.16.3.30 "sudo chown claudetools:claudetools /opt/claudetools/api/routers/conversation_contexts.py"
echo [OK] Ownership set
echo.

echo [Step 5] Verifying file has new code...
plink guru@172.16.3.30 "grep -c 'search_term.*Query' /opt/claudetools/api/routers/conversation_contexts.py"
echo (Should show 1 or more matches if update successful)
echo.

echo [Step 6] Restarting API service...
plink guru@172.16.3.30 "sudo systemctl restart claudetools-api"
echo [OK] Service restart initiated
echo.

echo [Step 7] Waiting for service to start...
timeout /t 5 /nobreak >nul
echo.

echo [Step 8] Checking service status...
plink guru@172.16.3.30 "sudo systemctl status claudetools-api --no-pager | head -15"
echo.

echo ============================================================
echo Testing API endpoint...
echo ============================================================
echo.

python -c "import requests, json; jwt='eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJpbXBvcnQtc2NyaXB0Iiwic2NvcGVzIjpbImFkbWluIiwiaW1wb3J0Il0sImV4cCI6MTc3MTI3NTEyOX0.-DJF50tq0MaNwVQBdO7cGYNuO5pQuXte-tTj5DpHi2U'; r=requests.get('http://172.16.3.30:8001/api/conversation-contexts/recall', headers={'Authorization': f'Bearer {jwt}'}, params={'search_term': 'dataforth', 'limit': 2}); data=r.json(); print(f'Status: {r.status_code}'); print(f'Keys: {list(data.keys())}'); print('[SUCCESS]' if 'contexts' in data else '[FAILED - Still old format]'); print(f'Contexts: {len(data.get(\"contexts\", []))}' if 'contexts' in data else '')"

echo.
echo ============================================================
echo Deployment Complete
echo ============================================================
pause
