@post-print/agent-test 0.1.4 → 0.1.6

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.
@@ -0,0 +1,8 @@
1
+ /** Resolve a path for identity checks; fall back to resolve() if realpath fails. */
2
+ export declare function resolveRealPath(path: string): string;
3
+ /**
4
+ * True when this module is the process entrypoint (including via npm bin symlinks).
5
+ * Compares real paths so `node_modules/.bin/agent-test` matches `dist/cli.js`.
6
+ */
7
+ export declare function isCliMain(argv1: string | undefined, entryPath: string): boolean;
8
+ //# sourceMappingURL=cli-entry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-entry.d.ts","sourceRoot":"","sources":["../src/cli-entry.ts"],"names":[],"mappings":"AAGA,oFAAoF;AACpF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMpD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACxB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,SAAS,EAAE,MAAM,GACf,OAAO,CAIT"}
@@ -0,0 +1,19 @@
1
+ import { realpathSync } from "node:fs";
2
+ import { resolve } from "node:path";
3
+ /** Resolve a path for identity checks; fall back to resolve() if realpath fails. */
4
+ export function resolveRealPath(path) {
5
+ try {
6
+ return realpathSync(resolve(path));
7
+ }
8
+ catch {
9
+ return resolve(path);
10
+ }
11
+ }
12
+ /**
13
+ * True when this module is the process entrypoint (including via npm bin symlinks).
14
+ * Compares real paths so `node_modules/.bin/agent-test` matches `dist/cli.js`.
15
+ */
16
+ export function isCliMain(argv1, entryPath) {
17
+ return (argv1 !== undefined && resolveRealPath(argv1) === resolveRealPath(entryPath));
18
+ }
19
+ //# sourceMappingURL=cli-entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-entry.js","sourceRoot":"","sources":["../src/cli-entry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,oFAAoF;AACpF,MAAM,UAAU,eAAe,CAAC,IAAY;IAC3C,IAAI,CAAC;QACJ,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CACxB,KAAyB,EACzB,SAAiB;IAEjB,OAAO,CACN,KAAK,KAAK,SAAS,IAAI,eAAe,CAAC,KAAK,CAAC,KAAK,eAAe,CAAC,SAAS,CAAC,CAC5E,CAAC;AACH,CAAC"}
package/dist/cli.js CHANGED
@@ -1,10 +1,12 @@
1
1
  #!/usr/bin/env node
2
- import { resolve } from "node:path";
3
2
  import { fileURLToPath } from "node:url";
4
- import { cleanupStaleScenarioWorktrees } from "@post-print/agent-harness";
3
+ import { cleanupStaleScenarioWorktrees, } from "@post-print/agent-harness";
4
+ import { isCliMain } from "./cli-entry.js";
5
5
  import { assertLiveDogfoodPreflight } from "./preflight.js";
6
+ import { logProgress } from "./progress.js";
6
7
  import { cleanupLegacyRepoRecordings, cleanupStagingSession, createLiveStagingSessionId, getLiveStagingSessionRoot, } from "./record-trace.js";
7
8
  import { registerLiveRunHandlers, runAllSuites } from "./run-suite.js";
9
+ import { theme } from "./theme.js";
8
10
  function parseArgs(argv) {
9
11
  const cwd = process.cwd();
10
12
  let suitesDir = "agent-suites";
@@ -102,9 +104,12 @@ async function cleanupLiveRunArtifacts(cwd, stagingSessionRoot, keepRecordings)
102
104
  async function main() {
103
105
  const args = parseArgs(process.argv);
104
106
  const isChild = process.env.AGENT_TEST_CHILD === "1";
107
+ const verbose = process.env.AGENT_TEST_VERBOSE === "1";
105
108
  const stagingSessionId = args.stagingSessionId?.trim() ||
106
109
  process.env.AGENT_TEST_STAGING_SESSION_ID?.trim() ||
107
- (args.live || (args.record && !args.recordFixtures) ? createLiveStagingSessionId() : undefined);
110
+ (args.live || (args.record && !args.recordFixtures)
111
+ ? createLiveStagingSessionId()
112
+ : undefined);
108
113
  const stagingSessionRoot = stagingSessionId
109
114
  ? getLiveStagingSessionRoot(stagingSessionId)
110
115
  : undefined;
@@ -133,20 +138,21 @@ async function main() {
133
138
  registerLiveRunHandlers();
134
139
  const removed = await cleanupStaleScenarioWorktrees(args.cwd);
135
140
  if (removed.length > 0) {
136
- console.log(`Cleaned ${removed.length} stale agent-test worktree(s) from a prior crash`);
141
+ console.log(theme.warn(`Cleaned ${removed.length} stale agent-test worktree(s) from a prior crash`));
137
142
  }
138
- console.log("Live dogfood: cursor SDK → worktree → rubric → judge → $TMPDIR staging (use --record-fixtures to overwrite replay JSON)");
143
+ console.log(theme.banner());
144
+ console.log(theme.bannerDetail("cursor SDK → worktree → rubric → judge → $TMPDIR staging"));
139
145
  if (stagingSessionRoot) {
140
- console.log(`Live staging session: ${stagingSessionRoot}`);
146
+ console.log(theme.bannerSession(stagingSessionRoot));
141
147
  if (!args.keepRecordings) {
142
- console.log("Staging traces are removed on exit unless --keep-recordings");
148
+ console.log(` ${theme.tip("traces removed on exit unless --keep-recordings")}`);
143
149
  }
144
150
  }
145
151
  if (worktreeDisabled) {
146
- console.warn("Warning: running in repo cwd — agent file edits will persist in your working tree");
152
+ console.warn(theme.warn("running in repo cwd — agent file edits will persist in your working tree"));
147
153
  }
148
154
  else {
149
- console.log("Tip: exit 137 (Killed) is usually macOS OOM — live runs isolate each scenario in a subprocess by default; set AGENT_TEST_NO_ISOLATE=1 to disable");
155
+ console.log(` ${theme.tip("tip: exit 137 = macOS OOM — scenarios run in isolated subprocesses (AGENT_TEST_NO_ISOLATE=1 to disable)")}`);
150
156
  }
151
157
  }
152
158
  }
@@ -159,18 +165,20 @@ async function main() {
159
165
  const failed = report.results.filter((result) => !result.passed && !result.skipped);
160
166
  if (failed.length > 0) {
161
167
  exitCode = 1;
162
- console.log(`\n${report.suite} — failure details`);
168
+ console.log(`\n${theme.failedScenariosHeader()}`);
163
169
  for (const result of failed) {
164
- console.log(` ✗ ${result.scenario}`);
165
- for (const failure of result.failures) {
166
- console.log(` ${failure.matcher}: ${failure.message}`);
170
+ console.log(theme.failedScenarioName(result.scenario));
171
+ if (verbose) {
172
+ for (const failure of result.failures) {
173
+ console.log(theme.verboseFailure(failure.matcher, failure.message));
174
+ }
167
175
  }
168
176
  }
169
177
  }
170
- console.log(`${report.suite}: ${report.passed} passed, ${report.failed} failed, ${report.skipped} skipped`);
178
+ console.log(theme.summary(report.suite, report.passed, report.failed, report.skipped));
171
179
  }
172
180
  if (reports.length === 0) {
173
- console.log(`No suites found under ${args.suitesDir}`);
181
+ logProgress(`No suites found under ${args.suitesDir}`);
174
182
  return 1;
175
183
  }
176
184
  return exitCode;
@@ -182,8 +190,7 @@ async function main() {
182
190
  }
183
191
  }
184
192
  const entry = fileURLToPath(import.meta.url);
185
- const isMain = process.argv[1] !== undefined && resolve(process.argv[1]) === resolve(entry);
186
- if (isMain) {
193
+ if (isCliMain(process.argv[1], entry)) {
187
194
  void main()
188
195
  .then((code) => process.exit(code))
189
196
  .catch((error) => {
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
@@ -2,6 +2,6 @@ export { assertRubric, expectTrace, TraceAssertion } from "./expect.js";
2
2
  export { loadSuiteFile } from "./load-suite.js";
3
3
  export { assertLiveDogfoodPreflight } from "./preflight.js";
4
4
  export { cleanupLegacyRepoRecordings, cleanupStagingSession, createLiveStagingSessionId, getLiveStagingRoot, getLiveStagingSessionRoot, type RecordingPathKind, type ResolvedRecordingPath, recordTrace, resolveRecordingPath, } from "./record-trace.js";
5
- export { discoverSuites, type RunSuiteOptions, runAllSuites, runSuite } from "./run-suite.js";
6
- export type { AgentScenario, AgentSuiteFile, AssertionFailure, JudgeRubricItem, ScenarioResult, ScenarioRubric, SuiteRunReport, } from "./types.js";
5
+ export { discoverSuites, type RunSuiteOptions, runAllSuites, runSuite, } from "./run-suite.js";
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,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC9F,YAAY,EACX,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,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,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"}
package/dist/index.js CHANGED
@@ -2,5 +2,5 @@ export { assertRubric, expectTrace, TraceAssertion } from "./expect.js";
2
2
  export { loadSuiteFile } from "./load-suite.js";
3
3
  export { assertLiveDogfoodPreflight } from "./preflight.js";
4
4
  export { cleanupLegacyRepoRecordings, cleanupStagingSession, createLiveStagingSessionId, getLiveStagingRoot, getLiveStagingSessionRoot, recordTrace, resolveRecordingPath, } from "./record-trace.js";
5
- export { discoverSuites, runAllSuites, runSuite } from "./run-suite.js";
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,EAAE,cAAc,EAAwB,YAAY,EAAE,QAAQ,EAAE,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,EAGzB,WAAW,EACX,oBAAoB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACN,cAAc,EAEd,YAAY,EACZ,QAAQ,GACR,MAAM,gBAAgB,CAAC"}
@@ -13,7 +13,13 @@ export interface SpawnLiveScenarioOptions {
13
13
  worktree?: boolean;
14
14
  judge?: boolean;
15
15
  }
16
- /** Run one live scenario in a fresh bun subprocess; inherit stdio for live progress. */
16
+ export interface LiveScenarioCommand {
17
+ command: string;
18
+ args: string[];
19
+ }
20
+ /** Build the Node subprocess command for one live scenario (same CLI entry as the parent). */
21
+ export declare function buildLiveScenarioCommand(options: SpawnLiveScenarioOptions): LiveScenarioCommand;
22
+ /** Run one live scenario in a fresh Node subprocess; inherit stdio for live progress. */
17
23
  export declare function spawnLiveScenario(options: SpawnLiveScenarioOptions): Promise<number>;
18
24
  export declare function subprocessFailureMessage(exitCode: number): string;
19
25
  //# sourceMappingURL=live-isolation.d.ts.map
@@ -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,CAEtD;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAIzC;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;CAChB;AAQD,wFAAwF;AACxF,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CA8C1F;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKjE"}
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;CAChB;AAED,MAAM,WAAW,mBAAmB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CACf;AAED,8FAA8F;AAC9F,wBAAgB,wBAAwB,CACvC,OAAO,EAAE,wBAAwB,GAC/B,mBAAmB,CA2BrB;AAQD,yFAAyF;AACzF,wBAAsB,iBAAiB,CACtC,OAAO,EAAE,wBAAwB,GAC/B,OAAO,CAAC,MAAM,CAAC,CAwBjB;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKjE"}
@@ -3,21 +3,21 @@ import { resolve } from "node:path";
3
3
  const DEFAULT_SCENARIO_SETTLE_MS = 5000;
4
4
  /** Child process per live scenario (default) — avoids macOS OOM (exit 137) across council runs. */
5
5
  export function liveScenarioIsolationEnabled() {
6
- return process.env.AGENT_TEST_CHILD !== "1" && process.env.AGENT_TEST_NO_ISOLATE !== "1";
6
+ return (process.env.AGENT_TEST_CHILD !== "1" &&
7
+ process.env.AGENT_TEST_NO_ISOLATE !== "1");
7
8
  }
8
9
  export function scenarioSettleMs() {
9
- const raw = process.env.AGENT_TEST_SCENARIO_SETTLE_MS ?? String(DEFAULT_SCENARIO_SETTLE_MS);
10
+ const raw = process.env.AGENT_TEST_SCENARIO_SETTLE_MS ??
11
+ String(DEFAULT_SCENARIO_SETTLE_MS);
10
12
  const parsed = Number(raw);
11
- return Number.isFinite(parsed) && parsed >= 0 ? parsed : DEFAULT_SCENARIO_SETTLE_MS;
13
+ return Number.isFinite(parsed) && parsed >= 0
14
+ ? parsed
15
+ : DEFAULT_SCENARIO_SETTLE_MS;
12
16
  }
13
- function sleep(ms) {
14
- return new Promise((resolveSleep) => {
15
- setTimeout(resolveSleep, ms);
16
- });
17
- }
18
- /** Run one live scenario in a fresh bun subprocess; inherit stdio for live progress. */
19
- export async function spawnLiveScenario(options) {
20
- const cliPath = process.argv[1] ?? resolve(options.cwd, "node_modules/@post-print/agent-test/dist/cli.js");
17
+ /** Build the Node subprocess command for one live scenario (same CLI entry as the parent). */
18
+ export function buildLiveScenarioCommand(options) {
19
+ const cliPath = process.argv[1] ??
20
+ resolve(options.cwd, "node_modules/@post-print/agent-test/dist/cli.js");
21
21
  const args = [cliPath, "--live", "--scenario", options.scenarioName];
22
22
  if (options.suiteFilter) {
23
23
  args.push("--suite", options.suiteFilter);
@@ -39,8 +39,18 @@ export async function spawnLiveScenario(options) {
39
39
  }
40
40
  // Isolated child: agent + rubric only; parent runs judge (avoids OOM after heavy council runs).
41
41
  args.push("--no-judge");
42
+ return { command: process.execPath, args };
43
+ }
44
+ function sleep(ms) {
45
+ return new Promise((resolveSleep) => {
46
+ setTimeout(resolveSleep, ms);
47
+ });
48
+ }
49
+ /** Run one live scenario in a fresh Node subprocess; inherit stdio for live progress. */
50
+ export async function spawnLiveScenario(options) {
51
+ const { command, args } = buildLiveScenarioCommand(options);
42
52
  const exitCode = await new Promise((resolveExit, reject) => {
43
- const child = spawn("bun", args, {
53
+ const child = spawn(command, args, {
44
54
  cwd: options.cwd,
45
55
  env: { ...process.env, AGENT_TEST_CHILD: "1" },
46
56
  stdio: "inherit",
@@ -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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"}
@@ -1,6 +1,13 @@
1
1
  export declare function formatDuration(ms: number): string;
2
2
  export declare function logProgress(message: string): void;
3
- export declare function logPhase(message: string): void;
3
+ /** Emit a tree phase line (├─ by default; use endPhase for └─). */
4
+ export declare function logPhase(message: string, options?: {
5
+ last?: boolean;
6
+ }): void;
7
+ /** Nested heartbeat / continuation under the current phase. */
8
+ export declare function logPhaseNested(message: string): void;
9
+ /** Print a verdict block (PASS/FAIL + reasons). */
10
+ export declare function logVerdict(lines: string[]): void;
4
11
  /** Log every `intervalMs` while `promise` is pending (live agent runs). */
5
12
  export declare function withHeartbeat<T>(promise: Promise<T>, options: {
6
13
  label: string;
@@ -1 +1 @@
1
- {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../src/progress.ts"],"names":[],"mappings":"AAIA,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAKjD;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAKjD;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAK9C;AAED,2EAA2E;AAC3E,wBAAsB,aAAa,CAAC,CAAC,EACpC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/D,OAAO,CAAC,CAAC,CAAC,CAgBZ"}
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../src/progress.ts"],"names":[],"mappings":"AAMA,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAKjD;AAED,mEAAmE;AACnE,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAM5E;AAED,+DAA+D;AAC/D,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAKpD;AAED,mDAAmD;AACnD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAOhD;AAED,2EAA2E;AAC3E,wBAAsB,aAAa,CAAC,CAAC,EACpC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/D,OAAO,CAAC,CAAC,CAAC,CAkBZ"}
package/dist/progress.js CHANGED
@@ -1,11 +1,9 @@
1
+ import { formatDurationLabel, theme } from "./theme.js";
1
2
  function enabled() {
2
3
  return process.env.AGENT_TEST_QUIET !== "1" && !process.env.VITEST;
3
4
  }
4
5
  export function formatDuration(ms) {
5
- if (ms < 1000) {
6
- return `${Math.round(ms)}ms`;
7
- }
8
- return `${(ms / 1000).toFixed(1)}s`;
6
+ return formatDurationLabel(ms);
9
7
  }
10
8
  export function logProgress(message) {
11
9
  if (!enabled()) {
@@ -13,11 +11,29 @@ export function logProgress(message) {
13
11
  }
14
12
  console.log(message);
15
13
  }
16
- export function logPhase(message) {
14
+ /** Emit a tree phase line (├─ by default; use endPhase for └─). */
15
+ export function logPhase(message, options) {
16
+ if (!enabled()) {
17
+ return;
18
+ }
19
+ const prefix = options?.last ? "└─" : "├─";
20
+ console.log(theme.phaseTree(prefix, message));
21
+ }
22
+ /** Nested heartbeat / continuation under the current phase. */
23
+ export function logPhaseNested(message) {
17
24
  if (!enabled()) {
18
25
  return;
19
26
  }
20
- console.log(` ${message}`);
27
+ console.log(theme.phaseTree("│ ", message));
28
+ }
29
+ /** Print a verdict block (PASS/FAIL + reasons). */
30
+ export function logVerdict(lines) {
31
+ if (!enabled()) {
32
+ return;
33
+ }
34
+ for (const line of lines) {
35
+ console.log(line);
36
+ }
21
37
  }
22
38
  /** Log every `intervalMs` while `promise` is pending (live agent runs). */
23
39
  export async function withHeartbeat(promise, options) {
@@ -27,7 +43,7 @@ export async function withHeartbeat(promise, options) {
27
43
  const started = options.started ?? performance.now();
28
44
  const intervalMs = options.intervalMs ?? 30_000;
29
45
  const timer = setInterval(() => {
30
- logPhase(`${options.label} … ${formatDuration(performance.now() - started)} elapsed`);
46
+ logPhaseNested(`${options.label} … ${theme.duration(formatDuration(performance.now() - started))}`);
31
47
  }, intervalMs);
32
48
  try {
33
49
  return await promise;
@@ -1 +1 @@
1
- {"version":3,"file":"progress.js","sourceRoot":"","sources":["../src/progress.ts"],"names":[],"mappings":"AAAA,SAAS,OAAO;IACf,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAAU;IACxC,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;QACf,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC;IAC9B,CAAC;IACD,OAAO,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAe;IAC1C,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QAChB,OAAO;IACR,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAe;IACvC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QAChB,OAAO;IACR,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,2EAA2E;AAC3E,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,OAAmB,EACnB,OAAiE;IAEjE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QAChB,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC;IACrD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,MAAM,CAAC;IAChD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC9B,QAAQ,CAAC,GAAG,OAAO,CAAC,KAAK,MAAM,cAAc,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACvF,CAAC,EAAE,UAAU,CAAC,CAAC;IAEf,IAAI,CAAC;QACJ,OAAO,MAAM,OAAO,CAAC;IACtB,CAAC;YAAS,CAAC;QACV,aAAa,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"progress.js","sourceRoot":"","sources":["../src/progress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExD,SAAS,OAAO;IACf,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAAU;IACxC,OAAO,mBAAmB,CAAC,EAAE,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAe;IAC1C,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QAChB,OAAO;IACR,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACtB,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,OAA4B;IACrE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QAChB,OAAO;IACR,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,cAAc,CAAC,OAAe;IAC7C,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QAChB,OAAO;IACR,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,UAAU,CAAC,KAAe;IACzC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QAChB,OAAO;IACR,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;AACF,CAAC;AAED,2EAA2E;AAC3E,MAAM,CAAC,KAAK,UAAU,aAAa,CAClC,OAAmB,EACnB,OAAiE;IAEjE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QAChB,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,WAAW,CAAC,GAAG,EAAE,CAAC;IACrD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,MAAM,CAAC;IAChD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC9B,cAAc,CACb,GAAG,OAAO,CAAC,KAAK,MAAM,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CACnF,CAAC;IACH,CAAC,EAAE,UAAU,CAAC,CAAC;IAEf,IAAI,CAAC;QACJ,OAAO,MAAM,OAAO,CAAC;IACtB,CAAC;YAAS,CAAC;QACV,aAAa,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACF,CAAC"}
@@ -1,5 +1,7 @@
1
1
  import type { AgentHost } from "@post-print/agent-harness";
2
2
  import type { SuiteRunReport } from "./types.js";
3
+ /** Parent process prints suite headers and final verdicts; children only print phases. */
4
+ export declare function shouldPrintSuiteChrome(): boolean;
3
5
  /** Best-effort worktree cleanup when live runs are interrupted (SIGINT/SIGTERM). */
4
6
  export declare function registerLiveRunHandlers(): void;
5
7
  export interface RunSuiteOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"run-suite.d.ts","sourceRoot":"","sources":["../src/run-suite.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,SAAS,EAKT,MAAM,2BAA2B,CAAC;AA4BnC,OAAO,KAAK,EAMX,cAAc,EACd,MAAM,YAAY,CAAC;AAKpB,oFAAoF;AACpF,wBAAgB,uBAAuB,IAAI,IAAI,CAmB9C;AASD,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;AAsBD,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAwHhF;AA0ND,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,CA6B5B;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,EAKT,MAAM,2BAA2B,CAAC;AAmCnC,OAAO,KAAK,EAOX,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;AAuED,wBAAsB,QAAQ,CAC7B,OAAO,EAAE,eAAe,GACtB,OAAO,CAAC,cAAc,CAAC,CA6IzB;AAsRD,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"}
package/dist/run-suite.js CHANGED
@@ -4,11 +4,19 @@ import { discoverSuites } from "./discover-suites.js";
4
4
  import { assertRubric } from "./expect.js";
5
5
  import { liveScenarioIsolationEnabled, spawnLiveScenario, subprocessFailureMessage, } from "./live-isolation.js";
6
6
  import { loadSuiteFile } from "./load-suite.js";
7
- import { formatDuration, logPhase, logProgress, withHeartbeat } from "./progress.js";
7
+ import { formatDuration, logPhase, logProgress, logVerdict, withHeartbeat, } from "./progress.js";
8
8
  import { getStagingTracePath, loadStagingTrace, recordTrace, resolveRecordingPath, } from "./record-trace.js";
9
9
  import { seedScenarioWorktree } from "./scenario-seed.js";
10
+ import { theme } from "./theme.js";
10
11
  let activeWorktreeCleanup;
11
12
  let liveSignalHandlersRegistered = false;
13
+ function isChildProcess() {
14
+ return process.env.AGENT_TEST_CHILD === "1";
15
+ }
16
+ /** Parent process prints suite headers and final verdicts; children only print phases. */
17
+ export function shouldPrintSuiteChrome() {
18
+ return !isChildProcess();
19
+ }
12
20
  /** Best-effort worktree cleanup when live runs are interrupted (SIGINT/SIGTERM). */
13
21
  export function registerLiveRunHandlers() {
14
22
  if (liveSignalHandlersRegistered) {
@@ -29,7 +37,8 @@ export function registerLiveRunHandlers() {
29
37
  process.on("SIGTERM", () => interrupt(143));
30
38
  }
31
39
  function releaseLiveMemory() {
32
- const bunGc = globalThis.Bun?.gc;
40
+ const bunGc = globalThis.Bun
41
+ ?.gc;
33
42
  if (typeof bunGc === "function") {
34
43
  bunGc(true);
35
44
  }
@@ -52,6 +61,34 @@ function normalizeJudgeCriteria(judge) {
52
61
  return { id: item.id ?? `judge-${index}`, question: item.question };
53
62
  });
54
63
  }
64
+ function questionForCriterion(criteria, id) {
65
+ return criteria.find((c) => c.id === id)?.question ?? id;
66
+ }
67
+ function toJudgeVerdictResults(trace, criteria) {
68
+ return (trace.judgeVerdicts ?? []).map((verdict) => ({
69
+ id: verdict.id,
70
+ question: questionForCriterion(criteria, verdict.id),
71
+ pass: verdict.pass,
72
+ rationale: verdict.rationale,
73
+ }));
74
+ }
75
+ function rubricFailuresOnly(failures) {
76
+ return failures.filter((f) => !f.matcher.startsWith("judge"));
77
+ }
78
+ function emitScenarioVerdict(options) {
79
+ if (!shouldPrintSuiteChrome()) {
80
+ return;
81
+ }
82
+ logVerdict(theme.scenarioVerdict({
83
+ passed: options.passed,
84
+ index: options.index,
85
+ total: options.total,
86
+ name: options.name,
87
+ durationMs: options.durationMs,
88
+ judgeVerdicts: options.judgeVerdicts,
89
+ rubricFailures: rubricFailuresOnly(options.failures),
90
+ }));
91
+ }
55
92
  export async function runSuite(options) {
56
93
  const suite = await loadSuiteFile(options.suitePath);
57
94
  const defaultHost = options.host ?? suite.defaults?.host ?? "replay";
@@ -64,10 +101,15 @@ export async function runSuite(options) {
64
101
  }
65
102
  const total = scenarios.length;
66
103
  const isLiveSuite = defaultHost !== "replay";
67
- const isolateLive = isLiveSuite && liveScenarioIsolationEnabled() && !options.scenarioFilter && total > 1;
68
- logProgress(`\n${suite.name} (${defaultHost}) — ${total} scenario(s)`);
69
- if (isolateLive && total > 1) {
70
- logPhase("live isolation: one subprocess per scenario (AGENT_TEST_NO_ISOLATE=1 to disable)");
104
+ const isolateLive = isLiveSuite &&
105
+ liveScenarioIsolationEnabled() &&
106
+ !options.scenarioFilter &&
107
+ total > 1;
108
+ if (shouldPrintSuiteChrome()) {
109
+ logProgress(`\n${theme.suiteHeader(suite.name, defaultHost, total)}`);
110
+ if (isolateLive && total > 1) {
111
+ logProgress(` ${theme.isolationNote()}`);
112
+ }
71
113
  }
72
114
  for (let index = 0; index < scenarios.length; index++) {
73
115
  const scenario = scenarios[index];
@@ -90,6 +132,7 @@ export async function runSuite(options) {
90
132
  });
91
133
  const durationMs = Math.round(performance.now() - started);
92
134
  const failures = [];
135
+ let judgeVerdicts;
93
136
  if (exitCode !== 0) {
94
137
  failures.push({
95
138
  matcher: "liveScenario",
@@ -100,30 +143,41 @@ export async function runSuite(options) {
100
143
  const criteria = normalizeJudgeCriteria(scenario.rubric.judge);
101
144
  if (criteria.length > 0) {
102
145
  releaseLiveMemory();
103
- logPhase(`LLM judge (${criteria.length} criterion/criteria)…`);
146
+ logPhase(theme.judgePhase(criteria.length), { last: true });
104
147
  try {
105
148
  const tracePath = getStagingTracePath(options.stagingSessionId, suite.name, scenario.name);
106
149
  const trace = await loadStagingTrace(tracePath);
107
150
  const judged = await runJudgeRubric(trace, scenario.rubric, options.cwd);
108
151
  failures.push(...judged.failures);
152
+ judgeVerdicts = toJudgeVerdictResults(judged.trace, criteria);
109
153
  }
110
154
  catch (error) {
111
155
  failures.push({
112
156
  matcher: "judge",
113
- message: error instanceof Error ? error.message : "failed to load staging trace for judge",
157
+ message: error instanceof Error
158
+ ? error.message
159
+ : "failed to load staging trace for judge",
114
160
  });
115
161
  }
116
162
  }
117
163
  }
118
164
  const passed = failures.length === 0;
119
- const icon = passed ? "✓" : "✗";
120
- logProgress(`${icon} [${index + 1}/${total}] ${scenario.name} (${formatDuration(durationMs)})`);
165
+ emitScenarioVerdict({
166
+ passed,
167
+ index: index + 1,
168
+ total,
169
+ name: scenario.name,
170
+ durationMs,
171
+ judgeVerdicts,
172
+ failures,
173
+ });
121
174
  results.push({
122
175
  suite: suite.name,
123
176
  scenario: scenario.name,
124
177
  passed,
125
178
  failures,
126
179
  durationMs,
180
+ judgeVerdicts,
127
181
  });
128
182
  releaseLiveMemory();
129
183
  continue;
@@ -144,11 +198,11 @@ export async function runSuite(options) {
144
198
  }
145
199
  async function runScenario(cwd, suiteName, scenario, defaultHost, defaultProfile, defaultSkills, record, recordFixtures, judge, worktree, stagingSessionId, scenarioIndex, scenarioTotal) {
146
200
  const started = performance.now();
147
- const label = scenarioIndex !== undefined && scenarioTotal !== undefined
148
- ? `[${scenarioIndex}/${scenarioTotal}] ${scenario.name}`
149
- : scenario.name;
150
201
  if (scenario.skip) {
151
- logProgress(`${label} skipped`);
202
+ const skipLabel = scenarioIndex !== undefined && scenarioTotal !== undefined
203
+ ? `[${scenarioIndex}/${scenarioTotal}] ${scenario.name}`
204
+ : scenario.name;
205
+ logProgress(theme.skipped(skipLabel));
152
206
  return {
153
207
  suite: suiteName,
154
208
  scenario: scenario.name,
@@ -159,41 +213,52 @@ async function runScenario(cwd, suiteName, scenario, defaultHost, defaultProfile
159
213
  };
160
214
  }
161
215
  const host = scenario.host ?? defaultHost;
162
- const profile = scenario.profile ?? defaultProfile ?? (host === "cursor" ? "cursor" : "shared");
216
+ const profile = scenario.profile ??
217
+ defaultProfile ??
218
+ (host === "cursor" ? "cursor" : "shared");
163
219
  const skills = scenario.skills ?? defaultSkills;
164
220
  const isLive = host !== "replay";
165
- logProgress(`${label} ${host}`);
221
+ if (scenarioIndex !== undefined && scenarioTotal !== undefined) {
222
+ logProgress(theme.scenarioTitle(scenarioIndex, scenarioTotal, scenario.name, host));
223
+ }
224
+ else {
225
+ logProgress(theme.scenarioLabel(scenario.name, host));
226
+ }
166
227
  const useWorktree = isLive && worktree !== false && !process.env.AGENT_TEST_NO_WORKTREE;
167
228
  let worktreeHandle;
168
- const callerTreeBefore = useWorktree ? await captureWorkingTreeStatus(cwd) : undefined;
229
+ const callerTreeBefore = useWorktree
230
+ ? await captureWorkingTreeStatus(cwd)
231
+ : undefined;
169
232
  if (useWorktree) {
170
- logPhase("creating git worktree…");
233
+ logPhase(theme.phaseDim("creating git worktree…"));
171
234
  worktreeHandle = await createScenarioWorktree(cwd, `${suiteName}-${scenario.name}`);
172
235
  activeWorktreeCleanup = worktreeHandle.cleanup;
173
- logPhase(`worktree → ${worktreeHandle.path}`);
236
+ logPhase(`worktree → ${theme.path(worktreeHandle.path)}`);
174
237
  if (isLive && scenario.seedPatch) {
175
- logPhase(`seeding worktree diff (${scenario.seedPatch})…`);
238
+ logPhase(`seeding diff ${theme.basename(scenario.seedPatch)}`);
176
239
  await seedScenarioWorktree(cwd, worktreeHandle.path, scenario.seedPatch);
177
240
  }
178
241
  }
179
242
  else if (isLive) {
180
- logPhase("worktree disabled — agent may mutate repo cwd (AGENT_TEST_ALLOW_IN_PLACE=1)");
243
+ logPhase(theme.phaseDim("worktree disabled — agent may mutate repo cwd (AGENT_TEST_ALLOW_IN_PLACE=1)"));
181
244
  }
182
245
  const runCwd = worktreeHandle?.path ?? cwd;
183
246
  try {
184
- logPhase("loading agent context…");
247
+ logPhase(theme.phaseDim("loading agent context…"));
185
248
  // Live worktree runs code in an isolated checkout; load rules/AGENTS from caller cwd
186
249
  // so uncommitted .cursor/rules and AGENTS.md edits apply during dogfood.
187
250
  const contextRoot = isLive && useWorktree ? cwd : runCwd;
188
251
  const context = await loadContext({ cwd: contextRoot, profile, skills });
189
252
  const useReplay = host === "replay";
190
253
  if (useReplay) {
191
- logPhase(`replaying ${scenario.replayTrace ?? "trace"}…`);
254
+ logPhase(`replaying ${theme.path(scenario.replayTrace ?? "trace")}…`);
192
255
  }
193
256
  else {
194
- logPhase("running cursor agent (may take several minutes)…");
257
+ logPhase(theme.phaseDim("running cursor agent (may take several minutes)…"));
195
258
  }
196
- const outputContract = isLive ? outputContractForRubric(scenario.rubric) : undefined;
259
+ const outputContract = isLive
260
+ ? outputContractForRubric(scenario.rubric)
261
+ : undefined;
197
262
  const agentStarted = performance.now();
198
263
  const session = await (isLive
199
264
  ? withHeartbeat(runAgent({
@@ -203,7 +268,7 @@ async function runScenario(cwd, suiteName, scenario, defaultHost, defaultProfile
203
268
  profile,
204
269
  prompt: scenario.prompt,
205
270
  outputContract,
206
- }), { label: "agent still running", started: agentStarted })
271
+ }), { label: "still running", started: agentStarted })
207
272
  : runAgent({
208
273
  host,
209
274
  cwd: runCwd,
@@ -213,7 +278,7 @@ async function runScenario(cwd, suiteName, scenario, defaultHost, defaultProfile
213
278
  replayTracePath: useReplay ? scenario.replayTrace : undefined,
214
279
  }));
215
280
  if (isLive) {
216
- logPhase(`agent finished (${formatDuration(performance.now() - agentStarted)}) — ${session.status}`);
281
+ logPhase(`agent finished — ${theme.statusCompleted(session.status)} ${theme.duration(`(${formatDuration(performance.now() - agentStarted)})`)}`);
217
282
  }
218
283
  let trace = enrichTrace(session.trace);
219
284
  const failures = [];
@@ -223,8 +288,10 @@ async function runScenario(cwd, suiteName, scenario, defaultHost, defaultProfile
223
288
  message: session.error ?? `agent session ${session.status}`,
224
289
  });
225
290
  }
226
- logPhase("scoring rubric…");
227
- failures.push(...assertRubric(trace, scenario.rubric, { skillsMode: context.skillsMode }));
291
+ logPhase(theme.phaseDim("scoring rubric…"));
292
+ failures.push(...assertRubric(trace, scenario.rubric, {
293
+ skillsMode: context.skillsMode,
294
+ }));
228
295
  if (useWorktree && callerTreeBefore !== undefined) {
229
296
  const callerTreeAfter = await captureWorkingTreeStatus(cwd);
230
297
  const leaked = findWorkingTreeLeak(callerTreeBefore, callerTreeAfter);
@@ -238,11 +305,13 @@ async function runScenario(cwd, suiteName, scenario, defaultHost, defaultProfile
238
305
  if (record && isLive) {
239
306
  const resolved = resolveRecordingPath(suiteName, scenario.name, scenario.replayTrace, recordFixtures === true, { repoRoot: cwd, stagingSessionId });
240
307
  if (resolved) {
241
- logPhase("recording trace…");
308
+ logPhase(theme.phaseDim("recording trace…"));
242
309
  try {
243
310
  const path = await recordTrace(resolved.path, trace);
244
- const recordLabel = resolved.kind === "fixture" ? "recorded fixture" : "recorded staging";
245
- logPhase(`${recordLabel} ${path}`);
311
+ const recordLabel = resolved.kind === "fixture"
312
+ ? "recorded fixture"
313
+ : "recorded staging";
314
+ logPhase(`${recordLabel} → ${theme.path(path)}`);
246
315
  }
247
316
  catch (error) {
248
317
  failures.push({
@@ -252,34 +321,56 @@ async function runScenario(cwd, suiteName, scenario, defaultHost, defaultProfile
252
321
  }
253
322
  }
254
323
  }
255
- const deferJudgeToParent = process.env.AGENT_TEST_CHILD === "1";
324
+ if (worktreeHandle) {
325
+ const willJudge = Boolean(judge) &&
326
+ isLive &&
327
+ !isChildProcess() &&
328
+ normalizeJudgeCriteria(scenario.rubric.judge).length > 0;
329
+ logPhase(theme.phaseDim("removing worktree…"), { last: !willJudge });
330
+ await worktreeHandle.cleanup();
331
+ if (activeWorktreeCleanup === worktreeHandle.cleanup) {
332
+ activeWorktreeCleanup = undefined;
333
+ }
334
+ worktreeHandle = undefined;
335
+ }
336
+ const deferJudgeToParent = isChildProcess();
337
+ let judgeVerdicts;
256
338
  if (judge && isLive && !deferJudgeToParent) {
257
339
  const criteria = normalizeJudgeCriteria(scenario.rubric.judge);
258
340
  if (criteria.length > 0) {
259
- logPhase(`LLM judge (${criteria.length} criterion/criteria)…`);
341
+ logPhase(theme.judgePhase(criteria.length), { last: true });
260
342
  }
261
343
  const judged = await runJudgeRubric(trace, scenario.rubric, runCwd);
262
344
  failures.push(...judged.failures);
263
345
  trace = judged.trace;
346
+ judgeVerdicts = toJudgeVerdictResults(judged.trace, criteria);
264
347
  }
265
348
  const durationMs = Math.round(performance.now() - started);
266
- const icon = failures.length === 0 ? "✓" : "✗";
267
- logProgress(`${icon} ${label} (${formatDuration(durationMs)})`);
349
+ emitScenarioVerdict({
350
+ passed: failures.length === 0,
351
+ index: scenarioIndex,
352
+ total: scenarioTotal,
353
+ name: scenario.name,
354
+ durationMs,
355
+ judgeVerdicts,
356
+ failures,
357
+ });
268
358
  return {
269
359
  suite: suiteName,
270
360
  scenario: scenario.name,
271
361
  passed: failures.length === 0,
272
362
  failures,
273
363
  durationMs,
364
+ judgeVerdicts,
274
365
  };
275
366
  }
276
367
  finally {
277
368
  if (worktreeHandle) {
278
- logPhase("removing worktree…");
279
- }
280
- await worktreeHandle?.cleanup();
281
- if (activeWorktreeCleanup === worktreeHandle?.cleanup) {
282
- activeWorktreeCleanup = undefined;
369
+ logPhase(theme.phaseDim("removing worktree…"), { last: true });
370
+ await worktreeHandle.cleanup();
371
+ if (activeWorktreeCleanup === worktreeHandle.cleanup) {
372
+ activeWorktreeCleanup = undefined;
373
+ }
283
374
  }
284
375
  }
285
376
  }
@@ -292,7 +383,9 @@ async function runJudgeRubric(trace, rubric, runCwd) {
292
383
  if (result.skipped) {
293
384
  return {
294
385
  trace,
295
- failures: [{ matcher: "judge", message: result.error ?? "judge skipped" }],
386
+ failures: [
387
+ { matcher: "judge", message: result.error ?? "judge skipped" },
388
+ ],
296
389
  };
297
390
  }
298
391
  const judgedTrace = { ...trace, judgeVerdicts: result.verdicts };
@@ -318,7 +411,8 @@ export async function runAllSuites(options) {
318
411
  const filtered = options.filter
319
412
  ? suitePaths.filter((suitePath) => {
320
413
  const suiteName = suiteNameFromPath(suitePath);
321
- return suiteName === options.filter || suitePath.includes(`/${options.filter}/`);
414
+ return (suiteName === options.filter ||
415
+ suitePath.includes(`/${options.filter}/`));
322
416
  })
323
417
  : suitePaths;
324
418
  const reports = [];
@@ -1 +1 @@
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,GACR,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EACN,4BAA4B,EAC5B,iBAAiB,EACjB,wBAAwB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACrF,OAAO,EACN,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,oBAAoB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAU1D,IAAI,qBAAwD,CAAC;AAC7D,IAAI,4BAA4B,GAAG,KAAK,CAAC;AAEzC,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,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,OAAO;QACR,CAAC;QACD,KAAK,OAAO,EAAE;aACZ,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;aACtB,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,EAAE,EAAE,CAAC;IAClF,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,CAAC;IACb,CAAC;AACF,CAAC;AAuBD,8EAA8E;AAC9E,SAAS,uBAAuB,CAAC,MAAsB;IACtD,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACzB,OAAO,WAAW,CAAC;IACpB,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAoC;IACnE,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,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAwB;IACtD,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,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,cAAc,CAAC;QAChF,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,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC;IAC/B,MAAM,WAAW,GAAG,WAAW,KAAK,QAAQ,CAAC;IAC7C,MAAM,WAAW,GAChB,WAAW,IAAI,4BAA4B,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,KAAK,GAAG,CAAC,CAAC;IAEvF,WAAW,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,WAAW,OAAO,KAAK,cAAc,CAAC,CAAC;IACvE,IAAI,WAAW,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC9B,QAAQ,CAAC,kFAAkF,CAAC,CAAC;IAC9F,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,IAAI,WAAW,EAAE,CAAC;YACjB,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;aACpB,CAAC,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC;YAC3D,MAAM,QAAQ,GAAuB,EAAE,CAAC;YAExC,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACpB,QAAQ,CAAC,IAAI,CAAC;oBACb,OAAO,EAAE,cAAc;oBACvB,OAAO,EAAE,wBAAwB,CAAC,QAAQ,CAAC;iBAC3C,CAAC,CAAC;YACJ,CAAC;iBAAM,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBAChE,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,cAAc,QAAQ,CAAC,MAAM,uBAAuB,CAAC,CAAC;oBAC/D,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,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;wBACzE,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;oBACnC,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBAChB,QAAQ,CAAC,IAAI,CAAC;4BACb,OAAO,EAAE,OAAO;4BAChB,OAAO,EACN,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wCAAwC;yBAClF,CAAC,CAAC;oBACJ,CAAC;gBACF,CAAC;YACF,CAAC;YAED,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;YACrC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAChC,WAAW,CACV,GAAG,IAAI,KAAK,KAAK,GAAG,CAAC,IAAI,KAAK,KAAK,QAAQ,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU,CAAC,GAAG,CAClF,CAAC;YACF,OAAO,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,QAAQ,EAAE,QAAQ,CAAC,IAAI;gBACvB,MAAM;gBACN,QAAQ;gBACR,UAAU;aACV,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,KAAK,GAAG,CAAC,EACT,KAAK,CACL,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;IAEtB,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAClC,MAAM,KAAK,GACV,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,SAAS;QACzD,CAAC,CAAC,IAAI,aAAa,IAAI,aAAa,KAAK,QAAQ,CAAC,IAAI,EAAE;QACxD,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IAElB,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnB,WAAW,CAAC,GAAG,KAAK,YAAY,CAAC,CAAC;QAClC,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,GAAG,QAAQ,CAAC,OAAO,IAAI,cAAc,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAChG,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,aAAa,CAAC;IAChD,MAAM,MAAM,GAAG,IAAI,KAAK,QAAQ,CAAC;IACjC,WAAW,CAAC,GAAG,KAAK,MAAM,IAAI,EAAE,CAAC,CAAC;IAElC,MAAM,WAAW,GAAG,MAAM,IAAI,QAAQ,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;IACxF,IAAI,cAA8E,CAAC;IACnF,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvF,IAAI,WAAW,EAAE,CAAC;QACjB,QAAQ,CAAC,wBAAwB,CAAC,CAAC;QACnC,cAAc,GAAG,MAAM,sBAAsB,CAAC,GAAG,EAAE,GAAG,SAAS,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACpF,qBAAqB,GAAG,cAAc,CAAC,OAAO,CAAC;QAC/C,QAAQ,CAAC,cAAc,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9C,IAAI,MAAM,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YAClC,QAAQ,CAAC,0BAA0B,QAAQ,CAAC,SAAS,IAAI,CAAC,CAAC;YAC3D,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,CAAC,6EAA6E,CAAC,CAAC;IACzF,CAAC;IACD,MAAM,MAAM,GAAG,cAAc,EAAE,IAAI,IAAI,GAAG,CAAC;IAE3C,IAAI,CAAC;QACJ,QAAQ,CAAC,wBAAwB,CAAC,CAAC;QACnC,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,CAAC,aAAa,QAAQ,CAAC,WAAW,IAAI,OAAO,GAAG,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACP,QAAQ,CAAC,kDAAkD,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,uBAAuB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrF,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;aACd,CAAC,EACF,EAAE,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,YAAY,EAAE,CACvD;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,mBAAmB,cAAc,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,OAAO,OAAO,CAAC,MAAM,EAAE,CAC1F,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;QAED,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAC5B,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAE3F,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,QAAQ,CAAC,kBAAkB,CAAC,CAAC;gBAC7B,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,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC;oBAC1F,QAAQ,CAAC,GAAG,WAAW,MAAM,IAAI,EAAE,CAAC,CAAC;gBACtC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,QAAQ,CAAC,IAAI,CAAC;wBACb,OAAO,EAAE,aAAa;wBACtB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB;qBAC1E,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC;QACF,CAAC;QAED,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,GAAG,CAAC;QAChE,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,cAAc,QAAQ,CAAC,MAAM,uBAAuB,CAAC,CAAC;YAChE,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;QACtB,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAC/C,WAAW,CAAC,GAAG,IAAI,IAAI,KAAK,KAAK,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAEhE,OAAO;YACN,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,QAAQ,CAAC,IAAI;YACvB,MAAM,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC;YAC7B,QAAQ;YACR,UAAU;SACV,CAAC;IACH,CAAC;YAAS,CAAC;QACV,IAAI,cAAc,EAAE,CAAC;YACpB,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QAChC,CAAC;QACD,MAAM,cAAc,EAAE,OAAO,EAAE,CAAC;QAChC,IAAI,qBAAqB,KAAK,cAAc,EAAE,OAAO,EAAE,CAAC;YACvD,qBAAqB,GAAG,SAAS,CAAC;QACnC,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,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC;SAC1E,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,OAYlC;IACA,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IACjF,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,SAAS,KAAK,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QAClF,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;SAC3B,CAAC,CACF,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"run-suite.js","sourceRoot":"","sources":["../src/run-suite.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ export declare function colorEnabled(): boolean;
2
+ /** Truncate long temp/session paths to `…/last` or `…/parent/last`. */
3
+ export declare function truncatePath(path: string): string;
4
+ /** Word-wrap text at `cols` without breaking words when possible. */
5
+ export declare function wrapText(text: string, cols?: number): string[];
6
+ export interface JudgeVerdictDisplay {
7
+ id: string;
8
+ question: string;
9
+ pass: boolean;
10
+ rationale: string;
11
+ }
12
+ export interface RubricFailureDisplay {
13
+ matcher: string;
14
+ message: string;
15
+ }
16
+ export interface ScenarioVerdictOptions {
17
+ passed: boolean;
18
+ index?: number;
19
+ total?: number;
20
+ name: string;
21
+ durationMs: number;
22
+ judgeVerdicts?: JudgeVerdictDisplay[];
23
+ rubricFailures?: RubricFailureDisplay[];
24
+ }
25
+ export declare function formatDurationLabel(ms: number): string;
26
+ export declare const theme: {
27
+ suiteHeader(name: string, host: string, count: number): string;
28
+ scenarioTitle(index: number, total: number, name: string, host: string): string;
29
+ scenarioLabel(name: string, host?: string): string;
30
+ phaseTree(prefix: "├─" | "└─" | "│ ", message: string): string;
31
+ path(p: string): string;
32
+ basename(p: string): string;
33
+ duration(label: string): string;
34
+ phaseDim(message: string): string;
35
+ statusCompleted(status: string): string;
36
+ tip(message: string): string;
37
+ warn(message: string): string;
38
+ banner(): string;
39
+ bannerDetail(message: string): string;
40
+ bannerSession(path: string): string;
41
+ summary(suite: string, passed: number, failed: number, skipped: number): string;
42
+ failedScenariosHeader(): string;
43
+ failedScenarioName(name: string): string;
44
+ verboseFailure(matcher: string, message: string): string;
45
+ judgePhase(count: number): string;
46
+ isolationNote(): string;
47
+ skipped(label: string): string;
48
+ scenarioVerdict(options: ScenarioVerdictOptions): string[];
49
+ };
50
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAKA,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED,uEAAuE;AACvE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CASjD;AAED,qEAAqE;AACrE,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,SAAsB,GAAG,MAAM,EAAE,CAkB3E;AAED,MAAM,WAAW,mBAAmB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACtC,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACtC,cAAc,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACxC;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAKtD;AAMD,eAAO,MAAM,KAAK;IACjB,WAAW,OAAO,MAAM,QAAQ,MAAM,SAAS,MAAM,GAAG,MAAM;IAK9D,aAAa,QACL,MAAM,SACN,MAAM,QACP,MAAM,QACN,MAAM,GACV,MAAM;IAIT,aAAa,OAAO,MAAM,SAAS,MAAM,GAAG,MAAM;IAMlD,SAAS,SAAS,IAAI,GAAG,IAAI,GAAG,MAAM,WAAW,MAAM,GAAG,MAAM;IAIhE,IAAI,IAAI,MAAM,GAAG,MAAM;IAIvB,QAAQ,IAAI,MAAM,GAAG,MAAM;IAI3B,QAAQ,QAAQ,MAAM,GAAG,MAAM;IAI/B,QAAQ,UAAU,MAAM,GAAG,MAAM;IAIjC,eAAe,SAAS,MAAM,GAAG,MAAM;IAIvC,GAAG,UAAU,MAAM,GAAG,MAAM;IAI5B,IAAI,UAAU,MAAM,GAAG,MAAM;IAI7B,MAAM,IAAI,MAAM;IAIhB,YAAY,UAAU,MAAM,GAAG,MAAM;IAIrC,aAAa,OAAO,MAAM,GAAG,MAAM;IAInC,OAAO,QACC,MAAM,UACL,MAAM,UACN,MAAM,WACL,MAAM,GACb,MAAM;IAYT,qBAAqB,IAAI,MAAM;IAI/B,kBAAkB,OAAO,MAAM,GAAG,MAAM;IAIxC,cAAc,UAAU,MAAM,WAAW,MAAM,GAAG,MAAM;IAIxD,UAAU,QAAQ,MAAM,GAAG,MAAM;IAIjC,aAAa,IAAI,MAAM;IAIvB,OAAO,QAAQ,MAAM,GAAG,MAAM;IAI9B,eAAe,UAAU,sBAAsB,GAAG,MAAM,EAAE;CAqC1D,CAAC"}
package/dist/theme.js ADDED
@@ -0,0 +1,151 @@
1
+ import { basename } from "node:path";
2
+ import chalk from "chalk";
3
+ const RATIONALE_WRAP_COLS = 72;
4
+ export function colorEnabled() {
5
+ return chalk.level > 0;
6
+ }
7
+ /** Truncate long temp/session paths to `…/last` or `…/parent/last`. */
8
+ export function truncatePath(path) {
9
+ if (process.env.AGENT_TEST_VERBOSE_PATHS === "1") {
10
+ return path;
11
+ }
12
+ const parts = path.split("/").filter(Boolean);
13
+ if (parts.length <= 2) {
14
+ return path;
15
+ }
16
+ return `…/${parts.slice(-2).join("/")}`;
17
+ }
18
+ /** Word-wrap text at `cols` without breaking words when possible. */
19
+ export function wrapText(text, cols = RATIONALE_WRAP_COLS) {
20
+ const words = text.trim().split(/\s+/).filter(Boolean);
21
+ if (words.length === 0) {
22
+ return [];
23
+ }
24
+ const lines = [];
25
+ let current = words[0] ?? "";
26
+ for (let i = 1; i < words.length; i++) {
27
+ const word = words[i] ?? "";
28
+ if (`${current} ${word}`.length <= cols) {
29
+ current = `${current} ${word}`;
30
+ }
31
+ else {
32
+ lines.push(current);
33
+ current = word;
34
+ }
35
+ }
36
+ lines.push(current);
37
+ return lines;
38
+ }
39
+ export function formatDurationLabel(ms) {
40
+ if (ms < 1000) {
41
+ return `${Math.round(ms)}ms`;
42
+ }
43
+ return `${(ms / 1000).toFixed(1)}s`;
44
+ }
45
+ function criterionLabel(count) {
46
+ return count === 1 ? "1 criterion" : `${count} criteria`;
47
+ }
48
+ export const theme = {
49
+ suiteHeader(name, host, count) {
50
+ const scenarios = count === 1 ? "1 scenario" : `${count} scenarios`;
51
+ return `${chalk.bold.cyan(name)}${chalk.dim(` (${host})`)} ${chalk.dim(scenarios)}`;
52
+ },
53
+ scenarioTitle(index, total, name, host) {
54
+ return `${chalk.bold(`[${index}/${total}]`)} ${chalk.bold.white(name)}${chalk.dim(` (${host})`)}`;
55
+ },
56
+ scenarioLabel(name, host) {
57
+ return host
58
+ ? `${chalk.bold.white(name)}${chalk.dim(` (${host})`)}`
59
+ : chalk.bold.white(name);
60
+ },
61
+ phaseTree(prefix, message) {
62
+ return ` ${chalk.dim(prefix)} ${message}`;
63
+ },
64
+ path(p) {
65
+ return chalk.cyan(truncatePath(p));
66
+ },
67
+ basename(p) {
68
+ return chalk.cyan(basename(p));
69
+ },
70
+ duration(label) {
71
+ return chalk.yellow(label);
72
+ },
73
+ phaseDim(message) {
74
+ return chalk.dim(message);
75
+ },
76
+ statusCompleted(status) {
77
+ return status === "completed" ? chalk.green(status) : chalk.red(status);
78
+ },
79
+ tip(message) {
80
+ return chalk.dim.italic(message);
81
+ },
82
+ warn(message) {
83
+ return `${chalk.yellow("⚠")} ${chalk.yellow(message)}`;
84
+ },
85
+ banner() {
86
+ return `${chalk.bold.cyan("agent-test")} ${chalk.dim("live dogfood")}`;
87
+ },
88
+ bannerDetail(message) {
89
+ return ` ${chalk.dim(message)}`;
90
+ },
91
+ bannerSession(path) {
92
+ return ` ${chalk.dim("session")} ${chalk.cyan(truncatePath(path))}`;
93
+ },
94
+ summary(suite, passed, failed, skipped) {
95
+ const parts = [
96
+ `${chalk.bold.cyan(suite)}:`,
97
+ chalk.green(`${passed} passed`),
98
+ failed > 0
99
+ ? chalk.red(`${failed} failed`)
100
+ : chalk.dim(`${failed} failed`),
101
+ chalk.dim(`${skipped} skipped`),
102
+ ];
103
+ return parts.join(" ");
104
+ },
105
+ failedScenariosHeader() {
106
+ return chalk.dim("Failed scenarios:");
107
+ },
108
+ failedScenarioName(name) {
109
+ return ` ${chalk.red("✗")} ${name}`;
110
+ },
111
+ verboseFailure(matcher, message) {
112
+ return ` ${chalk.dim(matcher)} ${message}`;
113
+ },
114
+ judgePhase(count) {
115
+ return `LLM judge ${chalk.dim(`(${criterionLabel(count)})`)}…`;
116
+ },
117
+ isolationNote() {
118
+ return chalk.dim.italic("live isolation: one subprocess per scenario");
119
+ },
120
+ skipped(label) {
121
+ return `${chalk.dim(label)} — ${chalk.dim("skipped")}`;
122
+ },
123
+ scenarioVerdict(options) {
124
+ const status = options.passed
125
+ ? chalk.bold.green("PASS")
126
+ : chalk.bold.red("FAIL");
127
+ const counter = options.index !== undefined && options.total !== undefined
128
+ ? `[${options.index}/${options.total}] `
129
+ : "";
130
+ const duration = chalk.yellow(`(${formatDurationLabel(options.durationMs)})`);
131
+ const lines = [
132
+ ` ${chalk.dim("│")}`,
133
+ ` ${chalk.dim("│")} ${status} ${counter}${chalk.bold.white(options.name)} ${duration}`,
134
+ ];
135
+ for (const verdict of options.judgeVerdicts ?? []) {
136
+ const color = verdict.pass ? chalk.green : chalk.red;
137
+ lines.push(` ${chalk.dim("│")} ${chalk.dim("judge")} ${chalk.dim(verdict.question)}`);
138
+ for (const wrapped of wrapText(verdict.rationale)) {
139
+ lines.push(` ${chalk.dim("│")} ${color(wrapped)}`);
140
+ }
141
+ }
142
+ for (const failure of options.rubricFailures ?? []) {
143
+ lines.push(` ${chalk.dim("│")} ${chalk.yellow("rubric")} ${chalk.dim(failure.matcher)}`);
144
+ for (const wrapped of wrapText(failure.message)) {
145
+ lines.push(` ${chalk.dim("│")} ${chalk.yellow(wrapped)}`);
146
+ }
147
+ }
148
+ return lines;
149
+ },
150
+ };
151
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B,MAAM,UAAU,YAAY;IAC3B,OAAO,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;AACxB,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,YAAY,CAAC,IAAY;IACxC,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,GAAG,EAAE,CAAC;QAClD,OAAO,IAAI,CAAC;IACb,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACzC,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,IAAI,GAAG,mBAAmB;IAChE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACX,CAAC;IACD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,GAAG,OAAO,IAAI,IAAI,EAAE,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACzC,OAAO,GAAG,GAAG,OAAO,IAAI,IAAI,EAAE,CAAC;QAChC,CAAC;aAAM,CAAC;YACP,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpB,OAAO,GAAG,IAAI,CAAC;QAChB,CAAC;IACF,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,OAAO,KAAK,CAAC;AACd,CAAC;AAwBD,MAAM,UAAU,mBAAmB,CAAC,EAAU;IAC7C,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;QACf,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC;IAC9B,CAAC;IACD,OAAO,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AACrC,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACpC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,MAAM,KAAK,GAAG;IACpB,WAAW,CAAC,IAAY,EAAE,IAAY,EAAE,KAAa;QACpD,MAAM,SAAS,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,KAAK,YAAY,CAAC;QACpE,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;IACtF,CAAC;IAED,aAAa,CACZ,KAAa,EACb,KAAa,EACb,IAAY,EACZ,IAAY;QAEZ,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,EAAE,CAAC;IACnG,CAAC;IAED,aAAa,CAAC,IAAY,EAAE,IAAa;QACxC,OAAO,IAAI;YACV,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,EAAE;YACvD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,SAAS,CAAC,MAA4B,EAAE,OAAe;QACtD,OAAO,KAAK,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC,CAAS;QACb,OAAO,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,QAAQ,CAAC,CAAS;QACjB,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,QAAQ,CAAC,KAAa;QACrB,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,QAAQ,CAAC,OAAe;QACvB,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,eAAe,CAAC,MAAc;QAC7B,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACzE,CAAC;IAED,GAAG,CAAC,OAAe;QAClB,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,CAAC,OAAe;QACnB,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;IACxD,CAAC;IAED,MAAM;QACL,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;IACxE,CAAC;IAED,YAAY,CAAC,OAAe;QAC3B,OAAO,KAAK,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;IAClC,CAAC;IAED,aAAa,CAAC,IAAY;QACzB,OAAO,KAAK,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;IACvE,CAAC;IAED,OAAO,CACN,KAAa,EACb,MAAc,EACd,MAAc,EACd,OAAe;QAEf,MAAM,KAAK,GAAG;YACb,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG;YAC5B,KAAK,CAAC,KAAK,CAAC,GAAG,MAAM,SAAS,CAAC;YAC/B,MAAM,GAAG,CAAC;gBACT,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,SAAS,CAAC;gBAC/B,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,SAAS,CAAC;YAChC,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,UAAU,CAAC;SAC/B,CAAC;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,qBAAqB;QACpB,OAAO,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IAED,kBAAkB,CAAC,IAAY;QAC9B,OAAO,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IACtC,CAAC;IAED,cAAc,CAAC,OAAe,EAAE,OAAe;QAC9C,OAAO,SAAS,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,OAAO,EAAE,CAAC;IAClD,CAAC;IAED,UAAU,CAAC,KAAa;QACvB,OAAO,aAAa,KAAK,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;IAChE,CAAC;IAED,aAAa;QACZ,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,6CAA6C,CAAC,CAAC;IACxE,CAAC;IAED,OAAO,CAAC,KAAa;QACpB,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;IACxD,CAAC;IAED,eAAe,CAAC,OAA+B;QAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM;YAC5B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YAC1B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1B,MAAM,OAAO,GACZ,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YACzD,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI;YACxC,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAC5B,IAAI,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAC9C,CAAC;QACF,MAAM,KAAK,GAAa;YACvB,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACrB,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,MAAM,KAAK,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE;SAC1F,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC;YACnD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;YACrD,KAAK,CAAC,IAAI,CACT,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAC9E,CAAC;YACF,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBACnD,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC/D,CAAC;QACF,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC;YACpD,KAAK,CAAC,IAAI,CACT,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CACjF,CAAC;YACF,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjD,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACtE,CAAC;QACF,CAAC;QAED,OAAO,KAAK,CAAC;IACd,CAAC;CACD,CAAC"}
package/dist/types.d.ts CHANGED
@@ -46,6 +46,12 @@ export interface AssertionFailure {
46
46
  matcher: string;
47
47
  message: string;
48
48
  }
49
+ export interface JudgeVerdictResult {
50
+ id: string;
51
+ question: string;
52
+ pass: boolean;
53
+ rationale: string;
54
+ }
49
55
  export interface ScenarioResult {
50
56
  suite: string;
51
57
  scenario: string;
@@ -53,6 +59,8 @@ export interface ScenarioResult {
53
59
  failures: AssertionFailure[];
54
60
  skipped?: boolean;
55
61
  durationMs: number;
62
+ /** LLM judge verdicts when judge criteria were evaluated. */
63
+ judgeVerdicts?: JudgeVerdictResult[];
56
64
  }
57
65
  export interface SuiteRunReport {
58
66
  suite: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhG,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzE,MAAM,WAAW,cAAc;IAC9B,IAAI,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACjC,kGAAkG;IAClG,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,qFAAqF;IACrF,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;IACzD,4DAA4D;IAC5D,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,yDAAyD;IACzD,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE;QACV,IAAI,CAAC,EAAE,SAAS,CAAC;QACjB,OAAO,CAAC,EAAE,cAAc,CAAC;QACzB,wEAAwE;QACxE,MAAM,CAAC,EAAE,mBAAmB,CAAC;KAC7B,CAAC;IACF,SAAS,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,cAAc,EAAE,CAAC;CAC1B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,SAAS,EACT,cAAc,EACd,mBAAmB,EACnB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzE,MAAM,WAAW,cAAc;IAC9B,IAAI,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACjC,kGAAkG;IAClG,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,qFAAqF;IACrF,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;IACzD,4DAA4D;IAC5D,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,yDAAyD;IACzD,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE;QACV,IAAI,CAAC,EAAE,SAAS,CAAC;QACjB,OAAO,CAAC,EAAE,cAAc,CAAC;QACzB,wEAAwE;QACxE,MAAM,CAAC,EAAE,mBAAmB,CAAC;KAC7B,CAAC;IACF,SAAS,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,cAAc;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,cAAc,EAAE,CAAC;CAC1B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@post-print/agent-test",
3
- "version": "0.1.4",
3
+ "version": "0.1.6",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "agent-test": "./dist/cli.js"
@@ -23,7 +23,8 @@
23
23
  "clean": "rm -rf dist tsconfig.tsbuildinfo"
24
24
  },
25
25
  "dependencies": {
26
- "@post-print/agent-harness": "0.1.4"
26
+ "@post-print/agent-harness": "0.1.6",
27
+ "chalk": "5"
27
28
  },
28
29
  "devDependencies": {
29
30
  "@types/node": "^26.1.1",