@gram-ai/elements 1.13.10 → 1.15.0

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