Operator-center frontend plus a local backend that runs configurable multi-lane AI panels and streams the live reasoning thread into the UI.
src/: React + Vite operator UIserver/: TypeScript Node backend with SSE run streamingbattleagents.config.json: template, provider, and judge catalog
npm installnpm run dev:clientnpm run dev:servernpm run buildnpm run server:start
/: inbox / run launcher/session/:runId: live operator center for one backend run/session/:runId/agents: template layout sheet for the current run
Templates are defined in battleagents.config.json and displayed in the UI. The current repo ships:
balancedship-safefast-answerweb-research
Each template controls:
- lane lineup
- provider per lane
- model per lane
- judge model
- optional OpenAI web-search support
Live mode reads provider credentials from .env.local if that file exists. The repo now includes a placeholder .env.local with:
OPENAI_API_KEYANTHROPIC_API_KEYOLLAMA_API_KEY
Backend scripts use node --env-file-if-exists=.env.local, so npm run dev:server and npm run server:start pick those values up automatically.
If a configured token is missing, the backend degrades that lane instead of crashing the run. Demo mode works without provider keys.
- Start the backend with
npm run dev:server - Start the frontend with
npm run dev:client - Open
/ - Choose a template and either
demoorlive - Start a run and open the operator center
npm run build- Compiled backend smoke-tested with
GET /health