@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 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":"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"}
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
@@ -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,GACpB,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"}
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,EAGzB,WAAW,EACX,oBAAoB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACN,cAAc,EAEd,YAAY,EACZ,QAAQ,GACR,MAAM,gBAAgB,CAAC"}
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"}
@@ -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":"AAKA,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;CACvB;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,CA+BrB;AAQD,yFAAyF;AACzF,wBAAsB,iBAAiB,CACtC,OAAO,EAAE,wBAAwB,GAC/B,OAAO,CAAC,MAAM,CAAC,CAmCjB;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKjE;AAED,wEAAwE;AACxE,wBAAgB,sBAAsB,IACnC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChC,SAAS,CAYX"}
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"}
@@ -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
- child.on("error", reject);
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":"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"}
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"}
@@ -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;AAED,gFAAgF;AAChF,wBAAgB,mBAAmB,CAClC,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,GAClB,MAAM,CAMR;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,CAqBnC;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,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"}
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"}
@@ -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, `${slugifyScenarioName(scenarioName)}.json`);
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
- throw new Error("stagingSessionId required for live staging recordings");
65
+ return undefined;
39
66
  }
40
- const slug = slugifyScenarioName(scenarioName);
41
67
  return {
42
- path: join(getLiveStagingSessionRoot(options.stagingSessionId), suiteName, `${slug}.json`),
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 });
@@ -1 +1 @@
1
- {"version":3,"file":"record-trace.js","sourceRoot":"","sources":["../src/record-trace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"record-trace.js","sourceRoot":"","sources":["../src/record-trace.ts"],"names":[],"mappings":"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"}
@@ -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
@@ -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;AAoCnC,OAAO,KAAK,EAMX,cAAc,EACd,cAAc,EACd,MAAM,YAAY,CAAC;AASpB,0FAA0F;AAC1F,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED,oFAAoF;AACpF,wBAAgB,uBAAuB,IAAI,IAAI,CAmB9C;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;CACrB;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,CAsJzB;AAqRD,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;CACzB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAkC5B;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,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, subprocessFailureMessage, } from "./live-isolation.js";
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
- if (!cleanup) {
44
+ const headRestore = activeCallerHeadRestore;
45
+ if (!cleanup && !headRestore) {
29
46
  process.exit(code);
30
47
  return;
31
48
  }
32
- void cleanup()
33
- .catch(() => undefined)
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
- failures.push({
147
- matcher: "liveScenario",
148
- message: subprocessFailureMessage(exitCode),
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
- else if (options.judge !== false && options.stagingSessionId) {
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;
@@ -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":"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"}
@@ -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"}
@@ -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;AAEvF,mFAAmF;AACnF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACzC,QAAgB,EAChB,YAAoB,EACpB,SAA6B;IAE7B,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,OAAO;IACR,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC/C,IAAI,CAAC;QACJ,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,wBAAwB,SAAS,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,qBAAqB,EAAE,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC;IAC/F,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC;IACjE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE;QAChF,GAAG,EAAE,YAAY;KACjB,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,iCAAiC,SAAS,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,aAAa,CAClB,KAAK,EACL;QACC,IAAI;QACJ,wCAAwC;QACxC,IAAI;QACJ,sBAAsB;QACtB,QAAQ;QACR,aAAa;QACb,IAAI;QACJ,mBAAmB;KACnB,EACD,EAAE,GAAG,EAAE,YAAY,EAAE,CACrB,CAAC;AACH,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.10",
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.10",
26
+ "@post-print/agent-harness": "0.1.12",
27
27
  "chalk": "5"
28
28
  },
29
29
  "devDependencies": {