@gram-ai/elements 1.2.5 → 1.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/elements.cjs +49 -0
- package/dist/models-BuM4eiir.cjs +33 -0
- package/dist/server.cjs +54 -0
- package/package.json +5 -3
package/dist/server.cjs
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./models-BuM4eiir.cjs");var Ps=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 ks(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 Os=ks(xe),Ms=xe.split(".")[0],We=Symbol.for("opentelemetry.js.api."+Ms),Ye=Ps;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||!Os(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 Ns=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},$s=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))},js=(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 He("debug",this._namespace,t)},e.prototype.error=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return He("error",this._namespace,t)},e.prototype.info=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return He("info",this._namespace,t)},e.prototype.warn=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return He("warn",this._namespace,t)},e.prototype.verbose=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return He("verbose",this._namespace,t)},e})();function He(e,t,r){var n=Xe("diag");if(n)return r.unshift(t),n[e].apply(n,$s([],Ns(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 Ds(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 Us=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},qs=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))},Fs="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,qs([],Us(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=Ds((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(Fs,r)},r.createComponentLogger=function(s){return new js(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 Ls(e){return Symbol.for(e)}var Vs=(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 Vs,Hs=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))},Ks=(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,Zs([n],Hs(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},Gs=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))},Jt="context",zs=new Ks,ta=(function(){function e(){}return e.getInstance=function(){return this._instance||(this._instance=new e),this._instance},e.prototype.setGlobalContextManager=function(t){return Er(Jt,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,Gs([t,r,n],Js(o),!1))},e.prototype.bind=function(t,r){return this._getContextManager().bind(t,r)},e.prototype._getContextManager=function(){return Xe(Jt)||zs},e.prototype.disable=function(){this._getContextManager().disable(),Sr(Jt,vt.instance())},e})(),ur;(function(e){e[e.NONE=0]="NONE",e[e.SAMPLED=1]="SAMPLED"})(ur||(ur={}));var ra="0000000000000000",na="00000000000000000000000000000000",Ws={traceId:na,spanId:ra,traceFlags:ur.NONE},Ge=(function(){function e(t){t===void 0&&(t=Ws),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=Ls("OpenTelemetry Context Key SPAN");function Rr(e){return e.getValue(xr)||void 0}function Ys(){return Rr(ta.getInstance().active())}function Cr(e,t){return e.setValue(xr,t)}function Xs(e){return e.deleteValue(xr)}function Qs(e,t){return Cr(e,new Ge(t))}function aa(e){var t;return(t=Rr(e))===null||t===void 0?void 0:t.spanContext()}var ei=/^([0-9a-f]{32})$/i,ti=/^[0-9a-f]{16}$/i;function ri(e){return ei.test(e)&&e!==na}function ni(e){return ti.test(e)&&e!==ra}function oa(e){return ri(e.traceId)&&ni(e.spanId)}function ai(e){return new Ge(e)}var Gt=ta.getInstance(),sa=(function(){function e(){}return e.prototype.startSpan=function(t,r,n){n===void 0&&(n=Gt.active());var s=!!r?.root;if(s)return new Ge;var o=n&&aa(n);return oi(o)&&oa(o)?new Ge(o):new Ge},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??Gt.active(),u=this.startSpan(t,o,c),d=Cr(c,u);return Gt.with(d,i,void 0,u)}},e})();function oi(e){return typeof e=="object"&&typeof e.spanId=="string"&&typeof e.traceId=="string"&&typeof e.traceFlags=="number"}var si=new sa,ii=(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):si},e})(),li=(function(){function e(){}return e.prototype.getTracer=function(t,r,n){return new sa},e})(),ui=new li,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 ii(this,t,r,n)},e.prototype.getDelegate=function(){var t;return(t=this._delegate)!==null&&t!==void 0?t:ui},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",ci=(function(){function e(){this._proxyTracerProvider=new rn,this.wrapSpanContext=ai,this.isSpanContextValid=oa,this.deleteSpan=Xs,this.getSpan=Rr,this.getActiveSpan=Ys,this.getSpanContext=aa,this.setSpan=Cr,this.setSpanContext=Qs}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})(),di=ci.getInstance();function cr(...e){return e.reduce((t,r)=>({...t,...r??{}}),{})}async function pi(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()}`},fi=it();function ia(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 mi=["fetch failed","failed to fetch"];function la({error:e,url:t,requestBodyValues:r}){if(Re(e))return e;if(e instanceof TypeError&&mi.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 Ar(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 hi(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(hi(e)),n=r.get("user-agent")||"";return r.set("user-agent",[n,...t].filter(Boolean).join(" ")),Object.fromEntries(r.entries())}var ua="3.0.16",gi=()=>globalThis.fetch,an=async({url:e,headers:t={},successfulResponseHandler:r,failedResponseHandler:n,abortSignal:s,fetch:o=gi()})=>{try{const l=await o(e,{method:"GET",headers:kt(t,`ai-sdk/provider-utils/${ua}`,Ar()),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 la({error:l,url:e,requestBodyValues:{}})}};function vi({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 yi=/"__proto__"\s*:/,_i=/"constructor"\s*:/;function bi(e){const t=JSON.parse(e);return t===null||typeof t!="object"||yi.test(e)===!1&&_i.test(e)===!1?t:wi(t)}function wi(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 ca(e){const{stackTraceLimit:t}=Error;Error.stackTraceLimit=0;try{return bi(e)}finally{Error.stackTraceLimit=t}}var _t=Symbol.for("vercel.ai.validator");function Ti(e){return{[_t]:!0,validate:e}}function Ii(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 Ei(e){return Ii(e)?e:typeof e=="function"?e():Si(e)}function Si(e){return Ti(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=Ei(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 xi({text:e,schema:t}){try{const r=ca(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 Ce({text:e,schema:t}){try{const r=ca(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 Ri({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 Ce({text:r,schema:t}))}}))}var Ci=()=>globalThis.fetch,pr=async({url:e,headers:t,body:r,failedResponseHandler:n,successfulResponseHandler:s,abortSignal:o,fetch:l})=>Ai({url:e,headers:{"Content-Type":"application/json",...t},body:{content:JSON.stringify(r),values:r},failedResponseHandler:n,successfulResponseHandler:s,abortSignal:o,fetch:l}),Ai=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/${ua}`,Ar()),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 la({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 xi({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)})}}},Pi=e=>async({response:t})=>{const r=st(t);if(t.body==null)throw new a.EmptyResponseBodyError({});return{responseHeaders:r,value:Ri({stream:t.body,schema:e})}},bt=e=>async({response:t,url:r,requestBodyValues:n})=>{const s=await t.text(),o=await Ce({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}},ki=(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("/")},Oi=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"},Mi=e=>typeof e=="string"?{...on,name:e}:{...on,...e};function ee(){return{}}function Ni(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 $i(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 ji(){return{type:"boolean"}}function da(e,t){return U(e.type._def,t)}var Di=(e,t)=>U(e.innerType._def,t);function pa(e,t,r){const n=r??t.dateStrategy;if(Array.isArray(n))return{anyOf:n.map((s,o)=>pa(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 Ui(e)}}var Ui=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 qi(e,t){return{...U(e.innerType._def,t),default:e.defaultValue()}}function Fi(e,t){return t.effectStrategy==="input"?U(e.schema._def,t):ee()}function Li(e){return{type:"string",enum:Array.from(e.values)}}var Vi=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(Vi(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 Hi(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 fa(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"?Ki(e):e}var Zi=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function Ki(e){let t="";for(let r=0;r<e.length;r++)Zi.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 ma(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}=fa(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}=da(e.keyType._def,t);return{...c,propertyNames:d}}}return c}function Ji(e,t){if(t.mapStrategy==="record")return ma(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 Gi(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 zi(){return{not:ee()}}function Wi(){return{type:"null"}}var fr={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function Yi(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 Xi(e,t)}var Xi=(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 Qi(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 el(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 tl(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=nl(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=rl(e,t);return o!==void 0&&(r.additionalProperties=o),r}function rl(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 nl(e){try{return e.isOptional()}catch{return!0}}var al=(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()},ol=(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 sl(e,t){return U(e.type._def,t)}function il(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 ll(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 ul(){return{not:ee()}}function cl(){return ee()}var dl=(e,t)=>U(e.innerType._def,t),pl=(e,t,r)=>{switch(t){case a.ZodFirstPartyTypeKind$1.ZodString:return fa(e,r);case a.ZodFirstPartyTypeKind$1.ZodNumber:return el(e);case a.ZodFirstPartyTypeKind$1.ZodObject:return tl(e,r);case a.ZodFirstPartyTypeKind$1.ZodBigInt:return $i(e);case a.ZodFirstPartyTypeKind$1.ZodBoolean:return ji();case a.ZodFirstPartyTypeKind$1.ZodDate:return pa(e,r);case a.ZodFirstPartyTypeKind$1.ZodUndefined:return ul();case a.ZodFirstPartyTypeKind$1.ZodNull:return Wi();case a.ZodFirstPartyTypeKind$1.ZodArray:return Ni(e,r);case a.ZodFirstPartyTypeKind$1.ZodUnion:case a.ZodFirstPartyTypeKind$1.ZodDiscriminatedUnion:return Yi(e,r);case a.ZodFirstPartyTypeKind$1.ZodIntersection:return Bi(e,r);case a.ZodFirstPartyTypeKind$1.ZodTuple:return ll(e,r);case a.ZodFirstPartyTypeKind$1.ZodRecord:return ma(e,r);case a.ZodFirstPartyTypeKind$1.ZodLiteral:return Hi(e);case a.ZodFirstPartyTypeKind$1.ZodEnum:return Li(e);case a.ZodFirstPartyTypeKind$1.ZodNativeEnum:return Gi(e);case a.ZodFirstPartyTypeKind$1.ZodNullable:return Qi(e,r);case a.ZodFirstPartyTypeKind$1.ZodOptional:return al(e,r);case a.ZodFirstPartyTypeKind$1.ZodMap:return Ji(e,r);case a.ZodFirstPartyTypeKind$1.ZodSet:return il(e,r);case a.ZodFirstPartyTypeKind$1.ZodLazy:return()=>e.getter()._def;case a.ZodFirstPartyTypeKind$1.ZodPromise:return sl(e,r);case a.ZodFirstPartyTypeKind$1.ZodNaN:case a.ZodFirstPartyTypeKind$1.ZodNever:return zi();case a.ZodFirstPartyTypeKind$1.ZodEffects:return Fi(e,r);case a.ZodFirstPartyTypeKind$1.ZodAny:return ee();case a.ZodFirstPartyTypeKind$1.ZodUnknown:return cl();case a.ZodFirstPartyTypeKind$1.ZodDefault:return qi(e,r);case a.ZodFirstPartyTypeKind$1.ZodBranded:return da(e,r);case a.ZodFirstPartyTypeKind$1.ZodReadonly:return dl(e,r);case a.ZodFirstPartyTypeKind$1.ZodCatch:return Di(e,r);case a.ZodFirstPartyTypeKind$1.ZodPipeline:return ol(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!==Oi)return c}if(s&&!r){const c=fl(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=pl(e,e.typeName,t),i=typeof l=="function"?U(l(),t):l;if(i&&ml(e,t,i),t.postProcess){const c=t.postProcess(i,e,t);return o.jsonSchema=i,c}return o.jsonSchema=i,i}var fl=(e,t)=>{switch(t.$refStrategy){case"root":return{$ref:e.path.join("/")};case"relative":return{$ref:ki(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}},ml=(e,t,r)=>(e.description&&(r.description=e.description),r),hl=e=>{const t=Mi(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}]))}},gl=(e,t)=>{var r;const n=hl(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},vl=gl;function yl(e,t){var r;const n=(r=void 0)!=null?r:!1;return Pr(()=>vl(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 _l(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 bl(e){return"_zod"in e}function Pe(e,t){return bl(e)?_l(e):yl(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 wl(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}):wl(e)?e:typeof e=="function"?e():Pe(e)}var{btoa:Tl,atob:Il}=globalThis;function kr(e){const t=e.replace(/-/g,"+").replace(/_/g,"/"),r=Il(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 Tl(t)}function El(e){return e?.replace(/\/$/,"")}function Sl(e){return e!=null&&typeof e[Symbol.asyncIterator]=="function"}async function*xl({execute:e,input:t,options:r}){const n=e(t,r);if(Sl(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 Rl(){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=Rl();async function u(){return""}function d(){return""}return Qt}var ha=Cl(),Al="vercel.ai.gateway.error",er=Symbol.for(Al),cn,dn,te=class ga 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 ga.hasMarker(t)}static hasMarker(t){return typeof t=="object"&&t!==null&&er in t&&t[er]===!0}},va="GatewayAuthenticationError",Pl=`vercel.ai.gateway.error.${va}`,pn=Symbol.for(Pl),fn,mn,Or=class ya 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=va,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 ya({message:l,statusCode:s,cause:o})}},_a="GatewayInvalidRequestError",kl=`vercel.ai.gateway.error.${_a}`,hn=Symbol.for(kl),gn,vn,Ol=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=_a,this.type="invalid_request_error"}static isInstance(e){return te.hasMarker(e)&&hn in e}},ba="GatewayRateLimitError",Ml=`vercel.ai.gateway.error.${ba}`,yn=Symbol.for(Ml),_n,bn,Nl=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=ba,this.type="rate_limit_exceeded"}static isInstance(e){return te.hasMarker(e)&&yn in e}},wa="GatewayModelNotFoundError",$l=`vercel.ai.gateway.error.${wa}`,wn=Symbol.for($l),jl=De(()=>Pe(a.object({modelId:a.string()}))),Tn,In,Ta=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=wa,this.type="model_not_found",this.modelId=r}static isInstance(e){return te.hasMarker(e)&&wn in e}},Ia="GatewayInternalServerError",Dl=`vercel.ai.gateway.error.${Ia}`,En=Symbol.for(Dl),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=Ia,this.type="internal_server_error"}static isInstance(e){return te.hasMarker(e)&&En in e}},Ea="GatewayResponseError",Ul=`vercel.ai.gateway.error.${Ea}`,Cn=Symbol.for(Ul),An,Pn,ql=class extends(Pn=te,An=Cn,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[An]=!0,this.name=Ea,this.type="response_error",this.response=r,this.validationError=n}static isInstance(e){return te.hasMarker(e)&&Cn 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:Fl});if(!o.success)return new ql({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 Ol({message:c,statusCode:t,cause:n});case"rate_limit_exceeded":return new Nl({message:c,statusCode:t,cause:n});case"model_not_found":{const u=await Se({value:l.error.param,schema:jl});return new Ta({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 Fl=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 Ae(e,t){var r;return te.isInstance(e)?e:a.APICallError.isInstance(e)?kn({response:Ll(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 Ll(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 Sa="ai-gateway-auth-method";async function et(e){const t=await Se({value:e[Sa],schema:Vl});return t.success?t.value:void 0}var Vl=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 Ae(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(Hl),failedResponseHandler:Qe({errorSchema:a.any(),errorToMessage:r=>r}),fetch:this.config.fetch});return t}catch(e){throw await Ae(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()}))}))),Hl=De(()=>Pe(a.object({balance:a.string(),total_used:a.string()}).transform(({balance:e,total_used:t})=>({balance:e,totalUsed:t})))),Zl=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 Ae(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:Pi(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 Ae(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)}}},Kl=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 Ae(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 Gl(){var e;return(e=ha.getContext().headers)==null?void 0:e["x-vercel-id"]}var zl="2.0.7",Wl="0.0.1";function Yl(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=El(e.baseURL))!=null?r:"https://ai-gateway.vercel.sh/v1/ai",c=async()=>{const m=await Ql(e);if(m)return kt({Authorization:`Bearer ${m.token}`,"ai-gateway-protocol-version":Wl,[Sa]:m.authMethod,...e.headers},`ai-sdk/gateway/${zl}`);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 Gl();return{...m&&{"ai-o11y-deployment-id":m},...v&&{"ai-o11y-environment":v},..._&&{"ai-o11y-region":_},...y&&{"ai-o11y-request-id":y}}}},d=m=>new Zl(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 Ae(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 Ae(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 Kl(m,{provider:"gateway",baseURL:i,headers:c,fetch:e.fetch,o11yHeaders:u()}),f}var Xl=Yl();async function Ql(e){const t=ht({settingValue:e.apiKey,environmentVariableName:"AI_GATEWAY_API_KEY"});if(t)return{token:t,authMethod:"api-key"};try{return{token:await ha.getVercelOidcToken(),authMethod:"oidc"}}catch{return null}}var eu=Object.defineProperty,tu=(e,t)=>{for(var r in t)eu(e,r,{get:t[r],enumerable:!0})},xa="AI_NoOutputSpecifiedError",Ra=`vercel.ai.error.${xa}`,ru=Symbol.for(Ra),Ca,nu=class extends a.AISDKError{constructor({message:e="No output specified."}={}){super({name:xa,message:e}),this[Ca]=!0}static isInstance(e){return a.AISDKError.hasMarker(e,Ra)}};Ca=ru;function au(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 ou="AI SDK Warning System: To turn off warning logging, set the AI_SDK_LOG_WARNINGS global to false.",Mn=!1,su=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(ou));for(const r of e)console.warn(au(r))}},Aa="AI_InvalidArgumentError",Pa=`vercel.ai.error.${Aa}`,iu=Symbol.for(Pa),ka,ge=class extends a.AISDKError{constructor({parameter:t,value:r,message:n}){super({name:Aa,message:`Invalid argument for parameter ${t}: ${n}`}),this[ka]=!0,this.parameter=t,this.value=r}static isInstance(t){return a.AISDKError.hasMarker(t,Pa)}};ka=iu;var Oa="AI_InvalidToolInputError",Ma=`vercel.ai.error.${Oa}`,lu=Symbol.for(Ma),Na,$a=class extends a.AISDKError{constructor({toolInput:e,toolName:t,cause:r,message:n=`Invalid input for tool ${t}: ${a.getErrorMessage(r)}`}){super({name:Oa,message:n,cause:r}),this[Na]=!0,this.toolInput=e,this.toolName=t}static isInstance(e){return a.AISDKError.hasMarker(e,Ma)}};Na=lu;var ja="AI_NoObjectGeneratedError",Da=`vercel.ai.error.${ja}`,uu=Symbol.for(Da),Ua,Nn=class extends a.AISDKError{constructor({message:e="No object generated.",cause:t,text:r,response:n,usage:s,finishReason:o}){super({name:ja,message:e,cause:t}),this[Ua]=!0,this.text=r,this.response=n,this.usage=s,this.finishReason=o}static isInstance(e){return a.AISDKError.hasMarker(e,Da)}};Ua=uu;var qa="AI_NoOutputGeneratedError",Fa=`vercel.ai.error.${qa}`,cu=Symbol.for(Fa),La,du=class extends a.AISDKError{constructor({message:e="No output generated.",cause:t}={}){super({name:qa,message:e,cause:t}),this[La]=!0}static isInstance(e){return a.AISDKError.hasMarker(e,Fa)}};La=cu;var Va="AI_NoSuchToolError",Ba=`vercel.ai.error.${Va}`,pu=Symbol.for(Ba),Ha,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:Va,message:r}),this[Ha]=!0,this.toolName=e,this.availableTools=t}static isInstance(e){return a.AISDKError.hasMarker(e,Ba)}};Ha=pu;var Za="AI_ToolCallRepairError",Ka=`vercel.ai.error.${Za}`,fu=Symbol.for(Ka),Ja,mu=class extends a.AISDKError{constructor({cause:e,originalError:t,message:r=`Error repairing tool call: ${a.getErrorMessage(e)}`}){super({name:Za,message:r,cause:e}),this[Ja]=!0,this.originalError=t}static isInstance(e){return a.AISDKError.hasMarker(e,Ka)}};Ja=fu;var hu=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}},Ga="AI_InvalidMessageRoleError",za=`vercel.ai.error.${Ga}`,gu=Symbol.for(za),Wa,vu=class extends a.AISDKError{constructor({role:e,message:t=`Invalid message role: '${e}'. Must be one of: "system", "user", "assistant", "tool".`}){super({name:Ga,message:t}),this[Wa]=!0,this.role=e}static isInstance(e){return a.AISDKError.hasMarker(e,za)}};Wa=gu;var Ya="AI_MessageConversionError",Xa=`vercel.ai.error.${Ya}`,yu=Symbol.for(Xa),Qa,_u=class extends a.AISDKError{constructor({originalMessage:e,message:t}){super({name:Ya,message:t}),this[Qa]=!0,this.originalMessage=e}static isInstance(e){return a.AISDKError.hasMarker(e,Xa)}};Qa=yu;var eo="AI_DownloadError",to=`vercel.ai.error.${eo}`,bu=Symbol.for(to),ro,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:eo,message:s,cause:n}),this[ro]=!0,this.url=e,this.statusCode=t,this.statusText=r}static isInstance(e){return a.AISDKError.hasMarker(e,to)}};ro=bu;var no="AI_RetryError",ao=`vercel.ai.error.${no}`,wu=Symbol.for(ao),oo,$n=class extends a.AISDKError{constructor({message:e,reason:t,errors:r}){super({name:no,message:e}),this[oo]=!0,this.reason=t,this.errors=r,this.lastError=r[r.length-1]}static isInstance(e){return a.AISDKError.hasMarker(e,ao)}};oo=wu;function so(e){if(typeof e!="string"){if(e.specificationVersion!=="v2")throw new hu({version:e.specificationVersion,provider:e.provider,modelId:e.modelId});return e}return Tu().languageModel(e)}function Tu(){var e;return(e=globalThis.AI_SDK_DEFAULT_PROVIDER)!=null?e:Xl}var Iu=[{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]}],Eu=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 Su(e){return typeof e=="string"&&e.startsWith("SUQz")||typeof e!="string"&&e.length>10&&e[0]===73&&e[1]===68&&e[2]===51?Eu(e):e}function xu({data:e,signatures:t}){const r=Su(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 Ru="5.0.90",Cu=async({url:e})=>{var t;const r=e.toString();try{const n=await fetch(r,{headers:kt({},`ai-sdk/${Ru}`,Ar())});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})}},Au=(e=Cu)=>t=>Promise.all(t.map(async r=>r.isUrlSupportedByModel?null:e(r)));function Pu(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 io=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 lo(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}=Pu(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 ku(e){return typeof e=="string"?e:e instanceof ArrayBuffer?hr(new Uint8Array(e)):hr(e)}async function Ou({prompt:e,supportedUrls:t,download:r=Au()}){const n=await Nu(e.messages,r,t);return[...e.system!=null?[{role:"system",content:e.system}]:[],...e.messages.map(s=>Mu({message:s,downloadedAssets:n}))]}function Mu({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=>$u(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}=lo(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 vu({role:n})}}}async function Nu(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&&vi({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 $u(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}=lo(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=xu({data:c,signatures:Iu}))!=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 ju({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 Du(e){return e!=null&&Object.keys(e).length>0}function Uu({tools:e,toolChoice:t,activeTools:r}){return Du(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)),uo=a.object({type:a.literal("text"),text:a.string(),providerOptions:ve.optional()}),qu=a.object({type:a.literal("image"),image:a.union([io,a._instanceof(URL)]),mediaType:a.string().optional(),providerOptions:ve.optional()}),co=a.object({type:a.literal("file"),data:a.union([io,a._instanceof(URL)]),filename:a.string().optional(),mediaType:a.string(),providerOptions:ve.optional()}),Fu=a.object({type:a.literal("reasoning"),text:a.string(),providerOptions:ve.optional()}),Lu=a.object({type:a.literal("tool-call"),toolCallId:a.string(),toolName:a.string(),input:a.unknown(),providerOptions:ve.optional(),providerExecuted:a.boolean().optional()}),Vu=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()})]))})]),po=a.object({type:a.literal("tool-result"),toolCallId:a.string(),toolName:a.string(),output:Vu,providerOptions:ve.optional()}),Bu=a.object({role:a.literal("system"),content:a.string(),providerOptions:ve.optional()}),Hu=a.object({role:a.literal("user"),content:a.union([a.string(),a.array(a.union([uo,qu,co]))]),providerOptions:ve.optional()}),Zu=a.object({role:a.literal("assistant"),content:a.union([a.string(),a.array(a.union([uo,co,Fu,Lu,po]))]),providerOptions:ve.optional()}),Ku=a.object({role:a.literal("tool"),content:a.array(po),providerOptions:ve.optional()}),Ju=a.union([Bu,Hu,Zu,Ku]);async function Gu(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 zu(e){return Or.isInstance(e)||Ta.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 Wu({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 Yu={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 Xu},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}},Xu={traceId:"",spanId:"",traceFlags:0};function Qu({isEnabled:e=!1,tracer:t}={}){return e?t||di.getTracer("ai"):Yu}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{fo(o,l)}finally{o.end()}throw l}})}function fo(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 ec(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?ku(r.data):r.data}:r)})))}function tc(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 rc({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 nc=({maxRetries:e=2,initialDelayInMs:t=2e3,backoffFactor:r=2,abortSignal:n}={})=>async s=>mo(s,{maxRetries:e,delayInMs:t,backoffFactor:r,abortSignal:n});async function mo(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=ia(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 pi(rc({error:l,exponentialBackoffDelay:r}),{abortSignal:s}),mo(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 ac({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:nc({maxRetries:r,abortSignal:t})}}var oc=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}},sc=class extends oc{constructor(e){super(e),this.type="file"}};async function ic({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)||$a.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 mu({cause:i,originalError:o})}if(l==null)throw o;return await Dn({toolCall:l,tools:t})}}catch(o){const l=await Ce({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 Ce({text:e.input,schema:s});if(o.success===!1)throw new $a({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 lc=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 uc(e){return({steps:t})=>t.length===e}async function cc({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 dc({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 ho({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 pc({response:e,status:t,statusText:r,headers:n,textStream:s}){ho({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 go=class extends TransformStream{constructor(){super({transform(e,t){t.enqueue(`data: ${JSON.stringify(e)}
|
|
21
|
+
|
|
22
|
+
`)},flush(e){e.enqueue(`data: [DONE]
|
|
23
|
+
|
|
24
|
+
`)}})}},vo={"content-type":"text/event-stream","cache-control":"no-cache",connection:"keep-alive","x-vercel-ai-ui-message-stream":"v1","x-accel-buffering":"no"};function fc({status:e,statusText:t,headers:r,stream:n,consumeSseStream:s}){let o=n.pipeThrough(new go);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,vo)})}function mc({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 hc(e){return e.type.startsWith("data-")}function yo(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]=yo(o,s):r[n]=s}return r}function gc(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 _o(e){if(e===void 0)return{value:void 0,state:"undefined-input"};let t=await Ce({text:e});return t.success?{value:t.value,state:"successful-parse"}:(t=await Ce({text:gc(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 vc(e){return Mr(e)?e.toolName:wt(e)}function yc({lastMessage:e,messageId:t}){return{message:e?.role==="assistant"?e:{id:t,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}function _c({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?yo(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 _o(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(hc(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 bc({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=yc({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 _c({stream:i,runUpdateMessageJob:u,onError:n}).pipeThrough(new TransformStream({transform(h,f){f.enqueue(h)},async cancel(){await p()},async flush(){await p()}}))}function wc({response:e,status:t,statusText:r,headers:n,stream:s,consumeSseStream:o}){let l=s.pipeThrough(new go);if(o){const[i,c]=l.tee();l=i,o({stream:c})}ho({response:e,status:t,statusText:r,headers:Object.fromEntries(Mt(n,vo).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 Tc({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 Ic(){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 Ec(){var e,t;return(t=(e=globalThis?.performance)==null?void 0:e.now())!=null?t:Date.now()}function Sc({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 sc({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 ic({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:ia(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=fi();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=xl({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){fo(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 xc=it({prefix:"aitxt",size:24});function Rc({model:e,tools:t,toolChoice:r,system:n,prompt:s,messages:o,maxRetries:l,abortSignal:i,headers:c,stopWhen:u=uc(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=Ec,generateId:K=xc,currentDate:de=()=>new Date}={},...q}){return new Ac({model:so(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 Ac=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={},A={};const k=new TransformStream({async transform(V,B){var J,N,oe,qe;B.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:zu(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){B.enqueue({part:{type:"error",error:`text part ${T.id} not found`},partialOutput:void 0});return}L.text+=T.text,L.providerMetadata=(J=T.providerMetadata)!=null?J:L.providerMetadata}if(T.type==="text-end"){const L=ae[T.id];if(L==null){B.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"&&(A[T.id]={type:"reasoning",text:"",providerMetadata:T.providerMetadata},M.push(A[T.id])),T.type==="reasoning-delta"){const L=A[T.id];if(L==null){B.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=A[T.id];if(L==null){B.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 A[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 lc({content:M,finishReason:T.finishReason,usage:T.usage,warnings:O,request:re,response:{...T.response,messages:[...pe,...L]},providerMetadata:T.providerMetadata});await F?.(Fe),su(O),R.push(Fe),M=[],A={},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 du({message:"No output generated. Check the stream for errors."});ne._finishReason.reject(oe),ne._totalUsage.reject(oe),ne._steps.reject(oe);return}const B=fe??"unknown",J=we??{inputTokens:void 0,outputTokens:void 0,totalTokens:void 0};ne._finishReason.resolve(B),ne._totalUsage.resolve(J),ne._steps.resolve(R);const N=R[R.length-1];await x?.({finishReason:B,totalUsage:J,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":B,"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":J.inputTokens,"ai.usage.outputTokens":J.outputTokens,"ai.usage.totalTokens":J.totalTokens,"ai.usage.reasoningTokens":J.reasoningTokens,"ai.usage.cachedInputTokens":J.cachedInputTokens}}))}catch(B){V.error(B)}finally{Z.end()}}}),$=Ic();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 B(){P?.({steps:R}),V.enqueue({type:"abort"}),V.close()}try{const{done:J,value:N}=await z.read();if(J){V.close();return}if(o?.aborted){B();return}V.enqueue(N)}catch(J){Re(J)&&o?.aborted?B():V.error(J)}},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:Ss,retry:xs}=ac({maxRetries:s,abortSignal:o}),qt=Qu(t),ye=ju(n),Hr=Wu({model:e,telemetry:t,headers:r,settings:{...ye,maxRetries:Ss}}),ne=this;yr({name:"ai.streamText",attributes:Ne({telemetry:t,attributes:{...vr({operationId:"ai.streamText",telemetry:t}),...Hr,"ai.prompt":{input:()=>JSON.stringify({system:l,prompt:i,messages:c})}}}),tracer:qt,endWhenDone:!1,fn:async V=>{Z=V;async function B({currentStep:J,responseMessages:N,usage:oe}){var qe,T,L,Fe,Zr;const Kr=ne.includeRawChunks;q=new ft;const Jr=await Gu({system:l,prompt:i,messages:c}),Le=[...Jr.messages,...N],me=await y?.({model:e,steps:R,stepNumber:R.length,messages:Le}),ke=so((qe=me?.model)!=null?qe:e),Gr=await Ou({prompt:{system:(T=me?.system)!=null?T:Jr.system,messages:(L=me?.messages)!=null?L:Le},supportedUrls:await ke.supportedUrls,download:de}),{toolChoice:Ft,tools:Lt}=Uu({tools:u,toolChoice:(Fe=me?.toolChoice)!=null?Fe:d,activeTools:(Zr=me?.activeTools)!=null?Zr:h}),{result:{stream:Rs,response:zr,request:Wr},doStreamSpan:Oe,startTimestampMs:Yr}=await xs(()=>yr({name:"ai.streamText.doStream",attributes:Ne({telemetry:t,attributes:{...vr({operationId:"ai.streamText.doStream",telemetry:t}),...Hr,"ai.model.provider":ke.provider,"ai.model.id":ke.modelId,"ai.prompt.messages":{input:()=>ec(Gr)},"ai.prompt.tools":{input:()=>Lt?.map(C=>JSON.stringify(C))},"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 C=>({startTimestampMs:b(),doStreamSpan:C,result:await ke.doStream({...ye,tools:Lt,toolChoice:Ft,responseFormat:v?.responseFormat,prompt:Gr,providerOptions:_,abortSignal:o,headers:r,includeRawChunks:Kr})})})),Cs=Sc({tools:u,generatorStream:Rs,tracer:qt,telemetry:t,system:l,messages:Le,repairToolCall:f,abortSignal:o,experimental_context:K}),As=Wr??{},ut=[],Vt=[];let Bt;const Ht={};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(C,G){var Ve,Be,ct,_e;if(C.type==="stream-start"){Bt=C.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}),G.enqueue({type:"start-step",request:As,warnings:Bt??[]})}const en=C.type;switch(en){case"text-start":case"text-end":{G.enqueue(C);break}case"text-delta":{C.delta.length>0&&(G.enqueue({type:"text-delta",id:C.id,text:C.delta,providerMetadata:C.providerMetadata}),Qr+=C.delta);break}case"reasoning-start":case"reasoning-end":{G.enqueue(C);break}case"reasoning-delta":{G.enqueue({type:"reasoning-delta",id:C.id,text:C.delta,providerMetadata:C.providerMetadata});break}case"tool-call":{G.enqueue(C),ut.push(C);break}case"tool-result":{G.enqueue(C),C.preliminary||Vt.push(C);break}case"tool-error":{G.enqueue(C),Vt.push(C);break}case"response-metadata":{he={id:(Ve=C.id)!=null?Ve:he.id,timestamp:(Be=C.timestamp)!=null?Be:he.timestamp,modelId:(ct=C.modelId)!=null?ct:he.modelId};break}case"finish":{se=C.usage,Me=C.finishReason,Zt=C.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":{G.enqueue(C);break}case"source":{G.enqueue(C);break}case"tool-input-start":{Ht[C.id]=C.toolName;const W=u?.[C.toolName];W?.onInputStart!=null&&await W.onInputStart({toolCallId:C.id,messages:Le,abortSignal:o,experimental_context:K}),G.enqueue({...C,dynamic:W?.type==="dynamic"});break}case"tool-input-end":{delete Ht[C.id],G.enqueue(C);break}case"tool-input-delta":{const W=Ht[C.id],Kt=u?.[W];Kt?.onInputDelta!=null&&await Kt.onInputDelta({inputTextDelta:C.delta,toolCallId:C.id,messages:Le,abortSignal:o,experimental_context:K}),G.enqueue(C);break}case"error":{G.enqueue(C),Me="error";break}case"raw":{Kr&&G.enqueue(C);break}default:{const W=en;throw new Error(`Unknown chunk type: ${W}`)}}},async flush(C){const G=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:()=>G},"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()}C.enqueue({type:"finish-step",finishReason:Me,usage:se,providerMetadata:Zt,response:{...he,headers:zr?.headers}});const Ve=tc(oe,se);await q.promise;const Be=ut.filter(_e=>_e.providerExecuted!==!0),ct=Vt.filter(_e=>_e.providerExecuted!==!0);if(Be.length>0&&ct.length===Be.length&&!await cc({stopConditions:m,steps:R})){N.push(...qn({content:R[R.length-1].content,tools:u}));try{await B({currentStep:J+1,responseMessages:N,usage:Ve})}catch(_e){C.enqueue({type:"error",error:_e}),ne.closeStream()}}else C.enqueue({type:"finish",finishReason:Me,totalUsage:Ve}),ne.closeStream()}})))}await B({currentStep:0,responseMessages:[],usage:{inputTokens:void 0,outputTokens:void 0,totalTokens:void 0}})}}).catch(V=>{ne.addStream(new ReadableStream({start(B){B.enqueue({type:"error",error:V}),B.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 Tc({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 nu;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?mc({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(bc({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}={}){wc({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){pc({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 fc({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 dc({textStream:this.textStream,...e})}};function Pc(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=vc(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 _u({originalMessage:n,message:`Unsupported role: ${s}`})}}return r}it({prefix:"aiobj",size:24});it({prefix:"aiobj",size:24});var kc={};tu(kc,{object:()=>Mc,text:()=>Oc});var Oc=()=>({type:"text",responseFormat:{type:"text"},async parsePartial({text:e}){return{partial:e}},async parseOutput({text:e}){return e}}),Mc=({schema:e})=>{const t=Ot(e);return{type:"object",responseFormat:{type:"json",schema:t.jsonSchema},async parsePartial({text:r}){const n=await _o(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 Ce({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}}},Nc=Object.defineProperty,$c=Object.defineProperties,jc=Object.getOwnPropertyDescriptors,Bn=Object.getOwnPropertySymbols,Dc=Object.prototype.hasOwnProperty,Uc=Object.prototype.propertyIsEnumerable,Hn=(e,t,r)=>t in e?Nc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,j=(e,t)=>{for(var r in t||(t={}))Dc.call(t,r)&&Hn(e,r,t[r]);if(Bn)for(var r of Bn(t))Uc.call(t,r)&&Hn(e,r,t[r]);return e},Tt=(e,t)=>$c(e,jc(t)),bo="vercel.ai.error",qc=Symbol.for(bo),wo,Fc=class To extends Error{constructor({name:t,message:r,cause:n}){super(r),this[wo]=!0,this.name=t,this.cause=n}static isInstance(t){return To.hasMarker(t,bo)}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}};wo=qc;var H=Fc,Io="AI_APICallError",Eo=`vercel.ai.error.${Io}`,Lc=Symbol.for(Eo),So,ce=class extends H{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:Io,message:e,cause:l}),this[So]=!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 H.hasMarker(e,Eo)}};So=Lc;var xo="AI_EmptyResponseBodyError",Ro=`vercel.ai.error.${xo}`,Vc=Symbol.for(Ro),Co,Bc=class extends H{constructor({message:e="Empty response body"}={}){super({name:xo,message:e}),this[Co]=!0}static isInstance(e){return H.hasMarker(e,Ro)}};Co=Vc;function Ao(e){return e==null?"unknown error":typeof e=="string"?e:e instanceof Error?e.message:JSON.stringify(e)}var Po="AI_InvalidArgumentError",ko=`vercel.ai.error.${Po}`,Hc=Symbol.for(ko),Oo,Mo=class extends H{constructor({message:e,cause:t,argument:r}){super({name:Po,message:e,cause:t}),this[Oo]=!0,this.argument=r}static isInstance(e){return H.hasMarker(e,ko)}};Oo=Hc;var No="AI_InvalidPromptError",$o=`vercel.ai.error.${No}`,Zc=Symbol.for($o),jo,Kc=class extends H{constructor({prompt:e,message:t,cause:r}){super({name:No,message:`Invalid prompt: ${t}`,cause:r}),this[jo]=!0,this.prompt=e}static isInstance(e){return H.hasMarker(e,$o)}};jo=Zc;var Do="AI_InvalidResponseDataError",Uo=`vercel.ai.error.${Do}`,Jc=Symbol.for(Uo),qo,Ke=class extends H{constructor({data:e,message:t=`Invalid response data: ${JSON.stringify(e)}.`}){super({name:Do,message:t}),this[qo]=!0,this.data=e}static isInstance(e){return H.hasMarker(e,Uo)}};qo=Jc;var Fo="AI_JSONParseError",Lo=`vercel.ai.error.${Fo}`,Gc=Symbol.for(Lo),Vo,It=class extends H{constructor({text:e,cause:t}){super({name:Fo,message:`JSON parsing failed: Text: ${e}.
|
|
25
|
+
Error message: ${Ao(t)}`,cause:t}),this[Vo]=!0,this.text=e}static isInstance(e){return H.hasMarker(e,Lo)}};Vo=Gc;var Bo="AI_LoadAPIKeyError",Ho=`vercel.ai.error.${Bo}`,zc=Symbol.for(Ho),Zo,mt=class extends H{constructor({message:e}){super({name:Bo,message:e}),this[Zo]=!0}static isInstance(e){return H.hasMarker(e,Ho)}};Zo=zc;var Ko="AI_NoContentGeneratedError",Jo=`vercel.ai.error.${Ko}`,Wc=Symbol.for(Jo),Go,zo=class extends H{constructor({message:e="No content generated."}={}){super({name:Ko,message:e}),this[Go]=!0}static isInstance(e){return H.hasMarker(e,Jo)}};Go=Wc;var Wo="AI_TypeValidationError",Yo=`vercel.ai.error.${Wo}`,Yc=Symbol.for(Yo),Xo,Xc=class _r extends H{constructor({value:t,cause:r}){super({name:Wo,message:`Type validation failed: Value: ${JSON.stringify(t)}.
|
|
26
|
+
Error message: ${Ao(r)}`,cause:r}),this[Xo]=!0,this.value=t}static isInstance(t){return H.hasMarker(t,Yo)}static wrap({value:t,cause:r}){return _r.isInstance(r)&&r.value===t?r:new _r({value:t,cause:r})}};Xo=Yc;var rt=Xc,Qo="AI_UnsupportedFunctionalityError",es=`vercel.ai.error.${Qo}`,Qc=Symbol.for(es),ts,Ie=class extends H{constructor({functionality:e,message:t=`'${e}' functionality not supported.`}){super({name:Qo,message:t}),this[ts]=!0,this.functionality=e}static isInstance(e){return H.hasMarker(e,es)}};ts=Qc;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 ed(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]=td(`${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 td(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 rd=class extends TransformStream{constructor({onError:e,onRetry:t,onComment:r}={}){let n;super({start(s){n=ed({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 nd=({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 Mo({argument:"separator",message:`The separator "${n}" must not be part of the alphabet "${r}".`});return()=>`${e}${n}${s()}`},ue=nd();function br(e){return(e instanceof Error||e instanceof DOMException)&&(e.name==="AbortError"||e.name==="ResponseAborted"||e.name==="TimeoutError")}var ad=["fetch failed","failed to fetch"];function od({error:e,url:t,requestBodyValues:r}){if(br(e))return e;if(e instanceof TypeError&&ad.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 sd(e){return Object.fromEntries(Object.entries(e).filter(([t,r])=>r!=null))}function id({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 ld=/"__proto__"\s*:/,ud=/"constructor"\s*:/;function cd(e){const t=JSON.parse(e);return t===null||typeof t!="object"||ld.test(e)===!1&&ud.test(e)===!1?t:dd(t)}function dd(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 cd(e)}finally{Error.stackTraceLimit=t}}var wr=Symbol.for("vercel.ai.validator");function pd(e){return{[wr]:!0,validate:e}}function fd(e){return typeof e=="object"&&e!==null&&wr in e&&e[wr]===!0&&"validate"in e}function md(e){return fd(e)?e:hd(e)}function hd(e){return pd(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 gd({value:e,schema:t}){const r=await rs({value:e,schema:t});if(!r.success)throw rt.wrap({value:e,cause:r.error});return r.value}async function rs({value:e,schema:t}){const r=md(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 vd({text:e,schema:t}){try{const r=Nr(e);return t==null?r:gd({value:r,schema:t})}catch(r){throw It.isInstance(r)||rt.isInstance(r)?r:new It({text:e,cause:r})}}async function ns({text:e,schema:t}){try{const r=Nr(e);return t==null?{success:!0,value:r,rawValue:r}:await rs({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 yd({stream:e,schema:t}){return e.pipeThrough(new TextDecoderStream).pipeThrough(new rd).pipeThrough(new TransformStream({async transform({data:r},n){r!=="[DONE]"&&n.enqueue(await ns({text:r,schema:t}))}}))}var _d=()=>globalThis.fetch,at=async({url:e,headers:t,body:r,failedResponseHandler:n,successfulResponseHandler:s,abortSignal:o,fetch:l})=>bd({url:e,headers:j({"Content-Type":"application/json"},t),body:{content:JSON.stringify(r),values:r},failedResponseHandler:n,successfulResponseHandler:s,abortSignal:o,fetch:l}),bd=async({url:e,headers:t={},body:r,successfulResponseHandler:n,failedResponseHandler:s,abortSignal:o,fetch:l=_d()})=>{try{const i=await l(e,{method:"POST",headers:sd(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 od({error:i,url:e,requestBodyValues:r.values})}},wd=({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 vd({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)})}}},as=e=>async({response:t})=>{const r=Nt(t);if(t.body==null)throw new Bc({});return{responseHeaders:r,value:yd({stream:t.body,schema:e})}},$r=e=>async({response:t,url:r,requestBodyValues:n})=>{const s=await t.text(),o=await ns({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:Td}=globalThis;function Id(e){let t="";for(let r=0;r<e.length;r++)t+=String.fromCodePoint(e[r]);return Td(t)}function Ed(e){return e?.replace(/\/$/,"")}function ir(e){return e!=null}var os=(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))(os||{}),jr=a.object({id:a.string().nullish(),format:a._enum$1(os).nullish(),index:a.number().optional()}).loose(),Sd=a.object({type:a.literal("reasoning.summary"),summary:a.string()}).extend(jr.shape),xd=a.object({type:a.literal("reasoning.encrypted"),data:a.string()}).extend(jr.shape),Rd=a.object({type:a.literal("reasoning.text"),text:a.string().nullish(),signature:a.string().nullish()}).extend(jr.shape),Dr=a.union([Sd,xd,Rd]),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=wd({errorSchema:$t,errorToMessage:e=>e.error.message}),ss=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(ss).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(ss).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=Id(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 Jn(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 Ad(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 Pd(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:Ad(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 _=kd(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 kd(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 Od(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 Mo({argument:"toolChoice",message:`Invalid tool choice type: ${JSON.stringify(e)}`})}}var Md=a.object({type:a.literal("image_url"),image_url:a.object({url:a.string()}).passthrough()}).passthrough(),Nd=a.union([Md,a.unknown().transform(()=>null)]),is=a.array(Nd).transform(e=>e.filter(t=>!!t)),ls=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(),$d=a.union([ls.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:is.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()})]),jd=a.union([ls.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:is.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]),Dd=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:Pd(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?Od(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($d),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 zo({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:Jn(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:as(jd),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 A=(S=O.usage.cost_details)==null?void 0:S.upstream_inference_cost;A!=null&&(d.costDetails={upstreamInferenceCost:A})}const R=O.choices[0];if(R?.finish_reason!=null&&(c=Et(R.finish_reason)),R?.delta==null)return;const Z=R.delta,ae=(A,k)=>{f||(v=_||ue(),b.enqueue({providerMetadata:k,type:"reasoning-start",id:v}),f=!0),b.enqueue({providerMetadata:k,type:"reasoning-delta",delta:A,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 A={openrouter:{reasoning_details:Z.reasoning_details}};for(const k of Z.reasoning_details)switch(k.type){case"reasoning.text":{k.text&&ae(k.text,A);break}case"reasoning.encrypted":{k.data&&ae("[REDACTED]",A);break}case"reasoning.summary":{k.summary&&ae(k.summary,A);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 A of Z.annotations)A.type==="url_citation"&&b.enqueue({type:"source",sourceType:"url",id:A.url_citation.url,url:A.url_citation.url,title:A.url_citation.title,providerMetadata:{openrouter:{content:A.url_citation.content||""}}});if(Z.tool_calls!=null)for(const A of Z.tool_calls){const k=(I=A.index)!=null?I:i.length-1;if(i[k]==null){if(A.type!=="function")throw new Ke({data:A,message:"Expected 'function' type."});if(A.id==null)throw new Ke({data:A,message:"Expected 'id' to be a string."});if(((x=A.function)==null?void 0:x.name)==null)throw new Ke({data:A,message:"Expected 'function.name' to be a string."});i[k]={id:A.id,type:"function",function:{name:A.function.name,arguments:(P=A.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:A},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=A.function)==null?void 0:de.arguments)!=null&&($.function.arguments+=(M=(q=A.function)==null?void 0:q.arguments)!=null?M:""),b.enqueue({type:"tool-input-delta",id:$.id,delta:(pe=A.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 A of Z.images)b.enqueue({type:"file",mediaType:Jn(A.image_url.url,"image/jpeg"),data:Ir(A.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 Ud({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 Kc({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 Gn=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]),qd=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}=Ud({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(Gn),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 zo({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:as(Gn),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}}}},Fd=a.object({prompt_tokens:a.number(),total_tokens:a.number(),cost:a.number().optional()}),Ld=a.object({object:a.literal("embedding"),embedding:a.array(a.number()),index:a.number().optional()}),Vd=a.object({id:a.string().optional(),object:a.literal("list"),data:a.array(Ld),model:a.string(),usage:Fd.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(Vd),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 Hd(e){return Object.fromEntries(Object.entries(e).filter(([,t])=>t!==null))}function Zd(e,...t){const r=Hd(e??{}),s=[r["user-agent"]||"",...t].filter(Boolean).join(" ");return Tt(j({},r),{"user-agent":s})}var Kd="1.4.1";function us(e={}){var t,r,n;const s=(r=Ed((t=e.baseURL)!=null?t:e.baseUrl))!=null?r:"https://openrouter.ai/api/v1",o=(n=e.compatibility)!=null?n:"compatible",l=()=>Zd(j(j({Authorization:`Bearer ${id({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/${Kd}`),i=(h,f={})=>new Dd(h,f,{provider:"openrouter.chat",url:({path:m})=>`${s}${m}`,headers:l,compatibility:o,fetch:e.fetch,extraBody:e.extraBody}),c=(h,f={})=>new qd(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}us({compatibility:"strict"});let Fr;Fr=globalThis.crypto;async function Jd(e){return(await Fr).getRandomValues(new Uint8Array(e))}async function Gd(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 zd(e){return await Gd(e)}async function Wd(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 Yd(e){if(e||(e=43),e<43||e>128)throw`Expected a length between 43 and 128. Received ${e}.`;const t=await zd(e),r=await Wd(t);return{code_verifier:t,code_challenge:r}}var Xd="AI_MCPClientError",cs=`vercel.ai.error.${Xd}`,Qd=Symbol.for(cs),zn,Wn,D=class extends(Wn=a.AISDKError,zn=Qd,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,cs)}},Ue="2025-06-18",ep=[Ue,"2025-03-26","2024-11-05"],tp=a.looseObject({name:a.string(),version:a.string()}),jt=a.looseObject({_meta:a.optional(a.object({}).loose())}),be=jt,ds=a.object({method:a.string(),params:a.optional(jt)}),ps=a.object({applyDefaults:a.optional(a.boolean())}).loose(),rp=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(ps)});a.object({elicitation:a.optional(ps)}).loose();var np=be.extend({protocolVersion:a.string(),capabilities:rp,serverInfo:tp,instructions:a.optional(a.string())}),Lr=be.extend({nextCursor:a.optional(a.string())}),ap=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(),op=Lr.extend({tools:a.array(ap)}),fs=a.object({type:a.literal("text"),text:a.string()}).loose(),ms=a.object({type:a.literal("image"),data:a.base64(),mimeType:a.string()}).loose(),sp=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(),ip=Lr.extend({resources:a.array(sp)}),hs=a.object({uri:a.string(),name:a.optional(a.string()),title:a.optional(a.string()),mimeType:a.optional(a.string())}).loose(),gs=hs.extend({text:a.string()}),vs=hs.extend({blob:a.base64()}),ys=a.object({type:a.literal("resource"),resource:a.union([gs,vs])}).loose(),lp=be.extend({content:a.array(a.union([fs,ms,ys])),isError:a.boolean().default(!1).optional()}).or(be.extend({toolResult:a.unknown()})),up=a.object({uriTemplate:a.string(),name:a.string(),title:a.optional(a.string()),description:a.optional(a.string()),mimeType:a.optional(a.string())}).loose(),cp=be.extend({resourceTemplates:a.array(up)}),dp=be.extend({contents:a.array(a.union([gs,vs]))}),pp=a.object({name:a.string(),description:a.optional(a.string()),required:a.optional(a.boolean())}).loose(),fp=a.object({name:a.string(),title:a.optional(a.string()),description:a.optional(a.string()),arguments:a.optional(a.array(pp))}).loose(),mp=Lr.extend({prompts:a.array(fp)}),hp=a.object({role:a.union([a.literal("user"),a.literal("assistant")]),content:a.union([fs,ms,ys])}).loose(),gp=be.extend({description:a.optional(a.string()),messages:a.array(hp)}),vp=jt.extend({message:a.string(),requestedSchema:a.unknown()}),Yn=ds.extend({method:a.literal("elicitation/create"),params:vp}),yp=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",_p=a.object({jsonrpc:a.literal(Dt),id:a.union([a.string(),a.number().int()])}).merge(ds).strict(),bp=a.object({jsonrpc:a.literal(Dt),id:a.union([a.string(),a.number().int()]),result:be}).strict(),wp=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(),Tp=a.object({jsonrpc:a.literal(Dt)}).merge(a.object({method:a.string(),params:a.optional(jt)})).strict(),Je=a.union([_p,Tp,bp,wp]),_s=typeof __PACKAGE_VERSION__<"u"?__PACKAGE_VERSION__:"0.0.0-test",bs=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"}),Ip=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(),ws=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(),Ep=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(),Sp=Ep.merge(ws.pick({code_challenge_methods_supported:!0})),xp=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(),Rp=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()}),Ap=Rp.merge(xp),Pp="AI_MCPClientOAuthError",Ts=`vercel.ai.error.${Pp}`,kp=Symbol.for(Ts),Xn,Qn,lt=class extends(Qn=a.AISDKError,Xn=kp,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,Ts)}},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 Op={[je.errorCode]:je,[St.errorCode]:St,[xt.errorCode]:xt,[Rt.errorCode]:Rt};function Mp(e){const t=typeof e=="string"?new URL(e):new URL(e.href);return t.hash="",t}function Np({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 Ct=class extends Error{constructor(e="Unauthorized"){super(e),this.name="UnauthorizedError"}};function At(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 $p(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 jp(e,t){return!e||e.status>=400&&e.status<500&&t!=="/"}async function Dp(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=$p(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&&jp(u,l.pathname)){const d=new URL(`/.well-known/${t}`,l);u=await ea(d,i,r)}return u}async function Up(e,t,r=fetch){const n=await Dp(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 Ip.parse(await n.json())}function qp(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 Fp(e,{fetchFn:t=fetch,protocolVersion:r=Ue}={}){var n;const s={"MCP-Protocol-Version":r},o=qp(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 ws.parse(await c.json());{const u=Sp.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 Lp(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 Yd(),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 Is(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 Es(e,t,r,n){const{client_id:s,client_secret:o}=t;switch(e){case"client_secret_basic":Vp(s,o,r);return;case"client_secret_post":Bp(s,o,n);return;case"none":Hp(s,n);return;default:throw new Error(`Unsupported client authentication method: ${e}`)}}function Vp(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 Hp(e,t){t.set("client_id",e)}async function Br(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=Op[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 Zp(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:[],_=Is(r,v);Es(_,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 Br(m);return bs.parse(await m.json())}async function Kp(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=Is(r,f);Es(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 Br(h);return bs.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 Br(o);return Ap.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 Gp(e,t,r){const n=Mp(e);if(t.validateResourceURL)return await t.validateResourceURL(n,r?.resource);if(r){if(!Np({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 Up(t,{resourceMetadataUrl:s},o),l.authorization_servers&&l.authorization_servers.length>0&&(i=l.authorization_servers[0])}catch{}i||(i=t);const c=await Gp(t,e,l),u=await Fp(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 Zp(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 Kp(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 Lp(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 zp=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/${_s}`,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=At(d);try{if(await Pt(this.authProvider,{serverUrl:this.url,resourceMetadataUrl:this.resourceMetadataUrl})!=="AUTHORIZED"){const v=new Ct;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=Je.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=At(p);try{if(await Pt(this.authProvider,{serverUrl:this.url,resourceMetadataUrl:this.resourceMetadataUrl})!=="AUTHORIZED"){const f=new Ct;(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()}},Wp=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/${_s}`,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=At(h);try{if(await Pt(this.authProvider,{serverUrl:this.url,resourceMetadataUrl:this.resourceMetadataUrl})!=="AUTHORIZED")throw new Ct}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=>Je.parse(w)):[Je.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=Je.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=At(u);try{if(await Pt(this.authProvider,{serverUrl:this.url,resourceMetadataUrl:this.resourceMetadataUrl})!=="AUTHORIZED"){const v=new Ct;(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=Je.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 Yp(e){switch(e.type){case"sse":return new zp(e);case"http":return new Wp(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 Xp(e){return"start"in e&&typeof e.start=="function"&&"send"in e&&typeof e.send=="function"&&"close"in e&&typeof e.close=="function"}var Qp="1.0.0";async function ef(e){const t=new tf(e);return await t.init(),t}var tf=class{constructor({transport:e,name:t="ai-sdk-mcp-client",version:r=Qp,onUncaughtError:n,capabilities:s}){this.requestMessageId=0,this.responseHandlers=new Map,this.serverCapabilities={},this.isClosed=!0,this.onUncaughtError=n,this.clientCapabilities=s??{},Xp(e)?this.transport=e:this.transport=Yp(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:np});if(e===void 0)throw new D({message:"Server sent invalid initialize result"});if(!ep.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:op,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:lp,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:ip,options:t})}catch(r){throw r}}async readResourceInternal({uri:e,options:t}){try{return this.request({request:{method:"resources/read",params:{uri:e}},resultSchema:dp,options:t})}catch(r){throw r}}async listResourceTemplatesInternal({options:e}={}){try{return this.request({request:{method:"resources/templates/list"},resultSchema:cp,options:e})}catch(t){throw t}}async listPromptsInternal({params:e,options:t}={}){try{return this.request({request:{method:"prompts/list",params:e},resultSchema:mp,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:gp,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=yp.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 rf="https://app.getgram.ai",nf=()=>({chat:of}),af=a.object({mcp:a.union([a.string()]),environment:a.record(a.string(),a.unknown()).optional(),projectSlug:a.string(),model:a._enum$1(a.MODELS)}),of=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=af.parse(o),c=await(await ef({transport:{type:"http",url:l.mcp}})).tools(),u=us({baseURL:rf,apiKey:"must be set",headers:{"Gram-Project":l.projectSlug,"Gram-Key":process.env.GRAM_API_KEY??""}}),d=Rc({model:u.chat(l.model),messages:Pc(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"}))}};exports.createElementsServerHandlers=nf;
|
package/package.json
CHANGED
|
@@ -2,16 +2,18 @@
|
|
|
2
2
|
"name": "@gram-ai/elements",
|
|
3
3
|
"description": "Gram Elements is a library of UI primitives for building chat-like experiences for MCP Servers.",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "1.2.
|
|
5
|
+
"version": "1.2.6",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"exports": {
|
|
8
8
|
".": {
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
9
10
|
"import": "./dist/elements.js",
|
|
10
|
-
"
|
|
11
|
+
"require": "./dist/elements.cjs"
|
|
11
12
|
},
|
|
12
13
|
"./server": {
|
|
14
|
+
"types": "./dist/server.d.ts",
|
|
13
15
|
"import": "./dist/server.js",
|
|
14
|
-
"
|
|
16
|
+
"require": "./dist/server.cjs"
|
|
15
17
|
},
|
|
16
18
|
"./elements.css": "./dist/elements.css"
|
|
17
19
|
},
|