@post-print/agent-test 0.1.10 → 0.1.12
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 +16 -0
- package/dist/cli.js +21 -1
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/live-isolation.d.ts +23 -0
- package/dist/live-isolation.d.ts.map +1 -1
- package/dist/live-isolation.js +123 -1
- package/dist/live-isolation.js.map +1 -1
- package/dist/live-timeout.d.ts +11 -0
- package/dist/live-timeout.d.ts.map +1 -0
- package/dist/live-timeout.js +29 -0
- package/dist/live-timeout.js.map +1 -0
- package/dist/record-trace.d.ts +18 -0
- package/dist/record-trace.d.ts.map +1 -1
- package/dist/record-trace.js +47 -7
- package/dist/record-trace.js.map +1 -1
- package/dist/run-suite.d.ts +6 -0
- package/dist/run-suite.d.ts.map +1 -1
- package/dist/run-suite.js +104 -26
- package/dist/run-suite.js.map +1 -1
- package/dist/scenario-seed.d.ts +8 -0
- package/dist/scenario-seed.d.ts.map +1 -1
- package/dist/scenario-seed.js +27 -0
- package/dist/scenario-seed.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# @post-print/agent-test
|
|
2
2
|
|
|
3
|
+
**Source of truth for** agent-test package.
|
|
4
|
+
|
|
5
|
+
<!-- doc-meta: owner=eng | last-reviewed=2026-07-15 -->
|
|
6
|
+
|
|
3
7
|
Jest-shaped agent scenario runner built on `@post-print/agent-harness`.
|
|
4
8
|
|
|
5
9
|
## CLI
|
|
@@ -24,6 +28,18 @@ Live runs need `CURSOR_API_KEY` and a suites directory. Preflight fails when `--
|
|
|
24
28
|
|
|
25
29
|
Passing live runs write staging traces under `$TMPDIR/agent-spec/sessions/<pid>-<timestamp>/` (removed on exit unless `--keep-recordings`). Use `--record-fixtures` to overwrite each scenario's committed `replayTrace` path. `--no-worktree` requires `AGENT_TEST_ALLOW_IN_PLACE=1`.
|
|
26
30
|
|
|
31
|
+
Live agent runs have a **hard timeout** (default **10 minutes**, override with `--timeout-ms` or `AGENT_TEST_TIMEOUT_MS`; disable with `--no-timeout` or `AGENT_TEST_TIMEOUT_MS=0`). If the agent invokes `AskQuestion` or similar user-input tools, the harness fails fast with a clear error — live mode is single-shot and cannot supply follow-up turns. Use `--allow-user-input` only for intentional multi-turn dogfood (the run may still hang waiting for stdin).
|
|
32
|
+
|
|
33
|
+
### Dialogue skills in live runs
|
|
34
|
+
|
|
35
|
+
Skills that expect multi-turn Socratic dialogue (for example `crystallize`) will hang or fail in `--live` unless the scenario is written for one-shot completion:
|
|
36
|
+
|
|
37
|
+
- **Replay-only** — commit a golden trace where the agent finishes without asking questions; use `host: "replay"` or `skip: true` with live skipped at suite level.
|
|
38
|
+
- **One-shot live prompt** — instruct the agent to mirror intent and emit the final artifact in a single turn (`no AskQuestion; produce Crystallized idea now`).
|
|
39
|
+
- **Ambient routing** — fuzzy-intent scenarios that only require mirroring + one assumption are naturally one-shot; full crystallize dialogue is not.
|
|
40
|
+
|
|
41
|
+
Do not weaken dialogue-first product skills for CI; reshape the suite contract instead.
|
|
42
|
+
|
|
27
43
|
## Library
|
|
28
44
|
|
|
29
45
|
```ts
|
package/dist/cli.js
CHANGED
|
@@ -23,6 +23,9 @@ function parseArgs(argv) {
|
|
|
23
23
|
let judge;
|
|
24
24
|
let worktree;
|
|
25
25
|
let keepRecordings = false;
|
|
26
|
+
let timeoutMs;
|
|
27
|
+
let noTimeout = false;
|
|
28
|
+
let allowUserInput = false;
|
|
26
29
|
for (let i = 2; i < argv.length; i++) {
|
|
27
30
|
const token = argv[i];
|
|
28
31
|
if (token === "--host" && argv[i + 1]) {
|
|
@@ -62,6 +65,18 @@ function parseArgs(argv) {
|
|
|
62
65
|
else if (token === "--no-worktree") {
|
|
63
66
|
worktree = false;
|
|
64
67
|
}
|
|
68
|
+
else if (token === "--timeout-ms" && argv[i + 1]) {
|
|
69
|
+
const parsed = Number(argv[++i]);
|
|
70
|
+
if (Number.isFinite(parsed) && parsed > 0) {
|
|
71
|
+
timeoutMs = parsed;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
else if (token === "--no-timeout") {
|
|
75
|
+
noTimeout = true;
|
|
76
|
+
}
|
|
77
|
+
else if (token === "--allow-user-input") {
|
|
78
|
+
allowUserInput = true;
|
|
79
|
+
}
|
|
65
80
|
else if (token && !token.startsWith("-")) {
|
|
66
81
|
filter = token;
|
|
67
82
|
}
|
|
@@ -85,6 +100,9 @@ function parseArgs(argv) {
|
|
|
85
100
|
judge,
|
|
86
101
|
worktree,
|
|
87
102
|
keepRecordings,
|
|
103
|
+
timeoutMs: noTimeout ? 0 : timeoutMs,
|
|
104
|
+
noTimeout,
|
|
105
|
+
allowUserInput,
|
|
88
106
|
};
|
|
89
107
|
}
|
|
90
108
|
async function cleanupLiveRunArtifacts(cwd, stagingSessionRoot, keepRecordings) {
|
|
@@ -137,8 +155,8 @@ async function main() {
|
|
|
137
155
|
console.error("Live dogfood requires git worktree isolation. Set AGENT_TEST_ALLOW_IN_PLACE=1 to run in repo cwd (--no-worktree leaks agent edits into your working tree).");
|
|
138
156
|
return 1;
|
|
139
157
|
}
|
|
158
|
+
registerLiveRunHandlers();
|
|
140
159
|
if (!isChild) {
|
|
141
|
-
registerLiveRunHandlers();
|
|
142
160
|
const removed = await cleanupStaleScenarioWorktrees(args.cwd);
|
|
143
161
|
if (removed.length > 0) {
|
|
144
162
|
console.log(theme.warn(`Cleaned ${removed.length} stale agent-test worktree(s) from a prior crash`));
|
|
@@ -164,6 +182,8 @@ async function main() {
|
|
|
164
182
|
const reports = await runAllSuites({
|
|
165
183
|
...args,
|
|
166
184
|
stagingSessionId,
|
|
185
|
+
timeoutMs: args.timeoutMs,
|
|
186
|
+
allowUserInput: args.allowUserInput,
|
|
167
187
|
});
|
|
168
188
|
let exitCode = 0;
|
|
169
189
|
if (!isChild) {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAEN,6BAA6B,GAC7B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACN,2BAA2B,EAC3B,qBAAqB,EACrB,0BAA0B,EAC1B,yBAAyB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAE7D,4BAA4B,EAAE,CAAC;AAC/B,iBAAiB,EAAE,CAAC;AAEpB,SAAS,SAAS,CAAC,IAAc;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { assertRubric, expectTrace, TraceAssertion } from "./expect.js";
|
|
2
2
|
export { loadSuiteFile } from "./load-suite.js";
|
|
3
3
|
export { assertLiveDogfoodPreflight } from "./preflight.js";
|
|
4
|
-
export { cleanupLegacyRepoRecordings, cleanupStagingSession, createLiveStagingSessionId, getLiveStagingRoot, getLiveStagingSessionRoot, type RecordingPathKind, type ResolvedRecordingPath, recordTrace, resolveRecordingPath, } from "./record-trace.js";
|
|
4
|
+
export { cleanupLegacyRepoRecordings, cleanupStagingSession, createLiveStagingSessionId, getLiveStagingRoot, getLiveStagingSessionRoot, getStagingResultPath, type LiveScenarioResultSidecar, loadStagingResult, type RecordingPathKind, type ResolvedRecordingPath, recordTrace, resolveRecordingPath, writeStagingResult, } from "./record-trace.js";
|
|
5
5
|
export { discoverSuites, type RunSuiteOptions, runAllSuites, runSuite, } from "./run-suite.js";
|
|
6
6
|
export type { AgentScenario, AgentSuiteFile, AssertionFailure, JudgeRubricItem, JudgeVerdictResult, ScenarioResult, ScenarioRubric, SuiteRunReport, } from "./types.js";
|
|
7
7
|
//# 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,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAExE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EACN,2BAA2B,EAC3B,qBAAqB,EACrB,0BAA0B,EAC1B,kBAAkB,EAClB,yBAAyB,EACzB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,WAAW,EACX,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAExE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EACN,2BAA2B,EAC3B,qBAAqB,EACrB,0BAA0B,EAC1B,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,EACpB,KAAK,yBAAyB,EAC9B,iBAAiB,EACjB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,WAAW,EACX,oBAAoB,EACpB,kBAAkB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACN,cAAc,EACd,KAAK,eAAe,EACpB,YAAY,EACZ,QAAQ,GACR,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACX,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,cAAc,GACd,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { assertRubric, expectTrace, TraceAssertion } from "./expect.js";
|
|
2
2
|
export { loadSuiteFile } from "./load-suite.js";
|
|
3
3
|
export { assertLiveDogfoodPreflight } from "./preflight.js";
|
|
4
|
-
export { cleanupLegacyRepoRecordings, cleanupStagingSession, createLiveStagingSessionId, getLiveStagingRoot, getLiveStagingSessionRoot, recordTrace, resolveRecordingPath, } from "./record-trace.js";
|
|
4
|
+
export { cleanupLegacyRepoRecordings, cleanupStagingSession, createLiveStagingSessionId, getLiveStagingRoot, getLiveStagingSessionRoot, getStagingResultPath, loadStagingResult, recordTrace, resolveRecordingPath, writeStagingResult, } from "./record-trace.js";
|
|
5
5
|
export { discoverSuites, runAllSuites, runSuite, } from "./run-suite.js";
|
|
6
6
|
//# 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,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAExE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EACN,2BAA2B,EAC3B,qBAAqB,EACrB,0BAA0B,EAC1B,kBAAkB,EAClB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAExE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EACN,2BAA2B,EAC3B,qBAAqB,EACrB,0BAA0B,EAC1B,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,EAEpB,iBAAiB,EAGjB,WAAW,EACX,oBAAoB,EACpB,kBAAkB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACN,cAAc,EAEd,YAAY,EACZ,QAAQ,GACR,MAAM,gBAAgB,CAAC"}
|
package/dist/live-isolation.d.ts
CHANGED
|
@@ -16,6 +16,12 @@ export interface SpawnLiveScenarioOptions {
|
|
|
16
16
|
scenarioIndex?: number;
|
|
17
17
|
/** Total scenarios in the full suite (for child CLI counters). */
|
|
18
18
|
scenarioTotal?: number;
|
|
19
|
+
/** In-process harness timeout (parent adds a kill backstop). */
|
|
20
|
+
timeoutMs?: number;
|
|
21
|
+
/** Disable harness deadline in the child (forwards --no-timeout). */
|
|
22
|
+
noTimeout?: boolean;
|
|
23
|
+
/** Allow AskQuestion-style tools (default false — live is single-shot). */
|
|
24
|
+
allowUserInput?: boolean;
|
|
19
25
|
}
|
|
20
26
|
export interface LiveScenarioCommand {
|
|
21
27
|
command: string;
|
|
@@ -24,9 +30,26 @@ export interface LiveScenarioCommand {
|
|
|
24
30
|
}
|
|
25
31
|
/** Build the Node subprocess command for one live scenario (same CLI entry as the parent). */
|
|
26
32
|
export declare function buildLiveScenarioCommand(options: SpawnLiveScenarioOptions): LiveScenarioCommand;
|
|
33
|
+
/** Delay from agent-start marker until parent SIGTERM (harness deadline + cleanup slack). */
|
|
34
|
+
export declare function subprocessKillDelayMs(agentStartMs: number, agentTimeoutMs: number): number;
|
|
27
35
|
/** Run one live scenario in a fresh Node subprocess; inherit stdio for live progress. */
|
|
28
36
|
export declare function spawnLiveScenario(options: SpawnLiveScenarioOptions): Promise<number>;
|
|
29
37
|
export declare function subprocessFailureMessage(exitCode: number): string;
|
|
38
|
+
export interface LiveSubprocessStagingResult {
|
|
39
|
+
passed: boolean;
|
|
40
|
+
failures: Array<{
|
|
41
|
+
matcher: string;
|
|
42
|
+
message: string;
|
|
43
|
+
}>;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Map isolated child exit + optional staging sidecar to parent failures.
|
|
47
|
+
* A persisted pass sidecar wins over a late timeout kill (exit 124).
|
|
48
|
+
*/
|
|
49
|
+
export declare function failuresForLiveSubprocessExit(exitCode: number, childResult: LiveSubprocessStagingResult | undefined): Array<{
|
|
50
|
+
matcher: string;
|
|
51
|
+
message: string;
|
|
52
|
+
}>;
|
|
30
53
|
/** Parent-provided counters for isolated child runs (1-based index). */
|
|
31
54
|
export declare function parentScenarioCounters(): {
|
|
32
55
|
index: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live-isolation.d.ts","sourceRoot":"","sources":["../src/live-isolation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"live-isolation.d.ts","sourceRoot":"","sources":["../src/live-isolation.ts"],"names":[],"mappings":"AAgBA,mGAAmG;AACnG,wBAAgB,4BAA4B,IAAI,OAAO,CAKtD;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAQzC;AAED,MAAM,WAAW,wBAAwB;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2EAA2E;IAC3E,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,8FAA8F;AAC9F,wBAAgB,wBAAwB,CACvC,OAAO,EAAE,wBAAwB,GAC/B,mBAAmB,CAuCrB;AA4BD,6FAA6F;AAC7F,wBAAgB,qBAAqB,CACpC,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GACpB,MAAM,CAIR;AAED,yFAAyF;AACzF,wBAAsB,iBAAiB,CACtC,OAAO,EAAE,wBAAwB,GAC/B,OAAO,CAAC,MAAM,CAAC,CAqHjB;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQjE;AAED,MAAM,WAAW,2BAA2B;IAC3C,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtD;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC5C,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,2BAA2B,GAAG,SAAS,GAClD,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAgB7C;AAED,wEAAwE;AACxE,wBAAgB,sBAAsB,IACnC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChC,SAAS,CAYX"}
|
package/dist/live-isolation.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { spawn } from "node:child_process";
|
|
2
2
|
import { resolve } from "node:path";
|
|
3
|
+
import { getStagingAgentStartPath, readAgentStartMarker, } from "./record-trace.js";
|
|
4
|
+
import { LIVE_SUBPROCESS_SETUP_MAX_MS, LIVE_SUBPROCESS_SIGKILL_ESCALATION_MS, LIVE_SUBPROCESS_TIMEOUT_BUFFER_MS, liveSubprocessTimeoutMs, } from "./live-timeout.js";
|
|
3
5
|
const DEFAULT_SCENARIO_SETTLE_MS = 5000;
|
|
4
6
|
/** Child process per live scenario (default) — avoids macOS OOM (exit 137) across council runs. */
|
|
5
7
|
export function liveScenarioIsolationEnabled() {
|
|
@@ -37,6 +39,15 @@ export function buildLiveScenarioCommand(options) {
|
|
|
37
39
|
if (options.worktree === false) {
|
|
38
40
|
args.push("--no-worktree");
|
|
39
41
|
}
|
|
42
|
+
if (options.noTimeout) {
|
|
43
|
+
args.push("--no-timeout");
|
|
44
|
+
}
|
|
45
|
+
else if (options.timeoutMs !== undefined) {
|
|
46
|
+
args.push("--timeout-ms", String(options.timeoutMs));
|
|
47
|
+
}
|
|
48
|
+
if (options.allowUserInput) {
|
|
49
|
+
args.push("--allow-user-input");
|
|
50
|
+
}
|
|
40
51
|
// Isolated child: agent + rubric only; parent runs judge (avoids OOM after heavy council runs).
|
|
41
52
|
args.push("--no-judge");
|
|
42
53
|
return {
|
|
@@ -50,6 +61,24 @@ function sleep(ms) {
|
|
|
50
61
|
setTimeout(resolveSleep, ms);
|
|
51
62
|
});
|
|
52
63
|
}
|
|
64
|
+
async function waitForAgentStartMarker(path, deadlineMs, pollMs = 100, shouldStop) {
|
|
65
|
+
const started = Date.now();
|
|
66
|
+
while (Date.now() - started < deadlineMs) {
|
|
67
|
+
if (shouldStop?.()) {
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
70
|
+
const marker = await readAgentStartMarker(path);
|
|
71
|
+
if (marker !== undefined) {
|
|
72
|
+
return marker;
|
|
73
|
+
}
|
|
74
|
+
await sleep(pollMs);
|
|
75
|
+
}
|
|
76
|
+
return undefined;
|
|
77
|
+
}
|
|
78
|
+
/** Delay from agent-start marker until parent SIGTERM (harness deadline + cleanup slack). */
|
|
79
|
+
export function subprocessKillDelayMs(agentStartMs, agentTimeoutMs) {
|
|
80
|
+
return (agentStartMs + agentTimeoutMs + LIVE_SUBPROCESS_TIMEOUT_BUFFER_MS - Date.now());
|
|
81
|
+
}
|
|
53
82
|
/** Run one live scenario in a fresh Node subprocess; inherit stdio for live progress. */
|
|
54
83
|
export async function spawnLiveScenario(options) {
|
|
55
84
|
const { command, args, execArgv } = buildLiveScenarioCommand(options);
|
|
@@ -63,14 +92,83 @@ export async function spawnLiveScenario(options) {
|
|
|
63
92
|
if (options.scenarioTotal !== undefined) {
|
|
64
93
|
env.AGENT_TEST_SCENARIO_TOTAL = String(options.scenarioTotal);
|
|
65
94
|
}
|
|
95
|
+
const agentTimeoutMs = options.timeoutMs;
|
|
96
|
+
const subprocessTimeoutMs = liveSubprocessTimeoutMs(agentTimeoutMs);
|
|
66
97
|
const exitCode = await new Promise((resolveExit, reject) => {
|
|
67
98
|
const child = spawn(command, [...execArgv, ...args], {
|
|
68
99
|
cwd: options.cwd,
|
|
69
100
|
env,
|
|
70
101
|
stdio: "inherit",
|
|
71
102
|
});
|
|
72
|
-
|
|
103
|
+
let childClosed = false;
|
|
104
|
+
let killedForTimeout = false;
|
|
105
|
+
let timeoutId;
|
|
106
|
+
let sigkillId;
|
|
107
|
+
const clearKillTimers = () => {
|
|
108
|
+
if (timeoutId !== undefined) {
|
|
109
|
+
clearTimeout(timeoutId);
|
|
110
|
+
timeoutId = undefined;
|
|
111
|
+
}
|
|
112
|
+
if (sigkillId !== undefined) {
|
|
113
|
+
clearTimeout(sigkillId);
|
|
114
|
+
sigkillId = undefined;
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
const killChildForTimeout = () => {
|
|
118
|
+
if (childClosed || killedForTimeout) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
killedForTimeout = true;
|
|
122
|
+
child.kill("SIGTERM");
|
|
123
|
+
sigkillId = setTimeout(() => {
|
|
124
|
+
if (childClosed) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
child.kill("SIGKILL");
|
|
128
|
+
}, LIVE_SUBPROCESS_SIGKILL_ESCALATION_MS);
|
|
129
|
+
};
|
|
130
|
+
const armKillTimer = (delayMs) => {
|
|
131
|
+
if (childClosed) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
if (delayMs <= 0) {
|
|
135
|
+
killChildForTimeout();
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
timeoutId = setTimeout(killChildForTimeout, delayMs);
|
|
139
|
+
};
|
|
140
|
+
if (agentTimeoutMs &&
|
|
141
|
+
agentTimeoutMs > 0 &&
|
|
142
|
+
options.stagingSessionId &&
|
|
143
|
+
!options.noTimeout) {
|
|
144
|
+
const markerPath = getStagingAgentStartPath(options.stagingSessionId, options.suiteName, options.scenarioName);
|
|
145
|
+
void (async () => {
|
|
146
|
+
const agentStartMs = await waitForAgentStartMarker(markerPath, LIVE_SUBPROCESS_SETUP_MAX_MS, 100, () => childClosed);
|
|
147
|
+
if (childClosed) {
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
if (agentStartMs === undefined) {
|
|
151
|
+
killChildForTimeout();
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
armKillTimer(subprocessKillDelayMs(agentStartMs, agentTimeoutMs));
|
|
155
|
+
})();
|
|
156
|
+
}
|
|
157
|
+
else if (subprocessTimeoutMs !== undefined) {
|
|
158
|
+
armKillTimer(subprocessTimeoutMs);
|
|
159
|
+
}
|
|
160
|
+
child.on("error", (error) => {
|
|
161
|
+
childClosed = true;
|
|
162
|
+
clearKillTimers();
|
|
163
|
+
reject(error);
|
|
164
|
+
});
|
|
73
165
|
child.on("close", (code, signal) => {
|
|
166
|
+
childClosed = true;
|
|
167
|
+
clearKillTimers();
|
|
168
|
+
if (killedForTimeout) {
|
|
169
|
+
resolveExit(124);
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
74
172
|
if (signal === "SIGKILL") {
|
|
75
173
|
resolveExit(137);
|
|
76
174
|
return;
|
|
@@ -85,11 +183,35 @@ export async function spawnLiveScenario(options) {
|
|
|
85
183
|
return exitCode;
|
|
86
184
|
}
|
|
87
185
|
export function subprocessFailureMessage(exitCode) {
|
|
186
|
+
if (exitCode === 124) {
|
|
187
|
+
return "live scenario subprocess timed out (harness deadline exceeded)";
|
|
188
|
+
}
|
|
88
189
|
if (exitCode === 137) {
|
|
89
190
|
return "subprocess killed (137) — macOS OOM; close heavy apps or increase AGENT_TEST_SCENARIO_SETTLE_MS";
|
|
90
191
|
}
|
|
91
192
|
return `live scenario subprocess exited ${exitCode}`;
|
|
92
193
|
}
|
|
194
|
+
/**
|
|
195
|
+
* Map isolated child exit + optional staging sidecar to parent failures.
|
|
196
|
+
* A persisted pass sidecar wins over a late timeout kill (exit 124).
|
|
197
|
+
*/
|
|
198
|
+
export function failuresForLiveSubprocessExit(exitCode, childResult) {
|
|
199
|
+
if (exitCode === 0) {
|
|
200
|
+
return [];
|
|
201
|
+
}
|
|
202
|
+
if (childResult?.failures.length) {
|
|
203
|
+
return [...childResult.failures];
|
|
204
|
+
}
|
|
205
|
+
if (childResult?.passed === true) {
|
|
206
|
+
return [];
|
|
207
|
+
}
|
|
208
|
+
return [
|
|
209
|
+
{
|
|
210
|
+
matcher: "liveScenario",
|
|
211
|
+
message: subprocessFailureMessage(exitCode),
|
|
212
|
+
},
|
|
213
|
+
];
|
|
214
|
+
}
|
|
93
215
|
/** Parent-provided counters for isolated child runs (1-based index). */
|
|
94
216
|
export function parentScenarioCounters() {
|
|
95
217
|
const index = Number(process.env.AGENT_TEST_SCENARIO_INDEX);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"live-isolation.js","sourceRoot":"","sources":["../src/live-isolation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,0BAA0B,GAAG,IAAI,CAAC;AAExC,mGAAmG;AACnG,MAAM,UAAU,4BAA4B;IAC3C,OAAO,CACN,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,GAAG;QACpC,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,GAAG,CACzC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC/B,MAAM,GAAG,GACR,OAAO,CAAC,GAAG,CAAC,6BAA6B;QACzC,MAAM,CAAC,0BAA0B,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC;QAC5C,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,0BAA0B,CAAC;AAC/B,CAAC;
|
|
1
|
+
{"version":3,"file":"live-isolation.js","sourceRoot":"","sources":["../src/live-isolation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Default live agent deadline — long enough for slow models, short enough to fail closed. */
|
|
2
|
+
export declare const DEFAULT_LIVE_TIMEOUT_MS = 600000;
|
|
3
|
+
/** Extra slack for isolated subprocess kill after the in-process harness timeout. */
|
|
4
|
+
export declare const LIVE_SUBPROCESS_TIMEOUT_BUFFER_MS = 30000;
|
|
5
|
+
/** Grace period after SIGTERM before SIGKILL on a timed-out live child. */
|
|
6
|
+
export declare const LIVE_SUBPROCESS_SIGKILL_ESCALATION_MS = 5000;
|
|
7
|
+
/** Max wait for child worktree/seed setup before parent treats setup as hung. */
|
|
8
|
+
export declare const LIVE_SUBPROCESS_SETUP_MAX_MS = 600000;
|
|
9
|
+
export declare function resolveLiveTimeoutMs(override?: number): number | undefined;
|
|
10
|
+
export declare function liveSubprocessTimeoutMs(agentTimeoutMs?: number): number | undefined;
|
|
11
|
+
//# sourceMappingURL=live-timeout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live-timeout.d.ts","sourceRoot":"","sources":["../src/live-timeout.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,eAAO,MAAM,uBAAuB,SAAU,CAAC;AAE/C,qFAAqF;AACrF,eAAO,MAAM,iCAAiC,QAAS,CAAC;AAExD,2EAA2E;AAC3E,eAAO,MAAM,qCAAqC,OAAQ,CAAC;AAE3D,iFAAiF;AACjF,eAAO,MAAM,4BAA4B,SAAU,CAAC;AAEpD,wBAAgB,oBAAoB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAe1E;AAED,wBAAgB,uBAAuB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAKnF"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/** Default live agent deadline — long enough for slow models, short enough to fail closed. */
|
|
2
|
+
export const DEFAULT_LIVE_TIMEOUT_MS = 600_000;
|
|
3
|
+
/** Extra slack for isolated subprocess kill after the in-process harness timeout. */
|
|
4
|
+
export const LIVE_SUBPROCESS_TIMEOUT_BUFFER_MS = 30_000;
|
|
5
|
+
/** Grace period after SIGTERM before SIGKILL on a timed-out live child. */
|
|
6
|
+
export const LIVE_SUBPROCESS_SIGKILL_ESCALATION_MS = 5_000;
|
|
7
|
+
/** Max wait for child worktree/seed setup before parent treats setup as hung. */
|
|
8
|
+
export const LIVE_SUBPROCESS_SETUP_MAX_MS = 600_000;
|
|
9
|
+
export function resolveLiveTimeoutMs(override) {
|
|
10
|
+
if (override !== undefined) {
|
|
11
|
+
return override > 0 ? override : undefined;
|
|
12
|
+
}
|
|
13
|
+
const raw = process.env.AGENT_TEST_TIMEOUT_MS?.trim();
|
|
14
|
+
if (!raw) {
|
|
15
|
+
return DEFAULT_LIVE_TIMEOUT_MS;
|
|
16
|
+
}
|
|
17
|
+
if (raw === "0" || raw === "false") {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
const parsed = Number(raw);
|
|
21
|
+
return Number.isFinite(parsed) && parsed > 0 ? parsed : DEFAULT_LIVE_TIMEOUT_MS;
|
|
22
|
+
}
|
|
23
|
+
export function liveSubprocessTimeoutMs(agentTimeoutMs) {
|
|
24
|
+
if (!agentTimeoutMs || agentTimeoutMs <= 0) {
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
return agentTimeoutMs + LIVE_SUBPROCESS_TIMEOUT_BUFFER_MS;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=live-timeout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live-timeout.js","sourceRoot":"","sources":["../src/live-timeout.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,MAAM,CAAC,MAAM,uBAAuB,GAAG,OAAO,CAAC;AAE/C,qFAAqF;AACrF,MAAM,CAAC,MAAM,iCAAiC,GAAG,MAAM,CAAC;AAExD,2EAA2E;AAC3E,MAAM,CAAC,MAAM,qCAAqC,GAAG,KAAK,CAAC;AAE3D,iFAAiF;AACjF,MAAM,CAAC,MAAM,4BAA4B,GAAG,OAAO,CAAC;AAEpD,MAAM,UAAU,oBAAoB,CAAC,QAAiB;IACrD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5C,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,EAAE,CAAC;IACtD,IAAI,CAAC,GAAG,EAAE,CAAC;QACV,OAAO,uBAAuB,CAAC;IAChC,CAAC;IACD,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;QACpC,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,uBAAuB,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,cAAuB;IAC9D,IAAI,CAAC,cAAc,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;QAC5C,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,OAAO,cAAc,GAAG,iCAAiC,CAAC;AAC3D,CAAC"}
|
package/dist/record-trace.d.ts
CHANGED
|
@@ -1,9 +1,23 @@
|
|
|
1
1
|
import type { AgentTrace } from "@post-print/agent-harness";
|
|
2
|
+
import type { AssertionFailure } from "./types.js";
|
|
2
3
|
export declare const LIVE_STAGING_DIR_NAME = "agent-spec";
|
|
3
4
|
export declare function getLiveStagingRoot(): string;
|
|
4
5
|
export declare function getLiveStagingSessionRoot(sessionId: string): string;
|
|
5
6
|
/** Staging JSON path for a live scenario trace (matches recordTrace layout). */
|
|
6
7
|
export declare function getStagingTracePath(stagingSessionId: string, suiteName: string, scenarioName: string): string;
|
|
8
|
+
/** Parent arms subprocess kill from this marker (epoch ms) when the harness deadline starts. */
|
|
9
|
+
export declare function getStagingAgentStartPath(stagingSessionId: string, suiteName: string, scenarioName: string): string;
|
|
10
|
+
/** Child writes when the harness agent deadline clock starts (after pre-stream SDK setup). */
|
|
11
|
+
export declare function writeAgentStartMarker(path: string): Promise<void>;
|
|
12
|
+
/** Parent reads agent-start epoch ms from staging; undefined when absent or invalid. */
|
|
13
|
+
export declare function readAgentStartMarker(path: string): Promise<number | undefined>;
|
|
14
|
+
/** Parent reads rubric failures from isolated child runs when exit code is non-zero. */
|
|
15
|
+
export declare function getStagingResultPath(stagingSessionId: string, suiteName: string, scenarioName: string): string;
|
|
16
|
+
export interface LiveScenarioResultSidecar {
|
|
17
|
+
passed: boolean;
|
|
18
|
+
failures: AssertionFailure[];
|
|
19
|
+
durationMs: number;
|
|
20
|
+
}
|
|
7
21
|
export declare function createLiveStagingSessionId(): string;
|
|
8
22
|
export type RecordingPathKind = "staging" | "fixture";
|
|
9
23
|
export interface ResolvedRecordingPath {
|
|
@@ -20,6 +34,10 @@ export declare function resolveRecordingPath(suiteName: string, scenarioName: st
|
|
|
20
34
|
export declare function recordTrace(outputPath: string, trace: AgentTrace): Promise<string>;
|
|
21
35
|
/** Load a staged live trace for parent-process judge after isolated child runs. */
|
|
22
36
|
export declare function loadStagingTrace(path: string): Promise<AgentTrace>;
|
|
37
|
+
/** Child writes rubric outcome for parent when live scenarios run in subprocess isolation. */
|
|
38
|
+
export declare function writeStagingResult(path: string, result: LiveScenarioResultSidecar): Promise<void>;
|
|
39
|
+
/** Parent merges child rubric failures instead of only reporting subprocess exit code. */
|
|
40
|
+
export declare function loadStagingResult(path: string): Promise<LiveScenarioResultSidecar | undefined>;
|
|
23
41
|
/** Remove a live staging session directory under $TMPDIR. */
|
|
24
42
|
export declare function cleanupStagingSession(sessionRoot: string): Promise<void>;
|
|
25
43
|
/** Remove legacy in-repo staging dirs from before tmpdir staging (best-effort). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record-trace.d.ts","sourceRoot":"","sources":["../src/record-trace.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG5D,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAYlD,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnE;
|
|
1
|
+
{"version":3,"file":"record-trace.d.ts","sourceRoot":"","sources":["../src/record-trace.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAYlD,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnE;AAMD,gFAAgF;AAChF,wBAAgB,mBAAmB,CAClC,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GAClB,MAAM,CAMR;AAED,gGAAgG;AAChG,wBAAgB,wBAAwB,CACvC,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GAClB,MAAM,CAMR;AAED,8FAA8F;AAC9F,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvE;AAED,wFAAwF;AACxF,wBAAsB,oBAAoB,CACzC,IAAI,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAQ7B;AAED,wFAAwF;AACxF,wBAAgB,oBAAoB,CACnC,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GAClB,MAAM,CAMR;AAED,MAAM,WAAW,yBAAyB;IACzC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,0BAA0B,IAAI,MAAM,CAEnD;AAED,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,SAAS,CAAC;AAEtD,MAAM,WAAW,qBAAqB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,iBAAiB,CAAC;CACxB;AAED,MAAM,WAAW,2BAA2B;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,6FAA6F;AAC7F,wBAAgB,oBAAoB,CACnC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,2BAA2B,GAClC,qBAAqB,GAAG,SAAS,CAuBnC;AAED,0EAA0E;AAC1E,wBAAsB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBxF;AAED,mFAAmF;AACnF,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAGxE;AAED,8FAA8F;AAC9F,wBAAsB,kBAAkB,CACvC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,yBAAyB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,0FAA0F;AAC1F,wBAAsB,iBAAiB,CACtC,IAAI,EAAE,MAAM,GACV,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC,CAMhD;AAED,6DAA6D;AAC7D,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9E;AAED,mFAAmF;AACnF,wBAAsB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAuBrF"}
|
package/dist/record-trace.js
CHANGED
|
@@ -16,30 +16,56 @@ export function getLiveStagingRoot() {
|
|
|
16
16
|
export function getLiveStagingSessionRoot(sessionId) {
|
|
17
17
|
return join(getLiveStagingRoot(), sessionId);
|
|
18
18
|
}
|
|
19
|
+
function stagingScenarioBasename(scenarioName) {
|
|
20
|
+
return slugifyScenarioName(scenarioName);
|
|
21
|
+
}
|
|
19
22
|
/** Staging JSON path for a live scenario trace (matches recordTrace layout). */
|
|
20
23
|
export function getStagingTracePath(stagingSessionId, suiteName, scenarioName) {
|
|
21
|
-
return join(getLiveStagingSessionRoot(stagingSessionId), suiteName, `${
|
|
24
|
+
return join(getLiveStagingSessionRoot(stagingSessionId), suiteName, `${stagingScenarioBasename(scenarioName)}.json`);
|
|
25
|
+
}
|
|
26
|
+
/** Parent arms subprocess kill from this marker (epoch ms) when the harness deadline starts. */
|
|
27
|
+
export function getStagingAgentStartPath(stagingSessionId, suiteName, scenarioName) {
|
|
28
|
+
return join(getLiveStagingSessionRoot(stagingSessionId), suiteName, `${stagingScenarioBasename(scenarioName)}.agent-start`);
|
|
29
|
+
}
|
|
30
|
+
/** Child writes when the harness agent deadline clock starts (after pre-stream SDK setup). */
|
|
31
|
+
export async function writeAgentStartMarker(path) {
|
|
32
|
+
await mkdir(dirname(path), { recursive: true });
|
|
33
|
+
await writeFile(path, `${Date.now()}\n`, "utf8");
|
|
34
|
+
}
|
|
35
|
+
/** Parent reads agent-start epoch ms from staging; undefined when absent or invalid. */
|
|
36
|
+
export async function readAgentStartMarker(path) {
|
|
37
|
+
try {
|
|
38
|
+
const raw = (await readFile(path, "utf8")).trim();
|
|
39
|
+
const parsed = Number(raw);
|
|
40
|
+
return Number.isFinite(parsed) && parsed > 0 ? parsed : undefined;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/** Parent reads rubric failures from isolated child runs when exit code is non-zero. */
|
|
47
|
+
export function getStagingResultPath(stagingSessionId, suiteName, scenarioName) {
|
|
48
|
+
return join(getLiveStagingSessionRoot(stagingSessionId), suiteName, `${stagingScenarioBasename(scenarioName)}.result.json`);
|
|
22
49
|
}
|
|
23
50
|
export function createLiveStagingSessionId() {
|
|
24
51
|
return `${process.pid}-${Date.now()}`;
|
|
25
52
|
}
|
|
26
53
|
/** Staging lives under $TMPDIR; use --record-fixtures to overwrite committed replayTrace. */
|
|
27
54
|
export function resolveRecordingPath(suiteName, scenarioName, replayTrace, recordFixtures, options) {
|
|
28
|
-
if (!replayTrace) {
|
|
29
|
-
return undefined;
|
|
30
|
-
}
|
|
31
55
|
if (recordFixtures) {
|
|
56
|
+
if (!replayTrace) {
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
32
59
|
return {
|
|
33
60
|
path: resolve(options.repoRoot, replayTrace),
|
|
34
61
|
kind: "fixture",
|
|
35
62
|
};
|
|
36
63
|
}
|
|
37
64
|
if (!options.stagingSessionId) {
|
|
38
|
-
|
|
65
|
+
return undefined;
|
|
39
66
|
}
|
|
40
|
-
const slug = slugifyScenarioName(scenarioName);
|
|
41
67
|
return {
|
|
42
|
-
path:
|
|
68
|
+
path: getStagingTracePath(options.stagingSessionId, suiteName, scenarioName),
|
|
43
69
|
kind: "staging",
|
|
44
70
|
};
|
|
45
71
|
}
|
|
@@ -66,6 +92,20 @@ export async function loadStagingTrace(path) {
|
|
|
66
92
|
const raw = JSON.parse(await readFile(path, "utf8"));
|
|
67
93
|
return enrichTrace(raw);
|
|
68
94
|
}
|
|
95
|
+
/** Child writes rubric outcome for parent when live scenarios run in subprocess isolation. */
|
|
96
|
+
export async function writeStagingResult(path, result) {
|
|
97
|
+
await mkdir(dirname(path), { recursive: true });
|
|
98
|
+
await writeFile(path, `${JSON.stringify(result, null, 2)}\n`, "utf8");
|
|
99
|
+
}
|
|
100
|
+
/** Parent merges child rubric failures instead of only reporting subprocess exit code. */
|
|
101
|
+
export async function loadStagingResult(path) {
|
|
102
|
+
try {
|
|
103
|
+
return JSON.parse(await readFile(path, "utf8"));
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
return undefined;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
69
109
|
/** Remove a live staging session directory under $TMPDIR. */
|
|
70
110
|
export async function cleanupStagingSession(sessionRoot) {
|
|
71
111
|
await rm(sessionRoot, { recursive: true, force: true });
|
package/dist/record-trace.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record-trace.js","sourceRoot":"","sources":["../src/record-trace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGnD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"record-trace.js","sourceRoot":"","sources":["../src/record-trace.ts"],"names":[],"mappings":"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"}
|
package/dist/run-suite.d.ts
CHANGED
|
@@ -23,6 +23,10 @@ export interface RunSuiteOptions {
|
|
|
23
23
|
keepRecordings?: boolean;
|
|
24
24
|
suitesDir?: string;
|
|
25
25
|
suiteFilter?: string;
|
|
26
|
+
/** Hard cap on live agent stream + wait (ms). */
|
|
27
|
+
timeoutMs?: number;
|
|
28
|
+
/** Allow AskQuestion-style tools in live runs (default false). */
|
|
29
|
+
allowUserInput?: boolean;
|
|
26
30
|
}
|
|
27
31
|
/** Live-only mode hint from rubric — not part of the user scenario prompt. */
|
|
28
32
|
export declare function outputContractForRubric(rubric: ScenarioRubric): RoutingContract | undefined;
|
|
@@ -39,6 +43,8 @@ export declare function runAllSuites(options: {
|
|
|
39
43
|
worktree?: boolean;
|
|
40
44
|
stagingSessionId?: string;
|
|
41
45
|
keepRecordings?: boolean;
|
|
46
|
+
timeoutMs?: number;
|
|
47
|
+
allowUserInput?: boolean;
|
|
42
48
|
}): Promise<SuiteRunReport[]>;
|
|
43
49
|
export { discoverSuites } from "./discover-suites.js";
|
|
44
50
|
//# sourceMappingURL=run-suite.d.ts.map
|
package/dist/run-suite.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-suite.d.ts","sourceRoot":"","sources":["../src/run-suite.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,SAAS,EAGT,eAAe,EAEf,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"run-suite.d.ts","sourceRoot":"","sources":["../src/run-suite.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,SAAS,EAGT,eAAe,EAEf,MAAM,2BAA2B,CAAC;AAgDnC,OAAO,KAAK,EAMX,cAAc,EACd,cAAc,EACd,MAAM,YAAY,CAAC;AAgCpB,0FAA0F;AAC1F,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED,oFAAoF;AACpF,wBAAgB,uBAAuB,IAAI,IAAI,CA8B9C;AAUD,MAAM,WAAW,eAAe;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mDAAmD;IACnD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,2FAA2F;IAC3F,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,yEAAyE;IACzE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,8EAA8E;AAC9E,wBAAgB,uBAAuB,CACtC,MAAM,EAAE,cAAc,GACpB,eAAe,GAAG,SAAS,CAQ7B;AA6DD,wBAAsB,QAAQ,CAC7B,OAAO,EAAE,eAAe,GACtB,OAAO,CAAC,cAAc,CAAC,CAmLzB;AAyUD,wBAAsB,YAAY,CAAC,OAAO,EAAE;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAoC5B;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/run-suite.js
CHANGED
|
@@ -1,15 +1,31 @@
|
|
|
1
1
|
import { basename, dirname, resolve } from "node:path";
|
|
2
|
-
import { captureWorkingTreeStatus, createScenarioWorktree, enrichTrace, findWorkingTreeLeak, formatWorkingTreeLeak, judgeTrace, loadContext, runAgent, } from "@post-print/agent-harness";
|
|
2
|
+
import { captureWorkingTreeStatus, createScenarioWorktree, enrichTrace, findWorkingTreeLeak, formatWorkingTreeLeak, judgeTrace, loadContext, runAgent, traceHasUserInputTool, } from "@post-print/agent-harness";
|
|
3
3
|
import { discoverSuites } from "./discover-suites.js";
|
|
4
4
|
import { assertRubric } from "./expect.js";
|
|
5
|
-
import { liveScenarioIsolationEnabled, parentScenarioCounters, spawnLiveScenario,
|
|
5
|
+
import { failuresForLiveSubprocessExit, liveScenarioIsolationEnabled, parentScenarioCounters, spawnLiveScenario, } from "./live-isolation.js";
|
|
6
|
+
import { resolveLiveTimeoutMs } from "./live-timeout.js";
|
|
6
7
|
import { loadSuiteFile } from "./load-suite.js";
|
|
7
8
|
import { formatDuration, logPhase, logProgress, logVerdict, withHeartbeat, } from "./progress.js";
|
|
8
|
-
import { getStagingTracePath, loadStagingTrace, recordTrace, resolveRecordingPath, } from "./record-trace.js";
|
|
9
|
-
import { seedScenarioWorktree } from "./scenario-seed.js";
|
|
9
|
+
import { getStagingAgentStartPath, getStagingTracePath, loadStagingTrace, loadStagingResult, recordTrace, resolveRecordingPath, writeAgentStartMarker, writeStagingResult, getStagingResultPath, } from "./record-trace.js";
|
|
10
|
+
import { captureCallerHead, restoreCallerHeadIfSeedCommit, seedScenarioWorktree, } from "./scenario-seed.js";
|
|
10
11
|
import { theme } from "./theme.js";
|
|
11
12
|
let activeWorktreeCleanup;
|
|
13
|
+
let activeCallerHeadRestore;
|
|
12
14
|
let liveSignalHandlersRegistered = false;
|
|
15
|
+
function setCallerHeadRestore(cwd, snapshot) {
|
|
16
|
+
activeCallerHeadRestore = { cwd, snapshot };
|
|
17
|
+
}
|
|
18
|
+
function clearCallerHeadRestore() {
|
|
19
|
+
activeCallerHeadRestore = undefined;
|
|
20
|
+
}
|
|
21
|
+
async function restoreActiveCallerHead() {
|
|
22
|
+
if (!activeCallerHeadRestore) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const { cwd, snapshot } = activeCallerHeadRestore;
|
|
26
|
+
await restoreCallerHeadIfSeedCommit(cwd, snapshot);
|
|
27
|
+
clearCallerHeadRestore();
|
|
28
|
+
}
|
|
13
29
|
function isChildProcess() {
|
|
14
30
|
return process.env.AGENT_TEST_CHILD === "1";
|
|
15
31
|
}
|
|
@@ -25,12 +41,20 @@ export function registerLiveRunHandlers() {
|
|
|
25
41
|
liveSignalHandlersRegistered = true;
|
|
26
42
|
const interrupt = (code) => {
|
|
27
43
|
const cleanup = activeWorktreeCleanup;
|
|
28
|
-
|
|
44
|
+
const headRestore = activeCallerHeadRestore;
|
|
45
|
+
if (!cleanup && !headRestore) {
|
|
29
46
|
process.exit(code);
|
|
30
47
|
return;
|
|
31
48
|
}
|
|
32
|
-
void
|
|
33
|
-
.
|
|
49
|
+
void Promise.resolve()
|
|
50
|
+
.then(async () => {
|
|
51
|
+
if (cleanup) {
|
|
52
|
+
await cleanup().catch(() => undefined);
|
|
53
|
+
}
|
|
54
|
+
if (headRestore) {
|
|
55
|
+
await restoreCallerHeadIfSeedCommit(headRestore.cwd, headRestore.snapshot).catch(() => undefined);
|
|
56
|
+
}
|
|
57
|
+
})
|
|
34
58
|
.finally(() => process.exit(code));
|
|
35
59
|
};
|
|
36
60
|
process.on("SIGINT", () => interrupt(130));
|
|
@@ -124,6 +148,19 @@ export async function runSuite(options) {
|
|
|
124
148
|
const scenarioIndex = parentCounters?.index ?? index + 1;
|
|
125
149
|
const scenarioTotal = displayTotal;
|
|
126
150
|
if (isolateLive) {
|
|
151
|
+
if (scenario.skip) {
|
|
152
|
+
const skipLabel = `[${scenarioIndex}/${scenarioTotal}] ${scenario.name}`;
|
|
153
|
+
logProgress(theme.skipped(skipLabel));
|
|
154
|
+
results.push({
|
|
155
|
+
suite: suite.name,
|
|
156
|
+
scenario: scenario.name,
|
|
157
|
+
passed: true,
|
|
158
|
+
failures: [],
|
|
159
|
+
skipped: true,
|
|
160
|
+
durationMs: 0,
|
|
161
|
+
});
|
|
162
|
+
continue;
|
|
163
|
+
}
|
|
127
164
|
const started = performance.now();
|
|
128
165
|
const exitCode = await spawnLiveScenario({
|
|
129
166
|
cwd: options.cwd,
|
|
@@ -138,17 +175,20 @@ export async function runSuite(options) {
|
|
|
138
175
|
judge: options.judge,
|
|
139
176
|
scenarioIndex: index + 1,
|
|
140
177
|
scenarioTotal: filteredTotal,
|
|
178
|
+
timeoutMs: resolveLiveTimeoutMs(options.timeoutMs),
|
|
179
|
+
noTimeout: options.timeoutMs === 0,
|
|
180
|
+
allowUserInput: options.allowUserInput,
|
|
141
181
|
});
|
|
142
182
|
const durationMs = Math.round(performance.now() - started);
|
|
143
183
|
const failures = [];
|
|
144
184
|
let judgeVerdicts;
|
|
145
185
|
if (exitCode !== 0) {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
186
|
+
const childResult = options.stagingSessionId !== undefined
|
|
187
|
+
? await loadStagingResult(getStagingResultPath(options.stagingSessionId, suite.name, scenario.name))
|
|
188
|
+
: undefined;
|
|
189
|
+
failures.push(...failuresForLiveSubprocessExit(exitCode, childResult));
|
|
150
190
|
}
|
|
151
|
-
|
|
191
|
+
if (failures.length === 0 && options.judge !== false && options.stagingSessionId) {
|
|
152
192
|
const criteria = normalizeJudgeCriteria(scenario.rubric.judge);
|
|
153
193
|
if (criteria.length > 0) {
|
|
154
194
|
releaseLiveMemory();
|
|
@@ -191,7 +231,7 @@ export async function runSuite(options) {
|
|
|
191
231
|
releaseLiveMemory();
|
|
192
232
|
continue;
|
|
193
233
|
}
|
|
194
|
-
results.push(await runScenario(options.cwd, suite.name, scenario, defaultHost, suite.defaults?.profile, suite.defaults?.skills, options.record, options.recordFixtures, options.judge, options.worktree, options.stagingSessionId, scenarioIndex, scenarioTotal));
|
|
234
|
+
results.push(await runScenario(options.cwd, suite.name, scenario, defaultHost, suite.defaults?.profile, suite.defaults?.skills, options.record, options.recordFixtures, options.judge, options.worktree, options.stagingSessionId, scenarioIndex, scenarioTotal, options.timeoutMs, options.allowUserInput));
|
|
195
235
|
if (isLiveSuite) {
|
|
196
236
|
releaseLiveMemory();
|
|
197
237
|
}
|
|
@@ -205,7 +245,7 @@ export async function runSuite(options) {
|
|
|
205
245
|
results,
|
|
206
246
|
};
|
|
207
247
|
}
|
|
208
|
-
async function runScenario(cwd, suiteName, scenario, defaultHost, defaultProfile, defaultSkills, record, recordFixtures, judge, worktree, stagingSessionId, scenarioIndex, scenarioTotal) {
|
|
248
|
+
async function runScenario(cwd, suiteName, scenario, defaultHost, defaultProfile, defaultSkills, record, recordFixtures, judge, worktree, stagingSessionId, scenarioIndex, scenarioTotal, timeoutMs, allowUserInput) {
|
|
209
249
|
const started = performance.now();
|
|
210
250
|
if (scenario.skip) {
|
|
211
251
|
const skipLabel = scenarioIndex !== undefined && scenarioTotal !== undefined
|
|
@@ -227,6 +267,8 @@ async function runScenario(cwd, suiteName, scenario, defaultHost, defaultProfile
|
|
|
227
267
|
(host === "cursor" ? "cursor" : "shared");
|
|
228
268
|
const skills = scenario.skills ?? defaultSkills;
|
|
229
269
|
const isLive = host !== "replay";
|
|
270
|
+
const liveTimeoutMs = isLive ? resolveLiveTimeoutMs(timeoutMs) : undefined;
|
|
271
|
+
const failOnUserInput = !allowUserInput;
|
|
230
272
|
if (scenarioIndex !== undefined && scenarioTotal !== undefined) {
|
|
231
273
|
logProgress(theme.scenarioTitle(scenarioIndex, scenarioTotal, scenario.name, host));
|
|
232
274
|
}
|
|
@@ -235,10 +277,15 @@ async function runScenario(cwd, suiteName, scenario, defaultHost, defaultProfile
|
|
|
235
277
|
}
|
|
236
278
|
const useWorktree = isLive && worktree !== false && !process.env.AGENT_TEST_NO_WORKTREE;
|
|
237
279
|
let worktreeHandle;
|
|
280
|
+
let callerHeadBefore;
|
|
238
281
|
const callerTreeBefore = useWorktree
|
|
239
282
|
? await captureWorkingTreeStatus(cwd)
|
|
240
283
|
: undefined;
|
|
241
284
|
if (useWorktree) {
|
|
285
|
+
if (isLive && scenario.seedPatch) {
|
|
286
|
+
callerHeadBefore = await captureCallerHead(cwd);
|
|
287
|
+
setCallerHeadRestore(cwd, callerHeadBefore);
|
|
288
|
+
}
|
|
242
289
|
worktreeHandle = await createScenarioWorktree(cwd, `${suiteName}-${scenario.name}`);
|
|
243
290
|
activeWorktreeCleanup = worktreeHandle.cleanup;
|
|
244
291
|
logPhase(theme.phase("worktree", theme.path(worktreeHandle.path)));
|
|
@@ -267,6 +314,9 @@ async function runScenario(cwd, suiteName, scenario, defaultHost, defaultProfile
|
|
|
267
314
|
const outputContract = isLive
|
|
268
315
|
? outputContractForRubric(scenario.rubric)
|
|
269
316
|
: undefined;
|
|
317
|
+
const agentStartMarkerPath = isChildProcess() && isLive && stagingSessionId
|
|
318
|
+
? getStagingAgentStartPath(stagingSessionId, suiteName, scenario.name)
|
|
319
|
+
: undefined;
|
|
270
320
|
const agentStarted = performance.now();
|
|
271
321
|
const session = await (isLive
|
|
272
322
|
? withHeartbeat(runAgent({
|
|
@@ -276,6 +326,11 @@ async function runScenario(cwd, suiteName, scenario, defaultHost, defaultProfile
|
|
|
276
326
|
profile,
|
|
277
327
|
prompt: scenario.prompt,
|
|
278
328
|
outputContract,
|
|
329
|
+
timeoutMs: liveTimeoutMs,
|
|
330
|
+
failOnUserInput,
|
|
331
|
+
onDeadlineStart: agentStartMarkerPath
|
|
332
|
+
? () => writeAgentStartMarker(agentStartMarkerPath)
|
|
333
|
+
: undefined,
|
|
279
334
|
}), { started: agentStarted })
|
|
280
335
|
: runAgent({
|
|
281
336
|
host,
|
|
@@ -296,6 +351,14 @@ async function runScenario(cwd, suiteName, scenario, defaultHost, defaultProfile
|
|
|
296
351
|
message: session.error ?? `agent session ${session.status}`,
|
|
297
352
|
});
|
|
298
353
|
}
|
|
354
|
+
else if (isLive &&
|
|
355
|
+
failOnUserInput &&
|
|
356
|
+
traceHasUserInputTool(trace.toolCalls)) {
|
|
357
|
+
failures.push({
|
|
358
|
+
matcher: "runAgent",
|
|
359
|
+
message: "agent trace contains AskQuestion-style user-input tool in headless mode",
|
|
360
|
+
});
|
|
361
|
+
}
|
|
299
362
|
logPhase(theme.phase("rubric"));
|
|
300
363
|
failures.push(...assertRubric(trace, scenario.rubric, {
|
|
301
364
|
skillsMode: context.skillsMode,
|
|
@@ -326,18 +389,6 @@ async function runScenario(cwd, suiteName, scenario, defaultHost, defaultProfile
|
|
|
326
389
|
}
|
|
327
390
|
}
|
|
328
391
|
}
|
|
329
|
-
if (worktreeHandle) {
|
|
330
|
-
const willJudge = Boolean(judge) &&
|
|
331
|
-
isLive &&
|
|
332
|
-
!isChildProcess() &&
|
|
333
|
-
normalizeJudgeCriteria(scenario.rubric.judge).length > 0;
|
|
334
|
-
logPhase(theme.phase("cleanup"), { last: !willJudge });
|
|
335
|
-
await worktreeHandle.cleanup();
|
|
336
|
-
if (activeWorktreeCleanup === worktreeHandle.cleanup) {
|
|
337
|
-
activeWorktreeCleanup = undefined;
|
|
338
|
-
}
|
|
339
|
-
worktreeHandle = undefined;
|
|
340
|
-
}
|
|
341
392
|
const deferJudgeToParent = isChildProcess();
|
|
342
393
|
let judgeVerdicts;
|
|
343
394
|
if (judge && isLive && !deferJudgeToParent) {
|
|
@@ -351,6 +402,28 @@ async function runScenario(cwd, suiteName, scenario, defaultHost, defaultProfile
|
|
|
351
402
|
judgeVerdicts = toJudgeVerdictResults(judged.trace, criteria);
|
|
352
403
|
}
|
|
353
404
|
const durationMs = Math.round(performance.now() - started);
|
|
405
|
+
if (isChildProcess() && isLive && stagingSessionId) {
|
|
406
|
+
await writeStagingResult(getStagingResultPath(stagingSessionId, suiteName, scenario.name), {
|
|
407
|
+
passed: failures.length === 0,
|
|
408
|
+
failures,
|
|
409
|
+
durationMs,
|
|
410
|
+
});
|
|
411
|
+
}
|
|
412
|
+
if (worktreeHandle) {
|
|
413
|
+
const willJudge = Boolean(judge) &&
|
|
414
|
+
isLive &&
|
|
415
|
+
!isChildProcess() &&
|
|
416
|
+
normalizeJudgeCriteria(scenario.rubric.judge).length > 0;
|
|
417
|
+
logPhase(theme.phase("cleanup"), { last: !willJudge });
|
|
418
|
+
await worktreeHandle.cleanup();
|
|
419
|
+
if (activeWorktreeCleanup === worktreeHandle.cleanup) {
|
|
420
|
+
activeWorktreeCleanup = undefined;
|
|
421
|
+
}
|
|
422
|
+
if (callerHeadBefore) {
|
|
423
|
+
await restoreActiveCallerHead();
|
|
424
|
+
}
|
|
425
|
+
worktreeHandle = undefined;
|
|
426
|
+
}
|
|
354
427
|
emitScenarioVerdict({
|
|
355
428
|
passed: failures.length === 0,
|
|
356
429
|
index: scenarioIndex,
|
|
@@ -377,6 +450,9 @@ async function runScenario(cwd, suiteName, scenario, defaultHost, defaultProfile
|
|
|
377
450
|
activeWorktreeCleanup = undefined;
|
|
378
451
|
}
|
|
379
452
|
}
|
|
453
|
+
if (activeCallerHeadRestore) {
|
|
454
|
+
await restoreActiveCallerHead().catch(() => undefined);
|
|
455
|
+
}
|
|
380
456
|
}
|
|
381
457
|
}
|
|
382
458
|
async function runJudgeRubric(trace, rubric, runCwd) {
|
|
@@ -435,6 +511,8 @@ export async function runAllSuites(options) {
|
|
|
435
511
|
keepRecordings: options.keepRecordings,
|
|
436
512
|
suitesDir: options.suitesDir,
|
|
437
513
|
suiteFilter: options.filter,
|
|
514
|
+
timeoutMs: options.timeoutMs,
|
|
515
|
+
allowUserInput: options.allowUserInput,
|
|
438
516
|
}));
|
|
439
517
|
}
|
|
440
518
|
return reports;
|
package/dist/run-suite.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-suite.js","sourceRoot":"","sources":["../src/run-suite.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run-suite.js","sourceRoot":"","sources":["../src/run-suite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASvD,OAAO,EACN,wBAAwB,EACxB,sBAAsB,EACtB,WAAW,EACX,mBAAmB,EACnB,qBAAqB,EACrB,UAAU,EACV,WAAW,EACX,QAAQ,EACR,qBAAqB,GACrB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EACN,6BAA6B,EAC7B,4BAA4B,EAC5B,sBAAsB,EACtB,iBAAiB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EACN,cAAc,EACd,QAAQ,EACR,WAAW,EACX,UAAU,EACV,aAAa,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,wBAAwB,EACxB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEN,iBAAiB,EACjB,6BAA6B,EAC7B,oBAAoB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAWnC,IAAI,qBAAwD,CAAC;AAC7D,IAAI,uBAEQ,CAAC;AACb,IAAI,4BAA4B,GAAG,KAAK,CAAC;AAEzC,SAAS,oBAAoB,CAC5B,GAAW,EACX,QAA4B;IAE5B,uBAAuB,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,sBAAsB;IAC9B,uBAAuB,GAAG,SAAS,CAAC;AACrC,CAAC;AAED,KAAK,UAAU,uBAAuB;IACrC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC9B,OAAO;IACR,CAAC;IACD,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,uBAAuB,CAAC;IAClD,MAAM,6BAA6B,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACnD,sBAAsB,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,cAAc;IACtB,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,GAAG,CAAC;AAC7C,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,sBAAsB;IACrC,OAAO,CAAC,cAAc,EAAE,CAAC;AAC1B,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,uBAAuB;IACtC,IAAI,4BAA4B,EAAE,CAAC;QAClC,OAAO;IACR,CAAC;IACD,4BAA4B,GAAG,IAAI,CAAC;IAEpC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE;QAClC,MAAM,OAAO,GAAG,qBAAqB,CAAC;QACtC,MAAM,WAAW,GAAG,uBAAuB,CAAC;QAC5C,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,OAAO;QACR,CAAC;QACD,KAAK,OAAO,CAAC,OAAO,EAAE;aACpB,IAAI,CAAC,KAAK,IAAI,EAAE;YAChB,IAAI,OAAO,EAAE,CAAC;gBACb,MAAM,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACxC,CAAC;YACD,IAAI,WAAW,EAAE,CAAC;gBACjB,MAAM,6BAA6B,CAClC,WAAW,CAAC,GAAG,EACf,WAAW,CAAC,QAAQ,CACpB,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;QACF,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,iBAAiB;IACzB,MAAM,KAAK,GAAI,UAA0D,CAAC,GAAG;QAC5E,EAAE,EAAE,CAAC;IACN,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,CAAC;IACb,CAAC;AACF,CAAC;AA2BD,8EAA8E;AAC9E,MAAM,UAAU,uBAAuB,CACtC,MAAsB;IAEtB,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACzB,OAAO,WAAW,CAAC;IACpB,CAAC;IACD,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAC3B,OAAO,UAAU,CAAC;IACnB,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,SAAS,sBAAsB,CAC9B,KAAoC;IAEpC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QACpB,OAAO,EAAE,CAAC;IACX,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAChC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,EAAE,EAAE,EAAE,SAAS,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACjD,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,SAAS,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IACrE,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,QAA0B,EAAE,EAAU;IACnE,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,IAAI,EAAE,CAAC;AAC1D,CAAC;AAED,SAAS,qBAAqB,CAC7B,KAAiB,EACjB,QAA0B;IAE1B,OAAO,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACpD,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;QACpD,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,SAAS,EAAE,OAAO,CAAC,SAAS;KAC5B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,QAA4B;IACvD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,mBAAmB,CAAC,OAQ5B;IACA,IAAI,CAAC,sBAAsB,EAAE,EAAE,CAAC;QAC/B,OAAO;IACR,CAAC;IACD,UAAU,CACT,KAAK,CAAC,eAAe,CAAC;QACrB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,cAAc,EAAE,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC;KACpD,CAAC,CACF,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC7B,OAAwB;IAExB,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,IAAI,IAAI,QAAQ,CAAC;IACrE,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc;QACvC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CACtB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,cAAc,CACtD;QACF,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;IAEnB,IAAI,OAAO,CAAC,cAAc,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,uBAAuB,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC;IACvC,MAAM,cAAc,GAAG,sBAAsB,EAAE,CAAC;IAChD,MAAM,YAAY,GAAG,cAAc,EAAE,KAAK,IAAI,aAAa,CAAC;IAC5D,MAAM,WAAW,GAAG,WAAW,KAAK,QAAQ,CAAC;IAC7C,MAAM,WAAW,GAChB,WAAW;QACX,4BAA4B,EAAE;QAC9B,CAAC,OAAO,CAAC,cAAc;QACvB,aAAa,GAAG,CAAC,CAAC;IAEnB,IAAI,sBAAsB,EAAE,EAAE,CAAC;QAC9B,WAAW,CACV,KAAK,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,CAC/D,CAAC;QACF,IAAI,WAAW,EAAE,CAAC;YACjB,WAAW,CAAC,KAAK,KAAK,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QAC3C,CAAC;IACF,CAAC;IAED,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACvD,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,SAAS;QACV,CAAC;QAED,MAAM,aAAa,GAAG,cAAc,EAAE,KAAK,IAAI,KAAK,GAAG,CAAC,CAAC;QACzD,MAAM,aAAa,GAAG,YAAY,CAAC;QAEnC,IAAI,WAAW,EAAE,CAAC;YACjB,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnB,MAAM,SAAS,GAAG,IAAI,aAAa,IAAI,aAAa,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACzE,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;gBACtC,OAAO,CAAC,IAAI,CAAC;oBACZ,KAAK,EAAE,KAAK,CAAC,IAAI;oBACjB,QAAQ,EAAE,QAAQ,CAAC,IAAI;oBACvB,MAAM,EAAE,IAAI;oBACZ,QAAQ,EAAE,EAAE;oBACZ,OAAO,EAAE,IAAI;oBACb,UAAU,EAAE,CAAC;iBACb,CAAC,CAAC;gBACH,SAAS;YACV,CAAC;YAED,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC;gBACxC,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,SAAS,EAAE,KAAK,CAAC,IAAI;gBACrB,YAAY,EAAE,QAAQ,CAAC,IAAI;gBAC3B,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,cAAc;gBAC9C,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI;gBAC9C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;gBAC1C,cAAc,EAAE,OAAO,CAAC,cAAc;gBACtC,cAAc,EAAE,OAAO,CAAC,cAAc;gBACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,aAAa,EAAE,KAAK,GAAG,CAAC;gBACxB,aAAa,EAAE,aAAa;gBAC5B,SAAS,EAAE,oBAAoB,CAAC,OAAO,CAAC,SAAS,CAAC;gBAClD,SAAS,EAAE,OAAO,CAAC,SAAS,KAAK,CAAC;gBAClC,cAAc,EAAE,OAAO,CAAC,cAAc;aACtC,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC;YAC3D,MAAM,QAAQ,GAAuB,EAAE,CAAC;YACxC,IAAI,aAA+C,CAAC;YAEpD,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACpB,MAAM,WAAW,GAChB,OAAO,CAAC,gBAAgB,KAAK,SAAS;oBACrC,CAAC,CAAC,MAAM,iBAAiB,CACvB,oBAAoB,CACnB,OAAO,CAAC,gBAAgB,EACxB,KAAK,CAAC,IAAI,EACV,QAAQ,CAAC,IAAI,CACb,CACD;oBACF,CAAC,CAAC,SAAS,CAAC;gBACd,QAAQ,CAAC,IAAI,CACZ,GAAG,6BAA6B,CAAC,QAAQ,EAAE,WAAW,CAAC,CACvD,CAAC;YACH,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBAClF,MAAM,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC/D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACzB,iBAAiB,EAAE,CAAC;oBACpB,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC5D,IAAI,CAAC;wBACJ,MAAM,SAAS,GAAG,mBAAmB,CACpC,OAAO,CAAC,gBAAgB,EACxB,KAAK,CAAC,IAAI,EACV,QAAQ,CAAC,IAAI,CACb,CAAC;wBACF,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;wBAChD,MAAM,MAAM,GAAG,MAAM,cAAc,CAClC,KAAK,EACL,QAAQ,CAAC,MAAM,EACf,OAAO,CAAC,GAAG,CACX,CAAC;wBACF,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;wBAClC,aAAa,GAAG,qBAAqB,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;oBAC/D,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBAChB,QAAQ,CAAC,IAAI,CAAC;4BACb,OAAO,EAAE,OAAO;4BAChB,OAAO,EACN,KAAK,YAAY,KAAK;gCACrB,CAAC,CAAC,KAAK,CAAC,OAAO;gCACf,CAAC,CAAC,wCAAwC;yBAC5C,CAAC,CAAC;oBACJ,CAAC;gBACF,CAAC;YACF,CAAC;YAED,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;YACrC,mBAAmB,CAAC;gBACnB,MAAM;gBACN,KAAK,EAAE,KAAK,GAAG,CAAC;gBAChB,KAAK,EAAE,aAAa;gBACpB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,UAAU;gBACV,aAAa;gBACb,QAAQ;aACR,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,QAAQ,EAAE,QAAQ,CAAC,IAAI;gBACvB,MAAM;gBACN,QAAQ;gBACR,UAAU;gBACV,aAAa;aACb,CAAC,CAAC;YACH,iBAAiB,EAAE,CAAC;YACpB,SAAS;QACV,CAAC;QAED,OAAO,CAAC,IAAI,CACX,MAAM,WAAW,CAChB,OAAO,CAAC,GAAG,EACX,KAAK,CAAC,IAAI,EACV,QAAQ,EACR,WAAW,EACX,KAAK,CAAC,QAAQ,EAAE,OAAO,EACvB,KAAK,CAAC,QAAQ,EAAE,MAAM,EACtB,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,gBAAgB,EACxB,aAAa,EACb,aAAa,EACb,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,cAAc,CACtB,CACD,CAAC;QACF,IAAI,WAAW,EAAE,CAAC;YACjB,iBAAiB,EAAE,CAAC;QACrB,CAAC;IACF,CAAC;IAED,OAAO;QACN,KAAK,EAAE,KAAK,CAAC,IAAI;QACjB,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM;QAC9C,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM;QAChD,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM;QAC7D,OAAO;KACP,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CACzB,GAAW,EACX,SAAiB,EACjB,QAAuB,EACvB,WAAsB,EACtB,cAAyC,EACzC,aAAmC,EACnC,MAAgB,EAChB,cAAwB,EACxB,KAAe,EACf,QAAkB,EAClB,gBAAyB,EACzB,aAAsB,EACtB,aAAsB,EACtB,SAAkB,EAClB,cAAwB;IAExB,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAElC,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,SAAS,GACd,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,SAAS;YACzD,CAAC,CAAC,IAAI,aAAa,IAAI,aAAa,KAAK,QAAQ,CAAC,IAAI,EAAE;YACxD,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAClB,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QACtC,OAAO;YACN,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,QAAQ,CAAC,IAAI;YACvB,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,CAAC;SACb,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,WAAW,CAAC;IAC1C,MAAM,OAAO,GACZ,QAAQ,CAAC,OAAO;QAChB,cAAc;QACd,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,aAAa,CAAC;IAChD,MAAM,MAAM,GAAG,IAAI,KAAK,QAAQ,CAAC;IACjC,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3E,MAAM,eAAe,GAAG,CAAC,cAAc,CAAC;IAExC,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChE,WAAW,CACV,KAAK,CAAC,aAAa,CAAC,aAAa,EAAE,aAAa,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CACtE,CAAC;IACH,CAAC;SAAM,CAAC;QACP,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,WAAW,GAChB,MAAM,IAAI,QAAQ,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;IACrE,IAAI,cAEQ,CAAC;IACb,IAAI,gBAEQ,CAAC;IACb,MAAM,gBAAgB,GAAG,WAAW;QACnC,CAAC,CAAC,MAAM,wBAAwB,CAAC,GAAG,CAAC;QACrC,CAAC,CAAC,SAAS,CAAC;IACb,IAAI,WAAW,EAAE,CAAC;QACjB,IAAI,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YAClC,gBAAgB,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;YAChD,oBAAoB,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;QAC7C,CAAC;QACD,cAAc,GAAG,MAAM,sBAAsB,CAC5C,GAAG,EACH,GAAG,SAAS,IAAI,QAAQ,CAAC,IAAI,EAAE,CAC/B,CAAC;QACF,qBAAqB,GAAG,cAAc,CAAC,OAAO,CAAC;QAC/C,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnE,IAAI,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YAClC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAClE,MAAM,oBAAoB,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC1E,CAAC;IACF,CAAC;SAAM,IAAI,MAAM,EAAE,CAAC;QACnB,QAAQ,CACP,KAAK,CAAC,KAAK,CACV,UAAU,EACV,KAAK,CAAC,QAAQ,CAAC,wCAAwC,CAAC,CACxD,CACD,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,cAAc,EAAE,IAAI,IAAI,GAAG,CAAC;IAE3C,IAAI,CAAC;QACJ,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QACjC,qFAAqF;QACrF,yEAAyE;QACzE,MAAM,WAAW,GAAG,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;QACzD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACzE,MAAM,SAAS,GAAG,IAAI,KAAK,QAAQ,CAAC;QACpC,IAAI,SAAS,EAAE,CAAC;YACf,QAAQ,CACP,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,CAAC,CAClE,CAAC;QACH,CAAC;aAAM,CAAC;YACP,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,cAAc,GAAG,MAAM;YAC5B,CAAC,CAAC,uBAAuB,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC1C,CAAC,CAAC,SAAS,CAAC;QACb,MAAM,oBAAoB,GACzB,cAAc,EAAE,IAAI,MAAM,IAAI,gBAAgB;YAC7C,CAAC,CAAC,wBAAwB,CACxB,gBAAgB,EAChB,SAAS,EACT,QAAQ,CAAC,IAAI,CACb;YACF,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM;YAC5B,CAAC,CAAC,aAAa,CACb,QAAQ,CAAC;gBACR,IAAI;gBACJ,GAAG,EAAE,MAAM;gBACX,OAAO;gBACP,OAAO;gBACP,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,cAAc;gBACd,SAAS,EAAE,aAAa;gBACxB,eAAe;gBACf,eAAe,EAAE,oBAAoB;oBACpC,CAAC,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,oBAAoB,CAAC;oBACnD,CAAC,CAAC,SAAS;aACZ,CAAC,EACF,EAAE,OAAO,EAAE,YAAY,EAAE,CACzB;YACF,CAAC,CAAC,QAAQ,CAAC;gBACT,IAAI;gBACJ,GAAG,EAAE,MAAM;gBACX,OAAO;gBACP,OAAO;gBACP,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,eAAe,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;aAC7D,CAAC,CAAC,CAAC;QAEN,IAAI,MAAM,EAAE,CAAC;YACZ,QAAQ,CACP,KAAK,CAAC,KAAK,CACV,OAAO,EACP,GAAG,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC,EAAE,CAC9G,CACD,CAAC;QACH,CAAC;QAED,IAAI,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAuB,EAAE,CAAC;QAExC,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACpC,QAAQ,CAAC,IAAI,CAAC;gBACb,OAAO,EAAE,UAAU;gBACnB,OAAO,EAAE,OAAO,CAAC,KAAK,IAAI,iBAAiB,OAAO,CAAC,MAAM,EAAE;aAC3D,CAAC,CAAC;QACJ,CAAC;aAAM,IACN,MAAM;YACN,eAAe;YACf,qBAAqB,CAAC,KAAK,CAAC,SAAS,CAAC,EACrC,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC;gBACb,OAAO,EAAE,UAAU;gBACnB,OAAO,EACN,yEAAyE;aAC1E,CAAC,CAAC;QACJ,CAAC;QAED,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChC,QAAQ,CAAC,IAAI,CACZ,GAAG,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE;YACvC,UAAU,EAAE,OAAO,CAAC,UAAU;SAC9B,CAAC,CACF,CAAC;QAEF,IAAI,WAAW,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACnD,MAAM,eAAe,GAAG,MAAM,wBAAwB,CAAC,GAAG,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,mBAAmB,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;YACtE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,QAAQ,CAAC,IAAI,CAAC;oBACb,OAAO,EAAE,iBAAiB;oBAC1B,OAAO,EAAE,qEAAqE,qBAAqB,CAAC,MAAM,CAAC,EAAE;iBAC7G,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAED,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,oBAAoB,CACpC,SAAS,EACT,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,WAAW,EACpB,cAAc,KAAK,IAAI,EACvB,EAAE,QAAQ,EAAE,GAAG,EAAE,gBAAgB,EAAE,CACnC,CAAC;YACF,IAAI,QAAQ,EAAE,CAAC;gBACd,IAAI,CAAC;oBACJ,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;oBACrD,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;oBACtE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACtD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,QAAQ,CAAC,IAAI,CAAC;wBACb,OAAO,EAAE,aAAa;wBACtB,OAAO,EACN,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB;qBAClE,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC;QACF,CAAC;QAED,MAAM,kBAAkB,GAAG,cAAc,EAAE,CAAC;QAC5C,IAAI,aAA+C,CAAC;QACpD,IAAI,KAAK,IAAI,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/D,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7D,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACpE,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAClC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YACrB,aAAa,GAAG,qBAAqB,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC;QAE3D,IAAI,cAAc,EAAE,IAAI,MAAM,IAAI,gBAAgB,EAAE,CAAC;YACpD,MAAM,kBAAkB,CACvB,oBAAoB,CAAC,gBAAgB,EAAE,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,EAChE;gBACC,MAAM,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAC7B,QAAQ;gBACR,UAAU;aACV,CACD,CAAC;QACH,CAAC;QAED,IAAI,cAAc,EAAE,CAAC;YACpB,MAAM,SAAS,GACd,OAAO,CAAC,KAAK,CAAC;gBACd,MAAM;gBACN,CAAC,cAAc,EAAE;gBACjB,sBAAsB,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAC1D,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;YACvD,MAAM,cAAc,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,qBAAqB,KAAK,cAAc,CAAC,OAAO,EAAE,CAAC;gBACtD,qBAAqB,GAAG,SAAS,CAAC;YACnC,CAAC;YACD,IAAI,gBAAgB,EAAE,CAAC;gBACtB,MAAM,uBAAuB,EAAE,CAAC;YACjC,CAAC;YACD,cAAc,GAAG,SAAS,CAAC;QAC5B,CAAC;QAED,mBAAmB,CAAC;YACnB,MAAM,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC;YAC7B,KAAK,EAAE,aAAa;YACpB,KAAK,EAAE,aAAa;YACpB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,UAAU;YACV,aAAa;YACb,QAAQ;SACR,CAAC,CAAC;QAEH,OAAO;YACN,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,QAAQ,CAAC,IAAI;YACvB,MAAM,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC;YAC7B,QAAQ;YACR,UAAU;YACV,aAAa;SACb,CAAC;IACH,CAAC;YAAS,CAAC;QACV,IAAI,cAAc,EAAE,CAAC;YACpB,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACjD,MAAM,cAAc,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,qBAAqB,KAAK,cAAc,CAAC,OAAO,EAAE,CAAC;gBACtD,qBAAqB,GAAG,SAAS,CAAC;YACnC,CAAC;QACF,CAAC;QACD,IAAI,uBAAuB,EAAE,CAAC;YAC7B,MAAM,uBAAuB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACxD,CAAC;IACF,CAAC;AACF,CAAC;AAED,KAAK,UAAU,cAAc,CAC5B,KAAiB,EACjB,MAAsB,EACtB,MAAc;IAEd,MAAM,QAAQ,GAAG,sBAAsB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAChC,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IAClE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO;YACN,KAAK;YACL,QAAQ,EAAE;gBACT,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,IAAI,eAAe,EAAE;aAC9D;SACD,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAe,EAAE,GAAG,KAAK,EAAE,aAAa,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC7E,MAAM,QAAQ,GAAuB,EAAE,CAAC;IACxC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACnB,QAAQ,CAAC,IAAI,CAAC;gBACb,OAAO,EAAE,SAAS,OAAO,CAAC,EAAE,EAAE;gBAC9B,OAAO,EAAE,OAAO,CAAC,SAAS;aAC1B,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;AACzC,CAAC;AAED,SAAS,iBAAiB,CAAC,SAAiB;IAC3C,OAAO,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAclC;IACA,MAAM,UAAU,GAAG,MAAM,cAAc,CACtC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,CACvC,CAAC;IACF,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM;QAC9B,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE;YAChC,MAAM,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAC/C,OAAO,CACN,SAAS,KAAK,OAAO,CAAC,MAAM;gBAC5B,SAAS,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CACzC,CAAC;QACH,CAAC,CAAC;QACH,CAAC,CAAC,UAAU,CAAC;IAEd,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,KAAK,MAAM,SAAS,IAAI,QAAQ,EAAE,CAAC;QAClC,OAAO,CAAC,IAAI,CACX,MAAM,QAAQ,CAAC;YACd,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,SAAS;YACT,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,WAAW,EAAE,OAAO,CAAC,MAAM;YAC3B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,cAAc,EAAE,OAAO,CAAC,cAAc;SACtC,CAAC,CACF,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/scenario-seed.d.ts
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
export interface CallerHeadSnapshot {
|
|
2
|
+
ref: string;
|
|
3
|
+
detached: boolean;
|
|
4
|
+
}
|
|
5
|
+
/** Record caller HEAD before worktree seeding so we can undo accidental checkouts. */
|
|
6
|
+
export declare function captureCallerHead(repoRoot: string): Promise<CallerHeadSnapshot>;
|
|
7
|
+
/** Restore caller branch/detach point if a seed commit leaked onto the main worktree. */
|
|
8
|
+
export declare function restoreCallerHeadIfSeedCommit(repoRoot: string, snapshot: CallerHeadSnapshot): Promise<void>;
|
|
1
9
|
/** Apply optional patch and commit so pr-mode `git diff main...HEAD` has scope. */
|
|
2
10
|
export declare function seedScenarioWorktree(repoRoot: string, worktreePath: string, seedPatch: string | undefined): Promise<void>;
|
|
3
11
|
//# sourceMappingURL=scenario-seed.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenario-seed.d.ts","sourceRoot":"","sources":["../src/scenario-seed.ts"],"names":[],"mappings":"AASA,mFAAmF;AACnF,wBAAsB,oBAAoB,CACzC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,GAAG,SAAS,GAC3B,OAAO,CAAC,IAAI,CAAC,CAkCf"}
|
|
1
|
+
{"version":3,"file":"scenario-seed.d.ts","sourceRoot":"","sources":["../src/scenario-seed.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,kBAAkB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED,sFAAsF;AACtF,wBAAsB,iBAAiB,CACtC,QAAQ,EAAE,MAAM,GACd,OAAO,CAAC,kBAAkB,CAAC,CAc7B;AAED,yFAAyF;AACzF,wBAAsB,6BAA6B,CAClD,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAkBf;AAED,mFAAmF;AACnF,wBAAsB,oBAAoB,CACzC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,GAAG,SAAS,GAC3B,OAAO,CAAC,IAAI,CAAC,CAkCf"}
|
package/dist/scenario-seed.js
CHANGED
|
@@ -4,6 +4,33 @@ import { resolve } from "node:path";
|
|
|
4
4
|
import { promisify } from "node:util";
|
|
5
5
|
const execFileAsync = promisify(execFile);
|
|
6
6
|
const SEED_COMMIT_MESSAGE = "agent-test: seed scenario diff (ephemeral worktree only)";
|
|
7
|
+
/** Record caller HEAD before worktree seeding so we can undo accidental checkouts. */
|
|
8
|
+
export async function captureCallerHead(repoRoot) {
|
|
9
|
+
try {
|
|
10
|
+
const { stdout } = await execFileAsync("git", ["symbolic-ref", "--short", "HEAD"], { cwd: repoRoot });
|
|
11
|
+
return { ref: stdout.trim(), detached: false };
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
const { stdout } = await execFileAsync("git", ["rev-parse", "HEAD"], {
|
|
15
|
+
cwd: repoRoot,
|
|
16
|
+
});
|
|
17
|
+
return { ref: stdout.trim(), detached: true };
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/** Restore caller branch/detach point if a seed commit leaked onto the main worktree. */
|
|
21
|
+
export async function restoreCallerHeadIfSeedCommit(repoRoot, snapshot) {
|
|
22
|
+
const { stdout: message } = await execFileAsync("git", ["log", "-1", "--format=%s"], { cwd: repoRoot });
|
|
23
|
+
if (message.trim() !== SEED_COMMIT_MESSAGE) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
if (snapshot.detached) {
|
|
27
|
+
await execFileAsync("git", ["checkout", "--detach", snapshot.ref], {
|
|
28
|
+
cwd: repoRoot,
|
|
29
|
+
});
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
await execFileAsync("git", ["checkout", snapshot.ref], { cwd: repoRoot });
|
|
33
|
+
}
|
|
7
34
|
/** Apply optional patch and commit so pr-mode `git diff main...HEAD` has scope. */
|
|
8
35
|
export async function seedScenarioWorktree(repoRoot, worktreePath, seedPatch) {
|
|
9
36
|
if (!seedPatch) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenario-seed.js","sourceRoot":"","sources":["../src/scenario-seed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,MAAM,mBAAmB,GAAG,0DAA0D,CAAC;
|
|
1
|
+
{"version":3,"file":"scenario-seed.js","sourceRoot":"","sources":["../src/scenario-seed.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@post-print/agent-test",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.12",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"agent-test": "./dist/cli.js"
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"clean": "rm -rf dist tsconfig.tsbuildinfo"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@post-print/agent-harness": "0.1.
|
|
26
|
+
"@post-print/agent-harness": "0.1.12",
|
|
27
27
|
"chalk": "5"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|