STET

agent_patch

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

4415 bytes

Back to adjudication
diff --git a/tmp/agent-patch-flux-pr-5575.1-of-1.2026-02-27__21-30-28__gpt-5-4/app/packages/zod/src/v4/classic/schemas.ts b/app/packages/zod/src/v4/classic/schemas.ts
index 737446a..2a7a7ce 100644
--- a/tmp/agent-patch-flux-pr-5575.1-of-1.2026-02-27__21-30-28__gpt-5-4/app/packages/zod/src/v4/classic/schemas.ts
+++ b/app/packages/zod/src/v4/classic/schemas.ts
@@ -17,6 +17,10 @@ import * as parse from "./parse.js";
 ///////////////////////////////////////////
 
 export type ZodStandardSchemaWithJSON<T> = StandardSchemaWithJSONProps<core.input<T>, core.output<T>>;
+type ZodTypeWithOutput<T extends core.$ZodType, Output> = T & {
+  _output: Output;
+  _zod: T["_zod"] & { output: Output };
+};
 export interface ZodType<
   out Output = unknown,
   out Input = unknown,
@@ -88,6 +92,10 @@ export interface ZodType<
   ): Promise<parse.ZodSafeParseResult<core.output<this>>>;
 
   // refinements
+  refine<RefinedOutput extends core.output<this>>(
+    check: (arg: core.output<this>) => arg is RefinedOutput,
+    params?: string | core.$ZodCustomParams
+  ): ZodTypeWithOutput<this, RefinedOutput>;
   refine(check: (arg: core.output<this>) => unknown | Promise<unknown>, params?: string | core.$ZodCustomParams): this;
   superRefine(
     refinement: (arg: core.output<this>, ctx: core.$RefinementCtx<core.output<this>>) => void | Promise<void>
diff --git a/tmp/agent-patch-flux-pr-5575.1-of-1.2026-02-27__21-30-28__gpt-5-4/app/packages/zod/src/v4/classic/tests/refine.test.ts b/app/packages/zod/src/v4/classic/tests/refine.test.ts
index 6eaff2d..f4965b6 100644
--- a/tmp/agent-patch-flux-pr-5575.1-of-1.2026-02-27__21-30-28__gpt-5-4/app/packages/zod/src/v4/classic/tests/refine.test.ts
+++ b/app/packages/zod/src/v4/classic/tests/refine.test.ts
@@ -1,4 +1,4 @@
-import { describe, expect, test } from "vitest";
+import { describe, expect, expectTypeOf, test } from "vitest";
 import * as z from "zod/v4";
 
 describe("basic refinement functionality", () => {
@@ -416,8 +416,6 @@ describe("chained refinements", () => {
   });
 });
 
-// Commented tests can be uncommented once type-checking issues are resolved
-/*
 describe("type refinement", () => {
   test("refinement type guard", () => {
     const validationSchema = z.object({
@@ -432,68 +430,7 @@ describe("type refinement", () => {
     expectTypeOf<Schema["a"]>().toEqualTypeOf<"a">();
     expectTypeOf<Schema["a"]>().not.toEqualTypeOf<string>();
   });
-
-  test("superRefine - type narrowing", () => {
-    type NarrowType = { type: string; age: number };
-    const schema = z
-      .object({
-        type: z.string(),
-        age: z.number(),
-      })
-      .nullable()
-      .superRefine((arg, ctx): arg is NarrowType => {
-        if (!arg) {
-          // still need to make a call to ctx.addIssue
-          ctx.addIssue({
-            input: arg,
-            code: "custom",
-            message: "cannot be null",
-            fatal: true,
-          });
-          return false;
-        }
-        return true;
-      });
-
-    expectTypeOf<z.infer<typeof schema>>().toEqualTypeOf<NarrowType>();
-
-    expect(schema.safeParse({ type: "test", age: 0 }).success).toEqual(true);
-    expect(schema.safeParse(null).success).toEqual(false);
-  });
-
-  test("chained mixed refining types", () => {
-    type firstRefinement = { first: string; second: number; third: true };
-    type secondRefinement = { first: "bob"; second: number; third: true };
-    type thirdRefinement = { first: "bob"; second: 33; third: true };
-    const schema = z
-      .object({
-        first: z.string(),
-        second: z.number(),
-        third: z.boolean(),
-      })
-      .nullable()
-      .refine((arg): arg is firstRefinement => !!arg?.third)
-      .superRefine((arg, ctx): arg is secondRefinement => {
-        expectTypeOf<typeof arg>().toEqualTypeOf<firstRefinement>();
-        if (arg.first !== "bob") {
-          ctx.addIssue({
-            input: arg,
-            code: "custom",
-            message: "`first` property must be `bob`",
-          });
-          return false;
-        }
-        return true;
-      })
-      .refine((arg): arg is thirdRefinement => {
-        expectTypeOf<typeof arg>().toEqualTypeOf<secondRefinement>();
-        return arg.second === 33;
-      });
-
-    expectTypeOf<z.infer<typeof schema>>().toEqualTypeOf<thirdRefinement>();
-  });
 });
-*/
 
 test("when", () => {
   const schema = z