@aigne/afs-llm-bench 1.12.0-beta.5
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/LICENSE.md +26 -0
- package/dist/_virtual/_@oxc-project_runtime@0.108.0/helpers/decorate.cjs +11 -0
- package/dist/_virtual/_@oxc-project_runtime@0.108.0/helpers/decorate.mjs +10 -0
- package/dist/_virtual/rolldown_runtime.cjs +29 -0
- package/dist/bench.cjs +944 -0
- package/dist/bench.d.cts +89 -0
- package/dist/bench.d.cts.map +1 -0
- package/dist/bench.d.mts +89 -0
- package/dist/bench.d.mts.map +1 -0
- package/dist/bench.mjs +944 -0
- package/dist/bench.mjs.map +1 -0
- package/dist/errors.cjs +14 -0
- package/dist/errors.d.cts +13 -0
- package/dist/errors.d.cts.map +1 -0
- package/dist/errors.d.mts +13 -0
- package/dist/errors.d.mts.map +1 -0
- package/dist/errors.mjs +14 -0
- package/dist/errors.mjs.map +1 -0
- package/dist/index.cjs +38 -0
- package/dist/index.d.cts +10 -0
- package/dist/index.d.mts +10 -0
- package/dist/index.mjs +10 -0
- package/dist/judge.cjs +189 -0
- package/dist/judge.d.cts +67 -0
- package/dist/judge.d.cts.map +1 -0
- package/dist/judge.d.mts +67 -0
- package/dist/judge.d.mts.map +1 -0
- package/dist/judge.mjs +185 -0
- package/dist/judge.mjs.map +1 -0
- package/dist/outlier.cjs +73 -0
- package/dist/outlier.d.cts +30 -0
- package/dist/outlier.d.cts.map +1 -0
- package/dist/outlier.d.mts +30 -0
- package/dist/outlier.d.mts.map +1 -0
- package/dist/outlier.mjs +73 -0
- package/dist/outlier.mjs.map +1 -0
- package/dist/patcher.cjs +296 -0
- package/dist/patcher.d.cts +119 -0
- package/dist/patcher.d.cts.map +1 -0
- package/dist/patcher.d.mts +119 -0
- package/dist/patcher.d.mts.map +1 -0
- package/dist/patcher.mjs +291 -0
- package/dist/patcher.mjs.map +1 -0
- package/dist/prompts.cjs +123 -0
- package/dist/prompts.d.cts +30 -0
- package/dist/prompts.d.cts.map +1 -0
- package/dist/prompts.d.mts +30 -0
- package/dist/prompts.d.mts.map +1 -0
- package/dist/prompts.mjs +121 -0
- package/dist/prompts.mjs.map +1 -0
- package/dist/reporter.cjs +322 -0
- package/dist/reporter.d.cts +27 -0
- package/dist/reporter.d.cts.map +1 -0
- package/dist/reporter.d.mts +27 -0
- package/dist/reporter.d.mts.map +1 -0
- package/dist/reporter.mjs +322 -0
- package/dist/reporter.mjs.map +1 -0
- package/dist/runner.cjs +710 -0
- package/dist/runner.d.cts +345 -0
- package/dist/runner.d.cts.map +1 -0
- package/dist/runner.d.mts +345 -0
- package/dist/runner.d.mts.map +1 -0
- package/dist/runner.mjs +697 -0
- package/dist/runner.mjs.map +1 -0
- package/dist/scoring.cjs +47 -0
- package/dist/scoring.d.cts +28 -0
- package/dist/scoring.d.cts.map +1 -0
- package/dist/scoring.d.mts +28 -0
- package/dist/scoring.d.mts.map +1 -0
- package/dist/scoring.mjs +46 -0
- package/dist/scoring.mjs.map +1 -0
- package/manifest.json +39 -0
- package/package.json +62 -0
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
import { BenchPrompt, DimensionScores } from "./scoring.cjs";
|
|
2
|
+
import { OutlierEntry } from "./outlier.cjs";
|
|
3
|
+
import { Prompt } from "./prompts.cjs";
|
|
4
|
+
import { ValidationError } from "./errors.cjs";
|
|
5
|
+
import { AgentRunResult } from "@aigne/afs-agent";
|
|
6
|
+
|
|
7
|
+
//#region src/runner.d.ts
|
|
8
|
+
declare const ALLOWED_JUDGE_DIMENSIONS: readonly ["instruction_following"];
|
|
9
|
+
interface ToolEntry {
|
|
10
|
+
path: string;
|
|
11
|
+
ops: string[];
|
|
12
|
+
maxDepth?: number;
|
|
13
|
+
}
|
|
14
|
+
/** Permissive read-only AFS sandbox so benchmark prompts can explore mounts. */
|
|
15
|
+
declare function defaultBenchTools(): ToolEntry[];
|
|
16
|
+
declare function defaultBenchSystem(): string;
|
|
17
|
+
interface ExecLike {
|
|
18
|
+
exec(path: string, args: Record<string, unknown>): Promise<{
|
|
19
|
+
success: boolean;
|
|
20
|
+
data?: Record<string, unknown> | unknown;
|
|
21
|
+
error?: {
|
|
22
|
+
code?: string;
|
|
23
|
+
message?: string;
|
|
24
|
+
};
|
|
25
|
+
}>;
|
|
26
|
+
}
|
|
27
|
+
interface RunOneInput {
|
|
28
|
+
deps: ExecLike;
|
|
29
|
+
model: string;
|
|
30
|
+
/** Hub used to expand short `model` ids; ignored when `model` is a full
|
|
31
|
+
* AFS path. Defaults to `"vertex"` (see DEFAULT_HUB). */
|
|
32
|
+
hub?: string;
|
|
33
|
+
prompt: Prompt;
|
|
34
|
+
benchPrompt: BenchPrompt;
|
|
35
|
+
}
|
|
36
|
+
interface RunOneResult {
|
|
37
|
+
model: string;
|
|
38
|
+
prompt: string;
|
|
39
|
+
scores: DimensionScores;
|
|
40
|
+
raw: AgentRunResult;
|
|
41
|
+
/**
|
|
42
|
+
* Per-judge raw scores from a multi-judge dispatch (Phase 0 of Run 4).
|
|
43
|
+
* Keyed by judge model id; value is `null` when that judge failed for this
|
|
44
|
+
* sample. Absent when no judging was requested or only single-judge mode
|
|
45
|
+
* was used (existing single-judge behaviour stays in `scores.instruction_following`).
|
|
46
|
+
*/
|
|
47
|
+
judges_raw?: Record<string, number | null>;
|
|
48
|
+
}
|
|
49
|
+
declare function runOne(input: RunOneInput): Promise<RunOneResult>;
|
|
50
|
+
declare function promptToBenchPrompt(prompt: Prompt): BenchPrompt;
|
|
51
|
+
/**
|
|
52
|
+
* Extract the raw `# Expected outcomes` section text. Returns the entire
|
|
53
|
+
* section body (including any markdown table) so the LLM judge has the full
|
|
54
|
+
* rubric. Empty string when the section is missing — the judge still runs
|
|
55
|
+
* but has no rubric to score against; in practice this means a low score.
|
|
56
|
+
*/
|
|
57
|
+
declare function extractExpectedOutcomes(prompt: Prompt): string;
|
|
58
|
+
/**
|
|
59
|
+
* Extract expected_paths from the `# Expected paths` body section's first
|
|
60
|
+
* fenced code block. Strips `// …` line comments. Lines that don't start with
|
|
61
|
+
* `/` are ignored (so prose inside the block doesn't pollute the path set).
|
|
62
|
+
*/
|
|
63
|
+
declare function extractExpectedPaths(prompt: Prompt): string[];
|
|
64
|
+
interface ValidatedRunArgs {
|
|
65
|
+
models: string[];
|
|
66
|
+
prompts: "all" | string[];
|
|
67
|
+
samples: number;
|
|
68
|
+
parallel: number;
|
|
69
|
+
/** Hub for short-model-id expansion. See `RunOneInput.hub`. */
|
|
70
|
+
hub?: string;
|
|
71
|
+
}
|
|
72
|
+
declare function validateRunArgs(args: Record<string, unknown>): ValidatedRunArgs;
|
|
73
|
+
interface ValidatedRunFullArgs {
|
|
74
|
+
models: string[];
|
|
75
|
+
prompts: "all" | string[];
|
|
76
|
+
samples: number;
|
|
77
|
+
parallel: number;
|
|
78
|
+
/**
|
|
79
|
+
* Hub used to expand short model ids — passed through to runOne's
|
|
80
|
+
* `resolveModelPath`. Falls back to `DEFAULT_HUB` when omitted. Models
|
|
81
|
+
* given as a full `/dev/ai/hubs/<hub>/models/<id>` path bypass this.
|
|
82
|
+
*/
|
|
83
|
+
hub?: string;
|
|
84
|
+
judgeFor?: ReadonlyArray<(typeof ALLOWED_JUDGE_DIMENSIONS)[number]>;
|
|
85
|
+
/**
|
|
86
|
+
* Multi-judge ensemble (Phase 0 of Run 4). When present, takes precedence
|
|
87
|
+
* over `judgeModel` — each judge dispatches its own chat call per sample
|
|
88
|
+
* and the per-sample scores are aggregated by `aggregateJudgeScores`.
|
|
89
|
+
* Shares the same `judgeHub` for every judge (default `"vertex"`).
|
|
90
|
+
* Length 1 is allowed and reduces to single-judge passthrough.
|
|
91
|
+
*/
|
|
92
|
+
judges?: string[];
|
|
93
|
+
/**
|
|
94
|
+
* When true, write a sidecar `<stamp>-raw.json` next to the main results
|
|
95
|
+
* file containing `trace[]` for every successful sample. Default false to
|
|
96
|
+
* keep the main results file small and avoid leaking trace details into
|
|
97
|
+
* the dir that maintainers commit.
|
|
98
|
+
*/
|
|
99
|
+
includeRaw: boolean;
|
|
100
|
+
/**
|
|
101
|
+
* Per-dimension stddev cap for outlier flagging (Phase 3 of Run 4 /
|
|
102
|
+
* plan.md L1070-1072). When `undefined`, the runner uses
|
|
103
|
+
* `DEFAULT_OUTLIER_THRESHOLD` (0.15). Clamped to `[0.01, 1.0]` so a
|
|
104
|
+
* misconfig can't disable outlier detection (`0`) or flag every dim (`>1`).
|
|
105
|
+
*/
|
|
106
|
+
outlierThreshold?: number;
|
|
107
|
+
/**
|
|
108
|
+
* When true, after the main matrix completes the runner schedules one
|
|
109
|
+
* extra batch of `min(N, 3)` samples for each (model, prompt) flagged by
|
|
110
|
+
* `findOutliers` and recomputes the aggregate + outliers from the merged
|
|
111
|
+
* samples. Bounded so total samples per (model, prompt) ≤ `2 × N` (no
|
|
112
|
+
* runaway budget).
|
|
113
|
+
*/
|
|
114
|
+
outlierRerun: boolean;
|
|
115
|
+
}
|
|
116
|
+
declare function validateRunFullArgs(args: Record<string, unknown>): ValidatedRunFullArgs;
|
|
117
|
+
interface SampleError {
|
|
118
|
+
/** Coarse-grained error class for triage. */
|
|
119
|
+
kind: "rate_limit" | "auth" | "other";
|
|
120
|
+
/** Path that failed (almost always /dev/agent/.actions/run). */
|
|
121
|
+
path?: string;
|
|
122
|
+
message: string;
|
|
123
|
+
/** Number of attempts made before giving up (1 for non-retryable errors). */
|
|
124
|
+
attempts: number;
|
|
125
|
+
}
|
|
126
|
+
interface ModelAggregate {
|
|
127
|
+
n_samples: number;
|
|
128
|
+
scores: DimensionScores;
|
|
129
|
+
stddev: Record<string, number>;
|
|
130
|
+
/**
|
|
131
|
+
* Per-prompt mean scores: `{ <prompt_id>: { <dim>: mean across that prompt's
|
|
132
|
+
* samples } }`. Lets a maintainer audit which prompts dragged the model
|
|
133
|
+
* average down without re-running the matrix. Keys are sorted alphabetically
|
|
134
|
+
* for stable diffing across runs. Empty object when there are no samples.
|
|
135
|
+
*/
|
|
136
|
+
per_prompt: Record<string, DimensionScores>;
|
|
137
|
+
/**
|
|
138
|
+
* Per-domain aggregate score (Phase 1 of Run 4 / plan.md L1054-1061).
|
|
139
|
+
* Single number per domain — the mean of every sample's per-dimension
|
|
140
|
+
* average for prompts that belong to that domain. Domain is read from the
|
|
141
|
+
* prompt's `frontmatter.domain` (default `"english"` per INTENT). Absent
|
|
142
|
+
* when the caller doesn't supply the prompt list, so unit tests that only
|
|
143
|
+
* pass `samples` keep their existing shape.
|
|
144
|
+
*/
|
|
145
|
+
domains?: Record<string, number>;
|
|
146
|
+
/**
|
|
147
|
+
* Multi-judge audit trail (Phase 0 of Run 4). Per-judge mean across all the
|
|
148
|
+
* model's samples that received that judge's verdict; `null` when no sample
|
|
149
|
+
* succeeded for that judge. Absent when no multi-judge dispatch happened.
|
|
150
|
+
* Lets a maintainer detect a single rogue judge dragging the aggregate.
|
|
151
|
+
*/
|
|
152
|
+
judges_raw?: Record<string, number | null>;
|
|
153
|
+
/** Per-sample failures; absent when all samples succeed. */
|
|
154
|
+
errors?: SampleError[];
|
|
155
|
+
}
|
|
156
|
+
declare function aggregateAcrossPrompts(samples: RunOneResult[], prompts?: Prompt[]): ModelAggregate;
|
|
157
|
+
interface RunMatrixInput {
|
|
158
|
+
deps: ExecLike;
|
|
159
|
+
prompts: Prompt[];
|
|
160
|
+
models: string[];
|
|
161
|
+
samples: number;
|
|
162
|
+
parallel: number;
|
|
163
|
+
resultsDir: string;
|
|
164
|
+
/** Hub for short-model-id expansion. See `RunOneInput.hub`. */
|
|
165
|
+
hub?: string;
|
|
166
|
+
}
|
|
167
|
+
interface ResultsFile {
|
|
168
|
+
version: string;
|
|
169
|
+
/**
|
|
170
|
+
* Judge model id(s) used to score `instruction_following`. Single-judge
|
|
171
|
+
* runs serialise as a string (back-compat with patcher.ts); multi-judge
|
|
172
|
+
* (Phase 0 of Run 4) serialises as an array. `null` when no judging happened.
|
|
173
|
+
*/
|
|
174
|
+
judge_model?: string | string[] | null;
|
|
175
|
+
config: {
|
|
176
|
+
samples_per_pair: number;
|
|
177
|
+
models_tested: string[];
|
|
178
|
+
prompts_used: string[];
|
|
179
|
+
};
|
|
180
|
+
results: Record<string, ModelAggregate>;
|
|
181
|
+
/**
|
|
182
|
+
* Per-(model, prompt, dim) tuples whose stddev exceeded the configured
|
|
183
|
+
* threshold (Phase 3 of Run 4). Always present — empty array when nothing
|
|
184
|
+
* was flagged. Audit-only field; **not** propagated to the catalog by
|
|
185
|
+
* `patcher.ts`. See `outlier.ts` for the algorithm.
|
|
186
|
+
*/
|
|
187
|
+
outliers?: OutlierEntry[];
|
|
188
|
+
}
|
|
189
|
+
interface RunMatrixResult {
|
|
190
|
+
results: Record<string, ModelAggregate>;
|
|
191
|
+
file: string;
|
|
192
|
+
ranBatch: {
|
|
193
|
+
models: string[];
|
|
194
|
+
prompts: string[];
|
|
195
|
+
samples: number;
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
declare function runMatrix(input: RunMatrixInput): Promise<RunMatrixResult>;
|
|
199
|
+
interface ProgressEvent {
|
|
200
|
+
model: string;
|
|
201
|
+
prompt: string;
|
|
202
|
+
sampleIndex: number;
|
|
203
|
+
totalSamples: number;
|
|
204
|
+
/** "ok" if scoring succeeded, "error" if all retries exhausted. */
|
|
205
|
+
status: "ok" | "error";
|
|
206
|
+
/** Five-dim summary on success; only `error` on failure. */
|
|
207
|
+
scores?: DimensionScores;
|
|
208
|
+
error?: SampleError;
|
|
209
|
+
}
|
|
210
|
+
interface RunFullInput {
|
|
211
|
+
deps: ExecLike;
|
|
212
|
+
prompts: Prompt[];
|
|
213
|
+
models: string[];
|
|
214
|
+
samples: number;
|
|
215
|
+
parallel: number;
|
|
216
|
+
resultsDir: string;
|
|
217
|
+
/** Hub for short-model-id expansion. See `RunOneInput.hub`. */
|
|
218
|
+
hub?: string;
|
|
219
|
+
/**
|
|
220
|
+
* Sleep hook for backoff; defaults to setTimeout. Tests inject a no-op so
|
|
221
|
+
* they don't actually wait 6+ seconds for backoff windows.
|
|
222
|
+
*/
|
|
223
|
+
sleep?: (ms: number) => Promise<void>;
|
|
224
|
+
/** Per-sample progress callback (fires after each retry-resolved sample). */
|
|
225
|
+
onProgress?: (event: ProgressEvent) => void;
|
|
226
|
+
/** Fires after each (model, prompt) pair flushes to disk. */
|
|
227
|
+
onPairComplete?: (model: string, promptId: string, partialFile: string) => void | Promise<void>;
|
|
228
|
+
/** Fires after each model completes (after final pair flush). */
|
|
229
|
+
onModelComplete?: (model: string, partialFile: string) => void | Promise<void>;
|
|
230
|
+
/**
|
|
231
|
+
* Optional dimensions to evaluate via LLM-as-judge. When the array
|
|
232
|
+
* includes `"instruction_following"`, each successful sample is sent to
|
|
233
|
+
* `/dev/ai/.actions/chat` for scoring before progress is emitted.
|
|
234
|
+
*/
|
|
235
|
+
judgeFor?: ReadonlyArray<(typeof ALLOWED_JUDGE_DIMENSIONS)[number]>;
|
|
236
|
+
/**
|
|
237
|
+
* Optional override for the judge model id. Validated against
|
|
238
|
+
* `[A-Za-z0-9._-]+` inside `judgeInstructionFollowing`. Defaults to
|
|
239
|
+
* `claude-opus-4-7` (routed through ai-device). Ignored when `judges`
|
|
240
|
+
* is set (multi-judge takes precedence; tasks.md L23).
|
|
241
|
+
*/
|
|
242
|
+
judgeModel?: string;
|
|
243
|
+
/**
|
|
244
|
+
* Optional override for the hub the judge model lives on. Defaults to
|
|
245
|
+
* `aignehub`. Used together with `judgeModel` to drive ai-device's
|
|
246
|
+
* bypass-mode dispatch.
|
|
247
|
+
*/
|
|
248
|
+
judgeHub?: string;
|
|
249
|
+
/**
|
|
250
|
+
* Multi-judge ensemble (Phase 0 of Run 4). When set with at least one
|
|
251
|
+
* judge id, this **overrides** `judgeModel` — every successful sample
|
|
252
|
+
* dispatches one chat call per judge id and `aggregateJudgeScores`
|
|
253
|
+
* collapses the N scores into a single `instruction_following`. All
|
|
254
|
+
* judges share the same `judgeHub`.
|
|
255
|
+
*/
|
|
256
|
+
judges?: string[];
|
|
257
|
+
/**
|
|
258
|
+
* When true, write a sidecar `<stamp>-raw.json` next to the main results
|
|
259
|
+
* file containing the AgentRunResult (trace[] et al) for every successful
|
|
260
|
+
* sample. Off by default — raw traces can be large and may contain prompt
|
|
261
|
+
* fragments the maintainer doesn't want to commit.
|
|
262
|
+
*/
|
|
263
|
+
includeRaw?: boolean;
|
|
264
|
+
/**
|
|
265
|
+
* Per-dimension stddev cap for outlier flagging (Phase 3 of Run 4).
|
|
266
|
+
* Defaults to `DEFAULT_OUTLIER_THRESHOLD` (0.15). Validated/clamped at
|
|
267
|
+
* the action boundary (`validateRunFullArgs`).
|
|
268
|
+
*/
|
|
269
|
+
outlierThreshold?: number;
|
|
270
|
+
/**
|
|
271
|
+
* When true, after the main matrix the runner schedules one extra batch
|
|
272
|
+
* of `min(N, 3)` samples per (model, prompt) flagged by `findOutliers`,
|
|
273
|
+
* appends them to the existing samples, and recomputes the aggregate +
|
|
274
|
+
* outliers. Bounded so total samples per (model, prompt) ≤ `2 × N`.
|
|
275
|
+
*/
|
|
276
|
+
outlierRerun?: boolean;
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Per-sample raw payload kept around when `includeRaw: true`. Indexed
|
|
280
|
+
* `model → prompt → [{ sampleIndex, raw }]` so a maintainer can audit a
|
|
281
|
+
* specific cell of the matrix without scanning the whole sidecar.
|
|
282
|
+
*/
|
|
283
|
+
interface RawResultsFile {
|
|
284
|
+
version: string;
|
|
285
|
+
config: {
|
|
286
|
+
samples_per_pair: number;
|
|
287
|
+
models_tested: string[];
|
|
288
|
+
prompts_used: string[];
|
|
289
|
+
};
|
|
290
|
+
raw: Record<string, Record<string, Array<{
|
|
291
|
+
sampleIndex: number;
|
|
292
|
+
raw: AgentRunResult;
|
|
293
|
+
}>>>;
|
|
294
|
+
}
|
|
295
|
+
interface RunFullResult {
|
|
296
|
+
results: Record<string, ModelAggregate>;
|
|
297
|
+
file: string;
|
|
298
|
+
/** Path to the sidecar raw-trace JSON when `includeRaw: true`; otherwise null. */
|
|
299
|
+
rawFile: string | null;
|
|
300
|
+
ranBatch: {
|
|
301
|
+
models: string[];
|
|
302
|
+
prompts: string[];
|
|
303
|
+
samples: number;
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* `runMatrixFull` is the headless full-matrix runner used by `/bench/.actions/runFull`.
|
|
308
|
+
*
|
|
309
|
+
* Differences vs `runMatrix`:
|
|
310
|
+
* - Allows up to 200 models / 200 prompts (vs 5/5 for the fast `run` action).
|
|
311
|
+
* - Flushes the results JSON to disk after every (model, prompt) pair so a
|
|
312
|
+
* SIGKILL mid-run preserves the entries already completed.
|
|
313
|
+
* - Retries rate-limit errors with exponential backoff (2s/4s/8s, max 3
|
|
314
|
+
* retries). Auth errors (`INVALID_API_KEY`, `UNAUTHENTICATED`, etc.) fail
|
|
315
|
+
* immediately without retry.
|
|
316
|
+
* - Records per-sample failures on the model aggregate's `errors[]` instead
|
|
317
|
+
* of throwing — one bad sample doesn't block the rest of the matrix.
|
|
318
|
+
* - Emits per-sample progress via `onProgress` so callers can stream live
|
|
319
|
+
* output (`▸ <model> × <prompt> sample N/M: ...`).
|
|
320
|
+
*/
|
|
321
|
+
declare function runMatrixFull(input: RunFullInput): Promise<RunFullResult>;
|
|
322
|
+
/**
|
|
323
|
+
* Write `payload` to `<dir>/<ISO-date>.json` atomically (write to a randomised
|
|
324
|
+
* `.tmp-<id>.json` then rename). Best-effort redaction runs before
|
|
325
|
+
* serialisation: both sensitive labels (api_key / Authorization / …) and
|
|
326
|
+
* common credential VALUE shapes (Bearer tokens, `sk-`/`ya29.` keys, PEM
|
|
327
|
+
* blocks, AWS/Slack ids) are blanked so credentials that leak into agent-run
|
|
328
|
+
* traces are scrubbed from the on-disk record. This is a safety net, not a
|
|
329
|
+
* guarantee — the design keeps credentials out of traces. Aborts (without
|
|
330
|
+
* writing) when
|
|
331
|
+
* the serialised payload would exceed `MAX_RESULTS_SIZE_BYTES` — the failure
|
|
332
|
+
* mode is intentionally noisy so a bug that bloats the results dir never lands
|
|
333
|
+
* on disk silently.
|
|
334
|
+
*/
|
|
335
|
+
declare function writeResultsAtomic(payload: ResultsFile, dir: string): Promise<string>;
|
|
336
|
+
/**
|
|
337
|
+
* Write the raw-trace sidecar to `<dir>/<ISO-date>-raw.json` atomically. Uses
|
|
338
|
+
* the same sensitive-string redaction as the main results file. Has no size
|
|
339
|
+
* cap — the maintainer opted in via `includeRaw: true` and a hard fail
|
|
340
|
+
* mid-run would discard the agent traces they explicitly asked to keep.
|
|
341
|
+
*/
|
|
342
|
+
declare function writeRawResultsAtomic(payload: RawResultsFile, dir: string): Promise<string>;
|
|
343
|
+
//#endregion
|
|
344
|
+
export { ExecLike, ModelAggregate, ProgressEvent, RawResultsFile, ResultsFile, RunFullInput, RunFullResult, RunMatrixInput, RunMatrixResult, RunOneInput, RunOneResult, SampleError, ToolEntry, ValidatedRunArgs, ValidatedRunFullArgs, aggregateAcrossPrompts, defaultBenchSystem, defaultBenchTools, extractExpectedOutcomes, extractExpectedPaths, promptToBenchPrompt, runMatrix, runMatrixFull, runOne, validateRunArgs, validateRunFullArgs, writeRawResultsAtomic, writeResultsAtomic };
|
|
345
|
+
//# sourceMappingURL=runner.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.d.cts","names":[],"sources":["../src/runner.ts"],"mappings":"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"}
|