@cogitator-ai/evals 0.11.0 → 0.13.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 (155) hide show
  1. package/README.md +159 -40
  2. package/dist/calibrate-judge.d.ts +53 -0
  3. package/dist/calibrate-judge.d.ts.map +1 -0
  4. package/dist/calibrate-judge.js +114 -0
  5. package/dist/calibrate-judge.js.map +1 -0
  6. package/dist/comparison-stats.d.ts +104 -0
  7. package/dist/comparison-stats.d.ts.map +1 -0
  8. package/dist/comparison-stats.js +179 -0
  9. package/dist/comparison-stats.js.map +1 -0
  10. package/dist/datasets/dataset.d.ts.map +1 -1
  11. package/dist/datasets/dataset.js +3 -27
  12. package/dist/datasets/dataset.js.map +1 -1
  13. package/dist/eval-comparison.d.ts +30 -10
  14. package/dist/eval-comparison.d.ts.map +1 -1
  15. package/dist/eval-comparison.js +73 -103
  16. package/dist/eval-comparison.js.map +1 -1
  17. package/dist/eval-suite.d.ts +33 -0
  18. package/dist/eval-suite.d.ts.map +1 -1
  19. package/dist/eval-suite.js +81 -2
  20. package/dist/eval-suite.js.map +1 -1
  21. package/dist/index.d.ts +21 -5
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +10 -1
  24. package/dist/index.js.map +1 -1
  25. package/dist/metrics/g-eval.d.ts +29 -0
  26. package/dist/metrics/g-eval.d.ts.map +1 -0
  27. package/dist/metrics/g-eval.js +89 -0
  28. package/dist/metrics/g-eval.js.map +1 -0
  29. package/dist/metrics/index.d.ts +3 -1
  30. package/dist/metrics/index.d.ts.map +1 -1
  31. package/dist/metrics/index.js +1 -0
  32. package/dist/metrics/index.js.map +1 -1
  33. package/dist/metrics/judge-prompt.d.ts +31 -0
  34. package/dist/metrics/judge-prompt.d.ts.map +1 -0
  35. package/dist/metrics/judge-prompt.js +90 -0
  36. package/dist/metrics/judge-prompt.js.map +1 -0
  37. package/dist/metrics/llm-judge.d.ts +96 -9
  38. package/dist/metrics/llm-judge.d.ts.map +1 -1
  39. package/dist/metrics/llm-judge.js +265 -120
  40. package/dist/metrics/llm-judge.js.map +1 -1
  41. package/dist/metrics/types.d.ts +25 -0
  42. package/dist/metrics/types.d.ts.map +1 -1
  43. package/dist/metrics/types.js.map +1 -1
  44. package/dist/options.d.ts +4 -0
  45. package/dist/options.d.ts.map +1 -0
  46. package/dist/options.js +9 -0
  47. package/dist/options.js.map +1 -0
  48. package/dist/pairwise.d.ts +53 -0
  49. package/dist/pairwise.d.ts.map +1 -0
  50. package/dist/pairwise.js +118 -0
  51. package/dist/pairwise.js.map +1 -0
  52. package/dist/reporters/comparison.d.ts +24 -0
  53. package/dist/reporters/comparison.d.ts.map +1 -0
  54. package/dist/reporters/comparison.js +290 -0
  55. package/dist/reporters/comparison.js.map +1 -0
  56. package/dist/reporters/format.d.ts +21 -0
  57. package/dist/reporters/format.d.ts.map +1 -1
  58. package/dist/reporters/format.js +31 -0
  59. package/dist/reporters/format.js.map +1 -1
  60. package/dist/reporters/github.d.ts.map +1 -1
  61. package/dist/reporters/github.js +1 -16
  62. package/dist/reporters/github.js.map +1 -1
  63. package/dist/reporters/html-format.d.ts +11 -0
  64. package/dist/reporters/html-format.d.ts.map +1 -0
  65. package/dist/reporters/html-format.js +111 -0
  66. package/dist/reporters/html-format.js.map +1 -0
  67. package/dist/reporters/html.d.ts +12 -0
  68. package/dist/reporters/html.d.ts.map +1 -0
  69. package/dist/reporters/html.js +119 -0
  70. package/dist/reporters/html.js.map +1 -0
  71. package/dist/reporters/index.d.ts +20 -6
  72. package/dist/reporters/index.d.ts.map +1 -1
  73. package/dist/reporters/index.js +15 -4
  74. package/dist/reporters/index.js.map +1 -1
  75. package/dist/reporters/markdown.d.ts +15 -0
  76. package/dist/reporters/markdown.d.ts.map +1 -0
  77. package/dist/reporters/markdown.js +67 -0
  78. package/dist/reporters/markdown.js.map +1 -0
  79. package/dist/runs/compare.d.ts +103 -0
  80. package/dist/runs/compare.d.ts.map +1 -0
  81. package/dist/runs/compare.js +208 -0
  82. package/dist/runs/compare.js.map +1 -0
  83. package/dist/runs/index.d.ts +9 -0
  84. package/dist/runs/index.d.ts.map +1 -0
  85. package/dist/runs/index.js +5 -0
  86. package/dist/runs/index.js.map +1 -0
  87. package/dist/runs/json.d.ts +11 -0
  88. package/dist/runs/json.d.ts.map +1 -0
  89. package/dist/runs/json.js +58 -0
  90. package/dist/runs/json.js.map +1 -0
  91. package/dist/runs/run.d.ts +44 -0
  92. package/dist/runs/run.d.ts.map +1 -0
  93. package/dist/runs/run.js +136 -0
  94. package/dist/runs/run.js.map +1 -0
  95. package/dist/runs/schema.d.ts +504 -0
  96. package/dist/runs/schema.d.ts.map +1 -0
  97. package/dist/runs/schema.js +171 -0
  98. package/dist/runs/schema.js.map +1 -0
  99. package/dist/runs/store.d.ts +57 -0
  100. package/dist/runs/store.d.ts.map +1 -0
  101. package/dist/runs/store.js +146 -0
  102. package/dist/runs/store.js.map +1 -0
  103. package/dist/schema.d.ts +16 -0
  104. package/dist/schema.d.ts.map +1 -1
  105. package/dist/schema.js +17 -0
  106. package/dist/schema.js.map +1 -1
  107. package/dist/stats/bootstrap.d.ts +22 -0
  108. package/dist/stats/bootstrap.d.ts.map +1 -0
  109. package/dist/stats/bootstrap.js +34 -0
  110. package/dist/stats/bootstrap.js.map +1 -0
  111. package/dist/stats/correlation.d.ts +11 -0
  112. package/dist/stats/correlation.d.ts.map +1 -0
  113. package/dist/stats/correlation.js +42 -0
  114. package/dist/stats/correlation.js.map +1 -0
  115. package/dist/stats/effect-size.d.ts +7 -0
  116. package/dist/stats/effect-size.d.ts.map +1 -0
  117. package/dist/stats/effect-size.js +17 -0
  118. package/dist/stats/effect-size.js.map +1 -0
  119. package/dist/stats/holm.d.ts +7 -0
  120. package/dist/stats/holm.d.ts.map +1 -0
  121. package/dist/stats/holm.js +21 -0
  122. package/dist/stats/holm.js.map +1 -0
  123. package/dist/stats/index.d.ts +10 -2
  124. package/dist/stats/index.d.ts.map +1 -1
  125. package/dist/stats/index.js +7 -1
  126. package/dist/stats/index.js.map +1 -1
  127. package/dist/stats/mcnemar.d.ts +9 -0
  128. package/dist/stats/mcnemar.d.ts.map +1 -1
  129. package/dist/stats/mcnemar.js +27 -13
  130. package/dist/stats/mcnemar.js.map +1 -1
  131. package/dist/stats/normal.d.ts +5 -0
  132. package/dist/stats/normal.d.ts.map +1 -0
  133. package/dist/stats/normal.js +19 -0
  134. package/dist/stats/normal.js.map +1 -0
  135. package/dist/stats/precision.d.ts +12 -0
  136. package/dist/stats/precision.d.ts.map +1 -0
  137. package/dist/stats/precision.js +29 -0
  138. package/dist/stats/precision.js.map +1 -0
  139. package/dist/stats/random.d.ts +6 -0
  140. package/dist/stats/random.d.ts.map +1 -0
  141. package/dist/stats/random.js +25 -0
  142. package/dist/stats/random.js.map +1 -0
  143. package/dist/stats/ranks.d.ts +5 -0
  144. package/dist/stats/ranks.d.ts.map +1 -0
  145. package/dist/stats/ranks.js +24 -0
  146. package/dist/stats/ranks.js.map +1 -0
  147. package/dist/stats/t-test.d.ts +4 -0
  148. package/dist/stats/t-test.d.ts.map +1 -1
  149. package/dist/stats/t-test.js +9 -3
  150. package/dist/stats/t-test.js.map +1 -1
  151. package/dist/stats/wilcoxon.d.ts +19 -0
  152. package/dist/stats/wilcoxon.d.ts.map +1 -0
  153. package/dist/stats/wilcoxon.js +70 -0
  154. package/dist/stats/wilcoxon.js.map +1 -0
  155. package/package.json +1 -1
@@ -0,0 +1,136 @@
1
+ import { randomBytes } from 'node:crypto';
2
+ import { mkdirSync, readFileSync, renameSync, rmSync, statSync, writeFileSync } from 'node:fs';
3
+ import { dirname, join, sep } from 'node:path';
4
+ import { canonicalJson, fingerprint, toJson } from './json.js';
5
+ import { EVAL_RUN_FORMAT, EVAL_RUN_VERSION, EvalRunSchema } from './schema.js';
6
+ /** A run id that sorts by start time: `20261022T101530123Z-1a2b3c4d` */
7
+ export function newRunId(startedAt) {
8
+ const stamp = startedAt.toISOString().replace(/[-:.]/g, '');
9
+ return `${stamp}-${randomBytes(4).toString('hex')}`;
10
+ }
11
+ /** The stable key a case is matched by across runs: its input, turns and expected answer */
12
+ export function caseKey(evalCase) {
13
+ return fingerprint({ input: evalCase.input, turns: evalCase.turns, expected: evalCase.expected });
14
+ }
15
+ /** The distinct versioned instructions the runs of the cases used, in the order first seen */
16
+ function promptsUsed(results) {
17
+ const seen = new Map();
18
+ const add = (prompt) => {
19
+ if (prompt)
20
+ seen.set(canonicalJson(prompt), prompt);
21
+ };
22
+ for (const result of results) {
23
+ for (const trial of result.trials ?? [result]) {
24
+ add(trial.prompt);
25
+ for (const turn of trial.turns ?? [])
26
+ add(turn.prompt);
27
+ }
28
+ }
29
+ return [...seen.values()];
30
+ }
31
+ function issuesOf(error) {
32
+ return error.issues
33
+ .slice(0, 5)
34
+ .map((issue) => issue.path.length > 0 ? `${issue.path.join('.')}: ${issue.message}` : issue.message)
35
+ .join(', ');
36
+ }
37
+ /** The run file of a finished suite run, every value as JSON keeps it */
38
+ export function buildRun(record) {
39
+ const { results } = record;
40
+ const draft = {
41
+ format: EVAL_RUN_FORMAT,
42
+ version: EVAL_RUN_VERSION,
43
+ runId: record.runId,
44
+ startedAt: record.startedAt.toISOString(),
45
+ finishedAt: record.finishedAt.toISOString(),
46
+ name: record.name,
47
+ metadata: record.metadata,
48
+ dataset: { fingerprint: fingerprint(record.cases), cases: record.cases.length },
49
+ config: record.config,
50
+ prompts: promptsUsed(results),
51
+ results: results.map((result) => ({ ...result, caseKey: caseKey(result.case) })),
52
+ aggregated: record.aggregated,
53
+ assertions: record.assertions,
54
+ stats: record.stats,
55
+ };
56
+ const parsed = EvalRunSchema.safeParse(toJson(draft));
57
+ if (!parsed.success) {
58
+ throw new Error(`Cannot record the run: ${issuesOf(parsed.error)}`);
59
+ }
60
+ return parsed.data;
61
+ }
62
+ /** The run of a source: the run itself, or a suite result's `toRun()` */
63
+ export function runOf(source) {
64
+ return 'toRun' in source && typeof source.toRun === 'function'
65
+ ? source.toRun()
66
+ : source;
67
+ }
68
+ /**
69
+ * Validates a parsed run file. Throws naming `origin` when it is not a run file, when it is of
70
+ * another format version, or when a field does not fit the format
71
+ */
72
+ export function parseRun(value, origin) {
73
+ const head = typeof value === 'object' && value !== null ? value : {};
74
+ if (head.format !== EVAL_RUN_FORMAT) {
75
+ throw new Error(`${origin} is not an eval run file: its format is not '${EVAL_RUN_FORMAT}'`);
76
+ }
77
+ if (head.version !== EVAL_RUN_VERSION) {
78
+ throw new Error(`${origin} is an eval run file of version ${String(head.version)}, this version of @cogitator-ai/evals reads version ${EVAL_RUN_VERSION}`);
79
+ }
80
+ const parsed = EvalRunSchema.safeParse(value);
81
+ if (!parsed.success) {
82
+ throw new Error(`${origin} is not a valid eval run file: ${issuesOf(parsed.error)}`);
83
+ }
84
+ return parsed.data;
85
+ }
86
+ /** Reads and validates a run file written by `result.saveRun()` or a `RunStore` */
87
+ export function loadRun(path) {
88
+ let text;
89
+ try {
90
+ text = readFileSync(path, 'utf-8');
91
+ }
92
+ catch (error) {
93
+ throw new Error(`Cannot read the run file ${path}`, { cause: error });
94
+ }
95
+ let value;
96
+ try {
97
+ value = JSON.parse(text);
98
+ }
99
+ catch (error) {
100
+ throw new Error(`${path} is not JSON`, { cause: error });
101
+ }
102
+ return parseRun(value, path);
103
+ }
104
+ function isDirectory(path) {
105
+ try {
106
+ return statSync(path).isDirectory();
107
+ }
108
+ catch {
109
+ return false;
110
+ }
111
+ }
112
+ /**
113
+ * Validates a run, so its id can never lead outside the directory, then writes its run file
114
+ * and returns its path: `<target>/<runId>.json` when `target` is a directory
115
+ * or ends with a path separator, `target` itself otherwise. Missing directories are created
116
+ */
117
+ export function writeRun(run, target) {
118
+ const checked = EvalRunSchema.safeParse(toJson(run));
119
+ if (!checked.success) {
120
+ throw new Error(`Cannot write the run: ${issuesOf(checked.error)}`);
121
+ }
122
+ const intoDirectory = target.endsWith('/') || target.endsWith(sep) || isDirectory(target);
123
+ const path = intoDirectory ? join(target, `${checked.data.runId}.json`) : target;
124
+ mkdirSync(dirname(path), { recursive: true });
125
+ const partial = `${path}.${randomBytes(6).toString('hex')}.tmp`;
126
+ try {
127
+ writeFileSync(partial, `${JSON.stringify(checked.data, null, 2)}\n`, 'utf-8');
128
+ renameSync(partial, path);
129
+ }
130
+ catch (error) {
131
+ rmSync(partial, { force: true });
132
+ throw error;
133
+ }
134
+ return path;
135
+ }
136
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/runs/run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,504 @@
1
+ import { z } from 'zod';
2
+ /** The `format` every run file carries */
3
+ export declare const EVAL_RUN_FORMAT = "cogitator.eval-run";
4
+ /** The version of the run file format this package writes and reads */
5
+ export declare const EVAL_RUN_VERSION = 1;
6
+ export declare const RunPromptSchema: z.ZodObject<{
7
+ key: z.ZodString;
8
+ versionId: z.ZodOptional<z.ZodString>;
9
+ version: z.ZodOptional<z.ZodNumber>;
10
+ abTest: z.ZodOptional<z.ZodObject<{
11
+ id: z.ZodString;
12
+ variant: z.ZodEnum<{
13
+ control: "control";
14
+ treatment: "treatment";
15
+ }>;
16
+ }, z.core.$strip>>;
17
+ }, z.core.$strip>;
18
+ declare const RunCaseSchema: z.ZodObject<{
19
+ case: z.ZodObject<{
20
+ input: z.ZodString;
21
+ expected: z.ZodOptional<z.ZodString>;
22
+ context: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
23
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
24
+ turns: z.ZodOptional<z.ZodArray<z.ZodString>>;
25
+ expectedToolCalls: z.ZodOptional<z.ZodArray<z.ZodObject<{
26
+ name: z.ZodString;
27
+ arguments: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
28
+ }, z.core.$strip>>>;
29
+ expectedPassages: z.ZodOptional<z.ZodArray<z.ZodString>>;
30
+ }, z.core.$strip>;
31
+ output: z.ZodString;
32
+ duration: z.ZodNumber;
33
+ error: z.ZodOptional<z.ZodString>;
34
+ attempts: z.ZodOptional<z.ZodNumber>;
35
+ usage: z.ZodOptional<z.ZodObject<{
36
+ inputTokens: z.ZodNumber;
37
+ outputTokens: z.ZodNumber;
38
+ totalTokens: z.ZodNumber;
39
+ cost: z.ZodNumber;
40
+ duration: z.ZodNumber;
41
+ }, z.core.$strip>>;
42
+ toolCalls: z.ZodOptional<z.ZodArray<z.ZodObject<{
43
+ id: z.ZodString;
44
+ name: z.ZodString;
45
+ arguments: z.ZodRecord<z.ZodString, z.ZodUnknown>;
46
+ }, z.core.$strip>>>;
47
+ toolResults: z.ZodOptional<z.ZodArray<z.ZodObject<{
48
+ callId: z.ZodString;
49
+ name: z.ZodString;
50
+ result: z.ZodOptional<z.ZodUnknown>;
51
+ error: z.ZodOptional<z.ZodString>;
52
+ }, z.core.$strip>>>;
53
+ retrieved: z.ZodOptional<z.ZodArray<z.ZodObject<{
54
+ id: z.ZodOptional<z.ZodString>;
55
+ content: z.ZodString;
56
+ score: z.ZodOptional<z.ZodNumber>;
57
+ source: z.ZodOptional<z.ZodString>;
58
+ }, z.core.$strip>>>;
59
+ turns: z.ZodOptional<z.ZodArray<z.ZodObject<{
60
+ input: z.ZodString;
61
+ output: z.ZodString;
62
+ toolCalls: z.ZodOptional<z.ZodArray<z.ZodObject<{
63
+ id: z.ZodString;
64
+ name: z.ZodString;
65
+ arguments: z.ZodRecord<z.ZodString, z.ZodUnknown>;
66
+ }, z.core.$strip>>>;
67
+ traceId: z.ZodOptional<z.ZodString>;
68
+ prompt: z.ZodOptional<z.ZodObject<{
69
+ key: z.ZodString;
70
+ versionId: z.ZodOptional<z.ZodString>;
71
+ version: z.ZodOptional<z.ZodNumber>;
72
+ abTest: z.ZodOptional<z.ZodObject<{
73
+ id: z.ZodString;
74
+ variant: z.ZodEnum<{
75
+ control: "control";
76
+ treatment: "treatment";
77
+ }>;
78
+ }, z.core.$strip>>;
79
+ }, z.core.$strip>>;
80
+ error: z.ZodOptional<z.ZodString>;
81
+ }, z.core.$strip>>>;
82
+ traceId: z.ZodOptional<z.ZodString>;
83
+ prompt: z.ZodOptional<z.ZodObject<{
84
+ key: z.ZodString;
85
+ versionId: z.ZodOptional<z.ZodString>;
86
+ version: z.ZodOptional<z.ZodNumber>;
87
+ abTest: z.ZodOptional<z.ZodObject<{
88
+ id: z.ZodString;
89
+ variant: z.ZodEnum<{
90
+ control: "control";
91
+ treatment: "treatment";
92
+ }>;
93
+ }, z.core.$strip>>;
94
+ }, z.core.$strip>>;
95
+ truncated: z.ZodOptional<z.ZodBoolean>;
96
+ iterationLimitReached: z.ZodOptional<z.ZodBoolean>;
97
+ paused: z.ZodOptional<z.ZodBoolean>;
98
+ scores: z.ZodArray<z.ZodObject<{
99
+ name: z.ZodString;
100
+ score: z.ZodNumber;
101
+ details: z.ZodOptional<z.ZodString>;
102
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
103
+ error: z.ZodOptional<z.ZodString>;
104
+ usage: z.ZodOptional<z.ZodObject<{
105
+ inputTokens: z.ZodNumber;
106
+ outputTokens: z.ZodNumber;
107
+ totalTokens: z.ZodNumber;
108
+ cost: z.ZodNumber;
109
+ }, z.core.$strip>>;
110
+ }, z.core.$strip>>;
111
+ caseKey: z.ZodString;
112
+ trials: z.ZodOptional<z.ZodArray<z.ZodObject<{
113
+ case: z.ZodObject<{
114
+ input: z.ZodString;
115
+ expected: z.ZodOptional<z.ZodString>;
116
+ context: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
117
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
118
+ turns: z.ZodOptional<z.ZodArray<z.ZodString>>;
119
+ expectedToolCalls: z.ZodOptional<z.ZodArray<z.ZodObject<{
120
+ name: z.ZodString;
121
+ arguments: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
122
+ }, z.core.$strip>>>;
123
+ expectedPassages: z.ZodOptional<z.ZodArray<z.ZodString>>;
124
+ }, z.core.$strip>;
125
+ output: z.ZodString;
126
+ duration: z.ZodNumber;
127
+ error: z.ZodOptional<z.ZodString>;
128
+ attempts: z.ZodOptional<z.ZodNumber>;
129
+ usage: z.ZodOptional<z.ZodObject<{
130
+ inputTokens: z.ZodNumber;
131
+ outputTokens: z.ZodNumber;
132
+ totalTokens: z.ZodNumber;
133
+ cost: z.ZodNumber;
134
+ duration: z.ZodNumber;
135
+ }, z.core.$strip>>;
136
+ toolCalls: z.ZodOptional<z.ZodArray<z.ZodObject<{
137
+ id: z.ZodString;
138
+ name: z.ZodString;
139
+ arguments: z.ZodRecord<z.ZodString, z.ZodUnknown>;
140
+ }, z.core.$strip>>>;
141
+ toolResults: z.ZodOptional<z.ZodArray<z.ZodObject<{
142
+ callId: z.ZodString;
143
+ name: z.ZodString;
144
+ result: z.ZodOptional<z.ZodUnknown>;
145
+ error: z.ZodOptional<z.ZodString>;
146
+ }, z.core.$strip>>>;
147
+ retrieved: z.ZodOptional<z.ZodArray<z.ZodObject<{
148
+ id: z.ZodOptional<z.ZodString>;
149
+ content: z.ZodString;
150
+ score: z.ZodOptional<z.ZodNumber>;
151
+ source: z.ZodOptional<z.ZodString>;
152
+ }, z.core.$strip>>>;
153
+ turns: z.ZodOptional<z.ZodArray<z.ZodObject<{
154
+ input: z.ZodString;
155
+ output: z.ZodString;
156
+ toolCalls: z.ZodOptional<z.ZodArray<z.ZodObject<{
157
+ id: z.ZodString;
158
+ name: z.ZodString;
159
+ arguments: z.ZodRecord<z.ZodString, z.ZodUnknown>;
160
+ }, z.core.$strip>>>;
161
+ traceId: z.ZodOptional<z.ZodString>;
162
+ prompt: z.ZodOptional<z.ZodObject<{
163
+ key: z.ZodString;
164
+ versionId: z.ZodOptional<z.ZodString>;
165
+ version: z.ZodOptional<z.ZodNumber>;
166
+ abTest: z.ZodOptional<z.ZodObject<{
167
+ id: z.ZodString;
168
+ variant: z.ZodEnum<{
169
+ control: "control";
170
+ treatment: "treatment";
171
+ }>;
172
+ }, z.core.$strip>>;
173
+ }, z.core.$strip>>;
174
+ error: z.ZodOptional<z.ZodString>;
175
+ }, z.core.$strip>>>;
176
+ traceId: z.ZodOptional<z.ZodString>;
177
+ prompt: z.ZodOptional<z.ZodObject<{
178
+ key: z.ZodString;
179
+ versionId: z.ZodOptional<z.ZodString>;
180
+ version: z.ZodOptional<z.ZodNumber>;
181
+ abTest: z.ZodOptional<z.ZodObject<{
182
+ id: z.ZodString;
183
+ variant: z.ZodEnum<{
184
+ control: "control";
185
+ treatment: "treatment";
186
+ }>;
187
+ }, z.core.$strip>>;
188
+ }, z.core.$strip>>;
189
+ truncated: z.ZodOptional<z.ZodBoolean>;
190
+ iterationLimitReached: z.ZodOptional<z.ZodBoolean>;
191
+ paused: z.ZodOptional<z.ZodBoolean>;
192
+ scores: z.ZodArray<z.ZodObject<{
193
+ name: z.ZodString;
194
+ score: z.ZodNumber;
195
+ details: z.ZodOptional<z.ZodString>;
196
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
197
+ error: z.ZodOptional<z.ZodString>;
198
+ usage: z.ZodOptional<z.ZodObject<{
199
+ inputTokens: z.ZodNumber;
200
+ outputTokens: z.ZodNumber;
201
+ totalTokens: z.ZodNumber;
202
+ cost: z.ZodNumber;
203
+ }, z.core.$strip>>;
204
+ }, z.core.$strip>>;
205
+ }, z.core.$strip>>>;
206
+ }, z.core.$strip>;
207
+ declare const RunConfigSchema: z.ZodObject<{
208
+ metrics: z.ZodArray<z.ZodString>;
209
+ statisticalMetrics: z.ZodArray<z.ZodString>;
210
+ judge: z.ZodOptional<z.ZodObject<{
211
+ model: z.ZodString;
212
+ temperature: z.ZodNumber;
213
+ samples: z.ZodOptional<z.ZodNumber>;
214
+ }, z.core.$strip>>;
215
+ trials: z.ZodNumber;
216
+ concurrency: z.ZodNumber;
217
+ target: z.ZodObject<{
218
+ kind: z.ZodEnum<{
219
+ fn: "fn";
220
+ agent: "agent";
221
+ }>;
222
+ name: z.ZodOptional<z.ZodString>;
223
+ model: z.ZodOptional<z.ZodString>;
224
+ }, z.core.$strip>;
225
+ }, z.core.$strip>;
226
+ /** JSON-serializable metadata: object keys holding `undefined` are dropped, as JSON drops them */
227
+ export declare const JsonMetadataSchema: z.ZodPreprocess<z.ZodRecord<z.ZodString, z.ZodJSONSchema>, unknown>;
228
+ export declare const EvalRunSchema: z.ZodObject<{
229
+ format: z.ZodLiteral<"cogitator.eval-run">;
230
+ version: z.ZodLiteral<1>;
231
+ runId: z.ZodString;
232
+ startedAt: z.ZodISODateTime;
233
+ finishedAt: z.ZodISODateTime;
234
+ name: z.ZodOptional<z.ZodString>;
235
+ metadata: z.ZodOptional<z.ZodPreprocess<z.ZodRecord<z.ZodString, z.ZodJSONSchema>, unknown>>;
236
+ dataset: z.ZodObject<{
237
+ fingerprint: z.ZodString;
238
+ cases: z.ZodNumber;
239
+ }, z.core.$strip>;
240
+ config: z.ZodObject<{
241
+ metrics: z.ZodArray<z.ZodString>;
242
+ statisticalMetrics: z.ZodArray<z.ZodString>;
243
+ judge: z.ZodOptional<z.ZodObject<{
244
+ model: z.ZodString;
245
+ temperature: z.ZodNumber;
246
+ samples: z.ZodOptional<z.ZodNumber>;
247
+ }, z.core.$strip>>;
248
+ trials: z.ZodNumber;
249
+ concurrency: z.ZodNumber;
250
+ target: z.ZodObject<{
251
+ kind: z.ZodEnum<{
252
+ fn: "fn";
253
+ agent: "agent";
254
+ }>;
255
+ name: z.ZodOptional<z.ZodString>;
256
+ model: z.ZodOptional<z.ZodString>;
257
+ }, z.core.$strip>;
258
+ }, z.core.$strip>;
259
+ prompts: z.ZodArray<z.ZodObject<{
260
+ key: z.ZodString;
261
+ versionId: z.ZodOptional<z.ZodString>;
262
+ version: z.ZodOptional<z.ZodNumber>;
263
+ abTest: z.ZodOptional<z.ZodObject<{
264
+ id: z.ZodString;
265
+ variant: z.ZodEnum<{
266
+ control: "control";
267
+ treatment: "treatment";
268
+ }>;
269
+ }, z.core.$strip>>;
270
+ }, z.core.$strip>>;
271
+ results: z.ZodArray<z.ZodObject<{
272
+ case: z.ZodObject<{
273
+ input: z.ZodString;
274
+ expected: z.ZodOptional<z.ZodString>;
275
+ context: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
276
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
277
+ turns: z.ZodOptional<z.ZodArray<z.ZodString>>;
278
+ expectedToolCalls: z.ZodOptional<z.ZodArray<z.ZodObject<{
279
+ name: z.ZodString;
280
+ arguments: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
281
+ }, z.core.$strip>>>;
282
+ expectedPassages: z.ZodOptional<z.ZodArray<z.ZodString>>;
283
+ }, z.core.$strip>;
284
+ output: z.ZodString;
285
+ duration: z.ZodNumber;
286
+ error: z.ZodOptional<z.ZodString>;
287
+ attempts: z.ZodOptional<z.ZodNumber>;
288
+ usage: z.ZodOptional<z.ZodObject<{
289
+ inputTokens: z.ZodNumber;
290
+ outputTokens: z.ZodNumber;
291
+ totalTokens: z.ZodNumber;
292
+ cost: z.ZodNumber;
293
+ duration: z.ZodNumber;
294
+ }, z.core.$strip>>;
295
+ toolCalls: z.ZodOptional<z.ZodArray<z.ZodObject<{
296
+ id: z.ZodString;
297
+ name: z.ZodString;
298
+ arguments: z.ZodRecord<z.ZodString, z.ZodUnknown>;
299
+ }, z.core.$strip>>>;
300
+ toolResults: z.ZodOptional<z.ZodArray<z.ZodObject<{
301
+ callId: z.ZodString;
302
+ name: z.ZodString;
303
+ result: z.ZodOptional<z.ZodUnknown>;
304
+ error: z.ZodOptional<z.ZodString>;
305
+ }, z.core.$strip>>>;
306
+ retrieved: z.ZodOptional<z.ZodArray<z.ZodObject<{
307
+ id: z.ZodOptional<z.ZodString>;
308
+ content: z.ZodString;
309
+ score: z.ZodOptional<z.ZodNumber>;
310
+ source: z.ZodOptional<z.ZodString>;
311
+ }, z.core.$strip>>>;
312
+ turns: z.ZodOptional<z.ZodArray<z.ZodObject<{
313
+ input: z.ZodString;
314
+ output: z.ZodString;
315
+ toolCalls: z.ZodOptional<z.ZodArray<z.ZodObject<{
316
+ id: z.ZodString;
317
+ name: z.ZodString;
318
+ arguments: z.ZodRecord<z.ZodString, z.ZodUnknown>;
319
+ }, z.core.$strip>>>;
320
+ traceId: z.ZodOptional<z.ZodString>;
321
+ prompt: z.ZodOptional<z.ZodObject<{
322
+ key: z.ZodString;
323
+ versionId: z.ZodOptional<z.ZodString>;
324
+ version: z.ZodOptional<z.ZodNumber>;
325
+ abTest: z.ZodOptional<z.ZodObject<{
326
+ id: z.ZodString;
327
+ variant: z.ZodEnum<{
328
+ control: "control";
329
+ treatment: "treatment";
330
+ }>;
331
+ }, z.core.$strip>>;
332
+ }, z.core.$strip>>;
333
+ error: z.ZodOptional<z.ZodString>;
334
+ }, z.core.$strip>>>;
335
+ traceId: z.ZodOptional<z.ZodString>;
336
+ prompt: z.ZodOptional<z.ZodObject<{
337
+ key: z.ZodString;
338
+ versionId: z.ZodOptional<z.ZodString>;
339
+ version: z.ZodOptional<z.ZodNumber>;
340
+ abTest: z.ZodOptional<z.ZodObject<{
341
+ id: z.ZodString;
342
+ variant: z.ZodEnum<{
343
+ control: "control";
344
+ treatment: "treatment";
345
+ }>;
346
+ }, z.core.$strip>>;
347
+ }, z.core.$strip>>;
348
+ truncated: z.ZodOptional<z.ZodBoolean>;
349
+ iterationLimitReached: z.ZodOptional<z.ZodBoolean>;
350
+ paused: z.ZodOptional<z.ZodBoolean>;
351
+ scores: z.ZodArray<z.ZodObject<{
352
+ name: z.ZodString;
353
+ score: z.ZodNumber;
354
+ details: z.ZodOptional<z.ZodString>;
355
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
356
+ error: z.ZodOptional<z.ZodString>;
357
+ usage: z.ZodOptional<z.ZodObject<{
358
+ inputTokens: z.ZodNumber;
359
+ outputTokens: z.ZodNumber;
360
+ totalTokens: z.ZodNumber;
361
+ cost: z.ZodNumber;
362
+ }, z.core.$strip>>;
363
+ }, z.core.$strip>>;
364
+ caseKey: z.ZodString;
365
+ trials: z.ZodOptional<z.ZodArray<z.ZodObject<{
366
+ case: z.ZodObject<{
367
+ input: z.ZodString;
368
+ expected: z.ZodOptional<z.ZodString>;
369
+ context: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
370
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
371
+ turns: z.ZodOptional<z.ZodArray<z.ZodString>>;
372
+ expectedToolCalls: z.ZodOptional<z.ZodArray<z.ZodObject<{
373
+ name: z.ZodString;
374
+ arguments: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
375
+ }, z.core.$strip>>>;
376
+ expectedPassages: z.ZodOptional<z.ZodArray<z.ZodString>>;
377
+ }, z.core.$strip>;
378
+ output: z.ZodString;
379
+ duration: z.ZodNumber;
380
+ error: z.ZodOptional<z.ZodString>;
381
+ attempts: z.ZodOptional<z.ZodNumber>;
382
+ usage: z.ZodOptional<z.ZodObject<{
383
+ inputTokens: z.ZodNumber;
384
+ outputTokens: z.ZodNumber;
385
+ totalTokens: z.ZodNumber;
386
+ cost: z.ZodNumber;
387
+ duration: z.ZodNumber;
388
+ }, z.core.$strip>>;
389
+ toolCalls: z.ZodOptional<z.ZodArray<z.ZodObject<{
390
+ id: z.ZodString;
391
+ name: z.ZodString;
392
+ arguments: z.ZodRecord<z.ZodString, z.ZodUnknown>;
393
+ }, z.core.$strip>>>;
394
+ toolResults: z.ZodOptional<z.ZodArray<z.ZodObject<{
395
+ callId: z.ZodString;
396
+ name: z.ZodString;
397
+ result: z.ZodOptional<z.ZodUnknown>;
398
+ error: z.ZodOptional<z.ZodString>;
399
+ }, z.core.$strip>>>;
400
+ retrieved: z.ZodOptional<z.ZodArray<z.ZodObject<{
401
+ id: z.ZodOptional<z.ZodString>;
402
+ content: z.ZodString;
403
+ score: z.ZodOptional<z.ZodNumber>;
404
+ source: z.ZodOptional<z.ZodString>;
405
+ }, z.core.$strip>>>;
406
+ turns: z.ZodOptional<z.ZodArray<z.ZodObject<{
407
+ input: z.ZodString;
408
+ output: z.ZodString;
409
+ toolCalls: z.ZodOptional<z.ZodArray<z.ZodObject<{
410
+ id: z.ZodString;
411
+ name: z.ZodString;
412
+ arguments: z.ZodRecord<z.ZodString, z.ZodUnknown>;
413
+ }, z.core.$strip>>>;
414
+ traceId: z.ZodOptional<z.ZodString>;
415
+ prompt: z.ZodOptional<z.ZodObject<{
416
+ key: z.ZodString;
417
+ versionId: z.ZodOptional<z.ZodString>;
418
+ version: z.ZodOptional<z.ZodNumber>;
419
+ abTest: z.ZodOptional<z.ZodObject<{
420
+ id: z.ZodString;
421
+ variant: z.ZodEnum<{
422
+ control: "control";
423
+ treatment: "treatment";
424
+ }>;
425
+ }, z.core.$strip>>;
426
+ }, z.core.$strip>>;
427
+ error: z.ZodOptional<z.ZodString>;
428
+ }, z.core.$strip>>>;
429
+ traceId: z.ZodOptional<z.ZodString>;
430
+ prompt: z.ZodOptional<z.ZodObject<{
431
+ key: z.ZodString;
432
+ versionId: z.ZodOptional<z.ZodString>;
433
+ version: z.ZodOptional<z.ZodNumber>;
434
+ abTest: z.ZodOptional<z.ZodObject<{
435
+ id: z.ZodString;
436
+ variant: z.ZodEnum<{
437
+ control: "control";
438
+ treatment: "treatment";
439
+ }>;
440
+ }, z.core.$strip>>;
441
+ }, z.core.$strip>>;
442
+ truncated: z.ZodOptional<z.ZodBoolean>;
443
+ iterationLimitReached: z.ZodOptional<z.ZodBoolean>;
444
+ paused: z.ZodOptional<z.ZodBoolean>;
445
+ scores: z.ZodArray<z.ZodObject<{
446
+ name: z.ZodString;
447
+ score: z.ZodNumber;
448
+ details: z.ZodOptional<z.ZodString>;
449
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
450
+ error: z.ZodOptional<z.ZodString>;
451
+ usage: z.ZodOptional<z.ZodObject<{
452
+ inputTokens: z.ZodNumber;
453
+ outputTokens: z.ZodNumber;
454
+ totalTokens: z.ZodNumber;
455
+ cost: z.ZodNumber;
456
+ }, z.core.$strip>>;
457
+ }, z.core.$strip>>;
458
+ }, z.core.$strip>>>;
459
+ }, z.core.$strip>>;
460
+ aggregated: z.ZodRecord<z.ZodString, z.ZodObject<{
461
+ name: z.ZodString;
462
+ mean: z.ZodPipe<z.ZodNullable<z.ZodNumber>, z.ZodTransform<number, number | null>>;
463
+ median: z.ZodPipe<z.ZodNullable<z.ZodNumber>, z.ZodTransform<number, number | null>>;
464
+ min: z.ZodPipe<z.ZodNullable<z.ZodNumber>, z.ZodTransform<number, number | null>>;
465
+ max: z.ZodPipe<z.ZodNullable<z.ZodNumber>, z.ZodTransform<number, number | null>>;
466
+ stdDev: z.ZodPipe<z.ZodNullable<z.ZodNumber>, z.ZodTransform<number, number | null>>;
467
+ p50: z.ZodPipe<z.ZodNullable<z.ZodNumber>, z.ZodTransform<number, number | null>>;
468
+ p95: z.ZodPipe<z.ZodNullable<z.ZodNumber>, z.ZodTransform<number, number | null>>;
469
+ p99: z.ZodPipe<z.ZodNullable<z.ZodNumber>, z.ZodTransform<number, number | null>>;
470
+ count: z.ZodOptional<z.ZodNumber>;
471
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
472
+ }, z.core.$strip>>;
473
+ assertions: z.ZodArray<z.ZodObject<{
474
+ name: z.ZodString;
475
+ passed: z.ZodBoolean;
476
+ message: z.ZodString;
477
+ actual: z.ZodOptional<z.ZodPipe<z.ZodNullable<z.ZodNumber>, z.ZodTransform<number, number | null>>>;
478
+ expected: z.ZodOptional<z.ZodPipe<z.ZodNullable<z.ZodNumber>, z.ZodTransform<number, number | null>>>;
479
+ }, z.core.$strip>>;
480
+ stats: z.ZodObject<{
481
+ total: z.ZodNumber;
482
+ errors: z.ZodNumber;
483
+ metricErrors: z.ZodNumber;
484
+ duration: z.ZodNumber;
485
+ cost: z.ZodNumber;
486
+ targetCost: z.ZodNumber;
487
+ judgeCost: z.ZodNumber;
488
+ }, z.core.$strip>;
489
+ }, z.core.$strip>;
490
+ /** A saved suite run, as `loadRun()` returns it */
491
+ export type EvalRun = z.output<typeof EvalRunSchema>;
492
+ /** A case result of a saved run, with its `caseKey` */
493
+ export type EvalRunCase = z.output<typeof RunCaseSchema>;
494
+ /** What a saved run records of the suite's configuration */
495
+ export type EvalRunConfig = z.output<typeof RunConfigSchema>;
496
+ /** JSON-serializable metadata of an experiment */
497
+ export type JsonMetadata = z.output<typeof JsonMetadataSchema>;
498
+ /** The options of a suite that describe the experiment it runs */
499
+ export declare const ExperimentOptionsSchema: z.ZodObject<{
500
+ name: z.ZodOptional<z.ZodString>;
501
+ metadata: z.ZodOptional<z.ZodPreprocess<z.ZodRecord<z.ZodString, z.ZodJSONSchema>, unknown>>;
502
+ }, z.core.$strip>;
503
+ export {};
504
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/runs/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,0CAA0C;AAC1C,eAAO,MAAM,eAAe,uBAAuB,CAAC;AAEpD,uEAAuE;AACvE,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAQlC,eAAO,MAAM,eAAe;;;;;;;;;;;iBAK1B,CAAC;AAsEH,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAIjB,CAAC;AAEH,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;iBAmBnB,CAAC;AAkCH,kGAAkG;AAClG,eAAO,MAAM,kBAAkB,qEAAiE,CAAC;AAejG,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAoBxB,CAAC;AAEH,mDAAmD;AACnD,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;AACrD,uDAAuD;AACvD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;AACzD,4DAA4D;AAC5D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,eAAe,CAAC,CAAC;AAC7D,kDAAkD;AAClD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE/D,kEAAkE;AAClE,eAAO,MAAM,uBAAuB;;;iBAGlC,CAAC"}