openvibers/openvibe.bench README.md
README.md
| 1 | # OpenVibe.Bench |
| 2 | |
| 3 | The shared AI benchmark and comparison engine for every OpenVibe room (plan 2026-10-28 §4.12). |
| 4 | |
| 5 | **Live site:** https://bench.openvibe.services · **API docs:** https://openvibe.services · **For AI:** https://bench.openvibe.services/llms.txt |
| 6 | **Run it:** `npm ci && npm run dev` (Node 22 or newer) · **Tests:** `npm test` |
| 7 | |
| 8 | Bench is the comparative-evaluation authority. AI stays the run authority, Report the analytics authority, Route the learner, and each room keeps its own pages. Bench owns kinds, tasks, pinned rounds, entries, judgements, ratings, boards, the open dataset and private evals. |
| 9 | |
| 10 | **The public pages moved to OpenVibe.Report's AI section (2026-11-08):** `https://openvibe.report/ai`, `/ai/<benchmark>` and `/ai/models/<model>`. This origin's old HTML pages answer `301` there; its API, MCP endpoint, render origin, badges and embeds stay here. The owner's pages stay here too: `/benchmarks/mine` (the default audience, "apply to all", and each benchmark's Share button), `/benchmarks/new`, an unlisted share link (`/b/<token>`), and the noindex task and run pages. A benchmark's own page redirects only when it is public and the viewer is not its owner: a private benchmark, a named reader and an unlisted link have no Report page. |
| 11 | |
| 12 | - Service id: `bench` |
| 13 | - Port: `5230` |
| 14 | - Public origin: `https://bench.openvibe.services` |
| 15 | - Database: `ov_bench` |
| 16 | - Cookies: `bench_at`, `bench_rt`, `bench_oauth` |
| 17 | |
| 18 | ## Run |
| 19 | |
| 20 | ``` |
| 21 | npm install |
| 22 | npm start |
| 23 | ``` |
| 24 | |
| 25 | Without `DATABASE_URL` the service runs an embedded PGlite database in `data/pglite` (development only). Production uses PostgreSQL with `DATABASE_DIRECT_URL` for migrations. |
| 26 | |
| 27 | ## Test |
| 28 | |
| 29 | ``` |
| 30 | OV_ALLOW_SUITE=1 npm test |
| 31 | ``` |
| 32 | |
| 33 | Tests use a temporary PGlite database, an in-process mock Network and a fake AI; none needs the network or a paid API. |
| 34 | |
| 35 | ## API |
| 36 | |
| 37 | JSON under `/api/v1`; errors are `application/problem+json`. The full list is in `/openapi.json` and Report's `/ai/method`. The MCP endpoint is `POST /mcp`. |
| 38 | |
| 39 | The public reads Report's AI pages use are `GET /api/v1/overview`, `GET /api/v1/benchmarks`, `GET /api/v1/rankings`, `GET /api/v1/runs`, `GET /api/v1/models/:model/summary` and `GET /api/v1/runs/:id`; the long list is at `/openapi.json` and in Report's method page. |
| 40 | |
| 41 | <!-- versions:start --> |
| 42 | - openvibe-contracts: v0.422.0 |
| 43 | - openvibe-sdk: v0.161.0 |
| 44 | - openvibe-shared: v4.241.0 |
| 45 | <!-- versions:end --> |
| 46 |