blink 0.1.59 → 0.1.61
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/api/index.cjs +1 -1
- package/dist/api/index.js +1 -1
- package/dist/cli/{dev-_R5nfhjp.js → dev-CxvqgMU6.js} +9 -3
- package/dist/cli/index.js +2 -2
- package/dist/http/index.cjs +1 -1
- package/dist/http/index.d.cts +2 -2
- package/dist/http/index.d.ts +2 -2
- package/dist/http/index.js +1 -1
- package/dist/{http-C-hX8Pv2.cjs → http-B-lmj4yh.cjs} +1 -1
- package/dist/{http-B_3J2CH3.js → http-blV4Uqlw.js} +1 -1
- package/dist/{index-BgJpZoBy.d.cts → index-CPab5qaJ.d.cts} +8 -4
- package/dist/{index-DPvs3m4c.d.ts → index-Cb6Pp96M.d.ts} +8 -4
- package/dist/test.d.cts +1 -1
- package/dist/test.d.ts +1 -1
- package/package.json +1 -1
package/dist/api/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../chunk-hhQzssFb.cjs`),t=require(`../http-C-hX8Pv2.cjs`);let n=require(`util`);n=e.__toESM(n);let r=require(`zod/v4`);r=e.__toESM(r),require(`zod/v3`);let i=require(`http`);i=e.__toESM(i);let a=require(`ai`);a=e.__toESM(a);function o(...e){return e.reduce((e,t)=>({...e,...t??{}}),{})}function s(e){return Object.fromEntries([...e.headers])}function c(e=globalThis){var t,n,r;return e.window?`runtime/browser`:(t=e.navigator)?.userAgent?`runtime/${e.navigator.userAgent.toLowerCase()}`:(r=(n=e.process)?.versions)?.node?`runtime/node.js/${e.process.version.substring(0)}`:e.EdgeRuntime?`runtime/vercel-edge`:`runtime/unknown`}function l(e){return Object.fromEntries(Object.entries(e).filter(([e,t])=>t!=null))}function u(e,...t){let n=l(e??{}),r=new Headers(n),i=r.get(`user-agent`)||``;return r.set(`user-agent`,[i,...t].filter(Boolean).join(` `)),Object.fromEntries(r)}var d=({prefix:e,size:n=16,alphabet:r=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz`,separator:i=`-`}={})=>{let a=()=>{let e=r.length,t=Array(n);for(let i=0;i<n;i++)t[i]=r[Math.random()*e|0];return t.join(``)};if(e==null)return a;if(r.includes(i))throw new t.InvalidArgumentError({argument:`separator`,message:`The separator "${i}" must not be part of the alphabet "${r}".`});return()=>`${e}${i}${a()}`},f=d();function p(e){return(e instanceof Error||e instanceof DOMException)&&(e.name===`AbortError`||e.name===`ResponseAborted`||e.name===`TimeoutError`)}var m=[`fetch failed`,`failed to fetch`];function h({error:e,url:n,requestBodyValues:r}){if(p(e))return e;if(e instanceof TypeError&&m.includes(e.message.toLowerCase())){let i=e.cause;if(i!=null)return new t.APICallError({message:`Cannot connect to API: ${i.message}`,cause:i,url:n,requestBodyValues:r,isRetryable:!0})}return e}var g=`3.0.10`,_=/"__proto__"\s*:/,v=/"constructor"\s*:/;function y(e){let t=JSON.parse(e);return typeof t!=`object`||!t||_.test(e)===!1&&v.test(e)===!1?t:b(t)}function b(e){let t=[e];for(;t.length;){let e=t;t=[];for(let n of e){if(Object.prototype.hasOwnProperty.call(n,`__proto__`)||Object.prototype.hasOwnProperty.call(n,`constructor`)&&Object.prototype.hasOwnProperty.call(n.constructor,`prototype`))throw SyntaxError(`Object contains forbidden prototype property`);for(let e in n){let r=n[e];r&&typeof r==`object`&&t.push(r)}}}return e}function x(e){let{stackTraceLimit:t}=Error;Error.stackTraceLimit=0;try{return y(e)}finally{Error.stackTraceLimit=t}}var S=Symbol.for(`vercel.ai.validator`);function C(e){return{[S]:!0,validate:e}}function w(e){return typeof e==`object`&&!!e&&S in e&&e[S]===!0&&`validate`in e}function T(e){return w(e)?e:E(e)}function E(e){return C(async n=>{let r=await e[`~standard`].validate(n);return r.issues==null?{success:!0,value:r.value}:{success:!1,error:new t.TypeValidationError({value:n,cause:r.issues})}})}async function D({value:e,schema:n}){let r=await O({value:e,schema:n});if(!r.success)throw t.TypeValidationError.wrap({value:e,cause:r.error});return r.value}async function O({value:e,schema:n}){let r=T(n);try{if(r.validate==null)return{success:!0,value:e,rawValue:e};let n=await r.validate(e);return n.success?{success:!0,value:n.value,rawValue:e}:{success:!1,error:t.TypeValidationError.wrap({value:e,cause:n.error}),rawValue:e}}catch(n){return{success:!1,error:t.TypeValidationError.wrap({value:e,cause:n}),rawValue:e}}}async function k({text:e,schema:n}){try{let t=x(e);return n==null?t:D({value:t,schema:n})}catch(n){throw t.JSONParseError.isInstance(n)||t.TypeValidationError.isInstance(n)?n:new t.JSONParseError({text:e,cause:n})}}async function A({text:e,schema:n}){try{let t=x(e);return n==null?{success:!0,value:t,rawValue:t}:await O({value:t,schema:n})}catch(n){return{success:!1,error:t.JSONParseError.isInstance(n)?n:new t.JSONParseError({text:e,cause:n}),rawValue:void 0}}}function j(e){try{return x(e),!0}catch{return!1}}function ee({stream:e,schema:n}){return e.pipeThrough(new TextDecoderStream).pipeThrough(new t.EventSourceParserStream).pipeThrough(new TransformStream({async transform({data:e},t){e!==`[DONE]`&&t.enqueue(await A({text:e,schema:n}))}}))}async function M({provider:e,providerOptions:n,schema:r}){if(n?.[e]==null)return;let i=await O({value:n[e],schema:r});if(!i.success)throw new t.InvalidArgumentError({argument:`providerOptions`,message:`invalid ${e} provider options`,cause:i.error});return i.value}var N=()=>globalThis.fetch,P=async({url:e,headers:t,body:n,failedResponseHandler:r,successfulResponseHandler:i,abortSignal:a,fetch:o})=>F({url:e,headers:{"Content-Type":`application/json`,...t},body:{content:JSON.stringify(n),values:n},failedResponseHandler:r,successfulResponseHandler:i,abortSignal:a,fetch:o}),F=async({url:e,headers:n={},body:r,successfulResponseHandler:i,failedResponseHandler:a,abortSignal:o,fetch:l=N()})=>{try{let d=await l(e,{method:`POST`,headers:u(n,`ai-sdk/provider-utils/${g}`,c()),body:r.content,signal:o}),f=s(d);if(!d.ok){let n;try{n=await a({response:d,url:e,requestBodyValues:r.values})}catch(n){throw p(n)||t.APICallError.isInstance(n)?n:new t.APICallError({message:`Failed to process error response`,cause:n,statusCode:d.status,url:e,responseHeaders:f,requestBodyValues:r.values})}throw n.value}try{return await i({response:d,url:e,requestBodyValues:r.values})}catch(n){throw n instanceof Error&&(p(n)||t.APICallError.isInstance(n))?n:new t.APICallError({message:`Failed to process successful response`,cause:n,statusCode:d.status,url:e,responseHeaders:f,requestBodyValues:r.values})}}catch(t){throw h({error:t,url:e,requestBodyValues:r.values})}},I=({errorSchema:e,errorToMessage:n,isRetryable:r})=>async({response:i,url:a,requestBodyValues:o})=>{let c=await i.text(),l=s(i);if(c.trim()===``)return{responseHeaders:l,value:new t.APICallError({message:i.statusText,url:a,requestBodyValues:o,statusCode:i.status,responseHeaders:l,responseBody:c,isRetryable:r?.(i)})};try{let s=await k({text:c,schema:e});return{responseHeaders:l,value:new t.APICallError({message:n(s),url:a,requestBodyValues:o,statusCode:i.status,responseHeaders:l,responseBody:c,data:s,isRetryable:r?.(i,s)})}}catch{return{responseHeaders:l,value:new t.APICallError({message:i.statusText,url:a,requestBodyValues:o,statusCode:i.status,responseHeaders:l,responseBody:c,isRetryable:r?.(i)})}}},te=e=>async({response:n})=>{let r=s(n);if(n.body==null)throw new t.EmptyResponseBodyError({});return{responseHeaders:r,value:ee({stream:n.body,schema:e})}},L=e=>async({response:n,url:r,requestBodyValues:i})=>{let a=await n.text(),o=await A({text:a,schema:e}),c=s(n);if(!o.success)throw new t.APICallError({message:`Invalid JSON response`,cause:o.error,statusCode:n.status,responseHeaders:c,responseBody:a,url:r,requestBodyValues:i});return{responseHeaders:c,value:o.value,rawValue:o.rawValue}},ne=Symbol(`Let zodToJsonSchema decide on which parser to use`),re=Symbol.for(`vercel.ai.schema`),{btoa:ie,atob:ae}=globalThis;function oe(e){let t=``;for(let n=0;n<e.length;n++)t+=String.fromCodePoint(e[n]);return ie(t)}function se(e){return e instanceof Uint8Array?oe(e):e}function ce(e){return e?.replace(/\/$/,``)}function R(e){var t,n;return(n=(t=e?.providerOptions)?.openaiCompatible)??{}}function le(e){let n=[];for(let{role:r,content:i,...a}of e){let e=R({...a});switch(r){case`system`:n.push({role:`system`,content:i,...e});break;case`user`:if(i.length===1&&i[0].type===`text`){n.push({role:`user`,content:i[0].text,...R(i[0])});break}n.push({role:`user`,content:i.map(e=>{let n=R(e);switch(e.type){case`text`:return{type:`text`,text:e.text,...n};case`file`:if(e.mediaType.startsWith(`image/`)){let t=e.mediaType===`image/*`?`image/jpeg`:e.mediaType;return{type:`image_url`,image_url:{url:e.data instanceof URL?e.data.toString():`data:${t};base64,${se(e.data)}`},...n}}else throw new t.UnsupportedFunctionalityError({functionality:`file part media type ${e.mediaType}`})}}),...e});break;case`assistant`:{let t=``,r=[];for(let e of i){let n=R(e);switch(e.type){case`text`:t+=e.text;break;case`tool-call`:r.push({id:e.toolCallId,type:`function`,function:{name:e.toolName,arguments:JSON.stringify(e.input)},...n});break}}n.push({role:`assistant`,content:t,tool_calls:r.length>0?r:void 0,...e});break}case`tool`:for(let e of i){let t=e.output,r;switch(t.type){case`text`:case`error-text`:r=t.value;break;case`content`:case`json`:case`error-json`:r=JSON.stringify(t.value);break}let i=R(e);n.push({role:`tool`,tool_call_id:e.toolCallId,content:r,...i})}break;default:{let e=r;throw Error(`Unsupported role: ${e}`)}}}return n}function ue({id:e,model:t,created:n}){return{id:e??void 0,modelId:t??void 0,timestamp:n==null?void 0:new Date(n*1e3)}}function de(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`}}var fe=r.z.object({user:r.z.string().optional(),reasoningEffort:r.z.string().optional()}),pe=r.z.object({error:r.z.object({message:r.z.string(),type:r.z.string().nullish(),param:r.z.any().nullish(),code:r.z.union([r.z.string(),r.z.number()]).nullish()})}),z={errorSchema:pe,errorToMessage:e=>e.error.message};function me({tools:e,toolChoice:n}){e=e?.length?e:void 0;let r=[];if(e==null)return{tools:void 0,toolChoice:void 0,toolWarnings:r};let i=[];for(let t of e)t.type===`provider-defined`?r.push({type:`unsupported-tool`,tool:t}):i.push({type:`function`,function:{name:t.name,description:t.description,parameters:t.inputSchema}});if(n==null)return{tools:i,toolChoice:void 0,toolWarnings:r};let a=n.type;switch(a){case`auto`:case`none`:case`required`:return{tools:i,toolChoice:a,toolWarnings:r};case`tool`:return{tools:i,toolChoice:{type:`function`,function:{name:n.toolName}},toolWarnings:r};default:{let e=a;throw new t.UnsupportedFunctionalityError({functionality:`tool choice type: ${e}`})}}}var B=class{constructor(e,t){this.specificationVersion=`v2`;var n,r;this.modelId=e,this.config=t;let i=(n=t.errorStructure)??z;this.chunkSchema=he(i.errorSchema),this.failedResponseHandler=I(i),this.supportsStructuredOutputs=(r=t.supportsStructuredOutputs)??!1}get provider(){return this.config.provider}get providerOptionsName(){return this.config.provider.split(`.`)[0].trim()}get supportedUrls(){var e,t,n;return(n=(t=(e=this.config).supportedUrls)?.call(e))??{}}async getArgs({prompt:e,maxOutputTokens:t,temperature:n,topP:r,topK:i,frequencyPenalty:a,presencePenalty:o,providerOptions:s,stopSequences:c,responseFormat:l,seed:u,toolChoice:d,tools:f}){var p,m,h,g;let _=[],v=Object.assign((p=await M({provider:`openai-compatible`,providerOptions:s,schema:fe}))??{},(m=await M({provider:this.providerOptionsName,providerOptions:s,schema:fe}))??{});i!=null&&_.push({type:`unsupported-setting`,setting:`topK`}),l?.type===`json`&&l.schema!=null&&!this.supportsStructuredOutputs&&_.push({type:`unsupported-setting`,setting:`responseFormat`,details:`JSON response format schema is only supported with structuredOutputs`});let{tools:y,toolChoice:b,toolWarnings:x}=me({tools:f,toolChoice:d});return{args:{model:this.modelId,user:v.user,max_tokens:t,temperature:n,top_p:r,frequency_penalty:a,presence_penalty:o,response_format:l?.type===`json`?this.supportsStructuredOutputs===!0&&l.schema!=null?{type:`json_schema`,json_schema:{schema:l.schema,name:(h=l.name)??`response`,description:l.description}}:{type:`json_object`}:void 0,stop:c,seed:u,...Object.fromEntries(Object.entries((g=s?.[this.providerOptionsName])??{}).filter(([e])=>!Object.keys(fe.shape).includes(e))),reasoning_effort:v.reasoningEffort,messages:le(e),tools:y,tool_choice:b},warnings:[..._,...x]}}async doGenerate(e){var t,n,r,i,a,s,c,l,u,d,p,m,h,g,_,v,y;let{args:b,warnings:x}=await this.getArgs({...e}),S=JSON.stringify(b),{responseHeaders:C,value:w,rawValue:T}=await P({url:this.config.url({path:`/chat/completions`,modelId:this.modelId}),headers:o(this.config.headers(),e.headers),body:b,failedResponseHandler:this.failedResponseHandler,successfulResponseHandler:L(H),abortSignal:e.abortSignal,fetch:this.config.fetch}),E=w.choices[0],D=[],O=E.message.content;O!=null&&O.length>0&&D.push({type:`text`,text:O});let k=(t=E.message.reasoning_content)??E.message.reasoning;if(k!=null&&k.length>0&&D.push({type:`reasoning`,text:k}),E.message.tool_calls!=null)for(let e of E.message.tool_calls)D.push({type:`tool-call`,toolCallId:(n=e.id)??f(),toolName:e.function.name,input:e.function.arguments});let A={[this.providerOptionsName]:{},...await(i=(r=this.config.metadataExtractor)?.extractMetadata)?.call(r,{parsedBody:T})},j=(a=w.usage)?.completion_tokens_details;return j?.accepted_prediction_tokens!=null&&(A[this.providerOptionsName].acceptedPredictionTokens=j?.accepted_prediction_tokens),j?.rejected_prediction_tokens!=null&&(A[this.providerOptionsName].rejectedPredictionTokens=j?.rejected_prediction_tokens),{content:D,finishReason:de(E.finish_reason),usage:{inputTokens:(c=(s=w.usage)?.prompt_tokens)??void 0,outputTokens:(u=(l=w.usage)?.completion_tokens)??void 0,totalTokens:(p=(d=w.usage)?.total_tokens)??void 0,reasoningTokens:(g=(h=(m=w.usage)?.completion_tokens_details)?.reasoning_tokens)??void 0,cachedInputTokens:(y=(v=(_=w.usage)?.prompt_tokens_details)?.cached_tokens)??void 0},providerMetadata:A,request:{body:S},response:{...ue(w),headers:C,body:T},warnings:x}}async doStream(e){var n;let{args:r,warnings:i}=await this.getArgs({...e}),a={...r,stream:!0,stream_options:this.config.includeUsage?{include_usage:!0}:void 0},s=(n=this.config.metadataExtractor)?.createStreamExtractor(),{responseHeaders:c,value:l}=await P({url:this.config.url({path:`/chat/completions`,modelId:this.modelId}),headers:o(this.config.headers(),e.headers),body:a,failedResponseHandler:this.failedResponseHandler,successfulResponseHandler:te(this.chunkSchema),abortSignal:e.abortSignal,fetch:this.config.fetch}),u=[],d=`unknown`,p={completionTokens:void 0,completionTokensDetails:{reasoningTokens:void 0,acceptedPredictionTokens:void 0,rejectedPredictionTokens:void 0},promptTokens:void 0,promptTokensDetails:{cachedTokens:void 0},totalTokens:void 0},m=!0,h=this.providerOptionsName,g=!1,_=!1;return{stream:l.pipeThrough(new TransformStream({start(e){e.enqueue({type:`stream-start`,warnings:i})},transform(n,r){var i,a,o,c,l,h,v,y,b,x,S,C,w;if(e.includeRawChunks&&r.enqueue({type:`raw`,rawValue:n.rawValue}),!n.success){d=`error`,r.enqueue({type:`error`,error:n.error});return}let T=n.value;if(s?.processChunk(n.rawValue),`error`in T){d=`error`,r.enqueue({type:`error`,error:T.error.message});return}if(m&&(m=!1,r.enqueue({type:`response-metadata`,...ue(T)})),T.usage!=null){let{prompt_tokens:e,completion_tokens:t,total_tokens:n,prompt_tokens_details:r,completion_tokens_details:i}=T.usage;p.promptTokens=e??void 0,p.completionTokens=t??void 0,p.totalTokens=n??void 0,i?.reasoning_tokens!=null&&(p.completionTokensDetails.reasoningTokens=i?.reasoning_tokens),i?.accepted_prediction_tokens!=null&&(p.completionTokensDetails.acceptedPredictionTokens=i?.accepted_prediction_tokens),i?.rejected_prediction_tokens!=null&&(p.completionTokensDetails.rejectedPredictionTokens=i?.rejected_prediction_tokens),r?.cached_tokens!=null&&(p.promptTokensDetails.cachedTokens=r?.cached_tokens)}let E=T.choices[0];if(E?.finish_reason!=null&&(d=de(E.finish_reason)),E?.delta==null)return;let D=E.delta,O=(i=D.reasoning_content)??D.reasoning;if(O&&(g||=(r.enqueue({type:`reasoning-start`,id:`reasoning-0`}),!0),r.enqueue({type:`reasoning-delta`,id:`reasoning-0`,delta:O})),D.content&&(_||=(r.enqueue({type:`text-start`,id:`txt-0`}),!0),r.enqueue({type:`text-delta`,id:`txt-0`,delta:D.content})),D.tool_calls!=null)for(let e of D.tool_calls){let n=e.index;if(u[n]==null){if(e.id==null)throw new t.InvalidResponseDataError({data:e,message:`Expected 'id' to be a string.`});if((a=e.function)?.name==null)throw new t.InvalidResponseDataError({data:e,message:`Expected 'function.name' to be a string.`});r.enqueue({type:`tool-input-start`,id:e.id,toolName:e.function.name}),u[n]={id:e.id,type:`function`,function:{name:e.function.name,arguments:(o=e.function.arguments)??``},hasFinished:!1};let i=u[n];(c=i.function)?.name!=null&&(l=i.function)?.arguments!=null&&(i.function.arguments.length>0&&r.enqueue({type:`tool-input-delta`,id:i.id,delta:i.function.arguments}),j(i.function.arguments)&&(r.enqueue({type:`tool-input-end`,id:i.id}),r.enqueue({type:`tool-call`,toolCallId:(h=i.id)??f(),toolName:i.function.name,input:i.function.arguments}),i.hasFinished=!0));continue}let i=u[n];if(i.hasFinished)continue;(v=e.function)?.arguments!=null&&(i.function.arguments+=(b=(y=e.function)?.arguments)??``),r.enqueue({type:`tool-input-delta`,id:i.id,delta:(x=e.function.arguments)??``}),(S=i.function)?.name!=null&&(C=i.function)?.arguments!=null&&j(i.function.arguments)&&(r.enqueue({type:`tool-input-end`,id:i.id}),r.enqueue({type:`tool-call`,toolCallId:(w=i.id)??f(),toolName:i.function.name,input:i.function.arguments}),i.hasFinished=!0)}},flush(e){var t,n,r,i,a,o;g&&e.enqueue({type:`reasoning-end`,id:`reasoning-0`}),_&&e.enqueue({type:`text-end`,id:`txt-0`});for(let n of u.filter(e=>!e.hasFinished))e.enqueue({type:`tool-input-end`,id:n.id}),e.enqueue({type:`tool-call`,toolCallId:(t=n.id)??f(),toolName:n.function.name,input:n.function.arguments});let c={[h]:{},...s?.buildMetadata()};p.completionTokensDetails.acceptedPredictionTokens!=null&&(c[h].acceptedPredictionTokens=p.completionTokensDetails.acceptedPredictionTokens),p.completionTokensDetails.rejectedPredictionTokens!=null&&(c[h].rejectedPredictionTokens=p.completionTokensDetails.rejectedPredictionTokens),e.enqueue({type:`finish`,finishReason:d,usage:{inputTokens:(n=p.promptTokens)??void 0,outputTokens:(r=p.completionTokens)??void 0,totalTokens:(i=p.totalTokens)??void 0,reasoningTokens:(a=p.completionTokensDetails.reasoningTokens)??void 0,cachedInputTokens:(o=p.promptTokensDetails.cachedTokens)??void 0},providerMetadata:c})}})),request:{body:a},response:{headers:c}}}},V=r.z.object({prompt_tokens:r.z.number().nullish(),completion_tokens:r.z.number().nullish(),total_tokens:r.z.number().nullish(),prompt_tokens_details:r.z.object({cached_tokens:r.z.number().nullish()}).nullish(),completion_tokens_details:r.z.object({reasoning_tokens:r.z.number().nullish(),accepted_prediction_tokens:r.z.number().nullish(),rejected_prediction_tokens:r.z.number().nullish()}).nullish()}).nullish(),H=r.z.object({id:r.z.string().nullish(),created:r.z.number().nullish(),model:r.z.string().nullish(),choices:r.z.array(r.z.object({message:r.z.object({role:r.z.literal(`assistant`).nullish(),content:r.z.string().nullish(),reasoning_content:r.z.string().nullish(),reasoning:r.z.string().nullish(),tool_calls:r.z.array(r.z.object({id:r.z.string().nullish(),function:r.z.object({name:r.z.string(),arguments:r.z.string()})})).nullish()}),finish_reason:r.z.string().nullish()})),usage:V}),he=e=>r.z.union([r.z.object({id:r.z.string().nullish(),created:r.z.number().nullish(),model:r.z.string().nullish(),choices:r.z.array(r.z.object({delta:r.z.object({role:r.z.enum([`assistant`]).nullish(),content:r.z.string().nullish(),reasoning_content:r.z.string().nullish(),reasoning:r.z.string().nullish(),tool_calls:r.z.array(r.z.object({index:r.z.number(),id:r.z.string().nullish(),function:r.z.object({name:r.z.string().nullish(),arguments:r.z.string().nullish()})})).nullish()}).nullish(),finish_reason:r.z.string().nullish()})),usage:V}),e]);function ge({prompt:e,user:n=`user`,assistant:r=`assistant`}){let i=``;e[0].role===`system`&&(i+=`${e[0].content}
|
|
1
|
+
Object.defineProperty(exports,`__esModule`,{value:!0});const e=require(`../chunk-hhQzssFb.cjs`),t=require(`../http-B-lmj4yh.cjs`);let n=require(`util`);n=e.__toESM(n);let r=require(`zod/v4`);r=e.__toESM(r),require(`zod/v3`);let i=require(`http`);i=e.__toESM(i);let a=require(`ai`);a=e.__toESM(a);function o(...e){return e.reduce((e,t)=>({...e,...t??{}}),{})}function s(e){return Object.fromEntries([...e.headers])}function c(e=globalThis){var t,n,r;return e.window?`runtime/browser`:(t=e.navigator)?.userAgent?`runtime/${e.navigator.userAgent.toLowerCase()}`:(r=(n=e.process)?.versions)?.node?`runtime/node.js/${e.process.version.substring(0)}`:e.EdgeRuntime?`runtime/vercel-edge`:`runtime/unknown`}function l(e){return Object.fromEntries(Object.entries(e).filter(([e,t])=>t!=null))}function u(e,...t){let n=l(e??{}),r=new Headers(n),i=r.get(`user-agent`)||``;return r.set(`user-agent`,[i,...t].filter(Boolean).join(` `)),Object.fromEntries(r)}var d=({prefix:e,size:n=16,alphabet:r=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz`,separator:i=`-`}={})=>{let a=()=>{let e=r.length,t=Array(n);for(let i=0;i<n;i++)t[i]=r[Math.random()*e|0];return t.join(``)};if(e==null)return a;if(r.includes(i))throw new t.InvalidArgumentError({argument:`separator`,message:`The separator "${i}" must not be part of the alphabet "${r}".`});return()=>`${e}${i}${a()}`},f=d();function p(e){return(e instanceof Error||e instanceof DOMException)&&(e.name===`AbortError`||e.name===`ResponseAborted`||e.name===`TimeoutError`)}var m=[`fetch failed`,`failed to fetch`];function h({error:e,url:n,requestBodyValues:r}){if(p(e))return e;if(e instanceof TypeError&&m.includes(e.message.toLowerCase())){let i=e.cause;if(i!=null)return new t.APICallError({message:`Cannot connect to API: ${i.message}`,cause:i,url:n,requestBodyValues:r,isRetryable:!0})}return e}var g=`3.0.10`,_=/"__proto__"\s*:/,v=/"constructor"\s*:/;function y(e){let t=JSON.parse(e);return typeof t!=`object`||!t||_.test(e)===!1&&v.test(e)===!1?t:b(t)}function b(e){let t=[e];for(;t.length;){let e=t;t=[];for(let n of e){if(Object.prototype.hasOwnProperty.call(n,`__proto__`)||Object.prototype.hasOwnProperty.call(n,`constructor`)&&Object.prototype.hasOwnProperty.call(n.constructor,`prototype`))throw SyntaxError(`Object contains forbidden prototype property`);for(let e in n){let r=n[e];r&&typeof r==`object`&&t.push(r)}}}return e}function x(e){let{stackTraceLimit:t}=Error;Error.stackTraceLimit=0;try{return y(e)}finally{Error.stackTraceLimit=t}}var S=Symbol.for(`vercel.ai.validator`);function C(e){return{[S]:!0,validate:e}}function w(e){return typeof e==`object`&&!!e&&S in e&&e[S]===!0&&`validate`in e}function T(e){return w(e)?e:E(e)}function E(e){return C(async n=>{let r=await e[`~standard`].validate(n);return r.issues==null?{success:!0,value:r.value}:{success:!1,error:new t.TypeValidationError({value:n,cause:r.issues})}})}async function D({value:e,schema:n}){let r=await O({value:e,schema:n});if(!r.success)throw t.TypeValidationError.wrap({value:e,cause:r.error});return r.value}async function O({value:e,schema:n}){let r=T(n);try{if(r.validate==null)return{success:!0,value:e,rawValue:e};let n=await r.validate(e);return n.success?{success:!0,value:n.value,rawValue:e}:{success:!1,error:t.TypeValidationError.wrap({value:e,cause:n.error}),rawValue:e}}catch(n){return{success:!1,error:t.TypeValidationError.wrap({value:e,cause:n}),rawValue:e}}}async function k({text:e,schema:n}){try{let t=x(e);return n==null?t:D({value:t,schema:n})}catch(n){throw t.JSONParseError.isInstance(n)||t.TypeValidationError.isInstance(n)?n:new t.JSONParseError({text:e,cause:n})}}async function A({text:e,schema:n}){try{let t=x(e);return n==null?{success:!0,value:t,rawValue:t}:await O({value:t,schema:n})}catch(n){return{success:!1,error:t.JSONParseError.isInstance(n)?n:new t.JSONParseError({text:e,cause:n}),rawValue:void 0}}}function j(e){try{return x(e),!0}catch{return!1}}function ee({stream:e,schema:n}){return e.pipeThrough(new TextDecoderStream).pipeThrough(new t.EventSourceParserStream).pipeThrough(new TransformStream({async transform({data:e},t){e!==`[DONE]`&&t.enqueue(await A({text:e,schema:n}))}}))}async function M({provider:e,providerOptions:n,schema:r}){if(n?.[e]==null)return;let i=await O({value:n[e],schema:r});if(!i.success)throw new t.InvalidArgumentError({argument:`providerOptions`,message:`invalid ${e} provider options`,cause:i.error});return i.value}var N=()=>globalThis.fetch,P=async({url:e,headers:t,body:n,failedResponseHandler:r,successfulResponseHandler:i,abortSignal:a,fetch:o})=>F({url:e,headers:{"Content-Type":`application/json`,...t},body:{content:JSON.stringify(n),values:n},failedResponseHandler:r,successfulResponseHandler:i,abortSignal:a,fetch:o}),F=async({url:e,headers:n={},body:r,successfulResponseHandler:i,failedResponseHandler:a,abortSignal:o,fetch:l=N()})=>{try{let d=await l(e,{method:`POST`,headers:u(n,`ai-sdk/provider-utils/${g}`,c()),body:r.content,signal:o}),f=s(d);if(!d.ok){let n;try{n=await a({response:d,url:e,requestBodyValues:r.values})}catch(n){throw p(n)||t.APICallError.isInstance(n)?n:new t.APICallError({message:`Failed to process error response`,cause:n,statusCode:d.status,url:e,responseHeaders:f,requestBodyValues:r.values})}throw n.value}try{return await i({response:d,url:e,requestBodyValues:r.values})}catch(n){throw n instanceof Error&&(p(n)||t.APICallError.isInstance(n))?n:new t.APICallError({message:`Failed to process successful response`,cause:n,statusCode:d.status,url:e,responseHeaders:f,requestBodyValues:r.values})}}catch(t){throw h({error:t,url:e,requestBodyValues:r.values})}},I=({errorSchema:e,errorToMessage:n,isRetryable:r})=>async({response:i,url:a,requestBodyValues:o})=>{let c=await i.text(),l=s(i);if(c.trim()===``)return{responseHeaders:l,value:new t.APICallError({message:i.statusText,url:a,requestBodyValues:o,statusCode:i.status,responseHeaders:l,responseBody:c,isRetryable:r?.(i)})};try{let s=await k({text:c,schema:e});return{responseHeaders:l,value:new t.APICallError({message:n(s),url:a,requestBodyValues:o,statusCode:i.status,responseHeaders:l,responseBody:c,data:s,isRetryable:r?.(i,s)})}}catch{return{responseHeaders:l,value:new t.APICallError({message:i.statusText,url:a,requestBodyValues:o,statusCode:i.status,responseHeaders:l,responseBody:c,isRetryable:r?.(i)})}}},te=e=>async({response:n})=>{let r=s(n);if(n.body==null)throw new t.EmptyResponseBodyError({});return{responseHeaders:r,value:ee({stream:n.body,schema:e})}},L=e=>async({response:n,url:r,requestBodyValues:i})=>{let a=await n.text(),o=await A({text:a,schema:e}),c=s(n);if(!o.success)throw new t.APICallError({message:`Invalid JSON response`,cause:o.error,statusCode:n.status,responseHeaders:c,responseBody:a,url:r,requestBodyValues:i});return{responseHeaders:c,value:o.value,rawValue:o.rawValue}},ne=Symbol(`Let zodToJsonSchema decide on which parser to use`),re=Symbol.for(`vercel.ai.schema`),{btoa:ie,atob:ae}=globalThis;function oe(e){let t=``;for(let n=0;n<e.length;n++)t+=String.fromCodePoint(e[n]);return ie(t)}function se(e){return e instanceof Uint8Array?oe(e):e}function ce(e){return e?.replace(/\/$/,``)}function R(e){var t,n;return(n=(t=e?.providerOptions)?.openaiCompatible)??{}}function le(e){let n=[];for(let{role:r,content:i,...a}of e){let e=R({...a});switch(r){case`system`:n.push({role:`system`,content:i,...e});break;case`user`:if(i.length===1&&i[0].type===`text`){n.push({role:`user`,content:i[0].text,...R(i[0])});break}n.push({role:`user`,content:i.map(e=>{let n=R(e);switch(e.type){case`text`:return{type:`text`,text:e.text,...n};case`file`:if(e.mediaType.startsWith(`image/`)){let t=e.mediaType===`image/*`?`image/jpeg`:e.mediaType;return{type:`image_url`,image_url:{url:e.data instanceof URL?e.data.toString():`data:${t};base64,${se(e.data)}`},...n}}else throw new t.UnsupportedFunctionalityError({functionality:`file part media type ${e.mediaType}`})}}),...e});break;case`assistant`:{let t=``,r=[];for(let e of i){let n=R(e);switch(e.type){case`text`:t+=e.text;break;case`tool-call`:r.push({id:e.toolCallId,type:`function`,function:{name:e.toolName,arguments:JSON.stringify(e.input)},...n});break}}n.push({role:`assistant`,content:t,tool_calls:r.length>0?r:void 0,...e});break}case`tool`:for(let e of i){let t=e.output,r;switch(t.type){case`text`:case`error-text`:r=t.value;break;case`content`:case`json`:case`error-json`:r=JSON.stringify(t.value);break}let i=R(e);n.push({role:`tool`,tool_call_id:e.toolCallId,content:r,...i})}break;default:{let e=r;throw Error(`Unsupported role: ${e}`)}}}return n}function ue({id:e,model:t,created:n}){return{id:e??void 0,modelId:t??void 0,timestamp:n==null?void 0:new Date(n*1e3)}}function de(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`}}var fe=r.z.object({user:r.z.string().optional(),reasoningEffort:r.z.string().optional()}),pe=r.z.object({error:r.z.object({message:r.z.string(),type:r.z.string().nullish(),param:r.z.any().nullish(),code:r.z.union([r.z.string(),r.z.number()]).nullish()})}),z={errorSchema:pe,errorToMessage:e=>e.error.message};function me({tools:e,toolChoice:n}){e=e?.length?e:void 0;let r=[];if(e==null)return{tools:void 0,toolChoice:void 0,toolWarnings:r};let i=[];for(let t of e)t.type===`provider-defined`?r.push({type:`unsupported-tool`,tool:t}):i.push({type:`function`,function:{name:t.name,description:t.description,parameters:t.inputSchema}});if(n==null)return{tools:i,toolChoice:void 0,toolWarnings:r};let a=n.type;switch(a){case`auto`:case`none`:case`required`:return{tools:i,toolChoice:a,toolWarnings:r};case`tool`:return{tools:i,toolChoice:{type:`function`,function:{name:n.toolName}},toolWarnings:r};default:{let e=a;throw new t.UnsupportedFunctionalityError({functionality:`tool choice type: ${e}`})}}}var B=class{constructor(e,t){this.specificationVersion=`v2`;var n,r;this.modelId=e,this.config=t;let i=(n=t.errorStructure)??z;this.chunkSchema=he(i.errorSchema),this.failedResponseHandler=I(i),this.supportsStructuredOutputs=(r=t.supportsStructuredOutputs)??!1}get provider(){return this.config.provider}get providerOptionsName(){return this.config.provider.split(`.`)[0].trim()}get supportedUrls(){var e,t,n;return(n=(t=(e=this.config).supportedUrls)?.call(e))??{}}async getArgs({prompt:e,maxOutputTokens:t,temperature:n,topP:r,topK:i,frequencyPenalty:a,presencePenalty:o,providerOptions:s,stopSequences:c,responseFormat:l,seed:u,toolChoice:d,tools:f}){var p,m,h,g;let _=[],v=Object.assign((p=await M({provider:`openai-compatible`,providerOptions:s,schema:fe}))??{},(m=await M({provider:this.providerOptionsName,providerOptions:s,schema:fe}))??{});i!=null&&_.push({type:`unsupported-setting`,setting:`topK`}),l?.type===`json`&&l.schema!=null&&!this.supportsStructuredOutputs&&_.push({type:`unsupported-setting`,setting:`responseFormat`,details:`JSON response format schema is only supported with structuredOutputs`});let{tools:y,toolChoice:b,toolWarnings:x}=me({tools:f,toolChoice:d});return{args:{model:this.modelId,user:v.user,max_tokens:t,temperature:n,top_p:r,frequency_penalty:a,presence_penalty:o,response_format:l?.type===`json`?this.supportsStructuredOutputs===!0&&l.schema!=null?{type:`json_schema`,json_schema:{schema:l.schema,name:(h=l.name)??`response`,description:l.description}}:{type:`json_object`}:void 0,stop:c,seed:u,...Object.fromEntries(Object.entries((g=s?.[this.providerOptionsName])??{}).filter(([e])=>!Object.keys(fe.shape).includes(e))),reasoning_effort:v.reasoningEffort,messages:le(e),tools:y,tool_choice:b},warnings:[..._,...x]}}async doGenerate(e){var t,n,r,i,a,s,c,l,u,d,p,m,h,g,_,v,y;let{args:b,warnings:x}=await this.getArgs({...e}),S=JSON.stringify(b),{responseHeaders:C,value:w,rawValue:T}=await P({url:this.config.url({path:`/chat/completions`,modelId:this.modelId}),headers:o(this.config.headers(),e.headers),body:b,failedResponseHandler:this.failedResponseHandler,successfulResponseHandler:L(H),abortSignal:e.abortSignal,fetch:this.config.fetch}),E=w.choices[0],D=[],O=E.message.content;O!=null&&O.length>0&&D.push({type:`text`,text:O});let k=(t=E.message.reasoning_content)??E.message.reasoning;if(k!=null&&k.length>0&&D.push({type:`reasoning`,text:k}),E.message.tool_calls!=null)for(let e of E.message.tool_calls)D.push({type:`tool-call`,toolCallId:(n=e.id)??f(),toolName:e.function.name,input:e.function.arguments});let A={[this.providerOptionsName]:{},...await(i=(r=this.config.metadataExtractor)?.extractMetadata)?.call(r,{parsedBody:T})},j=(a=w.usage)?.completion_tokens_details;return j?.accepted_prediction_tokens!=null&&(A[this.providerOptionsName].acceptedPredictionTokens=j?.accepted_prediction_tokens),j?.rejected_prediction_tokens!=null&&(A[this.providerOptionsName].rejectedPredictionTokens=j?.rejected_prediction_tokens),{content:D,finishReason:de(E.finish_reason),usage:{inputTokens:(c=(s=w.usage)?.prompt_tokens)??void 0,outputTokens:(u=(l=w.usage)?.completion_tokens)??void 0,totalTokens:(p=(d=w.usage)?.total_tokens)??void 0,reasoningTokens:(g=(h=(m=w.usage)?.completion_tokens_details)?.reasoning_tokens)??void 0,cachedInputTokens:(y=(v=(_=w.usage)?.prompt_tokens_details)?.cached_tokens)??void 0},providerMetadata:A,request:{body:S},response:{...ue(w),headers:C,body:T},warnings:x}}async doStream(e){var n;let{args:r,warnings:i}=await this.getArgs({...e}),a={...r,stream:!0,stream_options:this.config.includeUsage?{include_usage:!0}:void 0},s=(n=this.config.metadataExtractor)?.createStreamExtractor(),{responseHeaders:c,value:l}=await P({url:this.config.url({path:`/chat/completions`,modelId:this.modelId}),headers:o(this.config.headers(),e.headers),body:a,failedResponseHandler:this.failedResponseHandler,successfulResponseHandler:te(this.chunkSchema),abortSignal:e.abortSignal,fetch:this.config.fetch}),u=[],d=`unknown`,p={completionTokens:void 0,completionTokensDetails:{reasoningTokens:void 0,acceptedPredictionTokens:void 0,rejectedPredictionTokens:void 0},promptTokens:void 0,promptTokensDetails:{cachedTokens:void 0},totalTokens:void 0},m=!0,h=this.providerOptionsName,g=!1,_=!1;return{stream:l.pipeThrough(new TransformStream({start(e){e.enqueue({type:`stream-start`,warnings:i})},transform(n,r){var i,a,o,c,l,h,v,y,b,x,S,C,w;if(e.includeRawChunks&&r.enqueue({type:`raw`,rawValue:n.rawValue}),!n.success){d=`error`,r.enqueue({type:`error`,error:n.error});return}let T=n.value;if(s?.processChunk(n.rawValue),`error`in T){d=`error`,r.enqueue({type:`error`,error:T.error.message});return}if(m&&(m=!1,r.enqueue({type:`response-metadata`,...ue(T)})),T.usage!=null){let{prompt_tokens:e,completion_tokens:t,total_tokens:n,prompt_tokens_details:r,completion_tokens_details:i}=T.usage;p.promptTokens=e??void 0,p.completionTokens=t??void 0,p.totalTokens=n??void 0,i?.reasoning_tokens!=null&&(p.completionTokensDetails.reasoningTokens=i?.reasoning_tokens),i?.accepted_prediction_tokens!=null&&(p.completionTokensDetails.acceptedPredictionTokens=i?.accepted_prediction_tokens),i?.rejected_prediction_tokens!=null&&(p.completionTokensDetails.rejectedPredictionTokens=i?.rejected_prediction_tokens),r?.cached_tokens!=null&&(p.promptTokensDetails.cachedTokens=r?.cached_tokens)}let E=T.choices[0];if(E?.finish_reason!=null&&(d=de(E.finish_reason)),E?.delta==null)return;let D=E.delta,O=(i=D.reasoning_content)??D.reasoning;if(O&&(g||=(r.enqueue({type:`reasoning-start`,id:`reasoning-0`}),!0),r.enqueue({type:`reasoning-delta`,id:`reasoning-0`,delta:O})),D.content&&(_||=(r.enqueue({type:`text-start`,id:`txt-0`}),!0),r.enqueue({type:`text-delta`,id:`txt-0`,delta:D.content})),D.tool_calls!=null)for(let e of D.tool_calls){let n=e.index;if(u[n]==null){if(e.id==null)throw new t.InvalidResponseDataError({data:e,message:`Expected 'id' to be a string.`});if((a=e.function)?.name==null)throw new t.InvalidResponseDataError({data:e,message:`Expected 'function.name' to be a string.`});r.enqueue({type:`tool-input-start`,id:e.id,toolName:e.function.name}),u[n]={id:e.id,type:`function`,function:{name:e.function.name,arguments:(o=e.function.arguments)??``},hasFinished:!1};let i=u[n];(c=i.function)?.name!=null&&(l=i.function)?.arguments!=null&&(i.function.arguments.length>0&&r.enqueue({type:`tool-input-delta`,id:i.id,delta:i.function.arguments}),j(i.function.arguments)&&(r.enqueue({type:`tool-input-end`,id:i.id}),r.enqueue({type:`tool-call`,toolCallId:(h=i.id)??f(),toolName:i.function.name,input:i.function.arguments}),i.hasFinished=!0));continue}let i=u[n];if(i.hasFinished)continue;(v=e.function)?.arguments!=null&&(i.function.arguments+=(b=(y=e.function)?.arguments)??``),r.enqueue({type:`tool-input-delta`,id:i.id,delta:(x=e.function.arguments)??``}),(S=i.function)?.name!=null&&(C=i.function)?.arguments!=null&&j(i.function.arguments)&&(r.enqueue({type:`tool-input-end`,id:i.id}),r.enqueue({type:`tool-call`,toolCallId:(w=i.id)??f(),toolName:i.function.name,input:i.function.arguments}),i.hasFinished=!0)}},flush(e){var t,n,r,i,a,o;g&&e.enqueue({type:`reasoning-end`,id:`reasoning-0`}),_&&e.enqueue({type:`text-end`,id:`txt-0`});for(let n of u.filter(e=>!e.hasFinished))e.enqueue({type:`tool-input-end`,id:n.id}),e.enqueue({type:`tool-call`,toolCallId:(t=n.id)??f(),toolName:n.function.name,input:n.function.arguments});let c={[h]:{},...s?.buildMetadata()};p.completionTokensDetails.acceptedPredictionTokens!=null&&(c[h].acceptedPredictionTokens=p.completionTokensDetails.acceptedPredictionTokens),p.completionTokensDetails.rejectedPredictionTokens!=null&&(c[h].rejectedPredictionTokens=p.completionTokensDetails.rejectedPredictionTokens),e.enqueue({type:`finish`,finishReason:d,usage:{inputTokens:(n=p.promptTokens)??void 0,outputTokens:(r=p.completionTokens)??void 0,totalTokens:(i=p.totalTokens)??void 0,reasoningTokens:(a=p.completionTokensDetails.reasoningTokens)??void 0,cachedInputTokens:(o=p.promptTokensDetails.cachedTokens)??void 0},providerMetadata:c})}})),request:{body:a},response:{headers:c}}}},V=r.z.object({prompt_tokens:r.z.number().nullish(),completion_tokens:r.z.number().nullish(),total_tokens:r.z.number().nullish(),prompt_tokens_details:r.z.object({cached_tokens:r.z.number().nullish()}).nullish(),completion_tokens_details:r.z.object({reasoning_tokens:r.z.number().nullish(),accepted_prediction_tokens:r.z.number().nullish(),rejected_prediction_tokens:r.z.number().nullish()}).nullish()}).nullish(),H=r.z.object({id:r.z.string().nullish(),created:r.z.number().nullish(),model:r.z.string().nullish(),choices:r.z.array(r.z.object({message:r.z.object({role:r.z.literal(`assistant`).nullish(),content:r.z.string().nullish(),reasoning_content:r.z.string().nullish(),reasoning:r.z.string().nullish(),tool_calls:r.z.array(r.z.object({id:r.z.string().nullish(),function:r.z.object({name:r.z.string(),arguments:r.z.string()})})).nullish()}),finish_reason:r.z.string().nullish()})),usage:V}),he=e=>r.z.union([r.z.object({id:r.z.string().nullish(),created:r.z.number().nullish(),model:r.z.string().nullish(),choices:r.z.array(r.z.object({delta:r.z.object({role:r.z.enum([`assistant`]).nullish(),content:r.z.string().nullish(),reasoning_content:r.z.string().nullish(),reasoning:r.z.string().nullish(),tool_calls:r.z.array(r.z.object({index:r.z.number(),id:r.z.string().nullish(),function:r.z.object({name:r.z.string().nullish(),arguments:r.z.string().nullish()})})).nullish()}).nullish(),finish_reason:r.z.string().nullish()})),usage:V}),e]);function ge({prompt:e,user:n=`user`,assistant:r=`assistant`}){let i=``;e[0].role===`system`&&(i+=`${e[0].content}
|
|
2
2
|
|
|
3
3
|
`,e=e.slice(1));for(let{role:a,content:o}of e)switch(a){case`system`:throw new t.InvalidPromptError({message:"Unexpected system message in prompt: ${content}",prompt:e});case`user`:{let e=o.map(e=>{switch(e.type){case`text`:return e.text}}).filter(Boolean).join(``);i+=`${n}:
|
|
4
4
|
${e}
|
package/dist/api/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{__commonJSMin as e,__esmMin as t,__export as n,__require as r,__toCommonJS as i,__toESM as a}from"../chunk-___ucjiX.js";import{APICallError as o,EmptyResponseBodyError as s,EventSourceParserStream as c,InvalidArgumentError as l,InvalidPromptError as u,InvalidResponseDataError as d,JSONParseError as f,StreamResponseFormatHeader as p,TooManyEmbeddingValuesForCallError as m,TypeValidationError as h,UnsupportedFunctionalityError as g,client as _}from"../http-B_3J2CH3.js";import v from"util";import{z as y}from"zod/v4";import"zod/v3";import b from"http";import{convertToModelMessages as x,createUIMessageStream as S,getToolName as C,isToolUIPart as w}from"ai";function T(...e){return e.reduce((e,t)=>({...e,...t??{}}),{})}function E(e){return Object.fromEntries([...e.headers])}function D(e=globalThis){var t,n,r;return e.window?`runtime/browser`:(t=e.navigator)?.userAgent?`runtime/${e.navigator.userAgent.toLowerCase()}`:(r=(n=e.process)?.versions)?.node?`runtime/node.js/${e.process.version.substring(0)}`:e.EdgeRuntime?`runtime/vercel-edge`:`runtime/unknown`}function O(e){return Object.fromEntries(Object.entries(e).filter(([e,t])=>t!=null))}function k(e,...t){let n=O(e??{}),r=new Headers(n),i=r.get(`user-agent`)||``;return r.set(`user-agent`,[i,...t].filter(Boolean).join(` `)),Object.fromEntries(r)}var A=({prefix:e,size:t=16,alphabet:n=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz`,separator:r=`-`}={})=>{let i=()=>{let e=n.length,r=Array(t);for(let i=0;i<t;i++)r[i]=n[Math.random()*e|0];return r.join(``)};if(e==null)return i;if(n.includes(r))throw new l({argument:`separator`,message:`The separator "${r}" must not be part of the alphabet "${n}".`});return()=>`${e}${r}${i()}`},j=A();function M(e){return(e instanceof Error||e instanceof DOMException)&&(e.name===`AbortError`||e.name===`ResponseAborted`||e.name===`TimeoutError`)}var ee=[`fetch failed`,`failed to fetch`];function N({error:e,url:t,requestBodyValues:n}){if(M(e))return e;if(e instanceof TypeError&&ee.includes(e.message.toLowerCase())){let r=e.cause;if(r!=null)return new o({message:`Cannot connect to API: ${r.message}`,cause:r,url:t,requestBodyValues:n,isRetryable:!0})}return e}var P=`3.0.10`,F=/"__proto__"\s*:/,I=/"constructor"\s*:/;function te(e){let t=JSON.parse(e);return typeof t!=`object`||!t||F.test(e)===!1&&I.test(e)===!1?t:ne(t)}function ne(e){let t=[e];for(;t.length;){let e=t;t=[];for(let n of e){if(Object.prototype.hasOwnProperty.call(n,`__proto__`)||Object.prototype.hasOwnProperty.call(n,`constructor`)&&Object.prototype.hasOwnProperty.call(n.constructor,`prototype`))throw SyntaxError(`Object contains forbidden prototype property`);for(let e in n){let r=n[e];r&&typeof r==`object`&&t.push(r)}}}return e}function L(e){let{stackTraceLimit:t}=Error;Error.stackTraceLimit=0;try{return te(e)}finally{Error.stackTraceLimit=t}}var R=Symbol.for(`vercel.ai.validator`);function re(e){return{[R]:!0,validate:e}}function ie(e){return typeof e==`object`&&!!e&&R in e&&e[R]===!0&&`validate`in e}function ae(e){return ie(e)?e:oe(e)}function oe(e){return re(async t=>{let n=await e[`~standard`].validate(t);return n.issues==null?{success:!0,value:n.value}:{success:!1,error:new h({value:t,cause:n.issues})}})}async function se({value:e,schema:t}){let n=await ce({value:e,schema:t});if(!n.success)throw h.wrap({value:e,cause:n.error});return n.value}async function ce({value:e,schema:t}){let n=ae(t);try{if(n.validate==null)return{success:!0,value:e,rawValue:e};let t=await n.validate(e);return t.success?{success:!0,value:t.value,rawValue:e}:{success:!1,error:h.wrap({value:e,cause:t.error}),rawValue:e}}catch(t){return{success:!1,error:h.wrap({value:e,cause:t}),rawValue:e}}}async function le({text:e,schema:t}){try{let n=L(e);return t==null?n:se({value:n,schema:t})}catch(t){throw f.isInstance(t)||h.isInstance(t)?t:new f({text:e,cause:t})}}async function ue({text:e,schema:t}){try{let n=L(e);return t==null?{success:!0,value:n,rawValue:n}:await ce({value:n,schema:t})}catch(t){return{success:!1,error:f.isInstance(t)?t:new f({text:e,cause:t}),rawValue:void 0}}}function de(e){try{return L(e),!0}catch{return!1}}function fe({stream:e,schema:t}){return e.pipeThrough(new TextDecoderStream).pipeThrough(new c).pipeThrough(new TransformStream({async transform({data:e},n){e!==`[DONE]`&&n.enqueue(await ue({text:e,schema:t}))}}))}async function z({provider:e,providerOptions:t,schema:n}){if(t?.[e]==null)return;let r=await ce({value:t[e],schema:n});if(!r.success)throw new l({argument:`providerOptions`,message:`invalid ${e} provider options`,cause:r.error});return r.value}var B=()=>globalThis.fetch,V=async({url:e,headers:t,body:n,failedResponseHandler:r,successfulResponseHandler:i,abortSignal:a,fetch:o})=>H({url:e,headers:{"Content-Type":`application/json`,...t},body:{content:JSON.stringify(n),values:n},failedResponseHandler:r,successfulResponseHandler:i,abortSignal:a,fetch:o}),H=async({url:e,headers:t={},body:n,successfulResponseHandler:r,failedResponseHandler:i,abortSignal:a,fetch:s=B()})=>{try{let c=await s(e,{method:`POST`,headers:k(t,`ai-sdk/provider-utils/${P}`,D()),body:n.content,signal:a}),l=E(c);if(!c.ok){let t;try{t=await i({response:c,url:e,requestBodyValues:n.values})}catch(t){throw M(t)||o.isInstance(t)?t:new o({message:`Failed to process error response`,cause:t,statusCode:c.status,url:e,responseHeaders:l,requestBodyValues:n.values})}throw t.value}try{return await r({response:c,url:e,requestBodyValues:n.values})}catch(t){throw t instanceof Error&&(M(t)||o.isInstance(t))?t:new o({message:`Failed to process successful response`,cause:t,statusCode:c.status,url:e,responseHeaders:l,requestBodyValues:n.values})}}catch(t){throw N({error:t,url:e,requestBodyValues:n.values})}},U=({errorSchema:e,errorToMessage:t,isRetryable:n})=>async({response:r,url:i,requestBodyValues:a})=>{let s=await r.text(),c=E(r);if(s.trim()===``)return{responseHeaders:c,value:new o({message:r.statusText,url:i,requestBodyValues:a,statusCode:r.status,responseHeaders:c,responseBody:s,isRetryable:n?.(r)})};try{let l=await le({text:s,schema:e});return{responseHeaders:c,value:new o({message:t(l),url:i,requestBodyValues:a,statusCode:r.status,responseHeaders:c,responseBody:s,data:l,isRetryable:n?.(r,l)})}}catch{return{responseHeaders:c,value:new o({message:r.statusText,url:i,requestBodyValues:a,statusCode:r.status,responseHeaders:c,responseBody:s,isRetryable:n?.(r)})}}},W=e=>async({response:t})=>{let n=E(t);if(t.body==null)throw new s({});return{responseHeaders:n,value:fe({stream:t.body,schema:e})}},G=e=>async({response:t,url:n,requestBodyValues:r})=>{let i=await t.text(),a=await ue({text:i,schema:e}),s=E(t);if(!a.success)throw new o({message:`Invalid JSON response`,cause:a.error,statusCode:t.status,responseHeaders:s,responseBody:i,url:n,requestBodyValues:r});return{responseHeaders:s,value:a.value,rawValue:a.rawValue}},{btoa:pe,atob:me}=globalThis;function he(e){let t=``;for(let n=0;n<e.length;n++)t+=String.fromCodePoint(e[n]);return pe(t)}function ge(e){return e instanceof Uint8Array?he(e):e}function _e(e){return e?.replace(/\/$/,``)}function ve(e){var t,n;return(n=(t=e?.providerOptions)?.openaiCompatible)??{}}function ye(e){let t=[];for(let{role:n,content:r,...i}of e){let e=ve({...i});switch(n){case`system`:t.push({role:`system`,content:r,...e});break;case`user`:if(r.length===1&&r[0].type===`text`){t.push({role:`user`,content:r[0].text,...ve(r[0])});break}t.push({role:`user`,content:r.map(e=>{let t=ve(e);switch(e.type){case`text`:return{type:`text`,text:e.text,...t};case`file`:if(e.mediaType.startsWith(`image/`)){let n=e.mediaType===`image/*`?`image/jpeg`:e.mediaType;return{type:`image_url`,image_url:{url:e.data instanceof URL?e.data.toString():`data:${n};base64,${ge(e.data)}`},...t}}else throw new g({functionality:`file part media type ${e.mediaType}`})}}),...e});break;case`assistant`:{let n=``,i=[];for(let e of r){let t=ve(e);switch(e.type){case`text`:n+=e.text;break;case`tool-call`:i.push({id:e.toolCallId,type:`function`,function:{name:e.toolName,arguments:JSON.stringify(e.input)},...t});break}}t.push({role:`assistant`,content:n,tool_calls:i.length>0?i:void 0,...e});break}case`tool`:for(let e of r){let n=e.output,r;switch(n.type){case`text`:case`error-text`:r=n.value;break;case`content`:case`json`:case`error-json`:r=JSON.stringify(n.value);break}let i=ve(e);t.push({role:`tool`,tool_call_id:e.toolCallId,content:r,...i})}break;default:{let e=n;throw Error(`Unsupported role: ${e}`)}}}return t}function be({id:e,model:t,created:n}){return{id:e??void 0,modelId:t??void 0,timestamp:n==null?void 0:new Date(n*1e3)}}function xe(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`}}var Se=y.object({user:y.string().optional(),reasoningEffort:y.string().optional()}),Ce=y.object({error:y.object({message:y.string(),type:y.string().nullish(),param:y.any().nullish(),code:y.union([y.string(),y.number()]).nullish()})}),we={errorSchema:Ce,errorToMessage:e=>e.error.message};function Te({tools:e,toolChoice:t}){e=e?.length?e:void 0;let n=[];if(e==null)return{tools:void 0,toolChoice:void 0,toolWarnings:n};let r=[];for(let t of e)t.type===`provider-defined`?n.push({type:`unsupported-tool`,tool:t}):r.push({type:`function`,function:{name:t.name,description:t.description,parameters:t.inputSchema}});if(t==null)return{tools:r,toolChoice:void 0,toolWarnings:n};let i=t.type;switch(i){case`auto`:case`none`:case`required`:return{tools:r,toolChoice:i,toolWarnings:n};case`tool`:return{tools:r,toolChoice:{type:`function`,function:{name:t.toolName}},toolWarnings:n};default:{let e=i;throw new g({functionality:`tool choice type: ${e}`})}}}var Ee=class{constructor(e,t){this.specificationVersion=`v2`;var n,r;this.modelId=e,this.config=t;let i=(n=t.errorStructure)??we;this.chunkSchema=ke(i.errorSchema),this.failedResponseHandler=U(i),this.supportsStructuredOutputs=(r=t.supportsStructuredOutputs)??!1}get provider(){return this.config.provider}get providerOptionsName(){return this.config.provider.split(`.`)[0].trim()}get supportedUrls(){var e,t,n;return(n=(t=(e=this.config).supportedUrls)?.call(e))??{}}async getArgs({prompt:e,maxOutputTokens:t,temperature:n,topP:r,topK:i,frequencyPenalty:a,presencePenalty:o,providerOptions:s,stopSequences:c,responseFormat:l,seed:u,toolChoice:d,tools:f}){var p,m,h,g;let _=[],v=Object.assign((p=await z({provider:`openai-compatible`,providerOptions:s,schema:Se}))??{},(m=await z({provider:this.providerOptionsName,providerOptions:s,schema:Se}))??{});i!=null&&_.push({type:`unsupported-setting`,setting:`topK`}),l?.type===`json`&&l.schema!=null&&!this.supportsStructuredOutputs&&_.push({type:`unsupported-setting`,setting:`responseFormat`,details:`JSON response format schema is only supported with structuredOutputs`});let{tools:y,toolChoice:b,toolWarnings:x}=Te({tools:f,toolChoice:d});return{args:{model:this.modelId,user:v.user,max_tokens:t,temperature:n,top_p:r,frequency_penalty:a,presence_penalty:o,response_format:l?.type===`json`?this.supportsStructuredOutputs===!0&&l.schema!=null?{type:`json_schema`,json_schema:{schema:l.schema,name:(h=l.name)??`response`,description:l.description}}:{type:`json_object`}:void 0,stop:c,seed:u,...Object.fromEntries(Object.entries((g=s?.[this.providerOptionsName])??{}).filter(([e])=>!Object.keys(Se.shape).includes(e))),reasoning_effort:v.reasoningEffort,messages:ye(e),tools:y,tool_choice:b},warnings:[..._,...x]}}async doGenerate(e){var t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_;let{args:v,warnings:y}=await this.getArgs({...e}),b=JSON.stringify(v),{responseHeaders:x,value:S,rawValue:C}=await V({url:this.config.url({path:`/chat/completions`,modelId:this.modelId}),headers:T(this.config.headers(),e.headers),body:v,failedResponseHandler:this.failedResponseHandler,successfulResponseHandler:G(Oe),abortSignal:e.abortSignal,fetch:this.config.fetch}),w=S.choices[0],E=[],D=w.message.content;D!=null&&D.length>0&&E.push({type:`text`,text:D});let O=(t=w.message.reasoning_content)??w.message.reasoning;if(O!=null&&O.length>0&&E.push({type:`reasoning`,text:O}),w.message.tool_calls!=null)for(let e of w.message.tool_calls)E.push({type:`tool-call`,toolCallId:(n=e.id)??j(),toolName:e.function.name,input:e.function.arguments});let k={[this.providerOptionsName]:{},...await(i=(r=this.config.metadataExtractor)?.extractMetadata)?.call(r,{parsedBody:C})},A=(a=S.usage)?.completion_tokens_details;return A?.accepted_prediction_tokens!=null&&(k[this.providerOptionsName].acceptedPredictionTokens=A?.accepted_prediction_tokens),A?.rejected_prediction_tokens!=null&&(k[this.providerOptionsName].rejectedPredictionTokens=A?.rejected_prediction_tokens),{content:E,finishReason:xe(w.finish_reason),usage:{inputTokens:(s=(o=S.usage)?.prompt_tokens)??void 0,outputTokens:(l=(c=S.usage)?.completion_tokens)??void 0,totalTokens:(d=(u=S.usage)?.total_tokens)??void 0,reasoningTokens:(m=(p=(f=S.usage)?.completion_tokens_details)?.reasoning_tokens)??void 0,cachedInputTokens:(_=(g=(h=S.usage)?.prompt_tokens_details)?.cached_tokens)??void 0},providerMetadata:k,request:{body:b},response:{...be(S),headers:x,body:C},warnings:y}}async doStream(e){var t;let{args:n,warnings:r}=await this.getArgs({...e}),i={...n,stream:!0,stream_options:this.config.includeUsage?{include_usage:!0}:void 0},a=(t=this.config.metadataExtractor)?.createStreamExtractor(),{responseHeaders:o,value:s}=await V({url:this.config.url({path:`/chat/completions`,modelId:this.modelId}),headers:T(this.config.headers(),e.headers),body:i,failedResponseHandler:this.failedResponseHandler,successfulResponseHandler:W(this.chunkSchema),abortSignal:e.abortSignal,fetch:this.config.fetch}),c=[],l=`unknown`,u={completionTokens:void 0,completionTokensDetails:{reasoningTokens:void 0,acceptedPredictionTokens:void 0,rejectedPredictionTokens:void 0},promptTokens:void 0,promptTokensDetails:{cachedTokens:void 0},totalTokens:void 0},f=!0,p=this.providerOptionsName,m=!1,h=!1;return{stream:s.pipeThrough(new TransformStream({start(e){e.enqueue({type:`stream-start`,warnings:r})},transform(t,n){var r,i,o,s,p,g,_,v,y,b,x,S,C;if(e.includeRawChunks&&n.enqueue({type:`raw`,rawValue:t.rawValue}),!t.success){l=`error`,n.enqueue({type:`error`,error:t.error});return}let w=t.value;if(a?.processChunk(t.rawValue),`error`in w){l=`error`,n.enqueue({type:`error`,error:w.error.message});return}if(f&&(f=!1,n.enqueue({type:`response-metadata`,...be(w)})),w.usage!=null){let{prompt_tokens:e,completion_tokens:t,total_tokens:n,prompt_tokens_details:r,completion_tokens_details:i}=w.usage;u.promptTokens=e??void 0,u.completionTokens=t??void 0,u.totalTokens=n??void 0,i?.reasoning_tokens!=null&&(u.completionTokensDetails.reasoningTokens=i?.reasoning_tokens),i?.accepted_prediction_tokens!=null&&(u.completionTokensDetails.acceptedPredictionTokens=i?.accepted_prediction_tokens),i?.rejected_prediction_tokens!=null&&(u.completionTokensDetails.rejectedPredictionTokens=i?.rejected_prediction_tokens),r?.cached_tokens!=null&&(u.promptTokensDetails.cachedTokens=r?.cached_tokens)}let T=w.choices[0];if(T?.finish_reason!=null&&(l=xe(T.finish_reason)),T?.delta==null)return;let E=T.delta,D=(r=E.reasoning_content)??E.reasoning;if(D&&(m||=(n.enqueue({type:`reasoning-start`,id:`reasoning-0`}),!0),n.enqueue({type:`reasoning-delta`,id:`reasoning-0`,delta:D})),E.content&&(h||=(n.enqueue({type:`text-start`,id:`txt-0`}),!0),n.enqueue({type:`text-delta`,id:`txt-0`,delta:E.content})),E.tool_calls!=null)for(let e of E.tool_calls){let t=e.index;if(c[t]==null){if(e.id==null)throw new d({data:e,message:`Expected 'id' to be a string.`});if((i=e.function)?.name==null)throw new d({data:e,message:`Expected 'function.name' to be a string.`});n.enqueue({type:`tool-input-start`,id:e.id,toolName:e.function.name}),c[t]={id:e.id,type:`function`,function:{name:e.function.name,arguments:(o=e.function.arguments)??``},hasFinished:!1};let r=c[t];(s=r.function)?.name!=null&&(p=r.function)?.arguments!=null&&(r.function.arguments.length>0&&n.enqueue({type:`tool-input-delta`,id:r.id,delta:r.function.arguments}),de(r.function.arguments)&&(n.enqueue({type:`tool-input-end`,id:r.id}),n.enqueue({type:`tool-call`,toolCallId:(g=r.id)??j(),toolName:r.function.name,input:r.function.arguments}),r.hasFinished=!0));continue}let r=c[t];if(r.hasFinished)continue;(_=e.function)?.arguments!=null&&(r.function.arguments+=(y=(v=e.function)?.arguments)??``),n.enqueue({type:`tool-input-delta`,id:r.id,delta:(b=e.function.arguments)??``}),(x=r.function)?.name!=null&&(S=r.function)?.arguments!=null&&de(r.function.arguments)&&(n.enqueue({type:`tool-input-end`,id:r.id}),n.enqueue({type:`tool-call`,toolCallId:(C=r.id)??j(),toolName:r.function.name,input:r.function.arguments}),r.hasFinished=!0)}},flush(e){var t,n,r,i,o,s;m&&e.enqueue({type:`reasoning-end`,id:`reasoning-0`}),h&&e.enqueue({type:`text-end`,id:`txt-0`});for(let n of c.filter(e=>!e.hasFinished))e.enqueue({type:`tool-input-end`,id:n.id}),e.enqueue({type:`tool-call`,toolCallId:(t=n.id)??j(),toolName:n.function.name,input:n.function.arguments});let d={[p]:{},...a?.buildMetadata()};u.completionTokensDetails.acceptedPredictionTokens!=null&&(d[p].acceptedPredictionTokens=u.completionTokensDetails.acceptedPredictionTokens),u.completionTokensDetails.rejectedPredictionTokens!=null&&(d[p].rejectedPredictionTokens=u.completionTokensDetails.rejectedPredictionTokens),e.enqueue({type:`finish`,finishReason:l,usage:{inputTokens:(n=u.promptTokens)??void 0,outputTokens:(r=u.completionTokens)??void 0,totalTokens:(i=u.totalTokens)??void 0,reasoningTokens:(o=u.completionTokensDetails.reasoningTokens)??void 0,cachedInputTokens:(s=u.promptTokensDetails.cachedTokens)??void 0},providerMetadata:d})}})),request:{body:i},response:{headers:o}}}},De=y.object({prompt_tokens:y.number().nullish(),completion_tokens:y.number().nullish(),total_tokens:y.number().nullish(),prompt_tokens_details:y.object({cached_tokens:y.number().nullish()}).nullish(),completion_tokens_details:y.object({reasoning_tokens:y.number().nullish(),accepted_prediction_tokens:y.number().nullish(),rejected_prediction_tokens:y.number().nullish()}).nullish()}).nullish(),Oe=y.object({id:y.string().nullish(),created:y.number().nullish(),model:y.string().nullish(),choices:y.array(y.object({message:y.object({role:y.literal(`assistant`).nullish(),content:y.string().nullish(),reasoning_content:y.string().nullish(),reasoning:y.string().nullish(),tool_calls:y.array(y.object({id:y.string().nullish(),function:y.object({name:y.string(),arguments:y.string()})})).nullish()}),finish_reason:y.string().nullish()})),usage:De}),ke=e=>y.union([y.object({id:y.string().nullish(),created:y.number().nullish(),model:y.string().nullish(),choices:y.array(y.object({delta:y.object({role:y.enum([`assistant`]).nullish(),content:y.string().nullish(),reasoning_content:y.string().nullish(),reasoning:y.string().nullish(),tool_calls:y.array(y.object({index:y.number(),id:y.string().nullish(),function:y.object({name:y.string().nullish(),arguments:y.string().nullish()})})).nullish()}).nullish(),finish_reason:y.string().nullish()})),usage:De}),e]);function Ae({prompt:e,user:t=`user`,assistant:n=`assistant`}){let r=``;e[0].role===`system`&&(r+=`${e[0].content}
|
|
1
|
+
import{__commonJSMin as e,__esmMin as t,__export as n,__require as r,__toCommonJS as i,__toESM as a}from"../chunk-___ucjiX.js";import{APICallError as o,EmptyResponseBodyError as s,EventSourceParserStream as c,InvalidArgumentError as l,InvalidPromptError as u,InvalidResponseDataError as d,JSONParseError as f,StreamResponseFormatHeader as p,TooManyEmbeddingValuesForCallError as m,TypeValidationError as h,UnsupportedFunctionalityError as g,client as _}from"../http-blV4Uqlw.js";import v from"util";import{z as y}from"zod/v4";import"zod/v3";import b from"http";import{convertToModelMessages as x,createUIMessageStream as S,getToolName as C,isToolUIPart as w}from"ai";function T(...e){return e.reduce((e,t)=>({...e,...t??{}}),{})}function E(e){return Object.fromEntries([...e.headers])}function D(e=globalThis){var t,n,r;return e.window?`runtime/browser`:(t=e.navigator)?.userAgent?`runtime/${e.navigator.userAgent.toLowerCase()}`:(r=(n=e.process)?.versions)?.node?`runtime/node.js/${e.process.version.substring(0)}`:e.EdgeRuntime?`runtime/vercel-edge`:`runtime/unknown`}function O(e){return Object.fromEntries(Object.entries(e).filter(([e,t])=>t!=null))}function k(e,...t){let n=O(e??{}),r=new Headers(n),i=r.get(`user-agent`)||``;return r.set(`user-agent`,[i,...t].filter(Boolean).join(` `)),Object.fromEntries(r)}var A=({prefix:e,size:t=16,alphabet:n=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz`,separator:r=`-`}={})=>{let i=()=>{let e=n.length,r=Array(t);for(let i=0;i<t;i++)r[i]=n[Math.random()*e|0];return r.join(``)};if(e==null)return i;if(n.includes(r))throw new l({argument:`separator`,message:`The separator "${r}" must not be part of the alphabet "${n}".`});return()=>`${e}${r}${i()}`},j=A();function M(e){return(e instanceof Error||e instanceof DOMException)&&(e.name===`AbortError`||e.name===`ResponseAborted`||e.name===`TimeoutError`)}var ee=[`fetch failed`,`failed to fetch`];function N({error:e,url:t,requestBodyValues:n}){if(M(e))return e;if(e instanceof TypeError&&ee.includes(e.message.toLowerCase())){let r=e.cause;if(r!=null)return new o({message:`Cannot connect to API: ${r.message}`,cause:r,url:t,requestBodyValues:n,isRetryable:!0})}return e}var P=`3.0.10`,F=/"__proto__"\s*:/,I=/"constructor"\s*:/;function te(e){let t=JSON.parse(e);return typeof t!=`object`||!t||F.test(e)===!1&&I.test(e)===!1?t:ne(t)}function ne(e){let t=[e];for(;t.length;){let e=t;t=[];for(let n of e){if(Object.prototype.hasOwnProperty.call(n,`__proto__`)||Object.prototype.hasOwnProperty.call(n,`constructor`)&&Object.prototype.hasOwnProperty.call(n.constructor,`prototype`))throw SyntaxError(`Object contains forbidden prototype property`);for(let e in n){let r=n[e];r&&typeof r==`object`&&t.push(r)}}}return e}function L(e){let{stackTraceLimit:t}=Error;Error.stackTraceLimit=0;try{return te(e)}finally{Error.stackTraceLimit=t}}var R=Symbol.for(`vercel.ai.validator`);function re(e){return{[R]:!0,validate:e}}function ie(e){return typeof e==`object`&&!!e&&R in e&&e[R]===!0&&`validate`in e}function ae(e){return ie(e)?e:oe(e)}function oe(e){return re(async t=>{let n=await e[`~standard`].validate(t);return n.issues==null?{success:!0,value:n.value}:{success:!1,error:new h({value:t,cause:n.issues})}})}async function se({value:e,schema:t}){let n=await ce({value:e,schema:t});if(!n.success)throw h.wrap({value:e,cause:n.error});return n.value}async function ce({value:e,schema:t}){let n=ae(t);try{if(n.validate==null)return{success:!0,value:e,rawValue:e};let t=await n.validate(e);return t.success?{success:!0,value:t.value,rawValue:e}:{success:!1,error:h.wrap({value:e,cause:t.error}),rawValue:e}}catch(t){return{success:!1,error:h.wrap({value:e,cause:t}),rawValue:e}}}async function le({text:e,schema:t}){try{let n=L(e);return t==null?n:se({value:n,schema:t})}catch(t){throw f.isInstance(t)||h.isInstance(t)?t:new f({text:e,cause:t})}}async function ue({text:e,schema:t}){try{let n=L(e);return t==null?{success:!0,value:n,rawValue:n}:await ce({value:n,schema:t})}catch(t){return{success:!1,error:f.isInstance(t)?t:new f({text:e,cause:t}),rawValue:void 0}}}function de(e){try{return L(e),!0}catch{return!1}}function fe({stream:e,schema:t}){return e.pipeThrough(new TextDecoderStream).pipeThrough(new c).pipeThrough(new TransformStream({async transform({data:e},n){e!==`[DONE]`&&n.enqueue(await ue({text:e,schema:t}))}}))}async function z({provider:e,providerOptions:t,schema:n}){if(t?.[e]==null)return;let r=await ce({value:t[e],schema:n});if(!r.success)throw new l({argument:`providerOptions`,message:`invalid ${e} provider options`,cause:r.error});return r.value}var B=()=>globalThis.fetch,V=async({url:e,headers:t,body:n,failedResponseHandler:r,successfulResponseHandler:i,abortSignal:a,fetch:o})=>H({url:e,headers:{"Content-Type":`application/json`,...t},body:{content:JSON.stringify(n),values:n},failedResponseHandler:r,successfulResponseHandler:i,abortSignal:a,fetch:o}),H=async({url:e,headers:t={},body:n,successfulResponseHandler:r,failedResponseHandler:i,abortSignal:a,fetch:s=B()})=>{try{let c=await s(e,{method:`POST`,headers:k(t,`ai-sdk/provider-utils/${P}`,D()),body:n.content,signal:a}),l=E(c);if(!c.ok){let t;try{t=await i({response:c,url:e,requestBodyValues:n.values})}catch(t){throw M(t)||o.isInstance(t)?t:new o({message:`Failed to process error response`,cause:t,statusCode:c.status,url:e,responseHeaders:l,requestBodyValues:n.values})}throw t.value}try{return await r({response:c,url:e,requestBodyValues:n.values})}catch(t){throw t instanceof Error&&(M(t)||o.isInstance(t))?t:new o({message:`Failed to process successful response`,cause:t,statusCode:c.status,url:e,responseHeaders:l,requestBodyValues:n.values})}}catch(t){throw N({error:t,url:e,requestBodyValues:n.values})}},U=({errorSchema:e,errorToMessage:t,isRetryable:n})=>async({response:r,url:i,requestBodyValues:a})=>{let s=await r.text(),c=E(r);if(s.trim()===``)return{responseHeaders:c,value:new o({message:r.statusText,url:i,requestBodyValues:a,statusCode:r.status,responseHeaders:c,responseBody:s,isRetryable:n?.(r)})};try{let l=await le({text:s,schema:e});return{responseHeaders:c,value:new o({message:t(l),url:i,requestBodyValues:a,statusCode:r.status,responseHeaders:c,responseBody:s,data:l,isRetryable:n?.(r,l)})}}catch{return{responseHeaders:c,value:new o({message:r.statusText,url:i,requestBodyValues:a,statusCode:r.status,responseHeaders:c,responseBody:s,isRetryable:n?.(r)})}}},W=e=>async({response:t})=>{let n=E(t);if(t.body==null)throw new s({});return{responseHeaders:n,value:fe({stream:t.body,schema:e})}},G=e=>async({response:t,url:n,requestBodyValues:r})=>{let i=await t.text(),a=await ue({text:i,schema:e}),s=E(t);if(!a.success)throw new o({message:`Invalid JSON response`,cause:a.error,statusCode:t.status,responseHeaders:s,responseBody:i,url:n,requestBodyValues:r});return{responseHeaders:s,value:a.value,rawValue:a.rawValue}},{btoa:pe,atob:me}=globalThis;function he(e){let t=``;for(let n=0;n<e.length;n++)t+=String.fromCodePoint(e[n]);return pe(t)}function ge(e){return e instanceof Uint8Array?he(e):e}function _e(e){return e?.replace(/\/$/,``)}function ve(e){var t,n;return(n=(t=e?.providerOptions)?.openaiCompatible)??{}}function ye(e){let t=[];for(let{role:n,content:r,...i}of e){let e=ve({...i});switch(n){case`system`:t.push({role:`system`,content:r,...e});break;case`user`:if(r.length===1&&r[0].type===`text`){t.push({role:`user`,content:r[0].text,...ve(r[0])});break}t.push({role:`user`,content:r.map(e=>{let t=ve(e);switch(e.type){case`text`:return{type:`text`,text:e.text,...t};case`file`:if(e.mediaType.startsWith(`image/`)){let n=e.mediaType===`image/*`?`image/jpeg`:e.mediaType;return{type:`image_url`,image_url:{url:e.data instanceof URL?e.data.toString():`data:${n};base64,${ge(e.data)}`},...t}}else throw new g({functionality:`file part media type ${e.mediaType}`})}}),...e});break;case`assistant`:{let n=``,i=[];for(let e of r){let t=ve(e);switch(e.type){case`text`:n+=e.text;break;case`tool-call`:i.push({id:e.toolCallId,type:`function`,function:{name:e.toolName,arguments:JSON.stringify(e.input)},...t});break}}t.push({role:`assistant`,content:n,tool_calls:i.length>0?i:void 0,...e});break}case`tool`:for(let e of r){let n=e.output,r;switch(n.type){case`text`:case`error-text`:r=n.value;break;case`content`:case`json`:case`error-json`:r=JSON.stringify(n.value);break}let i=ve(e);t.push({role:`tool`,tool_call_id:e.toolCallId,content:r,...i})}break;default:{let e=n;throw Error(`Unsupported role: ${e}`)}}}return t}function be({id:e,model:t,created:n}){return{id:e??void 0,modelId:t??void 0,timestamp:n==null?void 0:new Date(n*1e3)}}function xe(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`}}var Se=y.object({user:y.string().optional(),reasoningEffort:y.string().optional()}),Ce=y.object({error:y.object({message:y.string(),type:y.string().nullish(),param:y.any().nullish(),code:y.union([y.string(),y.number()]).nullish()})}),we={errorSchema:Ce,errorToMessage:e=>e.error.message};function Te({tools:e,toolChoice:t}){e=e?.length?e:void 0;let n=[];if(e==null)return{tools:void 0,toolChoice:void 0,toolWarnings:n};let r=[];for(let t of e)t.type===`provider-defined`?n.push({type:`unsupported-tool`,tool:t}):r.push({type:`function`,function:{name:t.name,description:t.description,parameters:t.inputSchema}});if(t==null)return{tools:r,toolChoice:void 0,toolWarnings:n};let i=t.type;switch(i){case`auto`:case`none`:case`required`:return{tools:r,toolChoice:i,toolWarnings:n};case`tool`:return{tools:r,toolChoice:{type:`function`,function:{name:t.toolName}},toolWarnings:n};default:{let e=i;throw new g({functionality:`tool choice type: ${e}`})}}}var Ee=class{constructor(e,t){this.specificationVersion=`v2`;var n,r;this.modelId=e,this.config=t;let i=(n=t.errorStructure)??we;this.chunkSchema=ke(i.errorSchema),this.failedResponseHandler=U(i),this.supportsStructuredOutputs=(r=t.supportsStructuredOutputs)??!1}get provider(){return this.config.provider}get providerOptionsName(){return this.config.provider.split(`.`)[0].trim()}get supportedUrls(){var e,t,n;return(n=(t=(e=this.config).supportedUrls)?.call(e))??{}}async getArgs({prompt:e,maxOutputTokens:t,temperature:n,topP:r,topK:i,frequencyPenalty:a,presencePenalty:o,providerOptions:s,stopSequences:c,responseFormat:l,seed:u,toolChoice:d,tools:f}){var p,m,h,g;let _=[],v=Object.assign((p=await z({provider:`openai-compatible`,providerOptions:s,schema:Se}))??{},(m=await z({provider:this.providerOptionsName,providerOptions:s,schema:Se}))??{});i!=null&&_.push({type:`unsupported-setting`,setting:`topK`}),l?.type===`json`&&l.schema!=null&&!this.supportsStructuredOutputs&&_.push({type:`unsupported-setting`,setting:`responseFormat`,details:`JSON response format schema is only supported with structuredOutputs`});let{tools:y,toolChoice:b,toolWarnings:x}=Te({tools:f,toolChoice:d});return{args:{model:this.modelId,user:v.user,max_tokens:t,temperature:n,top_p:r,frequency_penalty:a,presence_penalty:o,response_format:l?.type===`json`?this.supportsStructuredOutputs===!0&&l.schema!=null?{type:`json_schema`,json_schema:{schema:l.schema,name:(h=l.name)??`response`,description:l.description}}:{type:`json_object`}:void 0,stop:c,seed:u,...Object.fromEntries(Object.entries((g=s?.[this.providerOptionsName])??{}).filter(([e])=>!Object.keys(Se.shape).includes(e))),reasoning_effort:v.reasoningEffort,messages:ye(e),tools:y,tool_choice:b},warnings:[..._,...x]}}async doGenerate(e){var t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_;let{args:v,warnings:y}=await this.getArgs({...e}),b=JSON.stringify(v),{responseHeaders:x,value:S,rawValue:C}=await V({url:this.config.url({path:`/chat/completions`,modelId:this.modelId}),headers:T(this.config.headers(),e.headers),body:v,failedResponseHandler:this.failedResponseHandler,successfulResponseHandler:G(Oe),abortSignal:e.abortSignal,fetch:this.config.fetch}),w=S.choices[0],E=[],D=w.message.content;D!=null&&D.length>0&&E.push({type:`text`,text:D});let O=(t=w.message.reasoning_content)??w.message.reasoning;if(O!=null&&O.length>0&&E.push({type:`reasoning`,text:O}),w.message.tool_calls!=null)for(let e of w.message.tool_calls)E.push({type:`tool-call`,toolCallId:(n=e.id)??j(),toolName:e.function.name,input:e.function.arguments});let k={[this.providerOptionsName]:{},...await(i=(r=this.config.metadataExtractor)?.extractMetadata)?.call(r,{parsedBody:C})},A=(a=S.usage)?.completion_tokens_details;return A?.accepted_prediction_tokens!=null&&(k[this.providerOptionsName].acceptedPredictionTokens=A?.accepted_prediction_tokens),A?.rejected_prediction_tokens!=null&&(k[this.providerOptionsName].rejectedPredictionTokens=A?.rejected_prediction_tokens),{content:E,finishReason:xe(w.finish_reason),usage:{inputTokens:(s=(o=S.usage)?.prompt_tokens)??void 0,outputTokens:(l=(c=S.usage)?.completion_tokens)??void 0,totalTokens:(d=(u=S.usage)?.total_tokens)??void 0,reasoningTokens:(m=(p=(f=S.usage)?.completion_tokens_details)?.reasoning_tokens)??void 0,cachedInputTokens:(_=(g=(h=S.usage)?.prompt_tokens_details)?.cached_tokens)??void 0},providerMetadata:k,request:{body:b},response:{...be(S),headers:x,body:C},warnings:y}}async doStream(e){var t;let{args:n,warnings:r}=await this.getArgs({...e}),i={...n,stream:!0,stream_options:this.config.includeUsage?{include_usage:!0}:void 0},a=(t=this.config.metadataExtractor)?.createStreamExtractor(),{responseHeaders:o,value:s}=await V({url:this.config.url({path:`/chat/completions`,modelId:this.modelId}),headers:T(this.config.headers(),e.headers),body:i,failedResponseHandler:this.failedResponseHandler,successfulResponseHandler:W(this.chunkSchema),abortSignal:e.abortSignal,fetch:this.config.fetch}),c=[],l=`unknown`,u={completionTokens:void 0,completionTokensDetails:{reasoningTokens:void 0,acceptedPredictionTokens:void 0,rejectedPredictionTokens:void 0},promptTokens:void 0,promptTokensDetails:{cachedTokens:void 0},totalTokens:void 0},f=!0,p=this.providerOptionsName,m=!1,h=!1;return{stream:s.pipeThrough(new TransformStream({start(e){e.enqueue({type:`stream-start`,warnings:r})},transform(t,n){var r,i,o,s,p,g,_,v,y,b,x,S,C;if(e.includeRawChunks&&n.enqueue({type:`raw`,rawValue:t.rawValue}),!t.success){l=`error`,n.enqueue({type:`error`,error:t.error});return}let w=t.value;if(a?.processChunk(t.rawValue),`error`in w){l=`error`,n.enqueue({type:`error`,error:w.error.message});return}if(f&&(f=!1,n.enqueue({type:`response-metadata`,...be(w)})),w.usage!=null){let{prompt_tokens:e,completion_tokens:t,total_tokens:n,prompt_tokens_details:r,completion_tokens_details:i}=w.usage;u.promptTokens=e??void 0,u.completionTokens=t??void 0,u.totalTokens=n??void 0,i?.reasoning_tokens!=null&&(u.completionTokensDetails.reasoningTokens=i?.reasoning_tokens),i?.accepted_prediction_tokens!=null&&(u.completionTokensDetails.acceptedPredictionTokens=i?.accepted_prediction_tokens),i?.rejected_prediction_tokens!=null&&(u.completionTokensDetails.rejectedPredictionTokens=i?.rejected_prediction_tokens),r?.cached_tokens!=null&&(u.promptTokensDetails.cachedTokens=r?.cached_tokens)}let T=w.choices[0];if(T?.finish_reason!=null&&(l=xe(T.finish_reason)),T?.delta==null)return;let E=T.delta,D=(r=E.reasoning_content)??E.reasoning;if(D&&(m||=(n.enqueue({type:`reasoning-start`,id:`reasoning-0`}),!0),n.enqueue({type:`reasoning-delta`,id:`reasoning-0`,delta:D})),E.content&&(h||=(n.enqueue({type:`text-start`,id:`txt-0`}),!0),n.enqueue({type:`text-delta`,id:`txt-0`,delta:E.content})),E.tool_calls!=null)for(let e of E.tool_calls){let t=e.index;if(c[t]==null){if(e.id==null)throw new d({data:e,message:`Expected 'id' to be a string.`});if((i=e.function)?.name==null)throw new d({data:e,message:`Expected 'function.name' to be a string.`});n.enqueue({type:`tool-input-start`,id:e.id,toolName:e.function.name}),c[t]={id:e.id,type:`function`,function:{name:e.function.name,arguments:(o=e.function.arguments)??``},hasFinished:!1};let r=c[t];(s=r.function)?.name!=null&&(p=r.function)?.arguments!=null&&(r.function.arguments.length>0&&n.enqueue({type:`tool-input-delta`,id:r.id,delta:r.function.arguments}),de(r.function.arguments)&&(n.enqueue({type:`tool-input-end`,id:r.id}),n.enqueue({type:`tool-call`,toolCallId:(g=r.id)??j(),toolName:r.function.name,input:r.function.arguments}),r.hasFinished=!0));continue}let r=c[t];if(r.hasFinished)continue;(_=e.function)?.arguments!=null&&(r.function.arguments+=(y=(v=e.function)?.arguments)??``),n.enqueue({type:`tool-input-delta`,id:r.id,delta:(b=e.function.arguments)??``}),(x=r.function)?.name!=null&&(S=r.function)?.arguments!=null&&de(r.function.arguments)&&(n.enqueue({type:`tool-input-end`,id:r.id}),n.enqueue({type:`tool-call`,toolCallId:(C=r.id)??j(),toolName:r.function.name,input:r.function.arguments}),r.hasFinished=!0)}},flush(e){var t,n,r,i,o,s;m&&e.enqueue({type:`reasoning-end`,id:`reasoning-0`}),h&&e.enqueue({type:`text-end`,id:`txt-0`});for(let n of c.filter(e=>!e.hasFinished))e.enqueue({type:`tool-input-end`,id:n.id}),e.enqueue({type:`tool-call`,toolCallId:(t=n.id)??j(),toolName:n.function.name,input:n.function.arguments});let d={[p]:{},...a?.buildMetadata()};u.completionTokensDetails.acceptedPredictionTokens!=null&&(d[p].acceptedPredictionTokens=u.completionTokensDetails.acceptedPredictionTokens),u.completionTokensDetails.rejectedPredictionTokens!=null&&(d[p].rejectedPredictionTokens=u.completionTokensDetails.rejectedPredictionTokens),e.enqueue({type:`finish`,finishReason:l,usage:{inputTokens:(n=u.promptTokens)??void 0,outputTokens:(r=u.completionTokens)??void 0,totalTokens:(i=u.totalTokens)??void 0,reasoningTokens:(o=u.completionTokensDetails.reasoningTokens)??void 0,cachedInputTokens:(s=u.promptTokensDetails.cachedTokens)??void 0},providerMetadata:d})}})),request:{body:i},response:{headers:o}}}},De=y.object({prompt_tokens:y.number().nullish(),completion_tokens:y.number().nullish(),total_tokens:y.number().nullish(),prompt_tokens_details:y.object({cached_tokens:y.number().nullish()}).nullish(),completion_tokens_details:y.object({reasoning_tokens:y.number().nullish(),accepted_prediction_tokens:y.number().nullish(),rejected_prediction_tokens:y.number().nullish()}).nullish()}).nullish(),Oe=y.object({id:y.string().nullish(),created:y.number().nullish(),model:y.string().nullish(),choices:y.array(y.object({message:y.object({role:y.literal(`assistant`).nullish(),content:y.string().nullish(),reasoning_content:y.string().nullish(),reasoning:y.string().nullish(),tool_calls:y.array(y.object({id:y.string().nullish(),function:y.object({name:y.string(),arguments:y.string()})})).nullish()}),finish_reason:y.string().nullish()})),usage:De}),ke=e=>y.union([y.object({id:y.string().nullish(),created:y.number().nullish(),model:y.string().nullish(),choices:y.array(y.object({delta:y.object({role:y.enum([`assistant`]).nullish(),content:y.string().nullish(),reasoning_content:y.string().nullish(),reasoning:y.string().nullish(),tool_calls:y.array(y.object({index:y.number(),id:y.string().nullish(),function:y.object({name:y.string().nullish(),arguments:y.string().nullish()})})).nullish()}).nullish(),finish_reason:y.string().nullish()})),usage:De}),e]);function Ae({prompt:e,user:t=`user`,assistant:n=`assistant`}){let r=``;e[0].role===`system`&&(r+=`${e[0].content}
|
|
2
2
|
|
|
3
3
|
`,e=e.slice(1));for(let{role:i,content:a}of e)switch(i){case`system`:throw new u({message:"Unexpected system message in prompt: ${content}",prompt:e});case`user`:{let e=a.map(e=>{switch(e.type){case`text`:return e.text}}).filter(Boolean).join(``);r+=`${t}:
|
|
4
4
|
${e}
|