/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/@mastra/memory@1.15.0/dist/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
import{__commonJS,require_token_error,__toESM}from"./chunk-SVPZMV27.js";import{__commonJS as __commonJS$1,require_token_error as require_token_error$1,__toESM as __toESM$1}from"./chunk-RC6RZVYE.js";import{truncateStringByTokens,resolveToolResultValue,formatToolResultForObserver}from"./chunk-42AZEBIK.js";export{ModelByInputTokens,getObservationsAsOf}from"./chunk-42AZEBIK.js";import{ZodFirstPartyTypeKind}from"zod/v3";import{z}from"zod";import*as z4 from"zod/v4";import{z as z$1}from"zod/v4";import{MessageList}from"@mastra/core/agent";import{coreFeatures}from"@mastra/core/features";import{MastraMemory,filterSystemReminderMessages,removeWorkingMemoryTags,extractWorkingMemoryContent}from"@mastra/core/memory";export{extractWorkingMemoryContent,extractWorkingMemoryTags,removeWorkingMemoryTags}from"@mastra/core/memory";import{EntityType,SpanType}from"@mastra/core/observability";import{generateEmptyFromSchema}from"@mastra/core/utils";import{isStandardSchemaWithJSON,toStandardSchema,standardSchemaToJSONSchema}from"@mastra/schema-compat/schema";import{Mutex}from"async-mutex";import xxhash from"xxhash-wasm";import{createTool}from"@mastra/core/tools";import{estimateTokenCount}from"tokenx";import{isStandardSchemaWithJSON as isStandardSchemaWithJSON$1,toStandardSchema as toStandardSchema$1}from"@mastra/core/schema";export{MessageHistory,SemanticRecall,WorkingMemory}from"@mastra/core/processors";var _a,__create=Object.create,__defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__commonJS3=(e,t)=>function(){return t||(0,e[__getOwnPropNames(e)[0]])((t={exports:{}}).exports,t),t.exports},__copyProps=(e,t,r,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let n of __getOwnPropNames(t))__hasOwnProp.call(e,n)||n===r||__defProp(e,n,{get:()=>t[n],enumerable:!(a=__getOwnPropDesc(t,n))||a.enumerable});return e},__toESM3=(e,t,r)=>(r=null!=e?__create(__getProtoOf(e)):{},__copyProps(__defProp(r,"default",{value:e,enumerable:!0}),e)),require_secure_json_parse=__commonJS3({"../../../node_modules/.pnpm/secure-json-parse@2.7.0/node_modules/secure-json-parse/index.js"(e,t){var r="undefined"!=typeof Buffer,a=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,n=/"(?: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*:/;function o(e,t,o){null==o&&null!==t&&"object"==typeof t&&(o=t,t=void 0),r&&Buffer.isBuffer(e)&&(e=e.toString()),e&&65279===e.charCodeAt(0)&&(e=e.slice(1));const i=JSON.parse(e,t);if(null===i||"object"!=typeof i)return i;const c=o&&o.protoAction||"error",l=o&&o.constructorAction||"error";if("ignore"===c&&"ignore"===l)return i;if("ignore"!==c&&"ignore"!==l){if(!1===a.test(e)&&!1===n.test(e))return i}else if("ignore"!==c&&"ignore"===l){if(!1===a.test(e))return i}else if(!1===n.test(e))return i;return s(i,{protoAction:c,constructorAction:l,safe:o&&o.safe})}function s(e,{protoAction:t="error",constructorAction:r="error",safe:a}={}){let n=[e];for(;n.length;){const e=n;n=[];for(const o of e){if("ignore"!==t&&Object.prototype.hasOwnProperty.call(o,"__proto__")){if(!0===a)return null;if("error"===t)throw new SyntaxError("Object contains forbidden prototype property");delete o.__proto__}if("ignore"!==r&&Object.prototype.hasOwnProperty.call(o,"constructor")&&Object.prototype.hasOwnProperty.call(o.constructor,"prototype")){if(!0===a)return null;if("error"===r)throw new SyntaxError("Object contains forbidden prototype property");delete o.constructor}for(const e in o){const t=o[e];t&&"object"==typeof t&&n.push(t)}}}return e}function i(e,t,r){const a=Error.stackTraceLimit;Error.stackTraceLimit=0;try{return o(e,t,r)}finally{Error.stackTraceLimit=a}}t.exports=i,t.exports.default=i,t.exports.parse=i,t.exports.safeParse=function(e,t){const r=Error.stackTraceLimit;Error.stackTraceLimit=0;try{return o(e,t,{safe:!0})}catch(e){return null}finally{Error.stackTraceLimit=r}},t.exports.scan=s}}),marker="vercel.ai.error",symbol=Symbol.for(marker),_AISDKError=class e extends Error{constructor({name:e,message:t,cause:r}){super(t),this[_a]=!0,this.name=e,this.cause=r}static isInstance(t){return e.hasMarker(t,marker)}static hasMarker(e,t){const r=Symbol.for(t);return null!=e&&"object"==typeof e&&r in e&&"boolean"==typeof e[r]&&!0===e[r]}};_a=symbol;var _a2,AISDKError=_AISDKError,name="AI_APICallError",marker2=`vercel.ai.error.${name}`,symbol2=Symbol.for(marker2),APICallError=class extends AISDKError{constructor({message:e,url:t,requestBodyValues:r,statusCode:a,responseHeaders:n,responseBody:o,cause:s,isRetryable:i=null!=a&&(408===a||409===a||429===a||a>=500),data:c}){super({name:name,message:e,cause:s}),this[_a2]=!0,this.url=t,this.requestBodyValues=r,this.statusCode=a,this.responseHeaders=n,this.responseBody=o,this.isRetryable=i,this.data=c}static isInstance(e){return AISDKError.hasMarker(e,marker2)}};function getErrorMessage(e){return null==e?"unknown error":"string"==typeof e?e:e instanceof Error?e.message:JSON.stringify(e)}_a2=symbol2;var _a4,name3="AI_InvalidArgumentError",marker4=`vercel.ai.error.${name3}`,symbol4=Symbol.for(marker4),InvalidArgumentError=class extends AISDKError{constructor({message:e,cause:t,argument:r}){super({name:name3,message:e,cause:t}),this[_a4]=!0,this.argument=r}static isInstance(e){return AISDKError.hasMarker(e,marker4)}};_a4=symbol4;var _a7,name6="AI_JSONParseError",marker7=`vercel.ai.error.${name6}`,symbol7=Symbol.for(marker7),JSONParseError=class extends AISDKError{constructor({text:e,cause:t}){super({name:name6,message:`JSON parsing failed: Text: ${e}.\nError message: ${getErrorMessage(t)}`,cause:t}),this[_a7]=!0,this.text=e}static isInstance(e){return AISDKError.hasMarker(e,marker7)}};_a7=symbol7;var _a13,name12="AI_TypeValidationError",marker13=`vercel.ai.error.${name12}`,symbol13=Symbol.for(marker13),_TypeValidationError=class e extends AISDKError{constructor({value:e,cause:t}){super({name:name12,message:`Type validation failed: Value: ${JSON.stringify(e)}.\nError message: ${getErrorMessage(t)}`,cause:t}),this[_a13]=!0,this.value=e}static isInstance(e){return AISDKError.hasMarker(e,marker13)}static wrap({value:t,cause:r}){return e.isInstance(r)&&r.value===t?r:new e({value:t,cause:r})}};_a13=symbol13;var TypeValidationError=_TypeValidationError,customAlphabet=(e,t=21)=>(r=t)=>{let a="",n=0|r;for(;n--;)a+=e[Math.random()*e.length|0];return a},import_secure_json_parse=__toESM3(require_secure_json_parse());function convertAsyncIteratorToReadableStream(e){return new ReadableStream({async pull(t){try{const{value:r,done:a}=await e.next();a?t.close():t.enqueue(r)}catch(e){t.error(e)}},cancel(){}})}async function delay(e){return null==e?Promise.resolve():new Promise((t=>setTimeout(t,e)))}var createIdGenerator=({prefix:e,size:t=16,alphabet:r="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:a="-"}={})=>{const n=customAlphabet(r,t);if(null==e)return n;if(r.includes(a))throw new InvalidArgumentError({argument:"separator",message:`The separator "${a}" must not be part of the alphabet "${r}".`});return t=>`${e}${a}${n(t)}`};function getErrorMessage2(e){return null==e?"unknown error":"string"==typeof e?e:e instanceof Error?e.message:JSON.stringify(e)}function isAbortError(e){return e instanceof Error&&("AbortError"===e.name||"TimeoutError"===e.name)}createIdGenerator();var validatorSymbol=Symbol.for("vercel.ai.validator");function validator(e){return{[validatorSymbol]:!0,validate:e}}function isValidator(e){return"object"==typeof e&&null!==e&&validatorSymbol in e&&!0===e[validatorSymbol]&&"validate"in e}function asValidator(e){return isValidator(e)?e:zodValidator(e)}function zodValidator(e){return validator((t=>{const r=e.safeParse(t);return r.success?{success:!0,value:r.data}:{success:!1,error:r.error}}))}function safeValidateTypes({value:e,schema:t}){const r=asValidator(t);try{if(null==r.validate)return{success:!0,value:e};const t=r.validate(e);return t.success?t:{success:!1,error:TypeValidationError.wrap({value:e,cause:t.error})}}catch(t){return{success:!1,error:TypeValidationError.wrap({value:e,cause:t})}}}function safeParseJSON({text:e,schema:t}){try{const r=import_secure_json_parse.default.parse(e);if(null==t)return{success:!0,value:r,rawValue:r};const a=safeValidateTypes({value:r,schema:t});return a.success?{...a,rawValue:r}:a}catch(t){return{success:!1,error:JSONParseError.isInstance(t)?t:new JSONParseError({text:e,cause:t})}}}var ignoreOverride=Symbol("Let zodToJsonSchema decide on which parser to use"),defaultOptions={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",target:"jsonSchema7",strictUnions:!1,definitions:{},errorMessages:!1,markdownDescription:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref",openAiAnyTypeName:"OpenAiAnyType"},getDefaultOptions=e=>"string"==typeof e?{...defaultOptions,name:e}:{...defaultOptions,...e},getRefs=e=>{const t=getDefaultOptions(e),r=void 0!==t.name?[...t.basePath,t.definitionPath,t.name]:t.basePath;return{...t,flags:{hasReferencedOpenAiAnyType:!1},currentPath:r,propertyPath:void 0,seen:new Map(Object.entries(t.definitions).map((([e,r])=>[r._def,{def:r._def,path:[...t.basePath,t.definitionPath,e],jsonSchema:void 0}])))}};function addErrorMessage(e,t,r,a){a?.errorMessages&&r&&(e.errorMessage={...e.errorMessage,[t]:r})}function setResponseValueAndErrors(e,t,r,a,n){e[t]=r,addErrorMessage(e,t,a,n)}var getRelativePath=(e,t)=>{let r=0;for(;r<e.length&&r<t.length&&e[r]===t[r];r++);return[(e.length-r).toString(),...t.slice(r)].join("/")};function parseAnyDef(e){if("openAi"!==e.target)return{};const t=[...e.basePath,e.definitionPath,e.openAiAnyTypeName];return e.flags.hasReferencedOpenAiAnyType=!0,{$ref:"relative"===e.$refStrategy?getRelativePath(t,e.currentPath):t.join("/")}}function parseArrayDef(e,t){const r={type:"array"};return e.type?._def&&e.type?._def?.typeName!==ZodFirstPartyTypeKind.ZodAny&&(r.items=parseDef(e.type._def,{...t,currentPath:[...t.currentPath,"items"]})),e.minLength&&setResponseValueAndErrors(r,"minItems",e.minLength.value,e.minLength.message,t),e.maxLength&&setResponseValueAndErrors(r,"maxItems",e.maxLength.value,e.maxLength.message,t),e.exactLength&&(setResponseValueAndErrors(r,"minItems",e.exactLength.value,e.exactLength.message,t),setResponseValueAndErrors(r,"maxItems",e.exactLength.value,e.exactLength.message,t)),r}function parseBigintDef(e,t){const r={type:"integer",format:"int64"};if(!e.checks)return r;for(const a of e.checks)switch(a.kind){case"min":"jsonSchema7"===t.target?a.inclusive?setResponseValueAndErrors(r,"minimum",a.value,a.message,t):setResponseValueAndErrors(r,"exclusiveMinimum",a.value,a.message,t):(a.inclusive||(r.exclusiveMinimum=!0),setResponseValueAndErrors(r,"minimum",a.value,a.message,t));break;case"max":"jsonSchema7"===t.target?a.inclusive?setResponseValueAndErrors(r,"maximum",a.value,a.message,t):setResponseValueAndErrors(r,"exclusiveMaximum",a.value,a.message,t):(a.inclusive||(r.exclusiveMaximum=!0),setResponseValueAndErrors(r,"maximum",a.value,a.message,t));break;case"multipleOf":setResponseValueAndErrors(r,"multipleOf",a.value,a.message,t)}return r}function parseBooleanDef(){return{type:"boolean"}}function parseBrandedDef(e,t){return parseDef(e.type._def,t)}var parseCatchDef=(e,t)=>parseDef(e.innerType._def,t);function parseDateDef(e,t,r){const a=r??t.dateStrategy;if(Array.isArray(a))return{anyOf:a.map(((r,a)=>parseDateDef(e,t,r)))};switch(a){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return integerDateParser(e,t)}}var integerDateParser=(e,t)=>{const r={type:"integer",format:"unix-time"};if("openApi3"===t.target)return r;for(const a of e.checks)switch(a.kind){case"min":setResponseValueAndErrors(r,"minimum",a.value,a.message,t);break;case"max":setResponseValueAndErrors(r,"maximum",a.value,a.message,t)}return r};function parseDefaultDef(e,t){return{...parseDef(e.innerType._def,t),default:e.defaultValue()}}function parseEffectsDef(e,t){return"input"===t.effectStrategy?parseDef(e.schema._def,t):parseAnyDef(t)}function parseEnumDef(e){return{type:"string",enum:Array.from(e.values)}}var isJsonSchema7AllOfType=e=>(!("type"in e)||"string"!==e.type)&&"allOf"in e;function parseIntersectionDef(e,t){const r=[parseDef(e.left._def,{...t,currentPath:[...t.currentPath,"allOf","0"]}),parseDef(e.right._def,{...t,currentPath:[...t.currentPath,"allOf","1"]})].filter((e=>!!e));let a="jsonSchema2019-09"===t.target?{unevaluatedProperties:!1}:void 0;const n=[];return r.forEach((e=>{if(isJsonSchema7AllOfType(e))n.push(...e.allOf),void 0===e.unevaluatedProperties&&(a=void 0);else{let t=e;if("additionalProperties"in e&&!1===e.additionalProperties){const{additionalProperties:r,...a}=e;t=a}else a=void 0;n.push(t)}})),n.length?{allOf:n,...a}:void 0}function parseLiteralDef(e,t){const r=typeof e.value;return"bigint"!==r&&"number"!==r&&"boolean"!==r&&"string"!==r?{type:Array.isArray(e.value)?"array":"object"}:"openApi3"===t.target?{type:"bigint"===r?"integer":r,enum:[e.value]}:{type:"bigint"===r?"integer":r,const:e.value}}var emojiRegex=void 0,zodPatterns={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>(void 0===emojiRegex&&(emojiRegex=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),emojiRegex),uuid:/^[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}$/,ipv4:/^(?:(?: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])$/,ipv4Cidr:/^(?:(?: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])$/,ipv6:/^(([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})))$/,ipv6Cidr:/^(([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])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function parseStringDef(e,t){const r={type:"string"};if(e.checks)for(const a of e.checks)switch(a.kind){case"min":setResponseValueAndErrors(r,"minLength","number"==typeof r.minLength?Math.max(r.minLength,a.value):a.value,a.message,t);break;case"max":setResponseValueAndErrors(r,"maxLength","number"==typeof r.maxLength?Math.min(r.maxLength,a.value):a.value,a.message,t);break;case"email":switch(t.emailStrategy){case"format:email":addFormat(r,"email",a.message,t);break;case"format:idn-email":addFormat(r,"idn-email",a.message,t);break;case"pattern:zod":addPattern(r,zodPatterns.email,a.message,t)}break;case"url":addFormat(r,"uri",a.message,t);break;case"uuid":addFormat(r,"uuid",a.message,t);break;case"regex":addPattern(r,a.regex,a.message,t);break;case"cuid":addPattern(r,zodPatterns.cuid,a.message,t);break;case"cuid2":addPattern(r,zodPatterns.cuid2,a.message,t);break;case"startsWith":addPattern(r,RegExp(`^${escapeLiteralCheckValue(a.value,t)}`),a.message,t);break;case"endsWith":addPattern(r,RegExp(`${escapeLiteralCheckValue(a.value,t)}$`),a.message,t);break;case"datetime":addFormat(r,"date-time",a.message,t);break;case"date":addFormat(r,"date",a.message,t);break;case"time":addFormat(r,"time",a.message,t);break;case"duration":addFormat(r,"duration",a.message,t);break;case"length":setResponseValueAndErrors(r,"minLength","number"==typeof r.minLength?Math.max(r.minLength,a.value):a.value,a.message,t),setResponseValueAndErrors(r,"maxLength","number"==typeof r.maxLength?Math.min(r.maxLength,a.value):a.value,a.message,t);break;case"includes":addPattern(r,RegExp(escapeLiteralCheckValue(a.value,t)),a.message,t);break;case"ip":"v6"!==a.version&&addFormat(r,"ipv4",a.message,t),"v4"!==a.version&&addFormat(r,"ipv6",a.message,t);break;case"base64url":addPattern(r,zodPatterns.base64url,a.message,t);break;case"jwt":addPattern(r,zodPatterns.jwt,a.message,t);break;case"cidr":"v6"!==a.version&&addPattern(r,zodPatterns.ipv4Cidr,a.message,t),"v4"!==a.version&&addPattern(r,zodPatterns.ipv6Cidr,a.message,t);break;case"emoji":addPattern(r,zodPatterns.emoji(),a.message,t);break;case"ulid":addPattern(r,zodPatterns.ulid,a.message,t);break;case"base64":switch(t.base64Strategy){case"format:binary":addFormat(r,"binary",a.message,t);break;case"contentEncoding:base64":setResponseValueAndErrors(r,"contentEncoding","base64",a.message,t);break;case"pattern:zod":addPattern(r,zodPatterns.base64,a.message,t)}break;case"nanoid":addPattern(r,zodPatterns.nanoid,a.message,t)}return r}function escapeLiteralCheckValue(e,t){return"escape"===t.patternStrategy?escapeNonAlphaNumeric(e):e}var ALPHA_NUMERIC=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function escapeNonAlphaNumeric(e){let t="";for(let r=0;r<e.length;r++)ALPHA_NUMERIC.has(e[r])||(t+="\\"),t+=e[r];return t}function addFormat(e,t,r,a){e.format||e.anyOf?.some((e=>e.format))?(e.anyOf||(e.anyOf=[]),e.format&&(e.anyOf.push({format:e.format,...e.errorMessage&&a.errorMessages&&{errorMessage:{format:e.errorMessage.format}}}),delete e.format,e.errorMessage&&(delete e.errorMessage.format,0===Object.keys(e.errorMessage).length&&delete e.errorMessage)),e.anyOf.push({format:t,...r&&a.errorMessages&&{errorMessage:{format:r}}})):setResponseValueAndErrors(e,"format",t,r,a)}function addPattern(e,t,r,a){e.pattern||e.allOf?.some((e=>e.pattern))?(e.allOf||(e.allOf=[]),e.pattern&&(e.allOf.push({pattern:e.pattern,...e.errorMessage&&a.errorMessages&&{errorMessage:{pattern:e.errorMessage.pattern}}}),delete e.pattern,e.errorMessage&&(delete e.errorMessage.pattern,0===Object.keys(e.errorMessage).length&&delete e.errorMessage)),e.allOf.push({pattern:stringifyRegExpWithFlags(t,a),...r&&a.errorMessages&&{errorMessage:{pattern:r}}})):setResponseValueAndErrors(e,"pattern",stringifyRegExpWithFlags(t,a),r,a)}function stringifyRegExpWithFlags(e,t){if(!t.applyRegexFlags||!e.flags)return e.source;const r=e.flags.includes("i"),a=e.flags.includes("m"),n=e.flags.includes("s"),o=r?e.source.toLowerCase():e.source;let s="",i=!1,c=!1,l=!1;for(let e=0;e<o.length;e++)if(i)s+=o[e],i=!1;else{if(r)if(c){if(o[e].match(/[a-z]/)){l?(s+=o[e],s+=`${o[e-2]}-${o[e]}`.toUpperCase(),l=!1):"-"===o[e+1]&&o[e+2]?.match(/[a-z]/)?(s+=o[e],l=!0):s+=`${o[e]}${o[e].toUpperCase()}`;continue}}else if(o[e].match(/[a-z]/)){s+=`[${o[e]}${o[e].toUpperCase()}]`;continue}if(a){if("^"===o[e]){s+="(^|(?<=[\r\n]))";continue}if("$"===o[e]){s+="($|(?=[\r\n]))";continue}}n&&"."===o[e]?s+=c?`${o[e]}\r\n`:`[${o[e]}\r\n]`:(s+=o[e],"\\"===o[e]?i=!0:c&&"]"===o[e]?c=!1:c||"["!==o[e]||(c=!0))}return s}function parseRecordDef(e,t){if("openAi"===t.target&&console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead."),"openApi3"===t.target&&e.keyType?._def.typeName===ZodFirstPartyTypeKind.ZodEnum)return{type:"object",required:e.keyType._def.values,properties:e.keyType._def.values.reduce(((r,a)=>({...r,[a]:parseDef(e.valueType._def,{...t,currentPath:[...t.currentPath,"properties",a]})??parseAnyDef(t)})),{}),additionalProperties:t.rejectedAdditionalProperties};const r={type:"object",additionalProperties:parseDef(e.valueType._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]})??t.allowedAdditionalProperties};if("openApi3"===t.target)return r;if(e.keyType?._def.typeName===ZodFirstPartyTypeKind.ZodString&&e.keyType._def.checks?.length){const{type:a,...n}=parseStringDef(e.keyType._def,t);return{...r,propertyNames:n}}if(e.keyType?._def.typeName===ZodFirstPartyTypeKind.ZodEnum)return{...r,propertyNames:{enum:e.keyType._def.values}};if(e.keyType?._def.typeName===ZodFirstPartyTypeKind.ZodBranded&&e.keyType._def.type._def.typeName===ZodFirstPartyTypeKind.ZodString&&e.keyType._def.type._def.checks?.length){const{type:a,...n}=parseBrandedDef(e.keyType._def,t);return{...r,propertyNames:n}}return r}function parseMapDef(e,t){if("record"===t.mapStrategy)return parseRecordDef(e,t);return{type:"array",maxItems:125,items:{type:"array",items:[parseDef(e.keyType._def,{...t,currentPath:[...t.currentPath,"items","items","0"]})||parseAnyDef(t),parseDef(e.valueType._def,{...t,currentPath:[...t.currentPath,"items","items","1"]})||parseAnyDef(t)],minItems:2,maxItems:2}}}function parseNativeEnumDef(e){const t=e.values,r=Object.keys(e.values).filter((e=>"number"!=typeof t[t[e]])).map((e=>t[e])),a=Array.from(new Set(r.map((e=>typeof e))));return{type:1===a.length?"string"===a[0]?"string":"number":["string","number"],enum:r}}function parseNeverDef(e){return"openAi"===e.target?void 0:{not:parseAnyDef({...e,currentPath:[...e.currentPath,"not"]})}}function parseNullDef(e){return"openApi3"===e.target?{enum:["null"],nullable:!0}:{type:"null"}}var primitiveMappings={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function parseUnionDef(e,t){if("openApi3"===t.target)return asAnyOf(e,t);const r=e.options instanceof Map?Array.from(e.options.values()):e.options;if(r.every((e=>e._def.typeName in primitiveMappings&&(!e._def.checks||!e._def.checks.length)))){const e=r.reduce(((e,t)=>{const r=primitiveMappings[t._def.typeName];return r&&!e.includes(r)?[...e,r]:e}),[]);return{type:e.length>1?e:e[0]}}if(r.every((e=>"ZodLiteral"===e._def.typeName&&!e.description))){const e=r.reduce(((e,t)=>{const r=typeof t._def.value;switch(r){case"string":case"number":case"boolean":return[...e,r];case"bigint":return[...e,"integer"];case"object":if(null===t._def.value)return[...e,"null"];default:return e}}),[]);if(e.length===r.length){const t=e.filter(((e,t,r)=>r.indexOf(e)===t));return{type:t.length>1?t:t[0],enum:r.reduce(((e,t)=>e.includes(t._def.value)?e:[...e,t._def.value]),[])}}}else if(r.every((e=>"ZodEnum"===e._def.typeName)))return{type:"string",enum:r.reduce(((e,t)=>[...e,...t._def.values.filter((t=>!e.includes(t)))]),[])};return asAnyOf(e,t)}var asAnyOf=(e,t)=>{const r=(e.options instanceof Map?Array.from(e.options.values()):e.options).map(((e,r)=>parseDef(e._def,{...t,currentPath:[...t.currentPath,"anyOf",`${r}`]}))).filter((e=>!!e&&(!t.strictUnions||"object"==typeof e&&Object.keys(e).length>0)));return r.length?{anyOf:r}:void 0};function parseNullableDef(e,t){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(e.innerType._def.typeName)&&(!e.innerType._def.checks||!e.innerType._def.checks.length))return"openApi3"===t.target?{type:primitiveMappings[e.innerType._def.typeName],nullable:!0}:{type:[primitiveMappings[e.innerType._def.typeName],"null"]};if("openApi3"===t.target){const r=parseDef(e.innerType._def,{...t,currentPath:[...t.currentPath]});return r&&"$ref"in r?{allOf:[r],nullable:!0}:r&&{...r,nullable:!0}}const r=parseDef(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","0"]});return r&&{anyOf:[r,{type:"null"}]}}function parseNumberDef(e,t){const r={type:"number"};if(!e.checks)return r;for(const a of e.checks)switch(a.kind){case"int":r.type="integer",addErrorMessage(r,"type",a.message,t);break;case"min":"jsonSchema7"===t.target?a.inclusive?setResponseValueAndErrors(r,"minimum",a.value,a.message,t):setResponseValueAndErrors(r,"exclusiveMinimum",a.value,a.message,t):(a.inclusive||(r.exclusiveMinimum=!0),setResponseValueAndErrors(r,"minimum",a.value,a.message,t));break;case"max":"jsonSchema7"===t.target?a.inclusive?setResponseValueAndErrors(r,"maximum",a.value,a.message,t):setResponseValueAndErrors(r,"exclusiveMaximum",a.value,a.message,t):(a.inclusive||(r.exclusiveMaximum=!0),setResponseValueAndErrors(r,"maximum",a.value,a.message,t));break;case"multipleOf":setResponseValueAndErrors(r,"multipleOf",a.value,a.message,t)}return r}function parseObjectDef(e,t){const r="openAi"===t.target,a={type:"object",properties:{}},n=[],o=e.shape();for(const e in o){let s=o[e];if(void 0===s||void 0===s._def)continue;let i=safeIsOptional(s);i&&r&&("ZodOptional"===s._def.typeName&&(s=s._def.innerType),s.isNullable()||(s=s.nullable()),i=!1);const c=parseDef(s._def,{...t,currentPath:[...t.currentPath,"properties",e],propertyPath:[...t.currentPath,"properties",e]});void 0!==c&&(a.properties[e]=c,i||n.push(e))}n.length&&(a.required=n);const s=decideAdditionalProperties(e,t);return void 0!==s&&(a.additionalProperties=s),a}function decideAdditionalProperties(e,t){if("ZodNever"!==e.catchall._def.typeName)return parseDef(e.catchall._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]});switch(e.unknownKeys){case"passthrough":return t.allowedAdditionalProperties;case"strict":return t.rejectedAdditionalProperties;case"strip":return"strict"===t.removeAdditionalStrategy?t.allowedAdditionalProperties:t.rejectedAdditionalProperties}}function safeIsOptional(e){try{return e.isOptional()}catch{return!0}}var parseOptionalDef=(e,t)=>{if(t.currentPath.toString()===t.propertyPath?.toString())return parseDef(e.innerType._def,t);const r=parseDef(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","1"]});return r?{anyOf:[{not:parseAnyDef(t)},r]}:parseAnyDef(t)},parsePipelineDef=(e,t)=>{if("input"===t.pipeStrategy)return parseDef(e.in._def,t);if("output"===t.pipeStrategy)return parseDef(e.out._def,t);const r=parseDef(e.in._def,{...t,currentPath:[...t.currentPath,"allOf","0"]});return{allOf:[r,parseDef(e.out._def,{...t,currentPath:[...t.currentPath,"allOf",r?"1":"0"]})].filter((e=>void 0!==e))}};function parsePromiseDef(e,t){return parseDef(e.type._def,t)}function parseSetDef(e,t){const r={type:"array",uniqueItems:!0,items:parseDef(e.valueType._def,{...t,currentPath:[...t.currentPath,"items"]})};return e.minSize&&setResponseValueAndErrors(r,"minItems",e.minSize.value,e.minSize.message,t),e.maxSize&&setResponseValueAndErrors(r,"maxItems",e.maxSize.value,e.maxSize.message,t),r}function parseTupleDef(e,t){return e.rest?{type:"array",minItems:e.items.length,items:e.items.map(((e,r)=>parseDef(e._def,{...t,currentPath:[...t.currentPath,"items",`${r}`]}))).reduce(((e,t)=>void 0===t?e:[...e,t]),[]),additionalItems:parseDef(e.rest._def,{...t,currentPath:[...t.currentPath,"additionalItems"]})}:{type:"array",minItems:e.items.length,maxItems:e.items.length,items:e.items.map(((e,r)=>parseDef(e._def,{...t,currentPath:[...t.currentPath,"items",`${r}`]}))).reduce(((e,t)=>void 0===t?e:[...e,t]),[])}}function parseUndefinedDef(e){return{not:parseAnyDef(e)}}function parseUnknownDef(e){return parseAnyDef(e)}var parseReadonlyDef=(e,t)=>parseDef(e.innerType._def,t),selectParser=(e,t,r)=>{switch(t){case ZodFirstPartyTypeKind.ZodString:return parseStringDef(e,r);case ZodFirstPartyTypeKind.ZodNumber:return parseNumberDef(e,r);case ZodFirstPartyTypeKind.ZodObject:return parseObjectDef(e,r);case ZodFirstPartyTypeKind.ZodBigInt:return parseBigintDef(e,r);case ZodFirstPartyTypeKind.ZodBoolean:return parseBooleanDef();case ZodFirstPartyTypeKind.ZodDate:return parseDateDef(e,r);case ZodFirstPartyTypeKind.ZodUndefined:return parseUndefinedDef(r);case ZodFirstPartyTypeKind.ZodNull:return parseNullDef(r);case ZodFirstPartyTypeKind.ZodArray:return parseArrayDef(e,r);case ZodFirstPartyTypeKind.ZodUnion:case ZodFirstPartyTypeKind.ZodDiscriminatedUnion:return parseUnionDef(e,r);case ZodFirstPartyTypeKind.ZodIntersection:return parseIntersectionDef(e,r);case ZodFirstPartyTypeKind.ZodTuple:return parseTupleDef(e,r);case ZodFirstPartyTypeKind.ZodRecord:return parseRecordDef(e,r);case ZodFirstPartyTypeKind.ZodLiteral:return parseLiteralDef(e,r);case ZodFirstPartyTypeKind.ZodEnum:return parseEnumDef(e);case ZodFirstPartyTypeKind.ZodNativeEnum:return parseNativeEnumDef(e);case ZodFirstPartyTypeKind.ZodNullable:return parseNullableDef(e,r);case ZodFirstPartyTypeKind.ZodOptional:return parseOptionalDef(e,r);case ZodFirstPartyTypeKind.ZodMap:return parseMapDef(e,r);case ZodFirstPartyTypeKind.ZodSet:return parseSetDef(e,r);case ZodFirstPartyTypeKind.ZodLazy:return()=>e.getter()._def;case ZodFirstPartyTypeKind.ZodPromise:return parsePromiseDef(e,r);case ZodFirstPartyTypeKind.ZodNaN:case ZodFirstPartyTypeKind.ZodNever:return parseNeverDef(r);case ZodFirstPartyTypeKind.ZodEffects:return parseEffectsDef(e,r);case ZodFirstPartyTypeKind.ZodAny:return parseAnyDef(r);case ZodFirstPartyTypeKind.ZodUnknown:return parseUnknownDef(r);case ZodFirstPartyTypeKind.ZodDefault:return parseDefaultDef(e,r);case ZodFirstPartyTypeKind.ZodBranded:return parseBrandedDef(e,r);case ZodFirstPartyTypeKind.ZodReadonly:return parseReadonlyDef(e,r);case ZodFirstPartyTypeKind.ZodCatch:return parseCatchDef(e,r);case ZodFirstPartyTypeKind.ZodPipeline:return parsePipelineDef(e,r);case ZodFirstPartyTypeKind.ZodFunction:case ZodFirstPartyTypeKind.ZodVoid:case ZodFirstPartyTypeKind.ZodSymbol:default:return}};function parseDef(e,t,r=!1){const a=t.seen.get(e);if(t.override){const n=t.override?.(e,t,a,r);if(n!==ignoreOverride)return n}if(a&&!r){const e=get$ref(a,t);if(void 0!==e)return e}const n={def:e,path:t.currentPath,jsonSchema:void 0};t.seen.set(e,n);const o=selectParser(e,e.typeName,t),s="function"==typeof o?parseDef(o(),t):o;if(s&&addMeta(e,t,s),t.postProcess){const r=t.postProcess(s,e,t);return n.jsonSchema=s,r}return n.jsonSchema=s,s}var get$ref=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:getRelativePath(t.currentPath,e.path)};case"none":case"seen":return e.path.length<t.currentPath.length&&e.path.every(((e,r)=>t.currentPath[r]===e))?(console.warn(`Recursive reference detected at ${t.currentPath.join("/")}! Defaulting to any`),parseAnyDef(t)):"seen"===t.$refStrategy?parseAnyDef(t):void 0}},addMeta=(e,t,r)=>(e.description&&(r.description=e.description,t.markdownDescription&&(r.markdownDescription=e.description)),r),zodToJsonSchema=(e,t)=>{const r=getRefs(t);let a="object"==typeof t&&t.definitions?Object.entries(t.definitions).reduce(((e,[t,a])=>({...e,[t]:parseDef(a._def,{...r,currentPath:[...r.basePath,r.definitionPath,t]},!0)??parseAnyDef(r)})),{}):void 0;const n="string"==typeof t?t:"title"===t?.nameStrategy?void 0:t?.name,o=parseDef(e._def,void 0===n?r:{...r,currentPath:[...r.basePath,r.definitionPath,n]},!1)??parseAnyDef(r),s="object"==typeof t&&void 0!==t.name&&"title"===t.nameStrategy?t.name:void 0;void 0!==s&&(o.title=s),r.flags.hasReferencedOpenAiAnyType&&(a||(a={}),a[r.openAiAnyTypeName]||(a[r.openAiAnyTypeName]={type:["string","number","integer","boolean","array","null"],items:{$ref:"relative"===r.$refStrategy?"1":[...r.basePath,r.definitionPath,r.openAiAnyTypeName].join("/")}}));const i=void 0===n?a?{...o,[r.definitionPath]:a}:o:{$ref:[..."relative"===r.$refStrategy?[]:r.basePath,r.definitionPath,n].join("/"),[r.definitionPath]:{...a,[n]:o}};return"jsonSchema7"===r.target?i.$schema="http://json-schema.org/draft-07/schema#":"jsonSchema2019-09"!==r.target&&"openAi"!==r.target||(i.$schema="https://json-schema.org/draft/2019-09/schema#"),"openAi"===r.target&&("anyOf"in i||"oneOf"in i||"allOf"in i||"type"in i&&Array.isArray(i.type))&&console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property."),i},esm_default=zodToJsonSchema;function fixJson(e){const t=["ROOT"];let r=-1,a=null;function n(e,n,o){switch(e){case'"':r=n,t.pop(),t.push(o),t.push("INSIDE_STRING");break;case"f":case"t":case"n":r=n,a=n,t.pop(),t.push(o),t.push("INSIDE_LITERAL");break;case"-":t.pop(),t.push(o),t.push("INSIDE_NUMBER");break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":r=n,t.pop(),t.push(o),t.push("INSIDE_NUMBER");break;case"{":r=n,t.pop(),t.push(o),t.push("INSIDE_OBJECT_START");break;case"[":r=n,t.pop(),t.push(o),t.push("INSIDE_ARRAY_START")}}function o(e,a){switch(e){case",":t.pop(),t.push("INSIDE_OBJECT_AFTER_COMMA");break;case"}":r=a,t.pop()}}function s(e,a){switch(e){case",":t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break;case"]":r=a,t.pop()}}for(let i=0;i<e.length;i++){const c=e[i];switch(t[t.length-1]){case"ROOT":n(c,i,"FINISH");break;case"INSIDE_OBJECT_START":switch(c){case'"':t.pop(),t.push("INSIDE_OBJECT_KEY");break;case"}":r=i,t.pop()}break;case"INSIDE_OBJECT_AFTER_COMMA":if('"'===c)t.pop(),t.push("INSIDE_OBJECT_KEY");break;case"INSIDE_OBJECT_KEY":if('"'===c)t.pop(),t.push("INSIDE_OBJECT_AFTER_KEY");break;case"INSIDE_OBJECT_AFTER_KEY":if(":"===c)t.pop(),t.push("INSIDE_OBJECT_BEFORE_VALUE");break;case"INSIDE_OBJECT_BEFORE_VALUE":n(c,i,"INSIDE_OBJECT_AFTER_VALUE");break;case"INSIDE_OBJECT_AFTER_VALUE":o(c,i);break;case"INSIDE_STRING":switch(c){case'"':t.pop(),r=i;break;case"\\":t.push("INSIDE_STRING_ESCAPE");break;default:r=i}break;case"INSIDE_ARRAY_START":if("]"===c)r=i,t.pop();else r=i,n(c,i,"INSIDE_ARRAY_AFTER_VALUE");break;case"INSIDE_ARRAY_AFTER_VALUE":switch(c){case",":t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break;case"]":r=i,t.pop();break;default:r=i}break;case"INSIDE_ARRAY_AFTER_COMMA":n(c,i,"INSIDE_ARRAY_AFTER_VALUE");break;case"INSIDE_STRING_ESCAPE":t.pop(),r=i;break;case"INSIDE_NUMBER":switch(c){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":r=i;break;case"e":case"E":case"-":case".":break;case",":t.pop(),"INSIDE_ARRAY_AFTER_VALUE"===t[t.length-1]&&s(c,i),"INSIDE_OBJECT_AFTER_VALUE"===t[t.length-1]&&o(c,i);break;case"}":t.pop(),"INSIDE_OBJECT_AFTER_VALUE"===t[t.length-1]&&o(c,i);break;case"]":t.pop(),"INSIDE_ARRAY_AFTER_VALUE"===t[t.length-1]&&s(c,i);break;default:t.pop()}break;case"INSIDE_LITERAL":{const n=e.substring(a,i+1);"false".startsWith(n)||"true".startsWith(n)||"null".startsWith(n)?r=i:(t.pop(),"INSIDE_OBJECT_AFTER_VALUE"===t[t.length-1]?o(c,i):"INSIDE_ARRAY_AFTER_VALUE"===t[t.length-1]&&s(c,i));break}}}let i=e.slice(0,r+1);for(let r=t.length-1;r>=0;r--){switch(t[r]){case"INSIDE_STRING":i+='"';break;case"INSIDE_OBJECT_KEY":case"INSIDE_OBJECT_AFTER_KEY":case"INSIDE_OBJECT_AFTER_COMMA":case"INSIDE_OBJECT_START":case"INSIDE_OBJECT_BEFORE_VALUE":case"INSIDE_OBJECT_AFTER_VALUE":i+="}";break;case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":i+="]";break;case"INSIDE_LITERAL":{const t=e.substring(a,e.length);"true".startsWith(t)?i+="true".slice(t.length):"false".startsWith(t)?i+="false".slice(t.length):"null".startsWith(t)&&(i+="null".slice(t.length))}}}return i}function parsePartialJson(e){if(void 0===e)return{value:void 0,state:"undefined-input"};let t=safeParseJSON({text:e});return t.success?{value:t.value,state:"successful-parse"}:(t=safeParseJSON({text:fixJson(e)}),t.success?{value:t.value,state:"repaired-parse"}:{value:void 0,state:"failed-parse"})}var textStreamPart2={code:"0",name:"text",parse:e=>{if("string"!=typeof e)throw new Error('"text" parts expect a string value.');return{type:"text",value:e}}},dataStreamPart={code:"2",name:"data",parse:e=>{if(!Array.isArray(e))throw new Error('"data" parts expect an array value.');return{type:"data",value:e}}},errorStreamPart2={code:"3",name:"error",parse:e=>{if("string"!=typeof e)throw new Error('"error" parts expect a string value.');return{type:"error",value:e}}},messageAnnotationsStreamPart={code:"8",name:"message_annotations",parse:e=>{if(!Array.isArray(e))throw new Error('"message_annotations" parts expect an array value.');return{type:"message_annotations",value:e}}},toolCallStreamPart={code:"9",name:"tool_call",parse:e=>{if(null==e||"object"!=typeof e||!("toolCallId"in e)||"string"!=typeof e.toolCallId||!("toolName"in e)||"string"!=typeof e.toolName||!("args"in e)||"object"!=typeof e.args)throw new Error('"tool_call" parts expect an object with a "toolCallId", "toolName", and "args" property.');return{type:"tool_call",value:e}}},toolResultStreamPart={code:"a",name:"tool_result",parse:e=>{if(null==e||"object"!=typeof e||!("toolCallId"in e)||"string"!=typeof e.toolCallId||!("result"in e))throw new Error('"tool_result" parts expect an object with a "toolCallId" and a "result" property.');return{type:"tool_result",value:e}}},toolCallStreamingStartStreamPart={code:"b",name:"tool_call_streaming_start",parse:e=>{if(null==e||"object"!=typeof e||!("toolCallId"in e)||"string"!=typeof e.toolCallId||!("toolName"in e)||"string"!=typeof e.toolName)throw new Error('"tool_call_streaming_start" parts expect an object with a "toolCallId" and "toolName" property.');return{type:"tool_call_streaming_start",value:e}}},toolCallDeltaStreamPart={code:"c",name:"tool_call_delta",parse:e=>{if(null==e||"object"!=typeof e||!("toolCallId"in e)||"string"!=typeof e.toolCallId||!("argsTextDelta"in e)||"string"!=typeof e.argsTextDelta)throw new Error('"tool_call_delta" parts expect an object with a "toolCallId" and "argsTextDelta" property.');return{type:"tool_call_delta",value:e}}},finishMessageStreamPart={code:"d",name:"finish_message",parse:e=>{if(null==e||"object"!=typeof e||!("finishReason"in e)||"string"!=typeof e.finishReason)throw new Error('"finish_message" parts expect an object with a "finishReason" property.');const t={finishReason:e.finishReason};return"usage"in e&&null!=e.usage&&"object"==typeof e.usage&&"promptTokens"in e.usage&&"completionTokens"in e.usage&&(t.usage={promptTokens:"number"==typeof e.usage.promptTokens?e.usage.promptTokens:Number.NaN,completionTokens:"number"==typeof e.usage.completionTokens?e.usage.completionTokens:Number.NaN}),{type:"finish_message",value:t}}},finishStepStreamPart={code:"e",name:"finish_step",parse:e=>{if(null==e||"object"!=typeof e||!("finishReason"in e)||"string"!=typeof e.finishReason)throw new Error('"finish_step" parts expect an object with a "finishReason" property.');const t={finishReason:e.finishReason,isContinued:!1};return"usage"in e&&null!=e.usage&&"object"==typeof e.usage&&"promptTokens"in e.usage&&"completionTokens"in e.usage&&(t.usage={promptTokens:"number"==typeof e.usage.promptTokens?e.usage.promptTokens:Number.NaN,completionTokens:"number"==typeof e.usage.completionTokens?e.usage.completionTokens:Number.NaN}),"isContinued"in e&&"boolean"==typeof e.isContinued&&(t.isContinued=e.isContinued),{type:"finish_step",value:t}}},startStepStreamPart={code:"f",name:"start_step",parse:e=>{if(null==e||"object"!=typeof e||!("messageId"in e)||"string"!=typeof e.messageId)throw new Error('"start_step" parts expect an object with an "id" property.');return{type:"start_step",value:{messageId:e.messageId}}}},reasoningStreamPart={code:"g",name:"reasoning",parse:e=>{if("string"!=typeof e)throw new Error('"reasoning" parts expect a string value.');return{type:"reasoning",value:e}}},sourcePart={code:"h",name:"source",parse:e=>{if(null==e||"object"!=typeof e)throw new Error('"source" parts expect a Source object.');return{type:"source",value:e}}},redactedReasoningStreamPart={code:"i",name:"redacted_reasoning",parse:e=>{if(null==e||"object"!=typeof e||!("data"in e)||"string"!=typeof e.data)throw new Error('"redacted_reasoning" parts expect an object with a "data" property.');return{type:"redacted_reasoning",value:{data:e.data}}}},reasoningSignatureStreamPart={code:"j",name:"reasoning_signature",parse:e=>{if(null==e||"object"!=typeof e||!("signature"in e)||"string"!=typeof e.signature)throw new Error('"reasoning_signature" parts expect an object with a "signature" property.');return{type:"reasoning_signature",value:{signature:e.signature}}}},fileStreamPart={code:"k",name:"file",parse:e=>{if(null==e||"object"!=typeof e||!("data"in e)||"string"!=typeof e.data||!("mimeType"in e)||"string"!=typeof e.mimeType)throw new Error('"file" parts expect an object with a "data" and "mimeType" property.');return{type:"file",value:e}}},dataStreamParts=[textStreamPart2,dataStreamPart,errorStreamPart2,messageAnnotationsStreamPart,toolCallStreamPart,toolResultStreamPart,toolCallStreamingStartStreamPart,toolCallDeltaStreamPart,finishMessageStreamPart,finishStepStreamPart,startStepStreamPart,reasoningStreamPart,sourcePart,redactedReasoningStreamPart,reasoningSignatureStreamPart,fileStreamPart];function formatDataStreamPart(e,t){const r=dataStreamParts.find((t=>t.name===e));if(!r)throw new Error(`Invalid stream part type: ${e}`);return`${r.code}:${JSON.stringify(t)}\n`}function zodSchema(e,t){const r=null!=void 0&&undefined;return jsonSchema(esm_default(e,{$refStrategy:r?"root":"none",target:"jsonSchema7"}),{validate:t=>{const r=e.safeParse(t);return r.success?{success:!0,value:r.data}:{success:!1,error:r.error}}})}Object.fromEntries(dataStreamParts.map((e=>[e.code,e]))),Object.fromEntries(dataStreamParts.map((e=>[e.name,e.code])));var schemaSymbol=Symbol.for("vercel.ai.schema");function jsonSchema(e,{validate:t}={}){return{[schemaSymbol]:!0,_type:void 0,[validatorSymbol]:!0,jsonSchema:e,validate:t}}function isSchema(e){return"object"==typeof e&&null!==e&&schemaSymbol in e&&!0===e[schemaSymbol]&&"jsonSchema"in e&&"validate"in e}function asSchema(e){return isSchema(e)?e:zodSchema(e)}var _globalThis="object"==typeof globalThis?globalThis:global,VERSION="1.9.0",re=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function _makeCompatibilityCheck(e){var t=new Set([e]),r=new Set,a=e.match(re);if(!a)return function(){return!1};var n=+a[1],o=+a[2],s=+a[3];if(null!=a[4])return function(t){return t===e};function i(e){return r.add(e),!1}function c(e){return t.add(e),!0}return function(e){if(t.has(e))return!0;if(r.has(e))return!1;var a=e.match(re);if(!a)return i(e);var l=+a[1],u=+a[2],d=+a[3];return null!=a[4]||n!==l?i(e):0===n?o===u&&s<=d?c(e):i(e):o<=u?c(e):i(e)}}var isCompatible=_makeCompatibilityCheck(VERSION),major=VERSION.split(".")[0],GLOBAL_OPENTELEMETRY_API_KEY=Symbol.for("opentelemetry.js.api."+major),_global=_globalThis;function registerGlobal(e,t,r,a){var n;void 0===a&&(a=!1);var o=_global[GLOBAL_OPENTELEMETRY_API_KEY]=null!==(n=_global[GLOBAL_OPENTELEMETRY_API_KEY])&&void 0!==n?n:{version:VERSION};if(!a&&o[e]){var s=new Error("@opentelemetry/api: Attempted duplicate registration of API: "+e);return r.error(s.stack||s.message),!1}if(o.version!==VERSION){s=new Error("@opentelemetry/api: Registration of version v"+o.version+" for "+e+" does not match previously registered API v"+VERSION);return r.error(s.stack||s.message),!1}return o[e]=t,r.debug("@opentelemetry/api: Registered a global for "+e+" v"+VERSION+"."),!0}function getGlobal(e){var t,r,a=null===(t=_global[GLOBAL_OPENTELEMETRY_API_KEY])||void 0===t?void 0:t.version;if(a&&isCompatible(a))return null===(r=_global[GLOBAL_OPENTELEMETRY_API_KEY])||void 0===r?void 0:r[e]}function unregisterGlobal(e,t){t.debug("@opentelemetry/api: Unregistering a global for "+e+" v"+VERSION+".");var r=_global[GLOBAL_OPENTELEMETRY_API_KEY];r&&delete r[e]}var DiagLogLevel,__read=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var a,n,o=r.call(e),s=[];try{for(;!(a=o.next()).done;)s.push(a.value)}catch(e){n={error:e}}finally{try{a&&!a.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}return s},__spreadArray=function(e,t,r){if(2===arguments.length)for(var a,n=0,o=t.length;n<o;n++)!a&&n in t||(a||(a=Array.prototype.slice.call(t,0,n)),a[n]=t[n]);return e.concat(a||Array.prototype.slice.call(t))},DiagComponentLogger=function(){function e(e){this._namespace=e.namespace||"DiagComponentLogger"}return e.prototype.debug=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return logProxy("debug",this._namespace,e)},e.prototype.error=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return logProxy("error",this._namespace,e)},e.prototype.info=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return logProxy("info",this._namespace,e)},e.prototype.warn=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return logProxy("warn",this._namespace,e)},e.prototype.verbose=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return logProxy("verbose",this._namespace,e)},e}();function logProxy(e,t,r){var a=getGlobal("diag");if(a)return r.unshift(t),a[e].apply(a,__spreadArray([],__read(r),!1))}function createLogLevelDiagLogger(e,t){function r(r,a){var n=t[r];return"function"==typeof n&&e>=a?n.bind(t):function(){}}return e<DiagLogLevel.NONE?e=DiagLogLevel.NONE:e>DiagLogLevel.ALL&&(e=DiagLogLevel.ALL),t=t||{},{error:r("error",DiagLogLevel.ERROR),warn:r("warn",DiagLogLevel.WARN),info:r("info",DiagLogLevel.INFO),debug:r("debug",DiagLogLevel.DEBUG),verbose:r("verbose",DiagLogLevel.VERBOSE)}}!function(e){e[e.NONE=0]="NONE",e[e.ERROR=30]="ERROR",e[e.WARN=50]="WARN",e[e.INFO=60]="INFO",e[e.DEBUG=70]="DEBUG",e[e.VERBOSE=80]="VERBOSE",e[e.ALL=9999]="ALL"}(DiagLogLevel||(DiagLogLevel={}));var __read2=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var a,n,o=r.call(e),s=[];try{for(;!(a=o.next()).done;)s.push(a.value)}catch(e){n={error:e}}finally{try{a&&!a.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}return s},__spreadArray2=function(e,t,r){if(2===arguments.length)for(var a,n=0,o=t.length;n<o;n++)!a&&n in t||(a||(a=Array.prototype.slice.call(t,0,n)),a[n]=t[n]);return e.concat(a||Array.prototype.slice.call(t))},API_NAME="diag",DiagAPI=function(){function e(){function e(e){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var a=getGlobal("diag");if(a)return a[e].apply(a,__spreadArray2([],__read2(t),!1))}}var t=this;t.setLogger=function(e,r){var a,n,o;if(void 0===r&&(r={logLevel:DiagLogLevel.INFO}),e===t){var s=new Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return t.error(null!==(a=s.stack)&&void 0!==a?a:s.message),!1}"number"==typeof r&&(r={logLevel:r});var i=getGlobal("diag"),c=createLogLevelDiagLogger(null!==(n=r.logLevel)&&void 0!==n?n:DiagLogLevel.INFO,e);if(i&&!r.suppressOverrideMessage){var l=null!==(o=(new Error).stack)&&void 0!==o?o:"<failed to generate stacktrace>";i.warn("Current logger will be overwritten from "+l),c.warn("Current logger will overwrite one already registered from "+l)}return registerGlobal("diag",c,t,!0)},t.disable=function(){unregisterGlobal(API_NAME,t)},t.createComponentLogger=function(e){return new DiagComponentLogger(e)},t.verbose=e("verbose"),t.debug=e("debug"),t.info=e("info"),t.warn=e("warn"),t.error=e("error")}return e.instance=function(){return this._instance||(this._instance=new e),this._instance},e}();function createContextKey(e){return Symbol.for(e)}var TraceFlags,BaseContext=function(){return function e(t){var r=this;r._currentContext=t?new Map(t):new Map,r.getValue=function(e){return r._currentContext.get(e)},r.setValue=function(t,a){var n=new e(r._currentContext);return n._currentContext.set(t,a),n},r.deleteValue=function(t){var a=new e(r._currentContext);return a._currentContext.delete(t),a}}}(),ROOT_CONTEXT=new BaseContext,__read3=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var a,n,o=r.call(e),s=[];try{for(;!(a=o.next()).done;)s.push(a.value)}catch(e){n={error:e}}finally{try{a&&!a.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}return s},__spreadArray3=function(e,t,r){if(2===arguments.length)for(var a,n=0,o=t.length;n<o;n++)!a&&n in t||(a||(a=Array.prototype.slice.call(t,0,n)),a[n]=t[n]);return e.concat(a||Array.prototype.slice.call(t))},NoopContextManager=function(){function e(){}return e.prototype.active=function(){return ROOT_CONTEXT},e.prototype.with=function(e,t,r){for(var a=[],n=3;n<arguments.length;n++)a[n-3]=arguments[n];return t.call.apply(t,__spreadArray3([r],__read3(a),!1))},e.prototype.bind=function(e,t){return t},e.prototype.enable=function(){return this},e.prototype.disable=function(){return this},e}(),__read4=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var a,n,o=r.call(e),s=[];try{for(;!(a=o.next()).done;)s.push(a.value)}catch(e){n={error:e}}finally{try{a&&!a.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}return s},__spreadArray4=function(e,t,r){if(2===arguments.length)for(var a,n=0,o=t.length;n<o;n++)!a&&n in t||(a||(a=Array.prototype.slice.call(t,0,n)),a[n]=t[n]);return e.concat(a||Array.prototype.slice.call(t))},API_NAME2="context",NOOP_CONTEXT_MANAGER=new NoopContextManager,ContextAPI=function(){function e(){}return e.getInstance=function(){return this._instance||(this._instance=new e),this._instance},e.prototype.setGlobalContextManager=function(e){return registerGlobal(API_NAME2,e,DiagAPI.instance())},e.prototype.active=function(){return this._getContextManager().active()},e.prototype.with=function(e,t,r){for(var a,n=[],o=3;o<arguments.length;o++)n[o-3]=arguments[o];return(a=this._getContextManager()).with.apply(a,__spreadArray4([e,t,r],__read4(n),!1))},e.prototype.bind=function(e,t){return this._getContextManager().bind(e,t)},e.prototype._getContextManager=function(){return getGlobal(API_NAME2)||NOOP_CONTEXT_MANAGER},e.prototype.disable=function(){this._getContextManager().disable(),unregisterGlobal(API_NAME2,DiagAPI.instance())},e}();!function(e){e[e.NONE=0]="NONE",e[e.SAMPLED=1]="SAMPLED"}(TraceFlags||(TraceFlags={}));var INVALID_SPANID="0000000000000000",INVALID_TRACEID="00000000000000000000000000000000",INVALID_SPAN_CONTEXT={traceId:INVALID_TRACEID,spanId:INVALID_SPANID,traceFlags:TraceFlags.NONE},NonRecordingSpan=function(){function e(e){void 0===e&&(e=INVALID_SPAN_CONTEXT),this._spanContext=e}return e.prototype.spanContext=function(){return this._spanContext},e.prototype.setAttribute=function(e,t){return this},e.prototype.setAttributes=function(e){return this},e.prototype.addEvent=function(e,t){return this},e.prototype.addLink=function(e){return this},e.prototype.addLinks=function(e){return this},e.prototype.setStatus=function(e){return this},e.prototype.updateName=function(e){return this},e.prototype.end=function(e){},e.prototype.isRecording=function(){return!1},e.prototype.recordException=function(e,t){},e}(),SPAN_KEY=createContextKey("OpenTelemetry Context Key SPAN");function getSpan(e){return e.getValue(SPAN_KEY)||void 0}function getActiveSpan(){return getSpan(ContextAPI.getInstance().active())}function setSpan(e,t){return e.setValue(SPAN_KEY,t)}function deleteSpan(e){return e.deleteValue(SPAN_KEY)}function setSpanContext(e,t){return setSpan(e,new NonRecordingSpan(t))}function getSpanContext(e){var t;return null===(t=getSpan(e))||void 0===t?void 0:t.spanContext()}var VALID_TRACEID_REGEX=/^([0-9a-f]{32})$/i,VALID_SPANID_REGEX=/^[0-9a-f]{16}$/i;function isValidTraceId(e){return VALID_TRACEID_REGEX.test(e)&&e!==INVALID_TRACEID}function isValidSpanId(e){return VALID_SPANID_REGEX.test(e)&&e!==INVALID_SPANID}function isSpanContextValid(e){return isValidTraceId(e.traceId)&&isValidSpanId(e.spanId)}function wrapSpanContext(e){return new NonRecordingSpan(e)}var contextApi=ContextAPI.getInstance(),NoopTracer=function(){function e(){}return e.prototype.startSpan=function(e,t,r){if(void 0===r&&(r=contextApi.active()),Boolean(null==t?void 0:t.root))return new NonRecordingSpan;var a=r&&getSpanContext(r);return isSpanContext(a)&&isSpanContextValid(a)?new NonRecordingSpan(a):new NonRecordingSpan},e.prototype.startActiveSpan=function(e,t,r,a){var n,o,s;if(!(arguments.length<2)){2===arguments.length?s=t:3===arguments.length?(n=t,s=r):(n=t,o=r,s=a);var i=null!=o?o:contextApi.active(),c=this.startSpan(e,n,i),l=setSpan(i,c);return contextApi.with(l,s,void 0,c)}},e}();function isSpanContext(e){return"object"==typeof e&&"string"==typeof e.spanId&&"string"==typeof e.traceId&&"number"==typeof e.traceFlags}var SpanStatusCode,NOOP_TRACER=new NoopTracer,ProxyTracer=function(){function e(e,t,r,a){this._provider=e,this.name=t,this.version=r,this.options=a}return e.prototype.startSpan=function(e,t,r){return this._getTracer().startSpan(e,t,r)},e.prototype.startActiveSpan=function(e,t,r,a){var n=this._getTracer();return Reflect.apply(n.startActiveSpan,n,arguments)},e.prototype._getTracer=function(){if(this._delegate)return this._delegate;var e=this._provider.getDelegateTracer(this.name,this.version,this.options);return e?(this._delegate=e,this._delegate):NOOP_TRACER},e}(),NoopTracerProvider=function(){function e(){}return e.prototype.getTracer=function(e,t,r){return new NoopTracer},e}(),NOOP_TRACER_PROVIDER=new NoopTracerProvider,ProxyTracerProvider=function(){function e(){}return e.prototype.getTracer=function(e,t,r){var a;return null!==(a=this.getDelegateTracer(e,t,r))&&void 0!==a?a:new ProxyTracer(this,e,t,r)},e.prototype.getDelegate=function(){var e;return null!==(e=this._delegate)&&void 0!==e?e:NOOP_TRACER_PROVIDER},e.prototype.setDelegate=function(e){this._delegate=e},e.prototype.getDelegateTracer=function(e,t,r){var a;return null===(a=this._delegate)||void 0===a?void 0:a.getTracer(e,t,r)},e}();!function(e){e[e.UNSET=0]="UNSET",e[e.OK=1]="OK",e[e.ERROR=2]="ERROR"}(SpanStatusCode||(SpanStatusCode={}));var API_NAME3="trace",TraceAPI=function(){function e(){this._proxyTracerProvider=new ProxyTracerProvider,this.wrapSpanContext=wrapSpanContext,this.isSpanContextValid=isSpanContextValid,this.deleteSpan=deleteSpan,this.getSpan=getSpan,this.getActiveSpan=getActiveSpan,this.getSpanContext=getSpanContext,this.setSpan=setSpan,this.setSpanContext=setSpanContext}return e.getInstance=function(){return this._instance||(this._instance=new e),this._instance},e.prototype.setGlobalTracerProvider=function(e){var t=registerGlobal(API_NAME3,this._proxyTracerProvider,DiagAPI.instance());return t&&this._proxyTracerProvider.setDelegate(e),t},e.prototype.getTracerProvider=function(){return getGlobal(API_NAME3)||this._proxyTracerProvider},e.prototype.getTracer=function(e,t){return this.getTracerProvider().getTracer(e,t)},e.prototype.disable=function(){unregisterGlobal(API_NAME3,DiagAPI.instance()),this._proxyTracerProvider=new ProxyTracerProvider},e}(),trace=TraceAPI.getInstance(),__defProp2=Object.defineProperty,__export=(e,t)=>{for(var r in t)__defProp2(e,r,{get:t[r],enumerable:!0})};function prepareResponseHeaders(e,{contentType:t,dataStreamVersion:r}){const a=new Headers(null!=e?e:{});return a.has("Content-Type")||a.set("Content-Type",t),a.set("X-Vercel-AI-Data-Stream",r),a}var _a9,UnsupportedModelVersionError=class extends AISDKError{constructor(){super({name:"AI_UnsupportedModelVersionError",message:'Unsupported model version. AI SDK 4 only supports models that implement specification version "v1". Please upgrade to AI SDK 5 to use this model.'})}},name8="AI_InvalidArgumentError",marker9=`vercel.ai.error.${name8}`,symbol9=Symbol.for(marker9),InvalidArgumentError2=class extends AISDKError{constructor({parameter:e,value:t,message:r}){super({name:name8,message:`Invalid argument for parameter ${e}: ${r}`}),this[_a9]=!0,this.parameter=e,this.value=t}static isInstance(e){return AISDKError.hasMarker(e,marker9)}};_a9=symbol9;var _a22,name22="AI_RetryError",marker22=`vercel.ai.error.${name22}`,symbol22=Symbol.for(marker22),RetryError=class extends AISDKError{constructor({message:e,reason:t,errors:r}){super({name:name22,message:e}),this[_a22]=!0,this.reason=t,this.errors=r,this.lastError=r[r.length-1]}static isInstance(e){return AISDKError.hasMarker(e,marker22)}};_a22=symbol22;var retryWithExponentialBackoff=({maxRetries:e=2,initialDelayInMs:t=2e3,backoffFactor:r=2}={})=>async a=>_retryWithExponentialBackoff(a,{maxRetries:e,delayInMs:t,backoffFactor:r});async function _retryWithExponentialBackoff(e,{maxRetries:t,delayInMs:r,backoffFactor:a},n=[]){try{return await e()}catch(o){if(isAbortError(o))throw o;if(0===t)throw o;const s=getErrorMessage2(o),i=[...n,o],c=i.length;if(c>t)throw new RetryError({message:`Failed after ${c} attempts. Last error: ${s}`,reason:"maxRetriesExceeded",errors:i});if(o instanceof Error&&APICallError.isInstance(o)&&!0===o.isRetryable&&c<=t)return await delay(r),_retryWithExponentialBackoff(e,{maxRetries:t,delayInMs:a*r,backoffFactor:a},i);if(1===c)throw o;throw new RetryError({message:`Failed after ${c} attempts with non-retryable error: '${s}'`,reason:"errorNotRetryable",errors:i})}}function prepareRetries({maxRetries:e}){if(null!=e){if(!Number.isInteger(e))throw new InvalidArgumentError2({parameter:"maxRetries",value:e,message:"maxRetries must be an integer"});if(e<0)throw new InvalidArgumentError2({parameter:"maxRetries",value:e,message:"maxRetries must be >= 0"})}const t=null!=e?e:2;return{maxRetries:t,retry:retryWithExponentialBackoff({maxRetries:t})}}function assembleOperationName({operationId:e,telemetry:t}){return{"operation.name":`${e}${null!=(null==t?void 0:t.functionId)?` ${t.functionId}`:""}`,"resource.name":null==t?void 0:t.functionId,"ai.operationId":e,"ai.telemetry.functionId":null==t?void 0:t.functionId}}function getBaseTelemetryAttributes({model:e,settings:t,telemetry:r,headers:a}){var n;return{"ai.model.provider":e.provider,"ai.model.id":e.modelId,...Object.entries(t).reduce(((e,[t,r])=>(e[`ai.settings.${t}`]=r,e)),{}),...Object.entries(null!=(n=null==r?void 0:r.metadata)?n:{}).reduce(((e,[t,r])=>(e[`ai.telemetry.metadata.${t}`]=r,e)),{}),...Object.entries(null!=a?a:{}).reduce(((e,[t,r])=>(void 0!==r&&(e[`ai.request.headers.${t}`]=r),e)),{})}}var noopTracer={startSpan:()=>noopSpan,startActiveSpan:(e,t,r,a)=>"function"==typeof t?t(noopSpan):"function"==typeof r?r(noopSpan):"function"==typeof a?a(noopSpan):void 0},noopSpan={spanContext:()=>noopSpanContext,setAttribute(){return this},setAttributes(){return this},addEvent(){return this},addLink(){return this},addLinks(){return this},setStatus(){return this},updateName(){return this},end(){return this},isRecording:()=>!1,recordException(){return this}},noopSpanContext={traceId:"",spanId:"",traceFlags:0};function getTracer({isEnabled:e=!1,tracer:t}={}){return e?t||trace.getTracer("ai"):noopTracer}function recordSpan({name:e,tracer:t,attributes:r,fn:a,endWhenDone:n=!0}){return t.startActiveSpan(e,{attributes:r},(async e=>{try{const t=await a(e);return n&&e.end(),t}catch(t){try{recordErrorOnSpan(e,t)}finally{e.end()}throw t}}))}function recordErrorOnSpan(e,t){t instanceof Error?(e.recordException({name:t.name,message:t.message,stack:t.stack}),e.setStatus({code:SpanStatusCode.ERROR,message:t.message})):e.setStatus({code:SpanStatusCode.ERROR})}function selectTelemetryAttributes({telemetry:e,attributes:t}){return!0!==(null==e?void 0:e.isEnabled)?{}:Object.entries(t).reduce(((t,[r,a])=>{if(void 0===a)return t;if("object"==typeof a&&"input"in a&&"function"==typeof a.input){if(!1===(null==e?void 0:e.recordInputs))return t;const n=a.input();return void 0===n?t:{...t,[r]:n}}if("object"==typeof a&&"output"in a&&"function"==typeof a.output){if(!1===(null==e?void 0:e.recordOutputs))return t;const n=a.output();return void 0===n?t:{...t,[r]:n}}return{...t,[r]:a}}),{})}function splitArray(e,t){if(t<=0)throw new Error("chunkSize must be greater than 0");const r=[];for(let a=0;a<e.length;a+=t)r.push(e.slice(a,a+t));return r}async function embedMany({model:e,values:t,maxRetries:r,abortSignal:a,headers:n,experimental_telemetry:o}){if("string"==typeof e||"v1"!==e.specificationVersion)throw new UnsupportedModelVersionError;const{maxRetries:s,retry:i}=prepareRetries({maxRetries:r}),c=getBaseTelemetryAttributes({model:e,telemetry:o,headers:n,settings:{maxRetries:s}}),l=getTracer(o);return recordSpan({name:"ai.embedMany",attributes:selectTelemetryAttributes({telemetry:o,attributes:{...assembleOperationName({operationId:"ai.embedMany",telemetry:o}),...c,"ai.values":{input:()=>t.map((e=>JSON.stringify(e)))}}}),tracer:l,fn:async r=>{const s=e.maxEmbeddingsPerCall;if(null==s){const{embeddings:s,usage:u}=await i((()=>recordSpan({name:"ai.embedMany.doEmbed",attributes:selectTelemetryAttributes({telemetry:o,attributes:{...assembleOperationName({operationId:"ai.embedMany.doEmbed",telemetry:o}),...c,"ai.values":{input:()=>t.map((e=>JSON.stringify(e)))}}}),tracer:l,fn:async r=>{var s;const i=await e.doEmbed({values:t,abortSignal:a,headers:n}),c=i.embeddings,l=null!=(s=i.usage)?s:{tokens:NaN};return r.setAttributes(selectTelemetryAttributes({telemetry:o,attributes:{"ai.embeddings":{output:()=>c.map((e=>JSON.stringify(e)))},"ai.usage.tokens":l.tokens}})),{embeddings:c,usage:l}}})));return r.setAttributes(selectTelemetryAttributes({telemetry:o,attributes:{"ai.embeddings":{output:()=>s.map((e=>JSON.stringify(e)))},"ai.usage.tokens":u.tokens}})),new DefaultEmbedManyResult({values:t,embeddings:s,usage:u})}const u=splitArray(t,s),d=[];let p=0;for(const t of u){const{embeddings:r,usage:s}=await i((()=>recordSpan({name:"ai.embedMany.doEmbed",attributes:selectTelemetryAttributes({telemetry:o,attributes:{...assembleOperationName({operationId:"ai.embedMany.doEmbed",telemetry:o}),...c,"ai.values":{input:()=>t.map((e=>JSON.stringify(e)))}}}),tracer:l,fn:async r=>{var s;const i=await e.doEmbed({values:t,abortSignal:a,headers:n}),c=i.embeddings,l=null!=(s=i.usage)?s:{tokens:NaN};return r.setAttributes(selectTelemetryAttributes({telemetry:o,attributes:{"ai.embeddings":{output:()=>c.map((e=>JSON.stringify(e)))},"ai.usage.tokens":l.tokens}})),{embeddings:c,usage:l}}})));d.push(...r),p+=s.tokens}return r.setAttributes(selectTelemetryAttributes({telemetry:o,attributes:{"ai.embeddings":{output:()=>d.map((e=>JSON.stringify(e)))},"ai.usage.tokens":p}})),new DefaultEmbedManyResult({values:t,embeddings:d,usage:{tokens:p}})}})}var _a42,DefaultEmbedManyResult=class{constructor(e){this.values=e.values,this.embeddings=e.embeddings,this.usage=e.usage}},name42="AI_NoObjectGeneratedError",marker42=`vercel.ai.error.${name42}`,symbol42=Symbol.for(marker42),NoObjectGeneratedError=class extends AISDKError{constructor({message:e="No object generated.",cause:t,text:r,response:a,usage:n,finishReason:o}){super({name:name42,message:e,cause:t}),this[_a42]=!0,this.text=r,this.response=a,this.usage=n,this.finishReason=o}static isInstance(e){return AISDKError.hasMarker(e,marker42)}};_a42=symbol42;var dataContentSchema=z.union([z.string(),z.instanceof(Uint8Array),z.instanceof(ArrayBuffer),z.custom((e=>{var t,r;return null!=(r=null==(t=globalThis.Buffer)?void 0:t.isBuffer(e))&&r}),{message:"Must be a Buffer"})]),jsonValueSchema=z.lazy((()=>z.union([z.null(),z.string(),z.number(),z.boolean(),z.record(z.string(),jsonValueSchema),z.array(jsonValueSchema)]))),providerMetadataSchema=z.record(z.string(),z.record(z.string(),jsonValueSchema)),toolResultContentSchema=z.array(z.union([z.object({type:z.literal("text"),text:z.string()}),z.object({type:z.literal("image"),data:z.string(),mimeType:z.string().optional()})])),textPartSchema=z.object({type:z.literal("text"),text:z.string(),providerOptions:providerMetadataSchema.optional(),experimental_providerMetadata:providerMetadataSchema.optional()}),imagePartSchema=z.object({type:z.literal("image"),image:z.union([dataContentSchema,z.instanceof(URL)]),mimeType:z.string().optional(),providerOptions:providerMetadataSchema.optional(),experimental_providerMetadata:providerMetadataSchema.optional()}),filePartSchema=z.object({type:z.literal("file"),data:z.union([dataContentSchema,z.instanceof(URL)]),filename:z.string().optional(),mimeType:z.string(),providerOptions:providerMetadataSchema.optional(),experimental_providerMetadata:providerMetadataSchema.optional()}),reasoningPartSchema=z.object({type:z.literal("reasoning"),text:z.string(),providerOptions:providerMetadataSchema.optional(),experimental_providerMetadata:providerMetadataSchema.optional()}),redactedReasoningPartSchema=z.object({type:z.literal("redacted-reasoning"),data:z.string(),providerOptions:providerMetadataSchema.optional(),experimental_providerMetadata:providerMetadataSchema.optional()}),toolCallPartSchema=z.object({type:z.literal("tool-call"),toolCallId:z.string(),toolName:z.string(),args:z.unknown(),providerOptions:providerMetadataSchema.optional(),experimental_providerMetadata:providerMetadataSchema.optional()}),toolResultPartSchema=z.object({type:z.literal("tool-result"),toolCallId:z.string(),toolName:z.string(),result:z.unknown(),content:toolResultContentSchema.optional(),isError:z.boolean().optional(),providerOptions:providerMetadataSchema.optional(),experimental_providerMetadata:providerMetadataSchema.optional()}),coreSystemMessageSchema=z.object({role:z.literal("system"),content:z.string(),providerOptions:providerMetadataSchema.optional(),experimental_providerMetadata:providerMetadataSchema.optional()}),coreUserMessageSchema=z.object({role:z.literal("user"),content:z.union([z.string(),z.array(z.union([textPartSchema,imagePartSchema,filePartSchema]))]),providerOptions:providerMetadataSchema.optional(),experimental_providerMetadata:providerMetadataSchema.optional()}),coreAssistantMessageSchema=z.object({role:z.literal("assistant"),content:z.union([z.string(),z.array(z.union([textPartSchema,filePartSchema,reasoningPartSchema,redactedReasoningPartSchema,toolCallPartSchema]))]),providerOptions:providerMetadataSchema.optional(),experimental_providerMetadata:providerMetadataSchema.optional()}),coreToolMessageSchema=z.object({role:z.literal("tool"),content:z.array(toolResultPartSchema),providerOptions:providerMetadataSchema.optional(),experimental_providerMetadata:providerMetadataSchema.optional()});z.union([coreSystemMessageSchema,coreUserMessageSchema,coreAssistantMessageSchema,coreToolMessageSchema]);var DEFAULT_SCHEMA_PREFIX="JSON schema:",DEFAULT_SCHEMA_SUFFIX="You MUST answer with a JSON object that matches the JSON schema above.",DEFAULT_GENERIC_SUFFIX="You MUST answer with JSON.";function injectJsonInstruction({prompt:e,schema:t,schemaPrefix:r=(null!=t?DEFAULT_SCHEMA_PREFIX:void 0),schemaSuffix:a=(null!=t?DEFAULT_SCHEMA_SUFFIX:DEFAULT_GENERIC_SUFFIX)}){return[null!=e&&e.length>0?e:void 0,null!=e&&e.length>0?"":void 0,r,null!=t?JSON.stringify(t):void 0,a].filter((e=>null!=e)).join("\n")}createIdGenerator({prefix:"aiobj",size:24}),createIdGenerator({prefix:"aiobj",size:24}),createIdGenerator({prefix:"aitxt",size:24}),createIdGenerator({prefix:"msg",size:24});var output_exports={};__export(output_exports,{object:()=>object,text:()=>text});var text=()=>({type:"text",responseFormat:()=>({type:"text"}),injectIntoSystemPrompt:({system:e})=>e,parsePartial:({text:e})=>({partial:e}),parseOutput:({text:e})=>e}),object=({schema:e})=>{const t=asSchema(e);return{type:"object",responseFormat:({model:e})=>({type:"json",schema:e.supportsStructuredOutputs?t.jsonSchema:void 0}),injectIntoSystemPrompt:({system:e,model:r})=>r.supportsStructuredOutputs?e:injectJsonInstruction({prompt:e,schema:t.jsonSchema}),parsePartial({text:e}){const t=parsePartialJson(e);switch(t.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:t.value};default:{const e=t.state;throw new Error(`Unsupported parse state: ${e}`)}}},parseOutput({text:e},r){const a=safeParseJSON({text:e});if(!a.success)throw new NoObjectGeneratedError({message:"No object generated: could not parse the response.",cause:a.error,text:e,response:r.response,usage:r.usage,finishReason:r.finishReason});const n=safeValidateTypes({value:a.value,schema:t});if(!n.success)throw new NoObjectGeneratedError({message:"No object generated: response did not match schema.",cause:n.error,text:e,response:r.response,usage:r.usage,finishReason:r.finishReason});return n.value}}};function mergeStreams(e,t){const r=e.getReader(),a=t.getReader();let n,o,s=!1,i=!1;async function c(e){try{null==n&&(n=r.read());const t=await n;n=void 0,t.done?e.close():e.enqueue(t.value)}catch(t){e.error(t)}}async function l(e){try{null==o&&(o=a.read());const t=await o;o=void 0,t.done?e.close():e.enqueue(t.value)}catch(t){e.error(t)}}return new ReadableStream({async pull(e){try{if(s)return void await l(e);if(i)return void await c(e);null==n&&(n=r.read()),null==o&&(o=a.read());const{result:t,reader:u}=await Promise.race([n.then((e=>({result:e,reader:r}))),o.then((e=>({result:e,reader:a})))]);t.done||e.enqueue(t.value),u===r?(n=void 0,t.done&&(await l(e),s=!0)):(o=void 0,t.done&&(i=!0,await c(e)))}catch(t){e.error(t)}},cancel(){r.cancel(),a.cancel()}})}createIdGenerator({prefix:"aitxt",size:24}),createIdGenerator({prefix:"msg",size:24});var ClientOrServerImplementationSchema=z.object({name:z.string(),version:z.string()}).passthrough(),BaseParamsSchema=z.object({_meta:z.optional(z.object({}).passthrough())}).passthrough(),ResultSchema=BaseParamsSchema,RequestSchema=z.object({method:z.string(),params:z.optional(BaseParamsSchema)}),ServerCapabilitiesSchema=z.object({experimental:z.optional(z.object({}).passthrough()),logging:z.optional(z.object({}).passthrough()),prompts:z.optional(z.object({listChanged:z.optional(z.boolean())}).passthrough()),resources:z.optional(z.object({subscribe:z.optional(z.boolean()),listChanged:z.optional(z.boolean())}).passthrough()),tools:z.optional(z.object({listChanged:z.optional(z.boolean())}).passthrough())}).passthrough();ResultSchema.extend({protocolVersion:z.string(),capabilities:ServerCapabilitiesSchema,serverInfo:ClientOrServerImplementationSchema,instructions:z.optional(z.string())});var PaginatedResultSchema=ResultSchema.extend({nextCursor:z.optional(z.string())}),ToolSchema=z.object({name:z.string(),description:z.optional(z.string()),inputSchema:z.object({type:z.literal("object"),properties:z.optional(z.object({}).passthrough())}).passthrough()}).passthrough();PaginatedResultSchema.extend({tools:z.array(ToolSchema)});var TextContentSchema=z.object({type:z.literal("text"),text:z.string()}).passthrough(),ImageContentSchema=z.object({type:z.literal("image"),data:z.string().base64(),mimeType:z.string()}).passthrough(),ResourceContentsSchema=z.object({uri:z.string(),mimeType:z.optional(z.string())}).passthrough(),TextResourceContentsSchema=ResourceContentsSchema.extend({text:z.string()}),BlobResourceContentsSchema=ResourceContentsSchema.extend({blob:z.string().base64()}),EmbeddedResourceSchema=z.object({type:z.literal("resource"),resource:z.union([TextResourceContentsSchema,BlobResourceContentsSchema])}).passthrough();ResultSchema.extend({content:z.array(z.union([TextContentSchema,ImageContentSchema,EmbeddedResourceSchema])),isError:z.boolean().default(!1).optional()}).or(ResultSchema.extend({toolResult:z.unknown()}));var JSONRPC_VERSION="2.0",JSONRPCRequestSchema=z.object({jsonrpc:z.literal(JSONRPC_VERSION),id:z.union([z.string(),z.number().int()])}).merge(RequestSchema).strict(),JSONRPCResponseSchema=z.object({jsonrpc:z.literal(JSONRPC_VERSION),id:z.union([z.string(),z.number().int()]),result:ResultSchema}).strict(),JSONRPCErrorSchema=z.object({jsonrpc:z.literal(JSONRPC_VERSION),id:z.union([z.string(),z.number().int()]),error:z.object({code:z.number().int(),message:z.string(),data:z.optional(z.unknown())})}).strict(),JSONRPCNotificationSchema=z.object({jsonrpc:z.literal(JSONRPC_VERSION)}).merge(z.object({method:z.string(),params:z.optional(BaseParamsSchema)})).strict();z.union([JSONRPCRequestSchema,JSONRPCNotificationSchema,JSONRPCResponseSchema,JSONRPCErrorSchema]);var langchain_adapter_exports={};function createCallbacksTransformer(e={}){const t=new TextEncoder;let r="";return new TransformStream({async start(){e.onStart&&await e.onStart()},async transform(a,n){n.enqueue(t.encode(a)),r+=a,e.onToken&&await e.onToken(a),e.onText&&"string"==typeof a&&await e.onText(a)},async flush(){e.onCompletion&&await e.onCompletion(r),e.onFinal&&await e.onFinal(r)}})}function toDataStreamInternal(e,t){return e.pipeThrough(new TransformStream({transform:async(e,t)=>{var r;"string"!=typeof e?"event"in e?"on_chat_model_stream"===e.event&&forwardAIMessageChunk(null==(r=e.data)?void 0:r.chunk,t):forwardAIMessageChunk(e,t):t.enqueue(e)}})).pipeThrough(createCallbacksTransformer(t)).pipeThrough(new TextDecoderStream).pipeThrough(new TransformStream({transform:async(e,t)=>{t.enqueue(formatDataStreamPart("text",e))}}))}function toDataStream(e,t){return toDataStreamInternal(e,t).pipeThrough(new TextEncoderStream)}function toDataStreamResponse(e,t){var r;const a=toDataStreamInternal(e,null==t?void 0:t.callbacks).pipeThrough(new TextEncoderStream),n=null==t?void 0:t.data,o=null==t?void 0:t.init,s=n?mergeStreams(n.stream,a):a;return new Response(s,{status:null!=(r=null==o?void 0:o.status)?r:200,statusText:null==o?void 0:o.statusText,headers:prepareResponseHeaders(null==o?void 0:o.headers,{contentType:"text/plain; charset=utf-8",dataStreamVersion:"v1"})})}function mergeIntoDataStream(e,t){t.dataStream.merge(toDataStreamInternal(e,t.callbacks))}function forwardAIMessageChunk(e,t){if("string"==typeof e.content)t.enqueue(e.content);else{const r=e.content;for(const e of r)"text"===e.type&&t.enqueue(e.text)}}__export(langchain_adapter_exports,{mergeIntoDataStream:()=>mergeIntoDataStream,toDataStream:()=>toDataStream,toDataStreamResponse:()=>toDataStreamResponse});var llamaindex_adapter_exports={};function toDataStreamInternal2(e,t){const r=trimStartOfStream();return convertAsyncIteratorToReadableStream(e[Symbol.asyncIterator]()).pipeThrough(new TransformStream({async transform(e,t){t.enqueue(r(e.delta))}})).pipeThrough(createCallbacksTransformer(t)).pipeThrough(new TextDecoderStream).pipeThrough(new TransformStream({transform:async(e,t)=>{t.enqueue(formatDataStreamPart("text",e))}}))}function toDataStream2(e,t){return toDataStreamInternal2(e,t).pipeThrough(new TextEncoderStream)}function toDataStreamResponse2(e,t={}){var r;const{init:a,data:n,callbacks:o}=t,s=toDataStreamInternal2(e,o).pipeThrough(new TextEncoderStream),i=n?mergeStreams(n.stream,s):s;return new Response(i,{status:null!=(r=null==a?void 0:a.status)?r:200,statusText:null==a?void 0:a.statusText,headers:prepareResponseHeaders(null==a?void 0:a.headers,{contentType:"text/plain; charset=utf-8",dataStreamVersion:"v1"})})}function mergeIntoDataStream2(e,t){t.dataStream.merge(toDataStreamInternal2(e,t.callbacks))}function trimStartOfStream(){let e=!0;return t=>(e&&(t=t.trimStart())&&(e=!1),t)}__export(llamaindex_adapter_exports,{mergeIntoDataStream:()=>mergeIntoDataStream2,toDataStream:()=>toDataStream2,toDataStreamResponse:()=>toDataStreamResponse2});var _a17,_b,_a23,_b2,_a33,_b3,marker17="vercel.ai.error",symbol17=Symbol.for(marker17),AISDKError2=class e extends(_b=Error,_a17=symbol17,_b){constructor({name:e,message:t,cause:r}){super(t),this[_a17]=!0,this.name=e,this.cause=r}static isInstance(t){return e.hasMarker(t,marker17)}static hasMarker(e,t){const r=Symbol.for(t);return null!=e&&"object"==typeof e&&r in e&&"boolean"==typeof e[r]&&!0===e[r]}},name17="AI_APICallError",marker23=`vercel.ai.error.${name17}`,symbol23=Symbol.for(marker23),APICallError2=class extends(_b2=AISDKError2,_a23=symbol23,_b2){constructor({message:e,url:t,requestBodyValues:r,statusCode:a,responseHeaders:n,responseBody:o,cause:s,isRetryable:i=null!=a&&(408===a||409===a||429===a||a>=500),data:c}){super({name:name17,message:e,cause:s}),this[_a23]=!0,this.url=t,this.requestBodyValues=r,this.statusCode=a,this.responseHeaders=n,this.responseBody=o,this.isRetryable=i,this.data=c}static isInstance(e){return AISDKError2.hasMarker(e,marker23)}},name23="AI_EmptyResponseBodyError",marker33=`vercel.ai.error.${name23}`,symbol33=Symbol.for(marker33),EmptyResponseBodyError=class extends(_b3=AISDKError2,_a33=symbol33,_b3){constructor({message:e="Empty response body"}={}){super({name:name23,message:e}),this[_a33]=!0}static isInstance(e){return AISDKError2.hasMarker(e,marker33)}};function getErrorMessage3(e){return null==e?"unknown error":"string"==typeof e?e:e instanceof Error?e.message:JSON.stringify(e)}var _a43,_b4,_a73,_b7,_a133,_b13,name33="AI_InvalidArgumentError",marker43=`vercel.ai.error.${name33}`,symbol43=Symbol.for(marker43),InvalidArgumentError3=class extends(_b4=AISDKError2,_a43=symbol43,_b4){constructor({message:e,cause:t,argument:r}){super({name:name33,message:e,cause:t}),this[_a43]=!0,this.argument=r}static isInstance(e){return AISDKError2.hasMarker(e,marker43)}},name63="AI_JSONParseError",marker73=`vercel.ai.error.${name63}`,symbol73=Symbol.for(marker73),JSONParseError2=class extends(_b7=AISDKError2,_a73=symbol73,_b7){constructor({text:e,cause:t}){super({name:name63,message:`JSON parsing failed: Text: ${e}.\nError message: ${getErrorMessage3(t)}`,cause:t}),this[_a73]=!0,this.text=e}static isInstance(e){return AISDKError2.hasMarker(e,marker73)}},name123="AI_TypeValidationError",marker133=`vercel.ai.error.${name123}`,symbol133=Symbol.for(marker133),TypeValidationError2=class e extends(_b13=AISDKError2,_a133=symbol133,_b13){constructor({value:e,cause:t}){super({name:name123,message:`Type validation failed: Value: ${JSON.stringify(e)}.\nError message: ${getErrorMessage3(t)}`,cause:t}),this[_a133]=!0,this.value=e}static isInstance(e){return AISDKError2.hasMarker(e,marker133)}static wrap({value:t,cause:r}){return e.isInstance(r)&&r.value===t?r:new e({value:t,cause:r})}},ParseError=class extends Error{constructor(e,t){super(e),this.name="ParseError",this.type=t.type,this.field=t.field,this.value=t.value,this.line=t.line}};function noop(e){}function createParser(e){if("function"==typeof e)throw new TypeError("`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?");const{onEvent:t=noop,onError:r=noop,onRetry:a=noop,onComment:n}=e;let o,s="",i=!0,c="",l="";function u(e){if(""===e)return c.length>0&&t({id:o,event:l||void 0,data:c.endsWith("\n")?c.slice(0,-1):c}),o=void 0,c="",void(l="");if(e.startsWith(":"))return void(n&&n(e.slice(e.startsWith(": ")?2:1)));const r=e.indexOf(":");if(-1===r)d(e,"",e);else{const t=e.slice(0,r),a=" "===e[r+1]?2:1;d(t,e.slice(r+a),e)}}function d(e,t,n){switch(e){case"event":l=t;break;case"data":c=`${c}${t}\n`;break;case"id":o=t.includes("\0")?void 0:t;break;case"retry":/^\d+$/.test(t)?a(parseInt(t,10)):r(new ParseError(`Invalid \`retry\` value: "${t}"`,{type:"invalid-retry",value:t,line:n}));break;default:r(new ParseError(`Unknown field "${e.length>20?`${e.slice(0,20)}…`:e}"`,{type:"unknown-field",field:e,value:t,line:n}))}}return{feed:function(e){const t=i?e.replace(/^\xEF\xBB\xBF/,""):e,[r,a]=splitLines(`${s}${t}`);for(const e of r)u(e);s=a,i=!1},reset:function(e={}){s&&e.consume&&u(s),i=!0,o=void 0,c="",l="",s=""}}}function splitLines(e){const t=[];let r="",a=0;for(;a<e.length;){const n=e.indexOf("\r",a),o=e.indexOf("\n",a);let s=-1;if(-1!==n&&-1!==o?s=Math.min(n,o):-1!==n?s=n===e.length-1?-1:n:-1!==o&&(s=o),-1===s){r=e.slice(a);break}{const r=e.slice(a,s);t.push(r),a=s+1,"\r"===e[a-1]&&"\n"===e[a]&&a++}}return[t,r]}var EventSourceParserStream=class extends TransformStream{constructor({onError:e,onRetry:t,onComment:r}={}){let a;super({start(n){a=createParser({onEvent:e=>{n.enqueue(e)},onError(t){"terminate"===e?n.error(t):"function"==typeof e&&e(t)},onRetry:t,onComment:r})},transform(e){a.feed(e)}})}};function combineHeaders(...e){return e.reduce(((e,t)=>({...e,...null!=t?t:{}})),{})}async function delay2(e,t){if(null==e)return Promise.resolve();const r=null==t?void 0:t.abortSignal;return new Promise(((t,a)=>{if(null==r?void 0:r.aborted)return void a(createAbortError());const n=setTimeout((()=>{o(),t()}),e),o=()=>{clearTimeout(n),null==r||r.removeEventListener("abort",s)},s=()=>{o(),a(createAbortError())};null==r||r.addEventListener("abort",s)}))}function createAbortError(){return new DOMException("Delay was aborted","AbortError")}function extractResponseHeaders(e){return Object.fromEntries([...e.headers])}var createIdGenerator2=({prefix:e,size:t=16,alphabet:r="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:a="-"}={})=>{const n=()=>{const e=r.length,a=new Array(t);for(let n=0;n<t;n++)a[n]=r[Math.random()*e|0];return a.join("")};if(null==e)return n;if(r.includes(a))throw new InvalidArgumentError3({argument:"separator",message:`The separator "${a}" must not be part of the alphabet "${r}".`});return()=>`${e}${a}${n()}`};function getErrorMessage22(e){return null==e?"unknown error":"string"==typeof e?e:e instanceof Error?e.message:JSON.stringify(e)}function isAbortError2(e){return(e instanceof Error||e instanceof DOMException)&&("AbortError"===e.name||"ResponseAborted"===e.name||"TimeoutError"===e.name)}createIdGenerator2();var FETCH_FAILED_ERROR_MESSAGES=["fetch failed","failed to fetch"];function handleFetchError({error:e,url:t,requestBodyValues:r}){if(isAbortError2(e))return e;if(e instanceof TypeError&&FETCH_FAILED_ERROR_MESSAGES.includes(e.message.toLowerCase())){const a=e.cause;if(null!=a)return new APICallError2({message:`Cannot connect to API: ${a.message}`,cause:a,url:t,requestBodyValues:r,isRetryable:!0})}return e}function getRuntimeEnvironmentUserAgent(e=globalThis){var t,r,a;return e.window?"runtime/browser":(null==(t=e.navigator)?void 0:t.userAgent)?`runtime/${e.navigator.userAgent.toLowerCase()}`:(null==(a=null==(r=e.process)?void 0:r.versions)?void 0:a.node)?`runtime/node.js/${e.process.version.substring(0)}`:e.EdgeRuntime?"runtime/vercel-edge":"runtime/unknown"}function normalizeHeaders(e){if(null==e)return{};const t={};if(e instanceof Headers)e.forEach(((e,r)=>{t[r.toLowerCase()]=e}));else{Array.isArray(e)||(e=Object.entries(e));for(const[r,a]of e)null!=a&&(t[r.toLowerCase()]=a)}return t}function withUserAgentSuffix(e,...t){const r=new Headers(normalizeHeaders(e)),a=r.get("user-agent")||"";return r.set("user-agent",[a,...t].filter(Boolean).join(" ")),Object.fromEntries(r.entries())}var VERSION2="3.0.22",getOriginalFetch=()=>globalThis.fetch,getFromApi=async({url:e,headers:t={},successfulResponseHandler:r,failedResponseHandler:a,abortSignal:n,fetch:o=getOriginalFetch()})=>{try{const s=await o(e,{method:"GET",headers:withUserAgentSuffix(t,`ai-sdk/provider-utils/${VERSION2}`,getRuntimeEnvironmentUserAgent()),signal:n}),i=extractResponseHeaders(s);if(!s.ok){let t;try{t=await a({response:s,url:e,requestBodyValues:{}})}catch(t){if(isAbortError2(t)||APICallError2.isInstance(t))throw t;throw new APICallError2({message:"Failed to process error response",cause:t,statusCode:s.status,url:e,responseHeaders:i,requestBodyValues:{}})}throw t.value}try{return await r({response:s,url:e,requestBodyValues:{}})}catch(t){if(t instanceof Error&&(isAbortError2(t)||APICallError2.isInstance(t)))throw t;throw new APICallError2({message:"Failed to process successful response",cause:t,statusCode:s.status,url:e,responseHeaders:i,requestBodyValues:{}})}}catch(t){throw handleFetchError({error:t,url:e,requestBodyValues:{}})}};function loadOptionalSetting({settingValue:e,environmentVariableName:t}){return"string"==typeof e||null==e&&"undefined"!=typeof process&&null!=(e=process.env[t])&&"string"==typeof e?e:void 0}var suspectProtoRx=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,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*:/;function _parse(e){const t=JSON.parse(e);return null===t||"object"!=typeof t||!1===suspectProtoRx.test(e)&&!1===suspectConstructorRx.test(e)?t:filter(t)}function filter(e){let t=[e];for(;t.length;){const e=t;t=[];for(const r of e){if(Object.prototype.hasOwnProperty.call(r,"__proto__"))throw new SyntaxError("Object contains forbidden prototype property");if(Object.prototype.hasOwnProperty.call(r,"constructor")&&null!==r.constructor&&"object"==typeof r.constructor&&Object.prototype.hasOwnProperty.call(r.constructor,"prototype"))throw new SyntaxError("Object contains forbidden prototype property");for(const e in r){const a=r[e];a&&"object"==typeof a&&t.push(a)}}}return e}function secureJsonParse(e){const{stackTraceLimit:t}=Error;try{Error.stackTraceLimit=0}catch(t){return _parse(e)}try{return _parse(e)}finally{Error.stackTraceLimit=t}}var validatorSymbol2=Symbol.for("vercel.ai.validator");function validator2(e){return{[validatorSymbol2]:!0,validate:e}}function isValidator2(e){return"object"==typeof e&&null!==e&&validatorSymbol2 in e&&!0===e[validatorSymbol2]&&"validate"in e}function lazyValidator(e){let t;return()=>(null==t&&(t=e()),t)}function asValidator2(e){return isValidator2(e)?e:"function"==typeof e?e():standardSchemaValidator(e)}function standardSchemaValidator(e){return validator2((async t=>{const r=await e["~standard"].validate(t);return null==r.issues?{success:!0,value:r.value}:{success:!1,error:new TypeValidationError2({value:t,cause:r.issues})}}))}async function validateTypes({value:e,schema:t}){const r=await safeValidateTypes2({value:e,schema:t});if(!r.success)throw TypeValidationError2.wrap({value:e,cause:r.error});return r.value}async function safeValidateTypes2({value:e,schema:t}){const r=asValidator2(t);try{if(null==r.validate)return{success:!0,value:e,rawValue:e};const t=await r.validate(e);return t.success?{success:!0,value:t.value,rawValue:e}:{success:!1,error:TypeValidationError2.wrap({value:e,cause:t.error}),rawValue:e}}catch(t){return{success:!1,error:TypeValidationError2.wrap({value:e,cause:t}),rawValue:e}}}async function parseJSON({text:e,schema:t}){try{const r=secureJsonParse(e);return null==t?r:validateTypes({value:r,schema:t})}catch(t){if(JSONParseError2.isInstance(t)||TypeValidationError2.isInstance(t))throw t;throw new JSONParseError2({text:e,cause:t})}}async function safeParseJSON2({text:e,schema:t}){try{const r=secureJsonParse(e);return null==t?{success:!0,value:r,rawValue:r}:await safeValidateTypes2({value:r,schema:t})}catch(t){return{success:!1,error:JSONParseError2.isInstance(t)?t:new JSONParseError2({text:e,cause:t}),rawValue:void 0}}}function parseJsonEventStream({stream:e,schema:t}){return e.pipeThrough(new TextDecoderStream).pipeThrough(new EventSourceParserStream).pipeThrough(new TransformStream({async transform({data:e},r){"[DONE]"!==e&&r.enqueue(await safeParseJSON2({text:e,schema:t}))}}))}var getOriginalFetch2=()=>globalThis.fetch,postJsonToApi=async({url:e,headers:t,body:r,failedResponseHandler:a,successfulResponseHandler:n,abortSignal:o,fetch:s})=>postToApi({url:e,headers:{"Content-Type":"application/json",...t},body:{content:JSON.stringify(r),values:r},failedResponseHandler:a,successfulResponseHandler:n,abortSignal:o,fetch:s}),postToApi=async({url:e,headers:t={},body:r,successfulResponseHandler:a,failedResponseHandler:n,abortSignal:o,fetch:s=getOriginalFetch2()})=>{try{const i=await s(e,{method:"POST",headers:withUserAgentSuffix(t,`ai-sdk/provider-utils/${VERSION2}`,getRuntimeEnvironmentUserAgent()),body:r.content,signal:o}),c=extractResponseHeaders(i);if(!i.ok){let t;try{t=await n({response:i,url:e,requestBodyValues:r.values})}catch(t){if(isAbortError2(t)||APICallError2.isInstance(t))throw t;throw new APICallError2({message:"Failed to process error response",cause:t,statusCode:i.status,url:e,responseHeaders:c,requestBodyValues:r.values})}throw t.value}try{return await a({response:i,url:e,requestBodyValues:r.values})}catch(t){if(t instanceof Error&&(isAbortError2(t)||APICallError2.isInstance(t)))throw t;throw new APICallError2({message:"Failed to process successful response",cause:t,statusCode:i.status,url:e,responseHeaders:c,requestBodyValues:r.values})}}catch(t){throw handleFetchError({error:t,url:e,requestBodyValues:r.values})}};function tool(e){return e}function createProviderDefinedToolFactoryWithOutputSchema({id:e,name:t,inputSchema:r,outputSchema:a}){return({execute:n,toModelOutput:o,onInputStart:s,onInputDelta:i,onInputAvailable:c,...l})=>tool({type:"provider-defined",id:e,name:t,args:l,inputSchema:r,outputSchema:a,execute:n,toModelOutput:o,onInputStart:s,onInputDelta:i,onInputAvailable:c})}async function resolve(e){return"function"==typeof e&&(e=e()),Promise.resolve(e)}var createJsonErrorResponseHandler=({errorSchema:e,errorToMessage:t,isRetryable:r})=>async({response:a,url:n,requestBodyValues:o})=>{const s=await a.text(),i=extractResponseHeaders(a);if(""===s.trim())return{responseHeaders:i,value:new APICallError2({message:a.statusText,url:n,requestBodyValues:o,statusCode:a.status,responseHeaders:i,responseBody:s,isRetryable:null==r?void 0:r(a)})};try{const c=await parseJSON({text:s,schema:e});return{responseHeaders:i,value:new APICallError2({message:t(c),url:n,requestBodyValues:o,statusCode:a.status,responseHeaders:i,responseBody:s,data:c,isRetryable:null==r?void 0:r(a,c)})}}catch(e){return{responseHeaders:i,value:new APICallError2({message:a.statusText,url:n,requestBodyValues:o,statusCode:a.status,responseHeaders:i,responseBody:s,isRetryable:null==r?void 0:r(a)})}}},createEventSourceResponseHandler=e=>async({response:t})=>{const r=extractResponseHeaders(t);if(null==t.body)throw new EmptyResponseBodyError({});return{responseHeaders:r,value:parseJsonEventStream({stream:t.body,schema:e})}},createJsonResponseHandler=e=>async({response:t,url:r,requestBodyValues:a})=>{const n=await t.text(),o=await safeParseJSON2({text:n,schema:e}),s=extractResponseHeaders(t);if(!o.success)throw new APICallError2({message:"Invalid JSON response",cause:o.error,statusCode:t.status,responseHeaders:s,responseBody:n,url:r,requestBodyValues:a});return{responseHeaders:s,value:o.value,rawValue:o.rawValue}};function addAdditionalPropertiesToJsonSchema(e){if("object"===e.type){e.additionalProperties=!1;const t=e.properties;if(null!=t)for(const e in t)t[e]=addAdditionalPropertiesToJsonSchema(t[e])}return"array"===e.type&&null!=e.items&&(Array.isArray(e.items)?e.items=e.items.map((e=>addAdditionalPropertiesToJsonSchema(e))):e.items=addAdditionalPropertiesToJsonSchema(e.items)),e}var getRelativePath2=(e,t)=>{let r=0;for(;r<e.length&&r<t.length&&e[r]===t[r];r++);return[(e.length-r).toString(),...t.slice(r)].join("/")},ignoreOverride2=Symbol("Let zodToJsonSchema decide on which parser to use"),defaultOptions2={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",strictUnions:!1,definitions:{},errorMessages:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref"},getDefaultOptions2=e=>"string"==typeof e?{...defaultOptions2,name:e}:{...defaultOptions2,...e};function parseAnyDef2(){return{}}function parseArrayDef2(e,t){var r,a,n;const o={type:"array"};return(null==(r=e.type)?void 0:r._def)&&(null==(n=null==(a=e.type)?void 0:a._def)?void 0:n.typeName)!==ZodFirstPartyTypeKind.ZodAny&&(o.items=parseDef2(e.type._def,{...t,currentPath:[...t.currentPath,"items"]})),e.minLength&&(o.minItems=e.minLength.value),e.maxLength&&(o.maxItems=e.maxLength.value),e.exactLength&&(o.minItems=e.exactLength.value,o.maxItems=e.exactLength.value),o}function parseBigintDef2(e){const t={type:"integer",format:"int64"};if(!e.checks)return t;for(const r of e.checks)switch(r.kind){case"min":r.inclusive?t.minimum=r.value:t.exclusiveMinimum=r.value;break;case"max":r.inclusive?t.maximum=r.value:t.exclusiveMaximum=r.value;break;case"multipleOf":t.multipleOf=r.value}return t}function parseBooleanDef2(){return{type:"boolean"}}function parseBrandedDef2(e,t){return parseDef2(e.type._def,t)}var parseCatchDef2=(e,t)=>parseDef2(e.innerType._def,t);function parseDateDef2(e,t,r){const a=null!=r?r:t.dateStrategy;if(Array.isArray(a))return{anyOf:a.map(((r,a)=>parseDateDef2(e,t,r)))};switch(a){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return integerDateParser2(e)}}var integerDateParser2=e=>{const t={type:"integer",format:"unix-time"};for(const r of e.checks)switch(r.kind){case"min":t.minimum=r.value;break;case"max":t.maximum=r.value}return t};function parseDefaultDef2(e,t){return{...parseDef2(e.innerType._def,t),default:e.defaultValue()}}function parseEffectsDef2(e,t){return"input"===t.effectStrategy?parseDef2(e.schema._def,t):parseAnyDef2()}function parseEnumDef2(e){return{type:"string",enum:Array.from(e.values)}}var isJsonSchema7AllOfType2=e=>(!("type"in e)||"string"!==e.type)&&"allOf"in e;function parseIntersectionDef2(e,t){const r=[parseDef2(e.left._def,{...t,currentPath:[...t.currentPath,"allOf","0"]}),parseDef2(e.right._def,{...t,currentPath:[...t.currentPath,"allOf","1"]})].filter((e=>!!e)),a=[];return r.forEach((e=>{if(isJsonSchema7AllOfType2(e))a.push(...e.allOf);else{let t=e;if("additionalProperties"in e&&!1===e.additionalProperties){const{additionalProperties:r,...a}=e;t=a}a.push(t)}})),a.length?{allOf:a}:void 0}function parseLiteralDef2(e){const t=typeof e.value;return"bigint"!==t&&"number"!==t&&"boolean"!==t&&"string"!==t?{type:Array.isArray(e.value)?"array":"object"}:{type:"bigint"===t?"integer":t,const:e.value}}var emojiRegex2=void 0,zodPatterns2={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>(void 0===emojiRegex2&&(emojiRegex2=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),emojiRegex2),uuid:/^[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}$/,ipv4:/^(?:(?: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])$/,ipv4Cidr:/^(?:(?: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])$/,ipv6:/^(([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})))$/,ipv6Cidr:/^(([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])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function parseStringDef2(e,t){const r={type:"string"};if(e.checks)for(const a of e.checks)switch(a.kind){case"min":r.minLength="number"==typeof r.minLength?Math.max(r.minLength,a.value):a.value;break;case"max":r.maxLength="number"==typeof r.maxLength?Math.min(r.maxLength,a.value):a.value;break;case"email":switch(t.emailStrategy){case"format:email":addFormat2(r,"email",a.message,t);break;case"format:idn-email":addFormat2(r,"idn-email",a.message,t);break;case"pattern:zod":addPattern2(r,zodPatterns2.email,a.message,t)}break;case"url":addFormat2(r,"uri",a.message,t);break;case"uuid":addFormat2(r,"uuid",a.message,t);break;case"regex":addPattern2(r,a.regex,a.message,t);break;case"cuid":addPattern2(r,zodPatterns2.cuid,a.message,t);break;case"cuid2":addPattern2(r,zodPatterns2.cuid2,a.message,t);break;case"startsWith":addPattern2(r,RegExp(`^${escapeLiteralCheckValue2(a.value,t)}`),a.message,t);break;case"endsWith":addPattern2(r,RegExp(`${escapeLiteralCheckValue2(a.value,t)}$`),a.message,t);break;case"datetime":addFormat2(r,"date-time",a.message,t);break;case"date":addFormat2(r,"date",a.message,t);break;case"time":addFormat2(r,"time",a.message,t);break;case"duration":addFormat2(r,"duration",a.message,t);break;case"length":r.minLength="number"==typeof r.minLength?Math.max(r.minLength,a.value):a.value,r.maxLength="number"==typeof r.maxLength?Math.min(r.maxLength,a.value):a.value;break;case"includes":addPattern2(r,RegExp(escapeLiteralCheckValue2(a.value,t)),a.message,t);break;case"ip":"v6"!==a.version&&addFormat2(r,"ipv4",a.message,t),"v4"!==a.version&&addFormat2(r,"ipv6",a.message,t);break;case"base64url":addPattern2(r,zodPatterns2.base64url,a.message,t);break;case"jwt":addPattern2(r,zodPatterns2.jwt,a.message,t);break;case"cidr":"v6"!==a.version&&addPattern2(r,zodPatterns2.ipv4Cidr,a.message,t),"v4"!==a.version&&addPattern2(r,zodPatterns2.ipv6Cidr,a.message,t);break;case"emoji":addPattern2(r,zodPatterns2.emoji(),a.message,t);break;case"ulid":addPattern2(r,zodPatterns2.ulid,a.message,t);break;case"base64":switch(t.base64Strategy){case"format:binary":addFormat2(r,"binary",a.message,t);break;case"contentEncoding:base64":r.contentEncoding="base64";break;case"pattern:zod":addPattern2(r,zodPatterns2.base64,a.message,t)}break;case"nanoid":addPattern2(r,zodPatterns2.nanoid,a.message,t)}return r}function escapeLiteralCheckValue2(e,t){return"escape"===t.patternStrategy?escapeNonAlphaNumeric2(e):e}var ALPHA_NUMERIC2=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function escapeNonAlphaNumeric2(e){let t="";for(let r=0;r<e.length;r++)ALPHA_NUMERIC2.has(e[r])||(t+="\\"),t+=e[r];return t}function addFormat2(e,t,r,a){var n;e.format||(null==(n=e.anyOf)?void 0:n.some((e=>e.format)))?(e.anyOf||(e.anyOf=[]),e.format&&(e.anyOf.push({format:e.format}),delete e.format),e.anyOf.push({format:t,...r&&a.errorMessages&&{errorMessage:{format:r}}})):e.format=t}function addPattern2(e,t,r,a){var n;e.pattern||(null==(n=e.allOf)?void 0:n.some((e=>e.pattern)))?(e.allOf||(e.allOf=[]),e.pattern&&(e.allOf.push({pattern:e.pattern}),delete e.pattern),e.allOf.push({pattern:stringifyRegExpWithFlags2(t,a),...r&&a.errorMessages&&{errorMessage:{pattern:r}}})):e.pattern=stringifyRegExpWithFlags2(t,a)}function stringifyRegExpWithFlags2(e,t){var r;if(!t.applyRegexFlags||!e.flags)return e.source;const a=e.flags.includes("i"),n=e.flags.includes("m"),o=e.flags.includes("s"),s=a?e.source.toLowerCase():e.source;let i="",c=!1,l=!1,u=!1;for(let e=0;e<s.length;e++)if(c)i+=s[e],c=!1;else{if(a)if(l){if(s[e].match(/[a-z]/)){u?(i+=s[e],i+=`${s[e-2]}-${s[e]}`.toUpperCase(),u=!1):"-"===s[e+1]&&(null==(r=s[e+2])?void 0:r.match(/[a-z]/))?(i+=s[e],u=!0):i+=`${s[e]}${s[e].toUpperCase()}`;continue}}else if(s[e].match(/[a-z]/)){i+=`[${s[e]}${s[e].toUpperCase()}]`;continue}if(n){if("^"===s[e]){i+="(^|(?<=[\r\n]))";continue}if("$"===s[e]){i+="($|(?=[\r\n]))";continue}}o&&"."===s[e]?i+=l?`${s[e]}\r\n`:`[${s[e]}\r\n]`:(i+=s[e],"\\"===s[e]?c=!0:l&&"]"===s[e]?l=!1:l||"["!==s[e]||(l=!0))}return i}function parseRecordDef2(e,t){var r,a,n,o,s,i;const c={type:"object",additionalProperties:null!=(r=parseDef2(e.valueType._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]}))?r:t.allowedAdditionalProperties};if((null==(a=e.keyType)?void 0:a._def.typeName)===ZodFirstPartyTypeKind.ZodString&&(null==(n=e.keyType._def.checks)?void 0:n.length)){const{type:r,...a}=parseStringDef2(e.keyType._def,t);return{...c,propertyNames:a}}if((null==(o=e.keyType)?void 0:o._def.typeName)===ZodFirstPartyTypeKind.ZodEnum)return{...c,propertyNames:{enum:e.keyType._def.values}};if((null==(s=e.keyType)?void 0:s._def.typeName)===ZodFirstPartyTypeKind.ZodBranded&&e.keyType._def.type._def.typeName===ZodFirstPartyTypeKind.ZodString&&(null==(i=e.keyType._def.type._def.checks)?void 0:i.length)){const{type:r,...a}=parseBrandedDef2(e.keyType._def,t);return{...c,propertyNames:a}}return c}function parseMapDef2(e,t){if("record"===t.mapStrategy)return parseRecordDef2(e,t);return{type:"array",maxItems:125,items:{type:"array",items:[parseDef2(e.keyType._def,{...t,currentPath:[...t.currentPath,"items","items","0"]})||parseAnyDef2(),parseDef2(e.valueType._def,{...t,currentPath:[...t.currentPath,"items","items","1"]})||parseAnyDef2()],minItems:2,maxItems:2}}}function parseNativeEnumDef2(e){const t=e.values,r=Object.keys(e.values).filter((e=>"number"!=typeof t[t[e]])).map((e=>t[e])),a=Array.from(new Set(r.map((e=>typeof e))));return{type:1===a.length?"string"===a[0]?"string":"number":["string","number"],enum:r}}function parseNeverDef2(){return{not:parseAnyDef2()}}function parseNullDef2(){return{type:"null"}}var primitiveMappings2={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function parseUnionDef2(e,t){const r=e.options instanceof Map?Array.from(e.options.values()):e.options;if(r.every((e=>e._def.typeName in primitiveMappings2&&(!e._def.checks||!e._def.checks.length)))){const e=r.reduce(((e,t)=>{const r=primitiveMappings2[t._def.typeName];return r&&!e.includes(r)?[...e,r]:e}),[]);return{type:e.length>1?e:e[0]}}if(r.every((e=>"ZodLiteral"===e._def.typeName&&!e.description))){const e=r.reduce(((e,t)=>{const r=typeof t._def.value;switch(r){case"string":case"number":case"boolean":return[...e,r];case"bigint":return[...e,"integer"];case"object":if(null===t._def.value)return[...e,"null"];default:return e}}),[]);if(e.length===r.length){const t=e.filter(((e,t,r)=>r.indexOf(e)===t));return{type:t.length>1?t:t[0],enum:r.reduce(((e,t)=>e.includes(t._def.value)?e:[...e,t._def.value]),[])}}}else if(r.every((e=>"ZodEnum"===e._def.typeName)))return{type:"string",enum:r.reduce(((e,t)=>[...e,...t._def.values.filter((t=>!e.includes(t)))]),[])};return asAnyOf2(e,t)}var asAnyOf2=(e,t)=>{const r=(e.options instanceof Map?Array.from(e.options.values()):e.options).map(((e,r)=>parseDef2(e._def,{...t,currentPath:[...t.currentPath,"anyOf",`${r}`]}))).filter((e=>!!e&&(!t.strictUnions||"object"==typeof e&&Object.keys(e).length>0)));return r.length?{anyOf:r}:void 0};function parseNullableDef2(e,t){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(e.innerType._def.typeName)&&(!e.innerType._def.checks||!e.innerType._def.checks.length))return{type:[primitiveMappings2[e.innerType._def.typeName],"null"]};const r=parseDef2(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","0"]});return r&&{anyOf:[r,{type:"null"}]}}function parseNumberDef2(e){const t={type:"number"};if(!e.checks)return t;for(const r of e.checks)switch(r.kind){case"int":t.type="integer";break;case"min":r.inclusive?t.minimum=r.value:t.exclusiveMinimum=r.value;break;case"max":r.inclusive?t.maximum=r.value:t.exclusiveMaximum=r.value;break;case"multipleOf":t.multipleOf=r.value}return t}function parseObjectDef2(e,t){const r={type:"object",properties:{}},a=[],n=e.shape();for(const e in n){let o=n[e];if(void 0===o||void 0===o._def)continue;const s=safeIsOptional2(o),i=parseDef2(o._def,{...t,currentPath:[...t.currentPath,"properties",e],propertyPath:[...t.currentPath,"properties",e]});void 0!==i&&(r.properties[e]=i,s||a.push(e))}a.length&&(r.required=a);const o=decideAdditionalProperties2(e,t);return void 0!==o&&(r.additionalProperties=o),r}function decideAdditionalProperties2(e,t){if("ZodNever"!==e.catchall._def.typeName)return parseDef2(e.catchall._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]});switch(e.unknownKeys){case"passthrough":return t.allowedAdditionalProperties;case"strict":return t.rejectedAdditionalProperties;case"strip":return"strict"===t.removeAdditionalStrategy?t.allowedAdditionalProperties:t.rejectedAdditionalProperties}}function safeIsOptional2(e){try{return e.isOptional()}catch(e){return!0}}var parseOptionalDef2=(e,t)=>{var r;if(t.currentPath.toString()===(null==(r=t.propertyPath)?void 0:r.toString()))return parseDef2(e.innerType._def,t);const a=parseDef2(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","1"]});return a?{anyOf:[{not:parseAnyDef2()},a]}:parseAnyDef2()},parsePipelineDef2=(e,t)=>{if("input"===t.pipeStrategy)return parseDef2(e.in._def,t);if("output"===t.pipeStrategy)return parseDef2(e.out._def,t);const r=parseDef2(e.in._def,{...t,currentPath:[...t.currentPath,"allOf","0"]});return{allOf:[r,parseDef2(e.out._def,{...t,currentPath:[...t.currentPath,"allOf",r?"1":"0"]})].filter((e=>void 0!==e))}};function parsePromiseDef2(e,t){return parseDef2(e.type._def,t)}function parseSetDef2(e,t){const r={type:"array",uniqueItems:!0,items:parseDef2(e.valueType._def,{...t,currentPath:[...t.currentPath,"items"]})};return e.minSize&&(r.minItems=e.minSize.value),e.maxSize&&(r.maxItems=e.maxSize.value),r}function parseTupleDef2(e,t){return e.rest?{type:"array",minItems:e.items.length,items:e.items.map(((e,r)=>parseDef2(e._def,{...t,currentPath:[...t.currentPath,"items",`${r}`]}))).reduce(((e,t)=>void 0===t?e:[...e,t]),[]),additionalItems:parseDef2(e.rest._def,{...t,currentPath:[...t.currentPath,"additionalItems"]})}:{type:"array",minItems:e.items.length,maxItems:e.items.length,items:e.items.map(((e,r)=>parseDef2(e._def,{...t,currentPath:[...t.currentPath,"items",`${r}`]}))).reduce(((e,t)=>void 0===t?e:[...e,t]),[])}}function parseUndefinedDef2(){return{not:parseAnyDef2()}}function parseUnknownDef2(){return parseAnyDef2()}var parseReadonlyDef2=(e,t)=>parseDef2(e.innerType._def,t),selectParser2=(e,t,r)=>{switch(t){case ZodFirstPartyTypeKind.ZodString:return parseStringDef2(e,r);case ZodFirstPartyTypeKind.ZodNumber:return parseNumberDef2(e);case ZodFirstPartyTypeKind.ZodObject:return parseObjectDef2(e,r);case ZodFirstPartyTypeKind.ZodBigInt:return parseBigintDef2(e);case ZodFirstPartyTypeKind.ZodBoolean:return parseBooleanDef2();case ZodFirstPartyTypeKind.ZodDate:return parseDateDef2(e,r);case ZodFirstPartyTypeKind.ZodUndefined:return parseUndefinedDef2();case ZodFirstPartyTypeKind.ZodNull:return parseNullDef2();case ZodFirstPartyTypeKind.ZodArray:return parseArrayDef2(e,r);case ZodFirstPartyTypeKind.ZodUnion:case ZodFirstPartyTypeKind.ZodDiscriminatedUnion:return parseUnionDef2(e,r);case ZodFirstPartyTypeKind.ZodIntersection:return parseIntersectionDef2(e,r);case ZodFirstPartyTypeKind.ZodTuple:return parseTupleDef2(e,r);case ZodFirstPartyTypeKind.ZodRecord:return parseRecordDef2(e,r);case ZodFirstPartyTypeKind.ZodLiteral:return parseLiteralDef2(e);case ZodFirstPartyTypeKind.ZodEnum:return parseEnumDef2(e);case ZodFirstPartyTypeKind.ZodNativeEnum:return parseNativeEnumDef2(e);case ZodFirstPartyTypeKind.ZodNullable:return parseNullableDef2(e,r);case ZodFirstPartyTypeKind.ZodOptional:return parseOptionalDef2(e,r);case ZodFirstPartyTypeKind.ZodMap:return parseMapDef2(e,r);case ZodFirstPartyTypeKind.ZodSet:return parseSetDef2(e,r);case ZodFirstPartyTypeKind.ZodLazy:return()=>e.getter()._def;case ZodFirstPartyTypeKind.ZodPromise:return parsePromiseDef2(e,r);case ZodFirstPartyTypeKind.ZodNaN:case ZodFirstPartyTypeKind.ZodNever:return parseNeverDef2();case ZodFirstPartyTypeKind.ZodEffects:return parseEffectsDef2(e,r);case ZodFirstPartyTypeKind.ZodAny:return parseAnyDef2();case ZodFirstPartyTypeKind.ZodUnknown:return parseUnknownDef2();case ZodFirstPartyTypeKind.ZodDefault:return parseDefaultDef2(e,r);case ZodFirstPartyTypeKind.ZodBranded:return parseBrandedDef2(e,r);case ZodFirstPartyTypeKind.ZodReadonly:return parseReadonlyDef2(e,r);case ZodFirstPartyTypeKind.ZodCatch:return parseCatchDef2(e,r);case ZodFirstPartyTypeKind.ZodPipeline:return parsePipelineDef2(e,r);case ZodFirstPartyTypeKind.ZodFunction:case ZodFirstPartyTypeKind.ZodVoid:case ZodFirstPartyTypeKind.ZodSymbol:default:return}};function parseDef2(e,t,r=!1){var a;const n=t.seen.get(e);if(t.override){const o=null==(a=t.override)?void 0:a.call(t,e,t,n,r);if(o!==ignoreOverride2)return o}if(n&&!r){const e=get$ref2(n,t);if(void 0!==e)return e}const o={def:e,path:t.currentPath,jsonSchema:void 0};t.seen.set(e,o);const s=selectParser2(e,e.typeName,t),i="function"==typeof s?parseDef2(s(),t):s;if(i&&addMeta2(e,t,i),t.postProcess){const r=t.postProcess(i,e,t);return o.jsonSchema=i,r}return o.jsonSchema=i,i}var get$ref2=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:getRelativePath2(t.currentPath,e.path)};case"none":case"seen":return e.path.length<t.currentPath.length&&e.path.every(((e,r)=>t.currentPath[r]===e))?(console.warn(`Recursive reference detected at ${t.currentPath.join("/")}! Defaulting to any`),parseAnyDef2()):"seen"===t.$refStrategy?parseAnyDef2():void 0}},addMeta2=(e,t,r)=>(e.description&&(r.description=e.description),r),getRefs2=e=>{const t=getDefaultOptions2(e),r=void 0!==t.name?[...t.basePath,t.definitionPath,t.name]:t.basePath;return{...t,currentPath:r,propertyPath:void 0,seen:new Map(Object.entries(t.definitions).map((([e,r])=>[r._def,{def:r._def,path:[...t.basePath,t.definitionPath,e],jsonSchema:void 0}])))}},zodToJsonSchema2=(e,t)=>{var r;const a=getRefs2(t);let n="object"==typeof t&&t.definitions?Object.entries(t.definitions).reduce(((e,[t,r])=>{var n;return{...e,[t]:null!=(n=parseDef2(r._def,{...a,currentPath:[...a.basePath,a.definitionPath,t]},!0))?n:parseAnyDef2()}}),{}):void 0;const o="string"==typeof t?t:"title"===(null==t?void 0:t.nameStrategy)||null==t?void 0:t.name,s=null!=(r=parseDef2(e._def,void 0===o?a:{...a,currentPath:[...a.basePath,a.definitionPath,o]},!1))?r:parseAnyDef2(),i="object"==typeof t&&void 0!==t.name&&"title"===t.nameStrategy?t.name:void 0;void 0!==i&&(s.title=i);const c=void 0===o?n?{...s,[a.definitionPath]:n}:s:{$ref:[..."relative"===a.$refStrategy?[]:a.basePath,a.definitionPath,o].join("/"),[a.definitionPath]:{...n,[o]:s}};return c.$schema="http://json-schema.org/draft-07/schema#",c},zod_to_json_schema_default=zodToJsonSchema2;function zod3Schema(e,t){const r=null!=void 0&&undefined;return jsonSchema2((()=>zod_to_json_schema_default(e,{$refStrategy:r?"root":"none"})),{validate:async t=>{const r=await e.safeParseAsync(t);return r.success?{success:!0,value:r.data}:{success:!1,error:r.error}}})}function zod4Schema(e,t){const r=null!=void 0&&undefined;return jsonSchema2((()=>addAdditionalPropertiesToJsonSchema(z4.toJSONSchema(e,{target:"draft-7",io:"input",reused:r?"ref":"inline"}))),{validate:async t=>{const r=await z4.safeParseAsync(e,t);return r.success?{success:!0,value:r.data}:{success:!1,error:r.error}}})}function isZod4Schema(e){return"_zod"in e}function zodSchema2(e,t){return isZod4Schema(e)?zod4Schema(e):zod3Schema(e)}var schemaSymbol2=Symbol.for("vercel.ai.schema");function lazySchema(e){let t;return()=>(null==t&&(t=e()),t)}function jsonSchema2(e,{validate:t}={}){return{[schemaSymbol2]:!0,_type:void 0,[validatorSymbol2]:!0,get jsonSchema(){return"function"==typeof e&&(e=e()),e},validate:t}}function isSchema2(e){return"object"==typeof e&&null!==e&&schemaSymbol2 in e&&!0===e[schemaSymbol2]&&"jsonSchema"in e&&"validate"in e}function asSchema2(e){return null==e?jsonSchema2({properties:{},additionalProperties:!1}):isSchema2(e)?e:"function"==typeof e?e():zodSchema2(e)}function withoutTrailingSlash(e){return null==e?void 0:e.replace(/\/$/,"")}var _a18,_b16,_a24,_b22,_a34,_b32,_a44,_b42,_a54,_b52,_a64,_b62,_a74,_b72,require_get_context=__commonJS({"../../../node_modules/.pnpm/@vercel+oidc@3.1.0/node_modules/@vercel/oidc/dist/get-context.js"(e,t){var r,a=Object.defineProperty,n=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,s=Object.prototype.hasOwnProperty,i={};((e,t)=>{for(var r in t)a(e,r,{get:t[r],enumerable:!0})})(i,{SYMBOL_FOR_REQ_CONTEXT:()=>c,getContext:()=>l}),t.exports=(r=i,((e,t,r,i)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let c of o(t))s.call(e,c)||c===r||a(e,c,{get:()=>t[c],enumerable:!(i=n(t,c))||i.enumerable});return e})(a({},"__esModule",{value:!0}),r));var c=Symbol.for("@vercel/request-context");function l(){const e=globalThis;return e[c]?.get?.()??{}}}}),require_get_vercel_oidc_token=__commonJS({"../../../node_modules/.pnpm/@vercel+oidc@3.1.0/node_modules/@vercel/oidc/dist/get-vercel-oidc-token.js"(e,t){var r,a=Object.defineProperty,n=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,s=Object.prototype.hasOwnProperty,i={};((e,t)=>{for(var r in t)a(e,r,{get:t[r],enumerable:!0})})(i,{getVercelOidcToken:()=>u,getVercelOidcTokenSync:()=>d}),t.exports=(r=i,((e,t,r,i)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let c of o(t))s.call(e,c)||c===r||a(e,c,{get:()=>t[c],enumerable:!(i=n(t,c))||i.enumerable});return e})(a({},"__esModule",{value:!0}),r));var c=require_get_context(),l=require_token_error();async function u(){let e,t="";try{t=d()}catch(t){e=t}try{const[{getTokenPayload:e,isExpired:r},{refreshToken:a}]=await Promise.all([await import("./token-util-RMHT2CPJ-WJZ2SYAR.js"),await import("./token-APYSY3BW-YTVQELJT.js")]);t&&!r(e(t))||(await a(),t=d())}catch(t){let r=e instanceof Error?e.message:"";if(t instanceof Error&&(r=`${r}\n${t.message}`),r)throw new l.VercelOidcTokenError(r);throw t}return t}function d(){const e=(0,c.getContext)().headers?.["x-vercel-oidc-token"]??process.env.VERCEL_OIDC_TOKEN;if(!e)throw new Error("The 'x-vercel-oidc-token' header is missing from the request. Do you have the OIDC option enabled in the Vercel project settings?");return e}}}),require_dist=__commonJS({"../../../node_modules/.pnpm/@vercel+oidc@3.1.0/node_modules/@vercel/oidc/dist/index.js"(e,t){var r,a=Object.defineProperty,n=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,s=Object.prototype.hasOwnProperty,i={};((e,t)=>{for(var r in t)a(e,r,{get:t[r],enumerable:!0})})(i,{getContext:()=>l.getContext,getVercelOidcToken:()=>c.getVercelOidcToken,getVercelOidcTokenSync:()=>c.getVercelOidcTokenSync}),t.exports=(r=i,((e,t,r,i)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let c of o(t))s.call(e,c)||c===r||a(e,c,{get:()=>t[c],enumerable:!(i=n(t,c))||i.enumerable});return e})(a({},"__esModule",{value:!0}),r));var c=require_get_vercel_oidc_token(),l=require_get_context()}}),import_oidc=__toESM(require_dist(),1),import_oidc2=__toESM(require_dist(),1),marker18="vercel.ai.gateway.error",symbol18=Symbol.for(marker18),GatewayError=class e extends(_b16=Error,_a18=symbol18,_b16){constructor({message:e,statusCode:t=500,cause:r}){super(e),this[_a18]=!0,this.statusCode=t,this.cause=r}static isInstance(t){return e.hasMarker(t)}static hasMarker(e){return"object"==typeof e&&null!==e&&symbol18 in e&&!0===e[symbol18]}},name18="GatewayAuthenticationError",marker24=`vercel.ai.gateway.error.${name18}`,symbol24=Symbol.for(marker24),GatewayAuthenticationError=class e extends(_b22=GatewayError,_a24=symbol24,_b22){constructor({message:e="Authentication failed",statusCode:t=401,cause:r}={}){super({message:e,statusCode:t,cause:r}),this[_a24]=!0,this.name=name18,this.type="authentication_error"}static isInstance(e){return GatewayError.hasMarker(e)&&symbol24 in e}static createContextualError({apiKeyProvided:t,oidcTokenProvided:r,message:a="Authentication failed",statusCode:n=401,cause:o}){let s;return s=t?"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.":r?"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":"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.",new e({message:s,statusCode:n,cause:o})}},name24="GatewayInvalidRequestError",marker34=`vercel.ai.gateway.error.${name24}`,symbol34=Symbol.for(marker34),GatewayInvalidRequestError=class extends(_b32=GatewayError,_a34=symbol34,_b32){constructor({message:e="Invalid request",statusCode:t=400,cause:r}={}){super({message:e,statusCode:t,cause:r}),this[_a34]=!0,this.name=name24,this.type="invalid_request_error"}static isInstance(e){return GatewayError.hasMarker(e)&&symbol34 in e}},name34="GatewayRateLimitError",marker44=`vercel.ai.gateway.error.${name34}`,symbol44=Symbol.for(marker44),GatewayRateLimitError=class extends(_b42=GatewayError,_a44=symbol44,_b42){constructor({message:e="Rate limit exceeded",statusCode:t=429,cause:r}={}){super({message:e,statusCode:t,cause:r}),this[_a44]=!0,this.name=name34,this.type="rate_limit_exceeded"}static isInstance(e){return GatewayError.hasMarker(e)&&symbol44 in e}},name44="GatewayModelNotFoundError",marker54=`vercel.ai.gateway.error.${name44}`,symbol54=Symbol.for(marker54),modelNotFoundParamSchema=lazyValidator((()=>zodSchema2(z$1.object({modelId:z$1.string()})))),GatewayModelNotFoundError=class extends(_b52=GatewayError,_a54=symbol54,_b52){constructor({message:e="Model not found",statusCode:t=404,modelId:r,cause:a}={}){super({message:e,statusCode:t,cause:a}),this[_a54]=!0,this.name=name44,this.type="model_not_found",this.modelId=r}static isInstance(e){return GatewayError.hasMarker(e)&&symbol54 in e}},name54="GatewayInternalServerError",marker64=`vercel.ai.gateway.error.${name54}`,symbol64=Symbol.for(marker64),GatewayInternalServerError=class extends(_b62=GatewayError,_a64=symbol64,_b62){constructor({message:e="Internal server error",statusCode:t=500,cause:r}={}){super({message:e,statusCode:t,cause:r}),this[_a64]=!0,this.name=name54,this.type="internal_server_error"}static isInstance(e){return GatewayError.hasMarker(e)&&symbol64 in e}},name64="GatewayResponseError",marker74=`vercel.ai.gateway.error.${name64}`,symbol74=Symbol.for(marker74),GatewayResponseError=class extends(_b72=GatewayError,_a74=symbol74,_b72){constructor({message:e="Invalid response from Gateway",statusCode:t=502,response:r,validationError:a,cause:n}={}){super({message:e,statusCode:t,cause:n}),this[_a74]=!0,this.name=name64,this.type="response_error",this.response=r,this.validationError=a}static isInstance(e){return GatewayError.hasMarker(e)&&symbol74 in e}};async function createGatewayErrorFromResponse({response:e,statusCode:t,defaultMessage:r="Gateway request failed",cause:a,authMethod:n}){const o=await safeValidateTypes2({value:e,schema:gatewayErrorResponseSchema});if(!o.success)return new GatewayResponseError({message:`Invalid error response format: ${r}`,statusCode:t,response:e,validationError:o.error,cause:a});const s=o.value,i=s.error.type,c=s.error.message;switch(i){case"authentication_error":return GatewayAuthenticationError.createContextualError({apiKeyProvided:"api-key"===n,oidcTokenProvided:"oidc"===n,statusCode:t,cause:a});case"invalid_request_error":return new GatewayInvalidRequestError({message:c,statusCode:t,cause:a});case"rate_limit_exceeded":return new GatewayRateLimitError({message:c,statusCode:t,cause:a});case"model_not_found":{const e=await safeValidateTypes2({value:s.error.param,schema:modelNotFoundParamSchema});return new GatewayModelNotFoundError({message:c,statusCode:t,modelId:e.success?e.value.modelId:void 0,cause:a})}default:return new GatewayInternalServerError({message:c,statusCode:t,cause:a})}}var _a84,_b82,gatewayErrorResponseSchema=lazyValidator((()=>zodSchema2(z$1.object({error:z$1.object({message:z$1.string(),type:z$1.string().nullish(),param:z$1.unknown().nullish(),code:z$1.union([z$1.string(),z$1.number()]).nullish()})})))),name74="GatewayTimeoutError",marker84=`vercel.ai.gateway.error.${name74}`,symbol84=Symbol.for(marker84),GatewayTimeoutError=class e extends(_b82=GatewayError,_a84=symbol84,_b82){constructor({message:e="Request timed out",statusCode:t=408,cause:r}={}){super({message:e,statusCode:t,cause:r}),this[_a84]=!0,this.name=name74,this.type="timeout_error"}static isInstance(e){return GatewayError.hasMarker(e)&&symbol84 in e}static createTimeoutError({originalMessage:t,statusCode:r=408,cause:a}){return new e({message:`Gateway request timed out: ${t}\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`,statusCode:r,cause:a})}};function isTimeoutError(e){if(!(e instanceof Error))return!1;const t=e.code;if("string"==typeof t){return["UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","UND_ERR_CONNECT_TIMEOUT"].includes(t)}return!1}async function asGatewayError(e,t){var r;return GatewayError.isInstance(e)?e:isTimeoutError(e)?GatewayTimeoutError.createTimeoutError({originalMessage:e instanceof Error?e.message:"Unknown error",cause:e}):APICallError2.isInstance(e)?e.cause&&isTimeoutError(e.cause)?GatewayTimeoutError.createTimeoutError({originalMessage:e.message,cause:e}):await createGatewayErrorFromResponse({response:extractApiCallResponse(e),statusCode:null!=(r=e.statusCode)?r:500,defaultMessage:"Gateway request failed",cause:e,authMethod:t}):await createGatewayErrorFromResponse({response:{},statusCode:500,defaultMessage:e instanceof Error?`Gateway request failed: ${e.message}`:"Unknown Gateway error",cause:e,authMethod:t})}function extractApiCallResponse(e){if(void 0!==e.data)return e.data;if(null!=e.responseBody)try{return JSON.parse(e.responseBody)}catch(t){return e.responseBody}return{}}var GATEWAY_AUTH_METHOD_HEADER="ai-gateway-auth-method";async function parseAuthMethod(e){const t=await safeValidateTypes2({value:e[GATEWAY_AUTH_METHOD_HEADER],schema:gatewayAuthMethodSchema});return t.success?t.value:void 0}var gatewayAuthMethodSchema=lazyValidator((()=>zodSchema2(z$1.union([z$1.literal("api-key"),z$1.literal("oidc")])))),GatewayFetchMetadata=class{constructor(e){this.config=e}async getAvailableModels(){try{const{value:e}=await getFromApi({url:`${this.config.baseURL}/config`,headers:await resolve(this.config.headers()),successfulResponseHandler:createJsonResponseHandler(gatewayAvailableModelsResponseSchema),failedResponseHandler:createJsonErrorResponseHandler({errorSchema:z$1.any(),errorToMessage:e=>e}),fetch:this.config.fetch});return e}catch(e){throw await asGatewayError(e)}}async getCredits(){try{const e=new URL(this.config.baseURL),{value:t}=await getFromApi({url:`${e.origin}/v1/credits`,headers:await resolve(this.config.headers()),successfulResponseHandler:createJsonResponseHandler(gatewayCreditsResponseSchema),failedResponseHandler:createJsonErrorResponseHandler({errorSchema:z$1.any(),errorToMessage:e=>e}),fetch:this.config.fetch});return t}catch(e){throw await asGatewayError(e)}}},gatewayAvailableModelsResponseSchema=lazyValidator((()=>zodSchema2(z$1.object({models:z$1.array(z$1.object({id:z$1.string(),name:z$1.string(),description:z$1.string().nullish(),pricing:z$1.object({input:z$1.string(),output:z$1.string(),input_cache_read:z$1.string().nullish(),input_cache_write:z$1.string().nullish()}).transform((({input:e,output:t,input_cache_read:r,input_cache_write:a})=>({input:e,output:t,...r?{cachedInputTokens:r}:{},...a?{cacheCreationInputTokens:a}:{}}))).nullish(),specification:z$1.object({specificationVersion:z$1.literal("v2"),provider:z$1.string(),modelId:z$1.string()}),modelType:z$1.enum(["language","embedding","image"]).nullish()}))})))),gatewayCreditsResponseSchema=lazyValidator((()=>zodSchema2(z$1.object({balance:z$1.string(),total_used:z$1.string()}).transform((({balance:e,total_used:t})=>({balance:e,totalUsed:t})))))),GatewayLanguageModel=class{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion="v2",this.supportedUrls={"*/*":[/.*/]}}get provider(){return this.config.provider}async getArgs(e){const{abortSignal:t,...r}=e;return{args:this.maybeEncodeFileParts(r),warnings:[]}}async doGenerate(e){const{args:t,warnings:r}=await this.getArgs(e),{abortSignal:a}=e,n=await resolve(this.config.headers());try{const{responseHeaders:o,value:s,rawValue:i}=await postJsonToApi({url:this.getUrl(),headers:combineHeaders(n,e.headers,this.getModelConfigHeaders(this.modelId,!1),await resolve(this.config.o11yHeaders)),body:t,successfulResponseHandler:createJsonResponseHandler(z$1.any()),failedResponseHandler:createJsonErrorResponseHandler({errorSchema:z$1.any(),errorToMessage:e=>e}),...a&&{abortSignal:a},fetch:this.config.fetch});return{...s,request:{body:t},response:{headers:o,body:i},warnings:r}}catch(e){throw await asGatewayError(e,await parseAuthMethod(n))}}async doStream(e){const{args:t,warnings:r}=await this.getArgs(e),{abortSignal:a}=e,n=await resolve(this.config.headers());try{const{value:o,responseHeaders:s}=await postJsonToApi({url:this.getUrl(),headers:combineHeaders(n,e.headers,this.getModelConfigHeaders(this.modelId,!0),await resolve(this.config.o11yHeaders)),body:t,successfulResponseHandler:createEventSourceResponseHandler(z$1.any()),failedResponseHandler:createJsonErrorResponseHandler({errorSchema:z$1.any(),errorToMessage:e=>e}),...a&&{abortSignal:a},fetch:this.config.fetch});return{stream:o.pipeThrough(new TransformStream({start(e){r.length>0&&e.enqueue({type:"stream-start",warnings:r})},transform(t,r){if(t.success){const a=t.value;if("raw"===a.type&&!e.includeRawChunks)return;"response-metadata"===a.type&&a.timestamp&&"string"==typeof a.timestamp&&(a.timestamp=new Date(a.timestamp)),r.enqueue(a)}else r.error(t.error)}})),request:{body:t},response:{headers:s}}}catch(e){throw await asGatewayError(e,await parseAuthMethod(n))}}isFilePart(e){return e&&"object"==typeof e&&"type"in e&&"file"===e.type}maybeEncodeFileParts(e){for(const t of e.prompt)for(const e of t.content)if(this.isFilePart(e)){const t=e;if(t.data instanceof Uint8Array){const e=Uint8Array.from(t.data),r=Buffer.from(e).toString("base64");t.data=new URL(`data:${t.mediaType||"application/octet-stream"};base64,${r}`)}}return e}getUrl(){return`${this.config.baseURL}/language-model`}getModelConfigHeaders(e,t){return{"ai-language-model-specification-version":"2","ai-language-model-id":e,"ai-language-model-streaming":String(t)}}},GatewayEmbeddingModel=class{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion="v2",this.maxEmbeddingsPerCall=2048,this.supportsParallelCalls=!0}get provider(){return this.config.provider}async doEmbed({values:e,headers:t,abortSignal:r,providerOptions:a}){var n;const o=await resolve(this.config.headers());try{const{responseHeaders:s,value:i,rawValue:c}=await postJsonToApi({url:this.getUrl(),headers:combineHeaders(o,null!=t?t:{},this.getModelConfigHeaders(),await resolve(this.config.o11yHeaders)),body:{input:1===e.length?e[0]:e,...a?{providerOptions:a}:{}},successfulResponseHandler:createJsonResponseHandler(gatewayEmbeddingResponseSchema),failedResponseHandler:createJsonErrorResponseHandler({errorSchema:z$1.any(),errorToMessage:e=>e}),...r&&{abortSignal:r},fetch:this.config.fetch});return{embeddings:i.embeddings,usage:null!=(n=i.usage)?n:void 0,providerMetadata:i.providerMetadata,response:{headers:s,body:c}}}catch(e){throw await asGatewayError(e,await parseAuthMethod(o))}}getUrl(){return`${this.config.baseURL}/embedding-model`}getModelConfigHeaders(){return{"ai-embedding-model-specification-version":"2","ai-model-id":this.modelId}}},gatewayEmbeddingResponseSchema=lazyValidator((()=>zodSchema2(z$1.object({embeddings:z$1.array(z$1.array(z$1.number())),usage:z$1.object({tokens:z$1.number()}).nullish(),providerMetadata:z$1.record(z$1.string(),z$1.record(z$1.string(),z$1.unknown())).optional()})))),GatewayImageModel=class{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion="v2",this.maxImagesPerCall=Number.MAX_SAFE_INTEGER}get provider(){return this.config.provider}async doGenerate({prompt:e,n:t,size:r,aspectRatio:a,seed:n,providerOptions:o,headers:s,abortSignal:i}){var c,l,u,d;const p=await resolve(this.config.headers());try{const{responseHeaders:m,value:f}=await postJsonToApi({url:this.getUrl(),headers:combineHeaders(p,null!=s?s:{},this.getModelConfigHeaders(),await resolve(this.config.o11yHeaders)),body:{prompt:e,n:t,...r&&{size:r},...a&&{aspectRatio:a},...n&&{seed:n},...o&&{providerOptions:o}},successfulResponseHandler:createJsonResponseHandler(gatewayImageResponseSchema),failedResponseHandler:createJsonErrorResponseHandler({errorSchema:z$1.any(),errorToMessage:e=>e}),...i&&{abortSignal:i},fetch:this.config.fetch});return{images:f.images,warnings:null!=(c=f.warnings)?c:[],providerMetadata:f.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:m},...null!=f.usage&&{usage:{inputTokens:null!=(l=f.usage.inputTokens)?l:void 0,outputTokens:null!=(u=f.usage.outputTokens)?u:void 0,totalTokens:null!=(d=f.usage.totalTokens)?d:void 0}}}}catch(e){throw await asGatewayError(e,await parseAuthMethod(p))}}getUrl(){return`${this.config.baseURL}/image-model`}getModelConfigHeaders(){return{"ai-image-model-specification-version":"2","ai-model-id":this.modelId}}},providerMetadataEntrySchema=z$1.object({images:z$1.array(z$1.unknown()).optional()}).catchall(z$1.unknown()),gatewayImageUsageSchema=z$1.object({inputTokens:z$1.number().nullish(),outputTokens:z$1.number().nullish(),totalTokens:z$1.number().nullish()}),gatewayImageResponseSchema=z$1.object({images:z$1.array(z$1.string()),warnings:z$1.array(z$1.object({type:z$1.literal("other"),message:z$1.string()})).optional(),providerMetadata:z$1.record(z$1.string(),providerMetadataEntrySchema).optional(),usage:gatewayImageUsageSchema.optional()}),parallelSearchInputSchema=lazySchema((()=>zodSchema2(z.object({objective:z.string().describe("Natural-language description of the web research goal, including source or freshness guidance and broader context from the task. Maximum 5000 characters."),search_queries:z.array(z.string()).optional().describe("Optional search queries to supplement the objective. Maximum 200 characters per query."),mode:z.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.'),max_results:z.number().optional().describe("Maximum number of results to return (1-20). Defaults to 10 if not specified."),source_policy:z.object({include_domains:z.array(z.string()).optional().describe("List of domains to include in search results."),exclude_domains:z.array(z.string()).optional().describe("List of domains to exclude from search results."),after_date:z.string().optional().describe("Only include results published after this date (ISO 8601 format).")}).optional().describe("Source policy for controlling which domains to include/exclude and freshness."),excerpts:z.object({max_chars_per_result:z.number().optional().describe("Maximum characters per result."),max_chars_total:z.number().optional().describe("Maximum total characters across all results.")}).optional().describe("Excerpt configuration for controlling result length."),fetch_policy:z.object({max_age_seconds:z.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.")})))),parallelSearchOutputSchema=lazySchema((()=>zodSchema2(z.union([z.object({searchId:z.string(),results:z.array(z.object({url:z.string(),title:z.string(),excerpt:z.string(),publishDate:z.string().nullable().optional(),relevanceScore:z.number().optional()}))}),z.object({error:z.enum(["api_error","rate_limit","timeout","invalid_input","configuration_error","unknown"]),statusCode:z.number().optional(),message:z.string()})])))),parallelSearchToolFactory=createProviderDefinedToolFactoryWithOutputSchema({id:"gateway.parallel_search",name:"parallel_search",inputSchema:parallelSearchInputSchema,outputSchema:parallelSearchOutputSchema}),parallelSearch=(e={})=>parallelSearchToolFactory(e),perplexitySearchInputSchema=lazySchema((()=>zodSchema2(z.object({query:z.union([z.string(),z.array(z.string())]).describe("Search query (string) or multiple queries (array of up to 5 strings). Multi-query searches return combined results from all queries."),max_results:z.number().optional().describe("Maximum number of search results to return (1-20, default: 10)"),max_tokens_per_page:z.number().optional().describe("Maximum number of tokens to extract per search result page (256-2048, default: 2048)"),max_tokens:z.number().optional().describe("Maximum total tokens across all search results (default: 25000, max: 1000000)"),country:z.string().optional().describe("Two-letter ISO 3166-1 alpha-2 country code for regional search results (e.g., 'US', 'GB', 'FR')"),search_domain_filter:z.array(z.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']"),search_language_filter:z.array(z.string()).optional().describe("List of ISO 639-1 language codes to filter results (max 10, lowercase). Examples: ['en', 'fr', 'de']"),search_after_date:z.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."),search_before_date:z.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."),last_updated_after_filter:z.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."),last_updated_before_filter:z.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."),search_recency_filter:z.enum(["day","week","month","year"]).optional().describe("Filter results by relative time period. Cannot be used with search_after_date or search_before_date.")})))),perplexitySearchOutputSchema=lazySchema((()=>zodSchema2(z.union([z.object({results:z.array(z.object({title:z.string(),url:z.string(),snippet:z.string(),date:z.string().optional(),lastUpdated:z.string().optional()})),id:z.string()}),z.object({error:z.enum(["api_error","rate_limit","timeout","invalid_input","unknown"]),statusCode:z.number().optional(),message:z.string()})])))),perplexitySearchToolFactory=createProviderDefinedToolFactoryWithOutputSchema({id:"gateway.perplexity_search",name:"perplexity_search",inputSchema:perplexitySearchInputSchema,outputSchema:perplexitySearchOutputSchema}),perplexitySearch=(e={})=>perplexitySearchToolFactory(e),gatewayTools={parallelSearch:parallelSearch,perplexitySearch:perplexitySearch};async function getVercelRequestId(){var e;return null==(e=(0,import_oidc.getContext)().headers)?void 0:e["x-vercel-id"]}var VERSION3="2.0.59",AI_GATEWAY_PROTOCOL_VERSION="0.0.1";function createGatewayProvider(e={}){var t,r;let a=null,n=null;const o=null!=(t=e.metadataCacheRefreshMillis)?t:3e5;let s=0;const i=null!=(r=withoutTrailingSlash(e.baseURL))?r:"https://ai-gateway.vercel.sh/v1/ai",c=async()=>{const t=await getGatewayAuthToken(e);if(t)return withUserAgentSuffix({Authorization:`Bearer ${t.token}`,"ai-gateway-protocol-version":AI_GATEWAY_PROTOCOL_VERSION,[GATEWAY_AUTH_METHOD_HEADER]:t.authMethod,...e.headers},`ai-sdk/gateway/${VERSION3}`);throw GatewayAuthenticationError.createContextualError({apiKeyProvided:!1,oidcTokenProvided:!1,statusCode:401})},l=()=>{const e=loadOptionalSetting({settingValue:void 0,environmentVariableName:"VERCEL_DEPLOYMENT_ID"}),t=loadOptionalSetting({settingValue:void 0,environmentVariableName:"VERCEL_ENV"}),r=loadOptionalSetting({settingValue:void 0,environmentVariableName:"VERCEL_REGION"}),a=loadOptionalSetting({settingValue:void 0,environmentVariableName:"VERCEL_PROJECT_ID"});return async()=>{const n=await getVercelRequestId();return{...e&&{"ai-o11y-deployment-id":e},...t&&{"ai-o11y-environment":t},...r&&{"ai-o11y-region":r},...n&&{"ai-o11y-request-id":n},...a&&{"ai-o11y-project-id":a}}}},u=t=>new GatewayLanguageModel(t,{provider:"gateway",baseURL:i,headers:c,fetch:e.fetch,o11yHeaders:l()}),d=function(e){if(new.target)throw new Error("The Gateway Provider model function cannot be called with the new keyword.");return u(e)};return d.getAvailableModels=async()=>{var t,r,l;const u=null!=(l=null==(r=null==(t=e._internal)?void 0:t.currentDate)?void 0:r.call(t).getTime())?l:Date.now();return(!a||u-s>o)&&(s=u,a=new GatewayFetchMetadata({baseURL:i,headers:c,fetch:e.fetch}).getAvailableModels().then((e=>(n=e,e))).catch((async e=>{throw await asGatewayError(e,await parseAuthMethod(await c()))}))),n?Promise.resolve(n):a},d.getCredits=async()=>new GatewayFetchMetadata({baseURL:i,headers:c,fetch:e.fetch}).getCredits().catch((async e=>{throw await asGatewayError(e,await parseAuthMethod(await c()))})),d.imageModel=t=>new GatewayImageModel(t,{provider:"gateway",baseURL:i,headers:c,fetch:e.fetch,o11yHeaders:l()}),d.languageModel=u,d.textEmbeddingModel=t=>new GatewayEmbeddingModel(t,{provider:"gateway",baseURL:i,headers:c,fetch:e.fetch,o11yHeaders:l()}),d.tools=gatewayTools,d}var gateway=createGatewayProvider();async function getGatewayAuthToken(e){const t=loadOptionalSetting({settingValue:e.apiKey,environmentVariableName:"AI_GATEWAY_API_KEY"});if(t)return{token:t,authMethod:"api-key"};try{return{token:await(0,import_oidc2.getVercelOidcToken)(),authMethod:"oidc"}}catch(e){return null}}var _globalThis2="object"==typeof globalThis?globalThis:global,VERSION22="1.9.0",re2=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function _makeCompatibilityCheck2(e){var t=new Set([e]),r=new Set,a=e.match(re2);if(!a)return function(){return!1};var n=+a[1],o=+a[2],s=+a[3];if(null!=a[4])return function(t){return t===e};function i(e){return r.add(e),!1}function c(e){return t.add(e),!0}return function(e){if(t.has(e))return!0;if(r.has(e))return!1;var a=e.match(re2);if(!a)return i(e);var l=+a[1],u=+a[2],d=+a[3];return null!=a[4]||n!==l?i(e):0===n?o===u&&s<=d?c(e):i(e):o<=u?c(e):i(e)}}var isCompatible2=_makeCompatibilityCheck2(VERSION22),major2=VERSION22.split(".")[0],GLOBAL_OPENTELEMETRY_API_KEY2=Symbol.for("opentelemetry.js.api."+major2),_global2=_globalThis2;function registerGlobal2(e,t,r,a){var n;void 0===a&&(a=!1);var o=_global2[GLOBAL_OPENTELEMETRY_API_KEY2]=null!==(n=_global2[GLOBAL_OPENTELEMETRY_API_KEY2])&&void 0!==n?n:{version:VERSION22};if(!a&&o[e]){var s=new Error("@opentelemetry/api: Attempted duplicate registration of API: "+e);return r.error(s.stack||s.message),!1}if(o.version!==VERSION22){s=new Error("@opentelemetry/api: Registration of version v"+o.version+" for "+e+" does not match previously registered API v"+VERSION22);return r.error(s.stack||s.message),!1}return o[e]=t,r.debug("@opentelemetry/api: Registered a global for "+e+" v"+VERSION22+"."),!0}function getGlobal2(e){var t,r,a=null===(t=_global2[GLOBAL_OPENTELEMETRY_API_KEY2])||void 0===t?void 0:t.version;if(a&&isCompatible2(a))return null===(r=_global2[GLOBAL_OPENTELEMETRY_API_KEY2])||void 0===r?void 0:r[e]}function unregisterGlobal2(e,t){t.debug("@opentelemetry/api: Unregistering a global for "+e+" v"+VERSION22+".");var r=_global2[GLOBAL_OPENTELEMETRY_API_KEY2];r&&delete r[e]}var DiagLogLevel2,__read5=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var a,n,o=r.call(e),s=[];try{for(;!(a=o.next()).done;)s.push(a.value)}catch(e){n={error:e}}finally{try{a&&!a.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}return s},__spreadArray5=function(e,t,r){if(2===arguments.length)for(var a,n=0,o=t.length;n<o;n++)!a&&n in t||(a||(a=Array.prototype.slice.call(t,0,n)),a[n]=t[n]);return e.concat(a||Array.prototype.slice.call(t))},DiagComponentLogger2=function(){function e(e){this._namespace=e.namespace||"DiagComponentLogger"}return e.prototype.debug=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return logProxy2("debug",this._namespace,e)},e.prototype.error=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return logProxy2("error",this._namespace,e)},e.prototype.info=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return logProxy2("info",this._namespace,e)},e.prototype.warn=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return logProxy2("warn",this._namespace,e)},e.prototype.verbose=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return logProxy2("verbose",this._namespace,e)},e}();function logProxy2(e,t,r){var a=getGlobal2("diag");if(a)return r.unshift(t),a[e].apply(a,__spreadArray5([],__read5(r),!1))}function createLogLevelDiagLogger2(e,t){function r(r,a){var n=t[r];return"function"==typeof n&&e>=a?n.bind(t):function(){}}return e<DiagLogLevel2.NONE?e=DiagLogLevel2.NONE:e>DiagLogLevel2.ALL&&(e=DiagLogLevel2.ALL),t=t||{},{error:r("error",DiagLogLevel2.ERROR),warn:r("warn",DiagLogLevel2.WARN),info:r("info",DiagLogLevel2.INFO),debug:r("debug",DiagLogLevel2.DEBUG),verbose:r("verbose",DiagLogLevel2.VERBOSE)}}!function(e){e[e.NONE=0]="NONE",e[e.ERROR=30]="ERROR",e[e.WARN=50]="WARN",e[e.INFO=60]="INFO",e[e.DEBUG=70]="DEBUG",e[e.VERBOSE=80]="VERBOSE",e[e.ALL=9999]="ALL"}(DiagLogLevel2||(DiagLogLevel2={}));var __read22=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var a,n,o=r.call(e),s=[];try{for(;!(a=o.next()).done;)s.push(a.value)}catch(e){n={error:e}}finally{try{a&&!a.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}return s},__spreadArray22=function(e,t,r){if(2===arguments.length)for(var a,n=0,o=t.length;n<o;n++)!a&&n in t||(a||(a=Array.prototype.slice.call(t,0,n)),a[n]=t[n]);return e.concat(a||Array.prototype.slice.call(t))},API_NAME4="diag",DiagAPI2=function(){function e(){function e(e){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var a=getGlobal2("diag");if(a)return a[e].apply(a,__spreadArray22([],__read22(t),!1))}}var t=this;t.setLogger=function(e,r){var a,n,o;if(void 0===r&&(r={logLevel:DiagLogLevel2.INFO}),e===t){var s=new Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return t.error(null!==(a=s.stack)&&void 0!==a?a:s.message),!1}"number"==typeof r&&(r={logLevel:r});var i=getGlobal2("diag"),c=createLogLevelDiagLogger2(null!==(n=r.logLevel)&&void 0!==n?n:DiagLogLevel2.INFO,e);if(i&&!r.suppressOverrideMessage){var l=null!==(o=(new Error).stack)&&void 0!==o?o:"<failed to generate stacktrace>";i.warn("Current logger will be overwritten from "+l),c.warn("Current logger will overwrite one already registered from "+l)}return registerGlobal2("diag",c,t,!0)},t.disable=function(){unregisterGlobal2(API_NAME4,t)},t.createComponentLogger=function(e){return new DiagComponentLogger2(e)},t.verbose=e("verbose"),t.debug=e("debug"),t.info=e("info"),t.warn=e("warn"),t.error=e("error")}return e.instance=function(){return this._instance||(this._instance=new e),this._instance},e}();function createContextKey2(e){return Symbol.for(e)}var TraceFlags2,BaseContext2=function(){return function e(t){var r=this;r._currentContext=t?new Map(t):new Map,r.getValue=function(e){return r._currentContext.get(e)},r.setValue=function(t,a){var n=new e(r._currentContext);return n._currentContext.set(t,a),n},r.deleteValue=function(t){var a=new e(r._currentContext);return a._currentContext.delete(t),a}}}(),ROOT_CONTEXT2=new BaseContext2,__read32=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var a,n,o=r.call(e),s=[];try{for(;!(a=o.next()).done;)s.push(a.value)}catch(e){n={error:e}}finally{try{a&&!a.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}return s},__spreadArray32=function(e,t,r){if(2===arguments.length)for(var a,n=0,o=t.length;n<o;n++)!a&&n in t||(a||(a=Array.prototype.slice.call(t,0,n)),a[n]=t[n]);return e.concat(a||Array.prototype.slice.call(t))},NoopContextManager2=function(){function e(){}return e.prototype.active=function(){return ROOT_CONTEXT2},e.prototype.with=function(e,t,r){for(var a=[],n=3;n<arguments.length;n++)a[n-3]=arguments[n];return t.call.apply(t,__spreadArray32([r],__read32(a),!1))},e.prototype.bind=function(e,t){return t},e.prototype.enable=function(){return this},e.prototype.disable=function(){return this},e}(),__read42=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var a,n,o=r.call(e),s=[];try{for(;!(a=o.next()).done;)s.push(a.value)}catch(e){n={error:e}}finally{try{a&&!a.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}return s},__spreadArray42=function(e,t,r){if(2===arguments.length)for(var a,n=0,o=t.length;n<o;n++)!a&&n in t||(a||(a=Array.prototype.slice.call(t,0,n)),a[n]=t[n]);return e.concat(a||Array.prototype.slice.call(t))},API_NAME22="context",NOOP_CONTEXT_MANAGER2=new NoopContextManager2,ContextAPI2=function(){function e(){}return e.getInstance=function(){return this._instance||(this._instance=new e),this._instance},e.prototype.setGlobalContextManager=function(e){return registerGlobal2(API_NAME22,e,DiagAPI2.instance())},e.prototype.active=function(){return this._getContextManager().active()},e.prototype.with=function(e,t,r){for(var a,n=[],o=3;o<arguments.length;o++)n[o-3]=arguments[o];return(a=this._getContextManager()).with.apply(a,__spreadArray42([e,t,r],__read42(n),!1))},e.prototype.bind=function(e,t){return this._getContextManager().bind(e,t)},e.prototype._getContextManager=function(){return getGlobal2(API_NAME22)||NOOP_CONTEXT_MANAGER2},e.prototype.disable=function(){this._getContextManager().disable(),unregisterGlobal2(API_NAME22,DiagAPI2.instance())},e}();!function(e){e[e.NONE=0]="NONE",e[e.SAMPLED=1]="SAMPLED"}(TraceFlags2||(TraceFlags2={}));var INVALID_SPANID2="0000000000000000",INVALID_TRACEID2="00000000000000000000000000000000",INVALID_SPAN_CONTEXT2={traceId:INVALID_TRACEID2,spanId:INVALID_SPANID2,traceFlags:TraceFlags2.NONE},NonRecordingSpan2=function(){function e(e){void 0===e&&(e=INVALID_SPAN_CONTEXT2),this._spanContext=e}return e.prototype.spanContext=function(){return this._spanContext},e.prototype.setAttribute=function(e,t){return this},e.prototype.setAttributes=function(e){return this},e.prototype.addEvent=function(e,t){return this},e.prototype.addLink=function(e){return this},e.prototype.addLinks=function(e){return this},e.prototype.setStatus=function(e){return this},e.prototype.updateName=function(e){return this},e.prototype.end=function(e){},e.prototype.isRecording=function(){return!1},e.prototype.recordException=function(e,t){},e}(),SPAN_KEY2=createContextKey2("OpenTelemetry Context Key SPAN");function getSpan2(e){return e.getValue(SPAN_KEY2)||void 0}function getActiveSpan2(){return getSpan2(ContextAPI2.getInstance().active())}function setSpan2(e,t){return e.setValue(SPAN_KEY2,t)}function deleteSpan2(e){return e.deleteValue(SPAN_KEY2)}function setSpanContext2(e,t){return setSpan2(e,new NonRecordingSpan2(t))}function getSpanContext2(e){var t;return null===(t=getSpan2(e))||void 0===t?void 0:t.spanContext()}var VALID_TRACEID_REGEX2=/^([0-9a-f]{32})$/i,VALID_SPANID_REGEX2=/^[0-9a-f]{16}$/i;function isValidTraceId2(e){return VALID_TRACEID_REGEX2.test(e)&&e!==INVALID_TRACEID2}function isValidSpanId2(e){return VALID_SPANID_REGEX2.test(e)&&e!==INVALID_SPANID2}function isSpanContextValid2(e){return isValidTraceId2(e.traceId)&&isValidSpanId2(e.spanId)}function wrapSpanContext2(e){return new NonRecordingSpan2(e)}var contextApi2=ContextAPI2.getInstance(),NoopTracer2=function(){function e(){}return e.prototype.startSpan=function(e,t,r){if(void 0===r&&(r=contextApi2.active()),Boolean(null==t?void 0:t.root))return new NonRecordingSpan2;var a=r&&getSpanContext2(r);return isSpanContext2(a)&&isSpanContextValid2(a)?new NonRecordingSpan2(a):new NonRecordingSpan2},e.prototype.startActiveSpan=function(e,t,r,a){var n,o,s;if(!(arguments.length<2)){2===arguments.length?s=t:3===arguments.length?(n=t,s=r):(n=t,o=r,s=a);var i=null!=o?o:contextApi2.active(),c=this.startSpan(e,n,i),l=setSpan2(i,c);return contextApi2.with(l,s,void 0,c)}},e}();function isSpanContext2(e){return"object"==typeof e&&"string"==typeof e.spanId&&"string"==typeof e.traceId&&"number"==typeof e.traceFlags}var SpanStatusCode2,NOOP_TRACER2=new NoopTracer2,ProxyTracer2=function(){function e(e,t,r,a){this._provider=e,this.name=t,this.version=r,this.options=a}return e.prototype.startSpan=function(e,t,r){return this._getTracer().startSpan(e,t,r)},e.prototype.startActiveSpan=function(e,t,r,a){var n=this._getTracer();return Reflect.apply(n.startActiveSpan,n,arguments)},e.prototype._getTracer=function(){if(this._delegate)return this._delegate;var e=this._provider.getDelegateTracer(this.name,this.version,this.options);return e?(this._delegate=e,this._delegate):NOOP_TRACER2},e}(),NoopTracerProvider2=function(){function e(){}return e.prototype.getTracer=function(e,t,r){return new NoopTracer2},e}(),NOOP_TRACER_PROVIDER2=new NoopTracerProvider2,ProxyTracerProvider2=function(){function e(){}return e.prototype.getTracer=function(e,t,r){var a;return null!==(a=this.getDelegateTracer(e,t,r))&&void 0!==a?a:new ProxyTracer2(this,e,t,r)},e.prototype.getDelegate=function(){var e;return null!==(e=this._delegate)&&void 0!==e?e:NOOP_TRACER_PROVIDER2},e.prototype.setDelegate=function(e){this._delegate=e},e.prototype.getDelegateTracer=function(e,t,r){var a;return null===(a=this._delegate)||void 0===a?void 0:a.getTracer(e,t,r)},e}();!function(e){e[e.UNSET=0]="UNSET",e[e.OK=1]="OK",e[e.ERROR=2]="ERROR"}(SpanStatusCode2||(SpanStatusCode2={}));var _a222,API_NAME32="trace",TraceAPI2=function(){function e(){this._proxyTracerProvider=new ProxyTracerProvider2,this.wrapSpanContext=wrapSpanContext2,this.isSpanContextValid=isSpanContextValid2,this.deleteSpan=deleteSpan2,this.getSpan=getSpan2,this.getActiveSpan=getActiveSpan2,this.getSpanContext=getSpanContext2,this.setSpan=setSpan2,this.setSpanContext=setSpanContext2}return e.getInstance=function(){return this._instance||(this._instance=new e),this._instance},e.prototype.setGlobalTracerProvider=function(e){var t=registerGlobal2(API_NAME32,this._proxyTracerProvider,DiagAPI2.instance());return t&&this._proxyTracerProvider.setDelegate(e),t},e.prototype.getTracerProvider=function(){return getGlobal2(API_NAME32)||this._proxyTracerProvider},e.prototype.getTracer=function(e,t){return this.getTracerProvider().getTracer(e,t)},e.prototype.disable=function(){unregisterGlobal2(API_NAME32,DiagAPI2.instance()),this._proxyTracerProvider=new ProxyTracerProvider2},e}(),trace2=TraceAPI2.getInstance(),__defProp3=Object.defineProperty,__export2=(e,t)=>{for(var r in t)__defProp3(e,r,{get:t[r],enumerable:!0})},name222="AI_InvalidArgumentError",marker222=`vercel.ai.error.${name222}`,symbol222=Symbol.for(marker222),InvalidArgumentError22=class extends AISDKError2{constructor({parameter:e,value:t,message:r}){super({name:name222,message:`Invalid argument for parameter ${e}: ${r}`}),this[_a222]=!0,this.parameter=e,this.value=t}static isInstance(e){return AISDKError2.hasMarker(e,marker222)}};_a222=symbol222;var _a622,name622="AI_NoObjectGeneratedError",marker622=`vercel.ai.error.${name622}`,symbol622=Symbol.for(marker622),NoObjectGeneratedError2=class extends AISDKError2{constructor({message:e="No object generated.",cause:t,text:r,response:a,usage:n,finishReason:o}){super({name:name622,message:e,cause:t}),this[_a622]=!0,this.text=r,this.response=a,this.usage=n,this.finishReason=o}static isInstance(e){return AISDKError2.hasMarker(e,marker622)}};_a622=symbol622;var _a144,UnsupportedModelVersionError2=class extends AISDKError2{constructor(e){super({name:"AI_UnsupportedModelVersionError",message:`Unsupported model version ${e.version} for provider "${e.provider}" and model "${e.modelId}". AI SDK 5 only supports models that implement specification version "v2".`}),this.version=e.version,this.provider=e.provider,this.modelId=e.modelId}},name143="AI_RetryError",marker144=`vercel.ai.error.${name143}`,symbol144=Symbol.for(marker144),RetryError2=class extends AISDKError2{constructor({message:e,reason:t,errors:r}){super({name:name143,message:e}),this[_a144]=!0,this.reason=t,this.errors=r,this.lastError=r[r.length-1]}static isInstance(e){return AISDKError2.hasMarker(e,marker144)}};function resolveEmbeddingModel(e){if("string"!=typeof e){if("v2"!==e.specificationVersion)throw new UnsupportedModelVersionError2({version:e.specificationVersion,provider:e.provider,modelId:e.modelId});return e}return getGlobalProvider().textEmbeddingModel(e)}function getGlobalProvider(){var e;return null!=(e=globalThis.AI_SDK_DEFAULT_PROVIDER)?e:gateway}_a144=symbol144;var VERSION32="5.0.155",dataContentSchema2=z$1.union([z$1.string(),z$1.instanceof(Uint8Array),z$1.instanceof(ArrayBuffer),z$1.custom((e=>{var t,r;return null!=(r=null==(t=globalThis.Buffer)?void 0:t.isBuffer(e))&&r}),{message:"Must be a Buffer"})]),jsonValueSchema2=z$1.lazy((()=>z$1.union([z$1.null(),z$1.string(),z$1.number(),z$1.boolean(),z$1.record(z$1.string(),jsonValueSchema2),z$1.array(jsonValueSchema2)]))),providerMetadataSchema2=z$1.record(z$1.string(),z$1.record(z$1.string(),jsonValueSchema2)),textPartSchema2=z$1.object({type:z$1.literal("text"),text:z$1.string(),providerOptions:providerMetadataSchema2.optional()}),imagePartSchema2=z$1.object({type:z$1.literal("image"),image:z$1.union([dataContentSchema2,z$1.instanceof(URL)]),mediaType:z$1.string().optional(),providerOptions:providerMetadataSchema2.optional()}),filePartSchema2=z$1.object({type:z$1.literal("file"),data:z$1.union([dataContentSchema2,z$1.instanceof(URL)]),filename:z$1.string().optional(),mediaType:z$1.string(),providerOptions:providerMetadataSchema2.optional()}),reasoningPartSchema2=z$1.object({type:z$1.literal("reasoning"),text:z$1.string(),providerOptions:providerMetadataSchema2.optional()}),toolCallPartSchema2=z$1.object({type:z$1.literal("tool-call"),toolCallId:z$1.string(),toolName:z$1.string(),input:z$1.unknown(),providerOptions:providerMetadataSchema2.optional(),providerExecuted:z$1.boolean().optional()}),outputSchema=z$1.discriminatedUnion("type",[z$1.object({type:z$1.literal("text"),value:z$1.string()}),z$1.object({type:z$1.literal("json"),value:jsonValueSchema2}),z$1.object({type:z$1.literal("error-text"),value:z$1.string()}),z$1.object({type:z$1.literal("error-json"),value:jsonValueSchema2}),z$1.object({type:z$1.literal("content"),value:z$1.array(z$1.union([z$1.object({type:z$1.literal("text"),text:z$1.string()}),z$1.object({type:z$1.literal("media"),data:z$1.string(),mediaType:z$1.string()})]))})]),toolResultPartSchema2=z$1.object({type:z$1.literal("tool-result"),toolCallId:z$1.string(),toolName:z$1.string(),output:outputSchema,providerOptions:providerMetadataSchema2.optional()}),systemModelMessageSchema=z$1.object({role:z$1.literal("system"),content:z$1.string(),providerOptions:providerMetadataSchema2.optional()}),userModelMessageSchema=z$1.object({role:z$1.literal("user"),content:z$1.union([z$1.string(),z$1.array(z$1.union([textPartSchema2,imagePartSchema2,filePartSchema2]))]),providerOptions:providerMetadataSchema2.optional()}),assistantModelMessageSchema=z$1.object({role:z$1.literal("assistant"),content:z$1.union([z$1.string(),z$1.array(z$1.union([textPartSchema2,filePartSchema2,reasoningPartSchema2,toolCallPartSchema2,toolResultPartSchema2]))]),providerOptions:providerMetadataSchema2.optional()}),toolModelMessageSchema=z$1.object({role:z$1.literal("tool"),content:z$1.array(toolResultPartSchema2),providerOptions:providerMetadataSchema2.optional()});function assembleOperationName2({operationId:e,telemetry:t}){return{"operation.name":`${e}${null!=(null==t?void 0:t.functionId)?` ${t.functionId}`:""}`,"resource.name":null==t?void 0:t.functionId,"ai.operationId":e,"ai.telemetry.functionId":null==t?void 0:t.functionId}}function getBaseTelemetryAttributes2({model:e,settings:t,telemetry:r,headers:a}){var n;return{"ai.model.provider":e.provider,"ai.model.id":e.modelId,...Object.entries(t).reduce(((e,[t,r])=>(e[`ai.settings.${t}`]=r,e)),{}),...Object.entries(null!=(n=null==r?void 0:r.metadata)?n:{}).reduce(((e,[t,r])=>(e[`ai.telemetry.metadata.${t}`]=r,e)),{}),...Object.entries(null!=a?a:{}).reduce(((e,[t,r])=>(void 0!==r&&(e[`ai.request.headers.${t}`]=r),e)),{})}}z$1.union([systemModelMessageSchema,userModelMessageSchema,assistantModelMessageSchema,toolModelMessageSchema]);var noopTracer2={startSpan:()=>noopSpan2,startActiveSpan:(e,t,r,a)=>"function"==typeof t?t(noopSpan2):"function"==typeof r?r(noopSpan2):"function"==typeof a?a(noopSpan2):void 0},noopSpan2={spanContext:()=>noopSpanContext2,setAttribute(){return this},setAttributes(){return this},addEvent(){return this},addLink(){return this},addLinks(){return this},setStatus(){return this},updateName(){return this},end(){return this},isRecording:()=>!1,recordException(){return this}},noopSpanContext2={traceId:"",spanId:"",traceFlags:0};function getTracer2({isEnabled:e=!1,tracer:t}={}){return e?t||trace2.getTracer("ai"):noopTracer2}function recordSpan2({name:e,tracer:t,attributes:r,fn:a,endWhenDone:n=!0}){return t.startActiveSpan(e,{attributes:r},(async e=>{try{const t=await a(e);return n&&e.end(),t}catch(t){try{recordErrorOnSpan2(e,t)}finally{e.end()}throw t}}))}function recordErrorOnSpan2(e,t){t instanceof Error?(e.recordException({name:t.name,message:t.message,stack:t.stack}),e.setStatus({code:SpanStatusCode2.ERROR,message:t.message})):e.setStatus({code:SpanStatusCode2.ERROR})}function selectTelemetryAttributes2({telemetry:e,attributes:t}){return!0!==(null==e?void 0:e.isEnabled)?{}:Object.entries(t).reduce(((t,[r,a])=>{if(null==a)return t;if("object"==typeof a&&"input"in a&&"function"==typeof a.input){if(!1===(null==e?void 0:e.recordInputs))return t;const n=a.input();return null==n?t:{...t,[r]:n}}if("object"==typeof a&&"output"in a&&"function"==typeof a.output){if(!1===(null==e?void 0:e.recordOutputs))return t;const n=a.output();return null==n?t:{...t,[r]:n}}return{...t,[r]:a}}),{})}function getRetryDelayInMs({error:e,exponentialBackoffDelay:t}){const r=e.responseHeaders;if(!r)return t;let a;const n=r["retry-after-ms"];if(n){const e=parseFloat(n);Number.isNaN(e)||(a=e)}const o=r["retry-after"];if(o&&void 0===a){const e=parseFloat(o);a=Number.isNaN(e)?Date.parse(o)-Date.now():1e3*e}return null!=a&&!Number.isNaN(a)&&0<=a&&(a<6e4||a<t)?a:t}var retryWithExponentialBackoffRespectingRetryHeaders=({maxRetries:e=2,initialDelayInMs:t=2e3,backoffFactor:r=2,abortSignal:a}={})=>async n=>_retryWithExponentialBackoff2(n,{maxRetries:e,delayInMs:t,backoffFactor:r,abortSignal:a});async function _retryWithExponentialBackoff2(e,{maxRetries:t,delayInMs:r,backoffFactor:a,abortSignal:n},o=[]){try{return await e()}catch(s){if(isAbortError2(s))throw s;if(0===t)throw s;const i=getErrorMessage22(s),c=[...o,s],l=c.length;if(l>t)throw new RetryError2({message:`Failed after ${l} attempts. Last error: ${i}`,reason:"maxRetriesExceeded",errors:c});if(s instanceof Error&&APICallError2.isInstance(s)&&!0===s.isRetryable&&l<=t)return await delay2(getRetryDelayInMs({error:s,exponentialBackoffDelay:r}),{abortSignal:n}),_retryWithExponentialBackoff2(e,{maxRetries:t,delayInMs:a*r,backoffFactor:a,abortSignal:n},c);if(1===l)throw s;throw new RetryError2({message:`Failed after ${l} attempts with non-retryable error: '${i}'`,reason:"errorNotRetryable",errors:c})}}function prepareRetries2({maxRetries:e,abortSignal:t}){if(null!=e){if(!Number.isInteger(e))throw new InvalidArgumentError22({parameter:"maxRetries",value:e,message:"maxRetries must be an integer"});if(e<0)throw new InvalidArgumentError22({parameter:"maxRetries",value:e,message:"maxRetries must be >= 0"})}const r=null!=e?e:2;return{maxRetries:r,retry:retryWithExponentialBackoffRespectingRetryHeaders({maxRetries:r,abortSignal:t})}}function fixJson2(e){const t=["ROOT"];let r=-1,a=null;function n(e,n,o){switch(e){case'"':r=n,t.pop(),t.push(o),t.push("INSIDE_STRING");break;case"f":case"t":case"n":r=n,a=n,t.pop(),t.push(o),t.push("INSIDE_LITERAL");break;case"-":t.pop(),t.push(o),t.push("INSIDE_NUMBER");break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":r=n,t.pop(),t.push(o),t.push("INSIDE_NUMBER");break;case"{":r=n,t.pop(),t.push(o),t.push("INSIDE_OBJECT_START");break;case"[":r=n,t.pop(),t.push(o),t.push("INSIDE_ARRAY_START")}}function o(e,a){switch(e){case",":t.pop(),t.push("INSIDE_OBJECT_AFTER_COMMA");break;case"}":r=a,t.pop()}}function s(e,a){switch(e){case",":t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break;case"]":r=a,t.pop()}}for(let i=0;i<e.length;i++){const c=e[i];switch(t[t.length-1]){case"ROOT":n(c,i,"FINISH");break;case"INSIDE_OBJECT_START":switch(c){case'"':t.pop(),t.push("INSIDE_OBJECT_KEY");break;case"}":r=i,t.pop()}break;case"INSIDE_OBJECT_AFTER_COMMA":if('"'===c)t.pop(),t.push("INSIDE_OBJECT_KEY");break;case"INSIDE_OBJECT_KEY":if('"'===c)t.pop(),t.push("INSIDE_OBJECT_AFTER_KEY");break;case"INSIDE_OBJECT_AFTER_KEY":if(":"===c)t.pop(),t.push("INSIDE_OBJECT_BEFORE_VALUE");break;case"INSIDE_OBJECT_BEFORE_VALUE":n(c,i,"INSIDE_OBJECT_AFTER_VALUE");break;case"INSIDE_OBJECT_AFTER_VALUE":o(c,i);break;case"INSIDE_STRING":switch(c){case'"':t.pop(),r=i;break;case"\\":t.push("INSIDE_STRING_ESCAPE");break;default:r=i}break;case"INSIDE_ARRAY_START":if("]"===c)r=i,t.pop();else r=i,n(c,i,"INSIDE_ARRAY_AFTER_VALUE");break;case"INSIDE_ARRAY_AFTER_VALUE":switch(c){case",":t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break;case"]":r=i,t.pop();break;default:r=i}break;case"INSIDE_ARRAY_AFTER_COMMA":n(c,i,"INSIDE_ARRAY_AFTER_VALUE");break;case"INSIDE_STRING_ESCAPE":t.pop(),r=i;break;case"INSIDE_NUMBER":switch(c){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":r=i;break;case"e":case"E":case"-":case".":break;case",":t.pop(),"INSIDE_ARRAY_AFTER_VALUE"===t[t.length-1]&&s(c,i),"INSIDE_OBJECT_AFTER_VALUE"===t[t.length-1]&&o(c,i);break;case"}":t.pop(),"INSIDE_OBJECT_AFTER_VALUE"===t[t.length-1]&&o(c,i);break;case"]":t.pop(),"INSIDE_ARRAY_AFTER_VALUE"===t[t.length-1]&&s(c,i);break;default:t.pop()}break;case"INSIDE_LITERAL":{const n=e.substring(a,i+1);"false".startsWith(n)||"true".startsWith(n)||"null".startsWith(n)?r=i:(t.pop(),"INSIDE_OBJECT_AFTER_VALUE"===t[t.length-1]?o(c,i):"INSIDE_ARRAY_AFTER_VALUE"===t[t.length-1]&&s(c,i));break}}}let i=e.slice(0,r+1);for(let r=t.length-1;r>=0;r--){switch(t[r]){case"INSIDE_STRING":i+='"';break;case"INSIDE_OBJECT_KEY":case"INSIDE_OBJECT_AFTER_KEY":case"INSIDE_OBJECT_AFTER_COMMA":case"INSIDE_OBJECT_START":case"INSIDE_OBJECT_BEFORE_VALUE":case"INSIDE_OBJECT_AFTER_VALUE":i+="}";break;case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":i+="]";break;case"INSIDE_LITERAL":{const t=e.substring(a,e.length);"true".startsWith(t)?i+="true".slice(t.length):"false".startsWith(t)?i+="false".slice(t.length):"null".startsWith(t)&&(i+="null".slice(t.length))}}}return i}async function parsePartialJson2(e){if(void 0===e)return{value:void 0,state:"undefined-input"};let t=await safeParseJSON2({text:e});return t.success?{value:t.value,state:"successful-parse"}:(t=await safeParseJSON2({text:fixJson2(e)}),t.success?{value:t.value,state:"repaired-parse"}:{value:void 0,state:"failed-parse"})}function splitArray2(e,t){if(t<=0)throw new Error("chunkSize must be greater than 0");const r=[];for(let a=0;a<e.length;a+=t)r.push(e.slice(a,a+t));return r}async function embedMany2({model:e,values:t,maxParallelCalls:r=1/0,maxRetries:a,abortSignal:n,headers:o,providerOptions:s,experimental_telemetry:i}){const c=resolveEmbeddingModel(e),{maxRetries:l,retry:u}=prepareRetries2({maxRetries:a,abortSignal:n}),d=withUserAgentSuffix(null!=o?o:{},`ai/${VERSION32}`),p=getBaseTelemetryAttributes2({model:c,telemetry:i,headers:d,settings:{maxRetries:l}}),m=getTracer2(i);return recordSpan2({name:"ai.embedMany",attributes:selectTelemetryAttributes2({telemetry:i,attributes:{...assembleOperationName2({operationId:"ai.embedMany",telemetry:i}),...p,"ai.values":{input:()=>t.map((e=>JSON.stringify(e)))}}}),tracer:m,fn:async e=>{var a;const[o,l]=await Promise.all([c.maxEmbeddingsPerCall,c.supportsParallelCalls]);if(null==o||o===1/0){const{embeddings:r,usage:a,response:o,providerMetadata:l}=await u((()=>recordSpan2({name:"ai.embedMany.doEmbed",attributes:selectTelemetryAttributes2({telemetry:i,attributes:{...assembleOperationName2({operationId:"ai.embedMany.doEmbed",telemetry:i}),...p,"ai.values":{input:()=>t.map((e=>JSON.stringify(e)))}}}),tracer:m,fn:async e=>{var r;const a=await c.doEmbed({values:t,abortSignal:n,headers:d,providerOptions:s}),o=a.embeddings,l=null!=(r=a.usage)?r:{tokens:NaN};return e.setAttributes(selectTelemetryAttributes2({telemetry:i,attributes:{"ai.embeddings":{output:()=>o.map((e=>JSON.stringify(e)))},"ai.usage.tokens":l.tokens}})),{embeddings:o,usage:l,providerMetadata:a.providerMetadata,response:a.response}}})));return e.setAttributes(selectTelemetryAttributes2({telemetry:i,attributes:{"ai.embeddings":{output:()=>r.map((e=>JSON.stringify(e)))},"ai.usage.tokens":a.tokens}})),new DefaultEmbedManyResult2({values:t,embeddings:r,usage:a,providerMetadata:l,responses:[o]})}const f=splitArray2(t,o),g=[],h=[];let y,v=0;const b=splitArray2(f,l?r:1);for(const e of b){const t=await Promise.all(e.map((e=>u((()=>recordSpan2({name:"ai.embedMany.doEmbed",attributes:selectTelemetryAttributes2({telemetry:i,attributes:{...assembleOperationName2({operationId:"ai.embedMany.doEmbed",telemetry:i}),...p,"ai.values":{input:()=>e.map((e=>JSON.stringify(e)))}}}),tracer:m,fn:async t=>{var r;const a=await c.doEmbed({values:e,abortSignal:n,headers:d,providerOptions:s}),o=a.embeddings,l=null!=(r=a.usage)?r:{tokens:NaN};return t.setAttributes(selectTelemetryAttributes2({telemetry:i,attributes:{"ai.embeddings":{output:()=>o.map((e=>JSON.stringify(e)))},"ai.usage.tokens":l.tokens}})),{embeddings:o,usage:l,providerMetadata:a.providerMetadata,response:a.response}}}))))));for(const e of t)if(g.push(...e.embeddings),h.push(e.response),v+=e.usage.tokens,e.providerMetadata)if(y)for(const[t,r]of Object.entries(e.providerMetadata))y[t]={...null!=(a=y[t])?a:{},...r};else y={...e.providerMetadata}}return e.setAttributes(selectTelemetryAttributes2({telemetry:i,attributes:{"ai.embeddings":{output:()=>g.map((e=>JSON.stringify(e)))},"ai.usage.tokens":v}})),new DefaultEmbedManyResult2({values:t,embeddings:g,usage:{tokens:v},providerMetadata:y,responses:h})}})}createIdGenerator2({prefix:"aitxt",size:24}),createIdGenerator2({prefix:"aitxt",size:24});var DefaultEmbedManyResult2=class{constructor(e){this.values=e.values,this.embeddings=e.embeddings,this.usage=e.usage,this.providerMetadata=e.providerMetadata,this.responses=e.responses}};createIdGenerator2({prefix:"aiobj",size:24}),createIdGenerator2({prefix:"aiobj",size:24});var output_exports2={};__export2(output_exports2,{object:()=>object2,text:()=>text2});var _a19,_b17,_a25,_b23,_a35,_b33,text2=()=>({type:"text",responseFormat:{type:"text"},parsePartial:async({text:e})=>({partial:e}),parseOutput:async({text:e})=>e}),object2=({schema:e})=>{const t=asSchema2(e);return{type:"object",responseFormat:{type:"json",schema:t.jsonSchema},async parsePartial({text:e}){const t=await parsePartialJson2(e);switch(t.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:t.value};default:{const e=t.state;throw new Error(`Unsupported parse state: ${e}`)}}},async parseOutput({text:e},r){const a=await safeParseJSON2({text:e});if(!a.success)throw new NoObjectGeneratedError2({message:"No object generated: could not parse the response.",cause:a.error,text:e,response:r.response,usage:r.usage,finishReason:r.finishReason});const n=await safeValidateTypes2({value:a.value,schema:t});if(!n.success)throw new NoObjectGeneratedError2({message:"No object generated: response did not match schema.",cause:n.error,text:e,response:r.response,usage:r.usage,finishReason:r.finishReason});return n.value}}},marker19="vercel.ai.error",symbol19=Symbol.for(marker19),AISDKError3=class e extends(_b17=Error,_a19=symbol19,_b17){constructor({name:e,message:t,cause:r}){super(t),this[_a19]=!0,this.name=e,this.cause=r}static isInstance(t){return e.hasMarker(t,marker19)}static hasMarker(e,t){const r=Symbol.for(t);return null!=e&&"object"==typeof e&&r in e&&"boolean"==typeof e[r]&&!0===e[r]}},name19="AI_APICallError",marker25=`vercel.ai.error.${name19}`,symbol25=Symbol.for(marker25),APICallError3=class extends(_b23=AISDKError3,_a25=symbol25,_b23){constructor({message:e,url:t,requestBodyValues:r,statusCode:a,responseHeaders:n,responseBody:o,cause:s,isRetryable:i=null!=a&&(408===a||409===a||429===a||a>=500),data:c}){super({name:name19,message:e,cause:s}),this[_a25]=!0,this.url=t,this.requestBodyValues=r,this.statusCode=a,this.responseHeaders=n,this.responseBody=o,this.isRetryable=i,this.data=c}static isInstance(e){return AISDKError3.hasMarker(e,marker25)}},name25="AI_EmptyResponseBodyError",marker35=`vercel.ai.error.${name25}`,symbol35=Symbol.for(marker35),EmptyResponseBodyError2=class extends(_b33=AISDKError3,_a35=symbol35,_b33){constructor({message:e="Empty response body"}={}){super({name:name25,message:e}),this[_a35]=!0}static isInstance(e){return AISDKError3.hasMarker(e,marker35)}};function getErrorMessage4(e){return null==e?"unknown error":"string"==typeof e?e:e instanceof Error?e.message:JSON.stringify(e)}var _a45,_b43,_a75,_b73,_a135,_b132,name35="AI_InvalidArgumentError",marker45=`vercel.ai.error.${name35}`,symbol45=Symbol.for(marker45),InvalidArgumentError4=class extends(_b43=AISDKError3,_a45=symbol45,_b43){constructor({message:e,cause:t,argument:r}){super({name:name35,message:e,cause:t}),this[_a45]=!0,this.argument=r}static isInstance(e){return AISDKError3.hasMarker(e,marker45)}},name65="AI_JSONParseError",marker75=`vercel.ai.error.${name65}`,symbol75=Symbol.for(marker75),JSONParseError3=class extends(_b73=AISDKError3,_a75=symbol75,_b73){constructor({text:e,cause:t}){super({name:name65,message:`JSON parsing failed: Text: ${e}.\nError message: ${getErrorMessage4(t)}`,cause:t}),this[_a75]=!0,this.text=e}static isInstance(e){return AISDKError3.hasMarker(e,marker75)}},name125="AI_TypeValidationError",marker135=`vercel.ai.error.${name125}`,symbol135=Symbol.for(marker135),TypeValidationError3=class e extends(_b132=AISDKError3,_a135=symbol135,_b132){constructor({value:e,cause:t,context:r}){let a="Type validation failed";if((null==r?void 0:r.field)&&(a+=` for ${r.field}`),(null==r?void 0:r.entityName)||(null==r?void 0:r.entityId)){a+=" (";const e=[];r.entityName&&e.push(r.entityName),r.entityId&&e.push(`id: "${r.entityId}"`),a+=e.join(", "),a+=")"}super({name:name125,message:`${a}: Value: ${JSON.stringify(e)}.\nError message: ${getErrorMessage4(t)}`,cause:t}),this[_a135]=!0,this.value=e,this.context=r}static isInstance(e){return AISDKError3.hasMarker(e,marker135)}static wrap({value:t,cause:r,context:a}){var n,o,s;return e.isInstance(r)&&r.value===t&&(null==(n=r.context)?void 0:n.field)===(null==a?void 0:a.field)&&(null==(o=r.context)?void 0:o.entityName)===(null==a?void 0:a.entityName)&&(null==(s=r.context)?void 0:s.entityId)===(null==a?void 0:a.entityId)?r:new e({value:t,cause:r,context:a})}},ParseError2=class extends Error{constructor(e,t){super(e),this.name="ParseError",this.type=t.type,this.field=t.field,this.value=t.value,this.line=t.line}};function noop2(e){}function createParser2(e){if("function"==typeof e)throw new TypeError("`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?");const{onEvent:t=noop2,onError:r=noop2,onRetry:a=noop2,onComment:n}=e;let o,s="",i=!0,c="",l="";function u(e){if(""===e)return c.length>0&&t({id:o,event:l||void 0,data:c.endsWith("\n")?c.slice(0,-1):c}),o=void 0,c="",void(l="");if(e.startsWith(":"))return void(n&&n(e.slice(e.startsWith(": ")?2:1)));const r=e.indexOf(":");if(-1===r)d(e,"",e);else{const t=e.slice(0,r),a=" "===e[r+1]?2:1;d(t,e.slice(r+a),e)}}function d(e,t,n){switch(e){case"event":l=t;break;case"data":c=`${c}${t}\n`;break;case"id":o=t.includes("\0")?void 0:t;break;case"retry":/^\d+$/.test(t)?a(parseInt(t,10)):r(new ParseError2(`Invalid \`retry\` value: "${t}"`,{type:"invalid-retry",value:t,line:n}));break;default:r(new ParseError2(`Unknown field "${e.length>20?`${e.slice(0,20)}…`:e}"`,{type:"unknown-field",field:e,value:t,line:n}))}}return{feed:function(e){const t=i?e.replace(/^\xEF\xBB\xBF/,""):e,[r,a]=splitLines2(`${s}${t}`);for(const e of r)u(e);s=a,i=!1},reset:function(e={}){s&&e.consume&&u(s),i=!0,o=void 0,c="",l="",s=""}}}function splitLines2(e){const t=[];let r="",a=0;for(;a<e.length;){const n=e.indexOf("\r",a),o=e.indexOf("\n",a);let s=-1;if(-1!==n&&-1!==o?s=Math.min(n,o):-1!==n?s=n===e.length-1?-1:n:-1!==o&&(s=o),-1===s){r=e.slice(a);break}{const r=e.slice(a,s);t.push(r),a=s+1,"\r"===e[a-1]&&"\n"===e[a]&&a++}}return[t,r]}var EventSourceParserStream2=class extends TransformStream{constructor({onError:e,onRetry:t,onComment:r}={}){let a;super({start(n){a=createParser2({onEvent:e=>{n.enqueue(e)},onError(t){"terminate"===e?n.error(t):"function"==typeof e&&e(t)},onRetry:t,onComment:r})},transform(e){a.feed(e)}})}};function combineHeaders2(...e){return e.reduce(((e,t)=>({...e,...null!=t?t:{}})),{})}async function delay3(e,t){if(null==e)return Promise.resolve();const r=null==t?void 0:t.abortSignal;return new Promise(((t,a)=>{if(null==r?void 0:r.aborted)return void a(createAbortError2());const n=setTimeout((()=>{o(),t()}),e),o=()=>{clearTimeout(n),null==r||r.removeEventListener("abort",s)},s=()=>{o(),a(createAbortError2())};null==r||r.addEventListener("abort",s)}))}function createAbortError2(){return new DOMException("Delay was aborted","AbortError")}function extractResponseHeaders2(e){return Object.fromEntries([...e.headers])}var{btoa:btoa3}=globalThis;function convertUint8ArrayToBase643(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCodePoint(e[r]);return btoa3(t)}var createIdGenerator3=({prefix:e,size:t=16,alphabet:r="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:a="-"}={})=>{const n=()=>{const e=r.length,a=new Array(t);for(let n=0;n<t;n++)a[n]=r[Math.random()*e|0];return a.join("")};if(null==e)return n;if(r.includes(a))throw new InvalidArgumentError4({argument:"separator",message:`The separator "${a}" must not be part of the alphabet "${r}".`});return()=>`${e}${a}${n()}`};function getErrorMessage23(e){return null==e?"unknown error":"string"==typeof e?e:e instanceof Error?e.message:JSON.stringify(e)}function isAbortError3(e){return(e instanceof Error||e instanceof DOMException)&&("AbortError"===e.name||"ResponseAborted"===e.name||"TimeoutError"===e.name)}createIdGenerator3();var FETCH_FAILED_ERROR_MESSAGES2=["fetch failed","failed to fetch"],BUN_ERROR_CODES=["ConnectionRefused","ConnectionClosed","FailedToOpenSocket","ECONNRESET","ECONNREFUSED","ETIMEDOUT","EPIPE"];function isBunNetworkError(e){if(!(e instanceof Error))return!1;const t=e.code;return!("string"!=typeof t||!BUN_ERROR_CODES.includes(t))}function handleFetchError2({error:e,url:t,requestBodyValues:r}){if(isAbortError3(e))return e;if(e instanceof TypeError&&FETCH_FAILED_ERROR_MESSAGES2.includes(e.message.toLowerCase())){const a=e.cause;if(null!=a)return new APICallError3({message:`Cannot connect to API: ${a.message}`,cause:a,url:t,requestBodyValues:r,isRetryable:!0})}return isBunNetworkError(e)?new APICallError3({message:`Cannot connect to API: ${e.message}`,cause:e,url:t,requestBodyValues:r,isRetryable:!0}):e}function getRuntimeEnvironmentUserAgent2(e=globalThis){var t,r,a;return e.window?"runtime/browser":(null==(t=e.navigator)?void 0:t.userAgent)?`runtime/${e.navigator.userAgent.toLowerCase()}`:(null==(a=null==(r=e.process)?void 0:r.versions)?void 0:a.node)?`runtime/node.js/${e.process.version.substring(0)}`:e.EdgeRuntime?"runtime/vercel-edge":"runtime/unknown"}function normalizeHeaders2(e){if(null==e)return{};const t={};if(e instanceof Headers)e.forEach(((e,r)=>{t[r.toLowerCase()]=e}));else{Array.isArray(e)||(e=Object.entries(e));for(const[r,a]of e)null!=a&&(t[r.toLowerCase()]=a)}return t}function withUserAgentSuffix2(e,...t){const r=new Headers(normalizeHeaders2(e)),a=r.get("user-agent")||"";return r.set("user-agent",[a,...t].filter(Boolean).join(" ")),Object.fromEntries(r.entries())}var VERSION4="4.0.19",getOriginalFetch3=()=>globalThis.fetch,getFromApi2=async({url:e,headers:t={},successfulResponseHandler:r,failedResponseHandler:a,abortSignal:n,fetch:o=getOriginalFetch3()})=>{try{const s=await o(e,{method:"GET",headers:withUserAgentSuffix2(t,`ai-sdk/provider-utils/${VERSION4}`,getRuntimeEnvironmentUserAgent2()),signal:n}),i=extractResponseHeaders2(s);if(!s.ok){let t;try{t=await a({response:s,url:e,requestBodyValues:{}})}catch(t){if(isAbortError3(t)||APICallError3.isInstance(t))throw t;throw new APICallError3({message:"Failed to process error response",cause:t,statusCode:s.status,url:e,responseHeaders:i,requestBodyValues:{}})}throw t.value}try{return await r({response:s,url:e,requestBodyValues:{}})}catch(t){if(t instanceof Error&&(isAbortError3(t)||APICallError3.isInstance(t)))throw t;throw new APICallError3({message:"Failed to process successful response",cause:t,statusCode:s.status,url:e,responseHeaders:i,requestBodyValues:{}})}}catch(t){throw handleFetchError2({error:t,url:e,requestBodyValues:{}})}};function loadOptionalSetting2({settingValue:e,environmentVariableName:t}){return"string"==typeof e||null==e&&"undefined"!=typeof process&&null!=(e=process.env[t])&&"string"==typeof e?e:void 0}var suspectProtoRx2=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,suspectConstructorRx2=/"(?: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*:/;function _parse2(e){const t=JSON.parse(e);return null===t||"object"!=typeof t||!1===suspectProtoRx2.test(e)&&!1===suspectConstructorRx2.test(e)?t:filter2(t)}function filter2(e){let t=[e];for(;t.length;){const e=t;t=[];for(const r of e){if(Object.prototype.hasOwnProperty.call(r,"__proto__"))throw new SyntaxError("Object contains forbidden prototype property");if(Object.prototype.hasOwnProperty.call(r,"constructor")&&null!==r.constructor&&"object"==typeof r.constructor&&Object.prototype.hasOwnProperty.call(r.constructor,"prototype"))throw new SyntaxError("Object contains forbidden prototype property");for(const e in r){const a=r[e];a&&"object"==typeof a&&t.push(a)}}}return e}function secureJsonParse2(e){const{stackTraceLimit:t}=Error;try{Error.stackTraceLimit=0}catch(t){return _parse2(e)}try{return _parse2(e)}finally{Error.stackTraceLimit=t}}function addAdditionalPropertiesToJsonSchema2(e){if("object"===e.type||Array.isArray(e.type)&&e.type.includes("object")){e.additionalProperties=!1;const{properties:t}=e;if(null!=t)for(const e of Object.keys(t))t[e]=visit(t[e])}null!=e.items&&(e.items=Array.isArray(e.items)?e.items.map(visit):visit(e.items)),null!=e.anyOf&&(e.anyOf=e.anyOf.map(visit)),null!=e.allOf&&(e.allOf=e.allOf.map(visit)),null!=e.oneOf&&(e.oneOf=e.oneOf.map(visit));const{definitions:t}=e;if(null!=t)for(const e of Object.keys(t))t[e]=visit(t[e]);return e}function visit(e){return"boolean"==typeof e?e:addAdditionalPropertiesToJsonSchema2(e)}var ignoreOverride3=Symbol("Let zodToJsonSchema decide on which parser to use"),defaultOptions3={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",strictUnions:!1,definitions:{},errorMessages:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref"},getDefaultOptions3=e=>"string"==typeof e?{...defaultOptions3,name:e}:{...defaultOptions3,...e};function parseAnyDef3(){return{}}function parseArrayDef3(e,t){var r,a,n;const o={type:"array"};return(null==(r=e.type)?void 0:r._def)&&(null==(n=null==(a=e.type)?void 0:a._def)?void 0:n.typeName)!==ZodFirstPartyTypeKind.ZodAny&&(o.items=parseDef3(e.type._def,{...t,currentPath:[...t.currentPath,"items"]})),e.minLength&&(o.minItems=e.minLength.value),e.maxLength&&(o.maxItems=e.maxLength.value),e.exactLength&&(o.minItems=e.exactLength.value,o.maxItems=e.exactLength.value),o}function parseBigintDef3(e){const t={type:"integer",format:"int64"};if(!e.checks)return t;for(const r of e.checks)switch(r.kind){case"min":r.inclusive?t.minimum=r.value:t.exclusiveMinimum=r.value;break;case"max":r.inclusive?t.maximum=r.value:t.exclusiveMaximum=r.value;break;case"multipleOf":t.multipleOf=r.value}return t}function parseBooleanDef3(){return{type:"boolean"}}function parseBrandedDef3(e,t){return parseDef3(e.type._def,t)}var parseCatchDef3=(e,t)=>parseDef3(e.innerType._def,t);function parseDateDef3(e,t,r){const a=null!=r?r:t.dateStrategy;if(Array.isArray(a))return{anyOf:a.map(((r,a)=>parseDateDef3(e,t,r)))};switch(a){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return integerDateParser3(e)}}var integerDateParser3=e=>{const t={type:"integer",format:"unix-time"};for(const r of e.checks)switch(r.kind){case"min":t.minimum=r.value;break;case"max":t.maximum=r.value}return t};function parseDefaultDef3(e,t){return{...parseDef3(e.innerType._def,t),default:e.defaultValue()}}function parseEffectsDef3(e,t){return"input"===t.effectStrategy?parseDef3(e.schema._def,t):parseAnyDef3()}function parseEnumDef3(e){return{type:"string",enum:Array.from(e.values)}}var isJsonSchema7AllOfType3=e=>(!("type"in e)||"string"!==e.type)&&"allOf"in e;function parseIntersectionDef3(e,t){const r=[parseDef3(e.left._def,{...t,currentPath:[...t.currentPath,"allOf","0"]}),parseDef3(e.right._def,{...t,currentPath:[...t.currentPath,"allOf","1"]})].filter((e=>!!e)),a=[];return r.forEach((e=>{if(isJsonSchema7AllOfType3(e))a.push(...e.allOf);else{let t=e;if("additionalProperties"in e&&!1===e.additionalProperties){const{additionalProperties:r,...a}=e;t=a}a.push(t)}})),a.length?{allOf:a}:void 0}function parseLiteralDef3(e){const t=typeof e.value;return"bigint"!==t&&"number"!==t&&"boolean"!==t&&"string"!==t?{type:Array.isArray(e.value)?"array":"object"}:{type:"bigint"===t?"integer":t,const:e.value}}var emojiRegex3=void 0,zodPatterns3={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>(void 0===emojiRegex3&&(emojiRegex3=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),emojiRegex3),uuid:/^[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}$/,ipv4:/^(?:(?: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])$/,ipv4Cidr:/^(?:(?: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])$/,ipv6:/^(([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})))$/,ipv6Cidr:/^(([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])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function parseStringDef3(e,t){const r={type:"string"};if(e.checks)for(const a of e.checks)switch(a.kind){case"min":r.minLength="number"==typeof r.minLength?Math.max(r.minLength,a.value):a.value;break;case"max":r.maxLength="number"==typeof r.maxLength?Math.min(r.maxLength,a.value):a.value;break;case"email":switch(t.emailStrategy){case"format:email":addFormat3(r,"email",a.message,t);break;case"format:idn-email":addFormat3(r,"idn-email",a.message,t);break;case"pattern:zod":addPattern3(r,zodPatterns3.email,a.message,t)}break;case"url":addFormat3(r,"uri",a.message,t);break;case"uuid":addFormat3(r,"uuid",a.message,t);break;case"regex":addPattern3(r,a.regex,a.message,t);break;case"cuid":addPattern3(r,zodPatterns3.cuid,a.message,t);break;case"cuid2":addPattern3(r,zodPatterns3.cuid2,a.message,t);break;case"startsWith":addPattern3(r,RegExp(`^${escapeLiteralCheckValue3(a.value,t)}`),a.message,t);break;case"endsWith":addPattern3(r,RegExp(`${escapeLiteralCheckValue3(a.value,t)}$`),a.message,t);break;case"datetime":addFormat3(r,"date-time",a.message,t);break;case"date":addFormat3(r,"date",a.message,t);break;case"time":addFormat3(r,"time",a.message,t);break;case"duration":addFormat3(r,"duration",a.message,t);break;case"length":r.minLength="number"==typeof r.minLength?Math.max(r.minLength,a.value):a.value,r.maxLength="number"==typeof r.maxLength?Math.min(r.maxLength,a.value):a.value;break;case"includes":addPattern3(r,RegExp(escapeLiteralCheckValue3(a.value,t)),a.message,t);break;case"ip":"v6"!==a.version&&addFormat3(r,"ipv4",a.message,t),"v4"!==a.version&&addFormat3(r,"ipv6",a.message,t);break;case"base64url":addPattern3(r,zodPatterns3.base64url,a.message,t);break;case"jwt":addPattern3(r,zodPatterns3.jwt,a.message,t);break;case"cidr":"v6"!==a.version&&addPattern3(r,zodPatterns3.ipv4Cidr,a.message,t),"v4"!==a.version&&addPattern3(r,zodPatterns3.ipv6Cidr,a.message,t);break;case"emoji":addPattern3(r,zodPatterns3.emoji(),a.message,t);break;case"ulid":addPattern3(r,zodPatterns3.ulid,a.message,t);break;case"base64":switch(t.base64Strategy){case"format:binary":addFormat3(r,"binary",a.message,t);break;case"contentEncoding:base64":r.contentEncoding="base64";break;case"pattern:zod":addPattern3(r,zodPatterns3.base64,a.message,t)}break;case"nanoid":addPattern3(r,zodPatterns3.nanoid,a.message,t)}return r}function escapeLiteralCheckValue3(e,t){return"escape"===t.patternStrategy?escapeNonAlphaNumeric3(e):e}var ALPHA_NUMERIC3=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function escapeNonAlphaNumeric3(e){let t="";for(let r=0;r<e.length;r++)ALPHA_NUMERIC3.has(e[r])||(t+="\\"),t+=e[r];return t}function addFormat3(e,t,r,a){var n;e.format||(null==(n=e.anyOf)?void 0:n.some((e=>e.format)))?(e.anyOf||(e.anyOf=[]),e.format&&(e.anyOf.push({format:e.format}),delete e.format),e.anyOf.push({format:t,...r&&a.errorMessages&&{errorMessage:{format:r}}})):e.format=t}function addPattern3(e,t,r,a){var n;e.pattern||(null==(n=e.allOf)?void 0:n.some((e=>e.pattern)))?(e.allOf||(e.allOf=[]),e.pattern&&(e.allOf.push({pattern:e.pattern}),delete e.pattern),e.allOf.push({pattern:stringifyRegExpWithFlags3(t,a),...r&&a.errorMessages&&{errorMessage:{pattern:r}}})):e.pattern=stringifyRegExpWithFlags3(t,a)}function stringifyRegExpWithFlags3(e,t){var r;if(!t.applyRegexFlags||!e.flags)return e.source;const a=e.flags.includes("i"),n=e.flags.includes("m"),o=e.flags.includes("s"),s=a?e.source.toLowerCase():e.source;let i="",c=!1,l=!1,u=!1;for(let e=0;e<s.length;e++)if(c)i+=s[e],c=!1;else{if(a)if(l){if(s[e].match(/[a-z]/)){u?(i+=s[e],i+=`${s[e-2]}-${s[e]}`.toUpperCase(),u=!1):"-"===s[e+1]&&(null==(r=s[e+2])?void 0:r.match(/[a-z]/))?(i+=s[e],u=!0):i+=`${s[e]}${s[e].toUpperCase()}`;continue}}else if(s[e].match(/[a-z]/)){i+=`[${s[e]}${s[e].toUpperCase()}]`;continue}if(n){if("^"===s[e]){i+="(^|(?<=[\r\n]))";continue}if("$"===s[e]){i+="($|(?=[\r\n]))";continue}}o&&"."===s[e]?i+=l?`${s[e]}\r\n`:`[${s[e]}\r\n]`:(i+=s[e],"\\"===s[e]?c=!0:l&&"]"===s[e]?l=!1:l||"["!==s[e]||(l=!0))}return i}function parseRecordDef3(e,t){var r,a,n,o,s,i;const c={type:"object",additionalProperties:null!=(r=parseDef3(e.valueType._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]}))?r:t.allowedAdditionalProperties};if((null==(a=e.keyType)?void 0:a._def.typeName)===ZodFirstPartyTypeKind.ZodString&&(null==(n=e.keyType._def.checks)?void 0:n.length)){const{type:r,...a}=parseStringDef3(e.keyType._def,t);return{...c,propertyNames:a}}if((null==(o=e.keyType)?void 0:o._def.typeName)===ZodFirstPartyTypeKind.ZodEnum)return{...c,propertyNames:{enum:e.keyType._def.values}};if((null==(s=e.keyType)?void 0:s._def.typeName)===ZodFirstPartyTypeKind.ZodBranded&&e.keyType._def.type._def.typeName===ZodFirstPartyTypeKind.ZodString&&(null==(i=e.keyType._def.type._def.checks)?void 0:i.length)){const{type:r,...a}=parseBrandedDef3(e.keyType._def,t);return{...c,propertyNames:a}}return c}function parseMapDef3(e,t){if("record"===t.mapStrategy)return parseRecordDef3(e,t);return{type:"array",maxItems:125,items:{type:"array",items:[parseDef3(e.keyType._def,{...t,currentPath:[...t.currentPath,"items","items","0"]})||parseAnyDef3(),parseDef3(e.valueType._def,{...t,currentPath:[...t.currentPath,"items","items","1"]})||parseAnyDef3()],minItems:2,maxItems:2}}}function parseNativeEnumDef3(e){const t=e.values,r=Object.keys(e.values).filter((e=>"number"!=typeof t[t[e]])).map((e=>t[e])),a=Array.from(new Set(r.map((e=>typeof e))));return{type:1===a.length?"string"===a[0]?"string":"number":["string","number"],enum:r}}function parseNeverDef3(){return{not:parseAnyDef3()}}function parseNullDef3(){return{type:"null"}}var primitiveMappings3={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function parseUnionDef3(e,t){const r=e.options instanceof Map?Array.from(e.options.values()):e.options;if(r.every((e=>e._def.typeName in primitiveMappings3&&(!e._def.checks||!e._def.checks.length)))){const e=r.reduce(((e,t)=>{const r=primitiveMappings3[t._def.typeName];return r&&!e.includes(r)?[...e,r]:e}),[]);return{type:e.length>1?e:e[0]}}if(r.every((e=>"ZodLiteral"===e._def.typeName&&!e.description))){const e=r.reduce(((e,t)=>{const r=typeof t._def.value;switch(r){case"string":case"number":case"boolean":return[...e,r];case"bigint":return[...e,"integer"];case"object":if(null===t._def.value)return[...e,"null"];default:return e}}),[]);if(e.length===r.length){const t=e.filter(((e,t,r)=>r.indexOf(e)===t));return{type:t.length>1?t:t[0],enum:r.reduce(((e,t)=>e.includes(t._def.value)?e:[...e,t._def.value]),[])}}}else if(r.every((e=>"ZodEnum"===e._def.typeName)))return{type:"string",enum:r.reduce(((e,t)=>[...e,...t._def.values.filter((t=>!e.includes(t)))]),[])};return asAnyOf3(e,t)}var asAnyOf3=(e,t)=>{const r=(e.options instanceof Map?Array.from(e.options.values()):e.options).map(((e,r)=>parseDef3(e._def,{...t,currentPath:[...t.currentPath,"anyOf",`${r}`]}))).filter((e=>!!e&&(!t.strictUnions||"object"==typeof e&&Object.keys(e).length>0)));return r.length?{anyOf:r}:void 0};function parseNullableDef3(e,t){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(e.innerType._def.typeName)&&(!e.innerType._def.checks||!e.innerType._def.checks.length))return{type:[primitiveMappings3[e.innerType._def.typeName],"null"]};const r=parseDef3(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","0"]});return r&&{anyOf:[r,{type:"null"}]}}function parseNumberDef3(e){const t={type:"number"};if(!e.checks)return t;for(const r of e.checks)switch(r.kind){case"int":t.type="integer";break;case"min":r.inclusive?t.minimum=r.value:t.exclusiveMinimum=r.value;break;case"max":r.inclusive?t.maximum=r.value:t.exclusiveMaximum=r.value;break;case"multipleOf":t.multipleOf=r.value}return t}function parseObjectDef3(e,t){const r={type:"object",properties:{}},a=[],n=e.shape();for(const e in n){let o=n[e];if(void 0===o||void 0===o._def)continue;const s=safeIsOptional3(o),i=parseDef3(o._def,{...t,currentPath:[...t.currentPath,"properties",e],propertyPath:[...t.currentPath,"properties",e]});void 0!==i&&(r.properties[e]=i,s||a.push(e))}a.length&&(r.required=a);const o=decideAdditionalProperties3(e,t);return void 0!==o&&(r.additionalProperties=o),r}function decideAdditionalProperties3(e,t){if("ZodNever"!==e.catchall._def.typeName)return parseDef3(e.catchall._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]});switch(e.unknownKeys){case"passthrough":return t.allowedAdditionalProperties;case"strict":return t.rejectedAdditionalProperties;case"strip":return"strict"===t.removeAdditionalStrategy?t.allowedAdditionalProperties:t.rejectedAdditionalProperties}}function safeIsOptional3(e){try{return e.isOptional()}catch(e){return!0}}var parseOptionalDef3=(e,t)=>{var r;if(t.currentPath.toString()===(null==(r=t.propertyPath)?void 0:r.toString()))return parseDef3(e.innerType._def,t);const a=parseDef3(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","1"]});return a?{anyOf:[{not:parseAnyDef3()},a]}:parseAnyDef3()},parsePipelineDef3=(e,t)=>{if("input"===t.pipeStrategy)return parseDef3(e.in._def,t);if("output"===t.pipeStrategy)return parseDef3(e.out._def,t);const r=parseDef3(e.in._def,{...t,currentPath:[...t.currentPath,"allOf","0"]});return{allOf:[r,parseDef3(e.out._def,{...t,currentPath:[...t.currentPath,"allOf",r?"1":"0"]})].filter((e=>void 0!==e))}};function parsePromiseDef3(e,t){return parseDef3(e.type._def,t)}function parseSetDef3(e,t){const r={type:"array",uniqueItems:!0,items:parseDef3(e.valueType._def,{...t,currentPath:[...t.currentPath,"items"]})};return e.minSize&&(r.minItems=e.minSize.value),e.maxSize&&(r.maxItems=e.maxSize.value),r}function parseTupleDef3(e,t){return e.rest?{type:"array",minItems:e.items.length,items:e.items.map(((e,r)=>parseDef3(e._def,{...t,currentPath:[...t.currentPath,"items",`${r}`]}))).reduce(((e,t)=>void 0===t?e:[...e,t]),[]),additionalItems:parseDef3(e.rest._def,{...t,currentPath:[...t.currentPath,"additionalItems"]})}:{type:"array",minItems:e.items.length,maxItems:e.items.length,items:e.items.map(((e,r)=>parseDef3(e._def,{...t,currentPath:[...t.currentPath,"items",`${r}`]}))).reduce(((e,t)=>void 0===t?e:[...e,t]),[])}}function parseUndefinedDef3(){return{not:parseAnyDef3()}}function parseUnknownDef3(){return parseAnyDef3()}var parseReadonlyDef3=(e,t)=>parseDef3(e.innerType._def,t),selectParser3=(e,t,r)=>{switch(t){case ZodFirstPartyTypeKind.ZodString:return parseStringDef3(e,r);case ZodFirstPartyTypeKind.ZodNumber:return parseNumberDef3(e);case ZodFirstPartyTypeKind.ZodObject:return parseObjectDef3(e,r);case ZodFirstPartyTypeKind.ZodBigInt:return parseBigintDef3(e);case ZodFirstPartyTypeKind.ZodBoolean:return parseBooleanDef3();case ZodFirstPartyTypeKind.ZodDate:return parseDateDef3(e,r);case ZodFirstPartyTypeKind.ZodUndefined:return parseUndefinedDef3();case ZodFirstPartyTypeKind.ZodNull:return parseNullDef3();case ZodFirstPartyTypeKind.ZodArray:return parseArrayDef3(e,r);case ZodFirstPartyTypeKind.ZodUnion:case ZodFirstPartyTypeKind.ZodDiscriminatedUnion:return parseUnionDef3(e,r);case ZodFirstPartyTypeKind.ZodIntersection:return parseIntersectionDef3(e,r);case ZodFirstPartyTypeKind.ZodTuple:return parseTupleDef3(e,r);case ZodFirstPartyTypeKind.ZodRecord:return parseRecordDef3(e,r);case ZodFirstPartyTypeKind.ZodLiteral:return parseLiteralDef3(e);case ZodFirstPartyTypeKind.ZodEnum:return parseEnumDef3(e);case ZodFirstPartyTypeKind.ZodNativeEnum:return parseNativeEnumDef3(e);case ZodFirstPartyTypeKind.ZodNullable:return parseNullableDef3(e,r);case ZodFirstPartyTypeKind.ZodOptional:return parseOptionalDef3(e,r);case ZodFirstPartyTypeKind.ZodMap:return parseMapDef3(e,r);case ZodFirstPartyTypeKind.ZodSet:return parseSetDef3(e,r);case ZodFirstPartyTypeKind.ZodLazy:return()=>e.getter()._def;case ZodFirstPartyTypeKind.ZodPromise:return parsePromiseDef3(e,r);case ZodFirstPartyTypeKind.ZodNaN:case ZodFirstPartyTypeKind.ZodNever:return parseNeverDef3();case ZodFirstPartyTypeKind.ZodEffects:return parseEffectsDef3(e,r);case ZodFirstPartyTypeKind.ZodAny:return parseAnyDef3();case ZodFirstPartyTypeKind.ZodUnknown:return parseUnknownDef3();case ZodFirstPartyTypeKind.ZodDefault:return parseDefaultDef3(e,r);case ZodFirstPartyTypeKind.ZodBranded:return parseBrandedDef3(e,r);case ZodFirstPartyTypeKind.ZodReadonly:return parseReadonlyDef3(e,r);case ZodFirstPartyTypeKind.ZodCatch:return parseCatchDef3(e,r);case ZodFirstPartyTypeKind.ZodPipeline:return parsePipelineDef3(e,r);case ZodFirstPartyTypeKind.ZodFunction:case ZodFirstPartyTypeKind.ZodVoid:case ZodFirstPartyTypeKind.ZodSymbol:default:return}},getRelativePath3=(e,t)=>{let r=0;for(;r<e.length&&r<t.length&&e[r]===t[r];r++);return[(e.length-r).toString(),...t.slice(r)].join("/")};function parseDef3(e,t,r=!1){var a;const n=t.seen.get(e);if(t.override){const o=null==(a=t.override)?void 0:a.call(t,e,t,n,r);if(o!==ignoreOverride3)return o}if(n&&!r){const e=get$ref3(n,t);if(void 0!==e)return e}const o={def:e,path:t.currentPath,jsonSchema:void 0};t.seen.set(e,o);const s=selectParser3(e,e.typeName,t),i="function"==typeof s?parseDef3(s(),t):s;if(i&&addMeta3(e,t,i),t.postProcess){const r=t.postProcess(i,e,t);return o.jsonSchema=i,r}return o.jsonSchema=i,i}var get$ref3=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:getRelativePath3(t.currentPath,e.path)};case"none":case"seen":return e.path.length<t.currentPath.length&&e.path.every(((e,r)=>t.currentPath[r]===e))?(console.warn(`Recursive reference detected at ${t.currentPath.join("/")}! Defaulting to any`),parseAnyDef3()):"seen"===t.$refStrategy?parseAnyDef3():void 0}},addMeta3=(e,t,r)=>(e.description&&(r.description=e.description),r),getRefs3=e=>{const t=getDefaultOptions3(e),r=void 0!==t.name?[...t.basePath,t.definitionPath,t.name]:t.basePath;return{...t,currentPath:r,propertyPath:void 0,seen:new Map(Object.entries(t.definitions).map((([e,r])=>[r._def,{def:r._def,path:[...t.basePath,t.definitionPath,e],jsonSchema:void 0}])))}},zod3ToJsonSchema=(e,t)=>{var r;const a=getRefs3(t);let n="object"==typeof t&&t.definitions?Object.entries(t.definitions).reduce(((e,[t,r])=>{var n;return{...e,[t]:null!=(n=parseDef3(r._def,{...a,currentPath:[...a.basePath,a.definitionPath,t]},!0))?n:parseAnyDef3()}}),{}):void 0;const o="string"==typeof t?t:"title"===(null==t?void 0:t.nameStrategy)||null==t?void 0:t.name,s=null!=(r=parseDef3(e._def,void 0===o?a:{...a,currentPath:[...a.basePath,a.definitionPath,o]},!1))?r:parseAnyDef3(),i="object"==typeof t&&void 0!==t.name&&"title"===t.nameStrategy?t.name:void 0;void 0!==i&&(s.title=i);const c=void 0===o?n?{...s,[a.definitionPath]:n}:s:{$ref:[..."relative"===a.$refStrategy?[]:a.basePath,a.definitionPath,o].join("/"),[a.definitionPath]:{...n,[o]:s}};return c.$schema="http://json-schema.org/draft-07/schema#",c},schemaSymbol3=Symbol.for("vercel.ai.schema");function lazySchema2(e){let t;return()=>(null==t&&(t=e()),t)}function jsonSchema3(e,{validate:t}={}){return{[schemaSymbol3]:!0,_type:void 0,get jsonSchema(){return"function"==typeof e&&(e=e()),e},validate:t}}function isSchema3(e){return"object"==typeof e&&null!==e&&schemaSymbol3 in e&&!0===e[schemaSymbol3]&&"jsonSchema"in e&&"validate"in e}function asSchema3(e){return null==e?jsonSchema3({properties:{},additionalProperties:!1}):isSchema3(e)?e:"~standard"in e?"zod"===e["~standard"].vendor?zodSchema3(e):standardSchema(e):e()}function standardSchema(e){return jsonSchema3((()=>addAdditionalPropertiesToJsonSchema2(e["~standard"].jsonSchema.input({target:"draft-07"}))),{validate:async t=>{const r=await e["~standard"].validate(t);return"value"in r?{success:!0,value:r.value}:{success:!1,error:new TypeValidationError3({value:t,cause:r.issues})}}})}function zod3Schema2(e,t){const r=null!=void 0&&undefined;return jsonSchema3((()=>zod3ToJsonSchema(e,{$refStrategy:r?"root":"none"})),{validate:async t=>{const r=await e.safeParseAsync(t);return r.success?{success:!0,value:r.data}:{success:!1,error:r.error}}})}function zod4Schema2(e,t){const r=null!=void 0&&undefined;return jsonSchema3((()=>addAdditionalPropertiesToJsonSchema2(z4.toJSONSchema(e,{target:"draft-7",io:"input",reused:r?"ref":"inline"}))),{validate:async t=>{const r=await z4.safeParseAsync(e,t);return r.success?{success:!0,value:r.data}:{success:!1,error:r.error}}})}function isZod4Schema2(e){return"_zod"in e}function zodSchema3(e,t){return isZod4Schema2(e)?zod4Schema2(e):zod3Schema2(e)}async function validateTypes2({value:e,schema:t,context:r}){const a=await safeValidateTypes3({value:e,schema:t,context:r});if(!a.success)throw TypeValidationError3.wrap({value:e,cause:a.error,context:r});return a.value}async function safeValidateTypes3({value:e,schema:t,context:r}){const a=asSchema3(t);try{if(null==a.validate)return{success:!0,value:e,rawValue:e};const t=await a.validate(e);return t.success?{success:!0,value:t.value,rawValue:e}:{success:!1,error:TypeValidationError3.wrap({value:e,cause:t.error,context:r}),rawValue:e}}catch(t){return{success:!1,error:TypeValidationError3.wrap({value:e,cause:t,context:r}),rawValue:e}}}async function parseJSON2({text:e,schema:t}){try{const r=secureJsonParse2(e);return null==t?r:validateTypes2({value:r,schema:t})}catch(t){if(JSONParseError3.isInstance(t)||TypeValidationError3.isInstance(t))throw t;throw new JSONParseError3({text:e,cause:t})}}async function safeParseJSON3({text:e,schema:t}){try{const r=secureJsonParse2(e);return null==t?{success:!0,value:r,rawValue:r}:await safeValidateTypes3({value:r,schema:t})}catch(t){return{success:!1,error:JSONParseError3.isInstance(t)?t:new JSONParseError3({text:e,cause:t}),rawValue:void 0}}}function parseJsonEventStream2({stream:e,schema:t}){return e.pipeThrough(new TextDecoderStream).pipeThrough(new EventSourceParserStream2).pipeThrough(new TransformStream({async transform({data:e},r){"[DONE]"!==e&&r.enqueue(await safeParseJSON3({text:e,schema:t}))}}))}var getOriginalFetch22=()=>globalThis.fetch,postJsonToApi2=async({url:e,headers:t,body:r,failedResponseHandler:a,successfulResponseHandler:n,abortSignal:o,fetch:s})=>postToApi2({url:e,headers:{"Content-Type":"application/json",...t},body:{content:JSON.stringify(r),values:r},failedResponseHandler:a,successfulResponseHandler:n,abortSignal:o,fetch:s}),postToApi2=async({url:e,headers:t={},body:r,successfulResponseHandler:a,failedResponseHandler:n,abortSignal:o,fetch:s=getOriginalFetch22()})=>{try{const i=await s(e,{method:"POST",headers:withUserAgentSuffix2(t,`ai-sdk/provider-utils/${VERSION4}`,getRuntimeEnvironmentUserAgent2()),body:r.content,signal:o}),c=extractResponseHeaders2(i);if(!i.ok){let t;try{t=await n({response:i,url:e,requestBodyValues:r.values})}catch(t){if(isAbortError3(t)||APICallError3.isInstance(t))throw t;throw new APICallError3({message:"Failed to process error response",cause:t,statusCode:i.status,url:e,responseHeaders:c,requestBodyValues:r.values})}throw t.value}try{return await a({response:i,url:e,requestBodyValues:r.values})}catch(t){if(t instanceof Error&&(isAbortError3(t)||APICallError3.isInstance(t)))throw t;throw new APICallError3({message:"Failed to process successful response",cause:t,statusCode:i.status,url:e,responseHeaders:c,requestBodyValues:r.values})}}catch(t){throw handleFetchError2({error:t,url:e,requestBodyValues:r.values})}};function tool2(e){return e}function createProviderToolFactoryWithOutputSchema({id:e,inputSchema:t,outputSchema:r,supportsDeferredResults:a}){return({execute:n,needsApproval:o,toModelOutput:s,onInputStart:i,onInputDelta:c,onInputAvailable:l,...u})=>tool2({type:"provider",id:e,args:u,inputSchema:t,outputSchema:r,execute:n,needsApproval:o,toModelOutput:s,onInputStart:i,onInputDelta:c,onInputAvailable:l,supportsDeferredResults:a})}async function resolve2(e){return"function"==typeof e&&(e=e()),Promise.resolve(e)}var createJsonErrorResponseHandler2=({errorSchema:e,errorToMessage:t,isRetryable:r})=>async({response:a,url:n,requestBodyValues:o})=>{const s=await a.text(),i=extractResponseHeaders2(a);if(""===s.trim())return{responseHeaders:i,value:new APICallError3({message:a.statusText,url:n,requestBodyValues:o,statusCode:a.status,responseHeaders:i,responseBody:s,isRetryable:null==r?void 0:r(a)})};try{const c=await parseJSON2({text:s,schema:e});return{responseHeaders:i,value:new APICallError3({message:t(c),url:n,requestBodyValues:o,statusCode:a.status,responseHeaders:i,responseBody:s,data:c,isRetryable:null==r?void 0:r(a,c)})}}catch(e){return{responseHeaders:i,value:new APICallError3({message:a.statusText,url:n,requestBodyValues:o,statusCode:a.status,responseHeaders:i,responseBody:s,isRetryable:null==r?void 0:r(a)})}}},createEventSourceResponseHandler2=e=>async({response:t})=>{const r=extractResponseHeaders2(t);if(null==t.body)throw new EmptyResponseBodyError2({});return{responseHeaders:r,value:parseJsonEventStream2({stream:t.body,schema:e})}},createJsonResponseHandler2=e=>async({response:t,url:r,requestBodyValues:a})=>{const n=await t.text(),o=await safeParseJSON3({text:n,schema:e}),s=extractResponseHeaders2(t);if(!o.success)throw new APICallError3({message:"Invalid JSON response",cause:o.error,statusCode:t.status,responseHeaders:s,responseBody:n,url:r,requestBodyValues:a});return{responseHeaders:s,value:o.value,rawValue:o.rawValue}};function withoutTrailingSlash2(e){return null==e?void 0:e.replace(/\/$/,"")}var _a20,_b18,_a26,_b24,_a36,_b34,_a46,_b44,_a56,_b54,_a66,_b64,_a76,_b74,require_get_context2=__commonJS$1({"../../../node_modules/.pnpm/@vercel+oidc@3.1.0/node_modules/@vercel/oidc/dist/get-context.js"(e,t){var r,a=Object.defineProperty,n=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,s=Object.prototype.hasOwnProperty,i={};((e,t)=>{for(var r in t)a(e,r,{get:t[r],enumerable:!0})})(i,{SYMBOL_FOR_REQ_CONTEXT:()=>c,getContext:()=>l}),t.exports=(r=i,((e,t,r,i)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let c of o(t))s.call(e,c)||c===r||a(e,c,{get:()=>t[c],enumerable:!(i=n(t,c))||i.enumerable});return e})(a({},"__esModule",{value:!0}),r));var c=Symbol.for("@vercel/request-context");function l(){const e=globalThis;return e[c]?.get?.()??{}}}}),require_get_vercel_oidc_token2=__commonJS$1({"../../../node_modules/.pnpm/@vercel+oidc@3.1.0/node_modules/@vercel/oidc/dist/get-vercel-oidc-token.js"(e,t){var r,a=Object.defineProperty,n=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,s=Object.prototype.hasOwnProperty,i={};((e,t)=>{for(var r in t)a(e,r,{get:t[r],enumerable:!0})})(i,{getVercelOidcToken:()=>u,getVercelOidcTokenSync:()=>d}),t.exports=(r=i,((e,t,r,i)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let c of o(t))s.call(e,c)||c===r||a(e,c,{get:()=>t[c],enumerable:!(i=n(t,c))||i.enumerable});return e})(a({},"__esModule",{value:!0}),r));var c=require_get_context2(),l=require_token_error$1();async function u(){let e,t="";try{t=d()}catch(t){e=t}try{const[{getTokenPayload:e,isExpired:r},{refreshToken:a}]=await Promise.all([await import("./token-util-RMHT2CPJ-RJEA3FAN.js"),await import("./token-APYSY3BW-2DN6RAUY.js")]);t&&!r(e(t))||(await a(),t=d())}catch(t){let r=e instanceof Error?e.message:"";if(t instanceof Error&&(r=`${r}\n${t.message}`),r)throw new l.VercelOidcTokenError(r);throw t}return t}function d(){const e=(0,c.getContext)().headers?.["x-vercel-oidc-token"]??process.env.VERCEL_OIDC_TOKEN;if(!e)throw new Error("The 'x-vercel-oidc-token' header is missing from the request. Do you have the OIDC option enabled in the Vercel project settings?");return e}}}),require_dist2=__commonJS$1({"../../../node_modules/.pnpm/@vercel+oidc@3.1.0/node_modules/@vercel/oidc/dist/index.js"(e,t){var r,a=Object.defineProperty,n=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,s=Object.prototype.hasOwnProperty,i={};((e,t)=>{for(var r in t)a(e,r,{get:t[r],enumerable:!0})})(i,{getContext:()=>l.getContext,getVercelOidcToken:()=>c.getVercelOidcToken,getVercelOidcTokenSync:()=>c.getVercelOidcTokenSync}),t.exports=(r=i,((e,t,r,i)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let c of o(t))s.call(e,c)||c===r||a(e,c,{get:()=>t[c],enumerable:!(i=n(t,c))||i.enumerable});return e})(a({},"__esModule",{value:!0}),r));var c=require_get_vercel_oidc_token2(),l=require_get_context2()}}),import_oidc3=__toESM$1(require_dist2(),1),import_oidc22=__toESM$1(require_dist2(),1),marker20="vercel.ai.gateway.error",symbol20=Symbol.for(marker20),GatewayError2=class e extends(_b18=Error,_a20=symbol20,_b18){constructor({message:e,statusCode:t=500,cause:r,generationId:a}){super(a?`${e} [${a}]`:e),this[_a20]=!0,this.statusCode=t,this.cause=r,this.generationId=a}static isInstance(t){return e.hasMarker(t)}static hasMarker(e){return"object"==typeof e&&null!==e&&symbol20 in e&&!0===e[symbol20]}},name20="GatewayAuthenticationError",marker26=`vercel.ai.gateway.error.${name20}`,symbol26=Symbol.for(marker26),GatewayAuthenticationError2=class e extends(_b24=GatewayError2,_a26=symbol26,_b24){constructor({message:e="Authentication failed",statusCode:t=401,cause:r,generationId:a}={}){super({message:e,statusCode:t,cause:r,generationId:a}),this[_a26]=!0,this.name=name20,this.type="authentication_error"}static isInstance(e){return GatewayError2.hasMarker(e)&&symbol26 in e}static createContextualError({apiKeyProvided:t,oidcTokenProvided:r,message:a="Authentication failed",statusCode:n=401,cause:o,generationId:s}){let i;return i=t?"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.":r?"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":"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.",new e({message:i,statusCode:n,cause:o,generationId:s})}},name26="GatewayInvalidRequestError",marker36=`vercel.ai.gateway.error.${name26}`,symbol36=Symbol.for(marker36),GatewayInvalidRequestError2=class extends(_b34=GatewayError2,_a36=symbol36,_b34){constructor({message:e="Invalid request",statusCode:t=400,cause:r,generationId:a}={}){super({message:e,statusCode:t,cause:r,generationId:a}),this[_a36]=!0,this.name=name26,this.type="invalid_request_error"}static isInstance(e){return GatewayError2.hasMarker(e)&&symbol36 in e}},name36="GatewayRateLimitError",marker46=`vercel.ai.gateway.error.${name36}`,symbol46=Symbol.for(marker46),GatewayRateLimitError2=class extends(_b44=GatewayError2,_a46=symbol46,_b44){constructor({message:e="Rate limit exceeded",statusCode:t=429,cause:r,generationId:a}={}){super({message:e,statusCode:t,cause:r,generationId:a}),this[_a46]=!0,this.name=name36,this.type="rate_limit_exceeded"}static isInstance(e){return GatewayError2.hasMarker(e)&&symbol46 in e}},name46="GatewayModelNotFoundError",marker56=`vercel.ai.gateway.error.${name46}`,symbol56=Symbol.for(marker56),modelNotFoundParamSchema2=lazySchema2((()=>zodSchema3(z$1.object({modelId:z$1.string()})))),GatewayModelNotFoundError2=class extends(_b54=GatewayError2,_a56=symbol56,_b54){constructor({message:e="Model not found",statusCode:t=404,modelId:r,cause:a,generationId:n}={}){super({message:e,statusCode:t,cause:a,generationId:n}),this[_a56]=!0,this.name=name46,this.type="model_not_found",this.modelId=r}static isInstance(e){return GatewayError2.hasMarker(e)&&symbol56 in e}},name56="GatewayInternalServerError",marker66=`vercel.ai.gateway.error.${name56}`,symbol66=Symbol.for(marker66),GatewayInternalServerError2=class extends(_b64=GatewayError2,_a66=symbol66,_b64){constructor({message:e="Internal server error",statusCode:t=500,cause:r,generationId:a}={}){super({message:e,statusCode:t,cause:r,generationId:a}),this[_a66]=!0,this.name=name56,this.type="internal_server_error"}static isInstance(e){return GatewayError2.hasMarker(e)&&symbol66 in e}},name66="GatewayResponseError",marker76=`vercel.ai.gateway.error.${name66}`,symbol76=Symbol.for(marker76),GatewayResponseError2=class extends(_b74=GatewayError2,_a76=symbol76,_b74){constructor({message:e="Invalid response from Gateway",statusCode:t=502,response:r,validationError:a,cause:n,generationId:o}={}){super({message:e,statusCode:t,cause:n,generationId:o}),this[_a76]=!0,this.name=name66,this.type="response_error",this.response=r,this.validationError=a}static isInstance(e){return GatewayError2.hasMarker(e)&&symbol76 in e}};async function createGatewayErrorFromResponse2({response:e,statusCode:t,defaultMessage:r="Gateway request failed",cause:a,authMethod:n}){var o;const s=await safeValidateTypes3({value:e,schema:gatewayErrorResponseSchema2});if(!s.success){const n="object"==typeof e&&null!==e&&"generationId"in e?e.generationId:void 0;return new GatewayResponseError2({message:`Invalid error response format: ${r}`,statusCode:t,response:e,validationError:s.error,cause:a,generationId:n})}const i=s.value,c=i.error.type,l=i.error.message,u=null!=(o=i.generationId)?o:void 0;switch(c){case"authentication_error":return GatewayAuthenticationError2.createContextualError({apiKeyProvided:"api-key"===n,oidcTokenProvided:"oidc"===n,statusCode:t,cause:a,generationId:u});case"invalid_request_error":return new GatewayInvalidRequestError2({message:l,statusCode:t,cause:a,generationId:u});case"rate_limit_exceeded":return new GatewayRateLimitError2({message:l,statusCode:t,cause:a,generationId:u});case"model_not_found":{const e=await safeValidateTypes3({value:i.error.param,schema:modelNotFoundParamSchema2});return new GatewayModelNotFoundError2({message:l,statusCode:t,modelId:e.success?e.value.modelId:void 0,cause:a,generationId:u})}default:return new GatewayInternalServerError2({message:l,statusCode:t,cause:a,generationId:u})}}var _a86,_b84,gatewayErrorResponseSchema2=lazySchema2((()=>zodSchema3(z$1.object({error:z$1.object({message:z$1.string(),type:z$1.string().nullish(),param:z$1.unknown().nullish(),code:z$1.union([z$1.string(),z$1.number()]).nullish()}),generationId:z$1.string().nullish()})))),name76="GatewayTimeoutError",marker86=`vercel.ai.gateway.error.${name76}`,symbol86=Symbol.for(marker86),GatewayTimeoutError2=class e extends(_b84=GatewayError2,_a86=symbol86,_b84){constructor({message:e="Request timed out",statusCode:t=408,cause:r,generationId:a}={}){super({message:e,statusCode:t,cause:r,generationId:a}),this[_a86]=!0,this.name=name76,this.type="timeout_error"}static isInstance(e){return GatewayError2.hasMarker(e)&&symbol86 in e}static createTimeoutError({originalMessage:t,statusCode:r=408,cause:a,generationId:n}){return new e({message:`Gateway request timed out: ${t}\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`,statusCode:r,cause:a,generationId:n})}};function isTimeoutError2(e){if(!(e instanceof Error))return!1;const t=e.code;if("string"==typeof t){return["UND_ERR_HEADERS_TIMEOUT","UND_ERR_BODY_TIMEOUT","UND_ERR_CONNECT_TIMEOUT"].includes(t)}return!1}async function asGatewayError2(e,t){var r;return GatewayError2.isInstance(e)?e:isTimeoutError2(e)?GatewayTimeoutError2.createTimeoutError({originalMessage:e instanceof Error?e.message:"Unknown error",cause:e}):APICallError3.isInstance(e)?e.cause&&isTimeoutError2(e.cause)?GatewayTimeoutError2.createTimeoutError({originalMessage:e.message,cause:e}):await createGatewayErrorFromResponse2({response:extractApiCallResponse2(e),statusCode:null!=(r=e.statusCode)?r:500,defaultMessage:"Gateway request failed",cause:e,authMethod:t}):await createGatewayErrorFromResponse2({response:{},statusCode:500,defaultMessage:e instanceof Error?`Gateway request failed: ${e.message}`:"Unknown Gateway error",cause:e,authMethod:t})}function extractApiCallResponse2(e){if(void 0!==e.data)return e.data;if(null!=e.responseBody)try{return JSON.parse(e.responseBody)}catch(t){return e.responseBody}return{}}var GATEWAY_AUTH_METHOD_HEADER2="ai-gateway-auth-method";async function parseAuthMethod2(e){const t=await safeValidateTypes3({value:e[GATEWAY_AUTH_METHOD_HEADER2],schema:gatewayAuthMethodSchema2});return t.success?t.value:void 0}var gatewayAuthMethodSchema2=lazySchema2((()=>zodSchema3(z$1.union([z$1.literal("api-key"),z$1.literal("oidc")])))),GatewayFetchMetadata2=class{constructor(e){this.config=e}async getAvailableModels(){try{const{value:e}=await getFromApi2({url:`${this.config.baseURL}/config`,headers:await resolve2(this.config.headers()),successfulResponseHandler:createJsonResponseHandler2(gatewayAvailableModelsResponseSchema2),failedResponseHandler:createJsonErrorResponseHandler2({errorSchema:z$1.any(),errorToMessage:e=>e}),fetch:this.config.fetch});return e}catch(e){throw await asGatewayError2(e)}}async getCredits(){try{const e=new URL(this.config.baseURL),{value:t}=await getFromApi2({url:`${e.origin}/v1/credits`,headers:await resolve2(this.config.headers()),successfulResponseHandler:createJsonResponseHandler2(gatewayCreditsResponseSchema2),failedResponseHandler:createJsonErrorResponseHandler2({errorSchema:z$1.any(),errorToMessage:e=>e}),fetch:this.config.fetch});return t}catch(e){throw await asGatewayError2(e)}}},gatewayAvailableModelsResponseSchema2=lazySchema2((()=>zodSchema3(z$1.object({models:z$1.array(z$1.object({id:z$1.string(),name:z$1.string(),description:z$1.string().nullish(),pricing:z$1.object({input:z$1.string(),output:z$1.string(),input_cache_read:z$1.string().nullish(),input_cache_write:z$1.string().nullish()}).transform((({input:e,output:t,input_cache_read:r,input_cache_write:a})=>({input:e,output:t,...r?{cachedInputTokens:r}:{},...a?{cacheCreationInputTokens:a}:{}}))).nullish(),specification:z$1.object({specificationVersion:z$1.literal("v3"),provider:z$1.string(),modelId:z$1.string()}),modelType:z$1.enum(["embedding","image","language","video"]).nullish()}))})))),gatewayCreditsResponseSchema2=lazySchema2((()=>zodSchema3(z$1.object({balance:z$1.string(),total_used:z$1.string()}).transform((({balance:e,total_used:t})=>({balance:e,totalUsed:t})))))),GatewayLanguageModel2=class{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion="v3",this.supportedUrls={"*/*":[/.*/]}}get provider(){return this.config.provider}async getArgs(e){const{abortSignal:t,...r}=e;return{args:this.maybeEncodeFileParts(r),warnings:[]}}async doGenerate(e){const{args:t,warnings:r}=await this.getArgs(e),{abortSignal:a}=e,n=await resolve2(this.config.headers());try{const{responseHeaders:o,value:s,rawValue:i}=await postJsonToApi2({url:this.getUrl(),headers:combineHeaders2(n,e.headers,this.getModelConfigHeaders(this.modelId,!1),await resolve2(this.config.o11yHeaders)),body:t,successfulResponseHandler:createJsonResponseHandler2(z$1.any()),failedResponseHandler:createJsonErrorResponseHandler2({errorSchema:z$1.any(),errorToMessage:e=>e}),...a&&{abortSignal:a},fetch:this.config.fetch});return{...s,request:{body:t},response:{headers:o,body:i},warnings:r}}catch(e){throw await asGatewayError2(e,await parseAuthMethod2(n))}}async doStream(e){const{args:t,warnings:r}=await this.getArgs(e),{abortSignal:a}=e,n=await resolve2(this.config.headers());try{const{value:o,responseHeaders:s}=await postJsonToApi2({url:this.getUrl(),headers:combineHeaders2(n,e.headers,this.getModelConfigHeaders(this.modelId,!0),await resolve2(this.config.o11yHeaders)),body:t,successfulResponseHandler:createEventSourceResponseHandler2(z$1.any()),failedResponseHandler:createJsonErrorResponseHandler2({errorSchema:z$1.any(),errorToMessage:e=>e}),...a&&{abortSignal:a},fetch:this.config.fetch});return{stream:o.pipeThrough(new TransformStream({start(e){r.length>0&&e.enqueue({type:"stream-start",warnings:r})},transform(t,r){if(t.success){const a=t.value;if("raw"===a.type&&!e.includeRawChunks)return;"response-metadata"===a.type&&a.timestamp&&"string"==typeof a.timestamp&&(a.timestamp=new Date(a.timestamp)),r.enqueue(a)}else r.error(t.error)}})),request:{body:t},response:{headers:s}}}catch(e){throw await asGatewayError2(e,await parseAuthMethod2(n))}}isFilePart(e){return e&&"object"==typeof e&&"type"in e&&"file"===e.type}maybeEncodeFileParts(e){for(const t of e.prompt)for(const e of t.content)if(this.isFilePart(e)){const t=e;if(t.data instanceof Uint8Array){const e=Uint8Array.from(t.data),r=Buffer.from(e).toString("base64");t.data=new URL(`data:${t.mediaType||"application/octet-stream"};base64,${r}`)}}return e}getUrl(){return`${this.config.baseURL}/language-model`}getModelConfigHeaders(e,t){return{"ai-language-model-specification-version":"3","ai-language-model-id":e,"ai-language-model-streaming":String(t)}}},GatewayEmbeddingModel2=class{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion="v3",this.maxEmbeddingsPerCall=2048,this.supportsParallelCalls=!0}get provider(){return this.config.provider}async doEmbed({values:e,headers:t,abortSignal:r,providerOptions:a}){var n;const o=await resolve2(this.config.headers());try{const{responseHeaders:s,value:i,rawValue:c}=await postJsonToApi2({url:this.getUrl(),headers:combineHeaders2(o,null!=t?t:{},this.getModelConfigHeaders(),await resolve2(this.config.o11yHeaders)),body:{values:e,...a?{providerOptions:a}:{}},successfulResponseHandler:createJsonResponseHandler2(gatewayEmbeddingResponseSchema2),failedResponseHandler:createJsonErrorResponseHandler2({errorSchema:z$1.any(),errorToMessage:e=>e}),...r&&{abortSignal:r},fetch:this.config.fetch});return{embeddings:i.embeddings,usage:null!=(n=i.usage)?n:void 0,providerMetadata:i.providerMetadata,response:{headers:s,body:c},warnings:[]}}catch(e){throw await asGatewayError2(e,await parseAuthMethod2(o))}}getUrl(){return`${this.config.baseURL}/embedding-model`}getModelConfigHeaders(){return{"ai-embedding-model-specification-version":"3","ai-model-id":this.modelId}}},gatewayEmbeddingResponseSchema2=lazySchema2((()=>zodSchema3(z$1.object({embeddings:z$1.array(z$1.array(z$1.number())),usage:z$1.object({tokens:z$1.number()}).nullish(),providerMetadata:z$1.record(z$1.string(),z$1.record(z$1.string(),z$1.unknown())).optional()})))),GatewayImageModel2=class{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion="v3",this.maxImagesPerCall=Number.MAX_SAFE_INTEGER}get provider(){return this.config.provider}async doGenerate({prompt:e,n:t,size:r,aspectRatio:a,seed:n,files:o,mask:s,providerOptions:i,headers:c,abortSignal:l}){var u,d,p,m;const f=await resolve2(this.config.headers());try{const{responseHeaders:g,value:h}=await postJsonToApi2({url:this.getUrl(),headers:combineHeaders2(f,null!=c?c:{},this.getModelConfigHeaders(),await resolve2(this.config.o11yHeaders)),body:{prompt:e,n:t,...r&&{size:r},...a&&{aspectRatio:a},...n&&{seed:n},...i&&{providerOptions:i},...o&&{files:o.map((e=>maybeEncodeImageFile(e)))},...s&&{mask:maybeEncodeImageFile(s)}},successfulResponseHandler:createJsonResponseHandler2(gatewayImageResponseSchema2),failedResponseHandler:createJsonErrorResponseHandler2({errorSchema:z$1.any(),errorToMessage:e=>e}),...l&&{abortSignal:l},fetch:this.config.fetch});return{images:h.images,warnings:null!=(u=h.warnings)?u:[],providerMetadata:h.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:g},...null!=h.usage&&{usage:{inputTokens:null!=(d=h.usage.inputTokens)?d:void 0,outputTokens:null!=(p=h.usage.outputTokens)?p:void 0,totalTokens:null!=(m=h.usage.totalTokens)?m:void 0}}}}catch(e){throw await asGatewayError2(e,await parseAuthMethod2(f))}}getUrl(){return`${this.config.baseURL}/image-model`}getModelConfigHeaders(){return{"ai-image-model-specification-version":"3","ai-model-id":this.modelId}}};function maybeEncodeImageFile(e){return"file"===e.type&&e.data instanceof Uint8Array?{...e,data:convertUint8ArrayToBase643(e.data)}:e}var providerMetadataEntrySchema2=z$1.object({images:z$1.array(z$1.unknown()).optional()}).catchall(z$1.unknown()),gatewayImageWarningSchema=z$1.discriminatedUnion("type",[z$1.object({type:z$1.literal("unsupported"),feature:z$1.string(),details:z$1.string().optional()}),z$1.object({type:z$1.literal("compatibility"),feature:z$1.string(),details:z$1.string().optional()}),z$1.object({type:z$1.literal("other"),message:z$1.string()})]),gatewayImageUsageSchema2=z$1.object({inputTokens:z$1.number().nullish(),outputTokens:z$1.number().nullish(),totalTokens:z$1.number().nullish()}),gatewayImageResponseSchema2=z$1.object({images:z$1.array(z$1.string()),warnings:z$1.array(gatewayImageWarningSchema).optional(),providerMetadata:z$1.record(z$1.string(),providerMetadataEntrySchema2).optional(),usage:gatewayImageUsageSchema2.optional()}),GatewayVideoModel=class{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion="v3",this.maxVideosPerCall=Number.MAX_SAFE_INTEGER}get provider(){return this.config.provider}async doGenerate({prompt:e,n:t,aspectRatio:r,resolution:a,duration:n,fps:o,seed:s,image:i,providerOptions:c,headers:l,abortSignal:u}){var d;const p=await resolve2(this.config.headers());try{const{responseHeaders:m,value:f}=await postJsonToApi2({url:this.getUrl(),headers:combineHeaders2(p,null!=l?l:{},this.getModelConfigHeaders(),await resolve2(this.config.o11yHeaders),{accept:"text/event-stream"}),body:{prompt:e,n:t,...r&&{aspectRatio:r},...a&&{resolution:a},...n&&{duration:n},...o&&{fps:o},...s&&{seed:s},...c&&{providerOptions:c},...i&&{image:maybeEncodeVideoFile(i)}},successfulResponseHandler:async({response:e,url:t,requestBodyValues:r})=>{if(null==e.body)throw new APICallError3({message:"SSE response body is empty",url:t,requestBodyValues:r,statusCode:e.status});const a=parseJsonEventStream2({stream:e.body,schema:gatewayVideoEventSchema}).getReader(),{done:n,value:o}=await a.read();if(a.releaseLock(),n||!o)throw new APICallError3({message:"SSE stream ended without a data event",url:t,requestBodyValues:r,statusCode:e.status});if(!o.success)throw new APICallError3({message:"Failed to parse video SSE event",cause:o.error,url:t,requestBodyValues:r,statusCode:e.status});const s=o.value;if("error"===s.type)throw new APICallError3({message:s.message,statusCode:s.statusCode,url:t,requestBodyValues:r,responseHeaders:Object.fromEntries([...e.headers]),responseBody:JSON.stringify(s),data:{error:{message:s.message,type:s.errorType,param:s.param}}});return{value:{videos:s.videos,warnings:s.warnings,providerMetadata:s.providerMetadata},responseHeaders:Object.fromEntries([...e.headers])}},failedResponseHandler:createJsonErrorResponseHandler2({errorSchema:z$1.any(),errorToMessage:e=>e}),...u&&{abortSignal:u},fetch:this.config.fetch});return{videos:f.videos,warnings:null!=(d=f.warnings)?d:[],providerMetadata:f.providerMetadata,response:{timestamp:new Date,modelId:this.modelId,headers:m}}}catch(e){throw await asGatewayError2(e,await parseAuthMethod2(p))}}getUrl(){return`${this.config.baseURL}/video-model`}getModelConfigHeaders(){return{"ai-video-model-specification-version":"3","ai-model-id":this.modelId}}};function maybeEncodeVideoFile(e){return"file"===e.type&&e.data instanceof Uint8Array?{...e,data:convertUint8ArrayToBase643(e.data)}:e}var providerMetadataEntrySchema22=z$1.object({videos:z$1.array(z$1.unknown()).optional()}).catchall(z$1.unknown()),gatewayVideoDataSchema=z$1.union([z$1.object({type:z$1.literal("url"),url:z$1.string(),mediaType:z$1.string()}),z$1.object({type:z$1.literal("base64"),data:z$1.string(),mediaType:z$1.string()})]),gatewayVideoWarningSchema=z$1.discriminatedUnion("type",[z$1.object({type:z$1.literal("unsupported"),feature:z$1.string(),details:z$1.string().optional()}),z$1.object({type:z$1.literal("compatibility"),feature:z$1.string(),details:z$1.string().optional()}),z$1.object({type:z$1.literal("other"),message:z$1.string()})]),gatewayVideoEventSchema=z$1.discriminatedUnion("type",[z$1.object({type:z$1.literal("result"),videos:z$1.array(gatewayVideoDataSchema),warnings:z$1.array(gatewayVideoWarningSchema).optional(),providerMetadata:z$1.record(z$1.string(),providerMetadataEntrySchema22).optional()}),z$1.object({type:z$1.literal("error"),message:z$1.string(),errorType:z$1.string(),statusCode:z$1.number(),param:z$1.unknown().nullable()})]),parallelSearchInputSchema2=lazySchema2((()=>zodSchema3(z.object({objective:z.string().describe("Natural-language description of the web research goal, including source or freshness guidance and broader context from the task. Maximum 5000 characters."),search_queries:z.array(z.string()).optional().describe("Optional search queries to supplement the objective. Maximum 200 characters per query."),mode:z.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.'),max_results:z.number().optional().describe("Maximum number of results to return (1-20). Defaults to 10 if not specified."),source_policy:z.object({include_domains:z.array(z.string()).optional().describe("List of domains to include in search results."),exclude_domains:z.array(z.string()).optional().describe("List of domains to exclude from search results."),after_date:z.string().optional().describe("Only include results published after this date (ISO 8601 format).")}).optional().describe("Source policy for controlling which domains to include/exclude and freshness."),excerpts:z.object({max_chars_per_result:z.number().optional().describe("Maximum characters per result."),max_chars_total:z.number().optional().describe("Maximum total characters across all results.")}).optional().describe("Excerpt configuration for controlling result length."),fetch_policy:z.object({max_age_seconds:z.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.")})))),parallelSearchOutputSchema2=lazySchema2((()=>zodSchema3(z.union([z.object({searchId:z.string(),results:z.array(z.object({url:z.string(),title:z.string(),excerpt:z.string(),publishDate:z.string().nullable().optional(),relevanceScore:z.number().optional()}))}),z.object({error:z.enum(["api_error","rate_limit","timeout","invalid_input","configuration_error","unknown"]),statusCode:z.number().optional(),message:z.string()})])))),parallelSearchToolFactory2=createProviderToolFactoryWithOutputSchema({id:"gateway.parallel_search",inputSchema:parallelSearchInputSchema2,outputSchema:parallelSearchOutputSchema2}),parallelSearch2=(e={})=>parallelSearchToolFactory2(e),perplexitySearchInputSchema2=lazySchema2((()=>zodSchema3(z.object({query:z.union([z.string(),z.array(z.string())]).describe("Search query (string) or multiple queries (array of up to 5 strings). Multi-query searches return combined results from all queries."),max_results:z.number().optional().describe("Maximum number of search results to return (1-20, default: 10)"),max_tokens_per_page:z.number().optional().describe("Maximum number of tokens to extract per search result page (256-2048, default: 2048)"),max_tokens:z.number().optional().describe("Maximum total tokens across all search results (default: 25000, max: 1000000)"),country:z.string().optional().describe("Two-letter ISO 3166-1 alpha-2 country code for regional search results (e.g., 'US', 'GB', 'FR')"),search_domain_filter:z.array(z.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']"),search_language_filter:z.array(z.string()).optional().describe("List of ISO 639-1 language codes to filter results (max 10, lowercase). Examples: ['en', 'fr', 'de']"),search_after_date:z.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."),search_before_date:z.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."),last_updated_after_filter:z.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."),last_updated_before_filter:z.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."),search_recency_filter:z.enum(["day","week","month","year"]).optional().describe("Filter results by relative time period. Cannot be used with search_after_date or search_before_date.")})))),perplexitySearchOutputSchema2=lazySchema2((()=>zodSchema3(z.union([z.object({results:z.array(z.object({title:z.string(),url:z.string(),snippet:z.string(),date:z.string().optional(),lastUpdated:z.string().optional()})),id:z.string()}),z.object({error:z.enum(["api_error","rate_limit","timeout","invalid_input","unknown"]),statusCode:z.number().optional(),message:z.string()})])))),perplexitySearchToolFactory2=createProviderToolFactoryWithOutputSchema({id:"gateway.perplexity_search",inputSchema:perplexitySearchInputSchema2,outputSchema:perplexitySearchOutputSchema2}),perplexitySearch2=(e={})=>perplexitySearchToolFactory2(e),gatewayTools2={parallelSearch:parallelSearch2,perplexitySearch:perplexitySearch2};async function getVercelRequestId2(){var e;return null==(e=(0,import_oidc3.getContext)().headers)?void 0:e["x-vercel-id"]}var VERSION5="3.0.66",AI_GATEWAY_PROTOCOL_VERSION2="0.0.1";function createGatewayProvider2(e={}){var t,r;let a=null,n=null;const o=null!=(t=e.metadataCacheRefreshMillis)?t:3e5;let s=0;const i=null!=(r=withoutTrailingSlash2(e.baseURL))?r:"https://ai-gateway.vercel.sh/v3/ai",c=async()=>{try{const t=await getGatewayAuthToken2(e);return withUserAgentSuffix2({Authorization:`Bearer ${t.token}`,"ai-gateway-protocol-version":AI_GATEWAY_PROTOCOL_VERSION2,[GATEWAY_AUTH_METHOD_HEADER2]:t.authMethod,...e.headers},`ai-sdk/gateway/${VERSION5}`)}catch(e){throw GatewayAuthenticationError2.createContextualError({apiKeyProvided:!1,oidcTokenProvided:!1,statusCode:401,cause:e})}},l=()=>{const e=loadOptionalSetting2({settingValue:void 0,environmentVariableName:"VERCEL_DEPLOYMENT_ID"}),t=loadOptionalSetting2({settingValue:void 0,environmentVariableName:"VERCEL_ENV"}),r=loadOptionalSetting2({settingValue:void 0,environmentVariableName:"VERCEL_REGION"}),a=loadOptionalSetting2({settingValue:void 0,environmentVariableName:"VERCEL_PROJECT_ID"});return async()=>{const n=await getVercelRequestId2();return{...e&&{"ai-o11y-deployment-id":e},...t&&{"ai-o11y-environment":t},...r&&{"ai-o11y-region":r},...n&&{"ai-o11y-request-id":n},...a&&{"ai-o11y-project-id":a}}}},u=t=>new GatewayLanguageModel2(t,{provider:"gateway",baseURL:i,headers:c,fetch:e.fetch,o11yHeaders:l()}),d=function(e){if(new.target)throw new Error("The Gateway Provider model function cannot be called with the new keyword.");return u(e)};d.specificationVersion="v3",d.getAvailableModels=async()=>{var t,r,l;const u=null!=(l=null==(r=null==(t=e._internal)?void 0:t.currentDate)?void 0:r.call(t).getTime())?l:Date.now();return(!a||u-s>o)&&(s=u,a=new GatewayFetchMetadata2({baseURL:i,headers:c,fetch:e.fetch}).getAvailableModels().then((e=>(n=e,e))).catch((async e=>{throw await asGatewayError2(e,await parseAuthMethod2(await c()))}))),n?Promise.resolve(n):a},d.getCredits=async()=>new GatewayFetchMetadata2({baseURL:i,headers:c,fetch:e.fetch}).getCredits().catch((async e=>{throw await asGatewayError2(e,await parseAuthMethod2(await c()))})),d.imageModel=t=>new GatewayImageModel2(t,{provider:"gateway",baseURL:i,headers:c,fetch:e.fetch,o11yHeaders:l()}),d.languageModel=u;const p=t=>new GatewayEmbeddingModel2(t,{provider:"gateway",baseURL:i,headers:c,fetch:e.fetch,o11yHeaders:l()});return d.embeddingModel=p,d.textEmbeddingModel=p,d.videoModel=t=>new GatewayVideoModel(t,{provider:"gateway",baseURL:i,headers:c,fetch:e.fetch,o11yHeaders:l()}),d.chat=d.languageModel,d.embedding=d.embeddingModel,d.image=d.imageModel,d.video=d.videoModel,d.tools=gatewayTools2,d}var gateway2=createGatewayProvider2();async function getGatewayAuthToken2(e){const t=loadOptionalSetting2({settingValue:e.apiKey,environmentVariableName:"AI_GATEWAY_API_KEY"});if(t)return{token:t,authMethod:"api-key"};return{token:await(0,import_oidc22.getVercelOidcToken)(),authMethod:"oidc"}}var _globalThis3="object"==typeof globalThis?globalThis:global,VERSION23="1.9.0",re3=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function _makeCompatibilityCheck3(e){var t=new Set([e]),r=new Set,a=e.match(re3);if(!a)return function(){return!1};var n=+a[1],o=+a[2],s=+a[3];if(null!=a[4])return function(t){return t===e};function i(e){return r.add(e),!1}function c(e){return t.add(e),!0}return function(e){if(t.has(e))return!0;if(r.has(e))return!1;var a=e.match(re3);if(!a)return i(e);var l=+a[1],u=+a[2],d=+a[3];return null!=a[4]||n!==l?i(e):0===n?o===u&&s<=d?c(e):i(e):o<=u?c(e):i(e)}}var isCompatible3=_makeCompatibilityCheck3(VERSION23),major3=VERSION23.split(".")[0],GLOBAL_OPENTELEMETRY_API_KEY3=Symbol.for("opentelemetry.js.api."+major3),_global3=_globalThis3;function registerGlobal3(e,t,r,a){var n;void 0===a&&(a=!1);var o=_global3[GLOBAL_OPENTELEMETRY_API_KEY3]=null!==(n=_global3[GLOBAL_OPENTELEMETRY_API_KEY3])&&void 0!==n?n:{version:VERSION23};if(!a&&o[e]){var s=new Error("@opentelemetry/api: Attempted duplicate registration of API: "+e);return r.error(s.stack||s.message),!1}if(o.version!==VERSION23){s=new Error("@opentelemetry/api: Registration of version v"+o.version+" for "+e+" does not match previously registered API v"+VERSION23);return r.error(s.stack||s.message),!1}return o[e]=t,r.debug("@opentelemetry/api: Registered a global for "+e+" v"+VERSION23+"."),!0}function getGlobal3(e){var t,r,a=null===(t=_global3[GLOBAL_OPENTELEMETRY_API_KEY3])||void 0===t?void 0:t.version;if(a&&isCompatible3(a))return null===(r=_global3[GLOBAL_OPENTELEMETRY_API_KEY3])||void 0===r?void 0:r[e]}function unregisterGlobal3(e,t){t.debug("@opentelemetry/api: Unregistering a global for "+e+" v"+VERSION23+".");var r=_global3[GLOBAL_OPENTELEMETRY_API_KEY3];r&&delete r[e]}var DiagLogLevel3,__read6=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var a,n,o=r.call(e),s=[];try{for(;!(a=o.next()).done;)s.push(a.value)}catch(e){n={error:e}}finally{try{a&&!a.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}return s},__spreadArray6=function(e,t,r){if(2===arguments.length)for(var a,n=0,o=t.length;n<o;n++)!a&&n in t||(a||(a=Array.prototype.slice.call(t,0,n)),a[n]=t[n]);return e.concat(a||Array.prototype.slice.call(t))},DiagComponentLogger3=function(){function e(e){this._namespace=e.namespace||"DiagComponentLogger"}return e.prototype.debug=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return logProxy3("debug",this._namespace,e)},e.prototype.error=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return logProxy3("error",this._namespace,e)},e.prototype.info=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return logProxy3("info",this._namespace,e)},e.prototype.warn=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return logProxy3("warn",this._namespace,e)},e.prototype.verbose=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return logProxy3("verbose",this._namespace,e)},e}();function logProxy3(e,t,r){var a=getGlobal3("diag");if(a)return r.unshift(t),a[e].apply(a,__spreadArray6([],__read6(r),!1))}function createLogLevelDiagLogger3(e,t){function r(r,a){var n=t[r];return"function"==typeof n&&e>=a?n.bind(t):function(){}}return e<DiagLogLevel3.NONE?e=DiagLogLevel3.NONE:e>DiagLogLevel3.ALL&&(e=DiagLogLevel3.ALL),t=t||{},{error:r("error",DiagLogLevel3.ERROR),warn:r("warn",DiagLogLevel3.WARN),info:r("info",DiagLogLevel3.INFO),debug:r("debug",DiagLogLevel3.DEBUG),verbose:r("verbose",DiagLogLevel3.VERBOSE)}}!function(e){e[e.NONE=0]="NONE",e[e.ERROR=30]="ERROR",e[e.WARN=50]="WARN",e[e.INFO=60]="INFO",e[e.DEBUG=70]="DEBUG",e[e.VERBOSE=80]="VERBOSE",e[e.ALL=9999]="ALL"}(DiagLogLevel3||(DiagLogLevel3={}));var __read23=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var a,n,o=r.call(e),s=[];try{for(;!(a=o.next()).done;)s.push(a.value)}catch(e){n={error:e}}finally{try{a&&!a.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}return s},__spreadArray23=function(e,t,r){if(2===arguments.length)for(var a,n=0,o=t.length;n<o;n++)!a&&n in t||(a||(a=Array.prototype.slice.call(t,0,n)),a[n]=t[n]);return e.concat(a||Array.prototype.slice.call(t))},API_NAME5="diag",DiagAPI3=function(){function e(){function e(e){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var a=getGlobal3("diag");if(a)return a[e].apply(a,__spreadArray23([],__read23(t),!1))}}var t=this;t.setLogger=function(e,r){var a,n,o;if(void 0===r&&(r={logLevel:DiagLogLevel3.INFO}),e===t){var s=new Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return t.error(null!==(a=s.stack)&&void 0!==a?a:s.message),!1}"number"==typeof r&&(r={logLevel:r});var i=getGlobal3("diag"),c=createLogLevelDiagLogger3(null!==(n=r.logLevel)&&void 0!==n?n:DiagLogLevel3.INFO,e);if(i&&!r.suppressOverrideMessage){var l=null!==(o=(new Error).stack)&&void 0!==o?o:"<failed to generate stacktrace>";i.warn("Current logger will be overwritten from "+l),c.warn("Current logger will overwrite one already registered from "+l)}return registerGlobal3("diag",c,t,!0)},t.disable=function(){unregisterGlobal3(API_NAME5,t)},t.createComponentLogger=function(e){return new DiagComponentLogger3(e)},t.verbose=e("verbose"),t.debug=e("debug"),t.info=e("info"),t.warn=e("warn"),t.error=e("error")}return e.instance=function(){return this._instance||(this._instance=new e),this._instance},e}();function createContextKey3(e){return Symbol.for(e)}var TraceFlags3,BaseContext3=function(){return function e(t){var r=this;r._currentContext=t?new Map(t):new Map,r.getValue=function(e){return r._currentContext.get(e)},r.setValue=function(t,a){var n=new e(r._currentContext);return n._currentContext.set(t,a),n},r.deleteValue=function(t){var a=new e(r._currentContext);return a._currentContext.delete(t),a}}}(),ROOT_CONTEXT3=new BaseContext3,__read33=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var a,n,o=r.call(e),s=[];try{for(;!(a=o.next()).done;)s.push(a.value)}catch(e){n={error:e}}finally{try{a&&!a.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}return s},__spreadArray33=function(e,t,r){if(2===arguments.length)for(var a,n=0,o=t.length;n<o;n++)!a&&n in t||(a||(a=Array.prototype.slice.call(t,0,n)),a[n]=t[n]);return e.concat(a||Array.prototype.slice.call(t))},NoopContextManager3=function(){function e(){}return e.prototype.active=function(){return ROOT_CONTEXT3},e.prototype.with=function(e,t,r){for(var a=[],n=3;n<arguments.length;n++)a[n-3]=arguments[n];return t.call.apply(t,__spreadArray33([r],__read33(a),!1))},e.prototype.bind=function(e,t){return t},e.prototype.enable=function(){return this},e.prototype.disable=function(){return this},e}(),__read43=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var a,n,o=r.call(e),s=[];try{for(;!(a=o.next()).done;)s.push(a.value)}catch(e){n={error:e}}finally{try{a&&!a.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}return s},__spreadArray43=function(e,t,r){if(2===arguments.length)for(var a,n=0,o=t.length;n<o;n++)!a&&n in t||(a||(a=Array.prototype.slice.call(t,0,n)),a[n]=t[n]);return e.concat(a||Array.prototype.slice.call(t))},API_NAME23="context",NOOP_CONTEXT_MANAGER3=new NoopContextManager3,ContextAPI3=function(){function e(){}return e.getInstance=function(){return this._instance||(this._instance=new e),this._instance},e.prototype.setGlobalContextManager=function(e){return registerGlobal3(API_NAME23,e,DiagAPI3.instance())},e.prototype.active=function(){return this._getContextManager().active()},e.prototype.with=function(e,t,r){for(var a,n=[],o=3;o<arguments.length;o++)n[o-3]=arguments[o];return(a=this._getContextManager()).with.apply(a,__spreadArray43([e,t,r],__read43(n),!1))},e.prototype.bind=function(e,t){return this._getContextManager().bind(e,t)},e.prototype._getContextManager=function(){return getGlobal3(API_NAME23)||NOOP_CONTEXT_MANAGER3},e.prototype.disable=function(){this._getContextManager().disable(),unregisterGlobal3(API_NAME23,DiagAPI3.instance())},e}();!function(e){e[e.NONE=0]="NONE",e[e.SAMPLED=1]="SAMPLED"}(TraceFlags3||(TraceFlags3={}));var INVALID_SPANID3="0000000000000000",INVALID_TRACEID3="00000000000000000000000000000000",INVALID_SPAN_CONTEXT3={traceId:INVALID_TRACEID3,spanId:INVALID_SPANID3,traceFlags:TraceFlags3.NONE},NonRecordingSpan3=function(){function e(e){void 0===e&&(e=INVALID_SPAN_CONTEXT3),this._spanContext=e}return e.prototype.spanContext=function(){return this._spanContext},e.prototype.setAttribute=function(e,t){return this},e.prototype.setAttributes=function(e){return this},e.prototype.addEvent=function(e,t){return this},e.prototype.addLink=function(e){return this},e.prototype.addLinks=function(e){return this},e.prototype.setStatus=function(e){return this},e.prototype.updateName=function(e){return this},e.prototype.end=function(e){},e.prototype.isRecording=function(){return!1},e.prototype.recordException=function(e,t){},e}(),SPAN_KEY3=createContextKey3("OpenTelemetry Context Key SPAN");function getSpan3(e){return e.getValue(SPAN_KEY3)||void 0}function getActiveSpan3(){return getSpan3(ContextAPI3.getInstance().active())}function setSpan3(e,t){return e.setValue(SPAN_KEY3,t)}function deleteSpan3(e){return e.deleteValue(SPAN_KEY3)}function setSpanContext3(e,t){return setSpan3(e,new NonRecordingSpan3(t))}function getSpanContext3(e){var t;return null===(t=getSpan3(e))||void 0===t?void 0:t.spanContext()}var VALID_TRACEID_REGEX3=/^([0-9a-f]{32})$/i,VALID_SPANID_REGEX3=/^[0-9a-f]{16}$/i;function isValidTraceId3(e){return VALID_TRACEID_REGEX3.test(e)&&e!==INVALID_TRACEID3}function isValidSpanId3(e){return VALID_SPANID_REGEX3.test(e)&&e!==INVALID_SPANID3}function isSpanContextValid3(e){return isValidTraceId3(e.traceId)&&isValidSpanId3(e.spanId)}function wrapSpanContext3(e){return new NonRecordingSpan3(e)}var contextApi3=ContextAPI3.getInstance(),NoopTracer3=function(){function e(){}return e.prototype.startSpan=function(e,t,r){if(void 0===r&&(r=contextApi3.active()),Boolean(null==t?void 0:t.root))return new NonRecordingSpan3;var a=r&&getSpanContext3(r);return isSpanContext3(a)&&isSpanContextValid3(a)?new NonRecordingSpan3(a):new NonRecordingSpan3},e.prototype.startActiveSpan=function(e,t,r,a){var n,o,s;if(!(arguments.length<2)){2===arguments.length?s=t:3===arguments.length?(n=t,s=r):(n=t,o=r,s=a);var i=null!=o?o:contextApi3.active(),c=this.startSpan(e,n,i),l=setSpan3(i,c);return contextApi3.with(l,s,void 0,c)}},e}();function isSpanContext3(e){return"object"==typeof e&&"string"==typeof e.spanId&&"string"==typeof e.traceId&&"number"==typeof e.traceFlags}var SpanStatusCode3,NOOP_TRACER3=new NoopTracer3,ProxyTracer3=function(){function e(e,t,r,a){this._provider=e,this.name=t,this.version=r,this.options=a}return e.prototype.startSpan=function(e,t,r){return this._getTracer().startSpan(e,t,r)},e.prototype.startActiveSpan=function(e,t,r,a){var n=this._getTracer();return Reflect.apply(n.startActiveSpan,n,arguments)},e.prototype._getTracer=function(){if(this._delegate)return this._delegate;var e=this._provider.getDelegateTracer(this.name,this.version,this.options);return e?(this._delegate=e,this._delegate):NOOP_TRACER3},e}(),NoopTracerProvider3=function(){function e(){}return e.prototype.getTracer=function(e,t,r){return new NoopTracer3},e}(),NOOP_TRACER_PROVIDER3=new NoopTracerProvider3,ProxyTracerProvider3=function(){function e(){}return e.prototype.getTracer=function(e,t,r){var a;return null!==(a=this.getDelegateTracer(e,t,r))&&void 0!==a?a:new ProxyTracer3(this,e,t,r)},e.prototype.getDelegate=function(){var e;return null!==(e=this._delegate)&&void 0!==e?e:NOOP_TRACER_PROVIDER3},e.prototype.setDelegate=function(e){this._delegate=e},e.prototype.getDelegateTracer=function(e,t,r){var a;return null===(a=this._delegate)||void 0===a?void 0:a.getTracer(e,t,r)},e}();!function(e){e[e.UNSET=0]="UNSET",e[e.OK=1]="OK",e[e.ERROR=2]="ERROR"}(SpanStatusCode3||(SpanStatusCode3={}));var _a96,context=ContextAPI3.getInstance(),API_NAME33="trace",TraceAPI3=function(){function e(){this._proxyTracerProvider=new ProxyTracerProvider3,this.wrapSpanContext=wrapSpanContext3,this.isSpanContextValid=isSpanContextValid3,this.deleteSpan=deleteSpan3,this.getSpan=getSpan3,this.getActiveSpan=getActiveSpan3,this.getSpanContext=getSpanContext3,this.setSpan=setSpan3,this.setSpanContext=setSpanContext3}return e.getInstance=function(){return this._instance||(this._instance=new e),this._instance},e.prototype.setGlobalTracerProvider=function(e){var t=registerGlobal3(API_NAME33,this._proxyTracerProvider,DiagAPI3.instance());return t&&this._proxyTracerProvider.setDelegate(e),t},e.prototype.getTracerProvider=function(){return getGlobal3(API_NAME33)||this._proxyTracerProvider},e.prototype.getTracer=function(e,t){return this.getTracerProvider().getTracer(e,t)},e.prototype.disable=function(){unregisterGlobal3(API_NAME33,DiagAPI3.instance()),this._proxyTracerProvider=new ProxyTracerProvider3},e}(),trace3=TraceAPI3.getInstance(),__defProp4=Object.defineProperty,__export3=(e,t)=>{for(var r in t)__defProp4(e,r,{get:t[r],enumerable:!0})},name86="AI_InvalidArgumentError",marker96=`vercel.ai.error.${name86}`,symbol96=Symbol.for(marker96),InvalidArgumentError23=class extends AISDKError3{constructor({parameter:e,value:t,message:r}){super({name:name86,message:`Invalid argument for parameter ${e}: ${r}`}),this[_a96]=!0,this.parameter=e,this.value=t}static isInstance(e){return AISDKError3.hasMarker(e,marker96)}};_a96=symbol96;var _a823,name823="AI_NoObjectGeneratedError",marker823=`vercel.ai.error.${name823}`,symbol823=Symbol.for(marker823),NoObjectGeneratedError3=class extends AISDKError3{constructor({message:e="No object generated.",cause:t,text:r,response:a,usage:n,finishReason:o}){super({name:name823,message:e,cause:t}),this[_a823]=!0,this.text=r,this.response=a,this.usage=n,this.finishReason=o}static isInstance(e){return AISDKError3.hasMarker(e,marker823)}};_a823=symbol823;var _a192,UnsupportedModelVersionError3=class extends AISDKError3{constructor(e){super({name:"AI_UnsupportedModelVersionError",message:`Unsupported model version ${e.version} for provider "${e.provider}" and model "${e.modelId}". AI SDK 5 only supports models that implement specification version "v2".`}),this.version=e.version,this.provider=e.provider,this.modelId=e.modelId}},name192="AI_RetryError",marker192=`vercel.ai.error.${name192}`,symbol192=Symbol.for(marker192),RetryError3=class extends AISDKError3{constructor({message:e,reason:t,errors:r}){super({name:name192,message:e}),this[_a192]=!0,this.reason=t,this.errors=r,this.lastError=r[r.length-1]}static isInstance(e){return AISDKError3.hasMarker(e,marker192)}};function formatWarning({warning:e,provider:t,model:r}){const a=`AI SDK Warning (${t} / ${r}):`;switch(e.type){case"unsupported":{let t=`${a} The feature "${e.feature}" is not supported.`;return e.details&&(t+=` ${e.details}`),t}case"compatibility":{let t=`${a} The feature "${e.feature}" is used in a compatibility mode.`;return e.details&&(t+=` ${e.details}`),t}case"other":return`${a} ${e.message}`;default:return`${a} ${JSON.stringify(e,null,2)}`}}_a192=symbol192;var FIRST_WARNING_INFO_MESSAGE="AI SDK Warning System: To turn off warning logging, set the AI_SDK_LOG_WARNINGS global to false.",hasLoggedBefore=!1,logWarnings=e=>{if(0===e.warnings.length)return;const t=globalThis.AI_SDK_LOG_WARNINGS;if(!1!==t)if("function"!=typeof t){hasLoggedBefore||(hasLoggedBefore=!0,console.info(FIRST_WARNING_INFO_MESSAGE));for(const t of e.warnings)console.warn(formatWarning({warning:t,provider:e.provider,model:e.model}))}else t(e)};function logV2CompatibilityWarning({provider:e,modelId:t}){logWarnings({warnings:[{type:"compatibility",feature:"specificationVersion",details:"Using v2 specification compatibility mode. Some features may not be available."}],provider:e,model:t})}function asEmbeddingModelV3(e){return"v3"===e.specificationVersion?e:(logV2CompatibilityWarning({provider:e.provider,modelId:e.modelId}),new Proxy(e,{get:(e,t)=>"specificationVersion"===t?"v3":e[t]}))}function resolveEmbeddingModel2(e){if("string"!=typeof e){if("v3"!==e.specificationVersion&&"v2"!==e.specificationVersion){const t=e;throw new UnsupportedModelVersionError3({version:t.specificationVersion,provider:t.provider,modelId:t.modelId})}return asEmbeddingModelV3(e)}return getGlobalProvider2().embeddingModel(e)}function getGlobalProvider2(){var e;return null!=(e=globalThis.AI_SDK_DEFAULT_PROVIDER)?e:gateway2}function getTotalTimeoutMs(e){if(null!=e)return"number"==typeof e?e:e.totalMs}var VERSION33="6.0.116",dataContentSchema3=z$1.union([z$1.string(),z$1.instanceof(Uint8Array),z$1.instanceof(ArrayBuffer),z$1.custom((e=>{var t,r;return null!=(r=null==(t=globalThis.Buffer)?void 0:t.isBuffer(e))&&r}),{message:"Must be a Buffer"})]),jsonValueSchema3=z$1.lazy((()=>z$1.union([z$1.null(),z$1.string(),z$1.number(),z$1.boolean(),z$1.record(z$1.string(),jsonValueSchema3.optional()),z$1.array(jsonValueSchema3)]))),providerMetadataSchema3=z$1.record(z$1.string(),z$1.record(z$1.string(),jsonValueSchema3.optional())),textPartSchema3=z$1.object({type:z$1.literal("text"),text:z$1.string(),providerOptions:providerMetadataSchema3.optional()}),imagePartSchema3=z$1.object({type:z$1.literal("image"),image:z$1.union([dataContentSchema3,z$1.instanceof(URL)]),mediaType:z$1.string().optional(),providerOptions:providerMetadataSchema3.optional()}),filePartSchema3=z$1.object({type:z$1.literal("file"),data:z$1.union([dataContentSchema3,z$1.instanceof(URL)]),filename:z$1.string().optional(),mediaType:z$1.string(),providerOptions:providerMetadataSchema3.optional()}),reasoningPartSchema3=z$1.object({type:z$1.literal("reasoning"),text:z$1.string(),providerOptions:providerMetadataSchema3.optional()}),toolCallPartSchema3=z$1.object({type:z$1.literal("tool-call"),toolCallId:z$1.string(),toolName:z$1.string(),input:z$1.unknown(),providerOptions:providerMetadataSchema3.optional(),providerExecuted:z$1.boolean().optional()}),outputSchema2=z$1.discriminatedUnion("type",[z$1.object({type:z$1.literal("text"),value:z$1.string(),providerOptions:providerMetadataSchema3.optional()}),z$1.object({type:z$1.literal("json"),value:jsonValueSchema3,providerOptions:providerMetadataSchema3.optional()}),z$1.object({type:z$1.literal("execution-denied"),reason:z$1.string().optional(),providerOptions:providerMetadataSchema3.optional()}),z$1.object({type:z$1.literal("error-text"),value:z$1.string(),providerOptions:providerMetadataSchema3.optional()}),z$1.object({type:z$1.literal("error-json"),value:jsonValueSchema3,providerOptions:providerMetadataSchema3.optional()}),z$1.object({type:z$1.literal("content"),value:z$1.array(z$1.union([z$1.object({type:z$1.literal("text"),text:z$1.string(),providerOptions:providerMetadataSchema3.optional()}),z$1.object({type:z$1.literal("media"),data:z$1.string(),mediaType:z$1.string()}),z$1.object({type:z$1.literal("file-data"),data:z$1.string(),mediaType:z$1.string(),filename:z$1.string().optional(),providerOptions:providerMetadataSchema3.optional()}),z$1.object({type:z$1.literal("file-url"),url:z$1.string(),providerOptions:providerMetadataSchema3.optional()}),z$1.object({type:z$1.literal("file-id"),fileId:z$1.union([z$1.string(),z$1.record(z$1.string(),z$1.string())]),providerOptions:providerMetadataSchema3.optional()}),z$1.object({type:z$1.literal("image-data"),data:z$1.string(),mediaType:z$1.string(),providerOptions:providerMetadataSchema3.optional()}),z$1.object({type:z$1.literal("image-url"),url:z$1.string(),providerOptions:providerMetadataSchema3.optional()}),z$1.object({type:z$1.literal("image-file-id"),fileId:z$1.union([z$1.string(),z$1.record(z$1.string(),z$1.string())]),providerOptions:providerMetadataSchema3.optional()}),z$1.object({type:z$1.literal("custom"),providerOptions:providerMetadataSchema3.optional()})]))})]),toolResultPartSchema3=z$1.object({type:z$1.literal("tool-result"),toolCallId:z$1.string(),toolName:z$1.string(),output:outputSchema2,providerOptions:providerMetadataSchema3.optional()}),toolApprovalRequestSchema=z$1.object({type:z$1.literal("tool-approval-request"),approvalId:z$1.string(),toolCallId:z$1.string()}),toolApprovalResponseSchema=z$1.object({type:z$1.literal("tool-approval-response"),approvalId:z$1.string(),approved:z$1.boolean(),reason:z$1.string().optional()}),systemModelMessageSchema2=z$1.object({role:z$1.literal("system"),content:z$1.string(),providerOptions:providerMetadataSchema3.optional()}),userModelMessageSchema2=z$1.object({role:z$1.literal("user"),content:z$1.union([z$1.string(),z$1.array(z$1.union([textPartSchema3,imagePartSchema3,filePartSchema3]))]),providerOptions:providerMetadataSchema3.optional()}),assistantModelMessageSchema2=z$1.object({role:z$1.literal("assistant"),content:z$1.union([z$1.string(),z$1.array(z$1.union([textPartSchema3,filePartSchema3,reasoningPartSchema3,toolCallPartSchema3,toolResultPartSchema3,toolApprovalRequestSchema]))]),providerOptions:providerMetadataSchema3.optional()}),toolModelMessageSchema2=z$1.object({role:z$1.literal("tool"),content:z$1.array(z$1.union([toolResultPartSchema3,toolApprovalResponseSchema])),providerOptions:providerMetadataSchema3.optional()});function assembleOperationName3({operationId:e,telemetry:t}){return{"operation.name":`${e}${null!=(null==t?void 0:t.functionId)?` ${t.functionId}`:""}`,"resource.name":null==t?void 0:t.functionId,"ai.operationId":e,"ai.telemetry.functionId":null==t?void 0:t.functionId}}function getBaseTelemetryAttributes3({model:e,settings:t,telemetry:r,headers:a}){var n;return{"ai.model.provider":e.provider,"ai.model.id":e.modelId,...Object.entries(t).reduce(((e,[t,r])=>{if("timeout"===t){const a=getTotalTimeoutMs(r);null!=a&&(e[`ai.settings.${t}`]=a)}else e[`ai.settings.${t}`]=r;return e}),{}),...Object.entries(null!=(n=null==r?void 0:r.metadata)?n:{}).reduce(((e,[t,r])=>(e[`ai.telemetry.metadata.${t}`]=r,e)),{}),...Object.entries(null!=a?a:{}).reduce(((e,[t,r])=>(void 0!==r&&(e[`ai.request.headers.${t}`]=r),e)),{})}}z$1.union([systemModelMessageSchema2,userModelMessageSchema2,assistantModelMessageSchema2,toolModelMessageSchema2]);var noopTracer3={startSpan:()=>noopSpan3,startActiveSpan:(e,t,r,a)=>"function"==typeof t?t(noopSpan3):"function"==typeof r?r(noopSpan3):"function"==typeof a?a(noopSpan3):void 0},noopSpan3={spanContext:()=>noopSpanContext3,setAttribute(){return this},setAttributes(){return this},addEvent(){return this},addLink(){return this},addLinks(){return this},setStatus(){return this},updateName(){return this},end(){return this},isRecording:()=>!1,recordException(){return this}},noopSpanContext3={traceId:"",spanId:"",traceFlags:0};function getTracer3({isEnabled:e=!1,tracer:t}={}){return e?t||trace3.getTracer("ai"):noopTracer3}async function recordSpan3({name:e,tracer:t,attributes:r,fn:a,endWhenDone:n=!0}){return t.startActiveSpan(e,{attributes:await r},(async e=>{const t=context.active();try{const r=await context.with(t,(()=>a(e)));return n&&e.end(),r}catch(t){try{recordErrorOnSpan3(e,t)}finally{e.end()}throw t}}))}function recordErrorOnSpan3(e,t){t instanceof Error?(e.recordException({name:t.name,message:t.message,stack:t.stack}),e.setStatus({code:SpanStatusCode3.ERROR,message:t.message})):e.setStatus({code:SpanStatusCode3.ERROR})}async function selectTelemetryAttributes3({telemetry:e,attributes:t}){if(!0!==(null==e?void 0:e.isEnabled))return{};const r={};for(const[a,n]of Object.entries(t))if(null!=n)if("object"==typeof n&&"input"in n&&"function"==typeof n.input){if(!1===(null==e?void 0:e.recordInputs))continue;const t=await n.input();null!=t&&(r[a]=t)}else if("object"==typeof n&&"output"in n&&"function"==typeof n.output){if(!1===(null==e?void 0:e.recordOutputs))continue;const t=await n.output();null!=t&&(r[a]=t)}else r[a]=n;return r}function getRetryDelayInMs2({error:e,exponentialBackoffDelay:t}){const r=e.responseHeaders;if(!r)return t;let a;const n=r["retry-after-ms"];if(n){const e=parseFloat(n);Number.isNaN(e)||(a=e)}const o=r["retry-after"];if(o&&void 0===a){const e=parseFloat(o);a=Number.isNaN(e)?Date.parse(o)-Date.now():1e3*e}return null!=a&&!Number.isNaN(a)&&0<=a&&(a<6e4||a<t)?a:t}var retryWithExponentialBackoffRespectingRetryHeaders2=({maxRetries:e=2,initialDelayInMs:t=2e3,backoffFactor:r=2,abortSignal:a}={})=>async n=>_retryWithExponentialBackoff3(n,{maxRetries:e,delayInMs:t,backoffFactor:r,abortSignal:a});async function _retryWithExponentialBackoff3(e,{maxRetries:t,delayInMs:r,backoffFactor:a,abortSignal:n},o=[]){try{return await e()}catch(s){if(isAbortError3(s))throw s;if(0===t)throw s;const i=getErrorMessage23(s),c=[...o,s],l=c.length;if(l>t)throw new RetryError3({message:`Failed after ${l} attempts. Last error: ${i}`,reason:"maxRetriesExceeded",errors:c});if(s instanceof Error&&APICallError3.isInstance(s)&&!0===s.isRetryable&&l<=t)return await delay3(getRetryDelayInMs2({error:s,exponentialBackoffDelay:r}),{abortSignal:n}),_retryWithExponentialBackoff3(e,{maxRetries:t,delayInMs:a*r,backoffFactor:a,abortSignal:n},c);if(1===l)throw s;throw new RetryError3({message:`Failed after ${l} attempts with non-retryable error: '${i}'`,reason:"errorNotRetryable",errors:c})}}function prepareRetries3({maxRetries:e,abortSignal:t}){if(null!=e){if(!Number.isInteger(e))throw new InvalidArgumentError23({parameter:"maxRetries",value:e,message:"maxRetries must be an integer"});if(e<0)throw new InvalidArgumentError23({parameter:"maxRetries",value:e,message:"maxRetries must be >= 0"})}const r=null!=e?e:2;return{maxRetries:r,retry:retryWithExponentialBackoffRespectingRetryHeaders2({maxRetries:r,abortSignal:t})}}var output_exports3={};function fixJson3(e){const t=["ROOT"];let r=-1,a=null;function n(e,n,o){switch(e){case'"':r=n,t.pop(),t.push(o),t.push("INSIDE_STRING");break;case"f":case"t":case"n":r=n,a=n,t.pop(),t.push(o),t.push("INSIDE_LITERAL");break;case"-":t.pop(),t.push(o),t.push("INSIDE_NUMBER");break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":r=n,t.pop(),t.push(o),t.push("INSIDE_NUMBER");break;case"{":r=n,t.pop(),t.push(o),t.push("INSIDE_OBJECT_START");break;case"[":r=n,t.pop(),t.push(o),t.push("INSIDE_ARRAY_START")}}function o(e,a){switch(e){case",":t.pop(),t.push("INSIDE_OBJECT_AFTER_COMMA");break;case"}":r=a,t.pop()}}function s(e,a){switch(e){case",":t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break;case"]":r=a,t.pop()}}for(let i=0;i<e.length;i++){const c=e[i];switch(t[t.length-1]){case"ROOT":n(c,i,"FINISH");break;case"INSIDE_OBJECT_START":switch(c){case'"':t.pop(),t.push("INSIDE_OBJECT_KEY");break;case"}":r=i,t.pop()}break;case"INSIDE_OBJECT_AFTER_COMMA":if('"'===c)t.pop(),t.push("INSIDE_OBJECT_KEY");break;case"INSIDE_OBJECT_KEY":if('"'===c)t.pop(),t.push("INSIDE_OBJECT_AFTER_KEY");break;case"INSIDE_OBJECT_AFTER_KEY":if(":"===c)t.pop(),t.push("INSIDE_OBJECT_BEFORE_VALUE");break;case"INSIDE_OBJECT_BEFORE_VALUE":n(c,i,"INSIDE_OBJECT_AFTER_VALUE");break;case"INSIDE_OBJECT_AFTER_VALUE":o(c,i);break;case"INSIDE_STRING":switch(c){case'"':t.pop(),r=i;break;case"\\":t.push("INSIDE_STRING_ESCAPE");break;default:r=i}break;case"INSIDE_ARRAY_START":if("]"===c)r=i,t.pop();else r=i,n(c,i,"INSIDE_ARRAY_AFTER_VALUE");break;case"INSIDE_ARRAY_AFTER_VALUE":switch(c){case",":t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break;case"]":r=i,t.pop();break;default:r=i}break;case"INSIDE_ARRAY_AFTER_COMMA":n(c,i,"INSIDE_ARRAY_AFTER_VALUE");break;case"INSIDE_STRING_ESCAPE":t.pop(),r=i;break;case"INSIDE_NUMBER":switch(c){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":r=i;break;case"e":case"E":case"-":case".":break;case",":t.pop(),"INSIDE_ARRAY_AFTER_VALUE"===t[t.length-1]&&s(c,i),"INSIDE_OBJECT_AFTER_VALUE"===t[t.length-1]&&o(c,i);break;case"}":t.pop(),"INSIDE_OBJECT_AFTER_VALUE"===t[t.length-1]&&o(c,i);break;case"]":t.pop(),"INSIDE_ARRAY_AFTER_VALUE"===t[t.length-1]&&s(c,i);break;default:t.pop()}break;case"INSIDE_LITERAL":{const n=e.substring(a,i+1);"false".startsWith(n)||"true".startsWith(n)||"null".startsWith(n)?r=i:(t.pop(),"INSIDE_OBJECT_AFTER_VALUE"===t[t.length-1]?o(c,i):"INSIDE_ARRAY_AFTER_VALUE"===t[t.length-1]&&s(c,i));break}}}let i=e.slice(0,r+1);for(let r=t.length-1;r>=0;r--){switch(t[r]){case"INSIDE_STRING":i+='"';break;case"INSIDE_OBJECT_KEY":case"INSIDE_OBJECT_AFTER_KEY":case"INSIDE_OBJECT_AFTER_COMMA":case"INSIDE_OBJECT_START":case"INSIDE_OBJECT_BEFORE_VALUE":case"INSIDE_OBJECT_AFTER_VALUE":i+="}";break;case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":i+="]";break;case"INSIDE_LITERAL":{const t=e.substring(a,e.length);"true".startsWith(t)?i+="true".slice(t.length):"false".startsWith(t)?i+="false".slice(t.length):"null".startsWith(t)&&(i+="null".slice(t.length))}}}return i}async function parsePartialJson3(e){if(void 0===e)return{value:void 0,state:"undefined-input"};let t=await safeParseJSON3({text:e});return t.success?{value:t.value,state:"successful-parse"}:(t=await safeParseJSON3({text:fixJson3(e)}),t.success?{value:t.value,state:"repaired-parse"}:{value:void 0,state:"failed-parse"})}__export3(output_exports3,{array:()=>array,choice:()=>choice,json:()=>json,object:()=>object3,text:()=>text3});var text3=()=>({name:"text",responseFormat:Promise.resolve({type:"text"}),parseCompleteOutput:async({text:e})=>e,parsePartialOutput:async({text:e})=>({partial:e}),createElementStreamTransform(){}}),object3=({schema:e,name:t,description:r})=>{const a=asSchema3(e);return{name:"object",responseFormat:resolve2(a.jsonSchema).then((e=>({type:"json",schema:e,...null!=t&&{name:t},...null!=r&&{description:r}}))),async parseCompleteOutput({text:e},t){const r=await safeParseJSON3({text:e});if(!r.success)throw new NoObjectGeneratedError3({message:"No object generated: could not parse the response.",cause:r.error,text:e,response:t.response,usage:t.usage,finishReason:t.finishReason});const n=await safeValidateTypes3({value:r.value,schema:a});if(!n.success)throw new NoObjectGeneratedError3({message:"No object generated: response did not match schema.",cause:n.error,text:e,response:t.response,usage:t.usage,finishReason:t.finishReason});return n.value},async parsePartialOutput({text:e}){const t=await parsePartialJson3(e);switch(t.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:t.value}}},createElementStreamTransform(){}}},array=({element:e,name:t,description:r})=>{const a=asSchema3(e);return{name:"array",responseFormat:resolve2(a.jsonSchema).then((e=>{const{$schema:a,...n}=e;return{type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{elements:{type:"array",items:n}},required:["elements"],additionalProperties:!1},...null!=t&&{name:t},...null!=r&&{description:r}}})),async parseCompleteOutput({text:e},t){const r=await safeParseJSON3({text:e});if(!r.success)throw new NoObjectGeneratedError3({message:"No object generated: could not parse the response.",cause:r.error,text:e,response:t.response,usage:t.usage,finishReason:t.finishReason});const n=r.value;if(null==n||"object"!=typeof n||!("elements"in n)||!Array.isArray(n.elements))throw new NoObjectGeneratedError3({message:"No object generated: response did not match schema.",cause:new TypeValidationError3({value:n,cause:"response must be an object with an elements array"}),text:e,response:t.response,usage:t.usage,finishReason:t.finishReason});for(const r of n.elements){const n=await safeValidateTypes3({value:r,schema:a});if(!n.success)throw new NoObjectGeneratedError3({message:"No object generated: response did not match schema.",cause:n.error,text:e,response:t.response,usage:t.usage,finishReason:t.finishReason})}return n.elements},async parsePartialOutput({text:e}){const t=await parsePartialJson3(e);switch(t.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{const e=t.value;if(null==e||"object"!=typeof e||!("elements"in e)||!Array.isArray(e.elements))return;const r="repaired-parse"===t.state&&e.elements.length>0?e.elements.slice(0,-1):e.elements,n=[];for(const e of r){const t=await safeValidateTypes3({value:e,schema:a});t.success&&n.push(t.value)}return{partial:n}}}},createElementStreamTransform(){let e=0;return new TransformStream({transform({partialOutput:t},r){if(null!=t)for(;e<t.length;e++)r.enqueue(t[e])}})}}},choice=({options:e,name:t,description:r})=>({name:"choice",responseFormat:Promise.resolve({type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{result:{type:"string",enum:e}},required:["result"],additionalProperties:!1},...null!=t&&{name:t},...null!=r&&{description:r}}),async parseCompleteOutput({text:t},r){const a=await safeParseJSON3({text:t});if(!a.success)throw new NoObjectGeneratedError3({message:"No object generated: could not parse the response.",cause:a.error,text:t,response:r.response,usage:r.usage,finishReason:r.finishReason});const n=a.value;if(null==n||"object"!=typeof n||!("result"in n)||"string"!=typeof n.result||!e.includes(n.result))throw new NoObjectGeneratedError3({message:"No object generated: response did not match schema.",cause:new TypeValidationError3({value:n,cause:"response must be an object that contains a choice value."}),text:t,response:r.response,usage:r.usage,finishReason:r.finishReason});return n.result},async parsePartialOutput({text:t}){const r=await parsePartialJson3(t);switch(r.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{const t=r.value;if(null==t||"object"!=typeof t||!("result"in t)||"string"!=typeof t.result)return;const a=e.filter((e=>e.startsWith(t.result)));return"successful-parse"===r.state?a.includes(t.result)?{partial:t.result}:void 0:1===a.length?{partial:a[0]}:void 0}}},createElementStreamTransform(){}}),json=({name:e,description:t}={})=>({name:"json",responseFormat:Promise.resolve({type:"json",...null!=e&&{name:e},...null!=t&&{description:t}}),async parseCompleteOutput({text:e},t){const r=await safeParseJSON3({text:e});if(!r.success)throw new NoObjectGeneratedError3({message:"No object generated: could not parse the response.",cause:r.error,text:e,response:t.response,usage:t.usage,finishReason:t.finishReason});return r.value},async parsePartialOutput({text:e}){const t=await parsePartialJson3(e);switch(t.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return void 0===t.value?void 0:{partial:t.value}}},createElementStreamTransform(){}});function splitArray3(e,t){if(t<=0)throw new Error("chunkSize must be greater than 0");const r=[];for(let a=0;a<e.length;a+=t)r.push(e.slice(a,a+t));return r}async function embedMany3({model:e,values:t,maxParallelCalls:r=1/0,maxRetries:a,abortSignal:n,headers:o,providerOptions:s,experimental_telemetry:i}){const c=resolveEmbeddingModel2(e),{maxRetries:l,retry:u}=prepareRetries3({maxRetries:a,abortSignal:n}),d=withUserAgentSuffix2(null!=o?o:{},`ai/${VERSION33}`),p=getBaseTelemetryAttributes3({model:c,telemetry:i,headers:d,settings:{maxRetries:l}}),m=getTracer3(i);return recordSpan3({name:"ai.embedMany",attributes:selectTelemetryAttributes3({telemetry:i,attributes:{...assembleOperationName3({operationId:"ai.embedMany",telemetry:i}),...p,"ai.values":{input:()=>t.map((e=>JSON.stringify(e)))}}}),tracer:m,fn:async e=>{var a;const[o,l]=await Promise.all([c.maxEmbeddingsPerCall,c.supportsParallelCalls]);if(null==o||o===1/0){const{embeddings:r,usage:a,warnings:o,response:l,providerMetadata:f}=await u((()=>recordSpan3({name:"ai.embedMany.doEmbed",attributes:selectTelemetryAttributes3({telemetry:i,attributes:{...assembleOperationName3({operationId:"ai.embedMany.doEmbed",telemetry:i}),...p,"ai.values":{input:()=>t.map((e=>JSON.stringify(e)))}}}),tracer:m,fn:async e=>{var r;const a=await c.doEmbed({values:t,abortSignal:n,headers:d,providerOptions:s}),o=a.embeddings,l=null!=(r=a.usage)?r:{tokens:NaN};return e.setAttributes(await selectTelemetryAttributes3({telemetry:i,attributes:{"ai.embeddings":{output:()=>o.map((e=>JSON.stringify(e)))},"ai.usage.tokens":l.tokens}})),{embeddings:o,usage:l,warnings:a.warnings,providerMetadata:a.providerMetadata,response:a.response}}})));return e.setAttributes(await selectTelemetryAttributes3({telemetry:i,attributes:{"ai.embeddings":{output:()=>r.map((e=>JSON.stringify(e)))},"ai.usage.tokens":a.tokens}})),logWarnings({warnings:o,provider:c.provider,model:c.modelId}),new DefaultEmbedManyResult3({values:t,embeddings:r,usage:a,warnings:o,providerMetadata:f,responses:[l]})}const f=splitArray3(t,o),g=[],h=[],y=[];let v,b=0;const _=splitArray3(f,l?r:1);for(const e of _){const t=await Promise.all(e.map((e=>u((()=>recordSpan3({name:"ai.embedMany.doEmbed",attributes:selectTelemetryAttributes3({telemetry:i,attributes:{...assembleOperationName3({operationId:"ai.embedMany.doEmbed",telemetry:i}),...p,"ai.values":{input:()=>e.map((e=>JSON.stringify(e)))}}}),tracer:m,fn:async t=>{var r;const a=await c.doEmbed({values:e,abortSignal:n,headers:d,providerOptions:s}),o=a.embeddings,l=null!=(r=a.usage)?r:{tokens:NaN};return t.setAttributes(await selectTelemetryAttributes3({telemetry:i,attributes:{"ai.embeddings":{output:()=>o.map((e=>JSON.stringify(e)))},"ai.usage.tokens":l.tokens}})),{embeddings:o,usage:l,warnings:a.warnings,providerMetadata:a.providerMetadata,response:a.response}}}))))));for(const e of t)if(g.push(...e.embeddings),h.push(...e.warnings),y.push(e.response),b+=e.usage.tokens,e.providerMetadata)if(v)for(const[t,r]of Object.entries(e.providerMetadata))v[t]={...null!=(a=v[t])?a:{},...r};else v={...e.providerMetadata}}return e.setAttributes(await selectTelemetryAttributes3({telemetry:i,attributes:{"ai.embeddings":{output:()=>g.map((e=>JSON.stringify(e)))},"ai.usage.tokens":b}})),logWarnings({warnings:h,provider:c.provider,model:c.modelId}),new DefaultEmbedManyResult3({values:t,embeddings:g,usage:{tokens:b},warnings:h,providerMetadata:v,responses:y})}})}createIdGenerator3({prefix:"aitxt",size:24}),createIdGenerator3({prefix:"aitxt",size:24});var DefaultEmbedManyResult3=class{constructor(e){this.values=e.values,this.embeddings=e.embeddings,this.usage=e.usage,this.warnings=e.warnings,this.providerMetadata=e.providerMetadata,this.responses=e.responses}};function getMessageParts(e){if("string"==typeof e.content)return[];if(Array.isArray(e.content))return e.content;const t=e.content?.parts;return Array.isArray(t)?t:[]}function hasVisibleParts(e){if("string"==typeof e.content)return e.content.length>0;const t=getMessageParts(e);return 0===t.length?Boolean(e.content?.content):t.some((e=>!e.type?.startsWith("data-")))}function parseRangeFormat(e){if(e.includes(",")){const t=e.split(",").map((e=>e.trim())).filter(Boolean);if(t.length>=1){const e=t[0],r=t[t.length-1],a=e.indexOf(":"),n=r.indexOf(":");return{startId:a>0?e.slice(0,a):e,endId:n>0?r.slice(n+1):r}}}const t=e.indexOf(":");return t>0&&t<e.length-1?{startId:e.slice(0,t),endId:e.slice(t+1)}:null}async function resolveCursorMessage(e,t,r){const a=t.trim();if(!a)throw new Error("Cursor is required");const n=parseRangeFormat(a);if(n)return{hint:`The cursor "${t}" looks like a range. Use one of the individual message IDs as the cursor instead: start="${n.startId}" or end="${n.endId}".`,...n};const o=await e.getMemoryStore();let s=(await o.listMessagesById({messageIds:[a]})).messages.find((e=>e.id===a))??null;if(s||(s=await resolveCursorMessageByRecall(e,a,r)),!s)throw new Error(`Could not resolve cursor message: ${t}`);if(r?.resourceId&&s.resourceId!==r.resourceId)throw new Error(`Could not resolve cursor message: ${t}`);if(r?.enforceThreadScope&&r.threadScope&&s.threadId!==r.threadScope)throw new Error(`Could not resolve cursor message: ${t}`);return s}async function resolveCursorMessageByRecall(e,t,r){if(r?.enforceThreadScope&&r.threadScope){return(await e.recall({threadId:r.threadScope,resourceId:r.resourceId,page:0,perPage:!1})).messages.find((e=>e.id===t))??null}if(!r?.resourceId)return null;const a=await e.listThreads({page:0,perPage:100,orderBy:{field:"updatedAt",direction:"DESC"},filter:{resourceId:r.resourceId}});for(const n of a.threads){const a=(await e.recall({threadId:n.id,resourceId:r.resourceId,page:0,perPage:!1})).messages.find((e=>e.id===t));if(a)return a}return null}async function listThreadsForResource({memory:e,resourceId:t,currentThreadId:r,page:a=0,limit:n=20,before:o,after:s}){if(!t)throw new Error("Resource ID is required to list threads");const i=Math.min(Math.max(n,1),50),c=!(!o&&!s),l=o?new Date(o):null,u=s?new Date(s):null,d=await e.listThreads({filter:{resourceId:t},page:c?0:a,perPage:!c&&i,orderBy:{field:"updatedAt",direction:"DESC"}});let p,m=d.threads;if(l&&(m=m.filter((e=>e.createdAt<l))),u&&(m=m.filter((e=>e.createdAt>u))),c){const e=a*i;p=e+i<m.length,m=m.slice(e,e+i)}else p=d.hasMore;if(0===m.length)return{threads:"No threads found matching the criteria.",count:0,page:a,hasMore:!1};const f=[];for(const e of m){const t=e.id===r,a=e.title||"(untitled)",n=formatTimestamp(e.updatedAt),o=formatTimestamp(e.createdAt),s=t?" ← current":"";f.push(`- **${a}**${s}`),f.push(`  id: ${e.id}`),f.push(`  updated: ${n} | created: ${o}`)}return{threads:f.join("\n"),count:m.length,page:a,hasMore:p}}async function searchMessagesForResource({memory:e,resourceId:t,currentThreadId:r,query:a,topK:n=10,maxTokens:o=DEFAULT_MAX_RESULT_TOKENS,before:s,after:i,threadScope:c}){if(!e.searchMessages)return{results:"Search is not configured. Enable it with `retrieval: { vector: true }` and configure a vector store and embedder on your Memory instance.",count:0};const l=Math.min(Math.max(n,1),20),u=c||s||i?Math.max(3*l,l+10):l,d=Math.min(20,u),p=s?new Date(s):void 0,m=i?new Date(i):void 0,{results:f}=await e.searchMessages({query:a,resourceId:t,topK:d,filter:{...c?{threadId:c}:{},...m?{observedAfter:m}:{},...p?{observedBefore:p}:{}}});if(0===f.length)return{results:"No matching messages found.",count:0};const g=[...new Set(f.map((e=>e.threadId)))],h=new Map;e.getThreadById&&await Promise.all(g.map((async t=>{const r=await e.getThreadById({threadId:t});r&&h.set(t,r)})));const y=f.filter((e=>(!c||e.threadId===c)&&(!(p&&e.observedAt&&e.observedAt>=p)&&!(m&&e.observedAt&&e.observedAt<=m))));if(0===y.length)return{results:"No matching messages found.",count:0};const v=y.slice(0,l),b=v.map((e=>{const t=h.get(e.threadId),a=t?.title||"(untitled)",n=e.threadId===r;return[`### ${n?"Current thread memory":"Older memory from another thread"}`,"",n?"This result came from the current thread.":"This result came from an older memory generation in another thread.",`- thread: ${e.threadId}${t?` (${a})`:""}`,e.range?`- source: raw messages from ID ${e.range.split(":")[0]??"(unknown)"} through ID ${e.range.split(":")[1]??"(unknown)"}`:"- source: raw message range unavailable",t?`- thread updated: ${formatTimestamp(t.updatedAt)}`:void 0,e.groupId?`- observation group: ${e.groupId}`:void 0,`- score: ${e.score.toFixed(2)}`,"","```text",(e.text||"").trim()||"_Observation text unavailable._","```"].filter(Boolean).join("\n")})).join("\n\n"),{text:_}=truncateByTokens(b,o);return{results:_,count:v.length}}createIdGenerator3({prefix:"aiobj",size:24}),createIdGenerator3({prefix:"aiobj",size:24});var LOW_DETAIL_PART_TOKENS=30,AUTO_EXPAND_TEXT_TOKENS=100,AUTO_EXPAND_TOOL_TOKENS=20,HIGH_DETAIL_TOOL_RESULT_TOKENS=4e3,DEFAULT_MAX_RESULT_TOKENS=2e3;function formatTimestamp(e){return e.toISOString().replace("T"," ").replace(/\.\d{3}Z$/,"Z")}function truncateByTokens(e,t,r){if(estimateTokenCount(e)<=t)return{text:e,wasTruncated:!1};return{text:truncateStringByTokens(e,t)+(r?` [${r} for more]`:""),wasTruncated:!0}}function lowDetailPartLimit(e){return"text"===e?AUTO_EXPAND_TEXT_TOKENS:"tool-result"===e||"tool-call"===e?AUTO_EXPAND_TOOL_TOKENS:LOW_DETAIL_PART_TOKENS}function makePart(e,t,r,a,n,o){if("high"===n)return{messageId:e.id,partIndex:t,role:e.role,type:r,text:a,fullText:a,toolName:o};const s=`recall cursor="${e.id}" partIndex=${t} detail="high"`,{text:i}=truncateByTokens(a,lowDetailPartLimit(r),s);return{messageId:e.id,partIndex:t,role:e.role,type:r,text:i,fullText:a,toolName:o}}function formatMessageParts(e,t){const r=[];if("string"==typeof e.content)return r.push(makePart(e,0,"text",e.content,t)),r;const a=getMessageParts(e);if(a.length>0)for(let n=0;n<a.length;n++){const o=a[n],s=o.type;if("text"===s){const a=o.text;a&&r.push(makePart(e,n,"text",a,t))}else if("tool-invocation"===s){const a=o.toolInvocation;if(a?.toolName){const s=null!=a.args;if("partial-call"!==a.state&&s){const o="low"===t?"":`\n${JSON.stringify(a.args,null,2)}`,s=`[Tool Call: ${a.toolName}]${o}`;r.push({messageId:e.id,partIndex:n,role:e.role,type:"tool-call",text:s,fullText:s,toolName:a.toolName})}if("result"===a.state){const{value:s}=resolveToolResultValue(o,a.result),i=formatToolResultForObserver(s,{maxTokens:HIGH_DETAIL_TOOL_RESULT_TOKENS}),c=`[Tool Result: ${a.toolName}]\n${i}`;r.push(makePart(e,n,"tool-result",c,t,a.toolName))}}}else if("tool-call"===s){const a=o.toolName;if(a){const s=o.input??o.args,i=`[Tool Call: ${a}]${"low"===t||null==s?"":`\n${"string"==typeof s?s:JSON.stringify(s,null,2)}`}`;r.push({messageId:e.id,partIndex:n,role:e.role,type:"tool-call",text:i,fullText:i,toolName:a})}}else if("tool-result"===s){const a=o.toolName;if(a){const s=o.output??o.result,i=`[Tool Result: ${a}]\n${formatToolResultForObserver(s,{maxTokens:HIGH_DETAIL_TOOL_RESULT_TOKENS})}`;r.push(makePart(e,n,"tool-result",i,t,a))}}else if("reasoning"===s){const a=o.reasoning??o.text;a&&r.push(makePart(e,n,"reasoning",a,t))}else if("image"===s||"file"===s){const t=o.filename,a=`[${"image"===s?"Image":"File"}${t?`: ${t}`:""}]`;r.push({messageId:e.id,partIndex:n,role:e.role,type:s,text:a,fullText:a})}else if(s?.startsWith("data-"));else if(s){const t=`[${s}]`;r.push({messageId:e.id,partIndex:n,role:e.role,type:s,text:t,fullText:t})}}else e.content?.content&&r.push(makePart(e,0,"text",e.content.content,t));return r}function buildRenderedText(e,t){let r="";const a=[];for(const n of e){if(n.messageId!==r){r=n.messageId;const e=t.get(n.messageId),o=e?` (${formatTimestamp(e)})`:"";a.length>0&&a.push(""),a.push(`**${n.role}${o}** [${n.messageId}]:`)}const e=`[p${n.partIndex}]`;a.push(`  ${e} ${n.text}`)}return a.join("\n")}async function getNextVisibleMessage({memory:e,threadId:t,resourceId:r,after:a}){return(await e.recall({threadId:t,resourceId:r,page:0,perPage:50,orderBy:{field:"createdAt",direction:"ASC"},filter:{dateRange:{start:a,startExclusive:!0}}})).messages.find(hasVisibleParts)??null}var MAX_EXPAND_USER_TEXT_TOKENS=200,MAX_EXPAND_OTHER_TOKENS=50;function expandLimit(e){return"user"===e.role&&"text"===e.type?MAX_EXPAND_USER_TEXT_TOKENS:MAX_EXPAND_OTHER_TOKENS}function expandPriority(e){return"user"===e.role&&"text"===e.type?0:"text"===e.type||"reasoning"===e.type?1:"tool-result"===e.type?2:"tool-call"===e.type?3:4}function renderFormattedParts(e,t,r){const a=buildRenderedText(e,t);let n=estimateTokenCount(a);if(n>r.maxTokens){return{text:truncateStringByTokens(a,r.maxTokens),truncated:!0,tokenOffset:n-r.maxTokens}}const o=e.map(((e,t)=>({part:e,index:t}))).filter((({part:e})=>e.text!==e.fullText)).sort(((e,t)=>expandPriority(e.part)-expandPriority(t.part)));if(0===o.length)return{text:a,truncated:!1,tokenOffset:0};let s=r.maxTokens-n;for(const{part:t,index:r}of o){if(s<=0)break;const a=expandLimit(t),n=estimateTokenCount(t.fullText),o=estimateTokenCount(t.text),i=Math.min(n,a),c=i-o;if(!(c<=0))if(c<=s&&i>=n)e[r]={...t,text:t.fullText},s-=c;else{const n=Math.min(o+s,a),i=`recall cursor="${t.messageId}" partIndex=${t.partIndex} detail="high"`,{text:c}=truncateByTokens(t.fullText,n,i),l=estimateTokenCount(c)-o;e[r]={...t,text:c},s-=l}}const i=buildRenderedText(e,t),c=estimateTokenCount(i);if(c<=r.maxTokens)return{text:i,truncated:!1,tokenOffset:0};return{text:truncateStringByTokens(i,r.maxTokens),truncated:!0,tokenOffset:c-r.maxTokens}}async function recallPart({memory:e,threadId:t,resourceId:r,cursor:a,partIndex:n,threadScope:o,maxTokens:s=DEFAULT_MAX_RESULT_TOKENS}){if(!e||"function"!=typeof e.getMemoryStore)throw new Error("Memory instance is required for recall");if(!t)throw new Error("Thread ID is required for recall");const i=await resolveCursorMessage(e,a,{resourceId:r,threadScope:o,enforceThreadScope:!1});if("hint"in i)throw new Error(i.hint);const c=formatMessageParts(i,"high");if(0===c.length)throw new Error(`Message ${a} has no visible content (it may be an internal system message). Try a neighboring message ID instead.`);const l=[...c].reverse().find((e=>e.partIndex===n));if(!l){const o=c.map((e=>e.partIndex)).join(", "),l=Math.max(...c.map((e=>e.partIndex)));if(n>l){const o=await getNextVisibleMessage({memory:e,threadId:t,resourceId:r,after:i.createdAt});if(o){const e=formatMessageParts(o,"high")[0];if(e){const t=`${`Part index ${n} not found in message ${a}; showing partIndex ${e.partIndex} from next message ${e.messageId}.\n\n`}${e.text}`,r=truncateStringByTokens(t,s),o=r!==t;return{text:r,messageId:e.messageId,partIndex:e.partIndex,role:e.role,type:e.type,truncated:o}}}}throw new Error(`Part index ${n} not found in message ${a}. Available indices: ${o}`)}const u=truncateStringByTokens(l.text,s),d=u!==l.text;return{text:u,messageId:l.messageId,partIndex:l.partIndex,role:l.role,type:l.type,truncated:d}}async function recallMessages({memory:e,threadId:t,resourceId:r,cursor:a,page:n=1,limit:o=20,detail:s="low",partType:i,toolName:c,threadScope:l,maxTokens:u=DEFAULT_MAX_RESULT_TOKENS}){if(!e)throw new Error("Memory instance is required for recall");if(!t)throw new Error("Thread ID is required for recall");if("function"!=typeof e.getMemoryStore)throw new Error("recall requires a Memory instance with storage access");const d=0===n?1:n,p=Math.max(Math.min(d,50),-50),m=Math.min(o,20),f=await resolveCursorMessage(e,a,{resourceId:r,threadScope:l,enforceThreadScope:!1});if("hint"in f)return{messages:f.hint,count:0,cursor:a,page:p,limit:m,detail:s,hasNextPage:!1,hasPrevPage:!1,truncated:!1,tokenOffset:0};const g=f,h=g.threadId&&g.threadId!==t?g.threadId:void 0;if(h&&l)return{messages:`Cursor does not belong to the active thread. Expected thread "${t}" but cursor "${a}" belongs to "${g.threadId}". Pass threadId="${g.threadId}" to browse that thread, or omit threadId and use this cursor directly in resource scope.`,count:0,cursor:a,page:p,limit:m,detail:s,hasNextPage:!1,hasPrevPage:!1,truncated:!1,tokenOffset:0};const y=h??t;if(!y)throw new Error("Thread ID is required for recall");const v=p>0,b=Math.max(Math.abs(p),1)-1,_=b*m,S=_+m+1,E=(await e.recall({threadId:y,resourceId:r,page:0,perPage:S,orderBy:{field:"createdAt",direction:v?"ASC":"DESC"},filter:{dateRange:v?{start:g.createdAt,startExclusive:!0}:{end:g.createdAt,endExclusive:!0}}})).messages.filter(hasVisibleParts),w=E.length,I=w>_+m;let A;if(v)A=E.slice(_,_+m);else{const e=Math.max(w-_,0),t=Math.max(e-m,0);A=E.slice(t,e)}const T=v?I:b>0,P=v?b>0:I;let x=[];const R=new Map;for(const e of A)R.set(e.id,e.createdAt),x.push(...formatMessageParts(e,s));if(c&&(x=x.filter((e=>("tool-call"===e.type||"tool-result"===e.type)&&e.toolName===c))),i&&(x=x.filter((e=>e.type===i))),"high"===s&&x.length>0){const e=x[0],t=x.filter((t=>t.messageId===e.messageId)),r=x.filter((t=>t.messageId!==e.messageId)),n=renderFormattedParts([e],R,{maxTokens:u});let o=n.text;const i=[];if(t.length>1){const r=t[1];i.push(`next part: partIndex=${r.partIndex} on cursor="${e.messageId}"`)}if(r.length>0){const e=r[0];i.push(`next message: partIndex=${e.partIndex} on cursor="${e.messageId}"`)}else T&&i.push(`more messages available on page ${p+1}`);return i.length>0&&(o+=`\n\nHigh detail returns 1 part at a time. To continue: ${i.join(", or ")}.`),{messages:o,count:1,cursor:a,page:p,limit:m,detail:s,hasNextPage:r.length>0||T,hasPrevPage:P,truncated:n.truncated,tokenOffset:n.tokenOffset}}const O=renderFormattedParts(x,R,{maxTokens:u}),M=0===x.length?i||c?"(no message parts matched the current filters)":"(no visible message parts found for this page)":"(no messages found)";return{messages:O.text||M,count:A.length,cursor:a,page:p,limit:m,detail:s,hasNextPage:T,hasPrevPage:P,truncated:O.truncated,tokenOffset:O.tokenOffset}}async function recallThreadFromStart({memory:e,threadId:t,resourceId:r,page:a=1,limit:n=20,detail:o="low",partType:s,toolName:i,anchor:c="start",maxTokens:l=DEFAULT_MAX_RESULT_TOKENS}){if(!e)throw new Error("Memory instance is required for recall");if(!t)throw new Error("Thread ID is required for recall");if(r&&e.getThreadById){const a=await e.getThreadById({threadId:t});if(!a||a.resourceId!==r)throw new Error("Thread not found")}const u=Math.max(Math.min(a,50),1),d=Math.min(Math.max(n,1),20),p=u-1,m=p*d+d+1,f=await e.recall({threadId:t,resourceId:r,page:0,perPage:m,orderBy:{field:"createdAt",direction:"end"===c?"DESC":"ASC"}}),g="end"===c?f.messages.slice(0,m).filter(hasVisibleParts).reverse():f.messages.slice(0,m).filter(hasVisibleParts),h=p*d,y=g.slice(h,h+d),v=g.length>h+y.length,b=y.length>0&&("end"===c?p>0:v),_=y.length>0&&"end"===c?v:p>0;let S=[];const E=new Map;for(const e of y)E.set(e.id,e.createdAt),S.push(...formatMessageParts(e,o));i&&(S=S.filter((e=>("tool-call"===e.type||"tool-result"===e.type)&&e.toolName===i))),s&&(S=S.filter((e=>e.type===s)));const w=renderFormattedParts(S,E,{maxTokens:l}),I=0===y.length?p>0?`(no messages found on page ${u} for this thread)`:"(no messages in this thread)":s||i?"(no message parts matched the current filters)":"(no messages found)";return{messages:w.text||I,count:y.length,cursor:y[0]?.id||"",page:u,limit:d,detail:o,hasNextPage:b,hasPrevPage:_,truncated:w.truncated,tokenOffset:w.tokenOffset}}var recallTool=(e,t)=>{const r="resource"===(t?.retrievalScope??"thread");return createTool({id:"recall",description:r?'Browse conversation history. Use mode="threads" to list all threads for the current user. Use mode="messages" (default) to browse messages in the current thread or pass threadId to browse another thread in the active resource. If you pass only a cursor, it must belong to the current thread. Use mode="search" to find messages by content across all threads.':'Browse conversation history in the current thread. Use mode="messages" (default) to page through messages near a cursor. Use mode="search" to find messages by content in this thread. Use mode="threads" to get the current thread\'s ID and title.',inputSchema:z.object({...r?{mode:z.enum(["messages","threads","search"]).optional().describe('What to retrieve. "messages" (default) pages through message history. "threads" lists all threads for the current user. "search" finds messages by semantic similarity across all threads.'),threadId:z.string().min(1).optional().describe('Browse a different thread, or use "current" for the active thread. Use mode="threads" first to discover thread IDs.'),before:z.string().optional().describe('For mode="threads": only show threads created before this date. ISO 8601 or natural date string (e.g. "2026-03-15", "2026-03-10T00:00:00Z").'),after:z.string().optional().describe('For mode="threads": only show threads created after this date. ISO 8601 or natural date string (e.g. "2026-03-01", "2026-03-10T00:00:00Z").')}:{mode:z.enum(["messages","threads","search"]).optional().describe('What to retrieve. "messages" (default) pages through message history. "threads" returns info about the current thread. "search" finds messages by semantic similarity in this thread.')},query:z.string().min(1).optional().describe('Search query for mode="search". Finds messages semantically similar to this text.'),cursor:z.string().min(1).optional().describe('A message ID to use as the pagination cursor. For mode="messages", provide either cursor or threadId. If only cursor is provided, it must belong to the current thread. Extract it from the start or end of an observation group range.'),anchor:z.enum(["start","end"]).optional().describe('For mode="messages" without a cursor, page from the start (oldest-first) or end (newest-first) of the thread. Defaults to "start".'),page:z.number().int().min(-50).max(50).optional().describe("Pagination offset. For messages: positive pages move forward from cursor, negative move backward. For threads: page number (0-indexed). 0 is treated as 1 for messages."),limit:z.number().int().positive().max(20).optional().describe("Maximum number of items to return per page. Defaults to 20."),detail:z.enum(["low","high"]).optional().describe('Detail level for messages. "low" (default) returns truncated text and tool names. "high" returns full content with tool args/results.'),partType:z.enum(["text","tool-call","tool-result","reasoning","image","file"]).optional().describe('Filter results to only include parts of this type. Only applies to mode="messages".'),toolName:z.string().min(1).optional().describe('Filter results to only include tool-call and tool-result parts matching this tool name. Only applies to mode="messages".'),partIndex:z.number().int().min(0).optional().describe("Fetch a single part from the cursor message by its positional index. When provided, returns only that part at high detail. Indices are shown as [p0], [p1], etc. in recall results.")}),execute:async({mode:e,query:t,cursor:a,threadId:n,anchor:o,page:s,limit:i,detail:c,partType:l,toolName:u,partIndex:d,before:p,after:m},f)=>{const g=f?.memory,h=f?.agent?.threadId,y=f?.agent?.resourceId,v="current"===n?h:n;if(!g)throw new Error("Memory instance is required for recall");if("current"===n&&!h)throw new Error("Could not resolve current thread.");if("search"===e){if(!t)throw new Error('query is required for mode="search"');if(!y)throw new Error("Resource ID is required for recall");return searchMessagesForResource({memory:g,resourceId:y,currentThreadId:h||void 0,query:t,topK:i??10,before:p,after:m,threadScope:r?v||void 0:h||void 0})}if("threads"===e){if(!r||"current"===n){if(!h||!g.getThreadById)return{error:"Could not resolve current thread."};const e=await g.getThreadById({threadId:h});if(!e)return{error:"Could not resolve current thread."};if(r&&y&&e.resourceId!==y)throw new Error("Thread does not belong to the active resource");return{threads:`- **${e.title||"(untitled)"}** ← current\n  id: ${e.id}\n  updated: ${formatTimestamp(e.updatedAt)} | created: ${formatTimestamp(e.createdAt)}`,count:1,page:0,hasMore:!1}}if(!y)throw new Error("Resource ID is required for recall");return listThreadsForResource({memory:g,resourceId:y,currentThreadId:h||"",page:s??0,limit:i??20,before:p,after:m})}const b="string"==typeof v&&v.length>0,_="string"==typeof a&&a.length>0;if(!b&&!_)throw new Error('Either cursor or threadId is required for mode="messages"');let S,E;if(r)if(b){if(!y)throw new Error("Resource ID is required for recall");if(!g.getThreadById)throw new Error("Memory instance cannot verify thread access for recall");const e=await g.getThreadById({threadId:v});if(!e||e.resourceId!==y)throw new Error("Thread does not belong to the active resource");S=e.id,E=e.id}else S=h,E=h||void 0;else S=h,E=h||void 0;if(_&&!b&&!h){if(!r)throw new Error("Current thread is required when browsing by cursor");const e=await resolveCursorMessage(g,a,{resourceId:y});if("hint"in e)return{messages:e.hint,count:0,cursor:a,page:s??1,limit:Math.min(i??20,20),detail:c??"low",hasNextPage:!1,hasPrevPage:!1,truncated:!1,tokenOffset:0};S=e.threadId}if(!S)throw new Error("Thread ID is required for recall");return a?null!=d?recallPart({memory:g,threadId:S,resourceId:r?y:void 0,cursor:a,partIndex:d,threadScope:E}):recallMessages({memory:g,threadId:S,resourceId:r?y:void 0,cursor:a,page:s,limit:i,detail:c??"low",partType:l,toolName:u,threadScope:E}):recallThreadFromStart({memory:g,threadId:S,resourceId:r?y:void 0,page:s??1,limit:i??20,detail:c??"low",partType:l,toolName:u,anchor:o??"start"})}})};function deepMergeWorkingMemory(e,t){if(!t||"object"!=typeof t||0===Object.keys(t).length)return e&&"object"==typeof e?{...e}:{};if(!e||"object"!=typeof e)return t;const r={...e};for(const e of Object.keys(t)){const a=t[e],n=r[e];null===a?delete r[e]:Array.isArray(a)||"object"!=typeof a||null===a||"object"!=typeof n||null===n||Array.isArray(n)?r[e]=a:r[e]=deepMergeWorkingMemory(n,a)}return r}var updateWorkingMemoryTool=e=>{const t=e?.workingMemory?.schema;let r=z.object({memory:z.string().describe("The Markdown formatted working memory content to store. This MUST be a string. Never pass an object.")});if(t){const e=isStandardSchemaWithJSON$1(t)?t:toStandardSchema$1(t),a=standardSchemaToJSONSchema(e,{io:"input"});delete a.$schema,r=toStandardSchema$1({$schema:"http://json-schema.org/draft-07/schema#",type:"object",description:"The JSON formatted working memory content to store.",properties:{memory:a},required:["memory"]})}const a=Boolean(t);return createTool({id:"update-working-memory",description:t?"Update the working memory with new information. Data is merged with existing memory - only include fields you want to add or update. To preserve existing data, omit the field entirely. Arrays are replaced entirely when provided, so pass the complete array or omit it to keep the existing values.":"Update the working memory with new information. Any data not included will be overwritten. Always pass data as string to the memory field. Never pass an object.",inputSchema:r,execute:async(t,r)=>{const n=r?.agent?.threadId,o=r?.agent?.resourceId,s=r?.memory;if(!s)throw new Error("Memory instance is required for working memory updates");const i=e?.workingMemory?.scope||"resource";if("thread"===i&&!n)throw new Error("Thread ID is required for thread-scoped working memory updates");if("resource"===i&&!o)throw new Error("Resource ID is required for resource-scoped working memory updates");if(n){let t=await s.getThreadById({threadId:n});if(t||(t=await s.createThread({threadId:n,resourceId:o,memoryConfig:e})),t.resourceId&&o&&t.resourceId!==o)throw new Error(`Thread with id ${n} resourceId does not match the current resourceId ${o}`)}let c;if(a){const r=await s.getWorkingMemory({threadId:n,resourceId:o,memoryConfig:e});let a=null;if(r)try{a="string"==typeof r?JSON.parse(r):r}catch{a=null}const i=t.memory;if(null==i)return{success:!0,message:"No memory data provided, existing memory unchanged."};let l;if("string"==typeof i)try{l=JSON.parse(i)}catch(e){const t=e instanceof Error?e.message:String(e);throw new Error(`Failed to parse working memory input as JSON: ${t}. Raw input: ${i.length>500?i.slice(0,500)+"...":i}`)}else l=i;const u=deepMergeWorkingMemory(a,l);c=JSON.stringify(u)}else{const r=t.memory;c="string"==typeof r?r:JSON.stringify(r);const a=await s.getWorkingMemory({threadId:n,resourceId:o,memoryConfig:e});if(a){const t=await s.getWorkingMemoryTemplate({memoryConfig:e});if(t?.content){const e=c.replace(/\s+/g," ").trim(),r=t.content.replace(/\s+/g," ").trim(),n=a.replace(/\s+/g," ").trim();if(e===r&&n!==r)return{success:!1,message:"Attempted to replace existing working memory with empty template. Update skipped to prevent data loss."}}}}return await s.updateWorkingMemory({threadId:n,resourceId:o,workingMemory:c,memoryConfig:e}),{success:!0}}})},__experimental_updateWorkingMemoryToolVNext=e=>createTool({id:"update-working-memory",description:"Update the working memory with new information.",inputSchema:z.object({newMemory:z.string().optional().describe(`The ${e.workingMemory?.schema?"JSON":"Markdown"} formatted working memory content to store`),searchString:z.string().optional().describe("The working memory string to find. Will be replaced with the newMemory string. If this is omitted or doesn't exist, the newMemory string will be appended to the end of your working memory. Replacing single lines at a time is encouraged for greater accuracy. If updateReason is not 'append-new-memory', this search string must be provided or the tool call will be rejected."),updateReason:z.enum(["append-new-memory","clarify-existing-memory","replace-irrelevant-memory"]).optional().describe("The reason you're updating working memory. Passing any value other than 'append-new-memory' requires a searchString to be provided. Defaults to append-new-memory")}),execute:async(t,r)=>{const a=r?.agent?.threadId,n=r?.agent?.resourceId,o=r?.memory;if(!o)throw new Error("Memory instance is required for working memory updates");const s=e.workingMemory?.scope||"resource";if("thread"===s&&!a)throw new Error("Thread ID is required for thread-scoped working memory updates");if("resource"===s&&!n)throw new Error("Resource ID is required for resource-scoped working memory updates");if(a){let t=await o.getThreadById({threadId:a});if(t||(t=await o.createThread({threadId:a,resourceId:n,memoryConfig:e})),t.resourceId&&n&&t.resourceId!==n)throw new Error(`Thread with id ${a} resourceId does not match the current resourceId ${n}`)}const i=t.newMemory||"";if(t.updateReason||(t.updateReason="append-new-memory"),t.searchString&&"resource"===e.workingMemory?.scope&&"replace-irrelevant-memory"===t.updateReason&&(t.searchString=void 0),"append-new-memory"===t.updateReason&&t.searchString&&(t.searchString=void 0),"append-new-memory"!==t.updateReason&&!t.searchString)return{success:!1,reason:`updateReason was ${t.updateReason} but no searchString was provided. Unable to replace undefined with "${t.newMemory}"`};const c=await o.__experimental_updateWorkingMemoryVNext({threadId:a,resourceId:n,workingMemory:i,searchString:t.searchString,memoryConfig:e});return c||{success:!0}}});function normalizeObservationalMemoryConfig(e){return!0===e?{model:"google/gemini-2.5-flash"}:!1===e||void 0===e||"object"==typeof e&&!1===e.enabled?void 0:e}var CHARS_PER_TOKEN=4,DEFAULT_MESSAGE_RANGE={before:1,after:1},DEFAULT_TOP_K=4,VECTOR_DELETE_BATCH_SIZE=100,Memory=class extends MastraMemory{_omEngine;get omEngine(){return this._omEngine||(this._omEngine=this._initOMEngine()),this._omEngine}constructor(e={}){super({name:"Memory",...e});const t=this.getMergedThreadConfig({workingMemory:e.options?.workingMemory||{enabled:!1,template:this.defaultWorkingMemoryTemplate},observationalMemory:e.options?.observationalMemory});this.threadConfig=t;const r=normalizeObservationalMemoryConfig(t.observationalMemory);if(r?.retrieval&&"object"==typeof r.retrieval&&r.retrieval.vector){if(!this.vector)throw new Error("`retrieval: { vector: true }` requires a vector store. Pass a `vector` option to your Memory instance.");if(!this.embedder)throw new Error("`retrieval: { vector: true }` requires an embedder. Pass an `embedder` option to your Memory instance.")}}async getMemoryStore(){const e=await this.storage.getStore("memory");if(!e)throw new Error(`Memory storage domain is not available on ${this.storage.constructor.name}`);return e}async listMessagesByResourceId(e){return(await this.getMemoryStore()).listMessagesByResourceId(e)}async validateThreadIsOwnedByResource(e,t,r){const a="object"==typeof r?.semanticRecall&&"thread"!==r?.semanticRecall?.scope||!0===r.semanticRecall,n=await this.getThreadById({threadId:e});if(!n&&!a)throw new Error(`No thread found with id ${e}`);if(n&&n.resourceId!==t)throw new Error(`Thread with id ${e} is for resource with id ${n.resourceId} but resource ${t} was queried.`)}createMemorySpan(e,t,r,a){const n=t?.tracingContext?.currentSpan;if(n)return n.createChildSpan({type:SpanType.MEMORY_OPERATION,name:`memory: ${e}`,entityType:EntityType.MEMORY,entityName:"Memory",input:r,attributes:{operationType:e,...a}})}async recall(e){const{threadId:t,resourceId:r,perPage:a,page:n,orderBy:o,threadConfig:s,vectorSearchString:i,includeSystemReminders:c,filter:l}=e,u=this.getMergedThreadConfig(s||{}),d=Boolean(u.semanticRecall),p=this.createMemorySpan("recall",e.observabilityContext,{threadId:t,resourceId:r,vectorSearchString:i},{semanticRecallEnabled:d,lastMessages:u.lastMessages});try{r&&await this.validateThreadIsOwnedByResource(t,r,u);const e=void 0!==a?a:u.lastMessages,s=!1===u.lastMessages&&void 0===a,m=!o&&!1!==e,f=m?{field:"createdAt",direction:"DESC"}:o,g=[];this.logger.debug("Memory recall",{threadId:t,perPage:e,page:n,orderBy:f,hasWorkingMemorySchema:Boolean(u.workingMemory?.schema),workingMemoryEnabled:u.workingMemory?.enabled,semanticRecallEnabled:d,historyDisabledByConfig:s});const h=DEFAULT_MESSAGE_RANGE,y=DEFAULT_TOP_K,v="boolean"==typeof u?.semanticRecall?{topK:y,messageRange:h}:{topK:u?.semanticRecall?.topK??y,messageRange:u?.semanticRecall?.messageRange??h},b="object"==typeof u?.semanticRecall&&"thread"!==u?.semanticRecall?.scope||!0===u.semanticRecall;if(b&&!r&&u?.semanticRecall&&i)throw new Error("Memory error: Resource-scoped semantic recall is enabled but no resourceId was provided. Either provide a resourceId or explicitly set semanticRecall.scope to 'thread'.");let _;if(s&&(!u.semanticRecall||!i||!this.vector)){const e={messages:[],usage:void 0,total:0,page:n??0,perPage:0,hasMore:!1};return p?.end({output:{success:!0},attributes:{messageCount:0}}),e}if(u?.semanticRecall&&i&&this.vector){const e=await this.embedMessageContent(i);_=e.usage;const{embeddings:a,dimension:n}=e,{indexName:o}=await this.createEmbeddingIndex(n,u);await Promise.all(a.map((async e=>{if(void 0===this.vector)throw new Error(`Tried to query vector index ${o} but this Memory instance doesn't have an attached vector db.`);g.push(...await this.vector.query({indexName:o,queryVector:e,topK:v.topK,filter:b?{resource_id:r}:{thread_id:t}}))})))}const S=await this.getMemoryStore(),E=s?0:e,w=await S.listMessages({threadId:t,resourceId:r,perPage:E,page:n,orderBy:f,filter:l,...g?.length?{include:g.map((e=>({id:e.metadata?.message_id,threadId:e.metadata?.thread_id,withNextMessages:"number"==typeof v.messageRange?v.messageRange:v.messageRange.after,withPreviousMessages:"number"==typeof v.messageRange?v.messageRange:v.messageRange.before})))}:{}}),I=m?w.messages.reverse():w.messages,A=new MessageList({threadId:t,resourceId:r}).add(I,"memory"),T=filterSystemReminderMessages(A.get.all.db(),c),{total:P,page:x,perPage:R,hasMore:O}=w,M={messages:T,usage:_,total:P,page:x,perPage:R,hasMore:O};return p?.end({output:{success:!0},attributes:{messageCount:T.length,embeddingTokens:_?.tokens,vectorResultCount:g.length}}),M}catch(e){throw p?.error({error:e,endSpan:!0}),e}}async getThreadById({threadId:e}){return(await this.getMemoryStore()).getThreadById({threadId:e})}async listThreads(e){return(await this.getMemoryStore()).listThreads(e)}async handleWorkingMemoryFromMetadata({workingMemory:e,resourceId:t,memoryConfig:r}){const a=this.getMergedThreadConfig(r||{});if(a.workingMemory?.enabled){if("resource"===(a.workingMemory.scope||"resource")&&t){const r=await this.getMemoryStore();await r.updateResource({resourceId:t,workingMemory:e})}}}async saveThread({thread:e,memoryConfig:t}){const r=await this.getMemoryStore(),a=await r.saveThread({thread:e});return e.metadata?.workingMemory&&"string"==typeof e.metadata.workingMemory&&e.resourceId&&await this.handleWorkingMemoryFromMetadata({workingMemory:e.metadata.workingMemory,resourceId:e.resourceId,memoryConfig:t}),a}async updateThread({id:e,title:t,metadata:r,memoryConfig:a}){const n=await this.getMemoryStore(),o=await n.updateThread({id:e,title:t,metadata:r});return r?.workingMemory&&"string"==typeof r.workingMemory&&o.resourceId&&await this.handleWorkingMemoryFromMetadata({workingMemory:r.workingMemory,resourceId:o.resourceId,memoryConfig:a}),o}async deleteThread(e){const t=await this.getMemoryStore();await t.deleteThread({threadId:e}),this.vector&&this.deleteThreadVectors(e)}async getMemoryVectorIndexes(){if(!this.vector)return[];const e=`memory${this.vector.indexSeparator??"_"}messages`;return(await this.vector.listIndexes()).filter((t=>t.startsWith(e)))}async deleteThreadVectors(e){try{const t=await this.getMemoryVectorIndexes();await Promise.all(t.map((async t=>{try{await this.vector.deleteVectors({indexName:t,filter:{thread_id:e}})}catch{this.logger.debug("Failed to delete vectors for thread, skipping",{threadId:e,indexName:t})}})))}catch{this.logger.debug("Failed to clean up vectors for thread",{threadId:e})}}async updateWorkingMemory({threadId:e,resourceId:t,workingMemory:r,memoryConfig:a,observabilityContext:n}){const o=this.getMergedThreadConfig(a||{});if(!o.workingMemory?.enabled)throw new Error("Working memory is not enabled for this memory instance");const s=this.createMemorySpan("update",n,{threadId:e,resourceId:t},{workingMemoryEnabled:!0});try{const a=o.workingMemory.scope||"resource";if("resource"===a&&!t)throw new Error("Memory error: Resource-scoped working memory is enabled but no resourceId was provided. Either provide a resourceId or explicitly set workingMemory.scope to 'thread'.");const n="resource"===a?`resource-${t}`:`thread-${e}`,i=this.updateWorkingMemoryMutexes.has(n)?this.updateWorkingMemoryMutexes.get(n):new Mutex;this.updateWorkingMemoryMutexes.set(n,i);const c=await i.acquire();try{const n=await this.getMemoryStore();if("resource"===a&&t)await n.updateResource({resourceId:t,workingMemory:r});else{const t=await this.getThreadById({threadId:e});if(!t)throw new Error(`Thread ${e} not found`);await n.updateThread({id:e,title:t.title||"",metadata:{...t.metadata,workingMemory:r}})}}finally{c()}s?.end({output:{success:!0}})}catch(e){throw s?.error({error:e,endSpan:!0}),e}}updateWorkingMemoryMutexes=new Map;async __experimental_updateWorkingMemoryVNext({threadId:e,resourceId:t,workingMemory:r,searchString:a,memoryConfig:n}){const o=this.getMergedThreadConfig(n||{});if(!o.workingMemory?.enabled)throw new Error("Working memory is not enabled for this memory instance");const s="resource"===n?.workingMemory?.scope?`resource-${t}`:`thread-${e}`,i=this.updateWorkingMemoryMutexes.has(s)?this.updateWorkingMemoryMutexes.get(s):new Mutex;this.updateWorkingMemoryMutexes.set(s,i);const c=await i.acquire();try{const s=await this.getWorkingMemory({threadId:e,resourceId:t,memoryConfig:n})||"",i=await this.getWorkingMemoryTemplate({memoryConfig:n});let c="";const l="string"==typeof i?.content?i.content:null,u=e=>e.replace(/\s+/g," ").trim(),d=u(r),p=l?u(l):"";if(s)if(a&&s?.includes(a))r=s.replace(a,r),c="found and replaced searchString with newMemory";else{if(s.includes(r)||l?.trim()===r.trim()||d===p)return{success:!1,reason:"attempted to insert duplicate data into working memory. this entry was skipped"};if(d===p)return{success:!1,reason:"attempted to append empty template to working memory. this entry was skipped"};c=a?"attempted to replace working memory string that doesn't exist. Appending to working memory instead.":"appended newMemory to end of working memory",r=s+`\n${r}`}else{if(r===l||d===p)return{success:!1,reason:"try again when you have data to add. newMemory was equal to the working memory template"};c="started new working memory"}if(l){r=r.replaceAll(l,"");const e=l.replace(/\r\n/g,"\n"),t=l.replace(/\n/g,"\r\n");r=(r=r.replaceAll(e,"")).replaceAll(t,"")}const m=o.workingMemory.scope||"resource";if("resource"===m&&!t)throw new Error("Memory error: Resource-scoped working memory is enabled but no resourceId was provided. Either provide a resourceId or explicitly set workingMemory.scope to 'thread'.");const f=await this.getMemoryStore();if("resource"===m&&t){if(await f.updateResource({resourceId:t,workingMemory:r}),c)return{success:!0,reason:c}}else{const t=await this.getThreadById({threadId:e});if(!t)throw new Error(`Thread ${e} not found`);await f.updateThread({id:e,title:t.title||"",metadata:{...t.metadata,workingMemory:r}})}return{success:!0,reason:c}}catch(e){return this.logger.error(e instanceof Error?e.stack||e.message:JSON.stringify(e)),{success:!1,reason:"Tool error."}}finally{c()}}chunkText(e,t=4096){const r=t*CHARS_PER_TOKEN,a=[];let n="";const o=e.split(/\s+/);for(const e of o){const t=n?" "+e:e;n.length+t.length>r?(a.push(n),n=e):n+=t}return n&&a.push(n),a}hasher=xxhash();embeddingCache=new Map;firstEmbed;async embedMessageContent(e){const t=(await this.hasher).h32(e),r=this.embeddingCache.get(t);if(r)return this.logger.debug("Embedding cache hit",{contentHash:t,chunks:r.chunks.length}),r;const a=this.chunkText(e);if(void 0===this.embedder)throw new Error("Tried to embed message content but this Memory instance doesn't have an attached embedder.");const n="fastembed"===this.embedder.provider;let o;n&&this.firstEmbed instanceof Promise&&await this.firstEmbed;switch(this.embedder.specificationVersion){case"v3":o=embedMany3;break;case"v2":o=embedMany2;break;default:o=embedMany}const s=o({values:a,maxRetries:3,model:this.embedder,...this.embedderOptions||{}});n&&!this.firstEmbed&&(this.firstEmbed=s);const{embeddings:i,usage:c}=await s,l={embeddings:i,chunks:a,usage:c,dimension:i[0]?.length};return this.embeddingCache.set(t,l),l}async saveMessages({messages:e,memoryConfig:t,observabilityContext:r}){const a=this.createMemorySpan("save",r,void 0,{messageCount:e.length});try{const r=e.map((e=>this.updateMessageToHideWorkingMemoryV2(e))).filter((e=>Boolean(e))),n=this.getMergedThreadConfig(t),o=new MessageList({generateMessageId:()=>this.generateId()}).add(r,"memory").get.all.db(),s=await this.getMemoryStore(),i=await s.saveMessages({messages:o});let c=0;if(this.vector&&n.semanticRecall){const e=[];let t;if(await Promise.all(r.map((async r=>{let a=null;if(r.content.content&&"string"==typeof r.content.content&&""!==r.content.content.trim())a=r.content.content;else if(r.content.parts&&r.content.parts.length>0){const e=r.content.parts.filter((e=>"text"===e.type)).map((e=>e.text)).join(" ").trim();e&&(a=e)}if(!a)return;const n=await this.embedMessageContent(a);t=n.dimension,n.usage?.tokens&&(c+=n.usage.tokens),e.push({embeddings:n.embeddings,metadata:n.chunks.map((()=>({message_id:r.id,thread_id:r.threadId,resource_id:r.resourceId})))})}))),e.length>0&&void 0!==t){if(void 0===this.vector)throw new Error("Tried to upsert embeddings but this Memory instance doesn't have an attached vector db.");const{indexName:r}=await this.createEmbeddingIndex(t,n),a=[],o=[];for(const t of e)a.push(...t.embeddings),o.push(...t.metadata);await this.vector.upsert({indexName:r,vectors:a,metadata:o})}}const l={...i,usage:c>0?{tokens:c}:void 0};return a?.end({output:{success:!0},attributes:{messageCount:o.length,embeddingTokens:l.usage?.tokens,semanticRecallEnabled:Boolean(n.semanticRecall)}}),l}catch(e){throw a?.error({error:e,endSpan:!0}),e}}updateMessageToHideWorkingMemoryV2(e){const t={...e};if(e.content&&"object"==typeof e.content&&!Array.isArray(e.content)&&(t.content={...e.content}),"string"==typeof t.content?.content&&t.content.content.length>0&&(t.content.content=removeWorkingMemoryTags(t.content.content).trim()),Array.isArray(t.content?.parts)&&(t.content.parts=t.content.parts.filter((e=>"tool-invocation"!==e?.type||"updateWorkingMemory"!==e.toolInvocation?.toolName)).map((e=>{if("text"===e?.type){const t="string"==typeof e.text?e.text:"";return{...e,text:removeWorkingMemoryTags(t).trim()}}return e})),0===t.content.parts.length)){if(!("string"==typeof t.content.content&&t.content.content.trim().length>0))return null}return t}parseWorkingMemory(e){if(!this.threadConfig.workingMemory?.enabled)return null;const t=extractWorkingMemoryContent(e);return t?.trim()??null}async getWorkingMemory({threadId:e,resourceId:t,memoryConfig:r}){const a=this.getMergedThreadConfig(r||{});if(!a.workingMemory?.enabled)return null;const n=a.workingMemory.scope||"resource";let o=null;if("resource"===n&&!t)throw new Error("Memory error: Resource-scoped working memory is enabled but no resourceId was provided. Either provide a resourceId or explicitly set workingMemory.scope to 'thread'.");if("resource"===n&&t){const e=await this.getMemoryStore(),r=await e.getResourceById({resourceId:t});o=r?.workingMemory||null}else{const t=await this.getThreadById({threadId:e});o=t?.metadata?.workingMemory}return o||null}async getWorkingMemoryTemplate({memoryConfig:e}){const t=this.getMergedThreadConfig(e);if(!t.workingMemory?.enabled)return null;if(t.workingMemory?.schema)try{const e=t.workingMemory.schema;let r;if(isStandardSchemaWithJSON(e))r=e["~standard"].jsonSchema.output({target:"draft-07"});else{r=toStandardSchema(e)["~standard"].jsonSchema.output({target:"draft-07"})}return{format:"json",content:JSON.stringify(r)}}catch(e){throw this.logger.error("Error converting schema",e),e}return{format:"markdown",content:(t.workingMemory.template||this.defaultWorkingMemoryTemplate).trim()}}async getSystemMessage({threadId:e,resourceId:t,memoryConfig:r}){const a=this.getMergedThreadConfig(r);if(!a.workingMemory?.enabled)return null;const n=await this.getWorkingMemoryTemplate({memoryConfig:r}),o=await this.getWorkingMemory({threadId:e,resourceId:t,memoryConfig:a});return n?a?.readOnly?this.getReadOnlyWorkingMemoryInstruction({template:n,data:o}):this.isVNextWorkingMemoryConfig(r)?this.__experimental_getWorkingMemoryToolInstructionVNext({template:n,data:o}):this.getWorkingMemoryToolInstruction({template:n,data:o}):null}async getContext(e){const{threadId:t,resourceId:r,memoryConfig:a}=e,n=this.getMergedThreadConfig(a),o=await this.getMemoryStore(),s=[];let i,c,l=!1,u=null;const d=await this.omEngine;if(d&&(u=await d.getRecord(t,r),u?.activeObservations)){l=!0,"resource"===d.scope&&r&&(c=await d.getOtherThreadsContext(r,t));const e=await d.buildContextSystemMessage({threadId:t,resourceId:r,record:u,unobservedContextBlocks:c});e&&s.push(e);const{OBSERVATION_CONTINUATION_HINT:a}=await import("./constants-BDOITAO3.js");i={id:"om-continuation",role:"user",createdAt:new Date(0),content:{format:2,parts:[{type:"text",text:`<system-reminder>${a}</system-reminder>`}]},threadId:t,resourceId:r}}const p=await this.getSystemMessage({threadId:t,resourceId:r,memoryConfig:n});let m;if(p&&s.push(p),d&&u){const e=u.lastObservedAt?{dateRange:{start:new Date(new Date(u.lastObservedAt).getTime()+1)}}:void 0;if("resource"===d.scope&&r){m=(await o.listMessagesByResourceId({resourceId:r,orderBy:{field:"createdAt",direction:"ASC"},perPage:!1,filter:e})).messages}else{m=(await o.listMessages({threadId:t,orderBy:{field:"createdAt",direction:"ASC"},perPage:!1,filter:e})).messages}}else{const e=n.lastMessages;if(!1===e)m=[];else{m=(await o.listMessages({threadId:t,resourceId:r,orderBy:{field:"createdAt",direction:"DESC"},perPage:"number"==typeof e?e:void 0})).messages.reverse()}}return{systemMessage:s.length>0?s.join("\n\n"):void 0,messages:m,hasObservations:l,omRecord:u,continuationMessage:i,otherThreadsContext:c}}async persistMessages(e){if(0===e.length)return;const t=await this.getMemoryStore();await t.saveMessages({messages:e})}async _initOMEngine(){const e=normalizeObservationalMemoryConfig(this.threadConfig.observationalMemory);if(!e)return null;const t=await this.storage.getStore("memory");if(!t||!t.supportsObservationalMemory)return null;if(!coreFeatures.has("observationalMemory"))throw new Error("Observational memory is enabled but the installed version of @mastra/core does not support it. Please upgrade @mastra/core to a version that includes observational memory support.");if(!1!==e.observation?.bufferTokens&&!coreFeatures.has("asyncBuffering"))throw new Error("Observational memory async buffering is enabled by default but the installed version of @mastra/core does not support it. Either upgrade @mastra/core, @mastra/memory, and your storage adapter (@mastra/libsql, @mastra/pg, or @mastra/mongodb) to the latest version, or explicitly disable async buffering by setting `observation: { bufferTokens: false }` in your observationalMemory config.");if(!coreFeatures.has("request-response-id-rotation"))throw new Error("Observational memory requires @mastra/core support for request-response-id-rotation. Please bump @mastra/core to a newer version.");const{ObservationalMemory:r}=await import("./observational-memory-MBL257AG.js"),a=this.hasRetrievalSearch(e.retrieval)?async e=>{await this.indexObservation(e)}:void 0;return new r({storage:t,scope:e.scope,retrieval:e.retrieval,shareTokenBudget:e.shareTokenBudget,model:e.model,onIndexObservations:a,observation:e.observation?{model:e.observation.model,messageTokens:e.observation.messageTokens,modelSettings:e.observation.modelSettings,maxTokensPerBatch:e.observation.maxTokensPerBatch,providerOptions:e.observation.providerOptions,bufferTokens:e.observation.bufferTokens,bufferActivation:e.observation.bufferActivation,blockAfter:e.observation.blockAfter,previousObserverTokens:e.observation.previousObserverTokens,instruction:e.observation.instruction,threadTitle:e.observation.threadTitle}:void 0,reflection:e.reflection?{model:e.reflection.model,observationTokens:e.reflection.observationTokens,modelSettings:e.reflection.modelSettings,providerOptions:e.reflection.providerOptions,bufferActivation:e.reflection.bufferActivation,blockAfter:e.reflection.blockAfter,instruction:e.reflection.instruction}:void 0})}defaultWorkingMemoryTemplate="\n# User Information\n- **First Name**: \n- **Last Name**: \n- **Location**: \n- **Occupation**: \n- **Interests**: \n- **Goals**: \n- **Events**: \n- **Facts**: \n- **Projects**: \n";getWorkingMemoryToolInstruction({template:e,data:t}){const r="json"===e.format?generateEmptyFromSchema(e.content):null,a=r&&Object.keys(r).length>0;return`WORKING_MEMORY_SYSTEM_INSTRUCTION:\nStore and update any conversation-relevant information by calling the updateWorkingMemory tool. If information might be referenced again - store it!\n\nGuidelines:\n1. Store anything that could be useful later in the conversation\n2. Update proactively when information changes, no matter how small\n3. Use ${"json"===e.format?"JSON":"Markdown"} format for all data\n4. Act naturally - don't mention this system to users. Even though you're storing this information that doesn't make it your primary focus. Do not ask them generally for "information about yourself"\n${"json"!==e.format?"5. IMPORTANT: When calling updateWorkingMemory, the only valid parameter is the memory field. DO NOT pass an object.\n6. IMPORTANT: ALWAYS pass the data you want to store in the memory field as a string. DO NOT pass an object.\n7. IMPORTANT: Data must only be sent as a string no matter which format is used.":""}\n\n\n${"json"!==e.format?`<working_memory_template>\n${e.content}\n</working_memory_template>`:""}\n\n${a?"When working with json data, the object format below represents the template:":""}\n${a?JSON.stringify(r):""}\n\n<working_memory_data>\n${t}\n</working_memory_data>\n\nNotes:\n- Update memory whenever referenced information changes\n- If you're unsure whether to store something, store it (eg if the user tells you information about themselves, call updateWorkingMemory immediately to update it)\n- This system is here so that you can maintain the conversation when your context window is very short. Update your working memory because you may need it to maintain the conversation without the full conversation history\n- Do not remove empty sections - you must include the empty sections along with the ones you're filling in\n- REMEMBER: the way you update your working memory is by calling the updateWorkingMemory tool with the entire ${"json"===e.format?"JSON":"Markdown"} content. The system will store it for you. The user will not see it.\n- IMPORTANT: You MUST call updateWorkingMemory in every response to a prompt where you received relevant information.\n- IMPORTANT: Preserve the ${"json"===e.format?"JSON":"Markdown"} formatting structure above while updating the content.`}__experimental_getWorkingMemoryToolInstructionVNext({template:e,data:t}){return`WORKING_MEMORY_SYSTEM_INSTRUCTION:\nStore and update any conversation-relevant information by calling the updateWorkingMemory tool.\n\nGuidelines:\n1. Store anything that could be useful later in the conversation\n2. Update proactively when information changes, no matter how small\n3. Use ${"json"===e.format?"JSON":"Markdown"} format for all data\n4. Act naturally - don't mention this system to users. Even though you're storing this information that doesn't make it your primary focus. Do not ask them generally for "information about yourself"\n5. If your memory has not changed, you do not need to call the updateWorkingMemory tool. By default it will persist and be available for you in future interactions\n6. Information not being relevant to the current conversation is not a valid reason to replace or remove working memory information. Your working memory spans across multiple conversations and may be needed again later, even if it's not currently relevant.\n\n<working_memory_template>\n${e.content}\n</working_memory_template>\n\n<working_memory_data>\n${t}\n</working_memory_data>\n\nNotes:\n- Update memory whenever referenced information changes\n${e.content!==this.defaultWorkingMemoryTemplate?"- Only store information if it's in the working memory template, do not store other information unless the user asks you to remember it, as that non-template information may be irrelevant":"- If you're unsure whether to store something, store it (eg if the user tells you information about themselves, call updateWorkingMemory immediately to update it)\n"}\n- This system is here so that you can maintain the conversation when your context window is very short. Update your working memory because you may need it to maintain the conversation without the full conversation history\n- REMEMBER: the way you update your working memory is by calling the updateWorkingMemory tool with the ${"json"===e.format?"JSON":"Markdown"} content. The system will store it for you. The user will not see it.\n- IMPORTANT: You MUST call updateWorkingMemory in every response to a prompt where you received relevant information if that information is not already stored.\n- IMPORTANT: Preserve the ${"json"===e.format?"JSON":"Markdown"} formatting structure above while updating the content.\n`}getReadOnlyWorkingMemoryInstruction({data:e}){return`WORKING_MEMORY_SYSTEM_INSTRUCTION (READ-ONLY):\nThe following is your working memory - persistent information about the user and conversation collected over previous interactions. This data is provided for context to help you maintain continuity.\n\n<working_memory_data>\n${e||"No working memory data available."}\n</working_memory_data>\n\nGuidelines:\n1. Use this information to provide personalized and contextually relevant responses\n2. Act naturally - don't mention this system to users. This information should inform your responses without being explicitly referenced\n3. This memory is read-only in the current session - you cannot update it\n\nNotes:\n- This system is here so that you can maintain the conversation when your context window is very short\n- The user will not see the working memory data directly`}isVNextWorkingMemoryConfig(e){if(!e?.workingMemory)return!1;const t=!("schema"in e.workingMemory)&&("string"==typeof e.workingMemory.template||e.workingMemory.template)&&e.workingMemory;return Boolean(t&&"vnext"===t.version)}getObservationEmbeddingIndexName(e){const t=e??384,r=this.vector?.indexSeparator??"_";return`memory${r}observations${r}${t}`}async createObservationEmbeddingIndex(e){const t=e??384,r=this.getObservationEmbeddingIndexName(e);if(void 0===this.vector)throw new Error("Tried to create observation embedding index but no vector db is attached to this Memory instance.");return await this.vector.createIndex({indexName:r,dimension:t}),{indexName:r}}async searchMessages({query:e,resourceId:t,topK:r=10,filter:a}){if(!this.vector)throw new Error("searchMessages requires a vector store. Configure vector and embedder on your Memory instance.");const{embeddings:n,dimension:o}=await this.embedMessageContent(e),{indexName:s}=await this.createObservationEmbeddingIndex(o),i={resource_id:t};a?.threadId&&(i.thread_id=a.threadId),(a?.observedAfter||a?.observedBefore)&&(i.observed_at={...a.observedAfter?{$gt:a.observedAfter.toISOString()}:{},...a.observedBefore?{$lt:a.observedBefore.toISOString()}:{}});const c=[];await Promise.all(n.map((async e=>{const t=await this.vector.query({indexName:s,queryVector:e,topK:r,filter:i});for(const e of t){if(!e.metadata?.thread_id)continue;const t="string"==typeof e.metadata.group_id?e.metadata.group_id:void 0;t&&c.push({threadId:e.metadata.thread_id,score:e.score,groupId:t,range:"string"==typeof e.metadata.range?e.metadata.range:void 0,text:"string"==typeof e.metadata.text?e.metadata.text:void 0,observedAt:"string"==typeof e.metadata.observed_at||e.metadata.observed_at instanceof Date?new Date(e.metadata.observed_at):void 0})}})));const l=new Map;for(const e of c){if(!e.groupId)continue;const t=l.get(e.groupId);(!t||e.score>t.score)&&l.set(e.groupId,e)}return{results:[...l.values()].sort(((e,t)=>t.score-e.score))}}async indexObservation({text:e,groupId:t,range:r,threadId:a,resourceId:n,observedAt:o}){if(!this.vector||!this.embedder)return;const s=await this.embedMessageContent(e);if(0===s.embeddings.length||void 0===s.dimension)return;const{indexName:i}=await this.createObservationEmbeddingIndex(s.dimension);await this.vector.upsert({indexName:i,vectors:s.embeddings,metadata:s.chunks.map((e=>({group_id:t,range:r,thread_id:a,resource_id:n,observed_at:o?.toISOString(),text:e})))})}async updateObservationalMemoryConfig({threadId:e,resourceId:t,config:r}){const a=await this.omEngine;if(!a)throw new Error("Observational memory is not enabled");await a.updateRecordConfig(e,t,r)}async indexMessagesList(e){if(!this.vector||!this.embedder)return;const t=[];let r;if(await Promise.all(e.map((async e=>{let a=null;if(e.content.content&&"string"==typeof e.content.content&&""!==e.content.content.trim())a=e.content.content;else if(e.content.parts&&e.content.parts.length>0){const t=e.content.parts.filter((e=>"text"===e.type)).map((e=>e.text)).join(" ").trim();t&&(a=t)}if(!a)return;const n=await this.embedMessageContent(a);r=n.dimension,t.push({embeddings:n.embeddings,metadata:n.chunks.map((()=>({message_id:e.id,thread_id:e.threadId,resource_id:e.resourceId})))})}))),t.length>0&&void 0!==r){const{indexName:e}=await this.createEmbeddingIndex(r),a=[],n=[];for(const e of t)a.push(...e.embeddings),n.push(...e.metadata);await this.vector.upsert({indexName:e,vectors:a,metadata:n})}}hasRetrievalSearch(e){return!(!e||!0===e)&&(!!e.vector&&!!this.vector&&!!this.embedder)}listTools(e){const t=this.getMergedThreadConfig(e),r={};t.workingMemory?.enabled&&!t.readOnly&&(r.updateWorkingMemory=this.isVNextWorkingMemoryConfig(t)?__experimental_updateWorkingMemoryToolVNext(t):updateWorkingMemoryTool(t));const a=normalizeObservationalMemoryConfig(t.observationalMemory);if(a?.retrieval){const e="object"==typeof a.retrieval?a.retrieval.scope??"resource":"resource";r.recall=recallTool(t,{retrievalScope:e})}return r}async updateMessages({messages:e,memoryConfig:t}){if(0===e.length)return[];const r=await this.getMemoryStore(),a=this.getMergedThreadConfig(t);if(this.vector&&a.semanticRecall){const t=e.filter((e=>void 0!==e.content));if(t.length>0){const e=await r.listMessagesById({messageIds:t.map((e=>e.id))}),n=new Map(e.messages.map((e=>[e.id,e]))),o=[];let s;const i=new Set,c=new Set;await Promise.all(t.map((async e=>{const t=n.get(e.id);if(!t)return;let r=null;const a=e.content;if(a)if("content"in a&&a.content&&"string"==typeof a.content&&""!==a.content.trim())r=a.content;else if("parts"in a&&a.parts&&Array.isArray(a.parts)&&a.parts.length>0){const e=a.parts.filter((e=>"text"===e?.type)).map((e=>e.text)).join(" ").trim();e&&(r=e)}if(r){const a=await this.embedMessageContent(r);s=a.dimension,o.push({embeddings:a.embeddings,metadata:a.chunks.map((()=>({message_id:e.id,thread_id:t.threadId,resource_id:t.resourceId})))}),i.add(e.id)}else c.add(e.id)})));const l=new Set([...c,...i]);if(l.size>0)try{const e=await this.getMemoryVectorIndexes(),t=[...l];await Promise.all(e.map((async e=>{for(let r=0;r<t.length;r+=VECTOR_DELETE_BATCH_SIZE){const a=t.slice(r,r+VECTOR_DELETE_BATCH_SIZE);try{await this.vector.deleteVectors({indexName:e,filter:{message_id:{$in:a}}})}catch{this.logger.debug("Failed to delete vector batch, skipping",{indexName:e,batchOffset:r})}}})))}catch{this.logger.debug("Failed to clean up old vectors during message update")}if(o.length>0&&void 0!==s){const{indexName:e}=await this.createEmbeddingIndex(s,a),t=[],r=[];for(const e of o)t.push(...e.embeddings),r.push(...e.metadata);await this.vector.upsert({indexName:e,vectors:t,metadata:r})}}}return r.updateMessages({messages:e})}async deleteMessages(e,t){let r;if(!Array.isArray(e))throw new Error("Invalid input: must be an array of message IDs or message objects");if(0===e.length)return;r=e.map((e=>{if("string"==typeof e)return e;if(e&&"object"==typeof e&&"id"in e)return e.id;throw new Error("Invalid input: array items must be strings or objects with an id property")}));if(r.filter((e=>!e||"string"!=typeof e)).length>0)throw new Error("All message IDs must be non-empty strings");const a=this.createMemorySpan("delete",t,void 0,{messageCount:r.length});try{const e=await this.getMemoryStore();await e.deleteMessages(r),this.vector&&this.deleteMessageVectors(r),a?.end({output:{success:!0},attributes:{messageCount:r.length}})}catch(e){throw a?.error({error:e,endSpan:!0}),e}}async deleteMessageVectors(e){try{const t=await this.getMemoryVectorIndexes();await Promise.all(t.map((async t=>{for(let r=0;r<e.length;r+=VECTOR_DELETE_BATCH_SIZE){const a=e.slice(r,r+VECTOR_DELETE_BATCH_SIZE);try{await this.vector.deleteVectors({indexName:t,filter:{message_id:{$in:a}}})}catch{this.logger.debug("Failed to delete vector batch, skipping",{indexName:t,batchOffset:r})}}})))}catch{this.logger.debug("Failed to clean up vectors for deleted messages")}}async cloneThread(e,t){const r=await this.getMemoryStore(),a=await r.cloneThread(e),n=this.getMergedThreadConfig(t),o=await this.getThreadById({threadId:e.sourceThreadId}),s=o?.resourceId;if(n.workingMemory?.enabled){const r=n.workingMemory.scope||"resource";if("thread"===r||"resource"===r&&e.resourceId&&e.resourceId!==s){const r=await this.getWorkingMemory({threadId:e.sourceThreadId,resourceId:s,memoryConfig:t});r&&await this.updateWorkingMemory({threadId:a.thread.id,resourceId:a.thread.resourceId,workingMemory:r,memoryConfig:t})}}if(r.supportsObservationalMemory&&s)try{await this.cloneObservationalMemory(r,e.sourceThreadId,s,a)}catch(e){try{await r.deleteThread({threadId:a.thread.id})}catch(e){this.logger.error("Failed to rollback cloned thread after OM clone failure",e)}throw e}return this.vector&&n.semanticRecall&&a.clonedMessages.length>0&&await this.embedClonedMessages(a.clonedMessages,n),a}async cloneObservationalMemory(e,t,r,a){let n=await e.getObservationalMemory(t,r);if(n||(n=await e.getObservationalMemory(null,r)),!n)return;const o=a.thread.id,s=a.thread.resourceId,i=s!==r;if("resource"===n.scope&&!i)return;const c=a.messageIdMap??{},l=await this.hasher,u=this.remapObservationalMemoryRecord(n,{newThreadId:"thread"===n.scope?o:null,newResourceId:s,messageIdMap:c,sourceThreadId:i?t:void 0,clonedThreadId:i?o:void 0,hasher:i?l:void 0}),d=new Date;u.id=crypto.randomUUID(),u.createdAt=d,u.updatedAt=d,await e.insertObservationalMemoryRecord(u)}remapObservationalMemoryRecord(e,t){const{newThreadId:r,newResourceId:a,messageIdMap:n,sourceThreadId:o,clonedThreadId:s,hasher:i}=t,c={...e};if(c.threadId=r,c.resourceId=a,Array.isArray(c.observedMessageIds)?c.observedMessageIds=c.observedMessageIds.map((e=>n[e])).filter((e=>Boolean(e))):c.observedMessageIds=void 0,Array.isArray(c.bufferedMessageIds)?c.bufferedMessageIds=c.bufferedMessageIds.map((e=>n[e])).filter((e=>Boolean(e))):c.bufferedMessageIds=void 0,Array.isArray(c.bufferedObservationChunks)?c.bufferedObservationChunks=c.bufferedObservationChunks.map((e=>({...e,messageIds:Array.isArray(e.messageIds)?e.messageIds.map((e=>n[e])).filter((e=>Boolean(e))):[]}))):c.bufferedObservationChunks=void 0,o&&s&&i){const e=i.h32ToString(o),t=i.h32ToString(s);if(e!==t){const r=r=>r?r.replaceAll(`<thread id="${e}">`,`<thread id="${t}">`):r;c.activeObservations=r(c.activeObservations)??"",c.bufferedReflection=r(c.bufferedReflection),c.bufferedObservationChunks&&(c.bufferedObservationChunks=c.bufferedObservationChunks.map((e=>({...e,observations:r(e.observations)??e.observations}))))}}return c.isObserving=!1,c.isReflecting=!1,c.isBufferingObservation=!1,c.isBufferingReflection=!1,c}async embedClonedMessages(e,t){if(!this.vector||!this.embedder)return;const r=[];let a;if(await Promise.all(e.map((async e=>{let t=null;if(e.content?.content&&"string"==typeof e.content.content&&""!==e.content.content.trim())t=e.content.content;else if(e.content?.parts&&e.content.parts.length>0){const r=e.content.parts.filter((e=>"text"===e.type)).map((e=>e.text)).join(" ").trim();r&&(t=r)}if(!t)return;const n=await this.embedMessageContent(t);a=n.dimension,r.push({embeddings:n.embeddings,metadata:n.chunks.map((()=>({message_id:e.id,thread_id:e.threadId,resource_id:e.resourceId})))})}))),r.length>0&&void 0!==a){const{indexName:e}=await this.createEmbeddingIndex(a,t),n=[],o=[];for(const e of r)n.push(...e.embeddings),o.push(...e.metadata);await this.vector.upsert({indexName:e,vectors:n,metadata:o})}}getCloneMetadata(e){return e?.metadata?.clone?e.metadata.clone:null}isClone(e){return null!==this.getCloneMetadata(e)}async getSourceThread(e){const t=await this.getThreadById({threadId:e}),r=this.getCloneMetadata(t);return r?this.getThreadById({threadId:r.sourceThreadId}):null}async listClones(e,t){let r=t;if(!r){const t=await this.getThreadById({threadId:e});if(!t)return[];r=t.resourceId}const{threads:a}=await this.listThreads({filter:{resourceId:r},perPage:!1});return a.filter((t=>{const r=this.getCloneMetadata(t);return r?.sourceThreadId===e}))}async getCloneHistory(e){const t=[];let r=e;for(;r;){const e=await this.getThreadById({threadId:r});if(!e)break;t.unshift(e);const a=this.getCloneMetadata(e);r=a?.sourceThreadId??null}return t}async getInputProcessors(e=[],t){const r=await super.getInputProcessors(e,t),a=await this.createOMProcessor(e,t);return a&&r.push(a),r}async getOutputProcessors(e=[],t){const r=await super.getOutputProcessors(e,t),a=await this.createOMProcessor(e,t);return a&&r.push(a),r}async createOMProcessor(e=[],t){if(e.some((e=>!("workflow"in e)&&"observational-memory"===e.id)))return null;const r=t?.get("MastraMemory"),a=normalizeObservationalMemoryConfig(r?.memoryConfig?.observationalMemory);if(!normalizeObservationalMemoryConfig((a?this.getMergedThreadConfig({...r?.memoryConfig,observationalMemory:a}):this.threadConfig).observationalMemory))return null;const n=await this.omEngine;if(!n)return null;const{ObservationalMemoryProcessor:o}=await import("./observational-memory-MBL257AG.js");return new o(n,this)}};export{Memory,deepMergeWorkingMemory};
//# sourceMappingURL=/sm/ce354128db4dafe0d15c08a9c90028d882c016cbc24054be5cda377b48e88aeb.map