Skip to content
Merged
Show file tree
Hide file tree
Changes from 16 commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
dc011db
feat: remove the eval CLI
mikasenghaas Sep 2, 2026
061d384
docs: point evaluation at prime-rl's uv run eval
mikasenghaas Sep 2, 2026
08a6681
feat: drop the platform sample format
mikasenghaas Sep 2, 2026
eb5f6c9
Merge branch 'main' into feat/remove-eval-cli
mikasenghaas Sep 14, 2026
40b00b2
stream served episodes turn by turn
mikasenghaas Sep 15, 2026
c0ab937
hand the applied delta to EnvClient.run's on_update
mikasenghaas Sep 15, 2026
b963fb2
EnvClient.run hands each delta to on_delta
mikasenghaas Sep 15, 2026
f321f89
dedup replayed OpenRouter reasoning details onto their node
mikasenghaas Sep 15, 2026
d8fdf25
run the taskset smoke evals through the e2e runner
mikasenghaas Sep 15, 2026
62d2a36
Merge branch 'main' into feat/remove-eval-cli
mikasenghaas Sep 15, 2026
77fb1be
Merge remote-tracking branch 'origin/main' into feat/remove-eval-cli
mikasenghaas Sep 15, 2026
f9aeae4
preview a request's uncommitted messages on the delta stream
mikasenghaas Sep 15, 2026
6c5133a
serve deltas: a cursor moves only once its delta is on the wire
mikasenghaas Sep 15, 2026
29856b9
remove the eval CLI
mikasenghaas Sep 15, 2026
e7a7b0f
drop the reasoning-details hash workaround
mikasenghaas Sep 15, 2026
1e94977
Merge branch 'feat/drop-eval-cli' into feat/remove-eval-cli
mikasenghaas Sep 15, 2026
067fe68
scaffold README points eval at prime-rl
mikasenghaas Sep 15, 2026
6a32575
Merge branch 'feat/drop-eval-cli' into feat/remove-eval-cli
mikasenghaas Sep 15, 2026
fe771d8
episode assembly copies the nodes it keeps
mikasenghaas Sep 15, 2026
1e5fe56
keep the eval CLI
mikasenghaas Sep 15, 2026
9871c52
eval CLI runs in-process only
mikasenghaas Sep 15, 2026
600ebc8
eval CLI yields to prime-rl's and points at it
mikasenghaas Sep 15, 2026
f451f7b
ruff: sort imports, dict literal
mikasenghaas Sep 15, 2026
47cbbae
eval CLI is `vf-eval`
mikasenghaas Sep 16, 2026
f454a51
AGENTS.md: the eval CLI is vf-eval
mikasenghaas Sep 16, 2026
02a6eff
prefix every console script with vf-
mikasenghaas Sep 16, 2026
55500a3
preview per request in flight
mikasenghaas Sep 16, 2026
73d602d
preview keys by request identity
mikasenghaas Sep 16, 2026
fc7e45b
hint: vf-eval will be deprecated, move to prime-rl's eval
mikasenghaas Sep 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
## Running code

- **Always use uv**: run code and commands with `uv run`, never raw `python`. Make sure `uv` is installed ([docs](https://docs.astral.sh/uv/getting-started/installation/)).
- **Scaffold environments**: create a new taskset/environment with `uv run init <name>` (`uv run init -h` lists options like `-T`/`-H`), and run evals with `uv run eval <taskset>`.
- **Scaffold environments**: create a new taskset/environment with `uv run init <name>` (`uv run init -h` lists options like `-T`/`-H`), validate them model-free with `uv run validate <taskset>`, and evaluate them with prime-rl's `uv run eval <taskset>`.
- **Validate TOML first**: validate config `.toml` files before running them.
- **Don't add dependencies**: never add dependencies or optional extras to the top-level `pyproject.toml`.

Expand All @@ -20,7 +20,7 @@

## Skills

- **Use bundled skills first**: the skills in `skills/` cover the core workflows — `create-environments` (build or migrate a v1 taskset/environment/harness), `evaluate-environments` (configure and run evals), `release` (publish stable versions), and `brainstorm` (ideation and research planning). Reach for them before doing the work by hand.
- **Use bundled skills first**: the skills in `skills/` cover the core workflows — `create-environments` (build or migrate a v1 taskset/environment/harness), `release` (publish stable versions), and `brainstorm` (ideation and research planning). Reach for them before doing the work by hand.

## Testing

Expand Down
16 changes: 0 additions & 16 deletions configs/agentic_judge.toml

This file was deleted.

16 changes: 0 additions & 16 deletions configs/alphabet_sort.toml

This file was deleted.

10 changes: 0 additions & 10 deletions configs/code_golf.toml

This file was deleted.

7 changes: 0 additions & 7 deletions configs/deepwiki.toml

This file was deleted.

7 changes: 0 additions & 7 deletions configs/glossary.toml

This file was deleted.

8 changes: 0 additions & 8 deletions configs/gsm8k.toml

This file was deleted.

19 changes: 0 additions & 19 deletions configs/gsm8k_rlm.toml

This file was deleted.

15 changes: 0 additions & 15 deletions configs/harbor.toml

This file was deleted.

18 changes: 0 additions & 18 deletions configs/textarena.toml

This file was deleted.

7 changes: 0 additions & 7 deletions configs/wiki_search.toml

This file was deleted.

11 changes: 0 additions & 11 deletions configs/wiki_search_compact.toml

This file was deleted.

14 changes: 0 additions & 14 deletions configs/wordle.toml

This file was deleted.

1 change: 0 additions & 1 deletion docs/mint.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
"v1/getting_started",
"v1/architecture",
"v1/tasksets",
"v1/evaluation",
"v1/harnesses",
"v1/env",
"v1/harbor",
Expand Down
80 changes: 0 additions & 80 deletions docs/v1/evaluation.md

This file was deleted.

4 changes: 2 additions & 2 deletions docs/v1/gepa.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,10 @@ Validate the config by using `uv run gepa @ config.toml --dry-run`. To run GEPA,

## Output

Results go under `outputs/<env>--<model>--<harness>/<uuid>/`, matching `eval`.
Results go under `outputs/<env>--<model>--<harness>--<short-id>/`.
The best system prompt is printed when the run finishes and written to `best_system_prompt.txt` in that folder.

Hand it back to eval or training via the config-layer taskset system prompt:
Hand it back to evaluation or training via the config-layer taskset system prompt (prime-rl's `uv run eval`, or an `[[orchestrator.train.source]]`):

```bash
uv run eval reverse-text \
Expand Down
2 changes: 1 addition & 1 deletion docs/v1/getting_started.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ cd verifiers
uv sync
```

You can now run tasksets directly, e.g. `uv run eval <taskset-id>`, and scaffold new ones with `uv run init <name>`.
Scaffold new tasksets with `uv run init <name>` and check them model-free with `uv run validate <taskset-id>`. Evaluations run through prime-rl: `uv run eval <taskset-id>` there (see prime-rl's `docs/training.md`).

## Skills

Expand Down
1 change: 0 additions & 1 deletion docs/v1/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ A trace records the message graph, rewards, metrics, errors, and one per-call re
- [Architecture](architecture.md) — How verifiers works behind-the-scenes
- [Tasksets](tasksets.md) — How to create tasksets
- [Harbor Tasksets](harbor.md) — How to create Harbor-based tasksets
- [Evaluation](evaluation.md) — How to evaluate tasksets
- [Harnesses](harnesses.md) — How to build custom harnesses
- [Agent](agent.md) — How to run standalone agents
- [Env](env.md) — How to build multi-agent environments
4 changes: 2 additions & 2 deletions docs/v1/tasksets.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ A task's `hash` identifies its exact serialized data. Its `key` provides stable

## Lazy and infinite tasksets

`load()` may be a generator instead of returning a list: yield each task as it's built. Consumers iterate the taskset lazily (`Taskset.head` pulls only what a run needs — `eval -n 5` builds 5 tasks, not the whole set) — so a generator pays off whenever building a task is expensive.
`load()` may be a generator instead of returning a list: yield each task as it's built. Consumers iterate the taskset lazily (`Taskset.head` pulls only what a run needs — an eval of 5 tasks builds 5 tasks, not the whole set) — so a generator pays off whenever building a task is expensive.

A procedural taskset can keep yielding forever. Declare `INFINITE = True` so consumers know the stream never ends — infinity is inherent to the taskset, not a config knob; how many tasks a run takes is the run's choice (`-n`), not the taskset's:

Expand All @@ -136,7 +136,7 @@ class AdditionTaskset(vf.Taskset[AdditionTask, vf.TasksetConfig]):
)
```

Two rules follow from infinity: a run over an infinite taskset must be bounded with `num_tasks` (`-n` on the CLI — omitting it is an error), and `shuffle` is an error: there is no whole set to sample from — bound the stream first (`taskset.head(n).shuffle()`). The generator runs once, client-side (the eval entrypoint or the prime-rl orchestrator pulls tasks off it and ships each task's data to the env server), so nothing needs to re-produce the same sequence across processes; keep `load()` deterministic only if you want `--resume` to regenerate the same first `n` tasks (see `alphabet_sort`, `color_codeword`, or the built-in `textarena` taskset).
Two rules follow from infinity: a run over an infinite taskset must be bounded (prime-rl's `num_examples` / `-n` — omitting it is an error), and `shuffle` is an error: there is no whole set to sample from — bound the stream first (`taskset.head(n).shuffle()`). The generator runs once, client-side (the prime-rl orchestrator or evals process pulls tasks off it and ships each task's data to the env server), so nothing needs to re-produce the same sequence across processes; keep `load()` deterministic only if you want a resumed run to regenerate the same first `n` tasks (see `alphabet_sort`, `color_codeword`, or the built-in `textarena` taskset).

## Adding Tools

Expand Down
3 changes: 0 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ dependencies = [
"openai>=2.54.0,<3.0.0",
"prime-tunnel>=0.1.8",
"prime-sandboxes>=0.2.39",
"prime-runs>=0.1.2",
"pydantic>=2.12.3",
"rich>=11.0.0",
"tenacity>=8.5.0",
Expand Down Expand Up @@ -147,12 +146,10 @@ ty = "2026-07-28T00:00:00Z"
# PrimeIntellect-published on PyPI (trusted publisher)
prime-tunnel = false
prime-sandboxes = false
prime-runs = false
prime-pydantic-config = false
renderers = false

[project.scripts]
eval = "verifiers.v1.cli.eval.main:main"
validate = "verifiers.v1.cli.validate:main"
debug = "verifiers.v1.cli.debug:main"
replay = "verifiers.v1.cli.replay:main"
Expand Down
Loading