@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.
Files changed (152) hide show
  1. package/dist/{chunk-DK2MGUPB.js → chunk-RFLMRPGK.js} +5 -5
  2. package/dist/cli/index.cjs +39 -39
  3. package/dist/cli/index.d.cts +3 -3
  4. package/dist/cli/index.d.ts +3 -3
  5. package/dist/cli/index.js +30 -30
  6. package/dist/index.cjs +1 -1
  7. package/dist/index.d.cts +4 -4
  8. package/dist/index.d.ts +4 -4
  9. package/dist/index.js +1 -1
  10. package/dist/{types-B_qmzlMk.d.cts → types-84M4J_Vm.d.cts} +11 -44
  11. package/dist/{types-B_qmzlMk.d.ts → types-84M4J_Vm.d.ts} +11 -44
  12. package/package.json +4 -4
  13. package/skills/create-adapter/SKILL.md +71 -26
  14. package/skills/create-task/SKILL.md +124 -66
  15. package/skills/evolve/SKILL.md +37 -20
  16. package/skills/evolve-evals/SKILL.md +142 -69
  17. package/skills/evolve-evals/references/cli-reference/agent.md +76 -0
  18. package/skills/evolve-evals/references/cli-reference/analysis.md +78 -0
  19. package/skills/evolve-evals/references/cli-reference/analyze.md +95 -0
  20. package/skills/evolve-evals/references/cli-reference/auth.md +96 -0
  21. package/skills/evolve-evals/references/cli-reference/check.md +156 -0
  22. package/skills/evolve-evals/references/cli-reference/dataset.md +154 -0
  23. package/skills/evolve-evals/references/cli-reference/filesystem.md +168 -0
  24. package/skills/evolve-evals/references/cli-reference/index.md +149 -0
  25. package/skills/evolve-evals/references/cli-reference/job.md +198 -0
  26. package/skills/evolve-evals/references/cli-reference/run.md +187 -0
  27. package/skills/evolve-evals/references/cli-reference/secrets.md +77 -0
  28. package/skills/evolve-evals/references/cli-reference/session.md +56 -0
  29. package/skills/evolve-evals/references/cli-reference/skill.md +52 -0
  30. package/skills/evolve-evals/references/cli-reference/skills.md +85 -0
  31. package/skills/evolve-evals/references/cli-reference/trial.md +115 -0
  32. package/skills/evolve-evals/references/cli-reference/upload.md +72 -0
  33. package/skills/evolve-evals/references/core-concepts/agents.md +96 -0
  34. package/skills/evolve-evals/references/core-concepts/analyze.md +143 -0
  35. package/skills/evolve-evals/references/core-concepts/check.md +116 -0
  36. package/skills/evolve-evals/references/core-concepts/compatibility.md +39 -0
  37. package/skills/evolve-evals/references/core-concepts/compose.md +103 -0
  38. package/skills/evolve-evals/references/core-concepts/datasets.md +234 -0
  39. package/skills/evolve-evals/references/core-concepts/index.md +52 -0
  40. package/skills/evolve-evals/references/core-concepts/jobs.md +223 -0
  41. package/skills/evolve-evals/references/core-concepts/models.md +73 -0
  42. package/skills/evolve-evals/references/core-concepts/multi-step.md +93 -0
  43. package/skills/evolve-evals/references/core-concepts/rewardkit.md +341 -0
  44. package/skills/evolve-evals/references/core-concepts/sandboxes.md +73 -0
  45. package/skills/evolve-evals/references/core-concepts/secrets.md +86 -0
  46. package/skills/evolve-evals/references/core-concepts/sharing.md +81 -0
  47. package/skills/evolve-evals/references/core-concepts/skills.md +100 -0
  48. package/skills/evolve-evals/references/core-concepts/task-config.md +169 -0
  49. package/skills/evolve-evals/references/core-concepts/task-environment.md +127 -0
  50. package/skills/evolve-evals/references/core-concepts/task-reference.md +191 -0
  51. package/skills/evolve-evals/references/core-concepts/task-verifiers.md +209 -0
  52. package/skills/evolve-evals/references/core-concepts/tasks.md +90 -0
  53. package/skills/evolve-evals/references/core-concepts/teams.md +128 -0
  54. package/skills/evolve-evals/references/core-concepts/trial-outputs.md +225 -0
  55. package/skills/evolve-evals/references/core-concepts/trials.md +129 -0
  56. package/skills/evolve-evals/references/core-concepts/upload-sdk-session.md +240 -0
  57. package/skills/evolve-evals/references/core-concepts/upload.md +166 -0
  58. package/skills/evolve-evals/references/dashboard/checks.md +54 -0
  59. package/skills/evolve-evals/references/dashboard/datasets.md +65 -0
  60. package/skills/evolve-evals/references/dashboard/jobs.md +106 -0
  61. package/skills/evolve-evals/references/dashboard/traces.md +54 -0
  62. package/skills/evolve-evals/references/dashboard/trial-viewer.md +77 -0
  63. package/skills/evolve-evals/references/getting-started/first-task.md +228 -0
  64. package/skills/evolve-evals/references/getting-started/installation.md +79 -0
  65. package/skills/evolve-evals/references/getting-started/quick-start.md +100 -0
  66. package/skills/evolve-evals/references/index.md +58 -0
  67. package/skills/evolve-evals/references/sdk/http.md +110 -0
  68. package/skills/evolve-evals/references/sdk/python.md +108 -0
  69. package/skills/evolve-evals/references/sdk/typescript.md +104 -0
  70. package/skills/evolve-evals/references/sdk-reference/agents.md +75 -0
  71. package/skills/evolve-evals/references/sdk-reference/analyses.md +124 -0
  72. package/skills/evolve-evals/references/sdk-reference/auth.md +171 -0
  73. package/skills/evolve-evals/references/sdk-reference/checks.md +145 -0
  74. package/skills/evolve-evals/references/sdk-reference/datasets.md +170 -0
  75. package/skills/evolve-evals/references/sdk-reference/error-codes.md +231 -0
  76. package/skills/evolve-evals/references/sdk-reference/errors.md +98 -0
  77. package/skills/evolve-evals/references/sdk-reference/filesystem.md +166 -0
  78. package/skills/evolve-evals/references/sdk-reference/index.md +161 -0
  79. package/skills/evolve-evals/references/sdk-reference/jobs.md +250 -0
  80. package/skills/evolve-evals/references/sdk-reference/meta.md +54 -0
  81. package/skills/evolve-evals/references/sdk-reference/methods/agents.md +154 -0
  82. package/skills/evolve-evals/references/sdk-reference/methods/analyses.md +211 -0
  83. package/skills/evolve-evals/references/sdk-reference/methods/auth.md +257 -0
  84. package/skills/evolve-evals/references/sdk-reference/methods/checks.md +460 -0
  85. package/skills/evolve-evals/references/sdk-reference/methods/datasets.md +687 -0
  86. package/skills/evolve-evals/references/sdk-reference/methods/filesystem.md +527 -0
  87. package/skills/evolve-evals/references/sdk-reference/methods/jobs.md +1021 -0
  88. package/skills/evolve-evals/references/sdk-reference/methods/meta.md +209 -0
  89. package/skills/evolve-evals/references/sdk-reference/methods/secrets.md +157 -0
  90. package/skills/evolve-evals/references/sdk-reference/methods/skills.md +125 -0
  91. package/skills/evolve-evals/references/sdk-reference/methods/trials.md +371 -0
  92. package/skills/evolve-evals/references/sdk-reference/secrets.md +104 -0
  93. package/skills/evolve-evals/references/sdk-reference/skills.md +66 -0
  94. package/skills/evolve-evals/references/sdk-reference/trials.md +164 -0
  95. package/skills/evolve-evals/references/sdk-reference/types.md +1249 -0
  96. package/skills/publish/SKILL.md +103 -79
  97. package/skills/rewardkit/SKILL.md +78 -23
  98. package/spec/openapi.yaml +19 -74
  99. package/skills/evolve-evals/references/cli-reference/agent.mdx +0 -79
  100. package/skills/evolve-evals/references/cli-reference/analysis.mdx +0 -160
  101. package/skills/evolve-evals/references/cli-reference/analyze.mdx +0 -84
  102. package/skills/evolve-evals/references/cli-reference/auth.mdx +0 -133
  103. package/skills/evolve-evals/references/cli-reference/check.mdx +0 -263
  104. package/skills/evolve-evals/references/cli-reference/dataset.mdx +0 -151
  105. package/skills/evolve-evals/references/cli-reference/index.mdx +0 -108
  106. package/skills/evolve-evals/references/cli-reference/job.mdx +0 -278
  107. package/skills/evolve-evals/references/cli-reference/run.mdx +0 -204
  108. package/skills/evolve-evals/references/cli-reference/secrets.mdx +0 -95
  109. package/skills/evolve-evals/references/cli-reference/skill.mdx +0 -61
  110. package/skills/evolve-evals/references/cli-reference/skills.mdx +0 -81
  111. package/skills/evolve-evals/references/cli-reference/trial.mdx +0 -181
  112. package/skills/evolve-evals/references/cli-reference/upload.mdx +0 -36
  113. package/skills/evolve-evals/references/core-concepts/agents.mdx +0 -106
  114. package/skills/evolve-evals/references/core-concepts/analyze.mdx +0 -86
  115. package/skills/evolve-evals/references/core-concepts/check.mdx +0 -64
  116. package/skills/evolve-evals/references/core-concepts/datasets.mdx +0 -138
  117. package/skills/evolve-evals/references/core-concepts/index.mdx +0 -42
  118. package/skills/evolve-evals/references/core-concepts/jobs.mdx +0 -151
  119. package/skills/evolve-evals/references/core-concepts/models.mdx +0 -68
  120. package/skills/evolve-evals/references/core-concepts/sandboxes.mdx +0 -52
  121. package/skills/evolve-evals/references/core-concepts/secrets.mdx +0 -41
  122. package/skills/evolve-evals/references/core-concepts/sharing.mdx +0 -35
  123. package/skills/evolve-evals/references/core-concepts/skills.mdx +0 -42
  124. package/skills/evolve-evals/references/core-concepts/tasks.mdx +0 -216
  125. package/skills/evolve-evals/references/core-concepts/teams.mdx +0 -36
  126. package/skills/evolve-evals/references/core-concepts/trial-outputs.mdx +0 -117
  127. package/skills/evolve-evals/references/core-concepts/trials.mdx +0 -103
  128. package/skills/evolve-evals/references/core-concepts/upload.mdx +0 -93
  129. package/skills/evolve-evals/references/dashboard/checks.mdx +0 -21
  130. package/skills/evolve-evals/references/dashboard/datasets.mdx +0 -24
  131. package/skills/evolve-evals/references/dashboard/jobs.mdx +0 -65
  132. package/skills/evolve-evals/references/dashboard/traces.mdx +0 -17
  133. package/skills/evolve-evals/references/dashboard/trial-viewer.mdx +0 -30
  134. package/skills/evolve-evals/references/getting-started/installation.mdx +0 -56
  135. package/skills/evolve-evals/references/getting-started/quick-start.mdx +0 -94
  136. package/skills/evolve-evals/references/index.mdx +0 -48
  137. package/skills/evolve-evals/references/sdk/python.mdx +0 -161
  138. package/skills/evolve-evals/references/sdk/typescript.mdx +0 -163
  139. package/skills/evolve-evals/references/sdk-reference/agents.mdx +0 -108
  140. package/skills/evolve-evals/references/sdk-reference/analyses.mdx +0 -222
  141. package/skills/evolve-evals/references/sdk-reference/auth.mdx +0 -116
  142. package/skills/evolve-evals/references/sdk-reference/checks.mdx +0 -300
  143. package/skills/evolve-evals/references/sdk-reference/datasets.mdx +0 -346
  144. package/skills/evolve-evals/references/sdk-reference/errors.mdx +0 -210
  145. package/skills/evolve-evals/references/sdk-reference/index.mdx +0 -60
  146. package/skills/evolve-evals/references/sdk-reference/jobs.mdx +0 -822
  147. package/skills/evolve-evals/references/sdk-reference/meta.mdx +0 -52
  148. package/skills/evolve-evals/references/sdk-reference/skills.mdx +0 -69
  149. package/skills/evolve-evals/references/sdk-reference/trials.mdx +0 -302
  150. package/skills/evolve-evals/references/sdk-reference/types.mdx +0 -274
  151. package/skills/evolve-evals/references/snippets/global-options.mdx +0 -13
  152. package/skills/evolve-evals/references/snippets/list-flags.mdx +0 -23
@@ -1,216 +0,0 @@
1
- ---
2
- title: "Tasks"
3
- description: "The task format: one directory with an instruction, an environment, a verifier, and an optional reference solution."
4
- ---
5
-
6
- A task is a directory. The agent reads the instruction and works inside the environment. The verifier runs afterwards and scores the work.
7
-
8
- ```text
9
- my-task/
10
- ├── instruction.md what the agent is asked to do
11
- ├── task.toml timeouts, network, resources, verifier mode
12
- ├── pre_artifacts.sh optional: collects the agent's work after the run
13
- ├── environment/
14
- │ └── Dockerfile the box the agent works in
15
- ├── tests/
16
- │ └── test.sh the verifier: writes the reward
17
- └── solution/
18
- └── solve.sh optional reference solution
19
- ```
20
-
21
- `task.toml`, `instruction.md` and `tests/test.sh` are required.
22
-
23
- ## instruction.md
24
-
25
- Plain Markdown, handed to the agent unchanged at the start of the trial. Say what done looks like, use absolute paths (`/app/out.json`, not `out.json`), and describe the output's shape, so the instruction and the verifier agree.
26
-
27
- ## environment/
28
-
29
- A `Dockerfile` that builds the box the agent works in, or a `docker-compose.yaml` when the task needs several containers; the agent then runs in the `main` service. The image is built once, when the dataset is published. A task can instead name a prebuilt image with `docker_image` in `task.toml` and omit the folder: any public registry, with the tag or digest pinned. An untagged or `:latest` reference is refused at import.
30
-
31
- The agent works in `/app`, and its git state is the submission, so seed a git baseline in the Dockerfile: `git init`, `git add -A`, one commit.
32
-
33
- The image's `ENTRYPOINT` runs before the agent starts, so a service the image starts is running when the agent arrives. Keep-alive entrypoints such as `sleep infinity` start nothing, and `CMD` is never run. A service that dies before the agent starts fails the trial with its exit code. An image that starts a service cannot be verified in `separate` mode: verify in `shared` mode, or give the verifier its own `tests/Dockerfile`.
34
-
35
- ## tests/
36
-
37
- `tests/test.sh` is the verifier. It runs in the task's working directory after the agent finishes, checks the work, and writes the reward to one of two files.
38
-
39
- - `/logs/verifier/reward.txt`: one number in `[0, 1]`, usually `1` or `0`.
40
- - `/logs/verifier/reward.json`: a JSON object of named numbers, for a score with several parts.
41
-
42
- When both exist, `reward.json` wins. The primary reward is the value under `"reward"`, else the single value when the object has one key. Several named scores with no `"reward"` still score the trial, as metrics with no primary reward, and the task is left out of pass@k. Everything the script prints is kept as the verifier log.
43
-
44
- ```bash
45
- #!/bin/bash
46
- set -uo pipefail
47
-
48
- if uvx pytest /tests/test_outputs.py; then
49
- echo 1 > /logs/verifier/reward.txt
50
- else
51
- echo 0 > /logs/verifier/reward.txt
52
- fi
53
- ```
54
-
55
- Everything under `tests/` is carried onto the verifier beside `test.sh`.
56
-
57
- `tests/Dockerfile` is built only for a `separate` verifier that pins no `docker_image`. Otherwise it is never built, the task imports with the `tests_dockerfile_not_built` note, and anything the recipe would install must already be in the image.
58
-
59
- ## pre_artifacts.sh
60
-
61
- Optional. It runs in the agent's sandbox after the agent finishes and writes the work to hand on under `/logs/artifacts`. Uncommitted work is committed first. Without it, the paths listed under `artifacts` are collected for you.
62
-
63
- ```bash
64
- #!/bin/bash
65
- set -uo pipefail
66
- mkdir -p /logs/artifacts
67
- git diff --binary "$(git rev-list --max-parents=0 HEAD)" HEAD > /logs/artifacts/model.patch
68
- ```
69
-
70
- ## solution/
71
-
72
- Optional. `solution/solve.sh` is the reference solution. `evolve check` runs it to confirm the task is solvable. It is archived at publish, gates nothing, and the agent is never given it.
73
-
74
- ## task.toml
75
-
76
- The keys a task author sets. Everything else has a default.
77
-
78
- ```toml
79
- [agent]
80
- timeout_sec = 3600
81
-
82
- [verifier]
83
- timeout_sec = 600
84
- environment_mode = "shared"
85
-
86
- [environment]
87
- network_mode = "allowlist"
88
- allowed_hosts = ["pypi.org"]
89
- cpus = 2
90
- memory_mb = 4096
91
- storage_mb = 10240
92
- ```
93
-
94
- - **Timeouts.** `agent.timeout_sec` and `verifier.timeout_sec`, in seconds. The defaults are 3600 s for the agent and 600 s for the verifier; a declared value always wins. A job can stretch them with `--timeout-multiplier`.
95
- - **Network access.** `environment.network_mode` is `no-network` (the agent reaches nothing but its model), `allowlist` (only the hosts in `allowed_hosts`, accepted with this mode only), or `public` (the open internet, and the default). The older `allow_internet = false` means `no-network`, `true` means `public`. Only `no-network` makes the spend cap airtight; see [models](/core-concepts/models).
96
- - **Verifier network.** A `shared` verifier sees the agent box's network; a `[verifier] network_mode` that differs from it is refused at import. A `separate` verifier box uses the mode of `[verifier.environment]`, else a copy of `[environment]`'s, with `[verifier] network_mode` overriding either. The platform never seals a verifier on its own.
97
- - **Verifier mode.** `verifier.environment_mode` is `shared`, the verifier runs inside the agent's sandbox after the agent finishes and its credentials are revoked, or `separate`, the verifier boots a fresh copy of the environment and judges only what the task lists under `artifacts`. Without that list a separate verifier sees none of the agent's work, and even the reference solution scores 0. A `[verifier.environment]` table implies `separate`. Only settled separate-mode trials can be [regraded](/core-concepts/jobs#derive-a-new-job).
98
- - **Resources.** `environment.cpus`, `memory_mb`, `storage_mb`, and `gpus` with `gpu_types`. Omitted, the provider's default sizing applies. A size above a provider's ceiling refuses on that provider; above every ceiling it is refused at import. The ceilings are on [sandboxes](/core-concepts/sandboxes).
99
- - **Artifacts.** A top-level `artifacts = ["/app/out.json"]` list names the paths carried out of the agent's sandbox: into a separate verifier, and, on a separate-mode trial, into the trial's stored artifacts.
100
-
101
- ## Environment variables
102
-
103
- A task's `[environment.env]` table has two value kinds.
104
-
105
- ```toml
106
- [environment.env]
107
- APP_MODE = "ci" # literal: lands in the box as written
108
- GITHUB_TOKEN = "${GITHUB_TOKEN}" # template: a secret the job must attach
109
- LOG_LEVEL = "${LOG_LEVEL:-info}" # template with a fallback
110
- ```
111
-
112
- A literal lands in the box as written; it is dataset content, so it must never be a secret. A template, `${VAR}` as the whole value, asks for a secret the job attaches with `--secret`, matched by env name; see [secrets](/core-concepts/secrets). `${VAR:-default}` falls back to the default when nothing is attached. A job that leaves a template unsatisfied is refused with `secret_not_attached`, and a `${...}` inside a longer string is refused at import.
113
-
114
- The image's own start process sees the literals only; templates reach the agent and everything it launches.
115
-
116
- ## LLM judges
117
-
118
- A verifier can grade with a language model. The task asks for the credential with an environment template in `task.toml`:
119
-
120
- ```toml
121
- [verifier.env]
122
- ANTHROPIC_API_KEY = "${ANTHROPIC_API_KEY}"
123
- ```
124
-
125
- The verifier receives a credential for the platform's gateway under that name, with the matching base-URL variable set beside it, so `litellm`-style clients and `rewardkit` work unchanged and offline. The recognized names are `ANTHROPIC_API_KEY` and `OPENAI_API_KEY` with their `_API_BASE` and `_BASE_URL` companions, each as the entire value; `"Bearer ${ANTHROPIC_API_KEY}"` is refused at import. Any other `${VAR:-default}` resolves to its default, and a non-judge template with no default is refused.
126
-
127
- The rubric names the judge model, or `rewardkit`'s own default, `anthropic/claude-sonnet-4-6`, applies; the credential admits its key's model family only. `--ve REWARDKIT_JUDGE=<agent>` and `--ve REWARDKIT_MODEL=<model>` override the rubric's `[judge]` for one job, in both verifier modes; no other `--ve` key is accepted. The judge's spend is shown apart from the agent's, on the trial and on the job. Judge tasks are not regradable yet.
128
-
129
- ## Multi-step tasks
130
-
131
- A task can walk the agent through ordered steps in one shared environment. A `steps/` directory holds one sub-directory per step in place of the root `instruction.md`, `tests/` and `solution/`, and `[[steps]]` entries in `task.toml` declare them in order. `environment/` stays at the root and the filesystem persists from step to step.
132
-
133
- ```text
134
- migrate-then-prove/
135
- ├── task.toml [[steps]] entries, in order
136
- ├── environment/
137
- │ └── Dockerfile
138
- ├── tests/ optional shared helpers for every step's verifier
139
- └── steps/
140
- ├── 01-migrate/
141
- │ ├── instruction.md
142
- │ ├── tests/ merged over the shared tests/
143
- │ └── workdir/ optional files landed before the step; its setup.sh runs first
144
- └── 02-prove/
145
- ├── instruction.md
146
- └── tests/
147
- ```
148
-
149
- ```toml
150
- multi_step_reward_strategy = "mean" # "mean" (default) or "final"
151
-
152
- [[steps]]
153
- name = "01-migrate"
154
- min_reward = 0.5 # below this the trial stops here
155
-
156
- [[steps]]
157
- name = "02-prove"
158
-
159
- [steps.agent]
160
- timeout_sec = 600 # this step's override of the task-level timeout
161
- ```
162
-
163
- Each step has its own instruction, its own verifier (`tests/` merged over the shared `tests/`), an optional `workdir/` whose `setup.sh` runs first, and its own healthcheck, `timeout_sec` under `[steps.agent]` and `[steps.verifier]`, `[steps.verifier].env` and `artifacts` list. Each executed step is verified when it ends, and the results are on the trial as `step_results`.
164
-
165
- `multi_step_reward_strategy` is `"mean"` (the default, over the steps that produced a result) or `"final"` (the last executed step's result). `min_reward` on a step ends the trial early when the step under-scores: a number gates the primary reward, a map gates each key. A step that fails, or whose healthcheck fails, ends the trial there. A retried trial starts again from the first step.
166
-
167
- Refused at import: a per-step `user`, network declaration, or verifier environment or mode. `[[steps]]` and `steps/` must agree both ways.
168
-
169
- ## MCP servers
170
-
171
- A task can hand its agent MCP tools, registered into the harness's native MCP configuration beside any the arm carries.
172
-
173
- ```toml
174
- [[environment.mcp_servers]]
175
- name = "docs-search"
176
- transport = "streamable-http" # or "sse" (the default); "http" is read as streamable-http
177
- url = "http://mcp-server:8000/mcp" # a compose service, reachable with no egress
178
-
179
- [[environment.mcp_servers]]
180
- name = "sqlite"
181
- transport = "stdio" # launched inside the box by the harness
182
- command = "uvx"
183
- args = ["mcp-server-sqlite", "--db-path", "/app/data.db"]
184
- ```
185
-
186
- A `stdio` server declares `command` and `args`; it inherits `[environment.env]`, and there is no `env` field. A remote server declares an `http` or `https` `url` with no credential in it. The URL must be reachable under the task's own declarations, checked at import: the agent's own container, a compose service by name, or a public host the network policy admits. A `stdio` server that downloads itself (`npx …`, `uvx …`) fails at run time under `no-network`; bake it into the image.
187
-
188
- ## Healthcheck and the agent user
189
-
190
- `[environment.healthcheck]` keeps a slow-starting environment from meeting the agent too early: the command runs before the agent is installed, and the agent starts only once it exits `0`.
191
-
192
- ```toml
193
- [environment.healthcheck]
194
- command = "curl -fsS http://localhost:8000/health"
195
- interval_sec = 5 # every field below command is optional; these are the defaults
196
- timeout_sec = 30
197
- start_period_sec = 0
198
- start_interval_sec = 5
199
- retries = 3
200
- ```
201
-
202
- Inside `start_period_sec` a failure does not count. After it, `retries` failures spaced by `interval_sec`, each bounded by `timeout_sec`, fail the trial before any agent spend. On a multi-container task the check sees the `[environment.env]` literals; on a single-container task it sees none of the table, and templates are visible to no healthcheck.
203
-
204
- `[agent] user = "dev"` runs the agent as that user, by name or numeric uid. It must exist in the image (`RUN useradd -m dev`); a missing user fails the trial before any spend. Omitted, the image's `USER` applies, root by default. `USER app:group` in the Dockerfile is refused at import, and so is `[verifier] user` other than `root`.
205
-
206
- ## Not supported
207
-
208
- - **Computer-use and desktop tasks.** `[environment].os` other than Linux is refused at import. A task whose instruction assumes a desktop is not refused; it runs on a Linux box without one.
209
- - **Run-level trajectory seeding.** No job flag names a session to resume from. Task-level seeding works: a `trajectory.json` beside `instruction.md` (or in the first step's directory) is seeded into the agent's session on `claude` and `codex`; other harnesses refuse before any spend. `[agent] load_trajectory` and `resume_trajectory` keys are refused.
210
- - **Verifier scripts whose PEP-723 header needs a package index.** Under `no-network` the verifier box has no index (only `rewardkit` and `litellm` resolve, on a judge task), so such a task is refused at import. Under `allowlist` or `public`, or without `uv run` or `uvx` in `tests/`, nothing changes.
211
-
212
- ## From tasks to a dataset
213
-
214
- A dataset is a folder of task directories, published to the catalog with `evolve dataset publish`. See [datasets](/core-concepts/datasets).
215
-
216
- This is the Harbor task format; the full specification is at [docs.harborframework.com](https://docs.harborframework.com/core-concepts/tasks/overview).
@@ -1,36 +0,0 @@
1
- ---
2
- title: "Teams"
3
- description: "Create a team, invite people, run under it, and see each other's work."
4
- ---
5
-
6
- Every account has a personal organization from the start. A team is an organization you create and invite people into: jobs, checks, sessions, datasets, agents and skills belong to one organization, and every member sees them.
7
-
8
- ```bash
9
- evolve auth org create acme --display-name "Acme Lab"
10
- evolve auth org invite acme
11
- ```
12
-
13
- `invite` prints a token once. Whoever runs `evolve auth org join <token>` while signed in joins as a member. Owners manage members and invites; members run and read.
14
-
15
- ## Run under a team
16
-
17
- ```bash
18
- evolve run -d terminal-bench-4@4.0 -a claude -m haiku -l 5 --org acme
19
- evolve job list --scope org
20
- ```
21
-
22
- `--org` names the organization a job lands in. Without it, the job goes to your default organization (`evolve auth org use acme` sets one, `evolve auth org use personal` clears it) or to your personal one. `dataset publish --org` places a new dataset the same way; a new version of an existing dataset stays where that dataset is. The public catalog is visible to every organization. `job list --scope` picks what you see: `my` (yours), `shared` (what teammates created, and runs shared with you by email) or `org` (everything in your organizations, yours included).
23
-
24
- In the SDK the same choice is `org: "acme"` on `jobs().start()` and `datasets().publish()`, or once for a client with `hosted({ apiKey, org: "acme" })`.
25
-
26
- ## In the dashboard
27
-
28
- The box under your account in the sidebar is the workspace switcher. It always names one workspace: the one in the page's URL, otherwise the one you last opened in this tab, otherwise Personal. Its menu lists Personal and every team you belong to, each with your role, and **Create team**. Pick a workspace and Datasets, Jobs, Traces, Members and Settings show that workspace's work; on a page that is yours alone (Skills, Integrations, Secrets, API Keys, Usage, Billing) the pick is remembered for the next one.
29
-
30
- TEAM in the sidebar has two pages. Members lists people with their role: an owner has MAKE OWNER, DEMOTE and REMOVE on every other row, and everyone has LEAVE on their own; below the list, an owner has NEW INVITE LINK, shown once, and REVOKE. A person who opens an invite link signs in, or signs up, and joins. Settings holds the team's name, and DELETE TEAM for an owner. In Personal, Members lists only you and Settings shows your workspace's name.
31
-
32
- Traces is under the workspace too. In a team it is one list of every run in that team, with a CREATED BY column naming who ran each. In Personal it has two tabs: MINE (yours, in any team) and SHARED WITH ME (what teammates made, plus runs shared with you by email). Skills lists your own uploads.
33
-
34
- <Card title="auth reference" icon="terminal" href="/cli-reference/auth">
35
- Every `evolve auth org` command.
36
- </Card>
@@ -1,117 +0,0 @@
1
- ---
2
- title: "Trial outputs"
3
- description: "What a finished trial gives you, file by file, and in which formats."
4
- ---
5
-
6
- A finished trial leaves five kinds of output: its record, its parsed trace, its trajectory, the raw streams of the agent and the verifier, and the agent's home folder. All of them download as one directory, and each can be read on its own.
7
-
8
- ## The trial directory
9
-
10
- `evolve trial download <trial-id> -o trials/` saves the trial under `trials/<trial-id>/`. A file the trial never produced is absent, never empty.
11
-
12
- ```text
13
- <trial-id>/
14
- ├── config.json the trial's identity: its task and its agent
15
- ├── result.json the outcome: status, reward, verifier verdict, exception
16
- ├── evolve.json the platform's record: cost and tokens per lane, provider, regrade lineage
17
- ├── exception.txt present when the trial ended with an exception
18
- ├── agent/
19
- │ ├── trajectory.json the ATIF trajectory, when stored
20
- │ ├── trace-parsed.jsonl the parsed trace, one {seq, type, data} per line
21
- │ ├── codex.txt the harness's stdout, under the harness's own name
22
- │ ├── stderr.log the harness's stderr
23
- │ ├── agent-home.json the home capture record
24
- │ └── .codex/ the captured home, at its real names
25
- └── verifier/
26
- ├── test-stdout.txt everything the verifier printed
27
- └── reward.json the rewards map
28
- ```
29
-
30
- The stdout file takes the harness's name: `claude-code.txt`, `codex.txt`, `gemini-cli.txt`, `qwen-code.txt`, `kimi-code.txt`, `opencode.txt` or `droid.txt`, and `stdout.log` for an agent you registered yourself. The tree also holds `agent/sessions/` (claude, codex), `agent/qwen-sessions/` (qwen) and `agent/opencode/` (opencode): copies of the session files at the paths other tools expect.
31
-
32
- `result.json` states `agent_result.cost_usd` only once the spend is final; until then it is null there, and `evolve.json` carries the current figure with its `spend_source`. Tokens are always stated.
33
-
34
- The job download, `evolve job download`, adds to every trial its `lock.json`, its `trial.log`, the raw `verifier/reward.txt`, `steps/<name>/verifier/reward.json` on a multi-step trial, the home byte for byte, and `artifacts/` with a `manifest.json` and each collected artifact at its source path (separate-mode trials only). Everything platform-specific in the archive's record files rides under an `x_evolve` key: a trial's spend is `x_evolve.spentUsd` with its `spendSource`, and the job config's agents carry `x_reasoning_effort` and `x_preset`.
35
-
36
- ## The agent's home folder
37
-
38
- The agent's home is the harness's own working state: its session files, its settings, and the transcripts of any subagents it ran. The platform captures it after the run and keeps it with the trial, so the run can be inspected the way the agent saw it. In the download it sits under `agent/` at its real names, with `agent-home.json` beside it: every captured file's path, size, sha256 and mode, and every file that was skipped, with the reason.
39
-
40
- The trial download carries the text view of the home. A file that is not UTF-8 text, such as a database, is named in the record and left out; the job download carries every byte. Two caches are left out on purpose, codex's `.codex/.tmp/plugins` and opencode's `.config/opencode/node_modules`; the record lists them under `excluded`, and anything else it could not carry under `skipped`, with the reason.
41
-
42
- From the SDK, `trials().artifact(id, "agent-home")` returns the same text view as a map from sandbox path to content. A home too large to serve as one text view is refused with a 413 `invalid_input`; the job download carries it whole.
43
-
44
- ## The parsed trace
45
-
46
- Every harness prints its run in its own format. The platform parses that stream into one vocabulary, the parsed trace, which the dashboard shows and `evolve trial trace` prints. Each event is one JSON object: `seq`, a position that also serves as a resume cursor; `type`, the kind of event; and `data`, the harness's update as parsed.
47
-
48
- ```json
49
- {"seq": 0, "type": "prompt", "data": {"_prompt": {"text": "Create hello.txt containing Hello."}}}
50
- {"seq": 1, "type": "agent_message_chunk", "data": {"update": {"sessionUpdate": "agent_message_chunk", "content": {"type": "text", "text": "I'll create the file."}}}}
51
- {"seq": 2, "type": "tool_call", "data": {"update": {"sessionUpdate": "tool_call", "toolCallId": "call-1", "title": "Write hello.txt", "kind": "edit", "status": "pending"}}}
52
- {"seq": 3, "type": "tool_call_update", "data": {"update": {"sessionUpdate": "tool_call_update", "toolCallId": "call-1", "status": "completed"}}}
53
- {"seq": 4, "type": "usage", "data": {"update": {"sessionUpdate": "usage", "scope": "call", "usage": {"promptTokens": 812, "completionTokens": 64}}}}
54
- ```
55
-
56
- The kinds are `prompt` for the instruction the agent received, `user_message_chunk`, `agent_message_chunk` and `agent_thought_chunk` for text, `tool_call` and `tool_call_update` for a tool call and its later status and output, `plan` for the agent's plan entries, `usage` for token counts, `error` for a failure the harness reported, and `trace_loss` when events were lost. A tool call's `kind` is one of the parser's kinds, such as `read`, `edit` or `execute`, and its `status` moves through `pending`, `in_progress`, `completed` or `failed`.
57
-
58
- Once the trial is finished, the gateway's own `usage` events follow the harness's, one per model call, with the tokens and the cost as priced. Their `data.update.source` is `gateway`, and they are the only usage lines that carry tokens and money.
59
-
60
- ```bash
61
- evolve trial trace <trial-id>
62
- evolve trial trace <trial-id> --grep 'permission denied' --tail 50
63
- evolve trial trace <trial-id> --cursor 140
64
- ```
65
-
66
- `trial trace` prints one line per event: the position, the type, and the data cut to 140 characters. A gateway usage event prints as `gateway <model>` with its tokens and cost. `--type`, `--grep` and `--tail` filter on the server; `--cursor <seq>` resumes after the last event you saw; `--json` prints each event in full. While the trial runs, the dashboard's trial viewer shows the trace as it grows.
67
-
68
- ## The ATIF trajectory
69
-
70
- `agent/trajectory.json` is the same run in ATIF, the Agent Trajectory Interchange Format, the trajectory format Harbor defines, at version `ATIF-v1.7`. The platform builds it from the stored parsed trace.
71
-
72
- Its top-level fields are `schema_version`, `agent` with the harness's name, version and model, and `steps`, the ordered system, user and agent turns, with `session_id`, `trajectory_id`, `final_metrics`, `subagent_trajectories` and `extra` optional. The instruction becomes the first `user` step. An `agent` step carries its message, its `tool_calls` under the harness's own tool names, and the `observation` those calls returned.
73
-
74
- ```json
75
- {
76
- "schema_version": "ATIF-v1.7",
77
- "agent": {"name": "codex", "version": "0.31.0", "model_name": "gpt-6-astra"},
78
- "steps": [
79
- {"step_id": 1, "source": "user", "message": "Create hello.txt containing Hello."},
80
- {
81
- "step_id": 2,
82
- "source": "agent",
83
- "message": "I'll create the file.",
84
- "tool_calls": [{"tool_call_id": "call-1", "function_name": "apply_patch", "arguments": {"path": "hello.txt"}}],
85
- "observation": {"results": [{"source_call_id": "call-1", "content": "Success"}]}
86
- }
87
- ]
88
- }
89
- ```
90
-
91
- ```bash
92
- evolve trial download <trial-id> --stream trace-atif
93
- ```
94
-
95
- ## Raw streams and the verifier log
96
-
97
- Three artifacts are kept byte for byte: `trace-stdout`, the harness process's stdout; `trace-stderr`, its stderr; and `verifier`, everything the verifier printed. The reward itself is in `result.json` and in `verifier/reward.json`. Print one of them instead of saving:
98
-
99
- ```bash
100
- evolve trial download <trial-id> --stream verifier
101
- ```
102
-
103
- From the SDK, `trials().artifact(id, "verifier")` returns the same text, and `null` when the trial never stored it.
104
-
105
- ## The run's file system
106
-
107
- Beyond the artifacts above, every trial's whole file system can be browsed: while the box runs you read it live, and after the run you read the kept tree — the files the run created or modified, with the files it never touched listed but held only by the image. The same reads work on analysis runs and task checks, and a published task's own files can be read from its package.
108
-
109
- ```bash
110
- evolve trial files status <trial-id>
111
- evolve trial files ls <trial-id> /app/work
112
- evolve trial files cat <trial-id> /app/work/main.py
113
- evolve trial files changes <trial-id>
114
- evolve trial files archive <trial-id> --path /app/work -o archives/
115
- ```
116
-
117
- The box's own streams are read the same way: `evolve trial logs <trial-id> --stream agent --follow` prints the harness's output as it arrives; `verifier` once the verifier ran, `system` when the job was started with `--system-log`; `setup` and `metrics` are named but not recorded today, so their pages are empty and say why. `evolve trial procs <trial-id>` lists the box's processes while it runs. From the SDK it is `trials().filesystem(id)`; see the [SDK reference](/sdk-reference/trials#filesystem).
@@ -1,103 +0,0 @@
1
- ---
2
- title: "Trials"
3
- description: "One agent's attempt at one task: its record, its trace, and its artifacts."
4
- ---
5
-
6
- A trial is one attempt of one task by one agent arm. Trial ids are global: every trial command takes the trial id alone, and the trial's record carries its job id. Treat ids as opaque strings.
7
-
8
- ```bash
9
- evolve trial show <trial-id>
10
- ```
11
-
12
- `trial show` prints the task, the agent and model, the status, the reward, the tokens, what the trial spent and, when it failed, the exception. Spend prints as a plain amount once the meter has settled it, as `at least $X` while it is still a lower bound, and as `-` when nobody has measured it yet.
13
-
14
- While a trial runs, `attempt_phase` says which step it is in (`prepare`, `build`, `boot`, `install`, `agent`, `verify`, `persist`), and `live_spent_usd` is a lower bound on its spend so far, refreshed about every 30 seconds and null before the first reading; `usage` carries the same reading with its tokens. On a settled trial read `agent_result.cost_usd`; `spend_source` says whether it is final (`measured`).
15
-
16
- ## The trace
17
-
18
- Every trial records a parsed event trace: the instruction, each agent turn, every tool call and its result. Print it, filtered on the server.
19
-
20
- ```bash
21
- evolve trial trace <trial-id>
22
- evolve trial trace <trial-id> --type <event-type>
23
- evolve trial trace <trial-id> --grep 'permission denied' --tail 50
24
- ```
25
-
26
- `--type` keeps events of exactly one type. `--grep` is a case-insensitive regex over type and content. `--tail` keeps the last N matching events. To search every trial of a job in one pass:
27
-
28
- ```bash
29
- evolve job grep <job-id> 'permission denied'
30
- ```
31
-
32
- ## Artifacts
33
-
34
- Beside the parsed trace, a trial keeps the raw record of its run. One vocabulary names the pieces everywhere; every file and format is described on [trial outputs](/core-concepts/trial-outputs).
35
-
36
- - `trace-parsed`: the parsed event trace
37
- - `trace-stdout`: the agent process's stdout, byte for byte
38
- - `trace-stderr`: the agent process's stderr
39
- - `trace-atif`: the normalized trajectory, in the ATIF format
40
- - `agent-home`: the text view of the agent's home folder, captured after the run
41
- - `verifier`: everything the scoring step printed
42
- - `trajectory`: reserved for the harness's own native session file, not served yet
43
-
44
- Stream one artifact to stdout:
45
-
46
- ```bash
47
- evolve trial download <trial-id> --stream verifier
48
- ```
49
-
50
- ## Download the trial tree
51
-
52
- Without `--stream`, the trial is saved whole under `<dir>/<trial-id>/` in the trial tree layout, plus `evolve.json`.
53
-
54
- ```bash
55
- evolve trial download <trial-id> -o trials/
56
- ```
57
-
58
- ```text
59
- config.json task and agent
60
- result.json status, reward, verifier verdict, exception, phase clocks
61
- agent/trajectory.json the normalized ATIF trajectory
62
- agent/<harness>.txt the harness's stdout stream (claude-code.txt, codex.txt, ...)
63
- agent/stderr.log the harness's stderr stream
64
- agent/trace-parsed.jsonl the parsed event trace
65
- agent/.claude/ ... the captured agent home at its real names
66
- agent/agent-home.json the capture record: every file's path, size and digest
67
- verifier/test-stdout.txt the verifier log
68
- verifier/reward.json the rewards map, when the verifier produced one
69
- exception.txt when the trial carries an exception
70
- evolve.json the platform's own record: cost, tokens, provider
71
- ```
72
-
73
- An artifact the trial never recorded is an absent file, never an empty placeholder. `--overwrite` replaces an existing folder. The job archive from `evolve job download` holds the same tree per trial, plus what only the server can add: `lock.json`, `trial.log`, `artifacts/`, and the raw `verifier/reward.txt`.
74
-
75
- ## Act on one trial
76
-
77
- ```bash
78
- evolve trial retry <trial-id>
79
- evolve trial regrade <trial-id>
80
- evolve trial stop <trial-id> <trial-id>
81
- ```
82
-
83
- `retry` runs a settled trial again, `regrade` re-runs only its verifier, and each produces a new job holding the one new trial. `stop` ends in-flight trials without cancelling their job; each stopped trial settles `CANCELLED` and is charged its spend so far.
84
-
85
- ## Statuses
86
-
87
- A valid reward, 0 included, is `SCORED`; a failure is never reported as a fabricated zero.
88
-
89
- - `QUEUED`: waiting for a sandbox slot.
90
- - `RUNNING`: the agent phase; `attempt_phase` says which step.
91
- - `SCORING`: the agent finished; the verifier is running.
92
- - `SCORED`: a valid reward is in `reward`.
93
- - `SCORING_ERROR`: the verifier crashed or wrote a reward outside `[0, 1]`; read `exception_info`.
94
- - `INFRASTRUCTURE_ERROR`: the trial was lost before a result was recorded; retried automatically, then `resume`.
95
- - `BUDGET`: a budget above the trial's own cap refused it. The exception type is `ApiUsageLimitError` and the message carries `user:` (your credits), `team:` (the organization's monthly budget) or `other:` (the platform's global stop). Never retried on its own; add credits or raise the budget, then `resume`.
96
- - `INDETERMINATE`: the platform cannot tell whether the trial completed.
97
- - `CANCELLED`: stopped before settling; the exception type is `CancelledError`.
98
-
99
- `SCORING_ERROR` and `INDETERMINATE` carry the last 4000 characters of the verifier's own output in `exception_message`. Job statuses are on [jobs](/core-concepts/jobs#statuses).
100
-
101
- <Card title="trial reference" icon="terminal" href="/cli-reference/trial">
102
- Every flag of `evolve trial`.
103
- </Card>
@@ -1,93 +0,0 @@
1
- ---
2
- title: "Upload a job"
3
- description: "Bring a job you ran elsewhere onto the platform: a Harbor job folder, or Evolve SDK runs packed as one."
4
- ---
5
-
6
- A job you ran elsewhere uploads as a finished job. Its trials, traces and rewards become a job you read, analyze and share like any other.
7
-
8
- A job from `harbor run` — local or through the Harbor hub — uploads as it is: point `upload` at the job folder, nothing to repack. Runs made with the Evolve SDK are packed into that same layout first (below).
9
-
10
- ```bash
11
- evolve upload ./job-2026-08-27__12-00-00 -d terminal-bench-4@4.0
12
- ```
13
-
14
- `upload` takes the job folder, or its `.tar.gz`. With `--from <url>` it takes a public https URL of the archive instead. `-d name[@version]` links the trials to a published dataset version by task name. The command follows the import until the job exists; `--no-wait` returns at once with the import id.
15
-
16
- ```bash
17
- evolve job imports --status RUNNING
18
- evolve job import <import-id> --watch
19
- ```
20
-
21
- ## What a job folder holds
22
-
23
- The Harbor job layout, exactly what `evolve job download` and `harbor job download` produce:
24
-
25
- ```text
26
- job/
27
- ├── config.json REQUIRED — the job record
28
- ├── result.json REQUIRED
29
- └── <trial>/ one folder per trial
30
- ├── result.json REQUIRED — the trial's facts (below)
31
- ├── agent/
32
- │ ├── trajectory.json the trace, in Harbor's trajectory format
33
- │ ├── stdout.log the harness's output (any agent/*.txt or *.log also counts)
34
- │ └── … the agent's home, stored byte for byte
35
- ├── verifier/ test-stdout.txt, reward.txt
36
- ├── artifacts/ the agent's deliverables
37
- ├── steps/ multi-step trials, as Harbor writes them
38
- └── trial.log, exception.txt
39
- ```
40
-
41
- The job root needs both record files; inside a trial only `result.json` is required. What is absent stays absent: a trial without a trace shows no trace, a trial without a home shows no files.
42
-
43
- ## What `result.json` must hold
44
-
45
- ```json
46
- {
47
- "task_name": "my-task",
48
- "trial_name": "my-task__deepseek",
49
- "trial_uri": "",
50
- "task_id": {},
51
- "task_checksum": "",
52
- "config": {},
53
- "agent_info": { "name": "codex", "version": "0.154.0", "model_info": { "name": "deepseek-v4.1-flash" } },
54
- "verifier_result": { "rewards": { "reward": 1.0 } },
55
- "exception_info": null,
56
- "agent_execution": { "started_at": "2026-09-16T18:08:27Z", "finished_at": "2026-09-16T18:08:38Z" }
57
- }
58
- ```
59
-
60
- The first seven keys are required. `verifier_result.rewards` is the score: names to numbers, `reward` the primary. Harbor's exception names (`ScoringError`, `InfrastructureError`, `ApiUsageLimitError`, `CancelledError`) map to their statuses; any other name stays as written. `agent_result` carries tokens and cost when you have them.
61
-
62
- ## Runs made with the Evolve SDK
63
-
64
- Every SDK run is logged to a local file under `~/.evolve-sdk/observability/sessions/`. Its header line names the agent and model, and its raw lines are the transcript. To bring such runs onto the platform, pack one trial folder per run: the header's agent and model into `agent_info`, the raw lines at the harness's own transcript path under `agent/` (for codex `agent/.codex/sessions/<yyyy>/<mm>/<dd>/rollout-<id>.jsonl`, for claude `agent/.claude/projects/<project>/<session>.jsonl`), and the score, when you have one, in `verifier_result.rewards`. Raw transcripts anywhere else under `agent/` are stored as files but not read as the trace.
65
-
66
- The `systemPrompt` of an SDK run is not in the session file. To show it, describe the run in `agent/trajectory.json` instead of the raw lines: a first step whose `source` is `system` holding the prompt, then the conversation. A `system` step is drawn as the system prompt, never as an error. When the raw lines are at the harness path, they are the trace and `agent/trajectory.json` is not read.
67
-
68
- ## What lands
69
-
70
- - Rewards → `SCORED`, rewards untouched.
71
- - No rewards → no score. Not an error.
72
- - `exception_info` → the exception, kept as written.
73
- - Trace, logs, home, verifier log, artifacts, steps → where a native trial's are.
74
- - A prior `analysis.json` → not imported. Analyses run here.
75
-
76
- The job carries `upload`: the archive's `original_job_id` and `original_job_name`, `uploaded_at`, the uploader's `reported_totals`, `task_links`. Resume, retry and regrade refuse an uploaded job (`job_uploaded`); analyze works on it. The CLI prints `ported` as the provider, and after the import `scored N of M trial(s)`. Zero of many is a warning: check `verifier_result.rewards`.
77
-
78
- ## Task linkage
79
-
80
- Each trial's `lock.json` names its task by content hash; a task the platform holds with the same hash links by itself. A linked trial's analyses run with the task folder, an unlinked trial's without it, and the record says why: `hash_mismatch`, `task_not_in_dataset`, `no_task_digest`, `no_hash_match`, `no_dataset_named`, `dataset_ambiguous`. A name alone never links.
81
-
82
- `-d name@version` overrides: it links by task name to that version and settles an ambiguous hash.
83
-
84
- ## Bounds and duplicates
85
-
86
- - One limit: the archive ceiling `limits.uploads.job_archive_bytes` (`upload_too_large`).
87
- - A trial with a file over 5 GiB, or a trajectory too large to parse, is skipped (`trial_too_large`); the rest lands. A `job.log` over that size refuses the job (`upload_too_large`).
88
- - A `result.json` that cannot be read fails the import (`invalid_trial`).
89
- - The same job twice: `job_already_uploaded`. Delete it, then upload again.
90
-
91
- <Card title="upload reference" icon="terminal" href="/cli-reference/upload">
92
- Every flag of `evolve upload`.
93
- </Card>
@@ -1,21 +0,0 @@
1
- ---
2
- title: "Checks"
3
- description: "Read task quality checks in the dashboard, on a job's CHECK tab or on the check's own page."
4
- ---
5
-
6
- A job's CHECK tab lists the task quality checks run on the job's datasets.
7
-
8
- {/* retake after the UI pass, from a non-admin account */}
9
- <Frame caption="The CHECK tab of a job whose tasks have not been checked">
10
- <img src="/images/job-check.png" alt="The CHECK tab: the sentence that no task of this job has been checked, and the evolve check command that would check its dataset." />
11
- </Frame>
12
-
13
- Until a check exists, the tab shows the command that would start one, `evolve check -d <dataset@version>`, with the job's dataset filled in. Checks start from the command line; see [check](/core-concepts/check).
14
-
15
- Once a dataset has been checked, the tab lists one row per task with its dataset and its result. Click a row to open the check in the [trial viewer](/dashboard/trial-viewer): the events are the checker's own trace, and its result document is on the DOWNLOAD menu.
16
-
17
- ## The check page
18
-
19
- A check is a job, so it sits in the [Jobs](/dashboard/jobs) list with KIND `CHECK`, and its row opens the check's own page. The band names the check, its status, what was checked, the checker's model and effort, its cost and when it started. SHARE is the creator's and opens the share dialog; STOP, for the creator, ends every task check still queued or running while any is live. DOWNLOAD saves a completed check as a `.tar.gz` in the standard check layout.
20
-
21
- Under the band, one row per task check with its dataset and its result, the same table as a job's CHECK tab. Click a row to open it in the [trial viewer](/dashboard/trial-viewer).
@@ -1,24 +0,0 @@
1
- ---
2
- title: "Datasets"
3
- description: "Browse the catalog, and each dataset's tasks and versions, in the dashboard."
4
- ---
5
-
6
- The Datasets page lists every dataset you can run: the platform's public datasets and your own private ones.
7
-
8
- {/* retake after the UI pass, from a non-admin account */}
9
- <Frame caption="The datasets catalog">
10
- <img src="/images/datasets.png" alt="The Datasets page: a search box, an ALL, PUBLIC and PRIVATE filter, and a table of datasets with task count, version, visibility, status and update time." />
11
- </Frame>
12
-
13
- Search by name, and filter with ALL, PUBLIC or PRIVATE. Each row shows the dataset's task count, its active version, its visibility, its status and when it last changed. Tick rows to delete datasets you own. There is no publish button: publishing is [`evolve dataset publish`](/core-concepts/datasets).
14
-
15
- Click a dataset to open it.
16
-
17
- {/* retake after the UI pass, from a non-admin account */}
18
- <Frame caption="One dataset: its tasks, with a verdict per sandbox provider">
19
- <img src="/images/dataset.png" alt="One dataset's page: the visibility, version and task count in the header, TASKS and VERSIONS tabs, and a table of tasks with GPUs, agent timeout, verifier timeout, skills and providers." />
20
- </Frame>
21
-
22
- The header shows the visibility, the active version and the task count. The TASKS tab lists every task of that version with its GPU count, its agent and verifier timeouts, its skills, and the sandbox providers that can run it. An arrow after a provider means the trial is rerouted to the provider after the arrow. Hover a refused provider for the reason.
23
-
24
- The VERSIONS tab lists the dataset's versions. DELETE appears only on a dataset you may delete: your own private dataset, or a public one when you are the platform admin. It removes the dataset.