@aether-agent/evals 0.5.2 → 0.5.4

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/README.md CHANGED
@@ -30,6 +30,7 @@ import {
30
30
  Transcript,
31
31
  DockerAgent,
32
32
  Container,
33
+ evalEnvVars,
33
34
  Image,
34
35
  Task,
35
36
  Workspace,
@@ -47,11 +48,11 @@ test("agent edits notes.txt", async () => {
47
48
  Image.parse("aether-sandbox:latest")
48
49
  ).start(workspace);
49
50
 
50
- // The agent sees only this environment; nothing is forwarded from the host.
51
+ // The agent sees only this environment; nothing else is forwarded from the host.
51
52
  const agent = new DockerAgent({
52
53
  container,
53
54
  command: ["node", "/app/eval-agent.js"],
54
- env: { ANTHROPIC_API_KEY: process.env.ANTHROPIC_API_KEY! },
55
+ env: evalEnvVars("anthropic:claude-opus-4-6"),
55
56
  });
56
57
 
57
58
  const trace = await Transcript.fromStream(agent.run(task));
@@ -82,6 +83,7 @@ import {
82
83
  Transcript,
83
84
  DockerAgent,
84
85
  Container,
86
+ evalEnvVars,
85
87
  Image,
86
88
  generate,
87
89
  judge,
@@ -102,7 +104,7 @@ test("agent makes a maintainer-quality edit", async () => {
102
104
  const agent = new DockerAgent({
103
105
  container,
104
106
  command: ["node", "/app/eval-agent.js"],
105
- env: { ANTHROPIC_API_KEY: process.env.ANTHROPIC_API_KEY! },
107
+ env: evalEnvVars("anthropic:claude-opus-4-6"),
106
108
  });
107
109
 
108
110
  const trace = await Transcript.fromStream(agent.run(task));
@@ -146,26 +148,32 @@ test("agent makes a maintainer-quality edit", async () => {
146
148
 
147
149
  ### Evaluating against a merged change
148
150
 
149
- `Workspace.fromGitBundle` and `Workspace.fromGitRepo` check out a start commit and grade the agent
150
- against a gold commit, such as the change a human merged. The workspace holds only the start commit's
151
- history, on `main` (or `branch`) with no remote, so the agent can't find the gold commit in git.
152
- `workspace.referenceDiff` is computed before the gold commit is discarded. That history is fetched in
153
- full, blobs included, so reuse one bundle across runs for large repositories.
151
+ `GitFixture.fetch` fetches a start commit and a gold commit, such as the change a human merged, and
152
+ computes `fixture.referenceDiff` between them. That history is fetched in full, blobs included, so
153
+ fetch one fixture per task and reuse it across trials, or save it with `fixture.bundle(path)` and
154
+ fetch from `{ bundle: path }` next time.
155
+
156
+ `fixture.workspace()` checks out a fresh workspace at the start commit, on `main` (or `branch`) with no
157
+ remote, so the agent can't find the gold commit in git.
154
158
 
155
159
  ```ts
156
- await using workspace = await Workspace.fromGitBundle({
157
- bundlePath, // from createGitBundle({ url, startCommit, goldCommit }, bundlePath)
160
+ await using fixture = await GitFixture.fetch({
161
+ source: { bundle: "fixtures/repo.bundle" }, // or { url: "https://github.com/example/repo" }
158
162
  startCommit,
159
163
  goldCommit,
160
164
  diffExclude: ["*pnpm-lock.yaml"], // left out of both diffs
161
165
  });
162
166
 
163
- // ... run the agent ...
167
+ for (let trial = 0; trial < 3; trial++) {
168
+ await using workspace = await fixture.workspace();
169
+
170
+ // ... run the agent ...
164
171
 
165
- // Commits, staged and unstaged edits, and untracked files since the start commit. Rejects if git
166
- // can't read the repository.
167
- const agentDiff = await workspace.captureAgentDiff();
168
- const referenceDiff = workspace.referenceDiff;
172
+ // Commits, staged and unstaged edits, and untracked files since the start commit. Rejects if git
173
+ // can't read the repository.
174
+ const agentDiff = await fixture.agentDiff(workspace);
175
+ const referenceDiff = fixture.referenceDiff;
176
+ }
169
177
  ```
170
178
 
171
179
  ### Running the image as built
@@ -1 +1 @@
1
- {"version":3,"file":"FakeAgent.d.ts","sourceRoot":"","sources":["../src/FakeAgent.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;GAGG;AACH,qBAAa,SAAU,YAAW,KAAK;IAEnC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE;IAC7B,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7D,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS;IAH3C,YACW,MAAM,EAAE,UAAU,EAAE,EACpB,UAAU,GAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,EACzD,SAAS,GAAE,SAAS,GAAG,SAAqB,EACnD;IAEJ,MAAM,CAAC,OAAO,IAAI,SAAS,CAa1B;IAED,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CA0B/D;IAED,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAE3D;IAED,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAMvD;IAED,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAE7C;IAEM,GAAG,CACR,KAAK,EAAE,IAAI,EACX,EAAE,MAAM,EAAE,GAAE,eAAoB,GAC/B,aAAa,CAAC,UAAU,CAAC,CAkB3B;CACF"}
1
+ {"version":3,"file":"FakeAgent.d.ts","sourceRoot":"","sources":["../src/FakeAgent.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;GAGG;AACH,qBAAa,SAAU,YAAW,KAAK;IAEnC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE;IAC7B,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7D,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS;IAH3C,YACW,MAAM,EAAE,UAAU,EAAE,EACpB,UAAU,GAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,EACzD,SAAS,GAAE,SAAS,GAAG,SAAqB,EACnD;IAEJ,MAAM,CAAC,OAAO,IAAI,SAAS,CAa1B;IAED,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CA0B/D;IAED,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAE3D;IAED,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAMvD;IAED,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAE7C;IAEM,GAAG,CACR,KAAK,EAAE,IAAI,EACX,EAAE,MAAM,EAAE,GAAE,eAAoB,GAC/B,aAAa,CAAC,UAAU,CAAC,CAmB3B;CACF"}
package/dist/FakeAgent.js CHANGED
@@ -67,6 +67,7 @@ export class FakeAgent {
67
67
  return new FakeAgent(this.events, this.fileWrites, workspace);
68
68
  }
69
69
  async *run(_task, { signal } = {}) {
70
+ throwIfAborted(signal);
70
71
  if (this.fileWrites.length > 0 && !this.workspace) {
71
72
  throw new AetherEvalError("configuration_error", "FakeAgent file writes require a bound workspace");
72
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FakeAgent.js","sourceRoot":"","sources":["../src/FakeAgent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FakeAgent.js","sourceRoot":"","sources":["../src/FakeAgent.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type StartedTestContainer } from "testcontainers";
1
+ import { type Readable } from "node:stream";
2
2
  import { Image } from "./image.js";
3
3
  import type { Workspace } from "../workspace.js";
4
4
  export interface BindMount {
@@ -21,13 +21,30 @@ export interface ExecOutput {
21
21
  export interface ContainerStreamingOptions extends ContainerExecOptions {
22
22
  onStderr?: (chunk: string) => void;
23
23
  }
24
+ export interface ContainerRuntime {
25
+ exec(options: RuntimeExecOptions): Promise<RuntimeExec>;
26
+ stop(): Promise<void>;
27
+ }
28
+ export interface RuntimeExecOptions {
29
+ command: string[];
30
+ cwd: string;
31
+ env: Record<string, string>;
32
+ user?: string;
33
+ }
34
+ export interface RuntimeExec {
35
+ stdout: Readable;
36
+ stderr: Readable;
37
+ detach(error?: Error): void;
38
+ exitCode(): Promise<number | undefined>;
39
+ }
24
40
  export declare class Container {
25
- private readonly container;
26
41
  readonly workspaceRoot = "/workspace";
27
42
  readonly cwd: string;
43
+ private readonly runtime;
28
44
  private readonly user?;
29
45
  private readonly ephemeralTempdirs;
30
- constructor(container: StartedTestContainer, options: {
46
+ constructor(options: {
47
+ runtime: ContainerRuntime;
31
48
  cwd: string;
32
49
  user?: string;
33
50
  ephemeralTempdirs?: string[];
@@ -37,6 +54,7 @@ export declare class Container {
37
54
  execShell(script: string): Promise<ExecOutput>;
38
55
  execStreaming(options: ContainerStreamingOptions): AsyncIterable<string>;
39
56
  [Symbol.asyncDispose](): Promise<void>;
57
+ private startExec;
40
58
  }
41
59
  export declare class ContainerBuilder {
42
60
  private readonly image;
@@ -1 +1 @@
1
- {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/containers/container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/containers/container.ts"],"names":[],"mappings":"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"}
@@ -51,25 +51,25 @@ var __disposeResources = (this && this.__disposeResources) || (function (Suppres
51
51
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
52
52
  });
53
53
  import { addAbortListener } from "node:events";
54
- import { mkdtemp, rm } from "node:fs/promises";
55
- import { tmpdir } from "node:os";
56
- import { join, posix } from "node:path";
54
+ import { posix } from "node:path";
57
55
  import { createInterface } from "node:readline";
58
56
  import { PassThrough } from "node:stream";
57
+ import { text } from "node:stream/consumers";
59
58
  import { finished } from "node:stream/promises";
60
59
  import { GenericContainer, getContainerRuntimeClient, Wait, } from "testcontainers";
61
60
  import { abortedError, runCommand, throwIfAborted } from "@aether-agent/sdk";
62
61
  import { AetherCommandExitError, AetherEvalError } from "../errors.js";
62
+ import { createTempDir, removeDir } from "../fs.js";
63
63
  const STARTUP_TIMEOUT_MS = 60_000;
64
64
  const WORKSPACE_ROOT = "/workspace";
65
65
  export class Container {
66
- container;
67
66
  workspaceRoot = WORKSPACE_ROOT;
68
67
  cwd;
68
+ runtime;
69
69
  user;
70
70
  ephemeralTempdirs;
71
- constructor(container, options) {
72
- this.container = container;
71
+ constructor(options) {
72
+ this.runtime = options.runtime;
73
73
  this.cwd = options.cwd;
74
74
  this.user = options.user;
75
75
  this.ephemeralTempdirs = options.ephemeralTempdirs ?? [];
@@ -78,16 +78,20 @@ export class Container {
78
78
  return new ContainerBuilder(image);
79
79
  }
80
80
  async exec(options) {
81
- const result = await abortable(this.container.exec(options.command, {
82
- workingDir: options.cwd ?? this.cwd,
83
- env: options.env,
84
- user: options.user ?? this.user,
85
- }), options.signal);
86
- return {
87
- exitCode: result.exitCode,
88
- stdout: result.stdout,
89
- stderr: result.stderr,
90
- };
81
+ const env_1 = { stack: [], error: void 0, hasError: false };
82
+ try {
83
+ const exec = __addDisposableResource(env_1, await this.startExec(options), false);
84
+ const stdout = await text(exec.stdout);
85
+ const { exitCode, stderr } = await exec.wait();
86
+ return { exitCode, stdout, stderr };
87
+ }
88
+ catch (e_1) {
89
+ env_1.error = e_1;
90
+ env_1.hasError = true;
91
+ }
92
+ finally {
93
+ __disposeResources(env_1);
94
+ }
91
95
  }
92
96
  async execShell(script) {
93
97
  return this.exec({
@@ -95,94 +99,73 @@ export class Container {
95
99
  });
96
100
  }
97
101
  async *execStreaming(options) {
98
- const env_1 = { stack: [], error: void 0, hasError: false };
102
+ const env_2 = { stack: [], error: void 0, hasError: false };
99
103
  try {
100
- throwIfAborted(options.signal);
101
- const client = await getContainerRuntimeClient();
102
- const dockerode = client.container.dockerode;
103
- const dockerodeContainer = dockerode.getContainer(this.container.getId());
104
- const env = Object.entries(options.env ?? {}).map(([key, value]) => `${key}=${value}`);
105
- const exec = await dockerodeContainer.exec({
106
- Cmd: options.command,
107
- AttachStdout: true,
108
- AttachStderr: true,
109
- WorkingDir: options.cwd ?? this.cwd,
110
- Env: env.length > 0 ? env : undefined,
111
- User: options.user ?? this.user,
112
- });
113
- const stream = await exec.start({ hijack: true, stdin: false });
114
- const stdoutPipe = new PassThrough();
115
- const stderrPipe = new PassThrough();
116
- const attached = finished(stream, {
117
- readable: true,
118
- writable: false,
119
- cleanup: true,
120
- }).then(() => {
121
- stdoutPipe.end();
122
- stderrPipe.end();
123
- }, (error) => {
124
- stdoutPipe.destroy(error);
125
- stderrPipe.destroy(error);
126
- throw error;
127
- });
128
- const drained = Promise.all([
129
- attached,
130
- finished(stdoutPipe, { cleanup: true }),
131
- finished(stderrPipe, { cleanup: true }),
132
- ]);
133
- void drained.catch(() => { });
134
- let stderr = "";
135
- stderrPipe.setEncoding("utf8");
136
- stderrPipe.on("data", (chunk) => {
137
- stderr += chunk;
138
- options.onStderr?.(chunk);
139
- });
140
- dockerodeContainer.modem.demuxStream(stream, stdoutPipe, stderrPipe);
141
- const abortCleanup = __addDisposableResource(env_1, options.signal
142
- ? addAbortListener(options.signal, () => {
143
- stream.destroy(abortedError());
144
- })
145
- : undefined, false);
146
- void abortCleanup;
104
+ const exec = __addDisposableResource(env_2, await this.startExec(options), false);
105
+ const lines = createInterface({ input: exec.stdout, crlfDelay: Infinity });
147
106
  try {
148
- const lines = createInterface({ input: stdoutPipe, crlfDelay: Infinity });
149
- try {
150
- for await (const line of lines) {
151
- yield line;
152
- }
153
- }
154
- finally {
155
- lines.close();
156
- }
157
- await drained;
158
- const status = await exec.inspect();
159
- if (status.Running ||
160
- status.ExitCode === null ||
161
- status.ExitCode === undefined) {
162
- throw new AetherEvalError("command_exit_missing", `agent command completed without an exit code.\nstderr:\n${stderr}`);
163
- }
164
- if (status.ExitCode !== 0) {
165
- throw new AetherCommandExitError(status.ExitCode, stderr);
107
+ for await (const line of lines) {
108
+ yield line;
166
109
  }
167
110
  }
168
111
  finally {
169
- stream.destroy();
170
- stdoutPipe.destroy();
171
- stderrPipe.destroy();
112
+ lines.close();
113
+ }
114
+ const { exitCode, stderr } = await exec.wait();
115
+ if (exitCode !== 0) {
116
+ throw new AetherCommandExitError(exitCode, stderr);
172
117
  }
173
118
  }
174
- catch (e_1) {
175
- env_1.error = e_1;
176
- env_1.hasError = true;
119
+ catch (e_2) {
120
+ env_2.error = e_2;
121
+ env_2.hasError = true;
177
122
  }
178
123
  finally {
179
- __disposeResources(env_1);
124
+ __disposeResources(env_2);
180
125
  }
181
126
  }
182
127
  async [Symbol.asyncDispose]() {
183
- await this.container.stop().catch(() => { });
128
+ await this.runtime.stop().catch(() => { });
184
129
  await removeTempdirs(this.ephemeralTempdirs);
185
130
  }
131
+ async startExec(options) {
132
+ throwIfAborted(options.signal);
133
+ const exec = await this.runtime.exec({
134
+ command: options.command,
135
+ cwd: options.cwd ?? this.cwd,
136
+ env: options.env ?? {},
137
+ user: options.user ?? this.user,
138
+ });
139
+ const drained = Promise.all([
140
+ finished(exec.stdout, { cleanup: true }),
141
+ finished(exec.stderr, { cleanup: true }),
142
+ ]);
143
+ void drained.catch(() => { });
144
+ let stderr = "";
145
+ exec.stderr.setEncoding("utf8");
146
+ exec.stderr.on("data", (chunk) => {
147
+ stderr += chunk;
148
+ options.onStderr?.(chunk);
149
+ });
150
+ const abortCleanup = options.signal
151
+ ? addAbortListener(options.signal, () => exec.detach(abortedError()))
152
+ : undefined;
153
+ return {
154
+ stdout: exec.stdout,
155
+ async wait() {
156
+ await drained;
157
+ const exitCode = await exec.exitCode();
158
+ if (exitCode === undefined) {
159
+ throw new AetherEvalError("command_exit_missing", `command completed without an exit code.\nstderr:\n${stderr}`);
160
+ }
161
+ return { exitCode, stderr };
162
+ },
163
+ [Symbol.dispose]() {
164
+ abortCleanup?.[Symbol.dispose]();
165
+ exec.detach();
166
+ },
167
+ };
168
+ }
186
169
  }
187
170
  export class ContainerBuilder {
188
171
  image;
@@ -233,29 +216,31 @@ export class ContainerBuilder {
233
216
  }
234
217
  async start(workspace) {
235
218
  const ephemeralTempdirs = [];
219
+ let container;
236
220
  try {
237
221
  const ephemeralBindMounts = [];
238
222
  for (const target of this.ephemeralMounts) {
239
- const source = await mkdtemp(join(tmpdir(), "aether-eval-mount-"));
223
+ const source = await createTempDir("aether-eval-mount-");
240
224
  ephemeralTempdirs.push(source);
241
225
  ephemeralBindMounts.push({ source, target, mode: "rw" });
242
226
  }
243
227
  const cwd = workspace.relativeCwd
244
228
  ? posix.join(WORKSPACE_ROOT, workspace.relativeCwd)
245
229
  : WORKSPACE_ROOT;
246
- const container = await createGenericContainer(this.image);
230
+ const client = await getContainerRuntimeClient();
231
+ const generic = await createGenericContainer(this.image);
247
232
  if (this.privileged) {
248
- container.withPrivilegedMode();
233
+ generic.withPrivilegedMode();
249
234
  }
250
235
  if (this.imageEntrypoint) {
251
- container.withCommand(["sleep", "infinity"]);
236
+ generic.withCommand(["sleep", "infinity"]);
252
237
  }
253
238
  else {
254
- container
239
+ generic
255
240
  .withEntrypoint(["/bin/sh"])
256
241
  .withCommand(["-c", "sleep infinity"]);
257
242
  }
258
- const started = await container
243
+ const started = await generic
259
244
  .withWorkingDir(cwd)
260
245
  .withEnvironment(withSafeWorkspace(this.envVars))
261
246
  .withBindMounts([
@@ -266,28 +251,74 @@ export class ContainerBuilder {
266
251
  .withWaitStrategy(Wait.forSuccessfulCommand(this.readyCommand))
267
252
  .withStartupTimeout(STARTUP_TIMEOUT_MS)
268
253
  .start();
269
- const result = new Container(started, {
254
+ container = new Container({
255
+ runtime: dockerRuntime(started, client.container.dockerode.getContainer(started.getId())),
270
256
  cwd,
271
257
  user: this.user,
272
258
  ephemeralTempdirs,
273
259
  });
274
260
  if (this.user) {
275
- await grantAccess(result, [
261
+ await grantAccess(container, this.user, [
276
262
  workspace.rootPath,
277
263
  ...ephemeralTempdirs,
278
- ]).catch(async (err) => {
279
- await result[Symbol.asyncDispose]();
280
- throw err;
281
- });
264
+ ]);
282
265
  }
283
- return result;
266
+ return container;
284
267
  }
285
268
  catch (err) {
286
- await removeTempdirs(ephemeralTempdirs);
269
+ await (container
270
+ ? container[Symbol.asyncDispose]()
271
+ : removeTempdirs(ephemeralTempdirs));
287
272
  throw err;
288
273
  }
289
274
  }
290
275
  }
276
+ function dockerRuntime(started, docker) {
277
+ return {
278
+ async exec({ command, cwd, env, user }) {
279
+ const vars = Object.entries(env).map(([key, value]) => `${key}=${value}`);
280
+ const exec = await docker.exec({
281
+ Cmd: command,
282
+ AttachStdout: true,
283
+ AttachStderr: true,
284
+ WorkingDir: cwd,
285
+ Env: vars.length > 0 ? vars : undefined,
286
+ User: user,
287
+ });
288
+ const stream = await exec.start({ hijack: true, stdin: false });
289
+ const stdout = new PassThrough();
290
+ const stderr = new PassThrough();
291
+ void finished(stream, {
292
+ readable: true,
293
+ writable: false,
294
+ cleanup: true,
295
+ }).then(() => {
296
+ stdout.end();
297
+ stderr.end();
298
+ }, (error) => {
299
+ stdout.destroy(error);
300
+ stderr.destroy(error);
301
+ });
302
+ docker.modem.demuxStream(stream, stdout, stderr);
303
+ return {
304
+ stdout,
305
+ stderr,
306
+ detach(error) {
307
+ stream.destroy(error);
308
+ stdout.destroy(error);
309
+ stderr.destroy(error);
310
+ },
311
+ async exitCode() {
312
+ const status = await exec.inspect();
313
+ return status.Running ? undefined : (status.ExitCode ?? undefined);
314
+ },
315
+ };
316
+ },
317
+ async stop() {
318
+ await started.stop();
319
+ },
320
+ };
321
+ }
291
322
  async function createGenericContainer(image) {
292
323
  if (!image.build) {
293
324
  return new GenericContainer(image.toString());
@@ -321,15 +352,11 @@ function withSafeWorkspace(env) {
321
352
  [`GIT_CONFIG_VALUE_${index}`]: WORKSPACE_ROOT,
322
353
  };
323
354
  }
324
- async function grantAccess(container, paths) {
355
+ async function grantAccess(container, user, paths) {
325
356
  const hostUid = process.getuid?.();
326
357
  if (process.platform !== "linux" || hostUid === undefined)
327
358
  return;
328
- const id = await container.exec({ command: ["id", "-u"] });
329
- if (id.exitCode !== 0) {
330
- throw new AetherEvalError("configuration_error", `could not resolve the container user's UID:\n${id.stderr}`);
331
- }
332
- const uid = Number(id.stdout.trim());
359
+ const uid = await containerUid(container, user);
333
360
  if (uid === hostUid)
334
361
  return;
335
362
  const acl = `u:${uid}:rwX,d:u:${uid}:rwx,d:u:${hostUid}:rwx`;
@@ -341,17 +368,17 @@ async function grantAccess(container, paths) {
341
368
  exitedMessage: ({ exitCode, stderr }) => `setfacl exited with code ${exitCode}.\n${stderr}`,
342
369
  });
343
370
  }
344
- function abortable(promise, signal) {
345
- if (!signal)
346
- return promise;
347
- if (signal.aborted)
348
- return Promise.reject(abortedError());
349
- return new Promise((resolve, reject) => {
350
- const listener = addAbortListener(signal, () => reject(abortedError()));
351
- promise.then(resolve, reject).finally(() => listener[Symbol.dispose]());
352
- });
371
+ async function containerUid(container, user) {
372
+ const [name = ""] = user.split(":");
373
+ if (/^\d+$/.test(name))
374
+ return Number(name);
375
+ const id = await container.exec({ command: ["id", "-u"], user, cwd: "/" });
376
+ if (id.exitCode !== 0) {
377
+ throw new AetherEvalError("configuration_error", `could not resolve the container user's UID:\n${id.stderr}`);
378
+ }
379
+ return Number(id.stdout.trim());
353
380
  }
354
381
  async function removeTempdirs(tempdirs) {
355
- await Promise.all(tempdirs.map((path) => rm(path, { recursive: true, force: true })));
382
+ await Promise.all(tempdirs.map(removeDir));
356
383
  }
357
384
  //# sourceMappingURL=container.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"container.js","sourceRoot":"","sources":["../../src/containers/container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../../src/containers/container.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  export { Container, ContainerBuilder } from "./container.js";
2
- export type { BindMount, ContainerExecOptions, ContainerStreamingOptions, ExecOutput, } from "./container.js";
2
+ export type { BindMount, ContainerExecOptions, ContainerRuntime, ContainerStreamingOptions, ExecOutput, RuntimeExec, RuntimeExecOptions, } from "./container.js";
3
3
  export { Image } from "./image.js";
4
4
  export type { ImageBuildOptions } from "./image.js";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/containers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,YAAY,EACV,SAAS,EACT,oBAAoB,EACpB,yBAAyB,EACzB,UAAU,GACX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/containers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,YAAY,EACV,SAAS,EACT,oBAAoB,EACpB,gBAAgB,EAChB,yBAAyB,EACzB,UAAU,EACV,WAAW,EACX,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/containers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAO7D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/containers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAU7D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
package/dist/diff.d.ts CHANGED
@@ -8,4 +8,5 @@ export interface DiffStats {
8
8
  linesRemoved: number;
9
9
  }
10
10
  export declare function diffStatsFromDiff(diff: string): DiffStats;
11
+ export declare function toGitDiff(diff: string): GitDiff;
11
12
  //# sourceMappingURL=diff.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../src/diff.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAgBzD"}
1
+ {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../src/diff.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAgBzD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE/C"}
package/dist/diff.js CHANGED
@@ -15,4 +15,7 @@ export function diffStatsFromDiff(diff) {
15
15
  }
16
16
  return { filesChanged, linesAdded, linesRemoved };
17
17
  }
18
+ export function toGitDiff(diff) {
19
+ return { diff, stats: diffStatsFromDiff(diff) };
20
+ }
18
21
  //# sourceMappingURL=diff.js.map