Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
34fe50d
docs(v1): add a verifiers.v1 README
mikasenghaas Jun 10, 2026
fb4cf49
docs(v1): frame v1 as the new version; Highlights header; drop rl extra
mikasenghaas Jun 10, 2026
ccc4794
chore: bump prime-pydantic-config to dev86 for single-dash short flags
mikasenghaas Jun 10, 2026
e71beac
docs(v1): single-dash aliases, advanced configs in quickstart, lifecy…
mikasenghaas Jun 10, 2026
49e91d8
docs(v1): restore Limits & retries; drop Installable ids; Backwards c…
mikasenghaas Jun 10, 2026
fca4110
docs(v1): note v0 is untouched (old entrypoints fully supported) in b…
mikasenghaas Jun 10, 2026
058550d
feat(v1): serve a v0 env via --id (legacy bridge), mirroring eval
mikasenghaas Jun 10, 2026
64728a4
docs(v1): tasksets/harnesses section (packages vs examples); serve v0…
mikasenghaas Jun 10, 2026
dc3eab5
chore: drop inline comment on the prime-pydantic-config pin
mikasenghaas Jun 10, 2026
8e88f1d
docs(v1): lead Highlights with composable taskset×harness + swappable…
mikasenghaas Jun 10, 2026
98a01b0
docs(v1): say packages, not plugins
mikasenghaas Jun 10, 2026
63fdc37
refactor(v1): first-class harnesses/tasksets packages with a registry
mikasenghaas Jun 10, 2026
35f18ae
fix(v1): let serve accept @ file.toml
mikasenghaas Jun 10, 2026
643e695
chore(v1): remove hello-rlm example
mikasenghaas Jun 10, 2026
4a49f9e
docs(v1): fix tools API ref, drop user-sim section, split examples table
mikasenghaas Jun 10, 2026
3b42923
refactor(v1): re-export built-ins (drop registry), rename harbor -> h…
mikasenghaas Jun 10, 2026
0fadf51
docs(v1): note the harbor CLI prerequisite for harbor-v1
mikasenghaas Jun 10, 2026
db03f33
style(v1): ruff format serve.py
mikasenghaas Jun 10, 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 configs/harbor.toml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# harbor — Terminal-Bench 2, each task run in its own declared container image (needs docker).
# harbor-v1 — Terminal-Bench 2, each task run in its own declared container image (needs docker).
# enable_bash turns on the shell tool the agent drives the terminal with.
#
# uv run eval @ configs/harbor.toml
num_tasks = 10

[taskset]
id = "harbor"
id = "harbor-v1"
dataset = "terminal-bench/terminal-bench-2"

[harness]
Expand Down
59 changes: 0 additions & 59 deletions examples/tasksets/hello_rlm_v1/hello_rlm_v1.py

This file was deleted.

14 changes: 0 additions & 14 deletions examples/tasksets/hello_rlm_v1/pyproject.toml

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
"""terminal-bench-2-v1 — the harbor taskset pinned to Terminal-Bench 2 (example env).
"""terminal-bench-2-v1 — the harbor-v1 taskset pinned to Terminal-Bench 2 (example env).

A thin wrapper over `harbor`: pins `dataset` to "terminal-bench/terminal-bench-2". Needs the
`harbor` CLI (`uv tool install harbor`) and a container runtime (docker/prime), like harbor.
A thin wrapper over `harbor-v1`: pins `dataset` to "terminal-bench/terminal-bench-2". Needs
the `harbor` CLI (`uv tool install harbor`) and a container runtime (docker/prime).
"""

from typing import Literal

from harbor import HarborConfig, HarborTaskset
from tasksets.harbor_v1 import HarborConfig, HarborTaskset


class TerminalBench2Config(HarborConfig):
Expand Down
2 changes: 1 addition & 1 deletion examples/tasksets/wordle_v1/wordle_v1/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

from typing import Literal

from textarena_v1 import TextArenaConfig, TextArenaTaskset
from tasksets.textarena_v1 import TextArenaConfig, TextArenaTaskset


class WordleConfig(TextArenaConfig):
Expand Down
13 changes: 13 additions & 0 deletions packages/harnesses/harnesses/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
"""Built-in harnesses, resolved by id (`--harness.id <id>`) as `harnesses.<id>`.

Re-exports each harness's class + config off the package."""

from harnesses.default import DefaultHarness, DefaultHarnessConfig
from harnesses.rlm import RLMHarness, RLMHarnessConfig

__all__ = [
"DefaultHarness",
"DefaultHarnessConfig",
"RLMHarness",
"RLMHarnessConfig",
]
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"""default — v1's built-in harness: its `harness.py` (class + config) and the
`program.py` script it stages into the runtime. Resolved by id via `load_harness`."""

from default.harness import DefaultHarness, DefaultHarnessConfig
from harnesses.default.harness import DefaultHarness, DefaultHarnessConfig


def load_harness(config: DefaultHarnessConfig) -> DefaultHarness:
Expand Down
4 changes: 2 additions & 2 deletions packages/harnesses/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[project]
name = "harnesses"
version = "0.1.0"
description = "Shipped v1 harnesses (resolved by id via `import <id>`), vendored by default."
description = "Built-in harnesses"
requires-python = ">=3.10"
dependencies = []

Expand All @@ -10,4 +10,4 @@ requires = ["hatchling"]
build-backend = "hatchling.build"

[tool.hatch.build.targets.wheel]
packages = ["default", "rlm"]
packages = ["harnesses"]
4 changes: 2 additions & 2 deletions packages/tasksets/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[project]
name = "tasksets"
version = "0.1.0"
description = "Shipped v1 tasksets (resolved by id via `import <id>`), vendored by default."
description = "Built-in tasksets"
requires-python = ">=3.10"
dependencies = []

Expand All @@ -15,4 +15,4 @@ requires = ["hatchling"]
build-backend = "hatchling.build"

[tool.hatch.build.targets.wheel]
packages = ["harbor", "textarena_v1"]
packages = ["tasksets"]
9 changes: 9 additions & 0 deletions packages/tasksets/tasksets/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
"""Built-in tasksets, resolved by id (`--taskset.id <id>`) as `tasksets.<id>`.

Re-exports each taskset's class + config off the package. `textarena_v1` is not re-exported
here — it imports the optional `textarena` dependency at module load — but still resolves as
`tasksets.textarena_v1`."""

from tasksets.harbor_v1 import HarborConfig, HarborTaskset

__all__ = ["HarborConfig", "HarborTaskset"]
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ def observation(seed: int) -> str:
def user(self, task: TextArenaTask) -> vf.User:
return vf.User(
name="user",
command=[sys.executable, "-m", "textarena_v1.server"],
command=[sys.executable, "-m", "tasksets.textarena_v1.server"],
env={"TEXTARENA_INFO": json.dumps(task.info)},
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

import verifiers.v1 as vf

from textarena_v1 import OUTCOME_FILE
from tasksets.textarena_v1 import OUTCOME_FILE

import nltk

Expand Down
5 changes: 2 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ dependencies = [
"pymupdf",
"pillow",
"certifi",
"prime-pydantic-config[toml]",
"prime-pydantic-config[toml]>=0.3.0.dev86",
"uvloop>=0.21.0; sys_platform != 'win32' and sys_platform != 'cygwin' and platform_python_implementation != 'PyPy'",
# v1 (verifiers.v1) runtime — also used by the v0 -> vf.Trace bridge (verifiers.v1.legacy)
"loguru>=0.7.0",
Expand Down Expand Up @@ -91,7 +91,7 @@ harnesses = ["harnesses"]
examples = [
"compact",
"gsm8k-v1", "wikispeedia-v1", "glossary-v1", "deepwiki-v1", "wiki-search-v1", "code-golf-v1",
"reverse-text-v1", "hello-rlm-v1", "math-env-v1", "aime24-v1",
"reverse-text-v1", "math-env-v1", "aime24-v1",
"wordle-v1", "terminal-bench-2-v1", "alphabet-sort-v1",
]

Expand Down Expand Up @@ -141,7 +141,6 @@ default = true
tasksets = { path = "packages/tasksets", editable = true }
harnesses = { path = "packages/harnesses", editable = true }
compact = { path = "examples/harnesses/compact", editable = true }
hello-rlm-v1 = { path = "examples/tasksets/hello_rlm_v1", editable = true }
glossary-v1 = { path = "examples/tasksets/glossary_v1", editable = true }
deepwiki-v1 = { path = "examples/tasksets/deepwiki_v1", editable = true }
wikispeedia-v1 = { path = "examples/tasksets/wikispeedia_v1", editable = true }
Expand Down
15 changes: 4 additions & 11 deletions uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading