@evolvingmachines/evolve 0.0.65 → 0.0.67
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-DK2MGUPB.js → chunk-RFLMRPGK.js} +5 -5
- package/dist/cli/index.cjs +39 -39
- package/dist/cli/index.d.cts +3 -3
- package/dist/cli/index.d.ts +3 -3
- package/dist/cli/index.js +30 -30
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +1 -1
- package/dist/{types-B_qmzlMk.d.cts → types-84M4J_Vm.d.cts} +11 -44
- package/dist/{types-B_qmzlMk.d.ts → types-84M4J_Vm.d.ts} +11 -44
- package/package.json +4 -4
- package/skills/create-adapter/SKILL.md +71 -26
- package/skills/create-task/SKILL.md +124 -66
- package/skills/evolve/SKILL.md +37 -20
- package/skills/evolve-evals/SKILL.md +142 -69
- package/skills/evolve-evals/references/cli-reference/agent.md +76 -0
- package/skills/evolve-evals/references/cli-reference/analysis.md +78 -0
- package/skills/evolve-evals/references/cli-reference/analyze.md +95 -0
- package/skills/evolve-evals/references/cli-reference/auth.md +96 -0
- package/skills/evolve-evals/references/cli-reference/check.md +156 -0
- package/skills/evolve-evals/references/cli-reference/dataset.md +154 -0
- package/skills/evolve-evals/references/cli-reference/filesystem.md +168 -0
- package/skills/evolve-evals/references/cli-reference/index.md +149 -0
- package/skills/evolve-evals/references/cli-reference/job.md +198 -0
- package/skills/evolve-evals/references/cli-reference/run.md +187 -0
- package/skills/evolve-evals/references/cli-reference/secrets.md +77 -0
- package/skills/evolve-evals/references/cli-reference/session.md +56 -0
- package/skills/evolve-evals/references/cli-reference/skill.md +52 -0
- package/skills/evolve-evals/references/cli-reference/skills.md +85 -0
- package/skills/evolve-evals/references/cli-reference/trial.md +115 -0
- package/skills/evolve-evals/references/cli-reference/upload.md +72 -0
- package/skills/evolve-evals/references/core-concepts/agents.md +96 -0
- package/skills/evolve-evals/references/core-concepts/analyze.md +143 -0
- package/skills/evolve-evals/references/core-concepts/check.md +116 -0
- package/skills/evolve-evals/references/core-concepts/compatibility.md +39 -0
- package/skills/evolve-evals/references/core-concepts/compose.md +103 -0
- package/skills/evolve-evals/references/core-concepts/datasets.md +234 -0
- package/skills/evolve-evals/references/core-concepts/index.md +52 -0
- package/skills/evolve-evals/references/core-concepts/jobs.md +223 -0
- package/skills/evolve-evals/references/core-concepts/models.md +73 -0
- package/skills/evolve-evals/references/core-concepts/multi-step.md +93 -0
- package/skills/evolve-evals/references/core-concepts/rewardkit.md +341 -0
- package/skills/evolve-evals/references/core-concepts/sandboxes.md +73 -0
- package/skills/evolve-evals/references/core-concepts/secrets.md +86 -0
- package/skills/evolve-evals/references/core-concepts/sharing.md +81 -0
- package/skills/evolve-evals/references/core-concepts/skills.md +100 -0
- package/skills/evolve-evals/references/core-concepts/task-config.md +169 -0
- package/skills/evolve-evals/references/core-concepts/task-environment.md +127 -0
- package/skills/evolve-evals/references/core-concepts/task-reference.md +191 -0
- package/skills/evolve-evals/references/core-concepts/task-verifiers.md +209 -0
- package/skills/evolve-evals/references/core-concepts/tasks.md +90 -0
- package/skills/evolve-evals/references/core-concepts/teams.md +128 -0
- package/skills/evolve-evals/references/core-concepts/trial-outputs.md +225 -0
- package/skills/evolve-evals/references/core-concepts/trials.md +129 -0
- package/skills/evolve-evals/references/core-concepts/upload-sdk-session.md +240 -0
- package/skills/evolve-evals/references/core-concepts/upload.md +166 -0
- package/skills/evolve-evals/references/dashboard/checks.md +54 -0
- package/skills/evolve-evals/references/dashboard/datasets.md +65 -0
- package/skills/evolve-evals/references/dashboard/jobs.md +106 -0
- package/skills/evolve-evals/references/dashboard/traces.md +54 -0
- package/skills/evolve-evals/references/dashboard/trial-viewer.md +77 -0
- package/skills/evolve-evals/references/getting-started/first-task.md +228 -0
- package/skills/evolve-evals/references/getting-started/installation.md +79 -0
- package/skills/evolve-evals/references/getting-started/quick-start.md +100 -0
- package/skills/evolve-evals/references/index.md +58 -0
- package/skills/evolve-evals/references/sdk/http.md +110 -0
- package/skills/evolve-evals/references/sdk/python.md +108 -0
- package/skills/evolve-evals/references/sdk/typescript.md +104 -0
- package/skills/evolve-evals/references/sdk-reference/agents.md +75 -0
- package/skills/evolve-evals/references/sdk-reference/analyses.md +124 -0
- package/skills/evolve-evals/references/sdk-reference/auth.md +171 -0
- package/skills/evolve-evals/references/sdk-reference/checks.md +145 -0
- package/skills/evolve-evals/references/sdk-reference/datasets.md +170 -0
- package/skills/evolve-evals/references/sdk-reference/error-codes.md +231 -0
- package/skills/evolve-evals/references/sdk-reference/errors.md +98 -0
- package/skills/evolve-evals/references/sdk-reference/filesystem.md +166 -0
- package/skills/evolve-evals/references/sdk-reference/index.md +161 -0
- package/skills/evolve-evals/references/sdk-reference/jobs.md +250 -0
- package/skills/evolve-evals/references/sdk-reference/meta.md +54 -0
- package/skills/evolve-evals/references/sdk-reference/methods/agents.md +154 -0
- package/skills/evolve-evals/references/sdk-reference/methods/analyses.md +211 -0
- package/skills/evolve-evals/references/sdk-reference/methods/auth.md +257 -0
- package/skills/evolve-evals/references/sdk-reference/methods/checks.md +460 -0
- package/skills/evolve-evals/references/sdk-reference/methods/datasets.md +687 -0
- package/skills/evolve-evals/references/sdk-reference/methods/filesystem.md +527 -0
- package/skills/evolve-evals/references/sdk-reference/methods/jobs.md +1021 -0
- package/skills/evolve-evals/references/sdk-reference/methods/meta.md +209 -0
- package/skills/evolve-evals/references/sdk-reference/methods/secrets.md +157 -0
- package/skills/evolve-evals/references/sdk-reference/methods/skills.md +125 -0
- package/skills/evolve-evals/references/sdk-reference/methods/trials.md +371 -0
- package/skills/evolve-evals/references/sdk-reference/secrets.md +104 -0
- package/skills/evolve-evals/references/sdk-reference/skills.md +66 -0
- package/skills/evolve-evals/references/sdk-reference/trials.md +164 -0
- package/skills/evolve-evals/references/sdk-reference/types.md +1249 -0
- package/skills/publish/SKILL.md +103 -79
- package/skills/rewardkit/SKILL.md +78 -23
- package/spec/openapi.yaml +19 -74
- package/skills/evolve-evals/references/cli-reference/agent.mdx +0 -79
- package/skills/evolve-evals/references/cli-reference/analysis.mdx +0 -160
- package/skills/evolve-evals/references/cli-reference/analyze.mdx +0 -84
- package/skills/evolve-evals/references/cli-reference/auth.mdx +0 -133
- package/skills/evolve-evals/references/cli-reference/check.mdx +0 -263
- package/skills/evolve-evals/references/cli-reference/dataset.mdx +0 -151
- package/skills/evolve-evals/references/cli-reference/index.mdx +0 -108
- package/skills/evolve-evals/references/cli-reference/job.mdx +0 -278
- package/skills/evolve-evals/references/cli-reference/run.mdx +0 -204
- package/skills/evolve-evals/references/cli-reference/secrets.mdx +0 -95
- package/skills/evolve-evals/references/cli-reference/skill.mdx +0 -61
- package/skills/evolve-evals/references/cli-reference/skills.mdx +0 -81
- package/skills/evolve-evals/references/cli-reference/trial.mdx +0 -181
- package/skills/evolve-evals/references/cli-reference/upload.mdx +0 -36
- package/skills/evolve-evals/references/core-concepts/agents.mdx +0 -106
- package/skills/evolve-evals/references/core-concepts/analyze.mdx +0 -86
- package/skills/evolve-evals/references/core-concepts/check.mdx +0 -64
- package/skills/evolve-evals/references/core-concepts/datasets.mdx +0 -138
- package/skills/evolve-evals/references/core-concepts/index.mdx +0 -42
- package/skills/evolve-evals/references/core-concepts/jobs.mdx +0 -151
- package/skills/evolve-evals/references/core-concepts/models.mdx +0 -68
- package/skills/evolve-evals/references/core-concepts/sandboxes.mdx +0 -52
- package/skills/evolve-evals/references/core-concepts/secrets.mdx +0 -41
- package/skills/evolve-evals/references/core-concepts/sharing.mdx +0 -35
- package/skills/evolve-evals/references/core-concepts/skills.mdx +0 -42
- package/skills/evolve-evals/references/core-concepts/tasks.mdx +0 -216
- package/skills/evolve-evals/references/core-concepts/teams.mdx +0 -36
- package/skills/evolve-evals/references/core-concepts/trial-outputs.mdx +0 -117
- package/skills/evolve-evals/references/core-concepts/trials.mdx +0 -103
- package/skills/evolve-evals/references/core-concepts/upload.mdx +0 -93
- package/skills/evolve-evals/references/dashboard/checks.mdx +0 -21
- package/skills/evolve-evals/references/dashboard/datasets.mdx +0 -24
- package/skills/evolve-evals/references/dashboard/jobs.mdx +0 -65
- package/skills/evolve-evals/references/dashboard/traces.mdx +0 -17
- package/skills/evolve-evals/references/dashboard/trial-viewer.mdx +0 -30
- package/skills/evolve-evals/references/getting-started/installation.mdx +0 -56
- package/skills/evolve-evals/references/getting-started/quick-start.mdx +0 -94
- package/skills/evolve-evals/references/index.mdx +0 -48
- package/skills/evolve-evals/references/sdk/python.mdx +0 -161
- package/skills/evolve-evals/references/sdk/typescript.mdx +0 -163
- package/skills/evolve-evals/references/sdk-reference/agents.mdx +0 -108
- package/skills/evolve-evals/references/sdk-reference/analyses.mdx +0 -222
- package/skills/evolve-evals/references/sdk-reference/auth.mdx +0 -116
- package/skills/evolve-evals/references/sdk-reference/checks.mdx +0 -300
- package/skills/evolve-evals/references/sdk-reference/datasets.mdx +0 -346
- package/skills/evolve-evals/references/sdk-reference/errors.mdx +0 -210
- package/skills/evolve-evals/references/sdk-reference/index.mdx +0 -60
- package/skills/evolve-evals/references/sdk-reference/jobs.mdx +0 -822
- package/skills/evolve-evals/references/sdk-reference/meta.mdx +0 -52
- package/skills/evolve-evals/references/sdk-reference/skills.mdx +0 -69
- package/skills/evolve-evals/references/sdk-reference/trials.mdx +0 -302
- package/skills/evolve-evals/references/sdk-reference/types.mdx +0 -274
- package/skills/evolve-evals/references/snippets/global-options.mdx +0 -13
- package/skills/evolve-evals/references/snippets/list-flags.mdx +0 -23
|
@@ -0,0 +1,527 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Filesystem methods"
|
|
3
|
+
description: "Read run files, captured changes, sandbox logs, and live processes."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
A `RunFilesystem` belongs to a trial, analysis, or task check. Each exposes the same methods.
|
|
7
|
+
|
|
8
|
+
```ts TypeScript
|
|
9
|
+
const fs = trials().filesystem(trialId);
|
|
10
|
+
// Or: analyses().filesystem(analysisId)
|
|
11
|
+
// Or: checks().taskFilesystem(checkId, taskCheckId)
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
```python Python
|
|
15
|
+
fs = trials().filesystem(trial_id)
|
|
16
|
+
# Or: analyses().filesystem(analysis_id)
|
|
17
|
+
# Or: checks().task_filesystem(check_id, task_check_id)
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Read [filesystem states](/sdk-reference/filesystem) before choosing a source. Omit `source` to use the available source; pass `live` or `capture` to request one explicitly.
|
|
21
|
+
|
|
22
|
+
| Files | Live observation |
|
|
23
|
+
| --- | --- |
|
|
24
|
+
| [status](#status), [list](#list), [read](#read), [search](#search), [changes](#changes), [archive](#archive) | [watch](#watch), [events](#events), [logs](#logs), [logEvents](#logevents), [procs](#procs) |
|
|
25
|
+
|
|
26
|
+
[Task package files](#task-package-files) provide a smaller, read-only interface.
|
|
27
|
+
|
|
28
|
+
## status
|
|
29
|
+
|
|
30
|
+
Return `FilesystemStatus`: state, live box, watcher type, root, work directory, and capture record.
|
|
31
|
+
|
|
32
|
+
### Signature
|
|
33
|
+
|
|
34
|
+
```ts TypeScript signature
|
|
35
|
+
status(): Promise<FilesystemStatus>;
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
```python Python signature
|
|
39
|
+
async def status() -> FilesystemStatus: ...
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
```ts TypeScript
|
|
43
|
+
const status = await fs.status();
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
```python Python
|
|
47
|
+
status = await fs.status()
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
States: `live`, `capturing`, `captured`, `none`. A null `capture` means no settled capture record. A capture can be incomplete: inspect `left_out` before assuming every file was retained. See [filesystem result fields](/sdk-reference/types#filesystem-results).
|
|
51
|
+
|
|
52
|
+
## list
|
|
53
|
+
|
|
54
|
+
Read one directory page, sorted by name. Returns `FilesystemListing`.
|
|
55
|
+
|
|
56
|
+
### Signature
|
|
57
|
+
|
|
58
|
+
```ts TypeScript signature
|
|
59
|
+
list(
|
|
60
|
+
options?: FilesystemListOptions
|
|
61
|
+
): Promise<FilesystemListing>;
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
```python Python signature
|
|
65
|
+
async def list(
|
|
66
|
+
*,
|
|
67
|
+
path: str = '/',
|
|
68
|
+
source: Optional[FilesystemSource] = None,
|
|
69
|
+
cursor: Optional[str] = None,
|
|
70
|
+
limit: Optional[int] = None,
|
|
71
|
+
) -> FilesystemListing: ...
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
```ts TypeScript
|
|
75
|
+
const page = await fs.list({
|
|
76
|
+
path: "/app",
|
|
77
|
+
limit: 100
|
|
78
|
+
});
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
```python Python
|
|
82
|
+
page = await fs.list(
|
|
83
|
+
path='/app',
|
|
84
|
+
limit=100,
|
|
85
|
+
)
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Optional `path` defaults to `/`; `source` selects `live` or `capture`; `cursor` continues the page; `limit` defaults to 500 (maximum 1,000).
|
|
89
|
+
|
|
90
|
+
Returns `path`, `source`, `entries`, `next_cursor`, and elapsed `ms`. Both languages use `next_cursor` here. An entry with `captured: false` has no retained bytes. Read `left_out` for an omitted or failed capture; otherwise it may be an untouched image file. A missing directory returns `not_found`.
|
|
91
|
+
|
|
92
|
+
## read
|
|
93
|
+
|
|
94
|
+
Read raw bytes from an absolute sandbox path. Returns `Buffer` / `bytes`.
|
|
95
|
+
|
|
96
|
+
### Signature
|
|
97
|
+
|
|
98
|
+
```ts TypeScript signature
|
|
99
|
+
read(
|
|
100
|
+
path: string,
|
|
101
|
+
options?: FilesystemReadOptions
|
|
102
|
+
): Promise<Buffer>;
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
```python Python signature
|
|
106
|
+
async def read(
|
|
107
|
+
path: str,
|
|
108
|
+
*,
|
|
109
|
+
source: Optional[FilesystemSource] = None,
|
|
110
|
+
start: Optional[int] = None,
|
|
111
|
+
end: Optional[int] = None,
|
|
112
|
+
suffix: Optional[int] = None,
|
|
113
|
+
) -> bytes: ...
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
```ts TypeScript
|
|
117
|
+
const bytes = await fs.read("/app/result.txt", {
|
|
118
|
+
range: {
|
|
119
|
+
suffix: 4096
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
```python Python
|
|
125
|
+
data = await fs.read(
|
|
126
|
+
'/app/result.txt',
|
|
127
|
+
suffix=4096,
|
|
128
|
+
)
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Optional `source` chooses `live` or `capture`. For ranges, TypeScript uses `{ range: { start, end } }`; Python uses `start=` and `end=`. End is inclusive. Use `start` alone through EOF or `suffix` alone for the last N bytes. An oversized whole-file read returns 413; read slices instead.
|
|
132
|
+
|
|
133
|
+
## search
|
|
134
|
+
|
|
135
|
+
Search file contents. Returns `FilesystemSearchResult`, including hits and whether results were truncated.
|
|
136
|
+
|
|
137
|
+
### Signature
|
|
138
|
+
|
|
139
|
+
```ts TypeScript signature
|
|
140
|
+
search(
|
|
141
|
+
options: FilesystemSearchOptions
|
|
142
|
+
): Promise<FilesystemSearchResult>;
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
```python Python signature
|
|
146
|
+
async def search(
|
|
147
|
+
q: str,
|
|
148
|
+
*,
|
|
149
|
+
path: str = '/',
|
|
150
|
+
regex: bool = False,
|
|
151
|
+
limit: Optional[int] = None,
|
|
152
|
+
source: Optional[FilesystemSource] = None,
|
|
153
|
+
) -> FilesystemSearchResult: ...
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
```ts TypeScript
|
|
157
|
+
const result = await fs.search({
|
|
158
|
+
q: "TODO",
|
|
159
|
+
path: "/app"
|
|
160
|
+
});
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
```python Python
|
|
164
|
+
result = await fs.search(
|
|
165
|
+
'TODO',
|
|
166
|
+
path='/app',
|
|
167
|
+
)
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
Required `q` is text; `regex: true` / `regex=True` interprets it as a regular expression. Optional `path` defaults to `/`; `limit` defaults to 200 (maximum 1,000); `source` selects `live` or `capture`.
|
|
171
|
+
|
|
172
|
+
Returns `hits[]` with `path`, `line`, `snippet`; plus `truncated`, `scope`, `source`, `ms`, and optional `image_files_excluded`. A whole-box search can take seconds. Captured search cannot inspect untouched image files.
|
|
173
|
+
|
|
174
|
+
## changes
|
|
175
|
+
|
|
176
|
+
Read created, modified, and removed paths by phase. Returns one `FilesystemChanges` page.
|
|
177
|
+
|
|
178
|
+
### Signature
|
|
179
|
+
|
|
180
|
+
```ts TypeScript signature
|
|
181
|
+
changes(
|
|
182
|
+
options?: FilesystemChangesOptions
|
|
183
|
+
): Promise<FilesystemChanges>;
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
```python Python signature
|
|
187
|
+
async def changes(
|
|
188
|
+
*,
|
|
189
|
+
source: Optional[FilesystemSource] = None,
|
|
190
|
+
phase: Optional[Literal['setup', 'agent', 'verifier', 'all']] = None,
|
|
191
|
+
cursor: Optional[str] = None,
|
|
192
|
+
limit: Optional[int] = None,
|
|
193
|
+
) -> FilesystemChanges: ...
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
```ts TypeScript
|
|
197
|
+
const page = await fs.changes({
|
|
198
|
+
phase: "agent",
|
|
199
|
+
limit: 100
|
|
200
|
+
});
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
```python Python
|
|
204
|
+
page = await fs.changes(
|
|
205
|
+
phase='agent',
|
|
206
|
+
limit=100,
|
|
207
|
+
)
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
Optional `phase`: `setup`, `agent`, `verifier`, or `all` (default); `source`: `live` or `capture`; `limit`: default 500, maximum 1,000; `cursor`: next page. Returns `source`, whole-list `total` and `changed_bytes`, page `items`, and `next_cursor`. Live changes require a recorded initial listing; otherwise the server returns `feature_unsupported`. For captured changes, `left_out` explains missing retained bytes.
|
|
211
|
+
|
|
212
|
+
## archive
|
|
213
|
+
|
|
214
|
+
Download a subtree as `.tar.gz`. The default path `/` requests the whole tree.
|
|
215
|
+
|
|
216
|
+
### Signature
|
|
217
|
+
|
|
218
|
+
```ts TypeScript signature
|
|
219
|
+
archive(
|
|
220
|
+
options?: FilesystemArchiveOptions
|
|
221
|
+
): Promise<Buffer>;
|
|
222
|
+
archive(
|
|
223
|
+
options: FilesystemArchiveOptions & { to: string }
|
|
224
|
+
): Promise<string>;
|
|
225
|
+
archive(
|
|
226
|
+
options: FilesystemArchiveOptions & { stream: true },
|
|
227
|
+
): Promise<ReadableStream<Uint8Array>>;
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
```python Python signature
|
|
231
|
+
async def archive(
|
|
232
|
+
*,
|
|
233
|
+
path: str = '/',
|
|
234
|
+
source: Optional[FilesystemSource] = None,
|
|
235
|
+
to: Optional[str] = None,
|
|
236
|
+
) -> bytes | str: ...
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
```ts TypeScript
|
|
240
|
+
const path = await fs.archive({
|
|
241
|
+
path: "/app",
|
|
242
|
+
to: "./results"
|
|
243
|
+
});
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
```python Python
|
|
247
|
+
path = await fs.archive(
|
|
248
|
+
path='/app',
|
|
249
|
+
to='./results',
|
|
250
|
+
)
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
Optional `source` selects `live` or `capture`. No `to` returns `Buffer` / `bytes`; `to` saves into a directory and returns the file path. TypeScript also accepts `stream: true`; Python does not expose streaming. A live subtree too large to read within provider limits returns `feature_unsupported`.
|
|
254
|
+
|
|
255
|
+
## watch
|
|
256
|
+
|
|
257
|
+
Declare the folders currently open in your viewer. Replaces the watched set, with at most eight paths.
|
|
258
|
+
|
|
259
|
+
### Signature
|
|
260
|
+
|
|
261
|
+
```ts TypeScript signature
|
|
262
|
+
watch(paths: string[]): Promise<FilesystemWatchResult>;
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
```python Python signature
|
|
266
|
+
async def watch(
|
|
267
|
+
paths: List[str]
|
|
268
|
+
) -> FilesystemWatchResult: ...
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
```ts TypeScript
|
|
272
|
+
const result = await fs.watch(["/app", "/logs"]);
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
```python Python
|
|
276
|
+
result = await fs.watch(
|
|
277
|
+
['/app', '/logs'],
|
|
278
|
+
)
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
Required `paths: string[]`. Returns `watcher: "native" | "poll"` and `paths: string[]`. Poll-based change detection uses this set. This method registers folders; `events()` reads their changes.
|
|
282
|
+
|
|
283
|
+
## events
|
|
284
|
+
|
|
285
|
+
Iterate filesystem state and changes until the filesystem settles. Returns async `FilesystemStreamEvent` frames.
|
|
286
|
+
|
|
287
|
+
### Signature
|
|
288
|
+
|
|
289
|
+
```ts TypeScript signature
|
|
290
|
+
events(
|
|
291
|
+
options?: FilesystemStreamOptions
|
|
292
|
+
): AsyncIterableIterator<FilesystemStreamEvent>;
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
```python Python signature
|
|
296
|
+
async def events(
|
|
297
|
+
*,
|
|
298
|
+
last_event_id: Optional[str] = None,
|
|
299
|
+
) -> 'AsyncIterator[FilesystemStreamEvent]': ...
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
```ts TypeScript
|
|
303
|
+
for await (const event of fs.events()) {
|
|
304
|
+
console.log(event.event, event.data);
|
|
305
|
+
}
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
```python Python
|
|
309
|
+
async for event in fs.events():
|
|
310
|
+
print(event.event, event.data)
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
Optional `lastEventId` / `last_event_id` resumes after a stored event id. TypeScript also accepts `signal`. A `state` frame after a resume request means relist the folder. Frames are `state`, `fs`, or `ping`; [event fields](/sdk-reference/types#filesystem-results) define the payloads.
|
|
314
|
+
|
|
315
|
+
## logs
|
|
316
|
+
|
|
317
|
+
Read one page of one sandbox log stream. Returns `SandboxLogLines`.
|
|
318
|
+
|
|
319
|
+
### Signature
|
|
320
|
+
|
|
321
|
+
```ts TypeScript signature
|
|
322
|
+
logs(
|
|
323
|
+
options: SandboxLogOptions
|
|
324
|
+
): Promise<SandboxLogLines>;
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
```python Python signature
|
|
328
|
+
async def logs(
|
|
329
|
+
stream: SandboxLogStream,
|
|
330
|
+
*,
|
|
331
|
+
cursor: Optional[str] = None,
|
|
332
|
+
limit: Optional[int] = None,
|
|
333
|
+
) -> SandboxLogLines: ...
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
```ts TypeScript
|
|
337
|
+
const page = await fs.logs({
|
|
338
|
+
stream: "agent",
|
|
339
|
+
limit: 100
|
|
340
|
+
});
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
```python Python
|
|
344
|
+
page = await fs.logs(
|
|
345
|
+
'agent',
|
|
346
|
+
limit=100,
|
|
347
|
+
)
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
Required `stream`: `agent`, `verifier`, `setup`, `system`, or `metrics`. Optional `cursor` continues the stream; `limit` defaults to and is capped at 1,000. Returns `stream`, `lines`, `next_cursor`, and optional `reason` when no lines were retained. Each line has `seq`, nullable `t`, `fd` (`out` or `err`), and `line`.
|
|
351
|
+
|
|
352
|
+
## logEvents
|
|
353
|
+
|
|
354
|
+
Python: `log_events`. Iterate all sandbox log streams together. Ends after the box is gone and stored lines are drained.
|
|
355
|
+
|
|
356
|
+
### Signature
|
|
357
|
+
|
|
358
|
+
```ts TypeScript signature
|
|
359
|
+
logEvents(
|
|
360
|
+
options?: FilesystemStreamOptions
|
|
361
|
+
): AsyncIterableIterator<SandboxLogEvent>;
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
```python Python signature
|
|
365
|
+
async def log_events(
|
|
366
|
+
*,
|
|
367
|
+
last_event_id: Optional[str] = None,
|
|
368
|
+
) -> 'AsyncIterator[SandboxLogEvent]': ...
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
```ts TypeScript
|
|
372
|
+
for await (const event of fs.logEvents()) {
|
|
373
|
+
if (event.event === "line")
|
|
374
|
+
console.log(event.data.line);
|
|
375
|
+
}
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
```python Python
|
|
379
|
+
async for event in fs.log_events():
|
|
380
|
+
if event.event == "line":
|
|
381
|
+
print(event.data["line"])
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
Optional `lastEventId` / `last_event_id` is `<stream>:<seq>`. TypeScript also accepts `signal`. Returns `SandboxLogEvent`: `line`, `state`, or `ping`. A line payload adds `stream` to `SandboxLogLine`.
|
|
385
|
+
|
|
386
|
+
## procs
|
|
387
|
+
|
|
388
|
+
Read the live sandbox’s process list. Returns `SandboxProcs`.
|
|
389
|
+
|
|
390
|
+
### Signature
|
|
391
|
+
|
|
392
|
+
```ts TypeScript signature
|
|
393
|
+
procs(): Promise<SandboxProcs>;
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
```python Python signature
|
|
397
|
+
async def procs() -> SandboxProcs: ...
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
```ts TypeScript
|
|
401
|
+
const processes = await fs.procs();
|
|
402
|
+
console.log(processes.text);
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
```python Python
|
|
406
|
+
processes = await fs.procs()
|
|
407
|
+
print(processes.text)
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
No arguments. `text` is the process listing; `ms` is elapsed server time. Once the box is gone, this returns 409 `filesystem_state`; a captured filesystem cannot supply live processes.
|
|
411
|
+
|
|
412
|
+
## Task package files
|
|
413
|
+
|
|
414
|
+
`datasets().taskFiles(ref, taskName)` / `task_files(ref, task_name)` returns `TaskPackageFiles`. Pin `ref` as `name@version`. This reads the retained task package, not a sandbox.
|
|
415
|
+
|
|
416
|
+
```ts TypeScript
|
|
417
|
+
const files = datasets().taskFiles(
|
|
418
|
+
"my-tasks@1.0",
|
|
419
|
+
"hello-world"
|
|
420
|
+
);
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
```python Python
|
|
424
|
+
files = datasets().task_files(
|
|
425
|
+
"my-tasks@1.0",
|
|
426
|
+
"hello-world"
|
|
427
|
+
)
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
## package.status
|
|
431
|
+
|
|
432
|
+
Read `TaskPackageFilesystemStatus`, the normal filesystem status plus `source: "package"` and `package_retained: boolean`. Its `state` is always `none`.
|
|
433
|
+
|
|
434
|
+
### Signature
|
|
435
|
+
|
|
436
|
+
```ts TypeScript signature
|
|
437
|
+
status(): Promise<TaskPackageFilesystemStatus>;
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
```python Python signature
|
|
441
|
+
async def status() -> TaskPackageFilesystemStatus: ...
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
```ts TypeScript
|
|
445
|
+
const status = await files.status();
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
```python Python
|
|
449
|
+
status = await files.status()
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
A false `package_retained` means package bytes are unavailable; file reads return `task_package_not_retained`.
|
|
453
|
+
|
|
454
|
+
## package.list
|
|
455
|
+
|
|
456
|
+
Read a page from the task directory. Returns `FilesystemListing` with `source: "package"`.
|
|
457
|
+
|
|
458
|
+
### Signature
|
|
459
|
+
|
|
460
|
+
```ts TypeScript signature
|
|
461
|
+
list(
|
|
462
|
+
options?: Omit<FilesystemListOptions, "source">
|
|
463
|
+
): Promise<FilesystemListing>;
|
|
464
|
+
```
|
|
465
|
+
|
|
466
|
+
```python Python signature
|
|
467
|
+
async def list(
|
|
468
|
+
*,
|
|
469
|
+
path: str = '/',
|
|
470
|
+
cursor: Optional[str] = None,
|
|
471
|
+
limit: Optional[int] = None,
|
|
472
|
+
) -> FilesystemListing: ...
|
|
473
|
+
```
|
|
474
|
+
|
|
475
|
+
```ts TypeScript
|
|
476
|
+
const page = await files.list({
|
|
477
|
+
path: "/tests"
|
|
478
|
+
});
|
|
479
|
+
```
|
|
480
|
+
|
|
481
|
+
```python Python
|
|
482
|
+
page = await files.list(path="/tests")
|
|
483
|
+
```
|
|
484
|
+
|
|
485
|
+
Optional `path` defaults to `/`; `limit` defaults to 500 (maximum 1,000); `cursor` continues the page. There is no `source` selector.
|
|
486
|
+
|
|
487
|
+
## package.read
|
|
488
|
+
|
|
489
|
+
Read exact bytes from a retained task file. Returns `Buffer` / `bytes`.
|
|
490
|
+
|
|
491
|
+
### Signature
|
|
492
|
+
|
|
493
|
+
```ts TypeScript signature
|
|
494
|
+
read(
|
|
495
|
+
path: string,
|
|
496
|
+
options?: { range?: TrialFileRange }
|
|
497
|
+
): Promise<Buffer>;
|
|
498
|
+
```
|
|
499
|
+
|
|
500
|
+
```python Python signature
|
|
501
|
+
async def read(
|
|
502
|
+
path: str,
|
|
503
|
+
*,
|
|
504
|
+
start: Optional[int] = None,
|
|
505
|
+
end: Optional[int] = None,
|
|
506
|
+
suffix: Optional[int] = None,
|
|
507
|
+
) -> bytes: ...
|
|
508
|
+
```
|
|
509
|
+
|
|
510
|
+
```ts TypeScript
|
|
511
|
+
const bytes = await files.read("/instruction.md", {
|
|
512
|
+
range: {
|
|
513
|
+
start: 0,
|
|
514
|
+
end: 1023
|
|
515
|
+
}
|
|
516
|
+
});
|
|
517
|
+
```
|
|
518
|
+
|
|
519
|
+
```python Python
|
|
520
|
+
data = await files.read(
|
|
521
|
+
'/instruction.md',
|
|
522
|
+
start=0,
|
|
523
|
+
end=1023,
|
|
524
|
+
)
|
|
525
|
+
```
|
|
526
|
+
|
|
527
|
+
The same inclusive byte-range forms as `RunFilesystem.read` apply. This interface has no search, archive, watch, event, log, or process methods.
|