agent_patch
runs/2026-02-27__21-30-28__gpt-5-1-codex-mini/flux-pr-5409/flux-pr-5409.1-of-1.2026-02-27__21-30-28__gpt-5-1-codex-mini/agent-logs/agent.patch
8560 bytes
diff --git a/tmp/agent-patch-flux-pr-5409.1-of-1.2026-02-27__21-30-28__gpt-5-1-codex-mini/app/packages/zod/src/v4/locales/he.ts b/app/packages/zod/src/v4/locales/he.ts
index d5dcc8f..1e888bb 100644
--- a/tmp/agent-patch-flux-pr-5409.1-of-1.2026-02-27__21-30-28__gpt-5-1-codex-mini/app/packages/zod/src/v4/locales/he.ts
+++ b/app/packages/zod/src/v4/locales/he.ts
@@ -14,6 +14,42 @@ const error: () => errors.$ZodErrorMap = () => {
return Sizable[origin] ?? null;
}
+ type TypeDescriptor = { label: string; feminine?: boolean };
+ const TypeDescriptors: Record<string, TypeDescriptor> = {
+ string: { label: "מחרוזת", feminine: true },
+ number: { label: "מספר" },
+ int: { label: "מספר שלם" },
+ bigint: { label: "BigInt" },
+ boolean: { label: "ערך בוליאני" },
+ object: { label: "אובייקט" },
+ array: { label: "מערך" },
+ set: { label: "קבוצה", feminine: true },
+ map: { label: "מפה", feminine: true },
+ record: { label: "רקורד" },
+ date: { label: "תאריך" },
+ file: { label: "קובץ" },
+ function: { label: "פונקציה", feminine: true },
+ symbol: { label: "Symbol" },
+ promise: { label: "Promise" },
+ null: { label: "null" },
+ undefined: { label: "undefined" },
+ nan: { label: "NaN" },
+ };
+
+ const hebrewLetter = /^[\u0590-\u05FF]/;
+ const addHebrewArticle = (text: string): string => {
+ if (!text) return text;
+ const trimmed = text.trimStart();
+ if (trimmed.startsWith("ה")) return trimmed;
+ return hebrewLetter.test(trimmed) ? `ה${trimmed}` : trimmed;
+ };
+
+ const describeTypeName = (type?: string): TypeDescriptor => {
+ if (!type) return { label: "הערך" };
+ const normalized = type.toLowerCase();
+ return TypeDescriptors[normalized] ?? { label: type };
+ };
+
const parsedType = (data: any): string => {
const t = typeof data;
@@ -72,46 +108,73 @@ const error: () => errors.$ZodErrorMap = () => {
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 expectedType = describeTypeName(issue.expected);
+ const receivedType = describeTypeName(parsedType(issue.input));
+ const expectedLabel = addHebrewArticle(expectedType.label);
+ const receivedLabel = addHebrewArticle(receivedType.label);
+ return `הסוג הצפוי הוא ${expectedLabel}, אך התקבל ${receivedLabel}`;
+ }
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()}`;
+ const originDescriptor = issue.origin ? describeTypeName(issue.origin) : undefined;
+ const originLabel = originDescriptor ? addHebrewArticle(originDescriptor.label) : "הערך";
+ const originVerb = originDescriptor?.feminine ? "צריכה" : "צריך";
+ if (sizing) {
+ const rangeText = issue.inclusive
+ ? `עד ${issue.maximum.toString()} ${sizing.unit}`
+ : `פחות מ-${issue.maximum.toString()} ${sizing.unit}`;
+ return `${originLabel} גדול מדי: ${originLabel} ${originVerb} ${sizing.verb} ${rangeText}`;
+ }
+ const comparison = issue.inclusive ? "לא יעלה על" : "יהיה פחות מ";
+ return `${originLabel} גדול מדי: ${originLabel} ${originVerb} ${comparison} ${issue.maximum.toString()}`;
}
case "too_small": {
- const adj = issue.inclusive ? ">=" : ">";
const sizing = getSizing(issue.origin);
+ const originDescriptor = issue.origin ? describeTypeName(issue.origin) : undefined;
+ const originLabel = originDescriptor ? addHebrewArticle(originDescriptor.label) : "הערך";
+ const originVerb = originDescriptor?.feminine ? "צריכה" : "צריך";
if (sizing) {
- return `קטן מדי: ${issue.origin} צריך להיות ${adj}${issue.minimum.toString()} ${sizing.unit}`;
+ const rangeText = issue.inclusive
+ ? `לפחות ${issue.minimum.toString()} ${sizing.unit}`
+ : `יותר מ-${issue.minimum.toString()} ${sizing.unit}`;
+ return `${originLabel} קטן מדי: ${originLabel} ${originVerb} ${sizing.verb} ${rangeText}`;
}
-
- return `קטן מדי: ${issue.origin} צריך להיות ${adj}${issue.minimum.toString()}`;
+ const comparison = issue.inclusive ? "לפחות" : "יותר מ";
+ return `${originLabel} קטן מדי: ${originLabel} ${originVerb} ${comparison} ${issue.minimum.toString()}`;
}
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 === "includes") return `מחרוזת לא תקינה: חייבת לכלול "${_issue.includes}"`;
- if (_issue.format === "regex") return `מחרוזת לא תקינה: חייבת להתאים לתבנית ${_issue.pattern}`;
- return `${Nouns[_issue.format] ?? issue.format} לא תקין`;
+ const stringLabel = addHebrewArticle("מחרוזת");
+ if (_issue.format === "starts_with") return `${stringLabel} צריכה להתחיל ב"${_issue.prefix}"`;
+ if (_issue.format === "ends_with") return `${stringLabel} צריכה להסתיים ב"${_issue.suffix}"`;
+ if (_issue.format === "includes") return `${stringLabel} חייבת לכלול "${_issue.includes}"`;
+ if (_issue.format === "regex") return `${stringLabel} חייבת להתאים לתבנית ${_issue.pattern}`;
+ const noun = Nouns[_issue.format] ?? _issue.format;
+ return `${addHebrewArticle(noun)} לא תקין`;
}
case "not_multiple_of":
return `מספר לא תקין: חייב להיות מכפלה של ${issue.divisor}`;
- case "unrecognized_keys":
- return `מפתח${issue.keys.length > 1 ? "ות" : ""} לא מזוה${issue.keys.length > 1 ? "ים" : "ה"}: ${util.joinValues(issue.keys, ", ")}`;
- case "invalid_key":
- return `מפתח לא תקין ב${issue.origin}`;
+ case "unrecognized_keys": {
+ const plural = issue.keys.length > 1;
+ const subject = plural ? "המפתחות" : "המפתח";
+ const verb = plural ? "אינן מזוהות" : "אינו מזוהה";
+ return `${subject} ${util.joinValues(issue.keys, ", ")} ${verb}`;
+ }
+ case "invalid_key": {
+ const container = issue.origin === "map" ? "המפה" : issue.origin === "record" ? "הרקורד" : issue.origin ?? "הקלט";
+ return `המפתח ב${container} אינו תקין`;
+ }
case "invalid_union":
- return "קלט לא תקין";
- case "invalid_element":
- return `ערך לא תקין ב${issue.origin}`;
+ return "הקלט לא תואם אף אחת מהאפשרויות";
+ case "invalid_element": {
+ const container = issue.origin === "map" ? "המפה" : issue.origin === "set" ? "הקבוצה" : issue.origin ?? "הקולקציה";
+ const keyLabel = util.stringifyPrimitive(issue.key);
+ return `הפריט עבור המפתח ${keyLabel} ב${container} אינו תקין`;
+ }
default:
return `קלט לא תקין`;
}