// Module ID: 937 // Function ID: 10142 // Name: truncateTextByBytes // Dependencies: [] // Module 937 (truncateTextByBytes) function truncateTextByBytes(content, diff) { if (utf8Bytes(content) <= diff) { return content; } else { let length = content.length; let str = ""; let num4 = 0; let str2 = ""; if (0 <= length) { do { let _Math = Math; let rounded = Math.floor((num4 + length) / 2); let substr = content.slice(0, rounded); let tmp4 = utf8Bytes; if (utf8Bytes(substr) <= diff) { num4 = rounded + 1; diff = length; str = substr; } else { diff = rounded - 1; } length = diff; str2 = str; } while (num4 <= diff); } return str2; } } function getPartText(text) { let tmp = text; if ("string" !== typeof text) { let str2 = ""; if ("text" in text) { str2 = text.text; } tmp = str2; } return tmp; } function withPartText(arg0, text) { let merged = text; if ("string" !== typeof arg0) { const _Object = Object; const obj = { text }; merged = Object.assign({}, arg0, obj); } return merged; } function isContentMedia(source) { let tmp = !source; if (!tmp) { tmp = "object" !== typeof source; } let tmp2 = !tmp; if (!tmp) { let tmp3 = "type" in source; if (tmp3) { tmp3 = "string" === typeof source.type; } if (tmp3) { tmp3 = "source" in source; } if (tmp3) { tmp3 = isContentMedia(source.source); } if (!tmp3) { tmp3 = hasInlineData(source); } if (!tmp3) { let tmp6 = "media_type" in source; if (tmp6) { tmp6 = "string" === typeof source.media_type; } if (tmp6) { tmp6 = "data" in source; } tmp3 = tmp6; } if (!tmp3) { let startsWithResult = "image_url" in source; if (startsWithResult) { startsWithResult = "string" === typeof source.image_url; } if (startsWithResult) { const image_url = source.image_url; startsWithResult = image_url.startsWith("data:"); } tmp3 = startsWithResult; } if (!tmp3) { let tmp8 = "type" in source; if (tmp8) { let tmp9 = "blob" === source.type; if (!tmp9) { tmp9 = "base64" === source.type; } tmp8 = tmp9; } tmp3 = tmp8; } if (!tmp3) { tmp3 = "b64_json" in source; } if (!tmp3) { let tmp10 = "type" in source; if (tmp10) { tmp10 = "result" in source; } if (tmp10) { tmp10 = "image_generation" === source.type; } tmp3 = tmp10; } if (!tmp3) { let startsWithResult1 = "uri" in source; if (startsWithResult1) { startsWithResult1 = "string" === typeof source.uri; } if (startsWithResult1) { const uri = source.uri; startsWithResult1 = uri.startsWith("data:"); } tmp3 = startsWithResult1; } tmp2 = tmp3; } return tmp2; } function hasInlineData(inlineData) { let tmp = "inlineData" in inlineData && inlineData.inlineData; if (tmp) { tmp = "object" === typeof inlineData.inlineData; } if (tmp) { tmp = "data" in inlineData.inlineData; } if (tmp) { tmp = "string" === typeof inlineData.inlineData.data; } return tmp; } function isPartsMessage(parts) { let isArray = null !== parts; if (isArray) { isArray = "object" === typeof parts; } if (isArray) { isArray = "parts" in parts; } if (isArray) { const _Array = Array; isArray = Array.isArray(parts.parts); } if (isArray) { isArray = parts.parts.length > 0; } return isArray; } function truncateSingleMessage(content, arg1) { if (content) { if ("object" === typeof content) { let tmp3 = null !== content && tmp; if (tmp3) { tmp3 = "content" in content; } if (tmp3) { tmp3 = "string" === typeof content.content; } if (!tmp3) { if (isPartsMessage(content)) { let items = (function truncatePartsMessage(parts, arg1) { parts = parts.parts; let obj = { parts: parts.map((arg0) => outer2_6(arg0, "")) }; const diff = arg1 - outer1_1(Object.assign({}, parts, obj)); let diff1 = diff; if (diff <= 0) { return []; } else { const items = []; for (const item10024 of parts) { let tmp21 = item10024; let tmp22 = outer1_5; let tmp23 = outer1_5(item10024); let tmp25 = outer1_0; let tmp24 = tmp23; let tmp26 = outer1_0(tmp23); let tmp28 = diff1; if (tmp26 <= diff1) { let tmp14 = items; let tmp15 = item10024; let arr = items.push(tmp21); let tmp17 = diff1; let tmp18 = tmp26; diff1 = diff1 - tmp27; continue; } else { let tmp3 = items; if (0 === items.length) { let tmp4 = outer1_4; let tmp5 = tmp23; let tmp6 = diff1; let tmp7 = outer1_4(tmp24, diff1); if (tmp7) { let tmp9 = items; let tmp10 = outer1_6; let tmp11 = item10024; let tmp12 = tmp7; arr = items.push(outer1_6(tmp21, tmp8)); } obj3.return(); break; } else { obj3.return(); break; } break; } let tmp19 = items; if (items.length <= 0) { let items1 = []; } else { let _Object = Object; obj = { parts: items }; items1 = [Object.assign({}, arg0, obj)]; } return items1; } } })(content, 20000); } else { items = []; } } let _Object = Object; let obj = { content: "" }; let diff = 20000 - jsonBytes(Object.assign({}, content, obj)); if (diff <= 0) { let items1 = []; } else { const _Object2 = Object; obj = { content: truncateTextByBytes(content.content, diff) }; items1 = [Object.assign({}, content, obj)]; } } } return []; } function stripInlineMediaFromSingleMessage(source) { const merged = Object.assign({}, source); if (isContentMedia(merged.source)) { tmp2.source = stripInlineMediaFromSingleMessage(tmp2.source); } if (hasInlineData(source)) { const _Object = Object; const obj = { data: c2 }; tmp2.inlineData = Object.assign({}, source.inlineData, obj); } const iter = dependencyMap[Symbol.iterator](); const nextResult = iter.next(); while (iter !== undefined) { let tmp9 = merged; if ("string" === typeof tmp2[nextResult]) { let tmp10 = merged; let tmp11 = nextResult; let tmp12 = c2; tmp2[tmp8] = c2; } continue; } return merged; } function stripInlineMediaFromMessages(arr) { return arr.map((arg0) => { let tmp2 = arg0; if (arg0) { tmp2 = "object" === typeof tmp; } if (!tmp2) { return tmp; } else { let isArray = null !== tmp; if (isArray) { isArray = "object" === typeof tmp; } if (isArray) { isArray = "content" in tmp; } if (isArray) { const _Array = Array; isArray = Array.isArray(tmp.content); } if (isArray) { const _Object2 = Object; let obj = { content: outer1_12(tmp.content) }; let merged = Object.assign({}, tmp, obj); } else { let tmp6 = "content" in tmp; if (tmp6) { tmp6 = outer1_7(tmp.content); } if (tmp6) { const _Object = Object; obj = { content: outer1_11(tmp.content) }; merged = Object.assign({}, tmp, obj); } } let merged1 = merged; if (outer1_9(tmp)) { let tmp16 = tmp; if (null != merged) { tmp16 = merged; } obj = { parts: outer1_12(tmp.parts) }; merged1 = Object.assign({}, tmp16, obj); } if (outer1_7(merged1)) { let tmp20 = outer1_11(merged1); } else { tmp20 = merged1; if (outer1_7(tmp)) { tmp20 = outer1_11(tmp); } } } }); } Object.defineProperty(arg5, Symbol.toStringTag, { value: "Module" }); function utf8Bytes(substr) { const textEncoder = new TextEncoder(); return textEncoder.encode(substr).length; } function jsonBytes(arr) { return utf8Bytes(JSON.stringify(arr)); } let c2 = "[Filtered]"; let closure_3 = ["image_url", "data", "content", "b64_json", "result", "uri"]; arg5.DEFAULT_GEN_AI_MESSAGES_BYTE_LIMIT = 20000; arg5.truncateGenAiMessages = function truncateGenAiMessages(arr) { let tmp = arr; if (Array.isArray(arr)) { tmp = arr; if (0 !== arr.length) { arr = stripInlineMediaFromMessages(arr); tmp = arr; if (jsonBytes(arr) > 20000) { let length = arr.length; let diff = arr.length - 1; let tmp3 = length; let num2 = 0; if (diff >= 0) { while (true) { let tmp2 = tmp13[diff]; if (!tmp2) { let sum = num2; if (tmp2) { sum = num2 + tmp2; } let diff1 = diff - 1; num2 = sum; length = diff; tmp3 = diff; diff = diff1; if (diff1 < 0) { break; } } else { tmp3 = length; if (num2 + tmp2 > 20000) { break; } } break; } } if (tmp3 === arr.length) { let substr = truncateSingleMessage(arr[arr.length - 1], 20000); } else { substr = arr.slice(tmp3); } } } } return tmp; }; arg5.truncateGenAiStringInput = function truncateGenAiStringInput(arr) { return truncateTextByBytes(arr, 20000); };