prime-runs - #2415
Draft
kcoopermiller wants to merge 10 commits into
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
wip!!!
Why
The eval CLI hand-rolled its own platform client.
verifiers/v1/utils/platform.pywas 317 lines of resolve env → create → post samples → finalize over raw httpx. PrimeIntellect-ai/prime#856 moves that lifecycle intoprime-runs, a leaf SDK (httpx+prime-traces) where a run is an object held for the length of the run rather than three stateless calls at the end of it.What
platform.pygoes from 317 lines to 218, and what is left is wiring rather than transport:Gone:
push_traces,credentials,json_bytes,run_metrics, the batching loop, the payload ceiling, the in-memory buffer.trace_to_sampleandbuild_samplesmoved toprime_runs.projection— that is knowledge about a platform wire format, not about an eval framework.build_samplesstays here as a re-export because prime-rl imports it across the repo boundary (prime_rl/monitors/prime.py) against a released verifiers, so dropping the name would break its next upgrade; nothing importstrace_to_sample, so that one is gone.utils/platform.pyopen_run/finish_run/abort_run+PushState; the SDK owns the restcli/eval/runner.pycli/eval/main.py@ file.tomlthe run was launched fromconfigs/cli/eval.pyRunConfig.adopt_id()andrecord_source(), both private attrscli/resolve.pyconfig_file_ref(argv)— the root-level@ <path>cli/dashboard/eval.pyConfig tab
This ships the upload half only. A run now carries the fields somebody actually set (
model_dump(exclude_unset=True)) plus, when it was launched from one, the@ eval.tomlitself byte for byte undermetadata.config_source— but the tab renders neither yet:frontend/src/app/_utils/eval/evaluationConfig.tswalks a hard-coded 29-key allowlist and drops everything else. Until it learns to renderconfig_sourceverbatim and fall back to today's projection — a small additive frontend change — the tab shows environment and model alone, two fields fewer than the v0 blob it replaces, which happened to carrynum_examplesandrollouts_per_exampleunder the names that allowlist reads.