eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
11 lines (8 loc) • 109 kB
JavaScript
import{APICallError as e,InvalidPromptError as t,TooManyEmbeddingValuesForCallError as n,UnsupportedFunctionalityError as r}from"../provider/index.js";import{At as i,Bt as a,Et as o,Nn as s,Rn as c,St as l,Tn as u,Tt as d,Xn as f,Zn as p,dn as m,un as h,wn as g,yt as _}from"../../_chunks/workflow/schemas-iG9Z4s4o.js";import{n as v}from"../../_chunks/workflow/coerce-B-Ro4Nfe.js";import{A as y,C as b,D as x,F as S,G as C,H as w,I as T,J as E,L as D,M as O,Q as k,R as A,T as ee,V as j,X as M,Y as N,Z as P,a as F,b as I,d as te,f as L,g as ne,h as R,i as z,j as re,l as ie,m as B,o as V,p as ae,q as H,r as U,s as oe,t as se,u as ce,v as le,z as W}from"../../_chunks/workflow/dist-DTchiX0N.js";var ue=u({error:u({message:c(),type:c().nullish(),param:d().nullish(),code:f([c(),g()]).nullish()})}),G=te({errorSchema:ue,errorToMessage:e=>e.error.message});function de(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`)&&!e.startsWith(`gpt-5-nano`)&&!e.startsWith(`gpt-5-chat`)&&!e.startsWith(`gpt-5.4-nano`)||e.startsWith(`o3`)||e.startsWith(`o4-mini`),r=e.startsWith(`o1`)||e.startsWith(`o3`)||e.startsWith(`o4-mini`)||e.startsWith(`gpt-5`)&&!e.startsWith(`gpt-5-chat`),i=e.startsWith(`gpt-5.1`)||e.startsWith(`gpt-5.2`)||e.startsWith(`gpt-5.3`)||e.startsWith(`gpt-5.4`)||e.startsWith(`gpt-5.5`);return{supportsFlexProcessing:t,supportsPriorityProcessing:n,isReasoningModel:r,systemMessageMode:r?`developer`:`system`,supportsNonReasoningParameters:i}}async function K({stream:e,getError:t,isOutputChunk:n,url:r,requestBodyValues:i,responseHeaders:a}){let[o,s]=e.tee(),c=o.getReader();try{for(;;){let e=await c.read();if(e.done)return s;let o=e.value;if(!o.success)return s;let l=t(o.value);if(l!=null)throw s.cancel().catch(()=>{}),fe({frame:l,url:r,requestBodyValues:i,responseHeaders:a});if(n(o.value))return s}}finally{c.cancel().catch(()=>{}),c.releaseLock()}}function fe({frame:t,url:n,requestBodyValues:r,responseHeaders:i}){let a=pe(t);return new e({message:a?.message??`OpenAI stream failed before any output was generated`,url:n,requestBodyValues:r,statusCode:a==null?500:me(a),responseHeaders:i,responseBody:JSON.stringify(t),data:t})}function pe(e){let t=q(e);if(t==null)return;if(t.type===`response.failed`){let n=q(q(t.response)?.error);return typeof n?.message==`string`?{message:n.message,code:he(n.code),type:`response.failed`,frame:e}:void 0}let n=q(t.error)??t;return typeof n.message==`string`&&(q(t.error)!=null||typeof n.type==`string`||`code`in n||`param`in n)?{message:n.message,code:he(n.code),type:typeof n.type==`string`?n.type:void 0,frame:e}:void 0}function me(e){if(typeof e.code==`number`&&ge(e.code))return e.code;if(typeof e.code==`string`&&/^\d{3}$/.test(e.code)){let t=Number(e.code);if(ge(t))return t}let t=[e.code,e.type].filter(e=>typeof e==`string`||typeof e==`number`).join(` `).toLowerCase();return[`insufficient_quota`,`rate_limit`].some(e=>t.includes(e))?429:t.includes(`authentication`)?401:t.includes(`permission`)?403:t.includes(`not_found`)?404:[`invalid`,`bad_request`,`context_length`].some(e=>t.includes(e))?400:t.includes(`overload`)?503:t.includes(`timeout`)?504:500}function q(e){return typeof e==`object`&&e?e:void 0}function he(e){return typeof e==`string`||typeof e==`number`?e:void 0}function ge(e){return Number.isInteger(e)&&e>=400&&e<=599}function _e(e){if(e==null)return{inputTokens:{total:void 0,noCache:void 0,cacheRead:void 0,cacheWrite:void 0},outputTokens:{total:void 0,text:void 0,reasoning:void 0},raw:void 0};let t=e.prompt_tokens??0,n=e.completion_tokens??0,r=e.prompt_tokens_details?.cached_tokens??0,i=e.completion_tokens_details?.reasoning_tokens??0;return{inputTokens:{total:t,noCache:t-r,cacheRead:r,cacheWrite:void 0},outputTokens:{total:n,text:n-i,reasoning:i},raw:e}}function ve(e){return JSON.stringify(e===void 0?{}:e)}function ye({prompt:e,systemMessageMode:t=`system`}){let n=[],i=[];for(let{role:a,content:o}of e)switch(a){case`system`:switch(t){case`system`:n.push({role:`system`,content:o});break;case`developer`:n.push({role:`developer`,content:o});break;case`remove`:i.push({type:`other`,message:`system messages are removed for this model`});break;default:throw Error(`Unsupported system message mode: ${t}`)}break;case`user`:if(o.length===1&&o[0].type===`text`){n.push({role:`user`,content:o[0].text});break}n.push({role:`user`,content:o.map((e,t)=>{switch(e.type){case`text`:return{type:`text`,text:e.text};case`file`:switch(e.data.type){case`reference`:return{type:`file`,file:{file_id:w({reference:e.data.reference,provider:`openai`})}};case`text`:throw new r({functionality:`text file parts`});case`url`:case`data`:{let n=b(e.mediaType);if(n===`image`)return{type:`image_url`,image_url:{url:e.data.type===`url`?e.data.url.toString():V(e.data.data),detail:e.providerOptions?.openai?.imageDetail}};if(n===`audio`){if(e.data.type===`url`)throw new r({functionality:`audio file parts with URLs`});let t=j({part:e});switch(t){case`audio/wav`:return{type:`input_audio`,input_audio:{data:V(e.data.data),format:`wav`}};case`audio/mp3`:case`audio/mpeg`:return{type:`input_audio`,input_audio:{data:V(e.data.data),format:`mp3`}};default:throw new r({functionality:`audio content parts with media type ${t}`})}}{let n=j({part:e});if(n!==`application/pdf`)throw new r({functionality:`file part media type ${n}`});if(e.data.type===`url`)throw new r({functionality:`PDF file parts with URLs`});return{type:`file`,file:{filename:e.filename??`part-${t}.pdf`,file_data:`data:application/pdf;base64,${V(e.data.data)}`}}}}}}})});break;case`assistant`:{let e=``,t=[];for(let n of o)switch(n.type){case`text`:e+=n.text;break;case`tool-call`:t.push({id:n.toolCallId,type:`function`,function:{name:n.toolName,arguments:ve(n.input)}});break}n.push({role:`assistant`,content:t.length>0?e||null:e,tool_calls:t.length>0?t:void 0});break}case`tool`:for(let e of o){if(e.type===`tool-approval-response`)continue;let t=e.output,r;switch(t.type){case`text`:case`error-text`:r=t.value;break;case`execution-denied`:r=t.reason??`Tool call execution denied.`;break;case`content`:case`json`:case`error-json`:r=JSON.stringify(t.value);break}n.push({role:`tool`,tool_call_id:e.toolCallId,content:r})}break;default:throw Error(`Unsupported role: ${a}`)}return{messages:n,warnings:i}}function J({id:e,model:t,created:n}){return{id:e??void 0,modelId:t??void 0,timestamp:n?new Date(n*1e3):void 0}}function be(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`other`}}var xe=y(()=>M(u({id:c().nullish(),created:g().nullish(),model:c().nullish(),choices:o(u({message:u({role:m(`assistant`).nullish(),content:c().nullish(),tool_calls:o(u({id:c().nullish(),type:m(`function`),function:u({name:c(),arguments:c()})})).nullish(),annotations:o(u({type:m(`url_citation`),url_citation:u({start_index:g(),end_index:g(),url:c(),title:c()})})).nullish()}),index:g(),logprobs:u({content:o(u({token:c(),logprob:g(),top_logprobs:o(u({token:c(),logprob:g()}))})).nullish()}).nullish(),finish_reason:c().nullish()})),usage:u({prompt_tokens:g().nullish(),completion_tokens:g().nullish(),total_tokens:g().nullish(),prompt_tokens_details:u({cached_tokens:g().nullish()}).nullish(),completion_tokens_details:u({reasoning_tokens:g().nullish(),accepted_prediction_tokens:g().nullish(),rejected_prediction_tokens:g().nullish()}).nullish()}).nullish()}))),Se=y(()=>M(f([u({id:c().nullish(),created:g().nullish(),model:c().nullish(),choices:o(u({delta:u({role:_([`assistant`]).nullish(),content:c().nullish(),tool_calls:o(u({index:g(),id:c().nullish(),type:m(`function`).nullish(),function:u({name:c().nullish(),arguments:c().nullish()})})).nullish(),annotations:o(u({type:m(`url_citation`),url_citation:u({start_index:g(),end_index:g(),url:c(),title:c()})})).nullish()}).nullish(),logprobs:u({content:o(u({token:c(),logprob:g(),top_logprobs:o(u({token:c(),logprob:g()}))})).nullish()}).nullish(),finish_reason:c().nullish(),index:g()})),usage:u({prompt_tokens:g().nullish(),completion_tokens:g().nullish(),total_tokens:g().nullish(),prompt_tokens_details:u({cached_tokens:g().nullish()}).nullish(),completion_tokens_details:u({reasoning_tokens:g().nullish(),accepted_prediction_tokens:g().nullish(),rejected_prediction_tokens:g().nullish()}).nullish()}).nullish()}),ue]))),Ce=y(()=>M(u({logitBias:s(v(),g()).optional(),logprobs:f([i(),g()]).optional(),parallelToolCalls:i().optional(),user:c().optional(),reasoningEffort:_([`none`,`minimal`,`low`,`medium`,`high`,`xhigh`]).optional(),maxCompletionTokens:g().optional(),store:i().optional(),metadata:s(c().max(64),c().max(512)).optional(),prediction:s(c(),d()).optional(),serviceTier:_([`auto`,`flex`,`priority`,`default`]).optional(),strictJsonSchema:i().optional(),textVerbosity:_([`low`,`medium`,`high`]).optional(),promptCacheKey:c().optional(),promptCacheRetention:_([`in_memory`,`24h`]).optional(),safetyIdentifier:c().optional(),systemMessageMode:_([`system`,`developer`,`remove`]).optional(),forceReasoning:i().optional()})));function we({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 i=[];for(let t of e)switch(t.type){case`function`:i.push({type:`function`,function:{name:t.name,description:t.description,parameters:t.inputSchema,...t.strict==null?{}:{strict:t.strict}}});break;default:n.push({type:`unsupported`,feature:`tool type: ${t.type}`});break}if(t==null)return{tools:i,toolChoice:void 0,toolWarnings:n};let a=t.type;switch(a){case`auto`:case`none`:case`required`:return{tools:i,toolChoice:a,toolWarnings:n};case`tool`:return{tools:i,toolChoice:{type:`function`,function:{name:t.toolName}},toolWarnings:n};default:throw new r({functionality:`tool choice type: ${a}`})}}var Te=class e{constructor(e,t){this.specificationVersion=`v4`,this.supportedUrls={"image/*":[/^https?:\/\/.*$/]},this.modelId=e,this.config=t}static[k](e){return C({modelId:e.modelId,config:e.config})}static[P](t){return new e(t.modelId,t.config)}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,seed:l,tools:u,toolChoice:d,reasoning:f,providerOptions:p}){let m=[],h=await D({provider:`openai`,providerOptions:p,schema:Ce})??{},g=de(this.modelId),_=h.reasoningEffort??(ee(f)?f:void 0),v=h.forceReasoning??g.isReasoningModel;i!=null&&m.push({type:`unsupported`,feature:`topK`});let{messages:y,warnings:b}=ye({prompt:e,systemMessageMode:h.systemMessageMode??(v?`developer`:g.systemMessageMode)});m.push(...b);let x=h.strictJsonSchema??!0,S={model:this.modelId,logit_bias:h.logitBias,logprobs:h.logprobs===!0||typeof h.logprobs==`number`?!0:void 0,top_logprobs:typeof h.logprobs==`number`?h.logprobs:typeof h.logprobs==`boolean`&&h.logprobs?0:void 0,user:h.user,parallel_tool_calls:h.parallelToolCalls,max_tokens:t,temperature:n,top_p:r,frequency_penalty:a,presence_penalty:o,response_format:c?.type===`json`?c.schema==null?{type:`json_object`}:{type:`json_schema`,json_schema:{schema:c.schema,strict:x,name:c.name??`response`,description:c.description}}:void 0,stop:s,seed:l,verbosity:h.textVerbosity,max_completion_tokens:h.maxCompletionTokens,store:h.store,metadata:h.metadata,prediction:h.prediction,reasoning_effort:_,service_tier:h.serviceTier,prompt_cache_key:h.promptCacheKey,prompt_cache_retention:h.promptCacheRetention,safety_identifier:h.safetyIdentifier,messages:y};v?((_!==`none`||!g.supportsNonReasoningParameters)&&(S.temperature!=null&&(S.temperature=void 0,m.push({type:`unsupported`,feature:`temperature`,details:`temperature is not supported for reasoning models`})),S.top_p!=null&&(S.top_p=void 0,m.push({type:`unsupported`,feature:`topP`,details:`topP is not supported for reasoning models`})),S.logprobs!=null&&(S.logprobs=void 0,m.push({type:`other`,message:`logprobs is not supported for reasoning models`}))),S.frequency_penalty!=null&&(S.frequency_penalty=void 0,m.push({type:`unsupported`,feature:`frequencyPenalty`,details:`frequencyPenalty is not supported for reasoning models`})),S.presence_penalty!=null&&(S.presence_penalty=void 0,m.push({type:`unsupported`,feature:`presencePenalty`,details:`presencePenalty is not supported for reasoning models`})),S.logit_bias!=null&&(S.logit_bias=void 0,m.push({type:`other`,message:`logitBias is not supported for reasoning models`})),S.top_logprobs!=null&&(S.top_logprobs=void 0,m.push({type:`other`,message:`topLogprobs is not supported for reasoning models`})),S.max_tokens!=null&&(S.max_completion_tokens??=S.max_tokens,S.max_tokens=void 0)):(this.modelId.startsWith(`gpt-4o-search-preview`)||this.modelId.startsWith(`gpt-4o-mini-search-preview`))&&S.temperature!=null&&(S.temperature=void 0,m.push({type:`unsupported`,feature:`temperature`,details:`temperature is not supported for the search preview models and has been removed.`})),h.serviceTier===`flex`&&!g.supportsFlexProcessing&&(m.push({type:`unsupported`,feature:`serviceTier`,details:`flex processing is only available for o3, o4-mini, and gpt-5 models`}),S.service_tier=void 0),h.serviceTier===`priority`&&!g.supportsPriorityProcessing&&(m.push({type:`unsupported`,feature:`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`}),S.service_tier=void 0);let{tools:C,toolChoice:w,toolWarnings:T}=we({tools:u,toolChoice:d});return{args:{...S,tools:C,tool_choice:w},warnings:[...m,...T]}}async doGenerate(e){var t;let{args:n,warnings:r}=await this.getArgs(e),{responseHeaders:i,value:a,rawValue:o}=await W({url:this.config.url({path:`/chat/completions`,modelId:this.modelId}),headers:U((t=this.config).headers?.call(t),e.headers),body:n,failedResponseHandler:G,successfulResponseHandler:L(xe),abortSignal:e.abortSignal,fetch:this.config.fetch}),s=a.choices[0],c=[],l=s.message.content;l!=null&&l.length>0&&c.push({type:`text`,text:l});for(let e of s.message.tool_calls??[])c.push({type:`tool-call`,toolCallId:e.id??I(),toolName:e.function.name,input:e.function.arguments});for(let e of s.message.annotations??[])c.push({type:`source`,sourceType:`url`,id:I(),url:e.url_citation.url,title:e.url_citation.title});let u=a.usage?.completion_tokens_details,d={openai:{}};return u?.accepted_prediction_tokens!=null&&(d.openai.acceptedPredictionTokens=u?.accepted_prediction_tokens),u?.rejected_prediction_tokens!=null&&(d.openai.rejectedPredictionTokens=u?.rejected_prediction_tokens),s.logprobs?.content!=null&&(d.openai.logprobs=s.logprobs.content),{content:c,finishReason:{unified:be(s.finish_reason),raw:s.finish_reason??void 0},usage:_e(a.usage),request:{body:n},response:{...J(a),headers:i,body:o},warnings:r,providerMetadata:d}}async doStream(e){var t;let{args:n,warnings:r}=await this.getArgs(e),i={...n,stream:!0,stream_options:{include_usage:!0}},a=this.config.url({path:`/chat/completions`,modelId:this.modelId}),{responseHeaders:o,value:s}=await W({url:a,headers:U((t=this.config).headers?.call(t),e.headers),body:i,failedResponseHandler:G,successfulResponseHandler:ce(Se),abortSignal:e.abortSignal,fetch:this.config.fetch}),c=await K({stream:s,getError:e=>`error`in e?e.error:void 0,isOutputChunk:Ee,url:a,requestBodyValues:i,responseHeaders:o}),l,u={unified:`other`,raw:void 0},d,f=!1,p=!1,m={openai:{}};return{stream:c.pipeThrough(new TransformStream({start(e){l=new se(e,{generateId:I,typeValidation:`if-present`}),e.enqueue({type:`stream-start`,warnings:r})},transform(t,n){if(e.includeRawChunks&&n.enqueue({type:`raw`,rawValue:t.rawValue}),!t.success){u={unified:`error`,raw:void 0},n.enqueue({type:`error`,error:t.error});return}let r=t.value;if(`error`in r){u={unified:`error`,raw:void 0},n.enqueue({type:`error`,error:r.error});return}if(!f){let e=J(r);Object.values(e).some(Boolean)&&(f=!0,n.enqueue({type:`response-metadata`,...J(r)}))}r.usage!=null&&(d=r.usage,r.usage.completion_tokens_details?.accepted_prediction_tokens!=null&&(m.openai.acceptedPredictionTokens=r.usage.completion_tokens_details?.accepted_prediction_tokens),r.usage.completion_tokens_details?.rejected_prediction_tokens!=null&&(m.openai.rejectedPredictionTokens=r.usage.completion_tokens_details?.rejected_prediction_tokens));let i=r.choices[0];if(i?.finish_reason!=null&&(u={unified:be(i.finish_reason),raw:i.finish_reason}),i?.logprobs?.content!=null&&(m.openai.logprobs=i.logprobs.content),i?.delta==null)return;let a=i.delta;if(a.content!=null&&(p||=(n.enqueue({type:`text-start`,id:`0`}),!0),n.enqueue({type:`text-delta`,id:`0`,delta:a.content})),a.tool_calls!=null)for(let e of a.tool_calls)l.processDelta(e);if(a.annotations!=null)for(let e of a.annotations)n.enqueue({type:`source`,sourceType:`url`,id:I(),url:e.url_citation.url,title:e.url_citation.title})},flush(e){p&&e.enqueue({type:`text-end`,id:`0`}),l.flush(),e.enqueue({type:`finish`,finishReason:u,usage:_e(d),...m==null?{}:{providerMetadata:m}})}})),request:{body:i},response:{headers:o}}}};function Ee(e){return`error`in e?!1:e.choices.some(e=>{let t=e.delta;return t?.content!=null&&t.content.length>0||t?.tool_calls!=null&&t.tool_calls.length>0||t?.annotations!=null&&t.annotations.length>0})}function De(e){if(e==null)return{inputTokens:{total:void 0,noCache:void 0,cacheRead:void 0,cacheWrite:void 0},outputTokens:{total:void 0,text:void 0,reasoning:void 0},raw:void 0};let t=e.prompt_tokens??0,n=e.completion_tokens??0;return{inputTokens:{total:e.prompt_tokens??void 0,noCache:t,cacheRead:void 0,cacheWrite:void 0},outputTokens:{total:e.completion_tokens??void 0,text:n,reasoning:void 0},raw:e}}function Oe({prompt:e,user:n=`user`,assistant:i=`assistant`}){let a=``;e[0].role===`system`&&(a+=`${e[0].content}
`,e=e.slice(1));for(let{role:o,content:s}of e)switch(o){case`system`:throw new t({message:"Unexpected system message in prompt: ${content}",prompt:e});case`user`:{let e=s.map(e=>{switch(e.type){case`text`:return e.text}}).filter(Boolean).join(``);a+=`${n}:
${e}
`;break}case`assistant`:{let e=s.map(e=>{switch(e.type){case`text`:return e.text;case`tool-call`:throw new r({functionality:`tool-call messages`})}}).join(``);a+=`${i}:
${e}
`;break}case`tool`:throw new r({functionality:`tool messages`});default:throw Error(`Unsupported role: ${o}`)}return a+=`${i}:
`,{prompt:a,stopSequences:[`
${n}:`]}}function ke({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 Ae(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`other`}}var je=y(()=>M(u({id:c().nullish(),created:g().nullish(),model:c().nullish(),choices:o(u({text:c(),finish_reason:c(),logprobs:u({tokens:o(c()),token_logprobs:o(g()),top_logprobs:o(s(c(),g())).nullish()}).nullish()})),usage:u({prompt_tokens:g(),completion_tokens:g(),total_tokens:g()}).nullish()}))),Me=y(()=>M(f([u({id:c().nullish(),created:g().nullish(),model:c().nullish(),choices:o(u({text:c(),finish_reason:c().nullish(),index:g(),logprobs:u({tokens:o(c()),token_logprobs:o(g()),top_logprobs:o(s(c(),g())).nullish()}).nullish()})),usage:u({prompt_tokens:g(),completion_tokens:g(),total_tokens:g()}).nullish()}),ue]))),Ne=y(()=>M(u({echo:i().optional(),logitBias:s(c(),g()).optional(),suffix:c().optional(),user:c().optional(),logprobs:f([i(),g()]).optional()}))),Pe=class e{constructor(e,t){this.specificationVersion=`v4`,this.supportedUrls={},this.modelId=e,this.config=t}get providerOptionsName(){return this.config.provider.split(`.`)[0].trim()}static[k](e){return C({modelId:e.modelId,config:e.config})}static[P](t){return new e(t.modelId,t.config)}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 D({provider:`openai`,providerOptions:f,schema:Ne}),...await D({provider:this.providerOptionsName,providerOptions:f,schema:Ne})};i!=null&&p.push({type:`unsupported`,feature:`topK`}),l?.length&&p.push({type:`unsupported`,feature:`tools`}),u!=null&&p.push({type:`unsupported`,feature:`toolChoice`}),c!=null&&c.type!==`text`&&p.push({type:`unsupported`,feature:`responseFormat`,details:`JSON response format is not supported.`});let{prompt:h,stopSequences:g}=Oe({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){var t;let{args:n,warnings:r}=await this.getArgs(e),{responseHeaders:i,value:a,rawValue:o}=await W({url:this.config.url({path:`/completions`,modelId:this.modelId}),headers:U((t=this.config).headers?.call(t),e.headers),body:n,failedResponseHandler:G,successfulResponseHandler:L(je),abortSignal:e.abortSignal,fetch:this.config.fetch}),s=a.choices[0],c={openai:{}};return s.logprobs!=null&&(c.openai.logprobs=s.logprobs),{content:[{type:`text`,text:s.text}],usage:De(a.usage),finishReason:{unified:Ae(s.finish_reason),raw:s.finish_reason??void 0},request:{body:n},response:{...ke(a),headers:i,body:o},providerMetadata:c,warnings:r}}async doStream(e){var t;let{args:n,warnings:r}=await this.getArgs(e),i={...n,stream:!0,stream_options:{include_usage:!0}},a=this.config.url({path:`/completions`,modelId:this.modelId}),{responseHeaders:o,value:s}=await W({url:a,headers:U((t=this.config).headers?.call(t),e.headers),body:i,failedResponseHandler:G,successfulResponseHandler:ce(Me),abortSignal:e.abortSignal,fetch:this.config.fetch}),c=await K({stream:s,getError:e=>`error`in e?e.error:void 0,isOutputChunk:Fe,url:a,requestBodyValues:i,responseHeaders:o}),l={unified:`other`,raw:void 0},u={openai:{}},d,f=!0;return{stream:c.pipeThrough(new TransformStream({start(e){e.enqueue({type:`stream-start`,warnings:r})},transform(t,n){if(e.includeRawChunks&&n.enqueue({type:`raw`,rawValue:t.rawValue}),!t.success){l={unified:`error`,raw:void 0},n.enqueue({type:`error`,error:t.error});return}let r=t.value;if(`error`in r){l={unified:`error`,raw:void 0},n.enqueue({type:`error`,error:r.error});return}f&&(f=!1,n.enqueue({type:`response-metadata`,...ke(r)}),n.enqueue({type:`text-start`,id:`0`})),r.usage!=null&&(d=r.usage);let i=r.choices[0];i?.finish_reason!=null&&(l={unified:Ae(i.finish_reason),raw:i.finish_reason}),i?.logprobs!=null&&(u.openai.logprobs=i.logprobs),i?.text!=null&&i.text.length>0&&n.enqueue({type:`text-delta`,id:`0`,delta:i.text})},flush(e){f||e.enqueue({type:`text-end`,id:`0`}),e.enqueue({type:`finish`,finishReason:l,providerMetadata:u,usage:De(d)})}})),request:{body:i},response:{headers:o}}}};function Fe(e){return!(`error`in e)&&e.choices.some(e=>e.text.length>0)}var Ie=y(()=>M(u({dimensions:g().optional(),user:c().optional()}))),Le=y(()=>M(u({data:o(u({embedding:o(g())})),usage:u({prompt_tokens:g()}).nullish()}))),Re=class e{constructor(e,t){this.specificationVersion=`v4`,this.maxEmbeddingsPerCall=2048,this.supportsParallelCalls=!0,this.modelId=e,this.config=t}static[k](e){return C({modelId:e.modelId,config:e.config})}static[P](t){return new e(t.modelId,t.config)}get provider(){return this.config.provider}async doEmbed({values:e,headers:t,abortSignal:r,providerOptions:i}){var a;if(e.length>this.maxEmbeddingsPerCall)throw new n({provider:this.provider,modelId:this.modelId,maxEmbeddingsPerCall:this.maxEmbeddingsPerCall,values:e});let o=await D({provider:`openai`,providerOptions:i,schema:Ie})??{},{responseHeaders:s,value:c,rawValue:l}=await W({url:this.config.url({path:`/embeddings`,modelId:this.modelId}),headers:U((a=this.config).headers?.call(a),t),body:{model:this.modelId,input:e,encoding_format:`float`,dimensions:o.dimensions,user:o.user},failedResponseHandler:G,successfulResponseHandler:L(Le),abortSignal:r,fetch:this.config.fetch});return{warnings:[],embeddings:c.data.map(e=>e.embedding),usage:c.usage?{tokens:c.usage.prompt_tokens}:void 0,response:{headers:s,body:l}}}},ze=y(()=>M(u({id:c(),object:c().nullish(),bytes:g().nullish(),created_at:g().nullish(),filename:c().nullish(),purpose:c().nullish(),status:c().nullish(),expires_at:g().nullish()}))),Be=y(()=>M(u({purpose:c().optional(),expiresAfter:g().optional()}))),Ve=class{constructor(e){this.config=e,this.specificationVersion=`v4`}get provider(){return this.config.provider}async uploadFile({data:e,mediaType:t,filename:n,providerOptions:r}){let i=await D({provider:`openai`,providerOptions:r,schema:Be}),a=F(e),o=new Blob([a],{type:t}),s=new FormData;n==null?s.append(`file`,o):s.append(`file`,o,n),s.append(`purpose`,i?.purpose??`assistants`),i?.expiresAfter!=null&&s.append(`expires_after`,String(i.expiresAfter));let{value:c}=await A({url:`${this.config.baseURL}/files`,headers:U(this.config.headers()),formData:s,failedResponseHandler:G,successfulResponseHandler:L(ze),fetch:this.config.fetch});return{warnings:[],providerReference:{openai:c.id},...c.filename??n?{filename:c.filename??n}:{},...t==null?{}:{mediaType:t},providerMetadata:{openai:{...c.filename==null?{}:{filename:c.filename},...c.purpose==null?{}:{purpose:c.purpose},...c.bytes==null?{}:{bytes:c.bytes},...c.created_at==null?{}:{createdAt:c.created_at},...c.status==null?{}:{status:c.status},...c.expires_at==null?{}:{expiresAt:c.expires_at}}}}}},He=y(()=>M(u({created:g().nullish(),data:o(u({b64_json:c(),revised_prompt:c().nullish()})),background:c().nullish(),output_format:c().nullish(),size:c().nullish(),quality:c().nullish(),usage:u({input_tokens:g().nullish(),output_tokens:g().nullish(),total_tokens:g().nullish(),input_tokens_details:u({image_tokens:g().nullish(),text_tokens:g().nullish()}).nullish()}).nullish()}))),Ue={"dall-e-3":1,"dall-e-2":10,"gpt-image-1":10,"gpt-image-1-mini":10,"gpt-image-1.5":10,"gpt-image-2":10,"chatgpt-image-latest":10},We=[`chatgpt-image-`,`gpt-image-1-mini`,`gpt-image-1.5`,`gpt-image-1`,`gpt-image-2`];function Ge(e){return We.some(t=>e.startsWith(t))}var Y=u({quality:_([`standard`,`hd`,`low`,`medium`,`high`,`auto`]).optional(),background:_([`transparent`,`opaque`,`auto`]).optional(),outputFormat:_([`png`,`jpeg`,`webp`]).optional(),outputCompression:g().int().min(0).max(100).optional(),user:c().optional()});y(()=>M(Y));var Ke=y(()=>M(Y.extend({style:_([`vivid`,`natural`]).optional(),moderation:_([`auto`,`low`]).optional()}))),qe=y(()=>M(Y.extend({inputFidelity:_([`high`,`low`]).optional()}))),Je=class e{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion=`v4`}static[k](e){return C({modelId:e.modelId,config:e.config})}static[P](t){return new e(t.modelId,t.config)}get maxImagesPerCall(){return Ue[this.modelId]??1}get provider(){return this.config.provider}async doGenerate({prompt:e,files:t,mask:n,n:r,size:i,aspectRatio:a,seed:o,providerOptions:s,headers:c,abortSignal:l}){var u,d,f;let p=[];a!=null&&p.push({type:`unsupported`,feature:`aspectRatio`,details:"This model does not support aspect ratio. Use `size` instead."}),o!=null&&p.push({type:`unsupported`,feature:`seed`});let m=((u=this.config._internal)?.currentDate)?.call(u)??new Date;if(t!=null){let a=await D({provider:`openai`,providerOptions:s,schema:qe})??{},{value:o,responseHeaders:u}=await A({url:this.config.url({path:`/images/edits`,modelId:this.modelId}),headers:U((d=this.config).headers?.call(d),c),formData:oe({model:this.modelId,prompt:e,image:await Promise.all(t.map(e=>e.type===`file`?new Blob([e.data instanceof Uint8Array?new Blob([e.data],{type:e.mediaType}):new Blob([z(e.data)],{type:e.mediaType})],{type:e.mediaType}):le(e.url))),mask:n==null?void 0:await Xe(n),n:r,size:i,quality:a.quality,background:a.background,output_format:a.outputFormat,output_compression:a.outputCompression,input_fidelity:a.inputFidelity,user:a.user}),failedResponseHandler:G,successfulResponseHandler:L(He),abortSignal:l,fetch:this.config.fetch});return{images:o.data.map(e=>e.b64_json),warnings:p,usage:o.usage==null?void 0:{inputTokens:o.usage.input_tokens??void 0,outputTokens:o.usage.output_tokens??void 0,totalTokens:o.usage.total_tokens??void 0},response:{timestamp:m,modelId:this.modelId,headers:u},providerMetadata:{openai:{images:o.data.map((e,t)=>({...e.revised_prompt?{revisedPrompt:e.revised_prompt}:{},created:o.created??void 0,size:o.size??void 0,quality:o.quality??void 0,background:o.background??void 0,outputFormat:o.output_format??void 0,...Ye(o.usage?.input_tokens_details,t,o.data.length)}))}}}}let h=await D({provider:`openai`,providerOptions:s,schema:Ke})??{},{value:g,responseHeaders:_}=await W({url:this.config.url({path:`/images/generations`,modelId:this.modelId}),headers:U((f=this.config).headers?.call(f),c),body:{model:this.modelId,prompt:e,n:r,size:i,quality:h.quality,style:h.style,background:h.background,moderation:h.moderation,output_format:h.outputFormat,output_compression:h.outputCompression,user:h.user,...Ge(this.modelId)?{}:{response_format:`b64_json`}},failedResponseHandler:G,successfulResponseHandler:L(He),abortSignal:l,fetch:this.config.fetch});return{images:g.data.map(e=>e.b64_json),warnings:p,usage:g.usage==null?void 0:{inputTokens:g.usage.input_tokens??void 0,outputTokens:g.usage.output_tokens??void 0,totalTokens:g.usage.total_tokens??void 0},response:{timestamp:m,modelId:this.modelId,headers:_},providerMetadata:{openai:{images:g.data.map((e,t)=>({...e.revised_prompt?{revisedPrompt:e.revised_prompt}:{},created:g.created??void 0,size:g.size??void 0,quality:g.quality??void 0,background:g.background??void 0,outputFormat:g.output_format??void 0,...Ye(g.usage?.input_tokens_details,t,g.data.length)}))}}}}};function Ye(e,t,n){if(e==null)return{};let r={};if(e.image_tokens!=null){let i=Math.floor(e.image_tokens/n),a=e.image_tokens-i*(n-1);r.imageTokens=t===n-1?a:i}if(e.text_tokens!=null){let i=Math.floor(e.text_tokens/n),a=e.text_tokens-i*(n-1);r.textTokens=t===n-1?a:i}return r}async function Xe(e){if(!e)return;if(e.type===`url`)return le(e.url);let t=e.data instanceof Uint8Array?e.data:z(e.data);return new Blob([t],{type:e.mediaType})}var Ze=y(()=>M(u({callId:c(),operation:a(`type`,[u({type:m(`create_file`),path:c(),diff:c()}),u({type:m(`delete_file`),path:c()}),u({type:m(`update_file`),path:c(),diff:c()})])}))),Qe=y(()=>M(u({status:_([`completed`,`failed`]),output:c().optional()})));y(()=>M(u({})));var $e=B({id:`openai.apply_patch`,inputSchema:Ze,outputSchema:Qe}),et=y(()=>M(u({code:c().nullish(),containerId:c()}))),tt=y(()=>M(u({outputs:o(a(`type`,[u({type:m(`logs`),logs:c()}),u({type:m(`image`),url:c()})])).nullish()}))),nt=y(()=>M(u({container:f([c(),u({fileIds:o(c()).optional()})]).optional()}))),rt=R({id:`openai.code_interpreter`,inputSchema:et,outputSchema:tt}),it=(e={})=>rt(e),at=y(()=>M(u({description:c().optional(),format:f([u({type:m(`grammar`),syntax:_([`regex`,`lark`]),definition:c()}),u({type:m(`text`)})]).optional()}))),ot=ae({id:`openai.custom`,inputSchema:y(()=>M(c()))}),st=e=>ot(e),ct=u({key:c(),type:_([`eq`,`ne`,`gt`,`gte`,`lt`,`lte`,`in`,`nin`]),value:f([c(),g(),i(),o(c())])}),lt=u({type:_([`and`,`or`]),filters:o(f([ct,h(()=>lt)]))}),ut=y(()=>M(u({vectorStoreIds:o(c()),maxNumResults:g().optional(),ranking:u({ranker:c().optional(),scoreThreshold:g().optional()}).optional(),filters:f([ct,lt]).optional()}))),dt=y(()=>M(u({queries:o(c()),results:o(u({attributes:s(c(),p()),fileId:c(),filename:c(),score:g(),text:c()})).nullable()}))),ft=R({id:`openai.file_search`,inputSchema:u({}),outputSchema:dt}),pt=y(()=>M(u({background:_([`auto`,`opaque`,`transparent`]).optional(),inputFidelity:_([`low`,`high`]).optional(),inputImageMask:u({fileId:c().optional(),imageUrl:c().optional()}).optional(),model:c().optional(),moderation:_([`auto`]).optional(),outputCompression:g().int().min(0).max(100).optional(),outputFormat:_([`png`,`jpeg`,`webp`]).optional(),partialImages:g().int().min(0).max(3).optional(),quality:_([`auto`,`low`,`medium`,`high`]).optional(),size:_([`1024x1024`,`1024x1536`,`1536x1024`,`auto`]).optional()}).strict())),mt=R({id:`openai.image_generation`,inputSchema:y(()=>M(u({}))),outputSchema:y(()=>M(u({result:c()})))}),ht=(e={})=>mt(e),gt=y(()=>M(u({action:u({type:m(`exec`),command:o(c()),timeoutMs:g().optional(),user:c().optional(),workingDirectory:c().optional(),env:s(c(),c()).optional()})}))),_t=y(()=>M(u({output:c()}))),vt=B({id:`openai.local_shell`,inputSchema:gt,outputSchema:_t}),yt=y(()=>M(u({action:u({commands:o(c()),timeoutMs:g().optional(),maxOutputLength:g().optional()})}))),X=y(()=>M(u({output:o(u({stdout:c(),stderr:c(),outcome:a(`type`,[u({type:m(`timeout`)}),u({type:m(`exit`),exitCode:g()})])}))}))),bt=o(a(`type`,[u({type:m(`skillReference`),providerReference:s(c(),c()),version:c().optional()}),u({type:m(`inline`),name:c(),description:c(),source:u({type:m(`base64`),mediaType:m(`application/zip`),data:c()})})])).optional(),xt=y(()=>M(u({environment:f([u({type:m(`containerAuto`),fileIds:o(c()).optional(),memoryLimit:_([`1g`,`4g`,`16g`,`64g`]).optional(),networkPolicy:a(`type`,[u({type:m(`disabled`)}),u({type:m(`allowlist`),allowedDomains:o(c()),domainSecrets:o(u({domain:c(),name:c(),value:c()})).optional()})]).optional(),skills:bt}),u({type:m(`containerReference`),containerId:c()}),u({type:m(`local`).optional(),skills:o(u({name:c(),description:c(),path:c()})).optional()})]).optional()}))),St=B({id:`openai.shell`,inputSchema:yt,outputSchema:X}),Ct=y(()=>M(u({execution:_([`server`,`client`]).optional(),description:c().optional(),parameters:s(c(),p()).optional()}))),Z=y(()=>M(u({arguments:p().optional(),call_id:c().nullish()}))),wt=y(()=>M(u({tools:o(s(c(),p()))}))),Tt=B({id:`openai.tool_search`,inputSchema:Z,outputSchema:wt}),Et=(e={})=>Tt(e),Dt=y(()=>M(u({externalWebAccess:i().optional(),filters:u({allowedDomains:o(c()).optional()}).optional(),searchContextSize:_([`low`,`medium`,`high`]).optional(),userLocation:u({type:m(`approximate`),country:c().optional(),city:c().optional(),region:c().optional(),timezone:c().optional()}).optional()}))),Ot=R({id:`openai.web_search`,inputSchema:y(()=>M(u({}))),outputSchema:y(()=>M(u({action:a(`type`,[u({type:m(`search`),query:c().optional(),queries:o(c()).optional()}),u({type:m(`openPage`),url:c().nullish()}),u({type:m(`findInPage`),url:c().nullish(),pattern:c().nullish()})]).optional(),sources:o(a(`type`,[u({type:m(`url`),url:c()}),u({type:m(`api`),name:c()})])).optional()})))}),kt=(e={})=>Ot(e),At=y(()=>M(u({searchContextSize:_([`low`,`medium`,`high`]).optional(),userLocation:u({type:m(`approximate`),country:c().optional(),city:c().optional(),region:c().optional(),timezone:c().optional()}).optional()}))),jt=R({id:`openai.web_search_preview`,inputSchema:y(()=>M(u({}))),outputSchema:y(()=>M(u({action:a(`type`,[u({type:m(`search`),query:c().optional()}),u({type:m(`openPage`),url:c().nullish()}),u({type:m(`findInPage`),url:c().nullish(),pattern:c().nullish()})]).optional()})))}),Mt=h(()=>f([c(),g(),i(),l(),o(Mt),s(c(),Mt)])),Nt=y(()=>M(u({serverLabel:c(),allowedTools:f([o(c()),u({readOnly:i().optional(),toolNames:o(c()).optional()})]).optional(),authorization:c().optional(),connectorId:c().optional(),headers:s(c(),c()).optional(),requireApproval:f([_([`always`,`never`]),u({never:u({toolNames:o(c()).optional()}).optional()})]).optional(),serverDescription:c().optional(),serverUrl:c().optional()}).refine(e=>e.serverUrl!=null||e.connectorId!=null,`One of serverUrl or connectorId must be provided.`))),Pt=R({id:`openai.mcp`,inputSchema:y(()=>M(u({}))),outputSchema:y(()=>M(u({type:m(`call`),serverLabel:c(),name:c(),arguments:c(),output:c().nullish(),error:f([c(),Mt]).optional()})))}),Ft={applyPatch:$e,customTool:st,codeInterpreter:it,fileSearch:ft,imageGeneration:ht,localShell:vt,shell:St,webSearchPreview:jt,webSearch:kt,mcp:e=>Pt(e),toolSearch:Et};function It(e){let t=e,n=t.type;switch(n){case`session.created`:return{type:`session-created`,sessionId:t.session?.id,raw:e};case`session.updated`:return{type:`session-updated`,raw:e};case`input_audio_buffer.speech_started`:return{type:`speech-started`,itemId:t.item_id,raw:e};case`input_audio_buffer.speech_stopped`:return{type:`speech-stopped`,itemId:t.item_id,raw:e};case`input_audio_buffer.committed`:return{type:`audio-committed`,itemId:t.item_id,previousItemId:t.previous_item_id,raw:e};case`conversation.item.added`:return{type:`conversation-item-added`,itemId:t.item?.id??t.item_id,item:t.item,raw:e};case`conversation.item.input_audio_transcription.completed`:return{type:`input-transcription-completed`,itemId:t.item_id,transcript:t.transcript??``,raw:e};case`response.created`:return{type:`response-created`,responseId:t.response?.id??t.response_id,raw:e};case`response.done`:return{type:`response-done`,responseId:t.response?.id??t.response_id,status:t.response?.status??`completed`,raw:e};case`response.output_item.added`:return{type:`output-item-added`,responseId:t.response_id,itemId:t.item?.id??t.item_id,raw:e};case`response.output_item.done`:return{type:`output-item-done`,responseId:t.response_id,itemId:t.item?.id??t.item_id,raw:e};case`response.content_part.added`:return{type:`content-part-added`,responseId:t.response_id,itemId:t.item_id,raw:e};case`response.content_part.done`:return{type:`content-part-done`,responseId:t.response_id,itemId:t.item_id,raw:e};case`response.output_audio.delta`:return{type:`audio-delta`,responseId:t.response_id,itemId:t.item_id,delta:t.delta,raw:e};case`response.output_audio.done`:return{type:`audio-done`,responseId:t.response_id,itemId:t.item_id,raw:e};case`response.output_audio_transcript.delta`:return{type:`audio-transcript-delta`,responseId:t.response_id,itemId:t.item_id,delta:t.delta,raw:e};case`response.output_audio_transcript.done`:return{type:`audio-transcript-done`,responseId:t.response_id,itemId:t.item_id,transcript:t.transcript,raw:e};case`response.output_text.delta`:return{type:`text-delta`,responseId:t.response_id,itemId:t.item_id,delta:t.delta,raw:e};case`response.output_text.done`:return{type:`text-done`,responseId:t.response_id,itemId:t.item_id,text:t.text,raw:e};case`response.function_call_arguments.delta`:return{type:`function-call-arguments-delta`,responseId:t.response_id,itemId:t.item_id,callId:t.call_id,delta:t.delta,raw:e};case`response.function_call_arguments.done`:return{type:`function-call-arguments-done`,responseId:t.response_id,itemId:t.item_id,callId:t.call_id,name:t.name,arguments:t.arguments,raw:e};case`error`:return{type:`error`,message:t.error?.message??t.message??`Unknown error`,code:t.error?.code??t.code,raw:e};default:return{type:`custom`,rawType:n,raw:e}}}function Lt(e,t){switch(e.type){case`session-update`:return{type:`session.update`,session:Rt(e.config,t)};case`input-audio-append`:return{type:`input_audio_buffer.append`,audio:e.audio};case`input-audio-commit`:return{type:`input_audio_buffer.commit`};case`input-audio-clear`:return{type:`input_audio_buffer.clear`};case`conversation-item-create`:{let t=e.item;switch(t.type){case`text-message`:return{type:`conversation.item.create`,item:{type:`message`,role:t.role,content:[{type:`input_text`,text:t.text}]}};case`audio-message`:return{type:`conversation.item.create`,item:{type:`message`,role:t.role,content:[{type:`input_audio`,audio:t.audio}]}};case`function-call-output`:return{type:`conversation.item.create`,item:{type:`function_call_output`,call_id:t.callId,output:t.output}}}break}case`conversation-item-truncate`:return{type:`conversation.item.truncate`,item_id:e.itemId,content_index:e.contentIndex,audio_end_ms:e.audioEndMs};case`response-create`:return{type:`response.create`,...e.options==null?{}:{response:{...e.options.modalities==null?{}:{output_modalities:e.options.modalities},...e.options.instructions==null?{}:{instructions:e.options.instructions},...e.options.metadata==null?{}:{metadata:e.options.metadata}}}};case`response-cancel`:return{type:`response.cancel`}}}function Rt(e,t){let n={type:`realtime`,model:t};e.instructions!=null&&(n.instructions=e.instructions),e.outputModalities!=null&&(n.output_modalities=e.outputModalities);let r={};if(e.inputAudioFormat!=null||e.inputAudioTranscription!=null||e.turnDetection!=null){let t={};if(e.inputAudioFormat!=null&&(t.format={type:e.inputAudioFormat.type,...e.inputAudioFormat.rate==null?{}:{rate:e.inputAudioFormat.rate}}),e.turnDetection!=null)if(e.turnDetection.type===`disabled`)t.turn_detection=null;else{let n={type:e.turnDetection.type===`server-vad`?`server_vad`:`semantic_vad`};e.turnDetection.threshold!=null&&(n.threshold=e.turnDetection.threshold),e.turnDetection.silenceDurationMs!=null&&(n.silence_duration_ms=e.turnDetection.silenceDurationMs),e.turnDetection.prefixPaddingMs!=null&&(n.prefix_padding_ms=e.turnDetection.prefixPaddingMs),t.turn_detection=n}e.inputAudioTranscription!=null&&(t.transcription={model:e.inputAudioTranscription.model??`gpt-realtime-whisper`,...e.inputAudioTranscription.language==null?{}:{language:e.inputAudioTranscription.language},...e.inputAudioTranscription.prompt==null?{}:{prompt:e.inputAudioTranscription.prompt}}),r.input=t}if(e.outputAudioFormat!=null||e.voice!=null){let t={};e.outputAudioFormat!=null&&(t.format={type:e.outputAudioFormat.type,...e.outputAudioFormat.rate==null?{}:{rate:e.outputAudioFormat.rate}}),e.voice!=null&&(t.voice=e.voice),r.output=t}return Object.keys(r).length>0&&(n.audio=r),e.tools!=null&&e.tools.length>0&&(n.tools=e.tools.map(e=>({type:e.type,name:e.name,description:e.description,parameters:e.parameters})),n.tool_choice=`auto`),e.providerOptions!=null&&Object.assign(n,e.providerOptions),n}var zt=class{constructor(e,t){this.specificationVersion=`v4`,this.modelId=e,this.provider=t.provider,this.config=t}async doCreateClientSecret(e){let t=this.config.fetch??fetch,n=`${this.config.baseURL}/realtime/client_secrets`,r=e.sessionConfig==null?{type:`realtime`,model:this.modelId}:Rt(e.sessionConfig,this.modelId),i=await t(n,{method:`POST`,headers:{...this.config.headers(),"Content-Type":`application/json`},body:JSON.stringify({session:r,...e.expiresAfterSeconds==null?{}:{expires_after:{anchor:`created_at`,seconds:e.expiresAfterSeconds}}})});if(!i.ok){let e=await i.text();throw Error(`OpenAI realtime client secret request failed: ${i.status} ${e}`)}let a=await i.json();return{token:a.value,url:`wss://${new URL(this.config.baseURL).host}/v1/realtime?model=${encodeURIComponent(this.modelId)}`,expiresAt:a.expires_at}}getWebSocketConfig(e){return{url:e.url,protocols:[`realtime`,`openai-insecure-api-key.${e.token}`]}}parseServerEvent(e){return It(e)}serializeClientEvent(e){return Lt(e,this.modelId)}buildSessionConfig(e){return Rt(e,this.modelId)}};function Bt(e){if(e==null)return{inputTokens:{total:void 0,noCache:void 0,cacheRead:void 0,cacheWrite:void 0},outputTokens:{total:void 0,text:void 0,reasoning:void 0},raw:void 0};let t=e.input_tokens,n=e.output_tokens,r=e.input_tokens_details?.cached_tokens??0,i=e.output_tokens_details?.reasoning_tokens??0;return{inputTokens:{total:t,noCache:t-r,cacheRead:r,cacheWrite:void 0},outputTokens:{total:n,text:n-i,reasoning:i},raw:e}}function Vt(e){return JSON.stringify(e===void 0?{}:e)}function Ht(e,t){return t?t.some(t=>e.startsWith(t)):!1}async function Ut({prompt:e,toolNameMapping:t,systemMessageMode:n,providerOptionsName:i,fileIdPrefixes:a,passThroughUnsupportedFiles:o=!1,store:s,hasConversation:c=!1,hasPreviousResponseId:l=!1,hasLocalShellTool:u=!1,hasShellTool:d=!1,hasApplyPatchTool:f=!1,customProviderToolNames:p}){let m=[],h=[],g=new Set;for(let{role:_,content:v}of e)switch(_){case`system`:switch(n){case`system`:m.push({role:`system`,content:v});break;case`developer`:m.push({role:`developer`,content:v});break;case`remove`:h.push({type:`other`,message:`system messages are removed for this model`});break;default:throw Error(`Unsupported system message mode: ${n}`)}break;case`user`:m.push({role:`user`,content:v.map((e,t)=>{switch(e.type){case`text`:return{type:`input_text`,text:e.text};case`file`:switch(e.data.type){case`reference`:{let t=w({reference:e.data.reference,provider:i});return b(e.mediaType)===`image`?{type:`input_image`,file_id:t,detail:e.providerOptions?.[i]?.imageDetail}:{type:`input_file`,file_id:t}}case`text`:throw new r({functionality:`text file parts`});case`url`:case`data`:if(b(e.mediaType)===`image`)return{type:`input_image`,...e.data.type===`url`?{image_url:e.data.url.toString()}:typeof e.data.data==`string`&&Ht(e.data.data,a)?{file_id:e.data.data}:{image_url:`data:${j({part:e})};base64,${V(e.data.data)}`},detail:e.providerOptions?.[i]?.imageDetail};{if(e.data.type===`url`)return{type:`input_file`,file_url:e.data.url.toString()};let n=j({part:e});if(n!==`application/pdf`&&!o)throw new r({functionality:`file part media type ${n}`});return{type:`input_file`,...typeof e.data.data==`string`&&Ht(e.data.data,a)?{file_id:e.data.data}:{filename:e.filename??(n===`application/pdf`?`part-${t}.pdf`:`part-${t}`),file_data:`data:${n};base64,${V(e.data.data)}`}}}}}})});break;case`assistant`:{let e={};for(let n of v)switch(n.type){case`text`:{let e=n.providerOptions?.[i],t=e?.itemId,r=e?.phase;if(c&&t!=null)break;if(s&&t!=null){m.push({type:`item_reference`,id:t});break}m.push({role:`assistant`,content:[{type:`output_text`,text:n.text}],id:t,...r!=null&&{phase:r}});break}case`tool-call`:{let e=n.providerOptions?.[i]?.itemId??n.providerMetadata?.[i]?.itemId,r=n.providerOptions?.[i]?.namespace??n.providerMetadata?.[i]?.namespace;if(c&&e!=null)break;let a=t.toProviderToolName(n.toolName);if(a===`tool_search`){if(s&&e!=null){m.push({type:`item_reference`,id:e});break}let t=typeof n.input==`string`?await T({text:n.input,schema:Z}):await H({value:n.input,schema:Z}),r=t.call_id==null?`server`:`client`;m.push({type:`tool_search_call`,id:e??n.toolCallId,execution:r,call_id:t.call_id??null,status:`completed`,arguments:t.arguments});break}if(n.providerExecuted){s&&e!=null&&m.push({type:`item_reference`,id:e});break}if(l&&s&&e!=null)break;let o=u&&a===`local_shell`||d&&a===`shell`||f&&a===`apply_patch`||(p?.has(a)??!1);if(s&&e!=null&&o){m.push({type:`item_reference`,id:e});break}if(u&&a===`local_shell`){let t=await H({value:n.input,schema:gt});m.push({type:`local_shell_call`,call_id:n.toolCallId,id:e,action:{type:`exec`,command:t.action.command,timeout_ms:t.action.timeoutMs,user:t.action.user,working_directory:t.action.workingDirectory,env:t.action.env}});break}if(d&&a===`shell`){let t=await H({value:n.input,schema:yt});m.push({type:`shell_call`,call_id:n.toolCallId,id:e,status:`completed`,action:{commands:t.action.commands,timeout_ms:t.action.timeoutMs,max_output_length:t.action.maxOutputLength}});break}if(f&&a===`apply_patch`){let t=await H({value:n.input,schema:Ze});m.push({type:`apply_patch_call`,call_id:t.callId,id:e,status:`completed`,operation:t.operation});break}if(p?.has(a)){m.push({type:`custom_tool_call`,call_id:n.toolCallId,name:a,input:typeof n.input==`string`?n.input:JSON.stringify(n.input),id:e});break}m.push({type:`function_call`,call_id:n.toolCallId,name:a,arguments:Vt(n.input),...r!=null&&{namespace:r}});break}case`tool-result`:{if(n.output.type===`execution-denied`||n.output.type===`json`&&typeof n.output.value==`object`&&n.output.value!=null&&`type`in n.output.value&&n.output.value.type===`execution-denied`||c)break;let e=t.toProviderToolName(n.toolName);if(e===`tool_search`){let e=n.providerOptions?.[i]?.itemId??n.toolCallId;if(s)m.push({type:`item_reference`,id:e});else if(n.output.type===`json`){let t=await H({value:n.output.value,schema:wt});m.push({type:`tool_search_output`,id:e,execution:`server`,call_id:null,status:`completed`,tools:t.tools})}break}if(d&&e===`shell`){if(n.output.type===`json`){let e=await H({value:n.output.value,schema:X});m.push({type:`shell_call_output`,call_id:n.toolCallId,output:e.output.map(e=>({stdout:e.stdout,stderr:e.stderr,outcome:e.outcome.type===`timeout`?{type:`timeout`}:{type:`exit`,exit_code:e.outcome.exitCode}}))})}break}if(s){let e=n.providerOptions?.[i]?.itemId??n.toolCallId;m.push({type:`item_reference`,id:e})}else h.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 D({provider:i,providerOptions:n.providerOptions,schema:Wt}),r=t?.itemId;if((c||l)&&r!=null)break;if(r!=null){let i=e[r];if(s)i===void 0&&(m.push({type:`item_reference`,id:r}),e[r]={type:`reasoning`,id:r,summary:[]});else{let a=[];n.text.length>0?a.push({type:`summary_text`,text:n.text}):i!==void 0&&h.push({type:`other`,message:`Cannot append empty reasoning part to existing reasoning sequence. Skipping reasoning part: ${JSON.stringify(n)}.`}),i===void 0?(e[r]={type:`reasoning`,id:r,encrypted_content:t?.reasoningEncryptedContent,summary:a},m.push(e[r])):(i.summary.push(...a),t?.reasoningEncryptedContent!=null&&(i.encrypted_content=t.reasoningEncryptedContent))}}else{let e=t?.reasoningEncryptedContent;if(e!=null){let t=[];n.text.length>0&&t.push({type:`summary_text`,text:n.text}),m.push({type:`reasoning`,encrypted_content:e,summary:t})}else h.push({type:`other`,message:`Non-OpenAI reasoning parts are not supported. Skipping reasoning part: ${JSON.stringify(n)}.`})}break}case`custom`:if(n.kind===`openai.compaction`){let e=n.providerOptions?.[i],t=e?.itemId;if(c&&t!=null)break;if(s&&t!=null){m.push({type:`item_reference`,id:t});break}let r=e?.encryptedContent;t!=null&&m.push({type:`compaction`,id:t,encrypted_content:r})}break}break}case`tool`:for(let e of v){if(e.type===`tool-approval-response`){let t=e;if(g.has(t.approvalId))continue;g.add(t.approvalId),s&&m.push({type:`item_reference`,id:t.approvalId}),m.push({type:`mcp_approval_response`,approval_request_id:t.approvalId,approve:t.approved});continue}let n=e.output;if(n.type===`execution-denied`&&n.providerOptions?.openai?.approvalId)continue;let r=t.toProviderToolName(e.toolName);if(r===`tool_search`&&n.type===`json`){let t=await H({value:n.value,schema:wt});m.push({type:`tool_search_