blink 1.1.28 → 1.1.30
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/browser/agent/client/index.cjs +1 -1
- package/dist/browser/agent/client/index.d.cts +1 -1
- package/dist/browser/agent/client/index.d.ts +1 -1
- package/dist/browser/agent/client/index.js +1 -1
- package/dist/browser/{index-DyEJiovi.d.ts → index-D8N1hGPv.d.ts} +0 -51
- package/dist/browser/{index-D6U7_pC6.d.cts → index-dCj0tyUH.d.cts} +0 -51
- package/dist/browser/react/index.browser.d.cts +1 -1
- package/dist/browser/react/index.browser.d.ts +1 -1
- package/dist/cli/chat-C_rQ9SRr.js +1 -0
- package/dist/cli/{chat-manager-B3eOpIG8.js → chat-manager-bLgTuAnK.js} +1 -1
- package/dist/cli/compute-server-B4xPLpLy.js +1 -0
- package/dist/cli/connect-CgLoRyDv.js +1 -0
- package/dist/cli/{connect-DIUub9Pr.js → connect-t56RPJRB.js} +1 -1
- package/dist/cli/{dev-DPBL2HKx.js → dev-BNkFG8kC.js} +5 -11
- package/dist/cli/{devtools-DqYysfX1.js → devtools-CS3ukAFj.js} +1 -1
- package/dist/cli/events-DKgZ2LNM.js +1 -0
- package/dist/cli/index.js +3 -3
- package/dist/cli/{init-CAbtPm4f.js → init-DXBledyD.js} +1 -1
- package/dist/cli/{init-templates-BgcZAdJh.js → init-templates-D4lwX_8M.js} +4 -2
- package/dist/cli/run-CRrWbMEw.js +1 -0
- package/dist/cli/{wrapper-B0SBsJWP.js → wrapper-DRdRnzOz.js} +1 -1
- package/dist/node/react/index.node.cjs +7 -5
- package/dist/node/react/index.node.d.cts +59 -52
- package/dist/node/react/index.node.d.ts +59 -52
- package/dist/node/react/index.node.js +36 -34
- package/package.json +1 -1
- package/dist/cli/chat-CYrdzv1d.js +0 -1
- package/dist/cli/connect-Bpv7PF3y.js +0 -1
- package/dist/cli/run-DYgfawiE.js +0 -1
- /package/dist/cli/{login-Bu2acoVp.js → login-POW3H6LQ.js} +0 -0
|
@@ -18,4 +18,4 @@ ${e}
|
|
|
18
18
|
|
|
19
19
|
`;break}case`tool`:throw new I({functionality:`tool messages`});default:{let e=i;throw Error(`Unsupported role: ${e}`)}}return r+=`${n}:
|
|
20
20
|
`,{prompt:r,stopSequences:[`
|
|
21
|
-
${t}:`]}}function jo({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 Mo(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 No=i.object({echo:i.boolean().optional(),logitBias:i.record(i.string(),i.number()).optional(),suffix:i.string().optional(),user:i.string().optional(),logprobs:i.union([i.boolean(),i.number()]).optional()}),Po=class{constructor(e,t){this.specificationVersion=`v2`,this.supportedUrls={},this.modelId=e,this.config=t}get providerOptionsName(){return this.config.provider.split(`.`)[0].trim()}get provider(){return this.config.provider}async getArgs({prompt:e,maxOutputTokens:t,temperature:n,topP:r,topK:i,frequencyPenalty:a,presencePenalty:o,stopSequences:s,responseFormat:c,tools:l,toolChoice:u,seed:d,providerOptions:f}){let p=[],m={...await Y({provider:`openai`,providerOptions:f,schema:No}),...await Y({provider:this.providerOptionsName,providerOptions:f,schema:No})};i!=null&&p.push({type:`unsupported-setting`,setting:`topK`}),l?.length&&p.push({type:`unsupported-setting`,setting:`tools`}),u!=null&&p.push({type:`unsupported-setting`,setting:`toolChoice`}),c!=null&&c.type!==`text`&&p.push({type:`unsupported-setting`,setting:`responseFormat`,details:`JSON response format is not supported.`});let{prompt:h,stopSequences:g}=Ao({prompt:e}),_=[...g??[],...s??[]];return{args:{model:this.modelId,echo:m.echo,logit_bias:m.logitBias,logprobs:m?.logprobs===!0?0:m?.logprobs===!1?void 0:m?.logprobs,suffix:m.suffix,user:m.user,max_tokens:t,temperature:n,top_p:r,frequency_penalty:a,presence_penalty:o,seed:d,prompt:h,stop:_.length>0?_:void 0},warnings:p}}async doGenerate(e){let{args:t,warnings:n}=await this.getArgs(e),{responseHeaders:r,value:i,rawValue:a}=await X({url:this.config.url({path:`/completions`,modelId:this.modelId}),headers:K(this.config.headers(),e.headers),body:t,failedResponseHandler:$,successfulResponseHandler:Z(Io),abortSignal:e.abortSignal,fetch:this.config.fetch}),o=i.choices[0],s={openai:{}};return o.logprobs!=null&&(s.openai.logprobs=o.logprobs),{content:[{type:`text`,text:o.text}],usage:{inputTokens:i.usage?.prompt_tokens,outputTokens:i.usage?.completion_tokens,totalTokens:i.usage?.total_tokens},finishReason:Mo(o.finish_reason),request:{body:t},response:{...jo(i),headers:r,body:a},providerMetadata:s,warnings:n}}async doStream(e){let{args:t,warnings:n}=await this.getArgs(e),r={...t,stream:!0,stream_options:{include_usage:!0}},{responseHeaders:i,value:a}=await X({url:this.config.url({path:`/completions`,modelId:this.modelId}),headers:K(this.config.headers(),e.headers),body:r,failedResponseHandler:$,successfulResponseHandler:so(Lo),abortSignal:e.abortSignal,fetch:this.config.fetch}),o=`unknown`,s={openai:{}},c={inputTokens:void 0,outputTokens:void 0,totalTokens:void 0},l=!0;return{stream:a.pipeThrough(new TransformStream({start(e){e.enqueue({type:`stream-start`,warnings:n})},transform(t,n){if(e.includeRawChunks&&n.enqueue({type:`raw`,rawValue:t.rawValue}),!t.success){o=`error`,n.enqueue({type:`error`,error:t.error});return}let r=t.value;if(`error`in r){o=`error`,n.enqueue({type:`error`,error:r.error});return}l&&(l=!1,n.enqueue({type:`response-metadata`,...jo(r)}),n.enqueue({type:`text-start`,id:`0`})),r.usage!=null&&(c.inputTokens=r.usage.prompt_tokens,c.outputTokens=r.usage.completion_tokens,c.totalTokens=r.usage.total_tokens);let i=r.choices[0];i?.finish_reason!=null&&(o=Mo(i.finish_reason)),i?.logprobs!=null&&(s.openai.logprobs=i.logprobs),i?.text!=null&&i.text.length>0&&n.enqueue({type:`text-delta`,id:`0`,delta:i.text})},flush(e){l||e.enqueue({type:`text-end`,id:`0`}),e.enqueue({type:`finish`,finishReason:o,providerMetadata:s,usage:c})}})),request:{body:r},response:{headers:i}}}},Fo=i.object({prompt_tokens:i.number(),completion_tokens:i.number(),total_tokens:i.number()}),Io=i.object({id:i.string().nullish(),created:i.number().nullish(),model:i.string().nullish(),choices:i.array(i.object({text:i.string(),finish_reason:i.string(),logprobs:i.object({tokens:i.array(i.string()),token_logprobs:i.array(i.number()),top_logprobs:i.array(i.record(i.string(),i.number())).nullish()}).nullish()})),usage:Fo.nullish()}),Lo=i.union([i.object({id:i.string().nullish(),created:i.number().nullish(),model:i.string().nullish(),choices:i.array(i.object({text:i.string(),finish_reason:i.string().nullish(),index:i.number(),logprobs:i.object({tokens:i.array(i.string()),token_logprobs:i.array(i.number()),top_logprobs:i.array(i.record(i.string(),i.number())).nullish()}).nullish()})),usage:Fo.nullish()}),ho]),Ro=i.object({dimensions:i.number().optional(),user:i.string().optional()}),zo=class{constructor(e,t){this.specificationVersion=`v2`,this.maxEmbeddingsPerCall=2048,this.supportsParallelCalls=!0,this.modelId=e,this.config=t}get provider(){return this.config.provider}async doEmbed({values:e,headers:t,abortSignal:n,providerOptions:r}){if(e.length>this.maxEmbeddingsPerCall)throw new On({provider:this.provider,modelId:this.modelId,maxEmbeddingsPerCall:this.maxEmbeddingsPerCall,values:e});let i=await Y({provider:`openai`,providerOptions:r,schema:Ro})??{},{responseHeaders:a,value:o,rawValue:s}=await X({url:this.config.url({path:`/embeddings`,modelId:this.modelId}),headers:K(this.config.headers(),t),body:{model:this.modelId,input:e,encoding_format:`float`,dimensions:i.dimensions,user:i.user},failedResponseHandler:$,successfulResponseHandler:Z(Bo),abortSignal:n,fetch:this.config.fetch});return{embeddings:o.data.map(e=>e.embedding),usage:o.usage?{tokens:o.usage.prompt_tokens}:void 0,response:{headers:a,body:s}}}},Bo=i.object({data:i.array(i.object({embedding:i.array(i.number())})),usage:i.object({prompt_tokens:i.number()}).nullish()}),Vo={"dall-e-3":1,"dall-e-2":10,"gpt-image-1":10},Ho=new Set([`gpt-image-1`]),Uo=class{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion=`v2`}get maxImagesPerCall(){return Vo[this.modelId]??1}get provider(){return this.config.provider}async doGenerate({prompt:e,n:t,size:n,aspectRatio:r,seed:i,providerOptions:a,headers:o,abortSignal:s}){var c;let l=[];r!=null&&l.push({type:`unsupported-setting`,setting:`aspectRatio`,details:"This model does not support aspect ratio. Use `size` instead."}),i!=null&&l.push({type:`unsupported-setting`,setting:`seed`});let u=((c=this.config._internal)?.currentDate)?.call(c)??new Date,{value:d,responseHeaders:f}=await X({url:this.config.url({path:`/images/generations`,modelId:this.modelId}),headers:K(this.config.headers(),o),body:{model:this.modelId,prompt:e,n:t,size:n,...a.openai??{},...Ho.has(this.modelId)?{}:{response_format:`b64_json`}},failedResponseHandler:$,successfulResponseHandler:Z(Wo),abortSignal:s,fetch:this.config.fetch});return{images:d.data.map(e=>e.b64_json),warnings:l,response:{timestamp:u,modelId:this.modelId,headers:f},providerMetadata:{openai:{images:d.data.map(e=>e.revised_prompt?{revisedPrompt:e.revised_prompt}:null)}}}}},Wo=i.object({data:i.array(i.object({b64_json:i.string(),revised_prompt:i.string().optional()}))}),Go=i.object({code:i.string().nullish(),containerId:i.string()}),Ko=i.object({outputs:i.array(i.discriminatedUnion(`type`,[i.object({type:i.literal(`logs`),logs:i.string()}),i.object({type:i.literal(`image`),url:i.string()})])).nullish()}),qo=i.object({container:i.union([i.string(),i.object({fileIds:i.array(i.string()).optional()})]).optional()}),Jo=ao({id:`openai.code_interpreter`,name:`code_interpreter`,inputSchema:Go,outputSchema:Ko}),Yo=(e={})=>Jo(e),Xo=i.object({key:i.string(),type:i.enum([`eq`,`ne`,`gt`,`gte`,`lt`,`lte`]),value:i.union([i.string(),i.number(),i.boolean()])}),Zo=i.object({type:i.enum([`and`,`or`]),filters:i.array(i.union([Xo,i.lazy(()=>Zo)]))}),Qo=i.object({vectorStoreIds:i.array(i.string()),maxNumResults:i.number().optional(),ranking:i.object({ranker:i.string().optional(),scoreThreshold:i.number().optional()}).optional(),filters:i.union([Xo,Zo]).optional()}),$o=i.object({queries:i.array(i.string()),results:i.array(i.object({attributes:i.record(i.string(),i.unknown()),fileId:i.string(),filename:i.string(),score:i.number(),text:i.string()})).nullable()}),es=ao({id:`openai.file_search`,name:`file_search`,inputSchema:i.object({}),outputSchema:$o}),ts=i.object({background:i.enum([`auto`,`opaque`,`transparent`]).optional(),inputFidelity:i.enum([`low`,`high`]).optional(),inputImageMask:i.object({fileId:i.string().optional(),imageUrl:i.string().optional()}).optional(),model:i.string().optional(),moderation:i.enum([`auto`]).optional(),outputCompression:i.number().int().min(0).max(100).optional(),outputFormat:i.enum([`png`,`jpeg`,`webp`]).optional(),quality:i.enum([`auto`,`low`,`medium`,`high`]).optional(),size:i.enum([`1024x1024`,`1024x1536`,`1536x1024`,`auto`]).optional()}).strict(),ns=i.object({result:i.string()}),rs=ao({id:`openai.image_generation`,name:`image_generation`,inputSchema:i.object({}),outputSchema:ns}),os=(e={})=>rs(e),ss=i.object({action:i.object({type:i.literal(`exec`),command:i.array(i.string()),timeoutMs:i.number().optional(),user:i.string().optional(),workingDirectory:i.string().optional(),env:i.record(i.string(),i.string()).optional()})}),cs=i.object({output:i.string()}),ls=ao({id:`openai.local_shell`,name:`local_shell`,inputSchema:ss,outputSchema:cs}),us=i.object({filters:i.object({allowedDomains:i.array(i.string()).optional()}).optional(),searchContextSize:i.enum([`low`,`medium`,`high`]).optional(),userLocation:i.object({type:i.literal(`approximate`),country:i.string().optional(),city:i.string().optional(),region:i.string().optional(),timezone:i.string().optional()}).optional()}),ds=io({id:`openai.web_search`,name:`web_search`,inputSchema:i.object({action:i.discriminatedUnion(`type`,[i.object({type:i.literal(`search`),query:i.string().nullish()}),i.object({type:i.literal(`open_page`),url:i.string()}),i.object({type:i.literal(`find`),url:i.string(),pattern:i.string()})]).nullish()})}),fs=(e={})=>ds(e),ps=i.object({searchContextSize:i.enum([`low`,`medium`,`high`]).optional(),userLocation:i.object({type:i.literal(`approximate`),country:i.string().optional(),city:i.string().optional(),region:i.string().optional(),timezone:i.string().optional()}).optional()}),ms=io({id:`openai.web_search_preview`,name:`web_search_preview`,inputSchema:i.object({action:i.discriminatedUnion(`type`,[i.object({type:i.literal(`search`),query:i.string().nullish()}),i.object({type:i.literal(`open_page`),url:i.string()}),i.object({type:i.literal(`find`),url:i.string(),pattern:i.string()})]).nullish()})}),hs={codeInterpreter:Yo,fileSearch:es,imageGeneration:os,localShell:ls,webSearchPreview:ms,webSearch:fs};function gs(e,t){return t?t.some(t=>e.startsWith(t)):!1}async function _s({prompt:e,systemMessageMode:t,fileIdPrefixes:n,store:r,hasLocalShellTool:i=!1}){let a=[],o=[];for(let{role:s,content:c}of e)switch(s){case`system`:switch(t){case`system`:a.push({role:`system`,content:c});break;case`developer`:a.push({role:`developer`,content:c});break;case`remove`:o.push({type:`other`,message:`system messages are removed for this model`});break;default:{let e=t;throw Error(`Unsupported system message mode: ${e}`)}}break;case`user`:a.push({role:`user`,content:c.map((e,t)=>{switch(e.type){case`text`:return{type:`input_text`,text:e.text};case`file`:if(e.mediaType.startsWith(`image/`)){let t=e.mediaType===`image/*`?`image/jpeg`:e.mediaType;return{type:`input_image`,...e.data instanceof URL?{image_url:e.data.toString()}:typeof e.data==`string`&&gs(e.data,n)?{file_id:e.data}:{image_url:`data:${t};base64,${Q(e.data)}`},detail:e.providerOptions?.openai?.imageDetail}}else if(e.mediaType===`application/pdf`)return e.data instanceof URL?{type:`input_file`,file_url:e.data.toString()}:{type:`input_file`,...typeof e.data==`string`&&gs(e.data,n)?{file_id:e.data}:{filename:e.filename??`part-${t}.pdf`,file_data:`data:application/pdf;base64,${Q(e.data)}`}};else throw new I({functionality:`file part media type ${e.mediaType}`})}})});break;case`assistant`:{let e={},t={};for(let n of c)switch(n.type){case`text`:a.push({role:`assistant`,content:[{type:`output_text`,text:n.text}],id:n.providerOptions?.openai?.itemId??void 0});break;case`tool-call`:if(t[n.toolCallId]=n,n.providerExecuted)break;if(i&&n.toolName===`local_shell`){let e=ss.parse(n.input);a.push({type:`local_shell_call`,call_id:n.toolCallId,id:n.providerOptions?.openai?.itemId??void 0,action:{type:`exec`,command:e.action.command,timeout_ms:e.action.timeoutMs,user:e.action.user,working_directory:e.action.workingDirectory,env:e.action.env}});break}a.push({type:`function_call`,call_id:n.toolCallId,name:n.toolName,arguments:JSON.stringify(n.input),id:n.providerOptions?.openai?.itemId??void 0});break;case`tool-result`:r?a.push({type:`item_reference`,id:n.toolCallId}):o.push({type:`other`,message:`Results for OpenAI tool ${n.toolName} are not sent to the API when store is false`});break;case`reasoning`:{let t=await Y({provider:`openai`,providerOptions:n.providerOptions,schema:vs}),i=t?.itemId;if(i!=null){let s=e[i];if(r)s===void 0&&(a.push({type:`item_reference`,id:i}),e[i]={type:`reasoning`,id:i,summary:[]});else{let r=[];n.text.length>0?r.push({type:`summary_text`,text:n.text}):s!==void 0&&o.push({type:`other`,message:`Cannot append empty reasoning part to existing reasoning sequence. Skipping reasoning part: ${JSON.stringify(n)}.`}),s===void 0?(e[i]={type:`reasoning`,id:i,encrypted_content:t?.reasoningEncryptedContent,summary:r},a.push(e[i])):s.summary.push(...r)}}else o.push({type:`other`,message:`Non-OpenAI reasoning parts are not supported. Skipping reasoning part: ${JSON.stringify(n)}.`});break}}break}case`tool`:for(let e of c){let t=e.output;if(i&&e.toolName===`local_shell`&&t.type===`json`){a.push({type:`local_shell_call_output`,call_id:e.toolCallId,output:cs.parse(t.value).output});break}let n;switch(t.type){case`text`:case`error-text`:n=t.value;break;case`content`:case`json`:case`error-json`:n=JSON.stringify(t.value);break}a.push({type:`function_call_output`,call_id:e.toolCallId,output:n})}break;default:{let e=s;throw Error(`Unsupported role: ${e}`)}}return{input:a,warnings:o}}var vs=i.object({itemId:i.string().nullish(),reasoningEncryptedContent:i.string().nullish()});function ys({finishReason:e,hasFunctionCall:t}){switch(e){case void 0:case null:return t?`tool-calls`:`stop`;case`max_output_tokens`:return`length`;case`content_filter`:return`content-filter`;default:return t?`tool-calls`:`unknown`}}function bs({tools:e,toolChoice:t,strictJsonSchema: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)switch(t.type){case`function`:i.push({type:`function`,name:t.name,description:t.description,parameters:t.inputSchema,strict:n});break;case`provider-defined`:switch(t.id){case`openai.file_search`:{let e=Qo.parse(t.args);i.push({type:`file_search`,vector_store_ids:e.vectorStoreIds,max_num_results:e.maxNumResults,ranking_options:e.ranking?{ranker:e.ranking.ranker,score_threshold:e.ranking.scoreThreshold}:void 0,filters:e.filters});break}case`openai.local_shell`:i.push({type:`local_shell`});break;case`openai.web_search_preview`:{let e=ps.parse(t.args);i.push({type:`web_search_preview`,search_context_size:e.searchContextSize,user_location:e.userLocation});break}case`openai.web_search`:{let e=us.parse(t.args);i.push({type:`web_search`,filters:e.filters==null?void 0:{allowed_domains:e.filters.allowedDomains},search_context_size:e.searchContextSize,user_location:e.userLocation});break}case`openai.code_interpreter`:{let e=qo.parse(t.args);i.push({type:`code_interpreter`,container:e.container==null?{type:`auto`,file_ids:void 0}:typeof e.container==`string`?e.container:{type:`auto`,file_ids:e.container.fileIds}});break}case`openai.image_generation`:{let e=ts.parse(t.args);i.push({type:`image_generation`,background:e.background,input_fidelity:e.inputFidelity,input_image_mask:e.inputImageMask?{file_id:e.inputImageMask.fileId,image_url:e.inputImageMask.imageUrl}:void 0,model:e.model,size:e.size,quality:e.quality,moderation:e.moderation,output_format:e.outputFormat,output_compression:e.outputCompression});break}}break;default:r.push({type:`unsupported-tool`,tool:t});break}if(t==null)return{tools:i,toolChoice:void 0,toolWarnings:r};let a=t.type;switch(a){case`auto`:case`none`:case`required`:return{tools:i,toolChoice:a,toolWarnings:r};case`tool`:return{tools:i,toolChoice:t.toolName===`code_interpreter`||t.toolName===`file_search`||t.toolName===`image_generation`||t.toolName===`web_search_preview`||t.toolName===`web_search`?{type:t.toolName}:{type:`function`,name:t.toolName},toolWarnings:r};default:throw new I({functionality:`tool choice type: ${a}`})}}var xs=i.object({type:i.literal(`web_search_call`),id:i.string(),status:i.string(),action:i.discriminatedUnion(`type`,[i.object({type:i.literal(`search`),query:i.string().nullish()}),i.object({type:i.literal(`open_page`),url:i.string()}),i.object({type:i.literal(`find`),url:i.string(),pattern:i.string()})]).nullish()}),Ss=i.object({type:i.literal(`file_search_call`),id:i.string(),queries:i.array(i.string()),results:i.array(i.object({attributes:i.record(i.string(),i.unknown()),file_id:i.string(),filename:i.string(),score:i.number(),text:i.string()})).nullish()}),Cs=i.object({type:i.literal(`code_interpreter_call`),id:i.string(),code:i.string().nullable(),container_id:i.string(),outputs:i.array(i.discriminatedUnion(`type`,[i.object({type:i.literal(`logs`),logs:i.string()}),i.object({type:i.literal(`image`),url:i.string()})])).nullable()}),ws=i.object({type:i.literal(`local_shell_call`),id:i.string(),call_id:i.string(),action:i.object({type:i.literal(`exec`),command:i.array(i.string()),timeout_ms:i.number().optional(),user:i.string().optional(),working_directory:i.string().optional(),env:i.record(i.string(),i.string()).optional()})}),Ts=i.object({type:i.literal(`image_generation_call`),id:i.string(),result:i.string()}),Es=20,Ds=i.array(i.object({token:i.string(),logprob:i.number(),top_logprobs:i.array(i.object({token:i.string(),logprob:i.number()}))})),Os=class{constructor(e,t){this.specificationVersion=`v2`,this.supportedUrls={"image/*":[/^https?:\/\/.*$/],"application/pdf":[/^https?:\/\/.*$/]},this.modelId=e,this.config=t}get provider(){return this.config.provider}async getArgs({maxOutputTokens:e,temperature:t,stopSequences:n,topP:r,topK:i,presencePenalty:a,frequencyPenalty:o,seed:s,prompt:c,providerOptions:l,tools:u,toolChoice:d,responseFormat:f}){let p=[],m=rc(this.modelId);i!=null&&p.push({type:`unsupported-setting`,setting:`topK`}),s!=null&&p.push({type:`unsupported-setting`,setting:`seed`}),a!=null&&p.push({type:`unsupported-setting`,setting:`presencePenalty`}),o!=null&&p.push({type:`unsupported-setting`,setting:`frequencyPenalty`}),n!=null&&p.push({type:`unsupported-setting`,setting:`stopSequences`});let h=await Y({provider:`openai`,providerOptions:l,schema:ic}),{input:g,warnings:_}=await _s({prompt:c,systemMessageMode:m.systemMessageMode,fileIdPrefixes:this.config.fileIdPrefixes,store:h?.store??!0,hasLocalShellTool:x(`openai.local_shell`)});p.push(..._);let v=h?.strictJsonSchema??!1,y=h?.include;function b(e){y=y==null?[e]:[...y,e]}function x(e){return u?.find(t=>t.type===`provider-defined`&&t.id===e)!=null}let S=typeof h?.logprobs==`number`?h?.logprobs:h?.logprobs===!0?Es:void 0;S&&b(`message.output_text.logprobs`);let ee=u?.find(e=>e.type===`provider-defined`&&(e.id===`openai.web_search`||e.id===`openai.web_search_preview`))?.name;ee&&b(`web_search_call.action.sources`),x(`openai.code_interpreter`)&&b(`code_interpreter_call.outputs`);let C={model:this.modelId,input:g,temperature:t,top_p:r,max_output_tokens:e,...(f?.type===`json`||h?.textVerbosity)&&{text:{...f?.type===`json`&&{format:f.schema==null?{type:`json_object`}:{type:`json_schema`,strict:v,name:f.name??`response`,description:f.description,schema:f.schema}},...h?.textVerbosity&&{verbosity:h.textVerbosity}}},max_tool_calls:h?.maxToolCalls,metadata:h?.metadata,parallel_tool_calls:h?.parallelToolCalls,previous_response_id:h?.previousResponseId,store:h?.store,user:h?.user,instructions:h?.instructions,service_tier:h?.serviceTier,include:y,prompt_cache_key:h?.promptCacheKey,safety_identifier:h?.safetyIdentifier,top_logprobs:S,...m.isReasoningModel&&(h?.reasoningEffort!=null||h?.reasoningSummary!=null)&&{reasoning:{...h?.reasoningEffort!=null&&{effort:h.reasoningEffort},...h?.reasoningSummary!=null&&{summary:h.reasoningSummary}}},...m.requiredAutoTruncation&&{truncation:`auto`}};m.isReasoningModel?(C.temperature!=null&&(C.temperature=void 0,p.push({type:`unsupported-setting`,setting:`temperature`,details:`temperature is not supported for reasoning models`})),C.top_p!=null&&(C.top_p=void 0,p.push({type:`unsupported-setting`,setting:`topP`,details:`topP is not supported for reasoning models`}))):(h?.reasoningEffort!=null&&p.push({type:`unsupported-setting`,setting:`reasoningEffort`,details:`reasoningEffort is not supported for non-reasoning models`}),h?.reasoningSummary!=null&&p.push({type:`unsupported-setting`,setting:`reasoningSummary`,details:`reasoningSummary is not supported for non-reasoning models`})),h?.serviceTier===`flex`&&!m.supportsFlexProcessing&&(p.push({type:`unsupported-setting`,setting:`serviceTier`,details:`flex processing is only available for o3, o4-mini, and gpt-5 models`}),delete C.service_tier),h?.serviceTier===`priority`&&!m.supportsPriorityProcessing&&(p.push({type:`unsupported-setting`,setting:`serviceTier`,details:`priority processing is only available for supported models (gpt-4, gpt-5, gpt-5-mini, o3, o4-mini) and requires Enterprise access. gpt-5-nano is not supported`}),delete C.service_tier);let{tools:te,toolChoice:ne,toolWarnings:re}=bs({tools:u,toolChoice:d,strictJsonSchema:v});return{webSearchToolName:ee,args:{...C,tools:te,tool_choice:ne},warnings:[...p,...re]}}async doGenerate(e){var t,n;let{args:r,warnings:a,webSearchToolName:o}=await this.getArgs(e),s=this.config.url({path:`/responses`,modelId:this.modelId}),{responseHeaders:c,value:l,rawValue:u}=await X({url:s,headers:K(this.config.headers(),e.headers),body:r,failedResponseHandler:$,successfulResponseHandler:Z(i.object({id:i.string(),created_at:i.number(),error:i.object({code:i.string(),message:i.string()}).nullish(),model:i.string(),output:i.array(i.discriminatedUnion(`type`,[i.object({type:i.literal(`message`),role:i.literal(`assistant`),id:i.string(),content:i.array(i.object({type:i.literal(`output_text`),text:i.string(),logprobs:Ds.nullish(),annotations:i.array(i.discriminatedUnion(`type`,[i.object({type:i.literal(`url_citation`),start_index:i.number(),end_index:i.number(),url:i.string(),title:i.string()}),i.object({type:i.literal(`file_citation`),file_id:i.string(),filename:i.string().nullish(),index:i.number().nullish(),start_index:i.number().nullish(),end_index:i.number().nullish(),quote:i.string().nullish()}),i.object({type:i.literal(`container_file_citation`)})]))}))}),xs,Ss,Cs,Ts,ws,i.object({type:i.literal(`function_call`),call_id:i.string(),name:i.string(),arguments:i.string(),id:i.string()}),i.object({type:i.literal(`computer_call`),id:i.string(),status:i.string().optional()}),i.object({type:i.literal(`reasoning`),id:i.string(),encrypted_content:i.string().nullish(),summary:i.array(i.object({type:i.literal(`summary_text`),text:i.string()}))})])),service_tier:i.string().nullish(),incomplete_details:i.object({reason:i.string()}).nullish(),usage:ks})),abortSignal:e.abortSignal,fetch:this.config.fetch});if(l.error)throw new k({message:l.error.message,url:s,requestBodyValues:r,statusCode:400,responseHeaders:c,responseBody:u,isRetryable:!1});let d=[],f=[],p=!1;for(let r of l.output)switch(r.type){case`reasoning`:r.summary.length===0&&r.summary.push({type:`summary_text`,text:``});for(let e of r.summary)d.push({type:`reasoning`,text:e.text,providerMetadata:{openai:{itemId:r.id,reasoningEncryptedContent:r.encrypted_content??null}}});break;case`image_generation_call`:d.push({type:`tool-call`,toolCallId:r.id,toolName:`image_generation`,input:`{}`,providerExecuted:!0}),d.push({type:`tool-result`,toolCallId:r.id,toolName:`image_generation`,result:{result:r.result},providerExecuted:!0});break;case`local_shell_call`:d.push({type:`tool-call`,toolCallId:r.call_id,toolName:`local_shell`,input:JSON.stringify({action:r.action}),providerMetadata:{openai:{itemId:r.id}}});break;case`message`:for(let i of r.content){e.providerOptions?.openai?.logprobs&&i.logprobs&&f.push(i.logprobs),d.push({type:`text`,text:i.text,providerMetadata:{openai:{itemId:r.id}}});for(let e of i.annotations)e.type===`url_citation`?d.push({type:`source`,sourceType:`url`,id:(t=this.config).generateId?.call(t)??J(),url:e.url,title:e.title}):e.type===`file_citation`&&d.push({type:`source`,sourceType:`document`,id:(n=this.config).generateId?.call(n)??J(),mediaType:`text/plain`,title:e.quote??e.filename??`Document`,filename:e.filename??e.file_id})}break;case`function_call`:p=!0,d.push({type:`tool-call`,toolCallId:r.call_id,toolName:r.name,input:r.arguments,providerMetadata:{openai:{itemId:r.id}}});break;case`web_search_call`:d.push({type:`tool-call`,toolCallId:r.id,toolName:o??`web_search`,input:JSON.stringify({action:r.action}),providerExecuted:!0}),d.push({type:`tool-result`,toolCallId:r.id,toolName:o??`web_search`,result:{status:r.status},providerExecuted:!0});break;case`computer_call`:d.push({type:`tool-call`,toolCallId:r.id,toolName:`computer_use`,input:``,providerExecuted:!0}),d.push({type:`tool-result`,toolCallId:r.id,toolName:`computer_use`,result:{type:`computer_use_tool_result`,status:r.status||`completed`},providerExecuted:!0});break;case`file_search_call`:d.push({type:`tool-call`,toolCallId:r.id,toolName:`file_search`,input:`{}`,providerExecuted:!0}),d.push({type:`tool-result`,toolCallId:r.id,toolName:`file_search`,result:{queries:r.queries,results:r.results?.map(e=>({attributes:e.attributes,fileId:e.file_id,filename:e.filename,score:e.score,text:e.text}))??null},providerExecuted:!0});break;case`code_interpreter_call`:d.push({type:`tool-call`,toolCallId:r.id,toolName:`code_interpreter`,input:JSON.stringify({code:r.code,containerId:r.container_id}),providerExecuted:!0}),d.push({type:`tool-result`,toolCallId:r.id,toolName:`code_interpreter`,result:{outputs:r.outputs},providerExecuted:!0});break}let m={openai:{responseId:l.id}};return f.length>0&&(m.openai.logprobs=f),typeof l.service_tier==`string`&&(m.openai.serviceTier=l.service_tier),{content:d,finishReason:ys({finishReason:l.incomplete_details?.reason,hasFunctionCall:p}),usage:{inputTokens:l.usage.input_tokens,outputTokens:l.usage.output_tokens,totalTokens:l.usage.input_tokens+l.usage.output_tokens,reasoningTokens:l.usage.output_tokens_details?.reasoning_tokens??void 0,cachedInputTokens:l.usage.input_tokens_details?.cached_tokens??void 0},request:{body:r},response:{id:l.id,timestamp:new Date(l.created_at*1e3),modelId:l.model,headers:c,body:u},providerMetadata:m,warnings:a}}async doStream(e){let{args:t,warnings:n,webSearchToolName:r}=await this.getArgs(e),{responseHeaders:i,value:a}=await X({url:this.config.url({path:`/responses`,modelId:this.modelId}),headers:K(this.config.headers(),e.headers),body:{...t,stream:!0},failedResponseHandler:$,successfulResponseHandler:so(Hs),abortSignal:e.abortSignal,fetch:this.config.fetch}),o=this,s=`unknown`,c={inputTokens:void 0,outputTokens:void 0,totalTokens:void 0},l=[],u=null,d={},f=!1,p={},m;return{stream:a.pipeThrough(new TransformStream({start(e){e.enqueue({type:`stream-start`,warnings:n})},transform(t,n){var i,a,h;if(e.includeRawChunks&&n.enqueue({type:`raw`,rawValue:t.rawValue}),!t.success){s=`error`,n.enqueue({type:`error`,error:t.error});return}let g=t.value;if(Zs(g))g.item.type===`function_call`?(d[g.output_index]={toolName:g.item.name,toolCallId:g.item.call_id},n.enqueue({type:`tool-input-start`,id:g.item.call_id,toolName:g.item.name})):g.item.type===`web_search_call`?(d[g.output_index]={toolName:r??`web_search`,toolCallId:g.item.id},n.enqueue({type:`tool-input-start`,id:g.item.id,toolName:r??`web_search`})):g.item.type===`computer_call`?(d[g.output_index]={toolName:`computer_use`,toolCallId:g.item.id},n.enqueue({type:`tool-input-start`,id:g.item.id,toolName:`computer_use`})):g.item.type===`code_interpreter_call`?(d[g.output_index]={toolName:`code_interpreter`,toolCallId:g.item.id,codeInterpreter:{containerId:g.item.container_id}},n.enqueue({type:`tool-input-start`,id:g.item.id,toolName:`code_interpreter`}),n.enqueue({type:`tool-input-delta`,id:g.item.id,delta:`{"containerId":"${g.item.container_id}","code":"`})):g.item.type===`file_search_call`?n.enqueue({type:`tool-call`,toolCallId:g.item.id,toolName:`file_search`,input:`{}`,providerExecuted:!0}):g.item.type===`image_generation_call`?n.enqueue({type:`tool-call`,toolCallId:g.item.id,toolName:`image_generation`,input:`{}`,providerExecuted:!0}):g.item.type===`message`?n.enqueue({type:`text-start`,id:g.item.id,providerMetadata:{openai:{itemId:g.item.id}}}):Qs(g)&&(p[g.item.id]={encryptedContent:g.item.encrypted_content,summaryParts:[0]},n.enqueue({type:`reasoning-start`,id:`${g.item.id}:0`,providerMetadata:{openai:{itemId:g.item.id,reasoningEncryptedContent:g.item.encrypted_content??null}}}));else if(Ws(g)){if(g.item.type===`function_call`)d[g.output_index]=void 0,f=!0,n.enqueue({type:`tool-input-end`,id:g.item.call_id}),n.enqueue({type:`tool-call`,toolCallId:g.item.call_id,toolName:g.item.name,input:g.item.arguments,providerMetadata:{openai:{itemId:g.item.id}}});else if(g.item.type===`web_search_call`)d[g.output_index]=void 0,n.enqueue({type:`tool-input-end`,id:g.item.id}),n.enqueue({type:`tool-call`,toolCallId:g.item.id,toolName:`web_search`,input:JSON.stringify({action:g.item.action}),providerExecuted:!0}),n.enqueue({type:`tool-result`,toolCallId:g.item.id,toolName:`web_search`,result:{status:g.item.status},providerExecuted:!0});else if(g.item.type===`computer_call`)d[g.output_index]=void 0,n.enqueue({type:`tool-input-end`,id:g.item.id}),n.enqueue({type:`tool-call`,toolCallId:g.item.id,toolName:`computer_use`,input:``,providerExecuted:!0}),n.enqueue({type:`tool-result`,toolCallId:g.item.id,toolName:`computer_use`,result:{type:`computer_use_tool_result`,status:g.item.status||`completed`},providerExecuted:!0});else if(g.item.type===`file_search_call`)d[g.output_index]=void 0,n.enqueue({type:`tool-result`,toolCallId:g.item.id,toolName:`file_search`,result:{queries:g.item.queries,results:g.item.results?.map(e=>({attributes:e.attributes,fileId:e.file_id,filename:e.filename,score:e.score,text:e.text}))??null},providerExecuted:!0});else if(g.item.type===`code_interpreter_call`)d[g.output_index]=void 0,n.enqueue({type:`tool-result`,toolCallId:g.item.id,toolName:`code_interpreter`,result:{outputs:g.item.outputs},providerExecuted:!0});else if(g.item.type===`image_generation_call`)n.enqueue({type:`tool-result`,toolCallId:g.item.id,toolName:`image_generation`,result:{result:g.item.result},providerExecuted:!0});else if(g.item.type===`local_shell_call`)d[g.output_index]=void 0,n.enqueue({type:`tool-call`,toolCallId:g.item.call_id,toolName:`local_shell`,input:JSON.stringify({action:{type:`exec`,command:g.item.action.command,timeoutMs:g.item.action.timeout_ms,user:g.item.action.user,workingDirectory:g.item.action.working_directory,env:g.item.action.env}}),providerMetadata:{openai:{itemId:g.item.id}}});else if(g.item.type===`message`)n.enqueue({type:`text-end`,id:g.item.id});else if(Gs(g)){let e=p[g.item.id];for(let t of e.summaryParts)n.enqueue({type:`reasoning-end`,id:`${g.item.id}:${t}`,providerMetadata:{openai:{itemId:g.item.id,reasoningEncryptedContent:g.item.encrypted_content??null}}});delete p[g.item.id]}}else if(Js(g)){let e=d[g.output_index];e!=null&&n.enqueue({type:`tool-input-delta`,id:e.toolCallId,delta:g.delta})}else if(Ys(g)){let e=d[g.output_index];e!=null&&n.enqueue({type:`tool-input-delta`,id:e.toolCallId,delta:JSON.stringify(g.delta).slice(1,-1)})}else if(Xs(g)){let e=d[g.output_index];e!=null&&(n.enqueue({type:`tool-input-delta`,id:e.toolCallId,delta:`"}`}),n.enqueue({type:`tool-input-end`,id:e.toolCallId}),n.enqueue({type:`tool-call`,toolCallId:e.toolCallId,toolName:`code_interpreter`,input:JSON.stringify({code:g.code,containerId:e.codeInterpreter.containerId}),providerExecuted:!0}))}else qs(g)?(u=g.response.id,n.enqueue({type:`response-metadata`,id:g.response.id,timestamp:new Date(g.response.created_at*1e3),modelId:g.response.model})):Us(g)?(n.enqueue({type:`text-delta`,id:g.item_id,delta:g.delta}),e.providerOptions?.openai?.logprobs&&g.logprobs&&l.push(g.logprobs)):ec(g)?g.summary_index>0&&((i=p[g.item_id])==null||i.summaryParts.push(g.summary_index),n.enqueue({type:`reasoning-start`,id:`${g.item_id}:${g.summary_index}`,providerMetadata:{openai:{itemId:g.item_id,reasoningEncryptedContent:p[g.item_id]?.encryptedContent??null}}})):tc(g)?n.enqueue({type:`reasoning-delta`,id:`${g.item_id}:${g.summary_index}`,delta:g.delta,providerMetadata:{openai:{itemId:g.item_id}}}):Ks(g)?(s=ys({finishReason:g.response.incomplete_details?.reason,hasFunctionCall:f}),c.inputTokens=g.response.usage.input_tokens,c.outputTokens=g.response.usage.output_tokens,c.totalTokens=g.response.usage.input_tokens+g.response.usage.output_tokens,c.reasoningTokens=g.response.usage.output_tokens_details?.reasoning_tokens??void 0,c.cachedInputTokens=g.response.usage.input_tokens_details?.cached_tokens??void 0,typeof g.response.service_tier==`string`&&(m=g.response.service_tier)):$s(g)?g.annotation.type===`url_citation`?n.enqueue({type:`source`,sourceType:`url`,id:(a=o.config).generateId?.call(a)??J(),url:g.annotation.url,title:g.annotation.title}):g.annotation.type===`file_citation`&&n.enqueue({type:`source`,sourceType:`document`,id:(h=o.config).generateId?.call(h)??J(),mediaType:`text/plain`,title:g.annotation.quote??g.annotation.filename??`Document`,filename:g.annotation.filename??g.annotation.file_id}):nc(g)&&n.enqueue({type:`error`,error:g})},flush(e){let t={openai:{responseId:u}};l.length>0&&(t.openai.logprobs=l),m!==void 0&&(t.openai.serviceTier=m),e.enqueue({type:`finish`,finishReason:s,usage:c,providerMetadata:t})}})),request:{body:t},response:{headers:i}}}},ks=i.object({input_tokens:i.number(),input_tokens_details:i.object({cached_tokens:i.number().nullish()}).nullish(),output_tokens:i.number(),output_tokens_details:i.object({reasoning_tokens:i.number().nullish()}).nullish()}),As=i.object({type:i.literal(`response.output_text.delta`),item_id:i.string(),delta:i.string(),logprobs:Ds.nullish()}),js=i.object({type:i.literal(`error`),code:i.string(),message:i.string(),param:i.string().nullish(),sequence_number:i.number()}),Ms=i.object({type:i.enum([`response.completed`,`response.incomplete`]),response:i.object({incomplete_details:i.object({reason:i.string()}).nullish(),usage:ks,service_tier:i.string().nullish()})}),Ns=i.object({type:i.literal(`response.created`),response:i.object({id:i.string(),created_at:i.number(),model:i.string(),service_tier:i.string().nullish()})}),Ps=i.object({type:i.literal(`response.output_item.added`),output_index:i.number(),item:i.discriminatedUnion(`type`,[i.object({type:i.literal(`message`),id:i.string()}),i.object({type:i.literal(`reasoning`),id:i.string(),encrypted_content:i.string().nullish()}),i.object({type:i.literal(`function_call`),id:i.string(),call_id:i.string(),name:i.string(),arguments:i.string()}),i.object({type:i.literal(`web_search_call`),id:i.string(),status:i.string(),action:i.object({type:i.literal(`search`),query:i.string().optional()}).nullish()}),i.object({type:i.literal(`computer_call`),id:i.string(),status:i.string()}),i.object({type:i.literal(`file_search_call`),id:i.string()}),i.object({type:i.literal(`image_generation_call`),id:i.string()}),i.object({type:i.literal(`code_interpreter_call`),id:i.string(),container_id:i.string(),code:i.string().nullable(),outputs:i.array(i.discriminatedUnion(`type`,[i.object({type:i.literal(`logs`),logs:i.string()}),i.object({type:i.literal(`image`),url:i.string()})])).nullable(),status:i.string()})])}),Fs=i.object({type:i.literal(`response.output_item.done`),output_index:i.number(),item:i.discriminatedUnion(`type`,[i.object({type:i.literal(`message`),id:i.string()}),i.object({type:i.literal(`reasoning`),id:i.string(),encrypted_content:i.string().nullish()}),i.object({type:i.literal(`function_call`),id:i.string(),call_id:i.string(),name:i.string(),arguments:i.string(),status:i.literal(`completed`)}),Cs,Ts,xs,Ss,ws,i.object({type:i.literal(`computer_call`),id:i.string(),status:i.literal(`completed`)})])}),Is=i.object({type:i.literal(`response.function_call_arguments.delta`),item_id:i.string(),output_index:i.number(),delta:i.string()}),Ls=i.object({type:i.literal(`response.code_interpreter_call_code.delta`),item_id:i.string(),output_index:i.number(),delta:i.string()}),Rs=i.object({type:i.literal(`response.code_interpreter_call_code.done`),item_id:i.string(),output_index:i.number(),code:i.string()}),zs=i.object({type:i.literal(`response.output_text.annotation.added`),annotation:i.discriminatedUnion(`type`,[i.object({type:i.literal(`url_citation`),url:i.string(),title:i.string()}),i.object({type:i.literal(`file_citation`),file_id:i.string(),filename:i.string().nullish(),index:i.number().nullish(),start_index:i.number().nullish(),end_index:i.number().nullish(),quote:i.string().nullish()})])}),Bs=i.object({type:i.literal(`response.reasoning_summary_part.added`),item_id:i.string(),summary_index:i.number()}),Vs=i.object({type:i.literal(`response.reasoning_summary_text.delta`),item_id:i.string(),summary_index:i.number(),delta:i.string()}),Hs=i.union([As,Ms,Ns,Ps,Fs,Is,Ls,Rs,zs,Bs,Vs,js,i.object({type:i.string()}).loose()]);function Us(e){return e.type===`response.output_text.delta`}function Ws(e){return e.type===`response.output_item.done`}function Gs(e){return Ws(e)&&e.item.type===`reasoning`}function Ks(e){return e.type===`response.completed`||e.type===`response.incomplete`}function qs(e){return e.type===`response.created`}function Js(e){return e.type===`response.function_call_arguments.delta`}function Ys(e){return e.type===`response.code_interpreter_call_code.delta`}function Xs(e){return e.type===`response.code_interpreter_call_code.done`}function Zs(e){return e.type===`response.output_item.added`}function Qs(e){return Zs(e)&&e.item.type===`reasoning`}function $s(e){return e.type===`response.output_text.annotation.added`}function ec(e){return e.type===`response.reasoning_summary_part.added`}function tc(e){return e.type===`response.reasoning_summary_text.delta`}function nc(e){return e.type===`error`}function rc(e){let t=e.startsWith(`o3`)||e.startsWith(`o4-mini`)||e.startsWith(`gpt-5`)&&!e.startsWith(`gpt-5-chat`),n=e.startsWith(`gpt-4`)||e.startsWith(`gpt-5-mini`)||e.startsWith(`gpt-5`)&&!e.startsWith(`gpt-5-nano`)&&!e.startsWith(`gpt-5-chat`)||e.startsWith(`o3`)||e.startsWith(`o4-mini`),r={requiredAutoTruncation:!1,systemMessageMode:`system`,supportsFlexProcessing:t,supportsPriorityProcessing:n};return e.startsWith(`gpt-5-chat`)?{...r,isReasoningModel:!1}:e.startsWith(`o`)||e.startsWith(`gpt-5`)||e.startsWith(`codex-`)||e.startsWith(`computer-use`)?e.startsWith(`o1-mini`)||e.startsWith(`o1-preview`)?{...r,isReasoningModel:!0,systemMessageMode:`remove`}:{...r,isReasoningModel:!0,systemMessageMode:`developer`}:{...r,isReasoningModel:!1}}var ic=i.object({include:i.array(i.enum([`reasoning.encrypted_content`,`file_search_call.results`,`message.output_text.logprobs`])).nullish(),instructions:i.string().nullish(),logprobs:i.union([i.boolean(),i.number().min(1).max(Es)]).optional(),maxToolCalls:i.number().nullish(),metadata:i.any().nullish(),parallelToolCalls:i.boolean().nullish(),previousResponseId:i.string().nullish(),promptCacheKey:i.string().nullish(),reasoningEffort:i.string().nullish(),reasoningSummary:i.string().nullish(),safetyIdentifier:i.string().nullish(),serviceTier:i.enum([`auto`,`flex`,`priority`]).nullish(),store:i.boolean().nullish(),strictJsonSchema:i.boolean().nullish(),textVerbosity:i.enum([`low`,`medium`,`high`]).nullish(),user:i.string().nullish()}),ac=i.object({instructions:i.string().nullish(),speed:i.number().min(.25).max(4).default(1).nullish()}),oc=class{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion=`v2`}get provider(){return this.config.provider}async getArgs({text:e,voice:t=`alloy`,outputFormat:n=`mp3`,speed:r,instructions:i,language:a,providerOptions:o}){let s=[],c=await Y({provider:`openai`,providerOptions:o,schema:ac}),l={model:this.modelId,input:e,voice:t,response_format:`mp3`,speed:r,instructions:i};if(n&&([`mp3`,`opus`,`aac`,`flac`,`wav`,`pcm`].includes(n)?l.response_format=n:s.push({type:`unsupported-setting`,setting:`outputFormat`,details:`Unsupported output format: ${n}. Using mp3 instead.`})),c){let e={};for(let t in e){let n=e[t];n!==void 0&&(l[t]=n)}}return a&&s.push({type:`unsupported-setting`,setting:`language`,details:`OpenAI speech models do not support language selection. Language parameter "${a}" was ignored.`}),{requestBody:l,warnings:s}}async doGenerate(e){var t;let n=((t=this.config._internal)?.currentDate)?.call(t)??new Date,{requestBody:r,warnings:i}=await this.getArgs(e),{value:a,responseHeaders:o,rawValue:s}=await X({url:this.config.url({path:`/audio/speech`,modelId:this.modelId}),headers:K(this.config.headers(),e.headers),body:r,failedResponseHandler:$,successfulResponseHandler:co(),abortSignal:e.abortSignal,fetch:this.config.fetch});return{audio:a,warnings:i,request:{body:JSON.stringify(r)},response:{timestamp:n,modelId:this.modelId,headers:o,body:s}}}},sc=i.object({include:i.array(i.string()).optional(),language:i.string().optional(),prompt:i.string().optional(),temperature:i.number().min(0).max(1).default(0).optional(),timestampGranularities:i.array(i.enum([`word`,`segment`])).default([`segment`]).optional()}),cc={afrikaans:`af`,arabic:`ar`,armenian:`hy`,azerbaijani:`az`,belarusian:`be`,bosnian:`bs`,bulgarian:`bg`,catalan:`ca`,chinese:`zh`,croatian:`hr`,czech:`cs`,danish:`da`,dutch:`nl`,english:`en`,estonian:`et`,finnish:`fi`,french:`fr`,galician:`gl`,german:`de`,greek:`el`,hebrew:`he`,hindi:`hi`,hungarian:`hu`,icelandic:`is`,indonesian:`id`,italian:`it`,japanese:`ja`,kannada:`kn`,kazakh:`kk`,korean:`ko`,latvian:`lv`,lithuanian:`lt`,macedonian:`mk`,malay:`ms`,marathi:`mr`,maori:`mi`,nepali:`ne`,norwegian:`no`,persian:`fa`,polish:`pl`,portuguese:`pt`,romanian:`ro`,russian:`ru`,serbian:`sr`,slovak:`sk`,slovenian:`sl`,spanish:`es`,swahili:`sw`,swedish:`sv`,tagalog:`tl`,tamil:`ta`,thai:`th`,turkish:`tr`,ukrainian:`uk`,urdu:`ur`,vietnamese:`vi`,welsh:`cy`},lc=class{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion=`v2`}get provider(){return this.config.provider}async getArgs({audio:e,mediaType:t,providerOptions:n}){let r=[],i=await Y({provider:`openai`,providerOptions:n,schema:sc}),a=new FormData,o=e instanceof Uint8Array?new Blob([e]):new Blob([fo(e)]);a.append(`model`,this.modelId);let s=La(t);if(a.append(`file`,new File([o],`audio`,{type:t}),`audio.${s}`),i){let e={include:i.include,language:i.language,prompt:i.prompt,response_format:[`gpt-4o-transcribe`,`gpt-4o-mini-transcribe`].includes(this.modelId)?`json`:`verbose_json`,temperature:i.temperature,timestamp_granularities:i.timestampGranularities};for(let[t,n]of Object.entries(e))if(n!=null)if(Array.isArray(n))for(let e of n)a.append(`${t}[]`,String(e));else a.append(t,String(n))}return{formData:a,warnings:r}}async doGenerate(e){var t;let n=((t=this.config._internal)?.currentDate)?.call(t)??new Date,{formData:r,warnings:i}=await this.getArgs(e),{value:a,responseHeaders:o,rawValue:s}=await to({url:this.config.url({path:`/audio/transcriptions`,modelId:this.modelId}),headers:K(this.config.headers(),e.headers),formData:r,failedResponseHandler:$,successfulResponseHandler:Z(uc),abortSignal:e.abortSignal,fetch:this.config.fetch}),c=a.language!=null&&a.language in cc?cc[a.language]:void 0;return{text:a.text,segments:a.segments?.map(e=>({text:e.text,startSecond:e.start,endSecond:e.end}))??a.words?.map(e=>({text:e.word,startSecond:e.start,endSecond:e.end}))??[],language:c,durationInSeconds:a.duration??void 0,warnings:i,response:{timestamp:n,modelId:this.modelId,headers:o,body:s}}}},uc=i.object({text:i.string(),language:i.string().nullish(),duration:i.number().nullish(),words:i.array(i.object({word:i.string(),start:i.number(),end:i.number()})).nullish(),segments:i.array(i.object({id:i.number(),seek:i.number(),start:i.number(),end:i.number(),text:i.string(),tokens:i.array(i.number()),temperature:i.number(),avg_logprob:i.number(),compression_ratio:i.number(),no_speech_prob:i.number()})).nullish()}),dc=`2.0.42`;function fc(e={}){let t=mo(Ia({settingValue:e.baseURL,environmentVariableName:`OPENAI_BASE_URL`}))??`https://api.openai.com/v1`,n=e.name??`openai`,r=()=>Aa({Authorization:`Bearer ${Fa({apiKey:e.apiKey,environmentVariableName:`OPENAI_API_KEY`,description:`OpenAI`})}`,"OpenAI-Organization":e.organization,"OpenAI-Project":e.project,...e.headers},`ai-sdk/openai/${dc}`),i=i=>new xo(i,{provider:`${n}.chat`,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch}),a=i=>new Po(i,{provider:`${n}.completion`,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch}),o=i=>new zo(i,{provider:`${n}.embedding`,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch}),s=i=>new Uo(i,{provider:`${n}.image`,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch}),c=i=>new lc(i,{provider:`${n}.transcription`,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch}),l=i=>new oc(i,{provider:`${n}.speech`,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch}),u=e=>{if(new.target)throw Error(`The OpenAI model function cannot be called with the new keyword.`);return d(e)},d=i=>new Os(i,{provider:`${n}.responses`,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch,fileIdPrefixes:[`file-`]}),f=function(e){return u(e)};return f.languageModel=u,f.chat=i,f.completion=a,f.responses=d,f.embedding=o,f.textEmbedding=o,f.textEmbeddingModel=o,f.image=s,f.imageModel=s,f.transcription=c,f.transcriptionModel=c,f.speech=l,f.speechModel=l,f.tools=hs,f}fc();function pc(...e){return e.reduce((e,t)=>({...e,...t??{}}),{})}function mc(e){return Object.fromEntries([...e.headers])}function hc(e=globalThis){return e.window?`runtime/browser`:e.navigator?.userAgent?`runtime/${e.navigator.userAgent.toLowerCase()}`:e.process?.versions?.node?`runtime/node.js/${e.process.version.substring(0)}`:e.EdgeRuntime?`runtime/vercel-edge`:`runtime/unknown`}function gc(e){return Object.fromEntries(Object.entries(e).filter(([e,t])=>t!=null))}function _c(e,...t){let n=gc(e??{}),r=new Headers(n),i=r.get(`user-agent`)||``;return r.set(`user-agent`,[i,...t].filter(Boolean).join(` `)),Object.fromEntries(r)}(({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 j({argument:`separator`,message:`The separator "${r}" must not be part of the alphabet "${n}".`});return()=>`${e}${r}${i()}`})();function vc(e){return(e instanceof Error||e instanceof DOMException)&&(e.name===`AbortError`||e.name===`ResponseAborted`||e.name===`TimeoutError`)}var yc=[`fetch failed`,`failed to fetch`];function bc({error:e,url:t,requestBodyValues:n}){if(vc(e))return e;if(e instanceof TypeError&&yc.includes(e.message.toLowerCase())){let r=e.cause;if(r!=null)return new k({message:`Cannot connect to API: ${r.message}`,cause:r,url:t,requestBodyValues:n,isRetryable:!0})}return e}var xc=`3.0.10`,Sc=/"__proto__"\s*:/,Cc=/"constructor"\s*:/;function wc(e){let t=JSON.parse(e);return typeof t!=`object`||!t||Sc.test(e)===!1&&Cc.test(e)===!1?t:Tc(t)}function Tc(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 Ec(e){let{stackTraceLimit:t}=Error;Error.stackTraceLimit=0;try{return wc(e)}finally{Error.stackTraceLimit=t}}var Dc=Symbol.for(`vercel.ai.validator`);function Oc(e){return{[Dc]:!0,validate:e}}function kc(e){return typeof e==`object`&&!!e&&Dc in e&&e[Dc]===!0&&`validate`in e}function Ac(e){return kc(e)?e:jc(e)}function jc(e){return Oc(async t=>{let n=await e[`~standard`].validate(t);return n.issues==null?{success:!0,value:n.value}:{success:!1,error:new F({value:t,cause:n.issues})}})}async function Mc({value:e,schema:t}){let n=await Nc({value:e,schema:t});if(!n.success)throw F.wrap({value:e,cause:n.error});return n.value}async function Nc({value:e,schema:t}){let n=Ac(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:F.wrap({value:e,cause:t.error}),rawValue:e}}catch(t){return{success:!1,error:F.wrap({value:e,cause:t}),rawValue:e}}}async function Pc({text:e,schema:t}){try{let n=Ec(e);return t==null?n:Mc({value:n,schema:t})}catch(t){throw M.isInstance(t)||F.isInstance(t)?t:new M({text:e,cause:t})}}async function Fc({text:e,schema:t}){try{let n=Ec(e);return t==null?{success:!0,value:n,rawValue:n}:await Nc({value:n,schema:t})}catch(t){return{success:!1,error:M.isInstance(t)?t:new M({text:e,cause:t}),rawValue:void 0}}}var Ic=()=>globalThis.fetch,Lc=async({url:e,headers:t,body:n,failedResponseHandler:r,successfulResponseHandler:i,abortSignal:a,fetch:o})=>Rc({url:e,headers:{"Content-Type":`application/json`,...t},body:{content:JSON.stringify(n),values:n},failedResponseHandler:r,successfulResponseHandler:i,abortSignal:a,fetch:o}),Rc=async({url:e,headers:t={},body:n,successfulResponseHandler:r,failedResponseHandler:i,abortSignal:a,fetch:o=Ic()})=>{try{let s=await o(e,{method:`POST`,headers:_c(t,`ai-sdk/provider-utils/${xc}`,hc()),body:n.content,signal:a}),c=mc(s);if(!s.ok){let t;try{t=await i({response:s,url:e,requestBodyValues:n.values})}catch(t){throw vc(t)||k.isInstance(t)?t:new k({message:`Failed to process error response`,cause:t,statusCode:s.status,url:e,responseHeaders:c,requestBodyValues:n.values})}throw t.value}try{return await r({response:s,url:e,requestBodyValues:n.values})}catch(t){throw t instanceof Error&&(vc(t)||k.isInstance(t))?t:new k({message:`Failed to process successful response`,cause:t,statusCode:s.status,url:e,responseHeaders:c,requestBodyValues:n.values})}}catch(t){throw bc({error:t,url:e,requestBodyValues:n.values})}},zc=({errorSchema:e,errorToMessage:t,isRetryable:n})=>async({response:r,url:i,requestBodyValues:a})=>{let o=await r.text(),s=mc(r);if(o.trim()===``)return{responseHeaders:s,value:new k({message:r.statusText,url:i,requestBodyValues:a,statusCode:r.status,responseHeaders:s,responseBody:o,isRetryable:n?.(r)})};try{let c=await Pc({text:o,schema:e});return{responseHeaders:s,value:new k({message:t(c),url:i,requestBodyValues:a,statusCode:r.status,responseHeaders:s,responseBody:o,data:c,isRetryable:n?.(r,c)})}}catch{return{responseHeaders:s,value:new k({message:r.statusText,url:i,requestBodyValues:a,statusCode:r.status,responseHeaders:s,responseBody:o,isRetryable:n?.(r)})}}},Bc=e=>async({response:t,url:n,requestBodyValues:r})=>{let i=await t.text(),a=await Fc({text:i,schema:e}),o=mc(t);if(!a.success)throw new k({message:`Invalid JSON response`,cause:a.error,statusCode:t.status,responseHeaders:o,responseBody:i,url:n,requestBodyValues:r});return{responseHeaders:o,value:a.value,rawValue:a.rawValue}},{btoa:Vc,atob:Hc}=globalThis;i.object({user:i.string().optional(),reasoningEffort:i.string().optional()});var Uc={errorSchema:i.object({error:i.object({message:i.string(),type:i.string().nullish(),param:i.any().nullish(),code:i.union([i.string(),i.number()]).nullish()})}),errorToMessage:e=>e.error.message},Wc=i.object({prompt_tokens:i.number().nullish(),completion_tokens:i.number().nullish(),total_tokens:i.number().nullish(),prompt_tokens_details:i.object({cached_tokens:i.number().nullish()}).nullish(),completion_tokens_details:i.object({reasoning_tokens:i.number().nullish(),accepted_prediction_tokens:i.number().nullish(),rejected_prediction_tokens:i.number().nullish()}).nullish()}).nullish();i.object({id:i.string().nullish(),created:i.number().nullish(),model:i.string().nullish(),choices:i.array(i.object({message:i.object({role:i.literal(`assistant`).nullish(),content:i.string().nullish(),reasoning_content:i.string().nullish(),reasoning:i.string().nullish(),tool_calls:i.array(i.object({id:i.string().nullish(),function:i.object({name:i.string(),arguments:i.string()})})).nullish()}),finish_reason:i.string().nullish()})),usage:Wc}),i.object({echo:i.boolean().optional(),logitBias:i.record(i.string(),i.number()).optional(),suffix:i.string().optional(),user:i.string().optional()});var Gc=i.object({prompt_tokens:i.number(),completion_tokens:i.number(),total_tokens:i.number()});i.object({id:i.string().nullish(),created:i.number().nullish(),model:i.string().nullish(),choices:i.array(i.object({text:i.string(),finish_reason:i.string()})),usage:Gc.nullish()}),i.object({dimensions:i.number().optional(),user:i.string().optional()}),i.object({data:i.array(i.object({embedding:i.array(i.number())})),usage:i.object({prompt_tokens:i.number()}).nullish(),providerMetadata:i.record(i.string(),i.record(i.string(),i.any())).optional()});var Kc=class{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion=`v2`,this.maxImagesPerCall=10}get provider(){return this.config.provider}async doGenerate({prompt:e,n:t,size:n,aspectRatio:r,seed:i,providerOptions:a,headers:o,abortSignal:s}){var c;let l=[];r!=null&&l.push({type:`unsupported-setting`,setting:`aspectRatio`,details:"This model does not support aspect ratio. Use `size` instead."}),i!=null&&l.push({type:`unsupported-setting`,setting:`seed`});let u=((c=this.config._internal)?.currentDate)?.call(c)??new Date,{value:d,responseHeaders:f}=await Lc({url:this.config.url({path:`/images/generations`,modelId:this.modelId}),headers:pc(this.config.headers(),o),body:{model:this.modelId,prompt:e,n:t,size:n,...a.openai??{},response_format:`b64_json`},failedResponseHandler:zc(this.config.errorStructure??Uc),successfulResponseHandler:Bc(qc),abortSignal:s,fetch:this.config.fetch});return{images:d.data.map(e=>e.b64_json),warnings:l,response:{timestamp:u,modelId:this.modelId,headers:f}}}},qc=i.object({data:i.array(i.object({b64_json:i.string()}))});function Jc(...e){return e.reduce((e,t)=>({...e,...t??{}}),{})}function Yc(e){return Object.fromEntries([...e.headers])}function Xc(e=globalThis){return e.window?`runtime/browser`:e.navigator?.userAgent?`runtime/${e.navigator.userAgent.toLowerCase()}`:e.process?.versions?.node?`runtime/node.js/${e.process.version.substring(0)}`:e.EdgeRuntime?`runtime/vercel-edge`:`runtime/unknown`}function Zc(e){return Object.fromEntries(Object.entries(e).filter(([e,t])=>t!=null))}function Qc(e,...t){let n=Zc(e??{}),r=new Headers(n),i=r.get(`user-agent`)||``;return r.set(`user-agent`,[i,...t].filter(Boolean).join(` `)),Object.fromEntries(r)}var $c=(({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 j({argument:`separator`,message:`The separator "${r}" must not be part of the alphabet "${n}".`});return()=>`${e}${r}${i()}`})();function el(e){return(e instanceof Error||e instanceof DOMException)&&(e.name===`AbortError`||e.name===`ResponseAborted`||e.name===`TimeoutError`)}var tl=[`fetch failed`,`failed to fetch`];function nl({error:e,url:t,requestBodyValues:n}){if(el(e))return e;if(e instanceof TypeError&&tl.includes(e.message.toLowerCase())){let r=e.cause;if(r!=null)return new k({message:`Cannot connect to API: ${r.message}`,cause:r,url:t,requestBodyValues:n,isRetryable:!0})}return e}var rl=`3.0.10`;function il({apiKey:e,environmentVariableName:t,apiKeyParameterName:n=`apiKey`,description:r}){if(typeof e==`string`)return e;if(e!=null)throw new N({message:`${r} API key must be a string.`});if(typeof process>`u`)throw new N({message:`${r} API key is missing. Pass it using the '${n}' parameter. Environment variables is not supported in this environment.`});if(e=process.env[t],e==null)throw new N({message:`${r} API key is missing. Pass it using the '${n}' parameter or the ${t} environment variable.`});if(typeof e!=`string`)throw new N({message:`${r} API key must be a string. The value of the ${t} environment variable is not a string.`});return e}var al=/"__proto__"\s*:/,ol=/"constructor"\s*:/;function sl(e){let t=JSON.parse(e);return typeof t!=`object`||!t||al.test(e)===!1&&ol.test(e)===!1?t:cl(t)}function cl(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 ll(e){let{stackTraceLimit:t}=Error;Error.stackTraceLimit=0;try{return sl(e)}finally{Error.stackTraceLimit=t}}var ul=Symbol.for(`vercel.ai.validator`);function dl(e){return{[ul]:!0,validate:e}}function fl(e){return typeof e==`object`&&!!e&&ul in e&&e[ul]===!0&&`validate`in e}function pl(e){return fl(e)?e:ml(e)}function ml(e){return dl(async t=>{let n=await e[`~standard`].validate(t);return n.issues==null?{success:!0,value:n.value}:{success:!1,error:new F({value:t,cause:n.issues})}})}async function hl({value:e,schema:t}){let n=await gl({value:e,schema:t});if(!n.success)throw F.wrap({value:e,cause:n.error});return n.value}async function gl({value:e,schema:t}){let n=pl(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:F.wrap({value:e,cause:t.error}),rawValue:e}}catch(t){return{success:!1,error:F.wrap({value:e,cause:t}),rawValue:e}}}async function _l({text:e,schema:t}){try{let n=ll(e);return t==null?n:hl({value:n,schema:t})}catch(t){throw M.isInstance(t)||F.isInstance(t)?t:new M({text:e,cause:t})}}async function vl({text:e,schema:t}){try{let n=ll(e);return t==null?{success:!0,value:n,rawValue:n}:await gl({value:n,schema:t})}catch(t){return{success:!1,error:M.isInstance(t)?t:new M({text:e,cause:t}),rawValue:void 0}}}function yl({stream:e,schema:t}){return e.pipeThrough(new TextDecoderStream).pipeThrough(new D).pipeThrough(new TransformStream({async transform({data:e},n){e!==`[DONE]`&&n.enqueue(await vl({text:e,schema:t}))}}))}async function bl({provider:e,providerOptions:t,schema:n}){if(t?.[e]==null)return;let r=await gl({value:t[e],schema:n});if(!r.success)throw new j({argument:`providerOptions`,message:`invalid ${e} provider options`,cause:r.error});return r.value}var xl=()=>globalThis.fetch,Sl=async({url:e,headers:t,body:n,failedResponseHandler:r,successfulResponseHandler:i,abortSignal:a,fetch:o})=>Cl({url:e,headers:{"Content-Type":`application/json`,...t},body:{content:JSON.stringify(n),values:n},failedResponseHandler:r,successfulResponseHandler:i,abortSignal:a,fetch:o}),Cl=async({url:e,headers:t={},body:n,successfulResponseHandler:r,failedResponseHandler:i,abortSignal:a,fetch:o=xl()})=>{try{let s=await o(e,{method:`POST`,headers:Qc(t,`ai-sdk/provider-utils/${rl}`,Xc()),body:n.content,signal:a}),c=Yc(s);if(!s.ok){let t;try{t=await i({response:s,url:e,requestBodyValues:n.values})}catch(t){throw el(t)||k.isInstance(t)?t:new k({message:`Failed to process error response`,cause:t,statusCode:s.status,url:e,responseHeaders:c,requestBodyValues:n.values})}throw t.value}try{return await r({response:s,url:e,requestBodyValues:n.values})}catch(t){throw t instanceof Error&&(el(t)||k.isInstance(t))?t:new k({message:`Failed to process successful response`,cause:t,statusCode:s.status,url:e,responseHeaders:c,requestBodyValues:n.values})}}catch(t){throw nl({error:t,url:e,requestBodyValues:n.values})}},wl=({errorSchema:e,errorToMessage:t,isRetryable:n})=>async({response:r,url:i,requestBodyValues:a})=>{let o=await r.text(),s=Yc(r);if(o.trim()===``)return{responseHeaders:s,value:new k({message:r.statusText,url:i,requestBodyValues:a,statusCode:r.status,responseHeaders:s,responseBody:o,isRetryable:n?.(r)})};try{let c=await _l({text:o,schema:e});return{responseHeaders:s,value:new k({message:t(c),url:i,requestBodyValues:a,statusCode:r.status,responseHeaders:s,responseBody:o,data:c,isRetryable:n?.(r,c)})}}catch{return{responseHeaders:s,value:new k({message:r.statusText,url:i,requestBodyValues:a,statusCode:r.status,responseHeaders:s,responseBody:o,isRetryable:n?.(r)})}}},Tl=e=>async({response:t})=>{let n=Yc(t);if(t.body==null)throw new A({});return{responseHeaders:n,value:yl({stream:t.body,schema:e})}},El=e=>async({response:t,url:n,requestBodyValues:r})=>{let i=await t.text(),a=await vl({text:i,schema:e}),o=Yc(t);if(!a.success)throw new k({message:`Invalid JSON response`,cause:a.error,statusCode:t.status,responseHeaders:o,responseBody:i,url:n,requestBodyValues:r});return{responseHeaders:o,value:a.value,rawValue:a.rawValue}},{btoa:Dl,atob:Ol}=globalThis;function kl(e){let t=``;for(let n=0;n<e.length;n++)t+=String.fromCodePoint(e[n]);return Dl(t)}function Al(e){return e instanceof Uint8Array?kl(e):e}function jl(e){return e?.replace(/\/$/,``)}function Ml(e){let t=[],n=[];for(let{role:n,content:r}of e)switch(n){case`system`:t.push({role:`system`,content:r});break;case`user`:if(r.length===1&&r[0].type===`text`){t.push({role:`user`,content:r[0].text});break}t.push({role:`user`,content:r.map(e=>{switch(e.type){case`text`:return{type:`text`,text:e.text};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,${Al(e.data)}`}}}else throw new I({functionality:`file part media type ${e.mediaType}`})}})});break;case`assistant`:{let e=``,n=[];for(let t of r)switch(t.type){case`text`:e+=t.text;break;case`tool-call`:n.push({id:t.toolCallId,type:`function`,function:{name:t.toolName,arguments:JSON.stringify(t.input)}});break}t.push({role:`assistant`,content:e,tool_calls:n.length>0?n:void 0});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}t.push({role:`tool`,tool_call_id:e.toolCallId,content:r})}break;default:{let e=n;throw Error(`Unsupported role: ${e}`)}}return{messages:t,warnings:n}}function Nl({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 Pl(e){switch(e){case`stop`:return`stop`;case`length`:return`length`;case`tool_calls`:case`function_call`:return`tool-calls`;case`content_filter`:return`content-filter`;default:return`unknown`}}var Fl=i.object({type:i.literal(`web`),country:i.string().length(2).optional(),excludedWebsites:i.array(i.string()).max(5).optional(),allowedWebsites:i.array(i.string()).max(5).optional(),safeSearch:i.boolean().optional()}),Il=i.object({type:i.literal(`x`),excludedXHandles:i.array(i.string()).optional(),includedXHandles:i.array(i.string()).optional(),postFavoriteCount:i.number().int().optional(),postViewCount:i.number().int().optional(),xHandles:i.array(i.string()).optional()}),Ll=i.object({type:i.literal(`news`),country:i.string().length(2).optional(),excludedWebsites:i.array(i.string()).max(5).optional(),safeSearch:i.boolean().optional()}),Rl=i.object({type:i.literal(`rss`),links:i.array(i.string().url()).max(1)}),zl=i.discriminatedUnion(`type`,[Fl,Il,Ll,Rl]),Bl=i.object({reasoningEffort:i.enum([`low`,`high`]).optional(),searchParameters:i.object({mode:i.enum([`off`,`auto`,`on`]),returnCitations:i.boolean().optional(),fromDate:i.string().optional(),toDate:i.string().optional(),maxSearchResults:i.number().min(1).max(50).optional(),sources:i.array(zl).optional()}).optional()}),Vl=i.object({error:i.object({message:i.string(),type:i.string().nullish(),param:i.any().nullish(),code:i.union([i.string(),i.number()]).nullish()})}),Hl=wl({errorSchema:Vl,errorToMessage:e=>e.error.message});function Ul({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`:return{tools:r,toolChoice:i,toolWarnings:n};case`required`:return{tools:r,toolChoice:`required`,toolWarnings:n};case`tool`:return{tools:r,toolChoice:{type:`function`,function:{name:t.toolName}},toolWarnings:n};default:throw new I({functionality:`tool choice type: ${i}`})}}var Wl=class{constructor(e,t){this.specificationVersion=`v2`,this.supportedUrls={"image/*":[/^https?:\/\/.*$/]},this.modelId=e,this.config=t}get provider(){return this.config.provider}async getArgs({prompt:e,maxOutputTokens:t,temperature:n,topP:r,topK:i,frequencyPenalty:a,presencePenalty:o,stopSequences:s,seed:c,responseFormat:l,providerOptions:u,tools:d,toolChoice:f}){let p=[],m=await bl({provider:`xai`,providerOptions:u,schema:Bl})??{};i!=null&&p.push({type:`unsupported-setting`,setting:`topK`}),a!=null&&p.push({type:`unsupported-setting`,setting:`frequencyPenalty`}),o!=null&&p.push({type:`unsupported-setting`,setting:`presencePenalty`}),s!=null&&p.push({type:`unsupported-setting`,setting:`stopSequences`}),l!=null&&l.type===`json`&&l.schema!=null&&p.push({type:`unsupported-setting`,setting:`responseFormat`,details:`JSON response format schema is not supported`});let{messages:h,warnings:g}=Ml(e);p.push(...g);let{tools:_,toolChoice:v,toolWarnings:y}=Ul({tools:d,toolChoice:f});return p.push(...y),{args:{model:this.modelId,max_tokens:t,temperature:n,top_p:r,seed:c,reasoning_effort:m.reasoningEffort,response_format:l?.type===`json`?l.schema==null?{type:`json_object`}:{type:`json_schema`,json_schema:{name:l.name??`response`,schema:l.schema,strict:!0}}:void 0,search_parameters:m.searchParameters?{mode:m.searchParameters.mode,return_citations:m.searchParameters.returnCitations,from_date:m.searchParameters.fromDate,to_date:m.searchParameters.toDate,max_search_results:m.searchParameters.maxSearchResults,sources:m.searchParameters.sources?.map(e=>({type:e.type,...e.type===`web`&&{country:e.country,excluded_websites:e.excludedWebsites,allowed_websites:e.allowedWebsites,safe_search:e.safeSearch},...e.type===`x`&&{excluded_x_handles:e.excludedXHandles,included_x_handles:e.includedXHandles??e.xHandles,post_favorite_count:e.postFavoriteCount,post_view_count:e.postViewCount},...e.type===`news`&&{country:e.country,excluded_websites:e.excludedWebsites,safe_search:e.safeSearch},...e.type===`rss`&&{links:e.links}}))}:void 0,messages:h,tools:_,tool_choice:v},warnings:p}}async doGenerate(e){let{args:t,warnings:n}=await this.getArgs(e),{responseHeaders:r,value:i,rawValue:a}=await Sl({url:`${this.config.baseURL??`https://api.x.ai/v1`}/chat/completions`,headers:Jc(this.config.headers(),e.headers),body:t,failedResponseHandler:Hl,successfulResponseHandler:El(Kl),abortSignal:e.abortSignal,fetch:this.config.fetch}),o=i.choices[0],s=[];if(o.message.content!=null&&o.message.content.length>0){let e=o.message.content,n=t.messages[t.messages.length-1];n?.role===`assistant`&&e===n.content&&(e=``),e.length>0&&s.push({type:`text`,text:e})}if(o.message.reasoning_content!=null&&o.message.reasoning_content.length>0&&s.push({type:`reasoning`,text:o.message.reasoning_content}),o.message.tool_calls!=null)for(let e of o.message.tool_calls)s.push({type:`tool-call`,toolCallId:e.id,toolName:e.function.name,input:e.function.arguments});if(i.citations!=null)for(let e of i.citations)s.push({type:`source`,sourceType:`url`,id:this.config.generateId(),url:e});return{content:s,finishReason:Pl(o.finish_reason),usage:{inputTokens:i.usage.prompt_tokens,outputTokens:i.usage.completion_tokens,totalTokens:i.usage.total_tokens,reasoningTokens:i.usage.completion_tokens_details?.reasoning_tokens??void 0},request:{body:t},response:{...Nl(i),headers:r,body:a},warnings:n}}async doStream(e){let{args:t,warnings:n}=await this.getArgs(e),r={...t,stream:!0,stream_options:{include_usage:!0}},{responseHeaders:i,value:a}=await Sl({url:`${this.config.baseURL??`https://api.x.ai/v1`}/chat/completions`,headers:Jc(this.config.headers(),e.headers),body:r,failedResponseHandler:Hl,successfulResponseHandler:Tl(ql),abortSignal:e.abortSignal,fetch:this.config.fetch}),o=`unknown`,s={inputTokens:void 0,outputTokens:void 0,totalTokens:void 0},c=!0,l={},u={},d=this;return{stream:a.pipeThrough(new TransformStream({start(e){e.enqueue({type:`stream-start`,warnings:n})},transform(t,n){if(e.includeRawChunks&&n.enqueue({type:`raw`,rawValue:t.rawValue}),!t.success){n.enqueue({type:`error`,error:t.error});return}let i=t.value;if(c&&=(n.enqueue({type:`response-metadata`,...Nl(i)}),!1),i.citations!=null)for(let e of i.citations)n.enqueue({type:`source`,sourceType:`url`,id:d.config.generateId(),url:e});i.usage!=null&&(s.inputTokens=i.usage.prompt_tokens,s.outputTokens=i.usage.completion_tokens,s.totalTokens=i.usage.total_tokens,s.reasoningTokens=i.usage.completion_tokens_details?.reasoning_tokens??void 0);let a=i.choices[0];if(a?.finish_reason!=null&&(o=Pl(a.finish_reason)),a?.delta==null)return;let f=a.delta,p=a.index;if(f.content!=null&&f.content.length>0){let e=f.content,t=r.messages[r.messages.length-1];if(t?.role===`assistant`&&e===t.content)return;let a=`text-${i.id||p}`;l[a]??(l[a]={type:`text`},n.enqueue({type:`text-start`,id:a})),n.enqueue({type:`text-delta`,id:a,delta:e})}if(f.reasoning_content!=null&&f.reasoning_content.length>0){let e=`reasoning-${i.id||p}`;if(u[e]===f.reasoning_content)return;u[e]=f.reasoning_content,l[e]??(l[e]={type:`reasoning`},n.enqueue({type:`reasoning-start`,id:e})),n.enqueue({type:`reasoning-delta`,id:e,delta:f.reasoning_content})}if(f.tool_calls!=null)for(let e of f.tool_calls){let t=e.id;n.enqueue({type:`tool-input-start`,id:t,toolName:e.function.name}),n.enqueue({type:`tool-input-delta`,id:t,delta:e.function.arguments}),n.enqueue({type:`tool-input-end`,id:t}),n.enqueue({type:`tool-call`,toolCallId:t,toolName:e.function.name,input:e.function.arguments})}},flush(e){for(let[t,n]of Object.entries(l))e.enqueue({type:n.type===`text`?`text-end`:`reasoning-end`,id:t});e.enqueue({type:`finish`,finishReason:o,usage:s})}})),request:{body:r},response:{headers:i}}}},Gl=i.object({prompt_tokens:i.number(),completion_tokens:i.number(),total_tokens:i.number(),completion_tokens_details:i.object({reasoning_tokens:i.number().nullish()}).nullish()}),Kl=i.object({id:i.string().nullish(),created:i.number().nullish(),model:i.string().nullish(),choices:i.array(i.object({message:i.object({role:i.literal(`assistant`),content:i.string().nullish(),reasoning_content:i.string().nullish(),tool_calls:i.array(i.object({id:i.string(),type:i.literal(`function`),function:i.object({name:i.string(),arguments:i.string()})})).nullish()}),index:i.number(),finish_reason:i.string().nullish()})),object:i.literal(`chat.completion`),usage:Gl,citations:i.array(i.string().url()).nullish()}),ql=i.object({id:i.string().nullish(),created:i.number().nullish(),model:i.string().nullish(),choices:i.array(i.object({delta:i.object({role:i.enum([`assistant`]).optional(),content:i.string().nullish(),reasoning_content:i.string().nullish(),tool_calls:i.array(i.object({id:i.string(),type:i.literal(`function`),function:i.object({name:i.string(),arguments:i.string()})})).nullish()}),finish_reason:i.string().nullish(),index:i.number()})),usage:Gl.nullish(),citations:i.array(i.string().url()).nullish()}),Jl=`2.0.23`,Yl={errorSchema:Vl,errorToMessage:e=>e.error.message};function Xl(e={}){let t=jl(e.baseURL??`https://api.x.ai/v1`),n=()=>Qc({Authorization:`Bearer ${il({apiKey:e.apiKey,environmentVariableName:`XAI_API_KEY`,description:`xAI API key`})}`,...e.headers},`ai-sdk/xai/${Jl}`),r=r=>new Wl(r,{provider:`xai.chat`,baseURL:t,headers:n,generateId:$c,fetch:e.fetch}),i=r=>new Kc(r,{provider:`xai.image`,url:({path:e})=>`${t}${e}`,headers:n,fetch:e.fetch,errorStructure:Yl}),a=e=>r(e);return a.languageModel=r,a.chat=r,a.textEmbeddingModel=e=>{throw new P({modelId:e,modelType:`textEmbeddingModel`})},a.imageModel=i,a.image=i,a}Xl();function Zl(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n!==void 0&&n.role===`user`&&!(typeof n.metadata!=`object`||n.metadata===null)&&`options`in n.metadata)return n.metadata.options}}function Ql(e){if(!e.body)throw Error(`Response body is required`);let t=e.headers.get(`x-blink-stream-response-format`);if(!t||t===`ui-message`)return e.body.pipeThrough(new TextDecoderStream).pipeThrough(new D).pipeThrough(new TransformStream({async transform(e,t){if(e.data!==`[DONE]`)try{let n=JSON.parse(e.data);t.enqueue(n)}catch(e){t.error(e);return}}}));let n=e=>p({model:e,prompt:[{role:`user`,content:[{type:`text`,text:`Hello, world!`}]}]}).toUIMessageStream();switch(t){case`openai-chat`:return n(fc({apiKey:`ignored`,fetch:(t,n)=>e}).chat(`fake-model`));case`openai-response`:return n(fc({apiKey:`ignored`,fetch:(t,n)=>e}).responses(`fake-model`));case`anthropic`:return n(li({apiKey:`ignored`,fetch:(t,n)=>e}).chat(`fake-model`));case`google`:return n(Da({apiKey:`ignored`,fetch:(t,n)=>e}).chat(`fake-model`));case`xai`:return n(Xl({apiKey:`ignored`,fetch:(t,n)=>e}).chat(`fake-model`));default:throw Error(`Unsupported response format: ${t}`)}}const $l=`BLINK_API_URL`;function eu(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}var tu=class{_lockP=null;async lock(){let e=this._lockP,{promise:t,resolve:n}=eu();return this._lockP=t,await e,n}withLock(e){return ru(this.lock(),e)}},nu=class{_lock=new tu;_writeP=null;_readP=[];read(){return this._lock.withLock(async()=>{await this._writeP;let{promise:e,resolve:t}=eu();return this._readP.push(e),t})}withRead(e){return ru(this.read(),e)}async write(){return await this._lock.withLock(async()=>{await this._writeP,await Promise.all(this._readP);let{promise:e,resolve:t}=eu();return this._writeP=e,this._readP=[],t})}withWrite(e){return ru(this.write(),e)}};async function ru(e,t){let n=await e;try{return await t()}finally{n()}}var iu=class{constructor(e){this.onRelease=e}[Symbol.dispose](){this.onRelease()}},au=class{constructor(e){this.onRelease=e}[Symbol.dispose](){this.onRelease()}},ou=class{_lock=new nu;async read(){let e=await this._lock.read();return new iu(e)}async write(){let e=await this._lock.write();return new au(e)}},su=class{baseUrl;client;agentLock;constructor(e){this.client=Lt(e.baseUrl),this.baseUrl=e.baseUrl,this.agentLock=new ou}async chat(e,t){let n=await this.client._agent.chat.$post({json:e},{headers:t?.headers,init:{signal:t?.signal}});return n.ok||await this.handleError(n),Ql(n)}async capabilities(){let e=await this.client._agent.capabilities.$get();return e.ok||await this.handleError(e),e.json()}async ui(e,t){let n=await this.client._agent.ui.$get({query:e.selectedOptions?{selected_options:JSON.stringify(e.selectedOptions)}:{}},{init:{signal:t?.signal}});if(!n.ok||n.status!==200){if(n.status===404)return;await this.handleError(n)}return n.json()}async health(){let e=await this.client._agent.health.$get();e.ok||await this.handleError(e)}async handleError(e){let t;try{t=await e.text()}catch{}if(t){let n;try{n=JSON.parse(t)}catch{}throw n?Error(n.error):Error(`Failed (${e.status}): ${t}`)}throw Error(`Failed (${e.status}): ${e.statusText}`)}};async function cu({id:e,agent:t,messages:n,signal:r,shouldContinueStreaming:i=lu}){n=[...n];let a=new TransformStream,o=a.writable.getWriter(),s=async()=>{let a;try{let c=await t.chat({messages:n,id:e},{signal:r}),l=f({message:{id:crypto.randomUUID(),role:`assistant`,parts:[],metadata:{}},stream:c,onError:e=>{e instanceof Error&&e.name===`AbortError`||o.abort(e)}});for await(let e of l)o.write(e),a=e;if(a&&i(a)){n.push(a),await s();return}await o.close()}catch(e){if(e?.name===`AbortError`||r?.aborted)return;await o.abort(e)}finally{await o.close()}};return s().catch(e=>{o.abort(e)}),a.readable}const lu=e=>{if(e.role!==`assistant`)return!1;let t=e.parts.reduce((e,t,n)=>t.type===`step-start`?n:e,-1),n=e.parts.slice(t+1).filter(u);return n.length===0||n.some(e=>je(e.output)&&e.output.outcome===`pending`)?!1:n.every(e=>e.state.startsWith(`output-`))},uu=(e,t,n=crypto.randomUUID())=>({created_at:new Date().toISOString(),...e,id:n,metadata:e.metadata,mode:t});function du(e){return typeof e==`object`&&e?.__blink_internal!==void 0}function fu(e){return typeof e.metadata==`object`&&e.metadata!==null&&`__blink_log`in e.metadata&&e.metadata.__blink_log===!0&&`level`in e.metadata&&`source`in e.metadata&&`message`in e.metadata}var pu=class{chatId;agent;chatStore;serializeMessage;filterMessages;onError;chat;loading=!1;streamingMessage;status=`idle`;queue=[];logQueue=[];abortController;isProcessingQueue=!1;listeners=new Set;watcher;disposed=!1;constructor(e){this.chatId=e.chatId??`00000000-0000-0000-0000-000000000000`,this.chat={id:this.chatId,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),messages:[]},this.loading=!0,this.chatStore=St(e.chatsDirectory,`id`),this.serializeMessage=e.serializeMessage,this.filterMessages=e.filterMessages,this.onError=e.onError,this.watcher=Ct(e.chatsDirectory,{pollInterval:1e3,debounce:50}),this.watcher.onChange(e=>{if(e.key!==this.chatId||this.isProcessingQueue)return;if(!e.value){this.chat={id:this.chatId,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),messages:[]},this.status=`idle`,this.streamingMessage=void 0,this.notifyListeners();return}if(this.chat.updated_at===e.value?.updated_at)return;let t=e.value,n=e.locked?`streaming`:`idle`,r=this.chat.updated_at!==t?.updated_at||this.status!==n;this.chat=t,this.streamingMessage=void 0,this.status=n,r&&this.notifyListeners()}),this.chatStore.get(this.chatId).then(e=>{this.disposed||e&&(this.chat=e)}).catch(e=>{let t=e instanceof Error?e.message:String(e);this.onError?.(t)}).finally(()=>{this.loading=!1,this.notifyListeners()})}setAgent(e){this.agent=e}getState(){return{id:this.chatId,key:this.chat?.key,messages:(this.chat?.messages??[]).filter(e=>!du(e.metadata)),created_at:this.chat?.created_at,updated_at:this.chat?.updated_at,status:this.status,streamingMessage:this.streamingMessage,loading:this.loading,queuedMessages:this.queue,queuedLogs:this.logQueue}}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}async upsertMessages(e,t){let n=!1,r;t?r=t:(r=await this.chatStore.lock(this.chatId),n=!0);try{let t=await r.get();(!t.id||!Array.isArray(t.messages))&&(t={id:this.chatId,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),messages:[]});let n=[...t.messages];for(let t of e){let e;if(this.serializeMessage){let n=this.serializeMessage(t);if(n===void 0)return;e=n}else e={...t,created_at:new Date().toISOString(),mode:`run`,metadata:t.metadata,id:t.id??crypto.randomUUID()};let r=n.findIndex(t=>t.id===e.id);r===-1?n.push(e):n.splice(r,1,e)}this.chat={...t,updated_at:new Date().toISOString(),messages:n},await r.set(this.chat),this.notifyListeners()}finally{n&&await r.release()}}async deleteMessages(e){let t;try{t=await this.chatStore.lock(this.chatId);let n=await t.get();this.chat.messages=n.messages.filter(t=>!e.includes(t.id)),this.chat.updated_at=new Date().toISOString(),await t.set(this.chat),this.notifyListeners()}finally{t&&await t.release()}}async queueLogMessage({message:e,level:t,source:n}){let r=`(EDIT MODE NOTE) ${n===`agent`?`The agent`:"The `blink dev` CLI"} printed the following ${t}:\n\`\`\`\n${o(e)}\n\`\`\`\n`,i={id:crypto.randomUUID(),created_at:new Date().toISOString(),role:`user`,parts:[{type:`text`,text:r}],metadata:{__blink_log:!0,level:t,source:n,message:e},mode:`edit`};this.logQueue.push(i),this.notifyListeners()}async flushLogQueue(e){if(this.logQueue.length===0)return;let t=[...this.logQueue];this.logQueue=[],await this.upsertMessages(t,e)}async sendMessages(e){if(this.status=`idle`,this.notifyListeners(),this.isProcessingQueue){this.queue.push(...e),this.notifyListeners();return}this.queue=e,this.processQueueOrRun()}async start(){this.status=`idle`,this.notifyListeners(),this.processQueueOrRun()}async stop(){this.status=`idle`,this.abortController?.abort(),this.notifyListeners()}async processQueueOrRun(){if(!this.agent){this.onError?.(`The agent is not available. Please wait for the build to succeed.`),this.queue=[];return}if(this.isProcessingQueue)return;this.isProcessingQueue=!0;let t;try{t=await this.chatStore.lock(this.chatId),await this.flushLogQueue(t);let r=!0;for(;this.queue.length>0||r;)try{var n=e();r=!1;let i=new AbortController;this.abortController=i;let a=[...this.queue];this.queue=[],this.streamingMessage=void 0,this.status=`streaming`,this.notifyListeners(),a.length>0&&await this.upsertMessages(a,t);let o=this.chat.messages;this.filterMessages&&(o=o.filter(this.filterMessages)),o=o.map(e=>({...e,parts:e.parts.map(e=>!u(e)||e.input!==``?e:{...e,input:{}})})),n.u(await this.agent.agentLock.read());let s=performance.now(),c=await cu({agent:this.agent,id:this.chatId,signal:i.signal,messages:o}),l=async e=>{let n=e;if(this.serializeMessage){let t=this.serializeMessage(e);if(t===void 0)return;n=t}this.chat.updated_at=new Date().toISOString(),this.chat.messages.push(n),this.streamingMessage=void 0,await t?.set(this.chat)},d=c.getReader();i.signal.addEventListener(`abort`,()=>{d.cancel().catch(()=>{})},{once:!0});let f;try{for(;;){let{done:e,value:t}=await d.read();if(e||i.signal.aborted)break;f||=performance.now()-s,this.streamingMessage&&t.id!==this.streamingMessage.id&&await l(this.streamingMessage);let n={...t,metadata:{...typeof t.metadata==`object`&&t.metadata!==null?t.metadata:{},ttft:f}};this.streamingMessage=this.serializeMessage?this.serializeMessage(n):n,this.notifyListeners()}}finally{d.releaseLock()}this.streamingMessage&&await l(this.streamingMessage)}catch(e){n.e=e}finally{n.d()}}catch(e){let t=e instanceof Error?e.message:String(e);this.onError?.(t)}finally{this.isProcessingQueue=!1,this.streamingMessage=void 0,this.status=`idle`,t&&(await this.flushLogQueue(t),this.chat.updated_at=new Date().toISOString(),await t.set(this.chat),await t.release(),this.notifyListeners())}}stopStreaming(){this.abortController?.abort()}clearQueue(){this.queue=[],this.notifyListeners()}async resetChat(){this.abortController?.abort(),this.resetChatState(),this.notifyListeners();let e;try{e=await this.chatStore.lock(this.chatId),await e.delete()}catch{}finally{if(e)try{await e.release()}catch{}}}dispose(){this.disposed=!0,this.watcher.dispose(),this.listeners.clear(),this.stopStreaming()}resetChatState(){this.chat={id:this.chatId,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),messages:[]},this.streamingMessage=void 0,this.status=`idle`,this.queue=[],this.logQueue=[]}notifyListeners(){let e=this.getState();for(let t of this.listeners)t(e)}};export{k as APICallError,$l as APIServerURLEnvironmentVariable,pu as ChatManager,su as Client,ke as CustomChatResponseError,A as EmptyResponseBodyError,D as EventSourceParserStream,j as InvalidArgumentError,M as JSONParseError,P as NoSuchModelError,F as TypeValidationError,He as checkOptionalParameter,ve as completeAssign,uu as convertMessage,li as createAnthropic,Oe as createCustomAbortControllerSignal,St as createDiskStore,fc as createOpenAI,Et as createParser,qe as decodeURIComponent_,Ee as ensureDisposableStackRegisteredForTerminateEvents,v as fakePromise,_t as getLockInfo,ze as getPath,Be as getPathNoStrict,Ie as getPattern,Ge as getQueryParam,Ke as getQueryParams,xe as handleAbortSignalAndPromiseResponse,ye as handleErrorFromRequestHandler,_ as handleMaybePromise,Lt as hc,fe as isFetchEvent,fu as isLogMessage,le as isNodeRequest,h as isPromise,_e as isRequestInit,ue as isServerResponse,du as isStoredMessageMetadata,je as isToolApprovalOutput,be as isolateObject,b as iterateAsync,Zl as lastUIOptions,ht as lock,Ve as mergePath,se as normalizeNodeRequest,Xe as parse,he as sendNodeResponse,Me as splitPath,Ne as splitRoutingPath,Ae as tools,Le as tryDecode,te as unfakePromise};
|
|
21
|
+
${t}:`]}}function jo({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 Mo(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 No=i.object({echo:i.boolean().optional(),logitBias:i.record(i.string(),i.number()).optional(),suffix:i.string().optional(),user:i.string().optional(),logprobs:i.union([i.boolean(),i.number()]).optional()}),Po=class{constructor(e,t){this.specificationVersion=`v2`,this.supportedUrls={},this.modelId=e,this.config=t}get providerOptionsName(){return this.config.provider.split(`.`)[0].trim()}get provider(){return this.config.provider}async getArgs({prompt:e,maxOutputTokens:t,temperature:n,topP:r,topK:i,frequencyPenalty:a,presencePenalty:o,stopSequences:s,responseFormat:c,tools:l,toolChoice:u,seed:d,providerOptions:f}){let p=[],m={...await Y({provider:`openai`,providerOptions:f,schema:No}),...await Y({provider:this.providerOptionsName,providerOptions:f,schema:No})};i!=null&&p.push({type:`unsupported-setting`,setting:`topK`}),l?.length&&p.push({type:`unsupported-setting`,setting:`tools`}),u!=null&&p.push({type:`unsupported-setting`,setting:`toolChoice`}),c!=null&&c.type!==`text`&&p.push({type:`unsupported-setting`,setting:`responseFormat`,details:`JSON response format is not supported.`});let{prompt:h,stopSequences:g}=Ao({prompt:e}),_=[...g??[],...s??[]];return{args:{model:this.modelId,echo:m.echo,logit_bias:m.logitBias,logprobs:m?.logprobs===!0?0:m?.logprobs===!1?void 0:m?.logprobs,suffix:m.suffix,user:m.user,max_tokens:t,temperature:n,top_p:r,frequency_penalty:a,presence_penalty:o,seed:d,prompt:h,stop:_.length>0?_:void 0},warnings:p}}async doGenerate(e){let{args:t,warnings:n}=await this.getArgs(e),{responseHeaders:r,value:i,rawValue:a}=await X({url:this.config.url({path:`/completions`,modelId:this.modelId}),headers:K(this.config.headers(),e.headers),body:t,failedResponseHandler:$,successfulResponseHandler:Z(Io),abortSignal:e.abortSignal,fetch:this.config.fetch}),o=i.choices[0],s={openai:{}};return o.logprobs!=null&&(s.openai.logprobs=o.logprobs),{content:[{type:`text`,text:o.text}],usage:{inputTokens:i.usage?.prompt_tokens,outputTokens:i.usage?.completion_tokens,totalTokens:i.usage?.total_tokens},finishReason:Mo(o.finish_reason),request:{body:t},response:{...jo(i),headers:r,body:a},providerMetadata:s,warnings:n}}async doStream(e){let{args:t,warnings:n}=await this.getArgs(e),r={...t,stream:!0,stream_options:{include_usage:!0}},{responseHeaders:i,value:a}=await X({url:this.config.url({path:`/completions`,modelId:this.modelId}),headers:K(this.config.headers(),e.headers),body:r,failedResponseHandler:$,successfulResponseHandler:so(Lo),abortSignal:e.abortSignal,fetch:this.config.fetch}),o=`unknown`,s={openai:{}},c={inputTokens:void 0,outputTokens:void 0,totalTokens:void 0},l=!0;return{stream:a.pipeThrough(new TransformStream({start(e){e.enqueue({type:`stream-start`,warnings:n})},transform(t,n){if(e.includeRawChunks&&n.enqueue({type:`raw`,rawValue:t.rawValue}),!t.success){o=`error`,n.enqueue({type:`error`,error:t.error});return}let r=t.value;if(`error`in r){o=`error`,n.enqueue({type:`error`,error:r.error});return}l&&(l=!1,n.enqueue({type:`response-metadata`,...jo(r)}),n.enqueue({type:`text-start`,id:`0`})),r.usage!=null&&(c.inputTokens=r.usage.prompt_tokens,c.outputTokens=r.usage.completion_tokens,c.totalTokens=r.usage.total_tokens);let i=r.choices[0];i?.finish_reason!=null&&(o=Mo(i.finish_reason)),i?.logprobs!=null&&(s.openai.logprobs=i.logprobs),i?.text!=null&&i.text.length>0&&n.enqueue({type:`text-delta`,id:`0`,delta:i.text})},flush(e){l||e.enqueue({type:`text-end`,id:`0`}),e.enqueue({type:`finish`,finishReason:o,providerMetadata:s,usage:c})}})),request:{body:r},response:{headers:i}}}},Fo=i.object({prompt_tokens:i.number(),completion_tokens:i.number(),total_tokens:i.number()}),Io=i.object({id:i.string().nullish(),created:i.number().nullish(),model:i.string().nullish(),choices:i.array(i.object({text:i.string(),finish_reason:i.string(),logprobs:i.object({tokens:i.array(i.string()),token_logprobs:i.array(i.number()),top_logprobs:i.array(i.record(i.string(),i.number())).nullish()}).nullish()})),usage:Fo.nullish()}),Lo=i.union([i.object({id:i.string().nullish(),created:i.number().nullish(),model:i.string().nullish(),choices:i.array(i.object({text:i.string(),finish_reason:i.string().nullish(),index:i.number(),logprobs:i.object({tokens:i.array(i.string()),token_logprobs:i.array(i.number()),top_logprobs:i.array(i.record(i.string(),i.number())).nullish()}).nullish()})),usage:Fo.nullish()}),ho]),Ro=i.object({dimensions:i.number().optional(),user:i.string().optional()}),zo=class{constructor(e,t){this.specificationVersion=`v2`,this.maxEmbeddingsPerCall=2048,this.supportsParallelCalls=!0,this.modelId=e,this.config=t}get provider(){return this.config.provider}async doEmbed({values:e,headers:t,abortSignal:n,providerOptions:r}){if(e.length>this.maxEmbeddingsPerCall)throw new On({provider:this.provider,modelId:this.modelId,maxEmbeddingsPerCall:this.maxEmbeddingsPerCall,values:e});let i=await Y({provider:`openai`,providerOptions:r,schema:Ro})??{},{responseHeaders:a,value:o,rawValue:s}=await X({url:this.config.url({path:`/embeddings`,modelId:this.modelId}),headers:K(this.config.headers(),t),body:{model:this.modelId,input:e,encoding_format:`float`,dimensions:i.dimensions,user:i.user},failedResponseHandler:$,successfulResponseHandler:Z(Bo),abortSignal:n,fetch:this.config.fetch});return{embeddings:o.data.map(e=>e.embedding),usage:o.usage?{tokens:o.usage.prompt_tokens}:void 0,response:{headers:a,body:s}}}},Bo=i.object({data:i.array(i.object({embedding:i.array(i.number())})),usage:i.object({prompt_tokens:i.number()}).nullish()}),Vo={"dall-e-3":1,"dall-e-2":10,"gpt-image-1":10},Ho=new Set([`gpt-image-1`]),Uo=class{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion=`v2`}get maxImagesPerCall(){return Vo[this.modelId]??1}get provider(){return this.config.provider}async doGenerate({prompt:e,n:t,size:n,aspectRatio:r,seed:i,providerOptions:a,headers:o,abortSignal:s}){var c;let l=[];r!=null&&l.push({type:`unsupported-setting`,setting:`aspectRatio`,details:"This model does not support aspect ratio. Use `size` instead."}),i!=null&&l.push({type:`unsupported-setting`,setting:`seed`});let u=((c=this.config._internal)?.currentDate)?.call(c)??new Date,{value:d,responseHeaders:f}=await X({url:this.config.url({path:`/images/generations`,modelId:this.modelId}),headers:K(this.config.headers(),o),body:{model:this.modelId,prompt:e,n:t,size:n,...a.openai??{},...Ho.has(this.modelId)?{}:{response_format:`b64_json`}},failedResponseHandler:$,successfulResponseHandler:Z(Wo),abortSignal:s,fetch:this.config.fetch});return{images:d.data.map(e=>e.b64_json),warnings:l,response:{timestamp:u,modelId:this.modelId,headers:f},providerMetadata:{openai:{images:d.data.map(e=>e.revised_prompt?{revisedPrompt:e.revised_prompt}:null)}}}}},Wo=i.object({data:i.array(i.object({b64_json:i.string(),revised_prompt:i.string().optional()}))}),Go=i.object({code:i.string().nullish(),containerId:i.string()}),Ko=i.object({outputs:i.array(i.discriminatedUnion(`type`,[i.object({type:i.literal(`logs`),logs:i.string()}),i.object({type:i.literal(`image`),url:i.string()})])).nullish()}),qo=i.object({container:i.union([i.string(),i.object({fileIds:i.array(i.string()).optional()})]).optional()}),Jo=ao({id:`openai.code_interpreter`,name:`code_interpreter`,inputSchema:Go,outputSchema:Ko}),Yo=(e={})=>Jo(e),Xo=i.object({key:i.string(),type:i.enum([`eq`,`ne`,`gt`,`gte`,`lt`,`lte`]),value:i.union([i.string(),i.number(),i.boolean()])}),Zo=i.object({type:i.enum([`and`,`or`]),filters:i.array(i.union([Xo,i.lazy(()=>Zo)]))}),Qo=i.object({vectorStoreIds:i.array(i.string()),maxNumResults:i.number().optional(),ranking:i.object({ranker:i.string().optional(),scoreThreshold:i.number().optional()}).optional(),filters:i.union([Xo,Zo]).optional()}),$o=i.object({queries:i.array(i.string()),results:i.array(i.object({attributes:i.record(i.string(),i.unknown()),fileId:i.string(),filename:i.string(),score:i.number(),text:i.string()})).nullable()}),es=ao({id:`openai.file_search`,name:`file_search`,inputSchema:i.object({}),outputSchema:$o}),ts=i.object({background:i.enum([`auto`,`opaque`,`transparent`]).optional(),inputFidelity:i.enum([`low`,`high`]).optional(),inputImageMask:i.object({fileId:i.string().optional(),imageUrl:i.string().optional()}).optional(),model:i.string().optional(),moderation:i.enum([`auto`]).optional(),outputCompression:i.number().int().min(0).max(100).optional(),outputFormat:i.enum([`png`,`jpeg`,`webp`]).optional(),quality:i.enum([`auto`,`low`,`medium`,`high`]).optional(),size:i.enum([`1024x1024`,`1024x1536`,`1536x1024`,`auto`]).optional()}).strict(),ns=i.object({result:i.string()}),rs=ao({id:`openai.image_generation`,name:`image_generation`,inputSchema:i.object({}),outputSchema:ns}),os=(e={})=>rs(e),ss=i.object({action:i.object({type:i.literal(`exec`),command:i.array(i.string()),timeoutMs:i.number().optional(),user:i.string().optional(),workingDirectory:i.string().optional(),env:i.record(i.string(),i.string()).optional()})}),cs=i.object({output:i.string()}),ls=ao({id:`openai.local_shell`,name:`local_shell`,inputSchema:ss,outputSchema:cs}),us=i.object({filters:i.object({allowedDomains:i.array(i.string()).optional()}).optional(),searchContextSize:i.enum([`low`,`medium`,`high`]).optional(),userLocation:i.object({type:i.literal(`approximate`),country:i.string().optional(),city:i.string().optional(),region:i.string().optional(),timezone:i.string().optional()}).optional()}),ds=io({id:`openai.web_search`,name:`web_search`,inputSchema:i.object({action:i.discriminatedUnion(`type`,[i.object({type:i.literal(`search`),query:i.string().nullish()}),i.object({type:i.literal(`open_page`),url:i.string()}),i.object({type:i.literal(`find`),url:i.string(),pattern:i.string()})]).nullish()})}),fs=(e={})=>ds(e),ps=i.object({searchContextSize:i.enum([`low`,`medium`,`high`]).optional(),userLocation:i.object({type:i.literal(`approximate`),country:i.string().optional(),city:i.string().optional(),region:i.string().optional(),timezone:i.string().optional()}).optional()}),ms=io({id:`openai.web_search_preview`,name:`web_search_preview`,inputSchema:i.object({action:i.discriminatedUnion(`type`,[i.object({type:i.literal(`search`),query:i.string().nullish()}),i.object({type:i.literal(`open_page`),url:i.string()}),i.object({type:i.literal(`find`),url:i.string(),pattern:i.string()})]).nullish()})}),hs={codeInterpreter:Yo,fileSearch:es,imageGeneration:os,localShell:ls,webSearchPreview:ms,webSearch:fs};function gs(e,t){return t?t.some(t=>e.startsWith(t)):!1}async function _s({prompt:e,systemMessageMode:t,fileIdPrefixes:n,store:r,hasLocalShellTool:i=!1}){let a=[],o=[];for(let{role:s,content:c}of e)switch(s){case`system`:switch(t){case`system`:a.push({role:`system`,content:c});break;case`developer`:a.push({role:`developer`,content:c});break;case`remove`:o.push({type:`other`,message:`system messages are removed for this model`});break;default:{let e=t;throw Error(`Unsupported system message mode: ${e}`)}}break;case`user`:a.push({role:`user`,content:c.map((e,t)=>{switch(e.type){case`text`:return{type:`input_text`,text:e.text};case`file`:if(e.mediaType.startsWith(`image/`)){let t=e.mediaType===`image/*`?`image/jpeg`:e.mediaType;return{type:`input_image`,...e.data instanceof URL?{image_url:e.data.toString()}:typeof e.data==`string`&&gs(e.data,n)?{file_id:e.data}:{image_url:`data:${t};base64,${Q(e.data)}`},detail:e.providerOptions?.openai?.imageDetail}}else if(e.mediaType===`application/pdf`)return e.data instanceof URL?{type:`input_file`,file_url:e.data.toString()}:{type:`input_file`,...typeof e.data==`string`&&gs(e.data,n)?{file_id:e.data}:{filename:e.filename??`part-${t}.pdf`,file_data:`data:application/pdf;base64,${Q(e.data)}`}};else throw new I({functionality:`file part media type ${e.mediaType}`})}})});break;case`assistant`:{let e={},t={};for(let n of c)switch(n.type){case`text`:a.push({role:`assistant`,content:[{type:`output_text`,text:n.text}],id:n.providerOptions?.openai?.itemId??void 0});break;case`tool-call`:if(t[n.toolCallId]=n,n.providerExecuted)break;if(i&&n.toolName===`local_shell`){let e=ss.parse(n.input);a.push({type:`local_shell_call`,call_id:n.toolCallId,id:n.providerOptions?.openai?.itemId??void 0,action:{type:`exec`,command:e.action.command,timeout_ms:e.action.timeoutMs,user:e.action.user,working_directory:e.action.workingDirectory,env:e.action.env}});break}a.push({type:`function_call`,call_id:n.toolCallId,name:n.toolName,arguments:JSON.stringify(n.input),id:n.providerOptions?.openai?.itemId??void 0});break;case`tool-result`:r?a.push({type:`item_reference`,id:n.toolCallId}):o.push({type:`other`,message:`Results for OpenAI tool ${n.toolName} are not sent to the API when store is false`});break;case`reasoning`:{let t=await Y({provider:`openai`,providerOptions:n.providerOptions,schema:vs}),i=t?.itemId;if(i!=null){let s=e[i];if(r)s===void 0&&(a.push({type:`item_reference`,id:i}),e[i]={type:`reasoning`,id:i,summary:[]});else{let r=[];n.text.length>0?r.push({type:`summary_text`,text:n.text}):s!==void 0&&o.push({type:`other`,message:`Cannot append empty reasoning part to existing reasoning sequence. Skipping reasoning part: ${JSON.stringify(n)}.`}),s===void 0?(e[i]={type:`reasoning`,id:i,encrypted_content:t?.reasoningEncryptedContent,summary:r},a.push(e[i])):s.summary.push(...r)}}else o.push({type:`other`,message:`Non-OpenAI reasoning parts are not supported. Skipping reasoning part: ${JSON.stringify(n)}.`});break}}break}case`tool`:for(let e of c){let t=e.output;if(i&&e.toolName===`local_shell`&&t.type===`json`){a.push({type:`local_shell_call_output`,call_id:e.toolCallId,output:cs.parse(t.value).output});break}let n;switch(t.type){case`text`:case`error-text`:n=t.value;break;case`content`:case`json`:case`error-json`:n=JSON.stringify(t.value);break}a.push({type:`function_call_output`,call_id:e.toolCallId,output:n})}break;default:{let e=s;throw Error(`Unsupported role: ${e}`)}}return{input:a,warnings:o}}var vs=i.object({itemId:i.string().nullish(),reasoningEncryptedContent:i.string().nullish()});function ys({finishReason:e,hasFunctionCall:t}){switch(e){case void 0:case null:return t?`tool-calls`:`stop`;case`max_output_tokens`:return`length`;case`content_filter`:return`content-filter`;default:return t?`tool-calls`:`unknown`}}function bs({tools:e,toolChoice:t,strictJsonSchema: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)switch(t.type){case`function`:i.push({type:`function`,name:t.name,description:t.description,parameters:t.inputSchema,strict:n});break;case`provider-defined`:switch(t.id){case`openai.file_search`:{let e=Qo.parse(t.args);i.push({type:`file_search`,vector_store_ids:e.vectorStoreIds,max_num_results:e.maxNumResults,ranking_options:e.ranking?{ranker:e.ranking.ranker,score_threshold:e.ranking.scoreThreshold}:void 0,filters:e.filters});break}case`openai.local_shell`:i.push({type:`local_shell`});break;case`openai.web_search_preview`:{let e=ps.parse(t.args);i.push({type:`web_search_preview`,search_context_size:e.searchContextSize,user_location:e.userLocation});break}case`openai.web_search`:{let e=us.parse(t.args);i.push({type:`web_search`,filters:e.filters==null?void 0:{allowed_domains:e.filters.allowedDomains},search_context_size:e.searchContextSize,user_location:e.userLocation});break}case`openai.code_interpreter`:{let e=qo.parse(t.args);i.push({type:`code_interpreter`,container:e.container==null?{type:`auto`,file_ids:void 0}:typeof e.container==`string`?e.container:{type:`auto`,file_ids:e.container.fileIds}});break}case`openai.image_generation`:{let e=ts.parse(t.args);i.push({type:`image_generation`,background:e.background,input_fidelity:e.inputFidelity,input_image_mask:e.inputImageMask?{file_id:e.inputImageMask.fileId,image_url:e.inputImageMask.imageUrl}:void 0,model:e.model,size:e.size,quality:e.quality,moderation:e.moderation,output_format:e.outputFormat,output_compression:e.outputCompression});break}}break;default:r.push({type:`unsupported-tool`,tool:t});break}if(t==null)return{tools:i,toolChoice:void 0,toolWarnings:r};let a=t.type;switch(a){case`auto`:case`none`:case`required`:return{tools:i,toolChoice:a,toolWarnings:r};case`tool`:return{tools:i,toolChoice:t.toolName===`code_interpreter`||t.toolName===`file_search`||t.toolName===`image_generation`||t.toolName===`web_search_preview`||t.toolName===`web_search`?{type:t.toolName}:{type:`function`,name:t.toolName},toolWarnings:r};default:throw new I({functionality:`tool choice type: ${a}`})}}var xs=i.object({type:i.literal(`web_search_call`),id:i.string(),status:i.string(),action:i.discriminatedUnion(`type`,[i.object({type:i.literal(`search`),query:i.string().nullish()}),i.object({type:i.literal(`open_page`),url:i.string()}),i.object({type:i.literal(`find`),url:i.string(),pattern:i.string()})]).nullish()}),Ss=i.object({type:i.literal(`file_search_call`),id:i.string(),queries:i.array(i.string()),results:i.array(i.object({attributes:i.record(i.string(),i.unknown()),file_id:i.string(),filename:i.string(),score:i.number(),text:i.string()})).nullish()}),Cs=i.object({type:i.literal(`code_interpreter_call`),id:i.string(),code:i.string().nullable(),container_id:i.string(),outputs:i.array(i.discriminatedUnion(`type`,[i.object({type:i.literal(`logs`),logs:i.string()}),i.object({type:i.literal(`image`),url:i.string()})])).nullable()}),ws=i.object({type:i.literal(`local_shell_call`),id:i.string(),call_id:i.string(),action:i.object({type:i.literal(`exec`),command:i.array(i.string()),timeout_ms:i.number().optional(),user:i.string().optional(),working_directory:i.string().optional(),env:i.record(i.string(),i.string()).optional()})}),Ts=i.object({type:i.literal(`image_generation_call`),id:i.string(),result:i.string()}),Es=20,Ds=i.array(i.object({token:i.string(),logprob:i.number(),top_logprobs:i.array(i.object({token:i.string(),logprob:i.number()}))})),Os=class{constructor(e,t){this.specificationVersion=`v2`,this.supportedUrls={"image/*":[/^https?:\/\/.*$/],"application/pdf":[/^https?:\/\/.*$/]},this.modelId=e,this.config=t}get provider(){return this.config.provider}async getArgs({maxOutputTokens:e,temperature:t,stopSequences:n,topP:r,topK:i,presencePenalty:a,frequencyPenalty:o,seed:s,prompt:c,providerOptions:l,tools:u,toolChoice:d,responseFormat:f}){let p=[],m=rc(this.modelId);i!=null&&p.push({type:`unsupported-setting`,setting:`topK`}),s!=null&&p.push({type:`unsupported-setting`,setting:`seed`}),a!=null&&p.push({type:`unsupported-setting`,setting:`presencePenalty`}),o!=null&&p.push({type:`unsupported-setting`,setting:`frequencyPenalty`}),n!=null&&p.push({type:`unsupported-setting`,setting:`stopSequences`});let h=await Y({provider:`openai`,providerOptions:l,schema:ic}),{input:g,warnings:_}=await _s({prompt:c,systemMessageMode:m.systemMessageMode,fileIdPrefixes:this.config.fileIdPrefixes,store:h?.store??!0,hasLocalShellTool:x(`openai.local_shell`)});p.push(..._);let v=h?.strictJsonSchema??!1,y=h?.include;function b(e){y=y==null?[e]:[...y,e]}function x(e){return u?.find(t=>t.type===`provider-defined`&&t.id===e)!=null}let S=typeof h?.logprobs==`number`?h?.logprobs:h?.logprobs===!0?Es:void 0;S&&b(`message.output_text.logprobs`);let ee=u?.find(e=>e.type===`provider-defined`&&(e.id===`openai.web_search`||e.id===`openai.web_search_preview`))?.name;ee&&b(`web_search_call.action.sources`),x(`openai.code_interpreter`)&&b(`code_interpreter_call.outputs`);let C={model:this.modelId,input:g,temperature:t,top_p:r,max_output_tokens:e,...(f?.type===`json`||h?.textVerbosity)&&{text:{...f?.type===`json`&&{format:f.schema==null?{type:`json_object`}:{type:`json_schema`,strict:v,name:f.name??`response`,description:f.description,schema:f.schema}},...h?.textVerbosity&&{verbosity:h.textVerbosity}}},max_tool_calls:h?.maxToolCalls,metadata:h?.metadata,parallel_tool_calls:h?.parallelToolCalls,previous_response_id:h?.previousResponseId,store:h?.store,user:h?.user,instructions:h?.instructions,service_tier:h?.serviceTier,include:y,prompt_cache_key:h?.promptCacheKey,safety_identifier:h?.safetyIdentifier,top_logprobs:S,...m.isReasoningModel&&(h?.reasoningEffort!=null||h?.reasoningSummary!=null)&&{reasoning:{...h?.reasoningEffort!=null&&{effort:h.reasoningEffort},...h?.reasoningSummary!=null&&{summary:h.reasoningSummary}}},...m.requiredAutoTruncation&&{truncation:`auto`}};m.isReasoningModel?(C.temperature!=null&&(C.temperature=void 0,p.push({type:`unsupported-setting`,setting:`temperature`,details:`temperature is not supported for reasoning models`})),C.top_p!=null&&(C.top_p=void 0,p.push({type:`unsupported-setting`,setting:`topP`,details:`topP is not supported for reasoning models`}))):(h?.reasoningEffort!=null&&p.push({type:`unsupported-setting`,setting:`reasoningEffort`,details:`reasoningEffort is not supported for non-reasoning models`}),h?.reasoningSummary!=null&&p.push({type:`unsupported-setting`,setting:`reasoningSummary`,details:`reasoningSummary is not supported for non-reasoning models`})),h?.serviceTier===`flex`&&!m.supportsFlexProcessing&&(p.push({type:`unsupported-setting`,setting:`serviceTier`,details:`flex processing is only available for o3, o4-mini, and gpt-5 models`}),delete C.service_tier),h?.serviceTier===`priority`&&!m.supportsPriorityProcessing&&(p.push({type:`unsupported-setting`,setting:`serviceTier`,details:`priority processing is only available for supported models (gpt-4, gpt-5, gpt-5-mini, o3, o4-mini) and requires Enterprise access. gpt-5-nano is not supported`}),delete C.service_tier);let{tools:te,toolChoice:ne,toolWarnings:re}=bs({tools:u,toolChoice:d,strictJsonSchema:v});return{webSearchToolName:ee,args:{...C,tools:te,tool_choice:ne},warnings:[...p,...re]}}async doGenerate(e){var t,n;let{args:r,warnings:a,webSearchToolName:o}=await this.getArgs(e),s=this.config.url({path:`/responses`,modelId:this.modelId}),{responseHeaders:c,value:l,rawValue:u}=await X({url:s,headers:K(this.config.headers(),e.headers),body:r,failedResponseHandler:$,successfulResponseHandler:Z(i.object({id:i.string(),created_at:i.number(),error:i.object({code:i.string(),message:i.string()}).nullish(),model:i.string(),output:i.array(i.discriminatedUnion(`type`,[i.object({type:i.literal(`message`),role:i.literal(`assistant`),id:i.string(),content:i.array(i.object({type:i.literal(`output_text`),text:i.string(),logprobs:Ds.nullish(),annotations:i.array(i.discriminatedUnion(`type`,[i.object({type:i.literal(`url_citation`),start_index:i.number(),end_index:i.number(),url:i.string(),title:i.string()}),i.object({type:i.literal(`file_citation`),file_id:i.string(),filename:i.string().nullish(),index:i.number().nullish(),start_index:i.number().nullish(),end_index:i.number().nullish(),quote:i.string().nullish()}),i.object({type:i.literal(`container_file_citation`)})]))}))}),xs,Ss,Cs,Ts,ws,i.object({type:i.literal(`function_call`),call_id:i.string(),name:i.string(),arguments:i.string(),id:i.string()}),i.object({type:i.literal(`computer_call`),id:i.string(),status:i.string().optional()}),i.object({type:i.literal(`reasoning`),id:i.string(),encrypted_content:i.string().nullish(),summary:i.array(i.object({type:i.literal(`summary_text`),text:i.string()}))})])),service_tier:i.string().nullish(),incomplete_details:i.object({reason:i.string()}).nullish(),usage:ks})),abortSignal:e.abortSignal,fetch:this.config.fetch});if(l.error)throw new k({message:l.error.message,url:s,requestBodyValues:r,statusCode:400,responseHeaders:c,responseBody:u,isRetryable:!1});let d=[],f=[],p=!1;for(let r of l.output)switch(r.type){case`reasoning`:r.summary.length===0&&r.summary.push({type:`summary_text`,text:``});for(let e of r.summary)d.push({type:`reasoning`,text:e.text,providerMetadata:{openai:{itemId:r.id,reasoningEncryptedContent:r.encrypted_content??null}}});break;case`image_generation_call`:d.push({type:`tool-call`,toolCallId:r.id,toolName:`image_generation`,input:`{}`,providerExecuted:!0}),d.push({type:`tool-result`,toolCallId:r.id,toolName:`image_generation`,result:{result:r.result},providerExecuted:!0});break;case`local_shell_call`:d.push({type:`tool-call`,toolCallId:r.call_id,toolName:`local_shell`,input:JSON.stringify({action:r.action}),providerMetadata:{openai:{itemId:r.id}}});break;case`message`:for(let i of r.content){e.providerOptions?.openai?.logprobs&&i.logprobs&&f.push(i.logprobs),d.push({type:`text`,text:i.text,providerMetadata:{openai:{itemId:r.id}}});for(let e of i.annotations)e.type===`url_citation`?d.push({type:`source`,sourceType:`url`,id:(t=this.config).generateId?.call(t)??J(),url:e.url,title:e.title}):e.type===`file_citation`&&d.push({type:`source`,sourceType:`document`,id:(n=this.config).generateId?.call(n)??J(),mediaType:`text/plain`,title:e.quote??e.filename??`Document`,filename:e.filename??e.file_id})}break;case`function_call`:p=!0,d.push({type:`tool-call`,toolCallId:r.call_id,toolName:r.name,input:r.arguments,providerMetadata:{openai:{itemId:r.id}}});break;case`web_search_call`:d.push({type:`tool-call`,toolCallId:r.id,toolName:o??`web_search`,input:JSON.stringify({action:r.action}),providerExecuted:!0}),d.push({type:`tool-result`,toolCallId:r.id,toolName:o??`web_search`,result:{status:r.status},providerExecuted:!0});break;case`computer_call`:d.push({type:`tool-call`,toolCallId:r.id,toolName:`computer_use`,input:``,providerExecuted:!0}),d.push({type:`tool-result`,toolCallId:r.id,toolName:`computer_use`,result:{type:`computer_use_tool_result`,status:r.status||`completed`},providerExecuted:!0});break;case`file_search_call`:d.push({type:`tool-call`,toolCallId:r.id,toolName:`file_search`,input:`{}`,providerExecuted:!0}),d.push({type:`tool-result`,toolCallId:r.id,toolName:`file_search`,result:{queries:r.queries,results:r.results?.map(e=>({attributes:e.attributes,fileId:e.file_id,filename:e.filename,score:e.score,text:e.text}))??null},providerExecuted:!0});break;case`code_interpreter_call`:d.push({type:`tool-call`,toolCallId:r.id,toolName:`code_interpreter`,input:JSON.stringify({code:r.code,containerId:r.container_id}),providerExecuted:!0}),d.push({type:`tool-result`,toolCallId:r.id,toolName:`code_interpreter`,result:{outputs:r.outputs},providerExecuted:!0});break}let m={openai:{responseId:l.id}};return f.length>0&&(m.openai.logprobs=f),typeof l.service_tier==`string`&&(m.openai.serviceTier=l.service_tier),{content:d,finishReason:ys({finishReason:l.incomplete_details?.reason,hasFunctionCall:p}),usage:{inputTokens:l.usage.input_tokens,outputTokens:l.usage.output_tokens,totalTokens:l.usage.input_tokens+l.usage.output_tokens,reasoningTokens:l.usage.output_tokens_details?.reasoning_tokens??void 0,cachedInputTokens:l.usage.input_tokens_details?.cached_tokens??void 0},request:{body:r},response:{id:l.id,timestamp:new Date(l.created_at*1e3),modelId:l.model,headers:c,body:u},providerMetadata:m,warnings:a}}async doStream(e){let{args:t,warnings:n,webSearchToolName:r}=await this.getArgs(e),{responseHeaders:i,value:a}=await X({url:this.config.url({path:`/responses`,modelId:this.modelId}),headers:K(this.config.headers(),e.headers),body:{...t,stream:!0},failedResponseHandler:$,successfulResponseHandler:so(Hs),abortSignal:e.abortSignal,fetch:this.config.fetch}),o=this,s=`unknown`,c={inputTokens:void 0,outputTokens:void 0,totalTokens:void 0},l=[],u=null,d={},f=!1,p={},m;return{stream:a.pipeThrough(new TransformStream({start(e){e.enqueue({type:`stream-start`,warnings:n})},transform(t,n){var i,a,h;if(e.includeRawChunks&&n.enqueue({type:`raw`,rawValue:t.rawValue}),!t.success){s=`error`,n.enqueue({type:`error`,error:t.error});return}let g=t.value;if(Zs(g))g.item.type===`function_call`?(d[g.output_index]={toolName:g.item.name,toolCallId:g.item.call_id},n.enqueue({type:`tool-input-start`,id:g.item.call_id,toolName:g.item.name})):g.item.type===`web_search_call`?(d[g.output_index]={toolName:r??`web_search`,toolCallId:g.item.id},n.enqueue({type:`tool-input-start`,id:g.item.id,toolName:r??`web_search`})):g.item.type===`computer_call`?(d[g.output_index]={toolName:`computer_use`,toolCallId:g.item.id},n.enqueue({type:`tool-input-start`,id:g.item.id,toolName:`computer_use`})):g.item.type===`code_interpreter_call`?(d[g.output_index]={toolName:`code_interpreter`,toolCallId:g.item.id,codeInterpreter:{containerId:g.item.container_id}},n.enqueue({type:`tool-input-start`,id:g.item.id,toolName:`code_interpreter`}),n.enqueue({type:`tool-input-delta`,id:g.item.id,delta:`{"containerId":"${g.item.container_id}","code":"`})):g.item.type===`file_search_call`?n.enqueue({type:`tool-call`,toolCallId:g.item.id,toolName:`file_search`,input:`{}`,providerExecuted:!0}):g.item.type===`image_generation_call`?n.enqueue({type:`tool-call`,toolCallId:g.item.id,toolName:`image_generation`,input:`{}`,providerExecuted:!0}):g.item.type===`message`?n.enqueue({type:`text-start`,id:g.item.id,providerMetadata:{openai:{itemId:g.item.id}}}):Qs(g)&&(p[g.item.id]={encryptedContent:g.item.encrypted_content,summaryParts:[0]},n.enqueue({type:`reasoning-start`,id:`${g.item.id}:0`,providerMetadata:{openai:{itemId:g.item.id,reasoningEncryptedContent:g.item.encrypted_content??null}}}));else if(Ws(g)){if(g.item.type===`function_call`)d[g.output_index]=void 0,f=!0,n.enqueue({type:`tool-input-end`,id:g.item.call_id}),n.enqueue({type:`tool-call`,toolCallId:g.item.call_id,toolName:g.item.name,input:g.item.arguments,providerMetadata:{openai:{itemId:g.item.id}}});else if(g.item.type===`web_search_call`)d[g.output_index]=void 0,n.enqueue({type:`tool-input-end`,id:g.item.id}),n.enqueue({type:`tool-call`,toolCallId:g.item.id,toolName:`web_search`,input:JSON.stringify({action:g.item.action}),providerExecuted:!0}),n.enqueue({type:`tool-result`,toolCallId:g.item.id,toolName:`web_search`,result:{status:g.item.status},providerExecuted:!0});else if(g.item.type===`computer_call`)d[g.output_index]=void 0,n.enqueue({type:`tool-input-end`,id:g.item.id}),n.enqueue({type:`tool-call`,toolCallId:g.item.id,toolName:`computer_use`,input:``,providerExecuted:!0}),n.enqueue({type:`tool-result`,toolCallId:g.item.id,toolName:`computer_use`,result:{type:`computer_use_tool_result`,status:g.item.status||`completed`},providerExecuted:!0});else if(g.item.type===`file_search_call`)d[g.output_index]=void 0,n.enqueue({type:`tool-result`,toolCallId:g.item.id,toolName:`file_search`,result:{queries:g.item.queries,results:g.item.results?.map(e=>({attributes:e.attributes,fileId:e.file_id,filename:e.filename,score:e.score,text:e.text}))??null},providerExecuted:!0});else if(g.item.type===`code_interpreter_call`)d[g.output_index]=void 0,n.enqueue({type:`tool-result`,toolCallId:g.item.id,toolName:`code_interpreter`,result:{outputs:g.item.outputs},providerExecuted:!0});else if(g.item.type===`image_generation_call`)n.enqueue({type:`tool-result`,toolCallId:g.item.id,toolName:`image_generation`,result:{result:g.item.result},providerExecuted:!0});else if(g.item.type===`local_shell_call`)d[g.output_index]=void 0,n.enqueue({type:`tool-call`,toolCallId:g.item.call_id,toolName:`local_shell`,input:JSON.stringify({action:{type:`exec`,command:g.item.action.command,timeoutMs:g.item.action.timeout_ms,user:g.item.action.user,workingDirectory:g.item.action.working_directory,env:g.item.action.env}}),providerMetadata:{openai:{itemId:g.item.id}}});else if(g.item.type===`message`)n.enqueue({type:`text-end`,id:g.item.id});else if(Gs(g)){let e=p[g.item.id];for(let t of e.summaryParts)n.enqueue({type:`reasoning-end`,id:`${g.item.id}:${t}`,providerMetadata:{openai:{itemId:g.item.id,reasoningEncryptedContent:g.item.encrypted_content??null}}});delete p[g.item.id]}}else if(Js(g)){let e=d[g.output_index];e!=null&&n.enqueue({type:`tool-input-delta`,id:e.toolCallId,delta:g.delta})}else if(Ys(g)){let e=d[g.output_index];e!=null&&n.enqueue({type:`tool-input-delta`,id:e.toolCallId,delta:JSON.stringify(g.delta).slice(1,-1)})}else if(Xs(g)){let e=d[g.output_index];e!=null&&(n.enqueue({type:`tool-input-delta`,id:e.toolCallId,delta:`"}`}),n.enqueue({type:`tool-input-end`,id:e.toolCallId}),n.enqueue({type:`tool-call`,toolCallId:e.toolCallId,toolName:`code_interpreter`,input:JSON.stringify({code:g.code,containerId:e.codeInterpreter.containerId}),providerExecuted:!0}))}else qs(g)?(u=g.response.id,n.enqueue({type:`response-metadata`,id:g.response.id,timestamp:new Date(g.response.created_at*1e3),modelId:g.response.model})):Us(g)?(n.enqueue({type:`text-delta`,id:g.item_id,delta:g.delta}),e.providerOptions?.openai?.logprobs&&g.logprobs&&l.push(g.logprobs)):ec(g)?g.summary_index>0&&((i=p[g.item_id])==null||i.summaryParts.push(g.summary_index),n.enqueue({type:`reasoning-start`,id:`${g.item_id}:${g.summary_index}`,providerMetadata:{openai:{itemId:g.item_id,reasoningEncryptedContent:p[g.item_id]?.encryptedContent??null}}})):tc(g)?n.enqueue({type:`reasoning-delta`,id:`${g.item_id}:${g.summary_index}`,delta:g.delta,providerMetadata:{openai:{itemId:g.item_id}}}):Ks(g)?(s=ys({finishReason:g.response.incomplete_details?.reason,hasFunctionCall:f}),c.inputTokens=g.response.usage.input_tokens,c.outputTokens=g.response.usage.output_tokens,c.totalTokens=g.response.usage.input_tokens+g.response.usage.output_tokens,c.reasoningTokens=g.response.usage.output_tokens_details?.reasoning_tokens??void 0,c.cachedInputTokens=g.response.usage.input_tokens_details?.cached_tokens??void 0,typeof g.response.service_tier==`string`&&(m=g.response.service_tier)):$s(g)?g.annotation.type===`url_citation`?n.enqueue({type:`source`,sourceType:`url`,id:(a=o.config).generateId?.call(a)??J(),url:g.annotation.url,title:g.annotation.title}):g.annotation.type===`file_citation`&&n.enqueue({type:`source`,sourceType:`document`,id:(h=o.config).generateId?.call(h)??J(),mediaType:`text/plain`,title:g.annotation.quote??g.annotation.filename??`Document`,filename:g.annotation.filename??g.annotation.file_id}):nc(g)&&n.enqueue({type:`error`,error:g})},flush(e){let t={openai:{responseId:u}};l.length>0&&(t.openai.logprobs=l),m!==void 0&&(t.openai.serviceTier=m),e.enqueue({type:`finish`,finishReason:s,usage:c,providerMetadata:t})}})),request:{body:t},response:{headers:i}}}},ks=i.object({input_tokens:i.number(),input_tokens_details:i.object({cached_tokens:i.number().nullish()}).nullish(),output_tokens:i.number(),output_tokens_details:i.object({reasoning_tokens:i.number().nullish()}).nullish()}),As=i.object({type:i.literal(`response.output_text.delta`),item_id:i.string(),delta:i.string(),logprobs:Ds.nullish()}),js=i.object({type:i.literal(`error`),code:i.string(),message:i.string(),param:i.string().nullish(),sequence_number:i.number()}),Ms=i.object({type:i.enum([`response.completed`,`response.incomplete`]),response:i.object({incomplete_details:i.object({reason:i.string()}).nullish(),usage:ks,service_tier:i.string().nullish()})}),Ns=i.object({type:i.literal(`response.created`),response:i.object({id:i.string(),created_at:i.number(),model:i.string(),service_tier:i.string().nullish()})}),Ps=i.object({type:i.literal(`response.output_item.added`),output_index:i.number(),item:i.discriminatedUnion(`type`,[i.object({type:i.literal(`message`),id:i.string()}),i.object({type:i.literal(`reasoning`),id:i.string(),encrypted_content:i.string().nullish()}),i.object({type:i.literal(`function_call`),id:i.string(),call_id:i.string(),name:i.string(),arguments:i.string()}),i.object({type:i.literal(`web_search_call`),id:i.string(),status:i.string(),action:i.object({type:i.literal(`search`),query:i.string().optional()}).nullish()}),i.object({type:i.literal(`computer_call`),id:i.string(),status:i.string()}),i.object({type:i.literal(`file_search_call`),id:i.string()}),i.object({type:i.literal(`image_generation_call`),id:i.string()}),i.object({type:i.literal(`code_interpreter_call`),id:i.string(),container_id:i.string(),code:i.string().nullable(),outputs:i.array(i.discriminatedUnion(`type`,[i.object({type:i.literal(`logs`),logs:i.string()}),i.object({type:i.literal(`image`),url:i.string()})])).nullable(),status:i.string()})])}),Fs=i.object({type:i.literal(`response.output_item.done`),output_index:i.number(),item:i.discriminatedUnion(`type`,[i.object({type:i.literal(`message`),id:i.string()}),i.object({type:i.literal(`reasoning`),id:i.string(),encrypted_content:i.string().nullish()}),i.object({type:i.literal(`function_call`),id:i.string(),call_id:i.string(),name:i.string(),arguments:i.string(),status:i.literal(`completed`)}),Cs,Ts,xs,Ss,ws,i.object({type:i.literal(`computer_call`),id:i.string(),status:i.literal(`completed`)})])}),Is=i.object({type:i.literal(`response.function_call_arguments.delta`),item_id:i.string(),output_index:i.number(),delta:i.string()}),Ls=i.object({type:i.literal(`response.code_interpreter_call_code.delta`),item_id:i.string(),output_index:i.number(),delta:i.string()}),Rs=i.object({type:i.literal(`response.code_interpreter_call_code.done`),item_id:i.string(),output_index:i.number(),code:i.string()}),zs=i.object({type:i.literal(`response.output_text.annotation.added`),annotation:i.discriminatedUnion(`type`,[i.object({type:i.literal(`url_citation`),url:i.string(),title:i.string()}),i.object({type:i.literal(`file_citation`),file_id:i.string(),filename:i.string().nullish(),index:i.number().nullish(),start_index:i.number().nullish(),end_index:i.number().nullish(),quote:i.string().nullish()})])}),Bs=i.object({type:i.literal(`response.reasoning_summary_part.added`),item_id:i.string(),summary_index:i.number()}),Vs=i.object({type:i.literal(`response.reasoning_summary_text.delta`),item_id:i.string(),summary_index:i.number(),delta:i.string()}),Hs=i.union([As,Ms,Ns,Ps,Fs,Is,Ls,Rs,zs,Bs,Vs,js,i.object({type:i.string()}).loose()]);function Us(e){return e.type===`response.output_text.delta`}function Ws(e){return e.type===`response.output_item.done`}function Gs(e){return Ws(e)&&e.item.type===`reasoning`}function Ks(e){return e.type===`response.completed`||e.type===`response.incomplete`}function qs(e){return e.type===`response.created`}function Js(e){return e.type===`response.function_call_arguments.delta`}function Ys(e){return e.type===`response.code_interpreter_call_code.delta`}function Xs(e){return e.type===`response.code_interpreter_call_code.done`}function Zs(e){return e.type===`response.output_item.added`}function Qs(e){return Zs(e)&&e.item.type===`reasoning`}function $s(e){return e.type===`response.output_text.annotation.added`}function ec(e){return e.type===`response.reasoning_summary_part.added`}function tc(e){return e.type===`response.reasoning_summary_text.delta`}function nc(e){return e.type===`error`}function rc(e){let t=e.startsWith(`o3`)||e.startsWith(`o4-mini`)||e.startsWith(`gpt-5`)&&!e.startsWith(`gpt-5-chat`),n=e.startsWith(`gpt-4`)||e.startsWith(`gpt-5-mini`)||e.startsWith(`gpt-5`)&&!e.startsWith(`gpt-5-nano`)&&!e.startsWith(`gpt-5-chat`)||e.startsWith(`o3`)||e.startsWith(`o4-mini`),r={requiredAutoTruncation:!1,systemMessageMode:`system`,supportsFlexProcessing:t,supportsPriorityProcessing:n};return e.startsWith(`gpt-5-chat`)?{...r,isReasoningModel:!1}:e.startsWith(`o`)||e.startsWith(`gpt-5`)||e.startsWith(`codex-`)||e.startsWith(`computer-use`)?e.startsWith(`o1-mini`)||e.startsWith(`o1-preview`)?{...r,isReasoningModel:!0,systemMessageMode:`remove`}:{...r,isReasoningModel:!0,systemMessageMode:`developer`}:{...r,isReasoningModel:!1}}var ic=i.object({include:i.array(i.enum([`reasoning.encrypted_content`,`file_search_call.results`,`message.output_text.logprobs`])).nullish(),instructions:i.string().nullish(),logprobs:i.union([i.boolean(),i.number().min(1).max(Es)]).optional(),maxToolCalls:i.number().nullish(),metadata:i.any().nullish(),parallelToolCalls:i.boolean().nullish(),previousResponseId:i.string().nullish(),promptCacheKey:i.string().nullish(),reasoningEffort:i.string().nullish(),reasoningSummary:i.string().nullish(),safetyIdentifier:i.string().nullish(),serviceTier:i.enum([`auto`,`flex`,`priority`]).nullish(),store:i.boolean().nullish(),strictJsonSchema:i.boolean().nullish(),textVerbosity:i.enum([`low`,`medium`,`high`]).nullish(),user:i.string().nullish()}),ac=i.object({instructions:i.string().nullish(),speed:i.number().min(.25).max(4).default(1).nullish()}),oc=class{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion=`v2`}get provider(){return this.config.provider}async getArgs({text:e,voice:t=`alloy`,outputFormat:n=`mp3`,speed:r,instructions:i,language:a,providerOptions:o}){let s=[],c=await Y({provider:`openai`,providerOptions:o,schema:ac}),l={model:this.modelId,input:e,voice:t,response_format:`mp3`,speed:r,instructions:i};if(n&&([`mp3`,`opus`,`aac`,`flac`,`wav`,`pcm`].includes(n)?l.response_format=n:s.push({type:`unsupported-setting`,setting:`outputFormat`,details:`Unsupported output format: ${n}. Using mp3 instead.`})),c){let e={};for(let t in e){let n=e[t];n!==void 0&&(l[t]=n)}}return a&&s.push({type:`unsupported-setting`,setting:`language`,details:`OpenAI speech models do not support language selection. Language parameter "${a}" was ignored.`}),{requestBody:l,warnings:s}}async doGenerate(e){var t;let n=((t=this.config._internal)?.currentDate)?.call(t)??new Date,{requestBody:r,warnings:i}=await this.getArgs(e),{value:a,responseHeaders:o,rawValue:s}=await X({url:this.config.url({path:`/audio/speech`,modelId:this.modelId}),headers:K(this.config.headers(),e.headers),body:r,failedResponseHandler:$,successfulResponseHandler:co(),abortSignal:e.abortSignal,fetch:this.config.fetch});return{audio:a,warnings:i,request:{body:JSON.stringify(r)},response:{timestamp:n,modelId:this.modelId,headers:o,body:s}}}},sc=i.object({include:i.array(i.string()).optional(),language:i.string().optional(),prompt:i.string().optional(),temperature:i.number().min(0).max(1).default(0).optional(),timestampGranularities:i.array(i.enum([`word`,`segment`])).default([`segment`]).optional()}),cc={afrikaans:`af`,arabic:`ar`,armenian:`hy`,azerbaijani:`az`,belarusian:`be`,bosnian:`bs`,bulgarian:`bg`,catalan:`ca`,chinese:`zh`,croatian:`hr`,czech:`cs`,danish:`da`,dutch:`nl`,english:`en`,estonian:`et`,finnish:`fi`,french:`fr`,galician:`gl`,german:`de`,greek:`el`,hebrew:`he`,hindi:`hi`,hungarian:`hu`,icelandic:`is`,indonesian:`id`,italian:`it`,japanese:`ja`,kannada:`kn`,kazakh:`kk`,korean:`ko`,latvian:`lv`,lithuanian:`lt`,macedonian:`mk`,malay:`ms`,marathi:`mr`,maori:`mi`,nepali:`ne`,norwegian:`no`,persian:`fa`,polish:`pl`,portuguese:`pt`,romanian:`ro`,russian:`ru`,serbian:`sr`,slovak:`sk`,slovenian:`sl`,spanish:`es`,swahili:`sw`,swedish:`sv`,tagalog:`tl`,tamil:`ta`,thai:`th`,turkish:`tr`,ukrainian:`uk`,urdu:`ur`,vietnamese:`vi`,welsh:`cy`},lc=class{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion=`v2`}get provider(){return this.config.provider}async getArgs({audio:e,mediaType:t,providerOptions:n}){let r=[],i=await Y({provider:`openai`,providerOptions:n,schema:sc}),a=new FormData,o=e instanceof Uint8Array?new Blob([e]):new Blob([fo(e)]);a.append(`model`,this.modelId);let s=La(t);if(a.append(`file`,new File([o],`audio`,{type:t}),`audio.${s}`),i){let e={include:i.include,language:i.language,prompt:i.prompt,response_format:[`gpt-4o-transcribe`,`gpt-4o-mini-transcribe`].includes(this.modelId)?`json`:`verbose_json`,temperature:i.temperature,timestamp_granularities:i.timestampGranularities};for(let[t,n]of Object.entries(e))if(n!=null)if(Array.isArray(n))for(let e of n)a.append(`${t}[]`,String(e));else a.append(t,String(n))}return{formData:a,warnings:r}}async doGenerate(e){var t;let n=((t=this.config._internal)?.currentDate)?.call(t)??new Date,{formData:r,warnings:i}=await this.getArgs(e),{value:a,responseHeaders:o,rawValue:s}=await to({url:this.config.url({path:`/audio/transcriptions`,modelId:this.modelId}),headers:K(this.config.headers(),e.headers),formData:r,failedResponseHandler:$,successfulResponseHandler:Z(uc),abortSignal:e.abortSignal,fetch:this.config.fetch}),c=a.language!=null&&a.language in cc?cc[a.language]:void 0;return{text:a.text,segments:a.segments?.map(e=>({text:e.text,startSecond:e.start,endSecond:e.end}))??a.words?.map(e=>({text:e.word,startSecond:e.start,endSecond:e.end}))??[],language:c,durationInSeconds:a.duration??void 0,warnings:i,response:{timestamp:n,modelId:this.modelId,headers:o,body:s}}}},uc=i.object({text:i.string(),language:i.string().nullish(),duration:i.number().nullish(),words:i.array(i.object({word:i.string(),start:i.number(),end:i.number()})).nullish(),segments:i.array(i.object({id:i.number(),seek:i.number(),start:i.number(),end:i.number(),text:i.string(),tokens:i.array(i.number()),temperature:i.number(),avg_logprob:i.number(),compression_ratio:i.number(),no_speech_prob:i.number()})).nullish()}),dc=`2.0.42`;function fc(e={}){let t=mo(Ia({settingValue:e.baseURL,environmentVariableName:`OPENAI_BASE_URL`}))??`https://api.openai.com/v1`,n=e.name??`openai`,r=()=>Aa({Authorization:`Bearer ${Fa({apiKey:e.apiKey,environmentVariableName:`OPENAI_API_KEY`,description:`OpenAI`})}`,"OpenAI-Organization":e.organization,"OpenAI-Project":e.project,...e.headers},`ai-sdk/openai/${dc}`),i=i=>new xo(i,{provider:`${n}.chat`,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch}),a=i=>new Po(i,{provider:`${n}.completion`,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch}),o=i=>new zo(i,{provider:`${n}.embedding`,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch}),s=i=>new Uo(i,{provider:`${n}.image`,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch}),c=i=>new lc(i,{provider:`${n}.transcription`,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch}),l=i=>new oc(i,{provider:`${n}.speech`,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch}),u=e=>{if(new.target)throw Error(`The OpenAI model function cannot be called with the new keyword.`);return d(e)},d=i=>new Os(i,{provider:`${n}.responses`,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch,fileIdPrefixes:[`file-`]}),f=function(e){return u(e)};return f.languageModel=u,f.chat=i,f.completion=a,f.responses=d,f.embedding=o,f.textEmbedding=o,f.textEmbeddingModel=o,f.image=s,f.imageModel=s,f.transcription=c,f.transcriptionModel=c,f.speech=l,f.speechModel=l,f.tools=hs,f}fc();function pc(...e){return e.reduce((e,t)=>({...e,...t??{}}),{})}function mc(e){return Object.fromEntries([...e.headers])}function hc(e=globalThis){return e.window?`runtime/browser`:e.navigator?.userAgent?`runtime/${e.navigator.userAgent.toLowerCase()}`:e.process?.versions?.node?`runtime/node.js/${e.process.version.substring(0)}`:e.EdgeRuntime?`runtime/vercel-edge`:`runtime/unknown`}function gc(e){return Object.fromEntries(Object.entries(e).filter(([e,t])=>t!=null))}function _c(e,...t){let n=gc(e??{}),r=new Headers(n),i=r.get(`user-agent`)||``;return r.set(`user-agent`,[i,...t].filter(Boolean).join(` `)),Object.fromEntries(r)}(({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 j({argument:`separator`,message:`The separator "${r}" must not be part of the alphabet "${n}".`});return()=>`${e}${r}${i()}`})();function vc(e){return(e instanceof Error||e instanceof DOMException)&&(e.name===`AbortError`||e.name===`ResponseAborted`||e.name===`TimeoutError`)}var yc=[`fetch failed`,`failed to fetch`];function bc({error:e,url:t,requestBodyValues:n}){if(vc(e))return e;if(e instanceof TypeError&&yc.includes(e.message.toLowerCase())){let r=e.cause;if(r!=null)return new k({message:`Cannot connect to API: ${r.message}`,cause:r,url:t,requestBodyValues:n,isRetryable:!0})}return e}var xc=`3.0.10`,Sc=/"__proto__"\s*:/,Cc=/"constructor"\s*:/;function wc(e){let t=JSON.parse(e);return typeof t!=`object`||!t||Sc.test(e)===!1&&Cc.test(e)===!1?t:Tc(t)}function Tc(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 Ec(e){let{stackTraceLimit:t}=Error;Error.stackTraceLimit=0;try{return wc(e)}finally{Error.stackTraceLimit=t}}var Dc=Symbol.for(`vercel.ai.validator`);function Oc(e){return{[Dc]:!0,validate:e}}function kc(e){return typeof e==`object`&&!!e&&Dc in e&&e[Dc]===!0&&`validate`in e}function Ac(e){return kc(e)?e:jc(e)}function jc(e){return Oc(async t=>{let n=await e[`~standard`].validate(t);return n.issues==null?{success:!0,value:n.value}:{success:!1,error:new F({value:t,cause:n.issues})}})}async function Mc({value:e,schema:t}){let n=await Nc({value:e,schema:t});if(!n.success)throw F.wrap({value:e,cause:n.error});return n.value}async function Nc({value:e,schema:t}){let n=Ac(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:F.wrap({value:e,cause:t.error}),rawValue:e}}catch(t){return{success:!1,error:F.wrap({value:e,cause:t}),rawValue:e}}}async function Pc({text:e,schema:t}){try{let n=Ec(e);return t==null?n:Mc({value:n,schema:t})}catch(t){throw M.isInstance(t)||F.isInstance(t)?t:new M({text:e,cause:t})}}async function Fc({text:e,schema:t}){try{let n=Ec(e);return t==null?{success:!0,value:n,rawValue:n}:await Nc({value:n,schema:t})}catch(t){return{success:!1,error:M.isInstance(t)?t:new M({text:e,cause:t}),rawValue:void 0}}}var Ic=()=>globalThis.fetch,Lc=async({url:e,headers:t,body:n,failedResponseHandler:r,successfulResponseHandler:i,abortSignal:a,fetch:o})=>Rc({url:e,headers:{"Content-Type":`application/json`,...t},body:{content:JSON.stringify(n),values:n},failedResponseHandler:r,successfulResponseHandler:i,abortSignal:a,fetch:o}),Rc=async({url:e,headers:t={},body:n,successfulResponseHandler:r,failedResponseHandler:i,abortSignal:a,fetch:o=Ic()})=>{try{let s=await o(e,{method:`POST`,headers:_c(t,`ai-sdk/provider-utils/${xc}`,hc()),body:n.content,signal:a}),c=mc(s);if(!s.ok){let t;try{t=await i({response:s,url:e,requestBodyValues:n.values})}catch(t){throw vc(t)||k.isInstance(t)?t:new k({message:`Failed to process error response`,cause:t,statusCode:s.status,url:e,responseHeaders:c,requestBodyValues:n.values})}throw t.value}try{return await r({response:s,url:e,requestBodyValues:n.values})}catch(t){throw t instanceof Error&&(vc(t)||k.isInstance(t))?t:new k({message:`Failed to process successful response`,cause:t,statusCode:s.status,url:e,responseHeaders:c,requestBodyValues:n.values})}}catch(t){throw bc({error:t,url:e,requestBodyValues:n.values})}},zc=({errorSchema:e,errorToMessage:t,isRetryable:n})=>async({response:r,url:i,requestBodyValues:a})=>{let o=await r.text(),s=mc(r);if(o.trim()===``)return{responseHeaders:s,value:new k({message:r.statusText,url:i,requestBodyValues:a,statusCode:r.status,responseHeaders:s,responseBody:o,isRetryable:n?.(r)})};try{let c=await Pc({text:o,schema:e});return{responseHeaders:s,value:new k({message:t(c),url:i,requestBodyValues:a,statusCode:r.status,responseHeaders:s,responseBody:o,data:c,isRetryable:n?.(r,c)})}}catch{return{responseHeaders:s,value:new k({message:r.statusText,url:i,requestBodyValues:a,statusCode:r.status,responseHeaders:s,responseBody:o,isRetryable:n?.(r)})}}},Bc=e=>async({response:t,url:n,requestBodyValues:r})=>{let i=await t.text(),a=await Fc({text:i,schema:e}),o=mc(t);if(!a.success)throw new k({message:`Invalid JSON response`,cause:a.error,statusCode:t.status,responseHeaders:o,responseBody:i,url:n,requestBodyValues:r});return{responseHeaders:o,value:a.value,rawValue:a.rawValue}},{btoa:Vc,atob:Hc}=globalThis;i.object({user:i.string().optional(),reasoningEffort:i.string().optional()});var Uc={errorSchema:i.object({error:i.object({message:i.string(),type:i.string().nullish(),param:i.any().nullish(),code:i.union([i.string(),i.number()]).nullish()})}),errorToMessage:e=>e.error.message},Wc=i.object({prompt_tokens:i.number().nullish(),completion_tokens:i.number().nullish(),total_tokens:i.number().nullish(),prompt_tokens_details:i.object({cached_tokens:i.number().nullish()}).nullish(),completion_tokens_details:i.object({reasoning_tokens:i.number().nullish(),accepted_prediction_tokens:i.number().nullish(),rejected_prediction_tokens:i.number().nullish()}).nullish()}).nullish();i.object({id:i.string().nullish(),created:i.number().nullish(),model:i.string().nullish(),choices:i.array(i.object({message:i.object({role:i.literal(`assistant`).nullish(),content:i.string().nullish(),reasoning_content:i.string().nullish(),reasoning:i.string().nullish(),tool_calls:i.array(i.object({id:i.string().nullish(),function:i.object({name:i.string(),arguments:i.string()})})).nullish()}),finish_reason:i.string().nullish()})),usage:Wc}),i.object({echo:i.boolean().optional(),logitBias:i.record(i.string(),i.number()).optional(),suffix:i.string().optional(),user:i.string().optional()});var Gc=i.object({prompt_tokens:i.number(),completion_tokens:i.number(),total_tokens:i.number()});i.object({id:i.string().nullish(),created:i.number().nullish(),model:i.string().nullish(),choices:i.array(i.object({text:i.string(),finish_reason:i.string()})),usage:Gc.nullish()}),i.object({dimensions:i.number().optional(),user:i.string().optional()}),i.object({data:i.array(i.object({embedding:i.array(i.number())})),usage:i.object({prompt_tokens:i.number()}).nullish(),providerMetadata:i.record(i.string(),i.record(i.string(),i.any())).optional()});var Kc=class{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion=`v2`,this.maxImagesPerCall=10}get provider(){return this.config.provider}async doGenerate({prompt:e,n:t,size:n,aspectRatio:r,seed:i,providerOptions:a,headers:o,abortSignal:s}){var c;let l=[];r!=null&&l.push({type:`unsupported-setting`,setting:`aspectRatio`,details:"This model does not support aspect ratio. Use `size` instead."}),i!=null&&l.push({type:`unsupported-setting`,setting:`seed`});let u=((c=this.config._internal)?.currentDate)?.call(c)??new Date,{value:d,responseHeaders:f}=await Lc({url:this.config.url({path:`/images/generations`,modelId:this.modelId}),headers:pc(this.config.headers(),o),body:{model:this.modelId,prompt:e,n:t,size:n,...a.openai??{},response_format:`b64_json`},failedResponseHandler:zc(this.config.errorStructure??Uc),successfulResponseHandler:Bc(qc),abortSignal:s,fetch:this.config.fetch});return{images:d.data.map(e=>e.b64_json),warnings:l,response:{timestamp:u,modelId:this.modelId,headers:f}}}},qc=i.object({data:i.array(i.object({b64_json:i.string()}))});function Jc(...e){return e.reduce((e,t)=>({...e,...t??{}}),{})}function Yc(e){return Object.fromEntries([...e.headers])}function Xc(e=globalThis){return e.window?`runtime/browser`:e.navigator?.userAgent?`runtime/${e.navigator.userAgent.toLowerCase()}`:e.process?.versions?.node?`runtime/node.js/${e.process.version.substring(0)}`:e.EdgeRuntime?`runtime/vercel-edge`:`runtime/unknown`}function Zc(e){return Object.fromEntries(Object.entries(e).filter(([e,t])=>t!=null))}function Qc(e,...t){let n=Zc(e??{}),r=new Headers(n),i=r.get(`user-agent`)||``;return r.set(`user-agent`,[i,...t].filter(Boolean).join(` `)),Object.fromEntries(r)}var $c=(({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 j({argument:`separator`,message:`The separator "${r}" must not be part of the alphabet "${n}".`});return()=>`${e}${r}${i()}`})();function el(e){return(e instanceof Error||e instanceof DOMException)&&(e.name===`AbortError`||e.name===`ResponseAborted`||e.name===`TimeoutError`)}var tl=[`fetch failed`,`failed to fetch`];function nl({error:e,url:t,requestBodyValues:n}){if(el(e))return e;if(e instanceof TypeError&&tl.includes(e.message.toLowerCase())){let r=e.cause;if(r!=null)return new k({message:`Cannot connect to API: ${r.message}`,cause:r,url:t,requestBodyValues:n,isRetryable:!0})}return e}var rl=`3.0.10`;function il({apiKey:e,environmentVariableName:t,apiKeyParameterName:n=`apiKey`,description:r}){if(typeof e==`string`)return e;if(e!=null)throw new N({message:`${r} API key must be a string.`});if(typeof process>`u`)throw new N({message:`${r} API key is missing. Pass it using the '${n}' parameter. Environment variables is not supported in this environment.`});if(e=process.env[t],e==null)throw new N({message:`${r} API key is missing. Pass it using the '${n}' parameter or the ${t} environment variable.`});if(typeof e!=`string`)throw new N({message:`${r} API key must be a string. The value of the ${t} environment variable is not a string.`});return e}var al=/"__proto__"\s*:/,ol=/"constructor"\s*:/;function sl(e){let t=JSON.parse(e);return typeof t!=`object`||!t||al.test(e)===!1&&ol.test(e)===!1?t:cl(t)}function cl(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 ll(e){let{stackTraceLimit:t}=Error;Error.stackTraceLimit=0;try{return sl(e)}finally{Error.stackTraceLimit=t}}var ul=Symbol.for(`vercel.ai.validator`);function dl(e){return{[ul]:!0,validate:e}}function fl(e){return typeof e==`object`&&!!e&&ul in e&&e[ul]===!0&&`validate`in e}function pl(e){return fl(e)?e:ml(e)}function ml(e){return dl(async t=>{let n=await e[`~standard`].validate(t);return n.issues==null?{success:!0,value:n.value}:{success:!1,error:new F({value:t,cause:n.issues})}})}async function hl({value:e,schema:t}){let n=await gl({value:e,schema:t});if(!n.success)throw F.wrap({value:e,cause:n.error});return n.value}async function gl({value:e,schema:t}){let n=pl(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:F.wrap({value:e,cause:t.error}),rawValue:e}}catch(t){return{success:!1,error:F.wrap({value:e,cause:t}),rawValue:e}}}async function _l({text:e,schema:t}){try{let n=ll(e);return t==null?n:hl({value:n,schema:t})}catch(t){throw M.isInstance(t)||F.isInstance(t)?t:new M({text:e,cause:t})}}async function vl({text:e,schema:t}){try{let n=ll(e);return t==null?{success:!0,value:n,rawValue:n}:await gl({value:n,schema:t})}catch(t){return{success:!1,error:M.isInstance(t)?t:new M({text:e,cause:t}),rawValue:void 0}}}function yl({stream:e,schema:t}){return e.pipeThrough(new TextDecoderStream).pipeThrough(new D).pipeThrough(new TransformStream({async transform({data:e},n){e!==`[DONE]`&&n.enqueue(await vl({text:e,schema:t}))}}))}async function bl({provider:e,providerOptions:t,schema:n}){if(t?.[e]==null)return;let r=await gl({value:t[e],schema:n});if(!r.success)throw new j({argument:`providerOptions`,message:`invalid ${e} provider options`,cause:r.error});return r.value}var xl=()=>globalThis.fetch,Sl=async({url:e,headers:t,body:n,failedResponseHandler:r,successfulResponseHandler:i,abortSignal:a,fetch:o})=>Cl({url:e,headers:{"Content-Type":`application/json`,...t},body:{content:JSON.stringify(n),values:n},failedResponseHandler:r,successfulResponseHandler:i,abortSignal:a,fetch:o}),Cl=async({url:e,headers:t={},body:n,successfulResponseHandler:r,failedResponseHandler:i,abortSignal:a,fetch:o=xl()})=>{try{let s=await o(e,{method:`POST`,headers:Qc(t,`ai-sdk/provider-utils/${rl}`,Xc()),body:n.content,signal:a}),c=Yc(s);if(!s.ok){let t;try{t=await i({response:s,url:e,requestBodyValues:n.values})}catch(t){throw el(t)||k.isInstance(t)?t:new k({message:`Failed to process error response`,cause:t,statusCode:s.status,url:e,responseHeaders:c,requestBodyValues:n.values})}throw t.value}try{return await r({response:s,url:e,requestBodyValues:n.values})}catch(t){throw t instanceof Error&&(el(t)||k.isInstance(t))?t:new k({message:`Failed to process successful response`,cause:t,statusCode:s.status,url:e,responseHeaders:c,requestBodyValues:n.values})}}catch(t){throw nl({error:t,url:e,requestBodyValues:n.values})}},wl=({errorSchema:e,errorToMessage:t,isRetryable:n})=>async({response:r,url:i,requestBodyValues:a})=>{let o=await r.text(),s=Yc(r);if(o.trim()===``)return{responseHeaders:s,value:new k({message:r.statusText,url:i,requestBodyValues:a,statusCode:r.status,responseHeaders:s,responseBody:o,isRetryable:n?.(r)})};try{let c=await _l({text:o,schema:e});return{responseHeaders:s,value:new k({message:t(c),url:i,requestBodyValues:a,statusCode:r.status,responseHeaders:s,responseBody:o,data:c,isRetryable:n?.(r,c)})}}catch{return{responseHeaders:s,value:new k({message:r.statusText,url:i,requestBodyValues:a,statusCode:r.status,responseHeaders:s,responseBody:o,isRetryable:n?.(r)})}}},Tl=e=>async({response:t})=>{let n=Yc(t);if(t.body==null)throw new A({});return{responseHeaders:n,value:yl({stream:t.body,schema:e})}},El=e=>async({response:t,url:n,requestBodyValues:r})=>{let i=await t.text(),a=await vl({text:i,schema:e}),o=Yc(t);if(!a.success)throw new k({message:`Invalid JSON response`,cause:a.error,statusCode:t.status,responseHeaders:o,responseBody:i,url:n,requestBodyValues:r});return{responseHeaders:o,value:a.value,rawValue:a.rawValue}},{btoa:Dl,atob:Ol}=globalThis;function kl(e){let t=``;for(let n=0;n<e.length;n++)t+=String.fromCodePoint(e[n]);return Dl(t)}function Al(e){return e instanceof Uint8Array?kl(e):e}function jl(e){return e?.replace(/\/$/,``)}function Ml(e){let t=[],n=[];for(let{role:n,content:r}of e)switch(n){case`system`:t.push({role:`system`,content:r});break;case`user`:if(r.length===1&&r[0].type===`text`){t.push({role:`user`,content:r[0].text});break}t.push({role:`user`,content:r.map(e=>{switch(e.type){case`text`:return{type:`text`,text:e.text};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,${Al(e.data)}`}}}else throw new I({functionality:`file part media type ${e.mediaType}`})}})});break;case`assistant`:{let e=``,n=[];for(let t of r)switch(t.type){case`text`:e+=t.text;break;case`tool-call`:n.push({id:t.toolCallId,type:`function`,function:{name:t.toolName,arguments:JSON.stringify(t.input)}});break}t.push({role:`assistant`,content:e,tool_calls:n.length>0?n:void 0});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}t.push({role:`tool`,tool_call_id:e.toolCallId,content:r})}break;default:{let e=n;throw Error(`Unsupported role: ${e}`)}}return{messages:t,warnings:n}}function Nl({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 Pl(e){switch(e){case`stop`:return`stop`;case`length`:return`length`;case`tool_calls`:case`function_call`:return`tool-calls`;case`content_filter`:return`content-filter`;default:return`unknown`}}var Fl=i.object({type:i.literal(`web`),country:i.string().length(2).optional(),excludedWebsites:i.array(i.string()).max(5).optional(),allowedWebsites:i.array(i.string()).max(5).optional(),safeSearch:i.boolean().optional()}),Il=i.object({type:i.literal(`x`),excludedXHandles:i.array(i.string()).optional(),includedXHandles:i.array(i.string()).optional(),postFavoriteCount:i.number().int().optional(),postViewCount:i.number().int().optional(),xHandles:i.array(i.string()).optional()}),Ll=i.object({type:i.literal(`news`),country:i.string().length(2).optional(),excludedWebsites:i.array(i.string()).max(5).optional(),safeSearch:i.boolean().optional()}),Rl=i.object({type:i.literal(`rss`),links:i.array(i.string().url()).max(1)}),zl=i.discriminatedUnion(`type`,[Fl,Il,Ll,Rl]),Bl=i.object({reasoningEffort:i.enum([`low`,`high`]).optional(),searchParameters:i.object({mode:i.enum([`off`,`auto`,`on`]),returnCitations:i.boolean().optional(),fromDate:i.string().optional(),toDate:i.string().optional(),maxSearchResults:i.number().min(1).max(50).optional(),sources:i.array(zl).optional()}).optional()}),Vl=i.object({error:i.object({message:i.string(),type:i.string().nullish(),param:i.any().nullish(),code:i.union([i.string(),i.number()]).nullish()})}),Hl=wl({errorSchema:Vl,errorToMessage:e=>e.error.message});function Ul({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`:return{tools:r,toolChoice:i,toolWarnings:n};case`required`:return{tools:r,toolChoice:`required`,toolWarnings:n};case`tool`:return{tools:r,toolChoice:{type:`function`,function:{name:t.toolName}},toolWarnings:n};default:throw new I({functionality:`tool choice type: ${i}`})}}var Wl=class{constructor(e,t){this.specificationVersion=`v2`,this.supportedUrls={"image/*":[/^https?:\/\/.*$/]},this.modelId=e,this.config=t}get provider(){return this.config.provider}async getArgs({prompt:e,maxOutputTokens:t,temperature:n,topP:r,topK:i,frequencyPenalty:a,presencePenalty:o,stopSequences:s,seed:c,responseFormat:l,providerOptions:u,tools:d,toolChoice:f}){let p=[],m=await bl({provider:`xai`,providerOptions:u,schema:Bl})??{};i!=null&&p.push({type:`unsupported-setting`,setting:`topK`}),a!=null&&p.push({type:`unsupported-setting`,setting:`frequencyPenalty`}),o!=null&&p.push({type:`unsupported-setting`,setting:`presencePenalty`}),s!=null&&p.push({type:`unsupported-setting`,setting:`stopSequences`}),l!=null&&l.type===`json`&&l.schema!=null&&p.push({type:`unsupported-setting`,setting:`responseFormat`,details:`JSON response format schema is not supported`});let{messages:h,warnings:g}=Ml(e);p.push(...g);let{tools:_,toolChoice:v,toolWarnings:y}=Ul({tools:d,toolChoice:f});return p.push(...y),{args:{model:this.modelId,max_tokens:t,temperature:n,top_p:r,seed:c,reasoning_effort:m.reasoningEffort,response_format:l?.type===`json`?l.schema==null?{type:`json_object`}:{type:`json_schema`,json_schema:{name:l.name??`response`,schema:l.schema,strict:!0}}:void 0,search_parameters:m.searchParameters?{mode:m.searchParameters.mode,return_citations:m.searchParameters.returnCitations,from_date:m.searchParameters.fromDate,to_date:m.searchParameters.toDate,max_search_results:m.searchParameters.maxSearchResults,sources:m.searchParameters.sources?.map(e=>({type:e.type,...e.type===`web`&&{country:e.country,excluded_websites:e.excludedWebsites,allowed_websites:e.allowedWebsites,safe_search:e.safeSearch},...e.type===`x`&&{excluded_x_handles:e.excludedXHandles,included_x_handles:e.includedXHandles??e.xHandles,post_favorite_count:e.postFavoriteCount,post_view_count:e.postViewCount},...e.type===`news`&&{country:e.country,excluded_websites:e.excludedWebsites,safe_search:e.safeSearch},...e.type===`rss`&&{links:e.links}}))}:void 0,messages:h,tools:_,tool_choice:v},warnings:p}}async doGenerate(e){let{args:t,warnings:n}=await this.getArgs(e),{responseHeaders:r,value:i,rawValue:a}=await Sl({url:`${this.config.baseURL??`https://api.x.ai/v1`}/chat/completions`,headers:Jc(this.config.headers(),e.headers),body:t,failedResponseHandler:Hl,successfulResponseHandler:El(Kl),abortSignal:e.abortSignal,fetch:this.config.fetch}),o=i.choices[0],s=[];if(o.message.content!=null&&o.message.content.length>0){let e=o.message.content,n=t.messages[t.messages.length-1];n?.role===`assistant`&&e===n.content&&(e=``),e.length>0&&s.push({type:`text`,text:e})}if(o.message.reasoning_content!=null&&o.message.reasoning_content.length>0&&s.push({type:`reasoning`,text:o.message.reasoning_content}),o.message.tool_calls!=null)for(let e of o.message.tool_calls)s.push({type:`tool-call`,toolCallId:e.id,toolName:e.function.name,input:e.function.arguments});if(i.citations!=null)for(let e of i.citations)s.push({type:`source`,sourceType:`url`,id:this.config.generateId(),url:e});return{content:s,finishReason:Pl(o.finish_reason),usage:{inputTokens:i.usage.prompt_tokens,outputTokens:i.usage.completion_tokens,totalTokens:i.usage.total_tokens,reasoningTokens:i.usage.completion_tokens_details?.reasoning_tokens??void 0},request:{body:t},response:{...Nl(i),headers:r,body:a},warnings:n}}async doStream(e){let{args:t,warnings:n}=await this.getArgs(e),r={...t,stream:!0,stream_options:{include_usage:!0}},{responseHeaders:i,value:a}=await Sl({url:`${this.config.baseURL??`https://api.x.ai/v1`}/chat/completions`,headers:Jc(this.config.headers(),e.headers),body:r,failedResponseHandler:Hl,successfulResponseHandler:Tl(ql),abortSignal:e.abortSignal,fetch:this.config.fetch}),o=`unknown`,s={inputTokens:void 0,outputTokens:void 0,totalTokens:void 0},c=!0,l={},u={},d=this;return{stream:a.pipeThrough(new TransformStream({start(e){e.enqueue({type:`stream-start`,warnings:n})},transform(t,n){if(e.includeRawChunks&&n.enqueue({type:`raw`,rawValue:t.rawValue}),!t.success){n.enqueue({type:`error`,error:t.error});return}let i=t.value;if(c&&=(n.enqueue({type:`response-metadata`,...Nl(i)}),!1),i.citations!=null)for(let e of i.citations)n.enqueue({type:`source`,sourceType:`url`,id:d.config.generateId(),url:e});i.usage!=null&&(s.inputTokens=i.usage.prompt_tokens,s.outputTokens=i.usage.completion_tokens,s.totalTokens=i.usage.total_tokens,s.reasoningTokens=i.usage.completion_tokens_details?.reasoning_tokens??void 0);let a=i.choices[0];if(a?.finish_reason!=null&&(o=Pl(a.finish_reason)),a?.delta==null)return;let f=a.delta,p=a.index;if(f.content!=null&&f.content.length>0){let e=f.content,t=r.messages[r.messages.length-1];if(t?.role===`assistant`&&e===t.content)return;let a=`text-${i.id||p}`;l[a]??(l[a]={type:`text`},n.enqueue({type:`text-start`,id:a})),n.enqueue({type:`text-delta`,id:a,delta:e})}if(f.reasoning_content!=null&&f.reasoning_content.length>0){let e=`reasoning-${i.id||p}`;if(u[e]===f.reasoning_content)return;u[e]=f.reasoning_content,l[e]??(l[e]={type:`reasoning`},n.enqueue({type:`reasoning-start`,id:e})),n.enqueue({type:`reasoning-delta`,id:e,delta:f.reasoning_content})}if(f.tool_calls!=null)for(let e of f.tool_calls){let t=e.id;n.enqueue({type:`tool-input-start`,id:t,toolName:e.function.name}),n.enqueue({type:`tool-input-delta`,id:t,delta:e.function.arguments}),n.enqueue({type:`tool-input-end`,id:t}),n.enqueue({type:`tool-call`,toolCallId:t,toolName:e.function.name,input:e.function.arguments})}},flush(e){for(let[t,n]of Object.entries(l))e.enqueue({type:n.type===`text`?`text-end`:`reasoning-end`,id:t});e.enqueue({type:`finish`,finishReason:o,usage:s})}})),request:{body:r},response:{headers:i}}}},Gl=i.object({prompt_tokens:i.number(),completion_tokens:i.number(),total_tokens:i.number(),completion_tokens_details:i.object({reasoning_tokens:i.number().nullish()}).nullish()}),Kl=i.object({id:i.string().nullish(),created:i.number().nullish(),model:i.string().nullish(),choices:i.array(i.object({message:i.object({role:i.literal(`assistant`),content:i.string().nullish(),reasoning_content:i.string().nullish(),tool_calls:i.array(i.object({id:i.string(),type:i.literal(`function`),function:i.object({name:i.string(),arguments:i.string()})})).nullish()}),index:i.number(),finish_reason:i.string().nullish()})),object:i.literal(`chat.completion`),usage:Gl,citations:i.array(i.string().url()).nullish()}),ql=i.object({id:i.string().nullish(),created:i.number().nullish(),model:i.string().nullish(),choices:i.array(i.object({delta:i.object({role:i.enum([`assistant`]).optional(),content:i.string().nullish(),reasoning_content:i.string().nullish(),tool_calls:i.array(i.object({id:i.string(),type:i.literal(`function`),function:i.object({name:i.string(),arguments:i.string()})})).nullish()}),finish_reason:i.string().nullish(),index:i.number()})),usage:Gl.nullish(),citations:i.array(i.string().url()).nullish()}),Jl=`2.0.23`,Yl={errorSchema:Vl,errorToMessage:e=>e.error.message};function Xl(e={}){let t=jl(e.baseURL??`https://api.x.ai/v1`),n=()=>Qc({Authorization:`Bearer ${il({apiKey:e.apiKey,environmentVariableName:`XAI_API_KEY`,description:`xAI API key`})}`,...e.headers},`ai-sdk/xai/${Jl}`),r=r=>new Wl(r,{provider:`xai.chat`,baseURL:t,headers:n,generateId:$c,fetch:e.fetch}),i=r=>new Kc(r,{provider:`xai.image`,url:({path:e})=>`${t}${e}`,headers:n,fetch:e.fetch,errorStructure:Yl}),a=e=>r(e);return a.languageModel=r,a.chat=r,a.textEmbeddingModel=e=>{throw new P({modelId:e,modelType:`textEmbeddingModel`})},a.imageModel=i,a.image=i,a}Xl();function Zl(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(n!==void 0&&n.role===`user`&&!(typeof n.metadata!=`object`||n.metadata===null)&&`options`in n.metadata)return n.metadata.options}}function Ql(e){if(!e.body)throw Error(`Response body is required`);let t=e.headers.get(`x-blink-stream-response-format`);if(!t||t===`ui-message`)return e.body.pipeThrough(new TextDecoderStream).pipeThrough(new D).pipeThrough(new TransformStream({async transform(e,t){if(e.data!==`[DONE]`)try{let n=JSON.parse(e.data);t.enqueue(n)}catch(e){t.error(e);return}}}));let n=e=>p({model:e,prompt:[{role:`user`,content:[{type:`text`,text:`Hello, world!`}]}]}).toUIMessageStream();switch(t){case`openai-chat`:return n(fc({apiKey:`ignored`,fetch:(t,n)=>e}).chat(`fake-model`));case`openai-response`:return n(fc({apiKey:`ignored`,fetch:(t,n)=>e}).responses(`fake-model`));case`anthropic`:return n(li({apiKey:`ignored`,fetch:(t,n)=>e}).chat(`fake-model`));case`google`:return n(Da({apiKey:`ignored`,fetch:(t,n)=>e}).chat(`fake-model`));case`xai`:return n(Xl({apiKey:`ignored`,fetch:(t,n)=>e}).chat(`fake-model`));default:throw Error(`Unsupported response format: ${t}`)}}const $l=`BLINK_API_URL`;function eu(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}var tu=class{_lockP=null;async lock(){let e=this._lockP,{promise:t,resolve:n}=eu();return this._lockP=t,await e,n}withLock(e){return ru(this.lock(),e)}},nu=class{_lock=new tu;_writeP=null;_readP=[];read(){return this._lock.withLock(async()=>{await this._writeP;let{promise:e,resolve:t}=eu();return this._readP.push(e),t})}withRead(e){return ru(this.read(),e)}async write(){return await this._lock.withLock(async()=>{await this._writeP,await Promise.all(this._readP);let{promise:e,resolve:t}=eu();return this._writeP=e,this._readP=[],t})}withWrite(e){return ru(this.write(),e)}};async function ru(e,t){let n=await e;try{return await t()}finally{n()}}var iu=class{constructor(e){this.onRelease=e}[Symbol.dispose](){this.onRelease()}},au=class{constructor(e){this.onRelease=e}[Symbol.dispose](){this.onRelease()}},ou=class{_lock=new nu;async read(){let e=await this._lock.read();return new iu(e)}async write(){let e=await this._lock.write();return new au(e)}},su=class{baseUrl;client;constructor(e){this.client=Lt(e.baseUrl),this.baseUrl=e.baseUrl}async chat(e,t){let n=await this.client._agent.chat.$post({json:e},{headers:t?.headers,init:{signal:t?.signal}});return n.ok||await this.handleError(n),Ql(n)}async capabilities(){let e=await this.client._agent.capabilities.$get();return e.ok||await this.handleError(e),e.json()}async ui(e,t){let n=await this.client._agent.ui.$get({query:e.selectedOptions?{selected_options:JSON.stringify(e.selectedOptions)}:{}},{init:{signal:t?.signal}});if(!n.ok||n.status!==200){if(n.status===404)return;await this.handleError(n)}return n.json()}async health(){let e=await this.client._agent.health.$get();e.ok||await this.handleError(e)}async handleError(e){let t;try{t=await e.text()}catch{}if(t){let n;try{n=JSON.parse(t)}catch{}throw n?Error(n.error):Error(`Failed (${e.status}): ${t}`)}throw Error(`Failed (${e.status}): ${e.statusText}`)}};async function cu({id:e,agent:t,messages:n,signal:r,shouldContinueStreaming:i=lu}){n=[...n];let a=new TransformStream,o=a.writable.getWriter(),s=async()=>{let a;try{let c=await t.chat({messages:n,id:e},{signal:r}),l=f({message:{id:crypto.randomUUID(),role:`assistant`,parts:[],metadata:{}},stream:c,onError:e=>{e instanceof Error&&e.name===`AbortError`||o.abort(e)}});for await(let e of l)o.write(e),a=e;if(a&&i(a)){n.push(a),await s();return}await o.close()}catch(e){if(e?.name===`AbortError`||r?.aborted)return;await o.abort(e)}finally{await o.close()}};return s().catch(e=>{o.abort(e)}),a.readable}const lu=e=>{if(e.role!==`assistant`)return!1;let t=e.parts.reduce((e,t,n)=>t.type===`step-start`?n:e,-1),n=e.parts.slice(t+1).filter(u);return n.length===0||n.some(e=>je(e.output)&&e.output.outcome===`pending`)?!1:n.every(e=>e.state.startsWith(`output-`))},uu=(e,t,n=crypto.randomUUID())=>({created_at:new Date().toISOString(),...e,id:n,metadata:e.metadata,mode:t});function du(e){return typeof e==`object`&&e?.__blink_internal!==void 0}function fu(e){return typeof e.metadata==`object`&&e.metadata!==null&&`__blink_log`in e.metadata&&e.metadata.__blink_log===!0&&`level`in e.metadata&&`source`in e.metadata&&`message`in e.metadata}var pu=class{chatId;agent;chatStore;serializeMessage;filterMessages;onError;chat;loading=!1;streamingMessage;status=`idle`;queue=[];logQueue=[];abortController;isProcessingQueue=!1;listeners=new Set;watcher;disposed=!1;constructor(e){this.chatId=e.chatId??`00000000-0000-0000-0000-000000000000`,this.chat={id:this.chatId,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),messages:[]},this.loading=!0,this.chatStore=St(e.chatsDirectory,`id`),this.serializeMessage=e.serializeMessage,this.filterMessages=e.filterMessages,this.onError=e.onError,this.watcher=Ct(e.chatsDirectory,{pollInterval:1e3,debounce:50}),this.watcher.onChange(e=>{if(e.key!==this.chatId||this.isProcessingQueue)return;if(!e.value){this.chat={id:this.chatId,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),messages:[]},this.status=`idle`,this.streamingMessage=void 0,this.notifyListeners();return}if(this.chat.updated_at===e.value?.updated_at)return;let t=e.value,n=e.locked?`streaming`:`idle`,r=this.chat.updated_at!==t?.updated_at||this.status!==n;this.chat=t,this.streamingMessage=void 0,this.status=n,r&&this.notifyListeners()}),this.chatStore.get(this.chatId).then(e=>{this.disposed||e&&(this.chat=e)}).catch(e=>{let t=e instanceof Error?e.message:String(e);this.onError?.(t)}).finally(()=>{this.loading=!1,this.notifyListeners()})}setAgent(e){this.agent=e}getState(){return{id:this.chatId,key:this.chat?.key,messages:(this.chat?.messages??[]).filter(e=>!du(e.metadata)),created_at:this.chat?.created_at,updated_at:this.chat?.updated_at,status:this.status,streamingMessage:this.streamingMessage,loading:this.loading,queuedMessages:this.queue,queuedLogs:this.logQueue}}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}async upsertMessages(e,t){let n=!1,r;t?r=t:(r=await this.chatStore.lock(this.chatId),n=!0);try{let t=await r.get();(!t.id||!Array.isArray(t.messages))&&(t={id:this.chatId,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),messages:[]});let n=[...t.messages];for(let t of e){let e;if(this.serializeMessage){let n=this.serializeMessage(t);if(n===void 0)return;e=n}else e={...t,created_at:new Date().toISOString(),mode:`run`,metadata:t.metadata,id:t.id??crypto.randomUUID()};let r=n.findIndex(t=>t.id===e.id);r===-1?n.push(e):n.splice(r,1,e)}this.chat={...t,updated_at:new Date().toISOString(),messages:n},await r.set(this.chat),this.notifyListeners()}finally{n&&await r.release()}}async deleteMessages(e){let t;try{t=await this.chatStore.lock(this.chatId);let n=await t.get();this.chat.messages=n.messages.filter(t=>!e.includes(t.id)),this.chat.updated_at=new Date().toISOString(),await t.set(this.chat),this.notifyListeners()}finally{t&&await t.release()}}async queueLogMessage({message:e,level:t,source:n}){let r=`(EDIT MODE NOTE) ${n===`agent`?`The agent`:"The `blink dev` CLI"} printed the following ${t}:\n\`\`\`\n${o(e)}\n\`\`\`\n`,i={id:crypto.randomUUID(),created_at:new Date().toISOString(),role:`user`,parts:[{type:`text`,text:r}],metadata:{__blink_log:!0,level:t,source:n,message:e},mode:`edit`};this.logQueue.push(i),this.notifyListeners()}async flushLogQueue(e){if(this.logQueue.length===0)return;let t=[...this.logQueue];this.logQueue=[],await this.upsertMessages(t,e)}async sendMessages(e){if(this.status=`idle`,this.notifyListeners(),this.isProcessingQueue){this.queue.push(...e),this.notifyListeners();return}this.queue=e,this.processQueueOrRun()}async start(){this.status=`idle`,this.notifyListeners(),this.processQueueOrRun()}async stop(){this.status=`idle`,this.abortController?.abort(),this.notifyListeners()}async processQueueOrRun(){if(!this.agent){this.onError?.(`The agent is not available. Please wait for the build to succeed.`),this.queue=[];return}if(this.isProcessingQueue)return;this.isProcessingQueue=!0;let t;try{t=await this.chatStore.lock(this.chatId),await this.flushLogQueue(t);let r=!0;for(;this.queue.length>0||r;)try{var n=e();r=!1;let i=new AbortController;this.abortController=i;let a=[...this.queue];this.queue=[],this.streamingMessage=void 0,this.status=`streaming`,this.notifyListeners(),a.length>0&&await this.upsertMessages(a,t);let o=this.chat.messages;this.filterMessages&&(o=o.filter(this.filterMessages)),o=o.map(e=>({...e,parts:e.parts.map(e=>!u(e)||e.input!==``?e:{...e,input:{}})})),n.u(await this.agent.lock.read());let s=performance.now(),c=await cu({agent:this.agent.client,id:this.chatId,signal:i.signal,messages:o}),l=async e=>{let n=e;if(this.serializeMessage){let t=this.serializeMessage(e);if(t===void 0)return;n=t}this.chat.updated_at=new Date().toISOString(),this.chat.messages.push(n),this.streamingMessage=void 0,await t?.set(this.chat)},d=c.getReader();i.signal.addEventListener(`abort`,()=>{d.cancel().catch(()=>{})},{once:!0});let f;try{for(;;){let{done:e,value:t}=await d.read();if(e||i.signal.aborted)break;f||=performance.now()-s,this.streamingMessage&&t.id!==this.streamingMessage.id&&await l(this.streamingMessage);let n={...t,metadata:{...typeof t.metadata==`object`&&t.metadata!==null?t.metadata:{},ttft:f}};this.streamingMessage=this.serializeMessage?this.serializeMessage(n):n,this.notifyListeners()}}finally{d.releaseLock()}this.streamingMessage&&await l(this.streamingMessage)}catch(e){n.e=e}finally{n.d()}}catch(e){let t=e instanceof Error?e.message:String(e);this.onError?.(t)}finally{this.isProcessingQueue=!1,this.streamingMessage=void 0,this.status=`idle`,t&&(await this.flushLogQueue(t),this.chat.updated_at=new Date().toISOString(),await t.set(this.chat),await t.release(),this.notifyListeners())}}stopStreaming(){this.abortController?.abort()}clearQueue(){this.queue=[],this.notifyListeners()}async resetChat(){this.abortController?.abort(),this.resetChatState(),this.notifyListeners();let e;try{e=await this.chatStore.lock(this.chatId),await e.delete()}catch{}finally{if(e)try{await e.release()}catch{}}}dispose(){this.disposed=!0,this.watcher.dispose(),this.listeners.clear(),this.stopStreaming()}resetChatState(){this.chat={id:this.chatId,created_at:new Date().toISOString(),updated_at:new Date().toISOString(),messages:[]},this.streamingMessage=void 0,this.status=`idle`,this.queue=[],this.logQueue=[]}notifyListeners(){let e=this.getState();for(let t of this.listeners)t(e)}};export{k as APICallError,$l as APIServerURLEnvironmentVariable,pu as ChatManager,su as Client,ke as CustomChatResponseError,A as EmptyResponseBodyError,D as EventSourceParserStream,j as InvalidArgumentError,M as JSONParseError,P as NoSuchModelError,ou as RWLock,F as TypeValidationError,He as checkOptionalParameter,ve as completeAssign,uu as convertMessage,li as createAnthropic,Oe as createCustomAbortControllerSignal,St as createDiskStore,fc as createOpenAI,Et as createParser,qe as decodeURIComponent_,Ee as ensureDisposableStackRegisteredForTerminateEvents,v as fakePromise,_t as getLockInfo,ze as getPath,Be as getPathNoStrict,Ie as getPattern,Ge as getQueryParam,Ke as getQueryParams,xe as handleAbortSignalAndPromiseResponse,ye as handleErrorFromRequestHandler,_ as handleMaybePromise,Lt as hc,fe as isFetchEvent,fu as isLogMessage,le as isNodeRequest,h as isPromise,_e as isRequestInit,ue as isServerResponse,du as isStoredMessageMetadata,je as isToolApprovalOutput,be as isolateObject,b as iterateAsync,Zl as lastUIOptions,ht as lock,Ve as mergePath,se as normalizeNodeRequest,Xe as parse,he as sendNodeResponse,Me as splitPath,Ne as splitRoutingPath,Ae as tools,Le as tryDecode,te as unfakePromise};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{__require as e}from"./chunk-D9KrCrVq.js";import{import_websocket_server as t}from"./wrapper-DRdRnzOz.js";import"./events-DKgZ2LNM.js";import n from"node:path";import r from"node:fs";import i from"node:os";import{Server as a}from"@blink-sdk/compute-protocol/server";const o={GIT_TERMINAL_PROMPT:`0`,GIT_PAGER:`cat`,GIT_AUTHOR_NAME:`blink-so[bot]`,GIT_AUTHOR_EMAIL:`211532188+blink-so[bot]@users.noreply.github.com`,GIT_COMMITTER_NAME:`blink-so[bot]`,GIT_COMMITTER_EMAIL:`211532188+blink-so[bot]@users.noreply.github.com`,GIT_CONFIG_COUNT:`1`,GIT_CONFIG_KEY_0:`credential.https://github.com.helper`,GIT_CONFIG_VALUE_0:`!gh auth git-credential`};async function s(){for(let[e,t]of Object.entries(o))process.env[e]===void 0&&(process.env[e]=t);let n=parseInt(process.env.PORT??`22137`);if(isNaN(n))throw Error(`PORT environment variable is not a number`);let r=new t.default({port:n});console.log(`Compute server running on port ${n}`),r.on(`connection`,t=>{console.log(`Client connected`);let n;try{n=e(`@lydell/node-pty`)}catch{}typeof Bun<`u`&&(n=void 0);let r=new a({nodePty:n,send:e=>{t.send(e)}});t.on(`message`,e=>{r.handleMessage(new Uint8Array(e))}),t.on(`close`,()=>{console.log(`Client disconnected`)})})}export{s as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./wrapper-DRdRnzOz.js";import"./events-DKgZ2LNM.js";import{WorkspaceConnect as e,connect as t}from"./connect-t56RPJRB.js";export{e as WorkspaceConnect,t as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__require as e}from"./chunk-D9KrCrVq.js";import{wrapper_default as t}from"./wrapper-
|
|
1
|
+
import{__require as e}from"./chunk-D9KrCrVq.js";import{wrapper_default as t}from"./wrapper-DRdRnzOz.js";import{Emitter as n}from"./events-DKgZ2LNM.js";import r from"node:path";import i from"node:fs";import a from"node:os";import{Server as o}from"@blink-sdk/compute-protocol/server";const s=r.join(a.tmpdir(),`blink-connect-${process.pid}.log`),c=e=>{if(e instanceof Error)return e.stack??e.message;try{return JSON.stringify(e)}catch{return String(e)}},l=async e=>{let t=`${new Date().toISOString()} ${e}\n`;try{await i.promises.appendFile(s,t,`utf8`)}catch{}};async function u(){let e=process.env.BLINK_URL,t=process.env.BLINK_TOKEN;delete process.env.BLINK_TOKEN,process.env.GIT_TERMINAL_PROMPT=`0`,process.env.GIT_PAGER=`cat`,process.env.GIT_AUTHOR_NAME=`blink-so[bot]`,process.env.GIT_AUTHOR_EMAIL=`211532188+blink-so[bot]@users.noreply.github.com`,process.env.GIT_COMMITTER_NAME=`blink-so[bot]`,process.env.GIT_COMMITTER_EMAIL=`211532188+blink-so[bot]@users.noreply.github.com`,process.env.GIT_CONFIG_COUNT=`1`,process.env.GIT_CONFIG_KEY_0=`credential.https://github.com.helper`,process.env.GIT_CONFIG_VALUE_0=`!gh auth git-credential`,process.addListener(`uncaughtException`,e=>{l(`uncaughtException: ${c(e)}`),d(t,e)}),process.addListener(`unhandledRejection`,e=>{l(`unhandledRejection: ${c(e)}`),d(t,e)});let n=new f({url:e??`wss://blink.so/api/connect`,token:t,createDeploymentFromTar:async n=>{let r=new URL(`/api/static-deployment`,e??`https://blink.so`);return(await(await fetch(r,{method:`POST`,body:n,headers:{"Content-Type":`application/tar`,Authorization:`Bearer ${t}`},duplex:`half`})).json()).deployment_id}});n.onConnect(()=>{console.log(`Connected`),l(`Connected`)}),n.onDisconnect(()=>{console.log(`Disconnected`),l(`Disconnected`)})}const d=async(e,t)=>{let n=new URL(`https://blink.so/api/connect-error`);await fetch(n.toString(),{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${e}`},body:JSON.stringify({error:t})})};var f=class{_onConnect=new n;onConnect=this._onConnect.event;_onDisconnect=new n;onDisconnect=this._onDisconnect.event;reconnectTimeout=null;disposed=!1;ws;server;hasReconnectedOnce=!1;constructor(n){this.opts=n;let r;try{r=e(`@lydell/node-pty`)}catch{}typeof Bun<`u`&&(r=void 0),this.server=new o({send:e=>{this.ws.readyState===t.OPEN?this.ws.send(e):console.warn(`Message skipped because connection is closed.`)},createDeploymentFromTar:this.opts.createDeploymentFromTar,nodePty:r}),this.connect()}dispose(){this.disposed||(this.disposed=!0,this.ws.close(),this.reconnectTimeout&&clearTimeout(this.reconnectTimeout))}scheduleReconnect(){if(this.disposed)return;let e=this.opts.immediateReconnectFirst??!0,t=this.opts.reconnectionDelay??2500;!this.hasReconnectedOnce&&e&&(t=0),this.hasReconnectedOnce=!0,this.reconnectTimeout&&clearTimeout(this.reconnectTimeout),this.reconnectTimeout=setTimeout(()=>{this.connect()},t)}connect(){let e=new URL(this.opts.url);e.protocol===`http:`?e.protocol=`ws:`:e.protocol===`https:`&&(e.protocol=`wss:`);let n={};this.opts.token&&(n.Authorization=`Bearer ${this.opts.token}`),this.ws=new t(e.toString(),{headers:n}),this.ws.addEventListener(`open`,()=>{this._onConnect.emit()}),this.ws.addEventListener(`close`,()=>{this._onDisconnect.emit(),!this.disposed&&this.scheduleReconnect()}),this.ws.addEventListener(`error`,e=>{console.error(`Error`,e.message??e)}),this.ws.addEventListener(`message`,e=>{if(typeof e.data==`string`){console.warn(`Message skipped because it is not a buffer.`);return}try{this.server.handleMessage(new Uint8Array(e.data))}catch(e){console.error(`message handler error`,e);try{this.ws.close(1011)}catch{}}})}};export{f as WorkspaceConnect,u as connect};
|