Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
fa0c9b9
add Verifiers v1 CLI support
xeophon Jun 23, 2026
b2d2c80
update Verifiers dependency lock
xeophon Jun 23, 2026
518d3d9
fast-track Verifiers v1 dependencies
xeophon Jun 23, 2026
e126a20
fix verifiers eval bridge edge cases
xeophon Jun 23, 2026
d588449
fix v1 resume result upload
xeophon Jun 23, 2026
3f9723e
handle verifiers legacy flags and env paths
xeophon Jun 23, 2026
a3d41ab
forward configured v1 inference URL
xeophon Jun 23, 2026
2499cbb
Merge remote-tracking branch 'origin/main' into codex/verifiers-v1-cli
xeophon Jul 3, 2026
7b9f799
Delegate local eval env resolution to verifiers, fix @ config passing
xeophon Jul 3, 2026
f696288
Address review feedback on the v1 eval bridge
xeophon Jul 3, 2026
56c29eb
Mirror v1 semantics for bare --dry-run and guard legacy uploads
xeophon Jul 3, 2026
bd55bbc
feat: raw v1 hosted evals, frozen v0 surface on the v1 CLI, prime eva…
xeophon Jul 4, 2026
4f63efe
refactor: drop the frozen v0 eval surface entirely
xeophon Jul 4, 2026
7a812a7
fix: address review feedback on resume parsing and validate config prep
xeophon Jul 4, 2026
b322c94
refactor: materialize PRIME_* runtime env, rework hosted header overr…
xeophon Jul 6, 2026
613a9e0
refactor: track verifiers' slimmed compat helpers
xeophon Jul 6, 2026
52460ff
Convert the platform's v0 eval argv and back-translate native runs in…
xeophon Jul 7, 2026
98c90b3
Fix all 7 bot-flagged v1 eval issues
xeophon Jul 7, 2026
43fe68c
Merge remote-tracking branch 'origin/main' into codex/verifiers-v1-cli
xeophon Jul 8, 2026
8a87a5d
fix: address remaining review comments on resume guards and legacy -s
xeophon Jul 8, 2026
f30da53
cleanup: drop tests added during this PR's review rounds
xeophon Jul 8, 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 .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
python-version: ["3.11", "3.12", "3.13"]
steps:
- uses: actions/checkout@v4

Expand Down Expand Up @@ -133,7 +133,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.11", "3.12", "3.13", "3.14"]
python-version: ["3.11", "3.12", "3.13"]
steps:
- uses: actions/checkout@v4

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-prime.yml
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ jobs:
packages: write
strategy:
matrix:
python-version: ['3.10', '3.11', '3.12']
python-version: ['3.11', '3.12', '3.13']
steps:
- uses: actions/checkout@v3
with:
Expand Down
8 changes: 3 additions & 5 deletions packages/prime/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ name = "prime"
dynamic = ["version"]
description = "Prime Intellect CLI + SDK"
readme = "README.md"
requires-python = ">=3.10"
requires-python = ">=3.11,<3.14"
license = "MIT"
authors = [
{ name = "Prime Intellect", email = "contact@primeintellect.ai" }
Expand All @@ -20,12 +20,13 @@ dependencies = [
"textual>=6.1.0",
"textual-plot>=0.10.1",
"cryptography>=41.0.0",
"verifiers>=0.1.14",
"verifiers>=0.1.15.dev371",
"build>=1.0.0",
"gitignore-parser>=0.1.13",
"pyyaml>=6.0.0",
"toml>=0.10.0",
"tomli>=2.0.0",
"prime-pydantic-config[toml]>=0.3.0.dev86",
]
keywords = ["cli", "gpu", "cloud", "compute"]
classifiers = [
Expand All @@ -35,11 +36,9 @@ classifiers = [
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Topic :: Software Development :: Libraries :: Python Modules"
]

Expand All @@ -64,7 +63,6 @@ dev = [
prime-sandboxes = { workspace = true }
prime-evals = { workspace = true }
prime-tunnel = { workspace = true }
verifiers = { git = "https://github.com/PrimeIntellect-ai/verifiers.git", tag = "v0.1.14" }

[build-system]
requires = ["hatchling"]
Expand Down
53 changes: 13 additions & 40 deletions packages/prime/src/prime_cli/commands/env.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
validate_env_var_name,
)
from ..utils.time_utils import format_time_ago, iso_timestamp
from ..verifiers_bridge import is_help_request, print_env_build_help, print_env_init_help
from ..verifiers_bridge import is_help_request, print_env_init_help
from ..verifiers_plugin import load_verifiers_prime_plugin, resolve_workspace_python
from .config import TEAM_ID_PATTERN

Expand Down Expand Up @@ -1688,7 +1688,7 @@ def init(
console.print("[dim]Example: prime env init my-env --path ./environments[/dim]")
raise typer.Exit(2)

plugin = load_verifiers_prime_plugin(console=console)
plugin = load_verifiers_prime_plugin()
command = plugin.build_module_command(plugin.init_module, [name, *passthrough_args])
result = subprocess.run(command)
if result.returncode != 0:
Expand All @@ -1697,42 +1697,22 @@ def init(


@app.command(
no_args_is_help=True,
hidden=True,
rich_help_panel="Manage",
context_settings={
"allow_extra_args": True,
"ignore_unknown_options": True,
"help_option_names": [],
},
)
def build(
ctx: typer.Context,
env_id: Optional[str] = typer.Argument(
None, help="Environment ID (hyphenated, e.g. openenv-echo)"
),
) -> None:
"""Build an OpenEnv-backed environment image."""
passthrough_args = list(ctx.args)

if is_help_request(env_id or "", passthrough_args):
print_env_build_help()
raise typer.Exit(0)

if env_id is None:
console.print("[red]Error:[/red] Missing argument 'ENV_ID'.")
console.print("[dim]Example: prime env build openenv-echo --path ./environments[/dim]")
raise typer.Exit(2)

if env_id.startswith("-"):
console.print("[red]Error:[/red] Environment ID must be the first argument.")
console.print("[dim]Example: prime env build openenv-echo --path ./environments[/dim]")
raise typer.Exit(2)

plugin = load_verifiers_prime_plugin(console=console)
command = plugin.build_module_command(plugin.build_module, [env_id, *passthrough_args])
result = subprocess.run(command)
if result.returncode != 0:
raise typer.Exit(result.returncode)
def build() -> None:
"""Removed: OpenEnv images must be prebuilt."""
console.print(
"[red]prime env build was removed.[/red] The OpenEnv image builder no longer ships "
"with verifiers. Build and push the image yourself, then register it in the "
'environment\'s .build.json ("image", "port", "start_command", "contract").'
)
raise typer.Exit(1)


@app.command(no_args_is_help=True, rich_help_panel="Manage")
Expand Down Expand Up @@ -2399,10 +2379,7 @@ def execute_install_command(cmd: List[str], env_id: str, version: str, tool: str
"""
console.print(f"\n[cyan]Installing {env_id}@{version} with {tool}...[/cyan]")

display_command = " ".join(cmd)
if len(cmd) >= 3 and cmd[1] == "-m" and cmd[2].startswith("verifiers.cli.commands."):
display_command = f"prime env install {env_id}"
console.print(f"[dim]Command: {display_command}[/dim]")
console.print(f"[dim]Command: {' '.join(cmd)}[/dim]")

process = subprocess.Popen(
cmd,
Expand Down Expand Up @@ -2467,7 +2444,6 @@ def install(
"""
try:
client = APIClient(require_auth=False)
plugin = load_verifiers_prime_plugin(console=console)

# Validate package manager
if with_tool not in ["uv", "pip"]:
Expand Down Expand Up @@ -2505,10 +2481,7 @@ def install(
env_path = Path(path) / env_folder
if env_path.exists():
if with_tool == "uv":
cmd_parts = plugin.build_module_command(
plugin.install_module,
[local_name, "--path", path],
)
cmd_parts = _uv_pip_command("install", "-e", str(env_path))
else:
cmd_parts = ["pip", "install", "-e", str(env_path)]
installable_envs.append((cmd_parts, local_name, "local", local_name))
Expand Down
Loading
Loading