oh-my-knowledge 0.19.0 → 0.20.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.
- package/README.md +205 -8
- package/README.zh.md +200 -7
- package/dist/src/analysis/failure-clusterer.d.ts +96 -0
- package/dist/src/analysis/failure-clusterer.d.ts.map +1 -0
- package/dist/src/analysis/failure-clusterer.js +298 -0
- package/dist/src/analysis/failure-clusterer.js.map +1 -0
- package/dist/src/analysis/sample-diagnostics.d.ts +78 -0
- package/dist/src/analysis/sample-diagnostics.d.ts.map +1 -0
- package/dist/src/analysis/sample-diagnostics.js +259 -0
- package/dist/src/analysis/sample-diagnostics.js.map +1 -0
- package/dist/src/analysis/saturation.d.ts +85 -0
- package/dist/src/analysis/saturation.d.ts.map +1 -0
- package/dist/src/analysis/saturation.js +174 -0
- package/dist/src/analysis/saturation.js.map +1 -0
- package/dist/src/cli.js +751 -5
- package/dist/src/cli.js.map +1 -1
- package/dist/src/eval-core/bootstrap.d.ts +72 -0
- package/dist/src/eval-core/bootstrap.d.ts.map +1 -0
- package/dist/src/eval-core/bootstrap.js +174 -0
- package/dist/src/eval-core/bootstrap.js.map +1 -0
- package/dist/src/eval-core/evaluation-execution.d.ts +15 -1
- package/dist/src/eval-core/evaluation-execution.d.ts.map +1 -1
- package/dist/src/eval-core/evaluation-execution.js +37 -3
- package/dist/src/eval-core/evaluation-execution.js.map +1 -1
- package/dist/src/eval-core/evaluation-job.d.ts +8 -2
- package/dist/src/eval-core/evaluation-job.d.ts.map +1 -1
- package/dist/src/eval-core/evaluation-job.js +7 -1
- package/dist/src/eval-core/evaluation-job.js.map +1 -1
- package/dist/src/eval-core/evaluation-reporting.d.ts.map +1 -1
- package/dist/src/eval-core/evaluation-reporting.js +90 -0
- package/dist/src/eval-core/evaluation-reporting.js.map +1 -1
- package/dist/src/eval-core/schema.d.ts.map +1 -1
- package/dist/src/eval-core/schema.js +69 -0
- package/dist/src/eval-core/schema.js.map +1 -1
- package/dist/src/eval-core/verdict.d.ts +74 -0
- package/dist/src/eval-core/verdict.d.ts.map +1 -0
- package/dist/src/eval-core/verdict.js +283 -0
- package/dist/src/eval-core/verdict.js.map +1 -0
- package/dist/src/eval-workflows/each-evaluation-workflow.d.ts +10 -1
- package/dist/src/eval-workflows/each-evaluation-workflow.d.ts.map +1 -1
- package/dist/src/eval-workflows/each-evaluation-workflow.js +4 -1
- package/dist/src/eval-workflows/each-evaluation-workflow.js.map +1 -1
- package/dist/src/eval-workflows/evaluation-pipeline.d.ts +13 -1
- package/dist/src/eval-workflows/evaluation-pipeline.d.ts.map +1 -1
- package/dist/src/eval-workflows/evaluation-pipeline.js +41 -3
- package/dist/src/eval-workflows/evaluation-pipeline.js.map +1 -1
- package/dist/src/eval-workflows/run-evaluation.d.ts +17 -2
- package/dist/src/eval-workflows/run-evaluation.d.ts.map +1 -1
- package/dist/src/eval-workflows/run-evaluation.js +97 -5
- package/dist/src/eval-workflows/run-evaluation.js.map +1 -1
- package/dist/src/grading/assertions.d.ts +16 -0
- package/dist/src/grading/assertions.d.ts.map +1 -1
- package/dist/src/grading/assertions.js +385 -111
- package/dist/src/grading/assertions.js.map +1 -1
- package/dist/src/grading/debias-validate.d.ts +84 -0
- package/dist/src/grading/debias-validate.d.ts.map +1 -0
- package/dist/src/grading/debias-validate.js +173 -0
- package/dist/src/grading/debias-validate.js.map +1 -0
- package/dist/src/grading/gold-cli.d.ts +88 -0
- package/dist/src/grading/gold-cli.d.ts.map +1 -0
- package/dist/src/grading/gold-cli.js +251 -0
- package/dist/src/grading/gold-cli.js.map +1 -0
- package/dist/src/grading/gold-dataset.d.ts +73 -0
- package/dist/src/grading/gold-dataset.d.ts.map +1 -0
- package/dist/src/grading/gold-dataset.js +161 -0
- package/dist/src/grading/gold-dataset.js.map +1 -0
- package/dist/src/grading/human-gold.d.ts +102 -0
- package/dist/src/grading/human-gold.d.ts.map +1 -0
- package/dist/src/grading/human-gold.js +188 -0
- package/dist/src/grading/human-gold.js.map +1 -0
- package/dist/src/grading/index.d.ts +27 -2
- package/dist/src/grading/index.d.ts.map +1 -1
- package/dist/src/grading/index.js +36 -18
- package/dist/src/grading/index.js.map +1 -1
- package/dist/src/grading/judge.d.ts +65 -2
- package/dist/src/grading/judge.d.ts.map +1 -1
- package/dist/src/grading/judge.js +280 -23
- package/dist/src/grading/judge.js.map +1 -1
- package/dist/src/inputs/eval-config.js +19 -0
- package/dist/src/inputs/eval-config.js.map +1 -1
- package/dist/src/renderer/html-renderer.d.ts.map +1 -1
- package/dist/src/renderer/html-renderer.js +16 -4
- package/dist/src/renderer/html-renderer.js.map +1 -1
- package/dist/src/renderer/layout.d.ts.map +1 -1
- package/dist/src/renderer/layout.js +32 -4
- package/dist/src/renderer/layout.js.map +1 -1
- package/dist/src/renderer/summary.d.ts +28 -1
- package/dist/src/renderer/summary.d.ts.map +1 -1
- package/dist/src/renderer/summary.js +321 -7
- package/dist/src/renderer/summary.js.map +1 -1
- package/dist/src/renderer/table.d.ts.map +1 -1
- package/dist/src/renderer/table.js +63 -2
- package/dist/src/renderer/table.js.map +1 -1
- package/dist/src/types.d.ts +241 -0
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +15 -4
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Verdict — turn a finished report into a one-line ship/no-ship recommendation.
|
|
3
|
+
*
|
|
4
|
+
* Why this exists
|
|
5
|
+
* ---------------
|
|
6
|
+
* v0.21 makes the data trustworthy. v0.22 closes the last mile: senior
|
|
7
|
+
* engineers' #1 complaint is "the report has all the right numbers but I
|
|
8
|
+
* still need 30 minutes to read it before I can decide". This module
|
|
9
|
+
* aggregates the four data sources omk already produces — Bootstrap CI on
|
|
10
|
+
* the pairwise diff, three-layer CI gate, saturation curve, and (when
|
|
11
|
+
* available) Krippendorff α against gold — and emits one of four verdicts:
|
|
12
|
+
*
|
|
13
|
+
* - **PROGRESS** diff CI shows real positive shift, no layer regressed
|
|
14
|
+
* - **CAUTIOUS** positive shift but at least one layer broke its gate,
|
|
15
|
+
* or saturation says we're not powered yet
|
|
16
|
+
* - **REGRESS** diff CI clearly negative, or a layer dropped a gate
|
|
17
|
+
* - **NOISE** diff CI contains 0 — can't separate from noise
|
|
18
|
+
* - **UNDERPOWERED** N too small / saturation low confidence and no signal
|
|
19
|
+
* - **SOLO** single-variant report; nothing to compare against
|
|
20
|
+
*
|
|
21
|
+
* The output is intentionally text-template-driven so the same rule engine
|
|
22
|
+
* powers both `omk bench verdict` (CLI, terse) and the HTML report's
|
|
23
|
+
* top-of-page "verdict pill" (Phase v0.22.2). Both surfaces must agree.
|
|
24
|
+
*
|
|
25
|
+
* Subjectivity caveat: the ship recommendation is rule-based, not statistically
|
|
26
|
+
* proven optimal. Each rule's source (NIST AI 800-3 / Krippendorff thresholds /
|
|
27
|
+
* empirical) is documented inline so users can audit and override.
|
|
28
|
+
*/
|
|
29
|
+
import { evaluateCiGates } from './ci-gates.js';
|
|
30
|
+
/**
|
|
31
|
+
* Compute a verdict for a finished report. Pure function — no I/O.
|
|
32
|
+
*/
|
|
33
|
+
export function computeVerdict(report, options = {}) {
|
|
34
|
+
const { ciThreshold = 3.5, triviallySmallDiff = 0.1 } = options;
|
|
35
|
+
const variants = report.meta?.variants ?? [];
|
|
36
|
+
const summary = report.summary ?? {};
|
|
37
|
+
const sampleCount = report.meta?.sampleCount ?? 0;
|
|
38
|
+
if (variants.length < 2) {
|
|
39
|
+
// Single-variant — no comparison possible. Just report whether the variant
|
|
40
|
+
// passes its own three-layer gate.
|
|
41
|
+
const gate = evaluateCiGates(summary, ciThreshold);
|
|
42
|
+
return {
|
|
43
|
+
level: 'SOLO',
|
|
44
|
+
headline: gate.allPass
|
|
45
|
+
? `SOLO · single variant, three-layer gate PASS @ threshold ${ciThreshold}`
|
|
46
|
+
: `SOLO · single variant, three-layer gate FAIL — see ci output`,
|
|
47
|
+
rationale: {
|
|
48
|
+
layerWinners: gate.lines.join('; '),
|
|
49
|
+
sampleSize: `N=${sampleCount}`,
|
|
50
|
+
},
|
|
51
|
+
variants,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
// Build per-pair verdicts. Convention: variants[0] = control, [1..] = treatments.
|
|
55
|
+
// If --bootstrap wasn't used, pairComparisons is empty — synthesize pseudo-pairs
|
|
56
|
+
// (without CI) so verdictForPair's no-CI path runs and we still get a verdict.
|
|
57
|
+
const explicitPairs = report.meta?.pairComparisons ?? [];
|
|
58
|
+
const pairs = explicitPairs.length > 0
|
|
59
|
+
? explicitPairs
|
|
60
|
+
: variants.slice(1).map((treatment) => ({ control: variants[0], treatment }));
|
|
61
|
+
const perPair = pairs.map((p) => verdictForPair(p, summary, sampleCount, report, ciThreshold, triviallySmallDiff));
|
|
62
|
+
// Worst-case roll-up: REGRESS dominates, then CAUTIOUS, then NOISE/UNDERPOWERED, then PROGRESS.
|
|
63
|
+
const order = ['REGRESS', 'CAUTIOUS', 'UNDERPOWERED', 'NOISE', 'PROGRESS'];
|
|
64
|
+
let topLevel = 'PROGRESS';
|
|
65
|
+
for (const level of order) {
|
|
66
|
+
if (perPair.some((p) => p.level === level)) {
|
|
67
|
+
topLevel = level;
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// Single representative pair for the top-level rationale (the worst one).
|
|
72
|
+
const representative = perPair.find((p) => p.level === topLevel) ?? perPair[0];
|
|
73
|
+
const significance = representative
|
|
74
|
+
? formatSignificance(representative)
|
|
75
|
+
: 'no pairwise comparison available — was --bootstrap used?';
|
|
76
|
+
const layerWinners = formatLayerWinners(summary, variants);
|
|
77
|
+
const sampleSize = formatSampleSize(report);
|
|
78
|
+
const judgeAgreement = formatJudgeAgreement(report);
|
|
79
|
+
const shipRecommendation = recommendation(topLevel, perPair);
|
|
80
|
+
return {
|
|
81
|
+
level: topLevel,
|
|
82
|
+
headline: representative
|
|
83
|
+
? `${topLevel} · ${representative.treatment} vs ${representative.control}: ${representative.headline}`
|
|
84
|
+
: `${topLevel} · ${variants.length} variants`,
|
|
85
|
+
perPair,
|
|
86
|
+
rationale: {
|
|
87
|
+
significance,
|
|
88
|
+
layerWinners,
|
|
89
|
+
sampleSize,
|
|
90
|
+
judgeAgreement,
|
|
91
|
+
shipRecommendation,
|
|
92
|
+
},
|
|
93
|
+
variants,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Per-pair verdict logic. The hierarchy of checks matters:
|
|
98
|
+
* 1. If a layer regressed past the gate → REGRESS (loudest signal).
|
|
99
|
+
* 2. If diff CI is clearly negative → REGRESS.
|
|
100
|
+
* 3. If diff CI contains 0:
|
|
101
|
+
* - and N is too small / saturation low confidence → UNDERPOWERED
|
|
102
|
+
* - otherwise → NOISE
|
|
103
|
+
* 4. If diff CI is positive but trivially small → CAUTIOUS.
|
|
104
|
+
* 5. If diff CI is positive AND treatment passes all gates → PROGRESS.
|
|
105
|
+
* 6. If diff CI is positive but treatment broke a gate → CAUTIOUS.
|
|
106
|
+
*/
|
|
107
|
+
function verdictForPair(pair, summary, sampleCount, report, ciThreshold, triviallySmallDiff) {
|
|
108
|
+
const { control, treatment, diffBootstrapCI: diff } = pair;
|
|
109
|
+
// Layer-gate check: did any layer fall below threshold for either variant?
|
|
110
|
+
const cGate = evaluateCiGates({ [control]: summary[control] }, ciThreshold);
|
|
111
|
+
const tGate = evaluateCiGates({ [treatment]: summary[treatment] }, ciThreshold);
|
|
112
|
+
// No bootstrap CI available → fall back to point-estimate diff comparison.
|
|
113
|
+
if (!diff) {
|
|
114
|
+
const cMean = avgComposite(summary[control]);
|
|
115
|
+
const tMean = avgComposite(summary[treatment]);
|
|
116
|
+
const delta = tMean - cMean;
|
|
117
|
+
const headline = `Δ=${delta >= 0 ? '+' : ''}${delta.toFixed(2)} (no CI; rerun with --bootstrap)`;
|
|
118
|
+
if (Math.abs(delta) < triviallySmallDiff) {
|
|
119
|
+
return { control, treatment, level: 'NOISE', headline };
|
|
120
|
+
}
|
|
121
|
+
return {
|
|
122
|
+
control,
|
|
123
|
+
treatment,
|
|
124
|
+
level: delta > 0 ? 'CAUTIOUS' : 'REGRESS',
|
|
125
|
+
headline,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
const headlineCore = `Δ=${diff.estimate >= 0 ? '+' : ''}${diff.estimate} CI=[${diff.low}, ${diff.high}]`;
|
|
129
|
+
if (!diff.significant) {
|
|
130
|
+
// Diff CI contains 0. Distinguish "underpowered (saturation says: more samples needed)"
|
|
131
|
+
// from "noise (saturation says: we're saturated, the effect just isn't there)".
|
|
132
|
+
const satVerdict = report.variance?.saturation?.verdicts?.[treatment];
|
|
133
|
+
const underpowered = sampleCount < 20 ||
|
|
134
|
+
(satVerdict && !satVerdict.saturated && satVerdict.confidence !== 'high');
|
|
135
|
+
if (underpowered) {
|
|
136
|
+
return {
|
|
137
|
+
control,
|
|
138
|
+
treatment,
|
|
139
|
+
level: 'UNDERPOWERED',
|
|
140
|
+
headline: `${headlineCore} · N=${sampleCount} likely too small`,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
return { control, treatment, level: 'NOISE', headline: `${headlineCore} · CI spans 0` };
|
|
144
|
+
}
|
|
145
|
+
// diff is significant.
|
|
146
|
+
if (diff.estimate < 0) {
|
|
147
|
+
return { control, treatment, level: 'REGRESS', headline: `${headlineCore} · treatment loses` };
|
|
148
|
+
}
|
|
149
|
+
// diff > 0 and significant. Did treatment break a gate?
|
|
150
|
+
if (!tGate.allPass) {
|
|
151
|
+
return {
|
|
152
|
+
control,
|
|
153
|
+
treatment,
|
|
154
|
+
level: 'CAUTIOUS',
|
|
155
|
+
headline: `${headlineCore} · gain real, but treatment broke layer gate`,
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
// Trivially small diff?
|
|
159
|
+
if (diff.estimate < triviallySmallDiff) {
|
|
160
|
+
return {
|
|
161
|
+
control,
|
|
162
|
+
treatment,
|
|
163
|
+
level: 'CAUTIOUS',
|
|
164
|
+
headline: `${headlineCore} · significant but practically tiny`,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
// Did control break a gate? Then treatment winning isn't surprising — flag.
|
|
168
|
+
if (!cGate.allPass) {
|
|
169
|
+
return {
|
|
170
|
+
control,
|
|
171
|
+
treatment,
|
|
172
|
+
level: 'PROGRESS',
|
|
173
|
+
headline: `${headlineCore} · treatment recovers from broken control`,
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
return { control, treatment, level: 'PROGRESS', headline: `${headlineCore} · clean win` };
|
|
177
|
+
}
|
|
178
|
+
function avgComposite(s) {
|
|
179
|
+
if (!s)
|
|
180
|
+
return 0;
|
|
181
|
+
if (typeof s.avgCompositeScore === 'number')
|
|
182
|
+
return s.avgCompositeScore;
|
|
183
|
+
// Fallback: average of the three layers when composite isn't on the summary.
|
|
184
|
+
const layers = [s.avgFactScore, s.avgBehaviorScore, s.avgJudgeScore].filter((x) => typeof x === 'number');
|
|
185
|
+
if (layers.length === 0)
|
|
186
|
+
return 0;
|
|
187
|
+
return layers.reduce((a, b) => a + b, 0) / layers.length;
|
|
188
|
+
}
|
|
189
|
+
function formatSignificance(p) {
|
|
190
|
+
return `${p.level} · ${p.headline}`;
|
|
191
|
+
}
|
|
192
|
+
function formatLayerWinners(summary, variants) {
|
|
193
|
+
if (variants.length < 2)
|
|
194
|
+
return '—';
|
|
195
|
+
const control = variants[0];
|
|
196
|
+
const treatment = variants[1];
|
|
197
|
+
const c = summary[control];
|
|
198
|
+
const t = summary[treatment];
|
|
199
|
+
if (!c || !t)
|
|
200
|
+
return '—';
|
|
201
|
+
const layers = [
|
|
202
|
+
['fact', c.avgFactScore, t.avgFactScore],
|
|
203
|
+
['behavior', c.avgBehaviorScore, t.avgBehaviorScore],
|
|
204
|
+
['judge', c.avgJudgeScore, t.avgJudgeScore],
|
|
205
|
+
];
|
|
206
|
+
return layers
|
|
207
|
+
.map(([name, cv, tv]) => {
|
|
208
|
+
if (typeof cv !== 'number' || typeof tv !== 'number')
|
|
209
|
+
return `${name}=—`;
|
|
210
|
+
const delta = tv - cv;
|
|
211
|
+
const sign = delta >= 0 ? '+' : '';
|
|
212
|
+
return `${name}: ${cv.toFixed(2)}→${tv.toFixed(2)} (${sign}${delta.toFixed(2)})`;
|
|
213
|
+
})
|
|
214
|
+
.join(', ');
|
|
215
|
+
}
|
|
216
|
+
function formatSampleSize(report) {
|
|
217
|
+
const n = report.meta?.sampleCount ?? 0;
|
|
218
|
+
const sat = report.variance?.saturation?.verdicts;
|
|
219
|
+
if (!sat)
|
|
220
|
+
return `N=${n}`;
|
|
221
|
+
const variants = report.meta?.variants ?? [];
|
|
222
|
+
const treatment = variants[1];
|
|
223
|
+
const v = treatment ? sat[treatment] : undefined;
|
|
224
|
+
if (!v)
|
|
225
|
+
return `N=${n}`;
|
|
226
|
+
if (v.saturated)
|
|
227
|
+
return `N=${n}, saturated @ N=${v.atN ?? '?'} (${v.confidence} confidence)`;
|
|
228
|
+
return `N=${n}, not yet saturated (${v.confidence} confidence)`;
|
|
229
|
+
}
|
|
230
|
+
function formatJudgeAgreement(report) {
|
|
231
|
+
const a = report.meta?.humanAgreement;
|
|
232
|
+
if (!a)
|
|
233
|
+
return undefined;
|
|
234
|
+
const verdict = Number.isNaN(a.alpha)
|
|
235
|
+
? 'undefined'
|
|
236
|
+
: a.alpha >= 0.8 ? 'strong'
|
|
237
|
+
: a.alpha >= 0.667 ? 'acceptable'
|
|
238
|
+
: a.alpha >= 0.4 ? 'weak'
|
|
239
|
+
: 'poor';
|
|
240
|
+
return `α=${Number.isNaN(a.alpha) ? 'NaN' : a.alpha.toFixed(2)} (${verdict}) vs gold ${a.goldAnnotator}`;
|
|
241
|
+
}
|
|
242
|
+
function recommendation(level, _perPair) {
|
|
243
|
+
switch (level) {
|
|
244
|
+
case 'PROGRESS':
|
|
245
|
+
return 'SHIP — treatment is significantly better and passes all layer gates.';
|
|
246
|
+
case 'CAUTIOUS':
|
|
247
|
+
return 'INVESTIGATE — the gain is real but at least one warning fired (broken gate, trivially small, or partial recovery). Do not ship blind.';
|
|
248
|
+
case 'REGRESS':
|
|
249
|
+
return 'DO NOT SHIP — treatment regresses. Check the worst layer and re-run with the fix.';
|
|
250
|
+
case 'NOISE':
|
|
251
|
+
return 'NO CALL — diff CI spans 0. The data shows no separable effect at this N.';
|
|
252
|
+
case 'UNDERPOWERED':
|
|
253
|
+
return 'INSUFFICIENT DATA — increase N (try 2× current) and re-run.';
|
|
254
|
+
case 'SOLO':
|
|
255
|
+
return 'ADD A CONTROL — single-variant report. Re-run with --control baseline --treatment <name>.';
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Plain-text formatter for `omk bench verdict <id>`. Stays under 6 lines per the
|
|
260
|
+
* v0.22 spec — one verdict + four rationale bullets + one ship recommendation.
|
|
261
|
+
*/
|
|
262
|
+
export function formatVerdictText(result, options = {}) {
|
|
263
|
+
const lines = [];
|
|
264
|
+
lines.push(`Verdict: ${result.level}`);
|
|
265
|
+
lines.push(` ${result.headline}`);
|
|
266
|
+
if (result.rationale.layerWinners)
|
|
267
|
+
lines.push(` Layer winners: ${result.rationale.layerWinners}`);
|
|
268
|
+
if (result.rationale.sampleSize)
|
|
269
|
+
lines.push(` Sample size: ${result.rationale.sampleSize}`);
|
|
270
|
+
if (result.rationale.judgeAgreement)
|
|
271
|
+
lines.push(` Judge α: ${result.rationale.judgeAgreement}`);
|
|
272
|
+
if (result.rationale.shipRecommendation)
|
|
273
|
+
lines.push(` ${result.rationale.shipRecommendation}`);
|
|
274
|
+
if (options.verbose && result.perPair && result.perPair.length > 1) {
|
|
275
|
+
lines.push('');
|
|
276
|
+
lines.push(' Per-pair detail:');
|
|
277
|
+
for (const p of result.perPair) {
|
|
278
|
+
lines.push(` ${p.level}: ${p.treatment} vs ${p.control} — ${p.headline}`);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
return lines.join('\n');
|
|
282
|
+
}
|
|
283
|
+
//# sourceMappingURL=verdict.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verdict.js","sourceRoot":"","sources":["../../../src/eval-core/verdict.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,12 @@ interface RunSingleEvaluationOptions {
|
|
|
17
17
|
skipPreflight: boolean;
|
|
18
18
|
mcpConfig?: string;
|
|
19
19
|
verbose: boolean;
|
|
20
|
+
/** Forwarded to grade(); each sample × dimension is judged N times. Default 1. */
|
|
21
|
+
judgeRepeat?: number;
|
|
22
|
+
/** Forwarded to pipeline; ≥ 2 entries triggers multi-judge ensemble mode. */
|
|
23
|
+
judgeModels?: import('../types.js').JudgeConfig[];
|
|
24
|
+
/** v0.21 Phase 3a length-debias toggle. Default true. */
|
|
25
|
+
lengthDebias?: boolean;
|
|
20
26
|
}
|
|
21
27
|
export interface EachSkillResult {
|
|
22
28
|
name: string;
|
|
@@ -94,7 +100,7 @@ export declare function buildEachReport({ skillDir, skillEntries, skillResults,
|
|
|
94
100
|
};
|
|
95
101
|
job: import("../types.js").EvaluationJob;
|
|
96
102
|
};
|
|
97
|
-
export declare function executeEachEvaluationRuns({ skillDir, skillEntries, model, judgeModel, outputDir, project, owner, tags, noJudge, concurrency, timeoutMs, executorName, judgeExecutorName, jobStore, persistJob, onProgress, onSkillProgress, skipPreflight, mcpConfig, verbose, repeat, runSingleEvaluation, }: {
|
|
103
|
+
export declare function executeEachEvaluationRuns({ skillDir, skillEntries, model, judgeModel, outputDir, project, owner, tags, noJudge, concurrency, timeoutMs, executorName, judgeExecutorName, jobStore, persistJob, onProgress, onSkillProgress, skipPreflight, mcpConfig, verbose, repeat, judgeRepeat, judgeModels, lengthDebias, runSingleEvaluation, }: {
|
|
98
104
|
skillDir: string;
|
|
99
105
|
skillEntries: Array<{
|
|
100
106
|
name: string;
|
|
@@ -125,6 +131,9 @@ export declare function executeEachEvaluationRuns({ skillDir, skillEntries, mode
|
|
|
125
131
|
mcpConfig?: string;
|
|
126
132
|
verbose?: boolean;
|
|
127
133
|
repeat?: number;
|
|
134
|
+
judgeRepeat?: number;
|
|
135
|
+
judgeModels?: import('../types.js').JudgeConfig[];
|
|
136
|
+
lengthDebias?: boolean;
|
|
128
137
|
runSingleEvaluation: (options: RunSingleEvaluationOptions) => Promise<{
|
|
129
138
|
report: Report;
|
|
130
139
|
filePath: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"each-evaluation-workflow.d.ts","sourceRoot":"","sources":["../../../src/eval-workflows/each-evaluation-workflow.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7H,UAAU,0BAA0B;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,IAAI,CAAC;IACf,UAAU,EAAE,KAAK,CAAC;IAClB,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACpC,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"each-evaluation-workflow.d.ts","sourceRoot":"","sources":["../../../src/eval-workflows/each-evaluation-workflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -92,7 +92,7 @@ export function buildEachReport({ skillDir, skillEntries, skillResults, model, j
|
|
|
92
92
|
job,
|
|
93
93
|
};
|
|
94
94
|
}
|
|
95
|
-
export async function executeEachEvaluationRuns({ skillDir, skillEntries, model, judgeModel, outputDir = DEFAULT_OUTPUT_DIR, project, owner, tags, noJudge = false, concurrency = 1, timeoutMs, executorName, judgeExecutorName, jobStore = null, persistJob = true, onProgress = null, onSkillProgress = null, skipPreflight = false, mcpConfig, verbose = false, repeat, runSingleEvaluation, }) {
|
|
95
|
+
export async function executeEachEvaluationRuns({ skillDir, skillEntries, model, judgeModel, outputDir = DEFAULT_OUTPUT_DIR, project, owner, tags, noJudge = false, concurrency = 1, timeoutMs, executorName, judgeExecutorName, jobStore = null, persistJob = true, onProgress = null, onSkillProgress = null, skipPreflight = false, mcpConfig, verbose = false, repeat, judgeRepeat, judgeModels, lengthDebias, runSingleEvaluation, }) {
|
|
96
96
|
const skillResults = [];
|
|
97
97
|
let totalCostUSD = 0;
|
|
98
98
|
for (let i = 0; i < skillEntries.length; i++) {
|
|
@@ -124,6 +124,9 @@ export async function executeEachEvaluationRuns({ skillDir, skillEntries, model,
|
|
|
124
124
|
skipPreflight: skipPreflight || i > 0,
|
|
125
125
|
mcpConfig,
|
|
126
126
|
verbose,
|
|
127
|
+
judgeRepeat,
|
|
128
|
+
judgeModels,
|
|
129
|
+
lengthDebias,
|
|
127
130
|
});
|
|
128
131
|
skillResults.push({
|
|
129
132
|
name: entry.name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"each-evaluation-workflow.js","sourceRoot":"","sources":["../../../src/eval-workflows/each-evaluation-workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACxG,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACxI,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"each-evaluation-workflow.js","sourceRoot":"","sources":["../../../src/eval-workflows/each-evaluation-workflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,8 +34,20 @@ export interface EvaluationPipelineOptions {
|
|
|
34
34
|
repeat?: number;
|
|
35
35
|
/** 透传到 meta.request.each */
|
|
36
36
|
each?: boolean;
|
|
37
|
+
/** 透传到 meta.request.judgeRepeat 与 grade(),每条 sample × dimension judge N 次 */
|
|
38
|
+
judgeRepeat?: number;
|
|
39
|
+
/** Multi-judge ensemble configs (≥ 2 entries triggers ensemble mode). */
|
|
40
|
+
judgeModels?: import('../types.js').JudgeConfig[];
|
|
41
|
+
/** --bootstrap. */
|
|
42
|
+
bootstrap?: boolean;
|
|
43
|
+
/** --bootstrap-samples N. Default 1000. */
|
|
44
|
+
bootstrapSamples?: number;
|
|
45
|
+
/** v0.21 length-debias toggle. Default true; --no-debias-length flips to false. */
|
|
46
|
+
lengthDebias?: boolean;
|
|
47
|
+
/** v0.22 — hard budget caps. */
|
|
48
|
+
budget?: import('../types.js').EvalBudget;
|
|
37
49
|
}
|
|
38
|
-
export declare function executeEvaluationPipeline({ samplesPath, skillDir, samples, tasks, artifacts, model, judgeModel, noJudge, executorName, judgeExecutorName, executor, judgeExecutor, outputDir, project, owner, tags, blind, concurrency, timeoutMs, noCache, jobStore, persistJob, onProgress, skipPreflight, verbose, retry, existingResults, requires, layeredStats, repeat, each, }: EvaluationPipelineOptions): Promise<{
|
|
50
|
+
export declare function executeEvaluationPipeline({ samplesPath, skillDir, samples, tasks, artifacts, model, judgeModel, noJudge, executorName, judgeExecutorName, executor, judgeExecutor, outputDir, project, owner, tags, blind, concurrency, timeoutMs, noCache, jobStore, persistJob, onProgress, skipPreflight, verbose, retry, existingResults, requires, layeredStats, repeat, each, judgeRepeat, judgeModels, bootstrap, bootstrapSamples, lengthDebias, budget, }: EvaluationPipelineOptions): Promise<{
|
|
39
51
|
report: Report;
|
|
40
52
|
filePath: string | null;
|
|
41
53
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluation-pipeline.d.ts","sourceRoot":"","sources":["../../../src/eval-workflows/evaluation-pipeline.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAgBjF,OAAO,KAAK,EACV,QAAQ,EAIR,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,MAAM,EACN,MAAM,EACN,IAAI,EACJ,aAAa,EACd,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"evaluation-pipeline.d.ts","sourceRoot":"","sources":["../../../src/eval-workflows/evaluation-pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import { preflightDependencies, formatDependencyErrors } from '../eval-core/depe
|
|
|
9
9
|
import { createFileJobStore, DEFAULT_JOBS_DIR, } from '../server/job-store.js';
|
|
10
10
|
import { stopAllServers } from '../inputs/mcp-resolver.js';
|
|
11
11
|
import { buildEvaluationRequest, createFailedJob, createEvaluationRun, createQueuedJob, createSucceededJob, finalizeEvaluationRun, markJobRunning, failEvaluationRun, } from '../eval-core/evaluation-job.js';
|
|
12
|
-
async function initializeEvaluationRunState({ samplesPath, skillDir, artifacts, model, judgeModel, noJudge, executorName, judgeExecutorName, concurrency, timeoutMs, noCache, blind, project, owner, tags, runId, jobStore, persistJob, repeat, each, }) {
|
|
12
|
+
async function initializeEvaluationRunState({ samplesPath, skillDir, artifacts, model, judgeModel, noJudge, executorName, judgeExecutorName, concurrency, timeoutMs, noCache, blind, project, owner, tags, runId, jobStore, persistJob, repeat, each, judgeRepeat, judgeModels, bootstrap, bootstrapSamples, lengthDebias, budget, }) {
|
|
13
13
|
const request = buildEvaluationRequest({
|
|
14
14
|
samplesPath,
|
|
15
15
|
skillDir,
|
|
@@ -29,6 +29,12 @@ async function initializeEvaluationRunState({ samplesPath, skillDir, artifacts,
|
|
|
29
29
|
tags,
|
|
30
30
|
repeat,
|
|
31
31
|
each,
|
|
32
|
+
judgeRepeat,
|
|
33
|
+
judgeModels,
|
|
34
|
+
bootstrap,
|
|
35
|
+
bootstrapSamples,
|
|
36
|
+
lengthDebias,
|
|
37
|
+
budget,
|
|
32
38
|
});
|
|
33
39
|
const createdAt = new Date().toISOString();
|
|
34
40
|
const { run: initialRun, startedAt } = createEvaluationRun(runId, createdAt);
|
|
@@ -120,7 +126,7 @@ function finalizeEvaluationReport({ report, results, artifacts, variantNames, bl
|
|
|
120
126
|
}
|
|
121
127
|
return report;
|
|
122
128
|
}
|
|
123
|
-
export async function executeEvaluationPipeline({ samplesPath, skillDir, samples, tasks, artifacts, model, judgeModel, noJudge, executorName, judgeExecutorName, executor, judgeExecutor, outputDir = DEFAULT_OUTPUT_DIR, project, owner, tags, blind = false, concurrency = 1, timeoutMs, noCache = false, jobStore = null, persistJob = true, onProgress = null, skipPreflight = false, verbose = false, retry = 0, existingResults, requires, layeredStats = false, repeat, each, }) {
|
|
129
|
+
export async function executeEvaluationPipeline({ samplesPath, skillDir, samples, tasks, artifacts, model, judgeModel, noJudge, executorName, judgeExecutorName, executor, judgeExecutor, outputDir = DEFAULT_OUTPUT_DIR, project, owner, tags, blind = false, concurrency = 1, timeoutMs, noCache = false, jobStore = null, persistJob = true, onProgress = null, skipPreflight = false, verbose = false, retry = 0, existingResults, requires, layeredStats = false, repeat, each, judgeRepeat, judgeModels, bootstrap, bootstrapSamples, lengthDebias = true, budget, }) {
|
|
124
130
|
const variantNames = artifacts.map((artifact) => artifact.name);
|
|
125
131
|
const runState = await initializeEvaluationRunState({
|
|
126
132
|
samplesPath,
|
|
@@ -143,6 +149,12 @@ export async function executeEvaluationPipeline({ samplesPath, skillDir, samples
|
|
|
143
149
|
persistJob,
|
|
144
150
|
repeat,
|
|
145
151
|
each,
|
|
152
|
+
judgeRepeat,
|
|
153
|
+
judgeModels,
|
|
154
|
+
bootstrap,
|
|
155
|
+
bootstrapSamples,
|
|
156
|
+
lengthDebias,
|
|
157
|
+
budget,
|
|
146
158
|
});
|
|
147
159
|
try {
|
|
148
160
|
if (!skipPreflight) {
|
|
@@ -159,7 +171,22 @@ export async function executeEvaluationPipeline({ samplesPath, skillDir, samples
|
|
|
159
171
|
throw new Error(formatDependencyErrors(depResult.missing));
|
|
160
172
|
}
|
|
161
173
|
}
|
|
162
|
-
|
|
174
|
+
// Pre-build a per-executor map for ensemble judges. Each unique executor name
|
|
175
|
+
// gets one ExecutorFn, shared across all judges using that executor. The default
|
|
176
|
+
// judge's executor is also included so single-judge fallbacks have it available.
|
|
177
|
+
let judgeExecutors;
|
|
178
|
+
if (judgeModels && judgeModels.length >= 2) {
|
|
179
|
+
const { createExecutor } = await import('../executors/index.js');
|
|
180
|
+
judgeExecutors = {};
|
|
181
|
+
const seen = new Set();
|
|
182
|
+
for (const jc of judgeModels) {
|
|
183
|
+
if (!seen.has(jc.executor)) {
|
|
184
|
+
seen.add(jc.executor);
|
|
185
|
+
judgeExecutors[jc.executor] = createExecutor(jc.executor);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
const { results, totalCostUSD, skipped, budgetExhausted } = await executeTasks({
|
|
163
190
|
tasks,
|
|
164
191
|
executor,
|
|
165
192
|
judgeExecutor,
|
|
@@ -174,6 +201,11 @@ export async function executeEvaluationPipeline({ samplesPath, skillDir, samples
|
|
|
174
201
|
onProgress,
|
|
175
202
|
retry,
|
|
176
203
|
existingResults,
|
|
204
|
+
judgeRepeat,
|
|
205
|
+
judgeModels,
|
|
206
|
+
judgeExecutors,
|
|
207
|
+
lengthDebias,
|
|
208
|
+
budget,
|
|
177
209
|
});
|
|
178
210
|
if (skipped > 0 && onProgress) {
|
|
179
211
|
onProgress({ phase: 'done', completed: tasks.length, total: tasks.length, sample_id: '', variant: '', skipped: true });
|
|
@@ -203,6 +235,12 @@ export async function executeEvaluationPipeline({ samplesPath, skillDir, samples
|
|
|
203
235
|
blind,
|
|
204
236
|
samplesPath,
|
|
205
237
|
});
|
|
238
|
+
if (budgetExhausted) {
|
|
239
|
+
report.meta.budgetExhausted = true;
|
|
240
|
+
}
|
|
241
|
+
if (budget) {
|
|
242
|
+
report.meta.budget = budget;
|
|
243
|
+
}
|
|
206
244
|
const filePath = persistReport(report, outputDir);
|
|
207
245
|
await persistSuccessfulJob(runState, job);
|
|
208
246
|
return { report, filePath };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluation-pipeline.js","sourceRoot":"","sources":["../../../src/eval-workflows/evaluation-pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACzI,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAEnG,OAAO,EACL,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,cAAc,EACd,iBAAiB,GAClB,MAAM,gCAAgC,CAAC;AA4BxC,KAAK,UAAU,4BAA4B,CAAC,EAC1C,WAAW,EACX,QAAQ,EACR,SAAS,EACT,KAAK,EACL,UAAU,EACV,OAAO,EACP,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,OAAO,EACP,KAAK,EACL,OAAO,EACP,KAAK,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,UAAU,EACV,MAAM,EACN,IAAI,
|
|
1
|
+
{"version":3,"file":"evaluation-pipeline.js","sourceRoot":"","sources":["../../../src/eval-workflows/evaluation-pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,6 +30,21 @@ interface CommonEvaluationOptions {
|
|
|
30
30
|
/** --each 模式标记, true 表示当前评测是 each 批量流程(每个 skill 独立对比 baseline)。
|
|
31
31
|
* 记入 report.meta.request.each。 */
|
|
32
32
|
each?: boolean;
|
|
33
|
+
/** --judge-repeat N. 每条 sample × dimension 调 LLM judge N 次, 输出 stddev (judge 自一致性).
|
|
34
|
+
* 默认 1 (单次). 用于量化 LLM judge 在该 rubric 上的稳定性 — stddev 高 = 评分噪声大. */
|
|
35
|
+
judgeRepeat?: number;
|
|
36
|
+
/** --judge-models executor:model,executor:model,... — multi-judge ensemble. ≥ 2 个
|
|
37
|
+
* judge 时每条 sample × dimension 由所有 judge 各自打分, 输出 inter-judge agreement. */
|
|
38
|
+
judgeModels?: import('../types.js').JudgeConfig[];
|
|
39
|
+
/** --bootstrap. Distribution-free CI on each variant mean + pairwise diff. */
|
|
40
|
+
bootstrap?: boolean;
|
|
41
|
+
/** --bootstrap-samples N. Default 1000. */
|
|
42
|
+
bootstrapSamples?: number;
|
|
43
|
+
/** v0.21 Phase 3a length-debias toggle. Default true (judge prompt v3-cot-length).
|
|
44
|
+
* CLI passes false when --no-debias-length is set. */
|
|
45
|
+
lengthDebias?: boolean;
|
|
46
|
+
/** v0.22 — hard budget caps. */
|
|
47
|
+
budget?: import('../types.js').EvalBudget;
|
|
33
48
|
}
|
|
34
49
|
export interface RunEvaluationOptions extends CommonEvaluationOptions {
|
|
35
50
|
samplesPath: string;
|
|
@@ -82,7 +97,7 @@ export interface DryRunReport extends DryRunBase {
|
|
|
82
97
|
samplesPath: string;
|
|
83
98
|
tasks: DryRunTask[];
|
|
84
99
|
}
|
|
85
|
-
export declare function runEvaluation({ samplesPath, skillDir, variantSpecs, artifacts, model, judgeModel, outputDir, project, owner, tags, noJudge, dryRun, blind, concurrency, timeoutMs, noCache, executorName, judgeExecutorName, jobStore, persistJob, onProgress, skipPreflight, mcpConfig, verbose, retry, resume, layeredStats, repeat, each, }: RunEvaluationOptions): Promise<{
|
|
100
|
+
export declare function runEvaluation({ samplesPath, skillDir, variantSpecs, artifacts, model, judgeModel, outputDir, project, owner, tags, noJudge, dryRun, blind, concurrency, timeoutMs, noCache, executorName, judgeExecutorName, jobStore, persistJob, onProgress, skipPreflight, mcpConfig, verbose, retry, resume, layeredStats, repeat, each, judgeRepeat, judgeModels, bootstrap, bootstrapSamples, lengthDebias, budget, }: RunEvaluationOptions): Promise<{
|
|
86
101
|
report: Report | DryRunReport;
|
|
87
102
|
filePath: string | null;
|
|
88
103
|
}>;
|
|
@@ -98,7 +113,7 @@ export interface DryRunEachReport extends DryRunBase {
|
|
|
98
113
|
artifacts: DryRunEachSkill[];
|
|
99
114
|
}
|
|
100
115
|
export declare function buildVarianceData(runs: Report[]): VarianceData | null;
|
|
101
|
-
export declare function runEachEvaluation({ skillDir, model, judgeModel, outputDir, project, owner, tags, noJudge, dryRun, concurrency, timeoutMs, executorName, judgeExecutorName, jobStore, persistJob, onProgress, onSkillProgress, skipPreflight, mcpConfig, verbose, repeat, }: RunEachEvaluationOptions): Promise<{
|
|
116
|
+
export declare function runEachEvaluation({ skillDir, model, judgeModel, outputDir, project, owner, tags, noJudge, dryRun, concurrency, timeoutMs, executorName, judgeExecutorName, jobStore, persistJob, onProgress, onSkillProgress, skipPreflight, mcpConfig, verbose, repeat, judgeRepeat, judgeModels, lengthDebias, }: RunEachEvaluationOptions): Promise<{
|
|
102
117
|
report: Report | DryRunEachReport;
|
|
103
118
|
filePath: string | null;
|
|
104
119
|
}>;
|