Files
APAW/agent-evolution/docker-run.bat
¨NW¨ 15a7b4b7a4 feat: add Agent Evolution Dashboard
- Create agent-evolution/ directory with standalone dashboard
- Add interactive HTML dashboard with agent/model matrix
- Add heatmap view for agent-model compatibility scores
- Add recommendations tab with optimization suggestions
- Add Gitea integration preparation (history timeline)
- Add Docker configuration for deployment
- Add build scripts for standalone HTML generation
- Add sync scripts for agent data synchronization
- Add milestone and issues documentation
- Add skills and rules for evolution sync
- Update AGENTS.md with dashboard documentation
- Update package.json with evolution scripts

Features:
- 28 agents with model assignments and fit scores
- 8 models with benchmarks (SWE-bench, RULER, Terminal)
- 11 recommendations for model optimization
- History timeline with agent changes
- Interactive modal windows for model details
- Filter and search functionality
- Russian language interface
- Works offline (file://) with embedded data

Docker:
- Dockerfile for standalone deployment
- docker-compose.evolution.yml
- docker-run.sh/docker-run.bat scripts

NPM scripts:
- sync:evolution - sync and build dashboard
- evolution:open - open in browser
- evolution:dashboard - start dev server

Status: PAUSED - foundation complete, Gitea integration pending
2026-04-05 19:58:59 +01:00

197 lines
4.9 KiB
Batchfile

@echo off
REM Agent Evolution Dashboard - Docker Management Script (Windows)
setlocal enabledelayedexpansion
set IMAGE_NAME=apaw-evolution
set CONTAINER_NAME=apaw-evolution-dashboard
set PORT=3001
set DATA_DIR=.\agent-evolution\data
REM Colors (limited in Windows CMD)
set RED=[91m
set GREEN=[92m
set YELLOW=[93m
set NC=[0m
REM Main logic
if "%1"=="" goto help
if "%1"=="build" goto build
if "%1"=="run" goto run
if "%1"=="stop" goto stop
if "%1"=="restart" goto restart
if "%1"=="logs" goto logs
if "%1"=="open" goto open
if "%1"=="sync" goto sync
if "%1"=="status" goto status
if "%1"=="clean" goto clean
if "%1"=="dev" goto dev
if "%1"=="help" goto help
goto unknown
:log_info
echo %GREEN%[INFO]%NC% %*
goto :eof
:log_warn
echo %YELLOW%[WARN]%NC% %*
goto :eof
:log_error
echo %RED%[ERROR]%NC% %*
goto :eof
:build
call :log_info Building Docker image...
docker build -t %IMAGE_NAME%:latest -f agent-evolution/Dockerfile --target production .
if errorlevel 1 (
call :log_error Build failed
exit /b 1
)
call :log_info Build complete: %IMAGE_NAME%:latest
goto :eof
:run
REM Check if already running
docker ps -q --filter "name=%CONTAINER_NAME%" 2>nul | findstr /r . >nul
if not errorlevel 1 (
call :log_warn Container %CONTAINER_NAME% is already running
call :log_info Use 'docker-run.bat restart' to restart it
exit /b 0
)
REM Remove stopped container
docker ps -aq --filter "name=%CONTAINER_NAME%" 2>nul | findstr /r . >nul
if not errorlevel 1 (
call :log_info Removing stopped container...
docker rm %CONTAINER_NAME% >nul 2>nul
)
call :log_info Starting container...
docker run -d ^
--name %CONTAINER_NAME% ^
-p %PORT%:3001 ^
-v %cd%/%DATA_DIR%:/app/data:ro ^
-v %cd%/.kilo/agents:/app/kilo/agents:ro ^
-v %cd%/.kilo/capability-index.yaml:/app/kilo/capability-index.yaml:ro ^
-v %cd%/.kilo/kilo.jsonc:/app/kilo/kilo.jsonc:ro ^
--restart unless-stopped ^
%IMAGE_NAME%:latest
if errorlevel 1 (
call :log_error Failed to start container
exit /b 1
)
call :log_info Container started: %CONTAINER_NAME%
call :log_info Dashboard available at: http://localhost:%PORT%
goto :eof
:stop
call :log_info Stopping container...
docker stop %CONTAINER_NAME% >nul 2>nul
docker rm %CONTAINER_NAME% >nul 2>nul
call :log_info Container stopped
goto :eof
:restart
call :stop
call :build
call :run
goto :eof
:logs
docker logs -f %CONTAINER_NAME%
goto :eof
:open
set URL=http://localhost:%PORT%
call :log_info Opening dashboard: %URL%
start %URL%
goto :eof
:sync
call :log_info Syncing evolution data...
where bun >nul 2>nul
if not errorlevel 1 (
bun run agent-evolution/scripts/sync-agent-history.ts
) else (
where npx >nul 2>nul
if not errorlevel 1 (
npx tsx agent-evolution/scripts/sync-agent-history.ts
) else (
call :log_error Node.js or Bun required for sync
exit /b 1
)
)
call :log_info Sync complete
goto :eof
:status
docker ps -q --filter "name=%CONTAINER_NAME%" 2>nul | findstr /r . >nul
if not errorlevel 1 (
call :log_info Container status: %GREEN%RUNNING%NC%
call :log_info URL: http://localhost:%PORT%
REM Health check
for /f "tokens=*" %%i in ('docker inspect --format="{{.State.Health.Status}}" %CONTAINER_NAME% 2^>nul') do set HEALTH=%%i
call :log_info Health: !HEALTH!
REM Started time
for /f "tokens=*" %%i in ('docker inspect --format="{{.State.StartedAt}}" %CONTAINER_NAME% 2^>nul') do set STARTED=%%i
if defined STARTED call :log_info Started: !STARTED!
) else (
docker ps -aq --filter "name=%CONTAINER_NAME%" 2>nul | findstr /r . >nul
if not errorlevel 1 (
call :log_info Container status: %YELLOW%STOPPED%NC%
) else (
call :log_info Container status: %RED%NOT CREATED%NC%
)
)
goto :eof
:clean
call :log_info Cleaning up...
call :stop >nul 2>nul
docker rmi %IMAGE_NAME%:latest >nul 2>nul
call :log_info Cleanup complete
goto :eof
:dev
call :log_info Starting development mode...
docker build -t %IMAGE_NAME%:dev -f agent-evolution/Dockerfile --target development .
if errorlevel 1 (
call :log_error Build failed
exit /b 1
)
docker run --rm ^
--name %CONTAINER_NAME%-dev ^
-p %PORT%:3001 ^
-v %cd%/%DATA_DIR%:/app/data ^
-v %cd%/agent-evolution/index.html:/app/index.html ^
%IMAGE_NAME%:dev
goto :eof
:help
echo Agent Evolution Dashboard - Docker Management (Windows)
echo.
echo Usage: %~nx0 ^<command^>
echo.
echo Commands:
echo build Build Docker image
echo run Run container
echo stop Stop container
echo restart Restart container (build + run)
echo logs View container logs
echo open Open dashboard in browser
echo sync Sync evolution data
echo status Show container status
echo clean Remove container and image
echo dev Run in development mode (with hot reload)
echo help Show this help message
goto :eof
:unknown
call :log_error Unknown command: %1
goto help
endlocal