Dataset, TestCase, Evaluator, and RunConfig exports, then expands each run config into executable jobs.
Naming
Dataset, TestCase, Evaluator, and RunConfig all use name as a stable id. Names may contain letters, digits, _, and -; they cannot contain spaces. CLI resolution is case-insensitive.
Use displayName when you want a richer label in the terminal UI or artifacts.
Tags and Dataset Filters
Test-case tags label a case:includedTags can be a flat list of string or RegExp matchers, or a structured filter:
Evaluator Context
UseEvaluator.use(...) to add middleware context. Middleware resolves once per evaluator invocation and is merged into ctx.
Evaluator Metadata
Everyevaluate call receives meta with run context:
triggerId,triggerTimestamp, andtriggeredAtrunId,runConfigName, and optionalexperimentNamedatasetName,testCaseId, andtestCaseNamerepetitionId,repetitionIndex, andrepetitionCounttestCaseTags,runConfigTags, andevaluatorTags
Scores and Metrics
Scores decide whether a test case passed. Built-in scores include:percentScorefor 0-100 style quality scoresdeltaScorefor value plus baseline deltabinaryScorefor pass/fail checks
tokenCountMetriclatencyMetric
Score.of(...) and Metric.of(...).
Logs and Diffs
Evaluators can attach details to the run artifact:Repetitions and Sampling
Run config rows can run each matching case more than once:sampling to run a subset of a dataset:
count or percent, not both. A seed makes the subset deterministic.
