@vitest-evals/core 0.13.1 → 0.14.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/index.d.mts +404 -201
- package/dist/index.d.ts +404 -201
- package/dist/index.js +386 -146
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +377 -144
- package/dist/index.mjs.map +1 -1
- package/dist/node.d.mts +1 -1
- package/dist/node.d.ts +1 -1
- package/dist/node.js +146 -134
- package/dist/node.js.map +1 -1
- package/dist/node.mjs +146 -134
- package/dist/node.mjs.map +1 -1
- package/dist/{workspace-BNgjyW7W.d.mts → workspace-DSZKph1P.d.mts} +90 -66
- package/dist/{workspace-BNgjyW7W.d.ts → workspace-DSZKph1P.d.ts} +90 -66
- package/package.json +1 -1
package/dist/node.js
CHANGED
|
@@ -32,13 +32,13 @@ var import_promises = require("fs/promises");
|
|
|
32
32
|
var import_node_path = require("path");
|
|
33
33
|
|
|
34
34
|
// src/report/workspace.ts
|
|
35
|
-
var
|
|
35
|
+
var import_zod8 = require("zod");
|
|
36
36
|
|
|
37
37
|
// src/report/metadata.ts
|
|
38
|
-
var
|
|
38
|
+
var import_zod6 = require("zod");
|
|
39
39
|
|
|
40
40
|
// src/harness/index.ts
|
|
41
|
-
var
|
|
41
|
+
var import_zod5 = require("zod");
|
|
42
42
|
|
|
43
43
|
// src/json.ts
|
|
44
44
|
var import_zod = require("zod");
|
|
@@ -86,10 +86,52 @@ function isRecord(value) {
|
|
|
86
86
|
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
+
// src/harness/errors.ts
|
|
90
|
+
var import_zod3 = require("zod");
|
|
91
|
+
var NormalizedErrorSchema = import_zod3.z.object({
|
|
92
|
+
message: import_zod3.z.string(),
|
|
93
|
+
type: import_zod3.z.string().optional()
|
|
94
|
+
}).catchall(JsonValueSchema);
|
|
95
|
+
|
|
96
|
+
// src/harness/transcript.ts
|
|
97
|
+
var import_zod4 = require("zod");
|
|
98
|
+
var TranscriptToolCallEventSchema = import_zod4.z.object({
|
|
99
|
+
type: import_zod4.z.literal("tool_call"),
|
|
100
|
+
id: import_zod4.z.string(),
|
|
101
|
+
name: import_zod4.z.string(),
|
|
102
|
+
arguments: JsonObjectSchema.optional(),
|
|
103
|
+
startedAt: import_zod4.z.string().optional(),
|
|
104
|
+
finishedAt: import_zod4.z.string().optional(),
|
|
105
|
+
durationMs: FiniteNumberSchema.optional(),
|
|
106
|
+
metadata: JsonObjectSchema.optional()
|
|
107
|
+
}).strict();
|
|
108
|
+
var TranscriptMessageEventSchema = import_zod4.z.object({
|
|
109
|
+
type: import_zod4.z.literal("message"),
|
|
110
|
+
role: import_zod4.z.enum(["system", "user", "assistant"]),
|
|
111
|
+
content: JsonValueSchema.optional(),
|
|
112
|
+
metadata: JsonObjectSchema.optional()
|
|
113
|
+
}).strict();
|
|
114
|
+
var TranscriptToolResultEventSchema = import_zod4.z.object({
|
|
115
|
+
type: import_zod4.z.literal("tool_result"),
|
|
116
|
+
toolCallId: import_zod4.z.string(),
|
|
117
|
+
name: import_zod4.z.string().optional(),
|
|
118
|
+
content: JsonValueSchema.optional(),
|
|
119
|
+
error: NormalizedErrorSchema.optional(),
|
|
120
|
+
startedAt: import_zod4.z.string().optional(),
|
|
121
|
+
finishedAt: import_zod4.z.string().optional(),
|
|
122
|
+
durationMs: FiniteNumberSchema.optional(),
|
|
123
|
+
metadata: JsonObjectSchema.optional()
|
|
124
|
+
}).strict();
|
|
125
|
+
var TranscriptEventSchema = import_zod4.z.discriminatedUnion("type", [
|
|
126
|
+
TranscriptMessageEventSchema,
|
|
127
|
+
TranscriptToolCallEventSchema,
|
|
128
|
+
TranscriptToolResultEventSchema
|
|
129
|
+
]);
|
|
130
|
+
|
|
89
131
|
// src/harness/index.ts
|
|
90
|
-
var UsageSummarySchema =
|
|
91
|
-
provider:
|
|
92
|
-
model:
|
|
132
|
+
var UsageSummarySchema = import_zod5.z.object({
|
|
133
|
+
provider: import_zod5.z.string().optional(),
|
|
134
|
+
model: import_zod5.z.string().optional(),
|
|
93
135
|
inputTokens: FiniteNumberSchema.optional(),
|
|
94
136
|
outputTokens: FiniteNumberSchema.optional(),
|
|
95
137
|
reasoningTokens: FiniteNumberSchema.optional(),
|
|
@@ -98,141 +140,111 @@ var UsageSummarySchema = import_zod3.z.object({
|
|
|
98
140
|
retries: FiniteNumberSchema.optional(),
|
|
99
141
|
metadata: JsonObjectSchema.optional()
|
|
100
142
|
}).strict();
|
|
101
|
-
var TimingSummarySchema =
|
|
143
|
+
var TimingSummarySchema = import_zod5.z.object({
|
|
102
144
|
totalMs: FiniteNumberSchema.optional(),
|
|
103
145
|
metadata: JsonObjectSchema.optional()
|
|
104
146
|
}).strict();
|
|
105
|
-
var
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
}).catchall(JsonValueSchema);
|
|
109
|
-
var ToolCallRecordSchema = import_zod3.z.object({
|
|
110
|
-
id: import_zod3.z.string().optional(),
|
|
111
|
-
name: import_zod3.z.string(),
|
|
112
|
-
arguments: JsonObjectSchema.optional(),
|
|
113
|
-
result: JsonValueSchema.optional(),
|
|
114
|
-
error: NormalizedErrorSchema.optional(),
|
|
115
|
-
startedAt: import_zod3.z.string().optional(),
|
|
116
|
-
finishedAt: import_zod3.z.string().optional(),
|
|
117
|
-
durationMs: FiniteNumberSchema.optional(),
|
|
118
|
-
metadata: JsonObjectSchema.optional()
|
|
119
|
-
}).strict();
|
|
120
|
-
var NormalizedMessageSchema = import_zod3.z.object({
|
|
121
|
-
role: import_zod3.z.enum(["system", "user", "assistant", "tool"]),
|
|
122
|
-
content: JsonValueSchema.optional(),
|
|
123
|
-
toolCalls: import_zod3.z.array(ToolCallRecordSchema).optional(),
|
|
124
|
-
metadata: JsonObjectSchema.optional()
|
|
147
|
+
var ToolCallBaseSchema = import_zod5.z.object({
|
|
148
|
+
name: import_zod5.z.string(),
|
|
149
|
+
arguments: JsonObjectSchema.optional()
|
|
125
150
|
}).strict();
|
|
126
|
-
var
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
151
|
+
var ToolCallSchema = import_zod5.z.discriminatedUnion("status", [
|
|
152
|
+
ToolCallBaseSchema.extend({
|
|
153
|
+
status: import_zod5.z.literal("pending")
|
|
154
|
+
}).strict(),
|
|
155
|
+
ToolCallBaseSchema.extend({
|
|
156
|
+
status: import_zod5.z.literal("ok"),
|
|
157
|
+
result: JsonValueSchema.optional()
|
|
158
|
+
}).strict(),
|
|
159
|
+
ToolCallBaseSchema.extend({
|
|
160
|
+
status: import_zod5.z.literal("error"),
|
|
161
|
+
error: NormalizedErrorSchema
|
|
162
|
+
}).strict()
|
|
163
|
+
]);
|
|
164
|
+
var NormalizedSessionSchema = import_zod5.z.object({
|
|
165
|
+
events: import_zod5.z.array(TranscriptEventSchema),
|
|
166
|
+
provider: import_zod5.z.string().optional(),
|
|
167
|
+
model: import_zod5.z.string().optional(),
|
|
130
168
|
metadata: JsonObjectSchema.optional()
|
|
131
169
|
}).strict();
|
|
132
170
|
var NormalizedSpanAttributesSchema = JsonObjectSchema;
|
|
133
|
-
var NormalizedSpanEventSchema =
|
|
134
|
-
name:
|
|
135
|
-
timestamp:
|
|
171
|
+
var NormalizedSpanEventSchema = import_zod5.z.object({
|
|
172
|
+
name: import_zod5.z.string(),
|
|
173
|
+
timestamp: import_zod5.z.string().optional(),
|
|
136
174
|
attributes: NormalizedSpanAttributesSchema.optional()
|
|
137
175
|
}).strict();
|
|
138
|
-
var NormalizedSpanSchema =
|
|
139
|
-
id:
|
|
140
|
-
traceId:
|
|
141
|
-
parentId:
|
|
142
|
-
name:
|
|
143
|
-
kind:
|
|
144
|
-
startedAt:
|
|
145
|
-
finishedAt:
|
|
176
|
+
var NormalizedSpanSchema = import_zod5.z.object({
|
|
177
|
+
id: import_zod5.z.string().optional(),
|
|
178
|
+
traceId: import_zod5.z.string().optional(),
|
|
179
|
+
parentId: import_zod5.z.string().optional(),
|
|
180
|
+
name: import_zod5.z.string(),
|
|
181
|
+
kind: import_zod5.z.enum(["run", "agent", "model", "tool", "guardrail", "handoff", "custom"]).optional(),
|
|
182
|
+
startedAt: import_zod5.z.string().optional(),
|
|
183
|
+
finishedAt: import_zod5.z.string().optional(),
|
|
146
184
|
durationMs: FiniteNumberSchema.optional(),
|
|
147
|
-
status:
|
|
185
|
+
status: import_zod5.z.enum(["ok", "error"]).optional(),
|
|
148
186
|
error: NormalizedErrorSchema.optional(),
|
|
149
187
|
attributes: NormalizedSpanAttributesSchema.optional(),
|
|
150
|
-
events:
|
|
188
|
+
events: import_zod5.z.array(NormalizedSpanEventSchema).optional()
|
|
151
189
|
}).strict();
|
|
152
|
-
var NormalizedTraceSchema =
|
|
153
|
-
id:
|
|
154
|
-
name:
|
|
155
|
-
startedAt:
|
|
156
|
-
finishedAt:
|
|
190
|
+
var NormalizedTraceSchema = import_zod5.z.object({
|
|
191
|
+
id: import_zod5.z.string().optional(),
|
|
192
|
+
name: import_zod5.z.string().optional(),
|
|
193
|
+
startedAt: import_zod5.z.string().optional(),
|
|
194
|
+
finishedAt: import_zod5.z.string().optional(),
|
|
157
195
|
durationMs: FiniteNumberSchema.optional(),
|
|
158
196
|
metadata: JsonObjectSchema.optional(),
|
|
159
|
-
spans:
|
|
197
|
+
spans: import_zod5.z.array(NormalizedSpanSchema)
|
|
160
198
|
}).strict();
|
|
161
|
-
var HarnessRunSchema =
|
|
199
|
+
var HarnessRunSchema = import_zod5.z.object({
|
|
162
200
|
output: JsonValueSchema.optional(),
|
|
163
201
|
session: NormalizedSessionSchema,
|
|
164
202
|
usage: UsageSummarySchema,
|
|
165
203
|
timings: TimingSummarySchema.optional(),
|
|
166
204
|
artifacts: JsonObjectSchema.optional(),
|
|
167
|
-
traces:
|
|
168
|
-
errors:
|
|
205
|
+
traces: import_zod5.z.array(NormalizedTraceSchema).optional(),
|
|
206
|
+
errors: import_zod5.z.array(JsonObjectSchema)
|
|
169
207
|
}).strict();
|
|
170
208
|
|
|
171
209
|
// src/report/metadata.ts
|
|
172
|
-
var HarnessMetaSchema =
|
|
173
|
-
name:
|
|
210
|
+
var HarnessMetaSchema = import_zod6.z.object({
|
|
211
|
+
name: import_zod6.z.string().optional(),
|
|
174
212
|
run: HarnessRunSchema.optional()
|
|
175
213
|
}).strict();
|
|
176
|
-
var EvalScoreSchema =
|
|
177
|
-
name:
|
|
214
|
+
var EvalScoreSchema = import_zod6.z.object({
|
|
215
|
+
name: import_zod6.z.string().optional(),
|
|
178
216
|
score: NullableFiniteNumberSchema,
|
|
179
217
|
metadata: JsonObjectSchema.optional()
|
|
180
218
|
}).strict();
|
|
181
|
-
var EvalMetaSchema =
|
|
182
|
-
scores:
|
|
219
|
+
var EvalMetaSchema = import_zod6.z.object({
|
|
220
|
+
scores: import_zod6.z.array(EvalScoreSchema).optional(),
|
|
183
221
|
avgScore: NullableFiniteNumberSchema,
|
|
184
222
|
output: JsonValueSchema.optional(),
|
|
185
|
-
thresholdFailed:
|
|
186
|
-
toolCalls:
|
|
223
|
+
thresholdFailed: import_zod6.z.boolean().optional(),
|
|
224
|
+
toolCalls: import_zod6.z.array(ToolCallSchema).optional()
|
|
187
225
|
}).strict();
|
|
188
|
-
var EvalTaskMetaSchema =
|
|
226
|
+
var EvalTaskMetaSchema = import_zod6.z.object({
|
|
189
227
|
eval: EvalMetaSchema.optional(),
|
|
190
228
|
harness: HarnessMetaSchema.optional()
|
|
191
229
|
}).strict();
|
|
192
|
-
var LenientToolCallRecordSchema = ToolCallRecordSchema.strip();
|
|
193
|
-
var LenientMessageSchema = NormalizedMessageSchema.extend({
|
|
194
|
-
toolCalls: import_zod4.z.array(LenientToolCallRecordSchema).optional().catch(void 0)
|
|
195
|
-
}).strip();
|
|
196
|
-
var LenientSessionSchema = NormalizedSessionSchema.extend({
|
|
197
|
-
messages: import_zod4.z.array(LenientMessageSchema).default([]).catch([])
|
|
198
|
-
}).strip();
|
|
199
|
-
var LenientSpanEventSchema = NormalizedSpanEventSchema.strip();
|
|
200
|
-
var LenientSpanSchema = NormalizedSpanSchema.extend({
|
|
201
|
-
events: import_zod4.z.array(LenientSpanEventSchema).optional().catch(void 0)
|
|
202
|
-
}).strip();
|
|
203
|
-
var LenientTraceSchema = NormalizedTraceSchema.extend({
|
|
204
|
-
spans: import_zod4.z.array(LenientSpanSchema).default([]).catch([])
|
|
205
|
-
}).strip();
|
|
206
|
-
var LenientHarnessRunSchema = HarnessRunSchema.extend({
|
|
207
|
-
session: LenientSessionSchema,
|
|
208
|
-
usage: UsageSummarySchema.strip().default({}),
|
|
209
|
-
timings: TimingSummarySchema.strip().optional(),
|
|
210
|
-
traces: import_zod4.z.array(LenientTraceSchema).optional().catch(void 0)
|
|
211
|
-
}).strip();
|
|
212
|
-
var LenientHarnessMetaSchema = HarnessMetaSchema.extend({
|
|
213
|
-
run: LenientHarnessRunSchema.optional().catch(void 0)
|
|
214
|
-
}).strip();
|
|
215
|
-
var LenientEvalScoreSchema = EvalScoreSchema.strip();
|
|
216
|
-
var LenientEvalMetaSchema = EvalMetaSchema.extend({
|
|
217
|
-
scores: import_zod4.z.array(LenientEvalScoreSchema).optional().catch(void 0),
|
|
218
|
-
toolCalls: import_zod4.z.array(LenientToolCallRecordSchema).optional().catch(void 0)
|
|
219
|
-
}).strip();
|
|
220
230
|
function readEvalTaskMeta(input) {
|
|
221
231
|
if (!isJsonObject(input)) {
|
|
222
232
|
return void 0;
|
|
223
233
|
}
|
|
224
|
-
const evalResult = LenientEvalMetaSchema.safeParse(input.eval);
|
|
225
|
-
const harnessResult = LenientHarnessMetaSchema.safeParse(input.harness);
|
|
226
234
|
const meta = {
|
|
227
|
-
...
|
|
228
|
-
...
|
|
235
|
+
...input.eval !== void 0 ? { eval: input.eval } : {},
|
|
236
|
+
...input.harness !== void 0 ? { harness: input.harness } : {}
|
|
229
237
|
};
|
|
230
|
-
|
|
238
|
+
if (!("eval" in meta) && !("harness" in meta)) {
|
|
239
|
+
return void 0;
|
|
240
|
+
}
|
|
241
|
+
const result = EvalTaskMetaSchema.safeParse(meta);
|
|
242
|
+
return result.success ? result.data : void 0;
|
|
231
243
|
}
|
|
232
244
|
|
|
233
245
|
// src/report/vitest-json.ts
|
|
234
|
-
var
|
|
235
|
-
var VitestJsonStatusSchema =
|
|
246
|
+
var import_zod7 = require("zod");
|
|
247
|
+
var VitestJsonStatusSchema = import_zod7.z.enum([
|
|
236
248
|
"passed",
|
|
237
249
|
"failed",
|
|
238
250
|
"skipped",
|
|
@@ -240,38 +252,38 @@ var VitestJsonStatusSchema = import_zod5.z.enum([
|
|
|
240
252
|
"todo",
|
|
241
253
|
"disabled"
|
|
242
254
|
]);
|
|
243
|
-
var VitestJsonLocationSchema =
|
|
255
|
+
var VitestJsonLocationSchema = import_zod7.z.object({
|
|
244
256
|
line: FiniteNumberSchema,
|
|
245
257
|
column: FiniteNumberSchema
|
|
246
258
|
}).passthrough();
|
|
247
|
-
var VitestJsonAssertionSchema =
|
|
248
|
-
ancestorTitles:
|
|
249
|
-
fullName:
|
|
259
|
+
var VitestJsonAssertionSchema = import_zod7.z.object({
|
|
260
|
+
ancestorTitles: import_zod7.z.array(import_zod7.z.string()).default([]),
|
|
261
|
+
fullName: import_zod7.z.string(),
|
|
250
262
|
status: VitestJsonStatusSchema,
|
|
251
|
-
title:
|
|
252
|
-
meta:
|
|
263
|
+
title: import_zod7.z.string(),
|
|
264
|
+
meta: import_zod7.z.unknown().optional(),
|
|
253
265
|
duration: FiniteNumberSchema.nullable().optional(),
|
|
254
|
-
failureMessages:
|
|
266
|
+
failureMessages: import_zod7.z.array(import_zod7.z.string()).nullable().optional(),
|
|
255
267
|
location: VitestJsonLocationSchema.nullable().optional(),
|
|
256
|
-
tags:
|
|
268
|
+
tags: import_zod7.z.array(import_zod7.z.string()).optional()
|
|
257
269
|
}).passthrough();
|
|
258
|
-
var VitestJsonFileSchema =
|
|
259
|
-
message:
|
|
260
|
-
name:
|
|
261
|
-
status:
|
|
270
|
+
var VitestJsonFileSchema = import_zod7.z.object({
|
|
271
|
+
message: import_zod7.z.string(),
|
|
272
|
+
name: import_zod7.z.string(),
|
|
273
|
+
status: import_zod7.z.enum(["failed", "passed"]),
|
|
262
274
|
startTime: OptionalFiniteNumberSchema,
|
|
263
275
|
endTime: OptionalFiniteNumberSchema,
|
|
264
|
-
assertionResults:
|
|
276
|
+
assertionResults: import_zod7.z.array(VitestJsonAssertionSchema).default([])
|
|
265
277
|
}).passthrough();
|
|
266
|
-
var VitestJsonReportSchema =
|
|
278
|
+
var VitestJsonReportSchema = import_zod7.z.object({
|
|
267
279
|
numFailedTests: FiniteNumberSchema,
|
|
268
280
|
numPassedTests: FiniteNumberSchema,
|
|
269
281
|
numPendingTests: FiniteNumberSchema,
|
|
270
282
|
numTodoTests: FiniteNumberSchema,
|
|
271
283
|
numTotalTests: FiniteNumberSchema,
|
|
272
284
|
startTime: FiniteNumberSchema,
|
|
273
|
-
success:
|
|
274
|
-
testResults:
|
|
285
|
+
success: import_zod7.z.boolean(),
|
|
286
|
+
testResults: import_zod7.z.array(VitestJsonFileSchema).default([])
|
|
275
287
|
}).passthrough();
|
|
276
288
|
function parseVitestJsonReport(input) {
|
|
277
289
|
return parseWithSchema(VitestJsonReportSchema, input, "Vitest JSON report");
|
|
@@ -279,13 +291,13 @@ function parseVitestJsonReport(input) {
|
|
|
279
291
|
|
|
280
292
|
// src/report/workspace.ts
|
|
281
293
|
var REPORT_WORKSPACE_SCHEMA_VERSION = 1;
|
|
282
|
-
var ReportRunSchema =
|
|
283
|
-
id:
|
|
284
|
-
source:
|
|
285
|
-
status:
|
|
294
|
+
var ReportRunSchema = import_zod8.z.object({
|
|
295
|
+
id: import_zod8.z.string(),
|
|
296
|
+
source: import_zod8.z.string().optional(),
|
|
297
|
+
status: import_zod8.z.enum(["passed", "failed"]),
|
|
286
298
|
startedAt: FiniteNumberSchema.optional(),
|
|
287
299
|
durationMs: FiniteNumberSchema.optional(),
|
|
288
|
-
totals:
|
|
300
|
+
totals: import_zod8.z.object({
|
|
289
301
|
total: FiniteNumberSchema,
|
|
290
302
|
passed: FiniteNumberSchema,
|
|
291
303
|
failed: FiniteNumberSchema,
|
|
@@ -295,28 +307,28 @@ var ReportRunSchema = import_zod6.z.object({
|
|
|
295
307
|
evalFailed: FiniteNumberSchema
|
|
296
308
|
})
|
|
297
309
|
}).strict();
|
|
298
|
-
var ReportCaseSchema =
|
|
299
|
-
id:
|
|
300
|
-
runId:
|
|
301
|
-
source:
|
|
302
|
-
file:
|
|
303
|
-
displayFile:
|
|
304
|
-
title:
|
|
305
|
-
fullName:
|
|
306
|
-
ancestorTitles:
|
|
307
|
-
tags:
|
|
308
|
-
displayName:
|
|
310
|
+
var ReportCaseSchema = import_zod8.z.object({
|
|
311
|
+
id: import_zod8.z.string(),
|
|
312
|
+
runId: import_zod8.z.string(),
|
|
313
|
+
source: import_zod8.z.string().optional(),
|
|
314
|
+
file: import_zod8.z.string(),
|
|
315
|
+
displayFile: import_zod8.z.string(),
|
|
316
|
+
title: import_zod8.z.string(),
|
|
317
|
+
fullName: import_zod8.z.string(),
|
|
318
|
+
ancestorTitles: import_zod8.z.array(import_zod8.z.string()),
|
|
319
|
+
tags: import_zod8.z.array(import_zod8.z.string()).optional(),
|
|
320
|
+
displayName: import_zod8.z.string(),
|
|
309
321
|
status: VitestJsonStatusSchema,
|
|
310
322
|
durationMs: FiniteNumberSchema.optional(),
|
|
311
323
|
location: VitestJsonLocationSchema.optional(),
|
|
312
|
-
failureMessages:
|
|
324
|
+
failureMessages: import_zod8.z.array(import_zod8.z.string()).default([]),
|
|
313
325
|
eval: EvalMetaSchema.optional(),
|
|
314
326
|
harness: HarnessMetaSchema.optional()
|
|
315
327
|
}).strict();
|
|
316
|
-
var ReportWorkspaceSchema =
|
|
317
|
-
schemaVersion:
|
|
318
|
-
runs:
|
|
319
|
-
cases:
|
|
328
|
+
var ReportWorkspaceSchema = import_zod8.z.object({
|
|
329
|
+
schemaVersion: import_zod8.z.literal(REPORT_WORKSPACE_SCHEMA_VERSION),
|
|
330
|
+
runs: import_zod8.z.array(ReportRunSchema),
|
|
331
|
+
cases: import_zod8.z.array(ReportCaseSchema)
|
|
320
332
|
}).strict();
|
|
321
333
|
function collectReportWorkspace(input, options = {}) {
|
|
322
334
|
const entries = Array.isArray(input) ? input : [input];
|