ai 5.0.0-beta.27 → 5.0.0-beta.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # ai
2
2
 
3
+ ## 5.0.0-beta.28
4
+
5
+ ### Patch Changes
6
+
7
+ - 84343eb: fix (ui): call sendAutomaticallyWhen with updated messages
8
+ - a753b3a: feat (provider/anthropic): cache control for tools
9
+ - Updated dependencies [ac34802]
10
+ - @ai-sdk/provider-utils@3.0.0-beta.6
11
+ - @ai-sdk/gateway@1.0.0-beta.14
12
+
3
13
  ## 5.0.0-beta.27
4
14
 
5
15
  ### Patch Changes
@@ -37,11 +37,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
37
37
  ]))`;continue}else if(o[a]==="$"){r+=`($|(?=[\r
38
38
  ]))`;continue}}if(n.s&&o[a]==="."){r+=s?`${o[a]}\r
39
39
  `:`[${o[a]}\r
40
- ]`;continue}r+=o[a],o[a]==="\\"?i=!0:s&&o[a]==="]"?s=!1:!s&&o[a]==="["&&(s=!0)}try{new RegExp(r)}catch(a){return console.warn(`Could not convert regex pattern at ${t.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),e.source}return r}function ii(e,t){var o,r,i,s,u,c,a;if(t.target==="openAi"&&console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead."),t.target==="openApi3"&&((o=e.keyType)==null?void 0:o._def.typeName)===S.ZodEnum)return{type:"object",required:e.keyType._def.values,properties:e.keyType._def.values.reduce((l,h)=>{var p;return{...l,[h]:(p=j(e.valueType._def,{...t,currentPath:[...t.currentPath,"properties",h]}))!=null?p:{}}},{}),additionalProperties:!1};let n={type:"object",additionalProperties:(r=j(e.valueType._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]}))!=null?r:{}};if(t.target==="openApi3")return n;if(((i=e.keyType)==null?void 0:i._def.typeName)===S.ZodString&&((s=e.keyType._def.checks)!=null&&s.length)){let{type:l,...h}=oi(e.keyType._def,t);return{...n,propertyNames:h}}else{if(((u=e.keyType)==null?void 0:u._def.typeName)===S.ZodEnum)return{...n,propertyNames:{enum:e.keyType._def.values}};if(((c=e.keyType)==null?void 0:c._def.typeName)===S.ZodBranded&&e.keyType._def.type._def.typeName===S.ZodString&&((a=e.keyType._def.type._def.checks)!=null&&a.length)){let{type:l,...h}=ni(e.keyType._def,t);return{...n,propertyNames:h}}}return n}function lm(e,t){if(t.mapStrategy==="record")return ii(e,t);let n=j(e.keyType._def,{...t,currentPath:[...t.currentPath,"items","items","0"]})||{},o=j(e.valueType._def,{...t,currentPath:[...t.currentPath,"items","items","1"]})||{};return{type:"array",maxItems:125,items:{type:"array",items:[n,o],minItems:2,maxItems:2}}}function dm(e){let t=e.values,o=Object.keys(e.values).filter(i=>typeof t[t[i]]!="number").map(i=>t[i]),r=Array.from(new Set(o.map(i=>typeof i)));return{type:r.length===1?r[0]==="string"?"string":"number":["string","number"],enum:o}}function pm(){return{not:{}}}function mm(e){return e.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var bn={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function gm(e,t){if(t.target==="openApi3")return fm(e,t);let n=e.options instanceof Map?Array.from(e.options.values()):e.options;if(n.every(o=>o._def.typeName in bn&&(!o._def.checks||!o._def.checks.length))){let o=n.reduce((r,i)=>{let s=bn[i._def.typeName];return s&&!r.includes(s)?[...r,s]:r},[]);return{type:o.length>1?o:o[0]}}else if(n.every(o=>o._def.typeName==="ZodLiteral"&&!o.description)){let o=n.reduce((r,i)=>{let s=typeof i._def.value;switch(s){case"string":case"number":case"boolean":return[...r,s];case"bigint":return[...r,"integer"];case"object":if(i._def.value===null)return[...r,"null"];case"symbol":case"undefined":case"function":default:return r}},[]);if(o.length===n.length){let r=o.filter((i,s,u)=>u.indexOf(i)===s);return{type:r.length>1?r:r[0],enum:n.reduce((i,s)=>i.includes(s._def.value)?i:[...i,s._def.value],[])}}}else if(n.every(o=>o._def.typeName==="ZodEnum"))return{type:"string",enum:n.reduce((o,r)=>[...o,...r._def.values.filter(i=>!o.includes(i))],[])};return fm(e,t)}var fm=(e,t)=>{let n=(e.options instanceof Map?Array.from(e.options.values()):e.options).map((o,r)=>j(o._def,{...t,currentPath:[...t.currentPath,"anyOf",`${r}`]})).filter(o=>!!o&&(!t.strictUnions||typeof o=="object"&&Object.keys(o).length>0));return n.length?{anyOf:n}:void 0};function hm(e,t){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(e.innerType._def.typeName)&&(!e.innerType._def.checks||!e.innerType._def.checks.length))return t.target==="openApi3"?{type:bn[e.innerType._def.typeName],nullable:!0}:{type:[bn[e.innerType._def.typeName],"null"]};if(t.target==="openApi3"){let o=j(e.innerType._def,{...t,currentPath:[...t.currentPath]});return o&&"$ref"in o?{allOf:[o],nullable:!0}:o&&{...o,nullable:!0}}let n=j(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","0"]});return n&&{anyOf:[n,{type:"null"}]}}function vm(e,t){let n={type:"number"};if(!e.checks)return n;for(let o of e.checks)switch(o.kind){case"int":n.type="integer",Sc(n,"type",o.message,t);break;case"min":t.target==="jsonSchema7"?o.inclusive?B(n,"minimum",o.value,o.message,t):B(n,"exclusiveMinimum",o.value,o.message,t):(o.inclusive||(n.exclusiveMinimum=!0),B(n,"minimum",o.value,o.message,t));break;case"max":t.target==="jsonSchema7"?o.inclusive?B(n,"maximum",o.value,o.message,t):B(n,"exclusiveMaximum",o.value,o.message,t):(o.inclusive||(n.exclusiveMaximum=!0),B(n,"maximum",o.value,o.message,t));break;case"multipleOf":B(n,"multipleOf",o.value,o.message,t);break}return n}function px(e,t){var n,o;return t.removeAdditionalStrategy==="strict"?e.catchall._def.typeName==="ZodNever"?e.unknownKeys!=="strict":(n=j(e.catchall._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]}))!=null?n:!0:e.catchall._def.typeName==="ZodNever"?e.unknownKeys==="passthrough":(o=j(e.catchall._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]}))!=null?o:!0}function ym(e,t){let n=t.target==="openAi",o={type:"object",...Object.entries(e.shape()).reduce((r,[i,s])=>{if(s===void 0||s._def===void 0)return r;let u=s.isOptional();u&&n&&(s instanceof be&&(s=s._def.innerType),s.isNullable()||(s=s.nullable()),u=!1);let c=j(s._def,{...t,currentPath:[...t.currentPath,"properties",i],propertyPath:[...t.currentPath,"properties",i]});return c===void 0?r:{properties:{...r.properties,[i]:c},required:u?r.required:[...r.required,i]}},{properties:{},required:[]}),additionalProperties:px(e,t)};return o.required.length||delete o.required,o}var _m=(e,t)=>{var o;if(t.currentPath.toString()===((o=t.propertyPath)==null?void 0:o.toString()))return j(e.innerType._def,t);let n=j(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","1"]});return n?{anyOf:[{not:{}},n]}:{}};var xm=(e,t)=>{if(t.pipeStrategy==="input")return j(e.in._def,t);if(t.pipeStrategy==="output")return j(e.out._def,t);let n=j(e.in._def,{...t,currentPath:[...t.currentPath,"allOf","0"]}),o=j(e.out._def,{...t,currentPath:[...t.currentPath,"allOf",n?"1":"0"]});return{allOf:[n,o].filter(r=>r!==void 0)}};function bm(e,t){return j(e.type._def,t)}function Sm(e,t){let o={type:"array",uniqueItems:!0,items:j(e.valueType._def,{...t,currentPath:[...t.currentPath,"items"]})};return e.minSize&&B(o,"minItems",e.minSize.value,e.minSize.message,t),e.maxSize&&B(o,"maxItems",e.maxSize.value,e.maxSize.message,t),o}function Im(e,t){return e.rest?{type:"array",minItems:e.items.length,items:e.items.map((n,o)=>j(n._def,{...t,currentPath:[...t.currentPath,"items",`${o}`]})).reduce((n,o)=>o===void 0?n:[...n,o],[]),additionalItems:j(e.rest._def,{...t,currentPath:[...t.currentPath,"additionalItems"]})}:{type:"array",minItems:e.items.length,maxItems:e.items.length,items:e.items.map((n,o)=>j(n._def,{...t,currentPath:[...t.currentPath,"items",`${o}`]})).reduce((n,o)=>o===void 0?n:[...n,o],[])}}function $m(){return{not:{}}}function Tm(){return{}}var km=(e,t)=>j(e.innerType._def,t);function j(e,t,n=!1){var s;let o=t.seen.get(e);if(t.override){let u=(s=t.override)==null?void 0:s.call(t,e,t,o,n);if(u!==Jp)return u}if(o&&!n){let u=mx(o,t);if(u!==void 0)return u}let r={def:e,path:t.currentPath,jsonSchema:void 0};t.seen.set(e,r);let i=gx(e,e.typeName,t);return i&&hx(e,t,i),r.jsonSchema=i,i}var mx=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:fx(t.currentPath,e.path)};case"none":case"seen":return e.path.length<t.currentPath.length&&e.path.every((n,o)=>t.currentPath[o]===n)?(console.warn(`Recursive reference detected at ${t.currentPath.join("/")}! Defaulting to any`),{}):t.$refStrategy==="seen"?{}:void 0}},fx=(e,t)=>{let n=0;for(;n<e.length&&n<t.length&&e[n]===t[n];n++);return[(e.length-n).toString(),...t.slice(n)].join("/")},gx=(e,t,n)=>{switch(t){case S.ZodString:return oi(e,n);case S.ZodNumber:return vm(e,n);case S.ZodObject:return ym(e,n);case S.ZodBigInt:return tm(e,n);case S.ZodBoolean:return rm();case S.ZodDate:return Pc(e,n);case S.ZodUndefined:return $m();case S.ZodNull:return mm(n);case S.ZodArray:return em(e,n);case S.ZodUnion:case S.ZodDiscriminatedUnion:return gm(e,n);case S.ZodIntersection:return sm(e,n);case S.ZodTuple:return Im(e,n);case S.ZodRecord:return ii(e,n);case S.ZodLiteral:return um(e,n);case S.ZodEnum:return am(e);case S.ZodNativeEnum:return dm(e);case S.ZodNullable:return hm(e,n);case S.ZodOptional:return _m(e,n);case S.ZodMap:return lm(e,n);case S.ZodSet:return Sm(e,n);case S.ZodLazy:return j(e.getter()._def,n);case S.ZodPromise:return bm(e,n);case S.ZodNaN:case S.ZodNever:return pm();case S.ZodEffects:return im(e,n);case S.ZodAny:return Qp();case S.ZodUnknown:return Tm();case S.ZodDefault:return om(e,n);case S.ZodBranded:return ni(e,n);case S.ZodReadonly:return km(e,n);case S.ZodCatch:return nm(e,n);case S.ZodPipeline:return xm(e,n);case S.ZodFunction:case S.ZodVoid:case S.ZodSymbol:return;default:return(o=>{})(t)}},hx=(e,t,n)=>(e.description&&(n.description=e.description,t.markdownDescription&&(n.markdownDescription=e.description)),n);var wm=(e,t)=>{var c;let n=qp(t),o=typeof t=="object"&&t.definitions?Object.entries(t.definitions).reduce((a,[l,h])=>{var p;return{...a,[l]:(p=j(h._def,{...n,currentPath:[...n.basePath,n.definitionPath,l]},!0))!=null?p:{}}},{}):void 0,r=typeof t=="string"?t:(t==null?void 0:t.nameStrategy)==="title"||t==null?void 0:t.name,i=(c=j(e._def,r===void 0?n:{...n,currentPath:[...n.basePath,n.definitionPath,r]},!1))!=null?c:{},s=typeof t=="object"&&t.name!==void 0&&t.nameStrategy==="title"?t.name:void 0;s!==void 0&&(i.title=s);let u=r===void 0?o?{...i,[n.definitionPath]:o}:i:{$ref:[...n.$refStrategy==="relative"?[]:n.basePath,n.definitionPath,r].join("/"),[n.definitionPath]:{...o,[r]:i}};return n.target==="jsonSchema7"?u.$schema="http://json-schema.org/draft-07/schema#":(n.target==="jsonSchema2019-09"||n.target==="openAi")&&(u.$schema="https://json-schema.org/draft/2019-09/schema#"),n.target==="openAi"&&("anyOf"in u||"oneOf"in u||"allOf"in u||"type"in u&&Array.isArray(u.type))&&console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property."),u};var Om=wm;function Sn(...e){return e.reduce((t,n)=>({...t,...n!=null?n:{}}),{})}async function Em(e){return e==null?Promise.resolve():new Promise(t=>setTimeout(t,e))}function In(e){return Object.fromEntries([...e.headers])}var Nc=({prefix:e,size:t=16,alphabet:n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:o="-"}={})=>{let r=()=>{let i=n.length,s=new Array(t);for(let u=0;u<t;u++)s[u]=n[Math.random()*i|0];return s.join("")};if(e==null)return r;if(n.includes(o))throw new Al({argument:"separator",message:`The separator "${o}" must not be part of the alphabet "${n}".`});return()=>`${e}${o}${r()}`},Pm=Nc();function Am(e){return e==null?"unknown error":typeof e=="string"?e:e instanceof Error?e.message:JSON.stringify(e)}function Xe(e){return e instanceof Error&&(e.name==="AbortError"||e.name==="ResponseAborted"||e.name==="TimeoutError")}var vx=["fetch failed","failed to fetch"];function Um({error:e,url:t,requestBodyValues:n}){if(Xe(e))return e;if(e instanceof TypeError&&vx.includes(e.message.toLowerCase())){let o=e.cause;if(o!=null)return new ee({message:`Cannot connect to API: ${o.message}`,cause:o,url:t,requestBodyValues:n,isRetryable:!0})}return e}function zm(e){return Object.fromEntries(Object.entries(e).filter(([t,n])=>n!=null))}var yx=()=>globalThis.fetch,Nm=async({url:e,headers:t={},successfulResponseHandler:n,failedResponseHandler:o,abortSignal:r,fetch:i=yx()})=>{try{let s=await i(e,{method:"GET",headers:zm(t),signal:r}),u=In(s);if(!s.ok){let c;try{c=await o({response:s,url:e,requestBodyValues:{}})}catch(a){throw Xe(a)||ee.isInstance(a)?a:new ee({message:"Failed to process error response",cause:a,statusCode:s.status,url:e,responseHeaders:u,requestBodyValues:{}})}throw c.value}try{return await n({response:s,url:e,requestBodyValues:{}})}catch(c){throw c instanceof Error&&(Xe(c)||ee.isInstance(c))?c:new ee({message:"Failed to process successful response",cause:c,statusCode:s.status,url:e,responseHeaders:u,requestBodyValues:{}})}}catch(s){throw Um({error:s,url:e,requestBodyValues:{}})}};function Mm({mediaType:e,url:t,supportedUrls:n}){return t=t.toLowerCase(),e=e.toLowerCase(),Object.entries(n).map(([o,r])=>{let i=o.toLowerCase();return i==="*"||i==="*/*"?{mediaTypePrefix:"",regexes:r}:{mediaTypePrefix:i.replace(/\*/,""),regexes:r}}).filter(({mediaTypePrefix:o})=>e.startsWith(o)).flatMap(({regexes:o})=>o).some(o=>o.test(t))}function $n({settingValue:e,environmentVariableName:t}){if(typeof e=="string")return e;if(!(e!=null||typeof process=="undefined")&&(e=process.env[t],!(e==null||typeof e!="string")))return e}var _x=/"__proto__"\s*:/,xx=/"constructor"\s*:/;function bx(e){let t=JSON.parse(e);return t===null||typeof t!="object"||_x.test(e)===!1&&xx.test(e)===!1?t:Sx(t)}function Sx(e){let t=[e];for(;t.length;){let n=t;t=[];for(let o of n){if(Object.prototype.hasOwnProperty.call(o,"__proto__"))throw new SyntaxError("Object contains forbidden prototype property");if(Object.prototype.hasOwnProperty.call(o,"constructor")&&Object.prototype.hasOwnProperty.call(o.constructor,"prototype"))throw new SyntaxError("Object contains forbidden prototype property");for(let r in o){let i=o[r];i&&typeof i=="object"&&t.push(i)}}}return e}function jm(e){let{stackTraceLimit:t}=Error;Error.stackTraceLimit=0;try{return bx(e)}finally{Error.stackTraceLimit=t}}var ai=Symbol.for("vercel.ai.validator");function Ix(e){return{[ai]:!0,validate:e}}function $x(e){return typeof e=="object"&&e!==null&&ai in e&&e[ai]===!0&&"validate"in e}function Tx(e){return $x(e)?e:kx(e)}function kx(e){return Ix(async t=>{let n=await e["~standard"].validate(t);return n.issues==null?{success:!0,value:n.value}:{success:!1,error:new ot({value:t,cause:n.issues})}})}async function si({value:e,schema:t}){let n=await sr({value:e,schema:t});if(!n.success)throw ot.wrap({value:e,cause:n.error});return n.value}async function sr({value:e,schema:t}){let n=Tx(t);try{if(n.validate==null)return{success:!0,value:e,rawValue:e};let o=await n.validate(e);return o.success?{success:!0,value:o.value,rawValue:e}:{success:!1,error:ot.wrap({value:e,cause:o.error}),rawValue:e}}catch(o){return{success:!1,error:ot.wrap({value:e,cause:o}),rawValue:e}}}async function wx({text:e,schema:t}){try{let n=jm(e);return t==null?n:si({value:n,schema:t})}catch(n){throw Sr.isInstance(n)||ot.isInstance(n)?n:new Sr({text:e,cause:n})}}async function Ot({text:e,schema:t}){try{let n=jm(e);return t==null?{success:!0,value:n,rawValue:n}:await sr({value:n,schema:t})}catch(n){return{success:!1,error:Sr.isInstance(n)?n:new Sr({text:e,cause:n}),rawValue:void 0}}}function Ox({stream:e,schema:t}){return e.pipeThrough(new TextDecoderStream).pipeThrough(new Xn).pipeThrough(new TransformStream({async transform({data:n},o){n!=="[DONE]"&&o.enqueue(await Ot({text:n,schema:t}))}}))}var Ex=()=>globalThis.fetch,Tn=async({url:e,headers:t,body:n,failedResponseHandler:o,successfulResponseHandler:r,abortSignal:i,fetch:s})=>Px({url:e,headers:{"Content-Type":"application/json",...t},body:{content:JSON.stringify(n),values:n},failedResponseHandler:o,successfulResponseHandler:r,abortSignal:i,fetch:s});var Px=async({url:e,headers:t={},body:n,successfulResponseHandler:o,failedResponseHandler:r,abortSignal:i,fetch:s=Ex()})=>{try{let u=await s(e,{method:"POST",headers:zm(t),body:n.content,signal:i}),c=In(u);if(!u.ok){let a;try{a=await r({response:u,url:e,requestBodyValues:n.values})}catch(l){throw Xe(l)||ee.isInstance(l)?l:new ee({message:"Failed to process error response",cause:l,statusCode:u.status,url:e,responseHeaders:c,requestBodyValues:n.values})}throw a.value}try{return await o({response:u,url:e,requestBodyValues:n.values})}catch(a){throw a instanceof Error&&(Xe(a)||ee.isInstance(a))?a:new ee({message:"Failed to process successful response",cause:a,statusCode:u.status,url:e,responseHeaders:c,requestBodyValues:n.values})}}catch(u){throw Um({error:u,url:e,requestBodyValues:n.values})}};async function De(e){return typeof e=="function"&&(e=e()),Promise.resolve(e)}var Et=({errorSchema:e,errorToMessage:t,isRetryable:n})=>async({response:o,url:r,requestBodyValues:i})=>{let s=await o.text(),u=In(o);if(s.trim()==="")return{responseHeaders:u,value:new ee({message:o.statusText,url:r,requestBodyValues:i,statusCode:o.status,responseHeaders:u,responseBody:s,isRetryable:n==null?void 0:n(o)})};try{let c=await wx({text:s,schema:e});return{responseHeaders:u,value:new ee({message:t(c),url:r,requestBodyValues:i,statusCode:o.status,responseHeaders:u,responseBody:s,data:c,isRetryable:n==null?void 0:n(o,c)})}}catch(c){return{responseHeaders:u,value:new ee({message:o.statusText,url:r,requestBodyValues:i,statusCode:o.status,responseHeaders:u,responseBody:s,isRetryable:n==null?void 0:n(o)})}}},Rm=e=>async({response:t})=>{let n=In(t);if(t.body==null)throw new wl({});return{responseHeaders:n,value:Ox({stream:t.body,schema:e})}};var ur=e=>async({response:t,url:n,requestBodyValues:o})=>{let r=await t.text(),i=await Ot({text:r,schema:e}),s=In(t);if(!i.success)throw new ee({message:"Invalid JSON response",cause:i.error,statusCode:t.status,responseHeaders:s,responseBody:r,url:n,requestBodyValues:o});return{responseHeaders:s,value:i.value,rawValue:i.rawValue}};function Ax(e,t){var n;let o=(n=t==null?void 0:t.useReferences)!=null?n:!1;return Mc(Om(e,{$refStrategy:o?"root":"none",target:"jsonSchema7"}),{validate:async r=>{let i=await e.safeParseAsync(r);return i.success?{success:!0,value:i.data}:{success:!1,error:i.error}}})}function Ux(e,t){var n;let o=(n=t==null?void 0:t.useReferences)!=null?n:!1,r=en(e,{target:"draft-7",io:"output",reused:o?"ref":"inline"});return Mc(r,{validate:async i=>{let s=await rn(e,i);return s.success?{success:!0,value:s.data}:{success:!1,error:s.error}}})}function zx(e){return"_zod"in e}function Nx(e,t){return zx(e)?Ux(e,t):Ax(e,t)}var zc=Symbol.for("vercel.ai.schema");function Mc(e,{validate:t}={}){return{[zc]:!0,_type:void 0,[ai]:!0,jsonSchema:e,validate:t}}function Mx(e){return typeof e=="object"&&e!==null&&zc in e&&e[zc]===!0&&"jsonSchema"in e&&"validate"in e}function kn(e){return e==null?Mc({properties:{},additionalProperties:!1}):Mx(e)?e:Nx(e)}var{btoa:jx,atob:Rx}=globalThis;function wn(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),n=Rx(t);return Uint8Array.from(n,o=>o.codePointAt(0))}function On(e){let t="";for(let n=0;n<e.length;n++)t+=String.fromCodePoint(e[n]);return jx(t)}function Cm(e){return e==null?void 0:e.replace(/\/$/,"")}var Dm="AI_NoOutputSpecifiedError",Zm=`vercel.ai.error.${Dm}`,Cx=Symbol.for(Zm),Dx,ui=class extends Z{constructor({message:n="No output specified."}={}){super({name:Dm,message:n});this[Dx]=!0}static isInstance(n){return Z.hasMarker(n,Zm)}};Dx=Cx;function dt(e,t){let n=new Headers(e!=null?e:{});for(let[o,r]of Object.entries(t))n.has(o)||n.set(o,r);return n}function Lm({status:e,statusText:t,headers:n,textStream:o}){return new Response(o.pipeThrough(new TextEncoderStream),{status:e!=null?e:200,statusText:t,headers:dt(n,{"content-type":"text/plain; charset=utf-8"})})}function ci({response:e,status:t,statusText:n,headers:o,stream:r}){e.writeHead(t!=null?t:200,n,o);let i=r.getReader();(async()=>{try{for(;;){let{done:u,value:c}=await i.read();if(u)break;e.write(c)}}catch(u){throw u}finally{e.end()}})()}function Vm({response:e,status:t,statusText:n,headers:o,textStream:r}){ci({response:e,status:t,statusText:n,headers:Object.fromEntries(dt(o,{"content-type":"text/plain; charset=utf-8"}).entries()),stream:r.pipeThrough(new TextEncoderStream)})}var cr=class extends TransformStream{constructor(){super({transform(t,n){n.enqueue(`data: ${JSON.stringify(t)}
40
+ ]`;continue}r+=o[a],o[a]==="\\"?i=!0:s&&o[a]==="]"?s=!1:!s&&o[a]==="["&&(s=!0)}try{new RegExp(r)}catch(a){return console.warn(`Could not convert regex pattern at ${t.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),e.source}return r}function ii(e,t){var o,r,i,s,u,c,a;if(t.target==="openAi"&&console.warn("Warning: OpenAI may not support records in schemas! Try an array of key-value pairs instead."),t.target==="openApi3"&&((o=e.keyType)==null?void 0:o._def.typeName)===S.ZodEnum)return{type:"object",required:e.keyType._def.values,properties:e.keyType._def.values.reduce((l,h)=>{var p;return{...l,[h]:(p=j(e.valueType._def,{...t,currentPath:[...t.currentPath,"properties",h]}))!=null?p:{}}},{}),additionalProperties:!1};let n={type:"object",additionalProperties:(r=j(e.valueType._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]}))!=null?r:{}};if(t.target==="openApi3")return n;if(((i=e.keyType)==null?void 0:i._def.typeName)===S.ZodString&&((s=e.keyType._def.checks)!=null&&s.length)){let{type:l,...h}=oi(e.keyType._def,t);return{...n,propertyNames:h}}else{if(((u=e.keyType)==null?void 0:u._def.typeName)===S.ZodEnum)return{...n,propertyNames:{enum:e.keyType._def.values}};if(((c=e.keyType)==null?void 0:c._def.typeName)===S.ZodBranded&&e.keyType._def.type._def.typeName===S.ZodString&&((a=e.keyType._def.type._def.checks)!=null&&a.length)){let{type:l,...h}=ni(e.keyType._def,t);return{...n,propertyNames:h}}}return n}function lm(e,t){if(t.mapStrategy==="record")return ii(e,t);let n=j(e.keyType._def,{...t,currentPath:[...t.currentPath,"items","items","0"]})||{},o=j(e.valueType._def,{...t,currentPath:[...t.currentPath,"items","items","1"]})||{};return{type:"array",maxItems:125,items:{type:"array",items:[n,o],minItems:2,maxItems:2}}}function dm(e){let t=e.values,o=Object.keys(e.values).filter(i=>typeof t[t[i]]!="number").map(i=>t[i]),r=Array.from(new Set(o.map(i=>typeof i)));return{type:r.length===1?r[0]==="string"?"string":"number":["string","number"],enum:o}}function pm(){return{not:{}}}function mm(e){return e.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var bn={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function gm(e,t){if(t.target==="openApi3")return fm(e,t);let n=e.options instanceof Map?Array.from(e.options.values()):e.options;if(n.every(o=>o._def.typeName in bn&&(!o._def.checks||!o._def.checks.length))){let o=n.reduce((r,i)=>{let s=bn[i._def.typeName];return s&&!r.includes(s)?[...r,s]:r},[]);return{type:o.length>1?o:o[0]}}else if(n.every(o=>o._def.typeName==="ZodLiteral"&&!o.description)){let o=n.reduce((r,i)=>{let s=typeof i._def.value;switch(s){case"string":case"number":case"boolean":return[...r,s];case"bigint":return[...r,"integer"];case"object":if(i._def.value===null)return[...r,"null"];case"symbol":case"undefined":case"function":default:return r}},[]);if(o.length===n.length){let r=o.filter((i,s,u)=>u.indexOf(i)===s);return{type:r.length>1?r:r[0],enum:n.reduce((i,s)=>i.includes(s._def.value)?i:[...i,s._def.value],[])}}}else if(n.every(o=>o._def.typeName==="ZodEnum"))return{type:"string",enum:n.reduce((o,r)=>[...o,...r._def.values.filter(i=>!o.includes(i))],[])};return fm(e,t)}var fm=(e,t)=>{let n=(e.options instanceof Map?Array.from(e.options.values()):e.options).map((o,r)=>j(o._def,{...t,currentPath:[...t.currentPath,"anyOf",`${r}`]})).filter(o=>!!o&&(!t.strictUnions||typeof o=="object"&&Object.keys(o).length>0));return n.length?{anyOf:n}:void 0};function hm(e,t){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(e.innerType._def.typeName)&&(!e.innerType._def.checks||!e.innerType._def.checks.length))return t.target==="openApi3"?{type:bn[e.innerType._def.typeName],nullable:!0}:{type:[bn[e.innerType._def.typeName],"null"]};if(t.target==="openApi3"){let o=j(e.innerType._def,{...t,currentPath:[...t.currentPath]});return o&&"$ref"in o?{allOf:[o],nullable:!0}:o&&{...o,nullable:!0}}let n=j(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","0"]});return n&&{anyOf:[n,{type:"null"}]}}function vm(e,t){let n={type:"number"};if(!e.checks)return n;for(let o of e.checks)switch(o.kind){case"int":n.type="integer",Sc(n,"type",o.message,t);break;case"min":t.target==="jsonSchema7"?o.inclusive?B(n,"minimum",o.value,o.message,t):B(n,"exclusiveMinimum",o.value,o.message,t):(o.inclusive||(n.exclusiveMinimum=!0),B(n,"minimum",o.value,o.message,t));break;case"max":t.target==="jsonSchema7"?o.inclusive?B(n,"maximum",o.value,o.message,t):B(n,"exclusiveMaximum",o.value,o.message,t):(o.inclusive||(n.exclusiveMaximum=!0),B(n,"maximum",o.value,o.message,t));break;case"multipleOf":B(n,"multipleOf",o.value,o.message,t);break}return n}function px(e,t){var n,o;return t.removeAdditionalStrategy==="strict"?e.catchall._def.typeName==="ZodNever"?e.unknownKeys!=="strict":(n=j(e.catchall._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]}))!=null?n:!0:e.catchall._def.typeName==="ZodNever"?e.unknownKeys==="passthrough":(o=j(e.catchall._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]}))!=null?o:!0}function ym(e,t){let n=t.target==="openAi",o={type:"object",...Object.entries(e.shape()).reduce((r,[i,s])=>{if(s===void 0||s._def===void 0)return r;let u=s.isOptional();u&&n&&(s instanceof be&&(s=s._def.innerType),s.isNullable()||(s=s.nullable()),u=!1);let c=j(s._def,{...t,currentPath:[...t.currentPath,"properties",i],propertyPath:[...t.currentPath,"properties",i]});return c===void 0?r:{properties:{...r.properties,[i]:c},required:u?r.required:[...r.required,i]}},{properties:{},required:[]}),additionalProperties:px(e,t)};return o.required.length||delete o.required,o}var _m=(e,t)=>{var o;if(t.currentPath.toString()===((o=t.propertyPath)==null?void 0:o.toString()))return j(e.innerType._def,t);let n=j(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","1"]});return n?{anyOf:[{not:{}},n]}:{}};var xm=(e,t)=>{if(t.pipeStrategy==="input")return j(e.in._def,t);if(t.pipeStrategy==="output")return j(e.out._def,t);let n=j(e.in._def,{...t,currentPath:[...t.currentPath,"allOf","0"]}),o=j(e.out._def,{...t,currentPath:[...t.currentPath,"allOf",n?"1":"0"]});return{allOf:[n,o].filter(r=>r!==void 0)}};function bm(e,t){return j(e.type._def,t)}function Sm(e,t){let o={type:"array",uniqueItems:!0,items:j(e.valueType._def,{...t,currentPath:[...t.currentPath,"items"]})};return e.minSize&&B(o,"minItems",e.minSize.value,e.minSize.message,t),e.maxSize&&B(o,"maxItems",e.maxSize.value,e.maxSize.message,t),o}function Im(e,t){return e.rest?{type:"array",minItems:e.items.length,items:e.items.map((n,o)=>j(n._def,{...t,currentPath:[...t.currentPath,"items",`${o}`]})).reduce((n,o)=>o===void 0?n:[...n,o],[]),additionalItems:j(e.rest._def,{...t,currentPath:[...t.currentPath,"additionalItems"]})}:{type:"array",minItems:e.items.length,maxItems:e.items.length,items:e.items.map((n,o)=>j(n._def,{...t,currentPath:[...t.currentPath,"items",`${o}`]})).reduce((n,o)=>o===void 0?n:[...n,o],[])}}function $m(){return{not:{}}}function Tm(){return{}}var km=(e,t)=>j(e.innerType._def,t);function j(e,t,n=!1){var s;let o=t.seen.get(e);if(t.override){let u=(s=t.override)==null?void 0:s.call(t,e,t,o,n);if(u!==Jp)return u}if(o&&!n){let u=mx(o,t);if(u!==void 0)return u}let r={def:e,path:t.currentPath,jsonSchema:void 0};t.seen.set(e,r);let i=gx(e,e.typeName,t);return i&&hx(e,t,i),r.jsonSchema=i,i}var mx=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:fx(t.currentPath,e.path)};case"none":case"seen":return e.path.length<t.currentPath.length&&e.path.every((n,o)=>t.currentPath[o]===n)?(console.warn(`Recursive reference detected at ${t.currentPath.join("/")}! Defaulting to any`),{}):t.$refStrategy==="seen"?{}:void 0}},fx=(e,t)=>{let n=0;for(;n<e.length&&n<t.length&&e[n]===t[n];n++);return[(e.length-n).toString(),...t.slice(n)].join("/")},gx=(e,t,n)=>{switch(t){case S.ZodString:return oi(e,n);case S.ZodNumber:return vm(e,n);case S.ZodObject:return ym(e,n);case S.ZodBigInt:return tm(e,n);case S.ZodBoolean:return rm();case S.ZodDate:return Pc(e,n);case S.ZodUndefined:return $m();case S.ZodNull:return mm(n);case S.ZodArray:return em(e,n);case S.ZodUnion:case S.ZodDiscriminatedUnion:return gm(e,n);case S.ZodIntersection:return sm(e,n);case S.ZodTuple:return Im(e,n);case S.ZodRecord:return ii(e,n);case S.ZodLiteral:return um(e,n);case S.ZodEnum:return am(e);case S.ZodNativeEnum:return dm(e);case S.ZodNullable:return hm(e,n);case S.ZodOptional:return _m(e,n);case S.ZodMap:return lm(e,n);case S.ZodSet:return Sm(e,n);case S.ZodLazy:return j(e.getter()._def,n);case S.ZodPromise:return bm(e,n);case S.ZodNaN:case S.ZodNever:return pm();case S.ZodEffects:return im(e,n);case S.ZodAny:return Qp();case S.ZodUnknown:return Tm();case S.ZodDefault:return om(e,n);case S.ZodBranded:return ni(e,n);case S.ZodReadonly:return km(e,n);case S.ZodCatch:return nm(e,n);case S.ZodPipeline:return xm(e,n);case S.ZodFunction:case S.ZodVoid:case S.ZodSymbol:return;default:return(o=>{})(t)}},hx=(e,t,n)=>(e.description&&(n.description=e.description,t.markdownDescription&&(n.markdownDescription=e.description)),n);var wm=(e,t)=>{var c;let n=qp(t),o=typeof t=="object"&&t.definitions?Object.entries(t.definitions).reduce((a,[l,h])=>{var p;return{...a,[l]:(p=j(h._def,{...n,currentPath:[...n.basePath,n.definitionPath,l]},!0))!=null?p:{}}},{}):void 0,r=typeof t=="string"?t:(t==null?void 0:t.nameStrategy)==="title"||t==null?void 0:t.name,i=(c=j(e._def,r===void 0?n:{...n,currentPath:[...n.basePath,n.definitionPath,r]},!1))!=null?c:{},s=typeof t=="object"&&t.name!==void 0&&t.nameStrategy==="title"?t.name:void 0;s!==void 0&&(i.title=s);let u=r===void 0?o?{...i,[n.definitionPath]:o}:i:{$ref:[...n.$refStrategy==="relative"?[]:n.basePath,n.definitionPath,r].join("/"),[n.definitionPath]:{...o,[r]:i}};return n.target==="jsonSchema7"?u.$schema="http://json-schema.org/draft-07/schema#":(n.target==="jsonSchema2019-09"||n.target==="openAi")&&(u.$schema="https://json-schema.org/draft/2019-09/schema#"),n.target==="openAi"&&("anyOf"in u||"oneOf"in u||"allOf"in u||"type"in u&&Array.isArray(u.type))&&console.warn("Warning: OpenAI may not support schemas with unions as roots! Try wrapping it in an object property."),u};var Om=wm;function Sn(...e){return e.reduce((t,n)=>({...t,...n!=null?n:{}}),{})}async function Em(e){return e==null?Promise.resolve():new Promise(t=>setTimeout(t,e))}function In(e){return Object.fromEntries([...e.headers])}var Nc=({prefix:e,size:t=16,alphabet:n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:o="-"}={})=>{let r=()=>{let i=n.length,s=new Array(t);for(let u=0;u<t;u++)s[u]=n[Math.random()*i|0];return s.join("")};if(e==null)return r;if(n.includes(o))throw new Al({argument:"separator",message:`The separator "${o}" must not be part of the alphabet "${n}".`});return()=>`${e}${o}${r()}`},Pm=Nc();function Am(e){return e==null?"unknown error":typeof e=="string"?e:e instanceof Error?e.message:JSON.stringify(e)}function Xe(e){return(e instanceof Error||e instanceof DOMException)&&(e.name==="AbortError"||e.name==="ResponseAborted"||e.name==="TimeoutError")}var vx=["fetch failed","failed to fetch"];function Um({error:e,url:t,requestBodyValues:n}){if(Xe(e))return e;if(e instanceof TypeError&&vx.includes(e.message.toLowerCase())){let o=e.cause;if(o!=null)return new ee({message:`Cannot connect to API: ${o.message}`,cause:o,url:t,requestBodyValues:n,isRetryable:!0})}return e}function zm(e){return Object.fromEntries(Object.entries(e).filter(([t,n])=>n!=null))}var yx=()=>globalThis.fetch,Nm=async({url:e,headers:t={},successfulResponseHandler:n,failedResponseHandler:o,abortSignal:r,fetch:i=yx()})=>{try{let s=await i(e,{method:"GET",headers:zm(t),signal:r}),u=In(s);if(!s.ok){let c;try{c=await o({response:s,url:e,requestBodyValues:{}})}catch(a){throw Xe(a)||ee.isInstance(a)?a:new ee({message:"Failed to process error response",cause:a,statusCode:s.status,url:e,responseHeaders:u,requestBodyValues:{}})}throw c.value}try{return await n({response:s,url:e,requestBodyValues:{}})}catch(c){throw c instanceof Error&&(Xe(c)||ee.isInstance(c))?c:new ee({message:"Failed to process successful response",cause:c,statusCode:s.status,url:e,responseHeaders:u,requestBodyValues:{}})}}catch(s){throw Um({error:s,url:e,requestBodyValues:{}})}};function Mm({mediaType:e,url:t,supportedUrls:n}){return t=t.toLowerCase(),e=e.toLowerCase(),Object.entries(n).map(([o,r])=>{let i=o.toLowerCase();return i==="*"||i==="*/*"?{mediaTypePrefix:"",regexes:r}:{mediaTypePrefix:i.replace(/\*/,""),regexes:r}}).filter(({mediaTypePrefix:o})=>e.startsWith(o)).flatMap(({regexes:o})=>o).some(o=>o.test(t))}function $n({settingValue:e,environmentVariableName:t}){if(typeof e=="string")return e;if(!(e!=null||typeof process=="undefined")&&(e=process.env[t],!(e==null||typeof e!="string")))return e}var _x=/"__proto__"\s*:/,xx=/"constructor"\s*:/;function bx(e){let t=JSON.parse(e);return t===null||typeof t!="object"||_x.test(e)===!1&&xx.test(e)===!1?t:Sx(t)}function Sx(e){let t=[e];for(;t.length;){let n=t;t=[];for(let o of n){if(Object.prototype.hasOwnProperty.call(o,"__proto__"))throw new SyntaxError("Object contains forbidden prototype property");if(Object.prototype.hasOwnProperty.call(o,"constructor")&&Object.prototype.hasOwnProperty.call(o.constructor,"prototype"))throw new SyntaxError("Object contains forbidden prototype property");for(let r in o){let i=o[r];i&&typeof i=="object"&&t.push(i)}}}return e}function jm(e){let{stackTraceLimit:t}=Error;Error.stackTraceLimit=0;try{return bx(e)}finally{Error.stackTraceLimit=t}}var ai=Symbol.for("vercel.ai.validator");function Ix(e){return{[ai]:!0,validate:e}}function $x(e){return typeof e=="object"&&e!==null&&ai in e&&e[ai]===!0&&"validate"in e}function Tx(e){return $x(e)?e:kx(e)}function kx(e){return Ix(async t=>{let n=await e["~standard"].validate(t);return n.issues==null?{success:!0,value:n.value}:{success:!1,error:new ot({value:t,cause:n.issues})}})}async function si({value:e,schema:t}){let n=await sr({value:e,schema:t});if(!n.success)throw ot.wrap({value:e,cause:n.error});return n.value}async function sr({value:e,schema:t}){let n=Tx(t);try{if(n.validate==null)return{success:!0,value:e,rawValue:e};let o=await n.validate(e);return o.success?{success:!0,value:o.value,rawValue:e}:{success:!1,error:ot.wrap({value:e,cause:o.error}),rawValue:e}}catch(o){return{success:!1,error:ot.wrap({value:e,cause:o}),rawValue:e}}}async function wx({text:e,schema:t}){try{let n=jm(e);return t==null?n:si({value:n,schema:t})}catch(n){throw Sr.isInstance(n)||ot.isInstance(n)?n:new Sr({text:e,cause:n})}}async function Ot({text:e,schema:t}){try{let n=jm(e);return t==null?{success:!0,value:n,rawValue:n}:await sr({value:n,schema:t})}catch(n){return{success:!1,error:Sr.isInstance(n)?n:new Sr({text:e,cause:n}),rawValue:void 0}}}function Ox({stream:e,schema:t}){return e.pipeThrough(new TextDecoderStream).pipeThrough(new Xn).pipeThrough(new TransformStream({async transform({data:n},o){n!=="[DONE]"&&o.enqueue(await Ot({text:n,schema:t}))}}))}var Ex=()=>globalThis.fetch,Tn=async({url:e,headers:t,body:n,failedResponseHandler:o,successfulResponseHandler:r,abortSignal:i,fetch:s})=>Px({url:e,headers:{"Content-Type":"application/json",...t},body:{content:JSON.stringify(n),values:n},failedResponseHandler:o,successfulResponseHandler:r,abortSignal:i,fetch:s});var Px=async({url:e,headers:t={},body:n,successfulResponseHandler:o,failedResponseHandler:r,abortSignal:i,fetch:s=Ex()})=>{try{let u=await s(e,{method:"POST",headers:zm(t),body:n.content,signal:i}),c=In(u);if(!u.ok){let a;try{a=await r({response:u,url:e,requestBodyValues:n.values})}catch(l){throw Xe(l)||ee.isInstance(l)?l:new ee({message:"Failed to process error response",cause:l,statusCode:u.status,url:e,responseHeaders:c,requestBodyValues:n.values})}throw a.value}try{return await o({response:u,url:e,requestBodyValues:n.values})}catch(a){throw a instanceof Error&&(Xe(a)||ee.isInstance(a))?a:new ee({message:"Failed to process successful response",cause:a,statusCode:u.status,url:e,responseHeaders:c,requestBodyValues:n.values})}}catch(u){throw Um({error:u,url:e,requestBodyValues:n.values})}};async function De(e){return typeof e=="function"&&(e=e()),Promise.resolve(e)}var Et=({errorSchema:e,errorToMessage:t,isRetryable:n})=>async({response:o,url:r,requestBodyValues:i})=>{let s=await o.text(),u=In(o);if(s.trim()==="")return{responseHeaders:u,value:new ee({message:o.statusText,url:r,requestBodyValues:i,statusCode:o.status,responseHeaders:u,responseBody:s,isRetryable:n==null?void 0:n(o)})};try{let c=await wx({text:s,schema:e});return{responseHeaders:u,value:new ee({message:t(c),url:r,requestBodyValues:i,statusCode:o.status,responseHeaders:u,responseBody:s,data:c,isRetryable:n==null?void 0:n(o,c)})}}catch(c){return{responseHeaders:u,value:new ee({message:o.statusText,url:r,requestBodyValues:i,statusCode:o.status,responseHeaders:u,responseBody:s,isRetryable:n==null?void 0:n(o)})}}},Rm=e=>async({response:t})=>{let n=In(t);if(t.body==null)throw new wl({});return{responseHeaders:n,value:Ox({stream:t.body,schema:e})}};var ur=e=>async({response:t,url:n,requestBodyValues:o})=>{let r=await t.text(),i=await Ot({text:r,schema:e}),s=In(t);if(!i.success)throw new ee({message:"Invalid JSON response",cause:i.error,statusCode:t.status,responseHeaders:s,responseBody:r,url:n,requestBodyValues:o});return{responseHeaders:s,value:i.value,rawValue:i.rawValue}};function Ax(e,t){var n;let o=(n=t==null?void 0:t.useReferences)!=null?n:!1;return Mc(Om(e,{$refStrategy:o?"root":"none",target:"jsonSchema7"}),{validate:async r=>{let i=await e.safeParseAsync(r);return i.success?{success:!0,value:i.data}:{success:!1,error:i.error}}})}function Ux(e,t){var n;let o=(n=t==null?void 0:t.useReferences)!=null?n:!1,r=en(e,{target:"draft-7",io:"output",reused:o?"ref":"inline"});return Mc(r,{validate:async i=>{let s=await rn(e,i);return s.success?{success:!0,value:s.data}:{success:!1,error:s.error}}})}function zx(e){return"_zod"in e}function Nx(e,t){return zx(e)?Ux(e,t):Ax(e,t)}var zc=Symbol.for("vercel.ai.schema");function Mc(e,{validate:t}={}){return{[zc]:!0,_type:void 0,[ai]:!0,jsonSchema:e,validate:t}}function Mx(e){return typeof e=="object"&&e!==null&&zc in e&&e[zc]===!0&&"jsonSchema"in e&&"validate"in e}function kn(e){return e==null?Mc({properties:{},additionalProperties:!1}):Mx(e)?e:Nx(e)}var{btoa:jx,atob:Rx}=globalThis;function wn(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),n=Rx(t);return Uint8Array.from(n,o=>o.codePointAt(0))}function On(e){let t="";for(let n=0;n<e.length;n++)t+=String.fromCodePoint(e[n]);return jx(t)}function Cm(e){return e==null?void 0:e.replace(/\/$/,"")}var Dm="AI_NoOutputSpecifiedError",Zm=`vercel.ai.error.${Dm}`,Cx=Symbol.for(Zm),Dx,ui=class extends Z{constructor({message:n="No output specified."}={}){super({name:Dm,message:n});this[Dx]=!0}static isInstance(n){return Z.hasMarker(n,Zm)}};Dx=Cx;function dt(e,t){let n=new Headers(e!=null?e:{});for(let[o,r]of Object.entries(t))n.has(o)||n.set(o,r);return n}function Lm({status:e,statusText:t,headers:n,textStream:o}){return new Response(o.pipeThrough(new TextEncoderStream),{status:e!=null?e:200,statusText:t,headers:dt(n,{"content-type":"text/plain; charset=utf-8"})})}function ci({response:e,status:t,statusText:n,headers:o,stream:r}){e.writeHead(t!=null?t:200,n,o);let i=r.getReader();(async()=>{try{for(;;){let{done:u,value:c}=await i.read();if(u)break;e.write(c)}}catch(u){throw u}finally{e.end()}})()}function Vm({response:e,status:t,statusText:n,headers:o,textStream:r}){ci({response:e,status:t,statusText:n,headers:Object.fromEntries(dt(o,{"content-type":"text/plain; charset=utf-8"}).entries()),stream:r.pipeThrough(new TextEncoderStream)})}var cr=class extends TransformStream{constructor(){super({transform(t,n){n.enqueue(`data: ${JSON.stringify(t)}
41
41
 
42
42
  `)},flush(t){t.enqueue(`data: [DONE]
43
43
 
44
- `)}})}};var li={"content-type":"text/event-stream","cache-control":"no-cache",connection:"keep-alive","x-vercel-ai-ui-message-stream":"v1","x-accel-buffering":"no"};function Fm({status:e,statusText:t,headers:n,stream:o,consumeSseStream:r}){let i=o.pipeThrough(new cr);if(r){let[s,u]=i.tee();i=s,r({stream:u})}return new Response(i.pipeThrough(new TextEncoderStream),{status:e,statusText:t,headers:dt(n,li)})}function Gm({originalMessages:e,responseMessageId:t}){if(e==null)return;let n=e[e.length-1];return(n==null?void 0:n.role)==="assistant"?n.id:typeof t=="function"?t():t}var Pt=d.lazy(()=>d.union([d.null(),d.string(),d.number(),d.boolean(),d.record(d.string(),Pt),d.array(Pt)]));var X=d.record(d.string(),d.record(d.string(),Pt));var WO=d.union([d.strictObject({type:d.literal("text-start"),id:d.string(),providerMetadata:X.optional()}),d.strictObject({type:d.literal("text-delta"),id:d.string(),delta:d.string(),providerMetadata:X.optional()}),d.strictObject({type:d.literal("text-end"),id:d.string(),providerMetadata:X.optional()}),d.strictObject({type:d.literal("error"),errorText:d.string()}),d.strictObject({type:d.literal("tool-input-start"),toolCallId:d.string(),toolName:d.string(),providerExecuted:d.boolean().optional()}),d.strictObject({type:d.literal("tool-input-delta"),toolCallId:d.string(),inputTextDelta:d.string()}),d.strictObject({type:d.literal("tool-input-available"),toolCallId:d.string(),toolName:d.string(),input:d.unknown(),providerExecuted:d.boolean().optional(),providerMetadata:X.optional()}),d.strictObject({type:d.literal("tool-output-available"),toolCallId:d.string(),output:d.unknown(),providerExecuted:d.boolean().optional()}),d.strictObject({type:d.literal("tool-output-error"),toolCallId:d.string(),errorText:d.string(),providerExecuted:d.boolean().optional()}),d.strictObject({type:d.literal("reasoning"),text:d.string(),providerMetadata:X.optional()}),d.strictObject({type:d.literal("reasoning-start"),id:d.string(),providerMetadata:X.optional()}),d.strictObject({type:d.literal("reasoning-delta"),id:d.string(),delta:d.string(),providerMetadata:X.optional()}),d.strictObject({type:d.literal("reasoning-end"),id:d.string(),providerMetadata:X.optional()}),d.strictObject({type:d.literal("reasoning-part-finish")}),d.strictObject({type:d.literal("source-url"),sourceId:d.string(),url:d.string(),title:d.string().optional(),providerMetadata:X.optional()}),d.strictObject({type:d.literal("source-document"),sourceId:d.string(),mediaType:d.string(),title:d.string(),filename:d.string().optional(),providerMetadata:X.optional()}),d.strictObject({type:d.literal("file"),url:d.string(),mediaType:d.string(),providerMetadata:X.optional()}),d.strictObject({type:d.string().startsWith("data-"),id:d.string().optional(),data:d.unknown(),transient:d.boolean().optional()}),d.strictObject({type:d.literal("start-step")}),d.strictObject({type:d.literal("finish-step")}),d.strictObject({type:d.literal("start"),messageId:d.string().optional(),messageMetadata:d.unknown().optional()}),d.strictObject({type:d.literal("finish"),messageMetadata:d.unknown().optional()}),d.strictObject({type:d.literal("abort")}),d.strictObject({type:d.literal("message-metadata"),messageMetadata:d.unknown()})]);function Jm(e){return e.type.startsWith("data-")}function jc(e,t){if(e===void 0&&t===void 0)return;if(e===void 0)return t;if(t===void 0)return e;let n={...e};for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o)){let r=t[o];if(r===void 0)continue;let i=o in e?e[o]:void 0,s=r!==null&&typeof r=="object"&&!Array.isArray(r)&&!(r instanceof Date)&&!(r instanceof RegExp),u=i!=null&&typeof i=="object"&&!Array.isArray(i)&&!(i instanceof Date)&&!(i instanceof RegExp);s&&u?n[o]=jc(i,r):n[o]=r}return n}function Bm(e){let t=["ROOT"],n=-1,o=null;function r(c,a,l){switch(c){case'"':{n=a,t.pop(),t.push(l),t.push("INSIDE_STRING");break}case"f":case"t":case"n":{n=a,o=a,t.pop(),t.push(l),t.push("INSIDE_LITERAL");break}case"-":{t.pop(),t.push(l),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":{n=a,t.pop(),t.push(l),t.push("INSIDE_NUMBER");break}case"{":{n=a,t.pop(),t.push(l),t.push("INSIDE_OBJECT_START");break}case"[":{n=a,t.pop(),t.push(l),t.push("INSIDE_ARRAY_START");break}}}function i(c,a){switch(c){case",":{t.pop(),t.push("INSIDE_OBJECT_AFTER_COMMA");break}case"}":{n=a,t.pop();break}}}function s(c,a){switch(c){case",":{t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{n=a,t.pop();break}}}for(let c=0;c<e.length;c++){let a=e[c];switch(t[t.length-1]){case"ROOT":r(a,c,"FINISH");break;case"INSIDE_OBJECT_START":{switch(a){case'"':{t.pop(),t.push("INSIDE_OBJECT_KEY");break}case"}":{n=c,t.pop();break}}break}case"INSIDE_OBJECT_AFTER_COMMA":{switch(a){case'"':{t.pop(),t.push("INSIDE_OBJECT_KEY");break}}break}case"INSIDE_OBJECT_KEY":{switch(a){case'"':{t.pop(),t.push("INSIDE_OBJECT_AFTER_KEY");break}}break}case"INSIDE_OBJECT_AFTER_KEY":{switch(a){case":":{t.pop(),t.push("INSIDE_OBJECT_BEFORE_VALUE");break}}break}case"INSIDE_OBJECT_BEFORE_VALUE":{r(a,c,"INSIDE_OBJECT_AFTER_VALUE");break}case"INSIDE_OBJECT_AFTER_VALUE":{i(a,c);break}case"INSIDE_STRING":{switch(a){case'"':{t.pop(),n=c;break}case"\\":{t.push("INSIDE_STRING_ESCAPE");break}default:n=c}break}case"INSIDE_ARRAY_START":{switch(a){case"]":{n=c,t.pop();break}default:{n=c,r(a,c,"INSIDE_ARRAY_AFTER_VALUE");break}}break}case"INSIDE_ARRAY_AFTER_VALUE":{switch(a){case",":{t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{n=c,t.pop();break}default:{n=c;break}}break}case"INSIDE_ARRAY_AFTER_COMMA":{r(a,c,"INSIDE_ARRAY_AFTER_VALUE");break}case"INSIDE_STRING_ESCAPE":{t.pop(),n=c;break}case"INSIDE_NUMBER":{switch(a){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{n=c;break}case"e":case"E":case"-":case".":break;case",":{t.pop(),t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&s(a,c),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&i(a,c);break}case"}":{t.pop(),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&i(a,c);break}case"]":{t.pop(),t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&s(a,c);break}default:{t.pop();break}}break}case"INSIDE_LITERAL":{let h=e.substring(o,c+1);!"false".startsWith(h)&&!"true".startsWith(h)&&!"null".startsWith(h)?(t.pop(),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"?i(a,c):t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&s(a,c)):n=c;break}}}let u=e.slice(0,n+1);for(let c=t.length-1;c>=0;c--)switch(t[c]){case"INSIDE_STRING":{u+='"';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":{u+="}";break}case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":{u+="]";break}case"INSIDE_LITERAL":{let l=e.substring(o,e.length);"true".startsWith(l)?u+="true".slice(l.length):"false".startsWith(l)?u+="false".slice(l.length):"null".startsWith(l)&&(u+="null".slice(l.length))}}return u}async function qm(e){if(e===void 0)return{value:void 0,state:"undefined-input"};let t=await Ot({text:e});return t.success?{value:t.value,state:"successful-parse"}:(t=await Ot({text:Bm(e)}),t.success?{value:t.value,state:"repaired-parse"}:{value:void 0,state:"failed-parse"})}function En(e){return e.type.startsWith("tool-")}function Rc(e){return e.type.split("-").slice(1).join("-")}function Wm({lastMessage:e,messageId:t}){return{message:(e==null?void 0:e.role)==="assistant"?e:{id:t,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}function Km({stream:e,messageMetadataSchema:t,dataPartSchemas:n,runUpdateMessageJob:o,onError:r,onToolCall:i,onData:s}){return e.pipeThrough(new TransformStream({async transform(u,c){await o(async({state:a,write:l})=>{var g,O,T,_;function h(x){var $;let k=a.message.parts.find(M=>En(M)&&M.toolCallId===x.toolCallId),f=x,v=k;k!=null?(k.state=x.state,v.input=f.input,v.output=f.output,v.errorText=f.errorText,v.providerExecuted=($=f.providerExecuted)!=null?$:k.providerExecuted,f.providerMetadata!=null&&k.state==="input-available"&&(k.callProviderMetadata=f.providerMetadata)):a.message.parts.push({type:`tool-${x.toolName}`,toolCallId:x.toolCallId,state:x.state,input:f.input,output:f.output,errorText:f.errorText,providerExecuted:f.providerExecuted,...f.providerMetadata!=null?{callProviderMetadata:f.providerMetadata}:{}})}async function p(x){if(x!=null){let k=a.message.metadata!=null?jc(a.message.metadata,x):x;t!=null&&await si({value:k,schema:t}),a.message.metadata=k}}switch(u.type){case"text-start":{let x={type:"text",text:"",providerMetadata:u.providerMetadata,state:"streaming"};a.activeTextParts[u.id]=x,a.message.parts.push(x),l();break}case"text-delta":{let x=a.activeTextParts[u.id];x.text+=u.delta,x.providerMetadata=(g=u.providerMetadata)!=null?g:x.providerMetadata,l();break}case"text-end":{let x=a.activeTextParts[u.id];x.state="done",x.providerMetadata=(O=u.providerMetadata)!=null?O:x.providerMetadata,delete a.activeTextParts[u.id],l();break}case"reasoning-start":{let x={type:"reasoning",text:"",providerMetadata:u.providerMetadata,state:"streaming"};a.activeReasoningParts[u.id]=x,a.message.parts.push(x),l();break}case"reasoning-delta":{let x=a.activeReasoningParts[u.id];x.text+=u.delta,x.providerMetadata=(T=u.providerMetadata)!=null?T:x.providerMetadata,l();break}case"reasoning-end":{let x=a.activeReasoningParts[u.id];x.providerMetadata=(_=u.providerMetadata)!=null?_:x.providerMetadata,x.state="done",delete a.activeReasoningParts[u.id],l();break}case"file":{a.message.parts.push({type:"file",mediaType:u.mediaType,url:u.url}),l();break}case"source-url":{a.message.parts.push({type:"source-url",sourceId:u.sourceId,url:u.url,title:u.title,providerMetadata:u.providerMetadata}),l();break}case"source-document":{a.message.parts.push({type:"source-document",sourceId:u.sourceId,mediaType:u.mediaType,title:u.title,filename:u.filename,providerMetadata:u.providerMetadata}),l();break}case"tool-input-start":{let x=a.message.parts.filter(En);a.partialToolCalls[u.toolCallId]={text:"",toolName:u.toolName,index:x.length},h({toolCallId:u.toolCallId,toolName:u.toolName,state:"input-streaming",input:void 0,providerExecuted:u.providerExecuted}),l();break}case"tool-input-delta":{let x=a.partialToolCalls[u.toolCallId];x.text+=u.inputTextDelta;let{value:k}=await qm(x.text);h({toolCallId:u.toolCallId,toolName:x.toolName,state:"input-streaming",input:k}),l();break}case"tool-input-available":{h({toolCallId:u.toolCallId,toolName:u.toolName,state:"input-available",input:u.input,providerExecuted:u.providerExecuted,providerMetadata:u.providerMetadata}),l(),i&&!u.providerExecuted&&await i({toolCall:u});break}case"tool-output-available":{let x=a.message.parts.filter(En);if(x==null)throw new Error("tool_result must be preceded by a tool_call");let k=x.findIndex(v=>v.toolCallId===u.toolCallId);if(k===-1)throw new Error("tool_result must be preceded by a tool_call with the same toolCallId");let f=Rc(x[k]);h({toolCallId:u.toolCallId,toolName:f,state:"output-available",input:x[k].input,output:u.output,providerExecuted:u.providerExecuted}),l();break}case"tool-output-error":{let x=a.message.parts.filter(En);if(x==null)throw new Error("tool_result must be preceded by a tool_call");let k=x.findIndex(v=>v.toolCallId===u.toolCallId);if(k===-1)throw new Error("tool_result must be preceded by a tool_call with the same toolCallId");let f=Rc(x[k]);h({toolCallId:u.toolCallId,toolName:f,state:"output-error",input:x[k].input,errorText:u.errorText,providerExecuted:u.providerExecuted}),l();break}case"start-step":{a.message.parts.push({type:"step-start"});break}case"finish-step":{a.activeTextParts={},a.activeReasoningParts={};break}case"start":{u.messageId!=null&&(a.message.id=u.messageId),await p(u.messageMetadata),(u.messageId!=null||u.messageMetadata!=null)&&l();break}case"finish":{await p(u.messageMetadata),u.messageMetadata!=null&&l();break}case"message-metadata":{await p(u.messageMetadata),u.messageMetadata!=null&&l();break}case"error":{r==null||r(new Error(u.errorText));break}default:if(Jm(u)){(n==null?void 0:n[u.type])!=null&&await si({value:u.data,schema:n[u.type]});let x=u;if(x.transient){s==null||s(x);break}let k=x.id!=null?a.message.parts.find(f=>x.type===f.type&&x.id===f.id):void 0;k!=null?k.data=x.data:a.message.parts.push(x),s==null||s(x),l()}}c.enqueue(u)})}}))}function Hm({messageId:e,originalMessages:t=[],onFinish:n,onError:o,stream:r}){let i=t==null?void 0:t[t.length-1];(i==null?void 0:i.role)!=="assistant"?i=void 0:e=i.id;let s=!1,u=r.pipeThrough(new TransformStream({transform(l,h){if(l.type==="start"){let p=l;p.messageId==null&&e!=null&&(p.messageId=e)}l.type==="abort"&&(s=!0),h.enqueue(l)}}));if(n==null)return u;let c=Wm({lastMessage:i?structuredClone(i):void 0,messageId:e!=null?e:""});return Km({stream:u,runUpdateMessageJob:async l=>{await l({state:c,write:()=>{}})},onError:o}).pipeThrough(new TransformStream({transform(l,h){h.enqueue(l)},async flush(){let l=c.message.id===(i==null?void 0:i.id);await n({isAborted:s,isContinuation:l,responseMessage:c.message,messages:[...l?t.slice(0,-1):t,c.message]})}}))}function Ym({response:e,status:t,statusText:n,headers:o,stream:r,consumeSseStream:i}){let s=r.pipeThrough(new cr);if(i){let[u,c]=s.tee();s=u,i({stream:c})}ci({response:e,status:t,statusText:n,headers:Object.fromEntries(dt(o,li).entries()),stream:s.pipeThrough(new TextEncoderStream)})}function Cc(e){return e===void 0?[]:Array.isArray(e)?e:[e]}function Pn(e){let t=e.pipeThrough(new TransformStream);return t[Symbol.asyncIterator]=()=>{let n=t.getReader();return{async next(){let{done:o,value:r}=await n.read();return o?{done:!0,value:void 0}:{done:!1,value:r}}}},t}async function Xm({stream:e,onError:t}){let n=e.getReader();try{for(;;){let{done:o}=await n.read();if(o)break}}catch(o){t==null||t(o)}finally{n.releaseLock()}}function Dc(){let e,t;return{promise:new Promise((o,r)=>{e=o,t=r}),resolve:e,reject:t}}function Qm(){let e=[],t=null,n=!1,o=Dc(),r=()=>{n=!0,o.resolve(),e.forEach(s=>s.cancel()),e=[],t==null||t.close()},i=async()=>{if(n&&e.length===0){t==null||t.close();return}if(e.length===0)return o=Dc(),await o.promise,i();try{let{value:s,done:u}=await e[0].read();u?(e.shift(),e.length>0?await i():n&&(t==null||t.close())):t==null||t.enqueue(s)}catch(s){t==null||t.error(s),e.shift(),r()}};return{stream:new ReadableStream({start(s){t=s},pull:i,async cancel(){for(let s of e)await s.cancel();e=[],n=!0}}),addStream:s=>{if(n)throw new Error("Cannot add inner stream: outer stream is closed");e.push(s.getReader()),o.resolve()},close:()=>{n=!0,o.resolve(),e.length===0&&(t==null||t.close())},terminate:r}}var At=class{constructor(){this.status={type:"pending"};this._resolve=void 0;this._reject=void 0}get promise(){return this._promise?this._promise:(this._promise=new Promise((t,n)=>{this.status.type==="resolved"?t(this.status.value):this.status.type==="rejected"&&n(this.status.error),this._resolve=t,this._reject=n}),this._promise)}resolve(t){var n;this.status={type:"resolved",value:t},this._promise&&((n=this._resolve)==null||n.call(this,t))}reject(t){var n;this.status={type:"rejected",error:t},this._promise&&((n=this._reject)==null||n.call(this,t))}};function ef(){var e,t;return(t=(e=globalThis==null?void 0:globalThis.performance)==null?void 0:e.now())!=null?t:Date.now()}var tf="AI_InvalidArgumentError",rf=`vercel.ai.error.${tf}`,Zx=Symbol.for(rf),Lx,he=class extends Z{constructor({parameter:n,value:o,message:r}){super({name:tf,message:`Invalid argument for parameter ${n}: ${r}`});this[Lx]=!0;this.parameter=n,this.value=o}static isInstance(n){return Z.hasMarker(n,rf)}};Lx=Zx;var nf="AI_RetryError",of=`vercel.ai.error.${nf}`,Vx=Symbol.for(of),Fx,An=class extends Z{constructor({message:n,reason:o,errors:r}){super({name:nf,message:n});this[Fx]=!0;this.reason=o,this.errors=r,this.lastError=r[r.length-1]}static isInstance(n){return Z.hasMarker(n,of)}};Fx=Vx;function Gx(e,t){let n=e.responseHeaders;if(!n)return t;let o,r=n["retry-after-ms"];if(r){let s=parseFloat(r);Number.isNaN(s)||(o=s)}let i=n["retry-after"];if(i&&o===void 0){let s=parseFloat(i);Number.isNaN(s)?o=Date.parse(i)-Date.now():o=s*1e3}return o!==void 0&&0<=o&&o<60*1e3?o:t}var af=({maxRetries:e=2,initialDelayInMs:t=2e3,backoffFactor:n=2}={})=>async o=>sf(o,{maxRetries:e,delayInMs:t,backoffFactor:n});async function sf(e,{maxRetries:t,delayInMs:n,backoffFactor:o},r=[]){try{return await e()}catch(i){if(Xe(i)||t===0)throw i;let s=Am(i),u=[...r,i],c=u.length;if(c>t)throw new An({message:`Failed after ${c} attempts. Last error: ${s}`,reason:"maxRetriesExceeded",errors:u});if(i instanceof Error&&ee.isInstance(i)&&i.isRetryable===!0&&c<=t){let a=Gx(i,n);return await Em(a),sf(e,{maxRetries:t,delayInMs:o*n,backoffFactor:o},u)}throw c===1?i:new An({message:`Failed after ${c} attempts with non-retryable error: '${s}'`,reason:"errorNotRetryable",errors:u})}}function uf({maxRetries:e}){if(e!=null){if(!Number.isInteger(e))throw new he({parameter:"maxRetries",value:e,message:"maxRetries must be an integer"});if(e<0)throw new he({parameter:"maxRetries",value:e,message:"maxRetries must be >= 0"})}let t=e!=null?e:2;return{maxRetries:t,retry:af({maxRetries:t})}}var cf=[{mediaType:"image/gif",bytesPrefix:[71,73,70],base64Prefix:"R0lG"},{mediaType:"image/png",bytesPrefix:[137,80,78,71],base64Prefix:"iVBORw"},{mediaType:"image/jpeg",bytesPrefix:[255,216],base64Prefix:"/9j/"},{mediaType:"image/webp",bytesPrefix:[82,73,70,70],base64Prefix:"UklGRg"},{mediaType:"image/bmp",bytesPrefix:[66,77],base64Prefix:"Qk"},{mediaType:"image/tiff",bytesPrefix:[73,73,42,0],base64Prefix:"SUkqAA"},{mediaType:"image/tiff",bytesPrefix:[77,77,0,42],base64Prefix:"TU0AKg"},{mediaType:"image/avif",bytesPrefix:[0,0,0,32,102,116,121,112,97,118,105,102],base64Prefix:"AAAAIGZ0eXBhdmlm"},{mediaType:"image/heic",bytesPrefix:[0,0,0,32,102,116,121,112,104,101,105,99],base64Prefix:"AAAAIGZ0eXBoZWlj"}];var Jx=e=>{let t=typeof e=="string"?wn(e):e,n=(t[6]&127)<<21|(t[7]&127)<<14|(t[8]&127)<<7|t[9]&127;return t.slice(n+10)};function Bx(e){return typeof e=="string"&&e.startsWith("SUQz")||typeof e!="string"&&e.length>10&&e[0]===73&&e[1]===68&&e[2]===51?Jx(e):e}function lf({data:e,signatures:t}){let n=Bx(e);for(let o of t)if(typeof n=="string"?n.startsWith(o.base64Prefix):n.length>=o.bytesPrefix.length&&o.bytesPrefix.every((r,i)=>n[i]===r))return o.mediaType}var df="AI_DownloadError",pf=`vercel.ai.error.${df}`,qx=Symbol.for(pf),Wx,lr=class extends Z{constructor({url:n,statusCode:o,statusText:r,cause:i,message:s=i==null?`Failed to download ${n}: ${o} ${r}`:`Failed to download ${n}: ${i}`}){super({name:df,message:s,cause:i});this[Wx]=!0;this.url=n,this.statusCode=o,this.statusText=r}static isInstance(n){return Z.hasMarker(n,pf)}};Wx=qx;async function mf({url:e}){var n;let t=e.toString();try{let o=await fetch(t);if(!o.ok)throw new lr({url:t,statusCode:o.status,statusText:o.statusText});return{data:new Uint8Array(await o.arrayBuffer()),mediaType:(n=o.headers.get("content-type"))!=null?n:void 0}}catch(o){throw lr.isInstance(o)?o:new lr({url:t,cause:o})}}function ff(e){try{let[t,n]=e.split(",");return{mediaType:t.split(";")[0].split(":")[1],base64Content:n}}catch(t){return{mediaType:void 0,base64Content:void 0}}}var Zc=d.union([d.string(),d.instanceof(Uint8Array),d.instanceof(ArrayBuffer),d.custom(e=>{var t,n;return(n=(t=globalThis.Buffer)==null?void 0:t.isBuffer(e))!=null?n:!1},{message:"Must be a Buffer"})]);function Lc(e){if(e instanceof Uint8Array)return{data:e,mediaType:void 0};if(e instanceof ArrayBuffer)return{data:new Uint8Array(e),mediaType:void 0};if(typeof e=="string")try{e=new URL(e)}catch(t){}if(e instanceof URL&&e.protocol==="data:"){let{mediaType:t,base64Content:n}=ff(e.toString());if(t==null||n==null)throw new Z({name:"InvalidDataContentError",message:`Invalid data URL format in content ${e.toString()}`});return{data:n,mediaType:t}}return{data:e,mediaType:void 0}}function gf(e){return typeof e=="string"?e:e instanceof ArrayBuffer?On(new Uint8Array(e)):On(e)}var hf="AI_InvalidMessageRoleError",vf=`vercel.ai.error.${hf}`,Kx=Symbol.for(vf),Hx,di=class extends Z{constructor({role:n,message:o=`Invalid message role: '${n}'. Must be one of: "system", "user", "assistant", "tool".`}){super({name:hf,message:o});this[Hx]=!0;this.role=n}static isInstance(n){return Z.hasMarker(n,vf)}};Hx=Kx;async function yf({prompt:e,supportedUrls:t,downloadImplementation:n=mf}){let o=await Xx(e.messages,n,t);return[...e.system!=null?[{role:"system",content:e.system}]:[],...e.messages.map(r=>Yx({message:r,downloadedAssets:o}))]}function Yx({message:e,downloadedAssets:t}){let n=e.role;switch(n){case"system":return{role:"system",content:e.content,providerOptions:e.providerOptions};case"user":return typeof e.content=="string"?{role:"user",content:[{type:"text",text:e.content}],providerOptions:e.providerOptions}:{role:"user",content:e.content.map(o=>Qx(o,t)).filter(o=>o.type!=="text"||o.text!==""),providerOptions:e.providerOptions};case"assistant":return typeof e.content=="string"?{role:"assistant",content:[{type:"text",text:e.content}],providerOptions:e.providerOptions}:{role:"assistant",content:e.content.filter(o=>o.type!=="text"||o.text!=="").map(o=>{let r=o.providerOptions;switch(o.type){case"file":{let{data:i,mediaType:s}=Lc(o.data);return{type:"file",data:i,filename:o.filename,mediaType:s!=null?s:o.mediaType,providerOptions:r}}case"reasoning":return{type:"reasoning",text:o.text,providerOptions:r};case"text":return{type:"text",text:o.text,providerOptions:r};case"tool-call":return{type:"tool-call",toolCallId:o.toolCallId,toolName:o.toolName,input:o.input,providerExecuted:o.providerExecuted,providerOptions:r};case"tool-result":return{type:"tool-result",toolCallId:o.toolCallId,toolName:o.toolName,output:o.output,providerOptions:r}}}),providerOptions:e.providerOptions};case"tool":return{role:"tool",content:e.content.map(o=>({type:"tool-result",toolCallId:o.toolCallId,toolName:o.toolName,output:o.output,providerOptions:o.providerOptions})),providerOptions:e.providerOptions};default:{let o=n;throw new di({role:o})}}}async function Xx(e,t,n){let o=e.filter(i=>i.role==="user").map(i=>i.content).filter(i=>Array.isArray(i)).flat().filter(i=>i.type==="image"||i.type==="file").map(i=>{var c;let s=(c=i.mediaType)!=null?c:i.type==="image"?"image/*":void 0,u=i.type==="image"?i.image:i.data;if(typeof u=="string")try{u=new URL(u)}catch(a){}return{mediaType:s,data:u}}).filter(i=>i.data instanceof URL&&i.mediaType!=null&&!Mm({url:i.data.toString(),mediaType:i.mediaType,supportedUrls:n})).map(i=>i.data),r=await Promise.all(o.map(async i=>({url:i,data:await t({url:i})})));return Object.fromEntries(r.map(({url:i,data:s})=>[i.toString(),s]))}function Qx(e,t){var c;if(e.type==="text")return{type:"text",text:e.text,providerOptions:e.providerOptions};let n,o=e.type;switch(o){case"image":n=e.image;break;case"file":n=e.data;break;default:throw new Error(`Unsupported part type: ${o}`)}let{data:r,mediaType:i}=Lc(n),s=i!=null?i:e.mediaType,u=r;if(u instanceof URL){let a=t[u.toString()];a&&(u=a.data,s!=null||(s=a.mediaType))}switch(o){case"image":return(u instanceof Uint8Array||typeof u=="string")&&(s=(c=lf({data:u,signatures:cf}))!=null?c:s),{type:"file",mediaType:s!=null?s:"image/*",filename:void 0,data:u,providerOptions:e.providerOptions};case"file":{if(s==null)throw new Error("Media type is missing for file part");return{type:"file",mediaType:s,filename:e.filename,data:u,providerOptions:e.providerOptions}}}}function _f({maxOutputTokens:e,temperature:t,topP:n,topK:o,presencePenalty:r,frequencyPenalty:i,seed:s,stopSequences:u}){if(e!=null){if(!Number.isInteger(e))throw new he({parameter:"maxOutputTokens",value:e,message:"maxOutputTokens must be an integer"});if(e<1)throw new he({parameter:"maxOutputTokens",value:e,message:"maxOutputTokens must be >= 1"})}if(t!=null&&typeof t!="number")throw new he({parameter:"temperature",value:t,message:"temperature must be a number"});if(n!=null&&typeof n!="number")throw new he({parameter:"topP",value:n,message:"topP must be a number"});if(o!=null&&typeof o!="number")throw new he({parameter:"topK",value:o,message:"topK must be a number"});if(r!=null&&typeof r!="number")throw new he({parameter:"presencePenalty",value:r,message:"presencePenalty must be a number"});if(i!=null&&typeof i!="number")throw new he({parameter:"frequencyPenalty",value:i,message:"frequencyPenalty must be a number"});if(s!=null&&!Number.isInteger(s))throw new he({parameter:"seed",value:s,message:"seed must be an integer"});return{maxOutputTokens:e,temperature:t,topP:n,topK:o,presencePenalty:r,frequencyPenalty:i,stopSequences:u,seed:s}}function xf(e){return e!=null&&Object.keys(e).length>0}function bf({tools:e,toolChoice:t,activeTools:n}){return xf(e)?{tools:(n!=null?Object.entries(e).filter(([r])=>n.includes(r)):Object.entries(e)).map(([r,i])=>{let s=i.type;switch(s){case void 0:case"function":return{type:"function",name:r,description:i.description,inputSchema:kn(i.inputSchema).jsonSchema};case"provider-defined":return{type:"provider-defined",name:r,id:i.id,args:i.args};default:{let u=s;throw new Error(`Unsupported tool type: ${u}`)}}}),toolChoice:t==null?{type:"auto"}:typeof t=="string"?{type:t}:{type:"tool",toolName:t.toolName}}:{tools:void 0,toolChoice:void 0}}var eb="vercel.ai.gateway.error",Vc=Symbol.for(eb),Sf,If,Ie=class Gf extends(If=Error,Sf=Vc,If){constructor({message:t,statusCode:n=500,cause:o}){super(t),this[Sf]=!0,this.statusCode=n,this.cause=o}static isInstance(t){return Gf.hasMarker(t)}static hasMarker(t){return typeof t=="object"&&t!==null&&Vc in t&&t[Vc]===!0}},Jf="GatewayAuthenticationError",tb=`vercel.ai.gateway.error.${Jf}`,$f=Symbol.for(tb),Tf,kf,zn=class Bf extends(kf=Ie,Tf=$f,kf){constructor({message:t="Authentication failed",statusCode:n=401,cause:o}={}){super({message:t,statusCode:n,cause:o}),this[Tf]=!0,this.name=Jf,this.type="authentication_error"}static isInstance(t){return Ie.hasMarker(t)&&$f in t}static createContextualError({apiKeyProvided:t,oidcTokenProvided:n,message:o="Authentication failed",statusCode:r=401,cause:i}){let s;return t?s=`AI Gateway authentication failed: Invalid API key provided.
44
+ `)}})}};var li={"content-type":"text/event-stream","cache-control":"no-cache",connection:"keep-alive","x-vercel-ai-ui-message-stream":"v1","x-accel-buffering":"no"};function Fm({status:e,statusText:t,headers:n,stream:o,consumeSseStream:r}){let i=o.pipeThrough(new cr);if(r){let[s,u]=i.tee();i=s,r({stream:u})}return new Response(i.pipeThrough(new TextEncoderStream),{status:e,statusText:t,headers:dt(n,li)})}function Gm({originalMessages:e,responseMessageId:t}){if(e==null)return;let n=e[e.length-1];return(n==null?void 0:n.role)==="assistant"?n.id:typeof t=="function"?t():t}var Pt=d.lazy(()=>d.union([d.null(),d.string(),d.number(),d.boolean(),d.record(d.string(),Pt),d.array(Pt)]));var X=d.record(d.string(),d.record(d.string(),Pt));var WO=d.union([d.strictObject({type:d.literal("text-start"),id:d.string(),providerMetadata:X.optional()}),d.strictObject({type:d.literal("text-delta"),id:d.string(),delta:d.string(),providerMetadata:X.optional()}),d.strictObject({type:d.literal("text-end"),id:d.string(),providerMetadata:X.optional()}),d.strictObject({type:d.literal("error"),errorText:d.string()}),d.strictObject({type:d.literal("tool-input-start"),toolCallId:d.string(),toolName:d.string(),providerExecuted:d.boolean().optional()}),d.strictObject({type:d.literal("tool-input-delta"),toolCallId:d.string(),inputTextDelta:d.string()}),d.strictObject({type:d.literal("tool-input-available"),toolCallId:d.string(),toolName:d.string(),input:d.unknown(),providerExecuted:d.boolean().optional(),providerMetadata:X.optional()}),d.strictObject({type:d.literal("tool-output-available"),toolCallId:d.string(),output:d.unknown(),providerExecuted:d.boolean().optional()}),d.strictObject({type:d.literal("tool-output-error"),toolCallId:d.string(),errorText:d.string(),providerExecuted:d.boolean().optional()}),d.strictObject({type:d.literal("reasoning"),text:d.string(),providerMetadata:X.optional()}),d.strictObject({type:d.literal("reasoning-start"),id:d.string(),providerMetadata:X.optional()}),d.strictObject({type:d.literal("reasoning-delta"),id:d.string(),delta:d.string(),providerMetadata:X.optional()}),d.strictObject({type:d.literal("reasoning-end"),id:d.string(),providerMetadata:X.optional()}),d.strictObject({type:d.literal("reasoning-part-finish")}),d.strictObject({type:d.literal("source-url"),sourceId:d.string(),url:d.string(),title:d.string().optional(),providerMetadata:X.optional()}),d.strictObject({type:d.literal("source-document"),sourceId:d.string(),mediaType:d.string(),title:d.string(),filename:d.string().optional(),providerMetadata:X.optional()}),d.strictObject({type:d.literal("file"),url:d.string(),mediaType:d.string(),providerMetadata:X.optional()}),d.strictObject({type:d.string().startsWith("data-"),id:d.string().optional(),data:d.unknown(),transient:d.boolean().optional()}),d.strictObject({type:d.literal("start-step")}),d.strictObject({type:d.literal("finish-step")}),d.strictObject({type:d.literal("start"),messageId:d.string().optional(),messageMetadata:d.unknown().optional()}),d.strictObject({type:d.literal("finish"),messageMetadata:d.unknown().optional()}),d.strictObject({type:d.literal("abort")}),d.strictObject({type:d.literal("message-metadata"),messageMetadata:d.unknown()})]);function Jm(e){return e.type.startsWith("data-")}function jc(e,t){if(e===void 0&&t===void 0)return;if(e===void 0)return t;if(t===void 0)return e;let n={...e};for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o)){let r=t[o];if(r===void 0)continue;let i=o in e?e[o]:void 0,s=r!==null&&typeof r=="object"&&!Array.isArray(r)&&!(r instanceof Date)&&!(r instanceof RegExp),u=i!=null&&typeof i=="object"&&!Array.isArray(i)&&!(i instanceof Date)&&!(i instanceof RegExp);s&&u?n[o]=jc(i,r):n[o]=r}return n}function Bm(e){let t=["ROOT"],n=-1,o=null;function r(c,a,l){switch(c){case'"':{n=a,t.pop(),t.push(l),t.push("INSIDE_STRING");break}case"f":case"t":case"n":{n=a,o=a,t.pop(),t.push(l),t.push("INSIDE_LITERAL");break}case"-":{t.pop(),t.push(l),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":{n=a,t.pop(),t.push(l),t.push("INSIDE_NUMBER");break}case"{":{n=a,t.pop(),t.push(l),t.push("INSIDE_OBJECT_START");break}case"[":{n=a,t.pop(),t.push(l),t.push("INSIDE_ARRAY_START");break}}}function i(c,a){switch(c){case",":{t.pop(),t.push("INSIDE_OBJECT_AFTER_COMMA");break}case"}":{n=a,t.pop();break}}}function s(c,a){switch(c){case",":{t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{n=a,t.pop();break}}}for(let c=0;c<e.length;c++){let a=e[c];switch(t[t.length-1]){case"ROOT":r(a,c,"FINISH");break;case"INSIDE_OBJECT_START":{switch(a){case'"':{t.pop(),t.push("INSIDE_OBJECT_KEY");break}case"}":{n=c,t.pop();break}}break}case"INSIDE_OBJECT_AFTER_COMMA":{switch(a){case'"':{t.pop(),t.push("INSIDE_OBJECT_KEY");break}}break}case"INSIDE_OBJECT_KEY":{switch(a){case'"':{t.pop(),t.push("INSIDE_OBJECT_AFTER_KEY");break}}break}case"INSIDE_OBJECT_AFTER_KEY":{switch(a){case":":{t.pop(),t.push("INSIDE_OBJECT_BEFORE_VALUE");break}}break}case"INSIDE_OBJECT_BEFORE_VALUE":{r(a,c,"INSIDE_OBJECT_AFTER_VALUE");break}case"INSIDE_OBJECT_AFTER_VALUE":{i(a,c);break}case"INSIDE_STRING":{switch(a){case'"':{t.pop(),n=c;break}case"\\":{t.push("INSIDE_STRING_ESCAPE");break}default:n=c}break}case"INSIDE_ARRAY_START":{switch(a){case"]":{n=c,t.pop();break}default:{n=c,r(a,c,"INSIDE_ARRAY_AFTER_VALUE");break}}break}case"INSIDE_ARRAY_AFTER_VALUE":{switch(a){case",":{t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{n=c,t.pop();break}default:{n=c;break}}break}case"INSIDE_ARRAY_AFTER_COMMA":{r(a,c,"INSIDE_ARRAY_AFTER_VALUE");break}case"INSIDE_STRING_ESCAPE":{t.pop(),n=c;break}case"INSIDE_NUMBER":{switch(a){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{n=c;break}case"e":case"E":case"-":case".":break;case",":{t.pop(),t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&s(a,c),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&i(a,c);break}case"}":{t.pop(),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&i(a,c);break}case"]":{t.pop(),t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&s(a,c);break}default:{t.pop();break}}break}case"INSIDE_LITERAL":{let h=e.substring(o,c+1);!"false".startsWith(h)&&!"true".startsWith(h)&&!"null".startsWith(h)?(t.pop(),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"?i(a,c):t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&s(a,c)):n=c;break}}}let u=e.slice(0,n+1);for(let c=t.length-1;c>=0;c--)switch(t[c]){case"INSIDE_STRING":{u+='"';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":{u+="}";break}case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":{u+="]";break}case"INSIDE_LITERAL":{let l=e.substring(o,e.length);"true".startsWith(l)?u+="true".slice(l.length):"false".startsWith(l)?u+="false".slice(l.length):"null".startsWith(l)&&(u+="null".slice(l.length))}}return u}async function qm(e){if(e===void 0)return{value:void 0,state:"undefined-input"};let t=await Ot({text:e});return t.success?{value:t.value,state:"successful-parse"}:(t=await Ot({text:Bm(e)}),t.success?{value:t.value,state:"repaired-parse"}:{value:void 0,state:"failed-parse"})}function En(e){return e.type.startsWith("tool-")}function Rc(e){return e.type.split("-").slice(1).join("-")}function Wm({lastMessage:e,messageId:t}){return{message:(e==null?void 0:e.role)==="assistant"?e:{id:t,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}function Km({stream:e,messageMetadataSchema:t,dataPartSchemas:n,runUpdateMessageJob:o,onError:r,onToolCall:i,onData:s}){return e.pipeThrough(new TransformStream({async transform(u,c){await o(async({state:a,write:l})=>{var g,O,T,_;function h(x){var $;let k=a.message.parts.find(M=>En(M)&&M.toolCallId===x.toolCallId),f=x,v=k;k!=null?(k.state=x.state,v.input=f.input,v.output=f.output,v.errorText=f.errorText,v.providerExecuted=($=f.providerExecuted)!=null?$:k.providerExecuted,f.providerMetadata!=null&&k.state==="input-available"&&(k.callProviderMetadata=f.providerMetadata)):a.message.parts.push({type:`tool-${x.toolName}`,toolCallId:x.toolCallId,state:x.state,input:f.input,output:f.output,errorText:f.errorText,providerExecuted:f.providerExecuted,...f.providerMetadata!=null?{callProviderMetadata:f.providerMetadata}:{}})}async function p(x){if(x!=null){let k=a.message.metadata!=null?jc(a.message.metadata,x):x;t!=null&&await si({value:k,schema:t}),a.message.metadata=k}}switch(u.type){case"text-start":{let x={type:"text",text:"",providerMetadata:u.providerMetadata,state:"streaming"};a.activeTextParts[u.id]=x,a.message.parts.push(x),l();break}case"text-delta":{let x=a.activeTextParts[u.id];x.text+=u.delta,x.providerMetadata=(g=u.providerMetadata)!=null?g:x.providerMetadata,l();break}case"text-end":{let x=a.activeTextParts[u.id];x.state="done",x.providerMetadata=(O=u.providerMetadata)!=null?O:x.providerMetadata,delete a.activeTextParts[u.id],l();break}case"reasoning-start":{let x={type:"reasoning",text:"",providerMetadata:u.providerMetadata,state:"streaming"};a.activeReasoningParts[u.id]=x,a.message.parts.push(x),l();break}case"reasoning-delta":{let x=a.activeReasoningParts[u.id];x.text+=u.delta,x.providerMetadata=(T=u.providerMetadata)!=null?T:x.providerMetadata,l();break}case"reasoning-end":{let x=a.activeReasoningParts[u.id];x.providerMetadata=(_=u.providerMetadata)!=null?_:x.providerMetadata,x.state="done",delete a.activeReasoningParts[u.id],l();break}case"file":{a.message.parts.push({type:"file",mediaType:u.mediaType,url:u.url}),l();break}case"source-url":{a.message.parts.push({type:"source-url",sourceId:u.sourceId,url:u.url,title:u.title,providerMetadata:u.providerMetadata}),l();break}case"source-document":{a.message.parts.push({type:"source-document",sourceId:u.sourceId,mediaType:u.mediaType,title:u.title,filename:u.filename,providerMetadata:u.providerMetadata}),l();break}case"tool-input-start":{let x=a.message.parts.filter(En);a.partialToolCalls[u.toolCallId]={text:"",toolName:u.toolName,index:x.length},h({toolCallId:u.toolCallId,toolName:u.toolName,state:"input-streaming",input:void 0,providerExecuted:u.providerExecuted}),l();break}case"tool-input-delta":{let x=a.partialToolCalls[u.toolCallId];x.text+=u.inputTextDelta;let{value:k}=await qm(x.text);h({toolCallId:u.toolCallId,toolName:x.toolName,state:"input-streaming",input:k}),l();break}case"tool-input-available":{h({toolCallId:u.toolCallId,toolName:u.toolName,state:"input-available",input:u.input,providerExecuted:u.providerExecuted,providerMetadata:u.providerMetadata}),l(),i&&!u.providerExecuted&&await i({toolCall:u});break}case"tool-output-available":{let x=a.message.parts.filter(En);if(x==null)throw new Error("tool_result must be preceded by a tool_call");let k=x.findIndex(v=>v.toolCallId===u.toolCallId);if(k===-1)throw new Error("tool_result must be preceded by a tool_call with the same toolCallId");let f=Rc(x[k]);h({toolCallId:u.toolCallId,toolName:f,state:"output-available",input:x[k].input,output:u.output,providerExecuted:u.providerExecuted}),l();break}case"tool-output-error":{let x=a.message.parts.filter(En);if(x==null)throw new Error("tool_result must be preceded by a tool_call");let k=x.findIndex(v=>v.toolCallId===u.toolCallId);if(k===-1)throw new Error("tool_result must be preceded by a tool_call with the same toolCallId");let f=Rc(x[k]);h({toolCallId:u.toolCallId,toolName:f,state:"output-error",input:x[k].input,errorText:u.errorText,providerExecuted:u.providerExecuted}),l();break}case"start-step":{a.message.parts.push({type:"step-start"});break}case"finish-step":{a.activeTextParts={},a.activeReasoningParts={};break}case"start":{u.messageId!=null&&(a.message.id=u.messageId),await p(u.messageMetadata),(u.messageId!=null||u.messageMetadata!=null)&&l();break}case"finish":{await p(u.messageMetadata),u.messageMetadata!=null&&l();break}case"message-metadata":{await p(u.messageMetadata),u.messageMetadata!=null&&l();break}case"error":{r==null||r(new Error(u.errorText));break}default:if(Jm(u)){(n==null?void 0:n[u.type])!=null&&await si({value:u.data,schema:n[u.type]});let x=u;if(x.transient){s==null||s(x);break}let k=x.id!=null?a.message.parts.find(f=>x.type===f.type&&x.id===f.id):void 0;k!=null?k.data=x.data:a.message.parts.push(x),s==null||s(x),l()}}c.enqueue(u)})}}))}function Hm({messageId:e,originalMessages:t=[],onFinish:n,onError:o,stream:r}){let i=t==null?void 0:t[t.length-1];(i==null?void 0:i.role)!=="assistant"?i=void 0:e=i.id;let s=!1,u=r.pipeThrough(new TransformStream({transform(l,h){if(l.type==="start"){let p=l;p.messageId==null&&e!=null&&(p.messageId=e)}l.type==="abort"&&(s=!0),h.enqueue(l)}}));if(n==null)return u;let c=Wm({lastMessage:i?structuredClone(i):void 0,messageId:e!=null?e:""});return Km({stream:u,runUpdateMessageJob:async l=>{await l({state:c,write:()=>{}})},onError:o}).pipeThrough(new TransformStream({transform(l,h){h.enqueue(l)},async flush(){let l=c.message.id===(i==null?void 0:i.id);await n({isAborted:s,isContinuation:l,responseMessage:c.message,messages:[...l?t.slice(0,-1):t,c.message]})}}))}function Ym({response:e,status:t,statusText:n,headers:o,stream:r,consumeSseStream:i}){let s=r.pipeThrough(new cr);if(i){let[u,c]=s.tee();s=u,i({stream:c})}ci({response:e,status:t,statusText:n,headers:Object.fromEntries(dt(o,li).entries()),stream:s.pipeThrough(new TextEncoderStream)})}function Cc(e){return e===void 0?[]:Array.isArray(e)?e:[e]}function Pn(e){let t=e.pipeThrough(new TransformStream);return t[Symbol.asyncIterator]=()=>{let n=t.getReader();return{async next(){let{done:o,value:r}=await n.read();return o?{done:!0,value:void 0}:{done:!1,value:r}}}},t}async function Xm({stream:e,onError:t}){let n=e.getReader();try{for(;;){let{done:o}=await n.read();if(o)break}}catch(o){t==null||t(o)}finally{n.releaseLock()}}function Dc(){let e,t;return{promise:new Promise((o,r)=>{e=o,t=r}),resolve:e,reject:t}}function Qm(){let e=[],t=null,n=!1,o=Dc(),r=()=>{n=!0,o.resolve(),e.forEach(s=>s.cancel()),e=[],t==null||t.close()},i=async()=>{if(n&&e.length===0){t==null||t.close();return}if(e.length===0)return o=Dc(),await o.promise,i();try{let{value:s,done:u}=await e[0].read();u?(e.shift(),e.length>0?await i():n&&(t==null||t.close())):t==null||t.enqueue(s)}catch(s){t==null||t.error(s),e.shift(),r()}};return{stream:new ReadableStream({start(s){t=s},pull:i,async cancel(){for(let s of e)await s.cancel();e=[],n=!0}}),addStream:s=>{if(n)throw new Error("Cannot add inner stream: outer stream is closed");e.push(s.getReader()),o.resolve()},close:()=>{n=!0,o.resolve(),e.length===0&&(t==null||t.close())},terminate:r}}var At=class{constructor(){this.status={type:"pending"};this._resolve=void 0;this._reject=void 0}get promise(){return this._promise?this._promise:(this._promise=new Promise((t,n)=>{this.status.type==="resolved"?t(this.status.value):this.status.type==="rejected"&&n(this.status.error),this._resolve=t,this._reject=n}),this._promise)}resolve(t){var n;this.status={type:"resolved",value:t},this._promise&&((n=this._resolve)==null||n.call(this,t))}reject(t){var n;this.status={type:"rejected",error:t},this._promise&&((n=this._reject)==null||n.call(this,t))}};function ef(){var e,t;return(t=(e=globalThis==null?void 0:globalThis.performance)==null?void 0:e.now())!=null?t:Date.now()}var tf="AI_InvalidArgumentError",rf=`vercel.ai.error.${tf}`,Zx=Symbol.for(rf),Lx,he=class extends Z{constructor({parameter:n,value:o,message:r}){super({name:tf,message:`Invalid argument for parameter ${n}: ${r}`});this[Lx]=!0;this.parameter=n,this.value=o}static isInstance(n){return Z.hasMarker(n,rf)}};Lx=Zx;var nf="AI_RetryError",of=`vercel.ai.error.${nf}`,Vx=Symbol.for(of),Fx,An=class extends Z{constructor({message:n,reason:o,errors:r}){super({name:nf,message:n});this[Fx]=!0;this.reason=o,this.errors=r,this.lastError=r[r.length-1]}static isInstance(n){return Z.hasMarker(n,of)}};Fx=Vx;function Gx(e,t){let n=e.responseHeaders;if(!n)return t;let o,r=n["retry-after-ms"];if(r){let s=parseFloat(r);Number.isNaN(s)||(o=s)}let i=n["retry-after"];if(i&&o===void 0){let s=parseFloat(i);Number.isNaN(s)?o=Date.parse(i)-Date.now():o=s*1e3}return o!==void 0&&0<=o&&o<60*1e3?o:t}var af=({maxRetries:e=2,initialDelayInMs:t=2e3,backoffFactor:n=2}={})=>async o=>sf(o,{maxRetries:e,delayInMs:t,backoffFactor:n});async function sf(e,{maxRetries:t,delayInMs:n,backoffFactor:o},r=[]){try{return await e()}catch(i){if(Xe(i)||t===0)throw i;let s=Am(i),u=[...r,i],c=u.length;if(c>t)throw new An({message:`Failed after ${c} attempts. Last error: ${s}`,reason:"maxRetriesExceeded",errors:u});if(i instanceof Error&&ee.isInstance(i)&&i.isRetryable===!0&&c<=t){let a=Gx(i,n);return await Em(a),sf(e,{maxRetries:t,delayInMs:o*n,backoffFactor:o},u)}throw c===1?i:new An({message:`Failed after ${c} attempts with non-retryable error: '${s}'`,reason:"errorNotRetryable",errors:u})}}function uf({maxRetries:e}){if(e!=null){if(!Number.isInteger(e))throw new he({parameter:"maxRetries",value:e,message:"maxRetries must be an integer"});if(e<0)throw new he({parameter:"maxRetries",value:e,message:"maxRetries must be >= 0"})}let t=e!=null?e:2;return{maxRetries:t,retry:af({maxRetries:t})}}var cf=[{mediaType:"image/gif",bytesPrefix:[71,73,70],base64Prefix:"R0lG"},{mediaType:"image/png",bytesPrefix:[137,80,78,71],base64Prefix:"iVBORw"},{mediaType:"image/jpeg",bytesPrefix:[255,216],base64Prefix:"/9j/"},{mediaType:"image/webp",bytesPrefix:[82,73,70,70],base64Prefix:"UklGRg"},{mediaType:"image/bmp",bytesPrefix:[66,77],base64Prefix:"Qk"},{mediaType:"image/tiff",bytesPrefix:[73,73,42,0],base64Prefix:"SUkqAA"},{mediaType:"image/tiff",bytesPrefix:[77,77,0,42],base64Prefix:"TU0AKg"},{mediaType:"image/avif",bytesPrefix:[0,0,0,32,102,116,121,112,97,118,105,102],base64Prefix:"AAAAIGZ0eXBhdmlm"},{mediaType:"image/heic",bytesPrefix:[0,0,0,32,102,116,121,112,104,101,105,99],base64Prefix:"AAAAIGZ0eXBoZWlj"}];var Jx=e=>{let t=typeof e=="string"?wn(e):e,n=(t[6]&127)<<21|(t[7]&127)<<14|(t[8]&127)<<7|t[9]&127;return t.slice(n+10)};function Bx(e){return typeof e=="string"&&e.startsWith("SUQz")||typeof e!="string"&&e.length>10&&e[0]===73&&e[1]===68&&e[2]===51?Jx(e):e}function lf({data:e,signatures:t}){let n=Bx(e);for(let o of t)if(typeof n=="string"?n.startsWith(o.base64Prefix):n.length>=o.bytesPrefix.length&&o.bytesPrefix.every((r,i)=>n[i]===r))return o.mediaType}var df="AI_DownloadError",pf=`vercel.ai.error.${df}`,qx=Symbol.for(pf),Wx,lr=class extends Z{constructor({url:n,statusCode:o,statusText:r,cause:i,message:s=i==null?`Failed to download ${n}: ${o} ${r}`:`Failed to download ${n}: ${i}`}){super({name:df,message:s,cause:i});this[Wx]=!0;this.url=n,this.statusCode=o,this.statusText=r}static isInstance(n){return Z.hasMarker(n,pf)}};Wx=qx;async function mf({url:e}){var n;let t=e.toString();try{let o=await fetch(t);if(!o.ok)throw new lr({url:t,statusCode:o.status,statusText:o.statusText});return{data:new Uint8Array(await o.arrayBuffer()),mediaType:(n=o.headers.get("content-type"))!=null?n:void 0}}catch(o){throw lr.isInstance(o)?o:new lr({url:t,cause:o})}}function ff(e){try{let[t,n]=e.split(",");return{mediaType:t.split(";")[0].split(":")[1],base64Content:n}}catch(t){return{mediaType:void 0,base64Content:void 0}}}var Zc=d.union([d.string(),d.instanceof(Uint8Array),d.instanceof(ArrayBuffer),d.custom(e=>{var t,n;return(n=(t=globalThis.Buffer)==null?void 0:t.isBuffer(e))!=null?n:!1},{message:"Must be a Buffer"})]);function Lc(e){if(e instanceof Uint8Array)return{data:e,mediaType:void 0};if(e instanceof ArrayBuffer)return{data:new Uint8Array(e),mediaType:void 0};if(typeof e=="string")try{e=new URL(e)}catch(t){}if(e instanceof URL&&e.protocol==="data:"){let{mediaType:t,base64Content:n}=ff(e.toString());if(t==null||n==null)throw new Z({name:"InvalidDataContentError",message:`Invalid data URL format in content ${e.toString()}`});return{data:n,mediaType:t}}return{data:e,mediaType:void 0}}function gf(e){return typeof e=="string"?e:e instanceof ArrayBuffer?On(new Uint8Array(e)):On(e)}var hf="AI_InvalidMessageRoleError",vf=`vercel.ai.error.${hf}`,Kx=Symbol.for(vf),Hx,di=class extends Z{constructor({role:n,message:o=`Invalid message role: '${n}'. Must be one of: "system", "user", "assistant", "tool".`}){super({name:hf,message:o});this[Hx]=!0;this.role=n}static isInstance(n){return Z.hasMarker(n,vf)}};Hx=Kx;async function yf({prompt:e,supportedUrls:t,downloadImplementation:n=mf}){let o=await Xx(e.messages,n,t);return[...e.system!=null?[{role:"system",content:e.system}]:[],...e.messages.map(r=>Yx({message:r,downloadedAssets:o}))]}function Yx({message:e,downloadedAssets:t}){let n=e.role;switch(n){case"system":return{role:"system",content:e.content,providerOptions:e.providerOptions};case"user":return typeof e.content=="string"?{role:"user",content:[{type:"text",text:e.content}],providerOptions:e.providerOptions}:{role:"user",content:e.content.map(o=>Qx(o,t)).filter(o=>o.type!=="text"||o.text!==""),providerOptions:e.providerOptions};case"assistant":return typeof e.content=="string"?{role:"assistant",content:[{type:"text",text:e.content}],providerOptions:e.providerOptions}:{role:"assistant",content:e.content.filter(o=>o.type!=="text"||o.text!=="").map(o=>{let r=o.providerOptions;switch(o.type){case"file":{let{data:i,mediaType:s}=Lc(o.data);return{type:"file",data:i,filename:o.filename,mediaType:s!=null?s:o.mediaType,providerOptions:r}}case"reasoning":return{type:"reasoning",text:o.text,providerOptions:r};case"text":return{type:"text",text:o.text,providerOptions:r};case"tool-call":return{type:"tool-call",toolCallId:o.toolCallId,toolName:o.toolName,input:o.input,providerExecuted:o.providerExecuted,providerOptions:r};case"tool-result":return{type:"tool-result",toolCallId:o.toolCallId,toolName:o.toolName,output:o.output,providerOptions:r}}}),providerOptions:e.providerOptions};case"tool":return{role:"tool",content:e.content.map(o=>({type:"tool-result",toolCallId:o.toolCallId,toolName:o.toolName,output:o.output,providerOptions:o.providerOptions})),providerOptions:e.providerOptions};default:{let o=n;throw new di({role:o})}}}async function Xx(e,t,n){let o=e.filter(i=>i.role==="user").map(i=>i.content).filter(i=>Array.isArray(i)).flat().filter(i=>i.type==="image"||i.type==="file").map(i=>{var c;let s=(c=i.mediaType)!=null?c:i.type==="image"?"image/*":void 0,u=i.type==="image"?i.image:i.data;if(typeof u=="string")try{u=new URL(u)}catch(a){}return{mediaType:s,data:u}}).filter(i=>i.data instanceof URL&&i.mediaType!=null&&!Mm({url:i.data.toString(),mediaType:i.mediaType,supportedUrls:n})).map(i=>i.data),r=await Promise.all(o.map(async i=>({url:i,data:await t({url:i})})));return Object.fromEntries(r.map(({url:i,data:s})=>[i.toString(),s]))}function Qx(e,t){var c;if(e.type==="text")return{type:"text",text:e.text,providerOptions:e.providerOptions};let n,o=e.type;switch(o){case"image":n=e.image;break;case"file":n=e.data;break;default:throw new Error(`Unsupported part type: ${o}`)}let{data:r,mediaType:i}=Lc(n),s=i!=null?i:e.mediaType,u=r;if(u instanceof URL){let a=t[u.toString()];a&&(u=a.data,s!=null||(s=a.mediaType))}switch(o){case"image":return(u instanceof Uint8Array||typeof u=="string")&&(s=(c=lf({data:u,signatures:cf}))!=null?c:s),{type:"file",mediaType:s!=null?s:"image/*",filename:void 0,data:u,providerOptions:e.providerOptions};case"file":{if(s==null)throw new Error("Media type is missing for file part");return{type:"file",mediaType:s,filename:e.filename,data:u,providerOptions:e.providerOptions}}}}function _f({maxOutputTokens:e,temperature:t,topP:n,topK:o,presencePenalty:r,frequencyPenalty:i,seed:s,stopSequences:u}){if(e!=null){if(!Number.isInteger(e))throw new he({parameter:"maxOutputTokens",value:e,message:"maxOutputTokens must be an integer"});if(e<1)throw new he({parameter:"maxOutputTokens",value:e,message:"maxOutputTokens must be >= 1"})}if(t!=null&&typeof t!="number")throw new he({parameter:"temperature",value:t,message:"temperature must be a number"});if(n!=null&&typeof n!="number")throw new he({parameter:"topP",value:n,message:"topP must be a number"});if(o!=null&&typeof o!="number")throw new he({parameter:"topK",value:o,message:"topK must be a number"});if(r!=null&&typeof r!="number")throw new he({parameter:"presencePenalty",value:r,message:"presencePenalty must be a number"});if(i!=null&&typeof i!="number")throw new he({parameter:"frequencyPenalty",value:i,message:"frequencyPenalty must be a number"});if(s!=null&&!Number.isInteger(s))throw new he({parameter:"seed",value:s,message:"seed must be an integer"});return{maxOutputTokens:e,temperature:t,topP:n,topK:o,presencePenalty:r,frequencyPenalty:i,stopSequences:u,seed:s}}function xf(e){return e!=null&&Object.keys(e).length>0}function bf({tools:e,toolChoice:t,activeTools:n}){return xf(e)?{tools:(n!=null?Object.entries(e).filter(([r])=>n.includes(r)):Object.entries(e)).map(([r,i])=>{let s=i.type;switch(s){case void 0:case"function":return{type:"function",name:r,description:i.description,inputSchema:kn(i.inputSchema).jsonSchema,providerOptions:i.providerOptions};case"provider-defined":return{type:"provider-defined",name:r,id:i.id,args:i.args};default:{let u=s;throw new Error(`Unsupported tool type: ${u}`)}}}),toolChoice:t==null?{type:"auto"}:typeof t=="string"?{type:t}:{type:"tool",toolName:t.toolName}}:{tools:void 0,toolChoice:void 0}}var eb="vercel.ai.gateway.error",Vc=Symbol.for(eb),Sf,If,Ie=class Gf extends(If=Error,Sf=Vc,If){constructor({message:t,statusCode:n=500,cause:o}){super(t),this[Sf]=!0,this.statusCode=n,this.cause=o}static isInstance(t){return Gf.hasMarker(t)}static hasMarker(t){return typeof t=="object"&&t!==null&&Vc in t&&t[Vc]===!0}},Jf="GatewayAuthenticationError",tb=`vercel.ai.gateway.error.${Jf}`,$f=Symbol.for(tb),Tf,kf,zn=class Bf extends(kf=Ie,Tf=$f,kf){constructor({message:t="Authentication failed",statusCode:n=401,cause:o}={}){super({message:t,statusCode:n,cause:o}),this[Tf]=!0,this.name=Jf,this.type="authentication_error"}static isInstance(t){return Ie.hasMarker(t)&&$f in t}static createContextualError({apiKeyProvided:t,oidcTokenProvided:n,message:o="Authentication failed",statusCode:r=401,cause:i}){let s;return t?s=`AI Gateway authentication failed: Invalid API key provided.
45
45
 
46
46
  The token is expected to be provided via the 'apiKey' option or 'AI_GATEWAY_API_KEY' environment variable.`:n?s=`AI Gateway authentication failed: Invalid OIDC token provided.
47
47
 
package/dist/index.js CHANGED
@@ -976,7 +976,8 @@ function prepareToolsAndToolChoice({
976
976
  type: "function",
977
977
  name: name16,
978
978
  description: tool3.description,
979
- inputSchema: (0, import_provider_utils5.asSchema)(tool3.inputSchema).jsonSchema
979
+ inputSchema: (0, import_provider_utils5.asSchema)(tool3.inputSchema).jsonSchema,
980
+ providerOptions: tool3.providerOptions
980
981
  };
981
982
  case "provider-defined":
982
983
  return {
@@ -8790,8 +8791,8 @@ var AbstractChat = class {
8790
8791
  } : part
8791
8792
  );
8792
8793
  }
8793
- if (this.status !== "streaming" && this.status !== "submitted" && ((_a16 = this.sendAutomaticallyWhen) == null ? void 0 : _a16.call(this, { messages }))) {
8794
- await this.makeRequest({
8794
+ if (this.status !== "streaming" && this.status !== "submitted" && ((_a16 = this.sendAutomaticallyWhen) == null ? void 0 : _a16.call(this, { messages: this.state.messages }))) {
8795
+ this.makeRequest({
8795
8796
  trigger: "submit-message",
8796
8797
  messageId: (_b = this.lastMessage) == null ? void 0 : _b.id
8797
8798
  });