@vercel/agent-eval 0.4.1 → 0.6.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/cli.js CHANGED
@@ -5,18 +5,19 @@
5
5
  import { Command } from 'commander';
6
6
  import { config as dotenvConfig } from 'dotenv';
7
7
  import { resolve, dirname, basename } from 'path';
8
- import { existsSync, readFileSync, readdirSync } from 'fs';
8
+ import { existsSync, readFileSync, readdirSync, rmSync, writeFileSync } from 'fs';
9
9
  import { fileURLToPath } from 'url';
10
10
  import chalk from 'chalk';
11
11
  import { loadConfig, resolveEvalNames } from './lib/config.js';
12
12
  import { loadAllFixtures } from './lib/fixture.js';
13
13
  import { runExperiment } from './lib/runner.js';
14
+ import { Dashboard, createConsoleProgressHandler } from './lib/dashboard.js';
14
15
  import { initProject, getPostInitInstructions } from './lib/init.js';
15
16
  import { getAgent } from './lib/agents/index.js';
16
17
  import { getSandboxBackendInfo } from './lib/sandbox.js';
17
18
  import { computeFingerprint } from './lib/fingerprint.js';
18
19
  import { scanReusableResults } from './lib/results.js';
19
- import { classifyFailure, shouldRetry } from './lib/classifier.js';
20
+ import { isClassifierEnabled, classifyFailure } from './lib/classifier.js';
20
21
  import { housekeep } from './lib/housekeeping.js';
21
22
  import { spawnSync } from 'child_process';
22
23
  import { minimatch } from 'minimatch';
@@ -149,7 +150,11 @@ async function runExperimentCommand(configInput, options) {
149
150
  resultsDir,
150
151
  experimentName,
151
152
  smoke: options.smoke,
152
- onProgress: (msg) => console.log(msg),
153
+ onProgress: createConsoleProgressHandler({
154
+ experimentName,
155
+ model,
156
+ agent: config.agent,
157
+ }),
153
158
  });
154
159
  // Check if this experiment passed
155
160
  const experimentPassed = results.evals.every((e) => e.passedRuns === e.totalRuns);
@@ -226,9 +231,9 @@ program
226
231
  process.exit(result.status ?? 1);
227
232
  });
228
233
  /**
229
- * Run-all handler: discover and run all experiments with fingerprint reuse,
230
- * classification, and auto-retry. Used by both `run-all` subcommand and
231
- * the default (no-args) invocation.
234
+ * Run-all handler: discover and run all experiments with fingerprint reuse
235
+ * and classification. Used by both `run-all` subcommand and the default
236
+ * (no-args) invocation.
232
237
  */
233
238
  async function runAllCommand(experimentArgs, options) {
234
239
  try {
@@ -277,10 +282,98 @@ async function runAllCommand(experimentArgs, options) {
277
282
  console.error(chalk.red('No valid eval fixtures found'));
278
283
  process.exit(1);
279
284
  }
285
+ // --- Dry run: collect info and print a single summary table ---
280
286
  if (options.dry) {
281
- console.log(chalk.yellow('\n[DRY RUN] Checking what would run...\n'));
287
+ const dryResults = [];
288
+ for (const file of selectedFiles) {
289
+ const configPath = resolve(experimentsDir, file);
290
+ const baseExperimentName = file.replace(/\.ts$/, '');
291
+ let config;
292
+ try {
293
+ config = await loadConfig(configPath);
294
+ }
295
+ catch (err) {
296
+ console.error(chalk.red(`Failed to load ${file}: ${err instanceof Error ? err.message : err}`));
297
+ continue;
298
+ }
299
+ const models = Array.isArray(config.model) ? config.model : [config.model];
300
+ const availableNames = fixtures.map((f) => f.name);
301
+ let evalNames;
302
+ try {
303
+ evalNames = resolveEvalNames(config.evals, availableNames);
304
+ }
305
+ catch {
306
+ evalNames = availableNames;
307
+ }
308
+ if (options.smoke) {
309
+ evalNames = [evalNames.sort()[0]];
310
+ }
311
+ for (const model of models) {
312
+ const experimentName = models.length > 1
313
+ ? `${baseExperimentName}/${model}`
314
+ : baseExperimentName;
315
+ const modelConfig = { ...config, model, runs: options.smoke ? 1 : config.runs };
316
+ const selectedFixtures = fixtures.filter((f) => evalNames.includes(f.name));
317
+ const fingerprints = {};
318
+ for (const fixture of selectedFixtures) {
319
+ fingerprints[fixture.name] = computeFingerprint(fixture.path, modelConfig);
320
+ }
321
+ let fixturesToRun = selectedFixtures;
322
+ if (!options.force && !options.smoke) {
323
+ const reusable = scanReusableResults(resultsDir, experimentName, fingerprints);
324
+ if (reusable.size > 0) {
325
+ fixturesToRun = selectedFixtures.filter((f) => !reusable.has(f.name));
326
+ }
327
+ }
328
+ dryResults.push({
329
+ name: experimentName,
330
+ toRun: fixturesToRun.map((f) => f.name),
331
+ cached: selectedFixtures.length - fixturesToRun.length,
332
+ total: selectedFixtures.length,
333
+ });
334
+ }
335
+ }
336
+ // Print summary
337
+ const totalToRun = dryResults.reduce((sum, d) => sum + d.toRun.length, 0);
338
+ const totalCached = dryResults.reduce((sum, d) => sum + d.cached, 0);
339
+ const nameWidth = Math.max(...dryResults.map((d) => d.name.length)) + 2;
340
+ console.log('');
341
+ if (totalToRun === 0) {
342
+ console.log(chalk.green(` All ${totalCached} evals cached across ${dryResults.length} experiments. Nothing to run.`));
343
+ }
344
+ else {
345
+ console.log(chalk.bold(` ${totalToRun} evals to run, ${totalCached} cached\n`));
346
+ for (const d of dryResults) {
347
+ const label = d.name.padEnd(nameWidth);
348
+ if (d.toRun.length === 0) {
349
+ console.log(chalk.gray(` ${label} ${d.total} cached`));
350
+ }
351
+ else {
352
+ console.log(chalk.white(` ${label}`) +
353
+ chalk.blue(` ${d.toRun.length} to run`) +
354
+ (d.cached > 0 ? chalk.gray(`, ${d.cached} cached`) : ''));
355
+ for (const name of d.toRun) {
356
+ console.log(chalk.green(` ${' '.repeat(nameWidth)} → ${name}`));
357
+ }
358
+ }
359
+ }
360
+ }
361
+ console.log('');
362
+ return;
363
+ }
364
+ // --- Live run ---
365
+ const useDashboard = process.stdout.isTTY && selectedFiles.length > 1;
366
+ const dashboard = useDashboard ? new Dashboard() : null;
367
+ if (dashboard) {
368
+ dashboard.start();
369
+ }
370
+ // Warn if classifier is disabled
371
+ if (!isClassifierEnabled()) {
372
+ console.log(chalk.yellow('\n⚠️ Classifier disabled: Neither AI_GATEWAY_API_KEY nor VERCEL_OIDC_TOKEN is set.\n' +
373
+ ' The classifier automatically identifies why evals failed (model error, infrastructure issue, or timeout).\n' +
374
+ ' Without it, all failed results are kept as-is and housekeeping will not remove non-model failures.\n' +
375
+ ' Set AI_GATEWAY_API_KEY or VERCEL_OIDC_TOKEN to enable classifier for cleaner result management.\n'));
282
376
  }
283
- // Run all experiments in parallel
284
377
  let allPassed = true;
285
378
  const experimentPromises = selectedFiles.map(async (file) => {
286
379
  const configPath = resolve(experimentsDir, file);
@@ -302,14 +395,13 @@ async function runAllCommand(experimentArgs, options) {
302
395
  catch {
303
396
  evalNames = availableNames;
304
397
  }
305
- // Smoke mode: pick first eval
306
398
  if (options.smoke) {
307
399
  evalNames = [evalNames.sort()[0]];
308
400
  }
309
401
  const agent = getAgent(config.agent);
310
402
  const apiKeyEnvVar = agent.getApiKeyEnvVar();
311
403
  const apiKey = process.env[apiKeyEnvVar] ?? process.env.VERCEL_OIDC_TOKEN;
312
- if (!apiKey && !options.dry) {
404
+ if (!apiKey) {
313
405
  console.error(chalk.red(`${apiKeyEnvVar} (or VERCEL_OIDC_TOKEN) not set, skipping ${baseExperimentName}`));
314
406
  return;
315
407
  }
@@ -322,46 +414,36 @@ async function runAllCommand(experimentArgs, options) {
322
414
  model,
323
415
  runs: options.smoke ? 1 : config.runs,
324
416
  };
325
- // Compute fingerprints
326
417
  const selectedFixtures = fixtures.filter((f) => evalNames.includes(f.name));
327
418
  const fingerprints = {};
328
419
  for (const fixture of selectedFixtures) {
329
420
  fingerprints[fixture.name] = computeFingerprint(fixture.path, modelConfig);
330
421
  }
331
- // Check for reusable results (unless --force or --smoke)
332
422
  let fixturesToRun = selectedFixtures;
333
423
  if (!options.force && !options.smoke) {
334
424
  const reusable = scanReusableResults(resultsDir, experimentName, fingerprints);
335
425
  if (reusable.size > 0) {
336
- console.log(chalk.gray(` ${experimentName}: reusing ${reusable.size} cached result(s)`));
337
426
  fixturesToRun = selectedFixtures.filter((f) => !reusable.has(f.name));
338
427
  }
339
428
  }
340
- // Dry run: report what would happen and move on
341
- if (options.dry) {
342
- const cachedCount = selectedFixtures.length - fixturesToRun.length;
343
- if (fixturesToRun.length === 0) {
344
- console.log(chalk.gray(` ${experimentName}: ${selectedFixtures.length} eval(s) — all cached, nothing to run`));
345
- }
346
- else {
347
- console.log(chalk.blue(` ${experimentName}: ${fixturesToRun.length} to run, ${cachedCount} cached`));
348
- for (const f of fixturesToRun) {
349
- console.log(chalk.green(` → ${f.name}`));
350
- }
351
- if (cachedCount > 0) {
352
- const cachedNames = selectedFixtures
353
- .filter((f) => !fixturesToRun.some((r) => r.name === f.name))
354
- .map((f) => f.name);
355
- console.log(chalk.gray(` cached: ${cachedNames.join(', ')}`));
356
- }
357
- }
358
- continue;
359
- }
360
429
  if (fixturesToRun.length === 0) {
361
- console.log(chalk.gray(` ${experimentName}: all evals cached, skipping`));
362
430
  continue;
363
431
  }
364
- console.log(chalk.blue(`\nRunning ${experimentName}: ${fixturesToRun.length} eval(s)`));
432
+ // Register with dashboard or log to console
433
+ if (dashboard) {
434
+ dashboard.addExperiment(experimentName, {
435
+ agent: config.agent,
436
+ model,
437
+ totalEvals: fixturesToRun.length,
438
+ });
439
+ }
440
+ else {
441
+ console.log(chalk.blue(`\nRunning ${experimentName}: ${fixturesToRun.length} eval(s)`));
442
+ }
443
+ // Build the progress handler
444
+ const onProgress = dashboard
445
+ ? (event) => dashboard.handleEvent(experimentName, event)
446
+ : createConsoleProgressHandler({ experimentName, model, agent: config.agent });
365
447
  try {
366
448
  const results = await runExperiment({
367
449
  config: modelConfig,
@@ -371,39 +453,55 @@ async function runAllCommand(experimentArgs, options) {
371
453
  experimentName,
372
454
  fingerprints,
373
455
  smoke: options.smoke,
374
- onProgress: (msg) => console.log(` ${msg}`),
456
+ onProgress,
375
457
  });
376
- // Classify failures and check for auto-retry
458
+ // Classify failures (only if classifier is enabled)
377
459
  const failedEvals = results.evals.filter((e) => e.passedRuns === 0);
378
- if (failedEvals.length > 0 && !options.smoke) {
379
- const classifications = {};
380
- const timestamp = results.startedAt.replace(/:/g, '-');
381
- for (const evalSummary of failedEvals) {
382
- const evalResultDir = resolve(resultsDir, experimentName, timestamp, evalSummary.name);
383
- const classification = await classifyFailure(evalResultDir, evalSummary.name, experimentName);
384
- if (classification) {
385
- classifications[evalSummary.name] = classification;
386
- const icon = { model: ' ', infra: ' ', timeout: ' ' }[classification.failureType];
387
- console.log(chalk.gray(` ${icon} ${evalSummary.name}: ${classification.failureType} — ${classification.failureReason}`));
388
- }
460
+ const classifications = new Map();
461
+ let hasNonModelFailures = false;
462
+ if (isClassifierEnabled()) {
463
+ if (dashboard) {
464
+ dashboard.setPhase(experimentName, 'classifying');
389
465
  }
390
- // Auto-retry: if ALL failures are non-model, retry once
391
- const classificationValues = Object.values(classifications);
392
- if (classificationValues.length === failedEvals.length &&
393
- shouldRetry(classificationValues.map((c) => ({ failureType: c.failureType, failureReason: c.failureReason })))) {
394
- const retryFixtures = fixturesToRun.filter((f) => failedEvals.some((e) => e.name === f.name));
395
- console.log(chalk.yellow(` Retrying ${retryFixtures.length} infra-failed eval(s)...`));
396
- await runExperiment({
397
- config: modelConfig,
398
- fixtures: retryFixtures,
399
- apiKey: apiKey,
400
- resultsDir,
401
- experimentName,
402
- fingerprints,
403
- onProgress: (msg) => console.log(` [retry] ${msg}`),
404
- });
466
+ if (failedEvals.length > 0 && !options.smoke) {
467
+ const timestamp = results.startedAt.replace(/:/g, '-');
468
+ for (const evalSummary of failedEvals) {
469
+ const evalResultDir = resolve(resultsDir, experimentName, timestamp, evalSummary.name);
470
+ const classification = await classifyFailure(evalResultDir, evalSummary.name, experimentName);
471
+ if (classification) {
472
+ classifications.set(evalSummary.name, classification);
473
+ if (!dashboard) {
474
+ const icon = { model: ' ', infra: ' ', timeout: ' ' }[classification.failureType];
475
+ console.log(chalk.gray(` ${icon} ${evalSummary.name}: ${classification.failureType} — ${classification.failureReason}`));
476
+ }
477
+ if (classification.failureType !== 'model') {
478
+ if (options.ackFailures) {
479
+ classification.acknowledged = true;
480
+ const classificationPath = resolve(evalResultDir, 'classification.json');
481
+ writeFileSync(classificationPath, JSON.stringify(classification, null, 2));
482
+ if (!dashboard) {
483
+ console.log(chalk.yellow(` ✓ Acknowledged ${evalSummary.name} (${classification.failureType} failure — kept as final result)`));
484
+ }
485
+ }
486
+ else {
487
+ rmSync(evalResultDir, { recursive: true });
488
+ if (!dashboard) {
489
+ console.log(chalk.gray(` 🗑️ Removed ${evalSummary.name} (${classification.failureType} failure)`));
490
+ }
491
+ hasNonModelFailures = true;
492
+ }
493
+ }
494
+ }
495
+ }
496
+ if (hasNonModelFailures && !dashboard) {
497
+ console.log(chalk.yellow(`\n To keep non-model failures as final results, re-run with --ack-failures`));
498
+ }
405
499
  }
406
500
  }
501
+ // Complete the experiment in the dashboard (prints permanent block)
502
+ if (dashboard) {
503
+ dashboard.completeExperiment(experimentName, results, classifications);
504
+ }
407
505
  const experimentPassed = results.evals.every((e) => e.passedRuns > 0);
408
506
  if (!experimentPassed)
409
507
  allPassed = false;
@@ -411,18 +509,22 @@ async function runAllCommand(experimentArgs, options) {
411
509
  catch (err) {
412
510
  console.error(chalk.red(` Error running ${experimentName}: ${err instanceof Error ? err.message : err}`));
413
511
  allPassed = false;
512
+ if (dashboard) {
513
+ dashboard.setPhase(experimentName, 'done');
514
+ }
414
515
  }
415
516
  // Housekeeping after each experiment
416
517
  const stats = housekeep(resultsDir, experimentName);
417
- if (stats.removedDuplicates + stats.removedIncomplete > 0) {
418
- console.log(chalk.gray(` Housekeeping: removed ${stats.removedDuplicates} duplicate(s), ${stats.removedIncomplete} incomplete`));
518
+ if (stats.removedDuplicates + stats.removedIncomplete + stats.removedNonModelFailures > 0) {
519
+ console.log(chalk.gray(` Housekeeping: removed ${stats.removedDuplicates} duplicate(s), ${stats.removedIncomplete} incomplete, ${stats.removedNonModelFailures} non-model failure(s)`));
419
520
  }
420
521
  }
421
522
  });
422
523
  await Promise.all(experimentPromises);
423
- if (!options.dry) {
424
- process.exit(allPassed ? 0 : 1);
524
+ if (dashboard) {
525
+ dashboard.stop();
425
526
  }
527
+ process.exit(allPassed ? 0 : 1);
426
528
  }
427
529
  catch (error) {
428
530
  if (error instanceof Error) {
@@ -439,11 +541,12 @@ async function runAllCommand(experimentArgs, options) {
439
541
  */
440
542
  program
441
543
  .command('run-all')
442
- .description('Discover and run all experiments, with fingerprint reuse, classification, and auto-retry')
544
+ .description('Discover and run all experiments with fingerprint reuse and classification')
443
545
  .argument('[experiments...]', 'Experiment names or glob patterns (default: all)')
444
546
  .option('--dry', 'Preview what would run without executing')
445
547
  .option('--force', 'Ignore fingerprints, re-run everything')
446
548
  .option('--smoke', 'Run 1 eval per experiment for sanity checking')
549
+ .option('--ack-failures', 'Keep non-model failures (infra/timeout) as final results instead of deleting them')
447
550
  .action(runAllCommand);
448
551
  /**
449
552
  * Default command - run a single experiment, or run-all if no args given.
@@ -457,6 +560,7 @@ program
457
560
  .option('--dry', 'Preview what would run without executing')
458
561
  .option('--smoke', 'Run a single eval to verify setup (API keys, model IDs, sandbox)')
459
562
  .option('--force', 'Ignore fingerprints, re-run everything (only applies when running all)')
563
+ .option('--ack-failures', 'Keep non-model failures (infra/timeout) as final results instead of deleting them')
460
564
  .action(async (configInput, options) => {
461
565
  if (!configInput) {
462
566
  await runAllCommand([], options);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Framework for testing AI coding agents in isolated sandboxes.
5
5
  */
6
- export type { AgentType, ModelTier, EvalFilter, Sandbox, SetupFunction, ExperimentConfig, ResolvedExperimentConfig, EvalFixture, EvalRunResult, EvalRunData, EvalSummary, ExperimentResults, FailureType, Classification, } from './lib/types.js';
6
+ export type { AgentType, ModelTier, EvalFilter, Sandbox, SetupFunction, ExperimentConfig, ResolvedExperimentConfig, EvalFixture, EvalRunResult, EvalRunData, EvalSummary, ProgressEvent, ExperimentResults, FailureType, Classification, } from './lib/types.js';
7
7
  export { REQUIRED_EVAL_FILES, EXCLUDED_FILES } from './lib/types.js';
8
8
  export { CONFIG_DEFAULTS, validateConfig, resolveConfig, loadConfig, resolveEvalNames, } from './lib/config.js';
9
9
  export { FixtureValidationError, discoverFixtures, validateFixtureFiles, validatePackageJson, loadFixture, loadAllFixtures, getFixtureFiles, readFixtureFiles, } from './lib/fixture.js';
@@ -17,10 +17,11 @@ export { getAgent, listAgents, registerAgent } from './lib/agents/index.js';
17
17
  export type { SaveResultsOptions, ReusableResult } from './lib/results.js';
18
18
  export { agentResultToEvalRunData, createEvalSummary, createExperimentResults, saveResults, formatResultsTable, formatRunResult, createProgressDisplay, scanReusableResults, } from './lib/results.js';
19
19
  export { computeFingerprint } from './lib/fingerprint.js';
20
- export { classifyFailure, classifyWithAI, shouldRetry, } from './lib/classifier.js';
20
+ export { isClassifierEnabled, classifyFailure, classifyWithAI, isNonModelFailure, } from './lib/classifier.js';
21
21
  export { housekeep } from './lib/housekeeping.js';
22
22
  export type { RunExperimentOptions } from './lib/runner.js';
23
23
  export { runExperiment, runSingleEval } from './lib/runner.js';
24
+ export { Dashboard, createConsoleProgressHandler } from './lib/dashboard.js';
24
25
  export type { InitOptions } from './lib/init.js';
25
26
  export { initProject, getPostInitInstructions } from './lib/init.js';
26
27
  export type { ToolName, TranscriptEvent, WebFetchInfo, FileOperationInfo, ShellCommandInfo, TranscriptSummary, Transcript, ParseableAgent, } from './lib/o11y/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,SAAS,EACT,SAAS,EACT,UAAU,EACV,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,wBAAwB,EACxB,WAAW,EACX,aAAa,EACb,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,cAAc,GACf,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrE,OAAO,EACL,eAAe,EACf,cAAc,EACd,aAAa,EACb,UAAU,EACV,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,eAAe,EACf,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,cAAc,EACd,aAAa,EACb,WAAW,EACX,cAAc,EACd,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAG/D,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG7E,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG5E,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,uBAAuB,EACvB,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EACL,eAAe,EACf,cAAc,EACd,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGlD,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAG/D,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAGrE,YAAY,EACV,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,cAAc,GACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,cAAc,EACd,gBAAgB,EAChB,yBAAyB,EACzB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,SAAS,EACT,SAAS,EACT,UAAU,EACV,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,wBAAwB,EACxB,WAAW,EACX,aAAa,EACb,WAAW,EACX,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,cAAc,GACf,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrE,OAAO,EACL,eAAe,EACf,cAAc,EACd,aAAa,EACb,UAAU,EACV,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,eAAe,EACf,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,cAAc,EACd,aAAa,EACb,WAAW,EACX,cAAc,EACd,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAG/D,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG7E,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG5E,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,uBAAuB,EACvB,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGlD,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAG/D,OAAO,EAAE,SAAS,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAG7E,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAGrE,YAAY,EACV,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,cAAc,GACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,cAAc,EACd,gBAAgB,EAChB,yBAAyB,EACzB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -16,10 +16,12 @@ export { agentResultToEvalRunData, createEvalSummary, createExperimentResults, s
16
16
  // Re-export fingerprinting
17
17
  export { computeFingerprint } from './lib/fingerprint.js';
18
18
  // Re-export classifier
19
- export { classifyFailure, classifyWithAI, shouldRetry, } from './lib/classifier.js';
19
+ export { isClassifierEnabled, classifyFailure, classifyWithAI, isNonModelFailure, } from './lib/classifier.js';
20
20
  // Re-export housekeeping
21
21
  export { housekeep } from './lib/housekeeping.js';
22
22
  export { runExperiment, runSingleEval } from './lib/runner.js';
23
+ // Re-export dashboard utilities
24
+ export { Dashboard, createConsoleProgressHandler } from './lib/dashboard.js';
23
25
  export { initProject, getPostInitInstructions } from './lib/init.js';
24
26
  export { parseTranscript, parseTranscriptSummary, loadTranscript, SUPPORTED_AGENTS, parseClaudeCodeTranscript, parseCodexTranscript, parseOpenCodeTranscript, } from './lib/o11y/index.js';
25
27
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoBH,sBAAsB;AACtB,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErE,6BAA6B;AAC7B,OAAO,EACL,eAAe,EACf,cAAc,EACd,aAAa,EACb,UAAU,EACV,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,8BAA8B;AAC9B,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,eAAe,EACf,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAU1B,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAO/D,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAI5E,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,uBAAuB,EACvB,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAE1B,2BAA2B;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,uBAAuB;AACvB,OAAO,EACL,eAAe,EACf,cAAc,EACd,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAE7B,yBAAyB;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIlD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAI/D,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAarE,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,cAAc,EACd,gBAAgB,EAChB,yBAAyB,EACzB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAqBH,sBAAsB;AACtB,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErE,6BAA6B;AAC7B,OAAO,EACL,eAAe,EACf,cAAc,EACd,aAAa,EACb,UAAU,EACV,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,8BAA8B;AAC9B,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,eAAe,EACf,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAU1B,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAO/D,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAI5E,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,uBAAuB,EACvB,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAE1B,2BAA2B;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,uBAAuB;AACvB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAE7B,yBAAyB;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIlD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE/D,gCAAgC;AAChC,OAAO,EAAE,SAAS,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAI7E,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAarE,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,cAAc,EACd,gBAAgB,EAChB,yBAAyB,EACzB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC"}
@@ -6,9 +6,15 @@
6
6
  * - "infra" — infrastructure broke (API errors, rate limits, crashes)
7
7
  * - "timeout" — the run hit its time limit
8
8
  *
9
- * Uses AI classification via the Vercel AI Gateway. Requires AI_GATEWAY_API_KEY.
9
+ * Uses AI classification via the Vercel AI Gateway. Requires AI_GATEWAY_API_KEY or VERCEL_OIDC_TOKEN.
10
10
  */
11
11
  import type { Classification } from './types.js';
12
+ /**
13
+ * Check if the classifier feature is enabled.
14
+ * The classifier requires either AI_GATEWAY_API_KEY or VERCEL_OIDC_TOKEN to be set.
15
+ * If neither is available, classification is disabled and housekeeping won't clean up non-model failures.
16
+ */
17
+ export declare function isClassifierEnabled(): boolean;
12
18
  /**
13
19
  * Creates sandboxed read-only tools for the AI classifier.
14
20
  */
@@ -73,8 +79,11 @@ export declare function classifyWithAI(evalResultDir: string, evalName: string,
73
79
  */
74
80
  export declare function classifyFailure(evalResultDir: string, evalName: string, experimentName: string): Promise<Classification | null>;
75
81
  /**
76
- * Check if all runs of an eval failed with non-model failures.
77
- * Used to determine if auto-retry is appropriate.
82
+ * Check if an eval result was classified as a non-model failure (infra or timeout).
83
+ * Reads classification.json the single source of truth for classification data.
84
+ *
85
+ * Returns false for acknowledged failures (--ack-failures), since those are
86
+ * intentionally kept as final results.
78
87
  */
79
- export declare function shouldRetry(classifications: Classification[]): boolean;
88
+ export declare function isNonModelFailure(evalResultDir: string): boolean;
80
89
  //# sourceMappingURL=classifier.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"classifier.d.ts","sourceRoot":"","sources":["../../src/lib/classifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,YAAY,CAAC;AA8B9D;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM;;;;;;;;kBAepB,MAAM;kBAAQ,MAAM,GAAG,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAkE9B,MAAM;kBAAQ,MAAM;kBAAQ,MAAM;;;;;;EA0DtE;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAwChC;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAyBhC;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,eAAe,EAAE,cAAc,EAAE,GAAG,OAAO,CAGtE"}
1
+ {"version":3,"file":"classifier.d.ts","sourceRoot":"","sources":["../../src/lib/classifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAe,MAAM,YAAY,CAAC;AAE9D;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AA8BD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM;;;;;;;;kBAepB,MAAM;kBAAQ,MAAM,GAAG,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAkE9B,MAAM;kBAAQ,MAAM;kBAAQ,MAAM;;;;;;EA0DtE;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAwChC;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAyBhC;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAQhE"}
@@ -6,12 +6,20 @@
6
6
  * - "infra" — infrastructure broke (API errors, rate limits, crashes)
7
7
  * - "timeout" — the run hit its time limit
8
8
  *
9
- * Uses AI classification via the Vercel AI Gateway. Requires AI_GATEWAY_API_KEY.
9
+ * Uses AI classification via the Vercel AI Gateway. Requires AI_GATEWAY_API_KEY or VERCEL_OIDC_TOKEN.
10
10
  */
11
11
  import { readFileSync, readdirSync, statSync, writeFileSync } from 'fs';
12
12
  import { join, resolve } from 'path';
13
13
  import { tool } from 'ai';
14
14
  import { z } from 'zod';
15
+ /**
16
+ * Check if the classifier feature is enabled.
17
+ * The classifier requires either AI_GATEWAY_API_KEY or VERCEL_OIDC_TOKEN to be set.
18
+ * If neither is available, classification is disabled and housekeeping won't clean up non-model failures.
19
+ */
20
+ export function isClassifierEnabled() {
21
+ return !!(process.env.AI_GATEWAY_API_KEY || process.env.VERCEL_OIDC_TOKEN);
22
+ }
15
23
  const CLASSIFIER_SYSTEM_PROMPT = `You are a failure classifier for an AI coding agent benchmark.
16
24
 
17
25
  Your job: figure out WHY a failed eval run failed. Each eval tests whether an AI model can complete a coding task (e.g. migrate to App Router, add a Next.js feature). You have tools to explore the result files.
@@ -257,12 +265,21 @@ export async function classifyFailure(evalResultDir, evalName, experimentName) {
257
265
  return classification;
258
266
  }
259
267
  /**
260
- * Check if all runs of an eval failed with non-model failures.
261
- * Used to determine if auto-retry is appropriate.
268
+ * Check if an eval result was classified as a non-model failure (infra or timeout).
269
+ * Reads classification.json the single source of truth for classification data.
270
+ *
271
+ * Returns false for acknowledged failures (--ack-failures), since those are
272
+ * intentionally kept as final results.
262
273
  */
263
- export function shouldRetry(classifications) {
264
- if (classifications.length === 0)
274
+ export function isNonModelFailure(evalResultDir) {
275
+ try {
276
+ const classification = JSON.parse(readFileSync(join(evalResultDir, 'classification.json'), 'utf-8'));
277
+ if (classification.acknowledged)
278
+ return false;
279
+ return classification.failureType != null && classification.failureType !== 'model';
280
+ }
281
+ catch {
265
282
  return false;
266
- return classifications.every((c) => c.failureType !== 'model');
283
+ }
267
284
  }
268
285
  //# sourceMappingURL=classifier.js.map