@cortexkit/opencode-openai-auth 0.8.0 → 0.9.1
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/README.md +1 -1
- package/dist/{index-3w4vmckx.js → index-4effjmr6.js} +2 -2
- package/dist/{index-507jh8bv.js → index-9ehhb051.js} +1 -1
- package/dist/index-g3hsdjh4.js +2 -0
- package/dist/index-hh52v8sb.js +2 -0
- package/dist/{index-944gsj1s.js → index-jwn4r3sw.js} +1 -1
- package/dist/{index-02h7g5f9.js → index-sdt2d2ra.js} +1 -1
- package/dist/index-sq36b120.js +211 -0
- package/dist/index.d.ts +172 -341
- package/dist/index.js +65 -65
- package/dist/internal-BTndPmW2.d.ts +914 -0
- package/dist/quota-normalize-08hpp51v.js +1 -0
- package/dist/rpc/port-file.js +1 -1
- package/dist/rpc/protocol.d.ts +1 -1
- package/dist/rpc/rpc-client.d.ts +2 -1
- package/dist/rpc/rpc-client.js +1 -1
- package/dist/rpc/rpc-dir.js +1 -1
- package/dist/sidebar-state-CoKYKcLn.d.ts +220 -0
- package/dist/sidebar-state.d.ts +2 -172
- package/dist/sidebar-state.js +1 -1
- package/dist/{token-jdvpwk60.js → token-9823y0pc.js} +1 -1
- package/dist/token-util-ypgz7rge.js +1 -0
- package/dist/tui-preferences.js +1 -1
- package/dist/tui.d.ts +27 -5
- package/package.json +3 -2
- package/src/tui-compiled/raw/core-custody-state.ts +243 -0
- package/src/tui-compiled/raw/sidebar-state.ts +168 -12
- package/src/tui-compiled/raw/tui-command-dialogs.tsx +89 -39
- package/src/tui-compiled/raw/tui.tsx +138 -18
- package/src/tui-compiled/runtime/core-custody-state.ts +243 -0
- package/src/tui-compiled/runtime/sidebar-state.ts +168 -12
- package/src/tui-compiled/runtime/tui-command-dialogs.tsx +70 -33
- package/src/tui-compiled/runtime/tui.tsx +241 -143
- package/src/tui-compiled/shared/logger.ts +9 -2
- package/dist/index-2xppkvkx.js +0 -2
- package/dist/index-nshbgkz1.js +0 -198
- package/dist/index-xyg86jgt.js +0 -2
- package/dist/protocol-Cv9ZmU0p.d.ts +0 -24
- package/dist/quota-normalize-wap0rne8.js +0 -1
- package/dist/token-util-zzm7paz9.js +0 -1
package/dist/index.js
CHANGED
|
@@ -1,123 +1,123 @@
|
|
|
1
|
-
import{A as
|
|
2
|
-
`);for(let
|
|
3
|
-
`)}var
|
|
4
|
-
`)return"enter";if(
|
|
5
|
-
`),
|
|
1
|
+
import{A as l4,B as d4,C as i4,D as o4,c as S9,e as bJ,h as GY,i as m4,j as YY,m as r1,q as tQ,r as c4,s as u4,t as p4,y as z8,z as NJ}from"./index-g3hsdjh4.js";import{I as A5,J as R5}from"./index-4effjmr6.js";import{$ as WQ,$a as w9,Aa as l8,Ba as t9,Ca as HJ,Da as RY,Ea as H1,Fa as v4,Ga as TY,Ha as V0,Ia as h4,Ja as m1,Ka as r8,L as V4,La as P0,M as N4,Ma as f1,N as B4,Na as VJ,O as n8,Oa as j0,P as _4,Pa as XY,Q as I4,Qa as QY,R as EY,Ra as W8,S as S4,Sa as $Y,T as CQ,Ta as g4,U as E0,Ua as y4,V as y0,Va as b1,W as CY,Wa as M1,X as mJ,Xa as f4,Y as Q5,Ya as h,Z as B0,Za as E9,_ as k4,_a as M9,aa as zQ,ab as A9,ba as Q1,bb as R9,ca as $1,cb as T9,da as J9,db as C9,ea as KQ,eb as _9,fa as UQ,fb as I9,ga as ZQ,gb as PJ,ha as LQ,hb as E1,ia as HQ,ja as VQ,ka as NQ,la as AY,ma as Q9,na as h1,oa as s1,pa as x4,qa as V1,ra as k0,sa as F4,ta as eX,ua as KJ,va as G8,wa as j4,xa as b4,ya as Y8,za as p8}from"./index-sq36b120.js";import{kb as n4}from"./index-jwn4r3sw.js";import{mb as X9,nb as JY,ob as lK}from"./index-hh52v8sb.js";import{sb as aJ}from"./index-9ehhb051.js";import{mkdirSync as mF,readFileSync as r4,renameSync as cF,statSync as uF,writeFileSync as pF}from"node:fs";import UJ from"node:os";import{join as K8}from"node:path";import{execFileSync as xU}from"node:child_process";import{readFileSync as NU}from"node:fs";import{homedir as BU,tmpdir as FU}from"node:os";import{join as jY}from"node:path";var jU="https://chatgpt.com/backend-api/codex/responses",OU="openai-auth.json",L1={noWebSearch:"CORTEXKIT_OPENAI_AUTH_NO_WEB_SEARCH",webSockets:"CORTEXKIT_OPENAI_AUTH_WEBSOCKETS",rawWebSocket:"CORTEXKIT_OPENAI_AUTH_RAW_WS",responsesLite:"CORTEXKIT_OPENAI_AUTH_RESPONSES_LITE",dump:"CORTEXKIT_OPENAI_AUTH_DUMP",dumpDir:"OPENCODE_OPENAI_AUTH_DUMP_DIR",codexApiEndpoint:"CORTEXKIT_OPENAI_AUTH_CODEX_ENDPOINT",configFile:"OPENCODE_OPENAI_AUTH_FILE",stateFile:"OPENCODE_OPENAI_AUTH_STATE_FILE",configDir:"OPENCODE_CONFIG_DIR"};function OY(){let Y=process.env[L1.configDir]?.trim();if(Y)return Y;return jY(process.env.XDG_CONFIG_HOME||jY(BU(),".config"),"opencode")}function e(){return process.env[L1.configFile]?.trim()||jY(OY(),OU)}function qU(){try{let Y=JSON.parse(NU(e(),"utf8"));return Y!=null&&typeof Y==="object"&&!Array.isArray(Y)?Y:{}}catch{return{}}}function m8(Y){let J=process.env[Y];if(J===void 0)return;let X=J.trim().toLowerCase();if(X==="1"||X==="true"||X==="yes"||X==="on")return!0;if(X===""||X==="0"||X==="false"||X==="no"||X==="off")return!1;return}function BY(Y,J,X){let Q=m8(Y);if(Q!==void 0)return Q;if(typeof J==="boolean")return J;return X}function DU(){let Y=qU(),J=m8(L1.noWebSearch),X=J!==void 0?!J:typeof Y.webSearch==="boolean"?Y.webSearch:!0,Q;if(Y.dump!==void 0&&Y.dump!==null){if(typeof Y.dump==="object")Q=Y.dump.enabled;else if(typeof Y.dump==="boolean")Q=Y.dump}return{webSearch:X,webSockets:BY(L1.webSockets,Y.webSockets,!1),rawWebSocket:BY(L1.rawWebSocket,Y.rawWebSocket,!1),responsesLite:BY(L1.responsesLite,Y.responsesLite,!1),dump:BY(L1.dump,Q,!1),dumpDir:process.env[L1.dumpDir]?.trim()||(typeof Y.dumpDir==="string"&&Y.dumpDir.trim()?Y.dumpDir.trim():jY(FU(),"opencode-openai-auth-dumps")),codexApiEndpoint:process.env[L1.codexApiEndpoint]?.trim()||(typeof Y.codexApiEndpoint==="string"&&Y.codexApiEndpoint.trim()?Y.codexApiEndpoint.trim():jU)}}var FY;function g0(){if(!FY)FY=DU();return FY}function qJ(){return FY=void 0,g0()}import{realpathSync as c8}from"node:fs";import{homedir as PU}from"node:os";import{basename as EU,dirname as MU,join as DY,resolve as d8}from"node:path";function wU(){if(process.env.OPENCODE_CONFIG_DIR?.trim())return process.env.OPENCODE_CONFIG_DIR.trim();return DY(process.env.XDG_CONFIG_HOME||DY(PU(),".config"),"opencode")}function i8(){return process.env.OPENCODE_OPENAI_AUTH_FILE?.trim()||DY(wU(),p8)}function qY(Y,J){let X=d8(Y);return J==="win32"||J==="darwin"?X.toLowerCase():X}function u8(Y){try{return c8.native(Y)}catch{try{return DY(c8.native(MU(Y)),EU(Y))}catch{return}}}function AU(Y,J,X=process.platform){if(qY(Y,X)===qY(J,X))return!0;let Q=u8(Y),$=u8(J);return Q!==void 0&&$!==void 0&&qY(Q,X)===qY($,X)}function PY(Y=i8()){let J=process.env.OPENCODE_OPENAI_AUTH_STATE_FILE?.trim();if(J){if(AU(Y,J))throw Error(`OPENCODE_OPENAI_AUTH_STATE_FILE resolves to the config path (${d8(Y)}). Set OPENCODE_OPENAI_AUTH_STATE_FILE to a different file.`);return J}return l8(Y)}function s(Y=i8()){return{configPath:Y,statePath:PY(Y)}}var P9="0.9.1";import{readFile as RU}from"node:fs/promises";function o8(Y){return typeof Y==="object"&&Y!==null&&!Array.isArray(Y)}async function s8(Y){let J=await r8(Y.configPath),X=[];try{let $=JSON.parse(await RU(Y.statePath,"utf8"));if(o8($)){let G=$.accounts;if(o8(G))X=Object.keys(G)}}catch($){if($.code!=="ENOENT")throw $}return{rosterIds:J?[...J]:[],stateIds:X,orphanStateIds:J?X.filter(($)=>!J.has($)):[]}}function DJ(Y){if(!Y)return;let J=Y.accounts.find((X)=>X.id==="main"&&V0(X));if(J)return J;if(!Y.mainAccountId)return;return Y.accounts.find((X)=>V0(X)&&X.accountId===Y.mainAccountId)}function TU(Y,J){let X=Y.lastRefreshError;return EY(X,Y.refresh,J)&&X!==void 0&&X.nextRetryAt!==void 0&&X.nextRetryAt-X.checkedAt>=n8}function a8(Y){let J=[],X=[],Q=Y.now??Date.now(),$=DJ(Y.storage),G=!1;if(!Y.auth)J.push({code:"auth-slot-missing",message:"OpenCode's OpenAI auth slot is missing."}),G=!0;else if(Y.auth.type!=="oauth")J.push({code:"auth-slot-not-oauth",message:"OpenCode's OpenAI auth slot is not OAuth."}),G=!0;else if($&&(!Y.auth.refresh||$.refresh!==Y.auth.refresh))J.push({code:"main-refresh-not-in-store",message:"OpenCode's main credential does not match the copy in the account store."}),G=!0;if(G&&$){let Z={type:"restore-main-credential"};X.push(Z);let U=J.find((L)=>L.code==="auth-slot-missing"||L.code==="auth-slot-not-oauth"||L.code==="main-refresh-not-in-store");if(U)U.repair=Z}let W=Y.storage?.accounts??[];if(W.length===0)J.push({code:"no-accounts",message:"The account store has no accounts."});else if(!W.some((Z)=>Z.enabled!==!1))J.push({code:"no-enabled-accounts",message:"The account store has no enabled accounts."});for(let Z of W){if(!V0(Z))continue;if(!TU(Z,Q))continue;let U={type:"clear-refresh-backoff",accountId:Z.id};X.push(U),J.push({code:"armed-non-transient-refresh-backoff",accountId:Z.id,message:`Account ${Z.id} has an armed non-transient refresh backoff.`,repair:U})}let K=[...Y.orphanStateIds??[]];if(K.length>0){let Z={type:"prune-orphan-state-ids",ids:K};X.push(Z),J.push({code:"orphan-state-ids",message:`State contains ids absent from the config roster: ${K.join(", ")}.`,repair:Z})}return{findings:J,repairs:X}}function t8(Y){let J=["OpenAI auth doctor"];if(Y.findings.length===0)return J.push("No problems found."),J.join(`
|
|
2
|
+
`);for(let X of Y.findings){let Q=X.repair?" (repair available)":"";J.push(`- ${X.message}${Q}`)}return J.join(`
|
|
3
|
+
`)}var Y0={hide:"\x1B[?25l",show:"\x1B[?25h",up:(Y=1)=>`\x1B[${Y}A`,clearLine:"\x1B[2K",clearScreen:"\x1B[2J",moveTo:(Y,J)=>`\x1B[${Y};${J}H`,cyan:"\x1B[36m",green:"\x1B[32m",red:"\x1B[31m",dim:"\x1B[2m",reset:"\x1B[0m"};function e8(Y){let J=Y.toString();if(J==="\x1B[A"||J==="\x1BOA")return"up";if(J==="\x1B[B"||J==="\x1BOB")return"down";if(J==="\r"||J===`
|
|
4
|
+
`)return"enter";if(J==="\x03")return"escape";if(J==="\x1B")return"escape-start";return null}function YQ(){return Boolean(process.stdin.isTTY)}var CU=50,JQ=`${String.fromCharCode(27)}\\[[0-9;]*m`,_U=new RegExp(JQ,"g"),IU=new RegExp(`^${JQ}`);function SU(Y){return Y.replace(_U,"")}function MY(Y,J){if(J<=0)return"";if(SU(Y).length<=J)return Y;let X=J>=3?"...":".".repeat(J),Q=Math.max(0,J-X.length),$="",G=0,W=0;while(G<Y.length&&W<Q){if(Y[G]==="\x1B"){let K=Y.slice(G).match(IU);if(K){$+=K[0],G+=K[0].length;continue}}$+=Y[G],G+=1,W+=1}return $.includes("\x1B[")?`${$}${Y0.reset}${X}`:$+X}function kU(Y){if(Y==="red")return Y0.red;if(Y==="cyan")return Y0.cyan;return""}async function wY(Y,J){if(!YQ())throw Error("Interactive select requires a TTY terminal");if(Y.length===0)throw Error("No menu items provided");if(Y.length===1)return Y[0]?.value??null;let{stdin:X,stdout:Q}=process,$=0,G=null,W=!1,K=0,Z=()=>{let U=Q.columns??80,L=Q.rows??24,j=K;if(J.clearScreen)Q.write(Y0.clearScreen+Y0.moveTo(1,1));else if(j>0)Q.write(Y0.up(j));let N=0,V=(E)=>{Q.write(`${Y0.clearLine}${E}
|
|
5
|
+
`),N+=1},q=J.subtitle?3:0,T=Math.max(1,Math.min(Y.length,L-(1+q+2)-1)),S=Math.max(0,Math.min($-Math.floor(T/2),Math.max(0,Y.length-T))),c=Y.slice(S,S+T);if(V(`${Y0.dim}┌ ${Y0.reset}${MY(J.message,Math.max(1,U-4))}`),J.subtitle)V(`${Y0.dim}│${Y0.reset}`),V(`${Y0.cyan}◆${Y0.reset} ${MY(J.subtitle,Math.max(1,U-4))}`),V("");for(let E=0;E<c.length;E++){let b=c[E];if(!b)continue;let f=S+E===$,o=kU(b.color),t=o?`${f?"":Y0.dim}${o}${b.label}${Y0.reset}`:f?b.label:`${Y0.dim}${b.label}${Y0.reset}`;t=MY(t,Math.max(1,U-8)),V(f?`${Y0.cyan}│${Y0.reset} ${Y0.green}●${Y0.reset} ${t}`:`${Y0.cyan}│${Y0.reset} ${Y0.dim}○${Y0.reset} ${t}`)}let _=c.length<Y.length?` (${S+1}-${S+c.length}/${Y.length})`:"";V(`${Y0.cyan}│${Y0.reset} ${Y0.dim}${MY(`Up/Down to select | Enter: confirm | Esc: back${_}`,Math.max(1,U-6))}${Y0.reset}`),V(`${Y0.cyan}└${Y0.reset}`);for(let E=N;E<j;E++)V("");K=N};return new Promise((U)=>{let L=X.isRaw??!1,j=()=>{if(W)return;if(W=!0,G)clearTimeout(G);X.removeListener("data",q);try{X.setRawMode(L),X.pause(),Q.write(Y0.show)}catch{}process.removeListener("SIGINT",V),process.removeListener("SIGTERM",V)},N=(T)=>{j(),U(T)},V=()=>N(null),q=(T)=>{if(G)clearTimeout(G),G=null;switch(e8(T)){case"up":$=($-1+Y.length)%Y.length,Z();break;case"down":$=($+1)%Y.length,Z();break;case"enter":N(Y[$]?.value??null);break;case"escape":N(null);break;case"escape-start":G=setTimeout(()=>N(null),CU);break}};process.once("SIGINT",V),process.once("SIGTERM",V);try{X.setRawMode(!0)}catch{j(),U(null);return}X.resume(),Q.write(Y0.hide),Z(),X.on("data",q)})}var XQ=[{label:"Add account",value:"add-account",color:"cyan"},{label:"Auth current",value:"auth-current",color:"cyan"},{label:"Check quotas",value:"check-quotas",color:"cyan"},{label:"Auth doctor",value:"auth-doctor",color:"cyan"},{label:"Apply repairs",value:"apply-repairs",color:"cyan"},{label:"Delete all accounts",value:"delete-all",color:"red"}],lj=XQ.map((Y)=>Y.label);async function QQ(){return await wY(XQ,{message:"OpenAI accounts",subtitle:"Select an account action",clearScreen:!0})??"cancel"}async function $Q(Y,J=!1){return await wY(J?[{label:"Yes",value:!0},{label:"No",value:!1}]:[{label:"No",value:!1},{label:"Yes",value:!0}],{message:Y})??!1}function bU(Y,J=process.platform,X=xU){try{if(J==="win32")X("cmd",["/c","start","",Y],{stdio:"ignore",timeout:3000});else X(J==="darwin"?"open":"xdg-open",[Y],{stdio:"ignore",timeout:3000});return!0}catch{return!1}}function vU(){return{url:"",instructions:"",method:"auto",callback:async()=>({type:"failed"})}}async function hU(){let{redirectUri:Y}=await ZQ(),J=await zQ(),X=WQ(crypto.getRandomValues(new Uint8Array(32)).buffer),Q=KQ(Y,J,X),$=LQ(J,X);return{url:Q,instructions:"Complete authorization in your browser. This window will close automatically.",method:"auto",callback:async()=>{try{let G=await $;return{type:"success",refresh:G.refresh_token,access:G.access_token,expires:Date.now()+(G.expires_in??3600)*1000,accountId:J9(G)}}finally{UQ(X)}}}}async function gU(Y){let{deviceData:J,url:X,instructions:Q}=await HQ(Y);return{url:X,instructions:Q,method:"auto",async callback(){try{let $=await VQ(J,Y);return{type:"success",refresh:$.refresh_token,access:$.access_token,expires:Date.now()+($.expires_in??3600)*1000,accountId:J9($)}}catch{return{type:"failed"}}}}}function GQ(Y){if(console.log(`
|
|
6
6
|
Open this URL in your browser and complete sign-in:
|
|
7
7
|
`),console.log(`${Y.url}
|
|
8
8
|
`),Y.instructions)console.log(`${Y.instructions}
|
|
9
|
-
`)}function
|
|
10
|
-
`),E=await W.beginAccountLogin({version
|
|
11
|
-
`),knobs:{config:Q,accountIds
|
|
9
|
+
`)}function BQ({client:Y,getAuth:J,getPaths:X=()=>s(e()),fetchImpl:Q=fetch,packageVersion:$=P9,dependencies:G}){let W={authorizeBrowser:G?.authorizeBrowser??hU,authorizeHeadless:G?.authorizeHeadless??(()=>gU($)),beginAccountLogin:G?.beginAccountLogin??AY,loadAccounts:G?.loadAccounts??P0,mutateAccounts:G?.mutateAccounts??j0,refreshAllQuota:G?.refreshAllQuota??E1,showAuthMenu:G?.showAuthMenu??QQ,confirm:G?.confirm??$Q,readStoreIds:G?.readStoreIds??s8,openBrowser:G?.openBrowser??bU,now:G?.now??Date.now,custodyQuotaDeps:G?.custodyQuotaDeps??{}},K=async()=>await J?.().catch(()=>{return})??{type:"missing"},Z=async()=>{if((await K()).type!=="missing")return!0;return((await W.loadAccounts(X()))?.accounts.length??0)>0},U=async(_)=>{await Y.auth.set({path:{id:"openai"},body:{type:"oauth",..._}})},L=async()=>{let _=new AbortController,E=await W.beginAccountLogin({version:$,signal:_.signal});E.completion.catch(()=>{}),GQ(E);let b=!1;try{b=await W.openBrowser(E.url)!==!1}catch{b=!1}if(!b)_.abort(),console.log(`Could not open a browser. Switching to device authorization.
|
|
10
|
+
`),E=await W.beginAccountLogin({version:$,headless:!0}),GQ(E);return E.completion},j=async()=>{let _=await W.loadAccounts(X());if(f1(_)==="claustrum"){console.log("That account cannot be added while Claustrum mode is active. Run `/openai-account local` first.");return}let E=await L(),b=!1;if(await W.mutateAccounts((f)=>{if(E.accountId&&f.mainAccountId&&E.accountId===f.mainAccountId)return b=!0,f;return NQ(f.accounts,E),f},X()),b){console.log("That account is already the OpenCode main credential.");return}console.log(`Added fallback account ${E.id}.`)},N=async()=>{let _=await L();await U({refresh:_.refresh,access:_.access??"",expires:_.expires??0}),console.log("Updated the OpenCode main credential.")},V=async()=>{let _=X(),E=await W.loadAccounts(_),b=new TY({storage:E,configPath:_.configPath,fetchImpl:Q,now:W.now}),f={refreshAccount:async(W0)=>W0},o=async()=>{throw Error("No usable main access token for quota check")},t=async(W0)=>{let O0=await W.loadAccounts(W0);if(!O0)return null;return{...O0,accounts:O0.accounts.map((c0)=>V0(c0)?{...c0,lastRefreshError:void 0}:{...c0})}},N0=await W.refreshAllQuota({getAuth:K,codexRefreshFn:o,refreshMainWithLease:o,fallbackManager:f,quotaManager:b,loadAccounts:t,writeSidebarState:async()=>{},client:{auth:{set:async()=>{throw Error("Quota checks cannot write credentials")}}},fetchImpl:Q,now:W.now,paths:_,storageMainAccountId:E?.mainAccountId,isOAuthAccountFn:V0,whamFn:RY,respectBackoff:!1,readSidebarState:async()=>({main:{},fallbacks:[]}),...W.custodyQuotaDeps});yU(N0)},q=async()=>{let _=X(),[E,b,f]=await Promise.all([W.loadAccounts(_),W.readStoreIds(_),K()]),o=a8({auth:f.type==="missing"?void 0:f,storage:E,orphanStateIds:b.orphanStateIds,now:W.now()});return console.log(t8(o)),o},T=async()=>{let _=await q();if(_.repairs.length===0){console.log("No repairs are available.");return}if(!await W.confirm("Apply the listed auth repairs?")){console.log("Repairs cancelled.");return}let E=X();for(let b of _.repairs){if(b.type==="restore-main-credential"){let f=await W.loadAccounts(E),o=DJ(f);if(!o)continue;await U({refresh:o.refresh,access:o.access??"",expires:o.expires??0});continue}if(b.type==="prune-orphan-state-ids"){await W.mutateAccounts((f)=>f,E);continue}await W.mutateAccounts((f)=>{let o=f.accounts.find((t)=>t.id===b.accountId&&V0(t));if(o)o.lastRefreshError=void 0;return f},E)}console.log(`Applied ${_.repairs.length} auth repair(s).`)},S=async()=>{if(!await W.confirm("Delete all fallback accounts?")){console.log("Delete cancelled.");return}let _=[];await W.mutateAccounts((E,b)=>{let f=new Set([...b?.rawRosterIds??[],...E.accounts.map((o)=>o.id)].filter((o)=>o!=="main"));return _.splice(0,_.length,...f),E.accounts=E.accounts.filter((o)=>o.id==="main"),E},X(),{allowDrop:_}),console.log("Deleted all fallback accounts.")},c=async(_)=>{switch(_){case"add-account":await j();break;case"auth-current":await N();break;case"check-quotas":await V();break;case"auth-doctor":await q();break;case"apply-repairs":await T();break;case"delete-all":await S();break;case"cancel":break}};return[{label:"ChatGPT Pro/Plus (browser)",type:"oauth",authorize:async(_)=>{if(_&&await Z())return await c(await W.showAuthMenu()),vU();return W.authorizeBrowser()}},{label:"ChatGPT Pro/Plus (headless)",type:"oauth",authorize:W.authorizeHeadless},{label:"Manually enter API Key",type:"api"}]}function yU(Y){for(let J of Y)console.log(J.ok?`${J.account}: quota refreshed`:`${J.account}: ${J.error??"quota refresh failed"}`)}var n0=B0("commands");function S0(Y){return{configPath:Y.accountStoragePath,statePath:Y.accountStatePath}}async function cU(Y,J){let X=await J.loadAccounts(S0(J))??{version:1,accounts:[]},Q=X.killswitch??{},$=(X.accounts??[]).filter((W)=>W.enabled!==!1).map((W)=>W.id),G=Y.trim().toLowerCase().split(/\s+/).filter(Boolean);if(G.length===0){let W=Q.enabled===!0,K=["## Killswitch","",`Status: **${W?"ON":"OFF"}**`];if(W){K.push(""),K.push("| Account | primary threshold | secondary threshold |"),K.push("| ------- | ------------ | ------------ |");let Z=Q.main??{},U=Z.primary??Z["5h"]??m1.primary,L=Z.secondary??Z["1w"]??m1.secondary;K.push(`| main | ≥ ${U}% | ≥ ${L}% |`);for(let j of $){let N=Q.accounts?.[j]??Q.main??{},V=N.primary??N["5h"]??m1.primary,q=N.secondary??N["1w"]??m1.secondary;K.push(`| ${j} | ≥ ${V}% | ≥ ${q}% |`)}}return K.push(""),K.push("Commands: `/openai-killswitch on` | `/openai-killswitch off` | `/openai-killswitch set <acct>:<5h>,<1w> ...`"),{command:"openai-killswitch",text:K.join(`
|
|
11
|
+
`),knobs:{config:Q,accountIds:$}}}if(G[0]==="on"){let W={...Q,enabled:!0,main:Q.main??{primary:m1.primary,secondary:m1.secondary}};return await j0((K)=>{return K.killswitch=W,K},S0(J)),n0.info("killswitch enabled"),{command:"openai-killswitch",text:"## Killswitch Enabled",knobs:{config:W,accountIds:$}}}if(G[0]==="off"){let W={...Q,enabled:!1};return await j0((K)=>{return K.killswitch=W,K},S0(J)),n0.info("killswitch disabled"),{command:"openai-killswitch",text:"## Killswitch Disabled",knobs:{config:W,accountIds:$}}}if(G[0]==="set"&&G.length>1){let W={...Q,enabled:!0,accounts:{...Q.accounts??{}}};for(let K=1;K<G.length;K++){let Z=G[K]?.match(/^([^:]+):(\d+),(\d+)$/);if(!Z)continue;let[,U,L,j]=Z,N={primary:Number.parseInt(L,10),secondary:Number.parseInt(j,10)};if(U==="main")W.main=N;else if(U==="all"){W.main=N;for(let V of $)W.accounts[V]=N}else W.accounts[U]=N}return await j0((K)=>{return K.killswitch=W,K},S0(J)),n0.info("killswitch thresholds updated",{count:G.length-1}),{command:"openai-killswitch",text:"## Killswitch Updated",knobs:{config:W,accountIds:$}}}return{command:"openai-killswitch",text:"Usage: `/openai-killswitch`, `/openai-killswitch on`, `/openai-killswitch off`, `/openai-killswitch set <acct>:<5h>,<1w> ...`",knobs:{config:Q,accountIds:$}}}async function uU(Y,J){let X=Y.trim().toLowerCase().split(/\s+/).filter(Boolean),Q=g0(),$=Q.dump;if(X.length===0)return{command:"openai-dump",text:`## Request Dump
|
|
12
12
|
|
|
13
|
-
- Enabled: ${
|
|
13
|
+
- Enabled: ${$?"ON":"OFF"}
|
|
14
14
|
- Directory: ${Q.dumpDir}
|
|
15
15
|
|
|
16
|
-
Usage: \`/openai-dump on\` or \`/openai-dump off\``,knobs:{enabled
|
|
16
|
+
Usage: \`/openai-dump on\` or \`/openai-dump off\``,knobs:{enabled:$}};if(X[0]==="on"){await j0((W)=>{return W.dump={...W.dump??{},enabled:!0},W},S0(J));let G=qJ();return n0.info("request dump enabled"),{command:"openai-dump",text:`## Request Dump Enabled
|
|
17
17
|
|
|
18
|
-
Dump directory: ${
|
|
18
|
+
Dump directory: ${G.dumpDir}
|
|
19
19
|
|
|
20
|
-
Warning: body dumps may contain prompt/session content. Turn this off after debugging.`,knobs:{enabled:!0}}}if(
|
|
20
|
+
Warning: body dumps may contain prompt/session content. Turn this off after debugging.`,knobs:{enabled:!0}}}if(X[0]==="off")return await j0((G)=>{return G.dump={...G.dump??{},enabled:!1},G},S0(J)),qJ(),n0.info("request dump disabled"),{command:"openai-dump",text:"## Request Dump Disabled",knobs:{enabled:!1}};return{command:"openai-dump",text:"Usage: `/openai-dump`, `/openai-dump on`, or `/openai-dump off`.",knobs:{enabled:$}}}async function pU(Y,J){let X=Y.trim().toLowerCase().split(/\s+/).filter(Boolean),Q=["error","warn","info","debug","trace"];if(X.length===0){let W=(await J.loadAccounts(S0(J)))?.logging?.level??"info";return{command:"openai-logging",text:`## Logging
|
|
21
21
|
|
|
22
22
|
- Level: \`${W}\`
|
|
23
23
|
|
|
24
|
-
Valid levels: ${Q.map((
|
|
24
|
+
Valid levels: ${Q.map((K)=>`\`${K}\``).join(", ")}
|
|
25
25
|
|
|
26
|
-
Usage: \`/openai-logging <level>\``,knobs:{level:W}}}let
|
|
26
|
+
Usage: \`/openai-logging <level>\``,knobs:{level:W}}}let $=X[0];if($&&Q.includes($)){let G=$;return CY(G),await j0((W)=>{return W.logging={...W.logging??{},level:G},W},S0(J)),n0.info("log level changed",{level:G}),{command:"openai-logging",text:`## Logging Updated
|
|
27
27
|
|
|
28
|
-
Level set to \`${
|
|
28
|
+
Level set to \`${G}\`.`,knobs:{level:G}}}return{command:"openai-logging",text:`## Invalid Level
|
|
29
29
|
|
|
30
|
-
Valid levels: ${Q.map((
|
|
30
|
+
Valid levels: ${Q.map((G)=>`\`${G}\``).join(", ")}`,knobs:{level:"info"}}}function lU(Y){let J=/^(\d{1,2})-(\d{1,2})$/.exec(Y.trim());if(!J)return{ok:!1,reason:"expected HH-HH, e.g. 9-18 or 22-6"};let X=Number(J[1]),Q=Number(J[2]);if(!Number.isInteger(X)||!Number.isInteger(Q)||X<0||X>23||Q<0||Q>23||X===Q)return{ok:!1,reason:"hours must be integers 0-23 and start ≠ end"};return{ok:!0,startHour:X,endHour:Q}}async function dU(Y,J){let X=J.cacheKeepManager,Q=Y.trim().toLowerCase().split(/\s+/).filter(Boolean),$=await J.loadAccounts(S0(J)),G=$?.cachekeep?.enabled===!0;if(Q.length===0||Q[0]==="status"){if(!X)return{command:"openai-cachekeep",text:`## Cachekeep
|
|
31
31
|
|
|
32
|
-
Status: **not available** (manager not wired)`,knobs:{}};let
|
|
33
|
-
`),knobs:{enabled
|
|
32
|
+
Status: **not available** (manager not wired)`,knobs:{}};let K=X.status(),Z=K.window,U=Z?`${String(Z.startHour).padStart(2,"0")}-${String(Z.endHour).padStart(2,"0")}`:"always (no window)",L=["## Cachekeep","",`Status: **${G?"ON":"OFF"}**`,`Timer: **${K.running?"armed":"idle"}**`,`Subagent warming: **${$?.cachekeep?.subagents===!0?"ON":"OFF"}**`,`Idle policy: **sustain ${K.sustain?"ON":"OFF"} (main only)**`,`Window: **${U}**`];if(L.push(`Tracked sessions: **${K.tracked}**`),K.targets.length>0){L.push("");for(let N of K.targets){let V=N.sessionKey.length>12?`${N.sessionKey.slice(0,12)}…`:N.sessionKey,q=Math.ceil((N.cacheExpiresAt-K.generatedAt)/1000);L.push(`- \`${V}\` (${N.accountId??"main"}) — expires in ${q}s`+(N.lastWarmedAt?`, last warm ${Math.ceil((K.generatedAt-N.lastWarmedAt)/1000)}s ago`:"")+(N.backoffUntil&&N.backoffUntil>K.generatedAt?`, backoff ${Math.ceil((N.backoffUntil-K.generatedAt)/1000)}s`:""))}}L.push(""),L.push(`TTL: ${Math.round(K.ttlMs/1000)}s | Lead: ${Math.round(K.leadMs/1000)}s | Max idle warm: ${Math.round(K.maxIdleWarmMs/60000)}min`),L.push(""),L.push("Commands: `/openai-cachekeep on` | `/openai-cachekeep off` | `/openai-cachekeep sustain on` | `/openai-cachekeep sustain off` | `/openai-cachekeep HH-HH` | `/openai-cachekeep window clear` | `/openai-cachekeep subagents on` | `/openai-cachekeep subagents off` | `/openai-cachekeep`");let j=Math.max(0,...K.targets.map((N)=>N.lastWarmedAt??0));return{command:"openai-cachekeep",text:L.join(`
|
|
33
|
+
`),knobs:{enabled:G,subagents:$?.cachekeep?.subagents===!0,sustain:K.sustain,window:Z,running:K.running,tracked:K.tracked,lastWarmAt:j||void 0,generatedAt:K.generatedAt,maxIdleWarmMs:K.maxIdleWarmMs,maxSubagentIdleMs:K.maxSubagentIdleMs}}}if(Q[0]==="on"){if(!X)return{command:"openai-cachekeep",text:`## Cachekeep
|
|
34
34
|
|
|
35
|
-
Cannot start: manager not wired.`,knobs:{}};await
|
|
35
|
+
Cannot start: manager not wired.`,knobs:{}};await j0((U)=>{return U.cachekeep={...U.cachekeep??{},enabled:!0},U},S0(J)),n0.info("cachekeep enabled"),J.setCacheKeepEnabled?.(!0),X.start();let K=X.status(),Z=Math.max(0,...K.targets.map((U)=>U.lastWarmedAt??0));return{command:"openai-cachekeep",text:`## Cachekeep Enabled
|
|
36
36
|
|
|
37
|
-
TTL: ${Math.round(
|
|
37
|
+
TTL: ${Math.round(K.ttlMs/1000)}s | Max idle warm ${Math.round(K.maxIdleWarmMs/60000)}min`,knobs:{enabled:!0,subagents:$?.cachekeep?.subagents===!0,sustain:K.sustain,window:K.window,running:K.running,tracked:K.tracked,lastWarmAt:Z||void 0,generatedAt:K.generatedAt,maxIdleWarmMs:K.maxIdleWarmMs,maxSubagentIdleMs:K.maxSubagentIdleMs}}}if(Q[0]==="off")return await j0((K)=>{return K.cachekeep={...K.cachekeep??{},enabled:!1},K},S0(J)),n0.info("cachekeep disabled"),J.setCacheKeepEnabled?.(!1),X?.stop(),{command:"openai-cachekeep",text:"## Cachekeep Disabled",knobs:{enabled:!1,sustain:$?.cachekeep?.sustain===!0,running:!1,tracked:0}};if(Q[0]==="sustain"){let K=Q[1];if(Q.length!==2||K!=="on"&&K!=="off")return{command:"openai-cachekeep",text:"Usage: `/openai-cachekeep sustain on` | `/openai-cachekeep sustain off`",knobs:{}};let Z=K==="on";await j0((L)=>{return L.cachekeep={...L.cachekeep??{},sustain:Z},L},S0(J)),n0.info(`cachekeep sustain ${Z?"enabled":"disabled"}`),J.setCacheKeepSustain?.(Z);let U=X?.status();return{command:"openai-cachekeep",text:Z?`## Cachekeep Sustain Enabled
|
|
38
38
|
|
|
39
39
|
Sustain keeps main-agent sessions warming past the idle cap for this process. Clock windows still apply.
|
|
40
40
|
|
|
41
41
|
Before enabling sustain with Magic Context, set a non-expiring \`cache_ttl\` for models used by main sessions; elapsed-time cold-cache assumptions are no longer valid.`:`## Cachekeep Sustain Disabled
|
|
42
42
|
|
|
43
|
-
Main-agent sessions again stop warming at the configured idle cap.`,knobs:{enabled
|
|
43
|
+
Main-agent sessions again stop warming at the configured idle cap.`,knobs:{enabled:G,subagents:$?.cachekeep?.subagents===!0,sustain:Z,window:U?.window,running:U?.running??!1,tracked:U?.tracked??0,generatedAt:U?.generatedAt??Date.now(),maxIdleWarmMs:U?.maxIdleWarmMs??3600000,maxSubagentIdleMs:U?.maxSubagentIdleMs??1800000}}}if(Q[0]==="subagents"){let K=Q[1];if(!K||K!=="on"&&K!=="off")return{command:"openai-cachekeep",text:"Usage: `/openai-cachekeep subagents on` | `/openai-cachekeep subagents off`",knobs:{}};let Z=K==="on";await j0((L)=>{return L.cachekeep={...L.cachekeep??{},subagents:Z},L},S0(J)),n0.info(Z?"cachekeep subagent warming enabled":"cachekeep subagent warming disabled"),J.setCacheKeepSubagents?.(Z);let U=X?.status();return{command:"openai-cachekeep",text:`## Cachekeep Subagent Warming
|
|
44
44
|
|
|
45
|
-
Subagent warming: **${
|
|
45
|
+
Subagent warming: **${Z?"ON":"OFF"}**`,knobs:{enabled:G,subagents:Z,sustain:U?.sustain??$?.cachekeep?.sustain===!0,window:U?.window,running:U?.running??!1,tracked:U?.tracked??0,generatedAt:U?.generatedAt??Date.now(),maxIdleWarmMs:U?.maxIdleWarmMs??3600000,maxSubagentIdleMs:U?.maxSubagentIdleMs??1800000}}}if(Q[0]==="window"){let K=Q[1];if(K==="clear"||K==="off"){await j0((U)=>{if(U.cachekeep)delete U.cachekeep.startHour,delete U.cachekeep.endHour;return U},S0(J)),J.setCacheKeepWindow?.(void 0),n0.info("cachekeep window cleared");let Z=X?.status();return{command:"openai-cachekeep",text:`## Cachekeep Window Cleared
|
|
46
46
|
|
|
47
|
-
Cachekeep will now warm on every tick (within idle caps).`,knobs:{enabled
|
|
47
|
+
Cachekeep will now warm on every tick (within idle caps).`,knobs:{enabled:G,subagents:$?.cachekeep?.subagents===!0,sustain:Z?.sustain??$?.cachekeep?.sustain===!0,window:void 0,running:Z?.running??!1,tracked:Z?.tracked??0,generatedAt:Z?.generatedAt??Date.now(),maxIdleWarmMs:Z?.maxIdleWarmMs??3600000,maxSubagentIdleMs:Z?.maxSubagentIdleMs??1800000}}}return{command:"openai-cachekeep",text:"Usage: `/openai-cachekeep window clear`",knobs:{}}}let W=Q[0];if(W&&/^\d{1,2}-\d{1,2}$/.test(W)){let K=lU(W);if(!K.ok)return{command:"openai-cachekeep",text:`## Cachekeep Window Invalid
|
|
48
48
|
|
|
49
|
-
${
|
|
49
|
+
${K.reason}`,knobs:{}};let{startHour:Z,endHour:U}=K;await j0((N)=>{return N.cachekeep={...N.cachekeep??{},startHour:Z,endHour:U},N},S0(J)),J.setCacheKeepWindow?.({startHour:Z,endHour:U}),n0.info("cachekeep window set",{startHour:Z,endHour:U});let L=X?.status();return{command:"openai-cachekeep",text:`## Cachekeep Window Set
|
|
50
50
|
|
|
51
|
-
Warming limited to **${`${String(
|
|
52
|
-
`).trim();J=[];let W=X;if(X=void 0,!$||$==="[DONE]")return;try{let z=JSON.parse($),L=z.type??W;if(L!=="response.completed"&&L!=="response.done")return;let U=z.response;Q=VJ(U?.usage??z.usage)}catch{}};for(let $ of Y.split(/\r?\n/)){if($===""){G();continue}if($.startsWith("event:")){X=$.slice(6).trim();continue}if($.startsWith("data:"))J.push($.slice(5).trim())}return G(),Q??m9()}class c9{targets=new Map;fetchImpl;getMainToken;refreshFallback;codexResponsesUrl;log;now;ttlMs;leadMs;maxIdleWarmMs;maxSubagentIdleMs;tickIntervalMs;maxTargets;maxBytes;getWindow;getSustain;timer=null;startedAt=null;totalBytes=0;tickInFlight=!1;disposed=!1;abortController=new AbortController;logPayload(Y={}){return{pid:process.pid,...Y}}constructor(Y){this.fetchImpl=Y.fetchImpl,this.getMainToken=Y.getMainToken,this.refreshFallback=Y.refreshFallback,this.codexResponsesUrl=Y.codexResponsesUrl,this.log=Y.logger,this.now=Y.now,this.ttlMs=Y.ttlMs??Xz,this.tickIntervalMs=Y.tickIntervalMs??UJ,this.leadMs=Y.leadMs??this.tickIntervalMs+15000;let X=Y.maxIdleWarmMs??Y.maxDurationMs;this.maxIdleWarmMs=typeof X==="number"&&Number.isFinite(X)&&X>0?X:Jz;let J=Y.maxSubagentIdleMs??zJ;this.maxSubagentIdleMs=typeof J==="number"&&Number.isFinite(J)&&J>0?J:zJ,this.tickIntervalMs=Y.tickIntervalMs??UJ,this.maxTargets=Y.maxTargets??Qz,this.maxBytes=Y.maxBytes??Gz,this.getWindow=Y.getWindow,this.getSustain=Y.getSustain}track(Y,X,J,Q,G={},$=!1){this.pruneStale();let W=X.length;if(W>this.maxBytes){this.log.debug("cachekeep track skipped (body exceeds maxBytes)",this.logPayload({sessionKey:Y,bodyBytes:W,maxBytes:this.maxBytes}));return}let z=this.getWindow?.();if(z&&!WJ(z,new Date(this.now()))){this.log.debug("cachekeep track skipped (outside window)",this.logPayload({sessionKey:Y,startHour:z.startHour,endHour:z.endHour}));return}if(this.targets.has(Y)){let H=this.targets.get(Y);if(H)this.totalBytes-=H.bodyText.length;this.targets.delete(Y)}else this.log.debug("cachekeep captured target",this.logPayload({sessionKey:Y,accountId:J}));while(this.targets.size>=this.maxTargets||this.totalBytes+W>this.maxBytes&&this.targets.size>0){let H,B=Number.POSITIVE_INFINITY;for(let[Z,j]of this.targets){let O=Math.max(j.lastRealRequestAt,j.lastWarmedAt??0);if(O<B)H=Z,B=O}if(H===void 0)break;let V=this.targets.get(H);if(V)this.totalBytes-=V.bodyText.length;this.targets.delete(H)}let L=Wz(X,this.ttlMs),U={bodyText:X,accountId:J||void 0,chatgptAccountId:Q,route:"main",ttlMs:L,cacheExpiresAt:this.now()+L,warmCount:0,lastRealRequestAt:this.now(),replayHeaders:G,isSubagent:$,is56:ZJ(X)};this.targets.set(Y,U),this.totalBytes+=W,this.start()}isGpt56Subagent(Y){return Y.isSubagent===!0&&Y.is56}pruneStale(){let Y=this.now(),X=Y-this.maxIdleWarmMs,J=Y-this.maxSubagentIdleMs,Q=Y-KJ;for(let[G,$]of this.targets){let W,z;if(this.isGpt56Subagent($))W=Q,z=KJ;else W=$.isSubagent?J:X,z=$.isSubagent?this.maxSubagentIdleMs:this.maxIdleWarmMs;if(!($.isSubagent!==!0&&this.getSustain?.()===!0)&&$.lastRealRequestAt<W)this.log.debug("cachekeep pruned idle target",this.logPayload({sessionKey:G,accountId:$.accountId??"main",lastRealRequestAt:$.lastRealRequestAt,maxIdleWarmMs:z})),this.totalBytes-=$.bodyText.length,this.targets.delete(G)}}start(){if(this.disposed=!1,this.timer)return;if(this.startedAt=this.now(),this.log.debug("cachekeep started",this.logPayload({ttlMs:this.ttlMs,leadMs:this.leadMs,maxIdleWarmMs:this.maxIdleWarmMs})),this.timer=setInterval(()=>{this.tick().catch(()=>{})},this.tickIntervalMs),"unref"in this.timer)this.timer.unref()}stop(){if(this.disposed=!0,this.abortController.abort(),this.abortController=new AbortController,this.timer)clearInterval(this.timer),this.timer=null;this.startedAt=null,this.targets.clear(),this.totalBytes=0,this.log.debug("cachekeep stopped",this.logPayload())}remove(Y){let X=this.targets.get(Y);if(X)this.totalBytes-=X.bodyText.length,this.targets.delete(Y),this.log.debug("cachekeep removed target",this.logPayload({sessionKey:Y}))}status(){let Y=this.now(),X=Array.from(this.targets.entries()).map(([J,Q])=>({sessionKey:J,accountId:Q.accountId,route:Q.route,cacheExpiresAt:Q.cacheExpiresAt,lastRealRequestAt:Q.lastRealRequestAt,lastWarmedAt:Q.lastWarmedAt,backoffUntil:Q.backoffUntil,bodyBytes:Q.bodyText.length}));return{running:this.timer!=null,tracked:this.targets.size,generatedAt:Y,startedAt:this.startedAt,maxIdleWarmMs:this.maxIdleWarmMs,maxSubagentIdleMs:this.maxSubagentIdleMs,ttlMs:this.ttlMs,leadMs:this.leadMs,sustain:this.getSustain?.()===!0,window:this.getWindow?.(),targets:X}}async tick(){if(this.tickInFlight)return;this.tickInFlight=!0;try{this.pruneStale();let Y=this.getWindow?.();if(Y&&!WJ(Y,new Date(this.now())))return;let X=this.now(),J=X+this.leadMs;for(let[Q,G]of this.targets)if(G.backoffUntil&&X>=G.backoffUntil&&G.cacheExpiresAt<=J)await this.prewarm(Q,G);for(let[Q,G]of this.targets){if(G.backoffUntil&&X<G.backoffUntil)continue;if(G.cacheExpiresAt<=J)await this.prewarm(Q,G)}}finally{this.tickInFlight=!1}}async prewarm(Y,X){let J;try{if(X.accountId&&X.accountId!=="main")J=await this.refreshFallback(X.accountId);else J=await this.getMainToken()}catch(G){if(!this.disposed&&this.targets.get(Y)===X)X.backoffUntil=this.now()+f9;this.log.debug("cachekeep skip (no token)",this.logPayload({sessionKey:Y,accountId:X.accountId??"main",error:G instanceof Error?G.message:String(G)}));return}if(this.disposed||this.targets.get(Y)!==X)return;let Q={...X.replayHeaders,authorization:`Bearer ${J}`,"content-type":"application/json"};if(X.chatgptAccountId)Q["ChatGPT-Account-Id"]=X.chatgptAccountId;else delete Q["ChatGPT-Account-Id"];try{let G=$z(X.bodyText),$;try{let O=JSON.parse(G);$={warmBodyKeys:Object.keys(O),stream:O.stream,max_output_tokens:O.max_output_tokens,store:O.store,has_stream_options:"stream_options"in O,has_max_tokens:"max_tokens"in O,model:O.model}}catch{}this.log.debug("cachekeep warm request",this.logPayload({...$,headerKeys:Object.keys(Q),hasChatGptAccountId:"ChatGPT-Account-Id"in Q}));let W=s1({method:"POST",headers:Q,body:G,signal:AbortSignal.any([AbortSignal.timeout(30000),this.abortController.signal])}),z=await this.fetchImpl(this.codexResponsesUrl,W),L="";try{L=await z.text()}catch{}if(this.disposed||this.targets.get(Y)!==X)return;if(!z.ok){X.backoffUntil=this.now()+f9,this.log.warn("cachekeep failed",this.logPayload({session:Y,accountId:X.accountId??"main",status:z.status,error:`HTTP ${z.status}`,responseBody:L.slice(0,600)}));return}let U=z.headers.get("content-type")??"",H=U.includes("text/event-stream")||/(^|\n)(data:|event:)/.test(L.slice(0,200));this.log.debug("cachekeep warm response",this.logPayload({status:z.status,contentType:U,bodyLen:L.length,isSse:H}));let B=H?zz(L):Kz(L),V=hY(z.headers),Z=V.primary?.usedPercent??null,j=V.secondary?.usedPercent??null;if(this.log.debug("cachekeep fired",this.logPayload({session:Y,accountId:X.accountId??"main",input_tokens:B.input_tokens,cached_tokens:B.cached_tokens,hit_rate:B.hit_rate,output_tokens:B.output_tokens,quota_primary_pct:Z,quota_secondary_pct:j})),X.cacheExpiresAt=this.now()+X.ttlMs,X.lastWarmedAt=this.now(),X.backoffUntil=void 0,X.warmCount+=1,this.isGpt56Subagent(X)&&X.warmCount>=2){if(this.targets.get(Y)===X)this.totalBytes-=X.bodyText.length,this.targets.delete(Y);return}}catch(G){if(this.disposed||this.targets.get(Y)!==X)return;X.backoffUntil=this.now()+f9,this.log.warn("cachekeep failed",this.logPayload({session:Y,accountId:X.accountId??"main",error:G instanceof Error?G.message:String(G)}))}}}var OJ=900000,Uz=0.016666666666666666,BJ=0.000001;function p9(Y,X){for(let J of[Y?.primary?.checkedAt,Y?.checkedAt,X])if(typeof J==="number"&&Number.isFinite(J))return J;return}function l9(Y){if(Y.status===401||Y.status===403)return{action:"migrate",reason:"permanent"};if(!Y.quota)return{action:"retain",reason:"unknown"};let X=p9(Y.quota,Y.quotaCheckedAt);if(X===void 0||!Number.isFinite(X)||Y.now-X>OJ)return{action:"retain",reason:"stale"};if(Y.killswitchPasses===!1)return{action:"migrate",reason:"killswitch"};let J=u9(Y.quota).sort((Q,G)=>{let $=Q.windowMs,W=G.windowMs,z=typeof $==="number"&&Number.isFinite($),L=typeof W==="number"&&Number.isFinite(W);if(z!==L)return z?-1:1;if(z&&L)return W-$;return 0});for(let{key:Q,window:G}of J)if(Number.isFinite(G.remainingPercent)&&G.remainingPercent<=0)return{action:"migrate",reason:"exhausted",windowKey:Q,...typeof G.resetsAt==="string"?{resetsAt:G.resetsAt}:{}};if(Y.status===void 0||Y.status===0||!Number.isFinite(Y.status)||Y.status>=500&&Y.status<=599||Y.status===429)return{action:"retain",reason:"transient"};return{action:"retain",reason:"healthy"}}function Lz(Y,X,J){let Q=Math.max(0,Y.remainingPercent-X);if(Q<=0)return 0;if(!Y.resetsAt)return Q;let G=Date.parse(Y.resetsAt);if(!Number.isFinite(G)||G<=J)return Q;let $=Math.max((G-J)/3600000,Uz);return Q/$}function FJ(Y,X){if(Y<X)return-1;if(Y>X)return 1;return 0}function Hz(Y,X){if(!Y.quota)return;let J=p9(Y.quota,Y.quotaCheckedAt);if(J===void 0||X-J>OJ)return;let Q=u9(Y.quota).map(({key:$,window:W})=>{return Lz(W,Y.reservePercent[$]??0,X)}),G=Q.length>0?Math.min(...Q):0;return G>0?{candidate:Y,quotaCheckedAt:J,weight:G}:void 0}function qJ(Y){let X=Y.candidates.filter((G)=>G.killswitchPasses!==!1);if(Y.candidates.length===0)throw Error("Cannot select a sticky candidate: input.candidates is empty");if(X.length===0)return;let J=X.map((G)=>Hz(G,Y.now)).filter((G)=>G!==void 0);if(J.length>0){J.sort(($,W)=>{let z=((Y.pendingBytes.get($.candidate.accountId)??0)+Y.requestBytes)/Math.max($.weight,BJ),L=((Y.pendingBytes.get(W.candidate.accountId)??0)+Y.requestBytes)/Math.max(W.weight,BJ);return z-L||$.candidate.configuredOrder-W.candidate.configuredOrder||FJ($.candidate.accountId,W.candidate.accountId)});let G=J[0];if(G)return{accountId:G.candidate.accountId,quotaCheckedAt:G.quotaCheckedAt,source:"weighted"}}Y.onEmptyWeightedSet?.();let Q=[...X].sort((G,$)=>{let W=(G.resetCreditsApplicable??0)>0?1:0;return(($.resetCreditsApplicable??0)>0?1:0)-W||G.configuredOrder-$.configuredOrder||FJ(G.accountId,$.accountId)})[0];if(!Q)throw Error("Cannot select a sticky candidate: input.candidates is empty");return{accountId:Q.accountId,quotaCheckedAt:p9(Q.quota,Q.quotaCheckedAt),source:"mode-fallback"}}import{createHash as Nz}from"node:crypto";import{chmod as Zz,mkdir as Vz,readdir as Bz,readFile as Fz,writeFile as d9}from"node:fs/promises";import{join as MJ}from"node:path";var r9=D0("dump"),LY="x-cortexkit-openai-auth-dump-session",Oz=["http","prewarm","main"],jJ=0,gY=new Map,qz=100;function i9(Y){return Y.length<=16?Y:`${Y.slice(0,12)}…`}function EJ(Y){let X=Y.trim().replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"");if(!X)return"session-unknown";return X.length<=80?X:X.slice(0,80)}function wJ(Y){return Nz("sha256").update(Y).digest("hex")}function o9(Y){return wJ(JSON.stringify(Y))}function AJ(Y){try{let X=JSON.parse(Y);return X!=null&&typeof X==="object"&&!Array.isArray(X)?X:void 0}catch{return}}function jz(Y,X){if(Y===void 0)return null;if(Y===X)return{changed:!1,firstByte:-1,lastPreviousByte:-1,lastCurrentByte:-1,previousBytes:Y.length,currentBytes:X.length};let J=0;while(J<Y.length&&J<X.length&&Y[J]===X[J])J++;let Q=Y.length-1,G=X.length-1;while(Q>=J&&G>=J&&Y[Q]===X[G])Q--,G--;return{changed:!0,firstByte:J,lastPreviousByte:Q,lastCurrentByte:G,changedPreviousBytes:Q-J+1,changedCurrentBytes:G-J+1,previousBytes:Y.length,currentBytes:X.length}}function Dz(Y,X){if(!gY.has(Y))while(gY.size>=qz){let J=gY.keys().next().value;if(J===void 0)break;gY.delete(J)}gY.set(Y,X)}var DJ=new Set;async function Pz(Y,X,J){let Q=EJ(X),G=Oz.map(($)=>`-${Q}-${J}-${$}.body.json`);try{let W=(await Bz(Y)).filter((z)=>G.some((L)=>z.endsWith(L))).sort().pop();if(!W)return;return await Fz(MJ(Y,W),"utf8")}catch{return}}function Mz(Y){if(Y===void 0)return;return Object.fromEntries(new Headers(Y).entries())}function s9(Y){if(Array.isArray(Y))return Y.map(s9);if(Y==null||typeof Y!=="object")return Y;let X={};for(let[J,Q]of Object.entries(Y)){let G=J.toLowerCase();if(G==="authorization"||G==="chatgpt-account-id"||G==="cookie"||G==="set-cookie"){X[J]="[redacted]";continue}X[J]=s9(Q)}return X}function Ez(Y){let X=AJ(Y);if(X===void 0)return Y;let J=wz(X),Q=JSON.stringify(J);if(Q===void 0)return Y;return JSON.stringify(X)===Q?Y:Q}function wz(Y){if(!k(Y))return n9(Y);let X={};for(let[J,Q]of Object.entries(Y))X[J]=J==="tools"?PJ(Q):n9({[J]:Q})[J];return X}function Az(Y){return Y!=null&&typeof Y==="object"&&"type"in Y&&typeof Y.type==="string"?Y.type:"unknown"}function Tz(Y){let X=AJ(Y);if(!X)return{parseable:!1};let J=Array.isArray(X.input)?X.input:[],Q=Array.isArray(X.tools)?X.tools:[],G=Q.map(Az),$=X.client_metadata!=null&&typeof X.client_metadata==="object"&&!Array.isArray(X.client_metadata)?X.client_metadata:void 0;return{parseable:!0,model:typeof X.model==="string"?X.model:void 0,stream:X.stream,generate:X.generate,store:X.store,previousResponseID:typeof X.previous_response_id==="string"?X.previous_response_id:void 0,promptCacheKey:typeof X.prompt_cache_key==="string"?X.prompt_cache_key:void 0,reasoning:X.reasoning,inputCount:J.length,inputHash:o9(J),inputBytes:JSON.stringify(J).length,firstInputHash:J[0]===void 0?null:o9(J[0]),toolsCount:Q.length,toolTypes:G,toolsHash:o9(Q),hasWebSearch:G.includes("web_search"),clientMetadataKeys:$?Object.keys($).sort():[]}}async function yY(Y){let X=C0();if(!X.dump)return;jJ++;let J=Y.sessionID?.trim()||"session-unknown",Q=`${new Date().toISOString().replace(/[:.]/g,"-")}-${process.pid}-${String(jJ).padStart(5,"0")}-${EJ(J)}-${Y.transport}-${Y.phase}`,G=MJ(X.dumpDir,Q),$={body:`${G}.body.json`,metadata:`${G}.meta.json`,request:`${G}.request.json`},W=`${Y.transport}:${J}`,z=gY.get(W),L=z?"memory":void 0;if(z===void 0&&!DJ.has(W)){if(DJ.add(W),z=await Pz(X.dumpDir,J,Y.transport),z!==void 0)L="disk"}try{await Vz(X.dumpDir,{recursive:!0,mode:448}),await Zz(X.dumpDir,448).catch(()=>{});let U=Ez(Y.bodyText),H={id:Q,createdAt:new Date().toISOString(),session:i9(J),transport:Y.transport,phase:Y.phase,accountId:Y.accountId,status:Y.status,error:Y.error,bodyBytes:Y.bodyText.length,bodyHash:wJ(Y.bodyText),diff:jz(z,U),baselineSource:L,body:Tz(Y.bodyText),files:$};await Promise.all([d9($.body,U,{encoding:"utf8",mode:384}),d9($.metadata,`${JSON.stringify(H,null,2)}
|
|
53
|
-
`,{encoding:"utf8",mode:384}),
|
|
54
|
-
`,{encoding:"utf8",mode:384})]),
|
|
51
|
+
Warming limited to **${`${String(Z).padStart(2,"0")}-${String(U).padStart(2,"0")}`}** local hours.`,knobs:{enabled:G,subagents:$?.cachekeep?.subagents===!0,sustain:L?.sustain??$?.cachekeep?.sustain===!0,window:{startHour:Z,endHour:U},running:L?.running??!1,tracked:L?.tracked??0,generatedAt:L?.generatedAt??Date.now(),maxIdleWarmMs:L?.maxIdleWarmMs??3600000,maxSubagentIdleMs:L?.maxSubagentIdleMs??1800000}}}return{command:"openai-cachekeep",text:"Usage: `/openai-cachekeep`, `/openai-cachekeep on`, `/openai-cachekeep off`, `/openai-cachekeep sustain on`, `/openai-cachekeep sustain off`, `/openai-cachekeep HH-HH`, `/openai-cachekeep window clear`, `/openai-cachekeep subagents on`, `/openai-cachekeep subagents off`",knobs:{}}}var iU={"openai-killswitch":cU,"openai-dump":uU,"openai-logging":pU,"openai-cachekeep":dU};function EJ(Y,J,X){return PJ(Y,J,X,iU)}var oU=300000,nU=30000,rU=240000,sU="bg-quota-refresh",aU=120000;function tU(Y,J){return H1({name:sU,ttlMs:aU,path:Y,renew:!0,...J})}function FQ(Y,J=E1,X=()=>tU(Y.paths.configPath)){return eU(Y,J,X)}async function eU(Y,J,X){let Q;try{Q=await X()}catch{Q=void 0}if(Q===null)return[];try{return await J({...Y,respectBackoff:!0,skipFresherThanMs:rU})}finally{await Q?.release().catch(()=>{})}}class MJ{setIntervalFn;clearIntervalFn;random;onError;run;timer;tickPromise;stopped=!1;constructor(Y={}){this.setIntervalFn=Y.setIntervalFn??setInterval,this.clearIntervalFn=Y.clearIntervalFn??clearInterval,this.random=Y.random??Math.random,this.onError=Y.onError}start(Y,J=this.onError){if(this.run=Y,this.onError=J,this.stopped=!1,this.timer)return;let X=Math.round((this.random()*2-1)*nU);if(this.timer=this.setIntervalFn(()=>{let Q=this.run;if(this.stopped||!Q||this.tickPromise)return;let $=Q().catch((G)=>{try{this.onError?.(G)}catch{}}).finally(()=>{if(this.tickPromise===$)this.tickPromise=void 0});this.tickPromise=$},oU+X),"unref"in this.timer)this.timer.unref()}stop(){if(this.stopped=!0,this.run=void 0,!this.timer)return;this.clearIntervalFn(this.timer),this.timer=void 0}isStopped(){return this.stopped}}function wJ(Y){if(typeof Y!=="string")return!1;try{let J=JSON.parse(Y);return h(J)&&h(J.client_metadata)&&J.client_metadata.ws_request_header_x_openai_internal_codex_responses_lite==="true"}catch{return!1}}function AJ(Y){if(typeof Y!=="string")return Y;try{let J=JSON.parse(Y);if(!h(J)||!h(J.client_metadata))return Y;if(!(("x-codex-turn-metadata"in J.client_metadata)||("x-codex-ws-stream-request-start-ms"in J.client_metadata)||("ws_request_header_x_openai_internal_codex_responses_lite"in J.client_metadata)))return Y;let X={...J.client_metadata};return delete X["x-codex-turn-metadata"],delete X["x-codex-ws-stream-request-start-ms"],delete X.ws_request_header_x_openai_internal_codex_responses_lite,JSON.stringify({...J,client_metadata:X})}catch{return Y}}function _Y(Y){if(Y?.method?.toUpperCase()!=="POST")return Y;let J=new Headers(Y.headers);if(J.set("accept","text/event-stream"),J.set("content-type","application/json"),wJ(Y.body))J.set("x-openai-internal-codex-responses-lite","true");return{...Y,headers:J,body:AJ(Y.body)}}function PQ(Y){if(!Y.enabled||typeof Y.body!=="string")return;let J=Y.headers.has("x-parent-session-id");if(J&&!Y.includeSubagents)return;let X=Y.headers.get("session-id")??Y.headers.get("x-opencode-session")??Y.headers.get("x-session-affinity")??void 0;if(!X)return;let Q={};for(let $ of["session-id","x-session-affinity","x-parent-session-id","user-agent","version","x-codex-beta-features","x-codex-turn-metadata","x-codex-window-id","x-client-request-id","thread-id","x-openai-internal-codex-responses-lite"]){let G=Y.headers.get($);if(G)Q[$]=G}return{sessionKey:X,bodyText:Y.body,replayHeaders:Q,isSubagent:J}}function EQ(Y){let J=Number(Y?.cachekeep?.startHour),X=Number(Y?.cachekeep?.endHour);if(!Number.isInteger(J)||!Number.isInteger(X)||J<0||J>23||X<0||X>23||J===X)return;return{startHour:J,endHour:X}}function jQ(Y,J=new Date){if(!Y)return!1;let X=J.getHours();if(Y.startHour<Y.endHour)return X>=Y.startHour&&X<Y.endHour;return X>=Y.startHour||X<Y.endHour}var YZ=300000,MQ=1800000,OQ=2*MQ+900000,JZ=3600000,qQ=1800000,DQ=60000,XZ=32,QZ=8388608,RJ=600000;function wQ(Y){try{let X=JSON.parse(Y).model;if(typeof X!=="string")return!1;return X==="gpt-5.6"||X.startsWith("gpt-5.6-")}catch{return!1}}function $Z(Y){let X=JSON.parse(Y);return X.store=!1,delete X.max_output_tokens,delete X.max_tokens,delete X.max_completion_tokens,JSON.stringify(X)}function GZ(Y,J){return wQ(Y)?MQ:J}function TJ(){return{input_tokens:0,output_tokens:0,cached_tokens:0,hit_rate:null}}function AQ(Y){if(!Y||typeof Y!=="object")return TJ();let J=Y,X=Number(J.input_tokens)||Number(J.prompt_tokens)||0,Q=Number(J.output_tokens)||Number(J.completion_tokens)||0,$=J.input_tokens_details??J.prompt_tokens_details,G=Number($?.cached_tokens)||Number(J.cached_tokens)||0,W=X>0?G/X:null;return{input_tokens:X,output_tokens:Q,cached_tokens:G,hit_rate:W}}function WZ(Y){try{let J=JSON.parse(Y);return AQ(J.usage)}catch{return TJ()}}function zZ(Y){let J,X=[],Q,$=()=>{if(!X.length)return;let G=X.join(`
|
|
52
|
+
`).trim();X=[];let W=J;if(J=void 0,!G||G==="[DONE]")return;try{let K=JSON.parse(G),Z=K.type??W;if(Z!=="response.completed"&&Z!=="response.done")return;let U=K.response;Q=AQ(U?.usage??K.usage)}catch{}};for(let G of Y.split(/\r?\n/)){if(G===""){$();continue}if(G.startsWith("event:")){J=G.slice(6).trim();continue}if(G.startsWith("data:"))X.push(G.slice(5).trim())}return $(),Q??TJ()}class CJ{targets=new Map;fetchImpl;getMainToken;refreshFallback;codexResponsesUrl;log;now;ttlMs;leadMs;maxIdleWarmMs;maxSubagentIdleMs;tickIntervalMs;maxTargets;maxBytes;getWindow;getSustain;timer=null;startedAt=null;totalBytes=0;tickInFlight=!1;disposed=!1;abortController=new AbortController;logPayload(Y={}){return{pid:process.pid,...Y}}constructor(Y){this.fetchImpl=Y.fetchImpl,this.getMainToken=Y.getMainToken,this.refreshFallback=Y.refreshFallback,this.codexResponsesUrl=Y.codexResponsesUrl,this.log=Y.logger,this.now=Y.now,this.ttlMs=Y.ttlMs??YZ,this.tickIntervalMs=Y.tickIntervalMs??DQ,this.leadMs=Y.leadMs??this.tickIntervalMs+15000;let J=Y.maxIdleWarmMs??Y.maxDurationMs;this.maxIdleWarmMs=typeof J==="number"&&Number.isFinite(J)&&J>0?J:JZ;let X=Y.maxSubagentIdleMs??qQ;this.maxSubagentIdleMs=typeof X==="number"&&Number.isFinite(X)&&X>0?X:qQ,this.tickIntervalMs=Y.tickIntervalMs??DQ,this.maxTargets=Y.maxTargets??XZ,this.maxBytes=Y.maxBytes??QZ,this.getWindow=Y.getWindow,this.getSustain=Y.getSustain}track(Y,J,X,Q,$={},G=!1){this.pruneStale();let W=J.length;if(W>this.maxBytes){this.log.debug("cachekeep track skipped (body exceeds maxBytes)",this.logPayload({sessionKey:Y,bodyBytes:W,maxBytes:this.maxBytes}));return}let K=this.getWindow?.();if(K&&!jQ(K,new Date(this.now()))){this.log.debug("cachekeep track skipped (outside window)",this.logPayload({sessionKey:Y,startHour:K.startHour,endHour:K.endHour}));return}if(this.targets.has(Y)){let L=this.targets.get(Y);if(L)this.totalBytes-=L.bodyText.length;this.targets.delete(Y)}else this.log.debug("cachekeep captured target",this.logPayload({sessionKey:Y,accountId:X}));while(this.targets.size>=this.maxTargets||this.totalBytes+W>this.maxBytes&&this.targets.size>0){let L,j=Number.POSITIVE_INFINITY;for(let[V,q]of this.targets){let T=Math.max(q.lastRealRequestAt,q.lastWarmedAt??0);if(T<j)L=V,j=T}if(L===void 0)break;let N=this.targets.get(L);if(N)this.totalBytes-=N.bodyText.length;this.targets.delete(L)}let Z=GZ(J,this.ttlMs),U={bodyText:J,accountId:X||void 0,chatgptAccountId:Q,route:"main",ttlMs:Z,cacheExpiresAt:this.now()+Z,warmCount:0,lastRealRequestAt:this.now(),replayHeaders:$,isSubagent:G,is56:wQ(J)};this.targets.set(Y,U),this.totalBytes+=W,this.start()}isGpt56Subagent(Y){return Y.isSubagent===!0&&Y.is56}pruneStale(){let Y=this.now(),J=Y-this.maxIdleWarmMs,X=Y-this.maxSubagentIdleMs,Q=Y-OQ;for(let[$,G]of this.targets){let W,K;if(this.isGpt56Subagent(G))W=Q,K=OQ;else W=G.isSubagent?X:J,K=G.isSubagent?this.maxSubagentIdleMs:this.maxIdleWarmMs;if(!(G.isSubagent!==!0&&this.getSustain?.()===!0)&&G.lastRealRequestAt<W)this.log.debug("cachekeep pruned idle target",this.logPayload({sessionKey:$,accountId:G.accountId??"main",lastRealRequestAt:G.lastRealRequestAt,maxIdleWarmMs:K})),this.totalBytes-=G.bodyText.length,this.targets.delete($)}}start(){if(this.disposed=!1,this.timer)return;if(this.startedAt=this.now(),this.log.debug("cachekeep started",this.logPayload({ttlMs:this.ttlMs,leadMs:this.leadMs,maxIdleWarmMs:this.maxIdleWarmMs})),this.timer=setInterval(()=>{this.tick().catch(()=>{})},this.tickIntervalMs),"unref"in this.timer)this.timer.unref()}stop(){if(this.disposed=!0,this.abortController.abort(),this.abortController=new AbortController,this.timer)clearInterval(this.timer),this.timer=null;this.startedAt=null,this.targets.clear(),this.totalBytes=0,this.log.debug("cachekeep stopped",this.logPayload())}remove(Y){let J=this.targets.get(Y);if(J)this.totalBytes-=J.bodyText.length,this.targets.delete(Y),this.log.debug("cachekeep removed target",this.logPayload({sessionKey:Y}))}status(){let Y=this.now(),J=Array.from(this.targets.entries()).map(([X,Q])=>({sessionKey:X,accountId:Q.accountId,route:Q.route,cacheExpiresAt:Q.cacheExpiresAt,lastRealRequestAt:Q.lastRealRequestAt,lastWarmedAt:Q.lastWarmedAt,backoffUntil:Q.backoffUntil,bodyBytes:Q.bodyText.length}));return{running:this.timer!=null,tracked:this.targets.size,generatedAt:Y,startedAt:this.startedAt,maxIdleWarmMs:this.maxIdleWarmMs,maxSubagentIdleMs:this.maxSubagentIdleMs,ttlMs:this.ttlMs,leadMs:this.leadMs,sustain:this.getSustain?.()===!0,window:this.getWindow?.(),targets:J}}async tick(){if(this.tickInFlight)return;this.tickInFlight=!0;try{this.pruneStale();let Y=this.getWindow?.();if(Y&&!jQ(Y,new Date(this.now())))return;let J=this.now(),X=J+this.leadMs;for(let[Q,$]of this.targets)if($.backoffUntil&&J>=$.backoffUntil&&$.cacheExpiresAt<=X)await this.prewarm(Q,$);for(let[Q,$]of this.targets){if($.backoffUntil&&J<$.backoffUntil)continue;if($.cacheExpiresAt<=X)await this.prewarm(Q,$)}}finally{this.tickInFlight=!1}}async prewarm(Y,J){let X,Q;try{if(J.accountId&&J.accountId!=="main"){let G=await this.refreshFallback(J.accountId);if(typeof G==="string")X=G;else X=G.token,Q=G.onAuthFailure}else X=await this.getMainToken()}catch(G){if(!this.disposed&&this.targets.get(Y)===J)J.backoffUntil=this.now()+RJ;this.log.debug("cachekeep skip (no token)",this.logPayload({sessionKey:Y,accountId:J.accountId??"main",error:G instanceof Error?G.message:String(G)}));return}if(this.disposed||this.targets.get(Y)!==J)return;let $={...J.replayHeaders,authorization:`Bearer ${X}`,"content-type":"application/json"};if(J.chatgptAccountId)$["ChatGPT-Account-Id"]=J.chatgptAccountId;else delete $["ChatGPT-Account-Id"];try{let G=$Z(J.bodyText),W;try{let S=JSON.parse(G);W={warmBodyKeys:Object.keys(S),stream:S.stream,max_output_tokens:S.max_output_tokens,store:S.store,has_stream_options:"stream_options"in S,has_max_tokens:"max_tokens"in S,model:S.model}}catch{}this.log.debug("cachekeep warm request",this.logPayload({...W,headerKeys:Object.keys($),hasChatGptAccountId:"ChatGPT-Account-Id"in $}));let K=_Y({method:"POST",headers:$,body:G,signal:AbortSignal.any([AbortSignal.timeout(30000),this.abortController.signal])}),Z=await this.fetchImpl(this.codexResponsesUrl,K),U="";try{U=await Z.text()}catch{}if(this.disposed||this.targets.get(Y)!==J)return;if(!Z.ok){if(J.backoffUntil=this.now()+RJ,Z.status===401)await Q?.(Z.status);this.log.warn("cachekeep failed",this.logPayload({session:Y,accountId:J.accountId??"main",status:Z.status,error:`HTTP ${Z.status}`,responseBody:U.slice(0,600)}));return}let L=Z.headers.get("content-type")??"",j=L.includes("text/event-stream")||/(^|\n)(data:|event:)/.test(U.slice(0,200));this.log.debug("cachekeep warm response",this.logPayload({status:Z.status,contentType:L,bodyLen:U.length,isSse:j}));let N=j?zZ(U):WZ(U),V=X9(Z.headers),q=V.primary?.usedPercent??null,T=V.secondary?.usedPercent??null;if(this.log.debug("cachekeep fired",this.logPayload({session:Y,accountId:J.accountId??"main",input_tokens:N.input_tokens,cached_tokens:N.cached_tokens,hit_rate:N.hit_rate,output_tokens:N.output_tokens,quota_primary_pct:q,quota_secondary_pct:T})),J.cacheExpiresAt=this.now()+J.ttlMs,J.lastWarmedAt=this.now(),J.backoffUntil=void 0,J.warmCount+=1,this.isGpt56Subagent(J)&&J.warmCount>=2){if(this.targets.get(Y)===J)this.totalBytes-=J.bodyText.length,this.targets.delete(Y);return}}catch(G){if(this.disposed||this.targets.get(Y)!==J)return;J.backoffUntil=this.now()+RJ,this.log.warn("cachekeep failed",this.logPayload({session:Y,accountId:J.accountId??"main",error:G instanceof Error?G.message:String(G)}))}}}import{createHash as ZZ}from"node:crypto";import{isAbsolute as KZ,join as RQ}from"node:path";var UZ=B0("custody"),TQ=new Set;function _J(Y=process.env){let J=Y.CLAUSTRUM_OPENCODE_HANDLES;if(J&&KZ(J))return J;if(J&&!TQ.has(J))TQ.add(J),UZ.warn("ignoring non-absolute CLAUSTRUM_OPENCODE_HANDLES",{configuredPath:J});let X=Y.XDG_CONFIG_HOME||(Y.HOME?RQ(Y.HOME,".config"):".config");return RQ(X,"cortexkit","opencode-handles.json")}function s0(Y=_J(),J={}){return CQ(Y,J)}var IJ="openai",_Q=250,bQ=new Set;function vQ(Y){if(typeof Y.access!=="string"||typeof Y.refresh!=="string")return;let J=Buffer.from(Y.access),X=Buffer.from(Y.refresh),Q=($)=>{let G=Buffer.alloc(4);return G.writeUInt32BE($.length),G};return ZZ("sha256").update(Q(J)).update(J).update(Q(X)).update(X).digest("hex")}function hQ(Y){let J=vQ(Y);if(J)bQ.add(J)}function LZ(Y){let J=vQ(Y);return J!==void 0&&bQ.has(J)}function gQ(Y){if(!Y||typeof Y!=="object")return;let J=Y;if(J.type!=="oauth")return;return{type:"oauth",...typeof J.access==="string"?{access:J.access}:{},...typeof J.refresh==="string"?{refresh:J.refresh}:{},...typeof J.expires==="number"?{expires:J.expires}:{}}}function SY(Y){let J=gQ(Y);if(typeof J?.access!=="string"||typeof J.refresh!=="string")return;return{access:J.access,refresh:J.refresh,...typeof J.expires==="number"?{expires:J.expires}:{}}}function IY(Y){let J=gQ(Y);if(!J)return{kind:"indeterminate"};if(!k0({id:"main",type:"oauth",access:J.access??"",refresh:J.refresh??"",expires:J.expires??0,addedAt:0},IJ))return{kind:"real",oauth:J};let X=V1(IJ);if(J.access===X.access&&J.expires===X.expires)return{kind:"tombstone",oauth:J};return{kind:"empty",oauth:J}}async function IQ(Y){if(!Y.auth.get)return;return Y.auth.get({path:{id:IJ}})}async function SQ(Y){if(!Y.auth.all)return!1;return Object.keys(await Y.auth.all()).length>0}async function HZ(Y){let J=await IQ(Y.client);if(J!==void 0)return IY(J);let X=await SQ(Y.client),Q=Y.now();if(await Y.sleep(_Q),Y.now()-Q<_Q)return{kind:"indeterminate"};let $=await IQ(Y.client);if($!==void 0)return IY($);let G=await SQ(Y.client);return X&&G?{kind:"slot-absent"}:{kind:"indeterminate"}}function VZ(Y){if(Y.ok)return"present";return Y.reason==="absent"?"absent":"unreadable"}function k9(Y){let J=Q1(Y);return J?$1(J):void 0}async function kQ(Y){let J=y0(Y.manifest).get("main");if(!J)return"no_handle";if(!Y.getCredential)return"cold";try{let X=await Y.getCredential(J),Q=k9(X.access);if(Y.mainAccountId&&Q&&Q!==Y.mainAccountId)return"identity_mismatch";return"serves"}catch{return Y.isReauth?.(J)?"needs_reauth":"cold"}}function xQ(Y){return Y.kind==="real"&&LZ(Y.oauth)}async function yQ(Y){let J=await HZ(Y);if(J.kind==="indeterminate")return;let X=VZ(Y.manifest);if(J.kind==="slot-absent"){let $=await kQ(Y);return S9({mode:Y.mode,manifest:X,local:J.kind,verifiedInProcessLogin:xQ(J),vault:()=>$==="no_handle"||$==="identity_mismatch"?$:"serves"})}let Q=await kQ(Y);return S9({mode:Y.mode,manifest:X,local:J.kind,verifiedInProcessLogin:xQ(J),vault:()=>Q})}import{createHash as NZ}from"node:crypto";var dQ="claustrum-mode",c1="main-refresh",fQ=Promise.resolve();async function kJ(){let Y,J=new Promise(($)=>{Y=$}),X=fQ;fQ=X.then(()=>J),await X;let Q=!1;return{async release(){if(Q)return;Q=!0,Y()}}}async function iQ(Y){let J=Y.now()+5000;while(Y.now()<J){try{let X=await Y.getAuth();if(X?.access===Y.accessToken&&X.refresh===Y.refreshToken){await Y.onObserved?.({access:X.access,refresh:X.refresh}),await Y.release();return}}catch{}await Y.sleep(Math.max(0,Math.min(100,J-Y.now())))}Y.warn("host write not observed within 5s; lease released"),await Y.release()}function mQ(Y){return Y.accounts.filter((J)=>V0(J)&&J.enabled!==!1)}function SJ(Y,J){return Y<J?-1:Y>J?1:0}function cQ(Y,J){return[{id:"main",accountId:J?.mainAccountId,kind:"main"},...Y.map((X)=>({id:X,accountId:J?.accounts.find((Q)=>Q.id===X)?.accountId,kind:"fallback"}))].sort((X,Q)=>SJ(X.id,Q.id))}function BZ(Y){return Y.kind==="main"?c1:M1(Y.id)}function uQ(Y){return Y.access?Q9(Y.access,Y.refresh):void 0}function pQ(Y){return Object.values(Y).some((J)=>J==="new-local-family-under-claustrum"||J==="torn-read-deferred"||J.startsWith("aborted:"))}async function oQ(Y){let J=await kJ(),X=[],Q={},$=!1,G=async(W)=>{await Y.onStep?.(W)};try{if(await G("mutex-acquired"),Y.accountIds.includes("main")||new Set(Y.accountIds).size!==Y.accountIds.length)return{status:"aborted",outcomes:Q,reason:"duplicate-account-lock"};let W=await Y.acquireLock({name:dQ,renew:!0});if(!W)return{status:"aborted",outcomes:Q,reason:"mode-lock-unavailable"};X.push(W),Y.warn?.(`transition deps: ${JSON.stringify({acquireLock:typeof Y.acquireLock,withStoreTransaction:typeof Y.withStoreTransaction,readManifest:typeof Y.readManifest,preflight:typeof Y.preflight,auth:typeof Y.auth,authAll:typeof Y.auth?.all,authGet:typeof Y.auth?.get,authSet:typeof Y.auth?.set,accountIds:Y.accountIds?.length})}`);let K=cQ(Y.accountIds);Y.warn?.(`transition participants: ${K.map((Z)=>Z.id).join(",")}`);for(let Z of K){let U=await Y.acquireLock({name:BZ(Z),renew:!0});if(!U)return{status:"aborted",outcomes:Q,reason:`account-lock-unavailable:${Z.id}`};X.push(U)}return await Y.withStoreTransaction(async(Z)=>{let U=await Z.read(),L=cQ(Y.accountIds,U),j=mQ(U).map((E)=>E.id).sort(SJ),N=[...Y.accountIds].sort(SJ);if(j.length!==N.length||j.some((E,b)=>E!==N[b]))return{status:"aborted",outcomes:Q,reason:"account-roster-changed"};let V=await Y.readManifest();if(!V.ok)return{status:"aborted",outcomes:Q,reason:`manifest-${V.reason}`};let q=y0(V),T=U.claustrum?.mode==="claustrum"?U.claustrum?.transition:void 0,S=T?T.fingerprints:{fallbacks:{}},c=T?.storeGeneration??lQ(U);if(!T){Y.warn?.(`capturing main slot fingerprint; auth.get is ${typeof Y.auth?.get}`);let E=SY(await Y.auth.get({path:{id:"openai"}}));if(Y.warn?.(`main slot captured: ${E?"complete":"absent"}`),E)S.main=Q9(E.access,E.refresh);for(let b of mQ(U)){let f=uQ(b);if(f)S.fallbacks[b.id]=f}}await G("captured"),Y.warn?.(`handles resolved: isMap=${q instanceof Map} size=${q instanceof Map?q.size:"n/a"}`);for(let E of L){let b=q.get(E.id);if(Y.warn?.(`participant ${E.id}: handle=${b?"yes":"NO"}`),!b){Q[E.id]="no-handle";continue}let f=await Y.preflight({id:E.id,accountId:E.accountId,handle:b});Q[E.id]=f}if(await G("preflight"),Object.values(Q).some((E)=>E!=="ready"))return{status:"aborted",outcomes:Q,reason:"preflight-failed"};if(!T){let E=await Y.readManifest(),b=await Z.read();if(!E.ok||E.revision!==V.revision)return{status:"aborted",outcomes:Q,reason:"manifest-revision-changed"};if(lQ(b)!==c)return{status:"aborted",outcomes:Q,reason:"store-generation-changed"};await G("revalidated"),await Z.writeMode("claustrum",{manifestRevision:V.revision,storeGeneration:c,fingerprints:S}),await G("mode-written")}let _=!1;for(let E of K){if(E.kind==="main")continue;let b=await Z.read(),f=b.accounts.find((W0)=>W0.id===E.id&&W0.type==="oauth");if(f&&k0(f,"openai")){Q[E.id]="tombstoned";continue}let o=S.fallbacks[E.id];if(!f||!o||uQ(f)!==o){Q[E.id]="new-local-family-under-claustrum";continue}let t=structuredClone(b),N0=t.accounts.find((W0)=>W0.id===E.id&&W0.type==="oauth");if(!N0){Q[E.id]="new-local-family-under-claustrum";continue}Object.assign(N0,V1("openai"));try{await Z.write(t);let W0=(await Z.read()).accounts.find((O0)=>O0.id===E.id&&O0.type==="oauth");Q[E.id]=W0&&k0(W0,"openai")?"tombstoned":"aborted:post-write-readback"}catch{Q[E.id]="aborted:write-failed",_=!0;break}}if(_)return await G("material-written"),{status:"incomplete",outcomes:Q};if(Q.main=S.main?await xJ(S.main,{auth:Y.auth,warn:(E)=>{if($)return;$=!0,Y.warn?.(E)}}):"new-local-family-under-claustrum",await G("material-written"),!pQ(Q))await Z.writeMode("claustrum");return{status:pQ(Q)?"incomplete":"completed",outcomes:Q}})}finally{for(let W of X.reverse())await W.release().catch(()=>{});await J.release(),await G("mutex-released").catch(()=>{})}}async function xJ(Y,J){let X=SY(await J.auth.get({path:{id:"openai"}}));if(X&&k0({id:"main",type:"oauth",access:X.access,refresh:X.refresh,expires:X.expires??0},"openai"))return"tombstoned";if(!X||Q9(X.access,X.refresh)!==Y)return"new-local-family-under-claustrum";let Q=await J.auth.all();if(Object.keys(Q).length===0)return J.warn?.("host auth store read empty; refusing to write — possible torn read"),"torn-read-deferred";try{let $=V1("openai");await J.auth.set.bind(J.auth)({path:{id:"openai"},body:$});let W=SY(await J.auth.get({path:{id:"openai"}}));return W&&W.access===$.access&&W.refresh===$.refresh&&W.expires===$.expires?"tombstoned":"new-local-family-under-claustrum"}catch{return"aborted:write-failed"}}async function nQ(Y){let J=await Y.acquireLock({name:dQ,renew:!0});if(!J)throw Error("Claustrum mode lock unavailable");try{await Y.withStoreTransaction(async(X)=>{return await X.writeMode("local"),{status:"completed",outcomes:{}}})}finally{await J.release()}}function lQ(Y){let J=Y.accounts.filter((X)=>X.type==="oauth").map((X)=>({id:X.id,enabled:X.enabled!==!1,accountId:X.accountId??"",access:X.access??"",refresh:X.refresh,expires:X.expires??null})).sort((X,Q)=>X.id<Q.id?-1:X.id>Q.id?1:0);return NZ("sha256").update(JSON.stringify(J)).digest("hex")}var eQ=900000,FZ=0.016666666666666666,rQ=0.000001;function vJ(Y,J){for(let X of[Y?.primary?.checkedAt,Y?.checkedAt,J])if(typeof X==="number"&&Number.isFinite(X))return X;return}function hJ(Y){if(Y.status===401||Y.status===403)return{action:"migrate",reason:"permanent"};if(!Y.quota)return{action:"retain",reason:"unknown"};let J=vJ(Y.quota,Y.quotaCheckedAt);if(J===void 0||!Number.isFinite(J)||Y.now-J>eQ)return{action:"retain",reason:"stale"};if(Y.killswitchPasses===!1)return{action:"migrate",reason:"killswitch"};let X=bJ(Y.quota).sort(($,G)=>{let W=$.windowMs,K=G.windowMs,Z=typeof W==="number"&&Number.isFinite(W),U=typeof K==="number"&&Number.isFinite(K);if(Z!==U)return Z?-1:1;if(Z&&U)return K-W;return 0});for(let{key:$,window:G}of X)if(Number.isFinite(G.remainingPercent)&&G.remainingPercent<=0)return{action:"migrate",reason:"exhausted",windowKey:$,...typeof G.resetsAt==="string"?{resetsAt:G.resetsAt}:{}};let Q=tQ(Y.quota,Y.now);if(Q)return{action:"migrate",reason:"exhausted",resetsAt:Q.resetsAt};if(Y.status===void 0||Y.status===0||!Number.isFinite(Y.status)||Y.status>=500&&Y.status<=599||Y.status===429)return{action:"retain",reason:"transient"};return{action:"retain",reason:"healthy"}}function sQ(Y,J,X){let Q=Math.max(0,Y.remainingPercent-J);if(Q<=0)return 0;if(!Y.resetsAt)return Q;let $=Date.parse(Y.resetsAt);if(!Number.isFinite($)||$<=X)return Q;let G=Math.max(($-X)/3600000,FZ);return Q/G}function aQ(Y,J){if(Y<J)return-1;if(Y>J)return 1;return 0}function jZ(Y,J){if(!Y.quota)return;let X=vJ(Y.quota,Y.quotaCheckedAt);if(X===void 0||J-X>eQ)return;let Q=bJ(Y.quota).map(({key:W,window:K})=>{return sQ(K,Y.reservePercent[W]??0,J)}),$=Y.quota.spendControl;if($&&Number.isFinite($.remainingPercent))Q.push(sQ($,0,J));let G=Q.length>0?Math.min(...Q):0;return G>0?{candidate:Y,quotaCheckedAt:X,weight:G}:void 0}function Y5(Y){let J=Y.candidates.filter(($)=>$.killswitchPasses!==!1);if(Y.candidates.length===0)throw Error("Cannot select a sticky candidate: input.candidates is empty");if(J.length===0)return;let X=J.map(($)=>jZ($,Y.now)).filter(($)=>$!==void 0);if(X.length>0){X.sort((G,W)=>{let K=((Y.pendingBytes.get(G.candidate.accountId)??0)+Y.requestBytes)/Math.max(G.weight,rQ),Z=((Y.pendingBytes.get(W.candidate.accountId)??0)+Y.requestBytes)/Math.max(W.weight,rQ);return K-Z||G.candidate.configuredOrder-W.candidate.configuredOrder||aQ(G.candidate.accountId,W.candidate.accountId)});let $=X[0];if($)return{accountId:$.candidate.accountId,quotaCheckedAt:$.quotaCheckedAt,source:"weighted"}}Y.onEmptyWeightedSet?.();let Q=[...J].sort(($,G)=>{let W=($.resetCreditsApplicable??0)>0?1:0;return((G.resetCreditsApplicable??0)>0?1:0)-W||$.configuredOrder-G.configuredOrder||aQ($.accountId,G.accountId)})[0];if(!Q)throw Error("Cannot select a sticky candidate: input.candidates is empty");return{accountId:Q.accountId,quotaCheckedAt:vJ(Q.quota,Q.quotaCheckedAt),source:"mode-fallback"}}import{createHash as OZ}from"node:crypto";import{chmod as qZ,mkdir as DZ,readdir as PZ,readFile as EZ,writeFile as gJ}from"node:fs/promises";import{join as $5}from"node:path";var cJ=B0("dump"),w1="x-cortexkit-openai-auth-dump-session",MZ=["http","prewarm","main"],J5=0,$9=new Map,wZ=100;function yJ(Y){return Y.length<=16?Y:`${Y.slice(0,12)}…`}function G5(Y){let J=Y.trim().replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"");if(!J)return"session-unknown";return J.length<=80?J:J.slice(0,80)}function W5(Y){return OZ("sha256").update(Y).digest("hex")}function fJ(Y){return W5(JSON.stringify(Y))}function z5(Y){try{let J=JSON.parse(Y);return J!=null&&typeof J==="object"&&!Array.isArray(J)?J:void 0}catch{return}}function AZ(Y,J){if(Y===void 0)return null;if(Y===J)return{changed:!1,firstByte:-1,lastPreviousByte:-1,lastCurrentByte:-1,previousBytes:Y.length,currentBytes:J.length};let X=0;while(X<Y.length&&X<J.length&&Y[X]===J[X])X++;let Q=Y.length-1,$=J.length-1;while(Q>=X&&$>=X&&Y[Q]===J[$])Q--,$--;return{changed:!0,firstByte:X,lastPreviousByte:Q,lastCurrentByte:$,changedPreviousBytes:Q-X+1,changedCurrentBytes:$-X+1,previousBytes:Y.length,currentBytes:J.length}}function RZ(Y,J){if(!$9.has(Y))while($9.size>=wZ){let X=$9.keys().next().value;if(X===void 0)break;$9.delete(X)}$9.set(Y,J)}var X5=new Set;async function TZ(Y,J,X){let Q=G5(J),$=MZ.map((G)=>`-${Q}-${X}-${G}.body.json`);try{let W=(await PZ(Y)).filter((K)=>$.some((Z)=>K.endsWith(Z))).sort().pop();if(!W)return;return await EZ($5(Y,W),"utf8")}catch{return}}function CZ(Y){if(Y===void 0)return;return Object.fromEntries(new Headers(Y).entries())}function uJ(Y){if(Array.isArray(Y))return Y.map(uJ);if(Y==null||typeof Y!=="object")return Y;let J={};for(let[X,Q]of Object.entries(Y)){let $=X.toLowerCase();if($==="authorization"||$==="chatgpt-account-id"||$==="cookie"||$==="set-cookie"){J[X]="[redacted]";continue}J[X]=uJ(Q)}return J}function _Z(Y){let J=z5(Y);if(J===void 0)return Y;let X=IZ(J),Q=JSON.stringify(X);if(Q===void 0)return Y;return JSON.stringify(J)===Q?Y:Q}function IZ(Y){if(!h(Y))return mJ(Y);let J={};for(let[X,Q]of Object.entries(Y))J[X]=X==="tools"?Q5(Q):mJ({[X]:Q})[X];return J}function SZ(Y){return Y!=null&&typeof Y==="object"&&"type"in Y&&typeof Y.type==="string"?Y.type:"unknown"}function kZ(Y){let J=z5(Y);if(!J)return{parseable:!1};let X=Array.isArray(J.input)?J.input:[],Q=Array.isArray(J.tools)?J.tools:[],$=Q.map(SZ),G=J.client_metadata!=null&&typeof J.client_metadata==="object"&&!Array.isArray(J.client_metadata)?J.client_metadata:void 0;return{parseable:!0,model:typeof J.model==="string"?J.model:void 0,stream:J.stream,generate:J.generate,store:J.store,previousResponseID:typeof J.previous_response_id==="string"?J.previous_response_id:void 0,promptCacheKey:typeof J.prompt_cache_key==="string"?J.prompt_cache_key:void 0,reasoning:J.reasoning,inputCount:X.length,inputHash:fJ(X),inputBytes:JSON.stringify(X).length,firstInputHash:X[0]===void 0?null:fJ(X[0]),toolsCount:Q.length,toolTypes:$,toolsHash:fJ(Q),hasWebSearch:$.includes("web_search"),clientMetadataKeys:G?Object.keys(G).sort():[]}}async function G9(Y){let J=g0();if(!J.dump)return;J5++;let X=Y.sessionID?.trim()||"session-unknown",Q=`${new Date().toISOString().replace(/[:.]/g,"-")}-${process.pid}-${String(J5).padStart(5,"0")}-${G5(X)}-${Y.transport}-${Y.phase}`,$=$5(J.dumpDir,Q),G={body:`${$}.body.json`,metadata:`${$}.meta.json`,request:`${$}.request.json`},W=`${Y.transport}:${X}`,K=$9.get(W),Z=K?"memory":void 0;if(K===void 0&&!X5.has(W)){if(X5.add(W),K=await TZ(J.dumpDir,X,Y.transport),K!==void 0)Z="disk"}try{await DZ(J.dumpDir,{recursive:!0,mode:448}),await qZ(J.dumpDir,448).catch(()=>{});let U=_Z(Y.bodyText),L={id:Q,createdAt:new Date().toISOString(),session:yJ(X),transport:Y.transport,phase:Y.phase,accountId:Y.accountId,status:Y.status,error:Y.error,bodyBytes:Y.bodyText.length,bodyHash:W5(Y.bodyText),diff:AZ(K,U),baselineSource:Z,body:kZ(Y.bodyText),files:G};await Promise.all([gJ(G.body,U,{encoding:"utf8",mode:384}),gJ(G.metadata,`${JSON.stringify(L,null,2)}
|
|
53
|
+
`,{encoding:"utf8",mode:384}),gJ(G.request,`${JSON.stringify(uJ({url:Y.url,method:Y.method,accountId:Y.accountId,headers:CZ(Y.headers)}),null,2)}
|
|
54
|
+
`,{encoding:"utf8",mode:384})]),cJ.debug("dumped request",{id:Q,session:yJ(X),body:G.body,meta:G.metadata}),RZ(W,U)}catch(U){cJ.warn("request dump failed",{session:yJ(X),error:U instanceof Error?U.message:String(U)})}}async function N1(Y){if(!g0().dump)return;cJ.debug("diagnostic",Y)}import{tool as x9}from"@opencode-ai/plugin";var kY="ws_",Z5=new Map,L5=x9({description:"Provider-executed OpenAI web search. This tool is handled server-side by OpenAI; the local plugin records the hosted action for deterministic replay.",args:{type:x9.schema.string().optional(),query:x9.schema.string().optional(),queries:x9.schema.array(x9.schema.string()).optional()},async execute(Y){return{title:"OpenAI Web Search",output:JSON.stringify({action:Y}),metadata:{action:Y}}}});function lJ(Y){if(xZ(Y))return;if(!vZ(Y))return Y;let J=Y.item;return Z5.set(J.id,J),{...Y,item:{type:"function_call",id:J.id,call_id:J.id,name:"web_search",arguments:JSON.stringify(h(J.action)?J.action:{})}}}function H5(Y){if(!Y.body)return Y;if(!(Y.headers.get("content-type")??"").includes("text/event-stream"))return Y;return new Response(bZ(Y.body),{status:Y.status,statusText:Y.statusText,headers:Y.headers})}function V5(Y){if(!Array.isArray(Y.input))return!1;let J=!1,X=new Map,Q=[],$=new Map,G=new Map;for(let W of Y.input)if(h(W)&&typeof W.call_id==="string"&&W.call_id.startsWith(kY)){if(W.type==="function_call")$.set(W.call_id,W);else if(W.type==="function_call_output"&&typeof W.output==="string")G.set(W.call_id,W.output)}for(let W of Y.input){if(hZ(W)){X.set(W.call_id,W),J=!0;continue}if(gZ(W,X)){Q.push(pJ(W.call_id,W.output,X.get(W.call_id))),J=!0;continue}if(yZ(W)){let K=Z5.get(W.id);if(K)Q.push(pJ(W.id,K));else{let Z=$.get(W.id),U=G.get(W.id);if(Z||U)Q.push(pJ(W.id,U,Z));else Q.push(W)}J=!0;continue}Q.push(W)}if(J)Y.input=Q;return J}function xZ(Y){if(typeof Y.type==="string"&&Y.type.startsWith("response.web_search_call."))return!0;return Y.type==="response.output_item.added"&&h(Y.item)&&Y.item.type==="web_search_call"}function bZ(Y){let J=new TextDecoder,X=new TextEncoder,Q="";return Y.pipeThrough(new TransformStream({transform($,G){Q+=J.decode($,{stream:!0});let W=K5(Q);while(W){let K=Q.slice(0,W.index);Q=Q.slice(W.index+W.length);let Z=U5(K);if(Z)G.enqueue(X.encode(Z));W=K5(Q)}},flush($){if(Q+=J.decode(),!Q)return;let G=U5(Q);if(G)$.enqueue(X.encode(G))}}))}function K5(Y){let J=Y.indexOf(`
|
|
55
55
|
|
|
56
|
-
`),
|
|
56
|
+
`),X=Y.indexOf(`\r
|
|
57
57
|
\r
|
|
58
|
-
`);if(
|
|
59
|
-
`);if(!
|
|
58
|
+
`);if(J===-1)return X===-1?void 0:{index:X,length:4};if(X===-1||J<X)return{index:J,length:2};return{index:X,length:4}}function U5(Y){let J=Y.split(/\r?\n/).filter((X)=>X.startsWith("data:")).map((X)=>X.slice(5).trimStart()).join(`
|
|
59
|
+
`);if(!J)return`${Y}
|
|
60
60
|
|
|
61
|
-
`;if(
|
|
61
|
+
`;if(J==="[DONE]")return`data: [DONE]
|
|
62
62
|
|
|
63
|
-
`;try{let
|
|
63
|
+
`;try{let X=JSON.parse(J);if(!h(X))return`${Y}
|
|
64
64
|
|
|
65
|
-
`;let Q=
|
|
65
|
+
`;let Q=lJ(X);if(!Q)return"";return`data: ${JSON.stringify(Q)}
|
|
66
66
|
|
|
67
67
|
`}catch{return`${Y}
|
|
68
68
|
|
|
69
|
-
`}}function Iz(Y){return Y.type==="response.output_item.done"&&k(Y.item)&&Y.item.type==="web_search_call"&&typeof Y.item.id==="string"}function _z(Y){return k(Y)&&Y.type==="function_call"&&Y.name==="web_search"&&typeof Y.call_id==="string"&&Y.call_id.startsWith(a1)}function Sz(Y,X){return k(Y)&&Y.type==="function_call_output"&&typeof Y.call_id==="string"&&typeof Y.output==="string"&&Y.call_id.startsWith(a1)&&X.has(Y.call_id)}function kz(Y){return k(Y)&&Y.type==="item_reference"&&typeof Y.id==="string"&&Y.id.startsWith(a1)}function a9(Y,X,J){let Q=xz(X),G=k(Q?.action)?Q.action:bz(J?.arguments);return{type:"web_search_call",status:"completed",...G?{action:G}:{}}}function xz(Y){if(k(Y))return Y;if(typeof Y!=="string")return;try{let X=JSON.parse(Y);return k(X)?X:void 0}catch{return}}function bz(Y){if(k(Y))return Y;if(typeof Y!=="string")return;try{let X=JSON.parse(Y);return k(X)?X:void 0}catch{return}}import{readFile as vz}from"node:fs/promises";import{homedir as hz}from"node:os";import{join as kJ}from"node:path";var gz="https://models.dev/api.json",yz="OPENCODE_OPENAI_AUTH_MODELS_CACHE",fz="OPENCODE_MODELS_PATH",mz="OPENCODE_DISABLE_MODELS_FETCH",cz=1e4,uz=300000;function HY(Y){return Y!==null&&typeof Y==="object"&&!Array.isArray(Y)?Y:null}function xJ(Y){if(Y===void 0)return 0;return typeof Y==="number"&&Number.isFinite(Y)&&Y>=0?Y:null}function e9(Y){let{input:X,output:J}=Y;if(typeof X!=="number"||!Number.isFinite(X)||X<0)return null;if(typeof J!=="number"||!Number.isFinite(J)||J<0)return null;let Q=xJ(Y.cache_read),G=xJ(Y.cache_write);if(Q===null||G===null)return null;return{input:X,output:J,cache:{read:Q,write:G}}}function pz(Y){let X=HY(Y);if(!X)return null;let J=e9(X);if(!J)return null;let Q=J;if(Array.isArray(X.tiers)){let W=[];for(let z of X.tiers){let L=HY(z);if(!L)continue;let U=HY(L.tier),H=U?.size;if(U?.type!=="context")continue;if(typeof H!=="number"||!Number.isFinite(H)||H<=0)continue;let B=e9(L);if(!B)continue;W.push({...B,tier:{type:"context",size:H}})}if(W.length>0)Q.tiers=W}let G=HY(X.context_over_200k),$=G?e9(G):null;if($)Q.experimentalOver200K=$;return Q}function bJ(Y){let X=HY(Y),J=HY(X?.openai),Q=HY(J?.models);if(!Q)return null;let G={};for(let[$,W]of Object.entries(Q)){let z=HY(W),L=pz(z?.cost);if(L)G[$]=L}return Object.keys(G).length>0?G:null}function lz(){let Y=process.env[yz]?.trim();if(Y)return Y;let X=process.env[fz]?.trim();if(X)return X;let J=process.env.XDG_CACHE_HOME?.trim()||(process.platform==="win32"?process.env.LOCALAPPDATA?.trim():void 0)||kJ(hz(),".cache");return kJ(J,"opencode","models.json")}function dz(){let Y=process.env[mz]?.toLowerCase();return Y==="true"||Y==="1"}async function iz(){try{let Y=bJ(JSON.parse(await vz(lz(),"utf8")));if(Y)return Y}catch{}if(dz())return null;try{let Y=await fetch(gz,{signal:AbortSignal.timeout(cz)});if(!Y.ok)return null;return bJ(await Y.json())}catch{return null}}var fY;function vJ(){let Y=Date.now();if(fY&&fY.expiresAt>Y)return fY.promise;let X={expiresAt:Y+uz,promise:iz()};return fY=X,X.promise.then((J)=>{if(J===null&&fY===X)fY=void 0}),X.promise}function mY(Y){return typeof Y==="object"&&Y!==null}function oz(Y){if(Array.isArray(Y))return Y;if(mY(Y)&&Array.isArray(Y.data))return Y.data;return[]}function nz(Y){if(!mY(Y)||!mY(Y.info))return;return typeof Y.info.role==="string"?Y.info.role:void 0}function hJ(Y){if(!mY(Y)||!mY(Y.info))return null;let X=Y.info,J=mY(X.model)?X.model:void 0,Q=typeof X.agent==="string"?X.agent:void 0,G=typeof J?.providerID==="string"?J.providerID:typeof X.providerID==="string"?X.providerID:void 0,$=typeof J?.modelID==="string"?J.modelID:typeof X.modelID==="string"?X.modelID:void 0,W=typeof J?.variant==="string"?J.variant:typeof X.variant==="string"?X.variant:void 0;if(!Q&&(!G||!$)&&!W)return null;let z={};if(Q)z.agent=Q;if(G&&$)z.model={providerID:G,modelID:$};if(W)z.variant=W;return z}function gJ(Y,X){return{agent:Y.agent??X.agent,model:Y.model??X.model,variant:Y.variant??X.variant}}function yJ(Y){return Boolean(Y.agent&&Y.model&&Y.variant)}async function fJ(Y,X){if(!Y||!X)return null;let J=Y;if(typeof J.session?.messages!=="function")return null;let Q=[];try{Q=oz(await Promise.resolve(J.session.messages({path:{id:X},query:{limit:100}})))}catch{return null}if(Q.length===0)return null;let G={};for(let $=Q.length-1;$>=0;$--){if(nz(Q[$])!=="assistant")continue;let W=hJ(Q[$]);if(!W)continue;if(G=gJ(G,W),yJ(G))return G}for(let $=Q.length-1;$>=0;$--){let W=hJ(Q[$]);if(!W)continue;if(G=gJ(G,W),yJ(G))return G}if(!G.agent&&!G.model&&!G.variant)return null;return G}var NY=[],rz=1,YX=0,mJ=new Map;function XX(Y,X){if(NY.push({id:rz++,type:"open-dialog",payload:Y,sessionId:X}),NY.length>100)NY=NY.slice(NY.length-100)}function cJ(Y=0,X){let J=Date.now();if(YX=J,X!==void 0)mJ.set(X,J);let Q=(G)=>X===void 0||G.sessionId===void 0||G.sessionId===X;if(Y>0)NY=NY.filter((G)=>{if(G.id>Y)return!0;if(X===void 0)return!1;return G.sessionId!==X});return NY.filter((G)=>G.id>Y&&Q(G))}function uJ(Y){let X=Date.now();if(Y!==void 0){let J=mJ.get(Y)??0;return J>0&&X-J<3000}return YX>0&&X-YX<3000}import{randomBytes as sz,timingSafeEqual as az}from"node:crypto";import{unlink as tz}from"node:fs/promises";import{createServer as ez}from"node:http";import{join as YU}from"node:path";var pJ=D0("rpc");function XU(Y){return new Promise((X,J)=>{let Q=[],G=0;Y.on("data",($)=>{if(G+=$.length,G>1e6){Y.destroy(),J(Error("body too large"));return}Q.push($)}),Y.on("end",()=>X(Buffer.concat(Q).toString("utf8"))),Y.on("error",J)})}function JU(Y,X){if(!Y?.startsWith("Bearer "))return!1;let J=Buffer.from(Y.slice(7)),Q=Buffer.from(X);return J.length===Q.length&&az(J,Q)}async function iJ(Y){let X=sz(32).toString("hex"),J=Y.timeoutMs??90000,Q=Y.receiptTimeoutMs??2000,G=ez((z,L)=>{z.setTimeout(J,()=>{z.socket.destroy()}),$(z,L)});G.requestTimeout=Q,G.headersTimeout=Q;async function $(z,L){let U=(H,B)=>{if(L.headersSent||L.writableEnded||L.destroyed)return;L.writeHead(H,{"content-type":"application/json"}),L.end(JSON.stringify(B))};try{let H=z.url??"";if(z.method==="GET"&&H==="/health")return U(200,{ok:!0});if(z.method!=="POST"||!H.startsWith("/rpc/"))return U(404,{error:"not found"});if(!JU(z.headers.authorization,X))return U(401,{error:"unauthorized"});let B=H.slice(5),V=await XU(z),Z=JSON.parse(V||"{}");if(B==="pending-notifications"){let j=Y.drain(Number(Z.lastReceivedId??0),typeof Z.sessionId==="string"?Z.sessionId:void 0);return U(200,{messages:j})}if(B==="apply"){let j=await Y.apply(Z);return U(200,j)}return U(404,{error:"unknown method"})}catch(H){U(500,{error:H instanceof Error?H.message:String(H)})}}let W=await new Promise((z,L)=>{G.on("error",L),G.listen(0,"127.0.0.1",()=>{let U=G.address();if(U&&typeof U==="object")z(U.port);else L(Error("no port"))})});if(G.unref(),Y.sweepRoot)try{await dJ(Y.sweepRoot,Y.dir)}catch(z){pJ.warn("rpc state sweep failed",{pid:process.pid,error:z instanceof Error?z.message:String(z)})}try{await lJ(Y.dir,{port:W,token:X,pid:process.pid},{secureDir:Y.secureDir}),pJ.debug("rpc server pid",{pid:process.pid,rpcPort:W})}catch(z){throw await new Promise((L)=>G.close(()=>L())),z}return{port:W,token:X,async stop(){await new Promise((z)=>G.close(()=>z())),await tz(YU(Y.dir,`port-${process.pid}.json`)).catch(()=>{})}}}function YY(Y){return JSON.stringify(JX(Y))??"undefined"}function JX(Y){if(Array.isArray(Y))return Y.map(JX);if(!k(Y))return Y;return Object.fromEntries(Object.keys(Y).sort().map((X)=>[X,JX(Y[X])]))}function RY(){let Y=crypto.getRandomValues(new Uint8Array(16)),X=Date.now();Y[0]=X/1099511627776&255,Y[1]=X/4294967296&255,Y[2]=X/16777216&255,Y[3]=X/65536&255,Y[4]=X/256&255,Y[5]=X&255,Y[6]=(Y[6]??0)&15|112,Y[8]=(Y[8]??0)&63|128;let J=Array.from(Y,(Q)=>Q.toString(16).padStart(2,"0")).join("");return`${J.slice(0,8)}-${J.slice(8,12)}-${J.slice(12,16)}-${J.slice(16,20)}-${J.slice(20)}`}var jY={};$X(jY,{withoutInternalHeaders:()=>R4,sanitizeHttpFallbackBody:()=>y9,orderCodexBody:()=>R1,hasWebSocketResponsesLiteMetadata:()=>g9,createWebSocketFetch:()=>WV,applyTurnId:()=>E4,advanceTurn:()=>Q8,TITLE_HEADER:()=>J8,QUOTA_ACCOUNT_HEADER:()=>T9,OpenAIWebSocketPool:()=>jY,CODEX_BODY_KEY_ORDER:()=>P4});import{createHash as XV}from"node:crypto";var EQ="vercel.ai.error",QU=Symbol.for(EQ),oJ,nJ,P=class Y extends(nJ=Error,oJ=QU,nJ){constructor({name:X,message:J,cause:Q}){super(J);this[oJ]=!0,this.name=X,this.cause=Q}static isInstance(X){return Y.hasMarker(X,EQ)}static hasMarker(X,J){let Q=Symbol.for(J);return X!=null&&typeof X==="object"&&Q in X&&typeof X[Q]==="boolean"&&X[Q]===!0}},wQ="AI_APICallError",AQ=`vercel.ai.error.${wQ}`,GU=Symbol.for(AQ),rJ,sJ,z1=class extends(sJ=P,rJ=GU,sJ){constructor({message:Y,url:X,requestBodyValues:J,statusCode:Q,responseHeaders:G,responseBody:$,cause:W,isRetryable:z=Q!=null&&(Q===408||Q===409||Q===429||Q>=500),data:L}){super({name:wQ,message:Y,cause:W});this[rJ]=!0,this.url=X,this.requestBodyValues=J,this.statusCode=Q,this.responseHeaders=G,this.responseBody=$,this.isRetryable=z,this.data=L}static isInstance(Y){return P.hasMarker(Y,AQ)}},TQ="AI_EmptyResponseBodyError",RQ=`vercel.ai.error.${TQ}`,$U=Symbol.for(RQ),aJ,tJ,WU=class extends(tJ=P,aJ=$U,tJ){constructor({message:Y="Empty response body"}={}){super({name:TQ,message:Y});this[aJ]=!0}static isInstance(Y){return P.hasMarker(Y,RQ)}};function CY(Y){if(Y==null)return"unknown error";if(typeof Y==="string")return Y;if(Y instanceof Error)return Y.toString();return JSON.stringify(Y)}var CQ="AI_InvalidArgumentError",IQ=`vercel.ai.error.${CQ}`,KU=Symbol.for(IQ),eJ,YQ,_Q=class extends(YQ=P,eJ=KU,YQ){constructor({message:Y,cause:X,argument:J}){super({name:CQ,message:Y,cause:X});this[eJ]=!0,this.argument=J}static isInstance(Y){return P.hasMarker(Y,IQ)}},SQ="AI_InvalidPromptError",kQ=`vercel.ai.error.${SQ}`,zU=Symbol.for(kQ),XQ,JQ,UU=class extends(JQ=P,XQ=zU,JQ){constructor({prompt:Y,message:X,cause:J}){super({name:SQ,message:`Invalid prompt: ${X}`,cause:J});this[XQ]=!0,this.prompt=Y}static isInstance(Y){return P.hasMarker(Y,kQ)}},xQ="AI_InvalidResponseDataError",bQ=`vercel.ai.error.${xQ}`,LU=Symbol.for(bQ),QQ,GQ,HU=class extends(GQ=P,QQ=LU,GQ){constructor({data:Y,message:X=`Invalid response data: ${JSON.stringify(Y)}.`}){super({name:xQ,message:X});this[QQ]=!0,this.data=Y}static isInstance(Y){return P.hasMarker(Y,bQ)}},vQ="AI_JSONParseError",hQ=`vercel.ai.error.${vQ}`,NU=Symbol.for(hQ),$Q,WQ,t1=class extends(WQ=P,$Q=NU,WQ){constructor({text:Y,cause:X}){super({name:vQ,message:`JSON parsing failed: Text: ${Y}.
|
|
70
|
-
Error message: ${
|
|
71
|
-
Error message: ${CY(J)}`,cause:J});this[jQ]=!0,this.value=X,this.context=Q}static isInstance(X){return P.hasMarker(X,sQ)}static wrap({value:X,cause:J,context:Q}){var G,$,W;if(Y.isInstance(J)&&J.value===X&&((G=J.context)==null?void 0:G.field)===(Q==null?void 0:Q.field)&&(($=J.context)==null?void 0:$.entityName)===(Q==null?void 0:Q.entityName)&&((W=J.context)==null?void 0:W.entityId)===(Q==null?void 0:Q.entityId))return J;return new Y({value:X,cause:J,context:Q})}},aQ="AI_UnsupportedFunctionalityError",tQ=`vercel.ai.error.${aQ}`,AU=Symbol.for(tQ),PQ,MQ,TU=class extends(MQ=P,PQ=AU,MQ){constructor({functionality:Y,message:X=`'${Y}' functionality not supported.`}){super({name:aQ,message:X});this[PQ]=!0,this.functionality=Y}static isInstance(Y){return P.hasMarker(Y,tQ)}};var oF=Object.freeze({status:"aborted"});function q(Y,X,J){function Q(z,L){var U;Object.defineProperty(z,"_zod",{value:z._zod??{},enumerable:!1}),(U=z._zod).traits??(U.traits=new Set),z._zod.traits.add(Y),X(z,L);for(let H in W.prototype)if(!(H in z))Object.defineProperty(z,H,{value:W.prototype[H].bind(z)});z._zod.constr=W,z._zod.def=L}let G=J?.Parent??Object;class $ extends G{}Object.defineProperty($,"name",{value:Y});function W(z){var L;let U=J?.Parent?new $:this;Q(U,z),(L=U._zod).deferred??(L.deferred=[]);for(let H of U._zod.deferred)H();return U}return Object.defineProperty(W,"init",{value:Q}),Object.defineProperty(W,Symbol.hasInstance,{value:(z)=>{if(J?.Parent&&z instanceof J.Parent)return!0;return z?._zod?.traits?.has(Y)}}),Object.defineProperty(W,"name",{value:Y}),W}var nF=Symbol("zod_brand");class XY extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class U1 extends Error{constructor(Y){super(`Encountered unidirectional transform during encode: ${Y}`);this.name="ZodEncodeError"}}var e1={};function o0(Y){if(Y)Object.assign(e1,Y);return e1}var d={};$X(d,{unwrapMessage:()=>L1,uint8ArrayToHex:()=>tU,uint8ArrayToBase64url:()=>sU,uint8ArrayToBase64:()=>W5,stringifyPrimitive:()=>J5,shallowClone:()=>Y5,safeExtend:()=>lU,required:()=>oU,randomString:()=>gU,propertyKeyTypes:()=>zX,promiseAllObject:()=>hU,primitiveTypes:()=>X5,prefixIssues:()=>QY,pick:()=>cU,partial:()=>iU,optionalKeys:()=>UX,omit:()=>uU,objectClone:()=>xU,numKeys:()=>yU,nullish:()=>N1,normalizeParams:()=>y,mergeDefs:()=>VY,merge:()=>dU,jsonStringifyReplacer:()=>cY,joinValues:()=>kU,issue:()=>pY,isPlainObject:()=>BY,isObject:()=>IY,hexToUint8Array:()=>aU,getSizableOrigin:()=>G5,getParsedType:()=>fU,getLengthableOrigin:()=>V1,getEnumValues:()=>H1,getElementAtPath:()=>vU,floatSafeRemainder:()=>WX,finalizeIssue:()=>f0,extend:()=>pU,escapeRegex:()=>JY,esc:()=>Y9,defineLazy:()=>o,createTransparentProxy:()=>mU,cloneDef:()=>bU,clone:()=>y0,cleanRegex:()=>Z1,cleanEnum:()=>nU,captureStackTrace:()=>X9,cached:()=>uY,base64urlToUint8Array:()=>rU,base64ToUint8Array:()=>$5,assignProp:()=>ZY,assertNotEqual:()=>CU,assertNever:()=>_U,assertIs:()=>IU,assertEqual:()=>RU,assert:()=>SU,allowsEval:()=>KX,aborted:()=>FY,NUMBER_FORMAT_RANGES:()=>LX,Class:()=>K5,BIGINT_FORMAT_RANGES:()=>Q5});function RU(Y){return Y}function CU(Y){return Y}function IU(Y){}function _U(Y){throw Error()}function SU(Y){}function H1(Y){let X=Object.values(Y).filter((Q)=>typeof Q==="number");return Object.entries(Y).filter(([Q,G])=>X.indexOf(+Q)===-1).map(([Q,G])=>G)}function kU(Y,X="|"){return Y.map((J)=>J5(J)).join(X)}function cY(Y,X){if(typeof X==="bigint")return X.toString();return X}function uY(Y){return{get value(){{let J=Y();return Object.defineProperty(this,"value",{value:J}),J}throw Error("cached value already set")}}}function N1(Y){return Y===null||Y===void 0}function Z1(Y){let X=Y.startsWith("^")?1:0,J=Y.endsWith("$")?Y.length-1:Y.length;return Y.slice(X,J)}function WX(Y,X){let J=(Y.toString().split(".")[1]||"").length,Q=X.toString(),G=(Q.split(".")[1]||"").length;if(G===0&&/\d?e-\d?/.test(Q)){let L=Q.match(/\d?e-(\d?)/);if(L?.[1])G=Number.parseInt(L[1])}let $=J>G?J:G,W=Number.parseInt(Y.toFixed($).replace(".","")),z=Number.parseInt(X.toFixed($).replace(".",""));return W%z/10**$}var eQ=Symbol("evaluating");function o(Y,X,J){let Q=void 0;Object.defineProperty(Y,X,{get(){if(Q===eQ)return;if(Q===void 0)Q=eQ,Q=J();return Q},set(G){Object.defineProperty(Y,X,{value:G})},configurable:!0})}function xU(Y){return Object.create(Object.getPrototypeOf(Y),Object.getOwnPropertyDescriptors(Y))}function ZY(Y,X,J){Object.defineProperty(Y,X,{value:J,writable:!0,enumerable:!0,configurable:!0})}function VY(...Y){let X={};for(let J of Y){let Q=Object.getOwnPropertyDescriptors(J);Object.assign(X,Q)}return Object.defineProperties({},X)}function bU(Y){return VY(Y._zod.def)}function vU(Y,X){if(!X)return Y;return X.reduce((J,Q)=>J?.[Q],Y)}function hU(Y){let X=Object.keys(Y),J=X.map((Q)=>Y[Q]);return Promise.all(J).then((Q)=>{let G={};for(let $=0;$<X.length;$++)G[X[$]]=Q[$];return G})}function gU(Y=10){let J="";for(let Q=0;Q<Y;Q++)J+="abcdefghijklmnopqrstuvwxyz"[Math.floor(Math.random()*26)];return J}function Y9(Y){return JSON.stringify(Y)}var X9="captureStackTrace"in Error?Error.captureStackTrace:(...Y)=>{};function IY(Y){return typeof Y==="object"&&Y!==null&&!Array.isArray(Y)}var KX=uY(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(Y){return!1}});function BY(Y){if(IY(Y)===!1)return!1;let X=Y.constructor;if(X===void 0)return!0;let J=X.prototype;if(IY(J)===!1)return!1;if(Object.prototype.hasOwnProperty.call(J,"isPrototypeOf")===!1)return!1;return!0}function Y5(Y){if(BY(Y))return{...Y};if(Array.isArray(Y))return[...Y];return Y}function yU(Y){let X=0;for(let J in Y)if(Object.prototype.hasOwnProperty.call(Y,J))X++;return X}var fU=(Y)=>{let X=typeof Y;switch(X){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(Y)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":if(Array.isArray(Y))return"array";if(Y===null)return"null";if(Y.then&&typeof Y.then==="function"&&Y.catch&&typeof Y.catch==="function")return"promise";if(typeof Map<"u"&&Y instanceof Map)return"map";if(typeof Set<"u"&&Y instanceof Set)return"set";if(typeof Date<"u"&&Y instanceof Date)return"date";if(typeof File<"u"&&Y instanceof File)return"file";return"object";default:throw Error(`Unknown data type: ${X}`)}},zX=new Set(["string","number","symbol"]),X5=new Set(["string","number","bigint","boolean","symbol","undefined"]);function JY(Y){return Y.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function y0(Y,X,J){let Q=new Y._zod.constr(X??Y._zod.def);if(!X||J?.parent)Q._zod.parent=Y;return Q}function y(Y){let X=Y;if(!X)return{};if(typeof X==="string")return{error:()=>X};if(X?.message!==void 0){if(X?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");X.error=X.message}if(delete X.message,typeof X.error==="string")return{...X,error:()=>X.error};return X}function mU(Y){let X;return new Proxy({},{get(J,Q,G){return X??(X=Y()),Reflect.get(X,Q,G)},set(J,Q,G,$){return X??(X=Y()),Reflect.set(X,Q,G,$)},has(J,Q){return X??(X=Y()),Reflect.has(X,Q)},deleteProperty(J,Q){return X??(X=Y()),Reflect.deleteProperty(X,Q)},ownKeys(J){return X??(X=Y()),Reflect.ownKeys(X)},getOwnPropertyDescriptor(J,Q){return X??(X=Y()),Reflect.getOwnPropertyDescriptor(X,Q)},defineProperty(J,Q,G){return X??(X=Y()),Reflect.defineProperty(X,Q,G)}})}function J5(Y){if(typeof Y==="bigint")return Y.toString()+"n";if(typeof Y==="string")return`"${Y}"`;return`${Y}`}function UX(Y){return Object.keys(Y).filter((X)=>{return Y[X]._zod.optin==="optional"&&Y[X]._zod.optout==="optional"})}var LX={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-340282346638528860000000000000000000000,340282346638528860000000000000000000000],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},Q5={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function cU(Y,X){let J=Y._zod.def,Q=VY(Y._zod.def,{get shape(){let G={};for(let $ in X){if(!($ in J.shape))throw Error(`Unrecognized key: "${$}"`);if(!X[$])continue;G[$]=J.shape[$]}return ZY(this,"shape",G),G},checks:[]});return y0(Y,Q)}function uU(Y,X){let J=Y._zod.def,Q=VY(Y._zod.def,{get shape(){let G={...Y._zod.def.shape};for(let $ in X){if(!($ in J.shape))throw Error(`Unrecognized key: "${$}"`);if(!X[$])continue;delete G[$]}return ZY(this,"shape",G),G},checks:[]});return y0(Y,Q)}function pU(Y,X){if(!BY(X))throw Error("Invalid input to extend: expected a plain object");let J=Y._zod.def.checks;if(J&&J.length>0)throw Error("Object schemas containing refinements cannot be extended. Use `.safeExtend()` instead.");let G=VY(Y._zod.def,{get shape(){let $={...Y._zod.def.shape,...X};return ZY(this,"shape",$),$},checks:[]});return y0(Y,G)}function lU(Y,X){if(!BY(X))throw Error("Invalid input to safeExtend: expected a plain object");let J={...Y._zod.def,get shape(){let Q={...Y._zod.def.shape,...X};return ZY(this,"shape",Q),Q},checks:Y._zod.def.checks};return y0(Y,J)}function dU(Y,X){let J=VY(Y._zod.def,{get shape(){let Q={...Y._zod.def.shape,...X._zod.def.shape};return ZY(this,"shape",Q),Q},get catchall(){return X._zod.def.catchall},checks:[]});return y0(Y,J)}function iU(Y,X,J){let Q=VY(X._zod.def,{get shape(){let G=X._zod.def.shape,$={...G};if(J)for(let W in J){if(!(W in G))throw Error(`Unrecognized key: "${W}"`);if(!J[W])continue;$[W]=Y?new Y({type:"optional",innerType:G[W]}):G[W]}else for(let W in G)$[W]=Y?new Y({type:"optional",innerType:G[W]}):G[W];return ZY(this,"shape",$),$},checks:[]});return y0(X,Q)}function oU(Y,X,J){let Q=VY(X._zod.def,{get shape(){let G=X._zod.def.shape,$={...G};if(J)for(let W in J){if(!(W in $))throw Error(`Unrecognized key: "${W}"`);if(!J[W])continue;$[W]=new Y({type:"nonoptional",innerType:G[W]})}else for(let W in G)$[W]=new Y({type:"nonoptional",innerType:G[W]});return ZY(this,"shape",$),$},checks:[]});return y0(X,Q)}function FY(Y,X=0){if(Y.aborted===!0)return!0;for(let J=X;J<Y.issues.length;J++)if(Y.issues[J]?.continue!==!0)return!0;return!1}function QY(Y,X){return X.map((J)=>{var Q;return(Q=J).path??(Q.path=[]),J.path.unshift(Y),J})}function L1(Y){return typeof Y==="string"?Y:Y?.message}function f0(Y,X,J){let Q={...Y,path:Y.path??[]};if(!Y.message){let G=L1(Y.inst?._zod.def?.error?.(Y))??L1(X?.error?.(Y))??L1(J.customError?.(Y))??L1(J.localeError?.(Y))??"Invalid input";Q.message=G}if(delete Q.inst,delete Q.continue,!X?.reportInput)delete Q.input;return Q}function G5(Y){if(Y instanceof Set)return"set";if(Y instanceof Map)return"map";if(Y instanceof File)return"file";return"unknown"}function V1(Y){if(Array.isArray(Y))return"array";if(typeof Y==="string")return"string";return"unknown"}function pY(...Y){let[X,J,Q]=Y;if(typeof X==="string")return{message:X,code:"custom",input:J,inst:Q};return{...X}}function nU(Y){return Object.entries(Y).filter(([X,J])=>{return Number.isNaN(Number.parseInt(X,10))}).map((X)=>X[1])}function $5(Y){let X=atob(Y),J=new Uint8Array(X.length);for(let Q=0;Q<X.length;Q++)J[Q]=X.charCodeAt(Q);return J}function W5(Y){let X="";for(let J=0;J<Y.length;J++)X+=String.fromCharCode(Y[J]);return btoa(X)}function rU(Y){let X=Y.replace(/-/g,"+").replace(/_/g,"/"),J="=".repeat((4-X.length%4)%4);return $5(X+J)}function sU(Y){return W5(Y).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function aU(Y){let X=Y.replace(/^0x/,"");if(X.length%2!==0)throw Error("Invalid hex string length");let J=new Uint8Array(X.length/2);for(let Q=0;Q<X.length;Q+=2)J[Q/2]=Number.parseInt(X.slice(Q,Q+2),16);return J}function tU(Y){return Array.from(Y).map((X)=>X.toString(16).padStart(2,"0")).join("")}class K5{constructor(...Y){}}var z5=(Y,X)=>{Y.name="$ZodError",Object.defineProperty(Y,"_zod",{value:Y._zod,enumerable:!1}),Object.defineProperty(Y,"issues",{value:X,enumerable:!1}),Y.message=JSON.stringify(X,cY,2),Object.defineProperty(Y,"toString",{value:()=>Y.message,enumerable:!1})},J9=q("$ZodError",z5),HX=q("$ZodError",z5,{Parent:Error});function U5(Y,X=(J)=>J.message){let J={},Q=[];for(let G of Y.issues)if(G.path.length>0)J[G.path[0]]=J[G.path[0]]||[],J[G.path[0]].push(X(G));else Q.push(X(G));return{formErrors:Q,fieldErrors:J}}function L5(Y,X){let J=X||function($){return $.message},Q={_errors:[]},G=($)=>{for(let W of $.issues)if(W.code==="invalid_union"&&W.errors.length)W.errors.map((z)=>G({issues:z}));else if(W.code==="invalid_key")G({issues:W.issues});else if(W.code==="invalid_element")G({issues:W.issues});else if(W.path.length===0)Q._errors.push(J(W));else{let z=Q,L=0;while(L<W.path.length){let U=W.path[L];if(L!==W.path.length-1)z[U]=z[U]||{_errors:[]};else z[U]=z[U]||{_errors:[]},z[U]._errors.push(J(W));z=z[U],L++}}};return G(Y),Q}var Q9=(Y)=>(X,J,Q,G)=>{let $=Q?Object.assign(Q,{async:!1}):{async:!1},W=X._zod.run({value:J,issues:[]},$);if(W instanceof Promise)throw new XY;if(W.issues.length){let z=new(G?.Err??Y)(W.issues.map((L)=>f0(L,$,o0())));throw X9(z,G?.callee),z}return W.value};var G9=(Y)=>async(X,J,Q,G)=>{let $=Q?Object.assign(Q,{async:!0}):{async:!0},W=X._zod.run({value:J,issues:[]},$);if(W instanceof Promise)W=await W;if(W.issues.length){let z=new(G?.Err??Y)(W.issues.map((L)=>f0(L,$,o0())));throw X9(z,G?.callee),z}return W.value};var B1=(Y)=>(X,J,Q)=>{let G=Q?{...Q,async:!1}:{async:!1},$=X._zod.run({value:J,issues:[]},G);if($ instanceof Promise)throw new XY;return $.issues.length?{success:!1,error:new(Y??J9)($.issues.map((W)=>f0(W,G,o0())))}:{success:!0,data:$.value}},H5=B1(HX),F1=(Y)=>async(X,J,Q)=>{let G=Q?Object.assign(Q,{async:!0}):{async:!0},$=X._zod.run({value:J,issues:[]},G);if($ instanceof Promise)$=await $;return $.issues.length?{success:!1,error:new Y($.issues.map((W)=>f0(W,G,o0())))}:{success:!0,data:$.value}},N5=F1(HX),Z5=(Y)=>(X,J,Q)=>{let G=Q?Object.assign(Q,{direction:"backward"}):{direction:"backward"};return Q9(Y)(X,J,G)};var V5=(Y)=>(X,J,Q)=>{return Q9(Y)(X,J,Q)};var B5=(Y)=>async(X,J,Q)=>{let G=Q?Object.assign(Q,{direction:"backward"}):{direction:"backward"};return G9(Y)(X,J,G)};var F5=(Y)=>async(X,J,Q)=>{return G9(Y)(X,J,Q)};var O5=(Y)=>(X,J,Q)=>{let G=Q?Object.assign(Q,{direction:"backward"}):{direction:"backward"};return B1(Y)(X,J,G)};var q5=(Y)=>(X,J,Q)=>{return B1(Y)(X,J,Q)};var j5=(Y)=>async(X,J,Q)=>{let G=Q?Object.assign(Q,{direction:"backward"}):{direction:"backward"};return F1(Y)(X,J,G)};var D5=(Y)=>async(X,J,Q)=>{return F1(Y)(X,J,Q)};var P5=/^[cC][^\s-]{8,}$/,M5=/^[0-9a-z]+$/,E5=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,w5=/^[0-9a-vA-V]{20}$/,A5=/^[A-Za-z0-9]{27}$/,T5=/^[a-zA-Z0-9_-]{21}$/,R5=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var C5=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,NX=(Y)=>{if(!Y)return/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${Y}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`)};var I5=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;function _5(){return new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")}var S5=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,k5=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,x5=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,b5=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,v5=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,ZX=/^[A-Za-z0-9_-]*$/,h5=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/;var g5=/^\+(?:[0-9]){6,14}[0-9]$/,y5="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",f5=new RegExp(`^${y5}$`);function m5(Y){return typeof Y.precision==="number"?Y.precision===-1?"(?:[01]\\d|2[0-3]):[0-5]\\d":Y.precision===0?"(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d":`(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{${Y.precision}}`:"(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?"}function c5(Y){return new RegExp(`^${m5(Y)}$`)}function u5(Y){let X=m5({precision:Y.precision}),J=["Z"];if(Y.local)J.push("");if(Y.offset)J.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let Q=`${X}(?:${J.join("|")})`;return new RegExp(`^${y5}T(?:${Q})$`)}var p5=(Y)=>{let X=Y?`[\\s\\S]{${Y?.minimum??0},${Y?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${X}$`)};var l5=/^-?\d+$/,d5=/^-?\d+(?:\.\d+)?/,i5=/^(?:true|false)$/i,o5=/^null$/i;var n5=/^[^A-Z]*$/,r5=/^[^a-z]*$/;var q0=q("$ZodCheck",(Y,X)=>{var J;Y._zod??(Y._zod={}),Y._zod.def=X,(J=Y._zod).onattach??(J.onattach=[])}),s5={number:"number",bigint:"bigint",object:"date"},VX=q("$ZodCheckLessThan",(Y,X)=>{q0.init(Y,X);let J=s5[typeof X.value];Y._zod.onattach.push((Q)=>{let G=Q._zod.bag,$=(X.inclusive?G.maximum:G.exclusiveMaximum)??Number.POSITIVE_INFINITY;if(X.value<$)if(X.inclusive)G.maximum=X.value;else G.exclusiveMaximum=X.value}),Y._zod.check=(Q)=>{if(X.inclusive?Q.value<=X.value:Q.value<X.value)return;Q.issues.push({origin:J,code:"too_big",maximum:X.value,input:Q.value,inclusive:X.inclusive,inst:Y,continue:!X.abort})}}),BX=q("$ZodCheckGreaterThan",(Y,X)=>{q0.init(Y,X);let J=s5[typeof X.value];Y._zod.onattach.push((Q)=>{let G=Q._zod.bag,$=(X.inclusive?G.minimum:G.exclusiveMinimum)??Number.NEGATIVE_INFINITY;if(X.value>$)if(X.inclusive)G.minimum=X.value;else G.exclusiveMinimum=X.value}),Y._zod.check=(Q)=>{if(X.inclusive?Q.value>=X.value:Q.value>X.value)return;Q.issues.push({origin:J,code:"too_small",minimum:X.value,input:Q.value,inclusive:X.inclusive,inst:Y,continue:!X.abort})}}),a5=q("$ZodCheckMultipleOf",(Y,X)=>{q0.init(Y,X),Y._zod.onattach.push((J)=>{var Q;(Q=J._zod.bag).multipleOf??(Q.multipleOf=X.value)}),Y._zod.check=(J)=>{if(typeof J.value!==typeof X.value)throw Error("Cannot mix number and bigint in multiple_of check.");if(typeof J.value==="bigint"?J.value%X.value===BigInt(0):WX(J.value,X.value)===0)return;J.issues.push({origin:typeof J.value,code:"not_multiple_of",divisor:X.value,input:J.value,inst:Y,continue:!X.abort})}}),t5=q("$ZodCheckNumberFormat",(Y,X)=>{q0.init(Y,X),X.format=X.format||"float64";let J=X.format?.includes("int"),Q=J?"int":"number",[G,$]=LX[X.format];Y._zod.onattach.push((W)=>{let z=W._zod.bag;if(z.format=X.format,z.minimum=G,z.maximum=$,J)z.pattern=l5}),Y._zod.check=(W)=>{let z=W.value;if(J){if(!Number.isInteger(z)){W.issues.push({expected:Q,format:X.format,code:"invalid_type",continue:!1,input:z,inst:Y});return}if(!Number.isSafeInteger(z)){if(z>0)W.issues.push({input:z,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:Y,origin:Q,continue:!X.abort});else W.issues.push({input:z,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:Y,origin:Q,continue:!X.abort});return}}if(z<G)W.issues.push({origin:"number",input:z,code:"too_small",minimum:G,inclusive:!0,inst:Y,continue:!X.abort});if(z>$)W.issues.push({origin:"number",input:z,code:"too_big",maximum:$,inst:Y})}});var e5=q("$ZodCheckMaxLength",(Y,X)=>{var J;q0.init(Y,X),(J=Y._zod.def).when??(J.when=(Q)=>{let G=Q.value;return!N1(G)&&G.length!==void 0}),Y._zod.onattach.push((Q)=>{let G=Q._zod.bag.maximum??Number.POSITIVE_INFINITY;if(X.maximum<G)Q._zod.bag.maximum=X.maximum}),Y._zod.check=(Q)=>{let G=Q.value;if(G.length<=X.maximum)return;let W=V1(G);Q.issues.push({origin:W,code:"too_big",maximum:X.maximum,inclusive:!0,input:G,inst:Y,continue:!X.abort})}}),YG=q("$ZodCheckMinLength",(Y,X)=>{var J;q0.init(Y,X),(J=Y._zod.def).when??(J.when=(Q)=>{let G=Q.value;return!N1(G)&&G.length!==void 0}),Y._zod.onattach.push((Q)=>{let G=Q._zod.bag.minimum??Number.NEGATIVE_INFINITY;if(X.minimum>G)Q._zod.bag.minimum=X.minimum}),Y._zod.check=(Q)=>{let G=Q.value;if(G.length>=X.minimum)return;let W=V1(G);Q.issues.push({origin:W,code:"too_small",minimum:X.minimum,inclusive:!0,input:G,inst:Y,continue:!X.abort})}}),XG=q("$ZodCheckLengthEquals",(Y,X)=>{var J;q0.init(Y,X),(J=Y._zod.def).when??(J.when=(Q)=>{let G=Q.value;return!N1(G)&&G.length!==void 0}),Y._zod.onattach.push((Q)=>{let G=Q._zod.bag;G.minimum=X.length,G.maximum=X.length,G.length=X.length}),Y._zod.check=(Q)=>{let G=Q.value,$=G.length;if($===X.length)return;let W=V1(G),z=$>X.length;Q.issues.push({origin:W,...z?{code:"too_big",maximum:X.length}:{code:"too_small",minimum:X.length},inclusive:!0,exact:!0,input:Q.value,inst:Y,continue:!X.abort})}}),O1=q("$ZodCheckStringFormat",(Y,X)=>{var J,Q;if(q0.init(Y,X),Y._zod.onattach.push((G)=>{let $=G._zod.bag;if($.format=X.format,X.pattern)$.patterns??($.patterns=new Set),$.patterns.add(X.pattern)}),X.pattern)(J=Y._zod).check??(J.check=(G)=>{if(X.pattern.lastIndex=0,X.pattern.test(G.value))return;G.issues.push({origin:"string",code:"invalid_format",format:X.format,input:G.value,...X.pattern?{pattern:X.pattern.toString()}:{},inst:Y,continue:!X.abort})});else(Q=Y._zod).check??(Q.check=()=>{})}),JG=q("$ZodCheckRegex",(Y,X)=>{O1.init(Y,X),Y._zod.check=(J)=>{if(X.pattern.lastIndex=0,X.pattern.test(J.value))return;J.issues.push({origin:"string",code:"invalid_format",format:"regex",input:J.value,pattern:X.pattern.toString(),inst:Y,continue:!X.abort})}}),QG=q("$ZodCheckLowerCase",(Y,X)=>{X.pattern??(X.pattern=n5),O1.init(Y,X)}),GG=q("$ZodCheckUpperCase",(Y,X)=>{X.pattern??(X.pattern=r5),O1.init(Y,X)}),$G=q("$ZodCheckIncludes",(Y,X)=>{q0.init(Y,X);let J=JY(X.includes),Q=new RegExp(typeof X.position==="number"?`^.{${X.position}}${J}`:J);X.pattern=Q,Y._zod.onattach.push((G)=>{let $=G._zod.bag;$.patterns??($.patterns=new Set),$.patterns.add(Q)}),Y._zod.check=(G)=>{if(G.value.includes(X.includes,X.position))return;G.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:X.includes,input:G.value,inst:Y,continue:!X.abort})}}),WG=q("$ZodCheckStartsWith",(Y,X)=>{q0.init(Y,X);let J=new RegExp(`^${JY(X.prefix)}.*`);X.pattern??(X.pattern=J),Y._zod.onattach.push((Q)=>{let G=Q._zod.bag;G.patterns??(G.patterns=new Set),G.patterns.add(J)}),Y._zod.check=(Q)=>{if(Q.value.startsWith(X.prefix))return;Q.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:X.prefix,input:Q.value,inst:Y,continue:!X.abort})}}),KG=q("$ZodCheckEndsWith",(Y,X)=>{q0.init(Y,X);let J=new RegExp(`.*${JY(X.suffix)}$`);X.pattern??(X.pattern=J),Y._zod.onattach.push((Q)=>{let G=Q._zod.bag;G.patterns??(G.patterns=new Set),G.patterns.add(J)}),Y._zod.check=(Q)=>{if(Q.value.endsWith(X.suffix))return;Q.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:X.suffix,input:Q.value,inst:Y,continue:!X.abort})}});var zG=q("$ZodCheckOverwrite",(Y,X)=>{q0.init(Y,X),Y._zod.check=(J)=>{J.value=X.tx(J.value)}});class FX{constructor(Y=[]){if(this.content=[],this.indent=0,this)this.args=Y}indented(Y){this.indent+=1,Y(this),this.indent-=1}write(Y){if(typeof Y==="function"){Y(this,{execution:"sync"}),Y(this,{execution:"async"});return}let J=Y.split(`
|
|
72
|
-
`).filter((
|
|
73
|
-
`))}}var
|
|
74
|
-
if (${
|
|
75
|
-
payload.issues = payload.issues.concat(${
|
|
69
|
+
`}}function vZ(Y){return Y.type==="response.output_item.done"&&h(Y.item)&&Y.item.type==="web_search_call"&&typeof Y.item.id==="string"}function hZ(Y){return h(Y)&&Y.type==="function_call"&&Y.name==="web_search"&&typeof Y.call_id==="string"&&Y.call_id.startsWith(kY)}function gZ(Y,J){return h(Y)&&Y.type==="function_call_output"&&typeof Y.call_id==="string"&&typeof Y.output==="string"&&Y.call_id.startsWith(kY)&&J.has(Y.call_id)}function yZ(Y){return h(Y)&&Y.type==="item_reference"&&typeof Y.id==="string"&&Y.id.startsWith(kY)}function pJ(Y,J,X){let Q=fZ(J),$=h(Q?.action)?Q.action:mZ(X?.arguments);return{type:"web_search_call",status:"completed",...$?{action:$}:{}}}function fZ(Y){if(h(Y))return Y;if(typeof Y!=="string")return;try{let J=JSON.parse(Y);return h(J)?J:void 0}catch{return}}function mZ(Y){if(h(Y))return Y;if(typeof Y!=="string")return;try{let J=JSON.parse(Y);return h(J)?J:void 0}catch{return}}import{readFile as cZ}from"node:fs/promises";import{homedir as uZ}from"node:os";import{join as N5}from"node:path";var pZ="https://models.dev/api.json",lZ="OPENCODE_OPENAI_AUTH_MODELS_CACHE",dZ="OPENCODE_MODELS_PATH",iZ="OPENCODE_DISABLE_MODELS_FETCH",oZ=1e4,nZ=300000;function A1(Y){return Y!==null&&typeof Y==="object"&&!Array.isArray(Y)?Y:null}function B5(Y){if(Y===void 0)return 0;return typeof Y==="number"&&Number.isFinite(Y)&&Y>=0?Y:null}function dJ(Y){let{input:J,output:X}=Y;if(typeof J!=="number"||!Number.isFinite(J)||J<0)return null;if(typeof X!=="number"||!Number.isFinite(X)||X<0)return null;let Q=B5(Y.cache_read),$=B5(Y.cache_write);if(Q===null||$===null)return null;return{input:J,output:X,cache:{read:Q,write:$}}}function rZ(Y){let J=A1(Y);if(!J)return null;let X=dJ(J);if(!X)return null;let Q=X;if(Array.isArray(J.tiers)){let W=[];for(let K of J.tiers){let Z=A1(K);if(!Z)continue;let U=A1(Z.tier),L=U?.size;if(U?.type!=="context")continue;if(typeof L!=="number"||!Number.isFinite(L)||L<=0)continue;let j=dJ(Z);if(!j)continue;W.push({...j,tier:{type:"context",size:L}})}if(W.length>0)Q.tiers=W}let $=A1(J.context_over_200k),G=$?dJ($):null;if(G)Q.experimentalOver200K=G;return Q}function F5(Y){let J=A1(Y),X=A1(J?.openai),Q=A1(X?.models);if(!Q)return null;let $={};for(let[G,W]of Object.entries(Q)){let K=A1(W),Z=rZ(K?.cost);if(Z)$[G]=Z}return Object.keys($).length>0?$:null}function sZ(){let Y=process.env[lZ]?.trim();if(Y)return Y;let J=process.env[dZ]?.trim();if(J)return J;let X=process.env.XDG_CACHE_HOME?.trim()||(process.platform==="win32"?process.env.LOCALAPPDATA?.trim():void 0)||N5(uZ(),".cache");return N5(X,"opencode","models.json")}function aZ(){let Y=process.env[iZ]?.toLowerCase();return Y==="true"||Y==="1"}async function tZ(){try{let Y=F5(JSON.parse(await cZ(sZ(),"utf8")));if(Y)return Y}catch{}if(aZ())return null;try{let Y=await fetch(pZ,{signal:AbortSignal.timeout(oZ)});if(!Y.ok)return null;return F5(await Y.json())}catch{return null}}var W9;function j5(){let Y=Date.now();if(W9&&W9.expiresAt>Y)return W9.promise;let J={expiresAt:Y+nZ,promise:tZ()};return W9=J,J.promise.then((X)=>{if(X===null&&W9===J)W9=void 0}),J.promise}function z9(Y){return typeof Y==="object"&&Y!==null}function eZ(Y){if(Array.isArray(Y))return Y;if(z9(Y)&&Array.isArray(Y.data))return Y.data;return[]}function YL(Y){if(!z9(Y)||!z9(Y.info))return;return typeof Y.info.role==="string"?Y.info.role:void 0}function O5(Y){if(!z9(Y)||!z9(Y.info))return null;let J=Y.info,X=z9(J.model)?J.model:void 0,Q=typeof J.agent==="string"?J.agent:void 0,$=typeof X?.providerID==="string"?X.providerID:typeof J.providerID==="string"?J.providerID:void 0,G=typeof X?.modelID==="string"?X.modelID:typeof J.modelID==="string"?J.modelID:void 0,W=typeof X?.variant==="string"?X.variant:typeof J.variant==="string"?J.variant:void 0;if(!Q&&(!$||!G)&&!W)return null;let K={};if(Q)K.agent=Q;if($&&G)K.model={providerID:$,modelID:G};if(W)K.variant=W;return K}function q5(Y,J){return{agent:Y.agent??J.agent,model:Y.model??J.model,variant:Y.variant??J.variant}}function D5(Y){return Boolean(Y.agent&&Y.model&&Y.variant)}async function P5(Y,J){if(!Y||!J)return null;let X=Y;if(typeof X.session?.messages!=="function")return null;let Q=[];try{Q=eZ(await Promise.resolve(X.session.messages({path:{id:J},query:{limit:100}})))}catch{return null}if(Q.length===0)return null;let $={};for(let G=Q.length-1;G>=0;G--){if(YL(Q[G])!=="assistant")continue;let W=O5(Q[G]);if(!W)continue;if($=q5($,W),D5($))return $}for(let G=Q.length-1;G>=0;G--){let W=O5(Q[G]);if(!W)continue;if($=q5($,W),D5($))return $}if(!$.agent&&!$.model&&!$.variant)return null;return $}var R1=[],JL=1,E5=new Map;function iJ(Y,J){if(R1.push({id:JL++,type:"open-dialog",payload:Y,sessionId:J}),R1.length>100)R1=R1.slice(R1.length-100)}function M5(Y=0,J){let X=Date.now();if(J!==void 0)E5.set(J,X);let Q=($)=>J===void 0||$.sessionId===void 0||$.sessionId===J;if(Y>0)R1=R1.filter(($)=>{if($.id>Y)return!0;if(J===void 0)return!0;return $.sessionId!==J});return R1.filter(($)=>$.id>Y&&Q($))}function w5(Y){let J=Date.now(),X=E5.get(Y)??0;return X>0&&J-X<3000}import{randomBytes as XL,timingSafeEqual as QL}from"node:crypto";import{readFile as $L,unlink as GL}from"node:fs/promises";import{createServer as WL}from"node:http";import{join as zL}from"node:path";var oJ=B0("rpc");function KL(Y){return new Promise((J,X)=>{let Q=[],$=0;Y.on("data",(G)=>{if($+=G.length,$>1e6){Y.destroy(),X(Error("body too large"));return}Q.push(G)}),Y.on("end",()=>J(Buffer.concat(Q).toString("utf8"))),Y.on("error",X)})}function UL(Y,J){if(!Y?.startsWith("Bearer "))return!1;let X=Buffer.from(Y.slice(7)),Q=Buffer.from(J);return X.length===Q.length&&QL(X,Q)}async function T5(Y){let J=XL(32).toString("hex"),X=Y.timeoutMs??90000,Q=Y.receiptTimeoutMs??2000,$=!1,G=WL((Z,U)=>{Z.setTimeout(X,()=>{Z.socket.destroy()}),W(Z,U)});G.requestTimeout=Q,G.headersTimeout=Q;async function W(Z,U){let L=(j,N)=>{if(U.headersSent||U.writableEnded||U.destroyed)return;U.writeHead(j,{"content-type":"application/json"}),U.end(JSON.stringify(N))};try{let j=Z.url??"";if(Z.method==="GET"&&j==="/health")return L(200,{ok:!0});if(Z.method!=="POST"||!j.startsWith("/rpc/"))return L(404,{error:"not found"});if(!UL(Z.headers.authorization,J))return L(401,{error:"unauthorized"});let N=j.slice(5),V=await KL(Z),q=JSON.parse(V||"{}");if(N==="pending-notifications"){let T=typeof q.sessionId==="string"?q.sessionId:void 0;if(T===void 0&&!$)$=!0,oJ.warn("rpc notification drain missing session id",{pid:process.pid});let S=Y.drain(Number(q.lastReceivedId??0),T);return L(200,{messages:S})}if(N==="apply"){let T=await Y.apply(q);return L(200,T)}return L(404,{error:"unknown method"})}catch(j){L(500,{error:j instanceof Error?j.message:String(j)})}}let K=await new Promise((Z,U)=>{G.on("error",U),G.listen(0,"127.0.0.1",()=>{let L=G.address();if(L&&typeof L==="object")Z(L.port);else U(Error("no port"))})});if(G.unref(),Y.sweepRoot)try{await R5(Y.sweepRoot,Y.dir)}catch(Z){oJ.warn("rpc state sweep failed",{pid:process.pid,error:Z instanceof Error?Z.message:String(Z)})}try{await A5(Y.dir,{port:K,token:J,pid:process.pid},{secureDir:Y.secureDir}),oJ.debug("rpc server pid",{pid:process.pid,rpcPort:K})}catch(Z){throw await new Promise((U)=>G.close(()=>U())),Z}return{port:K,token:J,async stop(){await new Promise((L)=>G.close(()=>L()));let Z=zL(Y.dir,`port-${process.pid}.json`),U=await $L(Z,"utf8").then((L)=>JSON.parse(L)).catch(()=>{return});if(U?.port===K&&U.token===J)await GL(Z).catch(()=>{})}}}function B1(Y){return JSON.stringify(nJ(Y))??"undefined"}function nJ(Y){if(Array.isArray(Y))return Y.map(nJ);if(!h(Y))return Y;return Object.fromEntries(Object.keys(Y).sort().map((J)=>[J,nJ(Y[J])]))}function u1(){let Y=crypto.getRandomValues(new Uint8Array(16)),J=Date.now();Y[0]=J/1099511627776&255,Y[1]=J/4294967296&255,Y[2]=J/16777216&255,Y[3]=J/65536&255,Y[4]=J/256&255,Y[5]=J&255,Y[6]=(Y[6]??0)&15|112,Y[8]=(Y[8]??0)&63|128;let X=Array.from(Y,(Q)=>Q.toString(16).padStart(2,"0")).join("");return`${X.slice(0,8)}-${X.slice(8,12)}-${X.slice(12,16)}-${X.slice(16,20)}-${X.slice(20)}`}var x1={};aJ(x1,{withoutInternalHeaders:()=>L4,sanitizeHttpFallbackBody:()=>AJ,orderCodexBody:()=>e9,hasWebSocketResponsesLiteMetadata:()=>wJ,createWebSocketFetch:()=>VF,applyTurnId:()=>z4,advanceTurn:()=>rX,TITLE_HEADER:()=>nX,QUOTA_ACCOUNT_HEADER:()=>zJ,OpenAIWebSocketPool:()=>x1,CODEX_BODY_KEY_ORDER:()=>G4});import{createHash as KF}from"node:crypto";var W$="vercel.ai.error",ZL=Symbol.for(W$),C5,_5,R=class Y extends(_5=Error,C5=ZL,_5){constructor({name:J,message:X,cause:Q}){super(X);this[C5]=!0,this.name=J,this.cause=Q}static isInstance(J){return Y.hasMarker(J,W$)}static hasMarker(J,X){let Q=Symbol.for(X);return J!=null&&typeof J==="object"&&Q in J&&typeof J[Q]==="boolean"&&J[Q]===!0}},z$="AI_APICallError",K$=`vercel.ai.error.${z$}`,LL=Symbol.for(K$),I5,S5,b9=class extends(S5=R,I5=LL,S5){constructor({message:Y,url:J,requestBodyValues:X,statusCode:Q,responseHeaders:$,responseBody:G,cause:W,isRetryable:K=Q!=null&&(Q===408||Q===409||Q===429||Q>=500),data:Z}){super({name:z$,message:Y,cause:W});this[I5]=!0,this.url=J,this.requestBodyValues=X,this.statusCode=Q,this.responseHeaders=$,this.responseBody=G,this.isRetryable=K,this.data=Z}static isInstance(Y){return R.hasMarker(Y,K$)}},U$="AI_EmptyResponseBodyError",Z$=`vercel.ai.error.${U$}`,HL=Symbol.for(Z$),k5,x5,VL=class extends(x5=R,k5=HL,x5){constructor({message:Y="Empty response body"}={}){super({name:U$,message:Y});this[k5]=!0}static isInstance(Y){return R.hasMarker(Y,Z$)}},L$="AI_EvaluationUnsupportedQuestionTypeError",H$=`vercel.ai.error.${L$}`,NL=Symbol.for(H$),b5,v5,BL=class extends(v5=R,b5=NL,v5){constructor({questionId:Y,questionType:J,provider:X,modelId:Q,message:$=`Question "${Y}" has type "${J}", which is not supported by provider "${X}" and model "${Q}".`}){super({name:L$,message:$});this[b5]=!0,this.questionId=Y,this.questionType=J,this.provider=X,this.modelId=Q}static isInstance(Y){return R.hasMarker(Y,H$)}};function p1(Y){if(Y==null)return"unknown error";if(typeof Y==="string")return Y;if(Y instanceof Error)return Y.toString();return JSON.stringify(Y)}var V$="AI_InvalidArgumentError",N$=`vercel.ai.error.${V$}`,FL=Symbol.for(N$),h5,g5,B$=class extends(g5=R,h5=FL,g5){constructor({message:Y,cause:J,argument:X}){super({name:V$,message:Y,cause:J});this[h5]=!0,this.argument=X}static isInstance(Y){return R.hasMarker(Y,N$)}},F$="AI_InvalidPromptError",j$=`vercel.ai.error.${F$}`,jL=Symbol.for(j$),y5,f5,OL=class extends(f5=R,y5=jL,f5){constructor({prompt:Y,message:J,cause:X}){super({name:F$,message:`Invalid prompt: ${J}`,cause:X});this[y5]=!0,this.prompt=Y}static isInstance(Y){return R.hasMarker(Y,j$)}},O$="AI_InvalidResponseDataError",q$=`vercel.ai.error.${O$}`,qL=Symbol.for(q$),m5,c5,DL=class extends(c5=R,m5=qL,c5){constructor({data:Y,message:J=`Invalid response data: ${JSON.stringify(Y)}.`}){super({name:O$,message:J});this[m5]=!0,this.data=Y}static isInstance(Y){return R.hasMarker(Y,q$)}},D$="AI_JSONParseError",P$=`vercel.ai.error.${D$}`,PL=Symbol.for(P$),u5,p5,xY=class extends(p5=R,u5=PL,p5){constructor({text:Y,cause:J}){super({name:D$,message:`JSON parsing failed: Text: ${Y}.
|
|
70
|
+
Error message: ${p1(J)}`,cause:J});this[u5]=!0,this.text=Y}static isInstance(Y){return R.hasMarker(Y,P$)}},E$="AI_LoadAPIKeyError",M$=`vercel.ai.error.${E$}`,EL=Symbol.for(M$),l5,d5,ML=class extends(d5=R,l5=EL,d5){constructor({message:Y}){super({name:E$,message:Y});this[l5]=!0}static isInstance(Y){return R.hasMarker(Y,M$)}},w$="AI_LoadSettingError",A$=`vercel.ai.error.${w$}`,wL=Symbol.for(A$),i5,o5,AL=class extends(o5=R,i5=wL,o5){constructor({message:Y}){super({name:w$,message:Y});this[i5]=!0}static isInstance(Y){return R.hasMarker(Y,A$)}},R$="AI_NoContentGeneratedError",T$=`vercel.ai.error.${R$}`,RL=Symbol.for(T$),n5,r5,TL=class extends(r5=R,n5=RL,r5){constructor({message:Y="No content generated."}={}){super({name:R$,message:Y});this[n5]=!0}static isInstance(Y){return R.hasMarker(Y,T$)}},C$="AI_NoSuchModelError",_$=`vercel.ai.error.${C$}`,CL=Symbol.for(_$),s5,a5,rJ=class extends(a5=R,s5=CL,a5){constructor({errorName:Y=C$,modelId:J,modelType:X,message:Q=`No such ${X}: ${J}`}){super({name:Y,message:Q});this[s5]=!0,this.modelId=J,this.modelType=X}static isInstance(Y){return R.hasMarker(Y,_$)}},I$="AI_NoSuchProviderReferenceError",S$=`vercel.ai.error.${I$}`,_L=Symbol.for(S$),t5,e5,IL=class extends(e5=R,t5=_L,e5){constructor({provider:Y,reference:J,message:X=`No provider reference found for provider '${Y}'. Available providers: ${Object.keys(J).join(", ")}`}){super({name:I$,message:X});this[t5]=!0,this.provider=Y,this.reference=J}static isInstance(Y){return R.hasMarker(Y,S$)}},k$="AI_TooManyEmbeddingValuesForCallError",x$=`vercel.ai.error.${k$}`,SL=Symbol.for(x$),Y$,J$,kL=class extends(J$=R,Y$=SL,J$){constructor(Y){super({name:k$,message:`Too many values for a single embedding call. The ${Y.provider} model "${Y.modelId}" can only embed up to ${Y.maxEmbeddingsPerCall} values per call, but ${Y.values.length} values were provided.`});this[Y$]=!0,this.provider=Y.provider,this.modelId=Y.modelId,this.maxEmbeddingsPerCall=Y.maxEmbeddingsPerCall,this.values=Y.values}static isInstance(Y){return R.hasMarker(Y,x$)}},b$="AI_TypeValidationError",v$=`vercel.ai.error.${b$}`,xL=Symbol.for(v$),X$,Q$,r0=class Y extends(Q$=R,X$=xL,Q$){constructor({value:J,cause:X,context:Q}){let $="Type validation failed";if(Q==null?void 0:Q.field)$+=` for ${Q.field}`;if((Q==null?void 0:Q.entityName)||(Q==null?void 0:Q.entityId)){$+=" (";let G=[];if(Q.entityName)G.push(Q.entityName);if(Q.entityId)G.push(`id: "${Q.entityId}"`);$+=G.join(", "),$+=")"}super({name:b$,message:`${$}: Value: ${JSON.stringify(J)}.
|
|
71
|
+
Error message: ${p1(X)}`,cause:X});this[X$]=!0,this.value=J,this.context=Q}static isInstance(J){return R.hasMarker(J,v$)}static wrap({value:J,cause:X,context:Q}){var $,G,W;if(Y.isInstance(X)&&X.value===J&&(($=X.context)==null?void 0:$.field)===(Q==null?void 0:Q.field)&&((G=X.context)==null?void 0:G.entityName)===(Q==null?void 0:Q.entityName)&&((W=X.context)==null?void 0:W.entityId)===(Q==null?void 0:Q.entityId))return X;return new Y({value:J,cause:X,context:Q})}},h$="AI_UnsupportedFunctionalityError",g$=`vercel.ai.error.${h$}`,bL=Symbol.for(g$),$$,G$,vL=class extends(G$=R,$$=bL,G$){constructor({functionality:Y,message:J=`'${Y}' functionality not supported.`}){super({name:h$,message:J});this[$$]=!0,this.functionality=Y}static isInstance(Y){return R.hasMarker(Y,g$)}};var Tq=Object.freeze({status:"aborted"});function P(Y,J,X){function Q(K,Z){var U;Object.defineProperty(K,"_zod",{value:K._zod??{},enumerable:!1}),(U=K._zod).traits??(U.traits=new Set),K._zod.traits.add(Y),J(K,Z);for(let L in W.prototype)if(!(L in K))Object.defineProperty(K,L,{value:W.prototype[L].bind(K)});K._zod.constr=W,K._zod.def=Z}let $=X?.Parent??Object;class G extends ${}Object.defineProperty(G,"name",{value:Y});function W(K){var Z;let U=X?.Parent?new G:this;Q(U,K),(Z=U._zod).deferred??(Z.deferred=[]);for(let L of U._zod.deferred)L();return U}return Object.defineProperty(W,"init",{value:Q}),Object.defineProperty(W,Symbol.hasInstance,{value:(K)=>{if(X?.Parent&&K instanceof X.Parent)return!0;return K?._zod?.traits?.has(Y)}}),Object.defineProperty(W,"name",{value:Y}),W}var Cq=Symbol("zod_brand");class F1 extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class v9 extends Error{constructor(Y){super(`Encountered unidirectional transform during encode: ${Y}`);this.name="ZodEncodeError"}}var bY={};function G1(Y){if(Y)Object.assign(bY,Y);return bY}var a={};aJ(a,{unwrapMessage:()=>h9,uint8ArrayToHex:()=>zH,uint8ArrayToBase64url:()=>GH,uint8ArrayToBase64:()=>d$,stringifyPrimitive:()=>c$,shallowClone:()=>f$,safeExtend:()=>eL,required:()=>XH,randomString:()=>iL,propertyKeyTypes:()=>YX,promiseAllObject:()=>dL,primitiveTypes:()=>m$,prefixIssues:()=>O1,pick:()=>sL,partial:()=>JH,optionalKeys:()=>JX,omit:()=>aL,objectClone:()=>uL,numKeys:()=>oL,nullish:()=>y9,normalizeParams:()=>i,mergeDefs:()=>C1,merge:()=>YH,jsonStringifyReplacer:()=>K9,joinValues:()=>cL,issue:()=>Z9,isPlainObject:()=>_1,isObject:()=>l1,hexToUint8Array:()=>WH,getSizableOrigin:()=>p$,getParsedType:()=>nL,getLengthableOrigin:()=>m9,getEnumValues:()=>g9,getElementAtPath:()=>lL,floatSafeRemainder:()=>tJ,finalizeIssue:()=>t0,extend:()=>tL,escapeRegex:()=>j1,esc:()=>vY,defineLazy:()=>J0,createTransparentProxy:()=>rL,cloneDef:()=>pL,clone:()=>a0,cleanRegex:()=>f9,cleanEnum:()=>QH,captureStackTrace:()=>hY,cached:()=>U9,base64urlToUint8Array:()=>$H,base64ToUint8Array:()=>l$,assignProp:()=>T1,assertNotEqual:()=>gL,assertNever:()=>fL,assertIs:()=>yL,assertEqual:()=>hL,assert:()=>mL,allowsEval:()=>eJ,aborted:()=>I1,NUMBER_FORMAT_RANGES:()=>XX,Class:()=>i$,BIGINT_FORMAT_RANGES:()=>u$});function hL(Y){return Y}function gL(Y){return Y}function yL(Y){}function fL(Y){throw Error()}function mL(Y){}function g9(Y){let J=Object.values(Y).filter((Q)=>typeof Q==="number");return Object.entries(Y).filter(([Q,$])=>J.indexOf(+Q)===-1).map(([Q,$])=>$)}function cL(Y,J="|"){return Y.map((X)=>c$(X)).join(J)}function K9(Y,J){if(typeof J==="bigint")return J.toString();return J}function U9(Y){return{get value(){{let X=Y();return Object.defineProperty(this,"value",{value:X}),X}throw Error("cached value already set")}}}function y9(Y){return Y===null||Y===void 0}function f9(Y){let J=Y.startsWith("^")?1:0,X=Y.endsWith("$")?Y.length-1:Y.length;return Y.slice(J,X)}function tJ(Y,J){let X=(Y.toString().split(".")[1]||"").length,Q=J.toString(),$=(Q.split(".")[1]||"").length;if($===0&&/\d?e-\d?/.test(Q)){let Z=Q.match(/\d?e-(\d?)/);if(Z?.[1])$=Number.parseInt(Z[1])}let G=X>$?X:$,W=Number.parseInt(Y.toFixed(G).replace(".","")),K=Number.parseInt(J.toFixed(G).replace(".",""));return W%K/10**G}var y$=Symbol("evaluating");function J0(Y,J,X){let Q=void 0;Object.defineProperty(Y,J,{get(){if(Q===y$)return;if(Q===void 0)Q=y$,Q=X();return Q},set($){Object.defineProperty(Y,J,{value:$})},configurable:!0})}function uL(Y){return Object.create(Object.getPrototypeOf(Y),Object.getOwnPropertyDescriptors(Y))}function T1(Y,J,X){Object.defineProperty(Y,J,{value:X,writable:!0,enumerable:!0,configurable:!0})}function C1(...Y){let J={};for(let X of Y){let Q=Object.getOwnPropertyDescriptors(X);Object.assign(J,Q)}return Object.defineProperties({},J)}function pL(Y){return C1(Y._zod.def)}function lL(Y,J){if(!J)return Y;return J.reduce((X,Q)=>X?.[Q],Y)}function dL(Y){let J=Object.keys(Y),X=J.map((Q)=>Y[Q]);return Promise.all(X).then((Q)=>{let $={};for(let G=0;G<J.length;G++)$[J[G]]=Q[G];return $})}function iL(Y=10){let X="";for(let Q=0;Q<Y;Q++)X+="abcdefghijklmnopqrstuvwxyz"[Math.floor(Math.random()*26)];return X}function vY(Y){return JSON.stringify(Y)}var hY="captureStackTrace"in Error?Error.captureStackTrace:(...Y)=>{};function l1(Y){return typeof Y==="object"&&Y!==null&&!Array.isArray(Y)}var eJ=U9(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(Y){return!1}});function _1(Y){if(l1(Y)===!1)return!1;let J=Y.constructor;if(J===void 0)return!0;let X=J.prototype;if(l1(X)===!1)return!1;if(Object.prototype.hasOwnProperty.call(X,"isPrototypeOf")===!1)return!1;return!0}function f$(Y){if(_1(Y))return{...Y};if(Array.isArray(Y))return[...Y];return Y}function oL(Y){let J=0;for(let X in Y)if(Object.prototype.hasOwnProperty.call(Y,X))J++;return J}var nL=(Y)=>{let J=typeof Y;switch(J){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(Y)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":if(Array.isArray(Y))return"array";if(Y===null)return"null";if(Y.then&&typeof Y.then==="function"&&Y.catch&&typeof Y.catch==="function")return"promise";if(typeof Map<"u"&&Y instanceof Map)return"map";if(typeof Set<"u"&&Y instanceof Set)return"set";if(typeof Date<"u"&&Y instanceof Date)return"date";if(typeof File<"u"&&Y instanceof File)return"file";return"object";default:throw Error(`Unknown data type: ${J}`)}},YX=new Set(["string","number","symbol"]),m$=new Set(["string","number","bigint","boolean","symbol","undefined"]);function j1(Y){return Y.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function a0(Y,J,X){let Q=new Y._zod.constr(J??Y._zod.def);if(!J||X?.parent)Q._zod.parent=Y;return Q}function i(Y){let J=Y;if(!J)return{};if(typeof J==="string")return{error:()=>J};if(J?.message!==void 0){if(J?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");J.error=J.message}if(delete J.message,typeof J.error==="string")return{...J,error:()=>J.error};return J}function rL(Y){let J;return new Proxy({},{get(X,Q,$){return J??(J=Y()),Reflect.get(J,Q,$)},set(X,Q,$,G){return J??(J=Y()),Reflect.set(J,Q,$,G)},has(X,Q){return J??(J=Y()),Reflect.has(J,Q)},deleteProperty(X,Q){return J??(J=Y()),Reflect.deleteProperty(J,Q)},ownKeys(X){return J??(J=Y()),Reflect.ownKeys(J)},getOwnPropertyDescriptor(X,Q){return J??(J=Y()),Reflect.getOwnPropertyDescriptor(J,Q)},defineProperty(X,Q,$){return J??(J=Y()),Reflect.defineProperty(J,Q,$)}})}function c$(Y){if(typeof Y==="bigint")return Y.toString()+"n";if(typeof Y==="string")return`"${Y}"`;return`${Y}`}function JX(Y){return Object.keys(Y).filter((J)=>{return Y[J]._zod.optin==="optional"&&Y[J]._zod.optout==="optional"})}var XX={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-340282346638528860000000000000000000000,340282346638528860000000000000000000000],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},u$={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function sL(Y,J){let X=Y._zod.def,Q=C1(Y._zod.def,{get shape(){let $={};for(let G in J){if(!(G in X.shape))throw Error(`Unrecognized key: "${G}"`);if(!J[G])continue;$[G]=X.shape[G]}return T1(this,"shape",$),$},checks:[]});return a0(Y,Q)}function aL(Y,J){let X=Y._zod.def,Q=C1(Y._zod.def,{get shape(){let $={...Y._zod.def.shape};for(let G in J){if(!(G in X.shape))throw Error(`Unrecognized key: "${G}"`);if(!J[G])continue;delete $[G]}return T1(this,"shape",$),$},checks:[]});return a0(Y,Q)}function tL(Y,J){if(!_1(J))throw Error("Invalid input to extend: expected a plain object");let X=Y._zod.def.checks;if(X&&X.length>0)throw Error("Object schemas containing refinements cannot be extended. Use `.safeExtend()` instead.");let $=C1(Y._zod.def,{get shape(){let G={...Y._zod.def.shape,...J};return T1(this,"shape",G),G},checks:[]});return a0(Y,$)}function eL(Y,J){if(!_1(J))throw Error("Invalid input to safeExtend: expected a plain object");let X={...Y._zod.def,get shape(){let Q={...Y._zod.def.shape,...J};return T1(this,"shape",Q),Q},checks:Y._zod.def.checks};return a0(Y,X)}function YH(Y,J){let X=C1(Y._zod.def,{get shape(){let Q={...Y._zod.def.shape,...J._zod.def.shape};return T1(this,"shape",Q),Q},get catchall(){return J._zod.def.catchall},checks:[]});return a0(Y,X)}function JH(Y,J,X){let Q=C1(J._zod.def,{get shape(){let $=J._zod.def.shape,G={...$};if(X)for(let W in X){if(!(W in $))throw Error(`Unrecognized key: "${W}"`);if(!X[W])continue;G[W]=Y?new Y({type:"optional",innerType:$[W]}):$[W]}else for(let W in $)G[W]=Y?new Y({type:"optional",innerType:$[W]}):$[W];return T1(this,"shape",G),G},checks:[]});return a0(J,Q)}function XH(Y,J,X){let Q=C1(J._zod.def,{get shape(){let $=J._zod.def.shape,G={...$};if(X)for(let W in X){if(!(W in G))throw Error(`Unrecognized key: "${W}"`);if(!X[W])continue;G[W]=new Y({type:"nonoptional",innerType:$[W]})}else for(let W in $)G[W]=new Y({type:"nonoptional",innerType:$[W]});return T1(this,"shape",G),G},checks:[]});return a0(J,Q)}function I1(Y,J=0){if(Y.aborted===!0)return!0;for(let X=J;X<Y.issues.length;X++)if(Y.issues[X]?.continue!==!0)return!0;return!1}function O1(Y,J){return J.map((X)=>{var Q;return(Q=X).path??(Q.path=[]),X.path.unshift(Y),X})}function h9(Y){return typeof Y==="string"?Y:Y?.message}function t0(Y,J,X){let Q={...Y,path:Y.path??[]};if(!Y.message){let $=h9(Y.inst?._zod.def?.error?.(Y))??h9(J?.error?.(Y))??h9(X.customError?.(Y))??h9(X.localeError?.(Y))??"Invalid input";Q.message=$}if(delete Q.inst,delete Q.continue,!J?.reportInput)delete Q.input;return Q}function p$(Y){if(Y instanceof Set)return"set";if(Y instanceof Map)return"map";if(Y instanceof File)return"file";return"unknown"}function m9(Y){if(Array.isArray(Y))return"array";if(typeof Y==="string")return"string";return"unknown"}function Z9(...Y){let[J,X,Q]=Y;if(typeof J==="string")return{message:J,code:"custom",input:X,inst:Q};return{...J}}function QH(Y){return Object.entries(Y).filter(([J,X])=>{return Number.isNaN(Number.parseInt(J,10))}).map((J)=>J[1])}function l$(Y){let J=atob(Y),X=new Uint8Array(J.length);for(let Q=0;Q<J.length;Q++)X[Q]=J.charCodeAt(Q);return X}function d$(Y){let J="";for(let X=0;X<Y.length;X++)J+=String.fromCharCode(Y[X]);return btoa(J)}function $H(Y){let J=Y.replace(/-/g,"+").replace(/_/g,"/"),X="=".repeat((4-J.length%4)%4);return l$(J+X)}function GH(Y){return d$(Y).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function WH(Y){let J=Y.replace(/^0x/,"");if(J.length%2!==0)throw Error("Invalid hex string length");let X=new Uint8Array(J.length/2);for(let Q=0;Q<J.length;Q+=2)X[Q/2]=Number.parseInt(J.slice(Q,Q+2),16);return X}function zH(Y){return Array.from(Y).map((J)=>J.toString(16).padStart(2,"0")).join("")}class i${constructor(...Y){}}var o$=(Y,J)=>{Y.name="$ZodError",Object.defineProperty(Y,"_zod",{value:Y._zod,enumerable:!1}),Object.defineProperty(Y,"issues",{value:J,enumerable:!1}),Y.message=JSON.stringify(J,K9,2),Object.defineProperty(Y,"toString",{value:()=>Y.message,enumerable:!1})},gY=P("$ZodError",o$),QX=P("$ZodError",o$,{Parent:Error});function n$(Y,J=(X)=>X.message){let X={},Q=[];for(let $ of Y.issues)if($.path.length>0)X[$.path[0]]=X[$.path[0]]||[],X[$.path[0]].push(J($));else Q.push(J($));return{formErrors:Q,fieldErrors:X}}function r$(Y,J){let X=J||function(G){return G.message},Q={_errors:[]},$=(G)=>{for(let W of G.issues)if(W.code==="invalid_union"&&W.errors.length)W.errors.map((K)=>$({issues:K}));else if(W.code==="invalid_key")$({issues:W.issues});else if(W.code==="invalid_element")$({issues:W.issues});else if(W.path.length===0)Q._errors.push(X(W));else{let K=Q,Z=0;while(Z<W.path.length){let U=W.path[Z];if(Z!==W.path.length-1)K[U]=K[U]||{_errors:[]};else K[U]=K[U]||{_errors:[]},K[U]._errors.push(X(W));K=K[U],Z++}}};return $(Y),Q}var yY=(Y)=>(J,X,Q,$)=>{let G=Q?Object.assign(Q,{async:!1}):{async:!1},W=J._zod.run({value:X,issues:[]},G);if(W instanceof Promise)throw new F1;if(W.issues.length){let K=new($?.Err??Y)(W.issues.map((Z)=>t0(Z,G,G1())));throw hY(K,$?.callee),K}return W.value};var fY=(Y)=>async(J,X,Q,$)=>{let G=Q?Object.assign(Q,{async:!0}):{async:!0},W=J._zod.run({value:X,issues:[]},G);if(W instanceof Promise)W=await W;if(W.issues.length){let K=new($?.Err??Y)(W.issues.map((Z)=>t0(Z,G,G1())));throw hY(K,$?.callee),K}return W.value};var c9=(Y)=>(J,X,Q)=>{let $=Q?{...Q,async:!1}:{async:!1},G=J._zod.run({value:X,issues:[]},$);if(G instanceof Promise)throw new F1;return G.issues.length?{success:!1,error:new(Y??gY)(G.issues.map((W)=>t0(W,$,G1())))}:{success:!0,data:G.value}},s$=c9(QX),u9=(Y)=>async(J,X,Q)=>{let $=Q?Object.assign(Q,{async:!0}):{async:!0},G=J._zod.run({value:X,issues:[]},$);if(G instanceof Promise)G=await G;return G.issues.length?{success:!1,error:new Y(G.issues.map((W)=>t0(W,$,G1())))}:{success:!0,data:G.value}},a$=u9(QX),t$=(Y)=>(J,X,Q)=>{let $=Q?Object.assign(Q,{direction:"backward"}):{direction:"backward"};return yY(Y)(J,X,$)};var e$=(Y)=>(J,X,Q)=>{return yY(Y)(J,X,Q)};var YG=(Y)=>async(J,X,Q)=>{let $=Q?Object.assign(Q,{direction:"backward"}):{direction:"backward"};return fY(Y)(J,X,$)};var JG=(Y)=>async(J,X,Q)=>{return fY(Y)(J,X,Q)};var XG=(Y)=>(J,X,Q)=>{let $=Q?Object.assign(Q,{direction:"backward"}):{direction:"backward"};return c9(Y)(J,X,$)};var QG=(Y)=>(J,X,Q)=>{return c9(Y)(J,X,Q)};var $G=(Y)=>async(J,X,Q)=>{let $=Q?Object.assign(Q,{direction:"backward"}):{direction:"backward"};return u9(Y)(J,X,$)};var GG=(Y)=>async(J,X,Q)=>{return u9(Y)(J,X,Q)};var WG=/^[cC][^\s-]{8,}$/,zG=/^[0-9a-z]+$/,KG=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,UG=/^[0-9a-vA-V]{20}$/,ZG=/^[A-Za-z0-9]{27}$/,LG=/^[a-zA-Z0-9_-]{21}$/,HG=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var VG=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,$X=(Y)=>{if(!Y)return/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${Y}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`)};var NG=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;function BG(){return new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")}var FG=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,jG=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,OG=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,qG=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,DG=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,GX=/^[A-Za-z0-9_-]*$/,PG=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/;var EG=/^\+(?:[0-9]){6,14}[0-9]$/,MG="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",wG=new RegExp(`^${MG}$`);function AG(Y){return typeof Y.precision==="number"?Y.precision===-1?"(?:[01]\\d|2[0-3]):[0-5]\\d":Y.precision===0?"(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d":`(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{${Y.precision}}`:"(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?"}function RG(Y){return new RegExp(`^${AG(Y)}$`)}function TG(Y){let J=AG({precision:Y.precision}),X=["Z"];if(Y.local)X.push("");if(Y.offset)X.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let Q=`${J}(?:${X.join("|")})`;return new RegExp(`^${MG}T(?:${Q})$`)}var CG=(Y)=>{let J=Y?`[\\s\\S]{${Y?.minimum??0},${Y?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${J}$`)};var _G=/^-?\d+$/,IG=/^-?\d+(?:\.\d+)?/,SG=/^(?:true|false)$/i,kG=/^null$/i;var xG=/^[^A-Z]*$/,bG=/^[^a-z]*$/;var w0=P("$ZodCheck",(Y,J)=>{var X;Y._zod??(Y._zod={}),Y._zod.def=J,(X=Y._zod).onattach??(X.onattach=[])}),vG={number:"number",bigint:"bigint",object:"date"},WX=P("$ZodCheckLessThan",(Y,J)=>{w0.init(Y,J);let X=vG[typeof J.value];Y._zod.onattach.push((Q)=>{let $=Q._zod.bag,G=(J.inclusive?$.maximum:$.exclusiveMaximum)??Number.POSITIVE_INFINITY;if(J.value<G)if(J.inclusive)$.maximum=J.value;else $.exclusiveMaximum=J.value}),Y._zod.check=(Q)=>{if(J.inclusive?Q.value<=J.value:Q.value<J.value)return;Q.issues.push({origin:X,code:"too_big",maximum:J.value,input:Q.value,inclusive:J.inclusive,inst:Y,continue:!J.abort})}}),zX=P("$ZodCheckGreaterThan",(Y,J)=>{w0.init(Y,J);let X=vG[typeof J.value];Y._zod.onattach.push((Q)=>{let $=Q._zod.bag,G=(J.inclusive?$.minimum:$.exclusiveMinimum)??Number.NEGATIVE_INFINITY;if(J.value>G)if(J.inclusive)$.minimum=J.value;else $.exclusiveMinimum=J.value}),Y._zod.check=(Q)=>{if(J.inclusive?Q.value>=J.value:Q.value>J.value)return;Q.issues.push({origin:X,code:"too_small",minimum:J.value,input:Q.value,inclusive:J.inclusive,inst:Y,continue:!J.abort})}}),hG=P("$ZodCheckMultipleOf",(Y,J)=>{w0.init(Y,J),Y._zod.onattach.push((X)=>{var Q;(Q=X._zod.bag).multipleOf??(Q.multipleOf=J.value)}),Y._zod.check=(X)=>{if(typeof X.value!==typeof J.value)throw Error("Cannot mix number and bigint in multiple_of check.");if(typeof X.value==="bigint"?X.value%J.value===BigInt(0):tJ(X.value,J.value)===0)return;X.issues.push({origin:typeof X.value,code:"not_multiple_of",divisor:J.value,input:X.value,inst:Y,continue:!J.abort})}}),gG=P("$ZodCheckNumberFormat",(Y,J)=>{w0.init(Y,J),J.format=J.format||"float64";let X=J.format?.includes("int"),Q=X?"int":"number",[$,G]=XX[J.format];Y._zod.onattach.push((W)=>{let K=W._zod.bag;if(K.format=J.format,K.minimum=$,K.maximum=G,X)K.pattern=_G}),Y._zod.check=(W)=>{let K=W.value;if(X){if(!Number.isInteger(K)){W.issues.push({expected:Q,format:J.format,code:"invalid_type",continue:!1,input:K,inst:Y});return}if(!Number.isSafeInteger(K)){if(K>0)W.issues.push({input:K,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:Y,origin:Q,continue:!J.abort});else W.issues.push({input:K,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:Y,origin:Q,continue:!J.abort});return}}if(K<$)W.issues.push({origin:"number",input:K,code:"too_small",minimum:$,inclusive:!0,inst:Y,continue:!J.abort});if(K>G)W.issues.push({origin:"number",input:K,code:"too_big",maximum:G,inst:Y})}});var yG=P("$ZodCheckMaxLength",(Y,J)=>{var X;w0.init(Y,J),(X=Y._zod.def).when??(X.when=(Q)=>{let $=Q.value;return!y9($)&&$.length!==void 0}),Y._zod.onattach.push((Q)=>{let $=Q._zod.bag.maximum??Number.POSITIVE_INFINITY;if(J.maximum<$)Q._zod.bag.maximum=J.maximum}),Y._zod.check=(Q)=>{let $=Q.value;if($.length<=J.maximum)return;let W=m9($);Q.issues.push({origin:W,code:"too_big",maximum:J.maximum,inclusive:!0,input:$,inst:Y,continue:!J.abort})}}),fG=P("$ZodCheckMinLength",(Y,J)=>{var X;w0.init(Y,J),(X=Y._zod.def).when??(X.when=(Q)=>{let $=Q.value;return!y9($)&&$.length!==void 0}),Y._zod.onattach.push((Q)=>{let $=Q._zod.bag.minimum??Number.NEGATIVE_INFINITY;if(J.minimum>$)Q._zod.bag.minimum=J.minimum}),Y._zod.check=(Q)=>{let $=Q.value;if($.length>=J.minimum)return;let W=m9($);Q.issues.push({origin:W,code:"too_small",minimum:J.minimum,inclusive:!0,input:$,inst:Y,continue:!J.abort})}}),mG=P("$ZodCheckLengthEquals",(Y,J)=>{var X;w0.init(Y,J),(X=Y._zod.def).when??(X.when=(Q)=>{let $=Q.value;return!y9($)&&$.length!==void 0}),Y._zod.onattach.push((Q)=>{let $=Q._zod.bag;$.minimum=J.length,$.maximum=J.length,$.length=J.length}),Y._zod.check=(Q)=>{let $=Q.value,G=$.length;if(G===J.length)return;let W=m9($),K=G>J.length;Q.issues.push({origin:W,...K?{code:"too_big",maximum:J.length}:{code:"too_small",minimum:J.length},inclusive:!0,exact:!0,input:Q.value,inst:Y,continue:!J.abort})}}),p9=P("$ZodCheckStringFormat",(Y,J)=>{var X,Q;if(w0.init(Y,J),Y._zod.onattach.push(($)=>{let G=$._zod.bag;if(G.format=J.format,J.pattern)G.patterns??(G.patterns=new Set),G.patterns.add(J.pattern)}),J.pattern)(X=Y._zod).check??(X.check=($)=>{if(J.pattern.lastIndex=0,J.pattern.test($.value))return;$.issues.push({origin:"string",code:"invalid_format",format:J.format,input:$.value,...J.pattern?{pattern:J.pattern.toString()}:{},inst:Y,continue:!J.abort})});else(Q=Y._zod).check??(Q.check=()=>{})}),cG=P("$ZodCheckRegex",(Y,J)=>{p9.init(Y,J),Y._zod.check=(X)=>{if(J.pattern.lastIndex=0,J.pattern.test(X.value))return;X.issues.push({origin:"string",code:"invalid_format",format:"regex",input:X.value,pattern:J.pattern.toString(),inst:Y,continue:!J.abort})}}),uG=P("$ZodCheckLowerCase",(Y,J)=>{J.pattern??(J.pattern=xG),p9.init(Y,J)}),pG=P("$ZodCheckUpperCase",(Y,J)=>{J.pattern??(J.pattern=bG),p9.init(Y,J)}),lG=P("$ZodCheckIncludes",(Y,J)=>{w0.init(Y,J);let X=j1(J.includes),Q=new RegExp(typeof J.position==="number"?`^.{${J.position}}${X}`:X);J.pattern=Q,Y._zod.onattach.push(($)=>{let G=$._zod.bag;G.patterns??(G.patterns=new Set),G.patterns.add(Q)}),Y._zod.check=($)=>{if($.value.includes(J.includes,J.position))return;$.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:J.includes,input:$.value,inst:Y,continue:!J.abort})}}),dG=P("$ZodCheckStartsWith",(Y,J)=>{w0.init(Y,J);let X=new RegExp(`^${j1(J.prefix)}.*`);J.pattern??(J.pattern=X),Y._zod.onattach.push((Q)=>{let $=Q._zod.bag;$.patterns??($.patterns=new Set),$.patterns.add(X)}),Y._zod.check=(Q)=>{if(Q.value.startsWith(J.prefix))return;Q.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:J.prefix,input:Q.value,inst:Y,continue:!J.abort})}}),iG=P("$ZodCheckEndsWith",(Y,J)=>{w0.init(Y,J);let X=new RegExp(`.*${j1(J.suffix)}$`);J.pattern??(J.pattern=X),Y._zod.onattach.push((Q)=>{let $=Q._zod.bag;$.patterns??($.patterns=new Set),$.patterns.add(X)}),Y._zod.check=(Q)=>{if(Q.value.endsWith(J.suffix))return;Q.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:J.suffix,input:Q.value,inst:Y,continue:!J.abort})}});var oG=P("$ZodCheckOverwrite",(Y,J)=>{w0.init(Y,J),Y._zod.check=(X)=>{X.value=J.tx(X.value)}});class KX{constructor(Y=[]){if(this.content=[],this.indent=0,this)this.args=Y}indented(Y){this.indent+=1,Y(this),this.indent-=1}write(Y){if(typeof Y==="function"){Y(this,{execution:"sync"}),Y(this,{execution:"async"});return}let X=Y.split(`
|
|
72
|
+
`).filter((G)=>G),Q=Math.min(...X.map((G)=>G.length-G.trimStart().length)),$=X.map((G)=>G.slice(Q)).map((G)=>" ".repeat(this.indent*2)+G);for(let G of $)this.content.push(G)}compile(){let Y=Function,J=this?.args,Q=[...(this?.content??[""]).map(($)=>` ${$}`)];return new Y(...J,Q.join(`
|
|
73
|
+
`))}}var rG={major:4,minor:1,patch:8};var K0=P("$ZodType",(Y,J)=>{var X;Y??(Y={}),Y._zod.def=J,Y._zod.bag=Y._zod.bag||{},Y._zod.version=rG;let Q=[...Y._zod.def.checks??[]];if(Y._zod.traits.has("$ZodCheck"))Q.unshift(Y);for(let $ of Q)for(let G of $._zod.onattach)G(Y);if(Q.length===0)(X=Y._zod).deferred??(X.deferred=[]),Y._zod.deferred?.push(()=>{Y._zod.run=Y._zod.parse});else{let $=(W,K,Z)=>{let U=I1(W),L;for(let j of K){if(j._zod.def.when){if(!j._zod.def.when(W))continue}else if(U)continue;let N=W.issues.length,V=j._zod.check(W);if(V instanceof Promise&&Z?.async===!1)throw new F1;if(L||V instanceof Promise)L=(L??Promise.resolve()).then(async()=>{if(await V,W.issues.length===N)return;if(!U)U=I1(W,N)});else{if(W.issues.length===N)continue;if(!U)U=I1(W,N)}}if(L)return L.then(()=>{return W});return W},G=(W,K,Z)=>{if(I1(W))return W.aborted=!0,W;let U=$(K,Q,Z);if(U instanceof Promise){if(Z.async===!1)throw new F1;return U.then((L)=>Y._zod.parse(L,Z))}return Y._zod.parse(U,Z)};Y._zod.run=(W,K)=>{if(K.skipChecks)return Y._zod.parse(W,K);if(K.direction==="backward"){let U=Y._zod.parse({value:W.value,issues:[]},{...K,skipChecks:!0});if(U instanceof Promise)return U.then((L)=>{return G(L,W,K)});return G(U,W,K)}let Z=Y._zod.parse(W,K);if(Z instanceof Promise){if(K.async===!1)throw new F1;return Z.then((U)=>$(U,Q,K))}return $(Z,Q,K)}}Y["~standard"]={validate:($)=>{try{let G=s$(Y,$);return G.success?{value:G.data}:{issues:G.error?.issues}}catch(G){return a$(Y,$).then((W)=>W.success?{value:W.data}:{issues:W.error?.issues})}},vendor:"zod",version:1}}),pY=P("$ZodString",(Y,J)=>{K0.init(Y,J),Y._zod.pattern=[...Y?._zod.bag?.patterns??[]].pop()??CG(Y._zod.bag),Y._zod.parse=(X,Q)=>{if(J.coerce)try{X.value=String(X.value)}catch($){}if(typeof X.value==="string")return X;return X.issues.push({expected:"string",code:"invalid_type",input:X.value,inst:Y}),X}}),Z0=P("$ZodStringFormat",(Y,J)=>{p9.init(Y,J),pY.init(Y,J)}),$2=P("$ZodGUID",(Y,J)=>{J.pattern??(J.pattern=VG),Z0.init(Y,J)}),G2=P("$ZodUUID",(Y,J)=>{if(J.version){let Q={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[J.version];if(Q===void 0)throw Error(`Invalid UUID version: "${J.version}"`);J.pattern??(J.pattern=$X(Q))}else J.pattern??(J.pattern=$X());Z0.init(Y,J)}),W2=P("$ZodEmail",(Y,J)=>{J.pattern??(J.pattern=NG),Z0.init(Y,J)}),z2=P("$ZodURL",(Y,J)=>{Z0.init(Y,J),Y._zod.check=(X)=>{try{let Q=X.value.trim(),$=new URL(Q);if(J.hostname){if(J.hostname.lastIndex=0,!J.hostname.test($.hostname))X.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:PG.source,input:X.value,inst:Y,continue:!J.abort})}if(J.protocol){if(J.protocol.lastIndex=0,!J.protocol.test($.protocol.endsWith(":")?$.protocol.slice(0,-1):$.protocol))X.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:J.protocol.source,input:X.value,inst:Y,continue:!J.abort})}if(J.normalize)X.value=$.href;else X.value=Q;return}catch(Q){X.issues.push({code:"invalid_format",format:"url",input:X.value,inst:Y,continue:!J.abort})}}}),K2=P("$ZodEmoji",(Y,J)=>{J.pattern??(J.pattern=BG()),Z0.init(Y,J)}),U2=P("$ZodNanoID",(Y,J)=>{J.pattern??(J.pattern=LG),Z0.init(Y,J)}),Z2=P("$ZodCUID",(Y,J)=>{J.pattern??(J.pattern=WG),Z0.init(Y,J)}),L2=P("$ZodCUID2",(Y,J)=>{J.pattern??(J.pattern=zG),Z0.init(Y,J)}),H2=P("$ZodULID",(Y,J)=>{J.pattern??(J.pattern=KG),Z0.init(Y,J)}),V2=P("$ZodXID",(Y,J)=>{J.pattern??(J.pattern=UG),Z0.init(Y,J)}),N2=P("$ZodKSUID",(Y,J)=>{J.pattern??(J.pattern=ZG),Z0.init(Y,J)}),B2=P("$ZodISODateTime",(Y,J)=>{J.pattern??(J.pattern=TG(J)),Z0.init(Y,J)}),F2=P("$ZodISODate",(Y,J)=>{J.pattern??(J.pattern=wG),Z0.init(Y,J)}),j2=P("$ZodISOTime",(Y,J)=>{J.pattern??(J.pattern=RG(J)),Z0.init(Y,J)}),O2=P("$ZodISODuration",(Y,J)=>{J.pattern??(J.pattern=HG),Z0.init(Y,J)}),q2=P("$ZodIPv4",(Y,J)=>{J.pattern??(J.pattern=FG),Z0.init(Y,J),Y._zod.onattach.push((X)=>{let Q=X._zod.bag;Q.format="ipv4"})}),D2=P("$ZodIPv6",(Y,J)=>{J.pattern??(J.pattern=jG),Z0.init(Y,J),Y._zod.onattach.push((X)=>{let Q=X._zod.bag;Q.format="ipv6"}),Y._zod.check=(X)=>{try{new URL(`http://[${X.value}]`)}catch{X.issues.push({code:"invalid_format",format:"ipv6",input:X.value,inst:Y,continue:!J.abort})}}}),P2=P("$ZodCIDRv4",(Y,J)=>{J.pattern??(J.pattern=OG),Z0.init(Y,J)}),E2=P("$ZodCIDRv6",(Y,J)=>{J.pattern??(J.pattern=qG),Z0.init(Y,J),Y._zod.check=(X)=>{let Q=X.value.split("/");try{if(Q.length!==2)throw Error();let[$,G]=Q;if(!G)throw Error();let W=Number(G);if(`${W}`!==G)throw Error();if(W<0||W>128)throw Error();new URL(`http://[${$}]`)}catch{X.issues.push({code:"invalid_format",format:"cidrv6",input:X.value,inst:Y,continue:!J.abort})}}});function M2(Y){if(Y==="")return!0;if(Y.length%4!==0)return!1;try{return atob(Y),!0}catch{return!1}}var w2=P("$ZodBase64",(Y,J)=>{J.pattern??(J.pattern=DG),Z0.init(Y,J),Y._zod.onattach.push((X)=>{X._zod.bag.contentEncoding="base64"}),Y._zod.check=(X)=>{if(M2(X.value))return;X.issues.push({code:"invalid_format",format:"base64",input:X.value,inst:Y,continue:!J.abort})}});function UH(Y){if(!GX.test(Y))return!1;let J=Y.replace(/[-_]/g,(Q)=>Q==="-"?"+":"/"),X=J.padEnd(Math.ceil(J.length/4)*4,"=");return M2(X)}var A2=P("$ZodBase64URL",(Y,J)=>{J.pattern??(J.pattern=GX),Z0.init(Y,J),Y._zod.onattach.push((X)=>{X._zod.bag.contentEncoding="base64url"}),Y._zod.check=(X)=>{if(UH(X.value))return;X.issues.push({code:"invalid_format",format:"base64url",input:X.value,inst:Y,continue:!J.abort})}}),R2=P("$ZodE164",(Y,J)=>{J.pattern??(J.pattern=EG),Z0.init(Y,J)});function ZH(Y,J=null){try{let X=Y.split(".");if(X.length!==3)return!1;let[Q]=X;if(!Q)return!1;let $=JSON.parse(atob(Q));if("typ"in $&&$?.typ!=="JWT")return!1;if(!$.alg)return!1;if(J&&(!("alg"in $)||$.alg!==J))return!1;return!0}catch{return!1}}var T2=P("$ZodJWT",(Y,J)=>{Z0.init(Y,J),Y._zod.check=(X)=>{if(ZH(X.value,J.alg))return;X.issues.push({code:"invalid_format",format:"jwt",input:X.value,inst:Y,continue:!J.abort})}});var ZX=P("$ZodNumber",(Y,J)=>{K0.init(Y,J),Y._zod.pattern=Y._zod.bag.pattern??IG,Y._zod.parse=(X,Q)=>{if(J.coerce)try{X.value=Number(X.value)}catch(W){}let $=X.value;if(typeof $==="number"&&!Number.isNaN($)&&Number.isFinite($))return X;let G=typeof $==="number"?Number.isNaN($)?"NaN":!Number.isFinite($)?"Infinity":void 0:void 0;return X.issues.push({expected:"number",code:"invalid_type",input:$,inst:Y,...G?{received:G}:{}}),X}}),C2=P("$ZodNumber",(Y,J)=>{gG.init(Y,J),ZX.init(Y,J)}),_2=P("$ZodBoolean",(Y,J)=>{K0.init(Y,J),Y._zod.pattern=SG,Y._zod.parse=(X,Q)=>{if(J.coerce)try{X.value=Boolean(X.value)}catch(G){}let $=X.value;if(typeof $==="boolean")return X;return X.issues.push({expected:"boolean",code:"invalid_type",input:$,inst:Y}),X}});var I2=P("$ZodNull",(Y,J)=>{K0.init(Y,J),Y._zod.pattern=kG,Y._zod.values=new Set([null]),Y._zod.parse=(X,Q)=>{let $=X.value;if($===null)return X;return X.issues.push({expected:"null",code:"invalid_type",input:$,inst:Y}),X}});var S2=P("$ZodUnknown",(Y,J)=>{K0.init(Y,J),Y._zod.parse=(X)=>X}),k2=P("$ZodNever",(Y,J)=>{K0.init(Y,J),Y._zod.parse=(X,Q)=>{return X.issues.push({expected:"never",code:"invalid_type",input:X.value,inst:Y}),X}});function sG(Y,J,X){if(Y.issues.length)J.issues.push(...O1(X,Y.issues));J.value[X]=Y.value}var x2=P("$ZodArray",(Y,J)=>{K0.init(Y,J),Y._zod.parse=(X,Q)=>{let $=X.value;if(!Array.isArray($))return X.issues.push({expected:"array",code:"invalid_type",input:$,inst:Y}),X;X.value=Array($.length);let G=[];for(let W=0;W<$.length;W++){let K=$[W],Z=J.element._zod.run({value:K,issues:[]},Q);if(Z instanceof Promise)G.push(Z.then((U)=>sG(U,X,W)));else sG(Z,X,W)}if(G.length)return Promise.all(G).then(()=>X);return X}});function uY(Y,J,X,Q){if(Y.issues.length)J.issues.push(...O1(X,Y.issues));if(Y.value===void 0){if(X in Q)J.value[X]=void 0}else J.value[X]=Y.value}function b2(Y){let J=Object.keys(Y.shape);for(let Q of J)if(!Y.shape?.[Q]?._zod?.traits?.has("$ZodType"))throw Error(`Invalid element at key "${Q}": expected a Zod schema`);let X=JX(Y.shape);return{...Y,keys:J,keySet:new Set(J),numKeys:J.length,optionalKeys:new Set(X)}}function v2(Y,J,X,Q,$,G){let W=[],K=$.keySet,Z=$.catchall._zod,U=Z.def.type;for(let L of Object.keys(J)){if(K.has(L))continue;if(U==="never"){W.push(L);continue}let j=Z.run({value:J[L],issues:[]},Q);if(j instanceof Promise)Y.push(j.then((N)=>uY(N,X,L,J)));else uY(j,X,L,J)}if(W.length)X.issues.push({code:"unrecognized_keys",keys:W,input:J,inst:G});if(!Y.length)return X;return Promise.all(Y).then(()=>{return X})}var LH=P("$ZodObject",(Y,J)=>{K0.init(Y,J);let X=U9(()=>b2(J));J0(Y._zod,"propValues",()=>{let W=J.shape,K={};for(let Z in W){let U=W[Z]._zod;if(U.values){K[Z]??(K[Z]=new Set);for(let L of U.values)K[Z].add(L)}}return K});let Q=l1,$=J.catchall,G;Y._zod.parse=(W,K)=>{G??(G=X.value);let Z=W.value;if(!Q(Z))return W.issues.push({expected:"object",code:"invalid_type",input:Z,inst:Y}),W;W.value={};let U=[],L=G.shape;for(let j of G.keys){let V=L[j]._zod.run({value:Z[j],issues:[]},K);if(V instanceof Promise)U.push(V.then((q)=>uY(q,W,j,Z)));else uY(V,W,j,Z)}if(!$)return U.length?Promise.all(U).then(()=>W):W;return v2(U,Z,W,K,X.value,Y)}}),h2=P("$ZodObjectJIT",(Y,J)=>{LH.init(Y,J);let X=Y._zod.parse,Q=U9(()=>b2(J)),$=(N)=>{let V=new KX(["shape","payload","ctx"]),q=Q.value,T=(E)=>{let b=vY(E);return`shape[${b}]._zod.run({ value: input[${b}], issues: [] }, ctx)`};V.write("const input = payload.value;");let S=Object.create(null),c=0;for(let E of q.keys)S[E]=`key_${c++}`;V.write("const newResult = {};");for(let E of q.keys){let b=S[E],f=vY(E);V.write(`const ${b} = ${T(E)};`),V.write(`
|
|
74
|
+
if (${b}.issues.length) {
|
|
75
|
+
payload.issues = payload.issues.concat(${b}.issues.map(iss => ({
|
|
76
76
|
...iss,
|
|
77
|
-
path: iss.path ? [${
|
|
77
|
+
path: iss.path ? [${f}, ...iss.path] : [${f}]
|
|
78
78
|
})));
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
|
|
82
|
-
if (${
|
|
83
|
-
if (${
|
|
84
|
-
newResult[${
|
|
82
|
+
if (${b}.value === undefined) {
|
|
83
|
+
if (${f} in input) {
|
|
84
|
+
newResult[${f}] = undefined;
|
|
85
85
|
}
|
|
86
86
|
} else {
|
|
87
|
-
newResult[${
|
|
87
|
+
newResult[${f}] = ${b}.value;
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
`)}Z.write("payload.value = newResult;"),Z.write("return payload;");let D=Z.compile();return(E,T)=>D(V,E,T)},$,W=IY,z=!e1.jitless,U=z&&KX.value,H=X.catchall,B;Y._zod.parse=(V,Z)=>{B??(B=Q.value);let j=V.value;if(!W(j))return V.issues.push({expected:"object",code:"invalid_type",input:j,inst:Y}),V;if(z&&U&&Z?.async===!1&&Z.jitless!==!0){if(!$)$=G(X.shape);if(V=$(V,Z),!H)return V;return sG([],j,V,Z,B,Y)}return J(V,Z)}});function NG(Y,X,J,Q){for(let $ of Y)if($.issues.length===0)return X.value=$.value,X;let G=Y.filter(($)=>!FY($));if(G.length===1)return X.value=G[0].value,G[0];return X.issues.push({code:"invalid_union",input:X.value,inst:J,errors:Y.map(($)=>$.issues.map((W)=>f0(W,Q,o0())))}),X}var jX=q("$ZodUnion",(Y,X)=>{a.init(Y,X),o(Y._zod,"optin",()=>X.options.some((G)=>G._zod.optin==="optional")?"optional":void 0),o(Y._zod,"optout",()=>X.options.some((G)=>G._zod.optout==="optional")?"optional":void 0),o(Y._zod,"values",()=>{if(X.options.every((G)=>G._zod.values))return new Set(X.options.flatMap((G)=>Array.from(G._zod.values)));return}),o(Y._zod,"pattern",()=>{if(X.options.every((G)=>G._zod.pattern)){let G=X.options.map(($)=>$._zod.pattern);return new RegExp(`^(${G.map(($)=>Z1($.source)).join("|")})$`)}return});let J=X.options.length===1,Q=X.options[0]._zod.run;Y._zod.parse=(G,$)=>{if(J)return Q(G,$);let W=!1,z=[];for(let L of X.options){let U=L._zod.run({value:G.value,issues:[]},$);if(U instanceof Promise)z.push(U),W=!0;else{if(U.issues.length===0)return U;z.push(U)}}if(!W)return NG(z,G,Y,$);return Promise.all(z).then((L)=>{return NG(L,G,Y,$)})}}),tG=q("$ZodDiscriminatedUnion",(Y,X)=>{jX.init(Y,X);let J=Y._zod.parse;o(Y._zod,"propValues",()=>{let G={};for(let $ of X.options){let W=$._zod.propValues;if(!W||Object.keys(W).length===0)throw Error(`Invalid discriminated union option at index "${X.options.indexOf($)}"`);for(let[z,L]of Object.entries(W)){if(!G[z])G[z]=new Set;for(let U of L)G[z].add(U)}}return G});let Q=uY(()=>{let G=X.options,$=new Map;for(let W of G){let z=W._zod.propValues?.[X.discriminator];if(!z||z.size===0)throw Error(`Invalid discriminated union option at index "${X.options.indexOf(W)}"`);for(let L of z){if($.has(L))throw Error(`Duplicate discriminator value "${String(L)}"`);$.set(L,W)}}return $});Y._zod.parse=(G,$)=>{let W=G.value;if(!IY(W))return G.issues.push({code:"invalid_type",expected:"object",input:W,inst:Y}),G;let z=Q.value.get(W?.[X.discriminator]);if(z)return z._zod.run(G,$);if(X.unionFallback)return J(G,$);return G.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:X.discriminator,input:W,path:[X.discriminator],inst:Y}),G}}),eG=q("$ZodIntersection",(Y,X)=>{a.init(Y,X),Y._zod.parse=(J,Q)=>{let G=J.value,$=X.left._zod.run({value:G,issues:[]},Q),W=X.right._zod.run({value:G,issues:[]},Q);if($ instanceof Promise||W instanceof Promise)return Promise.all([$,W]).then(([L,U])=>{return ZG(J,L,U)});return ZG(J,$,W)}});function OX(Y,X){if(Y===X)return{valid:!0,data:Y};if(Y instanceof Date&&X instanceof Date&&+Y===+X)return{valid:!0,data:Y};if(BY(Y)&&BY(X)){let J=Object.keys(X),Q=Object.keys(Y).filter(($)=>J.indexOf($)!==-1),G={...Y,...X};for(let $ of Q){let W=OX(Y[$],X[$]);if(!W.valid)return{valid:!1,mergeErrorPath:[$,...W.mergeErrorPath]};G[$]=W.data}return{valid:!0,data:G}}if(Array.isArray(Y)&&Array.isArray(X)){if(Y.length!==X.length)return{valid:!1,mergeErrorPath:[]};let J=[];for(let Q=0;Q<Y.length;Q++){let G=Y[Q],$=X[Q],W=OX(G,$);if(!W.valid)return{valid:!1,mergeErrorPath:[Q,...W.mergeErrorPath]};J.push(W.data)}return{valid:!0,data:J}}return{valid:!1,mergeErrorPath:[]}}function ZG(Y,X,J){if(X.issues.length)Y.issues.push(...X.issues);if(J.issues.length)Y.issues.push(...J.issues);if(FY(Y))return Y;let Q=OX(X.value,J.value);if(!Q.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(Q.mergeErrorPath)}`);return Y.value=Q.data,Y}var Y$=q("$ZodRecord",(Y,X)=>{a.init(Y,X),Y._zod.parse=(J,Q)=>{let G=J.value;if(!BY(G))return J.issues.push({expected:"record",code:"invalid_type",input:G,inst:Y}),J;let $=[];if(X.keyType._zod.values){let W=X.keyType._zod.values;J.value={};for(let L of W)if(typeof L==="string"||typeof L==="number"||typeof L==="symbol"){let U=X.valueType._zod.run({value:G[L],issues:[]},Q);if(U instanceof Promise)$.push(U.then((H)=>{if(H.issues.length)J.issues.push(...QY(L,H.issues));J.value[L]=H.value}));else{if(U.issues.length)J.issues.push(...QY(L,U.issues));J.value[L]=U.value}}let z;for(let L in G)if(!W.has(L))z=z??[],z.push(L);if(z&&z.length>0)J.issues.push({code:"unrecognized_keys",input:G,inst:Y,keys:z})}else{J.value={};for(let W of Reflect.ownKeys(G)){if(W==="__proto__")continue;let z=X.keyType._zod.run({value:W,issues:[]},Q);if(z instanceof Promise)throw Error("Async schemas not supported in object keys currently");if(z.issues.length){J.issues.push({code:"invalid_key",origin:"record",issues:z.issues.map((U)=>f0(U,Q,o0())),input:W,path:[W],inst:Y}),J.value[z.value]=z.value;continue}let L=X.valueType._zod.run({value:G[W],issues:[]},Q);if(L instanceof Promise)$.push(L.then((U)=>{if(U.issues.length)J.issues.push(...QY(W,U.issues));J.value[z.value]=U.value}));else{if(L.issues.length)J.issues.push(...QY(W,L.issues));J.value[z.value]=L.value}}}if($.length)return Promise.all($).then(()=>J);return J}});var X$=q("$ZodEnum",(Y,X)=>{a.init(Y,X);let J=H1(X.entries),Q=new Set(J);Y._zod.values=Q,Y._zod.pattern=new RegExp(`^(${J.filter((G)=>zX.has(typeof G)).map((G)=>typeof G==="string"?JY(G):G.toString()).join("|")})$`),Y._zod.parse=(G,$)=>{let W=G.value;if(Q.has(W))return G;return G.issues.push({code:"invalid_value",values:J,input:W,inst:Y}),G}}),J$=q("$ZodLiteral",(Y,X)=>{if(a.init(Y,X),X.values.length===0)throw Error("Cannot create literal schema with no valid values");Y._zod.values=new Set(X.values),Y._zod.pattern=new RegExp(`^(${X.values.map((J)=>typeof J==="string"?JY(J):J?JY(J.toString()):String(J)).join("|")})$`),Y._zod.parse=(J,Q)=>{let G=J.value;if(Y._zod.values.has(G))return J;return J.issues.push({code:"invalid_value",values:X.values,input:G,inst:Y}),J}});var Q$=q("$ZodTransform",(Y,X)=>{a.init(Y,X),Y._zod.parse=(J,Q)=>{if(Q.direction==="backward")throw new U1(Y.constructor.name);let G=X.transform(J.value,J);if(Q.async)return(G instanceof Promise?G:Promise.resolve(G)).then((W)=>{return J.value=W,J});if(G instanceof Promise)throw new XY;return J.value=G,J}});function VG(Y,X){if(Y.issues.length&&X===void 0)return{issues:[],value:void 0};return Y}var G$=q("$ZodOptional",(Y,X)=>{a.init(Y,X),Y._zod.optin="optional",Y._zod.optout="optional",o(Y._zod,"values",()=>{return X.innerType._zod.values?new Set([...X.innerType._zod.values,void 0]):void 0}),o(Y._zod,"pattern",()=>{let J=X.innerType._zod.pattern;return J?new RegExp(`^(${Z1(J.source)})?$`):void 0}),Y._zod.parse=(J,Q)=>{if(X.innerType._zod.optin==="optional"){let G=X.innerType._zod.run(J,Q);if(G instanceof Promise)return G.then(($)=>VG($,J.value));return VG(G,J.value)}if(J.value===void 0)return J;return X.innerType._zod.run(J,Q)}}),$$=q("$ZodNullable",(Y,X)=>{a.init(Y,X),o(Y._zod,"optin",()=>X.innerType._zod.optin),o(Y._zod,"optout",()=>X.innerType._zod.optout),o(Y._zod,"pattern",()=>{let J=X.innerType._zod.pattern;return J?new RegExp(`^(${Z1(J.source)}|null)$`):void 0}),o(Y._zod,"values",()=>{return X.innerType._zod.values?new Set([...X.innerType._zod.values,null]):void 0}),Y._zod.parse=(J,Q)=>{if(J.value===null)return J;return X.innerType._zod.run(J,Q)}}),W$=q("$ZodDefault",(Y,X)=>{a.init(Y,X),Y._zod.optin="optional",o(Y._zod,"values",()=>X.innerType._zod.values),Y._zod.parse=(J,Q)=>{if(Q.direction==="backward")return X.innerType._zod.run(J,Q);if(J.value===void 0)return J.value=X.defaultValue,J;let G=X.innerType._zod.run(J,Q);if(G instanceof Promise)return G.then(($)=>BG($,X));return BG(G,X)}});function BG(Y,X){if(Y.value===void 0)Y.value=X.defaultValue;return Y}var K$=q("$ZodPrefault",(Y,X)=>{a.init(Y,X),Y._zod.optin="optional",o(Y._zod,"values",()=>X.innerType._zod.values),Y._zod.parse=(J,Q)=>{if(Q.direction==="backward")return X.innerType._zod.run(J,Q);if(J.value===void 0)J.value=X.defaultValue;return X.innerType._zod.run(J,Q)}}),z$=q("$ZodNonOptional",(Y,X)=>{a.init(Y,X),o(Y._zod,"values",()=>{let J=X.innerType._zod.values;return J?new Set([...J].filter((Q)=>Q!==void 0)):void 0}),Y._zod.parse=(J,Q)=>{let G=X.innerType._zod.run(J,Q);if(G instanceof Promise)return G.then(($)=>FG($,Y));return FG(G,Y)}});function FG(Y,X){if(!Y.issues.length&&Y.value===void 0)Y.issues.push({code:"invalid_type",expected:"nonoptional",input:Y.value,inst:X});return Y}var U$=q("$ZodCatch",(Y,X)=>{a.init(Y,X),o(Y._zod,"optin",()=>X.innerType._zod.optin),o(Y._zod,"optout",()=>X.innerType._zod.optout),o(Y._zod,"values",()=>X.innerType._zod.values),Y._zod.parse=(J,Q)=>{if(Q.direction==="backward")return X.innerType._zod.run(J,Q);let G=X.innerType._zod.run(J,Q);if(G instanceof Promise)return G.then(($)=>{if(J.value=$.value,$.issues.length)J.value=X.catchValue({...J,error:{issues:$.issues.map((W)=>f0(W,Q,o0()))},input:J.value}),J.issues=[];return J});if(J.value=G.value,G.issues.length)J.value=X.catchValue({...J,error:{issues:G.issues.map(($)=>f0($,Q,o0()))},input:J.value}),J.issues=[];return J}});var L$=q("$ZodPipe",(Y,X)=>{a.init(Y,X),o(Y._zod,"values",()=>X.in._zod.values),o(Y._zod,"optin",()=>X.in._zod.optin),o(Y._zod,"optout",()=>X.out._zod.optout),o(Y._zod,"propValues",()=>X.in._zod.propValues),Y._zod.parse=(J,Q)=>{if(Q.direction==="backward"){let $=X.out._zod.run(J,Q);if($ instanceof Promise)return $.then((W)=>W9(W,X.in,Q));return W9($,X.in,Q)}let G=X.in._zod.run(J,Q);if(G instanceof Promise)return G.then(($)=>W9($,X.out,Q));return W9(G,X.out,Q)}});function W9(Y,X,J){if(Y.issues.length)return Y.aborted=!0,Y;return X._zod.run({value:Y.value,issues:Y.issues},J)}var H$=q("$ZodReadonly",(Y,X)=>{a.init(Y,X),o(Y._zod,"propValues",()=>X.innerType._zod.propValues),o(Y._zod,"values",()=>X.innerType._zod.values),o(Y._zod,"optin",()=>X.innerType._zod.optin),o(Y._zod,"optout",()=>X.innerType._zod.optout),Y._zod.parse=(J,Q)=>{if(Q.direction==="backward")return X.innerType._zod.run(J,Q);let G=X.innerType._zod.run(J,Q);if(G instanceof Promise)return G.then(OG);return OG(G)}});function OG(Y){return Y.value=Object.freeze(Y.value),Y}var N$=q("$ZodLazy",(Y,X)=>{a.init(Y,X),o(Y._zod,"innerType",()=>X.getter()),o(Y._zod,"pattern",()=>Y._zod.innerType._zod.pattern),o(Y._zod,"propValues",()=>Y._zod.innerType._zod.propValues),o(Y._zod,"optin",()=>Y._zod.innerType._zod.optin??void 0),o(Y._zod,"optout",()=>Y._zod.innerType._zod.optout??void 0),Y._zod.parse=(J,Q)=>{return Y._zod.innerType._zod.run(J,Q)}}),Z$=q("$ZodCustom",(Y,X)=>{q0.init(Y,X),a.init(Y,X),Y._zod.parse=(J,Q)=>{return J},Y._zod.check=(J)=>{let Q=J.value,G=X.fn(Q);if(G instanceof Promise)return G.then(($)=>qG($,J,Q,Y));qG(G,J,Q,Y);return}});function qG(Y,X,J,Q){if(!Y){let G={code:"custom",input:J,inst:Q,path:[...Q._zod.def.path??[]],continue:!Q._zod.def.abort};if(Q._zod.def.params)G.params=Q._zod.def.params;X.issues.push(pY(G))}}var UO=Symbol("ZodOutput"),LO=Symbol("ZodInput");class U9{constructor(){this._map=new WeakMap,this._idmap=new Map}add(Y,...X){let J=X[0];if(this._map.set(Y,J),J&&typeof J==="object"&&"id"in J){if(this._idmap.has(J.id))throw Error(`ID ${J.id} already exists in the registry`);this._idmap.set(J.id,Y)}return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(Y){let X=this._map.get(Y);if(X&&typeof X==="object"&&"id"in X)this._idmap.delete(X.id);return this._map.delete(Y),this}get(Y){let X=Y._zod.parent;if(X){let J={...this.get(X)??{}};delete J.id;let Q={...J,...this._map.get(Y)};return Object.keys(Q).length?Q:void 0}return this._map.get(Y)}has(Y){return this._map.has(Y)}}function QL(){return new U9}var _Y=QL();function V$(Y,X){return new Y({type:"string",...y(X)})}function B$(Y,X){return new Y({type:"string",format:"email",check:"string_format",abort:!1,...y(X)})}function DX(Y,X){return new Y({type:"string",format:"guid",check:"string_format",abort:!1,...y(X)})}function F$(Y,X){return new Y({type:"string",format:"uuid",check:"string_format",abort:!1,...y(X)})}function O$(Y,X){return new Y({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...y(X)})}function q$(Y,X){return new Y({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...y(X)})}function j$(Y,X){return new Y({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...y(X)})}function D$(Y,X){return new Y({type:"string",format:"url",check:"string_format",abort:!1,...y(X)})}function P$(Y,X){return new Y({type:"string",format:"emoji",check:"string_format",abort:!1,...y(X)})}function M$(Y,X){return new Y({type:"string",format:"nanoid",check:"string_format",abort:!1,...y(X)})}function E$(Y,X){return new Y({type:"string",format:"cuid",check:"string_format",abort:!1,...y(X)})}function w$(Y,X){return new Y({type:"string",format:"cuid2",check:"string_format",abort:!1,...y(X)})}function A$(Y,X){return new Y({type:"string",format:"ulid",check:"string_format",abort:!1,...y(X)})}function T$(Y,X){return new Y({type:"string",format:"xid",check:"string_format",abort:!1,...y(X)})}function R$(Y,X){return new Y({type:"string",format:"ksuid",check:"string_format",abort:!1,...y(X)})}function C$(Y,X){return new Y({type:"string",format:"ipv4",check:"string_format",abort:!1,...y(X)})}function I$(Y,X){return new Y({type:"string",format:"ipv6",check:"string_format",abort:!1,...y(X)})}function _$(Y,X){return new Y({type:"string",format:"cidrv4",check:"string_format",abort:!1,...y(X)})}function S$(Y,X){return new Y({type:"string",format:"cidrv6",check:"string_format",abort:!1,...y(X)})}function k$(Y,X){return new Y({type:"string",format:"base64",check:"string_format",abort:!1,...y(X)})}function x$(Y,X){return new Y({type:"string",format:"base64url",check:"string_format",abort:!1,...y(X)})}function b$(Y,X){return new Y({type:"string",format:"e164",check:"string_format",abort:!1,...y(X)})}function v$(Y,X){return new Y({type:"string",format:"jwt",check:"string_format",abort:!1,...y(X)})}function h$(Y,X){return new Y({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...y(X)})}function g$(Y,X){return new Y({type:"string",format:"date",check:"string_format",...y(X)})}function y$(Y,X){return new Y({type:"string",format:"time",check:"string_format",precision:null,...y(X)})}function f$(Y,X){return new Y({type:"string",format:"duration",check:"string_format",...y(X)})}function m$(Y,X){return new Y({type:"number",checks:[],...y(X)})}function c$(Y,X){return new Y({type:"number",check:"number_format",abort:!1,format:"safeint",...y(X)})}function u$(Y,X){return new Y({type:"boolean",...y(X)})}function p$(Y,X){return new Y({type:"null",...y(X)})}function l$(Y){return new Y({type:"unknown"})}function d$(Y,X){return new Y({type:"never",...y(X)})}function L9(Y,X){return new VX({check:"less_than",...y(X),value:Y,inclusive:!1})}function q1(Y,X){return new VX({check:"less_than",...y(X),value:Y,inclusive:!0})}function H9(Y,X){return new BX({check:"greater_than",...y(X),value:Y,inclusive:!1})}function j1(Y,X){return new BX({check:"greater_than",...y(X),value:Y,inclusive:!0})}function N9(Y,X){return new a5({check:"multiple_of",...y(X),value:Y})}function Z9(Y,X){return new e5({check:"max_length",...y(X),maximum:Y})}function lY(Y,X){return new YG({check:"min_length",...y(X),minimum:Y})}function V9(Y,X){return new XG({check:"length_equals",...y(X),length:Y})}function PX(Y,X){return new JG({check:"string_format",format:"regex",...y(X),pattern:Y})}function MX(Y){return new QG({check:"string_format",format:"lowercase",...y(Y)})}function EX(Y){return new GG({check:"string_format",format:"uppercase",...y(Y)})}function wX(Y,X){return new $G({check:"string_format",format:"includes",...y(X),includes:Y})}function AX(Y,X){return new WG({check:"string_format",format:"starts_with",...y(X),prefix:Y})}function TX(Y,X){return new KG({check:"string_format",format:"ends_with",...y(X),suffix:Y})}function SY(Y){return new zG({check:"overwrite",tx:Y})}function RX(Y){return SY((X)=>X.normalize(Y))}function CX(){return SY((Y)=>Y.trim())}function IX(){return SY((Y)=>Y.toLowerCase())}function _X(){return SY((Y)=>Y.toUpperCase())}function i$(Y,X,J){return new Y({type:"array",element:X,...y(J)})}function o$(Y,X,J){let Q=y(J);return Q.abort??(Q.abort=!0),new Y({type:"custom",check:"custom",fn:X,...Q})}function n$(Y,X,J){return new Y({type:"custom",check:"custom",fn:X,...y(J)})}function r$(Y){let X=GL((J)=>{return J.addIssue=(Q)=>{if(typeof Q==="string")J.issues.push(pY(Q,J.value,X._zod.def));else{let G=Q;if(G.fatal)G.continue=!1;G.code??(G.code="custom"),G.input??(G.input=J.value),G.inst??(G.inst=X),G.continue??(G.continue=!X._zod.def.abort),J.issues.push(pY(G))}},Y(J.value,J)});return X}function GL(Y,X){let J=new q0({check:"custom",...y(X)});return J._zod.check=Y,J}class SX{constructor(Y){this.counter=0,this.metadataRegistry=Y?.metadata??_Y,this.target=Y?.target??"draft-2020-12",this.unrepresentable=Y?.unrepresentable??"throw",this.override=Y?.override??(()=>{}),this.io=Y?.io??"output",this.seen=new Map}process(Y,X={path:[],schemaPath:[]}){var J;let Q=Y._zod.def,G={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},$=this.seen.get(Y);if($){if($.count++,X.schemaPath.includes(Y))$.cycle=X.path;return $.schema}let W={schema:{},count:1,cycle:void 0,path:X.path};this.seen.set(Y,W);let z=Y._zod.toJSONSchema?.();if(z)W.schema=z;else{let H={...X,schemaPath:[...X.schemaPath,Y],path:X.path},B=Y._zod.parent;if(B)W.ref=B,this.process(B,H),this.seen.get(B).isParent=!0;else{let V=W.schema;switch(Q.type){case"string":{let Z=V;Z.type="string";let{minimum:j,maximum:O,format:C,patterns:R,contentEncoding:D}=Y._zod.bag;if(typeof j==="number")Z.minLength=j;if(typeof O==="number")Z.maxLength=O;if(C){if(Z.format=G[C]??C,Z.format==="")delete Z.format}if(D)Z.contentEncoding=D;if(R&&R.size>0){let E=[...R];if(E.length===1)Z.pattern=E[0].source;else if(E.length>1)W.schema.allOf=[...E.map((T)=>({...this.target==="draft-7"||this.target==="draft-4"||this.target==="openapi-3.0"?{type:"string"}:{},pattern:T.source}))]}break}case"number":{let Z=V,{minimum:j,maximum:O,format:C,multipleOf:R,exclusiveMaximum:D,exclusiveMinimum:E}=Y._zod.bag;if(typeof C==="string"&&C.includes("int"))Z.type="integer";else Z.type="number";if(typeof E==="number")if(this.target==="draft-4"||this.target==="openapi-3.0")Z.minimum=E,Z.exclusiveMinimum=!0;else Z.exclusiveMinimum=E;if(typeof j==="number"){if(Z.minimum=j,typeof E==="number"&&this.target!=="draft-4")if(E>=j)delete Z.minimum;else delete Z.exclusiveMinimum}if(typeof D==="number")if(this.target==="draft-4"||this.target==="openapi-3.0")Z.maximum=D,Z.exclusiveMaximum=!0;else Z.exclusiveMaximum=D;if(typeof O==="number"){if(Z.maximum=O,typeof D==="number"&&this.target!=="draft-4")if(D<=O)delete Z.maximum;else delete Z.exclusiveMaximum}if(typeof R==="number")Z.multipleOf=R;break}case"boolean":{let Z=V;Z.type="boolean";break}case"bigint":{if(this.unrepresentable==="throw")throw Error("BigInt cannot be represented in JSON Schema");break}case"symbol":{if(this.unrepresentable==="throw")throw Error("Symbols cannot be represented in JSON Schema");break}case"null":{if(this.target==="openapi-3.0")V.type="string",V.nullable=!0,V.enum=[null];else V.type="null";break}case"any":break;case"unknown":break;case"undefined":{if(this.unrepresentable==="throw")throw Error("Undefined cannot be represented in JSON Schema");break}case"void":{if(this.unrepresentable==="throw")throw Error("Void cannot be represented in JSON Schema");break}case"never":{V.not={};break}case"date":{if(this.unrepresentable==="throw")throw Error("Date cannot be represented in JSON Schema");break}case"array":{let Z=V,{minimum:j,maximum:O}=Y._zod.bag;if(typeof j==="number")Z.minItems=j;if(typeof O==="number")Z.maxItems=O;Z.type="array",Z.items=this.process(Q.element,{...H,path:[...H.path,"items"]});break}case"object":{let Z=V;Z.type="object",Z.properties={};let j=Q.shape;for(let R in j)Z.properties[R]=this.process(j[R],{...H,path:[...H.path,"properties",R]});let O=new Set(Object.keys(j)),C=new Set([...O].filter((R)=>{let D=Q.shape[R]._zod;if(this.io==="input")return D.optin===void 0;else return D.optout===void 0}));if(C.size>0)Z.required=Array.from(C);if(Q.catchall?._zod.def.type==="never")Z.additionalProperties=!1;else if(!Q.catchall){if(this.io==="output")Z.additionalProperties=!1}else if(Q.catchall)Z.additionalProperties=this.process(Q.catchall,{...H,path:[...H.path,"additionalProperties"]});break}case"union":{let Z=V,j=Q.options.map((O,C)=>this.process(O,{...H,path:[...H.path,"anyOf",C]}));Z.anyOf=j;break}case"intersection":{let Z=V,j=this.process(Q.left,{...H,path:[...H.path,"allOf",0]}),O=this.process(Q.right,{...H,path:[...H.path,"allOf",1]}),C=(D)=>("allOf"in D)&&Object.keys(D).length===1,R=[...C(j)?j.allOf:[j],...C(O)?O.allOf:[O]];Z.allOf=R;break}case"tuple":{let Z=V;Z.type="array";let j=this.target==="draft-2020-12"?"prefixItems":"items",O=this.target==="draft-2020-12"?"items":this.target==="openapi-3.0"?"items":"additionalItems",C=Q.items.map((T,g)=>this.process(T,{...H,path:[...H.path,j,g]})),R=Q.rest?this.process(Q.rest,{...H,path:[...H.path,O,...this.target==="openapi-3.0"?[Q.items.length]:[]]}):null;if(this.target==="draft-2020-12"){if(Z.prefixItems=C,R)Z.items=R}else if(this.target==="openapi-3.0"){if(Z.items={anyOf:C},R)Z.items.anyOf.push(R);if(Z.minItems=C.length,!R)Z.maxItems=C.length}else if(Z.items=C,R)Z.additionalItems=R;let{minimum:D,maximum:E}=Y._zod.bag;if(typeof D==="number")Z.minItems=D;if(typeof E==="number")Z.maxItems=E;break}case"record":{let Z=V;if(Z.type="object",this.target==="draft-7"||this.target==="draft-2020-12")Z.propertyNames=this.process(Q.keyType,{...H,path:[...H.path,"propertyNames"]});Z.additionalProperties=this.process(Q.valueType,{...H,path:[...H.path,"additionalProperties"]});break}case"map":{if(this.unrepresentable==="throw")throw Error("Map cannot be represented in JSON Schema");break}case"set":{if(this.unrepresentable==="throw")throw Error("Set cannot be represented in JSON Schema");break}case"enum":{let Z=V,j=H1(Q.entries);if(j.every((O)=>typeof O==="number"))Z.type="number";if(j.every((O)=>typeof O==="string"))Z.type="string";Z.enum=j;break}case"literal":{let Z=V,j=[];for(let O of Q.values)if(O===void 0){if(this.unrepresentable==="throw")throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof O==="bigint")if(this.unrepresentable==="throw")throw Error("BigInt literals cannot be represented in JSON Schema");else j.push(Number(O));else j.push(O);if(j.length===0);else if(j.length===1){let O=j[0];if(Z.type=O===null?"null":typeof O,this.target==="draft-4"||this.target==="openapi-3.0")Z.enum=[O];else Z.const=O}else{if(j.every((O)=>typeof O==="number"))Z.type="number";if(j.every((O)=>typeof O==="string"))Z.type="string";if(j.every((O)=>typeof O==="boolean"))Z.type="string";if(j.every((O)=>O===null))Z.type="null";Z.enum=j}break}case"file":{let Z=V,j={type:"string",format:"binary",contentEncoding:"binary"},{minimum:O,maximum:C,mime:R}=Y._zod.bag;if(O!==void 0)j.minLength=O;if(C!==void 0)j.maxLength=C;if(R)if(R.length===1)j.contentMediaType=R[0],Object.assign(Z,j);else Z.anyOf=R.map((D)=>{return{...j,contentMediaType:D}});else Object.assign(Z,j);break}case"transform":{if(this.unrepresentable==="throw")throw Error("Transforms cannot be represented in JSON Schema");break}case"nullable":{let Z=this.process(Q.innerType,H);if(this.target==="openapi-3.0")W.ref=Q.innerType,V.nullable=!0;else V.anyOf=[Z,{type:"null"}];break}case"nonoptional":{this.process(Q.innerType,H),W.ref=Q.innerType;break}case"success":{let Z=V;Z.type="boolean";break}case"default":{this.process(Q.innerType,H),W.ref=Q.innerType,V.default=JSON.parse(JSON.stringify(Q.defaultValue));break}case"prefault":{if(this.process(Q.innerType,H),W.ref=Q.innerType,this.io==="input")V._prefault=JSON.parse(JSON.stringify(Q.defaultValue));break}case"catch":{this.process(Q.innerType,H),W.ref=Q.innerType;let Z;try{Z=Q.catchValue(void 0)}catch{throw Error("Dynamic catch values are not supported in JSON Schema")}V.default=Z;break}case"nan":{if(this.unrepresentable==="throw")throw Error("NaN cannot be represented in JSON Schema");break}case"template_literal":{let Z=V,j=Y._zod.pattern;if(!j)throw Error("Pattern not found in template literal");Z.type="string",Z.pattern=j.source;break}case"pipe":{let Z=this.io==="input"?Q.in._zod.def.type==="transform"?Q.out:Q.in:Q.out;this.process(Z,H),W.ref=Z;break}case"readonly":{this.process(Q.innerType,H),W.ref=Q.innerType,V.readOnly=!0;break}case"promise":{this.process(Q.innerType,H),W.ref=Q.innerType;break}case"optional":{this.process(Q.innerType,H),W.ref=Q.innerType;break}case"lazy":{let Z=Y._zod.innerType;this.process(Z,H),W.ref=Z;break}case"custom":{if(this.unrepresentable==="throw")throw Error("Custom types cannot be represented in JSON Schema");break}case"function":{if(this.unrepresentable==="throw")throw Error("Function types cannot be represented in JSON Schema");break}default:}}}let L=this.metadataRegistry.get(Y);if(L)Object.assign(W.schema,L);if(this.io==="input"&&N0(Y))delete W.schema.examples,delete W.schema.default;if(this.io==="input"&&W.schema._prefault)(J=W.schema).default??(J.default=W.schema._prefault);return delete W.schema._prefault,this.seen.get(Y).schema}emit(Y,X){let J={cycles:X?.cycles??"ref",reused:X?.reused??"inline",external:X?.external??void 0},Q=this.seen.get(Y);if(!Q)throw Error("Unprocessed schema. This is a bug in Zod.");let G=(U)=>{let H=this.target==="draft-2020-12"?"$defs":"definitions";if(J.external){let j=J.external.registry.get(U[0])?.id,O=J.external.uri??((R)=>R);if(j)return{ref:O(j)};let C=U[1].defId??U[1].schema.id??`schema${this.counter++}`;return U[1].defId=C,{defId:C,ref:`${O("__shared")}#/${H}/${C}`}}if(U[1]===Q)return{ref:"#"};let V=`${"#"}/${H}/`,Z=U[1].schema.id??`__schema${this.counter++}`;return{defId:Z,ref:V+Z}},$=(U)=>{if(U[1].schema.$ref)return;let H=U[1],{ref:B,defId:V}=G(U);if(H.def={...H.schema},V)H.defId=V;let Z=H.schema;for(let j in Z)delete Z[j];Z.$ref=B};if(J.cycles==="throw")for(let U of this.seen.entries()){let H=U[1];if(H.cycle)throw Error(`Cycle detected: #/${H.cycle?.join("/")}/<root>
|
|
90
|
+
`)}V.write("payload.value = newResult;"),V.write("return payload;");let _=V.compile();return(E,b)=>_(N,E,b)},G,W=l1,K=!bY.jitless,U=K&&eJ.value,L=J.catchall,j;Y._zod.parse=(N,V)=>{j??(j=Q.value);let q=N.value;if(!W(q))return N.issues.push({expected:"object",code:"invalid_type",input:q,inst:Y}),N;if(K&&U&&V?.async===!1&&V.jitless!==!0){if(!G)G=$(J.shape);if(N=G(N,V),!L)return N;return v2([],q,N,V,j,Y)}return X(N,V)}});function aG(Y,J,X,Q){for(let G of Y)if(G.issues.length===0)return J.value=G.value,J;let $=Y.filter((G)=>!I1(G));if($.length===1)return J.value=$[0].value,$[0];return J.issues.push({code:"invalid_union",input:J.value,inst:X,errors:Y.map((G)=>G.issues.map((W)=>t0(W,Q,G1())))}),J}var LX=P("$ZodUnion",(Y,J)=>{K0.init(Y,J),J0(Y._zod,"optin",()=>J.options.some(($)=>$._zod.optin==="optional")?"optional":void 0),J0(Y._zod,"optout",()=>J.options.some(($)=>$._zod.optout==="optional")?"optional":void 0),J0(Y._zod,"values",()=>{if(J.options.every(($)=>$._zod.values))return new Set(J.options.flatMap(($)=>Array.from($._zod.values)));return}),J0(Y._zod,"pattern",()=>{if(J.options.every(($)=>$._zod.pattern)){let $=J.options.map((G)=>G._zod.pattern);return new RegExp(`^(${$.map((G)=>f9(G.source)).join("|")})$`)}return});let X=J.options.length===1,Q=J.options[0]._zod.run;Y._zod.parse=($,G)=>{if(X)return Q($,G);let W=!1,K=[];for(let Z of J.options){let U=Z._zod.run({value:$.value,issues:[]},G);if(U instanceof Promise)K.push(U),W=!0;else{if(U.issues.length===0)return U;K.push(U)}}if(!W)return aG(K,$,Y,G);return Promise.all(K).then((Z)=>{return aG(Z,$,Y,G)})}}),g2=P("$ZodDiscriminatedUnion",(Y,J)=>{LX.init(Y,J);let X=Y._zod.parse;J0(Y._zod,"propValues",()=>{let $={};for(let G of J.options){let W=G._zod.propValues;if(!W||Object.keys(W).length===0)throw Error(`Invalid discriminated union option at index "${J.options.indexOf(G)}"`);for(let[K,Z]of Object.entries(W)){if(!$[K])$[K]=new Set;for(let U of Z)$[K].add(U)}}return $});let Q=U9(()=>{let $=J.options,G=new Map;for(let W of $){let K=W._zod.propValues?.[J.discriminator];if(!K||K.size===0)throw Error(`Invalid discriminated union option at index "${J.options.indexOf(W)}"`);for(let Z of K){if(G.has(Z))throw Error(`Duplicate discriminator value "${String(Z)}"`);G.set(Z,W)}}return G});Y._zod.parse=($,G)=>{let W=$.value;if(!l1(W))return $.issues.push({code:"invalid_type",expected:"object",input:W,inst:Y}),$;let K=Q.value.get(W?.[J.discriminator]);if(K)return K._zod.run($,G);if(J.unionFallback)return X($,G);return $.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:J.discriminator,input:W,path:[J.discriminator],inst:Y}),$}}),y2=P("$ZodIntersection",(Y,J)=>{K0.init(Y,J),Y._zod.parse=(X,Q)=>{let $=X.value,G=J.left._zod.run({value:$,issues:[]},Q),W=J.right._zod.run({value:$,issues:[]},Q);if(G instanceof Promise||W instanceof Promise)return Promise.all([G,W]).then(([Z,U])=>{return tG(X,Z,U)});return tG(X,G,W)}});function UX(Y,J){if(Y===J)return{valid:!0,data:Y};if(Y instanceof Date&&J instanceof Date&&+Y===+J)return{valid:!0,data:Y};if(_1(Y)&&_1(J)){let X=Object.keys(J),Q=Object.keys(Y).filter((G)=>X.indexOf(G)!==-1),$={...Y,...J};for(let G of Q){let W=UX(Y[G],J[G]);if(!W.valid)return{valid:!1,mergeErrorPath:[G,...W.mergeErrorPath]};$[G]=W.data}return{valid:!0,data:$}}if(Array.isArray(Y)&&Array.isArray(J)){if(Y.length!==J.length)return{valid:!1,mergeErrorPath:[]};let X=[];for(let Q=0;Q<Y.length;Q++){let $=Y[Q],G=J[Q],W=UX($,G);if(!W.valid)return{valid:!1,mergeErrorPath:[Q,...W.mergeErrorPath]};X.push(W.data)}return{valid:!0,data:X}}return{valid:!1,mergeErrorPath:[]}}function tG(Y,J,X){if(J.issues.length)Y.issues.push(...J.issues);if(X.issues.length)Y.issues.push(...X.issues);if(I1(Y))return Y;let Q=UX(J.value,X.value);if(!Q.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(Q.mergeErrorPath)}`);return Y.value=Q.data,Y}var f2=P("$ZodRecord",(Y,J)=>{K0.init(Y,J),Y._zod.parse=(X,Q)=>{let $=X.value;if(!_1($))return X.issues.push({expected:"record",code:"invalid_type",input:$,inst:Y}),X;let G=[];if(J.keyType._zod.values){let W=J.keyType._zod.values;X.value={};for(let Z of W)if(typeof Z==="string"||typeof Z==="number"||typeof Z==="symbol"){let U=J.valueType._zod.run({value:$[Z],issues:[]},Q);if(U instanceof Promise)G.push(U.then((L)=>{if(L.issues.length)X.issues.push(...O1(Z,L.issues));X.value[Z]=L.value}));else{if(U.issues.length)X.issues.push(...O1(Z,U.issues));X.value[Z]=U.value}}let K;for(let Z in $)if(!W.has(Z))K=K??[],K.push(Z);if(K&&K.length>0)X.issues.push({code:"unrecognized_keys",input:$,inst:Y,keys:K})}else{X.value={};for(let W of Reflect.ownKeys($)){if(W==="__proto__")continue;let K=J.keyType._zod.run({value:W,issues:[]},Q);if(K instanceof Promise)throw Error("Async schemas not supported in object keys currently");if(K.issues.length){X.issues.push({code:"invalid_key",origin:"record",issues:K.issues.map((U)=>t0(U,Q,G1())),input:W,path:[W],inst:Y}),X.value[K.value]=K.value;continue}let Z=J.valueType._zod.run({value:$[W],issues:[]},Q);if(Z instanceof Promise)G.push(Z.then((U)=>{if(U.issues.length)X.issues.push(...O1(W,U.issues));X.value[K.value]=U.value}));else{if(Z.issues.length)X.issues.push(...O1(W,Z.issues));X.value[K.value]=Z.value}}}if(G.length)return Promise.all(G).then(()=>X);return X}});var m2=P("$ZodEnum",(Y,J)=>{K0.init(Y,J);let X=g9(J.entries),Q=new Set(X);Y._zod.values=Q,Y._zod.pattern=new RegExp(`^(${X.filter(($)=>YX.has(typeof $)).map(($)=>typeof $==="string"?j1($):$.toString()).join("|")})$`),Y._zod.parse=($,G)=>{let W=$.value;if(Q.has(W))return $;return $.issues.push({code:"invalid_value",values:X,input:W,inst:Y}),$}}),c2=P("$ZodLiteral",(Y,J)=>{if(K0.init(Y,J),J.values.length===0)throw Error("Cannot create literal schema with no valid values");Y._zod.values=new Set(J.values),Y._zod.pattern=new RegExp(`^(${J.values.map((X)=>typeof X==="string"?j1(X):X?j1(X.toString()):String(X)).join("|")})$`),Y._zod.parse=(X,Q)=>{let $=X.value;if(Y._zod.values.has($))return X;return X.issues.push({code:"invalid_value",values:J.values,input:$,inst:Y}),X}});var u2=P("$ZodTransform",(Y,J)=>{K0.init(Y,J),Y._zod.parse=(X,Q)=>{if(Q.direction==="backward")throw new v9(Y.constructor.name);let $=J.transform(X.value,X);if(Q.async)return($ instanceof Promise?$:Promise.resolve($)).then((W)=>{return X.value=W,X});if($ instanceof Promise)throw new F1;return X.value=$,X}});function eG(Y,J){if(Y.issues.length&&J===void 0)return{issues:[],value:void 0};return Y}var p2=P("$ZodOptional",(Y,J)=>{K0.init(Y,J),Y._zod.optin="optional",Y._zod.optout="optional",J0(Y._zod,"values",()=>{return J.innerType._zod.values?new Set([...J.innerType._zod.values,void 0]):void 0}),J0(Y._zod,"pattern",()=>{let X=J.innerType._zod.pattern;return X?new RegExp(`^(${f9(X.source)})?$`):void 0}),Y._zod.parse=(X,Q)=>{if(J.innerType._zod.optin==="optional"){let $=J.innerType._zod.run(X,Q);if($ instanceof Promise)return $.then((G)=>eG(G,X.value));return eG($,X.value)}if(X.value===void 0)return X;return J.innerType._zod.run(X,Q)}}),l2=P("$ZodNullable",(Y,J)=>{K0.init(Y,J),J0(Y._zod,"optin",()=>J.innerType._zod.optin),J0(Y._zod,"optout",()=>J.innerType._zod.optout),J0(Y._zod,"pattern",()=>{let X=J.innerType._zod.pattern;return X?new RegExp(`^(${f9(X.source)}|null)$`):void 0}),J0(Y._zod,"values",()=>{return J.innerType._zod.values?new Set([...J.innerType._zod.values,null]):void 0}),Y._zod.parse=(X,Q)=>{if(X.value===null)return X;return J.innerType._zod.run(X,Q)}}),d2=P("$ZodDefault",(Y,J)=>{K0.init(Y,J),Y._zod.optin="optional",J0(Y._zod,"values",()=>J.innerType._zod.values),Y._zod.parse=(X,Q)=>{if(Q.direction==="backward")return J.innerType._zod.run(X,Q);if(X.value===void 0)return X.value=J.defaultValue,X;let $=J.innerType._zod.run(X,Q);if($ instanceof Promise)return $.then((G)=>Y2(G,J));return Y2($,J)}});function Y2(Y,J){if(Y.value===void 0)Y.value=J.defaultValue;return Y}var i2=P("$ZodPrefault",(Y,J)=>{K0.init(Y,J),Y._zod.optin="optional",J0(Y._zod,"values",()=>J.innerType._zod.values),Y._zod.parse=(X,Q)=>{if(Q.direction==="backward")return J.innerType._zod.run(X,Q);if(X.value===void 0)X.value=J.defaultValue;return J.innerType._zod.run(X,Q)}}),o2=P("$ZodNonOptional",(Y,J)=>{K0.init(Y,J),J0(Y._zod,"values",()=>{let X=J.innerType._zod.values;return X?new Set([...X].filter((Q)=>Q!==void 0)):void 0}),Y._zod.parse=(X,Q)=>{let $=J.innerType._zod.run(X,Q);if($ instanceof Promise)return $.then((G)=>J2(G,Y));return J2($,Y)}});function J2(Y,J){if(!Y.issues.length&&Y.value===void 0)Y.issues.push({code:"invalid_type",expected:"nonoptional",input:Y.value,inst:J});return Y}var n2=P("$ZodCatch",(Y,J)=>{K0.init(Y,J),J0(Y._zod,"optin",()=>J.innerType._zod.optin),J0(Y._zod,"optout",()=>J.innerType._zod.optout),J0(Y._zod,"values",()=>J.innerType._zod.values),Y._zod.parse=(X,Q)=>{if(Q.direction==="backward")return J.innerType._zod.run(X,Q);let $=J.innerType._zod.run(X,Q);if($ instanceof Promise)return $.then((G)=>{if(X.value=G.value,G.issues.length)X.value=J.catchValue({...X,error:{issues:G.issues.map((W)=>t0(W,Q,G1()))},input:X.value}),X.issues=[];return X});if(X.value=$.value,$.issues.length)X.value=J.catchValue({...X,error:{issues:$.issues.map((G)=>t0(G,Q,G1()))},input:X.value}),X.issues=[];return X}});var r2=P("$ZodPipe",(Y,J)=>{K0.init(Y,J),J0(Y._zod,"values",()=>J.in._zod.values),J0(Y._zod,"optin",()=>J.in._zod.optin),J0(Y._zod,"optout",()=>J.out._zod.optout),J0(Y._zod,"propValues",()=>J.in._zod.propValues),Y._zod.parse=(X,Q)=>{if(Q.direction==="backward"){let G=J.out._zod.run(X,Q);if(G instanceof Promise)return G.then((W)=>cY(W,J.in,Q));return cY(G,J.in,Q)}let $=J.in._zod.run(X,Q);if($ instanceof Promise)return $.then((G)=>cY(G,J.out,Q));return cY($,J.out,Q)}});function cY(Y,J,X){if(Y.issues.length)return Y.aborted=!0,Y;return J._zod.run({value:Y.value,issues:Y.issues},X)}var s2=P("$ZodReadonly",(Y,J)=>{K0.init(Y,J),J0(Y._zod,"propValues",()=>J.innerType._zod.propValues),J0(Y._zod,"values",()=>J.innerType._zod.values),J0(Y._zod,"optin",()=>J.innerType._zod.optin),J0(Y._zod,"optout",()=>J.innerType._zod.optout),Y._zod.parse=(X,Q)=>{if(Q.direction==="backward")return J.innerType._zod.run(X,Q);let $=J.innerType._zod.run(X,Q);if($ instanceof Promise)return $.then(X2);return X2($)}});function X2(Y){return Y.value=Object.freeze(Y.value),Y}var a2=P("$ZodLazy",(Y,J)=>{K0.init(Y,J),J0(Y._zod,"innerType",()=>J.getter()),J0(Y._zod,"pattern",()=>Y._zod.innerType._zod.pattern),J0(Y._zod,"propValues",()=>Y._zod.innerType._zod.propValues),J0(Y._zod,"optin",()=>Y._zod.innerType._zod.optin??void 0),J0(Y._zod,"optout",()=>Y._zod.innerType._zod.optout??void 0),Y._zod.parse=(X,Q)=>{return Y._zod.innerType._zod.run(X,Q)}}),t2=P("$ZodCustom",(Y,J)=>{w0.init(Y,J),K0.init(Y,J),Y._zod.parse=(X,Q)=>{return X},Y._zod.check=(X)=>{let Q=X.value,$=J.fn(Q);if($ instanceof Promise)return $.then((G)=>Q2(G,X,Q,Y));Q2($,X,Q,Y);return}});function Q2(Y,J,X,Q){if(!Y){let $={code:"custom",input:X,inst:Q,path:[...Q._zod.def.path??[]],continue:!Q._zod.def.abort};if(Q._zod.def.params)$.params=Q._zod.def.params;J.issues.push(Z9($))}}var pq=Symbol("ZodOutput"),lq=Symbol("ZodInput");class lY{constructor(){this._map=new WeakMap,this._idmap=new Map}add(Y,...J){let X=J[0];if(this._map.set(Y,X),X&&typeof X==="object"&&"id"in X){if(this._idmap.has(X.id))throw Error(`ID ${X.id} already exists in the registry`);this._idmap.set(X.id,Y)}return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(Y){let J=this._map.get(Y);if(J&&typeof J==="object"&&"id"in J)this._idmap.delete(J.id);return this._map.delete(Y),this}get(Y){let J=Y._zod.parent;if(J){let X={...this.get(J)??{}};delete X.id;let Q={...X,...this._map.get(Y)};return Object.keys(Q).length?Q:void 0}return this._map.get(Y)}has(Y){return this._map.has(Y)}}function HH(){return new lY}var d1=HH();function e2(Y,J){return new Y({type:"string",...i(J)})}function Y7(Y,J){return new Y({type:"string",format:"email",check:"string_format",abort:!1,...i(J)})}function HX(Y,J){return new Y({type:"string",format:"guid",check:"string_format",abort:!1,...i(J)})}function J7(Y,J){return new Y({type:"string",format:"uuid",check:"string_format",abort:!1,...i(J)})}function X7(Y,J){return new Y({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...i(J)})}function Q7(Y,J){return new Y({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...i(J)})}function $7(Y,J){return new Y({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...i(J)})}function G7(Y,J){return new Y({type:"string",format:"url",check:"string_format",abort:!1,...i(J)})}function W7(Y,J){return new Y({type:"string",format:"emoji",check:"string_format",abort:!1,...i(J)})}function z7(Y,J){return new Y({type:"string",format:"nanoid",check:"string_format",abort:!1,...i(J)})}function K7(Y,J){return new Y({type:"string",format:"cuid",check:"string_format",abort:!1,...i(J)})}function U7(Y,J){return new Y({type:"string",format:"cuid2",check:"string_format",abort:!1,...i(J)})}function Z7(Y,J){return new Y({type:"string",format:"ulid",check:"string_format",abort:!1,...i(J)})}function L7(Y,J){return new Y({type:"string",format:"xid",check:"string_format",abort:!1,...i(J)})}function H7(Y,J){return new Y({type:"string",format:"ksuid",check:"string_format",abort:!1,...i(J)})}function V7(Y,J){return new Y({type:"string",format:"ipv4",check:"string_format",abort:!1,...i(J)})}function N7(Y,J){return new Y({type:"string",format:"ipv6",check:"string_format",abort:!1,...i(J)})}function B7(Y,J){return new Y({type:"string",format:"cidrv4",check:"string_format",abort:!1,...i(J)})}function F7(Y,J){return new Y({type:"string",format:"cidrv6",check:"string_format",abort:!1,...i(J)})}function j7(Y,J){return new Y({type:"string",format:"base64",check:"string_format",abort:!1,...i(J)})}function O7(Y,J){return new Y({type:"string",format:"base64url",check:"string_format",abort:!1,...i(J)})}function q7(Y,J){return new Y({type:"string",format:"e164",check:"string_format",abort:!1,...i(J)})}function D7(Y,J){return new Y({type:"string",format:"jwt",check:"string_format",abort:!1,...i(J)})}function P7(Y,J){return new Y({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...i(J)})}function E7(Y,J){return new Y({type:"string",format:"date",check:"string_format",...i(J)})}function M7(Y,J){return new Y({type:"string",format:"time",check:"string_format",precision:null,...i(J)})}function w7(Y,J){return new Y({type:"string",format:"duration",check:"string_format",...i(J)})}function A7(Y,J){return new Y({type:"number",checks:[],...i(J)})}function R7(Y,J){return new Y({type:"number",check:"number_format",abort:!1,format:"safeint",...i(J)})}function T7(Y,J){return new Y({type:"boolean",...i(J)})}function C7(Y,J){return new Y({type:"null",...i(J)})}function _7(Y){return new Y({type:"unknown"})}function I7(Y,J){return new Y({type:"never",...i(J)})}function dY(Y,J){return new WX({check:"less_than",...i(J),value:Y,inclusive:!1})}function l9(Y,J){return new WX({check:"less_than",...i(J),value:Y,inclusive:!0})}function iY(Y,J){return new zX({check:"greater_than",...i(J),value:Y,inclusive:!1})}function d9(Y,J){return new zX({check:"greater_than",...i(J),value:Y,inclusive:!0})}function oY(Y,J){return new hG({check:"multiple_of",...i(J),value:Y})}function nY(Y,J){return new yG({check:"max_length",...i(J),maximum:Y})}function L9(Y,J){return new fG({check:"min_length",...i(J),minimum:Y})}function rY(Y,J){return new mG({check:"length_equals",...i(J),length:Y})}function VX(Y,J){return new cG({check:"string_format",format:"regex",...i(J),pattern:Y})}function NX(Y){return new uG({check:"string_format",format:"lowercase",...i(Y)})}function BX(Y){return new pG({check:"string_format",format:"uppercase",...i(Y)})}function FX(Y,J){return new lG({check:"string_format",format:"includes",...i(J),includes:Y})}function jX(Y,J){return new dG({check:"string_format",format:"starts_with",...i(J),prefix:Y})}function OX(Y,J){return new iG({check:"string_format",format:"ends_with",...i(J),suffix:Y})}function i1(Y){return new oG({check:"overwrite",tx:Y})}function qX(Y){return i1((J)=>J.normalize(Y))}function DX(){return i1((Y)=>Y.trim())}function PX(){return i1((Y)=>Y.toLowerCase())}function EX(){return i1((Y)=>Y.toUpperCase())}function S7(Y,J,X){return new Y({type:"array",element:J,...i(X)})}function k7(Y,J,X){let Q=i(X);return Q.abort??(Q.abort=!0),new Y({type:"custom",check:"custom",fn:J,...Q})}function x7(Y,J,X){return new Y({type:"custom",check:"custom",fn:J,...i(X)})}function b7(Y){let J=VH((X)=>{return X.addIssue=(Q)=>{if(typeof Q==="string")X.issues.push(Z9(Q,X.value,J._zod.def));else{let $=Q;if($.fatal)$.continue=!1;$.code??($.code="custom"),$.input??($.input=X.value),$.inst??($.inst=J),$.continue??($.continue=!J._zod.def.abort),X.issues.push(Z9($))}},Y(X.value,X)});return J}function VH(Y,J){let X=new w0({check:"custom",...i(J)});return X._zod.check=Y,X}class MX{constructor(Y){this.counter=0,this.metadataRegistry=Y?.metadata??d1,this.target=Y?.target??"draft-2020-12",this.unrepresentable=Y?.unrepresentable??"throw",this.override=Y?.override??(()=>{}),this.io=Y?.io??"output",this.seen=new Map}process(Y,J={path:[],schemaPath:[]}){var X;let Q=Y._zod.def,$={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},G=this.seen.get(Y);if(G){if(G.count++,J.schemaPath.includes(Y))G.cycle=J.path;return G.schema}let W={schema:{},count:1,cycle:void 0,path:J.path};this.seen.set(Y,W);let K=Y._zod.toJSONSchema?.();if(K)W.schema=K;else{let L={...J,schemaPath:[...J.schemaPath,Y],path:J.path},j=Y._zod.parent;if(j)W.ref=j,this.process(j,L),this.seen.get(j).isParent=!0;else{let N=W.schema;switch(Q.type){case"string":{let V=N;V.type="string";let{minimum:q,maximum:T,format:S,patterns:c,contentEncoding:_}=Y._zod.bag;if(typeof q==="number")V.minLength=q;if(typeof T==="number")V.maxLength=T;if(S){if(V.format=$[S]??S,V.format==="")delete V.format}if(_)V.contentEncoding=_;if(c&&c.size>0){let E=[...c];if(E.length===1)V.pattern=E[0].source;else if(E.length>1)W.schema.allOf=[...E.map((b)=>({...this.target==="draft-7"||this.target==="draft-4"||this.target==="openapi-3.0"?{type:"string"}:{},pattern:b.source}))]}break}case"number":{let V=N,{minimum:q,maximum:T,format:S,multipleOf:c,exclusiveMaximum:_,exclusiveMinimum:E}=Y._zod.bag;if(typeof S==="string"&&S.includes("int"))V.type="integer";else V.type="number";if(typeof E==="number")if(this.target==="draft-4"||this.target==="openapi-3.0")V.minimum=E,V.exclusiveMinimum=!0;else V.exclusiveMinimum=E;if(typeof q==="number"){if(V.minimum=q,typeof E==="number"&&this.target!=="draft-4")if(E>=q)delete V.minimum;else delete V.exclusiveMinimum}if(typeof _==="number")if(this.target==="draft-4"||this.target==="openapi-3.0")V.maximum=_,V.exclusiveMaximum=!0;else V.exclusiveMaximum=_;if(typeof T==="number"){if(V.maximum=T,typeof _==="number"&&this.target!=="draft-4")if(_<=T)delete V.maximum;else delete V.exclusiveMaximum}if(typeof c==="number")V.multipleOf=c;break}case"boolean":{let V=N;V.type="boolean";break}case"bigint":{if(this.unrepresentable==="throw")throw Error("BigInt cannot be represented in JSON Schema");break}case"symbol":{if(this.unrepresentable==="throw")throw Error("Symbols cannot be represented in JSON Schema");break}case"null":{if(this.target==="openapi-3.0")N.type="string",N.nullable=!0,N.enum=[null];else N.type="null";break}case"any":break;case"unknown":break;case"undefined":{if(this.unrepresentable==="throw")throw Error("Undefined cannot be represented in JSON Schema");break}case"void":{if(this.unrepresentable==="throw")throw Error("Void cannot be represented in JSON Schema");break}case"never":{N.not={};break}case"date":{if(this.unrepresentable==="throw")throw Error("Date cannot be represented in JSON Schema");break}case"array":{let V=N,{minimum:q,maximum:T}=Y._zod.bag;if(typeof q==="number")V.minItems=q;if(typeof T==="number")V.maxItems=T;V.type="array",V.items=this.process(Q.element,{...L,path:[...L.path,"items"]});break}case"object":{let V=N;V.type="object",V.properties={};let q=Q.shape;for(let c in q)V.properties[c]=this.process(q[c],{...L,path:[...L.path,"properties",c]});let T=new Set(Object.keys(q)),S=new Set([...T].filter((c)=>{let _=Q.shape[c]._zod;if(this.io==="input")return _.optin===void 0;else return _.optout===void 0}));if(S.size>0)V.required=Array.from(S);if(Q.catchall?._zod.def.type==="never")V.additionalProperties=!1;else if(!Q.catchall){if(this.io==="output")V.additionalProperties=!1}else if(Q.catchall)V.additionalProperties=this.process(Q.catchall,{...L,path:[...L.path,"additionalProperties"]});break}case"union":{let V=N,q=Q.options.map((T,S)=>this.process(T,{...L,path:[...L.path,"anyOf",S]}));V.anyOf=q;break}case"intersection":{let V=N,q=this.process(Q.left,{...L,path:[...L.path,"allOf",0]}),T=this.process(Q.right,{...L,path:[...L.path,"allOf",1]}),S=(_)=>("allOf"in _)&&Object.keys(_).length===1,c=[...S(q)?q.allOf:[q],...S(T)?T.allOf:[T]];V.allOf=c;break}case"tuple":{let V=N;V.type="array";let q=this.target==="draft-2020-12"?"prefixItems":"items",T=this.target==="draft-2020-12"?"items":this.target==="openapi-3.0"?"items":"additionalItems",S=Q.items.map((b,f)=>this.process(b,{...L,path:[...L.path,q,f]})),c=Q.rest?this.process(Q.rest,{...L,path:[...L.path,T,...this.target==="openapi-3.0"?[Q.items.length]:[]]}):null;if(this.target==="draft-2020-12"){if(V.prefixItems=S,c)V.items=c}else if(this.target==="openapi-3.0"){if(V.items={anyOf:S},c)V.items.anyOf.push(c);if(V.minItems=S.length,!c)V.maxItems=S.length}else if(V.items=S,c)V.additionalItems=c;let{minimum:_,maximum:E}=Y._zod.bag;if(typeof _==="number")V.minItems=_;if(typeof E==="number")V.maxItems=E;break}case"record":{let V=N;if(V.type="object",this.target==="draft-7"||this.target==="draft-2020-12")V.propertyNames=this.process(Q.keyType,{...L,path:[...L.path,"propertyNames"]});V.additionalProperties=this.process(Q.valueType,{...L,path:[...L.path,"additionalProperties"]});break}case"map":{if(this.unrepresentable==="throw")throw Error("Map cannot be represented in JSON Schema");break}case"set":{if(this.unrepresentable==="throw")throw Error("Set cannot be represented in JSON Schema");break}case"enum":{let V=N,q=g9(Q.entries);if(q.every((T)=>typeof T==="number"))V.type="number";if(q.every((T)=>typeof T==="string"))V.type="string";V.enum=q;break}case"literal":{let V=N,q=[];for(let T of Q.values)if(T===void 0){if(this.unrepresentable==="throw")throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof T==="bigint")if(this.unrepresentable==="throw")throw Error("BigInt literals cannot be represented in JSON Schema");else q.push(Number(T));else q.push(T);if(q.length===0);else if(q.length===1){let T=q[0];if(V.type=T===null?"null":typeof T,this.target==="draft-4"||this.target==="openapi-3.0")V.enum=[T];else V.const=T}else{if(q.every((T)=>typeof T==="number"))V.type="number";if(q.every((T)=>typeof T==="string"))V.type="string";if(q.every((T)=>typeof T==="boolean"))V.type="string";if(q.every((T)=>T===null))V.type="null";V.enum=q}break}case"file":{let V=N,q={type:"string",format:"binary",contentEncoding:"binary"},{minimum:T,maximum:S,mime:c}=Y._zod.bag;if(T!==void 0)q.minLength=T;if(S!==void 0)q.maxLength=S;if(c)if(c.length===1)q.contentMediaType=c[0],Object.assign(V,q);else V.anyOf=c.map((_)=>{return{...q,contentMediaType:_}});else Object.assign(V,q);break}case"transform":{if(this.unrepresentable==="throw")throw Error("Transforms cannot be represented in JSON Schema");break}case"nullable":{let V=this.process(Q.innerType,L);if(this.target==="openapi-3.0")W.ref=Q.innerType,N.nullable=!0;else N.anyOf=[V,{type:"null"}];break}case"nonoptional":{this.process(Q.innerType,L),W.ref=Q.innerType;break}case"success":{let V=N;V.type="boolean";break}case"default":{this.process(Q.innerType,L),W.ref=Q.innerType,N.default=JSON.parse(JSON.stringify(Q.defaultValue));break}case"prefault":{if(this.process(Q.innerType,L),W.ref=Q.innerType,this.io==="input")N._prefault=JSON.parse(JSON.stringify(Q.defaultValue));break}case"catch":{this.process(Q.innerType,L),W.ref=Q.innerType;let V;try{V=Q.catchValue(void 0)}catch{throw Error("Dynamic catch values are not supported in JSON Schema")}N.default=V;break}case"nan":{if(this.unrepresentable==="throw")throw Error("NaN cannot be represented in JSON Schema");break}case"template_literal":{let V=N,q=Y._zod.pattern;if(!q)throw Error("Pattern not found in template literal");V.type="string",V.pattern=q.source;break}case"pipe":{let V=this.io==="input"?Q.in._zod.def.type==="transform"?Q.out:Q.in:Q.out;this.process(V,L),W.ref=V;break}case"readonly":{this.process(Q.innerType,L),W.ref=Q.innerType,N.readOnly=!0;break}case"promise":{this.process(Q.innerType,L),W.ref=Q.innerType;break}case"optional":{this.process(Q.innerType,L),W.ref=Q.innerType;break}case"lazy":{let V=Y._zod.innerType;this.process(V,L),W.ref=V;break}case"custom":{if(this.unrepresentable==="throw")throw Error("Custom types cannot be represented in JSON Schema");break}case"function":{if(this.unrepresentable==="throw")throw Error("Function types cannot be represented in JSON Schema");break}default:}}}let Z=this.metadataRegistry.get(Y);if(Z)Object.assign(W.schema,Z);if(this.io==="input"&&D0(Y))delete W.schema.examples,delete W.schema.default;if(this.io==="input"&&W.schema._prefault)(X=W.schema).default??(X.default=W.schema._prefault);return delete W.schema._prefault,this.seen.get(Y).schema}emit(Y,J){let X={cycles:J?.cycles??"ref",reused:J?.reused??"inline",external:J?.external??void 0},Q=this.seen.get(Y);if(!Q)throw Error("Unprocessed schema. This is a bug in Zod.");let $=(U)=>{let L=this.target==="draft-2020-12"?"$defs":"definitions";if(X.external){let q=X.external.registry.get(U[0])?.id,T=X.external.uri??((c)=>c);if(q)return{ref:T(q)};let S=U[1].defId??U[1].schema.id??`schema${this.counter++}`;return U[1].defId=S,{defId:S,ref:`${T("__shared")}#/${L}/${S}`}}if(U[1]===Q)return{ref:"#"};let N=`${"#"}/${L}/`,V=U[1].schema.id??`__schema${this.counter++}`;return{defId:V,ref:N+V}},G=(U)=>{if(U[1].schema.$ref)return;let L=U[1],{ref:j,defId:N}=$(U);if(L.def={...L.schema},N)L.defId=N;let V=L.schema;for(let q in V)delete V[q];V.$ref=j};if(X.cycles==="throw")for(let U of this.seen.entries()){let L=U[1];if(L.cycle)throw Error(`Cycle detected: #/${L.cycle?.join("/")}/<root>
|
|
91
91
|
|
|
92
|
-
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let U of this.seen.entries()){let H=U[1];if(Y===U[0]){$(U);continue}if(J.external){let V=J.external.registry.get(U[0])?.id;if(Y!==U[0]&&V){$(U);continue}}if(this.metadataRegistry.get(U[0])?.id){$(U);continue}if(H.cycle){$(U);continue}if(H.count>1){if(J.reused==="ref"){$(U);continue}}}let W=(U,H)=>{let B=this.seen.get(U),V=B.def??B.schema,Z={...V};if(B.ref===null)return;let j=B.ref;if(B.ref=null,j){W(j,H);let O=this.seen.get(j).schema;if(O.$ref&&(H.target==="draft-7"||H.target==="draft-4"||H.target==="openapi-3.0"))V.allOf=V.allOf??[],V.allOf.push(O);else Object.assign(V,O),Object.assign(V,Z)}if(!B.isParent)this.override({zodSchema:U,jsonSchema:V,path:B.path??[]})};for(let U of[...this.seen.entries()].reverse())W(U[0],{target:this.target});let z={};if(this.target==="draft-2020-12")z.$schema="https://json-schema.org/draft/2020-12/schema";else if(this.target==="draft-7")z.$schema="http://json-schema.org/draft-07/schema#";else if(this.target==="draft-4")z.$schema="http://json-schema.org/draft-04/schema#";else if(this.target==="openapi-3.0");else console.warn(`Invalid target: ${this.target}`);if(J.external?.uri){let U=J.external.registry.get(Y)?.id;if(!U)throw Error("Schema is missing an `id` property");z.$id=J.external.uri(U)}Object.assign(z,Q.def);let L=J.external?.defs??{};for(let U of this.seen.entries()){let H=U[1];if(H.def&&H.defId)L[H.defId]=H.def}if(J.external);else if(Object.keys(L).length>0)if(this.target==="draft-2020-12")z.$defs=L;else z.definitions=L;try{return JSON.parse(JSON.stringify(z))}catch(U){throw Error("Error converting schema to JSON.")}}}function s$(Y,X){if(Y instanceof U9){let Q=new SX(X),G={};for(let z of Y._idmap.entries()){let[L,U]=z;Q.process(U)}let $={},W={registry:Y,uri:X?.uri,defs:G};for(let z of Y._idmap.entries()){let[L,U]=z;$[L]=Q.emit(U,{...X,external:W})}if(Object.keys(G).length>0){let z=Q.target==="draft-2020-12"?"$defs":"definitions";$.__shared={[z]:G}}return{schemas:$}}let J=new SX(X);return J.process(Y),J.emit(Y,X)}function N0(Y,X){let J=X??{seen:new Set};if(J.seen.has(Y))return!1;J.seen.add(Y);let G=Y._zod.def;switch(G.type){case"string":case"number":case"bigint":case"boolean":case"date":case"symbol":case"undefined":case"null":case"any":case"unknown":case"never":case"void":case"literal":case"enum":case"nan":case"file":case"template_literal":return!1;case"array":return N0(G.element,J);case"object":{for(let $ in G.shape)if(N0(G.shape[$],J))return!0;return!1}case"union":{for(let $ of G.options)if(N0($,J))return!0;return!1}case"intersection":return N0(G.left,J)||N0(G.right,J);case"tuple":{for(let $ of G.items)if(N0($,J))return!0;if(G.rest&&N0(G.rest,J))return!0;return!1}case"record":return N0(G.keyType,J)||N0(G.valueType,J);case"map":return N0(G.keyType,J)||N0(G.valueType,J);case"set":return N0(G.valueType,J);case"promise":case"optional":case"nonoptional":case"nullable":case"readonly":return N0(G.innerType,J);case"lazy":return N0(G.getter(),J);case"default":return N0(G.innerType,J);case"prefault":return N0(G.innerType,J);case"custom":return!1;case"transform":return!0;case"pipe":return N0(G.in,J)||N0(G.out,J);case"success":return!1;case"catch":return!1;case"function":return!1;default:}throw Error(`Unknown schema type: ${G.type}`)}var LL=q("ZodISODateTime",(Y,X)=>{_G.init(Y,X),e.init(Y,X)});function a$(Y){return h$(LL,Y)}var HL=q("ZodISODate",(Y,X)=>{SG.init(Y,X),e.init(Y,X)});function t$(Y){return g$(HL,Y)}var NL=q("ZodISOTime",(Y,X)=>{kG.init(Y,X),e.init(Y,X)});function e$(Y){return y$(NL,Y)}var ZL=q("ZodISODuration",(Y,X)=>{xG.init(Y,X),e.init(Y,X)});function Y2(Y){return f$(ZL,Y)}var X2=(Y,X)=>{J9.init(Y,X),Y.name="ZodError",Object.defineProperties(Y,{format:{value:(J)=>L5(Y,J)},flatten:{value:(J)=>U5(Y,J)},addIssue:{value:(J)=>{Y.issues.push(J),Y.message=JSON.stringify(Y.issues,cY,2)}},addIssues:{value:(J)=>{Y.issues.push(...J),Y.message=JSON.stringify(Y.issues,cY,2)}},isEmpty:{get(){return Y.issues.length===0}}})},mO=q("ZodError",X2),x0=q("ZodError",X2,{Parent:Error});var J2=Q9(x0),Q2=G9(x0),G2=B1(x0),F9=F1(x0),$2=Z5(x0),W2=V5(x0),K2=B5(x0),z2=F5(x0),U2=O5(x0),L2=q5(x0),H2=j5(x0),N2=D5(x0);var Y0=q("ZodType",(Y,X)=>{return a.init(Y,X),Y.def=X,Y.type=X.type,Object.defineProperty(Y,"_def",{value:X}),Y.check=(...J)=>{return Y.clone({...X,checks:[...X.checks??[],...J.map((Q)=>typeof Q==="function"?{_zod:{check:Q,def:{check:"custom"},onattach:[]}}:Q)]})},Y.clone=(J,Q)=>y0(Y,J,Q),Y.brand=()=>Y,Y.register=(J,Q)=>{return J.add(Y,Q),Y},Y.parse=(J,Q)=>J2(Y,J,Q,{callee:Y.parse}),Y.safeParse=(J,Q)=>G2(Y,J,Q),Y.parseAsync=async(J,Q)=>Q2(Y,J,Q,{callee:Y.parseAsync}),Y.safeParseAsync=async(J,Q)=>F9(Y,J,Q),Y.spa=Y.safeParseAsync,Y.encode=(J,Q)=>$2(Y,J,Q),Y.decode=(J,Q)=>W2(Y,J,Q),Y.encodeAsync=async(J,Q)=>K2(Y,J,Q),Y.decodeAsync=async(J,Q)=>z2(Y,J,Q),Y.safeEncode=(J,Q)=>U2(Y,J,Q),Y.safeDecode=(J,Q)=>L2(Y,J,Q),Y.safeEncodeAsync=async(J,Q)=>H2(Y,J,Q),Y.safeDecodeAsync=async(J,Q)=>N2(Y,J,Q),Y.refine=(J,Q)=>Y.check(WH(J,Q)),Y.superRefine=(J)=>Y.check(KH(J)),Y.overwrite=(J)=>Y.check(SY(J)),Y.optional=()=>B2(Y),Y.nullable=()=>F2(Y),Y.nullish=()=>B2(F2(Y)),Y.nonoptional=(J)=>eL(Y,J),Y.array=()=>bX(Y),Y.or=(J)=>vX([Y,J]),Y.and=(J)=>pL(Y,J),Y.transform=(J)=>O2(Y,oL(J)),Y.default=(J)=>sL(Y,J),Y.prefault=(J)=>tL(Y,J),Y.catch=(J)=>XH(Y,J),Y.pipe=(J)=>O2(Y,J),Y.readonly=()=>GH(Y),Y.describe=(J)=>{let Q=Y.clone();return _Y.add(Q,{description:J}),Q},Object.defineProperty(Y,"description",{get(){return _Y.get(Y)?.description},configurable:!0}),Y.meta=(...J)=>{if(J.length===0)return _Y.get(Y);let Q=Y.clone();return _Y.add(Q,J[0]),Q},Y.isOptional=()=>Y.safeParse(void 0).success,Y.isNullable=()=>Y.safeParse(null).success,Y}),q2=q("_ZodString",(Y,X)=>{z9.init(Y,X),Y0.init(Y,X);let J=Y._zod.bag;Y.format=J.format??null,Y.minLength=J.minimum??null,Y.maxLength=J.maximum??null,Y.regex=(...Q)=>Y.check(PX(...Q)),Y.includes=(...Q)=>Y.check(wX(...Q)),Y.startsWith=(...Q)=>Y.check(AX(...Q)),Y.endsWith=(...Q)=>Y.check(TX(...Q)),Y.min=(...Q)=>Y.check(lY(...Q)),Y.max=(...Q)=>Y.check(Z9(...Q)),Y.length=(...Q)=>Y.check(V9(...Q)),Y.nonempty=(...Q)=>Y.check(lY(1,...Q)),Y.lowercase=(Q)=>Y.check(MX(Q)),Y.uppercase=(Q)=>Y.check(EX(Q)),Y.trim=()=>Y.check(CX()),Y.normalize=(...Q)=>Y.check(RX(...Q)),Y.toLowerCase=()=>Y.check(IX()),Y.toUpperCase=()=>Y.check(_X())}),OL=q("ZodString",(Y,X)=>{z9.init(Y,X),q2.init(Y,X),Y.email=(J)=>Y.check(B$(qL,J)),Y.url=(J)=>Y.check(D$(jL,J)),Y.jwt=(J)=>Y.check(v$(bL,J)),Y.emoji=(J)=>Y.check(P$(DL,J)),Y.guid=(J)=>Y.check(DX(Z2,J)),Y.uuid=(J)=>Y.check(F$(O9,J)),Y.uuidv4=(J)=>Y.check(O$(O9,J)),Y.uuidv6=(J)=>Y.check(q$(O9,J)),Y.uuidv7=(J)=>Y.check(j$(O9,J)),Y.nanoid=(J)=>Y.check(M$(PL,J)),Y.guid=(J)=>Y.check(DX(Z2,J)),Y.cuid=(J)=>Y.check(E$(ML,J)),Y.cuid2=(J)=>Y.check(w$(EL,J)),Y.ulid=(J)=>Y.check(A$(wL,J)),Y.base64=(J)=>Y.check(k$(SL,J)),Y.base64url=(J)=>Y.check(x$(kL,J)),Y.xid=(J)=>Y.check(T$(AL,J)),Y.ksuid=(J)=>Y.check(R$(TL,J)),Y.ipv4=(J)=>Y.check(C$(RL,J)),Y.ipv6=(J)=>Y.check(I$(CL,J)),Y.cidrv4=(J)=>Y.check(_$(IL,J)),Y.cidrv6=(J)=>Y.check(S$(_L,J)),Y.e164=(J)=>Y.check(b$(xL,J)),Y.datetime=(J)=>Y.check(a$(J)),Y.date=(J)=>Y.check(t$(J)),Y.time=(J)=>Y.check(e$(J)),Y.duration=(J)=>Y.check(Y2(J))});function j2(Y){return V$(OL,Y)}var e=q("ZodStringFormat",(Y,X)=>{t.init(Y,X),q2.init(Y,X)}),qL=q("ZodEmail",(Y,X)=>{PG.init(Y,X),e.init(Y,X)});var Z2=q("ZodGUID",(Y,X)=>{jG.init(Y,X),e.init(Y,X)});var O9=q("ZodUUID",(Y,X)=>{DG.init(Y,X),e.init(Y,X)});var jL=q("ZodURL",(Y,X)=>{MG.init(Y,X),e.init(Y,X)});var DL=q("ZodEmoji",(Y,X)=>{EG.init(Y,X),e.init(Y,X)});var PL=q("ZodNanoID",(Y,X)=>{wG.init(Y,X),e.init(Y,X)});var ML=q("ZodCUID",(Y,X)=>{AG.init(Y,X),e.init(Y,X)});var EL=q("ZodCUID2",(Y,X)=>{TG.init(Y,X),e.init(Y,X)});var wL=q("ZodULID",(Y,X)=>{RG.init(Y,X),e.init(Y,X)});var AL=q("ZodXID",(Y,X)=>{CG.init(Y,X),e.init(Y,X)});var TL=q("ZodKSUID",(Y,X)=>{IG.init(Y,X),e.init(Y,X)});var RL=q("ZodIPv4",(Y,X)=>{bG.init(Y,X),e.init(Y,X)});var CL=q("ZodIPv6",(Y,X)=>{vG.init(Y,X),e.init(Y,X)});var IL=q("ZodCIDRv4",(Y,X)=>{hG.init(Y,X),e.init(Y,X)});var _L=q("ZodCIDRv6",(Y,X)=>{gG.init(Y,X),e.init(Y,X)});var SL=q("ZodBase64",(Y,X)=>{fG.init(Y,X),e.init(Y,X)});var kL=q("ZodBase64URL",(Y,X)=>{mG.init(Y,X),e.init(Y,X)});var xL=q("ZodE164",(Y,X)=>{cG.init(Y,X),e.init(Y,X)});var bL=q("ZodJWT",(Y,X)=>{uG.init(Y,X),e.init(Y,X)});var D2=q("ZodNumber",(Y,X)=>{qX.init(Y,X),Y0.init(Y,X),Y.gt=(Q,G)=>Y.check(H9(Q,G)),Y.gte=(Q,G)=>Y.check(j1(Q,G)),Y.min=(Q,G)=>Y.check(j1(Q,G)),Y.lt=(Q,G)=>Y.check(L9(Q,G)),Y.lte=(Q,G)=>Y.check(q1(Q,G)),Y.max=(Q,G)=>Y.check(q1(Q,G)),Y.int=(Q)=>Y.check(V2(Q)),Y.safe=(Q)=>Y.check(V2(Q)),Y.positive=(Q)=>Y.check(H9(0,Q)),Y.nonnegative=(Q)=>Y.check(j1(0,Q)),Y.negative=(Q)=>Y.check(L9(0,Q)),Y.nonpositive=(Q)=>Y.check(q1(0,Q)),Y.multipleOf=(Q,G)=>Y.check(N9(Q,G)),Y.step=(Q,G)=>Y.check(N9(Q,G)),Y.finite=()=>Y;let J=Y._zod.bag;Y.minValue=Math.max(J.minimum??Number.NEGATIVE_INFINITY,J.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,Y.maxValue=Math.min(J.maximum??Number.POSITIVE_INFINITY,J.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,Y.isInt=(J.format??"").includes("int")||Number.isSafeInteger(J.multipleOf??0.5),Y.isFinite=!0,Y.format=J.format??null});function P2(Y){return m$(D2,Y)}var vL=q("ZodNumberFormat",(Y,X)=>{pG.init(Y,X),D2.init(Y,X)});function V2(Y){return c$(vL,Y)}var hL=q("ZodBoolean",(Y,X)=>{lG.init(Y,X),Y0.init(Y,X)});function M2(Y){return u$(hL,Y)}var gL=q("ZodNull",(Y,X)=>{dG.init(Y,X),Y0.init(Y,X)});function E2(Y){return p$(gL,Y)}var yL=q("ZodUnknown",(Y,X)=>{iG.init(Y,X),Y0.init(Y,X)});function D1(){return l$(yL)}var fL=q("ZodNever",(Y,X)=>{oG.init(Y,X),Y0.init(Y,X)});function xX(Y){return d$(fL,Y)}var mL=q("ZodArray",(Y,X)=>{nG.init(Y,X),Y0.init(Y,X),Y.element=X.element,Y.min=(J,Q)=>Y.check(lY(J,Q)),Y.nonempty=(J)=>Y.check(lY(1,J)),Y.max=(J,Q)=>Y.check(Z9(J,Q)),Y.length=(J,Q)=>Y.check(V9(J,Q)),Y.unwrap=()=>Y.element});function bX(Y,X){return i$(mL,Y,X)}var w2=q("ZodObject",(Y,X)=>{aG.init(Y,X),Y0.init(Y,X),d.defineLazy(Y,"shape",()=>X.shape),Y.keyof=()=>hX(Object.keys(Y._zod.def.shape)),Y.catchall=(J)=>Y.clone({...Y._zod.def,catchall:J}),Y.passthrough=()=>Y.clone({...Y._zod.def,catchall:D1()}),Y.loose=()=>Y.clone({...Y._zod.def,catchall:D1()}),Y.strict=()=>Y.clone({...Y._zod.def,catchall:xX()}),Y.strip=()=>Y.clone({...Y._zod.def,catchall:void 0}),Y.extend=(J)=>{return d.extend(Y,J)},Y.safeExtend=(J)=>{return d.safeExtend(Y,J)},Y.merge=(J)=>d.merge(Y,J),Y.pick=(J)=>d.pick(Y,J),Y.omit=(J)=>d.omit(Y,J),Y.partial=(...J)=>d.partial(S2,Y,J[0]),Y.required=(...J)=>d.required(k2,Y,J[0])});function A2(Y,X){let J={type:"object",get shape(){return d.assignProp(this,"shape",Y?d.objectClone(Y):{}),this.shape},...d.normalizeParams(X)};return new w2(J)}function T2(Y,X){return new w2({type:"object",get shape(){return d.assignProp(this,"shape",d.objectClone(Y)),this.shape},catchall:D1(),...d.normalizeParams(X)})}var R2=q("ZodUnion",(Y,X)=>{jX.init(Y,X),Y0.init(Y,X),Y.options=X.options});function vX(Y,X){return new R2({type:"union",options:Y,...d.normalizeParams(X)})}var cL=q("ZodDiscriminatedUnion",(Y,X)=>{R2.init(Y,X),tG.init(Y,X)});function C2(Y,X,J){return new cL({type:"union",options:X,discriminator:Y,...d.normalizeParams(J)})}var uL=q("ZodIntersection",(Y,X)=>{eG.init(Y,X),Y0.init(Y,X)});function pL(Y,X){return new uL({type:"intersection",left:Y,right:X})}var lL=q("ZodRecord",(Y,X)=>{Y$.init(Y,X),Y0.init(Y,X),Y.keyType=X.keyType,Y.valueType=X.valueType});function I2(Y,X,J){return new lL({type:"record",keyType:Y,valueType:X,...d.normalizeParams(J)})}var kX=q("ZodEnum",(Y,X)=>{X$.init(Y,X),Y0.init(Y,X),Y.enum=X.entries,Y.options=Object.values(X.entries);let J=new Set(Object.keys(X.entries));Y.extract=(Q,G)=>{let $={};for(let W of Q)if(J.has(W))$[W]=X.entries[W];else throw Error(`Key ${W} not found in enum`);return new kX({...X,checks:[],...d.normalizeParams(G),entries:$})},Y.exclude=(Q,G)=>{let $={...X.entries};for(let W of Q)if(J.has(W))delete $[W];else throw Error(`Key ${W} not found in enum`);return new kX({...X,checks:[],...d.normalizeParams(G),entries:$})}});function hX(Y,X){let J=Array.isArray(Y)?Object.fromEntries(Y.map((Q)=>[Q,Q])):Y;return new kX({type:"enum",entries:J,...d.normalizeParams(X)})}var dL=q("ZodLiteral",(Y,X)=>{J$.init(Y,X),Y0.init(Y,X),Y.values=new Set(X.values),Object.defineProperty(Y,"value",{get(){if(X.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return X.values[0]}})});function _2(Y,X){return new dL({type:"literal",values:Array.isArray(Y)?Y:[Y],...d.normalizeParams(X)})}var iL=q("ZodTransform",(Y,X)=>{Q$.init(Y,X),Y0.init(Y,X),Y._zod.parse=(J,Q)=>{if(Q.direction==="backward")throw new U1(Y.constructor.name);J.addIssue=($)=>{if(typeof $==="string")J.issues.push(d.issue($,J.value,X));else{let W=$;if(W.fatal)W.continue=!1;W.code??(W.code="custom"),W.input??(W.input=J.value),W.inst??(W.inst=Y),J.issues.push(d.issue(W))}};let G=X.transform(J.value,J);if(G instanceof Promise)return G.then(($)=>{return J.value=$,J});return J.value=G,J}});function oL(Y){return new iL({type:"transform",transform:Y})}var S2=q("ZodOptional",(Y,X)=>{G$.init(Y,X),Y0.init(Y,X),Y.unwrap=()=>Y._zod.def.innerType});function B2(Y){return new S2({type:"optional",innerType:Y})}var nL=q("ZodNullable",(Y,X)=>{$$.init(Y,X),Y0.init(Y,X),Y.unwrap=()=>Y._zod.def.innerType});function F2(Y){return new nL({type:"nullable",innerType:Y})}var rL=q("ZodDefault",(Y,X)=>{W$.init(Y,X),Y0.init(Y,X),Y.unwrap=()=>Y._zod.def.innerType,Y.removeDefault=Y.unwrap});function sL(Y,X){return new rL({type:"default",innerType:Y,get defaultValue(){return typeof X==="function"?X():d.shallowClone(X)}})}var aL=q("ZodPrefault",(Y,X)=>{K$.init(Y,X),Y0.init(Y,X),Y.unwrap=()=>Y._zod.def.innerType});function tL(Y,X){return new aL({type:"prefault",innerType:Y,get defaultValue(){return typeof X==="function"?X():d.shallowClone(X)}})}var k2=q("ZodNonOptional",(Y,X)=>{z$.init(Y,X),Y0.init(Y,X),Y.unwrap=()=>Y._zod.def.innerType});function eL(Y,X){return new k2({type:"nonoptional",innerType:Y,...d.normalizeParams(X)})}var YH=q("ZodCatch",(Y,X)=>{U$.init(Y,X),Y0.init(Y,X),Y.unwrap=()=>Y._zod.def.innerType,Y.removeCatch=Y.unwrap});function XH(Y,X){return new YH({type:"catch",innerType:Y,catchValue:typeof X==="function"?X:()=>X})}var JH=q("ZodPipe",(Y,X)=>{L$.init(Y,X),Y0.init(Y,X),Y.in=X.in,Y.out=X.out});function O2(Y,X){return new JH({type:"pipe",in:Y,out:X})}var QH=q("ZodReadonly",(Y,X)=>{H$.init(Y,X),Y0.init(Y,X),Y.unwrap=()=>Y._zod.def.innerType});function GH(Y){return new QH({type:"readonly",innerType:Y})}var $H=q("ZodLazy",(Y,X)=>{N$.init(Y,X),Y0.init(Y,X),Y.unwrap=()=>Y._zod.def.getter()});function x2(Y){return new $H({type:"lazy",getter:Y})}var gX=q("ZodCustom",(Y,X)=>{Z$.init(Y,X),Y0.init(Y,X)});function b2(Y,X){return o$(gX,Y??(()=>!0),X)}function WH(Y,X={}){return n$(gX,Y,X)}function KH(Y){return r$(Y)}function v2(Y,X={error:`Input not instance of ${Y.name}`}){let J=new gX({type:"custom",check:"custom",fn:(Q)=>Q instanceof Y,abort:!0,...d.normalizeParams(X)});return J._zod.bag.Class=Y,J}function d2(Y=globalThis){var X,J,Q;if(Y.window)return"runtime/browser";if((X=Y.navigator)==null?void 0:X.userAgent)return`runtime/${Y.navigator.userAgent.toLowerCase()}`;if((Q=(J=Y.process)==null?void 0:J.versions)==null?void 0:Q.node)return`runtime/node.js/${Y.process.version.substring(0)}`;if(Y.EdgeRuntime)return"runtime/vercel-edge";return"runtime/unknown"}function zH(Y){if(Y==null)return{};let X={};if(Y instanceof Headers)Y.forEach((J,Q)=>{X[Q.toLowerCase()]=J});else{if(!Array.isArray(Y))Y=Object.entries(Y);for(let[J,Q]of Y)if(Q!=null)X[J.toLowerCase()]=Q}return X}function dY(Y,...X){let J=new Headers(zH(Y)),Q=J.get("user-agent")||"";return J.set("user-agent",[Q,...X].filter(Boolean).join(" ")),Object.fromEntries(J.entries())}var UH=[{mediaType:"audio/mpeg",bytesPrefix:[255,251]},{mediaType:"audio/mpeg",bytesPrefix:[255,250]},{mediaType:"audio/mpeg",bytesPrefix:[255,243]},{mediaType:"audio/mpeg",bytesPrefix:[255,242]},{mediaType:"audio/mpeg",bytesPrefix:[255,227]},{mediaType:"audio/mpeg",bytesPrefix:[255,226]},{mediaType:"audio/wav",bytesPrefix:[82,73,70,70,null,null,null,null,87,65,86,69]},{mediaType:"audio/ogg",bytesPrefix:[79,103,103,83]},{mediaType:"audio/flac",bytesPrefix:[102,76,97,67]},{mediaType:"audio/aac",bytesPrefix:[64,21,0,0]},{mediaType:"audio/webm",bytesPrefix:[26,69,223,163]}],Rq=[...UH,{mediaType:"audio/mp4",bytesPrefix:[0,0,0,null,102,116,121,112]}];var LH=12,HH=131072,Cq=HH+LH;async function q9(Y){var X;try{await((X=Y.body)==null?void 0:X.cancel())}catch(J){}}var i2="AI_DownloadError",o2=`vercel.ai.error.${i2}`,NH=Symbol.for(o2),h2,g2,A0=class extends(g2=P,h2=NH,g2){constructor({url:Y,statusCode:X,statusText:J,cause:Q,message:G=Q==null?`Failed to download ${Y}: ${X} ${J}`:`Failed to download ${Y}: ${Q}`}){super({name:i2,message:G,cause:Q});this[h2]=!0,this.url=Y,this.statusCode=X,this.statusText=J}static isInstance(Y){return P.hasMarker(Y,o2)}};function ZH(Y=globalThis){return Y.window!=null}function y2(Y,X){try{return new URL(Y).origin===new URL(X).origin}catch(J){return!1}}function VH(Y){let X;try{X=new URL(Y)}catch(Q){throw new A0({url:Y,message:`Invalid URL: ${Y}`})}if(X.protocol==="data:")return;if(X.protocol!=="http:"&&X.protocol!=="https:")throw new A0({url:Y,message:`URL scheme must be http, https, or data, got ${X.protocol}`});let J=X.hostname.toLowerCase().replace(/\.+$/,"");if(!J)throw new A0({url:Y,message:"URL must have a hostname"});if(J==="localhost"||J.endsWith(".local")||J.endsWith(".localhost"))throw new A0({url:Y,message:`URL with hostname ${J} is not allowed`});if(J.startsWith("[")&&J.endsWith("]")){let Q=J.slice(1,-1);if(n2(Q))throw new A0({url:Y,message:`URL with IPv6 address ${J} is not allowed`});return}if(pX(J)){if(lX(J))throw new A0({url:Y,message:`URL with IP address ${J} is not allowed`});return}}function BH({address:Y,family:X,hostname:J}){if(X===4?!pX(Y)||lX(Y):X===6?n2(Y):!0)throw new A0({url:J,message:`Hostname ${J} resolved to disallowed IP address ${Y}`})}function pX(Y){let X=Y.split(".");if(X.length!==4)return!1;return X.every((J)=>{let Q=Number(J);return Number.isInteger(Q)&&Q>=0&&Q<=255&&String(Q)===J})}function lX(Y){let X=Y.split(".").map(Number),[J,Q,G]=X;if(J===0)return!0;if(J===10)return!0;if(J===100&&Q>=64&&Q<=127)return!0;if(J===127)return!0;if(J===169&&Q===254)return!0;if(J===172&&Q>=16&&Q<=31)return!0;if(J===192&&Q===0&&G===0)return!0;if(J===192&&Q===0&&G===2)return!0;if(J===192&&Q===168)return!0;if(J===198&&(Q===18||Q===19))return!0;if(J===198&&Q===51&&G===100)return!0;if(J===203&&Q===0&&G===113)return!0;if(J>=224)return!0;return!1}function FH(Y){let X=Y.toLowerCase(),J=X.indexOf("%");if(J!==-1)X=X.slice(0,J);let Q=X.split("::");if(Q.length>2)return null;let G=(W)=>{if(W==="")return[];let z=[],L=W.split(":");for(let U=0;U<L.length;U++){let H=L[U];if(H.includes(".")){if(U!==L.length-1||!pX(H))return null;let[B,V,Z,j]=H.split(".").map(Number);z.push(B<<8|V,Z<<8|j);continue}if(!/^[0-9a-f]{1,4}$/.test(H))return null;z.push(parseInt(H,16))}return z},$=G(Q[0]);if($===null)return null;if(Q.length===2){let W=G(Q[1]);if(W===null)return null;let z=8-$.length-W.length;if(z<0)return null;return[...$,...Array(z).fill(0),...W]}return $.length===8?$:null}function n2(Y){let X=FH(Y);if(X===null)return!0;let J=(G)=>X.slice(0,G).every(($)=>$===0);if(J(7)&&(X[7]===0||X[7]===1))return!0;if((X[0]&65024)===64512)return!0;if((X[0]&65472)===65152)return!0;if((X[0]&65472)===65216)return!0;if((X[0]&65280)===65280)return!0;if(X[0]===8193&&X[1]===3512)return!0;if(X[0]===16383&&(X[1]&61440)===0)return!0;if(J(6)||J(5)&&X[5]===65535||J(4)&&X[4]===65535&&X[5]===0||X[0]===100&&X[1]===65435&&X[2]===0&&X[3]===0&&X[4]===0&&X[5]===0||X[0]===100&&X[1]===65435&&X[2]===1){let G=X[6]>>8&255,$=X[6]&255,W=X[7]>>8&255,z=X[7]&255;return lX(`${G}.${$}.${W}.${z}`)}return!1}function OH(Y){return(X,J,Q)=>{Y(X,{...J,all:!0},(G,$)=>{if(G){Q(G);return}try{let[W]=$;if(W==null)throw Error(`Hostname ${X} did not resolve to an address`);for(let{address:z,family:L}of $)BH({address:z,family:L,hostname:X});if(J.all===!0)Q(null,$);else Q(null,W.address,W.family)}catch(W){Q(W instanceof Error?W:Error(String(W)))}})}}var yX,r2=globalThis.fetch,qH=PH(r2);function jH(){var Y,X;let J=globalThis.process;return((Y=J==null?void 0:J.release)==null?void 0:Y.name)==="node"&&((X=J.versions)==null?void 0:X.bun)==null}async function DH(){if(!jH()||!qH||globalThis.fetch!==r2)return globalThis.fetch;return yX!=null?yX:yX=Promise.resolve().then(MH)}function PH(Y){if(typeof Y!=="function")return!1;let X=Function.prototype.toString.call(Y);return X.includes("internal/deps/undici")||X.includes("lazy loading of undici")}function MH(){let{createRequire:Y}=f2("node:module"),{lookup:X}=f2("node:dns"),{Agent:J,fetch:Q}=Y(s2())("undici"),G=new J({connect:{lookup:OH(X)}});return($,W)=>Q($,{...W,dispatcher:G})}function f2(Y){var X;let J=globalThis.process,Q=(X=J==null?void 0:J.getBuiltinModule)==null?void 0:X.call(J,Y);if(Q==null)throw Error(`Node.js built-in module ${Y} is unavailable`);return Q}function s2(){let Y=Error.prepareStackTrace;try{Error.prepareStackTrace=(G,$)=>$;let X=Error("Capture current module path");Error.captureStackTrace(X,s2);let[J]=X.stack,Q=J==null?void 0:J.getFileName();if(Q==null)throw Error("Unable to determine the current module path");return Q}finally{Error.prepareStackTrace=Y}}var EH=["connection","keep-alive","te","trailer","transfer-encoding","upgrade","host","forwarded","proxy-authorization","via","x-forwarded-for","x-forwarded-host","x-forwarded-proto","x-real-ip","metadata","metadata-flavor","x-aws-ec2-metadata-token","x-metadata-token","cookie","set-cookie"];function wH(Y){let X=new Headers(Y);for(let J of EH)X.delete(J);return X}var AH=10,TH=new Set([301,302,303,307,308]);async function RH(Y){return Y==null||Y===globalThis.fetch?await DH():Y}async function a2({url:Y,headers:X,abortSignal:J,maxRedirects:Q=AH,fetch:G,trustedOrigin:$}){var W;let z=X===void 0?void 0:wH(X),L=(H)=>{let B={signal:J,redirect:H};if(z!==void 0)B.headers=new Headers(z);return B},U=Y;for(let H=0;H<=Q;H++){let B=$!==void 0&&y2(U,$);if(!B)VH(U);let V=B&&G!=null?G:B?globalThis.fetch:await RH(G),Z=await V(U,L("manual"));if(Z.type==="opaqueredirect"){if(!ZH())throw new A0({url:Y,message:`Redirect from ${U} could not be validated and was blocked`});return await V(U,L("follow"))}let j=(W=Z.headers)==null?void 0:W.get("location");if(TH.has(Z.status)&&j){await q9(Z);let O=new URL(j,U).toString();if(z!==void 0&&!y2(O,U)){let C=z.get("user-agent");z=new Headers(C==null?void 0:{"user-agent":C})}U=O;continue}return Z}throw new A0({url:Y,message:`Too many redirects (max ${Q})`})}var dX=2147483648;async function t2({response:Y,url:X,maxBytes:J=dX}){let Q=Y.headers.get("content-length");if(Q!=null){let H=parseInt(Q,10);if(!isNaN(H)&&H>J)throw await q9(Y),new A0({url:X,message:`Download of ${X} exceeded maximum size of ${J} bytes (Content-Length: ${H}).`})}let G=Y.body;if(G==null)return new Uint8Array(0);let $=G.getReader(),W=[],z=0;try{while(!0){let{done:H,value:B}=await $.read();if(H)break;if(z+=B.length,z>J)throw new A0({url:X,message:`Download of ${X} exceeded maximum size of ${J} bytes.`});W.push(B)}}finally{try{await $.cancel()}catch(H){}finally{$.releaseLock()}}let L=new Uint8Array(z),U=0;for(let H of W)L.set(H,U),U+=H.length;return L}var z0=({prefix:Y,size:X=16,alphabet:J="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:Q="-"}={})=>{let G=()=>{let $=J.length,W=Array(X);for(let z=0;z<X;z++)W[z]=J[Math.random()*$|0];return W.join("")};if(Y==null)return G;if(J.includes(Q))throw new _Q({argument:"separator",message:`The separator "${Q}" must not be part of the alphabet "${J}".`});return()=>`${Y}${Q}${G()}`},Sq=z0();function e2(Y){var X,J;return(J=(X=globalThis.Buffer)==null?void 0:X.isBuffer(Y))!=null?J:!1}var CH=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,IH=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/;function m2(Y){let X=JSON.parse(Y);if(X===null||typeof X!=="object")return X;if(CH.test(Y)===!1&&IH.test(Y)===!1)return X;return _H(X)}function _H(Y){let X=[Y];while(X.length){let J=X;X=[];for(let Q of J){if(Object.prototype.hasOwnProperty.call(Q,"__proto__"))throw SyntaxError("Object contains forbidden prototype property");if(Object.prototype.hasOwnProperty.call(Q,"constructor")&&Q.constructor!==null&&typeof Q.constructor==="object"&&Object.prototype.hasOwnProperty.call(Q.constructor,"prototype"))throw SyntaxError("Object contains forbidden prototype property");for(let G in Q){let $=Q[G];if($&&typeof $==="object")X.push($)}}}return Y}function SH(Y){let{stackTraceLimit:X}=Error;try{Error.stackTraceLimit=0}catch(J){return m2(Y)}try{return m2(Y)}finally{Error.stackTraceLimit=X}}function iX(Y){if(Y.type==="object"||Array.isArray(Y.type)&&Y.type.includes("object")){let{additionalProperties:J}=Y;Y.additionalProperties=J!=null&&typeof J!=="boolean"?OY(J):!1;let{properties:Q}=Y;if(Q!=null)for(let G of Object.keys(Q))Q[G]=OY(Q[G])}if(Y.items!=null)Y.items=Array.isArray(Y.items)?Y.items.map(OY):OY(Y.items);if(Y.anyOf!=null)Y.anyOf=Y.anyOf.map(OY);if(Y.allOf!=null)Y.allOf=Y.allOf.map(OY);if(Y.oneOf!=null)Y.oneOf=Y.oneOf.map(OY);let{definitions:X}=Y;if(X!=null)for(let J of Object.keys(X))X[J]=OY(X[J]);return Y}function OY(Y){if(typeof Y==="boolean")return Y;return iX(Y)}var kH=Symbol("Let zodToJsonSchema decide on which parser to use"),c2={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",strictUnions:!1,definitions:{},errorMessages:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref"},xH=(Y)=>typeof Y==="string"?{...c2,name:Y}:{...c2,...Y};function b0(){return{}}function bH(Y,X){var J,Q,G;let $={type:"array"};if(((J=Y.type)==null?void 0:J._def)&&((G=(Q=Y.type)==null?void 0:Q._def)==null?void 0:G.typeName)!=="ZodAny")$.items=r(Y.type._def,{...X,currentPath:[...X.currentPath,"items"]});if(Y.minLength)$.minItems=Y.minLength.value;if(Y.maxLength)$.maxItems=Y.maxLength.value;if(Y.exactLength)$.minItems=Y.exactLength.value,$.maxItems=Y.exactLength.value;return $}function vH(Y){let X={type:"integer",format:"int64"};if(!Y.checks)return X;for(let J of Y.checks)switch(J.kind){case"min":if(J.inclusive)X.minimum=J.value;else X.exclusiveMinimum=J.value;break;case"max":if(J.inclusive)X.maximum=J.value;else X.exclusiveMaximum=J.value;break;case"multipleOf":X.multipleOf=J.value;break}return X}function hH(){return{type:"boolean"}}function Y7(Y,X){return r(Y.type._def,X)}var gH=(Y,X)=>{return r(Y.innerType._def,X)};function X7(Y,X,J){let Q=J!=null?J:X.dateStrategy;if(Array.isArray(Q))return{anyOf:Q.map((G)=>X7(Y,X,G))};switch(Q){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return yH(Y)}}var yH=(Y)=>{let X={type:"integer",format:"unix-time"};for(let J of Y.checks)switch(J.kind){case"min":X.minimum=J.value;break;case"max":X.maximum=J.value;break}return X};function fH(Y,X){return{...r(Y.innerType._def,X),default:Y.defaultValue()}}function mH(Y,X){return X.effectStrategy==="input"?r(Y.schema._def,X):b0()}function cH(Y){return{type:"string",enum:Array.from(Y.values)}}var uH=(Y)=>{if("type"in Y&&Y.type==="string")return!1;return"allOf"in Y};function pH(Y,X){let J=[r(Y.left._def,{...X,currentPath:[...X.currentPath,"allOf","0"]}),r(Y.right._def,{...X,currentPath:[...X.currentPath,"allOf","1"]})].filter((G)=>!!G),Q=[];return J.forEach((G)=>{if(uH(G))Q.push(...G.allOf);else{let $=G;if("additionalProperties"in G&&G.additionalProperties===!1){let{additionalProperties:W,...z}=G;$=z}Q.push($)}}),Q.length?{allOf:Q}:void 0}function lH(Y){let X=typeof Y.value;if(X!=="bigint"&&X!=="number"&&X!=="boolean"&&X!=="string")return{type:Array.isArray(Y.value)?"array":"object"};return{type:X==="bigint"?"integer":X,const:Y.value}}var fX=void 0,m0={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>{if(fX===void 0)fX=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return fX},uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function J7(Y,X){let J={type:"string"};if(Y.checks)for(let Q of Y.checks)switch(Q.kind){case"min":J.minLength=typeof J.minLength==="number"?Math.max(J.minLength,Q.value):Q.value;break;case"max":J.maxLength=typeof J.maxLength==="number"?Math.min(J.maxLength,Q.value):Q.value;break;case"email":switch(X.emailStrategy){case"format:email":c0(J,"email",Q.message,X);break;case"format:idn-email":c0(J,"idn-email",Q.message,X);break;case"pattern:zod":w0(J,m0.email,Q.message,X);break}break;case"url":c0(J,"uri",Q.message,X);break;case"uuid":c0(J,"uuid",Q.message,X);break;case"regex":w0(J,Q.regex,Q.message,X);break;case"cuid":w0(J,m0.cuid,Q.message,X);break;case"cuid2":w0(J,m0.cuid2,Q.message,X);break;case"startsWith":w0(J,RegExp(`^${mX(Q.value,X)}`),Q.message,X);break;case"endsWith":w0(J,RegExp(`${mX(Q.value,X)}$`),Q.message,X);break;case"datetime":c0(J,"date-time",Q.message,X);break;case"date":c0(J,"date",Q.message,X);break;case"time":c0(J,"time",Q.message,X);break;case"duration":c0(J,"duration",Q.message,X);break;case"length":J.minLength=typeof J.minLength==="number"?Math.max(J.minLength,Q.value):Q.value,J.maxLength=typeof J.maxLength==="number"?Math.min(J.maxLength,Q.value):Q.value;break;case"includes":{w0(J,RegExp(mX(Q.value,X)),Q.message,X);break}case"ip":{if(Q.version!=="v6")c0(J,"ipv4",Q.message,X);if(Q.version!=="v4")c0(J,"ipv6",Q.message,X);break}case"base64url":w0(J,m0.base64url,Q.message,X);break;case"jwt":w0(J,m0.jwt,Q.message,X);break;case"cidr":{if(Q.version!=="v6")w0(J,m0.ipv4Cidr,Q.message,X);if(Q.version!=="v4")w0(J,m0.ipv6Cidr,Q.message,X);break}case"emoji":w0(J,m0.emoji(),Q.message,X);break;case"ulid":{w0(J,m0.ulid,Q.message,X);break}case"base64":{switch(X.base64Strategy){case"format:binary":{c0(J,"binary",Q.message,X);break}case"contentEncoding:base64":{J.contentEncoding="base64";break}case"pattern:zod":{w0(J,m0.base64,Q.message,X);break}}break}case"nanoid":w0(J,m0.nanoid,Q.message,X);case"toLowerCase":case"toUpperCase":case"trim":break;default:}return J}function mX(Y,X){return X.patternStrategy==="escape"?iH(Y):Y}var dH=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function iH(Y){let X="";for(let J=0;J<Y.length;J++){if(!dH.has(Y[J]))X+="\\";X+=Y[J]}return X}function c0(Y,X,J,Q){var G;if(Y.format||((G=Y.anyOf)==null?void 0:G.some(($)=>$.format))){if(!Y.anyOf)Y.anyOf=[];if(Y.format)Y.anyOf.push({format:Y.format}),delete Y.format;Y.anyOf.push({format:X,...J&&Q.errorMessages&&{errorMessage:{format:J}}})}else Y.format=X}function w0(Y,X,J,Q){var G;if(Y.pattern||((G=Y.allOf)==null?void 0:G.some(($)=>$.pattern))){if(!Y.allOf)Y.allOf=[];if(Y.pattern)Y.allOf.push({pattern:Y.pattern}),delete Y.pattern;Y.allOf.push({pattern:u2(X,Q),...J&&Q.errorMessages&&{errorMessage:{pattern:J}}})}else Y.pattern=u2(X,Q)}function u2(Y,X){var J;if(!X.applyRegexFlags||!Y.flags)return Y.source;let Q={i:Y.flags.includes("i"),m:Y.flags.includes("m"),s:Y.flags.includes("s")},G=Q.i?Y.source.toLowerCase():Y.source,$="",W=!1,z=!1,L=!1;for(let U=0;U<G.length;U++){if(W){$+=G[U],W=!1;continue}if(Q.i){if(z){if(G[U].match(/[a-z]/)){if(L)$+=G[U],$+=`${G[U-2]}-${G[U]}`.toUpperCase(),L=!1;else if(G[U+1]==="-"&&((J=G[U+2])==null?void 0:J.match(/[a-z]/)))$+=G[U],L=!0;else $+=`${G[U]}${G[U].toUpperCase()}`;continue}}else if(G[U].match(/[a-z]/)){$+=`[${G[U]}${G[U].toUpperCase()}]`;continue}}if(Q.m){if(G[U]==="^"){$+=`(^|(?<=[\r
|
|
93
|
-
]))`;continue}else if(
|
|
94
|
-
]))`;continue}}if(Q.s
|
|
95
|
-
`:`[${
|
|
96
|
-
]`;continue}if($+=G[U],G[U]==="\\")W=!0;else if(z&&G[U]==="]")z=!1;else if(!z&&G[U]==="[")z=!0}try{new RegExp($)}catch(U){return console.warn(`Could not convert regex pattern at ${X.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),Y.source}return $}function Q7(Y,X){var J,Q,G,$,W,z;let L={type:"object",additionalProperties:(J=r(Y.valueType._def,{...X,currentPath:[...X.currentPath,"additionalProperties"]}))!=null?J:X.allowedAdditionalProperties};if(((Q=Y.keyType)==null?void 0:Q._def.typeName)==="ZodString"&&((G=Y.keyType._def.checks)==null?void 0:G.length)){let{type:U,...H}=J7(Y.keyType._def,X);return{...L,propertyNames:H}}else if((($=Y.keyType)==null?void 0:$._def.typeName)==="ZodEnum")return{...L,propertyNames:{enum:Y.keyType._def.values}};else if(((W=Y.keyType)==null?void 0:W._def.typeName)==="ZodBranded"&&Y.keyType._def.type._def.typeName==="ZodString"&&((z=Y.keyType._def.type._def.checks)==null?void 0:z.length)){let{type:U,...H}=Y7(Y.keyType._def,X);return{...L,propertyNames:H}}return L}function oH(Y,X){if(X.mapStrategy==="record")return Q7(Y,X);let J=r(Y.keyType._def,{...X,currentPath:[...X.currentPath,"items","items","0"]})||b0(),Q=r(Y.valueType._def,{...X,currentPath:[...X.currentPath,"items","items","1"]})||b0();return{type:"array",maxItems:125,items:{type:"array",items:[J,Q],minItems:2,maxItems:2}}}function nH(Y){let X=Y.values,Q=Object.keys(Y.values).filter(($)=>{return typeof X[X[$]]!=="number"}).map(($)=>X[$]),G=Array.from(new Set(Q.map(($)=>typeof $)));return{type:G.length===1?G[0]==="string"?"string":"number":["string","number"],enum:Q}}function rH(){return{not:b0()}}function sH(){return{type:"null"}}var cX={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function aH(Y,X){let J=Y.options instanceof Map?Array.from(Y.options.values()):Y.options;if(J.every((Q)=>(Q._def.typeName in cX)&&(!Q._def.checks||!Q._def.checks.length))){let Q=J.reduce((G,$)=>{let W=cX[$._def.typeName];return W&&!G.includes(W)?[...G,W]:G},[]);return{type:Q.length>1?Q:Q[0]}}else if(J.every((Q)=>Q._def.typeName==="ZodLiteral"&&!Q.description)){let Q=J.reduce((G,$)=>{let W=typeof $._def.value;switch(W){case"string":case"number":case"boolean":return[...G,W];case"bigint":return[...G,"integer"];case"object":if($._def.value===null)return[...G,"null"];case"symbol":case"undefined":case"function":default:return G}},[]);if(Q.length===J.length){let G=Q.filter(($,W,z)=>z.indexOf($)===W);return{type:G.length>1?G:G[0],enum:J.reduce(($,W)=>{return $.includes(W._def.value)?$:[...$,W._def.value]},[])}}}else if(J.every((Q)=>Q._def.typeName==="ZodEnum"))return{type:"string",enum:J.reduce((Q,G)=>[...Q,...G._def.values.filter(($)=>!Q.includes($))],[])};return tH(Y,X)}var tH=(Y,X)=>{let J=(Y.options instanceof Map?Array.from(Y.options.values()):Y.options).map((Q,G)=>r(Q._def,{...X,currentPath:[...X.currentPath,"anyOf",`${G}`]})).filter((Q)=>!!Q&&(!X.strictUnions||typeof Q==="object"&&Object.keys(Q).length>0));return J.length?{anyOf:J}:void 0};function eH(Y,X){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(Y.innerType._def.typeName)&&(!Y.innerType._def.checks||!Y.innerType._def.checks.length))return{type:[cX[Y.innerType._def.typeName],"null"]};let J=r(Y.innerType._def,{...X,currentPath:[...X.currentPath,"anyOf","0"]});return J&&{anyOf:[J,{type:"null"}]}}function YN(Y){let X={type:"number"};if(!Y.checks)return X;for(let J of Y.checks)switch(J.kind){case"int":X.type="integer";break;case"min":if(J.inclusive)X.minimum=J.value;else X.exclusiveMinimum=J.value;break;case"max":if(J.inclusive)X.maximum=J.value;else X.exclusiveMaximum=J.value;break;case"multipleOf":X.multipleOf=J.value;break}return X}function XN(Y,X){let J={type:"object",properties:{}},Q=[],G=Y.shape();for(let W in G){let z=G[W];if(z===void 0||z._def===void 0)continue;let L=QN(z),U=r(z._def,{...X,currentPath:[...X.currentPath,"properties",W],propertyPath:[...X.currentPath,"properties",W]});if(U===void 0)continue;if(J.properties[W]=U,!L)Q.push(W)}if(Q.length)J.required=Q;let $=JN(Y,X);if($!==void 0)J.additionalProperties=$;return J}function JN(Y,X){if(Y.catchall._def.typeName!=="ZodNever")return r(Y.catchall._def,{...X,currentPath:[...X.currentPath,"additionalProperties"]});switch(Y.unknownKeys){case"passthrough":return X.allowedAdditionalProperties;case"strict":return X.rejectedAdditionalProperties;case"strip":return X.removeAdditionalStrategy==="strict"?X.allowedAdditionalProperties:X.rejectedAdditionalProperties}}function QN(Y){try{return Y.isOptional()}catch(X){return!0}}var GN=(Y,X)=>{var J;if(X.currentPath.toString()===((J=X.propertyPath)==null?void 0:J.toString()))return r(Y.innerType._def,X);let Q=r(Y.innerType._def,{...X,currentPath:[...X.currentPath,"anyOf","1"]});return Q?{anyOf:[{not:b0()},Q]}:b0()},$N=(Y,X)=>{if(X.pipeStrategy==="input")return r(Y.in._def,X);else if(X.pipeStrategy==="output")return r(Y.out._def,X);let J=r(Y.in._def,{...X,currentPath:[...X.currentPath,"allOf","0"]}),Q=r(Y.out._def,{...X,currentPath:[...X.currentPath,"allOf",J?"1":"0"]});return{allOf:[J,Q].filter((G)=>G!==void 0)}};function WN(Y,X){return r(Y.type._def,X)}function KN(Y,X){let Q={type:"array",uniqueItems:!0,items:r(Y.valueType._def,{...X,currentPath:[...X.currentPath,"items"]})};if(Y.minSize)Q.minItems=Y.minSize.value;if(Y.maxSize)Q.maxItems=Y.maxSize.value;return Q}function zN(Y,X){if(Y.rest)return{type:"array",minItems:Y.items.length,items:Y.items.map((J,Q)=>r(J._def,{...X,currentPath:[...X.currentPath,"items",`${Q}`]})).reduce((J,Q)=>Q===void 0?J:[...J,Q],[]),additionalItems:r(Y.rest._def,{...X,currentPath:[...X.currentPath,"additionalItems"]})};else return{type:"array",minItems:Y.items.length,maxItems:Y.items.length,items:Y.items.map((J,Q)=>r(J._def,{...X,currentPath:[...X.currentPath,"items",`${Q}`]})).reduce((J,Q)=>Q===void 0?J:[...J,Q],[])}}function UN(){return{not:b0()}}function LN(){return b0()}var HN=(Y,X)=>{return r(Y.innerType._def,X)},NN=(Y,X,J)=>{switch(X){case"ZodString":return J7(Y,J);case"ZodNumber":return YN(Y);case"ZodObject":return XN(Y,J);case"ZodBigInt":return vH(Y);case"ZodBoolean":return hH();case"ZodDate":return X7(Y,J);case"ZodUndefined":return UN();case"ZodNull":return sH();case"ZodArray":return bH(Y,J);case"ZodUnion":case"ZodDiscriminatedUnion":return aH(Y,J);case"ZodIntersection":return pH(Y,J);case"ZodTuple":return zN(Y,J);case"ZodRecord":return Q7(Y,J);case"ZodLiteral":return lH(Y);case"ZodEnum":return cH(Y);case"ZodNativeEnum":return nH(Y);case"ZodNullable":return eH(Y,J);case"ZodOptional":return GN(Y,J);case"ZodMap":return oH(Y,J);case"ZodSet":return KN(Y,J);case"ZodLazy":return()=>Y.getter()._def;case"ZodPromise":return WN(Y,J);case"ZodNaN":case"ZodNever":return rH();case"ZodEffects":return mH(Y,J);case"ZodAny":return b0();case"ZodUnknown":return LN();case"ZodDefault":return fH(Y,J);case"ZodBranded":return Y7(Y,J);case"ZodReadonly":return HN(Y,J);case"ZodCatch":return gH(Y,J);case"ZodPipeline":return $N(Y,J);case"ZodFunction":case"ZodVoid":case"ZodSymbol":return;default:return((Q)=>{return})(X)}},ZN=(Y,X)=>{let J=0;for(;J<Y.length&&J<X.length;J++)if(Y[J]!==X[J])break;return[(Y.length-J).toString(),...X.slice(J)].join("/")};function r(Y,X,J=!1){var Q;let G=X.seen.get(Y);if(X.override){let L=(Q=X.override)==null?void 0:Q.call(X,Y,X,G,J);if(L!==kH)return L}if(G&&!J){let L=VN(G,X);if(L!==void 0)return L}let $={def:Y,path:X.currentPath,jsonSchema:void 0};X.seen.set(Y,$);let W=NN(Y,Y.typeName,X),z=typeof W==="function"?r(W(),X):W;if(z)BN(Y,X,z);if(X.postProcess){let L=X.postProcess(z,Y,X);return $.jsonSchema=z,L}return $.jsonSchema=z,z}var VN=(Y,X)=>{switch(X.$refStrategy){case"root":return{$ref:Y.path.join("/")};case"relative":return{$ref:ZN(X.currentPath,Y.path)};case"none":case"seen":{if(Y.path.length<X.currentPath.length&&Y.path.every((J,Q)=>X.currentPath[Q]===J))return console.warn(`Recursive reference detected at ${X.currentPath.join("/")}! Defaulting to any`),b0();return X.$refStrategy==="seen"?b0():void 0}}},BN=(Y,X,J)=>{if(Y.description)J.description=Y.description;return J},FN=(Y)=>{let X=xH(Y),J=X.name!==void 0?[...X.basePath,X.definitionPath,X.name]:X.basePath;return{...X,currentPath:J,propertyPath:void 0,seen:new Map(Object.entries(X.definitions).map(([Q,G])=>[G._def,{def:G._def,path:[...X.basePath,X.definitionPath,Q],jsonSchema:void 0}]))}},ON=(Y,X)=>{var J;let Q=FN(X),G=typeof X==="object"&&X.definitions?Object.entries(X.definitions).reduce((U,[H,B])=>{var V;return{...U,[H]:(V=r(B._def,{...Q,currentPath:[...Q.basePath,Q.definitionPath,H]},!0))!=null?V:b0()}},{}):void 0,$=typeof X==="string"?X:(X==null?void 0:X.nameStrategy)==="title"?void 0:X==null?void 0:X.name,W=(J=r(Y._def,$===void 0?Q:{...Q,currentPath:[...Q.basePath,Q.definitionPath,$]},!1))!=null?J:b0(),z=typeof X==="object"&&X.name!==void 0&&X.nameStrategy==="title"?X.name:void 0;if(z!==void 0)W.title=z;let L=$===void 0?G?{...W,[Q.definitionPath]:G}:W:{$ref:[...Q.$refStrategy==="relative"?[]:Q.basePath,Q.definitionPath,$].join("/"),[Q.definitionPath]:{...G,[$]:W}};return L.$schema="http://json-schema.org/draft-07/schema#",L},uX=Symbol.for("vercel.ai.schema");function j9(Y){let X;return()=>{if(X==null)X=Y();return X}}function D9(Y,{validate:X}={}){return{[uX]:!0,_type:void 0,get jsonSchema(){if(typeof Y==="function")Y=Y();return Y},validate:X}}function qN(Y){return typeof Y==="object"&&Y!==null&&uX in Y&&Y[uX]===!0&&"jsonSchema"in Y&&"validate"in Y}function P9(Y){return Y==null?D9({type:"object",properties:{},additionalProperties:!1}):qN(Y)?Y:("~standard"in Y)?Y["~standard"].vendor==="zod"?P1(Y):jN(Y):Y()}function jN(Y){return D9(()=>{if(!DN(Y))throw Error(`Standard schema vendor '${Y["~standard"].vendor}' does not support JSON Schema conversion.`);return iX(Y["~standard"].jsonSchema.input({target:"draft-07"}))},{validate:async(X)=>{let J=await Y["~standard"].validate(X);return"value"in J?{success:!0,value:J.value}:{success:!1,error:new h0({value:X,cause:J.issues})}}})}function DN(Y){return Y["~standard"].jsonSchema!=null}function PN(Y,X){var J;let Q=(J=X==null?void 0:X.useReferences)!=null?J:!1;return D9(()=>ON(Y,{$refStrategy:Q?"root":"none"}),{validate:async(G)=>{let $=await Y.safeParseAsync(G);return $.success?{success:!0,value:$.data}:{success:!1,error:$.error}}})}function MN(Y,X){var J;let Q=(J=X==null?void 0:X.useReferences)!=null?J:!1;return D9(()=>iX(s$(Y,{target:"draft-7",io:"input",reused:Q?"ref":"inline"})),{validate:async(G)=>{let $=await F9(Y,G);return $.success?{success:!0,value:$.data}:{success:!1,error:$.error}}})}function EN(Y){return"_zod"in Y}function P1(Y,X){if(EN(Y))return MN(Y,X);else return PN(Y,X)}async function iY({value:Y,schema:X,context:J}){let Q=P9(X);try{if(Q.validate==null)return{success:!0,value:Y,rawValue:Y};let G=await Q.validate(Y);if(G.success)return{success:!0,value:G.value,rawValue:Y};return{success:!1,error:h0.wrap({value:Y,cause:G.error,context:J}),rawValue:Y}}catch(G){return{success:!1,error:h0.wrap({value:Y,cause:G,context:J}),rawValue:Y}}}async function qY({text:Y,schema:X}){try{let J=SH(Y);if(X==null)return{success:!0,value:J,rawValue:J};return await iY({value:J,schema:X})}catch(J){return{success:!1,error:t1.isInstance(J)?J:new t1({text:Y,cause:J}),rawValue:void 0}}}async function oX(Y){if(typeof Y==="function")Y=Y();return Promise.resolve(Y)}var G7="AI_SerializationError",$7=`vercel.ai.error.${G7}`,wN=Symbol.for($7),p2,l2,yq=class extends(l2=P,p2=wN,l2){constructor({message:Y="Failed to serialize value.",cause:X}={}){super({name:G7,message:Y,cause:X});this[p2]=!0}static isInstance(Y){return P.hasMarker(Y,$7)}};var RN=Object.defineProperty,CN=(Y,X)=>{for(var J in X)RN(Y,J,{get:X[J],enumerable:!0})},JW="AI_InvalidArgumentError",QW=`vercel.ai.error.${JW}`,IN=Symbol.for(QW),W7,K7,nX=class extends(K7=P,W7=IN,K7){constructor({parameter:Y,value:X,message:J}){super({name:JW,message:`Invalid argument for parameter ${Y}: ${J}`});this[W7]=!0,this.parameter=Y,this.value=X}static isInstance(Y){return P.hasMarker(Y,QW)}},GW="AI_InvalidStreamPartError",$W=`vercel.ai.error.${GW}`,_N=Symbol.for($W),z7,U7,sq=class extends(U7=P,z7=_N,U7){constructor({chunk:Y,message:X}){super({name:GW,message:X});this[z7]=!0,this.chunk=Y}static isInstance(Y){return P.hasMarker(Y,$W)}},WW="AI_InvalidToolApprovalError",KW=`vercel.ai.error.${WW}`,SN=Symbol.for(KW),L7,H7,tq=class extends(H7=P,L7=SN,H7){constructor({approvalId:Y}){super({name:WW,message:`Tool approval response references unknown approvalId: "${Y}". No matching tool-approval-request found in message history.`});this[L7]=!0,this.approvalId=Y}static isInstance(Y){return P.hasMarker(Y,KW)}},zW="AI_InvalidToolApprovalSignatureError",UW=`vercel.ai.error.${zW}`,kN=Symbol.for(UW),N7,Z7,Yj=class extends(Z7=P,N7=kN,Z7){constructor({approvalId:Y,toolCallId:X,reason:J}){super({name:zW,message:`Tool approval signature verification failed for approval "${Y}" (tool call "${X}"): ${J}`});this[N7]=!0,this.approvalId=Y,this.toolCallId=X}static isInstance(Y){return P.hasMarker(Y,UW)}},LW="AI_InvalidToolInputError",HW=`vercel.ai.error.${LW}`,xN=Symbol.for(HW),V7,B7,Jj=class extends(B7=P,V7=xN,B7){constructor({toolInput:Y,toolName:X,cause:J,message:Q=`Invalid input for tool ${X}: ${CY(J)}`}){super({name:LW,message:Q,cause:J});this[V7]=!0,this.toolInput=Y,this.toolName=X}static isInstance(Y){return P.hasMarker(Y,HW)}},NW="AI_ToolCallNotFoundForApprovalError",ZW=`vercel.ai.error.${NW}`,bN=Symbol.for(ZW),F7,O7,Gj=class extends(O7=P,F7=bN,O7){constructor({toolCallId:Y,approvalId:X}){super({name:NW,message:`Tool call "${Y}" not found for approval request "${X}".`});this[F7]=!0,this.toolCallId=Y,this.approvalId=X}static isInstance(Y){return P.hasMarker(Y,ZW)}},VW="AI_MissingToolResultsError",BW=`vercel.ai.error.${VW}`,vN=Symbol.for(BW),q7,j7,Wj=class extends(j7=P,q7=vN,j7){constructor({toolCallIds:Y}){super({name:VW,message:`Tool result${Y.length>1?"s are":" is"} missing for tool call${Y.length>1?"s":""} ${Y.join(", ")}.`});this[q7]=!0,this.toolCallIds=Y}static isInstance(Y){return P.hasMarker(Y,BW)}},FW="AI_NoImageGeneratedError",OW=`vercel.ai.error.${FW}`,hN=Symbol.for(OW),D7,P7,zj=class extends(P7=P,D7=hN,P7){constructor({message:Y="No image generated.",cause:X,calls:J,responses:Q}){super({name:FW,message:Y,cause:X});this[D7]=!0,this.calls=J,this.responses=Q}static isInstance(Y){return P.hasMarker(Y,OW)}},qW="AI_NoObjectGeneratedError",jW=`vercel.ai.error.${qW}`,gN=Symbol.for(jW),M7,E7,GY=class extends(E7=P,M7=gN,E7){constructor({message:Y="No object generated.",cause:X,text:J,response:Q,usage:G,finishReason:$}){super({name:qW,message:Y,cause:X});this[M7]=!0,this.text=J,this.response=Q,this.usage=G,this.finishReason=$}static isInstance(Y){return P.hasMarker(Y,jW)}},DW="AI_NoOutputGeneratedError",PW=`vercel.ai.error.${DW}`,yN=Symbol.for(PW),w7,A7,Hj=class extends(A7=P,w7=yN,A7){constructor({message:Y="No output generated.",cause:X}={}){super({name:DW,message:Y,cause:X});this[w7]=!0}static isInstance(Y){return P.hasMarker(Y,PW)}},MW="AI_NoSpeechGeneratedError",EW=`vercel.ai.error.${MW}`,fN=Symbol.for(EW),T7,R7,Zj=class extends(R7=P,T7=fN,R7){constructor(Y){super({name:MW,message:"No speech audio generated."});this[T7]=!0,this.responses=Y.responses}static isInstance(Y){return P.hasMarker(Y,EW)}},wW="AI_NoTranscriptGeneratedError",AW=`vercel.ai.error.${wW}`,mN=Symbol.for(AW),C7,I7,Bj=class extends(I7=P,C7=mN,I7){constructor(Y){super({name:wW,message:"No transcript generated."});this[C7]=!0,this.responses=Y.responses}static isInstance(Y){return P.hasMarker(Y,AW)}},TW="AI_NoTranslationGeneratedError",RW=`vercel.ai.error.${TW}`,cN=Symbol.for(RW),_7,S7,Oj=class extends(S7=P,_7=cN,S7){constructor(Y){super({name:TW,message:"No translation generated."});this[_7]=!0,this.response=Y.response}static isInstance(Y){return P.hasMarker(Y,RW)}},rX="AI_NoVideoGeneratedError",CW=`vercel.ai.error.${rX}`,uN=Symbol.for(CW),k7,x7,jj=class extends(x7=P,k7=uN,x7){constructor({message:Y="No video generated.",cause:X,responses:J}){super({name:rX,message:Y,cause:X});this[k7]=!0,this.responses=J}static isInstance(Y){return P.hasMarker(Y,CW)}static isNoVideoGeneratedError(Y){return Y instanceof Error&&Y.name===rX&&typeof Y.responses<"u"?!0:!1}toJSON(){return{name:this.name,message:this.message,stack:this.stack,cause:this.cause,responses:this.responses}}},IW="AI_NoSuchToolError",_W=`vercel.ai.error.${IW}`,pN=Symbol.for(_W),b7,v7,Pj=class extends(v7=P,b7=pN,v7){constructor({toolName:Y,availableTools:X=void 0,message:J=`Model tried to call unavailable tool '${Y}'. ${X===void 0?"No tools are available.":`Available tools: ${X.join(", ")}.`}`}){super({name:IW,message:J});this[b7]=!0,this.toolName=Y,this.availableTools=X}static isInstance(Y){return P.hasMarker(Y,_W)}},SW="AI_StreamProviderError",kW=`vercel.ai.error.${SW}`,lN=Symbol.for(kW),h7,g7,Ej=class extends(g7=P,h7=lN,g7){constructor({message:Y,type:X,code:J,statusCode:Q,isRetryable:G=dN(Q),data:$,cause:W}){super({name:SW,message:Y,cause:W});this[h7]=!0,this.type=X,this.code=J,this.statusCode=Q,this.isRetryable=G,this.data=$}static isInstance(Y){return P.hasMarker(Y,kW)}};function dN(Y){return Y!=null&&(Y===408||Y===409||Y===429||Y>=500)}var xW="AI_ToolCallRepairError",bW=`vercel.ai.error.${xW}`,iN=Symbol.for(bW),y7,f7,Aj=class extends(f7=P,y7=iN,f7){constructor({cause:Y,originalError:X,message:J=`Error repairing tool call: ${CY(Y)}`}){super({name:xW,message:J,cause:Y});this[y7]=!0,this.originalError=X}static isInstance(Y){return P.hasMarker(Y,bW)}},vW="AI_ToolChoiceViolationError",hW=`vercel.ai.error.${vW}`,oN=Symbol.for(hW),m7,c7,Rj=class extends(c7=P,m7=oN,c7){constructor({toolChoice:Y,finishReason:X,provider:J,modelId:Q,content:G,message:$=Y.type==="required"?"Model response did not contain a tool call even though tool choice was required.":`Model response did not contain a call to the required tool '${Y.toolName}'.`}){super({name:vW,message:$});this[m7]=!0,this.toolChoice=Y,this.finishReason=X,this.provider=J,this.modelId=Q,this.content=G}static isInstance(Y){return P.hasMarker(Y,hW)}};var gW="AI_UIMessageStreamError",yW=`vercel.ai.error.${gW}`,nN=Symbol.for(yW),u7,p7,Ij=class extends(p7=P,u7=nN,p7){constructor({chunkType:Y,chunkId:X,message:J}){super({name:gW,message:J});this[u7]=!0,this.chunkType=Y,this.chunkId=X}static isInstance(Y){return P.hasMarker(Y,yW)}},fW="AI_InvalidDataContentError",mW=`vercel.ai.error.${fW}`,rN=Symbol.for(mW),l7,d7,Sj=class extends(d7=P,l7=rN,d7){constructor({content:Y,cause:X,message:J=`Invalid data content. Expected a base64 string, Uint8Array, ArrayBuffer, or Buffer, but got ${typeof Y}.`}){super({name:fW,message:J,cause:X});this[l7]=!0,this.content=Y}static isInstance(Y){return P.hasMarker(Y,mW)}},cW="AI_InvalidMessageRoleError",uW=`vercel.ai.error.${cW}`,sN=Symbol.for(uW),i7,o7,xj=class extends(o7=P,i7=sN,o7){constructor({role:Y,message:X=`Invalid message role: '${Y}'. Must be one of: "system", "user", "assistant", "tool".`}){super({name:cW,message:X});this[i7]=!0,this.role=Y}static isInstance(Y){return P.hasMarker(Y,uW)}},pW="AI_MessageConversionError",lW=`vercel.ai.error.${pW}`,aN=Symbol.for(lW),n7,r7,vj=class extends(r7=P,n7=aN,r7){constructor({originalMessage:Y,message:X}){super({name:pW,message:X});this[n7]=!0,this.originalMessage=Y}static isInstance(Y){return P.hasMarker(Y,lW)}},dW="AI_RetryError",iW=`vercel.ai.error.${dW}`,tN=Symbol.for(iW),s7,a7,gj=class extends(a7=P,s7=tN,a7){constructor({message:Y,reason:X,errors:J}){super({name:dW,message:Y});this[s7]=!0,this.reason=X,this.errors=J,this.lastError=J[J.length-1]}static isInstance(Y){return P.hasMarker(Y,iW)}};var eN="7.0.102",YZ=async({url:Y,maxBytes:X,abortSignal:J})=>{var Q;let G=Y.toString();try{let $=dY({},`ai-sdk/${eN}`,d2()),W=await a2({url:G,headers:$,abortSignal:J});if(!W.ok)throw await q9(W),new A0({url:G,statusCode:W.status,statusText:W.statusText});return{data:await t2({response:W,url:G,maxBytes:X!=null?X:dX}),mediaType:(Q=W.headers.get("content-type"))!=null?Q:void 0}}catch($){if(A0.isInstance($))throw $;throw new A0({url:G,cause:$})}};var K={array:bX,boolean:M2,custom:b2,discriminatedUnion:C2,enum:hX,instanceof:v2,lazy:x2,literal:_2,looseObject:T2,never:xX,null:E2,number:P2,object:A2,record:I2,string:j2,union:vX,unknown:D1},kY=K.lazy(()=>K.union([K.null(),K.string(),K.number(),K.boolean(),K.record(K.string(),kY.optional()),K.array(kY)])),_=K.record(K.string(),K.record(K.string(),kY.optional())),E1=K.union([K.string(),K.instanceof(Uint8Array),K.instanceof(ArrayBuffer),K.custom(e2,{message:"Must be a Buffer"})]),sX=K.record(K.string(),K.string()),oW=K.object({type:K.literal("text"),text:K.string(),providerOptions:_.optional()}),XZ=K.object({type:K.literal("image"),image:K.union([E1,K.instanceof(URL),sX]),mediaType:K.string().optional(),providerOptions:_.optional()}),nW=K.discriminatedUnion("type",[K.object({type:K.literal("data"),data:E1}),K.object({type:K.literal("url"),url:K.instanceof(URL)}),K.object({type:K.literal("reference"),reference:sX}),K.object({type:K.literal("text"),text:K.string()})]),JZ=K.discriminatedUnion("type",[K.object({type:K.literal("data"),data:E1}),K.object({type:K.literal("url"),url:K.instanceof(URL)})]),rW=K.object({type:K.literal("file"),data:K.union([nW,E1,K.instanceof(URL),sX]),filename:K.string().optional(),mediaType:K.string(),providerOptions:_.optional()}),QZ=K.object({type:K.literal("reasoning"),text:K.string(),providerOptions:_.optional()}),GZ=K.object({type:K.literal("custom"),kind:K.string().transform((Y)=>Y),providerOptions:_.optional()}),$Z=K.object({type:K.literal("reasoning-file"),data:K.union([JZ,E1,K.instanceof(URL)]),mediaType:K.string(),providerOptions:_.optional()}),WZ=K.object({type:K.literal("tool-call"),toolCallId:K.string(),toolName:K.string(),input:K.unknown(),providerOptions:_.optional(),providerExecuted:K.boolean().optional()}),KZ=K.discriminatedUnion("type",[K.object({type:K.literal("text"),value:K.string(),providerOptions:_.optional()}),K.object({type:K.literal("json"),value:kY,providerOptions:_.optional()}),K.object({type:K.literal("execution-denied"),reason:K.string().optional(),providerOptions:_.optional()}),K.object({type:K.literal("error-text"),value:K.string(),providerOptions:_.optional()}),K.object({type:K.literal("error-json"),value:kY,providerOptions:_.optional()}),K.object({type:K.literal("content"),value:K.array(K.union([K.object({type:K.literal("text"),text:K.string(),providerOptions:_.optional()}),K.object({type:K.literal("file"),data:nW,mediaType:K.string(),filename:K.string().optional(),providerOptions:_.optional()}),K.object({type:K.literal("file-data"),data:K.string(),mediaType:K.string(),filename:K.string().optional(),providerOptions:_.optional()}),K.object({type:K.literal("file-url"),url:K.string(),mediaType:K.string().optional(),providerOptions:_.optional()}),K.object({type:K.literal("file-id"),fileId:K.union([K.string(),K.record(K.string(),K.string())]),providerOptions:_.optional()}),K.object({type:K.literal("file-reference"),providerReference:K.record(K.string(),K.string()),providerOptions:_.optional()}),K.object({type:K.literal("image-data"),data:K.string(),mediaType:K.string(),providerOptions:_.optional()}),K.object({type:K.literal("image-url"),url:K.string(),providerOptions:_.optional()}),K.object({type:K.literal("image-file-id"),fileId:K.union([K.string(),K.record(K.string(),K.string())]),providerOptions:_.optional()}),K.object({type:K.literal("image-file-reference"),providerReference:K.record(K.string(),K.string()),providerOptions:_.optional()}),K.object({type:K.literal("custom"),providerOptions:_.optional()})]))})]),sW=K.object({type:K.literal("tool-result"),toolCallId:K.string(),toolName:K.string(),output:KZ,providerOptions:_.optional()}),zZ=K.object({type:K.literal("tool-approval-request"),approvalId:K.string(),toolCallId:K.string(),reason:K.string().optional()}),UZ=K.object({type:K.literal("tool-approval-response"),approvalId:K.string(),approved:K.boolean(),reason:K.string().optional()}),LZ=K.object({role:K.literal("system"),content:K.string(),providerOptions:_.optional()}),HZ=K.object({role:K.literal("user"),content:K.union([K.string(),K.array(K.union([oW,XZ,rW]))]),providerOptions:_.optional()}),NZ=K.object({role:K.literal("assistant"),content:K.union([K.string(),K.array(K.union([oW,GZ,rW,QZ,$Z,WZ,sW,zZ]))]),providerOptions:_.optional()}),ZZ=K.object({role:K.literal("tool"),content:K.array(K.union([sW,UZ])),providerOptions:_.optional()}),cj=K.union([LZ,HZ,NZ,ZZ]);var VZ={};CN(VZ,{array:()=>qZ,choice:()=>jZ,json:()=>DZ,object:()=>OZ,text:()=>FZ});function BZ(Y){let X=["ROOT"],J=-1,Q=null,G=0;function $(H){return H>="0"&&H<="9"||H>="A"&&H<="F"||H>="a"&&H<="f"}function W(H,B,V){switch(H){case'"':{J=B,X.pop(),X.push(V),X.push("INSIDE_STRING");break}case"f":case"t":case"n":{J=B,Q=B,X.pop(),X.push(V),X.push("INSIDE_LITERAL");break}case"-":{X.pop(),X.push(V),X.push("INSIDE_NUMBER");break}case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{J=B,X.pop(),X.push(V),X.push("INSIDE_NUMBER");break}case"{":{J=B,X.pop(),X.push(V),X.push("INSIDE_OBJECT_START");break}case"[":{J=B,X.pop(),X.push(V),X.push("INSIDE_ARRAY_START");break}}}function z(H,B){switch(H){case",":{X.pop(),X.push("INSIDE_OBJECT_AFTER_COMMA");break}case"}":{J=B,X.pop();break}}}function L(H,B){switch(H){case",":{X.pop(),X.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{J=B,X.pop();break}}}for(let H=0;H<Y.length;H++){let B=Y[H];switch(X[X.length-1]){case"ROOT":W(B,H,"FINISH");break;case"INSIDE_OBJECT_START":{switch(B){case'"':{X.pop(),X.push("INSIDE_OBJECT_KEY");break}case"}":{J=H,X.pop();break}}break}case"INSIDE_OBJECT_AFTER_COMMA":{switch(B){case'"':{X.pop(),X.push("INSIDE_OBJECT_KEY");break}}break}case"INSIDE_OBJECT_KEY":{switch(B){case'"':{X.pop(),X.push("INSIDE_OBJECT_AFTER_KEY");break}}break}case"INSIDE_OBJECT_AFTER_KEY":{switch(B){case":":{X.pop(),X.push("INSIDE_OBJECT_BEFORE_VALUE");break}}break}case"INSIDE_OBJECT_BEFORE_VALUE":{W(B,H,"INSIDE_OBJECT_AFTER_VALUE");break}case"INSIDE_OBJECT_AFTER_VALUE":{z(B,H);break}case"INSIDE_STRING":{switch(B){case'"':{X.pop(),J=H;break}case"\\":{X.push("INSIDE_STRING_ESCAPE");break}default:J=H}break}case"INSIDE_ARRAY_START":{switch(B){case"]":{J=H,X.pop();break}default:{J=H,W(B,H,"INSIDE_ARRAY_AFTER_VALUE");break}}break}case"INSIDE_ARRAY_AFTER_VALUE":{switch(B){case",":{X.pop(),X.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{J=H,X.pop();break}default:{J=H;break}}break}case"INSIDE_ARRAY_AFTER_COMMA":{W(B,H,"INSIDE_ARRAY_AFTER_VALUE");break}case"INSIDE_STRING_ESCAPE":{if(X.pop(),B==="u")G=0,X.push("INSIDE_STRING_UNICODE_ESCAPE");else J=H;break}case"INSIDE_STRING_UNICODE_ESCAPE":{if($(B)){if(G++,G===4)X.pop(),J=H}break}case"INSIDE_NUMBER":{switch(B){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{J=H;break}case"e":case"E":case"-":case".":break;case",":{if(X.pop(),X[X.length-1]==="INSIDE_ARRAY_AFTER_VALUE")L(B,H);if(X[X.length-1]==="INSIDE_OBJECT_AFTER_VALUE")z(B,H);break}case"}":{if(X.pop(),X[X.length-1]==="INSIDE_OBJECT_AFTER_VALUE")z(B,H);break}case"]":{if(X.pop(),X[X.length-1]==="INSIDE_ARRAY_AFTER_VALUE")L(B,H);break}default:{X.pop();break}}break}case"INSIDE_LITERAL":{let Z=Y.substring(Q,H+1);if(!"false".startsWith(Z)&&!"true".startsWith(Z)&&!"null".startsWith(Z)){if(X.pop(),X[X.length-1]==="INSIDE_OBJECT_AFTER_VALUE")z(B,H);else if(X[X.length-1]==="INSIDE_ARRAY_AFTER_VALUE")L(B,H)}else J=H;break}}}let U=Y.slice(0,J+1);for(let H=X.length-1;H>=0;H--)switch(X[H]){case"INSIDE_STRING":{U+='"';break}case"INSIDE_OBJECT_KEY":case"INSIDE_OBJECT_AFTER_KEY":case"INSIDE_OBJECT_AFTER_COMMA":case"INSIDE_OBJECT_START":case"INSIDE_OBJECT_BEFORE_VALUE":case"INSIDE_OBJECT_AFTER_VALUE":{U+="}";break}case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":{U+="]";break}case"INSIDE_LITERAL":{let V=Y.substring(Q,Y.length);if("true".startsWith(V))U+="true".slice(V.length);else if("false".startsWith(V))U+="false".slice(V.length);else if("null".startsWith(V))U+="null".slice(V.length)}}return U}async function M9(Y){if(Y===void 0)return{value:void 0,state:"undefined-input"};let X=await qY({text:Y});if(X.success)return{value:X.value,state:"successful-parse"};if(X=await qY({text:BZ(Y)}),X.success)return{value:X.value,state:"repaired-parse"};return{value:void 0,state:"failed-parse"}}var FZ=()=>({name:"text",responseFormat:Promise.resolve({type:"text"}),async parseCompleteOutput({text:Y}){return Y},async parsePartialOutput({text:Y}){return{partial:Y}},createElementStreamTransform(){return}}),OZ=({schema:Y,name:X,description:J})=>{let Q=P9(Y);return{name:"object",responseFormat:oX(Q.jsonSchema).then((G)=>({type:"json",schema:G,...X!=null&&{name:X},...J!=null&&{description:J}})),async parseCompleteOutput({text:G},$){let W=await qY({text:G});if(!W.success)throw new GY({message:"No object generated: could not parse the response.",cause:W.error,text:G,response:$.response,usage:$.usage,finishReason:$.finishReason});let z=await iY({value:W.value,schema:Q});if(!z.success)throw new GY({message:"No object generated: response did not match schema.",cause:z.error,text:G,response:$.response,usage:$.usage,finishReason:$.finishReason});return z.value},async parsePartialOutput({text:G}){let $=await M9(G);switch($.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:$.value}}},createElementStreamTransform(){return}}},qZ=({element:Y,minItems:X,maxItems:J,name:Q,description:G})=>{if(t7({name:"minItems",value:X}),t7({name:"maxItems",value:J}),X!=null&&J!=null&&X>J)throw new nX({parameter:"minItems",value:X,message:"minItems must be less than or equal to maxItems"});let $=P9(Y);return{name:"array",responseFormat:oX($.jsonSchema).then((W)=>{let{$schema:z,definitions:L,$defs:U,...H}=W;return{type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",...L!=null&&{definitions:L},...U!=null&&{$defs:U},type:"object",properties:{elements:{type:"array",items:H,...X!=null&&{minItems:X},...J!=null&&{maxItems:J}}},required:["elements"],additionalProperties:!1},...Q!=null&&{name:Q},...G!=null&&{description:G}}}),async parseCompleteOutput({text:W},z){let L=await qY({text:W});if(!L.success)throw new GY({message:"No object generated: could not parse the response.",cause:L.error,text:W,response:z.response,usage:z.usage,finishReason:z.finishReason});let U=L.value;if(U==null||typeof U!=="object"||!("elements"in U)||!Array.isArray(U.elements))throw new GY({message:"No object generated: response did not match schema.",cause:new h0({value:U,cause:"response must be an object with an elements array"}),text:W,response:z.response,usage:z.usage,finishReason:z.finishReason});let H=e7({value:U.elements,minItems:X,maxItems:J});if(H!=null)throw new GY({message:"No object generated: response did not match schema.",cause:H,text:W,response:z.response,usage:z.usage,finishReason:z.finishReason});let B=[];for(let V of U.elements){let Z=await iY({value:V,schema:$});if(!Z.success)throw new GY({message:"No object generated: response did not match schema.",cause:Z.error,text:W,response:z.response,usage:z.usage,finishReason:z.finishReason});B.push(Z.value)}return B},async parsePartialOutput({text:W}){let z=await M9(W);switch(z.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{let L=z.value;if(L==null||typeof L!=="object"||!("elements"in L)||!Array.isArray(L.elements))return;let U=z.state==="repaired-parse"&&L.elements.length>0?L.elements.slice(0,-1):L.elements,H=[];for(let B of U){let V=await iY({value:B,schema:$});if(V.success)H.push(V.value)}return{partial:H}}}},createElementStreamTransform(){let W=0;return new TransformStream({transform({partialOutput:z},L){if(z!=null)for(;W<z.length;W++){if(J!=null&&W>=J){L.error(e7({value:z,maxItems:J}));return}L.enqueue(z[W])}}})}}};function t7({name:Y,value:X}){if(X==null)return;if(!Number.isInteger(X))throw new nX({parameter:Y,value:X,message:`${Y} must be an integer`});if(X<0)throw new nX({parameter:Y,value:X,message:`${Y} must be greater than or equal to 0`})}function e7({value:Y,minItems:X,maxItems:J}){if(X!=null&&Y.length<X)return new h0({value:Y,cause:`elements array must contain at least ${X} items`});if(J!=null&&Y.length>J)return new h0({value:Y,cause:`elements array must contain at most ${J} items`});return}var jZ=({options:Y,name:X,description:J})=>{return{name:"choice",responseFormat:Promise.resolve({type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{result:{type:"string",enum:Y}},required:["result"],additionalProperties:!1},...X!=null&&{name:X},...J!=null&&{description:J}}),async parseCompleteOutput({text:Q},G){let $=await qY({text:Q});if(!$.success)throw new GY({message:"No object generated: could not parse the response.",cause:$.error,text:Q,response:G.response,usage:G.usage,finishReason:G.finishReason});let W=$.value;if(W==null||typeof W!=="object"||!("result"in W)||typeof W.result!=="string"||!Y.includes(W.result))throw new GY({message:"No object generated: response did not match schema.",cause:new h0({value:W,cause:"response must be an object that contains a choice value."}),text:Q,response:G.response,usage:G.usage,finishReason:G.finishReason});return W.result},async parsePartialOutput({text:Q}){let G=await M9(Q);switch(G.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{let $=G.value;if($==null||typeof $!=="object"||!("result"in $)||typeof $.result!=="string")return;let W=Y.filter((z)=>z.startsWith($.result));if(G.state==="successful-parse")return W.includes($.result)?{partial:$.result}:void 0;else return W.length===1?{partial:W[0]}:void 0}}},createElementStreamTransform(){return}}},DZ=({name:Y,description:X}={})=>{return{name:"json",responseFormat:Promise.resolve({type:"json",...Y!=null&&{name:Y},...X!=null&&{description:X}}),async parseCompleteOutput({text:J},Q){let G=await qY({text:J});if(!G.success)throw new GY({message:"No object generated: could not parse the response.",cause:G.error,text:J,response:Q.response,usage:Q.usage,finishReason:Q.finishReason});return G.value},async parsePartialOutput({text:J}){let Q=await M9(J);switch(Q.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return Q.value===void 0?void 0:{partial:Q.value}}},createElementStreamTransform(){return}}};var dj=z0({prefix:"aitxt",size:24}),ij=z0({prefix:"call",size:24});var nj=class extends TransformStream{constructor(){super({transform(Y,X){X.enqueue(`data: ${JSON.stringify(Y)}
|
|
92
|
+
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let U of this.seen.entries()){let L=U[1];if(Y===U[0]){G(U);continue}if(X.external){let N=X.external.registry.get(U[0])?.id;if(Y!==U[0]&&N){G(U);continue}}if(this.metadataRegistry.get(U[0])?.id){G(U);continue}if(L.cycle){G(U);continue}if(L.count>1){if(X.reused==="ref"){G(U);continue}}}let W=(U,L)=>{let j=this.seen.get(U),N=j.def??j.schema,V={...N};if(j.ref===null)return;let q=j.ref;if(j.ref=null,q){W(q,L);let T=this.seen.get(q).schema;if(T.$ref&&(L.target==="draft-7"||L.target==="draft-4"||L.target==="openapi-3.0"))N.allOf=N.allOf??[],N.allOf.push(T);else Object.assign(N,T),Object.assign(N,V)}if(!j.isParent)this.override({zodSchema:U,jsonSchema:N,path:j.path??[]})};for(let U of[...this.seen.entries()].reverse())W(U[0],{target:this.target});let K={};if(this.target==="draft-2020-12")K.$schema="https://json-schema.org/draft/2020-12/schema";else if(this.target==="draft-7")K.$schema="http://json-schema.org/draft-07/schema#";else if(this.target==="draft-4")K.$schema="http://json-schema.org/draft-04/schema#";else if(this.target==="openapi-3.0");else console.warn(`Invalid target: ${this.target}`);if(X.external?.uri){let U=X.external.registry.get(Y)?.id;if(!U)throw Error("Schema is missing an `id` property");K.$id=X.external.uri(U)}Object.assign(K,Q.def);let Z=X.external?.defs??{};for(let U of this.seen.entries()){let L=U[1];if(L.def&&L.defId)Z[L.defId]=L.def}if(X.external);else if(Object.keys(Z).length>0)if(this.target==="draft-2020-12")K.$defs=Z;else K.definitions=Z;try{return JSON.parse(JSON.stringify(K))}catch(U){throw Error("Error converting schema to JSON.")}}}function v7(Y,J){if(Y instanceof lY){let Q=new MX(J),$={};for(let K of Y._idmap.entries()){let[Z,U]=K;Q.process(U)}let G={},W={registry:Y,uri:J?.uri,defs:$};for(let K of Y._idmap.entries()){let[Z,U]=K;G[Z]=Q.emit(U,{...J,external:W})}if(Object.keys($).length>0){let K=Q.target==="draft-2020-12"?"$defs":"definitions";G.__shared={[K]:$}}return{schemas:G}}let X=new MX(J);return X.process(Y),X.emit(Y,J)}function D0(Y,J){let X=J??{seen:new Set};if(X.seen.has(Y))return!1;X.seen.add(Y);let $=Y._zod.def;switch($.type){case"string":case"number":case"bigint":case"boolean":case"date":case"symbol":case"undefined":case"null":case"any":case"unknown":case"never":case"void":case"literal":case"enum":case"nan":case"file":case"template_literal":return!1;case"array":return D0($.element,X);case"object":{for(let G in $.shape)if(D0($.shape[G],X))return!0;return!1}case"union":{for(let G of $.options)if(D0(G,X))return!0;return!1}case"intersection":return D0($.left,X)||D0($.right,X);case"tuple":{for(let G of $.items)if(D0(G,X))return!0;if($.rest&&D0($.rest,X))return!0;return!1}case"record":return D0($.keyType,X)||D0($.valueType,X);case"map":return D0($.keyType,X)||D0($.valueType,X);case"set":return D0($.valueType,X);case"promise":case"optional":case"nonoptional":case"nullable":case"readonly":return D0($.innerType,X);case"lazy":return D0($.getter(),X);case"default":return D0($.innerType,X);case"prefault":return D0($.innerType,X);case"custom":return!1;case"transform":return!0;case"pipe":return D0($.in,X)||D0($.out,X);case"success":return!1;case"catch":return!1;case"function":return!1;default:}throw Error(`Unknown schema type: ${$.type}`)}var qH=P("ZodISODateTime",(Y,J)=>{B2.init(Y,J),L0.init(Y,J)});function h7(Y){return P7(qH,Y)}var DH=P("ZodISODate",(Y,J)=>{F2.init(Y,J),L0.init(Y,J)});function g7(Y){return E7(DH,Y)}var PH=P("ZodISOTime",(Y,J)=>{j2.init(Y,J),L0.init(Y,J)});function y7(Y){return M7(PH,Y)}var EH=P("ZodISODuration",(Y,J)=>{O2.init(Y,J),L0.init(Y,J)});function f7(Y){return w7(EH,Y)}var m7=(Y,J)=>{gY.init(Y,J),Y.name="ZodError",Object.defineProperties(Y,{format:{value:(X)=>r$(Y,X)},flatten:{value:(X)=>n$(Y,X)},addIssue:{value:(X)=>{Y.issues.push(X),Y.message=JSON.stringify(Y.issues,K9,2)}},addIssues:{value:(X)=>{Y.issues.push(...X),Y.message=JSON.stringify(Y.issues,K9,2)}},isEmpty:{get(){return Y.issues.length===0}}})},D6=P("ZodError",m7),d0=P("ZodError",m7,{Parent:Error});var c7=yY(d0),u7=fY(d0),p7=c9(d0),aY=u9(d0),l7=t$(d0),d7=e$(d0),i7=YG(d0),o7=JG(d0),n7=XG(d0),r7=QG(d0),s7=$G(d0),a7=GG(d0);var H0=P("ZodType",(Y,J)=>{return K0.init(Y,J),Y.def=J,Y.type=J.type,Object.defineProperty(Y,"_def",{value:J}),Y.check=(...X)=>{return Y.clone({...J,checks:[...J.checks??[],...X.map((Q)=>typeof Q==="function"?{_zod:{check:Q,def:{check:"custom"},onattach:[]}}:Q)]})},Y.clone=(X,Q)=>a0(Y,X,Q),Y.brand=()=>Y,Y.register=(X,Q)=>{return X.add(Y,Q),Y},Y.parse=(X,Q)=>c7(Y,X,Q,{callee:Y.parse}),Y.safeParse=(X,Q)=>p7(Y,X,Q),Y.parseAsync=async(X,Q)=>u7(Y,X,Q,{callee:Y.parseAsync}),Y.safeParseAsync=async(X,Q)=>aY(Y,X,Q),Y.spa=Y.safeParseAsync,Y.encode=(X,Q)=>l7(Y,X,Q),Y.decode=(X,Q)=>d7(Y,X,Q),Y.encodeAsync=async(X,Q)=>i7(Y,X,Q),Y.decodeAsync=async(X,Q)=>o7(Y,X,Q),Y.safeEncode=(X,Q)=>n7(Y,X,Q),Y.safeDecode=(X,Q)=>r7(Y,X,Q),Y.safeEncodeAsync=async(X,Q)=>s7(Y,X,Q),Y.safeDecodeAsync=async(X,Q)=>a7(Y,X,Q),Y.refine=(X,Q)=>Y.check(BV(X,Q)),Y.superRefine=(X)=>Y.check(FV(X)),Y.overwrite=(X)=>Y.check(i1(X)),Y.optional=()=>YW(Y),Y.nullable=()=>JW(Y),Y.nullish=()=>YW(JW(Y)),Y.nonoptional=(X)=>KV(Y,X),Y.array=()=>RX(Y),Y.or=(X)=>TX([Y,X]),Y.and=(X)=>tH(Y,X),Y.transform=(X)=>XW(Y,XV(X)),Y.default=(X)=>GV(Y,X),Y.prefault=(X)=>zV(Y,X),Y.catch=(X)=>ZV(Y,X),Y.pipe=(X)=>XW(Y,X),Y.readonly=()=>VV(Y),Y.describe=(X)=>{let Q=Y.clone();return d1.add(Q,{description:X}),Q},Object.defineProperty(Y,"description",{get(){return d1.get(Y)?.description},configurable:!0}),Y.meta=(...X)=>{if(X.length===0)return d1.get(Y);let Q=Y.clone();return d1.add(Q,X[0]),Q},Y.isOptional=()=>Y.safeParse(void 0).success,Y.isNullable=()=>Y.safeParse(null).success,Y}),QW=P("_ZodString",(Y,J)=>{pY.init(Y,J),H0.init(Y,J);let X=Y._zod.bag;Y.format=X.format??null,Y.minLength=X.minimum??null,Y.maxLength=X.maximum??null,Y.regex=(...Q)=>Y.check(VX(...Q)),Y.includes=(...Q)=>Y.check(FX(...Q)),Y.startsWith=(...Q)=>Y.check(jX(...Q)),Y.endsWith=(...Q)=>Y.check(OX(...Q)),Y.min=(...Q)=>Y.check(L9(...Q)),Y.max=(...Q)=>Y.check(nY(...Q)),Y.length=(...Q)=>Y.check(rY(...Q)),Y.nonempty=(...Q)=>Y.check(L9(1,...Q)),Y.lowercase=(Q)=>Y.check(NX(Q)),Y.uppercase=(Q)=>Y.check(BX(Q)),Y.trim=()=>Y.check(DX()),Y.normalize=(...Q)=>Y.check(qX(...Q)),Y.toLowerCase=()=>Y.check(PX()),Y.toUpperCase=()=>Y.check(EX())}),RH=P("ZodString",(Y,J)=>{pY.init(Y,J),QW.init(Y,J),Y.email=(X)=>Y.check(Y7(TH,X)),Y.url=(X)=>Y.check(G7(CH,X)),Y.jwt=(X)=>Y.check(D7(pH,X)),Y.emoji=(X)=>Y.check(W7(_H,X)),Y.guid=(X)=>Y.check(HX(t7,X)),Y.uuid=(X)=>Y.check(J7(tY,X)),Y.uuidv4=(X)=>Y.check(X7(tY,X)),Y.uuidv6=(X)=>Y.check(Q7(tY,X)),Y.uuidv7=(X)=>Y.check($7(tY,X)),Y.nanoid=(X)=>Y.check(z7(IH,X)),Y.guid=(X)=>Y.check(HX(t7,X)),Y.cuid=(X)=>Y.check(K7(SH,X)),Y.cuid2=(X)=>Y.check(U7(kH,X)),Y.ulid=(X)=>Y.check(Z7(xH,X)),Y.base64=(X)=>Y.check(j7(mH,X)),Y.base64url=(X)=>Y.check(O7(cH,X)),Y.xid=(X)=>Y.check(L7(bH,X)),Y.ksuid=(X)=>Y.check(H7(vH,X)),Y.ipv4=(X)=>Y.check(V7(hH,X)),Y.ipv6=(X)=>Y.check(N7(gH,X)),Y.cidrv4=(X)=>Y.check(B7(yH,X)),Y.cidrv6=(X)=>Y.check(F7(fH,X)),Y.e164=(X)=>Y.check(q7(uH,X)),Y.datetime=(X)=>Y.check(h7(X)),Y.date=(X)=>Y.check(g7(X)),Y.time=(X)=>Y.check(y7(X)),Y.duration=(X)=>Y.check(f7(X))});function $W(Y){return e2(RH,Y)}var L0=P("ZodStringFormat",(Y,J)=>{Z0.init(Y,J),QW.init(Y,J)}),TH=P("ZodEmail",(Y,J)=>{W2.init(Y,J),L0.init(Y,J)});var t7=P("ZodGUID",(Y,J)=>{$2.init(Y,J),L0.init(Y,J)});var tY=P("ZodUUID",(Y,J)=>{G2.init(Y,J),L0.init(Y,J)});var CH=P("ZodURL",(Y,J)=>{z2.init(Y,J),L0.init(Y,J)});var _H=P("ZodEmoji",(Y,J)=>{K2.init(Y,J),L0.init(Y,J)});var IH=P("ZodNanoID",(Y,J)=>{U2.init(Y,J),L0.init(Y,J)});var SH=P("ZodCUID",(Y,J)=>{Z2.init(Y,J),L0.init(Y,J)});var kH=P("ZodCUID2",(Y,J)=>{L2.init(Y,J),L0.init(Y,J)});var xH=P("ZodULID",(Y,J)=>{H2.init(Y,J),L0.init(Y,J)});var bH=P("ZodXID",(Y,J)=>{V2.init(Y,J),L0.init(Y,J)});var vH=P("ZodKSUID",(Y,J)=>{N2.init(Y,J),L0.init(Y,J)});var hH=P("ZodIPv4",(Y,J)=>{q2.init(Y,J),L0.init(Y,J)});var gH=P("ZodIPv6",(Y,J)=>{D2.init(Y,J),L0.init(Y,J)});var yH=P("ZodCIDRv4",(Y,J)=>{P2.init(Y,J),L0.init(Y,J)});var fH=P("ZodCIDRv6",(Y,J)=>{E2.init(Y,J),L0.init(Y,J)});var mH=P("ZodBase64",(Y,J)=>{w2.init(Y,J),L0.init(Y,J)});var cH=P("ZodBase64URL",(Y,J)=>{A2.init(Y,J),L0.init(Y,J)});var uH=P("ZodE164",(Y,J)=>{R2.init(Y,J),L0.init(Y,J)});var pH=P("ZodJWT",(Y,J)=>{T2.init(Y,J),L0.init(Y,J)});var GW=P("ZodNumber",(Y,J)=>{ZX.init(Y,J),H0.init(Y,J),Y.gt=(Q,$)=>Y.check(iY(Q,$)),Y.gte=(Q,$)=>Y.check(d9(Q,$)),Y.min=(Q,$)=>Y.check(d9(Q,$)),Y.lt=(Q,$)=>Y.check(dY(Q,$)),Y.lte=(Q,$)=>Y.check(l9(Q,$)),Y.max=(Q,$)=>Y.check(l9(Q,$)),Y.int=(Q)=>Y.check(e7(Q)),Y.safe=(Q)=>Y.check(e7(Q)),Y.positive=(Q)=>Y.check(iY(0,Q)),Y.nonnegative=(Q)=>Y.check(d9(0,Q)),Y.negative=(Q)=>Y.check(dY(0,Q)),Y.nonpositive=(Q)=>Y.check(l9(0,Q)),Y.multipleOf=(Q,$)=>Y.check(oY(Q,$)),Y.step=(Q,$)=>Y.check(oY(Q,$)),Y.finite=()=>Y;let X=Y._zod.bag;Y.minValue=Math.max(X.minimum??Number.NEGATIVE_INFINITY,X.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,Y.maxValue=Math.min(X.maximum??Number.POSITIVE_INFINITY,X.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,Y.isInt=(X.format??"").includes("int")||Number.isSafeInteger(X.multipleOf??0.5),Y.isFinite=!0,Y.format=X.format??null});function WW(Y){return A7(GW,Y)}var lH=P("ZodNumberFormat",(Y,J)=>{C2.init(Y,J),GW.init(Y,J)});function e7(Y){return R7(lH,Y)}var dH=P("ZodBoolean",(Y,J)=>{_2.init(Y,J),H0.init(Y,J)});function zW(Y){return T7(dH,Y)}var iH=P("ZodNull",(Y,J)=>{I2.init(Y,J),H0.init(Y,J)});function KW(Y){return C7(iH,Y)}var oH=P("ZodUnknown",(Y,J)=>{S2.init(Y,J),H0.init(Y,J)});function i9(){return _7(oH)}var nH=P("ZodNever",(Y,J)=>{k2.init(Y,J),H0.init(Y,J)});function AX(Y){return I7(nH,Y)}var rH=P("ZodArray",(Y,J)=>{x2.init(Y,J),H0.init(Y,J),Y.element=J.element,Y.min=(X,Q)=>Y.check(L9(X,Q)),Y.nonempty=(X)=>Y.check(L9(1,X)),Y.max=(X,Q)=>Y.check(nY(X,Q)),Y.length=(X,Q)=>Y.check(rY(X,Q)),Y.unwrap=()=>Y.element});function RX(Y,J){return S7(rH,Y,J)}var UW=P("ZodObject",(Y,J)=>{h2.init(Y,J),H0.init(Y,J),a.defineLazy(Y,"shape",()=>J.shape),Y.keyof=()=>CX(Object.keys(Y._zod.def.shape)),Y.catchall=(X)=>Y.clone({...Y._zod.def,catchall:X}),Y.passthrough=()=>Y.clone({...Y._zod.def,catchall:i9()}),Y.loose=()=>Y.clone({...Y._zod.def,catchall:i9()}),Y.strict=()=>Y.clone({...Y._zod.def,catchall:AX()}),Y.strip=()=>Y.clone({...Y._zod.def,catchall:void 0}),Y.extend=(X)=>{return a.extend(Y,X)},Y.safeExtend=(X)=>{return a.safeExtend(Y,X)},Y.merge=(X)=>a.merge(Y,X),Y.pick=(X)=>a.pick(Y,X),Y.omit=(X)=>a.omit(Y,X),Y.partial=(...X)=>a.partial(FW,Y,X[0]),Y.required=(...X)=>a.required(jW,Y,X[0])});function ZW(Y,J){let X={type:"object",get shape(){return a.assignProp(this,"shape",Y?a.objectClone(Y):{}),this.shape},...a.normalizeParams(J)};return new UW(X)}function LW(Y,J){return new UW({type:"object",get shape(){return a.assignProp(this,"shape",a.objectClone(Y)),this.shape},catchall:i9(),...a.normalizeParams(J)})}var HW=P("ZodUnion",(Y,J)=>{LX.init(Y,J),H0.init(Y,J),Y.options=J.options});function TX(Y,J){return new HW({type:"union",options:Y,...a.normalizeParams(J)})}var sH=P("ZodDiscriminatedUnion",(Y,J)=>{HW.init(Y,J),g2.init(Y,J)});function VW(Y,J,X){return new sH({type:"union",options:J,discriminator:Y,...a.normalizeParams(X)})}var aH=P("ZodIntersection",(Y,J)=>{y2.init(Y,J),H0.init(Y,J)});function tH(Y,J){return new aH({type:"intersection",left:Y,right:J})}var eH=P("ZodRecord",(Y,J)=>{f2.init(Y,J),H0.init(Y,J),Y.keyType=J.keyType,Y.valueType=J.valueType});function NW(Y,J,X){return new eH({type:"record",keyType:Y,valueType:J,...a.normalizeParams(X)})}var wX=P("ZodEnum",(Y,J)=>{m2.init(Y,J),H0.init(Y,J),Y.enum=J.entries,Y.options=Object.values(J.entries);let X=new Set(Object.keys(J.entries));Y.extract=(Q,$)=>{let G={};for(let W of Q)if(X.has(W))G[W]=J.entries[W];else throw Error(`Key ${W} not found in enum`);return new wX({...J,checks:[],...a.normalizeParams($),entries:G})},Y.exclude=(Q,$)=>{let G={...J.entries};for(let W of Q)if(X.has(W))delete G[W];else throw Error(`Key ${W} not found in enum`);return new wX({...J,checks:[],...a.normalizeParams($),entries:G})}});function CX(Y,J){let X=Array.isArray(Y)?Object.fromEntries(Y.map((Q)=>[Q,Q])):Y;return new wX({type:"enum",entries:X,...a.normalizeParams(J)})}var YV=P("ZodLiteral",(Y,J)=>{c2.init(Y,J),H0.init(Y,J),Y.values=new Set(J.values),Object.defineProperty(Y,"value",{get(){if(J.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return J.values[0]}})});function BW(Y,J){return new YV({type:"literal",values:Array.isArray(Y)?Y:[Y],...a.normalizeParams(J)})}var JV=P("ZodTransform",(Y,J)=>{u2.init(Y,J),H0.init(Y,J),Y._zod.parse=(X,Q)=>{if(Q.direction==="backward")throw new v9(Y.constructor.name);X.addIssue=(G)=>{if(typeof G==="string")X.issues.push(a.issue(G,X.value,J));else{let W=G;if(W.fatal)W.continue=!1;W.code??(W.code="custom"),W.input??(W.input=X.value),W.inst??(W.inst=Y),X.issues.push(a.issue(W))}};let $=J.transform(X.value,X);if($ instanceof Promise)return $.then((G)=>{return X.value=G,X});return X.value=$,X}});function XV(Y){return new JV({type:"transform",transform:Y})}var FW=P("ZodOptional",(Y,J)=>{p2.init(Y,J),H0.init(Y,J),Y.unwrap=()=>Y._zod.def.innerType});function YW(Y){return new FW({type:"optional",innerType:Y})}var QV=P("ZodNullable",(Y,J)=>{l2.init(Y,J),H0.init(Y,J),Y.unwrap=()=>Y._zod.def.innerType});function JW(Y){return new QV({type:"nullable",innerType:Y})}var $V=P("ZodDefault",(Y,J)=>{d2.init(Y,J),H0.init(Y,J),Y.unwrap=()=>Y._zod.def.innerType,Y.removeDefault=Y.unwrap});function GV(Y,J){return new $V({type:"default",innerType:Y,get defaultValue(){return typeof J==="function"?J():a.shallowClone(J)}})}var WV=P("ZodPrefault",(Y,J)=>{i2.init(Y,J),H0.init(Y,J),Y.unwrap=()=>Y._zod.def.innerType});function zV(Y,J){return new WV({type:"prefault",innerType:Y,get defaultValue(){return typeof J==="function"?J():a.shallowClone(J)}})}var jW=P("ZodNonOptional",(Y,J)=>{o2.init(Y,J),H0.init(Y,J),Y.unwrap=()=>Y._zod.def.innerType});function KV(Y,J){return new jW({type:"nonoptional",innerType:Y,...a.normalizeParams(J)})}var UV=P("ZodCatch",(Y,J)=>{n2.init(Y,J),H0.init(Y,J),Y.unwrap=()=>Y._zod.def.innerType,Y.removeCatch=Y.unwrap});function ZV(Y,J){return new UV({type:"catch",innerType:Y,catchValue:typeof J==="function"?J:()=>J})}var LV=P("ZodPipe",(Y,J)=>{r2.init(Y,J),H0.init(Y,J),Y.in=J.in,Y.out=J.out});function XW(Y,J){return new LV({type:"pipe",in:Y,out:J})}var HV=P("ZodReadonly",(Y,J)=>{s2.init(Y,J),H0.init(Y,J),Y.unwrap=()=>Y._zod.def.innerType});function VV(Y){return new HV({type:"readonly",innerType:Y})}var NV=P("ZodLazy",(Y,J)=>{a2.init(Y,J),H0.init(Y,J),Y.unwrap=()=>Y._zod.def.getter()});function OW(Y){return new NV({type:"lazy",getter:Y})}var _X=P("ZodCustom",(Y,J)=>{t2.init(Y,J),H0.init(Y,J)});function qW(Y,J){return k7(_X,Y??(()=>!0),J)}function BV(Y,J={}){return x7(_X,Y,J)}function FV(Y){return b7(Y)}function DW(Y,J={error:`Input not instance of ${Y.name}`}){let X=new _X({type:"custom",check:"custom",fn:(Q)=>Q instanceof Y,abort:!0,...a.normalizeParams(J)});return X._zod.bag.Class=Y,X}function IW(Y=globalThis){var J,X,Q;if(Y.window)return"runtime/browser";if((J=Y.navigator)==null?void 0:J.userAgent)return`runtime/${Y.navigator.userAgent.toLowerCase()}`;if((Q=(X=Y.process)==null?void 0:X.versions)==null?void 0:Q.node)return`runtime/node.js/${Y.process.version.substring(0)}`;if(Y.EdgeRuntime)return"runtime/vercel-edge";return"runtime/unknown"}function jV(Y){if(Y==null)return{};let J={};if(Y instanceof Headers)Y.forEach((X,Q)=>{J[Q.toLowerCase()]=X});else{if(!Array.isArray(Y))Y=Object.entries(Y);for(let[X,Q]of Y)if(Q!=null)J[X.toLowerCase()]=Q}return J}function o1(Y,...J){let X=new Headers(jV(Y)),Q=X.get("user-agent")||"";return X.set("user-agent",[Q,...J].filter(Boolean).join(" ")),Object.fromEntries(X.entries())}var OV=[{mediaType:"audio/aac",bytesPrefix:[255,240]},{mediaType:"audio/aac",bytesPrefix:[255,241]},{mediaType:"audio/aac",bytesPrefix:[255,248]},{mediaType:"audio/aac",bytesPrefix:[255,249]},{mediaType:"audio/mpeg",bytesPrefix:[255,251]},{mediaType:"audio/mpeg",bytesPrefix:[255,250]},{mediaType:"audio/mpeg",bytesPrefix:[255,243]},{mediaType:"audio/mpeg",bytesPrefix:[255,242]},{mediaType:"audio/mpeg",bytesPrefix:[255,227]},{mediaType:"audio/mpeg",bytesPrefix:[255,226]},{mediaType:"audio/wav",bytesPrefix:[82,73,70,70,null,null,null,null,87,65,86,69]},{mediaType:"audio/ogg",bytesPrefix:[79,103,103,83]},{mediaType:"audio/flac",bytesPrefix:[102,76,97,67]},{mediaType:"audio/aac",bytesPrefix:[64,21,0,0]},{mediaType:"audio/webm",bytesPrefix:[26,69,223,163]}],zD=[...OV,{mediaType:"audio/mp4",bytesPrefix:[0,0,0,null,102,116,121,112]}];var qV=12,DV=131072,KD=DV+qV;async function eY(Y){var J;try{await((J=Y.body)==null?void 0:J.cancel())}catch(X){}}var SW="AI_DownloadError",kW=`vercel.ai.error.${SW}`,PV=Symbol.for(kW),PW,EW,b0=class extends(EW=R,PW=PV,EW){constructor({url:Y,statusCode:J,statusText:X,cause:Q,message:$=Q==null?`Failed to download ${Y}: ${J} ${X}`:`Failed to download ${Y}: ${Q}`}){super({name:SW,message:$,cause:Q});this[PW]=!0,this.url=Y,this.statusCode=J,this.statusText=X}static isInstance(Y){return R.hasMarker(Y,kW)}};function EV(Y=globalThis){return Y.window!=null}function MW(Y,J){try{return new URL(Y).origin===new URL(J).origin}catch(X){return!1}}function MV(Y){let J;try{J=new URL(Y)}catch(Q){throw new b0({url:Y,message:`Invalid URL: ${Y}`})}if(J.protocol==="data:")return;if(J.protocol!=="http:"&&J.protocol!=="https:")throw new b0({url:Y,message:`URL scheme must be http, https, or data, got ${J.protocol}`});let X=J.hostname.toLowerCase().replace(/\.+$/,"");if(!X)throw new b0({url:Y,message:"URL must have a hostname"});if(X==="localhost"||X.endsWith(".local")||X.endsWith(".localhost"))throw new b0({url:Y,message:`URL with hostname ${X} is not allowed`});if(X.startsWith("[")&&X.endsWith("]")){let Q=X.slice(1,-1);if(xW(Q))throw new b0({url:Y,message:`URL with IPv6 address ${X} is not allowed`});return}if(vX(X)){if(hX(X))throw new b0({url:Y,message:`URL with IP address ${X} is not allowed`});return}}function wV({address:Y,family:J,hostname:X}){if(J===4?!vX(Y)||hX(Y):J===6?xW(Y):!0)throw new b0({url:X,message:`Hostname ${X} resolved to disallowed IP address ${Y}`})}function vX(Y){let J=Y.split(".");if(J.length!==4)return!1;return J.every((X)=>{let Q=Number(X);return Number.isInteger(Q)&&Q>=0&&Q<=255&&String(Q)===X})}function hX(Y){let J=Y.split(".").map(Number),[X,Q,$]=J;if(X===0)return!0;if(X===10)return!0;if(X===100&&Q>=64&&Q<=127)return!0;if(X===127)return!0;if(X===169&&Q===254)return!0;if(X===172&&Q>=16&&Q<=31)return!0;if(X===192&&Q===0&&$===0)return!0;if(X===192&&Q===0&&$===2)return!0;if(X===192&&Q===168)return!0;if(X===198&&(Q===18||Q===19))return!0;if(X===198&&Q===51&&$===100)return!0;if(X===203&&Q===0&&$===113)return!0;if(X>=224)return!0;return!1}function AV(Y){let J=Y.toLowerCase(),X=J.indexOf("%");if(X!==-1)J=J.slice(0,X);let Q=J.split("::");if(Q.length>2)return null;let $=(W)=>{if(W==="")return[];let K=[],Z=W.split(":");for(let U=0;U<Z.length;U++){let L=Z[U];if(L.includes(".")){if(U!==Z.length-1||!vX(L))return null;let[j,N,V,q]=L.split(".").map(Number);K.push(j<<8|N,V<<8|q);continue}if(!/^[0-9a-f]{1,4}$/.test(L))return null;K.push(parseInt(L,16))}return K},G=$(Q[0]);if(G===null)return null;if(Q.length===2){let W=$(Q[1]);if(W===null)return null;let K=8-G.length-W.length;if(K<0)return null;return[...G,...Array(K).fill(0),...W]}return G.length===8?G:null}function xW(Y){let J=AV(Y);if(J===null)return!0;let X=($)=>J.slice(0,$).every((G)=>G===0);if(X(7)&&(J[7]===0||J[7]===1))return!0;if((J[0]&65024)===64512)return!0;if((J[0]&65472)===65152)return!0;if((J[0]&65472)===65216)return!0;if((J[0]&65280)===65280)return!0;if(J[0]===8193&&J[1]===3512)return!0;if(J[0]===16383&&(J[1]&61440)===0)return!0;if(X(6)||X(5)&&J[5]===65535||X(4)&&J[4]===65535&&J[5]===0||J[0]===100&&J[1]===65435&&J[2]===0&&J[3]===0&&J[4]===0&&J[5]===0||J[0]===100&&J[1]===65435&&J[2]===1){let $=J[6]>>8&255,G=J[6]&255,W=J[7]>>8&255,K=J[7]&255;return hX(`${$}.${G}.${W}.${K}`)}return!1}function RV(Y){return(J,X,Q)=>{Y(J,{...X,all:!0},($,G)=>{if($){Q($);return}try{let[W]=G;if(W==null)throw Error(`Hostname ${J} did not resolve to an address`);for(let{address:K,family:Z}of G)wV({address:K,family:Z,hostname:J});if(X.all===!0)Q(null,G);else Q(null,W.address,W.family)}catch(W){Q(W instanceof Error?W:Error(String(W)))}})}}var IX;function TV(){var Y,J,X;let Q=globalThis.process;return((Y=Q==null?void 0:Q.release)==null?void 0:Y.name)==="node"&&((J=Q.versions)==null?void 0:J.bun)==null&&((X=Q.versions)==null?void 0:X.deno)==null&&Q.title!=="workerd"&&globalThis.EdgeRuntime==null}async function CV(){if(!TV())return globalThis.fetch;return IX!=null?IX:IX=Promise.resolve().then(_V)}function _V(){let Y=wW("node:module"),{lookup:J}=wW("node:dns"),X=Y.createRequire(bW()),{Agent:Q,fetch:$}=X("undici"),G=new Q({connect:{lookup:RV(J)}});return(W,K)=>$(W,{...K,dispatcher:G})}function wW(Y){var J;let X=globalThis.process,Q=(J=X==null?void 0:X.getBuiltinModule)==null?void 0:J.call(X,Y);if(Q==null)throw Error(`Node.js built-in module ${Y} is unavailable`);return Q}function bW(){let Y=Error.prepareStackTrace;try{Error.prepareStackTrace=($,G)=>G;let J=Error("Capture current module path");Error.captureStackTrace(J,bW);let[X]=J.stack,Q=X==null?void 0:X.getFileName();if(Q==null)throw Error("Unable to determine the current module path");return Q}finally{Error.prepareStackTrace=Y}}var IV=["connection","keep-alive","te","trailer","transfer-encoding","upgrade","host","forwarded","proxy-authorization","via","x-forwarded-for","x-forwarded-host","x-forwarded-proto","x-real-ip","metadata","metadata-flavor","x-aws-ec2-metadata-token","x-metadata-token","cookie","set-cookie"];function SV(Y){let J=new Headers(Y);for(let X of IV)J.delete(X);return J}var kV=10,xV=new Set([301,302,303,307,308]);async function bV(Y){return Y==null||Y===globalThis.fetch?await CV():Y}async function vW({url:Y,headers:J,abortSignal:X,maxRedirects:Q=kV,fetch:$,trustedOrigin:G}){var W;let K=J===void 0?void 0:SV(J),Z=(L)=>{let j={signal:X,redirect:L};if(K!==void 0)j.headers=new Headers(K);return j},U=Y;for(let L=0;L<=Q;L++){let j=G!==void 0&&MW(U,G);if(!j)MV(U);let N=j&&$!=null?$:j?globalThis.fetch:await bV($),V=await N(U,Z("manual"));if(V.type==="opaqueredirect"){if(!EV())throw new b0({url:Y,message:`Redirect from ${U} could not be validated and was blocked`});return await N(U,Z("follow"))}let q=(W=V.headers)==null?void 0:W.get("location");if(xV.has(V.status)&&q){eY(V);let T=new URL(q,U).toString();if(K!==void 0&&!MW(T,U)){let S=K.get("user-agent");K=new Headers(S==null?void 0:{"user-agent":S})}U=T;continue}return V}throw new b0({url:Y,message:`Too many redirects (max ${Q})`})}var gX=2147483648;async function hW({response:Y,url:J,maxBytes:X=gX}){let Q=Y.headers.get("content-length");if(Q!=null){let L=parseInt(Q,10);if(!isNaN(L)&&L>X)throw await eY(Y),new b0({url:J,message:`Download of ${J} exceeded maximum size of ${X} bytes (Content-Length: ${L}).`})}let $=Y.body;if($==null)return new Uint8Array(0);let G=$.getReader(),W=[],K=0;try{while(!0){let{done:L,value:j}=await G.read();if(L)break;if(K+=j.length,K>X)throw new b0({url:J,message:`Download of ${J} exceeded maximum size of ${X} bytes.`});W.push(j)}}finally{try{await G.cancel()}catch(L){}finally{G.releaseLock()}}let Z=new Uint8Array(K),U=0;for(let L of W)Z.set(L,U),U+=L.length;return Z}var F0=({prefix:Y,size:J=16,alphabet:X="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:Q="-"}={})=>{let $=()=>{let G=X.length,W=Array(J);for(let K=0;K<J;K++)W[K]=X[Math.random()*G|0];return W.join("")};if(Y==null)return $;if(X.includes(Q))throw new B$({argument:"separator",message:`The separator "${Q}" must not be part of the alphabet "${X}".`});return()=>`${Y}${Q}${$()}`},LD=F0();function gW(Y){var J,X;return(X=(J=globalThis.Buffer)==null?void 0:J.isBuffer(Y))!=null?X:!1}var vV=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,hV=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/;function AW(Y){let J=JSON.parse(Y);if(J===null||typeof J!=="object")return J;if(vV.test(Y)===!1&&hV.test(Y)===!1)return J;return gV(J)}function gV(Y){let J=[Y];while(J.length){let X=J;J=[];for(let Q of X){if(Object.prototype.hasOwnProperty.call(Q,"__proto__"))throw SyntaxError("Object contains forbidden prototype property");if(Object.prototype.hasOwnProperty.call(Q,"constructor")&&Q.constructor!==null&&typeof Q.constructor==="object"&&Object.prototype.hasOwnProperty.call(Q.constructor,"prototype"))throw SyntaxError("Object contains forbidden prototype property");for(let $ in Q){let G=Q[$];if(G&&typeof G==="object")J.push(G)}}}return Y}function yV(Y){let{stackTraceLimit:J}=Error;try{Error.stackTraceLimit=0}catch(X){return AW(Y)}try{return AW(Y)}finally{Error.stackTraceLimit=J}}function yX(Y){if(Y.type==="object"||Array.isArray(Y.type)&&Y.type.includes("object")){let{additionalProperties:X}=Y;Y.additionalProperties=X!=null&&typeof X!=="boolean"?S1(X):!1;let{properties:Q}=Y;if(Q!=null)for(let $ of Object.keys(Q))Q[$]=S1(Q[$])}if(Y.items!=null)Y.items=Array.isArray(Y.items)?Y.items.map(S1):S1(Y.items);if(Y.anyOf!=null)Y.anyOf=Y.anyOf.map(S1);if(Y.allOf!=null)Y.allOf=Y.allOf.map(S1);if(Y.oneOf!=null)Y.oneOf=Y.oneOf.map(S1);let{definitions:J}=Y;if(J!=null)for(let X of Object.keys(J))J[X]=S1(J[X]);return Y}function S1(Y){if(typeof Y==="boolean")return Y;return yX(Y)}var fV=Symbol("Let zodToJsonSchema decide on which parser to use"),RW={name:void 0,$refStrategy:"root",basePath:["#"],effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",removeAdditionalStrategy:"passthrough",allowedAdditionalProperties:!0,rejectedAdditionalProperties:!1,definitionPath:"definitions",strictUnions:!1,definitions:{},errorMessages:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref"},mV=(Y)=>typeof Y==="string"?{...RW,name:Y}:{...RW,...Y};function i0(){return{}}function cV(Y,J){var X,Q,$;let G={type:"array"};if(((X=Y.type)==null?void 0:X._def)&&(($=(Q=Y.type)==null?void 0:Q._def)==null?void 0:$.typeName)!=="ZodAny")G.items=G0(Y.type._def,{...J,currentPath:[...J.currentPath,"items"]});if(Y.minLength)G.minItems=Y.minLength.value;if(Y.maxLength)G.maxItems=Y.maxLength.value;if(Y.exactLength)G.minItems=Y.exactLength.value,G.maxItems=Y.exactLength.value;return G}function uV(Y){let J={type:"integer",format:"int64"};if(!Y.checks)return J;for(let X of Y.checks)switch(X.kind){case"min":if(X.inclusive)J.minimum=X.value;else J.exclusiveMinimum=X.value;break;case"max":if(X.inclusive)J.maximum=X.value;else J.exclusiveMaximum=X.value;break;case"multipleOf":J.multipleOf=X.value;break}return J}function pV(){return{type:"boolean"}}function yW(Y,J){return G0(Y.type._def,J)}var lV=(Y,J)=>{return G0(Y.innerType._def,J)};function fW(Y,J,X){let Q=X!=null?X:J.dateStrategy;if(Array.isArray(Q))return{anyOf:Q.map(($)=>fW(Y,J,$))};switch(Q){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return dV(Y)}}var dV=(Y)=>{let J={type:"integer",format:"unix-time"};for(let X of Y.checks)switch(X.kind){case"min":J.minimum=X.value;break;case"max":J.maximum=X.value;break}return J};function iV(Y,J){return{...G0(Y.innerType._def,J),default:Y.defaultValue()}}function oV(Y,J){return J.effectStrategy==="input"?G0(Y.schema._def,J):i0()}function nV(Y){return{type:"string",enum:Array.from(Y.values)}}var rV=(Y)=>{if("type"in Y&&Y.type==="string")return!1;return"allOf"in Y};function sV(Y,J){let X=[G0(Y.left._def,{...J,currentPath:[...J.currentPath,"allOf","0"]}),G0(Y.right._def,{...J,currentPath:[...J.currentPath,"allOf","1"]})].filter(($)=>!!$),Q=[];return X.forEach(($)=>{if(rV($))Q.push(...$.allOf);else{let G=$;if("additionalProperties"in $&&$.additionalProperties===!1){let{additionalProperties:W,...K}=$;G=K}Q.push(G)}}),Q.length?{allOf:Q}:void 0}function aV(Y){let J=typeof Y.value;if(J!=="bigint"&&J!=="number"&&J!=="boolean"&&J!=="string")return{type:Array.isArray(Y.value)?"array":"object"};return{type:J==="bigint"?"integer":J,const:Y.value}}var SX=void 0,e0={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>{if(SX===void 0)SX=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return SX},uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ipv4Cidr:/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,ipv6Cidr:/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,base64url:/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/,jwt:/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/};function mW(Y,J){let X={type:"string"};if(Y.checks)for(let Q of Y.checks)switch(Q.kind){case"min":X.minLength=typeof X.minLength==="number"?Math.max(X.minLength,Q.value):Q.value;break;case"max":X.maxLength=typeof X.maxLength==="number"?Math.min(X.maxLength,Q.value):Q.value;break;case"email":switch(J.emailStrategy){case"format:email":Y1(X,"email",Q.message,J);break;case"format:idn-email":Y1(X,"idn-email",Q.message,J);break;case"pattern:zod":x0(X,e0.email,Q.message,J);break}break;case"url":Y1(X,"uri",Q.message,J);break;case"uuid":Y1(X,"uuid",Q.message,J);break;case"regex":x0(X,Q.regex,Q.message,J);break;case"cuid":x0(X,e0.cuid,Q.message,J);break;case"cuid2":x0(X,e0.cuid2,Q.message,J);break;case"startsWith":x0(X,RegExp(`^${kX(Q.value,J)}`),Q.message,J);break;case"endsWith":x0(X,RegExp(`${kX(Q.value,J)}$`),Q.message,J);break;case"datetime":Y1(X,"date-time",Q.message,J);break;case"date":Y1(X,"date",Q.message,J);break;case"time":Y1(X,"time",Q.message,J);break;case"duration":Y1(X,"duration",Q.message,J);break;case"length":X.minLength=typeof X.minLength==="number"?Math.max(X.minLength,Q.value):Q.value,X.maxLength=typeof X.maxLength==="number"?Math.min(X.maxLength,Q.value):Q.value;break;case"includes":{x0(X,RegExp(kX(Q.value,J)),Q.message,J);break}case"ip":{if(Q.version!=="v6")Y1(X,"ipv4",Q.message,J);if(Q.version!=="v4")Y1(X,"ipv6",Q.message,J);break}case"base64url":x0(X,e0.base64url,Q.message,J);break;case"jwt":x0(X,e0.jwt,Q.message,J);break;case"cidr":{if(Q.version!=="v6")x0(X,e0.ipv4Cidr,Q.message,J);if(Q.version!=="v4")x0(X,e0.ipv6Cidr,Q.message,J);break}case"emoji":x0(X,e0.emoji(),Q.message,J);break;case"ulid":{x0(X,e0.ulid,Q.message,J);break}case"base64":{switch(J.base64Strategy){case"format:binary":{Y1(X,"binary",Q.message,J);break}case"contentEncoding:base64":{X.contentEncoding="base64";break}case"pattern:zod":{x0(X,e0.base64,Q.message,J);break}}break}case"nanoid":x0(X,e0.nanoid,Q.message,J);case"toLowerCase":case"toUpperCase":case"trim":break;default:}return X}function kX(Y,J){return J.patternStrategy==="escape"?eV(Y):Y}var tV=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function eV(Y){let J="";for(let X=0;X<Y.length;X++){if(!tV.has(Y[X]))J+="\\";J+=Y[X]}return J}function Y1(Y,J,X,Q){var $;if(Y.format||(($=Y.anyOf)==null?void 0:$.some((G)=>G.format))){if(!Y.anyOf)Y.anyOf=[];if(Y.format)Y.anyOf.push({format:Y.format}),delete Y.format;Y.anyOf.push({format:J,...X&&Q.errorMessages&&{errorMessage:{format:X}}})}else Y.format=J}function x0(Y,J,X,Q){var $;if(Y.pattern||(($=Y.allOf)==null?void 0:$.some((G)=>G.pattern))){if(!Y.allOf)Y.allOf=[];if(Y.pattern)Y.allOf.push({pattern:Y.pattern}),delete Y.pattern;Y.allOf.push({pattern:TW(J,Q),...X&&Q.errorMessages&&{errorMessage:{pattern:X}}})}else Y.pattern=TW(J,Q)}function TW(Y,J){var X;if(!J.applyRegexFlags||!Y.flags)return Y.source;let Q={i:Y.flags.includes("i"),m:Y.flags.includes("m"),s:Y.flags.includes("s")},$=Q.i?Y.source.toLowerCase():Y.source,G="",W=!1,K=!1,Z=!1;for(let U=0;U<$.length;U++){if(W){G+=$[U],W=!1;continue}if(Q.i){if(K){if($[U].match(/[a-z]/)){if(Z)G+=$[U],G+=`${$[U-2]}-${$[U]}`.toUpperCase(),Z=!1;else if($[U+1]==="-"&&((X=$[U+2])==null?void 0:X.match(/[a-z]/)))G+=$[U],Z=!0;else G+=`${$[U]}${$[U].toUpperCase()}`;continue}}else if($[U].match(/[a-z]/)){G+=`[${$[U]}${$[U].toUpperCase()}]`;continue}}if(Q.m){if($[U]==="^"){G+=`(^|(?<=[\r
|
|
93
|
+
]))`;continue}else if($[U]==="$"){G+=`($|(?=[\r
|
|
94
|
+
]))`;continue}}if(Q.s&&$[U]==="."){G+=K?`${$[U]}\r
|
|
95
|
+
`:`[${$[U]}\r
|
|
96
|
+
]`;continue}if(G+=$[U],$[U]==="\\")W=!0;else if(K&&$[U]==="]")K=!1;else if(!K&&$[U]==="[")K=!0}try{new RegExp(G)}catch(U){return console.warn(`Could not convert regex pattern at ${J.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),Y.source}return G}function cW(Y,J){var X,Q,$,G,W,K;let Z={type:"object",additionalProperties:(X=G0(Y.valueType._def,{...J,currentPath:[...J.currentPath,"additionalProperties"]}))!=null?X:J.allowedAdditionalProperties};if(((Q=Y.keyType)==null?void 0:Q._def.typeName)==="ZodString"&&(($=Y.keyType._def.checks)==null?void 0:$.length)){let{type:U,...L}=mW(Y.keyType._def,J);return{...Z,propertyNames:L}}else if(((G=Y.keyType)==null?void 0:G._def.typeName)==="ZodEnum")return{...Z,propertyNames:{enum:Y.keyType._def.values}};else if(((W=Y.keyType)==null?void 0:W._def.typeName)==="ZodBranded"&&Y.keyType._def.type._def.typeName==="ZodString"&&((K=Y.keyType._def.type._def.checks)==null?void 0:K.length)){let{type:U,...L}=yW(Y.keyType._def,J);return{...Z,propertyNames:L}}return Z}function YN(Y,J){if(J.mapStrategy==="record")return cW(Y,J);let X=G0(Y.keyType._def,{...J,currentPath:[...J.currentPath,"items","items","0"]})||i0(),Q=G0(Y.valueType._def,{...J,currentPath:[...J.currentPath,"items","items","1"]})||i0();return{type:"array",maxItems:125,items:{type:"array",items:[X,Q],minItems:2,maxItems:2}}}function JN(Y){let J=Y.values,Q=Object.keys(Y.values).filter((G)=>{return typeof J[J[G]]!=="number"}).map((G)=>J[G]),$=Array.from(new Set(Q.map((G)=>typeof G)));return{type:$.length===1?$[0]==="string"?"string":"number":["string","number"],enum:Q}}function XN(){return{not:i0()}}function QN(){return{type:"null"}}var xX={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function $N(Y,J){let X=Y.options instanceof Map?Array.from(Y.options.values()):Y.options;if(X.every((Q)=>(Q._def.typeName in xX)&&(!Q._def.checks||!Q._def.checks.length))){let Q=X.reduce(($,G)=>{let W=xX[G._def.typeName];return W&&!$.includes(W)?[...$,W]:$},[]);return{type:Q.length>1?Q:Q[0]}}else if(X.every((Q)=>Q._def.typeName==="ZodLiteral"&&!Q.description)){let Q=X.reduce(($,G)=>{let W=typeof G._def.value;switch(W){case"string":case"number":case"boolean":return[...$,W];case"bigint":return[...$,"integer"];case"object":if(G._def.value===null)return[...$,"null"];case"symbol":case"undefined":case"function":default:return $}},[]);if(Q.length===X.length){let $=Q.filter((G,W,K)=>K.indexOf(G)===W);return{type:$.length>1?$:$[0],enum:X.reduce((G,W)=>{return G.includes(W._def.value)?G:[...G,W._def.value]},[])}}}else if(X.every((Q)=>Q._def.typeName==="ZodEnum"))return{type:"string",enum:X.reduce((Q,$)=>[...Q,...$._def.values.filter((G)=>!Q.includes(G))],[])};return GN(Y,J)}var GN=(Y,J)=>{let X=(Y.options instanceof Map?Array.from(Y.options.values()):Y.options).map((Q,$)=>G0(Q._def,{...J,currentPath:[...J.currentPath,"anyOf",`${$}`]})).filter((Q)=>!!Q&&(!J.strictUnions||typeof Q==="object"&&Object.keys(Q).length>0));return X.length?{anyOf:X}:void 0};function WN(Y,J){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(Y.innerType._def.typeName)&&(!Y.innerType._def.checks||!Y.innerType._def.checks.length))return{type:[xX[Y.innerType._def.typeName],"null"]};let X=G0(Y.innerType._def,{...J,currentPath:[...J.currentPath,"anyOf","0"]});return X&&{anyOf:[X,{type:"null"}]}}function zN(Y){let J={type:"number"};if(!Y.checks)return J;for(let X of Y.checks)switch(X.kind){case"int":J.type="integer";break;case"min":if(X.inclusive)J.minimum=X.value;else J.exclusiveMinimum=X.value;break;case"max":if(X.inclusive)J.maximum=X.value;else J.exclusiveMaximum=X.value;break;case"multipleOf":J.multipleOf=X.value;break}return J}function KN(Y,J){let X={type:"object",properties:{}},Q=[],$=Y.shape();for(let W in $){let K=$[W];if(K===void 0||K._def===void 0)continue;let Z=ZN(K),U=G0(K._def,{...J,currentPath:[...J.currentPath,"properties",W],propertyPath:[...J.currentPath,"properties",W]});if(U===void 0)continue;if(X.properties[W]=U,!Z)Q.push(W)}if(Q.length)X.required=Q;let G=UN(Y,J);if(G!==void 0)X.additionalProperties=G;return X}function UN(Y,J){if(Y.catchall._def.typeName!=="ZodNever")return G0(Y.catchall._def,{...J,currentPath:[...J.currentPath,"additionalProperties"]});switch(Y.unknownKeys){case"passthrough":return J.allowedAdditionalProperties;case"strict":return J.rejectedAdditionalProperties;case"strip":return J.removeAdditionalStrategy==="strict"?J.allowedAdditionalProperties:J.rejectedAdditionalProperties}}function ZN(Y){try{return Y.isOptional()}catch(J){return!0}}var LN=(Y,J)=>{var X;if(J.currentPath.toString()===((X=J.propertyPath)==null?void 0:X.toString()))return G0(Y.innerType._def,J);let Q=G0(Y.innerType._def,{...J,currentPath:[...J.currentPath,"anyOf","1"]});return Q?{anyOf:[{not:i0()},Q]}:i0()},HN=(Y,J)=>{if(J.pipeStrategy==="input")return G0(Y.in._def,J);else if(J.pipeStrategy==="output")return G0(Y.out._def,J);let X=G0(Y.in._def,{...J,currentPath:[...J.currentPath,"allOf","0"]}),Q=G0(Y.out._def,{...J,currentPath:[...J.currentPath,"allOf",X?"1":"0"]});return{allOf:[X,Q].filter(($)=>$!==void 0)}};function VN(Y,J){return G0(Y.type._def,J)}function NN(Y,J){let Q={type:"array",uniqueItems:!0,items:G0(Y.valueType._def,{...J,currentPath:[...J.currentPath,"items"]})};if(Y.minSize)Q.minItems=Y.minSize.value;if(Y.maxSize)Q.maxItems=Y.maxSize.value;return Q}function BN(Y,J){if(Y.rest)return{type:"array",minItems:Y.items.length,items:Y.items.map((X,Q)=>G0(X._def,{...J,currentPath:[...J.currentPath,"items",`${Q}`]})).reduce((X,Q)=>Q===void 0?X:[...X,Q],[]),additionalItems:G0(Y.rest._def,{...J,currentPath:[...J.currentPath,"additionalItems"]})};else return{type:"array",minItems:Y.items.length,maxItems:Y.items.length,items:Y.items.map((X,Q)=>G0(X._def,{...J,currentPath:[...J.currentPath,"items",`${Q}`]})).reduce((X,Q)=>Q===void 0?X:[...X,Q],[])}}function FN(){return{not:i0()}}function jN(){return i0()}var ON=(Y,J)=>{return G0(Y.innerType._def,J)},qN=(Y,J,X)=>{switch(J){case"ZodString":return mW(Y,X);case"ZodNumber":return zN(Y);case"ZodObject":return KN(Y,X);case"ZodBigInt":return uV(Y);case"ZodBoolean":return pV();case"ZodDate":return fW(Y,X);case"ZodUndefined":return FN();case"ZodNull":return QN();case"ZodArray":return cV(Y,X);case"ZodUnion":case"ZodDiscriminatedUnion":return $N(Y,X);case"ZodIntersection":return sV(Y,X);case"ZodTuple":return BN(Y,X);case"ZodRecord":return cW(Y,X);case"ZodLiteral":return aV(Y);case"ZodEnum":return nV(Y);case"ZodNativeEnum":return JN(Y);case"ZodNullable":return WN(Y,X);case"ZodOptional":return LN(Y,X);case"ZodMap":return YN(Y,X);case"ZodSet":return NN(Y,X);case"ZodLazy":return()=>Y.getter()._def;case"ZodPromise":return VN(Y,X);case"ZodNaN":case"ZodNever":return XN();case"ZodEffects":return oV(Y,X);case"ZodAny":return i0();case"ZodUnknown":return jN();case"ZodDefault":return iV(Y,X);case"ZodBranded":return yW(Y,X);case"ZodReadonly":return ON(Y,X);case"ZodCatch":return lV(Y,X);case"ZodPipeline":return HN(Y,X);case"ZodFunction":case"ZodVoid":case"ZodSymbol":return;default:return((Q)=>{return})(J)}},DN=(Y,J)=>{let X=0;for(;X<Y.length&&X<J.length;X++)if(Y[X]!==J[X])break;return[(Y.length-X).toString(),...J.slice(X)].join("/")};function G0(Y,J,X=!1){var Q;let $=J.seen.get(Y);if(J.override){let Z=(Q=J.override)==null?void 0:Q.call(J,Y,J,$,X);if(Z!==fV)return Z}if($&&!X){let Z=PN($,J);if(Z!==void 0)return Z}let G={def:Y,path:J.currentPath,jsonSchema:void 0};J.seen.set(Y,G);let W=qN(Y,Y.typeName,J),K=typeof W==="function"?G0(W(),J):W;if(K)EN(Y,J,K);if(J.postProcess){let Z=J.postProcess(K,Y,J);return G.jsonSchema=K,Z}return G.jsonSchema=K,K}var PN=(Y,J)=>{switch(J.$refStrategy){case"root":return{$ref:Y.path.join("/")};case"relative":return{$ref:DN(J.currentPath,Y.path)};case"none":case"seen":{if(Y.path.length<J.currentPath.length&&Y.path.every((X,Q)=>J.currentPath[Q]===X))return console.warn(`Recursive reference detected at ${J.currentPath.join("/")}! Defaulting to any`),i0();return J.$refStrategy==="seen"?i0():void 0}}},EN=(Y,J,X)=>{if(Y.description)X.description=Y.description;return X},MN=(Y)=>{let J=mV(Y),X=J.name!==void 0?[...J.basePath,J.definitionPath,J.name]:J.basePath;return{...J,currentPath:X,propertyPath:void 0,seen:new Map(Object.entries(J.definitions).map(([Q,$])=>[$._def,{def:$._def,path:[...J.basePath,J.definitionPath,Q],jsonSchema:void 0}]))}},wN=(Y,J)=>{var X;let Q=MN(J),$=typeof J==="object"&&J.definitions?Object.entries(J.definitions).reduce((U,[L,j])=>{var N;return{...U,[L]:(N=G0(j._def,{...Q,currentPath:[...Q.basePath,Q.definitionPath,L]},!0))!=null?N:i0()}},{}):void 0,G=typeof J==="string"?J:(J==null?void 0:J.nameStrategy)==="title"?void 0:J==null?void 0:J.name,W=(X=G0(Y._def,G===void 0?Q:{...Q,currentPath:[...Q.basePath,Q.definitionPath,G]},!1))!=null?X:i0(),K=typeof J==="object"&&J.name!==void 0&&J.nameStrategy==="title"?J.name:void 0;if(K!==void 0)W.title=K;let Z=G===void 0?$?{...W,[Q.definitionPath]:$}:W:{$ref:[...Q.$refStrategy==="relative"?[]:Q.basePath,Q.definitionPath,G].join("/"),[Q.definitionPath]:{...$,[G]:W}};return Z.$schema="http://json-schema.org/draft-07/schema#",Z},bX=Symbol.for("vercel.ai.schema");function YJ(Y){let J;return()=>{if(J==null)J=Y();return J}}function JJ(Y,{validate:J}={}){return{[bX]:!0,_type:void 0,get jsonSchema(){if(typeof Y==="function")Y=Y();return Y},validate:J}}function AN(Y){return typeof Y==="object"&&Y!==null&&bX in Y&&Y[bX]===!0&&"jsonSchema"in Y&&"validate"in Y}function XJ(Y){return Y==null?JJ({type:"object",properties:{},additionalProperties:!1}):AN(Y)?Y:("~standard"in Y)?Y["~standard"].vendor==="zod"?o9(Y):RN(Y):Y()}function RN(Y){return JJ(()=>{if(!TN(Y))throw Error(`Standard schema vendor '${Y["~standard"].vendor}' does not support JSON Schema conversion.`);return yX(Y["~standard"].jsonSchema.input({target:"draft-07"}))},{validate:async(J)=>{let X=await Y["~standard"].validate(J);return"value"in X?{success:!0,value:X.value}:{success:!1,error:new r0({value:J,cause:X.issues})}}})}function TN(Y){return Y["~standard"].jsonSchema!=null}function CN(Y,J){var X;let Q=(X=J==null?void 0:J.useReferences)!=null?X:!1;return JJ(()=>wN(Y,{$refStrategy:Q?"root":"none"}),{validate:async($)=>{let G=await Y.safeParseAsync($);return G.success?{success:!0,value:G.data}:{success:!1,error:G.error}}})}function _N(Y,J){var X;let Q=(X=J==null?void 0:J.useReferences)!=null?X:!1;return JJ(()=>yX(v7(Y,{target:"draft-7",io:"input",reused:Q?"ref":"inline"})),{validate:async($)=>{let G=await aY(Y,$);return G.success?{success:!0,value:G.data}:{success:!1,error:G.error}}})}function IN(Y){return"_zod"in Y}function o9(Y,J){if(IN(Y))return _N(Y,J);else return CN(Y,J)}async function H9({value:Y,schema:J,context:X}){let Q=XJ(J);try{if(Q.validate==null)return{success:!0,value:Y,rawValue:Y};let $=await Q.validate(Y);if($.success)return{success:!0,value:$.value,rawValue:Y};return{success:!1,error:r0.wrap({value:Y,cause:$.error,context:X}),rawValue:Y}}catch($){return{success:!1,error:r0.wrap({value:Y,cause:$,context:X}),rawValue:Y}}}async function k1({text:Y,schema:J}){try{let X=yV(Y);if(J==null)return{success:!0,value:X,rawValue:X};return await H9({value:X,schema:J})}catch(X){return{success:!1,error:xY.isInstance(X)?X:new xY({text:Y,cause:X}),rawValue:void 0}}}async function fX(Y){if(typeof Y==="function")Y=Y();return Promise.resolve(Y)}var uW="AI_SerializationError",pW=`vercel.ai.error.${uW}`,SN=Symbol.for(pW),CW,_W,OD=class extends(_W=R,CW=SN,_W){constructor({message:Y="Failed to serialize value.",cause:J}={}){super({name:uW,message:Y,cause:J});this[CW]=!0}static isInstance(Y){return R.hasMarker(Y,pW)}};var bN=Object.defineProperty,vN=(Y,J)=>{for(var X in J)bN(Y,X,{get:J[X],enumerable:!0})},mz="AI_InvalidArgumentError",cz=`vercel.ai.error.${mz}`,hN=Symbol.for(cz),lW,dW,mX=class extends(dW=R,lW=hN,dW){constructor({parameter:Y,value:J,message:X}){super({name:mz,message:`Invalid argument for parameter ${Y}: ${X}`});this[lW]=!0,this.parameter=Y,this.value=J}static isInstance(Y){return R.hasMarker(Y,cz)}},uz="AI_InvalidStreamPartError",pz=`vercel.ai.error.${uz}`,gN=Symbol.for(pz),iW,oW,ID=class extends(oW=R,iW=gN,oW){constructor({chunk:Y,message:J}){super({name:uz,message:J});this[iW]=!0,this.chunk=Y}static isInstance(Y){return R.hasMarker(Y,pz)}},lz="AI_InvalidToolApprovalError",dz=`vercel.ai.error.${lz}`,yN=Symbol.for(dz),nW,rW,kD=class extends(rW=R,nW=yN,rW){constructor({approvalId:Y}){super({name:lz,message:`Tool approval response references unknown approvalId: "${Y}". No matching tool-approval-request found in message history.`});this[nW]=!0,this.approvalId=Y}static isInstance(Y){return R.hasMarker(Y,dz)}},iz="AI_InvalidToolApprovalSignatureError",oz=`vercel.ai.error.${iz}`,fN=Symbol.for(oz),sW,aW,bD=class extends(aW=R,sW=fN,aW){constructor({approvalId:Y,toolCallId:J,reason:X}){super({name:iz,message:`Tool approval signature verification failed for approval "${Y}" (tool call "${J}"): ${X}`});this[sW]=!0,this.approvalId=Y,this.toolCallId=J}static isInstance(Y){return R.hasMarker(Y,oz)}},nz="AI_InvalidToolInputError",rz=`vercel.ai.error.${nz}`,mN=Symbol.for(rz),tW,eW,hD=class extends(eW=R,tW=mN,eW){constructor({toolInput:Y,toolName:J,cause:X,message:Q=`Invalid input for tool ${J}: ${p1(X)}`}){super({name:nz,message:Q,cause:X});this[tW]=!0,this.toolInput=Y,this.toolName=J}static isInstance(Y){return R.hasMarker(Y,rz)}},sz="AI_ToolCallNotFoundForApprovalError",az=`vercel.ai.error.${sz}`,cN=Symbol.for(az),Yz,Jz,yD=class extends(Jz=R,Yz=cN,Jz){constructor({toolCallId:Y,approvalId:J}){super({name:sz,message:`Tool call "${Y}" not found for approval request "${J}".`});this[Yz]=!0,this.toolCallId=Y,this.approvalId=J}static isInstance(Y){return R.hasMarker(Y,az)}},tz="AI_MissingToolResultsError",ez=`vercel.ai.error.${tz}`,uN=Symbol.for(ez),Xz,Qz,mD=class extends(Qz=R,Xz=uN,Qz){constructor({toolCallIds:Y}){super({name:tz,message:`Tool result${Y.length>1?"s are":" is"} missing for tool call${Y.length>1?"s":""} ${Y.join(", ")}.`});this[Xz]=!0,this.toolCallIds=Y}static isInstance(Y){return R.hasMarker(Y,ez)}},YK="AI_NoImageGeneratedError",JK=`vercel.ai.error.${YK}`,pN=Symbol.for(JK),$z,Gz,uD=class extends(Gz=R,$z=pN,Gz){constructor({message:Y="No image generated.",cause:J,calls:X,responses:Q}){super({name:YK,message:Y,cause:J});this[$z]=!0,this.calls=X,this.responses=Q}static isInstance(Y){return R.hasMarker(Y,JK)}},XK="AI_NoObjectGeneratedError",QK=`vercel.ai.error.${XK}`,lN=Symbol.for(QK),Wz,zz,q1=class extends(zz=R,Wz=lN,zz){constructor({message:Y="No object generated.",cause:J,text:X,response:Q,usage:$,finishReason:G}){super({name:XK,message:Y,cause:J});this[Wz]=!0,this.text=X,this.response=Q,this.usage=$,this.finishReason=G}static isInstance(Y){return R.hasMarker(Y,QK)}},$K="AI_NoOutputGeneratedError",GK=`vercel.ai.error.${$K}`,dN=Symbol.for(GK),Kz,Uz,dD=class extends(Uz=R,Kz=dN,Uz){constructor({message:Y="No output generated.",cause:J}={}){super({name:$K,message:Y,cause:J});this[Kz]=!0}static isInstance(Y){return R.hasMarker(Y,GK)}},WK="AI_NoSpeechGeneratedError",zK=`vercel.ai.error.${WK}`,iN=Symbol.for(zK),Zz,Lz,oD=class extends(Lz=R,Zz=iN,Lz){constructor(Y){super({name:WK,message:"No speech audio generated."});this[Zz]=!0,this.responses=Y.responses}static isInstance(Y){return R.hasMarker(Y,zK)}},KK="AI_NoTranscriptGeneratedError",UK=`vercel.ai.error.${KK}`,oN=Symbol.for(UK),Hz,Vz,rD=class extends(Vz=R,Hz=oN,Vz){constructor(Y){super({name:KK,message:"No transcript generated."});this[Hz]=!0,this.responses=Y.responses}static isInstance(Y){return R.hasMarker(Y,UK)}},ZK="AI_NoTranslationGeneratedError",LK=`vercel.ai.error.${ZK}`,nN=Symbol.for(LK),Nz,Bz,aD=class extends(Bz=R,Nz=nN,Bz){constructor(Y){super({name:ZK,message:"No translation generated."});this[Nz]=!0,this.response=Y.response}static isInstance(Y){return R.hasMarker(Y,LK)}},cX="AI_NoVideoGeneratedError",HK=`vercel.ai.error.${cX}`,rN=Symbol.for(HK),Fz,jz,eD=class extends(jz=R,Fz=rN,jz){constructor({message:Y="No video generated.",cause:J,responses:X}){super({name:cX,message:Y,cause:J});this[Fz]=!0,this.responses=X}static isInstance(Y){return R.hasMarker(Y,HK)}static isNoVideoGeneratedError(Y){return Y instanceof Error&&Y.name===cX&&typeof Y.responses<"u"?!0:!1}toJSON(){return{name:this.name,message:this.message,stack:this.stack,cause:this.cause,responses:this.responses}}},VK="AI_NoSuchToolError",NK=`vercel.ai.error.${VK}`,sN=Symbol.for(NK),Oz,qz,JP=class extends(qz=R,Oz=sN,qz){constructor({toolName:Y,availableTools:J=void 0,message:X=`Model tried to call unavailable tool '${Y}'. ${J===void 0?"No tools are available.":`Available tools: ${J.join(", ")}.`}`}){super({name:VK,message:X});this[Oz]=!0,this.toolName=Y,this.availableTools=J}static isInstance(Y){return R.hasMarker(Y,NK)}},BK="AI_StreamProviderError",FK=`vercel.ai.error.${BK}`,aN=Symbol.for(FK),Dz,Pz,QP=class extends(Pz=R,Dz=aN,Pz){constructor({message:Y,type:J,code:X,statusCode:Q,isRetryable:$=tN(Q),data:G,cause:W}){super({name:BK,message:Y,cause:W});this[Dz]=!0,this.type=J,this.code=X,this.statusCode=Q,this.isRetryable=$,this.data=G}static isInstance(Y){return R.hasMarker(Y,FK)}};function tN(Y){return Y!=null&&(Y===408||Y===409||Y===429||Y>=500)}var jK="AI_ToolCallRepairError",OK=`vercel.ai.error.${jK}`,eN=Symbol.for(OK),Ez,Mz,GP=class extends(Mz=R,Ez=eN,Mz){constructor({cause:Y,originalError:J,message:X=`Error repairing tool call: ${p1(Y)}`}){super({name:jK,message:X,cause:Y});this[Ez]=!0,this.originalError=J}static isInstance(Y){return R.hasMarker(Y,OK)}},qK="AI_ToolChoiceViolationError",DK=`vercel.ai.error.${qK}`,YB=Symbol.for(DK),wz,Az,zP=class extends(Az=R,wz=YB,Az){constructor({toolChoice:Y,finishReason:J,provider:X,modelId:Q,content:$,message:G=Y.type==="required"?"Model response did not contain a tool call even though tool choice was required.":`Model response did not contain a call to the required tool '${Y.toolName}'.`}){super({name:qK,message:G});this[wz]=!0,this.toolChoice=Y,this.finishReason=J,this.provider=X,this.modelId=Q,this.content=$}static isInstance(Y){return R.hasMarker(Y,DK)}};var PK="AI_UIMessageStreamError",EK=`vercel.ai.error.${PK}`,JB=Symbol.for(EK),Rz,Tz,UP=class extends(Tz=R,Rz=JB,Tz){constructor({chunkType:Y,chunkId:J,message:X}){super({name:PK,message:X});this[Rz]=!0,this.chunkType=Y,this.chunkId=J}static isInstance(Y){return R.hasMarker(Y,EK)}},MK="AI_InvalidDataContentError",wK=`vercel.ai.error.${MK}`,XB=Symbol.for(wK),Cz,_z,LP=class extends(_z=R,Cz=XB,_z){constructor({content:Y,cause:J,message:X=`Invalid data content. Expected a base64 string, Uint8Array, ArrayBuffer, or Buffer, but got ${typeof Y}.`}){super({name:MK,message:X,cause:J});this[Cz]=!0,this.content=Y}static isInstance(Y){return R.hasMarker(Y,wK)}},AK="AI_InvalidMessageRoleError",RK=`vercel.ai.error.${AK}`,QB=Symbol.for(RK),Iz,Sz,VP=class extends(Sz=R,Iz=QB,Sz){constructor({role:Y,message:J=`Invalid message role: '${Y}'. Must be one of: "system", "user", "assistant", "tool".`}){super({name:AK,message:J});this[Iz]=!0,this.role=Y}static isInstance(Y){return R.hasMarker(Y,RK)}},TK="AI_MessageConversionError",CK=`vercel.ai.error.${TK}`,$B=Symbol.for(CK),kz,xz,BP=class extends(xz=R,kz=$B,xz){constructor({originalMessage:Y,message:J}){super({name:TK,message:J});this[kz]=!0,this.originalMessage=Y}static isInstance(Y){return R.hasMarker(Y,CK)}},_K="AI_RetryError",IK=`vercel.ai.error.${_K}`,GB=Symbol.for(IK),bz,vz,jP=class extends(vz=R,bz=GB,vz){constructor({message:Y,reason:J,errors:X}){super({name:_K,message:Y});this[bz]=!0,this.reason=J,this.errors=X,this.lastError=X[X.length-1]}static isInstance(Y){return R.hasMarker(Y,IK)}};var WB="7.0.111",zB=async({url:Y,maxBytes:J,abortSignal:X})=>{var Q;let $=Y.toString();try{let G=o1({},`ai-sdk/${WB}`,IW()),W=await vW({url:$,headers:G,abortSignal:X});if(!W.ok)throw await eY(W),new b0({url:$,statusCode:W.status,statusText:W.statusText});return{data:await hW({response:W,url:$,maxBytes:J!=null?J:gX}),mediaType:(Q=W.headers.get("content-type"))!=null?Q:void 0}}catch(G){if(b0.isInstance(G))throw G;throw new b0({url:$,cause:G})}};var z={array:RX,boolean:zW,custom:qW,discriminatedUnion:VW,enum:CX,instanceof:DW,lazy:OW,literal:BW,looseObject:LW,never:AX,null:KW,number:WW,object:ZW,record:NW,string:$W,union:TX,unknown:i9},n1=z.lazy(()=>z.union([z.null(),z.string(),z.number(),z.boolean(),z.record(z.string(),n1.optional()),z.array(n1)])),g=z.record(z.string(),z.record(z.string(),n1.optional())),r9=z.union([z.string(),z.instanceof(Uint8Array),z.instanceof(ArrayBuffer),z.custom(gW,{message:"Must be a Buffer"})]),uX=z.record(z.string(),z.string()),SK=z.object({type:z.literal("text"),text:z.string(),providerOptions:g.optional()}),KB=z.object({type:z.literal("image"),image:z.union([r9,z.instanceof(URL),uX]),mediaType:z.string().optional(),providerOptions:g.optional()}),kK=z.discriminatedUnion("type",[z.object({type:z.literal("data"),data:r9}),z.object({type:z.literal("url"),url:z.instanceof(URL)}),z.object({type:z.literal("reference"),reference:uX}),z.object({type:z.literal("text"),text:z.string()})]),UB=z.discriminatedUnion("type",[z.object({type:z.literal("data"),data:r9}),z.object({type:z.literal("url"),url:z.instanceof(URL)})]),xK=z.object({type:z.literal("file"),data:z.union([kK,r9,z.instanceof(URL),uX]),filename:z.string().optional(),mediaType:z.string(),providerOptions:g.optional()}),ZB=z.object({type:z.literal("reasoning"),text:z.string(),providerOptions:g.optional()}),LB=z.object({type:z.literal("custom"),kind:z.string().transform((Y)=>Y),providerOptions:g.optional()}),HB=z.object({type:z.literal("reasoning-file"),data:z.union([UB,r9,z.instanceof(URL)]),mediaType:z.string(),providerOptions:g.optional()}),VB=z.object({type:z.literal("tool-call"),toolCallId:z.string(),toolName:z.string(),input:z.unknown(),providerOptions:g.optional(),providerExecuted:z.boolean().optional()}),NB=z.discriminatedUnion("type",[z.object({type:z.literal("text"),value:z.string(),providerOptions:g.optional()}),z.object({type:z.literal("json"),value:n1,providerOptions:g.optional()}),z.object({type:z.literal("execution-denied"),reason:z.string().optional(),providerOptions:g.optional()}),z.object({type:z.literal("error-text"),value:z.string(),providerOptions:g.optional()}),z.object({type:z.literal("error-json"),value:n1,providerOptions:g.optional()}),z.object({type:z.literal("content"),value:z.array(z.union([z.object({type:z.literal("text"),text:z.string(),providerOptions:g.optional()}),z.object({type:z.literal("file"),data:kK,mediaType:z.string(),filename:z.string().optional(),providerOptions:g.optional()}),z.object({type:z.literal("file-data"),data:z.string(),mediaType:z.string(),filename:z.string().optional(),providerOptions:g.optional()}),z.object({type:z.literal("file-url"),url:z.string(),mediaType:z.string().optional(),providerOptions:g.optional()}),z.object({type:z.literal("file-id"),fileId:z.union([z.string(),z.record(z.string(),z.string())]),providerOptions:g.optional()}),z.object({type:z.literal("file-reference"),providerReference:z.record(z.string(),z.string()),providerOptions:g.optional()}),z.object({type:z.literal("image-data"),data:z.string(),mediaType:z.string(),providerOptions:g.optional()}),z.object({type:z.literal("image-url"),url:z.string(),providerOptions:g.optional()}),z.object({type:z.literal("image-file-id"),fileId:z.union([z.string(),z.record(z.string(),z.string())]),providerOptions:g.optional()}),z.object({type:z.literal("image-file-reference"),providerReference:z.record(z.string(),z.string()),providerOptions:g.optional()}),z.object({type:z.literal("custom"),providerOptions:g.optional()})]))})]),bK=z.object({type:z.literal("tool-result"),toolCallId:z.string(),toolName:z.string(),output:NB,providerOptions:g.optional()}),BB=z.object({type:z.literal("tool-approval-request"),approvalId:z.string(),toolCallId:z.string(),reason:z.string().optional()}),FB=z.object({type:z.literal("tool-approval-response"),approvalId:z.string(),approved:z.boolean(),reason:z.string().optional()}),jB=z.object({role:z.literal("system"),content:z.string(),providerOptions:g.optional()}),OB=z.object({role:z.literal("user"),content:z.union([z.string(),z.array(z.union([SK,KB,xK]))]),providerOptions:g.optional()}),qB=z.object({role:z.literal("assistant"),content:z.union([z.string(),z.array(z.union([SK,LB,xK,ZB,HB,VB,bK,BB]))]),providerOptions:g.optional()}),DB=z.object({role:z.literal("tool"),content:z.array(z.union([bK,FB])),providerOptions:g.optional()}),PP=z.union([jB,OB,qB,DB]);var PB={};vN(PB,{array:()=>AB,choice:()=>RB,json:()=>TB,object:()=>wB,text:()=>MB});function EB(Y){let J=["ROOT"],X=-1,Q=null,$=0;function G(L){return L>="0"&&L<="9"||L>="A"&&L<="F"||L>="a"&&L<="f"}function W(L,j,N){switch(L){case'"':{X=j,J.pop(),J.push(N),J.push("INSIDE_STRING");break}case"f":case"t":case"n":{X=j,Q=j,J.pop(),J.push(N),J.push("INSIDE_LITERAL");break}case"-":{J.pop(),J.push(N),J.push("INSIDE_NUMBER");break}case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{X=j,J.pop(),J.push(N),J.push("INSIDE_NUMBER");break}case"{":{X=j,J.pop(),J.push(N),J.push("INSIDE_OBJECT_START");break}case"[":{X=j,J.pop(),J.push(N),J.push("INSIDE_ARRAY_START");break}}}function K(L,j){switch(L){case",":{J.pop(),J.push("INSIDE_OBJECT_AFTER_COMMA");break}case"}":{X=j,J.pop();break}}}function Z(L,j){switch(L){case",":{J.pop(),J.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{X=j,J.pop();break}}}for(let L=0;L<Y.length;L++){let j=Y[L];switch(J[J.length-1]){case"ROOT":W(j,L,"FINISH");break;case"INSIDE_OBJECT_START":{switch(j){case'"':{J.pop(),J.push("INSIDE_OBJECT_KEY");break}case"}":{X=L,J.pop();break}}break}case"INSIDE_OBJECT_AFTER_COMMA":{switch(j){case'"':{J.pop(),J.push("INSIDE_OBJECT_KEY");break}}break}case"INSIDE_OBJECT_KEY":{switch(j){case'"':{J.pop(),J.push("INSIDE_OBJECT_AFTER_KEY");break}}break}case"INSIDE_OBJECT_AFTER_KEY":{switch(j){case":":{J.pop(),J.push("INSIDE_OBJECT_BEFORE_VALUE");break}}break}case"INSIDE_OBJECT_BEFORE_VALUE":{W(j,L,"INSIDE_OBJECT_AFTER_VALUE");break}case"INSIDE_OBJECT_AFTER_VALUE":{K(j,L);break}case"INSIDE_STRING":{switch(j){case'"':{J.pop(),X=L;break}case"\\":{J.push("INSIDE_STRING_ESCAPE");break}default:X=L}break}case"INSIDE_ARRAY_START":{switch(j){case"]":{X=L,J.pop();break}default:{X=L,W(j,L,"INSIDE_ARRAY_AFTER_VALUE");break}}break}case"INSIDE_ARRAY_AFTER_VALUE":{switch(j){case",":{J.pop(),J.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{X=L,J.pop();break}default:{X=L;break}}break}case"INSIDE_ARRAY_AFTER_COMMA":{W(j,L,"INSIDE_ARRAY_AFTER_VALUE");break}case"INSIDE_STRING_ESCAPE":{if(J.pop(),j==="u")$=0,J.push("INSIDE_STRING_UNICODE_ESCAPE");else X=L;break}case"INSIDE_STRING_UNICODE_ESCAPE":{if(G(j)){if($++,$===4)J.pop(),X=L}break}case"INSIDE_NUMBER":{switch(j){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{X=L;break}case"e":case"E":case"-":case".":break;case",":{if(J.pop(),J[J.length-1]==="INSIDE_ARRAY_AFTER_VALUE")Z(j,L);if(J[J.length-1]==="INSIDE_OBJECT_AFTER_VALUE")K(j,L);break}case"}":{if(J.pop(),J[J.length-1]==="INSIDE_OBJECT_AFTER_VALUE")K(j,L);break}case"]":{if(J.pop(),J[J.length-1]==="INSIDE_ARRAY_AFTER_VALUE")Z(j,L);break}default:{J.pop();break}}break}case"INSIDE_LITERAL":{let V=Y.substring(Q,L+1);if(!"false".startsWith(V)&&!"true".startsWith(V)&&!"null".startsWith(V)){if(J.pop(),J[J.length-1]==="INSIDE_OBJECT_AFTER_VALUE")K(j,L);else if(J[J.length-1]==="INSIDE_ARRAY_AFTER_VALUE")Z(j,L)}else X=L;break}}}let U=Y.slice(0,X+1);for(let L=J.length-1;L>=0;L--)switch(J[L]){case"INSIDE_STRING":{U+='"';break}case"INSIDE_OBJECT_KEY":case"INSIDE_OBJECT_AFTER_KEY":case"INSIDE_OBJECT_AFTER_COMMA":case"INSIDE_OBJECT_START":case"INSIDE_OBJECT_BEFORE_VALUE":case"INSIDE_OBJECT_AFTER_VALUE":{U+="}";break}case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":{U+="]";break}case"INSIDE_LITERAL":{let N=Y.substring(Q,Y.length);if("true".startsWith(N))U+="true".slice(N.length);else if("false".startsWith(N))U+="false".slice(N.length);else if("null".startsWith(N))U+="null".slice(N.length)}}return U}async function QJ(Y){if(Y===void 0)return{value:void 0,state:"undefined-input"};let J=await k1({text:Y});if(J.success)return{value:J.value,state:"successful-parse"};if(J=await k1({text:EB(Y)}),J.success)return{value:J.value,state:"repaired-parse"};return{value:void 0,state:"failed-parse"}}var MB=()=>({name:"text",responseFormat:Promise.resolve({type:"text"}),async parseCompleteOutput({text:Y}){return Y},async parsePartialOutput({text:Y}){return{partial:Y}},createElementStreamTransform(){return}}),wB=({schema:Y,name:J,description:X})=>{let Q=XJ(Y);return{name:"object",responseFormat:fX(Q.jsonSchema).then(($)=>({type:"json",schema:$,...J!=null&&{name:J},...X!=null&&{description:X}})),async parseCompleteOutput({text:$},G){let W=await k1({text:$});if(!W.success)throw new q1({message:"No object generated: could not parse the response.",cause:W.error,text:$,response:G.response,usage:G.usage,finishReason:G.finishReason});let K=await H9({value:W.value,schema:Q});if(!K.success)throw new q1({message:"No object generated: response did not match schema.",cause:K.error,text:$,response:G.response,usage:G.usage,finishReason:G.finishReason});return K.value},async parsePartialOutput({text:$}){let G=await QJ($);switch(G.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:G.value}}},createElementStreamTransform(){return}}},AB=({element:Y,minItems:J,maxItems:X,name:Q,description:$})=>{if(hz({name:"minItems",value:J}),hz({name:"maxItems",value:X}),J!=null&&X!=null&&J>X)throw new mX({parameter:"minItems",value:J,message:"minItems must be less than or equal to maxItems"});let G=XJ(Y);return{name:"array",responseFormat:fX(G.jsonSchema).then((W)=>{let{$schema:K,definitions:Z,$defs:U,...L}=W;return{type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",...Z!=null&&{definitions:Z},...U!=null&&{$defs:U},type:"object",properties:{elements:{type:"array",items:L,...J!=null&&{minItems:J},...X!=null&&{maxItems:X}}},required:["elements"],additionalProperties:!1},...Q!=null&&{name:Q},...$!=null&&{description:$}}}),async parseCompleteOutput({text:W},K){let Z=await k1({text:W});if(!Z.success)throw new q1({message:"No object generated: could not parse the response.",cause:Z.error,text:W,response:K.response,usage:K.usage,finishReason:K.finishReason});let U=Z.value;if(U==null||typeof U!=="object"||!("elements"in U)||!Array.isArray(U.elements))throw new q1({message:"No object generated: response did not match schema.",cause:new r0({value:U,cause:"response must be an object with an elements array"}),text:W,response:K.response,usage:K.usage,finishReason:K.finishReason});let L=gz({value:U.elements,minItems:J,maxItems:X});if(L!=null)throw new q1({message:"No object generated: response did not match schema.",cause:L,text:W,response:K.response,usage:K.usage,finishReason:K.finishReason});let j=[];for(let N of U.elements){let V=await H9({value:N,schema:G});if(!V.success)throw new q1({message:"No object generated: response did not match schema.",cause:V.error,text:W,response:K.response,usage:K.usage,finishReason:K.finishReason});j.push(V.value)}return j},async parsePartialOutput({text:W}){let K=await QJ(W);switch(K.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{let Z=K.value;if(Z==null||typeof Z!=="object"||!("elements"in Z)||!Array.isArray(Z.elements))return;let U=K.state==="repaired-parse"&&Z.elements.length>0?Z.elements.slice(0,-1):Z.elements,L=[];for(let j of U){let N=await H9({value:j,schema:G});if(N.success)L.push(N.value)}return{partial:L}}}},createElementStreamTransform(){let W=0;return new TransformStream({transform({partialOutput:K},Z){if(K!=null)for(;W<K.length;W++){if(X!=null&&W>=X){Z.error(gz({value:K,maxItems:X}));return}Z.enqueue(K[W])}}})}}};function hz({name:Y,value:J}){if(J==null)return;if(!Number.isInteger(J))throw new mX({parameter:Y,value:J,message:`${Y} must be an integer`});if(J<0)throw new mX({parameter:Y,value:J,message:`${Y} must be greater than or equal to 0`})}function gz({value:Y,minItems:J,maxItems:X}){if(J!=null&&Y.length<J)return new r0({value:Y,cause:`elements array must contain at least ${J} items`});if(X!=null&&Y.length>X)return new r0({value:Y,cause:`elements array must contain at most ${X} items`});return}var RB=({options:Y,name:J,description:X})=>{return{name:"choice",responseFormat:Promise.resolve({type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{result:{type:"string",enum:Y}},required:["result"],additionalProperties:!1},...J!=null&&{name:J},...X!=null&&{description:X}}),async parseCompleteOutput({text:Q},$){let G=await k1({text:Q});if(!G.success)throw new q1({message:"No object generated: could not parse the response.",cause:G.error,text:Q,response:$.response,usage:$.usage,finishReason:$.finishReason});let W=G.value;if(W==null||typeof W!=="object"||!("result"in W)||typeof W.result!=="string"||!Y.includes(W.result))throw new q1({message:"No object generated: response did not match schema.",cause:new r0({value:W,cause:"response must be an object that contains a choice value."}),text:Q,response:$.response,usage:$.usage,finishReason:$.finishReason});return W.result},async parsePartialOutput({text:Q}){let $=await QJ(Q);switch($.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{let G=$.value;if(G==null||typeof G!=="object"||!("result"in G)||typeof G.result!=="string")return;let W=Y.filter((K)=>K.startsWith(G.result));if($.state==="successful-parse")return W.includes(G.result)?{partial:G.result}:void 0;else return W.length===1?{partial:W[0]}:void 0}}},createElementStreamTransform(){return}}},TB=({name:Y,description:J}={})=>{return{name:"json",responseFormat:Promise.resolve({type:"json",...Y!=null&&{name:Y},...J!=null&&{description:J}}),async parseCompleteOutput({text:X},Q){let $=await k1({text:X});if(!$.success)throw new q1({message:"No object generated: could not parse the response.",cause:$.error,text:X,response:Q.response,usage:Q.usage,finishReason:Q.finishReason});return $.value},async parsePartialOutput({text:X}){let Q=await QJ(X);switch(Q.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return Q.value===void 0?void 0:{partial:Q.value}}},createElementStreamTransform(){return}}};var AP=F0({prefix:"aitxt",size:24}),RP=F0({prefix:"call",size:24});var CP=class extends TransformStream{constructor(){super({transform(Y,J){J.enqueue(`data: ${JSON.stringify(Y)}
|
|
97
97
|
|
|
98
98
|
`)},flush(Y){Y.enqueue(`data: [DONE]
|
|
99
99
|
|
|
100
|
-
`)}})}};var M1=K.record(K.string(),kY.optional()),sj=j9(()=>P1(K.union([K.looseObject({type:K.literal("text-start"),id:K.string(),providerMetadata:_.optional()}),K.looseObject({type:K.literal("text-delta"),id:K.string(),delta:K.string(),providerMetadata:_.optional()}),K.looseObject({type:K.literal("text-end"),id:K.string(),providerMetadata:_.optional()}),K.looseObject({type:K.literal("error"),errorText:K.string()}),K.looseObject({type:K.literal("tool-input-start"),toolCallId:K.string(),toolName:K.string(),providerExecuted:K.boolean().optional(),providerMetadata:_.optional(),toolMetadata:M1.optional(),dynamic:K.boolean().optional(),title:K.string().optional()}),K.looseObject({type:K.literal("tool-input-delta"),toolCallId:K.string(),inputTextDelta:K.string()}),K.looseObject({type:K.literal("tool-input-available"),toolCallId:K.string(),toolName:K.string(),input:K.unknown(),providerExecuted:K.boolean().optional(),providerMetadata:_.optional(),toolMetadata:M1.optional(),dynamic:K.boolean().optional(),title:K.string().optional()}),K.looseObject({type:K.literal("tool-input-error"),toolCallId:K.string(),toolName:K.string(),input:K.unknown(),providerExecuted:K.boolean().optional(),providerMetadata:_.optional(),toolMetadata:M1.optional(),dynamic:K.boolean().optional(),errorText:K.string(),title:K.string().optional()}),K.looseObject({type:K.literal("tool-approval-request"),approvalId:K.string(),toolCallId:K.string(),approvalDescriptor:K.unknown().optional(),reason:K.string().optional(),isAutomatic:K.boolean().optional(),signature:K.string().optional()}),K.looseObject({type:K.literal("tool-approval-response"),approvalId:K.string(),approved:K.boolean(),reason:K.string().optional(),providerExecuted:K.boolean().optional(),providerMetadata:_.optional()}),K.looseObject({type:K.literal("tool-output-available"),toolCallId:K.string(),output:K.unknown(),providerExecuted:K.boolean().optional(),providerMetadata:_.optional(),toolMetadata:M1.optional(),dynamic:K.boolean().optional(),preliminary:K.boolean().optional()}),K.looseObject({type:K.literal("tool-output-error"),toolCallId:K.string(),errorText:K.string(),providerExecuted:K.boolean().optional(),providerMetadata:_.optional(),toolMetadata:M1.optional(),dynamic:K.boolean().optional()}),K.looseObject({type:K.literal("tool-output-denied"),toolCallId:K.string()}),K.looseObject({type:K.literal("reasoning-start"),id:K.string(),providerMetadata:_.optional()}),K.looseObject({type:K.literal("reasoning-delta"),id:K.string(),delta:K.string(),providerMetadata:_.optional()}),K.looseObject({type:K.literal("reasoning-end"),id:K.string(),providerMetadata:_.optional()}),K.looseObject({type:K.literal("custom"),kind:K.string().transform((Y)=>Y),providerMetadata:_.optional()}),K.looseObject({type:K.literal("source-url"),sourceId:K.string(),url:K.string(),title:K.string().optional(),providerMetadata:_.optional()}),K.looseObject({type:K.literal("source-document"),sourceId:K.string(),mediaType:K.string(),title:K.string(),filename:K.string().optional(),providerMetadata:_.optional()}),K.looseObject({type:K.literal("file"),url:K.string(),mediaType:K.string(),providerMetadata:_.optional()}),K.looseObject({type:K.literal("reasoning-file"),url:K.string(),mediaType:K.string(),providerMetadata:_.optional()}),K.looseObject({type:K.custom((Y)=>typeof Y==="string"&&Y.startsWith("data-"),{message:'Type must start with "data-"'}),id:K.string().optional(),data:K.unknown(),transient:K.boolean().optional()}),K.looseObject({type:K.literal("start-step")}),K.looseObject({type:K.literal("finish-step")}),K.looseObject({type:K.literal("reset-step")}),K.looseObject({type:K.literal("start"),messageId:K.string().optional(),messageMetadata:K.unknown().optional()}),K.looseObject({type:K.literal("finish"),finishReason:K.enum(["stop","length","content-filter","tool-calls","error","other"]).optional(),messageMetadata:K.unknown().optional()}),K.looseObject({type:K.literal("abort"),reason:K.string().optional()}),K.looseObject({type:K.literal("message-metadata"),messageMetadata:K.unknown()})])));var tj=z0({prefix:"aitxt",size:24}),ej=z0({prefix:"call",size:24});var Y6=z0({prefix:"aitxt",size:24}),X6=z0({prefix:"call",size:24});var I0=K.record(K.string(),kY.optional()),PZ=K.record(K.string(),K.string());var Q6=j9(()=>P1(K.array(K.object({id:K.string(),role:K.enum(["system","user","assistant"]),metadata:K.unknown().optional(),parts:K.array(K.union([K.object({type:K.literal("text"),text:K.string(),state:K.enum(["streaming","done"]).optional(),providerMetadata:_.optional()}),K.object({type:K.literal("reasoning"),id:K.string().optional(),text:K.string(),state:K.enum(["streaming","done"]).optional(),providerMetadata:_.optional()}),K.object({type:K.literal("custom"),kind:K.string(),providerMetadata:_.optional()}),K.object({type:K.literal("source-url"),sourceId:K.string(),url:K.string(),title:K.string().optional(),providerMetadata:_.optional()}),K.object({type:K.literal("source-document"),sourceId:K.string(),mediaType:K.string(),title:K.string(),filename:K.string().optional(),providerMetadata:_.optional()}),K.object({type:K.literal("file"),mediaType:K.string(),filename:K.string().optional(),url:K.string(),providerReference:PZ.optional(),providerMetadata:_.optional()}),K.object({type:K.literal("reasoning-file"),mediaType:K.string(),url:K.string(),providerMetadata:_.optional()}),K.object({type:K.literal("step-start")}),K.object({type:K.string().startsWith("data-"),id:K.string().optional(),data:K.unknown()}),K.object({type:K.literal("dynamic-tool"),toolName:K.string(),toolCallId:K.string(),title:K.string().optional(),toolMetadata:I0.optional(),state:K.literal("input-streaming"),input:K.unknown().optional(),providerExecuted:K.boolean().optional(),callProviderMetadata:_.optional(),output:K.never().optional(),errorText:K.never().optional(),approval:K.never().optional()}),K.object({type:K.literal("dynamic-tool"),toolName:K.string(),toolCallId:K.string(),title:K.string().optional(),toolMetadata:I0.optional(),state:K.literal("input-available"),input:K.unknown(),providerExecuted:K.boolean().optional(),output:K.never().optional(),errorText:K.never().optional(),callProviderMetadata:_.optional(),approval:K.never().optional()}),K.object({type:K.literal("dynamic-tool"),toolName:K.string(),toolCallId:K.string(),title:K.string().optional(),toolMetadata:I0.optional(),state:K.literal("approval-requested"),input:K.unknown(),providerExecuted:K.boolean().optional(),output:K.never().optional(),errorText:K.never().optional(),callProviderMetadata:_.optional(),approval:K.object({id:K.string(),approved:K.never().optional(),descriptor:K.unknown().optional(),requestReason:K.string().optional(),reason:K.never().optional(),isAutomatic:K.boolean().optional(),signature:K.string().optional()})}),K.object({type:K.literal("dynamic-tool"),toolName:K.string(),toolCallId:K.string(),title:K.string().optional(),toolMetadata:I0.optional(),state:K.literal("approval-responded"),input:K.unknown(),providerExecuted:K.boolean().optional(),output:K.never().optional(),errorText:K.never().optional(),callProviderMetadata:_.optional(),approval:K.object({id:K.string(),approved:K.boolean(),descriptor:K.unknown().optional(),requestReason:K.string().optional(),reason:K.string().optional(),isAutomatic:K.boolean().optional(),signature:K.string().optional()})}),K.object({type:K.literal("dynamic-tool"),toolName:K.string(),toolCallId:K.string(),title:K.string().optional(),toolMetadata:I0.optional(),state:K.literal("output-available"),input:K.unknown(),providerExecuted:K.boolean().optional(),output:K.unknown(),errorText:K.never().optional(),callProviderMetadata:_.optional(),resultProviderMetadata:_.optional(),preliminary:K.boolean().optional(),approval:K.object({id:K.string(),approved:K.literal(!0),descriptor:K.unknown().optional(),requestReason:K.string().optional(),reason:K.string().optional(),isAutomatic:K.boolean().optional(),signature:K.string().optional()}).optional()}),K.object({type:K.literal("dynamic-tool"),toolName:K.string(),toolCallId:K.string(),title:K.string().optional(),toolMetadata:I0.optional(),state:K.literal("output-error"),input:K.unknown().optional(),rawInput:K.unknown().optional(),providerExecuted:K.boolean().optional(),output:K.never().optional(),errorText:K.string(),callProviderMetadata:_.optional(),resultProviderMetadata:_.optional(),approval:K.object({id:K.string(),approved:K.literal(!0),descriptor:K.unknown().optional(),requestReason:K.string().optional(),reason:K.string().optional(),isAutomatic:K.boolean().optional(),signature:K.string().optional()}).optional()}),K.object({type:K.literal("dynamic-tool"),toolName:K.string(),toolCallId:K.string(),title:K.string().optional(),toolMetadata:I0.optional(),state:K.literal("output-denied"),input:K.unknown(),providerExecuted:K.boolean().optional(),output:K.never().optional(),errorText:K.never().optional(),callProviderMetadata:_.optional(),approval:K.object({id:K.string(),approved:K.literal(!1),descriptor:K.unknown().optional(),requestReason:K.string().optional(),reason:K.string().optional(),isAutomatic:K.boolean().optional(),signature:K.string().optional()})}),K.object({type:K.string().startsWith("tool-"),toolCallId:K.string(),title:K.string().optional(),toolMetadata:I0.optional(),state:K.literal("input-streaming"),providerExecuted:K.boolean().optional(),callProviderMetadata:_.optional(),input:K.unknown().optional(),output:K.never().optional(),errorText:K.never().optional(),approval:K.never().optional()}),K.object({type:K.string().startsWith("tool-"),toolCallId:K.string(),title:K.string().optional(),toolMetadata:I0.optional(),state:K.literal("input-available"),providerExecuted:K.boolean().optional(),input:K.unknown(),output:K.never().optional(),errorText:K.never().optional(),callProviderMetadata:_.optional(),approval:K.never().optional()}),K.object({type:K.string().startsWith("tool-"),toolCallId:K.string(),title:K.string().optional(),toolMetadata:I0.optional(),state:K.literal("approval-requested"),input:K.unknown(),providerExecuted:K.boolean().optional(),output:K.never().optional(),errorText:K.never().optional(),callProviderMetadata:_.optional(),approval:K.object({id:K.string(),approved:K.never().optional(),descriptor:K.unknown().optional(),requestReason:K.string().optional(),reason:K.never().optional(),isAutomatic:K.boolean().optional(),signature:K.string().optional()})}),K.object({type:K.string().startsWith("tool-"),toolCallId:K.string(),title:K.string().optional(),toolMetadata:I0.optional(),state:K.literal("approval-responded"),input:K.unknown(),providerExecuted:K.boolean().optional(),output:K.never().optional(),errorText:K.never().optional(),callProviderMetadata:_.optional(),approval:K.object({id:K.string(),approved:K.boolean(),descriptor:K.unknown().optional(),requestReason:K.string().optional(),reason:K.string().optional(),isAutomatic:K.boolean().optional(),signature:K.string().optional()})}),K.object({type:K.string().startsWith("tool-"),toolCallId:K.string(),title:K.string().optional(),toolMetadata:I0.optional(),state:K.literal("output-available"),providerExecuted:K.boolean().optional(),input:K.unknown(),output:K.unknown(),errorText:K.never().optional(),callProviderMetadata:_.optional(),resultProviderMetadata:_.optional(),preliminary:K.boolean().optional(),approval:K.object({id:K.string(),approved:K.literal(!0),descriptor:K.unknown().optional(),requestReason:K.string().optional(),reason:K.string().optional(),isAutomatic:K.boolean().optional(),signature:K.string().optional()}).optional()}),K.object({type:K.string().startsWith("tool-"),toolCallId:K.string(),title:K.string().optional(),toolMetadata:I0.optional(),state:K.literal("output-error"),providerExecuted:K.boolean().optional(),input:K.unknown().optional(),rawInput:K.unknown().optional(),output:K.never().optional(),errorText:K.string(),callProviderMetadata:_.optional(),resultProviderMetadata:_.optional(),approval:K.object({id:K.string(),approved:K.literal(!0),descriptor:K.unknown().optional(),requestReason:K.string().optional(),reason:K.string().optional(),isAutomatic:K.boolean().optional(),signature:K.string().optional()}).optional()}),K.object({type:K.string().startsWith("tool-"),toolCallId:K.string(),title:K.string().optional(),toolMetadata:I0.optional(),state:K.literal("output-denied"),providerExecuted:K.boolean().optional(),input:K.unknown(),output:K.never().optional(),errorText:K.never().optional(),callProviderMetadata:_.optional(),approval:K.object({id:K.string(),approved:K.literal(!1),descriptor:K.unknown().optional(),requestReason:K.string().optional(),reason:K.string().optional(),isAutomatic:K.boolean().optional(),signature:K.string().optional()})})]))}).superRefine((Y,X)=>{if(Y.role!=="assistant"&&Y.parts.length===0)X.addIssue({origin:"array",code:"too_small",minimum:1,inclusive:!0,input:Y.parts,path:["parts"],message:"Message must contain at least one part"})})).nonempty("Messages array must not be empty")));var $6=z0({prefix:"call",size:24});var K6=z0({prefix:"call",size:24});var U6=z0({prefix:"aiobj",size:24});function aW(Y){return({url:X,abortSignal:J})=>YZ({url:X,maxBytes:Y==null?void 0:Y.maxBytes,abortSignal:J})}var H6=z0({prefix:"aiobj",size:24});var N6=aW();var Z6=K.object({token:K.string().refine((Y)=>Y.trim().length>0),url:K.string().refine((Y)=>{try{let X=new URL(Y);return(X.protocol==="ws:"||X.protocol==="wss:")&&X.hostname!==""}catch(X){return!1}}),expiresAt:K.number().positive().max(Number.MAX_SAFE_INTEGER).optional(),tools:K.array(K.object({type:K.literal("function"),name:K.string().min(1),description:K.string().optional(),parameters:K.record(K.string(),K.unknown())})).optional()});var tW="AI_NoSuchProviderError",eW=`vercel.ai.error.${tW}`,MZ=Symbol.for(eW),YW,XW,B6=class extends(XW=QX,YW=MZ,XW){constructor({modelId:Y,modelType:X,providerId:J,availableProviders:Q,message:G=`No such provider: ${J} (available providers: ${Q.join()})`}){super({errorName:tW,modelId:Y,modelType:X,message:G});this[YW]=!0,this.providerId=J,this.availableProviders=Q}static isInstance(Y){return P.hasMarker(Y,eW)}};var O6=z0({prefix:"call",size:24});var q6=aW();class _0 extends z1{name="ProviderResponseStreamError";constructor(Y,X){super({message:Y,url:"",requestBodyValues:void 0,cause:X?.cause,isRetryable:X?.retryable??!0})}}var P0={};$X(P0,{toWebSocketUrl:()=>mZ,streamResponsesWebSocket:()=>dZ,parseRateLimitSignal:()=>A1,normalizeHeaders:()=>cZ,markOversizedFrame:()=>L4,isUpgradeFailure:()=>uZ,isOversizedFrame:()=>pZ,isAbortError:()=>Y8,connectResponsesWebSocket:()=>lZ,TERMINAL_AFTER_OUTPUT_MESSAGE:()=>N4,PROTOCOL_HEADER:()=>K4,OpenAIWebSocket:()=>P0,OVERSIZED_FRAME_MESSAGE:()=>Z4});function w1(Y){let X=Number(Y.match(/^HTTP\/\d(?:\.\d)?\s+(\d{3})/)?.[1]);return Number.isFinite(X)?X:void 0}function E9(Y,X,J=!1){let G=Buffer.from(Y.slice(0,X)).toString("latin1").split(`\r
|
|
101
|
-
`)
|
|
100
|
+
`)}})}};var n9=z.record(z.string(),n1.optional()),IP=YJ(()=>o9(z.union([z.looseObject({type:z.literal("text-start"),id:z.string(),providerMetadata:g.optional()}),z.looseObject({type:z.literal("text-delta"),id:z.string(),delta:z.string(),providerMetadata:g.optional()}),z.looseObject({type:z.literal("text-end"),id:z.string(),providerMetadata:g.optional()}),z.looseObject({type:z.literal("error"),errorText:z.string()}),z.looseObject({type:z.literal("tool-input-start"),toolCallId:z.string(),toolName:z.string(),providerExecuted:z.boolean().optional(),providerMetadata:g.optional(),toolMetadata:n9.optional(),dynamic:z.boolean().optional(),title:z.string().optional()}),z.looseObject({type:z.literal("tool-input-delta"),toolCallId:z.string(),inputTextDelta:z.string()}),z.looseObject({type:z.literal("tool-input-available"),toolCallId:z.string(),toolName:z.string(),input:z.unknown(),providerExecuted:z.boolean().optional(),providerMetadata:g.optional(),toolMetadata:n9.optional(),dynamic:z.boolean().optional(),title:z.string().optional()}),z.looseObject({type:z.literal("tool-input-error"),toolCallId:z.string(),toolName:z.string(),input:z.unknown(),providerExecuted:z.boolean().optional(),providerMetadata:g.optional(),toolMetadata:n9.optional(),dynamic:z.boolean().optional(),errorText:z.string(),title:z.string().optional()}),z.looseObject({type:z.literal("tool-approval-request"),approvalId:z.string(),toolCallId:z.string(),approvalDescriptor:z.unknown().optional(),reason:z.string().optional(),isAutomatic:z.boolean().optional(),signature:z.string().optional()}),z.looseObject({type:z.literal("tool-approval-response"),approvalId:z.string(),approved:z.boolean(),reason:z.string().optional(),providerExecuted:z.boolean().optional(),providerMetadata:g.optional()}),z.looseObject({type:z.literal("tool-output-available"),toolCallId:z.string(),output:z.unknown(),providerExecuted:z.boolean().optional(),providerMetadata:g.optional(),toolMetadata:n9.optional(),dynamic:z.boolean().optional(),preliminary:z.boolean().optional()}),z.looseObject({type:z.literal("tool-output-error"),toolCallId:z.string(),errorText:z.string(),providerExecuted:z.boolean().optional(),providerMetadata:g.optional(),toolMetadata:n9.optional(),dynamic:z.boolean().optional()}),z.looseObject({type:z.literal("tool-output-denied"),toolCallId:z.string()}),z.looseObject({type:z.literal("reasoning-start"),id:z.string(),providerMetadata:g.optional()}),z.looseObject({type:z.literal("reasoning-delta"),id:z.string(),delta:z.string(),providerMetadata:g.optional()}),z.looseObject({type:z.literal("reasoning-end"),id:z.string(),providerMetadata:g.optional()}),z.looseObject({type:z.literal("custom"),kind:z.string().transform((Y)=>Y),providerMetadata:g.optional()}),z.looseObject({type:z.literal("source-url"),sourceId:z.string(),url:z.string(),title:z.string().optional(),providerMetadata:g.optional()}),z.looseObject({type:z.literal("source-document"),sourceId:z.string(),mediaType:z.string(),title:z.string(),filename:z.string().optional(),providerMetadata:g.optional()}),z.looseObject({type:z.literal("file"),url:z.string(),mediaType:z.string(),providerMetadata:g.optional()}),z.looseObject({type:z.literal("reasoning-file"),url:z.string(),mediaType:z.string(),providerMetadata:g.optional()}),z.looseObject({type:z.custom((Y)=>typeof Y==="string"&&Y.startsWith("data-"),{message:'Type must start with "data-"'}),id:z.string().optional(),data:z.unknown(),transient:z.boolean().optional()}),z.looseObject({type:z.literal("start-step")}),z.looseObject({type:z.literal("finish-step")}),z.looseObject({type:z.literal("reset-step")}),z.looseObject({type:z.literal("start"),messageId:z.string().optional(),messageMetadata:z.unknown().optional()}),z.looseObject({type:z.literal("finish"),finishReason:z.enum(["stop","length","content-filter","tool-calls","error","other"]).optional(),messageMetadata:z.unknown().optional()}),z.looseObject({type:z.literal("abort"),reason:z.string().optional()}),z.looseObject({type:z.literal("message-metadata"),messageMetadata:z.unknown()})])));var kP=F0({prefix:"aitxt",size:24}),xP=F0({prefix:"call",size:24});var bP=F0({prefix:"aitxt",size:24}),vP=F0({prefix:"call",size:24});var f0=z.record(z.string(),n1.optional()),CB=z.record(z.string(),z.string());var gP=YJ(()=>o9(z.array(z.object({id:z.string(),role:z.enum(["system","user","assistant"]),metadata:z.unknown().optional(),parts:z.array(z.union([z.object({type:z.literal("text"),text:z.string(),state:z.enum(["streaming","done"]).optional(),providerMetadata:g.optional()}),z.object({type:z.literal("reasoning"),id:z.string().optional(),text:z.string(),state:z.enum(["streaming","done"]).optional(),providerMetadata:g.optional()}),z.object({type:z.literal("custom"),kind:z.string(),providerMetadata:g.optional()}),z.object({type:z.literal("source-url"),sourceId:z.string(),url:z.string(),title:z.string().optional(),providerMetadata:g.optional()}),z.object({type:z.literal("source-document"),sourceId:z.string(),mediaType:z.string(),title:z.string(),filename:z.string().optional(),providerMetadata:g.optional()}),z.object({type:z.literal("file"),mediaType:z.string(),filename:z.string().optional(),url:z.string(),providerReference:CB.optional(),providerMetadata:g.optional()}),z.object({type:z.literal("reasoning-file"),mediaType:z.string(),url:z.string(),providerMetadata:g.optional()}),z.object({type:z.literal("step-start")}),z.object({type:z.string().startsWith("data-"),id:z.string().optional(),data:z.unknown()}),z.object({type:z.literal("dynamic-tool"),toolName:z.string(),toolCallId:z.string(),title:z.string().optional(),toolMetadata:f0.optional(),state:z.literal("input-streaming"),input:z.unknown().optional(),providerExecuted:z.boolean().optional(),callProviderMetadata:g.optional(),output:z.never().optional(),errorText:z.never().optional(),approval:z.never().optional()}),z.object({type:z.literal("dynamic-tool"),toolName:z.string(),toolCallId:z.string(),title:z.string().optional(),toolMetadata:f0.optional(),state:z.literal("input-available"),input:z.unknown(),providerExecuted:z.boolean().optional(),output:z.never().optional(),errorText:z.never().optional(),callProviderMetadata:g.optional(),approval:z.never().optional()}),z.object({type:z.literal("dynamic-tool"),toolName:z.string(),toolCallId:z.string(),title:z.string().optional(),toolMetadata:f0.optional(),state:z.literal("approval-requested"),input:z.unknown(),providerExecuted:z.boolean().optional(),output:z.never().optional(),errorText:z.never().optional(),callProviderMetadata:g.optional(),approval:z.object({id:z.string(),approved:z.never().optional(),descriptor:z.unknown().optional(),requestReason:z.string().optional(),reason:z.never().optional(),isAutomatic:z.boolean().optional(),signature:z.string().optional()})}),z.object({type:z.literal("dynamic-tool"),toolName:z.string(),toolCallId:z.string(),title:z.string().optional(),toolMetadata:f0.optional(),state:z.literal("approval-responded"),input:z.unknown(),providerExecuted:z.boolean().optional(),output:z.never().optional(),errorText:z.never().optional(),callProviderMetadata:g.optional(),approval:z.object({id:z.string(),approved:z.boolean(),descriptor:z.unknown().optional(),requestReason:z.string().optional(),reason:z.string().optional(),isAutomatic:z.boolean().optional(),signature:z.string().optional()})}),z.object({type:z.literal("dynamic-tool"),toolName:z.string(),toolCallId:z.string(),title:z.string().optional(),toolMetadata:f0.optional(),state:z.literal("output-available"),input:z.unknown(),providerExecuted:z.boolean().optional(),output:z.unknown(),errorText:z.never().optional(),callProviderMetadata:g.optional(),resultProviderMetadata:g.optional(),preliminary:z.boolean().optional(),approval:z.object({id:z.string(),approved:z.literal(!0),descriptor:z.unknown().optional(),requestReason:z.string().optional(),reason:z.string().optional(),isAutomatic:z.boolean().optional(),signature:z.string().optional()}).optional()}),z.object({type:z.literal("dynamic-tool"),toolName:z.string(),toolCallId:z.string(),title:z.string().optional(),toolMetadata:f0.optional(),state:z.literal("output-error"),input:z.unknown().optional(),rawInput:z.unknown().optional(),providerExecuted:z.boolean().optional(),output:z.never().optional(),errorText:z.string(),callProviderMetadata:g.optional(),resultProviderMetadata:g.optional(),approval:z.object({id:z.string(),approved:z.literal(!0),descriptor:z.unknown().optional(),requestReason:z.string().optional(),reason:z.string().optional(),isAutomatic:z.boolean().optional(),signature:z.string().optional()}).optional()}),z.object({type:z.literal("dynamic-tool"),toolName:z.string(),toolCallId:z.string(),title:z.string().optional(),toolMetadata:f0.optional(),state:z.literal("output-denied"),input:z.unknown(),providerExecuted:z.boolean().optional(),output:z.never().optional(),errorText:z.never().optional(),callProviderMetadata:g.optional(),approval:z.object({id:z.string(),approved:z.literal(!1),descriptor:z.unknown().optional(),requestReason:z.string().optional(),reason:z.string().optional(),isAutomatic:z.boolean().optional(),signature:z.string().optional()})}),z.object({type:z.string().startsWith("tool-"),toolCallId:z.string(),title:z.string().optional(),toolMetadata:f0.optional(),state:z.literal("input-streaming"),providerExecuted:z.boolean().optional(),callProviderMetadata:g.optional(),input:z.unknown().optional(),output:z.never().optional(),errorText:z.never().optional(),approval:z.never().optional()}),z.object({type:z.string().startsWith("tool-"),toolCallId:z.string(),title:z.string().optional(),toolMetadata:f0.optional(),state:z.literal("input-available"),providerExecuted:z.boolean().optional(),input:z.unknown(),output:z.never().optional(),errorText:z.never().optional(),callProviderMetadata:g.optional(),approval:z.never().optional()}),z.object({type:z.string().startsWith("tool-"),toolCallId:z.string(),title:z.string().optional(),toolMetadata:f0.optional(),state:z.literal("approval-requested"),input:z.unknown(),providerExecuted:z.boolean().optional(),output:z.never().optional(),errorText:z.never().optional(),callProviderMetadata:g.optional(),approval:z.object({id:z.string(),approved:z.never().optional(),descriptor:z.unknown().optional(),requestReason:z.string().optional(),reason:z.never().optional(),isAutomatic:z.boolean().optional(),signature:z.string().optional()})}),z.object({type:z.string().startsWith("tool-"),toolCallId:z.string(),title:z.string().optional(),toolMetadata:f0.optional(),state:z.literal("approval-responded"),input:z.unknown(),providerExecuted:z.boolean().optional(),output:z.never().optional(),errorText:z.never().optional(),callProviderMetadata:g.optional(),approval:z.object({id:z.string(),approved:z.boolean(),descriptor:z.unknown().optional(),requestReason:z.string().optional(),reason:z.string().optional(),isAutomatic:z.boolean().optional(),signature:z.string().optional()})}),z.object({type:z.string().startsWith("tool-"),toolCallId:z.string(),title:z.string().optional(),toolMetadata:f0.optional(),state:z.literal("output-available"),providerExecuted:z.boolean().optional(),input:z.unknown(),output:z.unknown(),errorText:z.never().optional(),callProviderMetadata:g.optional(),resultProviderMetadata:g.optional(),preliminary:z.boolean().optional(),approval:z.object({id:z.string(),approved:z.literal(!0),descriptor:z.unknown().optional(),requestReason:z.string().optional(),reason:z.string().optional(),isAutomatic:z.boolean().optional(),signature:z.string().optional()}).optional()}),z.object({type:z.string().startsWith("tool-"),toolCallId:z.string(),title:z.string().optional(),toolMetadata:f0.optional(),state:z.literal("output-error"),providerExecuted:z.boolean().optional(),input:z.unknown().optional(),rawInput:z.unknown().optional(),output:z.never().optional(),errorText:z.string(),callProviderMetadata:g.optional(),resultProviderMetadata:g.optional(),approval:z.object({id:z.string(),approved:z.literal(!0),descriptor:z.unknown().optional(),requestReason:z.string().optional(),reason:z.string().optional(),isAutomatic:z.boolean().optional(),signature:z.string().optional()}).optional()}),z.object({type:z.string().startsWith("tool-"),toolCallId:z.string(),title:z.string().optional(),toolMetadata:f0.optional(),state:z.literal("output-denied"),providerExecuted:z.boolean().optional(),input:z.unknown(),output:z.never().optional(),errorText:z.never().optional(),callProviderMetadata:g.optional(),approval:z.object({id:z.string(),approved:z.literal(!1),descriptor:z.unknown().optional(),requestReason:z.string().optional(),reason:z.string().optional(),isAutomatic:z.boolean().optional(),signature:z.string().optional()})})]))}).superRefine((Y,J)=>{if(Y.role!=="assistant"&&Y.parts.length===0)J.addIssue({origin:"array",code:"too_small",minimum:1,inclusive:!0,input:Y.parts,path:["parts"],message:"Message must contain at least one part"})})).nonempty("Messages array must not be empty")));var fP=F0({prefix:"call",size:24});var cP=F0({prefix:"call",size:24});var pP=F0({prefix:"call",size:24});var dP=F0({prefix:"aiobj",size:24});function vK(Y){return({url:J,abortSignal:X})=>zB({url:J,maxBytes:Y==null?void 0:Y.maxBytes,abortSignal:X})}var oP=F0({prefix:"aiobj",size:24});var nP=vK();var rP=z.object({token:z.string().refine((Y)=>Y.trim().length>0),url:z.string().refine((Y)=>{try{let J=new URL(Y);return(J.protocol==="ws:"||J.protocol==="wss:")&&J.hostname!==""}catch(J){return!1}}),expiresAt:z.number().positive().max(Number.MAX_SAFE_INTEGER).optional(),tools:z.array(z.object({type:z.literal("function"),name:z.string().min(1),description:z.string().optional(),parameters:z.record(z.string(),z.unknown())})).optional()});var hK="AI_NoSuchProviderError",gK=`vercel.ai.error.${hK}`,_B=Symbol.for(gK),yz,fz,aP=class extends(fz=rJ,yz=_B,fz){constructor({modelId:Y,modelType:J,providerId:X,availableProviders:Q,message:$=`No such provider: ${X} (available providers: ${Q.join()})`}){super({errorName:hK,modelId:Y,modelType:J,message:$});this[yz]=!0,this.providerId=X,this.availableProviders=Q}static isInstance(Y){return R.hasMarker(Y,gK)}};var eP=F0({prefix:"call",size:24});var YE=vK();class m0 extends b9{name="ProviderResponseStreamError";constructor(Y,J){super({message:Y,url:"",requestBodyValues:void 0,cause:J?.cause,isRetryable:J?.retryable??!0})}}var I0={};aJ(I0,{toWebSocketUrl:()=>oB,streamResponsesWebSocket:()=>tB,parseRateLimitSignal:()=>a9,normalizeHeaders:()=>nB,markOversizedFrame:()=>nK,isUpgradeFailure:()=>rB,isOversizedFrame:()=>sB,isAbortError:()=>iX,connectResponsesWebSocket:()=>aB,TERMINAL_AFTER_OUTPUT_MESSAGE:()=>sK,PROTOCOL_HEADER:()=>dK,OpenAIWebSocket:()=>I0,OVERSIZED_FRAME_MESSAGE:()=>aK});function s9(Y){let J=Number(Y.match(/^HTTP\/\d(?:\.\d)?\s+(\d{3})/)?.[1]);return Number.isFinite(J)?J:void 0}function $J(Y,J,X=!1){let $=Buffer.from(Y.slice(0,J)).toString("latin1").split(`\r
|
|
101
|
+
`),G=$[0]??"",W=s9(G);if(W===void 0||W===101)return;let K=Object.fromEntries($.slice(1).flatMap((V)=>{let q=V.indexOf(":");return q===-1?[]:[[V.slice(0,q).trim().toLowerCase(),V.slice(q+1).trim()]]})),Z=Y.slice(J+4),U=K["content-length"],L=Number(U);if(!X&&(U===void 0||Number.isFinite(L)&&Z.length<L))return;let j=Buffer.from(Z).toString("utf8"),N=(()=>{try{let V=JSON.parse(j);return h(V)?V:void 0}catch{return}})();return{message:`WS upgrade failed: ${G}`,status:W,status_code:W,headers:K,body:j,...h(N?.error)?{error:N.error}:{}}}var IB="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",yK=["chatgpt-account-id","authorization","user-agent","originator","openai-beta","version","x-codex-beta-features","x-codex-turn-metadata","x-client-request-id","session-id","thread-id","x-codex-window-id"];class pX{url;readyState=0;socket;sessionID;listeners={open:new Set,message:new Set,error:new Set,close:new Set};rxBuffer=new Uint8Array(0);handshakeDone=!1;upgradeFailureEmitted=!1;expectedAccept="";fragOpcode=0;fragChunks=[];writeQueue=[];constructor(Y,J,X){this.url=Y,this.sessionID=X?.sessionID,this.connect(Y,J)}addEventListener(Y,J,X){this.listeners[Y]?.add(J)}removeEventListener(Y,J){this.listeners[Y]?.delete(J)}peerClose;closeEmitted=!1;emitClose(Y,J){if(this.closeEmitted)return;this.closeEmitted=!0,this.emit("close",{code:Y,reason:J})}emit(Y,J){for(let X of[...this.listeners[Y]??[]])try{X(J)}catch{}}async connect(Y,J){let X=new URL(Y.replace(/^ws:/,"http:").replace(/^wss:/,"https:")),Q=X.hostname,$=X.port?Number(X.port):X.protocol==="https:"?443:80,G=`${X.pathname}${X.search}`,W=crypto.getRandomValues(new Uint8Array(16)),K=Buffer.from(W).toString("base64"),Z=await crypto.subtle.digest("SHA-1",new TextEncoder().encode(K+IB));this.expectedAccept=Buffer.from(new Uint8Array(Z)).toString("base64");let U={};for(let[N,V]of Object.entries(J))U[N.toLowerCase()]=V;let L=[`GET ${G} HTTP/1.1`,`Host: ${Q}`,"Connection: Upgrade","Upgrade: websocket","Sec-WebSocket-Version: 13",`Sec-WebSocket-Key: ${K}`];for(let N of yK)if(U[N]!==void 0)L.push(`${SB(N)}: ${U[N]}`);for(let[N,V]of Object.entries(J))if(!yK.includes(N.toLowerCase())&&N.toLowerCase()!=="content-length")L.push(`${N}: ${V}`);let j=`${L.join(`\r
|
|
102
102
|
`)}\r
|
|
103
103
|
\r
|
|
104
|
-
`;try{this.log("connect_start",{host:Q,port
|
|
104
|
+
`;try{this.log("connect_start",{host:Q,port:$,tls:X.protocol==="https:"});let N=globalThis.Bun?.connect;if(!N)throw Error("Bun.connect is not available");this.socket=await N({hostname:Q,port:$,tls:X.protocol==="https:"?{serverName:Q}:void 0,socket:{open:(V)=>{this.socket=V,this.enqueueWrite(new TextEncoder().encode(j))},data:(V,q)=>this.onData(q),drain:()=>this.flushWrites(),error:(V,q)=>{if(this.emitRejectedUpgrade(!0))return;this.readyState=3;let T=q instanceof Error?q.message:String(q);this.log("socket_error",{message:T}),this.emit("error",{message:T})},close:()=>{if(this.emitRejectedUpgrade(!0))return;this.readyState=3,this.log("socket_close"),this.emitClose(this.peerClose?.code??1006,this.peerClose?.reason??"socket closed")}}})}catch(N){this.readyState=3;let V=N instanceof Error?N.message:String(N);this.log("connect_exception",{message:V}),this.emit("error",{message:V})}}onData(Y){if(this.rxBuffer=kB(this.rxBuffer,Y),!this.handshakeDone){let J=Buffer.from(this.rxBuffer).toString("latin1"),X=J.indexOf(`\r
|
|
105
105
|
\r
|
|
106
|
-
`);if(
|
|
107
|
-
`)[0]??""
|
|
106
|
+
`);if(X===-1)return;let Q=J.slice(0,X),$=Q.split(`\r
|
|
107
|
+
`)[0]??"",G=Q.match(/sec-websocket-accept:\s*(\S+)/i),W=s9($);if(W!==101){if(W===void 0){this.readyState=3;try{this.socket?.end()}catch{}this.log("upgrade_failed",{statusLine:$}),this.emit("error",{message:`WS upgrade failed: ${$}`});return}if(!this.emitRejectedUpgrade())return;try{this.socket?.end()}catch{}return}if(!G||G[1]!==this.expectedAccept){this.readyState=3;try{this.socket?.end()}catch{}this.log("accept_mismatch",{statusLine:$}),this.emit("error",{message:"WS upgrade Sec-WebSocket-Accept mismatch"});return}this.handshakeDone=!0,this.readyState=1,this.rxBuffer=this.rxBuffer.slice(X+4),this.log("open",{statusLine:$}),this.emit("open",{})}this.drainFrames()}emitRejectedUpgrade(Y=!1){if(this.upgradeFailureEmitted)return!0;if(this.handshakeDone)return!1;let J=Buffer.from(this.rxBuffer).indexOf(`\r
|
|
108
108
|
\r
|
|
109
|
-
`);if(
|
|
109
|
+
`);if(J===-1)return!1;let X=$J(this.rxBuffer,J,Y);if(!X)return!1;return this.upgradeFailureEmitted=!0,this.readyState=3,this.log("upgrade_failed",{status:X.status,partial:Y}),this.emit("error",X),!0}drainFrames(){for(;;){let Y=this.rxBuffer;if(Y.length<2)return;let J=Y[0],X=Y[1],Q=(J&128)!==0,$=J&15,G=(X&128)!==0,W=X&127,K=2;if(W===126){if(Y.length<4)return;W=Y[2]<<8|Y[3],K=4}else if(W===127){if(Y.length<10)return;W=0;for(let U=0;U<8;U++)W=W*256+Y[2+U];K=10}if(G)K+=4;if(Y.length<K+W)return;let Z=Y.slice(K,K+W);this.rxBuffer=Y.slice(K+W),this.handleFrame(Q,$,Z)}}handleFrame(Y,J,X){if(J===9){this.writeFrame(10,X);return}if(J===10)return;if(J===8){let $=1005,G="";if(X.length>=2)$=X[0]<<8|X[1],G=Buffer.from(X.slice(2)).toString("utf-8");this.readyState=3,this.peerClose={code:$,reason:G};try{this.socket?.end()}catch{}this.log("close_frame",{code:$,reason:G}),this.emitClose($,G);return}if(J===1||J===2)this.fragOpcode=J,this.fragChunks=[X];else if(J===0)this.fragChunks.push(X);if(!Y)return;let Q=xB(this.fragChunks);if(this.fragChunks=[],this.fragOpcode===1){let $=Buffer.from(Q).toString("utf-8");this.emit("message",{data:$})}}send(Y){if(this.readyState!==1)return;this.writeFrame(1,new TextEncoder().encode(Y))}writeFrame(Y,J){let X=J.length,Q=crypto.getRandomValues(new Uint8Array(4)),$;if(X<126)$=[128|Y,128|X];else if(X<65536)$=[128|Y,254,X>>8&255,X&255];else{$=[128|Y,255];for(let K=7;K>=0;K--)$.push(X/2**(8*K)&255)}let G=new Uint8Array(X);for(let K=0;K<X;K++)G[K]=J[K]^Q[K%4];let W=new Uint8Array($.length+4+X);W.set($,0),W.set(Q,$.length),W.set(G,$.length+4);try{this.enqueueWrite(W)}catch{}}enqueueWrite(Y){this.writeQueue.push(Y),this.flushWrites()}flushWrites(){let Y=this.socket;if(!Y)return;while(this.writeQueue.length>0){let J=this.writeQueue[0],X=Y.write(J);if(X<J.length){this.writeQueue[0]=J.slice(X),this.log("write_backpressure",{written:X,remaining:J.length-X});return}this.writeQueue.shift()}}close(){if(this.readyState===3)return;this.readyState=2;try{this.writeFrame(8,new Uint8Array([3,232])),this.socket?.end()}catch{}this.readyState=3}log(Y,J){return N1({component:"raw-ws-bun",event:Y,sessionID:this.sessionID,url:this.url,...J})}}function SB(Y){return Y}function kB(Y,J){let X=new Uint8Array(Y.length+J.length);return X.set(Y,0),X.set(J,Y.length),X}function xB(Y){let J=0;for(let $ of Y)J+=$.length;let X=new Uint8Array(J),Q=0;for(let $ of Y)X.set($,Q),Q+=$.length;return X}import{connect as bB}from"node:net";import{connect as vB}from"node:tls";var hB="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",fK=["chatgpt-account-id","authorization","user-agent","originator","openai-beta","version","x-codex-beta-features","x-codex-turn-metadata","x-client-request-id","session-id","thread-id","x-codex-window-id"];class lX{url;readyState=0;socket;sessionID;listeners={open:new Set,message:new Set,error:new Set,close:new Set};rxBuffer=new Uint8Array(0);handshakeDone=!1;upgradeFailureEmitted=!1;expectedAccept="";fragOpcode=0;fragChunks=[];constructor(Y,J,X){this.url=Y,this.sessionID=X?.sessionID,this.connect(Y,J)}addEventListener(Y,J,X){this.listeners[Y]?.add(J)}removeEventListener(Y,J){this.listeners[Y]?.delete(J)}peerClose;closeEmitted=!1;emitClose(Y,J){if(this.closeEmitted)return;this.closeEmitted=!0,this.emit("close",{code:Y,reason:J})}emit(Y,J){for(let X of[...this.listeners[Y]??[]])try{X(J)}catch{}}async connect(Y,J){let X=new URL(Y.replace(/^ws:/,"http:").replace(/^wss:/,"https:")),Q=X.hostname,$=X.port?Number(X.port):X.protocol==="https:"?443:80,G=`${X.pathname}${X.search}`,W=crypto.getRandomValues(new Uint8Array(16)),K=Buffer.from(W).toString("base64"),Z=await crypto.subtle.digest("SHA-1",new TextEncoder().encode(K+hB));this.expectedAccept=Buffer.from(new Uint8Array(Z)).toString("base64");let U={};for(let[N,V]of Object.entries(J))U[N.toLowerCase()]=V;let L=[`GET ${G} HTTP/1.1`,`Host: ${Q}`,"Connection: Upgrade","Upgrade: websocket","Sec-WebSocket-Version: 13",`Sec-WebSocket-Key: ${K}`];for(let N of fK)if(U[N]!==void 0)L.push(`${gB(N)}: ${U[N]}`);for(let[N,V]of Object.entries(J))if(!fK.includes(N.toLowerCase())&&N.toLowerCase()!=="content-length")L.push(`${N}: ${V}`);let j=`${L.join(`\r
|
|
110
110
|
`)}\r
|
|
111
111
|
\r
|
|
112
|
-
`;try{this.log("connect_start",{host:Q,port
|
|
112
|
+
`;try{this.log("connect_start",{host:Q,port:$,tls:X.protocol==="https:"});let N=()=>{this.socket?.write(j)},V=X.protocol==="https:"?vB({host:Q,port:$,servername:Q},N):bB({host:Q,port:$},N);this.socket=V,V.on("data",(q)=>{this.onData(typeof q==="string"?Buffer.from(q,"binary"):q)}),V.on("error",(q)=>{if(this.emitRejectedUpgrade(!0))return;this.readyState=3;let T=q instanceof Error?q.message:String(q);this.log("socket_error",{message:T}),this.emit("error",{message:T})}),V.on("close",(q)=>{if(this.emitRejectedUpgrade(!0))return;this.readyState=3,this.log("socket_close",{hadError:q}),this.emitClose(this.peerClose?.code??1006,this.peerClose?.reason??"socket closed")})}catch(N){this.readyState=3,this.log("connect_exception",{message:N instanceof Error?N.message:String(N)}),this.emit("error",{message:N instanceof Error?N.message:String(N)})}}onData(Y){if(this.rxBuffer=yB(this.rxBuffer,Y),!this.handshakeDone){let J=Buffer.from(this.rxBuffer).toString("latin1"),X=J.indexOf(`\r
|
|
113
113
|
\r
|
|
114
|
-
`);if(
|
|
115
|
-
`)[0]??""
|
|
114
|
+
`);if(X===-1)return;let Q=J.slice(0,X),$=Q.split(`\r
|
|
115
|
+
`)[0]??"",G=Q.match(/sec-websocket-accept:\s*(\S+)/i),W=s9($);if(W!==101){if(W===void 0){this.readyState=3,this.socket?.destroy?.(),this.log("upgrade_failed",{statusLine:$}),this.emit("error",{message:`WS upgrade failed: ${$}`});return}if(!this.emitRejectedUpgrade())return;this.socket?.destroy?.();return}if(!G||G[1]!==this.expectedAccept){this.readyState=3,this.socket?.destroy?.(),this.log("accept_mismatch",{statusLine:$}),this.emit("error",{message:"WS upgrade Sec-WebSocket-Accept mismatch"});return}this.handshakeDone=!0,this.readyState=1,this.rxBuffer=this.rxBuffer.slice(X+4),this.log("open",{statusLine:$}),this.emit("open",{})}this.drainFrames()}emitRejectedUpgrade(Y=!1){if(this.upgradeFailureEmitted)return!0;if(this.handshakeDone)return!1;let J=Buffer.from(this.rxBuffer).indexOf(`\r
|
|
116
116
|
\r
|
|
117
|
-
`);if(
|
|
117
|
+
`);if(J===-1)return!1;let X=$J(this.rxBuffer,J,Y);if(!X)return!1;return this.upgradeFailureEmitted=!0,this.readyState=3,this.log("upgrade_failed",{status:X.status,partial:Y}),this.emit("error",X),!0}drainFrames(){for(;;){let Y=this.rxBuffer;if(Y.length<2)return;let J=Y[0],X=Y[1],Q=(J&128)!==0,$=J&15,G=(X&128)!==0,W=X&127,K=2;if(W===126){if(Y.length<4)return;W=Y[2]<<8|Y[3],K=4}else if(W===127){if(Y.length<10)return;W=0;for(let U=0;U<8;U++)W=W*256+Y[2+U];K=10}if(G)K+=4;if(Y.length<K+W)return;let Z=Y.slice(K,K+W);this.rxBuffer=Y.slice(K+W),this.handleFrame(Q,$,Z)}}handleFrame(Y,J,X){if(J===9){this.writeFrame(10,X);return}if(J===10)return;if(J===8){let $=1005,G="";if(X.length>=2)$=X[0]<<8|X[1],G=Buffer.from(X.slice(2)).toString("utf-8");this.readyState=3,this.peerClose={code:$,reason:G};try{this.socket?.end()}catch{}this.log("close_frame",{code:$,reason:G}),this.emitClose($,G);return}if(J===1||J===2)this.fragOpcode=J,this.fragChunks=[X];else if(J===0)this.fragChunks.push(X);if(!Y)return;let Q=fB(this.fragChunks);if(this.fragChunks=[],this.fragOpcode===1){let $=Buffer.from(Q).toString("utf-8");this.emit("message",{data:$})}}send(Y){if(this.readyState!==1)return;this.writeFrame(1,new TextEncoder().encode(Y))}writeFrame(Y,J){let X=J.length,Q=crypto.getRandomValues(new Uint8Array(4)),$;if(X<126)$=[128|Y,128|X];else if(X<65536)$=[128|Y,254,X>>8&255,X&255];else{$=[128|Y,255];for(let K=7;K>=0;K--)$.push(X/2**(8*K)&255)}let G=new Uint8Array(X);for(let K=0;K<X;K++)G[K]=J[K]^Q[K%4];let W=new Uint8Array($.length+4+X);W.set($,0),W.set(Q,$.length),W.set(G,$.length+4);try{this.socket?.write(W)}catch{}}close(){if(this.readyState===3)return;this.readyState=2;try{this.writeFrame(8,new Uint8Array([3,232])),this.socket?.end()}catch{}this.readyState=3}log(Y,J){return N1({component:"raw-ws-node",event:Y,sessionID:this.sessionID,url:this.url,...J})}}function gB(Y){return Y}function yB(Y,J){let X=new Uint8Array(Y.length+J.length);return X.set(Y,0),X.set(J,Y.length),X}function fB(Y){let J=0;for(let $ of Y)J+=$.length;let X=new Uint8Array(J),Q=0;for(let $ of Y)X.set($,Q),Q+=$.length;return X}function mB(){return typeof globalThis.Bun?.connect==="function"}var mK=mB()?pX:lX;function GJ(Y){return process.env[Y]??process.env[Y.toLowerCase()]}function cB(Y){let J=GJ("NO_PROXY");if(!J)return!1;let X=Y.hostname.toLowerCase(),Q=J.split(",").map(($)=>$.trim().toLowerCase()).filter(Boolean);for(let $ of Q){if($==="*")return!0;if($.startsWith(".")){if(X===$.slice(1)||X.endsWith($))return!0}else if(X===$||X.endsWith(`.${$}`))return!0}return!1}function uB(Y){let J=new URL(Y);if(cB(J))return;if(J.protocol==="http:")return GJ("HTTP_PROXY");if(J.protocol==="https:")return GJ("HTTPS_PROXY")??GJ("HTTP_PROXY");return}var cK={getProxyForUrl:uB};var pB=B0("quota"),WJ=B0("transport"),dK="responses_websockets=2026-02-06",uK=["chatgpt-account-id","authorization","user-agent","originator","openai-beta","version","x-codex-beta-features","x-codex-turn-metadata","x-client-request-id","session-id","thread-id","x-codex-window-id"],lB=new Set([w1,"x-opencode-title"]);function dB(Y){let J=new Map;for(let Q of Object.keys(Y))J.set(Q.toLowerCase(),Q);let X={};for(let Q of uK){let $=J.get(Q),G=$===void 0?void 0:Y[$];if($!==void 0&&G!==void 0)X[$]=G}for(let[Q,$]of Object.entries(Y))if(!uK.includes(Q.toLowerCase()))X[Q]=$;return X}function iB(Y){let J={};for(let[X,Q]of Object.entries(Y)){if(lB.has(X.toLowerCase()))continue;J[X]=Q}return J}function oB(Y){return Y.replace(/^http/,"ws")}function nB(Y){let J={};if(!Y)return J;if(Y instanceof Headers)return Y.forEach((X,Q)=>{J[Q.toLowerCase()]=X}),J;if(Array.isArray(Y)){for(let[X,Q]of Y)J[X.toLowerCase()]=Q;return J}for(let[X,Q]of Object.entries(Y))if(Q!=null)J[X.toLowerCase()]=String(Q);return J}function iX(Y){return Y instanceof DOMException&&Y.name==="AbortError"}var iK=new WeakSet;function rB(Y){return typeof Y==="object"&&Y!==null&&iK.has(Y)}var oK=new WeakSet;function sB(Y){return typeof Y==="object"&&Y!==null&&oK.has(Y)}function nK(Y){return oK.add(Y),Y}function pK(Y,J){let X=Error(Y,J===void 0?void 0:{cause:J});return iK.add(X),X}function aB(Y){return new Promise((J,X)=>{if(Y.signal?.aborted){X(dX(Y.signal));return}let Q={...Y.headers,"openai-beta":Y.headers["openai-beta"]??dK},$=Q[w1]??Q["session-id"];delete Q["content-length"],Q=dB(iB(Q));let G=typeof Bun>"u"?void 0:cK.getProxyForUrl(Y.url.replace(/^wss:/,"https:").replace(/^ws:/,"http:")),W=!0,K=Y.rawWebSocket?new mK(Y.url,Q,{sessionID:$}):new globalThis.WebSocket(Y.url,{headers:Q,...G?{proxy:G}:{},perMessageDeflate:W}),Z=Y.timeout?setTimeout(()=>{U(),K.close(),X(Error("WebSocket connect timed out"))},Y.timeout):void 0;function U(){if(Z)clearTimeout(Z);K.removeEventListener("open",L),K.removeEventListener("error",j),K.removeEventListener("close",N),Y.signal?.removeEventListener("abort",V)}function L(){U(),J(K)}function j(q){U(),X(pK(t9(q),q))}function N(q){U(),X(pK(tK("WebSocket closed before open",q.code,q.reason)))}function V(){U(),K.close(),X(dX(Y.signal))}K.addEventListener("open",L,{once:!0}),K.addEventListener("error",j,{once:!0}),K.addEventListener("close",N,{once:!0}),Y.signal?.addEventListener("abort",V,{once:!0})})}function tB(Y){let J=new TextEncoder,X=Y.socket,Q,$=()=>{},G=!1,W=0,K=!1,Z=!1,U,L=[],j=12,N=typeof Y.body.previous_response_id==="string"?Y.body.previous_response_id:void 0,V=typeof Y.body.prompt_cache_key==="string"?Y.body.prompt_cache_key:void 0,q={sessionID:Y.sessionID,codexSessionID:V},T,S=0,c,_=new Set;function E(){if(U)clearTimeout(U);$(),Y.signal?.removeEventListener("abort",u)}function b(B=X){B.close()}function f(){E(),Q?.enqueue(J.encode(`data: [DONE]
|
|
118
118
|
|
|
119
|
-
`)),Q?.close()}function
|
|
119
|
+
`)),Q?.close()}function o(B){N0(B,B)}function t(B){let D={...q,openingFrameTypes:L,responseID:T,previousResponseID:N,hasContinuation:N!==void 0,framesSinceCreated:S,msSinceLastFrame:c===void 0?void 0:Date.now()-c};if(Z){let w=sK;WJ.warn("stream failed after output; not retried",{reason:B.message,emittedOutput:!0,...D}),N0(Error(w,{cause:B}),new m0(w,{cause:B}));return}WJ.warn("stream failed before output; retryable",{reason:B.message,emittedOutput:!1,...D}),o(B)}function N0(B,D){if(G)return;G=!0,E(),Y.onConnectionInvalid?.(D),Q?.error(B)}function W0(B){if(G)return;if(!Y.idleTimeout)return;if(U)clearTimeout(U);U=setTimeout(()=>t(new m0(B)),Y.idleTimeout)}async function O0(B){if(G)return;if(typeof B.data!=="string"){t(new m0("Unexpected binary WebSocket frame"));return}let D=B.data,w=(()=>{try{let r=JSON.parse(D);return typeof r==="object"&&r!==null?r:void 0}catch{return}})();if(w?.type==="codex.rate_limits"){pB.debug("codex.rate_limits frame received",{pid:process.pid}),W0("idle timeout waiting for websocket");let r=lK(w);Y.onQuota?.(r);return}let m=!Z?a9(w):void 0;if(m&&w){G=!0,E(),Y.onRateLimitReached?.(m.window,m.resetAt),Y.onTerminal?.(w),Y.onFirstEvent?.(),Q?.error(new m0(`OpenAI account rate limit reached at admission (${m.window})`));return}if(w?.type==="error"&&Y.onRetryableTerminal){if($(),U)clearTimeout(U);U=void 0;try{let r=await Y.onRetryableTerminal(w);if(G){if(r)b(r);return}if(r){A(r);return}}catch(r){t(new m0(r instanceof Error?r.message:String(r),{cause:r}));return}}let p=QF(w,D);if(p&&w){if(!K)Y.onFirstEvent?.(p);G=!0,E(),Y.onTerminal?.(w);let r=new b9({message:p.message,url:X.url,requestBodyValues:Y.body,statusCode:p.status,responseHeaders:p.headers,responseBody:p.body});Q?.error(Z?Error(r.message,{cause:r}):r);return}if(h(w)&&w.type==="response.failed"){let r=h(w.response)?w.response.failed:void 0,v0=h(r)?r.rate_limit_reached_type:void 0;if(typeof v0==="string"){if(G=!0,E(),Y.onRateLimitReached?.(v0),Y.onTerminal?.(w),!Z)Y.onFirstEvent?.(),Q?.error(new m0(`OpenAI account rate limit reached mid-stream (${v0})`));else f();return}}if(w)eB(w,Y.sessionID),JF(w,_);let n=w?lJ(w):w;if(!n){if(!K)Y.onFirstEvent?.();W0("idle timeout waiting for websocket");return}let z0=n===w?D:JSON.stringify(n);if(!K)Y.onFirstEvent?.();if(Q?.enqueue(J.encode(`${z0.split(/\r?\n/).map((r)=>`data: ${r}`).join(`
|
|
120
120
|
`)}
|
|
121
121
|
|
|
122
|
-
`)),z=!0,R=Date.now(),O!==void 0)C++;if(H.length<B)H.push(String($0.type));if($0.type==="response.created")O=eZ($0),A9.debug("response created",{...j,responseID:O,previousResponseID:V,hasContinuation:V!==void 0});if(!YV($0.type))L=!0;if(Q0("idle timeout waiting for websocket"),!$0)return;if($0.type==="response.completed"||$0.type==="response.done"){$=!0,rZ($0,D),Y.onComplete?.($0,D),Y.onTerminal?.($0),g();return}if($0.type==="response.failed"||$0.type==="response.incomplete"||$0.type==="error")$=!0,Y.onTerminal?.($0),g()}function S0(w){l(new _0(T1(w),{cause:w}))}function PY(w){if($)return;let p=w.code===1009,f=new _0(p?Z4:V4("WebSocket closed before response.completed",w.code,w.reason),{retryable:!p});if(p)A9.warn("websocket peer refused the request size",{...j,requestBytes:W,reason:w.reason.toString()});l(p?L4(f):f)}function K0(){let w=eX(Y.signal);if($)return;$=!0,E(),T(),Y.onAbort?.(w),Q?.error(w)}function MY(w){if($)return;$=!0,E(),T(),Y.onAbort?.(aZ(w))}function r0(w){G(),J=w,J.addEventListener("message",c),J.addEventListener("error",S0,{once:!0}),J.addEventListener("close",PY,{once:!0}),G=()=>{J.removeEventListener("message",c),J.removeEventListener("error",S0),J.removeEventListener("close",PY)};let{background:p,...f}=Y.body;Q0("idle timeout sending websocket request");try{let U0=JSON.stringify({type:"response.create",...f});W=U0.length,J.send(U0),Q0("idle timeout waiting for websocket")}catch(U0){if($)return;u(new _0(U0 instanceof Error?U0.message:String(U0),{cause:U0}))}}return new Response(new ReadableStream({start(w){if(Q=w,Y.signal?.addEventListener("abort",K0,{once:!0}),Y.signal?.aborted){K0();return}r0(J)},cancel(w){MY(w)}}),{status:200,headers:{"content-type":"text/event-stream"}})}async function iZ(Y,X){if(!oZ(Y))return;await e0({component:"ws",event:"provider_native_web_search_event",sessionID:X,serverEventType:Y.type,itemType:k(Y.item)?Y.item.type:void 0,serverEvent:Y})}function oZ(Y){if(typeof Y.type==="string"&&(Y.type.startsWith("response.web_search_call.")||Y.type.startsWith("response.web_search_preview_call.")))return!0;if(k(Y.item)&&typeof Y.item.type==="string")return Y.item.type==="web_search_call"||Y.item.type==="web_search_preview_call";return!1}function nZ(Y,X){if(Y.type!=="response.output_item.done")return;if(!k(Y.item))return;H4(Y.item,X)}function rZ(Y,X){let J=Y.response;if(!k(J)||!Array.isArray(J.output))return;for(let Q of J.output)if(k(Q))H4(Q,X)}function H4(Y,X){if(Y.type!=="function_call"&&Y.type!=="custom_tool_call")return;let J=typeof Y.call_id==="string"?Y.call_id:typeof Y.id==="string"?Y.id:void 0;if(J)X.add(J)}function sZ(Y,X){if(Y?.type!=="error")return;let J=Y.status??Y.status_code;if(typeof J!=="number"||J>=200&&J<300)return;return{status:J,headers:k(Y.headers)?Object.fromEntries(Object.entries(Y.headers).flatMap(([Q,G])=>typeof G==="string"||typeof G==="number"||typeof G==="boolean"?[[Q,String(G)]]:[])):void 0,body:X,message:k(Y.error)&&typeof Y.error.message==="string"?Y.error.message:`${J}`}}function A1(Y){if(typeof Y==="string")try{return A1(JSON.parse(Y))}catch{return}if(!k(Y))return;let X=A1(Y.cause);if(X)return X;let J=A1(Y.body);if(J)return J;let Q=k(Y.error)?Y.error:Y,G=typeof Q.type==="string"?Q.type:void 0,$=Y.status??Y.status_code;if(G!=="usage_limit_reached"&&$!==429)return;let{resets_at:W,resets_in_seconds:z}=Q,L=typeof W==="number"&&Number.isFinite(W)&&W>0?W*1000:typeof z==="number"&&Number.isFinite(z)&&z>0?Date.now()+z*1000:void 0;return{window:G??"primary",resetAt:L}}function aZ(Y){if(Y8(Y))return Y;if(Y instanceof Error)return Y;return new DOMException(typeof Y==="string"?Y:"Aborted","AbortError")}function eX(Y){let X=Y?.reason;if(Y8(X))return X;if(tZ(X))return X;return new DOMException(X instanceof Error?X.message:"Aborted","AbortError")}function tZ(Y){return Y instanceof Error&&(Y.name==="ProviderHeaderTimeoutError"||Y.name==="ProviderResponseStreamError")}function eZ(Y){let X=Y.response;if(!k(X))return;return typeof X.id==="string"?X.id:void 0}function YV(Y){return Y==="response.created"||Y==="response.in_progress"||Y.startsWith("codex.")}var N4="The response ended early after part of it had already been shown. It was not sent again, because repeating it would duplicate that output and re-run any tools it had started. The transport log records what ended it.",Z4="The request was larger than the websocket would carry, so it was sent over HTTP instead. Resending it unchanged over the same socket cannot succeed. The transport log records the size.";function V4(Y,X,J){let Q=[`code ${X}`];if(J.length>0)Q.push(J.toString());return`${Y} (${Q.join(": ")})`}var J8="x-opencode-title",T9="x-openai-auth-quota-account",X8=new Set([J8,LY,T9,"x-opencode-session"]),JV=15000,QV=300000,GV=3300000,B4="websocket_connection_limit_reached";function $V(Y){let X=typeof Y["chatgpt-account-id"]==="string"?Y["chatgpt-account-id"]:"",J=typeof Y.authorization==="string"&&Y.authorization.startsWith("Bearer ")?Y.authorization.slice(7):"",Q=X?`acct:${X}`:`tok:${J}`;return XV("sha256").update(Q).digest("hex").slice(0,12)}function WV(Y){let X=Y?.httpFetch??globalThis.fetch,J=new Map,Q=Y?.connectTimeout??JV,G=Y?.idleTimeout??QV,$=Y?.maxConnectionAge??GV,W=Y?.streamRetries??5,z=Y?.firstEventGraceMs??250,L=Y?.rawWebSocket??!1,U=Y?.onQuota,H=Y?.onRateLimitReached,B=setInterval(()=>O(),Math.min(G,60000));if(typeof B==="object"&&"unref"in B&&typeof B.unref==="function")B.unref();function V(D,E,T){if(!E||!T)return T;Q8(D,F4(E));let g=new Headers(T.headers),u=g.get("x-codex-turn-metadata");if(!u)return T;let l=w4(u,D.turnID,D.turnStartedAt);if(!l)return T;return g.set("x-codex-turn-metadata",l),{...T,headers:g}}async function Z(D,E){let T=D instanceof URL?D.toString():typeof D==="string"?D:D.url,g=P0.normalizeHeaders(E?.headers),u=R4(E),l=s1(u);if(E?.method!=="POST"||!new URL(T).pathname.endsWith("/responses"))return X(D,l);let T0=(()=>{try{if(typeof E?.body!=="string")return;let p=JSON.parse(E.body);return typeof p==="object"&&p!==null?p:void 0}catch{return}})();if(!T0?.stream)return X(D,l);if(g[J8]==="true")return X(D,l);let Q0=g[LY]??g["x-session-affinity"]??g["session-id"],c=Q0;if(!Q0)return X(D,l);let S0=P0.normalizeHeaders(u?.headers),PY=$V(S0),K0=`${Q0}:${PY}:conversation`,MY=typeof g[T9]==="string"?g[T9]:void 0,r0=H?(p,f)=>H(p,MY,f):void 0,w=J.get(K0)??{lastUsedAt:Date.now(),busy:!1,fallback:!1,streamFailures:0};if(J.set(K0,w),w.fallback)return X(D,V(w,T0,l));if(w.busy)return X(D,V(w,T0,l));w.busy=!0,w.lastUsedAt=Date.now();try{let p=F4(T0),f=P0.normalizeHeaders(u?.headers),U0=typeof f.authorization==="string"&&f.authorization.startsWith("Bearer ")?f.authorization.slice(7):"",u0=typeof f["chatgpt-account-id"]==="string"?f["chatgpt-account-id"]:void 0,$0=U?(W0)=>U(W0,U0,MY,u0):void 0,WY=!w.socket&&!w.continuation?BV(f):f;if(w.socket=await LV(w,Y?.url??T,WY,Q,$,L,E?.signal),jV(w,p))await HV(w,p,G,{signal:E?.signal??void 0,sessionID:c,url:Y?.url??T,headers:u?.headers,onRateLimitReached:r0});let n=()=>{},R0=()=>{},bY=new Promise((W0,l0)=>{n=W0,R0=l0}),KY=qV(w,p),s0=R1(E4(w,KY,p)),I9=typeof s0.previous_response_id==="string";await yY({sessionID:c,transport:"websocket",phase:"main",bodyText:JSON.stringify(s0),url:Y?.url??T,method:u?.method,headers:u?.headers});let zY=P0.streamResponsesWebSocket({socket:w.socket,body:s0,sessionID:c??void 0,idleTimeout:G,signal:E?.signal??void 0,onQuota:$0,onRateLimitReached:r0,onFirstEvent:(W0)=>n(W0??!0),onComplete:(W0,l0)=>{let EY=j4(W0);e0({component:"ws-pool",event:"main_completed",sessionID:c,responseID:q4(W0),usage:EY}),M4(w,p,W0,l0,I9)},onTerminal:(W0)=>{if(w.busy=!1,w.lastUsedAt=Date.now(),w.streamFailures=0,W0.type!=="response.completed"&&W0.type!=="response.done")w.continuation=void 0,$Y(w)},onConnectionInvalid:(W0)=>{if(w.busy=!1,w.lastUsedAt=Date.now(),P0.isOversizedFrame(W0))w.fallback=!0;if(!w.fallback)j(w);w.continuation=void 0,$Y(w),n(!1)},onAbort:(W0)=>{w.busy=!1,w.lastUsedAt=Date.now(),w.streamFailures=0,w.continuation=void 0,$Y(w),R0(W0)},onRetryableTerminal:async(W0)=>{let l0=O4(W0);if(!l0)return;throw w.fallback=!0,l0}}),X0=await KV(bY,z);if(X0!==!1){if(X0===!0||X0.status<200||X0.status>599)return zY;return new Response(X0.body,{status:X0.status,headers:{"content-type":"application/json",...X0.headers}})}let p0=()=>X(D,V(w,T0,l));if(!w.fallback)return zV(zY,p0);return p0()}catch(p){if(w.busy=!1,w.lastUsedAt=Date.now(),P0.isAbortError(p))throw w.streamFailures=0,w.continuation=void 0,$Y(w),p;let f=P0.parseRateLimitSignal(p);if(f)r0?.(f.window,f.resetAt);if(P0.isUpgradeFailure(p)&&!L)w.fallback=!0;if(j(w),w.continuation=void 0,$Y(w),w.fallback)return X(D,V(w,T0,l));return UV(new _0(p instanceof Error?p.message:String(p),{cause:p}))}}function j(D){if(D.streamFailures++,D.streamFailures>W)D.fallback=!0}function O(){let D=Date.now();for(let[E,T]of J){if(T.busy)continue;if(D-T.lastUsedAt<G)continue;$Y(T),J.delete(E)}}function C(){clearInterval(B);for(let D of J.values())$Y(D);J.clear()}function R(D){let E=`${D}:`;for(let[T,g]of J){if(!T.startsWith(E))continue;$Y(g),J.delete(T)}}return Object.assign(Z,{close:C,remove:R})}function O4(Y){if(Y.type!=="error"||!k(Y.error)||Y.error.code!==B4)return;return Error(typeof Y.error.message==="string"?Y.error.message:B4)}async function KV(Y,X){if(X<=0)return!1;return new Promise((J,Q)=>{let G=setTimeout(()=>J(!1),X);Y.then(($)=>{clearTimeout(G),J($)},($)=>{clearTimeout(G),Q($)})})}function zV(Y,X){let J=Y.body;if(!J)return Y;let Q=!1,G=new ReadableStream({async start($){let W=J.getReader(),z=async(L)=>{while(!0){let{done:U,value:H}=await L.read();if(U)return;if(H&&H.length>0)Q=!0,$.enqueue(H)}};try{await z(W),$.close()}catch(L){if(Q||!P0.isOversizedFrame(L)){$.error(L);return}try{let U=await X();if(!U.ok){$.error(new _0(`HTTP fallback after an oversized WebSocket frame failed with ${U.status}`));return}if(U.body)await z(U.body.getReader());$.close()}catch(U){$.error(U)}}},cancel($){J.cancel($)}});return new Response(G,{status:Y.status,headers:Y.headers})}function UV(Y){return new Response(new ReadableStream({start(X){X.error(Y)}}),{status:200,headers:{"content-type":"text/event-stream"}})}async function LV(Y,X,J,Q,G,$,W){if(Y.socket?.readyState===WebSocket.OPEN&&Y.connectedAt&&Date.now()-Y.connectedAt<G)return Y.socket;$Y(Y);let z=await P0.connectResponsesWebSocket({url:P0.toWebSocketUrl(X),headers:J,timeout:Q,rawWebSocket:$,signal:W??void 0});return Y.connectedAt=Date.now(),z}function $Y(Y){if(Y.socket)Y.socket.close(),Y.socket=void 0;Y.connectedAt=void 0,Y.continuation=void 0}async function HV(Y,X,J,Q){if(!Y.socket||!Array.isArray(X.input)||X.input.length===0)return;let G=ZV(X);await yY({sessionID:Q.sessionID,transport:"websocket",phase:"prewarm",bodyText:JSON.stringify(G),url:Q.url,method:"POST",headers:Q.headers});let $=P0.streamResponsesWebSocket({socket:Y.socket,body:G,sessionID:Q.sessionID,idleTimeout:J,signal:Q.signal,onRateLimitReached:Q.onRateLimitReached,onComplete:(W,z)=>{e0({component:"ws-pool",event:"prewarm_completed",sessionID:Q.sessionID,responseID:q4(W),usage:j4(W)}),M4(Y,G,W,z,!1)},onTerminal:(W)=>{if(W.type!=="response.completed"&&W.type!=="response.done")Y.continuation=void 0},onConnectionInvalid:()=>{Y.continuation=void 0},onAbort:()=>{Y.continuation=void 0},onRetryableTerminal:async(W)=>{let z=O4(W);if(!z)return;throw Y.fallback=!0,z}});await NV($)}function q4(Y){let X=Y.response;if(!k(X))return;return typeof X.id==="string"?X.id:void 0}function j4(Y){let X=Y.response;if(!k(X))return;return k(X.usage)?X.usage:void 0}async function NV(Y){let X=Y.body?.getReader();if(!X)return;while(!0)if((await X.read()).done)return}function ZV(Y){return R1({...Y,generate:!1,input:[],previous_response_id:void 0,client_metadata:VV(Y.client_metadata)})}function D4(Y){return JSON.stringify({session_id:Y.session_id,thread_id:Y.thread_id,thread_source:Y.thread_source,turn_id:"",sandbox:Y.sandbox,request_kind:"prewarm",window_id:Y.window_id})}function VV(Y){if(!k(Y))return Y;if(typeof Y["x-codex-turn-metadata"]!=="string")return Y;try{let X=JSON.parse(Y["x-codex-turn-metadata"]);if(!k(X))return Y;return{...Y,"x-codex-turn-metadata":D4(X),"x-codex-ws-stream-request-start-ms":String(Date.now())}}catch{return Y}}function BV(Y){let X=Y["x-codex-turn-metadata"];if(!X)return Y;try{let J=JSON.parse(X);if(!k(J))return Y;return{...Y,"x-codex-turn-metadata":D4(J)}}catch{return Y}}var P4=["type","model","instructions","previous_response_id","input","tools","tool_choice","parallel_tool_calls","reasoning","store","stream","include","prompt_cache_key","text","generate","client_metadata"];function F4(Y){let X={...Y};if(Array.isArray(Y.input))X.input=Y.input.map(FV);return X}function R1(Y){let X={};for(let J of P4)if(J in Y)X[J]=Y[J];for(let J of Object.keys(Y))if(!(J in X))X[J]=Y[J];return X}function FV(Y){if(!k(Y))return Y;if(typeof Y.type==="string")return Y;if(typeof Y.role!=="string")return Y;if(!("content"in Y))return Y;return{...Y,type:"message"}}function M4(Y,X,J,Q,G){let $=J.response,W=k($)&&typeof $.id==="string"?$.id:void 0;if(!W||!Array.isArray(X.input)){Y.continuation=void 0;return}let z=G?new Set(Y.continuation?.finalizedCallIds):new Set;for(let L of Q)z.add(L);Y.continuation={responseID:W,input:X.input,signature:G8(X),finalizedCallIds:z}}function Q8(Y,X,J=X){let Q=Array.isArray(X.input)?X.input:[],G=Array.isArray(J.input)?J.input:Q,$=G8(J),W=Y.turnInput&&Y.turnSignature===$?OV(Y.turnInput,G):void 0,z=W===void 0?Q:G.slice(W);if(z.length>0&&z.some(A4)||!Y.turnID)Y.turnID=RY(),Y.turnStartedAt=Date.now();Y.turnInput=G.slice(),Y.turnSignature=$}function E4(Y,X,J=X){Q8(Y,X,J);let Q=X.client_metadata;if(!k(Q)||typeof Q["x-codex-turn-metadata"]!=="string")return X;let G=w4(Q["x-codex-turn-metadata"],Y.turnID,Y.turnStartedAt);if(!G)return X;return{...X,client_metadata:{...Q,"x-codex-turn-metadata":G}}}function w4(Y,X,J){let Q;try{Q=JSON.parse(Y)}catch{return}if(!k(Q))return;return JSON.stringify({session_id:Q.session_id,thread_id:Q.thread_id,thread_source:Q.thread_source,turn_id:X,sandbox:Q.sandbox,turn_started_at_unix_ms:J,request_kind:"turn",window_id:Q.window_id})}function OV(Y,X){if(Y.length>X.length)return;for(let J=0;J<Y.length;J++)if(YY(Y[J])!==YY(X[J]))return;return Y.length}function qV(Y,X){let J=Array.isArray(X.input)?X.input:void 0;if(!J||!Y.continuation)return X;if(Y.continuation.signature!==G8(X))return Y.continuation=void 0,X;if(!T4(Y.continuation.input,J))return Y.continuation=void 0,X;if(Y.continuation.input.length===0)return{...X,previous_response_id:Y.continuation.responseID};let Q=J.slice(Y.continuation.input.length),G=DV(Q,Y.continuation.finalizedCallIds);if(G.length===0)return X;return{...X,previous_response_id:Y.continuation.responseID,input:G}}function jV(Y,X){let J=Array.isArray(X.input)?X.input:void 0;if(!Y.continuation)return!0;if(!J)return!1;if(!T4(Y.continuation.input,J))return!0;return J.slice(Y.continuation.input.length).some(A4)}function A4(Y){if(!k(Y))return!1;if(!(Y.type==="message"||("role"in Y)))return!1;return Y.role==="user"||Y.role==="developer"}function DV(Y,X){return Y.filter((J)=>{if(!k(J))return!0;if(typeof J.type==="string"&&J.type.endsWith("_output"))return!0;if(J.type==="function_call_output"||J.type==="custom_tool_call_output")return!0;if(J.type==="function_call"||J.type==="custom_tool_call"){let Q=typeof J.call_id==="string"?J.call_id:typeof J.id==="string"?J.id:void 0;return Q?!X.has(Q):!0}if(J.type==="message")return J.role!=="assistant";if(typeof J.role==="string")return J.role!=="assistant";return!1})}function G8(Y){return YY(PV(Object.fromEntries(Object.entries(Y).filter(([X])=>X!=="input"&&X!=="stream"&&X!=="background"&&X!=="previous_response_id"&&X!=="generate"))))}function PV(Y){if(!k(Y.client_metadata))return Y;let X=Object.fromEntries(Object.entries(Y.client_metadata).filter(([J])=>J!=="x-codex-turn-metadata"&&J!=="x-codex-ws-stream-request-start-ms"));return{...Y,client_metadata:X}}function T4(Y,X){if(Y.length>=X.length)return!1;for(let J=0;J<Y.length;J++)if(YY(Y[J])!==YY(X[J]))return!1;return!0}function R4(Y){if(!Y?.headers)return Y;if(Y.headers instanceof Headers){let X=new Headers(Y.headers);for(let J of X8)X.delete(J);return{...Y,headers:X}}if(Array.isArray(Y.headers))return{...Y,headers:Y.headers.filter((X)=>!X8.has(X[0].toLowerCase()))};return{...Y,headers:Object.fromEntries(Object.entries(Y.headers).filter(([X])=>!X8.has(X.toLowerCase())))}}var CV=new Set(["gpt-5.5","gpt-5.3-codex-spark","gpt-5.4","gpt-5.4-mini"]),IV=new Set(["gpt-5.6","gpt-6"]),_V=new Set(["gpt-5.6-sol","gpt-5.6-terra","gpt-5.6-luna","gpt-6-astra"]),SV="opencode-oauth-dummy-key",kV="terminal_resize_reflow",z8="0.153.0",xV=`codex_exec/${z8} (Debian 12.0.0; aarch64) unknown (codex_exec; ${z8})`,bV="seccomp",vV="main-refresh",hV=120000,gV=90000,yV=4000,C4=50,I4=3,fV=25,mV=60000,cV="__OPENCODE_OPENAI_AUTH_COMMAND_HANDLED__",_4=!1,S4=D0("models"),k4=!1,x4=!1;class L8 extends Error{code="OPENAI_AUTH_PERSIST_FAILED";constructor(Y){super("OpenAI OAuth token refreshed but could not be persisted; re-login required",{cause:Y});this.name="AuthPersistError"}}class n0 extends Error{code;constructor(Y,X){super(X);this.name="ResetTargetResolutionError",this.code=Y}}function b4(Y,X,J,Q){let G=(J?.refresh?.refreshBeforeExpiryMinutes??240)*60000;return!Y||!X||X-Q<=G}function uV(Y){return async(X)=>{if(X==="main"){let z=await Y.loadAccounts({configPath:Y.accountStoragePath,statePath:Y.accountStatePath}),L=await Y.getAuth();if(L.type!=="oauth")throw new n0("non_oauth_account","Main OpenAI account is not authenticated with OAuth.");if(b4(L.access,L.expires,z,Y.now()))L={type:"oauth",...await Y.refreshMainWithLease()};if(!L.access)throw new n0("token_unavailable","Main OpenAI account has no usable access token.");let U=oY(L.access),H=U?nY(U):void 0,B=await Y.loadAccounts({configPath:Y.accountStoragePath,statePath:Y.accountStatePath});return{accountKey:X,label:"Main account",accessToken:L.access,chatgptAccountId:H??B?.mainAccountId}}let J=await Y.loadAccounts({configPath:Y.accountStoragePath,statePath:Y.accountStatePath}),Q=J?.accounts.find((z)=>z.id===X);if(!J||!Q)throw new n0("unknown_account",`Fallback account ${X} was not found.`);if(Q.enabled===!1)throw new n0("disabled_account",`Fallback account ${X} is disabled.`);if(!V0(Q))throw new n0("non_oauth_account",`Fallback account ${X} is not an OAuth account.`);let G=Q;if(b4(G.access,G.expires,J,Y.now()))G=await Y.refreshFallbackAccount(G,J);if(!G.access)throw new n0("token_unavailable",`Fallback account ${X} has no usable access token.`);let $=await Y.loadAccounts({configPath:Y.accountStoragePath,statePath:Y.accountStatePath}),W=$?.accounts.find((z)=>z.id===X);if(!$||!W)throw new n0("unknown_account",`Fallback account ${X} was not found.`);if(W.enabled===!1)throw new n0("disabled_account",`Fallback account ${X} is disabled.`);if(!V0(W))throw new n0("non_oauth_account",`Fallback account ${X} is not an OAuth account.`);return{accountKey:X,label:G.label??X,accessToken:G.access,chatgptAccountId:W.accountId}}}function pV(){return{fetchImpl:fetch,now:Date.now,randomUUID:()=>crypto.randomUUID()}}function W8(Y){return Y instanceof L8}function v4(){throw Error(cV)}function lV(Y){return Math.floor(Math.random()*Y)}function dV(Y){if(typeof Y!=="string")return;try{let X=JSON.parse(Y);return typeof X==="object"&&X!==null&&!Array.isArray(X)?X:void 0}catch{return}}function iV(Y,X,J){let Q=Y.get(X);if(Q)return Q;let G=RY(),$={threadID:G,turnID:RY(),windowID:`${G}:0`};return Y.set(X,$),J?.(),$}function $K(){return RV(f1(),"openai-auth-sessions.json")}function oV(){let Y=new Map;try{let X=JSON.parse(EV($K(),"utf8"));if(!k(X.sessions))return Y;for(let[J,Q]of Object.entries(X.sessions)){if(!k(Q)||typeof Q.threadID!=="string")continue;Y.set(J,{threadID:Q.threadID,turnID:RY(),windowID:`${Q.threadID}:0`})}}catch{}return Y}function nV(Y){let X=$K(),J=`${X}.tmp-${process.pid}`;try{MV(f1(),{recursive:!0});let Q={version:1,sessions:Object.fromEntries([...Y.entries()].map(([G,$])=>[G,{threadID:$.threadID}]))};TV(J,`${JSON.stringify(Q,null,2)}
|
|
123
|
-
`,"utf8"),wV(J,X)}catch{}}function h4(Y,X){return k(Y)&&(Y.type==="message"||("role"in Y))&&Y.role===X}function rV(Y,X){if(Y.length>X.length)return!1;for(let J=0;J<Y.length;J++)if(YY(Y[J])!==YY(X[J]))return!1;return!0}function sV(Y,X){if(!Y.input)return X.length>0;if(!rV(Y.input,X))return!0;return X.slice(Y.input.length).some((Q)=>h4(Q,"user")||h4(Q,"developer"))}function aV(Y,X){let J=Array.isArray(X?.input)?X.input:void 0;if(J&&(sV(Y,J)||!Y.turnID))Y.turnID=RY(),Y.turnStartedAt=Date.now();else if(!Y.turnStartedAt)Y.turnStartedAt=Date.now();if(J)Y.input=J}function tV(Y){if(!Y.metadata)return{init:Y.init};let X=dV(Y.init?.body);if(!Y.websocket)aV(Y.metadata,X);else if(!Y.metadata.turnStartedAt)Y.metadata.turnStartedAt=Date.now();if(!Y.metadata.turnStartedAt)Y.metadata.turnStartedAt=Date.now();let J=JSON.stringify({session_id:Y.metadata.threadID,thread_id:Y.metadata.threadID,thread_source:"user",turn_id:Y.metadata.turnID,sandbox:bV,turn_started_at_unix_ms:Y.metadata.turnStartedAt,request_kind:"turn",window_id:Y.metadata.windowID});if(Y.headers.set("originator","codex_exec"),Y.websocket)Y.headers.delete("accept"),Y.headers.delete("content-type");else Y.headers.set("accept","text/event-stream");if(Y.headers.set("session-id",Y.metadata.threadID),Y.headers.delete("x-session-id"),Y.headers.delete("x-session-affinity"),Y.headers.set("thread-id",Y.metadata.threadID),Y.headers.set("x-codex-window-id",Y.metadata.windowID),Y.headers.set("x-client-request-id",Y.metadata.threadID),Y.headers.set("x-codex-beta-features",kV),Y.headers.set("x-codex-turn-metadata",J),Y.headers.set("user-agent",xV),Y.headers.set("version",z8),Y.dumpSessionID)Y.headers.set(LY,Y.dumpSessionID);let Q=X;if(!Q)return{init:Y.init};let G=Y.responsesLite&&typeof Q.model==="string"&&_V.has(Q.model);if(G&&!Y.websocket)Y.headers.set("x-openai-internal-codex-responses-lite","true");if(Q.prompt_cache_key=Y.metadata.threadID,Q.parallel_tool_calls??=!0,Array.isArray(Q.tools))Q.tools=Q.tools.map(KB);if($B(Q),WB(Q),SJ(Q),XB(Q),QB(Q,Y.metadata),G)GB(Q);let $={...typeof Q.client_metadata==="object"&&Q.client_metadata!==null?Q.client_metadata:{},"x-codex-installation-id":Y.installationID,"x-codex-window-id":Y.metadata.windowID};if(Y.websocket){if($["x-codex-turn-metadata"]=J,$["x-codex-ws-stream-request-start-ms"]=String(Date.now()),G)$.ws_request_header_x_openai_internal_codex_responses_lite="true"}return Q.client_metadata=$,Y.headers.delete("content-length"),Y.headers.delete("Content-Length"),{init:{...Y.init,body:JSON.stringify(R1(Q))}}}function eV(Y,X){return Y.find((J)=>J.enabled!==!1&&V0(J)&&(J.id===X||J.accountId===X))}function g4(Y,X){if(!X)return Y;let J={...Y};for(let Q of["resetCreditsAvailable","resetCreditsApplicable"]){let G=X[Q];if(J[Q]===void 0&&G!==void 0)J[Q]=G}return J}function R9(Y,X){if(!Y)return Y;if(typeof Y.checkedAt==="number"&&Number.isFinite(Y.checkedAt))return Y;return{...Y,checkedAt:X}}function WK(Y,X,J=Date.now(),Q=X.mainAccountId){let G=Y.getMain(),$=G?.quota;return{main:{quota:$?{...$,checkedAt:G.checkedAt,primary:R9($.primary,G.checkedAt),secondary:R9($.secondary,G.checkedAt)}:null,...typeof Q==="string"?{mainAccountId:Q}:{},killed:!1,...$?.resetCreditsAvailable!==void 0?{resetCredits:$.resetCreditsAvailable}:{}},fallbacks:X.accounts.filter((W)=>W.enabled).map((W)=>{let z=Y.getFallback(W.id),L=z?.quota;return{id:W.id,label:W.label,accountId:z?.accountId??W.accountId,quota:L?{...L,checkedAt:z.checkedAt,primary:R9(L.primary,z.checkedAt),secondary:R9(L.secondary,z.checkedAt)}:null,killed:!1,enabled:!0,...L?.resetCreditsAvailable!==void 0?{resetCredits:L.resetCreditsAvailable}:{}}}),route:X.routing?.mode??"main-first",lastUpdated:J}}function nD(Y,X,J,Q=Date.now()){return{...WK(Y,X,Q),activeId:J}}function y4(Y,X){if(X?.headers!==void 0)return new Headers(X.headers);if(Y instanceof Request)return new Headers(Y.headers);return new Headers}async function YB(Y,X){if(!(Y instanceof Request))return X;let J=new Request(Y,X),Q=J.method.toUpperCase(),G=Q==="GET"||Q==="HEAD"||J.body===null?void 0:await J.text();return{method:J.method,headers:new Headers(J.headers),body:G,signal:J.signal,cache:J.cache,credentials:J.credentials,integrity:J.integrity,keepalive:J.keepalive,mode:J.mode,redirect:J.redirect,referrer:J.referrer,referrerPolicy:J.referrerPolicy}}function f4(Y){return Y.get("x-session-affinity")??Y.get("x-opencode-session")??Y.get("x-session-id")??Y.get("session-id")??void 0}function XB(Y){if(!C0().webSearch)return;if(!Array.isArray(Y.tools)||Y.tools.length===0)return;if(Y.tools.some((X)=>k(X)&&X.type==="web_search"))return;Y.tools=[...Y.tools,{type:"web_search",external_web_access:!1,search_content_types:["text","image"]}]}function U8(Y){if(Array.isArray(Y)){for(let X of Y)U8(X);return}if(!k(Y))return;if(Y.type==="input_image")delete Y.detail;for(let X of Object.values(Y))U8(X)}var JB=new Set(["gpt-6-astra"]);function QB(Y,X){let J=typeof Y.model==="string"?Y.model:"";if(!JB.has(J))return;let Q=k(Y.reasoning)?Y.reasoning:void 0,G=typeof Q?.effort==="string"?Q.effort:void 0;if(!G)return;if(X.pinnedEffort===void 0){X.pinnedEffort=G;return}if(G===X.pinnedEffort)return;let $=Array.isArray(Y.input)?Y.input:void 0;if(!$||$.length===0)return;Y.reasoning={...Q,effort:X.pinnedEffort},$.splice($.length-1,0,{type:"configuration_update",reasoning:{effort:G}})}function GB(Y){let X=k(Y.reasoning)?{...Y.reasoning}:{};X.context="all_turns",Y.reasoning=X,Y.parallel_tool_calls=!1;let J=Array.isArray(Y.input)?Y.input:[];U8(J);let G=[{type:"additional_tools",role:"developer",tools:Array.isArray(Y.tools)?Y.tools.filter(($)=>!(k($)&&$.type==="web_search")):[]}];if(typeof Y.instructions==="string"&&Y.instructions.length>0)G.push({type:"message",role:"developer",content:[{type:"input_text",text:Y.instructions}]});Y.input=[...G,...J],delete Y.tools,delete Y.instructions}function $B(Y){if(!Array.isArray(Y.tools))return;Y.tools=Y.tools.filter((X)=>!(k(X)&&X.type==="function"&&X.name==="web_search"))}function WB(Y){if(!Array.isArray(Y.tools))return;Y.tools=Y.tools.filter((X)=>!(k(X)&&X.type==="function"&&X.name==="websearch_web_search_exa"))}function KB(Y){if(!k(Y))return Y;if(Y.type!=="function")return Y;let X=k(Y.parameters)&&"$schema"in Y.parameters?(()=>{let{$schema:L,...U}=Y.parameters;return U})():Y.parameters,{type:J,name:Q,description:G,strict:$,parameters:W,...z}=Y;return{type:J,name:Q,description:G,strict:$??!1,parameters:X,...z}}async function zB(Y,X={}){let J=X.codexApiEndpoint??C0().codexApiEndpoint,Q=crypto.randomUUID(),G=oV(),$=()=>nV(G),W=!1,z=[],L=null,U=null,H,B=new h9,V,Z=GJ({client:Y.client,getAuth:async()=>V?.(),fetchImpl:fetch});async function j(O,C){let R=Y.client.session;if(typeof R?.promptAsync==="function"){let D=await fJ(Y.client,O),E={noReply:!0,parts:[{type:"text",text:C,ignored:!0}]};if(D?.agent)E.agent=D.agent;if(D?.model)E.model=D.model;if(D?.variant)E.variant=D.variant;await R.promptAsync({path:{id:O},body:E});return}}return{async dispose(){B.stop();for(let O of z)O.close();if(z.length=0,U){await U.stop().catch(()=>{});let O=globalThis;if(O.__openaiAuthRpcServer===U)O.__openaiAuthRpcServer=void 0;U=null}},async event(O){if(O.event.type!=="session.deleted")return;let C=O.event.properties.info,R=G.get(C.id);if(R)L?.cacheKeepManager?.remove(R.threadID);if(G.delete(C.id))$();if(H){let D=(await O0(H0(s())))?.accounts;await XK(C.id,D,H)}for(let D of z)D.remove(C.id)},provider:{id:"openai",async models(O,C){if(C.auth?.type!=="oauth")return O.models;let R=await O0(H0(s())),D=!R||d4(R),E=D?null:await vJ();if(!D&&E&&!k4)k4=!0,S4.debug("restoring OAuth model costs from models.dev catalog");if(!D&&!E&&!x4)x4=!0,S4.warn("models.dev catalog unavailable; OAuth model costs could not be restored");return Object.fromEntries(Object.entries(O.models).filter(([,T])=>{if(T.options.reasoningMode==="pro")return!1;if(CV.has(T.api.id))return!0;if(IV.has(T.api.id))return!1;let u=T.api.id.match(/^gpt-(\d+(?:\.\d+)?)/)?.[1];return u?parseFloat(u)>5.4:!1}).map(([T,g])=>[T,{...g,cost:D?{input:0,output:0,cache:{read:0,write:0}}:E?.[g.api.id]??E?.[T]??g.cost,limit:g.id.includes("gpt-5.5")?{context:400000,input:272000,output:128000}:g.id.includes("gpt-6-astra")?{context:872000,input:744000,output:128000}:g.id.includes("gpt-5.6")?{context:372000,input:244000,output:128000}:g.limit}]))}},tool:{web_search:IJ},auth:{provider:"openai",async loader(O){V=O;let C=await O();if(C.type!=="oauth")return{};await o4({type:"oauth",access:C.access??"",refresh:C.refresh??"",expires:C.expires??0},H0(s()));let R=await O0(H0(s())).catch((N)=>{let F=s();throw Error(`OpenAI auth store at ${F} is corrupt or unreadable: ${N instanceof Error?N.message:String(N)}. Fix or remove it to continue.`,{cause:N})}),D;async function E(){let N=s();try{let F=AV(N);if(D?.path===N&&D.mtimeMs===F.mtimeMs&&D.size===F.size)return D.storage;let M=await O0(H0(N));return D={path:N,mtimeMs:F.mtimeMs,size:F.size,storage:M},M}catch{return D=void 0,O0(H0(N))}}function T(){D=void 0}if(R&&C.access){let N=tY({id_token:"",access_token:C.access,refresh_token:C.refresh??""});if(N&&N!==R.mainAccountId)await B0((F)=>{return F.mainAccountId=N,F},H0(s())),R.mainAccountId=N,T()}let g=R?.logging?.level;if(g&&typeof g==="string")n1(g);let u=D0("transport"),l=D0("quota"),T0=D0("refresh"),Q0=D0("accounts");u.info("codex auth loader ready",{codexApiEndpoint:J,transport:C0().rawWebSocket?"raw-websocket":C0().webSockets?"websocket":"http",webSearch:C0().webSearch});let c=new i1({storage:R,configPath:s(),fetchQuotaFn:void 0}),S0,PY=0,K0=new n4({paths:H0(s()),refreshFn:(N)=>xY({refreshToken:N.refreshToken,fetchImpl:N.fetchImpl,now:N.now}),quotaManager:c,onFallbackStorageChanged:T});if(R&&R.accounts.length>0)K0.startBackgroundRefresh();let MY=D0("cachekeep"),r0=R?.cachekeep?.enabled===!0,w=R?.cachekeep?.subagents===!0,p=R?.cachekeep?.sustain===!0,f=HJ(R),U0;async function u0(N){await new Promise((F)=>setTimeout(F,N))}async function $0(N){let F;for(let M=1;M<=I4;M++)try{await Y.client.auth.set({path:{id:"openai"},body:{type:"oauth",refresh:N.refresh,access:N.access,expires:N.expires}});return}catch(S){if(F=S,M<I4)await u0(fV*M)}throw new L8(F)}async function WY(N){await B0((F)=>{return F.refresh=F.refresh??{},N(F),F},H0(s())),T()}async function n(N){let F=Date.now()+yV;while(Date.now()<F){await new Promise((v)=>setTimeout(v,C4+lV(C4)));let M=await O();if(M.type!=="oauth"||!M.access)continue;if((M.access!==N.access||M.refresh!==N.refresh||(M.expires??0)>(N.expires??0)+60000)&&(!M.expires||M.expires>Date.now()))return T0.debug("joined concurrent main refresh",{pid:process.pid,expiresInMs:M.expires?M.expires-Date.now():void 0}),{access:M.access,refresh:M.refresh??N.refresh??"",expires:M.expires??0}}return null}async function R0(){if(!U0)U0=(async()=>{let N=await O();if(N.type!=="oauth")throw Error("not oauth");if(!N.refresh)throw Error("Token refresh failed: missing refresh token");let F=m4(N.refresh),M=await O0(H0(s())),S=M?.refresh?.mainLastRefreshError;if(S&&p1(S,N.refresh,Date.now()))throw Error(u4(S,Date.now()));if(M?.refresh?.mainRefreshLeaseUntil&&M.refresh.mainRefreshLeaseUntil>Date.now()&&M.refresh.mainRefreshLeaseTokenHash===F){let b=await n(N);if(b)return b;throw Error("Codex OAuth refresh is already in progress")}let v=await r1({name:vV,ttlMs:hV,path:s(),renew:!0});if(!v){let b=await n(N);if(b)return b;throw Error("Codex OAuth refresh is already in progress")}let x=crypto.randomUUID(),I=F;try{await WY((m)=>{m.refresh=m.refresh??{},m.refresh.mainRefreshLeaseId=x,m.refresh.mainRefreshLeaseUntil=Date.now()+gV,m.refresh.mainRefreshLeaseTokenHash=F});let b=await O0(H0(s()));if(b?.refresh?.mainRefreshLeaseId!==x||b.refresh.mainRefreshLeaseTokenHash!==F)throw Error("Codex OAuth refresh is already in progress");let A=await xY({refreshToken:N.refresh,fetchImpl:fetch,now:Date.now});return await $0(A),await WY((m)=>{if(m.refresh=m.refresh??{},m.refresh.mainLastRefreshError=void 0,m.refresh.mainRefreshLeaseId===x)m.refresh.mainRefreshLeaseId=void 0,m.refresh.mainRefreshLeaseUntil=void 0,m.refresh.mainRefreshLeaseTokenHash=void 0}).catch(()=>{}),I=void 0,A}catch(b){if(N.refresh&&!W8(b))await WY((A)=>{A.refresh=A.refresh??{},A.refresh.mainLastRefreshError=c4({error:b,now:Date.now(),refreshToken:N.refresh??"",previous:A.refresh.mainLastRefreshError})}).catch(()=>{});throw b}finally{if(I)await WY((b)=>{if(b.refresh?.mainRefreshLeaseId===x&&b.refresh.mainRefreshLeaseTokenHash===I)b.refresh.mainRefreshLeaseId=void 0,b.refresh.mainRefreshLeaseUntil=void 0,b.refresh.mainRefreshLeaseTokenHash=void 0}).catch(()=>{});await v.release().catch(()=>{})}})().finally(()=>{U0=void 0});return U0}let bY=globalThis;bY.__openaiAuthCacheKeepManager?.stop();let KY=new c9({fetchImpl:fetch,getMainToken:async()=>{let N=await O();if(N.type!=="oauth")throw Error("not oauth");if(!N.access||(N.expires??0)<Date.now())try{return(await R0()).access}catch(F){if(W8(F))throw F;if(N.access)return N.access;throw Error("main token refresh failed")}return N.access},refreshFallback:async(N)=>{let F=await E(),M=F?eV(F.accounts,N):void 0;if(!M)throw Error(`fallback account ${N} not found`);let S=await K0.refreshAccount(M,F??{version:1,accounts:[M]});if(!S.access)throw Error(`no access token for ${N}`);return S.access},codexResponsesUrl:J,logger:MY,now:Date.now,getWindow:()=>f,getSustain:()=>p});bY.__openaiAuthCacheKeepManager=KY;async function s0(N,F,M,S,v=!1){if(Object.keys(N).length===0&&!v)return;let x=Date.now(),I=N,b={quota:I,refreshAfter:x+300000,checkedAt:x},A;if(M&&M!=="main"){let h=F?oY(F):null,G0=h?nY(h):void 0,M0=c.peekFallbackForPolicy(M)?.quota,d0=g4(I,M0);b={...b,quota:d0},c.setFallback(M,b,F,v,G0)}else{if(A=S,!A&&F){let M0=oY(F);A=M0?nY(M0):void 0}if(A&&S0&&A!==S0){l.debug("stale main quota frame dropped",{pid:process.pid,frameAccountId:A,currentMainIdentity:S0});return}let h=c.peekMainForPolicy(A)?.quota,G0=g4(I,h);b={...b,quota:G0},c.setMain(F,b,A,v)}l.debug("quota pushed",{pid:process.pid,accountId:M??"main",snapshot:b.quota});let m=await E();await p0(c,m,M&&M!=="main"?m?.mainAccountId:A)}function I9(N,F,M){let S=N==="main"?c.peekMainForPolicy()?.quota:c.peekFallbackForPolicy(N)?.quota;return l4(S,F,Date.now(),mV,M)}let zY=X.experimentalWebSockets?jY.createWebSocketFetch({httpFetch:fetch,rawWebSocket:C0().rawWebSocket,onQuota:(N,F,M,S)=>{s0(N,F,M,!M||M==="main"?S:void 0,!0)},onRateLimitReached:(N,F,M)=>{if(!F)l.warn("mid-stream rate-limit mark missing internal account id; defaulting to main",{pid:process.pid,window:N});let S=F??"main",v=I9(S,N,M);c.markRateLimited(S,v),l.debug("mid-stream rate limit mark",{pid:process.pid,accountId:S,window:N})}}):void 0;if(zY)z.push(zY),W=!0;let X0=r4();H=X0;async function p0(N,F,M=F?.mainAccountId){if(!F)return;await e4(WK(N,F,Date.now(),M),X0)}async function W0(N,F,M,S,v){let x={activeId:M,route:S,updatedAt:Date.now()};if(N){if(await C9({sessionId:N,...x},v,X0),F&&F!==N){if(S==="sticky-balanced"){let I=(await DY(X0)).stickyAssignments?.[k1(F)]?.accountId,b=v===void 0||I==="main"||v.some((A)=>A.enabled!==!1&&A.id===I);if(!I||!b)return;await C9({sessionId:F,activeId:I,route:S,updatedAt:Date.now()},v,X0);return}await C9({sessionId:F,...x},v,X0)}return}await YK(x,X0)}L={accountStoragePath:s(),accountStatePath:u1(s()),packageVersion:aY,quotaManager:c,loadAccounts:O0,client:Y.client,resolveResetTarget:uV({getAuth:O,refreshMainWithLease:R0,refreshFallbackAccount:(N,F)=>K0.refreshAccount(N,F),loadAccounts:O0,accountStoragePath:s(),accountStatePath:u1(s()),now:Date.now}),...pV(),cacheKeepManager:KY,setCacheKeepEnabled:(N)=>{r0=N},setCacheKeepSubagents:(N)=>{w=N},setCacheKeepSustain:(N)=>{p=N},setCacheKeepWindow:(N)=>{f=N},clearStickyRouting:(N)=>QK(N,X0),getStickyRouting:async(N)=>t4(await DY(X0),N),refreshSidebar:async()=>{let N=await O0(H0(s()));await p0(c,N)},refreshAllQuota:async()=>UY({getAuth:O,codexRefreshFn:xY,refreshMainWithLease:R0,fallbackManager:K0,quotaManager:c,loadAccounts:O0,writeSidebarState:p0,client:Y.client,fetchImpl:fetch,now:Date.now,paths:H0(s()),readSidebarState:()=>DY(X0),storageMainAccountId:R?.mainAccountId,isOAuthAccountFn:V0,whamFn:AY}),refreshResetTargetQuota:async(N)=>{return(await UY({getAuth:O,codexRefreshFn:xY,refreshMainWithLease:R0,fallbackManager:K0,quotaManager:c,loadAccounts:O0,writeSidebarState:p0,client:Y.client,fetchImpl:fetch,now:Date.now,paths:H0(s()),readSidebarState:()=>DY(X0),storageMainAccountId:R?.mainAccountId,isOAuthAccountFn:V0,whamFn:AY,respectBackoff:!1},{accountKey:N})).find((M)=>M.account===N)??{account:N,ok:!1,error:"targeted quota refresh returned no result"}}};let l0=null;if(Y.directory){let N=await GK(Y.directory),F=globalThis;if(F.__openaiAuthRpcServer)await F.__openaiAuthRpcServer.stop().catch(()=>{}),F.__openaiAuthRpcServer=void 0;try{l0=await iJ({dir:N.dir,secureDir:N.secureDir,sweepRoot:N.sweepRoot,drain:cJ,apply:async(M)=>{let S={...L,sessionId:M.sessionId},v=await v9(M.command,M.arguments,S);return{text:v.text,knobs:v.knobs}}}),F.__openaiAuthRpcServer=l0,U=l0}catch{}}async function EY(N,F,M,S,v="main"){let x=y4(N,F);if(x.delete("x-api-key"),x.delete("api-key"),x.set("authorization",`Bearer ${M}`),S)x.set("ChatGPT-Account-Id",S);x.set(jY.QUOTA_ACCOUNT_HEADER,v);let I=f4(x),b=I?iV(G,I,$):void 0,A=N instanceof URL?N:new URL(typeof N==="string"?N:N.url),m=A.pathname.includes("/v1/responses")||A.pathname.includes("/chat/completions")?new URL(J):A,G0=tV({init:{...F,headers:x},headers:x,metadata:b,installationID:Q,websocket:Boolean(zY&&A.pathname.endsWith("/responses")),responsesLite:X.responsesLite??!1,dumpSessionID:I}).init,M0=r0,d0=new Headers(G0?.headers),L0=LJ({enabled:M0,includeSubagents:w,headers:d0,body:G0?.body});if(M0)MY.trace("cachekeep headers",{pid:process.pid,hasParent:d0.has("x-parent-session-id"),sessionKey:L0?.sessionKey,captured:Boolean(L0),affinity:d0.get("x-session-affinity"),opencodeSession:d0.get("x-opencode-session"),sessionId:d0.get("session-id")});if(zY&&A.pathname.endsWith("/responses")){if(u.debug("WS transport",{pid:process.pid,pathname:A.pathname,accountId:v}),L0)KY.track(L0.sessionKey,L0.bodyText,v,S,L0.replayHeaders,L0.isSubagent);return zY(m,G0)}let j0=jY.withoutInternalHeaders(G0);if(typeof j0?.body!=="string")return fetch(m,j0);if(L0)KY.track(L0.sessionKey,L0.bodyText,v,S,L0.replayHeaders,L0.isSubagent);u.debug("HTTP transport",{pid:process.pid,pathname:A.pathname,accountId:v});try{let g0=await fetch(m,j0);return await yY({sessionID:I,transport:"http",phase:"http",bodyText:j0.body,accountId:v,url:m.toString(),method:j0.method,headers:j0.headers,status:g0.status}),_J(g0)}catch(g0){throw await yY({sessionID:I,transport:"http",phase:"http",bodyText:j0.body,accountId:v,url:m.toString(),method:j0.method,headers:j0.headers,error:g0 instanceof Error?g0.message:String(g0)}),g0}}function x1(N,F){if((F?.method??(N instanceof Request?N.method:"GET")).toUpperCase()!=="POST")return!1;if(typeof F?.body!=="string")return!1;try{let S=N instanceof URL?N.toString():typeof N==="string"?N:N.url;return new URL(S).pathname.endsWith("/responses")}catch{return!1}}function KK(N){return c.peekMainForPolicy(N)?.quota}function H8(N,F){for(let M of[N?.primary?.checkedAt,N?.secondary?.checkedAt,N?.checkedAt,F])if(typeof M==="number"&&Number.isFinite(M))return M;return}function rY(N,F,M,S,v){let x=H8(N,F),I=H8(M),b=S===v&&M!=null&&(N===void 0||I!==void 0&&(x===void 0||I>x));return{quota:b?M:N,quotaCheckedAt:b?I:x,source:b?"file":"memory"}}function N8(N,F,M,S,v){let x=N?.quota,I=rY(x,N?.checkedAt,F,S,v),b=I.source,A=I.quota;if(!a4(A,M))return{exhausted:!1};let m=s4(A,M);if(!m)return{exhausted:!1};return{exhausted:!0,source:b,...m}}function Z8(N,F){l.debug("admission skip: exhausted account",{accountId:N,source:F.source,resetsAt:F.resetsAt})}function zK(N,F="killswitch",M){let S=Date.now(),v=c.getMain()?.quota,x=(N?.accounts??[]).filter((h)=>h.enabled!==!1&&V0(h)).map((h)=>({accountId:h.id,quota:c.getFallback(h.id)?.quota})),I=i4(v,x,S,N);if(F==="quota-exhausted"&&M!==void 0)I=Math.max(1,Math.ceil((M-S)/1000));else if(F==="mid-stream-rate-limit"&&M!==void 0){let h=Math.max(1,Math.ceil((M-S)/1000));I=Math.min(I,h)}let b=Math.floor(I/60),A=I%60,m=F==="mid-stream-rate-limit"?`OpenAI rate limit reached — retrying on another account. Retry in ${b}m ${A}s.`:F==="quota-exhausted"?`OpenAI quota exhausted — retrying on another account. Retry in ${b}m ${A}s.`:`Killswitch: all OpenAI accounts are below their configured quota threshold. Retry in ${b}m ${A}s.`;return new Response(JSON.stringify({error:{message:m,type:"rate_limit_exceeded",code:"rate_limit_exceeded"}}),{status:429,headers:{"content-type":"application/json","retry-after":String(I)}})}function V8(N){let F=N?.resetCreditsAvailable;return typeof F==="number"&&Number.isFinite(F)?F:void 0}async function UK(N){let F=_1(N.storage),M=Date.now(),S=c.peekMainForPolicy(N.mainAccountIdentity),v=rY(S?.quota,S?.checkedAt,N.sidebarState.main.quota,N.sidebarState.main.mainAccountId,N.mainAccountIdentity),x=F?S1(S?.quota,N.storage,void 0,M):void 0,I=[{accountId:"main",wireAccountId:N.mainAccountIdentity,access:N.primaryAccess,keepwarmAccountKey:"main",quota:v.quota,quotaCheckedAt:v.quotaCheckedAt,reservePercent:K8(N.storage),configuredOrder:0,resetCreditsApplicable:V8(v.quota),killswitchPasses:x}],b=await K0.getUsableFallbackAccounts(N.storage);for(let A of b){if(!A.access)continue;let m=N.sidebarState.fallbacks.find((d0)=>d0.id===A.id),h=c.peekFallbackForPolicy(A.id,A.accountId),G0=rY(h?.quota,h?.checkedAt,m?.quota,m?.accountId,A.accountId),M0=F?S1(h?.quota,N.storage,A.id,M):void 0;I.push({accountId:A.id,wireAccountId:A.accountId,access:A.access,keepwarmAccountKey:A.id,fallback:A,quota:G0.quota,quotaCheckedAt:G0.quotaCheckedAt,reservePercent:K8(N.storage,A.id),configuredOrder:I.length,resetCreditsApplicable:V8(G0.quota),killswitchPasses:M0})}return I}function B8(N,F,M,S,v){let x=_1(v)?N.killswitchPasses:void 0;if(N.accountId==="main"){let m=c.peekMainForPolicy(N.wireAccountId),h=rY(m?.quota,m?.checkedAt,F.main.quota,F.main.mainAccountId,N.wireAccountId);return l9({quota:h.quota,quotaCheckedAt:h.quotaCheckedAt,status:M,now:S,killswitchPasses:x})}let I=F.fallbacks.find((m)=>m.id===N.accountId),b=c.peekFallbackForPolicy(N.accountId,N.wireAccountId),A=rY(b?.quota,b?.checkedAt,I?.quota,I?.accountId,N.wireAccountId);return l9({quota:A.quota,quotaCheckedAt:A.quotaCheckedAt,status:M,now:S,killswitchPasses:x})}function LK(N){return N.accountId==="main"?"main":N.keepwarmAccountKey}function F8(N){return c.isRateLimited(LK(N))}async function _9(N){let F=N.candidates.filter((A)=>!F8(A)),M=new Map(F.map((A)=>[A.accountId,A])),S=Object.fromEntries(F.map((A)=>[A.accountId,A.quotaCheckedAt])),v=Object.fromEntries(F.map((A)=>[A.accountId,A.wireAccountId])),x=new Set(N.excludeAccountIds),I,b=await JK({sessionId:N.sessionId,requestBytes:N.requestBytes,now:N.now,validPinnedAccountIds:[...M.keys()],excludeAccountIds:N.excludeAccountIds,quotaCheckedAtByAccount:S,wireAccountIdByAccount:v,choose:(A)=>{let m=F.filter((G0)=>!x.has(G0.accountId));if(m.length===0)return;let h=qJ({candidates:m,pendingBytes:A,requestBytes:N.requestBytes,now:N.now,onEmptyWeightedSet:()=>{Q0.debug("sticky routing: no fresh weighted candidates; using configured order")}});if(!h)return;return I={accountId:h.accountId,source:h.source,pendingBytes:A.get(h.accountId)??0},h}},X0);if(I&&b?.accountId===I.accountId)Q0.debug("sticky routing: placed session pin",{pid:process.pid,sessionHash:k1(N.sessionId),accountId:I.accountId,source:I.source,requestBytes:N.requestBytes,pendingBytes:I.pendingBytes});return b?M.get(b.accountId):void 0}async function HK(N,F){let M=await K0.getUsableFallbackAccounts(N),S=[];for(let h of M)if(h.access)S.push({access:h.access,accountId:h.accountId,keepwarmAccountKey:h.id,quotaAccountId:h.id,fallback:h});let v=S.filter((h)=>!c.isRateLimited(h.quotaAccountId)),x=_1(N)?v.filter((h)=>S1(c.peekFallbackForPolicy(h.quotaAccountId,h.accountId)?.quota,N,h.quotaAccountId,Date.now())):v,I=new Map(F.fallbacks.map((h)=>[h.id,{quota:h.quota,accountId:h.accountId}])),b=[],A=[],m=Date.now();for(let h of x){let G0=I.get(h.quotaAccountId),M0=N8(c.peekFallbackForPolicy(h.quotaAccountId,h.accountId),G0?.quota,m,G0?.accountId,h.accountId);if(M0.exhausted)A.push({candidate:h,decision:M0});else b.push(h)}return{current:x,retained:b,skipped:A}}function O8(N,F){if(N.retained.length===0&&!F)return N.current;for(let{candidate:M,decision:S}of N.skipped)Z8(M.quotaAccountId,S);return N.retained}async function q8(N,F){try{let M=hY(N.headers);await s0(M,F.access,F.quotaAccountId,void 0,C1(N.headers))}catch{}}async function NK(N,F,M,S){for(let v of S){let x;try{x=await EY(N,F,v.access,v.accountId,v.keepwarmAccountKey)}catch(I){if(I instanceof DOMException&&I.name==="AbortError")throw I;if(F?.signal?.aborted)throw I;throw Q0.debug("fallback-first transport failed; request not replayed",{pid:process.pid,accountId:v.quotaAccountId}),I}if(!I1(x.status,M))return K0.markUsed(v.fallback),{response:x,accessToken:v.access,quotaAccountId:v.quotaAccountId,activeId:v.keepwarmAccountKey};await q8(x,v),x.body?.cancel().catch(()=>{})}return}async function ZK(N,F,M,S,v){if(!x1(N,F))return{response:M};if(!v.length)return{response:M};let x=M,I;for(let b of v){let A;try{A=await EY(N,F,b.access,b.accountId,b.keepwarmAccountKey)}catch(m){if(m instanceof DOMException&&m.name==="AbortError")throw m;if(F?.signal?.aborted)throw m;return Q0.debug("reactive fallback candidate threw; stopping",{pid:process.pid,accountId:b.quotaAccountId}),{response:x,...I}}if(x.body?.cancel().catch(()=>{}),x=A,I={accessToken:b.access,accountId:b.quotaAccountId},!I1(A.status,S))return K0.markUsed(b.fallback),{response:A,...I};await q8(A,b)}return{response:x,...I}}if(!_4){if(_4=!0,R){let N=[];for(let F of R.accounts)if(V0(F))N.push(F);c.seedFallbacksFromAccounts(N)}p0(c,R).catch(()=>{}),UY({getAuth:O,codexRefreshFn:xY,refreshMainWithLease:R0,fallbackManager:K0,quotaManager:c,loadAccounts:O0,writeSidebarState:p0,client:Y.client,fetchImpl:fetch,now:Date.now,paths:H0(s()),readSidebarState:()=>DY(X0),storageMainAccountId:R?.mainAccountId,isOAuthAccountFn:V0,whamFn:AY,respectBackoff:!0}).catch((N)=>l.warn("boot quota seed failed",{pid:process.pid,error:T1(N)}))}return B.start(async()=>{let F=(await $J({getAuth:O,codexRefreshFn:xY,refreshMainWithLease:R0,fallbackManager:K0,quotaManager:c,loadAccounts:O0,writeSidebarState:(M,S)=>B.isStopped()?Promise.resolve():p0(M,S),client:Y.client,fetchImpl:fetch,now:Date.now,paths:H0(s()),storageMainAccountId:R?.mainAccountId,isOAuthAccountFn:V0,whamFn:AY,readSidebarState:()=>DY(X0)})).filter((M)=>!M.ok);if(F.length>0)l.warn("background quota refresh completed with failures",{pid:process.pid,failures:F})},(N)=>{l.warn("background quota refresh failed",{pid:process.pid,error:N instanceof Error?N.message:String(N)})}),{apiKey:SV,async fetch(N,F){let M=y4(N,F),S=f4(M),v=M.get("x-parent-session-id")?.trim()||void 0,x=await E(),I=await O(),b=++PY;if(I.type!=="oauth")return fetch(N,F);F=await YB(N,F);let A=I.access??"";if(!I.access||(I.expires??0)<Date.now()){T0.debug("token refresh triggered",{pid:process.pid,hasAccess:Boolean(I.access),expiresInMs:I.expires?I.expires-Date.now():void 0});try{let J0=await R0();I.access=J0.access,I.refresh=J0.refresh,I.expires=J0.expires}catch(J0){if(W8(J0))throw J0}}A=I.access??"";let h=I.accountId??(A?nY(oY(A)??{}):void 0);if(b===PY)S0=h;let G0=x?.routing?.mode??"main-first",M0,L0=await(()=>{return M0??=DY(X0),M0})();if(G0==="sticky-balanced"&&S&&x1(N,F)&&typeof F?.body==="string"){let J0=Buffer.byteLength(F.body,"utf8"),F0=await UK({storage:x,sidebarState:L0,primaryAccess:A,mainAccountIdentity:h}),Z0=await _9({sessionId:S,requestBytes:J0,candidates:F0,now:Date.now()});if(Z0){let A8=F8(Z0)?{action:"migrate",reason:"exhausted"}:B8(Z0,L0,void 0,Date.now(),x);if(A8.action==="migrate"){let k0=await _9({sessionId:S,requestBytes:J0,candidates:F0,excludeAccountIds:[Z0.accountId],now:Date.now()});if(k0)Q0.debug("sticky routing: migrated session pin",{pid:process.pid,sessionHash:k1(S),fromAccountId:Z0.accountId,toAccountId:k0.accountId,reason:A8.reason}),Z0=k0}let i0=await EY(N,F,Z0.access,Z0.wireAccountId,Z0.keepwarmAccountKey),T8=async(k0,wY)=>{try{let VK=hY(k0.headers);await s0(VK,wY.access,wY.accountId==="main"?void 0:wY.accountId,wY.accountId==="main"?wY.wireAccountId:void 0,C1(k0.headers))}catch{}};await T8(i0,Z0);let R8=B8(Z0,L0,i0.status,Date.now(),x);if((i0.status===401||i0.status===403||i0.status===429)&&R8.action==="migrate"){let k0=await _9({sessionId:S,requestBytes:J0,candidates:F0,excludeAccountIds:[Z0.accountId],now:Date.now()});if(k0){Q0.debug("sticky routing: migrated session pin",{pid:process.pid,sessionHash:k1(S),fromAccountId:Z0.accountId,toAccountId:k0.accountId,reason:R8.reason});let wY=i0;i0=await EY(N,F,k0.access,k0.wireAccountId,k0.keepwarmAccountKey),wY.body?.cancel().catch(()=>{}),Z0=k0,await T8(i0,Z0)}}if(Z0.fallback&&!I1(i0.status,x))K0.markUsed(Z0.fallback);return await W0(S,v,Z0.accountId,G0,x?.accounts).catch(()=>{}),i0}}let j0=N8(c.peekMainForPolicy(h),L0.main.quota,Date.now(),L0.main.mainAccountId,h),g0=_1(x)&&!S1(KK(h),x,void 0,Date.now()),b1=c.isRateLimited("main"),j8,S9=()=>{return j8??=HK(x,L0),j8},a0,vY,D8=!1,v1;if(G0==="fallback-first"&&x1(N,F)){D8=!0;let J0=await S9();v1=O8(J0,!g0&&!b1&&!j0.exhausted);let F0=await NK(N,F,x,v1);if(F0)a0=F0.response,vY={accessToken:F0.accessToken,accountId:F0.quotaAccountId,activeId:F0.activeId}}if(!a0){let J0=j0.exhausted&&x1(N,F)&&(await S9()).retained.length>0;if(g0||b1||J0){let F0=g0?"killswitch":b1?"mid-stream-rate-limit":"quota-exhausted";if(F0==="quota-exhausted"&&j0.exhausted)Z8("main",j0);Q0.debug("admission blocked primary",{pid:process.pid,activeId:"main",reason:F0}),a0=zK(x,F0,F0==="quota-exhausted"&&j0.exhausted?j0.resetAtMs:b1?c.rateLimitedUntil("main"):void 0)}else a0=await EY(N,F,A,h,"main")}let P8=Boolean(vY),sY=a0,M8=vY?.accessToken??A,E8=vY?.accountId,w8=vY?.activeId??"main";if(!vY&&!D8&&I1(a0.status,x)){Q0.debug("reactive fallback triggered",{pid:process.pid,status:a0.status}),v1??=O8(await S9(),!1);let J0=await ZK(N,F,a0,x,v1),F0=J0.response;if(F0!==a0){if(P8=!0,sY=F0,M8=J0.accessToken??A,E8=J0.accountId,J0.accountId)w8=J0.accountId}}try{let J0=hY(sY.headers);if(P8)await s0(J0,M8,E8,void 0,C1(sY.headers));else await s0(J0,A,void 0,h,C1(sY.headers))}catch{}return await W0(S,v,w8,G0,x?.accounts).catch(()=>{}),sY},async dispose(){if(B.stop(),KY.stop(),bY.__openaiAuthCacheKeepManager===KY)bY.__openaiAuthCacheKeepManager=void 0;if(K0.stopBackgroundRefresh(),U){await U.stop().catch(()=>{});let N=globalThis;if(N.__openaiAuthRpcServer===U)N.__openaiAuthRpcServer=void 0;U=null}}}},methods:Z},"chat.headers":async(O,C)=>{if(O.model.providerID!=="openai")return;if(C.headers.originator="opencode",C.headers["User-Agent"]=`${p4(aY)} (${$8.platform()} ${$8.release()}; ${$8.arch()})`,C.headers["session-id"]=O.sessionID,W&&O.agent==="title")C.headers[jY.TITLE_HEADER]="true"},"chat.params":async(O,C)=>{if(O.model.providerID!=="openai")return;C.maxOutputTokens=void 0},config:async(O)=>{O.command={...O.command??{},[eY]:{template:eY,description:"Show current OpenAI Codex OAuth quota usage for all accounts."},[Y1]:{template:Y1,description:"Manage OpenAI accounts — add, switch, remove, or reorder."},[X1]:{template:X1,description:"Show or change OpenAI account routing between main-first, fallback-first, and sticky-balanced."},[J1]:{template:J1,description:"Manage killswitch — hard-block requests when quota drops below per-account thresholds."},[Q1]:{template:Q1,description:"Show or toggle OpenAI Codex request dump capture for debugging."},[G1]:{template:G1,description:"Show or change the plugin log level (error, warn, info, debug, trace)."},[$1]:{template:$1,description:"Keep Codex prompt cache alive during idle by shadow-replaying the last request."},[W1]:{template:W1,description:"Spend one reset credit on an exhausted Codex account."}}},"command.execute.before":async(O)=>{if(!o1.includes(O.command))return;if(!L)await j(O.sessionID,"OpenAI auth plugin is still initializing. Send a request first, then try again."),v4();let C=O.command,R={...L,sessionId:O.sessionID,notify:(E)=>{XX(E,O.sessionID)}},D=await v9(C,O.arguments,R);if(uJ(O.sessionID))XX(D,O.sessionID);else await j(O.sessionID,D.text);v4()}}}var UB=async(Y)=>{let X=C0();return zB(Y,{codexApiEndpoint:X.codexApiEndpoint,experimentalWebSockets:X.webSockets,responsesLite:X.responsesLite})},rD={id:"cortexkit-openai-auth",server:UB};export{f4 as resolveSidebarSessionId,oY as parseJwtClaims,g4 as mergePushedQuotaMetadata,eV as findCachekeepFallbackAccount,nY as extractAccountIdFromClaims,rD as default,uV as createResetTargetResolver,nD as buildSidebarState,WK as buildSidebarMachineState,pV as buildResetRedemptionDeps,n0 as ResetTargetResolutionError,UB as OpenAIAuthPlugin,hV as MAIN_REFRESH_LOCK_TTL_MS,gV as MAIN_REFRESH_LEASE_TTL_MS,zB as CodexAuthPlugin,L8 as AuthPersistError};
|
|
122
|
+
`)),K=!0,c=Date.now(),T!==void 0)S++;if(L.length<j)L.push(String(n.type));if(n.type==="response.created")T=WF(n),WJ.debug("response created",{...q,responseID:T,previousResponseID:N,hasContinuation:N!==void 0});if(!zF(n.type))Z=!0;if(W0("idle timeout waiting for websocket"),!n)return;if(n.type==="response.completed"||n.type==="response.done"){G=!0,XF(n,_),Y.onComplete?.(n,_),Y.onTerminal?.(n),f();return}if(n.type==="response.failed"||n.type==="response.incomplete"||n.type==="error")G=!0,Y.onTerminal?.(n),f()}function c0(B){t(new m0(t9(B),{cause:B}))}function z1(B){if(G)return;let D=B.code===1009,w=new m0(D?aK:tK("WebSocket closed before response.completed",B.code,B.reason),{retryable:!D});if(D)WJ.warn("websocket peer refused the request size",{...q,requestBytes:W,reason:B.reason.toString()});t(D?nK(w):w)}function u(){let B=dX(Y.signal);if(G)return;G=!0,E(),b(),Y.onAbort?.(B),Q?.error(B)}function M(B){if(G)return;G=!0,E(),b(),Y.onAbort?.($F(B))}function A(B){$(),X=B,X.addEventListener("message",O0),X.addEventListener("error",c0,{once:!0}),X.addEventListener("close",z1,{once:!0}),$=()=>{X.removeEventListener("message",O0),X.removeEventListener("error",c0),X.removeEventListener("close",z1)};let{background:D,...w}=Y.body;W0("idle timeout sending websocket request");try{let m=JSON.stringify({type:"response.create",...w});W=m.length,X.send(m),W0("idle timeout waiting for websocket")}catch(m){if(G)return;o(new m0(m instanceof Error?m.message:String(m),{cause:m}))}}return new Response(new ReadableStream({start(B){if(Q=B,Y.signal?.addEventListener("abort",u,{once:!0}),Y.signal?.aborted){u();return}A(X)},cancel(B){M(B)}}),{status:200,headers:{"content-type":"text/event-stream"}})}async function eB(Y,J){if(!YF(Y))return;await N1({component:"ws",event:"provider_native_web_search_event",sessionID:J,serverEventType:Y.type,itemType:h(Y.item)?Y.item.type:void 0,serverEvent:Y})}function YF(Y){if(typeof Y.type==="string"&&(Y.type.startsWith("response.web_search_call.")||Y.type.startsWith("response.web_search_preview_call.")))return!0;if(h(Y.item)&&typeof Y.item.type==="string")return Y.item.type==="web_search_call"||Y.item.type==="web_search_preview_call";return!1}function JF(Y,J){if(Y.type!=="response.output_item.done")return;if(!h(Y.item))return;rK(Y.item,J)}function XF(Y,J){let X=Y.response;if(!h(X)||!Array.isArray(X.output))return;for(let Q of X.output)if(h(Q))rK(Q,J)}function rK(Y,J){if(Y.type!=="function_call"&&Y.type!=="custom_tool_call")return;let X=typeof Y.call_id==="string"?Y.call_id:typeof Y.id==="string"?Y.id:void 0;if(X)J.add(X)}function QF(Y,J){if(Y?.type!=="error")return;let X=Y.status??Y.status_code;if(typeof X!=="number"||X>=200&&X<300)return;return{status:X,headers:h(Y.headers)?Object.fromEntries(Object.entries(Y.headers).flatMap(([Q,$])=>typeof $==="string"||typeof $==="number"||typeof $==="boolean"?[[Q,String($)]]:[])):void 0,body:J,message:h(Y.error)&&typeof Y.error.message==="string"?Y.error.message:`${X}`}}function a9(Y){if(typeof Y==="string")try{return a9(JSON.parse(Y))}catch{return}if(!h(Y))return;let J=a9(Y.cause);if(J)return J;let X=a9(Y.body);if(X)return X;let Q=h(Y.error)?Y.error:Y,$=typeof Q.type==="string"?Q.type:void 0,G=Y.status??Y.status_code;if($!=="usage_limit_reached"&&G!==429)return;let{resets_at:W,resets_in_seconds:K}=Q,Z=typeof W==="number"&&Number.isFinite(W)&&W>0?W*1000:typeof K==="number"&&Number.isFinite(K)&&K>0?Date.now()+K*1000:void 0;return{window:$??"primary",resetAt:Z}}function $F(Y){if(iX(Y))return Y;if(Y instanceof Error)return Y;return new DOMException(typeof Y==="string"?Y:"Aborted","AbortError")}function dX(Y){let J=Y?.reason;if(iX(J))return J;if(GF(J))return J;return new DOMException(J instanceof Error?J.message:"Aborted","AbortError")}function GF(Y){return Y instanceof Error&&(Y.name==="ProviderHeaderTimeoutError"||Y.name==="ProviderResponseStreamError")}function WF(Y){let J=Y.response;if(!h(J))return;return typeof J.id==="string"?J.id:void 0}function zF(Y){return Y==="response.created"||Y==="response.in_progress"||Y.startsWith("codex.")}var sK="The response ended early after part of it had already been shown. It was not sent again, because repeating it would duplicate that output and re-run any tools it had started. The transport log records what ended it.",aK="The request was larger than the websocket would carry, so it was sent over HTTP instead. Resending it unchanged over the same socket cannot succeed. The transport log records the size.";function tK(Y,J,X){let Q=[`code ${J}`];if(X.length>0)Q.push(X.toString());return`${Y} (${Q.join(": ")})`}var nX="x-opencode-title",zJ="x-openai-auth-quota-account",oX=new Set([nX,w1,zJ,"x-opencode-session"]),UF=15000,ZF=300000,LF=3300000,eK="websocket_connection_limit_reached";function HF(Y){let J=typeof Y["chatgpt-account-id"]==="string"?Y["chatgpt-account-id"]:"",X=typeof Y.authorization==="string"&&Y.authorization.startsWith("Bearer ")?Y.authorization.slice(7):"",Q=J?`acct:${J}`:`tok:${X}`;return KF("sha256").update(Q).digest("hex").slice(0,12)}function VF(Y){let J=Y?.httpFetch??globalThis.fetch,X=new Map,Q=Y?.connectTimeout??UF,$=Y?.idleTimeout??ZF,G=Y?.maxConnectionAge??LF,W=Y?.streamRetries??5,K=Y?.firstEventGraceMs??250,Z=Y?.rawWebSocket??!1,U=Y?.onQuota,L=Y?.onRateLimitReached,j=setInterval(()=>T(),Math.min($,60000));if(typeof j==="object"&&"unref"in j&&typeof j.unref==="function")j.unref();function N(_,E,b){if(!E||!b)return b;rX(_,Y4(E));let f=new Headers(b.headers),o=f.get("x-codex-turn-metadata");if(!o)return b;let t=K4(o,_.turnID,_.turnStartedAt);if(!t)return b;return f.set("x-codex-turn-metadata",t),{...b,headers:f}}async function V(_,E){let b=_ instanceof URL?_.toString():typeof _==="string"?_:_.url,f=I0.normalizeHeaders(E?.headers),o=L4(E),t=_Y(o);if(E?.method!=="POST"||!new URL(b).pathname.endsWith("/responses"))return J(_,t);let N0=(()=>{try{if(typeof E?.body!=="string")return;let D=JSON.parse(E.body);return typeof D==="object"&&D!==null?D:void 0}catch{return}})();if(!N0?.stream)return J(_,t);if(f[nX]==="true")return J(_,t);let W0=f[w1]??f["x-session-affinity"]??f["session-id"],O0=W0;if(!W0)return J(_,t);let c0=I0.normalizeHeaders(o?.headers),z1=HF(c0),u=`${W0}:${z1}:conversation`,M=typeof f[zJ]==="string"?f[zJ]:void 0,A=L?(D,w)=>L(D,M,w):void 0,B=X.get(u)??{lastUsedAt:Date.now(),busy:!1,fallback:!1,streamFailures:0};if(X.set(u,B),B.fallback)return J(_,N(B,N0,t));if(B.busy)return J(_,N(B,N0,t));B.busy=!0,B.lastUsedAt=Date.now();try{let D=Y4(N0),w=I0.normalizeHeaders(o?.headers),m=typeof w.authorization==="string"&&w.authorization.startsWith("Bearer ")?w.authorization.slice(7):"",p=typeof w["chatgpt-account-id"]==="string"?w["chatgpt-account-id"]:void 0,n=U?(Q0)=>U(Q0,m,M,p):void 0,z0=!B.socket&&!B.continuation?EF(w):w;if(B.socket=await jF(B,Y?.url??b,z0,Q,G,Z,E?.signal),RF(B,D))await OF(B,D,$,{signal:E?.signal??void 0,sessionID:O0,url:Y?.url??b,headers:o?.headers,onRateLimitReached:A});let r=()=>{},v0=()=>{},K1=new Promise((Q0,R0)=>{r=Q0,v0=R0}),A0=AF(B,D),a1=e9(z4(B,A0,D)),J1=typeof a1.previous_response_id==="string";await G9({sessionID:O0,transport:"websocket",phase:"main",bodyText:JSON.stringify(a1),url:Y?.url??b,method:o?.method,headers:o?.headers});let X0=I0.streamResponsesWebSocket({socket:B.socket,body:a1,sessionID:O0??void 0,idleTimeout:$,signal:E?.signal??void 0,onQuota:n,onRateLimitReached:A,onFirstEvent:(Q0)=>r(Q0??!0),onComplete:(Q0,R0)=>{let g1=Q4(Q0);N1({component:"ws-pool",event:"main_completed",sessionID:O0,responseID:X4(Q0),usage:g1}),W4(B,D,Q0,R0,J1)},onTerminal:(Q0)=>{if(B.busy=!1,B.lastUsedAt=Date.now(),B.streamFailures=0,Q0.type!=="response.completed"&&Q0.type!=="response.done")B.continuation=void 0,D1(B)},onConnectionInvalid:(Q0)=>{if(B.busy=!1,B.lastUsedAt=Date.now(),I0.isOversizedFrame(Q0))B.fallback=!0;if(!B.fallback)q(B);B.continuation=void 0,D1(B),r(!1)},onAbort:(Q0)=>{B.busy=!1,B.lastUsedAt=Date.now(),B.streamFailures=0,B.continuation=void 0,D1(B),v0(Q0)},onRetryableTerminal:async(Q0)=>{let R0=J4(Q0);if(!R0)return;throw B.fallback=!0,R0}}),o0=await NF(K1,K);if(o0!==!1){if(o0===!0||o0.status<200||o0.status>599)return X0;return new Response(o0.body,{status:o0.status,headers:{"content-type":"application/json",...o0.headers}})}let V9=()=>J(_,N(B,N0,t));if(!B.fallback)return BF(X0,V9);return V9()}catch(D){if(B.busy=!1,B.lastUsedAt=Date.now(),I0.isAbortError(D))throw B.streamFailures=0,B.continuation=void 0,D1(B),D;let w=I0.parseRateLimitSignal(D);if(w)A?.(w.window,w.resetAt);if(I0.isUpgradeFailure(D)&&!Z)B.fallback=!0;if(q(B),B.continuation=void 0,D1(B),B.fallback)return J(_,N(B,N0,t));return FF(new m0(D instanceof Error?D.message:String(D),{cause:D}))}}function q(_){if(_.streamFailures++,_.streamFailures>W)_.fallback=!0}function T(){let _=Date.now();for(let[E,b]of X){if(b.busy)continue;if(_-b.lastUsedAt<$)continue;D1(b),X.delete(E)}}function S(){clearInterval(j);for(let _ of X.values())D1(_);X.clear()}function c(_){let E=`${_}:`;for(let[b,f]of X){if(!b.startsWith(E))continue;D1(f),X.delete(b)}}return Object.assign(V,{close:S,remove:c})}function J4(Y){if(Y.type!=="error"||!h(Y.error)||Y.error.code!==eK)return;return Error(typeof Y.error.message==="string"?Y.error.message:eK)}async function NF(Y,J){if(J<=0)return!1;return new Promise((X,Q)=>{let $=setTimeout(()=>X(!1),J);Y.then((G)=>{clearTimeout($),X(G)},(G)=>{clearTimeout($),Q(G)})})}function BF(Y,J){let X=Y.body;if(!X)return Y;let Q=!1,$=new ReadableStream({async start(G){let W=X.getReader(),K=async(Z)=>{while(!0){let{done:U,value:L}=await Z.read();if(U)return;if(L&&L.length>0)Q=!0,G.enqueue(L)}};try{await K(W),G.close()}catch(Z){if(Q||!I0.isOversizedFrame(Z)){G.error(Z);return}try{let U=await J();if(!U.ok){G.error(new m0(`HTTP fallback after an oversized WebSocket frame failed with ${U.status}`));return}if(U.body)await K(U.body.getReader());G.close()}catch(U){G.error(U)}}},cancel(G){X.cancel(G)}});return new Response($,{status:Y.status,headers:Y.headers})}function FF(Y){return new Response(new ReadableStream({start(J){J.error(Y)}}),{status:200,headers:{"content-type":"text/event-stream"}})}async function jF(Y,J,X,Q,$,G,W){if(Y.socket?.readyState===WebSocket.OPEN&&Y.connectedAt&&Date.now()-Y.connectedAt<$)return Y.socket;D1(Y);let K=await I0.connectResponsesWebSocket({url:I0.toWebSocketUrl(J),headers:X,timeout:Q,rawWebSocket:G,signal:W??void 0});return Y.connectedAt=Date.now(),K}function D1(Y){if(Y.socket)Y.socket.close(),Y.socket=void 0;Y.connectedAt=void 0,Y.continuation=void 0}async function OF(Y,J,X,Q){if(!Y.socket||!Array.isArray(J.input)||J.input.length===0)return;let $=DF(J);await G9({sessionID:Q.sessionID,transport:"websocket",phase:"prewarm",bodyText:JSON.stringify($),url:Q.url,method:"POST",headers:Q.headers});let G=I0.streamResponsesWebSocket({socket:Y.socket,body:$,sessionID:Q.sessionID,idleTimeout:X,signal:Q.signal,onRateLimitReached:Q.onRateLimitReached,onComplete:(W,K)=>{N1({component:"ws-pool",event:"prewarm_completed",sessionID:Q.sessionID,responseID:X4(W),usage:Q4(W)}),W4(Y,$,W,K,!1)},onTerminal:(W)=>{if(W.type!=="response.completed"&&W.type!=="response.done")Y.continuation=void 0},onConnectionInvalid:()=>{Y.continuation=void 0},onAbort:()=>{Y.continuation=void 0},onRetryableTerminal:async(W)=>{let K=J4(W);if(!K)return;throw Y.fallback=!0,K}});await qF(G)}function X4(Y){let J=Y.response;if(!h(J))return;return typeof J.id==="string"?J.id:void 0}function Q4(Y){let J=Y.response;if(!h(J))return;return h(J.usage)?J.usage:void 0}async function qF(Y){let J=Y.body?.getReader();if(!J)return;while(!0)if((await J.read()).done)return}function DF(Y){return e9({...Y,generate:!1,input:[],previous_response_id:void 0,client_metadata:PF(Y.client_metadata)})}function $4(Y){return JSON.stringify({session_id:Y.session_id,thread_id:Y.thread_id,thread_source:Y.thread_source,turn_id:"",sandbox:Y.sandbox,request_kind:"prewarm",window_id:Y.window_id})}function PF(Y){if(!h(Y))return Y;if(typeof Y["x-codex-turn-metadata"]!=="string")return Y;try{let J=JSON.parse(Y["x-codex-turn-metadata"]);if(!h(J))return Y;return{...Y,"x-codex-turn-metadata":$4(J),"x-codex-ws-stream-request-start-ms":String(Date.now())}}catch{return Y}}function EF(Y){let J=Y["x-codex-turn-metadata"];if(!J)return Y;try{let X=JSON.parse(J);if(!h(X))return Y;return{...Y,"x-codex-turn-metadata":$4(X)}}catch{return Y}}var G4=["type","model","instructions","previous_response_id","input","tools","tool_choice","parallel_tool_calls","reasoning","store","stream","include","prompt_cache_key","text","generate","client_metadata"];function Y4(Y){let J={...Y};if(Array.isArray(Y.input))J.input=Y.input.map(MF);return J}function e9(Y){let J={};for(let X of G4)if(X in Y)J[X]=Y[X];for(let X of Object.keys(Y))if(!(X in J))J[X]=Y[X];return J}function MF(Y){if(!h(Y))return Y;if(typeof Y.type==="string")return Y;if(typeof Y.role!=="string")return Y;if(!("content"in Y))return Y;return{...Y,type:"message"}}function W4(Y,J,X,Q,$){let G=X.response,W=h(G)&&typeof G.id==="string"?G.id:void 0;if(!W||!Array.isArray(J.input)){Y.continuation=void 0;return}let K=$?new Set(Y.continuation?.finalizedCallIds):new Set;for(let Z of Q)K.add(Z);Y.continuation={responseID:W,input:J.input,signature:sX(J),finalizedCallIds:K}}function rX(Y,J,X=J){let Q=Array.isArray(J.input)?J.input:[],$=Array.isArray(X.input)?X.input:Q,G=sX(X),W=Y.turnInput&&Y.turnSignature===G?wF(Y.turnInput,$):void 0,K=W===void 0?Q:$.slice(W);if(K.length>0&&K.some(U4)||!Y.turnID)Y.turnID=u1(),Y.turnStartedAt=Date.now();Y.turnInput=$.slice(),Y.turnSignature=G}function z4(Y,J,X=J){rX(Y,J,X);let Q=J.client_metadata;if(!h(Q)||typeof Q["x-codex-turn-metadata"]!=="string")return J;let $=K4(Q["x-codex-turn-metadata"],Y.turnID,Y.turnStartedAt);if(!$)return J;return{...J,client_metadata:{...Q,"x-codex-turn-metadata":$}}}function K4(Y,J,X){let Q;try{Q=JSON.parse(Y)}catch{return}if(!h(Q))return;return JSON.stringify({session_id:Q.session_id,thread_id:Q.thread_id,thread_source:Q.thread_source,turn_id:J,sandbox:Q.sandbox,turn_started_at_unix_ms:X,request_kind:"turn",window_id:Q.window_id})}function wF(Y,J){if(Y.length>J.length)return;for(let X=0;X<Y.length;X++)if(B1(Y[X])!==B1(J[X]))return;return Y.length}function AF(Y,J){let X=Array.isArray(J.input)?J.input:void 0;if(!X||!Y.continuation)return J;if(Y.continuation.signature!==sX(J))return Y.continuation=void 0,J;if(!Z4(Y.continuation.input,X))return Y.continuation=void 0,J;if(Y.continuation.input.length===0)return{...J,previous_response_id:Y.continuation.responseID};let Q=X.slice(Y.continuation.input.length),$=TF(Q,Y.continuation.finalizedCallIds);if($.length===0)return J;return{...J,previous_response_id:Y.continuation.responseID,input:$}}function RF(Y,J){let X=Array.isArray(J.input)?J.input:void 0;if(!Y.continuation)return!0;if(!X)return!1;if(!Z4(Y.continuation.input,X))return!0;return X.slice(Y.continuation.input.length).some(U4)}function U4(Y){if(!h(Y))return!1;if(!(Y.type==="message"||("role"in Y)))return!1;return Y.role==="user"||Y.role==="developer"}function TF(Y,J){return Y.filter((X)=>{if(!h(X))return!0;if(typeof X.type==="string"&&X.type.endsWith("_output"))return!0;if(X.type==="function_call_output"||X.type==="custom_tool_call_output")return!0;if(X.type==="function_call"||X.type==="custom_tool_call"){let Q=typeof X.call_id==="string"?X.call_id:typeof X.id==="string"?X.id:void 0;return Q?!J.has(Q):!0}if(X.type==="message")return X.role!=="assistant";if(typeof X.role==="string")return X.role!=="assistant";return!1})}function sX(Y){return B1(CF(Object.fromEntries(Object.entries(Y).filter(([J])=>J!=="input"&&J!=="stream"&&J!=="background"&&J!=="previous_response_id"&&J!=="generate"))))}function CF(Y){if(!h(Y.client_metadata))return Y;let J=Object.fromEntries(Object.entries(Y.client_metadata).filter(([X])=>X!=="x-codex-turn-metadata"&&X!=="x-codex-ws-stream-request-start-ms"));return{...Y,client_metadata:J}}function Z4(Y,J){if(Y.length>=J.length)return!1;for(let X=0;X<Y.length;X++)if(B1(Y[X])!==B1(J[X]))return!1;return!0}function L4(Y){if(!Y?.headers)return Y;if(Y.headers instanceof Headers){let J=new Headers(Y.headers);for(let X of oX)J.delete(X);return{...Y,headers:J}}if(Array.isArray(Y.headers))return{...Y,headers:Y.headers.filter((J)=>!oX.has(J[0].toLowerCase()))};return{...Y,headers:Object.fromEntries(Object.entries(Y.headers).filter(([J])=>!oX.has(J.toLowerCase())))}}var _F=300000,IF=30000,SF=5000,kF=100;function X8(Y){let J=Y.logger,X=Y.now??Date.now,Q=Y.manifestPath??_J(),$=Y.cacheConnector??gF(J),G=Y.detectClaustrumConnection??N4,W,K,Z,U,L,j=!1,N=new Map,V=new Set,q,S={isEnabled:()=>U?.status==="available",wasDetected:()=>U?.status==="available",getCache:()=>W,async ensureCache(){if(W)return W;return await c(),W},getTransport:()=>K,getCustodyProjection:(u,M)=>{let A=N.get(u.id);if(A)return A;return H4(u,Y.storage,M,W,q)},async boot(){if(j)return;try{U=await G()}catch(w){J.warn("custody detection failed",{error:w instanceof Error?w.message:String(w)});return}if(U.status!=="available"){if(U.status==="malformed")J.warn("custody connection malformed; disabled for this process",{reason:U.reason});else J.info("custody not configured; no client/timer created",{});return}let u=await Y.readCustodyManifest(Q);if(q=u,await E(u),Y.storage?.claustrum?.mode!=="claustrum"){J.info("custody connection available but mode is local; manifest read for the refresh gate, no client/timer",{});return}if(!await c()){O0();return}let M=W;if(!M)return;if(!u.ok&&u.reason!=="absent"){_(await Y.loadAccounts(s(Y.configPath))),O0();return}await f(),await o(u);let A=await Y.loadAccounts(s(Y.configPath));await Y.onReconcileStep?.("enabled-manifest-join");let B=aX(u,A),D=[];for(let w of tX(A)){if(A?.claustrum?.transition?.fingerprints.fallbacks[w.id])continue;if(!eX(w,u,E0)&&!(k0(w,E0)&&!w.accountId))continue;if(!B.get(w.id))continue;let p=c0(M);D.push(Y8(w,p).then((n)=>z1(w,n,u)).catch((n)=>J.warn("custody boot sweep failed",{error:n instanceof Error?n.message:String(n)})))}await Promise.all(D),await hF(B,M,A,kF),O0()},async runTick(){if(j)return;if(Y.storage?.claustrum?.mode!=="claustrum")return;let u=q?.ok?q.revision:void 0,M=Y.readCustodyManifest(Q),A=W?void 0:c(),B=await M;if(q=B,!B.ok&&B.reason!=="absent"){_(await Y.loadAccounts(s(Y.configPath)));return}let D=B.ok&&B.revision!==u?await E(B):await Y.loadAccounts(s(Y.configPath));if(!W&&!await A)return;if(B.ok&&B.revision===u){await f(),await Y.onReconcileStep?.("enabled-manifest-join");let m=aX(B,D);await b(B,m),await W0(B,m);return}await f(),await o(B),await Y.onReconcileStep?.("enabled-manifest-join");let w=aX(B,D);await b(B,w),await W0(B,w)},dispose(){if(j)return;if(j=!0,L)(Y.clearIntervalFn??clearInterval)(L),L=void 0;try{W?.close()}catch{}if(!W)try{K?.close()}catch{}W=void 0,K=void 0}};async function c(){if(j)return!1;if(W)return!0;if(Z)return Z;if(!U)return!1;let u=(async()=>{let M;try{let A=$({connectionFile:fF(U),handshakeTimeoutMs:SF});M=new j4({connector:()=>A,now:X});let B=await A;if(j)return M.close(),!1;return W=M,K=B,!0}catch(A){return M?.close(),J.warn("custody connect failed; disabled until tick reconnect",{error:A instanceof Error?A.message:String(A)}),!1}})();Z=u;try{return await u}finally{if(Z===u)Z=void 0}}function _(u){for(let M of tX(u))N.set(M.id,{state:"inert",reason:"manifest-unreadable"})}async function E(u){let M=await Y.loadAccounts(s(Y.configPath));if(!M||!u.ok)return M;for(let[A,B]of y0(u)){if(!M)break;if(A==="main")continue;if(M.accounts.some((p)=>p.id===A))continue;let D=M.claustrum?.rowHistory?.includes(A)?"row removed":"awaiting discovery",w=`${A}:${D}`;if(!V.has(w))V.add(w),J.info(`orphan-binding: ${D}`,{accountId:A});if(M.claustrum?.mode!=="claustrum")continue;let m=null;while(!m&&!j)if(m=await Y.acquireRefreshFileLock({name:M1(A),ttlMs:b1,path:Y.configPath,renew:!0}),!m)await new Promise((p)=>setTimeout(p,5));if(!m)continue;try{await Y.onReconcileStep?.("discovery-lock-acquired",A);let p=await Y.readCustodyManifest(Q),n=await Y.loadAccounts(s(Y.configPath));if(n?.claustrum?.mode!=="claustrum"||!p.ok||y0(p).get(A)!==B||n.accounts.some((z0)=>z0.id===A))continue;await Y.mutateAccounts((z0)=>{if(z0.claustrum?.mode!=="claustrum"||z0.accounts.some((r)=>r.id===A))return z0;return{...z0,claustrum:{...z0.claustrum,mode:"claustrum",rowHistory:[...new Set([...z0.claustrum?.rowHistory??[],A])]},accounts:[...z0.accounts,{id:A,...V1(E0),enabled:!0}]}},s(Y.configPath))}finally{await m.release().catch(()=>{})}M=await Y.loadAccounts(s(Y.configPath))}return M}async function b(u,M){if(!W)return;let A=await Y.loadAccounts(s(Y.configPath)),B=c0(W);for(let D of tX(A)){if(A?.claustrum?.transition?.fingerprints.fallbacks[D.id])continue;if(!eX(D,u,E0)&&!(k0(D,E0)&&!D.accountId))continue;if(!M.has(D.id))continue;let w=await Y8(D,B);z1(D,w,u)}}async function f(){let u=await Y.loadAccounts(s(Y.configPath)),M=u?.claustrum?.transition;if(u?.claustrum?.mode!=="claustrum"||!M)return;let A=!1;for(let[B,D]of Object.entries(M.fingerprints.fallbacks)){let w=await Y.acquireRefreshFileLock({name:M1(B),ttlMs:b1,path:Y.configPath,renew:!0});if(!w){A=!0;continue}try{if(!await Y.withAccountStoreTransaction(async(p)=>{let n=await p.read(),z0=n.accounts.find((A0)=>A0.id===B);if(z0?.type==="oauth"&&k0(z0,"openai"))return!0;if(!z0||!V0(z0)||!z0.access||Q9(z0.access,z0.refresh)!==D)return N.set(B,{state:"inert",reason:"new-local-family-under-claustrum"}),!1;let r=structuredClone(n),v0=r.accounts.find((A0)=>A0.id===B);if(!v0||!V0(v0))return!1;Object.assign(v0,V1(E0)),await p.write(r);let K1=(await p.read()).accounts.find((A0)=>A0.id===B);return!!(K1?.type==="oauth"&&k0(K1,"openai"))},s(Y.configPath)))A=!0}catch{A=!0}finally{await w.release().catch(()=>{})}}if(M.fingerprints.main)if(!Y.auth)A=!0;else{let B=await Y.acquireRefreshFileLock({name:c1,ttlMs:b1,path:Y.configPath,renew:!0});if(!B)A=!0;else try{if(await xJ(M.fingerprints.main,{auth:Y.auth,warn:(w)=>J.warn(w,{})})!=="tombstoned")A=!0}finally{await B.release().catch(()=>{})}}if(A)return;await Y.withAccountStoreTransaction(async(B)=>{let D=await B.read();if(D.claustrum?.mode!=="claustrum"||D.claustrum.transition?.manifestRevision!==M.manifestRevision||D.claustrum.transition?.storeGeneration!==M.storeGeneration)return;await B.writeMode("claustrum")},s(Y.configPath))}async function o(u){if(!W||!u.ok)return;let M=await Y.loadAccounts(s(Y.configPath));if(M?.claustrum?.mode!=="claustrum")return;let A=y0(u);for(let B of M.accounts){if(B.type!=="oauth"||B.corrupt!==!0)continue;let D=A.get(B.id),w=D?await t(B.id,B.accountId,D):"no_handle",m=S9({mode:"claustrum",manifest:D?"present":"absent",local:"gone",vault:()=>w,verifiedInProcessLogin:!1});if(!("installTombstone"in m)||!m.installTombstone||!D)continue;await N0(B.id,D)}}async function t(u,M,A){if(Y.resolveFallbackVaultState)return Y.resolveFallbackVaultState({accountId:u,handle:A});if(!W)return"cold";if(W.isReauth(A,X()))return"needs_reauth";try{let B=await W.get(A,v1(Y.storage),{force:!0}),D=Q1(B.payload.access),w=D?$1(D):void 0;if(M&&w&&w!==M)return"identity_mismatch";if(!w)J.warn("custody identity unverifiable; serving",{credentialId:A});return"serves"}catch{return W.isReauth(A,X())?"needs_reauth":"cold"}}async function N0(u,M){let A=await Y.acquireRefreshFileLock({name:M1(u),ttlMs:b1,path:Y.configPath,renew:!0});if(!A)return;try{let B=await Y.readCustodyManifest(Q),D=await Y.loadAccounts(s(Y.configPath)),w=D?.accounts.find((m)=>m.id===u);if(D?.claustrum?.mode!=="claustrum"||!B.ok||y0(B).get(u)!==M||w?.type!=="oauth"||w.corrupt!==!0)return;await Y.mutateAccounts((m)=>{let p=m.accounts.find((r)=>r.id===u);if(p?.type!=="oauth"||p.corrupt!==!0)return m;let{corrupt:n,...z0}=p;return{...m,accounts:m.accounts.map((r)=>r.id===u?{...z0,...V1(E0)}:r)}},s(Y.configPath))}finally{await A.release().catch(()=>{})}}async function W0(u,M){if(!W)return;for(let[A,B]of M){if(W.isReauth(B,X()))continue;let w=(await Y.loadAccounts(s(Y.configPath)))?.accounts.find((m)=>m.id===A);if(!w||!V0(w))continue;if(!F4(w,u,Y.storage??{}))continue;try{let m=await W.get(B);N.set(A,{state:"vault",recordVersion:m.recordVersion})}catch{}}}function O0(){if(j)return;let u=Y.setIntervalFn??setInterval,M=Math.floor((Math.random()*2-1)*IF),A=_F+M;if(L=u(()=>{if(j)return;S.runTick().catch((D)=>J.warn("custody tick failed",{error:D instanceof Error?D.message:String(D)}))},A),L&&typeof L==="object"&&"unref"in L)L.unref?.()}function c0(u){return{loadAccounts:Y.loadAccounts,readCustodyManifest:Y.readCustodyManifest,acquireRefreshFileLock:Y.acquireRefreshFileLock,configPath:Y.configPath,paths:s(Y.configPath),manifestPath:Q,cache:u,minTtlMs:v1(Y.storage),mutateAccounts:Y.mutateAccounts,provider:E0,now:X}}function z1(u,M,A){if(M.kind==="succeeded"){N.set(u.id,{state:"vault",recordVersion:M.recordVersion});return}if(M.kind==="failed"){let D={gone:"gone",identityMismatch:"identityMismatch",nullClaim:"nullClaim",unavailable:"unavailable"}[M.reason];N.set(u.id,{state:"inert",reason:D==="unavailable"?"takeover-incomplete/vault-unavailable":"identity-mismatch"}),bF(J,u.id,D,M.recordVersion,X());return}if(M.reason==="notEnrolling"){let B=X(),D=H4(u,Y.storage,B,W,A);if(D)N.set(u.id,D)}}return S}var xF=3600000,J8=new Map;function bF(Y,J,X,Q,$){let G=`${J}:${X}`,W=J8.get(G);if(W!==void 0&&$-W<xF)return;J8.set(G,$),Y.warn("custody enroll-completion sweep failed",{accountId:J,reason:X,...typeof Q==="number"?{recordVersion:Q}:{}})}function vF(){J8.clear()}function v1(Y){return((Y?.refresh?.refreshBeforeExpiryMinutes??240)+30)*60000}function aX(Y,J){let X=new Map;for(let[Q,$]of y0(Y)){let G=J?.accounts.find((W)=>W.id===Q);if(G?.type!=="oauth")continue;if(!KJ(G,Y,E0))continue;X.set(Q,$)}return X}function H4(Y,J,X,Q,$){let G=J??{},W=$?y0($).get(Y.id):void 0;if(!k0(Y,E0)&&!W)return;if(!k0(Y,E0))return;if(G.claustrum?.mode!=="claustrum"||!W)return YY({kind:"NEEDS_LOGIN"});return YY({kind:"INERT",reason:Q?.isReauth(W,X)?"vault-reauth":"vault-cold"})}async function hF(Y,J,X,Q,$=[]){if(Y.size===0&&$.length===0)return;let G=[...$];for(let[,W]of Y)G.push(J.get(W).then(()=>{return}).catch(()=>{}));await Promise.race([Promise.all(G),new Promise((W)=>setTimeout(W,Q))])}function tX(Y){if(!Y)return[];return Y.accounts.filter(V0)}function gF(Y){return async(J)=>{let X=await B4.connect({connectionFile:J.connectionFile,handshakeTimeoutMs:J.handshakeTimeoutMs});return yF(X,Y)}}function yF(Y,J){return{getCredential:(X,Q)=>Y.getCredential(X,Q),statusCredential:(X)=>Y.statusCredential(X),reportAuthFailure:(X)=>Y.reportAuthFailure({handle:X.handle,providerStatus:X.providerStatus,recordVersion:X.recordVersion,reporterSource:X.reporterSource}),close:()=>Y.close()}}function fF(Y){if(Y.status!=="available")return Y.path??"";return V4()}var lF=new Set(["gpt-5.5","gpt-5.3-codex-spark","gpt-5.4","gpt-5.4-mini"]),dF=new Set(["gpt-5.6","gpt-6"]),iF="Refusing to send a request with no access token. This is a defect in the plugin, not a problem with the provider or the account; the transport log names the account and the path that produced it.",oF=new Set(["gpt-5.6-sol","gpt-5.6-terra","gpt-5.6-luna","gpt-6-astra","gpt-6-sol","gpt-6-luna"]),nF="opencode-oauth-dummy-key",rF="terminal_resize_reflow",U8="0.155.0",sF=`codex_exec/${U8} (Debian 12.0.0; aarch64) unknown (codex_exec; ${U8})`,aF="seccomp",mM=()=>c1,Q8=120000,tF=90000,eF=4000,O4=50,q4=3,Yj=25,Jj=60000,Xj="__OPENCODE_OPENAI_AUTH_COMMAND_HANDLED__",Z8=!1;function cM(){Z8=!1}var D4=B0("models"),P4=!1,E4=!1;class H8 extends Error{code="OPENAI_AUTH_PERSIST_FAILED";constructor(Y){super("OpenAI OAuth token refreshed but could not be persisted; re-login required",{cause:Y});this.name="AuthPersistError"}}class W1 extends Error{code;constructor(Y,J){super(J);this.name="ResetTargetResolutionError",this.code=Y}}function M4(Y,J,X,Q){let $=(X?.refresh?.refreshBeforeExpiryMinutes??240)*60000;return!Y||!J||J-Q<=$}function Qj(Y){return async(J)=>{if(J==="main"){let Z=await Y.loadAccounts({configPath:Y.accountStoragePath,statePath:Y.accountStatePath}),U=await Y.getAuth();if(U.type!=="oauth")throw new W1("non_oauth_account","Main OpenAI account is not authenticated with OAuth.");if(M4(U.access,U.expires,Z,Y.now()))U={type:"oauth",...await Y.refreshMainWithLease()};if(!U.access)throw new W1("token_unavailable","Main OpenAI account has no usable access token.");let L=Q1(U.access),j=L?$1(L):void 0,N=await Y.loadAccounts({configPath:Y.accountStoragePath,statePath:Y.accountStatePath});return{accountKey:J,label:"Main account",accessToken:U.access,chatgptAccountId:j??N?.mainAccountId}}let X=await Y.loadAccounts({configPath:Y.accountStoragePath,statePath:Y.accountStatePath}),Q=X?.accounts.find((Z)=>Z.id===J);if(!X||!Q)throw new W1("unknown_account",`Fallback account ${J} was not found.`);if(Q.enabled===!1)throw new W1("disabled_account",`Fallback account ${J} is disabled.`);if(!V0(Q))throw new W1("non_oauth_account",`Fallback account ${J} is not an OAuth account.`);let $=Q;if(!await Y.isFallbackRefreshInert?.($,X)&&M4($.access,$.expires,X,Y.now()))$=await Y.refreshFallbackAccount($,X);let G=Y.resolveFallbackAccess?await Y.resolveFallbackAccess($,X):$.access?{token:$.access,provenance:"local"}:h1;if(G===h1||G===s1)throw new W1("token_unavailable",`Fallback account ${J} has no usable access token.`);let W=await Y.loadAccounts({configPath:Y.accountStoragePath,statePath:Y.accountStatePath}),K=W?.accounts.find((Z)=>Z.id===J);if(!W||!K)throw new W1("unknown_account",`Fallback account ${J} was not found.`);if(K.enabled===!1)throw new W1("disabled_account",`Fallback account ${J} is disabled.`);if(!V0(K))throw new W1("non_oauth_account",`Fallback account ${J} is not an OAuth account.`);return{accountKey:J,label:$.label??J,accessToken:G.token,chatgptAccountId:K.accountId,onAuthFailure:G.provenance==="local"?void 0:async(Z)=>{await Y.reportAuthFailure?.({handle:G.provenance.handle,providerStatus:Z,recordVersion:G.provenance.recordVersion})}}}}function $j(){return{fetchImpl:fetch,now:Date.now,randomUUID:()=>crypto.randomUUID()}}function $8(Y){return Y instanceof H8}function w4(){throw Error(Xj)}function Gj(Y){return Math.floor(Math.random()*Y)}function Wj(Y){if(typeof Y!=="string")return;try{let J=JSON.parse(Y);return typeof J==="object"&&J!==null&&!Array.isArray(J)?J:void 0}catch{return}}function zj(Y,J,X){let Q=Y.get(J);if(Q)return Q;let $=u1(),G={threadID:$,turnID:u1(),windowID:`${$}:0`};return Y.set(J,G),X?.(),G}function s4(){return K8(OY(),"openai-auth-sessions.json")}function Kj(){let Y=new Map;try{let J=JSON.parse(r4(s4(),"utf8"));if(!h(J.sessions))return Y;for(let[X,Q]of Object.entries(J.sessions)){if(!h(Q)||typeof Q.threadID!=="string")continue;Y.set(X,{threadID:Q.threadID,turnID:u1(),windowID:`${Q.threadID}:0`})}}catch{}return Y}function Uj(Y){let J=s4(),X=`${J}.tmp-${process.pid}`;try{mF(OY(),{recursive:!0});let Q={version:1,sessions:Object.fromEntries([...Y.entries()].map(([$,G])=>[$,{threadID:G.threadID}]))};pF(X,`${JSON.stringify(Q,null,2)}
|
|
123
|
+
`,"utf8"),cF(X,J)}catch{}}function A4(Y,J){return h(Y)&&(Y.type==="message"||("role"in Y))&&Y.role===J}function Zj(Y,J){if(Y.length>J.length)return!1;for(let X=0;X<Y.length;X++)if(B1(Y[X])!==B1(J[X]))return!1;return!0}function Lj(Y,J){if(!Y.input)return J.length>0;if(!Zj(Y.input,J))return!0;return J.slice(Y.input.length).some((Q)=>A4(Q,"user")||A4(Q,"developer"))}function Hj(Y,J){let X=Array.isArray(J?.input)?J.input:void 0;if(X&&(Lj(Y,X)||!Y.turnID))Y.turnID=u1(),Y.turnStartedAt=Date.now();else if(!Y.turnStartedAt)Y.turnStartedAt=Date.now();if(X)Y.input=X}function Vj(Y){if(!Y.metadata)return{init:Y.init};let J=Wj(Y.init?.body);if(!Y.websocket)Hj(Y.metadata,J);else if(!Y.metadata.turnStartedAt)Y.metadata.turnStartedAt=Date.now();if(!Y.metadata.turnStartedAt)Y.metadata.turnStartedAt=Date.now();let X=JSON.stringify({session_id:Y.metadata.threadID,thread_id:Y.metadata.threadID,thread_source:"user",turn_id:Y.metadata.turnID,sandbox:aF,turn_started_at_unix_ms:Y.metadata.turnStartedAt,request_kind:"turn",window_id:Y.metadata.windowID});if(Y.headers.set("originator","codex_exec"),Y.websocket)Y.headers.delete("accept"),Y.headers.delete("content-type");else Y.headers.set("accept","text/event-stream");if(Y.headers.set("session-id",Y.metadata.threadID),Y.headers.delete("x-session-id"),Y.headers.delete("x-session-affinity"),Y.headers.set("thread-id",Y.metadata.threadID),Y.headers.set("x-codex-window-id",Y.metadata.windowID),Y.headers.set("x-client-request-id",Y.metadata.threadID),Y.headers.set("x-codex-beta-features",rF),Y.headers.set("x-codex-turn-metadata",X),Y.headers.set("user-agent",sF),Y.headers.set("version",U8),Y.dumpSessionID)Y.headers.set(w1,Y.dumpSessionID);let Q=J;if(!Q)return{init:Y.init};let $=Y.responsesLite&&typeof Q.model==="string"&&oF.has(Q.model);if($&&!Y.websocket)Y.headers.set("x-openai-internal-codex-responses-lite","true");if(Q.prompt_cache_key=Y.metadata.threadID,Q.parallel_tool_calls??=!0,Array.isArray(Q.tools))Q.tools=Q.tools.map(Ej);if(Dj(Q),Pj(Q),V5(Q),Fj(Q),Oj(Q,Y.metadata),$)qj(Q);let G={...typeof Q.client_metadata==="object"&&Q.client_metadata!==null?Q.client_metadata:{},"x-codex-installation-id":Y.installationID,"x-codex-window-id":Y.metadata.windowID};if(Y.websocket){if(G["x-codex-turn-metadata"]=X,G["x-codex-ws-stream-request-start-ms"]=String(Date.now()),$)G.ws_request_header_x_openai_internal_codex_responses_lite="true"}return Q.client_metadata=G,Y.headers.delete("content-length"),Y.headers.delete("Content-Length"),{init:{...Y.init,body:JSON.stringify(e9(Q))}}}function Nj(Y,J){return Y.find((X)=>X.enabled!==!1&&V0(X)&&(X.id===J||X.accountId===J))}function R4(Y,J){if(!J)return Y;let X={...Y};for(let Q of["resetCreditsAvailable","resetCreditsApplicable"]){let $=J[Q];if(X[Q]===void 0&&$!==void 0)X[Q]=$}if(X.spendControl===void 0&&X.spendControlCleared!==!0&&J.spendControl!==void 0)X.spendControl=J.spendControl;return X}function ZJ(Y,J){if(!Y)return Y;if(typeof Y.checkedAt==="number"&&Number.isFinite(Y.checkedAt))return Y;return{...Y,checkedAt:J}}function LJ(Y,J){return y0(Y).get(J)}function a4(Y,J,X=Date.now(),Q=J.mainAccountId,$){let G=Y.getMain(),W=G?.quota;return{main:{quota:W?{...W,checkedAt:G.checkedAt,primary:ZJ(W.primary,G.checkedAt),secondary:ZJ(W.secondary,G.checkedAt)}:null,...typeof Q==="string"?{mainAccountId:Q}:{},killed:!1,...W?.resetCreditsAvailable!==void 0?{resetCredits:W.resetCreditsAvailable}:{}},fallbacks:J.accounts.filter((K)=>K.enabled).map((K)=>{let Z=Y.getFallback(K.id),U=Z?.quota,L=$?.(K,X);return{id:K.id,label:K.label,accountId:Z?.accountId??K.accountId,quota:U?{...U,checkedAt:Z.checkedAt,primary:ZJ(U.primary,Z.checkedAt),secondary:ZJ(U.secondary,Z.checkedAt)}:null,killed:!1,enabled:!0,...U?.resetCreditsAvailable!==void 0?{resetCredits:U.resetCreditsAvailable}:{},...L?{custody:L}:{}}}),route:J.routing?.mode??"main-first",lastUpdated:X}}function pM(Y,J,X,Q=Date.now()){return{...a4(Y,J,Q),activeId:X}}function T4(Y,J){if(J?.headers!==void 0)return new Headers(J.headers);if(Y instanceof Request)return new Headers(Y.headers);return new Headers}async function Bj(Y,J){if(!(Y instanceof Request))return J;let X=new Request(Y,J),Q=X.method.toUpperCase(),$=Q==="GET"||Q==="HEAD"||X.body===null?void 0:await X.text();return{method:X.method,headers:new Headers(X.headers),body:$,signal:X.signal,cache:X.cache,credentials:X.credentials,integrity:X.integrity,keepalive:X.keepalive,mode:X.mode,redirect:X.redirect,referrer:X.referrer,referrerPolicy:X.referrerPolicy}}function C4(Y){return Y.get("x-session-affinity")??Y.get("x-opencode-session")??Y.get("x-session-id")??Y.get("session-id")??void 0}function Fj(Y){if(!g0().webSearch)return;if(!Array.isArray(Y.tools)||Y.tools.length===0)return;if(Y.tools.some((J)=>h(J)&&J.type==="web_search"))return;Y.tools=[...Y.tools,{type:"web_search",external_web_access:!1,search_content_types:["text","image"]}]}function L8(Y){if(Array.isArray(Y)){for(let J of Y)L8(J);return}if(!h(Y))return;if(Y.type==="input_image")delete Y.detail;for(let J of Object.values(Y))L8(J)}var jj=new Set(["gpt-6-astra","gpt-6-sol","gpt-6-luna"]);function Oj(Y,J){let X=typeof Y.model==="string"?Y.model:"";if(!jj.has(X))return;let Q=h(Y.reasoning)?Y.reasoning:void 0,$=typeof Q?.effort==="string"?Q.effort:void 0;if(!$)return;if(J.pinnedEffort===void 0){J.pinnedEffort=$;return}if($===J.pinnedEffort)return;let G=Array.isArray(Y.input)?Y.input:void 0;if(!G||G.length===0)return;Y.reasoning={...Q,effort:J.pinnedEffort},G.splice(G.length-1,0,{type:"configuration_update",reasoning:{effort:$}})}function qj(Y){let J=h(Y.reasoning)?{...Y.reasoning}:{};J.context="all_turns",Y.reasoning=J,Y.parallel_tool_calls=!1;let X=Array.isArray(Y.input)?Y.input:[];L8(X);let $=[{type:"additional_tools",role:"developer",tools:Array.isArray(Y.tools)?Y.tools.filter((G)=>!(h(G)&&G.type==="web_search")):[]}];if(typeof Y.instructions==="string"&&Y.instructions.length>0)$.push({type:"message",role:"developer",content:[{type:"input_text",text:Y.instructions}]});Y.input=[...$,...X],delete Y.tools,delete Y.instructions}function Dj(Y){if(!Array.isArray(Y.tools))return;Y.tools=Y.tools.filter((J)=>!(h(J)&&J.type==="function"&&J.name==="web_search"))}function Pj(Y){if(!Array.isArray(Y.tools))return;Y.tools=Y.tools.filter((J)=>!(h(J)&&J.type==="function"&&J.name==="websearch_web_search_exa"))}function Ej(Y){if(!h(Y))return Y;if(Y.type!=="function")return Y;let J=h(Y.parameters)&&"$schema"in Y.parameters?(()=>{let{$schema:Z,...U}=Y.parameters;return U})():Y.parameters,{type:X,name:Q,description:$,strict:G,parameters:W,...K}=Y;return{type:X,name:Q,description:$,strict:G??!1,parameters:J,...K}}async function Mj(Y,J={}){let X=J.codexApiEndpoint??g0().codexApiEndpoint,Q=crypto.randomUUID(),$=Kj(),G=()=>Uj($),W=!1,K=[],Z=null,U=Y.client.auth,L=new Map,j=new Map,N,V,q,T={},S=J.custody,c=B0("custody"),_=(M,A="")=>M?async()=>{let B=await M();return{url:B.url,instructions:B.instructions??A,method:"auto",callback:async()=>{try{let D=await B.tokens;return{type:"success",refresh:D.refresh_token,access:D.access_token,expires:Date.now()+(D.expires_in??3600)*1000,accountId:J9(D)}}finally{B.cleanup?.()}}}}:void 0;function E(M,A){return X8({storage:M,configPath:e(),loadAccounts:P0,mutateAccounts:j0,withAccountStoreTransaction:VJ,readCustodyManifest:s0,acquireRefreshFileLock:H1,auth:A,...S?{detectClaustrumConnection:async()=>S.detection==="absent"?{status:"absent",path:"test"}:{status:"available",schema:1,wireVersion:1,endpoints:[]},cacheConnector:async()=>S.transport}:{},logger:{info:(B,D)=>c.info(B,D??{}),warn:(B,D)=>c.warn(B,D??{}),debug:(B,D)=>c.debug(B,D??{}),error:(B,D)=>c.error(B,D??{})},now:S?.now})}let b=await P0(s(e())),f=await s0(),o=Y.client.auth;if(o.get&&o.all){if(f1(b??{})==="claustrum")q=E(b,{all:o.all,get:o.get,set:o.set}),S?.onRuntime?.(q),await q.boot();let M=q?.getCache();if(M)T.cache=M;if(T.mainVerdict=await yQ({client:{auth:o},mode:f1(b??{}),manifest:f,mainAccountId:b?.mainAccountId,getCredential:M?async(A)=>{return{access:(await M.get(A,v1(b))).payload.access}}:void 0,isReauth:M?(A)=>M.isReauth(A):void 0,now:Date.now,sleep:(A)=>new Promise((B)=>setTimeout(B,A))}),T.mainVerdict){let A=await r1();await z8({...A,main:{...A.main,custody:YY(T.mainVerdict)}})}}let t=new MJ,N0,W0={},O0=BQ({client:Y.client,getAuth:async()=>N0?.(),fetchImpl:fetch,dependencies:{...S?.authorize?{authorizeBrowser:_(S.authorize.browser,"Complete authorization in your browser. This window will close automatically."),authorizeHeadless:_(S.authorize.headless)}:{},custodyQuotaDeps:W0}}),c0=(M)=>async(A)=>{let B=await kJ();try{let D=await M(A);if(D.method!=="auto")return await B.release(),D;return{...D,callback:async()=>{try{let w=await D.callback();if(w.type!=="success"||!("refresh"in w))return await B.release(),w;return iQ({accessToken:w.access??"",refreshToken:w.refresh,getAuth:async()=>{let m=await U.get({path:{id:"openai"}});return h(m)&&typeof m.access==="string"&&typeof m.refresh==="string"?{access:m.access,refresh:m.refresh}:void 0},onObserved:({access:m,refresh:p})=>hQ({type:"oauth",access:m,refresh:p}),release:()=>B.release(),warn:(m)=>S?.warn?.(m)??c.warn(m),now:S?.now??Date.now,sleep:S?.sleep??((m)=>Bun.sleep(m))}).catch(()=>B.release()),w}catch(w){throw await B.release(),w}}}}catch(D){throw await B.release(),D}},z1=O0.map((M)=>M.type==="oauth"?{...M,authorize:c0(M.authorize)}:M);async function u(M,A){let B=Y.client.session;if(typeof B?.promptAsync==="function"){let D=await P5(Y.client,M),w={noReply:!0,parts:[{type:"text",text:A,ignored:!0}]};if(D?.agent)w.agent=D.agent;if(D?.model)w.model=D.model;if(D?.variant)w.variant=D.variant;await B.promptAsync({path:{id:M},body:w});return}}return{async dispose(){t.stop(),q?.dispose(),N?.stopBackgroundRefresh(),N=void 0;for(let B of K)B.close();K.length=0;let M=globalThis;for(let[B,D]of L)if(M.__openaiAuthCacheKeepManagers?.get(B)===D)D.stop(),M.__openaiAuthCacheKeepManagers.delete(B);L.clear();let A=globalThis;for(let[B,D]of j)if(A.__openaiAuthRpcServers?.get(B)===D)await D.stop().catch(()=>{}),A.__openaiAuthRpcServers.delete(B);j.clear()},async event(M){if(M.event.type!=="session.deleted")return;let A=M.event.properties.info,B=$.get(A.id);if(B)Z?.cacheKeepManager?.remove(B.threadID);if($.delete(A.id))G();if(V){let D=(await P0(s(e())))?.accounts;await d4(A.id,D,V)}for(let D of K)D.remove(A.id)},provider:{id:"openai",async models(M,A){if(A.auth?.type!=="oauth")return M.models;let B=await P0(s(e())),D=!B||h4(B),w=D?null:await j5();if(!D&&w&&!P4)P4=!0,D4.debug("restoring OAuth model costs from models.dev catalog");if(!D&&!w&&!E4)E4=!0,D4.warn("models.dev catalog unavailable; OAuth model costs could not be restored");return Object.fromEntries(Object.entries(M.models).filter(([,m])=>{if(m.options.reasoningMode==="pro")return!1;if(lF.has(m.api.id))return!0;if(dF.has(m.api.id))return!1;let n=m.api.id.match(/^gpt-(\d+(?:\.\d+)?)/)?.[1];return n?parseFloat(n)>5.4:!1}).map(([m,p])=>[m,{...p,cost:D?{input:0,output:0,cache:{read:0,write:0}}:w?.[p.api.id]??w?.[m]??p.cost,limit:p.id.includes("gpt-5.5")?{context:400000,input:272000,output:128000}:p.id.includes("gpt-6-astra")?{context:872000,input:744000,output:128000}:p.id.includes("gpt-5.6")||p.id.includes("gpt-6-sol")||p.id.includes("gpt-6-luna")?{context:372000,input:244000,output:128000}:p.limit}]))}},tool:{web_search:L5},auth:{provider:"openai",async loader(M){N0=M;let A=await M();if(A.type!=="oauth")return{};let B=IY(A),D=B.kind==="tombstone"||B.kind==="empty",w=Y.directory?await n4(Y.directory):void 0,m=w?.dir??e();if(!D)await y4({type:"oauth",access:A.access??"",refresh:A.refresh??"",expires:A.expires??0},s(e()));let p=await P0(s(e())).catch((H)=>{let F=e();throw Error(`OpenAI auth store at ${F} is corrupt or unreadable: ${H instanceof Error?H.message:String(H)}. Fix or remove it to continue.`,{cause:H})}),n;async function z0(){let H=e();try{let F=uF(H);if(n?.path===H&&n.mtimeMs===F.mtimeMs&&n.size===F.size)return n.storage;let O=await P0(s(H));return n={path:H,mtimeMs:F.mtimeMs,size:F.size,storage:O},O}catch{return n=void 0,P0(s(H))}}function r(){n=void 0}if(p&&A.access&&!D){let H=J9({id_token:"",access_token:A.access,refresh_token:A.refresh??""});if(H&&H!==p.mainAccountId)await j0((F)=>{return F.mainAccountId=H,F},s(e())),p.mainAccountId=H,r()}let v0=p?.logging?.level;if(v0&&typeof v0==="string")CY(v0);let K1=B0("transport"),A0=B0("quota"),a1=B0("refresh"),J1=B0("accounts");K1.info("codex auth loader ready",{codexApiEndpoint:X,transport:g0().rawWebSocket?"raw-websocket":g0().webSockets?"websocket":"http",webSearch:g0().webSearch});let X0=new TY({storage:p,configPath:e(),fetchQuotaFn:void 0}),o0,V9=0,Q0=new f4({paths:s(e()),refreshFn:(H)=>HJ({refreshToken:H.refreshToken,fetchImpl:H.fetchImpl,now:H.now}),quotaManager:X0,custody:{readManifest:s0},onFallbackStorageChanged:r}),R0=q??E(p);if(!q)S?.onRuntime?.(R0),await R0.boot(),q=R0;if(D){let H=await s0(),F=LJ(H,"main"),O=R0.getCache();if(F&&O)try{let C=await O.get(F,v1(p)),I=k9(C.payload.access);if(I&&I!==p?.mainAccountId){if(await j0((k)=>{return k.mainAccountId=I,k},s(e())),p)p.mainAccountId=I;T.mainAccountId=I,r()}}catch{}}if(R0.runTick().catch((H)=>c.warn("custody first tick failed",{error:H instanceof Error?H.message:String(H)})),q=R0,p&&p.accounts.length>0)Q0.startBackgroundRefresh();let g1=R0;async function WY(H,F){let O=await s0();return KJ(H,O,E0)}async function t1(H,F){let O=await s0(),C=g1.getCache(),I=LJ(O,H.id);if(!C||!I)return G8(H,F,O);return G8(H,F,O,{cache:C,manifestHandle:I,requestPath:!0,now:S?.now??Date.now,refreshBeforeExpiryMs:(F.refresh?.refreshBeforeExpiryMinutes??240)*60000,completeEnrollmentDeps:{loadAccounts:P0,readCustodyManifest:s0,acquireRefreshFileLock:H1,configPath:e(),paths:s(e()),cache:C,minTtlMs:v1(F),mutateAccounts:j0,provider:E0,now:Date.now}})}async function V8(H){if(f1(H)!=="claustrum")return s1;let F=await s0(),O=LJ(F,"main"),C=g1.getCache(),I=(v)=>{return c.warn("custody main request refused",{reason:v}),h1};if(!O||!C)return I("no-handle");let k=(S?.now??Date.now)();if(C.isBlocked(O))return I("blocked");if(C.isReauth(O,k))return I("reauth");let x=await C.peek(O);if(!x||x.expiresAtMs<=k)return I("cache-miss");return{token:x.payload.access,provenance:{handle:O,recordVersion:x.recordVersion}}}async function N9(H){let F=g1.getCache();if(!F)return;await F.reportAuthFailure({handle:H.handle,providerStatus:H.providerStatus,recordVersion:H.recordVersion})}Object.assign(W0,{isFallbackRefreshInert:WY,resolveFallbackAccess:t1,reportCustodyAuthFailure:N9});function zY(H={}){let{readSidebarState:F,respectBackoff:O,skipFresherThanMs:C}=H;return{getAuth:M,codexRefreshFn:HJ,refreshMainWithLease:ZY,fallbackManager:Q0,quotaManager:X0,loadAccounts:P0,writeSidebarState:LY,client:Y.client,fetchImpl:fetch,now:Date.now,paths:s(e()),readSidebarState:F??(()=>r1(u0)),storageMainAccountId:p?.mainAccountId,isOAuthAccountFn:V0,whamFn:RY,isFallbackRefreshInert:WY,resolveFallbackAccess:t1,resolveMainAccess:V8,reportCustodyAuthFailure:N9,...O===void 0?{}:{respectBackoff:O},...C===void 0?{}:{skipFresherThanMs:C}}}let N8=B0("cachekeep"),B8=p?.cachekeep?.enabled===!0,F8=p?.cachekeep?.subagents===!0,j8=p?.cachekeep?.sustain===!0,O8=EQ(p),KY;async function t4(H){await new Promise((F)=>setTimeout(F,H))}async function e4(H){let F;for(let O=1;O<=q4;O++)try{await Y.client.auth.set({path:{id:"openai"},body:{type:"oauth",refresh:H.refresh,access:H.access,expires:H.expires}});return}catch(C){if(F=C,O<q4)await t4(Yj*O)}throw new H8(F)}async function UY(H){await j0((F)=>{return F.refresh=F.refresh??{},H(F),F},s(e())),r()}async function q8(H){let F=Date.now()+eF;while(Date.now()<F){await new Promise((I)=>setTimeout(I,O4+Gj(O4)));let O=await M();if(O.type!=="oauth"||!O.access)continue;if((O.access!==H.access||O.refresh!==H.refresh||(O.expires??0)>(H.expires??0)+60000)&&(!O.expires||O.expires>Date.now()))return a1.debug("joined concurrent main refresh",{pid:process.pid,expiresInMs:O.expires?O.expires-Date.now():void 0}),{access:O.access,refresh:O.refresh??H.refresh??"",expires:O.expires??0}}return null}async function ZY(){if(!KY)KY=(async()=>{let H=await M();if(H.type!=="oauth")throw Error("not oauth");if(k0({id:"main",type:"oauth",access:H.access??"",refresh:H.refresh??"",expires:H.expires??0,addedAt:0},E0))throw new b4(E0);if(!H.refresh)throw Error("Token refresh failed: missing refresh token");let F=_4(H.refresh),O=await P0(s(e())),C=O?.refresh?.mainLastRefreshError;if(C&&EY(C,H.refresh,Date.now()))throw Error(S4(C,Date.now()));if(O?.refresh?.mainRefreshLeaseUntil&&O.refresh.mainRefreshLeaseUntil>Date.now()&&O.refresh.mainRefreshLeaseTokenHash===F){let v=await q8(H);if(v)return v;throw Error("Codex OAuth refresh is already in progress")}let I=await H1({name:c1,ttlMs:Q8,path:e(),renew:!0});if(!I){let v=await q8(H);if(v)return v;throw Error("Codex OAuth refresh is already in progress")}let k=crypto.randomUUID(),x=F;try{await UY((l)=>{l.refresh=l.refresh??{},l.refresh.mainRefreshLeaseId=k,l.refresh.mainRefreshLeaseUntil=Date.now()+tF,l.refresh.mainRefreshLeaseTokenHash=F});let v=await P0(s(e()));if(v?.refresh?.mainRefreshLeaseId!==k||v.refresh.mainRefreshLeaseTokenHash!==F)throw Error("Codex OAuth refresh is already in progress");let y=await HJ({refreshToken:H.refresh,fetchImpl:fetch,now:Date.now});return await e4(y),await UY((l)=>{if(l.refresh=l.refresh??{},l.refresh.mainLastRefreshError=void 0,l.refresh.mainRefreshLeaseId===k)l.refresh.mainRefreshLeaseId=void 0,l.refresh.mainRefreshLeaseUntil=void 0,l.refresh.mainRefreshLeaseTokenHash=void 0}).catch(()=>{}),x=void 0,y}catch(v){if(H.refresh&&!$8(v))await UY((y)=>{y.refresh=y.refresh??{},y.refresh.mainLastRefreshError=I4({error:v,now:Date.now(),refreshToken:H.refresh??"",previous:y.refresh.mainLastRefreshError})}).catch(()=>{});throw v}finally{if(x)await UY((v)=>{if(v.refresh?.mainRefreshLeaseId===k&&v.refresh.mainRefreshLeaseTokenHash===x)v.refresh.mainRefreshLeaseId=void 0,v.refresh.mainRefreshLeaseUntil=void 0,v.refresh.mainRefreshLeaseTokenHash=void 0}).catch(()=>{});await I.release().catch(()=>{})}})().finally(()=>{KY=void 0});return KY}let D8=globalThis,BJ=D8.__openaiAuthCacheKeepManagers??new Map;D8.__openaiAuthCacheKeepManagers=BJ,BJ.get(m)?.stop();let B9=new CJ({fetchImpl:fetch,getMainToken:async()=>{let H=await M();if(H.type!=="oauth")throw Error("not oauth");if(!H.access||(H.expires??0)<Date.now())try{return(await ZY()).access}catch(F){if($8(F))throw F;if(H.access)return H.access;throw Error("main token refresh failed")}return H.access},refreshFallback:async(H)=>{let F=await z0(),O=F?Nj(F.accounts,H):void 0;if(!O)throw Error(`fallback account ${H} not found`);let C=F??{version:1,accounts:[O]},I=O;if(!await WY(O,C))I=await Q0.refreshAccount(O,C);let k=await t1(I,C);if(k===h1||k===s1)throw Error(`no access token for ${H}`);return{token:k.token,onAuthFailure:k.provenance==="local"?void 0:async(x)=>{await N9({handle:k.provenance.handle,providerStatus:x,recordVersion:k.provenance.recordVersion})}}},codexResponsesUrl:X,logger:N8,now:Date.now,getWindow:()=>O8,getSustain:()=>j8});BJ.set(m,B9),L.set(m,B9);async function F9(H,F,O,C,I=!1){if(Object.keys(H).length===0&&!I)return;let k=Date.now(),x=H,v={quota:x,refreshAfter:k+300000,checkedAt:k},y;if(O&&O!=="main"){let d=F?Q1(F):null,U0=d?$1(d):void 0,p0=X0.peekFallbackForPolicy(O)?.quota,T0=R4(x,p0);v={...v,quota:T0},X0.setFallback(O,v,F,I,U0)}else{if(y=C,!y&&F){let p0=Q1(F);y=p0?$1(p0):void 0}if(y&&o0&&y!==o0){A0.debug("stale main quota frame dropped",{pid:process.pid,frameAccountId:y,currentMainIdentity:o0});return}let d=X0.peekMainForPolicy(y)?.quota,U0=R4(x,d);v={...v,quota:U0},X0.setMain(F,v,y,I)}A0.debug("quota pushed",{pid:process.pid,accountId:O??"main",snapshot:v.quota});let l=await z0();await LY(X0,l,O&&O!=="main"?l?.mainAccountId:y)}function YU(H,F,O){let C=H==="main"?X0.peekMainForPolicy()?.quota:X0.peekFallbackForPolicy(H)?.quota;return v4(C,F,Date.now(),Jj,O)}let j9=J.experimentalWebSockets?x1.createWebSocketFetch({httpFetch:fetch,rawWebSocket:g0().rawWebSocket,onQuota:(H,F,O,C)=>{F9(H,F,O,!O||O==="main"?C:void 0,!0)},onRateLimitReached:(H,F,O)=>{if(!F)A0.warn("mid-stream rate-limit mark missing internal account id; defaulting to main",{pid:process.pid,window:H});let C=F??"main",I=YU(C,H,O);X0.markRateLimited(C,I),A0.debug("mid-stream rate limit mark",{pid:process.pid,accountId:C,window:H})}}):void 0;if(j9)K.push(j9),W=!0;let u0=m4();V=u0;async function LY(H,F,O=F?.mainAccountId){if(!F)return;await z8(a4(H,F,Date.now(),O,JU),u0)}function JU(H,F){if(!V0(H))return;return g1.getCustodyProjection(H,F)}async function P8(H,F,O,C,I){let k={activeId:O,route:C,updatedAt:Date.now()};if(H){if(await NJ({sessionId:H,...k},I,u0),F&&F!==H){if(C==="sticky-balanced"){let x=(await r1(u0)).stickyAssignments?.[GY(F)]?.accountId,v=I===void 0||x==="main"||I.some((y)=>y.enabled!==!1&&y.id===x);if(!x||!v)return;await NJ({sessionId:F,activeId:x,route:C,updatedAt:Date.now()},I,u0);return}await NJ({sessionId:F,...k},I,u0)}return}await l4(k,u0)}let XU=async(H,F)=>{let O=await H1({name:M1(H),ttlMs:b1,path:e(),renew:!0});if(!O)throw Error("Fallback account lock unavailable");try{return await F()}finally{await O.release()}},QU=S?.withFallbackAccountLock??XU,$U=async(H)=>{let F=await s0();if(!F.ok)return{ready:!1,reason:"manifest-unreadable"};let O=LJ(F,H.id);if(!O)return{ready:!1,reason:"no-handle"};let C=R0.getCache();if(!C)return{ready:!1,reason:"vault-cold"};if(C.isReauth(O,S?.now?.()??Date.now()))return{ready:!1,reason:"vault-reauth"};if(C.isBlocked(O))return{ready:!1,reason:"vault-cold"};try{let I=await C.get(O,v1(p)),k=k9(I.payload.access);if(!k||H.accountId&&H.accountId!==k)return{ready:!1,reason:"identity-mismatch"};return{ready:!0,accountId:k}}catch{return{ready:!1,reason:C.isReauth(O,S?.now?.()??Date.now())?"vault-reauth":"vault-cold"}}};N?.stopBackgroundRefresh(),N=Q0,Z={accountStoragePath:e(),accountStatePath:PY(e()),packageVersion:P9,quotaManager:X0,loadAccounts:P0,client:Y.client,beginAccountLogin:AY,withFallbackAccountLock:QU,checkUsableCustodyBinding:$U,enterClaustrumMode:async()=>{let H=await P0(s(e())),F=(H?.accounts??[]).filter((O)=>O.type==="oauth"&&O.enabled!==!1).map((O)=>O.id);return oQ({accountIds:F,acquireLock:({name:O,renew:C})=>H1({name:O,ttlMs:O===c1?Q8:b1,path:e(),renew:C}),withStoreTransaction:(O)=>VJ(O,s(e())),readManifest:s0,preflight:async({accountId:O,handle:C})=>{c.info("preflight probing participant",{accountId:O,hasHandle:C.length>0});let I=await R0.ensureCache(),k=I?.isBlocked(C);if(!I||k)return c.warn("preflight vault-cold",{accountId:O,hasCache:I!==void 0,blocked:k}),"vault-cold";if(I.isReauth(C,S?.now?.()??Date.now()))return"vault-reauth";try{let x=await I.get(C,v1(H)),v=k9(x.payload.access);if(!v||O&&O!==v)return"identity-mismatch";return"ready"}catch{return I.isReauth(C,S?.now?.()??Date.now())?"vault-reauth":"vault-cold"}},auth:{all:async()=>{if(typeof U.all==="function")return U.all();let O=process.env.XDG_DATA_HOME??K8(UJ.homedir(),".local","share"),C=K8(O,"opencode","auth.json");try{let I=JSON.parse(r4(C,"utf8"));return h(I)?I:{}}catch{return{}}},get:async(O)=>{if(typeof U.get==="function")return U.get(O);if(O.path.id!=="openai"||!N0){c.warn("auth.get unavailable for slot",{id:O.path.id,hasLoaderGetAuth:N0!==void 0});return}return N0()},set:async(O)=>{await U.set(O)}},warn:(O)=>c.warn(O)})},leaveClaustrumMode:()=>nQ({acquireLock:({name:H,renew:F})=>H1({name:H,ttlMs:Q8,path:e(),renew:F}),withStoreTransaction:(H)=>VJ(H,s(e()))}),resolveResetTarget:Qj({getAuth:M,refreshMainWithLease:ZY,refreshFallbackAccount:(H,F)=>Q0.refreshAccount(H,F),loadAccounts:P0,accountStoragePath:e(),accountStatePath:PY(e()),now:Date.now,isFallbackRefreshInert:WY,resolveFallbackAccess:t1,reportAuthFailure:N9}),...$j(),cacheKeepManager:B9,setCacheKeepEnabled:(H)=>{B8=H},setCacheKeepSubagents:(H)=>{F8=H},setCacheKeepSustain:(H)=>{j8=H},setCacheKeepWindow:(H)=>{O8=H},clearStickyRouting:(H)=>o4(H,u0),getStickyRouting:async(H)=>p4(await r1(u0),H),refreshSidebar:async()=>{let H=await P0(s(e()));await LY(X0,H)},refreshAllQuota:async()=>E1(zY()),refreshResetTargetQuota:async(H)=>{return(await E1(zY({respectBackoff:!1}),{accountKey:H})).find((O)=>O.account===H)??{account:H,ok:!1,error:"targeted quota refresh returned no result"}}};let FJ=null;if(w){let H=globalThis,F=H.__openaiAuthRpcServers??new Map;H.__openaiAuthRpcServers=F;let O=F.get(w.dir);if(O)await O.stop().catch(()=>{}),F.delete(w.dir);try{FJ=await T5({dir:w.dir,secureDir:w.secureDir,sweepRoot:w.sweepRoot,drain:M5,apply:async(C)=>{let I={...Z,sessionId:C.sessionId},k=await EJ(C.command,C.arguments,I);return{text:k.text,knobs:k.knobs}}}),F.set(w.dir,FJ),j.set(w.dir,FJ)}catch{}}let E8=new WeakMap;function GU(H,F){let O=E8.get(H);if(!O||F.hostname!=="chatgpt.com"||!F.pathname.startsWith("/backend-api/codex/"))return;if(H.status>=200&&H.status<300){g1.getCache()?.markVaultSuccess(O.handle);return}if(H.status!==401)return;N9({handle:O.handle,providerStatus:H.status,recordVersion:O.recordVersion}).catch(()=>{})}async function O9(H,F,O,C,I="main",k){if(!O.trim())throw K1.warn("refusing to send a request with no access token",{account:I,accountId:C,hasProvenance:Boolean(k&&k!=="local")}),Error(iF);let x=T4(H,F);if(x.delete("x-api-key"),x.delete("api-key"),x.set("authorization",`Bearer ${O}`),C)x.set("ChatGPT-Account-Id",C);x.set(x1.QUOTA_ACCOUNT_HEADER,I);let v=C4(x),y=v?zj($,v,G):void 0,l=H instanceof URL?H:new URL(typeof H==="string"?H:H.url),d=l.pathname.includes("/v1/responses")||l.pathname.includes("/chat/completions")?new URL(X):l,U0=(_0)=>{let e1=x4(_0,k,E8);return GU(e1,d),e1},T0=Vj({init:{...F,headers:x},headers:x,metadata:y,installationID:Q,websocket:Boolean(j9&&l.pathname.endsWith("/responses")),responsesLite:J.responsesLite??!1,dumpSessionID:v}).init,U1=B8,P1=new Headers(T0?.headers),l0=PQ({enabled:U1,includeSubagents:F8,headers:P1,body:T0?.body});if(U1)N8.trace("cachekeep headers",{pid:process.pid,hasParent:P1.has("x-parent-session-id"),sessionKey:l0?.sessionKey,captured:Boolean(l0),affinity:P1.get("x-session-affinity"),opencodeSession:P1.get("x-opencode-session"),sessionId:P1.get("session-id")});if(j9&&l.pathname.endsWith("/responses")){if(K1.debug("WS transport",{pid:process.pid,pathname:l.pathname,accountId:I}),l0)B9.track(l0.sessionKey,l0.bodyText,I,C,l0.replayHeaders,l0.isSubagent);return U0(await j9(d,T0))}let C0=x1.withoutInternalHeaders(T0);if(typeof C0?.body!=="string")return U0(await fetch(d,C0));if(l0)B9.track(l0.sessionKey,l0.bodyText,I,C,l0.replayHeaders,l0.isSubagent);K1.debug("HTTP transport",{pid:process.pid,pathname:l.pathname,accountId:I});try{let _0=await fetch(d,C0);return await G9({sessionID:v,transport:"http",phase:"http",bodyText:C0.body,accountId:I,url:d.toString(),method:C0.method,headers:C0.headers,status:_0.status}),U0(H5(_0))}catch(_0){throw await G9({sessionID:v,transport:"http",phase:"http",bodyText:C0.body,accountId:I,url:d.toString(),method:C0.method,headers:C0.headers,error:_0 instanceof Error?_0.message:String(_0)}),_0}}function HY(H,F){if((F?.method??(H instanceof Request?H.method:"GET")).toUpperCase()!=="POST")return!1;if(typeof F?.body!=="string")return!1;try{let C=H instanceof URL?H.toString():typeof H==="string"?H:H.url;return new URL(C).pathname.endsWith("/responses")}catch{return!1}}function WU(H){return X0.peekMainForPolicy(H)?.quota}function M8(H,F){for(let O of[H?.primary?.checkedAt,H?.secondary?.checkedAt,H?.checkedAt,F])if(typeof O==="number"&&Number.isFinite(O))return O;return}function q9(H,F,O,C,I){let k=M8(H,F),x=M8(O),v=C===I&&O!=null&&(H===void 0||x!==void 0&&(k===void 0||x>k));return{quota:v?O:H,quotaCheckedAt:v?x:k,source:v?"file":"memory"}}function w8(H,F,O,C,I){let k=H?.quota,x=q9(k,H?.checkedAt,F,C,I),v=x.source,y=x.quota;if(!u4(y,O))return{exhausted:!1};let l=c4(y,O);if(!l)return{exhausted:!1};return{exhausted:!0,source:v,...l}}function A8(H,F){A0.debug("admission skip: exhausted account",{accountId:H,source:F.source,resetsAt:F.resetsAt})}function zU(H,F="killswitch",O){let C=Date.now(),I=X0.getMain()?.quota,k=(H?.accounts??[]).filter((d)=>d.enabled!==!1&&V0(d)).map((d)=>({accountId:d.id,quota:X0.getFallback(d.id)?.quota})),x=g4(I,k,C,H);if(F==="quota-exhausted"&&O!==void 0)x=Math.max(1,Math.ceil((O-C)/1000));else if(F==="mid-stream-rate-limit"&&O!==void 0){let d=Math.max(1,Math.ceil((O-C)/1000));x=Math.min(x,d)}let v=Math.floor(x/60),y=x%60,l=F==="mid-stream-rate-limit"?`OpenAI rate limit reached — retrying on another account. Retry in ${v}m ${y}s.`:F==="quota-exhausted"?`OpenAI quota exhausted — retrying on another account. Retry in ${v}m ${y}s.`:`Killswitch: all OpenAI accounts are below their configured quota threshold. Retry in ${v}m ${y}s.`;return new Response(JSON.stringify({error:{message:l,type:"rate_limit_exceeded",code:"rate_limit_exceeded"}}),{status:429,headers:{"content-type":"application/json","retry-after":String(x)}})}function R8(H){let F=H?.resetCreditsAvailable;return typeof F==="number"&&Number.isFinite(F)?F:void 0}async function KU(H){let F=QY(H.storage),O=Date.now(),C=X0.peekMainForPolicy(H.mainAccountIdentity),I=q9(C?.quota,C?.checkedAt,H.sidebarState.main.quota,H.sidebarState.main.mainAccountId,H.mainAccountIdentity),k=F?$Y(C?.quota,H.storage,void 0,O):void 0,x=H.mainCustodyRefused?[]:[{accountId:"main",wireAccountId:H.mainAccountIdentity,access:H.primaryAccess,provenance:H.primaryProvenance,keepwarmAccountKey:"main",quota:I.quota,quotaCheckedAt:I.quotaCheckedAt,reservePercent:W8(H.storage),configuredOrder:0,resetCreditsApplicable:R8(I.quota),killswitchPasses:k}],v=await Q0.getUsableFallbackAccounts(H.storage);if(!H.storage)return x;for(let y of v){let l=await t1(y,H.storage);if(l===h1||l===s1)continue;let d=H.sidebarState.fallbacks.find((U1)=>U1.id===y.id),U0=X0.peekFallbackForPolicy(y.id,y.accountId),p0=q9(U0?.quota,U0?.checkedAt,d?.quota,d?.accountId,y.accountId),T0=F?$Y(U0?.quota,H.storage,y.id,O):void 0;x.push({accountId:y.id,wireAccountId:y.accountId,access:l.token,provenance:l.provenance,keepwarmAccountKey:y.id,fallback:y,quota:p0.quota,quotaCheckedAt:p0.quotaCheckedAt,reservePercent:W8(H.storage,y.id),configuredOrder:x.length,resetCreditsApplicable:R8(p0.quota),killswitchPasses:T0})}return x}function T8(H,F,O,C,I){let k=QY(I)?H.killswitchPasses:void 0;if(H.accountId==="main"){let l=X0.peekMainForPolicy(H.wireAccountId),d=q9(l?.quota,l?.checkedAt,F.main.quota,F.main.mainAccountId,H.wireAccountId);return hJ({quota:d.quota,quotaCheckedAt:d.quotaCheckedAt,status:O,now:C,killswitchPasses:k})}let x=F.fallbacks.find((l)=>l.id===H.accountId),v=X0.peekFallbackForPolicy(H.accountId,H.wireAccountId),y=q9(v?.quota,v?.checkedAt,x?.quota,x?.accountId,H.wireAccountId);return hJ({quota:y.quota,quotaCheckedAt:y.quotaCheckedAt,status:O,now:C,killswitchPasses:k})}function UU(H){return H.accountId==="main"?"main":H.keepwarmAccountKey}function C8(H){return X0.isRateLimited(UU(H))}async function jJ(H){let F=H.candidates.filter((y)=>!C8(y)),O=new Map(F.map((y)=>[y.accountId,y])),C=Object.fromEntries(F.map((y)=>[y.accountId,y.quotaCheckedAt])),I=Object.fromEntries(F.map((y)=>[y.accountId,y.wireAccountId])),k=new Set(H.excludeAccountIds),x,v=await i4({sessionId:H.sessionId,requestBytes:H.requestBytes,now:H.now,validPinnedAccountIds:[...O.keys()],excludeAccountIds:H.excludeAccountIds,quotaCheckedAtByAccount:C,wireAccountIdByAccount:I,choose:(y)=>{let l=F.filter((U0)=>!k.has(U0.accountId));if(l.length===0)return;let d=Y5({candidates:l,pendingBytes:y,requestBytes:H.requestBytes,now:H.now,onEmptyWeightedSet:()=>{J1.debug("sticky routing: no fresh weighted candidates; using configured order")}});if(!d)return;return x={accountId:d.accountId,source:d.source,pendingBytes:y.get(d.accountId)??0},d}},u0);if(x&&v?.accountId===x.accountId)J1.debug("sticky routing: placed session pin",{pid:process.pid,sessionHash:GY(H.sessionId),accountId:x.accountId,source:x.source,requestBytes:H.requestBytes,pendingBytes:x.pendingBytes});return v?O.get(v.accountId):void 0}async function ZU(H,F){let O=await Q0.getUsableFallbackAccounts(H),C=[];if(!H)return{current:[],retained:[],skipped:[]};for(let d of O){let U0=await t1(d,H);if(U0===h1||U0===s1)continue;C.push({access:U0.token,provenance:U0.provenance,accountId:d.accountId,keepwarmAccountKey:d.id,quotaAccountId:d.id,fallback:d})}let I=C.filter((d)=>!X0.isRateLimited(d.quotaAccountId)),k=QY(H)?I.filter((d)=>$Y(X0.peekFallbackForPolicy(d.quotaAccountId,d.accountId)?.quota,H,d.quotaAccountId,Date.now())):I,x=new Map(F.fallbacks.map((d)=>[d.id,{quota:d.quota,accountId:d.accountId}])),v=[],y=[],l=Date.now();for(let d of k){let U0=x.get(d.quotaAccountId),p0=w8(X0.peekFallbackForPolicy(d.quotaAccountId,d.accountId),U0?.quota,l,U0?.accountId,d.accountId);if(p0.exhausted)y.push({candidate:d,decision:p0});else v.push(d)}return{current:k,retained:v,skipped:y}}function _8(H,F){if(H.retained.length===0&&!F)return H.current;for(let{candidate:O,decision:C}of H.skipped)A8(O.quotaAccountId,C);return H.retained}async function I8(H,F){try{let O=X9(H.headers);await F9(O,F.access,F.quotaAccountId,void 0,JY(H.headers))}catch{}}async function LU(H,F,O,C){for(let I of C){let k;try{k=await O9(H,F,I.access,I.accountId,I.keepwarmAccountKey,I.provenance)}catch(x){if(x instanceof DOMException&&x.name==="AbortError")throw x;if(F?.signal?.aborted)throw x;throw J1.debug("fallback-first transport failed; request not replayed",{pid:process.pid,accountId:I.quotaAccountId}),x}if(!XY(k.status,O))return Q0.markUsed(I.fallback),{response:k,accessToken:I.access,quotaAccountId:I.quotaAccountId,activeId:I.keepwarmAccountKey};await I8(k,I),k.body?.cancel().catch(()=>{})}return}async function HU(H,F,O,C,I){if(!HY(H,F))return{response:O};if(!I.length)return{response:O};let k=O,x;for(let v of I){let y;try{y=await O9(H,F,v.access,v.accountId,v.keepwarmAccountKey,v.provenance)}catch(l){if(l instanceof DOMException&&l.name==="AbortError")throw l;if(F?.signal?.aborted)throw l;return J1.debug("reactive fallback candidate threw; stopping",{pid:process.pid,accountId:v.quotaAccountId}),{response:k,...x}}if(k.body?.cancel().catch(()=>{}),k=y,x={accessToken:v.access,accountId:v.quotaAccountId},!XY(y.status,C))return Q0.markUsed(v.fallback),{response:y,...x};await I8(y,v)}return{response:k,...x}}if(p){let H=[];for(let F of p.accounts)if(V0(F))H.push(F);X0.seedFallbacksFromAccounts(H)}if(!Z8)Z8=!0,LY(X0,p).catch(()=>{}),E1(zY({respectBackoff:!0})).catch((H)=>A0.warn("boot quota seed failed",{pid:process.pid,error:t9(H)}));return t.start(async()=>{let F=(await FQ(zY({readSidebarState:()=>r1(u0)}))).filter((O)=>!O.ok);if(F.length>0)A0.warn("background quota refresh completed with failures",{pid:process.pid,failures:F})},(H)=>{A0.warn("background quota refresh failed",{pid:process.pid,error:H instanceof Error?H.message:String(H)})}),{apiKey:nF,async fetch(H,F){let O=T4(H,F),C=C4(O),I=O.get("x-parent-session-id")?.trim()||void 0,k=await z0(),x=await M(),v=++V9;if(x.type!=="oauth")return fetch(H,F);F=await Bj(H,F);let y=D&&f1(k)==="claustrum",l="",d,U0=!1;if(y){let $0=await V8(k);if($0===h1||$0===s1)U0=!0;else l=$0.token,d=$0.provenance==="local"?void 0:$0.provenance}else{if(!x.access||(x.expires??0)<Date.now()){a1.debug("token refresh triggered",{pid:process.pid,hasAccess:Boolean(x.access),expiresInMs:x.expires?x.expires-Date.now():void 0});try{let $0=await ZY();x.access=$0.access,x.refresh=$0.refresh,x.expires=$0.expires}catch($0){if($8($0))throw $0}}l=x.access??""}let T0=x.accountId??(l?$1(Q1(l)??{}):void 0);if(v===V9)o0=T0;let U1=k?.routing?.mode??"main-first",P1,C0=await(()=>{return P1??=r1(u0),P1})();if(U1==="sticky-balanced"&&C&&HY(H,F)&&typeof F?.body==="string"){let $0=Buffer.byteLength(F.body,"utf8"),M0=await KU({storage:k,sidebarState:C0,primaryAccess:l,mainAccountIdentity:T0,mainCustodyRefused:U0,primaryProvenance:d}),q0=await jJ({sessionId:C,requestBytes:$0,candidates:M0,now:Date.now()});if(q0){let g8=C8(q0)?{action:"migrate",reason:"exhausted"}:T8(q0,C0,void 0,Date.now(),k);if(g8.action==="migrate"){let h0=await jJ({sessionId:C,requestBytes:$0,candidates:M0,excludeAccountIds:[q0.accountId],now:Date.now()});if(h0)J1.debug("sticky routing: migrated session pin",{pid:process.pid,sessionHash:GY(C),fromAccountId:q0.accountId,toAccountId:h0.accountId,reason:g8.reason}),q0=h0}let X1=await O9(H,F,q0.access,q0.wireAccountId,q0.keepwarmAccountKey,q0.provenance),y8=async(h0,y1)=>{try{let VU=X9(h0.headers);await F9(VU,y1.access,y1.accountId==="main"?void 0:y1.accountId,y1.accountId==="main"?y1.wireAccountId:void 0,JY(h0.headers))}catch{}};await y8(X1,q0);let f8=T8(q0,C0,X1.status,Date.now(),k);if((X1.status===401||X1.status===403||X1.status===429)&&f8.action==="migrate"){let h0=await jJ({sessionId:C,requestBytes:$0,candidates:M0,excludeAccountIds:[q0.accountId],now:Date.now()});if(h0){J1.debug("sticky routing: migrated session pin",{pid:process.pid,sessionHash:GY(C),fromAccountId:q0.accountId,toAccountId:h0.accountId,reason:f8.reason});let y1=X1;X1=await O9(H,F,h0.access,h0.wireAccountId,h0.keepwarmAccountKey,h0.provenance),y1.body?.cancel().catch(()=>{}),q0=h0,await y8(X1,q0)}}if(q0.fallback&&!XY(X1.status,k))Q0.markUsed(q0.fallback);return await P8(C,I,q0.accountId,U1,k?.accounts).catch(()=>{}),X1}}let _0=w8(X0.peekMainForPolicy(T0),C0.main.quota,Date.now(),C0.main.mainAccountId,T0),e1=QY(k)&&!$Y(WU(T0),k,void 0,Date.now()),VY=X0.isRateLimited("main"),S8,OJ=()=>{return S8??=ZU(k,C0),S8},Z1,Y9,k8=!1,NY;if(U1==="fallback-first"&&HY(H,F)){k8=!0;let $0=await OJ();NY=_8($0,!e1&&!VY&&!_0.exhausted);let M0=await LU(H,F,k,NY);if(M0)Z1=M0.response,Y9={accessToken:M0.accessToken,accountId:M0.quotaAccountId,activeId:M0.activeId}}if(!Z1){let $0=_0.exhausted&&HY(H,F)&&(await OJ()).retained.length>0;if(e1||VY||$0){let M0=e1?"killswitch":VY?"mid-stream-rate-limit":"quota-exhausted";if(M0==="quota-exhausted"&&_0.exhausted)A8("main",_0);J1.debug("admission blocked primary",{pid:process.pid,activeId:"main",reason:M0}),Z1=zU(k,M0,M0==="quota-exhausted"&&_0.exhausted?_0.resetAtMs:VY?X0.rateLimitedUntil("main"):void 0)}else Z1=U0?new Response(null,{status:401}):await O9(H,F,l,T0,"main",d)}let x8=Boolean(Y9),D9=Z1,b8=Y9?.accessToken??l,v8=Y9?.accountId,h8=Y9?.activeId??"main";if(!Y9&&!k8&&XY(Z1.status,k)){J1.debug("reactive fallback triggered",{pid:process.pid,status:Z1.status}),NY??=_8(await OJ(),!1);let $0=await HU(H,F,Z1,k,NY),M0=$0.response;if(M0!==Z1){if(x8=!0,D9=M0,b8=$0.accessToken??l,v8=$0.accountId,$0.accountId)h8=$0.accountId}}try{let $0=X9(D9.headers);if(x8)await F9($0,b8,v8,void 0,JY(D9.headers));else await F9($0,l,void 0,T0,JY(D9.headers))}catch{}return await P8(C,I,h8,U1,k?.accounts).catch(()=>{}),D9}}},methods:z1},"chat.headers":async(M,A)=>{if(M.model.providerID!=="openai")return;if(A.headers.originator="opencode",A.headers["User-Agent"]=`${k4(P9)} (${UJ.platform()} ${UJ.release()}; ${UJ.arch()})`,A.headers["session-id"]=M.sessionID,W&&M.agent==="title")A.headers[x1.TITLE_HEADER]="true"},"chat.params":async(M,A)=>{if(M.model.providerID!=="openai")return;A.maxOutputTokens=void 0},config:async(M)=>{B0("commands").info("registering commands",{existing:Object.keys(M.command??{}).length,pid:process.pid}),M.command={...M.command??{},[E9]:{template:E9,description:"Show current OpenAI Codex OAuth quota usage for all accounts."},[M9]:{template:M9,description:"Manage OpenAI accounts — add, switch, remove, or reorder."},[w9]:{template:w9,description:"Show or change OpenAI account routing between main-first, fallback-first, and sticky-balanced."},[A9]:{template:A9,description:"Manage killswitch — hard-block requests when quota drops below per-account thresholds."},[R9]:{template:R9,description:"Show or toggle OpenAI Codex request dump capture for debugging."},[T9]:{template:T9,description:"Show or change the plugin log level (error, warn, info, debug, trace)."},[C9]:{template:C9,description:"Keep Codex prompt cache alive during idle by shadow-replaying the last request."},[_9]:{template:_9,description:"Spend one reset credit on an exhausted Codex account."}}},"command.execute.before":async(M)=>{if(B0("commands").info("command hook entered",{command:M.command,arguments:M.arguments,modal:I9.includes(M.command),hasCmdCtx:Z!==null,pid:process.pid}),!I9.includes(M.command))return;if(!Z)B0("commands").warn("command rejected: context not loaded",{command:M.command,pid:process.pid}),await u(M.sessionID,"OpenAI auth plugin is still initializing. Send a request first, then try again."),w4();let A=M.command,B={...Z,sessionId:M.sessionID,notify:(w)=>{iJ(w,M.sessionID)}},D=await EJ(A,M.arguments,B);if(w5(M.sessionID))iJ(D,M.sessionID);else await u(M.sessionID,D.text);w4()}}}var wj=async(Y)=>{let J=g0();return Mj(Y,{codexApiEndpoint:J.codexApiEndpoint,experimentalWebSockets:J.webSockets,responsesLite:J.responsesLite})},lM={id:"cortexkit-openai-auth",server:wj};export{C4 as resolveSidebarSessionId,Q1 as parseJwtClaims,R4 as mergePushedQuotaMetadata,mM as getMainRefreshLockName,Nj as findCachekeepFallbackAccount,$1 as extractAccountIdFromClaims,lM as default,Qj as createResetTargetResolver,pM as buildSidebarState,a4 as buildSidebarMachineState,$j as buildResetRedemptionDeps,vF as __resetSweepFailureLogDedupeForTest,cM as __resetBootQuotaSeedForTest,X8 as __createCustodyRuntimeForTest,W1 as ResetTargetResolutionError,wj as OpenAIAuthPlugin,Q8 as MAIN_REFRESH_LOCK_TTL_MS,tF as MAIN_REFRESH_LEASE_TTL_MS,iF as EMPTY_BEARER_MESSAGE,Mj as CodexAuthPlugin,H8 as AuthPersistError};
|