Skip to content

Commit 8dd43ba

Browse files
committed
allow sending undefined source for remote eval params
1 parent d9ea64a commit 8dd43ba

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

js/dev/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ export type ParametersContainer = z.infer<typeof parametersContainerSchema>;
9090
const staticParametersContainerSchema = z.object({
9191
type: z.literal("braintrust.staticParameters"),
9292
schema: staticParametersSchema,
93-
source: z.null(),
93+
source: z.null().optional(),
9494
});
9595

9696
export type StaticParametersContainer = z.infer<

js/src/zod/zod-v3-serialization.test.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import {
1919
serializeEvalParametersToStaticParametersSchema,
2020
serializeRemoteEvalParametersContainer,
2121
} from "../framework2";
22+
import { serializedParametersContainerSchema } from "../../dev/types";
2223
// Detect which zod version is installed by checking for v4-specific properties
2324
function getInstalledZodVersion(): 3 | 4 {
2425
const testSchema = zodModule.z.string();
@@ -171,3 +172,30 @@ describe("serializeRemoteEvalParametersContainer with Zod v3", () => {
171172
}
172173
});
173174
});
175+
176+
describe("serializedParametersContainerSchema parsing", () => {
177+
const schema = {
178+
model: {
179+
type: "model" as const,
180+
description: "Model to use",
181+
default: "gpt-5-mini",
182+
},
183+
};
184+
185+
test("parses braintrust.staticParameters with source: null", () => {
186+
const result = serializedParametersContainerSchema.safeParse({
187+
type: "braintrust.staticParameters",
188+
schema,
189+
source: null,
190+
});
191+
expect(result.success).toBe(true);
192+
});
193+
194+
test("parses braintrust.staticParameters with source omitted", () => {
195+
const result = serializedParametersContainerSchema.safeParse({
196+
type: "braintrust.staticParameters",
197+
schema,
198+
});
199+
expect(result.success).toBe(true);
200+
});
201+
});

0 commit comments

Comments
 (0)