@aether-agent/evals 0.1.0 → 0.2.0
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/git.d.ts +19 -1
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +30 -2
- package/dist/git.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/workspace.d.ts +27 -0
- package/dist/workspace.d.ts.map +1 -1
- package/dist/workspace.js +59 -9
- package/dist/workspace.js.map +1 -1
- package/package.json +1 -1
package/dist/git.d.ts
CHANGED
|
@@ -2,8 +2,26 @@ export declare class GitRepo {
|
|
|
2
2
|
readonly path: string;
|
|
3
3
|
private constructor();
|
|
4
4
|
static fromPath(path: string): GitRepo;
|
|
5
|
-
|
|
5
|
+
/** Initialize an empty repository at `dest`. */
|
|
6
|
+
static init(dest: string, signal?: AbortSignal): Promise<GitRepo>;
|
|
7
|
+
/**
|
|
8
|
+
* Clone `source` (a URL or a local bundle/path) into `dest` with `--no-checkout`.
|
|
9
|
+
*
|
|
10
|
+
* When `blobless` (the default), uses a partial blobless clone (`--filter=blob:none`)
|
|
11
|
+
* that defers blob downloads -- cheaper for large repos. Pass false to download the full
|
|
12
|
+
* object set so the clone is self-contained (e.g. when `source` is a bundle, which is not
|
|
13
|
+
* a promisor remote).
|
|
14
|
+
*/
|
|
15
|
+
static clone(source: string, dest: string, signal?: AbortSignal, blobless?: boolean): Promise<GitRepo>;
|
|
6
16
|
checkout(reference: string, signal?: AbortSignal): Promise<void>;
|
|
17
|
+
/** Fetch `revs` from `remote` (a named remote or a URL) into this repository. */
|
|
18
|
+
fetch(remote: string, revs: string[], signal?: AbortSignal): Promise<void>;
|
|
19
|
+
updateRef(name: string, commit: string, signal?: AbortSignal): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* Create a self-contained git bundle at `out` containing the given refs and their
|
|
22
|
+
* reachable objects.
|
|
23
|
+
*/
|
|
24
|
+
bundle(revs: string[], out: string, signal?: AbortSignal): Promise<void>;
|
|
7
25
|
diff(fromCommit: string, toCommit?: string, signal?: AbortSignal): Promise<string>;
|
|
8
26
|
diffUnstaged(signal?: AbortSignal): Promise<string>;
|
|
9
27
|
}
|
package/dist/git.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAIA,qBAAa,OAAO;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM;IAAzC,OAAO;IAEP,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAIA,qBAAa,OAAO;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM;IAAzC,OAAO;IAEP,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAItC,gDAAgD;WACnC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAKvE;;;;;;;OAOG;WACU,KAAK,CAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,WAAW,EACpB,QAAQ,UAAO,GACd,OAAO,CAAC,OAAO,CAAC;IAMb,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAItE,iFAAiF;IAC3E,KAAK,CACT,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EAAE,EACd,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC;IAIV,SAAS,CACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC;IAIhB;;;OAGG;IACG,MAAM,CACV,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC;IAIV,IAAI,CACR,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,CAAC;IAMZ,YAAY,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;CAG1D"}
|
package/dist/git.js
CHANGED
|
@@ -8,13 +8,41 @@ export class GitRepo {
|
|
|
8
8
|
static fromPath(path) {
|
|
9
9
|
return new GitRepo(path);
|
|
10
10
|
}
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
/** Initialize an empty repository at `dest`. */
|
|
12
|
+
static async init(dest, signal) {
|
|
13
|
+
await git(["init", dest], signal);
|
|
14
|
+
return new GitRepo(dest);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Clone `source` (a URL or a local bundle/path) into `dest` with `--no-checkout`.
|
|
18
|
+
*
|
|
19
|
+
* When `blobless` (the default), uses a partial blobless clone (`--filter=blob:none`)
|
|
20
|
+
* that defers blob downloads -- cheaper for large repos. Pass false to download the full
|
|
21
|
+
* object set so the clone is self-contained (e.g. when `source` is a bundle, which is not
|
|
22
|
+
* a promisor remote).
|
|
23
|
+
*/
|
|
24
|
+
static async clone(source, dest, signal, blobless = true) {
|
|
25
|
+
const filter = blobless ? ["--filter=blob:none"] : [];
|
|
26
|
+
await git(["clone", "--no-checkout", ...filter, source, dest], signal);
|
|
13
27
|
return new GitRepo(dest);
|
|
14
28
|
}
|
|
15
29
|
async checkout(reference, signal) {
|
|
16
30
|
await git(["-C", this.path, "checkout", reference], signal);
|
|
17
31
|
}
|
|
32
|
+
/** Fetch `revs` from `remote` (a named remote or a URL) into this repository. */
|
|
33
|
+
async fetch(remote, revs, signal) {
|
|
34
|
+
await git(["-C", this.path, "fetch", remote, ...revs], signal);
|
|
35
|
+
}
|
|
36
|
+
async updateRef(name, commit, signal) {
|
|
37
|
+
await git(["-C", this.path, "update-ref", name, commit], signal);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Create a self-contained git bundle at `out` containing the given refs and their
|
|
41
|
+
* reachable objects.
|
|
42
|
+
*/
|
|
43
|
+
async bundle(revs, out, signal) {
|
|
44
|
+
await git(["-C", this.path, "bundle", "create", out, ...revs], signal);
|
|
45
|
+
}
|
|
18
46
|
async diff(fromCommit, toCommit, signal) {
|
|
19
47
|
const range = toCommit ? `${fromCommit}..${toCommit}` : fromCommit;
|
|
20
48
|
const result = await git(["-C", this.path, "diff", range], signal);
|
package/dist/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,OAAO,OAAO;IACW;IAA7B,YAA6B,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;IAAG,CAAC;IAE7C,MAAM,CAAC,QAAQ,CAAC,IAAY;QAC1B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAChB,
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export type { GenerateJsonOptions, GenerateOptions, GenerateResult, ReasoningEff
|
|
|
14
14
|
export { judge, JudgeCriterionResponseSchema, JudgeResponseSchema, } from "./judge.js";
|
|
15
15
|
export type { Judge, JudgeContext, JudgeCriterionResponse, JudgeCriterionSpec, JudgeCriterionSummary, JudgeInput, JudgeRubricResponse, JudgeSummary, } from "./judge.js";
|
|
16
16
|
export { Transcript, TranscriptError, ToolCall } from "./transcript.js";
|
|
17
|
-
export { Workspace } from "./workspace.js";
|
|
18
|
-
export type { GitRepoSpec, RetainedWorkspaceInfo, WorkspaceSource, } from "./workspace.js";
|
|
17
|
+
export { createGitBundle, Workspace } from "./workspace.js";
|
|
18
|
+
export type { GitBundleSpec, GitRepoSpec, RetainedWorkspaceInfo, WorkspaceSource, } from "./workspace.js";
|
|
19
19
|
export type { AgentMessage, ContextUsage, FileDiff, PlanMeta, PlanMetaEntry, PlanMetaStatus, ToolCallError, ToolCallRequest, ToolCallResult, ToolDisplayMeta, ToolResultMeta, } from "@aether-agent/sdk";
|
|
20
20
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC3E,YAAY,EACV,SAAS,EACT,oBAAoB,EACpB,yBAAyB,EACzB,UAAU,EACV,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EACV,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,KAAK,EACL,4BAA4B,EAC5B,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,KAAK,EACL,YAAY,EACZ,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,EACrB,UAAU,EACV,mBAAmB,EACnB,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC3E,YAAY,EACV,SAAS,EACT,oBAAoB,EACpB,yBAAyB,EACzB,UAAU,EACV,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EACV,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,KAAK,EACL,4BAA4B,EAC5B,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,KAAK,EACL,YAAY,EACZ,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,EACrB,UAAU,EACV,mBAAmB,EACnB,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC5D,YAAY,EACV,aAAa,EACb,WAAW,EACX,qBAAqB,EACrB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,cAAc,EACd,aAAa,EACb,eAAe,EACf,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -7,5 +7,5 @@ export { diffStatsFromDiff } from "./diff.js";
|
|
|
7
7
|
export { generate } from "./generate.js";
|
|
8
8
|
export { judge, JudgeCriterionResponseSchema, JudgeResponseSchema, } from "./judge.js";
|
|
9
9
|
export { Transcript, TranscriptError, ToolCall } from "./transcript.js";
|
|
10
|
-
export { Workspace } from "./workspace.js";
|
|
10
|
+
export { createGitBundle, Workspace } from "./workspace.js";
|
|
11
11
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAS3E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAOzC,OAAO,EACL,KAAK,EACL,4BAA4B,EAC5B,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAWpB,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAS3E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAOzC,OAAO,EACL,KAAK,EACL,4BAA4B,EAC5B,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAWpB,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/workspace.d.ts
CHANGED
|
@@ -5,6 +5,12 @@ export interface GitRepoSpec {
|
|
|
5
5
|
goldCommit: string;
|
|
6
6
|
subdir?: string;
|
|
7
7
|
}
|
|
8
|
+
export interface GitBundleSpec {
|
|
9
|
+
bundlePath: string;
|
|
10
|
+
startCommit: string;
|
|
11
|
+
goldCommit: string;
|
|
12
|
+
subdir?: string;
|
|
13
|
+
}
|
|
8
14
|
export interface RetainedWorkspaceInfo {
|
|
9
15
|
rootPath: string;
|
|
10
16
|
path: string;
|
|
@@ -16,6 +22,11 @@ export type WorkspaceSource = "local" | {
|
|
|
16
22
|
startCommit: string;
|
|
17
23
|
goldCommit: string;
|
|
18
24
|
};
|
|
25
|
+
} | {
|
|
26
|
+
bundle: {
|
|
27
|
+
startCommit: string;
|
|
28
|
+
goldCommit: string;
|
|
29
|
+
};
|
|
19
30
|
};
|
|
20
31
|
/** A workspace created on the host for an eval run. */
|
|
21
32
|
export declare class Workspace implements AsyncDisposable {
|
|
@@ -32,6 +43,14 @@ export declare class Workspace implements AsyncDisposable {
|
|
|
32
43
|
static fromFiles(files: Record<string, string>): Promise<Workspace>;
|
|
33
44
|
static fromDir(srcDir: string, baseDir?: string): Promise<Workspace>;
|
|
34
45
|
static fromGitRepo(spec: GitRepoSpec, signal?: AbortSignal): Promise<Workspace>;
|
|
46
|
+
/**
|
|
47
|
+
* Instantiate a workspace from a local git bundle file (see {@link createGitBundle}).
|
|
48
|
+
*
|
|
49
|
+
* The bundle must contain both `startCommit` and `goldCommit` so that checkout and
|
|
50
|
+
* reference diffing work without the originating remote.
|
|
51
|
+
*/
|
|
52
|
+
static fromGitBundle(spec: GitBundleSpec, signal?: AbortSignal): Promise<Workspace>;
|
|
53
|
+
private static fromClone;
|
|
35
54
|
join(relativePath: string): string;
|
|
36
55
|
persist(): RetainedWorkspaceInfo;
|
|
37
56
|
captureGitDiffs(): Promise<{
|
|
@@ -42,4 +61,12 @@ export declare class Workspace implements AsyncDisposable {
|
|
|
42
61
|
cleanup(): Promise<void>;
|
|
43
62
|
[Symbol.asyncDispose](): Promise<void>;
|
|
44
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* Create a self-contained git bundle at `outPath` containing `spec`'s start and gold
|
|
66
|
+
* commits.
|
|
67
|
+
*
|
|
68
|
+
* Fetches only the start and gold commits (and their reachable objects) into a fresh repo,
|
|
69
|
+
* then writes a bundle that {@link Workspace.fromGitBundle} can later instantiate offline.
|
|
70
|
+
*/
|
|
71
|
+
export declare function createGitBundle(spec: GitRepoSpec, outPath: string, signal?: AbortSignal): Promise<void>;
|
|
45
72
|
//# sourceMappingURL=workspace.d.ts.map
|
package/dist/workspace.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAKA,OAAO,EAAqB,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAKA,OAAO,EAAqB,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAM5D,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,uFAAuF;AACvF,MAAM,MAAM,eAAe,GACvB,OAAO,GACP;IAAE,GAAG,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACjE;IAAE,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAE5D,uDAAuD;AACvD,qBAAa,SAAU,YAAW,eAAe;;IAC/C,mGAAmG;IACnG,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,mFAAmF;IACnF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,6EAA6E;IAC7E,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IAIjC,OAAO;WAYM,KAAK,IAAI,OAAO,CAAC,SAAS,CAAC;WAK3B,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;WAe5D,OAAO,CAClB,MAAM,EAAE,MAAM,EACd,OAAO,SAAgB,GACtB,OAAO,CAAC,SAAS,CAAC;WAaR,WAAW,CACtB,IAAI,EAAE,WAAW,EACjB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,SAAS,CAAC;IAWrB;;;;;OAKG;WACU,aAAa,CACxB,IAAI,EAAE,aAAa,EACnB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,SAAS,CAAC;mBAiBA,SAAS;IAwB9B,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAIlC,OAAO,IAAI,qBAAqB;IAK1B,eAAe,IAAI,OAAO,CAAC;QAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;IAaF,kDAAkD;IAC5C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9B,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC;CAGvC;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAmBf"}
|
package/dist/workspace.js
CHANGED
|
@@ -4,6 +4,8 @@ import { dirname, join, relative, resolve } from "node:path";
|
|
|
4
4
|
import { AetherSdkError } from "@aether-agent/sdk";
|
|
5
5
|
import { diffStatsFromDiff } from "./diff.js";
|
|
6
6
|
import { GitRepo } from "./git.js";
|
|
7
|
+
const EVAL_START_REF = "eval-start";
|
|
8
|
+
const EVAL_GOLD_REF = "eval-gold";
|
|
7
9
|
/** A workspace created on the host for an eval run. */
|
|
8
10
|
export class Workspace {
|
|
9
11
|
/** Retained repository/temp root. Cleanup removes this directory; bind-mounted to `/workspace`. */
|
|
@@ -53,20 +55,33 @@ export class Workspace {
|
|
|
53
55
|
}
|
|
54
56
|
}
|
|
55
57
|
static async fromGitRepo(spec, signal) {
|
|
58
|
+
const { url, startCommit, goldCommit, subdir } = spec;
|
|
59
|
+
return Workspace.fromClone((rootPath) => GitRepo.clone(url, rootPath, signal), startCommit, subdir, { git: { url, startCommit, goldCommit } }, signal);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Instantiate a workspace from a local git bundle file (see {@link createGitBundle}).
|
|
63
|
+
*
|
|
64
|
+
* The bundle must contain both `startCommit` and `goldCommit` so that checkout and
|
|
65
|
+
* reference diffing work without the originating remote.
|
|
66
|
+
*/
|
|
67
|
+
static async fromGitBundle(spec, signal) {
|
|
68
|
+
const { bundlePath, startCommit, goldCommit, subdir } = spec;
|
|
69
|
+
if (!(await pathExists(bundlePath))) {
|
|
70
|
+
throw new AetherSdkError("invalid_options", `git bundle file does not exist: ${bundlePath}`);
|
|
71
|
+
}
|
|
72
|
+
return Workspace.fromClone((rootPath) => GitRepo.clone(bundlePath, rootPath, signal, false), startCommit, subdir, { bundle: { startCommit, goldCommit } }, signal);
|
|
73
|
+
}
|
|
74
|
+
static async fromClone(clone, startCommit, subdir, source, signal) {
|
|
56
75
|
const rootPath = await createWorkspaceDir();
|
|
57
76
|
try {
|
|
58
|
-
const
|
|
59
|
-
const repo = await GitRepo.clone(url, rootPath, signal);
|
|
77
|
+
const repo = await clone(rootPath);
|
|
60
78
|
await repo.checkout(startCommit, signal);
|
|
61
|
-
const path =
|
|
62
|
-
if (subdir && !(await pathExists(path))) {
|
|
63
|
-
throw new AetherSdkError("invalid_options", `git workspace subdirectory does not exist: ${path}`);
|
|
64
|
-
}
|
|
79
|
+
const path = await resolveSubdir(rootPath, subdir);
|
|
65
80
|
return new Workspace({
|
|
66
81
|
rootPath,
|
|
67
82
|
path,
|
|
68
83
|
relativeCwd: subdir ?? undefined,
|
|
69
|
-
source
|
|
84
|
+
source,
|
|
70
85
|
});
|
|
71
86
|
}
|
|
72
87
|
catch (err) {
|
|
@@ -82,10 +97,11 @@ export class Workspace {
|
|
|
82
97
|
return { rootPath: this.rootPath, path: this.path };
|
|
83
98
|
}
|
|
84
99
|
async captureGitDiffs() {
|
|
85
|
-
|
|
100
|
+
const commits = diffCommits(this.source);
|
|
101
|
+
if (!commits)
|
|
86
102
|
return {};
|
|
87
103
|
const repo = GitRepo.fromPath(this.path);
|
|
88
|
-
const { startCommit, goldCommit } =
|
|
104
|
+
const { startCommit, goldCommit } = commits;
|
|
89
105
|
const [agentDiff, referenceDiff] = await Promise.all([
|
|
90
106
|
captureDiff(() => repo.diffUnstaged()),
|
|
91
107
|
captureDiff(() => repo.diff(startCommit, goldCommit)),
|
|
@@ -103,6 +119,26 @@ export class Workspace {
|
|
|
103
119
|
return this.cleanup();
|
|
104
120
|
}
|
|
105
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* Create a self-contained git bundle at `outPath` containing `spec`'s start and gold
|
|
124
|
+
* commits.
|
|
125
|
+
*
|
|
126
|
+
* Fetches only the start and gold commits (and their reachable objects) into a fresh repo,
|
|
127
|
+
* then writes a bundle that {@link Workspace.fromGitBundle} can later instantiate offline.
|
|
128
|
+
*/
|
|
129
|
+
export async function createGitBundle(spec, outPath, signal) {
|
|
130
|
+
const tempDir = await createWorkspaceDir();
|
|
131
|
+
try {
|
|
132
|
+
const repo = await GitRepo.init(tempDir, signal);
|
|
133
|
+
await repo.fetch(spec.url, [spec.startCommit, spec.goldCommit], signal);
|
|
134
|
+
await repo.updateRef(`refs/heads/${EVAL_START_REF}`, spec.startCommit, signal);
|
|
135
|
+
await repo.updateRef(`refs/heads/${EVAL_GOLD_REF}`, spec.goldCommit, signal);
|
|
136
|
+
await repo.bundle([EVAL_START_REF, EVAL_GOLD_REF], outPath, signal);
|
|
137
|
+
}
|
|
138
|
+
finally {
|
|
139
|
+
await rm(tempDir, { recursive: true, force: true });
|
|
140
|
+
}
|
|
141
|
+
}
|
|
106
142
|
async function captureDiff(getDiff) {
|
|
107
143
|
try {
|
|
108
144
|
const diff = await getDiff();
|
|
@@ -132,4 +168,18 @@ async function pathExists(path) {
|
|
|
132
168
|
return false;
|
|
133
169
|
}
|
|
134
170
|
}
|
|
171
|
+
async function resolveSubdir(rootPath, subdir) {
|
|
172
|
+
if (!subdir)
|
|
173
|
+
return rootPath;
|
|
174
|
+
const path = join(rootPath, subdir);
|
|
175
|
+
if (!(await pathExists(path))) {
|
|
176
|
+
throw new AetherSdkError("invalid_options", `git workspace subdirectory does not exist: ${path}`);
|
|
177
|
+
}
|
|
178
|
+
return path;
|
|
179
|
+
}
|
|
180
|
+
function diffCommits(source) {
|
|
181
|
+
if (source === "local")
|
|
182
|
+
return undefined;
|
|
183
|
+
return "git" in source ? source.git : source.bundle;
|
|
184
|
+
}
|
|
135
185
|
//# sourceMappingURL=workspace.js.map
|
package/dist/workspace.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAgB,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
|