eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
11 lines (8 loc) • 121 kB
JavaScript
import{APICallError as e,InvalidPromptError as t,TooManyEmbeddingValuesForCallError as n,UnsupportedFunctionalityError as r}from"../provider/index.js";import{$ as i,B as a,Ct as o,E as s,G as c,H as l,I as u,J as d,L as f,M as p,N as m,O as h,Q as g,R as _,Tt as v,U as y,Y as b,Z as x,_ as S,_t as C,a as w,bt as T,c as E,ct as D,d as O,et as ee,f as k,ft as A,g as j,h as M,ht as N,i as te,it as P,j as F,lt as I,m as ne,mt as re,nt as L,o as ie,ot as ae,p as R,pt as z,r as B,rt as V,s as H,st as U,t as oe,tt as se,u as ce,ut as W,vt as G,w as K,wt as q,x as J,xt as Y,y as le,z as ue}from"../../_chunks/workflow/dist-C_VDTghO.js";function de(e){return v(ae,e)}var fe=G({error:G({message:Y(),type:Y().nullish(),param:I().nullish(),code:o([Y(),C()]).nullish()})}),X=k({errorSchema:fe,errorToMessage:e=>e.error.message});function pe(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`)||e.startsWith(`gpt-5.6`);return{supportsFlexProcessing:t,supportsPriorityProcessing:n,isReasoningModel:r,systemMessageMode:r?`developer`:`system`,supportsNonReasoningParameters:i}}async function me({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(()=>{}),he({frame:l,url:r,requestBodyValues:i,responseHeaders:a});if(n(o.value))return s}}finally{c.cancel().catch(()=>{}),c.releaseLock()}}function he({frame:t,url:n,requestBodyValues:r,responseHeaders:i}){let a=ge(t);return new e({message:a?.message??`OpenAI stream failed before any output was generated`,url:n,requestBodyValues:r,statusCode:a==null?500:_e(a),responseHeaders:i,responseBody:JSON.stringify(t),data:t})}function ge(e){let t=ve(e);if(t==null)return;if(t.type===`response.failed`){let n=ve(ve(t.response)?.error);return typeof n?.message==`string`?{message:n.message,code:ye(n.code),type:`response.failed`,frame:e}:void 0}let n=ve(t.error)??t;return typeof n.message==`string`&&(ve(t.error)!=null||typeof n.type==`string`||`code`in n||`param`in n)?{message:n.message,code:ye(n.code),type:typeof n.type==`string`?n.type:void 0,frame:e}:void 0}function _e(e){if(typeof e.code==`number`&&be(e.code))return e.code;if(typeof e.code==`string`&&/^\d{3}$/.test(e.code)){let t=Number(e.code);if(be(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 ve(e){return typeof e==`object`&&e?e:void 0}function ye(e){return typeof e==`string`||typeof e==`number`?e:void 0}function be(e){return Number.isInteger(e)&&e>=400&&e<=599}function xe(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.prompt_tokens_details?.cache_write_tokens??void 0,a=e.completion_tokens_details?.reasoning_tokens??0;return{inputTokens:{total:t,noCache:t-r-(i??0),cacheRead:r,cacheWrite:i},outputTokens:{total:n,text:n-a,reasoning:a},raw:e}}function Se(e){return JSON.stringify(e===void 0?{}:e)}function Z(e){return e?.openai?.promptCacheBreakpoint}function Ce({prompt:e,systemMessageMode:t=`system`}){let n=[],i=[];for(let{role:a,content:o,providerOptions:s}of e)switch(a){case`system`:switch(t){case`system`:{let e=Z(s);n.push({role:`system`,content:e==null?o:[{type:`text`,text:o,prompt_cache_breakpoint:e}]});break}case`developer`:{let e=Z(s);n.push({role:`developer`,content:e==null?o:[{type:`text`,text:o,prompt_cache_breakpoint:e}]});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`&&Z(o[0].providerOptions)==null){n.push({role:`user`,content:o[0].text});break}n.push({role:`user`,content:o.map((e,t)=>{switch(e.type){case`text`:{let t=Z(e.providerOptions);return{type:`text`,text:e.text,...t!=null&&{prompt_cache_breakpoint:t}}}case`file`:{let n=Z(e.providerOptions);switch(e.data.type){case`reference`:return{type:`file`,file:{file_id:y({reference:e.data.reference,provider:`openai`})},...n!=null&&{prompt_cache_breakpoint:n}};case`text`:throw new r({functionality:`text file parts`});case`url`:case`data`:{let i=K(e.mediaType);if(i===`image`)return{type:`image_url`,image_url:{url:e.data.type===`url`?e.data.url.toString():`data:${l({part:e})};base64,${H(e.data.data)}`,detail:e.providerOptions?.openai?.imageDetail},...n!=null&&{prompt_cache_breakpoint:n}};if(i===`audio`){if(e.data.type===`url`)throw new r({functionality:`audio file parts with URLs`});let t=l({part:e});switch(t){case`audio/wav`:return{type:`input_audio`,input_audio:{data:H(e.data.data),format:`wav`},...n!=null&&{prompt_cache_breakpoint:n}};case`audio/mp3`:case`audio/mpeg`:return{type:`input_audio`,input_audio:{data:H(e.data.data),format:`mp3`},...n!=null&&{prompt_cache_breakpoint:n}};default:throw new r({functionality:`audio content parts with media type ${t}`})}}{let i=l({part:e});if(i!==`application/pdf`)throw new r({functionality:`file part media type ${i}`});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,${H(e.data.data)}`},...n!=null&&{prompt_cache_breakpoint:n}}}}}}}})});break;case`assistant`:{let e=``,t=[],r=!1,i=[];for(let n of o)switch(n.type){case`text`:{let i=Z(n.providerOptions);e+=n.text,t.push({type:`text`,text:n.text,...i!=null&&{prompt_cache_breakpoint:i}}),r||=i!=null;break}case`tool-call`:i.push({id:n.toolCallId,type:`function`,function:{name:n.toolName,arguments:Se(n.input)}});break}n.push({role:`assistant`,content:r?t:i.length>0?e||null:e,tool_calls:i.length>0?i:void 0});break}case`tool`:for(let e of o){if(e.type===`tool-approval-response`)continue;let t=e.output,r=(t.type===`content`?t.value.map(e=>Z(e.providerOptions)).find(e=>e!=null):Z(t.providerOptions))??Z(e.providerOptions),i;switch(t.type){case`text`:case`error-text`:i=t.value;break;case`execution-denied`:i=t.reason??`Tool call execution denied.`;break;case`content`:case`json`:case`error-json`:i=JSON.stringify(t.value);break}n.push({role:`tool`,tool_call_id:e.toolCallId,content:r==null?i:[{type:`text`,text:i,prompt_cache_breakpoint:r}]})}break;default:throw Error(`Unsupported role: ${a}`)}return{messages:n,warnings:i}}function we({id:e,model:t,created:n}){return{id:e??void 0,modelId:t??void 0,timestamp:n?new Date(n*1e3):void 0}}function Te(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 Ee=F(()=>L(G({id:Y().nullish(),created:C().nullish(),model:Y().nullish(),choices:W(G({message:G({role:N(`assistant`).nullish(),content:Y().nullish(),tool_calls:W(G({id:Y().nullish(),type:N(`function`),function:G({name:Y(),arguments:Y()})})).nullish(),annotations:W(G({type:N(`url_citation`),url_citation:G({start_index:C(),end_index:C(),url:Y(),title:Y()})})).nullish()}),index:C(),logprobs:G({content:W(G({token:Y(),logprob:C(),top_logprobs:W(G({token:Y(),logprob:C()}))})).nullish()}).nullish(),finish_reason:Y().nullish()})),usage:G({prompt_tokens:C().nullish(),completion_tokens:C().nullish(),total_tokens:C().nullish(),prompt_tokens_details:G({cached_tokens:C().nullish(),cache_write_tokens:C().nullish()}).nullish(),completion_tokens_details:G({reasoning_tokens:C().nullish(),accepted_prediction_tokens:C().nullish(),rejected_prediction_tokens:C().nullish()}).nullish()}).nullish()}))),De=F(()=>L(o([G({id:Y().nullish(),created:C().nullish(),model:Y().nullish(),choices:W(G({delta:G({role:U([`assistant`]).nullish(),content:Y().nullish(),tool_calls:W(G({index:C(),id:Y().nullish(),type:N(`function`).nullish(),function:G({name:Y().nullish(),arguments:Y().nullish()})})).nullish(),annotations:W(G({type:N(`url_citation`),url_citation:G({start_index:C(),end_index:C(),url:Y(),title:Y()})})).nullish()}).nullish(),logprobs:G({content:W(G({token:Y(),logprob:C(),top_logprobs:W(G({token:Y(),logprob:C()}))})).nullish()}).nullish(),finish_reason:Y().nullish(),index:C()})),usage:G({prompt_tokens:C().nullish(),completion_tokens:C().nullish(),total_tokens:C().nullish(),prompt_tokens_details:G({cached_tokens:C().nullish(),cache_write_tokens:C().nullish()}).nullish(),completion_tokens_details:G({reasoning_tokens:C().nullish(),accepted_prediction_tokens:C().nullish(),rejected_prediction_tokens:C().nullish()}).nullish()}).nullish()}),fe]))),Oe=F(()=>L(G({logitBias:T(de(),C()).optional(),logprobs:o([A(),C()]).optional(),parallelToolCalls:A().optional(),user:Y().optional(),reasoningEffort:U([`none`,`minimal`,`low`,`medium`,`high`,`xhigh`,`max`]).optional(),maxCompletionTokens:C().optional(),store:A().optional(),metadata:T(Y().max(64),Y().max(512)).optional(),prediction:T(Y(),I()).optional(),serviceTier:U([`auto`,`flex`,`priority`,`default`]).optional(),strictJsonSchema:A().optional(),textVerbosity:U([`low`,`medium`,`high`]).optional(),promptCacheKey:Y().optional(),promptCacheOptions:G({mode:U([`implicit`,`explicit`]).optional(),ttl:N(`30m`).optional()}).optional(),promptCacheRetention:U([`in_memory`,`24h`]).optional(),safetyIdentifier:Y().optional(),systemMessageMode:U([`system`,`developer`,`remove`]).optional(),forceReasoning:A().optional()})));function ke({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 Ae=class e{constructor(e,t){this.specificationVersion=`v4`,this.supportedUrls={"image/*":[/^https?:\/\/.*$/]},this.modelId=e,this.config=t}static[P](e){return d({modelId:e.modelId,config:e.config})}static[V](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:c,responseFormat:l,seed:u,tools:d,toolChoice:f,reasoning:p,providerOptions:m}){let h=[],g=await _({provider:`openai`,providerOptions:m,schema:Oe})??{},v=pe(this.modelId),y=g.reasoningEffort??(s(p)?p:void 0),b=g.forceReasoning??v.isReasoningModel;i!=null&&h.push({type:`unsupported`,feature:`topK`});let{messages:x,warnings:S}=Ce({prompt:e,systemMessageMode:g.systemMessageMode??(b?`developer`:v.systemMessageMode)});h.push(...S);let C=g.strictJsonSchema??!0,w={model:this.modelId,logit_bias:g.logitBias,logprobs:g.logprobs===!0||typeof g.logprobs==`number`?!0:void 0,top_logprobs:typeof g.logprobs==`number`?g.logprobs:typeof g.logprobs==`boolean`&&g.logprobs?0:void 0,user:g.user,parallel_tool_calls:g.parallelToolCalls,max_tokens:t,temperature:n,top_p:r,frequency_penalty:a,presence_penalty:o,response_format:l?.type===`json`?l.schema==null?{type:`json_object`}:{type:`json_schema`,json_schema:{schema:l.schema,strict:C,name:l.name??`response`,description:l.description}}:void 0,stop:c,seed:u,verbosity:g.textVerbosity,max_completion_tokens:g.maxCompletionTokens,store:g.store,metadata:g.metadata,prediction:g.prediction,reasoning_effort:y,service_tier:g.serviceTier,prompt_cache_key:g.promptCacheKey,prompt_cache_options:g.promptCacheOptions,prompt_cache_retention:g.promptCacheRetention,safety_identifier:g.safetyIdentifier,messages:x};b?((y!==`none`||!v.supportsNonReasoningParameters)&&(w.temperature!=null&&(w.temperature=void 0,h.push({type:`unsupported`,feature:`temperature`,details:`temperature is not supported for reasoning models`})),w.top_p!=null&&(w.top_p=void 0,h.push({type:`unsupported`,feature:`topP`,details:`topP is not supported for reasoning models`})),w.logprobs!=null&&(w.logprobs=void 0,h.push({type:`other`,message:`logprobs is not supported for reasoning models`}))),w.frequency_penalty!=null&&(w.frequency_penalty=void 0,h.push({type:`unsupported`,feature:`frequencyPenalty`,details:`frequencyPenalty is not supported for reasoning models`})),w.presence_penalty!=null&&(w.presence_penalty=void 0,h.push({type:`unsupported`,feature:`presencePenalty`,details:`presencePenalty is not supported for reasoning models`})),w.logit_bias!=null&&(w.logit_bias=void 0,h.push({type:`other`,message:`logitBias is not supported for reasoning models`})),w.top_logprobs!=null&&(w.top_logprobs=void 0,h.push({type:`other`,message:`topLogprobs is not supported for reasoning models`})),w.max_tokens!=null&&(w.max_completion_tokens??=w.max_tokens,w.max_tokens=void 0)):(this.modelId.startsWith(`gpt-4o-search-preview`)||this.modelId.startsWith(`gpt-4o-mini-search-preview`))&&w.temperature!=null&&(w.temperature=void 0,h.push({type:`unsupported`,feature:`temperature`,details:`temperature is not supported for the search preview models and has been removed.`})),g.serviceTier===`flex`&&!v.supportsFlexProcessing&&(h.push({type:`unsupported`,feature:`serviceTier`,details:`flex processing is only available for o3, o4-mini, and gpt-5 models`}),w.service_tier=void 0),g.serviceTier===`priority`&&!v.supportsPriorityProcessing&&(h.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`}),w.service_tier=void 0);let{tools:T,toolChoice:E,toolWarnings:D}=ke({tools:d,toolChoice:f});return{args:{...w,tools:T,tool_choice:E},warnings:[...h,...D]}}async doGenerate(e){var t;let{args:n,warnings:r}=await this.getArgs(e),{responseHeaders:i,value:o,rawValue:s}=await a({url:this.config.url({path:`/chat/completions`,modelId:this.modelId}),headers:B((t=this.config).headers?.call(t),e.headers),body:n,failedResponseHandler:X,successfulResponseHandler:R(Ee),abortSignal:e.abortSignal,fetch:this.config.fetch}),c=o.choices[0],l=[],u=c.message.content;u!=null&&u.length>0&&l.push({type:`text`,text:u});for(let e of c.message.tool_calls??[])l.push({type:`tool-call`,toolCallId:e.id??J(),toolName:e.function.name,input:e.function.arguments});for(let e of c.message.annotations??[])l.push({type:`source`,sourceType:`url`,id:J(),url:e.url_citation.url,title:e.url_citation.title});let d=o.usage?.completion_tokens_details,f={openai:{}};return d?.accepted_prediction_tokens!=null&&(f.openai.acceptedPredictionTokens=d?.accepted_prediction_tokens),d?.rejected_prediction_tokens!=null&&(f.openai.rejectedPredictionTokens=d?.rejected_prediction_tokens),c.logprobs?.content!=null&&(f.openai.logprobs=c.logprobs.content),{content:l,finishReason:{unified:Te(c.finish_reason),raw:c.finish_reason??void 0},usage:xe(o.usage),request:{body:n},response:{...we(o),headers:i,body:s},warnings:r,providerMetadata:f}}async doStream(e){var t;let{args:n,warnings:r}=await this.getArgs(e),i={...n,stream:!0,stream_options:{include_usage:!0}},o=this.config.url({path:`/chat/completions`,modelId:this.modelId}),{responseHeaders:s,value:c}=await a({url:o,headers:B((t=this.config).headers?.call(t),e.headers),body:i,failedResponseHandler:X,successfulResponseHandler:O(De),abortSignal:e.abortSignal,fetch:this.config.fetch}),l=await me({stream:c,getError:e=>`error`in e?e.error:void 0,isOutputChunk:je,url:o,requestBodyValues:i,responseHeaders:s}),u,d={unified:`other`,raw:void 0},f,p=!1,m=!1,h={openai:{}};return{stream:l.pipeThrough(new TransformStream({start(e){u=new oe(e,{generateId:J,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){d={unified:`error`,raw:void 0},n.enqueue({type:`error`,error:t.error});return}let r=t.value;if(`error`in r){d={unified:`error`,raw:void 0},n.enqueue({type:`error`,error:r.error});return}if(!p){let e=we(r);Object.values(e).some(Boolean)&&(p=!0,n.enqueue({type:`response-metadata`,...we(r)}))}r.usage!=null&&(f=r.usage,r.usage.completion_tokens_details?.accepted_prediction_tokens!=null&&(h.openai.acceptedPredictionTokens=r.usage.completion_tokens_details?.accepted_prediction_tokens),r.usage.completion_tokens_details?.rejected_prediction_tokens!=null&&(h.openai.rejectedPredictionTokens=r.usage.completion_tokens_details?.rejected_prediction_tokens));let i=r.choices[0];if(i?.finish_reason!=null&&(d={unified:Te(i.finish_reason),raw:i.finish_reason}),i?.logprobs?.content!=null&&(h.openai.logprobs=i.logprobs.content),i?.delta==null)return;let a=i.delta;if(a.content!=null&&(m||=(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)u.processDelta(e);if(a.annotations!=null)for(let e of a.annotations)n.enqueue({type:`source`,sourceType:`url`,id:J(),url:e.url_citation.url,title:e.url_citation.title})},flush(e){m&&e.enqueue({type:`text-end`,id:`0`}),u.flush(),e.enqueue({type:`finish`,finishReason:d,usage:xe(f),...h==null?{}:{providerMetadata:h}})}})),request:{body:i},response:{headers:s}}}};function je(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 Me(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 Ne({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 Pe({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 Fe(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 Ie=F(()=>L(G({id:Y().nullish(),created:C().nullish(),model:Y().nullish(),choices:W(G({text:Y(),finish_reason:Y(),logprobs:G({tokens:W(Y()),token_logprobs:W(C()),top_logprobs:W(T(Y(),C())).nullish()}).nullish()})),usage:G({prompt_tokens:C(),completion_tokens:C(),total_tokens:C()}).nullish()}))),Le=F(()=>L(o([G({id:Y().nullish(),created:C().nullish(),model:Y().nullish(),choices:W(G({text:Y(),finish_reason:Y().nullish(),index:C(),logprobs:G({tokens:W(Y()),token_logprobs:W(C()),top_logprobs:W(T(Y(),C())).nullish()}).nullish()})),usage:G({prompt_tokens:C(),completion_tokens:C(),total_tokens:C()}).nullish()}),fe]))),Re=F(()=>L(G({echo:A().optional(),logitBias:T(Y(),C()).optional(),suffix:Y().optional(),user:Y().optional(),logprobs:o([A(),C()]).optional()}))),ze=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[P](e){return d({modelId:e.modelId,config:e.config})}static[V](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 _({provider:`openai`,providerOptions:f,schema:Re}),...await _({provider:this.providerOptionsName,providerOptions:f,schema:Re})};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}=Ne({prompt:e}),v=[...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:v.length>0?v:void 0},warnings:p}}async doGenerate(e){var t;let{args:n,warnings:r}=await this.getArgs(e),{responseHeaders:i,value:o,rawValue:s}=await a({url:this.config.url({path:`/completions`,modelId:this.modelId}),headers:B((t=this.config).headers?.call(t),e.headers),body:n,failedResponseHandler:X,successfulResponseHandler:R(Ie),abortSignal:e.abortSignal,fetch:this.config.fetch}),c=o.choices[0],l={openai:{}};return c.logprobs!=null&&(l.openai.logprobs=c.logprobs),{content:[{type:`text`,text:c.text}],usage:Me(o.usage),finishReason:{unified:Fe(c.finish_reason),raw:c.finish_reason??void 0},request:{body:n},response:{...Pe(o),headers:i,body:s},providerMetadata:l,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}},o=this.config.url({path:`/completions`,modelId:this.modelId}),{responseHeaders:s,value:c}=await a({url:o,headers:B((t=this.config).headers?.call(t),e.headers),body:i,failedResponseHandler:X,successfulResponseHandler:O(Le),abortSignal:e.abortSignal,fetch:this.config.fetch}),l=await me({stream:c,getError:e=>`error`in e?e.error:void 0,isOutputChunk:Be,url:o,requestBodyValues:i,responseHeaders:s}),u={unified:`other`,raw:void 0},d={openai:{}},f,p=!0;return{stream:l.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){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}p&&(p=!1,n.enqueue({type:`response-metadata`,...Pe(r)}),n.enqueue({type:`text-start`,id:`0`})),r.usage!=null&&(f=r.usage);let i=r.choices[0];i?.finish_reason!=null&&(u={unified:Fe(i.finish_reason),raw:i.finish_reason}),i?.logprobs!=null&&(d.openai.logprobs=i.logprobs),i?.text!=null&&i.text.length>0&&n.enqueue({type:`text-delta`,id:`0`,delta:i.text})},flush(e){p||e.enqueue({type:`text-end`,id:`0`}),e.enqueue({type:`finish`,finishReason:u,providerMetadata:d,usage:Me(f)})}})),request:{body:i},response:{headers:s}}}};function Be(e){return!(`error`in e)&&e.choices.some(e=>e.text.length>0)}var Ve=F(()=>L(G({dimensions:C().optional(),user:Y().optional()}))),He=F(()=>L(G({data:W(G({embedding:W(C())})),usage:G({prompt_tokens:C()}).nullish()}))),Ue=class e{constructor(e,t){this.specificationVersion=`v4`,this.maxEmbeddingsPerCall=2048,this.supportsParallelCalls=!0,this.modelId=e,this.config=t}static[P](e){return d({modelId:e.modelId,config:e.config})}static[V](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 o;if(e.length>this.maxEmbeddingsPerCall)throw new n({provider:this.provider,modelId:this.modelId,maxEmbeddingsPerCall:this.maxEmbeddingsPerCall,values:e});let s=await _({provider:`openai`,providerOptions:i,schema:Ve})??{},{responseHeaders:c,value:l,rawValue:u}=await a({url:this.config.url({path:`/embeddings`,modelId:this.modelId}),headers:B((o=this.config).headers?.call(o),t),body:{model:this.modelId,input:e,encoding_format:`float`,dimensions:s.dimensions,user:s.user},failedResponseHandler:X,successfulResponseHandler:R(He),abortSignal:r,fetch:this.config.fetch});return{warnings:[],embeddings:l.data.map(e=>e.embedding),usage:l.usage?{tokens:l.usage.prompt_tokens}:void 0,response:{headers:c,body:u}}}},We=F(()=>L(G({id:Y(),object:Y().nullish(),bytes:C().nullish(),created_at:C().nullish(),filename:Y().nullish(),purpose:Y().nullish(),status:Y().nullish(),expires_at:C().nullish()}))),Ge=F(()=>L(G({purpose:Y().optional(),expiresAfter:C().optional()}))),Ke=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 _({provider:`openai`,providerOptions:r,schema:Ge}),a=ie(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 ue({url:`${this.config.baseURL}/files`,headers:B(this.config.headers()),formData:s,failedResponseHandler:X,successfulResponseHandler:R(We),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}}}}}},qe=F(()=>L(G({created:C().nullish(),data:W(G({b64_json:Y(),revised_prompt:Y().nullish()})),background:Y().nullish(),output_format:Y().nullish(),size:Y().nullish(),quality:Y().nullish(),usage:G({input_tokens:C().nullish(),output_tokens:C().nullish(),total_tokens:C().nullish(),input_tokens_details:G({image_tokens:C().nullish(),text_tokens:C().nullish()}).nullish()}).nullish()}))),Je={"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},Ye=[`chatgpt-image-`,`gpt-image-1-mini`,`gpt-image-1.5`,`gpt-image-1`,`gpt-image-2`];function Xe(e){return Ye.some(t=>e.startsWith(t))}var Ze=G({quality:U([`standard`,`hd`,`low`,`medium`,`high`,`auto`]).optional(),background:U([`transparent`,`opaque`,`auto`]).optional(),outputFormat:U([`png`,`jpeg`,`webp`]).optional(),outputCompression:C().int().min(0).max(100).optional(),user:Y().optional()});F(()=>L(Ze));var Qe=F(()=>L(Ze.extend({style:U([`vivid`,`natural`]).optional(),moderation:U([`auto`,`low`]).optional()}))),$e=F(()=>L(Ze.extend({inputFidelity:U([`high`,`low`]).optional()}))),et=class e{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion=`v4`}static[P](e){return d({modelId:e.modelId,config:e.config})}static[V](t){return new e(t.modelId,t.config)}get maxImagesPerCall(){return Je[this.modelId]??1}get provider(){return this.config.provider}async doGenerate({prompt:e,files:t,mask:n,n:r,size:i,aspectRatio:o,seed:s,providerOptions:c,headers:l,abortSignal:u}){var d,f,p;let m=[];o!=null&&m.push({type:`unsupported`,feature:`aspectRatio`,details:"This model does not support aspect ratio. Use `size` instead."}),s!=null&&m.push({type:`unsupported`,feature:`seed`});let h=((d=this.config._internal)?.currentDate)?.call(d)??new Date;if(t!=null){let a=await _({provider:`openai`,providerOptions:c,schema:$e})??{},{value:o,responseHeaders:s}=await ue({url:this.config.url({path:`/images/edits`,modelId:this.modelId}),headers:B((f=this.config).headers?.call(f),l),formData:E({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([w(e.data)],{type:e.mediaType})],{type:e.mediaType}):le(e.url))),mask:n==null?void 0:await nt(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:X,successfulResponseHandler:R(qe),abortSignal:u,fetch:this.config.fetch});return{images:o.data.map(e=>e.b64_json),warnings:m,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:h,modelId:this.modelId,headers:s},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,...tt(o.usage?.input_tokens_details,t,o.data.length)}))}}}}let g=await _({provider:`openai`,providerOptions:c,schema:Qe})??{},{value:v,responseHeaders:y}=await a({url:this.config.url({path:`/images/generations`,modelId:this.modelId}),headers:B((p=this.config).headers?.call(p),l),body:{model:this.modelId,prompt:e,n:r,size:i,quality:g.quality,style:g.style,background:g.background,moderation:g.moderation,output_format:g.outputFormat,output_compression:g.outputCompression,user:g.user,...Xe(this.modelId)?{}:{response_format:`b64_json`}},failedResponseHandler:X,successfulResponseHandler:R(qe),abortSignal:u,fetch:this.config.fetch});return{images:v.data.map(e=>e.b64_json),warnings:m,usage:v.usage==null?void 0:{inputTokens:v.usage.input_tokens??void 0,outputTokens:v.usage.output_tokens??void 0,totalTokens:v.usage.total_tokens??void 0},response:{timestamp:h,modelId:this.modelId,headers:y},providerMetadata:{openai:{images:v.data.map((e,t)=>({...e.revised_prompt?{revisedPrompt:e.revised_prompt}:{},created:v.created??void 0,size:v.size??void 0,quality:v.quality??void 0,background:v.background??void 0,outputFormat:v.output_format??void 0,...tt(v.usage?.input_tokens_details,t,v.data.length)}))}}}}};function tt(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 nt(e){if(!e)return;if(e.type===`url`)return le(e.url);let t=e.data instanceof Uint8Array?e.data:w(e.data);return new Blob([t],{type:e.mediaType})}var rt=F(()=>L(G({callId:Y(),operation:z(`type`,[G({type:N(`create_file`),path:Y(),diff:Y()}),G({type:N(`delete_file`),path:Y()}),G({type:N(`update_file`),path:Y(),diff:Y()})])}))),it=F(()=>L(G({status:U([`completed`,`failed`]),output:Y().optional()})));F(()=>L(G({})));var at=M({id:`openai.apply_patch`,inputSchema:rt,outputSchema:it}),ot=F(()=>L(G({code:Y().nullish(),containerId:Y()}))),st=F(()=>L(G({outputs:W(z(`type`,[G({type:N(`logs`),logs:Y()}),G({type:N(`image`),url:Y()})])).nullish()}))),ct=F(()=>L(G({container:o([Y(),G({fileIds:W(Y()).optional()})]).optional()}))),lt=j({id:`openai.code_interpreter`,inputSchema:ot,outputSchema:st}),ut=(e={})=>lt(e),dt=G({id:Y(),code:Y().optional(),message:Y().optional()}),ft=z(`type`,[G({type:N(`click`),button:U([`left`,`right`,`wheel`,`back`,`forward`]),x:C(),y:C(),keys:W(Y()).optional()}),G({type:N(`double_click`),x:C(),y:C(),keys:W(Y()).optional()}),G({type:N(`drag`),path:W(G({x:C(),y:C()})),keys:W(Y()).optional()}),G({type:N(`keypress`),keys:W(Y())}),G({type:N(`move`),x:C(),y:C(),keys:W(Y()).optional()}),G({type:N(`screenshot`)}),G({type:N(`scroll`),x:C(),y:C(),scrollX:C(),scrollY:C(),keys:W(Y()).optional()}),G({type:N(`type`),text:Y()}),G({type:N(`wait`)})]),pt=F(()=>L(G({actions:W(ft),pendingSafetyChecks:W(dt),status:U([`in_progress`,`completed`,`incomplete`])}))),mt=F(()=>L(G({output:o([G({type:N(`computer_screenshot`),imageUrl:Y(),fileId:Y().optional(),detail:U([`auto`,`low`,`high`,`original`]).optional()}),G({type:N(`computer_screenshot`),fileId:Y(),imageUrl:Y().optional(),detail:U([`auto`,`low`,`high`,`original`]).optional()})]),acknowledgedSafetyChecks:W(dt).optional()}))),ht=M({id:`openai.computer`,inputSchema:pt,outputSchema:mt}),gt=(e={})=>ht(e),_t=F(()=>L(G({description:Y().optional(),format:o([G({type:N(`grammar`),syntax:U([`regex`,`lark`]),definition:Y()}),G({type:N(`text`)})]).optional()}))),vt=ne({id:`openai.custom`,inputSchema:F(()=>L(Y()))}),yt=e=>vt(e),bt=G({key:Y(),type:U([`eq`,`ne`,`gt`,`gte`,`lt`,`lte`,`in`,`nin`]),value:o([Y(),C(),A(),W(Y())])}),xt=G({type:U([`and`,`or`]),filters:W(o([bt,re(()=>xt)]))}),St=F(()=>L(G({vectorStoreIds:W(Y()),maxNumResults:C().optional(),ranking:G({ranker:Y().optional(),scoreThreshold:C().optional()}).optional(),filters:o([bt,xt]).optional()}))),Ct=F(()=>L(G({queries:W(Y()),results:W(G({attributes:T(Y(),q()),fileId:Y(),filename:Y(),score:C(),text:Y()})).nullable()}))),wt=j({id:`openai.file_search`,inputSchema:G({}),outputSchema:Ct}),Tt=F(()=>L(G({background:U([`auto`,`opaque`,`transparent`]).optional(),inputFidelity:U([`low`,`high`]).optional(),inputImageMask:G({fileId:Y().optional(),imageUrl:Y().optional()}).optional(),model:Y().optional(),moderation:U([`auto`]).optional(),outputCompression:C().int().min(0).max(100).optional(),outputFormat:U([`png`,`jpeg`,`webp`]).optional(),partialImages:C().int().min(0).max(3).optional(),quality:U([`auto`,`low`,`medium`,`high`]).optional(),size:U([`1024x1024`,`1024x1536`,`1536x1024`,`auto`]).optional()}).strict())),Et=j({id:`openai.image_generation`,inputSchema:F(()=>L(G({}))),outputSchema:F(()=>L(G({result:Y()})))}),Dt=(e={})=>Et(e),Ot=F(()=>L(G({action:G({type:N(`exec`),command:W(Y()),timeoutMs:C().optional(),user:Y().optional(),workingDirectory:Y().optional(),env:T(Y(),Y()).optional()})}))),kt=F(()=>L(G({output:Y()}))),At=M({id:`openai.local_shell`,inputSchema:Ot,outputSchema:kt}),jt=F(()=>L(G({action:G({commands:W(Y()),timeoutMs:C().optional(),maxOutputLength:C().optional()})}))),Mt=F(()=>L(G({output:W(G({stdout:Y(),stderr:Y(),outcome:z(`type`,[G({type:N(`timeout`)}),G({type:N(`exit`),exitCode:C()})])}))}))),Nt=W(z(`type`,[G({type:N(`skillReference`),providerReference:T(Y(),Y()),version:Y().optional()}),G({type:N(`inline`),name:Y(),description:Y(),source:G({type:N(`base64`),mediaType:N(`application/zip`),data:Y()})})])).optional(),Pt=F(()=>L(G({environment:o([G({type:N(`containerAuto`),fileIds:W(Y()).optional(),memoryLimit:U([`1g`,`4g`,`16g`,`64g`]).optional(),networkPolicy:z(`type`,[G({type:N(`disabled`)}),G({type:N(`allowlist`),allowedDomains:W(Y()),domainSecrets:W(G({domain:Y(),name:Y(),value:Y()})).optional()})]).optional(),skills:Nt}),G({type:N(`containerReference`),containerId:Y()}),G({type:N(`local`).optional(),skills:W(G({name:Y(),description:Y(),path:Y()})).optional()})]).optional()}))),Ft=M({id:`openai.shell`,inputSchema:jt,outputSchema:Mt}),It=F(()=>L(G({execution:U([`server`,`client`]).optional(),description:Y().optional(),parameters:T(Y(),q()).optional()}))),Lt=F(()=>L(G({arguments:q().optional(),call_id:Y().nullish()}))),Rt=F(()=>L(G({tools:W(T(Y(),q()))}))),zt=M({id:`openai.tool_search`,inputSchema:Lt,outputSchema:Rt}),Bt=(e={})=>zt(e),Vt=F(()=>L(G({externalWebAccess:A().optional(),filters:G({allowedDomains:W(Y()).optional()}).optional(),searchContextSize:U([`low`,`medium`,`high`]).optional(),userLocation:G({type:N(`approximate`),country:Y().optional(),city:Y().optional(),region:Y().optional(),timezone:Y().optional()}).optional()}))),Ht=j({id:`openai.web_search`,inputSchema:F(()=>L(G({}))),outputSchema:F(()=>L(G({action:z(`type`,[G({type:N(`search`),query:Y().optional(),queries:W(Y()).optional()}),G({type:N(`openPage`),url:Y().nullish()}),G({type:N(`findInPage`),url:Y().nullish(),pattern:Y().nullish()})]).optional(),sources:W(z(`type`,[G({type:N(`url`),url:Y()}),G({type:N(`api`),name:Y()})])).optional()})))}),Ut=(e={})=>Ht(e),Wt=F(()=>L(G({searchContextSize:U([`low`,`medium`,`high`]).optional(),userLocation:G({type:N(`approximate`),country:Y().optional(),city:Y().optional(),region:Y().optional(),timezone:Y().optional()}).optional()}))),Gt=j({id:`openai.web_search_preview`,inputSchema:F(()=>L(G({}))),outputSchema:F(()=>L(G({action:z(`type`,[G({type:N(`search`),query:Y().optional()}),G({type:N(`openPage`),url:Y().nullish()}),G({type:N(`findInPage`),url:Y().nullish(),pattern:Y().nullish()})]).optional()})))}),Kt=re(()=>o([Y(),C(),A(),D(),W(Kt),T(Y(),Kt)])),qt=F(()=>L(G({serverLabel:Y(),allowedTools:o([W(Y()),G({readOnly:A().optional(),toolNames:W(Y()).optional()})]).optional(),authorization:Y().optional(),connectorId:Y().optional(),headers:T(Y(),Y()).optional(),requireApproval:o([U([`always`,`never`]),G({never:G({toolNames:W(Y()).optional()}).optional()})]).optional(),serverDescription:Y().optional(),serverUrl:Y().optional()}).refine(e=>e.serverUrl!=null||e.connectorId!=null,`One of serverUrl or connectorId must be provided.`))),Jt=j({id:`openai.mcp`,inputSchema:F(()=>L(G({}))),outputSchema:F(()=>L(G({type:N(`call`),serverLabel:Y(),name:Y(),arguments:Y(),output:Y().nullish(),error:o([Y(),Kt]).optional()})))}),Yt={applyPatch:at,customTool:yt,codeInterpreter:ut,computer:gt,fileSearch:wt,imageGeneration:Dt,localShell:At,shell:Ft,webSearchPreview:Gt,webSearch:Ut,mcp:e=>Jt(e),toolSearch:Bt};function Xt(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 Zt(e,t){switch(e.type){case`session-update`:return{type:`session.update`,session:Qt(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 Qt(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 $t=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}:Qt(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 Xt(e)}serializeClientEvent(e){return Zt(e,this.modelId)}buildSessionConfig(e){return Qt(e,this.modelId)}};function en(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.input_tokens_details?.cache_write_tokens??void 0,a=e.output_tokens_details?.reasoning_tokens??0;return{inputTokens:{total:t,noCache:t-r-(i??0),cacheRead:r,cacheWrite:i},outputTokens:{total:n,text:n-a,reasoning:a},raw:e}}function tn(e){return JSON.stringify(e===void 0?{}:e)}function Q(e,t){return e?.[t]?.promptCacheBreakpoint}function nn(e,t){return t?t.some(t=>e.startsWith(t)):!1}async function rn({prompt:e,toolNameMapping:t,systemMessageMode:n,providerOptionsName:i,fileIdPrefixes:a,passThroughUnsupportedFiles:o=!1,store:s,hasConversation:c=!1,hasPreviousResponseId:u=!1,hasLocalShellTool:d=!1,hasShellTool:p=!1,hasApplyPatchTool:m=!1,hasComputerTool:v=!1,customProviderToolNames:b}){let x=[],S=[],C=new Set;for(let{role:w,content:T,providerOptions:E}of e)switch(w){case`system`:switch(n){case`system`:{let e=Q(E,i);x.push({role:`system`,content:e==null?T:[{type:`input_text`,text:T,prompt_cache_breakpoint:e}]});break}case`developer`:{let e=Q(E,i);x.push({role:`developer`,content:e==null?T:[{type:`input_text`,text:T,prompt_cache_breakpoint:e}]});break}case`remove`:S.push({type:`other`,message:`system messages are removed for this model`});break;default:throw Error(`Unsupported system message mode: ${n}`)}break;case`user`:x.push({role:`user`,content:T.map((e,t)=>{switch(e.type){case`text`:{let t=Q(e.providerOptions,i);return{type:`input_text`,text:e.text,...t!=null&&{prompt_cache_breakpoint:t}}}case`file`:{let n=Q(e.providerOptions,i);switch(e.data.type){case`reference`:{let t=y({reference:e.data.reference,provider:i});return K(e.mediaType)===`image`?{type:`input_image`,file_id:t,detail:e.providerOptions?.[i]?.imageDetail,...n!=null&&{prompt_cache_breakpoint:n}}:{type:`input_file`,file_id:t,...n!=null&&{prompt_cache_breakpoint:n}}}case`text`:throw new r({functionality:`text file parts`});case`url`:case`data`:if(K(e.mediaType)===`image`)return{type:`input_image`,...e.data.type===`url`?{image_url:e.data.url.toString()}:typeof e.data.data==`string`&&nn(e.data.data,a)?{file_id:e.data.data}:{image_url:`data:${l({part:e})};base64,${H(e.data.data)}`},detail:e.providerOptions?.[i]?.imageDetail,...n!=null&&{prompt_cache_breakpoint:n}};{if(e.data.type===`url`)return{type:`input_file`,file_url:e.data.url.toString(),...n!=null&&{prompt_cache_breakpoint:n}};let i=l({part:e});if(i!==`application/pdf`&&!o)throw new r({functionality:`file part media type ${i}`});return{type:`input_file`,...typeof e.data.data==`string`&&nn(e.data.data,a)?{file_id:e.data.data}:{filename:e.filename??(i===`application/pdf`?`part-${t}.pdf`:`part-${t}`),file_data:`data:${i};base64,${H(e.data.data)}`},...n!=null&&{prompt_cache_breakpoint:n}}}}}}})});break;case`assistant`:{let e={};for(let n of T)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){x.push({type:`item_reference`,id:t});break}x.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){x.push({type:`item_reference`,id:e});break}let t=typeof n.input==`string`?await f({text:n.input,schema:Lt}):await g({value:n.input,schema:Lt}),r=t.call_id==null?`server`:`client`;x.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&&x.push({type:`item_reference`,id:e});break}if(u&&s&&e!=null)break;let o=d&&a===`local_shell`||p&&a===`shell`||m&&a===`apply_patch`||v&&a===`computer`||(b?.has(a)??!1);if(s&&e!=null&&o){x.push({type:`item_reference`,id:e});break}if(d&&a===`local_shell`){let t=await g({value:n.input,schema:Ot});x.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(p&&a===`shell`){let t=await g({value:n.input,schema:jt});x.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(m&&a===`apply_patch`){let t=await g({value:n.input,schema:rt});x.push({type:`apply_patch_call`,call_id:t.callId,id:e,status:`completed`,operation:t.operation});break}if(v&&a===`computer`){let t=await g({value:n.input,schema:pt});x.push({type:`computer_call`,call_id:n.toolCallId,id:e,status:t.status,actions:t.actions.map(e=>{switch(e.type){case`click`:case`double_click`:case`move`:return{...e,keys:e.keys};case`drag`:return{...e,keys:e.keys};ca