@evolvingmachines/evolve 0.0.65 → 0.0.66
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.
- package/dist/{chunk-DK2MGUPB.js → chunk-RFLMRPGK.js} +5 -5
- package/dist/cli/index.cjs +39 -39
- package/dist/cli/index.d.cts +3 -3
- package/dist/cli/index.d.ts +3 -3
- package/dist/cli/index.js +30 -30
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +1 -1
- package/dist/{types-B_qmzlMk.d.cts → types-84M4J_Vm.d.cts} +11 -44
- package/dist/{types-B_qmzlMk.d.ts → types-84M4J_Vm.d.ts} +11 -44
- package/package.json +4 -4
- package/skills/create-adapter/SKILL.md +71 -26
- package/skills/create-task/SKILL.md +124 -66
- package/skills/evolve/SKILL.md +37 -20
- package/skills/evolve-evals/SKILL.md +142 -69
- package/skills/evolve-evals/references/cli-reference/agent.md +76 -0
- package/skills/evolve-evals/references/cli-reference/analysis.md +78 -0
- package/skills/evolve-evals/references/cli-reference/analyze.md +95 -0
- package/skills/evolve-evals/references/cli-reference/auth.md +96 -0
- package/skills/evolve-evals/references/cli-reference/check.md +156 -0
- package/skills/evolve-evals/references/cli-reference/dataset.md +154 -0
- package/skills/evolve-evals/references/cli-reference/filesystem.md +168 -0
- package/skills/evolve-evals/references/cli-reference/index.md +149 -0
- package/skills/evolve-evals/references/cli-reference/job.md +198 -0
- package/skills/evolve-evals/references/cli-reference/run.md +187 -0
- package/skills/evolve-evals/references/cli-reference/secrets.md +77 -0
- package/skills/evolve-evals/references/cli-reference/session.md +56 -0
- package/skills/evolve-evals/references/cli-reference/skill.md +52 -0
- package/skills/evolve-evals/references/cli-reference/skills.md +85 -0
- package/skills/evolve-evals/references/cli-reference/trial.md +115 -0
- package/skills/evolve-evals/references/cli-reference/upload.md +72 -0
- package/skills/evolve-evals/references/core-concepts/agents.md +96 -0
- package/skills/evolve-evals/references/core-concepts/analyze.md +143 -0
- package/skills/evolve-evals/references/core-concepts/check.md +116 -0
- package/skills/evolve-evals/references/core-concepts/compatibility.md +39 -0
- package/skills/evolve-evals/references/core-concepts/compose.md +103 -0
- package/skills/evolve-evals/references/core-concepts/datasets.md +234 -0
- package/skills/evolve-evals/references/core-concepts/index.md +52 -0
- package/skills/evolve-evals/references/core-concepts/jobs.md +223 -0
- package/skills/evolve-evals/references/core-concepts/models.md +73 -0
- package/skills/evolve-evals/references/core-concepts/multi-step.md +93 -0
- package/skills/evolve-evals/references/core-concepts/rewardkit.md +341 -0
- package/skills/evolve-evals/references/core-concepts/sandboxes.md +73 -0
- package/skills/evolve-evals/references/core-concepts/secrets.md +86 -0
- package/skills/evolve-evals/references/core-concepts/sharing.md +81 -0
- package/skills/evolve-evals/references/core-concepts/skills.md +100 -0
- package/skills/evolve-evals/references/core-concepts/task-config.md +169 -0
- package/skills/evolve-evals/references/core-concepts/task-environment.md +127 -0
- package/skills/evolve-evals/references/core-concepts/task-reference.md +191 -0
- package/skills/evolve-evals/references/core-concepts/task-verifiers.md +209 -0
- package/skills/evolve-evals/references/core-concepts/tasks.md +90 -0
- package/skills/evolve-evals/references/core-concepts/teams.md +128 -0
- package/skills/evolve-evals/references/core-concepts/trial-outputs.md +225 -0
- package/skills/evolve-evals/references/core-concepts/trials.md +129 -0
- package/skills/evolve-evals/references/core-concepts/upload-sdk-session.md +240 -0
- package/skills/evolve-evals/references/core-concepts/upload.md +166 -0
- package/skills/evolve-evals/references/dashboard/checks.md +54 -0
- package/skills/evolve-evals/references/dashboard/datasets.md +65 -0
- package/skills/evolve-evals/references/dashboard/jobs.md +106 -0
- package/skills/evolve-evals/references/dashboard/traces.md +54 -0
- package/skills/evolve-evals/references/dashboard/trial-viewer.md +77 -0
- package/skills/evolve-evals/references/getting-started/first-task.md +228 -0
- package/skills/evolve-evals/references/getting-started/installation.md +79 -0
- package/skills/evolve-evals/references/getting-started/quick-start.md +100 -0
- package/skills/evolve-evals/references/index.md +58 -0
- package/skills/evolve-evals/references/sdk/http.md +110 -0
- package/skills/evolve-evals/references/sdk/python.md +108 -0
- package/skills/evolve-evals/references/sdk/typescript.md +104 -0
- package/skills/evolve-evals/references/sdk-reference/agents.md +75 -0
- package/skills/evolve-evals/references/sdk-reference/analyses.md +124 -0
- package/skills/evolve-evals/references/sdk-reference/auth.md +171 -0
- package/skills/evolve-evals/references/sdk-reference/checks.md +145 -0
- package/skills/evolve-evals/references/sdk-reference/datasets.md +170 -0
- package/skills/evolve-evals/references/sdk-reference/error-codes.md +231 -0
- package/skills/evolve-evals/references/sdk-reference/errors.md +98 -0
- package/skills/evolve-evals/references/sdk-reference/filesystem.md +166 -0
- package/skills/evolve-evals/references/sdk-reference/index.md +161 -0
- package/skills/evolve-evals/references/sdk-reference/jobs.md +250 -0
- package/skills/evolve-evals/references/sdk-reference/meta.md +54 -0
- package/skills/evolve-evals/references/sdk-reference/methods/agents.md +154 -0
- package/skills/evolve-evals/references/sdk-reference/methods/analyses.md +211 -0
- package/skills/evolve-evals/references/sdk-reference/methods/auth.md +257 -0
- package/skills/evolve-evals/references/sdk-reference/methods/checks.md +460 -0
- package/skills/evolve-evals/references/sdk-reference/methods/datasets.md +687 -0
- package/skills/evolve-evals/references/sdk-reference/methods/filesystem.md +527 -0
- package/skills/evolve-evals/references/sdk-reference/methods/jobs.md +1021 -0
- package/skills/evolve-evals/references/sdk-reference/methods/meta.md +209 -0
- package/skills/evolve-evals/references/sdk-reference/methods/secrets.md +157 -0
- package/skills/evolve-evals/references/sdk-reference/methods/skills.md +125 -0
- package/skills/evolve-evals/references/sdk-reference/methods/trials.md +371 -0
- package/skills/evolve-evals/references/sdk-reference/secrets.md +104 -0
- package/skills/evolve-evals/references/sdk-reference/skills.md +66 -0
- package/skills/evolve-evals/references/sdk-reference/trials.md +164 -0
- package/skills/evolve-evals/references/sdk-reference/types.md +1249 -0
- package/skills/publish/SKILL.md +103 -79
- package/skills/rewardkit/SKILL.md +78 -23
- package/spec/openapi.yaml +19 -74
- package/skills/evolve-evals/references/cli-reference/agent.mdx +0 -79
- package/skills/evolve-evals/references/cli-reference/analysis.mdx +0 -160
- package/skills/evolve-evals/references/cli-reference/analyze.mdx +0 -84
- package/skills/evolve-evals/references/cli-reference/auth.mdx +0 -133
- package/skills/evolve-evals/references/cli-reference/check.mdx +0 -263
- package/skills/evolve-evals/references/cli-reference/dataset.mdx +0 -151
- package/skills/evolve-evals/references/cli-reference/index.mdx +0 -108
- package/skills/evolve-evals/references/cli-reference/job.mdx +0 -278
- package/skills/evolve-evals/references/cli-reference/run.mdx +0 -204
- package/skills/evolve-evals/references/cli-reference/secrets.mdx +0 -95
- package/skills/evolve-evals/references/cli-reference/skill.mdx +0 -61
- package/skills/evolve-evals/references/cli-reference/skills.mdx +0 -81
- package/skills/evolve-evals/references/cli-reference/trial.mdx +0 -181
- package/skills/evolve-evals/references/cli-reference/upload.mdx +0 -36
- package/skills/evolve-evals/references/core-concepts/agents.mdx +0 -106
- package/skills/evolve-evals/references/core-concepts/analyze.mdx +0 -86
- package/skills/evolve-evals/references/core-concepts/check.mdx +0 -64
- package/skills/evolve-evals/references/core-concepts/datasets.mdx +0 -138
- package/skills/evolve-evals/references/core-concepts/index.mdx +0 -42
- package/skills/evolve-evals/references/core-concepts/jobs.mdx +0 -151
- package/skills/evolve-evals/references/core-concepts/models.mdx +0 -68
- package/skills/evolve-evals/references/core-concepts/sandboxes.mdx +0 -52
- package/skills/evolve-evals/references/core-concepts/secrets.mdx +0 -41
- package/skills/evolve-evals/references/core-concepts/sharing.mdx +0 -35
- package/skills/evolve-evals/references/core-concepts/skills.mdx +0 -42
- package/skills/evolve-evals/references/core-concepts/tasks.mdx +0 -216
- package/skills/evolve-evals/references/core-concepts/teams.mdx +0 -36
- package/skills/evolve-evals/references/core-concepts/trial-outputs.mdx +0 -117
- package/skills/evolve-evals/references/core-concepts/trials.mdx +0 -103
- package/skills/evolve-evals/references/core-concepts/upload.mdx +0 -93
- package/skills/evolve-evals/references/dashboard/checks.mdx +0 -21
- package/skills/evolve-evals/references/dashboard/datasets.mdx +0 -24
- package/skills/evolve-evals/references/dashboard/jobs.mdx +0 -65
- package/skills/evolve-evals/references/dashboard/traces.mdx +0 -17
- package/skills/evolve-evals/references/dashboard/trial-viewer.mdx +0 -30
- package/skills/evolve-evals/references/getting-started/installation.mdx +0 -56
- package/skills/evolve-evals/references/getting-started/quick-start.mdx +0 -94
- package/skills/evolve-evals/references/index.mdx +0 -48
- package/skills/evolve-evals/references/sdk/python.mdx +0 -161
- package/skills/evolve-evals/references/sdk/typescript.mdx +0 -163
- package/skills/evolve-evals/references/sdk-reference/agents.mdx +0 -108
- package/skills/evolve-evals/references/sdk-reference/analyses.mdx +0 -222
- package/skills/evolve-evals/references/sdk-reference/auth.mdx +0 -116
- package/skills/evolve-evals/references/sdk-reference/checks.mdx +0 -300
- package/skills/evolve-evals/references/sdk-reference/datasets.mdx +0 -346
- package/skills/evolve-evals/references/sdk-reference/errors.mdx +0 -210
- package/skills/evolve-evals/references/sdk-reference/index.mdx +0 -60
- package/skills/evolve-evals/references/sdk-reference/jobs.mdx +0 -822
- package/skills/evolve-evals/references/sdk-reference/meta.mdx +0 -52
- package/skills/evolve-evals/references/sdk-reference/skills.mdx +0 -69
- package/skills/evolve-evals/references/sdk-reference/trials.mdx +0 -302
- package/skills/evolve-evals/references/sdk-reference/types.mdx +0 -274
- package/skills/evolve-evals/references/snippets/global-options.mdx +0 -13
- package/skills/evolve-evals/references/snippets/list-flags.mdx +0 -23
package/skills/publish/SKILL.md
CHANGED
|
@@ -1,146 +1,170 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: publish
|
|
3
|
-
description: Publish
|
|
3
|
+
description: Publish Harbor-format task datasets or upload existing results to Evolve, including recorded Evolve SDK runs packaged as jobs. Use when the user wants to publish a benchmark, upload tasks, or turn an SDK session into an evaluation job.
|
|
4
4
|
metadata:
|
|
5
5
|
internal: true
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
Walk them through each step, checking prerequisites and confirming before running
|
|
10
|
-
commands that upload.
|
|
8
|
+
# Publish to Evolve
|
|
11
9
|
|
|
12
|
-
|
|
10
|
+
Publish tasks for future evaluations, or import results from a run that already happened. Both workflows use Evolve.
|
|
13
11
|
|
|
14
|
-
|
|
12
|
+
| What the user has | Start here |
|
|
13
|
+
| --- | --- |
|
|
14
|
+
| A folder or repository of tasks | Publish a dataset below. For the task layout, read `evolve skills get create-task`. |
|
|
15
|
+
| A completed job folder or archive | Import results below. |
|
|
16
|
+
| A recorded Evolve SDK session | Read `evolve skills get evals core-concepts/upload-sdk-session` before packaging it. |
|
|
15
17
|
|
|
16
|
-
|
|
17
|
-
(https://dashboard.evolvingmachines.ai/api-keys) and export it. Every command reads
|
|
18
|
-
`EVOLVE_API_KEY`.
|
|
19
|
-
```bash
|
|
20
|
-
export EVOLVE_API_KEY="<your key>"
|
|
21
|
-
evolve auth status
|
|
22
|
-
```
|
|
23
|
-
`auth status` prints who the platform thinks you are and which key is in use.
|
|
18
|
+
## Setup, when needed
|
|
24
19
|
|
|
25
|
-
|
|
26
|
-
`instruction.md`, `tests/test.sh`, and an `environment/` folder unless `task.toml`
|
|
27
|
-
names a prebuilt `docker_image` (`evolve skills get create-task` has the format). The
|
|
28
|
-
directory name is the task's name: letters, digits, `.`, `_` and `-`, at most 128
|
|
29
|
-
characters, starting with a letter or digit; use lowercase (Harbor's convention). A
|
|
30
|
-
`dataset.toml` manifest at the root is optional.
|
|
20
|
+
Use the installed CLI; install only if missing: `npm install -g @evolvingmachines/evolve`. Confirm authentication with `evolve auth status`. If needed, set `EVOLVE_API_KEY` using a key from https://dashboard.evolvingmachines.ai/api-keys.
|
|
31
21
|
|
|
32
|
-
|
|
22
|
+
Publishing or importing is a remote mutation. Proceed when the user's request authorizes it; otherwise prepare the exact command and explain what it uploads. An upload request does not authorize emailing or sharing results. For explicit sharing requests, read `evolve skills get evals core-concepts/sharing`.
|
|
33
23
|
|
|
34
|
-
|
|
35
|
-
flag.
|
|
24
|
+
## Publish a dataset
|
|
36
25
|
|
|
37
|
-
### 1. Check the
|
|
26
|
+
### 1. Check the tasks
|
|
27
|
+
|
|
28
|
+
Inspect the task directories and any `dataset.toml`, then validate their metadata:
|
|
38
29
|
|
|
39
30
|
```bash
|
|
40
|
-
evolve dataset check
|
|
31
|
+
evolve dataset check ./tasks
|
|
41
32
|
```
|
|
42
33
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
reads each task and, when it can, runs its environment, reference solution and verifier,
|
|
47
|
-
then rules on a rubric.
|
|
34
|
+
This sends each `task.toml` and the optional manifest to Evolve. It does not publish the corpus or run the tasks. Fix refused fields before continuing.
|
|
35
|
+
|
|
36
|
+
For an agent-based quality review, use `evolve check ./tasks --watch`. This uploads tasks and incurs agent usage. Read the findings and trace: Evolve derives no verdict from the result, and `unknown` on the default rubric's execution criteria is not proof that the reference solution and verifier were executed successfully. See `evolve skills get evals core-concepts/check`.
|
|
48
37
|
|
|
49
|
-
### 2.
|
|
38
|
+
### 2. Choose one source and publish
|
|
50
39
|
|
|
51
|
-
|
|
40
|
+
**Local directory**
|
|
52
41
|
|
|
53
42
|
```bash
|
|
54
43
|
evolve dataset publish \
|
|
55
|
-
--dir
|
|
56
|
-
--name
|
|
44
|
+
--dir ./tasks \
|
|
45
|
+
--name my-benchmark \
|
|
57
46
|
--version 1.0 \
|
|
58
47
|
--watch
|
|
59
48
|
```
|
|
60
49
|
|
|
61
|
-
|
|
62
|
-
and may be omitted. The pre-flight runs automatically before the upload;
|
|
63
|
-
`--skip-preflight` uploads without it, and a task the check would have refused then fails
|
|
64
|
-
at import instead.
|
|
50
|
+
A `dataset.toml` can supply the name and version. Local publishing runs metadata preflight automatically; `--skip-preflight` skips that early check, not import validation.
|
|
65
51
|
|
|
66
|
-
|
|
52
|
+
**Git repository**
|
|
67
53
|
|
|
68
54
|
```bash
|
|
69
55
|
evolve dataset publish \
|
|
70
|
-
--git https://github.com/acme/
|
|
56
|
+
--git https://github.com/acme/tasks.git \
|
|
71
57
|
--ref v1.0.0 \
|
|
72
|
-
--
|
|
58
|
+
--path benchmark \
|
|
59
|
+
--name my-benchmark \
|
|
73
60
|
--version 1.0 \
|
|
74
61
|
--watch
|
|
75
62
|
```
|
|
76
63
|
|
|
77
|
-
|
|
78
|
-
refused. `--path <subfolder>` imports one folder of a larger repository.
|
|
64
|
+
Pin a tag or a full 40-character commit SHA. Branch names are refused. Omit `--path` to use the repository root.
|
|
79
65
|
|
|
80
|
-
|
|
66
|
+
**Public HTTPS archive**
|
|
81
67
|
|
|
82
68
|
```bash
|
|
83
|
-
evolve dataset publish
|
|
69
|
+
evolve dataset publish \
|
|
70
|
+
--from https://example.com/tasks.tar.gz \
|
|
71
|
+
--name my-benchmark \
|
|
72
|
+
--version 1.0 \
|
|
73
|
+
--watch
|
|
84
74
|
```
|
|
85
75
|
|
|
86
|
-
|
|
87
|
-
the Harbor hub. For a hub package the name and version default to the package's own.
|
|
88
|
-
|
|
89
|
-
### 3. Follow the publish
|
|
76
|
+
Evolve fetches the archive. Both Git and HTTPS sources require an explicit name and version.
|
|
90
77
|
|
|
91
|
-
|
|
92
|
-
on its own, so one broken task does not block the others; `--watch` ends with how many
|
|
93
|
-
built. If the terminal is gone, re-attach from any machine:
|
|
78
|
+
**Optional: import a public Harbor Hub package into Evolve**
|
|
94
79
|
|
|
95
80
|
```bash
|
|
96
|
-
evolve dataset
|
|
81
|
+
evolve dataset publish \
|
|
82
|
+
--from hub:cookbook/hello-world \
|
|
83
|
+
--watch
|
|
97
84
|
```
|
|
98
85
|
|
|
99
|
-
|
|
100
|
-
On your own dataset, `READY` also makes the version active, so the bare name runs it.
|
|
86
|
+
`hub:org/name[@ref]` is an accepted source; the destination is Evolve. Name and version may come from the package. Keep this syntax when importing an actual Harbor package.
|
|
101
87
|
|
|
102
|
-
|
|
88
|
+
For a new dataset, add `--org <organization>` to select an organization. Otherwise, Evolve uses the saved `evolve auth org use` default, then your personal organization. An existing dataset keeps its organization; an explicit or saved default that conflicts is refused. See `evolve skills get evals cli-reference/dataset` for all options.
|
|
89
|
+
|
|
90
|
+
### 3. Follow the import and inspect the result
|
|
91
|
+
|
|
92
|
+
`--watch` follows the import and build. To reconnect, use the complete import ID printed by publishing:
|
|
103
93
|
|
|
104
94
|
```bash
|
|
105
|
-
evolve dataset
|
|
106
|
-
evolve
|
|
95
|
+
evolve dataset watch "$IMPORT_ID"
|
|
96
|
+
evolve dataset show my-benchmark@1.0
|
|
107
97
|
```
|
|
108
98
|
|
|
109
|
-
|
|
110
|
-
|
|
99
|
+
`evolve dataset watch my-benchmark` also finds a live import. Use the import ID after it has settled.
|
|
100
|
+
|
|
101
|
+
A `READY` version needs at least one built task, but can contain failed tasks. Report the final state, name, version, built and failed counts, and failure reasons. A new ready version on your own dataset becomes active; a bare dataset name selects that active version.
|
|
102
|
+
|
|
103
|
+
### 4. Run or manage the version
|
|
104
|
+
|
|
105
|
+
When the user wants an evaluation, select the harness and model, then run the pinned version:
|
|
111
106
|
|
|
112
107
|
```bash
|
|
113
|
-
evolve
|
|
108
|
+
evolve run \
|
|
109
|
+
--dataset my-benchmark@1.0 \
|
|
110
|
+
--agent codex \
|
|
111
|
+
--model "<model>" \
|
|
112
|
+
--watch
|
|
114
113
|
```
|
|
115
114
|
|
|
116
|
-
|
|
115
|
+
Replace `<model>` with the selected model. Read `evolve skills get evals cli-reference/run` for job settings.
|
|
116
|
+
|
|
117
|
+
| Need | Command |
|
|
118
|
+
| --- | --- |
|
|
119
|
+
| Point the bare name at another `READY` version | `evolve dataset activate my-benchmark 1.0` |
|
|
120
|
+
| Download the original corpus package as its owner | `evolve dataset download my-benchmark@1.0 -o corpora/` |
|
|
121
|
+
| Fix tasks after a partial build | Publish the corrected corpus under a new version. |
|
|
122
|
+
|
|
123
|
+
## Import results
|
|
124
|
+
|
|
125
|
+
### 1. Prepare the job folder
|
|
126
|
+
|
|
127
|
+
An existing Harbor-format job folder can be uploaded directly. Before packaging another runner's files, read `evolve skills get evals core-concepts/upload` for the required layout and fields. The root needs `config.json` and `result.json`; each trial has its own `result.json`.
|
|
128
|
+
|
|
129
|
+
For an SDK session, read `evolve skills get evals core-concepts/upload-sdk-session` first. It shows the local log location, field mapping, and packaging script. A session can contain several runs or commands; do not assume one file is one trial. The example script supports one successful Codex or Claude run; the guide covers other cases.
|
|
130
|
+
|
|
131
|
+
Preserve recorded rewards in each trial's `verifier_result.rewards`. Without recorded rewards, the import has no score. Do not infer a score from agent completion.
|
|
132
|
+
|
|
133
|
+
### 2. Upload and follow
|
|
117
134
|
|
|
118
135
|
```bash
|
|
119
|
-
evolve
|
|
136
|
+
evolve upload ./completed-job -d my-benchmark@1.0
|
|
120
137
|
```
|
|
121
138
|
|
|
122
|
-
|
|
139
|
+
Use the job directory or its `.tar.gz`. Alternatively, use `evolve upload --from <public-https-archive-url>`. Omit `-d` if no published dataset should be linked; when supplied, it links trial tasks by name.
|
|
123
140
|
|
|
124
|
-
|
|
125
|
-
traces and rewards become a job you read like any other. Before packing a folder by
|
|
126
|
-
hand — runs made with the Evolve SDK, or any other runner — read what a trial folder
|
|
127
|
-
and its `result.json` must hold: `evolve skills get evals core-concepts/upload`. The
|
|
128
|
-
score lives in `result.json` as `verifier_result.rewards`; without it a trial arrives
|
|
129
|
-
with no score.
|
|
141
|
+
The CLI waits for the import by default. `--no-wait` returns the import record instead. Reconnect with:
|
|
130
142
|
|
|
131
143
|
```bash
|
|
132
|
-
evolve
|
|
144
|
+
evolve job imports --status RUNNING
|
|
145
|
+
evolve job import "$IMPORT_ID" --watch
|
|
133
146
|
```
|
|
134
147
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
follows the import until the job exists; `--no-wait` returns at once with the import id.
|
|
148
|
+
### 3. Inspect the imported job
|
|
149
|
+
|
|
150
|
+
Use the job ID from the completed import:
|
|
139
151
|
|
|
140
152
|
```bash
|
|
141
|
-
evolve job
|
|
142
|
-
evolve job
|
|
153
|
+
evolve job show "$JOB_ID"
|
|
154
|
+
evolve job trials "$JOB_ID"
|
|
143
155
|
```
|
|
144
156
|
|
|
145
|
-
|
|
146
|
-
|
|
157
|
+
Choose a trial ID from the listing, then read its transcript with `evolve trial trace "$TRIAL_ID"`. Check the task, harness, model, prompt, agent activity, and recorded scores. Report skipped trial folders and missing task links.
|
|
158
|
+
|
|
159
|
+
Imported jobs support analysis, but cannot be resumed, retried, or regraded. Read `evolve skills get evals cli-reference/upload` for all upload options.
|
|
160
|
+
|
|
161
|
+
## Use Python or TypeScript instead
|
|
162
|
+
|
|
163
|
+
Read `evolve skills get evals sdk-reference/index` for client setup, then the matching method reference:
|
|
164
|
+
|
|
165
|
+
| Operation | Read |
|
|
166
|
+
| --- | --- |
|
|
167
|
+
| Validate, publish, follow, activate, or download datasets | `evolve skills get evals sdk-reference/methods/datasets` |
|
|
168
|
+
| Upload a job and follow its import | `evolve skills get evals sdk-reference/methods/jobs` |
|
|
169
|
+
|
|
170
|
+
Both SDKs expose `datasets().preflight()` and `datasets().publish()`, plus `jobs().upload()`. Call preflight separately when publishing through an SDK. Publishing and uploading return import records; follow with `watchImport` in TypeScript or `watch_import` in Python. These calls do not convert SDK session logs into job folders; package the session first.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: rewardkit
|
|
3
|
-
description: Write Harbor-format
|
|
3
|
+
description: Write verifiers for Evolve's Harbor-format tasks using Reward Kit. Use when creating or editing a
|
|
4
4
|
task's tests/ directory, adding grading criteria, setting up LLM/agent judges, or designing
|
|
5
5
|
verifiers that produce a reward score.
|
|
6
6
|
metadata:
|
|
@@ -11,6 +11,10 @@ Help the user write task verifiers with Reward Kit. Reward Kit is a lightweight
|
|
|
11
11
|
package that turns a directory of criteria files into a reward score. Each criterion is a
|
|
12
12
|
Python function call or a TOML judge file; folders become separate rewards.
|
|
13
13
|
|
|
14
|
+
The package keeps its upstream name, `harbor-rewardkit`. For Evolve's supported
|
|
15
|
+
setup and a complete example, read
|
|
16
|
+
`evolve skills get evals core-concepts/rewardkit`.
|
|
17
|
+
|
|
14
18
|
## Setup in a task
|
|
15
19
|
|
|
16
20
|
Put criteria alongside `test.sh` in the task's `tests/` directory:
|
|
@@ -22,17 +26,33 @@ tests/
|
|
|
22
26
|
└── judge.toml # optional LLM/agent judge
|
|
23
27
|
```
|
|
24
28
|
|
|
25
|
-
|
|
29
|
+
Install the package when the image builds, using Python 3.12 or newer. In shared
|
|
30
|
+
mode, add this to `environment/Dockerfile`; in separate mode, install it in the
|
|
31
|
+
verifier image:
|
|
32
|
+
|
|
33
|
+
```dockerfile
|
|
34
|
+
RUN pip install --no-cache-dir \
|
|
35
|
+
'harbor-rewardkit==0.2.1'
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Then write `tests/test.sh`:
|
|
26
39
|
```bash
|
|
27
40
|
#!/bin/bash
|
|
28
|
-
|
|
41
|
+
set -euo pipefail
|
|
42
|
+
python3 -m rewardkit /tests \
|
|
43
|
+
--workspace /app \
|
|
44
|
+
--output /logs/verifier/reward.json
|
|
29
45
|
```
|
|
30
46
|
|
|
31
47
|
This runs all criteria in `/tests/` against the workspace at `/app` and writes
|
|
32
|
-
`/logs/verifier/reward.json`.
|
|
48
|
+
`/logs/verifier/reward.json`. Adjust `--workspace` if the task uses another directory.
|
|
33
49
|
|
|
34
|
-
Run `evolve check "<task-path>" --watch`
|
|
35
|
-
solution
|
|
50
|
+
Run `evolve check "<task-path>" --watch` for task quality review. The checker
|
|
51
|
+
may run the reference solution and verifier when its environment supports
|
|
52
|
+
them; inspect its findings and evidence. The default rubric's execution
|
|
53
|
+
criteria say whether it ran the task; `unknown` on them is not proof that the
|
|
54
|
+
solution or verifier ran. Read `evolve skills get evals core-concepts/check`
|
|
55
|
+
for the result semantics.
|
|
36
56
|
|
|
37
57
|
If judge criteria need API keys, request them through `task.toml`:
|
|
38
58
|
```toml
|
|
@@ -40,11 +60,16 @@ If judge criteria need API keys, request them through `task.toml`:
|
|
|
40
60
|
ANTHROPIC_API_KEY = "${ANTHROPIC_API_KEY}"
|
|
41
61
|
```
|
|
42
62
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
63
|
+
Write the template literally as the whole value. Evolve supplies a scoped gateway
|
|
64
|
+
credential and base URL during verification. Set the judge model explicitly in
|
|
65
|
+
the TOML. Use `OPENAI_API_KEY` instead for an OpenAI-family judge.
|
|
66
|
+
|
|
67
|
+
On a job, `--ve REWARDKIT_JUDGE=<judge>` overrides the judge and
|
|
68
|
+
`--ve REWARDKIT_MODEL=<model>` selects an agent judge's model. These are the only
|
|
69
|
+
two job-level verifier environment overrides. Read
|
|
70
|
+
`evolve skills get evals cli-reference/run` for CLI options or
|
|
71
|
+
`evolve skills get evals sdk-reference/methods/jobs` for the Python and TypeScript
|
|
72
|
+
`start` inputs.
|
|
48
73
|
|
|
49
74
|
Ask whether Reward Kit should run in the agent's shared environment or in a
|
|
50
75
|
separate verifier environment. Prefer a separate verifier environment when judge
|
|
@@ -53,14 +78,14 @@ available to the agent:
|
|
|
53
78
|
|
|
54
79
|
```toml
|
|
55
80
|
[environment]
|
|
56
|
-
network_mode = "no-network" # Agent
|
|
81
|
+
network_mode = "no-network" # Agent can reach the Evolve model gateway
|
|
57
82
|
|
|
58
83
|
[verifier]
|
|
59
84
|
environment_mode = "separate"
|
|
60
85
|
|
|
61
86
|
[verifier.environment]
|
|
62
|
-
network_mode = "
|
|
63
|
-
docker_image
|
|
87
|
+
network_mode = "no-network" # Native judge calls use Evolve's gateway
|
|
88
|
+
# With no docker_image, build the verifier from tests/Dockerfile.
|
|
64
89
|
```
|
|
65
90
|
|
|
66
91
|
In shared mode, the verifier runs in the agent container and inherits
|
|
@@ -69,9 +94,9 @@ baseline is refused at import on Evolve, because a shared verify cannot switch
|
|
|
69
94
|
egress. If agent and verifier need different network access, use
|
|
70
95
|
`environment_mode = "separate"` and set `[verifier.environment].network_mode`.
|
|
71
96
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
`no-network`.
|
|
97
|
+
Evolve's native judge gateway is reachable with `no-network`. Other external
|
|
98
|
+
APIs need a `public` baseline or the required hosts in the verifier allowlist.
|
|
99
|
+
Programmatic checks that only read local files can also use `no-network`.
|
|
75
100
|
|
|
76
101
|
In separate mode with no `[verifier.environment].docker_image`, `tests/` is the
|
|
77
102
|
verifier image's build context and its `tests/Dockerfile` must provide
|
|
@@ -79,6 +104,12 @@ verifier image's build context and its `tests/Dockerfile` must provide
|
|
|
79
104
|
uploads `tests/` to `/tests` instead. When it pins a distinct image, that image
|
|
80
105
|
boots as it is with nothing uploaded, so it must carry `/tests/test.sh` itself.
|
|
81
106
|
|
|
107
|
+
For separate verification, declare the files to grade in the task's `artifacts`
|
|
108
|
+
list. The verifier does not receive the agent's whole workspace. Read
|
|
109
|
+
`evolve skills get evals core-concepts/task-verifiers` and
|
|
110
|
+
`evolve skills get evals core-concepts/task-config` for Evolve's file-transfer and
|
|
111
|
+
network rules.
|
|
112
|
+
|
|
82
113
|
## Programmatic criteria
|
|
83
114
|
|
|
84
115
|
Call built-ins from any `.py` file in `tests/`:
|
|
@@ -95,6 +126,10 @@ rk.json_key_equals("result.json", "status", "ok")
|
|
|
95
126
|
All criteria accept `weight` (default `1.0`) and `isolated` (default `False`, runs in
|
|
96
127
|
overlayfs so side effects don't leak).
|
|
97
128
|
|
|
129
|
+
Isolation needs working overlayfs support. If the image needs `fuse-overlayfs`,
|
|
130
|
+
install it at build time; do not rely on its runtime installer with restricted
|
|
131
|
+
network access. Confirm the sandbox permits the required mounts.
|
|
132
|
+
|
|
98
133
|
### Available built-ins
|
|
99
134
|
|
|
100
135
|
- **Files**: `file_exists`, `file_not_exists`, `file_contains`, `file_contains_regex`,
|
|
@@ -102,12 +137,17 @@ overlayfs so side effects don't leak).
|
|
|
102
137
|
- **Commands**: `command_succeeds`, `command_output_contains`, `command_output_matches`,
|
|
103
138
|
`command_output_matches_regex` (30s default timeout, optional `cwd`)
|
|
104
139
|
- **Data**: `json_key_equals`, `json_path_equals`, `csv_cell_equals`, `xlsx_cell_equals`
|
|
105
|
-
(needs `[
|
|
140
|
+
(needs `[documents]` extra), `sqlite_query_equals`
|
|
106
141
|
- **HTTP**: `http_status_equals`, `http_response_contains`
|
|
107
142
|
- **Images**: `image_similarity`, `image_size_equals` (needs `[image]` extra)
|
|
108
143
|
- **Trajectory**: `trajectory_tool_used`, `trajectory_tool_not_used`, `trajectory_turn_count`
|
|
109
144
|
|
|
110
|
-
|
|
145
|
+
Install needed extras in that same image: `harbor-rewardkit[documents]==0.2.1`
|
|
146
|
+
or `harbor-rewardkit[image]==0.2.1`. Use `[all]` only if both are needed.
|
|
147
|
+
|
|
148
|
+
Do not depend on downloading packages during verification. Evolve's offline
|
|
149
|
+
Reward Kit bundle is for judge-enabled runs and does not include optional
|
|
150
|
+
extras. Its `uvx` path cannot fetch versions or extras absent from the bundle.
|
|
111
151
|
|
|
112
152
|
## Custom criteria
|
|
113
153
|
|
|
@@ -143,7 +183,7 @@ For subjective checks (quality, readability, edge cases), create a TOML file:
|
|
|
143
183
|
|
|
144
184
|
```toml
|
|
145
185
|
[judge]
|
|
146
|
-
judge = "anthropic/claude-sonnet-
|
|
186
|
+
judge = "anthropic/claude-sonnet-4-6"
|
|
147
187
|
files = ["/app/main.py"]
|
|
148
188
|
|
|
149
189
|
[[criterion]]
|
|
@@ -169,7 +209,7 @@ Agent judges shell out to a CLI and can explore the filesystem:
|
|
|
169
209
|
```toml
|
|
170
210
|
[judge]
|
|
171
211
|
judge = "claude-code"
|
|
172
|
-
model = "anthropic/claude-sonnet-
|
|
212
|
+
model = "anthropic/claude-sonnet-4-6"
|
|
173
213
|
isolated = true
|
|
174
214
|
|
|
175
215
|
[[criterion]]
|
|
@@ -179,6 +219,10 @@ type = "binary"
|
|
|
179
219
|
|
|
180
220
|
Slower and more expensive than LLM judges, but they can run commands and inspect files.
|
|
181
221
|
|
|
222
|
+
Evolve supports `claude-code` and `codex` agent judges. Install the selected CLI
|
|
223
|
+
in the verifier image and request its matching provider credential. The managed
|
|
224
|
+
judge path does not supply verifier MCP tools or arbitrary provider credentials.
|
|
225
|
+
|
|
182
226
|
### Useful `[judge]` options
|
|
183
227
|
|
|
184
228
|
`timeout` (default 300), `reasoning_effort` (`low`|`medium`|`high`), `reference` (path to
|
|
@@ -289,8 +333,15 @@ weight unless that aggregation's inline map overrides them;
|
|
|
289
333
|
- `/logs/verifier/reward.json` — per-reward scores
|
|
290
334
|
- `/logs/verifier/reward-details.json` — per-criterion results, judge reasoning, errors
|
|
291
335
|
|
|
336
|
+
Evolve uses `reward` as the primary score, or the only value when there is one
|
|
337
|
+
key. Multiple dimensions without `reward` remain metrics but have no primary
|
|
338
|
+
score. Keep the primary score in `[0, 1]`.
|
|
339
|
+
|
|
292
340
|
## Multi-step tasks
|
|
293
341
|
|
|
342
|
+
Evolve currently requires shared verification for multi-step tasks; separate
|
|
343
|
+
verifier environments are rejected.
|
|
344
|
+
|
|
294
345
|
In a multi-step task, each step has its own `tests/` under
|
|
295
346
|
`steps/{name}/tests/`, and the verifier runs once per step. Reward Kit behaves
|
|
296
347
|
the same as in a single-step task: for each step it reads `/tests`, runs the
|
|
@@ -311,6 +362,9 @@ separate reward key for that step, and `multi_step_reward_strategy = "mean"`
|
|
|
311
362
|
averages each key across steps. Use `"final"` when the last step is an
|
|
312
363
|
end-to-end check whose rewards already represent the full task.
|
|
313
364
|
|
|
365
|
+
Read `evolve skills get evals core-concepts/multi-step` for Evolve's supported
|
|
366
|
+
step configuration and result layout.
|
|
367
|
+
|
|
314
368
|
## When to reach for what
|
|
315
369
|
|
|
316
370
|
- **Use built-ins** for file existence, string matches, command output, JSON/CSV checks,
|
|
@@ -326,5 +380,6 @@ end-to-end check whose rewards already represent the full task.
|
|
|
326
380
|
|
|
327
381
|
## Working example
|
|
328
382
|
|
|
329
|
-
|
|
330
|
-
|
|
383
|
+
Read `evolve skills get evals core-concepts/rewardkit` for a complete verifier,
|
|
384
|
+
or `evolve skills get evals getting-started/first-task` for the task's build,
|
|
385
|
+
publish, check, and evaluation workflow.
|
package/spec/openapi.yaml
CHANGED
|
@@ -4994,8 +4994,8 @@ paths:
|
|
|
4994
4994
|
description: |
|
|
4995
4995
|
The resolved policy an empty `AnalyzeConfigInput` falls back to — the
|
|
4996
4996
|
five knobs every analysis that names none is stamped with:
|
|
4997
|
-
`model_name`, `rubric` (the platform's analyze rubric,
|
|
4998
|
-
|
|
4997
|
+
`model_name`, `rubric` (the platform's default analyze rubric),
|
|
4998
|
+
`prompt` (the built-in analyze
|
|
4999
4999
|
body, as the TEMPLATE a caller's own `prompt` replaces — with its
|
|
5000
5000
|
`{trial_path}`, `{task_section}` and `{criteria_guidance}` slots
|
|
5001
5001
|
unrendered; the output section Harbor appends is not part of it),
|
|
@@ -5835,8 +5835,8 @@ paths:
|
|
|
5835
5835
|
refusal answers. The `config`
|
|
5836
5836
|
part is the JSON `CheckConfigInput`; absent or
|
|
5837
5837
|
`{}` means the defaults (openrouter/deepseek/deepseek-v4.1-flash at its
|
|
5838
|
-
per-model effort, the platform's default check rubric
|
|
5839
|
-
|
|
5838
|
+
per-model effort, the platform's default check rubric, served by
|
|
5839
|
+
`GET /api/checks/defaults`).
|
|
5840
5840
|
|
|
5841
5841
|
The task bytes are never modified and never land anywhere but the
|
|
5842
5842
|
checker's sandbox and the platform's rows: Harbor's own rule ("Do
|
|
@@ -5973,8 +5973,8 @@ paths:
|
|
|
5973
5973
|
description: |
|
|
5974
5974
|
The resolved policy an empty `CheckConfigInput` falls back to — the
|
|
5975
5975
|
five knobs the create door stamps on every check that names none:
|
|
5976
|
-
`model_name`, `rubric` (the platform's check rubric,
|
|
5977
|
-
|
|
5976
|
+
`model_name`, `rubric` (the platform's default check rubric),
|
|
5977
|
+
`prompt` (the built-in check
|
|
5978
5978
|
body, as the TEMPLATE a caller's own `prompt` replaces — with its
|
|
5979
5979
|
`{task_path}`, `{file_tree}` and `{criteria_guidance}` slots
|
|
5980
5980
|
unrendered; the output section Harbor appends is not part of it),
|
|
@@ -12318,13 +12318,10 @@ components:
|
|
|
12318
12318
|
pattern: '^[a-z][a-z0-9_]*$'
|
|
12319
12319
|
description: >
|
|
12320
12320
|
Criterion identifier, snake_case (it keys the result's `checks`
|
|
12321
|
-
object). The platform's default
|
|
12322
|
-
|
|
12323
|
-
|
|
12324
|
-
|
|
12325
|
-
check rubric eleven (CheckConfigInput lists them); the derived
|
|
12326
|
-
labels read those names, and a rubric with other names carries
|
|
12327
|
-
no label.
|
|
12321
|
+
object). The platform's default rubrics are served by
|
|
12322
|
+
`GET /api/analyses/defaults` and `GET /api/checks/defaults`; the
|
|
12323
|
+
platform reads no criterion name — a run's result is its
|
|
12324
|
+
per-criterion table under whatever names its rubric carries.
|
|
12328
12325
|
description:
|
|
12329
12326
|
type: string
|
|
12330
12327
|
minLength: 1
|
|
@@ -12370,9 +12367,9 @@ components:
|
|
|
12370
12367
|
it configures that manual wave. `{}` is legal and means "all
|
|
12371
12368
|
defaults": openrouter/deepseek/deepseek-v4.1-flash at its per-model effort
|
|
12372
12369
|
(high) over
|
|
12373
|
-
the platform's default analyze rubric (
|
|
12374
|
-
`
|
|
12375
|
-
still runs when passed as `rubric
|
|
12370
|
+
the platform's default analyze rubric (served by
|
|
12371
|
+
`GET /api/analyses/defaults`; Harbor's own analyze-rubric.toml
|
|
12372
|
+
still runs when passed as `rubric`).
|
|
12376
12373
|
|
|
12377
12374
|
The analyzer always runs the claude-code harness (Harbor's default
|
|
12378
12375
|
analyze agent) in its own sandbox, under the network Harbor's
|
|
@@ -14786,8 +14783,7 @@ components:
|
|
|
14786
14783
|
AnalyzeResult (their analyze/models.py: `summary`, `checks` keyed
|
|
14787
14784
|
by criterion, `estimated_cost_usd`; `trial_name` is the enclosing
|
|
14788
14785
|
trial) with each check carrying the platform's evidence list and
|
|
14789
|
-
fourth outcome (AnalysisCheck),
|
|
14790
|
-
is provenance — which model, rubric and prompt THIS analysis ran
|
|
14786
|
+
fourth outcome (AnalysisCheck); the rest is provenance — which model, rubric and prompt THIS analysis ran
|
|
14791
14787
|
under, its lifecycle status, and its typed failure when it failed.
|
|
14792
14788
|
|
|
14793
14789
|
`estimated_cost_usd` is the analyzer agent's OWN metered spend (its
|
|
@@ -14807,7 +14803,6 @@ components:
|
|
|
14807
14803
|
- prompt
|
|
14808
14804
|
- summary
|
|
14809
14805
|
- checks
|
|
14810
|
-
- label
|
|
14811
14806
|
- estimated_cost_usd
|
|
14812
14807
|
- failure
|
|
14813
14808
|
- created_at
|
|
@@ -14878,24 +14873,6 @@ components:
|
|
|
14878
14873
|
criterion names (the frozen-criteria law). Null until completed.
|
|
14879
14874
|
additionalProperties:
|
|
14880
14875
|
$ref: '#/components/schemas/AnalysisCheck'
|
|
14881
|
-
label:
|
|
14882
|
-
type: [string, 'null']
|
|
14883
|
-
enum: [flagged, env_fault, unclear, clean, null]
|
|
14884
|
-
description: >
|
|
14885
|
-
The derived label — computed by the platform from the outcomes
|
|
14886
|
-
when the result is stored, never asked from the model, so it is
|
|
14887
|
-
the same rule for every analysis and can never contradict the
|
|
14888
|
-
checks. The rule reads the default analyze rubric's criteria,
|
|
14889
|
-
precedence in this order: `flagged` on a fail of
|
|
14890
|
-
score_is_earned, score_is_correct, task_was_fair or
|
|
14891
|
-
report_is_truthful; else `env_fault` on a fail of
|
|
14892
|
-
environment_worked; else `unclear` on an unknown of any of those
|
|
14893
|
-
five, or a not_applicable of score_is_earned (the agent never
|
|
14894
|
-
acted) or score_is_correct (no reward exists); else `clean`.
|
|
14895
|
-
ended_by_its_own_decision and worked_as_for_a_real_user never
|
|
14896
|
-
change it. Null until completed, and null on a completed
|
|
14897
|
-
analysis whose rubric is not the default one — a custom rubric
|
|
14898
|
-
carries its per-criterion outcomes and no label.
|
|
14899
14876
|
estimated_cost_usd:
|
|
14900
14877
|
type: [number, 'null']
|
|
14901
14878
|
usage:
|
|
@@ -15036,14 +15013,8 @@ components:
|
|
|
15036
15013
|
`claude-sonnet-4-6`, :101-103 — this platform's is the analyzer's
|
|
15037
15014
|
`openrouter/deepseek/deepseek-v4.1-flash`, one roster and one default for both rubric
|
|
15038
15015
|
agents, a recorded deviation), `rubric` (`-r/--rubric`; the default
|
|
15039
|
-
is the platform's check rubric,
|
|
15040
|
-
|
|
15041
|
-
verifier_is_correct, no_answer_leakage, grader_is_out_of_reach,
|
|
15042
|
-
reference_solution_is_valid, verifier_rejects_non_solutions,
|
|
15043
|
-
environment_builds_and_runs, verification_is_stable,
|
|
15044
|
-
limits_allow_the_task, task_is_solvable — the derived `label` and
|
|
15045
|
-
`executed` read them, and a rubric with other names carries
|
|
15046
|
-
neither; Harbor's own default-rubric.toml still runs when passed),
|
|
15016
|
+
is the platform's check rubric, served by `GET /api/checks/defaults`;
|
|
15017
|
+
Harbor's own default-rubric.toml still runs when passed),
|
|
15047
15018
|
`prompt` (`-p/--prompt`, the file's TEXT: it replaces the built-in
|
|
15048
15019
|
check prompt, in Harbor's check.txt slot, and is rendered with
|
|
15049
15020
|
`{task_path}`, `{file_tree}`, `{criteria_guidance}` — checker.py:
|
|
@@ -15152,8 +15123,7 @@ components:
|
|
|
15152
15123
|
One task's quality check — Harbor's QualityCheckResult shape
|
|
15153
15124
|
(their cli/quality_checker/models.py:31-35: `task_name`, `checks`
|
|
15154
15125
|
keyed by criterion, `cost_usd`), its checks extended by the result
|
|
15155
|
-
schema
|
|
15156
|
-
hosted record: its own
|
|
15126
|
+
schema, plus the hosted record: its own
|
|
15157
15127
|
id, the check it belongs to, its lifecycle (the analysis ladder's
|
|
15158
15128
|
four lowercase words — Harbor's dialect), the bounded attempt count,
|
|
15159
15129
|
and a typed `failure` in place of Harbor's `error` string (the
|
|
@@ -15163,11 +15133,10 @@ components:
|
|
|
15163
15133
|
(Harbor's check-task-template/tests/validate.py extended by the
|
|
15164
15134
|
result schema): one key per rubric criterion, each an AnalysisCheck
|
|
15165
15135
|
`{outcome, explanation, evidence}` — no summary (a check has none;
|
|
15166
|
-
analyze does). `
|
|
15167
|
-
result is stored. `cost_usd` is the checker agent's OWN metered
|
|
15136
|
+
analyze does). `cost_usd` is the checker agent's OWN metered
|
|
15168
15137
|
spend on its capped key; null when nothing was measured, never a
|
|
15169
15138
|
fabricated 0.
|
|
15170
|
-
required: [id, check_id, task_name, status, checks,
|
|
15139
|
+
required: [id, check_id, task_name, status, checks, cost_usd, attempts, failure, created_at, finished_at]
|
|
15171
15140
|
properties:
|
|
15172
15141
|
id:
|
|
15173
15142
|
type: string
|
|
@@ -15186,30 +15155,6 @@ components:
|
|
|
15186
15155
|
description: One entry per rubric criterion, keys exactly the frozen criteria. Null until completed.
|
|
15187
15156
|
additionalProperties:
|
|
15188
15157
|
$ref: '#/components/schemas/AnalysisCheck'
|
|
15189
|
-
label:
|
|
15190
|
-
type: [string, 'null']
|
|
15191
|
-
enum: [has_a_problem, unclear, no_problem_found, null]
|
|
15192
|
-
description: >
|
|
15193
|
-
The derived label — computed by the platform from the outcomes
|
|
15194
|
-
when the result is stored, never asked from the model. The rule
|
|
15195
|
-
reads the default check rubric's criteria, precedence in this
|
|
15196
|
-
order: `has_a_problem` on a fail of any criterion; else
|
|
15197
|
-
`unclear` on an unknown of any of the six file-based criteria
|
|
15198
|
-
(instruction_is_sufficient, tests_match_the_instruction,
|
|
15199
|
-
verifier_is_correct, no_answer_leakage, grader_is_out_of_reach,
|
|
15200
|
-
task_is_solvable); else `no_problem_found`. Null until
|
|
15201
|
-
completed, and null on a completed check whose rubric is not
|
|
15202
|
-
the default one — a custom rubric carries its per-criterion
|
|
15203
|
-
outcomes and no label.
|
|
15204
|
-
executed:
|
|
15205
|
-
type: [boolean, 'null']
|
|
15206
|
-
description: >
|
|
15207
|
-
Whether the box ran the task's environment: true when none of
|
|
15208
|
-
the five run-based criteria (reference_solution_is_valid,
|
|
15209
|
-
verifier_rejects_non_solutions, environment_builds_and_runs,
|
|
15210
|
-
verification_is_stable, limits_allow_the_task) is unknown, so a
|
|
15211
|
-
reading-only `no_problem_found` is never mistaken for a run.
|
|
15212
|
-
Null exactly when `label` is null.
|
|
15213
15158
|
cost_usd:
|
|
15214
15159
|
type: [number, 'null']
|
|
15215
15160
|
attempts:
|