@gaunt-sloth/batch 2.0.0-alpha.24 → 2.0.0-alpha.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -6
- package/dist/BatchRunner.d.ts +20 -0
- package/dist/BatchRunner.js +28 -2
- package/dist/BatchRunner.js.map +1 -1
- package/dist/blindExport.d.ts +88 -0
- package/dist/blindExport.js +129 -0
- package/dist/blindExport.js.map +1 -0
- package/dist/classification.d.ts +52 -0
- package/dist/classification.js +140 -0
- package/dist/classification.js.map +1 -0
- package/dist/classificationRender.d.ts +24 -0
- package/dist/classificationRender.js +96 -0
- package/dist/classificationRender.js.map +1 -0
- package/dist/classificationReport.d.ts +11 -0
- package/dist/classificationReport.js +60 -0
- package/dist/classificationReport.js.map +1 -0
- package/dist/classificationTypes.d.ts +311 -0
- package/dist/classificationTypes.js +40 -0
- package/dist/classificationTypes.js.map +1 -0
- package/dist/evalCompare.d.ts +108 -0
- package/dist/evalCompare.js +246 -0
- package/dist/evalCompare.js.map +1 -0
- package/dist/evalRunner.d.ts +34 -3
- package/dist/evalRunner.js +259 -9
- package/dist/evalRunner.js.map +1 -1
- package/dist/evalSuite.d.ts +12 -2
- package/dist/evalSuite.js +534 -8
- package/dist/evalSuite.js.map +1 -1
- package/dist/evalTypes.d.ts +358 -5
- package/dist/evalTypes.js +98 -0
- package/dist/evalTypes.js.map +1 -1
- package/dist/index.d.ts +15 -1
- package/dist/index.js +14 -1
- package/dist/index.js.map +1 -1
- package/dist/metrics.d.ts +50 -0
- package/dist/metrics.js +433 -0
- package/dist/metrics.js.map +1 -0
- package/dist/pipelineCli.js +1 -1
- package/dist/pipelineCli.js.map +1 -1
- package/dist/raterTarget.d.ts +94 -0
- package/dist/raterTarget.js +328 -0
- package/dist/raterTarget.js.map +1 -0
- package/dist/reporters/reporterTypes.d.ts +9 -0
- package/dist/reporters/textReporter.js +21 -0
- package/dist/reporters/textReporter.js.map +1 -1
- package/dist/types.d.ts +14 -2
- package/dist/types.js +14 -2
- package/dist/types.js.map +1 -1
- package/dist/workflow/runWorkflow.d.ts +1 -1
- package/dist/workflow/runWorkflow.js +2 -2
- package/dist/workflow/runWorkflow.js.map +1 -1
- package/package.json +3 -3
package/dist/evalRunner.js
CHANGED
|
@@ -2,6 +2,22 @@ import { runBatchMatrix } from '#src/BatchRunner.js';
|
|
|
2
2
|
import { runDeterministicChecks } from '#src/deterministicChecks.js';
|
|
3
3
|
import { runToolCallChecks } from '#src/toolChecks.js';
|
|
4
4
|
import { runToolResultChecks } from '#src/toolResultChecks.js';
|
|
5
|
+
import { mechanismNeedsPermissiveRating } from '#src/evalTypes.js';
|
|
6
|
+
import { UNRECOGNIZED_LABEL } from '#src/classificationTypes.js';
|
|
7
|
+
import { extractClassificationValue, readRaw } from '#src/classification.js';
|
|
8
|
+
import { buildClassificationReport } from '#src/classificationReport.js';
|
|
9
|
+
/**
|
|
10
|
+
* BATCH-25 — a case's tags, read defensively.
|
|
11
|
+
*
|
|
12
|
+
* `EvalCase.tags` is REQUIRED and `parseEvalSuite` always supplies it (`[]` when the case declares
|
|
13
|
+
* none), following this layer's stated convention that arrays default to `[]` so callers never need
|
|
14
|
+
* an existence check. But `EvalSuite` is a public export that a caller can also construct by hand,
|
|
15
|
+
* and a missing array must degrade to "no tags" rather than crash a whole run — the same `?? []`
|
|
16
|
+
* discipline `cellResult.tools`/`toolResults` already get here.
|
|
17
|
+
*/
|
|
18
|
+
function caseTags(evalCase) {
|
|
19
|
+
return evalCase.tags ?? [];
|
|
20
|
+
}
|
|
5
21
|
/** A block applies to an identity when it names no identities (unscoped → all) or explicitly names
|
|
6
22
|
* this one. For the single-run pseudo-identity (`undefined`) only unscoped blocks apply — and the
|
|
7
23
|
* parser guarantees a no-identities suite has only unscoped blocks. */
|
|
@@ -48,6 +64,16 @@ function buildUnits(suite) {
|
|
|
48
64
|
* single-turn unit keeps the proven `runCell` + {@link gradeUnit} path byte-for-byte.
|
|
49
65
|
*/
|
|
50
66
|
export async function runEvalSuite(suite, options) {
|
|
67
|
+
// BATCH-25 Half B — a classification target that never arrived must be LOUD. `options.classify`
|
|
68
|
+
// is optional (a classifier suite can read its label out of an agent answer), so a `rater` suite
|
|
69
|
+
// whose command forgot to build the classifier would otherwise fall through to `runCell` and send
|
|
70
|
+
// every shell command to the chat model as a prompt — a full run, billed, graded against prose,
|
|
71
|
+
// and reported as if it had measured the rater. Fail before anything runs instead.
|
|
72
|
+
if (suite.target.type === 'rater' && !options.classify) {
|
|
73
|
+
throw new Error('runEvalSuite: a "rater" target needs an injected `classify` function — build it with ' +
|
|
74
|
+
'`buildRaterClassifier(suite.target, config)` (#src/raterTarget.js) and pass it as ' +
|
|
75
|
+
'`options.classify`. Without it every case would be run through the ordinary agent.');
|
|
76
|
+
}
|
|
51
77
|
const units = buildUnits(suite);
|
|
52
78
|
// I1 — dispatch AND grading are keyed by the guaranteed-unique `inputIndex` (a unit's position in
|
|
53
79
|
// this array, threaded onto its `MatrixCell`/`CellResult`), NEVER by the composite `cellId`
|
|
@@ -103,8 +129,50 @@ export async function runEvalSuite(suite, options) {
|
|
|
103
129
|
// cells — `CellRunOutcome` carries one answer, a conversation carries N). Only multi-turn cells
|
|
104
130
|
// populate this; single-turn cells grade straight from their `CellResult` as before.
|
|
105
131
|
const conversationOutcomes = new Map();
|
|
132
|
+
// The classification target is only in play for a suite that actually declares a `classification:`
|
|
133
|
+
// block — an injected classifier with no label enum would have no axes to report against.
|
|
134
|
+
const spec = suite.classification;
|
|
135
|
+
const classifier = spec ? options.classify : undefined;
|
|
136
|
+
// BATCH-25 — per-round classification outcomes from an injected classification target, keyed by
|
|
137
|
+
// the same unique `inputIndex`. Populated only on the `options.classify` path.
|
|
138
|
+
const classifyOutcomes = new Map();
|
|
106
139
|
const dispatchRunCell = async (cell) => {
|
|
107
140
|
const unit = unitByInputIndex.get(cell.inputIndex);
|
|
141
|
+
// BATCH-25 — a CLASSIFICATION target decides the case itself; there is no agent turn to run.
|
|
142
|
+
// Its per-round outcomes are stashed for grading and ALSO adapted into the conversation stash,
|
|
143
|
+
// so a multi-round classifier case rides the existing per-turn grader unchanged.
|
|
144
|
+
if (classifier) {
|
|
145
|
+
const outcomes = await classifier({
|
|
146
|
+
caseId: unit.evalCase.id,
|
|
147
|
+
inputs: unit.evalCase.turns.map((turn) => turn.user),
|
|
148
|
+
tags: caseTags(unit.evalCase),
|
|
149
|
+
modelFree: unit.evalCase.modelFree,
|
|
150
|
+
// Passed on as DECLARED, per round. The runner is target-agnostic and forms no opinion
|
|
151
|
+
// about what a mechanism implies — `ClassifyRequest.forcedBy` says why that split matters.
|
|
152
|
+
//
|
|
153
|
+
// Where one round declares SEVERAL mechanisms (`ob-05` is the corpus case: an ambiguity
|
|
154
|
+
// preflight AND the floor), a mechanism needing a permissive rating is preferred over one
|
|
155
|
+
// that does not, rather than simply taking the first block. Taking the first made the
|
|
156
|
+
// verdict depend on BLOCK ORDER — `[ambiguity, floor]` passed and `[floor, ambiguity]`
|
|
157
|
+
// failed on identical assertions — because a round left undriven can never let its
|
|
158
|
+
// preflight speak. Preferring the preflight satisfies BOTH claims: the floor's marker comes
|
|
159
|
+
// from `checkHardline`, which is unaffected by the rating either way.
|
|
160
|
+
forcedBy: unit.evalCase.turns.map((turn) => turn.expectations.find((block) => mechanismNeedsPermissiveRating(block.forcedBy))
|
|
161
|
+
?.forcedBy ??
|
|
162
|
+
turn.expectations.find((block) => block.forcedBy !== undefined)?.forcedBy),
|
|
163
|
+
});
|
|
164
|
+
classifyOutcomes.set(cell.inputIndex, outcomes);
|
|
165
|
+
conversationOutcomes.set(cell.inputIndex, outcomes.map((outcome) => ({
|
|
166
|
+
ok: outcome.ok,
|
|
167
|
+
answer: outcome.rationale,
|
|
168
|
+
error: outcome.error,
|
|
169
|
+
})));
|
|
170
|
+
return {
|
|
171
|
+
ok: outcomes.length > 0 && outcomes.every((outcome) => outcome.ok),
|
|
172
|
+
answer: outcomes[0]?.rationale,
|
|
173
|
+
error: outcomes[0]?.error,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
108
176
|
// Single-turn: the proven `runSingleShot`-backed path, byte-for-byte (unchanged dispatch).
|
|
109
177
|
if (unit.evalCase.turns.length <= 1) {
|
|
110
178
|
return runCellFor(unit.identity)(cell);
|
|
@@ -127,15 +195,165 @@ export async function runEvalSuite(suite, options) {
|
|
|
127
195
|
unit's array position, preserved through runBatchMatrix), so every result maps to one unit */
|
|
128
196
|
if (!unit)
|
|
129
197
|
continue;
|
|
198
|
+
const outcomes = conversationOutcomes.get(cellResult.inputIndex);
|
|
199
|
+
// BATCH-25 — the per-round answers this unit produced, in turn order. A single-turn cell has one
|
|
200
|
+
// (the cell's own answer); a multi-turn / classifier cell has one per round.
|
|
201
|
+
const answersPerTurn = unit.evalCase.turns.length <= 1
|
|
202
|
+
? [cellResult.answer]
|
|
203
|
+
: unit.evalCase.turns.map((_, index) => outcomes?.[index]?.answer);
|
|
204
|
+
const classifications = buildActualClassifications(unit, spec, answersPerTurn, classifyOutcomes.get(cellResult.inputIndex));
|
|
130
205
|
if (unit.evalCase.turns.length <= 1) {
|
|
131
|
-
results.push(await gradeUnit(unit, cellResult, options.judge));
|
|
206
|
+
results.push(await gradeUnit(unit, cellResult, options.judge, classifications?.[0]));
|
|
132
207
|
}
|
|
133
208
|
else {
|
|
134
|
-
results.push(await gradeConversationUnit(unit,
|
|
209
|
+
results.push(await gradeConversationUnit(unit, outcomes, cellResult, options.judge, classifications));
|
|
135
210
|
}
|
|
136
211
|
}
|
|
137
212
|
const passed = results.filter((result) => result.verdict === 'PASS').length;
|
|
138
|
-
|
|
213
|
+
const summary = {
|
|
214
|
+
total: results.length,
|
|
215
|
+
passed,
|
|
216
|
+
failed: results.length - passed,
|
|
217
|
+
cases: results,
|
|
218
|
+
};
|
|
219
|
+
// BATCH-25 — the classifier report (matrices + declared metrics) is attached ONLY for a suite that
|
|
220
|
+
// declares `classification:`, so a #405-era `results.json` is byte-for-byte unchanged.
|
|
221
|
+
if (spec) {
|
|
222
|
+
summary.classification = buildClassificationReport(spec,
|
|
223
|
+
// Same defensive read as `caseTags`: required on the parsed shape, tolerated absent on a
|
|
224
|
+
// hand-constructed one.
|
|
225
|
+
suite.metrics ?? [], toClassifiedCells(results));
|
|
226
|
+
}
|
|
227
|
+
return summary;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* BATCH-25 — reduce the graded results to the shape the matrices and metrics read.
|
|
231
|
+
*
|
|
232
|
+
* `scored` is the load-bearing field: a cell whose SUT never ran has NO place in any matrix cell or
|
|
233
|
+
* any metric denominator, and is instead counted as `excluded` and said out loud. Silently treating
|
|
234
|
+
* it as a wrong answer would inflate the error rate; silently dropping it would inflate coverage.
|
|
235
|
+
* Both are how a classifier report comes to claim more than it measured.
|
|
236
|
+
*/
|
|
237
|
+
export function toClassifiedCells(results) {
|
|
238
|
+
return results.map((result) => ({
|
|
239
|
+
id: result.identity === undefined ? result.id : `${result.id}__${result.identity}`,
|
|
240
|
+
tags: result.tags ?? [],
|
|
241
|
+
expectedLabel: result.classification?.expectedLabel,
|
|
242
|
+
expectedAction: result.classification?.expectedAction,
|
|
243
|
+
actualLabel: result.classification?.actualLabel,
|
|
244
|
+
actualAction: result.classification?.actualAction,
|
|
245
|
+
scored: result.sutOk && result.classification !== undefined,
|
|
246
|
+
}));
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* BATCH-25 — build one {@link EvalCaseClassification} per round: what the corpus expected, and what
|
|
250
|
+
* the SUT actually produced.
|
|
251
|
+
*
|
|
252
|
+
* The EXPECTED side comes from the round's APPLICABLE expectation blocks (already filtered to this
|
|
253
|
+
* identity), so an identity-scoped or round-scoped expectation is read correctly. When two
|
|
254
|
+
* applicable blocks declare different expected labels the first wins for reporting purposes — but
|
|
255
|
+
* both are still graded independently, so a contradictory pair fails the case rather than being
|
|
256
|
+
* quietly reconciled here.
|
|
257
|
+
*
|
|
258
|
+
* The ACTUAL side comes from the injected classification target when there is one, and otherwise
|
|
259
|
+
* from the suite's declared extractors reading the round's answer. Either way a value the suite does
|
|
260
|
+
* not declare becomes {@link UNRECOGNIZED_LABEL} — a visible bucket, never a dropped row.
|
|
261
|
+
*/
|
|
262
|
+
function buildActualClassifications(unit, spec, answersPerTurn, classifyOutcomes) {
|
|
263
|
+
if (!spec)
|
|
264
|
+
return undefined;
|
|
265
|
+
return unit.evalCase.turns.map((_turn, index) => {
|
|
266
|
+
const applicable = unit.applicablePerTurn[index] ?? [];
|
|
267
|
+
const expectedLabel = applicable.find((block) => block.expectLabel !== undefined)?.expectLabel;
|
|
268
|
+
const expectedAction = applicable.find((block) => block.expectAction !== undefined)?.expectAction;
|
|
269
|
+
const outcome = classifyOutcomes?.[index];
|
|
270
|
+
const answer = answersPerTurn[index];
|
|
271
|
+
let actualLabel;
|
|
272
|
+
let actualAction;
|
|
273
|
+
let raw;
|
|
274
|
+
if (outcome) {
|
|
275
|
+
// A classification target reports its verdict directly — but it is still held to the suite's
|
|
276
|
+
// declared enum, so a target returning an undeclared value shows up as `(unrecognized)`
|
|
277
|
+
// rather than silently widening the axis.
|
|
278
|
+
actualLabel = outcome.ok ? normalizeAgainstEnum(outcome.label, spec.labels) : undefined;
|
|
279
|
+
actualAction =
|
|
280
|
+
outcome.ok && spec.actions.length > 0
|
|
281
|
+
? normalizeAgainstEnum(outcome.action, spec.actions)
|
|
282
|
+
: undefined;
|
|
283
|
+
raw = outcome.rationale;
|
|
284
|
+
}
|
|
285
|
+
else if (answer !== undefined) {
|
|
286
|
+
actualLabel = extractClassificationValue(answer, spec.labelFrom, spec.labels);
|
|
287
|
+
if (spec.actionFrom) {
|
|
288
|
+
actualAction = extractClassificationValue(answer, spec.actionFrom, spec.actions);
|
|
289
|
+
}
|
|
290
|
+
// Keep the text the extractor actually read when it is NOT just the whole answer, so an
|
|
291
|
+
// `(unrecognized)` result is diagnosable from the per-cell JSON without re-running.
|
|
292
|
+
const readValue = readRaw(answer, spec.labelFrom);
|
|
293
|
+
if (readValue !== undefined && readValue !== answer)
|
|
294
|
+
raw = readValue;
|
|
295
|
+
}
|
|
296
|
+
return {
|
|
297
|
+
expectedLabel,
|
|
298
|
+
expectedAction,
|
|
299
|
+
actualLabel,
|
|
300
|
+
actualAction,
|
|
301
|
+
raw,
|
|
302
|
+
modelCalls: outcome?.modelCalls,
|
|
303
|
+
};
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
/** Hold a classification target's own verdict to the suite's declared enum. An absent value stays
|
|
307
|
+
* absent (the target reported nothing on this dimension); an undeclared one becomes
|
|
308
|
+
* {@link UNRECOGNIZED_LABEL}. */
|
|
309
|
+
function normalizeAgainstEnum(value, declared) {
|
|
310
|
+
if (value === undefined)
|
|
311
|
+
return undefined;
|
|
312
|
+
return declared.includes(value) ? value : UNRECOGNIZED_LABEL;
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* BATCH-25 — grade one round's classification assertions and the `model_free` contract.
|
|
316
|
+
*
|
|
317
|
+
* Returns failure reasons; empty means the round's classification assertions held. The label and
|
|
318
|
+
* the action are graded SEPARATELY and both are reported, because they diverge by design: a
|
|
319
|
+
* deterministic preflight can produce the right action from the wrong label, and a report that
|
|
320
|
+
* collapsed them would hide which component drifted.
|
|
321
|
+
*/
|
|
322
|
+
function gradeClassificationBlock(block, classification) {
|
|
323
|
+
const reasons = [];
|
|
324
|
+
if (block.expectLabel !== undefined) {
|
|
325
|
+
const actual = classification?.actualLabel;
|
|
326
|
+
if (actual !== block.expectLabel) {
|
|
327
|
+
reasons.push(`expected label "${block.expectLabel}" but got "${actual ?? '(none)'}"`);
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
if (block.expectAction !== undefined) {
|
|
331
|
+
const actual = classification?.actualAction;
|
|
332
|
+
if (actual !== block.expectAction) {
|
|
333
|
+
reasons.push(`expected action "${block.expectAction}" but got "${actual ?? '(none)'}"`);
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
return reasons;
|
|
337
|
+
}
|
|
338
|
+
/** BATCH-25 — the `model_free` contract: a case declared free must cost ZERO model calls. A target
|
|
339
|
+
* that quietly rings the model on such a case would otherwise be invisible, and these cases are
|
|
340
|
+
* exactly the cheap, deterministic regression gate (the EXT-55 class — a hardline floor that had
|
|
341
|
+
* silently stopped firing, invisible to build, lint and unit). `undefined` model calls means the
|
|
342
|
+
* target did not report them, which is itself a failure of the contract. */
|
|
343
|
+
function gradeModelFree(evalCase, classification) {
|
|
344
|
+
if (!evalCase.modelFree)
|
|
345
|
+
return [];
|
|
346
|
+
const calls = classification?.modelCalls;
|
|
347
|
+
if (calls === undefined) {
|
|
348
|
+
return [
|
|
349
|
+
'model_free: the target reported no model-call count, so "zero model calls" could not be ' +
|
|
350
|
+
'verified.',
|
|
351
|
+
];
|
|
352
|
+
}
|
|
353
|
+
if (calls > 0) {
|
|
354
|
+
return [`model_free: expected 0 model calls but the target made ${calls}`];
|
|
355
|
+
}
|
|
356
|
+
return [];
|
|
139
357
|
}
|
|
140
358
|
/**
|
|
141
359
|
* BATCH-11 (#405 his #6) — classify a completed suite's {@link EvalSuiteSummary} into a distinct
|
|
@@ -153,6 +371,12 @@ export async function runEvalSuite(suite, options) {
|
|
|
153
371
|
* Classification is anchored on `sutOk`, not the verdict: a cell that ran (`sutOk === true`) but
|
|
154
372
|
* whose judge errored (or whose answer failed a check) is a real result → exit `1`, never `2`. A
|
|
155
373
|
* *mix* of `sutOk:false` and `sutOk:true` cells therefore yields `1`.
|
|
374
|
+
*
|
|
375
|
+
* BATCH-25 adds ONE further way to reach `1`: a breached `gate: fail` metric threshold. That is a
|
|
376
|
+
* product signal of exactly the same kind — and it is the one that a per-case pass/fail sweep cannot
|
|
377
|
+
* express, because a classifier corpus can be entirely within per-case tolerance while its
|
|
378
|
+
* false-approve rate is unacceptable. Per-case verdicts answer "did each case behave"; a gated
|
|
379
|
+
* metric answers "is the aggregate shippable", and only the second gates a release.
|
|
156
380
|
*/
|
|
157
381
|
export function classifyEvalExit(summary) {
|
|
158
382
|
// No gradeable results at all → harness/environment error, not a product signal.
|
|
@@ -163,6 +387,11 @@ export function classifyEvalExit(summary) {
|
|
|
163
387
|
if (summary.failed > 0) {
|
|
164
388
|
return 1;
|
|
165
389
|
}
|
|
390
|
+
// BATCH-25 — every cell passed, but a declared metric breached its hard threshold. Still a
|
|
391
|
+
// product signal (exit 1), never a harness one: the run worked, the aggregate is out of bounds.
|
|
392
|
+
if ((summary.classification?.gateFailures.length ?? 0) > 0) {
|
|
393
|
+
return 1;
|
|
394
|
+
}
|
|
166
395
|
// Every cell passed.
|
|
167
396
|
return 0;
|
|
168
397
|
}
|
|
@@ -175,7 +404,7 @@ export function classifyEvalExit(summary) {
|
|
|
175
404
|
* `judge` field is exactly that block's outcome (back-compat). For a single applicable block this
|
|
176
405
|
* reproduces the pre-BATCH-12 grading byte-for-byte.
|
|
177
406
|
*/
|
|
178
|
-
async function gradeApplicableBlocks(answer, tools, toolResults, applicable, passThreshold, judge) {
|
|
407
|
+
async function gradeApplicableBlocks(answer, tools, toolResults, applicable, passThreshold, judge, classification) {
|
|
179
408
|
const deterministicFailures = [];
|
|
180
409
|
const reasons = [];
|
|
181
410
|
let judgeOutcome;
|
|
@@ -188,8 +417,13 @@ async function gradeApplicableBlocks(answer, tools, toolResults, applicable, pas
|
|
|
188
417
|
// third input kind, graded by its own checker (#src/toolResultChecks.js) and merged into the
|
|
189
418
|
// same `reasons` so they drive the same PASS/FAIL/exit contract.
|
|
190
419
|
const toolResultFailures = runToolResultChecks(toolResults, block);
|
|
420
|
+
// BATCH-25 classification assertions read the cell's CLASSIFICATION (a fourth input kind,
|
|
421
|
+
// beside the answer, the tool trace and the tool results), so they are graded by their own
|
|
422
|
+
// checker and merged into the same `reasons` — the same PASS/FAIL/exit contract as every other
|
|
423
|
+
// assertion.
|
|
424
|
+
const classificationFailures = gradeClassificationBlock(block, classification);
|
|
191
425
|
deterministicFailures.push(...checks.failures);
|
|
192
|
-
reasons.push(...checks.failures, ...toolFailures, ...toolResultFailures);
|
|
426
|
+
reasons.push(...checks.failures, ...toolFailures, ...toolResultFailures, ...classificationFailures);
|
|
193
427
|
if (block.judgeRubric) {
|
|
194
428
|
let outcome;
|
|
195
429
|
if (!judge) {
|
|
@@ -218,7 +452,7 @@ async function gradeApplicableBlocks(answer, tools, toolResults, applicable, pas
|
|
|
218
452
|
* block passes. For a flat case (exactly one unscoped applicable block) this produces byte-for-byte
|
|
219
453
|
* the same `reasons`/`checks`/`judge`/`verdict` as the pre-BATCH-12 single-block grader.
|
|
220
454
|
*/
|
|
221
|
-
async function gradeUnit(unit, cellResult, judge) {
|
|
455
|
+
async function gradeUnit(unit, cellResult, judge, classification) {
|
|
222
456
|
const { evalCase, identity, applicablePerTurn } = unit;
|
|
223
457
|
const applicable = applicablePerTurn[0];
|
|
224
458
|
const base = {
|
|
@@ -235,6 +469,10 @@ async function gradeUnit(unit, cellResult, judge) {
|
|
|
235
469
|
// pre-BATCH-21 cell's `<id>.json` keeps its exact keys (JSON.stringify drops undefined).
|
|
236
470
|
toolResults: cellResult.toolResults,
|
|
237
471
|
durationMs: cellResult.durationMs,
|
|
472
|
+
// BATCH-25 — omitted entirely (not set to `undefined`) for a non-classifier suite, so a
|
|
473
|
+
// pre-BATCH-25 `<id>.json` keeps its exact key set.
|
|
474
|
+
...(classification !== undefined ? { classification } : {}),
|
|
475
|
+
...(caseTags(unit.evalCase).length > 0 ? { tags: caseTags(unit.evalCase) } : {}),
|
|
238
476
|
};
|
|
239
477
|
if (!cellResult.ok) {
|
|
240
478
|
return {
|
|
@@ -258,7 +496,8 @@ async function gradeUnit(unit, cellResult, judge) {
|
|
|
258
496
|
const answer = cellResult.answer ?? '';
|
|
259
497
|
const tools = cellResult.tools ?? [];
|
|
260
498
|
const toolResults = cellResult.toolResults ?? [];
|
|
261
|
-
const { reasons, deterministicFailures, judgeOutcome } = await gradeApplicableBlocks(answer, tools, toolResults, applicable, evalCase.passThreshold, judge);
|
|
499
|
+
const { reasons, deterministicFailures, judgeOutcome } = await gradeApplicableBlocks(answer, tools, toolResults, applicable, evalCase.passThreshold, judge, classification);
|
|
500
|
+
reasons.push(...gradeModelFree(evalCase, classification));
|
|
262
501
|
// A cell PASSES iff nothing was recorded against it: every applicable block's deterministic
|
|
263
502
|
// checks, tool-trace checks, and judge all passed (a passing judge appends no reason). For a
|
|
264
503
|
// single applicable block this is exactly the pre-BATCH-12 verdict.
|
|
@@ -286,7 +525,7 @@ async function gradeUnit(unit, cellResult, judge) {
|
|
|
286
525
|
* `sutOk:false` (exit-2-eligible, like a single-shot SUT failure) while a turn-1-ran/turn-2-failed
|
|
287
526
|
* cell is `sutOk:true`, a real product signal → exit 1.
|
|
288
527
|
*/
|
|
289
|
-
async function gradeConversationUnit(unit, outcomes, cellResult, judge) {
|
|
528
|
+
async function gradeConversationUnit(unit, outcomes, cellResult, judge, classifications) {
|
|
290
529
|
const { evalCase, identity, applicablePerTurn } = unit;
|
|
291
530
|
const turnOutcomes = outcomes ?? [];
|
|
292
531
|
const turnResults = [];
|
|
@@ -303,6 +542,7 @@ async function gradeConversationUnit(unit, outcomes, cellResult, judge) {
|
|
|
303
542
|
'which is a suite-authoring error.');
|
|
304
543
|
}
|
|
305
544
|
const outcome = turnOutcomes[i];
|
|
545
|
+
const classification = classifications?.[i];
|
|
306
546
|
const label = `turn ${i + 1}`;
|
|
307
547
|
if (!outcome || !outcome.ok) {
|
|
308
548
|
// This turn produced no answer: the conversation errored on it, or aborted before reaching it.
|
|
@@ -325,6 +565,7 @@ async function gradeConversationUnit(unit, outcomes, cellResult, judge) {
|
|
|
325
565
|
ok: false,
|
|
326
566
|
verdict: 'FAIL',
|
|
327
567
|
reasons: [detail],
|
|
568
|
+
...(classification !== undefined ? { classification } : {}),
|
|
328
569
|
});
|
|
329
570
|
cellReasons.push(`${label}: ${detail}`);
|
|
330
571
|
continue;
|
|
@@ -333,7 +574,8 @@ async function gradeConversationUnit(unit, outcomes, cellResult, judge) {
|
|
|
333
574
|
const answer = outcome.answer ?? '';
|
|
334
575
|
const tools = outcome.tools ?? [];
|
|
335
576
|
const toolResults = outcome.toolResults ?? [];
|
|
336
|
-
const { reasons, deterministicFailures, judgeOutcome } = await gradeApplicableBlocks(answer, tools, toolResults, applicable, evalCase.passThreshold, judge);
|
|
577
|
+
const { reasons, deterministicFailures, judgeOutcome } = await gradeApplicableBlocks(answer, tools, toolResults, applicable, evalCase.passThreshold, judge, classification);
|
|
578
|
+
reasons.push(...gradeModelFree(evalCase, classification));
|
|
337
579
|
const turnVerdict = reasons.length === 0 ? 'PASS' : 'FAIL';
|
|
338
580
|
turnResults.push({
|
|
339
581
|
user: turn.user,
|
|
@@ -347,6 +589,7 @@ async function gradeConversationUnit(unit, outcomes, cellResult, judge) {
|
|
|
347
589
|
checks: { passed: deterministicFailures.length === 0, failures: deterministicFailures },
|
|
348
590
|
judge: judgeOutcome,
|
|
349
591
|
reasons,
|
|
592
|
+
...(classification !== undefined ? { classification } : {}),
|
|
350
593
|
});
|
|
351
594
|
for (const reason of reasons)
|
|
352
595
|
cellReasons.push(`${label}: ${reason}`);
|
|
@@ -362,6 +605,13 @@ async function gradeConversationUnit(unit, outcomes, cellResult, judge) {
|
|
|
362
605
|
sutOk: anyTurnRan,
|
|
363
606
|
reasons: cellReasons,
|
|
364
607
|
turns: turnResults,
|
|
608
|
+
// BATCH-25 — the cell-level classification is the LAST round's: a negotiation corpus asserts its
|
|
609
|
+
// outcome on where the exchange ENDED (reject · reject · escalate), so that is the value the
|
|
610
|
+
// confusion matrix and the metrics must read. Every round's own value is in `turns`.
|
|
611
|
+
...(classifications !== undefined && classifications.length > 0
|
|
612
|
+
? { classification: classifications[classifications.length - 1] }
|
|
613
|
+
: {}),
|
|
614
|
+
...(caseTags(evalCase).length > 0 ? { tags: caseTags(evalCase) } : {}),
|
|
365
615
|
};
|
|
366
616
|
}
|
|
367
617
|
//# sourceMappingURL=evalRunner.js.map
|
package/dist/evalRunner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evalRunner.js","sourceRoot":"","sources":["../src/evalRunner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"evalRunner.js","sourceRoot":"","sources":["../src/evalRunner.ts"],"names":[],"mappings":"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"}
|
package/dist/evalSuite.d.ts
CHANGED
|
@@ -9,8 +9,8 @@ import type { EvalSuite } from '#src/evalTypes.js';
|
|
|
9
9
|
* Rejects, with a clear message, at parse time (never silently no-ops or defers to run time):
|
|
10
10
|
* - Malformed YAML.
|
|
11
11
|
* - A suite shape that doesn't match {@link RawSuiteSchema} (missing/wrong-typed fields).
|
|
12
|
-
* - `target.type` other than `"gth-agent"`, `"adk-agent"`,
|
|
13
|
-
* targets are out of scope.
|
|
12
|
+
* - `target.type` other than `"gth-agent"`, `"adk-agent"`, `"ag-ui"`, or `"rater"` — other pluggable
|
|
13
|
+
* CLI/HTTP targets are out of scope.
|
|
14
14
|
* - `target.profile` set to anything other than `"default"`/absent — a single suite-wide profile
|
|
15
15
|
* switch is the `--identities` direction, replaced by the suite-level `identities` list.
|
|
16
16
|
* - A `"adk-agent"` (BATCH-14) target missing its `url`; an `adk-agent` suite that ALSO uses the
|
|
@@ -41,6 +41,16 @@ import type { EvalSuite } from '#src/evalTypes.js';
|
|
|
41
41
|
* - A tool-RESULT assertion (`must_error` / `tool_result_json_path`, BATCH-21) against an
|
|
42
42
|
* `adk-agent` OR `ag-ui` target — tool results exist only on the in-process `gth-agent` target
|
|
43
43
|
* (the AG-UI wire streams call names but no result payloads; A2A exposes no tool trace at all).
|
|
44
|
+
* - A `"rater"` (BATCH-25 Half B) target missing its `rung`, naming one that is not on the approvals
|
|
45
|
+
* ladder, or carrying a `profile`; a `rater` suite with no `classification:` block (the classifier
|
|
46
|
+
* layer would be inert and every case would silently run through the ordinary agent); a `rater`
|
|
47
|
+
* suite using the `identities` matrix (the classification seam is per-case, not per-identity); or
|
|
48
|
+
* a `rater` suite using ANY tool assertion (no agent runs, so there is no trace to grade).
|
|
49
|
+
* - `model_free: true` on a case of any target EXCEPT `rater` — running a case through an agent IS
|
|
50
|
+
* a model call, so the flag could never bite; and `model_free: true` on a case that ALSO declares
|
|
51
|
+
* a `judge:` rubric, since the judge is a second model call the target's `modelCalls` cannot see.
|
|
52
|
+
* - `forced_by` on any target except `rater`, or naming something that is not a mechanism of the
|
|
53
|
+
* approvals gate.
|
|
44
54
|
* - A `judge_profile` containing a path separator or `..`.
|
|
45
55
|
*
|
|
46
56
|
* @param yamlText Raw suite file content.
|