@post-print/agent-test 0.3.12 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/README.md +18 -4
  2. package/dist/cli.d.ts +9 -0
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +53 -3
  5. package/dist/cli.js.map +1 -1
  6. package/dist/command-allowlist.d.ts +9 -0
  7. package/dist/command-allowlist.d.ts.map +1 -0
  8. package/dist/command-allowlist.js +29 -0
  9. package/dist/command-allowlist.js.map +1 -0
  10. package/dist/compare-scenario.d.ts +14 -18
  11. package/dist/compare-scenario.d.ts.map +1 -1
  12. package/dist/compare-scenario.js +146 -257
  13. package/dist/compare-scenario.js.map +1 -1
  14. package/dist/debug-bundle.d.ts.map +1 -1
  15. package/dist/debug-bundle.js +2 -0
  16. package/dist/debug-bundle.js.map +1 -1
  17. package/dist/expect.d.ts +3 -0
  18. package/dist/expect.d.ts.map +1 -1
  19. package/dist/expect.js +36 -0
  20. package/dist/expect.js.map +1 -1
  21. package/dist/html-report.d.ts +1 -0
  22. package/dist/html-report.d.ts.map +1 -1
  23. package/dist/html-report.js +194 -38
  24. package/dist/html-report.js.map +1 -1
  25. package/dist/index.d.ts +8 -3
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +7 -2
  28. package/dist/index.js.map +1 -1
  29. package/dist/live-isolation.d.ts +8 -1
  30. package/dist/live-isolation.d.ts.map +1 -1
  31. package/dist/live-isolation.js +96 -8
  32. package/dist/live-isolation.js.map +1 -1
  33. package/dist/record-trace.d.ts +2 -2
  34. package/dist/record-trace.d.ts.map +1 -1
  35. package/dist/record-trace.js +6 -4
  36. package/dist/record-trace.js.map +1 -1
  37. package/dist/run-suite.d.ts +9 -1
  38. package/dist/run-suite.d.ts.map +1 -1
  39. package/dist/run-suite.js +190 -58
  40. package/dist/run-suite.js.map +1 -1
  41. package/dist/scenario-story.d.ts +4 -3
  42. package/dist/scenario-story.d.ts.map +1 -1
  43. package/dist/scenario-story.js +54 -71
  44. package/dist/scenario-story.js.map +1 -1
  45. package/dist/scenario-usage.d.ts.map +1 -1
  46. package/dist/scenario-usage.js +2 -3
  47. package/dist/scenario-usage.js.map +1 -1
  48. package/dist/types.d.ts +38 -22
  49. package/dist/types.d.ts.map +1 -1
  50. package/dist/validate-suite.d.ts.map +1 -1
  51. package/dist/validate-suite.js +65 -38
  52. package/dist/validate-suite.js.map +1 -1
  53. package/dist/viewer/catalog.d.ts +53 -0
  54. package/dist/viewer/catalog.d.ts.map +1 -0
  55. package/dist/viewer/catalog.js +116 -0
  56. package/dist/viewer/catalog.js.map +1 -0
  57. package/dist/viewer/cli.d.ts +17 -0
  58. package/dist/viewer/cli.d.ts.map +1 -0
  59. package/dist/viewer/cli.js +38 -0
  60. package/dist/viewer/cli.js.map +1 -0
  61. package/dist/viewer/compare-metrics.d.ts +30 -0
  62. package/dist/viewer/compare-metrics.d.ts.map +1 -0
  63. package/dist/viewer/compare-metrics.js +102 -0
  64. package/dist/viewer/compare-metrics.js.map +1 -0
  65. package/dist/viewer/context-files.d.ts +8 -0
  66. package/dist/viewer/context-files.d.ts.map +1 -0
  67. package/dist/viewer/context-files.js +56 -0
  68. package/dist/viewer/context-files.js.map +1 -0
  69. package/dist/viewer/emit.d.ts +7 -0
  70. package/dist/viewer/emit.d.ts.map +1 -0
  71. package/dist/viewer/emit.js +25 -0
  72. package/dist/viewer/emit.js.map +1 -0
  73. package/dist/viewer/events.d.ts +75 -0
  74. package/dist/viewer/events.d.ts.map +1 -0
  75. package/dist/viewer/events.js +47 -0
  76. package/dist/viewer/events.js.map +1 -0
  77. package/dist/viewer/live-runner.d.ts +20 -0
  78. package/dist/viewer/live-runner.d.ts.map +1 -0
  79. package/dist/viewer/live-runner.js +102 -0
  80. package/dist/viewer/live-runner.js.map +1 -0
  81. package/dist/viewer/page.d.ts +3 -0
  82. package/dist/viewer/page.d.ts.map +1 -0
  83. package/dist/viewer/page.js +1664 -0
  84. package/dist/viewer/page.js.map +1 -0
  85. package/dist/viewer/run-controller.d.ts +27 -0
  86. package/dist/viewer/run-controller.d.ts.map +1 -0
  87. package/dist/viewer/run-controller.js +154 -0
  88. package/dist/viewer/run-controller.js.map +1 -0
  89. package/dist/viewer/server.d.ts +16 -0
  90. package/dist/viewer/server.d.ts.map +1 -0
  91. package/dist/viewer/server.js +154 -0
  92. package/dist/viewer/server.js.map +1 -0
  93. package/dist/worker-pool.d.ts +8 -0
  94. package/dist/worker-pool.d.ts.map +1 -0
  95. package/dist/worker-pool.js +26 -0
  96. package/dist/worker-pool.js.map +1 -0
  97. package/package.json +7 -5
@@ -1,9 +1,12 @@
1
+ import { resolvedTotalTokens } from "@post-print/agent-harness";
1
2
  import { assertionFailure } from "./failures.js";
2
3
  const RUBRIC_ARRAY_KEYS = [
3
4
  "must",
4
5
  "mustNot",
5
6
  "mustRun",
7
+ "allowedCommands",
6
8
  "mustCallTool",
9
+ "mustCallToolsInOrder",
7
10
  "mustNotCallTool",
8
11
  "mustReadPath",
9
12
  "mustNotReadPath",
@@ -11,11 +14,9 @@ const RUBRIC_ARRAY_KEYS = [
11
14
  "mustNotInvokeSkill",
12
15
  ];
13
16
  const COMPARE_ARM_ID_PATTERN = /^[a-z][a-z0-9_-]{0,63}$/;
14
- /** Append arm-only array checks. Keep the shared judge on the scenario rubric. */
15
17
  export function mergeArmRubric(base, overlay) {
16
- if (!overlay) {
18
+ if (!overlay)
17
19
  return base;
18
- }
19
20
  const merged = {
20
21
  ...base,
21
22
  tier: overlay.tier ?? base.tier,
@@ -26,127 +27,75 @@ export function mergeArmRubric(base, overlay) {
26
27
  };
27
28
  for (const key of RUBRIC_ARRAY_KEYS) {
28
29
  const extra = overlay[key];
29
- if (extra !== undefined) {
30
+ if (extra !== undefined)
30
31
  merged[key] = [...(base[key] ?? []), ...extra];
31
- }
32
32
  }
33
33
  return merged;
34
34
  }
35
35
  export function parseCompareArmId(value) {
36
- if (typeof value !== "string") {
36
+ if (typeof value !== "string")
37
37
  return undefined;
38
- }
39
38
  const id = value.trim();
40
39
  return COMPARE_ARM_ID_PATTERN.test(id) ? id : undefined;
41
40
  }
42
41
  export function compareArmLabel(arm, side) {
43
- const label = arm?.label?.trim();
44
- if (label) {
45
- return label;
46
- }
47
- if (side === "a") {
48
- return "control";
49
- }
50
- if (side === "b") {
51
- return "experimental";
52
- }
53
- return side;
42
+ return arm?.label?.trim() || (side === "a" ? "control" : side === "b" ? "experimental" : side);
54
43
  }
55
- /** Trim a description. Empty text becomes undefined. */
56
44
  export function plainDescription(value) {
57
- const text = value?.trim();
58
- return text ? text : undefined;
45
+ return value?.trim() || undefined;
59
46
  }
60
47
  export function compareArmDescription(arm) {
61
48
  return plainDescription(arm?.description);
62
49
  }
63
50
  export function resolveCompareArms(compare) {
64
- if (!compare) {
51
+ if (!compare)
65
52
  return [];
66
- }
67
- if (Array.isArray(compare.arms)) {
53
+ if (Array.isArray(compare.arms))
68
54
  return compare.arms
69
55
  .filter((arm) => typeof arm === "object" && arm !== null)
70
- .map((arm) => ({
71
- id: typeof arm.id === "string" ? arm.id.trim() : "",
72
- arm,
73
- }));
74
- }
56
+ .map((arm) => ({ id: typeof arm.id === "string" ? arm.id.trim() : "", arm }));
75
57
  const arms = [];
76
- if (compare.a && typeof compare.a === "object") {
58
+ if (compare.a && typeof compare.a === "object")
77
59
  arms.push({ id: "a", arm: compare.a });
78
- }
79
- if (compare.b && typeof compare.b === "object") {
60
+ if (compare.b && typeof compare.b === "object")
80
61
  arms.push({ id: "b", arm: compare.b });
81
- }
82
62
  return arms;
83
63
  }
84
64
  export function compareResultArms(result) {
85
- if (result.arms && result.arms.length > 0) {
86
- return result.arms;
87
- }
88
- const arms = [];
89
- if (result.a) {
90
- arms.push(result.a);
91
- }
92
- if (result.b) {
93
- arms.push(result.b);
94
- }
95
- return arms;
65
+ return result.arms.length > 0
66
+ ? result.arms
67
+ : [result.a, result.b].filter((arm) => arm !== undefined);
96
68
  }
97
69
  export function buildCompareResult(arms, gates) {
98
70
  return {
99
71
  arms,
100
72
  a: arms.find((arm) => arm.id === "a"),
101
73
  b: arms.find((arm) => arm.id === "b"),
102
- faster: gates?.faster,
103
- cheaper: gates?.cheaper,
74
+ gates,
104
75
  };
105
76
  }
106
- export function resolveCompareMetricPairs(gate, armIds) {
107
- if (gate === undefined) {
108
- return [];
109
- }
110
- if (typeof gate === "string") {
111
- if (armIds.length !== 2 || !armIds.includes(gate)) {
112
- return [];
113
- }
114
- const loser = armIds.find((id) => id !== gate);
115
- if (!loser) {
116
- return [];
117
- }
118
- return [{ winner: gate, loser }];
119
- }
120
- if (!Array.isArray(gate)) {
121
- return [];
122
- }
123
- return gate.filter((pair) => typeof pair === "object" &&
124
- pair !== null &&
125
- typeof pair.winner === "string" &&
126
- typeof pair.loser === "string");
127
- }
128
77
  export function compareArmTokens(arm) {
129
- const total = arm.trace?.usage?.totalTokens;
130
- return typeof total === "number" ? total : undefined;
78
+ return resolvedTotalTokens(arm.trace?.usage);
131
79
  }
132
- /** Assistant messages on the trace. One message is one agent turn after stream coalesce. */
133
80
  export function compareArmTurns(arm) {
134
- if (!arm.trace) {
135
- return undefined;
136
- }
137
- return arm.trace.messages.filter((message) => message.role === "assistant").length;
81
+ return arm.trace?.messages.filter((message) => message.role === "assistant").length;
82
+ }
83
+ export function compareArmTools(arm) {
84
+ return arm.trace?.toolCalls.length;
138
85
  }
139
86
  export function formatCompareTurns(turns) {
140
87
  return turns === 1 ? "1 turn" : `${turns} turns`;
141
88
  }
142
- /** Apply one compare arm onto the shared scenario. Drops `compare` so the arm is a normal run. */
89
+ export function requireCompareArm(scenario, side) {
90
+ if (!resolveCompareArms(scenario.compare).some((entry) => entry.id === side))
91
+ throw new Error(`Scenario ${scenario.name} has no compare arm ${side}`);
92
+ return applyCompareArm(scenario, side);
93
+ }
143
94
  export function applyCompareArm(scenario, side) {
144
95
  const { compare, ...rest } = scenario;
145
- const resolved = resolveCompareArms(compare).find((entry) => entry.id === side);
146
- const arm = resolved?.arm;
147
- if (!arm) {
96
+ const arm = resolveCompareArms(compare).find((entry) => entry.id === side)?.arm;
97
+ if (!arm)
148
98
  return rest;
149
- }
150
99
  return {
151
100
  ...rest,
152
101
  prompt: arm.prompt ?? rest.prompt,
@@ -162,23 +111,8 @@ export function applyCompareArm(scenario, side) {
162
111
  rubric: mergeArmRubric(rest.rubric, arm.rubric),
163
112
  };
164
113
  }
165
- export function attachCompareStoryResults(fields, result) {
166
- const byId = new Map(compareResultArms(result).map((arm) => [arm.id, arm]));
167
- return {
168
- ...fields,
169
- faster: result.faster ?? fields.faster,
170
- cheaper: result.cheaper ?? fields.cheaper,
171
- arms: fields.arms.map((arm) => ({
172
- ...arm,
173
- trace: byId.get(arm.id)?.trace,
174
- durationMs: byId.get(arm.id)?.durationMs,
175
- })),
176
- };
177
- }
178
114
  export function compareStoryFields(scenario) {
179
- const resolved = resolveCompareArms(scenario.compare);
180
- const armIds = resolved.map((entry) => entry.id);
181
- const arms = resolved.map((entry) => ({
115
+ const arms = resolveCompareArms(scenario.compare).map((entry) => ({
182
116
  id: entry.id,
183
117
  label: compareArmLabel(entry.arm, entry.id),
184
118
  description: compareArmDescription(entry.arm),
@@ -186,187 +120,142 @@ export function compareStoryFields(scenario) {
186
120
  }));
187
121
  return {
188
122
  arms,
189
- faster: resolveCompareMetricPairs(scenario.compare?.faster, armIds),
190
- cheaper: resolveCompareMetricPairs(scenario.compare?.cheaper, armIds),
191
- aLabel: arms[0]?.label ?? compareArmLabel(scenario.compare?.a, "a"),
192
- bLabel: arms[1]?.label ?? compareArmLabel(scenario.compare?.b, "b"),
123
+ gates: scenario.compare?.gates,
124
+ aLabel: arms[0]?.label ?? "control",
125
+ bLabel: arms[1]?.label ?? "experimental",
193
126
  aDescription: arms[0]?.description,
194
127
  bDescription: arms[1]?.description,
195
128
  aRubric: arms[0]?.rubric,
196
129
  bRubric: arms[1]?.rubric,
197
130
  };
198
131
  }
132
+ export function attachCompareStoryResults(fields, result) {
133
+ const byId = new Map(compareResultArms(result).map((arm) => [arm.id, arm]));
134
+ return {
135
+ ...fields,
136
+ gates: result.gates ?? fields.gates,
137
+ arms: fields.arms.map((arm) => {
138
+ const measured = byId.get(arm.id);
139
+ return {
140
+ ...arm,
141
+ trace: measured?.trace,
142
+ durationMs: measured?.durationMs,
143
+ passed: measured?.passed,
144
+ failures: measured?.failures,
145
+ judgeVerdicts: measured?.judgeVerdicts,
146
+ };
147
+ }),
148
+ };
149
+ }
199
150
  export function prefixCompareFailures(label, failures) {
200
- return failures.map((failure) => ({
201
- ...failure,
202
- message: `${label}: ${failure.message}`,
203
- }));
151
+ return failures.map((failure) => ({ ...failure, message: `${label}: ${failure.message}` }));
204
152
  }
205
- function armToolCount(arm) {
206
- return arm.trace ? arm.trace.toolCalls.length : undefined;
153
+ function judgeValue(arm, id) {
154
+ const verdict = arm.judgeVerdicts?.find((item) => item.id === id);
155
+ return verdict ? (verdict.pass ? "pass" : "fail") : undefined;
207
156
  }
208
- function armById(arms, id) {
209
- return arms.find((arm) => arm.id === id);
157
+ export function compareMetricValue(arm, metric) {
158
+ if (metric === "outcome")
159
+ return arm.passed === undefined ? undefined : arm.passed ? "pass" : "fail";
160
+ if (metric === "turns")
161
+ return compareArmTurns(arm);
162
+ if (metric === "tokens")
163
+ return compareArmTokens(arm);
164
+ if (metric === "tools")
165
+ return compareArmTools(arm);
166
+ if (metric === "durationMs")
167
+ return arm.durationMs;
168
+ return judgeValue(arm, metric.slice("judge:".length));
210
169
  }
211
- function describePairTurns(winner, loser) {
212
- const winnerTurns = compareArmTurns(winner);
213
- const loserTurns = compareArmTurns(loser);
214
- if (typeof winnerTurns !== "number" || typeof loserTurns !== "number") {
215
- return undefined;
216
- }
217
- if (winnerTurns === loserTurns) {
218
- return `${winner.label} and ${loser.label} use ${formatCompareTurns(winnerTurns)}`;
219
- }
220
- if (winnerTurns < loserTurns) {
221
- return `${winner.label} uses fewer turns than ${loser.label} (${winnerTurns} vs ${loserTurns})`;
222
- }
223
- return `${loser.label} uses fewer turns than ${winner.label} (${loserTurns} vs ${winnerTurns})`;
170
+ function normalizedValue(value) {
171
+ return typeof value === "number" ? value : value === "pass" ? 1 : 0;
224
172
  }
225
- function describePairTokens(winner, loser) {
226
- const winnerTokens = compareArmTokens(winner);
227
- const loserTokens = compareArmTokens(loser);
228
- if (typeof winnerTokens !== "number" || typeof loserTokens !== "number") {
229
- return undefined;
230
- }
231
- if (winnerTokens === loserTokens) {
232
- return `${winner.label} and ${loser.label} use ${winnerTokens} tokens`;
233
- }
234
- if (winnerTokens < loserTokens) {
235
- return `${winner.label} uses fewer tokens than ${loser.label} (${winnerTokens} vs ${loserTokens})`;
236
- }
237
- return `${loser.label} uses fewer tokens than ${winner.label} (${loserTokens} vs ${winnerTokens})`;
173
+ function compareAbsolute(left, operator, right) {
174
+ const a = normalizedValue(left);
175
+ const b = normalizedValue(right);
176
+ if (operator === "equal")
177
+ return a === b;
178
+ if (operator === "lessThan")
179
+ return a < b;
180
+ if (operator === "atMost")
181
+ return a <= b;
182
+ if (operator === "atLeast")
183
+ return a >= b;
184
+ return a > b;
238
185
  }
239
- function describeTwoArmOutcome(left, right) {
240
- const lines = [];
241
- const aTurns = compareArmTurns(left);
242
- const bTurns = compareArmTurns(right);
243
- if (typeof aTurns === "number" && typeof bTurns === "number") {
244
- if (aTurns === bTurns) {
245
- lines.push(`both arms use ${formatCompareTurns(aTurns)}`);
246
- }
247
- else {
248
- const turns = describePairTurns(left, right);
249
- if (turns) {
250
- lines.push(turns);
251
- }
252
- }
253
- }
254
- const aTokens = compareArmTokens(left);
255
- const bTokens = compareArmTokens(right);
256
- if (typeof aTokens === "number" && typeof bTokens === "number") {
257
- if (aTokens === bTokens) {
258
- lines.push(`both arms use ${aTokens} tokens`);
259
- }
260
- else {
261
- const tokens = describePairTokens(left, right);
262
- if (tokens) {
263
- lines.push(tokens);
264
- }
265
- }
266
- }
267
- const aTools = armToolCount(left);
268
- const bTools = armToolCount(right);
269
- if (typeof aTools === "number" && typeof bTools === "number") {
270
- if (aTools === bTools) {
271
- lines.push(aTools === 1 ? "both arms make 1 tool call" : `both arms make ${aTools} tool calls`);
272
- }
273
- else if (aTools < bTools) {
274
- lines.push(`${left.label} makes fewer tool calls than ${right.label} (${aTools} vs ${bTools})`);
275
- }
276
- else {
277
- lines.push(`${right.label} makes fewer tool calls than ${left.label} (${bTools} vs ${aTools})`);
186
+ export function evaluateCompareGates(gates, result) {
187
+ const byId = new Map(compareResultArms(result).map((arm) => [arm.id, arm]));
188
+ return (gates ?? []).map((gate) => {
189
+ if ("winner" in gate) {
190
+ const winner = byId.get(gate.winner);
191
+ const loser = byId.get(gate.loser);
192
+ const left = winner ? compareMetricValue(winner, gate.metric) : undefined;
193
+ const right = loser ? compareMetricValue(loser, gate.metric) : undefined;
194
+ const passed = left !== undefined &&
195
+ right !== undefined &&
196
+ (typeof left === "number" && typeof right === "number"
197
+ ? left < right
198
+ : left === "pass" && right === "fail");
199
+ return {
200
+ gate,
201
+ passed,
202
+ left,
203
+ right,
204
+ message: `${gate.winner} must beat ${gate.loser} on ${gate.metric}`,
205
+ };
278
206
  }
279
- }
280
- return lines;
207
+ const arm = byId.get(gate.arm);
208
+ const left = arm ? compareMetricValue(arm, gate.metric) : undefined;
209
+ const passed = left !== undefined && compareAbsolute(left, gate.operator, gate.value);
210
+ return {
211
+ gate,
212
+ passed,
213
+ left,
214
+ right: gate.value,
215
+ message: `${gate.arm} ${gate.metric} must be ${gate.operator} ${gate.value}`,
216
+ };
217
+ });
218
+ }
219
+ export function assertCompareGates(gates, result) {
220
+ return evaluateCompareGates(gates, result)
221
+ .filter((item) => !item.passed)
222
+ .map((item) => assertionFailure(`compareGate:${item.gate.metric}`, `${item.message} (actual ${String(item.left)} vs ${String(item.right)})`, "rubric_miss"));
281
223
  }
282
- /**
283
- * Plain-language outcomes after the arms finish.
284
- * Two-arm form reports the single pair. Named-arm form reports declared pairs only.
285
- */
286
224
  export function describeCompareOutcome(compare) {
287
- const arms = compareResultArms(compare);
288
- if (arms.length === 2 && arms[0] && arms[1]) {
289
- return describeTwoArmOutcome(arms[0], arms[1]);
290
- }
291
- const lines = [];
292
- for (const pair of compare.faster ?? []) {
293
- const winner = armById(arms, pair.winner);
294
- const loser = armById(arms, pair.loser);
295
- if (!winner || !loser) {
296
- continue;
297
- }
298
- const line = describePairTurns(winner, loser);
299
- if (line) {
300
- lines.push(line);
301
- }
302
- }
303
- for (const pair of compare.cheaper ?? []) {
304
- const winner = armById(arms, pair.winner);
305
- const loser = armById(arms, pair.loser);
306
- if (!winner || !loser) {
307
- continue;
308
- }
309
- const line = describePairTokens(winner, loser);
310
- if (line) {
311
- lines.push(line);
225
+ const lines = compareResultArms(compare).map((arm) => {
226
+ const values = [
227
+ arm.passed === undefined ? undefined : arm.passed ? "pass" : "fail",
228
+ compareArmTurns(arm) === undefined ? undefined : `${compareArmTurns(arm)} turns`,
229
+ compareArmTokens(arm) === undefined ? undefined : `${compareArmTokens(arm)} tokens`,
230
+ compareArmTools(arm) === undefined ? undefined : `${compareArmTools(arm)} tools`,
231
+ arm.durationMs === undefined ? undefined : `${arm.durationMs} ms`,
232
+ ].filter(Boolean);
233
+ return `${arm.label}: ${values.join(", ")}`;
234
+ });
235
+ for (const arm of compareResultArms(compare)) {
236
+ for (const verdict of arm.judgeVerdicts ?? []) {
237
+ lines.push(`${arm.label} judge ${verdict.id}: ${verdict.pass ? "pass" : "fail"}. ${verdict.rationale}`);
312
238
  }
313
239
  }
314
240
  return lines;
315
241
  }
316
242
  export function applySidecarCompareDurations(compare, sidecar) {
317
- if (!sidecar?.compare) {
243
+ if (!sidecar?.compare)
318
244
  return compare;
319
- }
320
- const arms = compareResultArms(compare).map((arm) => {
321
- const fromMap = sidecar.compare?.arms?.[arm.id]?.durationMs;
322
- const fromAlias = arm.id === "a"
323
- ? sidecar.compare?.a?.durationMs
324
- : arm.id === "b"
325
- ? sidecar.compare?.b?.durationMs
326
- : undefined;
327
- return {
328
- ...arm,
329
- durationMs: fromMap ?? fromAlias ?? arm.durationMs,
330
- };
331
- });
332
- return buildCompareResult(arms, { faster: compare.faster, cheaper: compare.cheaper });
333
- }
334
- function assertMetricPair(matcher, pair, byId, read, verb, unit, reported) {
335
- const winner = byId.get(pair.winner);
336
- const loser = byId.get(pair.loser);
337
- if (!winner || !loser) {
338
- return [
339
- assertionFailure(matcher, `${pair.winner} must ${verb} ${pair.loser}, but one arm is missing from the result`, "rubric_miss"),
340
- ];
341
- }
342
- const winnerValue = read(winner);
343
- const loserValue = read(loser);
344
- if (winnerValue === undefined || loserValue === undefined) {
345
- return [
346
- assertionFailure(matcher, `${winner.label} must ${verb} ${loser.label}, but one arm did not report ${reported}`, "rubric_miss"),
347
- ];
348
- }
349
- if (!(winnerValue < loserValue)) {
350
- const winnerText = unit ? `${winnerValue}${unit}` : `${winnerValue}`;
351
- const loserText = unit ? `${loserValue}${unit}` : `${loserValue}`;
352
- return [
353
- assertionFailure(matcher, `${winner.label} must ${verb} ${loser.label} (${winnerText} vs ${loserText})`, "rubric_miss"),
354
- ];
355
- }
356
- return [];
357
- }
358
- /** Score optional faster/cheaper gates after the arms finish. */
359
- export function assertCompareMetrics(spec, result) {
360
- const arms = compareResultArms(result);
361
- const armIds = arms.map((arm) => arm.id);
362
- const byId = new Map(arms.map((arm) => [arm.id, arm]));
363
- const failures = [];
364
- for (const pair of resolveCompareMetricPairs(spec.faster, armIds)) {
365
- failures.push(...assertMetricPair("faster", pair, byId, compareArmTurns, "use fewer turns than", "", "turns"));
366
- }
367
- for (const pair of resolveCompareMetricPairs(spec.cheaper, armIds)) {
368
- failures.push(...assertMetricPair("cheaper", pair, byId, compareArmTokens, "use fewer tokens than", "", "tokens"));
369
- }
370
- return failures;
245
+ const arms = compareResultArms(compare).map((arm) => ({
246
+ ...arm,
247
+ durationMs: sidecar.compare?.arms?.[arm.id]?.durationMs ??
248
+ (arm.id === "a"
249
+ ? sidecar.compare?.a?.durationMs
250
+ : arm.id === "b"
251
+ ? sidecar.compare?.b?.durationMs
252
+ : undefined) ??
253
+ arm.durationMs,
254
+ }));
255
+ return {
256
+ ...compare,
257
+ ...buildCompareResult(arms, compare.gates),
258
+ gateResults: compare.gateResults,
259
+ };
371
260
  }
372
261
  //# sourceMappingURL=compare-scenario.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compare-scenario.js","sourceRoot":"","sources":["../src/compare-scenario.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compare-scenario.js","sourceRoot":"","sources":["../src/compare-scenario.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"debug-bundle.d.ts","sourceRoot":"","sources":["../src/debug-bundle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"debug-bundle.d.ts","sourceRoot":"","sources":["../src/debug-bundle.ts"],"names":[],"mappings":"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"}
@@ -310,6 +310,7 @@ export async function writeDebugBundle(options) {
310
310
  seedStageOnly: scenario.seedStageOnly,
311
311
  host: scenario.host,
312
312
  skip: scenario.skip,
313
+ compare: scenario.compare,
313
314
  }, null, 2)}\n`, "utf8");
314
315
  await writeFile(resultPath, `${JSON.stringify({
315
316
  suite: result.suite,
@@ -326,6 +327,7 @@ export async function writeDebugBundle(options) {
326
327
  messageCount: effectiveTrace?.messages.length ?? 0,
327
328
  toolCallCount: effectiveTrace?.toolCalls.length ?? 0,
328
329
  artifacts: effectiveTrace?.artifacts ?? {},
330
+ compare: result.compare,
329
331
  }, null, 2)}\n`, "utf8");
330
332
  if (trace) {
331
333
  await writeFile(transcriptPath, formatTranscriptMarkdown({