@leostera/evalkit 0.3.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.
Files changed (39) hide show
  1. package/CHANGELOG.md +81 -0
  2. package/README.md +8 -7
  3. package/dist/cli.mjs +473 -72
  4. package/dist/cli.mjs.map +1 -1
  5. package/dist/dashboard/assets/index-D9NtA46z.css +2 -0
  6. package/dist/dashboard/assets/{index-CVd_Np_w.js → index-DrBwLKJD.js} +1 -1
  7. package/dist/dashboard/index.html +2 -2
  8. package/dist/files-C-U0-PWW.mjs +26 -0
  9. package/dist/files-C-U0-PWW.mjs.map +1 -0
  10. package/dist/{index-M5eRlMfd.d.mts → index-U6TUTBf7.d.mts} +87 -9
  11. package/dist/index-U6TUTBf7.d.mts.map +1 -0
  12. package/dist/index-db-HdZXelOS.d.mts +142 -0
  13. package/dist/index-db-HdZXelOS.d.mts.map +1 -0
  14. package/dist/index-db-vbqEGFaU.mjs +548 -0
  15. package/dist/index-db-vbqEGFaU.mjs.map +1 -0
  16. package/dist/index.d.mts +2 -2
  17. package/dist/index.mjs +2 -2
  18. package/dist/index.mjs.map +1 -1
  19. package/dist/runner.d.mts +21 -3
  20. package/dist/runner.d.mts.map +1 -1
  21. package/dist/runner.mjs +1 -1
  22. package/dist/share-worker.d.mts +51 -0
  23. package/dist/share-worker.d.mts.map +1 -0
  24. package/dist/share-worker.mjs +73 -0
  25. package/dist/share-worker.mjs.map +1 -0
  26. package/dist/share.d.mts +116 -0
  27. package/dist/share.d.mts.map +1 -0
  28. package/dist/share.mjs +4 -0
  29. package/dist/{src-DrwwgaPn.mjs → src-ButXPY8P.mjs} +20 -5
  30. package/dist/src-ButXPY8P.mjs.map +1 -0
  31. package/dist/{src-DluldGKn.mjs → src-DoPs9Yug.mjs} +11 -7
  32. package/dist/src-DoPs9Yug.mjs.map +1 -0
  33. package/dist/src-DzZueFn3.mjs +98 -0
  34. package/dist/src-DzZueFn3.mjs.map +1 -0
  35. package/package.json +10 -1
  36. package/dist/dashboard/assets/index-CMr4aulR.css +0 -2
  37. package/dist/index-M5eRlMfd.d.mts.map +0 -1
  38. package/dist/src-DluldGKn.mjs.map +0 -1
  39. 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 # type-check the project
21
- bun run evals # both configured styles
22
- bun run matrix:plan # inspect the matrix without executing it
23
- bun run dashboard # in a second terminal
24
- bun run dashboard:build # optional read-only snapshot to share
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 evals
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 evals` exercises both matrix cells; `bun run matrix` runs the named matrix. 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
+ 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