@crowandraven/evalkeeper 0.1.1 → 0.3.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 (58) hide show
  1. package/README.md +2 -2
  2. package/dist/attention.js +2 -1
  3. package/dist/attention.js.map +1 -1
  4. package/dist/board.d.ts +2 -0
  5. package/dist/glossary.d.ts +1 -1
  6. package/dist/glossary.js +1 -1
  7. package/dist/glossary.js.map +1 -1
  8. package/dist/health.js +1 -1
  9. package/dist/health.js.map +1 -1
  10. package/dist/importCases.d.ts +94 -0
  11. package/dist/importCases.js +185 -0
  12. package/dist/importCases.js.map +1 -0
  13. package/dist/index.d.ts +1 -0
  14. package/dist/index.js +1 -0
  15. package/dist/index.js.map +1 -1
  16. package/dist/labels.d.ts +9 -3
  17. package/dist/labels.js +2 -0
  18. package/dist/labels.js.map +1 -1
  19. package/dist/memoryStore.js +3 -2
  20. package/dist/memoryStore.js.map +1 -1
  21. package/dist/models.d.ts +44 -7
  22. package/dist/models.js +48 -7
  23. package/dist/models.js.map +1 -1
  24. package/dist/runner.d.ts +25 -1
  25. package/dist/runner.js +64 -7
  26. package/dist/runner.js.map +1 -1
  27. package/dist/settings.d.ts +42 -3
  28. package/dist/settings.js +101 -11
  29. package/dist/settings.js.map +1 -1
  30. package/dist/store.d.ts +18 -2
  31. package/dist/suggest.js +4 -2
  32. package/dist/suggest.js.map +1 -1
  33. package/dist/testing.js +48 -0
  34. package/dist/testing.js.map +1 -1
  35. package/dist/types.d.ts +11 -0
  36. package/dist/types.js.map +1 -1
  37. package/dist/weekly.js +5 -2
  38. package/dist/weekly.js.map +1 -1
  39. package/package.json +2 -2
  40. package/src/attention.ts +2 -1
  41. package/src/board.ts +2 -0
  42. package/src/glossary.ts +1 -1
  43. package/src/health.ts +3 -1
  44. package/src/importCases.ts +252 -0
  45. package/src/index.ts +1 -0
  46. package/src/labels.ts +9 -4
  47. package/src/memoryStore.ts +6 -2
  48. package/src/models.ts +83 -10
  49. package/src/runner.ts +102 -15
  50. package/src/settings.ts +125 -14
  51. package/src/store.ts +19 -2
  52. package/src/suggest.ts +3 -1
  53. package/src/testing.ts +56 -0
  54. package/src/types.ts +11 -0
  55. package/src/weekly.ts +5 -2
  56. package/templates/app/evals/[suite]/page.tsx +1 -2
  57. package/templates/app/evals/feedback/page.tsx +11 -6
  58. package/templates/app/evals/page.tsx +40 -0
package/dist/models.js CHANGED
@@ -2,8 +2,24 @@
2
2
  * What Evalkeeper needs to know about the models your app can use. You
3
3
  * pass a catalog in; Evalkeeper never picks a provider itself. Pure.
4
4
  */
5
- /** How hard a reasoning model thinks, where the model takes a setting. */
6
- export const REASONING_EFFORTS = ["none", "low", "medium", "high"];
5
+ /**
6
+ * The reasoning settings providers name, lowest first, so a setting one
7
+ * model lacks can be placed against the ones it has. A model's own
8
+ * `efforts` say which it takes.
9
+ */
10
+ export const REASONING_EFFORTS = [
11
+ "none",
12
+ "minimal",
13
+ "low",
14
+ "medium",
15
+ "high",
16
+ "xhigh",
17
+ "max",
18
+ ];
19
+ /** Whether a catalog entry is a baseline (code, not a model): never suggested. */
20
+ export function isBaseline(models, model) {
21
+ return models[model]?.baseline === true;
22
+ }
7
23
  /** "January 2027" for a retiring model; null when it isn't retiring. */
8
24
  export function retiresLabel(models, model) {
9
25
  const when = models[model]?.retiring;
@@ -16,17 +32,32 @@ export function retiresLabel(models, model) {
16
32
  timeZone: "UTC",
17
33
  });
18
34
  }
19
- /** The cost of a call from its token counts; null when the price is unknown. */
35
+ /**
36
+ * The cost of a call from its token counts; null when the price is unknown.
37
+ * `cachedInput` and `cacheWriteInput` are the parts of `input` read from
38
+ * and written to the provider's prompt cache, priced at the model's cache
39
+ * prices when it has them.
40
+ */
20
41
  export function priceCall(models, model, tokens) {
21
42
  const m = models[model];
22
43
  if (m?.inputPer1M === undefined || m.outputPer1M === undefined)
23
44
  return null;
24
- return (tokens.input * m.inputPer1M + tokens.output * m.outputPer1M) / 1e6;
45
+ // The cache parts are subsets of input: never count more than it has.
46
+ const cached = Math.min(Math.max(tokens.cachedInput ?? 0, 0), tokens.input);
47
+ const written = Math.min(Math.max(tokens.cacheWriteInput ?? 0, 0), tokens.input - cached);
48
+ const plain = tokens.input - cached - written;
49
+ return ((plain * m.inputPer1M +
50
+ cached * (m.cachedInputPer1M ?? m.inputPer1M) +
51
+ written * (m.cacheWriteInputPer1M ?? m.inputPer1M) +
52
+ tokens.output * m.outputPer1M) /
53
+ 1e6);
25
54
  }
26
55
  /**
27
56
  * The effort a model actually gets for a requested one: the same if it
28
- * takes it; for "none" on a model without it, its lowest; otherwise its own
29
- * default. Undefined: send nothing.
57
+ * takes it; one below the lowest it takes (say "none" on a model that
58
+ * starts at "minimal"), its lowest; one above its highest, its highest;
59
+ * otherwise (a name it doesn't place) its own default. Undefined: send
60
+ * nothing.
30
61
  */
31
62
  export function effortFor(models, model, requested) {
32
63
  const efforts = models[model]?.efforts;
@@ -34,6 +65,16 @@ export function effortFor(models, model, requested) {
34
65
  return undefined;
35
66
  if (efforts.includes(requested))
36
67
  return requested;
37
- return requested === "none" ? efforts[0] : undefined;
68
+ const rank = (e) => REASONING_EFFORTS.indexOf(e);
69
+ const want = rank(requested);
70
+ const lowest = efforts[0];
71
+ const highest = efforts.at(-1);
72
+ if (want < 0 || lowest === undefined || highest === undefined)
73
+ return undefined;
74
+ if (rank(lowest) >= 0 && want < rank(lowest))
75
+ return lowest;
76
+ if (rank(highest) >= 0 && want > rank(highest))
77
+ return highest;
78
+ return undefined;
38
79
  }
39
80
  //# sourceMappingURL=models.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,0EAA0E;AAC1E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;AAmC5E,wEAAwE;AACxE,MAAM,UAAU,YAAY,CAC1B,MAAoB,EACpB,KAAa;IAEb,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;IACrC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtD,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE;QACxE,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;AACL,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,SAAS,CACvB,MAAoB,EACpB,KAAa,EACb,MAAyC;IAEzC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACxB,IAAI,CAAC,EAAE,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5E,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC;AAC7E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CACvB,MAAoB,EACpB,KAAa,EACb,SAA6C;IAE7C,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC7C,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IAClD,OAAO,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,MAAM;IACN,SAAS;IACT,KAAK;IACL,QAAQ;IACR,MAAM;IACN,OAAO;IACP,KAAK;CACG,CAAC;AAyDX,kFAAkF;AAClF,MAAM,UAAU,UAAU,CAAC,MAAoB,EAAE,KAAa;IAC5D,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAC;AAC1C,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,YAAY,CAC1B,MAAoB,EACpB,KAAa;IAEb,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;IACrC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtD,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,EAAE;QACxE,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CACvB,MAAoB,EACpB,KAAa,EACb,MAKC;IAED,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACxB,IAAI,CAAC,EAAE,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5E,sEAAsE;IACtE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CACtB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,IAAI,CAAC,EAAE,CAAC,CAAC,EACxC,MAAM,CAAC,KAAK,GAAG,MAAM,CACtB,CAAC;IACF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;IAC9C,OAAO,CACL,CAAC,KAAK,GAAG,CAAC,CAAC,UAAU;QACnB,MAAM,GAAG,CAAC,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC,UAAU,CAAC;QAC7C,OAAO,GAAG,CAAC,CAAC,CAAC,oBAAoB,IAAI,CAAC,CAAC,UAAU,CAAC;QAClD,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,WAAW,CAAC;QAChC,GAAG,CACJ,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CACvB,MAAoB,EACpB,KAAa,EACb,SAA6C;IAE7C,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC7C,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IAClD,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CACxB,iBAAuC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,IAAI,GAAG,CAAC,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS;QAC3D,OAAO,SAAS,CAAC;IACnB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAC5D,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IAC/D,OAAO,SAAS,CAAC;AACnB,CAAC"}
package/dist/runner.d.ts CHANGED
@@ -64,14 +64,26 @@ export type RunnerOptions = {
64
64
  models: string[];
65
65
  fallbackModels?: string[];
66
66
  };
67
+ /**
68
+ * Which retiring models (`ModelInfo.retiring`) the board lists.
69
+ * "always" (the default): every candidate, though a retiring one is never
70
+ * suggested. "inUse": only one a feature still runs on, as its live or
71
+ * fallback model, so nobody spends a test on a model that's going away.
72
+ */
73
+ retiringOnBoard?: "always" | "inUse";
67
74
  };
68
75
  /**
69
- * Which model a feature runs on now, its fallback, and its reasoning setting.
76
+ * Which model a feature runs on now, its fallback, its reasoning setting,
77
+ * its temperature, and its output cap.
70
78
  */
71
79
  export type Route = {
72
80
  model: string;
73
81
  fallbackModel: string | null;
74
82
  reasoningEffort: ReasoningEffort | null;
83
+ /** Null or unset: no temperature sent. */
84
+ temperature?: number | null;
85
+ /** The output-token cap; null or unset: the call's own default. */
86
+ maxOutputTokens?: number | null;
75
87
  };
76
88
  /**
77
89
  * How to run a test: fresh (no reuse), and, for a test continued in a new request, its leg
@@ -97,6 +109,10 @@ export declare function requestHashFor(r: {
97
109
  prompt: string;
98
110
  input: unknown;
99
111
  repeat: number;
112
+ /** Left out of the hash when null, so requests without one reuse as before. */
113
+ temperature?: number | null;
114
+ /** Left out of the hash when null, like temperature. */
115
+ maxOutputTokens?: number | null;
100
116
  }): string;
101
117
  /** Changes whenever a case or its answer in use does. */
102
118
  export declare function datasetVersion(cases: CaseRecord[]): string;
@@ -146,6 +162,10 @@ export declare function createRunner(opts: RunnerOptions): {
146
162
  fresh?: boolean;
147
163
  /** The setting to test; undefined: the operation's live one. */
148
164
  reasoningEffort?: ReasoningEffort | null;
165
+ /** The temperature to test; undefined: the operation's live one. */
166
+ temperature?: number | null;
167
+ /** The output cap to test; undefined: the operation's live one. */
168
+ maxOutputTokens?: number | null;
149
169
  }) => Promise<{
150
170
  cases: number;
151
171
  /** Answers the test will need: cases times repeats. */
@@ -163,6 +183,10 @@ export declare function createRunner(opts: RunnerOptions): {
163
183
  startedBy?: string | null;
164
184
  /** A reasoning setting to test; undefined: the operation's own. */
165
185
  reasoningEffort?: ReasoningEffort | null;
186
+ /** A temperature to test; undefined: the operation's live one. */
187
+ temperature?: number | null;
188
+ /** An output cap to test; undefined: the operation's live one. */
189
+ maxOutputTokens?: number | null;
166
190
  /** For the estimate: pass the same `fresh` to runEval. */
167
191
  fresh?: boolean;
168
192
  }) => Promise<{
package/dist/runner.js CHANGED
@@ -7,7 +7,7 @@
7
7
  import { createHash } from "node:crypto";
8
8
  import { compareRuns } from "./compare.js";
9
9
  import { isStuck, shouldContinue } from "./legs.js";
10
- import { effortFor, } from "./models.js";
10
+ import { effortFor, isBaseline, } from "./models.js";
11
11
  import { allPassed } from "./stats.js";
12
12
  import { pickQuickSet } from "./quickSet.js";
13
13
  import { stableJson } from "./stableJson.js";
@@ -47,6 +47,10 @@ export function requestHashFor(r) {
47
47
  prompt: r.prompt,
48
48
  input: r.input,
49
49
  repeat: r.repeat,
50
+ ...(r.temperature != null ? { temperature: r.temperature } : {}),
51
+ ...(r.maxOutputTokens != null
52
+ ? { maxOutputTokens: r.maxOutputTokens }
53
+ : {}),
50
54
  }), 64);
51
55
  }
52
56
  /** Changes whenever a case or its answer in use does. */
@@ -132,6 +136,18 @@ export function createRunner(opts) {
132
136
  return (await opts.route(operation)).reasoningEffort;
133
137
  return null;
134
138
  }
139
+ /** The operation's live temperature: the route's, else none. */
140
+ async function liveTemperatureFor(operation) {
141
+ if (!opts.route)
142
+ return null;
143
+ return (await opts.route(operation)).temperature ?? null;
144
+ }
145
+ /** The operation's live output cap: the route's, else the call's own. */
146
+ async function liveCapFor(operation) {
147
+ if (!opts.route)
148
+ return null;
149
+ return (await opts.route(operation)).maxOutputTokens ?? null;
150
+ }
135
151
  /**
136
152
  * What a test would cost. Answers an identical request gave in the last
137
153
  * 7 days are reused for free, so only the rest are priced: a retest
@@ -140,13 +156,19 @@ export function createRunner(opts) {
140
156
  */
141
157
  async function estimateRun(suiteKey, model, set, repeats, o = {}) {
142
158
  const suite = suiteOrThrow(suiteKey);
143
- const [cases, perCall, prompt, effort] = await Promise.all([
159
+ const [cases, perCall, prompt, effort, temperature, cap] = await Promise.all([
144
160
  casesFor(suite.key, set),
145
161
  opts.estimateCallCost?.(suite.operation, model) ?? null,
146
162
  opts.promptVersion(suite.operation),
147
163
  o.reasoningEffort !== undefined
148
164
  ? o.reasoningEffort
149
165
  : liveEffortFor(suite.operation),
166
+ o.temperature !== undefined
167
+ ? o.temperature
168
+ : liveTemperatureFor(suite.operation),
169
+ o.maxOutputTokens !== undefined
170
+ ? o.maxOutputTokens
171
+ : liveCapFor(suite.operation),
150
172
  ]);
151
173
  const answers = cases.length * repeats;
152
174
  const since = new Date(Date.now() - REUSE_DAYS * 86_400_000);
@@ -159,6 +181,8 @@ export function createRunner(opts) {
159
181
  prompt,
160
182
  input: c.input,
161
183
  repeat: i + 1,
184
+ temperature,
185
+ maxOutputTokens: cap,
162
186
  }), since))))).filter(Boolean).length;
163
187
  return {
164
188
  cases: cases.length,
@@ -175,9 +199,17 @@ export function createRunner(opts) {
175
199
  const reasoningEffort = args.reasoningEffort !== undefined
176
200
  ? args.reasoningEffort
177
201
  : await liveEffortFor(suite.operation);
202
+ const temperature = args.temperature !== undefined
203
+ ? args.temperature
204
+ : await liveTemperatureFor(suite.operation);
205
+ const maxOutputTokens = args.maxOutputTokens !== undefined
206
+ ? args.maxOutputTokens
207
+ : await liveCapFor(suite.operation);
178
208
  const [estimate, promptVersion] = await Promise.all([
179
209
  estimateRun(suite.key, args.model, set, repeats, {
180
210
  reasoningEffort,
211
+ temperature,
212
+ maxOutputTokens,
181
213
  fresh: Boolean(args.fresh),
182
214
  }),
183
215
  opts.promptVersion(suite.operation),
@@ -188,6 +220,8 @@ export function createRunner(opts) {
188
220
  model: args.model,
189
221
  promptVersion,
190
222
  reasoningEffort: args.reasoningEffort !== undefined ? args.reasoningEffort : liveEffort,
223
+ temperature,
224
+ maxOutputTokens,
191
225
  set,
192
226
  repeats,
193
227
  datasetVersion: null,
@@ -290,6 +324,8 @@ export function createRunner(opts) {
290
324
  prompt: run.promptVersion,
291
325
  input: c.input,
292
326
  repeat,
327
+ temperature: run.temperature ?? null,
328
+ maxOutputTokens: run.maxOutputTokens ?? null,
293
329
  });
294
330
  const earlier = o.fresh
295
331
  ? null
@@ -317,6 +353,8 @@ export function createRunner(opts) {
317
353
  const output = await withTimeout(suite.run(suite.input.parse(c.input), {
318
354
  model: run.model,
319
355
  reasoningEffort: run.reasoningEffort ?? null,
356
+ temperature: run.temperature ?? null,
357
+ maxOutputTokens: run.maxOutputTokens ?? null,
320
358
  onCost: (usd) => (cost += usd),
321
359
  }), timeout);
322
360
  await store.createOutput({
@@ -443,6 +481,8 @@ export function createRunner(opts) {
443
481
  set: "SMOKE",
444
482
  startedBy: SCHEDULED,
445
483
  reasoningEffort: route.reasoningEffort,
484
+ temperature: route.temperature ?? null,
485
+ maxOutputTokens: route.maxOutputTokens ?? null,
446
486
  });
447
487
  return run.id;
448
488
  }
@@ -544,14 +584,23 @@ export function createRunner(opts) {
544
584
  if (r.status === "SUCCEEDED" && !latestDone.has(runKey(r)))
545
585
  latestDone.set(runKey(r), r);
546
586
  }
547
- const isCurrent = (r) => r.datasetVersion === current && r.promptVersion === prompt;
587
+ const liveTemperature = route.temperature ?? null;
588
+ const liveCap = route.maxOutputTokens ?? null;
589
+ // A test at another temperature or output cap than the live ones
590
+ // answered differently.
591
+ const isCurrent = (r) => r.datasetVersion === current &&
592
+ r.promptVersion === prompt &&
593
+ (r.temperature ?? null) === liveTemperature &&
594
+ (r.maxOutputTokens ?? null) === liveCap;
548
595
  const liveKey = keyOf(route.model, defaultEffort);
549
596
  const liveRun = latestDone.get(liveKey);
550
597
  // Tests on the same cases and instructions as the live model's compare
551
598
  // with it, even if the answer key has changed since.
552
599
  const sameAsLive = (r) => liveRun !== undefined &&
553
600
  r.datasetVersion === liveRun.datasetVersion &&
554
- r.promptVersion === liveRun.promptVersion;
601
+ r.promptVersion === liveRun.promptVersion &&
602
+ (r.temperature ?? null) === (liveRun.temperature ?? null) &&
603
+ (r.maxOutputTokens ?? null) === (liveRun.maxOutputTokens ?? null);
555
604
  const outputs = new Map();
556
605
  for (const r of latestDone.values())
557
606
  outputs.set(r.id, (await store.listOutputs(r.id)).map((x) => ({
@@ -564,7 +613,7 @@ export function createRunner(opts) {
564
613
  const outputsOf = (runId) => outputs.get(runId) ?? [];
565
614
  const checkKeys = suite.checks.map((c) => c.key);
566
615
  const seen = new Set();
567
- const keys = [
616
+ let keys = [
568
617
  ...models.map((m) => ({
569
618
  model: m,
570
619
  effort: defaultEffort,
@@ -584,6 +633,10 @@ export function createRunner(opts) {
584
633
  seen.add(k);
585
634
  return true;
586
635
  });
636
+ // A retiring model stays on the board only while a feature runs on it.
637
+ const inUse = (model) => model === route.model || model === route.fallbackModel;
638
+ if (opts.retiringOnBoard === "inUse")
639
+ keys = keys.filter(({ model }) => !opts.models[model]?.retiring || inUse(model));
587
640
  const complete = (r) => !(r?.metrics?.failed ?? 0);
588
641
  const estimates = new Map(await Promise.all(keys.map(async ({ model }) => [
589
642
  model,
@@ -607,6 +660,7 @@ export function createRunner(opts) {
607
660
  .verdict
608
661
  : null;
609
662
  const label = opts.models[model]?.label ?? model;
663
+ const baseline = isBaseline(opts.models, model);
610
664
  return {
611
665
  key,
612
666
  model,
@@ -617,6 +671,7 @@ export function createRunner(opts) {
617
671
  : label,
618
672
  live: key === liveKey,
619
673
  fallback: !variant && model === route.fallbackModel,
674
+ baseline,
620
675
  testing: testing.has(key),
621
676
  failed: lastRun?.status === "FAILED"
622
677
  ? (lastRun.error ?? "unknown error").slice(0, 160)
@@ -641,13 +696,15 @@ export function createRunner(opts) {
641
696
  : null,
642
697
  vsLive,
643
698
  // Only on up-to-date tests: never promote on an old answer key.
644
- canMakeLive: models.includes(model) &&
699
+ canMakeLive: !baseline &&
700
+ models.includes(model) &&
645
701
  fresh &&
646
702
  complete(r) &&
647
703
  (vsLive === "BETTER" || vsLive === "SAME"),
648
704
  liveOnly: !fallbackModels.includes(model),
649
705
  fallbackOnly: !models.includes(model),
650
- canMakeFallback: fallbackModels.includes(model) &&
706
+ canMakeFallback: !baseline &&
707
+ fallbackModels.includes(model) &&
651
708
  !variant &&
652
709
  model !== route.model &&
653
710
  model !== route.fallbackModel &&
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,8 @@ import type { Route } from "./runner.js";
10
10
  * your own routing and pass `route` to the runner yourself.
11
11
  */
12
12
  /**
13
- * A feature's model settings: live model, fallback, reasoning setting, and output limit.
13
+ * A feature's model settings: live model, fallback, reasoning setting,
14
+ * output limit, and temperature.
14
15
  */
15
16
  export type Settings = {
16
17
  model: string;
@@ -19,6 +20,12 @@ export type Settings = {
19
20
  reasoningEffort: ReasoningEffort | null;
20
21
  /** Null: the call's own default. */
21
22
  maxOutputTokens: number | null;
23
+ /**
24
+ * The sampling temperature the feature sends. Null or unset: none sent,
25
+ * so the model's own default. Tests record it, and a test at another
26
+ * temperature than the live one is out of date.
27
+ */
28
+ temperature?: number | null;
22
29
  };
23
30
  /**
24
31
  * One numbered version of a feature's settings, with the instructions it ran with. Never changed.
@@ -94,6 +101,16 @@ export interface SettingsStore {
94
101
  export declare class SettingsConflict extends Error {
95
102
  constructor(operation: string);
96
103
  }
104
+ /**
105
+ * A feature has no settings: no version yet, and no default in code. Apps
106
+ * whose models are chosen in an admin page, not in code, see this until
107
+ * the feature's first version is recorded (`seed` or `change`).
108
+ */
109
+ export declare class NoSettingsError extends Error {
110
+ /** The feature with no settings. */
111
+ readonly operation: string;
112
+ constructor(operation: string);
113
+ }
97
114
  /** Whether two settings are the same in every field. */
98
115
  export declare function sameSettings(a: Settings, b: Settings): boolean;
99
116
  /** Just the settings of a version. */
@@ -123,11 +140,28 @@ export type HistoryEntry = SettingsChange & {
123
140
  * });
124
141
  * await settings.rollBack("ticket_triage", versionId, { by: admin.name, reason: "Worse in production" });
125
142
  * ```
143
+ *
144
+ * When models are chosen in an admin page rather than in code, return null
145
+ * from `defaults` and record each feature's existing config as version 1
146
+ * with `seed`:
147
+ *
148
+ * ```ts
149
+ * const settings = createSettings({ store, defaults: () => null });
150
+ * for (const row of await db.aiConfig.findMany())
151
+ * await settings.seed(row.operation, settingsFromRow(row), {
152
+ * by: null,
153
+ * reason: "Imported from the admin config",
154
+ * });
155
+ * ```
126
156
  */
127
157
  export declare function createSettings(opts: {
128
158
  store: SettingsStore;
129
- /** Each feature's settings in code, used until it's first changed. */
130
- defaults: (operation: string) => Settings;
159
+ /**
160
+ * Each feature's settings in code, used until it's first changed. Null:
161
+ * the feature has no default, and reading its settings throws
162
+ * `NoSettingsError` until a version is recorded.
163
+ */
164
+ defaults: (operation: string) => Settings | null;
131
165
  /** The instructions' current hash, so a version records what it ran. */
132
166
  promptVersion?: (operation: string) => string | Promise<string>;
133
167
  }): {
@@ -151,6 +185,11 @@ export declare function createSettings(opts: {
151
185
  reason: string;
152
186
  }) => Promise<SettingsVersion>;
153
187
  syncPrompt: (operation: string) => Promise<SettingsVersion | null>;
188
+ seed: (operation: string, initial: Settings, by: {
189
+ by: string | null;
190
+ reason: string | null;
191
+ promptVersion?: string | null;
192
+ }) => Promise<SettingsVersion | null>;
154
193
  history: (operation: string, limit?: number) => Promise<HistoryEntry[]>;
155
194
  };
156
195
  /** What createSettings returns. */