@leostera/evalkit 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +81 -0
- package/README.md +8 -7
- package/dist/cli.mjs +909 -149
- package/dist/cli.mjs.map +1 -1
- package/dist/dashboard/assets/index-D9NtA46z.css +2 -0
- package/dist/dashboard/assets/index-DrBwLKJD.js +30 -0
- package/dist/dashboard/index.html +2 -2
- package/dist/files-C-U0-PWW.mjs +26 -0
- package/dist/files-C-U0-PWW.mjs.map +1 -0
- package/dist/{index-M5eRlMfd.d.mts → index-U6TUTBf7.d.mts} +87 -9
- package/dist/index-U6TUTBf7.d.mts.map +1 -0
- package/dist/index-db-HdZXelOS.d.mts +142 -0
- package/dist/index-db-HdZXelOS.d.mts.map +1 -0
- package/dist/index-db-vbqEGFaU.mjs +548 -0
- package/dist/index-db-vbqEGFaU.mjs.map +1 -0
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +2 -2
- package/dist/index.mjs.map +1 -1
- package/dist/runner.d.mts +21 -3
- package/dist/runner.d.mts.map +1 -1
- package/dist/runner.mjs +1 -1
- package/dist/share-worker.d.mts +51 -0
- package/dist/share-worker.d.mts.map +1 -0
- package/dist/share-worker.mjs +73 -0
- package/dist/share-worker.mjs.map +1 -0
- package/dist/share.d.mts +116 -0
- package/dist/share.d.mts.map +1 -0
- package/dist/share.mjs +4 -0
- package/dist/{src-DrwwgaPn.mjs → src-ButXPY8P.mjs} +20 -5
- package/dist/src-ButXPY8P.mjs.map +1 -0
- package/dist/{src-DluldGKn.mjs → src-DoPs9Yug.mjs} +11 -7
- package/dist/src-DoPs9Yug.mjs.map +1 -0
- package/dist/src-DzZueFn3.mjs +98 -0
- package/dist/src-DzZueFn3.mjs.map +1 -0
- package/package.json +10 -1
- package/dist/dashboard/assets/index-Z6raM-uW.js +0 -30
- package/dist/dashboard/assets/index-fUDsY6z-.css +0 -2
- package/dist/index-M5eRlMfd.d.mts.map +0 -1
- package/dist/src-DluldGKn.mjs.map +0 -1
- package/dist/src-DrwwgaPn.mjs.map +0 -1
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to `@leostera/evalkit`. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and the project uses [Semantic Versioning](https://semver.org/). Before 1.0, a minor version may include breaking changes; they are marked **Breaking**.
|
|
4
|
+
|
|
5
|
+
## [0.4.0] - 2026-10-28
|
|
6
|
+
|
|
7
|
+
Commit provenance and team sharing ([RFD0006](docs/rfds/RFD0006-commit-provenance-and-share-server.md)).
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- Every run records where it came from in `manifest.json` (report schema version 4): the repository, the eval project's path inside it, the commit, the branch, whether there were uncommitted changes, and the CI job. It is read from `EVALKIT_SOURCE_*` variables, then GitLab or GitHub CI, then git. `evalkit run` prints it.
|
|
12
|
+
- Each run saves the eval catalog it ran with as `catalog.json`.
|
|
13
|
+
- `evalkit share` uploads the current commit's finished runs to your team's share server and prints their URL. Runs made with uncommitted changes need `--allow-dirty` and are labelled. `--all` includes other commits, and `--no-workspace` leaves out candidate file contents. Uploads retry on server errors, and uploading a run twice does nothing.
|
|
14
|
+
- `share: { url }` in `evalkit.config.ts`, or `EVALKIT_SHARE_URL`, names the server.
|
|
15
|
+
- The share server: a small Worker serving a JSON API and the dashboard. Files are stored in R2 and an index of repositories, commits and runs in a SQLite Durable Object, which `POST /api/v1/reindex` can rebuild. It is exported as `@leostera/evalkit/share/worker`, a `wrangler.jsonc` template is in the docs, and it logs structured `share.*` events. It has no authentication: run it on a private network.
|
|
16
|
+
- `evalkit share serve` runs the same server locally with Bun, storing everything in `_evalkit-share/`.
|
|
17
|
+
- The dashboard on a share server lists repositories at `/`, opens `/<repo>` at its latest commit, resolves branches and short SHAs to full commits, and has a version picker to switch between commits.
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- **Breaking:** generated projects no longer add script aliases (`evals`, `matrix`, `matrix:plan`, `dashboard`, `dashboard:build`). Run every command as `bun run evalkit <command>`, for example `bun run evalkit run` or `bun run evalkit dev`. Existing projects keep their scripts. The example projects dropped their aliases too.
|
|
22
|
+
- `evalkit build` and `evalkit share` use the same per-run snapshot writer.
|
|
23
|
+
- Generated projects ignore `_evalkit-share/`.
|
|
24
|
+
|
|
25
|
+
## [0.3.0] - 2026-10-28
|
|
26
|
+
|
|
27
|
+
### Added
|
|
28
|
+
|
|
29
|
+
- `evalkit tidy` archives runs of evals that are no longer in the project, including evals that only exist in a matrix, by writing `archived.json`. It restores runs when their eval comes back and never deletes reports. Archived runs are hidden in the dashboard ("Show archived") and left out of `evalkit build`.
|
|
30
|
+
- `evalkit build` asks whether to run the evals first, and runs them without asking when there are no results. `--run` and `--no-run` skip the question. Without a terminal, it keeps existing results.
|
|
31
|
+
- `evalkit build` and `evalkit dev` show timed steps, live progress, output size, and a log of each run launched from the dashboard. `EVALKIT_LOG_LEVEL` restores the runner's info logs.
|
|
32
|
+
- Dashboard: suite and eval rows link to their agent and to their runs. The runs filter has a search and a button to clear every filter.
|
|
33
|
+
|
|
34
|
+
### Changed
|
|
35
|
+
|
|
36
|
+
- **Breaking:** static snapshots use clean path URLs instead of hash routing: one page per route with a relative `<base href>`, so reloads work at any mount path without rewrite rules.
|
|
37
|
+
- Reports from older EvalKit versions (schema version below 2) are skipped and counted instead of breaking the run list.
|
|
38
|
+
- A busy `evalkit dev` port gives an actionable error.
|
|
39
|
+
|
|
40
|
+
## [0.2.0] - 2026-10-28
|
|
41
|
+
|
|
42
|
+
### Added
|
|
43
|
+
|
|
44
|
+
- `evalkit dev` starts the local dashboard and run launcher.
|
|
45
|
+
- `evalkit build [--out dir]` writes a read-only static dashboard snapshot to `_evalkit-dashboard/`. It holds the UI, report JSON and candidate files, never evaluator workspaces, and it refuses to overwrite a directory it didn't create.
|
|
46
|
+
- The dashboard's Vite dev server proxies `/v1` to a running `evalkit dev`, for working on the UI.
|
|
47
|
+
|
|
48
|
+
### Changed
|
|
49
|
+
|
|
50
|
+
- **Breaking:** one `evalkit run` command: `evalkit run [ids]`, `--suite <id>` or `--matrix <id>`. It replaces `run-evals`, `run-suite` and `run-matrix`, and `evalkit dev` replaces `serve-dashboard`. The old commands were removed with no aliases.
|
|
51
|
+
- Skills and manual: corrected step kinds, judge adapters and `piAgent` tool limits, and added guidance on tool-assisted agents and baseline ablations.
|
|
52
|
+
|
|
53
|
+
## [0.1.0] - 2026-10-28
|
|
54
|
+
|
|
55
|
+
### Added
|
|
56
|
+
|
|
57
|
+
- Dashboard rebuilt on Cloudflare's Kumo components and Tailwind 4, keeping routes, deep links and URL filters. It has a collapsible sidebar, dense sortable tables, status badges that keep errored distinct from failed, and a trial panel with checkpoints, scores and events.
|
|
58
|
+
- `@evalkit/core/canonical-json` exposes canonical parameter JSON without Effect, so the browser bundle no longer includes the Effect schemas.
|
|
59
|
+
|
|
60
|
+
### Changed
|
|
61
|
+
|
|
62
|
+
- The website moved to `sites/evalkit.leostera.dev`, with a redesigned homepage.
|
|
63
|
+
- `@cloudflare` packages resolve from public npm.
|
|
64
|
+
|
|
65
|
+
## [0.0.2] - 2026-10-05
|
|
66
|
+
|
|
67
|
+
### Added
|
|
68
|
+
|
|
69
|
+
- Constrained matrix planning, with eligible cells shown in the dashboard.
|
|
70
|
+
- Historical parameter facets in the Runs workspace.
|
|
71
|
+
|
|
72
|
+
### Changed
|
|
73
|
+
|
|
74
|
+
- **Breaking:** the npm package moved to `@leostera/evalkit`. Replace the `@leostera-js/evalkit` dependency and update imports, including `/runner`. Eval definitions and local reports are unchanged.
|
|
75
|
+
- Dashboard workflow refinements.
|
|
76
|
+
|
|
77
|
+
[0.4.0]: https://github.com/leostera/evalkit/compare/5e67e72...main
|
|
78
|
+
[0.3.0]: https://github.com/leostera/evalkit/compare/38c34be...5e67e72
|
|
79
|
+
[0.2.0]: https://github.com/leostera/evalkit/compare/3f8855a...38c34be
|
|
80
|
+
[0.1.0]: https://github.com/leostera/evalkit/compare/12d5a1e...3f8855a
|
|
81
|
+
[0.0.2]: https://github.com/leostera/evalkit/compare/0016e72...12d5a1e
|
package/README.md
CHANGED
|
@@ -17,11 +17,12 @@ Create a standalone, provider-free eval project from the npm package. No model c
|
|
|
17
17
|
bunx @leostera/evalkit new ./evals
|
|
18
18
|
cd evals
|
|
19
19
|
bun install
|
|
20
|
-
bun run check
|
|
21
|
-
bun run
|
|
22
|
-
bun run matrix
|
|
23
|
-
bun run
|
|
24
|
-
bun run
|
|
20
|
+
bun run check # type-check the project
|
|
21
|
+
bun run evalkit run # both configured styles
|
|
22
|
+
bun run evalkit run --matrix styles --dry-run # inspect the matrix without executing it
|
|
23
|
+
bun run evalkit dev # browse results and launch runs
|
|
24
|
+
bun run evalkit build # optional read-only snapshot to share
|
|
25
|
+
bun run evalkit share # optional: upload this commit's results to your share server
|
|
25
26
|
```
|
|
26
27
|
|
|
27
28
|
Already have a Bun project? From its root you can instead run:
|
|
@@ -31,12 +32,12 @@ bun add @leostera/evalkit
|
|
|
31
32
|
bun run evalkit new .
|
|
32
33
|
bun install # install the generated type-checking dependencies
|
|
33
34
|
bun run check
|
|
34
|
-
bun run
|
|
35
|
+
bun run evalkit run
|
|
35
36
|
```
|
|
36
37
|
|
|
37
38
|
Migrating from the former `@leostera-js/evalkit` package? Replace that dependency with `@leostera/evalkit`, update imports (including `/runner`), then run `bun install`. Existing eval definitions and local reports do not need to be regenerated.
|
|
38
39
|
|
|
39
|
-
The generator creates `agents/`, `fixtures/`, `evals/`, and `judges/`, plus `evalkit.config.ts` with a runnable matrix and `tsconfig.json` for type-checking. Its `greeting` eval is provider-free: the agent reads a fixture, applies `context.parameters.style`, and a predicate checks the reply. `bun run
|
|
40
|
+
The generator creates `agents/`, `fixtures/`, `evals/`, and `judges/`, plus `evalkit.config.ts` with a runnable matrix and `tsconfig.json` for type-checking. Its `greeting` eval is provider-free: the agent reads a fixture, applies `context.parameters.style`, and a predicate checks the reply. `bun run evalkit run` exercises both matrix cells; `bun run evalkit run --matrix styles` runs the named matrix. Every command is `bun run evalkit <command>`; the scaffold adds no script aliases. Add another default-exported `.eval.ts` file to grow your suite—no registry required. Replace the example agent with your own adapter when ready.
|
|
40
41
|
|
|
41
42
|
In-place setup preserves existing dependencies, scripts, README, and eval files; it refuses to overwrite any of the generated paths, including an existing config. The project installs `@leostera/evalkit` from npm. For more runnable examples, see [`examples/starter`](examples/starter/) and [`examples/interleaved-scenario`](examples/interleaved-scenario/).
|
|
42
43
|
|