// Metro module 973 (f974). import { GEN_AI_REQUEST_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, GEN_AI_REQUEST_MESSAGES_ATTRIBUTE } from "./Module958"; import { contentUnionToMessages } from "./contentUnionToMessages"; import { truncateGenAiMessages } from "./truncateTextByBytes"; import { getClient } from "./Module848"; import { HermesBuiltin, $createGenerator } from "../_hermes/prelude"; function $mk67411($env) { return (a0, a1, a2) => { let r155, model, model2; const r3 = $env; let env23937 = { $parent: $env }; env23937[0] = a0; env23937[1] = a2; const r25 = a2[0]; env23937[2] = r25; const r8 = $env.$parent; const r12 = r3[0]; const r13 = r3[1]; const attributes = {}; const r11 = r8[0]; const r10 = r8[1]; attributes[r11(r10[1]).GEN_AI_SYSTEM_ATTRIBUTE] = r11(r10[2]).GOOGLE_GENAI_SYSTEM_NAME; attributes[r11(r10[1]).GEN_AI_OPERATION_NAME_ATTRIBUTE] = r11(r10[3]).getFinalOperationName(r12); attributes[r11(r10[4]).SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] = "auto.ai.google_genai"; const GEN_AI_REQUEST_MODEL_ATTRIBUTE = r11(r10[1]).GEN_AI_REQUEST_MODEL_ATTRIBUTE; if (r25) { L24: { if ("model" in r25 && typeof r25.model === "string") { model2 = r25.model; } else { model2 = "unknown"; if (r13) { model2 = "unknown"; if (typeof r13 === "object") { if ("model" in r13 && typeof r13.model === "string") { model2 = r13.model; break L24; } model2 = "modelVersion" in r13 ? typeof r13.modelVersion === "string" ? r13.modelVersion : "unknown" : "unknown"; } } } } attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] = model2; if ("config" in r25 && typeof r25.config === "object" && r25.config) { const config = r25.config; const r65 = Object; const r68 = "temperature" in config && typeof config.temperature === "number"; const r70 = {}; if (r68) { r70[r11(r10[1]).GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE] = config.temperature; } if ("topP" in config && typeof config.topP === "number") { r70[r11(r10[1]).GEN_AI_REQUEST_TOP_P_ATTRIBUTE] = config.topP; } if ("topK" in config && typeof config.topK === "number") { r70[r11(r10[1]).GEN_AI_REQUEST_TOP_K_ATTRIBUTE] = config.topK; } if ("maxOutputTokens" in config && typeof config.maxOutputTokens === "number") { r70[r11(r10[1]).GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE] = config.maxOutputTokens; } if ("frequencyPenalty" in config && typeof config.frequencyPenalty === "number") { r70[r11(r10[1]).GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE] = config.frequencyPenalty; } if ("presencePenalty" in config && typeof config.presencePenalty === "number") { r70[r11(r10[1]).GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE] = config.presencePenalty; } r65.assign(attributes, r70); if ("tools" in config && Array.isArray(config.tools)) { const r120 = config.tools.flatMap((tool) => tool.functionDeclarations); attributes[r11(r10[1]).GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE] = JSON.stringify(r120); } } } else { L12: { const r15 = {}; if ("model" in r15 && typeof r15.model === "string") { model = r15.model; } else { model = "unknown"; if (r13) { model = "unknown"; if (typeof r13 === "object") { if ("model" in r13 && typeof r13.model === "string") { model = r13.model; break L12; } model = "modelVersion" in r13 ? typeof r13.modelVersion === "string" ? r13.modelVersion : "unknown" : "unknown"; } } } } attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] = model; } let r18 = attributes[r11(r10[1]).GEN_AI_REQUEST_MODEL_ATTRIBUTE]; if (r18 == null) { r18 = "unknown"; } const finalOperationName = r11(r10[3]).getFinalOperationName(r12); const isStreamingMethod = r11(r10[5]).isStreamingMethod(r12); const r140 = r11(r10[7]); if (isStreamingMethod) { const r170 = { name: `${finalOperationName} ${r18} stream-response`, op: r11(r10[3]).getSpanOperation(r12), attributes }; let c23938_0 = (0, r8[2])(function(c31177_0) { let c31177_1, c31177_2, c31177_3; let c31177_5 = 0; let c31177_6 = 0; let c31177_4 = 0; return $createGenerator(function(a0) { let value2, value3; let c31862_0, c31862_1, c31862_2; const r0 = c31177_6; if (r0 === 2) { c31177_6 = 3; HermesBuiltin.throwTypeError("Generator functions may not be called on executing generators"); throw new Error("unreachable"); } const value = arguments[1]; const r10 = void 0; const r9 = env23937.$parent; if (r0 === 3) { if (a0 === 1) { throw value; } if (a0 === 2) { return { value, done: true }; } return { value: void 0, done: true }; } while (true) { L21: { L19: { L9: { try { c31177_6 = 2; const r26 = c31177_5; if (r26 === 0) { if (a0 === 1) { c31177_6 = 3; throw value; } if (a0 === 2) { c31177_6 = 3; break L21; } c31177_2 = r10; c31862_0 = c31177_0; c31862_1 = void 0; c31177_4 = 1; if (r9[2].recordInputs && env23937[2]) { (0, env23937.$parent.$parent[3])(c31177_0, env23937[2]); } value3 = env23937[0].apply(r9[1], env23937[1]); c31177_5 = 2; c31177_6 = 1; break L19; } if (r26 === 1) { const r44 = c31177_3; c31177_4 = 0; c31862_2 = r44; const r45 = c31862_0; const r47 = env23937.$parent.$parent; r45.setStatus({ code: (0, r47[0])(r47[1][9]).SPAN_STATUS_ERROR, message: "internal_error" }); (0, r47[0])(r47[1][10]).captureException(c31862_2, { mechanism: { handled: false, type: "auto.ai.google_genai", data: { function: env23937.$parent[0] } } }); c31862_0.end(); throw c31862_2; } if (a0 === 1) { c31177_6 = 3; throw value; } if (a0 === 2) { c31177_4 = 0; c31177_6 = 3; break L9; } c31862_1 = value; const r15 = env23937.$parent.$parent; value2 = (0, r15[0])(r15[1][8]).instrumentStream(c31862_1, c31862_0, Boolean(env23937.$parent[2].recordOutputs)); c31177_4 = 0; c31177_6 = 3; } catch (r91) { c31177_3 = r91; if (c31177_4 === 0) { c31177_6 = 3; throw r91; } c31177_5 = 1; continue; } return { value: value2, done: true }; } return { value, done: true }; } return { value: value3, done: false }; } return { value, done: true }; } }); }); r155 = r140.startSpanManual(r170, function(a0) { return c23938_0.apply(this, arguments); }); } else { const r142 = r3[3]; const concat = HermesInternal.concat; r155 = r140.startSpan({ name: r142 ? concat.call("", finalOperationName, " ", r18, " create") : concat.call("", finalOperationName, " ", r18), op: r11(r10[3]).getSpanOperation(r12), attributes }, (a0) => { let c28698_0 = a0; const r2 = env23937.$parent; if (r2[2].recordInputs && env23937[2]) { (0, env23937.$parent.$parent[3])(a0, env23937[2]); } const r16 = env23937.$parent.$parent; return (0, r16[0])(r16[1][11]).handleCallbackErrors(() => env23937[0].apply(env23937.$parent[1], env23937[1]), $mk113538(r2), () => {}, (a0) => { const r3 = env23937.$parent; if (!r3[3]) { const recordOutputs = r3[2].recordOutputs; if (a0 && typeof a0 === "object") { if (a0.modelVersion) { const r14 = env23937.$parent.$parent; c28698_0.setAttribute((0, r14[0])(r14[1][1]).GEN_AI_RESPONSE_MODEL_ATTRIBUTE, a0.modelVersion); } if (a0.usageMetadata && typeof a0.usageMetadata === "object") { const usageMetadata = a0.usageMetadata; if (typeof usageMetadata.promptTokenCount === "number") { const r27 = {}; const r8 = env23937.$parent.$parent; r27[(0, r8[0])(r8[1][1]).GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] = usageMetadata.promptTokenCount; c28698_0.setAttributes(r27); } if (typeof usageMetadata.candidatesTokenCount === "number") { const r37 = {}; const r38 = env23937.$parent.$parent; r37[(0, r38[0])(r38[1][1]).GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE] = usageMetadata.candidatesTokenCount; c28698_0.setAttributes(r37); } if (typeof usageMetadata.totalTokenCount === "number") { const r49 = {}; const r50 = env23937.$parent.$parent; r49[(0, r50[0])(r50[1][1]).GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE] = usageMetadata.totalTokenCount; c28698_0.setAttributes(r49); } } if (recordOutputs && Array.isArray(a0.candidates) && a0.candidates.length > 0) { const r10 = a0.candidates.map((candidate) => candidate.content?.parts ? Array.isArray(candidate.content.parts) ? candidate.content.parts.map((part) => typeof part.text === "string" ? part.text : "").filter((item) => item.length > 0).join("") : "" : "").filter((item) => item.length > 0); if (r10.length > 0) { const r75 = {}; const r76 = env23937.$parent.$parent; r75[(0, r76[0])(r76[1][1]).GEN_AI_RESPONSE_TEXT_ATTRIBUTE] = r10.join(""); c28698_0.setAttributes(r75); } } if (recordOutputs && a0.functionCalls) { const functionCalls = a0.functionCalls; if (Array.isArray(functionCalls) && functionCalls.length > 0) { const r95 = {}; const r96 = env23937.$parent.$parent; r95[(0, r96[0])(r96[1][1]).GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE] = JSON.stringify(functionCalls); c28698_0.setAttributes(r95); } } } } }); }); } return r155; }; } function $mk67412($env) { return (a0, a1, a2) => { let r28; const r9 = $env; const r6 = Reflect.get(a0, a1, a2); const r18 = $env.$parent; const r8 = r18[0]; const r19 = r18[1]; const r23 = r8(r19[3]).buildMethodPath(r9[0], String(a1)); if (typeof r6 === "function" && r8(r19[5]).shouldInstrument(r23)) { if (r23 === r8(r19[2]).CHATS_CREATE_METHOD) { let env23942; let env23941 = { $parent: $env }; const r56 = r9[1]; const r57 = env23942 = { $parent: r18 }; env23942[0] = r23; env23942[1] = a0; env23942[2] = r56; env23942[3] = r23 === r8(r19[2]).CHATS_CREATE_METHOD; env23941[0] = new Proxy(r6, { apply: $mk67411(r57) }); return function instrumentedAndProxiedCreate() { const r6 = env23941[0].apply(void 0, [...Array.prototype.slice.call(arguments, 0)]); let r17 = r6; if (r6) { r17 = r6; if (typeof r17 === "object") { let env28699; const r4 = env23941.$parent.$parent; let CHAT_PATH = (0, r4[0])(r4[1][2]).CHAT_PATH; const r23 = env23941.$parent[1]; const r24 = env28699 = { $parent: r4 }; env28699[0] = void 0; env28699[1] = void 0; if (CHAT_PATH === void 0) { CHAT_PATH = ""; } env28699[0] = CHAT_PATH; env28699[1] = r23; r17 = new Proxy(r6, { get: $mk67412(r24) }); } } return r17; }; } let env23940; const r41 = r9[1]; const r42 = env23940 = { $parent: r18 }; env23940[0] = r23; env23940[1] = a0; env23940[2] = r41; env23940[3] = r23 === r8(r19[2]).CHATS_CREATE_METHOD; return new Proxy(r6, { apply: $mk67411(r42) }); } if (typeof r6 === "function") { r28 = r6.bind(a0); } else { r28 = r6; if (r6) { r28 = r6; if (typeof r28 === "object") { const r29 = r9[1]; let r30 = r23; if (r30 === void 0) { r30 = ""; } let env23939; const r31 = env23939 = { $parent: r18 }; env23939[0] = r30; env23939[1] = r29; r28 = new Proxy(r6, { get: $mk67412(r31) }); } } } return r28; }; } function $mk113538($env) { return (a0) => { const r1 = $env.$parent; (0, r1[0])(r1[1][10]).captureException(a0, { mechanism: { handled: false, type: "auto.ai.google_genai", data: { function: $env[0] } } }); }; } let env801 = {}; const addPrivateRequestAttributes = function addPrivateRequestAttributes(a0, a1) { const r14 = "config" in a1 && a1.config && typeof a1.config === "object" && "systemInstruction" in a1.config && a1.config.systemInstruction; const r10 = []; if (r14) { r10.push.apply(r10, [...contentUnionToMessages(a1.config.systemInstruction, "system")]); } if ("history" in a1) { r10.push.apply(r10, [...contentUnionToMessages(a1.history, "user")]); } if ("contents" in a1) { r10.push.apply(r10, [...contentUnionToMessages(a1.contents, "user")]); } if ("message" in a1) { r10.push.apply(r10, [...contentUnionToMessages(a1.message, "user")]); } if (Array.isArray(r10) && r10.length) { const setAttributes = a0.setAttributes; const r95 = {}; r95[GEN_AI_REQUEST_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE] = r10.length; r95[GEN_AI_REQUEST_MESSAGES_ATTRIBUTE] = JSON.stringify(truncateGenAiMessages(r10)); setAttributes.call(a0, r95); } }; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); export function extractModel(a0, a1) { if ("model" in a0 && typeof a0.model === "string") { return a0.model; } if (a1 && typeof a1 === "object") { if ("model" in a1 && typeof a1.model === "string") { return a1.model; } if ("modelVersion" in a1 && typeof a1.modelVersion === "string") { return a1.modelVersion; } } return "unknown"; } export function instrumentGoogleGenAIClient(a0, a1) { const r6 = Boolean; const client = getClient(); const r15 = client == null ? void 0 : client.getOptions().sendDefaultPii; let env12601; const recordInputs = r6(r15); const r20 = { recordInputs, recordOutputs: recordInputs, ...a1 }; const r22 = env12601 = { $parent: env801 }; env12601[0] = ""; env12601[1] = r20; return new Proxy(a0, { get: $mk67412(r22) }); }