{"version":3,"file":"dist-BGdEcgoh.cjs","names":["symbol$1","_a$1","name$1","marker2","symbol2","_a2","_b2","name2","marker3","symbol3","_a3","_b3","name3","marker4","symbol4","_a4","_b4","InvalidArgumentError","name4","marker5","symbol5","_a5","_b5","name5","marker6","symbol6","_a6","_b6","name6","marker7","symbol7","_a7","_b7","name7","marker8","symbol8","_a8","_b8","name8","marker9","symbol9","_a9","_b9","name9","marker10","symbol10","_a10","name10","marker11","symbol11","_a11","name11","marker12","symbol12","_a12","name12","marker13","symbol13","_a13","name13","marker14","symbol14","_a14","name","marker","symbol","_a","_b","VERSION","ZodFirstPartyTypeKind","z4","z","z$1","DownloadError$1","getErrorMessage$1","getErrorMessage"],"sources":["../../_vendored/ai_v5/dist/dist-BuEMdYEn.js","../../_vendored/ai_v5/dist/index.js"],"sourcesContent":["import * as z4 from \"zod/v4\";\nimport { ZodFirstPartyTypeKind } from \"zod/v3\";\n//#region ../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider/2.0.3/baf9ca0bc6c1e850f5a9c142d47d3731e6921106a5f2b12483df7e7922a48657/node_modules/@ai-sdk/provider/dist/index.mjs\nvar marker$1 = \"vercel.ai.error\";\nvar symbol$1 = Symbol.for(marker$1);\nvar _a$1;\nvar _b$1;\nvar AISDKError = class _AISDKError extends (_b$1 = Error, _a$1 = symbol$1, _b$1) {\n\t/**\n\t* Creates an AI SDK Error.\n\t*\n\t* @param {Object} params - The parameters for creating the error.\n\t* @param {string} params.name - The name of the error.\n\t* @param {string} params.message - The error message.\n\t* @param {unknown} [params.cause] - The underlying cause of the error.\n\t*/\n\tconstructor({ name: name14, message, cause }) {\n\t\tsuper(message);\n\t\tthis[_a$1] = true;\n\t\tthis.name = name14;\n\t\tthis.cause = cause;\n\t}\n\t/**\n\t* Checks if the given error is an AI SDK Error.\n\t* @param {unknown} error - The error to check.\n\t* @returns {boolean} True if the error is an AI SDK Error, false otherwise.\n\t*/\n\tstatic isInstance(error) {\n\t\treturn _AISDKError.hasMarker(error, marker$1);\n\t}\n\tstatic hasMarker(error, marker15) {\n\t\tconst markerSymbol = Symbol.for(marker15);\n\t\treturn error != null && typeof error === \"object\" && markerSymbol in error && typeof error[markerSymbol] === \"boolean\" && error[markerSymbol] === true;\n\t}\n};\nvar name$1 = \"AI_APICallError\";\nvar marker2 = `vercel.ai.error.${name$1}`;\nvar symbol2 = Symbol.for(marker2);\nvar _a2;\nvar _b2;\nvar APICallError = class extends (_b2 = AISDKError, _a2 = symbol2, _b2) {\n\tconstructor({ message, url, requestBodyValues, statusCode, responseHeaders, responseBody, cause, isRetryable = statusCode != null && (statusCode === 408 || statusCode === 409 || statusCode === 429 || statusCode >= 500), data }) {\n\t\tsuper({\n\t\t\tname: name$1,\n\t\t\tmessage,\n\t\t\tcause\n\t\t});\n\t\tthis[_a2] = true;\n\t\tthis.url = url;\n\t\tthis.requestBodyValues = requestBodyValues;\n\t\tthis.statusCode = statusCode;\n\t\tthis.responseHeaders = responseHeaders;\n\t\tthis.responseBody = responseBody;\n\t\tthis.isRetryable = isRetryable;\n\t\tthis.data = data;\n\t}\n\tstatic isInstance(error) {\n\t\treturn AISDKError.hasMarker(error, marker2);\n\t}\n};\nvar name2 = \"AI_EmptyResponseBodyError\";\nvar marker3 = `vercel.ai.error.${name2}`;\nvar symbol3 = Symbol.for(marker3);\nvar _a3;\nvar _b3;\nvar EmptyResponseBodyError = class extends (_b3 = AISDKError, _a3 = symbol3, _b3) {\n\tconstructor({ message = \"Empty response body\" } = {}) {\n\t\tsuper({\n\t\t\tname: name2,\n\t\t\tmessage\n\t\t});\n\t\tthis[_a3] = true;\n\t}\n\tstatic isInstance(error) {\n\t\treturn AISDKError.hasMarker(error, marker3);\n\t}\n};\nfunction getErrorMessage$1(error) {\n\tif (error == null) return \"unknown error\";\n\tif (typeof error === \"string\") return error;\n\tif (error instanceof Error) return error.message;\n\treturn JSON.stringify(error);\n}\nvar name3 = \"AI_InvalidArgumentError\";\nvar marker4 = `vercel.ai.error.${name3}`;\nvar symbol4 = Symbol.for(marker4);\nvar _a4;\nvar _b4;\nvar InvalidArgumentError = class extends (_b4 = AISDKError, _a4 = symbol4, _b4) {\n\tconstructor({ message, cause, argument }) {\n\t\tsuper({\n\t\t\tname: name3,\n\t\t\tmessage,\n\t\t\tcause\n\t\t});\n\t\tthis[_a4] = true;\n\t\tthis.argument = argument;\n\t}\n\tstatic isInstance(error) {\n\t\treturn AISDKError.hasMarker(error, marker4);\n\t}\n};\nvar name4 = \"AI_InvalidPromptError\";\nvar marker5 = `vercel.ai.error.${name4}`;\nvar symbol5 = Symbol.for(marker5);\nvar _a5;\nvar _b5;\nvar InvalidPromptError = class extends (_b5 = AISDKError, _a5 = symbol5, _b5) {\n\tconstructor({ prompt, message, cause }) {\n\t\tsuper({\n\t\t\tname: name4,\n\t\t\tmessage: `Invalid prompt: ${message}`,\n\t\t\tcause\n\t\t});\n\t\tthis[_a5] = true;\n\t\tthis.prompt = prompt;\n\t}\n\tstatic isInstance(error) {\n\t\treturn AISDKError.hasMarker(error, marker5);\n\t}\n};\nvar name5 = \"AI_InvalidResponseDataError\";\nvar marker6 = `vercel.ai.error.${name5}`;\nvar symbol6 = Symbol.for(marker6);\nvar _a6;\nvar _b6;\nvar InvalidResponseDataError = class extends (_b6 = AISDKError, _a6 = symbol6, _b6) {\n\tconstructor({ data, message = `Invalid response data: ${JSON.stringify(data)}.` }) {\n\t\tsuper({\n\t\t\tname: name5,\n\t\t\tmessage\n\t\t});\n\t\tthis[_a6] = true;\n\t\tthis.data = data;\n\t}\n\tstatic isInstance(error) {\n\t\treturn AISDKError.hasMarker(error, marker6);\n\t}\n};\nvar name6 = \"AI_JSONParseError\";\nvar marker7 = `vercel.ai.error.${name6}`;\nvar symbol7 = Symbol.for(marker7);\nvar _a7;\nvar _b7;\nvar JSONParseError = class extends (_b7 = AISDKError, _a7 = symbol7, _b7) {\n\tconstructor({ text, cause }) {\n\t\tsuper({\n\t\t\tname: name6,\n\t\t\tmessage: `JSON parsing failed: Text: ${text}.\nError message: ${getErrorMessage$1(cause)}`,\n\t\t\tcause\n\t\t});\n\t\tthis[_a7] = true;\n\t\tthis.text = text;\n\t}\n\tstatic isInstance(error) {\n\t\treturn AISDKError.hasMarker(error, marker7);\n\t}\n};\nvar name7 = \"AI_LoadAPIKeyError\";\nvar marker8 = `vercel.ai.error.${name7}`;\nvar symbol8 = Symbol.for(marker8);\nvar _a8;\nvar _b8;\nvar LoadAPIKeyError = class extends (_b8 = AISDKError, _a8 = symbol8, _b8) {\n\tconstructor({ message }) {\n\t\tsuper({\n\t\t\tname: name7,\n\t\t\tmessage\n\t\t});\n\t\tthis[_a8] = true;\n\t}\n\tstatic isInstance(error) {\n\t\treturn AISDKError.hasMarker(error, marker8);\n\t}\n};\nvar name8 = \"AI_LoadSettingError\";\nvar marker9 = `vercel.ai.error.${name8}`;\nvar symbol9 = Symbol.for(marker9);\nvar _a9;\nvar _b9;\nvar LoadSettingError = class extends (_b9 = AISDKError, _a9 = symbol9, _b9) {\n\tconstructor({ message }) {\n\t\tsuper({\n\t\t\tname: name8,\n\t\t\tmessage\n\t\t});\n\t\tthis[_a9] = true;\n\t}\n\tstatic isInstance(error) {\n\t\treturn AISDKError.hasMarker(error, marker9);\n\t}\n};\nvar name9 = \"AI_NoContentGeneratedError\";\nvar marker10 = `vercel.ai.error.${name9}`;\nvar symbol10 = Symbol.for(marker10);\nvar _a10;\nvar _b10;\nvar NoContentGeneratedError = class extends (_b10 = AISDKError, _a10 = symbol10, _b10) {\n\tconstructor({ message = \"No content generated.\" } = {}) {\n\t\tsuper({\n\t\t\tname: name9,\n\t\t\tmessage\n\t\t});\n\t\tthis[_a10] = true;\n\t}\n\tstatic isInstance(error) {\n\t\treturn AISDKError.hasMarker(error, marker10);\n\t}\n};\nvar name10 = \"AI_NoSuchModelError\";\nvar marker11 = `vercel.ai.error.${name10}`;\nvar symbol11 = Symbol.for(marker11);\nvar _a11;\nvar _b11;\nvar NoSuchModelError = class extends (_b11 = AISDKError, _a11 = symbol11, _b11) {\n\tconstructor({ errorName = name10, modelId, modelType, message = `No such ${modelType}: ${modelId}` }) {\n\t\tsuper({\n\t\t\tname: errorName,\n\t\t\tmessage\n\t\t});\n\t\tthis[_a11] = true;\n\t\tthis.modelId = modelId;\n\t\tthis.modelType = modelType;\n\t}\n\tstatic isInstance(error) {\n\t\treturn AISDKError.hasMarker(error, marker11);\n\t}\n};\nvar name11 = \"AI_TooManyEmbeddingValuesForCallError\";\nvar marker12 = `vercel.ai.error.${name11}`;\nvar symbol12 = Symbol.for(marker12);\nvar _a12;\nvar _b12;\nvar TooManyEmbeddingValuesForCallError = class extends (_b12 = AISDKError, _a12 = symbol12, _b12) {\n\tconstructor(options) {\n\t\tsuper({\n\t\t\tname: name11,\n\t\t\tmessage: `Too many values for a single embedding call. The ${options.provider} model \"${options.modelId}\" can only embed up to ${options.maxEmbeddingsPerCall} values per call, but ${options.values.length} values were provided.`\n\t\t});\n\t\tthis[_a12] = true;\n\t\tthis.provider = options.provider;\n\t\tthis.modelId = options.modelId;\n\t\tthis.maxEmbeddingsPerCall = options.maxEmbeddingsPerCall;\n\t\tthis.values = options.values;\n\t}\n\tstatic isInstance(error) {\n\t\treturn AISDKError.hasMarker(error, marker12);\n\t}\n};\nvar name12 = \"AI_TypeValidationError\";\nvar marker13 = `vercel.ai.error.${name12}`;\nvar symbol13 = Symbol.for(marker13);\nvar _a13;\nvar _b13;\nvar TypeValidationError = class _TypeValidationError extends (_b13 = AISDKError, _a13 = symbol13, _b13) {\n\tconstructor({ value, cause }) {\n\t\tsuper({\n\t\t\tname: name12,\n\t\t\tmessage: `Type validation failed: Value: ${JSON.stringify(value)}.\nError message: ${getErrorMessage$1(cause)}`,\n\t\t\tcause\n\t\t});\n\t\tthis[_a13] = true;\n\t\tthis.value = value;\n\t}\n\tstatic isInstance(error) {\n\t\treturn AISDKError.hasMarker(error, marker13);\n\t}\n\t/**\n\t* Wraps an error into a TypeValidationError.\n\t* If the cause is already a TypeValidationError with the same value, it returns the cause.\n\t* Otherwise, it creates a new TypeValidationError.\n\t*\n\t* @param {Object} params - The parameters for wrapping the error.\n\t* @param {unknown} params.value - The value that failed validation.\n\t* @param {unknown} params.cause - The original error or cause of the validation failure.\n\t* @returns {TypeValidationError} A TypeValidationError instance.\n\t*/\n\tstatic wrap({ value, cause }) {\n\t\treturn _TypeValidationError.isInstance(cause) && cause.value === value ? cause : new _TypeValidationError({\n\t\t\tvalue,\n\t\t\tcause\n\t\t});\n\t}\n};\nvar name13 = \"AI_UnsupportedFunctionalityError\";\nvar marker14 = `vercel.ai.error.${name13}`;\nvar symbol14 = Symbol.for(marker14);\nvar _a14;\nvar _b14;\nvar UnsupportedFunctionalityError = class extends (_b14 = AISDKError, _a14 = symbol14, _b14) {\n\tconstructor({ functionality, message = `'${functionality}' functionality not supported.` }) {\n\t\tsuper({\n\t\t\tname: name13,\n\t\t\tmessage\n\t\t});\n\t\tthis[_a14] = true;\n\t\tthis.functionality = functionality;\n\t}\n\tstatic isInstance(error) {\n\t\treturn AISDKError.hasMarker(error, marker14);\n\t}\n};\nfunction isJSONValue(value) {\n\tif (value === null || typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\") return true;\n\tif (Array.isArray(value)) return value.every(isJSONValue);\n\tif (typeof value === \"object\") return Object.entries(value).every(([key, val]) => typeof key === \"string\" && isJSONValue(val));\n\treturn false;\n}\nfunction isJSONArray(value) {\n\treturn Array.isArray(value) && value.every(isJSONValue);\n}\nfunction isJSONObject(value) {\n\treturn value != null && typeof value === \"object\" && Object.entries(value).every(([key, val]) => typeof key === \"string\" && isJSONValue(val));\n}\n//#endregion\n//#region ../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/eventsource-parser/3.0.8/353c45c343d0acc1586e9cb9ff7be48ebf30a434bf7b8c9762d411b79278d167/node_modules/eventsource-parser/dist/index.js\nvar ParseError = class extends Error {\n\tconstructor(message, options) {\n\t\tsuper(message), this.name = \"ParseError\", this.type = options.type, this.field = options.field, this.value = options.value, this.line = options.line;\n\t}\n};\nconst LF = 10;\nconst CR = 13;\nconst SPACE = 32;\nfunction noop(_arg) {}\nfunction createParser(callbacks) {\n\tif (typeof callbacks == \"function\") throw new TypeError(\"`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?\");\n\tconst { onEvent = noop, onError = noop, onRetry = noop, onComment } = callbacks, pendingFragments = [];\n\tlet isFirstChunk = !0, id, data = \"\", dataLines = 0, eventType;\n\tfunction feed(chunk) {\n\t\tif (isFirstChunk && (isFirstChunk = !1, chunk.charCodeAt(0) === 239 && chunk.charCodeAt(1) === 187 && chunk.charCodeAt(2) === 191 && (chunk = chunk.slice(3))), pendingFragments.length === 0) {\n\t\t\tconst trailing2 = processLines(chunk);\n\t\t\ttrailing2 !== \"\" && pendingFragments.push(trailing2);\n\t\t\treturn;\n\t\t}\n\t\tif (chunk.indexOf(`\n`) === -1 && chunk.indexOf(\"\\r\") === -1) {\n\t\t\tpendingFragments.push(chunk);\n\t\t\treturn;\n\t\t}\n\t\tpendingFragments.push(chunk);\n\t\tconst input = pendingFragments.join(\"\");\n\t\tpendingFragments.length = 0;\n\t\tconst trailing = processLines(input);\n\t\ttrailing !== \"\" && pendingFragments.push(trailing);\n\t}\n\tfunction processLines(chunk) {\n\t\tlet searchIndex = 0;\n\t\tif (chunk.indexOf(\"\\r\") === -1) {\n\t\t\tlet lfIndex = chunk.indexOf(`\n`, searchIndex);\n\t\t\tfor (; lfIndex !== -1;) {\n\t\t\t\tif (searchIndex === lfIndex) {\n\t\t\t\t\tdataLines > 0 && onEvent({\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tevent: eventType,\n\t\t\t\t\t\tdata\n\t\t\t\t\t}), id = void 0, data = \"\", dataLines = 0, eventType = void 0, searchIndex = lfIndex + 1, lfIndex = chunk.indexOf(`\n`, searchIndex);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst firstCharCode = chunk.charCodeAt(searchIndex);\n\t\t\t\tif (isDataPrefix(chunk, searchIndex, firstCharCode)) {\n\t\t\t\t\tconst valueStart = chunk.charCodeAt(searchIndex + 5) === SPACE ? searchIndex + 6 : searchIndex + 5, value = chunk.slice(valueStart, lfIndex);\n\t\t\t\t\tif (dataLines === 0 && chunk.charCodeAt(lfIndex + 1) === LF) {\n\t\t\t\t\t\tonEvent({\n\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\tevent: eventType,\n\t\t\t\t\t\t\tdata: value\n\t\t\t\t\t\t}), id = void 0, data = \"\", eventType = void 0, searchIndex = lfIndex + 2, lfIndex = chunk.indexOf(`\n`, searchIndex);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tdata = dataLines === 0 ? value : `${data}\n${value}`, dataLines++;\n\t\t\t\t} else isEventPrefix(chunk, searchIndex, firstCharCode) ? eventType = chunk.slice(chunk.charCodeAt(searchIndex + 6) === SPACE ? searchIndex + 7 : searchIndex + 6, lfIndex) || void 0 : parseLine(chunk, searchIndex, lfIndex);\n\t\t\t\tsearchIndex = lfIndex + 1, lfIndex = chunk.indexOf(`\n`, searchIndex);\n\t\t\t}\n\t\t\treturn chunk.slice(searchIndex);\n\t\t}\n\t\tfor (; searchIndex < chunk.length;) {\n\t\t\tconst crIndex = chunk.indexOf(\"\\r\", searchIndex), lfIndex = chunk.indexOf(`\n`, searchIndex);\n\t\t\tlet lineEnd = -1;\n\t\t\tif (crIndex !== -1 && lfIndex !== -1 ? lineEnd = crIndex < lfIndex ? crIndex : lfIndex : crIndex !== -1 ? crIndex === chunk.length - 1 ? lineEnd = -1 : lineEnd = crIndex : lfIndex !== -1 && (lineEnd = lfIndex), lineEnd === -1) break;\n\t\t\tparseLine(chunk, searchIndex, lineEnd), searchIndex = lineEnd + 1, chunk.charCodeAt(searchIndex - 1) === CR && chunk.charCodeAt(searchIndex) === LF && searchIndex++;\n\t\t}\n\t\treturn chunk.slice(searchIndex);\n\t}\n\tfunction parseLine(chunk, start, end) {\n\t\tif (start === end) {\n\t\t\tdispatchEvent();\n\t\t\treturn;\n\t\t}\n\t\tconst firstCharCode = chunk.charCodeAt(start);\n\t\tif (isDataPrefix(chunk, start, firstCharCode)) {\n\t\t\tconst valueStart = chunk.charCodeAt(start + 5) === SPACE ? start + 6 : start + 5, value2 = chunk.slice(valueStart, end);\n\t\t\tdata = dataLines === 0 ? value2 : `${data}\n${value2}`, dataLines++;\n\t\t\treturn;\n\t\t}\n\t\tif (isEventPrefix(chunk, start, firstCharCode)) {\n\t\t\teventType = chunk.slice(chunk.charCodeAt(start + 6) === SPACE ? start + 7 : start + 6, end) || void 0;\n\t\t\treturn;\n\t\t}\n\t\tif (firstCharCode === 105 && chunk.charCodeAt(start + 1) === 100 && chunk.charCodeAt(start + 2) === 58) {\n\t\t\tconst value2 = chunk.slice(chunk.charCodeAt(start + 3) === SPACE ? start + 4 : start + 3, end);\n\t\t\tid = value2.includes(\"\\0\") ? void 0 : value2;\n\t\t\treturn;\n\t\t}\n\t\tif (firstCharCode === 58) {\n\t\t\tif (onComment) {\n\t\t\t\tconst line2 = chunk.slice(start, end);\n\t\t\t\tonComment(line2.slice(chunk.charCodeAt(start + 1) === SPACE ? 2 : 1));\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tconst line = chunk.slice(start, end), fieldSeparatorIndex = line.indexOf(\":\");\n\t\tif (fieldSeparatorIndex === -1) {\n\t\t\tprocessField(line, \"\", line);\n\t\t\treturn;\n\t\t}\n\t\tconst field = line.slice(0, fieldSeparatorIndex), offset = line.charCodeAt(fieldSeparatorIndex + 1) === SPACE ? 2 : 1;\n\t\tprocessField(field, line.slice(fieldSeparatorIndex + offset), line);\n\t}\n\tfunction processField(field, value, line) {\n\t\tswitch (field) {\n\t\t\tcase \"event\":\n\t\t\t\teventType = value || void 0;\n\t\t\t\tbreak;\n\t\t\tcase \"data\":\n\t\t\t\tdata = dataLines === 0 ? value : `${data}\n${value}`, dataLines++;\n\t\t\t\tbreak;\n\t\t\tcase \"id\":\n\t\t\t\tid = value.includes(\"\\0\") ? void 0 : value;\n\t\t\t\tbreak;\n\t\t\tcase \"retry\":\n\t\t\t\t/^\\d+$/.test(value) ? onRetry(parseInt(value, 10)) : onError(new ParseError(`Invalid \\`retry\\` value: \"${value}\"`, {\n\t\t\t\t\ttype: \"invalid-retry\",\n\t\t\t\t\tvalue,\n\t\t\t\t\tline\n\t\t\t\t}));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tonError(new ParseError(`Unknown field \"${field.length > 20 ? `${field.slice(0, 20)}\\u2026` : field}\"`, {\n\t\t\t\t\ttype: \"unknown-field\",\n\t\t\t\t\tfield,\n\t\t\t\t\tvalue,\n\t\t\t\t\tline\n\t\t\t\t}));\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tfunction dispatchEvent() {\n\t\tdataLines > 0 && onEvent({\n\t\t\tid,\n\t\t\tevent: eventType,\n\t\t\tdata\n\t\t}), id = void 0, data = \"\", dataLines = 0, eventType = void 0;\n\t}\n\tfunction reset(options = {}) {\n\t\tif (options.consume && pendingFragments.length > 0) {\n\t\t\tconst incompleteLine = pendingFragments.join(\"\");\n\t\t\tparseLine(incompleteLine, 0, incompleteLine.length);\n\t\t}\n\t\tisFirstChunk = !0, id = void 0, data = \"\", dataLines = 0, eventType = void 0, pendingFragments.length = 0;\n\t}\n\treturn {\n\t\tfeed,\n\t\treset\n\t};\n}\nfunction isDataPrefix(chunk, i, firstCharCode) {\n\treturn firstCharCode === 100 && chunk.charCodeAt(i + 1) === 97 && chunk.charCodeAt(i + 2) === 116 && chunk.charCodeAt(i + 3) === 97 && chunk.charCodeAt(i + 4) === 58;\n}\nfunction isEventPrefix(chunk, i, firstCharCode) {\n\treturn firstCharCode === 101 && chunk.charCodeAt(i + 1) === 118 && chunk.charCodeAt(i + 2) === 101 && chunk.charCodeAt(i + 3) === 110 && chunk.charCodeAt(i + 4) === 116 && chunk.charCodeAt(i + 5) === 58;\n}\n//#endregion\n//#region ../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/eventsource-parser/3.0.8/353c45c343d0acc1586e9cb9ff7be48ebf30a434bf7b8c9762d411b79278d167/node_modules/eventsource-parser/dist/stream.js\nvar EventSourceParserStream = class extends TransformStream {\n\tconstructor({ onError, onRetry, onComment } = {}) {\n\t\tlet parser;\n\t\tsuper({\n\t\t\tstart(controller) {\n\t\t\t\tparser = createParser({\n\t\t\t\t\tonEvent: (event) => {\n\t\t\t\t\t\tcontroller.enqueue(event);\n\t\t\t\t\t},\n\t\t\t\t\tonError(error) {\n\t\t\t\t\t\tonError === \"terminate\" ? controller.error(error) : typeof onError == \"function\" && onError(error);\n\t\t\t\t\t},\n\t\t\t\t\tonRetry,\n\t\t\t\t\tonComment\n\t\t\t\t});\n\t\t\t},\n\t\t\ttransform(chunk) {\n\t\t\t\tparser.feed(chunk);\n\t\t\t}\n\t\t});\n\t}\n};\n//#endregion\n//#region ../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/provider-utils/3.0.31/ec2b02e652373362f632ec2c411694343ca859aa4cde84046d95e39a09d5a1ac/node_modules/@ai-sdk/provider-utils/dist/index.mjs\nfunction combineHeaders(...headers) {\n\treturn headers.reduce((combinedHeaders, currentHeaders) => ({\n\t\t...combinedHeaders,\n\t\t...currentHeaders != null ? currentHeaders : {}\n\t}), {});\n}\nfunction convertAsyncIteratorToReadableStream(iterator) {\n\tlet cancelled = false;\n\treturn new ReadableStream({\n\t\t/**\n\t\t* Called when the consumer wants to pull more data from the stream.\n\t\t*\n\t\t* @param {ReadableStreamDefaultController<T>} controller - The controller to enqueue data into the stream.\n\t\t* @returns {Promise<void>}\n\t\t*/\n\t\tasync pull(controller) {\n\t\t\tif (cancelled) return;\n\t\t\ttry {\n\t\t\t\tconst { value, done } = await iterator.next();\n\t\t\t\tif (done) controller.close();\n\t\t\t\telse controller.enqueue(value);\n\t\t\t} catch (error) {\n\t\t\t\tcontroller.error(error);\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t* Called when the consumer cancels the stream.\n\t\t*/\n\t\tasync cancel(reason) {\n\t\t\tcancelled = true;\n\t\t\tif (iterator.return) try {\n\t\t\t\tawait iterator.return(reason);\n\t\t\t} catch (e) {}\n\t\t}\n\t});\n}\nasync function delay(delayInMs, options) {\n\tif (delayInMs == null) return Promise.resolve();\n\tconst signal = options == null ? void 0 : options.abortSignal;\n\treturn new Promise((resolve2, reject) => {\n\t\tif (signal == null ? void 0 : signal.aborted) {\n\t\t\treject(createAbortError());\n\t\t\treturn;\n\t\t}\n\t\tconst timeoutId = setTimeout(() => {\n\t\t\tcleanup();\n\t\t\tresolve2();\n\t\t}, delayInMs);\n\t\tconst cleanup = () => {\n\t\t\tclearTimeout(timeoutId);\n\t\t\tsignal?.removeEventListener(\"abort\", onAbort);\n\t\t};\n\t\tconst onAbort = () => {\n\t\t\tcleanup();\n\t\t\treject(createAbortError());\n\t\t};\n\t\tsignal?.addEventListener(\"abort\", onAbort);\n\t});\n}\nfunction createAbortError() {\n\treturn new DOMException(\"Delay was aborted\", \"AbortError\");\n}\nvar DelayedPromise = class {\n\tconstructor() {\n\t\tthis.status = { type: \"pending\" };\n\t\tthis._resolve = void 0;\n\t\tthis._reject = void 0;\n\t}\n\tget promise() {\n\t\tif (this._promise) return this._promise;\n\t\tthis._promise = new Promise((resolve2, reject) => {\n\t\t\tif (this.status.type === \"resolved\") resolve2(this.status.value);\n\t\t\telse if (this.status.type === \"rejected\") reject(this.status.error);\n\t\t\tthis._resolve = resolve2;\n\t\t\tthis._reject = reject;\n\t\t});\n\t\treturn this._promise;\n\t}\n\tresolve(value) {\n\t\tvar _a2;\n\t\tthis.status = {\n\t\t\ttype: \"resolved\",\n\t\t\tvalue\n\t\t};\n\t\tif (this._promise) (_a2 = this._resolve) == null || _a2.call(this, value);\n\t}\n\treject(error) {\n\t\tvar _a2;\n\t\tthis.status = {\n\t\t\ttype: \"rejected\",\n\t\t\terror\n\t\t};\n\t\tif (this._promise) (_a2 = this._reject) == null || _a2.call(this, error);\n\t}\n\tisResolved() {\n\t\treturn this.status.type === \"resolved\";\n\t}\n\tisRejected() {\n\t\treturn this.status.type === \"rejected\";\n\t}\n\tisPending() {\n\t\treturn this.status.type === \"pending\";\n\t}\n};\nfunction extractResponseHeaders(response) {\n\treturn Object.fromEntries([...response.headers]);\n}\nvar name = \"AI_DownloadError\";\nvar marker = `vercel.ai.error.${name}`;\nvar symbol = Symbol.for(marker);\nvar _a;\nvar _b;\nvar DownloadError = class extends (_b = AISDKError, _a = symbol, _b) {\n\tconstructor({ url, statusCode, statusText, cause, message = cause == null ? `Failed to download ${url}: ${statusCode} ${statusText}` : `Failed to download ${url}: ${cause}` }) {\n\t\tsuper({\n\t\t\tname,\n\t\t\tmessage,\n\t\t\tcause\n\t\t});\n\t\tthis[_a] = true;\n\t\tthis.url = url;\n\t\tthis.statusCode = statusCode;\n\t\tthis.statusText = statusText;\n\t}\n\tstatic isInstance(error) {\n\t\treturn AISDKError.hasMarker(error, marker);\n\t}\n};\nasync function cancelResponseBody(response) {\n\tvar _a2;\n\ttry {\n\t\tawait ((_a2 = response.body) == null ? void 0 : _a2.cancel());\n\t} catch (e) {}\n}\nfunction isBrowserRuntime(globalThisAny = globalThis) {\n\treturn globalThisAny.window != null;\n}\nfunction validateDownloadUrl(url) {\n\tlet parsed;\n\ttry {\n\t\tparsed = new URL(url);\n\t} catch (e) {\n\t\tthrow new DownloadError({\n\t\t\turl,\n\t\t\tmessage: `Invalid URL: ${url}`\n\t\t});\n\t}\n\tif (parsed.protocol === \"data:\") return;\n\tif (parsed.protocol !== \"http:\" && parsed.protocol !== \"https:\") throw new DownloadError({\n\t\turl,\n\t\tmessage: `URL scheme must be http, https, or data, got ${parsed.protocol}`\n\t});\n\tconst hostname = parsed.hostname.toLowerCase().replace(/\\.+$/, \"\");\n\tif (!hostname) throw new DownloadError({\n\t\turl,\n\t\tmessage: `URL must have a hostname`\n\t});\n\tif (hostname === \"localhost\" || hostname.endsWith(\".local\") || hostname.endsWith(\".localhost\")) throw new DownloadError({\n\t\turl,\n\t\tmessage: `URL with hostname ${hostname} is not allowed`\n\t});\n\tif (hostname.startsWith(\"[\") && hostname.endsWith(\"]\")) {\n\t\tif (isPrivateIPv6(hostname.slice(1, -1))) throw new DownloadError({\n\t\t\turl,\n\t\t\tmessage: `URL with IPv6 address ${hostname} is not allowed`\n\t\t});\n\t\treturn;\n\t}\n\tif (isIPv4(hostname)) {\n\t\tif (isPrivateIPv4(hostname)) throw new DownloadError({\n\t\t\turl,\n\t\t\tmessage: `URL with IP address ${hostname} is not allowed`\n\t\t});\n\t\treturn;\n\t}\n}\nfunction validateDownloadAddress({ address, family, hostname }) {\n\tif (family === 4 ? !isIPv4(address) || isPrivateIPv4(address) : family === 6 ? isPrivateIPv6(address) : true) throw new DownloadError({\n\t\turl: hostname,\n\t\tmessage: `Hostname ${hostname} resolved to disallowed IP address ${address}`\n\t});\n}\nfunction isIPv4(hostname) {\n\tconst parts = hostname.split(\".\");\n\tif (parts.length !== 4) return false;\n\treturn parts.every((part) => {\n\t\tconst num = Number(part);\n\t\treturn Number.isInteger(num) && num >= 0 && num <= 255 && String(num) === part;\n\t});\n}\nfunction isPrivateIPv4(ip) {\n\tconst [a, b, c] = ip.split(\".\").map(Number);\n\tif (a === 0) return true;\n\tif (a === 10) return true;\n\tif (a === 100 && b >= 64 && b <= 127) return true;\n\tif (a === 127) return true;\n\tif (a === 169 && b === 254) return true;\n\tif (a === 172 && b >= 16 && b <= 31) return true;\n\tif (a === 192 && b === 0 && c === 0) return true;\n\tif (a === 192 && b === 168) return true;\n\tif (a === 198 && (b === 18 || b === 19)) return true;\n\tif (a >= 240) return true;\n\treturn false;\n}\nfunction parseIPv6(ip) {\n\tlet address = ip.toLowerCase();\n\tconst zoneIndex = address.indexOf(\"%\");\n\tif (zoneIndex !== -1) address = address.slice(0, zoneIndex);\n\tconst halves = address.split(\"::\");\n\tif (halves.length > 2) return null;\n\tconst toGroups = (segment) => {\n\t\tif (segment === \"\") return [];\n\t\tconst groups = [];\n\t\tconst parts = segment.split(\":\");\n\t\tfor (let i = 0; i < parts.length; i++) {\n\t\t\tconst part = parts[i];\n\t\t\tif (part.includes(\".\")) {\n\t\t\t\tif (i !== parts.length - 1 || !isIPv4(part)) return null;\n\t\t\t\tconst [a, b, c, d] = part.split(\".\").map(Number);\n\t\t\t\tgroups.push(a << 8 | b, c << 8 | d);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (!/^[0-9a-f]{1,4}$/.test(part)) return null;\n\t\t\tgroups.push(parseInt(part, 16));\n\t\t}\n\t\treturn groups;\n\t};\n\tconst head = toGroups(halves[0]);\n\tif (head === null) return null;\n\tif (halves.length === 2) {\n\t\tconst tail = toGroups(halves[1]);\n\t\tif (tail === null) return null;\n\t\tconst fill = 8 - head.length - tail.length;\n\t\tif (fill < 0) return null;\n\t\treturn [\n\t\t\t...head,\n\t\t\t...new Array(fill).fill(0),\n\t\t\t...tail\n\t\t];\n\t}\n\treturn head.length === 8 ? head : null;\n}\nfunction isPrivateIPv6(ip) {\n\tconst groups = parseIPv6(ip);\n\tif (groups === null) return true;\n\tconst topZero = (count) => groups.slice(0, count).every((group) => group === 0);\n\tif (topZero(7) && (groups[7] === 0 || groups[7] === 1)) return true;\n\tif ((groups[0] & 65024) === 64512) return true;\n\tif ((groups[0] & 65472) === 65152) return true;\n\tif ((groups[0] & 65472) === 65216) return true;\n\tif ((groups[0] & 65280) === 65280) return true;\n\tif (topZero(6) || topZero(5) && groups[5] === 65535 || topZero(4) && groups[4] === 65535 && groups[5] === 0 || groups[0] === 100 && groups[1] === 65435 && groups[2] === 0 && groups[3] === 0 && groups[4] === 0 && groups[5] === 0 || groups[0] === 100 && groups[1] === 65435 && groups[2] === 1) return isPrivateIPv4(`${groups[6] >> 8 & 255}.${groups[6] & 255}.${groups[7] >> 8 & 255}.${groups[7] & 255}`);\n\treturn false;\n}\nfunction createSafeLookup(lookup) {\n\treturn ((hostname, options, callback) => {\n\t\tlookup(hostname, {\n\t\t\t...options,\n\t\t\tall: true\n\t\t}, (error, addresses) => {\n\t\t\tif (error) {\n\t\t\t\tcallback(error);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tconst [firstAddress] = addresses;\n\t\t\t\tif (firstAddress == null) throw new Error(`Hostname ${hostname} did not resolve to an address`);\n\t\t\t\tfor (const { address, family } of addresses) validateDownloadAddress({\n\t\t\t\t\taddress,\n\t\t\t\t\tfamily,\n\t\t\t\t\thostname\n\t\t\t\t});\n\t\t\t\tif (options.all === true) callback(null, addresses);\n\t\t\t\telse callback(null, firstAddress.address, firstAddress.family);\n\t\t\t} catch (error2) {\n\t\t\t\tcallback(error2 instanceof Error ? error2 : new Error(String(error2)));\n\t\t\t}\n\t\t});\n\t});\n}\nvar safeNodeFetchPromise;\nvar initialGlobalFetch = globalThis.fetch;\nvar initialGlobalFetchIsNodeDefault = isNodeDefaultFetch(initialGlobalFetch);\nfunction isNodeRuntime() {\n\tvar _a2, _b2;\n\tconst runtimeProcess = globalThis.process;\n\treturn ((_a2 = runtimeProcess == null ? void 0 : runtimeProcess.release) == null ? void 0 : _a2.name) === \"node\" && ((_b2 = runtimeProcess.versions) == null ? void 0 : _b2.bun) == null;\n}\nasync function getDefaultDownloadFetch() {\n\tif (!isNodeRuntime() || !initialGlobalFetchIsNodeDefault || globalThis.fetch !== initialGlobalFetch) return globalThis.fetch;\n\treturn safeNodeFetchPromise != null ? safeNodeFetchPromise : safeNodeFetchPromise = createSafeNodeFetch();\n}\nfunction isNodeDefaultFetch(fetch) {\n\tconst source = Function.prototype.toString.call(fetch);\n\treturn source.includes(\"internal/deps/undici\") || source.includes(\"lazy loading of undici\");\n}\nasync function createSafeNodeFetch() {\n\tconst [{ createRequire }, { lookup }] = await Promise.all([loadNodeModule(\"node:module\"), loadNodeModule(\"node:dns\")]);\n\tconst { Agent, fetch } = createRequire(getCurrentModulePath())(\"undici\");\n\tconst dispatcher = new Agent({ connect: { lookup: createSafeLookup(lookup) } });\n\treturn ((input, init) => fetch(input, {\n\t\t...init,\n\t\tdispatcher\n\t}));\n}\nasync function loadNodeModule(id) {\n\tvar _a2;\n\tconst processWithBuiltins = globalThis.process;\n\tconst builtinModule = (_a2 = processWithBuiltins == null ? void 0 : processWithBuiltins.getBuiltinModule) == null ? void 0 : _a2.call(processWithBuiltins, id);\n\treturn builtinModule == null ? await importNodeModule(id) : builtinModule;\n}\nfunction importNodeModule(id) {\n\treturn import(id);\n}\nfunction getCurrentModulePath() {\n\tconst originalPrepareStackTrace = Error.prepareStackTrace;\n\ttry {\n\t\tError.prepareStackTrace = (_error, callSites) => callSites;\n\t\tconst error = /* @__PURE__ */ new Error(\"Capture current module path\");\n\t\tError.captureStackTrace(error, getCurrentModulePath);\n\t\tconst [caller] = error.stack;\n\t\tconst fileName = caller == null ? void 0 : caller.getFileName();\n\t\tif (fileName == null) throw new Error(\"Unable to determine the current module path\");\n\t\treturn fileName;\n\t} finally {\n\t\tError.prepareStackTrace = originalPrepareStackTrace;\n\t}\n}\nvar MAX_DOWNLOAD_REDIRECTS = 10;\nasync function fetchWithValidatedRedirects({ url, headers, abortSignal, maxRedirects = MAX_DOWNLOAD_REDIRECTS }) {\n\tconst baseInit = { signal: abortSignal };\n\tif (headers !== void 0) baseInit.headers = headers;\n\tlet currentUrl = url;\n\tfor (let redirectCount = 0; redirectCount <= maxRedirects; redirectCount++) {\n\t\tvalidateDownloadUrl(currentUrl);\n\t\tconst fetch = await getDefaultDownloadFetch();\n\t\tconst response = await fetch(currentUrl, {\n\t\t\t...baseInit,\n\t\t\tredirect: \"manual\"\n\t\t});\n\t\tif (response.type === \"opaqueredirect\") {\n\t\t\tif (!isBrowserRuntime()) throw new DownloadError({\n\t\t\t\turl,\n\t\t\t\tmessage: `Redirect from ${currentUrl} could not be validated and was blocked`\n\t\t\t});\n\t\t\treturn await fetch(currentUrl, {\n\t\t\t\t...baseInit,\n\t\t\t\tredirect: \"follow\"\n\t\t\t});\n\t\t}\n\t\tconst location = response.headers.get(\"location\");\n\t\tif (response.status >= 300 && response.status < 400 && location) {\n\t\t\tawait cancelResponseBody(response);\n\t\t\tcurrentUrl = new URL(location, currentUrl).toString();\n\t\t\tcontinue;\n\t\t}\n\t\treturn response;\n\t}\n\tthrow new DownloadError({\n\t\turl,\n\t\tmessage: `Too many redirects (max ${maxRedirects})`\n\t});\n}\nvar DEFAULT_MAX_DOWNLOAD_SIZE = 2 * 1024 * 1024 * 1024;\nasync function readResponseWithSizeLimit({ response, url, maxBytes = DEFAULT_MAX_DOWNLOAD_SIZE }) {\n\tconst contentLength = response.headers.get(\"content-length\");\n\tif (contentLength != null) {\n\t\tconst length = parseInt(contentLength, 10);\n\t\tif (!isNaN(length) && length > maxBytes) {\n\t\t\tawait cancelResponseBody(response);\n\t\t\tthrow new DownloadError({\n\t\t\t\turl,\n\t\t\t\tmessage: `Download of ${url} exceeded maximum size of ${maxBytes} bytes (Content-Length: ${length}).`\n\t\t\t});\n\t\t}\n\t}\n\tconst body = response.body;\n\tif (body == null) return /* @__PURE__ */ new Uint8Array(0);\n\tconst reader = body.getReader();\n\tconst chunks = [];\n\tlet totalBytes = 0;\n\ttry {\n\t\twhile (true) {\n\t\t\tconst { done, value } = await reader.read();\n\t\t\tif (done) break;\n\t\t\ttotalBytes += value.length;\n\t\t\tif (totalBytes > maxBytes) throw new DownloadError({\n\t\t\t\turl,\n\t\t\t\tmessage: `Download of ${url} exceeded maximum size of ${maxBytes} bytes.`\n\t\t\t});\n\t\t\tchunks.push(value);\n\t\t}\n\t} finally {\n\t\ttry {\n\t\t\tawait reader.cancel();\n\t\t} finally {\n\t\t\treader.releaseLock();\n\t\t}\n\t}\n\tconst result = new Uint8Array(totalBytes);\n\tlet offset = 0;\n\tfor (const chunk of chunks) {\n\t\tresult.set(chunk, offset);\n\t\toffset += chunk.length;\n\t}\n\treturn result;\n}\nvar createIdGenerator = ({ prefix, size = 16, alphabet = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\", separator = \"-\" } = {}) => {\n\tconst generator = () => {\n\t\tconst alphabetLength = alphabet.length;\n\t\tconst chars = new Array(size);\n\t\tfor (let i = 0; i < size; i++) chars[i] = alphabet[Math.random() * alphabetLength | 0];\n\t\treturn chars.join(\"\");\n\t};\n\tif (prefix == null) return generator;\n\tif (alphabet.includes(separator)) throw new InvalidArgumentError({\n\t\targument: \"separator\",\n\t\tmessage: `The separator \"${separator}\" must not be part of the alphabet \"${alphabet}\".`\n\t});\n\treturn () => `${prefix}${separator}${generator()}`;\n};\nvar generateId = createIdGenerator();\nfunction getErrorMessage(error) {\n\tif (error == null) return \"unknown error\";\n\tif (typeof error === \"string\") return error;\n\tif (error instanceof Error) return error.message;\n\treturn JSON.stringify(error);\n}\nfunction isAbortError(error) {\n\treturn (error instanceof Error || error instanceof DOMException) && (error.name === \"AbortError\" || error.name === \"ResponseAborted\" || error.name === \"TimeoutError\");\n}\nvar FETCH_FAILED_ERROR_MESSAGES = [\"fetch failed\", \"failed to fetch\"];\nfunction handleFetchError({ error, url, requestBodyValues }) {\n\tif (isAbortError(error)) return error;\n\tif (error instanceof TypeError && FETCH_FAILED_ERROR_MESSAGES.includes(error.message.toLowerCase())) {\n\t\tconst cause = error.cause;\n\t\tif (cause != null) return new APICallError({\n\t\t\tmessage: `Cannot connect to API: ${cause.message}`,\n\t\t\tcause,\n\t\t\turl,\n\t\t\trequestBodyValues,\n\t\t\tisRetryable: true\n\t\t});\n\t}\n\treturn error;\n}\nfunction getRuntimeEnvironmentUserAgent(globalThisAny = globalThis) {\n\tvar _a2, _b2, _c;\n\tif (globalThisAny.window) return `runtime/browser`;\n\tif ((_a2 = globalThisAny.navigator) == null ? void 0 : _a2.userAgent) return `runtime/${globalThisAny.navigator.userAgent.toLowerCase()}`;\n\tif ((_c = (_b2 = globalThisAny.process) == null ? void 0 : _b2.versions) == null ? void 0 : _c.node) return `runtime/node.js/${globalThisAny.process.version.substring(0)}`;\n\tif (globalThisAny.EdgeRuntime) return `runtime/vercel-edge`;\n\treturn \"runtime/unknown\";\n}\nfunction normalizeHeaders(headers) {\n\tif (headers == null) return {};\n\tconst normalized = {};\n\tif (headers instanceof Headers) headers.forEach((value, key) => {\n\t\tnormalized[key.toLowerCase()] = value;\n\t});\n\telse {\n\t\tif (!Array.isArray(headers)) headers = Object.entries(headers);\n\t\tfor (const [key, value] of headers) if (value != null) normalized[key.toLowerCase()] = value;\n\t}\n\treturn normalized;\n}\nfunction withUserAgentSuffix(headers, ...userAgentSuffixParts) {\n\tconst normalizedHeaders = new Headers(normalizeHeaders(headers));\n\tconst currentUserAgentHeader = normalizedHeaders.get(\"user-agent\") || \"\";\n\tnormalizedHeaders.set(\"user-agent\", [currentUserAgentHeader, ...userAgentSuffixParts].filter(Boolean).join(\" \"));\n\treturn Object.fromEntries(normalizedHeaders.entries());\n}\nvar VERSION = \"3.0.31\";\nvar getOriginalFetch = () => globalThis.fetch;\nvar getFromApi = async ({ url, headers = {}, successfulResponseHandler, failedResponseHandler, abortSignal, fetch = getOriginalFetch() }) => {\n\ttry {\n\t\tconst response = await fetch(url, {\n\t\t\tmethod: \"GET\",\n\t\t\theaders: withUserAgentSuffix(headers, `ai-sdk/provider-utils/${VERSION}`, getRuntimeEnvironmentUserAgent()),\n\t\t\tsignal: abortSignal\n\t\t});\n\t\tconst responseHeaders = extractResponseHeaders(response);\n\t\tif (!response.ok) {\n\t\t\tlet errorInformation;\n\t\t\ttry {\n\t\t\t\terrorInformation = await failedResponseHandler({\n\t\t\t\t\tresponse,\n\t\t\t\t\turl,\n\t\t\t\t\trequestBodyValues: {}\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tif (isAbortError(error) || APICallError.isInstance(error)) throw error;\n\t\t\t\tthrow new APICallError({\n\t\t\t\t\tmessage: \"Failed to process error response\",\n\t\t\t\t\tcause: error,\n\t\t\t\t\tstatusCode: response.status,\n\t\t\t\t\turl,\n\t\t\t\t\tresponseHeaders,\n\t\t\t\t\trequestBodyValues: {}\n\t\t\t\t});\n\t\t\t}\n\t\t\tthrow errorInformation.value;\n\t\t}\n\t\ttry {\n\t\t\treturn await successfulResponseHandler({\n\t\t\t\tresponse,\n\t\t\t\turl,\n\t\t\t\trequestBodyValues: {}\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tif (error instanceof Error) {\n\t\t\t\tif (isAbortError(error) || APICallError.isInstance(error)) throw error;\n\t\t\t}\n\t\t\tthrow new APICallError({\n\t\t\t\tmessage: \"Failed to process successful response\",\n\t\t\t\tcause: error,\n\t\t\t\tstatusCode: response.status,\n\t\t\t\turl,\n\t\t\t\tresponseHeaders,\n\t\t\t\trequestBodyValues: {}\n\t\t\t});\n\t\t}\n\t} catch (error) {\n\t\tthrow handleFetchError({\n\t\t\terror,\n\t\t\turl,\n\t\t\trequestBodyValues: {}\n\t\t});\n\t}\n};\nfunction isUrlSupported({ mediaType, url, supportedUrls }) {\n\turl = url.toLowerCase();\n\tmediaType = mediaType.toLowerCase();\n\treturn Object.entries(supportedUrls).map(([key, value]) => {\n\t\tconst mediaType2 = key.toLowerCase();\n\t\treturn mediaType2 === \"*\" || mediaType2 === \"*/*\" ? {\n\t\t\tmediaTypePrefix: \"\",\n\t\t\tregexes: value\n\t\t} : {\n\t\t\tmediaTypePrefix: mediaType2.replace(/\\*/, \"\"),\n\t\t\tregexes: value\n\t\t};\n\t}).filter(({ mediaTypePrefix }) => mediaType.startsWith(mediaTypePrefix)).flatMap(({ regexes }) => regexes).some((pattern) => pattern.test(url));\n}\nfunction loadOptionalSetting({ settingValue, environmentVariableName }) {\n\tif (typeof settingValue === \"string\") return settingValue;\n\tif (settingValue != null || typeof process === \"undefined\") return;\n\tsettingValue = process.env[environmentVariableName];\n\tif (settingValue == null || typeof settingValue !== \"string\") return;\n\treturn settingValue;\n}\nvar suspectProtoRx = /\"(?:_|\\\\u005[Ff])(?:_|\\\\u005[Ff])(?:p|\\\\u0070)(?:r|\\\\u0072)(?:o|\\\\u006[Ff])(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:_|\\\\u005[Ff])(?:_|\\\\u005[Ff])\"\\s*:/;\nvar suspectConstructorRx = /\"(?:c|\\\\u0063)(?:o|\\\\u006[Ff])(?:n|\\\\u006[Ee])(?:s|\\\\u0073)(?:t|\\\\u0074)(?:r|\\\\u0072)(?:u|\\\\u0075)(?:c|\\\\u0063)(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:r|\\\\u0072)\"\\s*:/;\nfunction _parse(text) {\n\tconst obj = JSON.parse(text);\n\tif (obj === null || typeof obj !== \"object\") return obj;\n\tif (suspectProtoRx.test(text) === false && suspectConstructorRx.test(text) === false) return obj;\n\treturn filter(obj);\n}\nfunction filter(obj) {\n\tlet next = [obj];\n\twhile (next.length) {\n\t\tconst nodes = next;\n\t\tnext = [];\n\t\tfor (const node of nodes) {\n\t\t\tif (Object.prototype.hasOwnProperty.call(node, \"__proto__\")) throw new SyntaxError(\"Object contains forbidden prototype property\");\n\t\t\tif (Object.prototype.hasOwnProperty.call(node, \"constructor\") && node.constructor !== null && typeof node.constructor === \"object\" && Object.prototype.hasOwnProperty.call(node.constructor, \"prototype\")) throw new SyntaxError(\"Object contains forbidden prototype property\");\n\t\t\tfor (const key in node) {\n\t\t\t\tconst value = node[key];\n\t\t\t\tif (value && typeof value === \"object\") next.push(value);\n\t\t\t}\n\t\t}\n\t}\n\treturn obj;\n}\nfunction secureJsonParse(text) {\n\tconst { stackTraceLimit } = Error;\n\ttry {\n\t\tError.stackTraceLimit = 0;\n\t} catch (e) {\n\t\treturn _parse(text);\n\t}\n\ttry {\n\t\treturn _parse(text);\n\t} finally {\n\t\tError.stackTraceLimit = stackTraceLimit;\n\t}\n}\nvar validatorSymbol = /* @__PURE__ */ Symbol.for(\"vercel.ai.validator\");\nfunction validator(validate) {\n\treturn {\n\t\t[validatorSymbol]: true,\n\t\tvalidate\n\t};\n}\nfunction isValidator(value) {\n\treturn typeof value === \"object\" && value !== null && validatorSymbol in value && value[validatorSymbol] === true && \"validate\" in value;\n}\nfunction lazyValidator(createValidator) {\n\tlet validator2;\n\treturn () => {\n\t\tif (validator2 == null) validator2 = createValidator();\n\t\treturn validator2;\n\t};\n}\nfunction asValidator(value) {\n\treturn isValidator(value) ? value : \"~standard\" in value ? standardSchemaValidator(value) : value();\n}\nfunction standardSchemaValidator(standardSchema) {\n\treturn validator(async (value) => {\n\t\tconst result = await standardSchema[\"~standard\"].validate(value);\n\t\treturn result.issues == null ? {\n\t\t\tsuccess: true,\n\t\t\tvalue: result.value\n\t\t} : {\n\t\t\tsuccess: false,\n\t\t\terror: new TypeValidationError({\n\t\t\t\tvalue,\n\t\t\t\tcause: result.issues\n\t\t\t})\n\t\t};\n\t});\n}\nasync function validateTypes({ value, schema }) {\n\tconst result = await safeValidateTypes({\n\t\tvalue,\n\t\tschema\n\t});\n\tif (!result.success) throw TypeValidationError.wrap({\n\t\tvalue,\n\t\tcause: result.error\n\t});\n\treturn result.value;\n}\nasync function safeValidateTypes({ value, schema }) {\n\tconst validator2 = asValidator(schema);\n\ttry {\n\t\tif (validator2.validate == null) return {\n\t\t\tsuccess: true,\n\t\t\tvalue,\n\t\t\trawValue: value\n\t\t};\n\t\tconst result = await validator2.validate(value);\n\t\tif (result.success) return {\n\t\t\tsuccess: true,\n\t\t\tvalue: result.value,\n\t\t\trawValue: value\n\t\t};\n\t\treturn {\n\t\t\tsuccess: false,\n\t\t\terror: TypeValidationError.wrap({\n\t\t\t\tvalue,\n\t\t\t\tcause: result.error\n\t\t\t}),\n\t\t\trawValue: value\n\t\t};\n\t} catch (error) {\n\t\treturn {\n\t\t\tsuccess: false,\n\t\t\terror: TypeValidationError.wrap({\n\t\t\t\tvalue,\n\t\t\t\tcause: error\n\t\t\t}),\n\t\t\trawValue: value\n\t\t};\n\t}\n}\nasync function parseJSON({ text, schema }) {\n\ttry {\n\t\tconst value = secureJsonParse(text);\n\t\tif (schema == null) return value;\n\t\treturn validateTypes({\n\t\t\tvalue,\n\t\t\tschema\n\t\t});\n\t} catch (error) {\n\t\tif (JSONParseError.isInstance(error) || TypeValidationError.isInstance(error)) throw error;\n\t\tthrow new JSONParseError({\n\t\t\ttext,\n\t\t\tcause: error\n\t\t});\n\t}\n}\nasync function safeParseJSON({ text, schema }) {\n\ttry {\n\t\tconst value = secureJsonParse(text);\n\t\tif (schema == null) return {\n\t\t\tsuccess: true,\n\t\t\tvalue,\n\t\t\trawValue: value\n\t\t};\n\t\treturn await safeValidateTypes({\n\t\t\tvalue,\n\t\t\tschema\n\t\t});\n\t} catch (error) {\n\t\treturn {\n\t\t\tsuccess: false,\n\t\t\terror: JSONParseError.isInstance(error) ? error : new JSONParseError({\n\t\t\t\ttext,\n\t\t\t\tcause: error\n\t\t\t}),\n\t\t\trawValue: void 0\n\t\t};\n\t}\n}\nfunction parseJsonEventStream({ stream, schema }) {\n\treturn stream.pipeThrough(new TextDecoderStream()).pipeThrough(new EventSourceParserStream()).pipeThrough(new TransformStream({ async transform({ data }, controller) {\n\t\tif (data === \"[DONE]\") return;\n\t\tcontroller.enqueue(await safeParseJSON({\n\t\t\ttext: data,\n\t\t\tschema\n\t\t}));\n\t} }));\n}\nvar getOriginalFetch2 = () => globalThis.fetch;\nvar postJsonToApi = async ({ url, headers, body, failedResponseHandler, successfulResponseHandler, abortSignal, fetch }) => postToApi({\n\turl,\n\theaders: {\n\t\t\"Content-Type\": \"application/json\",\n\t\t...headers\n\t},\n\tbody: {\n\t\tcontent: JSON.stringify(body),\n\t\tvalues: body\n\t},\n\tfailedResponseHandler,\n\tsuccessfulResponseHandler,\n\tabortSignal,\n\tfetch\n});\nvar postToApi = async ({ url, headers = {}, body, successfulResponseHandler, failedResponseHandler, abortSignal, fetch = getOriginalFetch2() }) => {\n\ttry {\n\t\tconst response = await fetch(url, {\n\t\t\tmethod: \"POST\",\n\t\t\theaders: withUserAgentSuffix(headers, `ai-sdk/provider-utils/${VERSION}`, getRuntimeEnvironmentUserAgent()),\n\t\t\tbody: body.content,\n\t\t\tsignal: abortSignal\n\t\t});\n\t\tconst responseHeaders = extractResponseHeaders(response);\n\t\tif (!response.ok) {\n\t\t\tlet errorInformation;\n\t\t\ttry {\n\t\t\t\terrorInformation = await failedResponseHandler({\n\t\t\t\t\tresponse,\n\t\t\t\t\turl,\n\t\t\t\t\trequestBodyValues: body.values\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tif (isAbortError(error) || APICallError.isInstance(error)) throw error;\n\t\t\t\tthrow new APICallError({\n\t\t\t\t\tmessage: \"Failed to process error response\",\n\t\t\t\t\tcause: error,\n\t\t\t\t\tstatusCode: response.status,\n\t\t\t\t\turl,\n\t\t\t\t\tresponseHeaders,\n\t\t\t\t\trequestBodyValues: body.values\n\t\t\t\t});\n\t\t\t}\n\t\t\tthrow errorInformation.value;\n\t\t}\n\t\ttry {\n\t\t\treturn await successfulResponseHandler({\n\t\t\t\tresponse,\n\t\t\t\turl,\n\t\t\t\trequestBodyValues: body.values\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tif (error instanceof Error) {\n\t\t\t\tif (isAbortError(error) || APICallError.isInstance(error)) throw error;\n\t\t\t}\n\t\t\tthrow new APICallError({\n\t\t\t\tmessage: \"Failed to process successful response\",\n\t\t\t\tcause: error,\n\t\t\t\tstatusCode: response.status,\n\t\t\t\turl,\n\t\t\t\tresponseHeaders,\n\t\t\t\trequestBodyValues: body.values\n\t\t\t});\n\t\t}\n\t} catch (error) {\n\t\tthrow handleFetchError({\n\t\t\terror,\n\t\t\turl,\n\t\t\trequestBodyValues: body.values\n\t\t});\n\t}\n};\nfunction tool(tool2) {\n\treturn tool2;\n}\nfunction dynamicTool(tool2) {\n\treturn {\n\t\t...tool2,\n\t\ttype: \"dynamic\"\n\t};\n}\nfunction createProviderDefinedToolFactoryWithOutputSchema({ id, name: name2, inputSchema, outputSchema }) {\n\treturn ({ execute, toModelOutput, onInputStart, onInputDelta, onInputAvailable, ...args }) => tool({\n\t\ttype: \"provider-defined\",\n\t\tid,\n\t\tname: name2,\n\t\targs,\n\t\tinputSchema,\n\t\toutputSchema,\n\t\texecute,\n\t\ttoModelOutput,\n\t\tonInputStart,\n\t\tonInputDelta,\n\t\tonInputAvailable\n\t});\n}\nasync function resolve(value) {\n\tif (typeof value === \"function\") value = value();\n\treturn Promise.resolve(value);\n}\nvar textDecoder = new TextDecoder();\nasync function readResponseBodyAsText({ response, url }) {\n\treturn textDecoder.decode(await readResponseWithSizeLimit({\n\t\tresponse,\n\t\turl\n\t}));\n}\nvar createJsonErrorResponseHandler = ({ errorSchema, errorToMessage, isRetryable }) => async ({ response, url, requestBodyValues }) => {\n\tconst responseBody = await readResponseBodyAsText({\n\t\tresponse,\n\t\turl\n\t});\n\tconst responseHeaders = extractResponseHeaders(response);\n\tif (responseBody.trim() === \"\") return {\n\t\tresponseHeaders,\n\t\tvalue: new APICallError({\n\t\t\tmessage: response.statusText,\n\t\t\turl,\n\t\t\trequestBodyValues,\n\t\t\tstatusCode: response.status,\n\t\t\tresponseHeaders,\n\t\t\tresponseBody,\n\t\t\tisRetryable: isRetryable == null ? void 0 : isRetryable(response)\n\t\t})\n\t};\n\ttry {\n\t\tconst parsedError = await parseJSON({\n\t\t\ttext: responseBody,\n\t\t\tschema: errorSchema\n\t\t});\n\t\treturn {\n\t\t\tresponseHeaders,\n\t\t\tvalue: new APICallError({\n\t\t\t\tmessage: errorToMessage(parsedError),\n\t\t\t\turl,\n\t\t\t\trequestBodyValues,\n\t\t\t\tstatusCode: response.status,\n\t\t\t\tresponseHeaders,\n\t\t\t\tresponseBody,\n\t\t\t\tdata: parsedError,\n\t\t\t\tisRetryable: isRetryable == null ? void 0 : isRetryable(response, parsedError)\n\t\t\t})\n\t\t};\n\t} catch (parseError) {\n\t\treturn {\n\t\t\tresponseHeaders,\n\t\t\tvalue: new APICallError({\n\t\t\t\tmessage: response.statusText,\n\t\t\t\turl,\n\t\t\t\trequestBodyValues,\n\t\t\t\tstatusCode: response.status,\n\t\t\t\tresponseHeaders,\n\t\t\t\tresponseBody,\n\t\t\t\tisRetryable: isRetryable == null ? void 0 : isRetryable(response)\n\t\t\t})\n\t\t};\n\t}\n};\nvar createEventSourceResponseHandler = (chunkSchema) => async ({ response }) => {\n\tconst responseHeaders = extractResponseHeaders(response);\n\tif (response.body == null) throw new EmptyResponseBodyError({});\n\treturn {\n\t\tresponseHeaders,\n\t\tvalue: parseJsonEventStream({\n\t\t\tstream: response.body,\n\t\t\tschema: chunkSchema\n\t\t})\n\t};\n};\nvar createJsonResponseHandler = (responseSchema) => async ({ response, url, requestBodyValues }) => {\n\tconst responseBody = await readResponseBodyAsText({\n\t\tresponse,\n\t\turl\n\t});\n\tconst parsedResult = await safeParseJSON({\n\t\ttext: responseBody,\n\t\tschema: responseSchema\n\t});\n\tconst responseHeaders = extractResponseHeaders(response);\n\tif (!parsedResult.success) throw new APICallError({\n\t\tmessage: \"Invalid JSON response\",\n\t\tcause: parsedResult.error,\n\t\tstatusCode: response.status,\n\t\tresponseHeaders,\n\t\tresponseBody,\n\t\turl,\n\t\trequestBodyValues\n\t});\n\treturn {\n\t\tresponseHeaders,\n\t\tvalue: parsedResult.value,\n\t\trawValue: parsedResult.rawValue\n\t};\n};\nvar schemaSymbol = /* @__PURE__ */ Symbol.for(\"vercel.ai.schema\");\nfunction lazySchema(createSchema) {\n\tlet schema;\n\treturn () => {\n\t\tif (schema == null) schema = createSchema();\n\t\treturn schema;\n\t};\n}\nfunction jsonSchema(jsonSchema2, { validate } = {}) {\n\treturn {\n\t\t[schemaSymbol]: true,\n\t\t_type: void 0,\n\t\t[validatorSymbol]: true,\n\t\tget jsonSchema() {\n\t\t\tif (typeof jsonSchema2 === \"function\") jsonSchema2 = jsonSchema2();\n\t\t\treturn jsonSchema2;\n\t\t},\n\t\tvalidate\n\t};\n}\nfunction addAdditionalPropertiesToJsonSchema(jsonSchema2) {\n\tif (jsonSchema2.type === \"object\") {\n\t\tjsonSchema2.additionalProperties = false;\n\t\tconst properties = jsonSchema2.properties;\n\t\tif (properties != null) for (const property in properties) properties[property] = addAdditionalPropertiesToJsonSchema(properties[property]);\n\t}\n\tif (jsonSchema2.type === \"array\" && jsonSchema2.items != null) if (Array.isArray(jsonSchema2.items)) jsonSchema2.items = jsonSchema2.items.map((item) => addAdditionalPropertiesToJsonSchema(item));\n\telse jsonSchema2.items = addAdditionalPropertiesToJsonSchema(jsonSchema2.items);\n\treturn jsonSchema2;\n}\nvar ignoreOverride = /* @__PURE__ */ Symbol(\"Let zodToJsonSchema decide on which parser to use\");\nvar defaultOptions = {\n\tname: void 0,\n\t$refStrategy: \"root\",\n\tbasePath: [\"#\"],\n\teffectStrategy: \"input\",\n\tpipeStrategy: \"all\",\n\tdateStrategy: \"format:date-time\",\n\tmapStrategy: \"entries\",\n\tremoveAdditionalStrategy: \"passthrough\",\n\tallowedAdditionalProperties: true,\n\trejectedAdditionalProperties: false,\n\tdefinitionPath: \"definitions\",\n\tstrictUnions: false,\n\tdefinitions: {},\n\terrorMessages: false,\n\tpatternStrategy: \"escape\",\n\tapplyRegexFlags: false,\n\temailStrategy: \"format:email\",\n\tbase64Strategy: \"contentEncoding:base64\",\n\tnameStrategy: \"ref\"\n};\nvar getDefaultOptions = (options) => typeof options === \"string\" ? {\n\t...defaultOptions,\n\tname: options\n} : {\n\t...defaultOptions,\n\t...options\n};\nfunction parseAnyDef() {\n\treturn {};\n}\nfunction parseArrayDef(def, refs) {\n\tvar _a2, _b2, _c;\n\tconst res = { type: \"array\" };\n\tif (((_a2 = def.type) == null ? void 0 : _a2._def) && ((_c = (_b2 = def.type) == null ? void 0 : _b2._def) == null ? void 0 : _c.typeName) !== ZodFirstPartyTypeKind.ZodAny) res.items = parseDef(def.type._def, {\n\t\t...refs,\n\t\tcurrentPath: [...refs.currentPath, \"items\"]\n\t});\n\tif (def.minLength) res.minItems = def.minLength.value;\n\tif (def.maxLength) res.maxItems = def.maxLength.value;\n\tif (def.exactLength) {\n\t\tres.minItems = def.exactLength.value;\n\t\tres.maxItems = def.exactLength.value;\n\t}\n\treturn res;\n}\nfunction parseBigintDef(def) {\n\tconst res = {\n\t\ttype: \"integer\",\n\t\tformat: \"int64\"\n\t};\n\tif (!def.checks) return res;\n\tfor (const check of def.checks) switch (check.kind) {\n\t\tcase \"min\":\n\t\t\tif (check.inclusive) res.minimum = check.value;\n\t\t\telse res.exclusiveMinimum = check.value;\n\t\t\tbreak;\n\t\tcase \"max\":\n\t\t\tif (check.inclusive) res.maximum = check.value;\n\t\t\telse res.exclusiveMaximum = check.value;\n\t\t\tbreak;\n\t\tcase \"multipleOf\":\n\t\t\tres.multipleOf = check.value;\n\t\t\tbreak;\n\t}\n\treturn res;\n}\nfunction parseBooleanDef() {\n\treturn { type: \"boolean\" };\n}\nfunction parseBrandedDef(_def, refs) {\n\treturn parseDef(_def.type._def, refs);\n}\nvar parseCatchDef = (def, refs) => {\n\treturn parseDef(def.innerType._def, refs);\n};\nfunction parseDateDef(def, refs, overrideDateStrategy) {\n\tconst strategy = overrideDateStrategy != null ? overrideDateStrategy : refs.dateStrategy;\n\tif (Array.isArray(strategy)) return { anyOf: strategy.map((item, i) => parseDateDef(def, refs, item)) };\n\tswitch (strategy) {\n\t\tcase \"string\":\n\t\tcase \"format:date-time\": return {\n\t\t\ttype: \"string\",\n\t\t\tformat: \"date-time\"\n\t\t};\n\t\tcase \"format:date\": return {\n\t\t\ttype: \"string\",\n\t\t\tformat: \"date\"\n\t\t};\n\t\tcase \"integer\": return integerDateParser(def);\n\t}\n}\nvar integerDateParser = (def) => {\n\tconst res = {\n\t\ttype: \"integer\",\n\t\tformat: \"unix-time\"\n\t};\n\tfor (const check of def.checks) switch (check.kind) {\n\t\tcase \"min\":\n\t\t\tres.minimum = check.value;\n\t\t\tbreak;\n\t\tcase \"max\":\n\t\t\tres.maximum = check.value;\n\t\t\tbreak;\n\t}\n\treturn res;\n};\nfunction parseDefaultDef(_def, refs) {\n\treturn {\n\t\t...parseDef(_def.innerType._def, refs),\n\t\tdefault: _def.defaultValue()\n\t};\n}\nfunction parseEffectsDef(_def, refs) {\n\treturn refs.effectStrategy === \"input\" ? parseDef(_def.schema._def, refs) : parseAnyDef();\n}\nfunction parseEnumDef(def) {\n\treturn {\n\t\ttype: \"string\",\n\t\tenum: Array.from(def.values)\n\t};\n}\nvar isJsonSchema7AllOfType = (type) => {\n\tif (\"type\" in type && type.type === \"string\") return false;\n\treturn \"allOf\" in type;\n};\nfunction parseIntersectionDef(def, refs) {\n\tconst allOf = [parseDef(def.left._def, {\n\t\t...refs,\n\t\tcurrentPath: [\n\t\t\t...refs.currentPath,\n\t\t\t\"allOf\",\n\t\t\t\"0\"\n\t\t]\n\t}), parseDef(def.right._def, {\n\t\t...refs,\n\t\tcurrentPath: [\n\t\t\t...refs.currentPath,\n\t\t\t\"allOf\",\n\t\t\t\"1\"\n\t\t]\n\t})].filter((x) => !!x);\n\tconst mergedAllOf = [];\n\tallOf.forEach((schema) => {\n\t\tif (isJsonSchema7AllOfType(schema)) mergedAllOf.push(...schema.allOf);\n\t\telse {\n\t\t\tlet nestedSchema = schema;\n\t\t\tif (\"additionalProperties\" in schema && schema.additionalProperties === false) {\n\t\t\t\tconst { additionalProperties, ...rest } = schema;\n\t\t\t\tnestedSchema = rest;\n\t\t\t}\n\t\t\tmergedAllOf.push(nestedSchema);\n\t\t}\n\t});\n\treturn mergedAllOf.length ? { allOf: mergedAllOf } : void 0;\n}\nfunction parseLiteralDef(def) {\n\tconst parsedType = typeof def.value;\n\tif (parsedType !== \"bigint\" && parsedType !== \"number\" && parsedType !== \"boolean\" && parsedType !== \"string\") return { type: Array.isArray(def.value) ? \"array\" : \"object\" };\n\treturn {\n\t\ttype: parsedType === \"bigint\" ? \"integer\" : parsedType,\n\t\tconst: def.value\n\t};\n}\nvar emojiRegex = void 0;\nvar zodPatterns = {\n\t/**\n\t* `c` was changed to `[cC]` to replicate /i flag\n\t*/\n\tcuid: /^[cC][^\\s-]{8,}$/,\n\tcuid2: /^[0-9a-z]+$/,\n\tulid: /^[0-9A-HJKMNP-TV-Z]{26}$/,\n\t/**\n\t* `a-z` was added to replicate /i flag\n\t*/\n\temail: /^(?!\\.)(?!.*\\.\\.)([a-zA-Z0-9_'+\\-\\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\\-]*\\.)+[a-zA-Z]{2,}$/,\n\t/**\n\t* Constructed a valid Unicode RegExp\n\t*\n\t* Lazily instantiate since this type of regex isn't supported\n\t* in all envs (e.g. React Native).\n\t*\n\t* See:\n\t* https://github.com/colinhacks/zod/issues/2433\n\t* Fix in Zod:\n\t* https://github.com/colinhacks/zod/commit/9340fd51e48576a75adc919bff65dbc4a5d4c99b\n\t*/\n\temoji: () => {\n\t\tif (emojiRegex === void 0) emojiRegex = RegExp(\"^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$\", \"u\");\n\t\treturn emojiRegex;\n\t},\n\t/**\n\t* Unused\n\t*/\n\tuuid: /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/,\n\t/**\n\t* Unused\n\t*/\n\tipv4: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,\n\tipv4Cidr: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/,\n\t/**\n\t* Unused\n\t*/\n\tipv6: /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,\n\tipv6Cidr: /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,\n\tbase64: /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,\n\tbase64url: /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,\n\tnanoid: /^[a-zA-Z0-9_-]{21}$/,\n\tjwt: /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/\n};\nfunction parseStringDef(def, refs) {\n\tconst res = { type: \"string\" };\n\tif (def.checks) for (const check of def.checks) switch (check.kind) {\n\t\tcase \"min\":\n\t\t\tres.minLength = typeof res.minLength === \"number\" ? Math.max(res.minLength, check.value) : check.value;\n\t\t\tbreak;\n\t\tcase \"max\":\n\t\t\tres.maxLength = typeof res.maxLength === \"number\" ? Math.min(res.maxLength, check.value) : check.value;\n\t\t\tbreak;\n\t\tcase \"email\":\n\t\t\tswitch (refs.emailStrategy) {\n\t\t\t\tcase \"format:email\":\n\t\t\t\t\taddFormat(res, \"email\", check.message, refs);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"format:idn-email\":\n\t\t\t\t\taddFormat(res, \"idn-email\", check.message, refs);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"pattern:zod\":\n\t\t\t\t\taddPattern(res, zodPatterns.email, check.message, refs);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase \"url\":\n\t\t\taddFormat(res, \"uri\", check.message, refs);\n\t\t\tbreak;\n\t\tcase \"uuid\":\n\t\t\taddFormat(res, \"uuid\", check.message, refs);\n\t\t\tbreak;\n\t\tcase \"regex\":\n\t\t\taddPattern(res, check.regex, check.message, refs);\n\t\t\tbreak;\n\t\tcase \"cuid\":\n\t\t\taddPattern(res, zodPatterns.cuid, check.message, refs);\n\t\t\tbreak;\n\t\tcase \"cuid2\":\n\t\t\taddPattern(res, zodPatterns.cuid2, check.message, refs);\n\t\t\tbreak;\n\t\tcase \"startsWith\":\n\t\t\taddPattern(res, RegExp(`^${escapeLiteralCheckValue(check.value, refs)}`), check.message, refs);\n\t\t\tbreak;\n\t\tcase \"endsWith\":\n\t\t\taddPattern(res, RegExp(`${escapeLiteralCheckValue(check.value, refs)}$`), check.message, refs);\n\t\t\tbreak;\n\t\tcase \"datetime\":\n\t\t\taddFormat(res, \"date-time\", check.message, refs);\n\t\t\tbreak;\n\t\tcase \"date\":\n\t\t\taddFormat(res, \"date\", check.message, refs);\n\t\t\tbreak;\n\t\tcase \"time\":\n\t\t\taddFormat(res, \"time\", check.message, refs);\n\t\t\tbreak;\n\t\tcase \"duration\":\n\t\t\taddFormat(res, \"duration\", check.message, refs);\n\t\t\tbreak;\n\t\tcase \"length\":\n\t\t\tres.minLength = typeof res.minLength === \"number\" ? Math.max(res.minLength, check.value) : check.value;\n\t\t\tres.maxLength = typeof res.maxLength === \"number\" ? Math.min(res.maxLength, check.value) : check.value;\n\t\t\tbreak;\n\t\tcase \"includes\":\n\t\t\taddPattern(res, RegExp(escapeLiteralCheckValue(check.value, refs)), check.message, refs);\n\t\t\tbreak;\n\t\tcase \"ip\":\n\t\t\tif (check.version !== \"v6\") addFormat(res, \"ipv4\", check.message, refs);\n\t\t\tif (check.version !== \"v4\") addFormat(res, \"ipv6\", check.message, refs);\n\t\t\tbreak;\n\t\tcase \"base64url\":\n\t\t\taddPattern(res, zodPatterns.base64url, check.message, refs);\n\t\t\tbreak;\n\t\tcase \"jwt\":\n\t\t\taddPattern(res, zodPatterns.jwt, check.message, refs);\n\t\t\tbreak;\n\t\tcase \"cidr\":\n\t\t\tif (check.version !== \"v6\") addPattern(res, zodPatterns.ipv4Cidr, check.message, refs);\n\t\t\tif (check.version !== \"v4\") addPattern(res, zodPatterns.ipv6Cidr, check.message, refs);\n\t\t\tbreak;\n\t\tcase \"emoji\":\n\t\t\taddPattern(res, zodPatterns.emoji(), check.message, refs);\n\t\t\tbreak;\n\t\tcase \"ulid\":\n\t\t\taddPattern(res, zodPatterns.ulid, check.message, refs);\n\t\t\tbreak;\n\t\tcase \"base64\":\n\t\t\tswitch (refs.base64Strategy) {\n\t\t\t\tcase \"format:binary\":\n\t\t\t\t\taddFormat(res, \"binary\", check.message, refs);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"contentEncoding:base64\":\n\t\t\t\t\tres.contentEncoding = \"base64\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"pattern:zod\":\n\t\t\t\t\taddPattern(res, zodPatterns.base64, check.message, refs);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase \"nanoid\": addPattern(res, zodPatterns.nanoid, check.message, refs);\n\t\tcase \"toLowerCase\":\n\t\tcase \"toUpperCase\":\n\t\tcase \"trim\": break;\n\t\tdefault:\n\t}\n\treturn res;\n}\nfunction escapeLiteralCheckValue(literal, refs) {\n\treturn refs.patternStrategy === \"escape\" ? escapeNonAlphaNumeric(literal) : literal;\n}\nvar ALPHA_NUMERIC = /* @__PURE__ */ new Set(\"ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789\");\nfunction escapeNonAlphaNumeric(source) {\n\tlet result = \"\";\n\tfor (let i = 0; i < source.length; i++) {\n\t\tif (!ALPHA_NUMERIC.has(source[i])) result += \"\\\\\";\n\t\tresult += source[i];\n\t}\n\treturn result;\n}\nfunction addFormat(schema, value, message, refs) {\n\tvar _a2;\n\tif (schema.format || ((_a2 = schema.anyOf) == null ? void 0 : _a2.some((x) => x.format))) {\n\t\tif (!schema.anyOf) schema.anyOf = [];\n\t\tif (schema.format) {\n\t\t\tschema.anyOf.push({ format: schema.format });\n\t\t\tdelete schema.format;\n\t\t}\n\t\tschema.anyOf.push({\n\t\t\tformat: value,\n\t\t\t...message && refs.errorMessages && { errorMessage: { format: message } }\n\t\t});\n\t} else schema.format = value;\n}\nfunction addPattern(schema, regex, message, refs) {\n\tvar _a2;\n\tif (schema.pattern || ((_a2 = schema.allOf) == null ? void 0 : _a2.some((x) => x.pattern))) {\n\t\tif (!schema.allOf) schema.allOf = [];\n\t\tif (schema.pattern) {\n\t\t\tschema.allOf.push({ pattern: schema.pattern });\n\t\t\tdelete schema.pattern;\n\t\t}\n\t\tschema.allOf.push({\n\t\t\tpattern: stringifyRegExpWithFlags(regex, refs),\n\t\t\t...message && refs.errorMessages && { errorMessage: { pattern: message } }\n\t\t});\n\t} else schema.pattern = stringifyRegExpWithFlags(regex, refs);\n}\nfunction stringifyRegExpWithFlags(regex, refs) {\n\tvar _a2;\n\tif (!refs.applyRegexFlags || !regex.flags) return regex.source;\n\tconst flags = {\n\t\ti: regex.flags.includes(\"i\"),\n\t\tm: regex.flags.includes(\"m\"),\n\t\ts: regex.flags.includes(\"s\")\n\t};\n\tconst source = flags.i ? regex.source.toLowerCase() : regex.source;\n\tlet pattern = \"\";\n\tlet isEscaped = false;\n\tlet inCharGroup = false;\n\tlet inCharRange = false;\n\tfor (let i = 0; i < source.length; i++) {\n\t\tif (isEscaped) {\n\t\t\tpattern += source[i];\n\t\t\tisEscaped = false;\n\t\t\tcontinue;\n\t\t}\n\t\tif (flags.i) {\n\t\t\tif (inCharGroup) {\n\t\t\t\tif (source[i].match(/[a-z]/)) {\n\t\t\t\t\tif (inCharRange) {\n\t\t\t\t\t\tpattern += source[i];\n\t\t\t\t\t\tpattern += `${source[i - 2]}-${source[i]}`.toUpperCase();\n\t\t\t\t\t\tinCharRange = false;\n\t\t\t\t\t} else if (source[i + 1] === \"-\" && ((_a2 = source[i + 2]) == null ? void 0 : _a2.match(/[a-z]/))) {\n\t\t\t\t\t\tpattern += source[i];\n\t\t\t\t\t\tinCharRange = true;\n\t\t\t\t\t} else pattern += `${source[i]}${source[i].toUpperCase()}`;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t} else if (source[i].match(/[a-z]/)) {\n\t\t\t\tpattern += `[${source[i]}${source[i].toUpperCase()}]`;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\t\tif (flags.m) {\n\t\t\tif (source[i] === \"^\") {\n\t\t\t\tpattern += `(^|(?<=[\\r\n]))`;\n\t\t\t\tcontinue;\n\t\t\t} else if (source[i] === \"$\") {\n\t\t\t\tpattern += `($|(?=[\\r\n]))`;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\t\tif (flags.s && source[i] === \".\") {\n\t\t\tpattern += inCharGroup ? `${source[i]}\\r\n` : `[${source[i]}\\r\n]`;\n\t\t\tcontinue;\n\t\t}\n\t\tpattern += source[i];\n\t\tif (source[i] === \"\\\\\") isEscaped = true;\n\t\telse if (inCharGroup && source[i] === \"]\") inCharGroup = false;\n\t\telse if (!inCharGroup && source[i] === \"[\") inCharGroup = true;\n\t}\n\ttry {\n\t\tnew RegExp(pattern);\n\t} catch (e) {\n\t\tconsole.warn(`Could not convert regex pattern at ${refs.currentPath.join(\"/\")} to a flag-independent form! Falling back to the flag-ignorant source`);\n\t\treturn regex.source;\n\t}\n\treturn pattern;\n}\nfunction parseRecordDef(def, refs) {\n\tvar _a2, _b2, _c, _d, _e, _f;\n\tconst schema = {\n\t\ttype: \"object\",\n\t\tadditionalProperties: (_a2 = parseDef(def.valueType._def, {\n\t\t\t...refs,\n\t\t\tcurrentPath: [...refs.currentPath, \"additionalProperties\"]\n\t\t})) != null ? _a2 : refs.allowedAdditionalProperties\n\t};\n\tif (((_b2 = def.keyType) == null ? void 0 : _b2._def.typeName) === ZodFirstPartyTypeKind.ZodString && ((_c = def.keyType._def.checks) == null ? void 0 : _c.length)) {\n\t\tconst { type, ...keyType } = parseStringDef(def.keyType._def, refs);\n\t\treturn {\n\t\t\t...schema,\n\t\t\tpropertyNames: keyType\n\t\t};\n\t} else if (((_d = def.keyType) == null ? void 0 : _d._def.typeName) === ZodFirstPartyTypeKind.ZodEnum) return {\n\t\t...schema,\n\t\tpropertyNames: { enum: def.keyType._def.values }\n\t};\n\telse if (((_e = def.keyType) == null ? void 0 : _e._def.typeName) === ZodFirstPartyTypeKind.ZodBranded && def.keyType._def.type._def.typeName === ZodFirstPartyTypeKind.ZodString && ((_f = def.keyType._def.type._def.checks) == null ? void 0 : _f.length)) {\n\t\tconst { type, ...keyType } = parseBrandedDef(def.keyType._def, refs);\n\t\treturn {\n\t\t\t...schema,\n\t\t\tpropertyNames: keyType\n\t\t};\n\t}\n\treturn schema;\n}\nfunction parseMapDef(def, refs) {\n\tif (refs.mapStrategy === \"record\") return parseRecordDef(def, refs);\n\treturn {\n\t\ttype: \"array\",\n\t\tmaxItems: 125,\n\t\titems: {\n\t\t\ttype: \"array\",\n\t\t\titems: [parseDef(def.keyType._def, {\n\t\t\t\t...refs,\n\t\t\t\tcurrentPath: [\n\t\t\t\t\t...refs.currentPath,\n\t\t\t\t\t\"items\",\n\t\t\t\t\t\"items\",\n\t\t\t\t\t\"0\"\n\t\t\t\t]\n\t\t\t}) || parseAnyDef(), parseDef(def.valueType._def, {\n\t\t\t\t...refs,\n\t\t\t\tcurrentPath: [\n\t\t\t\t\t...refs.currentPath,\n\t\t\t\t\t\"items\",\n\t\t\t\t\t\"items\",\n\t\t\t\t\t\"1\"\n\t\t\t\t]\n\t\t\t}) || parseAnyDef()],\n\t\t\tminItems: 2,\n\t\t\tmaxItems: 2\n\t\t}\n\t};\n}\nfunction parseNativeEnumDef(def) {\n\tconst object = def.values;\n\tconst actualValues = Object.keys(def.values).filter((key) => {\n\t\treturn typeof object[object[key]] !== \"number\";\n\t}).map((key) => object[key]);\n\tconst parsedTypes = Array.from(new Set(actualValues.map((values) => typeof values)));\n\treturn {\n\t\ttype: parsedTypes.length === 1 ? parsedTypes[0] === \"string\" ? \"string\" : \"number\" : [\"string\", \"number\"],\n\t\tenum: actualValues\n\t};\n}\nfunction parseNeverDef() {\n\treturn { not: parseAnyDef() };\n}\nfunction parseNullDef() {\n\treturn { type: \"null\" };\n}\nvar primitiveMappings = {\n\tZodString: \"string\",\n\tZodNumber: \"number\",\n\tZodBigInt: \"integer\",\n\tZodBoolean: \"boolean\",\n\tZodNull: \"null\"\n};\nfunction parseUnionDef(def, refs) {\n\tconst options = def.options instanceof Map ? Array.from(def.options.values()) : def.options;\n\tif (options.every((x) => x._def.typeName in primitiveMappings && (!x._def.checks || !x._def.checks.length))) {\n\t\tconst types = options.reduce((types2, x) => {\n\t\t\tconst type = primitiveMappings[x._def.typeName];\n\t\t\treturn type && !types2.includes(type) ? [...types2, type] : types2;\n\t\t}, []);\n\t\treturn { type: types.length > 1 ? types : types[0] };\n\t} else if (options.every((x) => x._def.typeName === \"ZodLiteral\" && !x.description)) {\n\t\tconst types = options.reduce((acc, x) => {\n\t\t\tconst type = typeof x._def.value;\n\t\t\tswitch (type) {\n\t\t\t\tcase \"string\":\n\t\t\t\tcase \"number\":\n\t\t\t\tcase \"boolean\": return [...acc, type];\n\t\t\t\tcase \"bigint\": return [...acc, \"integer\"];\n\t\t\t\tcase \"object\": if (x._def.value === null) return [...acc, \"null\"];\n\t\t\t\tdefault: return acc;\n\t\t\t}\n\t\t}, []);\n\t\tif (types.length === options.length) {\n\t\t\tconst uniqueTypes = types.filter((x, i, a) => a.indexOf(x) === i);\n\t\t\treturn {\n\t\t\t\ttype: uniqueTypes.length > 1 ? uniqueTypes : uniqueTypes[0],\n\t\t\t\tenum: options.reduce((acc, x) => {\n\t\t\t\t\treturn acc.includes(x._def.value) ? acc : [...acc, x._def.value];\n\t\t\t\t}, [])\n\t\t\t};\n\t\t}\n\t} else if (options.every((x) => x._def.typeName === \"ZodEnum\")) return {\n\t\ttype: \"string\",\n\t\tenum: options.reduce((acc, x) => [...acc, ...x._def.values.filter((x2) => !acc.includes(x2))], [])\n\t};\n\treturn asAnyOf(def, refs);\n}\nvar asAnyOf = (def, refs) => {\n\tconst anyOf = (def.options instanceof Map ? Array.from(def.options.values()) : def.options).map((x, i) => parseDef(x._def, {\n\t\t...refs,\n\t\tcurrentPath: [\n\t\t\t...refs.currentPath,\n\t\t\t\"anyOf\",\n\t\t\t`${i}`\n\t\t]\n\t})).filter((x) => !!x && (!refs.strictUnions || typeof x === \"object\" && Object.keys(x).length > 0));\n\treturn anyOf.length ? { anyOf } : void 0;\n};\nfunction parseNullableDef(def, refs) {\n\tif ([\n\t\t\"ZodString\",\n\t\t\"ZodNumber\",\n\t\t\"ZodBigInt\",\n\t\t\"ZodBoolean\",\n\t\t\"ZodNull\"\n\t].includes(def.innerType._def.typeName) && (!def.innerType._def.checks || !def.innerType._def.checks.length)) return { type: [primitiveMappings[def.innerType._def.typeName], \"null\"] };\n\tconst base = parseDef(def.innerType._def, {\n\t\t...refs,\n\t\tcurrentPath: [\n\t\t\t...refs.currentPath,\n\t\t\t\"anyOf\",\n\t\t\t\"0\"\n\t\t]\n\t});\n\treturn base && { anyOf: [base, { type: \"null\" }] };\n}\nfunction parseNumberDef(def) {\n\tconst res = { type: \"number\" };\n\tif (!def.checks) return res;\n\tfor (const check of def.checks) switch (check.kind) {\n\t\tcase \"int\":\n\t\t\tres.type = \"integer\";\n\t\t\tbreak;\n\t\tcase \"min\":\n\t\t\tif (check.inclusive) res.minimum = check.value;\n\t\t\telse res.exclusiveMinimum = check.value;\n\t\t\tbreak;\n\t\tcase \"max\":\n\t\t\tif (check.inclusive) res.maximum = check.value;\n\t\t\telse res.exclusiveMaximum = check.value;\n\t\t\tbreak;\n\t\tcase \"multipleOf\":\n\t\t\tres.multipleOf = check.value;\n\t\t\tbreak;\n\t}\n\treturn res;\n}\nfunction parseObjectDef(def, refs) {\n\tconst result = {\n\t\ttype: \"object\",\n\t\tproperties: {}\n\t};\n\tconst required = [];\n\tconst shape = def.shape();\n\tfor (const propName in shape) {\n\t\tlet propDef = shape[propName];\n\t\tif (propDef === void 0 || propDef._def === void 0) continue;\n\t\tconst propOptional = safeIsOptional(propDef);\n\t\tconst parsedDef = parseDef(propDef._def, {\n\t\t\t...refs,\n\t\t\tcurrentPath: [\n\t\t\t\t...refs.currentPath,\n\t\t\t\t\"properties\",\n\t\t\t\tpropName\n\t\t\t],\n\t\t\tpropertyPath: [\n\t\t\t\t...refs.currentPath,\n\t\t\t\t\"properties\",\n\t\t\t\tpropName\n\t\t\t]\n\t\t});\n\t\tif (parsedDef === void 0) continue;\n\t\tresult.properties[propName] = parsedDef;\n\t\tif (!propOptional) required.push(propName);\n\t}\n\tif (required.length) result.required = required;\n\tconst additionalProperties = decideAdditionalProperties(def, refs);\n\tif (additionalProperties !== void 0) result.additionalProperties = additionalProperties;\n\treturn result;\n}\nfunction decideAdditionalProperties(def, refs) {\n\tif (def.catchall._def.typeName !== \"ZodNever\") return parseDef(def.catchall._def, {\n\t\t...refs,\n\t\tcurrentPath: [...refs.currentPath, \"additionalProperties\"]\n\t});\n\tswitch (def.unknownKeys) {\n\t\tcase \"passthrough\": return refs.allowedAdditionalProperties;\n\t\tcase \"strict\": return refs.rejectedAdditionalProperties;\n\t\tcase \"strip\": return refs.removeAdditionalStrategy === \"strict\" ? refs.allowedAdditionalProperties : refs.rejectedAdditionalProperties;\n\t}\n}\nfunction safeIsOptional(schema) {\n\ttry {\n\t\treturn schema.isOptional();\n\t} catch (e) {\n\t\treturn true;\n\t}\n}\nvar parseOptionalDef = (def, refs) => {\n\tvar _a2;\n\tif (refs.currentPath.toString() === ((_a2 = refs.propertyPath) == null ? void 0 : _a2.toString())) return parseDef(def.innerType._def, refs);\n\tconst innerSchema = parseDef(def.innerType._def, {\n\t\t...refs,\n\t\tcurrentPath: [\n\t\t\t...refs.currentPath,\n\t\t\t\"anyOf\",\n\t\t\t\"1\"\n\t\t]\n\t});\n\treturn innerSchema ? { anyOf: [{ not: parseAnyDef() }, innerSchema] } : parseAnyDef();\n};\nvar parsePipelineDef = (def, refs) => {\n\tif (refs.pipeStrategy === \"input\") return parseDef(def.in._def, refs);\n\telse if (refs.pipeStrategy === \"output\") return parseDef(def.out._def, refs);\n\tconst a = parseDef(def.in._def, {\n\t\t...refs,\n\t\tcurrentPath: [\n\t\t\t...refs.currentPath,\n\t\t\t\"allOf\",\n\t\t\t\"0\"\n\t\t]\n\t});\n\treturn { allOf: [a, parseDef(def.out._def, {\n\t\t...refs,\n\t\tcurrentPath: [\n\t\t\t...refs.currentPath,\n\t\t\t\"allOf\",\n\t\t\ta ? \"1\" : \"0\"\n\t\t]\n\t})].filter((x) => x !== void 0) };\n};\nfunction parsePromiseDef(def, refs) {\n\treturn parseDef(def.type._def, refs);\n}\nfunction parseSetDef(def, refs) {\n\tconst schema = {\n\t\ttype: \"array\",\n\t\tuniqueItems: true,\n\t\titems: parseDef(def.valueType._def, {\n\t\t\t...refs,\n\t\t\tcurrentPath: [...refs.currentPath, \"items\"]\n\t\t})\n\t};\n\tif (def.minSize) schema.minItems = def.minSize.value;\n\tif (def.maxSize) schema.maxItems = def.maxSize.value;\n\treturn schema;\n}\nfunction parseTupleDef(def, refs) {\n\tif (def.rest) return {\n\t\ttype: \"array\",\n\t\tminItems: def.items.length,\n\t\titems: def.items.map((x, i) => parseDef(x._def, {\n\t\t\t...refs,\n\t\t\tcurrentPath: [\n\t\t\t\t...refs.currentPath,\n\t\t\t\t\"items\",\n\t\t\t\t`${i}`\n\t\t\t]\n\t\t})).reduce((acc, x) => x === void 0 ? acc : [...acc, x], []),\n\t\tadditionalItems: parseDef(def.rest._def, {\n\t\t\t...refs,\n\t\t\tcurrentPath: [...refs.currentPath, \"additionalItems\"]\n\t\t})\n\t};\n\telse return {\n\t\ttype: \"array\",\n\t\tminItems: def.items.length,\n\t\tmaxItems: def.items.length,\n\t\titems: def.items.map((x, i) => parseDef(x._def, {\n\t\t\t...refs,\n\t\t\tcurrentPath: [\n\t\t\t\t...refs.currentPath,\n\t\t\t\t\"items\",\n\t\t\t\t`${i}`\n\t\t\t]\n\t\t})).reduce((acc, x) => x === void 0 ? acc : [...acc, x], [])\n\t};\n}\nfunction parseUndefinedDef() {\n\treturn { not: parseAnyDef() };\n}\nfunction parseUnknownDef() {\n\treturn parseAnyDef();\n}\nvar parseReadonlyDef = (def, refs) => {\n\treturn parseDef(def.innerType._def, refs);\n};\nvar selectParser = (def, typeName, refs) => {\n\tswitch (typeName) {\n\t\tcase ZodFirstPartyTypeKind.ZodString: return parseStringDef(def, refs);\n\t\tcase ZodFirstPartyTypeKind.ZodNumber: return parseNumberDef(def);\n\t\tcase ZodFirstPartyTypeKind.ZodObject: return parseObjectDef(def, refs);\n\t\tcase ZodFirstPartyTypeKind.ZodBigInt: return parseBigintDef(def);\n\t\tcase ZodFirstPartyTypeKind.ZodBoolean: return parseBooleanDef();\n\t\tcase ZodFirstPartyTypeKind.ZodDate: return parseDateDef(def, refs);\n\t\tcase ZodFirstPartyTypeKind.ZodUndefined: return parseUndefinedDef();\n\t\tcase ZodFirstPartyTypeKind.ZodNull: return parseNullDef();\n\t\tcase ZodFirstPartyTypeKind.ZodArray: return parseArrayDef(def, refs);\n\t\tcase ZodFirstPartyTypeKind.ZodUnion:\n\t\tcase ZodFirstPartyTypeKind.ZodDiscriminatedUnion: return parseUnionDef(def, refs);\n\t\tcase ZodFirstPartyTypeKind.ZodIntersection: return parseIntersectionDef(def, refs);\n\t\tcase ZodFirstPartyTypeKind.ZodTuple: return parseTupleDef(def, refs);\n\t\tcase ZodFirstPartyTypeKind.ZodRecord: return parseRecordDef(def, refs);\n\t\tcase ZodFirstPartyTypeKind.ZodLiteral: return parseLiteralDef(def);\n\t\tcase ZodFirstPartyTypeKind.ZodEnum: return parseEnumDef(def);\n\t\tcase ZodFirstPartyTypeKind.ZodNativeEnum: return parseNativeEnumDef(def);\n\t\tcase ZodFirstPartyTypeKind.ZodNullable: return parseNullableDef(def, refs);\n\t\tcase ZodFirstPartyTypeKind.ZodOptional: return parseOptionalDef(def, refs);\n\t\tcase ZodFirstPartyTypeKind.ZodMap: return parseMapDef(def, refs);\n\t\tcase ZodFirstPartyTypeKind.ZodSet: return parseSetDef(def, refs);\n\t\tcase ZodFirstPartyTypeKind.ZodLazy: return () => def.getter()._def;\n\t\tcase ZodFirstPartyTypeKind.ZodPromise: return parsePromiseDef(def, refs);\n\t\tcase ZodFirstPartyTypeKind.ZodNaN:\n\t\tcase ZodFirstPartyTypeKind.ZodNever: return parseNeverDef();\n\t\tcase ZodFirstPartyTypeKind.ZodEffects: return parseEffectsDef(def, refs);\n\t\tcase ZodFirstPartyTypeKind.ZodAny: return parseAnyDef();\n\t\tcase ZodFirstPartyTypeKind.ZodUnknown: return parseUnknownDef();\n\t\tcase ZodFirstPartyTypeKind.ZodDefault: return parseDefaultDef(def, refs);\n\t\tcase ZodFirstPartyTypeKind.ZodBranded: return parseBrandedDef(def, refs);\n\t\tcase ZodFirstPartyTypeKind.ZodReadonly: return parseReadonlyDef(def, refs);\n\t\tcase ZodFirstPartyTypeKind.ZodCatch: return parseCatchDef(def, refs);\n\t\tcase ZodFirstPartyTypeKind.ZodPipeline: return parsePipelineDef(def, refs);\n\t\tcase ZodFirstPartyTypeKind.ZodFunction:\n\t\tcase ZodFirstPartyTypeKind.ZodVoid:\n\t\tcase ZodFirstPartyTypeKind.ZodSymbol: return;\n\t\tdefault: return /* @__PURE__ */ ((_) => void 0)(typeName);\n\t}\n};\nvar getRelativePath = (pathA, pathB) => {\n\tlet i = 0;\n\tfor (; i < pathA.length && i < pathB.length; i++) if (pathA[i] !== pathB[i]) break;\n\treturn [(pathA.length - i).toString(), ...pathB.slice(i)].join(\"/\");\n};\nfunction parseDef(def, refs, forceResolution = false) {\n\tvar _a2;\n\tconst seenItem = refs.seen.get(def);\n\tif (refs.override) {\n\t\tconst overrideResult = (_a2 = refs.override) == null ? void 0 : _a2.call(refs, def, refs, seenItem, forceResolution);\n\t\tif (overrideResult !== ignoreOverride) return overrideResult;\n\t}\n\tif (seenItem && !forceResolution) {\n\t\tconst seenSchema = get$ref(seenItem, refs);\n\t\tif (seenSchema !== void 0) return seenSchema;\n\t}\n\tconst newItem = {\n\t\tdef,\n\t\tpath: refs.currentPath,\n\t\tjsonSchema: void 0\n\t};\n\trefs.seen.set(def, newItem);\n\tconst jsonSchemaOrGetter = selectParser(def, def.typeName, refs);\n\tconst jsonSchema2 = typeof jsonSchemaOrGetter === \"function\" ? parseDef(jsonSchemaOrGetter(), refs) : jsonSchemaOrGetter;\n\tif (jsonSchema2) addMeta(def, refs, jsonSchema2);\n\tif (refs.postProcess) {\n\t\tconst postProcessResult = refs.postProcess(jsonSchema2, def, refs);\n\t\tnewItem.jsonSchema = jsonSchema2;\n\t\treturn postProcessResult;\n\t}\n\tnewItem.jsonSchema = jsonSchema2;\n\treturn jsonSchema2;\n}\nvar get$ref = (item, refs) => {\n\tswitch (refs.$refStrategy) {\n\t\tcase \"root\": return { $ref: item.path.join(\"/\") };\n\t\tcase \"relative\": return { $ref: getRelativePath(refs.currentPath, item.path) };\n\t\tcase \"none\":\n\t\tcase \"seen\":\n\t\t\tif (item.path.length < refs.currentPath.length && item.path.every((value, index) => refs.currentPath[index] === value)) {\n\t\t\t\tconsole.warn(`Recursive reference detected at ${refs.currentPath.join(\"/\")}! Defaulting to any`);\n\t\t\t\treturn parseAnyDef();\n\t\t\t}\n\t\t\treturn refs.$refStrategy === \"seen\" ? parseAnyDef() : void 0;\n\t}\n};\nvar addMeta = (def, refs, jsonSchema2) => {\n\tif (def.description) jsonSchema2.description = def.description;\n\treturn jsonSchema2;\n};\nvar getRefs = (options) => {\n\tconst _options = getDefaultOptions(options);\n\tconst currentPath = _options.name !== void 0 ? [\n\t\t..._options.basePath,\n\t\t_options.definitionPath,\n\t\t_options.name\n\t] : _options.basePath;\n\treturn {\n\t\t..._options,\n\t\tcurrentPath,\n\t\tpropertyPath: void 0,\n\t\tseen: new Map(Object.entries(_options.definitions).map(([name2, def]) => [def._def, {\n\t\t\tdef: def._def,\n\t\t\tpath: [\n\t\t\t\t..._options.basePath,\n\t\t\t\t_options.definitionPath,\n\t\t\t\tname2\n\t\t\t],\n\t\t\tjsonSchema: void 0\n\t\t}]))\n\t};\n};\nvar zodToJsonSchema = (schema, options) => {\n\tvar _a2;\n\tconst refs = getRefs(options);\n\tlet definitions = typeof options === \"object\" && options.definitions ? Object.entries(options.definitions).reduce((acc, [name3, schema2]) => {\n\t\tvar _a3;\n\t\treturn {\n\t\t\t...acc,\n\t\t\t[name3]: (_a3 = parseDef(schema2._def, {\n\t\t\t\t...refs,\n\t\t\t\tcurrentPath: [\n\t\t\t\t\t...refs.basePath,\n\t\t\t\t\trefs.definitionPath,\n\t\t\t\t\tname3\n\t\t\t\t]\n\t\t\t}, true)) != null ? _a3 : parseAnyDef()\n\t\t};\n\t}, {}) : void 0;\n\tconst name2 = typeof options === \"string\" ? options : (options == null ? void 0 : options.nameStrategy) === \"title\" ? void 0 : options == null ? void 0 : options.name;\n\tconst main = (_a2 = parseDef(schema._def, name2 === void 0 ? refs : {\n\t\t...refs,\n\t\tcurrentPath: [\n\t\t\t...refs.basePath,\n\t\t\trefs.definitionPath,\n\t\t\tname2\n\t\t]\n\t}, false)) != null ? _a2 : parseAnyDef();\n\tconst title = typeof options === \"object\" && options.name !== void 0 && options.nameStrategy === \"title\" ? options.name : void 0;\n\tif (title !== void 0) main.title = title;\n\tconst combined = name2 === void 0 ? definitions ? {\n\t\t...main,\n\t\t[refs.definitionPath]: definitions\n\t} : main : {\n\t\t$ref: [\n\t\t\t...refs.$refStrategy === \"relative\" ? [] : refs.basePath,\n\t\t\trefs.definitionPath,\n\t\t\tname2\n\t\t].join(\"/\"),\n\t\t[refs.definitionPath]: {\n\t\t\t...definitions,\n\t\t\t[name2]: main\n\t\t}\n\t};\n\tcombined.$schema = \"http://json-schema.org/draft-07/schema#\";\n\treturn combined;\n};\nvar zod_to_json_schema_default = zodToJsonSchema;\nfunction zod3Schema(zodSchema2, options) {\n\tvar _a2;\n\tconst useReferences = (_a2 = options == null ? void 0 : options.useReferences) != null ? _a2 : false;\n\treturn jsonSchema(() => zod_to_json_schema_default(zodSchema2, { $refStrategy: useReferences ? \"root\" : \"none\" }), { validate: async (value) => {\n\t\tconst result = await zodSchema2.safeParseAsync(value);\n\t\treturn result.success ? {\n\t\t\tsuccess: true,\n\t\t\tvalue: result.data\n\t\t} : {\n\t\t\tsuccess: false,\n\t\t\terror: result.error\n\t\t};\n\t} });\n}\nfunction zod4Schema(zodSchema2, options) {\n\tvar _a2;\n\tconst useReferences = (_a2 = options == null ? void 0 : options.useReferences) != null ? _a2 : false;\n\treturn jsonSchema(() => addAdditionalPropertiesToJsonSchema(z4.toJSONSchema(zodSchema2, {\n\t\ttarget: \"draft-7\",\n\t\tio: \"input\",\n\t\treused: useReferences ? \"ref\" : \"inline\"\n\t})), { validate: async (value) => {\n\t\tconst result = await z4.safeParseAsync(zodSchema2, value);\n\t\treturn result.success ? {\n\t\t\tsuccess: true,\n\t\t\tvalue: result.data\n\t\t} : {\n\t\t\tsuccess: false,\n\t\t\terror: result.error\n\t\t};\n\t} });\n}\nfunction isZod4Schema(zodSchema2) {\n\treturn \"_zod\" in zodSchema2;\n}\nfunction zodSchema(zodSchema2, options) {\n\tif (isZod4Schema(zodSchema2)) return zod4Schema(zodSchema2, options);\n\telse return zod3Schema(zodSchema2, options);\n}\nfunction isSchema(value) {\n\treturn typeof value === \"object\" && value !== null && schemaSymbol in value && value[schemaSymbol] === true && \"jsonSchema\" in value && \"validate\" in value;\n}\nfunction asSchema(schema) {\n\treturn schema == null ? jsonSchema({\n\t\tproperties: {},\n\t\tadditionalProperties: false\n\t}) : isSchema(schema) ? schema : typeof schema === \"function\" ? schema() : zodSchema(schema);\n}\nvar { btoa, atob } = globalThis;\nfunction convertBase64ToUint8Array(base64String) {\n\tconst latin1string = atob(base64String.replace(/-/g, \"+\").replace(/_/g, \"/\"));\n\treturn Uint8Array.from(latin1string, (byte) => byte.codePointAt(0));\n}\nfunction convertUint8ArrayToBase64(array) {\n\tlet latin1string = \"\";\n\tfor (let i = 0; i < array.length; i++) latin1string += String.fromCodePoint(array[i]);\n\treturn btoa(latin1string);\n}\nfunction withoutTrailingSlash(url) {\n\treturn url == null ? void 0 : url.replace(/\\/$/, \"\");\n}\nfunction isAsyncIterable(obj) {\n\treturn obj != null && typeof obj[Symbol.asyncIterator] === \"function\";\n}\nasync function* executeTool({ execute, input, options }) {\n\tconst result = execute(input, options);\n\tif (isAsyncIterable(result)) {\n\t\tlet lastOutput;\n\t\tfor await (const output of result) {\n\t\t\tlastOutput = output;\n\t\t\tyield {\n\t\t\t\ttype: \"preliminary\",\n\t\t\t\toutput\n\t\t\t};\n\t\t}\n\t\tyield {\n\t\t\ttype: \"final\",\n\t\t\toutput: lastOutput\n\t\t};\n\t} else yield {\n\t\ttype: \"final\",\n\t\toutput: await result\n\t};\n}\n//#endregion\nexport { TypeValidationError as $, parseJsonEventStream as A, zodSchema as B, isAbortError as C, lazyValidator as D, lazySchema as E, safeValidateTypes as F, InvalidPromptError as G, APICallError as H, tool as I, LoadAPIKeyError as J, InvalidResponseDataError as K, validateTypes as L, readResponseWithSizeLimit as M, resolve as N, loadOptionalSetting as O, safeParseJSON as P, TooManyEmbeddingValuesForCallError as Q, withUserAgentSuffix as R, getRuntimeEnvironmentUserAgent as S, jsonSchema as T, EmptyResponseBodyError as U, AISDKError as V, InvalidArgumentError as W, NoContentGeneratedError as X, LoadSettingError as Y, NoSuchModelError as Z, executeTool as _, cancelResponseBody as a, getErrorMessage as b, convertBase64ToUint8Array as c, createIdGenerator as d, UnsupportedFunctionalityError as et, createJsonErrorResponseHandler as f, dynamicTool as g, delay as h, asSchema as i, postJsonToApi as j, normalizeHeaders as k, convertUint8ArrayToBase64 as l, createProviderDefinedToolFactoryWithOutputSchema as m, DelayedPromise as n, isJSONArray as nt, combineHeaders as o, createJsonResponseHandler as p, JSONParseError as q, DownloadError as r, isJSONObject as rt, convertAsyncIteratorToReadableStream as s, DEFAULT_MAX_DOWNLOAD_SIZE as t, getErrorMessage$1 as tt, createEventSourceResponseHandler as u, fetchWithValidatedRedirects as v, isUrlSupported as w, getFromApi as x, generateId as y, withoutTrailingSlash as z };\n\n//# sourceMappingURL=dist-BuEMdYEn.js.map","import { $ as TypeValidationError, A as parseJsonEventStream, B as zodSchema, C as isAbortError, D as lazyValidator, E as lazySchema, F as safeValidateTypes, G as InvalidPromptError, H as APICallError, I as tool, J as LoadAPIKeyError, K as InvalidResponseDataError, L as validateTypes, M as readResponseWithSizeLimit, N as resolve, O as loadOptionalSetting, P as safeParseJSON, Q as TooManyEmbeddingValuesForCallError, R as withUserAgentSuffix, S as getRuntimeEnvironmentUserAgent, T as jsonSchema, U as EmptyResponseBodyError, V as AISDKError, W as InvalidArgumentError$1, X as NoContentGeneratedError, Y as LoadSettingError, Z as NoSuchModelError, _ as executeTool, a as cancelResponseBody, b as getErrorMessage$1, c as convertBase64ToUint8Array, d as createIdGenerator, et as UnsupportedFunctionalityError, f as createJsonErrorResponseHandler, g as dynamicTool, h as delay, i as asSchema, j as postJsonToApi, k as normalizeHeaders, l as convertUint8ArrayToBase64, m as createProviderDefinedToolFactoryWithOutputSchema, n as DelayedPromise, nt as isJSONArray, o as combineHeaders, p as createJsonResponseHandler, q as JSONParseError, r as DownloadError$1, rt as isJSONObject, t as DEFAULT_MAX_DOWNLOAD_SIZE, tt as getErrorMessage, u as createEventSourceResponseHandler, v as fetchWithValidatedRedirects, w as isUrlSupported, x as getFromApi, y as generateId, z as withoutTrailingSlash } from \"./dist-BuEMdYEn.js\";\nimport { z } from \"zod/v4\";\nimport { z as z$1 } from \"zod\";\n//#region ../oidc-stub.ts\nfunction getContext() {\n\treturn { headers: {} };\n}\nasync function getVercelOidcToken() {\n\tif (process.env.VERCEL_OIDC_TOKEN) return process.env.VERCEL_OIDC_TOKEN ?? \"\";\n\tthrow new Error(\"@vercel/oidc is not available in the vendored @internal AI packages. Provide an API key instead.\");\n}\n//#endregion\n//#region ../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/gateway/2.0.125/570e5bb8a04f885e313d986de9394e40f0058ac9bf50dfc56c5a5022cf33eeb5/node_modules/@ai-sdk/gateway/dist/index.mjs\nvar symbol$1 = Symbol.for(\"vercel.ai.gateway.error\");\nvar _a$1;\nvar _b;\nvar GatewayError = class _GatewayError extends (_b = Error, _a$1 = symbol$1, _b) {\n\tconstructor({ message, statusCode = 500, cause }) {\n\t\tsuper(message);\n\t\tthis[_a$1] = true;\n\t\tthis.statusCode = statusCode;\n\t\tthis.cause = cause;\n\t}\n\t/**\n\t* Checks if the given error is a Gateway Error.\n\t* @param {unknown} error - The error to check.\n\t* @returns {boolean} True if the error is a Gateway Error, false otherwise.\n\t*/\n\tstatic isInstance(error) {\n\t\treturn _GatewayError.hasMarker(error);\n\t}\n\tstatic hasMarker(error) {\n\t\treturn typeof error === \"object\" && error !== null && symbol$1 in error && error[symbol$1] === true;\n\t}\n};\nvar name$1 = \"GatewayAuthenticationError\";\nvar marker2$1 = `vercel.ai.gateway.error.${name$1}`;\nvar symbol2$1 = Symbol.for(marker2$1);\nvar _a2$1;\nvar _b2;\nvar GatewayAuthenticationError = class _GatewayAuthenticationError extends (_b2 = GatewayError, _a2$1 = symbol2$1, _b2) {\n\tconstructor({ message = \"Authentication failed\", statusCode = 401, cause } = {}) {\n\t\tsuper({\n\t\t\tmessage,\n\t\t\tstatusCode,\n\t\t\tcause\n\t\t});\n\t\tthis[_a2$1] = true;\n\t\tthis.name = name$1;\n\t\tthis.type = \"authentication_error\";\n\t}\n\tstatic isInstance(error) {\n\t\treturn GatewayError.hasMarker(error) && symbol2$1 in error;\n\t}\n\t/**\n\t* Creates a contextual error message when authentication fails\n\t*/\n\tstatic createContextualError({ apiKeyProvided, oidcTokenProvided, message = \"Authentication failed\", statusCode = 401, cause }) {\n\t\tlet contextualMessage;\n\t\tif (apiKeyProvided) contextualMessage = `AI Gateway authentication failed: Invalid API key.\n\nCreate a new API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys\n\nProvide via 'apiKey' option or 'AI_GATEWAY_API_KEY' environment variable.`;\n\t\telse if (oidcTokenProvided) contextualMessage = `AI Gateway authentication failed: Invalid OIDC token.\n\nRun 'npx vercel link' to link your project, then 'vc env pull' to fetch the token.\n\nAlternatively, use an API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys`;\n\t\telse contextualMessage = `AI Gateway authentication failed: No authentication provided.\n\nOption 1 - API key:\nCreate an API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys\nProvide via 'apiKey' option or 'AI_GATEWAY_API_KEY' environment variable.\n\nOption 2 - OIDC token:\nRun 'npx vercel link' to link your project, then 'vc env pull' to fetch the token.`;\n\t\treturn new _GatewayAuthenticationError({\n\t\t\tmessage: contextualMessage,\n\t\t\tstatusCode,\n\t\t\tcause\n\t\t});\n\t}\n};\nvar name2$1 = \"GatewayForbiddenError\";\nvar marker3$1 = `vercel.ai.gateway.error.${name2$1}`;\nvar symbol3$1 = Symbol.for(marker3$1);\nvar forbiddenParamSchema = lazyValidator(() => zodSchema(z.object({ ruleId: z.string() })));\nvar _a3$1;\nvar _b3;\nvar GatewayForbiddenError = class extends (_b3 = GatewayError, _a3$1 = symbol3$1, _b3) {\n\tconstructor({ message = \"Forbidden\", statusCode = 403, cause, ruleId } = {}) {\n\t\tsuper({\n\t\t\tmessage,\n\t\t\tstatusCode,\n\t\t\tcause\n\t\t});\n\t\tthis[_a3$1] = true;\n\t\tthis.name = name2$1;\n\t\tthis.type = \"forbidden\";\n\t\tthis.ruleId = ruleId;\n\t}\n\tstatic isInstance(error) {\n\t\treturn GatewayError.hasMarker(error) && symbol3$1 in error;\n\t}\n};\nvar name3$1 = \"GatewayInvalidRequestError\";\nvar marker4$1 = `vercel.ai.gateway.error.${name3$1}`;\nvar symbol4$1 = Symbol.for(marker4$1);\nvar _a4$1;\nvar _b4;\nvar GatewayInvalidRequestError = class extends (_b4 = GatewayError, _a4$1 = symbol4$1, _b4) {\n\tconstructor({ message = \"Invalid request\", statusCode = 400, cause } = {}) {\n\t\tsuper({\n\t\t\tmessage,\n\t\t\tstatusCode,\n\t\t\tcause\n\t\t});\n\t\tthis[_a4$1] = true;\n\t\tthis.name = name3$1;\n\t\tthis.type = \"invalid_request_error\";\n\t}\n\tstatic isInstance(error) {\n\t\treturn GatewayError.hasMarker(error) && symbol4$1 in error;\n\t}\n};\nvar name4$1 = \"GatewayRateLimitError\";\nvar marker5$1 = `vercel.ai.gateway.error.${name4$1}`;\nvar symbol5$1 = Symbol.for(marker5$1);\nvar _a5$1;\nvar _b5;\nvar GatewayRateLimitError = class extends (_b5 = GatewayError, _a5$1 = symbol5$1, _b5) {\n\tconstructor({ message = \"Rate limit exceeded\", statusCode = 429, cause } = {}) {\n\t\tsuper({\n\t\t\tmessage,\n\t\t\tstatusCode,\n\t\t\tcause\n\t\t});\n\t\tthis[_a5$1] = true;\n\t\tthis.name = name4$1;\n\t\tthis.type = \"rate_limit_exceeded\";\n\t}\n\tstatic isInstance(error) {\n\t\treturn GatewayError.hasMarker(error) && symbol5$1 in error;\n\t}\n};\nvar name5$1 = \"GatewayModelNotFoundError\";\nvar marker6$1 = `vercel.ai.gateway.error.${name5$1}`;\nvar symbol6$1 = Symbol.for(marker6$1);\nvar modelNotFoundParamSchema = lazyValidator(() => zodSchema(z.object({ modelId: z.string() })));\nvar _a6$1;\nvar _b6;\nvar GatewayModelNotFoundError = class extends (_b6 = GatewayError, _a6$1 = symbol6$1, _b6) {\n\tconstructor({ message = \"Model not found\", statusCode = 404, modelId, cause } = {}) {\n\t\tsuper({\n\t\t\tmessage,\n\t\t\tstatusCode,\n\t\t\tcause\n\t\t});\n\t\tthis[_a6$1] = true;\n\t\tthis.name = name5$1;\n\t\tthis.type = \"model_not_found\";\n\t\tthis.modelId = modelId;\n\t}\n\tstatic isInstance(error) {\n\t\treturn GatewayError.hasMarker(error) && symbol6$1 in error;\n\t}\n};\nvar name6$1 = \"GatewayInternalServerError\";\nvar marker7$1 = `vercel.ai.gateway.error.${name6$1}`;\nvar symbol7$1 = Symbol.for(marker7$1);\nvar _a7$1;\nvar _b7;\nvar GatewayInternalServerError = class extends (_b7 = GatewayError, _a7$1 = symbol7$1, _b7) {\n\tconstructor({ message = \"Internal server error\", statusCode = 500, cause } = {}) {\n\t\tsuper({\n\t\t\tmessage,\n\t\t\tstatusCode,\n\t\t\tcause\n\t\t});\n\t\tthis[_a7$1] = true;\n\t\tthis.name = name6$1;\n\t\tthis.type = \"internal_server_error\";\n\t}\n\tstatic isInstance(error) {\n\t\treturn GatewayError.hasMarker(error) && symbol7$1 in error;\n\t}\n};\nvar name7$1 = \"GatewayResponseError\";\nvar marker8$1 = `vercel.ai.gateway.error.${name7$1}`;\nvar symbol8$1 = Symbol.for(marker8$1);\nvar _a8$1;\nvar _b8;\nvar GatewayResponseError = class extends (_b8 = GatewayError, _a8$1 = symbol8$1, _b8) {\n\tconstructor({ message = \"Invalid response from Gateway\", statusCode = 502, response, validationError, cause } = {}) {\n\t\tsuper({\n\t\t\tmessage,\n\t\t\tstatusCode,\n\t\t\tcause\n\t\t});\n\t\tthis[_a8$1] = true;\n\t\tthis.name = name7$1;\n\t\tthis.type = \"response_error\";\n\t\tthis.response = response;\n\t\tthis.validationError = validationError;\n\t}\n\tstatic isInstance(error) {\n\t\treturn GatewayError.hasMarker(error) && symbol8$1 in error;\n\t}\n};\nasync function createGatewayErrorFromResponse({ response, statusCode, defaultMessage = \"Gateway request failed\", cause, authMethod }) {\n\tconst parseResult = await safeValidateTypes({\n\t\tvalue: response,\n\t\tschema: gatewayErrorResponseSchema\n\t});\n\tif (!parseResult.success) return new GatewayResponseError({\n\t\tmessage: `Invalid error response format: ${defaultMessage}`,\n\t\tstatusCode,\n\t\tresponse,\n\t\tvalidationError: parseResult.error,\n\t\tcause\n\t});\n\tconst validatedResponse = parseResult.value;\n\tconst errorType = validatedResponse.error.type;\n\tconst message = validatedResponse.error.message;\n\tswitch (errorType) {\n\t\tcase \"authentication_error\": return GatewayAuthenticationError.createContextualError({\n\t\t\tapiKeyProvided: authMethod === \"api-key\",\n\t\t\toidcTokenProvided: authMethod === \"oidc\",\n\t\t\tstatusCode,\n\t\t\tcause\n\t\t});\n\t\tcase \"invalid_request_error\": return new GatewayInvalidRequestError({\n\t\t\tmessage,\n\t\t\tstatusCode,\n\t\t\tcause\n\t\t});\n\t\tcase \"rate_limit_exceeded\": return new GatewayRateLimitError({\n\t\t\tmessage,\n\t\t\tstatusCode,\n\t\t\tcause\n\t\t});\n\t\tcase \"model_not_found\": {\n\t\t\tconst modelResult = await safeValidateTypes({\n\t\t\t\tvalue: validatedResponse.error.param,\n\t\t\t\tschema: modelNotFoundParamSchema\n\t\t\t});\n\t\t\treturn new GatewayModelNotFoundError({\n\t\t\t\tmessage,\n\t\t\t\tstatusCode,\n\t\t\t\tmodelId: modelResult.success ? modelResult.value.modelId : void 0,\n\t\t\t\tcause\n\t\t\t});\n\t\t}\n\t\tcase \"internal_server_error\": return new GatewayInternalServerError({\n\t\t\tmessage,\n\t\t\tstatusCode,\n\t\t\tcause\n\t\t});\n\t\tcase \"forbidden\": {\n\t\t\tconst ruleResult = await safeValidateTypes({\n\t\t\t\tvalue: validatedResponse.error.param,\n\t\t\t\tschema: forbiddenParamSchema\n\t\t\t});\n\t\t\treturn new GatewayForbiddenError({\n\t\t\t\tmessage,\n\t\t\t\tstatusCode,\n\t\t\t\tcause,\n\t\t\t\truleId: ruleResult.success ? ruleResult.value.ruleId : void 0\n\t\t\t});\n\t\t}\n\t\tdefault: return new GatewayInternalServerError({\n\t\t\tmessage,\n\t\t\tstatusCode,\n\t\t\tcause\n\t\t});\n\t}\n}\nvar gatewayErrorResponseSchema = lazyValidator(() => zodSchema(z.object({ error: z.object({\n\tmessage: z.string(),\n\ttype: z.string().nullish(),\n\tparam: z.unknown().nullish(),\n\tcode: z.union([z.string(), z.number()]).nullish()\n}) })));\nfunction extractApiCallResponse(error) {\n\tif (error.data !== void 0) return error.data;\n\tif (error.responseBody != null) try {\n\t\treturn JSON.parse(error.responseBody);\n\t} catch (e) {\n\t\treturn error.responseBody;\n\t}\n\treturn {};\n}\nvar name8$1 = \"GatewayTimeoutError\";\nvar marker9$1 = `vercel.ai.gateway.error.${name8$1}`;\nvar symbol9$1 = Symbol.for(marker9$1);\nvar _a9$1;\nvar _b9;\nvar GatewayTimeoutError = class _GatewayTimeoutError extends (_b9 = GatewayError, _a9$1 = symbol9$1, _b9) {\n\tconstructor({ message = \"Request timed out\", statusCode = 408, cause } = {}) {\n\t\tsuper({\n\t\t\tmessage,\n\t\t\tstatusCode,\n\t\t\tcause\n\t\t});\n\t\tthis[_a9$1] = true;\n\t\tthis.name = name8$1;\n\t\tthis.type = \"timeout_error\";\n\t}\n\tstatic isInstance(error) {\n\t\treturn GatewayError.hasMarker(error) && symbol9$1 in error;\n\t}\n\t/**\n\t* Creates a helpful timeout error message with troubleshooting guidance\n\t*/\n\tstatic createTimeoutError({ originalMessage, statusCode = 408, cause }) {\n\t\tconst message = `Gateway request timed out: ${originalMessage}\n\n    This is a client-side timeout. To resolve this, increase your timeout configuration: https://vercel.com/docs/ai-gateway/capabilities/video-generation#extending-timeouts-for-node.js`;\n\t\treturn new _GatewayTimeoutError({\n\t\t\tmessage,\n\t\t\tstatusCode,\n\t\t\tcause\n\t\t});\n\t}\n};\nfunction isTimeoutError(error) {\n\tif (!(error instanceof Error)) return false;\n\tconst errorCode = error.code;\n\tif (typeof errorCode === \"string\") return [\n\t\t\"UND_ERR_HEADERS_TIMEOUT\",\n\t\t\"UND_ERR_BODY_TIMEOUT\",\n\t\t\"UND_ERR_CONNECT_TIMEOUT\"\n\t].includes(errorCode);\n\treturn false;\n}\nasync function asGatewayError(error, authMethod) {\n\tvar _a10;\n\tif (GatewayError.isInstance(error)) return error;\n\tif (isTimeoutError(error)) return GatewayTimeoutError.createTimeoutError({\n\t\toriginalMessage: error instanceof Error ? error.message : \"Unknown error\",\n\t\tcause: error\n\t});\n\tif (APICallError.isInstance(error)) {\n\t\tif (error.cause && isTimeoutError(error.cause)) return GatewayTimeoutError.createTimeoutError({\n\t\t\toriginalMessage: error.message,\n\t\t\tcause: error\n\t\t});\n\t\treturn await createGatewayErrorFromResponse({\n\t\t\tresponse: extractApiCallResponse(error),\n\t\t\tstatusCode: (_a10 = error.statusCode) != null ? _a10 : 500,\n\t\t\tdefaultMessage: \"Gateway request failed\",\n\t\t\tcause: error,\n\t\t\tauthMethod\n\t\t});\n\t}\n\treturn await createGatewayErrorFromResponse({\n\t\tresponse: {},\n\t\tstatusCode: 500,\n\t\tdefaultMessage: error instanceof Error ? `Gateway request failed: ${error.message}` : \"Unknown Gateway error\",\n\t\tcause: error,\n\t\tauthMethod\n\t});\n}\nvar GATEWAY_AUTH_METHOD_HEADER = \"ai-gateway-auth-method\";\nasync function parseAuthMethod(headers) {\n\tconst result = await safeValidateTypes({\n\t\tvalue: headers[GATEWAY_AUTH_METHOD_HEADER],\n\t\tschema: gatewayAuthMethodSchema\n\t});\n\treturn result.success ? result.value : void 0;\n}\nvar gatewayAuthMethodSchema = lazyValidator(() => zodSchema(z.union([z.literal(\"api-key\"), z.literal(\"oidc\")])));\nvar KNOWN_MODEL_TYPES = [\n\t\"embedding\",\n\t\"image\",\n\t\"language\"\n];\nvar GatewayFetchMetadata = class {\n\tconstructor(config) {\n\t\tthis.config = config;\n\t}\n\tasync getAvailableModels() {\n\t\ttry {\n\t\t\tconst { value } = await getFromApi({\n\t\t\t\turl: `${this.config.baseURL}/config`,\n\t\t\t\theaders: await resolve(this.config.headers()),\n\t\t\t\tsuccessfulResponseHandler: createJsonResponseHandler(gatewayAvailableModelsResponseSchema),\n\t\t\t\tfailedResponseHandler: createJsonErrorResponseHandler({\n\t\t\t\t\terrorSchema: z.any(),\n\t\t\t\t\terrorToMessage: (data) => data\n\t\t\t\t}),\n\t\t\t\tfetch: this.config.fetch\n\t\t\t});\n\t\t\treturn value;\n\t\t} catch (error) {\n\t\t\tthrow await asGatewayError(error);\n\t\t}\n\t}\n\tasync getCredits() {\n\t\ttry {\n\t\t\tconst { value } = await getFromApi({\n\t\t\t\turl: `${new URL(this.config.baseURL).origin}/v1/credits`,\n\t\t\t\theaders: await resolve(this.config.headers()),\n\t\t\t\tsuccessfulResponseHandler: createJsonResponseHandler(gatewayCreditsResponseSchema),\n\t\t\t\tfailedResponseHandler: createJsonErrorResponseHandler({\n\t\t\t\t\terrorSchema: z.any(),\n\t\t\t\t\terrorToMessage: (data) => data\n\t\t\t\t}),\n\t\t\t\tfetch: this.config.fetch\n\t\t\t});\n\t\t\treturn value;\n\t\t} catch (error) {\n\t\t\tthrow await asGatewayError(error);\n\t\t}\n\t}\n};\nvar gatewayAvailableModelsResponseSchema = lazyValidator(() => zodSchema(z.object({ models: z.array(z.object({\n\tid: z.string(),\n\tname: z.string(),\n\tdescription: z.string().nullish(),\n\tpricing: z.object({\n\t\tinput: z.string(),\n\t\toutput: z.string(),\n\t\tinput_cache_read: z.string().nullish(),\n\t\tinput_cache_write: z.string().nullish()\n\t}).transform(({ input, output, input_cache_read, input_cache_write }) => ({\n\t\tinput,\n\t\toutput,\n\t\t...input_cache_read ? { cachedInputTokens: input_cache_read } : {},\n\t\t...input_cache_write ? { cacheCreationInputTokens: input_cache_write } : {}\n\t})).nullish(),\n\tspecification: z.object({\n\t\tspecificationVersion: z.literal(\"v2\"),\n\t\tprovider: z.string(),\n\t\tmodelId: z.string()\n\t}),\n\tmodelType: z.string().nullish()\n})).transform((models) => models.filter((m) => m.modelType == null || KNOWN_MODEL_TYPES.includes(m.modelType))) })));\nvar gatewayCreditsResponseSchema = lazyValidator(() => zodSchema(z.object({\n\tbalance: z.string(),\n\ttotal_used: z.string()\n}).transform(({ balance, total_used }) => ({\n\tbalance,\n\ttotalUsed: total_used\n}))));\nvar GatewaySpendReport = class {\n\tconstructor(config) {\n\t\tthis.config = config;\n\t}\n\tasync getSpendReport(params) {\n\t\ttry {\n\t\t\tconst baseUrl = new URL(this.config.baseURL);\n\t\t\tconst searchParams = new URLSearchParams();\n\t\t\tsearchParams.set(\"start_date\", params.startDate);\n\t\t\tsearchParams.set(\"end_date\", params.endDate);\n\t\t\tif (params.groupBy) searchParams.set(\"group_by\", params.groupBy);\n\t\t\tif (params.datePart) searchParams.set(\"date_part\", params.datePart);\n\t\t\tif (params.userId) searchParams.set(\"user_id\", params.userId);\n\t\t\tif (params.model) searchParams.set(\"model\", params.model);\n\t\t\tif (params.provider) searchParams.set(\"provider\", params.provider);\n\t\t\tif (params.credentialType) searchParams.set(\"credential_type\", params.credentialType);\n\t\t\tif (params.tags && params.tags.length > 0) searchParams.set(\"tags\", params.tags.join(\",\"));\n\t\t\tconst { value } = await getFromApi({\n\t\t\t\turl: `${baseUrl.origin}/v1/report?${searchParams.toString()}`,\n\t\t\t\theaders: await resolve(this.config.headers()),\n\t\t\t\tsuccessfulResponseHandler: createJsonResponseHandler(gatewaySpendReportResponseSchema),\n\t\t\t\tfailedResponseHandler: createJsonErrorResponseHandler({\n\t\t\t\t\terrorSchema: z.any(),\n\t\t\t\t\terrorToMessage: (data) => data\n\t\t\t\t}),\n\t\t\t\tfetch: this.config.fetch\n\t\t\t});\n\t\t\treturn value;\n\t\t} catch (error) {\n\t\t\tthrow await asGatewayError(error);\n\t\t}\n\t}\n};\nvar gatewaySpendReportResponseSchema = lazySchema(() => zodSchema(z.object({ results: z.array(z.object({\n\tday: z.string().optional(),\n\thour: z.string().optional(),\n\tuser: z.string().optional(),\n\tmodel: z.string().optional(),\n\ttag: z.string().optional(),\n\tprovider: z.string().optional(),\n\tcredential_type: z.enum([\"byok\", \"system\"]).optional(),\n\ttotal_cost: z.number(),\n\tmarket_cost: z.number().optional(),\n\tinput_tokens: z.number().optional(),\n\toutput_tokens: z.number().optional(),\n\tcached_input_tokens: z.number().optional(),\n\tcache_creation_input_tokens: z.number().optional(),\n\treasoning_tokens: z.number().optional(),\n\trequest_count: z.number().optional()\n}).transform(({ credential_type, total_cost, market_cost, input_tokens, output_tokens, cached_input_tokens, cache_creation_input_tokens, reasoning_tokens, request_count, ...rest }) => ({\n\t...rest,\n\t...credential_type !== void 0 ? { credentialType: credential_type } : {},\n\ttotalCost: total_cost,\n\t...market_cost !== void 0 ? { marketCost: market_cost } : {},\n\t...input_tokens !== void 0 ? { inputTokens: input_tokens } : {},\n\t...output_tokens !== void 0 ? { outputTokens: output_tokens } : {},\n\t...cached_input_tokens !== void 0 ? { cachedInputTokens: cached_input_tokens } : {},\n\t...cache_creation_input_tokens !== void 0 ? { cacheCreationInputTokens: cache_creation_input_tokens } : {},\n\t...reasoning_tokens !== void 0 ? { reasoningTokens: reasoning_tokens } : {},\n\t...request_count !== void 0 ? { requestCount: request_count } : {}\n}))) })));\nvar GatewayGenerationInfoFetcher = class {\n\tconstructor(config) {\n\t\tthis.config = config;\n\t}\n\tasync getGenerationInfo(params) {\n\t\ttry {\n\t\t\tconst { value } = await getFromApi({\n\t\t\t\turl: `${new URL(this.config.baseURL).origin}/v1/generation?id=${encodeURIComponent(params.id)}`,\n\t\t\t\theaders: await resolve(this.config.headers()),\n\t\t\t\tsuccessfulResponseHandler: createJsonResponseHandler(gatewayGenerationInfoResponseSchema),\n\t\t\t\tfailedResponseHandler: createJsonErrorResponseHandler({\n\t\t\t\t\terrorSchema: z.any(),\n\t\t\t\t\terrorToMessage: (data) => data\n\t\t\t\t}),\n\t\t\t\tfetch: this.config.fetch\n\t\t\t});\n\t\t\treturn value;\n\t\t} catch (error) {\n\t\t\tthrow await asGatewayError(error);\n\t\t}\n\t}\n};\nvar gatewayGenerationInfoResponseSchema = lazySchema(() => zodSchema(z.object({ data: z.object({\n\tid: z.string(),\n\ttotal_cost: z.number(),\n\tupstream_inference_cost: z.number(),\n\tusage: z.number(),\n\tcreated_at: z.string(),\n\tmodel: z.string(),\n\tis_byok: z.boolean(),\n\tprovider_name: z.string(),\n\tstreamed: z.boolean(),\n\tfinish_reason: z.string(),\n\tlatency: z.number(),\n\tgeneration_time: z.number(),\n\tnative_tokens_prompt: z.number(),\n\tnative_tokens_completion: z.number(),\n\tnative_tokens_reasoning: z.number(),\n\tnative_tokens_cached: z.number(),\n\tnative_tokens_cache_creation: z.number(),\n\tbillable_web_search_calls: z.number()\n}).transform(({ total_cost, upstream_inference_cost, created_at, is_byok, provider_name, finish_reason, generation_time, native_tokens_prompt, native_tokens_completion, native_tokens_reasoning, native_tokens_cached, native_tokens_cache_creation, billable_web_search_calls, ...rest }) => ({\n\t...rest,\n\ttotalCost: total_cost,\n\tupstreamInferenceCost: upstream_inference_cost,\n\tcreatedAt: created_at,\n\tisByok: is_byok,\n\tproviderName: provider_name,\n\tfinishReason: finish_reason,\n\tgenerationTime: generation_time,\n\tpromptTokens: native_tokens_prompt,\n\tcompletionTokens: native_tokens_completion,\n\treasoningTokens: native_tokens_reasoning,\n\tcachedTokens: native_tokens_cached,\n\tcacheCreationTokens: native_tokens_cache_creation,\n\tbillableWebSearchCalls: billable_web_search_calls\n})) }).transform(({ data }) => data)));\nvar GatewayLanguageModel = class {\n\tconstructor(modelId, config) {\n\t\tthis.modelId = modelId;\n\t\tthis.config = config;\n\t\tthis.specificationVersion = \"v2\";\n\t\tthis.supportedUrls = { \"*/*\": [/.*/] };\n\t}\n\tget provider() {\n\t\treturn this.config.provider;\n\t}\n\tasync getArgs(options) {\n\t\tconst { abortSignal: _abortSignal, ...optionsWithoutSignal } = options;\n\t\treturn {\n\t\t\targs: this.maybeEncodeFileParts(optionsWithoutSignal),\n\t\t\twarnings: []\n\t\t};\n\t}\n\tasync doGenerate(options) {\n\t\tconst { args, warnings } = await this.getArgs(options);\n\t\tconst { abortSignal } = options;\n\t\tconst resolvedHeaders = await resolve(this.config.headers());\n\t\ttry {\n\t\t\tconst { responseHeaders, value: responseBody, rawValue: rawResponse } = await postJsonToApi({\n\t\t\t\turl: this.getUrl(),\n\t\t\t\theaders: combineHeaders(resolvedHeaders, options.headers, this.getModelConfigHeaders(this.modelId, false), await resolve(this.config.o11yHeaders)),\n\t\t\t\tbody: args,\n\t\t\t\tsuccessfulResponseHandler: createJsonResponseHandler(z.any()),\n\t\t\t\tfailedResponseHandler: createJsonErrorResponseHandler({\n\t\t\t\t\terrorSchema: z.any(),\n\t\t\t\t\terrorToMessage: (data) => data\n\t\t\t\t}),\n\t\t\t\t...abortSignal && { abortSignal },\n\t\t\t\tfetch: this.config.fetch\n\t\t\t});\n\t\t\treturn {\n\t\t\t\t...responseBody,\n\t\t\t\trequest: { body: args },\n\t\t\t\tresponse: {\n\t\t\t\t\theaders: responseHeaders,\n\t\t\t\t\tbody: rawResponse\n\t\t\t\t},\n\t\t\t\twarnings\n\t\t\t};\n\t\t} catch (error) {\n\t\t\tthrow await asGatewayError(error, await parseAuthMethod(resolvedHeaders));\n\t\t}\n\t}\n\tasync doStream(options) {\n\t\tconst { args, warnings } = await this.getArgs(options);\n\t\tconst { abortSignal } = options;\n\t\tconst resolvedHeaders = await resolve(this.config.headers());\n\t\ttry {\n\t\t\tconst { value: response, responseHeaders } = await postJsonToApi({\n\t\t\t\turl: this.getUrl(),\n\t\t\t\theaders: combineHeaders(resolvedHeaders, options.headers, this.getModelConfigHeaders(this.modelId, true), await resolve(this.config.o11yHeaders)),\n\t\t\t\tbody: args,\n\t\t\t\tsuccessfulResponseHandler: createEventSourceResponseHandler(z.any()),\n\t\t\t\tfailedResponseHandler: createJsonErrorResponseHandler({\n\t\t\t\t\terrorSchema: z.any(),\n\t\t\t\t\terrorToMessage: (data) => data\n\t\t\t\t}),\n\t\t\t\t...abortSignal && { abortSignal },\n\t\t\t\tfetch: this.config.fetch\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tstream: response.pipeThrough(new TransformStream({\n\t\t\t\t\tstart(controller) {\n\t\t\t\t\t\tif (warnings.length > 0) controller.enqueue({\n\t\t\t\t\t\t\ttype: \"stream-start\",\n\t\t\t\t\t\t\twarnings\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\ttransform(chunk, controller) {\n\t\t\t\t\t\tif (chunk.success) {\n\t\t\t\t\t\t\tconst streamPart = chunk.value;\n\t\t\t\t\t\t\tif (streamPart.type === \"raw\" && !options.includeRawChunks) return;\n\t\t\t\t\t\t\tif (streamPart.type === \"response-metadata\" && streamPart.timestamp && typeof streamPart.timestamp === \"string\") streamPart.timestamp = new Date(streamPart.timestamp);\n\t\t\t\t\t\t\tcontroller.enqueue(streamPart);\n\t\t\t\t\t\t} else controller.error(chunk.error);\n\t\t\t\t\t}\n\t\t\t\t})),\n\t\t\t\trequest: { body: args },\n\t\t\t\tresponse: { headers: responseHeaders }\n\t\t\t};\n\t\t} catch (error) {\n\t\t\tthrow await asGatewayError(error, await parseAuthMethod(resolvedHeaders));\n\t\t}\n\t}\n\tisFilePart(part) {\n\t\treturn part && typeof part === \"object\" && \"type\" in part && part.type === \"file\";\n\t}\n\t/**\n\t* Encodes file parts in the prompt to base64. Mutates the passed options\n\t* instance directly to avoid copying the file data.\n\t* @param options - The options to encode.\n\t* @returns The options with the file parts encoded.\n\t*/\n\tmaybeEncodeFileParts(options) {\n\t\tfor (const message of options.prompt) for (const part of message.content) if (this.isFilePart(part)) {\n\t\t\tconst filePart = part;\n\t\t\tif (filePart.data instanceof Uint8Array) {\n\t\t\t\tconst buffer = Uint8Array.from(filePart.data);\n\t\t\t\tconst base64Data = Buffer.from(buffer).toString(\"base64\");\n\t\t\t\tfilePart.data = new URL(`data:${filePart.mediaType || \"application/octet-stream\"};base64,${base64Data}`);\n\t\t\t}\n\t\t}\n\t\treturn options;\n\t}\n\tgetUrl() {\n\t\treturn `${this.config.baseURL}/language-model`;\n\t}\n\tgetModelConfigHeaders(modelId, streaming) {\n\t\treturn {\n\t\t\t\"ai-language-model-specification-version\": \"2\",\n\t\t\t\"ai-language-model-id\": modelId,\n\t\t\t\"ai-language-model-streaming\": String(streaming)\n\t\t};\n\t}\n};\nvar GatewayEmbeddingModel = class {\n\tconstructor(modelId, config) {\n\t\tthis.modelId = modelId;\n\t\tthis.config = config;\n\t\tthis.specificationVersion = \"v2\";\n\t\tthis.maxEmbeddingsPerCall = 2048;\n\t\tthis.supportsParallelCalls = true;\n\t}\n\tget provider() {\n\t\treturn this.config.provider;\n\t}\n\tasync doEmbed({ values, headers, abortSignal, providerOptions }) {\n\t\tvar _a10;\n\t\tconst resolvedHeaders = await resolve(this.config.headers());\n\t\ttry {\n\t\t\tconst { responseHeaders, value: responseBody, rawValue } = await postJsonToApi({\n\t\t\t\turl: this.getUrl(),\n\t\t\t\theaders: combineHeaders(resolvedHeaders, headers != null ? headers : {}, this.getModelConfigHeaders(), await resolve(this.config.o11yHeaders)),\n\t\t\t\tbody: {\n\t\t\t\t\tinput: values.length === 1 ? values[0] : values,\n\t\t\t\t\t...providerOptions ? { providerOptions } : {}\n\t\t\t\t},\n\t\t\t\tsuccessfulResponseHandler: createJsonResponseHandler(gatewayEmbeddingResponseSchema),\n\t\t\t\tfailedResponseHandler: createJsonErrorResponseHandler({\n\t\t\t\t\terrorSchema: z.any(),\n\t\t\t\t\terrorToMessage: (data) => data\n\t\t\t\t}),\n\t\t\t\t...abortSignal && { abortSignal },\n\t\t\t\tfetch: this.config.fetch\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tembeddings: responseBody.embeddings,\n\t\t\t\tusage: (_a10 = responseBody.usage) != null ? _a10 : void 0,\n\t\t\t\tproviderMetadata: responseBody.providerMetadata,\n\t\t\t\tresponse: {\n\t\t\t\t\theaders: responseHeaders,\n\t\t\t\t\tbody: rawValue\n\t\t\t\t}\n\t\t\t};\n\t\t} catch (error) {\n\t\t\tthrow await asGatewayError(error, await parseAuthMethod(resolvedHeaders));\n\t\t}\n\t}\n\tgetUrl() {\n\t\treturn `${this.config.baseURL}/embedding-model`;\n\t}\n\tgetModelConfigHeaders() {\n\t\treturn {\n\t\t\t\"ai-embedding-model-specification-version\": \"2\",\n\t\t\t\"ai-model-id\": this.modelId\n\t\t};\n\t}\n};\nvar gatewayEmbeddingResponseSchema = lazyValidator(() => zodSchema(z.object({\n\tembeddings: z.array(z.array(z.number())),\n\tusage: z.object({ tokens: z.number() }).nullish(),\n\tproviderMetadata: z.record(z.string(), z.record(z.string(), z.unknown())).optional()\n})));\nvar GatewayImageModel = class {\n\tconstructor(modelId, config) {\n\t\tthis.modelId = modelId;\n\t\tthis.config = config;\n\t\tthis.specificationVersion = \"v2\";\n\t\tthis.maxImagesPerCall = Number.MAX_SAFE_INTEGER;\n\t}\n\tget provider() {\n\t\treturn this.config.provider;\n\t}\n\tasync doGenerate({ prompt, n, size, aspectRatio, seed, providerOptions, headers, abortSignal }) {\n\t\tvar _a10, _b10, _c, _d;\n\t\tconst resolvedHeaders = await resolve(this.config.headers());\n\t\ttry {\n\t\t\tconst { responseHeaders, value: responseBody, rawValue } = await postJsonToApi({\n\t\t\t\turl: this.getUrl(),\n\t\t\t\theaders: combineHeaders(resolvedHeaders, headers != null ? headers : {}, this.getModelConfigHeaders(), await resolve(this.config.o11yHeaders)),\n\t\t\t\tbody: {\n\t\t\t\t\tprompt,\n\t\t\t\t\tn,\n\t\t\t\t\t...size && { size },\n\t\t\t\t\t...aspectRatio && { aspectRatio },\n\t\t\t\t\t...seed && { seed },\n\t\t\t\t\t...providerOptions && { providerOptions }\n\t\t\t\t},\n\t\t\t\tsuccessfulResponseHandler: createJsonResponseHandler(gatewayImageResponseSchema),\n\t\t\t\tfailedResponseHandler: createJsonErrorResponseHandler({\n\t\t\t\t\terrorSchema: z.any(),\n\t\t\t\t\terrorToMessage: (data) => data\n\t\t\t\t}),\n\t\t\t\t...abortSignal && { abortSignal },\n\t\t\t\tfetch: this.config.fetch\n\t\t\t});\n\t\t\treturn {\n\t\t\t\timages: responseBody.images,\n\t\t\t\twarnings: (_a10 = responseBody.warnings) != null ? _a10 : [],\n\t\t\t\tproviderMetadata: responseBody.providerMetadata,\n\t\t\t\tresponse: {\n\t\t\t\t\ttimestamp: /* @__PURE__ */ new Date(),\n\t\t\t\t\tmodelId: this.modelId,\n\t\t\t\t\theaders: responseHeaders\n\t\t\t\t},\n\t\t\t\t...responseBody.usage != null && { usage: {\n\t\t\t\t\tinputTokens: (_b10 = responseBody.usage.inputTokens) != null ? _b10 : void 0,\n\t\t\t\t\toutputTokens: (_c = responseBody.usage.outputTokens) != null ? _c : void 0,\n\t\t\t\t\ttotalTokens: (_d = responseBody.usage.totalTokens) != null ? _d : void 0\n\t\t\t\t} }\n\t\t\t};\n\t\t} catch (error) {\n\t\t\tthrow await asGatewayError(error, await parseAuthMethod(resolvedHeaders));\n\t\t}\n\t}\n\tgetUrl() {\n\t\treturn `${this.config.baseURL}/image-model`;\n\t}\n\tgetModelConfigHeaders() {\n\t\treturn {\n\t\t\t\"ai-image-model-specification-version\": \"2\",\n\t\t\t\"ai-model-id\": this.modelId\n\t\t};\n\t}\n};\nvar providerMetadataEntrySchema = z.object({ images: z.array(z.unknown()).optional() }).catchall(z.unknown());\nvar gatewayImageUsageSchema = z.object({\n\tinputTokens: z.number().nullish(),\n\toutputTokens: z.number().nullish(),\n\ttotalTokens: z.number().nullish()\n});\nvar gatewayImageResponseSchema = z.object({\n\timages: z.array(z.string()),\n\twarnings: z.array(z.object({\n\t\ttype: z.literal(\"other\"),\n\t\tmessage: z.string()\n\t})).optional(),\n\tproviderMetadata: z.record(z.string(), providerMetadataEntrySchema).optional(),\n\tusage: gatewayImageUsageSchema.optional()\n});\nvar parallelSearchToolFactory = createProviderDefinedToolFactoryWithOutputSchema({\n\tid: \"gateway.parallel_search\",\n\tname: \"parallel_search\",\n\tinputSchema: lazySchema(() => zodSchema(z$1.object({\n\t\tobjective: z$1.string().describe(\"Natural-language description of the web research goal, including source or freshness guidance and broader context from the task. Maximum 5000 characters.\"),\n\t\tsearch_queries: z$1.array(z$1.string()).optional().describe(\"Optional search queries to supplement the objective. Maximum 200 characters per query.\"),\n\t\tmode: z$1.enum([\"one-shot\", \"agentic\"]).optional().describe(\"Mode preset: \\\"one-shot\\\" for comprehensive results with longer excerpts (default), \\\"agentic\\\" for concise, token-efficient results for multi-step workflows.\"),\n\t\tmax_results: z$1.number().optional().describe(\"Maximum number of results to return (1-20). Defaults to 10 if not specified.\"),\n\t\tsource_policy: z$1.object({\n\t\t\tinclude_domains: z$1.array(z$1.string()).optional().describe(\"List of domains to include in search results.\"),\n\t\t\texclude_domains: z$1.array(z$1.string()).optional().describe(\"List of domains to exclude from search results.\"),\n\t\t\tafter_date: z$1.string().optional().describe(\"Only include results published after this date (ISO 8601 format).\")\n\t\t}).optional().describe(\"Source policy for controlling which domains to include/exclude and freshness.\"),\n\t\texcerpts: z$1.object({\n\t\t\tmax_chars_per_result: z$1.number().optional().describe(\"Maximum characters per result.\"),\n\t\t\tmax_chars_total: z$1.number().optional().describe(\"Maximum total characters across all results.\")\n\t\t}).optional().describe(\"Excerpt configuration for controlling result length.\"),\n\t\tfetch_policy: z$1.object({ max_age_seconds: z$1.number().optional().describe(\"Maximum age in seconds for cached content. Set to 0 to always fetch fresh content.\") }).optional().describe(\"Fetch policy for controlling content freshness.\")\n\t}))),\n\toutputSchema: lazySchema(() => zodSchema(z$1.union([z$1.object({\n\t\tsearchId: z$1.string(),\n\t\tresults: z$1.array(z$1.object({\n\t\t\turl: z$1.string(),\n\t\t\ttitle: z$1.string(),\n\t\t\texcerpt: z$1.string(),\n\t\t\tpublishDate: z$1.string().nullable().optional(),\n\t\t\trelevanceScore: z$1.number().optional()\n\t\t}))\n\t}), z$1.object({\n\t\terror: z$1.enum([\n\t\t\t\"api_error\",\n\t\t\t\"rate_limit\",\n\t\t\t\"timeout\",\n\t\t\t\"invalid_input\",\n\t\t\t\"configuration_error\",\n\t\t\t\"unknown\"\n\t\t]),\n\t\tstatusCode: z$1.number().optional(),\n\t\tmessage: z$1.string()\n\t})])))\n});\nvar parallelSearch = (config = {}) => parallelSearchToolFactory(config);\nvar perplexitySearchToolFactory = createProviderDefinedToolFactoryWithOutputSchema({\n\tid: \"gateway.perplexity_search\",\n\tname: \"perplexity_search\",\n\tinputSchema: lazySchema(() => zodSchema(z$1.object({\n\t\tquery: z$1.union([z$1.string(), z$1.array(z$1.string())]).describe(\"Search query (string) or multiple queries (array of up to 5 strings). Multi-query searches return combined results from all queries.\"),\n\t\tmax_results: z$1.number().optional().describe(\"Maximum number of search results to return (1-20, default: 10)\"),\n\t\tmax_tokens_per_page: z$1.number().optional().describe(\"Maximum number of tokens to extract per search result page (256-2048, default: 2048)\"),\n\t\tmax_tokens: z$1.number().optional().describe(\"Maximum total tokens across all search results (default: 25000, max: 1000000)\"),\n\t\tcountry: z$1.string().optional().describe(\"Two-letter ISO 3166-1 alpha-2 country code for regional search results (e.g., 'US', 'GB', 'FR')\"),\n\t\tsearch_domain_filter: z$1.array(z$1.string()).optional().describe(\"List of domains to include or exclude from search results (max 20). To include: ['nature.com', 'science.org']. To exclude: ['-example.com', '-spam.net']\"),\n\t\tsearch_language_filter: z$1.array(z$1.string()).optional().describe(\"List of ISO 639-1 language codes to filter results (max 10, lowercase). Examples: ['en', 'fr', 'de']\"),\n\t\tsearch_after_date: z$1.string().optional().describe(\"Include only results published after this date. Format: 'MM/DD/YYYY' (e.g., '3/1/2025'). Cannot be used with search_recency_filter.\"),\n\t\tsearch_before_date: z$1.string().optional().describe(\"Include only results published before this date. Format: 'MM/DD/YYYY' (e.g., '3/15/2025'). Cannot be used with search_recency_filter.\"),\n\t\tlast_updated_after_filter: z$1.string().optional().describe(\"Include only results last updated after this date. Format: 'MM/DD/YYYY' (e.g., '3/1/2025'). Cannot be used with search_recency_filter.\"),\n\t\tlast_updated_before_filter: z$1.string().optional().describe(\"Include only results last updated before this date. Format: 'MM/DD/YYYY' (e.g., '3/15/2025'). Cannot be used with search_recency_filter.\"),\n\t\tsearch_recency_filter: z$1.enum([\n\t\t\t\"day\",\n\t\t\t\"week\",\n\t\t\t\"month\",\n\t\t\t\"year\"\n\t\t]).optional().describe(\"Filter results by relative time period. Cannot be used with search_after_date or search_before_date.\")\n\t}))),\n\toutputSchema: lazySchema(() => zodSchema(z$1.union([z$1.object({\n\t\tresults: z$1.array(z$1.object({\n\t\t\ttitle: z$1.string(),\n\t\t\turl: z$1.string(),\n\t\t\tsnippet: z$1.string(),\n\t\t\tdate: z$1.string().optional(),\n\t\t\tlastUpdated: z$1.string().optional()\n\t\t})),\n\t\tid: z$1.string()\n\t}), z$1.object({\n\t\terror: z$1.enum([\n\t\t\t\"api_error\",\n\t\t\t\"rate_limit\",\n\t\t\t\"timeout\",\n\t\t\t\"invalid_input\",\n\t\t\t\"unknown\"\n\t\t]),\n\t\tstatusCode: z$1.number().optional(),\n\t\tmessage: z$1.string()\n\t})])))\n});\nvar perplexitySearch = (config = {}) => perplexitySearchToolFactory(config);\nvar gatewayTools = {\n\t/**\n\t* Search the web using Parallel AI's Search API for LLM-optimized excerpts.\n\t*\n\t* Takes a natural language objective and returns relevant excerpts,\n\t* replacing multiple keyword searches with a single call for broad\n\t* or complex queries. Supports different search types for depth vs\n\t* breadth tradeoffs.\n\t*/\n\tparallelSearch,\n\t/**\n\t* Search the web using Perplexity's Search API for real-time information,\n\t* news, research papers, and articles.\n\t*\n\t* Provides ranked search results with advanced filtering options including\n\t* domain, language, date range, and recency filters.\n\t*/\n\tperplexitySearch\n};\nasync function getVercelRequestId() {\n\tvar _a10;\n\treturn (_a10 = getContext().headers) == null ? void 0 : _a10[\"x-vercel-id\"];\n}\nvar VERSION$2 = \"2.0.125\";\nvar AI_GATEWAY_PROTOCOL_VERSION = \"0.0.1\";\nfunction createGatewayProvider(options = {}) {\n\tvar _a10, _b10;\n\tlet pendingMetadata = null;\n\tlet metadataCache = null;\n\tconst cacheRefreshMillis = (_a10 = options.metadataCacheRefreshMillis) != null ? _a10 : 1e3 * 60 * 5;\n\tlet lastFetchTime = 0;\n\tconst baseURL = (_b10 = withoutTrailingSlash(options.baseURL)) != null ? _b10 : \"https://ai-gateway.vercel.sh/v1/ai\";\n\tconst getHeaders = async () => {\n\t\tconst auth = await getGatewayAuthToken(options);\n\t\tif (auth) return withUserAgentSuffix({\n\t\t\tAuthorization: `Bearer ${auth.token}`,\n\t\t\t\"ai-gateway-protocol-version\": AI_GATEWAY_PROTOCOL_VERSION,\n\t\t\t[GATEWAY_AUTH_METHOD_HEADER]: auth.authMethod,\n\t\t\t...options.headers\n\t\t}, `ai-sdk/gateway/${VERSION$2}`);\n\t\tthrow GatewayAuthenticationError.createContextualError({\n\t\t\tapiKeyProvided: false,\n\t\t\toidcTokenProvided: false,\n\t\t\tstatusCode: 401\n\t\t});\n\t};\n\tconst createO11yHeaders = () => {\n\t\tconst deploymentId = loadOptionalSetting({\n\t\t\tsettingValue: void 0,\n\t\t\tenvironmentVariableName: \"VERCEL_DEPLOYMENT_ID\"\n\t\t});\n\t\tconst environment = loadOptionalSetting({\n\t\t\tsettingValue: void 0,\n\t\t\tenvironmentVariableName: \"VERCEL_ENV\"\n\t\t});\n\t\tconst region = loadOptionalSetting({\n\t\t\tsettingValue: void 0,\n\t\t\tenvironmentVariableName: \"VERCEL_REGION\"\n\t\t});\n\t\tconst projectId = loadOptionalSetting({\n\t\t\tsettingValue: void 0,\n\t\t\tenvironmentVariableName: \"VERCEL_PROJECT_ID\"\n\t\t});\n\t\treturn async () => {\n\t\t\tconst requestId = await getVercelRequestId();\n\t\t\treturn {\n\t\t\t\t...deploymentId && { \"ai-o11y-deployment-id\": deploymentId },\n\t\t\t\t...environment && { \"ai-o11y-environment\": environment },\n\t\t\t\t...region && { \"ai-o11y-region\": region },\n\t\t\t\t...requestId && { \"ai-o11y-request-id\": requestId },\n\t\t\t\t...projectId && { \"ai-o11y-project-id\": projectId }\n\t\t\t};\n\t\t};\n\t};\n\tconst createLanguageModel = (modelId) => {\n\t\treturn new GatewayLanguageModel(modelId, {\n\t\t\tprovider: \"gateway\",\n\t\t\tbaseURL,\n\t\t\theaders: getHeaders,\n\t\t\tfetch: options.fetch,\n\t\t\to11yHeaders: createO11yHeaders()\n\t\t});\n\t};\n\tconst getAvailableModels = async () => {\n\t\tvar _a11, _b11, _c;\n\t\tconst now = (_c = (_b11 = (_a11 = options._internal) == null ? void 0 : _a11.currentDate) == null ? void 0 : _b11.call(_a11).getTime()) != null ? _c : Date.now();\n\t\tif (!pendingMetadata || now - lastFetchTime > cacheRefreshMillis) {\n\t\t\tlastFetchTime = now;\n\t\t\tpendingMetadata = new GatewayFetchMetadata({\n\t\t\t\tbaseURL,\n\t\t\t\theaders: getHeaders,\n\t\t\t\tfetch: options.fetch\n\t\t\t}).getAvailableModels().then((metadata) => {\n\t\t\t\tmetadataCache = metadata;\n\t\t\t\treturn metadata;\n\t\t\t}).catch(async (error) => {\n\t\t\t\tthrow await asGatewayError(error, await parseAuthMethod(await getHeaders()));\n\t\t\t});\n\t\t}\n\t\treturn metadataCache ? Promise.resolve(metadataCache) : pendingMetadata;\n\t};\n\tconst getCredits = async () => {\n\t\treturn new GatewayFetchMetadata({\n\t\t\tbaseURL,\n\t\t\theaders: getHeaders,\n\t\t\tfetch: options.fetch\n\t\t}).getCredits().catch(async (error) => {\n\t\t\tthrow await asGatewayError(error, await parseAuthMethod(await getHeaders()));\n\t\t});\n\t};\n\tconst getSpendReport = async (params) => {\n\t\treturn new GatewaySpendReport({\n\t\t\tbaseURL,\n\t\t\theaders: getHeaders,\n\t\t\tfetch: options.fetch\n\t\t}).getSpendReport(params).catch(async (error) => {\n\t\t\tthrow await asGatewayError(error, await parseAuthMethod(await getHeaders()));\n\t\t});\n\t};\n\tconst getGenerationInfo = async (params) => {\n\t\treturn new GatewayGenerationInfoFetcher({\n\t\t\tbaseURL,\n\t\t\theaders: getHeaders,\n\t\t\tfetch: options.fetch\n\t\t}).getGenerationInfo(params).catch(async (error) => {\n\t\t\tthrow await asGatewayError(error, await parseAuthMethod(await getHeaders()));\n\t\t});\n\t};\n\tconst provider = function(modelId) {\n\t\tif (new.target) throw new Error(\"The Gateway Provider model function cannot be called with the new keyword.\");\n\t\treturn createLanguageModel(modelId);\n\t};\n\tprovider.getAvailableModels = getAvailableModels;\n\tprovider.getCredits = getCredits;\n\tprovider.getSpendReport = getSpendReport;\n\tprovider.getGenerationInfo = getGenerationInfo;\n\tprovider.imageModel = (modelId) => {\n\t\treturn new GatewayImageModel(modelId, {\n\t\t\tprovider: \"gateway\",\n\t\t\tbaseURL,\n\t\t\theaders: getHeaders,\n\t\t\tfetch: options.fetch,\n\t\t\to11yHeaders: createO11yHeaders()\n\t\t});\n\t};\n\tprovider.languageModel = createLanguageModel;\n\tprovider.textEmbeddingModel = (modelId) => {\n\t\treturn new GatewayEmbeddingModel(modelId, {\n\t\t\tprovider: \"gateway\",\n\t\t\tbaseURL,\n\t\t\theaders: getHeaders,\n\t\t\tfetch: options.fetch,\n\t\t\to11yHeaders: createO11yHeaders()\n\t\t});\n\t};\n\tprovider.tools = gatewayTools;\n\treturn provider;\n}\nvar gateway = createGatewayProvider();\nasync function getGatewayAuthToken(options) {\n\tconst apiKey = loadOptionalSetting({\n\t\tsettingValue: options.apiKey,\n\t\tenvironmentVariableName: \"AI_GATEWAY_API_KEY\"\n\t});\n\tif (apiKey) return {\n\t\ttoken: apiKey,\n\t\tauthMethod: \"api-key\"\n\t};\n\ttry {\n\t\treturn {\n\t\t\ttoken: await getVercelOidcToken(),\n\t\t\tauthMethod: \"oidc\"\n\t\t};\n\t} catch (e) {\n\t\treturn null;\n\t}\n}\n//#endregion\n//#region ../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/build/esm/platform/node/globalThis.js\n/** only globals that common to node and browsers are allowed */\nvar _globalThis = typeof globalThis === \"object\" ? globalThis : global;\n//#endregion\n//#region ../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/build/esm/version.js\nvar VERSION$1 = \"1.9.0\";\n//#endregion\n//#region ../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/build/esm/internal/semver.js\nvar re = /^(\\d+)\\.(\\d+)\\.(\\d+)(-(.+))?$/;\n/**\n* Create a function to test an API version to see if it is compatible with the provided ownVersion.\n*\n* The returned function has the following semantics:\n* - Exact match is always compatible\n* - Major versions must match exactly\n*    - 1.x package cannot use global 2.x package\n*    - 2.x package cannot use global 1.x package\n* - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API\n*    - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects\n*    - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3\n* - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor\n* - Patch and build tag differences are not considered at this time\n*\n* @param ownVersion version which should be checked against\n*/\nfunction _makeCompatibilityCheck(ownVersion) {\n\tvar acceptedVersions = /* @__PURE__ */ new Set([ownVersion]);\n\tvar rejectedVersions = /* @__PURE__ */ new Set();\n\tvar myVersionMatch = ownVersion.match(re);\n\tif (!myVersionMatch) return function() {\n\t\treturn false;\n\t};\n\tvar ownVersionParsed = {\n\t\tmajor: +myVersionMatch[1],\n\t\tminor: +myVersionMatch[2],\n\t\tpatch: +myVersionMatch[3],\n\t\tprerelease: myVersionMatch[4]\n\t};\n\tif (ownVersionParsed.prerelease != null) return function isExactmatch(globalVersion) {\n\t\treturn globalVersion === ownVersion;\n\t};\n\tfunction _reject(v) {\n\t\trejectedVersions.add(v);\n\t\treturn false;\n\t}\n\tfunction _accept(v) {\n\t\tacceptedVersions.add(v);\n\t\treturn true;\n\t}\n\treturn function isCompatible(globalVersion) {\n\t\tif (acceptedVersions.has(globalVersion)) return true;\n\t\tif (rejectedVersions.has(globalVersion)) return false;\n\t\tvar globalVersionMatch = globalVersion.match(re);\n\t\tif (!globalVersionMatch) return _reject(globalVersion);\n\t\tvar globalVersionParsed = {\n\t\t\tmajor: +globalVersionMatch[1],\n\t\t\tminor: +globalVersionMatch[2],\n\t\t\tpatch: +globalVersionMatch[3],\n\t\t\tprerelease: globalVersionMatch[4]\n\t\t};\n\t\tif (globalVersionParsed.prerelease != null) return _reject(globalVersion);\n\t\tif (ownVersionParsed.major !== globalVersionParsed.major) return _reject(globalVersion);\n\t\tif (ownVersionParsed.major === 0) {\n\t\t\tif (ownVersionParsed.minor === globalVersionParsed.minor && ownVersionParsed.patch <= globalVersionParsed.patch) return _accept(globalVersion);\n\t\t\treturn _reject(globalVersion);\n\t\t}\n\t\tif (ownVersionParsed.minor <= globalVersionParsed.minor) return _accept(globalVersion);\n\t\treturn _reject(globalVersion);\n\t};\n}\n/**\n* Test an API version to see if it is compatible with this API.\n*\n* - Exact match is always compatible\n* - Major versions must match exactly\n*    - 1.x package cannot use global 2.x package\n*    - 2.x package cannot use global 1.x package\n* - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API\n*    - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects\n*    - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3\n* - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor\n* - Patch and build tag differences are not considered at this time\n*\n* @param version version of the API requesting an instance of the global API\n*/\nvar isCompatible = _makeCompatibilityCheck(VERSION$1);\n//#endregion\n//#region ../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/build/esm/internal/global-utils.js\nvar major = VERSION$1.split(\".\")[0];\nvar GLOBAL_OPENTELEMETRY_API_KEY = Symbol.for(\"opentelemetry.js.api.\" + major);\nvar _global = _globalThis;\nfunction registerGlobal(type, instance, diag, allowOverride) {\n\tvar _a;\n\tif (allowOverride === void 0) allowOverride = false;\n\tvar api = _global[GLOBAL_OPENTELEMETRY_API_KEY] = (_a = _global[GLOBAL_OPENTELEMETRY_API_KEY]) !== null && _a !== void 0 ? _a : { version: VERSION$1 };\n\tif (!allowOverride && api[type]) {\n\t\tvar err = /* @__PURE__ */ new Error(\"@opentelemetry/api: Attempted duplicate registration of API: \" + type);\n\t\tdiag.error(err.stack || err.message);\n\t\treturn false;\n\t}\n\tif (api.version !== \"1.9.0\") {\n\t\tvar err = /* @__PURE__ */ new Error(\"@opentelemetry/api: Registration of version v\" + api.version + \" for \" + type + \" does not match previously registered API v\" + VERSION$1);\n\t\tdiag.error(err.stack || err.message);\n\t\treturn false;\n\t}\n\tapi[type] = instance;\n\tdiag.debug(\"@opentelemetry/api: Registered a global for \" + type + \" v\" + VERSION$1 + \".\");\n\treturn true;\n}\nfunction getGlobal(type) {\n\tvar _a, _b;\n\tvar globalVersion = (_a = _global[GLOBAL_OPENTELEMETRY_API_KEY]) === null || _a === void 0 ? void 0 : _a.version;\n\tif (!globalVersion || !isCompatible(globalVersion)) return;\n\treturn (_b = _global[GLOBAL_OPENTELEMETRY_API_KEY]) === null || _b === void 0 ? void 0 : _b[type];\n}\nfunction unregisterGlobal(type, diag) {\n\tdiag.debug(\"@opentelemetry/api: Unregistering a global for \" + type + \" v\" + VERSION$1 + \".\");\n\tvar api = _global[GLOBAL_OPENTELEMETRY_API_KEY];\n\tif (api) delete api[type];\n}\n//#endregion\n//#region ../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/build/esm/diag/ComponentLogger.js\nvar __read$3 = function(o, n) {\n\tvar m = typeof Symbol === \"function\" && o[Symbol.iterator];\n\tif (!m) return o;\n\tvar i = m.call(o), r, ar = [], e;\n\ttry {\n\t\twhile ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n\t} catch (error) {\n\t\te = { error };\n\t} finally {\n\t\ttry {\n\t\t\tif (r && !r.done && (m = i[\"return\"])) m.call(i);\n\t\t} finally {\n\t\t\tif (e) throw e.error;\n\t\t}\n\t}\n\treturn ar;\n};\nvar __spreadArray$3 = function(to, from, pack) {\n\tif (pack || arguments.length === 2) {\n\t\tfor (var i = 0, l = from.length, ar; i < l; i++) if (ar || !(i in from)) {\n\t\t\tif (!ar) ar = Array.prototype.slice.call(from, 0, i);\n\t\t\tar[i] = from[i];\n\t\t}\n\t}\n\treturn to.concat(ar || Array.prototype.slice.call(from));\n};\n/**\n* Component Logger which is meant to be used as part of any component which\n* will add automatically additional namespace in front of the log message.\n* It will then forward all message to global diag logger\n* @example\n* const cLogger = diag.createComponentLogger({ namespace: '@opentelemetry/instrumentation-http' });\n* cLogger.debug('test');\n* // @opentelemetry/instrumentation-http test\n*/\nvar DiagComponentLogger = function() {\n\tfunction DiagComponentLogger(props) {\n\t\tthis._namespace = props.namespace || \"DiagComponentLogger\";\n\t}\n\tDiagComponentLogger.prototype.debug = function() {\n\t\tvar args = [];\n\t\tfor (var _i = 0; _i < arguments.length; _i++) args[_i] = arguments[_i];\n\t\treturn logProxy(\"debug\", this._namespace, args);\n\t};\n\tDiagComponentLogger.prototype.error = function() {\n\t\tvar args = [];\n\t\tfor (var _i = 0; _i < arguments.length; _i++) args[_i] = arguments[_i];\n\t\treturn logProxy(\"error\", this._namespace, args);\n\t};\n\tDiagComponentLogger.prototype.info = function() {\n\t\tvar args = [];\n\t\tfor (var _i = 0; _i < arguments.length; _i++) args[_i] = arguments[_i];\n\t\treturn logProxy(\"info\", this._namespace, args);\n\t};\n\tDiagComponentLogger.prototype.warn = function() {\n\t\tvar args = [];\n\t\tfor (var _i = 0; _i < arguments.length; _i++) args[_i] = arguments[_i];\n\t\treturn logProxy(\"warn\", this._namespace, args);\n\t};\n\tDiagComponentLogger.prototype.verbose = function() {\n\t\tvar args = [];\n\t\tfor (var _i = 0; _i < arguments.length; _i++) args[_i] = arguments[_i];\n\t\treturn logProxy(\"verbose\", this._namespace, args);\n\t};\n\treturn DiagComponentLogger;\n}();\nfunction logProxy(funcName, namespace, args) {\n\tvar logger = getGlobal(\"diag\");\n\tif (!logger) return;\n\targs.unshift(namespace);\n\treturn logger[funcName].apply(logger, __spreadArray$3([], __read$3(args), false));\n}\n//#endregion\n//#region ../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/build/esm/diag/types.js\n/**\n* Defines the available internal logging levels for the diagnostic logger, the numeric values\n* of the levels are defined to match the original values from the initial LogLevel to avoid\n* compatibility/migration issues for any implementation that assume the numeric ordering.\n*/\nvar DiagLogLevel;\n(function(DiagLogLevel) {\n\t/** Diagnostic Logging level setting to disable all logging (except and forced logs) */\n\tDiagLogLevel[DiagLogLevel[\"NONE\"] = 0] = \"NONE\";\n\t/** Identifies an error scenario */\n\tDiagLogLevel[DiagLogLevel[\"ERROR\"] = 30] = \"ERROR\";\n\t/** Identifies a warning scenario */\n\tDiagLogLevel[DiagLogLevel[\"WARN\"] = 50] = \"WARN\";\n\t/** General informational log message */\n\tDiagLogLevel[DiagLogLevel[\"INFO\"] = 60] = \"INFO\";\n\t/** General debug log message */\n\tDiagLogLevel[DiagLogLevel[\"DEBUG\"] = 70] = \"DEBUG\";\n\t/**\n\t* Detailed trace level logging should only be used for development, should only be set\n\t* in a development environment.\n\t*/\n\tDiagLogLevel[DiagLogLevel[\"VERBOSE\"] = 80] = \"VERBOSE\";\n\t/** Used to set the logging level to include all logging */\n\tDiagLogLevel[DiagLogLevel[\"ALL\"] = 9999] = \"ALL\";\n})(DiagLogLevel || (DiagLogLevel = {}));\n//#endregion\n//#region ../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/build/esm/diag/internal/logLevelLogger.js\nfunction createLogLevelDiagLogger(maxLevel, logger) {\n\tif (maxLevel < DiagLogLevel.NONE) maxLevel = DiagLogLevel.NONE;\n\telse if (maxLevel > DiagLogLevel.ALL) maxLevel = DiagLogLevel.ALL;\n\tlogger = logger || {};\n\tfunction _filterFunc(funcName, theLevel) {\n\t\tvar theFunc = logger[funcName];\n\t\tif (typeof theFunc === \"function\" && maxLevel >= theLevel) return theFunc.bind(logger);\n\t\treturn function() {};\n\t}\n\treturn {\n\t\terror: _filterFunc(\"error\", DiagLogLevel.ERROR),\n\t\twarn: _filterFunc(\"warn\", DiagLogLevel.WARN),\n\t\tinfo: _filterFunc(\"info\", DiagLogLevel.INFO),\n\t\tdebug: _filterFunc(\"debug\", DiagLogLevel.DEBUG),\n\t\tverbose: _filterFunc(\"verbose\", DiagLogLevel.VERBOSE)\n\t};\n}\n//#endregion\n//#region ../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/build/esm/api/diag.js\nvar __read$2 = function(o, n) {\n\tvar m = typeof Symbol === \"function\" && o[Symbol.iterator];\n\tif (!m) return o;\n\tvar i = m.call(o), r, ar = [], e;\n\ttry {\n\t\twhile ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n\t} catch (error) {\n\t\te = { error };\n\t} finally {\n\t\ttry {\n\t\t\tif (r && !r.done && (m = i[\"return\"])) m.call(i);\n\t\t} finally {\n\t\t\tif (e) throw e.error;\n\t\t}\n\t}\n\treturn ar;\n};\nvar __spreadArray$2 = function(to, from, pack) {\n\tif (pack || arguments.length === 2) {\n\t\tfor (var i = 0, l = from.length, ar; i < l; i++) if (ar || !(i in from)) {\n\t\t\tif (!ar) ar = Array.prototype.slice.call(from, 0, i);\n\t\t\tar[i] = from[i];\n\t\t}\n\t}\n\treturn to.concat(ar || Array.prototype.slice.call(from));\n};\nvar API_NAME$2 = \"diag\";\n/**\n* Singleton object which represents the entry point to the OpenTelemetry internal\n* diagnostic API\n*/\nvar DiagAPI = function() {\n\t/**\n\t* Private internal constructor\n\t* @private\n\t*/\n\tfunction DiagAPI() {\n\t\tfunction _logProxy(funcName) {\n\t\t\treturn function() {\n\t\t\t\tvar args = [];\n\t\t\t\tfor (var _i = 0; _i < arguments.length; _i++) args[_i] = arguments[_i];\n\t\t\t\tvar logger = getGlobal(\"diag\");\n\t\t\t\tif (!logger) return;\n\t\t\t\treturn logger[funcName].apply(logger, __spreadArray$2([], __read$2(args), false));\n\t\t\t};\n\t\t}\n\t\tvar self = this;\n\t\tvar setLogger = function(logger, optionsOrLogLevel) {\n\t\t\tvar _a, _b, _c;\n\t\t\tif (optionsOrLogLevel === void 0) optionsOrLogLevel = { logLevel: DiagLogLevel.INFO };\n\t\t\tif (logger === self) {\n\t\t\t\tvar err = /* @__PURE__ */ new Error(\"Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation\");\n\t\t\t\tself.error((_a = err.stack) !== null && _a !== void 0 ? _a : err.message);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (typeof optionsOrLogLevel === \"number\") optionsOrLogLevel = { logLevel: optionsOrLogLevel };\n\t\t\tvar oldLogger = getGlobal(\"diag\");\n\t\t\tvar newLogger = createLogLevelDiagLogger((_b = optionsOrLogLevel.logLevel) !== null && _b !== void 0 ? _b : DiagLogLevel.INFO, logger);\n\t\t\tif (oldLogger && !optionsOrLogLevel.suppressOverrideMessage) {\n\t\t\t\tvar stack = (_c = (/* @__PURE__ */ new Error()).stack) !== null && _c !== void 0 ? _c : \"<failed to generate stacktrace>\";\n\t\t\t\toldLogger.warn(\"Current logger will be overwritten from \" + stack);\n\t\t\t\tnewLogger.warn(\"Current logger will overwrite one already registered from \" + stack);\n\t\t\t}\n\t\t\treturn registerGlobal(\"diag\", newLogger, self, true);\n\t\t};\n\t\tself.setLogger = setLogger;\n\t\tself.disable = function() {\n\t\t\tunregisterGlobal(API_NAME$2, self);\n\t\t};\n\t\tself.createComponentLogger = function(options) {\n\t\t\treturn new DiagComponentLogger(options);\n\t\t};\n\t\tself.verbose = _logProxy(\"verbose\");\n\t\tself.debug = _logProxy(\"debug\");\n\t\tself.info = _logProxy(\"info\");\n\t\tself.warn = _logProxy(\"warn\");\n\t\tself.error = _logProxy(\"error\");\n\t}\n\t/** Get the singleton instance of the DiagAPI API */\n\tDiagAPI.instance = function() {\n\t\tif (!this._instance) this._instance = new DiagAPI();\n\t\treturn this._instance;\n\t};\n\treturn DiagAPI;\n}();\n//#endregion\n//#region ../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/build/esm/context/context.js\n/** Get a key to uniquely identify a context value */\nfunction createContextKey(description) {\n\treturn Symbol.for(description);\n}\n/** The root context is used as the default parent context when there is no active context */\nvar ROOT_CONTEXT = new (function() {\n\t/**\n\t* Construct a new context which inherits values from an optional parent context.\n\t*\n\t* @param parentContext a context from which to inherit values\n\t*/\n\tfunction BaseContext(parentContext) {\n\t\tvar self = this;\n\t\tself._currentContext = parentContext ? new Map(parentContext) : /* @__PURE__ */ new Map();\n\t\tself.getValue = function(key) {\n\t\t\treturn self._currentContext.get(key);\n\t\t};\n\t\tself.setValue = function(key, value) {\n\t\t\tvar context = new BaseContext(self._currentContext);\n\t\t\tcontext._currentContext.set(key, value);\n\t\t\treturn context;\n\t\t};\n\t\tself.deleteValue = function(key) {\n\t\t\tvar context = new BaseContext(self._currentContext);\n\t\t\tcontext._currentContext.delete(key);\n\t\t\treturn context;\n\t\t};\n\t}\n\treturn BaseContext;\n}())();\n//#endregion\n//#region ../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/build/esm/context/NoopContextManager.js\nvar __read$1 = function(o, n) {\n\tvar m = typeof Symbol === \"function\" && o[Symbol.iterator];\n\tif (!m) return o;\n\tvar i = m.call(o), r, ar = [], e;\n\ttry {\n\t\twhile ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n\t} catch (error) {\n\t\te = { error };\n\t} finally {\n\t\ttry {\n\t\t\tif (r && !r.done && (m = i[\"return\"])) m.call(i);\n\t\t} finally {\n\t\t\tif (e) throw e.error;\n\t\t}\n\t}\n\treturn ar;\n};\nvar __spreadArray$1 = function(to, from, pack) {\n\tif (pack || arguments.length === 2) {\n\t\tfor (var i = 0, l = from.length, ar; i < l; i++) if (ar || !(i in from)) {\n\t\t\tif (!ar) ar = Array.prototype.slice.call(from, 0, i);\n\t\t\tar[i] = from[i];\n\t\t}\n\t}\n\treturn to.concat(ar || Array.prototype.slice.call(from));\n};\nvar NoopContextManager = function() {\n\tfunction NoopContextManager() {}\n\tNoopContextManager.prototype.active = function() {\n\t\treturn ROOT_CONTEXT;\n\t};\n\tNoopContextManager.prototype.with = function(_context, fn, thisArg) {\n\t\tvar args = [];\n\t\tfor (var _i = 3; _i < arguments.length; _i++) args[_i - 3] = arguments[_i];\n\t\treturn fn.call.apply(fn, __spreadArray$1([thisArg], __read$1(args), false));\n\t};\n\tNoopContextManager.prototype.bind = function(_context, target) {\n\t\treturn target;\n\t};\n\tNoopContextManager.prototype.enable = function() {\n\t\treturn this;\n\t};\n\tNoopContextManager.prototype.disable = function() {\n\t\treturn this;\n\t};\n\treturn NoopContextManager;\n}();\n//#endregion\n//#region ../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/build/esm/api/context.js\nvar __read = function(o, n) {\n\tvar m = typeof Symbol === \"function\" && o[Symbol.iterator];\n\tif (!m) return o;\n\tvar i = m.call(o), r, ar = [], e;\n\ttry {\n\t\twhile ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n\t} catch (error) {\n\t\te = { error };\n\t} finally {\n\t\ttry {\n\t\t\tif (r && !r.done && (m = i[\"return\"])) m.call(i);\n\t\t} finally {\n\t\t\tif (e) throw e.error;\n\t\t}\n\t}\n\treturn ar;\n};\nvar __spreadArray = function(to, from, pack) {\n\tif (pack || arguments.length === 2) {\n\t\tfor (var i = 0, l = from.length, ar; i < l; i++) if (ar || !(i in from)) {\n\t\t\tif (!ar) ar = Array.prototype.slice.call(from, 0, i);\n\t\t\tar[i] = from[i];\n\t\t}\n\t}\n\treturn to.concat(ar || Array.prototype.slice.call(from));\n};\nvar API_NAME$1 = \"context\";\nvar NOOP_CONTEXT_MANAGER = new NoopContextManager();\n/**\n* Singleton object which represents the entry point to the OpenTelemetry Context API\n*/\nvar ContextAPI = function() {\n\t/** Empty private constructor prevents end users from constructing a new instance of the API */\n\tfunction ContextAPI() {}\n\t/** Get the singleton instance of the Context API */\n\tContextAPI.getInstance = function() {\n\t\tif (!this._instance) this._instance = new ContextAPI();\n\t\treturn this._instance;\n\t};\n\t/**\n\t* Set the current context manager.\n\t*\n\t* @returns true if the context manager was successfully registered, else false\n\t*/\n\tContextAPI.prototype.setGlobalContextManager = function(contextManager) {\n\t\treturn registerGlobal(API_NAME$1, contextManager, DiagAPI.instance());\n\t};\n\t/**\n\t* Get the currently active context\n\t*/\n\tContextAPI.prototype.active = function() {\n\t\treturn this._getContextManager().active();\n\t};\n\t/**\n\t* Execute a function with an active context\n\t*\n\t* @param context context to be active during function execution\n\t* @param fn function to execute in a context\n\t* @param thisArg optional receiver to be used for calling fn\n\t* @param args optional arguments forwarded to fn\n\t*/\n\tContextAPI.prototype.with = function(context, fn, thisArg) {\n\t\tvar _a;\n\t\tvar args = [];\n\t\tfor (var _i = 3; _i < arguments.length; _i++) args[_i - 3] = arguments[_i];\n\t\treturn (_a = this._getContextManager()).with.apply(_a, __spreadArray([\n\t\t\tcontext,\n\t\t\tfn,\n\t\t\tthisArg\n\t\t], __read(args), false));\n\t};\n\t/**\n\t* Bind a context to a target function or event emitter\n\t*\n\t* @param context context to bind to the event emitter or function. Defaults to the currently active context\n\t* @param target function or event emitter to bind\n\t*/\n\tContextAPI.prototype.bind = function(context, target) {\n\t\treturn this._getContextManager().bind(context, target);\n\t};\n\tContextAPI.prototype._getContextManager = function() {\n\t\treturn getGlobal(API_NAME$1) || NOOP_CONTEXT_MANAGER;\n\t};\n\t/** Disable and remove the global context manager */\n\tContextAPI.prototype.disable = function() {\n\t\tthis._getContextManager().disable();\n\t\tunregisterGlobal(API_NAME$1, DiagAPI.instance());\n\t};\n\treturn ContextAPI;\n}();\n//#endregion\n//#region ../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/build/esm/trace/trace_flags.js\nvar TraceFlags;\n(function(TraceFlags) {\n\t/** Represents no flag set. */\n\tTraceFlags[TraceFlags[\"NONE\"] = 0] = \"NONE\";\n\t/** Bit to represent whether trace is sampled in trace flags. */\n\tTraceFlags[TraceFlags[\"SAMPLED\"] = 1] = \"SAMPLED\";\n})(TraceFlags || (TraceFlags = {}));\nvar INVALID_SPAN_CONTEXT = {\n\ttraceId: \"00000000000000000000000000000000\",\n\tspanId: \"0000000000000000\",\n\ttraceFlags: TraceFlags.NONE\n};\n//#endregion\n//#region ../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/build/esm/trace/NonRecordingSpan.js\n/**\n* The NonRecordingSpan is the default {@link Span} that is used when no Span\n* implementation is available. All operations are no-op including context\n* propagation.\n*/\nvar NonRecordingSpan = function() {\n\tfunction NonRecordingSpan(_spanContext) {\n\t\tif (_spanContext === void 0) _spanContext = INVALID_SPAN_CONTEXT;\n\t\tthis._spanContext = _spanContext;\n\t}\n\tNonRecordingSpan.prototype.spanContext = function() {\n\t\treturn this._spanContext;\n\t};\n\tNonRecordingSpan.prototype.setAttribute = function(_key, _value) {\n\t\treturn this;\n\t};\n\tNonRecordingSpan.prototype.setAttributes = function(_attributes) {\n\t\treturn this;\n\t};\n\tNonRecordingSpan.prototype.addEvent = function(_name, _attributes) {\n\t\treturn this;\n\t};\n\tNonRecordingSpan.prototype.addLink = function(_link) {\n\t\treturn this;\n\t};\n\tNonRecordingSpan.prototype.addLinks = function(_links) {\n\t\treturn this;\n\t};\n\tNonRecordingSpan.prototype.setStatus = function(_status) {\n\t\treturn this;\n\t};\n\tNonRecordingSpan.prototype.updateName = function(_name) {\n\t\treturn this;\n\t};\n\tNonRecordingSpan.prototype.end = function(_endTime) {};\n\tNonRecordingSpan.prototype.isRecording = function() {\n\t\treturn false;\n\t};\n\tNonRecordingSpan.prototype.recordException = function(_exception, _time) {};\n\treturn NonRecordingSpan;\n}();\n//#endregion\n//#region ../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/build/esm/trace/context-utils.js\n/**\n* span key\n*/\nvar SPAN_KEY = createContextKey(\"OpenTelemetry Context Key SPAN\");\n/**\n* Return the span if one exists\n*\n* @param context context to get span from\n*/\nfunction getSpan(context) {\n\treturn context.getValue(SPAN_KEY) || void 0;\n}\n/**\n* Gets the span from the current context, if one exists.\n*/\nfunction getActiveSpan() {\n\treturn getSpan(ContextAPI.getInstance().active());\n}\n/**\n* Set the span on a context\n*\n* @param context context to use as parent\n* @param span span to set active\n*/\nfunction setSpan(context, span) {\n\treturn context.setValue(SPAN_KEY, span);\n}\n/**\n* Remove current span stored in the context\n*\n* @param context context to delete span from\n*/\nfunction deleteSpan(context) {\n\treturn context.deleteValue(SPAN_KEY);\n}\n/**\n* Wrap span context in a NoopSpan and set as span in a new\n* context\n*\n* @param context context to set active span on\n* @param spanContext span context to be wrapped\n*/\nfunction setSpanContext(context, spanContext) {\n\treturn setSpan(context, new NonRecordingSpan(spanContext));\n}\n/**\n* Get the span context of the span if it exists.\n*\n* @param context context to get values from\n*/\nfunction getSpanContext(context) {\n\tvar _a;\n\treturn (_a = getSpan(context)) === null || _a === void 0 ? void 0 : _a.spanContext();\n}\n//#endregion\n//#region ../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/build/esm/trace/spancontext-utils.js\nvar VALID_TRACEID_REGEX = /^([0-9a-f]{32})$/i;\nvar VALID_SPANID_REGEX = /^[0-9a-f]{16}$/i;\nfunction isValidTraceId(traceId) {\n\treturn VALID_TRACEID_REGEX.test(traceId) && traceId !== \"00000000000000000000000000000000\";\n}\nfunction isValidSpanId(spanId) {\n\treturn VALID_SPANID_REGEX.test(spanId) && spanId !== \"0000000000000000\";\n}\n/**\n* Returns true if this {@link SpanContext} is valid.\n* @return true if this {@link SpanContext} is valid.\n*/\nfunction isSpanContextValid(spanContext) {\n\treturn isValidTraceId(spanContext.traceId) && isValidSpanId(spanContext.spanId);\n}\n/**\n* Wrap the given {@link SpanContext} in a new non-recording {@link Span}\n*\n* @param spanContext span context to be wrapped\n* @returns a new non-recording {@link Span} with the provided context\n*/\nfunction wrapSpanContext(spanContext) {\n\treturn new NonRecordingSpan(spanContext);\n}\n//#endregion\n//#region ../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/build/esm/trace/NoopTracer.js\nvar contextApi = ContextAPI.getInstance();\n/**\n* No-op implementations of {@link Tracer}.\n*/\nvar NoopTracer = function() {\n\tfunction NoopTracer() {}\n\tNoopTracer.prototype.startSpan = function(name, options, context) {\n\t\tif (context === void 0) context = contextApi.active();\n\t\tif (Boolean(options === null || options === void 0 ? void 0 : options.root)) return new NonRecordingSpan();\n\t\tvar parentFromContext = context && getSpanContext(context);\n\t\tif (isSpanContext(parentFromContext) && isSpanContextValid(parentFromContext)) return new NonRecordingSpan(parentFromContext);\n\t\telse return new NonRecordingSpan();\n\t};\n\tNoopTracer.prototype.startActiveSpan = function(name, arg2, arg3, arg4) {\n\t\tvar opts;\n\t\tvar ctx;\n\t\tvar fn;\n\t\tif (arguments.length < 2) return;\n\t\telse if (arguments.length === 2) fn = arg2;\n\t\telse if (arguments.length === 3) {\n\t\t\topts = arg2;\n\t\t\tfn = arg3;\n\t\t} else {\n\t\t\topts = arg2;\n\t\t\tctx = arg3;\n\t\t\tfn = arg4;\n\t\t}\n\t\tvar parentContext = ctx !== null && ctx !== void 0 ? ctx : contextApi.active();\n\t\tvar span = this.startSpan(name, opts, parentContext);\n\t\tvar contextWithSpanSet = setSpan(parentContext, span);\n\t\treturn contextApi.with(contextWithSpanSet, fn, void 0, span);\n\t};\n\treturn NoopTracer;\n}();\nfunction isSpanContext(spanContext) {\n\treturn typeof spanContext === \"object\" && typeof spanContext[\"spanId\"] === \"string\" && typeof spanContext[\"traceId\"] === \"string\" && typeof spanContext[\"traceFlags\"] === \"number\";\n}\n//#endregion\n//#region ../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracer.js\nvar NOOP_TRACER = new NoopTracer();\n/**\n* Proxy tracer provided by the proxy tracer provider\n*/\nvar ProxyTracer = function() {\n\tfunction ProxyTracer(_provider, name, version, options) {\n\t\tthis._provider = _provider;\n\t\tthis.name = name;\n\t\tthis.version = version;\n\t\tthis.options = options;\n\t}\n\tProxyTracer.prototype.startSpan = function(name, options, context) {\n\t\treturn this._getTracer().startSpan(name, options, context);\n\t};\n\tProxyTracer.prototype.startActiveSpan = function(_name, _options, _context, _fn) {\n\t\tvar tracer = this._getTracer();\n\t\treturn Reflect.apply(tracer.startActiveSpan, tracer, arguments);\n\t};\n\t/**\n\t* Try to get a tracer from the proxy tracer provider.\n\t* If the proxy tracer provider has no delegate, return a noop tracer.\n\t*/\n\tProxyTracer.prototype._getTracer = function() {\n\t\tif (this._delegate) return this._delegate;\n\t\tvar tracer = this._provider.getDelegateTracer(this.name, this.version, this.options);\n\t\tif (!tracer) return NOOP_TRACER;\n\t\tthis._delegate = tracer;\n\t\treturn this._delegate;\n\t};\n\treturn ProxyTracer;\n}();\n//#endregion\n//#region ../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/build/esm/trace/ProxyTracerProvider.js\nvar NOOP_TRACER_PROVIDER = new (function() {\n\tfunction NoopTracerProvider() {}\n\tNoopTracerProvider.prototype.getTracer = function(_name, _version, _options) {\n\t\treturn new NoopTracer();\n\t};\n\treturn NoopTracerProvider;\n}())();\n/**\n* Tracer provider which provides {@link ProxyTracer}s.\n*\n* Before a delegate is set, tracers provided are NoOp.\n*   When a delegate is set, traces are provided from the delegate.\n*   When a delegate is set after tracers have already been provided,\n*   all tracers already provided will use the provided delegate implementation.\n*/\nvar ProxyTracerProvider = function() {\n\tfunction ProxyTracerProvider() {}\n\t/**\n\t* Get a {@link ProxyTracer}\n\t*/\n\tProxyTracerProvider.prototype.getTracer = function(name, version, options) {\n\t\tvar _a;\n\t\treturn (_a = this.getDelegateTracer(name, version, options)) !== null && _a !== void 0 ? _a : new ProxyTracer(this, name, version, options);\n\t};\n\tProxyTracerProvider.prototype.getDelegate = function() {\n\t\tvar _a;\n\t\treturn (_a = this._delegate) !== null && _a !== void 0 ? _a : NOOP_TRACER_PROVIDER;\n\t};\n\t/**\n\t* Set the delegate tracer provider\n\t*/\n\tProxyTracerProvider.prototype.setDelegate = function(delegate) {\n\t\tthis._delegate = delegate;\n\t};\n\tProxyTracerProvider.prototype.getDelegateTracer = function(name, version, options) {\n\t\tvar _a;\n\t\treturn (_a = this._delegate) === null || _a === void 0 ? void 0 : _a.getTracer(name, version, options);\n\t};\n\treturn ProxyTracerProvider;\n}();\n//#endregion\n//#region ../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/build/esm/trace/status.js\n/**\n* An enumeration of status codes.\n*/\nvar SpanStatusCode;\n(function(SpanStatusCode) {\n\t/**\n\t* The default status.\n\t*/\n\tSpanStatusCode[SpanStatusCode[\"UNSET\"] = 0] = \"UNSET\";\n\t/**\n\t* The operation has been validated by an Application developer or\n\t* Operator to have completed successfully.\n\t*/\n\tSpanStatusCode[SpanStatusCode[\"OK\"] = 1] = \"OK\";\n\t/**\n\t* The operation contains an error.\n\t*/\n\tSpanStatusCode[SpanStatusCode[\"ERROR\"] = 2] = \"ERROR\";\n})(SpanStatusCode || (SpanStatusCode = {}));\n//#endregion\n//#region ../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/build/esm/api/trace.js\nvar API_NAME = \"trace\";\n//#endregion\n//#region ../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@opentelemetry/api/1.9.0/ee469078ed078052a7533b2805abc7686d72155c80f67e8929d9d1ae6c630f05/node_modules/@opentelemetry/api/build/esm/trace-api.js\n/** Entrypoint for trace API */\nvar trace = function() {\n\t/** Empty private constructor prevents end users from constructing a new instance of the API */\n\tfunction TraceAPI() {\n\t\tthis._proxyTracerProvider = new ProxyTracerProvider();\n\t\tthis.wrapSpanContext = wrapSpanContext;\n\t\tthis.isSpanContextValid = isSpanContextValid;\n\t\tthis.deleteSpan = deleteSpan;\n\t\tthis.getSpan = getSpan;\n\t\tthis.getActiveSpan = getActiveSpan;\n\t\tthis.getSpanContext = getSpanContext;\n\t\tthis.setSpan = setSpan;\n\t\tthis.setSpanContext = setSpanContext;\n\t}\n\t/** Get the singleton instance of the Trace API */\n\tTraceAPI.getInstance = function() {\n\t\tif (!this._instance) this._instance = new TraceAPI();\n\t\treturn this._instance;\n\t};\n\t/**\n\t* Set the current global tracer.\n\t*\n\t* @returns true if the tracer provider was successfully registered, else false\n\t*/\n\tTraceAPI.prototype.setGlobalTracerProvider = function(provider) {\n\t\tvar success = registerGlobal(API_NAME, this._proxyTracerProvider, DiagAPI.instance());\n\t\tif (success) this._proxyTracerProvider.setDelegate(provider);\n\t\treturn success;\n\t};\n\t/**\n\t* Returns the global tracer provider.\n\t*/\n\tTraceAPI.prototype.getTracerProvider = function() {\n\t\treturn getGlobal(API_NAME) || this._proxyTracerProvider;\n\t};\n\t/**\n\t* Returns a tracer from the global tracer provider.\n\t*/\n\tTraceAPI.prototype.getTracer = function(name, version) {\n\t\treturn this.getTracerProvider().getTracer(name, version);\n\t};\n\t/** Remove the global tracer provider */\n\tTraceAPI.prototype.disable = function() {\n\t\tunregisterGlobal(API_NAME, DiagAPI.instance());\n\t\tthis._proxyTracerProvider = new ProxyTracerProvider();\n\t};\n\treturn TraceAPI;\n}().getInstance();\n//#endregion\n//#region ../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/ai/5.0.226/fac8217dc8d34e85b5f38a8cc71c59a1b2ae6d9f27e0dd1e2738a30e54e8ae3c/node_modules/ai/dist/index.mjs\nvar __defProp = Object.defineProperty;\nvar __export = (target, all) => {\n\tfor (var name16 in all) __defProp(target, name16, {\n\t\tget: all[name16],\n\t\tenumerable: true\n\t});\n};\nvar name = \"AI_NoOutputSpecifiedError\";\nvar marker = `vercel.ai.error.${name}`;\nvar symbol = Symbol.for(marker);\nvar _a;\nvar NoOutputSpecifiedError = class extends AISDKError {\n\tconstructor({ message = \"No output specified.\" } = {}) {\n\t\tsuper({\n\t\t\tname,\n\t\t\tmessage\n\t\t});\n\t\tthis[_a] = true;\n\t}\n\tstatic isInstance(error) {\n\t\treturn AISDKError.hasMarker(error, marker);\n\t}\n};\n_a = symbol;\nfunction formatWarning(warning) {\n\tconst prefix = \"AI SDK Warning:\";\n\tswitch (warning.type) {\n\t\tcase \"unsupported-setting\": {\n\t\t\tlet message = `${prefix} The \"${warning.setting}\" setting is not supported by this model`;\n\t\t\tif (warning.details) message += ` - ${warning.details}`;\n\t\t\treturn message;\n\t\t}\n\t\tcase \"unsupported-tool\": {\n\t\t\tlet message = `${prefix} The tool \"${\"name\" in warning.tool ? warning.tool.name : \"unknown tool\"}\" is not supported by this model`;\n\t\t\tif (warning.details) message += ` - ${warning.details}`;\n\t\t\treturn message;\n\t\t}\n\t\tcase \"other\": return `${prefix} ${warning.message}`;\n\t\tdefault: return `${prefix} ${JSON.stringify(warning, null, 2)}`;\n\t}\n}\nvar FIRST_WARNING_INFO_MESSAGE = \"AI SDK Warning System: To turn off warning logging, set the AI_SDK_LOG_WARNINGS global to false.\";\nvar hasLoggedBefore = false;\nfunction emitWarning({ message, type }) {\n\tif (typeof process !== \"undefined\" && typeof process.emitWarning === \"function\") process.emitWarning(message, { type });\n\telse console.warn(message);\n}\nvar logWarnings = (warnings) => {\n\tif (warnings.length === 0) return;\n\tconst logger = globalThis.AI_SDK_LOG_WARNINGS;\n\tif (logger === false) return;\n\tif (typeof logger === \"function\") {\n\t\tlogger(warnings);\n\t\treturn;\n\t}\n\tif (!hasLoggedBefore) {\n\t\thasLoggedBefore = true;\n\t\temitWarning({\n\t\t\tmessage: FIRST_WARNING_INFO_MESSAGE,\n\t\t\ttype: \"Warning\"\n\t\t});\n\t}\n\tfor (const warning of warnings) emitWarning({\n\t\tmessage: formatWarning(warning),\n\t\ttype: \"Warning\"\n\t});\n};\nvar name2 = \"AI_InvalidArgumentError\";\nvar marker2 = `vercel.ai.error.${name2}`;\nvar symbol2 = Symbol.for(marker2);\nvar _a2;\nvar InvalidArgumentError = class extends AISDKError {\n\tconstructor({ parameter, value, message }) {\n\t\tsuper({\n\t\t\tname: name2,\n\t\t\tmessage: `Invalid argument for parameter ${parameter}: ${message}`\n\t\t});\n\t\tthis[_a2] = true;\n\t\tthis.parameter = parameter;\n\t\tthis.value = value;\n\t}\n\tstatic isInstance(error) {\n\t\treturn AISDKError.hasMarker(error, marker2);\n\t}\n};\n_a2 = symbol2;\nvar name3 = \"AI_InvalidStreamPartError\";\nvar marker3 = `vercel.ai.error.${name3}`;\nvar symbol3 = Symbol.for(marker3);\nvar _a3;\nvar InvalidStreamPartError = class extends AISDKError {\n\tconstructor({ chunk, message }) {\n\t\tsuper({\n\t\t\tname: name3,\n\t\t\tmessage\n\t\t});\n\t\tthis[_a3] = true;\n\t\tthis.chunk = chunk;\n\t}\n\tstatic isInstance(error) {\n\t\treturn AISDKError.hasMarker(error, marker3);\n\t}\n};\n_a3 = symbol3;\nvar name4 = \"AI_InvalidToolInputError\";\nvar marker4 = `vercel.ai.error.${name4}`;\nvar symbol4 = Symbol.for(marker4);\nvar _a4;\nvar InvalidToolInputError = class extends AISDKError {\n\tconstructor({ toolInput, toolName, cause, message = `Invalid input for tool ${toolName}: ${getErrorMessage(cause)}` }) {\n\t\tsuper({\n\t\t\tname: name4,\n\t\t\tmessage,\n\t\t\tcause\n\t\t});\n\t\tthis[_a4] = true;\n\t\tthis.toolInput = toolInput;\n\t\tthis.toolName = toolName;\n\t}\n\tstatic isInstance(error) {\n\t\treturn AISDKError.hasMarker(error, marker4);\n\t}\n};\n_a4 = symbol4;\nvar name5 = \"AI_NoImageGeneratedError\";\nvar marker5 = `vercel.ai.error.${name5}`;\nvar symbol5 = Symbol.for(marker5);\nvar _a5;\nvar NoImageGeneratedError = class extends AISDKError {\n\tconstructor({ message = \"No image generated.\", cause, responses }) {\n\t\tsuper({\n\t\t\tname: name5,\n\t\t\tmessage,\n\t\t\tcause\n\t\t});\n\t\tthis[_a5] = true;\n\t\tthis.responses = responses;\n\t}\n\tstatic isInstance(error) {\n\t\treturn AISDKError.hasMarker(error, marker5);\n\t}\n};\n_a5 = symbol5;\nvar name6 = \"AI_NoObjectGeneratedError\";\nvar marker6 = `vercel.ai.error.${name6}`;\nvar symbol6 = Symbol.for(marker6);\nvar _a6;\nvar NoObjectGeneratedError = class extends AISDKError {\n\tconstructor({ message = \"No object generated.\", cause, text: text2, response, usage, finishReason }) {\n\t\tsuper({\n\t\t\tname: name6,\n\t\t\tmessage,\n\t\t\tcause\n\t\t});\n\t\tthis[_a6] = true;\n\t\tthis.text = text2;\n\t\tthis.response = response;\n\t\tthis.usage = usage;\n\t\tthis.finishReason = finishReason;\n\t}\n\tstatic isInstance(error) {\n\t\treturn AISDKError.hasMarker(error, marker6);\n\t}\n};\n_a6 = symbol6;\nvar name7 = \"AI_NoOutputGeneratedError\";\nvar marker7 = `vercel.ai.error.${name7}`;\nvar symbol7 = Symbol.for(marker7);\nvar _a7;\nvar NoOutputGeneratedError = class extends AISDKError {\n\tconstructor({ message = \"No output generated.\", cause } = {}) {\n\t\tsuper({\n\t\t\tname: name7,\n\t\t\tmessage,\n\t\t\tcause\n\t\t});\n\t\tthis[_a7] = true;\n\t}\n\tstatic isInstance(error) {\n\t\treturn AISDKError.hasMarker(error, marker7);\n\t}\n};\n_a7 = symbol7;\nvar NoSpeechGeneratedError = class extends AISDKError {\n\tconstructor(options) {\n\t\tsuper({\n\t\t\tname: \"AI_NoSpeechGeneratedError\",\n\t\t\tmessage: \"No speech audio generated.\"\n\t\t});\n\t\tthis.responses = options.responses;\n\t}\n};\nvar name8 = \"AI_NoSuchToolError\";\nvar marker8 = `vercel.ai.error.${name8}`;\nvar symbol8 = Symbol.for(marker8);\nvar _a8;\nvar NoSuchToolError = class extends AISDKError {\n\tconstructor({ toolName, availableTools = void 0, message = `Model tried to call unavailable tool '${toolName}'. ${availableTools === void 0 ? \"No tools are available.\" : `Available tools: ${availableTools.join(\", \")}.`}` }) {\n\t\tsuper({\n\t\t\tname: name8,\n\t\t\tmessage\n\t\t});\n\t\tthis[_a8] = true;\n\t\tthis.toolName = toolName;\n\t\tthis.availableTools = availableTools;\n\t}\n\tstatic isInstance(error) {\n\t\treturn AISDKError.hasMarker(error, marker8);\n\t}\n};\n_a8 = symbol8;\nvar name9 = \"AI_ToolCallRepairError\";\nvar marker9 = `vercel.ai.error.${name9}`;\nvar symbol9 = Symbol.for(marker9);\nvar _a9;\nvar ToolCallRepairError = class extends AISDKError {\n\tconstructor({ cause, originalError, message = `Error repairing tool call: ${getErrorMessage(cause)}` }) {\n\t\tsuper({\n\t\t\tname: name9,\n\t\t\tmessage,\n\t\t\tcause\n\t\t});\n\t\tthis[_a9] = true;\n\t\tthis.originalError = originalError;\n\t}\n\tstatic isInstance(error) {\n\t\treturn AISDKError.hasMarker(error, marker9);\n\t}\n};\n_a9 = symbol9;\nvar UnsupportedModelVersionError = class extends AISDKError {\n\tconstructor(options) {\n\t\tsuper({\n\t\t\tname: \"AI_UnsupportedModelVersionError\",\n\t\t\tmessage: `Unsupported model version ${options.version} for provider \"${options.provider}\" and model \"${options.modelId}\". AI SDK 5 only supports models that implement specification version \"v2\".`\n\t\t});\n\t\tthis.version = options.version;\n\t\tthis.provider = options.provider;\n\t\tthis.modelId = options.modelId;\n\t}\n};\nvar name10 = \"AI_InvalidDataContentError\";\nvar marker10 = `vercel.ai.error.${name10}`;\nvar symbol10 = Symbol.for(marker10);\nvar _a10;\nvar InvalidDataContentError = class extends AISDKError {\n\tconstructor({ content, cause, message = `Invalid data content. Expected a base64 string, Uint8Array, ArrayBuffer, or Buffer, but got ${typeof content}.` }) {\n\t\tsuper({\n\t\t\tname: name10,\n\t\t\tmessage,\n\t\t\tcause\n\t\t});\n\t\tthis[_a10] = true;\n\t\tthis.content = content;\n\t}\n\tstatic isInstance(error) {\n\t\treturn AISDKError.hasMarker(error, marker10);\n\t}\n};\n_a10 = symbol10;\nvar name11 = \"AI_InvalidMessageRoleError\";\nvar marker11 = `vercel.ai.error.${name11}`;\nvar symbol11 = Symbol.for(marker11);\nvar _a11;\nvar InvalidMessageRoleError = class extends AISDKError {\n\tconstructor({ role, message = `Invalid message role: '${role}'. Must be one of: \"system\", \"user\", \"assistant\", \"tool\".` }) {\n\t\tsuper({\n\t\t\tname: name11,\n\t\t\tmessage\n\t\t});\n\t\tthis[_a11] = true;\n\t\tthis.role = role;\n\t}\n\tstatic isInstance(error) {\n\t\treturn AISDKError.hasMarker(error, marker11);\n\t}\n};\n_a11 = symbol11;\nvar name12 = \"AI_MessageConversionError\";\nvar marker12 = `vercel.ai.error.${name12}`;\nvar symbol12 = Symbol.for(marker12);\nvar _a12;\nvar MessageConversionError = class extends AISDKError {\n\tconstructor({ originalMessage, message }) {\n\t\tsuper({\n\t\t\tname: name12,\n\t\t\tmessage\n\t\t});\n\t\tthis[_a12] = true;\n\t\tthis.originalMessage = originalMessage;\n\t}\n\tstatic isInstance(error) {\n\t\treturn AISDKError.hasMarker(error, marker12);\n\t}\n};\n_a12 = symbol12;\nvar name13 = \"AI_DownloadError\";\nvar marker13 = `vercel.ai.error.${name13}`;\nvar symbol13 = Symbol.for(marker13);\nvar _a13;\nvar DownloadError = class extends AISDKError {\n\tconstructor({ url, statusCode, statusText, cause, message = cause == null ? `Failed to download ${url}: ${statusCode} ${statusText}` : `Failed to download ${url}: ${cause}` }) {\n\t\tsuper({\n\t\t\tname: name13,\n\t\t\tmessage,\n\t\t\tcause\n\t\t});\n\t\tthis[_a13] = true;\n\t\tthis.url = url;\n\t\tthis.statusCode = statusCode;\n\t\tthis.statusText = statusText;\n\t}\n\tstatic isInstance(error) {\n\t\treturn AISDKError.hasMarker(error, marker13);\n\t}\n};\n_a13 = symbol13;\nvar name14 = \"AI_RetryError\";\nvar marker14 = `vercel.ai.error.${name14}`;\nvar symbol14 = Symbol.for(marker14);\nvar _a14;\nvar RetryError = class extends AISDKError {\n\tconstructor({ message, reason, errors }) {\n\t\tsuper({\n\t\t\tname: name14,\n\t\t\tmessage\n\t\t});\n\t\tthis[_a14] = true;\n\t\tthis.reason = reason;\n\t\tthis.errors = errors;\n\t\tthis.lastError = errors[errors.length - 1];\n\t}\n\tstatic isInstance(error) {\n\t\treturn AISDKError.hasMarker(error, marker14);\n\t}\n};\n_a14 = symbol14;\nfunction resolveLanguageModel(model) {\n\tif (typeof model !== \"string\") {\n\t\tif (model.specificationVersion !== \"v2\") throw new UnsupportedModelVersionError({\n\t\t\tversion: model.specificationVersion,\n\t\t\tprovider: model.provider,\n\t\t\tmodelId: model.modelId\n\t\t});\n\t\treturn model;\n\t}\n\treturn getGlobalProvider().languageModel(model);\n}\nfunction resolveEmbeddingModel(model) {\n\tif (typeof model !== \"string\") {\n\t\tif (model.specificationVersion !== \"v2\") throw new UnsupportedModelVersionError({\n\t\t\tversion: model.specificationVersion,\n\t\t\tprovider: model.provider,\n\t\t\tmodelId: model.modelId\n\t\t});\n\t\treturn model;\n\t}\n\treturn getGlobalProvider().textEmbeddingModel(model);\n}\nfunction resolveImageModel(model) {\n\tif (typeof model !== \"string\") {\n\t\tif (model.specificationVersion !== \"v2\") throw new UnsupportedModelVersionError({\n\t\t\tversion: model.specificationVersion,\n\t\t\tprovider: model.provider,\n\t\t\tmodelId: model.modelId\n\t\t});\n\t\treturn model;\n\t}\n\treturn getGlobalProvider().imageModel(model);\n}\nfunction getGlobalProvider() {\n\tvar _a16;\n\treturn (_a16 = globalThis.AI_SDK_DEFAULT_PROVIDER) != null ? _a16 : gateway;\n}\nvar imageMediaTypeSignatures = [\n\t{\n\t\tmediaType: \"image/gif\",\n\t\tbytesPrefix: [\n\t\t\t71,\n\t\t\t73,\n\t\t\t70\n\t\t]\n\t},\n\t{\n\t\tmediaType: \"image/png\",\n\t\tbytesPrefix: [\n\t\t\t137,\n\t\t\t80,\n\t\t\t78,\n\t\t\t71\n\t\t]\n\t},\n\t{\n\t\tmediaType: \"image/jpeg\",\n\t\tbytesPrefix: [255, 216]\n\t},\n\t{\n\t\tmediaType: \"image/webp\",\n\t\tbytesPrefix: [\n\t\t\t82,\n\t\t\t73,\n\t\t\t70,\n\t\t\t70,\n\t\t\tnull,\n\t\t\tnull,\n\t\t\tnull,\n\t\t\tnull,\n\t\t\t87,\n\t\t\t69,\n\t\t\t66,\n\t\t\t80\n\t\t]\n\t},\n\t{\n\t\tmediaType: \"image/bmp\",\n\t\tbytesPrefix: [66, 77]\n\t},\n\t{\n\t\tmediaType: \"image/tiff\",\n\t\tbytesPrefix: [\n\t\t\t73,\n\t\t\t73,\n\t\t\t42,\n\t\t\t0\n\t\t]\n\t},\n\t{\n\t\tmediaType: \"image/tiff\",\n\t\tbytesPrefix: [\n\t\t\t77,\n\t\t\t77,\n\t\t\t0,\n\t\t\t42\n\t\t]\n\t},\n\t{\n\t\tmediaType: \"image/avif\",\n\t\tbytesPrefix: [\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t32,\n\t\t\t102,\n\t\t\t116,\n\t\t\t121,\n\t\t\t112,\n\t\t\t97,\n\t\t\t118,\n\t\t\t105,\n\t\t\t102\n\t\t]\n\t},\n\t{\n\t\tmediaType: \"image/heic\",\n\t\tbytesPrefix: [\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t32,\n\t\t\t102,\n\t\t\t116,\n\t\t\t121,\n\t\t\t112,\n\t\t\t104,\n\t\t\t101,\n\t\t\t105,\n\t\t\t99\n\t\t]\n\t}\n];\nvar audioMediaTypeSignatures = [\n\t{\n\t\tmediaType: \"audio/mpeg\",\n\t\tbytesPrefix: [255, 251]\n\t},\n\t{\n\t\tmediaType: \"audio/mpeg\",\n\t\tbytesPrefix: [255, 250]\n\t},\n\t{\n\t\tmediaType: \"audio/mpeg\",\n\t\tbytesPrefix: [255, 243]\n\t},\n\t{\n\t\tmediaType: \"audio/mpeg\",\n\t\tbytesPrefix: [255, 242]\n\t},\n\t{\n\t\tmediaType: \"audio/mpeg\",\n\t\tbytesPrefix: [255, 227]\n\t},\n\t{\n\t\tmediaType: \"audio/mpeg\",\n\t\tbytesPrefix: [255, 226]\n\t},\n\t{\n\t\tmediaType: \"audio/wav\",\n\t\tbytesPrefix: [\n\t\t\t82,\n\t\t\t73,\n\t\t\t70,\n\t\t\t70,\n\t\t\tnull,\n\t\t\tnull,\n\t\t\tnull,\n\t\t\tnull,\n\t\t\t87,\n\t\t\t65,\n\t\t\t86,\n\t\t\t69\n\t\t]\n\t},\n\t{\n\t\tmediaType: \"audio/ogg\",\n\t\tbytesPrefix: [\n\t\t\t79,\n\t\t\t103,\n\t\t\t103,\n\t\t\t83\n\t\t]\n\t},\n\t{\n\t\tmediaType: \"audio/flac\",\n\t\tbytesPrefix: [\n\t\t\t102,\n\t\t\t76,\n\t\t\t97,\n\t\t\t67\n\t\t]\n\t},\n\t{\n\t\tmediaType: \"audio/aac\",\n\t\tbytesPrefix: [\n\t\t\t64,\n\t\t\t21,\n\t\t\t0,\n\t\t\t0\n\t\t]\n\t},\n\t{\n\t\tmediaType: \"audio/mp4\",\n\t\tbytesPrefix: [\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\tnull,\n\t\t\t102,\n\t\t\t116,\n\t\t\t121,\n\t\t\t112\n\t\t]\n\t},\n\t{\n\t\tmediaType: \"audio/webm\",\n\t\tbytesPrefix: [\n\t\t\t26,\n\t\t\t69,\n\t\t\t223,\n\t\t\t163\n\t\t]\n\t}\n];\nvar DEFAULT_SNIFF_BYTES = 18;\nvar ID3_SCAN_BYTES = 131084;\nfunction decodePrefix(data, maxBytes) {\n\tif (typeof data !== \"string\") return data.length > maxBytes ? data.subarray(0, maxBytes) : data;\n\tconst maxChars = Math.ceil(maxBytes / 3) * 4;\n\tconst bytes = convertBase64ToUint8Array(data.substring(0, Math.min(data.length, maxChars)));\n\treturn bytes.length > maxBytes ? bytes.subarray(0, maxBytes) : bytes;\n}\nfunction hasID3(bytes) {\n\treturn bytes.length > 10 && bytes[0] === 73 && bytes[1] === 68 && bytes[2] === 51;\n}\nvar stripID3 = (bytes) => {\n\tconst id3Size = (bytes[6] & 127) << 21 | (bytes[7] & 127) << 14 | (bytes[8] & 127) << 7 | bytes[9] & 127;\n\treturn bytes.subarray(id3Size + 10);\n};\nfunction detectMediaType({ data, signatures }) {\n\tlet bytes = decodePrefix(data, DEFAULT_SNIFF_BYTES);\n\tif (hasID3(bytes)) bytes = stripID3(decodePrefix(data, ID3_SCAN_BYTES));\n\tfor (const signature of signatures) if (bytes.length >= signature.bytesPrefix.length && signature.bytesPrefix.every((byte, index) => byte === null || bytes[index] === byte)) return signature.mediaType;\n}\nvar VERSION = \"5.0.226\";\nvar download = async ({ url, maxBytes, abortSignal }) => {\n\tvar _a16;\n\tconst urlText = url.toString();\n\ttry {\n\t\tconst response = await fetchWithValidatedRedirects({\n\t\t\turl: urlText,\n\t\t\theaders: withUserAgentSuffix({}, `ai-sdk/${VERSION}`, getRuntimeEnvironmentUserAgent()),\n\t\t\tabortSignal\n\t\t});\n\t\tif (!response.ok) {\n\t\t\tawait cancelResponseBody(response);\n\t\t\tthrow new DownloadError$1({\n\t\t\t\turl: urlText,\n\t\t\t\tstatusCode: response.status,\n\t\t\t\tstatusText: response.statusText\n\t\t\t});\n\t\t}\n\t\treturn {\n\t\t\tdata: await readResponseWithSizeLimit({\n\t\t\t\tresponse,\n\t\t\t\turl: urlText,\n\t\t\t\tmaxBytes: maxBytes != null ? maxBytes : DEFAULT_MAX_DOWNLOAD_SIZE\n\t\t\t}),\n\t\t\tmediaType: (_a16 = response.headers.get(\"content-type\")) != null ? _a16 : void 0\n\t\t};\n\t} catch (error) {\n\t\tif (DownloadError$1.isInstance(error)) throw error;\n\t\tthrow new DownloadError$1({\n\t\t\turl: urlText,\n\t\t\tcause: error\n\t\t});\n\t}\n};\nvar createDefaultDownloadFunction = (download2 = download) => (requestedDownloads) => Promise.all(requestedDownloads.map(async (requestedDownload) => requestedDownload.isUrlSupportedByModel ? null : download2(requestedDownload)));\nfunction splitDataUrl(dataUrl) {\n\ttry {\n\t\tconst [header, base64Content] = dataUrl.split(\",\");\n\t\treturn {\n\t\t\tmediaType: header.split(\";\")[0].split(\":\")[1],\n\t\t\tbase64Content\n\t\t};\n\t} catch (error) {\n\t\treturn {\n\t\t\tmediaType: void 0,\n\t\t\tbase64Content: void 0\n\t\t};\n\t}\n}\nvar dataContentSchema = z.union([\n\tz.string(),\n\tz.instanceof(Uint8Array),\n\tz.instanceof(ArrayBuffer),\n\tz.custom((value) => {\n\t\tvar _a16, _b;\n\t\treturn (_b = (_a16 = globalThis.Buffer) == null ? void 0 : _a16.isBuffer(value)) != null ? _b : false;\n\t}, { message: \"Must be a Buffer\" })\n]);\nfunction convertToLanguageModelV2DataContent(content) {\n\tif (content instanceof Uint8Array) return {\n\t\tdata: content,\n\t\tmediaType: void 0\n\t};\n\tif (content instanceof ArrayBuffer) return {\n\t\tdata: new Uint8Array(content),\n\t\tmediaType: void 0\n\t};\n\tif (typeof content === \"string\") try {\n\t\tcontent = new URL(content);\n\t} catch (error) {}\n\tif (content instanceof URL && content.protocol === \"data:\") {\n\t\tconst { mediaType: dataUrlMediaType, base64Content } = splitDataUrl(content.toString());\n\t\tif (dataUrlMediaType == null || base64Content == null) throw new AISDKError({\n\t\t\tname: \"InvalidDataContentError\",\n\t\t\tmessage: `Invalid data URL format in content ${content.toString()}`\n\t\t});\n\t\treturn {\n\t\t\tdata: base64Content,\n\t\t\tmediaType: dataUrlMediaType\n\t\t};\n\t}\n\treturn {\n\t\tdata: content,\n\t\tmediaType: void 0\n\t};\n}\nfunction convertDataContentToBase64String(content) {\n\tif (typeof content === \"string\") return content;\n\tif (content instanceof ArrayBuffer) return convertUint8ArrayToBase64(new Uint8Array(content));\n\treturn convertUint8ArrayToBase64(content);\n}\nfunction convertDataContentToUint8Array(content) {\n\tif (content instanceof Uint8Array) return content;\n\tif (typeof content === \"string\") try {\n\t\treturn convertBase64ToUint8Array(content);\n\t} catch (error) {\n\t\tthrow new InvalidDataContentError({\n\t\t\tmessage: \"Invalid data content. Content string is not a base64-encoded media.\",\n\t\t\tcontent,\n\t\t\tcause: error\n\t\t});\n\t}\n\tif (content instanceof ArrayBuffer) return new Uint8Array(content);\n\tthrow new InvalidDataContentError({ content });\n}\nasync function convertToLanguageModelPrompt({ prompt, supportedUrls, download: download2 = createDefaultDownloadFunction() }) {\n\tconst downloadedAssets = await downloadAssets(prompt.messages, download2, supportedUrls);\n\treturn [...prompt.system != null ? [{\n\t\trole: \"system\",\n\t\tcontent: prompt.system\n\t}] : [], ...prompt.messages.map((message) => convertToLanguageModelMessage({\n\t\tmessage,\n\t\tdownloadedAssets\n\t}))];\n}\nfunction convertToLanguageModelMessage({ message, downloadedAssets }) {\n\tconst role = message.role;\n\tswitch (role) {\n\t\tcase \"system\": return {\n\t\t\trole: \"system\",\n\t\t\tcontent: message.content,\n\t\t\tproviderOptions: message.providerOptions\n\t\t};\n\t\tcase \"user\":\n\t\t\tif (typeof message.content === \"string\") return {\n\t\t\t\trole: \"user\",\n\t\t\t\tcontent: [{\n\t\t\t\t\ttype: \"text\",\n\t\t\t\t\ttext: message.content\n\t\t\t\t}],\n\t\t\t\tproviderOptions: message.providerOptions\n\t\t\t};\n\t\t\treturn {\n\t\t\t\trole: \"user\",\n\t\t\t\tcontent: message.content.map((part) => convertPartToLanguageModelPart(part, downloadedAssets)).filter((part) => part.type !== \"text\" || part.text !== \"\"),\n\t\t\t\tproviderOptions: message.providerOptions\n\t\t\t};\n\t\tcase \"assistant\":\n\t\t\tif (typeof message.content === \"string\") return {\n\t\t\t\trole: \"assistant\",\n\t\t\t\tcontent: [{\n\t\t\t\t\ttype: \"text\",\n\t\t\t\t\ttext: message.content\n\t\t\t\t}],\n\t\t\t\tproviderOptions: message.providerOptions\n\t\t\t};\n\t\t\treturn {\n\t\t\t\trole: \"assistant\",\n\t\t\t\tcontent: message.content.filter((part) => part.type !== \"text\" || part.text !== \"\" || part.providerOptions != null).map((part) => {\n\t\t\t\t\tconst providerOptions = part.providerOptions;\n\t\t\t\t\tswitch (part.type) {\n\t\t\t\t\t\tcase \"file\": {\n\t\t\t\t\t\t\tconst { data, mediaType } = convertToLanguageModelV2DataContent(part.data);\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\ttype: \"file\",\n\t\t\t\t\t\t\t\tdata,\n\t\t\t\t\t\t\t\tfilename: part.filename,\n\t\t\t\t\t\t\t\tmediaType: mediaType != null ? mediaType : part.mediaType,\n\t\t\t\t\t\t\t\tproviderOptions\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase \"reasoning\": return {\n\t\t\t\t\t\t\ttype: \"reasoning\",\n\t\t\t\t\t\t\ttext: part.text,\n\t\t\t\t\t\t\tproviderOptions\n\t\t\t\t\t\t};\n\t\t\t\t\t\tcase \"text\": return {\n\t\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\t\ttext: part.text,\n\t\t\t\t\t\t\tproviderOptions\n\t\t\t\t\t\t};\n\t\t\t\t\t\tcase \"tool-call\": return {\n\t\t\t\t\t\t\ttype: \"tool-call\",\n\t\t\t\t\t\t\ttoolCallId: part.toolCallId,\n\t\t\t\t\t\t\ttoolName: part.toolName,\n\t\t\t\t\t\t\tinput: part.input,\n\t\t\t\t\t\t\tproviderExecuted: part.providerExecuted,\n\t\t\t\t\t\t\tproviderOptions\n\t\t\t\t\t\t};\n\t\t\t\t\t\tcase \"tool-result\": return {\n\t\t\t\t\t\t\ttype: \"tool-result\",\n\t\t\t\t\t\t\ttoolCallId: part.toolCallId,\n\t\t\t\t\t\t\ttoolName: part.toolName,\n\t\t\t\t\t\t\toutput: part.output,\n\t\t\t\t\t\t\tproviderOptions\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tproviderOptions: message.providerOptions\n\t\t\t};\n\t\tcase \"tool\": return {\n\t\t\trole: \"tool\",\n\t\t\tcontent: message.content.map((part) => ({\n\t\t\t\ttype: \"tool-result\",\n\t\t\t\ttoolCallId: part.toolCallId,\n\t\t\t\ttoolName: part.toolName,\n\t\t\t\toutput: part.output,\n\t\t\t\tproviderOptions: part.providerOptions\n\t\t\t})),\n\t\t\tproviderOptions: message.providerOptions\n\t\t};\n\t\tdefault: throw new InvalidMessageRoleError({ role });\n\t}\n}\nasync function downloadAssets(messages, download2, supportedUrls) {\n\tconst plannedDownloads = messages.filter((message) => message.role === \"user\").map((message) => message.content).filter((content) => Array.isArray(content)).flat().filter((part) => part.type === \"image\" || part.type === \"file\").map((part) => {\n\t\tvar _a16;\n\t\tconst mediaType = (_a16 = part.mediaType) != null ? _a16 : part.type === \"image\" ? \"image/*\" : void 0;\n\t\tlet data = part.type === \"image\" ? part.image : part.data;\n\t\tif (typeof data === \"string\") try {\n\t\t\tdata = new URL(data);\n\t\t} catch (ignored) {}\n\t\treturn {\n\t\t\tmediaType,\n\t\t\tdata\n\t\t};\n\t}).filter((part) => part.data instanceof URL).map((part) => ({\n\t\turl: part.data,\n\t\tisUrlSupportedByModel: part.mediaType != null && isUrlSupported({\n\t\t\turl: part.data.toString(),\n\t\t\tmediaType: part.mediaType,\n\t\t\tsupportedUrls\n\t\t})\n\t}));\n\tconst downloadedFiles = await download2(plannedDownloads);\n\treturn Object.fromEntries(downloadedFiles.map((file, index) => file == null ? null : [plannedDownloads[index].url.toString(), {\n\t\tdata: file.data,\n\t\tmediaType: file.mediaType\n\t}]).filter((file) => file != null));\n}\nfunction convertPartToLanguageModelPart(part, downloadedAssets) {\n\tvar _a16;\n\tif (part.type === \"text\") return {\n\t\ttype: \"text\",\n\t\ttext: part.text,\n\t\tproviderOptions: part.providerOptions\n\t};\n\tlet originalData;\n\tconst type = part.type;\n\tswitch (type) {\n\t\tcase \"image\":\n\t\t\toriginalData = part.image;\n\t\t\tbreak;\n\t\tcase \"file\":\n\t\t\toriginalData = part.data;\n\t\t\tbreak;\n\t\tdefault: throw new Error(`Unsupported part type: ${type}`);\n\t}\n\tconst { data: convertedData, mediaType: convertedMediaType } = convertToLanguageModelV2DataContent(originalData);\n\tlet mediaType = convertedMediaType != null ? convertedMediaType : part.mediaType;\n\tlet data = convertedData;\n\tif (data instanceof URL) {\n\t\tconst downloadedFile = downloadedAssets[data.toString()];\n\t\tif (downloadedFile) {\n\t\t\tdata = downloadedFile.data;\n\t\t\tmediaType ??= downloadedFile.mediaType;\n\t\t}\n\t}\n\tswitch (type) {\n\t\tcase \"image\":\n\t\t\tif (data instanceof Uint8Array || typeof data === \"string\") mediaType = (_a16 = detectMediaType({\n\t\t\t\tdata,\n\t\t\t\tsignatures: imageMediaTypeSignatures\n\t\t\t})) != null ? _a16 : mediaType;\n\t\t\treturn {\n\t\t\t\ttype: \"file\",\n\t\t\t\tmediaType: mediaType != null ? mediaType : \"image/*\",\n\t\t\t\tfilename: void 0,\n\t\t\t\tdata,\n\t\t\t\tproviderOptions: part.providerOptions\n\t\t\t};\n\t\tcase \"file\":\n\t\t\tif (mediaType == null) throw new Error(`Media type is missing for file part`);\n\t\t\treturn {\n\t\t\t\ttype: \"file\",\n\t\t\t\tmediaType,\n\t\t\t\tfilename: part.filename,\n\t\t\t\tdata,\n\t\t\t\tproviderOptions: part.providerOptions\n\t\t\t};\n\t}\n}\nfunction prepareCallSettings({ maxOutputTokens, temperature, topP, topK, presencePenalty, frequencyPenalty, seed, stopSequences }) {\n\tif (maxOutputTokens != null) {\n\t\tif (!Number.isInteger(maxOutputTokens)) throw new InvalidArgumentError({\n\t\t\tparameter: \"maxOutputTokens\",\n\t\t\tvalue: maxOutputTokens,\n\t\t\tmessage: \"maxOutputTokens must be an integer\"\n\t\t});\n\t\tif (maxOutputTokens < 1) throw new InvalidArgumentError({\n\t\t\tparameter: \"maxOutputTokens\",\n\t\t\tvalue: maxOutputTokens,\n\t\t\tmessage: \"maxOutputTokens must be >= 1\"\n\t\t});\n\t}\n\tif (temperature != null) {\n\t\tif (typeof temperature !== \"number\") throw new InvalidArgumentError({\n\t\t\tparameter: \"temperature\",\n\t\t\tvalue: temperature,\n\t\t\tmessage: \"temperature must be a number\"\n\t\t});\n\t}\n\tif (topP != null) {\n\t\tif (typeof topP !== \"number\") throw new InvalidArgumentError({\n\t\t\tparameter: \"topP\",\n\t\t\tvalue: topP,\n\t\t\tmessage: \"topP must be a number\"\n\t\t});\n\t}\n\tif (topK != null) {\n\t\tif (typeof topK !== \"number\") throw new InvalidArgumentError({\n\t\t\tparameter: \"topK\",\n\t\t\tvalue: topK,\n\t\t\tmessage: \"topK must be a number\"\n\t\t});\n\t}\n\tif (presencePenalty != null) {\n\t\tif (typeof presencePenalty !== \"number\") throw new InvalidArgumentError({\n\t\t\tparameter: \"presencePenalty\",\n\t\t\tvalue: presencePenalty,\n\t\t\tmessage: \"presencePenalty must be a number\"\n\t\t});\n\t}\n\tif (frequencyPenalty != null) {\n\t\tif (typeof frequencyPenalty !== \"number\") throw new InvalidArgumentError({\n\t\t\tparameter: \"frequencyPenalty\",\n\t\t\tvalue: frequencyPenalty,\n\t\t\tmessage: \"frequencyPenalty must be a number\"\n\t\t});\n\t}\n\tif (seed != null) {\n\t\tif (!Number.isInteger(seed)) throw new InvalidArgumentError({\n\t\t\tparameter: \"seed\",\n\t\t\tvalue: seed,\n\t\t\tmessage: \"seed must be an integer\"\n\t\t});\n\t}\n\treturn {\n\t\tmaxOutputTokens,\n\t\ttemperature,\n\t\ttopP,\n\t\ttopK,\n\t\tpresencePenalty,\n\t\tfrequencyPenalty,\n\t\tstopSequences,\n\t\tseed\n\t};\n}\nfunction isNonEmptyObject(object2) {\n\treturn object2 != null && Object.keys(object2).length > 0;\n}\nfunction prepareToolsAndToolChoice({ tools, toolChoice, activeTools }) {\n\tif (!isNonEmptyObject(tools)) return {\n\t\ttools: void 0,\n\t\ttoolChoice: void 0\n\t};\n\treturn {\n\t\ttools: (activeTools != null ? Object.entries(tools).filter(([name16]) => activeTools.includes(name16)) : Object.entries(tools)).map(([name16, tool2]) => {\n\t\t\tconst toolType = tool2.type;\n\t\t\tswitch (toolType) {\n\t\t\t\tcase void 0:\n\t\t\t\tcase \"dynamic\":\n\t\t\t\tcase \"function\": return {\n\t\t\t\t\ttype: \"function\",\n\t\t\t\t\tname: name16,\n\t\t\t\t\tdescription: tool2.description,\n\t\t\t\t\tinputSchema: asSchema(tool2.inputSchema).jsonSchema,\n\t\t\t\t\tproviderOptions: tool2.providerOptions\n\t\t\t\t};\n\t\t\t\tcase \"provider-defined\": return {\n\t\t\t\t\ttype: \"provider-defined\",\n\t\t\t\t\tname: name16,\n\t\t\t\t\tid: tool2.id,\n\t\t\t\t\targs: tool2.args\n\t\t\t\t};\n\t\t\t\tdefault: throw new Error(`Unsupported tool type: ${toolType}`);\n\t\t\t}\n\t\t}),\n\t\ttoolChoice: toolChoice == null ? { type: \"auto\" } : typeof toolChoice === \"string\" ? { type: toolChoice } : {\n\t\t\ttype: \"tool\",\n\t\t\ttoolName: toolChoice.toolName\n\t\t}\n\t};\n}\nvar jsonValueSchema = z.lazy(() => z.union([\n\tz.null(),\n\tz.string(),\n\tz.number(),\n\tz.boolean(),\n\tz.record(z.string(), jsonValueSchema),\n\tz.array(jsonValueSchema)\n]));\nvar providerMetadataSchema = z.record(z.string(), z.record(z.string(), jsonValueSchema));\nvar textPartSchema = z.object({\n\ttype: z.literal(\"text\"),\n\ttext: z.string(),\n\tproviderOptions: providerMetadataSchema.optional()\n});\nvar imagePartSchema = z.object({\n\ttype: z.literal(\"image\"),\n\timage: z.union([dataContentSchema, z.instanceof(URL)]),\n\tmediaType: z.string().optional(),\n\tproviderOptions: providerMetadataSchema.optional()\n});\nvar filePartSchema = z.object({\n\ttype: z.literal(\"file\"),\n\tdata: z.union([dataContentSchema, z.instanceof(URL)]),\n\tfilename: z.string().optional(),\n\tmediaType: z.string(),\n\tproviderOptions: providerMetadataSchema.optional()\n});\nvar reasoningPartSchema = z.object({\n\ttype: z.literal(\"reasoning\"),\n\ttext: z.string(),\n\tproviderOptions: providerMetadataSchema.optional()\n});\nvar toolCallPartSchema = z.object({\n\ttype: z.literal(\"tool-call\"),\n\ttoolCallId: z.string(),\n\ttoolName: z.string(),\n\tinput: z.unknown(),\n\tproviderOptions: providerMetadataSchema.optional(),\n\tproviderExecuted: z.boolean().optional()\n});\nvar outputSchema = z.discriminatedUnion(\"type\", [\n\tz.object({\n\t\ttype: z.literal(\"text\"),\n\t\tvalue: z.string()\n\t}),\n\tz.object({\n\t\ttype: z.literal(\"json\"),\n\t\tvalue: jsonValueSchema\n\t}),\n\tz.object({\n\t\ttype: z.literal(\"error-text\"),\n\t\tvalue: z.string()\n\t}),\n\tz.object({\n\t\ttype: z.literal(\"error-json\"),\n\t\tvalue: jsonValueSchema\n\t}),\n\tz.object({\n\t\ttype: z.literal(\"content\"),\n\t\tvalue: z.array(z.union([z.object({\n\t\t\ttype: z.literal(\"text\"),\n\t\t\ttext: z.string()\n\t\t}), z.object({\n\t\t\ttype: z.literal(\"media\"),\n\t\t\tdata: z.string(),\n\t\t\tmediaType: z.string()\n\t\t})]))\n\t})\n]);\nvar toolResultPartSchema = z.object({\n\ttype: z.literal(\"tool-result\"),\n\ttoolCallId: z.string(),\n\ttoolName: z.string(),\n\toutput: outputSchema,\n\tproviderOptions: providerMetadataSchema.optional()\n});\nvar systemModelMessageSchema = z.object({\n\trole: z.literal(\"system\"),\n\tcontent: z.string(),\n\tproviderOptions: providerMetadataSchema.optional()\n});\nvar coreSystemMessageSchema = systemModelMessageSchema;\nvar userModelMessageSchema = z.object({\n\trole: z.literal(\"user\"),\n\tcontent: z.union([z.string(), z.array(z.union([\n\t\ttextPartSchema,\n\t\timagePartSchema,\n\t\tfilePartSchema\n\t]))]),\n\tproviderOptions: providerMetadataSchema.optional()\n});\nvar coreUserMessageSchema = userModelMessageSchema;\nvar assistantModelMessageSchema = z.object({\n\trole: z.literal(\"assistant\"),\n\tcontent: z.union([z.string(), z.array(z.union([\n\t\ttextPartSchema,\n\t\tfilePartSchema,\n\t\treasoningPartSchema,\n\t\ttoolCallPartSchema,\n\t\ttoolResultPartSchema\n\t]))]),\n\tproviderOptions: providerMetadataSchema.optional()\n});\nvar coreAssistantMessageSchema = assistantModelMessageSchema;\nvar toolModelMessageSchema = z.object({\n\trole: z.literal(\"tool\"),\n\tcontent: z.array(toolResultPartSchema),\n\tproviderOptions: providerMetadataSchema.optional()\n});\nvar coreToolMessageSchema = toolModelMessageSchema;\nvar modelMessageSchema = z.union([\n\tsystemModelMessageSchema,\n\tuserModelMessageSchema,\n\tassistantModelMessageSchema,\n\ttoolModelMessageSchema\n]);\nvar coreMessageSchema = modelMessageSchema;\nasync function standardizePrompt({ allowSystemInMessages, system, prompt, messages }) {\n\tif (prompt == null && messages == null) throw new InvalidPromptError({\n\t\tprompt,\n\t\tmessage: \"prompt or messages must be defined\"\n\t});\n\tif (prompt != null && messages != null) throw new InvalidPromptError({\n\t\tprompt,\n\t\tmessage: \"prompt and messages cannot be defined at the same time\"\n\t});\n\tif (system != null && typeof system !== \"string\") throw new InvalidPromptError({\n\t\tprompt,\n\t\tmessage: \"system must be a string\"\n\t});\n\tif (prompt != null && typeof prompt === \"string\") messages = [{\n\t\trole: \"user\",\n\t\tcontent: prompt\n\t}];\n\telse if (prompt != null && Array.isArray(prompt)) messages = prompt;\n\telse if (messages == null) throw new InvalidPromptError({\n\t\tprompt,\n\t\tmessage: \"prompt or messages must be defined\"\n\t});\n\tif (messages.length === 0) throw new InvalidPromptError({\n\t\tprompt,\n\t\tmessage: \"messages must not be empty\"\n\t});\n\tif (messages.some((message) => message.role === \"system\")) {\n\t\tif (allowSystemInMessages === false) throw new InvalidPromptError({\n\t\t\tprompt,\n\t\t\tmessage: \"System messages are not allowed in the prompt or messages fields. Use the system option instead.\"\n\t\t});\n\t\tif (allowSystemInMessages === void 0) console.warn(\"AI SDK Warning: System messages in the prompt or messages fields can be a security risk because they may enable prompt injection attacks. Use the system option instead when possible. Set allowSystemInMessages to true to suppress this warning, or false to throw an error.\");\n\t}\n\tconst validationResult = await safeValidateTypes({\n\t\tvalue: messages,\n\t\tschema: z.array(modelMessageSchema)\n\t});\n\tif (!validationResult.success) throw new InvalidPromptError({\n\t\tprompt,\n\t\tmessage: \"The messages must be a ModelMessage[]. If you have passed a UIMessage[], you can use convertToModelMessages to convert them.\",\n\t\tcause: validationResult.error\n\t});\n\treturn {\n\t\tmessages,\n\t\tsystem\n\t};\n}\nfunction wrapGatewayError(error) {\n\tif (!GatewayAuthenticationError.isInstance(error)) return error;\n\tconst isProductionEnv = (process == null ? void 0 : \"production\") === \"production\";\n\tconst moreInfoURL = \"https://v5.ai-sdk.dev/unauthenticated-ai-gateway\";\n\tif (isProductionEnv) return new AISDKError({\n\t\tname: \"GatewayError\",\n\t\tmessage: `Unauthenticated. Configure AI_GATEWAY_API_KEY or use a provider module. Learn more: ${moreInfoURL}`\n\t});\n\treturn Object.assign(/* @__PURE__ */ new Error(`\\x1B[1m\\x1B[31mUnauthenticated request to AI Gateway.\\x1B[0m\n\nTo authenticate, set the \\x1B[33mAI_GATEWAY_API_KEY\\x1B[0m environment variable with your API key.\n\nAlternatively, you can use a provider module instead of the AI Gateway.\n\nLearn more: \\x1B[34m${moreInfoURL}\\x1B[0m\n\n`), { name: \"GatewayAuthenticationError\" });\n}\nfunction assembleOperationName({ operationId, telemetry }) {\n\treturn {\n\t\t\"operation.name\": `${operationId}${(telemetry == null ? void 0 : telemetry.functionId) != null ? ` ${telemetry.functionId}` : \"\"}`,\n\t\t\"resource.name\": telemetry == null ? void 0 : telemetry.functionId,\n\t\t\"ai.operationId\": operationId,\n\t\t\"ai.telemetry.functionId\": telemetry == null ? void 0 : telemetry.functionId\n\t};\n}\nfunction getBaseTelemetryAttributes({ model, settings, telemetry, headers }) {\n\tvar _a16;\n\treturn {\n\t\t\"ai.model.provider\": model.provider,\n\t\t\"ai.model.id\": model.modelId,\n\t\t...Object.entries(settings).reduce((attributes, [key, value]) => {\n\t\t\tattributes[`ai.settings.${key}`] = value;\n\t\t\treturn attributes;\n\t\t}, {}),\n\t\t...Object.entries((_a16 = telemetry == null ? void 0 : telemetry.metadata) != null ? _a16 : {}).reduce((attributes, [key, value]) => {\n\t\t\tattributes[`ai.telemetry.metadata.${key}`] = value;\n\t\t\treturn attributes;\n\t\t}, {}),\n\t\t...Object.entries(headers != null ? headers : {}).reduce((attributes, [key, value]) => {\n\t\t\tif (value !== void 0) attributes[`ai.request.headers.${key}`] = value;\n\t\t\treturn attributes;\n\t\t}, {})\n\t};\n}\nvar noopTracer = {\n\tstartSpan() {\n\t\treturn noopSpan;\n\t},\n\tstartActiveSpan(name16, arg1, arg2, arg3) {\n\t\tif (typeof arg1 === \"function\") return arg1(noopSpan);\n\t\tif (typeof arg2 === \"function\") return arg2(noopSpan);\n\t\tif (typeof arg3 === \"function\") return arg3(noopSpan);\n\t}\n};\nvar noopSpan = {\n\tspanContext() {\n\t\treturn noopSpanContext;\n\t},\n\tsetAttribute() {\n\t\treturn this;\n\t},\n\tsetAttributes() {\n\t\treturn this;\n\t},\n\taddEvent() {\n\t\treturn this;\n\t},\n\taddLink() {\n\t\treturn this;\n\t},\n\taddLinks() {\n\t\treturn this;\n\t},\n\tsetStatus() {\n\t\treturn this;\n\t},\n\tupdateName() {\n\t\treturn this;\n\t},\n\tend() {\n\t\treturn this;\n\t},\n\tisRecording() {\n\t\treturn false;\n\t},\n\trecordException() {\n\t\treturn this;\n\t}\n};\nvar noopSpanContext = {\n\ttraceId: \"\",\n\tspanId: \"\",\n\ttraceFlags: 0\n};\nfunction getTracer({ isEnabled = false, tracer } = {}) {\n\tif (!isEnabled) return noopTracer;\n\tif (tracer) return tracer;\n\treturn trace.getTracer(\"ai\");\n}\nfunction recordSpan({ name: name16, tracer, attributes, fn, endWhenDone = true }) {\n\treturn tracer.startActiveSpan(name16, { attributes }, async (span) => {\n\t\ttry {\n\t\t\tconst result = await fn(span);\n\t\t\tif (endWhenDone) span.end();\n\t\t\treturn result;\n\t\t} catch (error) {\n\t\t\ttry {\n\t\t\t\trecordErrorOnSpan(span, error);\n\t\t\t} finally {\n\t\t\t\tspan.end();\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t});\n}\nfunction recordErrorOnSpan(span, error) {\n\tif (error instanceof Error) {\n\t\tspan.recordException({\n\t\t\tname: error.name,\n\t\t\tmessage: error.message,\n\t\t\tstack: error.stack\n\t\t});\n\t\tspan.setStatus({\n\t\t\tcode: SpanStatusCode.ERROR,\n\t\t\tmessage: error.message\n\t\t});\n\t} else span.setStatus({ code: SpanStatusCode.ERROR });\n}\nfunction selectTelemetryAttributes({ telemetry, attributes }) {\n\tif ((telemetry == null ? void 0 : telemetry.isEnabled) !== true) return {};\n\treturn Object.entries(attributes).reduce((attributes2, [key, value]) => {\n\t\tif (value == null) return attributes2;\n\t\tif (typeof value === \"object\" && \"input\" in value && typeof value.input === \"function\") {\n\t\t\tif ((telemetry == null ? void 0 : telemetry.recordInputs) === false) return attributes2;\n\t\t\tconst result = value.input();\n\t\t\treturn result == null ? attributes2 : {\n\t\t\t\t...attributes2,\n\t\t\t\t[key]: result\n\t\t\t};\n\t\t}\n\t\tif (typeof value === \"object\" && \"output\" in value && typeof value.output === \"function\") {\n\t\t\tif ((telemetry == null ? void 0 : telemetry.recordOutputs) === false) return attributes2;\n\t\t\tconst result = value.output();\n\t\t\treturn result == null ? attributes2 : {\n\t\t\t\t...attributes2,\n\t\t\t\t[key]: result\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t...attributes2,\n\t\t\t[key]: value\n\t\t};\n\t}, {});\n}\nfunction stringifyForTelemetry(prompt) {\n\treturn JSON.stringify(prompt.map((message) => ({\n\t\t...message,\n\t\tcontent: typeof message.content === \"string\" ? message.content : message.content.map((part) => part.type === \"file\" ? {\n\t\t\t...part,\n\t\t\tdata: part.data instanceof Uint8Array ? convertDataContentToBase64String(part.data) : part.data\n\t\t} : part)\n\t})));\n}\nfunction addLanguageModelUsage(usage1, usage2) {\n\treturn {\n\t\tinputTokens: addTokenCounts(usage1.inputTokens, usage2.inputTokens),\n\t\toutputTokens: addTokenCounts(usage1.outputTokens, usage2.outputTokens),\n\t\ttotalTokens: addTokenCounts(usage1.totalTokens, usage2.totalTokens),\n\t\treasoningTokens: addTokenCounts(usage1.reasoningTokens, usage2.reasoningTokens),\n\t\tcachedInputTokens: addTokenCounts(usage1.cachedInputTokens, usage2.cachedInputTokens)\n\t};\n}\nfunction addTokenCounts(tokenCount1, tokenCount2) {\n\treturn tokenCount1 == null && tokenCount2 == null ? void 0 : (tokenCount1 != null ? tokenCount1 : 0) + (tokenCount2 != null ? tokenCount2 : 0);\n}\nfunction asArray(value) {\n\treturn value === void 0 ? [] : Array.isArray(value) ? value : [value];\n}\nfunction getRetryDelayInMs({ error, exponentialBackoffDelay }) {\n\tconst headers = error.responseHeaders;\n\tif (!headers) return exponentialBackoffDelay;\n\tlet ms;\n\tconst retryAfterMs = headers[\"retry-after-ms\"];\n\tif (retryAfterMs) {\n\t\tconst timeoutMs = parseFloat(retryAfterMs);\n\t\tif (!Number.isNaN(timeoutMs)) ms = timeoutMs;\n\t}\n\tconst retryAfter = headers[\"retry-after\"];\n\tif (retryAfter && ms === void 0) {\n\t\tconst timeoutSeconds = parseFloat(retryAfter);\n\t\tif (!Number.isNaN(timeoutSeconds)) ms = timeoutSeconds * 1e3;\n\t\telse ms = Date.parse(retryAfter) - Date.now();\n\t}\n\tif (ms != null && !Number.isNaN(ms) && 0 <= ms && (ms < 60 * 1e3 || ms < exponentialBackoffDelay)) return ms;\n\treturn exponentialBackoffDelay;\n}\nvar retryWithExponentialBackoffRespectingRetryHeaders = ({ maxRetries = 2, initialDelayInMs = 2e3, backoffFactor = 2, abortSignal } = {}) => async (f) => _retryWithExponentialBackoff(f, {\n\tmaxRetries,\n\tdelayInMs: initialDelayInMs,\n\tbackoffFactor,\n\tabortSignal\n});\nasync function _retryWithExponentialBackoff(f, { maxRetries, delayInMs, backoffFactor, abortSignal }, errors = []) {\n\ttry {\n\t\treturn await f();\n\t} catch (error) {\n\t\tif (isAbortError(error)) throw error;\n\t\tif (maxRetries === 0) throw error;\n\t\tconst errorMessage = getErrorMessage$1(error);\n\t\tconst newErrors = [...errors, error];\n\t\tconst tryNumber = newErrors.length;\n\t\tif (tryNumber > maxRetries) throw new RetryError({\n\t\t\tmessage: `Failed after ${tryNumber} attempts. Last error: ${errorMessage}`,\n\t\t\treason: \"maxRetriesExceeded\",\n\t\t\terrors: newErrors\n\t\t});\n\t\tif (error instanceof Error && APICallError.isInstance(error) && error.isRetryable === true && tryNumber <= maxRetries) {\n\t\t\tawait delay(getRetryDelayInMs({\n\t\t\t\terror,\n\t\t\t\texponentialBackoffDelay: delayInMs\n\t\t\t}), { abortSignal });\n\t\t\treturn _retryWithExponentialBackoff(f, {\n\t\t\t\tmaxRetries,\n\t\t\t\tdelayInMs: backoffFactor * delayInMs,\n\t\t\t\tbackoffFactor,\n\t\t\t\tabortSignal\n\t\t\t}, newErrors);\n\t\t}\n\t\tif (tryNumber === 1) throw error;\n\t\tthrow new RetryError({\n\t\t\tmessage: `Failed after ${tryNumber} attempts with non-retryable error: '${errorMessage}'`,\n\t\t\treason: \"errorNotRetryable\",\n\t\t\terrors: newErrors\n\t\t});\n\t}\n}\nfunction prepareRetries({ maxRetries, abortSignal }) {\n\tif (maxRetries != null) {\n\t\tif (!Number.isInteger(maxRetries)) throw new InvalidArgumentError({\n\t\t\tparameter: \"maxRetries\",\n\t\t\tvalue: maxRetries,\n\t\t\tmessage: \"maxRetries must be an integer\"\n\t\t});\n\t\tif (maxRetries < 0) throw new InvalidArgumentError({\n\t\t\tparameter: \"maxRetries\",\n\t\t\tvalue: maxRetries,\n\t\t\tmessage: \"maxRetries must be >= 0\"\n\t\t});\n\t}\n\tconst maxRetriesResult = maxRetries != null ? maxRetries : 2;\n\treturn {\n\t\tmaxRetries: maxRetriesResult,\n\t\tretry: retryWithExponentialBackoffRespectingRetryHeaders({\n\t\t\tmaxRetries: maxRetriesResult,\n\t\t\tabortSignal\n\t\t})\n\t};\n}\nfunction extractTextContent(content) {\n\tconst parts = content.filter((content2) => content2.type === \"text\");\n\tif (parts.length === 0) return;\n\treturn parts.map((content2) => content2.text).join(\"\");\n}\nfunction filterActiveTools({ tools, activeTools }) {\n\tif (tools == null || activeTools == null) return tools;\n\treturn Object.fromEntries(Object.entries(tools).filter(([name16]) => activeTools.includes(name16)));\n}\nvar DefaultGeneratedFile = class {\n\tconstructor({ data, mediaType }) {\n\t\tconst isUint8Array = data instanceof Uint8Array;\n\t\tthis.base64Data = isUint8Array ? void 0 : data;\n\t\tthis.uint8ArrayData = isUint8Array ? data : void 0;\n\t\tthis.mediaType = mediaType;\n\t}\n\tget base64() {\n\t\tif (this.base64Data == null) this.base64Data = convertUint8ArrayToBase64(this.uint8ArrayData);\n\t\treturn this.base64Data;\n\t}\n\tget uint8Array() {\n\t\tif (this.uint8ArrayData == null) this.uint8ArrayData = convertBase64ToUint8Array(this.base64Data);\n\t\treturn this.uint8ArrayData;\n\t}\n};\nvar DefaultGeneratedFileWithType = class extends DefaultGeneratedFile {\n\tconstructor(options) {\n\t\tsuper(options);\n\t\tthis.type = \"file\";\n\t}\n};\nasync function parseToolCall({ toolCall, tools, repairToolCall, system, messages }) {\n\ttry {\n\t\tif (tools == null) throw new NoSuchToolError({ toolName: toolCall.toolName });\n\t\ttry {\n\t\t\treturn await doParseToolCall({\n\t\t\t\ttoolCall,\n\t\t\t\ttools\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tif (repairToolCall == null || !(NoSuchToolError.isInstance(error) || InvalidToolInputError.isInstance(error))) throw error;\n\t\t\tlet repairedToolCall = null;\n\t\t\ttry {\n\t\t\t\trepairedToolCall = await repairToolCall({\n\t\t\t\t\ttoolCall,\n\t\t\t\t\ttools,\n\t\t\t\t\tinputSchema: ({ toolName }) => {\n\t\t\t\t\t\tconst { inputSchema } = tools[toolName];\n\t\t\t\t\t\treturn asSchema(inputSchema).jsonSchema;\n\t\t\t\t\t},\n\t\t\t\t\tsystem,\n\t\t\t\t\tmessages,\n\t\t\t\t\terror\n\t\t\t\t});\n\t\t\t} catch (repairError) {\n\t\t\t\tthrow new ToolCallRepairError({\n\t\t\t\t\tcause: repairError,\n\t\t\t\t\toriginalError: error\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (repairedToolCall == null) throw error;\n\t\t\treturn await doParseToolCall({\n\t\t\t\ttoolCall: repairedToolCall,\n\t\t\t\ttools\n\t\t\t});\n\t\t}\n\t} catch (error) {\n\t\tconst parsedInput = await safeParseJSON({ text: toolCall.input });\n\t\tconst input = parsedInput.success ? parsedInput.value : toolCall.input;\n\t\treturn {\n\t\t\ttype: \"tool-call\",\n\t\t\ttoolCallId: toolCall.toolCallId,\n\t\t\ttoolName: toolCall.toolName,\n\t\t\tinput,\n\t\t\tdynamic: true,\n\t\t\tinvalid: true,\n\t\t\terror,\n\t\t\tproviderMetadata: toolCall.providerMetadata\n\t\t};\n\t}\n}\nasync function doParseToolCall({ toolCall, tools }) {\n\tconst toolName = toolCall.toolName;\n\tconst tool2 = tools[toolName];\n\tif (tool2 == null) throw new NoSuchToolError({\n\t\ttoolName: toolCall.toolName,\n\t\tavailableTools: Object.keys(tools)\n\t});\n\tconst schema = asSchema(tool2.inputSchema);\n\tconst parseResult = toolCall.input.trim() === \"\" ? await safeValidateTypes({\n\t\tvalue: {},\n\t\tschema\n\t}) : await safeParseJSON({\n\t\ttext: toolCall.input,\n\t\tschema\n\t});\n\tif (parseResult.success === false) throw new InvalidToolInputError({\n\t\ttoolName,\n\t\ttoolInput: toolCall.input,\n\t\tcause: parseResult.error\n\t});\n\treturn tool2.type === \"dynamic\" ? {\n\t\ttype: \"tool-call\",\n\t\ttoolCallId: toolCall.toolCallId,\n\t\ttoolName: toolCall.toolName,\n\t\tinput: parseResult.value,\n\t\tproviderExecuted: toolCall.providerExecuted,\n\t\tproviderMetadata: toolCall.providerMetadata,\n\t\tdynamic: true\n\t} : {\n\t\ttype: \"tool-call\",\n\t\ttoolCallId: toolCall.toolCallId,\n\t\ttoolName,\n\t\tinput: parseResult.value,\n\t\tproviderExecuted: toolCall.providerExecuted,\n\t\tproviderMetadata: toolCall.providerMetadata\n\t};\n}\nvar DefaultStepResult = class {\n\tconstructor({ content, finishReason, usage, warnings, request, response, providerMetadata }) {\n\t\tthis.content = content;\n\t\tthis.finishReason = finishReason;\n\t\tthis.usage = usage;\n\t\tthis.warnings = warnings;\n\t\tthis.request = request;\n\t\tthis.response = response;\n\t\tthis.providerMetadata = providerMetadata;\n\t}\n\tget text() {\n\t\treturn this.content.filter((part) => part.type === \"text\").map((part) => part.text).join(\"\");\n\t}\n\tget reasoning() {\n\t\treturn this.content.filter((part) => part.type === \"reasoning\");\n\t}\n\tget reasoningText() {\n\t\treturn this.reasoning.length === 0 ? void 0 : this.reasoning.map((part) => part.text).join(\"\");\n\t}\n\tget files() {\n\t\treturn this.content.filter((part) => part.type === \"file\").map((part) => part.file);\n\t}\n\tget sources() {\n\t\treturn this.content.filter((part) => part.type === \"source\");\n\t}\n\tget toolCalls() {\n\t\treturn this.content.filter((part) => part.type === \"tool-call\");\n\t}\n\tget staticToolCalls() {\n\t\treturn this.toolCalls.filter((toolCall) => toolCall.dynamic !== true);\n\t}\n\tget dynamicToolCalls() {\n\t\treturn this.toolCalls.filter((toolCall) => toolCall.dynamic === true);\n\t}\n\tget toolResults() {\n\t\treturn this.content.filter((part) => part.type === \"tool-result\");\n\t}\n\tget staticToolResults() {\n\t\treturn this.toolResults.filter((toolResult) => toolResult.dynamic !== true);\n\t}\n\tget dynamicToolResults() {\n\t\treturn this.toolResults.filter((toolResult) => toolResult.dynamic === true);\n\t}\n};\nfunction stepCountIs(stepCount) {\n\treturn ({ steps }) => steps.length === stepCount;\n}\nfunction hasToolCall(toolName) {\n\treturn ({ steps }) => {\n\t\tvar _a16, _b, _c;\n\t\treturn (_c = (_b = (_a16 = steps[steps.length - 1]) == null ? void 0 : _a16.toolCalls) == null ? void 0 : _b.some((toolCall) => toolCall.toolName === toolName)) != null ? _c : false;\n\t};\n}\nasync function isStopConditionMet({ stopConditions, steps }) {\n\treturn (await Promise.all(stopConditions.map((condition) => condition({ steps })))).some((result) => result);\n}\nfunction createToolModelOutput({ output, tool: tool2, errorMode }) {\n\tif (errorMode === \"text\") return {\n\t\ttype: \"error-text\",\n\t\tvalue: getErrorMessage(output)\n\t};\n\telse if (errorMode === \"json\") return {\n\t\ttype: \"error-json\",\n\t\tvalue: toJSONValue(output)\n\t};\n\tif (tool2 == null ? void 0 : tool2.toModelOutput) return tool2.toModelOutput(output);\n\treturn typeof output === \"string\" ? {\n\t\ttype: \"text\",\n\t\tvalue: output\n\t} : {\n\t\ttype: \"json\",\n\t\tvalue: toJSONValue(output)\n\t};\n}\nfunction toJSONValue(value) {\n\treturn value === void 0 ? null : value;\n}\nfunction toResponseMessages({ content: inputContent, tools }) {\n\tconst responseMessages = [];\n\tconst content = inputContent.filter((part) => part.type !== \"source\").filter((part) => (part.type !== \"tool-result\" || part.providerExecuted) && (part.type !== \"tool-error\" || part.providerExecuted)).filter((part) => part.type !== \"text\" || part.text.length > 0).map((part) => {\n\t\tswitch (part.type) {\n\t\t\tcase \"text\": return {\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: part.text,\n\t\t\t\tproviderOptions: part.providerMetadata\n\t\t\t};\n\t\t\tcase \"reasoning\": return {\n\t\t\t\ttype: \"reasoning\",\n\t\t\t\ttext: part.text,\n\t\t\t\tproviderOptions: part.providerMetadata\n\t\t\t};\n\t\t\tcase \"file\": return {\n\t\t\t\ttype: \"file\",\n\t\t\t\tdata: part.file.base64,\n\t\t\t\tmediaType: part.file.mediaType,\n\t\t\t\tproviderOptions: part.providerMetadata\n\t\t\t};\n\t\t\tcase \"tool-call\": return {\n\t\t\t\ttype: \"tool-call\",\n\t\t\t\ttoolCallId: part.toolCallId,\n\t\t\t\ttoolName: part.toolName,\n\t\t\t\tinput: part.input,\n\t\t\t\tproviderExecuted: part.providerExecuted,\n\t\t\t\tproviderOptions: part.providerMetadata\n\t\t\t};\n\t\t\tcase \"tool-result\": return {\n\t\t\t\ttype: \"tool-result\",\n\t\t\t\ttoolCallId: part.toolCallId,\n\t\t\t\ttoolName: part.toolName,\n\t\t\t\toutput: createToolModelOutput({\n\t\t\t\t\ttool: tools == null ? void 0 : tools[part.toolName],\n\t\t\t\t\toutput: part.output,\n\t\t\t\t\terrorMode: \"none\"\n\t\t\t\t}),\n\t\t\t\tproviderExecuted: true,\n\t\t\t\tproviderOptions: part.providerMetadata\n\t\t\t};\n\t\t\tcase \"tool-error\": return {\n\t\t\t\ttype: \"tool-result\",\n\t\t\t\ttoolCallId: part.toolCallId,\n\t\t\t\ttoolName: part.toolName,\n\t\t\t\toutput: createToolModelOutput({\n\t\t\t\t\ttool: tools == null ? void 0 : tools[part.toolName],\n\t\t\t\t\toutput: part.error,\n\t\t\t\t\terrorMode: \"json\"\n\t\t\t\t}),\n\t\t\t\tproviderOptions: part.providerMetadata\n\t\t\t};\n\t\t}\n\t});\n\tif (content.length > 0) responseMessages.push({\n\t\trole: \"assistant\",\n\t\tcontent\n\t});\n\tconst toolResultContent = inputContent.filter((part) => part.type === \"tool-result\" || part.type === \"tool-error\").filter((part) => !part.providerExecuted).map((toolResult) => ({\n\t\ttype: \"tool-result\",\n\t\ttoolCallId: toolResult.toolCallId,\n\t\ttoolName: toolResult.toolName,\n\t\toutput: createToolModelOutput({\n\t\t\ttool: tools == null ? void 0 : tools[toolResult.toolName],\n\t\t\toutput: toolResult.type === \"tool-result\" ? toolResult.output : toolResult.error,\n\t\t\terrorMode: toolResult.type === \"tool-error\" ? \"text\" : \"none\"\n\t\t}),\n\t\t...toolResult.providerMetadata != null ? { providerOptions: toolResult.providerMetadata } : {}\n\t}));\n\tif (toolResultContent.length > 0) responseMessages.push({\n\t\trole: \"tool\",\n\t\tcontent: toolResultContent\n\t});\n\treturn responseMessages;\n}\nvar originalGenerateId = createIdGenerator({\n\tprefix: \"aitxt\",\n\tsize: 24\n});\nasync function generateText$1({ model: modelArg, tools, toolChoice, system, prompt, messages, allowSystemInMessages, maxRetries: maxRetriesArg, abortSignal, headers, stopWhen = stepCountIs(1), experimental_output: output, experimental_telemetry: telemetry, providerOptions, experimental_activeTools, activeTools = experimental_activeTools, experimental_prepareStep, prepareStep = experimental_prepareStep, experimental_repairToolCall: repairToolCall, experimental_download: download2, experimental_context, _internal: { generateId: generateId3 = originalGenerateId, currentDate = () => /* @__PURE__ */ new Date() } = {}, onStepFinish, ...settings }) {\n\tconst model = resolveLanguageModel(modelArg);\n\tconst stopConditions = asArray(stopWhen);\n\tconst { maxRetries, retry } = prepareRetries({\n\t\tmaxRetries: maxRetriesArg,\n\t\tabortSignal\n\t});\n\tconst callSettings = prepareCallSettings(settings);\n\tconst headersWithUserAgent = withUserAgentSuffix(headers != null ? headers : {}, `ai/${VERSION}`);\n\tconst baseTelemetryAttributes = getBaseTelemetryAttributes({\n\t\tmodel,\n\t\ttelemetry,\n\t\theaders: headersWithUserAgent,\n\t\tsettings: {\n\t\t\t...callSettings,\n\t\t\tmaxRetries\n\t\t}\n\t});\n\tconst initialPrompt = await standardizePrompt({\n\t\tsystem,\n\t\tprompt,\n\t\tmessages,\n\t\tallowSystemInMessages\n\t});\n\tconst tracer = getTracer(telemetry);\n\ttry {\n\t\treturn await recordSpan({\n\t\t\tname: \"ai.generateText\",\n\t\t\tattributes: selectTelemetryAttributes({\n\t\t\t\ttelemetry,\n\t\t\t\tattributes: {\n\t\t\t\t\t...assembleOperationName({\n\t\t\t\t\t\toperationId: \"ai.generateText\",\n\t\t\t\t\t\ttelemetry\n\t\t\t\t\t}),\n\t\t\t\t\t...baseTelemetryAttributes,\n\t\t\t\t\t\"ai.model.provider\": model.provider,\n\t\t\t\t\t\"ai.model.id\": model.modelId,\n\t\t\t\t\t\"ai.prompt\": { input: () => JSON.stringify({\n\t\t\t\t\t\tsystem,\n\t\t\t\t\t\tprompt,\n\t\t\t\t\t\tmessages\n\t\t\t\t\t}) }\n\t\t\t\t}\n\t\t\t}),\n\t\t\ttracer,\n\t\t\tfn: async (span) => {\n\t\t\t\tvar _a16, _b, _c, _d, _e, _f, _g;\n\t\t\t\tconst callSettings2 = prepareCallSettings(settings);\n\t\t\t\tlet currentModelResponse;\n\t\t\t\tlet clientToolCalls = [];\n\t\t\t\tlet clientToolOutputs = [];\n\t\t\t\tconst responseMessages = [];\n\t\t\t\tconst steps = [];\n\t\t\t\tdo {\n\t\t\t\t\tif (steps.length > 0) abortSignal?.throwIfAborted();\n\t\t\t\t\tconst stepInputMessages = [...initialPrompt.messages, ...responseMessages];\n\t\t\t\t\tconst prepareStepResult = await (prepareStep == null ? void 0 : prepareStep({\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\tsteps,\n\t\t\t\t\t\tstepNumber: steps.length,\n\t\t\t\t\t\tmessages: stepInputMessages\n\t\t\t\t\t}));\n\t\t\t\t\tconst stepModel = resolveLanguageModel((_a16 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a16 : model);\n\t\t\t\t\tconst promptMessages = await convertToLanguageModelPrompt({\n\t\t\t\t\t\tprompt: {\n\t\t\t\t\t\t\tsystem: (_b = prepareStepResult == null ? void 0 : prepareStepResult.system) != null ? _b : initialPrompt.system,\n\t\t\t\t\t\t\tmessages: (_c = prepareStepResult == null ? void 0 : prepareStepResult.messages) != null ? _c : stepInputMessages\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsupportedUrls: await stepModel.supportedUrls,\n\t\t\t\t\t\tdownload: download2\n\t\t\t\t\t});\n\t\t\t\t\tconst stepActiveTools = (_d = prepareStepResult == null ? void 0 : prepareStepResult.activeTools) != null ? _d : activeTools;\n\t\t\t\t\tconst stepToolSet = filterActiveTools({\n\t\t\t\t\t\ttools,\n\t\t\t\t\t\tactiveTools: stepActiveTools\n\t\t\t\t\t});\n\t\t\t\t\tconst { toolChoice: stepToolChoice, tools: stepTools } = prepareToolsAndToolChoice({\n\t\t\t\t\t\ttools,\n\t\t\t\t\t\ttoolChoice: (_e = prepareStepResult == null ? void 0 : prepareStepResult.toolChoice) != null ? _e : toolChoice,\n\t\t\t\t\t\tactiveTools: stepActiveTools\n\t\t\t\t\t});\n\t\t\t\t\tcurrentModelResponse = await retry(() => {\n\t\t\t\t\t\tvar _a17;\n\t\t\t\t\t\treturn recordSpan({\n\t\t\t\t\t\t\tname: \"ai.generateText.doGenerate\",\n\t\t\t\t\t\t\tattributes: selectTelemetryAttributes({\n\t\t\t\t\t\t\t\ttelemetry,\n\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\t...assembleOperationName({\n\t\t\t\t\t\t\t\t\t\toperationId: \"ai.generateText.doGenerate\",\n\t\t\t\t\t\t\t\t\t\ttelemetry\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t...baseTelemetryAttributes,\n\t\t\t\t\t\t\t\t\t\"ai.model.provider\": stepModel.provider,\n\t\t\t\t\t\t\t\t\t\"ai.model.id\": stepModel.modelId,\n\t\t\t\t\t\t\t\t\t\"ai.prompt.messages\": { input: () => stringifyForTelemetry(promptMessages) },\n\t\t\t\t\t\t\t\t\t\"ai.prompt.tools\": { input: () => stepTools == null ? void 0 : stepTools.map((tool2) => JSON.stringify(tool2)) },\n\t\t\t\t\t\t\t\t\t\"ai.prompt.toolChoice\": { input: () => stepToolChoice != null ? JSON.stringify(stepToolChoice) : void 0 },\n\t\t\t\t\t\t\t\t\t\"gen_ai.system\": stepModel.provider,\n\t\t\t\t\t\t\t\t\t\"gen_ai.request.model\": stepModel.modelId,\n\t\t\t\t\t\t\t\t\t\"gen_ai.request.frequency_penalty\": settings.frequencyPenalty,\n\t\t\t\t\t\t\t\t\t\"gen_ai.request.max_tokens\": settings.maxOutputTokens,\n\t\t\t\t\t\t\t\t\t\"gen_ai.request.presence_penalty\": settings.presencePenalty,\n\t\t\t\t\t\t\t\t\t\"gen_ai.request.stop_sequences\": settings.stopSequences,\n\t\t\t\t\t\t\t\t\t\"gen_ai.request.temperature\": (_a17 = settings.temperature) != null ? _a17 : void 0,\n\t\t\t\t\t\t\t\t\t\"gen_ai.request.top_k\": settings.topK,\n\t\t\t\t\t\t\t\t\t\"gen_ai.request.top_p\": settings.topP\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\ttracer,\n\t\t\t\t\t\t\tfn: async (span2) => {\n\t\t\t\t\t\t\t\tvar _a18, _b2, _c2, _d2, _e2, _f2, _g2, _h;\n\t\t\t\t\t\t\t\tconst result = await stepModel.doGenerate({\n\t\t\t\t\t\t\t\t\t...callSettings2,\n\t\t\t\t\t\t\t\t\ttools: stepTools,\n\t\t\t\t\t\t\t\t\ttoolChoice: stepToolChoice,\n\t\t\t\t\t\t\t\t\tresponseFormat: output == null ? void 0 : output.responseFormat,\n\t\t\t\t\t\t\t\t\tprompt: promptMessages,\n\t\t\t\t\t\t\t\t\tproviderOptions,\n\t\t\t\t\t\t\t\t\tabortSignal,\n\t\t\t\t\t\t\t\t\theaders: headersWithUserAgent\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tconst responseData = {\n\t\t\t\t\t\t\t\t\tid: (_b2 = (_a18 = result.response) == null ? void 0 : _a18.id) != null ? _b2 : generateId3(),\n\t\t\t\t\t\t\t\t\ttimestamp: (_d2 = (_c2 = result.response) == null ? void 0 : _c2.timestamp) != null ? _d2 : currentDate(),\n\t\t\t\t\t\t\t\t\tmodelId: (_f2 = (_e2 = result.response) == null ? void 0 : _e2.modelId) != null ? _f2 : stepModel.modelId,\n\t\t\t\t\t\t\t\t\theaders: (_g2 = result.response) == null ? void 0 : _g2.headers,\n\t\t\t\t\t\t\t\t\tbody: (_h = result.response) == null ? void 0 : _h.body\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\tspan2.setAttributes(selectTelemetryAttributes({\n\t\t\t\t\t\t\t\t\ttelemetry,\n\t\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\t\t\"ai.response.finishReason\": result.finishReason,\n\t\t\t\t\t\t\t\t\t\t\"ai.response.text\": { output: () => extractTextContent(result.content) },\n\t\t\t\t\t\t\t\t\t\t\"ai.response.toolCalls\": { output: () => {\n\t\t\t\t\t\t\t\t\t\t\tconst toolCalls = asToolCalls(result.content);\n\t\t\t\t\t\t\t\t\t\t\treturn toolCalls == null ? void 0 : JSON.stringify(toolCalls);\n\t\t\t\t\t\t\t\t\t\t} },\n\t\t\t\t\t\t\t\t\t\t\"ai.response.id\": responseData.id,\n\t\t\t\t\t\t\t\t\t\t\"ai.response.model\": responseData.modelId,\n\t\t\t\t\t\t\t\t\t\t\"ai.response.timestamp\": responseData.timestamp.toISOString(),\n\t\t\t\t\t\t\t\t\t\t\"ai.response.providerMetadata\": JSON.stringify(result.providerMetadata),\n\t\t\t\t\t\t\t\t\t\t\"ai.usage.promptTokens\": result.usage.inputTokens,\n\t\t\t\t\t\t\t\t\t\t\"ai.usage.completionTokens\": result.usage.outputTokens,\n\t\t\t\t\t\t\t\t\t\t\"gen_ai.response.finish_reasons\": [result.finishReason],\n\t\t\t\t\t\t\t\t\t\t\"gen_ai.response.id\": responseData.id,\n\t\t\t\t\t\t\t\t\t\t\"gen_ai.response.model\": responseData.modelId,\n\t\t\t\t\t\t\t\t\t\t\"gen_ai.usage.input_tokens\": result.usage.inputTokens,\n\t\t\t\t\t\t\t\t\t\t\"gen_ai.usage.output_tokens\": result.usage.outputTokens\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t...result,\n\t\t\t\t\t\t\t\t\tresponse: responseData\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t\tconst stepToolCalls = await Promise.all(currentModelResponse.content.filter((part) => part.type === \"tool-call\").map((toolCall) => parseToolCall({\n\t\t\t\t\t\ttoolCall,\n\t\t\t\t\t\ttools: stepToolSet,\n\t\t\t\t\t\trepairToolCall,\n\t\t\t\t\t\tsystem,\n\t\t\t\t\t\tmessages: stepInputMessages\n\t\t\t\t\t})));\n\t\t\t\t\tfor (const toolCall of stepToolCalls) {\n\t\t\t\t\t\tif (toolCall.invalid) continue;\n\t\t\t\t\t\tconst tool2 = stepToolSet[toolCall.toolName];\n\t\t\t\t\t\tif (tool2.onInputStart != null) await tool2.onInputStart({\n\t\t\t\t\t\t\ttoolCallId: toolCall.toolCallId,\n\t\t\t\t\t\t\tmessages: stepInputMessages,\n\t\t\t\t\t\t\tabortSignal,\n\t\t\t\t\t\t\texperimental_context\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif ((tool2 == null ? void 0 : tool2.onInputAvailable) != null) await tool2.onInputAvailable({\n\t\t\t\t\t\t\tinput: toolCall.input,\n\t\t\t\t\t\t\ttoolCallId: toolCall.toolCallId,\n\t\t\t\t\t\t\tmessages: stepInputMessages,\n\t\t\t\t\t\t\tabortSignal,\n\t\t\t\t\t\t\texperimental_context\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tconst invalidToolCalls = stepToolCalls.filter((toolCall) => toolCall.invalid && toolCall.dynamic);\n\t\t\t\t\tclientToolOutputs = [];\n\t\t\t\t\tfor (const toolCall of invalidToolCalls) clientToolOutputs.push({\n\t\t\t\t\t\ttype: \"tool-error\",\n\t\t\t\t\t\ttoolCallId: toolCall.toolCallId,\n\t\t\t\t\t\ttoolName: toolCall.toolName,\n\t\t\t\t\t\tinput: toolCall.input,\n\t\t\t\t\t\terror: getErrorMessage$1(toolCall.error),\n\t\t\t\t\t\tdynamic: true\n\t\t\t\t\t});\n\t\t\t\t\tclientToolCalls = stepToolCalls.filter((toolCall) => !toolCall.providerExecuted);\n\t\t\t\t\tif (stepToolSet != null) clientToolOutputs.push(...await executeTools({\n\t\t\t\t\t\ttoolCalls: clientToolCalls.filter((toolCall) => !toolCall.invalid),\n\t\t\t\t\t\ttools: stepToolSet,\n\t\t\t\t\t\ttracer,\n\t\t\t\t\t\ttelemetry,\n\t\t\t\t\t\tmessages: stepInputMessages,\n\t\t\t\t\t\tabortSignal,\n\t\t\t\t\t\texperimental_context\n\t\t\t\t\t}));\n\t\t\t\t\tconst stepContent = asContent({\n\t\t\t\t\t\tcontent: currentModelResponse.content,\n\t\t\t\t\t\ttoolCalls: stepToolCalls,\n\t\t\t\t\t\ttoolOutputs: clientToolOutputs\n\t\t\t\t\t});\n\t\t\t\t\tresponseMessages.push(...toResponseMessages({\n\t\t\t\t\t\tcontent: stepContent,\n\t\t\t\t\t\ttools: stepToolSet\n\t\t\t\t\t}));\n\t\t\t\t\tconst currentStepResult = new DefaultStepResult({\n\t\t\t\t\t\tcontent: stepContent,\n\t\t\t\t\t\tfinishReason: currentModelResponse.finishReason,\n\t\t\t\t\t\tusage: currentModelResponse.usage,\n\t\t\t\t\t\twarnings: currentModelResponse.warnings,\n\t\t\t\t\t\tproviderMetadata: currentModelResponse.providerMetadata,\n\t\t\t\t\t\trequest: (_f = currentModelResponse.request) != null ? _f : {},\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\t...currentModelResponse.response,\n\t\t\t\t\t\t\tmessages: structuredClone(responseMessages)\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tlogWarnings((_g = currentModelResponse.warnings) != null ? _g : []);\n\t\t\t\t\tsteps.push(currentStepResult);\n\t\t\t\t\tawait (onStepFinish == null ? void 0 : onStepFinish(currentStepResult));\n\t\t\t\t} while (clientToolCalls.length > 0 && clientToolOutputs.length === clientToolCalls.length && !await isStopConditionMet({\n\t\t\t\t\tstopConditions,\n\t\t\t\t\tsteps\n\t\t\t\t}));\n\t\t\t\tspan.setAttributes(selectTelemetryAttributes({\n\t\t\t\t\ttelemetry,\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\"ai.response.finishReason\": currentModelResponse.finishReason,\n\t\t\t\t\t\t\"ai.response.text\": { output: () => extractTextContent(currentModelResponse.content) },\n\t\t\t\t\t\t\"ai.response.toolCalls\": { output: () => {\n\t\t\t\t\t\t\tconst toolCalls = asToolCalls(currentModelResponse.content);\n\t\t\t\t\t\t\treturn toolCalls == null ? void 0 : JSON.stringify(toolCalls);\n\t\t\t\t\t\t} },\n\t\t\t\t\t\t\"ai.response.providerMetadata\": JSON.stringify(currentModelResponse.providerMetadata),\n\t\t\t\t\t\t\"ai.usage.promptTokens\": currentModelResponse.usage.inputTokens,\n\t\t\t\t\t\t\"ai.usage.completionTokens\": currentModelResponse.usage.outputTokens\n\t\t\t\t\t}\n\t\t\t\t}));\n\t\t\t\tconst lastStep = steps[steps.length - 1];\n\t\t\t\tlet resolvedOutput;\n\t\t\t\tif (lastStep.finishReason === \"stop\") resolvedOutput = await (output == null ? void 0 : output.parseOutput({ text: lastStep.text }, {\n\t\t\t\t\tresponse: lastStep.response,\n\t\t\t\t\tusage: lastStep.usage,\n\t\t\t\t\tfinishReason: lastStep.finishReason\n\t\t\t\t}));\n\t\t\t\treturn new DefaultGenerateTextResult({\n\t\t\t\t\tsteps,\n\t\t\t\t\tresolvedOutput\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t} catch (error) {\n\t\tthrow wrapGatewayError(error);\n\t}\n}\nasync function executeTools({ toolCalls, tools, tracer, telemetry, messages, abortSignal, experimental_context }) {\n\treturn (await Promise.all(toolCalls.map(async ({ toolCallId, toolName, input }) => {\n\t\tconst tool2 = tools[toolName];\n\t\tif ((tool2 == null ? void 0 : tool2.execute) == null) return;\n\t\treturn recordSpan({\n\t\t\tname: \"ai.toolCall\",\n\t\t\tattributes: selectTelemetryAttributes({\n\t\t\t\ttelemetry,\n\t\t\t\tattributes: {\n\t\t\t\t\t...assembleOperationName({\n\t\t\t\t\t\toperationId: \"ai.toolCall\",\n\t\t\t\t\t\ttelemetry\n\t\t\t\t\t}),\n\t\t\t\t\t\"ai.toolCall.name\": toolName,\n\t\t\t\t\t\"ai.toolCall.id\": toolCallId,\n\t\t\t\t\t\"ai.toolCall.args\": { output: () => JSON.stringify(input) }\n\t\t\t\t}\n\t\t\t}),\n\t\t\ttracer,\n\t\t\tfn: async (span) => {\n\t\t\t\ttry {\n\t\t\t\t\tconst stream = executeTool({\n\t\t\t\t\t\texecute: tool2.execute.bind(tool2),\n\t\t\t\t\t\tinput,\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\ttoolCallId,\n\t\t\t\t\t\t\tmessages,\n\t\t\t\t\t\t\tabortSignal,\n\t\t\t\t\t\t\texperimental_context\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tlet output;\n\t\t\t\t\tfor await (const part of stream) if (part.type === \"final\") output = part.output;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tspan.setAttributes(selectTelemetryAttributes({\n\t\t\t\t\t\t\ttelemetry,\n\t\t\t\t\t\t\tattributes: { \"ai.toolCall.result\": { output: () => JSON.stringify(output) } }\n\t\t\t\t\t\t}));\n\t\t\t\t\t} catch (ignored) {}\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: \"tool-result\",\n\t\t\t\t\t\ttoolCallId,\n\t\t\t\t\t\ttoolName,\n\t\t\t\t\t\tinput,\n\t\t\t\t\t\toutput,\n\t\t\t\t\t\tdynamic: tool2.type === \"dynamic\"\n\t\t\t\t\t};\n\t\t\t\t} catch (error) {\n\t\t\t\t\trecordErrorOnSpan(span, error);\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: \"tool-error\",\n\t\t\t\t\t\ttoolCallId,\n\t\t\t\t\t\ttoolName,\n\t\t\t\t\t\tinput,\n\t\t\t\t\t\terror,\n\t\t\t\t\t\tdynamic: tool2.type === \"dynamic\"\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}))).filter((output) => output != null);\n}\nvar DefaultGenerateTextResult = class {\n\tconstructor(options) {\n\t\tthis.steps = options.steps;\n\t\tthis.resolvedOutput = options.resolvedOutput;\n\t}\n\tget finalStep() {\n\t\treturn this.steps[this.steps.length - 1];\n\t}\n\tget content() {\n\t\treturn this.finalStep.content;\n\t}\n\tget text() {\n\t\treturn this.finalStep.text;\n\t}\n\tget files() {\n\t\treturn this.finalStep.files;\n\t}\n\tget reasoningText() {\n\t\treturn this.finalStep.reasoningText;\n\t}\n\tget reasoning() {\n\t\treturn this.finalStep.reasoning;\n\t}\n\tget toolCalls() {\n\t\treturn this.finalStep.toolCalls;\n\t}\n\tget staticToolCalls() {\n\t\treturn this.finalStep.staticToolCalls;\n\t}\n\tget dynamicToolCalls() {\n\t\treturn this.finalStep.dynamicToolCalls;\n\t}\n\tget toolResults() {\n\t\treturn this.finalStep.toolResults;\n\t}\n\tget staticToolResults() {\n\t\treturn this.finalStep.staticToolResults;\n\t}\n\tget dynamicToolResults() {\n\t\treturn this.finalStep.dynamicToolResults;\n\t}\n\tget sources() {\n\t\treturn this.finalStep.sources;\n\t}\n\tget finishReason() {\n\t\treturn this.finalStep.finishReason;\n\t}\n\tget warnings() {\n\t\treturn this.finalStep.warnings;\n\t}\n\tget providerMetadata() {\n\t\treturn this.finalStep.providerMetadata;\n\t}\n\tget response() {\n\t\treturn this.finalStep.response;\n\t}\n\tget request() {\n\t\treturn this.finalStep.request;\n\t}\n\tget usage() {\n\t\treturn this.finalStep.usage;\n\t}\n\tget totalUsage() {\n\t\treturn this.steps.reduce((totalUsage, step) => {\n\t\t\treturn addLanguageModelUsage(totalUsage, step.usage);\n\t\t}, {\n\t\t\tinputTokens: void 0,\n\t\t\toutputTokens: void 0,\n\t\t\ttotalTokens: void 0,\n\t\t\treasoningTokens: void 0,\n\t\t\tcachedInputTokens: void 0\n\t\t});\n\t}\n\tget experimental_output() {\n\t\tif (this.resolvedOutput == null) throw new NoOutputSpecifiedError();\n\t\treturn this.resolvedOutput;\n\t}\n};\nfunction asToolCalls(content) {\n\tconst parts = content.filter((part) => part.type === \"tool-call\");\n\tif (parts.length === 0) return;\n\treturn parts.map((toolCall) => ({\n\t\ttoolCallId: toolCall.toolCallId,\n\t\ttoolName: toolCall.toolName,\n\t\tinput: toolCall.input\n\t}));\n}\nfunction asContent({ content, toolCalls, toolOutputs }) {\n\treturn [...content.map((part) => {\n\t\tswitch (part.type) {\n\t\t\tcase \"text\":\n\t\t\tcase \"reasoning\":\n\t\t\tcase \"source\": return part;\n\t\t\tcase \"file\": return {\n\t\t\t\ttype: \"file\",\n\t\t\t\tfile: new DefaultGeneratedFile(part)\n\t\t\t};\n\t\t\tcase \"tool-call\": return toolCalls.find((toolCall) => toolCall.toolCallId === part.toolCallId);\n\t\t\tcase \"tool-result\": {\n\t\t\t\tconst toolCall = toolCalls.find((toolCall2) => toolCall2.toolCallId === part.toolCallId);\n\t\t\t\tif (toolCall == null) throw new Error(`Tool call ${part.toolCallId} not found.`);\n\t\t\t\tif (part.isError) return {\n\t\t\t\t\ttype: \"tool-error\",\n\t\t\t\t\ttoolCallId: part.toolCallId,\n\t\t\t\t\ttoolName: part.toolName,\n\t\t\t\t\tinput: toolCall.input,\n\t\t\t\t\terror: part.result,\n\t\t\t\t\tproviderExecuted: true,\n\t\t\t\t\tdynamic: toolCall.dynamic\n\t\t\t\t};\n\t\t\t\treturn {\n\t\t\t\t\ttype: \"tool-result\",\n\t\t\t\t\ttoolCallId: part.toolCallId,\n\t\t\t\t\ttoolName: part.toolName,\n\t\t\t\t\tinput: toolCall.input,\n\t\t\t\t\toutput: part.result,\n\t\t\t\t\tproviderExecuted: true,\n\t\t\t\t\tdynamic: toolCall.dynamic\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}), ...toolOutputs];\n}\nfunction prepareHeaders(headers, defaultHeaders) {\n\tconst responseHeaders = new Headers(headers != null ? headers : {});\n\tfor (const [key, value] of Object.entries(defaultHeaders)) if (!responseHeaders.has(key)) responseHeaders.set(key, value);\n\treturn responseHeaders;\n}\nfunction createTextStreamResponse({ status, statusText, headers, textStream }) {\n\treturn new Response(textStream.pipeThrough(new TextEncoderStream()), {\n\t\tstatus: status != null ? status : 200,\n\t\tstatusText,\n\t\theaders: prepareHeaders(headers, { \"content-type\": \"text/plain; charset=utf-8\" })\n\t});\n}\nfunction writeToServerResponse({ response, status, statusText, headers, stream }) {\n\tconst statusCode = status != null ? status : 200;\n\tif (statusText !== void 0) response.writeHead(statusCode, statusText, headers);\n\telse response.writeHead(statusCode, headers);\n\tconst reader = stream.getReader();\n\tconst read = async () => {\n\t\ttry {\n\t\t\twhile (true) {\n\t\t\t\tconst { done, value } = await reader.read();\n\t\t\t\tif (done) break;\n\t\t\t\tif (!response.write(value)) await new Promise((resolve2) => {\n\t\t\t\t\tresponse.once(\"drain\", resolve2);\n\t\t\t\t});\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tthrow error;\n\t\t} finally {\n\t\t\tresponse.end();\n\t\t}\n\t};\n\treturn read();\n}\nfunction pipeTextStreamToResponse({ response, status, statusText, headers, textStream }) {\n\treturn writeToServerResponse({\n\t\tresponse,\n\t\tstatus,\n\t\tstatusText,\n\t\theaders: Object.fromEntries(prepareHeaders(headers, { \"content-type\": \"text/plain; charset=utf-8\" }).entries()),\n\t\tstream: textStream.pipeThrough(new TextEncoderStream())\n\t});\n}\nvar JsonToSseTransformStream = class extends TransformStream {\n\tconstructor() {\n\t\tsuper({\n\t\t\ttransform(part, controller) {\n\t\t\t\tcontroller.enqueue(`data: ${JSON.stringify(part)}\n\n`);\n\t\t\t},\n\t\t\tflush(controller) {\n\t\t\t\tcontroller.enqueue(\"data: [DONE]\\n\\n\");\n\t\t\t}\n\t\t});\n\t}\n};\nvar UI_MESSAGE_STREAM_HEADERS = {\n\t\"content-type\": \"text/event-stream\",\n\t\"cache-control\": \"no-cache\",\n\tconnection: \"keep-alive\",\n\t\"x-vercel-ai-ui-message-stream\": \"v1\",\n\t\"x-accel-buffering\": \"no\"\n};\nfunction createUIMessageStreamResponse({ status, statusText, headers, stream, consumeSseStream }) {\n\tlet sseStream = stream.pipeThrough(new JsonToSseTransformStream());\n\tif (consumeSseStream) {\n\t\tconst [stream1, stream2] = sseStream.tee();\n\t\tsseStream = stream1;\n\t\tconsumeSseStream({ stream: stream2 });\n\t}\n\treturn new Response(sseStream.pipeThrough(new TextEncoderStream()), {\n\t\tstatus,\n\t\tstatusText,\n\t\theaders: prepareHeaders(headers, UI_MESSAGE_STREAM_HEADERS)\n\t});\n}\nfunction getResponseUIMessageId({ originalMessages, responseMessageId }) {\n\tif (originalMessages == null) return;\n\tconst lastMessage = originalMessages[originalMessages.length - 1];\n\treturn (lastMessage == null ? void 0 : lastMessage.role) === \"assistant\" ? lastMessage.id : typeof responseMessageId === \"function\" ? responseMessageId() : responseMessageId;\n}\nvar uiMessageChunkSchema = lazyValidator(() => zodSchema(z.union([\n\tz.looseObject({\n\t\ttype: z.literal(\"text-start\"),\n\t\tid: z.string(),\n\t\tproviderMetadata: providerMetadataSchema.optional()\n\t}),\n\tz.looseObject({\n\t\ttype: z.literal(\"text-delta\"),\n\t\tid: z.string(),\n\t\tdelta: z.string(),\n\t\tproviderMetadata: providerMetadataSchema.optional()\n\t}),\n\tz.looseObject({\n\t\ttype: z.literal(\"text-end\"),\n\t\tid: z.string(),\n\t\tproviderMetadata: providerMetadataSchema.optional()\n\t}),\n\tz.looseObject({\n\t\ttype: z.literal(\"error\"),\n\t\terrorText: z.string()\n\t}),\n\tz.looseObject({\n\t\ttype: z.literal(\"tool-input-start\"),\n\t\ttoolCallId: z.string(),\n\t\ttoolName: z.string(),\n\t\tproviderExecuted: z.boolean().optional(),\n\t\tdynamic: z.boolean().optional()\n\t}),\n\tz.looseObject({\n\t\ttype: z.literal(\"tool-input-delta\"),\n\t\ttoolCallId: z.string(),\n\t\tinputTextDelta: z.string()\n\t}),\n\tz.looseObject({\n\t\ttype: z.literal(\"tool-input-available\"),\n\t\ttoolCallId: z.string(),\n\t\ttoolName: z.string(),\n\t\tinput: z.unknown(),\n\t\tproviderExecuted: z.boolean().optional(),\n\t\tproviderMetadata: providerMetadataSchema.optional(),\n\t\tdynamic: z.boolean().optional()\n\t}),\n\tz.looseObject({\n\t\ttype: z.literal(\"tool-input-error\"),\n\t\ttoolCallId: z.string(),\n\t\ttoolName: z.string(),\n\t\tinput: z.unknown(),\n\t\tproviderExecuted: z.boolean().optional(),\n\t\tproviderMetadata: providerMetadataSchema.optional(),\n\t\tdynamic: z.boolean().optional(),\n\t\terrorText: z.string()\n\t}),\n\tz.looseObject({\n\t\ttype: z.literal(\"tool-output-available\"),\n\t\ttoolCallId: z.string(),\n\t\toutput: z.unknown(),\n\t\tproviderExecuted: z.boolean().optional(),\n\t\tdynamic: z.boolean().optional(),\n\t\tpreliminary: z.boolean().optional()\n\t}),\n\tz.looseObject({\n\t\ttype: z.literal(\"tool-output-error\"),\n\t\ttoolCallId: z.string(),\n\t\terrorText: z.string(),\n\t\tproviderExecuted: z.boolean().optional(),\n\t\tdynamic: z.boolean().optional()\n\t}),\n\tz.looseObject({\n\t\ttype: z.literal(\"reasoning-start\"),\n\t\tid: z.string(),\n\t\tproviderMetadata: providerMetadataSchema.optional()\n\t}),\n\tz.looseObject({\n\t\ttype: z.literal(\"reasoning-delta\"),\n\t\tid: z.string(),\n\t\tdelta: z.string(),\n\t\tproviderMetadata: providerMetadataSchema.optional()\n\t}),\n\tz.looseObject({\n\t\ttype: z.literal(\"reasoning-end\"),\n\t\tid: z.string(),\n\t\tproviderMetadata: providerMetadataSchema.optional()\n\t}),\n\tz.looseObject({\n\t\ttype: z.literal(\"source-url\"),\n\t\tsourceId: z.string(),\n\t\turl: z.string(),\n\t\ttitle: z.string().optional(),\n\t\tproviderMetadata: providerMetadataSchema.optional()\n\t}),\n\tz.looseObject({\n\t\ttype: z.literal(\"source-document\"),\n\t\tsourceId: z.string(),\n\t\tmediaType: z.string(),\n\t\ttitle: z.string(),\n\t\tfilename: z.string().optional(),\n\t\tproviderMetadata: providerMetadataSchema.optional()\n\t}),\n\tz.looseObject({\n\t\ttype: z.literal(\"file\"),\n\t\turl: z.string(),\n\t\tmediaType: z.string(),\n\t\tproviderMetadata: providerMetadataSchema.optional()\n\t}),\n\tz.looseObject({\n\t\ttype: z.custom((value) => typeof value === \"string\" && value.startsWith(\"data-\"), { message: \"Type must start with \\\"data-\\\"\" }),\n\t\tid: z.string().optional(),\n\t\tdata: z.unknown(),\n\t\ttransient: z.boolean().optional()\n\t}),\n\tz.looseObject({ type: z.literal(\"start-step\") }),\n\tz.looseObject({ type: z.literal(\"finish-step\") }),\n\tz.looseObject({\n\t\ttype: z.literal(\"start\"),\n\t\tmessageId: z.string().optional(),\n\t\tmessageMetadata: z.unknown().optional()\n\t}),\n\tz.looseObject({\n\t\ttype: z.literal(\"finish\"),\n\t\tfinishReason: z.enum([\n\t\t\t\"stop\",\n\t\t\t\"length\",\n\t\t\t\"content-filter\",\n\t\t\t\"tool-calls\",\n\t\t\t\"error\",\n\t\t\t\"other\",\n\t\t\t\"unknown\"\n\t\t]).optional(),\n\t\tmessageMetadata: z.unknown().optional()\n\t}),\n\tz.looseObject({ type: z.literal(\"abort\") }),\n\tz.looseObject({\n\t\ttype: z.literal(\"message-metadata\"),\n\t\tmessageMetadata: z.unknown()\n\t})\n])));\nfunction isDataUIMessageChunk(chunk) {\n\treturn chunk.type.startsWith(\"data-\");\n}\nfunction createIdMap() {\n\treturn /* @__PURE__ */ Object.create(null);\n}\nfunction mergeObjects(base, overrides) {\n\tif (base === void 0 && overrides === void 0) return;\n\tif (base === void 0) return overrides;\n\tif (overrides === void 0) return base;\n\tconst result = { ...base };\n\tfor (const key in overrides) {\n\t\tif (key === \"__proto__\" || key === \"constructor\" || key === \"prototype\") continue;\n\t\tif (Object.prototype.hasOwnProperty.call(overrides, key)) {\n\t\t\tconst overridesValue = overrides[key];\n\t\t\tif (overridesValue === void 0) continue;\n\t\t\tconst baseValue = key in base ? base[key] : void 0;\n\t\t\tconst isSourceObject = overridesValue !== null && typeof overridesValue === \"object\" && !Array.isArray(overridesValue) && !(overridesValue instanceof Date) && !(overridesValue instanceof RegExp);\n\t\t\tconst isTargetObject = baseValue !== null && baseValue !== void 0 && typeof baseValue === \"object\" && !Array.isArray(baseValue) && !(baseValue instanceof Date) && !(baseValue instanceof RegExp);\n\t\t\tif (isSourceObject && isTargetObject) result[key] = mergeObjects(baseValue, overridesValue);\n\t\t\telse result[key] = overridesValue;\n\t\t}\n\t}\n\treturn result;\n}\nfunction fixJson(input) {\n\tconst stack = [\"ROOT\"];\n\tlet lastValidIndex = -1;\n\tlet literalStart = null;\n\tfunction processValueStart(char, i, swapState) {\n\t\tswitch (char) {\n\t\t\tcase \"\\\"\":\n\t\t\t\tlastValidIndex = i;\n\t\t\t\tstack.pop();\n\t\t\t\tstack.push(swapState);\n\t\t\t\tstack.push(\"INSIDE_STRING\");\n\t\t\t\tbreak;\n\t\t\tcase \"f\":\n\t\t\tcase \"t\":\n\t\t\tcase \"n\":\n\t\t\t\tlastValidIndex = i;\n\t\t\t\tliteralStart = i;\n\t\t\t\tstack.pop();\n\t\t\t\tstack.push(swapState);\n\t\t\t\tstack.push(\"INSIDE_LITERAL\");\n\t\t\t\tbreak;\n\t\t\tcase \"-\":\n\t\t\t\tstack.pop();\n\t\t\t\tstack.push(swapState);\n\t\t\t\tstack.push(\"INSIDE_NUMBER\");\n\t\t\t\tbreak;\n\t\t\tcase \"0\":\n\t\t\tcase \"1\":\n\t\t\tcase \"2\":\n\t\t\tcase \"3\":\n\t\t\tcase \"4\":\n\t\t\tcase \"5\":\n\t\t\tcase \"6\":\n\t\t\tcase \"7\":\n\t\t\tcase \"8\":\n\t\t\tcase \"9\":\n\t\t\t\tlastValidIndex = i;\n\t\t\t\tstack.pop();\n\t\t\t\tstack.push(swapState);\n\t\t\t\tstack.push(\"INSIDE_NUMBER\");\n\t\t\t\tbreak;\n\t\t\tcase \"{\":\n\t\t\t\tlastValidIndex = i;\n\t\t\t\tstack.pop();\n\t\t\t\tstack.push(swapState);\n\t\t\t\tstack.push(\"INSIDE_OBJECT_START\");\n\t\t\t\tbreak;\n\t\t\tcase \"[\":\n\t\t\t\tlastValidIndex = i;\n\t\t\t\tstack.pop();\n\t\t\t\tstack.push(swapState);\n\t\t\t\tstack.push(\"INSIDE_ARRAY_START\");\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tfunction processAfterObjectValue(char, i) {\n\t\tswitch (char) {\n\t\t\tcase \",\":\n\t\t\t\tstack.pop();\n\t\t\t\tstack.push(\"INSIDE_OBJECT_AFTER_COMMA\");\n\t\t\t\tbreak;\n\t\t\tcase \"}\":\n\t\t\t\tlastValidIndex = i;\n\t\t\t\tstack.pop();\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tfunction processAfterArrayValue(char, i) {\n\t\tswitch (char) {\n\t\t\tcase \",\":\n\t\t\t\tstack.pop();\n\t\t\t\tstack.push(\"INSIDE_ARRAY_AFTER_COMMA\");\n\t\t\t\tbreak;\n\t\t\tcase \"]\":\n\t\t\t\tlastValidIndex = i;\n\t\t\t\tstack.pop();\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tfor (let i = 0; i < input.length; i++) {\n\t\tconst char = input[i];\n\t\tswitch (stack[stack.length - 1]) {\n\t\t\tcase \"ROOT\":\n\t\t\t\tprocessValueStart(char, i, \"FINISH\");\n\t\t\t\tbreak;\n\t\t\tcase \"INSIDE_OBJECT_START\":\n\t\t\t\tswitch (char) {\n\t\t\t\t\tcase \"\\\"\":\n\t\t\t\t\t\tstack.pop();\n\t\t\t\t\t\tstack.push(\"INSIDE_OBJECT_KEY\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"}\":\n\t\t\t\t\t\tlastValidIndex = i;\n\t\t\t\t\t\tstack.pop();\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"INSIDE_OBJECT_AFTER_COMMA\":\n\t\t\t\tswitch (char) {\n\t\t\t\t\tcase \"\\\"\":\n\t\t\t\t\t\tstack.pop();\n\t\t\t\t\t\tstack.push(\"INSIDE_OBJECT_KEY\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"INSIDE_OBJECT_KEY\":\n\t\t\t\tswitch (char) {\n\t\t\t\t\tcase \"\\\"\":\n\t\t\t\t\t\tstack.pop();\n\t\t\t\t\t\tstack.push(\"INSIDE_OBJECT_AFTER_KEY\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"INSIDE_OBJECT_AFTER_KEY\":\n\t\t\t\tswitch (char) {\n\t\t\t\t\tcase \":\":\n\t\t\t\t\t\tstack.pop();\n\t\t\t\t\t\tstack.push(\"INSIDE_OBJECT_BEFORE_VALUE\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"INSIDE_OBJECT_BEFORE_VALUE\":\n\t\t\t\tprocessValueStart(char, i, \"INSIDE_OBJECT_AFTER_VALUE\");\n\t\t\t\tbreak;\n\t\t\tcase \"INSIDE_OBJECT_AFTER_VALUE\":\n\t\t\t\tprocessAfterObjectValue(char, i);\n\t\t\t\tbreak;\n\t\t\tcase \"INSIDE_STRING\":\n\t\t\t\tswitch (char) {\n\t\t\t\t\tcase \"\\\"\":\n\t\t\t\t\t\tstack.pop();\n\t\t\t\t\t\tlastValidIndex = i;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"\\\\\":\n\t\t\t\t\t\tstack.push(\"INSIDE_STRING_ESCAPE\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault: lastValidIndex = i;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"INSIDE_ARRAY_START\":\n\t\t\t\tswitch (char) {\n\t\t\t\t\tcase \"]\":\n\t\t\t\t\t\tlastValidIndex = i;\n\t\t\t\t\t\tstack.pop();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tlastValidIndex = i;\n\t\t\t\t\t\tprocessValueStart(char, i, \"INSIDE_ARRAY_AFTER_VALUE\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"INSIDE_ARRAY_AFTER_VALUE\":\n\t\t\t\tswitch (char) {\n\t\t\t\t\tcase \",\":\n\t\t\t\t\t\tstack.pop();\n\t\t\t\t\t\tstack.push(\"INSIDE_ARRAY_AFTER_COMMA\");\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"]\":\n\t\t\t\t\t\tlastValidIndex = i;\n\t\t\t\t\t\tstack.pop();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tlastValidIndex = i;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"INSIDE_ARRAY_AFTER_COMMA\":\n\t\t\t\tprocessValueStart(char, i, \"INSIDE_ARRAY_AFTER_VALUE\");\n\t\t\t\tbreak;\n\t\t\tcase \"INSIDE_STRING_ESCAPE\":\n\t\t\t\tstack.pop();\n\t\t\t\tlastValidIndex = i;\n\t\t\t\tbreak;\n\t\t\tcase \"INSIDE_NUMBER\":\n\t\t\t\tswitch (char) {\n\t\t\t\t\tcase \"0\":\n\t\t\t\t\tcase \"1\":\n\t\t\t\t\tcase \"2\":\n\t\t\t\t\tcase \"3\":\n\t\t\t\t\tcase \"4\":\n\t\t\t\t\tcase \"5\":\n\t\t\t\t\tcase \"6\":\n\t\t\t\t\tcase \"7\":\n\t\t\t\t\tcase \"8\":\n\t\t\t\t\tcase \"9\":\n\t\t\t\t\t\tlastValidIndex = i;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"e\":\n\t\t\t\t\tcase \"E\":\n\t\t\t\t\tcase \"-\":\n\t\t\t\t\tcase \".\": break;\n\t\t\t\t\tcase \",\":\n\t\t\t\t\t\tstack.pop();\n\t\t\t\t\t\tif (stack[stack.length - 1] === \"INSIDE_ARRAY_AFTER_VALUE\") processAfterArrayValue(char, i);\n\t\t\t\t\t\tif (stack[stack.length - 1] === \"INSIDE_OBJECT_AFTER_VALUE\") processAfterObjectValue(char, i);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"}\":\n\t\t\t\t\t\tstack.pop();\n\t\t\t\t\t\tif (stack[stack.length - 1] === \"INSIDE_OBJECT_AFTER_VALUE\") processAfterObjectValue(char, i);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"]\":\n\t\t\t\t\t\tstack.pop();\n\t\t\t\t\t\tif (stack[stack.length - 1] === \"INSIDE_ARRAY_AFTER_VALUE\") processAfterArrayValue(char, i);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tstack.pop();\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"INSIDE_LITERAL\": {\n\t\t\t\tconst partialLiteral = input.substring(literalStart, i + 1);\n\t\t\t\tif (!\"false\".startsWith(partialLiteral) && !\"true\".startsWith(partialLiteral) && !\"null\".startsWith(partialLiteral)) {\n\t\t\t\t\tstack.pop();\n\t\t\t\t\tif (stack[stack.length - 1] === \"INSIDE_OBJECT_AFTER_VALUE\") processAfterObjectValue(char, i);\n\t\t\t\t\telse if (stack[stack.length - 1] === \"INSIDE_ARRAY_AFTER_VALUE\") processAfterArrayValue(char, i);\n\t\t\t\t} else lastValidIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tlet result = input.slice(0, lastValidIndex + 1);\n\tfor (let i = stack.length - 1; i >= 0; i--) switch (stack[i]) {\n\t\tcase \"INSIDE_STRING\":\n\t\t\tresult += \"\\\"\";\n\t\t\tbreak;\n\t\tcase \"INSIDE_OBJECT_KEY\":\n\t\tcase \"INSIDE_OBJECT_AFTER_KEY\":\n\t\tcase \"INSIDE_OBJECT_AFTER_COMMA\":\n\t\tcase \"INSIDE_OBJECT_START\":\n\t\tcase \"INSIDE_OBJECT_BEFORE_VALUE\":\n\t\tcase \"INSIDE_OBJECT_AFTER_VALUE\":\n\t\t\tresult += \"}\";\n\t\t\tbreak;\n\t\tcase \"INSIDE_ARRAY_START\":\n\t\tcase \"INSIDE_ARRAY_AFTER_COMMA\":\n\t\tcase \"INSIDE_ARRAY_AFTER_VALUE\":\n\t\t\tresult += \"]\";\n\t\t\tbreak;\n\t\tcase \"INSIDE_LITERAL\": {\n\t\t\tconst partialLiteral = input.substring(literalStart, input.length);\n\t\t\tif (\"true\".startsWith(partialLiteral)) result += \"true\".slice(partialLiteral.length);\n\t\t\telse if (\"false\".startsWith(partialLiteral)) result += \"false\".slice(partialLiteral.length);\n\t\t\telse if (\"null\".startsWith(partialLiteral)) result += \"null\".slice(partialLiteral.length);\n\t\t}\n\t}\n\treturn result;\n}\nasync function parsePartialJson(jsonText) {\n\tif (jsonText === void 0) return {\n\t\tvalue: void 0,\n\t\tstate: \"undefined-input\"\n\t};\n\tlet result = await safeParseJSON({ text: jsonText });\n\tif (result.success) return {\n\t\tvalue: result.value,\n\t\tstate: \"successful-parse\"\n\t};\n\tresult = await safeParseJSON({ text: fixJson(jsonText) });\n\tif (result.success) return {\n\t\tvalue: result.value,\n\t\tstate: \"repaired-parse\"\n\t};\n\treturn {\n\t\tvalue: void 0,\n\t\tstate: \"failed-parse\"\n\t};\n}\nfunction isDataUIPart(part) {\n\treturn part.type.startsWith(\"data-\");\n}\nfunction isTextUIPart(part) {\n\treturn part.type === \"text\";\n}\nfunction isFileUIPart(part) {\n\treturn part.type === \"file\";\n}\nfunction isReasoningUIPart(part) {\n\treturn part.type === \"reasoning\";\n}\nfunction isToolUIPart(part) {\n\treturn part.type.startsWith(\"tool-\");\n}\nfunction isDynamicToolUIPart(part) {\n\treturn part.type === \"dynamic-tool\";\n}\nfunction isToolOrDynamicToolUIPart(part) {\n\treturn isToolUIPart(part) || isDynamicToolUIPart(part);\n}\nfunction getToolName(part) {\n\treturn part.type.split(\"-\").slice(1).join(\"-\");\n}\nfunction getToolOrDynamicToolName(part) {\n\treturn isDynamicToolUIPart(part) ? part.toolName : getToolName(part);\n}\nfunction createStreamingUIMessageState({ lastMessage, messageId }) {\n\treturn {\n\t\tmessage: (lastMessage == null ? void 0 : lastMessage.role) === \"assistant\" ? lastMessage : {\n\t\t\tid: messageId,\n\t\t\tmetadata: void 0,\n\t\t\trole: \"assistant\",\n\t\t\tparts: []\n\t\t},\n\t\tactiveTextParts: createIdMap(),\n\t\tactiveReasoningParts: createIdMap(),\n\t\tpartialToolCalls: createIdMap()\n\t};\n}\nfunction processUIMessageStream({ stream, messageMetadataSchema, dataPartSchemas, runUpdateMessageJob, onError, onToolCall, onData }) {\n\treturn stream.pipeThrough(new TransformStream({ async transform(chunk, controller) {\n\t\tawait runUpdateMessageJob(async ({ state, write }) => {\n\t\t\tvar _a16, _b, _c, _d;\n\t\t\tfunction getCurrentStepParts() {\n\t\t\t\tconst parts = state.message.parts;\n\t\t\t\tlet currentStepStartIndex = parts.length - 1;\n\t\t\t\twhile (currentStepStartIndex >= 0 && parts[currentStepStartIndex].type !== \"step-start\") currentStepStartIndex--;\n\t\t\t\treturn parts.slice(currentStepStartIndex + 1);\n\t\t\t}\n\t\t\tfunction getCurrentStepToolInvocations() {\n\t\t\t\treturn getCurrentStepParts().filter(isToolUIPart);\n\t\t\t}\n\t\t\tfunction getToolInvocation(toolCallId) {\n\t\t\t\tlet toolInvocation = getCurrentStepToolInvocations().find((invocation) => invocation.toolCallId === toolCallId);\n\t\t\t\tif (toolInvocation == null) {\n\t\t\t\t\tconst parts = state.message.parts;\n\t\t\t\t\tfor (let i = parts.length - 1; i >= 0; i--) {\n\t\t\t\t\t\tconst part = parts[i];\n\t\t\t\t\t\tif (isToolUIPart(part) && part.toolCallId === toolCallId) {\n\t\t\t\t\t\t\ttoolInvocation = part;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (toolInvocation == null) throw new Error(\"tool-output-error must be preceded by a tool-input-available\");\n\t\t\t\treturn toolInvocation;\n\t\t\t}\n\t\t\tfunction getDynamicToolInvocation(toolCallId) {\n\t\t\t\tlet toolInvocation = getCurrentStepParts().filter((part) => part.type === \"dynamic-tool\").find((invocation) => invocation.toolCallId === toolCallId);\n\t\t\t\tif (toolInvocation == null) {\n\t\t\t\t\tconst parts = state.message.parts;\n\t\t\t\t\tfor (let i = parts.length - 1; i >= 0; i--) {\n\t\t\t\t\t\tconst part = parts[i];\n\t\t\t\t\t\tif (part.type === \"dynamic-tool\" && part.toolCallId === toolCallId) {\n\t\t\t\t\t\t\ttoolInvocation = part;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (toolInvocation == null) throw new Error(\"tool-output-error must be preceded by a tool-input-available\");\n\t\t\t\treturn toolInvocation;\n\t\t\t}\n\t\t\tfunction updateToolPart(options, existingPart) {\n\t\t\t\tvar _a17;\n\t\t\t\tconst part = existingPart != null ? existingPart : getCurrentStepParts().find((part2) => isToolUIPart(part2) && part2.toolCallId === options.toolCallId);\n\t\t\t\tconst anyOptions = options;\n\t\t\t\tconst anyPart = part;\n\t\t\t\tif (part != null) {\n\t\t\t\t\tpart.state = options.state;\n\t\t\t\t\tanyPart.input = anyOptions.input;\n\t\t\t\t\tanyPart.output = anyOptions.output;\n\t\t\t\t\tanyPart.errorText = anyOptions.errorText;\n\t\t\t\t\tanyPart.rawInput = anyOptions.rawInput;\n\t\t\t\t\tanyPart.preliminary = anyOptions.preliminary;\n\t\t\t\t\tanyPart.providerExecuted = (_a17 = anyOptions.providerExecuted) != null ? _a17 : part.providerExecuted;\n\t\t\t\t\tif (anyOptions.providerMetadata != null && part.state === \"input-available\") part.callProviderMetadata = anyOptions.providerMetadata;\n\t\t\t\t} else state.message.parts.push({\n\t\t\t\t\ttype: `tool-${options.toolName}`,\n\t\t\t\t\ttoolCallId: options.toolCallId,\n\t\t\t\t\tstate: options.state,\n\t\t\t\t\tinput: anyOptions.input,\n\t\t\t\t\toutput: anyOptions.output,\n\t\t\t\t\trawInput: anyOptions.rawInput,\n\t\t\t\t\terrorText: anyOptions.errorText,\n\t\t\t\t\tproviderExecuted: anyOptions.providerExecuted,\n\t\t\t\t\tpreliminary: anyOptions.preliminary,\n\t\t\t\t\t...anyOptions.providerMetadata != null ? { callProviderMetadata: anyOptions.providerMetadata } : {}\n\t\t\t\t});\n\t\t\t}\n\t\t\tfunction updateDynamicToolPart(options, existingPart) {\n\t\t\t\tvar _a17, _b2;\n\t\t\t\tconst part = existingPart != null ? existingPart : getCurrentStepParts().find((part2) => part2.type === \"dynamic-tool\" && part2.toolCallId === options.toolCallId);\n\t\t\t\tconst anyOptions = options;\n\t\t\t\tconst anyPart = part;\n\t\t\t\tif (part != null) {\n\t\t\t\t\tpart.state = options.state;\n\t\t\t\t\tanyPart.toolName = options.toolName;\n\t\t\t\t\tanyPart.input = anyOptions.input;\n\t\t\t\t\tanyPart.output = anyOptions.output;\n\t\t\t\t\tanyPart.errorText = anyOptions.errorText;\n\t\t\t\t\tanyPart.rawInput = (_a17 = anyOptions.rawInput) != null ? _a17 : anyPart.rawInput;\n\t\t\t\t\tanyPart.preliminary = anyOptions.preliminary;\n\t\t\t\t\tanyPart.providerExecuted = (_b2 = anyOptions.providerExecuted) != null ? _b2 : part.providerExecuted;\n\t\t\t\t\tif (anyOptions.providerMetadata != null && part.state === \"input-available\") part.callProviderMetadata = anyOptions.providerMetadata;\n\t\t\t\t} else state.message.parts.push({\n\t\t\t\t\ttype: \"dynamic-tool\",\n\t\t\t\t\ttoolName: options.toolName,\n\t\t\t\t\ttoolCallId: options.toolCallId,\n\t\t\t\t\tstate: options.state,\n\t\t\t\t\tinput: anyOptions.input,\n\t\t\t\t\toutput: anyOptions.output,\n\t\t\t\t\terrorText: anyOptions.errorText,\n\t\t\t\t\tpreliminary: anyOptions.preliminary,\n\t\t\t\t\tproviderExecuted: anyOptions.providerExecuted,\n\t\t\t\t\t...anyOptions.providerMetadata != null ? { callProviderMetadata: anyOptions.providerMetadata } : {}\n\t\t\t\t});\n\t\t\t}\n\t\t\tasync function updateMessageMetadata(metadata) {\n\t\t\t\tif (metadata != null) {\n\t\t\t\t\tconst mergedMetadata = state.message.metadata != null ? mergeObjects(state.message.metadata, metadata) : metadata;\n\t\t\t\t\tif (messageMetadataSchema != null) await validateTypes({\n\t\t\t\t\t\tvalue: mergedMetadata,\n\t\t\t\t\t\tschema: messageMetadataSchema\n\t\t\t\t\t});\n\t\t\t\t\tstate.message.metadata = mergedMetadata;\n\t\t\t\t}\n\t\t\t}\n\t\t\tswitch (chunk.type) {\n\t\t\t\tcase \"text-start\": {\n\t\t\t\t\tconst textPart = {\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: \"\",\n\t\t\t\t\t\tproviderMetadata: chunk.providerMetadata,\n\t\t\t\t\t\tstate: \"streaming\"\n\t\t\t\t\t};\n\t\t\t\t\tstate.activeTextParts[chunk.id] = textPart;\n\t\t\t\t\tstate.message.parts.push(textPart);\n\t\t\t\t\twrite();\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"text-delta\": {\n\t\t\t\t\tconst textPart = state.activeTextParts[chunk.id];\n\t\t\t\t\ttextPart.text += chunk.delta;\n\t\t\t\t\ttextPart.providerMetadata = (_a16 = chunk.providerMetadata) != null ? _a16 : textPart.providerMetadata;\n\t\t\t\t\twrite();\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"text-end\": {\n\t\t\t\t\tconst textPart = state.activeTextParts[chunk.id];\n\t\t\t\t\ttextPart.state = \"done\";\n\t\t\t\t\ttextPart.providerMetadata = (_b = chunk.providerMetadata) != null ? _b : textPart.providerMetadata;\n\t\t\t\t\tdelete state.activeTextParts[chunk.id];\n\t\t\t\t\twrite();\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"reasoning-start\": {\n\t\t\t\t\tconst reasoningPart = {\n\t\t\t\t\t\ttype: \"reasoning\",\n\t\t\t\t\t\ttext: \"\",\n\t\t\t\t\t\tproviderMetadata: chunk.providerMetadata,\n\t\t\t\t\t\tstate: \"streaming\"\n\t\t\t\t\t};\n\t\t\t\t\tstate.activeReasoningParts[chunk.id] = reasoningPart;\n\t\t\t\t\tstate.message.parts.push(reasoningPart);\n\t\t\t\t\twrite();\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"reasoning-delta\": {\n\t\t\t\t\tconst reasoningPart = state.activeReasoningParts[chunk.id];\n\t\t\t\t\treasoningPart.text += chunk.delta;\n\t\t\t\t\treasoningPart.providerMetadata = (_c = chunk.providerMetadata) != null ? _c : reasoningPart.providerMetadata;\n\t\t\t\t\twrite();\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"reasoning-end\": {\n\t\t\t\t\tconst reasoningPart = state.activeReasoningParts[chunk.id];\n\t\t\t\t\treasoningPart.providerMetadata = (_d = chunk.providerMetadata) != null ? _d : reasoningPart.providerMetadata;\n\t\t\t\t\treasoningPart.state = \"done\";\n\t\t\t\t\tdelete state.activeReasoningParts[chunk.id];\n\t\t\t\t\twrite();\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"file\":\n\t\t\t\t\tstate.message.parts.push({\n\t\t\t\t\t\ttype: \"file\",\n\t\t\t\t\t\tmediaType: chunk.mediaType,\n\t\t\t\t\t\turl: chunk.url\n\t\t\t\t\t});\n\t\t\t\t\twrite();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"source-url\":\n\t\t\t\t\tstate.message.parts.push({\n\t\t\t\t\t\ttype: \"source-url\",\n\t\t\t\t\t\tsourceId: chunk.sourceId,\n\t\t\t\t\t\turl: chunk.url,\n\t\t\t\t\t\ttitle: chunk.title,\n\t\t\t\t\t\tproviderMetadata: chunk.providerMetadata\n\t\t\t\t\t});\n\t\t\t\t\twrite();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"source-document\":\n\t\t\t\t\tstate.message.parts.push({\n\t\t\t\t\t\ttype: \"source-document\",\n\t\t\t\t\t\tsourceId: chunk.sourceId,\n\t\t\t\t\t\tmediaType: chunk.mediaType,\n\t\t\t\t\t\ttitle: chunk.title,\n\t\t\t\t\t\tfilename: chunk.filename,\n\t\t\t\t\t\tproviderMetadata: chunk.providerMetadata\n\t\t\t\t\t});\n\t\t\t\t\twrite();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"tool-input-start\": {\n\t\t\t\t\tconst toolInvocations = getCurrentStepParts().filter(isToolUIPart);\n\t\t\t\t\tstate.partialToolCalls[chunk.toolCallId] = {\n\t\t\t\t\t\ttext: \"\",\n\t\t\t\t\t\ttoolName: chunk.toolName,\n\t\t\t\t\t\tindex: toolInvocations.length,\n\t\t\t\t\t\tdynamic: chunk.dynamic\n\t\t\t\t\t};\n\t\t\t\t\tif (chunk.dynamic) updateDynamicToolPart({\n\t\t\t\t\t\ttoolCallId: chunk.toolCallId,\n\t\t\t\t\t\ttoolName: chunk.toolName,\n\t\t\t\t\t\tstate: \"input-streaming\",\n\t\t\t\t\t\tinput: void 0,\n\t\t\t\t\t\tproviderExecuted: chunk.providerExecuted\n\t\t\t\t\t});\n\t\t\t\t\telse updateToolPart({\n\t\t\t\t\t\ttoolCallId: chunk.toolCallId,\n\t\t\t\t\t\ttoolName: chunk.toolName,\n\t\t\t\t\t\tstate: \"input-streaming\",\n\t\t\t\t\t\tinput: void 0,\n\t\t\t\t\t\tproviderExecuted: chunk.providerExecuted\n\t\t\t\t\t});\n\t\t\t\t\twrite();\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"tool-input-delta\": {\n\t\t\t\t\tconst partialToolCall = state.partialToolCalls[chunk.toolCallId];\n\t\t\t\t\tpartialToolCall.text += chunk.inputTextDelta;\n\t\t\t\t\tconst { value: partialArgs } = await parsePartialJson(partialToolCall.text);\n\t\t\t\t\tif (partialToolCall.dynamic) updateDynamicToolPart({\n\t\t\t\t\t\ttoolCallId: chunk.toolCallId,\n\t\t\t\t\t\ttoolName: partialToolCall.toolName,\n\t\t\t\t\t\tstate: \"input-streaming\",\n\t\t\t\t\t\tinput: partialArgs\n\t\t\t\t\t});\n\t\t\t\t\telse updateToolPart({\n\t\t\t\t\t\ttoolCallId: chunk.toolCallId,\n\t\t\t\t\t\ttoolName: partialToolCall.toolName,\n\t\t\t\t\t\tstate: \"input-streaming\",\n\t\t\t\t\t\tinput: partialArgs\n\t\t\t\t\t});\n\t\t\t\t\twrite();\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"tool-input-available\":\n\t\t\t\t\tif (chunk.dynamic) updateDynamicToolPart({\n\t\t\t\t\t\ttoolCallId: chunk.toolCallId,\n\t\t\t\t\t\ttoolName: chunk.toolName,\n\t\t\t\t\t\tstate: \"input-available\",\n\t\t\t\t\t\tinput: chunk.input,\n\t\t\t\t\t\tproviderExecuted: chunk.providerExecuted,\n\t\t\t\t\t\tproviderMetadata: chunk.providerMetadata\n\t\t\t\t\t});\n\t\t\t\t\telse updateToolPart({\n\t\t\t\t\t\ttoolCallId: chunk.toolCallId,\n\t\t\t\t\t\ttoolName: chunk.toolName,\n\t\t\t\t\t\tstate: \"input-available\",\n\t\t\t\t\t\tinput: chunk.input,\n\t\t\t\t\t\tproviderExecuted: chunk.providerExecuted,\n\t\t\t\t\t\tproviderMetadata: chunk.providerMetadata\n\t\t\t\t\t});\n\t\t\t\t\twrite();\n\t\t\t\t\tif (onToolCall && !chunk.providerExecuted) await onToolCall({ toolCall: chunk });\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"tool-input-error\":\n\t\t\t\t\tif (chunk.dynamic) updateDynamicToolPart({\n\t\t\t\t\t\ttoolCallId: chunk.toolCallId,\n\t\t\t\t\t\ttoolName: chunk.toolName,\n\t\t\t\t\t\tstate: \"output-error\",\n\t\t\t\t\t\tinput: chunk.input,\n\t\t\t\t\t\terrorText: chunk.errorText,\n\t\t\t\t\t\tproviderExecuted: chunk.providerExecuted,\n\t\t\t\t\t\tproviderMetadata: chunk.providerMetadata\n\t\t\t\t\t});\n\t\t\t\t\telse updateToolPart({\n\t\t\t\t\t\ttoolCallId: chunk.toolCallId,\n\t\t\t\t\t\ttoolName: chunk.toolName,\n\t\t\t\t\t\tstate: \"output-error\",\n\t\t\t\t\t\tinput: void 0,\n\t\t\t\t\t\trawInput: chunk.input,\n\t\t\t\t\t\terrorText: chunk.errorText,\n\t\t\t\t\t\tproviderExecuted: chunk.providerExecuted,\n\t\t\t\t\t\tproviderMetadata: chunk.providerMetadata\n\t\t\t\t\t});\n\t\t\t\t\twrite();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"tool-output-available\":\n\t\t\t\t\tif (chunk.dynamic) {\n\t\t\t\t\t\tconst toolInvocation = getDynamicToolInvocation(chunk.toolCallId);\n\t\t\t\t\t\tupdateDynamicToolPart({\n\t\t\t\t\t\t\ttoolCallId: chunk.toolCallId,\n\t\t\t\t\t\t\ttoolName: toolInvocation.toolName,\n\t\t\t\t\t\t\tstate: \"output-available\",\n\t\t\t\t\t\t\tinput: toolInvocation.input,\n\t\t\t\t\t\t\toutput: chunk.output,\n\t\t\t\t\t\t\tpreliminary: chunk.preliminary\n\t\t\t\t\t\t}, toolInvocation);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst toolInvocation = getToolInvocation(chunk.toolCallId);\n\t\t\t\t\t\tupdateToolPart({\n\t\t\t\t\t\t\ttoolCallId: chunk.toolCallId,\n\t\t\t\t\t\t\ttoolName: getToolName(toolInvocation),\n\t\t\t\t\t\t\tstate: \"output-available\",\n\t\t\t\t\t\t\tinput: toolInvocation.input,\n\t\t\t\t\t\t\toutput: chunk.output,\n\t\t\t\t\t\t\tproviderExecuted: chunk.providerExecuted,\n\t\t\t\t\t\t\tpreliminary: chunk.preliminary\n\t\t\t\t\t\t}, toolInvocation);\n\t\t\t\t\t}\n\t\t\t\t\twrite();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"tool-output-error\":\n\t\t\t\t\tif (chunk.dynamic) {\n\t\t\t\t\t\tconst toolInvocation = getDynamicToolInvocation(chunk.toolCallId);\n\t\t\t\t\t\tupdateDynamicToolPart({\n\t\t\t\t\t\t\ttoolCallId: chunk.toolCallId,\n\t\t\t\t\t\t\ttoolName: toolInvocation.toolName,\n\t\t\t\t\t\t\tstate: \"output-error\",\n\t\t\t\t\t\t\tinput: toolInvocation.input,\n\t\t\t\t\t\t\terrorText: chunk.errorText,\n\t\t\t\t\t\t\tproviderExecuted: chunk.providerExecuted\n\t\t\t\t\t\t}, toolInvocation);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst toolInvocation = getToolInvocation(chunk.toolCallId);\n\t\t\t\t\t\tupdateToolPart({\n\t\t\t\t\t\t\ttoolCallId: chunk.toolCallId,\n\t\t\t\t\t\t\ttoolName: getToolName(toolInvocation),\n\t\t\t\t\t\t\tstate: \"output-error\",\n\t\t\t\t\t\t\tinput: toolInvocation.input,\n\t\t\t\t\t\t\trawInput: toolInvocation.rawInput,\n\t\t\t\t\t\t\terrorText: chunk.errorText,\n\t\t\t\t\t\t\tproviderExecuted: chunk.providerExecuted\n\t\t\t\t\t\t}, toolInvocation);\n\t\t\t\t\t}\n\t\t\t\t\twrite();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"start-step\":\n\t\t\t\t\tstate.message.parts.push({ type: \"step-start\" });\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"finish-step\":\n\t\t\t\t\tstate.activeTextParts = createIdMap();\n\t\t\t\t\tstate.activeReasoningParts = createIdMap();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"start\":\n\t\t\t\t\tif (chunk.messageId != null) state.message.id = chunk.messageId;\n\t\t\t\t\tawait updateMessageMetadata(chunk.messageMetadata);\n\t\t\t\t\tif (chunk.messageId != null || chunk.messageMetadata != null) write();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"finish\":\n\t\t\t\t\tif (chunk.finishReason != null) state.finishReason = chunk.finishReason;\n\t\t\t\t\tawait updateMessageMetadata(chunk.messageMetadata);\n\t\t\t\t\tif (chunk.messageMetadata != null) write();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"message-metadata\":\n\t\t\t\t\tawait updateMessageMetadata(chunk.messageMetadata);\n\t\t\t\t\tif (chunk.messageMetadata != null) write();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"error\":\n\t\t\t\t\tonError?.(new Error(chunk.errorText));\n\t\t\t\t\tbreak;\n\t\t\t\tdefault: if (isDataUIMessageChunk(chunk)) {\n\t\t\t\t\tif ((dataPartSchemas == null ? void 0 : dataPartSchemas[chunk.type]) != null) await validateTypes({\n\t\t\t\t\t\tvalue: chunk.data,\n\t\t\t\t\t\tschema: dataPartSchemas[chunk.type]\n\t\t\t\t\t});\n\t\t\t\t\tconst dataChunk = chunk;\n\t\t\t\t\tif (dataChunk.transient) {\n\t\t\t\t\t\tonData?.(dataChunk);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst existingUIPart = dataChunk.id != null ? state.message.parts.find((chunkArg) => dataChunk.type === chunkArg.type && dataChunk.id === chunkArg.id) : void 0;\n\t\t\t\t\tif (existingUIPart != null) existingUIPart.data = dataChunk.data;\n\t\t\t\t\telse state.message.parts.push(dataChunk);\n\t\t\t\t\tonData?.(dataChunk);\n\t\t\t\t\twrite();\n\t\t\t\t}\n\t\t\t}\n\t\t\tcontroller.enqueue(chunk);\n\t\t});\n\t} }));\n}\nfunction handleUIMessageStreamFinish({ messageId, originalMessages = [], onFinish, onError, stream }) {\n\tlet lastMessage = originalMessages == null ? void 0 : originalMessages[originalMessages.length - 1];\n\tif ((lastMessage == null ? void 0 : lastMessage.role) !== \"assistant\") lastMessage = void 0;\n\telse messageId = lastMessage.id;\n\tlet isAborted = false;\n\tconst idInjectedStream = stream.pipeThrough(new TransformStream({ transform(chunk, controller) {\n\t\tif (chunk.type === \"start\") {\n\t\t\tconst startChunk = chunk;\n\t\t\tif (startChunk.messageId == null && messageId != null) startChunk.messageId = messageId;\n\t\t}\n\t\tif (chunk.type === \"abort\") isAborted = true;\n\t\tcontroller.enqueue(chunk);\n\t} }));\n\tif (onFinish == null) return idInjectedStream;\n\tconst state = createStreamingUIMessageState({\n\t\tlastMessage: lastMessage ? structuredClone(lastMessage) : void 0,\n\t\tmessageId: messageId != null ? messageId : \"\"\n\t});\n\tconst runUpdateMessageJob = async (job) => {\n\t\tawait job({\n\t\t\tstate,\n\t\t\twrite: () => {}\n\t\t});\n\t};\n\tlet finishCalled = false;\n\tconst callOnFinish = async () => {\n\t\tif (finishCalled || !onFinish) return;\n\t\tfinishCalled = true;\n\t\tconst isContinuation = state.message.id === (lastMessage == null ? void 0 : lastMessage.id);\n\t\tawait onFinish({\n\t\t\tisAborted,\n\t\t\tisContinuation,\n\t\t\tresponseMessage: state.message,\n\t\t\tmessages: [...isContinuation ? originalMessages.slice(0, -1) : originalMessages, state.message],\n\t\t\tfinishReason: state.finishReason\n\t\t});\n\t};\n\treturn processUIMessageStream({\n\t\tstream: idInjectedStream,\n\t\trunUpdateMessageJob,\n\t\tonError\n\t}).pipeThrough(new TransformStream({\n\t\ttransform(chunk, controller) {\n\t\t\tcontroller.enqueue(chunk);\n\t\t},\n\t\tasync cancel() {\n\t\t\tawait callOnFinish();\n\t\t},\n\t\tasync flush() {\n\t\t\tawait callOnFinish();\n\t\t}\n\t}));\n}\nfunction pipeUIMessageStreamToResponse({ response, status, statusText, headers, stream, consumeSseStream }) {\n\tlet sseStream = stream.pipeThrough(new JsonToSseTransformStream());\n\tif (consumeSseStream) {\n\t\tconst [stream1, stream2] = sseStream.tee();\n\t\tsseStream = stream1;\n\t\tconsumeSseStream({ stream: stream2 });\n\t}\n\treturn writeToServerResponse({\n\t\tresponse,\n\t\tstatus,\n\t\tstatusText,\n\t\theaders: Object.fromEntries(prepareHeaders(headers, UI_MESSAGE_STREAM_HEADERS).entries()),\n\t\tstream: sseStream.pipeThrough(new TextEncoderStream())\n\t});\n}\nfunction createAsyncIterableStream(source) {\n\tconst stream = source.pipeThrough(new TransformStream());\n\tstream[Symbol.asyncIterator] = function() {\n\t\tconst reader = this.getReader();\n\t\tlet finished = false;\n\t\tasync function cleanup(cancelStream) {\n\t\t\tvar _a16;\n\t\t\tfinished = true;\n\t\t\ttry {\n\t\t\t\tif (cancelStream) await ((_a16 = reader.cancel) == null ? void 0 : _a16.call(reader));\n\t\t\t} finally {\n\t\t\t\ttry {\n\t\t\t\t\treader.releaseLock();\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\t/**\n\t\t\t* Reads the next chunk from the stream.\n\t\t\t* @returns A promise resolving to the next IteratorResult.\n\t\t\t*/\n\t\t\tasync next() {\n\t\t\t\tif (finished) return {\n\t\t\t\t\tdone: true,\n\t\t\t\t\tvalue: void 0\n\t\t\t\t};\n\t\t\t\tconst { done, value } = await reader.read();\n\t\t\t\tif (done) {\n\t\t\t\t\tawait cleanup(true);\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdone: true,\n\t\t\t\t\t\tvalue: void 0\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tdone: false,\n\t\t\t\t\tvalue\n\t\t\t\t};\n\t\t\t},\n\t\t\t/**\n\t\t\t* Called on early exit (e.g., break from for-await).\n\t\t\t* Ensures the stream is cancelled and resources are released.\n\t\t\t* @returns A promise resolving to a completed IteratorResult.\n\t\t\t*/\n\t\t\tasync return() {\n\t\t\t\tawait cleanup(true);\n\t\t\t\treturn {\n\t\t\t\t\tdone: true,\n\t\t\t\t\tvalue: void 0\n\t\t\t\t};\n\t\t\t},\n\t\t\t/**\n\t\t\t* Called on early exit with error.\n\t\t\t* Ensures the stream is cancelled and resources are released, then rethrows the error.\n\t\t\t* @param err The error to throw.\n\t\t\t* @returns A promise that rejects with the provided error.\n\t\t\t*/\n\t\t\tasync throw(err) {\n\t\t\t\tawait cleanup(true);\n\t\t\t\tthrow err;\n\t\t\t}\n\t\t};\n\t};\n\treturn stream;\n}\nasync function consumeStream({ stream, onError }) {\n\tconst reader = stream.getReader();\n\ttry {\n\t\twhile (true) {\n\t\t\tconst { done } = await reader.read();\n\t\t\tif (done) break;\n\t\t}\n\t} catch (error) {\n\t\tonError?.(error);\n\t} finally {\n\t\treader.releaseLock();\n\t}\n}\nfunction createResolvablePromise() {\n\tlet resolve2;\n\tlet reject;\n\treturn {\n\t\tpromise: new Promise((res, rej) => {\n\t\t\tresolve2 = res;\n\t\t\treject = rej;\n\t\t}),\n\t\tresolve: resolve2,\n\t\treject\n\t};\n}\nfunction createStitchableStream() {\n\tlet innerStreamReaders = [];\n\tlet controller = null;\n\tlet isClosed = false;\n\tlet waitForNewStream = createResolvablePromise();\n\tconst terminate = () => {\n\t\tisClosed = true;\n\t\twaitForNewStream.resolve();\n\t\tinnerStreamReaders.forEach((reader) => reader.cancel());\n\t\tinnerStreamReaders = [];\n\t\tcontroller?.close();\n\t};\n\tconst processPull = async () => {\n\t\tif (isClosed && innerStreamReaders.length === 0) {\n\t\t\tcontroller?.close();\n\t\t\treturn;\n\t\t}\n\t\tif (innerStreamReaders.length === 0) {\n\t\t\twaitForNewStream = createResolvablePromise();\n\t\t\tawait waitForNewStream.promise;\n\t\t\treturn processPull();\n\t\t}\n\t\ttry {\n\t\t\tconst { value, done } = await innerStreamReaders[0].read();\n\t\t\tif (done) {\n\t\t\t\tinnerStreamReaders.shift();\n\t\t\t\tif (innerStreamReaders.length > 0) await processPull();\n\t\t\t\telse if (isClosed) controller?.close();\n\t\t\t} else controller?.enqueue(value);\n\t\t} catch (error) {\n\t\t\tcontroller?.error(error);\n\t\t\tinnerStreamReaders.shift();\n\t\t\tterminate();\n\t\t}\n\t};\n\treturn {\n\t\tstream: new ReadableStream({\n\t\t\tstart(controllerParam) {\n\t\t\t\tcontroller = controllerParam;\n\t\t\t},\n\t\t\tpull: processPull,\n\t\t\tasync cancel() {\n\t\t\t\tfor (const reader of innerStreamReaders) await reader.cancel();\n\t\t\t\tinnerStreamReaders = [];\n\t\t\t\tisClosed = true;\n\t\t\t}\n\t\t}),\n\t\taddStream: (innerStream) => {\n\t\t\tif (isClosed) throw new Error(\"Cannot add inner stream: outer stream is closed\");\n\t\t\tinnerStreamReaders.push(innerStream.getReader());\n\t\t\twaitForNewStream.resolve();\n\t\t},\n\t\t/**\n\t\t* Gracefully close the outer stream. This will let the inner streams\n\t\t* finish processing and then close the outer stream.\n\t\t*/\n\t\tclose: () => {\n\t\t\tisClosed = true;\n\t\t\twaitForNewStream.resolve();\n\t\t\tif (innerStreamReaders.length === 0) controller?.close();\n\t\t},\n\t\t/**\n\t\t* Immediately close the outer stream. This will cancel all inner streams\n\t\t* and close the outer stream.\n\t\t*/\n\t\tterminate\n\t};\n}\nfunction now() {\n\tvar _a16, _b;\n\treturn (_b = (_a16 = globalThis == null ? void 0 : globalThis.performance) == null ? void 0 : _a16.now()) != null ? _b : Date.now();\n}\nfunction runToolsTransformation({ tools, generatorStream, tracer, telemetry, system, messages, abortSignal, repairToolCall, experimental_context }) {\n\tlet toolResultsStreamController = null;\n\tlet toolResultsStreamClosed = false;\n\tconst toolResultsStream = new ReadableStream({\n\t\tstart(controller) {\n\t\t\ttoolResultsStreamController = controller;\n\t\t},\n\t\tcancel() {\n\t\t\ttoolResultsStreamClosed = true;\n\t\t}\n\t});\n\tfunction enqueueToolResult(chunk) {\n\t\tif (toolResultsStreamClosed) return;\n\t\ttry {\n\t\t\ttoolResultsStreamController.enqueue(chunk);\n\t\t} catch (e) {\n\t\t\ttoolResultsStreamClosed = true;\n\t\t}\n\t}\n\tfunction closeToolResultsStream() {\n\t\tif (toolResultsStreamClosed) return;\n\t\ttoolResultsStreamClosed = true;\n\t\ttry {\n\t\t\ttoolResultsStreamController.close();\n\t\t} catch (e) {}\n\t}\n\tconst outstandingToolResults = /* @__PURE__ */ new Set();\n\tconst toolInputs = /* @__PURE__ */ new Map();\n\tlet canClose = false;\n\tlet finishChunk = void 0;\n\tfunction attemptClose() {\n\t\tif (canClose && outstandingToolResults.size === 0) {\n\t\t\tif (finishChunk != null) enqueueToolResult(finishChunk);\n\t\t\tcloseToolResultsStream();\n\t\t}\n\t}\n\tconst forwardStream = new TransformStream({\n\t\tasync transform(chunk, controller) {\n\t\t\tconst chunkType = chunk.type;\n\t\t\tswitch (chunkType) {\n\t\t\t\tcase \"stream-start\":\n\t\t\t\tcase \"text-start\":\n\t\t\t\tcase \"text-delta\":\n\t\t\t\tcase \"text-end\":\n\t\t\t\tcase \"reasoning-start\":\n\t\t\t\tcase \"reasoning-delta\":\n\t\t\t\tcase \"reasoning-end\":\n\t\t\t\tcase \"tool-input-start\":\n\t\t\t\tcase \"tool-input-delta\":\n\t\t\t\tcase \"tool-input-end\":\n\t\t\t\tcase \"source\":\n\t\t\t\tcase \"response-metadata\":\n\t\t\t\tcase \"error\":\n\t\t\t\tcase \"raw\":\n\t\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"file\":\n\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\ttype: \"file\",\n\t\t\t\t\t\tfile: new DefaultGeneratedFileWithType({\n\t\t\t\t\t\t\tdata: chunk.data,\n\t\t\t\t\t\t\tmediaType: chunk.mediaType\n\t\t\t\t\t\t})\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"finish\":\n\t\t\t\t\tfinishChunk = {\n\t\t\t\t\t\ttype: \"finish\",\n\t\t\t\t\t\tfinishReason: chunk.finishReason,\n\t\t\t\t\t\tusage: chunk.usage,\n\t\t\t\t\t\tproviderMetadata: chunk.providerMetadata\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"tool-call\":\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst toolCall = await parseToolCall({\n\t\t\t\t\t\t\ttoolCall: chunk,\n\t\t\t\t\t\t\ttools,\n\t\t\t\t\t\t\trepairToolCall,\n\t\t\t\t\t\t\tsystem,\n\t\t\t\t\t\t\tmessages\n\t\t\t\t\t\t});\n\t\t\t\t\t\tcontroller.enqueue(toolCall);\n\t\t\t\t\t\tif (toolCall.invalid) {\n\t\t\t\t\t\t\tenqueueToolResult({\n\t\t\t\t\t\t\t\ttype: \"tool-error\",\n\t\t\t\t\t\t\t\ttoolCallId: toolCall.toolCallId,\n\t\t\t\t\t\t\t\ttoolName: toolCall.toolName,\n\t\t\t\t\t\t\t\tinput: toolCall.input,\n\t\t\t\t\t\t\t\terror: getErrorMessage$1(toolCall.error),\n\t\t\t\t\t\t\t\tdynamic: true\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst tool2 = tools[toolCall.toolName];\n\t\t\t\t\t\ttoolInputs.set(toolCall.toolCallId, toolCall.input);\n\t\t\t\t\t\tif (tool2.onInputAvailable != null) await tool2.onInputAvailable({\n\t\t\t\t\t\t\tinput: toolCall.input,\n\t\t\t\t\t\t\ttoolCallId: toolCall.toolCallId,\n\t\t\t\t\t\t\tmessages,\n\t\t\t\t\t\t\tabortSignal,\n\t\t\t\t\t\t\texperimental_context\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (tool2.execute != null && toolCall.providerExecuted !== true) {\n\t\t\t\t\t\t\tconst toolExecutionId = generateId();\n\t\t\t\t\t\t\toutstandingToolResults.add(toolExecutionId);\n\t\t\t\t\t\t\trecordSpan({\n\t\t\t\t\t\t\t\tname: \"ai.toolCall\",\n\t\t\t\t\t\t\t\tattributes: selectTelemetryAttributes({\n\t\t\t\t\t\t\t\t\ttelemetry,\n\t\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\t\t...assembleOperationName({\n\t\t\t\t\t\t\t\t\t\t\toperationId: \"ai.toolCall\",\n\t\t\t\t\t\t\t\t\t\t\ttelemetry\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t\"ai.toolCall.name\": toolCall.toolName,\n\t\t\t\t\t\t\t\t\t\t\"ai.toolCall.id\": toolCall.toolCallId,\n\t\t\t\t\t\t\t\t\t\t\"ai.toolCall.args\": { output: () => JSON.stringify(toolCall.input) }\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\ttracer,\n\t\t\t\t\t\t\t\tfn: async (span) => {\n\t\t\t\t\t\t\t\t\tlet output;\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tconst stream = executeTool({\n\t\t\t\t\t\t\t\t\t\t\texecute: tool2.execute.bind(tool2),\n\t\t\t\t\t\t\t\t\t\t\tinput: toolCall.input,\n\t\t\t\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\t\t\t\ttoolCallId: toolCall.toolCallId,\n\t\t\t\t\t\t\t\t\t\t\t\tmessages,\n\t\t\t\t\t\t\t\t\t\t\t\tabortSignal,\n\t\t\t\t\t\t\t\t\t\t\t\texperimental_context\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tfor await (const part of stream) {\n\t\t\t\t\t\t\t\t\t\t\tenqueueToolResult({\n\t\t\t\t\t\t\t\t\t\t\t\t...toolCall,\n\t\t\t\t\t\t\t\t\t\t\t\ttype: \"tool-result\",\n\t\t\t\t\t\t\t\t\t\t\t\toutput: part.output,\n\t\t\t\t\t\t\t\t\t\t\t\t...part.type === \"preliminary\" && { preliminary: true }\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\tif (part.type === \"final\") output = part.output;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\t\t\trecordErrorOnSpan(span, error);\n\t\t\t\t\t\t\t\t\t\tenqueueToolResult({\n\t\t\t\t\t\t\t\t\t\t\t...toolCall,\n\t\t\t\t\t\t\t\t\t\t\ttype: \"tool-error\",\n\t\t\t\t\t\t\t\t\t\t\terror\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\toutstandingToolResults.delete(toolExecutionId);\n\t\t\t\t\t\t\t\t\t\tattemptClose();\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\toutstandingToolResults.delete(toolExecutionId);\n\t\t\t\t\t\t\t\t\tattemptClose();\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\tspan.setAttributes(selectTelemetryAttributes({\n\t\t\t\t\t\t\t\t\t\t\ttelemetry,\n\t\t\t\t\t\t\t\t\t\t\tattributes: { \"ai.toolCall.result\": { output: () => JSON.stringify(output) } }\n\t\t\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t\t\t} catch (ignored) {}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tenqueueToolResult({\n\t\t\t\t\t\t\ttype: \"error\",\n\t\t\t\t\t\t\terror\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"tool-result\": {\n\t\t\t\t\tconst toolName = chunk.toolName;\n\t\t\t\t\tif (chunk.isError) enqueueToolResult({\n\t\t\t\t\t\ttype: \"tool-error\",\n\t\t\t\t\t\ttoolCallId: chunk.toolCallId,\n\t\t\t\t\t\ttoolName,\n\t\t\t\t\t\tinput: toolInputs.get(chunk.toolCallId),\n\t\t\t\t\t\tproviderExecuted: chunk.providerExecuted,\n\t\t\t\t\t\terror: chunk.result\n\t\t\t\t\t});\n\t\t\t\t\telse controller.enqueue({\n\t\t\t\t\t\ttype: \"tool-result\",\n\t\t\t\t\t\ttoolCallId: chunk.toolCallId,\n\t\t\t\t\t\ttoolName,\n\t\t\t\t\t\tinput: toolInputs.get(chunk.toolCallId),\n\t\t\t\t\t\toutput: chunk.result,\n\t\t\t\t\t\tproviderExecuted: chunk.providerExecuted\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tdefault: throw new Error(`Unhandled chunk type: ${chunkType}`);\n\t\t\t}\n\t\t},\n\t\tflush() {\n\t\t\tcanClose = true;\n\t\t\tattemptClose();\n\t\t}\n\t});\n\treturn new ReadableStream({ async start(controller) {\n\t\treturn Promise.all([generatorStream.pipeThrough(forwardStream).pipeTo(new WritableStream({\n\t\t\twrite(chunk) {\n\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t},\n\t\t\tclose() {}\n\t\t})), toolResultsStream.pipeTo(new WritableStream({\n\t\t\twrite(chunk) {\n\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t},\n\t\t\tclose() {\n\t\t\t\tcontroller.close();\n\t\t\t}\n\t\t}))]);\n\t} });\n}\nvar originalGenerateId2 = createIdGenerator({\n\tprefix: \"aitxt\",\n\tsize: 24\n});\nfunction streamText$1({ model, tools, toolChoice, system, prompt, messages, allowSystemInMessages, maxRetries, abortSignal, headers, stopWhen = stepCountIs(1), experimental_output: output, experimental_telemetry: telemetry, prepareStep, providerOptions, experimental_activeTools, activeTools = experimental_activeTools, experimental_repairToolCall: repairToolCall, experimental_transform: transform, experimental_download: download2, includeRawChunks = false, onChunk, onError = ({ error }) => {\n\tconsole.error(error);\n}, onFinish, onAbort, onStepFinish, experimental_context, _internal: { now: now2 = now, generateId: generateId3 = originalGenerateId2, currentDate = () => /* @__PURE__ */ new Date() } = {}, ...settings }) {\n\treturn new DefaultStreamTextResult({\n\t\tmodel: resolveLanguageModel(model),\n\t\ttelemetry,\n\t\theaders,\n\t\tsettings,\n\t\tmaxRetries,\n\t\tabortSignal,\n\t\tsystem,\n\t\tprompt,\n\t\tmessages,\n\t\tallowSystemInMessages,\n\t\ttools,\n\t\ttoolChoice,\n\t\ttransforms: asArray(transform),\n\t\tactiveTools,\n\t\trepairToolCall,\n\t\tstopConditions: asArray(stopWhen),\n\t\toutput,\n\t\tproviderOptions,\n\t\tprepareStep,\n\t\tincludeRawChunks,\n\t\tonChunk,\n\t\tonError,\n\t\tonFinish,\n\t\tonAbort,\n\t\tonStepFinish,\n\t\tnow: now2,\n\t\tcurrentDate,\n\t\tgenerateId: generateId3,\n\t\texperimental_context,\n\t\tdownload: download2\n\t});\n}\nfunction createOutputTransformStream(output) {\n\tif (!output) return new TransformStream({ transform(chunk, controller) {\n\t\tcontroller.enqueue({\n\t\t\tpart: chunk,\n\t\t\tpartialOutput: void 0\n\t\t});\n\t} });\n\tlet firstTextChunkId = void 0;\n\tlet text2 = \"\";\n\tlet textChunk = \"\";\n\tlet lastPublishedJson = \"\";\n\tfunction publishTextChunk({ controller, partialOutput = void 0 }) {\n\t\tcontroller.enqueue({\n\t\t\tpart: {\n\t\t\t\ttype: \"text-delta\",\n\t\t\t\tid: firstTextChunkId,\n\t\t\t\ttext: textChunk\n\t\t\t},\n\t\t\tpartialOutput\n\t\t});\n\t\ttextChunk = \"\";\n\t}\n\treturn new TransformStream({ async transform(chunk, controller) {\n\t\tif (chunk.type === \"finish-step\" && textChunk.length > 0) publishTextChunk({ controller });\n\t\tif (chunk.type !== \"text-delta\" && chunk.type !== \"text-start\" && chunk.type !== \"text-end\") {\n\t\t\tcontroller.enqueue({\n\t\t\t\tpart: chunk,\n\t\t\t\tpartialOutput: void 0\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tif (firstTextChunkId == null) firstTextChunkId = chunk.id;\n\t\telse if (chunk.id !== firstTextChunkId) {\n\t\t\tcontroller.enqueue({\n\t\t\t\tpart: chunk,\n\t\t\t\tpartialOutput: void 0\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tif (chunk.type === \"text-start\") {\n\t\t\tcontroller.enqueue({\n\t\t\t\tpart: chunk,\n\t\t\t\tpartialOutput: void 0\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tif (chunk.type === \"text-end\") {\n\t\t\tif (textChunk.length > 0) publishTextChunk({ controller });\n\t\t\tcontroller.enqueue({\n\t\t\t\tpart: chunk,\n\t\t\t\tpartialOutput: void 0\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\ttext2 += chunk.text;\n\t\ttextChunk += chunk.text;\n\t\tif (chunk.text.length === 0 && chunk.providerMetadata != null) {\n\t\t\tcontroller.enqueue({\n\t\t\t\tpart: chunk,\n\t\t\t\tpartialOutput: void 0\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tconst result = await output.parsePartial({ text: text2 });\n\t\tif (result != null) {\n\t\t\tconst currentJson = JSON.stringify(result.partial);\n\t\t\tif (currentJson !== lastPublishedJson) {\n\t\t\t\tpublishTextChunk({\n\t\t\t\t\tcontroller,\n\t\t\t\t\tpartialOutput: result.partial\n\t\t\t\t});\n\t\t\t\tlastPublishedJson = currentJson;\n\t\t\t}\n\t\t}\n\t} });\n}\nvar DefaultStreamTextResult = class {\n\tconstructor({ model, telemetry, headers, settings, maxRetries: maxRetriesArg, abortSignal, system, prompt, messages, allowSystemInMessages, tools, toolChoice, transforms, activeTools, repairToolCall, stopConditions, output, providerOptions, prepareStep, includeRawChunks, now: now2, currentDate, generateId: generateId3, onChunk, onError, onFinish, onAbort, onStepFinish, experimental_context, download: download2 }) {\n\t\tthis._totalUsage = new DelayedPromise();\n\t\tthis._finishReason = new DelayedPromise();\n\t\tthis._steps = new DelayedPromise();\n\t\tthis.output = output;\n\t\tthis.includeRawChunks = includeRawChunks;\n\t\tthis.tools = tools;\n\t\tlet stepFinish;\n\t\tlet recordedContent = [];\n\t\tconst recordedResponseMessages = [];\n\t\tlet recordedFinishReason = void 0;\n\t\tlet recordedTotalUsage = void 0;\n\t\tlet recordedRequest = {};\n\t\tlet recordedWarnings = [];\n\t\tconst recordedSteps = [];\n\t\tlet currentStepToolSet = tools;\n\t\tlet rootSpan;\n\t\tlet activeTextContent = createIdMap();\n\t\tlet activeReasoningContent = createIdMap();\n\t\tconst eventProcessor = new TransformStream({\n\t\t\tasync transform(chunk, controller) {\n\t\t\t\tvar _a16, _b, _c, _d;\n\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t\tconst { part } = chunk;\n\t\t\t\tif (part.type === \"text-delta\" || part.type === \"reasoning-delta\" || part.type === \"source\" || part.type === \"tool-call\" || part.type === \"tool-result\" || part.type === \"tool-input-start\" || part.type === \"tool-input-delta\" || part.type === \"raw\") await (onChunk == null ? void 0 : onChunk({ chunk: part }));\n\t\t\t\tif (part.type === \"error\") await onError({ error: wrapGatewayError(part.error) });\n\t\t\t\tif (part.type === \"text-start\") {\n\t\t\t\t\tactiveTextContent[part.id] = {\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: \"\",\n\t\t\t\t\t\tproviderMetadata: part.providerMetadata\n\t\t\t\t\t};\n\t\t\t\t\trecordedContent.push(activeTextContent[part.id]);\n\t\t\t\t}\n\t\t\t\tif (part.type === \"text-delta\") {\n\t\t\t\t\tconst activeText = activeTextContent[part.id];\n\t\t\t\t\tif (activeText == null) {\n\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\tpart: {\n\t\t\t\t\t\t\t\ttype: \"error\",\n\t\t\t\t\t\t\t\terror: `text part ${part.id} not found`\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tpartialOutput: void 0\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tactiveText.text += part.text;\n\t\t\t\t\tactiveText.providerMetadata = (_a16 = part.providerMetadata) != null ? _a16 : activeText.providerMetadata;\n\t\t\t\t}\n\t\t\t\tif (part.type === \"text-end\") {\n\t\t\t\t\tconst activeText = activeTextContent[part.id];\n\t\t\t\t\tif (activeText == null) {\n\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\tpart: {\n\t\t\t\t\t\t\t\ttype: \"error\",\n\t\t\t\t\t\t\t\terror: `text part ${part.id} not found`\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tpartialOutput: void 0\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tactiveText.providerMetadata = (_b = part.providerMetadata) != null ? _b : activeText.providerMetadata;\n\t\t\t\t\tdelete activeTextContent[part.id];\n\t\t\t\t}\n\t\t\t\tif (part.type === \"reasoning-start\") {\n\t\t\t\t\tactiveReasoningContent[part.id] = {\n\t\t\t\t\t\ttype: \"reasoning\",\n\t\t\t\t\t\ttext: \"\",\n\t\t\t\t\t\tproviderMetadata: part.providerMetadata\n\t\t\t\t\t};\n\t\t\t\t\trecordedContent.push(activeReasoningContent[part.id]);\n\t\t\t\t}\n\t\t\t\tif (part.type === \"reasoning-delta\") {\n\t\t\t\t\tconst activeReasoning = activeReasoningContent[part.id];\n\t\t\t\t\tif (activeReasoning == null) {\n\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\tpart: {\n\t\t\t\t\t\t\t\ttype: \"error\",\n\t\t\t\t\t\t\t\terror: `reasoning part ${part.id} not found`\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tpartialOutput: void 0\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tactiveReasoning.text += part.text;\n\t\t\t\t\tactiveReasoning.providerMetadata = (_c = part.providerMetadata) != null ? _c : activeReasoning.providerMetadata;\n\t\t\t\t}\n\t\t\t\tif (part.type === \"reasoning-end\") {\n\t\t\t\t\tconst activeReasoning = activeReasoningContent[part.id];\n\t\t\t\t\tif (activeReasoning == null) {\n\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\tpart: {\n\t\t\t\t\t\t\t\ttype: \"error\",\n\t\t\t\t\t\t\t\terror: `reasoning part ${part.id} not found`\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tpartialOutput: void 0\n\t\t\t\t\t\t});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tactiveReasoning.providerMetadata = (_d = part.providerMetadata) != null ? _d : activeReasoning.providerMetadata;\n\t\t\t\t\tdelete activeReasoningContent[part.id];\n\t\t\t\t}\n\t\t\t\tif (part.type === \"file\") recordedContent.push({\n\t\t\t\t\ttype: \"file\",\n\t\t\t\t\tfile: part.file\n\t\t\t\t});\n\t\t\t\tif (part.type === \"source\") recordedContent.push(part);\n\t\t\t\tif (part.type === \"tool-call\") recordedContent.push(part);\n\t\t\t\tif (part.type === \"tool-result\" && !part.preliminary) recordedContent.push(part);\n\t\t\t\tif (part.type === \"tool-error\") recordedContent.push(part);\n\t\t\t\tif (part.type === \"start-step\") {\n\t\t\t\t\trecordedContent = [];\n\t\t\t\t\tactiveReasoningContent = createIdMap();\n\t\t\t\t\tactiveTextContent = createIdMap();\n\t\t\t\t\trecordedRequest = part.request;\n\t\t\t\t\trecordedWarnings = part.warnings;\n\t\t\t\t}\n\t\t\t\tif (part.type === \"finish-step\") {\n\t\t\t\t\tconst stepMessages = toResponseMessages({\n\t\t\t\t\t\tcontent: recordedContent,\n\t\t\t\t\t\ttools: currentStepToolSet\n\t\t\t\t\t});\n\t\t\t\t\tconst currentStepResult = new DefaultStepResult({\n\t\t\t\t\t\tcontent: recordedContent,\n\t\t\t\t\t\tfinishReason: part.finishReason,\n\t\t\t\t\t\tusage: part.usage,\n\t\t\t\t\t\twarnings: recordedWarnings,\n\t\t\t\t\t\trequest: recordedRequest,\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\t...part.response,\n\t\t\t\t\t\t\tmessages: [...recordedResponseMessages, ...stepMessages]\n\t\t\t\t\t\t},\n\t\t\t\t\t\tproviderMetadata: part.providerMetadata\n\t\t\t\t\t});\n\t\t\t\t\tawait (onStepFinish == null ? void 0 : onStepFinish(currentStepResult));\n\t\t\t\t\tlogWarnings(recordedWarnings);\n\t\t\t\t\trecordedSteps.push(currentStepResult);\n\t\t\t\t\trecordedContent = [];\n\t\t\t\t\tactiveReasoningContent = createIdMap();\n\t\t\t\t\tactiveTextContent = createIdMap();\n\t\t\t\t\trecordedResponseMessages.push(...stepMessages);\n\t\t\t\t\tstepFinish.resolve();\n\t\t\t\t}\n\t\t\t\tif (part.type === \"finish\") {\n\t\t\t\t\trecordedTotalUsage = part.totalUsage;\n\t\t\t\t\trecordedFinishReason = part.finishReason;\n\t\t\t\t}\n\t\t\t},\n\t\t\tasync flush(controller) {\n\t\t\t\ttry {\n\t\t\t\t\tif (recordedSteps.length === 0) {\n\t\t\t\t\t\tconst error = new NoOutputGeneratedError({ message: \"No output generated. Check the stream for errors.\" });\n\t\t\t\t\t\tself._finishReason.reject(error);\n\t\t\t\t\t\tself._totalUsage.reject(error);\n\t\t\t\t\t\tself._steps.reject(error);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tconst finishReason = recordedFinishReason != null ? recordedFinishReason : \"unknown\";\n\t\t\t\t\tconst totalUsage = recordedTotalUsage != null ? recordedTotalUsage : {\n\t\t\t\t\t\tinputTokens: void 0,\n\t\t\t\t\t\toutputTokens: void 0,\n\t\t\t\t\t\ttotalTokens: void 0\n\t\t\t\t\t};\n\t\t\t\t\tself._finishReason.resolve(finishReason);\n\t\t\t\t\tself._totalUsage.resolve(totalUsage);\n\t\t\t\t\tself._steps.resolve(recordedSteps);\n\t\t\t\t\tconst finalStep = recordedSteps[recordedSteps.length - 1];\n\t\t\t\t\tawait (onFinish == null ? void 0 : onFinish({\n\t\t\t\t\t\tfinishReason,\n\t\t\t\t\t\ttotalUsage,\n\t\t\t\t\t\tusage: finalStep.usage,\n\t\t\t\t\t\tcontent: finalStep.content,\n\t\t\t\t\t\ttext: finalStep.text,\n\t\t\t\t\t\treasoningText: finalStep.reasoningText,\n\t\t\t\t\t\treasoning: finalStep.reasoning,\n\t\t\t\t\t\tfiles: finalStep.files,\n\t\t\t\t\t\tsources: finalStep.sources,\n\t\t\t\t\t\ttoolCalls: finalStep.toolCalls,\n\t\t\t\t\t\tstaticToolCalls: finalStep.staticToolCalls,\n\t\t\t\t\t\tdynamicToolCalls: finalStep.dynamicToolCalls,\n\t\t\t\t\t\ttoolResults: finalStep.toolResults,\n\t\t\t\t\t\tstaticToolResults: finalStep.staticToolResults,\n\t\t\t\t\t\tdynamicToolResults: finalStep.dynamicToolResults,\n\t\t\t\t\t\trequest: finalStep.request,\n\t\t\t\t\t\tresponse: finalStep.response,\n\t\t\t\t\t\twarnings: finalStep.warnings,\n\t\t\t\t\t\tproviderMetadata: finalStep.providerMetadata,\n\t\t\t\t\t\tsteps: recordedSteps\n\t\t\t\t\t}));\n\t\t\t\t\trootSpan.setAttributes(selectTelemetryAttributes({\n\t\t\t\t\t\ttelemetry,\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\"ai.response.finishReason\": finishReason,\n\t\t\t\t\t\t\t\"ai.response.text\": { output: () => finalStep.text },\n\t\t\t\t\t\t\t\"ai.response.toolCalls\": { output: () => {\n\t\t\t\t\t\t\t\tvar _a16;\n\t\t\t\t\t\t\t\treturn ((_a16 = finalStep.toolCalls) == null ? void 0 : _a16.length) ? JSON.stringify(finalStep.toolCalls) : void 0;\n\t\t\t\t\t\t\t} },\n\t\t\t\t\t\t\t\"ai.response.providerMetadata\": JSON.stringify(finalStep.providerMetadata),\n\t\t\t\t\t\t\t\"ai.usage.inputTokens\": totalUsage.inputTokens,\n\t\t\t\t\t\t\t\"ai.usage.outputTokens\": totalUsage.outputTokens,\n\t\t\t\t\t\t\t\"ai.usage.totalTokens\": totalUsage.totalTokens,\n\t\t\t\t\t\t\t\"ai.usage.reasoningTokens\": totalUsage.reasoningTokens,\n\t\t\t\t\t\t\t\"ai.usage.cachedInputTokens\": totalUsage.cachedInputTokens\n\t\t\t\t\t\t}\n\t\t\t\t\t}));\n\t\t\t\t} catch (error) {\n\t\t\t\t\tcontroller.error(error);\n\t\t\t\t} finally {\n\t\t\t\t\trootSpan.end();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tconst stitchableStream = createStitchableStream();\n\t\tthis.addStream = stitchableStream.addStream;\n\t\tthis.closeStream = stitchableStream.close;\n\t\tconst reader = stitchableStream.stream.getReader();\n\t\tlet stream = new ReadableStream({\n\t\t\tasync start(controller) {\n\t\t\t\tcontroller.enqueue({ type: \"start\" });\n\t\t\t},\n\t\t\tasync pull(controller) {\n\t\t\t\tfunction abort() {\n\t\t\t\t\tonAbort?.({ steps: recordedSteps });\n\t\t\t\t\tcontroller.enqueue({ type: \"abort\" });\n\t\t\t\t\tcontroller.close();\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tconst { done, value } = await reader.read();\n\t\t\t\t\tif (done) {\n\t\t\t\t\t\tcontroller.close();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (abortSignal == null ? void 0 : abortSignal.aborted) {\n\t\t\t\t\t\tabort();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tcontroller.enqueue(value);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (isAbortError(error) && (abortSignal == null ? void 0 : abortSignal.aborted)) abort();\n\t\t\t\t\telse controller.error(error);\n\t\t\t\t}\n\t\t\t},\n\t\t\tcancel(reason) {\n\t\t\t\treturn stitchableStream.stream.cancel(reason);\n\t\t\t}\n\t\t});\n\t\tfor (const transform of transforms) stream = stream.pipeThrough(transform({\n\t\t\ttools,\n\t\t\tstopStream() {\n\t\t\t\tstitchableStream.terminate();\n\t\t\t}\n\t\t}));\n\t\tthis.baseStream = stream.pipeThrough(createOutputTransformStream(output)).pipeThrough(eventProcessor);\n\t\tconst { maxRetries, retry } = prepareRetries({\n\t\t\tmaxRetries: maxRetriesArg,\n\t\t\tabortSignal\n\t\t});\n\t\tconst tracer = getTracer(telemetry);\n\t\tconst callSettings = prepareCallSettings(settings);\n\t\tconst baseTelemetryAttributes = getBaseTelemetryAttributes({\n\t\t\tmodel,\n\t\t\ttelemetry,\n\t\t\theaders,\n\t\t\tsettings: {\n\t\t\t\t...callSettings,\n\t\t\t\tmaxRetries\n\t\t\t}\n\t\t});\n\t\tconst self = this;\n\t\trecordSpan({\n\t\t\tname: \"ai.streamText\",\n\t\t\tattributes: selectTelemetryAttributes({\n\t\t\t\ttelemetry,\n\t\t\t\tattributes: {\n\t\t\t\t\t...assembleOperationName({\n\t\t\t\t\t\toperationId: \"ai.streamText\",\n\t\t\t\t\t\ttelemetry\n\t\t\t\t\t}),\n\t\t\t\t\t...baseTelemetryAttributes,\n\t\t\t\t\t\"ai.prompt\": { input: () => JSON.stringify({\n\t\t\t\t\t\tsystem,\n\t\t\t\t\t\tprompt,\n\t\t\t\t\t\tmessages\n\t\t\t\t\t}) }\n\t\t\t\t}\n\t\t\t}),\n\t\t\ttracer,\n\t\t\tendWhenDone: false,\n\t\t\tfn: async (rootSpanArg) => {\n\t\t\t\trootSpan = rootSpanArg;\n\t\t\t\tasync function streamStep({ currentStep, responseMessages, usage }) {\n\t\t\t\t\tvar _a16, _b, _c, _d, _e;\n\t\t\t\t\tconst includeRawChunks2 = self.includeRawChunks;\n\t\t\t\t\tstepFinish = new DelayedPromise();\n\t\t\t\t\tconst initialPrompt = await standardizePrompt({\n\t\t\t\t\t\tsystem,\n\t\t\t\t\t\tprompt,\n\t\t\t\t\t\tmessages,\n\t\t\t\t\t\tallowSystemInMessages\n\t\t\t\t\t});\n\t\t\t\t\tconst stepInputMessages = [...initialPrompt.messages, ...responseMessages];\n\t\t\t\t\tconst prepareStepResult = await (prepareStep == null ? void 0 : prepareStep({\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\tsteps: recordedSteps,\n\t\t\t\t\t\tstepNumber: recordedSteps.length,\n\t\t\t\t\t\tmessages: stepInputMessages\n\t\t\t\t\t}));\n\t\t\t\t\tconst stepModel = resolveLanguageModel((_a16 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a16 : model);\n\t\t\t\t\tconst promptMessages = await convertToLanguageModelPrompt({\n\t\t\t\t\t\tprompt: {\n\t\t\t\t\t\t\tsystem: (_b = prepareStepResult == null ? void 0 : prepareStepResult.system) != null ? _b : initialPrompt.system,\n\t\t\t\t\t\t\tmessages: (_c = prepareStepResult == null ? void 0 : prepareStepResult.messages) != null ? _c : stepInputMessages\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsupportedUrls: await stepModel.supportedUrls,\n\t\t\t\t\t\tdownload: download2\n\t\t\t\t\t});\n\t\t\t\t\tconst stepActiveTools = (_d = prepareStepResult == null ? void 0 : prepareStepResult.activeTools) != null ? _d : activeTools;\n\t\t\t\t\tconst stepToolSet = filterActiveTools({\n\t\t\t\t\t\ttools,\n\t\t\t\t\t\tactiveTools: stepActiveTools\n\t\t\t\t\t});\n\t\t\t\t\tcurrentStepToolSet = stepToolSet;\n\t\t\t\t\tconst { toolChoice: stepToolChoice, tools: stepTools } = prepareToolsAndToolChoice({\n\t\t\t\t\t\ttools,\n\t\t\t\t\t\ttoolChoice: (_e = prepareStepResult == null ? void 0 : prepareStepResult.toolChoice) != null ? _e : toolChoice,\n\t\t\t\t\t\tactiveTools: stepActiveTools\n\t\t\t\t\t});\n\t\t\t\t\tconst { result: { stream: stream2, response, request }, doStreamSpan, startTimestampMs } = await retry(() => recordSpan({\n\t\t\t\t\t\tname: \"ai.streamText.doStream\",\n\t\t\t\t\t\tattributes: selectTelemetryAttributes({\n\t\t\t\t\t\t\ttelemetry,\n\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t...assembleOperationName({\n\t\t\t\t\t\t\t\t\toperationId: \"ai.streamText.doStream\",\n\t\t\t\t\t\t\t\t\ttelemetry\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t...baseTelemetryAttributes,\n\t\t\t\t\t\t\t\t\"ai.model.provider\": stepModel.provider,\n\t\t\t\t\t\t\t\t\"ai.model.id\": stepModel.modelId,\n\t\t\t\t\t\t\t\t\"ai.prompt.messages\": { input: () => stringifyForTelemetry(promptMessages) },\n\t\t\t\t\t\t\t\t\"ai.prompt.tools\": { input: () => stepTools == null ? void 0 : stepTools.map((tool2) => JSON.stringify(tool2)) },\n\t\t\t\t\t\t\t\t\"ai.prompt.toolChoice\": { input: () => stepToolChoice != null ? JSON.stringify(stepToolChoice) : void 0 },\n\t\t\t\t\t\t\t\t\"gen_ai.system\": stepModel.provider,\n\t\t\t\t\t\t\t\t\"gen_ai.request.model\": stepModel.modelId,\n\t\t\t\t\t\t\t\t\"gen_ai.request.frequency_penalty\": callSettings.frequencyPenalty,\n\t\t\t\t\t\t\t\t\"gen_ai.request.max_tokens\": callSettings.maxOutputTokens,\n\t\t\t\t\t\t\t\t\"gen_ai.request.presence_penalty\": callSettings.presencePenalty,\n\t\t\t\t\t\t\t\t\"gen_ai.request.stop_sequences\": callSettings.stopSequences,\n\t\t\t\t\t\t\t\t\"gen_ai.request.temperature\": callSettings.temperature,\n\t\t\t\t\t\t\t\t\"gen_ai.request.top_k\": callSettings.topK,\n\t\t\t\t\t\t\t\t\"gen_ai.request.top_p\": callSettings.topP\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}),\n\t\t\t\t\t\ttracer,\n\t\t\t\t\t\tendWhenDone: false,\n\t\t\t\t\t\tfn: async (doStreamSpan2) => {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstartTimestampMs: now2(),\n\t\t\t\t\t\t\t\tdoStreamSpan: doStreamSpan2,\n\t\t\t\t\t\t\t\tresult: await stepModel.doStream({\n\t\t\t\t\t\t\t\t\t...callSettings,\n\t\t\t\t\t\t\t\t\ttools: stepTools,\n\t\t\t\t\t\t\t\t\ttoolChoice: stepToolChoice,\n\t\t\t\t\t\t\t\t\tresponseFormat: output == null ? void 0 : output.responseFormat,\n\t\t\t\t\t\t\t\t\tprompt: promptMessages,\n\t\t\t\t\t\t\t\t\tproviderOptions,\n\t\t\t\t\t\t\t\t\tabortSignal,\n\t\t\t\t\t\t\t\t\theaders,\n\t\t\t\t\t\t\t\t\tincludeRawChunks: includeRawChunks2\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}));\n\t\t\t\t\tconst streamWithToolResults = runToolsTransformation({\n\t\t\t\t\t\ttools: stepToolSet,\n\t\t\t\t\t\tgeneratorStream: stream2,\n\t\t\t\t\t\ttracer,\n\t\t\t\t\t\ttelemetry,\n\t\t\t\t\t\tsystem,\n\t\t\t\t\t\tmessages: stepInputMessages,\n\t\t\t\t\t\trepairToolCall,\n\t\t\t\t\t\tabortSignal,\n\t\t\t\t\t\texperimental_context\n\t\t\t\t\t});\n\t\t\t\t\tconst stepRequest = request != null ? request : {};\n\t\t\t\t\tconst stepToolCalls = [];\n\t\t\t\t\tconst stepToolOutputs = [];\n\t\t\t\t\tlet warnings;\n\t\t\t\t\tconst activeToolCallToolNames = {};\n\t\t\t\t\tlet stepFinishReason = \"unknown\";\n\t\t\t\t\tlet stepUsage = {\n\t\t\t\t\t\tinputTokens: void 0,\n\t\t\t\t\t\toutputTokens: void 0,\n\t\t\t\t\t\ttotalTokens: void 0\n\t\t\t\t\t};\n\t\t\t\t\tlet stepProviderMetadata;\n\t\t\t\t\tlet stepFirstChunk = true;\n\t\t\t\t\tlet stepResponse = {\n\t\t\t\t\t\tid: generateId3(),\n\t\t\t\t\t\ttimestamp: currentDate(),\n\t\t\t\t\t\tmodelId: model.modelId\n\t\t\t\t\t};\n\t\t\t\t\tlet activeText = \"\";\n\t\t\t\t\tself.addStream(streamWithToolResults.pipeThrough(new TransformStream({\n\t\t\t\t\t\tasync transform(chunk, controller) {\n\t\t\t\t\t\t\tvar _a17, _b2, _c2, _d2;\n\t\t\t\t\t\t\tif (chunk.type === \"stream-start\") {\n\t\t\t\t\t\t\t\twarnings = chunk.warnings;\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (stepFirstChunk) {\n\t\t\t\t\t\t\t\tconst msToFirstChunk = now2() - startTimestampMs;\n\t\t\t\t\t\t\t\tstepFirstChunk = false;\n\t\t\t\t\t\t\t\tdoStreamSpan.addEvent(\"ai.stream.firstChunk\", { \"ai.response.msToFirstChunk\": msToFirstChunk });\n\t\t\t\t\t\t\t\tdoStreamSpan.setAttributes({ \"ai.response.msToFirstChunk\": msToFirstChunk });\n\t\t\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\t\t\ttype: \"start-step\",\n\t\t\t\t\t\t\t\t\trequest: stepRequest,\n\t\t\t\t\t\t\t\t\twarnings: warnings != null ? warnings : []\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst chunkType = chunk.type;\n\t\t\t\t\t\t\tswitch (chunkType) {\n\t\t\t\t\t\t\t\tcase \"text-start\":\n\t\t\t\t\t\t\t\tcase \"text-end\":\n\t\t\t\t\t\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase \"text-delta\":\n\t\t\t\t\t\t\t\t\tif (chunk.delta.length > 0 || chunk.providerMetadata != null) {\n\t\t\t\t\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\t\t\t\t\ttype: \"text-delta\",\n\t\t\t\t\t\t\t\t\t\t\tid: chunk.id,\n\t\t\t\t\t\t\t\t\t\t\ttext: chunk.delta,\n\t\t\t\t\t\t\t\t\t\t\tproviderMetadata: chunk.providerMetadata\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tactiveText += chunk.delta;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase \"reasoning-start\":\n\t\t\t\t\t\t\t\tcase \"reasoning-end\":\n\t\t\t\t\t\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase \"reasoning-delta\":\n\t\t\t\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\t\t\t\ttype: \"reasoning-delta\",\n\t\t\t\t\t\t\t\t\t\tid: chunk.id,\n\t\t\t\t\t\t\t\t\t\ttext: chunk.delta,\n\t\t\t\t\t\t\t\t\t\tproviderMetadata: chunk.providerMetadata\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase \"tool-call\":\n\t\t\t\t\t\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t\t\t\t\t\t\tstepToolCalls.push(chunk);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase \"tool-result\":\n\t\t\t\t\t\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t\t\t\t\t\t\tif (!chunk.preliminary) stepToolOutputs.push(chunk);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase \"tool-error\":\n\t\t\t\t\t\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t\t\t\t\t\t\tstepToolOutputs.push(chunk);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase \"response-metadata\":\n\t\t\t\t\t\t\t\t\tstepResponse = {\n\t\t\t\t\t\t\t\t\t\tid: (_a17 = chunk.id) != null ? _a17 : stepResponse.id,\n\t\t\t\t\t\t\t\t\t\ttimestamp: (_b2 = chunk.timestamp) != null ? _b2 : stepResponse.timestamp,\n\t\t\t\t\t\t\t\t\t\tmodelId: (_c2 = chunk.modelId) != null ? _c2 : stepResponse.modelId\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase \"finish\": {\n\t\t\t\t\t\t\t\t\tstepUsage = chunk.usage;\n\t\t\t\t\t\t\t\t\tstepFinishReason = chunk.finishReason;\n\t\t\t\t\t\t\t\t\tstepProviderMetadata = chunk.providerMetadata;\n\t\t\t\t\t\t\t\t\tconst msToFinish = now2() - startTimestampMs;\n\t\t\t\t\t\t\t\t\tdoStreamSpan.addEvent(\"ai.stream.finish\");\n\t\t\t\t\t\t\t\t\tdoStreamSpan.setAttributes({\n\t\t\t\t\t\t\t\t\t\t\"ai.response.msToFinish\": msToFinish,\n\t\t\t\t\t\t\t\t\t\t\"ai.response.avgOutputTokensPerSecond\": 1e3 * ((_d2 = stepUsage.outputTokens) != null ? _d2 : 0) / msToFinish\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase \"file\":\n\t\t\t\t\t\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase \"source\":\n\t\t\t\t\t\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase \"tool-input-start\": {\n\t\t\t\t\t\t\t\t\tactiveToolCallToolNames[chunk.id] = chunk.toolName;\n\t\t\t\t\t\t\t\t\tconst tool2 = stepToolSet == null ? void 0 : stepToolSet[chunk.toolName];\n\t\t\t\t\t\t\t\t\tif ((tool2 == null ? void 0 : tool2.onInputStart) != null) await tool2.onInputStart({\n\t\t\t\t\t\t\t\t\t\ttoolCallId: chunk.id,\n\t\t\t\t\t\t\t\t\t\tmessages: stepInputMessages,\n\t\t\t\t\t\t\t\t\t\tabortSignal,\n\t\t\t\t\t\t\t\t\t\texperimental_context\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\t\t\t\t...chunk,\n\t\t\t\t\t\t\t\t\t\tdynamic: (tool2 == null ? void 0 : tool2.type) === \"dynamic\"\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase \"tool-input-end\":\n\t\t\t\t\t\t\t\t\tdelete activeToolCallToolNames[chunk.id];\n\t\t\t\t\t\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase \"tool-input-delta\": {\n\t\t\t\t\t\t\t\t\tconst toolName = activeToolCallToolNames[chunk.id];\n\t\t\t\t\t\t\t\t\tconst tool2 = stepToolSet == null ? void 0 : stepToolSet[toolName];\n\t\t\t\t\t\t\t\t\tif ((tool2 == null ? void 0 : tool2.onInputDelta) != null) await tool2.onInputDelta({\n\t\t\t\t\t\t\t\t\t\tinputTextDelta: chunk.delta,\n\t\t\t\t\t\t\t\t\t\ttoolCallId: chunk.id,\n\t\t\t\t\t\t\t\t\t\tmessages: stepInputMessages,\n\t\t\t\t\t\t\t\t\t\tabortSignal,\n\t\t\t\t\t\t\t\t\t\texperimental_context\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase \"error\":\n\t\t\t\t\t\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t\t\t\t\t\t\tstepFinishReason = \"error\";\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase \"raw\":\n\t\t\t\t\t\t\t\t\tif (includeRawChunks2) controller.enqueue(chunk);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tdefault: throw new Error(`Unknown chunk type: ${chunkType}`);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tasync flush(controller) {\n\t\t\t\t\t\t\tconst stepToolCallsJson = stepToolCalls.length > 0 ? JSON.stringify(stepToolCalls) : void 0;\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tdoStreamSpan.setAttributes(selectTelemetryAttributes({\n\t\t\t\t\t\t\t\t\ttelemetry,\n\t\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\t\t\"ai.response.finishReason\": stepFinishReason,\n\t\t\t\t\t\t\t\t\t\t\"ai.response.text\": { output: () => activeText },\n\t\t\t\t\t\t\t\t\t\t\"ai.response.toolCalls\": { output: () => stepToolCallsJson },\n\t\t\t\t\t\t\t\t\t\t\"ai.response.id\": stepResponse.id,\n\t\t\t\t\t\t\t\t\t\t\"ai.response.model\": stepResponse.modelId,\n\t\t\t\t\t\t\t\t\t\t\"ai.response.timestamp\": stepResponse.timestamp.toISOString(),\n\t\t\t\t\t\t\t\t\t\t\"ai.response.providerMetadata\": JSON.stringify(stepProviderMetadata),\n\t\t\t\t\t\t\t\t\t\t\"ai.usage.inputTokens\": stepUsage.inputTokens,\n\t\t\t\t\t\t\t\t\t\t\"ai.usage.outputTokens\": stepUsage.outputTokens,\n\t\t\t\t\t\t\t\t\t\t\"ai.usage.totalTokens\": stepUsage.totalTokens,\n\t\t\t\t\t\t\t\t\t\t\"ai.usage.reasoningTokens\": stepUsage.reasoningTokens,\n\t\t\t\t\t\t\t\t\t\t\"ai.usage.cachedInputTokens\": stepUsage.cachedInputTokens,\n\t\t\t\t\t\t\t\t\t\t\"gen_ai.response.finish_reasons\": [stepFinishReason],\n\t\t\t\t\t\t\t\t\t\t\"gen_ai.response.id\": stepResponse.id,\n\t\t\t\t\t\t\t\t\t\t\"gen_ai.response.model\": stepResponse.modelId,\n\t\t\t\t\t\t\t\t\t\t\"gen_ai.usage.input_tokens\": stepUsage.inputTokens,\n\t\t\t\t\t\t\t\t\t\t\"gen_ai.usage.output_tokens\": stepUsage.outputTokens\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t} catch (error) {} finally {\n\t\t\t\t\t\t\t\tdoStreamSpan.end();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\t\ttype: \"finish-step\",\n\t\t\t\t\t\t\t\tfinishReason: stepFinishReason,\n\t\t\t\t\t\t\t\tusage: stepUsage,\n\t\t\t\t\t\t\t\tproviderMetadata: stepProviderMetadata,\n\t\t\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\t\t\t...stepResponse,\n\t\t\t\t\t\t\t\t\theaders: response == null ? void 0 : response.headers\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tconst combinedUsage = addLanguageModelUsage(usage, stepUsage);\n\t\t\t\t\t\t\tawait stepFinish.promise;\n\t\t\t\t\t\t\tconst clientToolCalls = stepToolCalls.filter((toolCall) => toolCall.providerExecuted !== true);\n\t\t\t\t\t\t\tconst clientToolOutputs = stepToolOutputs.filter((toolOutput) => toolOutput.providerExecuted !== true);\n\t\t\t\t\t\t\tif (clientToolCalls.length > 0 && clientToolOutputs.length === clientToolCalls.length && !await isStopConditionMet({\n\t\t\t\t\t\t\t\tstopConditions,\n\t\t\t\t\t\t\t\tsteps: recordedSteps\n\t\t\t\t\t\t\t})) {\n\t\t\t\t\t\t\t\tresponseMessages.push(...toResponseMessages({\n\t\t\t\t\t\t\t\t\tcontent: recordedSteps[recordedSteps.length - 1].content,\n\t\t\t\t\t\t\t\t\ttools: stepToolSet\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tawait streamStep({\n\t\t\t\t\t\t\t\t\t\tcurrentStep: currentStep + 1,\n\t\t\t\t\t\t\t\t\t\tresponseMessages,\n\t\t\t\t\t\t\t\t\t\tusage: combinedUsage\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\t\t\t\ttype: \"error\",\n\t\t\t\t\t\t\t\t\t\terror\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tself.closeStream();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\t\t\ttype: \"finish\",\n\t\t\t\t\t\t\t\t\tfinishReason: stepFinishReason,\n\t\t\t\t\t\t\t\t\ttotalUsage: combinedUsage\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tself.closeStream();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t})));\n\t\t\t\t}\n\t\t\t\tawait streamStep({\n\t\t\t\t\tcurrentStep: 0,\n\t\t\t\t\tresponseMessages: [],\n\t\t\t\t\tusage: {\n\t\t\t\t\t\tinputTokens: void 0,\n\t\t\t\t\t\toutputTokens: void 0,\n\t\t\t\t\t\ttotalTokens: void 0\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}).catch((error) => {\n\t\t\tself.addStream(new ReadableStream({ start(controller) {\n\t\t\t\tcontroller.enqueue({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\terror\n\t\t\t\t});\n\t\t\t\tcontroller.close();\n\t\t\t} }));\n\t\t\tself.closeStream();\n\t\t});\n\t}\n\tget steps() {\n\t\tthis.consumeStream();\n\t\treturn this._steps.promise;\n\t}\n\tget finalStep() {\n\t\treturn this.steps.then((steps) => steps[steps.length - 1]);\n\t}\n\tget content() {\n\t\treturn this.finalStep.then((step) => step.content);\n\t}\n\tget warnings() {\n\t\treturn this.finalStep.then((step) => step.warnings);\n\t}\n\tget providerMetadata() {\n\t\treturn this.finalStep.then((step) => step.providerMetadata);\n\t}\n\tget text() {\n\t\treturn this.finalStep.then((step) => step.text);\n\t}\n\tget reasoningText() {\n\t\treturn this.finalStep.then((step) => step.reasoningText);\n\t}\n\tget reasoning() {\n\t\treturn this.finalStep.then((step) => step.reasoning);\n\t}\n\tget sources() {\n\t\treturn this.finalStep.then((step) => step.sources);\n\t}\n\tget files() {\n\t\treturn this.finalStep.then((step) => step.files);\n\t}\n\tget toolCalls() {\n\t\treturn this.finalStep.then((step) => step.toolCalls);\n\t}\n\tget staticToolCalls() {\n\t\treturn this.finalStep.then((step) => step.staticToolCalls);\n\t}\n\tget dynamicToolCalls() {\n\t\treturn this.finalStep.then((step) => step.dynamicToolCalls);\n\t}\n\tget toolResults() {\n\t\treturn this.finalStep.then((step) => step.toolResults);\n\t}\n\tget staticToolResults() {\n\t\treturn this.finalStep.then((step) => step.staticToolResults);\n\t}\n\tget dynamicToolResults() {\n\t\treturn this.finalStep.then((step) => step.dynamicToolResults);\n\t}\n\tget usage() {\n\t\treturn this.finalStep.then((step) => step.usage);\n\t}\n\tget request() {\n\t\treturn this.finalStep.then((step) => step.request);\n\t}\n\tget response() {\n\t\treturn this.finalStep.then((step) => step.response);\n\t}\n\tget totalUsage() {\n\t\tthis.consumeStream();\n\t\treturn this._totalUsage.promise;\n\t}\n\tget finishReason() {\n\t\tthis.consumeStream();\n\t\treturn this._finishReason.promise;\n\t}\n\t/**\n\tSplit out a new stream from the original stream.\n\tThe original stream is replaced to allow for further splitting,\n\tsince we do not know how many times the stream will be split.\n\t\n\tNote: this leads to buffering the stream content on the server.\n\tHowever, the LLM results are expected to be small enough to not cause issues.\n\t*/\n\tteeStream() {\n\t\tconst [stream1, stream2] = this.baseStream.tee();\n\t\tthis.baseStream = stream2;\n\t\treturn stream1;\n\t}\n\tget textStream() {\n\t\treturn createAsyncIterableStream(this.teeStream().pipeThrough(new TransformStream({ transform({ part }, controller) {\n\t\t\tif (part.type === \"text-delta\") controller.enqueue(part.text);\n\t\t} })));\n\t}\n\tget fullStream() {\n\t\treturn createAsyncIterableStream(this.teeStream().pipeThrough(new TransformStream({ transform({ part }, controller) {\n\t\t\tcontroller.enqueue(part);\n\t\t} })));\n\t}\n\tasync consumeStream(options) {\n\t\tvar _a16;\n\t\ttry {\n\t\t\tawait consumeStream({\n\t\t\t\tstream: this.fullStream,\n\t\t\t\tonError: options == null ? void 0 : options.onError\n\t\t\t});\n\t\t} catch (error) {\n\t\t\t(_a16 = options == null ? void 0 : options.onError) == null || _a16.call(options, error);\n\t\t}\n\t}\n\tget experimental_partialOutputStream() {\n\t\tif (this.output == null) throw new NoOutputSpecifiedError();\n\t\treturn createAsyncIterableStream(this.teeStream().pipeThrough(new TransformStream({ transform({ partialOutput }, controller) {\n\t\t\tif (partialOutput != null) controller.enqueue(partialOutput);\n\t\t} })));\n\t}\n\ttoUIMessageStream({ originalMessages, generateMessageId, onFinish, messageMetadata, sendReasoning = true, sendSources = false, sendStart = true, sendFinish = true, onError = () => \"An error occurred.\" } = {}) {\n\t\tconst responseMessageId = generateMessageId != null ? getResponseUIMessageId({\n\t\t\toriginalMessages,\n\t\t\tresponseMessageId: generateMessageId\n\t\t}) : void 0;\n\t\tconst toolNamesByCallId = {};\n\t\tconst isDynamic = (toolCallId) => {\n\t\t\tvar _a16, _b;\n\t\t\tconst toolName = toolNamesByCallId[toolCallId];\n\t\t\treturn ((_b = (_a16 = this.tools) == null ? void 0 : _a16[toolName]) == null ? void 0 : _b.type) === \"dynamic\" ? true : void 0;\n\t\t};\n\t\treturn createAsyncIterableStream(handleUIMessageStreamFinish({\n\t\t\tstream: this.fullStream.pipeThrough(new TransformStream({ transform: async (part, controller) => {\n\t\t\t\tconst messageMetadataValue = messageMetadata == null ? void 0 : messageMetadata({ part });\n\t\t\t\tconst partType = part.type;\n\t\t\t\tswitch (partType) {\n\t\t\t\t\tcase \"text-start\":\n\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\ttype: \"text-start\",\n\t\t\t\t\t\t\tid: part.id,\n\t\t\t\t\t\t\t...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"text-delta\":\n\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\ttype: \"text-delta\",\n\t\t\t\t\t\t\tid: part.id,\n\t\t\t\t\t\t\tdelta: part.text,\n\t\t\t\t\t\t\t...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"text-end\":\n\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\ttype: \"text-end\",\n\t\t\t\t\t\t\tid: part.id,\n\t\t\t\t\t\t\t...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"reasoning-start\":\n\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\ttype: \"reasoning-start\",\n\t\t\t\t\t\t\tid: part.id,\n\t\t\t\t\t\t\t...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"reasoning-delta\":\n\t\t\t\t\t\tif (sendReasoning) controller.enqueue({\n\t\t\t\t\t\t\ttype: \"reasoning-delta\",\n\t\t\t\t\t\t\tid: part.id,\n\t\t\t\t\t\t\tdelta: part.text,\n\t\t\t\t\t\t\t...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"reasoning-end\":\n\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\ttype: \"reasoning-end\",\n\t\t\t\t\t\t\tid: part.id,\n\t\t\t\t\t\t\t...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"file\":\n\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\ttype: \"file\",\n\t\t\t\t\t\t\tmediaType: part.file.mediaType,\n\t\t\t\t\t\t\turl: `data:${part.file.mediaType};base64,${part.file.base64}`\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"source\":\n\t\t\t\t\t\tif (sendSources && part.sourceType === \"url\") controller.enqueue({\n\t\t\t\t\t\t\ttype: \"source-url\",\n\t\t\t\t\t\t\tsourceId: part.id,\n\t\t\t\t\t\t\turl: part.url,\n\t\t\t\t\t\t\ttitle: part.title,\n\t\t\t\t\t\t\t...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (sendSources && part.sourceType === \"document\") controller.enqueue({\n\t\t\t\t\t\t\ttype: \"source-document\",\n\t\t\t\t\t\t\tsourceId: part.id,\n\t\t\t\t\t\t\tmediaType: part.mediaType,\n\t\t\t\t\t\t\ttitle: part.title,\n\t\t\t\t\t\t\tfilename: part.filename,\n\t\t\t\t\t\t\t...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"tool-input-start\": {\n\t\t\t\t\t\ttoolNamesByCallId[part.id] = part.toolName;\n\t\t\t\t\t\tconst dynamic = isDynamic(part.id);\n\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\ttype: \"tool-input-start\",\n\t\t\t\t\t\t\ttoolCallId: part.id,\n\t\t\t\t\t\t\ttoolName: part.toolName,\n\t\t\t\t\t\t\t...part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {},\n\t\t\t\t\t\t\t...dynamic != null ? { dynamic } : {}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase \"tool-input-delta\":\n\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\ttype: \"tool-input-delta\",\n\t\t\t\t\t\t\ttoolCallId: part.id,\n\t\t\t\t\t\t\tinputTextDelta: part.delta\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"tool-call\": {\n\t\t\t\t\t\ttoolNamesByCallId[part.toolCallId] = part.toolName;\n\t\t\t\t\t\tconst dynamic = isDynamic(part.toolCallId);\n\t\t\t\t\t\tif (part.invalid) controller.enqueue({\n\t\t\t\t\t\t\ttype: \"tool-input-error\",\n\t\t\t\t\t\t\ttoolCallId: part.toolCallId,\n\t\t\t\t\t\t\ttoolName: part.toolName,\n\t\t\t\t\t\t\tinput: part.input,\n\t\t\t\t\t\t\t...part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {},\n\t\t\t\t\t\t\t...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {},\n\t\t\t\t\t\t\t...dynamic != null ? { dynamic } : {},\n\t\t\t\t\t\t\terrorText: onError(part.error)\n\t\t\t\t\t\t});\n\t\t\t\t\t\telse controller.enqueue({\n\t\t\t\t\t\t\ttype: \"tool-input-available\",\n\t\t\t\t\t\t\ttoolCallId: part.toolCallId,\n\t\t\t\t\t\t\ttoolName: part.toolName,\n\t\t\t\t\t\t\tinput: part.input,\n\t\t\t\t\t\t\t...part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {},\n\t\t\t\t\t\t\t...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {},\n\t\t\t\t\t\t\t...dynamic != null ? { dynamic } : {}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase \"tool-result\": {\n\t\t\t\t\t\tconst dynamic = isDynamic(part.toolCallId);\n\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\ttype: \"tool-output-available\",\n\t\t\t\t\t\t\ttoolCallId: part.toolCallId,\n\t\t\t\t\t\t\toutput: part.output,\n\t\t\t\t\t\t\t...part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {},\n\t\t\t\t\t\t\t...part.preliminary != null ? { preliminary: part.preliminary } : {},\n\t\t\t\t\t\t\t...dynamic != null ? { dynamic } : {}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase \"tool-error\": {\n\t\t\t\t\t\tconst dynamic = isDynamic(part.toolCallId);\n\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\ttype: \"tool-output-error\",\n\t\t\t\t\t\t\ttoolCallId: part.toolCallId,\n\t\t\t\t\t\t\terrorText: onError(part.error),\n\t\t\t\t\t\t\t...part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {},\n\t\t\t\t\t\t\t...dynamic != null ? { dynamic } : {}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase \"error\":\n\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\ttype: \"error\",\n\t\t\t\t\t\t\terrorText: onError(part.error)\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"start-step\":\n\t\t\t\t\t\tcontroller.enqueue({ type: \"start-step\" });\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"finish-step\":\n\t\t\t\t\t\tcontroller.enqueue({ type: \"finish-step\" });\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"start\":\n\t\t\t\t\t\tif (sendStart) controller.enqueue({\n\t\t\t\t\t\t\ttype: \"start\",\n\t\t\t\t\t\t\t...messageMetadataValue != null ? { messageMetadata: messageMetadataValue } : {},\n\t\t\t\t\t\t\t...responseMessageId != null ? { messageId: responseMessageId } : {}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"finish\":\n\t\t\t\t\t\tif (sendFinish) controller.enqueue({\n\t\t\t\t\t\t\ttype: \"finish\",\n\t\t\t\t\t\t\tfinishReason: part.finishReason,\n\t\t\t\t\t\t\t...messageMetadataValue != null ? { messageMetadata: messageMetadataValue } : {}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"abort\":\n\t\t\t\t\t\tcontroller.enqueue(part);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"tool-input-end\": break;\n\t\t\t\t\tcase \"raw\": break;\n\t\t\t\t\tdefault: throw new Error(`Unknown chunk type: ${partType}`);\n\t\t\t\t}\n\t\t\t\tif (messageMetadataValue != null && partType !== \"start\" && partType !== \"finish\") controller.enqueue({\n\t\t\t\t\ttype: \"message-metadata\",\n\t\t\t\t\tmessageMetadata: messageMetadataValue\n\t\t\t\t});\n\t\t\t} })),\n\t\t\tmessageId: responseMessageId != null ? responseMessageId : generateMessageId == null ? void 0 : generateMessageId(),\n\t\t\toriginalMessages,\n\t\t\tonFinish,\n\t\t\tonError\n\t\t}));\n\t}\n\tpipeUIMessageStreamToResponse(response, { originalMessages, generateMessageId, onFinish, messageMetadata, sendReasoning, sendSources, sendFinish, sendStart, onError, ...init } = {}) {\n\t\treturn pipeUIMessageStreamToResponse({\n\t\t\tresponse,\n\t\t\tstream: this.toUIMessageStream({\n\t\t\t\toriginalMessages,\n\t\t\t\tgenerateMessageId,\n\t\t\t\tonFinish,\n\t\t\t\tmessageMetadata,\n\t\t\t\tsendReasoning,\n\t\t\t\tsendSources,\n\t\t\t\tsendFinish,\n\t\t\t\tsendStart,\n\t\t\t\tonError\n\t\t\t}),\n\t\t\t...init\n\t\t});\n\t}\n\tpipeTextStreamToResponse(response, init) {\n\t\treturn pipeTextStreamToResponse({\n\t\t\tresponse,\n\t\t\ttextStream: this.textStream,\n\t\t\t...init\n\t\t});\n\t}\n\ttoUIMessageStreamResponse({ originalMessages, generateMessageId, onFinish, messageMetadata, sendReasoning, sendSources, sendFinish, sendStart, onError, ...init } = {}) {\n\t\treturn createUIMessageStreamResponse({\n\t\t\tstream: this.toUIMessageStream({\n\t\t\t\toriginalMessages,\n\t\t\t\tgenerateMessageId,\n\t\t\t\tonFinish,\n\t\t\t\tmessageMetadata,\n\t\t\t\tsendReasoning,\n\t\t\t\tsendSources,\n\t\t\t\tsendFinish,\n\t\t\t\tsendStart,\n\t\t\t\tonError\n\t\t\t}),\n\t\t\t...init\n\t\t});\n\t}\n\ttoTextStreamResponse(init) {\n\t\treturn createTextStreamResponse({\n\t\t\ttextStream: this.textStream,\n\t\t\t...init\n\t\t});\n\t}\n};\nfunction convertToModelMessages(messages, options) {\n\tconst modelMessages = [];\n\tif (options == null ? void 0 : options.ignoreIncompleteToolCalls) messages = messages.map((message) => ({\n\t\t...message,\n\t\tparts: message.parts.filter((part) => !isToolOrDynamicToolUIPart(part) || part.state !== \"input-streaming\" && part.state !== \"input-available\")\n\t}));\n\tfor (const message of messages) switch (message.role) {\n\t\tcase \"system\": {\n\t\t\tconst textParts = message.parts.filter((part) => part.type === \"text\");\n\t\t\tconst providerMetadata = textParts.reduce((acc, part) => {\n\t\t\t\tif (part.providerMetadata != null) return {\n\t\t\t\t\t...acc,\n\t\t\t\t\t...part.providerMetadata\n\t\t\t\t};\n\t\t\t\treturn acc;\n\t\t\t}, {});\n\t\t\tmodelMessages.push({\n\t\t\t\trole: \"system\",\n\t\t\t\tcontent: textParts.map((part) => part.text).join(\"\"),\n\t\t\t\t...Object.keys(providerMetadata).length > 0 ? { providerOptions: providerMetadata } : {}\n\t\t\t});\n\t\t\tbreak;\n\t\t}\n\t\tcase \"user\":\n\t\t\tmodelMessages.push({\n\t\t\t\trole: \"user\",\n\t\t\t\tcontent: message.parts.map((part) => {\n\t\t\t\t\tvar _a16;\n\t\t\t\t\tif (isTextUIPart(part)) return {\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: part.text,\n\t\t\t\t\t\t...part.providerMetadata != null ? { providerOptions: part.providerMetadata } : {}\n\t\t\t\t\t};\n\t\t\t\t\tif (isFileUIPart(part)) return {\n\t\t\t\t\t\ttype: \"file\",\n\t\t\t\t\t\tmediaType: part.mediaType,\n\t\t\t\t\t\tfilename: part.filename,\n\t\t\t\t\t\tdata: part.url,\n\t\t\t\t\t\t...part.providerMetadata != null ? { providerOptions: part.providerMetadata } : {}\n\t\t\t\t\t};\n\t\t\t\t\tif (isDataUIPart(part)) return (_a16 = options == null ? void 0 : options.convertDataPart) == null ? void 0 : _a16.call(options, part);\n\t\t\t\t}).filter((part) => part != null)\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"assistant\":\n\t\t\tif (message.parts != null) {\n\t\t\t\tlet processBlock2 = function() {\n\t\t\t\t\tvar _a16, _b, _c;\n\t\t\t\t\tif (block.length === 0) return;\n\t\t\t\t\tconst content = [];\n\t\t\t\t\tfor (const part of block) if (isTextUIPart(part)) content.push({\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\ttext: part.text,\n\t\t\t\t\t\t...part.providerMetadata != null ? { providerOptions: part.providerMetadata } : {}\n\t\t\t\t\t});\n\t\t\t\t\telse if (isFileUIPart(part)) content.push({\n\t\t\t\t\t\ttype: \"file\",\n\t\t\t\t\t\tmediaType: part.mediaType,\n\t\t\t\t\t\tfilename: part.filename,\n\t\t\t\t\t\tdata: part.url\n\t\t\t\t\t});\n\t\t\t\t\telse if (isReasoningUIPart(part)) content.push({\n\t\t\t\t\t\ttype: \"reasoning\",\n\t\t\t\t\t\ttext: part.text,\n\t\t\t\t\t\tproviderOptions: part.providerMetadata\n\t\t\t\t\t});\n\t\t\t\t\telse if (isDynamicToolUIPart(part)) {\n\t\t\t\t\t\tconst toolName = part.toolName;\n\t\t\t\t\t\tif (part.state !== \"input-streaming\") content.push({\n\t\t\t\t\t\t\ttype: \"tool-call\",\n\t\t\t\t\t\t\ttoolCallId: part.toolCallId,\n\t\t\t\t\t\t\ttoolName,\n\t\t\t\t\t\t\tinput: part.input,\n\t\t\t\t\t\t\t...part.callProviderMetadata != null ? { providerOptions: part.callProviderMetadata } : {}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if (isToolUIPart(part)) {\n\t\t\t\t\t\tconst toolName = getToolName(part);\n\t\t\t\t\t\tif (part.state !== \"input-streaming\") {\n\t\t\t\t\t\t\tcontent.push({\n\t\t\t\t\t\t\t\ttype: \"tool-call\",\n\t\t\t\t\t\t\t\ttoolCallId: part.toolCallId,\n\t\t\t\t\t\t\t\ttoolName,\n\t\t\t\t\t\t\t\tinput: part.state === \"output-error\" ? (_a16 = part.input) != null ? _a16 : part.rawInput : part.input,\n\t\t\t\t\t\t\t\tproviderExecuted: part.providerExecuted,\n\t\t\t\t\t\t\t\t...part.callProviderMetadata != null ? { providerOptions: part.callProviderMetadata } : {}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tif (part.providerExecuted === true && (part.state === \"output-available\" || part.state === \"output-error\")) content.push({\n\t\t\t\t\t\t\t\ttype: \"tool-result\",\n\t\t\t\t\t\t\t\ttoolCallId: part.toolCallId,\n\t\t\t\t\t\t\t\ttoolName,\n\t\t\t\t\t\t\t\toutput: createToolModelOutput({\n\t\t\t\t\t\t\t\t\toutput: part.state === \"output-error\" ? part.errorText : part.output,\n\t\t\t\t\t\t\t\t\ttool: (_b = options == null ? void 0 : options.tools) == null ? void 0 : _b[toolName],\n\t\t\t\t\t\t\t\t\terrorMode: part.state === \"output-error\" ? \"json\" : \"none\"\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t...part.callProviderMetadata != null ? { providerOptions: part.callProviderMetadata } : {}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (isDataUIPart(part)) {\n\t\t\t\t\t\tconst dataPart = (_c = options == null ? void 0 : options.convertDataPart) == null ? void 0 : _c.call(options, part);\n\t\t\t\t\t\tif (dataPart != null) content.push(dataPart);\n\t\t\t\t\t} else throw new Error(`Unsupported part: ${part}`);\n\t\t\t\t\tmodelMessages.push({\n\t\t\t\t\t\trole: \"assistant\",\n\t\t\t\t\t\tcontent\n\t\t\t\t\t});\n\t\t\t\t\tconst toolParts = block.filter((part) => isToolUIPart(part) && part.providerExecuted !== true || part.type === \"dynamic-tool\");\n\t\t\t\t\tif (toolParts.length > 0) modelMessages.push({\n\t\t\t\t\t\trole: \"tool\",\n\t\t\t\t\t\tcontent: toolParts.map((toolPart) => {\n\t\t\t\t\t\t\tvar _a17;\n\t\t\t\t\t\t\tswitch (toolPart.state) {\n\t\t\t\t\t\t\t\tcase \"output-error\":\n\t\t\t\t\t\t\t\tcase \"output-available\": {\n\t\t\t\t\t\t\t\t\tconst toolName = getToolOrDynamicToolName(toolPart);\n\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\ttype: \"tool-result\",\n\t\t\t\t\t\t\t\t\t\ttoolCallId: toolPart.toolCallId,\n\t\t\t\t\t\t\t\t\t\ttoolName,\n\t\t\t\t\t\t\t\t\t\toutput: createToolModelOutput({\n\t\t\t\t\t\t\t\t\t\t\toutput: toolPart.state === \"output-error\" ? toolPart.errorText : toolPart.output,\n\t\t\t\t\t\t\t\t\t\t\ttool: (_a17 = options == null ? void 0 : options.tools) == null ? void 0 : _a17[toolName],\n\t\t\t\t\t\t\t\t\t\t\terrorMode: toolPart.state === \"output-error\" ? \"text\" : \"none\"\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t...toolPart.callProviderMetadata != null ? { providerOptions: toolPart.callProviderMetadata } : {}\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdefault: return null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).filter((output) => output != null)\n\t\t\t\t\t});\n\t\t\t\t\tblock = [];\n\t\t\t\t};\n\t\t\t\tlet block = [];\n\t\t\t\tfor (const part of message.parts) if (isTextUIPart(part) || isReasoningUIPart(part) || isFileUIPart(part) || isToolOrDynamicToolUIPart(part) || isDataUIPart(part)) block.push(part);\n\t\t\t\telse if (part.type === \"step-start\") processBlock2();\n\t\t\t\tprocessBlock2();\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\t\tdefault: {\n\t\t\tconst _exhaustiveCheck = message.role;\n\t\t\tthrow new MessageConversionError({\n\t\t\t\toriginalMessage: message,\n\t\t\t\tmessage: `Unsupported role: ${_exhaustiveCheck}`\n\t\t\t});\n\t\t}\n\t}\n\treturn modelMessages;\n}\nvar convertToCoreMessages = convertToModelMessages;\nvar Agent = class {\n\tconstructor(settings) {\n\t\tthis.settings = settings;\n\t}\n\tget tools() {\n\t\treturn this.settings.tools;\n\t}\n\tasync generate(options) {\n\t\treturn generateText$1({\n\t\t\t...this.settings,\n\t\t\t...options\n\t\t});\n\t}\n\tstream(options) {\n\t\treturn streamText$1({\n\t\t\t...this.settings,\n\t\t\t...options\n\t\t});\n\t}\n\t/**\n\t* Creates a response object that streams UI messages to the client.\n\t*/\n\trespond(options) {\n\t\treturn this.stream({ prompt: convertToModelMessages(options.messages) }).toUIMessageStreamResponse();\n\t}\n};\nasync function embed({ model: modelArg, value, providerOptions, maxRetries: maxRetriesArg, abortSignal, headers, experimental_telemetry: telemetry }) {\n\tconst model = resolveEmbeddingModel(modelArg);\n\tconst { maxRetries, retry } = prepareRetries({\n\t\tmaxRetries: maxRetriesArg,\n\t\tabortSignal\n\t});\n\tconst headersWithUserAgent = withUserAgentSuffix(headers != null ? headers : {}, `ai/${VERSION}`);\n\tconst baseTelemetryAttributes = getBaseTelemetryAttributes({\n\t\tmodel,\n\t\ttelemetry,\n\t\theaders: headersWithUserAgent,\n\t\tsettings: { maxRetries }\n\t});\n\tconst tracer = getTracer(telemetry);\n\treturn recordSpan({\n\t\tname: \"ai.embed\",\n\t\tattributes: selectTelemetryAttributes({\n\t\t\ttelemetry,\n\t\t\tattributes: {\n\t\t\t\t...assembleOperationName({\n\t\t\t\t\toperationId: \"ai.embed\",\n\t\t\t\t\ttelemetry\n\t\t\t\t}),\n\t\t\t\t...baseTelemetryAttributes,\n\t\t\t\t\"ai.value\": { input: () => JSON.stringify(value) }\n\t\t\t}\n\t\t}),\n\t\ttracer,\n\t\tfn: async (span) => {\n\t\t\tconst { embedding, usage, response, providerMetadata } = await retry(() => recordSpan({\n\t\t\t\tname: \"ai.embed.doEmbed\",\n\t\t\t\tattributes: selectTelemetryAttributes({\n\t\t\t\t\ttelemetry,\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\t...assembleOperationName({\n\t\t\t\t\t\t\toperationId: \"ai.embed.doEmbed\",\n\t\t\t\t\t\t\ttelemetry\n\t\t\t\t\t\t}),\n\t\t\t\t\t\t...baseTelemetryAttributes,\n\t\t\t\t\t\t\"ai.values\": { input: () => [JSON.stringify(value)] }\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\ttracer,\n\t\t\t\tfn: async (doEmbedSpan) => {\n\t\t\t\t\tvar _a16;\n\t\t\t\t\tconst modelResponse = await model.doEmbed({\n\t\t\t\t\t\tvalues: [value],\n\t\t\t\t\t\tabortSignal,\n\t\t\t\t\t\theaders: headersWithUserAgent,\n\t\t\t\t\t\tproviderOptions\n\t\t\t\t\t});\n\t\t\t\t\tconst embedding2 = modelResponse.embeddings[0];\n\t\t\t\t\tconst usage2 = (_a16 = modelResponse.usage) != null ? _a16 : { tokens: NaN };\n\t\t\t\t\tdoEmbedSpan.setAttributes(selectTelemetryAttributes({\n\t\t\t\t\t\ttelemetry,\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\"ai.embeddings\": { output: () => modelResponse.embeddings.map((embedding3) => JSON.stringify(embedding3)) },\n\t\t\t\t\t\t\t\"ai.usage.tokens\": usage2.tokens\n\t\t\t\t\t\t}\n\t\t\t\t\t}));\n\t\t\t\t\treturn {\n\t\t\t\t\t\tembedding: embedding2,\n\t\t\t\t\t\tusage: usage2,\n\t\t\t\t\t\tproviderMetadata: modelResponse.providerMetadata,\n\t\t\t\t\t\tresponse: modelResponse.response\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}));\n\t\t\tspan.setAttributes(selectTelemetryAttributes({\n\t\t\t\ttelemetry,\n\t\t\t\tattributes: {\n\t\t\t\t\t\"ai.embedding\": { output: () => JSON.stringify(embedding) },\n\t\t\t\t\t\"ai.usage.tokens\": usage.tokens\n\t\t\t\t}\n\t\t\t}));\n\t\t\treturn new DefaultEmbedResult({\n\t\t\t\tvalue,\n\t\t\t\tembedding,\n\t\t\t\tusage,\n\t\t\t\tproviderMetadata,\n\t\t\t\tresponse\n\t\t\t});\n\t\t}\n\t});\n}\nvar DefaultEmbedResult = class {\n\tconstructor(options) {\n\t\tthis.value = options.value;\n\t\tthis.embedding = options.embedding;\n\t\tthis.usage = options.usage;\n\t\tthis.providerMetadata = options.providerMetadata;\n\t\tthis.response = options.response;\n\t}\n};\nfunction splitArray(array, chunkSize) {\n\tif (chunkSize <= 0) throw new Error(\"chunkSize must be greater than 0\");\n\tconst result = [];\n\tfor (let i = 0; i < array.length; i += chunkSize) result.push(array.slice(i, i + chunkSize));\n\treturn result;\n}\nasync function embedMany({ model: modelArg, values, maxParallelCalls = Infinity, maxRetries: maxRetriesArg, abortSignal, headers, providerOptions, experimental_telemetry: telemetry }) {\n\tconst model = resolveEmbeddingModel(modelArg);\n\tconst { maxRetries, retry } = prepareRetries({\n\t\tmaxRetries: maxRetriesArg,\n\t\tabortSignal\n\t});\n\tconst headersWithUserAgent = withUserAgentSuffix(headers != null ? headers : {}, `ai/${VERSION}`);\n\tconst baseTelemetryAttributes = getBaseTelemetryAttributes({\n\t\tmodel,\n\t\ttelemetry,\n\t\theaders: headersWithUserAgent,\n\t\tsettings: { maxRetries }\n\t});\n\tconst tracer = getTracer(telemetry);\n\treturn recordSpan({\n\t\tname: \"ai.embedMany\",\n\t\tattributes: selectTelemetryAttributes({\n\t\t\ttelemetry,\n\t\t\tattributes: {\n\t\t\t\t...assembleOperationName({\n\t\t\t\t\toperationId: \"ai.embedMany\",\n\t\t\t\t\ttelemetry\n\t\t\t\t}),\n\t\t\t\t...baseTelemetryAttributes,\n\t\t\t\t\"ai.values\": { input: () => values.map((value) => JSON.stringify(value)) }\n\t\t\t}\n\t\t}),\n\t\ttracer,\n\t\tfn: async (span) => {\n\t\t\tvar _a16;\n\t\t\tconst [maxEmbeddingsPerCall, supportsParallelCalls] = await Promise.all([model.maxEmbeddingsPerCall, model.supportsParallelCalls]);\n\t\t\tif (maxEmbeddingsPerCall == null || maxEmbeddingsPerCall === Infinity) {\n\t\t\t\tconst { embeddings: embeddings2, usage, response, providerMetadata: providerMetadata2 } = await retry(() => {\n\t\t\t\t\treturn recordSpan({\n\t\t\t\t\t\tname: \"ai.embedMany.doEmbed\",\n\t\t\t\t\t\tattributes: selectTelemetryAttributes({\n\t\t\t\t\t\t\ttelemetry,\n\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t...assembleOperationName({\n\t\t\t\t\t\t\t\t\toperationId: \"ai.embedMany.doEmbed\",\n\t\t\t\t\t\t\t\t\ttelemetry\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t...baseTelemetryAttributes,\n\t\t\t\t\t\t\t\t\"ai.values\": { input: () => values.map((value) => JSON.stringify(value)) }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}),\n\t\t\t\t\t\ttracer,\n\t\t\t\t\t\tfn: async (doEmbedSpan) => {\n\t\t\t\t\t\t\tvar _a17;\n\t\t\t\t\t\t\tconst modelResponse = await model.doEmbed({\n\t\t\t\t\t\t\t\tvalues,\n\t\t\t\t\t\t\t\tabortSignal,\n\t\t\t\t\t\t\t\theaders: headersWithUserAgent,\n\t\t\t\t\t\t\t\tproviderOptions\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tconst embeddings3 = modelResponse.embeddings;\n\t\t\t\t\t\t\tconst usage2 = (_a17 = modelResponse.usage) != null ? _a17 : { tokens: NaN };\n\t\t\t\t\t\t\tdoEmbedSpan.setAttributes(selectTelemetryAttributes({\n\t\t\t\t\t\t\t\ttelemetry,\n\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\t\"ai.embeddings\": { output: () => embeddings3.map((embedding) => JSON.stringify(embedding)) },\n\t\t\t\t\t\t\t\t\t\"ai.usage.tokens\": usage2.tokens\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tembeddings: embeddings3,\n\t\t\t\t\t\t\t\tusage: usage2,\n\t\t\t\t\t\t\t\tproviderMetadata: modelResponse.providerMetadata,\n\t\t\t\t\t\t\t\tresponse: modelResponse.response\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t\tspan.setAttributes(selectTelemetryAttributes({\n\t\t\t\t\ttelemetry,\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\"ai.embeddings\": { output: () => embeddings2.map((embedding) => JSON.stringify(embedding)) },\n\t\t\t\t\t\t\"ai.usage.tokens\": usage.tokens\n\t\t\t\t\t}\n\t\t\t\t}));\n\t\t\t\treturn new DefaultEmbedManyResult({\n\t\t\t\t\tvalues,\n\t\t\t\t\tembeddings: embeddings2,\n\t\t\t\t\tusage,\n\t\t\t\t\tproviderMetadata: providerMetadata2,\n\t\t\t\t\tresponses: [response]\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst valueChunks = splitArray(values, maxEmbeddingsPerCall);\n\t\t\tconst embeddings = [];\n\t\t\tconst responses = [];\n\t\t\tlet tokens = 0;\n\t\t\tlet providerMetadata;\n\t\t\tconst parallelChunks = splitArray(valueChunks, supportsParallelCalls ? maxParallelCalls : 1);\n\t\t\tfor (const parallelChunk of parallelChunks) {\n\t\t\t\tconst results = await Promise.all(parallelChunk.map((chunk) => {\n\t\t\t\t\treturn retry(() => {\n\t\t\t\t\t\treturn recordSpan({\n\t\t\t\t\t\t\tname: \"ai.embedMany.doEmbed\",\n\t\t\t\t\t\t\tattributes: selectTelemetryAttributes({\n\t\t\t\t\t\t\t\ttelemetry,\n\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\t...assembleOperationName({\n\t\t\t\t\t\t\t\t\t\toperationId: \"ai.embedMany.doEmbed\",\n\t\t\t\t\t\t\t\t\t\ttelemetry\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t...baseTelemetryAttributes,\n\t\t\t\t\t\t\t\t\t\"ai.values\": { input: () => chunk.map((value) => JSON.stringify(value)) }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\ttracer,\n\t\t\t\t\t\t\tfn: async (doEmbedSpan) => {\n\t\t\t\t\t\t\t\tvar _a17;\n\t\t\t\t\t\t\t\tconst modelResponse = await model.doEmbed({\n\t\t\t\t\t\t\t\t\tvalues: chunk,\n\t\t\t\t\t\t\t\t\tabortSignal,\n\t\t\t\t\t\t\t\t\theaders: headersWithUserAgent,\n\t\t\t\t\t\t\t\t\tproviderOptions\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tconst embeddings2 = modelResponse.embeddings;\n\t\t\t\t\t\t\t\tconst usage = (_a17 = modelResponse.usage) != null ? _a17 : { tokens: NaN };\n\t\t\t\t\t\t\t\tdoEmbedSpan.setAttributes(selectTelemetryAttributes({\n\t\t\t\t\t\t\t\t\ttelemetry,\n\t\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\t\t\"ai.embeddings\": { output: () => embeddings2.map((embedding) => JSON.stringify(embedding)) },\n\t\t\t\t\t\t\t\t\t\t\"ai.usage.tokens\": usage.tokens\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\tembeddings: embeddings2,\n\t\t\t\t\t\t\t\t\tusage,\n\t\t\t\t\t\t\t\t\tproviderMetadata: modelResponse.providerMetadata,\n\t\t\t\t\t\t\t\t\tresponse: modelResponse.response\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}));\n\t\t\t\tfor (const result of results) {\n\t\t\t\t\tembeddings.push(...result.embeddings);\n\t\t\t\t\tresponses.push(result.response);\n\t\t\t\t\ttokens += result.usage.tokens;\n\t\t\t\t\tif (result.providerMetadata) if (!providerMetadata) providerMetadata = { ...result.providerMetadata };\n\t\t\t\t\telse for (const [providerName, metadata] of Object.entries(result.providerMetadata)) providerMetadata[providerName] = {\n\t\t\t\t\t\t...(_a16 = providerMetadata[providerName]) != null ? _a16 : {},\n\t\t\t\t\t\t...metadata\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t\tspan.setAttributes(selectTelemetryAttributes({\n\t\t\t\ttelemetry,\n\t\t\t\tattributes: {\n\t\t\t\t\t\"ai.embeddings\": { output: () => embeddings.map((embedding) => JSON.stringify(embedding)) },\n\t\t\t\t\t\"ai.usage.tokens\": tokens\n\t\t\t\t}\n\t\t\t}));\n\t\t\treturn new DefaultEmbedManyResult({\n\t\t\t\tvalues,\n\t\t\t\tembeddings,\n\t\t\t\tusage: { tokens },\n\t\t\t\tproviderMetadata,\n\t\t\t\tresponses\n\t\t\t});\n\t\t}\n\t});\n}\nvar DefaultEmbedManyResult = class {\n\tconstructor(options) {\n\t\tthis.values = options.values;\n\t\tthis.embeddings = options.embeddings;\n\t\tthis.usage = options.usage;\n\t\tthis.providerMetadata = options.providerMetadata;\n\t\tthis.responses = options.responses;\n\t}\n};\nasync function generateImage({ model: modelArg, prompt, n = 1, maxImagesPerCall, size, aspectRatio, seed, providerOptions, maxRetries: maxRetriesArg, abortSignal, headers }) {\n\tvar _a16;\n\tconst model = resolveImageModel(modelArg);\n\tconst headersWithUserAgent = withUserAgentSuffix(headers != null ? headers : {}, `ai/${VERSION}`);\n\tconst { retry } = prepareRetries({\n\t\tmaxRetries: maxRetriesArg,\n\t\tabortSignal\n\t});\n\tconst maxImagesPerCallWithDefault = (_a16 = maxImagesPerCall != null ? maxImagesPerCall : await invokeModelMaxImagesPerCall(model)) != null ? _a16 : 1;\n\tconst callCount = Math.ceil(n / maxImagesPerCallWithDefault);\n\tconst callImageCounts = Array.from({ length: callCount }, (_, i) => {\n\t\tif (i < callCount - 1) return maxImagesPerCallWithDefault;\n\t\tconst remainder = n % maxImagesPerCallWithDefault;\n\t\treturn remainder === 0 ? maxImagesPerCallWithDefault : remainder;\n\t});\n\tconst results = await Promise.all(callImageCounts.map(async (callImageCount) => retry(() => model.doGenerate({\n\t\tprompt,\n\t\tn: callImageCount,\n\t\tabortSignal,\n\t\theaders: headersWithUserAgent,\n\t\tsize,\n\t\taspectRatio,\n\t\tseed,\n\t\tproviderOptions: providerOptions != null ? providerOptions : {}\n\t}))));\n\tconst images = [];\n\tconst warnings = [];\n\tconst responses = [];\n\tconst providerMetadata = {};\n\tfor (const result of results) {\n\t\timages.push(...result.images.map((image) => {\n\t\t\tvar _a17;\n\t\t\treturn new DefaultGeneratedFile({\n\t\t\t\tdata: image,\n\t\t\t\tmediaType: (_a17 = detectMediaType({\n\t\t\t\t\tdata: image,\n\t\t\t\t\tsignatures: imageMediaTypeSignatures\n\t\t\t\t})) != null ? _a17 : \"image/png\"\n\t\t\t});\n\t\t}));\n\t\twarnings.push(...result.warnings);\n\t\tif (result.providerMetadata) for (const [providerName, metadata] of Object.entries(result.providerMetadata)) if (providerName === \"gateway\") {\n\t\t\tconst currentEntry = providerMetadata[providerName];\n\t\t\tif (currentEntry != null && typeof currentEntry === \"object\") providerMetadata[providerName] = {\n\t\t\t\t...currentEntry,\n\t\t\t\t...metadata\n\t\t\t};\n\t\t\telse providerMetadata[providerName] = metadata;\n\t\t\tconst imagesValue = providerMetadata[providerName].images;\n\t\t\tif (Array.isArray(imagesValue) && imagesValue.length === 0) delete providerMetadata[providerName].images;\n\t\t} else {\n\t\t\tproviderMetadata[providerName] ?? (providerMetadata[providerName] = { images: [] });\n\t\t\tproviderMetadata[providerName].images.push(...result.providerMetadata[providerName].images);\n\t\t}\n\t\tresponses.push(result.response);\n\t}\n\tlogWarnings(warnings);\n\tif (!images.length) throw new NoImageGeneratedError({ responses });\n\treturn new DefaultGenerateImageResult({\n\t\timages,\n\t\twarnings,\n\t\tresponses,\n\t\tproviderMetadata\n\t});\n}\nvar DefaultGenerateImageResult = class {\n\tconstructor(options) {\n\t\tthis.images = options.images;\n\t\tthis.warnings = options.warnings;\n\t\tthis.responses = options.responses;\n\t\tthis.providerMetadata = options.providerMetadata;\n\t}\n\tget image() {\n\t\treturn this.images[0];\n\t}\n};\nasync function invokeModelMaxImagesPerCall(model) {\n\tif (!(model.maxImagesPerCall instanceof Function)) return model.maxImagesPerCall;\n\treturn model.maxImagesPerCall({ modelId: model.modelId });\n}\nfunction extractReasoningContent(content) {\n\tconst parts = content.filter((content2) => content2.type === \"reasoning\");\n\treturn parts.length === 0 ? void 0 : parts.map((content2) => content2.text).join(\"\\n\");\n}\nvar noSchemaOutputStrategy = {\n\ttype: \"no-schema\",\n\tjsonSchema: void 0,\n\tasync validatePartialResult({ value, textDelta }) {\n\t\treturn {\n\t\t\tsuccess: true,\n\t\t\tvalue: {\n\t\t\t\tpartial: value,\n\t\t\t\ttextDelta\n\t\t\t}\n\t\t};\n\t},\n\tasync validateFinalResult(value, context) {\n\t\treturn value === void 0 ? {\n\t\t\tsuccess: false,\n\t\t\terror: new NoObjectGeneratedError({\n\t\t\t\tmessage: \"No object generated: response did not match schema.\",\n\t\t\t\ttext: context.text,\n\t\t\t\tresponse: context.response,\n\t\t\t\tusage: context.usage,\n\t\t\t\tfinishReason: context.finishReason\n\t\t\t})\n\t\t} : {\n\t\t\tsuccess: true,\n\t\t\tvalue\n\t\t};\n\t},\n\tcreateElementStream() {\n\t\tthrow new UnsupportedFunctionalityError({ functionality: \"element streams in no-schema mode\" });\n\t}\n};\nvar objectOutputStrategy = (schema) => ({\n\ttype: \"object\",\n\tjsonSchema: schema.jsonSchema,\n\tasync validatePartialResult({ value, textDelta }) {\n\t\treturn {\n\t\t\tsuccess: true,\n\t\t\tvalue: {\n\t\t\t\tpartial: value,\n\t\t\t\ttextDelta\n\t\t\t}\n\t\t};\n\t},\n\tasync validateFinalResult(value) {\n\t\treturn safeValidateTypes({\n\t\t\tvalue,\n\t\t\tschema\n\t\t});\n\t},\n\tcreateElementStream() {\n\t\tthrow new UnsupportedFunctionalityError({ functionality: \"element streams in object mode\" });\n\t}\n});\nvar arrayOutputStrategy = (schema) => {\n\tconst { $schema, ...itemSchema } = schema.jsonSchema;\n\treturn {\n\t\ttype: \"array\",\n\t\tjsonSchema: {\n\t\t\t$schema: \"http://json-schema.org/draft-07/schema#\",\n\t\t\ttype: \"object\",\n\t\t\tproperties: { elements: {\n\t\t\t\ttype: \"array\",\n\t\t\t\titems: itemSchema\n\t\t\t} },\n\t\t\trequired: [\"elements\"],\n\t\t\tadditionalProperties: false\n\t\t},\n\t\tasync validatePartialResult({ value, latestObject, isFirstDelta, isFinalDelta }) {\n\t\t\tvar _a16;\n\t\t\tif (!isJSONObject(value) || !isJSONArray(value.elements)) return {\n\t\t\t\tsuccess: false,\n\t\t\t\terror: new TypeValidationError({\n\t\t\t\t\tvalue,\n\t\t\t\t\tcause: \"value must be an object that contains an array of elements\"\n\t\t\t\t})\n\t\t\t};\n\t\t\tconst inputArray = value.elements;\n\t\t\tconst resultArray = [];\n\t\t\tfor (let i = 0; i < inputArray.length; i++) {\n\t\t\t\tconst element = inputArray[i];\n\t\t\t\tconst result = await safeValidateTypes({\n\t\t\t\t\tvalue: element,\n\t\t\t\t\tschema\n\t\t\t\t});\n\t\t\t\tif (i === inputArray.length - 1 && !isFinalDelta) continue;\n\t\t\t\tif (!result.success) return result;\n\t\t\t\tresultArray.push(result.value);\n\t\t\t}\n\t\t\tconst publishedElementCount = (_a16 = latestObject == null ? void 0 : latestObject.length) != null ? _a16 : 0;\n\t\t\tlet textDelta = \"\";\n\t\t\tif (isFirstDelta) textDelta += \"[\";\n\t\t\tif (publishedElementCount > 0) textDelta += \",\";\n\t\t\ttextDelta += resultArray.slice(publishedElementCount).map((element) => JSON.stringify(element)).join(\",\");\n\t\t\tif (isFinalDelta) textDelta += \"]\";\n\t\t\treturn {\n\t\t\t\tsuccess: true,\n\t\t\t\tvalue: {\n\t\t\t\t\tpartial: resultArray,\n\t\t\t\t\ttextDelta\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\t\tasync validateFinalResult(value) {\n\t\t\tif (!isJSONObject(value) || !isJSONArray(value.elements)) return {\n\t\t\t\tsuccess: false,\n\t\t\t\terror: new TypeValidationError({\n\t\t\t\t\tvalue,\n\t\t\t\t\tcause: \"value must be an object that contains an array of elements\"\n\t\t\t\t})\n\t\t\t};\n\t\t\tconst inputArray = value.elements;\n\t\t\tconst resultArray = [];\n\t\t\tfor (const element of inputArray) {\n\t\t\t\tconst result = await safeValidateTypes({\n\t\t\t\t\tvalue: element,\n\t\t\t\t\tschema\n\t\t\t\t});\n\t\t\t\tif (!result.success) return result;\n\t\t\t\tresultArray.push(result.value);\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tsuccess: true,\n\t\t\t\tvalue: resultArray\n\t\t\t};\n\t\t},\n\t\tcreateElementStream(originalStream) {\n\t\t\tlet publishedElements = 0;\n\t\t\treturn createAsyncIterableStream(originalStream.pipeThrough(new TransformStream({ transform(chunk, controller) {\n\t\t\t\tswitch (chunk.type) {\n\t\t\t\t\tcase \"object\": {\n\t\t\t\t\t\tconst array = chunk.object;\n\t\t\t\t\t\tfor (; publishedElements < array.length; publishedElements++) controller.enqueue(array[publishedElements]);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcase \"text-delta\":\n\t\t\t\t\tcase \"finish\":\n\t\t\t\t\tcase \"error\": break;\n\t\t\t\t\tdefault: throw new Error(`Unsupported chunk type: ${chunk}`);\n\t\t\t\t}\n\t\t\t} })));\n\t\t}\n\t};\n};\nvar enumOutputStrategy = (enumValues) => {\n\treturn {\n\t\ttype: \"enum\",\n\t\tjsonSchema: {\n\t\t\t$schema: \"http://json-schema.org/draft-07/schema#\",\n\t\t\ttype: \"object\",\n\t\t\tproperties: { result: {\n\t\t\t\ttype: \"string\",\n\t\t\t\tenum: enumValues\n\t\t\t} },\n\t\t\trequired: [\"result\"],\n\t\t\tadditionalProperties: false\n\t\t},\n\t\tasync validateFinalResult(value) {\n\t\t\tif (!isJSONObject(value) || typeof value.result !== \"string\") return {\n\t\t\t\tsuccess: false,\n\t\t\t\terror: new TypeValidationError({\n\t\t\t\t\tvalue,\n\t\t\t\t\tcause: \"value must be an object that contains a string in the \\\"result\\\" property.\"\n\t\t\t\t})\n\t\t\t};\n\t\t\tconst result = value.result;\n\t\t\treturn enumValues.includes(result) ? {\n\t\t\t\tsuccess: true,\n\t\t\t\tvalue: result\n\t\t\t} : {\n\t\t\t\tsuccess: false,\n\t\t\t\terror: new TypeValidationError({\n\t\t\t\t\tvalue,\n\t\t\t\t\tcause: \"value must be a string in the enum\"\n\t\t\t\t})\n\t\t\t};\n\t\t},\n\t\tasync validatePartialResult({ value, textDelta }) {\n\t\t\tif (!isJSONObject(value) || typeof value.result !== \"string\") return {\n\t\t\t\tsuccess: false,\n\t\t\t\terror: new TypeValidationError({\n\t\t\t\t\tvalue,\n\t\t\t\t\tcause: \"value must be an object that contains a string in the \\\"result\\\" property.\"\n\t\t\t\t})\n\t\t\t};\n\t\t\tconst result = value.result;\n\t\t\tconst possibleEnumValues = enumValues.filter((enumValue) => enumValue.startsWith(result));\n\t\t\tif (value.result.length === 0 || possibleEnumValues.length === 0) return {\n\t\t\t\tsuccess: false,\n\t\t\t\terror: new TypeValidationError({\n\t\t\t\t\tvalue,\n\t\t\t\t\tcause: \"value must be a string in the enum\"\n\t\t\t\t})\n\t\t\t};\n\t\t\treturn {\n\t\t\t\tsuccess: true,\n\t\t\t\tvalue: {\n\t\t\t\t\tpartial: possibleEnumValues.length > 1 ? result : possibleEnumValues[0],\n\t\t\t\t\ttextDelta\n\t\t\t\t}\n\t\t\t};\n\t\t},\n\t\tcreateElementStream() {\n\t\t\tthrow new UnsupportedFunctionalityError({ functionality: \"element streams in enum mode\" });\n\t\t}\n\t};\n};\nfunction getOutputStrategy({ output, schema, enumValues }) {\n\tswitch (output) {\n\t\tcase \"object\": return objectOutputStrategy(asSchema(schema));\n\t\tcase \"array\": return arrayOutputStrategy(asSchema(schema));\n\t\tcase \"enum\": return enumOutputStrategy(enumValues);\n\t\tcase \"no-schema\": return noSchemaOutputStrategy;\n\t\tdefault: throw new Error(`Unsupported output: ${output}`);\n\t}\n}\nasync function parseAndValidateObjectResult(result, outputStrategy, context) {\n\tconst parseResult = await safeParseJSON({ text: result });\n\tif (!parseResult.success) throw new NoObjectGeneratedError({\n\t\tmessage: \"No object generated: could not parse the response.\",\n\t\tcause: parseResult.error,\n\t\ttext: result,\n\t\tresponse: context.response,\n\t\tusage: context.usage,\n\t\tfinishReason: context.finishReason\n\t});\n\tconst validationResult = await outputStrategy.validateFinalResult(parseResult.value, {\n\t\ttext: result,\n\t\tresponse: context.response,\n\t\tusage: context.usage\n\t});\n\tif (!validationResult.success) throw new NoObjectGeneratedError({\n\t\tmessage: \"No object generated: response did not match schema.\",\n\t\tcause: validationResult.error,\n\t\ttext: result,\n\t\tresponse: context.response,\n\t\tusage: context.usage,\n\t\tfinishReason: context.finishReason\n\t});\n\treturn validationResult.value;\n}\nasync function parseAndValidateObjectResultWithRepair(result, outputStrategy, repairText, context) {\n\ttry {\n\t\treturn await parseAndValidateObjectResult(result, outputStrategy, context);\n\t} catch (error) {\n\t\tif (repairText != null && NoObjectGeneratedError.isInstance(error) && (JSONParseError.isInstance(error.cause) || TypeValidationError.isInstance(error.cause))) {\n\t\t\tconst repairedText = await repairText({\n\t\t\t\ttext: result,\n\t\t\t\terror: error.cause\n\t\t\t});\n\t\t\tif (repairedText === null) throw error;\n\t\t\treturn await parseAndValidateObjectResult(repairedText, outputStrategy, context);\n\t\t}\n\t\tthrow error;\n\t}\n}\nfunction validateObjectGenerationInput({ output, schema, schemaName, schemaDescription, enumValues }) {\n\tif (output != null && output !== \"object\" && output !== \"array\" && output !== \"enum\" && output !== \"no-schema\") throw new InvalidArgumentError({\n\t\tparameter: \"output\",\n\t\tvalue: output,\n\t\tmessage: \"Invalid output type.\"\n\t});\n\tif (output === \"no-schema\") {\n\t\tif (schema != null) throw new InvalidArgumentError({\n\t\t\tparameter: \"schema\",\n\t\t\tvalue: schema,\n\t\t\tmessage: \"Schema is not supported for no-schema output.\"\n\t\t});\n\t\tif (schemaDescription != null) throw new InvalidArgumentError({\n\t\t\tparameter: \"schemaDescription\",\n\t\t\tvalue: schemaDescription,\n\t\t\tmessage: \"Schema description is not supported for no-schema output.\"\n\t\t});\n\t\tif (schemaName != null) throw new InvalidArgumentError({\n\t\t\tparameter: \"schemaName\",\n\t\t\tvalue: schemaName,\n\t\t\tmessage: \"Schema name is not supported for no-schema output.\"\n\t\t});\n\t\tif (enumValues != null) throw new InvalidArgumentError({\n\t\t\tparameter: \"enumValues\",\n\t\t\tvalue: enumValues,\n\t\t\tmessage: \"Enum values are not supported for no-schema output.\"\n\t\t});\n\t}\n\tif (output === \"object\") {\n\t\tif (schema == null) throw new InvalidArgumentError({\n\t\t\tparameter: \"schema\",\n\t\t\tvalue: schema,\n\t\t\tmessage: \"Schema is required for object output.\"\n\t\t});\n\t\tif (enumValues != null) throw new InvalidArgumentError({\n\t\t\tparameter: \"enumValues\",\n\t\t\tvalue: enumValues,\n\t\t\tmessage: \"Enum values are not supported for object output.\"\n\t\t});\n\t}\n\tif (output === \"array\") {\n\t\tif (schema == null) throw new InvalidArgumentError({\n\t\t\tparameter: \"schema\",\n\t\t\tvalue: schema,\n\t\t\tmessage: \"Element schema is required for array output.\"\n\t\t});\n\t\tif (enumValues != null) throw new InvalidArgumentError({\n\t\t\tparameter: \"enumValues\",\n\t\t\tvalue: enumValues,\n\t\t\tmessage: \"Enum values are not supported for array output.\"\n\t\t});\n\t}\n\tif (output === \"enum\") {\n\t\tif (schema != null) throw new InvalidArgumentError({\n\t\t\tparameter: \"schema\",\n\t\t\tvalue: schema,\n\t\t\tmessage: \"Schema is not supported for enum output.\"\n\t\t});\n\t\tif (schemaDescription != null) throw new InvalidArgumentError({\n\t\t\tparameter: \"schemaDescription\",\n\t\t\tvalue: schemaDescription,\n\t\t\tmessage: \"Schema description is not supported for enum output.\"\n\t\t});\n\t\tif (schemaName != null) throw new InvalidArgumentError({\n\t\t\tparameter: \"schemaName\",\n\t\t\tvalue: schemaName,\n\t\t\tmessage: \"Schema name is not supported for enum output.\"\n\t\t});\n\t\tif (enumValues == null) throw new InvalidArgumentError({\n\t\t\tparameter: \"enumValues\",\n\t\t\tvalue: enumValues,\n\t\t\tmessage: \"Enum values are required for enum output.\"\n\t\t});\n\t\tfor (const value of enumValues) if (typeof value !== \"string\") throw new InvalidArgumentError({\n\t\t\tparameter: \"enumValues\",\n\t\t\tvalue,\n\t\t\tmessage: \"Enum values must be strings.\"\n\t\t});\n\t}\n}\nvar originalGenerateId3 = createIdGenerator({\n\tprefix: \"aiobj\",\n\tsize: 24\n});\nasync function generateObject(options) {\n\tconst { model: modelArg, output = \"object\", system, prompt, messages, allowSystemInMessages, maxRetries: maxRetriesArg, abortSignal, headers, experimental_repairText: repairText, experimental_telemetry: telemetry, experimental_download: download2, providerOptions, _internal: { generateId: generateId3 = originalGenerateId3, currentDate = () => /* @__PURE__ */ new Date() } = {}, ...settings } = options;\n\tconst model = resolveLanguageModel(modelArg);\n\tconst enumValues = \"enum\" in options ? options.enum : void 0;\n\tconst { schema: inputSchema, schemaDescription, schemaName } = \"schema\" in options ? options : {};\n\tvalidateObjectGenerationInput({\n\t\toutput,\n\t\tschema: inputSchema,\n\t\tschemaName,\n\t\tschemaDescription,\n\t\tenumValues\n\t});\n\tconst { maxRetries, retry } = prepareRetries({\n\t\tmaxRetries: maxRetriesArg,\n\t\tabortSignal\n\t});\n\tconst outputStrategy = getOutputStrategy({\n\t\toutput,\n\t\tschema: inputSchema,\n\t\tenumValues\n\t});\n\tconst callSettings = prepareCallSettings(settings);\n\tconst headersWithUserAgent = withUserAgentSuffix(headers != null ? headers : {}, `ai/${VERSION}`);\n\tconst baseTelemetryAttributes = getBaseTelemetryAttributes({\n\t\tmodel,\n\t\ttelemetry,\n\t\theaders: headersWithUserAgent,\n\t\tsettings: {\n\t\t\t...callSettings,\n\t\t\tmaxRetries\n\t\t}\n\t});\n\tconst tracer = getTracer(telemetry);\n\ttry {\n\t\treturn await recordSpan({\n\t\t\tname: \"ai.generateObject\",\n\t\t\tattributes: selectTelemetryAttributes({\n\t\t\t\ttelemetry,\n\t\t\t\tattributes: {\n\t\t\t\t\t...assembleOperationName({\n\t\t\t\t\t\toperationId: \"ai.generateObject\",\n\t\t\t\t\t\ttelemetry\n\t\t\t\t\t}),\n\t\t\t\t\t...baseTelemetryAttributes,\n\t\t\t\t\t\"ai.prompt\": { input: () => JSON.stringify({\n\t\t\t\t\t\tsystem,\n\t\t\t\t\t\tprompt,\n\t\t\t\t\t\tmessages\n\t\t\t\t\t}) },\n\t\t\t\t\t\"ai.schema\": outputStrategy.jsonSchema != null ? { input: () => JSON.stringify(outputStrategy.jsonSchema) } : void 0,\n\t\t\t\t\t\"ai.schema.name\": schemaName,\n\t\t\t\t\t\"ai.schema.description\": schemaDescription,\n\t\t\t\t\t\"ai.settings.output\": outputStrategy.type\n\t\t\t\t}\n\t\t\t}),\n\t\t\ttracer,\n\t\t\tfn: async (span) => {\n\t\t\t\tvar _a16;\n\t\t\t\tlet result;\n\t\t\t\tlet finishReason;\n\t\t\t\tlet usage;\n\t\t\t\tlet warnings;\n\t\t\t\tlet response;\n\t\t\t\tlet request;\n\t\t\t\tlet resultProviderMetadata;\n\t\t\t\tlet reasoning;\n\t\t\t\tconst promptMessages = await convertToLanguageModelPrompt({\n\t\t\t\t\tprompt: await standardizePrompt({\n\t\t\t\t\t\tsystem,\n\t\t\t\t\t\tprompt,\n\t\t\t\t\t\tmessages,\n\t\t\t\t\t\tallowSystemInMessages\n\t\t\t\t\t}),\n\t\t\t\t\tsupportedUrls: await model.supportedUrls,\n\t\t\t\t\tdownload: download2\n\t\t\t\t});\n\t\t\t\tconst generateResult = await retry(() => recordSpan({\n\t\t\t\t\tname: \"ai.generateObject.doGenerate\",\n\t\t\t\t\tattributes: selectTelemetryAttributes({\n\t\t\t\t\t\ttelemetry,\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t...assembleOperationName({\n\t\t\t\t\t\t\t\toperationId: \"ai.generateObject.doGenerate\",\n\t\t\t\t\t\t\t\ttelemetry\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t...baseTelemetryAttributes,\n\t\t\t\t\t\t\t\"ai.prompt.messages\": { input: () => stringifyForTelemetry(promptMessages) },\n\t\t\t\t\t\t\t\"gen_ai.system\": model.provider,\n\t\t\t\t\t\t\t\"gen_ai.request.model\": model.modelId,\n\t\t\t\t\t\t\t\"gen_ai.request.frequency_penalty\": callSettings.frequencyPenalty,\n\t\t\t\t\t\t\t\"gen_ai.request.max_tokens\": callSettings.maxOutputTokens,\n\t\t\t\t\t\t\t\"gen_ai.request.presence_penalty\": callSettings.presencePenalty,\n\t\t\t\t\t\t\t\"gen_ai.request.temperature\": callSettings.temperature,\n\t\t\t\t\t\t\t\"gen_ai.request.top_k\": callSettings.topK,\n\t\t\t\t\t\t\t\"gen_ai.request.top_p\": callSettings.topP\n\t\t\t\t\t\t}\n\t\t\t\t\t}),\n\t\t\t\t\ttracer,\n\t\t\t\t\tfn: async (span2) => {\n\t\t\t\t\t\tvar _a17, _b, _c, _d, _e, _f, _g, _h;\n\t\t\t\t\t\tconst result2 = await model.doGenerate({\n\t\t\t\t\t\t\tresponseFormat: {\n\t\t\t\t\t\t\t\ttype: \"json\",\n\t\t\t\t\t\t\t\tschema: outputStrategy.jsonSchema,\n\t\t\t\t\t\t\t\tname: schemaName,\n\t\t\t\t\t\t\t\tdescription: schemaDescription\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t...prepareCallSettings(settings),\n\t\t\t\t\t\t\tprompt: promptMessages,\n\t\t\t\t\t\t\tproviderOptions,\n\t\t\t\t\t\t\tabortSignal,\n\t\t\t\t\t\t\theaders: headersWithUserAgent\n\t\t\t\t\t\t});\n\t\t\t\t\t\tconst responseData = {\n\t\t\t\t\t\t\tid: (_b = (_a17 = result2.response) == null ? void 0 : _a17.id) != null ? _b : generateId3(),\n\t\t\t\t\t\t\ttimestamp: (_d = (_c = result2.response) == null ? void 0 : _c.timestamp) != null ? _d : currentDate(),\n\t\t\t\t\t\t\tmodelId: (_f = (_e = result2.response) == null ? void 0 : _e.modelId) != null ? _f : model.modelId,\n\t\t\t\t\t\t\theaders: (_g = result2.response) == null ? void 0 : _g.headers,\n\t\t\t\t\t\t\tbody: (_h = result2.response) == null ? void 0 : _h.body\n\t\t\t\t\t\t};\n\t\t\t\t\t\tconst text2 = extractTextContent(result2.content);\n\t\t\t\t\t\tconst reasoning2 = extractReasoningContent(result2.content);\n\t\t\t\t\t\tif (text2 === void 0) throw new NoObjectGeneratedError({\n\t\t\t\t\t\t\tmessage: \"No object generated: the model did not return a response.\",\n\t\t\t\t\t\t\tresponse: responseData,\n\t\t\t\t\t\t\tusage: result2.usage,\n\t\t\t\t\t\t\tfinishReason: result2.finishReason\n\t\t\t\t\t\t});\n\t\t\t\t\t\tspan2.setAttributes(selectTelemetryAttributes({\n\t\t\t\t\t\t\ttelemetry,\n\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\"ai.response.finishReason\": result2.finishReason,\n\t\t\t\t\t\t\t\t\"ai.response.object\": { output: () => text2 },\n\t\t\t\t\t\t\t\t\"ai.response.id\": responseData.id,\n\t\t\t\t\t\t\t\t\"ai.response.model\": responseData.modelId,\n\t\t\t\t\t\t\t\t\"ai.response.timestamp\": responseData.timestamp.toISOString(),\n\t\t\t\t\t\t\t\t\"ai.response.providerMetadata\": JSON.stringify(result2.providerMetadata),\n\t\t\t\t\t\t\t\t\"ai.usage.promptTokens\": result2.usage.inputTokens,\n\t\t\t\t\t\t\t\t\"ai.usage.completionTokens\": result2.usage.outputTokens,\n\t\t\t\t\t\t\t\t\"gen_ai.response.finish_reasons\": [result2.finishReason],\n\t\t\t\t\t\t\t\t\"gen_ai.response.id\": responseData.id,\n\t\t\t\t\t\t\t\t\"gen_ai.response.model\": responseData.modelId,\n\t\t\t\t\t\t\t\t\"gen_ai.usage.input_tokens\": result2.usage.inputTokens,\n\t\t\t\t\t\t\t\t\"gen_ai.usage.output_tokens\": result2.usage.outputTokens\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}));\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...result2,\n\t\t\t\t\t\t\tobjectText: text2,\n\t\t\t\t\t\t\treasoning: reasoning2,\n\t\t\t\t\t\t\tresponseData\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}));\n\t\t\t\tresult = generateResult.objectText;\n\t\t\t\tfinishReason = generateResult.finishReason;\n\t\t\t\tusage = generateResult.usage;\n\t\t\t\twarnings = generateResult.warnings;\n\t\t\t\tresultProviderMetadata = generateResult.providerMetadata;\n\t\t\t\trequest = (_a16 = generateResult.request) != null ? _a16 : {};\n\t\t\t\tresponse = generateResult.responseData;\n\t\t\t\treasoning = generateResult.reasoning;\n\t\t\t\tlogWarnings(warnings);\n\t\t\t\tconst object2 = await parseAndValidateObjectResultWithRepair(result, outputStrategy, repairText, {\n\t\t\t\t\tresponse,\n\t\t\t\t\tusage,\n\t\t\t\t\tfinishReason\n\t\t\t\t});\n\t\t\t\tspan.setAttributes(selectTelemetryAttributes({\n\t\t\t\t\ttelemetry,\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\"ai.response.finishReason\": finishReason,\n\t\t\t\t\t\t\"ai.response.object\": { output: () => JSON.stringify(object2) },\n\t\t\t\t\t\t\"ai.response.providerMetadata\": JSON.stringify(resultProviderMetadata),\n\t\t\t\t\t\t\"ai.usage.promptTokens\": usage.inputTokens,\n\t\t\t\t\t\t\"ai.usage.completionTokens\": usage.outputTokens\n\t\t\t\t\t}\n\t\t\t\t}));\n\t\t\t\treturn new DefaultGenerateObjectResult({\n\t\t\t\t\tobject: object2,\n\t\t\t\t\treasoning,\n\t\t\t\t\tfinishReason,\n\t\t\t\t\tusage,\n\t\t\t\t\twarnings,\n\t\t\t\t\trequest,\n\t\t\t\t\tresponse,\n\t\t\t\t\tproviderMetadata: resultProviderMetadata\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t} catch (error) {\n\t\tthrow wrapGatewayError(error);\n\t}\n}\nvar DefaultGenerateObjectResult = class {\n\tconstructor(options) {\n\t\tthis.object = options.object;\n\t\tthis.finishReason = options.finishReason;\n\t\tthis.usage = options.usage;\n\t\tthis.warnings = options.warnings;\n\t\tthis.providerMetadata = options.providerMetadata;\n\t\tthis.response = options.response;\n\t\tthis.request = options.request;\n\t\tthis.reasoning = options.reasoning;\n\t}\n\ttoJsonResponse(init) {\n\t\tvar _a16;\n\t\treturn new Response(JSON.stringify(this.object), {\n\t\t\tstatus: (_a16 = init == null ? void 0 : init.status) != null ? _a16 : 200,\n\t\t\theaders: prepareHeaders(init == null ? void 0 : init.headers, { \"content-type\": \"application/json; charset=utf-8\" })\n\t\t});\n\t}\n};\nfunction cosineSimilarity(vector1, vector2) {\n\tif (vector1.length !== vector2.length) throw new InvalidArgumentError({\n\t\tparameter: \"vector1,vector2\",\n\t\tvalue: {\n\t\t\tvector1Length: vector1.length,\n\t\t\tvector2Length: vector2.length\n\t\t},\n\t\tmessage: `Vectors must have the same length`\n\t});\n\tconst n = vector1.length;\n\tif (n === 0) return 0;\n\tlet magnitudeSquared1 = 0;\n\tlet magnitudeSquared2 = 0;\n\tlet dotProduct = 0;\n\tfor (let i = 0; i < n; i++) {\n\t\tconst value1 = vector1[i];\n\t\tconst value2 = vector2[i];\n\t\tmagnitudeSquared1 += value1 * value1;\n\t\tmagnitudeSquared2 += value2 * value2;\n\t\tdotProduct += value1 * value2;\n\t}\n\treturn magnitudeSquared1 === 0 || magnitudeSquared2 === 0 ? 0 : dotProduct / (Math.sqrt(magnitudeSquared1) * Math.sqrt(magnitudeSquared2));\n}\nfunction createDownload(options) {\n\treturn ({ url, abortSignal }) => download({\n\t\turl,\n\t\tmaxBytes: options == null ? void 0 : options.maxBytes,\n\t\tabortSignal\n\t});\n}\nfunction getTextFromDataUrl(dataUrl) {\n\tconst [header, base64Content] = dataUrl.split(\",\");\n\tif (header.split(\";\")[0].split(\":\")[1] == null || base64Content == null) throw new Error(\"Invalid data URL format\");\n\ttry {\n\t\treturn window.atob(base64Content);\n\t} catch (error) {\n\t\tthrow new Error(`Error decoding data URL`);\n\t}\n}\nfunction isDeepEqualData(obj1, obj2) {\n\tif (obj1 === obj2) return true;\n\tif (obj1 == null || obj2 == null) return false;\n\tif (typeof obj1 !== \"object\" && typeof obj2 !== \"object\") return obj1 === obj2;\n\tif (obj1.constructor !== obj2.constructor) return false;\n\tif (obj1 instanceof Date && obj2 instanceof Date) return obj1.getTime() === obj2.getTime();\n\tif (Array.isArray(obj1)) {\n\t\tif (obj1.length !== obj2.length) return false;\n\t\tfor (let i = 0; i < obj1.length; i++) if (!isDeepEqualData(obj1[i], obj2[i])) return false;\n\t\treturn true;\n\t}\n\tconst keys1 = Object.keys(obj1);\n\tconst keys2 = Object.keys(obj2);\n\tif (keys1.length !== keys2.length) return false;\n\tfor (const key of keys1) {\n\t\tif (!keys2.includes(key)) return false;\n\t\tif (!isDeepEqualData(obj1[key], obj2[key])) return false;\n\t}\n\treturn true;\n}\nvar SerialJobExecutor = class {\n\tconstructor() {\n\t\tthis.queue = [];\n\t\tthis.isProcessing = false;\n\t}\n\tasync processQueue() {\n\t\tif (this.isProcessing) return;\n\t\tthis.isProcessing = true;\n\t\twhile (this.queue.length > 0) {\n\t\t\tawait this.queue[0]();\n\t\t\tthis.queue.shift();\n\t\t}\n\t\tthis.isProcessing = false;\n\t}\n\tasync run(job) {\n\t\treturn new Promise((resolve2, reject) => {\n\t\t\tthis.queue.push(async () => {\n\t\t\t\ttry {\n\t\t\t\t\tawait job();\n\t\t\t\t\tresolve2();\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.processQueue();\n\t\t});\n\t}\n};\nfunction simulateReadableStream({ chunks, initialDelayInMs = 0, chunkDelayInMs = 0, _internal }) {\n\tvar _a16;\n\tconst delay2 = (_a16 = _internal == null ? void 0 : _internal.delay) != null ? _a16 : delay;\n\tlet index = 0;\n\treturn new ReadableStream({ async pull(controller) {\n\t\tif (index < chunks.length) {\n\t\t\tawait delay2(index === 0 ? initialDelayInMs : chunkDelayInMs);\n\t\t\tcontroller.enqueue(chunks[index++]);\n\t\t} else controller.close();\n\t} });\n}\nvar originalGenerateId4 = createIdGenerator({\n\tprefix: \"aiobj\",\n\tsize: 24\n});\nfunction streamObject(options) {\n\tconst { model, output = \"object\", system, prompt, messages, allowSystemInMessages, maxRetries, abortSignal, headers, experimental_repairText: repairText, experimental_telemetry: telemetry, experimental_download: download2, providerOptions, onError = ({ error }) => {\n\t\tconsole.error(error);\n\t}, onFinish, _internal: { generateId: generateId3 = originalGenerateId4, currentDate = () => /* @__PURE__ */ new Date(), now: now2 = now } = {}, ...settings } = options;\n\tconst enumValues = \"enum\" in options && options.enum ? options.enum : void 0;\n\tconst { schema: inputSchema, schemaDescription, schemaName } = \"schema\" in options ? options : {};\n\tvalidateObjectGenerationInput({\n\t\toutput,\n\t\tschema: inputSchema,\n\t\tschemaName,\n\t\tschemaDescription,\n\t\tenumValues\n\t});\n\treturn new DefaultStreamObjectResult({\n\t\tmodel,\n\t\ttelemetry,\n\t\theaders,\n\t\tsettings,\n\t\tmaxRetries,\n\t\tabortSignal,\n\t\toutputStrategy: getOutputStrategy({\n\t\t\toutput,\n\t\t\tschema: inputSchema,\n\t\t\tenumValues\n\t\t}),\n\t\tsystem,\n\t\tprompt,\n\t\tmessages,\n\t\tallowSystemInMessages,\n\t\tschemaName,\n\t\tschemaDescription,\n\t\tproviderOptions,\n\t\trepairText,\n\t\tonError,\n\t\tonFinish,\n\t\tdownload: download2,\n\t\tgenerateId: generateId3,\n\t\tcurrentDate,\n\t\tnow: now2\n\t});\n}\nvar DefaultStreamObjectResult = class {\n\tconstructor({ model: modelArg, headers, telemetry, settings, maxRetries: maxRetriesArg, abortSignal, outputStrategy, system, prompt, messages, allowSystemInMessages, schemaName, schemaDescription, providerOptions, repairText, onError, onFinish, download: download2, generateId: generateId3, currentDate, now: now2 }) {\n\t\tthis._object = new DelayedPromise();\n\t\tthis._usage = new DelayedPromise();\n\t\tthis._providerMetadata = new DelayedPromise();\n\t\tthis._warnings = new DelayedPromise();\n\t\tthis._request = new DelayedPromise();\n\t\tthis._response = new DelayedPromise();\n\t\tthis._finishReason = new DelayedPromise();\n\t\tconst model = resolveLanguageModel(modelArg);\n\t\tconst { maxRetries, retry } = prepareRetries({\n\t\t\tmaxRetries: maxRetriesArg,\n\t\t\tabortSignal\n\t\t});\n\t\tconst callSettings = prepareCallSettings(settings);\n\t\tconst baseTelemetryAttributes = getBaseTelemetryAttributes({\n\t\t\tmodel,\n\t\t\ttelemetry,\n\t\t\theaders,\n\t\t\tsettings: {\n\t\t\t\t...callSettings,\n\t\t\t\tmaxRetries\n\t\t\t}\n\t\t});\n\t\tconst tracer = getTracer(telemetry);\n\t\tconst self = this;\n\t\tconst stitchableStream = createStitchableStream();\n\t\tconst eventProcessor = new TransformStream({ transform(chunk, controller) {\n\t\t\tcontroller.enqueue(chunk);\n\t\t\tif (chunk.type === \"error\") onError({ error: wrapGatewayError(chunk.error) });\n\t\t} });\n\t\tthis.baseStream = stitchableStream.stream.pipeThrough(eventProcessor);\n\t\trecordSpan({\n\t\t\tname: \"ai.streamObject\",\n\t\t\tattributes: selectTelemetryAttributes({\n\t\t\t\ttelemetry,\n\t\t\t\tattributes: {\n\t\t\t\t\t...assembleOperationName({\n\t\t\t\t\t\toperationId: \"ai.streamObject\",\n\t\t\t\t\t\ttelemetry\n\t\t\t\t\t}),\n\t\t\t\t\t...baseTelemetryAttributes,\n\t\t\t\t\t\"ai.prompt\": { input: () => JSON.stringify({\n\t\t\t\t\t\tsystem,\n\t\t\t\t\t\tprompt,\n\t\t\t\t\t\tmessages\n\t\t\t\t\t}) },\n\t\t\t\t\t\"ai.schema\": outputStrategy.jsonSchema != null ? { input: () => JSON.stringify(outputStrategy.jsonSchema) } : void 0,\n\t\t\t\t\t\"ai.schema.name\": schemaName,\n\t\t\t\t\t\"ai.schema.description\": schemaDescription,\n\t\t\t\t\t\"ai.settings.output\": outputStrategy.type\n\t\t\t\t}\n\t\t\t}),\n\t\t\ttracer,\n\t\t\tendWhenDone: false,\n\t\t\tfn: async (rootSpan) => {\n\t\t\t\tconst standardizedPrompt = await standardizePrompt({\n\t\t\t\t\tsystem,\n\t\t\t\t\tprompt,\n\t\t\t\t\tmessages,\n\t\t\t\t\tallowSystemInMessages\n\t\t\t\t});\n\t\t\t\tconst callOptions = {\n\t\t\t\t\tresponseFormat: {\n\t\t\t\t\t\ttype: \"json\",\n\t\t\t\t\t\tschema: outputStrategy.jsonSchema,\n\t\t\t\t\t\tname: schemaName,\n\t\t\t\t\t\tdescription: schemaDescription\n\t\t\t\t\t},\n\t\t\t\t\t...prepareCallSettings(settings),\n\t\t\t\t\tprompt: await convertToLanguageModelPrompt({\n\t\t\t\t\t\tprompt: standardizedPrompt,\n\t\t\t\t\t\tsupportedUrls: await model.supportedUrls,\n\t\t\t\t\t\tdownload: download2\n\t\t\t\t\t}),\n\t\t\t\t\tproviderOptions,\n\t\t\t\t\tabortSignal,\n\t\t\t\t\theaders,\n\t\t\t\t\tincludeRawChunks: false\n\t\t\t\t};\n\t\t\t\tconst transformer = { transform: (chunk, controller) => {\n\t\t\t\t\tswitch (chunk.type) {\n\t\t\t\t\t\tcase \"text-delta\":\n\t\t\t\t\t\t\tcontroller.enqueue(chunk.delta);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"response-metadata\":\n\t\t\t\t\t\tcase \"finish\":\n\t\t\t\t\t\tcase \"error\":\n\t\t\t\t\t\tcase \"stream-start\":\n\t\t\t\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} };\n\t\t\t\tconst { result: { stream, response, request }, doStreamSpan, startTimestampMs } = await retry(() => recordSpan({\n\t\t\t\t\tname: \"ai.streamObject.doStream\",\n\t\t\t\t\tattributes: selectTelemetryAttributes({\n\t\t\t\t\t\ttelemetry,\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t...assembleOperationName({\n\t\t\t\t\t\t\t\toperationId: \"ai.streamObject.doStream\",\n\t\t\t\t\t\t\t\ttelemetry\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t...baseTelemetryAttributes,\n\t\t\t\t\t\t\t\"ai.prompt.messages\": { input: () => stringifyForTelemetry(callOptions.prompt) },\n\t\t\t\t\t\t\t\"gen_ai.system\": model.provider,\n\t\t\t\t\t\t\t\"gen_ai.request.model\": model.modelId,\n\t\t\t\t\t\t\t\"gen_ai.request.frequency_penalty\": callSettings.frequencyPenalty,\n\t\t\t\t\t\t\t\"gen_ai.request.max_tokens\": callSettings.maxOutputTokens,\n\t\t\t\t\t\t\t\"gen_ai.request.presence_penalty\": callSettings.presencePenalty,\n\t\t\t\t\t\t\t\"gen_ai.request.temperature\": callSettings.temperature,\n\t\t\t\t\t\t\t\"gen_ai.request.top_k\": callSettings.topK,\n\t\t\t\t\t\t\t\"gen_ai.request.top_p\": callSettings.topP\n\t\t\t\t\t\t}\n\t\t\t\t\t}),\n\t\t\t\t\ttracer,\n\t\t\t\t\tendWhenDone: false,\n\t\t\t\t\tfn: async (doStreamSpan2) => ({\n\t\t\t\t\t\tstartTimestampMs: now2(),\n\t\t\t\t\t\tdoStreamSpan: doStreamSpan2,\n\t\t\t\t\t\tresult: await model.doStream(callOptions)\n\t\t\t\t\t})\n\t\t\t\t}));\n\t\t\t\tself._request.resolve(request != null ? request : {});\n\t\t\t\tlet warnings;\n\t\t\t\tlet usage = {\n\t\t\t\t\tinputTokens: void 0,\n\t\t\t\t\toutputTokens: void 0,\n\t\t\t\t\ttotalTokens: void 0\n\t\t\t\t};\n\t\t\t\tlet finishReason;\n\t\t\t\tlet providerMetadata;\n\t\t\t\tlet object2;\n\t\t\t\tlet error;\n\t\t\t\tlet accumulatedText = \"\";\n\t\t\t\tlet textDelta = \"\";\n\t\t\t\tlet fullResponse = {\n\t\t\t\t\tid: generateId3(),\n\t\t\t\t\ttimestamp: currentDate(),\n\t\t\t\t\tmodelId: model.modelId\n\t\t\t\t};\n\t\t\t\tlet latestObjectJson = void 0;\n\t\t\t\tlet latestObject = void 0;\n\t\t\t\tlet isFirstChunk = true;\n\t\t\t\tlet isFirstDelta = true;\n\t\t\t\tconst transformedStream = stream.pipeThrough(new TransformStream(transformer)).pipeThrough(new TransformStream({\n\t\t\t\t\tasync transform(chunk, controller) {\n\t\t\t\t\t\tvar _a16, _b, _c;\n\t\t\t\t\t\tif (typeof chunk === \"object\" && chunk.type === \"stream-start\") {\n\t\t\t\t\t\t\twarnings = chunk.warnings;\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isFirstChunk) {\n\t\t\t\t\t\t\tconst msToFirstChunk = now2() - startTimestampMs;\n\t\t\t\t\t\t\tisFirstChunk = false;\n\t\t\t\t\t\t\tdoStreamSpan.addEvent(\"ai.stream.firstChunk\", { \"ai.stream.msToFirstChunk\": msToFirstChunk });\n\t\t\t\t\t\t\tdoStreamSpan.setAttributes({ \"ai.stream.msToFirstChunk\": msToFirstChunk });\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (typeof chunk === \"string\") {\n\t\t\t\t\t\t\taccumulatedText += chunk;\n\t\t\t\t\t\t\ttextDelta += chunk;\n\t\t\t\t\t\t\tconst { value: currentObjectJson, state: parseState } = await parsePartialJson(accumulatedText);\n\t\t\t\t\t\t\tif (currentObjectJson !== void 0 && !isDeepEqualData(latestObjectJson, currentObjectJson)) {\n\t\t\t\t\t\t\t\tconst validationResult = await outputStrategy.validatePartialResult({\n\t\t\t\t\t\t\t\t\tvalue: currentObjectJson,\n\t\t\t\t\t\t\t\t\ttextDelta,\n\t\t\t\t\t\t\t\t\tlatestObject,\n\t\t\t\t\t\t\t\t\tisFirstDelta,\n\t\t\t\t\t\t\t\t\tisFinalDelta: parseState === \"successful-parse\"\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tif (validationResult.success && !isDeepEqualData(latestObject, validationResult.value.partial)) {\n\t\t\t\t\t\t\t\t\tlatestObjectJson = currentObjectJson;\n\t\t\t\t\t\t\t\t\tlatestObject = validationResult.value.partial;\n\t\t\t\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\t\t\t\ttype: \"object\",\n\t\t\t\t\t\t\t\t\t\tobject: latestObject\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\t\t\t\ttype: \"text-delta\",\n\t\t\t\t\t\t\t\t\t\ttextDelta: validationResult.value.textDelta\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\ttextDelta = \"\";\n\t\t\t\t\t\t\t\t\tisFirstDelta = false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tswitch (chunk.type) {\n\t\t\t\t\t\t\tcase \"response-metadata\":\n\t\t\t\t\t\t\t\tfullResponse = {\n\t\t\t\t\t\t\t\t\tid: (_a16 = chunk.id) != null ? _a16 : fullResponse.id,\n\t\t\t\t\t\t\t\t\ttimestamp: (_b = chunk.timestamp) != null ? _b : fullResponse.timestamp,\n\t\t\t\t\t\t\t\t\tmodelId: (_c = chunk.modelId) != null ? _c : fullResponse.modelId\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase \"finish\":\n\t\t\t\t\t\t\t\tif (textDelta !== \"\") controller.enqueue({\n\t\t\t\t\t\t\t\t\ttype: \"text-delta\",\n\t\t\t\t\t\t\t\t\ttextDelta\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tfinishReason = chunk.finishReason;\n\t\t\t\t\t\t\t\tusage = chunk.usage;\n\t\t\t\t\t\t\t\tproviderMetadata = chunk.providerMetadata;\n\t\t\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\t\t\t...chunk,\n\t\t\t\t\t\t\t\t\tusage,\n\t\t\t\t\t\t\t\t\tresponse: fullResponse\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tlogWarnings(warnings != null ? warnings : []);\n\t\t\t\t\t\t\t\tself._usage.resolve(usage);\n\t\t\t\t\t\t\t\tself._providerMetadata.resolve(providerMetadata);\n\t\t\t\t\t\t\t\tself._warnings.resolve(warnings);\n\t\t\t\t\t\t\t\tself._response.resolve({\n\t\t\t\t\t\t\t\t\t...fullResponse,\n\t\t\t\t\t\t\t\t\theaders: response == null ? void 0 : response.headers\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tself._finishReason.resolve(finishReason != null ? finishReason : \"unknown\");\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tobject2 = await parseAndValidateObjectResultWithRepair(accumulatedText, outputStrategy, repairText, {\n\t\t\t\t\t\t\t\t\t\tresponse: fullResponse,\n\t\t\t\t\t\t\t\t\t\tusage,\n\t\t\t\t\t\t\t\t\t\tfinishReason\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tself._object.resolve(object2);\n\t\t\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\t\t\terror = e;\n\t\t\t\t\t\t\t\t\tself._object.reject(e);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tasync flush(controller) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst finalUsage = usage != null ? usage : {\n\t\t\t\t\t\t\t\tpromptTokens: NaN,\n\t\t\t\t\t\t\t\tcompletionTokens: NaN,\n\t\t\t\t\t\t\t\ttotalTokens: NaN\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tdoStreamSpan.setAttributes(selectTelemetryAttributes({\n\t\t\t\t\t\t\t\ttelemetry,\n\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\t\"ai.response.finishReason\": finishReason,\n\t\t\t\t\t\t\t\t\t\"ai.response.object\": { output: () => JSON.stringify(object2) },\n\t\t\t\t\t\t\t\t\t\"ai.response.id\": fullResponse.id,\n\t\t\t\t\t\t\t\t\t\"ai.response.model\": fullResponse.modelId,\n\t\t\t\t\t\t\t\t\t\"ai.response.timestamp\": fullResponse.timestamp.toISOString(),\n\t\t\t\t\t\t\t\t\t\"ai.response.providerMetadata\": JSON.stringify(providerMetadata),\n\t\t\t\t\t\t\t\t\t\"ai.usage.inputTokens\": finalUsage.inputTokens,\n\t\t\t\t\t\t\t\t\t\"ai.usage.outputTokens\": finalUsage.outputTokens,\n\t\t\t\t\t\t\t\t\t\"ai.usage.totalTokens\": finalUsage.totalTokens,\n\t\t\t\t\t\t\t\t\t\"ai.usage.reasoningTokens\": finalUsage.reasoningTokens,\n\t\t\t\t\t\t\t\t\t\"ai.usage.cachedInputTokens\": finalUsage.cachedInputTokens,\n\t\t\t\t\t\t\t\t\t\"gen_ai.response.finish_reasons\": [finishReason],\n\t\t\t\t\t\t\t\t\t\"gen_ai.response.id\": fullResponse.id,\n\t\t\t\t\t\t\t\t\t\"gen_ai.response.model\": fullResponse.modelId,\n\t\t\t\t\t\t\t\t\t\"gen_ai.usage.input_tokens\": finalUsage.inputTokens,\n\t\t\t\t\t\t\t\t\t\"gen_ai.usage.output_tokens\": finalUsage.outputTokens\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\tdoStreamSpan.end();\n\t\t\t\t\t\t\trootSpan.setAttributes(selectTelemetryAttributes({\n\t\t\t\t\t\t\t\ttelemetry,\n\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\t\"ai.usage.inputTokens\": finalUsage.inputTokens,\n\t\t\t\t\t\t\t\t\t\"ai.usage.outputTokens\": finalUsage.outputTokens,\n\t\t\t\t\t\t\t\t\t\"ai.usage.totalTokens\": finalUsage.totalTokens,\n\t\t\t\t\t\t\t\t\t\"ai.usage.reasoningTokens\": finalUsage.reasoningTokens,\n\t\t\t\t\t\t\t\t\t\"ai.usage.cachedInputTokens\": finalUsage.cachedInputTokens,\n\t\t\t\t\t\t\t\t\t\"ai.response.object\": { output: () => JSON.stringify(object2) },\n\t\t\t\t\t\t\t\t\t\"ai.response.providerMetadata\": JSON.stringify(providerMetadata)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\tawait (onFinish == null ? void 0 : onFinish({\n\t\t\t\t\t\t\t\tusage: finalUsage,\n\t\t\t\t\t\t\t\tobject: object2,\n\t\t\t\t\t\t\t\terror,\n\t\t\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\t\t\t...fullResponse,\n\t\t\t\t\t\t\t\t\theaders: response == null ? void 0 : response.headers\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\twarnings,\n\t\t\t\t\t\t\t\tproviderMetadata\n\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t} catch (error2) {\n\t\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\t\ttype: \"error\",\n\t\t\t\t\t\t\t\terror: error2\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} finally {\n\t\t\t\t\t\t\trootSpan.end();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}));\n\t\t\t\tstitchableStream.addStream(transformedStream);\n\t\t\t}\n\t\t}).catch((error) => {\n\t\t\tstitchableStream.addStream(new ReadableStream({ start(controller) {\n\t\t\t\tcontroller.enqueue({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\terror\n\t\t\t\t});\n\t\t\t\tcontroller.close();\n\t\t\t} }));\n\t\t}).finally(() => {\n\t\t\tstitchableStream.close();\n\t\t});\n\t\tthis.outputStrategy = outputStrategy;\n\t}\n\tget object() {\n\t\treturn this._object.promise;\n\t}\n\tget usage() {\n\t\treturn this._usage.promise;\n\t}\n\tget providerMetadata() {\n\t\treturn this._providerMetadata.promise;\n\t}\n\tget warnings() {\n\t\treturn this._warnings.promise;\n\t}\n\tget request() {\n\t\treturn this._request.promise;\n\t}\n\tget response() {\n\t\treturn this._response.promise;\n\t}\n\tget finishReason() {\n\t\treturn this._finishReason.promise;\n\t}\n\tget partialObjectStream() {\n\t\treturn createAsyncIterableStream(this.baseStream.pipeThrough(new TransformStream({ transform(chunk, controller) {\n\t\t\tswitch (chunk.type) {\n\t\t\t\tcase \"object\":\n\t\t\t\t\tcontroller.enqueue(chunk.object);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"text-delta\":\n\t\t\t\tcase \"finish\":\n\t\t\t\tcase \"error\": break;\n\t\t\t\tdefault: throw new Error(`Unsupported chunk type: ${chunk}`);\n\t\t\t}\n\t\t} })));\n\t}\n\tget elementStream() {\n\t\treturn this.outputStrategy.createElementStream(this.baseStream);\n\t}\n\tget textStream() {\n\t\treturn createAsyncIterableStream(this.baseStream.pipeThrough(new TransformStream({ transform(chunk, controller) {\n\t\t\tswitch (chunk.type) {\n\t\t\t\tcase \"text-delta\":\n\t\t\t\t\tcontroller.enqueue(chunk.textDelta);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"object\":\n\t\t\t\tcase \"finish\":\n\t\t\t\tcase \"error\": break;\n\t\t\t\tdefault: throw new Error(`Unsupported chunk type: ${chunk}`);\n\t\t\t}\n\t\t} })));\n\t}\n\tget fullStream() {\n\t\treturn createAsyncIterableStream(this.baseStream);\n\t}\n\tpipeTextStreamToResponse(response, init) {\n\t\treturn pipeTextStreamToResponse({\n\t\t\tresponse,\n\t\t\ttextStream: this.textStream,\n\t\t\t...init\n\t\t});\n\t}\n\ttoTextStreamResponse(init) {\n\t\treturn createTextStreamResponse({\n\t\t\ttextStream: this.textStream,\n\t\t\t...init\n\t\t});\n\t}\n};\nvar DefaultGeneratedAudioFile = class extends DefaultGeneratedFile {\n\tconstructor({ data, mediaType }) {\n\t\tsuper({\n\t\t\tdata,\n\t\t\tmediaType\n\t\t});\n\t\tlet format = \"mp3\";\n\t\tif (mediaType) {\n\t\t\tconst mediaTypeParts = mediaType.split(\"/\");\n\t\t\tif (mediaTypeParts.length === 2) {\n\t\t\t\tif (mediaType !== \"audio/mpeg\") format = mediaTypeParts[1];\n\t\t\t}\n\t\t}\n\t\tif (!format) throw new Error(\"Audio format must be provided or determinable from media type\");\n\t\tthis.format = format;\n\t}\n};\nasync function generateSpeech({ model, text: text2, voice, outputFormat, instructions, speed, language, providerOptions = {}, maxRetries: maxRetriesArg, abortSignal, headers }) {\n\tvar _a16;\n\tif (model.specificationVersion !== \"v2\") throw new UnsupportedModelVersionError({\n\t\tversion: model.specificationVersion,\n\t\tprovider: model.provider,\n\t\tmodelId: model.modelId\n\t});\n\tconst headersWithUserAgent = withUserAgentSuffix(headers != null ? headers : {}, `ai/${VERSION}`);\n\tconst { retry } = prepareRetries({\n\t\tmaxRetries: maxRetriesArg,\n\t\tabortSignal\n\t});\n\tconst result = await retry(() => model.doGenerate({\n\t\ttext: text2,\n\t\tvoice,\n\t\toutputFormat,\n\t\tinstructions,\n\t\tspeed,\n\t\tlanguage,\n\t\tabortSignal,\n\t\theaders: headersWithUserAgent,\n\t\tproviderOptions\n\t}));\n\tif (!result.audio || result.audio.length === 0) throw new NoSpeechGeneratedError({ responses: [result.response] });\n\tlogWarnings(result.warnings);\n\treturn new DefaultSpeechResult({\n\t\taudio: new DefaultGeneratedAudioFile({\n\t\t\tdata: result.audio,\n\t\t\tmediaType: (_a16 = detectMediaType({\n\t\t\t\tdata: result.audio,\n\t\t\t\tsignatures: audioMediaTypeSignatures\n\t\t\t})) != null ? _a16 : \"audio/mp3\"\n\t\t}),\n\t\twarnings: result.warnings,\n\t\tresponses: [result.response],\n\t\tproviderMetadata: result.providerMetadata\n\t});\n}\nvar DefaultSpeechResult = class {\n\tconstructor(options) {\n\t\tvar _a16;\n\t\tthis.audio = options.audio;\n\t\tthis.warnings = options.warnings;\n\t\tthis.responses = options.responses;\n\t\tthis.providerMetadata = (_a16 = options.providerMetadata) != null ? _a16 : {};\n\t}\n};\nvar output_exports = {};\n__export(output_exports, {\n\tobject: () => object,\n\ttext: () => text\n});\nvar text = () => ({\n\ttype: \"text\",\n\tresponseFormat: { type: \"text\" },\n\tasync parsePartial({ text: text2 }) {\n\t\treturn { partial: text2 };\n\t},\n\tasync parseOutput({ text: text2 }) {\n\t\treturn text2;\n\t}\n});\nvar object = ({ schema: inputSchema }) => {\n\tconst schema = asSchema(inputSchema);\n\treturn {\n\t\ttype: \"object\",\n\t\tresponseFormat: {\n\t\t\ttype: \"json\",\n\t\t\tschema: schema.jsonSchema\n\t\t},\n\t\tasync parsePartial({ text: text2 }) {\n\t\t\tconst result = await parsePartialJson(text2);\n\t\t\tswitch (result.state) {\n\t\t\t\tcase \"failed-parse\":\n\t\t\t\tcase \"undefined-input\": return;\n\t\t\t\tcase \"repaired-parse\":\n\t\t\t\tcase \"successful-parse\": return { partial: result.value };\n\t\t\t\tdefault: {\n\t\t\t\t\tconst _exhaustiveCheck = result.state;\n\t\t\t\t\tthrow new Error(`Unsupported parse state: ${_exhaustiveCheck}`);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tasync parseOutput({ text: text2 }, context) {\n\t\t\tconst parseResult = await safeParseJSON({ text: text2 });\n\t\t\tif (!parseResult.success) throw new NoObjectGeneratedError({\n\t\t\t\tmessage: \"No object generated: could not parse the response.\",\n\t\t\t\tcause: parseResult.error,\n\t\t\t\ttext: text2,\n\t\t\t\tresponse: context.response,\n\t\t\t\tusage: context.usage,\n\t\t\t\tfinishReason: context.finishReason\n\t\t\t});\n\t\t\tconst validationResult = await safeValidateTypes({\n\t\t\t\tvalue: parseResult.value,\n\t\t\t\tschema\n\t\t\t});\n\t\t\tif (!validationResult.success) throw new NoObjectGeneratedError({\n\t\t\t\tmessage: \"No object generated: response did not match schema.\",\n\t\t\t\tcause: validationResult.error,\n\t\t\t\ttext: text2,\n\t\t\t\tresponse: context.response,\n\t\t\t\tusage: context.usage,\n\t\t\t\tfinishReason: context.finishReason\n\t\t\t});\n\t\t\treturn validationResult.value;\n\t\t}\n\t};\n};\nfunction pruneMessages({ messages, reasoning = \"none\", toolCalls = [], emptyMessages = \"remove\" }) {\n\tif (reasoning === \"all\" || reasoning === \"before-last-message\") messages = messages.map((message, messageIndex) => {\n\t\tif (message.role !== \"assistant\" || typeof message.content === \"string\" || reasoning === \"before-last-message\" && messageIndex === messages.length - 1) return message;\n\t\treturn {\n\t\t\t...message,\n\t\t\tcontent: message.content.filter((part) => part.type !== \"reasoning\")\n\t\t};\n\t});\n\tif (toolCalls === \"none\") toolCalls = [];\n\telse if (toolCalls === \"all\") toolCalls = [{ type: \"all\" }];\n\telse if (toolCalls === \"before-last-message\") toolCalls = [{ type: \"before-last-message\" }];\n\telse if (typeof toolCalls === \"string\") toolCalls = [{ type: toolCalls }];\n\tfor (const toolCall of toolCalls) {\n\t\tconst keepLastMessagesCount = toolCall.type === \"all\" ? void 0 : toolCall.type === \"before-last-message\" ? 1 : Number(toolCall.type.slice(12).slice(0, -9));\n\t\tconst keptToolCallIds = /* @__PURE__ */ new Set();\n\t\tif (keepLastMessagesCount != null) {\n\t\t\tfor (const message of messages.slice(-keepLastMessagesCount)) if ((message.role === \"assistant\" || message.role === \"tool\") && typeof message.content !== \"string\") {\n\t\t\t\tfor (const part of message.content) if (part.type === \"tool-call\" || part.type === \"tool-result\") keptToolCallIds.add(part.toolCallId);\n\t\t\t}\n\t\t}\n\t\tmessages = messages.map((message, messageIndex) => {\n\t\t\tif (message.role !== \"assistant\" && message.role !== \"tool\" || typeof message.content === \"string\" || keepLastMessagesCount && messageIndex >= messages.length - keepLastMessagesCount) return message;\n\t\t\tconst toolCallIdToToolName = {};\n\t\t\treturn {\n\t\t\t\t...message,\n\t\t\t\tcontent: message.content.filter((part) => {\n\t\t\t\t\tif (part.type !== \"tool-call\" && part.type !== \"tool-result\") return true;\n\t\t\t\t\tif (part.type === \"tool-call\") toolCallIdToToolName[part.toolCallId] = part.toolName;\n\t\t\t\t\tif ((part.type === \"tool-call\" || part.type === \"tool-result\") && keptToolCallIds.has(part.toolCallId)) return true;\n\t\t\t\t\treturn toolCall.tools != null && !toolCall.tools.includes(part.toolName);\n\t\t\t\t})\n\t\t\t};\n\t\t});\n\t}\n\tif (emptyMessages === \"remove\") messages = messages.filter((message) => message.content.length > 0);\n\treturn messages;\n}\nvar CHUNKING_REGEXPS = {\n\tword: /\\S+\\s+/m,\n\tline: /\\n+/m\n};\nfunction smoothStream({ delayInMs = 10, chunking = \"word\", _internal: { delay: delay2 = delay } = {} } = {}) {\n\tlet detectChunk;\n\tif (typeof chunking === \"function\") detectChunk = (buffer) => {\n\t\tconst match = chunking(buffer);\n\t\tif (match == null) return null;\n\t\tif (!match.length) throw new Error(`Chunking function must return a non-empty string.`);\n\t\tif (!buffer.startsWith(match)) throw new Error(`Chunking function must return a match that is a prefix of the buffer. Received: \"${match}\" expected to start with \"${buffer}\"`);\n\t\treturn match;\n\t};\n\telse {\n\t\tconst chunkingRegex = typeof chunking === \"string\" ? CHUNKING_REGEXPS[chunking] : chunking;\n\t\tif (chunkingRegex == null) throw new InvalidArgumentError$1({\n\t\t\targument: \"chunking\",\n\t\t\tmessage: `Chunking must be \"word\" or \"line\" or a RegExp. Received: ${chunking}`\n\t\t});\n\t\tdetectChunk = (buffer) => {\n\t\t\tconst match = chunkingRegex.exec(buffer);\n\t\t\tif (!match) return null;\n\t\t\treturn buffer.slice(0, match.index) + (match == null ? void 0 : match[0]);\n\t\t};\n\t}\n\treturn () => {\n\t\tlet buffer = \"\";\n\t\tlet id = \"\";\n\t\treturn new TransformStream({ async transform(chunk, controller) {\n\t\t\tif (chunk.type !== \"text-delta\") {\n\t\t\t\tif (buffer.length > 0) {\n\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\ttype: \"text-delta\",\n\t\t\t\t\t\ttext: buffer,\n\t\t\t\t\t\tid\n\t\t\t\t\t});\n\t\t\t\t\tbuffer = \"\";\n\t\t\t\t}\n\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (chunk.id !== id && buffer.length > 0) {\n\t\t\t\tcontroller.enqueue({\n\t\t\t\t\ttype: \"text-delta\",\n\t\t\t\t\ttext: buffer,\n\t\t\t\t\tid\n\t\t\t\t});\n\t\t\t\tbuffer = \"\";\n\t\t\t}\n\t\t\tbuffer += chunk.text;\n\t\t\tid = chunk.id;\n\t\t\tlet match;\n\t\t\twhile ((match = detectChunk(buffer)) != null) {\n\t\t\t\tcontroller.enqueue({\n\t\t\t\t\ttype: \"text-delta\",\n\t\t\t\t\ttext: match,\n\t\t\t\t\tid\n\t\t\t\t});\n\t\t\t\tbuffer = buffer.slice(match.length);\n\t\t\t\tawait delay2(delayInMs);\n\t\t\t}\n\t\t} });\n\t};\n}\nfunction defaultSettingsMiddleware({ settings }) {\n\treturn {\n\t\tmiddlewareVersion: \"v2\",\n\t\ttransformParams: async ({ params }) => {\n\t\t\treturn mergeObjects(settings, params);\n\t\t}\n\t};\n}\nfunction getPotentialStartIndex(text2, searchedText) {\n\tif (searchedText.length === 0) return null;\n\tconst directIndex = text2.indexOf(searchedText);\n\tif (directIndex !== -1) return directIndex;\n\tfor (let i = text2.length - 1; i >= 0; i--) {\n\t\tconst suffix = text2.substring(i);\n\t\tif (searchedText.startsWith(suffix)) return i;\n\t}\n\treturn null;\n}\nfunction extractReasoningMiddleware({ tagName, separator = \"\\n\", startWithReasoning = false }) {\n\tconst openingTag = `<${tagName}>`;\n\tconst closingTag = `</${tagName}>`;\n\treturn {\n\t\tmiddlewareVersion: \"v2\",\n\t\twrapGenerate: async ({ doGenerate }) => {\n\t\t\tconst { content, ...rest } = await doGenerate();\n\t\t\tconst transformedContent = [];\n\t\t\tfor (const part of content) {\n\t\t\t\tif (part.type !== \"text\") {\n\t\t\t\t\ttransformedContent.push(part);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst text2 = startWithReasoning ? openingTag + part.text : part.text;\n\t\t\t\tconst regexp = new RegExp(`${openingTag}(.*?)${closingTag}`, \"gs\");\n\t\t\t\tconst matches = Array.from(text2.matchAll(regexp));\n\t\t\t\tif (!matches.length) {\n\t\t\t\t\ttransformedContent.push(part);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst reasoningText = matches.map((match) => match[1]).join(separator);\n\t\t\t\tlet textWithoutReasoning = text2;\n\t\t\t\tfor (let i = matches.length - 1; i >= 0; i--) {\n\t\t\t\t\tconst match = matches[i];\n\t\t\t\t\tconst beforeMatch = textWithoutReasoning.slice(0, match.index);\n\t\t\t\t\tconst afterMatch = textWithoutReasoning.slice(match.index + match[0].length);\n\t\t\t\t\ttextWithoutReasoning = beforeMatch + (beforeMatch.length > 0 && afterMatch.length > 0 ? separator : \"\") + afterMatch;\n\t\t\t\t}\n\t\t\t\ttransformedContent.push({\n\t\t\t\t\ttype: \"reasoning\",\n\t\t\t\t\ttext: reasoningText\n\t\t\t\t});\n\t\t\t\ttransformedContent.push({\n\t\t\t\t\ttype: \"text\",\n\t\t\t\t\ttext: textWithoutReasoning\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tcontent: transformedContent,\n\t\t\t\t...rest\n\t\t\t};\n\t\t},\n\t\twrapStream: async ({ doStream }) => {\n\t\t\tconst { stream, ...rest } = await doStream();\n\t\t\tconst reasoningExtractions = createIdMap();\n\t\t\tlet delayedTextStart;\n\t\t\treturn {\n\t\t\t\tstream: stream.pipeThrough(new TransformStream({ transform: (chunk, controller) => {\n\t\t\t\t\tif (chunk.type === \"text-start\") {\n\t\t\t\t\t\tdelayedTextStart = chunk;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (chunk.type === \"text-end\" && delayedTextStart) {\n\t\t\t\t\t\tcontroller.enqueue(delayedTextStart);\n\t\t\t\t\t\tdelayedTextStart = void 0;\n\t\t\t\t\t}\n\t\t\t\t\tif (chunk.type !== \"text-delta\") {\n\t\t\t\t\t\tcontroller.enqueue(chunk);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (reasoningExtractions[chunk.id] == null) reasoningExtractions[chunk.id] = {\n\t\t\t\t\t\tisFirstReasoning: true,\n\t\t\t\t\t\tisFirstText: true,\n\t\t\t\t\t\tafterSwitch: false,\n\t\t\t\t\t\tisReasoning: startWithReasoning,\n\t\t\t\t\t\tbuffer: \"\",\n\t\t\t\t\t\tidCounter: 0,\n\t\t\t\t\t\ttextId: chunk.id\n\t\t\t\t\t};\n\t\t\t\t\tconst activeExtraction = reasoningExtractions[chunk.id];\n\t\t\t\t\tactiveExtraction.buffer += chunk.delta;\n\t\t\t\t\tfunction publish(text2) {\n\t\t\t\t\t\tif (text2.length > 0) {\n\t\t\t\t\t\t\tconst prefix = activeExtraction.afterSwitch && (activeExtraction.isReasoning ? !activeExtraction.isFirstReasoning : !activeExtraction.isFirstText) ? separator : \"\";\n\t\t\t\t\t\t\tif (activeExtraction.isReasoning && (activeExtraction.afterSwitch || activeExtraction.isFirstReasoning)) controller.enqueue({\n\t\t\t\t\t\t\t\ttype: \"reasoning-start\",\n\t\t\t\t\t\t\t\tid: `reasoning-${activeExtraction.idCounter}`\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tif (activeExtraction.isReasoning) controller.enqueue({\n\t\t\t\t\t\t\t\ttype: \"reasoning-delta\",\n\t\t\t\t\t\t\t\tdelta: prefix + text2,\n\t\t\t\t\t\t\t\tid: `reasoning-${activeExtraction.idCounter}`\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tif (delayedTextStart) {\n\t\t\t\t\t\t\t\t\tcontroller.enqueue(delayedTextStart);\n\t\t\t\t\t\t\t\t\tdelayedTextStart = void 0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\t\t\ttype: \"text-delta\",\n\t\t\t\t\t\t\t\t\tdelta: prefix + text2,\n\t\t\t\t\t\t\t\t\tid: activeExtraction.textId\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tactiveExtraction.afterSwitch = false;\n\t\t\t\t\t\t\tif (activeExtraction.isReasoning) activeExtraction.isFirstReasoning = false;\n\t\t\t\t\t\t\telse activeExtraction.isFirstText = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdo {\n\t\t\t\t\t\tconst nextTag = activeExtraction.isReasoning ? closingTag : openingTag;\n\t\t\t\t\t\tconst startIndex = getPotentialStartIndex(activeExtraction.buffer, nextTag);\n\t\t\t\t\t\tif (startIndex == null) {\n\t\t\t\t\t\t\tpublish(activeExtraction.buffer);\n\t\t\t\t\t\t\tactiveExtraction.buffer = \"\";\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpublish(activeExtraction.buffer.slice(0, startIndex));\n\t\t\t\t\t\tif (startIndex + nextTag.length <= activeExtraction.buffer.length) {\n\t\t\t\t\t\t\tactiveExtraction.buffer = activeExtraction.buffer.slice(startIndex + nextTag.length);\n\t\t\t\t\t\t\tif (activeExtraction.isReasoning) controller.enqueue({\n\t\t\t\t\t\t\t\ttype: \"reasoning-end\",\n\t\t\t\t\t\t\t\tid: `reasoning-${activeExtraction.idCounter++}`\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tactiveExtraction.isReasoning = !activeExtraction.isReasoning;\n\t\t\t\t\t\t\tactiveExtraction.afterSwitch = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tactiveExtraction.buffer = activeExtraction.buffer.slice(startIndex);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t} while (true);\n\t\t\t\t} })),\n\t\t\t\t...rest\n\t\t\t};\n\t\t}\n\t};\n}\nfunction simulateStreamingMiddleware() {\n\treturn {\n\t\tmiddlewareVersion: \"v2\",\n\t\twrapStream: async ({ doGenerate }) => {\n\t\t\tconst result = await doGenerate();\n\t\t\tlet id = 0;\n\t\t\treturn {\n\t\t\t\tstream: new ReadableStream({ start(controller) {\n\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\ttype: \"stream-start\",\n\t\t\t\t\t\twarnings: result.warnings\n\t\t\t\t\t});\n\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\ttype: \"response-metadata\",\n\t\t\t\t\t\t...result.response\n\t\t\t\t\t});\n\t\t\t\t\tfor (const part of result.content) switch (part.type) {\n\t\t\t\t\t\tcase \"text\":\n\t\t\t\t\t\t\tif (part.text.length > 0) {\n\t\t\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\t\t\ttype: \"text-start\",\n\t\t\t\t\t\t\t\t\tid: String(id)\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\t\t\ttype: \"text-delta\",\n\t\t\t\t\t\t\t\t\tid: String(id),\n\t\t\t\t\t\t\t\t\tdelta: part.text\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\t\t\ttype: \"text-end\",\n\t\t\t\t\t\t\t\t\tid: String(id)\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tid++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"reasoning\":\n\t\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\t\ttype: \"reasoning-start\",\n\t\t\t\t\t\t\t\tid: String(id),\n\t\t\t\t\t\t\t\tproviderMetadata: part.providerMetadata\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\t\ttype: \"reasoning-delta\",\n\t\t\t\t\t\t\t\tid: String(id),\n\t\t\t\t\t\t\t\tdelta: part.text\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\t\t\ttype: \"reasoning-end\",\n\t\t\t\t\t\t\t\tid: String(id)\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tid++;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tcontroller.enqueue(part);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcontroller.enqueue({\n\t\t\t\t\t\ttype: \"finish\",\n\t\t\t\t\t\tfinishReason: result.finishReason,\n\t\t\t\t\t\tusage: result.usage,\n\t\t\t\t\t\tproviderMetadata: result.providerMetadata\n\t\t\t\t\t});\n\t\t\t\t\tcontroller.close();\n\t\t\t\t} }),\n\t\t\t\trequest: result.request,\n\t\t\t\tresponse: result.response\n\t\t\t};\n\t\t}\n\t};\n}\nvar wrapLanguageModel = ({ model, middleware: middlewareArg, modelId, providerId }) => {\n\treturn [...asArray(middlewareArg)].reverse().reduce((wrappedModel, middleware) => {\n\t\treturn doWrap({\n\t\t\tmodel: wrappedModel,\n\t\t\tmiddleware,\n\t\t\tmodelId,\n\t\t\tproviderId\n\t\t});\n\t}, model);\n};\nvar doWrap = ({ model, middleware: { transformParams, wrapGenerate, wrapStream, overrideProvider, overrideModelId, overrideSupportedUrls }, modelId, providerId }) => {\n\tvar _a16, _b, _c;\n\tasync function doTransform({ params, type }) {\n\t\treturn transformParams ? await transformParams({\n\t\t\tparams,\n\t\t\ttype,\n\t\t\tmodel\n\t\t}) : params;\n\t}\n\treturn {\n\t\tspecificationVersion: \"v2\",\n\t\tprovider: (_a16 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a16 : model.provider,\n\t\tmodelId: (_b = modelId != null ? modelId : overrideModelId == null ? void 0 : overrideModelId({ model })) != null ? _b : model.modelId,\n\t\tsupportedUrls: (_c = overrideSupportedUrls == null ? void 0 : overrideSupportedUrls({ model })) != null ? _c : model.supportedUrls,\n\t\tasync doGenerate(params) {\n\t\t\tconst transformedParams = await doTransform({\n\t\t\t\tparams,\n\t\t\t\ttype: \"generate\"\n\t\t\t});\n\t\t\tconst doGenerate = async () => model.doGenerate(transformedParams);\n\t\t\tconst doStream = async () => model.doStream(transformedParams);\n\t\t\treturn wrapGenerate ? wrapGenerate({\n\t\t\t\tdoGenerate,\n\t\t\t\tdoStream,\n\t\t\t\tparams: transformedParams,\n\t\t\t\tmodel\n\t\t\t}) : doGenerate();\n\t\t},\n\t\tasync doStream(params) {\n\t\t\tconst transformedParams = await doTransform({\n\t\t\t\tparams,\n\t\t\t\ttype: \"stream\"\n\t\t\t});\n\t\t\tconst doGenerate = async () => model.doGenerate(transformedParams);\n\t\t\tconst doStream = async () => model.doStream(transformedParams);\n\t\t\treturn wrapStream ? wrapStream({\n\t\t\t\tdoGenerate,\n\t\t\t\tdoStream,\n\t\t\t\tparams: transformedParams,\n\t\t\t\tmodel\n\t\t\t}) : doStream();\n\t\t}\n\t};\n};\nfunction wrapProvider({ provider, languageModelMiddleware }) {\n\treturn {\n\t\tlanguageModel(modelId) {\n\t\t\tlet model = provider.languageModel(modelId);\n\t\t\tmodel = wrapLanguageModel({\n\t\t\t\tmodel,\n\t\t\t\tmiddleware: languageModelMiddleware\n\t\t\t});\n\t\t\treturn model;\n\t\t},\n\t\ttextEmbeddingModel: provider.textEmbeddingModel,\n\t\timageModel: provider.imageModel,\n\t\ttranscriptionModel: provider.transcriptionModel,\n\t\tspeechModel: provider.speechModel\n\t};\n}\nfunction customProvider({ languageModels, textEmbeddingModels, imageModels, transcriptionModels, speechModels, fallbackProvider }) {\n\treturn {\n\t\tlanguageModel(modelId) {\n\t\t\tif (languageModels != null && modelId in languageModels) return languageModels[modelId];\n\t\t\tif (fallbackProvider) return fallbackProvider.languageModel(modelId);\n\t\t\tthrow new NoSuchModelError({\n\t\t\t\tmodelId,\n\t\t\t\tmodelType: \"languageModel\"\n\t\t\t});\n\t\t},\n\t\ttextEmbeddingModel(modelId) {\n\t\t\tif (textEmbeddingModels != null && modelId in textEmbeddingModels) return textEmbeddingModels[modelId];\n\t\t\tif (fallbackProvider) return fallbackProvider.textEmbeddingModel(modelId);\n\t\t\tthrow new NoSuchModelError({\n\t\t\t\tmodelId,\n\t\t\t\tmodelType: \"textEmbeddingModel\"\n\t\t\t});\n\t\t},\n\t\timageModel(modelId) {\n\t\t\tif (imageModels != null && modelId in imageModels) return imageModels[modelId];\n\t\t\tif (fallbackProvider == null ? void 0 : fallbackProvider.imageModel) return fallbackProvider.imageModel(modelId);\n\t\t\tthrow new NoSuchModelError({\n\t\t\t\tmodelId,\n\t\t\t\tmodelType: \"imageModel\"\n\t\t\t});\n\t\t},\n\t\ttranscriptionModel(modelId) {\n\t\t\tif (transcriptionModels != null && modelId in transcriptionModels) return transcriptionModels[modelId];\n\t\t\tif (fallbackProvider == null ? void 0 : fallbackProvider.transcriptionModel) return fallbackProvider.transcriptionModel(modelId);\n\t\t\tthrow new NoSuchModelError({\n\t\t\t\tmodelId,\n\t\t\t\tmodelType: \"transcriptionModel\"\n\t\t\t});\n\t\t},\n\t\tspeechModel(modelId) {\n\t\t\tif (speechModels != null && modelId in speechModels) return speechModels[modelId];\n\t\t\tif (fallbackProvider == null ? void 0 : fallbackProvider.speechModel) return fallbackProvider.speechModel(modelId);\n\t\t\tthrow new NoSuchModelError({\n\t\t\t\tmodelId,\n\t\t\t\tmodelType: \"speechModel\"\n\t\t\t});\n\t\t}\n\t};\n}\nvar experimental_customProvider = customProvider;\nvar name15 = \"AI_NoSuchProviderError\";\nvar marker15 = `vercel.ai.error.${name15}`;\nvar symbol15 = Symbol.for(marker15);\nvar _a15;\nvar NoSuchProviderError = class extends NoSuchModelError {\n\tconstructor({ modelId, modelType, providerId, availableProviders, message = `No such provider: ${providerId} (available providers: ${availableProviders.join()})` }) {\n\t\tsuper({\n\t\t\terrorName: name15,\n\t\t\tmodelId,\n\t\t\tmodelType,\n\t\t\tmessage\n\t\t});\n\t\tthis[_a15] = true;\n\t\tthis.providerId = providerId;\n\t\tthis.availableProviders = availableProviders;\n\t}\n\tstatic isInstance(error) {\n\t\treturn AISDKError.hasMarker(error, marker15);\n\t}\n};\n_a15 = symbol15;\nfunction createProviderRegistry(providers, { separator = \":\", languageModelMiddleware } = {}) {\n\tconst registry = new DefaultProviderRegistry({\n\t\tseparator,\n\t\tlanguageModelMiddleware\n\t});\n\tfor (const [id, provider] of Object.entries(providers)) registry.registerProvider({\n\t\tid,\n\t\tprovider\n\t});\n\treturn registry;\n}\nvar experimental_createProviderRegistry = createProviderRegistry;\nvar DefaultProviderRegistry = class {\n\tconstructor({ separator, languageModelMiddleware }) {\n\t\tthis.providers = {};\n\t\tthis.separator = separator;\n\t\tthis.languageModelMiddleware = languageModelMiddleware;\n\t}\n\tregisterProvider({ id, provider }) {\n\t\tthis.providers[id] = provider;\n\t}\n\tgetProvider(id, modelType) {\n\t\tconst provider = this.providers[id];\n\t\tif (provider == null) throw new NoSuchProviderError({\n\t\t\tmodelId: id,\n\t\t\tmodelType,\n\t\t\tproviderId: id,\n\t\t\tavailableProviders: Object.keys(this.providers)\n\t\t});\n\t\treturn provider;\n\t}\n\tsplitId(id, modelType) {\n\t\tconst index = id.indexOf(this.separator);\n\t\tif (index === -1) throw new NoSuchModelError({\n\t\t\tmodelId: id,\n\t\t\tmodelType,\n\t\t\tmessage: `Invalid ${modelType} id for registry: ${id} (must be in the format \"providerId${this.separator}modelId\")`\n\t\t});\n\t\treturn [id.slice(0, index), id.slice(index + this.separator.length)];\n\t}\n\tlanguageModel(id) {\n\t\tvar _a16, _b;\n\t\tconst [providerId, modelId] = this.splitId(id, \"languageModel\");\n\t\tlet model = (_b = (_a16 = this.getProvider(providerId, \"languageModel\")).languageModel) == null ? void 0 : _b.call(_a16, modelId);\n\t\tif (model == null) throw new NoSuchModelError({\n\t\t\tmodelId: id,\n\t\t\tmodelType: \"languageModel\"\n\t\t});\n\t\tif (this.languageModelMiddleware != null) model = wrapLanguageModel({\n\t\t\tmodel,\n\t\t\tmiddleware: this.languageModelMiddleware\n\t\t});\n\t\treturn model;\n\t}\n\ttextEmbeddingModel(id) {\n\t\tvar _a16;\n\t\tconst [providerId, modelId] = this.splitId(id, \"textEmbeddingModel\");\n\t\tconst provider = this.getProvider(providerId, \"textEmbeddingModel\");\n\t\tconst model = (_a16 = provider.textEmbeddingModel) == null ? void 0 : _a16.call(provider, modelId);\n\t\tif (model == null) throw new NoSuchModelError({\n\t\t\tmodelId: id,\n\t\t\tmodelType: \"textEmbeddingModel\"\n\t\t});\n\t\treturn model;\n\t}\n\timageModel(id) {\n\t\tvar _a16;\n\t\tconst [providerId, modelId] = this.splitId(id, \"imageModel\");\n\t\tconst provider = this.getProvider(providerId, \"imageModel\");\n\t\tconst model = (_a16 = provider.imageModel) == null ? void 0 : _a16.call(provider, modelId);\n\t\tif (model == null) throw new NoSuchModelError({\n\t\t\tmodelId: id,\n\t\t\tmodelType: \"imageModel\"\n\t\t});\n\t\treturn model;\n\t}\n\ttranscriptionModel(id) {\n\t\tvar _a16;\n\t\tconst [providerId, modelId] = this.splitId(id, \"transcriptionModel\");\n\t\tconst provider = this.getProvider(providerId, \"transcriptionModel\");\n\t\tconst model = (_a16 = provider.transcriptionModel) == null ? void 0 : _a16.call(provider, modelId);\n\t\tif (model == null) throw new NoSuchModelError({\n\t\t\tmodelId: id,\n\t\t\tmodelType: \"transcriptionModel\"\n\t\t});\n\t\treturn model;\n\t}\n\tspeechModel(id) {\n\t\tvar _a16;\n\t\tconst [providerId, modelId] = this.splitId(id, \"speechModel\");\n\t\tconst provider = this.getProvider(providerId, \"speechModel\");\n\t\tconst model = (_a16 = provider.speechModel) == null ? void 0 : _a16.call(provider, modelId);\n\t\tif (model == null) throw new NoSuchModelError({\n\t\t\tmodelId: id,\n\t\t\tmodelType: \"speechModel\"\n\t\t});\n\t\treturn model;\n\t}\n};\nvar NoTranscriptGeneratedError = class extends AISDKError {\n\tconstructor(options) {\n\t\tsuper({\n\t\t\tname: \"AI_NoTranscriptGeneratedError\",\n\t\t\tmessage: \"No transcript generated.\"\n\t\t});\n\t\tthis.responses = options.responses;\n\t}\n};\nvar defaultDownload = createDownload();\nasync function transcribe({ model, audio, providerOptions = {}, maxRetries: maxRetriesArg, abortSignal, headers, download: downloadFn = defaultDownload }) {\n\tif (model.specificationVersion !== \"v2\") throw new UnsupportedModelVersionError({\n\t\tversion: model.specificationVersion,\n\t\tprovider: model.provider,\n\t\tmodelId: model.modelId\n\t});\n\tconst { retry } = prepareRetries({\n\t\tmaxRetries: maxRetriesArg,\n\t\tabortSignal\n\t});\n\tconst headersWithUserAgent = withUserAgentSuffix(headers != null ? headers : {}, `ai/${VERSION}`);\n\tconst audioData = audio instanceof URL ? (await downloadFn({\n\t\turl: audio,\n\t\tabortSignal\n\t})).data : convertDataContentToUint8Array(audio);\n\tconst result = await retry(() => {\n\t\tvar _a16;\n\t\treturn model.doGenerate({\n\t\t\taudio: audioData,\n\t\t\tabortSignal,\n\t\t\theaders: headersWithUserAgent,\n\t\t\tproviderOptions,\n\t\t\tmediaType: (_a16 = detectMediaType({\n\t\t\t\tdata: audioData,\n\t\t\t\tsignatures: audioMediaTypeSignatures\n\t\t\t})) != null ? _a16 : \"audio/wav\"\n\t\t});\n\t});\n\tlogWarnings(result.warnings);\n\tif (!result.text) throw new NoTranscriptGeneratedError({ responses: [result.response] });\n\treturn new DefaultTranscriptionResult({\n\t\ttext: result.text,\n\t\tsegments: result.segments,\n\t\tlanguage: result.language,\n\t\tdurationInSeconds: result.durationInSeconds,\n\t\twarnings: result.warnings,\n\t\tresponses: [result.response],\n\t\tproviderMetadata: result.providerMetadata\n\t});\n}\nvar DefaultTranscriptionResult = class {\n\tconstructor(options) {\n\t\tvar _a16;\n\t\tthis.text = options.text;\n\t\tthis.segments = options.segments;\n\t\tthis.language = options.language;\n\t\tthis.durationInSeconds = options.durationInSeconds;\n\t\tthis.warnings = options.warnings;\n\t\tthis.responses = options.responses;\n\t\tthis.providerMetadata = (_a16 = options.providerMetadata) != null ? _a16 : {};\n\t}\n};\nasync function processTextStream({ stream, onTextPart }) {\n\tconst reader = stream.pipeThrough(new TextDecoderStream()).getReader();\n\twhile (true) {\n\t\tconst { done, value } = await reader.read();\n\t\tif (done) break;\n\t\tawait onTextPart(value);\n\t}\n}\nvar getOriginalFetch = () => fetch;\nasync function callCompletionApi({ api, prompt, credentials, headers, body, streamProtocol = \"data\", setCompletion, setLoading, setError, setAbortController, onFinish, onError, fetch: fetch2 = getOriginalFetch() }) {\n\tvar _a16;\n\ttry {\n\t\tsetLoading(true);\n\t\tsetError(void 0);\n\t\tconst abortController = new AbortController();\n\t\tsetAbortController(abortController);\n\t\tsetCompletion(\"\");\n\t\tconst response = await fetch2(api, {\n\t\t\tmethod: \"POST\",\n\t\t\tbody: JSON.stringify({\n\t\t\t\tprompt,\n\t\t\t\t...body\n\t\t\t}),\n\t\t\tcredentials,\n\t\t\theaders: withUserAgentSuffix({\n\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\t...headers\n\t\t\t}, `ai-sdk/${VERSION}`, getRuntimeEnvironmentUserAgent()),\n\t\t\tsignal: abortController.signal\n\t\t}).catch((err) => {\n\t\t\tthrow err;\n\t\t});\n\t\tif (!response.ok) throw new Error((_a16 = await response.text()) != null ? _a16 : \"Failed to fetch the chat response.\");\n\t\tif (!response.body) throw new Error(\"The response body is empty.\");\n\t\tlet result = \"\";\n\t\tswitch (streamProtocol) {\n\t\t\tcase \"text\":\n\t\t\t\tawait processTextStream({\n\t\t\t\t\tstream: response.body,\n\t\t\t\t\tonTextPart: (chunk) => {\n\t\t\t\t\t\tresult += chunk;\n\t\t\t\t\t\tsetCompletion(result);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase \"data\":\n\t\t\t\tawait consumeStream({\n\t\t\t\t\tstream: parseJsonEventStream({\n\t\t\t\t\t\tstream: response.body,\n\t\t\t\t\t\tschema: uiMessageChunkSchema\n\t\t\t\t\t}).pipeThrough(new TransformStream({ async transform(part) {\n\t\t\t\t\t\tif (!part.success) throw part.error;\n\t\t\t\t\t\tconst streamPart = part.value;\n\t\t\t\t\t\tif (streamPart.type === \"text-delta\") {\n\t\t\t\t\t\t\tresult += streamPart.delta;\n\t\t\t\t\t\t\tsetCompletion(result);\n\t\t\t\t\t\t} else if (streamPart.type === \"error\") throw new Error(streamPart.errorText);\n\t\t\t\t\t} })),\n\t\t\t\t\tonError: (error) => {\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tdefault: throw new Error(`Unknown stream protocol: ${streamProtocol}`);\n\t\t}\n\t\tif (onFinish) onFinish(prompt, result);\n\t\tsetAbortController(null);\n\t\treturn result;\n\t} catch (err) {\n\t\tif (err.name === \"AbortError\") {\n\t\t\tsetAbortController(null);\n\t\t\treturn null;\n\t\t}\n\t\tif (err instanceof Error) {\n\t\t\tif (onError) onError(err);\n\t\t}\n\t\tsetError(err);\n\t} finally {\n\t\tsetLoading(false);\n\t}\n}\nasync function convertFileListToFileUIParts(files) {\n\tif (files == null) return [];\n\tif (!globalThis.FileList || !(files instanceof globalThis.FileList)) throw new Error(\"FileList is not supported in the current environment\");\n\treturn Promise.all(Array.from(files).map(async (file) => {\n\t\tconst { name: name16, type } = file;\n\t\treturn {\n\t\t\ttype: \"file\",\n\t\t\tmediaType: type,\n\t\t\tfilename: name16,\n\t\t\turl: await new Promise((resolve2, reject) => {\n\t\t\t\tconst reader = new FileReader();\n\t\t\t\treader.onload = (readerEvent) => {\n\t\t\t\t\tvar _a16;\n\t\t\t\t\tresolve2((_a16 = readerEvent.target) == null ? void 0 : _a16.result);\n\t\t\t\t};\n\t\t\t\treader.onerror = (error) => reject(error);\n\t\t\t\treader.readAsDataURL(file);\n\t\t\t})\n\t\t};\n\t}));\n}\nvar HttpChatTransport = class {\n\tconstructor({ api = \"/api/chat\", credentials, headers, body, fetch: fetch2, prepareSendMessagesRequest, prepareReconnectToStreamRequest }) {\n\t\tthis.api = api;\n\t\tthis.credentials = credentials;\n\t\tthis.headers = headers;\n\t\tthis.body = body;\n\t\tthis.fetch = fetch2;\n\t\tthis.prepareSendMessagesRequest = prepareSendMessagesRequest;\n\t\tthis.prepareReconnectToStreamRequest = prepareReconnectToStreamRequest;\n\t}\n\tasync sendMessages({ abortSignal, ...options }) {\n\t\tvar _a16, _b, _c, _d, _e;\n\t\tconst resolvedBody = await resolve(this.body);\n\t\tconst resolvedHeaders = await resolve(this.headers);\n\t\tconst resolvedCredentials = await resolve(this.credentials);\n\t\tconst baseHeaders = {\n\t\t\t...normalizeHeaders(resolvedHeaders),\n\t\t\t...normalizeHeaders(options.headers)\n\t\t};\n\t\tconst preparedRequest = await ((_a16 = this.prepareSendMessagesRequest) == null ? void 0 : _a16.call(this, {\n\t\t\tapi: this.api,\n\t\t\tid: options.chatId,\n\t\t\tmessages: options.messages,\n\t\t\tbody: {\n\t\t\t\t...resolvedBody,\n\t\t\t\t...options.body\n\t\t\t},\n\t\t\theaders: baseHeaders,\n\t\t\tcredentials: resolvedCredentials,\n\t\t\trequestMetadata: options.metadata,\n\t\t\ttrigger: options.trigger,\n\t\t\tmessageId: options.messageId\n\t\t}));\n\t\tconst api = (_b = preparedRequest == null ? void 0 : preparedRequest.api) != null ? _b : this.api;\n\t\tconst headers = (preparedRequest == null ? void 0 : preparedRequest.headers) !== void 0 ? normalizeHeaders(preparedRequest.headers) : baseHeaders;\n\t\tconst body = (preparedRequest == null ? void 0 : preparedRequest.body) !== void 0 ? preparedRequest.body : {\n\t\t\t...resolvedBody,\n\t\t\t...options.body,\n\t\t\tid: options.chatId,\n\t\t\tmessages: options.messages,\n\t\t\ttrigger: options.trigger,\n\t\t\tmessageId: options.messageId\n\t\t};\n\t\tconst credentials = (_c = preparedRequest == null ? void 0 : preparedRequest.credentials) != null ? _c : resolvedCredentials;\n\t\tconst response = await ((_d = this.fetch) != null ? _d : globalThis.fetch)(api, {\n\t\t\tmethod: \"POST\",\n\t\t\theaders: {\n\t\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t\t...headers\n\t\t\t},\n\t\t\tbody: JSON.stringify(body),\n\t\t\tcredentials,\n\t\t\tsignal: abortSignal\n\t\t});\n\t\tif (!response.ok) throw new Error((_e = await response.text()) != null ? _e : \"Failed to fetch the chat response.\");\n\t\tif (!response.body) throw new Error(\"The response body is empty.\");\n\t\treturn this.processResponseStream(response.body);\n\t}\n\tasync reconnectToStream(options) {\n\t\tvar _a16, _b, _c, _d, _e;\n\t\tconst resolvedBody = await resolve(this.body);\n\t\tconst resolvedHeaders = await resolve(this.headers);\n\t\tconst resolvedCredentials = await resolve(this.credentials);\n\t\tconst baseHeaders = {\n\t\t\t...normalizeHeaders(resolvedHeaders),\n\t\t\t...normalizeHeaders(options.headers)\n\t\t};\n\t\tconst preparedRequest = await ((_a16 = this.prepareReconnectToStreamRequest) == null ? void 0 : _a16.call(this, {\n\t\t\tapi: this.api,\n\t\t\tid: options.chatId,\n\t\t\tbody: {\n\t\t\t\t...resolvedBody,\n\t\t\t\t...options.body\n\t\t\t},\n\t\t\theaders: baseHeaders,\n\t\t\tcredentials: resolvedCredentials,\n\t\t\trequestMetadata: options.metadata\n\t\t}));\n\t\tconst api = (_b = preparedRequest == null ? void 0 : preparedRequest.api) != null ? _b : `${this.api}/${options.chatId}/stream`;\n\t\tconst headers = (preparedRequest == null ? void 0 : preparedRequest.headers) !== void 0 ? normalizeHeaders(preparedRequest.headers) : baseHeaders;\n\t\tconst credentials = (_c = preparedRequest == null ? void 0 : preparedRequest.credentials) != null ? _c : resolvedCredentials;\n\t\tconst response = await ((_d = this.fetch) != null ? _d : globalThis.fetch)(api, {\n\t\t\tmethod: \"GET\",\n\t\t\theaders,\n\t\t\tcredentials\n\t\t});\n\t\tif (response.status === 204) return null;\n\t\tif (!response.ok) throw new Error((_e = await response.text()) != null ? _e : \"Failed to fetch the chat response.\");\n\t\tif (!response.body) throw new Error(\"The response body is empty.\");\n\t\treturn this.processResponseStream(response.body);\n\t}\n};\nvar DefaultChatTransport = class extends HttpChatTransport {\n\tconstructor(options = {}) {\n\t\tsuper(options);\n\t}\n\tprocessResponseStream(stream) {\n\t\treturn parseJsonEventStream({\n\t\t\tstream,\n\t\t\tschema: uiMessageChunkSchema\n\t\t}).pipeThrough(new TransformStream({ async transform(chunk, controller) {\n\t\t\tif (!chunk.success) throw chunk.error;\n\t\t\tcontroller.enqueue(chunk.value);\n\t\t} }));\n\t}\n};\nvar AbstractChat = class {\n\tconstructor({ generateId: generateId3 = generateId, id = generateId3(), transport = new DefaultChatTransport(), messageMetadataSchema, dataPartSchemas, state, onError, onToolCall, onFinish, onData, sendAutomaticallyWhen }) {\n\t\tthis.activeResponse = void 0;\n\t\tthis.jobExecutor = new SerialJobExecutor();\n\t\t/**\n\t\t* Appends or replaces a user message to the chat list. This triggers the API call to fetch\n\t\t* the assistant's response.\n\t\t*\n\t\t* If a messageId is provided, the message will be replaced.\n\t\t*/\n\t\tthis.sendMessage = async (message, options) => {\n\t\t\tvar _a16, _b, _c, _d;\n\t\t\tif (message == null) {\n\t\t\t\tawait this.makeRequest({\n\t\t\t\t\ttrigger: \"submit-message\",\n\t\t\t\t\tmessageId: (_a16 = this.lastMessage) == null ? void 0 : _a16.id,\n\t\t\t\t\t...options\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tlet uiMessage;\n\t\t\tif (\"text\" in message || \"files\" in message) uiMessage = { parts: [...Array.isArray(message.files) ? message.files : await convertFileListToFileUIParts(message.files), ...\"text\" in message && message.text != null ? [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: message.text\n\t\t\t}] : []] };\n\t\t\telse uiMessage = message;\n\t\t\tif (message.messageId != null) {\n\t\t\t\tconst messageIndex = this.state.messages.findIndex((m) => m.id === message.messageId);\n\t\t\t\tif (messageIndex === -1) throw new Error(`message with id ${message.messageId} not found`);\n\t\t\t\tif (this.state.messages[messageIndex].role !== \"user\") throw new Error(`message with id ${message.messageId} is not a user message`);\n\t\t\t\tthis.state.messages = this.state.messages.slice(0, messageIndex + 1);\n\t\t\t\tthis.state.replaceMessage(messageIndex, {\n\t\t\t\t\t...uiMessage,\n\t\t\t\t\tid: message.messageId,\n\t\t\t\t\trole: (_b = uiMessage.role) != null ? _b : \"user\",\n\t\t\t\t\tmetadata: message.metadata\n\t\t\t\t});\n\t\t\t} else this.state.pushMessage({\n\t\t\t\t...uiMessage,\n\t\t\t\tid: (_c = uiMessage.id) != null ? _c : this.generateId(),\n\t\t\t\trole: (_d = uiMessage.role) != null ? _d : \"user\",\n\t\t\t\tmetadata: message.metadata\n\t\t\t});\n\t\t\tawait this.makeRequest({\n\t\t\t\ttrigger: \"submit-message\",\n\t\t\t\tmessageId: message.messageId,\n\t\t\t\t...options\n\t\t\t});\n\t\t};\n\t\t/**\n\t\t* Regenerate the assistant message with the provided message id.\n\t\t* If no message id is provided, the last assistant message will be regenerated.\n\t\t*/\n\t\tthis.regenerate = async ({ messageId, ...options } = {}) => {\n\t\t\tconst messageIndex = messageId == null ? this.state.messages.length - 1 : this.state.messages.findIndex((message) => message.id === messageId);\n\t\t\tif (messageIndex === -1) throw new Error(`message ${messageId} not found`);\n\t\t\tthis.state.messages = this.state.messages.slice(0, this.messages[messageIndex].role === \"assistant\" ? messageIndex : messageIndex + 1);\n\t\t\tawait this.makeRequest({\n\t\t\t\ttrigger: \"regenerate-message\",\n\t\t\t\tmessageId,\n\t\t\t\t...options\n\t\t\t});\n\t\t};\n\t\t/**\n\t\t* Attempt to resume an ongoing streaming response.\n\t\t*/\n\t\tthis.resumeStream = async (options = {}) => {\n\t\t\tawait this.makeRequest({\n\t\t\t\ttrigger: \"resume-stream\",\n\t\t\t\t...options\n\t\t\t});\n\t\t};\n\t\t/**\n\t\t* Clear the error state and set the status to ready if the chat is in an error state.\n\t\t*/\n\t\tthis.clearError = () => {\n\t\t\tif (this.status === \"error\") {\n\t\t\t\tthis.state.error = void 0;\n\t\t\t\tthis.setStatus({ status: \"ready\" });\n\t\t\t}\n\t\t};\n\t\tthis.addToolOutput = async ({ state = \"output-available\", tool: tool2, toolCallId, output, errorText }) => this.jobExecutor.run(async () => {\n\t\t\tvar _a16, _b;\n\t\t\tconst messages = this.state.messages;\n\t\t\tconst lastMessage = messages[messages.length - 1];\n\t\t\tthis.state.replaceMessage(messages.length - 1, {\n\t\t\t\t...lastMessage,\n\t\t\t\tparts: lastMessage.parts.map((part) => isToolOrDynamicToolUIPart(part) && part.toolCallId === toolCallId ? {\n\t\t\t\t\t...part,\n\t\t\t\t\tstate,\n\t\t\t\t\toutput,\n\t\t\t\t\terrorText\n\t\t\t\t} : part)\n\t\t\t});\n\t\t\tif (this.activeResponse) this.activeResponse.state.message.parts = this.activeResponse.state.message.parts.map((part) => isToolOrDynamicToolUIPart(part) && part.toolCallId === toolCallId ? {\n\t\t\t\t...part,\n\t\t\t\tstate,\n\t\t\t\toutput,\n\t\t\t\terrorText\n\t\t\t} : part);\n\t\t\tif (this.status !== \"streaming\" && this.status !== \"submitted\" && ((_a16 = this.sendAutomaticallyWhen) == null ? void 0 : _a16.call(this, { messages: this.state.messages }))) this.makeRequest({\n\t\t\t\ttrigger: \"submit-message\",\n\t\t\t\tmessageId: (_b = this.lastMessage) == null ? void 0 : _b.id\n\t\t\t});\n\t\t});\n\t\t/** @deprecated Use addToolOutput */\n\t\tthis.addToolResult = this.addToolOutput;\n\t\t/**\n\t\t* Abort the current request immediately, keep the generated tokens if any.\n\t\t*/\n\t\tthis.stop = async () => {\n\t\t\tvar _a16;\n\t\t\tif (this.status !== \"streaming\" && this.status !== \"submitted\") return;\n\t\t\tif ((_a16 = this.activeResponse) == null ? void 0 : _a16.abortController) this.activeResponse.abortController.abort();\n\t\t};\n\t\tthis.id = id;\n\t\tthis.transport = transport;\n\t\tthis.generateId = generateId3;\n\t\tthis.messageMetadataSchema = messageMetadataSchema;\n\t\tthis.dataPartSchemas = dataPartSchemas;\n\t\tthis.state = state;\n\t\tthis.onError = onError;\n\t\tthis.onToolCall = onToolCall;\n\t\tthis.onFinish = onFinish;\n\t\tthis.onData = onData;\n\t\tthis.sendAutomaticallyWhen = sendAutomaticallyWhen;\n\t}\n\t/**\n\t* Hook status:\n\t*\n\t* - `submitted`: The message has been sent to the API and we're awaiting the start of the response stream.\n\t* - `streaming`: The response is actively streaming in from the API, receiving chunks of data.\n\t* - `ready`: The full response has been received and processed; a new user message can be submitted.\n\t* - `error`: An error occurred during the API request, preventing successful completion.\n\t*/\n\tget status() {\n\t\treturn this.state.status;\n\t}\n\tsetStatus({ status, error }) {\n\t\tif (this.status === status) return;\n\t\tthis.state.status = status;\n\t\tthis.state.error = error;\n\t}\n\tget error() {\n\t\treturn this.state.error;\n\t}\n\tget messages() {\n\t\treturn this.state.messages;\n\t}\n\tget lastMessage() {\n\t\treturn this.state.messages[this.state.messages.length - 1];\n\t}\n\tset messages(messages) {\n\t\tthis.state.messages = messages;\n\t}\n\tasync makeRequest({ trigger, metadata, headers, body, messageId }) {\n\t\tvar _a16, _b, _c;\n\t\tthis.setStatus({\n\t\t\tstatus: \"submitted\",\n\t\t\terror: void 0\n\t\t});\n\t\tconst lastMessage = this.lastMessage;\n\t\tlet isAbort = false;\n\t\tlet isDisconnect = false;\n\t\tlet isError = false;\n\t\tlet activeResponse;\n\t\ttry {\n\t\t\tconst response = {\n\t\t\t\tstate: createStreamingUIMessageState({\n\t\t\t\t\tlastMessage: this.state.snapshot(lastMessage),\n\t\t\t\t\tmessageId: this.generateId()\n\t\t\t\t}),\n\t\t\t\tabortController: new AbortController()\n\t\t\t};\n\t\t\tactiveResponse = response;\n\t\t\tresponse.abortController.signal.addEventListener(\"abort\", () => {\n\t\t\t\tisAbort = true;\n\t\t\t});\n\t\t\tthis.activeResponse = response;\n\t\t\tlet stream;\n\t\t\tif (trigger === \"resume-stream\") {\n\t\t\t\tconst reconnect = await this.transport.reconnectToStream({\n\t\t\t\t\tchatId: this.id,\n\t\t\t\t\tmetadata,\n\t\t\t\t\theaders,\n\t\t\t\t\tbody\n\t\t\t\t});\n\t\t\t\tif (reconnect == null) {\n\t\t\t\t\tthis.setStatus({ status: \"ready\" });\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tstream = reconnect;\n\t\t\t} else stream = await this.transport.sendMessages({\n\t\t\t\tchatId: this.id,\n\t\t\t\tmessages: this.state.messages,\n\t\t\t\tabortSignal: response.abortController.signal,\n\t\t\t\tmetadata,\n\t\t\t\theaders,\n\t\t\t\tbody,\n\t\t\t\ttrigger,\n\t\t\t\tmessageId\n\t\t\t});\n\t\t\tconst runUpdateMessageJob = (job) => this.jobExecutor.run(() => job({\n\t\t\t\tstate: response.state,\n\t\t\t\twrite: () => {\n\t\t\t\t\tvar _a17;\n\t\t\t\t\tthis.setStatus({ status: \"streaming\" });\n\t\t\t\t\tif (response.state.message.id === ((_a17 = this.lastMessage) == null ? void 0 : _a17.id)) this.state.replaceMessage(this.state.messages.length - 1, response.state.message);\n\t\t\t\t\telse this.state.pushMessage(response.state.message);\n\t\t\t\t}\n\t\t\t}));\n\t\t\tawait consumeStream({\n\t\t\t\tstream: processUIMessageStream({\n\t\t\t\t\tstream,\n\t\t\t\t\tonToolCall: this.onToolCall,\n\t\t\t\t\tonData: this.onData,\n\t\t\t\t\tmessageMetadataSchema: this.messageMetadataSchema,\n\t\t\t\t\tdataPartSchemas: this.dataPartSchemas,\n\t\t\t\t\trunUpdateMessageJob,\n\t\t\t\t\tonError: (error) => {\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tonError: (error) => {\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.setStatus({ status: \"ready\" });\n\t\t} catch (err) {\n\t\t\tif (isAbort || err.name === \"AbortError\") {\n\t\t\t\tisAbort = true;\n\t\t\t\tthis.setStatus({ status: \"ready\" });\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tisError = true;\n\t\t\tif (err instanceof TypeError && (err.message.toLowerCase().includes(\"fetch\") || err.message.toLowerCase().includes(\"network\"))) isDisconnect = true;\n\t\t\tif (this.onError && err instanceof Error) this.onError(err);\n\t\t\tthis.setStatus({\n\t\t\t\tstatus: \"error\",\n\t\t\t\terror: err\n\t\t\t});\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\tif (activeResponse) (_a16 = this.onFinish) == null || _a16.call(this, {\n\t\t\t\t\tmessage: activeResponse.state.message,\n\t\t\t\t\tmessages: this.state.messages,\n\t\t\t\t\tisAbort,\n\t\t\t\t\tisDisconnect,\n\t\t\t\t\tisError,\n\t\t\t\t\tfinishReason: activeResponse.state.finishReason\n\t\t\t\t});\n\t\t\t} catch (err) {\n\t\t\t\tconsole.error(err);\n\t\t\t}\n\t\t\tif (this.activeResponse === activeResponse) this.activeResponse = void 0;\n\t\t}\n\t\tif (((_b = this.sendAutomaticallyWhen) == null ? void 0 : _b.call(this, { messages: this.state.messages })) && !isError) await this.makeRequest({\n\t\t\ttrigger: \"submit-message\",\n\t\t\tmessageId: (_c = this.lastMessage) == null ? void 0 : _c.id,\n\t\t\tmetadata,\n\t\t\theaders,\n\t\t\tbody\n\t\t});\n\t}\n};\nfunction lastAssistantMessageIsCompleteWithToolCalls({ messages }) {\n\tconst message = messages[messages.length - 1];\n\tif (!message) return false;\n\tif (message.role !== \"assistant\") return false;\n\tconst lastStepStartIndex = message.parts.reduce((lastIndex, part, index) => {\n\t\treturn part.type === \"step-start\" ? index : lastIndex;\n\t}, -1);\n\tconst lastStepToolInvocations = message.parts.slice(lastStepStartIndex + 1).filter(isToolOrDynamicToolUIPart).filter((part) => !part.providerExecuted);\n\treturn lastStepToolInvocations.length > 0 && lastStepToolInvocations.every((part) => part.state === \"output-available\" || part.state === \"output-error\");\n}\nfunction transformTextToUiMessageStream({ stream }) {\n\treturn stream.pipeThrough(new TransformStream({\n\t\tstart(controller) {\n\t\t\tcontroller.enqueue({ type: \"start\" });\n\t\t\tcontroller.enqueue({ type: \"start-step\" });\n\t\t\tcontroller.enqueue({\n\t\t\t\ttype: \"text-start\",\n\t\t\t\tid: \"text-1\"\n\t\t\t});\n\t\t},\n\t\tasync transform(part, controller) {\n\t\t\tcontroller.enqueue({\n\t\t\t\ttype: \"text-delta\",\n\t\t\t\tid: \"text-1\",\n\t\t\t\tdelta: part\n\t\t\t});\n\t\t},\n\t\tasync flush(controller) {\n\t\t\tcontroller.enqueue({\n\t\t\t\ttype: \"text-end\",\n\t\t\t\tid: \"text-1\"\n\t\t\t});\n\t\t\tcontroller.enqueue({ type: \"finish-step\" });\n\t\t\tcontroller.enqueue({ type: \"finish\" });\n\t\t}\n\t}));\n}\nvar TextStreamChatTransport = class extends HttpChatTransport {\n\tconstructor(options = {}) {\n\t\tsuper(options);\n\t}\n\tprocessResponseStream(stream) {\n\t\treturn transformTextToUiMessageStream({ stream: stream.pipeThrough(new TextDecoderStream()) });\n\t}\n};\nvar uiMessagesSchema = lazyValidator(() => zodSchema(z.array(z.object({\n\tid: z.string(),\n\trole: z.enum([\n\t\t\"system\",\n\t\t\"user\",\n\t\t\"assistant\"\n\t]),\n\tmetadata: z.unknown().optional(),\n\tparts: z.array(z.union([\n\t\tz.object({\n\t\t\ttype: z.literal(\"text\"),\n\t\t\ttext: z.string(),\n\t\t\tstate: z.enum([\"streaming\", \"done\"]).optional(),\n\t\t\tproviderMetadata: providerMetadataSchema.optional()\n\t\t}),\n\t\tz.object({\n\t\t\ttype: z.literal(\"reasoning\"),\n\t\t\ttext: z.string(),\n\t\t\tstate: z.enum([\"streaming\", \"done\"]).optional(),\n\t\t\tproviderMetadata: providerMetadataSchema.optional()\n\t\t}),\n\t\tz.object({\n\t\t\ttype: z.literal(\"source-url\"),\n\t\t\tsourceId: z.string(),\n\t\t\turl: z.string(),\n\t\t\ttitle: z.string().optional(),\n\t\t\tproviderMetadata: providerMetadataSchema.optional()\n\t\t}),\n\t\tz.object({\n\t\t\ttype: z.literal(\"source-document\"),\n\t\t\tsourceId: z.string(),\n\t\t\tmediaType: z.string(),\n\t\t\ttitle: z.string(),\n\t\t\tfilename: z.string().optional(),\n\t\t\tproviderMetadata: providerMetadataSchema.optional()\n\t\t}),\n\t\tz.object({\n\t\t\ttype: z.literal(\"file\"),\n\t\t\tmediaType: z.string(),\n\t\t\tfilename: z.string().optional(),\n\t\t\turl: z.string(),\n\t\t\tproviderMetadata: providerMetadataSchema.optional()\n\t\t}),\n\t\tz.object({ type: z.literal(\"step-start\") }),\n\t\tz.object({\n\t\t\ttype: z.string().startsWith(\"data-\"),\n\t\t\tid: z.string().optional(),\n\t\t\tdata: z.unknown()\n\t\t}),\n\t\tz.object({\n\t\t\ttype: z.literal(\"dynamic-tool\"),\n\t\t\ttoolName: z.string(),\n\t\t\ttoolCallId: z.string(),\n\t\t\tstate: z.literal(\"input-streaming\"),\n\t\t\tinput: z.unknown().optional(),\n\t\t\tproviderExecuted: z.boolean().optional(),\n\t\t\toutput: z.never().optional(),\n\t\t\terrorText: z.never().optional()\n\t\t}),\n\t\tz.object({\n\t\t\ttype: z.literal(\"dynamic-tool\"),\n\t\t\ttoolName: z.string(),\n\t\t\ttoolCallId: z.string(),\n\t\t\tstate: z.literal(\"input-available\"),\n\t\t\tinput: z.unknown(),\n\t\t\tproviderExecuted: z.boolean().optional(),\n\t\t\toutput: z.never().optional(),\n\t\t\terrorText: z.never().optional(),\n\t\t\tcallProviderMetadata: providerMetadataSchema.optional()\n\t\t}),\n\t\tz.object({\n\t\t\ttype: z.literal(\"dynamic-tool\"),\n\t\t\ttoolName: z.string(),\n\t\t\ttoolCallId: z.string(),\n\t\t\tstate: z.literal(\"output-available\"),\n\t\t\tinput: z.unknown(),\n\t\t\tproviderExecuted: z.boolean().optional(),\n\t\t\toutput: z.unknown(),\n\t\t\terrorText: z.never().optional(),\n\t\t\tcallProviderMetadata: providerMetadataSchema.optional(),\n\t\t\tpreliminary: z.boolean().optional()\n\t\t}),\n\t\tz.object({\n\t\t\ttype: z.literal(\"dynamic-tool\"),\n\t\t\ttoolName: z.string(),\n\t\t\ttoolCallId: z.string(),\n\t\t\tstate: z.literal(\"output-error\"),\n\t\t\tinput: z.unknown(),\n\t\t\tproviderExecuted: z.boolean().optional(),\n\t\t\toutput: z.never().optional(),\n\t\t\terrorText: z.string(),\n\t\t\tcallProviderMetadata: providerMetadataSchema.optional()\n\t\t}),\n\t\tz.object({\n\t\t\ttype: z.string().startsWith(\"tool-\"),\n\t\t\ttoolCallId: z.string(),\n\t\t\tstate: z.literal(\"input-streaming\"),\n\t\t\tproviderExecuted: z.boolean().optional(),\n\t\t\tinput: z.unknown().optional(),\n\t\t\toutput: z.never().optional(),\n\t\t\terrorText: z.never().optional(),\n\t\t\tapproval: z.never().optional()\n\t\t}),\n\t\tz.object({\n\t\t\ttype: z.string().startsWith(\"tool-\"),\n\t\t\ttoolCallId: z.string(),\n\t\t\tstate: z.literal(\"input-available\"),\n\t\t\tproviderExecuted: z.boolean().optional(),\n\t\t\tinput: z.unknown(),\n\t\t\toutput: z.never().optional(),\n\t\t\terrorText: z.never().optional(),\n\t\t\tcallProviderMetadata: providerMetadataSchema.optional(),\n\t\t\tapproval: z.never().optional()\n\t\t}),\n\t\tz.object({\n\t\t\ttype: z.string().startsWith(\"tool-\"),\n\t\t\ttoolCallId: z.string(),\n\t\t\tstate: z.literal(\"approval-requested\"),\n\t\t\tinput: z.unknown(),\n\t\t\tproviderExecuted: z.boolean().optional(),\n\t\t\toutput: z.never().optional(),\n\t\t\terrorText: z.never().optional(),\n\t\t\tcallProviderMetadata: providerMetadataSchema.optional(),\n\t\t\tapproval: z.object({\n\t\t\t\tid: z.string(),\n\t\t\t\tapproved: z.never().optional(),\n\t\t\t\treason: z.never().optional()\n\t\t\t})\n\t\t}),\n\t\tz.object({\n\t\t\ttype: z.string().startsWith(\"tool-\"),\n\t\t\ttoolCallId: z.string(),\n\t\t\tstate: z.literal(\"approval-responded\"),\n\t\t\tinput: z.unknown(),\n\t\t\tproviderExecuted: z.boolean().optional(),\n\t\t\toutput: z.never().optional(),\n\t\t\terrorText: z.never().optional(),\n\t\t\tcallProviderMetadata: providerMetadataSchema.optional(),\n\t\t\tapproval: z.object({\n\t\t\t\tid: z.string(),\n\t\t\t\tapproved: z.boolean(),\n\t\t\t\treason: z.string().optional()\n\t\t\t})\n\t\t}),\n\t\tz.object({\n\t\t\ttype: z.string().startsWith(\"tool-\"),\n\t\t\ttoolCallId: z.string(),\n\t\t\tstate: z.literal(\"output-available\"),\n\t\t\tproviderExecuted: z.boolean().optional(),\n\t\t\tinput: z.unknown(),\n\t\t\toutput: z.unknown(),\n\t\t\terrorText: z.never().optional(),\n\t\t\tcallProviderMetadata: providerMetadataSchema.optional(),\n\t\t\tpreliminary: z.boolean().optional(),\n\t\t\tapproval: z.object({\n\t\t\t\tid: z.string(),\n\t\t\t\tapproved: z.literal(true),\n\t\t\t\treason: z.string().optional()\n\t\t\t}).optional()\n\t\t}),\n\t\tz.object({\n\t\t\ttype: z.string().startsWith(\"tool-\"),\n\t\t\ttoolCallId: z.string(),\n\t\t\tstate: z.literal(\"output-error\"),\n\t\t\tproviderExecuted: z.boolean().optional(),\n\t\t\tinput: z.unknown(),\n\t\t\toutput: z.never().optional(),\n\t\t\terrorText: z.string(),\n\t\t\tcallProviderMetadata: providerMetadataSchema.optional(),\n\t\t\tapproval: z.object({\n\t\t\t\tid: z.string(),\n\t\t\t\tapproved: z.literal(true),\n\t\t\t\treason: z.string().optional()\n\t\t\t}).optional()\n\t\t}),\n\t\tz.object({\n\t\t\ttype: z.string().startsWith(\"tool-\"),\n\t\t\ttoolCallId: z.string(),\n\t\t\tstate: z.literal(\"output-denied\"),\n\t\t\tproviderExecuted: z.boolean().optional(),\n\t\t\tinput: z.unknown(),\n\t\t\toutput: z.never().optional(),\n\t\t\terrorText: z.never().optional(),\n\t\t\tcallProviderMetadata: providerMetadataSchema.optional(),\n\t\t\tapproval: z.object({\n\t\t\t\tid: z.string(),\n\t\t\t\tapproved: z.literal(false),\n\t\t\t\treason: z.string().optional()\n\t\t\t})\n\t\t})\n\t]))\n}).superRefine((message, context) => {\n\tif (message.role !== \"assistant\" && message.parts.length === 0) context.addIssue({\n\t\torigin: \"array\",\n\t\tcode: \"too_small\",\n\t\tminimum: 1,\n\t\tinclusive: true,\n\t\tinput: message.parts,\n\t\tpath: [\"parts\"],\n\t\tmessage: \"Message must contain at least one part\"\n\t});\n})).nonempty(\"Messages array must not be empty\")));\nasync function safeValidateUIMessages({ messages, metadataSchema, dataSchemas, tools }) {\n\ttry {\n\t\tif (messages == null) return {\n\t\t\tsuccess: false,\n\t\t\terror: new InvalidArgumentError({\n\t\t\t\tparameter: \"messages\",\n\t\t\t\tvalue: messages,\n\t\t\t\tmessage: \"messages parameter must be provided\"\n\t\t\t})\n\t\t};\n\t\tconst validatedMessages = await validateTypes({\n\t\t\tvalue: messages,\n\t\t\tschema: uiMessagesSchema\n\t\t});\n\t\tif (metadataSchema) for (const message of validatedMessages) await validateTypes({\n\t\t\tvalue: message.metadata,\n\t\t\tschema: metadataSchema\n\t\t});\n\t\tif (dataSchemas) for (const message of validatedMessages) {\n\t\t\tconst dataParts = message.parts.filter((part) => part.type.startsWith(\"data-\"));\n\t\t\tfor (const dataPart of dataParts) {\n\t\t\t\tconst dataName = dataPart.type.slice(5);\n\t\t\t\tconst dataSchema = dataSchemas[dataName];\n\t\t\t\tif (!dataSchema) return {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: new TypeValidationError({\n\t\t\t\t\t\tvalue: dataPart.data,\n\t\t\t\t\t\tcause: `No data schema found for data part ${dataName}`\n\t\t\t\t\t})\n\t\t\t\t};\n\t\t\t\tawait validateTypes({\n\t\t\t\t\tvalue: dataPart.data,\n\t\t\t\t\tschema: dataSchema\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tif (tools) for (const message of validatedMessages) {\n\t\t\tconst toolParts = message.parts.filter((part) => part.type.startsWith(\"tool-\"));\n\t\t\tfor (const toolPart of toolParts) {\n\t\t\t\tconst toolName = toolPart.type.slice(5);\n\t\t\t\tconst tool2 = tools[toolName];\n\t\t\t\tif (!tool2) return {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror: new TypeValidationError({\n\t\t\t\t\t\tvalue: toolPart.input,\n\t\t\t\t\t\tcause: `No tool schema found for tool part ${toolName}`\n\t\t\t\t\t})\n\t\t\t\t};\n\t\t\t\tif (toolPart.state === \"input-available\" || toolPart.state === \"output-available\" || toolPart.state === \"output-error\") await validateTypes({\n\t\t\t\t\tvalue: toolPart.input,\n\t\t\t\t\tschema: tool2.inputSchema\n\t\t\t\t});\n\t\t\t\tif (toolPart.state === \"output-available\" && tool2.outputSchema) await validateTypes({\n\t\t\t\t\tvalue: toolPart.output,\n\t\t\t\t\tschema: tool2.outputSchema\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tsuccess: true,\n\t\t\tdata: validatedMessages\n\t\t};\n\t} catch (error) {\n\t\treturn {\n\t\t\tsuccess: false,\n\t\t\terror\n\t\t};\n\t}\n}\nasync function validateUIMessages({ messages, metadataSchema, dataSchemas, tools }) {\n\tconst response = await safeValidateUIMessages({\n\t\tmessages,\n\t\tmetadataSchema,\n\t\tdataSchemas,\n\t\ttools\n\t});\n\tif (!response.success) throw response.error;\n\treturn response.data;\n}\nfunction createUIMessageStream({ execute, onError = () => \"An error occurred.\", originalMessages, onFinish, generateId: generateId3 = generateId }) {\n\tlet controller;\n\tconst ongoingStreamPromises = [];\n\tconst stream = new ReadableStream({ start(controllerArg) {\n\t\tcontroller = controllerArg;\n\t} });\n\tfunction safeEnqueue(data) {\n\t\ttry {\n\t\t\tcontroller.enqueue(data);\n\t\t} catch (error) {}\n\t}\n\ttry {\n\t\tconst result = execute({ writer: {\n\t\t\twrite(part) {\n\t\t\t\tsafeEnqueue(part);\n\t\t\t},\n\t\t\tmerge(streamArg) {\n\t\t\t\tongoingStreamPromises.push((async () => {\n\t\t\t\t\tconst reader = streamArg.getReader();\n\t\t\t\t\twhile (true) {\n\t\t\t\t\t\tconst { done, value } = await reader.read();\n\t\t\t\t\t\tif (done) break;\n\t\t\t\t\t\tsafeEnqueue(value);\n\t\t\t\t\t}\n\t\t\t\t})().catch((error) => {\n\t\t\t\t\tsafeEnqueue({\n\t\t\t\t\t\ttype: \"error\",\n\t\t\t\t\t\terrorText: onError(error)\n\t\t\t\t\t});\n\t\t\t\t}));\n\t\t\t},\n\t\t\tonError\n\t\t} });\n\t\tif (result) ongoingStreamPromises.push(result.catch((error) => {\n\t\t\tsafeEnqueue({\n\t\t\t\ttype: \"error\",\n\t\t\t\terrorText: onError(error)\n\t\t\t});\n\t\t}));\n\t} catch (error) {\n\t\tsafeEnqueue({\n\t\t\ttype: \"error\",\n\t\t\terrorText: onError(error)\n\t\t});\n\t}\n\tnew Promise(async (resolve2) => {\n\t\twhile (ongoingStreamPromises.length > 0) await ongoingStreamPromises.shift();\n\t\tresolve2();\n\t}).finally(() => {\n\t\ttry {\n\t\t\tcontroller.close();\n\t\t} catch (error) {}\n\t});\n\treturn handleUIMessageStreamFinish({\n\t\tstream,\n\t\tmessageId: generateId3(),\n\t\toriginalMessages,\n\t\tonFinish,\n\t\tonError\n\t});\n}\nfunction readUIMessageStream({ message, stream, onError, terminateOnError = false }) {\n\tvar _a16;\n\tlet controller;\n\tlet hasErrored = false;\n\tconst outputStream = new ReadableStream({ start(controllerParam) {\n\t\tcontroller = controllerParam;\n\t} });\n\tconst state = createStreamingUIMessageState({\n\t\tmessageId: (_a16 = message == null ? void 0 : message.id) != null ? _a16 : \"\",\n\t\tlastMessage: message\n\t});\n\tconst handleError = (error) => {\n\t\tonError?.(error);\n\t\tif (!hasErrored && terminateOnError) {\n\t\t\thasErrored = true;\n\t\t\tcontroller?.error(error);\n\t\t}\n\t};\n\tconsumeStream({\n\t\tstream: processUIMessageStream({\n\t\t\tstream,\n\t\t\trunUpdateMessageJob(job) {\n\t\t\t\treturn job({\n\t\t\t\t\tstate,\n\t\t\t\t\twrite: () => {\n\t\t\t\t\t\tcontroller?.enqueue(structuredClone(state.message));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\t\t\tonError: handleError\n\t\t}),\n\t\tonError: handleError\n\t}).finally(() => {\n\t\tif (!hasErrored) controller?.close();\n\t});\n\treturn createAsyncIterableStream(outputStream);\n}\n//#endregion\n//#region src/index.ts\nconst generateText = (options) => generateText$1({\n\t...options,\n\tallowSystemInMessages: false\n});\nconst streamText = (options) => streamText$1({\n\t...options,\n\tallowSystemInMessages: false\n});\n//#endregion\nexport { AISDKError, APICallError, AbstractChat, DefaultChatTransport, DownloadError, EmptyResponseBodyError, Agent as Experimental_Agent, HttpChatTransport, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidPromptError, InvalidResponseDataError, InvalidStreamPartError, InvalidToolInputError, JSONParseError, JsonToSseTransformStream, LoadAPIKeyError, LoadSettingError, MessageConversionError, NoContentGeneratedError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputGeneratedError, NoOutputSpecifiedError, NoSpeechGeneratedError, NoSuchModelError, NoSuchProviderError, NoSuchToolError, output_exports as Output, RetryError, SerialJobExecutor, TextStreamChatTransport, TooManyEmbeddingValuesForCallError, ToolCallRepairError, TypeValidationError, UI_MESSAGE_STREAM_HEADERS, UnsupportedFunctionalityError, UnsupportedModelVersionError, asSchema, assistantModelMessageSchema, callCompletionApi, consumeStream, convertFileListToFileUIParts, convertToCoreMessages, convertToModelMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createDownload, createGatewayProvider as createGateway, createIdGenerator, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultSettingsMiddleware, dynamicTool, embed, embedMany, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractReasoningMiddleware, gateway, generateId, generateObject, generateText, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, hasToolCall, isDataUIPart, isDeepEqualData, isFileUIPart, isReasoningUIPart, isTextUIPart, isToolOrDynamicToolUIPart, isToolUIPart, jsonSchema, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parseJsonEventStream, parsePartialJson, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, pruneMessages, readUIMessageStream, safeValidateUIMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, tool, toolModelMessageSchema, uiMessageChunkSchema, userModelMessageSchema, validateUIMessages, wrapLanguageModel, wrapProvider, zodSchema };\n\n//# sourceMappingURL=index.js.map"],"mappings":"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"}