STET

agent_patch

runs/2026-02-27__21-30-28__gpt-5-3-codex/flux-pr-3535/flux-pr-3535.1-of-1.2026-02-28__06-14-14__gpt-5-3-codex/agent-logs/agent.patch

5038 bytes

Back to adjudication
diff --git a/tmp/agent-patch-flux-pr-3535.1-of-1.2026-02-28__06-14-14__gpt-5-3-codex/app/deno/lib/__tests__/discriminated-unions.test.ts b/app/deno/lib/__tests__/discriminated-unions.test.ts
index bff0cda..1b3e622 100644
--- a/tmp/agent-patch-flux-pr-3535.1-of-1.2026-02-28__06-14-14__gpt-5-3-codex/app/deno/lib/__tests__/discriminated-unions.test.ts
+++ b/app/deno/lib/__tests__/discriminated-unions.test.ts
@@ -15,6 +15,22 @@ test("valid", () => {
   ).toEqual({ type: "a", a: "abc" });
 });
 
+test("readonly options", () => {
+  const options = [
+    z.object({ type: z.literal("a"), a: z.string() }),
+    z.object({ type: z.literal("b"), b: z.number() }),
+  ] as const;
+
+  const schema = z.discriminatedUnion("type", options);
+  z.util.assertEqual<
+    z.infer<typeof schema>,
+    { type: "a"; a: string } | { type: "b"; b: number }
+  >(true);
+
+  schema.parse({ type: "a", a: "abc" });
+  schema.parse({ type: "b", b: 123 });
+});
+
 test("valid - discriminator value of various primitive types", () => {
   const schema = z.discriminatedUnion("type", [
     z.object({ type: z.literal("1"), val: z.literal(1) }),
diff --git a/tmp/agent-patch-flux-pr-3535.1-of-1.2026-02-28__06-14-14__gpt-5-3-codex/app/deno/lib/types.ts b/app/deno/lib/types.ts
index 19bbdd6..f800fec 100644
--- a/tmp/agent-patch-flux-pr-3535.1-of-1.2026-02-28__06-14-14__gpt-5-3-codex/app/deno/lib/types.ts
+++ b/app/deno/lib/types.ts
@@ -3165,7 +3165,7 @@ export type ZodDiscriminatedUnionOption<Discriminator extends string> =
 
 export interface ZodDiscriminatedUnionDef<
   Discriminator extends string,
-  Options extends ZodDiscriminatedUnionOption<string>[] = ZodDiscriminatedUnionOption<string>[]
+  Options extends readonly ZodDiscriminatedUnionOption<string>[] = readonly ZodDiscriminatedUnionOption<string>[]
 > extends ZodTypeDef {
   discriminator: Discriminator;
   options: Options;
@@ -3175,7 +3175,7 @@ export interface ZodDiscriminatedUnionDef<
 
 export class ZodDiscriminatedUnion<
   Discriminator extends string,
-  Options extends ZodDiscriminatedUnionOption<Discriminator>[]
+  Options extends readonly ZodDiscriminatedUnionOption<Discriminator>[]
 > extends ZodType<
   output<Options[number]>,
   ZodDiscriminatedUnionDef<Discriminator, Options>,
@@ -3245,7 +3245,7 @@ export class ZodDiscriminatedUnion<
    */
   static create<
     Discriminator extends string,
-    Types extends [
+    Types extends readonly [
       ZodDiscriminatedUnionOption<Discriminator>,
       ...ZodDiscriminatedUnionOption<Discriminator>[]
     ]
diff --git a/tmp/agent-patch-flux-pr-3535.1-of-1.2026-02-28__06-14-14__gpt-5-3-codex/app/src/__tests__/discriminated-unions.test.ts b/app/src/__tests__/discriminated-unions.test.ts
index 9d8e7b6..d5c0c00 100644
--- a/tmp/agent-patch-flux-pr-3535.1-of-1.2026-02-28__06-14-14__gpt-5-3-codex/app/src/__tests__/discriminated-unions.test.ts
+++ b/app/src/__tests__/discriminated-unions.test.ts
@@ -14,6 +14,22 @@ test("valid", () => {
   ).toEqual({ type: "a", a: "abc" });
 });
 
+test("readonly options", () => {
+  const options = [
+    z.object({ type: z.literal("a"), a: z.string() }),
+    z.object({ type: z.literal("b"), b: z.number() }),
+  ] as const;
+
+  const schema = z.discriminatedUnion("type", options);
+  z.util.assertEqual<
+    z.infer<typeof schema>,
+    { type: "a"; a: string } | { type: "b"; b: number }
+  >(true);
+
+  schema.parse({ type: "a", a: "abc" });
+  schema.parse({ type: "b", b: 123 });
+});
+
 test("valid - discriminator value of various primitive types", () => {
   const schema = z.discriminatedUnion("type", [
     z.object({ type: z.literal("1"), val: z.literal(1) }),
diff --git a/tmp/agent-patch-flux-pr-3535.1-of-1.2026-02-28__06-14-14__gpt-5-3-codex/app/src/types.ts b/app/src/types.ts
index bbb857a..0535625 100644
--- a/tmp/agent-patch-flux-pr-3535.1-of-1.2026-02-28__06-14-14__gpt-5-3-codex/app/src/types.ts
+++ b/app/src/types.ts
@@ -3165,7 +3165,7 @@ export type ZodDiscriminatedUnionOption<Discriminator extends string> =
 
 export interface ZodDiscriminatedUnionDef<
   Discriminator extends string,
-  Options extends ZodDiscriminatedUnionOption<string>[] = ZodDiscriminatedUnionOption<string>[]
+  Options extends readonly ZodDiscriminatedUnionOption<string>[] = readonly ZodDiscriminatedUnionOption<string>[]
 > extends ZodTypeDef {
   discriminator: Discriminator;
   options: Options;
@@ -3175,7 +3175,7 @@ export interface ZodDiscriminatedUnionDef<
 
 export class ZodDiscriminatedUnion<
   Discriminator extends string,
-  Options extends ZodDiscriminatedUnionOption<Discriminator>[]
+  Options extends readonly ZodDiscriminatedUnionOption<Discriminator>[]
 > extends ZodType<
   output<Options[number]>,
   ZodDiscriminatedUnionDef<Discriminator, Options>,
@@ -3245,7 +3245,7 @@ export class ZodDiscriminatedUnion<
    */
   static create<
     Discriminator extends string,
-    Types extends [
+    Types extends readonly [
       ZodDiscriminatedUnionOption<Discriminator>,
       ...ZodDiscriminatedUnionOption<Discriminator>[]
     ]