STET

agent_patch

runs/2026-02-27__21-30-28__gpt-5-3-codex/flux-pr-5409/flux-pr-5409.1-of-1.2026-02-27__21-30-28__gpt-5-3-codex/agent-logs/agent.patch

12668 bytes

Back to adjudication
diff --git a/tmp/agent-patch-flux-pr-5409.1-of-1.2026-02-27__21-30-28__gpt-5-3-codex/app/packages/zod/src/v4/locales/he.ts b/app/packages/zod/src/v4/locales/he.ts
index d5dcc8f..7bac28a 100644
--- a/tmp/agent-patch-flux-pr-5409.1-of-1.2026-02-27__21-30-28__gpt-5-3-codex/app/packages/zod/src/v4/locales/he.ts
+++ b/app/packages/zod/src/v4/locales/he.ts
@@ -3,17 +3,77 @@ import type * as errors from "../core/errors.js";
 import * as util from "../core/util.js";
 
 const error: () => errors.$ZodErrorMap = () => {
-  const Sizable: Record<string, { unit: string; verb: string }> = {
-    string: { unit: "אותיות", verb: "לכלול" },
-    file: { unit: "בייטים", verb: "לכלול" },
-    array: { unit: "פריטים", verb: "לכלול" },
-    set: { unit: "פריטים", verb: "לכלול" },
+  type Gender = "masculine" | "feminine";
+  type Label = { bare: string; definite: string; gender: Gender };
+
+  const TypeLabels: Record<string, Label> = {
+    string: { bare: "מחרוזת", definite: "המחרוזת", gender: "feminine" },
+    number: { bare: "מספר", definite: "המספר", gender: "masculine" },
+    int: { bare: "מספר שלם", definite: "המספר השלם", gender: "masculine" },
+    bigint: { bare: "מספר גדול", definite: "המספר הגדול", gender: "masculine" },
+    boolean: { bare: "ערך בוליאני", definite: "הערך הבוליאני", gender: "masculine" },
+    object: { bare: "אובייקט", definite: "האובייקט", gender: "masculine" },
+    array: { bare: "מערך", definite: "המערך", gender: "masculine" },
+    set: { bare: "קבוצה", definite: "הקבוצה", gender: "feminine" },
+    map: { bare: "מפה", definite: "המפה", gender: "feminine" },
+    record: { bare: "רשומה", definite: "הרשומה", gender: "feminine" },
+    file: { bare: "קובץ", definite: "הקובץ", gender: "masculine" },
+    date: { bare: "תאריך", definite: "התאריך", gender: "masculine" },
+    null: { bare: "null", definite: "ה-null", gender: "masculine" },
+    undefined: { bare: "undefined", definite: "ה-undefined", gender: "masculine" },
+    symbol: { bare: "symbol", definite: "ה-symbol", gender: "masculine" },
+    function: { bare: "פונקציה", definite: "הפונקציה", gender: "feminine" },
+    promise: { bare: "Promise", definite: "ה-Promise", gender: "masculine" },
+    unknown: { bare: "ערך לא ידוע", definite: "הערך הלא ידוע", gender: "masculine" },
+    never: { bare: "never", definite: "ה-never", gender: "masculine" },
+    void: { bare: "void", definite: "ה-void", gender: "masculine" },
+    nan: { bare: "NaN", definite: "ה-NaN", gender: "masculine" },
+  };
+
+  const Sizable: Record<string, { unit: string; label: Label }> = {
+    string: { unit: "תווים", label: TypeLabels.string },
+    file: { unit: "בתים", label: TypeLabels.file },
+    array: { unit: "פריטים", label: TypeLabels.array },
+    set: { unit: "פריטים", label: TypeLabels.set },
   };
 
-  function getSizing(origin: string): { unit: string; verb: string } | null {
+  function getSizing(origin: string): { unit: string; label: Label } | null {
     return Sizable[origin] ?? null;
   }
 
+  function getLabel(value: string): Label {
+    return TypeLabels[value] ?? { bare: value, definite: value, gender: "masculine" };
+  }
+
+  function invalidPredicate(gender: Gender): string {
+    return gender === "feminine" ? "אינה תקינה" : "אינו תקין";
+  }
+
+  function receivedVerb(gender: Gender): string {
+    return gender === "feminine" ? "התקבלה" : "התקבל";
+  }
+
+  function minText(value: number | bigint, inclusive?: boolean): string {
+    return inclusive ? `לפחות ${value.toString()}` : `יותר מ-${value.toString()}`;
+  }
+
+  function maxText(value: number | bigint, inclusive?: boolean): string {
+    return inclusive ? `לכל היותר ${value.toString()}` : `פחות מ-${value.toString()}`;
+  }
+
+  function originContext(origin: string): string {
+    switch (origin) {
+      case "map":
+        return "במפה";
+      case "record":
+        return "ברשומה";
+      case "set":
+        return "בקבוצה";
+      default:
+        return `ב${origin}`;
+    }
+  }
+
   const parsedType = (data: any): string => {
     const t = typeof data;
 
@@ -38,80 +98,83 @@ const error: () => errors.$ZodErrorMap = () => {
   };
 
   const Nouns: {
-    [k in $ZodStringFormats | (string & {})]?: string;
+    [k in $ZodStringFormats | (string & {})]?: Label;
   } = {
-    regex: "קלט",
-    email: "כתובת אימייל",
-    url: "כתובת רשת",
-    emoji: "אימוג'י",
-    uuid: "UUID",
-    uuidv4: "UUIDv4",
-    uuidv6: "UUIDv6",
-    nanoid: "nanoid",
-    guid: "GUID",
-    cuid: "cuid",
-    cuid2: "cuid2",
-    ulid: "ULID",
-    xid: "XID",
-    ksuid: "KSUID",
-    datetime: "תאריך וזמן ISO",
-    date: "תאריך ISO",
-    time: "זמן ISO",
-    duration: "משך זמן ISO",
-    ipv4: "כתובת IPv4",
-    ipv6: "כתובת IPv6",
-    cidrv4: "טווח IPv4",
-    cidrv6: "טווח IPv6",
-    base64: "מחרוזת בבסיס 64",
-    base64url: "מחרוזת בבסיס 64 לכתובות רשת",
-    json_string: "מחרוזת JSON",
-    e164: "מספר E.164",
-    jwt: "JWT",
-    template_literal: "קלט",
+    regex: { bare: "קלט", definite: "הקלט", gender: "masculine" },
+    email: { bare: "כתובת אימייל", definite: "כתובת האימייל", gender: "feminine" },
+    url: { bare: "כתובת URL", definite: "כתובת ה-URL", gender: "feminine" },
+    emoji: { bare: "אימוג'י", definite: "האימוג'י", gender: "masculine" },
+    uuid: { bare: "UUID", definite: "ה-UUID", gender: "masculine" },
+    uuidv4: { bare: "UUIDv4", definite: "ה-UUIDv4", gender: "masculine" },
+    uuidv6: { bare: "UUIDv6", definite: "ה-UUIDv6", gender: "masculine" },
+    nanoid: { bare: "nanoid", definite: "ה-nanoid", gender: "masculine" },
+    guid: { bare: "GUID", definite: "ה-GUID", gender: "masculine" },
+    cuid: { bare: "cuid", definite: "ה-cuid", gender: "masculine" },
+    cuid2: { bare: "cuid2", definite: "ה-cuid2", gender: "masculine" },
+    ulid: { bare: "ULID", definite: "ה-ULID", gender: "masculine" },
+    xid: { bare: "XID", definite: "ה-XID", gender: "masculine" },
+    ksuid: { bare: "KSUID", definite: "ה-KSUID", gender: "masculine" },
+    datetime: { bare: "תאריך וזמן ISO", definite: "תאריך וזמן ה-ISO", gender: "masculine" },
+    date: { bare: "תאריך ISO", definite: "תאריך ה-ISO", gender: "masculine" },
+    time: { bare: "זמן ISO", definite: "זמן ה-ISO", gender: "masculine" },
+    duration: { bare: "משך זמן ISO", definite: "משך זמן ה-ISO", gender: "masculine" },
+    ipv4: { bare: "כתובת IPv4", definite: "כתובת ה-IPv4", gender: "feminine" },
+    ipv6: { bare: "כתובת IPv6", definite: "כתובת ה-IPv6", gender: "feminine" },
+    cidrv4: { bare: "טווח IPv4", definite: "טווח ה-IPv4", gender: "masculine" },
+    cidrv6: { bare: "טווח IPv6", definite: "טווח ה-IPv6", gender: "masculine" },
+    base64: { bare: "מחרוזת בקידוד base64", definite: "מחרוזת ה-base64", gender: "feminine" },
+    base64url: { bare: "מחרוזת בקידוד base64url", definite: "מחרוזת ה-base64url", gender: "feminine" },
+    json_string: { bare: "מחרוזת JSON", definite: "מחרוזת ה-JSON", gender: "feminine" },
+    e164: { bare: "מספר E.164", definite: "מספר ה-E.164", gender: "masculine" },
+    jwt: { bare: "JWT", definite: "ה-JWT", gender: "masculine" },
+    template_literal: { bare: "קלט", definite: "הקלט", gender: "masculine" },
   };
 
   return (issue) => {
     switch (issue.code) {
-      case "invalid_type":
-        return `קלט לא תקין: צריך ${issue.expected}, התקבל ${parsedType(issue.input)}`;
-      // return `Invalid input: expected ${issue.expected}, received ${util.getParsedType(issue.input)}`;
+      case "invalid_type": {
+        const expected = getLabel(issue.expected as string).bare;
+        const received = getLabel(parsedType(issue.input));
+        return `קלט לא תקין: צפוי ${expected}, ${receivedVerb(received.gender)} ${received.bare}`;
+      }
       case "invalid_value":
-        if (issue.values.length === 1) return `קלט לא תקין: צריך ${util.stringifyPrimitive(issue.values[0])}`;
-        return `קלט לא תקין: צריך אחת מהאפשרויות  ${util.joinValues(issue.values, "|")}`;
+        if (issue.values.length === 1) return `ערך לא תקין: הערך חייב להיות ${util.stringifyPrimitive(issue.values[0])}`;
+        return `ערך לא תקין: הערך חייב להיות אחת מהאפשרויות הבאות: ${util.joinValues(issue.values, " | ")}`;
       case "too_big": {
-        const adj = issue.inclusive ? "<=" : "<";
         const sizing = getSizing(issue.origin);
         if (sizing)
-          return `גדול מדי: ${issue.origin ?? "value"} צריך להיות ${adj}${issue.maximum.toString()} ${sizing.unit ?? "elements"}`;
-        return `גדול מדי: ${issue.origin ?? "value"} צריך להיות ${adj}${issue.maximum.toString()}`;
+          return `גדול מדי: ${sizing.label.definite} חייב${sizing.label.gender === "feminine" ? "ת" : ""} להכיל ${maxText(issue.maximum, issue.inclusive)} ${sizing.unit}`;
+        const label = getLabel(issue.origin ?? "value");
+        return `גדול מדי: ${label.definite} חייב${label.gender === "feminine" ? "ת" : ""} להיות ${maxText(issue.maximum, issue.inclusive)}`;
       }
       case "too_small": {
-        const adj = issue.inclusive ? ">=" : ">";
         const sizing = getSizing(issue.origin);
         if (sizing) {
-          return `קטן מדי: ${issue.origin} צריך להיות ${adj}${issue.minimum.toString()} ${sizing.unit}`;
+          return `קטן מדי: ${sizing.label.definite} חייב${sizing.label.gender === "feminine" ? "ת" : ""} להכיל ${minText(issue.minimum, issue.inclusive)} ${sizing.unit}`;
         }
 
-        return `קטן מדי: ${issue.origin} צריך להיות ${adj}${issue.minimum.toString()}`;
+        const label = getLabel(issue.origin ?? "value");
+        return `קטן מדי: ${label.definite} חייב${label.gender === "feminine" ? "ת" : ""} להיות ${minText(issue.minimum, issue.inclusive)}`;
       }
       case "invalid_format": {
         const _issue = issue as errors.$ZodStringFormatIssues;
         if (_issue.format === "starts_with") return `מחרוזת לא תקינה: חייבת להתחיל ב"${_issue.prefix}"`;
-        if (_issue.format === "ends_with") return `מחרוזת לא תקינה: חייבת להסתיים ב "${_issue.suffix}"`;
+        if (_issue.format === "ends_with") return `מחרוזת לא תקינה: חייבת להסתיים ב"${_issue.suffix}"`;
         if (_issue.format === "includes") return `מחרוזת לא תקינה: חייבת לכלול "${_issue.includes}"`;
         if (_issue.format === "regex") return `מחרוזת לא תקינה: חייבת להתאים לתבנית ${_issue.pattern}`;
-        return `${Nouns[_issue.format] ?? issue.format} לא תקין`;
+        const label = Nouns[_issue.format] ?? { bare: issue.format, definite: issue.format, gender: "masculine" };
+        return `${label.definite} ${invalidPredicate(label.gender)}`;
       }
       case "not_multiple_of":
         return `מספר לא תקין: חייב להיות מכפלה של ${issue.divisor}`;
       case "unrecognized_keys":
-        return `מפתח${issue.keys.length > 1 ? "ות" : ""} לא מזוה${issue.keys.length > 1 ? "ים" : "ה"}: ${util.joinValues(issue.keys, ", ")}`;
+        return `${issue.keys.length > 1 ? "מפתחות לא מוכרים" : "מפתח לא מוכר"}: ${util.joinValues(issue.keys, ", ")}`;
       case "invalid_key":
-        return `מפתח לא תקין ב${issue.origin}`;
+        return `מפתח לא תקין ${originContext(issue.origin)}`;
       case "invalid_union":
-        return "קלט לא תקין";
+        return "קלט לא תקין: הקלט לא תואם לאף אחת מאפשרויות האיחוד";
       case "invalid_element":
-        return `ערך לא תקין ב${issue.origin}`;
+        return `ערך לא תקין ${originContext(issue.origin)}`;
       default:
         return `קלט לא תקין`;
     }