@post-print/agent-test 0.3.3 → 0.3.5

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.
Files changed (106) hide show
  1. package/README.md +126 -157
  2. package/dist/check.d.ts +38 -0
  3. package/dist/check.d.ts.map +1 -0
  4. package/dist/check.js +169 -0
  5. package/dist/check.js.map +1 -0
  6. package/dist/cli.d.ts +12 -14
  7. package/dist/cli.d.ts.map +1 -1
  8. package/dist/cli.js +342 -366
  9. package/dist/cli.js.map +1 -1
  10. package/dist/compare-scenario.d.ts +33 -0
  11. package/dist/compare-scenario.d.ts.map +1 -0
  12. package/dist/compare-scenario.js +128 -0
  13. package/dist/compare-scenario.js.map +1 -0
  14. package/dist/debug-bundle.d.ts +2 -2
  15. package/dist/debug-bundle.d.ts.map +1 -1
  16. package/dist/debug-bundle.js +12 -12
  17. package/dist/debug-bundle.js.map +1 -1
  18. package/dist/doctor.d.ts +6 -1
  19. package/dist/doctor.d.ts.map +1 -1
  20. package/dist/doctor.js +136 -14
  21. package/dist/doctor.js.map +1 -1
  22. package/dist/expect.d.ts +6 -5
  23. package/dist/expect.d.ts.map +1 -1
  24. package/dist/expect.js +67 -57
  25. package/dist/expect.js.map +1 -1
  26. package/dist/host-log.d.ts +17 -0
  27. package/dist/host-log.d.ts.map +1 -0
  28. package/dist/host-log.js +154 -0
  29. package/dist/host-log.js.map +1 -0
  30. package/dist/hosts.d.ts +22 -0
  31. package/dist/hosts.d.ts.map +1 -0
  32. package/dist/hosts.js +84 -0
  33. package/dist/hosts.js.map +1 -0
  34. package/dist/html-report.d.ts +0 -13
  35. package/dist/html-report.d.ts.map +1 -1
  36. package/dist/html-report.js +381 -318
  37. package/dist/html-report.js.map +1 -1
  38. package/dist/index.d.ts +15 -8
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +13 -7
  41. package/dist/index.js.map +1 -1
  42. package/dist/live-isolation.d.ts +11 -5
  43. package/dist/live-isolation.d.ts.map +1 -1
  44. package/dist/live-isolation.js +32 -14
  45. package/dist/live-isolation.js.map +1 -1
  46. package/dist/load-adapters.d.ts +13 -0
  47. package/dist/load-adapters.d.ts.map +1 -0
  48. package/dist/load-adapters.js +76 -0
  49. package/dist/load-adapters.js.map +1 -0
  50. package/dist/load-suite.d.ts.map +1 -1
  51. package/dist/load-suite.js +16 -0
  52. package/dist/load-suite.js.map +1 -1
  53. package/dist/mcp-config.d.ts +8 -0
  54. package/dist/mcp-config.d.ts.map +1 -1
  55. package/dist/mcp-config.js +46 -0
  56. package/dist/mcp-config.js.map +1 -1
  57. package/dist/preflight.d.ts +2 -2
  58. package/dist/preflight.d.ts.map +1 -1
  59. package/dist/preflight.js +4 -4
  60. package/dist/preflight.js.map +1 -1
  61. package/dist/progress.d.ts +7 -0
  62. package/dist/progress.d.ts.map +1 -1
  63. package/dist/progress.js +39 -9
  64. package/dist/progress.js.map +1 -1
  65. package/dist/record-trace.d.ts +11 -20
  66. package/dist/record-trace.d.ts.map +1 -1
  67. package/dist/record-trace.js +10 -57
  68. package/dist/record-trace.js.map +1 -1
  69. package/dist/report-preview-server.d.ts +2 -0
  70. package/dist/report-preview-server.d.ts.map +1 -0
  71. package/dist/report-preview-server.js +24 -0
  72. package/dist/report-preview-server.js.map +1 -0
  73. package/dist/report-preview.d.ts +11 -0
  74. package/dist/report-preview.d.ts.map +1 -0
  75. package/dist/report-preview.js +161 -0
  76. package/dist/report-preview.js.map +1 -0
  77. package/dist/run-suite.d.ts +62 -11
  78. package/dist/run-suite.d.ts.map +1 -1
  79. package/dist/run-suite.js +697 -206
  80. package/dist/run-suite.js.map +1 -1
  81. package/dist/scenario-story.d.ts +41 -0
  82. package/dist/scenario-story.d.ts.map +1 -0
  83. package/dist/scenario-story.js +198 -0
  84. package/dist/scenario-story.js.map +1 -0
  85. package/dist/suite-summary.d.ts +2 -0
  86. package/dist/suite-summary.d.ts.map +1 -1
  87. package/dist/suite-summary.js +70 -22
  88. package/dist/suite-summary.js.map +1 -1
  89. package/dist/theme.d.ts +29 -5
  90. package/dist/theme.d.ts.map +1 -1
  91. package/dist/theme.js +204 -45
  92. package/dist/theme.js.map +1 -1
  93. package/dist/types.d.ts +107 -24
  94. package/dist/types.d.ts.map +1 -1
  95. package/dist/validate-seeds.d.ts.map +1 -1
  96. package/dist/validate-seeds.js +21 -6
  97. package/dist/validate-seeds.js.map +1 -1
  98. package/dist/validate-suite.d.ts +3 -1
  99. package/dist/validate-suite.d.ts.map +1 -1
  100. package/dist/validate-suite.js +256 -22
  101. package/dist/validate-suite.js.map +1 -1
  102. package/package.json +5 -5
  103. package/dist/compare.d.ts +0 -79
  104. package/dist/compare.d.ts.map +0 -1
  105. package/dist/compare.js +0 -232
  106. package/dist/compare.js.map +0 -1
package/dist/theme.d.ts CHANGED
@@ -1,9 +1,14 @@
1
+ import type { ScenarioStory } from "./types.js";
2
+ /** Word-wrap width for a line that already has `indent` visible columns. */
3
+ export declare function wrapColumnWidth(indent: number, columns?: number): number;
1
4
  /** Always enable ANSI color — agent-test is a human CLI, not a pipe filter. */
2
5
  export declare function configureCliColor(): void;
3
6
  export declare function colorEnabled(): boolean;
7
+ /** OSC-8 hyperlink. Cursor opens `http://` in the browser and `file://` in the editor. */
8
+ export declare function formatHyperlink(url: string, display: string): string;
4
9
  /**
5
- * Wrap a filesystem path in an OSC-8 `file://` hyperlink for clickable terminals
6
- * (Cursor, iTerm2, VS Code, etc.). Display text stays a plain path for copy-paste.
10
+ * Wrap a filesystem path in an OSC-8 `file://` hyperlink.
11
+ * Display text stays a plain path for copy-paste.
7
12
  */
8
13
  export declare function formatFileHyperlink(absolutePath: string, display?: string): string;
9
14
  /** Truncate long temp/session paths to `…/last` or `…/parent/last`. */
@@ -34,30 +39,49 @@ export interface ScenarioVerdictOptions {
34
39
  rubricFailures?: RubricFailureDisplay[];
35
40
  /** Primary failure category for the FAIL line. */
36
41
  failureCategory?: string;
42
+ /** Criteria and result lines. */
43
+ story?: ScenarioStory;
37
44
  /** Show evidence and full failure detail (--debug / AGENT_TEST_VERBOSE). */
38
45
  debug?: boolean;
39
46
  debugBundleDir?: string;
40
47
  }
48
+ export declare function formatTokenNumber(totalTokens: number): string;
41
49
  export declare function formatTokenCount(totalTokens: number): string;
50
+ export declare function formatFailureCategory(category?: string): string | undefined;
42
51
  export declare function formatDurationLabel(ms: number): string;
52
+ /** Elapsed clock for an in-flight agent. Tenths of a second. */
53
+ export declare function formatClock(ms: number): string;
54
+ /** Visible character count that skips CSI color sequences. */
55
+ export declare function visibleLength(text: string): number;
56
+ /** Keep a live clock line on one terminal row so `\r` can overwrite it. */
57
+ export declare function clipToColumns(text: string, columns: number): string;
43
58
  export declare const theme: {
44
59
  suiteHeader(name: string, host: string, count: number): string;
45
60
  scenarioTitle(index: number, total: number, name: string, host: string): string;
46
61
  scenarioLabel(name: string, host?: string): string;
47
- phaseTree(prefix: "├─" | "└─" | "│ ", message: string): string;
62
+ phaseTree(_prefix: "├─" | "└─" | "│ ", message: string): string;
63
+ hostLog(level: string, service: string, detail: string): string;
48
64
  path(p: string): string;
49
65
  basename(p: string): string;
50
66
  duration(label: string): string;
51
67
  phaseDim(message: string): string;
52
68
  phase(label: string, detail?: string): string;
69
+ agentClock(elapsedLabel: string, preview?: string): string;
70
+ liveTool(name: string, detail?: string): string;
53
71
  statusCompleted(status: string): string;
54
72
  tip(message: string): string;
55
- /** Tip line with a clickable file path (OSC-8 file:// hyperlink). */
56
- fileTip(label: string, absolutePath: string): string;
73
+ /**
74
+ * Tip line with a clickable label.
75
+ * `http://` stays visible so Cursor can open the browser.
76
+ * A filesystem path stays in the OSC-8 URL only.
77
+ */
78
+ fileTip(label: string, pathOrUrl: string): string;
57
79
  warn(message: string): string;
58
80
  banner(mode?: string): string;
59
81
  bannerDetail(message: string): string;
60
82
  bannerSession(path: string): string;
83
+ bannerHints(hints: string[]): string;
84
+ runSummary(text: string): string;
61
85
  summary(suite: string, passed: number, failed: number, skipped: number): string;
62
86
  failedScenariosHeader(): string;
63
87
  failedScenarioName(name: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"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"}
package/dist/theme.js CHANGED
@@ -1,7 +1,16 @@
1
1
  import { basename, join } from "node:path";
2
2
  import { pathToFileURL } from "node:url";
3
3
  import chalk from "chalk";
4
- const RATIONALE_WRAP_COLS = 72;
4
+ const FALLBACK_COLUMNS = 80;
5
+ const MIN_WRAP_COLS = 40;
6
+ const STORY_GUTTER = " ";
7
+ const STORY_LABEL_WIDTH = 12;
8
+ const STORY_INDENT = STORY_GUTTER.length + STORY_LABEL_WIDTH;
9
+ /** Word-wrap width for a line that already has `indent` visible columns. */
10
+ export function wrapColumnWidth(indent, columns = process.stdout.columns) {
11
+ const cols = typeof columns === "number" && columns > 0 ? columns : FALLBACK_COLUMNS;
12
+ return Math.max(MIN_WRAP_COLS, cols - indent);
13
+ }
5
14
  /** OSC 8 hyperlink: ESC ] 8 ; ; URL BEL text ESC ] 8 ; ; BEL */
6
15
  const OSC8_OPEN = "\u001b]8;;";
7
16
  const OSC8_CLOSE = "\u0007";
@@ -12,13 +21,16 @@ export function configureCliColor() {
12
21
  export function colorEnabled() {
13
22
  return chalk.level > 0;
14
23
  }
24
+ /** OSC-8 hyperlink. Cursor opens `http://` in the browser and `file://` in the editor. */
25
+ export function formatHyperlink(url, display) {
26
+ return `${OSC8_OPEN}${url}${OSC8_CLOSE}${display}${OSC8_OPEN}${OSC8_CLOSE}`;
27
+ }
15
28
  /**
16
- * Wrap a filesystem path in an OSC-8 `file://` hyperlink for clickable terminals
17
- * (Cursor, iTerm2, VS Code, etc.). Display text stays a plain path for copy-paste.
29
+ * Wrap a filesystem path in an OSC-8 `file://` hyperlink.
30
+ * Display text stays a plain path for copy-paste.
18
31
  */
19
32
  export function formatFileHyperlink(absolutePath, display = absolutePath) {
20
- const url = pathToFileURL(absolutePath).href;
21
- return `${OSC8_OPEN}${url}${OSC8_CLOSE}${display}${OSC8_OPEN}${OSC8_CLOSE}`;
33
+ return formatHyperlink(pathToFileURL(absolutePath).href, display);
22
34
  }
23
35
  /** Truncate long temp/session paths to `…/last` or `…/parent/last`. */
24
36
  export function truncatePath(path) {
@@ -34,7 +46,7 @@ export function truncatePath(path) {
34
46
  return `…/${parts.slice(-2).join("/")}`;
35
47
  }
36
48
  /** Word-wrap text at `cols` without breaking words when possible. */
37
- export function wrapText(text, cols = RATIONALE_WRAP_COLS) {
49
+ export function wrapText(text, cols = wrapColumnWidth(0)) {
38
50
  const words = text.trim().split(/\s+/).filter(Boolean);
39
51
  if (words.length === 0) {
40
52
  return [];
@@ -54,14 +66,31 @@ export function wrapText(text, cols = RATIONALE_WRAP_COLS) {
54
66
  lines.push(current);
55
67
  return lines;
56
68
  }
57
- export function formatTokenCount(totalTokens) {
69
+ export function formatTokenNumber(totalTokens) {
58
70
  if (totalTokens >= 1_000_000) {
59
- return `${(totalTokens / 1_000_000).toFixed(1)}M tok`;
71
+ return `${(totalTokens / 1_000_000).toFixed(1)}M`;
60
72
  }
61
73
  if (totalTokens >= 1000) {
62
- return `${(totalTokens / 1000).toFixed(1)}k tok`;
74
+ return `${(totalTokens / 1000).toFixed(1)}k`;
75
+ }
76
+ return String(totalTokens);
77
+ }
78
+ export function formatTokenCount(totalTokens) {
79
+ return `${formatTokenNumber(totalTokens)} tok`;
80
+ }
81
+ const FAILURE_CATEGORY_LABEL = {
82
+ rubric_miss: "rubric",
83
+ judge_infra: "judge infra",
84
+ judge_parse: "judge parse",
85
+ agent_runtime: "agent runtime",
86
+ worktree_leak: "worktree leak",
87
+ recording_error: "recording",
88
+ };
89
+ export function formatFailureCategory(category) {
90
+ if (!category) {
91
+ return undefined;
63
92
  }
64
- return `${totalTokens} tok`;
93
+ return FAILURE_CATEGORY_LABEL[category] ?? category.replaceAll("_", " ");
65
94
  }
66
95
  export function formatDurationLabel(ms) {
67
96
  if (ms < 1000) {
@@ -69,6 +98,53 @@ export function formatDurationLabel(ms) {
69
98
  }
70
99
  return `${(ms / 1000).toFixed(1)}s`;
71
100
  }
101
+ /** Elapsed clock for an in-flight agent. Tenths of a second. */
102
+ export function formatClock(ms) {
103
+ return `${Math.max(0, ms / 1000).toFixed(1)}s`;
104
+ }
105
+ /** Visible character count that skips CSI color sequences. */
106
+ export function visibleLength(text) {
107
+ let count = 0;
108
+ for (let index = 0; index < text.length; index++) {
109
+ if (text.charCodeAt(index) === 27) {
110
+ const end = text.indexOf("m", index);
111
+ if (end === -1) {
112
+ break;
113
+ }
114
+ index = end;
115
+ continue;
116
+ }
117
+ count += 1;
118
+ }
119
+ return count;
120
+ }
121
+ /** Keep a live clock line on one terminal row so `\r` can overwrite it. */
122
+ export function clipToColumns(text, columns) {
123
+ const cols = Math.max(20, columns);
124
+ if (visibleLength(text) <= cols) {
125
+ return text;
126
+ }
127
+ let count = 0;
128
+ let end = 0;
129
+ for (let index = 0; index < text.length; index++) {
130
+ if (text.charCodeAt(index) === 27) {
131
+ const seqEnd = text.indexOf("m", index);
132
+ if (seqEnd === -1) {
133
+ end = text.length;
134
+ break;
135
+ }
136
+ index = seqEnd;
137
+ end = index + 1;
138
+ continue;
139
+ }
140
+ if (count >= cols - 1) {
141
+ break;
142
+ }
143
+ count += 1;
144
+ end = index + 1;
145
+ }
146
+ return `${text.slice(0, end)}…`;
147
+ }
72
148
  function criterionLabel(count) {
73
149
  return count === 1 ? "1 criterion" : `${count} criteria`;
74
150
  }
@@ -78,13 +154,17 @@ export const theme = {
78
154
  return `${chalk.bold.cyan(name)} ${chalk.dim("·")} ${chalk.dim(host)} ${chalk.dim("·")} ${chalk.dim(scenarios)}`;
79
155
  },
80
156
  scenarioTitle(index, total, name, host) {
81
- return `${chalk.bold(`[${index}/${total}]`)} ${chalk.bold.white(name)} ${chalk.dim(`(${host})`)}`;
157
+ return `\n${chalk.bold(`[${index}/${total}]`)} ${chalk.bold.white(name)} ${chalk.dim(`(${host})`)}`;
82
158
  },
83
159
  scenarioLabel(name, host) {
84
160
  return host ? `${chalk.bold.white(name)} ${chalk.dim(`(${host})`)}` : chalk.bold.white(name);
85
161
  },
86
- phaseTree(prefix, message) {
87
- return ` ${chalk.dim(prefix)} ${message}`;
162
+ phaseTree(_prefix, message) {
163
+ return ` ${message}`;
164
+ },
165
+ hostLog(level, service, detail) {
166
+ const levelColor = level === "error" ? chalk.red : level === "warn" ? chalk.yellow : chalk.dim;
167
+ return ` ${chalk.dim("host")} ${levelColor(level.toUpperCase())} ${chalk.dim(service)} ${chalk.dim(detail)}`;
88
168
  },
89
169
  path(p) {
90
170
  return chalk.cyan(truncatePath(p));
@@ -104,15 +184,35 @@ export const theme = {
104
184
  }
105
185
  return `${chalk.dim(label)} ${detail}`;
106
186
  },
187
+ agentClock(elapsedLabel, preview) {
188
+ const clock = theme.phase("agent", theme.duration(elapsedLabel));
189
+ if (!preview) {
190
+ return clock;
191
+ }
192
+ return `${clock} ${chalk.dim(preview)}`;
193
+ },
194
+ liveTool(name, detail) {
195
+ if (!detail) {
196
+ return chalk.dim(name);
197
+ }
198
+ return `${chalk.dim(name)} ${chalk.cyan(detail)}`;
199
+ },
107
200
  statusCompleted(status) {
108
201
  return status === "completed" ? chalk.green(status) : chalk.red(status);
109
202
  },
110
203
  tip(message) {
111
204
  return chalk.dim.italic(message);
112
205
  },
113
- /** Tip line with a clickable file path (OSC-8 file:// hyperlink). */
114
- fileTip(label, absolutePath) {
115
- return theme.tip(`${label}: ${formatFileHyperlink(absolutePath)}`);
206
+ /**
207
+ * Tip line with a clickable label.
208
+ * `http://` stays visible so Cursor can open the browser.
209
+ * A filesystem path stays in the OSC-8 URL only.
210
+ */
211
+ fileTip(label, pathOrUrl) {
212
+ if (pathOrUrl.startsWith("http://") || pathOrUrl.startsWith("https://")) {
213
+ return theme.tip(`${formatHyperlink(pathOrUrl, label)} ${pathOrUrl}`);
214
+ }
215
+ return theme.tip(formatFileHyperlink(pathOrUrl, label));
116
216
  },
117
217
  warn(message) {
118
218
  return `${chalk.yellow("⚠")} ${chalk.yellow(message)}`;
@@ -121,10 +221,19 @@ export const theme = {
121
221
  return `${chalk.bold.cyan("agent-test")} ${chalk.dim(mode)}`;
122
222
  },
123
223
  bannerDetail(message) {
124
- return ` ${chalk.dim(message)}`;
224
+ return ` ${chalk.dim(message)}`;
125
225
  },
126
226
  bannerSession(path) {
127
- return ` ${chalk.dim("session")} ${chalk.cyan(truncatePath(path))}`;
227
+ return ` ${chalk.dim("session")} ${chalk.cyan(truncatePath(path))}`;
228
+ },
229
+ bannerHints(hints) {
230
+ return ` ${chalk.dim(hints.join(" · "))}`;
231
+ },
232
+ runSummary(text) {
233
+ return text
234
+ .split("\n")
235
+ .map((line) => (line.startsWith("failures") ? chalk.red(line) : chalk.dim(line)))
236
+ .join("\n");
128
237
  },
129
238
  summary(suite, passed, failed, skipped) {
130
239
  const parts = [
@@ -139,7 +248,7 @@ export const theme = {
139
248
  return chalk.dim("Failed scenarios:");
140
249
  },
141
250
  failedScenarioName(name) {
142
- return ` ${chalk.red("✗")} ${name}`;
251
+ return ` ${chalk.red("✗")} ${name}`;
143
252
  },
144
253
  verboseFailure(matcher, message, evidence, category) {
145
254
  const prefix = category ? `${chalk.dim(category)} ` : "";
@@ -164,45 +273,95 @@ export const theme = {
164
273
  scenarioVerdict(options) {
165
274
  const mark = options.passed ? chalk.bold.green("✓") : chalk.bold.red("✗");
166
275
  const status = options.passed ? chalk.bold.green("PASS") : chalk.bold.red("FAIL");
167
- const counter = options.index !== undefined && options.total !== undefined
168
- ? `[${options.index}/${options.total}] `
169
- : "";
170
- const duration = chalk.yellow(`(${formatDurationLabel(options.durationMs)})`);
276
+ const duration = chalk.yellow(formatDurationLabel(options.durationMs));
171
277
  const tokens = options.totalTokens !== undefined
172
278
  ? chalk.dim(` · ${formatTokenCount(options.totalTokens)}`)
173
279
  : "";
174
- const primaryCategory = !options.passed && options.failureCategory
175
- ? chalk.yellow(options.failureCategory)
280
+ const primaryCategory = !options.passed
281
+ ? formatFailureCategory(options.failureCategory)
176
282
  : undefined;
177
- const lines = [
178
- ` ${chalk.dim("")}`,
179
- primaryCategory
180
- ? ` ${chalk.dim("")} ${mark} ${status} ${primaryCategory} ${counter}${chalk.bold.white(options.name)} ${duration}${tokens}`
181
- : ` ${chalk.dim("")} ${mark} ${status} ${counter}${chalk.bold.white(options.name)} ${duration}${tokens}`,
182
- ];
183
- for (const verdict of options.judgeVerdicts ?? []) {
184
- const color = verdict.pass ? chalk.green : chalk.red;
185
- lines.push(` ${chalk.dim("│")} ${chalk.dim("judge")} ${chalk.dim(verdict.question)}`);
186
- for (const wrapped of wrapText(verdict.rationale)) {
187
- lines.push(` ${chalk.dim("")} ${color(wrapped)}`);
283
+ const category = primaryCategory ? `${chalk.yellow(primaryCategory)} ` : "";
284
+ const lines = ["", ` ${mark} ${status} ${category}${duration}${tokens}`, ""];
285
+ if (options.story) {
286
+ const criteria = storyLines("criteria", options.story.criteria);
287
+ const result = storyLines("result", options.story.result);
288
+ const verdict = storyLines("result", options.story.verdict, options.passed, {
289
+ continueLabel: result.length > 0,
290
+ });
291
+ lines.push(...criteria);
292
+ if (criteria.length > 0 && (result.length > 0 || verdict.length > 0)) {
293
+ lines.push("");
294
+ }
295
+ lines.push(...result);
296
+ if (result.length > 0 && verdict.length > 0) {
297
+ lines.push("");
298
+ }
299
+ lines.push(...verdict);
300
+ lines.push("");
301
+ if (options.debug) {
302
+ const evidenceCols = wrapColumnWidth(STORY_INDENT);
303
+ for (const failure of options.rubricFailures ?? []) {
304
+ if (!failure.evidence) {
305
+ continue;
306
+ }
307
+ for (const wrapped of wrapText(failure.evidence, evidenceCols)) {
308
+ lines.push(`${STORY_GUTTER}${" ".repeat(STORY_LABEL_WIDTH)}${chalk.dim(wrapped)}`);
309
+ }
310
+ }
188
311
  }
189
312
  }
190
- for (const failure of options.rubricFailures ?? []) {
191
- const category = failure.category ? chalk.yellow(failure.category) : chalk.yellow("rubric");
192
- lines.push(` ${chalk.dim("│")} ${category} ${chalk.dim(failure.matcher)}`);
193
- for (const wrapped of wrapText(failure.message)) {
194
- lines.push(` ${chalk.dim("")} ${chalk.yellow(wrapped)}`);
313
+ else {
314
+ const bodyCols = wrapColumnWidth(STORY_INDENT);
315
+ for (const verdict of options.judgeVerdicts ?? []) {
316
+ const color = verdict.pass ? chalk.green : chalk.red;
317
+ lines.push(`${STORY_GUTTER}${chalk.dim("judge".padEnd(STORY_LABEL_WIDTH))}${chalk.dim(verdict.question)}`);
318
+ for (const wrapped of wrapText(verdict.rationale, bodyCols)) {
319
+ lines.push(`${STORY_GUTTER}${" ".repeat(STORY_LABEL_WIDTH)}${color(wrapped)}`);
320
+ }
321
+ lines.push("");
195
322
  }
196
- if (options.debug && failure.evidence) {
197
- for (const wrapped of wrapText(failure.evidence)) {
198
- lines.push(` ${chalk.dim("│")} ${chalk.dim(wrapped)}`);
323
+ for (const failure of options.rubricFailures ?? []) {
324
+ const categoryLabel = formatFailureCategory(failure.category) ?? "rubric";
325
+ lines.push(`${STORY_GUTTER}${chalk.yellow(categoryLabel.padEnd(STORY_LABEL_WIDTH))}${chalk.dim(failure.matcher)}`);
326
+ for (const wrapped of wrapText(failure.message, bodyCols)) {
327
+ lines.push(`${STORY_GUTTER}${" ".repeat(STORY_LABEL_WIDTH)}${chalk.yellow(wrapped)}`);
328
+ }
329
+ if (options.debug && failure.evidence) {
330
+ for (const wrapped of wrapText(failure.evidence, bodyCols)) {
331
+ lines.push(`${STORY_GUTTER}${" ".repeat(STORY_LABEL_WIDTH)}${chalk.dim(wrapped)}`);
332
+ }
199
333
  }
334
+ lines.push("");
200
335
  }
201
336
  }
202
337
  if (options.debug && options.debugBundleDir) {
203
- lines.push(` ${chalk.dim("│")} ${chalk.dim("debug")} ${chalk.cyan(truncatePath(join(options.debugBundleDir, "transcript.md")))}`);
338
+ lines.push(` ${chalk.dim("debug")} ${chalk.cyan(truncatePath(join(options.debugBundleDir, "transcript.md")))}`);
204
339
  }
205
340
  return lines;
206
341
  },
207
342
  };
343
+ function storyLines(label, values, passed, options) {
344
+ if (values.length === 0) {
345
+ return [];
346
+ }
347
+ const lines = [];
348
+ const hang = " ".repeat(STORY_LABEL_WIDTH);
349
+ const cols = wrapColumnWidth(STORY_INDENT);
350
+ const continueLabel = options?.continueLabel === true;
351
+ for (const [index, value] of values.entries()) {
352
+ if (index > 0 && passed !== undefined) {
353
+ lines.push("");
354
+ }
355
+ const wrapped = wrapText(value, cols);
356
+ const body = wrapped.length > 0 ? wrapped : [value];
357
+ for (const [wrapIndex, part] of body.entries()) {
358
+ const prefix = index === 0 && wrapIndex === 0 && !continueLabel
359
+ ? chalk.dim(label.padEnd(STORY_LABEL_WIDTH))
360
+ : hang;
361
+ const color = passed === false ? chalk.yellow : passed === true ? chalk.green : (text) => text;
362
+ lines.push(`${STORY_GUTTER}${prefix}${color(part)}`);
363
+ }
364
+ }
365
+ return lines;
366
+ }
208
367
  //# sourceMappingURL=theme.js.map
package/dist/theme.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"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"}