@evolvingmachines/evolve 0.0.64 → 0.0.65
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 +427 -0
- package/dist/cli/index.cjs +39 -39
- package/dist/cli/index.d.cts +1 -1
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.js +30 -30
- package/dist/index.cjs +47 -47
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +22 -22
- package/dist/{types-LYvFBfCo.d.cts → types-B_qmzlMk.d.cts} +125 -5
- package/dist/{types-LYvFBfCo.d.ts → types-B_qmzlMk.d.ts} +125 -5
- package/package.json +4 -4
- package/skills/evolve-evals/SKILL.md +1 -1
- package/skills/evolve-evals/references/cli-reference/analyze.mdx +11 -1
- package/skills/evolve-evals/references/cli-reference/job.mdx +6 -1
- package/skills/evolve-evals/references/core-concepts/analyze.mdx +2 -2
- package/skills/evolve-evals/references/core-concepts/sharing.mdx +1 -1
- package/skills/evolve-evals/references/core-concepts/teams.mdx +3 -3
- package/skills/evolve-evals/references/dashboard/checks.mdx +7 -1
- package/skills/evolve-evals/references/dashboard/jobs.mdx +4 -4
- package/skills/evolve-evals/references/dashboard/traces.mdx +2 -2
- package/skills/evolve-evals/references/dashboard/trial-viewer.mdx +1 -1
- package/skills/evolve-evals/references/sdk-reference/analyses.mdx +27 -0
- package/skills/evolve-evals/references/sdk-reference/jobs.mdx +16 -5
- package/skills/evolve-evals/references/sdk-reference/types.mdx +2 -1
- package/spec/openapi.yaml +313 -13
- package/dist/chunk-B4QFLLPV.js +0 -427
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Checks"
|
|
3
|
-
description: "Read a job's
|
|
3
|
+
description: "Read task quality checks in the dashboard, on a job's CHECK tab or on the check's own page."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
A job's CHECK tab lists the task quality checks run on the job's datasets.
|
|
@@ -13,3 +13,9 @@ A job's CHECK tab lists the task quality checks run on the job's datasets.
|
|
|
13
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
14
|
|
|
15
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).
|
|
@@ -3,14 +3,14 @@ title: "Jobs"
|
|
|
3
3
|
description: "Start a job from the browser, follow it, and read its results."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
The Jobs page lists your jobs, newest first.
|
|
6
|
+
The Jobs page lists your jobs, newest first. A task quality check is a job too, so the list holds both: the KIND column tells them apart, and a check row opens the [check's page](/dashboard/checks#the-check-page).
|
|
7
7
|
|
|
8
8
|
{/* retake after the UI pass, from a non-admin account */}
|
|
9
9
|
<Frame caption="The jobs list">
|
|
10
|
-
<img src="/images/jobs.png" alt="The Jobs page: a NEW JOB button, a search box, a status filter, and a table of jobs with status, datasets, agents, trials, cost and creation time." />
|
|
10
|
+
<img src="/images/jobs.png" alt="The Jobs page: a NEW JOB button, a search box, a status filter, and a table of jobs and checks with kind, status, datasets, agents, trials, cost and creation time." />
|
|
11
11
|
</Frame>
|
|
12
12
|
|
|
13
|
-
Search by name, and filter by status: ALL, QUEUED, RUNNING, CANCELLING, COMPLETED, CANCELLED or FAILED.
|
|
13
|
+
Search by name, and filter by status: ALL, QUEUED, RUNNING, CANCELLING, COMPLETED, CANCELLED or FAILED. A job row shows its datasets, its agents with their models, how many trials have settled out of the total, what it has spent, and when it started; a check row shows what was checked, the checker's model and effort, how many task checks have settled out of the total, the checker's cost, and when it started. Tick rows to cancel live jobs or delete finished ones; a check row cannot be ticked, its verbs live on its page.
|
|
14
14
|
|
|
15
15
|
## New job
|
|
16
16
|
|
|
@@ -36,7 +36,7 @@ The Summary rail counts datasets × agents × attempts. VALIDATE checks the whol
|
|
|
36
36
|
<img src="/images/job.png" alt="A job's page: the job id and status in the header, CANCEL, RESUME, DOWNLOAD and RE-RUN JOB buttons, tiles for trials, errors, average reward, cost and max cost, and the OVERVIEW tab with a progress bar and a per-agent table." />
|
|
37
37
|
</Frame>
|
|
38
38
|
|
|
39
|
-
The header carries the job id and its status. CANCEL stops a running job. RESUME runs a finished job's failed or stopped trials again as a new job.
|
|
39
|
+
The header carries the job id and its status. CANCEL stops a running job. RESUME runs a finished job's failed or stopped trials again as a new job. Both appear for the job's creator and the organization's members; a job shared with you by address opens without them.
|
|
40
40
|
|
|
41
41
|
DOWNLOAD saves a finished job's results as a `.tar.gz` in the standard job layout; while the job runs it is disabled, with the reason on hover. RE-RUN JOB opens the New job form filled in with this job's choices.
|
|
42
42
|
|
|
@@ -3,14 +3,14 @@ title: "Traces"
|
|
|
3
3
|
description: "Every recorded run in one list."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
The Traces page lists every run the
|
|
6
|
+
The Traces page lists every run of the workspace you are in, newest first: the trials of its jobs, their regrades, analyses and checks, and the managed-agent sessions the platform recorded, which these pages do not cover. In a team it is one list of every member's runs, with a CREATED BY column after the trace tag. In your personal workspace it has two tabs: MINE, your own runs in any team, and SHARED WITH ME, what teammates made plus runs shared with you by email.
|
|
7
7
|
|
|
8
8
|
{/* retake after the UI pass, from a non-admin account */}
|
|
9
9
|
<Frame caption="The traces list">
|
|
10
10
|
<img src="/images/traces.png" alt="The Traces page: a search box and a table of runs with a trace tag, the sandbox provider, the sandbox id, the agent and model, the start time, the cost and the status." />
|
|
11
11
|
</Frame>
|
|
12
12
|
|
|
13
|
-
Each row carries a tag naming the kind of run (EVAL for a trial, AGENT for a managed-agent session, REGRADE, ANALYZE, or CHECK), the task or session name, the dataset, the reward when there is one, the sandbox provider and sandbox id, the agent and model, when it started, what it spent, and its status. Search by name. Tick rows to stop running ones or delete finished ones.
|
|
13
|
+
Each row carries a tag naming the kind of run (EVAL for a trial, AGENT for a managed-agent session, REGRADE, ANALYZE, or CHECK), the task or session name, the dataset, the reward when there is one, the sandbox provider and sandbox id, the agent and model, when it started, what it spent, and its status. Search by name. Tick rows to stop running ones or delete finished ones; in a team's list and under SHARED WITH ME only the rows you created can be ticked, since stop and delete are the creator's.
|
|
14
14
|
|
|
15
15
|
Click a row to open it in the [trial viewer](/dashboard/trial-viewer).
|
|
16
16
|
|
|
@@ -12,7 +12,7 @@ Click a trial on a job's TRIALS tab, or a row on the Traces page, to open it.
|
|
|
12
12
|
|
|
13
13
|
The header names the run: its kind (EVAL for a trial, AGENT for a managed-agent session, REGRADE, ANALYZE, or CHECK), its task, its agent and model, its sandbox id, what it spent, and its status.
|
|
14
14
|
|
|
15
|
-
BACK returns to where you came from. RETRY runs a settled trial again as a new one-trial job. STOP ends a run that is still going.
|
|
15
|
+
BACK returns to where you came from. RETRY runs a settled trial again as a new one-trial job. STOP ends a run that is still going; its creator can stop it.
|
|
16
16
|
|
|
17
17
|
DOWNLOAD on a trial offers the parsed trace, the ATIF trajectory, the raw stdout, the raw stderr, the agent home folder, the verifier log, or everything at once; on an analysis or a check it offers the verdict document, the raw stdout, the raw stderr, the agent home folder, or everything.
|
|
18
18
|
|
|
@@ -79,6 +79,33 @@ description: "Read trace-analysis runs."
|
|
|
79
79
|
</Tab>
|
|
80
80
|
</Tabs>
|
|
81
81
|
|
|
82
|
+
## defaults
|
|
83
|
+
|
|
84
|
+
<Tabs>
|
|
85
|
+
<Tab title="TypeScript">
|
|
86
|
+
```ts
|
|
87
|
+
defaults(): Promise<AnalyzeDefaults>
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
The defaults an analysis runs under when you name none: `model_name`, `reasoning_effort`, `sandbox_provider`, the platform's `rubric`, and `prompt`, the built-in analyze prompt as a template with `{trial_path}`, `{task_section}` and `{criteria_guidance}` unrendered. Edit the rubric or the prompt from here and pass it to `jobs().analyze()`; passed back unchanged, they run exactly as the defaults do, and the analysis records them as named, so a later change of the platform default does not move it.
|
|
91
|
+
|
|
92
|
+
```ts
|
|
93
|
+
const { rubric } = await analyses().defaults();
|
|
94
|
+
```
|
|
95
|
+
</Tab>
|
|
96
|
+
<Tab title="Python">
|
|
97
|
+
```python
|
|
98
|
+
async def defaults() -> AnalyzeDefaults
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
The defaults an analysis runs under when you name none: `model_name`, `reasoning_effort`, `sandbox_provider`, the platform's `rubric`, and `prompt`, the built-in analyze prompt as a template with `{trial_path}`, `{task_section}` and `{criteria_guidance}` unrendered. Edit the rubric or the prompt from here and pass it to `jobs().analyze()`; passed back unchanged, they run exactly as the defaults do, and the analysis records them as named, so a later change of the platform default does not move it.
|
|
102
|
+
|
|
103
|
+
```python
|
|
104
|
+
rubric = (await analyses().defaults())["rubric"]
|
|
105
|
+
```
|
|
106
|
+
</Tab>
|
|
107
|
+
</Tabs>
|
|
108
|
+
|
|
82
109
|
## download
|
|
83
110
|
|
|
84
111
|
<Tabs>
|
|
@@ -98,15 +98,20 @@ description: "Start, follow, and derive jobs."
|
|
|
98
98
|
<Tabs>
|
|
99
99
|
<Tab title="TypeScript">
|
|
100
100
|
```ts
|
|
101
|
-
list(options?: { search?: string; scope?: "my" | "shared" | "org"; limit?: number; cursor?: string }): JobList
|
|
101
|
+
list(options?: { search?: string; scope?: "my" | "shared" | "org"; kind?: "job"; limit?: number; cursor?: string }): JobList
|
|
102
|
+
list(options: { kind: "check"; search?: string; scope?: "my" | "shared" | "org"; limit?: number; cursor?: string }): CheckRowList
|
|
103
|
+
list(options: { kind: "all"; search?: string; scope?: "my" | "shared" | "org"; limit?: number; cursor?: string }): JobListItemList
|
|
102
104
|
```
|
|
103
105
|
|
|
104
|
-
Your jobs, newest first. Await one page, or iterate every page.
|
|
106
|
+
Your jobs, newest first. Await one page, or iterate every page. A task quality check is a job too: `kind: "check"` lists checks alone (each row a `CheckRow`), `kind: "all"` lists jobs and checks together (each row a `JobListItem`, told apart by its `kind`); without `kind` every row is a `Job`.
|
|
105
107
|
|
|
106
108
|
```ts
|
|
107
109
|
for await (const job of jobs().list({ search: "nightly" })) {
|
|
108
110
|
console.log(job.id, job.status);
|
|
109
111
|
}
|
|
112
|
+
for await (const row of jobs().list({ kind: "all" })) {
|
|
113
|
+
console.log(row.kind, row.id, row.status);
|
|
114
|
+
}
|
|
110
115
|
```
|
|
111
116
|
</Tab>
|
|
112
117
|
<Tab title="Python">
|
|
@@ -115,15 +120,18 @@ description: "Start, follow, and derive jobs."
|
|
|
115
120
|
*,
|
|
116
121
|
search: Optional[str] = None,
|
|
117
122
|
scope: Optional[JobListScope] = None,
|
|
123
|
+
kind: Optional[JobListKind] = None,
|
|
118
124
|
limit: Optional[int] = None,
|
|
119
125
|
cursor: Optional[str] = None,
|
|
120
126
|
)
|
|
121
127
|
```
|
|
122
128
|
|
|
123
|
-
Your jobs, newest first. Await one page, or iterate every page.
|
|
129
|
+
Your jobs, newest first. Await one page, or iterate every page. A task quality check is a job too: `kind='check'` lists checks alone (each row a `CheckRow`), `kind='all'` lists jobs and checks together (each row a `Job` or a `CheckRow`, told apart by its `kind`); without `kind` every row is a `Job`. Both are dataclasses, so every row reads the same way.
|
|
124
130
|
|
|
125
131
|
```python
|
|
126
132
|
async for job in jobs().list(search="nightly"): print(job.id, job.status)
|
|
133
|
+
async for row in jobs().list(kind="all"):
|
|
134
|
+
print(row.kind, row.id, row.status)
|
|
127
135
|
```
|
|
128
136
|
</Tab>
|
|
129
137
|
</Tabs>
|
|
@@ -406,7 +414,7 @@ description: "Start, follow, and derive jobs."
|
|
|
406
414
|
): Promise<Job>
|
|
407
415
|
```
|
|
408
416
|
|
|
409
|
-
Enqueue one trace analysis per trial and return at once with the job, its `stats.analysis.n_pending` counting the batch. `AnalyzeConfigInput`: `model_name`, `rubric`, `prompt`, `sandbox_provider`, `reasoning_effort`, `n_concurrent`, `passing`, `failing`, `n_trials`, all optional; `{}` is every default. Calling it again is the re-analysis path, one wave at a time. The same object on `start()` as `analyze` arms the embedded trigger.
|
|
417
|
+
Enqueue one trace analysis per trial and return at once with the job, its `stats.analysis.n_pending` counting the batch. `AnalyzeConfigInput`: `model_name`, `rubric`, `prompt`, `sandbox_provider`, `reasoning_effort`, `n_concurrent`, `passing`, `failing`, `n_trials`, `trial_ids`, all optional; `{}` is every default. `trial_ids` names the trials to analyze; it combines with `passing` or `failing` and comes before `n_trials`, and an id that is not this job's is refused with `invalid_input` naming the unknown ids. Calling it again is the re-analysis path, one wave at a time. The same object on `start()` as `analyze` arms the embedded trigger, where `trial_ids` is refused because the trials do not exist yet.
|
|
410
418
|
|
|
411
419
|
```ts
|
|
412
420
|
await jobs().analyze(
|
|
@@ -416,6 +424,7 @@ description: "Start, follow, and derive jobs."
|
|
|
416
424
|
n_trials: 20,
|
|
417
425
|
},
|
|
418
426
|
);
|
|
427
|
+
await jobs().analyze(job.id, { trial_ids: [trial.id] });
|
|
419
428
|
```
|
|
420
429
|
</Tab>
|
|
421
430
|
<Tab title="Python">
|
|
@@ -432,10 +441,11 @@ description: "Start, follow, and derive jobs."
|
|
|
432
441
|
passing=None,
|
|
433
442
|
failing=None,
|
|
434
443
|
n_trials=None,
|
|
444
|
+
trial_ids=None,
|
|
435
445
|
) -> Job
|
|
436
446
|
```
|
|
437
447
|
|
|
438
|
-
Enqueue one trace analysis per trial and return at once.
|
|
448
|
+
Enqueue one trace analysis per trial and return at once. `trial_ids` names the trials to analyze; an id that is not this job's is refused with `invalid_input` naming the unknown ids.
|
|
439
449
|
|
|
440
450
|
```python
|
|
441
451
|
await jobs().analyze(
|
|
@@ -443,6 +453,7 @@ description: "Start, follow, and derive jobs."
|
|
|
443
453
|
failing=True,
|
|
444
454
|
n_trials=20,
|
|
445
455
|
)
|
|
456
|
+
await jobs().analyze(job.id, trial_ids=[trial.id])
|
|
446
457
|
```
|
|
447
458
|
</Tab>
|
|
448
459
|
</Tabs>
|
|
@@ -39,6 +39,7 @@ One shape from `start`, `get`, `list`, `cancel`, `resume`, `retry` and `regrade`
|
|
|
39
39
|
| `failure` | `{ code, message } \| null` | Why the job FAILED. Null on every job today; `FAILED` is reserved. |
|
|
40
40
|
| `source_jobs` | `{ action, type, job_id }[]` | `action` is `regrade`, `resume` or `retry`; `type` is always `hub`. Empty on an original job. |
|
|
41
41
|
| `is_regrade` | boolean | Any `source_jobs` entry with `action: "regrade"`. |
|
|
42
|
+
| `viewer` | `creator` `member` `shared` `link` \| null | How you can read this job: you made it, you belong to its organization, it was shared with your address, or you hold its link. Null on the body an acting call returns (create, analyze, cancel, resume, retry, regrade) and on list rows; `get` tells you. Analyze, cancel, resume, retry and regrade are open to `creator` and `member` only. |
|
|
42
43
|
| `upload` | `UploadProvenance \| null` | Null on every job this platform ran. See [upload](/core-concepts/upload). |
|
|
43
44
|
| `idempotent_replay` | boolean | True only on a response that replayed an existing job for an idempotency key. |
|
|
44
45
|
| `started_at`, `updated_at` | string | |
|
|
@@ -62,7 +63,7 @@ One shape from `start`, `get`, `list`, `cancel`, `resume`, `retry` and `regrade`
|
|
|
62
63
|
|
|
63
64
|
### AnalyzeConfig
|
|
64
65
|
|
|
65
|
-
`model_name`, `rubric` (`{ criteria: [{ name, description, guidance }] }`), `prompt` (string or null for the default body), `reasoning_effort`, `sandbox_provider`, `n_concurrent` (number or null for the organization's ceiling alone), `passing`, `failing` (both false means every analyzable trial), `n_trials` (number or null for no cap). The input shape takes every field as optional.
|
|
66
|
+
`model_name`, `rubric` (`{ criteria: [{ name, description, guidance }] }`), `prompt` (string or null for the default body), `reasoning_effort`, `sandbox_provider`, `n_concurrent` (number or null for the organization's ceiling alone), `passing`, `failing` (both false means every analyzable trial), `n_trials` (number or null for no cap), `trial_ids` (always null on the job body today: the stored policy is the create-time one, which refuses the field; the trials a manual wave names are the analyses it enqueues). The input shape takes every field as optional.
|
|
66
67
|
|
|
67
68
|
### JobStats
|
|
68
69
|
|