@gram-ai/elements 1.2.5 → 1.3.0

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.
@@ -0,0 +1,54 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./models-BuM4eiir.cjs");var ks=typeof globalThis=="object"?globalThis:typeof self=="object"?self:typeof window=="object"?window:typeof global=="object"?global:{},xe="1.9.0",tn=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function Os(e){var t=new Set([e]),r=new Set,n=e.match(tn);if(!n)return function(){return!1};var s={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(s.prerelease!=null)return function(c){return c===e};function o(i){return r.add(i),!1}function l(i){return t.add(i),!0}return function(c){if(t.has(c))return!0;if(r.has(c))return!1;var u=c.match(tn);if(!u)return o(c);var d={major:+u[1],minor:+u[2],patch:+u[3],prerelease:u[4]};return d.prerelease!=null||s.major!==d.major?o(c):s.major===0?s.minor===d.minor&&s.patch<=d.patch?l(c):o(c):s.minor<=d.minor?l(c):o(c)}}var Ms=Os(xe),Ns=xe.split(".")[0],We=Symbol.for("opentelemetry.js.api."+Ns),Ye=ks;function Er(e,t,r,n){var s;n===void 0&&(n=!1);var o=Ye[We]=(s=Ye[We])!==null&&s!==void 0?s:{version:xe};if(!n&&o[e]){var l=new Error("@opentelemetry/api: Attempted duplicate registration of API: "+e);return r.error(l.stack||l.message),!1}if(o.version!==xe){var l=new Error("@opentelemetry/api: Registration of version v"+o.version+" for "+e+" does not match previously registered API v"+xe);return r.error(l.stack||l.message),!1}return o[e]=t,r.debug("@opentelemetry/api: Registered a global for "+e+" v"+xe+"."),!0}function Xe(e){var t,r,n=(t=Ye[We])===null||t===void 0?void 0:t.version;if(!(!n||!Ms(n)))return(r=Ye[We])===null||r===void 0?void 0:r[e]}function Sr(e,t){t.debug("@opentelemetry/api: Unregistering a global for "+e+" v"+xe+".");var r=Ye[We];r&&delete r[e]}var $s=function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),s,o=[],l;try{for(;(t===void 0||t-- >0)&&!(s=n.next()).done;)o.push(s.value)}catch(i){l={error:i}}finally{try{s&&!s.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},js=function(e,t,r){if(r||arguments.length===2)for(var n=0,s=t.length,o;n<s;n++)(o||!(n in t))&&(o||(o=Array.prototype.slice.call(t,0,n)),o[n]=t[n]);return e.concat(o||Array.prototype.slice.call(t))},Ds=(function(){function e(t){this._namespace=t.namespace||"DiagComponentLogger"}return e.prototype.debug=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return Be("debug",this._namespace,t)},e.prototype.error=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return Be("error",this._namespace,t)},e.prototype.info=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return Be("info",this._namespace,t)},e.prototype.warn=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return Be("warn",this._namespace,t)},e.prototype.verbose=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return Be("verbose",this._namespace,t)},e})();function Be(e,t,r){var n=Xe("diag");if(n)return r.unshift(t),n[e].apply(n,js([],$s(r),!1))}var Q;(function(e){e[e.NONE=0]="NONE",e[e.ERROR=30]="ERROR",e[e.WARN=50]="WARN",e[e.INFO=60]="INFO",e[e.DEBUG=70]="DEBUG",e[e.VERBOSE=80]="VERBOSE",e[e.ALL=9999]="ALL"})(Q||(Q={}));function Us(e,t){e<Q.NONE?e=Q.NONE:e>Q.ALL&&(e=Q.ALL),t=t||{};function r(n,s){var o=t[n];return typeof o=="function"&&e>=s?o.bind(t):function(){}}return{error:r("error",Q.ERROR),warn:r("warn",Q.WARN),info:r("info",Q.INFO),debug:r("debug",Q.DEBUG),verbose:r("verbose",Q.VERBOSE)}}var qs=function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),s,o=[],l;try{for(;(t===void 0||t-- >0)&&!(s=n.next()).done;)o.push(s.value)}catch(i){l={error:i}}finally{try{s&&!s.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Fs=function(e,t,r){if(r||arguments.length===2)for(var n=0,s=t.length,o;n<s;n++)(o||!(n in t))&&(o||(o=Array.prototype.slice.call(t,0,n)),o[n]=t[n]);return e.concat(o||Array.prototype.slice.call(t))},Ls="diag",vt=(function(){function e(){function t(s){return function(){for(var o=[],l=0;l<arguments.length;l++)o[l]=arguments[l];var i=Xe("diag");if(i)return i[s].apply(i,Fs([],qs(o),!1))}}var r=this,n=function(s,o){var l,i,c;if(o===void 0&&(o={logLevel:Q.INFO}),s===r){var u=new Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return r.error((l=u.stack)!==null&&l!==void 0?l:u.message),!1}typeof o=="number"&&(o={logLevel:o});var d=Xe("diag"),p=Us((i=o.logLevel)!==null&&i!==void 0?i:Q.INFO,s);if(d&&!o.suppressOverrideMessage){var h=(c=new Error().stack)!==null&&c!==void 0?c:"<failed to generate stacktrace>";d.warn("Current logger will be overwritten from "+h),p.warn("Current logger will overwrite one already registered from "+h)}return Er("diag",p,r,!0)};r.setLogger=n,r.disable=function(){Sr(Ls,r)},r.createComponentLogger=function(s){return new Ds(s)},r.verbose=t("verbose"),r.debug=t("debug"),r.info=t("info"),r.warn=t("warn"),r.error=t("error")}return e.instance=function(){return this._instance||(this._instance=new e),this._instance},e})();function Vs(e){return Symbol.for(e)}var Hs=(function(){function e(t){var r=this;r._currentContext=t?new Map(t):new Map,r.getValue=function(n){return r._currentContext.get(n)},r.setValue=function(n,s){var o=new e(r._currentContext);return o._currentContext.set(n,s),o},r.deleteValue=function(n){var s=new e(r._currentContext);return s._currentContext.delete(n),s}}return e})(),Bs=new Hs,Zs=function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),s,o=[],l;try{for(;(t===void 0||t-- >0)&&!(s=n.next()).done;)o.push(s.value)}catch(i){l={error:i}}finally{try{s&&!s.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Ks=function(e,t,r){if(r||arguments.length===2)for(var n=0,s=t.length,o;n<s;n++)(o||!(n in t))&&(o||(o=Array.prototype.slice.call(t,0,n)),o[n]=t[n]);return e.concat(o||Array.prototype.slice.call(t))},Gs=(function(){function e(){}return e.prototype.active=function(){return Bs},e.prototype.with=function(t,r,n){for(var s=[],o=3;o<arguments.length;o++)s[o-3]=arguments[o];return r.call.apply(r,Ks([n],Zs(s),!1))},e.prototype.bind=function(t,r){return r},e.prototype.enable=function(){return this},e.prototype.disable=function(){return this},e})(),Js=function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),s,o=[],l;try{for(;(t===void 0||t-- >0)&&!(s=n.next()).done;)o.push(s.value)}catch(i){l={error:i}}finally{try{s&&!s.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},zs=function(e,t,r){if(r||arguments.length===2)for(var n=0,s=t.length,o;n<s;n++)(o||!(n in t))&&(o||(o=Array.prototype.slice.call(t,0,n)),o[n]=t[n]);return e.concat(o||Array.prototype.slice.call(t))},Gt="context",Ws=new Gs,ra=(function(){function e(){}return e.getInstance=function(){return this._instance||(this._instance=new e),this._instance},e.prototype.setGlobalContextManager=function(t){return Er(Gt,t,vt.instance())},e.prototype.active=function(){return this._getContextManager().active()},e.prototype.with=function(t,r,n){for(var s,o=[],l=3;l<arguments.length;l++)o[l-3]=arguments[l];return(s=this._getContextManager()).with.apply(s,zs([t,r,n],Js(o),!1))},e.prototype.bind=function(t,r){return this._getContextManager().bind(t,r)},e.prototype._getContextManager=function(){return Xe(Gt)||Ws},e.prototype.disable=function(){this._getContextManager().disable(),Sr(Gt,vt.instance())},e})(),ur;(function(e){e[e.NONE=0]="NONE",e[e.SAMPLED=1]="SAMPLED"})(ur||(ur={}));var na="0000000000000000",aa="00000000000000000000000000000000",Ys={traceId:aa,spanId:na,traceFlags:ur.NONE},Je=(function(){function e(t){t===void 0&&(t=Ys),this._spanContext=t}return e.prototype.spanContext=function(){return this._spanContext},e.prototype.setAttribute=function(t,r){return this},e.prototype.setAttributes=function(t){return this},e.prototype.addEvent=function(t,r){return this},e.prototype.addLink=function(t){return this},e.prototype.addLinks=function(t){return this},e.prototype.setStatus=function(t){return this},e.prototype.updateName=function(t){return this},e.prototype.end=function(t){},e.prototype.isRecording=function(){return!1},e.prototype.recordException=function(t,r){},e})(),xr=Vs("OpenTelemetry Context Key SPAN");function Rr(e){return e.getValue(xr)||void 0}function Xs(){return Rr(ra.getInstance().active())}function Ar(e,t){return e.setValue(xr,t)}function Qs(e){return e.deleteValue(xr)}function ei(e,t){return Ar(e,new Je(t))}function oa(e){var t;return(t=Rr(e))===null||t===void 0?void 0:t.spanContext()}var ti=/^([0-9a-f]{32})$/i,ri=/^[0-9a-f]{16}$/i;function ni(e){return ti.test(e)&&e!==aa}function ai(e){return ri.test(e)&&e!==na}function sa(e){return ni(e.traceId)&&ai(e.spanId)}function oi(e){return new Je(e)}var Jt=ra.getInstance(),ia=(function(){function e(){}return e.prototype.startSpan=function(t,r,n){n===void 0&&(n=Jt.active());var s=!!r?.root;if(s)return new Je;var o=n&&oa(n);return si(o)&&sa(o)?new Je(o):new Je},e.prototype.startActiveSpan=function(t,r,n,s){var o,l,i;if(!(arguments.length<2)){arguments.length===2?i=r:arguments.length===3?(o=r,i=n):(o=r,l=n,i=s);var c=l??Jt.active(),u=this.startSpan(t,o,c),d=Ar(c,u);return Jt.with(d,i,void 0,u)}},e})();function si(e){return typeof e=="object"&&typeof e.spanId=="string"&&typeof e.traceId=="string"&&typeof e.traceFlags=="number"}var ii=new ia,li=(function(){function e(t,r,n,s){this._provider=t,this.name=r,this.version=n,this.options=s}return e.prototype.startSpan=function(t,r,n){return this._getTracer().startSpan(t,r,n)},e.prototype.startActiveSpan=function(t,r,n,s){var o=this._getTracer();return Reflect.apply(o.startActiveSpan,o,arguments)},e.prototype._getTracer=function(){if(this._delegate)return this._delegate;var t=this._provider.getDelegateTracer(this.name,this.version,this.options);return t?(this._delegate=t,this._delegate):ii},e})(),ui=(function(){function e(){}return e.prototype.getTracer=function(t,r,n){return new ia},e})(),ci=new ui,rn=(function(){function e(){}return e.prototype.getTracer=function(t,r,n){var s;return(s=this.getDelegateTracer(t,r,n))!==null&&s!==void 0?s:new li(this,t,r,n)},e.prototype.getDelegate=function(){var t;return(t=this._delegate)!==null&&t!==void 0?t:ci},e.prototype.setDelegate=function(t){this._delegate=t},e.prototype.getDelegateTracer=function(t,r,n){var s;return(s=this._delegate)===null||s===void 0?void 0:s.getTracer(t,r,n)},e})(),yt;(function(e){e[e.UNSET=0]="UNSET",e[e.OK=1]="OK",e[e.ERROR=2]="ERROR"})(yt||(yt={}));var zt="trace",di=(function(){function e(){this._proxyTracerProvider=new rn,this.wrapSpanContext=oi,this.isSpanContextValid=sa,this.deleteSpan=Qs,this.getSpan=Rr,this.getActiveSpan=Xs,this.getSpanContext=oa,this.setSpan=Ar,this.setSpanContext=ei}return e.getInstance=function(){return this._instance||(this._instance=new e),this._instance},e.prototype.setGlobalTracerProvider=function(t){var r=Er(zt,this._proxyTracerProvider,vt.instance());return r&&this._proxyTracerProvider.setDelegate(t),r},e.prototype.getTracerProvider=function(){return Xe(zt)||this._proxyTracerProvider},e.prototype.getTracer=function(t,r){return this.getTracerProvider().getTracer(t,r)},e.prototype.disable=function(){Sr(zt,vt.instance()),this._proxyTracerProvider=new rn},e})(),pi=di.getInstance();function cr(...e){return e.reduce((t,r)=>({...t,...r??{}}),{})}async function fi(e,t){if(e==null)return Promise.resolve();const r=t?.abortSignal;return new Promise((n,s)=>{if(r?.aborted){s(nn());return}const o=setTimeout(()=>{l(),n()},e),l=()=>{clearTimeout(o),r?.removeEventListener("abort",i)},i=()=>{l(),s(nn())};r?.addEventListener("abort",i)})}function nn(){return new DOMException("Delay was aborted","AbortError")}function st(e){return Object.fromEntries([...e.headers])}var it=({prefix:e,size:t=16,alphabet:r="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:n="-"}={})=>{const s=()=>{const o=r.length,l=new Array(t);for(let i=0;i<t;i++)l[i]=r[Math.random()*o|0];return l.join("")};if(e==null)return s;if(r.includes(n))throw new a.InvalidArgumentError({argument:"separator",message:`The separator "${n}" must not be part of the alphabet "${r}".`});return()=>`${e}${n}${s()}`},mi=it();function la(e){return e==null?"unknown error":typeof e=="string"?e:e instanceof Error?e.message:JSON.stringify(e)}function Re(e){return(e instanceof Error||e instanceof DOMException)&&(e.name==="AbortError"||e.name==="ResponseAborted"||e.name==="TimeoutError")}var hi=["fetch failed","failed to fetch"];function ua({error:e,url:t,requestBodyValues:r}){if(Re(e))return e;if(e instanceof TypeError&&hi.includes(e.message.toLowerCase())){const n=e.cause;if(n!=null)return new a.APICallError({message:`Cannot connect to API: ${n.message}`,cause:n,url:t,requestBodyValues:r,isRetryable:!0})}return e}function Cr(e=globalThis){var t,r,n;return e.window?"runtime/browser":(t=e.navigator)!=null&&t.userAgent?`runtime/${e.navigator.userAgent.toLowerCase()}`:(n=(r=e.process)==null?void 0:r.versions)!=null&&n.node?`runtime/node.js/${e.process.version.substring(0)}`:e.EdgeRuntime?"runtime/vercel-edge":"runtime/unknown"}function gi(e){if(e==null)return{};const t={};if(e instanceof Headers)e.forEach((r,n)=>{t[n.toLowerCase()]=r});else{Array.isArray(e)||(e=Object.entries(e));for(const[r,n]of e)n!=null&&(t[r.toLowerCase()]=n)}return t}function kt(e,...t){const r=new Headers(gi(e)),n=r.get("user-agent")||"";return r.set("user-agent",[n,...t].filter(Boolean).join(" ")),Object.fromEntries(r.entries())}var ca="3.0.16",vi=()=>globalThis.fetch,an=async({url:e,headers:t={},successfulResponseHandler:r,failedResponseHandler:n,abortSignal:s,fetch:o=vi()})=>{try{const l=await o(e,{method:"GET",headers:kt(t,`ai-sdk/provider-utils/${ca}`,Cr()),signal:s}),i=st(l);if(!l.ok){let c;try{c=await n({response:l,url:e,requestBodyValues:{}})}catch(u){throw Re(u)||a.APICallError.isInstance(u)?u:new a.APICallError({message:"Failed to process error response",cause:u,statusCode:l.status,url:e,responseHeaders:i,requestBodyValues:{}})}throw c.value}try{return await r({response:l,url:e,requestBodyValues:{}})}catch(c){throw c instanceof Error&&(Re(c)||a.APICallError.isInstance(c))?c:new a.APICallError({message:"Failed to process successful response",cause:c,statusCode:l.status,url:e,responseHeaders:i,requestBodyValues:{}})}}catch(l){throw ua({error:l,url:e,requestBodyValues:{}})}};function yi({mediaType:e,url:t,supportedUrls:r}){return t=t.toLowerCase(),e=e.toLowerCase(),Object.entries(r).map(([n,s])=>{const o=n.toLowerCase();return o==="*"||o==="*/*"?{mediaTypePrefix:"",regexes:s}:{mediaTypePrefix:o.replace(/\*/,""),regexes:s}}).filter(({mediaTypePrefix:n})=>e.startsWith(n)).flatMap(({regexes:n})=>n).some(n=>n.test(t))}function ht({settingValue:e,environmentVariableName:t}){if(typeof e=="string")return e;if(!(e!=null||typeof process>"u")&&(e=process.env[t],!(e==null||typeof e!="string")))return e}var _i=/"__proto__"\s*:/,bi=/"constructor"\s*:/;function wi(e){const t=JSON.parse(e);return t===null||typeof t!="object"||_i.test(e)===!1&&bi.test(e)===!1?t:Ti(t)}function Ti(e){let t=[e];for(;t.length;){const r=t;t=[];for(const n of r){if(Object.prototype.hasOwnProperty.call(n,"__proto__"))throw new SyntaxError("Object contains forbidden prototype property");if(Object.prototype.hasOwnProperty.call(n,"constructor")&&Object.prototype.hasOwnProperty.call(n.constructor,"prototype"))throw new SyntaxError("Object contains forbidden prototype property");for(const s in n){const o=n[s];o&&typeof o=="object"&&t.push(o)}}}return e}function da(e){const{stackTraceLimit:t}=Error;Error.stackTraceLimit=0;try{return wi(e)}finally{Error.stackTraceLimit=t}}var _t=Symbol.for("vercel.ai.validator");function Ii(e){return{[_t]:!0,validate:e}}function Ei(e){return typeof e=="object"&&e!==null&&_t in e&&e[_t]===!0&&"validate"in e}function De(e){let t;return()=>(t==null&&(t=e()),t)}function Si(e){return Ei(e)?e:typeof e=="function"?e():xi(e)}function xi(e){return Ii(async t=>{const r=await e["~standard"].validate(t);return r.issues==null?{success:!0,value:r.value}:{success:!1,error:new a.TypeValidationError({value:t,cause:r.issues})}})}async function dr({value:e,schema:t}){const r=await Se({value:e,schema:t});if(!r.success)throw a.TypeValidationError.wrap({value:e,cause:r.error});return r.value}async function Se({value:e,schema:t}){const r=Si(t);try{if(r.validate==null)return{success:!0,value:e,rawValue:e};const n=await r.validate(e);return n.success?{success:!0,value:n.value,rawValue:e}:{success:!1,error:a.TypeValidationError.wrap({value:e,cause:n.error}),rawValue:e}}catch(n){return{success:!1,error:a.TypeValidationError.wrap({value:e,cause:n}),rawValue:e}}}async function Ri({text:e,schema:t}){try{const r=da(e);return t==null?r:dr({value:r,schema:t})}catch(r){throw a.JSONParseError.isInstance(r)||a.TypeValidationError.isInstance(r)?r:new a.JSONParseError({text:e,cause:r})}}async function Ae({text:e,schema:t}){try{const r=da(e);return t==null?{success:!0,value:r,rawValue:r}:await Se({value:r,schema:t})}catch(r){return{success:!1,error:a.JSONParseError.isInstance(r)?r:new a.JSONParseError({text:e,cause:r}),rawValue:void 0}}}function Ai({stream:e,schema:t}){return e.pipeThrough(new TextDecoderStream).pipeThrough(new a.EventSourceParserStream).pipeThrough(new TransformStream({async transform({data:r},n){r!=="[DONE]"&&n.enqueue(await Ae({text:r,schema:t}))}}))}var Ci=()=>globalThis.fetch,pr=async({url:e,headers:t,body:r,failedResponseHandler:n,successfulResponseHandler:s,abortSignal:o,fetch:l})=>Pi({url:e,headers:{"Content-Type":"application/json",...t},body:{content:JSON.stringify(r),values:r},failedResponseHandler:n,successfulResponseHandler:s,abortSignal:o,fetch:l}),Pi=async({url:e,headers:t={},body:r,successfulResponseHandler:n,failedResponseHandler:s,abortSignal:o,fetch:l=Ci()})=>{try{const i=await l(e,{method:"POST",headers:kt(t,`ai-sdk/provider-utils/${ca}`,Cr()),body:r.content,signal:o}),c=st(i);if(!i.ok){let u;try{u=await s({response:i,url:e,requestBodyValues:r.values})}catch(d){throw Re(d)||a.APICallError.isInstance(d)?d:new a.APICallError({message:"Failed to process error response",cause:d,statusCode:i.status,url:e,responseHeaders:c,requestBodyValues:r.values})}throw u.value}try{return await n({response:i,url:e,requestBodyValues:r.values})}catch(u){throw u instanceof Error&&(Re(u)||a.APICallError.isInstance(u))?u:new a.APICallError({message:"Failed to process successful response",cause:u,statusCode:i.status,url:e,responseHeaders:c,requestBodyValues:r.values})}}catch(i){throw ua({error:i,url:e,requestBodyValues:r.values})}};async function Ee(e){return typeof e=="function"&&(e=e()),Promise.resolve(e)}var Qe=({errorSchema:e,errorToMessage:t,isRetryable:r})=>async({response:n,url:s,requestBodyValues:o})=>{const l=await n.text(),i=st(n);if(l.trim()==="")return{responseHeaders:i,value:new a.APICallError({message:n.statusText,url:s,requestBodyValues:o,statusCode:n.status,responseHeaders:i,responseBody:l,isRetryable:r?.(n)})};try{const c=await Ri({text:l,schema:e});return{responseHeaders:i,value:new a.APICallError({message:t(c),url:s,requestBodyValues:o,statusCode:n.status,responseHeaders:i,responseBody:l,data:c,isRetryable:r?.(n,c)})}}catch{return{responseHeaders:i,value:new a.APICallError({message:n.statusText,url:s,requestBodyValues:o,statusCode:n.status,responseHeaders:i,responseBody:l,isRetryable:r?.(n)})}}},ki=e=>async({response:t})=>{const r=st(t);if(t.body==null)throw new a.EmptyResponseBodyError({});return{responseHeaders:r,value:Ai({stream:t.body,schema:e})}},bt=e=>async({response:t,url:r,requestBodyValues:n})=>{const s=await t.text(),o=await Ae({text:s,schema:e}),l=st(t);if(!o.success)throw new a.APICallError({message:"Invalid JSON response",cause:o.error,statusCode:t.status,responseHeaders:l,responseBody:s,url:r,requestBodyValues:n});return{responseHeaders:l,value:o.value,rawValue:o.rawValue}},Oi=(e,t)=>{let r=0;for(;r<e.length&&r<t.length&&e[r]===t[r];r++);return[(e.length-r).toString(),...t.slice(r)].join("/")},Mi=Symbol("Let zodToJsonSchema decide on which parser to use"),on={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",strictUnions:!1,definitions:{},errorMessages:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref"},Ni=e=>typeof e=="string"?{...on,name:e}:{...on,...e};function ee(){return{}}function $i(e,t){var r,n,s;const o={type:"array"};return(r=e.type)!=null&&r._def&&((s=(n=e.type)==null?void 0:n._def)==null?void 0:s.typeName)!==a.ZodFirstPartyTypeKind$1.ZodAny&&(o.items=U(e.type._def,{...t,currentPath:[...t.currentPath,"items"]})),e.minLength&&(o.minItems=e.minLength.value),e.maxLength&&(o.maxItems=e.maxLength.value),e.exactLength&&(o.minItems=e.exactLength.value,o.maxItems=e.exactLength.value),o}function ji(e){const t={type:"integer",format:"int64"};if(!e.checks)return t;for(const r of e.checks)switch(r.kind){case"min":r.inclusive?t.minimum=r.value:t.exclusiveMinimum=r.value;break;case"max":r.inclusive?t.maximum=r.value:t.exclusiveMaximum=r.value;break;case"multipleOf":t.multipleOf=r.value;break}return t}function Di(){return{type:"boolean"}}function pa(e,t){return U(e.type._def,t)}var Ui=(e,t)=>U(e.innerType._def,t);function fa(e,t,r){const n=r??t.dateStrategy;if(Array.isArray(n))return{anyOf:n.map((s,o)=>fa(e,t,s))};switch(n){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return qi(e)}}var qi=e=>{const t={type:"integer",format:"unix-time"};for(const r of e.checks)switch(r.kind){case"min":t.minimum=r.value;break;case"max":t.maximum=r.value;break}return t};function Fi(e,t){return{...U(e.innerType._def,t),default:e.defaultValue()}}function Li(e,t){return t.effectStrategy==="input"?U(e.schema._def,t):ee()}function Vi(e){return{type:"string",enum:Array.from(e.values)}}var Hi=e=>"type"in e&&e.type==="string"?!1:"allOf"in e;function Bi(e,t){const r=[U(e.left._def,{...t,currentPath:[...t.currentPath,"allOf","0"]}),U(e.right._def,{...t,currentPath:[...t.currentPath,"allOf","1"]})].filter(s=>!!s),n=[];return r.forEach(s=>{if(Hi(s))n.push(...s.allOf);else{let o=s;if("additionalProperties"in s&&s.additionalProperties===!1){const{additionalProperties:l,...i}=s;o=i}n.push(o)}}),n.length?{allOf:n}:void 0}function Zi(e){const t=typeof e.value;return t!=="bigint"&&t!=="number"&&t!=="boolean"&&t!=="string"?{type:Array.isArray(e.value)?"array":"object"}:{type:t==="bigint"?"integer":t,const:e.value}}var Wt=void 0,ie={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>(Wt===void 0&&(Wt=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),Wt),uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function ma(e,t){const r={type:"string"};if(e.checks)for(const n of e.checks)switch(n.kind){case"min":r.minLength=typeof r.minLength=="number"?Math.max(r.minLength,n.value):n.value;break;case"max":r.maxLength=typeof r.maxLength=="number"?Math.min(r.maxLength,n.value):n.value;break;case"email":switch(t.emailStrategy){case"format:email":le(r,"email",n.message,t);break;case"format:idn-email":le(r,"idn-email",n.message,t);break;case"pattern:zod":Y(r,ie.email,n.message,t);break}break;case"url":le(r,"uri",n.message,t);break;case"uuid":le(r,"uuid",n.message,t);break;case"regex":Y(r,n.regex,n.message,t);break;case"cuid":Y(r,ie.cuid,n.message,t);break;case"cuid2":Y(r,ie.cuid2,n.message,t);break;case"startsWith":Y(r,RegExp(`^${Yt(n.value,t)}`),n.message,t);break;case"endsWith":Y(r,RegExp(`${Yt(n.value,t)}$`),n.message,t);break;case"datetime":le(r,"date-time",n.message,t);break;case"date":le(r,"date",n.message,t);break;case"time":le(r,"time",n.message,t);break;case"duration":le(r,"duration",n.message,t);break;case"length":r.minLength=typeof r.minLength=="number"?Math.max(r.minLength,n.value):n.value,r.maxLength=typeof r.maxLength=="number"?Math.min(r.maxLength,n.value):n.value;break;case"includes":{Y(r,RegExp(Yt(n.value,t)),n.message,t);break}case"ip":{n.version!=="v6"&&le(r,"ipv4",n.message,t),n.version!=="v4"&&le(r,"ipv6",n.message,t);break}case"base64url":Y(r,ie.base64url,n.message,t);break;case"jwt":Y(r,ie.jwt,n.message,t);break;case"cidr":{n.version!=="v6"&&Y(r,ie.ipv4Cidr,n.message,t),n.version!=="v4"&&Y(r,ie.ipv6Cidr,n.message,t);break}case"emoji":Y(r,ie.emoji(),n.message,t);break;case"ulid":{Y(r,ie.ulid,n.message,t);break}case"base64":{switch(t.base64Strategy){case"format:binary":{le(r,"binary",n.message,t);break}case"contentEncoding:base64":{r.contentEncoding="base64";break}case"pattern:zod":{Y(r,ie.base64,n.message,t);break}}break}case"nanoid":Y(r,ie.nanoid,n.message,t)}return r}function Yt(e,t){return t.patternStrategy==="escape"?Gi(e):e}var Ki=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function Gi(e){let t="";for(let r=0;r<e.length;r++)Ki.has(e[r])||(t+="\\"),t+=e[r];return t}function le(e,t,r,n){var s;e.format||(s=e.anyOf)!=null&&s.some(o=>o.format)?(e.anyOf||(e.anyOf=[]),e.format&&(e.anyOf.push({format:e.format}),delete e.format),e.anyOf.push({format:t,...r&&n.errorMessages&&{errorMessage:{format:r}}})):e.format=t}function Y(e,t,r,n){var s;e.pattern||(s=e.allOf)!=null&&s.some(o=>o.pattern)?(e.allOf||(e.allOf=[]),e.pattern&&(e.allOf.push({pattern:e.pattern}),delete e.pattern),e.allOf.push({pattern:sn(t,n),...r&&n.errorMessages&&{errorMessage:{pattern:r}}})):e.pattern=sn(t,n)}function sn(e,t){var r;if(!t.applyRegexFlags||!e.flags)return e.source;const n={i:e.flags.includes("i"),m:e.flags.includes("m"),s:e.flags.includes("s")},s=n.i?e.source.toLowerCase():e.source;let o="",l=!1,i=!1,c=!1;for(let u=0;u<s.length;u++){if(l){o+=s[u],l=!1;continue}if(n.i){if(i){if(s[u].match(/[a-z]/)){c?(o+=s[u],o+=`${s[u-2]}-${s[u]}`.toUpperCase(),c=!1):s[u+1]==="-"&&((r=s[u+2])!=null&&r.match(/[a-z]/))?(o+=s[u],c=!0):o+=`${s[u]}${s[u].toUpperCase()}`;continue}}else if(s[u].match(/[a-z]/)){o+=`[${s[u]}${s[u].toUpperCase()}]`;continue}}if(n.m){if(s[u]==="^"){o+=`(^|(?<=[\r
2
+ ]))`;continue}else if(s[u]==="$"){o+=`($|(?=[\r
3
+ ]))`;continue}}if(n.s&&s[u]==="."){o+=i?`${s[u]}\r
4
+ `:`[${s[u]}\r
5
+ ]`;continue}o+=s[u],s[u]==="\\"?l=!0:i&&s[u]==="]"?i=!1:!i&&s[u]==="["&&(i=!0)}try{new RegExp(o)}catch{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 o}function ha(e,t){var r,n,s,o,l,i;const c={type:"object",additionalProperties:(r=U(e.valueType._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]}))!=null?r:t.allowedAdditionalProperties};if(((n=e.keyType)==null?void 0:n._def.typeName)===a.ZodFirstPartyTypeKind$1.ZodString&&((s=e.keyType._def.checks)!=null&&s.length)){const{type:u,...d}=ma(e.keyType._def,t);return{...c,propertyNames:d}}else{if(((o=e.keyType)==null?void 0:o._def.typeName)===a.ZodFirstPartyTypeKind$1.ZodEnum)return{...c,propertyNames:{enum:e.keyType._def.values}};if(((l=e.keyType)==null?void 0:l._def.typeName)===a.ZodFirstPartyTypeKind$1.ZodBranded&&e.keyType._def.type._def.typeName===a.ZodFirstPartyTypeKind$1.ZodString&&((i=e.keyType._def.type._def.checks)!=null&&i.length)){const{type:u,...d}=pa(e.keyType._def,t);return{...c,propertyNames:d}}}return c}function Ji(e,t){if(t.mapStrategy==="record")return ha(e,t);const r=U(e.keyType._def,{...t,currentPath:[...t.currentPath,"items","items","0"]})||ee(),n=U(e.valueType._def,{...t,currentPath:[...t.currentPath,"items","items","1"]})||ee();return{type:"array",maxItems:125,items:{type:"array",items:[r,n],minItems:2,maxItems:2}}}function zi(e){const t=e.values,n=Object.keys(e.values).filter(o=>typeof t[t[o]]!="number").map(o=>t[o]),s=Array.from(new Set(n.map(o=>typeof o)));return{type:s.length===1?s[0]==="string"?"string":"number":["string","number"],enum:n}}function Wi(){return{not:ee()}}function Yi(){return{type:"null"}}var fr={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function Xi(e,t){const r=e.options instanceof Map?Array.from(e.options.values()):e.options;if(r.every(n=>n._def.typeName in fr&&(!n._def.checks||!n._def.checks.length))){const n=r.reduce((s,o)=>{const l=fr[o._def.typeName];return l&&!s.includes(l)?[...s,l]:s},[]);return{type:n.length>1?n:n[0]}}else if(r.every(n=>n._def.typeName==="ZodLiteral"&&!n.description)){const n=r.reduce((s,o)=>{const l=typeof o._def.value;switch(l){case"string":case"number":case"boolean":return[...s,l];case"bigint":return[...s,"integer"];case"object":if(o._def.value===null)return[...s,"null"];case"symbol":case"undefined":case"function":default:return s}},[]);if(n.length===r.length){const s=n.filter((o,l,i)=>i.indexOf(o)===l);return{type:s.length>1?s:s[0],enum:r.reduce((o,l)=>o.includes(l._def.value)?o:[...o,l._def.value],[])}}}else if(r.every(n=>n._def.typeName==="ZodEnum"))return{type:"string",enum:r.reduce((n,s)=>[...n,...s._def.values.filter(o=>!n.includes(o))],[])};return Qi(e,t)}var Qi=(e,t)=>{const r=(e.options instanceof Map?Array.from(e.options.values()):e.options).map((n,s)=>U(n._def,{...t,currentPath:[...t.currentPath,"anyOf",`${s}`]})).filter(n=>!!n&&(!t.strictUnions||typeof n=="object"&&Object.keys(n).length>0));return r.length?{anyOf:r}:void 0};function el(e,t){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(e.innerType._def.typeName)&&(!e.innerType._def.checks||!e.innerType._def.checks.length))return{type:[fr[e.innerType._def.typeName],"null"]};const r=U(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","0"]});return r&&{anyOf:[r,{type:"null"}]}}function tl(e){const t={type:"number"};if(!e.checks)return t;for(const r of e.checks)switch(r.kind){case"int":t.type="integer";break;case"min":r.inclusive?t.minimum=r.value:t.exclusiveMinimum=r.value;break;case"max":r.inclusive?t.maximum=r.value:t.exclusiveMaximum=r.value;break;case"multipleOf":t.multipleOf=r.value;break}return t}function rl(e,t){const r={type:"object",properties:{}},n=[],s=e.shape();for(const l in s){let i=s[l];if(i===void 0||i._def===void 0)continue;const c=al(i),u=U(i._def,{...t,currentPath:[...t.currentPath,"properties",l],propertyPath:[...t.currentPath,"properties",l]});u!==void 0&&(r.properties[l]=u,c||n.push(l))}n.length&&(r.required=n);const o=nl(e,t);return o!==void 0&&(r.additionalProperties=o),r}function nl(e,t){if(e.catchall._def.typeName!=="ZodNever")return U(e.catchall._def,{...t,currentPath:[...t.currentPath,"additionalProperties"]});switch(e.unknownKeys){case"passthrough":return t.allowedAdditionalProperties;case"strict":return t.rejectedAdditionalProperties;case"strip":return t.removeAdditionalStrategy==="strict"?t.allowedAdditionalProperties:t.rejectedAdditionalProperties}}function al(e){try{return e.isOptional()}catch{return!0}}var ol=(e,t)=>{var r;if(t.currentPath.toString()===((r=t.propertyPath)==null?void 0:r.toString()))return U(e.innerType._def,t);const n=U(e.innerType._def,{...t,currentPath:[...t.currentPath,"anyOf","1"]});return n?{anyOf:[{not:ee()},n]}:ee()},sl=(e,t)=>{if(t.pipeStrategy==="input")return U(e.in._def,t);if(t.pipeStrategy==="output")return U(e.out._def,t);const r=U(e.in._def,{...t,currentPath:[...t.currentPath,"allOf","0"]}),n=U(e.out._def,{...t,currentPath:[...t.currentPath,"allOf",r?"1":"0"]});return{allOf:[r,n].filter(s=>s!==void 0)}};function il(e,t){return U(e.type._def,t)}function ll(e,t){const n={type:"array",uniqueItems:!0,items:U(e.valueType._def,{...t,currentPath:[...t.currentPath,"items"]})};return e.minSize&&(n.minItems=e.minSize.value),e.maxSize&&(n.maxItems=e.maxSize.value),n}function ul(e,t){return e.rest?{type:"array",minItems:e.items.length,items:e.items.map((r,n)=>U(r._def,{...t,currentPath:[...t.currentPath,"items",`${n}`]})).reduce((r,n)=>n===void 0?r:[...r,n],[]),additionalItems:U(e.rest._def,{...t,currentPath:[...t.currentPath,"additionalItems"]})}:{type:"array",minItems:e.items.length,maxItems:e.items.length,items:e.items.map((r,n)=>U(r._def,{...t,currentPath:[...t.currentPath,"items",`${n}`]})).reduce((r,n)=>n===void 0?r:[...r,n],[])}}function cl(){return{not:ee()}}function dl(){return ee()}var pl=(e,t)=>U(e.innerType._def,t),fl=(e,t,r)=>{switch(t){case a.ZodFirstPartyTypeKind$1.ZodString:return ma(e,r);case a.ZodFirstPartyTypeKind$1.ZodNumber:return tl(e);case a.ZodFirstPartyTypeKind$1.ZodObject:return rl(e,r);case a.ZodFirstPartyTypeKind$1.ZodBigInt:return ji(e);case a.ZodFirstPartyTypeKind$1.ZodBoolean:return Di();case a.ZodFirstPartyTypeKind$1.ZodDate:return fa(e,r);case a.ZodFirstPartyTypeKind$1.ZodUndefined:return cl();case a.ZodFirstPartyTypeKind$1.ZodNull:return Yi();case a.ZodFirstPartyTypeKind$1.ZodArray:return $i(e,r);case a.ZodFirstPartyTypeKind$1.ZodUnion:case a.ZodFirstPartyTypeKind$1.ZodDiscriminatedUnion:return Xi(e,r);case a.ZodFirstPartyTypeKind$1.ZodIntersection:return Bi(e,r);case a.ZodFirstPartyTypeKind$1.ZodTuple:return ul(e,r);case a.ZodFirstPartyTypeKind$1.ZodRecord:return ha(e,r);case a.ZodFirstPartyTypeKind$1.ZodLiteral:return Zi(e);case a.ZodFirstPartyTypeKind$1.ZodEnum:return Vi(e);case a.ZodFirstPartyTypeKind$1.ZodNativeEnum:return zi(e);case a.ZodFirstPartyTypeKind$1.ZodNullable:return el(e,r);case a.ZodFirstPartyTypeKind$1.ZodOptional:return ol(e,r);case a.ZodFirstPartyTypeKind$1.ZodMap:return Ji(e,r);case a.ZodFirstPartyTypeKind$1.ZodSet:return ll(e,r);case a.ZodFirstPartyTypeKind$1.ZodLazy:return()=>e.getter()._def;case a.ZodFirstPartyTypeKind$1.ZodPromise:return il(e,r);case a.ZodFirstPartyTypeKind$1.ZodNaN:case a.ZodFirstPartyTypeKind$1.ZodNever:return Wi();case a.ZodFirstPartyTypeKind$1.ZodEffects:return Li(e,r);case a.ZodFirstPartyTypeKind$1.ZodAny:return ee();case a.ZodFirstPartyTypeKind$1.ZodUnknown:return dl();case a.ZodFirstPartyTypeKind$1.ZodDefault:return Fi(e,r);case a.ZodFirstPartyTypeKind$1.ZodBranded:return pa(e,r);case a.ZodFirstPartyTypeKind$1.ZodReadonly:return pl(e,r);case a.ZodFirstPartyTypeKind$1.ZodCatch:return Ui(e,r);case a.ZodFirstPartyTypeKind$1.ZodPipeline:return sl(e,r);case a.ZodFirstPartyTypeKind$1.ZodFunction:case a.ZodFirstPartyTypeKind$1.ZodVoid:case a.ZodFirstPartyTypeKind$1.ZodSymbol:return;default:return(n=>{})()}};function U(e,t,r=!1){var n;const s=t.seen.get(e);if(t.override){const c=(n=t.override)==null?void 0:n.call(t,e,t,s,r);if(c!==Mi)return c}if(s&&!r){const c=ml(s,t);if(c!==void 0)return c}const o={def:e,path:t.currentPath,jsonSchema:void 0};t.seen.set(e,o);const l=fl(e,e.typeName,t),i=typeof l=="function"?U(l(),t):l;if(i&&hl(e,t,i),t.postProcess){const c=t.postProcess(i,e,t);return o.jsonSchema=i,c}return o.jsonSchema=i,i}var ml=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:Oi(t.currentPath,e.path)};case"none":case"seen":return e.path.length<t.currentPath.length&&e.path.every((r,n)=>t.currentPath[n]===r)?(console.warn(`Recursive reference detected at ${t.currentPath.join("/")}! Defaulting to any`),ee()):t.$refStrategy==="seen"?ee():void 0}},hl=(e,t,r)=>(e.description&&(r.description=e.description),r),gl=e=>{const t=Ni(e),r=t.name!==void 0?[...t.basePath,t.definitionPath,t.name]:t.basePath;return{...t,currentPath:r,propertyPath:void 0,seen:new Map(Object.entries(t.definitions).map(([n,s])=>[s._def,{def:s._def,path:[...t.basePath,t.definitionPath,n],jsonSchema:void 0}]))}},vl=(e,t)=>{var r;const n=gl(t);let s=typeof t=="object"&&t.definitions?Object.entries(t.definitions).reduce((u,[d,p])=>{var h;return{...u,[d]:(h=U(p._def,{...n,currentPath:[...n.basePath,n.definitionPath,d]},!0))!=null?h:ee()}},{}):void 0;const o=typeof t=="string"?t:t?.nameStrategy==="title"?void 0:t?.name,l=(r=U(e._def,o===void 0?n:{...n,currentPath:[...n.basePath,n.definitionPath,o]},!1))!=null?r:ee(),i=typeof t=="object"&&t.name!==void 0&&t.nameStrategy==="title"?t.name:void 0;i!==void 0&&(l.title=i);const c=o===void 0?s?{...l,[n.definitionPath]:s}:l:{$ref:[...n.$refStrategy==="relative"?[]:n.basePath,n.definitionPath,o].join("/"),[n.definitionPath]:{...s,[o]:l}};return c.$schema="http://json-schema.org/draft-07/schema#",c},yl=vl;function _l(e,t){var r;const n=(r=void 0)!=null?r:!1;return Pr(()=>yl(e,{$refStrategy:n?"root":"none"}),{validate:async s=>{const o=await e.safeParseAsync(s);return o.success?{success:!0,value:o.data}:{success:!1,error:o.error}}})}function bl(e,t){var r;const n=(r=void 0)!=null?r:!1;return Pr(()=>a.toJSONSchema(e,{target:"draft-7",io:"output",reused:n?"ref":"inline"}),{validate:async s=>{const o=await a.safeParseAsync$1(e,s);return o.success?{success:!0,value:o.data}:{success:!1,error:o.error}}})}function wl(e){return"_zod"in e}function Pe(e,t){return wl(e)?bl(e):_l(e)}var mr=Symbol.for("vercel.ai.schema");function Pr(e,{validate:t}={}){return{[mr]:!0,_type:void 0,[_t]:!0,get jsonSchema(){return typeof e=="function"&&(e=e()),e},validate:t}}function Tl(e){return typeof e=="object"&&e!==null&&mr in e&&e[mr]===!0&&"jsonSchema"in e&&"validate"in e}function Ot(e){return e==null?Pr({properties:{},additionalProperties:!1}):Tl(e)?e:typeof e=="function"?e():Pe(e)}var{btoa:Il,atob:El}=globalThis;function kr(e){const t=e.replace(/-/g,"+").replace(/_/g,"/"),r=El(t);return Uint8Array.from(r,n=>n.codePointAt(0))}function hr(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCodePoint(e[r]);return Il(t)}function Sl(e){return e?.replace(/\/$/,"")}function xl(e){return e!=null&&typeof e[Symbol.asyncIterator]=="function"}async function*Rl({execute:e,input:t,options:r}){const n=e(t,r);if(xl(n)){let s;for await(const o of n)s=o,yield{type:"preliminary",output:o};yield{type:"final",output:s}}else yield{type:"final",output:await n}}var Xt,ln;function Al(){if(ln)return Xt;ln=1;var e=Object.defineProperty,t=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,n=Object.prototype.hasOwnProperty,s=(d,p)=>{for(var h in p)e(d,h,{get:p[h],enumerable:!0})},o=(d,p,h,f)=>{if(p&&typeof p=="object"||typeof p=="function")for(let m of r(p))!n.call(d,m)&&m!==h&&e(d,m,{get:()=>p[m],enumerable:!(f=t(p,m))||f.enumerable});return d},l=d=>o(e({},"__esModule",{value:!0}),d),i={};s(i,{SYMBOL_FOR_REQ_CONTEXT:()=>c,getContext:()=>u}),Xt=l(i);const c=Symbol.for("@vercel/request-context");function u(){return globalThis[c]?.get?.()??{}}return Xt}var Qt,un;function Cl(){if(un)return Qt;un=1;var e=Object.defineProperty,t=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,n=Object.prototype.hasOwnProperty,s=(p,h)=>{for(var f in h)e(p,f,{get:h[f],enumerable:!0})},o=(p,h,f,m)=>{if(h&&typeof h=="object"||typeof h=="function")for(let v of r(h))!n.call(p,v)&&v!==f&&e(p,v,{get:()=>h[v],enumerable:!(m=t(h,v))||m.enumerable});return p},l=p=>o(e({},"__esModule",{value:!0}),p),i={};s(i,{getContext:()=>c.getContext,getVercelOidcToken:()=>u,getVercelOidcTokenSync:()=>d}),Qt=l(i);var c=Al();async function u(){return""}function d(){return""}return Qt}var ga=Cl(),Pl="vercel.ai.gateway.error",er=Symbol.for(Pl),cn,dn,te=class va extends(dn=Error,cn=er,dn){constructor({message:t,statusCode:r=500,cause:n}){super(t),this[cn]=!0,this.statusCode=r,this.cause=n}static isInstance(t){return va.hasMarker(t)}static hasMarker(t){return typeof t=="object"&&t!==null&&er in t&&t[er]===!0}},ya="GatewayAuthenticationError",kl=`vercel.ai.gateway.error.${ya}`,pn=Symbol.for(kl),fn,mn,Or=class _a extends(mn=te,fn=pn,mn){constructor({message:t="Authentication failed",statusCode:r=401,cause:n}={}){super({message:t,statusCode:r,cause:n}),this[fn]=!0,this.name=ya,this.type="authentication_error"}static isInstance(t){return te.hasMarker(t)&&pn in t}static createContextualError({apiKeyProvided:t,oidcTokenProvided:r,message:n="Authentication failed",statusCode:s=401,cause:o}){let l;return t?l=`AI Gateway authentication failed: Invalid API key.
6
+
7
+ Create a new API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys
8
+
9
+ Provide via 'apiKey' option or 'AI_GATEWAY_API_KEY' environment variable.`:r?l=`AI Gateway authentication failed: Invalid OIDC token.
10
+
11
+ Run 'npx vercel link' to link your project, then 'vc env pull' to fetch the token.
12
+
13
+ Alternatively, use an API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys`:l=`AI Gateway authentication failed: No authentication provided.
14
+
15
+ Option 1 - API key:
16
+ Create an API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys
17
+ Provide via 'apiKey' option or 'AI_GATEWAY_API_KEY' environment variable.
18
+
19
+ Option 2 - OIDC token:
20
+ Run 'npx vercel link' to link your project, then 'vc env pull' to fetch the token.`,new _a({message:l,statusCode:s,cause:o})}},ba="GatewayInvalidRequestError",Ol=`vercel.ai.gateway.error.${ba}`,hn=Symbol.for(Ol),gn,vn,Ml=class extends(vn=te,gn=hn,vn){constructor({message:e="Invalid request",statusCode:t=400,cause:r}={}){super({message:e,statusCode:t,cause:r}),this[gn]=!0,this.name=ba,this.type="invalid_request_error"}static isInstance(e){return te.hasMarker(e)&&hn in e}},wa="GatewayRateLimitError",Nl=`vercel.ai.gateway.error.${wa}`,yn=Symbol.for(Nl),_n,bn,$l=class extends(bn=te,_n=yn,bn){constructor({message:e="Rate limit exceeded",statusCode:t=429,cause:r}={}){super({message:e,statusCode:t,cause:r}),this[_n]=!0,this.name=wa,this.type="rate_limit_exceeded"}static isInstance(e){return te.hasMarker(e)&&yn in e}},Ta="GatewayModelNotFoundError",jl=`vercel.ai.gateway.error.${Ta}`,wn=Symbol.for(jl),Dl=De(()=>Pe(a.object({modelId:a.string()}))),Tn,In,Ia=class extends(In=te,Tn=wn,In){constructor({message:e="Model not found",statusCode:t=404,modelId:r,cause:n}={}){super({message:e,statusCode:t,cause:n}),this[Tn]=!0,this.name=Ta,this.type="model_not_found",this.modelId=r}static isInstance(e){return te.hasMarker(e)&&wn in e}},Ea="GatewayInternalServerError",Ul=`vercel.ai.gateway.error.${Ea}`,En=Symbol.for(Ul),Sn,xn,Rn=class extends(xn=te,Sn=En,xn){constructor({message:e="Internal server error",statusCode:t=500,cause:r}={}){super({message:e,statusCode:t,cause:r}),this[Sn]=!0,this.name=Ea,this.type="internal_server_error"}static isInstance(e){return te.hasMarker(e)&&En in e}},Sa="GatewayResponseError",ql=`vercel.ai.gateway.error.${Sa}`,An=Symbol.for(ql),Cn,Pn,Fl=class extends(Pn=te,Cn=An,Pn){constructor({message:e="Invalid response from Gateway",statusCode:t=502,response:r,validationError:n,cause:s}={}){super({message:e,statusCode:t,cause:s}),this[Cn]=!0,this.name=Sa,this.type="response_error",this.response=r,this.validationError=n}static isInstance(e){return te.hasMarker(e)&&An in e}};async function kn({response:e,statusCode:t,defaultMessage:r="Gateway request failed",cause:n,authMethod:s}){const o=await Se({value:e,schema:Ll});if(!o.success)return new Fl({message:`Invalid error response format: ${r}`,statusCode:t,response:e,validationError:o.error,cause:n});const l=o.value,i=l.error.type,c=l.error.message;switch(i){case"authentication_error":return Or.createContextualError({apiKeyProvided:s==="api-key",oidcTokenProvided:s==="oidc",statusCode:t,cause:n});case"invalid_request_error":return new Ml({message:c,statusCode:t,cause:n});case"rate_limit_exceeded":return new $l({message:c,statusCode:t,cause:n});case"model_not_found":{const u=await Se({value:l.error.param,schema:Dl});return new Ia({message:c,statusCode:t,modelId:u.success?u.value.modelId:void 0,cause:n})}case"internal_server_error":return new Rn({message:c,statusCode:t,cause:n});default:return new Rn({message:c,statusCode:t,cause:n})}}var Ll=De(()=>Pe(a.object({error:a.object({message:a.string(),type:a.string().nullish(),param:a.unknown().nullish(),code:a.union([a.string(),a.number()]).nullish()})})));function Ce(e,t){var r;return te.isInstance(e)?e:a.APICallError.isInstance(e)?kn({response:Vl(e),statusCode:(r=e.statusCode)!=null?r:500,defaultMessage:"Gateway request failed",cause:e,authMethod:t}):kn({response:{},statusCode:500,defaultMessage:e instanceof Error?`Gateway request failed: ${e.message}`:"Unknown Gateway error",cause:e,authMethod:t})}function Vl(e){if(e.data!==void 0)return e.data;if(e.responseBody!=null)try{return JSON.parse(e.responseBody)}catch{return e.responseBody}return{}}var xa="ai-gateway-auth-method";async function et(e){const t=await Se({value:e[xa],schema:Hl});return t.success?t.value:void 0}var Hl=De(()=>Pe(a.union([a.literal("api-key"),a.literal("oidc")]))),On=class{constructor(e){this.config=e}async getAvailableModels(){try{const{value:e}=await an({url:`${this.config.baseURL}/config`,headers:await Ee(this.config.headers()),successfulResponseHandler:bt(Bl),failedResponseHandler:Qe({errorSchema:a.any(),errorToMessage:t=>t}),fetch:this.config.fetch});return e}catch(e){throw await Ce(e)}}async getCredits(){try{const e=new URL(this.config.baseURL),{value:t}=await an({url:`${e.origin}/v1/credits`,headers:await Ee(this.config.headers()),successfulResponseHandler:bt(Zl),failedResponseHandler:Qe({errorSchema:a.any(),errorToMessage:r=>r}),fetch:this.config.fetch});return t}catch(e){throw await Ce(e)}}},Bl=De(()=>Pe(a.object({models:a.array(a.object({id:a.string(),name:a.string(),description:a.string().nullish(),pricing:a.object({input:a.string(),output:a.string(),input_cache_read:a.string().nullish(),input_cache_write:a.string().nullish()}).transform(({input:e,output:t,input_cache_read:r,input_cache_write:n})=>({input:e,output:t,...r?{cachedInputTokens:r}:{},...n?{cacheCreationInputTokens:n}:{}})).nullish(),specification:a.object({specificationVersion:a.literal("v2"),provider:a.string(),modelId:a.string()}),modelType:a._enum$1(["language","embedding","image"]).nullish()}))}))),Zl=De(()=>Pe(a.object({balance:a.string(),total_used:a.string()}).transform(({balance:e,total_used:t})=>({balance:e,totalUsed:t})))),Kl=class{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion="v2",this.supportedUrls={"*/*":[/.*/]}}get provider(){return this.config.provider}async getArgs(e){const{abortSignal:t,...r}=e;return{args:this.maybeEncodeFileParts(r),warnings:[]}}async doGenerate(e){const{args:t,warnings:r}=await this.getArgs(e),{abortSignal:n}=e,s=await Ee(this.config.headers());try{const{responseHeaders:o,value:l,rawValue:i}=await pr({url:this.getUrl(),headers:cr(s,e.headers,this.getModelConfigHeaders(this.modelId,!1),await Ee(this.config.o11yHeaders)),body:t,successfulResponseHandler:bt(a.any()),failedResponseHandler:Qe({errorSchema:a.any(),errorToMessage:c=>c}),...n&&{abortSignal:n},fetch:this.config.fetch});return{...l,request:{body:t},response:{headers:o,body:i},warnings:r}}catch(o){throw await Ce(o,await et(s))}}async doStream(e){const{args:t,warnings:r}=await this.getArgs(e),{abortSignal:n}=e,s=await Ee(this.config.headers());try{const{value:o,responseHeaders:l}=await pr({url:this.getUrl(),headers:cr(s,e.headers,this.getModelConfigHeaders(this.modelId,!0),await Ee(this.config.o11yHeaders)),body:t,successfulResponseHandler:ki(a.any()),failedResponseHandler:Qe({errorSchema:a.any(),errorToMessage:i=>i}),...n&&{abortSignal:n},fetch:this.config.fetch});return{stream:o.pipeThrough(new TransformStream({start(i){r.length>0&&i.enqueue({type:"stream-start",warnings:r})},transform(i,c){if(i.success){const u=i.value;if(u.type==="raw"&&!e.includeRawChunks)return;u.type==="response-metadata"&&u.timestamp&&typeof u.timestamp=="string"&&(u.timestamp=new Date(u.timestamp)),c.enqueue(u)}else c.error(i.error)}})),request:{body:t},response:{headers:l}}}catch(o){throw await Ce(o,await et(s))}}isFilePart(e){return e&&typeof e=="object"&&"type"in e&&e.type==="file"}maybeEncodeFileParts(e){for(const t of e.prompt)for(const r of t.content)if(this.isFilePart(r)){const n=r;if(n.data instanceof Uint8Array){const s=Uint8Array.from(n.data),o=Buffer.from(s).toString("base64");n.data=new URL(`data:${n.mediaType||"application/octet-stream"};base64,${o}`)}}return e}getUrl(){return`${this.config.baseURL}/language-model`}getModelConfigHeaders(e,t){return{"ai-language-model-specification-version":"2","ai-language-model-id":e,"ai-language-model-streaming":String(t)}}},Gl=class{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion="v2",this.maxEmbeddingsPerCall=2048,this.supportsParallelCalls=!0}get provider(){return this.config.provider}async doEmbed({values:e,headers:t,abortSignal:r,providerOptions:n}){var s;const o=await Ee(this.config.headers());try{const{responseHeaders:l,value:i,rawValue:c}=await pr({url:this.getUrl(),headers:cr(o,t??{},this.getModelConfigHeaders(),await Ee(this.config.o11yHeaders)),body:{input:e.length===1?e[0]:e,...n?{providerOptions:n}:{}},successfulResponseHandler:bt(Jl),failedResponseHandler:Qe({errorSchema:a.any(),errorToMessage:u=>u}),...r&&{abortSignal:r},fetch:this.config.fetch});return{embeddings:i.embeddings,usage:(s=i.usage)!=null?s:void 0,providerMetadata:i.providerMetadata,response:{headers:l,body:c}}}catch(l){throw await Ce(l,await et(o))}}getUrl(){return`${this.config.baseURL}/embedding-model`}getModelConfigHeaders(){return{"ai-embedding-model-specification-version":"2","ai-model-id":this.modelId}}},Jl=De(()=>Pe(a.object({embeddings:a.array(a.array(a.number())),usage:a.object({tokens:a.number()}).nullish(),providerMetadata:a.record(a.string(),a.record(a.string(),a.unknown())).optional()})));async function zl(){var e;return(e=ga.getContext().headers)==null?void 0:e["x-vercel-id"]}var Wl="2.0.7",Yl="0.0.1";function Xl(e={}){var t,r;let n=null,s=null;const o=(t=e.metadataCacheRefreshMillis)!=null?t:1e3*60*5;let l=0;const i=(r=Sl(e.baseURL))!=null?r:"https://ai-gateway.vercel.sh/v1/ai",c=async()=>{const m=await eu(e);if(m)return kt({Authorization:`Bearer ${m.token}`,"ai-gateway-protocol-version":Yl,[xa]:m.authMethod,...e.headers},`ai-sdk/gateway/${Wl}`);throw Or.createContextualError({apiKeyProvided:!1,oidcTokenProvided:!1,statusCode:401})},u=()=>{const m=ht({settingValue:void 0,environmentVariableName:"VERCEL_DEPLOYMENT_ID"}),v=ht({settingValue:void 0,environmentVariableName:"VERCEL_ENV"}),_=ht({settingValue:void 0,environmentVariableName:"VERCEL_REGION"});return async()=>{const y=await zl();return{...m&&{"ai-o11y-deployment-id":m},...v&&{"ai-o11y-environment":v},..._&&{"ai-o11y-region":_},...y&&{"ai-o11y-request-id":y}}}},d=m=>new Kl(m,{provider:"gateway",baseURL:i,headers:c,fetch:e.fetch,o11yHeaders:u()}),p=async()=>{var m,v,_;const y=(_=(v=(m=e._internal)==null?void 0:m.currentDate)==null?void 0:v.call(m).getTime())!=null?_:Date.now();return(!n||y-l>o)&&(l=y,n=new On({baseURL:i,headers:c,fetch:e.fetch}).getAvailableModels().then(w=>(s=w,w)).catch(async w=>{throw await Ce(w,await et(await c()))})),s?Promise.resolve(s):n},h=async()=>new On({baseURL:i,headers:c,fetch:e.fetch}).getCredits().catch(async m=>{throw await Ce(m,await et(await c()))}),f=function(m){if(new.target)throw new Error("The Gateway Provider model function cannot be called with the new keyword.");return d(m)};return f.getAvailableModels=p,f.getCredits=h,f.imageModel=m=>{throw new a.NoSuchModelError({modelId:m,modelType:"imageModel"})},f.languageModel=d,f.textEmbeddingModel=m=>new Gl(m,{provider:"gateway",baseURL:i,headers:c,fetch:e.fetch,o11yHeaders:u()}),f}var Ql=Xl();async function eu(e){const t=ht({settingValue:e.apiKey,environmentVariableName:"AI_GATEWAY_API_KEY"});if(t)return{token:t,authMethod:"api-key"};try{return{token:await ga.getVercelOidcToken(),authMethod:"oidc"}}catch{return null}}var tu=Object.defineProperty,ru=(e,t)=>{for(var r in t)tu(e,r,{get:t[r],enumerable:!0})},Ra="AI_NoOutputSpecifiedError",Aa=`vercel.ai.error.${Ra}`,nu=Symbol.for(Aa),Ca,au=class extends a.AISDKError{constructor({message:e="No output specified."}={}){super({name:Ra,message:e}),this[Ca]=!0}static isInstance(e){return a.AISDKError.hasMarker(e,Aa)}};Ca=nu;function ou(e){const t="AI SDK Warning:";switch(e.type){case"unsupported-setting":{let r=`${t} The "${e.setting}" setting is not supported by this model`;return e.details&&(r+=` - ${e.details}`),r}case"unsupported-tool":{const r="name"in e.tool?e.tool.name:"unknown tool";let n=`${t} The tool "${r}" is not supported by this model`;return e.details&&(n+=` - ${e.details}`),n}case"other":return`${t} ${e.message}`;default:return`${t} ${JSON.stringify(e,null,2)}`}}var su="AI SDK Warning System: To turn off warning logging, set the AI_SDK_LOG_WARNINGS global to false.",Mn=!1,iu=e=>{if(e.length===0)return;const t=globalThis.AI_SDK_LOG_WARNINGS;if(t!==!1){if(typeof t=="function"){t(e);return}Mn||(Mn=!0,console.info(su));for(const r of e)console.warn(ou(r))}},Pa="AI_InvalidArgumentError",ka=`vercel.ai.error.${Pa}`,lu=Symbol.for(ka),Oa,ge=class extends a.AISDKError{constructor({parameter:t,value:r,message:n}){super({name:Pa,message:`Invalid argument for parameter ${t}: ${n}`}),this[Oa]=!0,this.parameter=t,this.value=r}static isInstance(t){return a.AISDKError.hasMarker(t,ka)}};Oa=lu;var Ma="AI_InvalidToolInputError",Na=`vercel.ai.error.${Ma}`,uu=Symbol.for(Na),$a,ja=class extends a.AISDKError{constructor({toolInput:e,toolName:t,cause:r,message:n=`Invalid input for tool ${t}: ${a.getErrorMessage(r)}`}){super({name:Ma,message:n,cause:r}),this[$a]=!0,this.toolInput=e,this.toolName=t}static isInstance(e){return a.AISDKError.hasMarker(e,Na)}};$a=uu;var Da="AI_NoObjectGeneratedError",Ua=`vercel.ai.error.${Da}`,cu=Symbol.for(Ua),qa,Nn=class extends a.AISDKError{constructor({message:e="No object generated.",cause:t,text:r,response:n,usage:s,finishReason:o}){super({name:Da,message:e,cause:t}),this[qa]=!0,this.text=r,this.response=n,this.usage=s,this.finishReason=o}static isInstance(e){return a.AISDKError.hasMarker(e,Ua)}};qa=cu;var Fa="AI_NoOutputGeneratedError",La=`vercel.ai.error.${Fa}`,du=Symbol.for(La),Va,pu=class extends a.AISDKError{constructor({message:e="No output generated.",cause:t}={}){super({name:Fa,message:e,cause:t}),this[Va]=!0}static isInstance(e){return a.AISDKError.hasMarker(e,La)}};Va=du;var Ha="AI_NoSuchToolError",Ba=`vercel.ai.error.${Ha}`,fu=Symbol.for(Ba),Za,gr=class extends a.AISDKError{constructor({toolName:e,availableTools:t=void 0,message:r=`Model tried to call unavailable tool '${e}'. ${t===void 0?"No tools are available.":`Available tools: ${t.join(", ")}.`}`}){super({name:Ha,message:r}),this[Za]=!0,this.toolName=e,this.availableTools=t}static isInstance(e){return a.AISDKError.hasMarker(e,Ba)}};Za=fu;var Ka="AI_ToolCallRepairError",Ga=`vercel.ai.error.${Ka}`,mu=Symbol.for(Ga),Ja,hu=class extends a.AISDKError{constructor({cause:e,originalError:t,message:r=`Error repairing tool call: ${a.getErrorMessage(e)}`}){super({name:Ka,message:r,cause:e}),this[Ja]=!0,this.originalError=t}static isInstance(e){return a.AISDKError.hasMarker(e,Ga)}};Ja=mu;var gu=class extends a.AISDKError{constructor(e){super({name:"AI_UnsupportedModelVersionError",message:`Unsupported model version ${e.version} for provider "${e.provider}" and model "${e.modelId}". AI SDK 5 only supports models that implement specification version "v2".`}),this.version=e.version,this.provider=e.provider,this.modelId=e.modelId}},za="AI_InvalidMessageRoleError",Wa=`vercel.ai.error.${za}`,vu=Symbol.for(Wa),Ya,yu=class extends a.AISDKError{constructor({role:e,message:t=`Invalid message role: '${e}'. Must be one of: "system", "user", "assistant", "tool".`}){super({name:za,message:t}),this[Ya]=!0,this.role=e}static isInstance(e){return a.AISDKError.hasMarker(e,Wa)}};Ya=vu;var Xa="AI_MessageConversionError",Qa=`vercel.ai.error.${Xa}`,_u=Symbol.for(Qa),eo,bu=class extends a.AISDKError{constructor({originalMessage:e,message:t}){super({name:Xa,message:t}),this[eo]=!0,this.originalMessage=e}static isInstance(e){return a.AISDKError.hasMarker(e,Qa)}};eo=_u;var to="AI_DownloadError",ro=`vercel.ai.error.${to}`,wu=Symbol.for(ro),no,tr=class extends a.AISDKError{constructor({url:e,statusCode:t,statusText:r,cause:n,message:s=n==null?`Failed to download ${e}: ${t} ${r}`:`Failed to download ${e}: ${n}`}){super({name:to,message:s,cause:n}),this[no]=!0,this.url=e,this.statusCode=t,this.statusText=r}static isInstance(e){return a.AISDKError.hasMarker(e,ro)}};no=wu;var ao="AI_RetryError",oo=`vercel.ai.error.${ao}`,Tu=Symbol.for(oo),so,$n=class extends a.AISDKError{constructor({message:e,reason:t,errors:r}){super({name:ao,message:e}),this[so]=!0,this.reason=t,this.errors=r,this.lastError=r[r.length-1]}static isInstance(e){return a.AISDKError.hasMarker(e,oo)}};so=Tu;function io(e){if(typeof e!="string"){if(e.specificationVersion!=="v2")throw new gu({version:e.specificationVersion,provider:e.provider,modelId:e.modelId});return e}return Iu().languageModel(e)}function Iu(){var e;return(e=globalThis.AI_SDK_DEFAULT_PROVIDER)!=null?e:Ql}var Eu=[{mediaType:"image/gif",bytesPrefix:[71,73,70]},{mediaType:"image/png",bytesPrefix:[137,80,78,71]},{mediaType:"image/jpeg",bytesPrefix:[255,216]},{mediaType:"image/webp",bytesPrefix:[82,73,70,70,null,null,null,null,87,69,66,80]},{mediaType:"image/bmp",bytesPrefix:[66,77]},{mediaType:"image/tiff",bytesPrefix:[73,73,42,0]},{mediaType:"image/tiff",bytesPrefix:[77,77,0,42]},{mediaType:"image/avif",bytesPrefix:[0,0,0,32,102,116,121,112,97,118,105,102]},{mediaType:"image/heic",bytesPrefix:[0,0,0,32,102,116,121,112,104,101,105,99]}],Su=e=>{const t=typeof e=="string"?kr(e):e,r=(t[6]&127)<<21|(t[7]&127)<<14|(t[8]&127)<<7|t[9]&127;return t.slice(r+10)};function xu(e){return typeof e=="string"&&e.startsWith("SUQz")||typeof e!="string"&&e.length>10&&e[0]===73&&e[1]===68&&e[2]===51?Su(e):e}function Ru({data:e,signatures:t}){const r=xu(e),n=typeof r=="string"?kr(r.substring(0,Math.min(r.length,24))):r;for(const s of t)if(n.length>=s.bytesPrefix.length&&s.bytesPrefix.every((o,l)=>o===null||n[l]===o))return s.mediaType}var Au="5.0.90",Cu=async({url:e})=>{var t;const r=e.toString();try{const n=await fetch(r,{headers:kt({},`ai-sdk/${Au}`,Cr())});if(!n.ok)throw new tr({url:r,statusCode:n.status,statusText:n.statusText});return{data:new Uint8Array(await n.arrayBuffer()),mediaType:(t=n.headers.get("content-type"))!=null?t:void 0}}catch(n){throw tr.isInstance(n)?n:new tr({url:r,cause:n})}},Pu=(e=Cu)=>t=>Promise.all(t.map(async r=>r.isUrlSupportedByModel?null:e(r)));function ku(e){try{const[t,r]=e.split(",");return{mediaType:t.split(";")[0].split(":")[1],base64Content:r}}catch{return{mediaType:void 0,base64Content:void 0}}}var lo=a.union([a.string(),a._instanceof(Uint8Array),a._instanceof(ArrayBuffer),a.custom(e=>{var t,r;return(r=(t=globalThis.Buffer)==null?void 0:t.isBuffer(e))!=null?r:!1},{message:"Must be a Buffer"})]);function uo(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{}if(e instanceof URL&&e.protocol==="data:"){const{mediaType:t,base64Content:r}=ku(e.toString());if(t==null||r==null)throw new a.AISDKError({name:"InvalidDataContentError",message:`Invalid data URL format in content ${e.toString()}`});return{data:r,mediaType:t}}return{data:e,mediaType:void 0}}function Ou(e){return typeof e=="string"?e:e instanceof ArrayBuffer?hr(new Uint8Array(e)):hr(e)}async function Mu({prompt:e,supportedUrls:t,download:r=Pu()}){const n=await $u(e.messages,r,t);return[...e.system!=null?[{role:"system",content:e.system}]:[],...e.messages.map(s=>Nu({message:s,downloadedAssets:n}))]}function Nu({message:e,downloadedAssets:t}){const r=e.role;switch(r){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(n=>ju(n,t)).filter(n=>n.type!=="text"||n.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(n=>n.type!=="text"||n.text!==""||n.providerOptions!=null).map(n=>{const s=n.providerOptions;switch(n.type){case"file":{const{data:o,mediaType:l}=uo(n.data);return{type:"file",data:o,filename:n.filename,mediaType:l??n.mediaType,providerOptions:s}}case"reasoning":return{type:"reasoning",text:n.text,providerOptions:s};case"text":return{type:"text",text:n.text,providerOptions:s};case"tool-call":return{type:"tool-call",toolCallId:n.toolCallId,toolName:n.toolName,input:n.input,providerExecuted:n.providerExecuted,providerOptions:s};case"tool-result":return{type:"tool-result",toolCallId:n.toolCallId,toolName:n.toolName,output:n.output,providerOptions:s}}}),providerOptions:e.providerOptions};case"tool":return{role:"tool",content:e.content.map(n=>({type:"tool-result",toolCallId:n.toolCallId,toolName:n.toolName,output:n.output,providerOptions:n.providerOptions})),providerOptions:e.providerOptions};default:{const n=r;throw new yu({role:n})}}}async function $u(e,t,r){const n=e.filter(o=>o.role==="user").map(o=>o.content).filter(o=>Array.isArray(o)).flat().filter(o=>o.type==="image"||o.type==="file").map(o=>{var l;const i=(l=o.mediaType)!=null?l:o.type==="image"?"image/*":void 0;let c=o.type==="image"?o.image:o.data;if(typeof c=="string")try{c=new URL(c)}catch{}return{mediaType:i,data:c}}).filter(o=>o.data instanceof URL).map(o=>({url:o.data,isUrlSupportedByModel:o.mediaType!=null&&yi({url:o.data.toString(),mediaType:o.mediaType,supportedUrls:r})})),s=await t(n);return Object.fromEntries(s.map((o,l)=>o==null?null:[n[l].url.toString(),{data:o.data,mediaType:o.mediaType}]).filter(o=>o!=null))}function ju(e,t){var r;if(e.type==="text")return{type:"text",text:e.text,providerOptions:e.providerOptions};let n;const s=e.type;switch(s){case"image":n=e.image;break;case"file":n=e.data;break;default:throw new Error(`Unsupported part type: ${s}`)}const{data:o,mediaType:l}=uo(n);let i=l??e.mediaType,c=o;if(c instanceof URL){const u=t[c.toString()];u&&(c=u.data,i??(i=u.mediaType))}switch(s){case"image":return(c instanceof Uint8Array||typeof c=="string")&&(i=(r=Ru({data:c,signatures:Eu}))!=null?r:i),{type:"file",mediaType:i??"image/*",filename:void 0,data:c,providerOptions:e.providerOptions};case"file":{if(i==null)throw new Error("Media type is missing for file part");return{type:"file",mediaType:i,filename:e.filename,data:c,providerOptions:e.providerOptions}}}}function Du({maxOutputTokens:e,temperature:t,topP:r,topK:n,presencePenalty:s,frequencyPenalty:o,seed:l,stopSequences:i}){if(e!=null){if(!Number.isInteger(e))throw new ge({parameter:"maxOutputTokens",value:e,message:"maxOutputTokens must be an integer"});if(e<1)throw new ge({parameter:"maxOutputTokens",value:e,message:"maxOutputTokens must be >= 1"})}if(t!=null&&typeof t!="number")throw new ge({parameter:"temperature",value:t,message:"temperature must be a number"});if(r!=null&&typeof r!="number")throw new ge({parameter:"topP",value:r,message:"topP must be a number"});if(n!=null&&typeof n!="number")throw new ge({parameter:"topK",value:n,message:"topK must be a number"});if(s!=null&&typeof s!="number")throw new ge({parameter:"presencePenalty",value:s,message:"presencePenalty must be a number"});if(o!=null&&typeof o!="number")throw new ge({parameter:"frequencyPenalty",value:o,message:"frequencyPenalty must be a number"});if(l!=null&&!Number.isInteger(l))throw new ge({parameter:"seed",value:l,message:"seed must be an integer"});return{maxOutputTokens:e,temperature:t,topP:r,topK:n,presencePenalty:s,frequencyPenalty:o,stopSequences:i,seed:l}}function Uu(e){return e!=null&&Object.keys(e).length>0}function qu({tools:e,toolChoice:t,activeTools:r}){return Uu(e)?{tools:(r!=null?Object.entries(e).filter(([s])=>r.includes(s)):Object.entries(e)).map(([s,o])=>{const l=o.type;switch(l){case void 0:case"dynamic":case"function":return{type:"function",name:s,description:o.description,inputSchema:Ot(o.inputSchema).jsonSchema,providerOptions:o.providerOptions};case"provider-defined":return{type:"provider-defined",name:s,id:o.id,args:o.args};default:{const i=l;throw new Error(`Unsupported tool type: ${i}`)}}}),toolChoice:t==null?{type:"auto"}:typeof t=="string"?{type:t}:{type:"tool",toolName:t.toolName}}:{tools:void 0,toolChoice:void 0}}var tt=a.lazy(()=>a.union([a._null$1(),a.string(),a.number(),a.boolean(),a.record(a.string(),tt),a.array(tt)])),ve=a.record(a.string(),a.record(a.string(),tt)),co=a.object({type:a.literal("text"),text:a.string(),providerOptions:ve.optional()}),Fu=a.object({type:a.literal("image"),image:a.union([lo,a._instanceof(URL)]),mediaType:a.string().optional(),providerOptions:ve.optional()}),po=a.object({type:a.literal("file"),data:a.union([lo,a._instanceof(URL)]),filename:a.string().optional(),mediaType:a.string(),providerOptions:ve.optional()}),Lu=a.object({type:a.literal("reasoning"),text:a.string(),providerOptions:ve.optional()}),Vu=a.object({type:a.literal("tool-call"),toolCallId:a.string(),toolName:a.string(),input:a.unknown(),providerOptions:ve.optional(),providerExecuted:a.boolean().optional()}),Hu=a.discriminatedUnion("type",[a.object({type:a.literal("text"),value:a.string()}),a.object({type:a.literal("json"),value:tt}),a.object({type:a.literal("error-text"),value:a.string()}),a.object({type:a.literal("error-json"),value:tt}),a.object({type:a.literal("content"),value:a.array(a.union([a.object({type:a.literal("text"),text:a.string()}),a.object({type:a.literal("media"),data:a.string(),mediaType:a.string()})]))})]),fo=a.object({type:a.literal("tool-result"),toolCallId:a.string(),toolName:a.string(),output:Hu,providerOptions:ve.optional()}),Bu=a.object({role:a.literal("system"),content:a.string(),providerOptions:ve.optional()}),Zu=a.object({role:a.literal("user"),content:a.union([a.string(),a.array(a.union([co,Fu,po]))]),providerOptions:ve.optional()}),Ku=a.object({role:a.literal("assistant"),content:a.union([a.string(),a.array(a.union([co,po,Lu,Vu,fo]))]),providerOptions:ve.optional()}),Gu=a.object({role:a.literal("tool"),content:a.array(fo),providerOptions:ve.optional()}),Ju=a.union([Bu,Zu,Ku,Gu]);async function zu(e){if(e.prompt==null&&e.messages==null)throw new a.InvalidPromptError({prompt:e,message:"prompt or messages must be defined"});if(e.prompt!=null&&e.messages!=null)throw new a.InvalidPromptError({prompt:e,message:"prompt and messages cannot be defined at the same time"});if(e.system!=null&&typeof e.system!="string")throw new a.InvalidPromptError({prompt:e,message:"system must be a string"});let t;if(e.prompt!=null&&typeof e.prompt=="string")t=[{role:"user",content:e.prompt}];else if(e.prompt!=null&&Array.isArray(e.prompt))t=e.prompt;else if(e.messages!=null)t=e.messages;else throw new a.InvalidPromptError({prompt:e,message:"prompt or messages must be defined"});if(t.length===0)throw new a.InvalidPromptError({prompt:e,message:"messages must not be empty"});const r=await Se({value:t,schema:a.array(Ju)});if(!r.success)throw new a.InvalidPromptError({prompt:e,message:"The messages must be a ModelMessage[]. If you have passed a UIMessage[], you can use convertToModelMessages to convert them.",cause:r.error});return{messages:t,system:e.system}}function Wu(e){return Or.isInstance(e)||Ia.isInstance(e)?new a.AISDKError({name:"GatewayError",message:"Vercel AI Gateway access failed. If you want to use AI SDK providers directly, use the providers, e.g. @ai-sdk/openai, or register a different global default provider.",cause:e}):e}function vr({operationId:e,telemetry:t}){return{"operation.name":`${e}${t?.functionId!=null?` ${t.functionId}`:""}`,"resource.name":t?.functionId,"ai.operationId":e,"ai.telemetry.functionId":t?.functionId}}function Yu({model:e,settings:t,telemetry:r,headers:n}){var s;return{"ai.model.provider":e.provider,"ai.model.id":e.modelId,...Object.entries(t).reduce((o,[l,i])=>(o[`ai.settings.${l}`]=i,o),{}),...Object.entries((s=r?.metadata)!=null?s:{}).reduce((o,[l,i])=>(o[`ai.telemetry.metadata.${l}`]=i,o),{}),...Object.entries(n??{}).reduce((o,[l,i])=>(i!==void 0&&(o[`ai.request.headers.${l}`]=i),o),{})}}var Xu={startSpan(){return dt},startActiveSpan(e,t,r,n){if(typeof t=="function")return t(dt);if(typeof r=="function")return r(dt);if(typeof n=="function")return n(dt)}},dt={spanContext(){return Qu},setAttribute(){return this},setAttributes(){return this},addEvent(){return this},addLink(){return this},addLinks(){return this},setStatus(){return this},updateName(){return this},end(){return this},isRecording(){return!1},recordException(){return this}},Qu={traceId:"",spanId:"",traceFlags:0};function ec({isEnabled:e=!1,tracer:t}={}){return e?t||pi.getTracer("ai"):Xu}function yr({name:e,tracer:t,attributes:r,fn:n,endWhenDone:s=!0}){return t.startActiveSpan(e,{attributes:r},async o=>{try{const l=await n(o);return s&&o.end(),l}catch(l){try{mo(o,l)}finally{o.end()}throw l}})}function mo(e,t){t instanceof Error?(e.recordException({name:t.name,message:t.message,stack:t.stack}),e.setStatus({code:yt.ERROR,message:t.message})):e.setStatus({code:yt.ERROR})}function Ne({telemetry:e,attributes:t}){return e?.isEnabled!==!0?{}:Object.entries(t).reduce((r,[n,s])=>{if(s==null)return r;if(typeof s=="object"&&"input"in s&&typeof s.input=="function"){if(e?.recordInputs===!1)return r;const o=s.input();return o==null?r:{...r,[n]:o}}if(typeof s=="object"&&"output"in s&&typeof s.output=="function"){if(e?.recordOutputs===!1)return r;const o=s.output();return o==null?r:{...r,[n]:o}}return{...r,[n]:s}},{})}function tc(e){return JSON.stringify(e.map(t=>({...t,content:typeof t.content=="string"?t.content:t.content.map(r=>r.type==="file"?{...r,data:r.data instanceof Uint8Array?Ou(r.data):r.data}:r)})))}function rc(e,t){return{inputTokens:Ze(e.inputTokens,t.inputTokens),outputTokens:Ze(e.outputTokens,t.outputTokens),totalTokens:Ze(e.totalTokens,t.totalTokens),reasoningTokens:Ze(e.reasoningTokens,t.reasoningTokens),cachedInputTokens:Ze(e.cachedInputTokens,t.cachedInputTokens)}}function Ze(e,t){return e==null&&t==null?void 0:(e??0)+(t??0)}function jn(e){return e===void 0?[]:Array.isArray(e)?e:[e]}function nc({error:e,exponentialBackoffDelay:t}){const r=e.responseHeaders;if(!r)return t;let n;const s=r["retry-after-ms"];if(s){const l=parseFloat(s);Number.isNaN(l)||(n=l)}const o=r["retry-after"];if(o&&n===void 0){const l=parseFloat(o);Number.isNaN(l)?n=Date.parse(o)-Date.now():n=l*1e3}return n!=null&&!Number.isNaN(n)&&0<=n&&(n<60*1e3||n<t)?n:t}var ac=({maxRetries:e=2,initialDelayInMs:t=2e3,backoffFactor:r=2,abortSignal:n}={})=>async s=>ho(s,{maxRetries:e,delayInMs:t,backoffFactor:r,abortSignal:n});async function ho(e,{maxRetries:t,delayInMs:r,backoffFactor:n,abortSignal:s},o=[]){try{return await e()}catch(l){if(Re(l)||t===0)throw l;const i=la(l),c=[...o,l],u=c.length;if(u>t)throw new $n({message:`Failed after ${u} attempts. Last error: ${i}`,reason:"maxRetriesExceeded",errors:c});if(l instanceof Error&&a.APICallError.isInstance(l)&&l.isRetryable===!0&&u<=t)return await fi(nc({error:l,exponentialBackoffDelay:r}),{abortSignal:s}),ho(e,{maxRetries:t,delayInMs:n*r,backoffFactor:n,abortSignal:s},c);throw u===1?l:new $n({message:`Failed after ${u} attempts with non-retryable error: '${i}'`,reason:"errorNotRetryable",errors:c})}}function oc({maxRetries:e,abortSignal:t}){if(e!=null){if(!Number.isInteger(e))throw new ge({parameter:"maxRetries",value:e,message:"maxRetries must be an integer"});if(e<0)throw new ge({parameter:"maxRetries",value:e,message:"maxRetries must be >= 0"})}const r=e??2;return{maxRetries:r,retry:ac({maxRetries:r,abortSignal:t})}}var sc=class{constructor({data:e,mediaType:t}){const r=e instanceof Uint8Array;this.base64Data=r?void 0:e,this.uint8ArrayData=r?e:void 0,this.mediaType=t}get base64(){return this.base64Data==null&&(this.base64Data=hr(this.uint8ArrayData)),this.base64Data}get uint8Array(){return this.uint8ArrayData==null&&(this.uint8ArrayData=kr(this.base64Data)),this.uint8ArrayData}},ic=class extends sc{constructor(e){super(e),this.type="file"}};async function lc({toolCall:e,tools:t,repairToolCall:r,system:n,messages:s}){try{if(t==null)throw new gr({toolName:e.toolName});try{return await Dn({toolCall:e,tools:t})}catch(o){if(r==null||!(gr.isInstance(o)||ja.isInstance(o)))throw o;let l=null;try{l=await r({toolCall:e,tools:t,inputSchema:({toolName:i})=>{const{inputSchema:c}=t[i];return Ot(c).jsonSchema},system:n,messages:s,error:o})}catch(i){throw new hu({cause:i,originalError:o})}if(l==null)throw o;return await Dn({toolCall:l,tools:t})}}catch(o){const l=await Ae({text:e.input}),i=l.success?l.value:e.input;return{type:"tool-call",toolCallId:e.toolCallId,toolName:e.toolName,input:i,dynamic:!0,invalid:!0,error:o}}}async function Dn({toolCall:e,tools:t}){const r=e.toolName,n=t[r];if(n==null)throw new gr({toolName:e.toolName,availableTools:Object.keys(t)});const s=Ot(n.inputSchema),o=e.input.trim()===""?await Se({value:{},schema:s}):await Ae({text:e.input,schema:s});if(o.success===!1)throw new ja({toolName:r,toolInput:e.input,cause:o.error});return n.type==="dynamic"?{type:"tool-call",toolCallId:e.toolCallId,toolName:e.toolName,input:o.value,providerExecuted:e.providerExecuted,providerMetadata:e.providerMetadata,dynamic:!0}:{type:"tool-call",toolCallId:e.toolCallId,toolName:r,input:o.value,providerExecuted:e.providerExecuted,providerMetadata:e.providerMetadata}}var uc=class{constructor({content:e,finishReason:t,usage:r,warnings:n,request:s,response:o,providerMetadata:l}){this.content=e,this.finishReason=t,this.usage=r,this.warnings=n,this.request=s,this.response=o,this.providerMetadata=l}get text(){return this.content.filter(e=>e.type==="text").map(e=>e.text).join("")}get reasoning(){return this.content.filter(e=>e.type==="reasoning")}get reasoningText(){return this.reasoning.length===0?void 0:this.reasoning.map(e=>e.text).join("")}get files(){return this.content.filter(e=>e.type==="file").map(e=>e.file)}get sources(){return this.content.filter(e=>e.type==="source")}get toolCalls(){return this.content.filter(e=>e.type==="tool-call")}get staticToolCalls(){return this.toolCalls.filter(e=>e.dynamic!==!0)}get dynamicToolCalls(){return this.toolCalls.filter(e=>e.dynamic===!0)}get toolResults(){return this.content.filter(e=>e.type==="tool-result")}get staticToolResults(){return this.toolResults.filter(e=>e.dynamic!==!0)}get dynamicToolResults(){return this.toolResults.filter(e=>e.dynamic===!0)}};function cc(e){return({steps:t})=>t.length===e}async function dc({stopConditions:e,steps:t}){return(await Promise.all(e.map(r=>r({steps:t})))).some(r=>r)}function ze({output:e,tool:t,errorMode:r}){return r==="text"?{type:"error-text",value:a.getErrorMessage(e)}:r==="json"?{type:"error-json",value:Un(e)}:t?.toModelOutput?t.toModelOutput(e):typeof e=="string"?{type:"text",value:e}:{type:"json",value:Un(e)}}function Un(e){return e===void 0?null:e}function qn({content:e,tools:t}){const r=[],n=e.filter(o=>o.type!=="source").filter(o=>(o.type!=="tool-result"||o.providerExecuted)&&(o.type!=="tool-error"||o.providerExecuted)).filter(o=>o.type!=="text"||o.text.length>0).map(o=>{switch(o.type){case"text":return{type:"text",text:o.text,providerOptions:o.providerMetadata};case"reasoning":return{type:"reasoning",text:o.text,providerOptions:o.providerMetadata};case"file":return{type:"file",data:o.file.base64,mediaType:o.file.mediaType,providerOptions:o.providerMetadata};case"tool-call":return{type:"tool-call",toolCallId:o.toolCallId,toolName:o.toolName,input:o.input,providerExecuted:o.providerExecuted,providerOptions:o.providerMetadata};case"tool-result":return{type:"tool-result",toolCallId:o.toolCallId,toolName:o.toolName,output:ze({tool:t?.[o.toolName],output:o.output,errorMode:"none"}),providerExecuted:!0,providerOptions:o.providerMetadata};case"tool-error":return{type:"tool-result",toolCallId:o.toolCallId,toolName:o.toolName,output:ze({tool:t?.[o.toolName],output:o.error,errorMode:"json"}),providerOptions:o.providerMetadata}}});n.length>0&&r.push({role:"assistant",content:n});const s=e.filter(o=>o.type==="tool-result"||o.type==="tool-error").filter(o=>!o.providerExecuted).map(o=>({type:"tool-result",toolCallId:o.toolCallId,toolName:o.toolName,output:ze({tool:t?.[o.toolName],output:o.type==="tool-result"?o.output:o.error,errorMode:o.type==="tool-error"?"text":"none"})}));return s.length>0&&r.push({role:"tool",content:s}),r}it({prefix:"aitxt",size:24});function Mt(e,t){const r=new Headers(e??{});for(const[n,s]of Object.entries(t))r.has(n)||r.set(n,s);return r}function pc({status:e,statusText:t,headers:r,textStream:n}){return new Response(n.pipeThrough(new TextEncoderStream),{status:e??200,statusText:t,headers:Mt(r,{"content-type":"text/plain; charset=utf-8"})})}function go({response:e,status:t,statusText:r,headers:n,stream:s}){e.writeHead(t??200,r,n);const o=s.getReader();(async()=>{try{for(;;){const{done:i,value:c}=await o.read();if(i)break;e.write(c)||await new Promise(d=>{e.once("drain",d)})}}catch(i){throw i}finally{e.end()}})()}function fc({response:e,status:t,statusText:r,headers:n,textStream:s}){go({response:e,status:t,statusText:r,headers:Object.fromEntries(Mt(n,{"content-type":"text/plain; charset=utf-8"}).entries()),stream:s.pipeThrough(new TextEncoderStream)})}var vo=class extends TransformStream{constructor(){super({transform(e,t){t.enqueue(`data: ${JSON.stringify(e)}
21
+
22
+ `)},flush(e){e.enqueue(`data: [DONE]
23
+
24
+ `)}})}},yo={"content-type":"text/event-stream","cache-control":"no-cache",connection:"keep-alive","x-vercel-ai-ui-message-stream":"v1","x-accel-buffering":"no"};function mc({status:e,statusText:t,headers:r,stream:n,consumeSseStream:s}){let o=n.pipeThrough(new vo);if(s){const[l,i]=o.tee();o=l,s({stream:i})}return new Response(o.pipeThrough(new TextEncoderStream),{status:e,statusText:t,headers:Mt(r,yo)})}function hc({originalMessages:e,responseMessageId:t}){if(e==null)return;const r=e[e.length-1];return r?.role==="assistant"?r.id:typeof t=="function"?t():t}function gc(e){return e.type.startsWith("data-")}function _o(e,t){if(e===void 0&&t===void 0)return;if(e===void 0)return t;if(t===void 0)return e;const r={...e};for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)){const s=t[n];if(s===void 0)continue;const o=n in e?e[n]:void 0,l=s!==null&&typeof s=="object"&&!Array.isArray(s)&&!(s instanceof Date)&&!(s instanceof RegExp),i=o!=null&&typeof o=="object"&&!Array.isArray(o)&&!(o instanceof Date)&&!(o instanceof RegExp);l&&i?r[n]=_o(o,s):r[n]=s}return r}function vc(e){const t=["ROOT"];let r=-1,n=null;function s(c,u,d){switch(c){case'"':{r=u,t.pop(),t.push(d),t.push("INSIDE_STRING");break}case"f":case"t":case"n":{r=u,n=u,t.pop(),t.push(d),t.push("INSIDE_LITERAL");break}case"-":{t.pop(),t.push(d),t.push("INSIDE_NUMBER");break}case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{r=u,t.pop(),t.push(d),t.push("INSIDE_NUMBER");break}case"{":{r=u,t.pop(),t.push(d),t.push("INSIDE_OBJECT_START");break}case"[":{r=u,t.pop(),t.push(d),t.push("INSIDE_ARRAY_START");break}}}function o(c,u){switch(c){case",":{t.pop(),t.push("INSIDE_OBJECT_AFTER_COMMA");break}case"}":{r=u,t.pop();break}}}function l(c,u){switch(c){case",":{t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{r=u,t.pop();break}}}for(let c=0;c<e.length;c++){const u=e[c];switch(t[t.length-1]){case"ROOT":s(u,c,"FINISH");break;case"INSIDE_OBJECT_START":{switch(u){case'"':{t.pop(),t.push("INSIDE_OBJECT_KEY");break}case"}":{r=c,t.pop();break}}break}case"INSIDE_OBJECT_AFTER_COMMA":{switch(u){case'"':{t.pop(),t.push("INSIDE_OBJECT_KEY");break}}break}case"INSIDE_OBJECT_KEY":{switch(u){case'"':{t.pop(),t.push("INSIDE_OBJECT_AFTER_KEY");break}}break}case"INSIDE_OBJECT_AFTER_KEY":{switch(u){case":":{t.pop(),t.push("INSIDE_OBJECT_BEFORE_VALUE");break}}break}case"INSIDE_OBJECT_BEFORE_VALUE":{s(u,c,"INSIDE_OBJECT_AFTER_VALUE");break}case"INSIDE_OBJECT_AFTER_VALUE":{o(u,c);break}case"INSIDE_STRING":{switch(u){case'"':{t.pop(),r=c;break}case"\\":{t.push("INSIDE_STRING_ESCAPE");break}default:r=c}break}case"INSIDE_ARRAY_START":{switch(u){case"]":{r=c,t.pop();break}default:{r=c,s(u,c,"INSIDE_ARRAY_AFTER_VALUE");break}}break}case"INSIDE_ARRAY_AFTER_VALUE":{switch(u){case",":{t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{r=c,t.pop();break}default:{r=c;break}}break}case"INSIDE_ARRAY_AFTER_COMMA":{s(u,c,"INSIDE_ARRAY_AFTER_VALUE");break}case"INSIDE_STRING_ESCAPE":{t.pop(),r=c;break}case"INSIDE_NUMBER":{switch(u){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{r=c;break}case"e":case"E":case"-":case".":break;case",":{t.pop(),t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&l(u,c),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&o(u,c);break}case"}":{t.pop(),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&o(u,c);break}case"]":{t.pop(),t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&l(u,c);break}default:{t.pop();break}}break}case"INSIDE_LITERAL":{const p=e.substring(n,c+1);!"false".startsWith(p)&&!"true".startsWith(p)&&!"null".startsWith(p)?(t.pop(),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"?o(u,c):t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&l(u,c)):r=c;break}}}let i=e.slice(0,r+1);for(let c=t.length-1;c>=0;c--)switch(t[c]){case"INSIDE_STRING":{i+='"';break}case"INSIDE_OBJECT_KEY":case"INSIDE_OBJECT_AFTER_KEY":case"INSIDE_OBJECT_AFTER_COMMA":case"INSIDE_OBJECT_START":case"INSIDE_OBJECT_BEFORE_VALUE":case"INSIDE_OBJECT_AFTER_VALUE":{i+="}";break}case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":{i+="]";break}case"INSIDE_LITERAL":{const d=e.substring(n,e.length);"true".startsWith(d)?i+="true".slice(d.length):"false".startsWith(d)?i+="false".slice(d.length):"null".startsWith(d)&&(i+="null".slice(d.length))}}return i}async function bo(e){if(e===void 0)return{value:void 0,state:"undefined-input"};let t=await Ae({text:e});return t.success?{value:t.value,state:"successful-parse"}:(t=await Ae({text:vc(e)}),t.success?{value:t.value,state:"repaired-parse"}:{value:void 0,state:"failed-parse"})}function rr(e){return e.type.startsWith("data-")}function nr(e){return e.type==="text"}function ar(e){return e.type==="file"}function Fn(e){return e.type==="reasoning"}function $e(e){return e.type.startsWith("tool-")}function Mr(e){return e.type==="dynamic-tool"}function Ln(e){return $e(e)||Mr(e)}function wt(e){return e.type.split("-").slice(1).join("-")}function yc(e){return Mr(e)?e.toolName:wt(e)}function _c({lastMessage:e,messageId:t}){return{message:e?.role==="assistant"?e:{id:t,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}function bc({stream:e,messageMetadataSchema:t,dataPartSchemas:r,runUpdateMessageJob:n,onError:s,onToolCall:o,onData:l}){return e.pipeThrough(new TransformStream({async transform(i,c){await n(async({state:u,write:d})=>{var p,h,f,m;function v(g){const S=u.message.parts.filter($e).find(I=>I.toolCallId===g);if(S==null)throw new Error("tool-output-error must be preceded by a tool-input-available");return S}function _(g){const S=u.message.parts.filter(I=>I.type==="dynamic-tool").find(I=>I.toolCallId===g);if(S==null)throw new Error("tool-output-error must be preceded by a tool-input-available");return S}function y(g){var E;const S=u.message.parts.find(P=>$e(P)&&P.toolCallId===g.toolCallId),I=g,x=S;S!=null?(S.state=g.state,x.input=I.input,x.output=I.output,x.errorText=I.errorText,x.rawInput=I.rawInput,x.preliminary=I.preliminary,x.providerExecuted=(E=I.providerExecuted)!=null?E:S.providerExecuted,I.providerMetadata!=null&&S.state==="input-available"&&(S.callProviderMetadata=I.providerMetadata)):u.message.parts.push({type:`tool-${g.toolName}`,toolCallId:g.toolCallId,state:g.state,input:I.input,output:I.output,rawInput:I.rawInput,errorText:I.errorText,providerExecuted:I.providerExecuted,preliminary:I.preliminary,...I.providerMetadata!=null?{callProviderMetadata:I.providerMetadata}:{}})}function w(g){var E,S;const I=u.message.parts.find(F=>F.type==="dynamic-tool"&&F.toolCallId===g.toolCallId),x=g,P=I;I!=null?(I.state=g.state,P.toolName=g.toolName,P.input=x.input,P.output=x.output,P.errorText=x.errorText,P.rawInput=(E=x.rawInput)!=null?E:P.rawInput,P.preliminary=x.preliminary,P.providerExecuted=(S=x.providerExecuted)!=null?S:I.providerExecuted,x.providerMetadata!=null&&I.state==="input-available"&&(I.callProviderMetadata=x.providerMetadata)):u.message.parts.push({type:"dynamic-tool",toolName:g.toolName,toolCallId:g.toolCallId,state:g.state,input:x.input,output:x.output,errorText:x.errorText,preliminary:x.preliminary,providerExecuted:x.providerExecuted,...x.providerMetadata!=null?{callProviderMetadata:x.providerMetadata}:{}})}async function b(g){if(g!=null){const E=u.message.metadata!=null?_o(u.message.metadata,g):g;t!=null&&await dr({value:E,schema:t}),u.message.metadata=E}}switch(i.type){case"text-start":{const g={type:"text",text:"",providerMetadata:i.providerMetadata,state:"streaming"};u.activeTextParts[i.id]=g,u.message.parts.push(g),d();break}case"text-delta":{const g=u.activeTextParts[i.id];g.text+=i.delta,g.providerMetadata=(p=i.providerMetadata)!=null?p:g.providerMetadata,d();break}case"text-end":{const g=u.activeTextParts[i.id];g.state="done",g.providerMetadata=(h=i.providerMetadata)!=null?h:g.providerMetadata,delete u.activeTextParts[i.id],d();break}case"reasoning-start":{const g={type:"reasoning",text:"",providerMetadata:i.providerMetadata,state:"streaming"};u.activeReasoningParts[i.id]=g,u.message.parts.push(g),d();break}case"reasoning-delta":{const g=u.activeReasoningParts[i.id];g.text+=i.delta,g.providerMetadata=(f=i.providerMetadata)!=null?f:g.providerMetadata,d();break}case"reasoning-end":{const g=u.activeReasoningParts[i.id];g.providerMetadata=(m=i.providerMetadata)!=null?m:g.providerMetadata,g.state="done",delete u.activeReasoningParts[i.id],d();break}case"file":{u.message.parts.push({type:"file",mediaType:i.mediaType,url:i.url}),d();break}case"source-url":{u.message.parts.push({type:"source-url",sourceId:i.sourceId,url:i.url,title:i.title,providerMetadata:i.providerMetadata}),d();break}case"source-document":{u.message.parts.push({type:"source-document",sourceId:i.sourceId,mediaType:i.mediaType,title:i.title,filename:i.filename,providerMetadata:i.providerMetadata}),d();break}case"tool-input-start":{const g=u.message.parts.filter($e);u.partialToolCalls[i.toolCallId]={text:"",toolName:i.toolName,index:g.length,dynamic:i.dynamic},i.dynamic?w({toolCallId:i.toolCallId,toolName:i.toolName,state:"input-streaming",input:void 0,providerExecuted:i.providerExecuted}):y({toolCallId:i.toolCallId,toolName:i.toolName,state:"input-streaming",input:void 0,providerExecuted:i.providerExecuted}),d();break}case"tool-input-delta":{const g=u.partialToolCalls[i.toolCallId];g.text+=i.inputTextDelta;const{value:E}=await bo(g.text);g.dynamic?w({toolCallId:i.toolCallId,toolName:g.toolName,state:"input-streaming",input:E}):y({toolCallId:i.toolCallId,toolName:g.toolName,state:"input-streaming",input:E}),d();break}case"tool-input-available":{i.dynamic?w({toolCallId:i.toolCallId,toolName:i.toolName,state:"input-available",input:i.input,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata}):y({toolCallId:i.toolCallId,toolName:i.toolName,state:"input-available",input:i.input,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata}),d(),o&&!i.providerExecuted&&await o({toolCall:i});break}case"tool-input-error":{i.dynamic?w({toolCallId:i.toolCallId,toolName:i.toolName,state:"output-error",input:i.input,errorText:i.errorText,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata}):y({toolCallId:i.toolCallId,toolName:i.toolName,state:"output-error",input:void 0,rawInput:i.input,errorText:i.errorText,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata}),d();break}case"tool-output-available":{if(i.dynamic){const g=_(i.toolCallId);w({toolCallId:i.toolCallId,toolName:g.toolName,state:"output-available",input:g.input,output:i.output,preliminary:i.preliminary})}else{const g=v(i.toolCallId);y({toolCallId:i.toolCallId,toolName:wt(g),state:"output-available",input:g.input,output:i.output,providerExecuted:i.providerExecuted,preliminary:i.preliminary})}d();break}case"tool-output-error":{if(i.dynamic){const g=_(i.toolCallId);w({toolCallId:i.toolCallId,toolName:g.toolName,state:"output-error",input:g.input,errorText:i.errorText,providerExecuted:i.providerExecuted})}else{const g=v(i.toolCallId);y({toolCallId:i.toolCallId,toolName:wt(g),state:"output-error",input:g.input,rawInput:g.rawInput,errorText:i.errorText,providerExecuted:i.providerExecuted})}d();break}case"start-step":{u.message.parts.push({type:"step-start"});break}case"finish-step":{u.activeTextParts={},u.activeReasoningParts={};break}case"start":{i.messageId!=null&&(u.message.id=i.messageId),await b(i.messageMetadata),(i.messageId!=null||i.messageMetadata!=null)&&d();break}case"finish":{await b(i.messageMetadata),i.messageMetadata!=null&&d();break}case"message-metadata":{await b(i.messageMetadata),i.messageMetadata!=null&&d();break}case"error":{s?.(new Error(i.errorText));break}default:if(gc(i)){r?.[i.type]!=null&&await dr({value:i.data,schema:r[i.type]});const g=i;if(g.transient){l?.(g);break}const E=g.id!=null?u.message.parts.find(S=>g.type===S.type&&g.id===S.id):void 0;E!=null?E.data=g.data:u.message.parts.push(g),l?.(g),d()}}c.enqueue(i)})}}))}function wc({messageId:e,originalMessages:t=[],onFinish:r,onError:n,stream:s}){let o=t?.[t.length-1];o?.role!=="assistant"?o=void 0:e=o.id;let l=!1;const i=s.pipeThrough(new TransformStream({transform(h,f){if(h.type==="start"){const m=h;m.messageId==null&&e!=null&&(m.messageId=e)}h.type==="abort"&&(l=!0),f.enqueue(h)}}));if(r==null)return i;const c=_c({lastMessage:o?structuredClone(o):void 0,messageId:e??""}),u=async h=>{await h({state:c,write:()=>{}})};let d=!1;const p=async()=>{if(d||!r)return;d=!0;const h=c.message.id===o?.id;await r({isAborted:l,isContinuation:h,responseMessage:c.message,messages:[...h?t.slice(0,-1):t,c.message]})};return bc({stream:i,runUpdateMessageJob:u,onError:n}).pipeThrough(new TransformStream({transform(h,f){f.enqueue(h)},async cancel(){await p()},async flush(){await p()}}))}function Tc({response:e,status:t,statusText:r,headers:n,stream:s,consumeSseStream:o}){let l=s.pipeThrough(new vo);if(o){const[i,c]=l.tee();l=i,o({stream:c})}go({response:e,status:t,statusText:r,headers:Object.fromEntries(Mt(n,yo).entries()),stream:l.pipeThrough(new TextEncoderStream)})}function pt(e){const t=e.pipeThrough(new TransformStream);return t[Symbol.asyncIterator]=function(){const r=this.getReader();let n=!1;async function s(o){var l;n=!0;try{o&&await((l=r.cancel)==null?void 0:l.call(r))}finally{try{r.releaseLock()}catch{}}}return{async next(){if(n)return{done:!0,value:void 0};const{done:o,value:l}=await r.read();return o?(await s(!0),{done:!0,value:void 0}):{done:!1,value:l}},async return(){return await s(!0),{done:!0,value:void 0}},async throw(o){throw await s(!0),o}}},t}async function Ic({stream:e,onError:t}){const r=e.getReader();try{for(;;){const{done:n}=await r.read();if(n)break}}catch(n){t?.(n)}finally{r.releaseLock()}}function Vn(){let e,t;return{promise:new Promise((n,s)=>{e=n,t=s}),resolve:e,reject:t}}function Ec(){let e=[],t=null,r=!1,n=Vn();const s=()=>{r=!0,n.resolve(),e.forEach(l=>l.cancel()),e=[],t?.close()},o=async()=>{if(r&&e.length===0){t?.close();return}if(e.length===0)return n=Vn(),await n.promise,o();try{const{value:l,done:i}=await e[0].read();i?(e.shift(),e.length>0?await o():r&&t?.close()):t?.enqueue(l)}catch(l){t?.error(l),e.shift(),s()}};return{stream:new ReadableStream({start(l){t=l},pull:o,async cancel(){for(const l of e)await l.cancel();e=[],r=!0}}),addStream:l=>{if(r)throw new Error("Cannot add inner stream: outer stream is closed");e.push(l.getReader()),n.resolve()},close:()=>{r=!0,n.resolve(),e.length===0&&t?.close()},terminate:s}}var ft=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((e,t)=>{this.status.type==="resolved"?e(this.status.value):this.status.type==="rejected"&&t(this.status.error),this._resolve=e,this._reject=t}),this._promise)}resolve(e){var t;this.status={type:"resolved",value:e},this._promise&&((t=this._resolve)==null||t.call(this,e))}reject(e){var t;this.status={type:"rejected",error:e},this._promise&&((t=this._reject)==null||t.call(this,e))}};function Sc(){var e,t;return(t=(e=globalThis?.performance)==null?void 0:e.now())!=null?t:Date.now()}function xc({tools:e,generatorStream:t,tracer:r,telemetry:n,system:s,messages:o,abortSignal:l,repairToolCall:i,experimental_context:c}){let u=null;const d=new ReadableStream({start(y){u=y}}),p=new Set,h=new Map;let f=!1,m;function v(){f&&p.size===0&&(m!=null&&u.enqueue(m),u.close())}const _=new TransformStream({async transform(y,w){const b=y.type;switch(b){case"stream-start":case"text-start":case"text-delta":case"text-end":case"reasoning-start":case"reasoning-delta":case"reasoning-end":case"tool-input-start":case"tool-input-delta":case"tool-input-end":case"source":case"response-metadata":case"error":case"raw":{w.enqueue(y);break}case"file":{w.enqueue({type:"file",file:new ic({data:y.data,mediaType:y.mediaType})});break}case"finish":{m={type:"finish",finishReason:y.finishReason,usage:y.usage,providerMetadata:y.providerMetadata};break}case"tool-call":{try{const g=await lc({toolCall:y,tools:e,repairToolCall:i,system:s,messages:o});if(w.enqueue(g),g.invalid){u.enqueue({type:"tool-error",toolCallId:g.toolCallId,toolName:g.toolName,input:g.input,error:la(g.error),dynamic:!0});break}const E=e[g.toolName];if(h.set(g.toolCallId,g.input),E.onInputAvailable!=null&&await E.onInputAvailable({input:g.input,toolCallId:g.toolCallId,messages:o,abortSignal:l,experimental_context:c}),E.execute!=null&&g.providerExecuted!==!0){const S=mi();p.add(S),yr({name:"ai.toolCall",attributes:Ne({telemetry:n,attributes:{...vr({operationId:"ai.toolCall",telemetry:n}),"ai.toolCall.name":g.toolName,"ai.toolCall.id":g.toolCallId,"ai.toolCall.args":{output:()=>JSON.stringify(g.input)}}}),tracer:r,fn:async I=>{let x;try{const P=Rl({execute:E.execute.bind(E),input:g.input,options:{toolCallId:g.toolCallId,messages:o,abortSignal:l,experimental_context:c}});for await(const F of P)u.enqueue({...g,type:"tool-result",output:F.output,...F.type==="preliminary"&&{preliminary:!0}}),F.type==="final"&&(x=F.output)}catch(P){mo(I,P),u.enqueue({...g,type:"tool-error",error:P}),p.delete(S),v();return}p.delete(S),v();try{I.setAttributes(Ne({telemetry:n,attributes:{"ai.toolCall.result":{output:()=>JSON.stringify(x)}}}))}catch{}}})}}catch(g){u.enqueue({type:"error",error:g})}break}case"tool-result":{const g=y.toolName;y.isError?u.enqueue({type:"tool-error",toolCallId:y.toolCallId,toolName:g,input:h.get(y.toolCallId),providerExecuted:y.providerExecuted,error:y.result}):w.enqueue({type:"tool-result",toolCallId:y.toolCallId,toolName:g,input:h.get(y.toolCallId),output:y.result,providerExecuted:y.providerExecuted});break}default:{const g=b;throw new Error(`Unhandled chunk type: ${g}`)}}},flush(){f=!0,v()}});return new ReadableStream({async start(y){return Promise.all([t.pipeThrough(_).pipeTo(new WritableStream({write(w){y.enqueue(w)},close(){}})),d.pipeTo(new WritableStream({write(w){y.enqueue(w)},close(){y.close()}}))])}})}var Rc=it({prefix:"aitxt",size:24});function Ac({model:e,tools:t,toolChoice:r,system:n,prompt:s,messages:o,maxRetries:l,abortSignal:i,headers:c,stopWhen:u=cc(1),experimental_output:d,experimental_telemetry:p,prepareStep:h,providerOptions:f,experimental_activeTools:m,activeTools:v=m,experimental_repairToolCall:_,experimental_transform:y,experimental_download:w,includeRawChunks:b=!1,onChunk:g,onError:E=({error:M})=>{console.error(M)},onFinish:S,onAbort:I,onStepFinish:x,experimental_context:P,_internal:{now:F=Sc,generateId:K=Rc,currentDate:de=()=>new Date}={},...q}){return new Pc({model:io(e),telemetry:p,headers:c,settings:q,maxRetries:l,abortSignal:i,system:n,prompt:s,messages:o,tools:t,toolChoice:r,transforms:jn(y),activeTools:v,repairToolCall:_,stopConditions:jn(u),output:d,providerOptions:f,prepareStep:h,includeRawChunks:b,onChunk:g,onError:E,onFinish:S,onAbort:I,onStepFinish:x,now:F,currentDate:de,generateId:K,experimental_context:P,download:w})}function Cc(e){if(!e)return new TransformStream({transform(l,i){i.enqueue({part:l,partialOutput:void 0})}});let t,r="",n="",s="";function o({controller:l,partialOutput:i=void 0}){l.enqueue({part:{type:"text-delta",id:t,text:n},partialOutput:i}),n=""}return new TransformStream({async transform(l,i){if(l.type==="finish-step"&&n.length>0&&o({controller:i}),l.type!=="text-delta"&&l.type!=="text-start"&&l.type!=="text-end"){i.enqueue({part:l,partialOutput:void 0});return}if(t==null)t=l.id;else if(l.id!==t){i.enqueue({part:l,partialOutput:void 0});return}if(l.type==="text-start"){i.enqueue({part:l,partialOutput:void 0});return}if(l.type==="text-end"){n.length>0&&o({controller:i}),i.enqueue({part:l,partialOutput:void 0});return}r+=l.text,n+=l.text;const c=await e.parsePartial({text:r});if(c!=null){const u=JSON.stringify(c.partial);u!==s&&(o({controller:i,partialOutput:c.partial}),s=u)}}})}var Pc=class{constructor({model:e,telemetry:t,headers:r,settings:n,maxRetries:s,abortSignal:o,system:l,prompt:i,messages:c,tools:u,toolChoice:d,transforms:p,activeTools:h,repairToolCall:f,stopConditions:m,output:v,providerOptions:_,prepareStep:y,includeRawChunks:w,now:b,currentDate:g,generateId:E,onChunk:S,onError:I,onFinish:x,onAbort:P,onStepFinish:F,experimental_context:K,download:de}){this._totalUsage=new ft,this._finishReason=new ft,this._steps=new ft,this.output=v,this.includeRawChunks=w,this.tools=u;let q,M=[];const pe=[];let fe,we,re={},O=[];const R=[];let Z,ae={},C={};const k=new TransformStream({async transform(V,H){var G,N,oe,qe;H.enqueue(V);const{part:T}=V;if((T.type==="text-delta"||T.type==="reasoning-delta"||T.type==="source"||T.type==="tool-call"||T.type==="tool-result"||T.type==="tool-input-start"||T.type==="tool-input-delta"||T.type==="raw")&&await S?.({chunk:T}),T.type==="error"&&await I({error:Wu(T.error)}),T.type==="text-start"&&(ae[T.id]={type:"text",text:"",providerMetadata:T.providerMetadata},M.push(ae[T.id])),T.type==="text-delta"){const L=ae[T.id];if(L==null){H.enqueue({part:{type:"error",error:`text part ${T.id} not found`},partialOutput:void 0});return}L.text+=T.text,L.providerMetadata=(G=T.providerMetadata)!=null?G:L.providerMetadata}if(T.type==="text-end"){const L=ae[T.id];if(L==null){H.enqueue({part:{type:"error",error:`text part ${T.id} not found`},partialOutput:void 0});return}L.providerMetadata=(N=T.providerMetadata)!=null?N:L.providerMetadata,delete ae[T.id]}if(T.type==="reasoning-start"&&(C[T.id]={type:"reasoning",text:"",providerMetadata:T.providerMetadata},M.push(C[T.id])),T.type==="reasoning-delta"){const L=C[T.id];if(L==null){H.enqueue({part:{type:"error",error:`reasoning part ${T.id} not found`},partialOutput:void 0});return}L.text+=T.text,L.providerMetadata=(oe=T.providerMetadata)!=null?oe:L.providerMetadata}if(T.type==="reasoning-end"){const L=C[T.id];if(L==null){H.enqueue({part:{type:"error",error:`reasoning part ${T.id} not found`},partialOutput:void 0});return}L.providerMetadata=(qe=T.providerMetadata)!=null?qe:L.providerMetadata,delete C[T.id]}if(T.type==="file"&&M.push({type:"file",file:T.file}),T.type==="source"&&M.push(T),T.type==="tool-call"&&M.push(T),T.type==="tool-result"&&!T.preliminary&&M.push(T),T.type==="tool-error"&&M.push(T),T.type==="start-step"&&(re=T.request,O=T.warnings),T.type==="finish-step"){const L=qn({content:M,tools:u}),Fe=new uc({content:M,finishReason:T.finishReason,usage:T.usage,warnings:O,request:re,response:{...T.response,messages:[...pe,...L]},providerMetadata:T.providerMetadata});await F?.(Fe),iu(O),R.push(Fe),M=[],C={},ae={},pe.push(...L),q.resolve()}T.type==="finish"&&(we=T.totalUsage,fe=T.finishReason)},async flush(V){try{if(R.length===0){const oe=new pu({message:"No output generated. Check the stream for errors."});ne._finishReason.reject(oe),ne._totalUsage.reject(oe),ne._steps.reject(oe);return}const H=fe??"unknown",G=we??{inputTokens:void 0,outputTokens:void 0,totalTokens:void 0};ne._finishReason.resolve(H),ne._totalUsage.resolve(G),ne._steps.resolve(R);const N=R[R.length-1];await x?.({finishReason:H,totalUsage:G,usage:N.usage,content:N.content,text:N.text,reasoningText:N.reasoningText,reasoning:N.reasoning,files:N.files,sources:N.sources,toolCalls:N.toolCalls,staticToolCalls:N.staticToolCalls,dynamicToolCalls:N.dynamicToolCalls,toolResults:N.toolResults,staticToolResults:N.staticToolResults,dynamicToolResults:N.dynamicToolResults,request:N.request,response:N.response,warnings:N.warnings,providerMetadata:N.providerMetadata,steps:R}),Z.setAttributes(Ne({telemetry:t,attributes:{"ai.response.finishReason":H,"ai.response.text":{output:()=>N.text},"ai.response.toolCalls":{output:()=>{var oe;return(oe=N.toolCalls)!=null&&oe.length?JSON.stringify(N.toolCalls):void 0}},"ai.response.providerMetadata":JSON.stringify(N.providerMetadata),"ai.usage.inputTokens":G.inputTokens,"ai.usage.outputTokens":G.outputTokens,"ai.usage.totalTokens":G.totalTokens,"ai.usage.reasoningTokens":G.reasoningTokens,"ai.usage.cachedInputTokens":G.cachedInputTokens}}))}catch(H){V.error(H)}finally{Z.end()}}}),$=Ec();this.addStream=$.addStream,this.closeStream=$.close;const z=$.stream.getReader();let Ut=new ReadableStream({async start(V){V.enqueue({type:"start"})},async pull(V){function H(){P?.({steps:R}),V.enqueue({type:"abort"}),V.close()}try{const{done:G,value:N}=await z.read();if(G){V.close();return}if(o?.aborted){H();return}V.enqueue(N)}catch(G){Re(G)&&o?.aborted?H():V.error(G)}},cancel(V){return $.stream.cancel(V)}});for(const V of p)Ut=Ut.pipeThrough(V({tools:u,stopStream(){$.terminate()}}));this.baseStream=Ut.pipeThrough(Cc(v)).pipeThrough(k);const{maxRetries:xs,retry:Rs}=oc({maxRetries:s,abortSignal:o}),qt=ec(t),ye=Du(n),Br=Yu({model:e,telemetry:t,headers:r,settings:{...ye,maxRetries:xs}}),ne=this;yr({name:"ai.streamText",attributes:Ne({telemetry:t,attributes:{...vr({operationId:"ai.streamText",telemetry:t}),...Br,"ai.prompt":{input:()=>JSON.stringify({system:l,prompt:i,messages:c})}}}),tracer:qt,endWhenDone:!1,fn:async V=>{Z=V;async function H({currentStep:G,responseMessages:N,usage:oe}){var qe,T,L,Fe,Zr;const Kr=ne.includeRawChunks;q=new ft;const Gr=await zu({system:l,prompt:i,messages:c}),Le=[...Gr.messages,...N],me=await y?.({model:e,steps:R,stepNumber:R.length,messages:Le}),ke=io((qe=me?.model)!=null?qe:e),Jr=await Mu({prompt:{system:(T=me?.system)!=null?T:Gr.system,messages:(L=me?.messages)!=null?L:Le},supportedUrls:await ke.supportedUrls,download:de}),{toolChoice:Ft,tools:Lt}=qu({tools:u,toolChoice:(Fe=me?.toolChoice)!=null?Fe:d,activeTools:(Zr=me?.activeTools)!=null?Zr:h}),{result:{stream:As,response:zr,request:Wr},doStreamSpan:Oe,startTimestampMs:Yr}=await Rs(()=>yr({name:"ai.streamText.doStream",attributes:Ne({telemetry:t,attributes:{...vr({operationId:"ai.streamText.doStream",telemetry:t}),...Br,"ai.model.provider":ke.provider,"ai.model.id":ke.modelId,"ai.prompt.messages":{input:()=>tc(Jr)},"ai.prompt.tools":{input:()=>Lt?.map(A=>JSON.stringify(A))},"ai.prompt.toolChoice":{input:()=>Ft!=null?JSON.stringify(Ft):void 0},"gen_ai.system":ke.provider,"gen_ai.request.model":ke.modelId,"gen_ai.request.frequency_penalty":ye.frequencyPenalty,"gen_ai.request.max_tokens":ye.maxOutputTokens,"gen_ai.request.presence_penalty":ye.presencePenalty,"gen_ai.request.stop_sequences":ye.stopSequences,"gen_ai.request.temperature":ye.temperature,"gen_ai.request.top_k":ye.topK,"gen_ai.request.top_p":ye.topP}}),tracer:qt,endWhenDone:!1,fn:async A=>({startTimestampMs:b(),doStreamSpan:A,result:await ke.doStream({...ye,tools:Lt,toolChoice:Ft,responseFormat:v?.responseFormat,prompt:Jr,providerOptions:_,abortSignal:o,headers:r,includeRawChunks:Kr})})})),Cs=xc({tools:u,generatorStream:As,tracer:qt,telemetry:t,system:l,messages:Le,repairToolCall:f,abortSignal:o,experimental_context:K}),Ps=Wr??{},ut=[],Vt=[];let Ht;const Bt={};let Me="unknown",se={inputTokens:void 0,outputTokens:void 0,totalTokens:void 0},Zt,Xr=!0,he={id:E(),timestamp:g(),modelId:e.modelId},Qr="";ne.addStream(Cs.pipeThrough(new TransformStream({async transform(A,J){var Ve,He,ct,_e;if(A.type==="stream-start"){Ht=A.warnings;return}if(Xr){const W=b()-Yr;Xr=!1,Oe.addEvent("ai.stream.firstChunk",{"ai.response.msToFirstChunk":W}),Oe.setAttributes({"ai.response.msToFirstChunk":W}),J.enqueue({type:"start-step",request:Ps,warnings:Ht??[]})}const en=A.type;switch(en){case"text-start":case"text-end":{J.enqueue(A);break}case"text-delta":{A.delta.length>0&&(J.enqueue({type:"text-delta",id:A.id,text:A.delta,providerMetadata:A.providerMetadata}),Qr+=A.delta);break}case"reasoning-start":case"reasoning-end":{J.enqueue(A);break}case"reasoning-delta":{J.enqueue({type:"reasoning-delta",id:A.id,text:A.delta,providerMetadata:A.providerMetadata});break}case"tool-call":{J.enqueue(A),ut.push(A);break}case"tool-result":{J.enqueue(A),A.preliminary||Vt.push(A);break}case"tool-error":{J.enqueue(A),Vt.push(A);break}case"response-metadata":{he={id:(Ve=A.id)!=null?Ve:he.id,timestamp:(He=A.timestamp)!=null?He:he.timestamp,modelId:(ct=A.modelId)!=null?ct:he.modelId};break}case"finish":{se=A.usage,Me=A.finishReason,Zt=A.providerMetadata;const W=b()-Yr;Oe.addEvent("ai.stream.finish"),Oe.setAttributes({"ai.response.msToFinish":W,"ai.response.avgOutputTokensPerSecond":1e3*((_e=se.outputTokens)!=null?_e:0)/W});break}case"file":{J.enqueue(A);break}case"source":{J.enqueue(A);break}case"tool-input-start":{Bt[A.id]=A.toolName;const W=u?.[A.toolName];W?.onInputStart!=null&&await W.onInputStart({toolCallId:A.id,messages:Le,abortSignal:o,experimental_context:K}),J.enqueue({...A,dynamic:W?.type==="dynamic"});break}case"tool-input-end":{delete Bt[A.id],J.enqueue(A);break}case"tool-input-delta":{const W=Bt[A.id],Kt=u?.[W];Kt?.onInputDelta!=null&&await Kt.onInputDelta({inputTextDelta:A.delta,toolCallId:A.id,messages:Le,abortSignal:o,experimental_context:K}),J.enqueue(A);break}case"error":{J.enqueue(A),Me="error";break}case"raw":{Kr&&J.enqueue(A);break}default:{const W=en;throw new Error(`Unknown chunk type: ${W}`)}}},async flush(A){const J=ut.length>0?JSON.stringify(ut):void 0;try{Oe.setAttributes(Ne({telemetry:t,attributes:{"ai.response.finishReason":Me,"ai.response.text":{output:()=>Qr},"ai.response.toolCalls":{output:()=>J},"ai.response.id":he.id,"ai.response.model":he.modelId,"ai.response.timestamp":he.timestamp.toISOString(),"ai.response.providerMetadata":JSON.stringify(Zt),"ai.usage.inputTokens":se.inputTokens,"ai.usage.outputTokens":se.outputTokens,"ai.usage.totalTokens":se.totalTokens,"ai.usage.reasoningTokens":se.reasoningTokens,"ai.usage.cachedInputTokens":se.cachedInputTokens,"gen_ai.response.finish_reasons":[Me],"gen_ai.response.id":he.id,"gen_ai.response.model":he.modelId,"gen_ai.usage.input_tokens":se.inputTokens,"gen_ai.usage.output_tokens":se.outputTokens}}))}catch{}finally{Oe.end()}A.enqueue({type:"finish-step",finishReason:Me,usage:se,providerMetadata:Zt,response:{...he,headers:zr?.headers}});const Ve=rc(oe,se);await q.promise;const He=ut.filter(_e=>_e.providerExecuted!==!0),ct=Vt.filter(_e=>_e.providerExecuted!==!0);if(He.length>0&&ct.length===He.length&&!await dc({stopConditions:m,steps:R})){N.push(...qn({content:R[R.length-1].content,tools:u}));try{await H({currentStep:G+1,responseMessages:N,usage:Ve})}catch(_e){A.enqueue({type:"error",error:_e}),ne.closeStream()}}else A.enqueue({type:"finish",finishReason:Me,totalUsage:Ve}),ne.closeStream()}})))}await H({currentStep:0,responseMessages:[],usage:{inputTokens:void 0,outputTokens:void 0,totalTokens:void 0}})}}).catch(V=>{ne.addStream(new ReadableStream({start(H){H.enqueue({type:"error",error:V}),H.close()}})),ne.closeStream()})}get steps(){return this.consumeStream(),this._steps.promise}get finalStep(){return this.steps.then(e=>e[e.length-1])}get content(){return this.finalStep.then(e=>e.content)}get warnings(){return this.finalStep.then(e=>e.warnings)}get providerMetadata(){return this.finalStep.then(e=>e.providerMetadata)}get text(){return this.finalStep.then(e=>e.text)}get reasoningText(){return this.finalStep.then(e=>e.reasoningText)}get reasoning(){return this.finalStep.then(e=>e.reasoning)}get sources(){return this.finalStep.then(e=>e.sources)}get files(){return this.finalStep.then(e=>e.files)}get toolCalls(){return this.finalStep.then(e=>e.toolCalls)}get staticToolCalls(){return this.finalStep.then(e=>e.staticToolCalls)}get dynamicToolCalls(){return this.finalStep.then(e=>e.dynamicToolCalls)}get toolResults(){return this.finalStep.then(e=>e.toolResults)}get staticToolResults(){return this.finalStep.then(e=>e.staticToolResults)}get dynamicToolResults(){return this.finalStep.then(e=>e.dynamicToolResults)}get usage(){return this.finalStep.then(e=>e.usage)}get request(){return this.finalStep.then(e=>e.request)}get response(){return this.finalStep.then(e=>e.response)}get totalUsage(){return this.consumeStream(),this._totalUsage.promise}get finishReason(){return this.consumeStream(),this._finishReason.promise}teeStream(){const[e,t]=this.baseStream.tee();return this.baseStream=t,e}get textStream(){return pt(this.teeStream().pipeThrough(new TransformStream({transform({part:e},t){e.type==="text-delta"&&t.enqueue(e.text)}})))}get fullStream(){return pt(this.teeStream().pipeThrough(new TransformStream({transform({part:e},t){t.enqueue(e)}})))}async consumeStream(e){var t;try{await Ic({stream:this.fullStream,onError:e?.onError})}catch(r){(t=e?.onError)==null||t.call(e,r)}}get experimental_partialOutputStream(){if(this.output==null)throw new au;return pt(this.teeStream().pipeThrough(new TransformStream({transform({partialOutput:e},t){e!=null&&t.enqueue(e)}})))}toUIMessageStream({originalMessages:e,generateMessageId:t,onFinish:r,messageMetadata:n,sendReasoning:s=!0,sendSources:o=!1,sendStart:l=!0,sendFinish:i=!0,onError:c=a.getErrorMessage}={}){const u=t!=null?hc({originalMessages:e,responseMessageId:t}):void 0,d={},p=f=>{var m,v;const _=d[f];return((v=(m=this.tools)==null?void 0:m[_])==null?void 0:v.type)==="dynamic"?!0:void 0},h=this.fullStream.pipeThrough(new TransformStream({transform:async(f,m)=>{const v=n?.({part:f}),_=f.type;switch(_){case"text-start":{m.enqueue({type:"text-start",id:f.id,...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{}});break}case"text-delta":{m.enqueue({type:"text-delta",id:f.id,delta:f.text,...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{}});break}case"text-end":{m.enqueue({type:"text-end",id:f.id,...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{}});break}case"reasoning-start":{m.enqueue({type:"reasoning-start",id:f.id,...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{}});break}case"reasoning-delta":{s&&m.enqueue({type:"reasoning-delta",id:f.id,delta:f.text,...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{}});break}case"reasoning-end":{m.enqueue({type:"reasoning-end",id:f.id,...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{}});break}case"file":{m.enqueue({type:"file",mediaType:f.file.mediaType,url:`data:${f.file.mediaType};base64,${f.file.base64}`});break}case"source":{o&&f.sourceType==="url"&&m.enqueue({type:"source-url",sourceId:f.id,url:f.url,title:f.title,...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{}}),o&&f.sourceType==="document"&&m.enqueue({type:"source-document",sourceId:f.id,mediaType:f.mediaType,title:f.title,filename:f.filename,...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{}});break}case"tool-input-start":{d[f.id]=f.toolName;const y=p(f.id);m.enqueue({type:"tool-input-start",toolCallId:f.id,toolName:f.toolName,...f.providerExecuted!=null?{providerExecuted:f.providerExecuted}:{},...y!=null?{dynamic:y}:{}});break}case"tool-input-delta":{m.enqueue({type:"tool-input-delta",toolCallId:f.id,inputTextDelta:f.delta});break}case"tool-call":{d[f.toolCallId]=f.toolName;const y=p(f.toolCallId);f.invalid?m.enqueue({type:"tool-input-error",toolCallId:f.toolCallId,toolName:f.toolName,input:f.input,...f.providerExecuted!=null?{providerExecuted:f.providerExecuted}:{},...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{},...y!=null?{dynamic:y}:{},errorText:c(f.error)}):m.enqueue({type:"tool-input-available",toolCallId:f.toolCallId,toolName:f.toolName,input:f.input,...f.providerExecuted!=null?{providerExecuted:f.providerExecuted}:{},...f.providerMetadata!=null?{providerMetadata:f.providerMetadata}:{},...y!=null?{dynamic:y}:{}});break}case"tool-result":{const y=p(f.toolCallId);m.enqueue({type:"tool-output-available",toolCallId:f.toolCallId,output:f.output,...f.providerExecuted!=null?{providerExecuted:f.providerExecuted}:{},...f.preliminary!=null?{preliminary:f.preliminary}:{},...y!=null?{dynamic:y}:{}});break}case"tool-error":{const y=p(f.toolCallId);m.enqueue({type:"tool-output-error",toolCallId:f.toolCallId,errorText:c(f.error),...f.providerExecuted!=null?{providerExecuted:f.providerExecuted}:{},...y!=null?{dynamic:y}:{}});break}case"error":{m.enqueue({type:"error",errorText:c(f.error)});break}case"start-step":{m.enqueue({type:"start-step"});break}case"finish-step":{m.enqueue({type:"finish-step"});break}case"start":{l&&m.enqueue({type:"start",...v!=null?{messageMetadata:v}:{},...u!=null?{messageId:u}:{}});break}case"finish":{i&&m.enqueue({type:"finish",...v!=null?{messageMetadata:v}:{}});break}case"abort":{m.enqueue(f);break}case"tool-input-end":break;case"raw":break;default:{const y=_;throw new Error(`Unknown chunk type: ${y}`)}}v!=null&&_!=="start"&&_!=="finish"&&m.enqueue({type:"message-metadata",messageMetadata:v})}}));return pt(wc({stream:h,messageId:u??t?.(),originalMessages:e,onFinish:r,onError:c}))}pipeUIMessageStreamToResponse(e,{originalMessages:t,generateMessageId:r,onFinish:n,messageMetadata:s,sendReasoning:o,sendSources:l,sendFinish:i,sendStart:c,onError:u,...d}={}){Tc({response:e,stream:this.toUIMessageStream({originalMessages:t,generateMessageId:r,onFinish:n,messageMetadata:s,sendReasoning:o,sendSources:l,sendFinish:i,sendStart:c,onError:u}),...d})}pipeTextStreamToResponse(e,t){fc({response:e,textStream:this.textStream,...t})}toUIMessageStreamResponse({originalMessages:e,generateMessageId:t,onFinish:r,messageMetadata:n,sendReasoning:s,sendSources:o,sendFinish:l,sendStart:i,onError:c,...u}={}){return mc({stream:this.toUIMessageStream({originalMessages:e,generateMessageId:t,onFinish:r,messageMetadata:n,sendReasoning:s,sendSources:o,sendFinish:l,sendStart:i,onError:c}),...u})}toTextStreamResponse(e){return pc({textStream:this.textStream,...e})}};function kc(e,t){const r=[];t?.ignoreIncompleteToolCalls&&(e=e.map(n=>({...n,parts:n.parts.filter(s=>!Ln(s)||s.state!=="input-streaming"&&s.state!=="input-available")})));for(const n of e)switch(n.role){case"system":{const s=n.parts.filter(l=>l.type==="text"),o=s.reduce((l,i)=>i.providerMetadata!=null?{...l,...i.providerMetadata}:l,{});r.push({role:"system",content:s.map(l=>l.text).join(""),...Object.keys(o).length>0?{providerOptions:o}:{}});break}case"user":{r.push({role:"user",content:n.parts.map(s=>{var o;if(nr(s))return{type:"text",text:s.text,...s.providerMetadata!=null?{providerOptions:s.providerMetadata}:{}};if(ar(s))return{type:"file",mediaType:s.mediaType,filename:s.filename,data:s.url,...s.providerMetadata!=null?{providerOptions:s.providerMetadata}:{}};if(rr(s))return(o=t?.convertDataPart)==null?void 0:o.call(t,s)}).filter(s=>s!=null)});break}case"assistant":{if(n.parts!=null){let s=function(){var l,i,c;if(o.length===0)return;const u=[];for(const p of o)if(nr(p))u.push({type:"text",text:p.text,...p.providerMetadata!=null?{providerOptions:p.providerMetadata}:{}});else if(ar(p))u.push({type:"file",mediaType:p.mediaType,filename:p.filename,data:p.url});else if(Fn(p))u.push({type:"reasoning",text:p.text,providerOptions:p.providerMetadata});else if(Mr(p)){const h=p.toolName;p.state!=="input-streaming"&&u.push({type:"tool-call",toolCallId:p.toolCallId,toolName:h,input:p.input,...p.callProviderMetadata!=null?{providerOptions:p.callProviderMetadata}:{}})}else if($e(p)){const h=wt(p);p.state!=="input-streaming"&&(u.push({type:"tool-call",toolCallId:p.toolCallId,toolName:h,input:p.state==="output-error"?(l=p.input)!=null?l:p.rawInput:p.input,providerExecuted:p.providerExecuted,...p.callProviderMetadata!=null?{providerOptions:p.callProviderMetadata}:{}}),p.providerExecuted===!0&&(p.state==="output-available"||p.state==="output-error")&&u.push({type:"tool-result",toolCallId:p.toolCallId,toolName:h,output:ze({output:p.state==="output-error"?p.errorText:p.output,tool:(i=t?.tools)==null?void 0:i[h],errorMode:p.state==="output-error"?"json":"none"})}))}else if(rr(p)){const h=(c=t?.convertDataPart)==null?void 0:c.call(t,p);h!=null&&u.push(h)}else{const h=p;throw new Error(`Unsupported part: ${h}`)}r.push({role:"assistant",content:u});const d=o.filter(p=>$e(p)&&p.providerExecuted!==!0||p.type==="dynamic-tool");d.length>0&&r.push({role:"tool",content:d.map(p=>{var h;switch(p.state){case"output-error":case"output-available":{const f=yc(p);return{type:"tool-result",toolCallId:p.toolCallId,toolName:f,output:ze({output:p.state==="output-error"?p.errorText:p.output,tool:(h=t?.tools)==null?void 0:h[f],errorMode:p.state==="output-error"?"text":"none"})}}default:return null}}).filter(p=>p!=null)}),o=[]},o=[];for(const l of n.parts)nr(l)||Fn(l)||ar(l)||Ln(l)||rr(l)?o.push(l):l.type==="step-start"&&s();s();break}break}default:{const s=n.role;throw new bu({originalMessage:n,message:`Unsupported role: ${s}`})}}return r}it({prefix:"aiobj",size:24});it({prefix:"aiobj",size:24});var Oc={};ru(Oc,{object:()=>Nc,text:()=>Mc});var Mc=()=>({type:"text",responseFormat:{type:"text"},async parsePartial({text:e}){return{partial:e}},async parseOutput({text:e}){return e}}),Nc=({schema:e})=>{const t=Ot(e);return{type:"object",responseFormat:{type:"json",schema:t.jsonSchema},async parsePartial({text:r}){const n=await bo(r);switch(n.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:n.value};default:{const s=n.state;throw new Error(`Unsupported parse state: ${s}`)}}},async parseOutput({text:r},n){const s=await Ae({text:r});if(!s.success)throw new Nn({message:"No object generated: could not parse the response.",cause:s.error,text:r,response:n.response,usage:n.usage,finishReason:n.finishReason});const o=await Se({value:s.value,schema:t});if(!o.success)throw new Nn({message:"No object generated: response did not match schema.",cause:o.error,text:r,response:n.response,usage:n.usage,finishReason:n.finishReason});return o.value}}},$c=Object.defineProperty,jc=Object.defineProperties,Dc=Object.getOwnPropertyDescriptors,Hn=Object.getOwnPropertySymbols,Uc=Object.prototype.hasOwnProperty,qc=Object.prototype.propertyIsEnumerable,Bn=(e,t,r)=>t in e?$c(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,j=(e,t)=>{for(var r in t||(t={}))Uc.call(t,r)&&Bn(e,r,t[r]);if(Hn)for(var r of Hn(t))qc.call(t,r)&&Bn(e,r,t[r]);return e},Tt=(e,t)=>jc(e,Dc(t)),wo="vercel.ai.error",Fc=Symbol.for(wo),To,Lc=class Io extends Error{constructor({name:t,message:r,cause:n}){super(r),this[To]=!0,this.name=t,this.cause=n}static isInstance(t){return Io.hasMarker(t,wo)}static hasMarker(t,r){const n=Symbol.for(r);return t!=null&&typeof t=="object"&&n in t&&typeof t[n]=="boolean"&&t[n]===!0}};To=Fc;var B=Lc,Eo="AI_APICallError",So=`vercel.ai.error.${Eo}`,Vc=Symbol.for(So),xo,ce=class extends B{constructor({message:e,url:t,requestBodyValues:r,statusCode:n,responseHeaders:s,responseBody:o,cause:l,isRetryable:i=n!=null&&(n===408||n===409||n===429||n>=500),data:c}){super({name:Eo,message:e,cause:l}),this[xo]=!0,this.url=t,this.requestBodyValues=r,this.statusCode=n,this.responseHeaders=s,this.responseBody=o,this.isRetryable=i,this.data=c}static isInstance(e){return B.hasMarker(e,So)}};xo=Vc;var Ro="AI_EmptyResponseBodyError",Ao=`vercel.ai.error.${Ro}`,Hc=Symbol.for(Ao),Co,Bc=class extends B{constructor({message:e="Empty response body"}={}){super({name:Ro,message:e}),this[Co]=!0}static isInstance(e){return B.hasMarker(e,Ao)}};Co=Hc;function Po(e){return e==null?"unknown error":typeof e=="string"?e:e instanceof Error?e.message:JSON.stringify(e)}var ko="AI_InvalidArgumentError",Oo=`vercel.ai.error.${ko}`,Zc=Symbol.for(Oo),Mo,No=class extends B{constructor({message:e,cause:t,argument:r}){super({name:ko,message:e,cause:t}),this[Mo]=!0,this.argument=r}static isInstance(e){return B.hasMarker(e,Oo)}};Mo=Zc;var $o="AI_InvalidPromptError",jo=`vercel.ai.error.${$o}`,Kc=Symbol.for(jo),Do,Gc=class extends B{constructor({prompt:e,message:t,cause:r}){super({name:$o,message:`Invalid prompt: ${t}`,cause:r}),this[Do]=!0,this.prompt=e}static isInstance(e){return B.hasMarker(e,jo)}};Do=Kc;var Uo="AI_InvalidResponseDataError",qo=`vercel.ai.error.${Uo}`,Jc=Symbol.for(qo),Fo,Ke=class extends B{constructor({data:e,message:t=`Invalid response data: ${JSON.stringify(e)}.`}){super({name:Uo,message:t}),this[Fo]=!0,this.data=e}static isInstance(e){return B.hasMarker(e,qo)}};Fo=Jc;var Lo="AI_JSONParseError",Vo=`vercel.ai.error.${Lo}`,zc=Symbol.for(Vo),Ho,It=class extends B{constructor({text:e,cause:t}){super({name:Lo,message:`JSON parsing failed: Text: ${e}.
25
+ Error message: ${Po(t)}`,cause:t}),this[Ho]=!0,this.text=e}static isInstance(e){return B.hasMarker(e,Vo)}};Ho=zc;var Bo="AI_LoadAPIKeyError",Zo=`vercel.ai.error.${Bo}`,Wc=Symbol.for(Zo),Ko,mt=class extends B{constructor({message:e}){super({name:Bo,message:e}),this[Ko]=!0}static isInstance(e){return B.hasMarker(e,Zo)}};Ko=Wc;var Go="AI_NoContentGeneratedError",Jo=`vercel.ai.error.${Go}`,Yc=Symbol.for(Jo),zo,Wo=class extends B{constructor({message:e="No content generated."}={}){super({name:Go,message:e}),this[zo]=!0}static isInstance(e){return B.hasMarker(e,Jo)}};zo=Yc;var Yo="AI_TypeValidationError",Xo=`vercel.ai.error.${Yo}`,Xc=Symbol.for(Xo),Qo,Qc=class _r extends B{constructor({value:t,cause:r}){super({name:Yo,message:`Type validation failed: Value: ${JSON.stringify(t)}.
26
+ Error message: ${Po(r)}`,cause:r}),this[Qo]=!0,this.value=t}static isInstance(t){return B.hasMarker(t,Xo)}static wrap({value:t,cause:r}){return _r.isInstance(r)&&r.value===t?r:new _r({value:t,cause:r})}};Qo=Xc;var rt=Qc,es="AI_UnsupportedFunctionalityError",ts=`vercel.ai.error.${es}`,ed=Symbol.for(ts),rs,Ie=class extends B{constructor({functionality:e,message:t=`'${e}' functionality not supported.`}){super({name:es,message:t}),this[rs]=!0,this.functionality=e}static isInstance(e){return B.hasMarker(e,ts)}};rs=ed;var Zn=class extends Error{constructor(e,t){super(e),this.name="ParseError",this.type=t.type,this.field=t.field,this.value=t.value,this.line=t.line}};function or(e){}function td(e){if(typeof e=="function")throw new TypeError("`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?");const{onEvent:t=or,onError:r=or,onRetry:n=or,onComment:s}=e;let o="",l=!0,i,c="",u="";function d(v){const _=l?v.replace(/^\xEF\xBB\xBF/,""):v,[y,w]=rd(`${o}${_}`);for(const b of y)p(b);o=w,l=!1}function p(v){if(v===""){f();return}if(v.startsWith(":")){s&&s(v.slice(v.startsWith(": ")?2:1));return}const _=v.indexOf(":");if(_!==-1){const y=v.slice(0,_),w=v[_+1]===" "?2:1,b=v.slice(_+w);h(y,b,v);return}h(v,"",v)}function h(v,_,y){switch(v){case"event":u=_;break;case"data":c=`${c}${_}
27
+ `;break;case"id":i=_.includes("\0")?void 0:_;break;case"retry":/^\d+$/.test(_)?n(parseInt(_,10)):r(new Zn(`Invalid \`retry\` value: "${_}"`,{type:"invalid-retry",value:_,line:y}));break;default:r(new Zn(`Unknown field "${v.length>20?`${v.slice(0,20)}…`:v}"`,{type:"unknown-field",field:v,value:_,line:y}));break}}function f(){c.length>0&&t({id:i,event:u||void 0,data:c.endsWith(`
28
+ `)?c.slice(0,-1):c}),i=void 0,c="",u=""}function m(v={}){o&&v.consume&&p(o),l=!0,i=void 0,c="",u="",o=""}return{feed:d,reset:m}}function rd(e){const t=[];let r="",n=0;for(;n<e.length;){const s=e.indexOf("\r",n),o=e.indexOf(`
29
+ `,n);let l=-1;if(s!==-1&&o!==-1?l=Math.min(s,o):s!==-1?l=s:o!==-1&&(l=o),l===-1){r=e.slice(n);break}else{const i=e.slice(n,l);t.push(i),n=l+1,e[n-1]==="\r"&&e[n]===`
30
+ `&&n++}}return[t,r]}var nd=class extends TransformStream{constructor({onError:e,onRetry:t,onComment:r}={}){let n;super({start(s){n=td({onEvent:o=>{s.enqueue(o)},onError(o){e==="terminate"?s.error(o):typeof e=="function"&&e(o)},onRetry:t,onComment:r})},transform(s){n.feed(s)}})}};new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function nt(...e){return e.reduce((t,r)=>j(j({},t),r??{}),{})}function Nt(e){return Object.fromEntries([...e.headers])}var ad=({prefix:e,size:t=16,alphabet:r="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:n="-"}={})=>{const s=()=>{const o=r.length,l=new Array(t);for(let i=0;i<t;i++)l[i]=r[Math.random()*o|0];return l.join("")};if(e==null)return s;if(r.includes(n))throw new No({argument:"separator",message:`The separator "${n}" must not be part of the alphabet "${r}".`});return()=>`${e}${n}${s()}`},ue=ad();function br(e){return(e instanceof Error||e instanceof DOMException)&&(e.name==="AbortError"||e.name==="ResponseAborted"||e.name==="TimeoutError")}var od=["fetch failed","failed to fetch"];function sd({error:e,url:t,requestBodyValues:r}){if(br(e))return e;if(e instanceof TypeError&&od.includes(e.message.toLowerCase())){const n=e.cause;if(n!=null)return new ce({message:`Cannot connect to API: ${n.message}`,cause:n,url:t,requestBodyValues:r,isRetryable:!0})}return e}function id(e){return Object.fromEntries(Object.entries(e).filter(([t,r])=>r!=null))}function ld({apiKey:e,environmentVariableName:t,apiKeyParameterName:r="apiKey",description:n}){if(typeof e=="string")return e;if(e!=null)throw new mt({message:`${n} API key must be a string.`});if(typeof process>"u")throw new mt({message:`${n} API key is missing. Pass it using the '${r}' parameter. Environment variables is not supported in this environment.`});if(e=process.env[t],e==null)throw new mt({message:`${n} API key is missing. Pass it using the '${r}' parameter or the ${t} environment variable.`});if(typeof e!="string")throw new mt({message:`${n} API key must be a string. The value of the ${t} environment variable is not a string.`});return e}var ud=/"__proto__"\s*:/,cd=/"constructor"\s*:/;function dd(e){const t=JSON.parse(e);return t===null||typeof t!="object"||ud.test(e)===!1&&cd.test(e)===!1?t:pd(t)}function pd(e){let t=[e];for(;t.length;){const r=t;t=[];for(const n of r){if(Object.prototype.hasOwnProperty.call(n,"__proto__"))throw new SyntaxError("Object contains forbidden prototype property");if(Object.prototype.hasOwnProperty.call(n,"constructor")&&Object.prototype.hasOwnProperty.call(n.constructor,"prototype"))throw new SyntaxError("Object contains forbidden prototype property");for(const s in n){const o=n[s];o&&typeof o=="object"&&t.push(o)}}}return e}function Nr(e){const{stackTraceLimit:t}=Error;Error.stackTraceLimit=0;try{return dd(e)}finally{Error.stackTraceLimit=t}}var wr=Symbol.for("vercel.ai.validator");function fd(e){return{[wr]:!0,validate:e}}function md(e){return typeof e=="object"&&e!==null&&wr in e&&e[wr]===!0&&"validate"in e}function hd(e){return md(e)?e:gd(e)}function gd(e){return fd(async t=>{const r=await e["~standard"].validate(t);return r.issues==null?{success:!0,value:r.value}:{success:!1,error:new rt({value:t,cause:r.issues})}})}async function vd({value:e,schema:t}){const r=await ns({value:e,schema:t});if(!r.success)throw rt.wrap({value:e,cause:r.error});return r.value}async function ns({value:e,schema:t}){const r=hd(t);try{if(r.validate==null)return{success:!0,value:e,rawValue:e};const n=await r.validate(e);return n.success?{success:!0,value:n.value,rawValue:e}:{success:!1,error:rt.wrap({value:e,cause:n.error}),rawValue:e}}catch(n){return{success:!1,error:rt.wrap({value:e,cause:n}),rawValue:e}}}async function yd({text:e,schema:t}){try{const r=Nr(e);return t==null?r:vd({value:r,schema:t})}catch(r){throw It.isInstance(r)||rt.isInstance(r)?r:new It({text:e,cause:r})}}async function as({text:e,schema:t}){try{const r=Nr(e);return t==null?{success:!0,value:r,rawValue:r}:await ns({value:r,schema:t})}catch(r){return{success:!1,error:It.isInstance(r)?r:new It({text:e,cause:r}),rawValue:void 0}}}function sr(e){try{return Nr(e),!0}catch{return!1}}function _d({stream:e,schema:t}){return e.pipeThrough(new TextDecoderStream).pipeThrough(new nd).pipeThrough(new TransformStream({async transform({data:r},n){r!=="[DONE]"&&n.enqueue(await as({text:r,schema:t}))}}))}var bd=()=>globalThis.fetch,at=async({url:e,headers:t,body:r,failedResponseHandler:n,successfulResponseHandler:s,abortSignal:o,fetch:l})=>wd({url:e,headers:j({"Content-Type":"application/json"},t),body:{content:JSON.stringify(r),values:r},failedResponseHandler:n,successfulResponseHandler:s,abortSignal:o,fetch:l}),wd=async({url:e,headers:t={},body:r,successfulResponseHandler:n,failedResponseHandler:s,abortSignal:o,fetch:l=bd()})=>{try{const i=await l(e,{method:"POST",headers:id(t),body:r.content,signal:o}),c=Nt(i);if(!i.ok){let u;try{u=await s({response:i,url:e,requestBodyValues:r.values})}catch(d){throw br(d)||ce.isInstance(d)?d:new ce({message:"Failed to process error response",cause:d,statusCode:i.status,url:e,responseHeaders:c,requestBodyValues:r.values})}throw u.value}try{return await n({response:i,url:e,requestBodyValues:r.values})}catch(u){throw u instanceof Error&&(br(u)||ce.isInstance(u))?u:new ce({message:"Failed to process successful response",cause:u,statusCode:i.status,url:e,responseHeaders:c,requestBodyValues:r.values})}}catch(i){throw sd({error:i,url:e,requestBodyValues:r.values})}},Td=({errorSchema:e,errorToMessage:t,isRetryable:r})=>async({response:n,url:s,requestBodyValues:o})=>{const l=await n.text(),i=Nt(n);if(l.trim()==="")return{responseHeaders:i,value:new ce({message:n.statusText,url:s,requestBodyValues:o,statusCode:n.status,responseHeaders:i,responseBody:l,isRetryable:r?.(n)})};try{const c=await yd({text:l,schema:e});return{responseHeaders:i,value:new ce({message:t(c),url:s,requestBodyValues:o,statusCode:n.status,responseHeaders:i,responseBody:l,data:c,isRetryable:r?.(n,c)})}}catch{return{responseHeaders:i,value:new ce({message:n.statusText,url:s,requestBodyValues:o,statusCode:n.status,responseHeaders:i,responseBody:l,isRetryable:r?.(n)})}}},os=e=>async({response:t})=>{const r=Nt(t);if(t.body==null)throw new Bc({});return{responseHeaders:r,value:_d({stream:t.body,schema:e})}},$r=e=>async({response:t,url:r,requestBodyValues:n})=>{const s=await t.text(),o=await as({text:s,schema:e}),l=Nt(t);if(!o.success)throw new ce({message:"Invalid JSON response",cause:o.error,statusCode:t.status,responseHeaders:l,responseBody:s,url:r,requestBodyValues:n});return{responseHeaders:l,value:o.value,rawValue:o.rawValue}},{btoa:Id}=globalThis;function Ed(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCodePoint(e[r]);return Id(t)}function Sd(e){return e?.replace(/\/$/,"")}function ir(e){return e!=null}var ss=(e=>(e.Unknown="unknown",e.OpenAIResponsesV1="openai-responses-v1",e.XAIResponsesV1="xai-responses-v1",e.AnthropicClaudeV1="anthropic-claude-v1",e.GoogleGeminiV1="google-gemini-v1",e))(ss||{}),jr=a.object({id:a.string().nullish(),format:a._enum$1(ss).nullish(),index:a.number().optional()}).loose(),xd=a.object({type:a.literal("reasoning.summary"),summary:a.string()}).extend(jr.shape),Rd=a.object({type:a.literal("reasoning.encrypted"),data:a.string()}).extend(jr.shape),Ad=a.object({type:a.literal("reasoning.text"),text:a.string().nullish(),signature:a.string().nullish()}).extend(jr.shape),Dr=a.union([xd,Rd,Ad]),gt=a.union([Dr,a.unknown().transform(()=>null)]),Ur=a.array(gt).transform(e=>e.filter(t=>!!t));a.union([a.object({delta:a.object({reasoning_details:a.array(gt)})}).transform(e=>e.delta.reasoning_details.filter(ir)),a.object({message:a.object({reasoning_details:a.array(gt)})}).transform(e=>e.message.reasoning_details.filter(ir)),a.object({text:a.string(),reasoning_details:a.array(gt)}).transform(e=>e.reasoning_details.filter(ir))]);var $t=a.object({error:a.object({code:a.union([a.string(),a.number()]).nullable().optional().default(null),message:a.string(),type:a.string().nullable().optional().default(null),param:a.any().nullable().optional().default(null)}).passthrough()}).passthrough(),ot=Td({errorSchema:$t,errorToMessage:e=>e.error.message}),is=a.object({type:a.literal("file"),file:a.object({hash:a.string(),name:a.string(),content:a.array(a.object({type:a.string(),text:a.string().optional()}).passthrough()).optional()}).passthrough()}),Cd=a.object({provider:a.string(),reasoning_details:a.array(Dr).optional(),annotations:a.array(is).optional(),usage:a.object({promptTokens:a.number(),promptTokensDetails:a.object({cachedTokens:a.number()}).passthrough().optional(),completionTokens:a.number(),completionTokensDetails:a.object({reasoningTokens:a.number()}).passthrough().optional(),totalTokens:a.number(),cost:a.number().optional(),costDetails:a.object({upstreamInferenceCost:a.number()}).passthrough().optional()}).passthrough()}).passthrough(),Kn=a.object({openrouter:a.object({reasoning_details:a.array(Dr).optional(),annotations:a.array(is).optional()}).optional()}).optional();function Et(e){switch(e){case"stop":return"stop";case"length":return"length";case"content_filter":return"content-filter";case"function_call":case"tool_calls":return"tool-calls";default:return"unknown"}}function qr({url:e,protocols:t}){try{const r=new URL(e);return t.has(r.protocol)}catch{return!1}}function Tr({part:e,defaultMediaType:t}){var r,n;if(e.data instanceof Uint8Array){const o=Ed(e.data);return`data:${(r=e.mediaType)!=null?r:t};base64,${o}`}const s=e.data.toString();return qr({url:s,protocols:new Set(["http:","https:"])})||s.startsWith("data:")?s:`data:${(n=e.mediaType)!=null?n:t};base64,${s}`}function Gn(e,t){var r;const n=e.match(/^data:([^;]+)/);return n&&(r=n[1])!=null?r:t}function Ir(e){const t=e.match(/^data:[^;]*;base64,(.+)$/);return t?t[1]:e}function Pd(e){const t=Tr({part:e,defaultMediaType:"audio/mpeg"});if(qr({url:t,protocols:new Set(["http:","https:"])}))throw new Error(`Audio files cannot be provided as URLs.
31
+
32
+ OpenRouter requires audio to be base64-encoded. Please:
33
+ 1. Download the audio file locally
34
+ 2. Read it as a Buffer or Uint8Array
35
+ 3. Pass it as the data parameter
36
+
37
+ The AI SDK will automatically handle base64 encoding.
38
+
39
+ Learn more: https://openrouter.ai/docs/features/multimodal/audio`);const r=Ir(t),n=e.mediaType||"audio/mpeg";let s=n.replace("audio/","");if(s==="mpeg"||s==="mp3"?s="mp3":(s==="x-wav"||s==="wave"||s==="wav")&&(s="wav"),s!=="mp3"&&s!=="wav")throw new Error(`Unsupported audio format: "${n}"
40
+
41
+ OpenRouter only supports MP3 and WAV audio formats.
42
+ • For MP3: use "audio/mpeg" or "audio/mp3"
43
+ • For WAV: use "audio/wav" or "audio/x-wav"
44
+
45
+ Learn more: https://openrouter.ai/docs/features/multimodal/audio`);return{data:r,format:s}}function Te(e){var t,r,n;const s=e?.anthropic,o=e?.openrouter;return(n=(r=(t=o?.cacheControl)!=null?t:o?.cache_control)!=null?r:s?.cacheControl)!=null?n:s?.cache_control}function kd(e){var t,r,n,s,o,l,i,c,u,d;const p=[];for(const{role:h,content:f,providerOptions:m}of e)switch(h){case"system":{p.push({role:"system",content:f,cache_control:Te(m)});break}case"user":{if(f.length===1&&((t=f[0])==null?void 0:t.type)==="text"){const y=(r=Te(m))!=null?r:Te(f[0].providerOptions),w=y?[{type:"text",text:f[0].text,cache_control:y}]:f[0].text;p.push({role:"user",content:w});break}const v=Te(m),_=f.map(y=>{var w,b,g,E,S,I,x;const P=(w=Te(y.providerOptions))!=null?w:v;switch(y.type){case"text":return{type:"text",text:y.text,cache_control:P};case"file":{if((b=y.mediaType)!=null&&b.startsWith("image/"))return{type:"image_url",image_url:{url:Tr({part:y,defaultMediaType:"image/jpeg"})},cache_control:P};if((g=y.mediaType)!=null&&g.startsWith("audio/"))return{type:"input_audio",input_audio:Pd(y),cache_control:P};const F=String((x=(I=(S=(E=y.providerOptions)==null?void 0:E.openrouter)==null?void 0:S.filename)!=null?I:y.filename)!=null?x:""),K=Tr({part:y,defaultMediaType:"application/pdf"});return qr({url:K,protocols:new Set(["http:","https:"])})?{type:"file",file:{filename:F,file_data:K}}:{type:"file",file:{filename:F,file_data:K},cache_control:P}}default:return{type:"text",text:"",cache_control:P}}});p.push({role:"user",content:_});break}case"assistant":{let v="",_="";const y=[],w=[];for(const I of f)switch(I.type){case"text":{v+=I.text;break}case"tool-call":{const x=(n=I.providerOptions)==null?void 0:n.openrouter;x?.reasoning_details&&Array.isArray(x.reasoning_details)&&w.push(...x.reasoning_details),y.push({id:I.toolCallId,type:"function",function:{name:I.toolName,arguments:JSON.stringify(I.input)}});break}case"reasoning":{_+=I.text;const x=Kn.safeParse(I.providerOptions);x.success&&((o=(s=x.data)==null?void 0:s.openrouter)!=null&&o.reasoning_details)&&w.push(...x.data.openrouter.reasoning_details);break}}const b=Kn.safeParse(m),g=b.success?(i=(l=b.data)==null?void 0:l.openrouter)==null?void 0:i.reasoning_details:void 0,E=b.success?(u=(c=b.data)==null?void 0:c.openrouter)==null?void 0:u.annotations:void 0,S=g&&Array.isArray(g)&&g.length>0?g:w.length>0?w:void 0;p.push({role:"assistant",content:v,tool_calls:y.length>0?y:void 0,reasoning:_||void 0,reasoning_details:S,annotations:E,cache_control:Te(m)});break}case"tool":{for(const v of f){const _=Od(v);p.push({role:"tool",tool_call_id:v.toolCallId,content:_,cache_control:(d=Te(m))!=null?d:Te(v.providerOptions)})}break}}return p}function Od(e){return e.output.type==="text"?e.output.value:JSON.stringify(e.output.value)}a.union([a.literal("auto"),a.literal("none"),a.literal("required"),a.object({type:a.literal("function"),function:a.object({name:a.string()})})]);function Md(e){switch(e.type){case"auto":case"none":case"required":return e.type;case"tool":return{type:"function",function:{name:e.toolName}};default:throw new No({argument:"toolChoice",message:`Invalid tool choice type: ${JSON.stringify(e)}`})}}var Nd=a.object({type:a.literal("image_url"),image_url:a.object({url:a.string()}).passthrough()}).passthrough(),$d=a.union([Nd,a.unknown().transform(()=>null)]),ls=a.array($d).transform(e=>e.filter(t=>!!t)),us=a.object({id:a.string().optional(),model:a.string().optional(),provider:a.string().optional(),usage:a.object({prompt_tokens:a.number(),prompt_tokens_details:a.object({cached_tokens:a.number()}).passthrough().nullish(),completion_tokens:a.number(),completion_tokens_details:a.object({reasoning_tokens:a.number()}).passthrough().nullish(),total_tokens:a.number(),cost:a.number().optional(),cost_details:a.object({upstream_inference_cost:a.number().nullish()}).passthrough().nullish()}).passthrough().nullish()}).passthrough(),jd=a.union([us.extend({choices:a.array(a.object({message:a.object({role:a.literal("assistant"),content:a.string().nullable().optional(),reasoning:a.string().nullable().optional(),reasoning_details:Ur.nullish(),images:ls.nullish(),tool_calls:a.array(a.object({id:a.string().optional().nullable(),type:a.literal("function"),function:a.object({name:a.string(),arguments:a.string()}).passthrough()}).passthrough()).optional(),annotations:a.array(a.union([a.object({type:a.literal("url_citation"),url_citation:a.object({end_index:a.number(),start_index:a.number(),title:a.string(),url:a.string(),content:a.string().optional()}).passthrough()}).passthrough(),a.object({type:a.literal("file_annotation"),file_annotation:a.object({file_id:a.string(),quote:a.string().optional()}).passthrough()}).passthrough(),a.object({type:a.literal("file"),file:a.object({hash:a.string(),name:a.string(),content:a.array(a.object({type:a.string(),text:a.string().optional()}).passthrough()).optional()}).passthrough()}).passthrough()])).nullish()}).passthrough(),index:a.number().nullish(),logprobs:a.object({content:a.array(a.object({token:a.string(),logprob:a.number(),top_logprobs:a.array(a.object({token:a.string(),logprob:a.number()}).passthrough())}).passthrough()).nullable()}).passthrough().nullable().optional(),finish_reason:a.string().optional().nullable()}).passthrough())}),$t.extend({user_id:a.string().optional()})]),Dd=a.union([us.extend({choices:a.array(a.object({delta:a.object({role:a._enum$1(["assistant"]).optional(),content:a.string().nullish(),reasoning:a.string().nullish().optional(),reasoning_details:Ur.nullish(),images:ls.nullish(),tool_calls:a.array(a.object({index:a.number().nullish(),id:a.string().nullish(),type:a.literal("function").optional(),function:a.object({name:a.string().nullish(),arguments:a.string().nullish()}).passthrough()}).passthrough()).nullish(),annotations:a.array(a.union([a.object({type:a.literal("url_citation"),url_citation:a.object({end_index:a.number(),start_index:a.number(),title:a.string(),url:a.string(),content:a.string().optional()}).passthrough()}).passthrough(),a.object({type:a.literal("file_annotation"),file_annotation:a.object({file_id:a.string(),quote:a.string().optional()}).passthrough()}).passthrough(),a.object({type:a.literal("file"),file:a.object({hash:a.string(),name:a.string(),content:a.array(a.object({type:a.string(),text:a.string().optional()}).passthrough()).optional()}).passthrough()}).passthrough()])).nullish()}).passthrough().nullish(),logprobs:a.object({content:a.array(a.object({token:a.string(),logprob:a.number(),top_logprobs:a.array(a.object({token:a.string(),logprob:a.number()}).passthrough())}).passthrough()).nullable()}).passthrough().nullish(),finish_reason:a.string().nullable().optional(),index:a.number().nullish()}).passthrough())}),$t]),Ud=class{constructor(e,t,r){this.specificationVersion="v2",this.provider="openrouter",this.defaultObjectGenerationMode="tool",this.supportsImageUrls=!0,this.supportedUrls={"image/*":[/^data:image\/[a-zA-Z]+;base64,/,/^https?:\/\/.+\.(jpg|jpeg|png|gif|webp)$/i],"application/*":[/^data:application\//,/^https?:\/\/.+$/]},this.modelId=e,this.settings=t,this.config=r}getArgs({prompt:e,maxOutputTokens:t,temperature:r,topP:n,frequencyPenalty:s,presencePenalty:o,seed:l,stopSequences:i,responseFormat:c,topK:u,tools:d,toolChoice:p}){var h;const f=j(j({model:this.modelId,models:this.settings.models,logit_bias:this.settings.logitBias,logprobs:this.settings.logprobs===!0||typeof this.settings.logprobs=="number"?!0:void 0,top_logprobs:typeof this.settings.logprobs=="number"?this.settings.logprobs:typeof this.settings.logprobs=="boolean"&&this.settings.logprobs?0:void 0,user:this.settings.user,parallel_tool_calls:this.settings.parallelToolCalls,max_tokens:t,temperature:r,top_p:n,frequency_penalty:s,presence_penalty:o,seed:l,stop:i,response_format:c?.type==="json"?c.schema!=null?{type:"json_schema",json_schema:j({schema:c.schema,strict:!0,name:(h=c.name)!=null?h:"response"},c.description&&{description:c.description})}:{type:"json_object"}:void 0,top_k:u,messages:kd(e),include_reasoning:this.settings.includeReasoning,reasoning:this.settings.reasoning,usage:this.settings.usage,plugins:this.settings.plugins,web_search_options:this.settings.web_search_options,provider:this.settings.provider,debug:this.settings.debug},this.config.extraBody),this.settings.extraBody);if(d&&d.length>0){const m=d.filter(v=>v.type==="function").map(v=>({type:"function",function:{name:v.name,description:v.description,parameters:v.inputSchema}}));return Tt(j({},f),{tools:m,tool_choice:p?Md(p):void 0})}return f}async doGenerate(e){var t,r,n,s,o,l,i,c,u,d,p,h,f,m,v,_,y,w,b,g,E,S,I;const P=(e.providerOptions||{}).openrouter||{},F=j(j({},this.getArgs(e)),P),{value:K,responseHeaders:de}=await at({url:this.config.url({path:"/chat/completions",modelId:this.modelId}),headers:nt(this.config.headers(),e.headers),body:F,failedResponseHandler:ot,successfulResponseHandler:$r(jd),abortSignal:e.abortSignal,fetch:this.config.fetch});if("error"in K){const R=K.error;throw new ce({message:R.message,url:this.config.url({path:"/chat/completions",modelId:this.modelId}),requestBodyValues:F,statusCode:200,responseHeaders:de,data:R})}const q=K,M=q.choices[0];if(!M)throw new Wo({message:"No choice in response"});const pe=q.usage?{inputTokens:(t=q.usage.prompt_tokens)!=null?t:0,outputTokens:(r=q.usage.completion_tokens)!=null?r:0,totalTokens:((n=q.usage.prompt_tokens)!=null?n:0)+((s=q.usage.completion_tokens)!=null?s:0),reasoningTokens:(l=(o=q.usage.completion_tokens_details)==null?void 0:o.reasoning_tokens)!=null?l:0,cachedInputTokens:(c=(i=q.usage.prompt_tokens_details)==null?void 0:i.cached_tokens)!=null?c:0}:{inputTokens:0,outputTokens:0,totalTokens:0,reasoningTokens:0,cachedInputTokens:0},fe=(u=M.message.reasoning_details)!=null?u:[],we=fe.length>0?fe.map(R=>{switch(R.type){case"reasoning.text":{if(R.text)return{type:"reasoning",text:R.text,providerMetadata:{openrouter:{reasoning_details:[R]}}};break}case"reasoning.summary":{if(R.summary)return{type:"reasoning",text:R.summary,providerMetadata:{openrouter:{reasoning_details:[R]}}};break}case"reasoning.encrypted":{if(R.data)return{type:"reasoning",text:"[REDACTED]",providerMetadata:{openrouter:{reasoning_details:[R]}}};break}}return null}).filter(R=>R!==null):M.message.reasoning?[{type:"reasoning",text:M.message.reasoning}]:[],re=[];if(re.push(...we),M.message.content&&re.push({type:"text",text:M.message.content}),M.message.tool_calls)for(const R of M.message.tool_calls)re.push({type:"tool-call",toolCallId:(d=R.id)!=null?d:ue(),toolName:R.function.name,input:R.function.arguments,providerMetadata:{openrouter:{reasoning_details:fe}}});if(M.message.images)for(const R of M.message.images)re.push({type:"file",mediaType:Gn(R.image_url.url,"image/jpeg"),data:Ir(R.image_url.url)});if(M.message.annotations)for(const R of M.message.annotations)R.type==="url_citation"&&re.push({type:"source",sourceType:"url",id:R.url_citation.url,url:R.url_citation.url,title:R.url_citation.title,providerMetadata:{openrouter:{content:R.url_citation.content||""}}});const O=(p=M.message.annotations)==null?void 0:p.filter(R=>R.type==="file");return{content:re,finishReason:Et(M.finish_reason),usage:pe,warnings:[],providerMetadata:{openrouter:Cd.parse({provider:(h=q.provider)!=null?h:"",reasoning_details:(f=M.message.reasoning_details)!=null?f:[],annotations:O&&O.length>0?O:void 0,usage:j(j(j({promptTokens:(m=pe.inputTokens)!=null?m:0,completionTokens:(v=pe.outputTokens)!=null?v:0,totalTokens:(_=pe.totalTokens)!=null?_:0,cost:(y=q.usage)==null?void 0:y.cost},((b=(w=q.usage)==null?void 0:w.prompt_tokens_details)==null?void 0:b.cached_tokens)!=null?{promptTokensDetails:{cachedTokens:q.usage.prompt_tokens_details.cached_tokens}}:{}),((E=(g=q.usage)==null?void 0:g.completion_tokens_details)==null?void 0:E.reasoning_tokens)!=null?{completionTokensDetails:{reasoningTokens:q.usage.completion_tokens_details.reasoning_tokens}}:{}),((I=(S=q.usage)==null?void 0:S.cost_details)==null?void 0:I.upstream_inference_cost)!=null?{costDetails:{upstreamInferenceCost:q.usage.cost_details.upstream_inference_cost}}:{})})},request:{body:F},response:{id:q.id,modelId:q.model,headers:de}}}async doStream(e){var t;const n=(e.providerOptions||{}).openrouter||{},s=j(j({},this.getArgs(e)),n),{value:o,responseHeaders:l}=await at({url:this.config.url({path:"/chat/completions",modelId:this.modelId}),headers:nt(this.config.headers(),e.headers),body:Tt(j({},s),{stream:!0,stream_options:this.config.compatibility==="strict"?j({include_usage:!0},(t=this.settings.usage)!=null&&t.include?{include_usage:!0}:{}):void 0}),failedResponseHandler:ot,successfulResponseHandler:os(Dd),abortSignal:e.abortSignal,fetch:this.config.fetch}),i=[];let c="other";const u={inputTokens:Number.NaN,outputTokens:Number.NaN,totalTokens:Number.NaN,reasoningTokens:Number.NaN,cachedInputTokens:Number.NaN},d={},p=[];let h=!1,f=!1,m,v,_,y;return{stream:o.pipeThrough(new TransformStream({transform(w,b){var g,E,S,I,x,P,F,K,de,q,M,pe,fe,we,re;if(!w.success){c="error",b.enqueue({type:"error",error:w.error});return}const O=w.value;if("error"in O){c="error",b.enqueue({type:"error",error:O.error});return}if(O.provider&&(y=O.provider),O.id&&(_=O.id,b.enqueue({type:"response-metadata",id:O.id})),O.model&&b.enqueue({type:"response-metadata",modelId:O.model}),O.usage!=null){if(u.inputTokens=O.usage.prompt_tokens,u.outputTokens=O.usage.completion_tokens,u.totalTokens=O.usage.prompt_tokens+O.usage.completion_tokens,d.promptTokens=O.usage.prompt_tokens,O.usage.prompt_tokens_details){const k=(g=O.usage.prompt_tokens_details.cached_tokens)!=null?g:0;u.cachedInputTokens=k,d.promptTokensDetails={cachedTokens:k}}if(d.completionTokens=O.usage.completion_tokens,O.usage.completion_tokens_details){const k=(E=O.usage.completion_tokens_details.reasoning_tokens)!=null?E:0;u.reasoningTokens=k,d.completionTokensDetails={reasoningTokens:k}}d.cost=O.usage.cost,d.totalTokens=O.usage.total_tokens;const C=(S=O.usage.cost_details)==null?void 0:S.upstream_inference_cost;C!=null&&(d.costDetails={upstreamInferenceCost:C})}const R=O.choices[0];if(R?.finish_reason!=null&&(c=Et(R.finish_reason)),R?.delta==null)return;const Z=R.delta,ae=(C,k)=>{f||(v=_||ue(),b.enqueue({providerMetadata:k,type:"reasoning-start",id:v}),f=!0),b.enqueue({providerMetadata:k,type:"reasoning-delta",delta:C,id:v||ue()})};if(Z.reasoning_details&&Z.reasoning_details.length>0){for(const k of Z.reasoning_details)if(k.type==="reasoning.text"){const $=p[p.length-1];$?.type==="reasoning.text"?($.text=($.text||"")+(k.text||""),$.signature=$.signature||k.signature,$.format=$.format||k.format):p.push(j({},k))}else p.push(k);const C={openrouter:{reasoning_details:Z.reasoning_details}};for(const k of Z.reasoning_details)switch(k.type){case"reasoning.text":{k.text&&ae(k.text,C);break}case"reasoning.encrypted":{k.data&&ae("[REDACTED]",C);break}case"reasoning.summary":{k.summary&&ae(k.summary,C);break}}}else Z.reasoning&&ae(Z.reasoning);if(Z.content&&(f&&!h&&(b.enqueue({type:"reasoning-end",id:v||ue()}),f=!1),h||(m=_||ue(),b.enqueue({type:"text-start",id:m}),h=!0),b.enqueue({type:"text-delta",delta:Z.content,id:m||ue()})),Z.annotations)for(const C of Z.annotations)C.type==="url_citation"&&b.enqueue({type:"source",sourceType:"url",id:C.url_citation.url,url:C.url_citation.url,title:C.url_citation.title,providerMetadata:{openrouter:{content:C.url_citation.content||""}}});if(Z.tool_calls!=null)for(const C of Z.tool_calls){const k=(I=C.index)!=null?I:i.length-1;if(i[k]==null){if(C.type!=="function")throw new Ke({data:C,message:"Expected 'function' type."});if(C.id==null)throw new Ke({data:C,message:"Expected 'id' to be a string."});if(((x=C.function)==null?void 0:x.name)==null)throw new Ke({data:C,message:"Expected 'function.name' to be a string."});i[k]={id:C.id,type:"function",function:{name:C.function.name,arguments:(P=C.function.arguments)!=null?P:""},inputStarted:!1,sent:!1};const z=i[k];if(z==null)throw new Ke({data:{index:k,toolCallsLength:i.length},message:`Tool call at index ${k} is missing after creation.`});((F=z.function)==null?void 0:F.name)!=null&&((K=z.function)==null?void 0:K.arguments)!=null&&sr(z.function.arguments)&&(z.inputStarted=!0,b.enqueue({type:"tool-input-start",id:z.id,toolName:z.function.name}),b.enqueue({type:"tool-input-delta",id:z.id,delta:z.function.arguments}),b.enqueue({type:"tool-input-end",id:z.id}),b.enqueue({type:"tool-call",toolCallId:z.id,toolName:z.function.name,input:z.function.arguments,providerMetadata:{openrouter:{reasoning_details:p}}}),z.sent=!0);continue}const $=i[k];if($==null)throw new Ke({data:{index:k,toolCallsLength:i.length,toolCallDelta:C},message:`Tool call at index ${k} is missing during merge.`});$.inputStarted||($.inputStarted=!0,b.enqueue({type:"tool-input-start",id:$.id,toolName:$.function.name})),((de=C.function)==null?void 0:de.arguments)!=null&&($.function.arguments+=(M=(q=C.function)==null?void 0:q.arguments)!=null?M:""),b.enqueue({type:"tool-input-delta",id:$.id,delta:(pe=C.function.arguments)!=null?pe:""}),((fe=$.function)==null?void 0:fe.name)!=null&&((we=$.function)==null?void 0:we.arguments)!=null&&sr($.function.arguments)&&(b.enqueue({type:"tool-call",toolCallId:(re=$.id)!=null?re:ue(),toolName:$.function.name,input:$.function.arguments,providerMetadata:{openrouter:{reasoning_details:p}}}),$.sent=!0)}if(Z.images!=null)for(const C of Z.images)b.enqueue({type:"file",mediaType:Gn(C.image_url.url,"image/jpeg"),data:Ir(C.image_url.url)})},flush(w){var b;if(c==="tool-calls")for(const E of i)E&&!E.sent&&(w.enqueue({type:"tool-call",toolCallId:(b=E.id)!=null?b:ue(),toolName:E.function.name,input:sr(E.function.arguments)?E.function.arguments:"{}",providerMetadata:{openrouter:{reasoning_details:p}}}),E.sent=!0);f&&w.enqueue({type:"reasoning-end",id:v||ue()}),h&&w.enqueue({type:"text-end",id:m||ue()});const g={usage:d};y!==void 0&&(g.provider=y),p.length>0&&(g.reasoning_details=p),w.enqueue({type:"finish",finishReason:c,usage:u,providerMetadata:{openrouter:g}})}})),warnings:[],request:{body:s},response:{headers:l}}}};function qd({prompt:e,inputFormat:t,user:r="user",assistant:n="assistant"}){if(e.length===1&&e[0]&&e[0].role==="user"&&e[0].content.length===1&&e[0].content[0]&&e[0].content[0].type==="text")return{prompt:e[0].content[0].text};let s="";e[0]&&e[0].role==="system"&&(s+=`${e[0].content}
46
+
47
+ `,e=e.slice(1));for(const{role:o,content:l}of e)switch(o){case"system":throw new Gc({message:`Unexpected system message in prompt: ${l}`,prompt:e});case"user":{const i=l.map(c=>{switch(c.type){case"text":return c.text;case"file":throw new Ie({functionality:"file attachments"});default:return""}}).join("");s+=`${r}:
48
+ ${i}
49
+
50
+ `;break}case"assistant":{const i=l.map(c=>{switch(c.type){case"text":return c.text;case"tool-call":throw new Ie({functionality:"tool-call messages"});case"tool-result":throw new Ie({functionality:"tool-result messages"});case"reasoning":throw new Ie({functionality:"reasoning messages"});case"file":throw new Ie({functionality:"file attachments"});default:return""}}).join("");s+=`${n}:
51
+ ${i}
52
+
53
+ `;break}case"tool":throw new Ie({functionality:"tool messages"})}return s+=`${n}:
54
+ `,{prompt:s}}var Jn=a.union([a.object({id:a.string().optional(),model:a.string().optional(),choices:a.array(a.object({text:a.string(),reasoning:a.string().nullish().optional(),reasoning_details:Ur.nullish(),finish_reason:a.string().nullish(),index:a.number().nullish(),logprobs:a.object({tokens:a.array(a.string()),token_logprobs:a.array(a.number()),top_logprobs:a.array(a.record(a.string(),a.number())).nullable()}).passthrough().nullable().optional()}).passthrough()),usage:a.object({prompt_tokens:a.number(),prompt_tokens_details:a.object({cached_tokens:a.number()}).passthrough().nullish(),completion_tokens:a.number(),completion_tokens_details:a.object({reasoning_tokens:a.number()}).passthrough().nullish(),total_tokens:a.number(),cost:a.number().optional(),cost_details:a.object({upstream_inference_cost:a.number().nullish()}).passthrough().nullish()}).passthrough().nullish()}).passthrough(),$t]),Fd=class{constructor(e,t,r){this.specificationVersion="v2",this.provider="openrouter",this.supportsImageUrls=!0,this.supportedUrls={"image/*":[/^data:image\/[a-zA-Z]+;base64,/,/^https?:\/\/.+\.(jpg|jpeg|png|gif|webp)$/i],"text/*":[/^data:text\//,/^https?:\/\/.+$/],"application/*":[/^data:application\//,/^https?:\/\/.+$/]},this.defaultObjectGenerationMode=void 0,this.modelId=e,this.settings=t,this.config=r}getArgs({prompt:e,maxOutputTokens:t,temperature:r,topP:n,frequencyPenalty:s,presencePenalty:o,seed:l,responseFormat:i,topK:c,stopSequences:u,tools:d,toolChoice:p}){const{prompt:h}=qd({prompt:e,inputFormat:"prompt"});if(d?.length)throw new Ie({functionality:"tools"});if(p)throw new Ie({functionality:"toolChoice"});return j(j({model:this.modelId,models:this.settings.models,logit_bias:this.settings.logitBias,logprobs:typeof this.settings.logprobs=="number"?this.settings.logprobs:typeof this.settings.logprobs=="boolean"&&this.settings.logprobs?0:void 0,suffix:this.settings.suffix,user:this.settings.user,max_tokens:t,temperature:r,top_p:n,frequency_penalty:s,presence_penalty:o,seed:l,stop:u,response_format:i,top_k:c,prompt:h,include_reasoning:this.settings.includeReasoning,reasoning:this.settings.reasoning},this.config.extraBody),this.settings.extraBody)}async doGenerate(e){var t,r,n,s,o,l,i,c,u,d,p,h,f,m,v;const y=(e.providerOptions||{}).openrouter||{},w=j(j({},this.getArgs(e)),y),{value:b,responseHeaders:g}=await at({url:this.config.url({path:"/completions",modelId:this.modelId}),headers:nt(this.config.headers(),e.headers),body:w,failedResponseHandler:ot,successfulResponseHandler:$r(Jn),abortSignal:e.abortSignal,fetch:this.config.fetch});if("error"in b){const S=b.error;throw new ce({message:S.message,url:this.config.url({path:"/completions",modelId:this.modelId}),requestBodyValues:w,statusCode:200,responseHeaders:g,data:S})}const E=b.choices[0];if(!E)throw new Wo({message:"No choice in OpenRouter completion response"});return{content:[{type:"text",text:(t=E.text)!=null?t:""}],finishReason:Et(E.finish_reason),usage:{inputTokens:(n=(r=b.usage)==null?void 0:r.prompt_tokens)!=null?n:0,outputTokens:(o=(s=b.usage)==null?void 0:s.completion_tokens)!=null?o:0,totalTokens:((i=(l=b.usage)==null?void 0:l.prompt_tokens)!=null?i:0)+((u=(c=b.usage)==null?void 0:c.completion_tokens)!=null?u:0),reasoningTokens:(h=(p=(d=b.usage)==null?void 0:d.completion_tokens_details)==null?void 0:p.reasoning_tokens)!=null?h:0,cachedInputTokens:(v=(m=(f=b.usage)==null?void 0:f.prompt_tokens_details)==null?void 0:m.cached_tokens)!=null?v:0},warnings:[],response:{headers:g}}}async doStream(e){const r=(e.providerOptions||{}).openrouter||{},n=j(j({},this.getArgs(e)),r),{value:s,responseHeaders:o}=await at({url:this.config.url({path:"/completions",modelId:this.modelId}),headers:nt(this.config.headers(),e.headers),body:Tt(j({},n),{stream:!0,stream_options:this.config.compatibility==="strict"?{include_usage:!0}:void 0}),failedResponseHandler:ot,successfulResponseHandler:os(Jn),abortSignal:e.abortSignal,fetch:this.config.fetch});let l="other";const i={inputTokens:Number.NaN,outputTokens:Number.NaN,totalTokens:Number.NaN,reasoningTokens:Number.NaN,cachedInputTokens:Number.NaN},c={};return{stream:s.pipeThrough(new TransformStream({transform(u,d){var p,h,f;if(!u.success){l="error",d.enqueue({type:"error",error:u.error});return}const m=u.value;if("error"in m){l="error",d.enqueue({type:"error",error:m.error});return}if(m.usage!=null){if(i.inputTokens=m.usage.prompt_tokens,i.outputTokens=m.usage.completion_tokens,i.totalTokens=m.usage.prompt_tokens+m.usage.completion_tokens,c.promptTokens=m.usage.prompt_tokens,m.usage.prompt_tokens_details){const y=(p=m.usage.prompt_tokens_details.cached_tokens)!=null?p:0;i.cachedInputTokens=y,c.promptTokensDetails={cachedTokens:y}}if(c.completionTokens=m.usage.completion_tokens,m.usage.completion_tokens_details){const y=(h=m.usage.completion_tokens_details.reasoning_tokens)!=null?h:0;i.reasoningTokens=y,c.completionTokensDetails={reasoningTokens:y}}c.cost=m.usage.cost,c.totalTokens=m.usage.total_tokens;const _=(f=m.usage.cost_details)==null?void 0:f.upstream_inference_cost;_!=null&&(c.costDetails={upstreamInferenceCost:_})}const v=m.choices[0];v?.finish_reason!=null&&(l=Et(v.finish_reason)),v?.text!=null&&d.enqueue({type:"text-delta",delta:v.text,id:ue()})},flush(u){u.enqueue({type:"finish",finishReason:l,usage:i,providerMetadata:{openrouter:{usage:c}}})}})),response:{headers:o}}}},Ld=a.object({prompt_tokens:a.number(),total_tokens:a.number(),cost:a.number().optional()}),Vd=a.object({object:a.literal("embedding"),embedding:a.array(a.number()),index:a.number().optional()}),Hd=a.object({id:a.string().optional(),object:a.literal("list"),data:a.array(Vd),model:a.string(),usage:Ld.optional()}),Bd=class{constructor(e,t,r){this.specificationVersion="v2",this.provider="openrouter",this.maxEmbeddingsPerCall=void 0,this.supportsParallelCalls=!0,this.modelId=e,this.settings=t,this.config=r}async doEmbed(e){var t;const{values:r,abortSignal:n,headers:s}=e,o=j(j({model:this.modelId,input:r,user:this.settings.user,provider:this.settings.provider},this.config.extraBody),this.settings.extraBody),{value:l,responseHeaders:i}=await at({url:this.config.url({path:"/embeddings",modelId:this.modelId}),headers:nt(this.config.headers(),s),body:o,failedResponseHandler:ot,successfulResponseHandler:$r(Hd),abortSignal:n,fetch:this.config.fetch});return{embeddings:l.data.map(c=>c.embedding),usage:l.usage?{tokens:l.usage.prompt_tokens}:void 0,providerMetadata:(t=l.usage)!=null&&t.cost?{openrouter:{usage:{cost:l.usage.cost}}}:void 0,response:{headers:i,body:l}}}};function Zd(e){return Object.fromEntries(Object.entries(e).filter(([,t])=>t!==null))}function Kd(e,...t){const r=Zd(e??{}),s=[r["user-agent"]||"",...t].filter(Boolean).join(" ");return Tt(j({},r),{"user-agent":s})}var Gd="1.4.1";function cs(e={}){var t,r,n;const s=(r=Sd((t=e.baseURL)!=null?t:e.baseUrl))!=null?r:"https://openrouter.ai/api/v1",o=(n=e.compatibility)!=null?n:"compatible",l=()=>Kd(j(j({Authorization:`Bearer ${ld({apiKey:e.apiKey,environmentVariableName:"OPENROUTER_API_KEY",description:"OpenRouter"})}`},e.headers),e.api_keys&&Object.keys(e.api_keys).length>0&&{"X-Provider-API-Keys":JSON.stringify(e.api_keys)}),`ai-sdk/openrouter/${Gd}`),i=(h,f={})=>new Ud(h,f,{provider:"openrouter.chat",url:({path:m})=>`${s}${m}`,headers:l,compatibility:o,fetch:e.fetch,extraBody:e.extraBody}),c=(h,f={})=>new Fd(h,f,{provider:"openrouter.completion",url:({path:m})=>`${s}${m}`,headers:l,compatibility:o,fetch:e.fetch,extraBody:e.extraBody}),u=(h,f={})=>new Bd(h,f,{provider:"openrouter.embedding",url:({path:m})=>`${s}${m}`,headers:l,fetch:e.fetch,extraBody:e.extraBody}),d=(h,f)=>{if(new.target)throw new Error("The OpenRouter model function cannot be called with the new keyword.");return h==="openai/gpt-3.5-turbo-instruct"?c(h,f):i(h,f)},p=(h,f)=>d(h,f);return p.languageModel=d,p.chat=i,p.completion=c,p.textEmbeddingModel=u,p.embedding=u,p}cs({compatibility:"strict"});let Fr;Fr=globalThis.crypto;async function Jd(e){return(await Fr).getRandomValues(new Uint8Array(e))}async function zd(e){const t="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~",r=Math.pow(2,8)-Math.pow(2,8)%t.length;let n="";for(;n.length<e;){const s=await Jd(e-n.length);for(const o of s)o<r&&(n+=t[o%t.length])}return n}async function Wd(e){return await zd(e)}async function Yd(e){const t=await(await Fr).subtle.digest("SHA-256",new TextEncoder().encode(e));return btoa(String.fromCharCode(...new Uint8Array(t))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}async function Xd(e){if(e||(e=43),e<43||e>128)throw`Expected a length between 43 and 128. Received ${e}.`;const t=await Wd(e),r=await Yd(t);return{code_verifier:t,code_challenge:r}}var Qd="AI_MCPClientError",ds=`vercel.ai.error.${Qd}`,ep=Symbol.for(ds),zn,Wn,D=class extends(Wn=a.AISDKError,zn=ep,Wn){constructor({name:e="MCPClientError",message:t,cause:r,data:n,code:s}){super({name:e,message:t,cause:r}),this[zn]=!0,this.data=n,this.code=s}static isInstance(e){return a.AISDKError.hasMarker(e,ds)}},Ue="2025-06-18",tp=[Ue,"2025-03-26","2024-11-05"],rp=a.looseObject({name:a.string(),version:a.string()}),jt=a.looseObject({_meta:a.optional(a.object({}).loose())}),be=jt,ps=a.object({method:a.string(),params:a.optional(jt)}),fs=a.object({applyDefaults:a.optional(a.boolean())}).loose(),np=a.looseObject({experimental:a.optional(a.object({}).loose()),logging:a.optional(a.object({}).loose()),prompts:a.optional(a.looseObject({listChanged:a.optional(a.boolean())})),resources:a.optional(a.looseObject({subscribe:a.optional(a.boolean()),listChanged:a.optional(a.boolean())})),tools:a.optional(a.looseObject({listChanged:a.optional(a.boolean())})),elicitation:a.optional(fs)});a.object({elicitation:a.optional(fs)}).loose();var ap=be.extend({protocolVersion:a.string(),capabilities:np,serverInfo:rp,instructions:a.optional(a.string())}),Lr=be.extend({nextCursor:a.optional(a.string())}),op=a.object({name:a.string(),description:a.optional(a.string()),inputSchema:a.object({type:a.literal("object"),properties:a.optional(a.object({}).loose())}).loose()}).loose(),sp=Lr.extend({tools:a.array(op)}),ms=a.object({type:a.literal("text"),text:a.string()}).loose(),hs=a.object({type:a.literal("image"),data:a.base64(),mimeType:a.string()}).loose(),ip=a.object({uri:a.string(),name:a.string(),title:a.optional(a.string()),description:a.optional(a.string()),mimeType:a.optional(a.string()),size:a.optional(a.number())}).loose(),lp=Lr.extend({resources:a.array(ip)}),gs=a.object({uri:a.string(),name:a.optional(a.string()),title:a.optional(a.string()),mimeType:a.optional(a.string())}).loose(),vs=gs.extend({text:a.string()}),ys=gs.extend({blob:a.base64()}),_s=a.object({type:a.literal("resource"),resource:a.union([vs,ys])}).loose(),up=be.extend({content:a.array(a.union([ms,hs,_s])),isError:a.boolean().default(!1).optional()}).or(be.extend({toolResult:a.unknown()})),cp=a.object({uriTemplate:a.string(),name:a.string(),title:a.optional(a.string()),description:a.optional(a.string()),mimeType:a.optional(a.string())}).loose(),dp=be.extend({resourceTemplates:a.array(cp)}),pp=be.extend({contents:a.array(a.union([vs,ys]))}),fp=a.object({name:a.string(),description:a.optional(a.string()),required:a.optional(a.boolean())}).loose(),mp=a.object({name:a.string(),title:a.optional(a.string()),description:a.optional(a.string()),arguments:a.optional(a.array(fp))}).loose(),hp=Lr.extend({prompts:a.array(mp)}),gp=a.object({role:a.union([a.literal("user"),a.literal("assistant")]),content:a.union([ms,hs,_s])}).loose(),vp=be.extend({description:a.optional(a.string()),messages:a.array(gp)}),yp=jt.extend({message:a.string(),requestedSchema:a.unknown()}),Yn=ps.extend({method:a.literal("elicitation/create"),params:yp}),_p=be.extend({action:a.union([a.literal("accept"),a.literal("decline"),a.literal("cancel")]),content:a.optional(a.record(a.string(),a.unknown()))}),Dt="2.0",bp=a.object({jsonrpc:a.literal(Dt),id:a.union([a.string(),a.number().int()])}).merge(ps).strict(),wp=a.object({jsonrpc:a.literal(Dt),id:a.union([a.string(),a.number().int()]),result:be}).strict(),Tp=a.object({jsonrpc:a.literal(Dt),id:a.union([a.string(),a.number().int()]),error:a.object({code:a.number().int(),message:a.string(),data:a.optional(a.unknown())})}).strict(),Ip=a.object({jsonrpc:a.literal(Dt)}).merge(a.object({method:a.string(),params:a.optional(jt)})).strict(),Ge=a.union([bp,Ip,wp,Tp]),bs=typeof __PACKAGE_VERSION__<"u"?__PACKAGE_VERSION__:"0.0.0-test",ws=a.object({access_token:a.string(),id_token:a.string().optional(),token_type:a.string(),expires_in:a.number().optional(),scope:a.string().optional(),refresh_token:a.string().optional()}).strip(),X=a.string().url().superRefine((e,t)=>{if(!URL.canParse(e))return t.addIssue({code:a.ZodIssueCode.custom,message:"URL must be parseable",fatal:!0}),a.NEVER}).refine(e=>{const t=new URL(e);return t.protocol!=="javascript:"&&t.protocol!=="data:"&&t.protocol!=="vbscript:"},{message:"URL cannot use javascript:, data:, or vbscript: scheme"}),Ep=a.object({resource:a.string().url(),authorization_servers:a.array(X).optional(),jwks_uri:a.string().url().optional(),scopes_supported:a.array(a.string()).optional(),bearer_methods_supported:a.array(a.string()).optional(),resource_signing_alg_values_supported:a.array(a.string()).optional(),resource_name:a.string().optional(),resource_documentation:a.string().optional(),resource_policy_uri:a.string().url().optional(),resource_tos_uri:a.string().url().optional(),tls_client_certificate_bound_access_tokens:a.boolean().optional(),authorization_details_types_supported:a.array(a.string()).optional(),dpop_signing_alg_values_supported:a.array(a.string()).optional(),dpop_bound_access_tokens_required:a.boolean().optional()}).passthrough(),Ts=a.object({issuer:a.string(),authorization_endpoint:X,token_endpoint:X,registration_endpoint:X.optional(),scopes_supported:a.array(a.string()).optional(),response_types_supported:a.array(a.string()),grant_types_supported:a.array(a.string()).optional(),code_challenge_methods_supported:a.array(a.string()),token_endpoint_auth_methods_supported:a.array(a.string()).optional(),token_endpoint_auth_signing_alg_values_supported:a.array(a.string()).optional()}).passthrough(),Sp=a.object({issuer:a.string(),authorization_endpoint:X,token_endpoint:X,userinfo_endpoint:X.optional(),jwks_uri:X,registration_endpoint:X.optional(),scopes_supported:a.array(a.string()).optional(),response_types_supported:a.array(a.string()),grant_types_supported:a.array(a.string()).optional(),subject_types_supported:a.array(a.string()),id_token_signing_alg_values_supported:a.array(a.string()),claims_supported:a.array(a.string()).optional(),token_endpoint_auth_methods_supported:a.array(a.string()).optional()}).passthrough(),xp=Sp.merge(Ts.pick({code_challenge_methods_supported:!0})),Rp=a.object({client_id:a.string(),client_secret:a.string().optional(),client_id_issued_at:a.number().optional(),client_secret_expires_at:a.number().optional()}).strip(),Ap=a.object({redirect_uris:a.array(X),token_endpoint_auth_method:a.string().optional(),grant_types:a.array(a.string()).optional(),response_types:a.array(a.string()).optional(),client_name:a.string().optional(),client_uri:X.optional(),logo_uri:X.optional(),scope:a.string().optional(),contacts:a.array(a.string()).optional(),tos_uri:X.optional(),policy_uri:a.string().optional(),jwks_uri:X.optional(),jwks:a.any().optional(),software_id:a.string().optional(),software_version:a.string().optional(),software_statement:a.string().optional()}).strip(),Cp=a.object({error:a.string(),error_description:a.string().optional(),error_uri:a.string().optional()}),Pp=Ap.merge(Rp),kp="AI_MCPClientOAuthError",Is=`vercel.ai.error.${kp}`,Op=Symbol.for(Is),Xn,Qn,lt=class extends(Qn=a.AISDKError,Xn=Op,Qn){constructor({name:e="MCPClientOAuthError",message:t,cause:r}){super({name:e,message:t,cause:r}),this[Xn]=!0}static isInstance(e){return a.AISDKError.hasMarker(e,Is)}},je=class extends lt{};je.errorCode="server_error";var St=class extends lt{};St.errorCode="invalid_client";var xt=class extends lt{};xt.errorCode="invalid_grant";var Rt=class extends lt{};Rt.errorCode="unauthorized_client";var Mp={[je.errorCode]:je,[St.errorCode]:St,[xt.errorCode]:xt,[Rt.errorCode]:Rt};function Np(e){const t=typeof e=="string"?new URL(e):new URL(e.href);return t.hash="",t}function $p({requestedResource:e,configuredResource:t}){const r=typeof e=="string"?new URL(e):new URL(e.href),n=typeof t=="string"?new URL(t):new URL(t.href);if(r.origin!==n.origin||r.pathname.length<n.pathname.length)return!1;const s=r.pathname.endsWith("/")?r.pathname:r.pathname+"/",o=n.pathname.endsWith("/")?n.pathname:n.pathname+"/";return s.startsWith(o)}var At=class extends Error{constructor(e="Unauthorized"){super(e),this.name="UnauthorizedError"}};function Ct(e){var t;const r=(t=e.headers.get("www-authenticate"))!=null?t:e.headers.get("WWW-Authenticate");if(!r)return;const[n,s]=r.split(" ");if(n.toLowerCase()!=="bearer"||!s)return;const o=/resource_metadata="([^"]*)"/,l=r.match(o);if(l)try{return new URL(l[1])}catch{return}}function jp(e,t="",r={}){return t.endsWith("/")&&(t=t.slice(0,-1)),r.prependPathname?`${t}/.well-known/${e}`:`/.well-known/${e}${t}`}async function Vr(e,t,r=fetch){try{return await r(e,{headers:t})}catch(n){if(n instanceof TypeError)return t?Vr(e,void 0,r):void 0;throw n}}async function ea(e,t,r=fetch){return await Vr(e,{"MCP-Protocol-Version":t},r)}function Dp(e,t){return!e||e.status>=400&&e.status<500&&t!=="/"}async function Up(e,t,r,n){var s,o;const l=new URL(e),i=(s=n?.protocolVersion)!=null?s:Ue;let c;if(n?.metadataUrl)c=new URL(n.metadataUrl);else{const d=jp(t,l.pathname);c=new URL(d,(o=n?.metadataServerUrl)!=null?o:l),c.search=l.search}let u=await ea(c,i,r);if(!n?.metadataUrl&&Dp(u,l.pathname)){const d=new URL(`/.well-known/${t}`,l);u=await ea(d,i,r)}return u}async function qp(e,t,r=fetch){const n=await Up(e,"oauth-protected-resource",r,{protocolVersion:t?.protocolVersion,metadataUrl:t?.resourceMetadataUrl});if(!n||n.status===404)throw new Error("Resource server does not implement OAuth 2.0 Protected Resource Metadata.");if(!n.ok)throw new Error(`HTTP ${n.status} trying to load well-known OAuth protected resource metadata.`);return Ep.parse(await n.json())}function Fp(e){const t=typeof e=="string"?new URL(e):e,r=t.pathname!=="/",n=[];if(!r)return n.push({url:new URL("/.well-known/oauth-authorization-server",t.origin),type:"oauth"}),n.push({url:new URL("/.well-known/openid-configuration",t.origin),type:"oidc"}),n;let s=t.pathname;return s.endsWith("/")&&(s=s.slice(0,-1)),n.push({url:new URL(`/.well-known/oauth-authorization-server${s}`,t.origin),type:"oauth"}),n.push({url:new URL("/.well-known/oauth-authorization-server",t.origin),type:"oauth"}),n.push({url:new URL(`/.well-known/openid-configuration${s}`,t.origin),type:"oidc"}),n.push({url:new URL(`${s}/.well-known/openid-configuration`,t.origin),type:"oidc"}),n}async function Lp(e,{fetchFn:t=fetch,protocolVersion:r=Ue}={}){var n;const s={"MCP-Protocol-Version":r},o=Fp(e);for(const{url:l,type:i}of o){const c=await Vr(l,s,t);if(c){if(!c.ok){if(c.status>=400&&c.status<500)continue;throw new Error(`HTTP ${c.status} trying to load ${i==="oauth"?"OAuth":"OpenID provider"} metadata from ${l}`)}if(i==="oauth")return Ts.parse(await c.json());{const u=xp.parse(await c.json());if(!((n=u.code_challenge_methods_supported)!=null&&n.includes("S256")))throw new Error(`Incompatible OIDC provider at ${l}: does not support S256 code challenge method required by MCP specification`);return u}}}}async function Vp(e,{metadata:t,clientInformation:r,redirectUrl:n,scope:s,state:o,resource:l}){const i="code",c="S256";let u;if(t){if(u=new URL(t.authorization_endpoint),!t.response_types_supported.includes(i))throw new Error(`Incompatible auth server: does not support response type ${i}`);if(!t.code_challenge_methods_supported||!t.code_challenge_methods_supported.includes(c))throw new Error(`Incompatible auth server: does not support code challenge method ${c}`)}else u=new URL("/authorize",e);const d=await Xd(),p=d.code_verifier,h=d.code_challenge;return u.searchParams.set("response_type",i),u.searchParams.set("client_id",r.client_id),u.searchParams.set("code_challenge",h),u.searchParams.set("code_challenge_method",c),u.searchParams.set("redirect_uri",String(n)),o&&u.searchParams.set("state",o),s&&u.searchParams.set("scope",s),s?.includes("offline_access")&&u.searchParams.append("prompt","consent"),l&&u.searchParams.set("resource",l.href),{authorizationUrl:u,codeVerifier:p}}function Es(e,t){const r=e.client_secret!==void 0;return t.length===0?r?"client_secret_post":"none":r&&t.includes("client_secret_basic")?"client_secret_basic":r&&t.includes("client_secret_post")?"client_secret_post":t.includes("none")?"none":r?"client_secret_post":"none"}function Ss(e,t,r,n){const{client_id:s,client_secret:o}=t;switch(e){case"client_secret_basic":Hp(s,o,r);return;case"client_secret_post":Bp(s,o,n);return;case"none":Zp(s,n);return;default:throw new Error(`Unsupported client authentication method: ${e}`)}}function Hp(e,t,r){if(!t)throw new Error("client_secret_basic authentication requires a client_secret");const n=btoa(`${e}:${t}`);r.set("Authorization",`Basic ${n}`)}function Bp(e,t,r){r.set("client_id",e),t&&r.set("client_secret",t)}function Zp(e,t){t.set("client_id",e)}async function Hr(e){const t=e instanceof Response?e.status:void 0,r=e instanceof Response?await e.text():e;try{const n=Cp.parse(JSON.parse(r)),{error:s,error_description:o,error_uri:l}=n,i=Mp[s]||je;return new i({message:o||"",cause:l})}catch(n){const s=`${t?`HTTP ${t}: `:""}Invalid OAuth error response: ${n}. Raw body: ${r}`;return new je({message:s})}}async function Kp(e,{metadata:t,clientInformation:r,authorizationCode:n,codeVerifier:s,redirectUri:o,resource:l,addClientAuthentication:i,fetchFn:c}){var u;const d="authorization_code",p=t?.token_endpoint?new URL(t.token_endpoint):new URL("/token",e);if(t?.grant_types_supported&&!t.grant_types_supported.includes(d))throw new Error(`Incompatible auth server: does not support grant type ${d}`);const h=new Headers({"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"}),f=new URLSearchParams({grant_type:d,code:n,code_verifier:s,redirect_uri:String(o)});if(i)i(h,f,e,t);else{const v=(u=t?.token_endpoint_auth_methods_supported)!=null?u:[],_=Es(r,v);Ss(_,r,h,f)}l&&f.set("resource",l.href);const m=await(c??fetch)(p,{method:"POST",headers:h,body:f});if(!m.ok)throw await Hr(m);return ws.parse(await m.json())}async function Gp(e,{metadata:t,clientInformation:r,refreshToken:n,resource:s,addClientAuthentication:o,fetchFn:l}){var i;const c="refresh_token";let u;if(t){if(u=new URL(t.token_endpoint),t.grant_types_supported&&!t.grant_types_supported.includes(c))throw new Error(`Incompatible auth server: does not support grant type ${c}`)}else u=new URL("/token",e);const d=new Headers({"Content-Type":"application/x-www-form-urlencoded"}),p=new URLSearchParams({grant_type:c,refresh_token:n});if(o)o(d,p,e,t);else{const f=(i=t?.token_endpoint_auth_methods_supported)!=null?i:[],m=Es(r,f);Ss(m,r,d,p)}s&&p.set("resource",s.href);const h=await(l??fetch)(u,{method:"POST",headers:d,body:p});if(!h.ok)throw await Hr(h);return ws.parse({refresh_token:n,...await h.json()})}async function Jp(e,{metadata:t,clientMetadata:r,fetchFn:n}){let s;if(t){if(!t.registration_endpoint)throw new Error("Incompatible auth server: does not support dynamic client registration");s=new URL(t.registration_endpoint)}else s=new URL("/register",e);const o=await(n??fetch)(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});if(!o.ok)throw await Hr(o);return Pp.parse(await o.json())}async function Pt(e,t){var r,n;try{return await lr(e,t)}catch(s){if(s instanceof St||s instanceof Rt)return await((r=e.invalidateCredentials)==null?void 0:r.call(e,"all")),await lr(e,t);if(s instanceof xt)return await((n=e.invalidateCredentials)==null?void 0:n.call(e,"tokens")),await lr(e,t);throw s}}async function zp(e,t,r){const n=Np(e);if(t.validateResourceURL)return await t.validateResourceURL(n,r?.resource);if(r){if(!$p({requestedResource:n,configuredResource:r.resource}))throw new Error(`Protected resource ${r.resource} does not match expected ${n} (or origin)`);return new URL(r.resource)}}async function lr(e,{serverUrl:t,authorizationCode:r,scope:n,resourceMetadataUrl:s,fetchFn:o}){let l,i;try{l=await qp(t,{resourceMetadataUrl:s},o),l.authorization_servers&&l.authorization_servers.length>0&&(i=l.authorization_servers[0])}catch{}i||(i=t);const c=await zp(t,e,l),u=await Lp(i,{fetchFn:o});let d=await Promise.resolve(e.clientInformation());if(!d){if(r!==void 0)throw new Error("Existing OAuth client information is required when exchanging an authorization code");if(!e.saveClientInformation)throw new Error("OAuth client information must be saveable for dynamic registration");const v=await Jp(i,{metadata:u,clientMetadata:e.clientMetadata,fetchFn:o});await e.saveClientInformation(v),d=v}if(r!==void 0){const v=await e.codeVerifier(),_=await Kp(i,{metadata:u,clientInformation:d,authorizationCode:r,codeVerifier:v,redirectUri:e.redirectUrl,resource:c,addClientAuthentication:e.addClientAuthentication,fetchFn:o});return await e.saveTokens(_),"AUTHORIZED"}const p=await e.tokens();if(p?.refresh_token)try{const v=await Gp(i,{metadata:u,clientInformation:d,refreshToken:p.refresh_token,resource:c,addClientAuthentication:e.addClientAuthentication,fetchFn:o});return await e.saveTokens(v),"AUTHORIZED"}catch(v){if(!(!(v instanceof lt)||v instanceof je))throw v}const h=e.state?await e.state():void 0,{authorizationUrl:f,codeVerifier:m}=await Vp(i,{metadata:u,clientInformation:d,state:h,redirectUrl:e.redirectUrl,scope:n||e.clientMetadata.scope,resource:c});return await e.saveCodeVerifier(m),await e.redirectToAuthorization(f),"REDIRECT"}var Wp=class{constructor({url:e,headers:t,authProvider:r}){this.connected=!1,this.url=new URL(e),this.headers=t,this.authProvider=r}async commonHeaders(e){const t={...this.headers,...e,"mcp-protocol-version":Ue};if(this.authProvider){const r=await this.authProvider.tokens();r?.access_token&&(t.Authorization=`Bearer ${r.access_token}`)}return a.withUserAgentSuffix(t,`ai-sdk/${bs}`,a.getRuntimeEnvironmentUserAgent())}async start(){return new Promise((e,t)=>{if(this.connected)return e();this.abortController=new AbortController;const r=async(n=!1)=>{var s,o,l,i,c;try{const u=await this.commonHeaders({Accept:"text/event-stream"}),d=await fetch(this.url.href,{headers:u,signal:(s=this.abortController)==null?void 0:s.signal});if(d.status===401&&this.authProvider&&!n){this.resourceMetadataUrl=Ct(d);try{if(await Pt(this.authProvider,{serverUrl:this.url,resourceMetadataUrl:this.resourceMetadataUrl})!=="AUTHORIZED"){const v=new At;return(o=this.onerror)==null||o.call(this,v),t(v)}}catch(m){return(l=this.onerror)==null||l.call(this,m),t(m)}return r(!0)}if(!d.ok||!d.body){let m=`MCP SSE Transport Error: ${d.status} ${d.statusText}`;d.status===405&&(m+=". This server does not support SSE transport. Try using `http` transport instead");const v=new D({message:m});return(i=this.onerror)==null||i.call(this,v),t(v)}const h=d.body.pipeThrough(new TextDecoderStream).pipeThrough(new a.EventSourceParserStream).getReader(),f=async()=>{var m,v,_;try{for(;;){const{done:y,value:w}=await h.read();if(y){if(this.connected)throw this.connected=!1,new D({message:"MCP SSE Transport Error: Connection closed unexpectedly"});return}const{event:b,data:g}=w;if(b==="endpoint"){if(this.endpoint=new URL(g,this.url),this.endpoint.origin!==this.url.origin)throw new D({message:`MCP SSE Transport Error: Endpoint origin does not match connection origin: ${this.endpoint.origin}`});this.connected=!0,e()}else if(b==="message")try{const E=Ge.parse(JSON.parse(g));(m=this.onmessage)==null||m.call(this,E)}catch(E){const S=new D({message:"MCP SSE Transport Error: Failed to parse message",cause:E});(v=this.onerror)==null||v.call(this,S)}}}catch(y){if(y instanceof Error&&y.name==="AbortError")return;(_=this.onerror)==null||_.call(this,y),t(y)}};this.sseConnection={close:()=>h.cancel()},f()}catch(u){if(u instanceof Error&&u.name==="AbortError")return;(c=this.onerror)==null||c.call(this,u),t(u)}};r()})}async close(){var e,t,r;this.connected=!1,(e=this.sseConnection)==null||e.close(),(t=this.abortController)==null||t.abort(),(r=this.onclose)==null||r.call(this)}async send(e){if(!this.endpoint||!this.connected)throw new D({message:"MCP SSE Transport Error: Not connected"});const t=this.endpoint,r=async(n=!1)=>{var s,o,l,i,c;try{const d={method:"POST",headers:await this.commonHeaders({"Content-Type":"application/json"}),body:JSON.stringify(e),signal:(s=this.abortController)==null?void 0:s.signal},p=await fetch(t,d);if(p.status===401&&this.authProvider&&!n){this.resourceMetadataUrl=Ct(p);try{if(await Pt(this.authProvider,{serverUrl:this.url,resourceMetadataUrl:this.resourceMetadataUrl})!=="AUTHORIZED"){const f=new At;(o=this.onerror)==null||o.call(this,f);return}}catch(h){(l=this.onerror)==null||l.call(this,h);return}return r(!0)}if(!p.ok){const h=await p.text().catch(()=>null),f=new D({message:`MCP SSE Transport Error: POSTing to endpoint (HTTP ${p.status}): ${h}`});(i=this.onerror)==null||i.call(this,f);return}}catch(u){(c=this.onerror)==null||c.call(this,u);return}};await r()}},Yp=class{constructor({url:e,headers:t,authProvider:r}){this.inboundReconnectAttempts=0,this.reconnectionOptions={initialReconnectionDelay:1e3,maxReconnectionDelay:3e4,reconnectionDelayGrowFactor:1.5,maxRetries:2},this.url=new URL(e),this.headers=t,this.authProvider=r}async commonHeaders(e){const t={...this.headers,...e,"mcp-protocol-version":Ue};if(this.sessionId&&(t["mcp-session-id"]=this.sessionId),this.authProvider){const r=await this.authProvider.tokens();r?.access_token&&(t.Authorization=`Bearer ${r.access_token}`)}return a.withUserAgentSuffix(t,`ai-sdk/${bs}`,a.getRuntimeEnvironmentUserAgent())}async start(){if(this.abortController)throw new D({message:"MCP HTTP Transport Error: Transport already started. Note: client.connect() calls start() automatically."});this.abortController=new AbortController,this.openInboundSse()}async close(){var e,t,r;(e=this.inboundSseConnection)==null||e.close();try{if(this.sessionId&&this.abortController&&!this.abortController.signal.aborted){const n=await this.commonHeaders({});await fetch(this.url,{method:"DELETE",headers:n,signal:this.abortController.signal}).catch(()=>{})}}catch{}(t=this.abortController)==null||t.abort(),(r=this.onclose)==null||r.call(this)}async send(e){const t=async(r=!1)=>{var n,s,o,l,i,c,u;try{const p={method:"POST",headers:await this.commonHeaders({"Content-Type":"application/json",Accept:"application/json, text/event-stream"}),body:JSON.stringify(e),signal:(n=this.abortController)==null?void 0:n.signal},h=await fetch(this.url,p),f=h.headers.get("mcp-session-id");if(f&&(this.sessionId=f),h.status===401&&this.authProvider&&!r){this.resourceMetadataUrl=Ct(h);try{if(await Pt(this.authProvider,{serverUrl:this.url,resourceMetadataUrl:this.resourceMetadataUrl})!=="AUTHORIZED")throw new At}catch(_){throw(s=this.onerror)==null||s.call(this,_),_}return t(!0)}if(h.status===202){this.inboundSseConnection||this.openInboundSse();return}if(!h.ok){const _=await h.text().catch(()=>null);let y=`MCP HTTP Transport Error: POSTing to endpoint (HTTP ${h.status}): ${_}`;h.status===404&&(y+=". This server does not support HTTP transport. Try using `sse` transport instead");const w=new D({message:y});throw(o=this.onerror)==null||o.call(this,w),w}const m=h.headers.get("content-type")||"";if(m.includes("application/json")){const _=await h.json(),y=Array.isArray(_)?_.map(w=>Ge.parse(w)):[Ge.parse(_)];for(const w of y)(l=this.onmessage)==null||l.call(this,w);return}if(m.includes("text/event-stream")){if(!h.body){const b=new D({message:"MCP HTTP Transport Error: text/event-stream response without body"});throw(i=this.onerror)==null||i.call(this,b),b}const y=h.body.pipeThrough(new TextDecoderStream).pipeThrough(new a.EventSourceParserStream).getReader();(async()=>{var b,g,E;try{for(;;){const{done:S,value:I}=await y.read();if(S)return;const{event:x,data:P}=I;if(x==="message")try{const F=Ge.parse(JSON.parse(P));(b=this.onmessage)==null||b.call(this,F)}catch(F){const K=new D({message:"MCP HTTP Transport Error: Failed to parse message",cause:F});(g=this.onerror)==null||g.call(this,K)}}}catch(S){if(S instanceof Error&&S.name==="AbortError")return;(E=this.onerror)==null||E.call(this,S)}})();return}const v=new D({message:`MCP HTTP Transport Error: Unexpected content type: ${m}`});throw(c=this.onerror)==null||c.call(this,v),v}catch(d){throw(u=this.onerror)==null||u.call(this,d),d}};await t()}getNextReconnectionDelay(e){const{initialReconnectionDelay:t,reconnectionDelayGrowFactor:r,maxReconnectionDelay:n}=this.reconnectionOptions;return Math.min(t*Math.pow(r,e),n)}scheduleInboundSseReconnection(){var e;const{maxRetries:t}=this.reconnectionOptions;if(t>0&&this.inboundReconnectAttempts>=t){(e=this.onerror)==null||e.call(this,new D({message:`MCP HTTP Transport Error: Maximum reconnection attempts (${t}) exceeded.`}));return}const r=this.getNextReconnectionDelay(this.inboundReconnectAttempts);this.inboundReconnectAttempts+=1,setTimeout(async()=>{var n;(n=this.abortController)!=null&&n.signal.aborted||await this.openInboundSse(!1,this.lastInboundEventId)},r)}async openInboundSse(e=!1,t){var r,n,s,o,l,i;try{const c=await this.commonHeaders({Accept:"text/event-stream"});t&&(c["last-event-id"]=t);const u=await fetch(this.url.href,{method:"GET",headers:c,signal:(r=this.abortController)==null?void 0:r.signal}),d=u.headers.get("mcp-session-id");if(d&&(this.sessionId=d),u.status===401&&this.authProvider&&!e){this.resourceMetadataUrl=Ct(u);try{if(await Pt(this.authProvider,{serverUrl:this.url,resourceMetadataUrl:this.resourceMetadataUrl})!=="AUTHORIZED"){const v=new At;(n=this.onerror)==null||n.call(this,v);return}}catch(m){(s=this.onerror)==null||s.call(this,m);return}return this.openInboundSse(!0,t)}if(u.status===405)return;if(!u.ok||!u.body){const m=new D({message:`MCP HTTP Transport Error: GET SSE failed: ${u.status} ${u.statusText}`});(o=this.onerror)==null||o.call(this,m);return}const h=u.body.pipeThrough(new TextDecoderStream).pipeThrough(new a.EventSourceParserStream).getReader(),f=async()=>{var m,v,_,y;try{for(;;){const{done:w,value:b}=await h.read();if(w)return;const{event:g,data:E,id:S}=b;if(S&&(this.lastInboundEventId=S),g==="message")try{const I=Ge.parse(JSON.parse(E));(m=this.onmessage)==null||m.call(this,I)}catch(I){const x=new D({message:"MCP HTTP Transport Error: Failed to parse message",cause:I});(v=this.onerror)==null||v.call(this,x)}}}catch(w){if(w instanceof Error&&w.name==="AbortError")return;(_=this.onerror)==null||_.call(this,w),(y=this.abortController)!=null&&y.signal.aborted||this.scheduleInboundSseReconnection()}};this.inboundSseConnection={close:()=>h.cancel()},this.inboundReconnectAttempts=0,f()}catch(c){if(c instanceof Error&&c.name==="AbortError")return;(l=this.onerror)==null||l.call(this,c),(i=this.abortController)!=null&&i.signal.aborted||this.scheduleInboundSseReconnection()}}};function Xp(e){switch(e.type){case"sse":return new Wp(e);case"http":return new Yp(e);default:throw new D({message:"Unsupported or invalid transport configuration. If you are using a custom transport, make sure it implements the MCPTransport interface."})}}function Qp(e){return"start"in e&&typeof e.start=="function"&&"send"in e&&typeof e.send=="function"&&"close"in e&&typeof e.close=="function"}var ef="1.0.0";async function tf(e){const t=new rf(e);return await t.init(),t}var rf=class{constructor({transport:e,name:t="ai-sdk-mcp-client",version:r=ef,onUncaughtError:n,capabilities:s}){this.requestMessageId=0,this.responseHandlers=new Map,this.serverCapabilities={},this.isClosed=!0,this.onUncaughtError=n,this.clientCapabilities=s??{},Qp(e)?this.transport=e:this.transport=Xp(e),this.transport.onclose=()=>this.onClose(),this.transport.onerror=o=>this.onError(o),this.transport.onmessage=o=>{if("method"in o){"id"in o?this.onRequestMessage(o):this.onError(new D({message:"Unsupported message type"}));return}this.onResponse(o)},this.clientInfo={name:t,version:r}}async init(){try{await this.transport.start(),this.isClosed=!1;const e=await this.request({request:{method:"initialize",params:{protocolVersion:Ue,capabilities:this.clientCapabilities,clientInfo:this.clientInfo}},resultSchema:ap});if(e===void 0)throw new D({message:"Server sent invalid initialize result"});if(!tp.includes(e.protocolVersion))throw new D({message:`Server's protocol version is not supported: ${e.protocolVersion}`});return this.serverCapabilities=e.capabilities,await this.notification({method:"notifications/initialized"}),this}catch(e){throw await this.close(),e}}async close(){var e;this.isClosed||(await((e=this.transport)==null?void 0:e.close()),this.onClose())}assertCapability(e){switch(e){case"initialize":break;case"tools/list":case"tools/call":if(!this.serverCapabilities.tools)throw new D({message:"Server does not support tools"});break;case"resources/list":case"resources/read":case"resources/templates/list":if(!this.serverCapabilities.resources)throw new D({message:"Server does not support resources"});break;case"prompts/list":case"prompts/get":if(!this.serverCapabilities.prompts)throw new D({message:"Server does not support prompts"});break;default:throw new D({message:`Unsupported method: ${e}`})}}async request({request:e,resultSchema:t,options:r}){return new Promise((n,s)=>{if(this.isClosed)return s(new D({message:"Attempted to send a request from a closed client"}));this.assertCapability(e.method);const o=r?.signal;o?.throwIfAborted();const l=this.requestMessageId++,i={...e,jsonrpc:"2.0",id:l},c=()=>{this.responseHandlers.delete(l)};this.responseHandlers.set(l,u=>{if(o?.aborted)return s(new D({message:"Request was aborted",cause:o.reason}));if(u instanceof Error)return s(u);try{const d=t.parse(u.result);n(d)}catch(d){const p=new D({message:"Failed to parse server response",cause:d});s(p)}}),this.transport.send(i).catch(u=>{c(),s(u)})})}async listTools({params:e,options:t}={}){try{return this.request({request:{method:"tools/list",params:e},resultSchema:sp,options:t})}catch(r){throw r}}async callTool({name:e,args:t,options:r}){try{return this.request({request:{method:"tools/call",params:{name:e,arguments:t}},resultSchema:up,options:{signal:r?.abortSignal}})}catch(n){throw n}}async listResourcesInternal({params:e,options:t}={}){try{return this.request({request:{method:"resources/list",params:e},resultSchema:lp,options:t})}catch(r){throw r}}async readResourceInternal({uri:e,options:t}){try{return this.request({request:{method:"resources/read",params:{uri:e}},resultSchema:pp,options:t})}catch(r){throw r}}async listResourceTemplatesInternal({options:e}={}){try{return this.request({request:{method:"resources/templates/list"},resultSchema:dp,options:e})}catch(t){throw t}}async listPromptsInternal({params:e,options:t}={}){try{return this.request({request:{method:"prompts/list",params:e},resultSchema:hp,options:t})}catch(r){throw r}}async getPromptInternal({name:e,args:t,options:r}){try{return this.request({request:{method:"prompts/get",params:{name:e,arguments:t}},resultSchema:vp,options:r})}catch(n){throw n}}async notification(e){const t={...e,jsonrpc:"2.0"};await this.transport.send(t)}async tools({schemas:e="automatic"}={}){var t;const r={};try{const n=await this.listTools();for(const{name:s,description:o,inputSchema:l}of n.tools){if(e!=="automatic"&&!(s in e))continue;const i=this,c=async(d,p)=>{var h;return(h=p?.abortSignal)==null||h.throwIfAborted(),i.callTool({name:s,args:d,options:p})},u=e==="automatic"?a.dynamicTool({description:o,inputSchema:a.jsonSchema({...l,properties:(t=l.properties)!=null?t:{},additionalProperties:!1}),execute:c}):a.tool({description:o,inputSchema:e[s].inputSchema,execute:c});r[s]=u}return r}catch(n){throw n}}listResources({params:e,options:t}={}){return this.listResourcesInternal({params:e,options:t})}readResource({uri:e,options:t}){return this.readResourceInternal({uri:e,options:t})}listResourceTemplates({options:e}={}){return this.listResourceTemplatesInternal({options:e})}listPrompts({params:e,options:t}={}){return this.listPromptsInternal({params:e,options:t})}getPrompt({name:e,arguments:t,options:r}){return this.getPromptInternal({name:e,args:t,options:r})}onElicitationRequest(e,t){if(e!==Yn)throw new D({message:"Unsupported request schema. Only ElicitationRequestSchema is supported."});this.elicitationRequestHandler=t}async onRequestMessage(e){try{if(e.method!=="elicitation/create"){await this.transport.send({jsonrpc:"2.0",id:e.id,error:{code:-32601,message:`Unsupported request method: ${e.method}`}});return}if(!this.elicitationRequestHandler){await this.transport.send({jsonrpc:"2.0",id:e.id,error:{code:-32601,message:"No elicitation handler registered on client"}});return}const t=Yn.safeParse({method:e.method,params:e.params});if(!t.success){await this.transport.send({jsonrpc:"2.0",id:e.id,error:{code:-32602,message:`Invalid elicitation request: ${t.error.message}`,data:t.error.issues}});return}try{const r=await this.elicitationRequestHandler(t.data),n=_p.parse(r);await this.transport.send({jsonrpc:"2.0",id:e.id,result:n})}catch(r){await this.transport.send({jsonrpc:"2.0",id:e.id,error:{code:-32603,message:r instanceof Error?r.message:"Failed to handle elicitation request"}}),this.onError(r)}}catch(t){this.onError(t)}}onClose(){if(this.isClosed)return;this.isClosed=!0;const e=new D({message:"Connection closed"});for(const t of this.responseHandlers.values())t(e);this.responseHandlers.clear()}onError(e){this.onUncaughtError&&this.onUncaughtError(e)}onResponse(e){const t=Number(e.id),r=this.responseHandlers.get(t);if(r===void 0)throw new D({message:`Protocol error: Received a response for an unknown message ID: ${JSON.stringify(e)}`});this.responseHandlers.delete(t),r("result"in e?e:new D({message:e.error.message,code:e.error.code,data:e.error.data,cause:e.error}))}};const nf="https://app.getgram.ai",af=()=>({chat:sf}),of=a.object({mcp:a.union([a.string()]),environment:a.record(a.string(),a.unknown()).optional(),projectSlug:a.string(),model:a._enum$1(a.MODELS)}),sf=async(e,t)=>{if(e.method==="POST")try{const r=[];for await(const p of e)r.push(p);const n=Buffer.concat(r).toString(),{messages:s,config:o}=JSON.parse(n),l=of.parse(o),c=await(await tf({transport:{type:"http",url:l.mcp,headers:{...lf(l.environment??{}),Authorization:`Bearer ${process.env.GRAM_API_KEY??""}`}}})).tools(),u=cs({baseURL:nf,apiKey:"must be set",headers:{"Gram-Project":l.projectSlug,"Gram-Key":process.env.GRAM_API_KEY??""}}),d=Ac({model:u.chat(l.model),messages:kc(s),tools:c});t.setHeader("Content-Type","text/event-stream"),t.setHeader("Cache-Control","no-cache"),t.setHeader("Connection","keep-alive"),t.setHeader("Transfer-Encoding","chunked"),t.statusCode=200,d.pipeUIMessageStreamToResponse(t,{sendReasoning:!0,sendSources:!0})}catch(r){t.statusCode=500,t.end(JSON.stringify({error:r instanceof Error?r.message:"Unknown error"}))}},ta="MCP-";function lf(e){return typeof e!="object"||e===null?{}:Object.entries(e).reduce((t,[r,n])=>{const s=r.replace(/_/g,"-"),o=s.startsWith(ta)?s:`${ta}${s}`;return t[o]=n,t},{})}exports.createElementsServerHandlers=af;