eve 0.76.3 → 0.78.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +43 -0
- package/dist/src/channel/adapter.d.ts +13 -4
- package/dist/src/channel/channel-address.js +1 -1
- package/dist/src/channel/send-input.d.ts +6 -2
- package/dist/src/channel/send-input.js +1 -1
- package/dist/src/channel/session.js +1 -1
- package/dist/src/chunks/{use-eve-agent-BtKWTEpm.js → use-eve-agent-B8brxCk-.js} +46 -28
- package/dist/src/chunks/{use-eve-agent-jI6EsYAu.js → use-eve-agent-BSYe_Re7.js} +46 -28
- package/dist/src/cli/commands/vercel-non-interactive.d.ts +5 -3
- package/dist/src/cli/commands/vercel-non-interactive.js +1 -1
- package/dist/src/client/eve-agent-store.d.ts +2 -2
- package/dist/src/client/message-response.d.ts +2 -0
- package/dist/src/client/message-response.js +1 -1
- package/dist/src/client/session.js +1 -1
- package/dist/src/compiled/.vendor-stamp.json +9 -9
- package/dist/src/compiled/@ai-sdk/anthropic/index.d.ts +6 -1
- package/dist/src/compiled/@ai-sdk/anthropic/index.js +1 -1
- package/dist/src/compiled/@ai-sdk/google/index.d.ts +16 -3
- package/dist/src/compiled/@ai-sdk/google/index.js +6 -6
- package/dist/src/compiled/@ai-sdk/mcp/index.d.ts +681 -348
- package/dist/src/compiled/@ai-sdk/mcp/index.js +1 -1
- package/dist/src/compiled/@ai-sdk/openai/index.d.ts +56 -42
- package/dist/src/compiled/@ai-sdk/openai/index.js +5 -3
- package/dist/src/compiled/@ai-sdk/otel/index.js +3 -3
- package/dist/src/compiled/@ai-sdk/provider/index.d.ts +49 -15
- package/dist/src/compiled/@ai-sdk/provider/index.js +1 -1
- package/dist/src/compiled/@ai-sdk/provider-utils/index.d.ts +4 -1
- package/dist/src/compiled/_chunks/workflow/{dist-DXLdlucM.js → dist-C8k3N3BQ.js} +2 -4
- package/dist/src/compiled/_chunks/workflow/dist-DsNhwdzf.js +1 -0
- package/dist/src/compiled/_chunks/workflow/experimental-decision-DlvnsBD-.js +3 -0
- package/dist/src/compiler/extension-compatibility.d.ts +18 -18
- package/dist/src/compiler/extension-compatibility.js +1 -1
- package/dist/src/compiler/normalize-agent-config.js +1 -1
- package/dist/src/context/dynamic-model-lifecycle.js +1 -1
- package/dist/src/context/keys.d.ts +16 -0
- package/dist/src/context/keys.js +1 -1
- package/dist/src/evals/judge.js +1 -1
- package/dist/src/eve-channel/index.js +1 -1
- package/dist/src/eve-channel/types.d.ts +14 -1
- package/dist/src/execution/agent-sessions/steps.d.ts +2 -0
- package/dist/src/execution/agent-sessions/steps.js +1 -1
- package/dist/src/execution/cancelled-model-call-batch.js +1 -1
- package/dist/src/execution/catalog/connection-entry.js +1 -1
- package/dist/src/execution/catalog/search.js +1 -1
- package/dist/src/execution/catalog/step-catalog.d.ts +12 -3
- package/dist/src/execution/catalog/step-catalog.js +1 -1
- package/dist/src/execution/coordination-dispatch-shared.d.ts +1 -2
- package/dist/src/execution/coordination-dispatch-shared.js +1 -1
- package/dist/src/execution/coordination-dispatch-step.js +1 -1
- package/dist/src/execution/dynamic-workflow/tool.js +1 -1
- package/dist/src/execution/publish-session-events.js +1 -1
- package/dist/src/execution/sandbox/bindings/docker-container.js +1 -1
- package/dist/src/execution/sandbox/bindings/docker.js +1 -1
- package/dist/src/execution/sandbox/bindings/just-bash-runtime.js +1 -1
- package/dist/src/execution/sandbox/bindings/just-bash.d.ts +1 -1
- package/dist/src/execution/sandbox/bindings/just-bash.js +1 -1
- package/dist/src/execution/sandbox/bindings/microsandbox-lifecycle.js +1 -1
- package/dist/src/execution/sandbox/bindings/microsandbox-runtime.js +1 -1
- package/dist/src/execution/sandbox/bindings/vercel.js +1 -1
- package/dist/src/execution/sandbox/read-file.d.ts +5 -5
- package/dist/src/execution/sandbox/read-file.js +2 -2
- package/dist/src/execution/sandbox/session.d.ts +6 -0
- package/dist/src/execution/sandbox/session.js +2 -2
- package/dist/src/execution/session/active-turn.d.ts +9 -1
- package/dist/src/execution/session/active-turn.js +1 -1
- package/dist/src/execution/session/checkpoint-migrations.js +1 -1
- package/dist/src/execution/session/end-sandbox-step.js +1 -1
- package/dist/src/execution/session/handoff.d.ts +1 -1
- package/dist/src/execution/session/handoff.js +1 -1
- package/dist/src/execution/session/next-input.js +1 -1
- package/dist/src/execution/session/turn-step.js +1 -1
- package/dist/src/execution/session/turn.d.ts +11 -4
- package/dist/src/execution/session/turn.js +1 -1
- package/dist/src/execution/session-inbox/inbox.d.ts +3 -0
- package/dist/src/execution/session-inbox/inbox.js +1 -1
- package/dist/src/execution/session-workflow-tool-run.d.ts +14 -12
- package/dist/src/execution/session-workflow-tool-run.js +1 -1
- package/dist/src/execution/tasks/start.d.ts +14 -1
- package/dist/src/execution/tasks/start.js +1 -1
- package/dist/src/execution/tasks/steps.d.ts +7 -4
- package/dist/src/execution/tasks/steps.js +1 -1
- package/dist/src/execution/tools/agent-router-workflow.js +1 -1
- package/dist/src/execution/tools/workflow/apply-run-messages-step.d.ts +20 -0
- package/dist/src/execution/tools/workflow/apply-run-messages-step.js +1 -0
- package/dist/src/execution/tools/workflow/ask.d.ts +0 -1
- package/dist/src/execution/tools/workflow/ask.js +1 -1
- package/dist/src/execution/tools/workflow/interrupt.d.ts +5 -2
- package/dist/src/execution/tools/workflow/interrupt.js +1 -1
- package/dist/src/execution/tools/workflow/messages.d.ts +14 -0
- package/dist/src/execution/tools/workflow/messages.js +1 -1
- package/dist/src/execution/tools/workflow/owner.d.ts +18 -6
- package/dist/src/execution/tools/workflow/owner.js +1 -1
- package/dist/src/execution/tools/workflow/start.d.ts +10 -0
- package/dist/src/execution/tools/workflow/start.js +1 -1
- package/dist/src/execution/tools/workflow/step.js +1 -1
- package/dist/src/execution/tools/workflow/workflow-owner-blocking.d.ts +12 -0
- package/dist/src/execution/tools/workflow/workflow-owner-blocking.js +1 -1
- package/dist/src/execution/tools/workflow/workflow.js +1 -1
- package/dist/src/execution/web-fetch/request.js +1 -1
- package/dist/src/execution/workflow-runtime.d.ts +18 -3
- package/dist/src/execution/workflow-runtime.js +1 -1
- package/dist/src/harness/attachment-staging.d.ts +13 -12
- package/dist/src/harness/attachment-staging.js +1 -1
- package/dist/src/harness/compaction/step.js +1 -1
- package/dist/src/harness/emission.js +1 -1
- package/dist/src/harness/hitl/approvals.d.ts +4 -7
- package/dist/src/harness/hitl/approvals.js +1 -1
- package/dist/src/harness/hitl/approved-calls.d.ts +11 -0
- package/dist/src/harness/hitl/approved-calls.js +1 -1
- package/dist/src/harness/hitl/candidates.d.ts +0 -4
- package/dist/src/harness/hitl/candidates.js +1 -1
- package/dist/src/harness/hitl/delivery.d.ts +0 -1
- package/dist/src/harness/hitl/delivery.js +1 -1
- package/dist/src/harness/hitl/index.d.ts +2 -2
- package/dist/src/harness/hitl/index.js +1 -1
- package/dist/src/harness/hitl/intake.d.ts +2 -2
- package/dist/src/harness/hitl/intake.js +1 -1
- package/dist/src/harness/model-call/call.js +1 -1
- package/dist/src/harness/model-call/errors.d.ts +10 -0
- package/dist/src/harness/model-call/errors.js +1 -1
- package/dist/src/harness/model-call/run.js +1 -1
- package/dist/src/harness/session-machine/state.d.ts +0 -2
- package/dist/src/harness/session-machine/transitions.js +1 -1
- package/dist/src/harness/session-machine/view.d.ts +0 -3
- package/dist/src/harness/session-machine/view.js +1 -1
- package/dist/src/harness/step/after-model.js +1 -1
- package/dist/src/harness/token-estimate.js +1 -1
- package/dist/src/harness/tool-loop.js +1 -1
- package/dist/src/harness/tools.js +1 -1
- package/dist/src/internal/application/package.js +1 -1
- package/dist/src/internal/application/stamped-package-version.js +1 -1
- package/dist/src/internal/attachments/data.d.ts +29 -10
- package/dist/src/internal/attachments/data.js +1 -1
- package/dist/src/internal/attachments/errors.d.ts +2 -2
- package/dist/src/internal/attachments/media-metadata.d.ts +15 -0
- package/dist/src/internal/attachments/media-metadata.js +1 -1
- package/dist/src/internal/attachments/public-link.d.ts +5 -0
- package/dist/src/internal/attachments/public-link.js +1 -0
- package/dist/src/internal/attachments/sandbox-refs.d.ts +7 -6
- package/dist/src/internal/attachments/sandbox-refs.js +1 -1
- package/dist/src/internal/attachments/url-refs.js +1 -1
- package/dist/src/protocol/message.d.ts +7 -0
- package/dist/src/protocol/message.js +2 -2
- package/dist/src/public/channels/attachment-error.d.ts +14 -0
- package/dist/src/public/channels/attachment-error.js +1 -0
- package/dist/src/public/channels/chat-sdk/chatSdkChannel.js +1 -1
- package/dist/src/public/channels/discord/defaults.js +1 -1
- package/dist/src/public/channels/github/defaults.js +1 -1
- package/dist/src/public/channels/index.d.ts +2 -0
- package/dist/src/public/channels/index.js +1 -1
- package/dist/src/public/channels/linear/defaults.js +1 -1
- package/dist/src/public/channels/slack/api.d.ts +10 -0
- package/dist/src/public/channels/slack/api.js +1 -1
- package/dist/src/public/channels/slack/approval-cards.js +1 -1
- package/dist/src/public/channels/slack/attachments.d.ts +29 -19
- package/dist/src/public/channels/slack/attachments.js +1 -1
- package/dist/src/public/channels/slack/defaults.js +1 -1
- package/dist/src/public/channels/slack/inbound.d.ts +6 -0
- package/dist/src/public/channels/slack/inbound.js +1 -1
- package/dist/src/public/channels/slack/interaction-cards.d.ts +6 -0
- package/dist/src/public/channels/slack/interaction-cards.js +1 -1
- package/dist/src/public/channels/slack/interactions.js +1 -1
- package/dist/src/public/channels/slack/slackChannel.js +1 -1
- package/dist/src/public/channels/teams/defaults.js +1 -1
- package/dist/src/public/channels/teams/teamsChannel.js +1 -1
- package/dist/src/public/channels/telegram/defaults.js +1 -1
- package/dist/src/public/channels/telegram/telegramChannel.js +1 -1
- package/dist/src/public/channels/twilio/defaults.js +1 -1
- package/dist/src/public/definitions/channel.js +1 -1
- package/dist/src/runtime/channels/registry.js +1 -1
- package/dist/src/setup/scaffold/create/add-to-project.js +1 -1
- package/dist/src/setup/scaffold/create/project.js +2 -2
- package/dist/src/setup/scaffold/update/web-options.js +1 -1
- package/dist/src/shared/agent-definition.d.ts +2 -1
- package/dist/src/shared/channel-definition.d.ts +16 -4
- package/dist/src/svelte/index.d.ts +0 -1
- package/dist/src/svelte/index.js +1 -1
- package/dist/src/svelte/use-eve-agent.js +1 -1
- package/dist/src/tools/provided/ask-question-workflow.js +1 -1
- package/dist/src/tools/provided/read-file.d.ts +3 -2
- package/dist/src/tools/provided/read-file.js +2 -2
- package/dist/src/tools/provided/sleep-workflow.js +1 -1
- package/dist/src/vue/index.d.ts +0 -1
- package/dist/src/vue/index.js +1 -1
- package/dist/src/vue/use-eve-agent.js +1 -1
- package/docs/agent-config.md +12 -4
- package/docs/channels/chat-sdk.mdx +1 -1
- package/docs/channels/custom.mdx +30 -3
- package/docs/channels/eve.mdx +34 -0
- package/docs/channels/slack.mdx +5 -1
- package/docs/concepts/built-in-tools.md +10 -10
- package/docs/concepts/sessions-runs-and-streaming.md +2 -2
- package/docs/evals/overview.mdx +1 -1
- package/docs/guides/client/streaming.mdx +1 -1
- package/docs/guides/dynamic-capabilities.md +6 -2
- package/docs/memory/custom-provider.md +3 -1
- package/docs/sandbox/index.mdx +10 -4
- package/docs/tools/human-in-the-loop.md +1 -1
- package/docs/tools/overview.mdx +1 -1
- package/package.json +11 -11
- package/dist/src/compiled/_chunks/workflow/experimental-decision-BrfWf6-n.js +0 -3
- package/dist/src/context/caller-scope.d.ts +0 -7
- package/dist/src/context/caller-scope.js +0 -1
- package/dist/src/execution/tools/workflow/emit-workflow-tool-run-report-step.d.ts +0 -13
- package/dist/src/execution/tools/workflow/emit-workflow-tool-run-report-step.js +0 -1
- package/dist/src/harness/hitl/approved-call-callers.d.ts +0 -14
- package/dist/src/harness/hitl/approved-call-callers.js +0 -1
- package/dist/src/internal/attachments/refs.d.ts +0 -55
- package/dist/src/internal/attachments/refs.js +0 -1
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
import{APICallError as e,InvalidArgumentError as t,InvalidPromptError as n,InvalidResponseDataError as r,TooManyEmbeddingValuesForCallError as i,UnsupportedFunctionalityError as a,isJSONObject as o}from"../provider/index.js";import{$ as s,A as c,C as l,Ct as u,E as d,F as f,J as p,L as m,O as h,P as g,Q as _,S as v,St as y,T as b,U as x,V as S,Y as C,_ as w,_t as T,a as E,at as D,b as O,bt as k,c as A,ct as j,d as M,dt as N,f as ee,ft as P,g as te,h as ne,ht as F,it as I,l as L,lt as R,m as z,mt as B,nt as V,o as re,ot as ie,q as H,r as ae,rt as oe,s as se,t as ce,tt as le,v as ue,vt as de,w as U,wt as W,x as fe,xt as pe,y as G,z as me}from"../../_chunks/workflow/dist-DXLdlucM.js";import{n as K,r as q,t as he}from"../../_chunks/workflow/experimental-decision-BrfWf6-n.js";import{z as J}from"#compiled/zod/index.js";const ge=J.object({error:J.object({message:J.string(),type:J.string().nullish(),param:J.any().nullish(),code:J.union([J.string(),J.number()]).nullish()})}),Y=w({errorSchema:ge,errorToMessage:e=>e.error.message});function _e(e){let t=ve(e),n=ye(e),r=n?.minor==null&&(n?.variant?.startsWith(`chat`)??!1),i=n?.variant?.startsWith(`nano`)??!1,a=n!=null&&n.major>=6,o=e===`gpt-6-sol`||e===`gpt-6-luna`,s=t!=null&&t>=3||n!=null&&n.major>=5&&!r,c=e.startsWith(`gpt-4`)||n!=null&&n.major>=5&&!i&&!r||t!=null&&t>=3,l=t!=null||n!=null&&n.major>=5&&!r,u=!a&&n!=null&&(n.major>5||n.major===5&&(n.minor??0)>=1);return{supportsFlexProcessing:s,supportsPriorityProcessing:c,supportsConfigurationUpdate:a,supportsAsyncToolCalling:a,supportedReasoningEfforts:o?[`none`,`low`,`medium`,`high`,`xhigh`,`max`]:a?[`low`,`medium`,`high`,`xhigh`,`max`]:void 0,isReasoningModel:l,systemMessageMode:l?`developer`:`system`,supportsNonReasoningParameters:u}}function ve(e){let t=/^o(\d+)(?:-|$)/.exec(e);return t==null?void 0:Number(t[1])}function ye(e){let t=/^gpt-(\d+)(?:\.(\d+))?(?:-(.+))?$/.exec(e);if(t!=null)return{major:Number(t[1]),minor:t[2]==null?void 0:Number(t[2]),variant:t[3]}}function be(e){let t=Te(e);if(t==null)return;let n=Ee(t);return b({message:t.message,type:t.type??void 0,code:t.code??void 0,statusCode:n,isRetryable:Me(t,n),data:e})}async function xe({stream:e,getError:t,isOutputChunk:n,isAcceptedChunk:r,acceptedGraceMs:i=50,url:a,requestBodyValues:o,responseHeaders:s}){let[c,l]=e.tee(),u=c.getReader(),d=!1;try{let e=!1;for(;;){let c;if(e){let e=await Ce(u.read(),i);if(e.timedOut)return l;c=e.value}else c=await u.read();if(c.done)return l;let f=c.value;if(!f.success)return l;let p=t(f.value);if(p!=null)throw d=!0,Se(u).catch(()=>{}),Se(l.getReader()).catch(()=>{}),we({frame:p,url:a,requestBodyValues:o,responseHeaders:s});if(n(f.value))return l;!e&&r?.(f.value)===!0&&(e=!0)}}finally{d||(u.cancel().catch(()=>{}),u.releaseLock())}}async function Se(e){try{for(;!(await e.read()).done;);}catch{}finally{e.releaseLock()}}async function Ce(e,t){let n,r=e.then(e=>({timedOut:!1,value:e}));try{let e=await Promise.race([r,new Promise(e=>{n=setTimeout(()=>e({timedOut:!0}),t)})]);return e.timedOut&&r.catch(()=>{}),e}finally{clearTimeout(n)}}function we({frame:t,url:n,requestBodyValues:r,responseHeaders:i}){let a=be(t);return new e({message:a?.message??`OpenAI stream failed before any output was generated`,url:n,requestBodyValues:r,statusCode:a?.statusCode??500,responseHeaders:i,responseBody:JSON.stringify(t),data:t,isRetryable:a?.isRetryable})}function Te(e){let t=De(e);if(t==null)return;if(t.type===`response.failed`){let e=De(De(t.response)?.error);return typeof e?.message==`string`?{message:e.message,code:Oe(e.code),type:`response.failed`}:void 0}let n=De(t.error)??t;return typeof n.message==`string`&&(De(t.error)!=null||typeof n.type==`string`||`code`in n||`param`in n)?{message:n.message,code:Oe(n.code),type:typeof n.type==`string`?n.type:void 0}:void 0}function Ee(e){let t=Ae(e.code);if(t!=null)return t;let n=[e.code,e.type].filter(e=>typeof e==`string`||typeof e==`number`).join(` `).toLowerCase();return[`insufficient_quota`,`rate_limit`].some(e=>n.includes(e))?429:n.includes(`authentication`)?401:n.includes(`permission`)?403:n.includes(`not_found`)?404:[`invalid`,`bad_request`,`context_length`].some(e=>n.includes(e))?400:n.includes(`overload`)?503:n.includes(`timeout`)?504:500}function De(e){return typeof e==`object`&&e?e:void 0}function Oe(e){return typeof e==`string`||typeof e==`number`?e:void 0}function ke(e){return Number.isInteger(e)&&e>=400&&e<=599}function Ae(e){let t=typeof e==`string`&&/^\d{3}$/.test(e)?Number(e):e;return typeof t==`number`&&ke(t)?t:void 0}function je(e){return e===408||e===409||e===429||e>=500}function Me(e,t){return e.code===`insufficient_quota`||e.type===`insufficient_quota`?!1:je(t)}function Ne(e){if(e==null)return fe();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:Math.max(0,n-a),reasoning:a},raw:e}}function Pe(e){return JSON.stringify(typeof e==`object`&&e&&!Array.isArray(e)?e:{})}function X(e){return e?.openai?.promptCacheBreakpoint}function Fe({prompt:e,systemMessageMode:t=`system`}){let n=[],r=[];for(let{role:i,content:o,providerOptions:s}of e)switch(i){case`system`:switch(t){case`system`:{let e=X(s);n.push({role:`system`,content:e==null?o:[{type:`text`,text:o,prompt_cache_breakpoint:e}]});break}case`developer`:{let e=X(s);n.push({role:`developer`,content:e==null?o:[{type:`text`,text:o,prompt_cache_breakpoint:e}]});break}case`remove`:r.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`&&X(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=X(e.providerOptions);return{type:`text`,text:e.text,...t!=null&&{prompt_cache_breakpoint:t}}}case`file`:{let n=X(e.providerOptions);switch(e.data.type){case`reference`:return{type:`file`,file:{file_id:R({reference:e.data.reference,provider:`openai`})},...n!=null&&{prompt_cache_breakpoint:n}};case`text`:throw new a({functionality:`text file parts`});case`url`:case`data`:{let r=m(e.mediaType);if(r===`image`)return{type:`image_url`,image_url:{url:e.data.type===`url`?e.data.url.toString():`data:${j({part:e})};base64,${M(e.data.data)}`,detail:e.providerOptions?.openai?.imageDetail},...n!=null&&{prompt_cache_breakpoint:n}};if(r===`audio`){if(e.data.type===`url`)throw new a({functionality:`audio file parts with URLs`});let t=j({part:e});switch(t){case`audio/wav`:return{type:`input_audio`,input_audio:{data:M(e.data.data),format:`wav`},...n!=null&&{prompt_cache_breakpoint:n}};case`audio/mp3`:case`audio/mpeg`:return{type:`input_audio`,input_audio:{data:M(e.data.data),format:`mp3`},...n!=null&&{prompt_cache_breakpoint:n}};default:throw new a({functionality:`audio content parts with media type ${t}`})}}{let r=j({part:e});if(r!==`application/pdf`)throw new a({functionality:`file part media type ${r}`});if(e.data.type===`url`)throw new a({functionality:`PDF file parts with URLs`});return{type:`file`,file:{filename:e.filename??`part-${t}.pdf`,file_data:`data:application/pdf;base64,${M(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=X(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:Pe(n.input)}})}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=>X(e.providerOptions)).find(e=>e!=null):X(t.providerOptions))??X(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)}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: ${i}`)}return{messages:n,warnings:r}}function Ie({id:e,model:t,created:n}){return O({id:e,model:t,created:n||void 0})}function Le(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`}}const Re=H(()=>W(J.object({id:J.string().nullish(),created:J.number().nullish(),model:J.string().nullish(),choices:J.array(J.object({message:J.object({role:J.literal(`assistant`).nullish(),content:J.string().nullish(),audio:J.object({transcript:J.string().nullish()}).nullish(),tool_calls:J.array(J.object({id:J.string().nullish(),type:J.literal(`function`),function:J.object({name:J.string(),arguments:J.string()})})).nullish(),annotations:J.array(J.object({type:J.literal(`url_citation`),url_citation:J.object({start_index:J.number(),end_index:J.number(),url:J.string(),title:J.string()})})).nullish()}),index:J.number(),logprobs:J.object({content:J.array(J.object({token:J.string(),logprob:J.number(),top_logprobs:J.array(J.object({token:J.string(),logprob:J.number()}))})).nullish()}).nullish(),finish_reason:J.string().nullish()})),usage:J.object({prompt_tokens:J.number().nullish(),completion_tokens:J.number().nullish(),total_tokens:J.number().nullish(),prompt_tokens_details:J.object({cached_tokens:J.number().nullish(),cache_write_tokens:J.number().nullish()}).nullish(),completion_tokens_details:J.object({reasoning_tokens:J.number().nullish(),accepted_prediction_tokens:J.number().nullish(),rejected_prediction_tokens:J.number().nullish()}).nullish()}).nullish()}))),ze=H(()=>W(J.union([J.object({id:J.string().nullish(),created:J.number().nullish(),model:J.string().nullish(),choices:J.array(J.object({delta:J.object({role:J.enum([`assistant`]).nullish(),content:J.string().nullish(),tool_calls:J.array(J.object({index:J.number(),id:J.string().nullish(),type:J.literal(`function`).nullish(),function:J.object({name:J.string().nullish(),arguments:J.string().nullish()})})).nullish(),annotations:J.array(J.object({type:J.literal(`url_citation`),url_citation:J.object({start_index:J.number(),end_index:J.number(),url:J.string(),title:J.string()})})).nullish()}).nullish(),logprobs:J.object({content:J.array(J.object({token:J.string(),logprob:J.number(),top_logprobs:J.array(J.object({token:J.string(),logprob:J.number()}))})).nullish()}).nullish(),finish_reason:J.string().nullish(),index:J.number()})),usage:J.object({prompt_tokens:J.number().nullish(),completion_tokens:J.number().nullish(),total_tokens:J.number().nullish(),prompt_tokens_details:J.object({cached_tokens:J.number().nullish(),cache_write_tokens:J.number().nullish()}).nullish(),completion_tokens_details:J.object({reasoning_tokens:J.number().nullish(),accepted_prediction_tokens:J.number().nullish(),rejected_prediction_tokens:J.number().nullish()}).nullish()}).nullish()}),ge]))),Be=H(()=>W(J.object({logitBias:J.record(J.coerce.number(),J.number()).optional(),logprobs:J.union([J.boolean(),J.number()]).optional(),parallelToolCalls:J.boolean().optional(),user:J.string().optional(),reasoningEffort:J.enum([`none`,`minimal`,`low`,`medium`,`high`,`xhigh`,`max`]).optional(),maxCompletionTokens:J.number().optional(),store:J.boolean().optional(),metadata:J.record(J.string().max(64),J.string().max(512)).optional(),prediction:J.record(J.string(),J.any()).optional(),serviceTier:J.enum([`auto`,`flex`,`priority`,`fast`,`ultrafast`,`default`]).optional(),strictJsonSchema:J.boolean().optional(),textVerbosity:J.enum([`low`,`medium`,`high`]).optional(),promptCacheKey:J.string().optional(),promptCacheOptions:J.object({mode:J.enum([`implicit`,`explicit`]).optional(),ttl:J.literal(`30m`).optional()}).optional(),promptCacheRetention:J.enum([`in_memory`,`24h`]).optional(),safetyIdentifier:J.string().optional(),systemMessageMode:J.enum([`system`,`developer`,`remove`]).optional(),forceReasoning:J.boolean().optional()})));function Ve(e){let t=!1,n=!1,r=o(e,!0),i=[];return t&&i.push({type:`compatibility`,feature:`JSON Schema propertyNames`,details:`OpenAI does not support JSON Schema propertyNames. It was removed before sending the schema, so OpenAI will not enforce property-name constraints.`}),n&&i.push({type:`compatibility`,feature:`JSON Schema pattern with regex lookaround`,details:`OpenAI does not support regex lookaround in JSON Schema patterns. The pattern was removed before sending the schema, so OpenAI will not enforce that constraint.`}),{schema:r,warnings:i};function o(e,r=!1){let i=e.propertyNames;if(i!=null){if(typeof i==`boolean`||i.type!==`string`)throw new a({functionality:`JSON Schema propertyNames that does not use a string schema`});t=!0}let o={...e};delete o.propertyNames,o.pattern!=null&&He(o.pattern)&&(delete o.pattern,n=!0),o.properties!=null&&(o.properties=l(o.properties)),o.patternProperties!=null&&(o.patternProperties=l(o.patternProperties)),o.additionalProperties!=null&&(o.additionalProperties=u(o.additionalProperties)),o.additionalItems!=null&&(o.additionalItems=u(o.additionalItems)),o.items!=null&&(o.items=Array.isArray(o.items)?o.items.map(u):u(o.items)),o.contains!=null&&(o.contains=u(o.contains)),o.not!=null&&(o.not=u(o.not)),o.allOf!=null&&(o.allOf=o.allOf.map(u)),o.anyOf!=null&&(o.anyOf=o.anyOf.map(u)),o.oneOf!=null&&(o.oneOf=o.oneOf.map(u)),o.definitions!=null&&(o.definitions=l(o.definitions)),o.$defs!=null&&(o.$defs=l(o.$defs)),o.dependencies!=null&&(o.dependencies=Object.fromEntries(Object.entries(o.dependencies).map(([e,t])=>[e,Array.isArray(t)?t:u(t)])));for(let e of[`if`,`then`,`else`]){let t=o[e];t!=null&&(o[e]=u(t))}let d=s(o);if(d==null)return o;let{allOf:f,...p}=o;if(!r)return{...p,$ref:d};let m=c(d,o);return m==null?o:{...m,...p}}function s(e){if(e.allOf?.length!==1)return;let[t]=e.allOf;return typeof t==`object`&&t&&Object.keys(t).length===1&&typeof t.$ref==`string`?t.$ref:void 0}function c(e,t){let n=/^#\/(definitions|\$defs)\/(.+)$/.exec(e);if(n==null)return;let[,r,i]=n,a=i.replace(/~1/g,`/`).replace(/~0/g,`~`),o=r===`definitions`?t.definitions?.[a]:t.$defs?.[a];return typeof o==`object`&&o?o:void 0}function l(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,u(t)]))}function u(e){return typeof e==`boolean`?e:o(e)}}function He(e){let t=!1,n=!1;for(let r=0;r<e.length;r++){let i=e[r];if(t){t=!1;continue}if(i===`\\`){t=!0;continue}if(i===`[`){n=!0;continue}if(i===`]`){n=!1;continue}if(!n&&i===`(`&&e[r+1]===`?`){let t=e[r+2];if(t===`=`||t===`!`||t===`<`&&(e[r+3]===`=`||e[r+3]===`!`))return!0}}return!1}function Ue({tools:e,toolChoice:t}){e=e?.length?e:void 0;let n=[];if(e==null)return{tools:void 0,toolChoice:void 0,toolWarnings:n};let r=[];for(let t of e)switch(t.type){case`function`:{let e=Ve(t.inputSchema);n.push(...e.warnings),r.push({type:`function`,function:{name:t.name,description:t.description,parameters:e.schema,...t.strict==null?{}:{strict:t.strict}}});break}default:n.push({type:`unsupported`,feature:`tool type: ${t.type}`})}if(t==null)return{tools:r,toolChoice:void 0,toolWarnings:n};let i=t.type;switch(i){case`auto`:case`none`:case`required`:return{tools:r,toolChoice:i,toolWarnings:n};case`tool`:return{tools:r,toolChoice:{type:`function`,function:{name:t.toolName}},toolWarnings:n};default:throw new a({functionality:`tool choice type: ${i}`})}}var We=class e{static[q](e){return B({modelId:e.modelId,config:e.config})}static[K](t){return new e(t.modelId,t.config)}constructor(e,t){this.specificationVersion=`v4`,this.supportedUrls={"image/*":[/^https?:\/\/.*$/]},this.modelId=e,this.config=t}get provider(){return this.config.provider}async getArgs({prompt:e,maxOutputTokens:t,temperature:n,topP:r,topK:i,frequencyPenalty:a,presencePenalty:o,stopSequences:s,responseFormat:c,seed:l,tools:u,toolChoice:d,reasoning:f,providerOptions:p}){let m=[],h=await V({provider:`openai`,providerOptions:p,schema:Be})??{},g=_e(this.modelId),_=h.reasoningEffort??(me(f)?f:void 0);_!=null&&g.supportedReasoningEfforts!=null&&!g.supportedReasoningEfforts.includes(_)&&(m.push({type:`unsupported`,feature:`reasoningEffort`,details:`${this.modelId} only supports the following reasoning efforts: ${g.supportedReasoningEfforts.join(`, `)}`}),_=void 0);let v=h.forceReasoning??g.isReasoningModel;i!=null&&m.push({type:`unsupported`,feature:`topK`}),p?.openai?.reasoningSummary!=null&&m.push({type:`unsupported`,feature:`reasoningSummary`,details:`reasoningSummary is only supported by the Responses API, not the Chat Completions API`});let{messages:y,warnings:b}=Fe({prompt:e,systemMessageMode:h.systemMessageMode??(v?`developer`:g.systemMessageMode)});m.push(...b);let x=h.strictJsonSchema??!0,S=c?.type===`json`&&c.schema!=null?Ve(c.schema):void 0;S!=null&&m.push(...S.warnings);let C={model:this.modelId,logit_bias:h.logitBias,logprobs:h.logprobs===!0||typeof h.logprobs==`number`||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`?S==null?{type:`json_object`}:{type:`json_schema`,json_schema:{schema:S.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_options:h.promptCacheOptions,prompt_cache_retention:h.promptCacheRetention,safety_identifier:h.safetyIdentifier,messages:y};g.supportedReasoningEfforts!=null&&C.prompt_cache_retention!=null&&(C.prompt_cache_retention=void 0,m.push({type:`unsupported`,feature:`promptCacheRetention`,details:`promptCacheRetention is not supported by GPT-6 and later models; use promptCacheOptions instead`})),v?((_!==`none`||!g.supportsNonReasoningParameters)&&(C.temperature!=null&&(C.temperature=void 0,m.push({type:`unsupported`,feature:`temperature`,details:`temperature is not supported for reasoning models`})),C.top_p!=null&&(C.top_p=void 0,m.push({type:`unsupported`,feature:`topP`,details:`topP is not supported for reasoning models`})),C.logprobs!=null&&(C.logprobs=void 0,m.push({type:`other`,message:`logprobs is not supported for reasoning models`}))),C.frequency_penalty!=null&&(C.frequency_penalty=void 0,m.push({type:`unsupported`,feature:`frequencyPenalty`,details:`frequencyPenalty is not supported for reasoning models`})),C.presence_penalty!=null&&(C.presence_penalty=void 0,m.push({type:`unsupported`,feature:`presencePenalty`,details:`presencePenalty is not supported for reasoning models`})),C.logit_bias!=null&&(C.logit_bias=void 0,m.push({type:`other`,message:`logitBias is not supported for reasoning models`})),C.top_logprobs!=null&&(C.top_logprobs=void 0,m.push({type:`other`,message:`topLogprobs is not supported for reasoning models`})),C.max_tokens!=null&&(C.max_completion_tokens??=C.max_tokens,C.max_tokens=void 0)):(this.modelId.startsWith(`gpt-4o-search-preview`)||this.modelId.startsWith(`gpt-4o-mini-search-preview`))&&C.temperature!=null&&(C.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`}),C.service_tier=void 0),(h.serviceTier===`priority`||h.serviceTier===`fast`)&&!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`}),C.service_tier=void 0);let{tools:w,toolChoice:T,toolWarnings:E}=Ue({tools:u,toolChoice:d});return{args:{...C,tools:w,tool_choice:T},warnings:[...m,...E]}}async doGenerate(e){let{args:t,warnings:n}=await this.getArgs(e),{responseHeaders:i,value:a,rawValue:o}=await I({url:this.config.url({path:`/chat/completions`,modelId:this.modelId}),headers:E(this.config.headers?.(),e.headers),body:t,failedResponseHandler:Y,successfulResponseHandler:G(Re),abortSignal:e.abortSignal,fetch:this.config.fetch}),s=a.choices[0];if(s==null)throw new r({data:o,message:`Response did not contain any choices.`});let c=[],l=s.message.content!=null&&s.message.content.length>0?s.message.content:s.message.audio?.transcript;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||g(),toolName:e.function.name,input:e.function.arguments});for(let e of s.message.annotations??[])c.push({type:`source`,sourceType:`url`,id:g(),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:Le(s.finish_reason),raw:s.finish_reason??void 0},usage:Ne(a.usage),request:{body:t},response:{...Ie(a),headers:i,body:o},warnings:n,providerMetadata:d}}async doStream(e){let{args:t,warnings:n}=await this.getArgs(e),r={...t,stream:!0,stream_options:{include_usage:!0}},i=this.config.url({path:`/chat/completions`,modelId:this.modelId}),{responseHeaders:a,value:o}=await I({url:i,headers:E(this.config.headers?.(),e.headers),body:r,failedResponseHandler:Y,successfulResponseHandler:te(ze),abortSignal:e.abortSignal,fetch:this.config.fetch}),s=await xe({stream:o,getError:e=>`error`in e?e.error:void 0,isOutputChunk:Ge,url:i,requestBodyValues:r,responseHeaders:a}),c,l={unified:`other`,raw:void 0},u,d=!1,f=!1,p={openai:{}};return{stream:s.pipeThrough(new TransformStream({start(e){c=new ae(e,{generateId:g,typeValidation:`if-present`}),e.enqueue({type:`stream-start`,warnings:n})},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:be(r.error)??r.error});return}if(!d){let e=Ie(r);Object.values(e).some(Boolean)&&(d=!0,n.enqueue({type:`response-metadata`,...Ie(r)}))}r.usage!=null&&(u=r.usage,r.usage.completion_tokens_details?.accepted_prediction_tokens!=null&&(p.openai.acceptedPredictionTokens=r.usage.completion_tokens_details?.accepted_prediction_tokens),r.usage.completion_tokens_details?.rejected_prediction_tokens!=null&&(p.openai.rejectedPredictionTokens=r.usage.completion_tokens_details?.rejected_prediction_tokens));let i=r.choices[0];if(i?.finish_reason!=null&&(l={unified:Le(i.finish_reason),raw:i.finish_reason}),i?.logprobs?.content!=null&&(p.openai.logprobs=i.logprobs.content),i?.delta==null)return;let a=i.delta;if(a.content!=null&&(f||=(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)c.processDelta(e);if(a.annotations!=null)for(let e of a.annotations)n.enqueue({type:`source`,sourceType:`url`,id:g(),url:e.url_citation.url,title:e.url_citation.title})},flush(e){f&&e.enqueue({type:`text-end`,id:`0`}),c.flush(),e.enqueue({type:`finish`,finishReason:l,usage:Ne(u),...p==null?{}:{providerMetadata:p}})}})),request:{body:r},response:{headers:a}}}};function Ge(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 Ke(e){if(e==null)return fe();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 qe({prompt:e,user:t=`user`,assistant:r=`assistant`}){let i=``;e[0].role===`system`&&(i+=`${e[0].content}\n\n`,e=e.slice(1));for(let{role:o,content:s}of e)switch(o){case`system`:throw new n({message:"Unexpected system message in prompt: ${content}",prompt:e});case`user`:{let e=s.map(e=>{if(e.type===`text`)return e.text}).filter(Boolean).join(``);i+=`${t}:\n${e}\n\n`;break}case`assistant`:{let e=s.map(e=>{switch(e.type){case`text`:return e.text;case`tool-call`:throw new a({functionality:`tool-call messages`})}}).join(``);i+=`${r}:\n${e}\n\n`;break}case`tool`:throw new a({functionality:`tool messages`});default:throw Error(`Unsupported role: ${o}`)}return i+=`${r}:\n`,{prompt:i,stopSequences:[`\n${t}:`]}}function Je(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`}}const Ye=H(()=>W(J.object({id:J.string().nullish(),created:J.number().nullish(),model:J.string().nullish(),choices:J.array(J.object({text:J.string(),finish_reason:J.string(),logprobs:J.object({tokens:J.array(J.string()),token_logprobs:J.array(J.number()),top_logprobs:J.array(J.record(J.string(),J.number())).nullish()}).nullish()})),usage:J.object({prompt_tokens:J.number(),completion_tokens:J.number(),total_tokens:J.number()}).nullish()}))),Xe=H(()=>W(J.union([J.object({id:J.string().nullish(),created:J.number().nullish(),model:J.string().nullish(),choices:J.array(J.object({text:J.string(),finish_reason:J.string().nullish(),index:J.number(),logprobs:J.object({tokens:J.array(J.string()),token_logprobs:J.array(J.number()),top_logprobs:J.array(J.record(J.string(),J.number())).nullish()}).nullish()})),usage:J.object({prompt_tokens:J.number(),completion_tokens:J.number(),total_tokens:J.number()}).nullish()}),ge]))),Ze=H(()=>W(J.object({echo:J.boolean().optional(),logitBias:J.record(J.string(),J.number()).optional(),suffix:J.string().optional(),user:J.string().optional(),logprobs:J.union([J.boolean(),J.number()]).optional()})));var Qe=class e{get providerOptionsName(){return this.config.provider.split(`.`)[0].trim()}static[q](e){return B({modelId:e.modelId,config:e.config})}static[K](t){return new e(t.modelId,t.config)}constructor(e,t){this.specificationVersion=`v4`,this.supportedUrls={},this.modelId=e,this.config=t}get provider(){return this.config.provider}async getArgs({prompt:e,maxOutputTokens:t,temperature:n,topP:r,topK:i,frequencyPenalty:a,presencePenalty:o,stopSequences:s,responseFormat:c,tools:l,toolChoice:u,seed:d,providerOptions:f}){let p=[],m={...await V({provider:`openai`,providerOptions:f,schema:Ze}),...await V({provider:this.providerOptionsName,providerOptions:f,schema:Ze})};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}=qe({prompt:e}),_=[...g??[],...s??[]];return{args:{model:this.modelId,echo:m.echo,logit_bias:m.logitBias,logprobs:m?.logprobs===!0?0:m?.logprobs===!1?void 0:m?.logprobs,suffix:m.suffix,user:m.user,max_tokens:t,temperature:n,top_p:r,frequency_penalty:a,presence_penalty:o,seed:d,prompt:h,stop:_.length>0?_:void 0},warnings:p}}async doGenerate(e){let{args:t,warnings:n}=await this.getArgs(e),{responseHeaders:r,value:i,rawValue:a}=await I({url:this.config.url({path:`/completions`,modelId:this.modelId}),headers:E(this.config.headers?.(),e.headers),body:t,failedResponseHandler:Y,successfulResponseHandler:G(Ye),abortSignal:e.abortSignal,fetch:this.config.fetch}),o=i.choices[0],s={openai:{}};return o.logprobs!=null&&(s.openai.logprobs=o.logprobs),{content:[{type:`text`,text:o.text}],usage:Ke(i.usage),finishReason:{unified:Je(o.finish_reason),raw:o.finish_reason??void 0},request:{body:t},response:{...O(i),headers:r,body:a},providerMetadata:s,warnings:n}}async doStream(e){let{args:t,warnings:n}=await this.getArgs(e),r={...t,stream:!0,stream_options:{include_usage:!0}},i=this.config.url({path:`/completions`,modelId:this.modelId}),{responseHeaders:a,value:o}=await I({url:i,headers:E(this.config.headers?.(),e.headers),body:r,failedResponseHandler:Y,successfulResponseHandler:te(Xe),abortSignal:e.abortSignal,fetch:this.config.fetch}),s=await xe({stream:o,getError:e=>`error`in e?e.error:void 0,isOutputChunk:$e,url:i,requestBodyValues:r,responseHeaders:a}),c={unified:`other`,raw:void 0},l={openai:{}},u,d=!0;return{stream:s.pipeThrough(new TransformStream({start(e){e.enqueue({type:`stream-start`,warnings:n})},transform(t,n){if(e.includeRawChunks&&n.enqueue({type:`raw`,rawValue:t.rawValue}),!t.success){c={unified:`error`,raw:void 0},n.enqueue({type:`error`,error:t.error});return}let r=t.value;if(`error`in r){c={unified:`error`,raw:void 0},n.enqueue({type:`error`,error:be(r.error)??r.error});return}d&&(d=!1,n.enqueue({type:`response-metadata`,...O(r)}),n.enqueue({type:`text-start`,id:`0`})),r.usage!=null&&(u=r.usage);let i=r.choices[0];i?.finish_reason!=null&&(c={unified:Je(i.finish_reason),raw:i.finish_reason}),i?.logprobs!=null&&(l.openai.logprobs=i.logprobs),i?.text!=null&&i.text.length>0&&n.enqueue({type:`text-delta`,id:`0`,delta:i.text})},flush(e){d||e.enqueue({type:`text-end`,id:`0`}),e.enqueue({type:`finish`,finishReason:c,providerMetadata:l,usage:Ke(u)})}})),request:{body:r},response:{headers:a}}}};function $e(e){return!(`error`in e)&&e.choices.some(e=>e.text.length>0)}const et=H(()=>W(J.object({dimensions:J.number().optional(),user:J.string().optional()}))),tt=H(()=>W(J.object({data:J.array(J.object({embedding:J.array(J.number())})),usage:J.object({prompt_tokens:J.number()}).nullish()})));var nt=class e{static[q](e){return B({modelId:e.modelId,config:e.config})}static[K](t){return new e(t.modelId,t.config)}get provider(){return this.config.provider}constructor(e,t){this.specificationVersion=`v4`,this.maxEmbeddingsPerCall=2048,this[ce]=3e5,this.supportsParallelCalls=!0,this.modelId=e,this.config=t}async doEmbed({values:e,headers:t,abortSignal:n,providerOptions:r}){if(e.length>this.maxEmbeddingsPerCall)throw new i({provider:this.provider,modelId:this.modelId,maxEmbeddingsPerCall:this.maxEmbeddingsPerCall,values:e});let a=await V({provider:`openai`,providerOptions:r,schema:et})??{},{responseHeaders:o,value:s,rawValue:c}=await I({url:this.config.url({path:`/embeddings`,modelId:this.modelId}),headers:E(this.config.headers?.(),t),body:{model:this.modelId,input:e,encoding_format:`float`,dimensions:a.dimensions,user:a.user},failedResponseHandler:Y,successfulResponseHandler:G(tt),abortSignal:n,fetch:this.config.fetch});return{warnings:[],embeddings:s.data.map(e=>e.embedding),usage:s.usage?{tokens:s.usage.prompt_tokens}:void 0,response:{headers:o,body:c}}}};const rt=H(()=>W(J.object({id:J.string(),object:J.string().nullish(),bytes:J.number().nullish(),created_at:J.number().nullish(),filename:J.string().nullish(),purpose:J.string().nullish(),status:J.string().nullish(),expires_at:J.number().nullish()}))),it=H(()=>W(J.object({id:J.string(),object:J.string().nullish(),deleted:J.boolean()}))),at=H(()=>W(J.object({purpose:J.string().optional(),expiresAfter:J.number().optional()})));function ot(e){let t=encodeURIComponent(e);return t===`.`?`%252E`:t===`..`?`%252E%252E`:t}var st=class{get provider(){return this.config.provider}constructor(e){this.config=e,this.specificationVersion=`v4`}getFileId(e){let n=e.openai;if(n==null||n.trim()===``)throw new t({argument:`file`,message:`file reference is missing an 'openai' file id.`});return n}getHeaders(e){return E(this.config.headers(),e)}async uploadFile({data:e,mediaType:t,filename:n,abortSignal:r,headers:i,providerOptions:a}){let o;try{o=await V({provider:`openai`,providerOptions:a,schema:at})}catch(t){throw e.type===`stream`&&await e.stream.cancel(t).catch(()=>{}),t}let s=o?.purpose??`assistants`,c=this.getHeaders(i),l=`${this.config.baseURL}/files`,u;if(e.type===`stream`){let i=[{type:`field`,name:`purpose`,value:s}];o?.expiresAfter!=null&&i.push({type:`field`,name:`expires_after[anchor]`,value:`created_at`},{type:`field`,name:`expires_after[seconds]`,value:String(o.expiresAfter)}),i.push({type:`file`,name:`file`,filename:n,mediaType:t,content:e.stream}),{value:u}=await D({url:l,headers:c,parts:i,failedResponseHandler:Y,successfulResponseHandler:G(rt),abortSignal:r,fetch:this.config.fetch})}else{let i=L(e),a=new Blob([i],{type:t}),d=new FormData;n==null?d.append(`file`,a):d.append(`file`,a,n),d.append(`purpose`,s),o?.expiresAfter!=null&&(d.append(`expires_after[anchor]`,`created_at`),d.append(`expires_after[seconds]`,String(o.expiresAfter))),{value:u}=await oe({url:l,headers:c,formData:d,failedResponseHandler:Y,successfulResponseHandler:G(rt),abortSignal:r,fetch:this.config.fetch})}return{warnings:[],providerReference:{openai:u.id},...u.filename??n?{filename:u.filename??n}:{},...t==null?{}:{mediaType:t},...u.bytes==null?{}:{byteSize:u.bytes},...u.created_at==null?{}:{createdAt:new Date(u.created_at*1e3)},...u.expires_at==null?{}:{expiresAt:new Date(u.expires_at*1e3)},providerMetadata:{openai:this.toFileMetadata(u)}}}async getFileMetadata({file:e,abortSignal:t,headers:n}){let r=this.getFileId(e),{value:i}=await f({url:`${this.config.baseURL}/files/${ot(r)}`,headers:this.getHeaders(n),failedResponseHandler:Y,successfulResponseHandler:G(rt),abortSignal:t,fetch:this.config.fetch,validateUrl:!1});return{warnings:[],providerReference:{openai:i.id},...i.filename==null?{}:{filename:i.filename},...i.bytes==null?{}:{byteSize:i.bytes},...i.created_at==null?{}:{createdAt:new Date(i.created_at*1e3)},...i.expires_at==null?{}:{expiresAt:new Date(i.expires_at*1e3)},providerMetadata:{openai:this.toFileMetadata(i)}}}async downloadFile({file:e,abortSignal:t,headers:n}){let r=this.getFileId(e),{value:i,responseHeaders:a}=await f({url:`${this.config.baseURL}/files/${ot(r)}/content`,headers:this.getHeaders(n),failedResponseHandler:Y,successfulResponseHandler:ne(),abortSignal:t,fetch:this.config.fetch,validateUrl:!1}),o=a?.[`content-type`]?.split(`;`)[0].trim();return{warnings:[],content:i,...o?{mediaType:o}:{}}}async deleteFile({file:e,abortSignal:t,headers:n}){let r=this.getFileId(e),{value:i}=await h({url:`${this.config.baseURL}/files/${ot(r)}`,headers:this.getHeaders(n),failedResponseHandler:Y,successfulResponseHandler:G(it),abortSignal:t,fetch:this.config.fetch});return{warnings:[],providerReference:{openai:i.id},deleted:i.deleted}}toFileMetadata(e){return{...e.filename==null?{}:{filename:e.filename},...e.purpose==null?{}:{purpose:e.purpose},...e.bytes==null?{}:{bytes:e.bytes},...e.created_at==null?{}:{createdAt:e.created_at},...e.status==null?{}:{status:e.status},...e.expires_at==null?{}:{expiresAt:e.expires_at}}}};const ct=H(()=>W(J.object({created:J.number().nullish(),data:J.array(J.object({b64_json:J.string(),revised_prompt:J.string().nullish()})),background:J.string().nullish(),output_format:J.string().nullish(),size:J.string().nullish(),quality:J.string().nullish(),usage:J.object({input_tokens:J.number().nullish(),output_tokens:J.number().nullish(),total_tokens:J.number().nullish(),input_tokens_details:J.object({image_tokens:J.number().nullish(),text_tokens:J.number().nullish()}).nullish()}).nullish()}))),lt={"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,"gpt-image-2.5-flare":10,"gpt-image-2.5-flare-2026-09-08":10,"gpt-image-2.5-sunburst":10,"gpt-image-2.5-sunburst-2026-09-08":10,"chatgpt-image-latest":10},ut=[`chatgpt-image-`,`gpt-image-`];function dt(e){return ut.some(t=>e.startsWith(t))}function ft(e){return lt[e]??(e.startsWith(`gpt-image-`)?10:1)}const pt=J.object({quality:J.enum([`standard`,`hd`,`low`,`medium`,`high`,`xhigh`,`max`,`auto`]).optional(),background:J.enum([`transparent`,`opaque`,`auto`]).optional(),outputFormat:J.enum([`png`,`jpeg`,`webp`]).optional(),outputCompression:J.number().int().min(0).max(100).optional(),user:J.string().optional()});H(()=>W(pt));const mt=H(()=>W(pt.extend({style:J.enum([`vivid`,`natural`]).optional(),moderation:J.enum([`auto`,`low`]).optional()}))),ht=H(()=>W(pt.extend({inputFidelity:J.enum([`high`,`low`]).optional()})));var gt=class e{static[q](e){return B({modelId:e.modelId,config:e.config})}static[K](t){return new e(t.modelId,t.config)}get maxImagesPerCall(){return ft(this.modelId)}get supportsFileInputs(){return this.config.imageInputCapabilities==null?[`dall-e-2`,`gpt-image-1`,`gpt-image-1-mini`,`gpt-image-1.5`,`gpt-image-2`,`gpt-image-2.5-flare`,`gpt-image-2.5-flare-2026-09-08`,`gpt-image-2.5-sunburst`,`gpt-image-2.5-sunburst-2026-09-08`,`chatgpt-image-latest`].includes(this.modelId)?!0:this.modelId!==`dall-e-3`&&void 0:this.config.imageInputCapabilities.supportsFileInputs}get supportsMaskInputs(){return this.config.imageInputCapabilities==null?this.supportsFileInputs:this.config.imageInputCapabilities.supportsMaskInputs}get provider(){return this.config.provider}constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion=`v4`}async doGenerate({prompt:e,files:t,mask:n,n:r,size:i,aspectRatio:a,seed:o,providerOptions:s,headers:l,abortSignal:u}){let d=[];a!=null&&d.push({type:`unsupported`,feature:`aspectRatio`,details:"This model does not support aspect ratio. Use `size` instead."}),o!=null&&d.push({type:`unsupported`,feature:`seed`});let f=this.config._internal?.currentDate?.()??new Date;if(t!=null){let a=await V({provider:`openai`,providerOptions:s,schema:ht})??{},{value:o,responseHeaders:p}=await oe({url:this.config.url({path:`/images/edits`,modelId:this.modelId}),headers:E(this.config.headers?.(),l),formData:ee({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([A(e.data)],{type:e.mediaType})],{type:e.mediaType}):c(e.url,{abortSignal:u}))),mask:n==null?void 0:await vt(n,u),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:Y,successfulResponseHandler:G(ct),abortSignal:u,fetch:this.config.fetch});return{images:o.data.map(e=>e.b64_json),warnings:d,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:f,modelId:this.modelId,headers:p},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,..._t(o.usage?.input_tokens_details,t,o.data.length)}))}}}}let p=await V({provider:`openai`,providerOptions:s,schema:mt})??{},{value:m,responseHeaders:h}=await I({url:this.config.url({path:`/images/generations`,modelId:this.modelId}),headers:E(this.config.headers?.(),l),body:{model:this.modelId,prompt:e,n:r,size:i,quality:p.quality,style:p.style,background:p.background,moderation:p.moderation,output_format:p.outputFormat,output_compression:p.outputCompression,user:p.user,...dt(this.modelId)?{}:{response_format:`b64_json`}},failedResponseHandler:Y,successfulResponseHandler:G(ct),abortSignal:u,fetch:this.config.fetch});return{images:m.data.map(e=>e.b64_json),warnings:d,usage:m.usage==null?void 0:{inputTokens:m.usage.input_tokens??void 0,outputTokens:m.usage.output_tokens??void 0,totalTokens:m.usage.total_tokens??void 0},response:{timestamp:f,modelId:this.modelId,headers:h},providerMetadata:{openai:{images:m.data.map((e,t)=>({...e.revised_prompt?{revisedPrompt:e.revised_prompt}:{},created:m.created??void 0,size:m.size??void 0,quality:m.quality??void 0,background:m.background??void 0,outputFormat:m.output_format??void 0,..._t(m.usage?.input_tokens_details,t,m.data.length)}))}}}}};function _t(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 vt(e,t){if(!e)return;if(e.type===`url`)return c(e.url,{abortSignal:t});let n=e.data instanceof Uint8Array?e.data:A(e.data);return new Blob([n],{type:e.mediaType})}const yt=H(()=>W(J.object({callId:J.string(),operation:J.discriminatedUnion(`type`,[J.object({type:J.literal(`create_file`),path:J.string(),diff:J.string()}),J.object({type:J.literal(`delete_file`),path:J.string()}),J.object({type:J.literal(`update_file`),path:J.string(),diff:J.string()})])}))),bt=H(()=>W(J.object({status:J.enum([`completed`,`failed`]),output:J.string().optional()})));H(()=>W(J.object({})));const xt=l({id:`openai.apply_patch`,inputSchema:yt,outputSchema:bt}),St=H(()=>W(J.object({code:J.string().nullish(),containerId:J.string()}))),Ct=H(()=>W(J.object({outputs:J.array(J.discriminatedUnion(`type`,[J.object({type:J.literal(`logs`),logs:J.string()}),J.object({type:J.literal(`image`),url:J.string()})])).nullish()}))),wt=H(()=>W(J.object({container:J.union([J.string(),J.object({fileIds:J.array(J.string()).optional()})]).optional()}))),Tt=U({id:`openai.code_interpreter`,inputSchema:St,outputSchema:Ct}),Et=(e={})=>Tt(e),Dt=J.object({id:J.string(),code:J.string().optional(),message:J.string().optional()}),Ot=J.discriminatedUnion(`type`,[J.object({type:J.literal(`click`),button:J.enum([`left`,`right`,`wheel`,`back`,`forward`]),x:J.number(),y:J.number(),keys:J.array(J.string()).optional()}),J.object({type:J.literal(`double_click`),x:J.number(),y:J.number(),keys:J.array(J.string()).optional()}),J.object({type:J.literal(`drag`),path:J.array(J.object({x:J.number(),y:J.number()})),keys:J.array(J.string()).optional()}),J.object({type:J.literal(`keypress`),keys:J.array(J.string())}),J.object({type:J.literal(`move`),x:J.number(),y:J.number(),keys:J.array(J.string()).optional()}),J.object({type:J.literal(`screenshot`)}),J.object({type:J.literal(`scroll`),x:J.number(),y:J.number(),scrollX:J.number(),scrollY:J.number(),keys:J.array(J.string()).optional()}),J.object({type:J.literal(`type`),text:J.string()}),J.object({type:J.literal(`wait`)})]),kt=H(()=>W(J.object({actions:J.array(Ot),pendingSafetyChecks:J.array(Dt),status:J.enum([`in_progress`,`completed`,`incomplete`])}))),At=H(()=>W(J.object({output:J.union([J.object({type:J.literal(`computer_screenshot`),imageUrl:J.string(),fileId:J.string().optional(),detail:J.enum([`auto`,`low`,`high`,`original`]).optional()}),J.object({type:J.literal(`computer_screenshot`),fileId:J.string(),imageUrl:J.string().optional(),detail:J.enum([`auto`,`low`,`high`,`original`]).optional()})]),acknowledgedSafetyChecks:J.array(Dt).optional()}))),jt=l({id:`openai.computer`,inputSchema:kt,outputSchema:At}),Mt=(e={})=>jt(e),Nt=H(()=>W(J.object({description:J.string().optional(),async:J.boolean().optional(),format:J.union([J.object({type:J.literal(`grammar`),syntax:J.enum([`regex`,`lark`]),definition:J.string()}),J.object({type:J.literal(`text`)})]).optional()}))),Pt=H(()=>W(J.string())),Ft=v({id:`openai.custom`,inputSchema:Pt}),It=e=>Ft(e),Lt=J.object({key:J.string(),type:J.enum([`eq`,`ne`,`gt`,`gte`,`lt`,`lte`,`in`,`nin`]),value:J.union([J.string(),J.number(),J.boolean(),J.array(J.string())])}),Rt=J.object({type:J.enum([`and`,`or`]),filters:J.array(J.union([Lt,J.lazy(()=>Rt)]))}),zt=H(()=>W(J.object({vectorStoreIds:J.array(J.string()),maxNumResults:J.number().optional(),ranking:J.object({ranker:J.string().optional(),scoreThreshold:J.number().optional()}).optional(),filters:J.union([Lt,Rt]).optional()}))),Bt=H(()=>W(J.object({queries:J.array(J.string()),results:J.array(J.object({attributes:J.record(J.string(),J.unknown()),fileId:J.string(),filename:J.string(),score:J.number(),text:J.string()})).nullable()}))),Vt=U({id:`openai.file_search`,inputSchema:J.object({}),outputSchema:Bt}),Ht=H(()=>W(J.object({action:J.enum([`generate`,`edit`,`auto`]).optional(),background:J.enum([`auto`,`opaque`,`transparent`]).optional(),inputFidelity:J.enum([`low`,`high`]).optional(),inputImageMask:J.object({fileId:J.string().optional(),imageUrl:J.string().optional()}).optional(),model:J.string().optional(),moderation:J.enum([`auto`,`low`]).optional(),outputCompression:J.number().int().min(0).max(100).optional(),outputFormat:J.enum([`png`,`jpeg`,`webp`]).optional(),partialImages:J.number().int().min(0).max(3).optional(),quality:J.enum([`auto`,`low`,`medium`,`high`,`xhigh`,`max`]).optional(),size:J.union([J.enum([`1024x1024`,`1024x1536`,`1536x1024`,`auto`]),J.string().regex(/^\d+x\d+$/)]).optional()}).strict())),Ut=H(()=>W(J.object({}))),Wt=H(()=>W(J.object({result:J.string()}))),Gt=U({id:`openai.image_generation`,inputSchema:Ut,outputSchema:Wt}),Kt=(e={})=>Gt(e),qt=H(()=>W(J.object({action:J.object({type:J.literal(`exec`),command:J.array(J.string()),timeoutMs:J.number().optional(),user:J.string().optional(),workingDirectory:J.string().optional(),env:J.record(J.string(),J.string()).optional()})}))),Jt=H(()=>W(J.object({output:J.string()}))),Yt=l({id:`openai.local_shell`,inputSchema:qt,outputSchema:Jt}),Xt=H(()=>W(J.object({action:J.object({commands:J.array(J.string()),timeoutMs:J.number().optional(),maxOutputLength:J.number().optional()})}))),Zt=H(()=>W(J.object({output:J.array(J.object({stdout:J.string(),stderr:J.string(),outcome:J.discriminatedUnion(`type`,[J.object({type:J.literal(`timeout`)}),J.object({type:J.literal(`exit`),exitCode:J.number()})])}))}))),Qt=J.array(J.discriminatedUnion(`type`,[J.object({type:J.literal(`skillReference`),providerReference:J.record(J.string(),J.string()),version:J.string().optional()}),J.object({type:J.literal(`inline`),name:J.string(),description:J.string(),source:J.object({type:J.literal(`base64`),mediaType:J.literal(`application/zip`),data:J.string()})})])).optional(),$t=H(()=>W(J.object({environment:J.union([J.object({type:J.literal(`containerAuto`),fileIds:J.array(J.string()).optional(),memoryLimit:J.enum([`1g`,`4g`,`16g`,`64g`]).optional(),networkPolicy:J.discriminatedUnion(`type`,[J.object({type:J.literal(`disabled`)}),J.object({type:J.literal(`allowlist`),allowedDomains:J.array(J.string()),domainSecrets:J.array(J.object({domain:J.string(),name:J.string(),value:J.string()})).optional()})]).optional(),skills:Qt}),J.object({type:J.literal(`containerReference`),containerId:J.string()}),J.object({type:J.literal(`local`).optional(),skills:J.array(J.object({name:J.string(),description:J.string(),path:J.string()})).optional()})]).optional()}))),en=l({id:`openai.shell`,inputSchema:Xt,outputSchema:Zt}),tn=H(()=>W(J.object({execution:J.enum([`server`,`client`]).optional(),description:J.string().optional(),parameters:J.record(J.string(),J.unknown()).optional()}))),nn=H(()=>W(J.object({arguments:J.unknown().optional(),call_id:J.string().nullish()}))),rn=H(()=>W(J.object({tools:J.array(J.record(J.string(),J.unknown()))}))),an=l({id:`openai.tool_search`,inputSchema:nn,outputSchema:rn}),on=(e={})=>an(e),sn=H(()=>W(J.object({externalWebAccess:J.boolean().optional(),filters:J.object({allowedDomains:J.array(J.string()).optional(),blockedDomains:J.array(J.string()).optional()}).optional(),searchContextSize:J.enum([`low`,`medium`,`high`]).optional(),userLocation:J.object({type:J.literal(`approximate`),country:J.string().optional(),city:J.string().optional(),region:J.string().optional(),timezone:J.string().optional()}).optional()}))),cn=H(()=>W(J.object({}))),ln=H(()=>W(J.object({action:J.discriminatedUnion(`type`,[J.object({type:J.literal(`search`),query:J.string().optional(),queries:J.array(J.string()).optional()}),J.object({type:J.literal(`openPage`),url:J.string().nullish()}),J.object({type:J.literal(`findInPage`),url:J.string().nullish(),pattern:J.string().nullish()})]).optional(),sources:J.array(J.discriminatedUnion(`type`,[J.object({type:J.literal(`url`),url:J.string()}),J.object({type:J.literal(`api`),name:J.string()})])).optional()}))),un=U({id:`openai.web_search`,inputSchema:cn,outputSchema:ln}),dn=(e={})=>un(e),fn=H(()=>W(J.object({searchContextSize:J.enum([`low`,`medium`,`high`]).optional(),userLocation:J.object({type:J.literal(`approximate`),country:J.string().optional(),city:J.string().optional(),region:J.string().optional(),timezone:J.string().optional()}).optional()}))),pn=H(()=>W(J.object({}))),mn=H(()=>W(J.object({action:J.discriminatedUnion(`type`,[J.object({type:J.literal(`search`),query:J.string().optional()}),J.object({type:J.literal(`openPage`),url:J.string().nullish()}),J.object({type:J.literal(`findInPage`),url:J.string().nullish(),pattern:J.string().nullish()})]).optional()}))),hn=U({id:`openai.web_search_preview`,inputSchema:pn,outputSchema:mn}),gn=J.lazy(()=>J.union([J.string(),J.number(),J.boolean(),J.null(),J.array(gn),J.record(J.string(),gn)])),_n=H(()=>W(J.object({serverLabel:J.string(),allowedTools:J.union([J.array(J.string()),J.object({readOnly:J.boolean().optional(),toolNames:J.array(J.string()).optional()})]).optional(),authorization:J.string().optional(),connectorId:J.string().optional(),headers:J.record(J.string(),J.string()).optional(),requireApproval:J.union([J.enum([`always`,`never`]),J.object({never:J.object({toolNames:J.array(J.string()).optional()}).optional()})]).optional(),serverDescription:J.string().optional(),serverUrl:J.string().optional()}).refine(e=>e.serverUrl!=null||e.connectorId!=null,`One of serverUrl or connectorId must be provided.`))),vn=H(()=>W(J.object({}))),yn=H(()=>W(J.object({type:J.literal(`call`),serverLabel:J.string(),name:J.string(),arguments:J.string(),output:J.string().nullish(),error:J.union([J.string(),gn]).optional()}))),bn=U({id:`openai.mcp`,inputSchema:vn,outputSchema:yn}),xn=e=>bn(e),Sn=H(()=>W(J.object({code:J.string(),fingerprint:J.string()}))),Cn=H(()=>W(J.object({result:J.string(),status:J.enum([`completed`,`incomplete`])}))),wn=U({id:`openai.programmatic_tool_calling`,inputSchema:Sn,outputSchema:Cn,supportsDeferredResults:!0}),Tn={applyPatch:xt,customTool:It,codeInterpreter:Et,computer:Mt,fileSearch:Vt,imageGeneration:Kt,localShell:Yt,shell:en,webSearchPreview:hn,webSearch:dn,mcp:xn,programmaticToolCalling:()=>T(wn({}),{type:`provider`,prepareProviderOptions:e=>{let t=e?.openai;return{...e,openai:{...t,allowedCallers:[...new Set([...t?.allowedCallers??[],`programmatic`])]}}}}),toolSearch:on};function En(e){if(e==null)return fe();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 Dn({finishReason:e,hasFunctionCall:t}){switch(e){case void 0:case null:return t?`tool-calls`:`stop`;case`max_output_tokens`:return`length`;case`content_filter`:return`content-filter`;default:return t?`tool-calls`:`other`}}const Z=J.lazy(()=>J.union([J.string(),J.number(),J.boolean(),J.null(),J.array(Z),J.record(J.string(),Z.optional())])),On=J.record(J.string(),Z.optional()),kn=J.intersection(On,J.object({input_tokens:J.number(),input_tokens_details:J.intersection(On,J.object({cached_tokens:J.number().nullish(),cache_write_tokens:J.number().nullish(),orchestration_input_tokens:J.number().nullish(),orchestration_input_cached_tokens:J.number().nullish()})).nullish(),output_tokens:J.number(),output_tokens_details:J.intersection(On,J.object({reasoning_tokens:J.number().nullish(),orchestration_output_tokens:J.number().nullish()})).nullish(),total_tokens:J.number().optional()})),An=J.object({id:J.string(),code:J.string().nullish(),message:J.string().nullish()}),jn=J.discriminatedUnion(`type`,[J.object({type:J.literal(`click`),button:J.enum([`left`,`right`,`wheel`,`back`,`forward`]),x:J.number(),y:J.number(),keys:J.array(J.string()).nullish()}),J.object({type:J.literal(`double_click`),x:J.number(),y:J.number(),keys:J.array(J.string()).nullish()}),J.object({type:J.literal(`drag`),path:J.array(J.object({x:J.number(),y:J.number()})),keys:J.array(J.string()).nullish()}),J.object({type:J.literal(`keypress`),keys:J.array(J.string())}),J.object({type:J.literal(`move`),x:J.number(),y:J.number(),keys:J.array(J.string()).nullish()}),J.object({type:J.literal(`screenshot`)}),J.object({type:J.literal(`scroll`),x:J.number(),y:J.number(),scroll_x:J.number(),scroll_y:J.number(),keys:J.array(J.string()).nullish()}),J.object({type:J.literal(`type`),text:J.string()}),J.object({type:J.literal(`wait`)})]),Mn=J.object({type:J.literal(`computer_call`),id:J.string(),call_id:J.string().nullish(),status:J.enum([`in_progress`,`completed`,`incomplete`]),action:jn.nullish(),actions:J.array(jn).nullish(),pending_safety_checks:J.array(An).nullish()}),Nn=J.discriminatedUnion(`type`,[J.object({type:J.literal(`direct`)}),J.object({type:J.literal(`program`),caller_id:J.string()})]),Pn=J.object({type:J.literal(`program`),id:J.string(),call_id:J.string(),code:J.string(),fingerprint:J.string()}),Fn=J.object({type:J.literal(`program_output`),id:J.string(),call_id:J.string(),result:J.string(),status:J.enum([`completed`,`incomplete`])}),In=J.object({type:J.literal(`local_shell_call`),id:J.string(),call_id:J.string(),action:J.object({type:J.literal(`exec`),command:J.array(J.string()),timeout_ms:J.number().optional(),user:J.string().optional(),working_directory:J.string().optional(),env:J.record(J.string(),J.string()).optional()})}),Ln=J.object({type:J.literal(`error`),sequence_number:J.number(),error:J.object({type:J.string(),code:J.string().nullish(),message:J.string(),param:J.string().nullish()})}),Rn=J.object({type:J.literal(`error`),sequence_number:J.number(),code:J.string().nullish(),message:J.string(),param:J.string().nullish()}),zn=new Set([`error`,`response.apply_patch_call_operation_diff.delta`,`response.apply_patch_call_operation_diff.done`,`response.code_interpreter_call_code.delta`,`response.code_interpreter_call_code.done`,`response.completed`,`response.created`,`response.custom_tool_call_input.delta`,`response.failed`,`response.function_call_arguments.delta`,`response.function_call_arguments.done`,`response.image_generation_call.partial_image`,`response.in_progress`,`response.incomplete`,`response.output_item.added`,`response.output_item.done`,`response.output_text.annotation.added`,`response.output_text.delta`,`response.reasoning_summary_part.added`,`response.reasoning_summary_part.done`,`response.reasoning_summary_text.delta`]),Bn=new Set([`apply_patch_call`,`code_interpreter_call`,`compaction`,`computer_call`,`custom_tool_call`,`file_search_call`,`function_call`,`image_generation_call`,`local_shell_call`,`mcp_approval_request`,`mcp_call`,`mcp_list_tools`,`message`,`program`,`program_output`,`reasoning`,`shell_call`,`shell_call_output`,`tool_search_call`,`tool_search_output`,`web_search_call`]);function Vn(e){return typeof e.type!=`string`||!zn.has(e.type)?!1:e.type!==`response.output_item.added`&&e.type!==`response.output_item.done`||!x(e.item)||typeof e.item.type!=`string`||Bn.has(e.item.type)}const Hn=H(()=>W(J.union([J.object({type:J.literal(`response.output_text.delta`),item_id:J.string(),output_index:J.number().nullish(),delta:J.string(),logprobs:J.array(J.object({token:J.string(),logprob:J.number(),top_logprobs:J.array(J.object({token:J.string(),logprob:J.number()}))})).nullish()}),J.object({type:J.enum([`response.completed`,`response.incomplete`]),response:J.object({incomplete_details:J.object({reason:J.string()}).nullish(),usage:kn.nullish(),reasoning:J.object({context:J.string().nullish()}).nullish(),service_tier:J.string().nullish()})}),J.object({type:J.literal(`response.failed`),sequence_number:J.number(),response:J.object({error:J.object({code:J.string().nullish(),message:J.string()}).nullish(),incomplete_details:J.object({reason:J.string()}).nullish(),usage:kn.nullish(),reasoning:J.object({context:J.string().nullish()}).nullish(),service_tier:J.string().nullish()})}),J.object({type:J.literal(`response.created`),response:J.object({id:J.string(),created_at:J.number(),model:J.string(),service_tier:J.string().nullish()})}),J.object({type:J.literal(`response.in_progress`),response:J.object({id:J.string(),created_at:J.number(),model:J.string(),service_tier:J.string().nullish()})}),J.object({type:J.literal(`response.output_item.added`),output_index:J.number(),item:J.discriminatedUnion(`type`,[J.object({type:J.literal(`message`),id:J.string(),phase:J.enum([`commentary`,`final_answer`]).nullish()}),J.object({type:J.literal(`reasoning`),id:J.string(),encrypted_content:J.string().nullish()}),J.object({type:J.literal(`function_call`),id:J.string(),call_id:J.string(),name:J.string(),arguments:J.string(),async:J.boolean().nullish(),namespace:J.string().nullish(),caller:Nn.nullish()}),Pn,Fn,J.object({type:J.literal(`web_search_call`),id:J.string(),status:J.string()}),Mn,J.object({type:J.literal(`file_search_call`),id:J.string()}),In,J.object({type:J.literal(`image_generation_call`),id:J.string()}),J.object({type:J.literal(`code_interpreter_call`),id:J.string(),container_id:J.string(),code:J.string().nullable(),outputs:J.array(J.discriminatedUnion(`type`,[J.object({type:J.literal(`logs`),logs:J.string()}),J.object({type:J.literal(`image`),url:J.string()})])).nullable(),status:J.string()}),J.object({type:J.literal(`mcp_call`),id:J.string(),status:J.string(),approval_request_id:J.string().nullish()}),J.object({type:J.literal(`mcp_list_tools`),id:J.string()}),J.object({type:J.literal(`mcp_approval_request`),id:J.string()}),J.object({type:J.literal(`apply_patch_call`),id:J.string(),call_id:J.string(),status:J.enum([`in_progress`,`completed`]),operation:J.discriminatedUnion(`type`,[J.object({type:J.literal(`create_file`),path:J.string(),diff:J.string()}),J.object({type:J.literal(`delete_file`),path:J.string()}),J.object({type:J.literal(`update_file`),path:J.string(),diff:J.string()})])}),J.object({type:J.literal(`custom_tool_call`),id:J.string(),call_id:J.string(),name:J.string(),input:J.string(),async:J.boolean().nullish()}),J.object({type:J.literal(`shell_call`),id:J.string(),call_id:J.string(),status:J.enum([`in_progress`,`completed`,`incomplete`]),action:J.object({commands:J.array(J.string())})}),J.object({type:J.literal(`compaction`),id:J.string(),encrypted_content:J.string().nullish()}),J.object({type:J.literal(`shell_call_output`),id:J.string(),call_id:J.string(),status:J.enum([`in_progress`,`completed`,`incomplete`]),output:J.array(J.object({stdout:J.string(),stderr:J.string(),outcome:J.discriminatedUnion(`type`,[J.object({type:J.literal(`timeout`)}),J.object({type:J.literal(`exit`),exit_code:J.number()})])}))}),J.object({type:J.literal(`tool_search_call`),id:J.string(),execution:J.enum([`server`,`client`]),call_id:J.string().nullable(),status:J.enum([`in_progress`,`completed`,`incomplete`]),arguments:J.unknown()}),J.object({type:J.literal(`tool_search_output`),id:J.string(),execution:J.enum([`server`,`client`]),call_id:J.string().nullable(),status:J.enum([`in_progress`,`completed`,`incomplete`]),tools:J.array(J.record(J.string(),Z.optional()))})])}),J.object({type:J.literal(`response.output_item.done`),output_index:J.number(),item:J.discriminatedUnion(`type`,[J.object({type:J.literal(`message`),id:J.string(),phase:J.enum([`commentary`,`final_answer`]).nullish()}),J.object({type:J.literal(`reasoning`),id:J.string(),encrypted_content:J.string().nullish()}),J.object({type:J.literal(`function_call`),id:J.string(),call_id:J.string(),name:J.string(),arguments:J.string(),async:J.boolean().nullish(),status:J.enum([`in_progress`,`completed`,`incomplete`]),namespace:J.string().nullish(),caller:Nn.nullish()}),Pn,Fn,J.object({type:J.literal(`custom_tool_call`),id:J.string(),call_id:J.string(),name:J.string(),input:J.string(),async:J.boolean().nullish(),status:J.literal(`completed`)}),J.object({type:J.literal(`code_interpreter_call`),id:J.string(),code:J.string().nullable(),container_id:J.string(),outputs:J.array(J.discriminatedUnion(`type`,[J.object({type:J.literal(`logs`),logs:J.string()}),J.object({type:J.literal(`image`),url:J.string()})])).nullable()}),J.object({type:J.literal(`image_generation_call`),id:J.string(),result:J.string()}),J.object({type:J.literal(`web_search_call`),id:J.string(),status:J.string(),action:J.discriminatedUnion(`type`,[J.object({type:J.literal(`search`),query:J.string().nullish(),queries:J.array(J.string()).nullish(),sources:J.array(J.discriminatedUnion(`type`,[J.object({type:J.literal(`url`),url:J.string()}),J.object({type:J.literal(`api`),name:J.string()})])).nullish()}),J.object({type:J.literal(`open_page`),url:J.string().nullish()}),J.object({type:J.literal(`find_in_page`),url:J.string().nullish(),pattern:J.string().nullish()})]).nullish()}),J.object({type:J.literal(`file_search_call`),id:J.string(),queries:J.array(J.string()),results:J.array(J.object({attributes:J.record(J.string(),J.union([J.string(),J.number(),J.boolean()])),file_id:J.string(),filename:J.string(),score:J.number(),text:J.string()})).nullish()}),In,Mn,J.object({type:J.literal(`mcp_call`),id:J.string(),status:J.string(),arguments:J.string(),name:J.string(),server_label:J.string(),output:J.string().nullish(),error:J.union([J.string(),J.object({type:J.string().optional(),code:J.union([J.number(),J.string()]).optional(),message:J.string().optional()}).loose()]).nullish(),approval_request_id:J.string().nullish()}),J.object({type:J.literal(`mcp_list_tools`),id:J.string(),server_label:J.string(),tools:J.array(J.object({name:J.string(),description:J.string().optional(),input_schema:J.any(),annotations:J.record(J.string(),J.unknown()).optional()})),error:J.union([J.string(),J.object({type:J.string().optional(),code:J.union([J.number(),J.string()]).optional(),message:J.string().optional()}).loose()]).optional()}),J.object({type:J.literal(`mcp_approval_request`),id:J.string(),server_label:J.string(),name:J.string(),arguments:J.string(),approval_request_id:J.string().optional()}),J.object({type:J.literal(`apply_patch_call`),id:J.string(),call_id:J.string(),status:J.enum([`in_progress`,`completed`]),operation:J.discriminatedUnion(`type`,[J.object({type:J.literal(`create_file`),path:J.string(),diff:J.string()}),J.object({type:J.literal(`delete_file`),path:J.string()}),J.object({type:J.literal(`update_file`),path:J.string(),diff:J.string()})])}),J.object({type:J.literal(`shell_call`),id:J.string(),call_id:J.string(),status:J.enum([`in_progress`,`completed`,`incomplete`]),action:J.object({commands:J.array(J.string())})}),J.object({type:J.literal(`compaction`),id:J.string(),encrypted_content:J.string()}),J.object({type:J.literal(`shell_call_output`),id:J.string(),call_id:J.string(),status:J.enum([`in_progress`,`completed`,`incomplete`]),output:J.array(J.object({stdout:J.string(),stderr:J.string(),outcome:J.discriminatedUnion(`type`,[J.object({type:J.literal(`timeout`)}),J.object({type:J.literal(`exit`),exit_code:J.number()})])}))}),J.object({type:J.literal(`tool_search_call`),id:J.string(),execution:J.enum([`server`,`client`]),call_id:J.string().nullable(),status:J.enum([`in_progress`,`completed`,`incomplete`]),arguments:J.unknown()}),J.object({type:J.literal(`tool_search_output`),id:J.string(),execution:J.enum([`server`,`client`]),call_id:J.string().nullable(),status:J.enum([`in_progress`,`completed`,`incomplete`]),tools:J.array(J.record(J.string(),Z.optional()))})])}),J.object({type:J.literal(`response.function_call_arguments.delta`),item_id:J.string(),output_index:J.number(),delta:J.string()}),J.object({type:J.literal(`response.function_call_arguments.done`),item_id:J.string(),output_index:J.number(),arguments:J.string()}),J.object({type:J.literal(`response.custom_tool_call_input.delta`),item_id:J.string(),output_index:J.number(),delta:J.string()}),J.object({type:J.literal(`response.image_generation_call.partial_image`),item_id:J.string(),output_index:J.number(),partial_image_b64:J.string()}),J.object({type:J.literal(`response.code_interpreter_call_code.delta`),item_id:J.string(),output_index:J.number(),delta:J.string()}),J.object({type:J.literal(`response.code_interpreter_call_code.done`),item_id:J.string(),output_index:J.number(),code:J.string()}),J.object({type:J.literal(`response.output_text.annotation.added`),annotation:J.discriminatedUnion(`type`,[J.object({type:J.literal(`url_citation`),start_index:J.number(),end_index:J.number(),url:J.string(),title:J.string()}),J.object({type:J.literal(`file_citation`),file_id:J.string(),filename:J.string(),index:J.number()}),J.object({type:J.literal(`container_file_citation`),container_id:J.string(),file_id:J.string(),filename:J.string(),start_index:J.number(),end_index:J.number()}),J.object({type:J.literal(`file_path`),file_id:J.string(),index:J.number()})])}),J.object({type:J.literal(`response.reasoning_summary_part.added`),item_id:J.string(),output_index:J.number().nullish(),summary_index:J.number()}),J.object({type:J.literal(`response.reasoning_summary_text.delta`),item_id:J.string(),output_index:J.number().nullish(),summary_index:J.number(),delta:J.string()}),J.object({type:J.literal(`response.reasoning_summary_part.done`),item_id:J.string(),output_index:J.number().nullish(),summary_index:J.number()}),J.object({type:J.literal(`response.apply_patch_call_operation_diff.delta`),item_id:J.string(),output_index:J.number(),delta:J.string(),obfuscation:J.string().nullish()}),J.object({type:J.literal(`response.apply_patch_call_operation_diff.done`),item_id:J.string(),output_index:J.number(),diff:J.string()}),Ln,Rn,J.object({type:J.string()}).loose().refine(e=>!Vn(e),{message:`Known response chunk failed schema validation`}).transform(e=>({type:`unknown_chunk`,message:e.type}))]))),Un=H(()=>W(J.object({id:J.string().optional(),created_at:J.number().optional(),error:J.object({message:J.string(),type:J.string(),param:J.string().nullish(),code:J.string()}).nullish(),model:J.string().optional(),output:J.array(J.discriminatedUnion(`type`,[J.object({type:J.literal(`message`),role:J.literal(`assistant`),id:J.string(),phase:J.enum([`commentary`,`final_answer`]).nullish(),content:J.array(J.object({type:J.literal(`output_text`),text:J.string(),logprobs:J.array(J.object({token:J.string(),logprob:J.number(),top_logprobs:J.array(J.object({token:J.string(),logprob:J.number()}))})).nullish(),annotations:J.array(J.discriminatedUnion(`type`,[J.object({type:J.literal(`url_citation`),start_index:J.number(),end_index:J.number(),url:J.string(),title:J.string()}),J.object({type:J.literal(`file_citation`),file_id:J.string(),filename:J.string(),index:J.number()}),J.object({type:J.literal(`container_file_citation`),container_id:J.string(),file_id:J.string(),filename:J.string(),start_index:J.number(),end_index:J.number()}),J.object({type:J.literal(`file_path`),file_id:J.string(),index:J.number()})]))}))}),J.object({type:J.literal(`web_search_call`),id:J.string(),status:J.string(),action:J.discriminatedUnion(`type`,[J.object({type:J.literal(`search`),query:J.string().nullish(),queries:J.array(J.string()).nullish(),sources:J.array(J.discriminatedUnion(`type`,[J.object({type:J.literal(`url`),url:J.string()}),J.object({type:J.literal(`api`),name:J.string()})])).nullish()}),J.object({type:J.literal(`open_page`),url:J.string().nullish()}),J.object({type:J.literal(`find_in_page`),url:J.string().nullish(),pattern:J.string().nullish()})]).nullish()}),J.object({type:J.literal(`file_search_call`),id:J.string(),queries:J.array(J.string()),results:J.array(J.object({attributes:J.record(J.string(),J.union([J.string(),J.number(),J.boolean()])),file_id:J.string(),filename:J.string(),score:J.number(),text:J.string()})).nullish()}),J.object({type:J.literal(`code_interpreter_call`),id:J.string(),code:J.string().nullable(),container_id:J.string(),outputs:J.array(J.discriminatedUnion(`type`,[J.object({type:J.literal(`logs`),logs:J.string()}),J.object({type:J.literal(`image`),url:J.string()})])).nullable()}),J.object({type:J.literal(`image_generation_call`),id:J.string(),result:J.string()}),In,J.object({type:J.literal(`function_call`),call_id:J.string(),name:J.string(),arguments:J.string(),id:J.string(),async:J.boolean().nullish(),namespace:J.string().nullish(),caller:Nn.nullish()}),Pn,Fn,J.object({type:J.literal(`custom_tool_call`),call_id:J.string(),name:J.string(),input:J.string(),id:J.string(),async:J.boolean().nullish()}),Mn,J.object({type:J.literal(`reasoning`),id:J.string(),encrypted_content:J.string().nullish(),summary:J.array(J.object({type:J.literal(`summary_text`),text:J.string()}))}),J.object({type:J.literal(`mcp_call`),id:J.string(),status:J.string(),arguments:J.string(),name:J.string(),server_label:J.string(),output:J.string().nullish(),error:J.union([J.string(),J.object({type:J.string().optional(),code:J.union([J.number(),J.string()]).optional(),message:J.string().optional()}).loose()]).nullish(),approval_request_id:J.string().nullish()}),J.object({type:J.literal(`mcp_list_tools`),id:J.string(),server_label:J.string(),tools:J.array(J.object({name:J.string(),description:J.string().optional(),input_schema:J.any(),annotations:J.record(J.string(),J.unknown()).optional()})),error:J.union([J.string(),J.object({type:J.string().optional(),code:J.union([J.number(),J.string()]).optional(),message:J.string().optional()}).loose()]).optional()}),J.object({type:J.literal(`mcp_approval_request`),id:J.string(),server_label:J.string(),name:J.string(),arguments:J.string(),approval_request_id:J.string().optional()}),J.object({type:J.literal(`apply_patch_call`),id:J.string(),call_id:J.string(),status:J.enum([`in_progress`,`completed`]),operation:J.discriminatedUnion(`type`,[J.object({type:J.literal(`create_file`),path:J.string(),diff:J.string()}),J.object({type:J.literal(`delete_file`),path:J.string()}),J.object({type:J.literal(`update_file`),path:J.string(),diff:J.string()})])}),J.object({type:J.literal(`shell_call`),id:J.string(),call_id:J.string(),status:J.enum([`in_progress`,`completed`,`incomplete`]),action:J.object({commands:J.array(J.string())})}),J.object({type:J.literal(`compaction`),id:J.string(),encrypted_content:J.string()}),J.object({type:J.literal(`shell_call_output`),id:J.string(),call_id:J.string(),status:J.enum([`in_progress`,`completed`,`incomplete`]),output:J.array(J.object({stdout:J.string(),stderr:J.string(),outcome:J.discriminatedUnion(`type`,[J.object({type:J.literal(`timeout`)}),J.object({type:J.literal(`exit`),exit_code:J.number()})])}))}),J.object({type:J.literal(`tool_search_call`),id:J.string(),execution:J.enum([`server`,`client`]),call_id:J.string().nullable(),status:J.enum([`in_progress`,`completed`,`incomplete`]),arguments:J.unknown()}),J.object({type:J.literal(`tool_search_output`),id:J.string(),execution:J.enum([`server`,`client`]),call_id:J.string().nullable(),status:J.enum([`in_progress`,`completed`,`incomplete`]),tools:J.array(J.record(J.string(),Z.optional()))})])).optional(),service_tier:J.string().nullish(),reasoning:J.object({context:J.string().nullish()}).nullish(),incomplete_details:J.object({reason:J.string()}).nullish(),usage:kn.nullish()})));function Wn(e){if(e.provider==null)throw Error(`OpenAI model is missing provider after workflow deserialization.`);return{...e,provider:e.provider,url:typeof e.url==`function`?e.url:({path:t})=>{if(e.baseURL==null)throw Error(`OpenAI model is missing baseURL after workflow deserialization.`);return`${e.baseURL}${t}`},headers:typeof e.headers==`function`?e.headers:e.headers==null?void 0:()=>e.headers}}const Gn=H(()=>W(J.object({conversation:J.string().nullish(),include:J.array(J.enum([`reasoning.encrypted_content`,`file_search_call.results`,`web_search_call.results`,`message.output_text.logprobs`])).nullish(),includeWebSearchSources:J.boolean().optional(),instructions:J.string().nullish(),logprobs:J.union([J.boolean(),J.number().min(1).max(20)]).optional(),maxToolCalls:J.number().nullish(),metadata:J.any().nullish(),parallelToolCalls:J.boolean().nullish(),previousResponseId:J.string().nullish(),promptCacheKey:J.string().nullish(),promptCacheOptions:J.object({mode:J.enum([`implicit`,`explicit`]).optional(),ttl:J.literal(`30m`).optional()}).optional(),promptCacheRetention:J.enum([`in_memory`,`24h`]).nullish(),reasoningEffort:J.string().nullish(),reasoningEffortUpdate:J.enum([`none`,`low`,`medium`,`high`,`xhigh`,`max`]).optional(),reasoningMode:J.enum([`standard`,`pro`]).optional(),reasoningContext:J.enum([`auto`,`current_turn`,`all_turns`]).optional(),reasoningSummary:J.string().nullish(),safetyIdentifier:J.string().nullish(),serviceTier:J.enum([`auto`,`flex`,`priority`,`fast`,`ultrafast`,`default`]).nullish(),store:J.boolean().nullish(),passThroughUnsupportedFiles:J.boolean().optional(),strictJsonSchema:J.boolean().nullish(),textVerbosity:J.enum([`low`,`medium`,`high`]).nullish(),truncation:J.enum([`auto`,`disabled`]).nullish(),user:J.string().nullish(),systemMessageMode:J.enum([`system`,`developer`,`remove`]).optional(),forceReasoning:J.boolean().optional(),contextManagement:J.array(J.object({type:J.literal(`compaction`),compactThreshold:J.number()})).nullish(),compactionTrigger:J.boolean().optional(),allowedTools:J.object({toolNames:J.array(J.string()).min(1),mode:J.enum([`auto`,`required`]).optional()}).optional()}))),Kn=H(()=>W(J.object({reasoningEffortUpdate:J.enum([`none`,`low`,`medium`,`high`,`xhigh`,`max`]).optional()}))),qn=`parallel`;function Jn({providerOptions:e,providerOptionsName:t}){let n=e?.[t]?.parallelToolCall;if(!(!o(n)||typeof n.itemId!=`string`||typeof n.toolCallId!=`string`||typeof n.toolName!=`string`||typeof n.input!=`string`||typeof n.index!=`number`||!Number.isInteger(n.index)||typeof n.count!=`number`||!Number.isInteger(n.count)||n.index<0||n.count<=n.index))return n}function Yn({toolName:e,tools:t}){return e===qn&&!t.some(e=>e.name===qn)}async function Xn({toolCall:e,tools:t,providerOptionsName:n,itemId:r}){if(!Yn({toolName:e.toolName,tools:t}))return;let i=await N({text:e.input});if(!i.success||!o(i.value))return;let a=i.value.tool_uses;if(!Array.isArray(a)||a.length===0)return;let s=new Set(t.map(e=>e.name)),c=[];for(let[t,i]of a.entries()){if(!o(i))return;let l=i.recipient_name,u=i.parameters;if(typeof l!=`string`||!l.startsWith(`functions.`)||!o(u))return;let d=l.slice(10);if(d.length===0||!s.has(d))return;c.push({type:`tool-call`,toolCallId:`${e.toolCallId}_${t}`,toolName:d,input:JSON.stringify(u),providerMetadata:{[n]:{parallelToolCall:{itemId:r,toolCallId:e.toolCallId,toolName:e.toolName,input:e.input,index:t,count:a.length}}}})}return c}function Zn(e){return JSON.stringify(e===void 0?{}:e)}function Qn(e){return e==null?void 0:e.type===`program`?{type:`program`,caller_id:e.callerId}:e}async function $n({output:e,toolName:t,outputSchemaToolNames:n,promptCacheBreakpoint:r,providerOptionsName:i,warnings:a}){let o=n?.has(t),s=e=>r==null?e:[{type:`input_text`,text:e,prompt_cache_breakpoint:r}];switch(e.type){case`text`:case`error-text`:return s(o?JSON.stringify(e.value):e.value);case`execution-denied`:{let t=e.reason??`Tool call execution denied.`;return s(o?JSON.stringify(t):t)}case`json`:case`error-json`:return s(JSON.stringify(e.value));case`content`:return e.value.map(e=>{let t=Q(e.providerOptions,i);switch(e.type){case`text`:return{type:`input_text`,text:e.text,...t!=null&&{prompt_cache_breakpoint:t}};case`file`:{let n=m(e.mediaType),r=e.providerOptions?.[i]?.imageDetail;if(e.data.type===`reference`){let a=R({reference:e.data.reference,provider:i});return n===`image`?{type:`input_image`,file_id:a,detail:r,...t!=null&&{prompt_cache_breakpoint:t}}:{type:`input_file`,file_id:a,...t!=null&&{prompt_cache_breakpoint:t}}}if(e.data.type===`data`){let i=j({part:e});return n===`image`?{type:`input_image`,image_url:`data:${i};base64,${M(e.data.data)}`,detail:r,...t!=null&&{prompt_cache_breakpoint:t}}:{type:`input_file`,filename:e.filename??`data`,file_data:`data:${i};base64,${M(e.data.data)}`,...t!=null&&{prompt_cache_breakpoint:t}}}if(e.data.type===`url`)return n===`image`?{type:`input_image`,image_url:e.data.url.toString(),detail:r,...t!=null&&{prompt_cache_breakpoint:t}}:{type:`input_file`,file_url:e.data.url.toString(),...t!=null&&{prompt_cache_breakpoint:t}};a.push({type:`other`,message:`unsupported tool content part type: ${e.type} with data type: ${e.data.type}`});return}default:a.push({type:`other`,message:`unsupported tool content part type: ${e.type}`});return}}).filter(S)}}function er(e,t){return e.itemId===t.itemId&&e.toolCallId===t.toolCallId&&e.toolName===t.toolName&&e.input===t.input&&e.count===t.count}function tr({prompt:e,providerOptionsName:t}){let n=new Map;for(let r of e)if(r.role===`tool`)for(let e of r.content){if(e.type!==`tool-result`)continue;let r=Jn({providerOptions:e.providerOptions,providerOptionsName:t});if(r==null)continue;let i=n.get(r.toolCallId);if(i==null){n.set(r.toolCallId,{metadata:r,results:new Map([[r.index,e]]),invalid:!1});continue}if(!er(i.metadata,r)||i.results.has(r.index)){i.invalid=!0;continue}i.results.set(r.index,e)}let r=new Map;for(let[e,t]of n){if(t.invalid||t.results.size!==t.metadata.count)continue;let n=Array.from({length:t.metadata.count},(e,n)=>t.results.get(n));n.every(S)&&r.set(e,{metadata:t.metadata,results:n})}return r}function Q(e,t){return e?.[t]?.promptCacheBreakpoint}function nr({output:e,toolResultProviderOptions:t,providerOptionsName:n}){return e.type===`content`?void 0:Q(e.providerOptions,n)??Q(t,n)}function rr(e,t){return t?t.some(t=>e.startsWith(t)):!1}async function ir({prompt:e,toolNameMapping:t,systemMessageMode:n,providerOptionsName:r,explicitMessageItemType:i=!1,fileIdPrefixes:o,passThroughUnsupportedFiles:s=!1,store:c,hasConversation:l=!1,hasPreviousResponseId:u=!1,hasLocalShellTool:d=!1,hasShellTool:f=!1,hasApplyPatchTool:p=!1,hasComputerTool:h=!1,toolSearchToolName:g,customProviderToolNames:_,outputSchemaToolNames:v,configurationUpdateUnsupportedReason:y}){let b=[],x=[],C=new Set,w=new Set,T=l||u?tr({prompt:e,providerOptionsName:r}):new Map,E=new Set,D=new Set;for(let{role:O,content:A,providerOptions:N}of e)switch(O){case`system`:{let e=await V({provider:r,providerOptions:N,schema:Kn});e==null&&r!==`openai`&&(e=await V({provider:`openai`,providerOptions:N,schema:Kn}));let t=e?.reasoningEffortUpdate;if(t!=null){let e=A===``?y:`Message-level reasoningEffortUpdate requires empty system message content.`;if(e!=null)throw new a({functionality:`Message-level reasoningEffortUpdate`,message:e});b.push({type:`configuration_update`,reasoning:{effort:t}});break}switch(n){case`system`:{let e=Q(N,r);b.push({...i&&{type:`message`},role:`system`,content:e==null?A:[{type:`input_text`,text:A,prompt_cache_breakpoint:e}]});break}case`developer`:{let e=Q(N,r);b.push({...i&&{type:`message`},role:`developer`,content:e==null?A:[{type:`input_text`,text:A,prompt_cache_breakpoint:e}]});break}case`remove`:x.push({type:`other`,message:`system messages are removed for this model`});break;default:throw Error(`Unsupported system message mode: ${n}`)}break}case`user`:b.push({...i&&{type:`message`},role:`user`,content:A.map((e,t)=>{switch(e.type){case`text`:{let t=Q(e.providerOptions,r);return{type:`input_text`,text:e.text,...t!=null&&{prompt_cache_breakpoint:t}}}case`file`:{let n=Q(e.providerOptions,r);switch(e.data.type){case`reference`:{let t=R({reference:e.data.reference,provider:r});return m(e.mediaType)===`image`?{type:`input_image`,file_id:t,detail:e.providerOptions?.[r]?.imageDetail,...n!=null&&{prompt_cache_breakpoint:n}}:{type:`input_file`,file_id:t,...n!=null&&{prompt_cache_breakpoint:n}}}case`text`:throw new a({functionality:`text file parts`});case`url`:case`data`:if(m(e.mediaType)===`image`)return{type:`input_image`,...e.data.type===`url`?{image_url:e.data.url.toString()}:typeof e.data.data==`string`&&rr(e.data.data,o)?{file_id:e.data.data}:{image_url:`data:${j({part:e})};base64,${M(e.data.data)}`},detail:e.providerOptions?.[r]?.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 r=j({part:e});if(r!==`application/pdf`&&!s)throw new a({functionality:`file part media type ${r}`});return{type:`input_file`,...typeof e.data.data==`string`&&rr(e.data.data,o)?{file_id:e.data.data}:{filename:e.filename??(r===`application/pdf`?`part-${t}.pdf`:`part-${t}`),file_data:`data:${r};base64,${M(e.data.data)}`},...n!=null&&{prompt_cache_breakpoint:n}}}}}}})});break;case`assistant`:{let e={};for(let n of A)switch(n.type){case`text`:{let e=n.providerOptions?.[r],t=e?.itemId,a=e?.phase;if(l&&t!=null)break;if(c&&t!=null){b.push({type:`item_reference`,id:t});break}b.push({...i&&{type:`message`},role:`assistant`,content:n.text,...a!=null&&{phase:a}});break}case`tool-call`:{let e=Jn({providerOptions:n.providerOptions,providerOptionsName:r}),i=e==null?void 0:T.get(e.toolCallId);if(e!=null&&i!=null&&er(i.metadata,e)){E.has(i.metadata.toolCallId)||(E.add(i.metadata.toolCallId),l||b.push({type:`function_call`,call_id:i.metadata.toolCallId,name:i.metadata.toolName,arguments:i.metadata.input}));break}let a=n.providerOptions?.[r]?.itemId??n.providerMetadata?.[r]?.itemId,o=n.providerOptions?.[r]?.namespace??n.providerMetadata?.[r]?.namespace,s=n.providerOptions?.[r]?.async??n.providerMetadata?.[r]?.async,m=n.providerOptions?.[r]?.caller;if(m?.type===`program`&&w.add(n.toolCallId),l&&a!=null)break;let v=t.toProviderToolName(n.toolName);if(n.toolName===g){if(c&&a!=null){b.push({type:`item_reference`,id:a});break}let e=typeof n.input==`string`?await le({text:n.input,schema:nn}):await k({value:n.input,schema:nn}),t=e.call_id==null?`server`:`client`;b.push({type:`tool_search_call`,id:a??n.toolCallId,execution:t,call_id:e.call_id??null,status:`completed`,arguments:e.arguments});break}if(v===`programmatic_tool_calling`){if(c&&a!=null){b.push({type:`item_reference`,id:a});break}let e=await k({value:n.input,schema:Sn});b.push({type:`program`,id:a??n.toolCallId,call_id:n.toolCallId,code:e.code,fingerprint:e.fingerprint});break}if(n.providerExecuted&&(c&&a!=null&&b.push({type:`item_reference`,id:a}),c||!f||v!==`shell`))break;let y=d&&v===`local_shell`||f&&v===`shell`||p&&v===`apply_patch`||h&&v===`computer`||(_?.has(v)??!1);if(u&&c&&a!=null&&y)break;if(c&&a!=null&&y){b.push({type:`item_reference`,id:a});break}if(d&&v===`local_shell`){let e=await k({value:n.input,schema:qt});b.push({type:`local_shell_call`,call_id:n.toolCallId,id:a,action:{type:`exec`,command:e.action.command,timeout_ms:e.action.timeoutMs,user:e.action.user,working_directory:e.action.workingDirectory,env:e.action.env}});break}if(f&&v===`shell`){let e=await k({value:n.input,schema:Xt});b.push({type:`shell_call`,call_id:n.toolCallId,id:a,status:`completed`,action:{commands:e.action.commands,timeout_ms:e.action.timeoutMs,max_output_length:e.action.maxOutputLength}});break}if(p&&v===`apply_patch`){let e=await k({value:n.input,schema:yt});b.push({type:`apply_patch_call`,call_id:e.callId,id:a,status:`completed`,operation:e.operation});break}if(h&&v===`computer`){let e=await k({value:n.input,schema:kt});b.push({type:`computer_call`,call_id:n.toolCallId,id:a,status:e.status,actions:e.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};case`scroll`:return{type:`scroll`,x:e.x,y:e.y,scroll_x:e.scrollX,scroll_y:e.scrollY,keys:e.keys};default:return e}}),pending_safety_checks:e.pendingSafetyChecks.map(e=>({id:e.id,code:e.code,message:e.message}))});break}if(_?.has(v)){b.push({type:`custom_tool_call`,call_id:n.toolCallId,name:v,input:typeof n.input==`string`?n.input:JSON.stringify(n.input),...s!=null&&{async:s},id:a});break}b.push({type:`function_call`,call_id:n.toolCallId,name:v,arguments:Zn(n.input),...s!=null&&{async:s},...o!=null&&{namespace:o},...m!=null&&{caller:Qn(m)}});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`||l)break;let e=t.toProviderToolName(n.toolName);if(n.toolName===g){let e=n.providerOptions?.[r]?.itemId??n.providerMetadata?.[r]?.itemId??n.toolCallId;if(c)b.push({type:`item_reference`,id:e});else if(n.output.type===`json`){let t=await k({value:n.output.value,schema:rn});b.push({type:`tool_search_output`,id:e,execution:`server`,call_id:null,status:`completed`,tools:t.tools})}break}if(e===`programmatic_tool_calling`){let e=n.providerOptions?.[r]?.itemId??n.providerMetadata?.[r]?.itemId??n.toolCallId;if(c)b.push({type:`item_reference`,id:e});else if(n.output.type===`json`){let t=await k({value:n.output.value,schema:Cn});b.push({type:`program_output`,id:e,call_id:n.toolCallId,result:t.result,status:t.status})}break}if(f&&e===`shell`){if(n.output.type===`json`){let e=await k({value:n.output.value,schema:Zt});b.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(c){let e=n.providerOptions?.[r]?.itemId??n.toolCallId;b.push({type:`item_reference`,id:e})}else x.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 V({provider:r,providerOptions:n.providerOptions,schema:ar}),i=t?.itemId;if((l||u)&&i!=null)break;if(i!=null){let r=e[i];if(c)r===void 0&&(b.push({type:`item_reference`,id:i}),e[i]={type:`reasoning`,id:i,summary:[]});else{let a=[];n.text.length>0?a.push({type:`summary_text`,text:n.text}):r!==void 0&&x.push({type:`other`,message:`Cannot append empty reasoning part to existing reasoning sequence. Skipping reasoning part: ${JSON.stringify(n)}.`}),r===void 0?(e[i]={type:`reasoning`,id:i,encrypted_content:t?.reasoningEncryptedContent,summary:a},b.push(e[i])):(r.summary.push(...a),t?.reasoningEncryptedContent!=null&&(r.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}),b.push({type:`reasoning`,encrypted_content:e,summary:t})}else x.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?.[r],t=e?.itemId;if(l&&t!=null)break;if(c&&t!=null){b.push({type:`item_reference`,id:t});break}let i=e?.encryptedContent;t!=null&&b.push({type:`compaction`,id:t,encrypted_content:i})}}break}case`tool`:for(let e of A){if(e.type===`tool-approval-response`){let t=e;if(C.has(t.approvalId))continue;C.add(t.approvalId),c&&!l&&!u&&b.push({type:`item_reference`,id:t.approvalId}),b.push({type:`mcp_approval_response`,approval_request_id:t.approvalId,approve:t.approved});continue}let n=Jn({providerOptions:e.providerOptions,providerOptionsName:r}),i=n==null?void 0:T.get(n.toolCallId);if(n!=null&&i!=null&&er(i.metadata,n)){if(!D.has(i.metadata.toolCallId)){D.add(i.metadata.toolCallId);let e=await Promise.all(i.results.map(async e=>{let t=nr({output:e.output,toolResultProviderOptions:e.providerOptions,providerOptionsName:r});return{output:await $n({output:e.output,toolName:e.toolName,outputSchemaToolNames:v,providerOptionsName:r,warnings:x}),promptCacheBreakpoint:t}})),t=e.map(({output:e})=>typeof e==`string`?e:JSON.stringify(e)),n=e.some(({promptCacheBreakpoint:e})=>e!=null);b.push({type:`function_call_output`,call_id:i.metadata.toolCallId,output:n?t.map((t,n)=>({type:`input_text`,text:n===0?t:`\n${t}`,...e[n].promptCacheBreakpoint!=null&&{prompt_cache_breakpoint:e[n].promptCacheBreakpoint}})):t.join(`
|
|
2
|
-
`)})}continue}let o=e.output;if(o.type===`execution-denied`&&o.providerOptions?.openai?.approvalId)continue;let s=t.toProviderToolName(e.toolName);if(e.toolName===g&&o.type===`json`){let t=await k({value:o.value,schema:rn});b.push({type:`tool_search_output`,execution:`client`,call_id:e.toolCallId,status:`completed`,tools:t.tools});continue}if(d&&s===`local_shell`&&o.type===`json`){let t=await k({value:o.value,schema:Jt});b.push({type:`local_shell_call_output`,call_id:e.toolCallId,output:t.output});continue}if(f&&s===`shell`&&o.type===`json`){let t=await k({value:o.value,schema:Zt});b.push({type:`shell_call_output`,call_id:e.toolCallId,output:t.output.map(e=>({stdout:e.stdout,stderr:e.stderr,outcome:e.outcome.type===`timeout`?{type:`timeout`}:{type:`exit`,exit_code:e.outcome.exitCode}}))});continue}if(p&&e.toolName===`apply_patch`&&o.type===`json`){let t=await k({value:o.value,schema:bt});b.push({type:`apply_patch_call_output`,call_id:e.toolCallId,status:t.status,output:t.output});continue}if(h&&s===`computer`&&o.type===`json`){let t=await k({value:o.value,schema:At});b.push({type:`computer_call_output`,call_id:e.toolCallId,output:{type:`computer_screenshot`,image_url:t.output.imageUrl,file_id:t.output.fileId,detail:t.output.detail},acknowledged_safety_checks:t.acknowledgedSafetyChecks?.map(e=>({id:e.id,code:e.code,message:e.message}))});continue}if(_?.has(s)){let t=nr({output:o,toolResultProviderOptions:e.providerOptions,providerOptionsName:r}),n=e=>t==null?e:[{type:`input_text`,text:e,prompt_cache_breakpoint:t}],i;switch(o.type){case`text`:case`error-text`:i=n(o.value);break;case`execution-denied`:i=n(o.reason??`Tool call execution denied.`);break;case`json`:case`error-json`:i=n(JSON.stringify(o.value));break;case`content`:i=o.value.map(e=>{let t=Q(e.providerOptions,r);switch(e.type){case`text`:return{type:`input_text`,text:e.text,...t!=null&&{prompt_cache_breakpoint:t}};case`file`:{let n=m(e.mediaType),i=e.providerOptions?.[r]?.imageDetail;if(e.data.type===`data`){let r=j({part:e});return n===`image`?{type:`input_image`,image_url:`data:${r};base64,${M(e.data.data)}`,detail:i,...t!=null&&{prompt_cache_breakpoint:t}}:{type:`input_file`,filename:e.filename??`data`,file_data:`data:${r};base64,${M(e.data.data)}`,...t!=null&&{prompt_cache_breakpoint:t}}}if(e.data.type===`url`)return n===`image`?{type:`input_image`,image_url:e.data.url.toString(),detail:i,...t!=null&&{prompt_cache_breakpoint:t}}:{type:`input_file`,file_url:e.data.url.toString(),...t!=null&&{prompt_cache_breakpoint:t}};x.push({type:`other`,message:`unsupported custom tool content part type: ${e.type} with data type: ${e.data.type}`});return}default:x.push({type:`other`,message:`unsupported custom tool content part type: ${e.type}`});return}}).filter(S);break;default:i=``}b.push({type:`custom_tool_call_output`,call_id:e.toolCallId,output:i});continue}let y=e.providerOptions?.[r]?.caller;if(o.type===`execution-denied`&&(y?.type===`program`||w.has(e.toolCallId)))throw new a({functionality:`execution-denied results for programmatic tool calls`});let E=await $n({output:o,toolName:e.toolName,outputSchemaToolNames:v,promptCacheBreakpoint:nr({output:o,toolResultProviderOptions:e.providerOptions,providerOptionsName:r}),providerOptionsName:r,warnings:x}),O=Qn(y);b.push({type:`function_call_output`,call_id:e.toolCallId,output:E,...O!=null&&{caller:O}})}break;default:throw Error(`Unsupported role: ${O}`)}return!c&&b.some(e=>`type`in e&&e.type===`reasoning`&&e.encrypted_content==null)&&(x.push({type:`other`,message:`Reasoning parts without encrypted content are not supported when store is false. Skipping reasoning parts.`}),b=b.filter(e=>!(`type`in e)||e.type!==`reasoning`||e.encrypted_content!=null)),{input:b,warnings:x}}const ar=J.object({itemId:J.string().nullish(),reasoningEncryptedContent:J.string().nullish()});async function or({tools:e,toolChoice:t,allowedTools:n,toolNameMapping:r,customProviderToolNames:i,outputSchemaToolNames:o,supportsAsyncToolCalling:s=!0}){e=e?.length?e:void 0;let c=[];if(e==null)return{tools:void 0,toolChoice:void 0,toolWarnings:c};let l=[],u=new Map,d=i??new Set,f=new Map,p=new Map,m=(e,t,n)=>{if(f.set(e,t),n==null||n===e)return;let r=p.get(n);r==null?p.set(n,t):r!==`ambiguous`&&!cr(r,t)&&p.set(n,`ambiguous`)};for(let t of e)switch(t.type){case`function`:{let e=t.providerOptions?.openai;e?.outputSchema!=null&&o?.add(t.name);let n=ur({tool:t,options:e,toolWarnings:c,async:dr({value:e?.async,supportsAsyncToolCalling:s,toolName:t.name,toolWarnings:c})}),r=e?.namespace;if(r==null)l.push(n);else{let e=u.get(r.name);if(e==null)e={type:`namespace`,name:r.name,description:r.description,tools:[]},u.set(r.name,e),l.push(e);else if(e.description!==r.description)throw new a({functionality:`conflicting descriptions for OpenAI tool namespace "${r.name}"`});e.tools.push(n)}m(t.name,r==null?e?.deferLoading===!0?{supported:!1,reason:`deferred tools are not visible to tool_choice.allowed_tools`}:{supported:!0,entry:{type:`function`,name:t.name}}:{supported:!1,reason:`tools inside an OpenAI tool namespace are not visible to tool_choice.allowed_tools`},void 0);break}case`provider`:{let e=l.length;switch(t.id){case`openai.file_search`:{let e=await k({value:t.args,schema:zt});l.push({type:`file_search`,vector_store_ids:e.vectorStoreIds,max_num_results:e.maxNumResults,ranking_options:e.ranking?{ranker:e.ranking.ranker,score_threshold:e.ranking.scoreThreshold}:void 0,filters:e.filters});break}case`openai.local_shell`:l.push({type:`local_shell`});break;case`openai.shell`:{let e=await k({value:t.args,schema:$t});l.push({type:`shell`,...e.environment&&{environment:fr(e.environment)}});break}case`openai.apply_patch`:l.push({type:`apply_patch`});break;case`openai.computer`:l.push({type:`computer`});break;case`openai.web_search_preview`:{let e=await k({value:t.args,schema:fn});l.push({type:`web_search_preview`,search_context_size:e.searchContextSize,user_location:e.userLocation});break}case`openai.web_search`:{let e=await k({value:t.args,schema:sn});l.push({type:`web_search`,filters:e.filters==null?void 0:{allowed_domains:e.filters.allowedDomains,blocked_domains:e.filters.blockedDomains},external_web_access:e.externalWebAccess,search_context_size:e.searchContextSize,user_location:e.userLocation});break}case`openai.code_interpreter`:{let e=await k({value:t.args,schema:wt});l.push({type:`code_interpreter`,container:e.container==null?{type:`auto`,file_ids:void 0}:typeof e.container==`string`?e.container:{type:`auto`,file_ids:e.container.fileIds}});break}case`openai.image_generation`:{let e=await k({value:t.args,schema:Ht});l.push({type:`image_generation`,action:e.action,background:e.background,input_fidelity:e.inputFidelity,input_image_mask:e.inputImageMask?{file_id:e.inputImageMask.fileId,image_url:e.inputImageMask.imageUrl}:void 0,model:e.model,moderation:e.moderation,partial_images:e.partialImages,quality:e.quality,output_compression:e.outputCompression,output_format:e.outputFormat,size:e.size});break}case`openai.mcp`:{let e=await k({value:t.args,schema:_n}),n=e=>({tool_names:e.toolNames}),r=e.requireApproval,i=r==null?void 0:typeof r==`string`?r:r.never==null?void 0:{never:n(r.never)};l.push({type:`mcp`,server_label:e.serverLabel,allowed_tools:Array.isArray(e.allowedTools)?e.allowedTools:e.allowedTools?{read_only:e.allowedTools.readOnly,tool_names:e.allowedTools.toolNames}:void 0,authorization:e.authorization,connector_id:e.connectorId,headers:e.headers,require_approval:i??`never`,server_description:e.serverDescription,server_url:e.serverUrl});break}case`openai.custom`:{let e=await k({value:t.args,schema:Nt});l.push({type:`custom`,name:t.name,description:e.description,...dr({value:e.async,supportsAsyncToolCalling:s,toolName:t.name,toolWarnings:c})==null?{}:{async:e.async},format:e.format}),d.add(t.name);break}case`openai.programmatic_tool_calling`:l.push({type:`programmatic_tool_calling`});break;case`openai.tool_search`:{let e=await k({value:t.args,schema:tn});l.push({type:`tool_search`,...e.execution==null?{}:{execution:e.execution},...e.description==null?{}:{description:e.description},...e.parameters==null?{}:{parameters:e.parameters}});break}}if(l.length>e){let n=l[e];m(t.name,lr(n),r?.toProviderToolName(t.name))}break}default:c.push({type:`unsupported`,feature:`function tool ${t}`})}if(n!=null){let e=[],t=[];for(let i of n.toolNames){let n=f.get(i),a=n??p.get(i);if(n!=null&&p.has(i)&&c.push({type:`unsupported`,feature:`allowedTools entry "${i}"`,details:`this name is both a tool name and the provider tool name of another tool in this request; the tool with this name is allowed`}),a===`ambiguous`){c.push({type:`unsupported`,feature:`allowedTools entry "${i}"`,details:`several tools in this request share this provider tool name; use the tool name from the tools for this request instead`}),t.push(i);continue}if(a==null){c.push({type:`unsupported`,feature:`allowedTools entry "${i}"`,details:`the tool is not part of the tools for this request and is sent as a function tool`}),e.push({type:`function`,name:r?.toProviderToolName(i)??i});continue}if(!a.supported){c.push({type:`unsupported`,feature:`allowedTools entry "${i}"`,details:`${a.reason}; the tool is removed from the allowed tools`}),t.push(i);continue}e.push(a.entry)}if(e.length===0)throw new a({functionality:`allowedTools with only tools that cannot be allow-listed (${t.join(`, `)})`});return{tools:l,toolChoice:{type:`allowed_tools`,mode:n.mode??`auto`,tools:e},toolWarnings:c}}if(t==null)return{tools:l,toolChoice:void 0,toolWarnings:c};let h=t.type;switch(h){case`auto`:case`none`:case`required`:return{tools:l,toolChoice:h,toolWarnings:c};case`tool`:{let e=r?.toProviderToolName(t.toolName)??t.toolName;return{tools:l,toolChoice:e===`code_interpreter`||e===`file_search`||e===`image_generation`||e===`web_search_preview`||e===`web_search`||e===`mcp`||e===`apply_patch`||e===`computer`||e===`programmatic_tool_calling`?{type:e}:d.has(e)?{type:`custom`,name:e}:{type:`function`,name:e},toolWarnings:c}}default:throw new a({functionality:`tool choice type: ${h}`})}}function sr(e){switch(e.type){case`mcp`:return`mcp:${e.server_label}`;case`function`:case`custom`:return`${e.type}:${e.name}`;default:return e.type}}function cr(e,t){return e.supported&&t.supported?sr(e.entry)===sr(t.entry):!e.supported&&!t.supported&&e.reason===t.reason}function lr(e){switch(e.type){case`custom`:return{supported:!0,entry:{type:`custom`,name:e.name}};case`mcp`:return{supported:!0,entry:{type:`mcp`,server_label:e.server_label}};case`file_search`:case`web_search`:case`web_search_preview`:case`image_generation`:case`code_interpreter`:case`computer`:case`apply_patch`:case`shell`:case`local_shell`:case`programmatic_tool_calling`:return{supported:!0,entry:{type:e.type}};default:return{supported:!1,reason:`OpenAI does not support ${e.type} tools in tool_choice.allowed_tools`}}}function ur({tool:e,options:t,toolWarnings:n,async:r}){let i=t?.deferLoading,a=Ve(e.inputSchema),o=t?.outputSchema==null?void 0:Ve(t.outputSchema);return n.push(...a.warnings,...o?.warnings??[]),{type:`function`,name:e.name,description:e.description,parameters:a.schema,...r==null?{}:{async:r},strict:e.strict??!1,...i==null?{}:{defer_loading:i},...t?.allowedCallers==null?{}:{allowed_callers:t.allowedCallers},...t?.outputSchema==null?{}:{output_schema:o?.schema}}}function dr({value:e,supportsAsyncToolCalling:t,toolName:n,toolWarnings:r}){if(e!==!0||t)return e;r.push({type:`unsupported`,feature:`async tool calling for "${n}"`,details:`Async tool calling is only supported by GPT-6 and later models.`})}function fr(e){if(e.type===`containerReference`)return{type:`container_reference`,container_id:e.containerId};if(e.type===`containerAuto`){let t=e;return{type:`container_auto`,file_ids:t.fileIds,memory_limit:t.memoryLimit,network_policy:t.networkPolicy==null?void 0:t.networkPolicy.type===`disabled`?{type:`disabled`}:{type:`allowlist`,allowed_domains:t.networkPolicy.allowedDomains,domain_secrets:t.networkPolicy.domainSecrets},skills:pr(t.skills)}}return{type:`local`,skills:e.skills}}function pr(e){return e?.map(e=>e.type===`skillReference`?{type:`skill_reference`,skill_id:R({reference:e.providerReference??{},provider:`openai`}),version:e.version??`latest`}:{type:`inline`,name:e.name,description:e.description,source:{type:`base64`,media_type:e.source.mediaType,data:e.source.data}})}function mr(e){let t={};for(let n of e)if(n.role===`assistant`)for(let e of n.content){if(e.type!==`tool-call`)continue;let n=e.providerOptions?.openai?.approvalRequestId;n!=null&&(t[n]=e.toolCallId)}return t}function hr(e){switch(e.type){case`click`:return{type:`click`,button:e.button,x:e.x,y:e.y,...e.keys!=null&&{keys:e.keys}};case`double_click`:return{type:`double_click`,x:e.x,y:e.y,...e.keys!=null&&{keys:e.keys}};case`drag`:return{type:`drag`,path:e.path,...e.keys!=null&&{keys:e.keys}};case`keypress`:return e;case`move`:return{type:`move`,x:e.x,y:e.y,...e.keys!=null&&{keys:e.keys}};case`screenshot`:return e;case`scroll`:return{type:`scroll`,x:e.x,y:e.y,scrollX:e.scroll_x,scrollY:e.scroll_y,...e.keys!=null&&{keys:e.keys}};case`type`:return e;case`wait`:return e}}function gr({action:e,actions:t,pending_safety_checks:n,status:r}){return{actions:(t??(e==null?[]:[e])).map(hr),pendingSafetyChecks:n?.map(e=>({id:e.id,...e.code!=null&&{code:e.code},...e.message!=null&&{message:e.message}}))??[],status:r}}const _r={"image/*":[/^https?:\/\/.*$/],"application/pdf":[/^https?:\/\/.*$/]};function vr({modelCapabilities:e,options:t}){if(!e.supportsConfigurationUpdate)return`reasoningEffortUpdate is only supported by GPT-6 and later models`;if(t?.reasoningMode===`pro`||t?.contextManagement!=null||t?.truncation===`auto`)return`reasoningEffortUpdate requires standard reasoning mode without automatic compaction or automatic truncation`}var yr=class t{static[q](e){return B({modelId:e.modelId,config:e.config})}static[K](e){return new t(e.modelId,Wn(e.config))}constructor(e,t){this.specificationVersion=`v4`,this.supportedUrls=_r,this.modelId=e,this.config=t}get provider(){return this.config.provider}static async prepareRequest({modelId:e,config:t,options:{maxOutputTokens:n,temperature:r,stopSequences:i,topP:o,topK:s,presencePenalty:c,frequencyPenalty:l,seed:u,prompt:f,reasoning:p,providerOptions:m,tools:h,toolChoice:g,responseFormat:_}}){let v=[],y=_e(e);s!=null&&v.push({type:`unsupported`,feature:`topK`}),u!=null&&v.push({type:`unsupported`,feature:`seed`}),c!=null&&v.push({type:`unsupported`,feature:`presencePenalty`}),l!=null&&v.push({type:`unsupported`,feature:`frequencyPenalty`}),i!=null&&v.push({type:`unsupported`,feature:`stopSequences`});let b=t.provider.includes(`azure`)?`azure`:`openai`,x=await V({provider:b,providerOptions:m,schema:Gn});x==null&&b!==`openai`&&(x=await V({provider:`openai`,providerOptions:m,schema:Gn}));let S=x?.reasoningEffort??(me(p)?p:void 0);S!=null&&y.supportedReasoningEfforts!=null&&!y.supportedReasoningEfforts.includes(S)&&(v.push({type:`unsupported`,feature:`reasoningEffort`,details:`${e} only supports the following reasoning efforts: ${y.supportedReasoningEfforts.join(`, `)}`}),S=void 0);let C=x?.reasoningSummary===void 0?S!=null&&S!==`none`?`detailed`:void 0:x.reasoningSummary,w=x?.forceReasoning??y.isReasoningModel;x?.conversation&&x?.previousResponseId&&v.push({type:`unsupported`,feature:`conversation`,details:`conversation and previousResponseId cannot be used together`});let T=d({tools:h,providerToolNames:{"openai.code_interpreter":`code_interpreter`,"openai.computer":`computer`,"openai.file_search":`file_search`,"openai.image_generation":`image_generation`,"openai.local_shell":`local_shell`,"openai.shell":`shell`,"openai.web_search":`web_search`,"openai.web_search_preview":`web_search_preview`,"openai.mcp":`mcp`,"openai.apply_patch":`apply_patch`,"openai.tool_search":`tool_search`,"openai.programmatic_tool_calling":`programmatic_tool_calling`}}),E=new Set,D=new Set,{tools:O,toolChoice:k,toolWarnings:A}=await or({tools:h,toolChoice:g,allowedTools:x?.allowedTools??void 0,toolNameMapping:T,customProviderToolNames:E,outputSchemaToolNames:D,supportsAsyncToolCalling:y.supportsAsyncToolCalling}),j=vr({modelCapabilities:y,options:x}),{input:M,warnings:N}=await ir({prompt:f,toolNameMapping:T,systemMessageMode:x?.systemMessageMode??(w?`developer`:y.systemMessageMode),providerOptionsName:b,configurationUpdateUnsupportedReason:j,explicitMessageItemType:t.explicitMessageItemType,fileIdPrefixes:t.fileIdPrefixes,passThroughUnsupportedFiles:x?.passThroughUnsupportedFiles??!1,store:x?.store??!0,hasConversation:x?.conversation!=null,hasPreviousResponseId:x?.previousResponseId!=null,hasLocalShellTool:z(`openai.local_shell`),hasShellTool:z(`openai.shell`),hasApplyPatchTool:z(`openai.apply_patch`),hasComputerTool:z(`openai.computer`),toolSearchToolName:R(`openai.tool_search`),customProviderToolNames:E.size>0?E:void 0,outputSchemaToolNames:D.size>0?D:void 0});v.push(...N);let ee=t=>t!=null&&y.supportedReasoningEfforts?.includes(t)===!1?`${e} only supports the following reasoning efforts: ${y.supportedReasoningEfforts.join(`, `)}`:void 0;for(let e of M)if(e.type===`configuration_update`){let t=ee(e.reasoning.effort);if(t!=null)throw new a({functionality:`Message-level reasoningEffortUpdate`,message:t})}let P=x?.reasoningEffortUpdate,te=j??ee(P);if(P!=null&&te!=null)v.push({type:`unsupported`,feature:`reasoningEffortUpdate`,details:te});else if(P!=null){let e=M[0];(e?.type!==`configuration_update`||e.reasoning.effort!==P)&&M.unshift({type:`configuration_update`,reasoning:{effort:P}})}for(let e=1;e<M.length;e++)if(M[e-1].type===`configuration_update`&&M[e].type===`configuration_update`)throw new a({functionality:`Adjacent reasoning effort configuration updates`});x?.compactionTrigger&&M.push({type:`compaction_trigger`});let ne=x?.strictJsonSchema??!0,F=_?.type===`json`&&_.schema!=null?Ve(_.schema):void 0;F!=null&&v.push(...F.warnings);let I=x?.include;function L(e){I==null?I=[e]:I.includes(e)||(I=[...I,e])}function R(e){return h?.find(t=>t.type===`provider`&&t.id===e)?.name}function z(e){return R(e)!=null}let B=typeof x?.logprobs==`number`?x?.logprobs:x?.logprobs===!0?20:void 0;B&&L(`message.output_text.logprobs`);let re=h?.find(e=>e.type===`provider`&&(e.id===`openai.web_search`||e.id===`openai.web_search_preview`))?.name;re&&t.supportsWebSearchSourcesInclude!==!1&&x?.includeWebSearchSources!==!1&&L(`web_search_call.action.sources`),z(`openai.code_interpreter`)&&L(`code_interpreter_call.outputs`);let ie=x?.store;ie===!1&&w&&L(`reasoning.encrypted_content`);let H={model:e,input:M,temperature:r,top_p:o,max_output_tokens:n,...(_?.type===`json`||x?.textVerbosity)&&{text:{..._?.type===`json`&&{format:F==null?{type:`json_object`}:{type:`json_schema`,strict:ne,name:_.name??`response`,description:_.description,schema:F.schema}},...x?.textVerbosity&&{verbosity:x.textVerbosity}}},conversation:x?.conversation,max_tool_calls:x?.maxToolCalls,metadata:x?.metadata,parallel_tool_calls:x?.parallelToolCalls,previous_response_id:x?.previousResponseId,store:ie,user:x?.user,instructions:x?.instructions,service_tier:x?.serviceTier,include:I,prompt_cache_key:x?.promptCacheKey,prompt_cache_options:x?.promptCacheOptions,prompt_cache_retention:x?.promptCacheRetention,safety_identifier:x?.safetyIdentifier,top_logprobs:B,truncation:x?.truncation,...x?.contextManagement&&{context_management:x.contextManagement.map(e=>({type:e.type,compact_threshold:e.compactThreshold}))},...w&&(S!=null||C!=null||x?.reasoningMode!=null||x?.reasoningContext!=null)&&{reasoning:{...S!=null&&{effort:S},...C!=null&&{summary:C},...x?.reasoningMode!=null&&{mode:x.reasoningMode},...x?.reasoningContext!=null&&{context:x.reasoningContext}}}};if(y.supportsConfigurationUpdate&&H.prompt_cache_retention!=null&&(H.prompt_cache_retention=void 0,v.push({type:`unsupported`,feature:`promptCacheRetention`,details:`promptCacheRetention is not supported by GPT-6 and later models; use promptCacheOptions instead`})),w){if(!(S===`none`&&y.supportsNonReasoningParameters)&&(H.temperature!=null&&(H.temperature=void 0,v.push({type:`unsupported`,feature:`temperature`,details:`temperature is not supported for reasoning models`})),H.top_p!=null&&(H.top_p=void 0,v.push({type:`unsupported`,feature:`topP`,details:`topP is not supported for reasoning models`})),y.supportedReasoningEfforts!=null&&(H.top_logprobs!=null||H.include?.includes(`message.output_text.logprobs`)))){H.top_logprobs=void 0;let e=H.include?.filter(e=>e!==`message.output_text.logprobs`);H.include=e!=null&&e.length>0?e:void 0,v.push({type:`unsupported`,feature:`logprobs`,details:`logprobs is not supported for reasoning models`})}}else x?.reasoningEffort!=null&&v.push({type:`unsupported`,feature:`reasoningEffort`,details:`reasoningEffort is not supported for non-reasoning models`}),x?.reasoningSummary!=null&&v.push({type:`unsupported`,feature:`reasoningSummary`,details:`reasoningSummary is not supported for non-reasoning models`}),x?.reasoningMode!=null&&v.push({type:`unsupported`,feature:`reasoningMode`,details:`reasoningMode is not supported for non-reasoning models`}),x?.reasoningContext!=null&&v.push({type:`unsupported`,feature:`reasoningContext`,details:`reasoningContext is not supported for non-reasoning models`});x?.serviceTier===`flex`&&!y.supportsFlexProcessing&&(v.push({type:`unsupported`,feature:`serviceTier`,details:`flex processing is only available for o3, o4-mini, and gpt-5 models`}),delete H.service_tier),(x?.serviceTier===`priority`||x?.serviceTier===`fast`)&&!y.supportsPriorityProcessing&&(v.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`}),delete H.service_tier);let ae=(h?.find(e=>e.type===`provider`&&e.id===`openai.shell`))?.args?.environment?.type,oe=ae===`containerAuto`||ae===`containerReference`;return{webSearchToolName:re,args:{...H,tools:O,tool_choice:k},warnings:[...v,...A],store:ie,toolNameMapping:T,providerOptionsName:b,isShellProviderExecuted:oe}}getArgs(e){return t.prepareRequest({modelId:this.modelId,config:this.config,options:e})}async doGenerate(t){let{args:n,warnings:r,webSearchToolName:i,toolNameMapping:a,providerOptionsName:o,isShellProviderExecuted:s}=await this.getArgs(t),c=this.config.url({path:`/responses`,modelId:this.modelId}),l=mr(t.prompt),{responseHeaders:u,value:d,rawValue:f}=await I({url:c,headers:E(this.config.headers?.(),t.headers),body:n,failedResponseHandler:Y,successfulResponseHandler:G(Un),abortSignal:t.abortSignal,fetch:this.config.fetch});if(d.error)throw new e({message:d.error.message,url:c,requestBodyValues:n,statusCode:400,responseHeaders:u,responseBody:f,isRetryable:!1});if(d.output==null){let t=d.incomplete_details?.reason;throw new e({message:t?`Responses API returned no output (${t})`:`Responses API returned no output`,url:c,requestBodyValues:n,statusCode:500,responseHeaders:u,responseBody:f,isRetryable:!1})}let p=[],m=[],h=t.tools?.filter(e=>e.type===`function`)??[],_=!1,v=[];for(let e of d.output)switch(e.type){case`reasoning`:e.summary.length===0&&e.summary.push({type:`summary_text`,text:``});for(let t of e.summary)p.push({type:`reasoning`,text:t.text,providerMetadata:{[o]:{itemId:e.id,reasoningEncryptedContent:e.encrypted_content??null}}});break;case`image_generation_call`:p.push({type:`tool-call`,toolCallId:e.id,toolName:a.toCustomToolName(`image_generation`),input:`{}`,providerExecuted:!0}),p.push({type:`tool-result`,toolCallId:e.id,toolName:a.toCustomToolName(`image_generation`),result:{result:e.result}});break;case`tool_search_call`:{let t=e.call_id??e.id,n=e.execution===`server`;n&&v.push(t),p.push({type:`tool-call`,toolCallId:t,toolName:a.toCustomToolName(`tool_search`),input:JSON.stringify({arguments:e.arguments,call_id:e.call_id}),...n?{providerExecuted:!0}:{},providerMetadata:{[o]:{itemId:e.id}}});break}case`tool_search_output`:{let t=e.call_id??v.shift()??e.id;p.push({type:`tool-result`,toolCallId:t,toolName:a.toCustomToolName(`tool_search`),result:{tools:e.tools},providerMetadata:{[o]:{itemId:e.id}}});break}case`local_shell_call`:p.push({type:`tool-call`,toolCallId:e.call_id,toolName:a.toCustomToolName(`local_shell`),input:JSON.stringify({action:e.action}),providerMetadata:{[o]:{itemId:e.id}}});break;case`shell_call`:p.push({type:`tool-call`,toolCallId:e.call_id,toolName:a.toCustomToolName(`shell`),input:JSON.stringify({action:{commands:e.action.commands}}),...s&&{providerExecuted:!0},providerMetadata:{[o]:{itemId:e.id}}});break;case`shell_call_output`:p.push({type:`tool-result`,toolCallId:e.call_id,toolName:a.toCustomToolName(`shell`),result:{output:e.output.map(e=>({stdout:e.stdout,stderr:e.stderr,outcome:e.outcome.type===`exit`?{type:`exit`,exitCode:e.outcome.exit_code}:{type:`timeout`}}))}});break;case`message`:for(let n of e.content){t.providerOptions?.[o]?.logprobs&&n.logprobs&&m.push(n.logprobs);let r={itemId:e.id,...e.phase!=null&&{phase:e.phase},...n.annotations.length>0&&{annotations:n.annotations}};p.push({type:`text`,text:n.text,providerMetadata:{[o]:r}});for(let e of n.annotations)e.type===`url_citation`?p.push({type:`source`,sourceType:`url`,id:this.config.generateId?.()??g(),url:e.url,title:e.title}):e.type===`file_citation`?p.push({type:`source`,sourceType:`document`,id:this.config.generateId?.()??g(),mediaType:`text/plain`,title:e.filename,filename:e.filename,providerMetadata:{[o]:{type:e.type,fileId:e.file_id,index:e.index}}}):e.type===`container_file_citation`?p.push({type:`source`,sourceType:`document`,id:this.config.generateId?.()??g(),mediaType:`text/plain`,title:e.filename,filename:e.filename,providerMetadata:{[o]:{type:e.type,fileId:e.file_id,containerId:e.container_id}}}):e.type===`file_path`&&p.push({type:`source`,sourceType:`document`,id:this.config.generateId?.()??g(),mediaType:`application/octet-stream`,title:e.file_id,filename:e.file_id,providerMetadata:{[o]:{type:e.type,fileId:e.file_id,index:e.index}}})}break;case`function_call`:{_=!0;let t=await Xn({toolCall:{toolCallId:e.call_id,toolName:e.name,input:e.arguments},tools:h,providerOptionsName:o,itemId:e.id});if(t!=null){p.push(...t);break}p.push({type:`tool-call`,toolCallId:e.call_id,toolName:e.name,input:e.arguments,providerMetadata:{[o]:{itemId:e.id,...e.async!=null&&{async:e.async},...e.namespace!=null&&{namespace:e.namespace},...e.caller!=null&&{caller:e.caller.type===`program`?{type:`program`,callerId:e.caller.caller_id}:e.caller}}}});break}case`program`:p.push({type:`tool-call`,toolCallId:e.call_id,toolName:a.toCustomToolName(`programmatic_tool_calling`),input:JSON.stringify({code:e.code,fingerprint:e.fingerprint}),providerExecuted:!0,providerMetadata:{[o]:{itemId:e.id}}});break;case`program_output`:p.push({type:`tool-result`,toolCallId:e.call_id,toolName:a.toCustomToolName(`programmatic_tool_calling`),result:{result:e.result,status:e.status},providerMetadata:{[o]:{itemId:e.id}}});break;case`custom_tool_call`:{_=!0;let t=a.toCustomToolName(e.name);p.push({type:`tool-call`,toolCallId:e.call_id,toolName:t,input:JSON.stringify(e.input),providerMetadata:{[o]:{itemId:e.id,...e.async!=null&&{async:e.async}}}});break}case`web_search_call`:p.push({type:`tool-call`,toolCallId:e.id,toolName:a.toCustomToolName(i??`web_search`),input:JSON.stringify({}),providerExecuted:!0}),p.push({type:`tool-result`,toolCallId:e.id,toolName:a.toCustomToolName(i??`web_search`),result:Br(e.action)});break;case`mcp_call`:{let t=e.approval_request_id==null?e.id:l[e.approval_request_id]??e.id,n=`mcp.${e.name}`;p.push({type:`tool-call`,toolCallId:t,toolName:n,input:e.arguments,providerExecuted:!0,dynamic:!0}),p.push({type:`tool-result`,toolCallId:t,toolName:n,result:{type:`call`,serverLabel:e.server_label,name:e.name,arguments:e.arguments,...e.output==null?{}:{output:e.output},...e.error==null?{}:{error:e.error}},providerMetadata:{[o]:{itemId:e.id}}});break}case`mcp_list_tools`:break;case`mcp_approval_request`:{let t=e.approval_request_id??e.id,n=this.config.generateId?.()??g(),r=`mcp.${e.name}`;p.push({type:`tool-call`,toolCallId:n,toolName:r,input:e.arguments,providerExecuted:!0,dynamic:!0}),p.push({type:`tool-approval-request`,approvalId:t,toolCallId:n});break}case`computer_call`:{if(e.call_id==null){p.push({type:`tool-call`,toolCallId:e.id,toolName:a.toCustomToolName(`computer_use`),input:``,providerExecuted:!0}),p.push({type:`tool-result`,toolCallId:e.id,toolName:a.toCustomToolName(`computer_use`),result:{type:`computer_use_tool_result`,status:e.status}});break}_=!0;let t=a.toCustomToolName(`computer`);p.push({type:`tool-call`,toolCallId:e.call_id,toolName:t,input:JSON.stringify(gr(e)),providerMetadata:{[o]:{itemId:e.id}}});break}case`file_search_call`:p.push({type:`tool-call`,toolCallId:e.id,toolName:a.toCustomToolName(`file_search`),input:`{}`,providerExecuted:!0}),p.push({type:`tool-result`,toolCallId:e.id,toolName:a.toCustomToolName(`file_search`),result:{queries:e.queries,results:e.results?.map(e=>({attributes:e.attributes,fileId:e.file_id,filename:e.filename,score:e.score,text:e.text}))??null}});break;case`code_interpreter_call`:p.push({type:`tool-call`,toolCallId:e.id,toolName:a.toCustomToolName(`code_interpreter`),input:JSON.stringify({code:e.code,containerId:e.container_id}),providerExecuted:!0}),p.push({type:`tool-result`,toolCallId:e.id,toolName:a.toCustomToolName(`code_interpreter`),result:{outputs:e.outputs}});break;case`apply_patch_call`:_=!0,p.push({type:`tool-call`,toolCallId:e.call_id,toolName:a.toCustomToolName(`apply_patch`),input:JSON.stringify({callId:e.call_id,operation:e.operation}),providerMetadata:{[o]:{itemId:e.id}}});break;case`compaction`:p.push({type:`custom`,kind:`openai.compaction`,providerMetadata:{[o]:{type:`compaction`,itemId:e.id,encryptedContent:e.encrypted_content}}})}let y={[o]:{responseId:d.id,...m.length>0?{logprobs:m}:{},...typeof d.service_tier==`string`?{serviceTier:d.service_tier}:{},...d.reasoning?.context==null?{}:{reasoningContext:d.reasoning.context}}},b=d.usage;return{content:p,finishReason:{unified:Dn({finishReason:d.incomplete_details?.reason,hasFunctionCall:_}),raw:d.incomplete_details?.reason??void 0},usage:En(b),request:{body:n},response:{id:d.id,timestamp:new Date(d.created_at*1e3),modelId:d.model,headers:u,body:f},providerMetadata:y,warnings:r}}async doStream(e){let{args:t,warnings:n,webSearchToolName:r,toolNameMapping:i,store:a,providerOptionsName:o,isShellProviderExecuted:s}=await this.getArgs(e),c=this.config.url({path:`/responses`,modelId:this.modelId}),{responseHeaders:l,value:u}=await I({url:c,headers:E(this.config.headers?.(),e.headers),body:{...t,stream:!0},failedResponseHandler:Y,successfulResponseHandler:te(Hn),abortSignal:e.abortSignal,fetch:this.config.fetch}),d=await xe({stream:u,getError:e=>Lr(e)||Er(e)&&e.response.error!=null?e:void 0,isOutputChunk:zr,isAcceptedChunk:Rr,url:c,requestBodyValues:t,responseHeaders:l}),f=this,p=mr(e.prompt),m=e.tools?.filter(e=>e.type===`function`)??[],h=new Map,_={unified:`other`,raw:void 0},v,y=[],b=null,x={},S=[],C,w=!1,T={},D={},O=({itemId:e,outputIndex:t})=>t==null?e:D[t]??e,k,A,j=[],M=!1;return{stream:d.pipeThrough(new TransformStream({start(e){e.enqueue({type:`stream-start`,warnings:n})},transform(n,u){if(e.includeRawChunks&&u.enqueue({type:`raw`,rawValue:n.rawValue}),!n.success){let e=xr(n.rawValue)?Sr({value:n.rawValue,cause:n.error,url:c,requestBodyValues:t,responseHeaders:l}):n.error;M=!0,_={unified:`error`,raw:void 0},u.enqueue({type:`error`,error:e});return}let d=n.value;if(Fr(d)){if(d.item.type===`function_call`){let e=Yn({toolName:d.item.name,tools:m});x[d.output_index]={toolName:d.item.name,toolCallId:d.item.call_id,suppressInputStreaming:e,bufferedInputDeltas:e?[]:void 0,async:d.item.async},e||u.enqueue({type:`tool-input-start`,id:d.item.call_id,toolName:d.item.name})}else if(d.item.type===`custom_tool_call`){let e=i.toCustomToolName(d.item.name);x[d.output_index]={toolName:e,toolCallId:d.item.call_id,async:d.item.async},u.enqueue({type:`tool-input-start`,id:d.item.call_id,toolName:e})}else if(d.item.type===`web_search_call`)x[d.output_index]={toolName:i.toCustomToolName(r??`web_search`),toolCallId:d.item.id},u.enqueue({type:`tool-input-start`,id:d.item.id,toolName:i.toCustomToolName(r??`web_search`),providerExecuted:!0}),u.enqueue({type:`tool-input-end`,id:d.item.id}),u.enqueue({type:`tool-call`,toolCallId:d.item.id,toolName:i.toCustomToolName(r??`web_search`),input:JSON.stringify({}),providerExecuted:!0});else if(d.item.type===`computer_call`){let e=d.item.call_id??d.item.id;x[d.output_index]={toolName:i.toCustomToolName(`computer`),toolCallId:e},u.enqueue({type:`tool-input-start`,id:e,toolName:i.toCustomToolName(`computer`)})}else if(d.item.type===`code_interpreter_call`)x[d.output_index]={toolName:i.toCustomToolName(`code_interpreter`),toolCallId:d.item.id,codeInterpreter:{containerId:d.item.container_id}},u.enqueue({type:`tool-input-start`,id:d.item.id,toolName:i.toCustomToolName(`code_interpreter`),providerExecuted:!0}),u.enqueue({type:`tool-input-delta`,id:d.item.id,delta:`{"containerId":"${d.item.container_id}","code":"`});else if(d.item.type===`file_search_call`)u.enqueue({type:`tool-call`,toolCallId:d.item.id,toolName:i.toCustomToolName(`file_search`),input:`{}`,providerExecuted:!0});else if(d.item.type===`image_generation_call`)u.enqueue({type:`tool-call`,toolCallId:d.item.id,toolName:i.toCustomToolName(`image_generation`),input:`{}`,providerExecuted:!0});else if(d.item.type===`tool_search_call`){let e=d.item.id,t=i.toCustomToolName(`tool_search`),n=d.item.execution===`server`;x[d.output_index]={toolName:t,toolCallId:e,toolSearchExecution:d.item.execution??`server`},n&&u.enqueue({type:`tool-input-start`,id:e,toolName:t,providerExecuted:!0})}else if(d.item.type!==`tool_search_output`&&d.item.type!==`mcp_call`&&d.item.type!==`mcp_list_tools`&&d.item.type!==`mcp_approval_request`){if(d.item.type===`apply_patch_call`){let{call_id:e,operation:t}=d.item;if(x[d.output_index]={toolName:i.toCustomToolName(`apply_patch`),toolCallId:e,applyPatch:{hasDiff:t.type===`delete_file`,endEmitted:t.type===`delete_file`}},u.enqueue({type:`tool-input-start`,id:e,toolName:i.toCustomToolName(`apply_patch`)}),t.type===`delete_file`){let n=JSON.stringify({callId:e,operation:t});u.enqueue({type:`tool-input-delta`,id:e,delta:n}),u.enqueue({type:`tool-input-end`,id:e})}else u.enqueue({type:`tool-input-delta`,id:e,delta:`{"callId":"${$(e)}","operation":{"type":"${$(t.type)}","path":"${$(t.path)}","diff":"`})}else d.item.type===`shell_call`?x[d.output_index]={toolName:i.toCustomToolName(`shell`),toolCallId:d.item.call_id}:d.item.type===`shell_call_output`||(d.item.type===`message`?(D[d.output_index]=d.item.id,S.splice(0),C=d.item.phase??void 0,u.enqueue({type:`text-start`,id:d.item.id,providerMetadata:{[o]:{itemId:d.item.id,...d.item.phase!=null&&{phase:d.item.phase}}}})):Fr(d)&&d.item.type===`reasoning`&&(D[d.output_index]=d.item.id,T[d.item.id]={encryptedContent:d.item.encrypted_content,summaryParts:{0:`active`}},u.enqueue({type:`reasoning-start`,id:`${d.item.id}:0`,providerMetadata:{[o]:{itemId:d.item.id,reasoningEncryptedContent:d.item.encrypted_content??null}}})))}}else if(wr(d)){if(d.item.type===`message`){let e=O({itemId:d.item.id,outputIndex:d.output_index}),t=d.item.phase??C;C=void 0,u.enqueue({type:`text-end`,id:e,providerMetadata:{[o]:{itemId:e,...t!=null&&{phase:t},...S.length>0&&{annotations:S}}}}),D[d.output_index]=void 0}else if(d.item.type===`function_call`){let e=d.item,t=x[d.output_index];x[d.output_index]=void 0,w=!0;let n=t?.suppressInputStreaming??Yn({toolName:e.name,tools:m}),r=()=>{if(n){u.enqueue({type:`tool-input-start`,id:e.call_id,toolName:e.name});let n=t?.bufferedInputDeltas??[];if(n.length>0)for(let t of n)u.enqueue({type:`tool-input-delta`,id:e.call_id,delta:t});else e.arguments.length>0&&u.enqueue({type:`tool-input-delta`,id:e.call_id,delta:e.arguments})}u.enqueue({type:`tool-input-end`,id:e.call_id,...e.namespace!=null&&{providerMetadata:{[o]:{namespace:e.namespace}}}}),u.enqueue({type:`tool-call`,toolCallId:e.call_id,toolName:e.name,input:e.arguments,providerMetadata:{[o]:{itemId:e.id,...e.async==null?t?.async==null?{}:{async:t.async}:{async:e.async},...e.namespace!=null&&{namespace:e.namespace},...e.caller!=null&&{caller:e.caller.type===`program`?{type:`program`,callerId:e.caller.caller_id}:e.caller}}}})};if(!n){r();return}return Xn({toolCall:{toolCallId:e.call_id,toolName:e.name,input:e.arguments},tools:m,providerOptionsName:o,itemId:e.id}).then(e=>{if(e==null){r();return}for(let t of e)u.enqueue({type:`tool-input-start`,id:t.toolCallId,toolName:t.toolName}),u.enqueue({type:`tool-input-delta`,id:t.toolCallId,delta:t.input}),u.enqueue({type:`tool-input-end`,id:t.toolCallId}),u.enqueue(t)})}else if(d.item.type===`program`)u.enqueue({type:`tool-call`,toolCallId:d.item.call_id,toolName:i.toCustomToolName(`programmatic_tool_calling`),input:JSON.stringify({code:d.item.code,fingerprint:d.item.fingerprint}),providerExecuted:!0,providerMetadata:{[o]:{itemId:d.item.id}}});else if(d.item.type===`program_output`)u.enqueue({type:`tool-result`,toolCallId:d.item.call_id,toolName:i.toCustomToolName(`programmatic_tool_calling`),result:{result:d.item.result,status:d.item.status},providerMetadata:{[o]:{itemId:d.item.id}}});else if(d.item.type===`custom_tool_call`){let e=x[d.output_index];x[d.output_index]=void 0,w=!0;let t=i.toCustomToolName(d.item.name);u.enqueue({type:`tool-input-end`,id:d.item.call_id}),u.enqueue({type:`tool-call`,toolCallId:d.item.call_id,toolName:t,input:JSON.stringify(d.item.input),providerMetadata:{[o]:{itemId:d.item.id,...d.item.async==null?e?.async==null?{}:{async:e.async}:{async:d.item.async}}}})}else if(d.item.type===`web_search_call`)x[d.output_index]=void 0,u.enqueue({type:`tool-result`,toolCallId:d.item.id,toolName:i.toCustomToolName(r??`web_search`),result:Br(d.item.action)});else if(d.item.type===`computer_call`){if(x[d.output_index]=void 0,d.item.call_id==null){u.enqueue({type:`tool-input-end`,id:d.item.id}),u.enqueue({type:`tool-call`,toolCallId:d.item.id,toolName:i.toCustomToolName(`computer_use`),input:``,providerExecuted:!0}),u.enqueue({type:`tool-result`,toolCallId:d.item.id,toolName:i.toCustomToolName(`computer_use`),result:{type:`computer_use_tool_result`,status:d.item.status}});return}w=!0;let e=i.toCustomToolName(`computer`),t=JSON.stringify(gr(d.item));u.enqueue({type:`tool-input-delta`,id:d.item.call_id,delta:t}),u.enqueue({type:`tool-input-end`,id:d.item.call_id}),u.enqueue({type:`tool-call`,toolCallId:d.item.call_id,toolName:e,input:t,providerMetadata:{[o]:{itemId:d.item.id}}})}else if(d.item.type===`file_search_call`)x[d.output_index]=void 0,u.enqueue({type:`tool-result`,toolCallId:d.item.id,toolName:i.toCustomToolName(`file_search`),result:{queries:d.item.queries,results:d.item.results?.map(e=>({attributes:e.attributes,fileId:e.file_id,filename:e.filename,score:e.score,text:e.text}))??null}});else if(d.item.type===`code_interpreter_call`)x[d.output_index]=void 0,u.enqueue({type:`tool-result`,toolCallId:d.item.id,toolName:i.toCustomToolName(`code_interpreter`),result:{outputs:d.item.outputs}});else if(d.item.type===`image_generation_call`)u.enqueue({type:`tool-result`,toolCallId:d.item.id,toolName:i.toCustomToolName(`image_generation`),result:{result:d.item.result}});else if(d.item.type===`tool_search_call`){let e=x[d.output_index],t=d.item.execution===`server`;if(e!=null){let n=t?e.toolCallId:d.item.call_id??d.item.id;t?j.push(n):u.enqueue({type:`tool-input-start`,id:n,toolName:e.toolName}),u.enqueue({type:`tool-input-end`,id:n}),u.enqueue({type:`tool-call`,toolCallId:n,toolName:e.toolName,input:JSON.stringify({arguments:d.item.arguments,call_id:t?null:n}),...t?{providerExecuted:!0}:{},providerMetadata:{[o]:{itemId:d.item.id}}})}x[d.output_index]=void 0}else if(d.item.type===`tool_search_output`){let e=d.item.call_id??j.shift()??d.item.id;u.enqueue({type:`tool-result`,toolCallId:e,toolName:i.toCustomToolName(`tool_search`),result:{tools:d.item.tools},providerMetadata:{[o]:{itemId:d.item.id}}})}else if(d.item.type===`mcp_call`){x[d.output_index]=void 0;let e=d.item.approval_request_id??void 0,t=e==null?d.item.id:h.get(e)??p[e]??d.item.id,n=`mcp.${d.item.name}`;u.enqueue({type:`tool-call`,toolCallId:t,toolName:n,input:d.item.arguments,providerExecuted:!0,dynamic:!0}),u.enqueue({type:`tool-result`,toolCallId:t,toolName:n,result:{type:`call`,serverLabel:d.item.server_label,name:d.item.name,arguments:d.item.arguments,...d.item.output==null?{}:{output:d.item.output},...d.item.error==null?{}:{error:d.item.error}},providerMetadata:{[o]:{itemId:d.item.id}}})}else if(d.item.type===`mcp_list_tools`)x[d.output_index]=void 0;else if(d.item.type===`apply_patch_call`){let e=x[d.output_index];e?.applyPatch&&!e.applyPatch.endEmitted&&d.item.operation.type!==`delete_file`&&(e.applyPatch.hasDiff||u.enqueue({type:`tool-input-delta`,id:e.toolCallId,delta:$(d.item.operation.diff)}),u.enqueue({type:`tool-input-delta`,id:e.toolCallId,delta:`"}}`}),u.enqueue({type:`tool-input-end`,id:e.toolCallId}),e.applyPatch.endEmitted=!0),e&&d.item.status===`completed`&&(w=!0,u.enqueue({type:`tool-call`,toolCallId:e.toolCallId,toolName:i.toCustomToolName(`apply_patch`),input:JSON.stringify({callId:d.item.call_id,operation:d.item.operation}),providerMetadata:{[o]:{itemId:d.item.id}}})),x[d.output_index]=void 0}else if(d.item.type===`mcp_approval_request`){x[d.output_index]=void 0;let e=f.config.generateId?.()??g(),t=d.item.approval_request_id??d.item.id;h.set(t,e);let n=`mcp.${d.item.name}`;u.enqueue({type:`tool-call`,toolCallId:e,toolName:n,input:d.item.arguments,providerExecuted:!0,dynamic:!0}),u.enqueue({type:`tool-approval-request`,approvalId:t,toolCallId:e})}else if(d.item.type===`local_shell_call`)x[d.output_index]=void 0,u.enqueue({type:`tool-call`,toolCallId:d.item.call_id,toolName:i.toCustomToolName(`local_shell`),input:JSON.stringify({action:{type:`exec`,command:d.item.action.command,timeoutMs:d.item.action.timeout_ms,user:d.item.action.user,workingDirectory:d.item.action.working_directory,env:d.item.action.env}}),providerMetadata:{[o]:{itemId:d.item.id}}});else if(d.item.type===`shell_call`)x[d.output_index]=void 0,u.enqueue({type:`tool-call`,toolCallId:d.item.call_id,toolName:i.toCustomToolName(`shell`),input:JSON.stringify({action:{commands:d.item.action.commands}}),...s&&{providerExecuted:!0},providerMetadata:{[o]:{itemId:d.item.id}}});else if(d.item.type===`shell_call_output`)u.enqueue({type:`tool-result`,toolCallId:d.item.call_id,toolName:i.toCustomToolName(`shell`),result:{output:d.item.output.map(e=>({stdout:e.stdout,stderr:e.stderr,outcome:e.outcome.type===`exit`?{type:`exit`,exitCode:e.outcome.exit_code}:{type:`timeout`}}))}});else if(d.item.type===`reasoning`){let e=O({itemId:d.item.id,outputIndex:d.output_index}),t=T[e];if(t!=null){let n=Object.entries(t.summaryParts).filter(([e,t])=>t===`active`||t===`can-conclude`).map(([e])=>e);for(let t of n)u.enqueue({type:`reasoning-end`,id:`${e}:${t}`,providerMetadata:{[o]:{itemId:e,reasoningEncryptedContent:d.item.encrypted_content??null}}});delete T[e]}D[d.output_index]=void 0}else d.item.type===`compaction`&&u.enqueue({type:`custom`,kind:`openai.compaction`,providerMetadata:{[o]:{type:`compaction`,itemId:d.item.id,encryptedContent:d.item.encrypted_content}}})}else if(Or(d)){let e=x[d.output_index];e!=null&&(e.suppressInputStreaming?e.bufferedInputDeltas?.push(d.delta):u.enqueue({type:`tool-input-delta`,id:e.toolCallId,delta:d.delta}))}else if(kr(d)){let e=x[d.output_index];e!=null&&u.enqueue({type:`tool-input-delta`,id:e.toolCallId,delta:d.delta})}else if(Nr(d)){let e=x[d.output_index];e?.applyPatch&&(u.enqueue({type:`tool-input-delta`,id:e.toolCallId,delta:$(d.delta)}),e.applyPatch.hasDiff=!0)}else if(Pr(d)){let e=x[d.output_index];e?.applyPatch&&!e.applyPatch.endEmitted&&(e.applyPatch.hasDiff||(u.enqueue({type:`tool-input-delta`,id:e.toolCallId,delta:$(d.diff)}),e.applyPatch.hasDiff=!0),u.enqueue({type:`tool-input-delta`,id:e.toolCallId,delta:`"}}`}),u.enqueue({type:`tool-input-end`,id:e.toolCallId}),e.applyPatch.endEmitted=!0)}else if(Ar(d))u.enqueue({type:`tool-result`,toolCallId:d.item_id,toolName:i.toCustomToolName(`image_generation`),result:{result:d.partial_image_b64},preliminary:!0});else if(jr(d)){let e=x[d.output_index];e!=null&&u.enqueue({type:`tool-input-delta`,id:e.toolCallId,delta:$(d.delta)})}else if(Mr(d)){let e=x[d.output_index];e!=null&&(u.enqueue({type:`tool-input-delta`,id:e.toolCallId,delta:`"}`}),u.enqueue({type:`tool-input-end`,id:e.toolCallId}),u.enqueue({type:`tool-call`,toolCallId:e.toolCallId,toolName:i.toCustomToolName(`code_interpreter`),input:JSON.stringify({code:d.code,containerId:e.codeInterpreter.containerId}),providerExecuted:!0}))}else if(Dr(d))b=d.response.id,u.enqueue({type:`response-metadata`,id:d.response.id,timestamp:new Date(d.response.created_at*1e3),modelId:d.response.model});else if(br(d)){let t=O({itemId:d.item_id,outputIndex:d.output_index});u.enqueue({type:`text-delta`,id:t,delta:d.delta}),e.providerOptions?.[o]?.logprobs&&d.logprobs&&y.push(d.logprobs)}else if(d.type===`response.reasoning_summary_part.added`){let e=O({itemId:d.item_id,outputIndex:d.output_index});if(d.summary_index>0){let t=T[e];if(t!=null){t.summaryParts[d.summary_index]=`active`;for(let n of Object.keys(t.summaryParts))t.summaryParts[n]===`can-conclude`&&(u.enqueue({type:`reasoning-end`,id:`${e}:${n}`,providerMetadata:{[o]:{itemId:e}}}),t.summaryParts[n]=`concluded`);u.enqueue({type:`reasoning-start`,id:`${e}:${d.summary_index}`,providerMetadata:{[o]:{itemId:e,reasoningEncryptedContent:t.encryptedContent??null}}})}}}else if(d.type===`response.reasoning_summary_text.delta`){let e=O({itemId:d.item_id,outputIndex:d.output_index});u.enqueue({type:`reasoning-delta`,id:`${e}:${d.summary_index}`,delta:d.delta,providerMetadata:{[o]:{itemId:e}}})}else if(d.type===`response.reasoning_summary_part.done`){let e=O({itemId:d.item_id,outputIndex:d.output_index}),t=T[e];t!=null&&(a?(u.enqueue({type:`reasoning-end`,id:`${e}:${d.summary_index}`,providerMetadata:{[o]:{itemId:e}}}),t.summaryParts[d.summary_index]=`concluded`):t.summaryParts[d.summary_index]=`can-conclude`)}else if(Tr(d))M||(_={unified:Dn({finishReason:d.response.incomplete_details?.reason,hasFunctionCall:w}),raw:d.response.incomplete_details?.reason??void 0}),v=d.response.usage??void 0,typeof d.response.service_tier==`string`&&(k=d.response.service_tier),d.response.reasoning?.context!=null&&(A=d.response.reasoning.context);else if(Er(d)){let e=d.response.incomplete_details?.reason;if(_={unified:e?Dn({finishReason:e,hasFunctionCall:w}):`error`,raw:e??`error`},v=d.response.usage??void 0,d.response.reasoning?.context!=null&&(A=d.response.reasoning.context),!M&&d.response.error!=null){M=!0;let e={type:`response.failed`,sequence_number:d.sequence_number,response:{error:d.response.error,incomplete_details:d.response.incomplete_details,service_tier:d.response.service_tier}};u.enqueue({type:`error`,error:be(e)??e})}}else Ir(d)?(S.push(d.annotation),d.annotation.type===`url_citation`?u.enqueue({type:`source`,sourceType:`url`,id:f.config.generateId?.()??g(),url:d.annotation.url,title:d.annotation.title}):d.annotation.type===`file_citation`?u.enqueue({type:`source`,sourceType:`document`,id:f.config.generateId?.()??g(),mediaType:`text/plain`,title:d.annotation.filename,filename:d.annotation.filename,providerMetadata:{[o]:{type:d.annotation.type,fileId:d.annotation.file_id,index:d.annotation.index}}}):d.annotation.type===`container_file_citation`?u.enqueue({type:`source`,sourceType:`document`,id:f.config.generateId?.()??g(),mediaType:`text/plain`,title:d.annotation.filename,filename:d.annotation.filename,providerMetadata:{[o]:{type:d.annotation.type,fileId:d.annotation.file_id,containerId:d.annotation.container_id}}}):d.annotation.type===`file_path`&&u.enqueue({type:`source`,sourceType:`document`,id:f.config.generateId?.()??g(),mediaType:`application/octet-stream`,title:d.annotation.file_id,filename:d.annotation.file_id,providerMetadata:{[o]:{type:d.annotation.type,fileId:d.annotation.file_id,index:d.annotation.index}}})):Lr(d)&&(M=!0,_={unified:`error`,raw:`error`},u.enqueue({type:`error`,error:be(d)??d}))},flush(e){for(let t of Object.values(x))if(t?.suppressInputStreaming){e.enqueue({type:`tool-input-start`,id:t.toolCallId,toolName:t.toolName});for(let n of t.bufferedInputDeltas??[])e.enqueue({type:`tool-input-delta`,id:t.toolCallId,delta:n})}let t={[o]:{responseId:b,...y.length>0?{logprobs:y}:{},...k===void 0?{}:{serviceTier:k},...A===void 0?{}:{reasoningContext:A}}};e.enqueue({type:`finish`,finishReason:_,usage:En(v),providerMetadata:t})}})),request:{body:t},response:{headers:l}}}};function br(e){return e.type===`response.output_text.delta`}function xr(e){let t=Cr(e);return t!=null&&Array.isArray(t.choices)&&typeof t.type!=`string`}function Sr({value:t,cause:n,url:r,requestBodyValues:i,responseHeaders:a}){return new e({message:`Received a Chat Completions stream while using the OpenAI Responses API. The default OpenAI provider model uses the Responses API. If your custom baseURL targets a Chat Completions-compatible endpoint, use openai.chat('model-id') or createOpenAI(...).chat('model-id') instead. You can also use @ai-sdk/openai-compatible for OpenAI-compatible providers.`,url:r,requestBodyValues:i,responseHeaders:a,responseBody:JSON.stringify(t),cause:n,data:t,isRetryable:!1})}function Cr(e){return typeof e==`object`&&e?e:void 0}function wr(e){return e.type===`response.output_item.done`}function Tr(e){return e.type===`response.completed`||e.type===`response.incomplete`}function Er(e){return e.type===`response.failed`}function Dr(e){return e.type===`response.created`}function Or(e){return e.type===`response.function_call_arguments.delta`}function kr(e){return e.type===`response.custom_tool_call_input.delta`}function Ar(e){return e.type===`response.image_generation_call.partial_image`}function jr(e){return e.type===`response.code_interpreter_call_code.delta`}function Mr(e){return e.type===`response.code_interpreter_call_code.done`}function Nr(e){return e.type===`response.apply_patch_call_operation_diff.delta`}function Pr(e){return e.type===`response.apply_patch_call_operation_diff.done`}function Fr(e){return e.type===`response.output_item.added`}function Ir(e){return e.type===`response.output_text.annotation.added`}function Lr(e){return e.type===`error`}function Rr(e){return e.type===`response.in_progress`}function zr(e){return e.type!==`response.created`&&e.type!==`response.in_progress`&&e.type!==`response.failed`&&e.type!==`error`&&e.type!==`unknown_chunk`}function Br(e){if(e==null)return{};switch(e.type){case`search`:return{action:{type:`search`,query:e.query??void 0,...e.queries!=null&&{queries:e.queries}},...e.sources!=null&&{sources:e.sources}};case`open_page`:return{action:{type:`openPage`,url:e.url}};case`find_in_page`:return{action:{type:`findInPage`,url:e.url,pattern:e.pattern}}}}function $(e){return JSON.stringify(e).slice(1,-1)}const Vr=`/v1/responses`,Hr=H(()=>W(J.object({inputFileExpiresAfter:J.number().int().min(3600).max(2592e3).optional()})));function Ur(e){for(let t of e){let e=t.type;if(e!==`text`)throw new a({functionality:`batch request type: ${e}`,message:`The OpenAI Batch API does not support batch requests with type "${e}".`})}}const Wr=()=>J.object({id:J.string(),status:J.string(),output_file_id:J.string().nullish(),error_file_id:J.string().nullish(),created_at:J.number().nullish(),expires_at:J.number().nullish(),request_counts:J.object({total:J.number().nullish(),completed:J.number().nullish(),failed:J.number().nullish()}).nullish(),errors:J.object({data:J.array(J.object({code:J.string().nullish(),message:J.string().nullish()})).nullish()}).nullish()}),Gr=H(()=>W(Wr())),Kr=H(()=>W(J.object({custom_id:J.string(),response:J.object({status_code:J.number(),request_id:J.string().nullish(),body:J.unknown()}).nullish(),error:J.object({code:J.string(),message:J.string()}).nullish()}))),qr=H(()=>W(J.object({data:J.array(Wr()),has_more:J.boolean(),last_id:J.string().nullish()})));var Jr=class{constructor(e){this.options=e,this.specificationVersion=`v4`,this.supportedUrls=_r,this.provider=e.provider}async doStartBatch(e){Ur(e.requests),Yr(e.requests);let t=[],n=e.webhookUrl==null?[]:[{warning:{type:`unsupported`,feature:`webhookUrl`,details:`The OpenAI Batch API does not support per-batch webhook URLs.`}}],r=(await this.parseBatchProviderOptions(e.providerOptions))?.inputFileExpiresAfter??172800;for(let r of e.requests){let e=await this.prepareRequest(r);t.push(JSON.stringify({custom_id:r.id,method:`POST`,url:Vr,body:e.body}),`
|
|
3
|
-
`);for(let t of e.warnings)n.push({requestId:r.id,warning:t});for(let e of r.options.tools??[])e.type===`provider`&&!Xr.has(e.id)&&n.push({requestId:r.id,warning:{type:`unsupported`,feature:`batch result conversion for tool "${e.name}"`,details:`OpenAI may return output for this tool that AI SDK text batches cannot currently convert.`}})}let i=`batch.jsonl`,a=new Blob(t,{type:`application/jsonl`});t.length=0;let o=new FormData;o.append(`file`,a,i),o.append(`purpose`,`batch`),o.append(`expires_after[anchor]`,`created_at`),o.append(`expires_after[seconds]`,String(r));let{value:s}=await ie({url:this.getUrl(`/files`),headers:E(this.options.config.headers?.(),e.headers),body:{content:o,values:{purpose:`batch`,"expires_after[anchor]":`created_at`,"expires_after[seconds]":String(r),file:{name:i,type:a.type,size:a.size}}},failedResponseHandler:Y,successfulResponseHandler:G(rt),abortSignal:e.abortSignal,fetch:this.options.config.fetch}),{value:c}=await I({url:this.getUrl(`/batches`),headers:E(this.options.config.headers?.(),e.headers),body:{input_file_id:s.id,endpoint:Vr,completion_window:`24h`},failedResponseHandler:Y,successfulResponseHandler:G(Gr),abortSignal:e.abortSignal,fetch:this.options.config.fetch}),l=ei(s.expires_at);return{batchId:c.id,...Zr(c),providerMetadata:{openai:{inputFileId:s.id,...l==null?{}:{inputFileExpiresAt:l}}},warnings:n}}async parseBatchProviderOptions(e){let t=this.options.config.provider.includes(`azure`)?`azure`:`openai`,n=await V({provider:t,providerOptions:e,schema:Hr});return n==null&&t!==`openai`&&(n=await V({provider:`openai`,providerOptions:e,schema:Hr})),n}async doGetBatchStatus(e){return Zr(await this.retrieveBatch(e))}async doCancelBatch(e){return await I({url:this.getUrl(`/batches/${encodeURIComponent(e.batchId)}/cancel`),headers:E(this.options.config.headers?.(),e.headers),body:{},failedResponseHandler:Y,successfulResponseHandler:G(Gr),abortSignal:e.abortSignal,fetch:this.options.config.fetch}),{}}async doListBatches(e){let t=new URL(this.getUrl(`/batches`));e.limit!=null&&t.searchParams.set(`limit`,String(e.limit)),e.cursor!=null&&t.searchParams.set(`after`,e.cursor);let{value:n}=await f({url:t.toString(),headers:E(this.options.config.headers?.(),e.headers),failedResponseHandler:Y,successfulResponseHandler:G(qr),abortSignal:e.abortSignal,fetch:this.options.config.fetch,validateUrl:!1});return{batches:n.data.map(e=>({batchId:e.id,...Zr(e)})),...n.has_more&&n.last_id!=null?{nextCursor:n.last_id}:{}}}async doGetBatchResults(e){let n=await this.retrieveBatch(e),i=Zr(n);if(i.status===`pending`)throw new t({argument:`batchId`,message:`OpenAI batch "${e.batchId}" is not complete.`});let a=[n.output_file_id,n.error_file_id].filter(e=>e!=null);if(i.status===`completed`&&a.length===0)throw new r({data:n,message:`OpenAI batch "${e.batchId}" completed without batch output.`});let o=this.iterateBatchResults({fileIds:a,options:e});return se(o)}async retrieveBatch(e){let{value:t}=await f({url:this.getUrl(`/batches/${encodeURIComponent(e.batchId)}`),headers:E(this.options.config.headers?.(),e.headers),failedResponseHandler:Y,successfulResponseHandler:G(Gr),abortSignal:e.abortSignal,fetch:this.options.config.fetch,validateUrl:!1});return t}async*iterateBatchResults({fileIds:e,options:t}){for(let n of e){let{value:e}=await f({url:this.getUrl(`/files/${encodeURIComponent(n)}/content`),headers:E(this.options.config.headers?.(),t.headers),failedResponseHandler:Y,successfulResponseHandler:ue(Kr),abortSignal:t.abortSignal,fetch:this.options.config.fetch,validateUrl:!1});for await(let t of e)yield await this.convertResultLine(t)}}async convertResultLine(e){if(e.error!=null){let t={message:e.error.message,code:e.error.code};return e.error.code===`batch_cancelled`?{type:`text`,id:e.custom_id,status:`cancelled`,error:t}:e.error.code===`batch_expired`?{type:`text`,id:e.custom_id,status:`expired`,error:t}:{type:`text`,id:e.custom_id,status:`failed`,error:t}}if(e.response==null)return{type:`text`,id:e.custom_id,status:`failed`,error:{message:`OpenAI returned a batch result without a response or error.`,code:`invalid_batch_result`}};if(e.response.status_code<200||e.response.status_code>=300)return{type:`text`,id:e.custom_id,status:`failed`,error:await ti({body:e.response.body,statusCode:e.response.status_code})};let t=await ni(e.response.body);return t.success?{type:`text`,id:e.custom_id,status:`succeeded`,result:t.result}:{type:`text`,id:e.custom_id,status:`failed`,error:t.error}}async prepareRequest(e){let{args:t,warnings:n}=await yr.prepareRequest({modelId:e.modelId,config:this.options.config,options:e.options});return{body:t,warnings:n}}getUrl(e){return this.options.config.url({path:e,modelId:``})}};function Yr(e){let n=e[0]?.modelId;for(let r of e)if(r.modelId!==n)throw new t({argument:`requests`,message:`The OpenAI Batch API requires all requests in a batch to use the same model. Found "${n}" and "${r.modelId}".`})}const Xr=new Set([`openai.code_interpreter`,`openai.custom`,`openai.file_search`,`openai.web_search`,`openai.web_search_preview`]);function Zr(e){let t=Qr(e.status),n=e.errors?.data?.[0],r=$r(e.request_counts),i=ei(e.created_at),a=ei(e.expires_at);return{status:t,rawStatus:e.status,...r==null?{}:{requestCounts:r},...n==null?{}:{error:{message:n.message??`OpenAI batch failed.`,...n.code==null?{}:{code:n.code}}},...i==null?{}:{createdAt:i},...a==null?{}:{expiresAt:a}}}function Qr(e){switch(e){case`completed`:return`completed`;case`failed`:case`expired`:case`cancelled`:return`failed`;default:return`pending`}}function $r(e){let t=e?.total,n=e?.completed,r=e?.failed;return s({total:t,pending:t!=null&&n!=null&&r!=null?t-n-r:void 0,completed:n,failed:r})}function ei(e){if(e==null||!Number.isFinite(e))return;let t=new Date(e*1e3);return Number.isNaN(t.getTime())?void 0:t.toISOString()}async function ti({body:e,statusCode:t}){let n=await P({value:e,schema:ge});return n.success?{message:n.value.error.message,type:n.value.error.type??void 0,code:n.value.error.code==null?void 0:String(n.value.error.code),statusCode:t}:{message:`OpenAI batch request failed with status code ${t}.`,statusCode:t}}async function ni(e){let t=await P({value:e,schema:Un});if(!t.success)return{success:!1,error:{message:`OpenAI returned an invalid Responses batch result.`,code:`invalid_response`}};let n=t.value;if(n.error!=null)return{success:!1,error:{message:n.error.message,type:n.error.type,code:n.error.code}};if(n.output==null){let e=n.incomplete_details?.reason;return{success:!1,error:{message:e==null?`OpenAI Responses returned no output.`:`OpenAI Responses returned no output (${e}).`,code:`invalid_response`}}}let r=[],i=[],a=!1;for(let e of n.output)switch(e.type){case`reasoning`:{let t=e.summary.length>0?e.summary:[{type:`summary_text`,text:``}];for(let n of t)r.push({type:`reasoning`,text:n.text,providerMetadata:{openai:{itemId:e.id,reasoningEncryptedContent:e.encrypted_content??null}}});break}case`message`:for(let t of e.content)r.push({type:`text`,text:t.text}),t.logprobs!=null&&i.push(t.logprobs);break;case`function_call`:a=!0,r.push({type:`tool-call`,toolCallId:e.call_id,toolName:e.name,input:e.arguments,providerMetadata:{openai:{itemId:e.id,...e.namespace!=null&&{namespace:e.namespace},...e.caller!=null&&{caller:e.caller.type===`program`?{type:`program`,callerId:e.caller.caller_id}:e.caller}}}});break;case`custom_tool_call`:a=!0,r.push({type:`tool-call`,toolCallId:e.call_id,toolName:e.name,input:JSON.stringify(e.input),providerMetadata:{openai:{itemId:e.id}}});break;case`web_search_call`:r.push({type:`tool-call`,toolCallId:e.id,toolName:`web_search`,input:`{}`,providerExecuted:!0,dynamic:!0}),r.push({type:`tool-result`,toolCallId:e.id,toolName:`web_search`,result:Br(e.action),dynamic:!0});break;case`file_search_call`:r.push({type:`tool-call`,toolCallId:e.id,toolName:`file_search`,input:`{}`,providerExecuted:!0,dynamic:!0}),r.push({type:`tool-result`,toolCallId:e.id,toolName:`file_search`,result:{queries:e.queries,results:e.results?.map(e=>({attributes:e.attributes,fileId:e.file_id,filename:e.filename,score:e.score,text:e.text}))??null},dynamic:!0});break;case`code_interpreter_call`:r.push({type:`tool-call`,toolCallId:e.id,toolName:`code_interpreter`,input:JSON.stringify({code:e.code,containerId:e.container_id}),providerExecuted:!0,dynamic:!0}),r.push({type:`tool-result`,toolCallId:e.id,toolName:`code_interpreter`,result:{outputs:e.outputs},dynamic:!0});break;default:return{success:!1,error:{message:`OpenAI returned an unsupported "${e.type}" output item in an AI SDK text batch.`,code:`unsupported_content`}}}let o={openai:{responseId:n.id,...i.length>0?{logprobs:i}:{},...typeof n.service_tier==`string`?{serviceTier:n.service_tier}:{},...n.reasoning?.context==null?{}:{reasoningContext:n.reasoning.context}}};return{success:!0,result:{content:r,finishReason:{unified:Dn({finishReason:n.incomplete_details?.reason,hasFunctionCall:a}),raw:n.incomplete_details?.reason??void 0},usage:En(n.usage),response:{id:n.id,timestamp:n.created_at==null?void 0:new Date(n.created_at*1e3),modelId:n.model},providerMetadata:o,warnings:[]}}}const ri=J.strictObject({type:J.string(),responseEvent:J.string().optional()}).refine(e=>e.type===`response.event`==(e.responseEvent!==void 0),`responseEvent is required for response.event and forbidden for other event types.`),ii=J.strictObject({client:J.strictObject({dataChannel:J.strictObject({allowedClientEvents:J.union([J.literal(`all`),J.array(J.string())]).optional(),allowedServerEvents:J.union([J.literal(`all`),J.array(ri)]).optional()})}).optional(),delegation:J.strictObject({type:J.literal(`client`)}).nullable().optional(),input:J.array(J.discriminatedUnion(`role`,[J.strictObject({type:J.literal(`message`),role:J.enum([`developer`,`user`]),content:J.tuple([J.strictObject({type:J.literal(`input_text`),text:J.string()})])}),J.strictObject({type:J.literal(`message`),role:J.literal(`assistant`),content:J.tuple([J.strictObject({type:J.enum([`text`,`output_text`]),text:J.string()})])})])).max(128).optional(),store:J.boolean().optional(),voice:J.strictObject({id:J.string().min(1)}).optional()}),ai=J.union([J.strictObject({type:J.literal(`audio/pcm`),rate:J.union([J.literal(16e3),J.literal(24e3)])}),J.strictObject({type:J.enum([`audio/pcma`,`audio/pcmu`]),rate:J.literal(8e3)})]);function oi(e,n,r=`websocket`){for(let t of Object.keys(e))if(![`instructions`,`voice`,`inputAudioFormat`,`outputAudioFormat`,`providerOptions`].includes(t))throw new a({functionality:`OpenAI Live session setting: ${t}`});if(J.object({delegation:J.object({type:J.literal(`responses`)})}).safeParse(e.providerOptions?.openai).success)throw new a({functionality:`OpenAI Live Responses delegation; only client delegation is supported`});let i=ii.parse(e.providerOptions?.openai??{});if(i.client!==void 0&&r!==`webrtc`)throw new a({functionality:`OpenAI Live client permissions outside WebRTC startup`});if(i.voice!=null&&e.voice!=null)throw new t({argument:`voice`,message:`Choose either voice or providerOptions.openai.voice.`});if(r===`webrtc`&&(e.inputAudioFormat!==void 0||e.outputAudioFormat!==void 0))throw new a({functionality:`Fixed audio formats for OpenAI Live WebRTC; audio is negotiated through SDP`});let o=e.inputAudioFormat==null?void 0:ai.parse(e.inputAudioFormat),s=e.outputAudioFormat==null?void 0:ai.parse(e.outputAudioFormat);if(o!=null&&s!=null&&(o.type!==s.type||o.rate!==s.rate))throw new t({argument:`outputAudioFormat`,message:`OpenAI Live requires the same input and output audio format.`});return{model:n,...e.instructions===void 0?{}:{instructions:e.instructions},audio:{...r===`websocket`?{format:o??s??{type:`audio/pcm`,rate:24e3}}:{},output:{voice:i.voice??e.voice??`marin`}},...i.delegation===void 0?{}:{delegation:i.delegation},...i.client===void 0?{}:{client:{data_channel:{...i.client.dataChannel.allowedClientEvents===void 0?{}:{allowed_client_events:i.client.dataChannel.allowedClientEvents},...i.client.dataChannel.allowedServerEvents===void 0?{}:{allowed_server_events:i.client.dataChannel.allowedServerEvents===`all`?`all`:i.client.dataChannel.allowedServerEvents.map(e=>({type:e.type,...e.responseEvent===void 0?{}:{response_event:e.responseEvent}}))}}}},...i.input===void 0?{}:{input:i.input},...i.store===void 0?{}:{store:i.store}}}const si=J.object({id:J.string().min(1)}),ci=si.extend({delegation:J.object({type:J.enum([`client`,`responses`])}).nullish()}),li=J.object({seconds:J.number().nonnegative()}),ui={delta:J.string(),start_ms:J.number().nonnegative(),end_ms:J.number().nonnegative()},di={client_event_id:J.string().nullish()},fi={...di,start_ms:J.number().nonnegative(),end_ms:J.number().nonnegative()},pi=J.discriminatedUnion(`type`,[J.object({type:J.literal(`session.started`),session:ci}),J.object({type:J.literal(`session.closed`),session:si.nullish(),usage:li,reason:J.string()}),J.object({type:J.literal(`session.usage.updated`),usage:li,context_window:J.object({usage_ratio:J.number().min(0).max(1)}).nullish()}),J.object({type:J.literal(`session.output_audio.delta`),delta:J.string()}),J.object({type:J.literal(`session.input_transcript.delta`),...ui}),J.object({type:J.literal(`session.output_transcript.delta`),...ui}),J.object({type:J.literal(`session.delegation.created`),offset_ms:J.number().nonnegative().nullish(),delegation:J.object({id:J.string().min(1),target:J.enum([`client`,`responses`]).nullish(),response_id:J.string().min(1).nullish()})}),J.object({type:J.literal(`session.updated`),session:si,...di}),J.object({type:J.literal(`session.input_audio.muted`),...di}),J.object({type:J.literal(`session.input_audio.unmuted`),...di}),J.object({type:J.literal(`session.instructions.appended`),...fi}),J.object({type:J.literal(`session.thinking.appended`),...fi}),J.object({type:J.literal(`session.commentary.appended`),...fi}),J.object({type:J.literal(`error`),error:J.object({message:J.string(),code:J.string().nullish(),client_event_id:J.string().nullish()})})]),mi=new Set(pi.options.map(e=>e.shape.type.value)),hi=J.object({type:J.string()});function gi(){return e=>_i(e)}function _i(e){return[vi(e)]}function vi(e){let t=hi.safeParse(e);if(t.success&&!mi.has(t.data.type))return{type:`custom`,rawType:t.data.type,raw:e};let n=pi.safeParse(e);if(!n.success)return{type:`error`,code:`invalid_server_event`,message:`Invalid OpenAI Live server event.`,raw:e};let r=n.data;if(`start_ms`in r&&r.end_ms<r.start_ms)return{type:`error`,code:`invalid_server_event`,message:`Invalid OpenAI Live event time interval.`,raw:e};switch(r.type){case`session.started`:return{type:`session-started`,sessionId:r.session.id,delegationMode:r.session.delegation?.type===`responses`?`provider`:`client`,raw:e};case`session.closed`:return{type:`session-closed`,sessionId:r.session?.id,usage:r.usage,reason:r.reason,raw:e};case`session.usage.updated`:return{type:`session-usage`,usage:r.usage,contextWindowUsageRatio:r.context_window?.usage_ratio,raw:e};case`session.output_audio.delta`:return{type:`audio-chunk`,delta:r.delta,raw:e};case`session.input_transcript.delta`:case`session.output_transcript.delta`:return{type:`transcript-fragment`,speaker:r.type===`session.input_transcript.delta`?`user`:`assistant`,delta:r.delta,startMs:r.start_ms,endMs:r.end_ms,raw:e};case`session.delegation.created`:return{type:`delegation-created`,delegationId:r.delegation.id,target:r.delegation.target===`responses`?`provider`:r.delegation.target??void 0,offsetMs:r.offset_ms??void 0,...r.delegation.response_id==null?{}:{responseId:r.delegation.response_id},raw:e};case`error`:return{type:`error`,message:r.error.message,code:r.error.code??void 0,clientEventId:r.error.client_event_id??void 0,raw:e};case`session.updated`:return{type:`command-acknowledged`,command:`session.update`,clientEventId:r.client_event_id??void 0,raw:e};case`session.input_audio.muted`:case`session.input_audio.unmuted`:return{type:`command-acknowledged`,command:r.type.slice(0,-1),clientEventId:r.client_event_id??void 0,raw:e};case`session.instructions.appended`:case`session.thinking.appended`:case`session.commentary.appended`:return{type:`command-acknowledged`,command:r.type.slice(0,-2),clientEventId:r.client_event_id??void 0,raw:e}}}function yi(e,t){let n=`eventId`in e&&e.eventId!==void 0?{event_id:e.eventId}:{};switch(e.type){case`session-start`:return{type:`session.start`,session:oi(e.config,t),...n};case`session-update`:throw new a({functionality:`OpenAI Live session-update; startup settings are immutable; use context-append or input-audio-mute/input-audio-unmute`});case`session-close`:return{type:`session.close`,...n};case`input-audio-append`:return{type:`session.input_audio.append`,audio:e.audio,...n};case`input-audio-mute`:return{type:`session.input_audio.mute`,...n};case`input-audio-unmute`:return{type:`session.input_audio.unmute`,...n};case`context-append`:{let t=J.object({content:J.string(),delegationId:J.string().min(1).nullable()}).parse(e);return{type:`session.${J.strictObject({channel:J.enum([`instructions`,`thinking`,`commentary`]).optional()}).parse(e.providerOptions?.openai??{}).channel??`thinking`}.append`,content:t.content,delegation_id:t.delegationId,...n}}default:throw new a({functionality:`OpenAI Live command: ${e.type}; use continuous audio and context-append instead of voice-turn commands`})}}const bi=J.object({session:J.object({id:J.string().min(1)}),transport:J.object({type:J.literal(`webrtc`),sdp:J.string().min(1)})});var xi=class{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion=`v4`,this.capabilities={conversation:`continuous`,transports:[`websocket`,`webrtc`],connections:[`server-websocket`,`webrtc`],startup:`session-start`,finalization:`session-close`}}get provider(){return this.config.provider}getWebRTCConfig(){return{dataChannelLabel:`oai-events`}}getServerWebSocketConfig(){let e=new URL(`${this.config.baseURL}/live/sessions`);e.protocol=e.protocol===`http:`?`ws:`:`wss:`;let t={};for(let[e,n]of Object.entries(this.config.headers()))n!==void 0&&(t[e]=n);return{url:e.toString(),headers:t}}async doCreateWebRTCSession({sdp:e,sessionConfig:t={},abortSignal:n}){let r=oi(t,this.modelId,`webrtc`),{value:i}=await I({url:`${this.config.baseURL}/live/sessions`,headers:this.config.headers(),body:{session:r,transport:{type:`webrtc`,sdp:J.string().min(1).parse(e)}},failedResponseHandler:Y,successfulResponseHandler:G(bi),abortSignal:n,fetch:this.config.fetch});return{sessionId:i.session.id,sdp:i.transport.sdp}}parseServerEvent(e){return _i(e)}createServerEventParser(){return gi()}serializeClientEvent(e){return yi(e,this.modelId)}buildSessionConfig(e){return oi(e,this.modelId)}};function Si(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,clientEventId:t.error?.event_id??void 0,raw:e};default:return{type:`custom`,rawType:n,raw:e}}}function Ci(e,t){switch(e.type){case`session-update`:return{type:`session.update`,session:wi(e.config,t),...e.eventId==null?{}:{event_id:e.eventId}};case`input-audio-append`:return{type:`input_audio_buffer.append`,audio:e.audio,...e.eventId==null?{}:{event_id:e.eventId}};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 wi(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 Ti=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}:wi(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 Si(e)}serializeClientEvent(e){return Ci(e,this.modelId)}buildSessionConfig(e){return wi(e,this.modelId)}};const Ei=[`gpt-live-1`];function Di(e,{api:n}={}){if(n!==void 0){if(n!==`live`&&n!==`realtime`)throw new t({argument:`api`,message:`OpenAI realtime api must be "live" or "realtime".`});return n}return Ei.some(t=>t===e)?`live`:`realtime`}function Oi(e){let t=(t,n)=>{let r=Di(t,n),i={...e,provider:`${e.provider}.${r}`};return r===`live`?new xi(t,i):new Ti(t,i)};return Object.assign(t,{getToken:async e=>{let n=t(e.model,e);if(n instanceof xi)throw new a({functionality:`Short-lived OpenAI credentials for the Live API. Use server WebSocket setup via getServerWebSocketConfig() with a server-side API key instead.`});let r=await n.doCreateClientSecret({sessionConfig:e.sessionConfig,expiresAfterSeconds:e.expiresAfterSeconds});return{token:r.token,url:r.url,expiresAt:r.expiresAt}}})}const ki=H(()=>W(J.object({instructions:J.string().nullish(),speed:J.number().min(.25).max(4).nullish()})));var Ai=class e{static[q](e){return B({modelId:e.modelId,config:e.config})}static[K](t){return new e(t.modelId,t.config)}get provider(){return this.config.provider}constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion=`v4`}async getArgs({text:e,voice:t=`alloy`,outputFormat:n=`mp3`,speed:r,instructions:i,language:a,providerOptions:o}){let s=[],c=await V({provider:`openai`,providerOptions:o,schema:ki}),l={model:this.modelId,input:e,voice:t,response_format:`mp3`,speed:r,instructions:i};if(n&&([`mp3`,`opus`,`aac`,`flac`,`wav`,`pcm`].includes(n)?l.response_format=n:s.push({type:`unsupported`,feature:`outputFormat`,details:`Unsupported output format: ${n}. Using mp3 instead.`})),c){let e={speed:c.speed??void 0,instructions:c.instructions??void 0};for(let t in e){let n=e[t];n!==void 0&&(l[t]=n)}}return a&&s.push({type:`unsupported`,feature:`language`,details:`OpenAI speech models do not support language selection. Language parameter "${a}" was ignored.`}),{requestBody:l,warnings:s}}async doGenerate(e){let t=this.config._internal?.currentDate?.()??new Date,{requestBody:n,warnings:r}=await this.getArgs(e),{value:i,responseHeaders:a,rawValue:o}=await I({url:this.config.url({path:`/audio/speech`,modelId:this.modelId}),headers:E(this.config.headers?.(),e.headers),body:n,failedResponseHandler:Y,successfulResponseHandler:z(),abortSignal:e.abortSignal,fetch:this.config.fetch});return{audio:i,warnings:r,request:{body:JSON.stringify(n)},response:{timestamp:t,modelId:this.modelId,headers:a,body:o}}}};const ji=H(()=>W(J.object({text:J.string(),language:J.string().nullish(),duration:J.number().nullish(),words:J.array(J.object({word:J.string(),start:J.number(),end:J.number()})).nullish(),segments:J.array(J.union([J.object({id:J.number(),seek:J.number(),start:J.number(),end:J.number(),text:J.string(),tokens:J.array(J.number()),temperature:J.number(),avg_logprob:J.number(),compression_ratio:J.number(),no_speech_prob:J.number()}),J.object({type:J.literal(`transcript.text.segment`),id:J.string(),start:J.number(),end:J.number(),text:J.string(),speaker:J.string()})])).nullish(),usage:J.record(J.string(),J.json()).nullish()}))),Mi=H(()=>W(J.object({include:J.array(J.string()).optional(),language:J.string().optional(),prompt:J.string().optional(),temperature:J.number().min(0).max(1).default(0).optional(),timestampGranularities:J.array(J.enum([`word`,`segment`])).default([`segment`]).optional(),responseFormat:J.enum([`json`,`verbose_json`,`diarized_json`]).optional(),chunkingStrategy:J.union([J.literal(`auto`),J.object({type:J.literal(`server_vad`),threshold:J.number().min(0).max(1).optional(),prefixPaddingMs:J.number().int().min(0).optional(),silenceDurationMs:J.number().int().min(0).optional()})]).optional(),streaming:J.object({delay:J.enum([`minimal`,`low`,`medium`,`high`,`xhigh`]).optional(),include:J.array(J.string()).optional()}).optional()})));function Ni(e){return e===`gpt-realtime-whisper`||e.startsWith(`gpt-realtime-whisper-`)}const Pi={afrikaans:`af`,arabic:`ar`,armenian:`hy`,azerbaijani:`az`,belarusian:`be`,bosnian:`bs`,bulgarian:`bg`,catalan:`ca`,chinese:`zh`,croatian:`hr`,czech:`cs`,danish:`da`,dutch:`nl`,english:`en`,estonian:`et`,finnish:`fi`,french:`fr`,galician:`gl`,german:`de`,greek:`el`,hebrew:`he`,hindi:`hi`,hungarian:`hu`,icelandic:`is`,indonesian:`id`,italian:`it`,japanese:`ja`,kannada:`kn`,kazakh:`kk`,korean:`ko`,latvian:`lv`,lithuanian:`lt`,macedonian:`mk`,malay:`ms`,marathi:`mr`,maori:`mi`,nepali:`ne`,norwegian:`no`,persian:`fa`,polish:`pl`,portuguese:`pt`,romanian:`ro`,russian:`ru`,serbian:`sr`,slovak:`sk`,slovenian:`sl`,spanish:`es`,swahili:`sw`,swedish:`sv`,tagalog:`tl`,tamil:`ta`,thai:`th`,turkish:`tr`,ukrainian:`uk`,urdu:`ur`,vietnamese:`vi`,welsh:`cy`};var Fi=class e{static[q](e){return B({modelId:e.modelId,config:e.config})}static[K](t){return new e(t.modelId,t.config)}get provider(){return this.config.provider}constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion=`v4`}async getArgs({audio:e,mediaType:t,providerOptions:n}){let r=[],i=await V({provider:`openai`,providerOptions:n,schema:Mi}),a=new FormData,o=e instanceof Uint8Array?new Blob([e]):new Blob([A(e)]);a.append(`model`,this.modelId);let s=_(t);a.append(`file`,new File([o],`audio`,{type:t}),`audio.${s}`),this.modelId===`whisper-1`&&a.append(`response_format`,`verbose_json`);let c=this.modelId===`gpt-4o-transcribe-diarize`,l=i?.chunkingStrategy??(c?`auto`:void 0);if(i){let e=[`gpt-4o-transcribe`,`gpt-4o-mini-transcribe`].includes(this.modelId),t={include:i.include,language:i.language,prompt:i.prompt,...this.modelId!==`whisper-1`&&{response_format:i.responseFormat??(c?`diarized_json`:e?`json`:`verbose_json`)},temperature:i.temperature,timestamp_granularities:i.timestampGranularities};for(let[e,n]of Object.entries(t))if(n!=null){if(Array.isArray(n))for(let t of n)a.append(`${e}[]`,String(t));else a.append(e,String(n))}}else c&&a.append(`response_format`,`diarized_json`);return l!=null&&a.append(`chunking_strategy`,typeof l==`string`?l:JSON.stringify({type:l.type,...l.threshold!=null&&{threshold:l.threshold},...l.prefixPaddingMs!=null&&{prefix_padding_ms:l.prefixPaddingMs},...l.silenceDurationMs!=null&&{silence_duration_ms:l.silenceDurationMs}})),{formData:a,warnings:r}}async doGenerate(e){if(Ni(this.modelId))throw new a({functionality:`non-streaming transcription with ${this.modelId}`});let t=this.config._internal?.currentDate?.()??new Date,{formData:n,warnings:r}=await this.getArgs(e),{value:i,responseHeaders:o,rawValue:s}=await oe({url:this.config.url({path:`/audio/transcriptions`,modelId:this.modelId}),headers:E(this.config.headers?.(),e.headers),formData:n,failedResponseHandler:Y,successfulResponseHandler:G(ji),abortSignal:e.abortSignal,fetch:this.config.fetch}),c=i.language!=null&&i.language in Pi?Pi[i.language]:void 0,l=i.segments?.flatMap(e=>`speaker`in e?[{text:e.text,startSecond:e.start,endSecond:e.end,speaker:e.speaker}]:[]);return{text:i.text,segments:i.segments?.map(e=>({text:e.text,startSecond:e.start,endSecond:e.end}))??i.words?.map(e=>({text:e.word,startSecond:e.start,endSecond:e.end}))??[],language:c,durationInSeconds:i.duration??void 0,warnings:r,...i.usage!=null&&{usage:i.usage},response:{timestamp:t,modelId:this.modelId,headers:o,body:s},...l!=null&&l.length>0&&{providerMetadata:{openai:{segments:l}}}}}async doStream(e){if(!Ni(this.modelId))throw new a({functionality:`streaming transcription with ${this.modelId}`});let t=this.config._internal?.currentDate?.()??new Date,n=await V({provider:`openai`,providerOptions:e.providerOptions,schema:Mi}),r=[],i=e.providerOptions?.openai??{};for(let e of[`include`,`prompt`,`temperature`,`timestampGranularities`])i[e]!=null&&r.push({type:`unsupported`,feature:`providerOptions.openai.${e}`,details:`OpenAI streaming transcription does not support ${e}.`});let o=E(this.config.headers?.(),e.headers),s=Li({modelId:this.modelId,inputAudioFormat:e.inputAudioFormat,providerOptions:n});return{request:{body:s},response:{timestamp:t,modelId:this.modelId},stream:Ii({webSocket:this.config.webSocket,url:F(this.config.url({path:`/realtime?intent=transcription`,modelId:this.modelId})),headers:o,sessionUpdate:s,language:n?.language,warnings:r,audio:e.audio,abortSignal:e.abortSignal,includeRawChunks:e.includeRawChunks})}}};function Ii({webSocket:e,url:t,headers:n,sessionUpdate:r,language:i,warnings:a,audio:o,abortSignal:s,includeRawChunks:c}){let l=!1,u=()=>{};return new ReadableStream({start:d=>{let f=Ri(n),p,m;u=e=>{p==null?o.cancel().catch(()=>{}):p.cancel().catch(()=>{}),m?.close(e)};let h=e=>{l||(l=!0,u(),d.error(e))},g=(e,t)=>{l||(l=!0,t!=null&&d.enqueue({type:`transcript-final`,id:t,text:e}),d.enqueue({type:`finish`,text:e,segments:[],language:i}),d.close(),u(1e3))},_=async e=>{p=o.getReader();try{for(;;){let{done:t,value:n}=await p.read();if(t||l)break;e.send(JSON.stringify({type:`input_audio_buffer.append`,audio:M(n)})),await pe(e)}}finally{p.releaseLock(),p=void 0}l||e.send(JSON.stringify({type:`input_audio_buffer.commit`}))};m=re({url:t,protocols:f.protocols,headers:f.headers,webSocket:e,abortSignal:s,onAbort:h,onProcessingError:h,onOpen:e=>{d.enqueue({type:`stream-start`,warnings:a}),e.send(JSON.stringify(r)),_(e).catch(h)},onMessageText:async e=>{let t=await N({text:e});if(!t.success)return;let n=t.value;switch(c&&d.enqueue({type:`raw`,rawValue:n}),n.type){case`conversation.item.input_audio_transcription.delta`:d.enqueue({type:`transcript-delta`,id:n.item_id,delta:n.delta??``});break;case`conversation.item.input_audio_transcription.completed`:g(n.transcript??``,n.item_id);break;case`error`:h(Error(n.error?.message??`OpenAI realtime error`))}},onSocketError:()=>{h(Error(`OpenAI realtime transcription error`))},onClose:()=>{l||(l=!0,u(),d.close())}})},cancel:()=>{l||(l=!0,u())}})}function Li({modelId:e,inputAudioFormat:t,providerOptions:n}){return{type:`session.update`,session:{type:`transcription`,audio:{input:{format:{type:t.type,...t.rate==null?{}:{rate:t.rate}},transcription:{model:e,...n?.language==null?{}:{language:n.language},...n?.streaming?.delay==null?{}:{delay:n.streaming.delay}},turn_detection:null}},...n?.streaming?.include==null?{}:{include:n.streaming.include}}}}function Ri(e){let t;for(let[n,r]of Object.entries(e))n.toLowerCase()===`authorization`&&r!=null&&(t=r);let n=t?.match(/^bearer\s+(.+)$/i)?.[1];return n==null?{protocols:[`realtime`],headers:e}:{protocols:[`realtime`,`openai-insecure-api-key.${n}`],headers:Object.fromEntries(Object.entries(e).filter(([e])=>e.toLowerCase()!==`authorization`))}}const zi=H(()=>W(J.object({})));var Bi=class e{static[q](e){return B({modelId:e.modelId,config:e.config})}static[K](t){return new e(t.modelId,t.config)}get provider(){return this.config.provider}constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion=`v4`}async doStream(e){if(e.targetLanguage==null)throw new t({argument:`targetLanguage`,message:`targetLanguage is required for translation model '${this.modelId}'.`});let n=this.config._internal?.currentDate?.()??new Date;await V({provider:`openai`,providerOptions:e.providerOptions,schema:zi});let r=[];Ui(e.inputAudioFormat),e.sourceLanguage!=null&&r.push({type:`unsupported`,feature:`sourceLanguage`,details:`The OpenAI Realtime translation API auto-detects the source language and does not accept a source language.`}),e.outputAudioFormat!=null&&r.push({type:`unsupported`,feature:`outputAudioFormat`,details:`The OpenAI Realtime translation API always outputs 24kHz 16-bit PCM audio and does not accept an output audio format.`});let i=E(this.config.headers?.(),e.headers),a=Hi({targetLanguage:e.targetLanguage});return{request:{body:a},response:{timestamp:n,modelId:this.modelId},stream:Vi({webSocket:this.config.webSocket,url:F(this.config.url({path:`/realtime/translations?model=${encodeURIComponent(this.modelId)}`,modelId:this.modelId})),headers:i,sessionUpdate:a,warnings:r,audio:e.audio,abortSignal:e.abortSignal,includeRawChunks:e.includeRawChunks})}}};function Vi({webSocket:e,url:t,headers:n,sessionUpdate:r,warnings:i,audio:a,abortSignal:o,includeRawChunks:s}){let c=!1,l=()=>{};return new ReadableStream({start:u=>{let d=Wi(n),f,p,m=``,h=``;l=e=>{f==null?a.cancel().catch(()=>{}):f.cancel().catch(()=>{}),p?.close(e)};let g=e=>{c||(c=!0,l(),u.error(e))},_=()=>{c||(c=!0,m!==``&&u.enqueue({type:`source-transcript-final`,text:m}),h!==``&&u.enqueue({type:`output-text-final`,text:h}),u.enqueue({type:`finish`,sourceText:m,outputText:h,usage:void 0}),u.close(),l(1e3))},v=async e=>{f=a.getReader();try{for(;;){let{done:t,value:n}=await f.read();if(t||c)break;e.send(JSON.stringify({type:`session.input_audio_buffer.append`,audio:M(n)})),await pe(e)}}finally{f.releaseLock(),f=void 0}c||e.send(JSON.stringify({type:`session.close`}))};p=re({url:t,protocols:d.protocols,headers:d.headers,webSocket:e,abortSignal:o,onAbort:g,onProcessingError:g,onOpen:e=>{u.enqueue({type:`stream-start`,warnings:i}),e.send(JSON.stringify(r)),v(e).catch(g)},onMessageText:async e=>{if(c)return;let t=await N({text:e});if(!t.success)return;let n=t.value;switch(s&&u.enqueue({type:`raw`,rawValue:n}),n.type){case`session.output_audio.delta`:n.delta&&u.enqueue({type:`audio`,audio:n.delta});break;case`session.output_transcript.delta`:h+=n.delta??``,u.enqueue({type:`output-text-delta`,delta:n.delta??``});break;case`session.input_transcript.delta`:m+=n.delta??``,u.enqueue({type:`source-transcript-delta`,delta:n.delta??``});break;case`session.closed`:_();break;case`error`:u.enqueue({type:`error`,error:Error(n.error?.message??`OpenAI realtime error`)})}},onSocketError:()=>{g(Error(`OpenAI realtime translation error`))},onClose:({code:e,reason:t})=>{c||g(Error(`OpenAI realtime translation WebSocket closed unexpectedly before finishing (code ${e??`unknown`}${t?`, reason: ${t}`:``}).`))}})},cancel:()=>{c||(c=!0,l())}})}function Hi({targetLanguage:e}){return{type:`session.update`,session:{audio:{input:{transcription:{model:`gpt-realtime-whisper`},noise_reduction:null},output:{language:e}}}}}function Ui(e){if(e.type!==`audio/pcm`||e.rate!=null&&e.rate!==24e3)throw new t({argument:`inputAudioFormat`,message:`The OpenAI Realtime translation API only supports 24kHz 16-bit PCM input audio.`})}function Wi(e){let t;for(let[n,r]of Object.entries(e))n.toLowerCase()===`authorization`&&r!=null&&(t=r);let n=t?.match(/^bearer\s+(.+)$/i)?.[1];return n==null?{protocols:[`realtime`],headers:e}:{protocols:[`realtime`,`openai-insecure-api-key.${n}`],headers:Object.fromEntries(Object.entries(e).filter(([e])=>e.toLowerCase()!==`authorization`))}}const Gi=H(()=>W(J.object({id:J.string(),name:J.string().nullish(),description:J.string().nullish(),default_version:J.string().nullish(),latest_version:J.string().nullish(),created_at:J.number(),updated_at:J.number().nullish()})));H(()=>W(J.object({id:J.string(),version:J.string().nullish(),name:J.string().nullish(),description:J.string().nullish()})));var Ki=class{get provider(){return this.config.provider}constructor(e){this.config=e,this.specificationVersion=`v4`}async uploadSkill(e){let t=[];e.displayTitle!=null&&t.push({type:`unsupported`,feature:`displayTitle`});let n=new FormData;for(let t of e.files){let e=L(t.data);n.append(`files[]`,new Blob([e]),t.path)}let{value:r}=await oe({url:this.config.url({path:`/skills`}),headers:E(this.config.headers()),formData:n,failedResponseHandler:Y,successfulResponseHandler:G(Gi),fetch:this.config.fetch});return{providerReference:{openai:r.id},...r.name==null?{}:{name:r.name},...r.description==null?{}:{description:r.description},...r.latest_version==null?{}:{latestVersion:r.latest_version},providerMetadata:{openai:{...r.default_version==null?{}:{defaultVersion:r.default_version},...r.created_at==null?{}:{createdAt:r.created_at},...r.updated_at==null?{}:{updatedAt:r.updated_at}}},warnings:t}}};const qi=`4.0.84`;function Ji(e={}){let t=u(de(C({settingValue:e.baseURL,environmentVariableName:`OPENAI_BASE_URL`})))??`https://api.openai.com/v1`,n=e.name??`openai`,r=()=>y({Authorization:`Bearer ${p({apiKey:e.apiKey,environmentVariableName:`OPENAI_API_KEY`,description:`OpenAI`})}`,"OpenAI-Organization":e.organization,"OpenAI-Project":e.project,...e.headers},`ai-sdk-openai/${qi}`),i=i=>new We(i,{provider:`${n}.chat`,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch}),a=i=>new Qe(i,{provider:`${n}.completion`,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch}),o=i=>new nt(i,{provider:`${n}.embedding`,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch}),s=i=>new gt(i,{provider:`${n}.image`,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch}),c=i=>new Fi(i,{provider:`${n}.transcription`,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch,webSocket:e.webSocket}),l=i=>new Bi(i,{provider:`${n}.speech-translation`,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch,webSocket:e.webSocket}),d=i=>new Ai(i,{provider:`${n}.speech`,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch}),f=()=>new st({provider:`${n}.files`,baseURL:t,headers:r,fetch:e.fetch}),m=()=>new Ki({provider:`${n}.skills`,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch}),h=e=>{if(new.target)throw Error(`The OpenAI model function cannot be called with the new keyword.`);return g(e)},g=i=>new yr(i,{provider:`${n}.responses`,baseURL:t,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch,fileIdPrefixes:[`file-`]}),_=()=>new Jr({provider:`${n}.batch`,config:{provider:`${n}.responses`,baseURL:t,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch,fileIdPrefixes:[`file-`]}}),v=function(e){return h(e)};return v.specificationVersion=`v4`,v.languageModel=h,v.chat=i,v.completion=a,v.responses=g,v.decisionModel=e=>new he({model:g(e),provider:`${n}.decision`}),v.evaluationModel=v.decisionModel,v.embedding=o,v.embeddingModel=o,v.textEmbedding=o,v.textEmbeddingModel=o,v.image=s,v.imageModel=s,v.transcription=c,v.transcriptionModel=c,v.translation=l,v.speechTranslationModel=l,v.speech=d,v.speechModel=d,v.files=f,v.skills=m,v.experimental_batch=_,v.experimental_realtime=Oi({provider:n,baseURL:t,headers:r,fetch:e.fetch}),v.tools=Tn,v}const Yi=Ji();export{Ti as Experimental_OpenAIRealtimeModel,xi as Experimental_OpenAIRealtimeModelLive,Bi as Experimental_OpenAISpeechTranslationModel,Bi as Experimental_OpenAITranslationModel,qi as VERSION,Ji as createOpenAI,Yi as openai};
|
|
1
|
+
import{APICallError as e,InvalidArgumentError as t,InvalidPromptError as n,InvalidResponseDataError as r,TooManyEmbeddingValuesForCallError as i,UnsupportedFunctionalityError as a,isJSONObject as o}from"../provider/index.js";import{$ as s,A as c,B as l,C as u,Ct as d,E as f,F as p,J as m,L as h,O as g,P as _,Q as v,S as y,St as b,T as x,U as S,V as C,Y as w,_ as T,_t as E,a as D,at as O,b as k,bt as A,c as j,ct as M,d as N,dt as ee,f as P,ft as te,g as ne,h as re,ht as F,it as I,k as ie,l as L,lt as R,m as ae,mt as z,nt as B,o as V,ot as oe,p as se,q as H,r as ce,rt as le,s as ue,t as de,tt as fe,v as pe,vt as me,w as U,wt as W,x as he,xt as ge,y as G,z as _e}from"../../_chunks/workflow/dist-C8k3N3BQ.js";import{n as K,t as q}from"../../_chunks/workflow/dist-DsNhwdzf.js";import{z as J}from"#compiled/zod/index.js";function ve(e){if(e.provider==null)throw Error(`OpenAI model is missing provider after workflow deserialization.`);return{...e,provider:e.provider,url:typeof e.url==`function`?e.url:({path:t})=>{if(e.baseURL==null)throw Error(`OpenAI model is missing baseURL after workflow deserialization.`);return`${e.baseURL}${t}`},headers:typeof e.headers==`function`?e.headers:e.headers==null?void 0:()=>e.headers}}const ye=J.object({error:J.object({message:J.string(),type:J.string().nullish(),param:J.any().nullish(),code:J.union([J.string(),J.number()]).nullish()})}),Y=T({errorSchema:ye,errorToMessage:e=>e.error.message}),be=H(()=>W(J.object({safetyIdentifier:J.string().max(128).optional()}))),xe=J.number().min(0).max(1),Se=J.object({model:J.string().nullish(),usage:J.object({input_tokens:J.number().nullish(),input_tokens_details:J.object({cached_tokens:J.number().nullish(),cache_write_tokens:J.number().nullish()}).nullish(),output_tokens:J.number().nullish(),output_tokens_details:J.object({reasoning_tokens:J.number().nullish()}).nullish(),total_tokens:J.number().nullish()}).nullish(),answers:J.array(J.discriminatedUnion(`type`,[J.object({type:J.literal(`refusal`),name:J.string().nullable()}),J.object({type:J.literal(`predicate`),name:J.string(),probability:xe}),J.object({type:J.literal(`choice`),name:J.string(),choice:J.string(),confidence:xe.nullish(),probabilities:J.array(J.object({value:J.string(),probability:xe}))}),J.object({type:J.literal(`score`),name:J.string(),score:J.number(),confidence:xe.nullish(),probabilities:J.array(J.object({value:J.number().int().nonnegative(),probability:xe}))})]))});var Ce=class e{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion=`v4`,this.supportedQuestionTypes=[`choice`,`score`,`boolean`]}get provider(){return this.config.provider}static[K](e){return z({modelId:e.modelId,config:e.config})}static[q](t){return new e(t.modelId,ve(t.config))}doEvaluate(e){return this.doDecide(e)}async doDecide({state:e,questions:t,headers:n,abortSignal:i,providerOptions:o}){let s=await B({provider:`openai`,providerOptions:o,schema:be}),{value:c,rawValue:u,responseHeaders:d}=await I({url:this.config.url({path:`/decisions`,modelId:this.modelId}),headers:D(this.config.headers?.(),n),body:{model:this.modelId,safety_identifier:s?.safetyIdentifier,input:[{role:`user`,content:e.map(e=>{if(e.type===`text`)return{type:`input_text`,text:e.text};if(e.type===`json`)return{type:`input_text`,text:JSON.stringify(e.value)};if(e.data.type!==`data`)throw new a({functionality:`OpenAI decision file input: ${e.mediaType} (${e.data.type})`});let t=l(e.mediaType)?e.mediaType:ie({data:e.data.data,topLevelType:`image`});if(![`image/png`,`image/jpeg`,`image/webp`,`image/gif`].includes(t??``))throw new a({functionality:`OpenAI decision image media type: ${e.mediaType}`});let n=e.providerOptions?.openai?.imageDetail;return{type:`input_image`,image_url:`data:${t};base64,${typeof e.data.data==`string`?e.data.data:se(e.data.data)}`,...n!=null&&{detail:n}}})}],questions:Object.entries(t).map(([e,t])=>{let n=we(t.instructions);switch(t.type){case`boolean`:return{type:`predicate`,name:e,instructions:[n,t.criteria?.true==null?void 0:`Criteria for true:\n${we(t.criteria.true)}`,t.criteria?.false==null?void 0:`Criteria for false:\n${we(t.criteria.false)}`].filter(e=>e!==void 0).join(`
|
|
2
|
+
|
|
3
|
+
`)};case`choice`:return{type:`choice`,name:e,instructions:n,choices:Object.entries(t.criteria).map(([e,t])=>({value:e,...t==null?{}:{description:we(t)}}))};case`score`:return{type:`score`,name:e,instructions:n,levels:t.criteria.map((e,t)=>({label:String(t),...e==null?{}:{description:we(e)}}))}}})},abortSignal:i,fetch:this.config.fetch,failedResponseHandler:Y,successfulResponseHandler:G(Se)}),f=Object.fromEntries(c.answers.map(e=>{if(e.type===`refusal`){if(e.name===null)throw new r({data:u,message:`OpenAI Decisions refused an unnamed question.`});return[e.name,{type:`refusal`}]}if(e.type===`predicate`)return[e.name,{type:`boolean`,probability:e.probability}];let t=Object.fromEntries(e.probabilities.map(({value:e,probability:t})=>[e,t]));if(Object.keys(t).length!==e.probabilities.length)throw new r({data:u,message:`Decisions returned duplicate probability values.`});return[e.name,e.type===`choice`?{type:`choice`,choice:e.choice,probabilities:t}:{type:`score`,score:e.score,probabilities:t}]})),p=c.answers.map(e=>e.name);if(p.length!==Object.keys(t).length||new Set(p).size!==p.length||p.some(e=>typeof e!=`string`||!Object.prototype.hasOwnProperty.call(t,e)))throw new r({data:u,message:`Decisions must return exactly one answer for every question.`});return{answers:f,usage:c.usage==null?void 0:{inputTokens:c.usage.input_tokens??void 0,outputTokens:c.usage.output_tokens??void 0},rounding:{probabilityDecimals:2,scoreDecimals:2},warnings:Object.keys(o?.openai??{}).filter(e=>e!==`safetyIdentifier`).map(e=>({type:`unsupported`,feature:`providerOptions.openai.${e}`})),providerMetadata:{openai:{...c.usage==null?{}:{usage:c.usage},confidence:Object.fromEntries(c.answers.flatMap(e=>(e.type===`choice`||e.type===`score`)&&e.confidence!=null?[[e.name,e.confidence]]:[]))}},response:{modelId:c.model??this.modelId,headers:d,body:u}}}};function we(e){return typeof e==`string`?e:JSON.stringify(e)}function Te(e){let t=Ee(e),n=De(e),r=n?.minor==null&&(n?.variant?.startsWith(`chat`)??!1),i=n?.variant?.startsWith(`nano`)??!1,a=n!=null&&n.major>=6,o=e===`gpt-6-sol`||e===`gpt-6-luna`,s=t!=null&&t>=3||n!=null&&n.major>=5&&!r,c=e.startsWith(`gpt-4`)||n!=null&&n.major>=5&&!i&&!r||t!=null&&t>=3,l=t!=null||n!=null&&n.major>=5&&!r,u=o||!a&&n!=null&&(n.major>5||n.major===5&&(n.minor??0)>=1);return{supportsFlexProcessing:s,supportsPriorityProcessing:c,supportsConfigurationUpdate:a,supportsAsyncToolCalling:a,supportedReasoningEfforts:o?[`none`,`low`,`medium`,`high`,`xhigh`,`max`]:a?[`low`,`medium`,`high`,`xhigh`,`max`]:void 0,isReasoningModel:l,systemMessageMode:l?`developer`:`system`,supportsNonReasoningParameters:u}}function Ee(e){let t=/^o(\d+)(?:-|$)/.exec(e);return t==null?void 0:Number(t[1])}function De(e){let t=/^gpt-(\d+)(?:\.(\d+))?(?:-(.+))?$/.exec(e);if(t!=null)return{major:Number(t[1]),minor:t[2]==null?void 0:Number(t[2]),variant:t[3]}}function Oe(e){let t=Ne(e);if(t==null)return;let n=Pe(t);return x({message:t.message,type:t.type??void 0,code:t.code??void 0,statusCode:n,isRetryable:Be(t,n),data:e})}async function ke({stream:e,getError:t,isOutputChunk:n,isAcceptedChunk:r,acceptedGraceMs:i=50,url:a,requestBodyValues:o,responseHeaders:s}){let[c,l]=e.tee(),u=c.getReader(),d=!1;try{let e=!1;for(;;){let c;if(e){let e=await je(u.read(),i);if(e.timedOut)return l;c=e.value}else c=await u.read();if(c.done)return l;let f=c.value;if(!f.success)return l;let p=t(f.value);if(p!=null)throw d=!0,Ae(u).catch(()=>{}),Ae(l.getReader()).catch(()=>{}),Me({frame:p,url:a,requestBodyValues:o,responseHeaders:s});if(n(f.value))return l;!e&&r?.(f.value)===!0&&(e=!0)}}finally{d||(u.cancel().catch(()=>{}),u.releaseLock())}}async function Ae(e){try{for(;!(await e.read()).done;);}catch{}finally{e.releaseLock()}}async function je(e,t){let n,r=e.then(e=>({timedOut:!1,value:e}));try{let e=await Promise.race([r,new Promise(e=>{n=setTimeout(()=>e({timedOut:!0}),t)})]);return e.timedOut&&r.catch(()=>{}),e}finally{clearTimeout(n)}}function Me({frame:t,url:n,requestBodyValues:r,responseHeaders:i}){let a=Oe(t);return new e({message:a?.message??`OpenAI stream failed before any output was generated`,url:n,requestBodyValues:r,statusCode:a?.statusCode??500,responseHeaders:i,responseBody:JSON.stringify(t),data:t,isRetryable:a?.isRetryable})}function Ne(e){let t=Fe(e);if(t==null)return;if(t.type===`response.failed`){let e=Fe(Fe(t.response)?.error);return typeof e?.message==`string`?{message:e.message,code:Ie(e.code),type:`response.failed`}:void 0}let n=Fe(t.error)??t;return typeof n.message==`string`&&(Fe(t.error)!=null||typeof n.type==`string`||`code`in n||`param`in n)?{message:n.message,code:Ie(n.code),type:typeof n.type==`string`?n.type:void 0}:void 0}function Pe(e){let t=Re(e.code);if(t!=null)return t;let n=[e.code,e.type].filter(e=>typeof e==`string`||typeof e==`number`).join(` `).toLowerCase();return[`insufficient_quota`,`rate_limit`].some(e=>n.includes(e))?429:n.includes(`authentication`)?401:n.includes(`permission`)?403:n.includes(`not_found`)?404:[`invalid`,`bad_request`,`context_length`].some(e=>n.includes(e))?400:n.includes(`overload`)?503:n.includes(`timeout`)?504:500}function Fe(e){return typeof e==`object`&&e?e:void 0}function Ie(e){return typeof e==`string`||typeof e==`number`?e:void 0}function Le(e){return Number.isInteger(e)&&e>=400&&e<=599}function Re(e){let t=typeof e==`string`&&/^\d{3}$/.test(e)?Number(e):e;return typeof t==`number`&&Le(t)?t:void 0}function ze(e){return e===408||e===409||e===429||e>=500}function Be(e,t){return e.code===`insufficient_quota`||e.type===`insufficient_quota`?!1:ze(t)}function Ve(e){if(e==null)return he();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:Math.max(0,n-a),reasoning:a},raw:e}}function He(e){return JSON.stringify(typeof e==`object`&&e&&!Array.isArray(e)?e:{})}function X(e){return e?.openai?.promptCacheBreakpoint}function Ue({prompt:e,systemMessageMode:t=`system`}){let n=[],r=[];for(let{role:i,content:o,providerOptions:s}of e)switch(i){case`system`:switch(t){case`system`:{let e=X(s);n.push({role:`system`,content:e==null?o:[{type:`text`,text:o,prompt_cache_breakpoint:e}]});break}case`developer`:{let e=X(s);n.push({role:`developer`,content:e==null?o:[{type:`text`,text:o,prompt_cache_breakpoint:e}]});break}case`remove`:r.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`&&X(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=X(e.providerOptions);return{type:`text`,text:e.text,...t!=null&&{prompt_cache_breakpoint:t}}}case`file`:{let n=X(e.providerOptions);switch(e.data.type){case`reference`:return{type:`file`,file:{file_id:R({reference:e.data.reference,provider:`openai`})},...n!=null&&{prompt_cache_breakpoint:n}};case`text`:throw new a({functionality:`text file parts`});case`url`:case`data`:{let r=h(e.mediaType);if(r===`image`)return{type:`image_url`,image_url:{url:e.data.type===`url`?e.data.url.toString():`data:${M({part:e})};base64,${N(e.data.data)}`,detail:e.providerOptions?.openai?.imageDetail},...n!=null&&{prompt_cache_breakpoint:n}};if(r===`audio`){if(e.data.type===`url`)throw new a({functionality:`audio file parts with URLs`});let t=M({part:e});switch(t){case`audio/wav`:return{type:`input_audio`,input_audio:{data:N(e.data.data),format:`wav`},...n!=null&&{prompt_cache_breakpoint:n}};case`audio/mp3`:case`audio/mpeg`:return{type:`input_audio`,input_audio:{data:N(e.data.data),format:`mp3`},...n!=null&&{prompt_cache_breakpoint:n}};default:throw new a({functionality:`audio content parts with media type ${t}`})}}{let r=M({part:e});if(r!==`application/pdf`)throw new a({functionality:`file part media type ${r}`});if(e.data.type===`url`)throw new a({functionality:`PDF file parts with URLs`});return{type:`file`,file:{filename:e.filename??`part-${t}.pdf`,file_data:`data:application/pdf;base64,${N(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=X(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:He(n.input)}})}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=>X(e.providerOptions)).find(e=>e!=null):X(t.providerOptions))??X(e.providerOptions),i;switch(t.type){case`text`:i=t.value;break;case`error-text`:case`error-json`:i=JSON.stringify({error:t.value});break;case`execution-denied`:i=t.reason??`Tool call execution denied.`;break;case`content`:case`json`:i=JSON.stringify(t.value)}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: ${i}`)}return{messages:n,warnings:r}}function We({id:e,model:t,created:n}){return k({id:e,model:t,created:n||void 0})}function Ge(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`}}const Ke=H(()=>W(J.object({id:J.string().nullish(),created:J.number().nullish(),model:J.string().nullish(),choices:J.array(J.object({message:J.object({role:J.literal(`assistant`).nullish(),content:J.string().nullish(),audio:J.object({transcript:J.string().nullish()}).nullish(),tool_calls:J.array(J.object({id:J.string().nullish(),type:J.literal(`function`),function:J.object({name:J.string(),arguments:J.string()})})).nullish(),annotations:J.array(J.object({type:J.literal(`url_citation`),url_citation:J.object({start_index:J.number(),end_index:J.number(),url:J.string(),title:J.string()})})).nullish()}),index:J.number(),logprobs:J.object({content:J.array(J.object({token:J.string(),logprob:J.number(),top_logprobs:J.array(J.object({token:J.string(),logprob:J.number()}))})).nullish()}).nullish(),finish_reason:J.string().nullish()})),usage:J.object({prompt_tokens:J.number().nullish(),completion_tokens:J.number().nullish(),total_tokens:J.number().nullish(),prompt_tokens_details:J.object({cached_tokens:J.number().nullish(),cache_write_tokens:J.number().nullish()}).nullish(),completion_tokens_details:J.object({reasoning_tokens:J.number().nullish(),accepted_prediction_tokens:J.number().nullish(),rejected_prediction_tokens:J.number().nullish()}).nullish()}).nullish()}))),qe=H(()=>W(J.union([J.object({id:J.string().nullish(),created:J.number().nullish(),model:J.string().nullish(),choices:J.array(J.object({delta:J.object({role:J.enum([`assistant`]).nullish(),content:J.string().nullish(),tool_calls:J.array(J.object({index:J.number(),id:J.string().nullish(),type:J.literal(`function`).nullish(),function:J.object({name:J.string().nullish(),arguments:J.string().nullish()})})).nullish(),annotations:J.array(J.object({type:J.literal(`url_citation`),url_citation:J.object({start_index:J.number(),end_index:J.number(),url:J.string(),title:J.string()})})).nullish()}).nullish(),logprobs:J.object({content:J.array(J.object({token:J.string(),logprob:J.number(),top_logprobs:J.array(J.object({token:J.string(),logprob:J.number()}))})).nullish()}).nullish(),finish_reason:J.string().nullish(),index:J.number()})),usage:J.object({prompt_tokens:J.number().nullish(),completion_tokens:J.number().nullish(),total_tokens:J.number().nullish(),prompt_tokens_details:J.object({cached_tokens:J.number().nullish(),cache_write_tokens:J.number().nullish()}).nullish(),completion_tokens_details:J.object({reasoning_tokens:J.number().nullish(),accepted_prediction_tokens:J.number().nullish(),rejected_prediction_tokens:J.number().nullish()}).nullish()}).nullish()}),ye]))),Je=H(()=>W(J.object({logitBias:J.record(J.coerce.number(),J.number()).optional(),logprobs:J.union([J.boolean(),J.number()]).optional(),parallelToolCalls:J.boolean().optional(),user:J.string().optional(),reasoningEffort:J.enum([`none`,`minimal`,`low`,`medium`,`high`,`xhigh`,`max`]).optional(),maxCompletionTokens:J.number().optional(),store:J.boolean().optional(),metadata:J.record(J.string().max(64),J.string().max(512)).optional(),prediction:J.record(J.string(),J.any()).optional(),serviceTier:J.enum([`auto`,`flex`,`priority`,`fast`,`ultrafast`,`default`]).optional(),strictJsonSchema:J.boolean().optional(),textVerbosity:J.enum([`low`,`medium`,`high`]).optional(),promptCacheKey:J.string().optional(),promptCacheOptions:J.object({mode:J.enum([`implicit`,`explicit`]).optional(),ttl:J.literal(`30m`).optional()}).optional(),promptCacheRetention:J.enum([`in_memory`,`24h`]).optional(),safetyIdentifier:J.string().optional(),systemMessageMode:J.enum([`system`,`developer`,`remove`]).optional(),forceReasoning:J.boolean().optional()})));function Ye(e){let t=!1,n=!1,r=o(e,!0),i=[];return t&&i.push({type:`compatibility`,feature:`JSON Schema propertyNames`,details:`OpenAI does not support JSON Schema propertyNames. It was removed before sending the schema, so OpenAI will not enforce property-name constraints.`}),n&&i.push({type:`compatibility`,feature:`JSON Schema pattern with regex lookaround`,details:`OpenAI does not support regex lookaround in JSON Schema patterns. The pattern was removed before sending the schema, so OpenAI will not enforce that constraint.`}),{schema:r,warnings:i};function o(e,r=!1){let i=e.propertyNames;if(i!=null){if(typeof i==`boolean`||i.type!==`string`)throw new a({functionality:`JSON Schema propertyNames that does not use a string schema`});t=!0}let o={...e};delete o.propertyNames,o.pattern!=null&&Xe(o.pattern)&&(delete o.pattern,n=!0),o.properties!=null&&(o.properties=l(o.properties)),o.patternProperties!=null&&(o.patternProperties=l(o.patternProperties)),o.additionalProperties!=null&&(o.additionalProperties=u(o.additionalProperties)),o.additionalItems!=null&&(o.additionalItems=u(o.additionalItems)),o.items!=null&&(o.items=Array.isArray(o.items)?o.items.map(u):u(o.items)),o.contains!=null&&(o.contains=u(o.contains)),o.not!=null&&(o.not=u(o.not)),o.allOf!=null&&(o.allOf=o.allOf.map(u)),o.anyOf!=null&&(o.anyOf=o.anyOf.map(u)),o.oneOf!=null&&(o.oneOf=o.oneOf.map(u)),o.definitions!=null&&(o.definitions=l(o.definitions)),o.$defs!=null&&(o.$defs=l(o.$defs)),o.dependencies!=null&&(o.dependencies=Object.fromEntries(Object.entries(o.dependencies).map(([e,t])=>[e,Array.isArray(t)?t:u(t)])));for(let e of[`if`,`then`,`else`]){let t=o[e];t!=null&&(o[e]=u(t))}let d=s(o);if(d==null)return o;let{allOf:f,...p}=o;if(!r)return{...p,$ref:d};let m=c(d,o);return m==null?o:{...m,...p}}function s(e){if(e.allOf?.length!==1)return;let[t]=e.allOf;return typeof t==`object`&&t&&Object.keys(t).length===1&&typeof t.$ref==`string`?t.$ref:void 0}function c(e,t){let n=/^#\/(definitions|\$defs)\/(.+)$/.exec(e);if(n==null)return;let[,r,i]=n,a=i.replace(/~1/g,`/`).replace(/~0/g,`~`),o=r===`definitions`?t.definitions?.[a]:t.$defs?.[a];return typeof o==`object`&&o?o:void 0}function l(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,u(t)]))}function u(e){return typeof e==`boolean`?e:o(e)}}function Xe(e){let t=!1,n=!1;for(let r=0;r<e.length;r++){let i=e[r];if(t){t=!1;continue}if(i===`\\`){t=!0;continue}if(i===`[`){n=!0;continue}if(i===`]`){n=!1;continue}if(!n&&i===`(`&&e[r+1]===`?`){let t=e[r+2];if(t===`=`||t===`!`||t===`<`&&(e[r+3]===`=`||e[r+3]===`!`))return!0}}return!1}function Ze({tools:e,toolChoice:t}){e=e?.length?e:void 0;let n=[];if(e==null)return{tools:void 0,toolChoice:void 0,toolWarnings:n};let r=[];for(let t of e)switch(t.type){case`function`:{let e=Ye(t.inputSchema);n.push(...e.warnings),r.push({type:`function`,function:{name:t.name,description:t.description,parameters:e.schema,...t.strict==null?{}:{strict:t.strict}}});break}default:n.push({type:`unsupported`,feature:`tool type: ${t.type}`})}if(t==null)return{tools:r,toolChoice:void 0,toolWarnings:n};let i=t.type;switch(i){case`auto`:case`none`:case`required`:return{tools:r,toolChoice:i,toolWarnings:n};case`tool`:return{tools:r,toolChoice:{type:`function`,function:{name:t.toolName}},toolWarnings:n};default:throw new a({functionality:`tool choice type: ${i}`})}}var Qe=class e{static[K](e){return z({modelId:e.modelId,config:e.config})}static[q](t){return new e(t.modelId,t.config)}constructor(e,t){this.specificationVersion=`v4`,this.supportedUrls={"image/*":[/^https?:\/\/.*$/]},this.modelId=e,this.config=t}get provider(){return this.config.provider}async getArgs({prompt:e,maxOutputTokens:t,temperature:n,topP:r,topK:i,frequencyPenalty:a,presencePenalty:o,stopSequences:s,responseFormat:c,seed:l,tools:u,toolChoice:d,reasoning:f,providerOptions:p}){let m=[],h=await B({provider:`openai`,providerOptions:p,schema:Je})??{},g=Te(this.modelId),_=h.reasoningEffort??(_e(f)?f:void 0);_!=null&&g.supportedReasoningEfforts!=null&&!g.supportedReasoningEfforts.includes(_)&&(m.push({type:`unsupported`,feature:`reasoningEffort`,details:`${this.modelId} only supports the following reasoning efforts: ${g.supportedReasoningEfforts.join(`, `)}`}),_=void 0);let v=h.forceReasoning??g.isReasoningModel;i!=null&&m.push({type:`unsupported`,feature:`topK`}),p?.openai?.reasoningSummary!=null&&m.push({type:`unsupported`,feature:`reasoningSummary`,details:`reasoningSummary is only supported by the Responses API, not the Chat Completions API`});let{messages:y,warnings:b}=Ue({prompt:e,systemMessageMode:h.systemMessageMode??(v?`developer`:g.systemMessageMode)});m.push(...b);let x=h.strictJsonSchema??!0,S=c?.type===`json`&&c.schema!=null?Ye(c.schema):void 0;S!=null&&m.push(...S.warnings);let C={model:this.modelId,logit_bias:h.logitBias,logprobs:h.logprobs===!0||typeof h.logprobs==`number`||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`?S==null?{type:`json_object`}:{type:`json_schema`,json_schema:{schema:S.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_options:h.promptCacheOptions,prompt_cache_retention:h.promptCacheRetention,safety_identifier:h.safetyIdentifier,messages:y};g.supportedReasoningEfforts!=null&&C.prompt_cache_retention!=null&&(C.prompt_cache_retention=void 0,m.push({type:`unsupported`,feature:`promptCacheRetention`,details:`promptCacheRetention is not supported by GPT-6 and later models; use promptCacheOptions instead`})),v?((_!==`none`||!g.supportsNonReasoningParameters)&&(C.temperature!=null&&(C.temperature=void 0,m.push({type:`unsupported`,feature:`temperature`,details:`temperature is not supported for reasoning models`})),C.top_p!=null&&(C.top_p=void 0,m.push({type:`unsupported`,feature:`topP`,details:`topP is not supported for reasoning models`})),C.logprobs!=null&&(C.logprobs=void 0,m.push({type:`other`,message:`logprobs is not supported for reasoning models`}))),C.frequency_penalty!=null&&(C.frequency_penalty=void 0,m.push({type:`unsupported`,feature:`frequencyPenalty`,details:`frequencyPenalty is not supported for reasoning models`})),C.presence_penalty!=null&&(C.presence_penalty=void 0,m.push({type:`unsupported`,feature:`presencePenalty`,details:`presencePenalty is not supported for reasoning models`})),C.logit_bias!=null&&(C.logit_bias=void 0,m.push({type:`other`,message:`logitBias is not supported for reasoning models`})),C.top_logprobs!=null&&(C.top_logprobs=void 0,m.push({type:`other`,message:`topLogprobs is not supported for reasoning models`})),C.max_tokens!=null&&(C.max_completion_tokens??=C.max_tokens,C.max_tokens=void 0)):(this.modelId.startsWith(`gpt-4o-search-preview`)||this.modelId.startsWith(`gpt-4o-mini-search-preview`))&&C.temperature!=null&&(C.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`}),C.service_tier=void 0),(h.serviceTier===`priority`||h.serviceTier===`fast`)&&!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`}),C.service_tier=void 0);let{tools:w,toolChoice:T,toolWarnings:E}=Ze({tools:u,toolChoice:d});return{args:{...C,tools:w,tool_choice:T},warnings:[...m,...E]}}async doGenerate(e){let{args:t,warnings:n}=await this.getArgs(e),{responseHeaders:i,value:a,rawValue:o}=await I({url:this.config.url({path:`/chat/completions`,modelId:this.modelId}),headers:D(this.config.headers?.(),e.headers),body:t,failedResponseHandler:Y,successfulResponseHandler:G(Ke),abortSignal:e.abortSignal,fetch:this.config.fetch}),s=a.choices[0];if(s==null)throw new r({data:o,message:`Response did not contain any choices.`});let c=[],l=s.message.content!=null&&s.message.content.length>0?s.message.content:s.message.audio?.transcript;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||_(),toolName:e.function.name,input:e.function.arguments});for(let e of s.message.annotations??[])c.push({type:`source`,sourceType:`url`,id:_(),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:Ge(s.finish_reason),raw:s.finish_reason??void 0},usage:Ve(a.usage),request:{body:t},response:{...We(a),headers:i,body:o},warnings:n,providerMetadata:d}}async doStream(e){let{args:t,warnings:n}=await this.getArgs(e),r={...t,stream:!0,stream_options:{include_usage:!0}},i=this.config.url({path:`/chat/completions`,modelId:this.modelId}),{responseHeaders:a,value:o}=await I({url:i,headers:D(this.config.headers?.(),e.headers),body:r,failedResponseHandler:Y,successfulResponseHandler:ne(qe),abortSignal:e.abortSignal,fetch:this.config.fetch}),s=await ke({stream:o,getError:e=>`error`in e?e.error:void 0,isOutputChunk:$e,url:i,requestBodyValues:r,responseHeaders:a}),c,l={unified:`other`,raw:void 0},u,d=!1,f=!1,p={openai:{}};return{stream:s.pipeThrough(new TransformStream({start(e){c=new ce(e,{generateId:_,typeValidation:`if-present`}),e.enqueue({type:`stream-start`,warnings:n})},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:Oe(r.error)??r.error});return}if(!d){let e=We(r);Object.values(e).some(Boolean)&&(d=!0,n.enqueue({type:`response-metadata`,...We(r)}))}r.usage!=null&&(u=r.usage,r.usage.completion_tokens_details?.accepted_prediction_tokens!=null&&(p.openai.acceptedPredictionTokens=r.usage.completion_tokens_details?.accepted_prediction_tokens),r.usage.completion_tokens_details?.rejected_prediction_tokens!=null&&(p.openai.rejectedPredictionTokens=r.usage.completion_tokens_details?.rejected_prediction_tokens));let i=r.choices[0];if(i?.finish_reason!=null&&(l={unified:Ge(i.finish_reason),raw:i.finish_reason}),i?.logprobs?.content!=null&&(p.openai.logprobs=i.logprobs.content),i?.delta==null)return;let a=i.delta;if(a.content!=null&&(f||=(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)c.processDelta(e);if(a.annotations!=null)for(let e of a.annotations)n.enqueue({type:`source`,sourceType:`url`,id:_(),url:e.url_citation.url,title:e.url_citation.title})},flush(e){f&&e.enqueue({type:`text-end`,id:`0`}),c.flush(),e.enqueue({type:`finish`,finishReason:l,usage:Ve(u),...p==null?{}:{providerMetadata:p}})}})),request:{body:r},response:{headers:a}}}};function $e(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 et(e){if(e==null)return he();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 tt({prompt:e,user:t=`user`,assistant:r=`assistant`}){let i=``;e[0].role===`system`&&(i+=`${e[0].content}\n\n`,e=e.slice(1));for(let{role:o,content:s}of e)switch(o){case`system`:throw new n({message:"Unexpected system message in prompt: ${content}",prompt:e});case`user`:{let e=s.map(e=>{if(e.type===`text`)return e.text}).filter(Boolean).join(``);i+=`${t}:\n${e}\n\n`;break}case`assistant`:{let e=s.map(e=>{switch(e.type){case`text`:return e.text;case`tool-call`:throw new a({functionality:`tool-call messages`})}}).join(``);i+=`${r}:\n${e}\n\n`;break}case`tool`:throw new a({functionality:`tool messages`});default:throw Error(`Unsupported role: ${o}`)}return i+=`${r}:\n`,{prompt:i,stopSequences:[`\n${t}:`]}}function nt(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`}}const rt=H(()=>W(J.object({id:J.string().nullish(),created:J.number().nullish(),model:J.string().nullish(),choices:J.array(J.object({text:J.string(),finish_reason:J.string(),logprobs:J.object({tokens:J.array(J.string()),token_logprobs:J.array(J.number()),top_logprobs:J.array(J.record(J.string(),J.number())).nullish()}).nullish()})),usage:J.object({prompt_tokens:J.number(),completion_tokens:J.number(),total_tokens:J.number()}).nullish()}))),it=H(()=>W(J.union([J.object({id:J.string().nullish(),created:J.number().nullish(),model:J.string().nullish(),choices:J.array(J.object({text:J.string(),finish_reason:J.string().nullish(),index:J.number(),logprobs:J.object({tokens:J.array(J.string()),token_logprobs:J.array(J.number()),top_logprobs:J.array(J.record(J.string(),J.number())).nullish()}).nullish()})),usage:J.object({prompt_tokens:J.number(),completion_tokens:J.number(),total_tokens:J.number()}).nullish()}),ye]))),at=H(()=>W(J.object({echo:J.boolean().optional(),logitBias:J.record(J.string(),J.number()).optional(),suffix:J.string().optional(),user:J.string().optional(),logprobs:J.union([J.boolean(),J.number()]).optional()})));var ot=class e{get providerOptionsName(){return this.config.provider.split(`.`)[0].trim()}static[K](e){return z({modelId:e.modelId,config:e.config})}static[q](t){return new e(t.modelId,t.config)}constructor(e,t){this.specificationVersion=`v4`,this.supportedUrls={},this.modelId=e,this.config=t}get provider(){return this.config.provider}async getArgs({prompt:e,maxOutputTokens:t,temperature:n,topP:r,topK:i,frequencyPenalty:a,presencePenalty:o,stopSequences:s,responseFormat:c,tools:l,toolChoice:u,seed:d,providerOptions:f}){let p=[],m={...await B({provider:`openai`,providerOptions:f,schema:at}),...await B({provider:this.providerOptionsName,providerOptions:f,schema:at})};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}=tt({prompt:e}),_=[...g??[],...s??[]];return{args:{model:this.modelId,echo:m.echo,logit_bias:m.logitBias,logprobs:m?.logprobs===!0?0:m?.logprobs===!1?void 0:m?.logprobs,suffix:m.suffix,user:m.user,max_tokens:t,temperature:n,top_p:r,frequency_penalty:a,presence_penalty:o,seed:d,prompt:h,stop:_.length>0?_:void 0},warnings:p}}async doGenerate(e){let{args:t,warnings:n}=await this.getArgs(e),{responseHeaders:r,value:i,rawValue:a}=await I({url:this.config.url({path:`/completions`,modelId:this.modelId}),headers:D(this.config.headers?.(),e.headers),body:t,failedResponseHandler:Y,successfulResponseHandler:G(rt),abortSignal:e.abortSignal,fetch:this.config.fetch}),o=i.choices[0],s={openai:{}};return o.logprobs!=null&&(s.openai.logprobs=o.logprobs),{content:[{type:`text`,text:o.text}],usage:et(i.usage),finishReason:{unified:nt(o.finish_reason),raw:o.finish_reason??void 0},request:{body:t},response:{...k(i),headers:r,body:a},providerMetadata:s,warnings:n}}async doStream(e){let{args:t,warnings:n}=await this.getArgs(e),r={...t,stream:!0,stream_options:{include_usage:!0}},i=this.config.url({path:`/completions`,modelId:this.modelId}),{responseHeaders:a,value:o}=await I({url:i,headers:D(this.config.headers?.(),e.headers),body:r,failedResponseHandler:Y,successfulResponseHandler:ne(it),abortSignal:e.abortSignal,fetch:this.config.fetch}),s=await ke({stream:o,getError:e=>`error`in e?e.error:void 0,isOutputChunk:st,url:i,requestBodyValues:r,responseHeaders:a}),c={unified:`other`,raw:void 0},l={openai:{}},u,d=!0;return{stream:s.pipeThrough(new TransformStream({start(e){e.enqueue({type:`stream-start`,warnings:n})},transform(t,n){if(e.includeRawChunks&&n.enqueue({type:`raw`,rawValue:t.rawValue}),!t.success){c={unified:`error`,raw:void 0},n.enqueue({type:`error`,error:t.error});return}let r=t.value;if(`error`in r){c={unified:`error`,raw:void 0},n.enqueue({type:`error`,error:Oe(r.error)??r.error});return}d&&(d=!1,n.enqueue({type:`response-metadata`,...k(r)}),n.enqueue({type:`text-start`,id:`0`})),r.usage!=null&&(u=r.usage);let i=r.choices[0];i?.finish_reason!=null&&(c={unified:nt(i.finish_reason),raw:i.finish_reason}),i?.logprobs!=null&&(l.openai.logprobs=i.logprobs),i?.text!=null&&i.text.length>0&&n.enqueue({type:`text-delta`,id:`0`,delta:i.text})},flush(e){d||e.enqueue({type:`text-end`,id:`0`}),e.enqueue({type:`finish`,finishReason:c,providerMetadata:l,usage:et(u)})}})),request:{body:r},response:{headers:a}}}};function st(e){return!(`error`in e)&&e.choices.some(e=>e.text.length>0)}const ct=H(()=>W(J.object({dimensions:J.number().optional(),user:J.string().optional()}))),lt=H(()=>W(J.object({data:J.array(J.object({embedding:J.array(J.number())})),usage:J.object({prompt_tokens:J.number()}).nullish()})));var ut=class e{static[K](e){return z({modelId:e.modelId,config:e.config})}static[q](t){return new e(t.modelId,t.config)}get provider(){return this.config.provider}constructor(e,t){this.specificationVersion=`v4`,this.maxEmbeddingsPerCall=2048,this[de]=3e5,this.supportsParallelCalls=!0,this.modelId=e,this.config=t}async doEmbed({values:e,dimensions:t,headers:n,abortSignal:r,providerOptions:a}){if(e.length>this.maxEmbeddingsPerCall)throw new i({provider:this.provider,modelId:this.modelId,maxEmbeddingsPerCall:this.maxEmbeddingsPerCall,values:e});let o=await B({provider:`openai`,providerOptions:a,schema:ct})??{},{responseHeaders:s,value:c,rawValue:l}=await I({url:this.config.url({path:`/embeddings`,modelId:this.modelId}),headers:D(this.config.headers?.(),n),body:{model:this.modelId,input:e,encoding_format:`float`,dimensions:o.dimensions??t,user:o.user},failedResponseHandler:Y,successfulResponseHandler:G(lt),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}}}};const dt=H(()=>W(J.object({id:J.string(),object:J.string().nullish(),bytes:J.number().nullish(),created_at:J.number().nullish(),filename:J.string().nullish(),purpose:J.string().nullish(),status:J.string().nullish(),expires_at:J.number().nullish()}))),ft=H(()=>W(J.object({id:J.string(),object:J.string().nullish(),deleted:J.boolean()}))),pt=H(()=>W(J.object({purpose:J.string().optional(),expiresAfter:J.number().optional()})));function mt(e){let t=encodeURIComponent(e);return t===`.`?`%252E`:t===`..`?`%252E%252E`:t}var ht=class{get provider(){return this.config.provider}constructor(e){this.config=e,this.specificationVersion=`v4`}getFileId(e){let n=e.openai;if(n==null||n.trim()===``)throw new t({argument:`file`,message:`file reference is missing an 'openai' file id.`});return n}getHeaders(e){return D(this.config.headers(),e)}async uploadFile({data:e,mediaType:t,filename:n,abortSignal:r,headers:i,providerOptions:a}){let o;try{o=await B({provider:`openai`,providerOptions:a,schema:pt})}catch(t){throw e.type===`stream`&&await e.stream.cancel(t).catch(()=>{}),t}let s=o?.purpose??`assistants`,c=this.getHeaders(i),l=`${this.config.baseURL}/files`,u;if(e.type===`stream`){let i=[{type:`field`,name:`purpose`,value:s}];o?.expiresAfter!=null&&i.push({type:`field`,name:`expires_after[anchor]`,value:`created_at`},{type:`field`,name:`expires_after[seconds]`,value:String(o.expiresAfter)}),i.push({type:`file`,name:`file`,filename:n,mediaType:t,content:e.stream}),{value:u}=await O({url:l,headers:c,parts:i,failedResponseHandler:Y,successfulResponseHandler:G(dt),abortSignal:r,fetch:this.config.fetch})}else{let i=L(e),a=new Blob([i],{type:t}),d=new FormData;n==null?d.append(`file`,a):d.append(`file`,a,n),d.append(`purpose`,s),o?.expiresAfter!=null&&(d.append(`expires_after[anchor]`,`created_at`),d.append(`expires_after[seconds]`,String(o.expiresAfter))),{value:u}=await le({url:l,headers:c,formData:d,failedResponseHandler:Y,successfulResponseHandler:G(dt),abortSignal:r,fetch:this.config.fetch})}return{warnings:[],providerReference:{openai:u.id},...u.filename??n?{filename:u.filename??n}:{},...t==null?{}:{mediaType:t},...u.bytes==null?{}:{byteSize:u.bytes},...u.created_at==null?{}:{createdAt:new Date(u.created_at*1e3)},...u.expires_at==null?{}:{expiresAt:new Date(u.expires_at*1e3)},providerMetadata:{openai:this.toFileMetadata(u)}}}async getFileMetadata({file:e,abortSignal:t,headers:n}){let r=this.getFileId(e),{value:i}=await p({url:`${this.config.baseURL}/files/${mt(r)}`,headers:this.getHeaders(n),failedResponseHandler:Y,successfulResponseHandler:G(dt),abortSignal:t,fetch:this.config.fetch,validateUrl:!1});return{warnings:[],providerReference:{openai:i.id},...i.filename==null?{}:{filename:i.filename},...i.bytes==null?{}:{byteSize:i.bytes},...i.created_at==null?{}:{createdAt:new Date(i.created_at*1e3)},...i.expires_at==null?{}:{expiresAt:new Date(i.expires_at*1e3)},providerMetadata:{openai:this.toFileMetadata(i)}}}async downloadFile({file:e,abortSignal:t,headers:n}){let r=this.getFileId(e),{value:i,responseHeaders:a}=await p({url:`${this.config.baseURL}/files/${mt(r)}/content`,headers:this.getHeaders(n),failedResponseHandler:Y,successfulResponseHandler:re(),abortSignal:t,fetch:this.config.fetch,validateUrl:!1}),o=a?.[`content-type`]?.split(`;`)[0].trim();return{warnings:[],content:i,...o?{mediaType:o}:{}}}async deleteFile({file:e,abortSignal:t,headers:n}){let r=this.getFileId(e),{value:i}=await g({url:`${this.config.baseURL}/files/${mt(r)}`,headers:this.getHeaders(n),failedResponseHandler:Y,successfulResponseHandler:G(ft),abortSignal:t,fetch:this.config.fetch});return{warnings:[],providerReference:{openai:i.id},deleted:i.deleted}}toFileMetadata(e){return{...e.filename==null?{}:{filename:e.filename},...e.purpose==null?{}:{purpose:e.purpose},...e.bytes==null?{}:{bytes:e.bytes},...e.created_at==null?{}:{createdAt:e.created_at},...e.status==null?{}:{status:e.status},...e.expires_at==null?{}:{expiresAt:e.expires_at}}}};const gt=H(()=>W(J.object({created:J.number().nullish(),data:J.array(J.object({b64_json:J.string(),revised_prompt:J.string().nullish()})),background:J.string().nullish(),output_format:J.string().nullish(),size:J.string().nullish(),quality:J.string().nullish(),usage:J.object({input_tokens:J.number().nullish(),output_tokens:J.number().nullish(),total_tokens:J.number().nullish(),input_tokens_details:J.object({image_tokens:J.number().nullish(),text_tokens:J.number().nullish()}).nullish()}).nullish()}))),_t={"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,"gpt-image-2.5-flare":10,"gpt-image-2.5-flare-2026-09-08":10,"gpt-image-2.5-sunburst":10,"gpt-image-2.5-sunburst-2026-09-08":10,"chatgpt-image-latest":10},vt=[`chatgpt-image-`,`gpt-image-`];function yt(e){return vt.some(t=>e.startsWith(t))}function bt(e){return _t[e]??(e.startsWith(`gpt-image-`)?10:1)}const xt=J.object({quality:J.enum([`standard`,`hd`,`low`,`medium`,`high`,`xhigh`,`max`,`auto`]).optional(),background:J.enum([`transparent`,`opaque`,`auto`]).optional(),outputFormat:J.enum([`png`,`jpeg`,`webp`]).optional(),outputCompression:J.number().int().min(0).max(100).optional(),user:J.string().optional()});H(()=>W(xt));const St=H(()=>W(xt.extend({style:J.enum([`vivid`,`natural`]).optional(),moderation:J.enum([`auto`,`low`]).optional()}))),Ct=H(()=>W(xt.extend({inputFidelity:J.enum([`high`,`low`]).optional()})));var wt=class e{static[K](e){return z({modelId:e.modelId,config:e.config})}static[q](t){return new e(t.modelId,t.config)}get maxImagesPerCall(){return bt(this.modelId)}get supportsFileInputs(){return this.config.imageInputCapabilities==null?[`dall-e-2`,`gpt-image-1`,`gpt-image-1-mini`,`gpt-image-1.5`,`gpt-image-2`,`gpt-image-2.5-flare`,`gpt-image-2.5-flare-2026-09-08`,`gpt-image-2.5-sunburst`,`gpt-image-2.5-sunburst-2026-09-08`,`chatgpt-image-latest`].includes(this.modelId)?!0:this.modelId!==`dall-e-3`&&void 0:this.config.imageInputCapabilities.supportsFileInputs}get supportsMaskInputs(){return this.config.imageInputCapabilities==null?this.supportsFileInputs:this.config.imageInputCapabilities.supportsMaskInputs}get provider(){return this.config.provider}constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion=`v4`}async doGenerate({prompt:e,files:t,mask:n,n:r,size:i,aspectRatio:a,seed:o,providerOptions:s,headers:l,abortSignal:u}){let d=[];a!=null&&d.push({type:`unsupported`,feature:`aspectRatio`,details:"This model does not support aspect ratio. Use `size` instead."}),o!=null&&d.push({type:`unsupported`,feature:`seed`});let f=this.config._internal?.currentDate?.()??new Date;if(t!=null){let a=await B({provider:`openai`,providerOptions:s,schema:Ct})??{},{value:o,responseHeaders:p}=await le({url:this.config.url({path:`/images/edits`,modelId:this.modelId}),headers:D(this.config.headers?.(),l),formData:P({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([j(e.data)],{type:e.mediaType})],{type:e.mediaType}):c(e.url,{abortSignal:u}))),mask:n==null?void 0:await Et(n,u),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:Y,successfulResponseHandler:G(gt),abortSignal:u,fetch:this.config.fetch});return{images:o.data.map(e=>e.b64_json),warnings:d,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:f,modelId:this.modelId,headers:p},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 p=await B({provider:`openai`,providerOptions:s,schema:St})??{},{value:m,responseHeaders:h}=await I({url:this.config.url({path:`/images/generations`,modelId:this.modelId}),headers:D(this.config.headers?.(),l),body:{model:this.modelId,prompt:e,n:r,size:i,quality:p.quality,style:p.style,background:p.background,moderation:p.moderation,output_format:p.outputFormat,output_compression:p.outputCompression,user:p.user,...yt(this.modelId)?{}:{response_format:`b64_json`}},failedResponseHandler:Y,successfulResponseHandler:G(gt),abortSignal:u,fetch:this.config.fetch});return{images:m.data.map(e=>e.b64_json),warnings:d,usage:m.usage==null?void 0:{inputTokens:m.usage.input_tokens??void 0,outputTokens:m.usage.output_tokens??void 0,totalTokens:m.usage.total_tokens??void 0},response:{timestamp:f,modelId:this.modelId,headers:h},providerMetadata:{openai:{images:m.data.map((e,t)=>({...e.revised_prompt?{revisedPrompt:e.revised_prompt}:{},created:m.created??void 0,size:m.size??void 0,quality:m.quality??void 0,background:m.background??void 0,outputFormat:m.output_format??void 0,...Tt(m.usage?.input_tokens_details,t,m.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 Et(e,t){if(!e)return;if(e.type===`url`)return c(e.url,{abortSignal:t});let n=e.data instanceof Uint8Array?e.data:j(e.data);return new Blob([n],{type:e.mediaType})}const Dt=H(()=>W(J.object({callId:J.string(),operation:J.discriminatedUnion(`type`,[J.object({type:J.literal(`create_file`),path:J.string(),diff:J.string()}),J.object({type:J.literal(`delete_file`),path:J.string()}),J.object({type:J.literal(`update_file`),path:J.string(),diff:J.string()})])}))),Ot=H(()=>W(J.object({status:J.enum([`completed`,`failed`]),output:J.string().optional()})));H(()=>W(J.object({})));const kt=u({id:`openai.apply_patch`,inputSchema:Dt,outputSchema:Ot}),At=H(()=>W(J.object({code:J.string().nullish(),containerId:J.string()}))),jt=H(()=>W(J.object({outputs:J.array(J.discriminatedUnion(`type`,[J.object({type:J.literal(`logs`),logs:J.string()}),J.object({type:J.literal(`image`),url:J.string()})])).nullish()}))),Mt=H(()=>W(J.object({container:J.union([J.string(),J.object({fileIds:J.array(J.string()).optional()})]).optional()}))),Nt=U({id:`openai.code_interpreter`,inputSchema:At,outputSchema:jt}),Pt=(e={})=>Nt(e),Ft=J.object({id:J.string(),code:J.string().optional(),message:J.string().optional()}),It=J.discriminatedUnion(`type`,[J.object({type:J.literal(`click`),button:J.enum([`left`,`right`,`wheel`,`back`,`forward`]),x:J.number(),y:J.number(),keys:J.array(J.string()).optional()}),J.object({type:J.literal(`double_click`),x:J.number(),y:J.number(),keys:J.array(J.string()).optional()}),J.object({type:J.literal(`drag`),path:J.array(J.object({x:J.number(),y:J.number()})),keys:J.array(J.string()).optional()}),J.object({type:J.literal(`keypress`),keys:J.array(J.string())}),J.object({type:J.literal(`move`),x:J.number(),y:J.number(),keys:J.array(J.string()).optional()}),J.object({type:J.literal(`screenshot`)}),J.object({type:J.literal(`scroll`),x:J.number(),y:J.number(),scrollX:J.number(),scrollY:J.number(),keys:J.array(J.string()).optional()}),J.object({type:J.literal(`type`),text:J.string()}),J.object({type:J.literal(`wait`)})]),Lt=H(()=>W(J.object({actions:J.array(It),pendingSafetyChecks:J.array(Ft),status:J.enum([`in_progress`,`completed`,`incomplete`])}))),Rt=H(()=>W(J.object({output:J.union([J.object({type:J.literal(`computer_screenshot`),imageUrl:J.string(),fileId:J.string().optional(),detail:J.enum([`auto`,`low`,`high`,`original`]).optional()}),J.object({type:J.literal(`computer_screenshot`),fileId:J.string(),imageUrl:J.string().optional(),detail:J.enum([`auto`,`low`,`high`,`original`]).optional()})]),acknowledgedSafetyChecks:J.array(Ft).optional()}))),zt=u({id:`openai.computer`,inputSchema:Lt,outputSchema:Rt}),Bt=(e={})=>zt(e),Vt=H(()=>W(J.object({description:J.string().optional(),async:J.boolean().optional(),format:J.union([J.object({type:J.literal(`grammar`),syntax:J.enum([`regex`,`lark`]),definition:J.string()}),J.object({type:J.literal(`text`)})]).optional()}))),Ht=H(()=>W(J.string())),Ut=y({id:`openai.custom`,inputSchema:Ht}),Wt=e=>Ut(e),Gt=J.object({key:J.string(),type:J.enum([`eq`,`ne`,`gt`,`gte`,`lt`,`lte`,`in`,`nin`]),value:J.union([J.string(),J.number(),J.boolean(),J.array(J.string())])}),Kt=J.object({type:J.enum([`and`,`or`]),filters:J.array(J.union([Gt,J.lazy(()=>Kt)]))}),qt=H(()=>W(J.object({vectorStoreIds:J.array(J.string()),maxNumResults:J.number().optional(),ranking:J.object({ranker:J.string().optional(),scoreThreshold:J.number().optional()}).optional(),filters:J.union([Gt,Kt]).optional()}))),Jt=H(()=>W(J.object({queries:J.array(J.string()),results:J.array(J.object({attributes:J.record(J.string(),J.unknown()),fileId:J.string(),filename:J.string(),score:J.number(),text:J.string()})).nullable()}))),Yt=U({id:`openai.file_search`,inputSchema:J.object({}),outputSchema:Jt}),Xt=H(()=>W(J.object({action:J.enum([`generate`,`edit`,`auto`]).optional(),background:J.enum([`auto`,`opaque`,`transparent`]).optional(),inputFidelity:J.enum([`low`,`high`]).optional(),inputImageMask:J.object({fileId:J.string().optional(),imageUrl:J.string().optional()}).optional(),model:J.string().optional(),moderation:J.enum([`auto`,`low`]).optional(),outputCompression:J.number().int().min(0).max(100).optional(),outputFormat:J.enum([`png`,`jpeg`,`webp`]).optional(),partialImages:J.number().int().min(0).max(3).optional(),quality:J.enum([`auto`,`low`,`medium`,`high`,`xhigh`,`max`]).optional(),size:J.union([J.enum([`1024x1024`,`1024x1536`,`1536x1024`,`auto`]),J.string().regex(/^\d+x\d+$/)]).optional()}).strict())),Zt=H(()=>W(J.object({}))),Qt=H(()=>W(J.object({result:J.string()}))),$t=U({id:`openai.image_generation`,inputSchema:Zt,outputSchema:Qt}),en=(e={})=>$t(e),tn=H(()=>W(J.object({action:J.object({type:J.literal(`exec`),command:J.array(J.string()),timeoutMs:J.number().optional(),user:J.string().optional(),workingDirectory:J.string().optional(),env:J.record(J.string(),J.string()).optional()})}))),nn=H(()=>W(J.object({output:J.string()}))),rn=u({id:`openai.local_shell`,inputSchema:tn,outputSchema:nn}),an=H(()=>W(J.object({action:J.object({commands:J.array(J.string()),timeoutMs:J.number().optional(),maxOutputLength:J.number().optional()})}))),on=H(()=>W(J.object({output:J.array(J.object({stdout:J.string(),stderr:J.string(),outcome:J.discriminatedUnion(`type`,[J.object({type:J.literal(`timeout`)}),J.object({type:J.literal(`exit`),exitCode:J.number()})])}))}))),sn=J.array(J.discriminatedUnion(`type`,[J.object({type:J.literal(`skillReference`),providerReference:J.record(J.string(),J.string()),version:J.string().optional()}),J.object({type:J.literal(`inline`),name:J.string(),description:J.string(),source:J.object({type:J.literal(`base64`),mediaType:J.literal(`application/zip`),data:J.string()})})])).optional(),cn=H(()=>W(J.object({environment:J.union([J.object({type:J.literal(`containerAuto`),fileIds:J.array(J.string()).optional(),memoryLimit:J.enum([`1g`,`4g`,`16g`,`64g`]).optional(),networkPolicy:J.discriminatedUnion(`type`,[J.object({type:J.literal(`disabled`)}),J.object({type:J.literal(`allowlist`),allowedDomains:J.array(J.string()),domainSecrets:J.array(J.object({domain:J.string(),name:J.string(),value:J.string()})).optional()})]).optional(),skills:sn}),J.object({type:J.literal(`containerReference`),containerId:J.string()}),J.object({type:J.literal(`local`).optional(),skills:J.array(J.object({name:J.string(),description:J.string(),path:J.string()})).optional()})]).optional()}))),ln=u({id:`openai.shell`,inputSchema:an,outputSchema:on}),un=H(()=>W(J.object({execution:J.enum([`server`,`client`]).optional(),description:J.string().optional(),parameters:J.record(J.string(),J.unknown()).optional()}))),dn=H(()=>W(J.object({arguments:J.unknown().optional(),call_id:J.string().nullish()}))),fn=H(()=>W(J.object({tools:J.array(J.record(J.string(),J.unknown()))}))),pn=u({id:`openai.tool_search`,inputSchema:dn,outputSchema:fn}),mn=(e={})=>pn(e),hn=H(()=>W(J.object({externalWebAccess:J.boolean().optional(),filters:J.object({allowedDomains:J.array(J.string()).optional(),blockedDomains:J.array(J.string()).optional()}).optional(),searchContextSize:J.enum([`low`,`medium`,`high`]).optional(),userLocation:J.object({type:J.literal(`approximate`),country:J.string().optional(),city:J.string().optional(),region:J.string().optional(),timezone:J.string().optional()}).optional()}))),gn=H(()=>W(J.object({}))),_n=H(()=>W(J.object({action:J.discriminatedUnion(`type`,[J.object({type:J.literal(`search`),query:J.string().optional(),queries:J.array(J.string()).optional()}),J.object({type:J.literal(`openPage`),url:J.string().nullish()}),J.object({type:J.literal(`findInPage`),url:J.string().nullish(),pattern:J.string().nullish()})]).optional(),sources:J.array(J.discriminatedUnion(`type`,[J.object({type:J.literal(`url`),url:J.string()}),J.object({type:J.literal(`api`),name:J.string()})])).optional()}))),vn=U({id:`openai.web_search`,inputSchema:gn,outputSchema:_n}),yn=(e={})=>vn(e),bn=H(()=>W(J.object({searchContextSize:J.enum([`low`,`medium`,`high`]).optional(),userLocation:J.object({type:J.literal(`approximate`),country:J.string().optional(),city:J.string().optional(),region:J.string().optional(),timezone:J.string().optional()}).optional()}))),xn=H(()=>W(J.object({}))),Sn=H(()=>W(J.object({action:J.discriminatedUnion(`type`,[J.object({type:J.literal(`search`),query:J.string().optional()}),J.object({type:J.literal(`openPage`),url:J.string().nullish()}),J.object({type:J.literal(`findInPage`),url:J.string().nullish(),pattern:J.string().nullish()})]).optional()}))),Cn=U({id:`openai.web_search_preview`,inputSchema:xn,outputSchema:Sn}),wn=J.lazy(()=>J.union([J.string(),J.number(),J.boolean(),J.null(),J.array(wn),J.record(J.string(),wn)])),Tn=H(()=>W(J.object({serverLabel:J.string(),allowedTools:J.union([J.array(J.string()),J.object({readOnly:J.boolean().optional(),toolNames:J.array(J.string()).optional()})]).optional(),authorization:J.string().optional(),connectorId:J.string().optional(),headers:J.record(J.string(),J.string()).optional(),requireApproval:J.union([J.enum([`always`,`never`]),J.object({never:J.object({toolNames:J.array(J.string()).optional()}).optional()})]).optional(),serverDescription:J.string().optional(),serverUrl:J.string().optional()}).refine(e=>e.serverUrl!=null||e.connectorId!=null,`One of serverUrl or connectorId must be provided.`))),En=H(()=>W(J.object({}))),Dn=H(()=>W(J.object({type:J.literal(`call`),serverLabel:J.string(),name:J.string(),arguments:J.string(),output:J.string().nullish(),error:J.union([J.string(),wn]).optional()}))),On=U({id:`openai.mcp`,inputSchema:En,outputSchema:Dn}),kn=e=>On(e),An=H(()=>W(J.object({code:J.string(),fingerprint:J.string()}))),jn=H(()=>W(J.object({result:J.string(),status:J.enum([`completed`,`incomplete`])}))),Mn=U({id:`openai.programmatic_tool_calling`,inputSchema:An,outputSchema:jn,supportsDeferredResults:!0}),Nn={applyPatch:kt,customTool:Wt,codeInterpreter:Pt,computer:Bt,fileSearch:Yt,imageGeneration:en,localShell:rn,shell:ln,webSearchPreview:Cn,webSearch:yn,mcp:kn,programmaticToolCalling:()=>E(Mn({}),{type:`provider`,prepareProviderOptions:e=>{let t=e?.openai;return{...e,openai:{...t,allowedCallers:[...new Set([...t?.allowedCallers??[],`programmatic`])]}}}}),toolSearch:mn};function Pn(e){if(e==null)return he();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 Fn({finishReason:e,hasFunctionCall:t}){switch(e){case void 0:case null:return t?`tool-calls`:`stop`;case`max_output_tokens`:return`length`;case`content_filter`:return`content-filter`;default:return t?`tool-calls`:`other`}}const Z=J.lazy(()=>J.union([J.string(),J.number(),J.boolean(),J.null(),J.array(Z),J.record(J.string(),Z.optional())])),In=J.record(J.string(),Z.optional()),Ln=J.intersection(In,J.object({input_tokens:J.number(),input_tokens_details:J.intersection(In,J.object({cached_tokens:J.number().nullish(),cache_write_tokens:J.number().nullish(),orchestration_input_tokens:J.number().nullish(),orchestration_input_cached_tokens:J.number().nullish()})).nullish(),output_tokens:J.number(),output_tokens_details:J.intersection(In,J.object({reasoning_tokens:J.number().nullish(),orchestration_output_tokens:J.number().nullish()})).nullish(),total_tokens:J.number().optional()})),Rn=J.object({id:J.string(),code:J.string().nullish(),message:J.string().nullish()}),zn=J.discriminatedUnion(`type`,[J.object({type:J.literal(`click`),button:J.enum([`left`,`right`,`wheel`,`back`,`forward`]),x:J.number(),y:J.number(),keys:J.array(J.string()).nullish()}),J.object({type:J.literal(`double_click`),x:J.number(),y:J.number(),keys:J.array(J.string()).nullish()}),J.object({type:J.literal(`drag`),path:J.array(J.object({x:J.number(),y:J.number()})),keys:J.array(J.string()).nullish()}),J.object({type:J.literal(`keypress`),keys:J.array(J.string())}),J.object({type:J.literal(`move`),x:J.number(),y:J.number(),keys:J.array(J.string()).nullish()}),J.object({type:J.literal(`screenshot`)}),J.object({type:J.literal(`scroll`),x:J.number(),y:J.number(),scroll_x:J.number(),scroll_y:J.number(),keys:J.array(J.string()).nullish()}),J.object({type:J.literal(`type`),text:J.string()}),J.object({type:J.literal(`wait`)})]),Bn=J.object({type:J.literal(`computer_call`),id:J.string(),call_id:J.string().nullish(),status:J.enum([`in_progress`,`completed`,`incomplete`]),action:zn.nullish(),actions:J.array(zn).nullish(),pending_safety_checks:J.array(Rn).nullish()}),Vn=J.discriminatedUnion(`type`,[J.object({type:J.literal(`direct`)}),J.object({type:J.literal(`program`),caller_id:J.string()})]),Hn=J.object({type:J.literal(`program`),id:J.string(),call_id:J.string(),code:J.string(),fingerprint:J.string()}),Un=J.object({type:J.literal(`program_output`),id:J.string(),call_id:J.string(),result:J.string(),status:J.enum([`completed`,`incomplete`])}),Wn=J.object({type:J.literal(`local_shell_call`),id:J.string(),call_id:J.string(),action:J.object({type:J.literal(`exec`),command:J.array(J.string()),timeout_ms:J.number().optional(),user:J.string().optional(),working_directory:J.string().optional(),env:J.record(J.string(),J.string()).optional()})}),Gn=J.object({type:J.literal(`error`),sequence_number:J.number(),error:J.object({type:J.string(),code:J.string().nullish(),message:J.string(),param:J.string().nullish()})}),Kn=J.object({type:J.literal(`error`),sequence_number:J.number(),code:J.string().nullish(),message:J.string(),param:J.string().nullish()}),qn=new Set([`error`,`response.apply_patch_call_operation_diff.delta`,`response.apply_patch_call_operation_diff.done`,`response.code_interpreter_call_code.delta`,`response.code_interpreter_call_code.done`,`response.completed`,`response.created`,`response.custom_tool_call_input.delta`,`response.failed`,`response.function_call_arguments.delta`,`response.function_call_arguments.done`,`response.image_generation_call.partial_image`,`response.in_progress`,`response.incomplete`,`response.output_item.added`,`response.output_item.done`,`response.output_text.annotation.added`,`response.output_text.delta`,`response.reasoning_summary_part.added`,`response.reasoning_summary_part.done`,`response.reasoning_summary_text.delta`]),Jn=new Set([`apply_patch_call`,`code_interpreter_call`,`compaction`,`computer_call`,`custom_tool_call`,`file_search_call`,`function_call`,`image_generation_call`,`local_shell_call`,`mcp_approval_request`,`mcp_call`,`mcp_list_tools`,`message`,`program`,`program_output`,`reasoning`,`shell_call`,`shell_call_output`,`tool_search_call`,`tool_search_output`,`web_search_call`]);function Yn(e){return typeof e.type!=`string`||!qn.has(e.type)?!1:e.type!==`response.output_item.added`&&e.type!==`response.output_item.done`||!S(e.item)||typeof e.item.type!=`string`||Jn.has(e.item.type)}const Xn=H(()=>W(J.union([J.object({type:J.literal(`response.output_text.delta`),item_id:J.string(),output_index:J.number().nullish(),delta:J.string(),logprobs:J.array(J.object({token:J.string(),logprob:J.number(),top_logprobs:J.array(J.object({token:J.string(),logprob:J.number()}))})).nullish()}),J.object({type:J.enum([`response.completed`,`response.incomplete`]),response:J.object({incomplete_details:J.object({reason:J.string()}).nullish(),usage:Ln.nullish(),reasoning:J.object({context:J.string().nullish()}).nullish(),service_tier:J.string().nullish()})}),J.object({type:J.literal(`response.failed`),sequence_number:J.number(),response:J.object({error:J.object({code:J.string().nullish(),message:J.string()}).nullish(),incomplete_details:J.object({reason:J.string()}).nullish(),usage:Ln.nullish(),reasoning:J.object({context:J.string().nullish()}).nullish(),service_tier:J.string().nullish()})}),J.object({type:J.literal(`response.created`),response:J.object({id:J.string(),created_at:J.number(),model:J.string(),service_tier:J.string().nullish()})}),J.object({type:J.literal(`response.in_progress`),response:J.object({id:J.string(),created_at:J.number(),model:J.string(),service_tier:J.string().nullish()})}),J.object({type:J.literal(`response.output_item.added`),output_index:J.number(),item:J.discriminatedUnion(`type`,[J.object({type:J.literal(`message`),id:J.string(),phase:J.enum([`commentary`,`final_answer`]).nullish()}),J.object({type:J.literal(`reasoning`),id:J.string(),encrypted_content:J.string().nullish()}),J.object({type:J.literal(`function_call`),id:J.string(),call_id:J.string(),name:J.string(),arguments:J.string(),async:J.boolean().nullish(),namespace:J.string().nullish(),caller:Vn.nullish()}),Hn,Un,J.object({type:J.literal(`web_search_call`),id:J.string(),status:J.string()}),Bn,J.object({type:J.literal(`file_search_call`),id:J.string()}),Wn,J.object({type:J.literal(`image_generation_call`),id:J.string()}),J.object({type:J.literal(`code_interpreter_call`),id:J.string(),container_id:J.string(),code:J.string().nullable(),outputs:J.array(J.discriminatedUnion(`type`,[J.object({type:J.literal(`logs`),logs:J.string()}),J.object({type:J.literal(`image`),url:J.string()})])).nullable(),status:J.string()}),J.object({type:J.literal(`mcp_call`),id:J.string(),status:J.string(),approval_request_id:J.string().nullish()}),J.object({type:J.literal(`mcp_list_tools`),id:J.string()}),J.object({type:J.literal(`mcp_approval_request`),id:J.string()}),J.object({type:J.literal(`apply_patch_call`),id:J.string(),call_id:J.string(),status:J.enum([`in_progress`,`completed`]),operation:J.discriminatedUnion(`type`,[J.object({type:J.literal(`create_file`),path:J.string(),diff:J.string()}),J.object({type:J.literal(`delete_file`),path:J.string()}),J.object({type:J.literal(`update_file`),path:J.string(),diff:J.string()})])}),J.object({type:J.literal(`custom_tool_call`),id:J.string(),call_id:J.string(),name:J.string(),input:J.string(),async:J.boolean().nullish()}),J.object({type:J.literal(`shell_call`),id:J.string(),call_id:J.string(),status:J.enum([`in_progress`,`completed`,`incomplete`]),action:J.object({commands:J.array(J.string())})}),J.object({type:J.literal(`compaction`),id:J.string(),encrypted_content:J.string().nullish()}),J.object({type:J.literal(`shell_call_output`),id:J.string(),call_id:J.string(),status:J.enum([`in_progress`,`completed`,`incomplete`]),output:J.array(J.object({stdout:J.string(),stderr:J.string(),outcome:J.discriminatedUnion(`type`,[J.object({type:J.literal(`timeout`)}),J.object({type:J.literal(`exit`),exit_code:J.number()})])}))}),J.object({type:J.literal(`tool_search_call`),id:J.string(),execution:J.enum([`server`,`client`]),call_id:J.string().nullable(),status:J.enum([`in_progress`,`completed`,`incomplete`]),arguments:J.unknown()}),J.object({type:J.literal(`tool_search_output`),id:J.string(),execution:J.enum([`server`,`client`]),call_id:J.string().nullable(),status:J.enum([`in_progress`,`completed`,`incomplete`]),tools:J.array(J.record(J.string(),Z.optional()))})])}),J.object({type:J.literal(`response.output_item.done`),output_index:J.number(),item:J.discriminatedUnion(`type`,[J.object({type:J.literal(`message`),id:J.string(),phase:J.enum([`commentary`,`final_answer`]).nullish()}),J.object({type:J.literal(`reasoning`),id:J.string(),encrypted_content:J.string().nullish()}),J.object({type:J.literal(`function_call`),id:J.string(),call_id:J.string(),name:J.string(),arguments:J.string(),async:J.boolean().nullish(),status:J.enum([`in_progress`,`completed`,`incomplete`]),namespace:J.string().nullish(),caller:Vn.nullish()}),Hn,Un,J.object({type:J.literal(`custom_tool_call`),id:J.string(),call_id:J.string(),name:J.string(),input:J.string(),async:J.boolean().nullish(),status:J.literal(`completed`)}),J.object({type:J.literal(`code_interpreter_call`),id:J.string(),code:J.string().nullable(),container_id:J.string(),outputs:J.array(J.discriminatedUnion(`type`,[J.object({type:J.literal(`logs`),logs:J.string()}),J.object({type:J.literal(`image`),url:J.string()})])).nullable()}),J.object({type:J.literal(`image_generation_call`),id:J.string(),result:J.string()}),J.object({type:J.literal(`web_search_call`),id:J.string(),status:J.string(),action:J.discriminatedUnion(`type`,[J.object({type:J.literal(`search`),query:J.string().nullish(),queries:J.array(J.string()).nullish(),sources:J.array(J.discriminatedUnion(`type`,[J.object({type:J.literal(`url`),url:J.string()}),J.object({type:J.literal(`api`),name:J.string()})])).nullish()}),J.object({type:J.literal(`open_page`),url:J.string().nullish()}),J.object({type:J.literal(`find_in_page`),url:J.string().nullish(),pattern:J.string().nullish()})]).nullish()}),J.object({type:J.literal(`file_search_call`),id:J.string(),queries:J.array(J.string()),results:J.array(J.object({attributes:J.record(J.string(),J.union([J.string(),J.number(),J.boolean()])),file_id:J.string(),filename:J.string(),score:J.number(),text:J.string()})).nullish()}),Wn,Bn,J.object({type:J.literal(`mcp_call`),id:J.string(),status:J.string(),arguments:J.string(),name:J.string(),server_label:J.string(),output:J.string().nullish(),error:J.union([J.string(),J.object({type:J.string().optional(),code:J.union([J.number(),J.string()]).optional(),message:J.string().optional()}).loose()]).nullish(),approval_request_id:J.string().nullish()}),J.object({type:J.literal(`mcp_list_tools`),id:J.string(),server_label:J.string(),tools:J.array(J.object({name:J.string(),description:J.string().optional(),input_schema:J.any(),annotations:J.record(J.string(),J.unknown()).optional()})),error:J.union([J.string(),J.object({type:J.string().optional(),code:J.union([J.number(),J.string()]).optional(),message:J.string().optional()}).loose()]).optional()}),J.object({type:J.literal(`mcp_approval_request`),id:J.string(),server_label:J.string(),name:J.string(),arguments:J.string(),approval_request_id:J.string().optional()}),J.object({type:J.literal(`apply_patch_call`),id:J.string(),call_id:J.string(),status:J.enum([`in_progress`,`completed`]),operation:J.discriminatedUnion(`type`,[J.object({type:J.literal(`create_file`),path:J.string(),diff:J.string()}),J.object({type:J.literal(`delete_file`),path:J.string()}),J.object({type:J.literal(`update_file`),path:J.string(),diff:J.string()})])}),J.object({type:J.literal(`shell_call`),id:J.string(),call_id:J.string(),status:J.enum([`in_progress`,`completed`,`incomplete`]),action:J.object({commands:J.array(J.string())})}),J.object({type:J.literal(`compaction`),id:J.string(),encrypted_content:J.string()}),J.object({type:J.literal(`shell_call_output`),id:J.string(),call_id:J.string(),status:J.enum([`in_progress`,`completed`,`incomplete`]),output:J.array(J.object({stdout:J.string(),stderr:J.string(),outcome:J.discriminatedUnion(`type`,[J.object({type:J.literal(`timeout`)}),J.object({type:J.literal(`exit`),exit_code:J.number()})])}))}),J.object({type:J.literal(`tool_search_call`),id:J.string(),execution:J.enum([`server`,`client`]),call_id:J.string().nullable(),status:J.enum([`in_progress`,`completed`,`incomplete`]),arguments:J.unknown()}),J.object({type:J.literal(`tool_search_output`),id:J.string(),execution:J.enum([`server`,`client`]),call_id:J.string().nullable(),status:J.enum([`in_progress`,`completed`,`incomplete`]),tools:J.array(J.record(J.string(),Z.optional()))})])}),J.object({type:J.literal(`response.function_call_arguments.delta`),item_id:J.string(),output_index:J.number(),delta:J.string()}),J.object({type:J.literal(`response.function_call_arguments.done`),item_id:J.string(),output_index:J.number(),arguments:J.string()}),J.object({type:J.literal(`response.custom_tool_call_input.delta`),item_id:J.string(),output_index:J.number(),delta:J.string()}),J.object({type:J.literal(`response.image_generation_call.partial_image`),item_id:J.string(),output_index:J.number(),partial_image_b64:J.string()}),J.object({type:J.literal(`response.code_interpreter_call_code.delta`),item_id:J.string(),output_index:J.number(),delta:J.string()}),J.object({type:J.literal(`response.code_interpreter_call_code.done`),item_id:J.string(),output_index:J.number(),code:J.string()}),J.object({type:J.literal(`response.output_text.annotation.added`),annotation:J.discriminatedUnion(`type`,[J.object({type:J.literal(`url_citation`),start_index:J.number(),end_index:J.number(),url:J.string(),title:J.string()}),J.object({type:J.literal(`file_citation`),file_id:J.string(),filename:J.string(),index:J.number()}),J.object({type:J.literal(`container_file_citation`),container_id:J.string(),file_id:J.string(),filename:J.string(),start_index:J.number(),end_index:J.number()}),J.object({type:J.literal(`file_path`),file_id:J.string(),index:J.number()})])}),J.object({type:J.literal(`response.reasoning_summary_part.added`),item_id:J.string(),output_index:J.number().nullish(),summary_index:J.number()}),J.object({type:J.literal(`response.reasoning_summary_text.delta`),item_id:J.string(),output_index:J.number().nullish(),summary_index:J.number(),delta:J.string()}),J.object({type:J.literal(`response.reasoning_summary_part.done`),item_id:J.string(),output_index:J.number().nullish(),summary_index:J.number()}),J.object({type:J.literal(`response.apply_patch_call_operation_diff.delta`),item_id:J.string(),output_index:J.number(),delta:J.string(),obfuscation:J.string().nullish()}),J.object({type:J.literal(`response.apply_patch_call_operation_diff.done`),item_id:J.string(),output_index:J.number(),diff:J.string()}),Gn,Kn,J.object({type:J.string()}).loose().refine(e=>!Yn(e),{message:`Known response chunk failed schema validation`}).transform(e=>({type:`unknown_chunk`,message:e.type}))]))),Zn=H(()=>W(J.object({id:J.string().optional(),created_at:J.number().optional(),error:J.object({message:J.string(),type:J.string(),param:J.string().nullish(),code:J.string()}).nullish(),model:J.string().optional(),output:J.array(J.discriminatedUnion(`type`,[J.object({type:J.literal(`message`),role:J.literal(`assistant`),id:J.string(),phase:J.enum([`commentary`,`final_answer`]).nullish(),content:J.array(J.object({type:J.literal(`output_text`),text:J.string(),logprobs:J.array(J.object({token:J.string(),logprob:J.number(),top_logprobs:J.array(J.object({token:J.string(),logprob:J.number()}))})).nullish(),annotations:J.array(J.discriminatedUnion(`type`,[J.object({type:J.literal(`url_citation`),start_index:J.number(),end_index:J.number(),url:J.string(),title:J.string()}),J.object({type:J.literal(`file_citation`),file_id:J.string(),filename:J.string(),index:J.number()}),J.object({type:J.literal(`container_file_citation`),container_id:J.string(),file_id:J.string(),filename:J.string(),start_index:J.number(),end_index:J.number()}),J.object({type:J.literal(`file_path`),file_id:J.string(),index:J.number()})]))}))}),J.object({type:J.literal(`web_search_call`),id:J.string(),status:J.string(),action:J.discriminatedUnion(`type`,[J.object({type:J.literal(`search`),query:J.string().nullish(),queries:J.array(J.string()).nullish(),sources:J.array(J.discriminatedUnion(`type`,[J.object({type:J.literal(`url`),url:J.string()}),J.object({type:J.literal(`api`),name:J.string()})])).nullish()}),J.object({type:J.literal(`open_page`),url:J.string().nullish()}),J.object({type:J.literal(`find_in_page`),url:J.string().nullish(),pattern:J.string().nullish()})]).nullish()}),J.object({type:J.literal(`file_search_call`),id:J.string(),queries:J.array(J.string()),results:J.array(J.object({attributes:J.record(J.string(),J.union([J.string(),J.number(),J.boolean()])),file_id:J.string(),filename:J.string(),score:J.number(),text:J.string()})).nullish()}),J.object({type:J.literal(`code_interpreter_call`),id:J.string(),code:J.string().nullable(),container_id:J.string(),outputs:J.array(J.discriminatedUnion(`type`,[J.object({type:J.literal(`logs`),logs:J.string()}),J.object({type:J.literal(`image`),url:J.string()})])).nullable()}),J.object({type:J.literal(`image_generation_call`),id:J.string(),result:J.string()}),Wn,J.object({type:J.literal(`function_call`),call_id:J.string(),name:J.string(),arguments:J.string(),id:J.string(),async:J.boolean().nullish(),namespace:J.string().nullish(),caller:Vn.nullish()}),Hn,Un,J.object({type:J.literal(`custom_tool_call`),call_id:J.string(),name:J.string(),input:J.string(),id:J.string(),async:J.boolean().nullish()}),Bn,J.object({type:J.literal(`reasoning`),id:J.string(),encrypted_content:J.string().nullish(),summary:J.array(J.object({type:J.literal(`summary_text`),text:J.string()}))}),J.object({type:J.literal(`mcp_call`),id:J.string(),status:J.string(),arguments:J.string(),name:J.string(),server_label:J.string(),output:J.string().nullish(),error:J.union([J.string(),J.object({type:J.string().optional(),code:J.union([J.number(),J.string()]).optional(),message:J.string().optional()}).loose()]).nullish(),approval_request_id:J.string().nullish()}),J.object({type:J.literal(`mcp_list_tools`),id:J.string(),server_label:J.string(),tools:J.array(J.object({name:J.string(),description:J.string().optional(),input_schema:J.any(),annotations:J.record(J.string(),J.unknown()).optional()})),error:J.union([J.string(),J.object({type:J.string().optional(),code:J.union([J.number(),J.string()]).optional(),message:J.string().optional()}).loose()]).optional()}),J.object({type:J.literal(`mcp_approval_request`),id:J.string(),server_label:J.string(),name:J.string(),arguments:J.string(),approval_request_id:J.string().optional()}),J.object({type:J.literal(`apply_patch_call`),id:J.string(),call_id:J.string(),status:J.enum([`in_progress`,`completed`]),operation:J.discriminatedUnion(`type`,[J.object({type:J.literal(`create_file`),path:J.string(),diff:J.string()}),J.object({type:J.literal(`delete_file`),path:J.string()}),J.object({type:J.literal(`update_file`),path:J.string(),diff:J.string()})])}),J.object({type:J.literal(`shell_call`),id:J.string(),call_id:J.string(),status:J.enum([`in_progress`,`completed`,`incomplete`]),action:J.object({commands:J.array(J.string())})}),J.object({type:J.literal(`compaction`),id:J.string(),encrypted_content:J.string()}),J.object({type:J.literal(`shell_call_output`),id:J.string(),call_id:J.string(),status:J.enum([`in_progress`,`completed`,`incomplete`]),output:J.array(J.object({stdout:J.string(),stderr:J.string(),outcome:J.discriminatedUnion(`type`,[J.object({type:J.literal(`timeout`)}),J.object({type:J.literal(`exit`),exit_code:J.number()})])}))}),J.object({type:J.literal(`tool_search_call`),id:J.string(),execution:J.enum([`server`,`client`]),call_id:J.string().nullable(),status:J.enum([`in_progress`,`completed`,`incomplete`]),arguments:J.unknown()}),J.object({type:J.literal(`tool_search_output`),id:J.string(),execution:J.enum([`server`,`client`]),call_id:J.string().nullable(),status:J.enum([`in_progress`,`completed`,`incomplete`]),tools:J.array(J.record(J.string(),Z.optional()))})])).optional(),service_tier:J.string().nullish(),reasoning:J.object({context:J.string().nullish()}).nullish(),incomplete_details:J.object({reason:J.string()}).nullish(),usage:Ln.nullish()}))),Qn=H(()=>W(J.object({conversation:J.string().nullish(),include:J.array(J.enum([`reasoning.encrypted_content`,`file_search_call.results`,`web_search_call.results`,`message.output_text.logprobs`])).nullish(),includeWebSearchSources:J.boolean().optional(),instructions:J.string().nullish(),logprobs:J.union([J.boolean(),J.number().min(1).max(20)]).optional(),maxToolCalls:J.number().nullish(),metadata:J.any().nullish(),parallelToolCalls:J.boolean().nullish(),previousResponseId:J.string().nullish(),promptCacheKey:J.string().nullish(),promptCacheOptions:J.object({mode:J.enum([`implicit`,`explicit`]).optional(),ttl:J.literal(`30m`).optional()}).optional(),promptCacheRetention:J.enum([`in_memory`,`24h`]).nullish(),reasoningEffort:J.string().nullish(),reasoningEffortUpdate:J.enum([`none`,`low`,`medium`,`high`,`xhigh`,`max`]).optional(),reasoningMode:J.enum([`standard`,`pro`]).optional(),reasoningContext:J.enum([`auto`,`current_turn`,`all_turns`]).optional(),reasoningSummary:J.string().nullish(),safetyIdentifier:J.string().nullish(),serviceTier:J.enum([`auto`,`flex`,`priority`,`fast`,`ultrafast`,`default`]).nullish(),store:J.boolean().nullish(),passThroughUnsupportedFiles:J.boolean().optional(),strictJsonSchema:J.boolean().nullish(),textVerbosity:J.enum([`low`,`medium`,`high`]).nullish(),truncation:J.enum([`auto`,`disabled`]).nullish(),user:J.string().nullish(),systemMessageMode:J.enum([`system`,`developer`,`remove`]).optional(),forceReasoning:J.boolean().optional(),contextManagement:J.array(J.object({type:J.literal(`compaction`),compactThreshold:J.number()})).nullish(),compactionTrigger:J.boolean().optional(),allowedTools:J.object({toolNames:J.array(J.string()).min(1),mode:J.enum([`auto`,`required`]).optional()}).optional()}))),$n=H(()=>W(J.object({reasoningEffortUpdate:J.enum([`none`,`low`,`medium`,`high`,`xhigh`,`max`]).optional()}))),er=`parallel`;function tr({providerOptions:e,providerOptionsName:t}){let n=e?.[t]?.parallelToolCall;if(!(!o(n)||typeof n.itemId!=`string`||typeof n.toolCallId!=`string`||typeof n.toolName!=`string`||typeof n.input!=`string`||typeof n.index!=`number`||!Number.isInteger(n.index)||typeof n.count!=`number`||!Number.isInteger(n.count)||n.index<0||n.count<=n.index))return n}function nr({toolName:e,tools:t}){return e===er&&!t.some(e=>e.name===er)}async function rr({toolCall:e,tools:t,providerOptionsName:n,itemId:r}){if(!nr({toolName:e.toolName,tools:t}))return;let i=await ee({text:e.input});if(!i.success||!o(i.value))return;let a=i.value.tool_uses;if(!Array.isArray(a)||a.length===0)return;let s=new Set(t.map(e=>e.name)),c=[];for(let[t,i]of a.entries()){if(!o(i))return;let l=i.recipient_name,u=i.parameters;if(typeof l!=`string`||!l.startsWith(`functions.`)||!o(u))return;let d=l.slice(10);if(d.length===0||!s.has(d))return;c.push({type:`tool-call`,toolCallId:`${e.toolCallId}_${t}`,toolName:d,input:JSON.stringify(u),providerMetadata:{[n]:{parallelToolCall:{itemId:r,toolCallId:e.toolCallId,toolName:e.toolName,input:e.input,index:t,count:a.length}}}})}return c}function ir(e){return JSON.stringify(e===void 0?{}:e)}function ar(e){return e==null?void 0:e.type===`program`?{type:`program`,caller_id:e.callerId}:e}async function or({output:e,toolName:t,outputSchemaToolNames:n,promptCacheBreakpoint:r,providerOptionsName:i,warnings:a}){let o=n?.has(t),s=e=>r==null?e:[{type:`input_text`,text:e,prompt_cache_breakpoint:r}];switch(e.type){case`text`:return s(o?JSON.stringify(e.value):e.value);case`error-text`:case`error-json`:return s(JSON.stringify({error:e.value}));case`execution-denied`:{let t=e.reason??`Tool call execution denied.`;return s(o?JSON.stringify(t):t)}case`json`:return s(JSON.stringify(e.value));case`content`:return e.value.map(e=>{let t=Q(e.providerOptions,i);switch(e.type){case`text`:return{type:`input_text`,text:e.text,...t!=null&&{prompt_cache_breakpoint:t}};case`file`:{let n=h(e.mediaType),r=e.providerOptions?.[i]?.imageDetail;if(e.data.type===`reference`){let a=R({reference:e.data.reference,provider:i});return n===`image`?{type:`input_image`,file_id:a,detail:r,...t!=null&&{prompt_cache_breakpoint:t}}:{type:`input_file`,file_id:a,...t!=null&&{prompt_cache_breakpoint:t}}}if(e.data.type===`data`){let i=M({part:e});return n===`image`?{type:`input_image`,image_url:`data:${i};base64,${N(e.data.data)}`,detail:r,...t!=null&&{prompt_cache_breakpoint:t}}:{type:`input_file`,filename:e.filename??`data`,file_data:`data:${i};base64,${N(e.data.data)}`,...t!=null&&{prompt_cache_breakpoint:t}}}if(e.data.type===`url`)return n===`image`?{type:`input_image`,image_url:e.data.url.toString(),detail:r,...t!=null&&{prompt_cache_breakpoint:t}}:{type:`input_file`,file_url:e.data.url.toString(),...t!=null&&{prompt_cache_breakpoint:t}};a.push({type:`other`,message:`unsupported tool content part type: ${e.type} with data type: ${e.data.type}`});return}default:a.push({type:`other`,message:`unsupported tool content part type: ${e.type}`});return}}).filter(C)}}function sr(e,t){return e.itemId===t.itemId&&e.toolCallId===t.toolCallId&&e.toolName===t.toolName&&e.input===t.input&&e.count===t.count}function cr({prompt:e,providerOptionsName:t}){let n=new Map;for(let r of e)if(r.role===`tool`)for(let e of r.content){if(e.type!==`tool-result`)continue;let r=tr({providerOptions:e.providerOptions,providerOptionsName:t});if(r==null)continue;let i=n.get(r.toolCallId);if(i==null){n.set(r.toolCallId,{metadata:r,results:new Map([[r.index,e]]),invalid:!1});continue}if(!sr(i.metadata,r)||i.results.has(r.index)){i.invalid=!0;continue}i.results.set(r.index,e)}let r=new Map;for(let[e,t]of n){if(t.invalid||t.results.size!==t.metadata.count)continue;let n=Array.from({length:t.metadata.count},(e,n)=>t.results.get(n));n.every(C)&&r.set(e,{metadata:t.metadata,results:n})}return r}function Q(e,t){return e?.[t]?.promptCacheBreakpoint}function lr({output:e,toolResultProviderOptions:t,providerOptionsName:n}){return e.type===`content`?void 0:Q(e.providerOptions,n)??Q(t,n)}function ur(e,t){return t?t.some(t=>e.startsWith(t)):!1}async function dr({prompt:e,toolNameMapping:t,systemMessageMode:n,providerOptionsName:r,explicitMessageItemType:i=!1,fileIdPrefixes:o,passThroughUnsupportedFiles:s=!1,store:c,hasConversation:l=!1,hasPreviousResponseId:u=!1,hasLocalShellTool:d=!1,hasShellTool:f=!1,hasApplyPatchTool:p=!1,hasComputerTool:m=!1,toolSearchToolName:g,customProviderToolNames:_,outputSchemaToolNames:v,configurationUpdateUnsupportedReason:y}){let b=[],x=[],S=new Set,w=new Set,T=l||u?cr({prompt:e,providerOptionsName:r}):new Map,E=new Set,D=new Set;for(let{role:O,content:k,providerOptions:j}of e)switch(O){case`system`:{let e=await B({provider:r,providerOptions:j,schema:$n});e==null&&r!==`openai`&&(e=await B({provider:`openai`,providerOptions:j,schema:$n}));let t=e?.reasoningEffortUpdate;if(t!=null){let e=k===``?y:`Message-level reasoningEffortUpdate requires empty system message content.`;if(e!=null)throw new a({functionality:`Message-level reasoningEffortUpdate`,message:e});b.push({type:`configuration_update`,reasoning:{effort:t}});break}switch(n){case`system`:{let e=Q(j,r);b.push({...i&&{type:`message`},role:`system`,content:e==null?k:[{type:`input_text`,text:k,prompt_cache_breakpoint:e}]});break}case`developer`:{let e=Q(j,r);b.push({...i&&{type:`message`},role:`developer`,content:e==null?k:[{type:`input_text`,text:k,prompt_cache_breakpoint:e}]});break}case`remove`:x.push({type:`other`,message:`system messages are removed for this model`});break;default:throw Error(`Unsupported system message mode: ${n}`)}break}case`user`:b.push({...i&&{type:`message`},role:`user`,content:k.map((e,t)=>{switch(e.type){case`text`:{let t=Q(e.providerOptions,r);return{type:`input_text`,text:e.text,...t!=null&&{prompt_cache_breakpoint:t}}}case`file`:{let n=Q(e.providerOptions,r);switch(e.data.type){case`reference`:{let t=R({reference:e.data.reference,provider:r});return h(e.mediaType)===`image`?{type:`input_image`,file_id:t,detail:e.providerOptions?.[r]?.imageDetail,...n!=null&&{prompt_cache_breakpoint:n}}:{type:`input_file`,file_id:t,...n!=null&&{prompt_cache_breakpoint:n}}}case`text`:throw new a({functionality:`text file parts`});case`url`:case`data`:if(h(e.mediaType)===`image`)return{type:`input_image`,...e.data.type===`url`?{image_url:e.data.url.toString()}:typeof e.data.data==`string`&&ur(e.data.data,o)?{file_id:e.data.data}:{image_url:`data:${M({part:e})};base64,${N(e.data.data)}`},detail:e.providerOptions?.[r]?.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 r=M({part:e});if(r!==`application/pdf`&&!s)throw new a({functionality:`file part media type ${r}`});return{type:`input_file`,...typeof e.data.data==`string`&&ur(e.data.data,o)?{file_id:e.data.data}:{filename:e.filename??(r===`application/pdf`?`part-${t}.pdf`:`part-${t}`),file_data:`data:${r};base64,${N(e.data.data)}`},...n!=null&&{prompt_cache_breakpoint:n}}}}}}})});break;case`assistant`:{let e={},n=new Set;for(let a of k)switch(a.type){case`text`:{let e=a.providerOptions?.[r],t=e?.itemId,o=e?.phase;if(l&&t!=null)break;if(c&&t!=null){n.has(t)||(n.add(t),b.push({type:`item_reference`,id:t}));break}b.push({...i&&{type:`message`},role:`assistant`,content:a.text,...o!=null&&{phase:o}});break}case`tool-call`:{let e=tr({providerOptions:a.providerOptions,providerOptionsName:r}),n=e==null?void 0:T.get(e.toolCallId);if(e!=null&&n!=null&&sr(n.metadata,e)){E.has(n.metadata.toolCallId)||(E.add(n.metadata.toolCallId),l||b.push({type:`function_call`,call_id:n.metadata.toolCallId,name:n.metadata.toolName,arguments:n.metadata.input}));break}let i=a.providerOptions?.[r]?.itemId??a.providerMetadata?.[r]?.itemId,o=a.providerOptions?.[r]?.namespace??a.providerMetadata?.[r]?.namespace,s=a.providerOptions?.[r]?.async??a.providerMetadata?.[r]?.async,h=a.providerOptions?.[r]?.caller;if(h?.type===`program`&&w.add(a.toolCallId),l&&i!=null)break;let v=t.toProviderToolName(a.toolName);if(a.toolName===g){if(c&&i!=null){b.push({type:`item_reference`,id:i});break}let e=typeof a.input==`string`?await fe({text:a.input,schema:dn}):await A({value:a.input,schema:dn}),t=e.call_id==null?`server`:`client`;b.push({type:`tool_search_call`,id:i??a.toolCallId,execution:t,call_id:e.call_id??null,status:`completed`,arguments:e.arguments});break}if(v===`programmatic_tool_calling`){if(c&&i!=null){b.push({type:`item_reference`,id:i});break}let e=await A({value:a.input,schema:An});b.push({type:`program`,id:i??a.toolCallId,call_id:a.toolCallId,code:e.code,fingerprint:e.fingerprint});break}if(a.providerExecuted&&(c&&i!=null&&b.push({type:`item_reference`,id:i}),c||!f||v!==`shell`))break;let y=d&&v===`local_shell`||f&&v===`shell`||p&&v===`apply_patch`||m&&v===`computer`||(_?.has(v)??!1);if(u&&c&&i!=null&&y)break;if(c&&i!=null&&y){b.push({type:`item_reference`,id:i});break}if(d&&v===`local_shell`){let e=await A({value:a.input,schema:tn});b.push({type:`local_shell_call`,call_id:a.toolCallId,id:i,action:{type:`exec`,command:e.action.command,timeout_ms:e.action.timeoutMs,user:e.action.user,working_directory:e.action.workingDirectory,env:e.action.env}});break}if(f&&v===`shell`){let e=await A({value:a.input,schema:an});b.push({type:`shell_call`,call_id:a.toolCallId,id:i,status:`completed`,action:{commands:e.action.commands,timeout_ms:e.action.timeoutMs,max_output_length:e.action.maxOutputLength}});break}if(p&&v===`apply_patch`){let e=await A({value:a.input,schema:Dt});b.push({type:`apply_patch_call`,call_id:e.callId,id:i,status:`completed`,operation:e.operation});break}if(m&&v===`computer`){let e=await A({value:a.input,schema:Lt});b.push({type:`computer_call`,call_id:a.toolCallId,id:i,status:e.status,actions:e.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};case`scroll`:return{type:`scroll`,x:e.x,y:e.y,scroll_x:e.scrollX,scroll_y:e.scrollY,keys:e.keys};default:return e}}),pending_safety_checks:e.pendingSafetyChecks.map(e=>({id:e.id,code:e.code,message:e.message}))});break}if(_?.has(v)){b.push({type:`custom_tool_call`,call_id:a.toolCallId,name:v,input:typeof a.input==`string`?a.input:JSON.stringify(a.input),...s!=null&&{async:s},id:i});break}b.push({type:`function_call`,call_id:a.toolCallId,name:v,arguments:ir(a.input),...s!=null&&{async:s},...o!=null&&{namespace:o},...h!=null&&{caller:ar(h)}});break}case`tool-result`:{if(a.output.type===`execution-denied`||a.output.type===`json`&&typeof a.output.value==`object`&&a.output.value!=null&&`type`in a.output.value&&a.output.value.type===`execution-denied`||l)break;let e=t.toProviderToolName(a.toolName);if(a.toolName===g){let e=a.providerOptions?.[r]?.itemId??a.providerMetadata?.[r]?.itemId??a.toolCallId;if(c)b.push({type:`item_reference`,id:e});else if(a.output.type===`json`){let t=await A({value:a.output.value,schema:fn});b.push({type:`tool_search_output`,id:e,execution:`server`,call_id:null,status:`completed`,tools:t.tools})}break}if(e===`programmatic_tool_calling`){let e=a.providerOptions?.[r]?.itemId??a.providerMetadata?.[r]?.itemId??a.toolCallId;if(c)b.push({type:`item_reference`,id:e});else if(a.output.type===`json`){let t=await A({value:a.output.value,schema:jn});b.push({type:`program_output`,id:e,call_id:a.toolCallId,result:t.result,status:t.status})}break}if(f&&e===`shell`){if(a.output.type===`json`){let e=await A({value:a.output.value,schema:on});b.push({type:`shell_call_output`,call_id:a.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(c){let e=a.providerOptions?.[r]?.itemId??a.toolCallId;b.push({type:`item_reference`,id:e})}else x.push({type:`other`,message:`Results for OpenAI tool ${a.toolName} are not sent to the API when store is false`});break}case`reasoning`:{let t=await B({provider:r,providerOptions:a.providerOptions,schema:fr}),n=t?.itemId;if((l||u)&&n!=null)break;if(n!=null){let r=e[n];if(c)r===void 0&&(b.push({type:`item_reference`,id:n}),e[n]={type:`reasoning`,id:n,summary:[]});else{let i=[];a.text.length>0?i.push({type:`summary_text`,text:a.text}):r!==void 0&&x.push({type:`other`,message:`Cannot append empty reasoning part to existing reasoning sequence. Skipping reasoning part: ${JSON.stringify(a)}.`}),r===void 0?(e[n]={type:`reasoning`,id:n,encrypted_content:t?.reasoningEncryptedContent,summary:i},b.push(e[n])):(r.summary.push(...i),t?.reasoningEncryptedContent!=null&&(r.encrypted_content=t.reasoningEncryptedContent))}}else{let e=t?.reasoningEncryptedContent;if(e!=null){let t=[];a.text.length>0&&t.push({type:`summary_text`,text:a.text}),b.push({type:`reasoning`,encrypted_content:e,summary:t})}else x.push({type:`other`,message:`Non-OpenAI reasoning parts are not supported. Skipping reasoning part: ${JSON.stringify(a)}.`})}break}case`custom`:if(a.kind===`openai.compaction`){let e=a.providerOptions?.[r],t=e?.itemId;if(l&&t!=null)break;if(c&&t!=null){b.push({type:`item_reference`,id:t});break}let n=e?.encryptedContent;t!=null&&b.push({type:`compaction`,id:t,encrypted_content:n})}}break}case`tool`:for(let e of k){if(e.type===`tool-approval-response`){let t=e;if(S.has(t.approvalId))continue;S.add(t.approvalId),c&&!l&&!u&&b.push({type:`item_reference`,id:t.approvalId}),b.push({type:`mcp_approval_response`,approval_request_id:t.approvalId,approve:t.approved});continue}let n=tr({providerOptions:e.providerOptions,providerOptionsName:r}),i=n==null?void 0:T.get(n.toolCallId);if(n!=null&&i!=null&&sr(i.metadata,n)){if(!D.has(i.metadata.toolCallId)){D.add(i.metadata.toolCallId);let e=await Promise.all(i.results.map(async e=>{let t=lr({output:e.output,toolResultProviderOptions:e.providerOptions,providerOptionsName:r});return{output:await or({output:e.output,toolName:e.toolName,outputSchemaToolNames:v,providerOptionsName:r,warnings:x}),promptCacheBreakpoint:t}})),t=e.map(({output:e})=>typeof e==`string`?e:JSON.stringify(e)),n=e.some(({promptCacheBreakpoint:e})=>e!=null);b.push({type:`function_call_output`,call_id:i.metadata.toolCallId,output:n?t.map((t,n)=>({type:`input_text`,text:n===0?t:`\n${t}`,...e[n].promptCacheBreakpoint!=null&&{prompt_cache_breakpoint:e[n].promptCacheBreakpoint}})):t.join(`
|
|
4
|
+
`)})}continue}let o=e.output;if(o.type===`execution-denied`&&o.providerOptions?.openai?.approvalId)continue;let s=t.toProviderToolName(e.toolName);if(e.toolName===g&&o.type===`json`){let t=await A({value:o.value,schema:fn});b.push({type:`tool_search_output`,execution:`client`,call_id:e.toolCallId,status:`completed`,tools:t.tools});continue}if(d&&s===`local_shell`&&o.type===`json`){let t=await A({value:o.value,schema:nn});b.push({type:`local_shell_call_output`,call_id:e.toolCallId,output:t.output});continue}if(f&&s===`shell`&&o.type===`json`){let t=await A({value:o.value,schema:on});b.push({type:`shell_call_output`,call_id:e.toolCallId,output:t.output.map(e=>({stdout:e.stdout,stderr:e.stderr,outcome:e.outcome.type===`timeout`?{type:`timeout`}:{type:`exit`,exit_code:e.outcome.exitCode}}))});continue}if(p&&e.toolName===`apply_patch`&&o.type===`json`){let t=await A({value:o.value,schema:Ot});b.push({type:`apply_patch_call_output`,call_id:e.toolCallId,status:t.status,output:t.output});continue}if(m&&s===`computer`&&o.type===`json`){let t=await A({value:o.value,schema:Rt});b.push({type:`computer_call_output`,call_id:e.toolCallId,output:{type:`computer_screenshot`,image_url:t.output.imageUrl,file_id:t.output.fileId,detail:t.output.detail},acknowledged_safety_checks:t.acknowledgedSafetyChecks?.map(e=>({id:e.id,code:e.code,message:e.message}))});continue}if(_?.has(s)){let t=lr({output:o,toolResultProviderOptions:e.providerOptions,providerOptionsName:r}),n=e=>t==null?e:[{type:`input_text`,text:e,prompt_cache_breakpoint:t}],i;switch(o.type){case`text`:i=n(o.value);break;case`error-text`:case`error-json`:i=n(JSON.stringify({error:o.value}));break;case`execution-denied`:i=n(o.reason??`Tool call execution denied.`);break;case`json`:i=n(JSON.stringify(o.value));break;case`content`:i=o.value.map(e=>{let t=Q(e.providerOptions,r);switch(e.type){case`text`:return{type:`input_text`,text:e.text,...t!=null&&{prompt_cache_breakpoint:t}};case`file`:{let n=h(e.mediaType),i=e.providerOptions?.[r]?.imageDetail;if(e.data.type===`data`){let r=M({part:e});return n===`image`?{type:`input_image`,image_url:`data:${r};base64,${N(e.data.data)}`,detail:i,...t!=null&&{prompt_cache_breakpoint:t}}:{type:`input_file`,filename:e.filename??`data`,file_data:`data:${r};base64,${N(e.data.data)}`,...t!=null&&{prompt_cache_breakpoint:t}}}if(e.data.type===`url`)return n===`image`?{type:`input_image`,image_url:e.data.url.toString(),detail:i,...t!=null&&{prompt_cache_breakpoint:t}}:{type:`input_file`,file_url:e.data.url.toString(),...t!=null&&{prompt_cache_breakpoint:t}};x.push({type:`other`,message:`unsupported custom tool content part type: ${e.type} with data type: ${e.data.type}`});return}default:x.push({type:`other`,message:`unsupported custom tool content part type: ${e.type}`});return}}).filter(C);break;default:i=``}b.push({type:`custom_tool_call_output`,call_id:e.toolCallId,output:i});continue}let y=e.providerOptions?.[r]?.caller;if(o.type===`execution-denied`&&(y?.type===`program`||w.has(e.toolCallId)))throw new a({functionality:`execution-denied results for programmatic tool calls`});let E=await or({output:o,toolName:e.toolName,outputSchemaToolNames:v,promptCacheBreakpoint:lr({output:o,toolResultProviderOptions:e.providerOptions,providerOptionsName:r}),providerOptionsName:r,warnings:x}),O=ar(y);b.push({type:`function_call_output`,call_id:e.toolCallId,output:E,...O!=null&&{caller:O}})}break;default:throw Error(`Unsupported role: ${O}`)}return!c&&b.some(e=>`type`in e&&e.type===`reasoning`&&e.encrypted_content==null)&&(x.push({type:`other`,message:`Reasoning parts without encrypted content are not supported when store is false. Skipping reasoning parts.`}),b=b.filter(e=>!(`type`in e)||e.type!==`reasoning`||e.encrypted_content!=null)),{input:b,warnings:x}}const fr=J.object({itemId:J.string().nullish(),reasoningEncryptedContent:J.string().nullish()});async function pr({tools:e,toolChoice:t,allowedTools:n,toolNameMapping:r,customProviderToolNames:i,outputSchemaToolNames:o,supportsAsyncToolCalling:s=!0}){e=e?.length?e:void 0;let c=[];if(e==null)return{tools:void 0,toolChoice:void 0,toolWarnings:c};let l=[],u=new Map,d=i??new Set,f=new Map,p=new Map,m=(e,t,n)=>{if(f.set(e,t),n==null||n===e)return;let r=p.get(n);r==null?p.set(n,t):r!==`ambiguous`&&!hr(r,t)&&p.set(n,`ambiguous`)};for(let t of e)switch(t.type){case`function`:{let e=t.providerOptions?.openai;e?.outputSchema!=null&&o?.add(t.name);let n=_r({tool:t,options:e,toolWarnings:c,async:vr({value:e?.async,supportsAsyncToolCalling:s,toolName:t.name,toolWarnings:c})}),r=e?.namespace;if(r==null)l.push(n);else{let e=u.get(r.name);if(e==null)e={type:`namespace`,name:r.name,description:r.description,tools:[]},u.set(r.name,e),l.push(e);else if(e.description!==r.description)throw new a({functionality:`conflicting descriptions for OpenAI tool namespace "${r.name}"`});e.tools.push(n)}m(t.name,r==null?e?.deferLoading===!0?{supported:!1,reason:`deferred tools are not visible to tool_choice.allowed_tools`}:{supported:!0,entry:{type:`function`,name:t.name}}:{supported:!1,reason:`tools inside an OpenAI tool namespace are not visible to tool_choice.allowed_tools`},void 0);break}case`provider`:{let e=l.length;switch(t.id){case`openai.file_search`:{let e=await A({value:t.args,schema:qt});l.push({type:`file_search`,vector_store_ids:e.vectorStoreIds,max_num_results:e.maxNumResults,ranking_options:e.ranking?{ranker:e.ranking.ranker,score_threshold:e.ranking.scoreThreshold}:void 0,filters:e.filters});break}case`openai.local_shell`:l.push({type:`local_shell`});break;case`openai.shell`:{let e=await A({value:t.args,schema:cn});l.push({type:`shell`,...e.environment&&{environment:yr(e.environment)}});break}case`openai.apply_patch`:l.push({type:`apply_patch`});break;case`openai.computer`:l.push({type:`computer`});break;case`openai.web_search_preview`:{let e=await A({value:t.args,schema:bn});l.push({type:`web_search_preview`,search_context_size:e.searchContextSize,user_location:e.userLocation});break}case`openai.web_search`:{let e=await A({value:t.args,schema:hn});l.push({type:`web_search`,filters:e.filters==null?void 0:{allowed_domains:e.filters.allowedDomains,blocked_domains:e.filters.blockedDomains},external_web_access:e.externalWebAccess,search_context_size:e.searchContextSize,user_location:e.userLocation});break}case`openai.code_interpreter`:{let e=await A({value:t.args,schema:Mt});l.push({type:`code_interpreter`,container:e.container==null?{type:`auto`,file_ids:void 0}:typeof e.container==`string`?e.container:{type:`auto`,file_ids:e.container.fileIds}});break}case`openai.image_generation`:{let e=await A({value:t.args,schema:Xt});l.push({type:`image_generation`,action:e.action,background:e.background,input_fidelity:e.inputFidelity,input_image_mask:e.inputImageMask?{file_id:e.inputImageMask.fileId,image_url:e.inputImageMask.imageUrl}:void 0,model:e.model,moderation:e.moderation,partial_images:e.partialImages,quality:e.quality,output_compression:e.outputCompression,output_format:e.outputFormat,size:e.size});break}case`openai.mcp`:{let e=await A({value:t.args,schema:Tn}),n=e=>({tool_names:e.toolNames}),r=e.requireApproval,i=r==null?void 0:typeof r==`string`?r:r.never==null?void 0:{never:n(r.never)};l.push({type:`mcp`,server_label:e.serverLabel,allowed_tools:Array.isArray(e.allowedTools)?e.allowedTools:e.allowedTools?{read_only:e.allowedTools.readOnly,tool_names:e.allowedTools.toolNames}:void 0,authorization:e.authorization,connector_id:e.connectorId,headers:e.headers,require_approval:i??`never`,server_description:e.serverDescription,server_url:e.serverUrl});break}case`openai.custom`:{let e=await A({value:t.args,schema:Vt});l.push({type:`custom`,name:t.name,description:e.description,...vr({value:e.async,supportsAsyncToolCalling:s,toolName:t.name,toolWarnings:c})==null?{}:{async:e.async},format:e.format}),d.add(t.name);break}case`openai.programmatic_tool_calling`:l.push({type:`programmatic_tool_calling`});break;case`openai.tool_search`:{let e=await A({value:t.args,schema:un});l.push({type:`tool_search`,...e.execution==null?{}:{execution:e.execution},...e.description==null?{}:{description:e.description},...e.parameters==null?{}:{parameters:e.parameters}});break}}if(l.length>e){let n=l[e];m(t.name,gr(n),r?.toProviderToolName(t.name))}break}default:c.push({type:`unsupported`,feature:`function tool ${t}`})}if(n!=null){let e=[],t=[];for(let i of n.toolNames){let n=f.get(i),a=n??p.get(i);if(n!=null&&p.has(i)&&c.push({type:`unsupported`,feature:`allowedTools entry "${i}"`,details:`this name is both a tool name and the provider tool name of another tool in this request; the tool with this name is allowed`}),a===`ambiguous`){c.push({type:`unsupported`,feature:`allowedTools entry "${i}"`,details:`several tools in this request share this provider tool name; use the tool name from the tools for this request instead`}),t.push(i);continue}if(a==null){c.push({type:`unsupported`,feature:`allowedTools entry "${i}"`,details:`the tool is not part of the tools for this request and is sent as a function tool`}),e.push({type:`function`,name:r?.toProviderToolName(i)??i});continue}if(!a.supported){c.push({type:`unsupported`,feature:`allowedTools entry "${i}"`,details:`${a.reason}; the tool is removed from the allowed tools`}),t.push(i);continue}e.push(a.entry)}if(e.length===0)throw new a({functionality:`allowedTools with only tools that cannot be allow-listed (${t.join(`, `)})`});return{tools:l,toolChoice:{type:`allowed_tools`,mode:n.mode??`auto`,tools:e},toolWarnings:c}}if(t==null)return{tools:l,toolChoice:void 0,toolWarnings:c};let h=t.type;switch(h){case`auto`:case`none`:case`required`:return{tools:l,toolChoice:h,toolWarnings:c};case`tool`:{let e=r?.toProviderToolName(t.toolName)??t.toolName;return{tools:l,toolChoice:e===`code_interpreter`||e===`file_search`||e===`image_generation`||e===`web_search_preview`||e===`web_search`||e===`mcp`||e===`apply_patch`||e===`computer`||e===`programmatic_tool_calling`?{type:e}:d.has(e)?{type:`custom`,name:e}:{type:`function`,name:e},toolWarnings:c}}default:throw new a({functionality:`tool choice type: ${h}`})}}function mr(e){switch(e.type){case`mcp`:return`mcp:${e.server_label}`;case`function`:case`custom`:return`${e.type}:${e.name}`;default:return e.type}}function hr(e,t){return e.supported&&t.supported?mr(e.entry)===mr(t.entry):!e.supported&&!t.supported&&e.reason===t.reason}function gr(e){switch(e.type){case`custom`:return{supported:!0,entry:{type:`custom`,name:e.name}};case`mcp`:return{supported:!0,entry:{type:`mcp`,server_label:e.server_label}};case`file_search`:case`web_search`:case`web_search_preview`:case`image_generation`:case`code_interpreter`:case`computer`:case`apply_patch`:case`shell`:case`local_shell`:case`programmatic_tool_calling`:return{supported:!0,entry:{type:e.type}};default:return{supported:!1,reason:`OpenAI does not support ${e.type} tools in tool_choice.allowed_tools`}}}function _r({tool:e,options:t,toolWarnings:n,async:r}){let i=t?.deferLoading,a=Ye(e.inputSchema),o=t?.outputSchema==null?void 0:Ye(t.outputSchema);return n.push(...a.warnings,...o?.warnings??[]),{type:`function`,name:e.name,description:e.description,parameters:a.schema,...r==null?{}:{async:r},strict:e.strict??!1,...i==null?{}:{defer_loading:i},...t?.allowedCallers==null?{}:{allowed_callers:t.allowedCallers},...t?.outputSchema==null?{}:{output_schema:o?.schema}}}function vr({value:e,supportsAsyncToolCalling:t,toolName:n,toolWarnings:r}){if(e!==!0||t)return e;r.push({type:`unsupported`,feature:`async tool calling for "${n}"`,details:`Async tool calling is only supported by GPT-6 and later models.`})}function yr(e){if(e.type===`containerReference`)return{type:`container_reference`,container_id:e.containerId};if(e.type===`containerAuto`){let t=e;return{type:`container_auto`,file_ids:t.fileIds,memory_limit:t.memoryLimit,network_policy:t.networkPolicy==null?void 0:t.networkPolicy.type===`disabled`?{type:`disabled`}:{type:`allowlist`,allowed_domains:t.networkPolicy.allowedDomains,domain_secrets:t.networkPolicy.domainSecrets},skills:br(t.skills)}}return{type:`local`,skills:e.skills}}function br(e){return e?.map(e=>e.type===`skillReference`?{type:`skill_reference`,skill_id:R({reference:e.providerReference??{},provider:`openai`}),version:e.version??`latest`}:{type:`inline`,name:e.name,description:e.description,source:{type:`base64`,media_type:e.source.mediaType,data:e.source.data}})}function xr(e){let t={};for(let n of e)if(n.role===`assistant`)for(let e of n.content){if(e.type!==`tool-call`)continue;let n=e.providerOptions?.openai?.approvalRequestId;n!=null&&(t[n]=e.toolCallId)}return t}function Sr(e){switch(e.type){case`click`:return{type:`click`,button:e.button,x:e.x,y:e.y,...e.keys!=null&&{keys:e.keys}};case`double_click`:return{type:`double_click`,x:e.x,y:e.y,...e.keys!=null&&{keys:e.keys}};case`drag`:return{type:`drag`,path:e.path,...e.keys!=null&&{keys:e.keys}};case`keypress`:return e;case`move`:return{type:`move`,x:e.x,y:e.y,...e.keys!=null&&{keys:e.keys}};case`screenshot`:return e;case`scroll`:return{type:`scroll`,x:e.x,y:e.y,scrollX:e.scroll_x,scrollY:e.scroll_y,...e.keys!=null&&{keys:e.keys}};case`type`:return e;case`wait`:return e}}function Cr({action:e,actions:t,pending_safety_checks:n,status:r}){return{actions:(t??(e==null?[]:[e])).map(Sr),pendingSafetyChecks:n?.map(e=>({id:e.id,...e.code!=null&&{code:e.code},...e.message!=null&&{message:e.message}}))??[],status:r}}const wr={"image/*":[/^https?:\/\/.*$/],"application/pdf":[/^https?:\/\/.*$/]};function Tr({modelCapabilities:e,options:t}){if(!e.supportsConfigurationUpdate)return`reasoningEffortUpdate is only supported by GPT-6 and later models`;if(t?.reasoningMode===`pro`||t?.contextManagement!=null||t?.truncation===`auto`)return`reasoningEffortUpdate requires standard reasoning mode without automatic compaction or automatic truncation`}var Er=class t{static[K](e){return z({modelId:e.modelId,config:e.config})}static[q](e){return new t(e.modelId,ve(e.config))}constructor(e,t){this.specificationVersion=`v4`,this.supportedUrls=wr,this.modelId=e,this.config=t}get provider(){return this.config.provider}static async prepareRequest({modelId:e,config:t,options:{maxOutputTokens:n,temperature:r,stopSequences:i,topP:o,topK:s,presencePenalty:c,frequencyPenalty:l,seed:u,prompt:d,reasoning:p,providerOptions:m,tools:h,toolChoice:g,responseFormat:_}}){let v=[],y=Te(e);s!=null&&v.push({type:`unsupported`,feature:`topK`}),u!=null&&v.push({type:`unsupported`,feature:`seed`}),c!=null&&v.push({type:`unsupported`,feature:`presencePenalty`}),l!=null&&v.push({type:`unsupported`,feature:`frequencyPenalty`}),i!=null&&v.push({type:`unsupported`,feature:`stopSequences`});let b=t.provider.includes(`azure`)?`azure`:`openai`,x=await B({provider:b,providerOptions:m,schema:Qn});x==null&&b!==`openai`&&(x=await B({provider:`openai`,providerOptions:m,schema:Qn}));let S=x?.reasoningEffort??(_e(p)?p:void 0);S!=null&&y.supportedReasoningEfforts!=null&&!y.supportedReasoningEfforts.includes(S)&&(v.push({type:`unsupported`,feature:`reasoningEffort`,details:`${e} only supports the following reasoning efforts: ${y.supportedReasoningEfforts.join(`, `)}`}),S=void 0);let C=x?.reasoningSummary===void 0?S!=null&&S!==`none`?`detailed`:void 0:x.reasoningSummary,w=x?.forceReasoning??y.isReasoningModel;x?.conversation&&x?.previousResponseId&&v.push({type:`unsupported`,feature:`conversation`,details:`conversation and previousResponseId cannot be used together`});let T=f({tools:h,providerToolNames:{"openai.code_interpreter":`code_interpreter`,"openai.computer":`computer`,"openai.file_search":`file_search`,"openai.image_generation":`image_generation`,"openai.local_shell":`local_shell`,"openai.shell":`shell`,"openai.web_search":`web_search`,"openai.web_search_preview":`web_search_preview`,"openai.mcp":`mcp`,"openai.apply_patch":`apply_patch`,"openai.tool_search":`tool_search`,"openai.programmatic_tool_calling":`programmatic_tool_calling`}}),E=new Set,D=new Set,{tools:O,toolChoice:k,toolWarnings:A}=await pr({tools:h,toolChoice:g,allowedTools:x?.allowedTools??void 0,toolNameMapping:T,customProviderToolNames:E,outputSchemaToolNames:D,supportsAsyncToolCalling:y.supportsAsyncToolCalling}),j=Tr({modelCapabilities:y,options:x}),{input:M,warnings:N}=await dr({prompt:d,toolNameMapping:T,systemMessageMode:x?.systemMessageMode??(w?`developer`:y.systemMessageMode),providerOptionsName:b,configurationUpdateUnsupportedReason:j,explicitMessageItemType:t.explicitMessageItemType,fileIdPrefixes:t.fileIdPrefixes,passThroughUnsupportedFiles:x?.passThroughUnsupportedFiles??!1,store:x?.store??!0,hasConversation:x?.conversation!=null,hasPreviousResponseId:x?.previousResponseId!=null,hasLocalShellTool:L(`openai.local_shell`),hasShellTool:L(`openai.shell`),hasApplyPatchTool:L(`openai.apply_patch`),hasComputerTool:L(`openai.computer`),toolSearchToolName:ie(`openai.tool_search`),customProviderToolNames:E.size>0?E:void 0,outputSchemaToolNames:D.size>0?D:void 0});v.push(...N);let ee=t=>t!=null&&y.supportedReasoningEfforts?.includes(t)===!1?`${e} only supports the following reasoning efforts: ${y.supportedReasoningEfforts.join(`, `)}`:void 0;for(let e of M)if(e.type===`configuration_update`){let t=ee(e.reasoning.effort);if(t!=null)throw new a({functionality:`Message-level reasoningEffortUpdate`,message:t})}let P=x?.reasoningEffortUpdate,te=j??ee(P);if(P!=null&&te!=null)v.push({type:`unsupported`,feature:`reasoningEffortUpdate`,details:te});else if(P!=null){let e=M[0];(e?.type!==`configuration_update`||e.reasoning.effort!==P)&&M.unshift({type:`configuration_update`,reasoning:{effort:P}})}for(let e=1;e<M.length;e++)if(M[e-1].type===`configuration_update`&&M[e].type===`configuration_update`)throw new a({functionality:`Adjacent reasoning effort configuration updates`});x?.compactionTrigger&&M.push({type:`compaction_trigger`});let ne=x?.strictJsonSchema??!0,re=_?.type===`json`&&_.schema!=null?Ye(_.schema):void 0;re!=null&&v.push(...re.warnings);let F=x?.include;function I(e){F==null?F=[e]:F.includes(e)||(F=[...F,e])}function ie(e){return h?.find(t=>t.type===`provider`&&t.id===e)?.name}function L(e){return ie(e)!=null}let R=typeof x?.logprobs==`number`?x?.logprobs:x?.logprobs===!0?20:void 0;R&&I(`message.output_text.logprobs`);let ae=h?.find(e=>e.type===`provider`&&(e.id===`openai.web_search`||e.id===`openai.web_search_preview`))?.name;ae&&t.supportsWebSearchSourcesInclude!==!1&&x?.includeWebSearchSources!==!1&&I(`web_search_call.action.sources`),L(`openai.code_interpreter`)&&I(`code_interpreter_call.outputs`);let z=x?.store;z===!1&&w&&I(`reasoning.encrypted_content`);let V={model:e,input:M,temperature:r,top_p:o,max_output_tokens:n,...(_?.type===`json`||x?.textVerbosity)&&{text:{..._?.type===`json`&&{format:re==null?{type:`json_object`}:{type:`json_schema`,strict:ne,name:_.name??`response`,description:_.description,schema:re.schema}},...x?.textVerbosity&&{verbosity:x.textVerbosity}}},conversation:x?.conversation,max_tool_calls:x?.maxToolCalls,metadata:x?.metadata,parallel_tool_calls:x?.parallelToolCalls,previous_response_id:x?.previousResponseId,store:z,user:x?.user,instructions:x?.instructions,service_tier:x?.serviceTier,include:F,prompt_cache_key:x?.promptCacheKey,prompt_cache_options:x?.promptCacheOptions,prompt_cache_retention:x?.promptCacheRetention,safety_identifier:x?.safetyIdentifier,top_logprobs:R,truncation:x?.truncation,...x?.contextManagement&&{context_management:x.contextManagement.map(e=>({type:e.type,compact_threshold:e.compactThreshold}))},...w&&(S!=null||C!=null||x?.reasoningMode!=null||x?.reasoningContext!=null)&&{reasoning:{...S!=null&&{effort:S},...C!=null&&{summary:C},...x?.reasoningMode!=null&&{mode:x.reasoningMode},...x?.reasoningContext!=null&&{context:x.reasoningContext}}}};if(y.supportsConfigurationUpdate&&V.prompt_cache_retention!=null&&(V.prompt_cache_retention=void 0,v.push({type:`unsupported`,feature:`promptCacheRetention`,details:`promptCacheRetention is not supported by GPT-6 and later models; use promptCacheOptions instead`})),w){let e=S;for(let t of M)t.type===`configuration_update`&&(e=t.reasoning.effort);if(!(e===`none`&&y.supportsNonReasoningParameters)&&(V.temperature!=null&&(V.temperature=void 0,v.push({type:`unsupported`,feature:`temperature`,details:`temperature is not supported for reasoning models`})),V.top_p!=null&&(V.top_p=void 0,v.push({type:`unsupported`,feature:`topP`,details:`topP is not supported for reasoning models`})),y.supportedReasoningEfforts!=null&&(V.top_logprobs!=null||V.include?.includes(`message.output_text.logprobs`)))){V.top_logprobs=void 0;let e=V.include?.filter(e=>e!==`message.output_text.logprobs`);V.include=e!=null&&e.length>0?e:void 0,v.push({type:`unsupported`,feature:`logprobs`,details:`logprobs is not supported for reasoning models`})}}else x?.reasoningEffort!=null&&v.push({type:`unsupported`,feature:`reasoningEffort`,details:`reasoningEffort is not supported for non-reasoning models`}),x?.reasoningSummary!=null&&v.push({type:`unsupported`,feature:`reasoningSummary`,details:`reasoningSummary is not supported for non-reasoning models`}),x?.reasoningMode!=null&&v.push({type:`unsupported`,feature:`reasoningMode`,details:`reasoningMode is not supported for non-reasoning models`}),x?.reasoningContext!=null&&v.push({type:`unsupported`,feature:`reasoningContext`,details:`reasoningContext is not supported for non-reasoning models`});x?.serviceTier===`flex`&&!y.supportsFlexProcessing&&(v.push({type:`unsupported`,feature:`serviceTier`,details:`flex processing is only available for o3, o4-mini, and gpt-5 models`}),delete V.service_tier),(x?.serviceTier===`priority`||x?.serviceTier===`fast`)&&!y.supportsPriorityProcessing&&(v.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`}),delete V.service_tier);let oe=(h?.find(e=>e.type===`provider`&&e.id===`openai.shell`))?.args?.environment?.type,se=oe===`containerAuto`||oe===`containerReference`;return{webSearchToolName:ae,args:{...V,tools:O,tool_choice:k},warnings:[...v,...A],store:z,toolNameMapping:T,providerOptionsName:b,isShellProviderExecuted:se}}getArgs(e){return t.prepareRequest({modelId:this.modelId,config:this.config,options:e})}async doGenerate(t){let{args:n,warnings:r,webSearchToolName:i,toolNameMapping:a,providerOptionsName:o,isShellProviderExecuted:s}=await this.getArgs(t),c=this.config.url({path:`/responses`,modelId:this.modelId}),l=xr(t.prompt),{responseHeaders:u,value:d,rawValue:f}=await I({url:c,headers:D(this.config.headers?.(),t.headers),body:n,failedResponseHandler:Y,successfulResponseHandler:G(Zn),abortSignal:t.abortSignal,fetch:this.config.fetch});if(d.error)throw new e({message:d.error.message,url:c,requestBodyValues:n,statusCode:400,responseHeaders:u,responseBody:f,isRetryable:!1});if(d.output==null){let t=d.incomplete_details?.reason;throw new e({message:t?`Responses API returned no output (${t})`:`Responses API returned no output`,url:c,requestBodyValues:n,statusCode:500,responseHeaders:u,responseBody:f,isRetryable:!1})}let p=[],m=[],h=t.tools?.filter(e=>e.type===`function`)??[],g=!1,v=[];for(let e of d.output)switch(e.type){case`reasoning`:e.summary.length===0&&e.summary.push({type:`summary_text`,text:``});for(let t of e.summary)p.push({type:`reasoning`,text:t.text,providerMetadata:{[o]:{itemId:e.id,reasoningEncryptedContent:e.encrypted_content??null}}});break;case`image_generation_call`:p.push({type:`tool-call`,toolCallId:e.id,toolName:a.toCustomToolName(`image_generation`),input:`{}`,providerExecuted:!0}),p.push({type:`tool-result`,toolCallId:e.id,toolName:a.toCustomToolName(`image_generation`),result:{result:e.result}});break;case`tool_search_call`:{let t=e.call_id??e.id,n=e.execution===`server`;n&&v.push(t),p.push({type:`tool-call`,toolCallId:t,toolName:a.toCustomToolName(`tool_search`),input:JSON.stringify({arguments:e.arguments,call_id:e.call_id}),...n?{providerExecuted:!0}:{},providerMetadata:{[o]:{itemId:e.id}}});break}case`tool_search_output`:{let t=e.call_id??v.shift()??e.id;p.push({type:`tool-result`,toolCallId:t,toolName:a.toCustomToolName(`tool_search`),result:{tools:e.tools},providerMetadata:{[o]:{itemId:e.id}}});break}case`local_shell_call`:p.push({type:`tool-call`,toolCallId:e.call_id,toolName:a.toCustomToolName(`local_shell`),input:JSON.stringify({action:e.action}),providerMetadata:{[o]:{itemId:e.id}}});break;case`shell_call`:p.push({type:`tool-call`,toolCallId:e.call_id,toolName:a.toCustomToolName(`shell`),input:JSON.stringify({action:{commands:e.action.commands}}),...s&&{providerExecuted:!0},providerMetadata:{[o]:{itemId:e.id}}});break;case`shell_call_output`:p.push({type:`tool-result`,toolCallId:e.call_id,toolName:a.toCustomToolName(`shell`),result:{output:e.output.map(e=>({stdout:e.stdout,stderr:e.stderr,outcome:e.outcome.type===`exit`?{type:`exit`,exitCode:e.outcome.exit_code}:{type:`timeout`}}))}});break;case`message`:for(let n of e.content){t.providerOptions?.[o]?.logprobs&&n.logprobs&&m.push(n.logprobs);let r={itemId:e.id,...e.phase!=null&&{phase:e.phase},...n.annotations.length>0&&{annotations:n.annotations}};p.push({type:`text`,text:n.text,providerMetadata:{[o]:r}});for(let e of n.annotations)e.type===`url_citation`?p.push({type:`source`,sourceType:`url`,id:this.config.generateId?.()??_(),url:e.url,title:e.title}):e.type===`file_citation`?p.push({type:`source`,sourceType:`document`,id:this.config.generateId?.()??_(),mediaType:`text/plain`,title:e.filename,filename:e.filename,providerMetadata:{[o]:{type:e.type,fileId:e.file_id,index:e.index}}}):e.type===`container_file_citation`?p.push({type:`source`,sourceType:`document`,id:this.config.generateId?.()??_(),mediaType:`text/plain`,title:e.filename,filename:e.filename,providerMetadata:{[o]:{type:e.type,fileId:e.file_id,containerId:e.container_id}}}):e.type===`file_path`&&p.push({type:`source`,sourceType:`document`,id:this.config.generateId?.()??_(),mediaType:`application/octet-stream`,title:e.file_id,filename:e.file_id,providerMetadata:{[o]:{type:e.type,fileId:e.file_id,index:e.index}}})}break;case`function_call`:{g=!0;let t=await rr({toolCall:{toolCallId:e.call_id,toolName:e.name,input:e.arguments},tools:h,providerOptionsName:o,itemId:e.id});if(t!=null){p.push(...t);break}p.push({type:`tool-call`,toolCallId:e.call_id,toolName:e.name,input:e.arguments,providerMetadata:{[o]:{itemId:e.id,...e.async!=null&&{async:e.async},...e.namespace!=null&&{namespace:e.namespace},...e.caller!=null&&{caller:e.caller.type===`program`?{type:`program`,callerId:e.caller.caller_id}:e.caller}}}});break}case`program`:p.push({type:`tool-call`,toolCallId:e.call_id,toolName:a.toCustomToolName(`programmatic_tool_calling`),input:JSON.stringify({code:e.code,fingerprint:e.fingerprint}),providerExecuted:!0,providerMetadata:{[o]:{itemId:e.id}}});break;case`program_output`:p.push({type:`tool-result`,toolCallId:e.call_id,toolName:a.toCustomToolName(`programmatic_tool_calling`),result:{result:e.result,status:e.status},providerMetadata:{[o]:{itemId:e.id}}});break;case`custom_tool_call`:{g=!0;let t=a.toCustomToolName(e.name);p.push({type:`tool-call`,toolCallId:e.call_id,toolName:t,input:JSON.stringify(e.input),providerMetadata:{[o]:{itemId:e.id,...e.async!=null&&{async:e.async}}}});break}case`web_search_call`:p.push({type:`tool-call`,toolCallId:e.id,toolName:a.toCustomToolName(i??`web_search`),input:JSON.stringify({}),providerExecuted:!0}),p.push({type:`tool-result`,toolCallId:e.id,toolName:a.toCustomToolName(i??`web_search`),...e.status===`failed`||e.status===`incomplete`?{isError:!0,result:{status:e.status}}:{result:qr(e.action)}});break;case`mcp_call`:{let t=e.approval_request_id==null?e.id:l[e.approval_request_id]??e.id,n=`mcp.${e.name}`;p.push({type:`tool-call`,toolCallId:t,toolName:n,input:e.arguments,providerExecuted:!0,dynamic:!0}),p.push({type:`tool-result`,toolCallId:t,toolName:n,result:{type:`call`,serverLabel:e.server_label,name:e.name,arguments:e.arguments,...e.output==null?{}:{output:e.output},...e.error==null?{}:{error:e.error}},providerMetadata:{[o]:{itemId:e.id}}});break}case`mcp_list_tools`:break;case`mcp_approval_request`:{let t=e.approval_request_id??e.id,n=this.config.generateId?.()??_(),r=`mcp.${e.name}`;p.push({type:`tool-call`,toolCallId:n,toolName:r,input:e.arguments,providerExecuted:!0,dynamic:!0}),p.push({type:`tool-approval-request`,approvalId:t,toolCallId:n});break}case`computer_call`:{if(e.call_id==null){p.push({type:`tool-call`,toolCallId:e.id,toolName:a.toCustomToolName(`computer_use`),input:``,providerExecuted:!0}),p.push({type:`tool-result`,toolCallId:e.id,toolName:a.toCustomToolName(`computer_use`),result:{type:`computer_use_tool_result`,status:e.status}});break}g=!0;let t=a.toCustomToolName(`computer`);p.push({type:`tool-call`,toolCallId:e.call_id,toolName:t,input:JSON.stringify(Cr(e)),providerMetadata:{[o]:{itemId:e.id}}});break}case`file_search_call`:p.push({type:`tool-call`,toolCallId:e.id,toolName:a.toCustomToolName(`file_search`),input:`{}`,providerExecuted:!0}),p.push({type:`tool-result`,toolCallId:e.id,toolName:a.toCustomToolName(`file_search`),result:{queries:e.queries,results:e.results?.map(e=>({attributes:e.attributes,fileId:e.file_id,filename:e.filename,score:e.score,text:e.text}))??null}});break;case`code_interpreter_call`:p.push({type:`tool-call`,toolCallId:e.id,toolName:a.toCustomToolName(`code_interpreter`),input:JSON.stringify({code:e.code,containerId:e.container_id}),providerExecuted:!0}),p.push({type:`tool-result`,toolCallId:e.id,toolName:a.toCustomToolName(`code_interpreter`),result:{outputs:e.outputs}});break;case`apply_patch_call`:g=!0,p.push({type:`tool-call`,toolCallId:e.call_id,toolName:a.toCustomToolName(`apply_patch`),input:JSON.stringify({callId:e.call_id,operation:e.operation}),providerMetadata:{[o]:{itemId:e.id}}});break;case`compaction`:p.push({type:`custom`,kind:`openai.compaction`,providerMetadata:{[o]:{type:`compaction`,itemId:e.id,encryptedContent:e.encrypted_content}}})}let y={[o]:{responseId:d.id,...m.length>0?{logprobs:m}:{},...typeof d.service_tier==`string`?{serviceTier:d.service_tier}:{},...d.reasoning?.context==null?{}:{reasoningContext:d.reasoning.context}}},b=d.usage;return{content:p,finishReason:{unified:Fn({finishReason:d.incomplete_details?.reason,hasFunctionCall:g}),raw:d.incomplete_details?.reason??void 0},usage:Pn(b),request:{body:n},response:{id:d.id,timestamp:new Date(d.created_at*1e3),modelId:d.model,headers:u,body:f},providerMetadata:y,warnings:r}}async doStream(e){let{args:t,warnings:n,webSearchToolName:r,toolNameMapping:i,store:a,providerOptionsName:o,isShellProviderExecuted:s}=await this.getArgs(e),c=this.config.url({path:`/responses`,modelId:this.modelId}),{responseHeaders:l,value:u}=await I({url:c,headers:D(this.config.headers?.(),e.headers),body:{...t,stream:!0},failedResponseHandler:Y,successfulResponseHandler:ne(Xn),abortSignal:e.abortSignal,fetch:this.config.fetch}),d=await ke({stream:u,getError:e=>Wr(e)||Nr(e)&&e.response.error!=null?e:void 0,isOutputChunk:Kr,isAcceptedChunk:Gr,url:c,requestBodyValues:t,responseHeaders:l}),f=this,p=xr(e.prompt),m=e.tools?.filter(e=>e.type===`function`)??[],h=new Map,g={unified:`other`,raw:void 0},v,y=[],b=null,x={},S=[],C,w=!1,T={},E={},O=({itemId:e,outputIndex:t})=>t==null?e:E[t]??e,k,A,j=[],M=!1;return{stream:d.pipeThrough(new TransformStream({start(e){e.enqueue({type:`stream-start`,warnings:n})},transform(n,u){if(e.includeRawChunks&&u.enqueue({type:`raw`,rawValue:n.rawValue}),!n.success){let e=Or(n.rawValue)?kr({value:n.rawValue,cause:n.error,url:c,requestBodyValues:t,responseHeaders:l}):n.error;M=!0,g={unified:`error`,raw:void 0},u.enqueue({type:`error`,error:e});return}let d=n.value;if(Hr(d)){if(d.item.type===`function_call`){let e=nr({toolName:d.item.name,tools:m});x[d.output_index]={toolName:d.item.name,toolCallId:d.item.call_id,suppressInputStreaming:e,bufferedInputDeltas:e?[]:void 0,async:d.item.async},e||u.enqueue({type:`tool-input-start`,id:d.item.call_id,toolName:d.item.name})}else if(d.item.type===`custom_tool_call`){let e=i.toCustomToolName(d.item.name);x[d.output_index]={toolName:e,toolCallId:d.item.call_id,async:d.item.async},u.enqueue({type:`tool-input-start`,id:d.item.call_id,toolName:e})}else if(d.item.type===`web_search_call`)x[d.output_index]={toolName:i.toCustomToolName(r??`web_search`),toolCallId:d.item.id},u.enqueue({type:`tool-input-start`,id:d.item.id,toolName:i.toCustomToolName(r??`web_search`),providerExecuted:!0}),u.enqueue({type:`tool-input-end`,id:d.item.id}),u.enqueue({type:`tool-call`,toolCallId:d.item.id,toolName:i.toCustomToolName(r??`web_search`),input:JSON.stringify({}),providerExecuted:!0});else if(d.item.type===`computer_call`){let e=d.item.call_id??d.item.id;x[d.output_index]={toolName:i.toCustomToolName(`computer`),toolCallId:e},u.enqueue({type:`tool-input-start`,id:e,toolName:i.toCustomToolName(`computer`)})}else if(d.item.type===`code_interpreter_call`)x[d.output_index]={toolName:i.toCustomToolName(`code_interpreter`),toolCallId:d.item.id,codeInterpreter:{containerId:d.item.container_id}},u.enqueue({type:`tool-input-start`,id:d.item.id,toolName:i.toCustomToolName(`code_interpreter`),providerExecuted:!0}),u.enqueue({type:`tool-input-delta`,id:d.item.id,delta:`{"containerId":"${d.item.container_id}","code":"`});else if(d.item.type===`file_search_call`)u.enqueue({type:`tool-call`,toolCallId:d.item.id,toolName:i.toCustomToolName(`file_search`),input:`{}`,providerExecuted:!0});else if(d.item.type===`image_generation_call`)u.enqueue({type:`tool-call`,toolCallId:d.item.id,toolName:i.toCustomToolName(`image_generation`),input:`{}`,providerExecuted:!0});else if(d.item.type===`tool_search_call`){let e=d.item.id,t=i.toCustomToolName(`tool_search`),n=d.item.execution===`server`;x[d.output_index]={toolName:t,toolCallId:e,toolSearchExecution:d.item.execution??`server`},n&&u.enqueue({type:`tool-input-start`,id:e,toolName:t,providerExecuted:!0})}else if(d.item.type!==`tool_search_output`&&d.item.type!==`mcp_call`&&d.item.type!==`mcp_list_tools`&&d.item.type!==`mcp_approval_request`){if(d.item.type===`apply_patch_call`){let{call_id:e,operation:t}=d.item;if(x[d.output_index]={toolName:i.toCustomToolName(`apply_patch`),toolCallId:e,applyPatch:{hasDiff:t.type===`delete_file`,endEmitted:t.type===`delete_file`}},u.enqueue({type:`tool-input-start`,id:e,toolName:i.toCustomToolName(`apply_patch`)}),t.type===`delete_file`){let n=JSON.stringify({callId:e,operation:t});u.enqueue({type:`tool-input-delta`,id:e,delta:n}),u.enqueue({type:`tool-input-end`,id:e})}else u.enqueue({type:`tool-input-delta`,id:e,delta:`{"callId":"${$(e)}","operation":{"type":"${$(t.type)}","path":"${$(t.path)}","diff":"`})}else d.item.type===`shell_call`?x[d.output_index]={toolName:i.toCustomToolName(`shell`),toolCallId:d.item.call_id}:d.item.type===`shell_call_output`||(d.item.type===`message`?(E[d.output_index]=d.item.id,S.splice(0),C=d.item.phase??void 0,u.enqueue({type:`text-start`,id:d.item.id,providerMetadata:{[o]:{itemId:d.item.id,...d.item.phase!=null&&{phase:d.item.phase}}}})):Hr(d)&&d.item.type===`reasoning`&&(E[d.output_index]=d.item.id,T[d.item.id]={encryptedContent:d.item.encrypted_content,summaryParts:{0:`active`}},u.enqueue({type:`reasoning-start`,id:`${d.item.id}:0`,providerMetadata:{[o]:{itemId:d.item.id,reasoningEncryptedContent:d.item.encrypted_content??null}}})))}}else if(jr(d)){if(d.item.type===`message`){let e=O({itemId:d.item.id,outputIndex:d.output_index}),t=d.item.phase??C;C=void 0,u.enqueue({type:`text-end`,id:e,providerMetadata:{[o]:{itemId:e,...t!=null&&{phase:t},...S.length>0&&{annotations:S}}}}),E[d.output_index]=void 0}else if(d.item.type===`function_call`){let e=d.item,t=x[d.output_index];x[d.output_index]=void 0,w=!0;let n=t?.suppressInputStreaming??nr({toolName:e.name,tools:m}),r=()=>{if(n){u.enqueue({type:`tool-input-start`,id:e.call_id,toolName:e.name});let n=t?.bufferedInputDeltas??[];if(n.length>0)for(let t of n)u.enqueue({type:`tool-input-delta`,id:e.call_id,delta:t});else e.arguments.length>0&&u.enqueue({type:`tool-input-delta`,id:e.call_id,delta:e.arguments})}u.enqueue({type:`tool-input-end`,id:e.call_id,...e.namespace!=null&&{providerMetadata:{[o]:{namespace:e.namespace}}}}),u.enqueue({type:`tool-call`,toolCallId:e.call_id,toolName:e.name,input:e.arguments,providerMetadata:{[o]:{itemId:e.id,...e.async==null?t?.async==null?{}:{async:t.async}:{async:e.async},...e.namespace!=null&&{namespace:e.namespace},...e.caller!=null&&{caller:e.caller.type===`program`?{type:`program`,callerId:e.caller.caller_id}:e.caller}}}})};if(!n){r();return}return rr({toolCall:{toolCallId:e.call_id,toolName:e.name,input:e.arguments},tools:m,providerOptionsName:o,itemId:e.id}).then(e=>{if(e==null){r();return}for(let t of e)u.enqueue({type:`tool-input-start`,id:t.toolCallId,toolName:t.toolName}),u.enqueue({type:`tool-input-delta`,id:t.toolCallId,delta:t.input}),u.enqueue({type:`tool-input-end`,id:t.toolCallId}),u.enqueue(t)})}else if(d.item.type===`program`)u.enqueue({type:`tool-call`,toolCallId:d.item.call_id,toolName:i.toCustomToolName(`programmatic_tool_calling`),input:JSON.stringify({code:d.item.code,fingerprint:d.item.fingerprint}),providerExecuted:!0,providerMetadata:{[o]:{itemId:d.item.id}}});else if(d.item.type===`program_output`)u.enqueue({type:`tool-result`,toolCallId:d.item.call_id,toolName:i.toCustomToolName(`programmatic_tool_calling`),result:{result:d.item.result,status:d.item.status},providerMetadata:{[o]:{itemId:d.item.id}}});else if(d.item.type===`custom_tool_call`){let e=x[d.output_index];x[d.output_index]=void 0,w=!0;let t=i.toCustomToolName(d.item.name);u.enqueue({type:`tool-input-end`,id:d.item.call_id}),u.enqueue({type:`tool-call`,toolCallId:d.item.call_id,toolName:t,input:JSON.stringify(d.item.input),providerMetadata:{[o]:{itemId:d.item.id,...d.item.async==null?e?.async==null?{}:{async:e.async}:{async:d.item.async}}}})}else if(d.item.type===`web_search_call`)x[d.output_index]=void 0,u.enqueue({type:`tool-result`,toolCallId:d.item.id,toolName:i.toCustomToolName(r??`web_search`),...d.item.status===`failed`||d.item.status===`incomplete`?{isError:!0,result:{status:d.item.status}}:{result:qr(d.item.action)}});else if(d.item.type===`computer_call`){if(x[d.output_index]=void 0,d.item.call_id==null){u.enqueue({type:`tool-input-end`,id:d.item.id}),u.enqueue({type:`tool-call`,toolCallId:d.item.id,toolName:i.toCustomToolName(`computer_use`),input:``,providerExecuted:!0}),u.enqueue({type:`tool-result`,toolCallId:d.item.id,toolName:i.toCustomToolName(`computer_use`),result:{type:`computer_use_tool_result`,status:d.item.status}});return}w=!0;let e=i.toCustomToolName(`computer`),t=JSON.stringify(Cr(d.item));u.enqueue({type:`tool-input-delta`,id:d.item.call_id,delta:t}),u.enqueue({type:`tool-input-end`,id:d.item.call_id}),u.enqueue({type:`tool-call`,toolCallId:d.item.call_id,toolName:e,input:t,providerMetadata:{[o]:{itemId:d.item.id}}})}else if(d.item.type===`file_search_call`)x[d.output_index]=void 0,u.enqueue({type:`tool-result`,toolCallId:d.item.id,toolName:i.toCustomToolName(`file_search`),result:{queries:d.item.queries,results:d.item.results?.map(e=>({attributes:e.attributes,fileId:e.file_id,filename:e.filename,score:e.score,text:e.text}))??null}});else if(d.item.type===`code_interpreter_call`)x[d.output_index]=void 0,u.enqueue({type:`tool-result`,toolCallId:d.item.id,toolName:i.toCustomToolName(`code_interpreter`),result:{outputs:d.item.outputs}});else if(d.item.type===`image_generation_call`)u.enqueue({type:`tool-result`,toolCallId:d.item.id,toolName:i.toCustomToolName(`image_generation`),result:{result:d.item.result}});else if(d.item.type===`tool_search_call`){let e=x[d.output_index],t=d.item.execution===`server`;if(e!=null){let n=t?e.toolCallId:d.item.call_id??d.item.id;t?j.push(n):u.enqueue({type:`tool-input-start`,id:n,toolName:e.toolName}),u.enqueue({type:`tool-input-end`,id:n}),u.enqueue({type:`tool-call`,toolCallId:n,toolName:e.toolName,input:JSON.stringify({arguments:d.item.arguments,call_id:t?null:n}),...t?{providerExecuted:!0}:{},providerMetadata:{[o]:{itemId:d.item.id}}})}x[d.output_index]=void 0}else if(d.item.type===`tool_search_output`){let e=d.item.call_id??j.shift()??d.item.id;u.enqueue({type:`tool-result`,toolCallId:e,toolName:i.toCustomToolName(`tool_search`),result:{tools:d.item.tools},providerMetadata:{[o]:{itemId:d.item.id}}})}else if(d.item.type===`mcp_call`){x[d.output_index]=void 0;let e=d.item.approval_request_id??void 0,t=e==null?d.item.id:h.get(e)??p[e]??d.item.id,n=`mcp.${d.item.name}`;u.enqueue({type:`tool-call`,toolCallId:t,toolName:n,input:d.item.arguments,providerExecuted:!0,dynamic:!0}),u.enqueue({type:`tool-result`,toolCallId:t,toolName:n,result:{type:`call`,serverLabel:d.item.server_label,name:d.item.name,arguments:d.item.arguments,...d.item.output==null?{}:{output:d.item.output},...d.item.error==null?{}:{error:d.item.error}},providerMetadata:{[o]:{itemId:d.item.id}}})}else if(d.item.type===`mcp_list_tools`)x[d.output_index]=void 0;else if(d.item.type===`apply_patch_call`){let e=x[d.output_index];e?.applyPatch&&!e.applyPatch.endEmitted&&d.item.operation.type!==`delete_file`&&(e.applyPatch.hasDiff||u.enqueue({type:`tool-input-delta`,id:e.toolCallId,delta:$(d.item.operation.diff)}),u.enqueue({type:`tool-input-delta`,id:e.toolCallId,delta:`"}}`}),u.enqueue({type:`tool-input-end`,id:e.toolCallId}),e.applyPatch.endEmitted=!0),e&&d.item.status===`completed`&&(w=!0,u.enqueue({type:`tool-call`,toolCallId:e.toolCallId,toolName:i.toCustomToolName(`apply_patch`),input:JSON.stringify({callId:d.item.call_id,operation:d.item.operation}),providerMetadata:{[o]:{itemId:d.item.id}}})),x[d.output_index]=void 0}else if(d.item.type===`mcp_approval_request`){x[d.output_index]=void 0;let e=f.config.generateId?.()??_(),t=d.item.approval_request_id??d.item.id;h.set(t,e);let n=`mcp.${d.item.name}`;u.enqueue({type:`tool-call`,toolCallId:e,toolName:n,input:d.item.arguments,providerExecuted:!0,dynamic:!0}),u.enqueue({type:`tool-approval-request`,approvalId:t,toolCallId:e})}else if(d.item.type===`local_shell_call`)x[d.output_index]=void 0,u.enqueue({type:`tool-call`,toolCallId:d.item.call_id,toolName:i.toCustomToolName(`local_shell`),input:JSON.stringify({action:{type:`exec`,command:d.item.action.command,timeoutMs:d.item.action.timeout_ms,user:d.item.action.user,workingDirectory:d.item.action.working_directory,env:d.item.action.env}}),providerMetadata:{[o]:{itemId:d.item.id}}});else if(d.item.type===`shell_call`)x[d.output_index]=void 0,u.enqueue({type:`tool-call`,toolCallId:d.item.call_id,toolName:i.toCustomToolName(`shell`),input:JSON.stringify({action:{commands:d.item.action.commands}}),...s&&{providerExecuted:!0},providerMetadata:{[o]:{itemId:d.item.id}}});else if(d.item.type===`shell_call_output`)u.enqueue({type:`tool-result`,toolCallId:d.item.call_id,toolName:i.toCustomToolName(`shell`),result:{output:d.item.output.map(e=>({stdout:e.stdout,stderr:e.stderr,outcome:e.outcome.type===`exit`?{type:`exit`,exitCode:e.outcome.exit_code}:{type:`timeout`}}))}});else if(d.item.type===`reasoning`){let e=O({itemId:d.item.id,outputIndex:d.output_index}),t=T[e];if(t!=null){let n=Object.entries(t.summaryParts).filter(([e,t])=>t===`active`||t===`can-conclude`).map(([e])=>e);for(let t of n)u.enqueue({type:`reasoning-end`,id:`${e}:${t}`,providerMetadata:{[o]:{itemId:e,reasoningEncryptedContent:d.item.encrypted_content??null}}});delete T[e]}E[d.output_index]=void 0}else d.item.type===`compaction`&&u.enqueue({type:`custom`,kind:`openai.compaction`,providerMetadata:{[o]:{type:`compaction`,itemId:d.item.id,encryptedContent:d.item.encrypted_content}}})}else if(Fr(d)){let e=x[d.output_index];e!=null&&(e.suppressInputStreaming?e.bufferedInputDeltas?.push(d.delta):u.enqueue({type:`tool-input-delta`,id:e.toolCallId,delta:d.delta}))}else if(Ir(d)){let e=x[d.output_index];e!=null&&u.enqueue({type:`tool-input-delta`,id:e.toolCallId,delta:d.delta})}else if(Br(d)){let e=x[d.output_index];e?.applyPatch&&(u.enqueue({type:`tool-input-delta`,id:e.toolCallId,delta:$(d.delta)}),e.applyPatch.hasDiff=!0)}else if(Vr(d)){let e=x[d.output_index];e?.applyPatch&&!e.applyPatch.endEmitted&&(e.applyPatch.hasDiff||(u.enqueue({type:`tool-input-delta`,id:e.toolCallId,delta:$(d.diff)}),e.applyPatch.hasDiff=!0),u.enqueue({type:`tool-input-delta`,id:e.toolCallId,delta:`"}}`}),u.enqueue({type:`tool-input-end`,id:e.toolCallId}),e.applyPatch.endEmitted=!0)}else if(Lr(d))u.enqueue({type:`tool-result`,toolCallId:d.item_id,toolName:i.toCustomToolName(`image_generation`),result:{result:d.partial_image_b64},preliminary:!0});else if(Rr(d)){let e=x[d.output_index];e!=null&&u.enqueue({type:`tool-input-delta`,id:e.toolCallId,delta:$(d.delta)})}else if(zr(d)){let e=x[d.output_index];e!=null&&(u.enqueue({type:`tool-input-delta`,id:e.toolCallId,delta:`"}`}),u.enqueue({type:`tool-input-end`,id:e.toolCallId}),u.enqueue({type:`tool-call`,toolCallId:e.toolCallId,toolName:i.toCustomToolName(`code_interpreter`),input:JSON.stringify({code:d.code,containerId:e.codeInterpreter.containerId}),providerExecuted:!0}))}else if(Pr(d))b=d.response.id,u.enqueue({type:`response-metadata`,id:d.response.id,timestamp:new Date(d.response.created_at*1e3),modelId:d.response.model});else if(Dr(d)){let t=O({itemId:d.item_id,outputIndex:d.output_index});u.enqueue({type:`text-delta`,id:t,delta:d.delta}),e.providerOptions?.[o]?.logprobs&&d.logprobs&&y.push(d.logprobs)}else if(d.type===`response.reasoning_summary_part.added`){let e=O({itemId:d.item_id,outputIndex:d.output_index});if(d.summary_index>0){let t=T[e];if(t!=null){t.summaryParts[d.summary_index]=`active`;for(let n of Object.keys(t.summaryParts))t.summaryParts[n]===`can-conclude`&&(u.enqueue({type:`reasoning-end`,id:`${e}:${n}`,providerMetadata:{[o]:{itemId:e}}}),t.summaryParts[n]=`concluded`);u.enqueue({type:`reasoning-start`,id:`${e}:${d.summary_index}`,providerMetadata:{[o]:{itemId:e,reasoningEncryptedContent:t.encryptedContent??null}}})}}}else if(d.type===`response.reasoning_summary_text.delta`){let e=O({itemId:d.item_id,outputIndex:d.output_index});u.enqueue({type:`reasoning-delta`,id:`${e}:${d.summary_index}`,delta:d.delta,providerMetadata:{[o]:{itemId:e}}})}else if(d.type===`response.reasoning_summary_part.done`){let e=O({itemId:d.item_id,outputIndex:d.output_index}),t=T[e];t!=null&&(a?(u.enqueue({type:`reasoning-end`,id:`${e}:${d.summary_index}`,providerMetadata:{[o]:{itemId:e}}}),t.summaryParts[d.summary_index]=`concluded`):t.summaryParts[d.summary_index]=`can-conclude`)}else if(Mr(d))M||(g={unified:Fn({finishReason:d.response.incomplete_details?.reason,hasFunctionCall:w}),raw:d.response.incomplete_details?.reason??void 0}),v=d.response.usage??void 0,typeof d.response.service_tier==`string`&&(k=d.response.service_tier),d.response.reasoning?.context!=null&&(A=d.response.reasoning.context);else if(Nr(d)){let e=d.response.incomplete_details?.reason;if(g={unified:e?Fn({finishReason:e,hasFunctionCall:w}):`error`,raw:e??`error`},v=d.response.usage??void 0,d.response.reasoning?.context!=null&&(A=d.response.reasoning.context),!M&&d.response.error!=null){M=!0;let e={type:`response.failed`,sequence_number:d.sequence_number,response:{error:d.response.error,incomplete_details:d.response.incomplete_details,service_tier:d.response.service_tier}};u.enqueue({type:`error`,error:Oe(e)??e})}}else Ur(d)?(S.push(d.annotation),d.annotation.type===`url_citation`?u.enqueue({type:`source`,sourceType:`url`,id:f.config.generateId?.()??_(),url:d.annotation.url,title:d.annotation.title}):d.annotation.type===`file_citation`?u.enqueue({type:`source`,sourceType:`document`,id:f.config.generateId?.()??_(),mediaType:`text/plain`,title:d.annotation.filename,filename:d.annotation.filename,providerMetadata:{[o]:{type:d.annotation.type,fileId:d.annotation.file_id,index:d.annotation.index}}}):d.annotation.type===`container_file_citation`?u.enqueue({type:`source`,sourceType:`document`,id:f.config.generateId?.()??_(),mediaType:`text/plain`,title:d.annotation.filename,filename:d.annotation.filename,providerMetadata:{[o]:{type:d.annotation.type,fileId:d.annotation.file_id,containerId:d.annotation.container_id}}}):d.annotation.type===`file_path`&&u.enqueue({type:`source`,sourceType:`document`,id:f.config.generateId?.()??_(),mediaType:`application/octet-stream`,title:d.annotation.file_id,filename:d.annotation.file_id,providerMetadata:{[o]:{type:d.annotation.type,fileId:d.annotation.file_id,index:d.annotation.index}}})):Wr(d)&&(M=!0,g={unified:`error`,raw:`error`},u.enqueue({type:`error`,error:Oe(d)??d}))},flush(e){for(let t of Object.values(x))if(t?.suppressInputStreaming){e.enqueue({type:`tool-input-start`,id:t.toolCallId,toolName:t.toolName});for(let n of t.bufferedInputDeltas??[])e.enqueue({type:`tool-input-delta`,id:t.toolCallId,delta:n})}let t={[o]:{responseId:b,...y.length>0?{logprobs:y}:{},...k===void 0?{}:{serviceTier:k},...A===void 0?{}:{reasoningContext:A}}};e.enqueue({type:`finish`,finishReason:g,usage:Pn(v),providerMetadata:t})}})),request:{body:t},response:{headers:l}}}};function Dr(e){return e.type===`response.output_text.delta`}function Or(e){let t=Ar(e);return t!=null&&Array.isArray(t.choices)&&typeof t.type!=`string`}function kr({value:t,cause:n,url:r,requestBodyValues:i,responseHeaders:a}){return new e({message:`Received a Chat Completions stream while using the OpenAI Responses API. The default OpenAI provider model uses the Responses API. If your custom baseURL targets a Chat Completions-compatible endpoint, use openai.chat('model-id') or createOpenAI(...).chat('model-id') instead. You can also use @ai-sdk/openai-compatible for OpenAI-compatible providers.`,url:r,requestBodyValues:i,responseHeaders:a,responseBody:JSON.stringify(t),cause:n,data:t,isRetryable:!1})}function Ar(e){return typeof e==`object`&&e?e:void 0}function jr(e){return e.type===`response.output_item.done`}function Mr(e){return e.type===`response.completed`||e.type===`response.incomplete`}function Nr(e){return e.type===`response.failed`}function Pr(e){return e.type===`response.created`}function Fr(e){return e.type===`response.function_call_arguments.delta`}function Ir(e){return e.type===`response.custom_tool_call_input.delta`}function Lr(e){return e.type===`response.image_generation_call.partial_image`}function Rr(e){return e.type===`response.code_interpreter_call_code.delta`}function zr(e){return e.type===`response.code_interpreter_call_code.done`}function Br(e){return e.type===`response.apply_patch_call_operation_diff.delta`}function Vr(e){return e.type===`response.apply_patch_call_operation_diff.done`}function Hr(e){return e.type===`response.output_item.added`}function Ur(e){return e.type===`response.output_text.annotation.added`}function Wr(e){return e.type===`error`}function Gr(e){return e.type===`response.in_progress`}function Kr(e){return e.type!==`response.created`&&e.type!==`response.in_progress`&&e.type!==`response.failed`&&e.type!==`error`&&e.type!==`unknown_chunk`}function qr(e){if(e==null)return{};switch(e.type){case`search`:return{action:{type:`search`,query:e.query??void 0,...e.queries!=null&&{queries:e.queries}},...e.sources!=null&&{sources:e.sources}};case`open_page`:return{action:{type:`openPage`,url:e.url}};case`find_in_page`:return{action:{type:`findInPage`,url:e.url,pattern:e.pattern}}}}function $(e){return JSON.stringify(e).slice(1,-1)}const Jr=`/v1/responses`,Yr=H(()=>W(J.object({inputFileExpiresAfter:J.number().int().min(3600).max(2592e3).optional()})));function Xr(e){for(let t of e){let e=t.type;if(e!==`text`)throw new a({functionality:`batch request type: ${e}`,message:`The OpenAI Batch API does not support batch requests with type "${e}".`})}}const Zr=()=>J.object({id:J.string(),status:J.string(),output_file_id:J.string().nullish(),error_file_id:J.string().nullish(),created_at:J.number().nullish(),expires_at:J.number().nullish(),request_counts:J.object({total:J.number().nullish(),completed:J.number().nullish(),failed:J.number().nullish()}).nullish(),errors:J.object({data:J.array(J.object({code:J.string().nullish(),message:J.string().nullish()})).nullish()}).nullish()}),Qr=H(()=>W(Zr())),$r=H(()=>W(J.object({custom_id:J.string(),response:J.object({status_code:J.number(),request_id:J.string().nullish(),body:J.unknown()}).nullish(),error:J.object({code:J.string(),message:J.string()}).nullish()}))),ei=H(()=>W(J.object({data:J.array(Zr()),has_more:J.boolean(),last_id:J.string().nullish()})));var ti=class{constructor(e){this.options=e,this.specificationVersion=`v4`,this.supportedUrls=wr,this.provider=e.provider}async doStartBatch(e){Xr(e.requests),ni(e.requests);let t=[],n=e.webhookUrl==null?[]:[{warning:{type:`unsupported`,feature:`webhookUrl`,details:`The OpenAI Batch API does not support per-batch webhook URLs.`}}],r=(await this.parseBatchProviderOptions(e.providerOptions))?.inputFileExpiresAfter??172800;for(let r of e.requests){let e=await this.prepareRequest(r);t.push(JSON.stringify({custom_id:r.id,method:`POST`,url:Jr,body:e.body}),`
|
|
5
|
+
`);for(let t of e.warnings)n.push({requestId:r.id,warning:t});for(let e of r.options.tools??[])e.type===`provider`&&!ri.has(e.id)&&n.push({requestId:r.id,warning:{type:`unsupported`,feature:`batch result conversion for tool "${e.name}"`,details:`OpenAI may return output for this tool that AI SDK text batches cannot currently convert.`}})}let i=`batch.jsonl`,a=new Blob(t,{type:`application/jsonl`});t.length=0;let o=new FormData;o.append(`file`,a,i),o.append(`purpose`,`batch`),o.append(`expires_after[anchor]`,`created_at`),o.append(`expires_after[seconds]`,String(r));let{value:s}=await oe({url:this.getUrl(`/files`),headers:D(this.options.config.headers?.(),e.headers),body:{content:o,values:{purpose:`batch`,"expires_after[anchor]":`created_at`,"expires_after[seconds]":String(r),file:{name:i,type:a.type,size:a.size}}},failedResponseHandler:Y,successfulResponseHandler:G(dt),abortSignal:e.abortSignal,fetch:this.options.config.fetch}),{value:c}=await I({url:this.getUrl(`/batches`),headers:D(this.options.config.headers?.(),e.headers),body:{input_file_id:s.id,endpoint:Jr,completion_window:`24h`},failedResponseHandler:Y,successfulResponseHandler:G(Qr),abortSignal:e.abortSignal,fetch:this.options.config.fetch}),l=si(s.expires_at);return{batchId:c.id,...ii(c),providerMetadata:{openai:{inputFileId:s.id,...l==null?{}:{inputFileExpiresAt:l}}},warnings:n}}async parseBatchProviderOptions(e){let t=this.options.config.provider.includes(`azure`)?`azure`:`openai`,n=await B({provider:t,providerOptions:e,schema:Yr});return n==null&&t!==`openai`&&(n=await B({provider:`openai`,providerOptions:e,schema:Yr})),n}async doGetBatchStatus(e){return ii(await this.retrieveBatch(e))}async doCancelBatch(e){return await I({url:this.getUrl(`/batches/${encodeURIComponent(e.batchId)}/cancel`),headers:D(this.options.config.headers?.(),e.headers),body:{},failedResponseHandler:Y,successfulResponseHandler:G(Qr),abortSignal:e.abortSignal,fetch:this.options.config.fetch}),{}}async doListBatches(e){let t=new URL(this.getUrl(`/batches`));e.limit!=null&&t.searchParams.set(`limit`,String(e.limit)),e.cursor!=null&&t.searchParams.set(`after`,e.cursor);let{value:n}=await p({url:t.toString(),headers:D(this.options.config.headers?.(),e.headers),failedResponseHandler:Y,successfulResponseHandler:G(ei),abortSignal:e.abortSignal,fetch:this.options.config.fetch,validateUrl:!1});return{batches:n.data.map(e=>({batchId:e.id,...ii(e)})),...n.has_more&&n.last_id!=null?{nextCursor:n.last_id}:{}}}async doGetBatchResults(e){let n=await this.retrieveBatch(e),i=ii(n);if(i.status===`pending`)throw new t({argument:`batchId`,message:`OpenAI batch "${e.batchId}" is not complete.`});let a=[n.output_file_id,n.error_file_id].filter(e=>e!=null);if(i.status===`completed`&&a.length===0)throw new r({data:n,message:`OpenAI batch "${e.batchId}" completed without batch output.`});let o=this.iterateBatchResults({fileIds:a,options:e});return ue(o)}async retrieveBatch(e){let{value:t}=await p({url:this.getUrl(`/batches/${encodeURIComponent(e.batchId)}`),headers:D(this.options.config.headers?.(),e.headers),failedResponseHandler:Y,successfulResponseHandler:G(Qr),abortSignal:e.abortSignal,fetch:this.options.config.fetch,validateUrl:!1});return t}async*iterateBatchResults({fileIds:e,options:t}){for(let n of e){let{value:e}=await p({url:this.getUrl(`/files/${encodeURIComponent(n)}/content`),headers:D(this.options.config.headers?.(),t.headers),failedResponseHandler:Y,successfulResponseHandler:pe($r,{maxLineBytes:this.options.maxLineBytes}),abortSignal:t.abortSignal,fetch:this.options.config.fetch,validateUrl:!1});for await(let t of e)yield await this.convertResultLine(t)}}async convertResultLine(e){if(e.error!=null){let t={message:e.error.message,code:e.error.code};return e.error.code===`batch_cancelled`?{type:`text`,id:e.custom_id,status:`cancelled`,error:t}:e.error.code===`batch_expired`?{type:`text`,id:e.custom_id,status:`expired`,error:t}:{type:`text`,id:e.custom_id,status:`failed`,error:t}}if(e.response==null)return{type:`text`,id:e.custom_id,status:`failed`,error:{message:`OpenAI returned a batch result without a response or error.`,code:`invalid_batch_result`}};if(e.response.status_code<200||e.response.status_code>=300)return{type:`text`,id:e.custom_id,status:`failed`,error:await ci({body:e.response.body,statusCode:e.response.status_code})};let t=await li(e.response.body);return t.success?{type:`text`,id:e.custom_id,status:`succeeded`,result:t.result}:{type:`text`,id:e.custom_id,status:`failed`,error:t.error}}async prepareRequest(e){let{args:t,warnings:n}=await Er.prepareRequest({modelId:e.modelId,config:this.options.config,options:e.options});return{body:t,warnings:n}}getUrl(e){return this.options.config.url({path:e,modelId:``})}};function ni(e){let n=e[0]?.modelId;for(let r of e)if(r.modelId!==n)throw new t({argument:`requests`,message:`The OpenAI Batch API requires all requests in a batch to use the same model. Found "${n}" and "${r.modelId}".`})}const ri=new Set([`openai.code_interpreter`,`openai.custom`,`openai.file_search`,`openai.web_search`,`openai.web_search_preview`]);function ii(e){let t=ai(e.status),n=e.errors?.data?.[0],r=oi(e.request_counts),i=si(e.created_at),a=si(e.expires_at);return{status:t,rawStatus:e.status,...r==null?{}:{requestCounts:r},...n==null?{}:{error:{message:n.message??`OpenAI batch failed.`,...n.code==null?{}:{code:n.code}}},...i==null?{}:{createdAt:i},...a==null?{}:{expiresAt:a}}}function ai(e){switch(e){case`completed`:return`completed`;case`failed`:case`expired`:case`cancelled`:return`failed`;default:return`pending`}}function oi(e){let t=e?.total,n=e?.completed,r=e?.failed;return s({total:t,pending:t!=null&&n!=null&&r!=null?t-n-r:void 0,completed:n,failed:r})}function si(e){if(e==null||!Number.isFinite(e))return;let t=new Date(e*1e3);return Number.isNaN(t.getTime())?void 0:t.toISOString()}async function ci({body:e,statusCode:t}){let n=await te({value:e,schema:ye});return n.success?{message:n.value.error.message,type:n.value.error.type??void 0,code:n.value.error.code==null?void 0:String(n.value.error.code),statusCode:t}:{message:`OpenAI batch request failed with status code ${t}.`,statusCode:t}}async function li(e){let t=await te({value:e,schema:Zn});if(!t.success)return{success:!1,error:{message:`OpenAI returned an invalid Responses batch result.`,code:`invalid_response`}};let n=t.value;if(n.error!=null)return{success:!1,error:{message:n.error.message,type:n.error.type,code:n.error.code}};if(n.output==null){let e=n.incomplete_details?.reason;return{success:!1,error:{message:e==null?`OpenAI Responses returned no output.`:`OpenAI Responses returned no output (${e}).`,code:`invalid_response`}}}let r=[],i=[],a=!1;for(let e of n.output)switch(e.type){case`reasoning`:{let t=e.summary.length>0?e.summary:[{type:`summary_text`,text:``}];for(let n of t)r.push({type:`reasoning`,text:n.text,providerMetadata:{openai:{itemId:e.id,reasoningEncryptedContent:e.encrypted_content??null}}});break}case`message`:for(let t of e.content)r.push({type:`text`,text:t.text}),t.logprobs!=null&&i.push(t.logprobs);break;case`function_call`:a=!0,r.push({type:`tool-call`,toolCallId:e.call_id,toolName:e.name,input:e.arguments,providerMetadata:{openai:{itemId:e.id,...e.namespace!=null&&{namespace:e.namespace},...e.caller!=null&&{caller:e.caller.type===`program`?{type:`program`,callerId:e.caller.caller_id}:e.caller}}}});break;case`custom_tool_call`:a=!0,r.push({type:`tool-call`,toolCallId:e.call_id,toolName:e.name,input:JSON.stringify(e.input),providerMetadata:{openai:{itemId:e.id}}});break;case`web_search_call`:r.push({type:`tool-call`,toolCallId:e.id,toolName:`web_search`,input:`{}`,providerExecuted:!0,dynamic:!0}),r.push({type:`tool-result`,toolCallId:e.id,toolName:`web_search`,...e.status===`failed`||e.status===`incomplete`?{isError:!0,result:{status:e.status}}:{result:qr(e.action)},dynamic:!0});break;case`file_search_call`:r.push({type:`tool-call`,toolCallId:e.id,toolName:`file_search`,input:`{}`,providerExecuted:!0,dynamic:!0}),r.push({type:`tool-result`,toolCallId:e.id,toolName:`file_search`,result:{queries:e.queries,results:e.results?.map(e=>({attributes:e.attributes,fileId:e.file_id,filename:e.filename,score:e.score,text:e.text}))??null},dynamic:!0});break;case`code_interpreter_call`:r.push({type:`tool-call`,toolCallId:e.id,toolName:`code_interpreter`,input:JSON.stringify({code:e.code,containerId:e.container_id}),providerExecuted:!0,dynamic:!0}),r.push({type:`tool-result`,toolCallId:e.id,toolName:`code_interpreter`,result:{outputs:e.outputs},dynamic:!0});break;default:return{success:!1,error:{message:`OpenAI returned an unsupported "${e.type}" output item in an AI SDK text batch.`,code:`unsupported_content`}}}let o={openai:{responseId:n.id,...i.length>0?{logprobs:i}:{},...typeof n.service_tier==`string`?{serviceTier:n.service_tier}:{},...n.reasoning?.context==null?{}:{reasoningContext:n.reasoning.context}}};return{success:!0,result:{content:r,finishReason:{unified:Fn({finishReason:n.incomplete_details?.reason,hasFunctionCall:a}),raw:n.incomplete_details?.reason??void 0},usage:Pn(n.usage),response:{id:n.id,timestamp:n.created_at==null?void 0:new Date(n.created_at*1e3),modelId:n.model},providerMetadata:o,warnings:[]}}}const ui=J.strictObject({type:J.string(),responseEvent:J.string().optional()}).refine(e=>e.type===`response.event`==(e.responseEvent!==void 0),`responseEvent is required for response.event and forbidden for other event types.`),di=J.strictObject({client:J.strictObject({dataChannel:J.strictObject({allowedClientEvents:J.union([J.literal(`all`),J.array(J.string())]).optional(),allowedServerEvents:J.union([J.literal(`all`),J.array(ui)]).optional()})}).optional(),delegation:J.strictObject({type:J.literal(`client`)}).nullable().optional(),input:J.array(J.discriminatedUnion(`role`,[J.strictObject({type:J.literal(`message`),role:J.enum([`developer`,`user`]),content:J.tuple([J.strictObject({type:J.literal(`input_text`),text:J.string()})])}),J.strictObject({type:J.literal(`message`),role:J.literal(`assistant`),content:J.tuple([J.strictObject({type:J.enum([`text`,`output_text`]),text:J.string()})])})])).max(128).optional(),store:J.boolean().optional(),voice:J.strictObject({id:J.string().min(1)}).optional()}),fi=J.union([J.strictObject({type:J.literal(`audio/pcm`),rate:J.union([J.literal(16e3),J.literal(24e3)])}),J.strictObject({type:J.enum([`audio/pcma`,`audio/pcmu`]),rate:J.literal(8e3)})]);function pi(e,n,r=`websocket`){for(let t of Object.keys(e))if(![`instructions`,`voice`,`inputAudioFormat`,`outputAudioFormat`,`providerOptions`].includes(t))throw new a({functionality:`OpenAI Live session setting: ${t}`});if(J.object({delegation:J.object({type:J.literal(`responses`)})}).safeParse(e.providerOptions?.openai).success)throw new a({functionality:`OpenAI Live Responses delegation; only client delegation is supported`});let i=di.parse(e.providerOptions?.openai??{});if(i.client!==void 0&&r!==`webrtc`)throw new a({functionality:`OpenAI Live client permissions outside WebRTC startup`});if(i.voice!=null&&e.voice!=null)throw new t({argument:`voice`,message:`Choose either voice or providerOptions.openai.voice.`});if(r===`webrtc`&&(e.inputAudioFormat!==void 0||e.outputAudioFormat!==void 0))throw new a({functionality:`Fixed audio formats for OpenAI Live WebRTC; audio is negotiated through SDP`});let o=e.inputAudioFormat==null?void 0:fi.parse(e.inputAudioFormat),s=e.outputAudioFormat==null?void 0:fi.parse(e.outputAudioFormat);if(o!=null&&s!=null&&(o.type!==s.type||o.rate!==s.rate))throw new t({argument:`outputAudioFormat`,message:`OpenAI Live requires the same input and output audio format.`});return{model:n,...e.instructions===void 0?{}:{instructions:e.instructions},audio:{...r===`websocket`?{format:o??s??{type:`audio/pcm`,rate:24e3}}:{},output:{voice:i.voice??e.voice??`marin`}},...i.delegation===void 0?{}:{delegation:i.delegation},...i.client===void 0?{}:{client:{data_channel:{...i.client.dataChannel.allowedClientEvents===void 0?{}:{allowed_client_events:i.client.dataChannel.allowedClientEvents},...i.client.dataChannel.allowedServerEvents===void 0?{}:{allowed_server_events:i.client.dataChannel.allowedServerEvents===`all`?`all`:i.client.dataChannel.allowedServerEvents.map(e=>({type:e.type,...e.responseEvent===void 0?{}:{response_event:e.responseEvent}}))}}}},...i.input===void 0?{}:{input:i.input},...i.store===void 0?{}:{store:i.store}}}const mi=J.object({id:J.string().min(1)}),hi=mi.extend({delegation:J.object({type:J.enum([`client`,`responses`])}).nullish()}),gi=J.object({seconds:J.number().nonnegative()}),_i={delta:J.string(),start_ms:J.number().nonnegative(),end_ms:J.number().nonnegative()},vi={client_event_id:J.string().nullish()},yi={...vi,start_ms:J.number().nonnegative(),end_ms:J.number().nonnegative()},bi=J.discriminatedUnion(`type`,[J.object({type:J.literal(`session.started`),session:hi}),J.object({type:J.literal(`session.closed`),session:mi.nullish(),usage:gi,reason:J.string()}),J.object({type:J.literal(`session.usage.updated`),usage:gi,context_window:J.object({usage_ratio:J.number().min(0).max(1)}).nullish()}),J.object({type:J.literal(`session.output_audio.delta`),delta:J.string()}),J.object({type:J.literal(`session.input_transcript.delta`),..._i}),J.object({type:J.literal(`session.output_transcript.delta`),..._i}),J.object({type:J.literal(`session.delegation.created`),offset_ms:J.number().nonnegative().nullish(),delegation:J.object({id:J.string().min(1),target:J.enum([`client`,`responses`]).nullish(),response_id:J.string().min(1).nullish()})}),J.object({type:J.literal(`session.updated`),session:mi,...vi}),J.object({type:J.literal(`session.input_audio.muted`),...vi}),J.object({type:J.literal(`session.input_audio.unmuted`),...vi}),J.object({type:J.literal(`session.instructions.appended`),...yi}),J.object({type:J.literal(`session.thinking.appended`),...yi}),J.object({type:J.literal(`session.commentary.appended`),...yi}),J.object({type:J.literal(`error`),error:J.object({message:J.string(),code:J.string().nullish(),client_event_id:J.string().nullish()})})]),xi=new Set(bi.options.map(e=>e.shape.type.value)),Si=J.object({type:J.string()});function Ci(){return e=>wi(e)}function wi(e){return[Ti(e)]}function Ti(e){let t=Si.safeParse(e);if(t.success&&!xi.has(t.data.type))return{type:`custom`,rawType:t.data.type,raw:e};let n=bi.safeParse(e);if(!n.success)return{type:`error`,code:`invalid_server_event`,message:`Invalid OpenAI Live server event.`,raw:e};let r=n.data;if(`start_ms`in r&&r.end_ms<r.start_ms)return{type:`error`,code:`invalid_server_event`,message:`Invalid OpenAI Live event time interval.`,raw:e};switch(r.type){case`session.started`:return{type:`session-started`,sessionId:r.session.id,delegationMode:r.session.delegation?.type===`responses`?`provider`:`client`,raw:e};case`session.closed`:return{type:`session-closed`,sessionId:r.session?.id,usage:r.usage,reason:r.reason,raw:e};case`session.usage.updated`:return{type:`session-usage`,usage:r.usage,contextWindowUsageRatio:r.context_window?.usage_ratio,raw:e};case`session.output_audio.delta`:return{type:`audio-chunk`,delta:r.delta,raw:e};case`session.input_transcript.delta`:case`session.output_transcript.delta`:return{type:`transcript-fragment`,speaker:r.type===`session.input_transcript.delta`?`user`:`assistant`,delta:r.delta,startMs:r.start_ms,endMs:r.end_ms,raw:e};case`session.delegation.created`:return{type:`delegation-created`,delegationId:r.delegation.id,target:r.delegation.target===`responses`?`provider`:r.delegation.target??void 0,offsetMs:r.offset_ms??void 0,...r.delegation.response_id==null?{}:{responseId:r.delegation.response_id},raw:e};case`error`:return{type:`error`,message:r.error.message,code:r.error.code??void 0,clientEventId:r.error.client_event_id??void 0,raw:e};case`session.updated`:return{type:`command-acknowledged`,command:`session.update`,clientEventId:r.client_event_id??void 0,raw:e};case`session.input_audio.muted`:case`session.input_audio.unmuted`:return{type:`command-acknowledged`,command:r.type.slice(0,-1),clientEventId:r.client_event_id??void 0,raw:e};case`session.instructions.appended`:case`session.thinking.appended`:case`session.commentary.appended`:return{type:`command-acknowledged`,command:r.type.slice(0,-2),clientEventId:r.client_event_id??void 0,raw:e}}}function Ei(e,t){let n=`eventId`in e&&e.eventId!==void 0?{event_id:e.eventId}:{};switch(e.type){case`session-start`:return{type:`session.start`,session:pi(e.config,t),...n};case`session-update`:throw new a({functionality:`OpenAI Live session-update; startup settings are immutable; use context-append or input-audio-mute/input-audio-unmute`});case`session-close`:return{type:`session.close`,...n};case`input-audio-append`:return{type:`session.input_audio.append`,audio:e.audio,...n};case`input-audio-mute`:return{type:`session.input_audio.mute`,...n};case`input-audio-unmute`:return{type:`session.input_audio.unmute`,...n};case`context-append`:{let t=J.object({content:J.string(),delegationId:J.string().min(1).nullable()}).parse(e);return{type:`session.${J.strictObject({channel:J.enum([`instructions`,`thinking`,`commentary`]).optional()}).parse(e.providerOptions?.openai??{}).channel??`thinking`}.append`,content:t.content,delegation_id:t.delegationId,...n}}default:throw new a({functionality:`OpenAI Live command: ${e.type}; use continuous audio and context-append instead of voice-turn commands`})}}const Di=J.object({session:J.object({id:J.string().min(1)}),transport:J.object({type:J.literal(`webrtc`),sdp:J.string().min(1)})});var Oi=class{constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion=`v4`,this.capabilities={conversation:`continuous`,transports:[`websocket`,`webrtc`],connections:[`server-websocket`,`webrtc`],startup:`session-start`,finalization:`session-close`}}get provider(){return this.config.provider}getWebRTCConfig(){return{dataChannelLabel:`oai-events`}}getServerWebSocketConfig(){let e=new URL(`${this.config.baseURL}/live/sessions`);e.protocol=e.protocol===`http:`?`ws:`:`wss:`;let t={};for(let[e,n]of Object.entries(this.config.headers()))n!==void 0&&(t[e]=n);return{url:e.toString(),headers:t}}async doCreateWebRTCSession({sdp:e,sessionConfig:t={},abortSignal:n}){let r=pi(t,this.modelId,`webrtc`),{value:i}=await I({url:`${this.config.baseURL}/live/sessions`,headers:this.config.headers(),body:{session:r,transport:{type:`webrtc`,sdp:J.string().min(1).parse(e)}},failedResponseHandler:Y,successfulResponseHandler:G(Di),abortSignal:n,fetch:this.config.fetch});return{sessionId:i.session.id,sdp:i.transport.sdp}}parseServerEvent(e){return wi(e)}createServerEventParser(){return Ci()}serializeClientEvent(e){return Ei(e,this.modelId)}buildSessionConfig(e){return pi(e,this.modelId)}};function ki(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,clientEventId:t.error?.event_id??void 0,raw:e};default:return{type:`custom`,rawType:n,raw:e}}}function Ai(e,t){switch(e.type){case`session-update`:return{type:`session.update`,session:ji(e.config,t),...e.eventId==null?{}:{event_id:e.eventId}};case`input-audio-append`:return{type:`input_audio_buffer.append`,audio:e.audio,...e.eventId==null?{}:{event_id:e.eventId}};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 ji(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 Mi=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}:ji(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 ki(e)}serializeClientEvent(e){return Ai(e,this.modelId)}buildSessionConfig(e){return ji(e,this.modelId)}};const Ni=[`gpt-live-1`];function Pi(e,{api:n}={}){if(n!==void 0){if(n!==`live`&&n!==`realtime`)throw new t({argument:`api`,message:`OpenAI realtime api must be "live" or "realtime".`});return n}return Ni.some(t=>t===e)?`live`:`realtime`}function Fi(e){let t=(t,n)=>{let r=Pi(t,n),i={...e,provider:`${e.provider}.${r}`};return r===`live`?new Oi(t,i):new Mi(t,i)};return Object.assign(t,{getToken:async e=>{let n=t(e.model,e);if(n instanceof Oi)throw new a({functionality:`Short-lived OpenAI credentials for the Live API. Use server WebSocket setup via getServerWebSocketConfig() with a server-side API key instead.`});let r=await n.doCreateClientSecret({sessionConfig:e.sessionConfig,expiresAfterSeconds:e.expiresAfterSeconds});return{token:r.token,url:r.url,expiresAt:r.expiresAt}}})}const Ii=H(()=>W(J.object({instructions:J.string().nullish(),speed:J.number().min(.25).max(4).nullish()})));var Li=class e{static[K](e){return z({modelId:e.modelId,config:e.config})}static[q](t){return new e(t.modelId,t.config)}get provider(){return this.config.provider}constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion=`v4`}async getArgs({text:e,voice:t=`alloy`,outputFormat:n=`mp3`,speed:r,instructions:i,language:a,providerOptions:o}){let s=[],c=await B({provider:`openai`,providerOptions:o,schema:Ii}),l={model:this.modelId,input:e,voice:t,response_format:`mp3`,speed:r,instructions:i};if(n&&([`mp3`,`opus`,`aac`,`flac`,`wav`,`pcm`].includes(n)?l.response_format=n:s.push({type:`unsupported`,feature:`outputFormat`,details:`Unsupported output format: ${n}. Using mp3 instead.`})),c){let e={speed:c.speed??void 0,instructions:c.instructions??void 0};for(let t in e){let n=e[t];n!==void 0&&(l[t]=n)}}return a&&s.push({type:`unsupported`,feature:`language`,details:`OpenAI speech models do not support language selection. Language parameter "${a}" was ignored.`}),{requestBody:l,warnings:s}}async doGenerate(e){let t=this.config._internal?.currentDate?.()??new Date,{requestBody:n,warnings:r}=await this.getArgs(e),{value:i,responseHeaders:a,rawValue:o}=await I({url:this.config.url({path:`/audio/speech`,modelId:this.modelId}),headers:D(this.config.headers?.(),e.headers),body:n,failedResponseHandler:Y,successfulResponseHandler:ae(),abortSignal:e.abortSignal,fetch:this.config.fetch});return{audio:i,warnings:r,request:{body:JSON.stringify(n)},response:{timestamp:t,modelId:this.modelId,headers:a,body:o}}}};const Ri=H(()=>W(J.object({text:J.string(),language:J.string().nullish(),duration:J.number().nullish(),words:J.array(J.object({word:J.string(),start:J.number(),end:J.number()})).nullish(),segments:J.array(J.union([J.object({id:J.number(),seek:J.number(),start:J.number(),end:J.number(),text:J.string(),tokens:J.array(J.number()),temperature:J.number(),avg_logprob:J.number(),compression_ratio:J.number(),no_speech_prob:J.number()}),J.object({type:J.literal(`transcript.text.segment`),id:J.string(),start:J.number(),end:J.number(),text:J.string(),speaker:J.string()})])).nullish(),usage:J.record(J.string(),J.json()).nullish()}))),zi=H(()=>W(J.object({include:J.array(J.string()).optional(),language:J.string().optional(),prompt:J.string().optional(),temperature:J.number().min(0).max(1).default(0).optional(),timestampGranularities:J.array(J.enum([`word`,`segment`])).default([`segment`]).optional(),responseFormat:J.enum([`json`,`verbose_json`,`diarized_json`]).optional(),chunkingStrategy:J.union([J.literal(`auto`),J.object({type:J.literal(`server_vad`),threshold:J.number().min(0).max(1).optional(),prefixPaddingMs:J.number().int().min(0).optional(),silenceDurationMs:J.number().int().min(0).optional()})]).optional(),streaming:J.object({delay:J.enum([`minimal`,`low`,`medium`,`high`,`xhigh`]).optional(),include:J.array(J.string()).optional()}).optional()})));function Bi(e){return e===`gpt-realtime-whisper`||e.startsWith(`gpt-realtime-whisper-`)}const Vi={afrikaans:`af`,arabic:`ar`,armenian:`hy`,azerbaijani:`az`,belarusian:`be`,bosnian:`bs`,bulgarian:`bg`,catalan:`ca`,chinese:`zh`,croatian:`hr`,czech:`cs`,danish:`da`,dutch:`nl`,english:`en`,estonian:`et`,finnish:`fi`,french:`fr`,galician:`gl`,german:`de`,greek:`el`,hebrew:`he`,hindi:`hi`,hungarian:`hu`,icelandic:`is`,indonesian:`id`,italian:`it`,japanese:`ja`,kannada:`kn`,kazakh:`kk`,korean:`ko`,latvian:`lv`,lithuanian:`lt`,macedonian:`mk`,malay:`ms`,marathi:`mr`,maori:`mi`,nepali:`ne`,norwegian:`no`,persian:`fa`,polish:`pl`,portuguese:`pt`,romanian:`ro`,russian:`ru`,serbian:`sr`,slovak:`sk`,slovenian:`sl`,spanish:`es`,swahili:`sw`,swedish:`sv`,tagalog:`tl`,tamil:`ta`,thai:`th`,turkish:`tr`,ukrainian:`uk`,urdu:`ur`,vietnamese:`vi`,welsh:`cy`};var Hi=class e{static[K](e){return z({modelId:e.modelId,config:e.config})}static[q](t){return new e(t.modelId,t.config)}get provider(){return this.config.provider}constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion=`v4`}async getArgs({audio:e,mediaType:t,providerOptions:n}){let r=[],i=await B({provider:`openai`,providerOptions:n,schema:zi}),a=new FormData,o=e instanceof Uint8Array?new Blob([e]):new Blob([j(e)]);a.append(`model`,this.modelId);let s=v(t);a.append(`file`,new File([o],`audio`,{type:t}),`audio.${s}`),this.modelId===`whisper-1`&&a.append(`response_format`,`verbose_json`);let c=this.modelId===`gpt-4o-transcribe-diarize`,l=i?.chunkingStrategy??(c?`auto`:void 0);if(i){let e=[`gpt-4o-transcribe`,`gpt-4o-mini-transcribe`].includes(this.modelId),t={include:i.include,language:i.language,prompt:i.prompt,...this.modelId!==`whisper-1`&&{response_format:i.responseFormat??(c?`diarized_json`:e?`json`:`verbose_json`)},temperature:i.temperature,timestamp_granularities:i.timestampGranularities};for(let[e,n]of Object.entries(t))if(n!=null){if(Array.isArray(n))for(let t of n)a.append(`${e}[]`,String(t));else a.append(e,String(n))}}else c&&a.append(`response_format`,`diarized_json`);return l!=null&&a.append(`chunking_strategy`,typeof l==`string`?l:JSON.stringify({type:l.type,...l.threshold!=null&&{threshold:l.threshold},...l.prefixPaddingMs!=null&&{prefix_padding_ms:l.prefixPaddingMs},...l.silenceDurationMs!=null&&{silence_duration_ms:l.silenceDurationMs}})),{formData:a,warnings:r}}async doGenerate(e){if(Bi(this.modelId))throw new a({functionality:`non-streaming transcription with ${this.modelId}`});let t=this.config._internal?.currentDate?.()??new Date,{formData:n,warnings:r}=await this.getArgs(e),{value:i,responseHeaders:o,rawValue:s}=await le({url:this.config.url({path:`/audio/transcriptions`,modelId:this.modelId}),headers:D(this.config.headers?.(),e.headers),formData:n,failedResponseHandler:Y,successfulResponseHandler:G(Ri),abortSignal:e.abortSignal,fetch:this.config.fetch}),c=i.language!=null&&i.language in Vi?Vi[i.language]:void 0,l=i.segments?.flatMap(e=>`speaker`in e?[{text:e.text,startSecond:e.start,endSecond:e.end,speaker:e.speaker}]:[]);return{text:i.text,segments:i.segments?.map(e=>({text:e.text,startSecond:e.start,endSecond:e.end}))??i.words?.map(e=>({text:e.word,startSecond:e.start,endSecond:e.end}))??[],language:c,durationInSeconds:i.duration??void 0,warnings:r,...i.usage!=null&&{usage:i.usage},response:{timestamp:t,modelId:this.modelId,headers:o,body:s},...l!=null&&l.length>0&&{providerMetadata:{openai:{segments:l}}}}}async doStream(e){if(!Bi(this.modelId))throw new a({functionality:`streaming transcription with ${this.modelId}`});let t=this.config._internal?.currentDate?.()??new Date,n=await B({provider:`openai`,providerOptions:e.providerOptions,schema:zi}),r=[],i=e.providerOptions?.openai??{};for(let e of[`include`,`prompt`,`temperature`,`timestampGranularities`])i[e]!=null&&r.push({type:`unsupported`,feature:`providerOptions.openai.${e}`,details:`OpenAI streaming transcription does not support ${e}.`});let o=D(this.config.headers?.(),e.headers),s=Wi({modelId:this.modelId,inputAudioFormat:e.inputAudioFormat,providerOptions:n});return{request:{body:s},response:{timestamp:t,modelId:this.modelId},stream:Ui({webSocket:this.config.webSocket,url:F(this.config.url({path:`/realtime?intent=transcription`,modelId:this.modelId})),headers:o,sessionUpdate:s,language:n?.language,warnings:r,audio:e.audio,abortSignal:e.abortSignal,includeRawChunks:e.includeRawChunks})}}};function Ui({webSocket:e,url:t,headers:n,sessionUpdate:r,language:i,warnings:a,audio:o,abortSignal:s,includeRawChunks:c}){let l=!1,u=()=>{};return new ReadableStream({start:d=>{let f=Gi(n),p,m;u=e=>{p==null?o.cancel().catch(()=>{}):p.cancel().catch(()=>{}),m?.close(e)};let h=e=>{l||(l=!0,u(),d.error(e))},g=(e,t)=>{l||(l=!0,t!=null&&d.enqueue({type:`transcript-final`,id:t,text:e}),d.enqueue({type:`finish`,text:e,segments:[],language:i}),d.close(),u(1e3))},_=async e=>{p=o.getReader();try{for(;;){let{done:t,value:n}=await p.read();if(t||l)break;e.send(JSON.stringify({type:`input_audio_buffer.append`,audio:N(n)})),await ge(e)}}finally{p.releaseLock(),p=void 0}l||e.send(JSON.stringify({type:`input_audio_buffer.commit`}))};m=V({url:t,protocols:f.protocols,headers:f.headers,webSocket:e,abortSignal:s,onAbort:h,onProcessingError:h,onOpen:e=>{d.enqueue({type:`stream-start`,warnings:a}),e.send(JSON.stringify(r)),_(e).catch(h)},onMessageText:async e=>{let t=await ee({text:e});if(!t.success)return;let n=t.value;switch(c&&d.enqueue({type:`raw`,rawValue:n}),n.type){case`conversation.item.input_audio_transcription.delta`:d.enqueue({type:`transcript-delta`,id:n.item_id,delta:n.delta??``});break;case`conversation.item.input_audio_transcription.completed`:g(n.transcript??``,n.item_id);break;case`error`:h(Error(n.error?.message??`OpenAI realtime error`))}},onSocketError:()=>{h(Error(`OpenAI realtime transcription error`))},onClose:()=>{l||(l=!0,u(),d.close())}})},cancel:()=>{l||(l=!0,u())}})}function Wi({modelId:e,inputAudioFormat:t,providerOptions:n}){return{type:`session.update`,session:{type:`transcription`,audio:{input:{format:{type:t.type,...t.rate==null?{}:{rate:t.rate}},transcription:{model:e,...n?.language==null?{}:{language:n.language},...n?.streaming?.delay==null?{}:{delay:n.streaming.delay}},turn_detection:null}},...n?.streaming?.include==null?{}:{include:n.streaming.include}}}}function Gi(e){let t;for(let[n,r]of Object.entries(e))n.toLowerCase()===`authorization`&&r!=null&&(t=r);let n=t?.match(/^bearer\s+(.+)$/i)?.[1];return n==null?{protocols:[`realtime`],headers:e}:{protocols:[`realtime`,`openai-insecure-api-key.${n}`],headers:Object.fromEntries(Object.entries(e).filter(([e])=>e.toLowerCase()!==`authorization`))}}const Ki=H(()=>W(J.object({})));var qi=class e{static[K](e){return z({modelId:e.modelId,config:e.config})}static[q](t){return new e(t.modelId,t.config)}get provider(){return this.config.provider}constructor(e,t){this.modelId=e,this.config=t,this.specificationVersion=`v4`}async doStream(e){if(e.targetLanguage==null)throw new t({argument:`targetLanguage`,message:`targetLanguage is required for translation model '${this.modelId}'.`});let n=this.config._internal?.currentDate?.()??new Date;await B({provider:`openai`,providerOptions:e.providerOptions,schema:Ki});let r=[];Xi(e.inputAudioFormat),e.sourceLanguage!=null&&r.push({type:`unsupported`,feature:`sourceLanguage`,details:`The OpenAI Realtime translation API auto-detects the source language and does not accept a source language.`}),e.outputAudioFormat!=null&&r.push({type:`unsupported`,feature:`outputAudioFormat`,details:`The OpenAI Realtime translation API always outputs 24kHz 16-bit PCM audio and does not accept an output audio format.`});let i=D(this.config.headers?.(),e.headers),a=Yi({targetLanguage:e.targetLanguage});return{request:{body:a},response:{timestamp:n,modelId:this.modelId},stream:Ji({webSocket:this.config.webSocket,url:F(this.config.url({path:`/realtime/translations?model=${encodeURIComponent(this.modelId)}`,modelId:this.modelId})),headers:i,sessionUpdate:a,warnings:r,audio:e.audio,abortSignal:e.abortSignal,includeRawChunks:e.includeRawChunks})}}};function Ji({webSocket:e,url:t,headers:n,sessionUpdate:r,warnings:i,audio:a,abortSignal:o,includeRawChunks:s}){let c=!1,l=()=>{};return new ReadableStream({start:u=>{let d=Zi(n),f,p,m=``,h=``;l=e=>{f==null?a.cancel().catch(()=>{}):f.cancel().catch(()=>{}),p?.close(e)};let g=e=>{c||(c=!0,l(),u.error(e))},_=()=>{c||(c=!0,m!==``&&u.enqueue({type:`source-transcript-final`,text:m}),h!==``&&u.enqueue({type:`output-text-final`,text:h}),u.enqueue({type:`finish`,sourceText:m,outputText:h,usage:void 0}),u.close(),l(1e3))},v=async e=>{f=a.getReader();try{for(;;){let{done:t,value:n}=await f.read();if(t||c)break;e.send(JSON.stringify({type:`session.input_audio_buffer.append`,audio:N(n)})),await ge(e)}}finally{f.releaseLock(),f=void 0}c||e.send(JSON.stringify({type:`session.close`}))};p=V({url:t,protocols:d.protocols,headers:d.headers,webSocket:e,abortSignal:o,onAbort:g,onProcessingError:g,onOpen:e=>{u.enqueue({type:`stream-start`,warnings:i}),e.send(JSON.stringify(r)),v(e).catch(g)},onMessageText:async e=>{if(c)return;let t=await ee({text:e});if(!t.success)return;let n=t.value;switch(s&&u.enqueue({type:`raw`,rawValue:n}),n.type){case`session.output_audio.delta`:n.delta&&u.enqueue({type:`audio`,audio:n.delta});break;case`session.output_transcript.delta`:h+=n.delta??``,u.enqueue({type:`output-text-delta`,delta:n.delta??``});break;case`session.input_transcript.delta`:m+=n.delta??``,u.enqueue({type:`source-transcript-delta`,delta:n.delta??``});break;case`session.closed`:_();break;case`error`:u.enqueue({type:`error`,error:Error(n.error?.message??`OpenAI realtime error`)})}},onSocketError:()=>{g(Error(`OpenAI realtime translation error`))},onClose:({code:e,reason:t})=>{c||g(Error(`OpenAI realtime translation WebSocket closed unexpectedly before finishing (code ${e??`unknown`}${t?`, reason: ${t}`:``}).`))}})},cancel:()=>{c||(c=!0,l())}})}function Yi({targetLanguage:e}){return{type:`session.update`,session:{audio:{input:{transcription:{model:`gpt-realtime-whisper`},noise_reduction:null},output:{language:e}}}}}function Xi(e){if(e.type!==`audio/pcm`||e.rate!=null&&e.rate!==24e3)throw new t({argument:`inputAudioFormat`,message:`The OpenAI Realtime translation API only supports 24kHz 16-bit PCM input audio.`})}function Zi(e){let t;for(let[n,r]of Object.entries(e))n.toLowerCase()===`authorization`&&r!=null&&(t=r);let n=t?.match(/^bearer\s+(.+)$/i)?.[1];return n==null?{protocols:[`realtime`],headers:e}:{protocols:[`realtime`,`openai-insecure-api-key.${n}`],headers:Object.fromEntries(Object.entries(e).filter(([e])=>e.toLowerCase()!==`authorization`))}}const Qi=H(()=>W(J.object({id:J.string(),name:J.string().nullish(),description:J.string().nullish(),default_version:J.string().nullish(),latest_version:J.string().nullish(),created_at:J.number(),updated_at:J.number().nullish()})));H(()=>W(J.object({id:J.string(),version:J.string().nullish(),name:J.string().nullish(),description:J.string().nullish()})));var $i=class{get provider(){return this.config.provider}constructor(e){this.config=e,this.specificationVersion=`v4`}async uploadSkill(e){let t=[];e.displayTitle!=null&&t.push({type:`unsupported`,feature:`displayTitle`});let n=new FormData;for(let t of e.files){let e=L(t.data);n.append(`files[]`,new Blob([e]),t.path)}let{value:r}=await le({url:this.config.url({path:`/skills`}),headers:D(this.config.headers()),formData:n,failedResponseHandler:Y,successfulResponseHandler:G(Qi),fetch:this.config.fetch});return{providerReference:{openai:r.id},...r.name==null?{}:{name:r.name},...r.description==null?{}:{description:r.description},...r.latest_version==null?{}:{latestVersion:r.latest_version},providerMetadata:{openai:{...r.default_version==null?{}:{defaultVersion:r.default_version},...r.created_at==null?{}:{createdAt:r.created_at},...r.updated_at==null?{}:{updatedAt:r.updated_at}}},warnings:t}}};const ea=`4.0.91`;function ta(e={}){let t=d(me(w({settingValue:e.baseURL,environmentVariableName:`OPENAI_BASE_URL`})))??`https://api.openai.com/v1`,n=e.name??`openai`,r=()=>b({Authorization:`Bearer ${m({apiKey:e.apiKey,environmentVariableName:`OPENAI_API_KEY`,description:`OpenAI`})}`,"OpenAI-Organization":e.organization,"OpenAI-Project":e.project,...e.headers},`ai-sdk-openai/${ea}`),i=i=>new Qe(i,{provider:`${n}.chat`,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch}),a=i=>new ot(i,{provider:`${n}.completion`,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch}),o=i=>new ut(i,{provider:`${n}.embedding`,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch}),s=i=>new wt(i,{provider:`${n}.image`,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch}),c=i=>new Hi(i,{provider:`${n}.transcription`,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch,webSocket:e.webSocket}),l=i=>new qi(i,{provider:`${n}.speech-translation`,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch,webSocket:e.webSocket}),u=i=>new Li(i,{provider:`${n}.speech`,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch}),f=()=>new ht({provider:`${n}.files`,baseURL:t,headers:r,fetch:e.fetch}),p=()=>new $i({provider:`${n}.skills`,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch}),h=e=>{if(new.target)throw Error(`The OpenAI model function cannot be called with the new keyword.`);return g(e)},g=i=>new Er(i,{provider:`${n}.responses`,baseURL:t,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch,fileIdPrefixes:[`file-`]}),_=()=>new ti({provider:`${n}.batch`,maxLineBytes:e.batchResultDownloads?.maxLineBytes,config:{provider:`${n}.responses`,baseURL:t,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch,fileIdPrefixes:[`file-`]}}),v=function(e){return h(e)};return v.specificationVersion=`v4`,v.languageModel=h,v.chat=i,v.completion=a,v.responses=g,v.decisionModel=i=>new Ce(i,{baseURL:t,url:({path:e})=>`${t}${e}`,headers:r,fetch:e.fetch,provider:`${n}.decision`}),v.evaluationModel=v.decisionModel,v.embedding=o,v.embeddingModel=o,v.textEmbedding=o,v.textEmbeddingModel=o,v.image=s,v.imageModel=s,v.transcription=c,v.transcriptionModel=c,v.translation=l,v.speechTranslationModel=l,v.speech=u,v.speechModel=u,v.files=f,v.skills=p,v.experimental_batch=_,v.experimental_realtime=Fi({provider:n,baseURL:t,headers:r,fetch:e.fetch}),v.tools=Nn,v}const na=ta();export{Mi as Experimental_OpenAIRealtimeModel,Oi as Experimental_OpenAIRealtimeModelLive,qi as Experimental_OpenAISpeechTranslationModel,qi as Experimental_OpenAITranslationModel,ea as VERSION,ta as createOpenAI,na as openai};
|