STET

agent_patch

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

5424 bytes

Back to adjudication
diff --git a/tmp/agent-patch-flux-pr-3535.1-of-1.2026-02-27__21-30-28__gpt-5-4/app/deno/lib/__tests__/discriminated-unions.test.ts b/app/deno/lib/__tests__/discriminated-unions.test.ts
index bff0cda..393e52e 100644
--- a/tmp/agent-patch-flux-pr-3535.1-of-1.2026-02-27__21-30-28__gpt-5-4/app/deno/lib/__tests__/discriminated-unions.test.ts
+++ b/app/deno/lib/__tests__/discriminated-unions.test.ts
@@ -63,6 +63,22 @@ test("valid - discriminator value of various primitive types", () => {
   });
 });
 
+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("invalid - null", () => {
   try {
     z.discriminatedUnion("type", [
diff --git a/tmp/agent-patch-flux-pr-3535.1-of-1.2026-02-27__21-30-28__gpt-5-4/app/deno/lib/types.ts b/app/deno/lib/types.ts
index 19bbdd6..84087c6 100644
--- a/tmp/agent-patch-flux-pr-3535.1-of-1.2026-02-27__21-30-28__gpt-5-4/app/deno/lib/types.ts
+++ b/app/deno/lib/types.ts
@@ -3163,9 +3163,17 @@ export type ZodDiscriminatedUnionOption<Discriminator extends string> =
     ZodTypeAny
   >;
 
+export type ZodDiscriminatedUnionOptions<Discriminator extends string> =
+  Readonly<
+    [
+      ZodDiscriminatedUnionOption<Discriminator>,
+      ...ZodDiscriminatedUnionOption<Discriminator>[]
+    ]
+  >;
+
 export interface ZodDiscriminatedUnionDef<
   Discriminator extends string,
-  Options extends ZodDiscriminatedUnionOption<string>[] = ZodDiscriminatedUnionOption<string>[]
+  Options extends ZodDiscriminatedUnionOptions<string> = ZodDiscriminatedUnionOptions<string>
 > extends ZodTypeDef {
   discriminator: Discriminator;
   options: Options;
@@ -3175,7 +3183,7 @@ export interface ZodDiscriminatedUnionDef<
 
 export class ZodDiscriminatedUnion<
   Discriminator extends string,
-  Options extends ZodDiscriminatedUnionOption<Discriminator>[]
+  Options extends ZodDiscriminatedUnionOptions<Discriminator>
 > extends ZodType<
   output<Options[number]>,
   ZodDiscriminatedUnionDef<Discriminator, Options>,
@@ -3245,10 +3253,7 @@ export class ZodDiscriminatedUnion<
    */
   static create<
     Discriminator extends string,
-    Types extends [
-      ZodDiscriminatedUnionOption<Discriminator>,
-      ...ZodDiscriminatedUnionOption<Discriminator>[]
-    ]
+    Types extends ZodDiscriminatedUnionOptions<Discriminator>
   >(
     discriminator: Discriminator,
     options: Types,
diff --git a/tmp/agent-patch-flux-pr-3535.1-of-1.2026-02-27__21-30-28__gpt-5-4/app/src/__tests__/discriminated-unions.test.ts b/app/src/__tests__/discriminated-unions.test.ts
index 9d8e7b6..af3a159 100644
--- a/tmp/agent-patch-flux-pr-3535.1-of-1.2026-02-27__21-30-28__gpt-5-4/app/src/__tests__/discriminated-unions.test.ts
+++ b/app/src/__tests__/discriminated-unions.test.ts
@@ -62,6 +62,22 @@ test("valid - discriminator value of various primitive types", () => {
   });
 });
 
+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("invalid - null", () => {
   try {
     z.discriminatedUnion("type", [
diff --git a/tmp/agent-patch-flux-pr-3535.1-of-1.2026-02-27__21-30-28__gpt-5-4/app/src/types.ts b/app/src/types.ts
index bbb857a..66d94e0 100644
--- a/tmp/agent-patch-flux-pr-3535.1-of-1.2026-02-27__21-30-28__gpt-5-4/app/src/types.ts
+++ b/app/src/types.ts
@@ -3163,9 +3163,17 @@ export type ZodDiscriminatedUnionOption<Discriminator extends string> =
     ZodTypeAny
   >;
 
+export type ZodDiscriminatedUnionOptions<Discriminator extends string> =
+  Readonly<
+    [
+      ZodDiscriminatedUnionOption<Discriminator>,
+      ...ZodDiscriminatedUnionOption<Discriminator>[]
+    ]
+  >;
+
 export interface ZodDiscriminatedUnionDef<
   Discriminator extends string,
-  Options extends ZodDiscriminatedUnionOption<string>[] = ZodDiscriminatedUnionOption<string>[]
+  Options extends ZodDiscriminatedUnionOptions<string> = ZodDiscriminatedUnionOptions<string>
 > extends ZodTypeDef {
   discriminator: Discriminator;
   options: Options;
@@ -3175,7 +3183,7 @@ export interface ZodDiscriminatedUnionDef<
 
 export class ZodDiscriminatedUnion<
   Discriminator extends string,
-  Options extends ZodDiscriminatedUnionOption<Discriminator>[]
+  Options extends ZodDiscriminatedUnionOptions<Discriminator>
 > extends ZodType<
   output<Options[number]>,
   ZodDiscriminatedUnionDef<Discriminator, Options>,
@@ -3245,10 +3253,7 @@ export class ZodDiscriminatedUnion<
    */
   static create<
     Discriminator extends string,
-    Types extends [
-      ZodDiscriminatedUnionOption<Discriminator>,
-      ...ZodDiscriminatedUnionOption<Discriminator>[]
-    ]
+    Types extends ZodDiscriminatedUnionOptions<Discriminator>
   >(
     discriminator: Discriminator,
     options: Types,