@crowandraven/evalkeeper 0.3.0 → 0.4.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/dist/common.js +4 -2
- package/dist/common.js.map +1 -1
- package/dist/memoryStore.js +13 -0
- package/dist/memoryStore.js.map +1 -1
- package/dist/runner.js +34 -13
- package/dist/runner.js.map +1 -1
- package/dist/stats.d.ts +5 -1
- package/dist/stats.js +21 -6
- package/dist/stats.js.map +1 -1
- package/dist/store.d.ts +11 -0
- package/dist/testing.js +50 -0
- package/dist/testing.js.map +1 -1
- package/package.json +1 -1
- package/src/common.ts +5 -2
- package/src/memoryStore.ts +18 -0
- package/src/runner.ts +60 -31
- package/src/stats.ts +19 -6
- package/src/store.ts +14 -0
- package/src/testing.ts +58 -0
- package/templates/app/evals/[suite]/page.tsx +14 -8
- package/templates/app/evals/page.tsx +19 -15
- package/templates/components/evalkeeper/AddCase.tsx +2 -1
- package/templates/components/evalkeeper/AnswerKey.tsx +14 -15
- package/templates/components/evalkeeper/ConfirmAnswer.tsx +46 -0
- package/templates/components/evalkeeper/RefreshWhile.tsx +16 -7
- package/templates/components/evalkeeper/RollBack.tsx +62 -0
- package/templates/components/evalkeeper/SettingsHistory.tsx +6 -20
- package/templates/components/evalkeeper/Submit.tsx +13 -4
package/dist/testing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crowandraven/evalkeeper",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "An open-source eval harness for TypeScript apps: test each AI feature against answers people confirm, compare models on accuracy, cost, and speed, and choose the live model on evidence.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
package/src/common.ts
CHANGED
|
@@ -77,9 +77,12 @@ export function withCountedWords(text: string): string {
|
|
|
77
77
|
* A number with an optional "k" or "m" ("150k", "1.5m"). It starts only
|
|
78
78
|
* where a number starts and reads it once (the lookahead and backreference
|
|
79
79
|
* keep the digits from being retried), so long digit runs in model output
|
|
80
|
-
* stay linear. A number glued to a word ("3rd", "10am") doesn't count.
|
|
80
|
+
* stay linear. A number glued to a word ("3rd", "10am") doesn't count. A
|
|
81
|
+
* comma belongs to a number only as a thousands separator ("150,000"), so
|
|
82
|
+
* "In 2020, I joined" reads 2020, not "2020,".
|
|
81
83
|
*/
|
|
82
|
-
const NUMBER =
|
|
84
|
+
const NUMBER =
|
|
85
|
+
/(?<![\d,.])(?=((?:\d{1,3}(?:,\d{3})+|\d+)(?:\.\d+)?))\1\s*([km])?\b/gi;
|
|
83
86
|
|
|
84
87
|
/**
|
|
85
88
|
* Numbers the text states that appear in none of the sources: likely invented.
|
package/src/memoryStore.ts
CHANGED
|
@@ -246,6 +246,10 @@ export function memoryStore(): EvalStore &
|
|
|
246
246
|
async listOutputs(runId) {
|
|
247
247
|
return outputs.filter((o) => o.runId === runId);
|
|
248
248
|
},
|
|
249
|
+
async listOutputsFor(runIds) {
|
|
250
|
+
const ids = new Set(runIds);
|
|
251
|
+
return outputs.filter((o) => ids.has(o.runId));
|
|
252
|
+
},
|
|
249
253
|
async findReusableOutput(requestHash, since) {
|
|
250
254
|
return (
|
|
251
255
|
outputs
|
|
@@ -259,6 +263,20 @@ export function memoryStore(): EvalStore &
|
|
|
259
263
|
.sort((a, b) => +b.createdAt - +a.createdAt)[0] ?? null
|
|
260
264
|
);
|
|
261
265
|
},
|
|
266
|
+
async findReusableHashes(requestHashes, since) {
|
|
267
|
+
const wanted = new Set(requestHashes);
|
|
268
|
+
return new Set(
|
|
269
|
+
outputs
|
|
270
|
+
.filter(
|
|
271
|
+
(o) =>
|
|
272
|
+
wanted.has(o.requestHash) &&
|
|
273
|
+
!o.reused &&
|
|
274
|
+
!o.error &&
|
|
275
|
+
o.createdAt >= since,
|
|
276
|
+
)
|
|
277
|
+
.map((o) => o.requestHash),
|
|
278
|
+
);
|
|
279
|
+
},
|
|
262
280
|
async createOutput(data) {
|
|
263
281
|
const o: OutputRecord = { ...data, id: id("out"), createdAt: now() };
|
|
264
282
|
outputs.push(o);
|
package/src/runner.ts
CHANGED
|
@@ -24,6 +24,7 @@ import type {
|
|
|
24
24
|
EvalStore,
|
|
25
25
|
RunMetrics,
|
|
26
26
|
RunRecord,
|
|
27
|
+
OutputRecord,
|
|
27
28
|
} from "./store.js";
|
|
28
29
|
import { withTimeout } from "./timeout.js";
|
|
29
30
|
import { SCHEDULED } from "./weekly.js";
|
|
@@ -334,29 +335,36 @@ export function createRunner(opts: RunnerOptions) {
|
|
|
334
335
|
]);
|
|
335
336
|
const answers = cases.length * repeats;
|
|
336
337
|
const since = new Date(Date.now() - REUSE_DAYS * 86_400_000);
|
|
337
|
-
const
|
|
338
|
-
?
|
|
339
|
-
: (
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
338
|
+
const hashes = o.fresh
|
|
339
|
+
? []
|
|
340
|
+
: cases.flatMap((c) =>
|
|
341
|
+
Array.from({ length: repeats }, (_, i) =>
|
|
342
|
+
requestHashFor({
|
|
343
|
+
suite: suite.key,
|
|
344
|
+
model,
|
|
345
|
+
effort,
|
|
346
|
+
prompt,
|
|
347
|
+
input: c.input,
|
|
348
|
+
repeat: i + 1,
|
|
349
|
+
temperature,
|
|
350
|
+
maxOutputTokens: cap,
|
|
351
|
+
}),
|
|
352
|
+
),
|
|
353
|
+
);
|
|
354
|
+
// One query where the store can: a lookup per answer is slow on a
|
|
355
|
+
// remote database.
|
|
356
|
+
const found = store.findReusableHashes
|
|
357
|
+
? await store.findReusableHashes(hashes, since)
|
|
358
|
+
: new Set(
|
|
359
|
+
(
|
|
360
|
+
await Promise.all(
|
|
361
|
+
hashes.map(async (h) =>
|
|
362
|
+
(await store.findReusableOutput(h, since)) ? h : null,
|
|
356
363
|
),
|
|
357
|
-
)
|
|
358
|
-
)
|
|
359
|
-
)
|
|
364
|
+
)
|
|
365
|
+
).filter((h): h is string => h !== null),
|
|
366
|
+
);
|
|
367
|
+
const reused = hashes.filter((h) => found.has(h)).length;
|
|
360
368
|
return {
|
|
361
369
|
cases: cases.length,
|
|
362
370
|
answers,
|
|
@@ -745,11 +753,30 @@ export function createRunner(opts: RunnerOptions) {
|
|
|
745
753
|
return id;
|
|
746
754
|
}
|
|
747
755
|
|
|
756
|
+
/**
|
|
757
|
+
* Several tests' outputs by test id: one call where the store can, so a
|
|
758
|
+
* remote database isn't asked once per test.
|
|
759
|
+
*/
|
|
760
|
+
async function outputsByRun(
|
|
761
|
+
runIds: string[],
|
|
762
|
+
): Promise<Map<string, OutputRecord[]>> {
|
|
763
|
+
const byRun = new Map(runIds.map((id) => [id, [] as OutputRecord[]]));
|
|
764
|
+
if (!runIds.length) return byRun;
|
|
765
|
+
const rows = store.listOutputsFor
|
|
766
|
+
? await store.listOutputsFor(runIds)
|
|
767
|
+
: (await Promise.all(runIds.map((id) => store.listOutputs(id)))).flat();
|
|
768
|
+
for (const o of rows) byRun.get(o.runId)?.push(o);
|
|
769
|
+
return byRun;
|
|
770
|
+
}
|
|
771
|
+
|
|
748
772
|
/** Marks tests the server stopped mid-way as failed. */
|
|
749
773
|
async function stopStuckRuns(suiteKey: string, now = Date.now()) {
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
774
|
+
const old = (await store.listRuns(suiteKey, { status: "RUNNING" })).filter(
|
|
775
|
+
(r) => now - +r.startedAt > STUCK_MS,
|
|
776
|
+
);
|
|
777
|
+
const outputs = await outputsByRun(old.map((r) => r.id));
|
|
778
|
+
for (const r of old) {
|
|
779
|
+
const outs = outputs.get(r.id) ?? [];
|
|
753
780
|
const last = outs.reduce<Date | null>(
|
|
754
781
|
(m, x) => (!m || x.createdAt > m ? x.createdAt : m),
|
|
755
782
|
null,
|
|
@@ -820,12 +847,12 @@ export function createRunner(opts: RunnerOptions) {
|
|
|
820
847
|
if (!opts.route || !opts.candidates)
|
|
821
848
|
throw new Error("The board needs the route and candidates options");
|
|
822
849
|
const suite = suiteOrThrow(suiteKey);
|
|
823
|
-
await
|
|
824
|
-
const [route, cases] = await Promise.all([
|
|
850
|
+
const [route, cases, prompt] = await Promise.all([
|
|
825
851
|
opts.route(suite.operation),
|
|
826
852
|
casesFor(suite.key, "ALL"),
|
|
853
|
+
opts.promptVersion(suite.operation),
|
|
854
|
+
stopStuckRuns(suite.key),
|
|
827
855
|
]);
|
|
828
|
-
const prompt = await opts.promptVersion(suite.operation);
|
|
829
856
|
const current = datasetVersion(cases);
|
|
830
857
|
const { models, fallbackModels = models } = opts.candidates(
|
|
831
858
|
suite.operation,
|
|
@@ -872,10 +899,12 @@ export function createRunner(opts: RunnerOptions) {
|
|
|
872
899
|
(r.temperature ?? null) === (liveRun.temperature ?? null) &&
|
|
873
900
|
(r.maxOutputTokens ?? null) === (liveRun.maxOutputTokens ?? null);
|
|
874
901
|
const outputs = new Map<string, RunOutput[]>();
|
|
875
|
-
for (const
|
|
902
|
+
for (const [id, outs] of await outputsByRun(
|
|
903
|
+
[...latestDone.values()].map((r) => r.id),
|
|
904
|
+
))
|
|
876
905
|
outputs.set(
|
|
877
|
-
|
|
878
|
-
|
|
906
|
+
id,
|
|
907
|
+
outs.map((x) => ({
|
|
879
908
|
caseId: x.caseId,
|
|
880
909
|
checks: x.error ? null : (x.scores ?? []),
|
|
881
910
|
costUsd: x.costUsd,
|
package/src/stats.ts
CHANGED
|
@@ -92,21 +92,34 @@ export function allPassed(checks: CheckResult[] | null): boolean {
|
|
|
92
92
|
return checks !== null && checks.every((c) => c.pass !== false);
|
|
93
93
|
}
|
|
94
94
|
|
|
95
|
-
/**
|
|
95
|
+
/**
|
|
96
|
+
* Sums each answer's partial credit; null when the suite gives none. A
|
|
97
|
+
* failed answer (no checks) earns nothing and costs what a graded answer
|
|
98
|
+
* is worth on average, so a model that fails answers can't score 100%.
|
|
99
|
+
*/
|
|
96
100
|
export function sumUnits(
|
|
97
101
|
outputs: { checks: CheckResult[] | null }[],
|
|
98
102
|
): { right: number; total: number } | null {
|
|
99
103
|
let right = 0;
|
|
100
104
|
let total = 0;
|
|
101
|
-
let
|
|
102
|
-
|
|
103
|
-
|
|
105
|
+
let graded = 0;
|
|
106
|
+
let failed = 0;
|
|
107
|
+
for (const o of outputs) {
|
|
108
|
+
if (!o.checks) {
|
|
109
|
+
failed++;
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
let counted = false;
|
|
113
|
+
for (const c of o.checks)
|
|
104
114
|
if (c.units) {
|
|
105
|
-
|
|
115
|
+
counted = true;
|
|
106
116
|
right += c.units.right;
|
|
107
117
|
total += c.units.total;
|
|
108
118
|
}
|
|
109
|
-
|
|
119
|
+
if (counted) graded++;
|
|
120
|
+
}
|
|
121
|
+
if (!graded) return null;
|
|
122
|
+
return { right, total: total + failed * (total / graded) };
|
|
110
123
|
}
|
|
111
124
|
|
|
112
125
|
/** One answer's score from 0 to 1: its partial credit, else all-or-nothing. */
|
package/src/store.ts
CHANGED
|
@@ -179,6 +179,20 @@ export interface EvalStore {
|
|
|
179
179
|
requestHash: string,
|
|
180
180
|
since: Date,
|
|
181
181
|
): Promise<OutputRecord | null>;
|
|
182
|
+
/**
|
|
183
|
+
* The outputs of several tests in one call, for the board on a remote
|
|
184
|
+
* database. Optional: without it the runner calls listOutputs per test.
|
|
185
|
+
*/
|
|
186
|
+
listOutputsFor?(runIds: string[]): Promise<OutputRecord[]>;
|
|
187
|
+
/**
|
|
188
|
+
* Which of these request hashes have an output findReusableOutput would
|
|
189
|
+
* return, in one call, for estimating a test's cost. Optional: without it
|
|
190
|
+
* the runner looks each hash up.
|
|
191
|
+
*/
|
|
192
|
+
findReusableHashes?(
|
|
193
|
+
requestHashes: string[],
|
|
194
|
+
since: Date,
|
|
195
|
+
): Promise<Set<string>>;
|
|
182
196
|
createOutput(data: NewOutput): Promise<OutputRecord>;
|
|
183
197
|
setOutputScores(id: string, scores: CheckResult[]): Promise<void>;
|
|
184
198
|
}
|
package/src/testing.ts
CHANGED
|
@@ -84,6 +84,9 @@ export function describeStoreContract(
|
|
|
84
84
|
it("lists a suite's cases oldest first, leaving out retired ones", async () => {
|
|
85
85
|
const store = await make();
|
|
86
86
|
const first = await store.createCase(newCase("s"));
|
|
87
|
+
// Apart in time: two cases made in the same millisecond have no
|
|
88
|
+
// oldest one.
|
|
89
|
+
await new Promise((r) => setTimeout(r, 5));
|
|
87
90
|
const second = await store.createCase(newCase("s"));
|
|
88
91
|
await store.createCase(newCase("other"));
|
|
89
92
|
await store.setCaseStatus(first.id, "RETIRED");
|
|
@@ -198,6 +201,61 @@ export function describeStoreContract(
|
|
|
198
201
|
).toBeNull();
|
|
199
202
|
});
|
|
200
203
|
|
|
204
|
+
it("lists several tests' outputs and reusable hashes in one call, where it can", async () => {
|
|
205
|
+
const store = await make();
|
|
206
|
+
const c = await store.createCase(newCase("s"));
|
|
207
|
+
const [r1, r2, r3] = await Promise.all([
|
|
208
|
+
store.createRun(newRun("s")),
|
|
209
|
+
store.createRun(newRun("s")),
|
|
210
|
+
store.createRun(newRun("s")),
|
|
211
|
+
]);
|
|
212
|
+
const base = {
|
|
213
|
+
caseId: c.id,
|
|
214
|
+
repeat: 1,
|
|
215
|
+
output: { text: "HELLO" },
|
|
216
|
+
error: null,
|
|
217
|
+
scores: null,
|
|
218
|
+
costUsd: 0.01,
|
|
219
|
+
ms: 12,
|
|
220
|
+
reused: false,
|
|
221
|
+
};
|
|
222
|
+
await store.createOutput({ ...base, runId: r1.id, requestHash: "a" });
|
|
223
|
+
await store.createOutput({ ...base, runId: r2.id, requestHash: "b" });
|
|
224
|
+
await store.createOutput({
|
|
225
|
+
...base,
|
|
226
|
+
runId: r2.id,
|
|
227
|
+
requestHash: "c",
|
|
228
|
+
reused: true,
|
|
229
|
+
});
|
|
230
|
+
await store.createOutput({
|
|
231
|
+
...base,
|
|
232
|
+
runId: r3.id,
|
|
233
|
+
requestHash: "d",
|
|
234
|
+
error: "boom",
|
|
235
|
+
output: null,
|
|
236
|
+
});
|
|
237
|
+
if (store.listOutputsFor) {
|
|
238
|
+
const outs = await store.listOutputsFor([r1.id, r2.id]);
|
|
239
|
+
expect(outs.map((o) => o.requestHash).sort()).toEqual(["a", "b", "c"]);
|
|
240
|
+
expect(await store.listOutputsFor([])).toEqual([]);
|
|
241
|
+
}
|
|
242
|
+
if (store.findReusableHashes) {
|
|
243
|
+
expect(
|
|
244
|
+
[
|
|
245
|
+
...(await store.findReusableHashes(
|
|
246
|
+
["a", "b", "c", "d", "e"],
|
|
247
|
+
new Date(0),
|
|
248
|
+
)),
|
|
249
|
+
].sort(),
|
|
250
|
+
).toEqual(["a", "b"]);
|
|
251
|
+
expect(
|
|
252
|
+
(await store.findReusableHashes(["a"], new Date(Date.now() + 60_000)))
|
|
253
|
+
.size,
|
|
254
|
+
).toBe(0);
|
|
255
|
+
expect((await store.findReusableHashes([], new Date(0))).size).toBe(0);
|
|
256
|
+
}
|
|
257
|
+
});
|
|
258
|
+
|
|
201
259
|
it("runs a whole test through the runner", async () => {
|
|
202
260
|
const store = await make();
|
|
203
261
|
const echo: Suite<{ text: string }, { text: string }, { want: string }> =
|
|
@@ -55,17 +55,23 @@ export default async function SuitePage({
|
|
|
55
55
|
}) {
|
|
56
56
|
await requireAdmin();
|
|
57
57
|
const { suite: key } = await params;
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
//
|
|
61
|
-
|
|
58
|
+
const operation = SUITE_BY_KEY[key]?.operation;
|
|
59
|
+
if (!operation) notFound();
|
|
60
|
+
// The board and the settings load together: on a remote database each
|
|
61
|
+
// waits on round trips, so one after the other doubles the wait.
|
|
62
|
+
const [b, [history, liveSettings]] = await Promise.all([
|
|
63
|
+
runner.board(key),
|
|
64
|
+
// Records a deploy if the instructions changed under the live
|
|
65
|
+
// settings, before reading them.
|
|
66
|
+
settings
|
|
67
|
+
.syncPrompt(operation)
|
|
68
|
+
.then(() =>
|
|
69
|
+
Promise.all([settings.history(operation), settings.current(operation)]),
|
|
70
|
+
),
|
|
71
|
+
]);
|
|
62
72
|
const { suite, rows } = b;
|
|
63
73
|
const s = suggest(rows, suite.checks, suite.priority, MODELS);
|
|
64
74
|
const testing = rows.some((r) => r.testing);
|
|
65
|
-
const [history, liveSettings] = await Promise.all([
|
|
66
|
-
settings.history(suite.operation),
|
|
67
|
-
settings.current(suite.operation),
|
|
68
|
-
]);
|
|
69
75
|
// What testing each model would cost now, counting answers it would reuse.
|
|
70
76
|
const estimates = new Map(
|
|
71
77
|
await Promise.all(
|
|
@@ -279,21 +279,21 @@ function SuiteCard({
|
|
|
279
279
|
</div>
|
|
280
280
|
|
|
281
281
|
{s && (
|
|
282
|
-
<
|
|
283
|
-
<
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
</
|
|
282
|
+
<p className="text-sm text-muted">
|
|
283
|
+
<span className="font-semibold text-ink">{label(s.model)}</span>
|
|
284
|
+
{s.fallbackModel ? (
|
|
285
|
+
<>
|
|
286
|
+
{" "}
|
|
287
|
+
· fallback{" "}
|
|
288
|
+
<span className="font-semibold text-ink">
|
|
289
|
+
{label(s.fallbackModel)}
|
|
290
|
+
</span>
|
|
291
|
+
</>
|
|
292
|
+
) : (
|
|
293
|
+
" · no fallback"
|
|
294
|
+
)}
|
|
295
|
+
{s.reasoningEffort ? ` · reasoning ${s.reasoningEffort}` : ""}
|
|
296
|
+
</p>
|
|
297
297
|
)}
|
|
298
298
|
|
|
299
299
|
<p className="text-sm">
|
|
@@ -329,6 +329,10 @@ function SuiteCard({
|
|
|
329
329
|
<summary className="flex list-none items-center justify-between gap-2 p-3 text-sm font-medium">
|
|
330
330
|
Versions
|
|
331
331
|
<span className="flex items-center gap-1 text-xs font-normal text-muted">
|
|
332
|
+
<span className="font-medium text-ink">
|
|
333
|
+
v{version?.number ?? 1}
|
|
334
|
+
</span>{" "}
|
|
335
|
+
{since ? `live since ${day(since)}` : "defaults from code"} ·{" "}
|
|
332
336
|
{versions} version{versions === 1 ? "" : "s"}
|
|
333
337
|
<ChevronDown
|
|
334
338
|
aria-hidden
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { useState } from "react";
|
|
4
4
|
import { Plus } from "lucide-react";
|
|
5
|
+
import { QUIET_BUTTON } from "./Submit";
|
|
5
6
|
import { Card } from "./ui";
|
|
6
7
|
|
|
7
8
|
/**
|
|
@@ -31,7 +32,7 @@ export function AddCaseHeader({
|
|
|
31
32
|
onClick={() => {
|
|
32
33
|
setOpen(!open);
|
|
33
34
|
}}
|
|
34
|
-
className=
|
|
35
|
+
className={`inline-flex items-center gap-1.5 rounded-md px-3 py-1.5 text-sm ${QUIET_BUTTON}`}
|
|
35
36
|
>
|
|
36
37
|
<Plus aria-hidden className="h-4 w-4" />
|
|
37
38
|
Add a case
|
|
@@ -7,17 +7,13 @@ import {
|
|
|
7
7
|
type BoardRow,
|
|
8
8
|
type CheckResult,
|
|
9
9
|
} from "@crowandraven/evalkeeper";
|
|
10
|
-
import {
|
|
11
|
-
addCase,
|
|
12
|
-
confirmAnswer,
|
|
13
|
-
editAnswer,
|
|
14
|
-
retireCase,
|
|
15
|
-
} from "@/lib/evalkeeper/actions";
|
|
10
|
+
import { addCase, editAnswer, retireCase } from "@/lib/evalkeeper/actions";
|
|
16
11
|
import { Check, ChevronRight, CircleAlert, X } from "lucide-react";
|
|
17
12
|
import { store } from "@/lib/evalkeeper";
|
|
18
13
|
import { FieldValues, Fields } from "./Fields";
|
|
19
14
|
import { AddCaseHeader } from "./AddCase";
|
|
20
15
|
import { CaseMenu } from "./CaseMenu";
|
|
16
|
+
import { ConfirmAnswer } from "./ConfirmAnswer";
|
|
21
17
|
import { Submit } from "./Submit";
|
|
22
18
|
import { Chip, type ChipTone } from "./ui";
|
|
23
19
|
import { InfoTip, Tip } from "./Tip";
|
|
@@ -64,9 +60,12 @@ export async function AnswerKey({
|
|
|
64
60
|
r.test && !r.variant ? [[r.test.runId, r.label] as const] : [],
|
|
65
61
|
),
|
|
66
62
|
);
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
63
|
+
// One query where the store can: one per test is slow on a remote
|
|
64
|
+
// database.
|
|
65
|
+
const runIds = [...modelByRun.keys()];
|
|
66
|
+
const outputs = store.listOutputsFor
|
|
67
|
+
? await store.listOutputsFor(runIds)
|
|
68
|
+
: (await Promise.all(runIds.map((id) => store.listOutputs(id)))).flat();
|
|
70
69
|
const byCase = new Map<string, { model: string; output: OutputRecord }[]>();
|
|
71
70
|
for (const o of outputs) {
|
|
72
71
|
byCase.set(o.caseId, [
|
|
@@ -189,7 +188,11 @@ function CaseItem({
|
|
|
189
188
|
const tags = Array.isArray(c.tags) ? c.tags : [];
|
|
190
189
|
|
|
191
190
|
return (
|
|
192
|
-
<details
|
|
191
|
+
<details
|
|
192
|
+
className="group rounded-md border border-line bg-card"
|
|
193
|
+
// Where ConfirmAnswer moves on to after confirming the case above.
|
|
194
|
+
data-pending={answer?.status === "PENDING" ? "true" : undefined}
|
|
195
|
+
>
|
|
193
196
|
<summary className="flex cursor-pointer list-none flex-wrap items-center justify-between gap-2 p-3 text-sm">
|
|
194
197
|
<span className="font-medium">
|
|
195
198
|
<ChevronRight
|
|
@@ -312,11 +315,7 @@ function CaseItem({
|
|
|
312
315
|
)}
|
|
313
316
|
|
|
314
317
|
{answer?.status === "PENDING" && (
|
|
315
|
-
<
|
|
316
|
-
<input type="hidden" name="suite" value={suite.key} />
|
|
317
|
-
<input type="hidden" name="label" value={answer.id} />
|
|
318
|
-
<Submit>Confirm this answer</Submit>
|
|
319
|
-
</form>
|
|
318
|
+
<ConfirmAnswer suite={suite.key} labelId={answer.id} />
|
|
320
319
|
)}
|
|
321
320
|
|
|
322
321
|
<CaseMenu
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { confirmAnswer } from "@/lib/evalkeeper/actions";
|
|
4
|
+
import { Submit } from "./Submit";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Confirms a case's pending answer and moves straight on: this case closes
|
|
8
|
+
* and the next one waiting for a confirmation opens, while the save and
|
|
9
|
+
* the page's refresh finish behind it. Reviewing a run of drafts shouldn't
|
|
10
|
+
* wait on the whole page each time.
|
|
11
|
+
*/
|
|
12
|
+
export function ConfirmAnswer({
|
|
13
|
+
suite,
|
|
14
|
+
labelId,
|
|
15
|
+
}: {
|
|
16
|
+
suite: string;
|
|
17
|
+
labelId: string;
|
|
18
|
+
}) {
|
|
19
|
+
return (
|
|
20
|
+
<form
|
|
21
|
+
action={confirmAnswer}
|
|
22
|
+
onSubmit={(e) => {
|
|
23
|
+
const here = e.currentTarget.closest("details");
|
|
24
|
+
if (!here) return;
|
|
25
|
+
here.open = false;
|
|
26
|
+
let next = here.nextElementSibling;
|
|
27
|
+
while (
|
|
28
|
+
next &&
|
|
29
|
+
!(
|
|
30
|
+
next instanceof HTMLDetailsElement &&
|
|
31
|
+
next.dataset.pending === "true"
|
|
32
|
+
)
|
|
33
|
+
)
|
|
34
|
+
next = next.nextElementSibling;
|
|
35
|
+
if (next instanceof HTMLDetailsElement) {
|
|
36
|
+
next.open = true;
|
|
37
|
+
next.scrollIntoView({ block: "nearest" });
|
|
38
|
+
}
|
|
39
|
+
}}
|
|
40
|
+
>
|
|
41
|
+
<input type="hidden" name="suite" value={suite} />
|
|
42
|
+
<input type="hidden" name="label" value={labelId} />
|
|
43
|
+
<Submit>Confirm this answer</Submit>
|
|
44
|
+
</form>
|
|
45
|
+
);
|
|
46
|
+
}
|