@evolvingmachines/evolve 0.0.67 → 0.0.68

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 (61) hide show
  1. package/dist/chunk-FHL4GIAZ.js +1 -0
  2. package/dist/chunk-ORD7JDZB.js +1 -0
  3. package/dist/chunk-SQDR2TAW.js +427 -0
  4. package/dist/cli/index.cjs +38 -38
  5. package/dist/cli/index.d.cts +1 -1
  6. package/dist/cli/index.d.ts +1 -1
  7. package/dist/cli/index.js +30 -30
  8. package/dist/index.cjs +65 -60
  9. package/dist/index.d.cts +332 -29
  10. package/dist/index.d.ts +332 -29
  11. package/dist/index.js +48 -43
  12. package/dist/managed-modal-IXZBT4D5.js +4 -0
  13. package/dist/resumable-XNW5SKRW.js +1 -0
  14. package/dist/{types-84M4J_Vm.d.cts → types-DGx_qo9M.d.cts} +118 -77
  15. package/dist/{types-84M4J_Vm.d.ts → types-DGx_qo9M.d.ts} +118 -77
  16. package/harness-capabilities.json +325 -77
  17. package/hosted-error-codes.json +1 -0
  18. package/package.json +9 -7
  19. package/skills/create-adapter/SKILL.md +1 -1
  20. package/skills/create-task/SKILL.md +1 -1
  21. package/skills/evolve/SKILL.md +1 -1
  22. package/skills/evolve-evals/references/cli-reference/agent.md +1 -1
  23. package/skills/evolve-evals/references/cli-reference/analyze.md +6 -3
  24. package/skills/evolve-evals/references/cli-reference/check.md +4 -3
  25. package/skills/evolve-evals/references/cli-reference/index.md +1 -1
  26. package/skills/evolve-evals/references/cli-reference/run.md +4 -3
  27. package/skills/evolve-evals/references/core-concepts/agents.md +7 -3
  28. package/skills/evolve-evals/references/core-concepts/analyze.md +2 -2
  29. package/skills/evolve-evals/references/core-concepts/check.md +2 -2
  30. package/skills/evolve-evals/references/core-concepts/datasets.md +1 -1
  31. package/skills/evolve-evals/references/core-concepts/index.md +1 -1
  32. package/skills/evolve-evals/references/core-concepts/jobs.md +3 -3
  33. package/skills/evolve-evals/references/core-concepts/models.md +8 -9
  34. package/skills/evolve-evals/references/core-concepts/sandboxes.md +1 -1
  35. package/skills/evolve-evals/references/core-concepts/secrets.md +1 -1
  36. package/skills/evolve-evals/references/core-concepts/skills.md +1 -1
  37. package/skills/evolve-evals/references/core-concepts/task-verifiers.md +1 -1
  38. package/skills/evolve-evals/references/core-concepts/teams.md +1 -1
  39. package/skills/evolve-evals/references/core-concepts/upload.md +1 -1
  40. package/skills/evolve-evals/references/getting-started/first-task.md +1 -1
  41. package/skills/evolve-evals/references/getting-started/quick-start.md +1 -1
  42. package/skills/evolve-evals/references/index.md +1 -1
  43. package/skills/evolve-evals/references/sdk/http.md +1 -1
  44. package/skills/evolve-evals/references/sdk/python.md +1 -1
  45. package/skills/evolve-evals/references/sdk/typescript.md +1 -1
  46. package/skills/evolve-evals/references/sdk-reference/analyses.md +11 -4
  47. package/skills/evolve-evals/references/sdk-reference/checks.md +11 -4
  48. package/skills/evolve-evals/references/sdk-reference/error-codes.md +1 -0
  49. package/skills/evolve-evals/references/sdk-reference/jobs.md +2 -2
  50. package/skills/evolve-evals/references/sdk-reference/meta.md +2 -1
  51. package/skills/evolve-evals/references/sdk-reference/methods/analyses.md +6 -4
  52. package/skills/evolve-evals/references/sdk-reference/methods/checks.md +8 -4
  53. package/skills/evolve-evals/references/sdk-reference/methods/jobs.md +5 -3
  54. package/skills/evolve-evals/references/sdk-reference/methods/meta.md +15 -4
  55. package/skills/evolve-evals/references/sdk-reference/skills.md +2 -2
  56. package/skills/evolve-evals/references/sdk-reference/types.md +11 -5
  57. package/spec/openapi.yaml +290 -137
  58. package/dist/chunk-HQJI3HHU.js +0 -1
  59. package/dist/chunk-RFLMRPGK.js +0 -427
  60. package/dist/managed-modal-IJW62SSK.js +0 -4
  61. package/dist/resumable-HFSICSH3.js +0 -1
@@ -58,7 +58,7 @@ evolve agent show my-agent
58
58
  ```bash
59
59
  evolve run \
60
60
  -d harbor-examples@1.0 -i hello-world \
61
- -a my-agent -m gpt-5.6-luna \
61
+ -a my-agent -m gpt-6-luna \
62
62
  --max-trial-spend 0.30 --max-retries 0 \
63
63
  --watch
64
64
  ```
@@ -15,10 +15,11 @@ Each selected trial gets its own analysis run. Read those runs with [`evolve ana
15
15
 
16
16
  ```bash
17
17
  evolve analyze --show-defaults
18
+ evolve analyze --show-defaults -a codex
18
19
  evolve analyze --show-defaults --json
19
20
  ```
20
21
 
21
- This returns the current model, reasoning effort, sandbox provider, prompt, and rubric. Defaults mode takes no job ID or other analysis options.
22
+ This returns the agent, model, reasoning effort, sandbox provider, prompt, and rubric an analysis runs under when you name none of them. With `-a`, it returns what that agent runs under: its default model and the effort that model takes. Defaults mode takes no job ID and no other analysis options.
22
23
 
23
24
  ## Select trials
24
25
 
@@ -51,6 +52,7 @@ Cancelled trials are excluded. `--passing` and `--failing` cannot be combined. T
51
52
 
52
53
  ```bash
53
54
  evolve analyze "$JOB_ID" \
55
+ --agent codex --model gpt-6-sol \
54
56
  --rubric rubric.toml \
55
57
  --prompt prompt.txt \
56
58
  --watch
@@ -58,12 +60,13 @@ evolve analyze "$JOB_ID" \
58
60
 
59
61
  | Option | Meaning |
60
62
  | --- | --- |
61
- | `-m`, `--model <name>` | Analyzer model. |
63
+ | `-a`, `--agent <name>` | Agent the analyzer runs on. Default `claude`. |
64
+ | `-m`, `--model <name>` | Analyzer model, from that agent's models. Default: the agent's default model. |
62
65
  | `--effort <value>` | Reasoning effort. |
63
66
  | `-r`, `--rubric <path>` | TOML, YAML, or JSON rubric. |
64
67
  | `-p`, `--prompt <path>` | Text file replacing the default prompt. |
65
68
  | `-e`, `--env <provider>` | Sandbox provider for analysis. |
66
- | `--show-defaults` | Print the default policy and exit. |
69
+ | `--show-defaults` | Print the default policy and exit. `-a` picks the agent. |
67
70
 
68
71
  A rubric contains a `criteria` list. Every criterion needs `name`, `description`, and `guidance`.
69
72
 
@@ -44,16 +44,17 @@ evolve check --show-defaults
44
44
  | Option | Meaning |
45
45
  | --- | --- |
46
46
  | `--name <name>` | Check label. Defaults to the acceptance timestamp. |
47
- | `-m`, `--model <name>` | Checker model. |
47
+ | `-a`, `--agent <name>` | Agent the checker runs on. Default `claude`. |
48
+ | `-m`, `--model <name>` | Checker model, from that agent's models. Default: the agent's default model. |
48
49
  | `--effort <value>` | Reasoning effort. |
49
50
  | `-r`, `--rubric <path>` | TOML, YAML, or JSON rubric. |
50
51
  | `-p`, `--prompt <path>` | Replacement prompt text file. |
51
52
  | `-e`, `--env <provider>` | Checker sandbox provider. |
52
- | `--show-defaults` | Print the prompt, rubric, model, effort, and provider, then exit. |
53
+ | `--show-defaults` | Print the agent, model, effort, provider, prompt, and rubric, then exit. `-a` picks the agent. |
53
54
  | `--watch` | Wait until every task check settles. |
54
55
  | `-q`, `--quiet` | With watch, suppress intermediate progress. |
55
56
 
56
- `--show-defaults` accepts only [global options](/cli-reference/index#global-options). It cannot be combined with a path, dataset, or checker options.
57
+ `--show-defaults` accepts only `-a` and the [global options](/cli-reference/index#global-options). It cannot be combined with a path, dataset, or other checker options.
57
58
 
58
59
  For rubric format and interpretation, see [Check](/core-concepts/check).
59
60
 
@@ -109,7 +109,7 @@ A trial prefix may require reading the trials of every job in scope. On large ac
109
109
  Repeat a repeatable flag once per value. Do not combine short flags.
110
110
 
111
111
  ```bash
112
- evolve run -d harbor-examples@1.0 -a codex -m gpt-5.6-luna \
112
+ evolve run -d harbor-examples@1.0 -a codex -m gpt-6-luna \
113
113
  -i 'hello-*' -x '*-slow' --max-trial-spend 0.30 --max-retries 0
114
114
  ```
115
115
 
@@ -9,7 +9,7 @@ Start a hosted job. `evolve job start` accepts exactly the same options.
9
9
  evolve run \
10
10
  -d harbor-examples@1.0 \
11
11
  -i hello-world \
12
- -a codex -m gpt-5.6-luna \
12
+ -a codex -m gpt-6-luna \
13
13
  --max-trial-spend 0.30 \
14
14
  --max-retries 0 \
15
15
  --watch
@@ -51,7 +51,7 @@ datasets:
51
51
  task_names: [hello-world]
52
52
  agents:
53
53
  - name: codex
54
- model_name: gpt-5.6-luna
54
+ model_name: gpt-6-luna
55
55
  n_attempts: 1
56
56
  n_concurrent_trials: 4
57
57
  max_trial_spend_usd: 0.30
@@ -148,7 +148,8 @@ See [Jobs](/core-concepts/jobs) for the retry and spend rules.
148
148
  | Option | Meaning |
149
149
  | --- | --- |
150
150
  | `--analyze` | Enable analysis with the platform defaults. |
151
- | `--analyze-model <name>` | Analyzer model. |
151
+ | `--analyze-agent <name>` | Agent the analyzer runs on. Default `claude`. |
152
+ | `--analyze-model <name>` | Analyzer model, from that agent's models. |
152
153
  | `--analyze-rubric <path>` | TOML, YAML, or JSON rubric. |
153
154
  | `--analyze-prompt <path>` | Replacement prompt file. |
154
155
  | `--analyze-provider <provider>` | Analyzer sandbox provider. |
@@ -8,7 +8,7 @@ An evaluation arm pairs an **agent harness** with a **model**. The harness reads
8
8
  ```text
9
9
  One arm
10
10
  ├── Harness: -a codex
11
- └── Model: -m gpt-5.6-luna
11
+ └── Model: -m gpt-6-luna
12
12
  ```
13
13
 
14
14
  ## Built-in harnesses
@@ -17,15 +17,19 @@ One arm
17
17
  | --- | --- |
18
18
  | `claude` | Claude Code |
19
19
  | `codex` | Codex |
20
- | `gemini` | Gemini CLI |
21
20
  | `qwen` | Qwen Code |
22
21
  | `kimi` | Kimi Code |
23
22
  | `opencode` | OpenCode |
24
23
  | `droid` | Droid |
24
+ | `pi` | pi |
25
+ | `prime-agent` | Prime Agent |
26
+ | `dsh` | DeepSeek Harness |
27
+ | `zcode` | Z Code |
28
+ | `antigravity` | Antigravity CLI |
25
29
 
26
30
  ```bash
27
31
  evolve run -d harbor-examples@1.0 -i hello-world \
28
- -a codex -m gpt-5.6-luna \
32
+ -a codex -m gpt-6-luna \
29
33
  --max-trial-spend 1 --max-retries 0 --watch
30
34
  ```
31
35
 
@@ -41,7 +41,7 @@ Repeat `-t` with full trial IDs to select specific trials; selection happens bef
41
41
  ```bash
42
42
  evolve run \
43
43
  -d harbor-examples@1.0 -i hello-world \
44
- -a codex -m gpt-5.6-luna \
44
+ -a codex -m gpt-6-luna \
45
45
  --max-trial-spend 1 -r 0 --analyze --watch
46
46
  ```
47
47
 
@@ -104,7 +104,7 @@ evolve analyze "$JOB_ID" -r rubric.toml -p prompt.txt --watch
104
104
 
105
105
  An analyzer prompt can use `{trial_path}`, `{task_section}`, and `{criteria_guidance}`. Evolve appends the required output format.
106
106
 
107
- Use `-m`, `--effort`, `-e`, and `-n` for model, effort, provider, and concurrency. On job creation, use the corresponding `--analyze-*` flags. See the [full reference](/cli-reference/analyze).
107
+ Use `-a`, `-m`, `--effort`, `-e`, and `-n` for agent, model, effort, provider, and concurrency. The analyzer runs on `claude` unless `-a` names another agent; the model must be one of that agent's [models](/core-concepts/models#analysis-and-check-models). On job creation, use the corresponding `--analyze-*` flags. See the [full reference](/cli-reference/analyze).
108
108
 
109
109
  ## The result
110
110
 
@@ -52,13 +52,13 @@ A check is a hosted model run and incurs cost. `evolve dataset check` is a separ
52
52
  | Execution | Valid reference solution; rejection of non-solutions; environment works; stable verification; sufficient limits. |
53
53
  | Feasibility | The task is solvable. |
54
54
 
55
- Inspect the default rubric's criteria and their complete guidance, and the current model, effort, provider, and prompt:
55
+ Inspect the default rubric's criteria and their complete guidance, and the current agent, model, effort, provider, and prompt:
56
56
 
57
57
  ```bash
58
58
  evolve check --show-defaults
59
59
  ```
60
60
 
61
- Use `-r rubric.toml` or `-p prompt.txt` to customize. Check prompt tokens are `{task_path}`, `{file_tree}`, and `{criteria_guidance}`. The required result format is appended automatically.
61
+ Use `-r rubric.toml` or `-p prompt.txt` to customize. Check prompt tokens are `{task_path}`, `{file_tree}`, and `{criteria_guidance}`. The required result format is appended automatically. The checker runs on `claude` unless `-a` names another agent; pass a model from that agent's [models](/core-concepts/models#analysis-and-check-models) with `-m`, or omit `-m` for that agent's default model.
62
62
 
63
63
  ## The result
64
64
 
@@ -102,7 +102,7 @@ Configuration validation cannot prove that images build or tests are correct. Ru
102
102
 
103
103
  ```bash
104
104
  # Run an exact version.
105
- evolve run -d my-dataset@1.0 -a codex -m gpt-5.6-luna
105
+ evolve run -d my-dataset@1.0 -a codex -m gpt-6-luna
106
106
 
107
107
  # Change what the bare name resolves to.
108
108
  evolve dataset activate my-dataset 1.0
@@ -20,7 +20,7 @@ flowchart TD
20
20
  | --- | --- | --- |
21
21
  | [Task](/core-concepts/tasks) | An instruction, environment, and grading logic. | Fix a bug and pass the tests. |
22
22
  | [Dataset](/core-concepts/datasets) | A named, versioned collection of tasks. | `harbor-examples@1.0`. |
23
- | [Agent](/core-concepts/agents) | A harness running a selected model. | Codex with `gpt-5.6-luna`. |
23
+ | [Agent](/core-concepts/agents) | A harness running a selected model. | Codex with `gpt-6-luna`. |
24
24
  | [Sandbox](/core-concepts/sandboxes) | The isolated environment where a trial runs. | A task image on Daytona, E2B, or Modal. |
25
25
  | [Job](/core-concepts/jobs) | A group of trials with shared run settings. | 10 tasks × 2 configurations × 3 attempts = 60 trials. |
26
26
  | [Trial](/core-concepts/trials) | One attempt at one task. | One score and its supporting evidence. |
@@ -19,7 +19,7 @@ Each of the three tasks runs twice in Arm A and twice in Arm B.
19
19
  ```bash
20
20
  evolve run \
21
21
  -d harbor-examples@1.0 -i hello-world \
22
- -a codex -m gpt-5.6-luna \
22
+ -a codex -m gpt-6-luna \
23
23
  --max-trial-spend 1 -r 0 \
24
24
  --watch
25
25
  ```
@@ -50,7 +50,7 @@ Use a [config file](#config-files) to compare different harnesses in one job.
50
50
  `-i` and `-x` accept task-name globs. Quote them so your shell does not expand them.
51
51
 
52
52
  ```bash
53
- evolve run -d my-dataset@1.0 -a codex -m gpt-5.6-luna \
53
+ evolve run -d my-dataset@1.0 -a codex -m gpt-6-luna \
54
54
  -i 'auth-*' -x 'auth-legacy' -l 20 \
55
55
  --max-trial-spend 2 -r 0 --watch
56
56
  ```
@@ -198,7 +198,7 @@ datasets:
198
198
  task_names: [hello-world]
199
199
  agents:
200
200
  - name: codex
201
- model_name: gpt-5.6-luna
201
+ model_name: gpt-6-luna
202
202
  - name: claude
203
203
  model_name: fable
204
204
  n_attempts: 2
@@ -8,7 +8,7 @@ description: "Select models, compare them, and control metered spend."
8
8
  ```bash
9
9
  evolve run -d harbor-examples@1.0 -i hello-world \
10
10
  -a codex \
11
- -m gpt-5.6-luna -m gpt-5.6-terra \
11
+ -m gpt-6-luna -m gpt-5.6-terra \
12
12
  --max-trial-spend 1 --max-retries 0 --watch
13
13
  ```
14
14
 
@@ -49,7 +49,6 @@ If you enable your own provider key, supported model requests bill that provider
49
49
  | --- | --- |
50
50
  | Supports effort levels | Use a value from `limits.job.reasoning_efforts` |
51
51
  | Qwen thinking mode | Use `off` or `minimal` to disable thinking; `medium` or `thinking` to enable it |
52
- | Gemini | Do not pass effort; it is unsupported |
53
52
  | Custom agent | Configure reasoning in its run command |
54
53
 
55
54
  When omitted, Evolve resolves the harness's default and records it in `agent_info.reasoning_effort`. The same harness and model at different efforts are distinct arms.
@@ -58,15 +57,15 @@ In `/api/meta`, `agents[].effort_support` identifies the mode: `level`, `binary`
58
57
 
59
58
  ## Analysis and check models
60
59
 
61
- Trace analysis and task checks use the Claude Code harness. Select their model separately:
60
+ Trace analysis and task checks run on Claude Code unless you choose another agent. Select their agent and model separately from the evaluation arms:
62
61
 
63
- | Operation | Model option |
64
- | --- | --- |
65
- | `evolve analyze` | `-m` |
66
- | `evolve check` | `-m` |
67
- | Analysis attached to `evolve run` | `--analyze-model` |
62
+ | Operation | Agent option | Model option |
63
+ | --- | --- | --- |
64
+ | `evolve analyze` | `-a` | `-m` |
65
+ | `evolve check` | `-a` | `-m` |
66
+ | Analysis attached to `evolve run` | `--analyze-agent` | `--analyze-model` |
68
67
 
69
- Their default is `openrouter/deepseek/deepseek-v4.1-flash`. Choose from the supported Claude Code roster.
68
+ Omit the model and the agent runs its default: `openrouter/deepseek/deepseek-v4.1-flash` on every agent whose models include it, otherwise that agent's own default model. A model you name must be one of the chosen agent's models. In `/api/meta`, `analyze.agents` lists the agents these commands accept, each agent's default model and models, and the effort each model runs at when you pass none. `evolve analyze --show-defaults -a <agent>` prints what that agent runs under.
70
69
 
71
70
  **[Configure a run](/cli-reference/run)**
72
71
 
@@ -7,7 +7,7 @@ Each trial runs in its own cloud sandbox. Use `-e` to request E2B, Daytona, or M
7
7
 
8
8
  ```bash
9
9
  evolve run -d harbor-examples@1.0 -i hello-world \
10
- -a codex -m gpt-5.6-luna -e modal \
10
+ -a codex -m gpt-6-luna -e modal \
11
11
  --max-trial-spend 1 --max-retries 0 --watch
12
12
  ```
13
13
 
@@ -29,7 +29,7 @@ Eval jobs support **direct** delivery: the value enters the agent sandbox. Broke
29
29
  ## Attach it to a job
30
30
 
31
31
  ```bash
32
- evolve run -d my-dataset@1.0 -a codex -m gpt-5.6-luna \
32
+ evolve run -d my-dataset@1.0 -a codex -m gpt-6-luna \
33
33
  --secret GITHUB_TOKEN@staging \
34
34
  --max-trial-spend 1 --max-retries 0 --watch
35
35
  ```
@@ -18,7 +18,7 @@ my-skill/
18
18
 
19
19
  ```bash
20
20
  evolve run -d harbor-examples@1.0 -i hello-world \
21
- -a codex -m gpt-5.6-luna \
21
+ -a codex -m gpt-6-luna \
22
22
  --skills ./my-skill \
23
23
  --max-trial-spend 1 --max-retries 0 --watch
24
24
  ```
@@ -197,7 +197,7 @@ Evolve supplies a gateway credential and the matching base URL. Recognized crede
197
197
  For a Reward Kit judge, override its agent and model for one job with:
198
198
 
199
199
  ```bash
200
- evolve run -d my-dataset@1.0 -a codex -m gpt-5.6-luna \
200
+ evolve run -d my-dataset@1.0 -a codex -m gpt-6-luna \
201
201
  --ve REWARDKIT_JUDGE=claude \
202
202
  --ve REWARDKIT_MODEL=sonnet
203
203
  ```
@@ -68,7 +68,7 @@ Personal organizations cannot be renamed, deleted, or have their membership chan
68
68
  ```bash
69
69
  evolve run \
70
70
  -d harbor-examples@1.0 -i hello-world \
71
- -a codex -m gpt-5.6-luna \
71
+ -a codex -m gpt-6-luna \
72
72
  --max-trial-spend 1 -r 0 --org acme
73
73
  ```
74
74
 
@@ -70,7 +70,7 @@ This is a minimal illustrative trial record with a reward. Replace the task, age
70
70
  "agent_info": {
71
71
  "name": "codex",
72
72
  "version": "",
73
- "model_info": { "name": "gpt-5.6-luna" }
73
+ "model_info": { "name": "gpt-6-luna" }
74
74
  },
75
75
  "verifier_result": { "rewards": { "reward": 1.0 } }
76
76
  }
@@ -170,7 +170,7 @@ evolve run \
170
170
  -d "$DATASET@$VERSION" \
171
171
  -i hello-world \
172
172
  -a codex \
173
- -m gpt-5.6-luna \
173
+ -m gpt-6-luna \
174
174
  --max-trial-spend 1 \
175
175
  --max-retries 0 \
176
176
  --watch
@@ -32,7 +32,7 @@ evolve run \
32
32
  -d harbor-examples@1.0 \
33
33
  -i hello-world \
34
34
  -a codex \
35
- -m gpt-5.6-luna \
35
+ -m gpt-6-luna \
36
36
  --max-trial-spend 1 \
37
37
  --max-retries 0 \
38
38
  --watch
@@ -39,7 +39,7 @@ After [installation and authentication](/getting-started/installation), run one
39
39
  ```bash
40
40
  evolve run \
41
41
  -d harbor-examples@1.0 -i hello-world \
42
- -a codex -m gpt-5.6-luna \
42
+ -a codex -m gpt-6-luna \
43
43
  --max-trial-spend 1 --max-retries 0 --watch
44
44
  ```
45
45
 
@@ -29,7 +29,7 @@ Save the request as `job.json`:
29
29
  }],
30
30
  "agents": [{
31
31
  "name": "codex",
32
- "model_name": "gpt-5.6-luna"
32
+ "model_name": "gpt-6-luna"
33
33
  }],
34
34
  "max_trial_spend_usd": 1,
35
35
  "retry": {"max_retries": 0}
@@ -27,7 +27,7 @@ async def main():
27
27
  "version": "1.0",
28
28
  "task_names": ["hello-world"],
29
29
  }],
30
- agents=[{"name": "codex", "model_name": "gpt-5.6-luna"}],
30
+ agents=[{"name": "codex", "model_name": "gpt-6-luna"}],
31
31
  max_trial_spend_usd=0.50,
32
32
  retry={"max_retries": 0},
33
33
  )
@@ -25,7 +25,7 @@ const job = await evolve.jobs.start({
25
25
  version: "1.0",
26
26
  task_names: ["hello-world"],
27
27
  }],
28
- agents: [{ name: "codex", model_name: "gpt-5.6-luna" }],
28
+ agents: [{ name: "codex", model_name: "gpt-6-luna" }],
29
29
  max_trial_spend_usd: 0.50,
30
30
  retry: { max_retries: 0 },
31
31
  });
@@ -49,8 +49,9 @@ The field names are the same in both languages. TypeScript passes an object; Pyt
49
49
 
50
50
  | Field | Purpose |
51
51
  | --- | --- |
52
- | `model_name` | Analyzer model |
53
- | `reasoning_effort` | Effort supported by the analyzer |
52
+ | `agent` | Agent the analyzer runs on; default `claude` |
53
+ | `model_name` | Analyzer model, one of that agent's models |
54
+ | `reasoning_effort` | Effort that agent accepts |
54
55
  | `sandbox_provider` | Analyzer's sandbox provider |
55
56
  | `rubric` | `{criteria: [{name, description, guidance}, ...]}` |
56
57
  | `prompt` | Replacement prompt template text |
@@ -77,14 +78,20 @@ Polling slows to at most 30 seconds while the tally stays unchanged. Call the wa
77
78
  ```ts TypeScript
78
79
  const defaults = await analyses().defaults();
79
80
  console.log(defaults.model_name, defaults.rubric, defaults.prompt);
81
+
82
+ const codex = await analyses().defaults({ agent: "codex" });
83
+ console.log(codex.model_name, codex.reasoning_effort);
80
84
  ```
81
85
 
82
86
  ```python Python
83
87
  defaults = await analyses().defaults()
84
88
  print(defaults["model_name"], defaults["rubric"], defaults["prompt"])
89
+
90
+ codex = await analyses().defaults(agent="codex")
91
+ print(codex["model_name"], codex["reasoning_effort"])
85
92
  ```
86
93
 
87
- The response includes `model_name`, `rubric`, `prompt`, `reasoning_effort`, and `sandbox_provider`. The prompt is the editable template text.
94
+ The response includes `agent`, `model_name`, `rubric`, `prompt`, `reasoning_effort`, and `sandbox_provider`. The prompt is the editable template text. Pass an agent to read what that agent runs under when you name no model: its default model and the effort that model takes.
88
95
 
89
96
  A custom analyze prompt may use `{trial_path}`, `{task_section}`, and `{criteria_guidance}`. The required result schema is appended by the platform. See [analysis concepts](/core-concepts/analyze) for rubric design.
90
97
 
@@ -110,7 +117,7 @@ The latest analysis also appears on `trial.analysis`. Each criterion reports `pa
110
117
  | Method | TypeScript | Python |
111
118
  | --- | --- | --- |
112
119
  | List runs | `list(options)` | `list(...)` |
113
- | Read defaults | `defaults()` | `defaults()` |
120
+ | Read defaults | `defaults({ agent })` | `defaults(agent=...)` |
114
121
  | Download run | `download(analysisId, { to })` | `download(analysis_id, to=...)` |
115
122
  | Browse sandbox files | `filesystem(analysisId)` | `filesystem(analysis_id)` |
116
123
  | Read one analysis directly | `get(analysisId)` | Use list results or `trial.analysis` |
@@ -55,8 +55,9 @@ Choose one source. A local check does not first publish a dataset.
55
55
  | Option | Purpose |
56
56
  | --- | --- |
57
57
  | `name` | Check label; defaults to an acceptance timestamp |
58
- | `model_name` | Checker model |
59
- | `reasoning_effort` | Supported reasoning effort |
58
+ | `agent` | Agent the checker runs on; default `claude` |
59
+ | `model_name` | Checker model, one of that agent's models |
60
+ | `reasoning_effort` | Effort that agent accepts |
60
61
  | `sandbox_provider` | Checker sandbox provider |
61
62
  | `rubric` | `{criteria: [{name, description, guidance}, ...]}` |
62
63
  | `prompt` | Replacement prompt template |
@@ -73,14 +74,20 @@ TypeScript places these alongside `source` in the input object. Python takes key
73
74
  ```ts TypeScript
74
75
  const defaults = await client.defaults();
75
76
  console.log(defaults.rubric, defaults.prompt);
77
+
78
+ const codex = await client.defaults({ agent: "codex" });
79
+ console.log(codex.model_name, codex.reasoning_effort);
76
80
  ```
77
81
 
78
82
  ```python Python
79
83
  defaults = await client.defaults()
80
84
  print(defaults["rubric"], defaults["prompt"])
85
+
86
+ codex = await client.defaults(agent="codex")
87
+ print(codex["model_name"], codex["reasoning_effort"])
81
88
  ```
82
89
 
83
- Defaults include model, rubric, prompt, effort, and provider. Check prompt tokens are `{task_path}`, `{file_tree}`, and `{criteria_guidance}`. They differ from analysis prompt tokens.
90
+ Defaults include agent, model, rubric, prompt, effort, and provider. Pass an agent to read what that agent runs under when you name no model: its default model and the effort that model takes. Check prompt tokens are `{task_path}`, `{file_tree}`, and `{criteria_guidance}`. They differ from analysis prompt tokens.
84
91
 
85
92
  ## Understand the result
86
93
 
@@ -116,7 +123,7 @@ Evolve derives no verdict from a result. Read the criterion outcomes and evidenc
116
123
  | `get(id)` | Full check and its task results |
117
124
  | `list(...)` | `scope`, `status` list, `dataset`, `limit`, `cursor`; paginated handle |
118
125
  | `watch(id, ...)` | Wait until completed; callback on changes |
119
- | `defaults()` | Current policy and editable prompt |
126
+ | `defaults({ agent })` | Current policy and editable prompt; with an agent, what that agent runs under |
120
127
 
121
128
  Watch options are `onProgress`, `pollIntervalMs`, `signal` in TypeScript; `on_progress`, `poll_interval_s`, `timeout_s` in Python. Polling starts at 2 seconds and slows to 30 seconds while unchanged.
122
129
 
@@ -95,6 +95,7 @@ These codes apply to chunked dataset and job uploads. They describe the transfer
95
95
  | `agent_config_unsupported` | This harness does not support a native config. Omit it or choose a harness listed in `details.config_supporting_agents`. |
96
96
  | `agent_config_key_refused` | Native config contains settings that Evolve controls, such as routing or credentials. Remove the keys named in `details.refused_keys`. |
97
97
  | `agent_preset_unsupported` | This harness cannot apply the requested preset. Choose a supported harness or remove the preset. |
98
+ | `agent_retired` | A new job, resume, retry, analysis or check named a retired harness. Use the harness in `details.retired_agents[].replaced_by`; its past runs stay readable. |
98
99
 
99
100
  ## Registered agents
100
101
 
@@ -28,7 +28,7 @@ const job = await client.start({
28
28
  version: "1.0",
29
29
  task_names: ["hello-world"],
30
30
  }],
31
- agents: [{ name: "codex", model_name: "gpt-5.6-luna" }],
31
+ agents: [{ name: "codex", model_name: "gpt-6-luna" }],
32
32
  max_trial_spend_usd: 0.50,
33
33
  retry: { max_retries: 0 },
34
34
  });
@@ -44,7 +44,7 @@ job = await client.start(
44
44
  "version": "1.0",
45
45
  "task_names": ["hello-world"],
46
46
  }],
47
- agents=[{"name": "codex", "model_name": "gpt-5.6-luna"}],
47
+ agents=[{"name": "codex", "model_name": "gpt-6-luna"}],
48
48
  max_trial_spend_usd=0.50,
49
49
  retry={"max_retries": 0},
50
50
  )
@@ -31,10 +31,11 @@ Also available as `hosted().meta()` in both languages.
31
31
  | Field | Use it to answer |
32
32
  | --- | --- |
33
33
  | `agents` | Which harnesses run? Which models, efforts, versions, kwargs, and presets do they support? |
34
+ | `retired_agents` | Which harnesses are retired, and which harness replaces each? |
34
35
  | `sandbox_providers` | Which providers support the task's resources and features? |
35
36
  | `platform_constraints` | Which requirements cannot run on this deployment? |
36
37
  | `network_modes` | Which network modes can a task declare? |
37
- | `analyze` | Which analyzer models and reasoning efforts are available? |
38
+ | `analyze` | Which agents can analyses and checks run on, with which models and reasoning efforts? |
38
39
  | `limits` | What are the current defaults and bounds for jobs, pages, uploads, and comparisons? |
39
40
  | `statuses` | Which states exist, and which are terminal? |
40
41
  | `agent_registration` | Which names, environment keys, and upload sizes can a custom agent use? |
@@ -54,27 +54,29 @@ Python analysis rows are dictionaries: `row["id"]`, `row["checks"]`. [Analysis r
54
54
 
55
55
  ## defaults
56
56
 
57
- Read the current analysis defaults. Returns `AnalyzeDefaults`: model, effort, sandbox provider, rubric, and unrendered prompt template.
57
+ Read the current analysis defaults. Returns `AnalyzeDefaults`: agent, model, effort, sandbox provider, rubric, and unrendered prompt template. Pass an agent to read what that agent runs under when you name no model.
58
58
 
59
59
  ### Signature
60
60
 
61
61
  ```ts TypeScript signature
62
- defaults(): Promise<AnalyzeDefaults>;
62
+ defaults(options?: { agent?: string }): Promise<AnalyzeDefaults>;
63
63
  ```
64
64
 
65
65
  ```python Python signature
66
- async def defaults() -> AnalyzeDefaults: ...
66
+ async def defaults(*, agent: Optional[str] = None) -> AnalyzeDefaults: ...
67
67
  ```
68
68
 
69
69
  ```ts TypeScript
70
70
  const defaults = await client.defaults();
71
+ const codex = await client.defaults({ agent: "codex" });
71
72
  ```
72
73
 
73
74
  ```python Python
74
75
  defaults = await client.defaults()
76
+ codex = await client.defaults(agent="codex")
75
77
  ```
76
78
 
77
- Python returns a dictionary. These are current defaults; an existing analysis records the policy it actually ran under.
79
+ Python returns a dictionary. These are current defaults; an existing analysis records the policy it actually ran under. An agent the platform does not offer is refused with `invalid_input`.
78
80
 
79
81
  ## get
80
82
 
@@ -37,6 +37,7 @@ async def create(
37
37
  *,
38
38
  dataset: Optional[str] = None,
39
39
  name: Optional[str] = None,
40
+ agent: Optional[str] = None,
40
41
  model_name: Optional[str] = None,
41
42
  rubric: Optional[Rubric] = None,
42
43
  prompt: Optional[str] = None,
@@ -80,6 +81,7 @@ Optional `onUploadProgress(sent, total)` / `on_upload_progress(sent, total)` rep
80
81
  ```ts
81
82
  interface CheckConfigInput {
82
83
  name?: string;
84
+ agent?: string;
83
85
  model_name?: string;
84
86
  rubric?: Rubric;
85
87
  prompt?: string;
@@ -160,27 +162,29 @@ Optional `scope`: `my` (default), `shared`, or `org`; `status`: a list of `queue
160
162
 
161
163
  ## defaults
162
164
 
163
- Read `CheckDefaults`: current model, reasoning effort, sandbox provider, rubric, and unrendered prompt template.
165
+ Read `CheckDefaults`: current agent, model, reasoning effort, sandbox provider, rubric, and unrendered prompt template. Pass an agent to read what that agent runs under when you name no model.
164
166
 
165
167
  ### Signature
166
168
 
167
169
  ```ts TypeScript signature
168
- defaults(): Promise<CheckDefaults>;
170
+ defaults(options?: { agent?: string }): Promise<CheckDefaults>;
169
171
  ```
170
172
 
171
173
  ```python Python signature
172
- async def defaults() -> CheckDefaults: ...
174
+ async def defaults(*, agent: Optional[str] = None) -> CheckDefaults: ...
173
175
  ```
174
176
 
175
177
  ```ts TypeScript
176
178
  const defaults = await client.defaults();
179
+ const codex = await client.defaults({ agent: "codex" });
177
180
  ```
178
181
 
179
182
  ```python Python
180
183
  defaults = await client.defaults()
184
+ codex = await client.defaults(agent="codex")
181
185
  ```
182
186
 
183
- Python returns a dictionary. The check’s prompt uses `{task_path}`, `{file_tree}`, and `{criteria_guidance}`; the output contract is appended after your template.
187
+ Python returns a dictionary. The check’s prompt uses `{task_path}`, `{file_tree}`, and `{criteria_guidance}`; the output contract is appended after your template. An agent the platform does not offer is refused with `invalid_input`.
184
188
 
185
189
  ## watch
186
190
 
@@ -67,7 +67,7 @@ const job = await client.start({
67
67
  agents: [
68
68
  {
69
69
  name: "codex",
70
- model_name: "gpt-5.6-luna"
70
+ model_name: "gpt-6-luna"
71
71
  }
72
72
  ],
73
73
  max_trial_spend_usd: 1,
@@ -89,7 +89,7 @@ job = await client.start(
89
89
  agents=[
90
90
  {
91
91
  'name': 'codex',
92
- 'model_name': 'gpt-5.6-luna',
92
+ 'model_name': 'gpt-6-luna',
93
93
  },
94
94
  ],
95
95
  max_trial_spend_usd=1,
@@ -528,6 +528,7 @@ analyze(
528
528
  async def analyze(
529
529
  id: str,
530
530
  *,
531
+ agent: Optional[str] = None,
531
532
  model_name: Optional[str] = None,
532
533
  rubric: Optional[Rubric] = None,
533
534
  prompt: Optional[str] = None,
@@ -556,7 +557,7 @@ job = await client.analyze(
556
557
  )
557
558
  ```
558
559
 
559
- All options are optional. `analyses().defaults()` reads the current model, effort, provider, rubric, and prompt defaults.
560
+ All options are optional. `analyses().defaults()` reads the current agent, model, effort, provider, rubric, and prompt defaults.
560
561
 
561
562
  | Selection | Meaning |
562
563
  | --- | --- |
@@ -572,6 +573,7 @@ Cancelled trials are excluded. `trial_ids` is accepted here, but refused inside
572
573
 
573
574
  ```ts
574
575
  interface AnalyzeConfigInput {
576
+ agent?: string;
575
577
  model_name?: string;
576
578
  rubric?: Rubric;
577
579
  prompt?: string;