@cortexkit/opencode-openai-auth 0.9.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -6
- package/dist/{index-w42s0g6m.js → index-4effjmr6.js} +1 -1
- package/dist/index-g3hsdjh4.js +2 -0
- package/dist/index-hh52v8sb.js +2 -0
- package/dist/{index-338z7171.js → index-sq36b120.js} +21 -21
- package/dist/index.d.ts +2 -2
- package/dist/index.js +44 -59
- package/dist/{internal-Y7QNVDJT.d.ts → internal-BTndPmW2.d.ts} +8 -2
- 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 +1 -1
- package/dist/rpc/rpc-client.js +1 -1
- package/dist/{sidebar-state-B98sERYt.d.ts → sidebar-state-CoKYKcLn.d.ts} +1 -0
- package/dist/sidebar-state.d.ts +1 -1
- package/dist/sidebar-state.js +1 -1
- package/dist/tui.d.ts +2 -2
- package/package.json +2 -2
- package/src/tui-compiled/raw/sidebar-state.ts +30 -3
- package/src/tui-compiled/runtime/sidebar-state.ts +30 -3
- package/dist/index-301y4qa1.js +0 -2
- package/dist/index-5y4vzdf8.js +0 -2
- package/dist/quota-normalize-3qffywcm.js +0 -1
package/dist/index.js
CHANGED
|
@@ -1,123 +1,108 @@
|
|
|
1
|
-
import{A as
|
|
1
|
+
import{A as x4,B as b4,C as v4,D as h4,c as S9,e as kX,h as $Y,i as _4,j as e9,m as r1,q as oQ,r as I4,s as S4,t as k4,y as Q8,z as LX}from"./index-g3hsdjh4.js";import{I as N5,J as B5}from"./index-4effjmr6.js";import{$ as XQ,$a as w9,Aa as f8,Ba as a9,Ca as HX,Da as AY,Ea as Z1,Fa as w4,Ga as RY,Ha as L0,Ia as A4,Ja as f1,Ka as l8,L as J4,La as E0,M as Q4,Ma as y1,N as $4,Na as ZX,O as p8,Oa as F0,P as j4,Pa as XY,Q as q4,Qa as JY,R as EY,Ra as J8,S as D4,Sa as QY,T as MQ,Ta as R4,U as P0,Ua as T4,V as h0,Va as x1,W as TY,Wa as P1,X as yX,Xa as C4,Y as tQ,Ya as o,Z as N0,Za as P9,_ as E4,_a as M9,aa as JQ,ab as A9,ba as Q1,bb as R9,ca as $1,cb as T9,da as X9,db as C9,ea as QQ,eb as _9,fa as $Q,fb as I9,ga as GQ,gb as qX,ha as WQ,hb as E1,ia as zQ,ja as KQ,ka as UQ,la as wY,ma as Q9,na as v1,oa as s1,pa as P4,qa as L1,ra as k0,sa as G4,ta as rJ,ua as WX,va as X8,wa as W4,xa as M4,ya as sJ,za as y8}from"./index-sq36b120.js";import{kb as g4}from"./index-jwn4r3sw.js";import{mb as J9,nb as YY,ob as xK}from"./index-hh52v8sb.js";import{sb as oX}from"./index-9ehhb051.js";import{mkdirSync as DF,readFileSync as y4,renameSync as EF,statSync as PF,writeFileSync as MF}from"node:fs";import zX from"node:os";import{join as $8}from"node:path";import{execFileSync as MU}from"node:child_process";import{readFileSync as QU}from"node:fs";import{homedir as $U,tmpdir as GU}from"node:os";import{join as FY}from"node:path";var WU="https://chatgpt.com/backend-api/codex/responses",zU="openai-auth.json",D1={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[D1.configDir]?.trim();if(Y)return Y;return FY(process.env.XDG_CONFIG_HOME||FY($U(),".config"),"opencode")}function t(){return process.env[D1.configFile]?.trim()||FY(OY(),zU)}function KU(){try{let Y=JSON.parse(QU(t(),"utf8"));return Y!=null&&typeof Y==="object"&&!Array.isArray(Y)?Y:{}}catch{return{}}}function UU(Y){let X=process.env[Y];if(X===void 0)return;let J=X.trim().toLowerCase();if(J==="1"||J==="true"||J==="yes"||J==="on")return!0;if(J===""||J==="0"||J==="false"||J==="no"||J==="off")return!1;return}function NY(Y,X,J){let Q=UU(Y);if(Q!==void 0)return Q;if(typeof X==="boolean")return X;return J}function HU(){let Y=KU(),X;if(Y.dump!==void 0&&Y.dump!==null){if(typeof Y.dump==="object")X=Y.dump.enabled;else if(typeof Y.dump==="boolean")X=Y.dump}return{webSockets:NY(D1.webSockets,Y.webSockets,!1),rawWebSocket:NY(D1.rawWebSocket,Y.rawWebSocket,!1),responsesLite:NY(D1.responsesLite,Y.responsesLite,!1),dump:NY(D1.dump,X,!1),dumpDir:process.env[D1.dumpDir]?.trim()||(typeof Y.dumpDir==="string"&&Y.dumpDir.trim()?Y.dumpDir.trim():FY(GU(),"opencode-openai-auth-dumps")),codexApiEndpoint:process.env[D1.codexApiEndpoint]?.trim()||(typeof Y.codexApiEndpoint==="string"&&Y.codexApiEndpoint.trim()?Y.codexApiEndpoint.trim():WU)}}var BY;function i0(){if(!BY)BY=HU();return BY}function OX(){return BY=void 0,i0()}import{realpathSync as h8}from"node:fs";import{homedir as ZU}from"node:os";import{basename as LU,dirname as VU,join as qY,resolve as m8}from"node:path";function NU(){if(process.env.OPENCODE_CONFIG_DIR?.trim())return process.env.OPENCODE_CONFIG_DIR.trim();return qY(process.env.XDG_CONFIG_HOME||qY(ZU(),".config"),"opencode")}function c8(){return process.env.OPENCODE_OPENAI_AUTH_FILE?.trim()||qY(NU(),y8)}function jY(Y,X){let J=m8(Y);return X==="win32"||X==="darwin"?J.toLowerCase():J}function g8(Y){try{return h8.native(Y)}catch{try{return qY(h8.native(VU(Y)),LU(Y))}catch{return}}}function BU(Y,X,J=process.platform){if(jY(Y,J)===jY(X,J))return!0;let Q=g8(Y),$=g8(X);return Q!==void 0&&$!==void 0&&jY(Q,J)===jY($,J)}function DY(Y=c8()){let X=process.env.OPENCODE_OPENAI_AUTH_STATE_FILE?.trim();if(X){if(BU(Y,X))throw Error(`OPENCODE_OPENAI_AUTH_STATE_FILE resolves to the config path (${m8(Y)}). Set OPENCODE_OPENAI_AUTH_STATE_FILE to a different file.`);return X}return f8(Y)}function r(Y=c8()){return{configPath:Y,statePath:DY(Y)}}var E9="0.10.0";import{readFile as FU}from"node:fs/promises";function u8(Y){return typeof Y==="object"&&Y!==null&&!Array.isArray(Y)}async function d8(Y){let X=await l8(Y.configPath),J=[];try{let $=JSON.parse(await FU(Y.statePath,"utf8"));if(u8($)){let G=$.accounts;if(u8(G))J=Object.keys(G)}}catch($){if($.code!=="ENOENT")throw $}return{rosterIds:X?[...X]:[],stateIds:J,orphanStateIds:X?J.filter(($)=>!X.has($)):[]}}function jX(Y){if(!Y)return;let X=Y.accounts.find((J)=>J.id==="main"&&L0(J));if(X)return X;if(!Y.mainAccountId)return;return Y.accounts.find((J)=>L0(J)&&J.accountId===Y.mainAccountId)}function OU(Y,X){let J=Y.lastRefreshError;return EY(J,Y.refresh,X)&&J!==void 0&&J.nextRetryAt!==void 0&&J.nextRetryAt-J.checkedAt>=p8}function i8(Y){let X=[],J=[],Q=Y.now??Date.now(),$=jX(Y.storage),G=!1;if(!Y.auth)X.push({code:"auth-slot-missing",message:"OpenCode's OpenAI auth slot is missing."}),G=!0;else if(Y.auth.type!=="oauth")X.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))X.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 H={type:"restore-main-credential"};J.push(H);let U=X.find((Z)=>Z.code==="auth-slot-missing"||Z.code==="auth-slot-not-oauth"||Z.code==="main-refresh-not-in-store");if(U)U.repair=H}let W=Y.storage?.accounts??[];if(W.length===0)X.push({code:"no-accounts",message:"The account store has no accounts."});else if(!W.some((H)=>H.enabled!==!1))X.push({code:"no-enabled-accounts",message:"The account store has no enabled accounts."});for(let H of W){if(!L0(H))continue;if(!OU(H,Q))continue;let U={type:"clear-refresh-backoff",accountId:H.id};J.push(U),X.push({code:"armed-non-transient-refresh-backoff",accountId:H.id,message:`Account ${H.id} has an armed non-transient refresh backoff.`,repair:U})}let K=[...Y.orphanStateIds??[]];if(K.length>0){let H={type:"prune-orphan-state-ids",ids:K};J.push(H),X.push({code:"orphan-state-ids",message:`State contains ids absent from the config roster: ${K.join(", ")}.`,repair:H})}return{findings:X,repairs:J}}function o8(Y){let X=["OpenAI auth doctor"];if(Y.findings.length===0)return X.push("No problems found."),X.join(`
|
|
2
2
|
`);for(let J of Y.findings){let Q=J.repair?" (repair available)":"";X.push(`- ${J.message}${Q}`)}return X.join(`
|
|
3
|
-
`)}var
|
|
4
|
-
`)return"enter";if(X==="\x03")return"escape";if(X==="\x1B")return"escape-start";return null}function
|
|
5
|
-
`),N+=1},
|
|
3
|
+
`)}var e={hide:"\x1B[?25l",show:"\x1B[?25h",up:(Y=1)=>`\x1B[${Y}A`,clearLine:"\x1B[2K",clearScreen:"\x1B[2J",moveTo:(Y,X)=>`\x1B[${Y};${X}H`,cyan:"\x1B[36m",green:"\x1B[32m",red:"\x1B[31m",dim:"\x1B[2m",reset:"\x1B[0m"};function n8(Y){let X=Y.toString();if(X==="\x1B[A"||X==="\x1BOA")return"up";if(X==="\x1B[B"||X==="\x1BOB")return"down";if(X==="\r"||X===`
|
|
4
|
+
`)return"enter";if(X==="\x03")return"escape";if(X==="\x1B")return"escape-start";return null}function r8(){return Boolean(process.stdin.isTTY)}var jU=50,s8=`${String.fromCharCode(27)}\\[[0-9;]*m`,qU=new RegExp(s8,"g"),DU=new RegExp(`^${s8}`);function EU(Y){return Y.replace(qU,"")}function PY(Y,X){if(X<=0)return"";if(EU(Y).length<=X)return Y;let J=X>=3?"...":".".repeat(X),Q=Math.max(0,X-J.length),$="",G=0,W=0;while(G<Y.length&&W<Q){if(Y[G]==="\x1B"){let K=Y.slice(G).match(DU);if(K){$+=K[0],G+=K[0].length;continue}}$+=Y[G],G+=1,W+=1}return $.includes("\x1B[")?`${$}${e.reset}${J}`:$+J}function PU(Y){if(Y==="red")return e.red;if(Y==="cyan")return e.cyan;return""}async function MY(Y,X){if(!r8())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:J,stdout:Q}=process,$=0,G=null,W=!1,K=0,H=()=>{let U=Q.columns??80,Z=Q.rows??24,O=K;if(X.clearScreen)Q.write(e.clearScreen+e.moveTo(1,1));else if(O>0)Q.write(e.up(O));let N=0,V=(P)=>{Q.write(`${e.clearLine}${P}
|
|
5
|
+
`),N+=1},q=X.subtitle?3:0,T=Math.max(1,Math.min(Y.length,Z-(1+q+2)-1)),S=Math.max(0,Math.min($-Math.floor(T/2),Math.max(0,Y.length-T))),m=Y.slice(S,S+T);if(V(`${e.dim}┌ ${e.reset}${PY(X.message,Math.max(1,U-4))}`),X.subtitle)V(`${e.dim}│${e.reset}`),V(`${e.cyan}◆${e.reset} ${PY(X.subtitle,Math.max(1,U-4))}`),V("");for(let P=0;P<m.length;P++){let b=m[P];if(!b)continue;let y=S+P===$,n=PU(b.color),a=n?`${y?"":e.dim}${n}${b.label}${e.reset}`:y?b.label:`${e.dim}${b.label}${e.reset}`;a=PY(a,Math.max(1,U-8)),V(y?`${e.cyan}│${e.reset} ${e.green}●${e.reset} ${a}`:`${e.cyan}│${e.reset} ${e.dim}○${e.reset} ${a}`)}let _=m.length<Y.length?` (${S+1}-${S+m.length}/${Y.length})`:"";V(`${e.cyan}│${e.reset} ${e.dim}${PY(`Up/Down to select | Enter: confirm | Esc: back${_}`,Math.max(1,U-6))}${e.reset}`),V(`${e.cyan}└${e.reset}`);for(let P=N;P<O;P++)V("");K=N};return new Promise((U)=>{let Z=J.isRaw??!1,O=()=>{if(W)return;if(W=!0,G)clearTimeout(G);J.removeListener("data",q);try{J.setRawMode(Z),J.pause(),Q.write(e.show)}catch{}process.removeListener("SIGINT",V),process.removeListener("SIGTERM",V)},N=(T)=>{O(),U(T)},V=()=>N(null),q=(T)=>{if(G)clearTimeout(G),G=null;switch(n8(T)){case"up":$=($-1+Y.length)%Y.length,H();break;case"down":$=($+1)%Y.length,H();break;case"enter":N(Y[$]?.value??null);break;case"escape":N(null);break;case"escape-start":G=setTimeout(()=>N(null),jU);break}};process.once("SIGINT",V),process.once("SIGTERM",V);try{J.setRawMode(!0)}catch{O(),U(null);return}J.resume(),Q.write(e.hide),H(),J.on("data",q)})}var a8=[{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"}],EO=a8.map((Y)=>Y.label);async function t8(){return await MY(a8,{message:"OpenAI accounts",subtitle:"Select an account action",clearScreen:!0})??"cancel"}async function e8(Y,X=!1){return await MY(X?[{label:"Yes",value:!0},{label:"No",value:!1}]:[{label:"No",value:!1},{label:"Yes",value:!0}],{message:Y})??!1}function wU(Y,X=process.platform,J=MU){try{if(X==="win32")J("cmd",["/c","start","",Y],{stdio:"ignore",timeout:3000});else J(X==="darwin"?"open":"xdg-open",[Y],{stdio:"ignore",timeout:3000});return!0}catch{return!1}}function AU(){return{url:"",instructions:"",method:"auto",callback:async()=>({type:"failed"})}}async function RU(){let{redirectUri:Y}=await GQ(),X=await JQ(),J=XQ(crypto.getRandomValues(new Uint8Array(32)).buffer),Q=QQ(Y,X,J),$=WQ(X,J);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:X9(G)}}finally{$Q(J)}}}}async function TU(Y){let{deviceData:X,url:J,instructions:Q}=await zQ(Y);return{url:J,instructions:Q,method:"auto",async callback(){try{let $=await KQ(X,Y);return{type:"success",refresh:$.refresh_token,access:$.access_token,expires:Date.now()+($.expires_in??3600)*1000,accountId:X9($)}}catch{return{type:"failed"}}}}}function YQ(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
|
-
`),
|
|
11
|
-
`),knobs:{config:Q,accountIds:$}}}if(G[0]==="on"){let W={...Q,enabled:!0,main:Q.main??{primary:
|
|
9
|
+
`)}function HQ({client:Y,getAuth:X,getPaths:J=()=>r(t()),fetchImpl:Q=fetch,packageVersion:$=E9,dependencies:G}){let W={authorizeBrowser:G?.authorizeBrowser??RU,authorizeHeadless:G?.authorizeHeadless??(()=>TU($)),beginAccountLogin:G?.beginAccountLogin??wY,loadAccounts:G?.loadAccounts??E0,mutateAccounts:G?.mutateAccounts??F0,refreshAllQuota:G?.refreshAllQuota??E1,showAuthMenu:G?.showAuthMenu??t8,confirm:G?.confirm??e8,readStoreIds:G?.readStoreIds??d8,openBrowser:G?.openBrowser??wU,now:G?.now??Date.now,custodyQuotaDeps:G?.custodyQuotaDeps??{}},K=async()=>await X?.().catch(()=>{return})??{type:"missing"},H=async()=>{if((await K()).type!=="missing")return!0;return((await W.loadAccounts(J()))?.accounts.length??0)>0},U=async(_)=>{await Y.auth.set({path:{id:"openai"},body:{type:"oauth",..._}})},Z=async()=>{let _=new AbortController,P=await W.beginAccountLogin({version:$,signal:_.signal});P.completion.catch(()=>{}),YQ(P);let b=!1;try{b=await W.openBrowser(P.url)!==!1}catch{b=!1}if(!b)_.abort(),console.log(`Could not open a browser. Switching to device authorization.
|
|
10
|
+
`),P=await W.beginAccountLogin({version:$,headless:!0}),YQ(P);return P.completion},O=async()=>{let _=await W.loadAccounts(J());if(y1(_)==="claustrum"){console.log("That account cannot be added while Claustrum mode is active. Run `/openai-account local` first.");return}let P=await Z(),b=!1;if(await W.mutateAccounts((y)=>{if(P.accountId&&y.mainAccountId&&P.accountId===y.mainAccountId)return b=!0,y;return UQ(y.accounts,P),y},J()),b){console.log("That account is already the OpenCode main credential.");return}console.log(`Added fallback account ${P.id}.`)},N=async()=>{let _=await Z();await U({refresh:_.refresh,access:_.access??"",expires:_.expires??0}),console.log("Updated the OpenCode main credential.")},V=async()=>{let _=J(),P=await W.loadAccounts(_),b=new RY({storage:P,configPath:_.configPath,fetchImpl:Q,now:W.now}),y={refreshAccount:async(W0)=>W0},n=async()=>{throw Error("No usable main access token for quota check")},a=async(W0)=>{let O0=await W.loadAccounts(W0);if(!O0)return null;return{...O0,accounts:O0.accounts.map((f0)=>L0(f0)?{...f0,lastRefreshError:void 0}:{...f0})}},V0=await W.refreshAllQuota({getAuth:K,codexRefreshFn:n,refreshMainWithLease:n,fallbackManager:y,quotaManager:b,loadAccounts:a,writeSidebarState:async()=>{},client:{auth:{set:async()=>{throw Error("Quota checks cannot write credentials")}}},fetchImpl:Q,now:W.now,paths:_,storageMainAccountId:P?.mainAccountId,isOAuthAccountFn:L0,whamFn:AY,respectBackoff:!1,readSidebarState:async()=>({main:{},fallbacks:[]}),...W.custodyQuotaDeps});CU(V0)},q=async()=>{let _=J(),[P,b,y]=await Promise.all([W.loadAccounts(_),W.readStoreIds(_),K()]),n=i8({auth:y.type==="missing"?void 0:y,storage:P,orphanStateIds:b.orphanStateIds,now:W.now()});return console.log(o8(n)),n},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 P=J();for(let b of _.repairs){if(b.type==="restore-main-credential"){let y=await W.loadAccounts(P),n=jX(y);if(!n)continue;await U({refresh:n.refresh,access:n.access??"",expires:n.expires??0});continue}if(b.type==="prune-orphan-state-ids"){await W.mutateAccounts((y)=>y,P);continue}await W.mutateAccounts((y)=>{let n=y.accounts.find((a)=>a.id===b.accountId&&L0(a));if(n)n.lastRefreshError=void 0;return y},P)}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((P,b)=>{let y=new Set([...b?.rawRosterIds??[],...P.accounts.map((n)=>n.id)].filter((n)=>n!=="main"));return _.splice(0,_.length,...y),P.accounts=P.accounts.filter((n)=>n.id==="main"),P},J(),{allowDrop:_}),console.log("Deleted all fallback accounts.")},m=async(_)=>{switch(_){case"add-account":await O();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 H())return await m(await W.showAuthMenu()),AU();return W.authorizeBrowser()}},{label:"ChatGPT Pro/Plus (headless)",type:"oauth",authorize:W.authorizeHeadless},{label:"Manually enter API Key",type:"api"}]}function CU(Y){for(let X of Y)console.log(X.ok?`${X.account}: quota refreshed`:`${X.account}: ${X.error??"quota refresh failed"}`)}var o0=N0("commands");function S0(Y){return{configPath:Y.accountStoragePath,statePath:Y.accountStatePath}}async function SU(Y,X){let J=await X.loadAccounts(S0(X))??{version:1,accounts:[]},Q=J.killswitch??{},$=(J.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 H=Q.main??{},U=H.primary??H["5h"]??f1.primary,Z=H.secondary??H["1w"]??f1.secondary;K.push(`| main | ≥ ${U}% | ≥ ${Z}% |`);for(let O of $){let N=Q.accounts?.[O]??Q.main??{},V=N.primary??N["5h"]??f1.primary,q=N.secondary??N["1w"]??f1.secondary;K.push(`| ${O} | ≥ ${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:f1.primary,secondary:f1.secondary}};return await F0((K)=>{return K.killswitch=W,K},S0(X)),o0.info("killswitch enabled"),{command:"openai-killswitch",text:"## Killswitch Enabled",knobs:{config:W,accountIds:$}}}if(G[0]==="off"){let W={...Q,enabled:!1};return await F0((K)=>{return K.killswitch=W,K},S0(X)),o0.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 H=G[K]?.match(/^([^:]+):(\d+),(\d+)$/);if(!H)continue;let[,U,Z,O]=H,N={primary:Number.parseInt(Z,10),secondary:Number.parseInt(O,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 F0((K)=>{return K.killswitch=W,K},S0(X)),o0.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 kU(Y,X){let J=Y.trim().toLowerCase().split(/\s+/).filter(Boolean),Q=i0(),$=Q.dump;if(J.length===0)return{command:"openai-dump",text:`## Request Dump
|
|
12
12
|
|
|
13
13
|
- Enabled: ${$?"ON":"OFF"}
|
|
14
14
|
- Directory: ${Q.dumpDir}
|
|
15
15
|
|
|
16
|
-
Usage: \`/openai-dump on\` or \`/openai-dump off\``,knobs:{enabled:$}};if(J[0]==="on"){await
|
|
16
|
+
Usage: \`/openai-dump on\` or \`/openai-dump off\``,knobs:{enabled:$}};if(J[0]==="on"){await F0((W)=>{return W.dump={...W.dump??{},enabled:!0},W},S0(X));let G=OX();return o0.info("request dump enabled"),{command:"openai-dump",text:`## Request Dump Enabled
|
|
17
17
|
|
|
18
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(J[0]==="off")return await
|
|
20
|
+
Warning: body dumps may contain prompt/session content. Turn this off after debugging.`,knobs:{enabled:!0}}}if(J[0]==="off")return await F0((G)=>{return G.dump={...G.dump??{},enabled:!1},G},S0(X)),OX(),o0.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 xU(Y,X){let J=Y.trim().toLowerCase().split(/\s+/).filter(Boolean),Q=["error","warn","info","debug","trace"];if(J.length===0){let W=(await X.loadAccounts(S0(X)))?.logging?.level??"info";return{command:"openai-logging",text:`## Logging
|
|
21
21
|
|
|
22
22
|
- Level: \`${W}\`
|
|
23
23
|
|
|
24
24
|
Valid levels: ${Q.map((K)=>`\`${K}\``).join(", ")}
|
|
25
25
|
|
|
26
|
-
Usage: \`/openai-logging <level>\``,knobs:{level:W}}}let $=J[0];if($&&Q.includes($)){let G=$;return
|
|
26
|
+
Usage: \`/openai-logging <level>\``,knobs:{level:W}}}let $=J[0];if($&&Q.includes($)){let G=$;return TY(G),await F0((W)=>{return W.logging={...W.logging??{},level:G},W},S0(X)),o0.info("log level changed",{level:G}),{command:"openai-logging",text:`## Logging Updated
|
|
27
27
|
|
|
28
28
|
Level set to \`${G}\`.`,knobs:{level:G}}}return{command:"openai-logging",text:`## Invalid Level
|
|
29
29
|
|
|
30
|
-
Valid levels: ${Q.map((G)=>`\`${G}\``).join(", ")}`,knobs:{level:"info"}}}function
|
|
30
|
+
Valid levels: ${Q.map((G)=>`\`${G}\``).join(", ")}`,knobs:{level:"info"}}}function bU(Y){let X=/^(\d{1,2})-(\d{1,2})$/.exec(Y.trim());if(!X)return{ok:!1,reason:"expected HH-HH, e.g. 9-18 or 22-6"};let J=Number(X[1]),Q=Number(X[2]);if(!Number.isInteger(J)||!Number.isInteger(Q)||J<0||J>23||Q<0||Q>23||J===Q)return{ok:!1,reason:"hours must be integers 0-23 and start ≠ end"};return{ok:!0,startHour:J,endHour:Q}}async function vU(Y,X){let J=X.cacheKeepManager,Q=Y.trim().toLowerCase().split(/\s+/).filter(Boolean),$=await X.loadAccounts(S0(X)),G=$?.cachekeep?.enabled===!0;if(Q.length===0||Q[0]==="status"){if(!J)return{command:"openai-cachekeep",text:`## Cachekeep
|
|
31
31
|
|
|
32
|
-
Status: **not available** (manager not wired)`,knobs:{}};let K=J.status(),
|
|
33
|
-
`),knobs:{enabled:G,subagents:$?.cachekeep?.subagents===!0,sustain:K.sustain,window:
|
|
32
|
+
Status: **not available** (manager not wired)`,knobs:{}};let K=J.status(),H=K.window,U=H?`${String(H.startHour).padStart(2,"0")}-${String(H.endHour).padStart(2,"0")}`:"always (no window)",Z=["## 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(Z.push(`Tracked sessions: **${K.tracked}**`),K.targets.length>0){Z.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);Z.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`:""))}}Z.push(""),Z.push(`TTL: ${Math.round(K.ttlMs/1000)}s | Lead: ${Math.round(K.leadMs/1000)}s | Max idle warm: ${Math.round(K.maxIdleWarmMs/60000)}min`),Z.push(""),Z.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 O=Math.max(0,...K.targets.map((N)=>N.lastWarmedAt??0));return{command:"openai-cachekeep",text:Z.join(`
|
|
33
|
+
`),knobs:{enabled:G,subagents:$?.cachekeep?.subagents===!0,sustain:K.sustain,window:H,running:K.running,tracked:K.tracked,lastWarmAt:O||void 0,generatedAt:K.generatedAt,maxIdleWarmMs:K.maxIdleWarmMs,maxSubagentIdleMs:K.maxSubagentIdleMs}}}if(Q[0]==="on"){if(!J)return{command:"openai-cachekeep",text:`## Cachekeep
|
|
34
34
|
|
|
35
|
-
Cannot start: manager not wired.`,knobs:{}};await
|
|
35
|
+
Cannot start: manager not wired.`,knobs:{}};await F0((U)=>{return U.cachekeep={...U.cachekeep??{},enabled:!0},U},S0(X)),o0.info("cachekeep enabled"),X.setCacheKeepEnabled?.(!0),J.start();let K=J.status(),H=Math.max(0,...K.targets.map((U)=>U.lastWarmedAt??0));return{command:"openai-cachekeep",text:`## Cachekeep Enabled
|
|
36
36
|
|
|
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:
|
|
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:H||void 0,generatedAt:K.generatedAt,maxIdleWarmMs:K.maxIdleWarmMs,maxSubagentIdleMs:K.maxSubagentIdleMs}}}if(Q[0]==="off")return await F0((K)=>{return K.cachekeep={...K.cachekeep??{},enabled:!1},K},S0(X)),o0.info("cachekeep disabled"),X.setCacheKeepEnabled?.(!1),J?.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 H=K==="on";await F0((Z)=>{return Z.cachekeep={...Z.cachekeep??{},sustain:H},Z},S0(X)),o0.info(`cachekeep sustain ${H?"enabled":"disabled"}`),X.setCacheKeepSustain?.(H);let U=J?.status();return{command:"openai-cachekeep",text:H?`## 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:G,subagents:$?.cachekeep?.subagents===!0,sustain:
|
|
43
|
+
Main-agent sessions again stop warming at the configured idle cap.`,knobs:{enabled:G,subagents:$?.cachekeep?.subagents===!0,sustain:H,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 H=K==="on";await F0((Z)=>{return Z.cachekeep={...Z.cachekeep??{},subagents:H},Z},S0(X)),o0.info(H?"cachekeep subagent warming enabled":"cachekeep subagent warming disabled"),X.setCacheKeepSubagents?.(H);let U=J?.status();return{command:"openai-cachekeep",text:`## Cachekeep Subagent Warming
|
|
44
44
|
|
|
45
|
-
Subagent warming: **${
|
|
45
|
+
Subagent warming: **${H?"ON":"OFF"}**`,knobs:{enabled:G,subagents:H,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 F0((U)=>{if(U.cachekeep)delete U.cachekeep.startHour,delete U.cachekeep.endHour;return U},S0(X)),X.setCacheKeepWindow?.(void 0),o0.info("cachekeep window cleared");let H=J?.status();return{command:"openai-cachekeep",text:`## Cachekeep Window Cleared
|
|
46
46
|
|
|
47
|
-
Cachekeep will now warm on every tick (within idle caps).`,knobs:{enabled:G,subagents:$?.cachekeep?.subagents===!0,sustain:
|
|
47
|
+
Cachekeep will now warm on every tick (within idle caps).`,knobs:{enabled:G,subagents:$?.cachekeep?.subagents===!0,sustain:H?.sustain??$?.cachekeep?.sustain===!0,window:void 0,running:H?.running??!1,tracked:H?.tracked??0,generatedAt:H?.generatedAt??Date.now(),maxIdleWarmMs:H?.maxIdleWarmMs??3600000,maxSubagentIdleMs:H?.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=bU(W);if(!K.ok)return{command:"openai-cachekeep",text:`## Cachekeep Window Invalid
|
|
48
48
|
|
|
49
|
-
${K.reason}`,knobs:{}};let{startHour:
|
|
49
|
+
${K.reason}`,knobs:{}};let{startHour:H,endHour:U}=K;await F0((N)=>{return N.cachekeep={...N.cachekeep??{},startHour:H,endHour:U},N},S0(X)),X.setCacheKeepWindow?.({startHour:H,endHour:U}),o0.info("cachekeep window set",{startHour:H,endHour:U});let Z=J?.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,!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:")){X=G.slice(6).trim();continue}if(G.startsWith("data:"))J.push(G.slice(5).trim())}return $(),Q??RX()}class CX{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??aU,this.tickIntervalMs=Y.tickIntervalMs??DQ,this.leadMs=Y.leadMs??this.tickIntervalMs+15000;let X=Y.maxIdleWarmMs??Y.maxDurationMs;this.maxIdleWarmMs=typeof X==="number"&&Number.isFinite(X)&&X>0?X:tU;let J=Y.maxSubagentIdleMs??jQ;this.maxSubagentIdleMs=typeof J==="number"&&Number.isFinite(J)&&J>0?J:jQ,this.tickIntervalMs=Y.tickIntervalMs??DQ,this.maxTargets=Y.maxTargets??eU,this.maxBytes=Y.maxBytes??YZ,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 K=this.getWindow?.();if(K&&!FQ(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:J}));while(this.targets.size>=this.maxTargets||this.totalBytes+W>this.maxBytes&&this.targets.size>0){let L,F=Number.POSITIVE_INFINITY;for(let[V,j]of this.targets){let R=Math.max(j.lastRealRequestAt,j.lastWarmedAt??0);if(R<F)L=V,F=R}if(L===void 0)break;let N=this.targets.get(L);if(N)this.totalBytes-=N.bodyText.length;this.targets.delete(L)}let Z=JZ(X,this.ttlMs),U={bodyText:X,accountId:J||void 0,chatgptAccountId:Q,route:"main",ttlMs:Z,cacheExpiresAt:this.now()+Z,warmCount:0,lastRealRequestAt:this.now(),replayHeaders:$,isSubagent:G,is56:wQ(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-OQ;for(let[$,G]of this.targets){let W,K;if(this.isGpt56Subagent(G))W=Q,K=OQ;else W=G.isSubagent?J:X,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 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&&!FQ(Y,new Date(this.now())))return;let X=this.now(),J=X+this.leadMs;for(let[Q,$]of this.targets)if($.backoffUntil&&X>=$.backoffUntil&&$.cacheExpiresAt<=J)await this.prewarm(Q,$);for(let[Q,$]of this.targets){if($.backoffUntil&&X<$.backoffUntil)continue;if($.cacheExpiresAt<=J)await this.prewarm(Q,$)}}finally{this.tickInFlight=!1}}async prewarm(Y,X){let J,Q;try{if(X.accountId&&X.accountId!=="main"){let G=await this.refreshFallback(X.accountId);if(typeof G==="string")J=G;else J=G.token,Q=G.onAuthFailure}else J=await this.getMainToken()}catch(G){if(!this.disposed&&this.targets.get(Y)===X)X.backoffUntil=this.now()+TX;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 $={...X.replayHeaders,authorization:`Bearer ${J}`,"content-type":"application/json"};if(X.chatgptAccountId)$["ChatGPT-Account-Id"]=X.chatgptAccountId;else delete $["ChatGPT-Account-Id"];try{let G=XZ(X.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=IY({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)!==X)return;if(!Z.ok){if(X.backoffUntil=this.now()+TX,Z.status===401)await Q?.(Z.status);this.log.warn("cachekeep failed",this.logPayload({session:Y,accountId:X.accountId??"main",status:Z.status,error:`HTTP ${Z.status}`,responseBody:U.slice(0,600)}));return}let L=Z.headers.get("content-type")??"",F=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:F}));let N=F?$Z(U):QZ(U),V=X9(Z.headers),j=V.primary?.usedPercent??null,R=V.secondary?.usedPercent??null;if(this.log.debug("cachekeep fired",this.logPayload({session:Y,accountId:X.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:j,quota_secondary_pct:R})),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()+TX,this.log.warn("cachekeep failed",this.logPayload({session:Y,accountId:X.accountId??"main",error:G instanceof Error?G.message:String(G)}))}}}import{createHash as zZ}from"node:crypto";import{isAbsolute as GZ,join as TQ}from"node:path";var WZ=B0("custody"),RQ=new Set;function IX(Y=process.env){let X=Y.CLAUSTRUM_OPENCODE_HANDLES;if(X&&GZ(X))return X;if(X&&!RQ.has(X))RQ.add(X),WZ.warn("ignoring non-absolute CLAUSTRUM_OPENCODE_HANDLES",{configuredPath:X});let J=Y.XDG_CONFIG_HOME||(Y.HOME?TQ(Y.HOME,".config"):".config");return TQ(J,"cortexkit","opencode-handles.json")}function s0(Y=IX(),X={}){return CQ(Y,X)}var _X="openai",IQ=250,bQ=new Set;function vQ(Y){if(typeof Y.access!=="string"||typeof Y.refresh!=="string")return;let X=Buffer.from(Y.access),J=Buffer.from(Y.refresh),Q=($)=>{let G=Buffer.alloc(4);return G.writeUInt32BE($.length),G};return zZ("sha256").update(Q(X)).update(X).update(Q(J)).update(J).digest("hex")}function hQ(Y){let X=vQ(Y);if(X)bQ.add(X)}function KZ(Y){let X=vQ(Y);return X!==void 0&&bQ.has(X)}function gQ(Y){if(!Y||typeof Y!=="object")return;let X=Y;if(X.type!=="oauth")return;return{type:"oauth",...typeof X.access==="string"?{access:X.access}:{},...typeof X.refresh==="string"?{refresh:X.refresh}:{},...typeof X.expires==="number"?{expires:X.expires}:{}}}function SY(Y){let X=gQ(Y);if(typeof X?.access!=="string"||typeof X.refresh!=="string")return;return{access:X.access,refresh:X.refresh,...typeof X.expires==="number"?{expires:X.expires}:{}}}function _Y(Y){let X=gQ(Y);if(!X)return{kind:"indeterminate"};if(!k0({id:"main",type:"oauth",access:X.access??"",refresh:X.refresh??"",expires:X.expires??0,addedAt:0},_X))return{kind:"real",oauth:X};let J=V1(_X);if(X.access===J.access&&X.expires===J.expires)return{kind:"tombstone",oauth:X};return{kind:"empty",oauth:X}}async function _Q(Y){if(!Y.auth.get)return;return Y.auth.get({path:{id:_X}})}async function SQ(Y){if(!Y.auth.all)return!1;return Object.keys(await Y.auth.all()).length>0}async function UZ(Y){let X=await _Q(Y.client);if(X!==void 0)return _Y(X);let J=await SQ(Y.client),Q=Y.now();if(await Y.sleep(IQ),Y.now()-Q<IQ)return{kind:"indeterminate"};let $=await _Q(Y.client);if($!==void 0)return _Y($);let G=await SQ(Y.client);return J&&G?{kind:"slot-absent"}:{kind:"indeterminate"}}function ZZ(Y){if(Y.ok)return"present";return Y.reason==="absent"?"absent":"unreadable"}function k9(Y){let X=Q1(Y);return X?$1(X):void 0}async function kQ(Y){let X=y0(Y.manifest).get("main");if(!X)return"no_handle";if(!Y.getCredential)return"cold";try{let J=await Y.getCredential(X),Q=k9(J.access);if(Y.mainAccountId&&Q&&Q!==Y.mainAccountId)return"identity_mismatch";return"serves"}catch{return Y.isReauth?.(X)?"needs_reauth":"cold"}}function xQ(Y){return Y.kind==="real"&&KZ(Y.oauth)}async function yQ(Y){let X=await UZ(Y);if(X.kind==="indeterminate")return;let J=ZZ(Y.manifest);if(X.kind==="slot-absent"){let $=await kQ(Y);return S9({mode:Y.mode,manifest:J,local:X.kind,verifiedInProcessLogin:xQ(X),vault:()=>$==="no_handle"||$==="identity_mismatch"?$:"serves"})}let Q=await kQ(Y);return S9({mode:Y.mode,manifest:J,local:X.kind,verifiedInProcessLogin:xQ(X),vault:()=>Q})}import{createHash as LZ}from"node:crypto";var dQ="claustrum-mode",u1="main-refresh",fQ=Promise.resolve();async function kX(){let Y,X=new Promise(($)=>{Y=$}),J=fQ;fQ=J.then(()=>X),await J;let Q=!1;return{async release(){if(Q)return;Q=!0,Y()}}}async function iQ(Y){let X=Y.now()+5000;while(Y.now()<X){try{let J=await Y.getAuth();if(J?.access===Y.accessToken&&J.refresh===Y.refreshToken){await Y.onObserved?.({access:J.access,refresh:J.refresh}),await Y.release();return}}catch{}await Y.sleep(Math.max(0,Math.min(100,X-Y.now())))}Y.warn("host write not observed within 5s; lease released"),await Y.release()}function mQ(Y){return Y.accounts.filter((X)=>V0(X)&&X.enabled!==!1)}function SX(Y,X){return Y<X?-1:Y>X?1:0}function uQ(Y,X){return[{id:"main",accountId:X?.mainAccountId,kind:"main"},...Y.map((J)=>({id:J,accountId:X?.accounts.find((Q)=>Q.id===J)?.accountId,kind:"fallback"}))].sort((J,Q)=>SX(J.id,Q.id))}function HZ(Y){return Y.kind==="main"?u1:M1(Y.id)}function cQ(Y){return Y.access?J9(Y.access,Y.refresh):void 0}function pQ(Y){return Object.values(Y).some((X)=>X==="new-local-family-under-claustrum"||X==="torn-read-deferred"||X.startsWith("aborted:"))}async function oQ(Y){let X=await kX(),J=[],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"};J.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=uQ(Y.accountIds);Y.warn?.(`transition participants: ${K.map((Z)=>Z.id).join(",")}`);for(let Z of K){let U=await Y.acquireLock({name:HZ(Z),renew:!0});if(!U)return{status:"aborted",outcomes:Q,reason:`account-lock-unavailable:${Z.id}`};J.push(U)}return await Y.withStoreTransaction(async(Z)=>{let U=await Z.read(),L=uQ(Y.accountIds,U),F=mQ(U).map((E)=>E.id).sort(SX),N=[...Y.accountIds].sort(SX);if(F.length!==N.length||F.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 j=y0(V),R=U.claustrum?.mode==="claustrum"?U.claustrum?.transition:void 0,S=R?R.fingerprints:{fallbacks:{}},u=R?.storeGeneration??lQ(U);if(!R){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=J9(E.access,E.refresh);for(let b of mQ(U)){let f=cQ(b);if(f)S.fallbacks[b.id]=f}}await G("captured"),Y.warn?.(`handles resolved: isMap=${j instanceof Map} size=${j instanceof Map?j.size:"n/a"}`);for(let E of L){let b=j.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(!R){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)!==u)return{status:"aborted",outcomes:Q,reason:"store-generation-changed"};await G("revalidated"),await Z.writeMode("claustrum",{manifestRevision:V.revision,storeGeneration:u,fingerprints:S}),await G("mode-written")}let I=!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||cQ(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((F0)=>F0.id===E.id&&F0.type==="oauth");Q[E.id]=W0&&k0(W0,"openai")?"tombstoned":"aborted:post-write-readback"}catch{Q[E.id]="aborted:write-failed",I=!0;break}}if(I)return await G("material-written"),{status:"incomplete",outcomes:Q};if(Q.main=S.main?await xX(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 J.reverse())await W.release().catch(()=>{});await X.release(),await G("mutex-released").catch(()=>{})}}async function xX(Y,X){let J=SY(await X.auth.get({path:{id:"openai"}}));if(J&&k0({id:"main",type:"oauth",access:J.access,refresh:J.refresh,expires:J.expires??0},"openai"))return"tombstoned";if(!J||J9(J.access,J.refresh)!==Y)return"new-local-family-under-claustrum";let Q=await X.auth.all();if(Object.keys(Q).length===0)return X.warn?.("host auth store read empty; refusing to write — possible torn read"),"torn-read-deferred";try{let $=V1("openai");await X.auth.set.bind(X.auth)({path:{id:"openai"},body:$});let W=SY(await X.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 X=await Y.acquireLock({name:dQ,renew:!0});if(!X)throw Error("Claustrum mode lock unavailable");try{await Y.withStoreTransaction(async(J)=>{return await J.writeMode("local"),{status:"completed",outcomes:{}}})}finally{await X.release()}}function lQ(Y){let X=Y.accounts.filter((J)=>J.type==="oauth").map((J)=>({id:J.id,enabled:J.enabled!==!1,accountId:J.accountId??"",access:J.access??"",refresh:J.refresh,expires:J.expires??null})).sort((J,Q)=>J.id<Q.id?-1:J.id>Q.id?1:0);return LZ("sha256").update(JSON.stringify(X)).digest("hex")}var eQ=900000,VZ=0.016666666666666666,rQ=0.000001;function vX(Y,X){for(let J of[Y?.primary?.checkedAt,Y?.checkedAt,X])if(typeof J==="number"&&Number.isFinite(J))return J;return}function hX(Y){if(Y.status===401||Y.status===403)return{action:"migrate",reason:"permanent"};if(!Y.quota)return{action:"retain",reason:"unknown"};let X=vX(Y.quota,Y.quotaCheckedAt);if(X===void 0||!Number.isFinite(X)||Y.now-X>eQ)return{action:"retain",reason:"stale"};if(Y.killswitchPasses===!1)return{action:"migrate",reason:"killswitch"};let J=bX(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 J)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,X,J){let Q=Math.max(0,Y.remainingPercent-X);if(Q<=0)return 0;if(!Y.resetsAt)return Q;let $=Date.parse(Y.resetsAt);if(!Number.isFinite($)||$<=J)return Q;let G=Math.max(($-J)/3600000,VZ);return Q/G}function aQ(Y,X){if(Y<X)return-1;if(Y>X)return 1;return 0}function NZ(Y,X){if(!Y.quota)return;let J=vX(Y.quota,Y.quotaCheckedAt);if(J===void 0||X-J>eQ)return;let Q=bX(Y.quota).map(({key:W,window:K})=>{return sQ(K,Y.reservePercent[W]??0,X)}),$=Y.quota.spendControl;if($&&Number.isFinite($.remainingPercent))Q.push(sQ($,0,X));let G=Q.length>0?Math.min(...Q):0;return G>0?{candidate:Y,quotaCheckedAt:J,weight:G}:void 0}function Y5(Y){let X=Y.candidates.filter(($)=>$.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(($)=>NZ($,Y.now)).filter(($)=>$!==void 0);if(J.length>0){J.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 $=J[0];if($)return{accountId:$.candidate.accountId,quotaCheckedAt:$.quotaCheckedAt,source:"weighted"}}Y.onEmptyWeightedSet?.();let Q=[...X].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:vX(Q.quota,Q.quotaCheckedAt),source:"mode-fallback"}}import{createHash as BZ}from"node:crypto";import{chmod as qZ,mkdir as FZ,readdir as OZ,readFile as jZ,writeFile as gX}from"node:fs/promises";import{join as $5}from"node:path";var uX=B0("dump"),w1="x-cortexkit-openai-auth-dump-session",DZ=["http","prewarm","main"],X5=0,Q9=new Map,PZ=100;function yX(Y){return Y.length<=16?Y:`${Y.slice(0,12)}…`}function G5(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 W5(Y){return BZ("sha256").update(Y).digest("hex")}function fX(Y){return W5(JSON.stringify(Y))}function z5(Y){try{let X=JSON.parse(Y);return X!=null&&typeof X==="object"&&!Array.isArray(X)?X:void 0}catch{return}}function EZ(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,$=X.length-1;while(Q>=J&&$>=J&&Y[Q]===X[$])Q--,$--;return{changed:!0,firstByte:J,lastPreviousByte:Q,lastCurrentByte:$,changedPreviousBytes:Q-J+1,changedCurrentBytes:$-J+1,previousBytes:Y.length,currentBytes:X.length}}function MZ(Y,X){if(!Q9.has(Y))while(Q9.size>=PZ){let J=Q9.keys().next().value;if(J===void 0)break;Q9.delete(J)}Q9.set(Y,X)}var J5=new Set;async function wZ(Y,X,J){let Q=G5(X),$=DZ.map((G)=>`-${Q}-${J}-${G}.body.json`);try{let W=(await OZ(Y)).filter((K)=>$.some((Z)=>K.endsWith(Z))).sort().pop();if(!W)return;return await jZ($5(Y,W),"utf8")}catch{return}}function AZ(Y){if(Y===void 0)return;return Object.fromEntries(new Headers(Y).entries())}function cX(Y){if(Array.isArray(Y))return Y.map(cX);if(Y==null||typeof Y!=="object")return Y;let X={};for(let[J,Q]of Object.entries(Y)){let $=J.toLowerCase();if($==="authorization"||$==="chatgpt-account-id"||$==="cookie"||$==="set-cookie"){X[J]="[redacted]";continue}X[J]=cX(Q)}return X}function TZ(Y){let X=z5(Y);if(X===void 0)return Y;let J=RZ(X),Q=JSON.stringify(J);if(Q===void 0)return Y;return JSON.stringify(X)===Q?Y:Q}function RZ(Y){if(!h(Y))return mX(Y);let X={};for(let[J,Q]of Object.entries(Y))X[J]=J==="tools"?Q5(Q):mX({[J]:Q})[J];return X}function CZ(Y){return Y!=null&&typeof Y==="object"&&"type"in Y&&typeof Y.type==="string"?Y.type:"unknown"}function IZ(Y){let X=z5(Y);if(!X)return{parseable:!1};let J=Array.isArray(X.input)?X.input:[],Q=Array.isArray(X.tools)?X.tools:[],$=Q.map(CZ),G=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:fX(J),inputBytes:JSON.stringify(J).length,firstInputHash:J[0]===void 0?null:fX(J[0]),toolsCount:Q.length,toolTypes:$,toolsHash:fX(Q),hasWebSearch:$.includes("web_search"),clientMetadataKeys:G?Object.keys(G).sort():[]}}async function $9(Y){let X=g0();if(!X.dump)return;X5++;let J=Y.sessionID?.trim()||"session-unknown",Q=`${new Date().toISOString().replace(/[:.]/g,"-")}-${process.pid}-${String(X5).padStart(5,"0")}-${G5(J)}-${Y.transport}-${Y.phase}`,$=$5(X.dumpDir,Q),G={body:`${$}.body.json`,metadata:`${$}.meta.json`,request:`${$}.request.json`},W=`${Y.transport}:${J}`,K=Q9.get(W),Z=K?"memory":void 0;if(K===void 0&&!J5.has(W)){if(J5.add(W),K=await wZ(X.dumpDir,J,Y.transport),K!==void 0)Z="disk"}try{await FZ(X.dumpDir,{recursive:!0,mode:448}),await qZ(X.dumpDir,448).catch(()=>{});let U=TZ(Y.bodyText),L={id:Q,createdAt:new Date().toISOString(),session:yX(J),transport:Y.transport,phase:Y.phase,accountId:Y.accountId,status:Y.status,error:Y.error,bodyBytes:Y.bodyText.length,bodyHash:W5(Y.bodyText),diff:EZ(K,U),baselineSource:Z,body:IZ(Y.bodyText),files:G};await Promise.all([gX(G.body,U,{encoding:"utf8",mode:384}),gX(G.metadata,`${JSON.stringify(L,null,2)}
|
|
53
|
-
`,{encoding:"utf8",mode:384}),
|
|
54
|
-
`,{encoding:"utf8",mode:384})]),uX.debug("dumped request",{id:Q,session:yX(J),body:G.body,meta:G.metadata}),MZ(W,U)}catch(U){uX.warn("request dump failed",{session:yX(J),error:U instanceof Error?U.message:String(U)})}}async function N1(Y){if(!g0().dump)return;uX.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 lX(Y){if(_Z(Y))return;if(!kZ(Y))return Y;let X=Y.item;return Z5.set(X.id,X),{...Y,item:{type:"function_call",id:X.id,call_id:X.id,name:"web_search",arguments:JSON.stringify(h(X.action)?X.action:{})}}}function H5(Y){if(!Y.body)return Y;if(!(Y.headers.get("content-type")??"").includes("text/event-stream"))return Y;return new Response(SZ(Y.body),{status:Y.status,statusText:Y.statusText,headers:Y.headers})}function V5(Y){if(!Array.isArray(Y.input))return!1;let X=!1,J=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(xZ(W)){J.set(W.call_id,W),X=!0;continue}if(bZ(W,J)){Q.push(pX(W.call_id,W.output,J.get(W.call_id))),X=!0;continue}if(vZ(W)){let K=Z5.get(W.id);if(K)Q.push(pX(W.id,K));else{let Z=$.get(W.id),U=G.get(W.id);if(Z||U)Q.push(pX(W.id,U,Z));else Q.push(W)}X=!0;continue}Q.push(W)}if(X)Y.input=Q;return X}function _Z(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 SZ(Y){let X=new TextDecoder,J=new TextEncoder,Q="";return Y.pipeThrough(new TransformStream({transform($,G){Q+=X.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(J.encode(Z));W=K5(Q)}},flush($){if(Q+=X.decode(),!Q)return;let G=U5(Q);if(G)$.enqueue(J.encode(G))}}))}function K5(Y){let X=Y.indexOf(`
|
|
55
|
-
|
|
56
|
-
`),J=Y.indexOf(`\r
|
|
57
|
-
\r
|
|
58
|
-
`);if(X===-1)return J===-1?void 0:{index:J,length:4};if(J===-1||X<J)return{index:X,length:2};return{index:J,length:4}}function U5(Y){let X=Y.split(/\r?\n/).filter((J)=>J.startsWith("data:")).map((J)=>J.slice(5).trimStart()).join(`
|
|
59
|
-
`);if(!X)return`${Y}
|
|
60
|
-
|
|
61
|
-
`;if(X==="[DONE]")return`data: [DONE]
|
|
62
|
-
|
|
63
|
-
`;try{let J=JSON.parse(X);if(!h(J))return`${Y}
|
|
64
|
-
|
|
65
|
-
`;let Q=lX(J);if(!Q)return"";return`data: ${JSON.stringify(Q)}
|
|
66
|
-
|
|
67
|
-
`}catch{return`${Y}
|
|
68
|
-
|
|
69
|
-
`}}function kZ(Y){return Y.type==="response.output_item.done"&&h(Y.item)&&Y.item.type==="web_search_call"&&typeof Y.item.id==="string"}function xZ(Y){return h(Y)&&Y.type==="function_call"&&Y.name==="web_search"&&typeof Y.call_id==="string"&&Y.call_id.startsWith(kY)}function bZ(Y,X){return h(Y)&&Y.type==="function_call_output"&&typeof Y.call_id==="string"&&typeof Y.output==="string"&&Y.call_id.startsWith(kY)&&X.has(Y.call_id)}function vZ(Y){return h(Y)&&Y.type==="item_reference"&&typeof Y.id==="string"&&Y.id.startsWith(kY)}function pX(Y,X,J){let Q=hZ(X),$=h(Q?.action)?Q.action:gZ(J?.arguments);return{type:"web_search_call",status:"completed",...$?{action:$}:{}}}function hZ(Y){if(h(Y))return Y;if(typeof Y!=="string")return;try{let X=JSON.parse(Y);return h(X)?X:void 0}catch{return}}function gZ(Y){if(h(Y))return Y;if(typeof Y!=="string")return;try{let X=JSON.parse(Y);return h(X)?X:void 0}catch{return}}import{readFile as yZ}from"node:fs/promises";import{homedir as fZ}from"node:os";import{join as N5}from"node:path";var mZ="https://models.dev/api.json",uZ="OPENCODE_OPENAI_AUTH_MODELS_CACHE",cZ="OPENCODE_MODELS_PATH",pZ="OPENCODE_DISABLE_MODELS_FETCH",lZ=1e4,dZ=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 dX(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=B5(Y.cache_read),$=B5(Y.cache_write);if(Q===null||$===null)return null;return{input:X,output:J,cache:{read:Q,write:$}}}function iZ(Y){let X=A1(Y);if(!X)return null;let J=dX(X);if(!J)return null;let Q=J;if(Array.isArray(X.tiers)){let W=[];for(let K of X.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 F=dX(Z);if(!F)continue;W.push({...F,tier:{type:"context",size:L}})}if(W.length>0)Q.tiers=W}let $=A1(X.context_over_200k),G=$?dX($):null;if(G)Q.experimentalOver200K=G;return Q}function q5(Y){let X=A1(Y),J=A1(X?.openai),Q=A1(J?.models);if(!Q)return null;let $={};for(let[G,W]of Object.entries(Q)){let K=A1(W),Z=iZ(K?.cost);if(Z)$[G]=Z}return Object.keys($).length>0?$:null}function oZ(){let Y=process.env[uZ]?.trim();if(Y)return Y;let X=process.env[cZ]?.trim();if(X)return X;let J=process.env.XDG_CACHE_HOME?.trim()||(process.platform==="win32"?process.env.LOCALAPPDATA?.trim():void 0)||N5(fZ(),".cache");return N5(J,"opencode","models.json")}function nZ(){let Y=process.env[pZ]?.toLowerCase();return Y==="true"||Y==="1"}async function rZ(){try{let Y=q5(JSON.parse(await yZ(oZ(),"utf8")));if(Y)return Y}catch{}if(nZ())return null;try{let Y=await fetch(mZ,{signal:AbortSignal.timeout(lZ)});if(!Y.ok)return null;return q5(await Y.json())}catch{return null}}var G9;function F5(){let Y=Date.now();if(G9&&G9.expiresAt>Y)return G9.promise;let X={expiresAt:Y+dZ,promise:rZ()};return G9=X,X.promise.then((J)=>{if(J===null&&G9===X)G9=void 0}),X.promise}function W9(Y){return typeof Y==="object"&&Y!==null}function sZ(Y){if(Array.isArray(Y))return Y;if(W9(Y)&&Array.isArray(Y.data))return Y.data;return[]}function aZ(Y){if(!W9(Y)||!W9(Y.info))return;return typeof Y.info.role==="string"?Y.info.role:void 0}function O5(Y){if(!W9(Y)||!W9(Y.info))return null;let X=Y.info,J=W9(X.model)?X.model:void 0,Q=typeof X.agent==="string"?X.agent:void 0,$=typeof J?.providerID==="string"?J.providerID:typeof X.providerID==="string"?X.providerID:void 0,G=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 K={};if(Q)K.agent=Q;if($&&G)K.model={providerID:$,modelID:G};if(W)K.variant=W;return K}function j5(Y,X){return{agent:Y.agent??X.agent,model:Y.model??X.model,variant:Y.variant??X.variant}}function D5(Y){return Boolean(Y.agent&&Y.model&&Y.variant)}async function P5(Y,X){if(!Y||!X)return null;let J=Y;if(typeof J.session?.messages!=="function")return null;let Q=[];try{Q=sZ(await Promise.resolve(J.session.messages({path:{id:X},query:{limit:100}})))}catch{return null}if(Q.length===0)return null;let $={};for(let G=Q.length-1;G>=0;G--){if(aZ(Q[G])!=="assistant")continue;let W=O5(Q[G]);if(!W)continue;if($=j5($,W),D5($))return $}for(let G=Q.length-1;G>=0;G--){let W=O5(Q[G]);if(!W)continue;if($=j5($,W),D5($))return $}if(!$.agent&&!$.model&&!$.variant)return null;return $}var T1=[],tZ=1,E5=new Map;function iX(Y,X){if(T1.push({id:tZ++,type:"open-dialog",payload:Y,sessionId:X}),T1.length>100)T1=T1.slice(T1.length-100)}function M5(Y=0,X){let J=Date.now();if(X!==void 0)E5.set(X,J);let Q=($)=>X===void 0||$.sessionId===void 0||$.sessionId===X;if(Y>0)T1=T1.filter(($)=>{if($.id>Y)return!0;if(X===void 0)return!0;return $.sessionId!==X});return T1.filter(($)=>$.id>Y&&Q($))}function w5(Y){let X=Date.now(),J=E5.get(Y)??0;return J>0&&X-J<3000}import{randomBytes as eZ,timingSafeEqual as YL}from"node:crypto";import{readFile as XL,unlink as JL}from"node:fs/promises";import{createServer as QL}from"node:http";import{join as $L}from"node:path";var oX=B0("rpc");function GL(Y){return new Promise((X,J)=>{let Q=[],$=0;Y.on("data",(G)=>{if($+=G.length,$>1e6){Y.destroy(),J(Error("body too large"));return}Q.push(G)}),Y.on("end",()=>X(Buffer.concat(Q).toString("utf8"))),Y.on("error",J)})}function WL(Y,X){if(!Y?.startsWith("Bearer "))return!1;let J=Buffer.from(Y.slice(7)),Q=Buffer.from(X);return J.length===Q.length&&YL(J,Q)}async function R5(Y){let X=eZ(32).toString("hex"),J=Y.timeoutMs??90000,Q=Y.receiptTimeoutMs??2000,$=!1,G=QL((Z,U)=>{Z.setTimeout(J,()=>{Z.socket.destroy()}),W(Z,U)});G.requestTimeout=Q,G.headersTimeout=Q;async function W(Z,U){let L=(F,N)=>{if(U.headersSent||U.writableEnded||U.destroyed)return;U.writeHead(F,{"content-type":"application/json"}),U.end(JSON.stringify(N))};try{let F=Z.url??"";if(Z.method==="GET"&&F==="/health")return L(200,{ok:!0});if(Z.method!=="POST"||!F.startsWith("/rpc/"))return L(404,{error:"not found"});if(!WL(Z.headers.authorization,X))return L(401,{error:"unauthorized"});let N=F.slice(5),V=await GL(Z),j=JSON.parse(V||"{}");if(N==="pending-notifications"){let R=typeof j.sessionId==="string"?j.sessionId:void 0;if(R===void 0&&!$)$=!0,oX.warn("rpc notification drain missing session id",{pid:process.pid});let S=Y.drain(Number(j.lastReceivedId??0),R);return L(200,{messages:S})}if(N==="apply"){let R=await Y.apply(j);return L(200,R)}return L(404,{error:"unknown method"})}catch(F){L(500,{error:F instanceof Error?F.message:String(F)})}}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 T5(Y.sweepRoot,Y.dir)}catch(Z){oX.warn("rpc state sweep failed",{pid:process.pid,error:Z instanceof Error?Z.message:String(Z)})}try{await A5(Y.dir,{port:K,token:X,pid:process.pid},{secureDir:Y.secureDir}),oX.debug("rpc server pid",{pid:process.pid,rpcPort:K})}catch(Z){throw await new Promise((U)=>G.close(()=>U())),Z}return{port:K,token:X,async stop(){await new Promise((L)=>G.close(()=>L()));let Z=$L(Y.dir,`port-${process.pid}.json`),U=await XL(Z,"utf8").then((L)=>JSON.parse(L)).catch(()=>{return});if(U?.port===K&&U.token===X)await JL(Z).catch(()=>{})}}}function B1(Y){return JSON.stringify(nX(Y))??"undefined"}function nX(Y){if(Array.isArray(Y))return Y.map(nX);if(!h(Y))return Y;return Object.fromEntries(Object.keys(Y).sort().map((X)=>[X,nX(Y[X])]))}function c1(){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 x1={};aX(x1,{withoutInternalHeaders:()=>KK,sanitizeHttpFallbackBody:()=>AX,orderCodexBody:()=>e9,hasWebSocketResponsesLiteMetadata:()=>wX,createWebSocketFetch:()=>Zq,applyTurnId:()=>$K,advanceTurn:()=>r8,TITLE_HEADER:()=>n8,QUOTA_ACCOUNT_HEADER:()=>zX,OpenAIWebSocketPool:()=>x1,CODEX_BODY_KEY_ORDER:()=>JK});import{createHash as Gq}from"node:crypto";var $$="vercel.ai.error",zL=Symbol.for($$),C5,I5,T=class Y extends(I5=Error,C5=zL,I5){constructor({name:X,message:J,cause:Q}){super(J);this[C5]=!0,this.name=X,this.cause=Q}static isInstance(X){return Y.hasMarker(X,$$)}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}},G$="AI_APICallError",W$=`vercel.ai.error.${G$}`,KL=Symbol.for(W$),_5,S5,b9=class extends(S5=T,_5=KL,S5){constructor({message:Y,url:X,requestBodyValues:J,statusCode:Q,responseHeaders:$,responseBody:G,cause:W,isRetryable:K=Q!=null&&(Q===408||Q===409||Q===429||Q>=500),data:Z}){super({name:G$,message:Y,cause:W});this[_5]=!0,this.url=X,this.requestBodyValues=J,this.statusCode=Q,this.responseHeaders=$,this.responseBody=G,this.isRetryable=K,this.data=Z}static isInstance(Y){return T.hasMarker(Y,W$)}},z$="AI_EmptyResponseBodyError",K$=`vercel.ai.error.${z$}`,UL=Symbol.for(K$),k5,x5,ZL=class extends(x5=T,k5=UL,x5){constructor({message:Y="Empty response body"}={}){super({name:z$,message:Y});this[k5]=!0}static isInstance(Y){return T.hasMarker(Y,K$)}};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 U$="AI_InvalidArgumentError",Z$=`vercel.ai.error.${U$}`,LL=Symbol.for(Z$),b5,v5,L$=class extends(v5=T,b5=LL,v5){constructor({message:Y,cause:X,argument:J}){super({name:U$,message:Y,cause:X});this[b5]=!0,this.argument=J}static isInstance(Y){return T.hasMarker(Y,Z$)}},H$="AI_InvalidPromptError",V$=`vercel.ai.error.${H$}`,HL=Symbol.for(V$),h5,g5,VL=class extends(g5=T,h5=HL,g5){constructor({prompt:Y,message:X,cause:J}){super({name:H$,message:`Invalid prompt: ${X}`,cause:J});this[h5]=!0,this.prompt=Y}static isInstance(Y){return T.hasMarker(Y,V$)}},N$="AI_InvalidResponseDataError",B$=`vercel.ai.error.${N$}`,NL=Symbol.for(B$),y5,f5,BL=class extends(f5=T,y5=NL,f5){constructor({data:Y,message:X=`Invalid response data: ${JSON.stringify(Y)}.`}){super({name:N$,message:X});this[y5]=!0,this.data=Y}static isInstance(Y){return T.hasMarker(Y,B$)}},q$="AI_JSONParseError",F$=`vercel.ai.error.${q$}`,qL=Symbol.for(F$),m5,u5,xY=class extends(u5=T,m5=qL,u5){constructor({text:Y,cause:X}){super({name:q$,message:`JSON parsing failed: Text: ${Y}.
|
|
70
|
-
Error message: ${p1(X)}`,cause:X});this[m5]=!0,this.text=Y}static isInstance(Y){return T.hasMarker(Y,F$)}},O$="AI_LoadAPIKeyError",j$=`vercel.ai.error.${O$}`,FL=Symbol.for(j$),c5,p5,OL=class extends(p5=T,c5=FL,p5){constructor({message:Y}){super({name:O$,message:Y});this[c5]=!0}static isInstance(Y){return T.hasMarker(Y,j$)}},D$="AI_LoadSettingError",P$=`vercel.ai.error.${D$}`,jL=Symbol.for(P$),l5,d5,DL=class extends(d5=T,l5=jL,d5){constructor({message:Y}){super({name:D$,message:Y});this[l5]=!0}static isInstance(Y){return T.hasMarker(Y,P$)}},E$="AI_NoContentGeneratedError",M$=`vercel.ai.error.${E$}`,PL=Symbol.for(M$),i5,o5,EL=class extends(o5=T,i5=PL,o5){constructor({message:Y="No content generated."}={}){super({name:E$,message:Y});this[i5]=!0}static isInstance(Y){return T.hasMarker(Y,M$)}},w$="AI_NoSuchModelError",A$=`vercel.ai.error.${w$}`,ML=Symbol.for(A$),n5,r5,rX=class extends(r5=T,n5=ML,r5){constructor({errorName:Y=w$,modelId:X,modelType:J,message:Q=`No such ${J}: ${X}`}){super({name:Y,message:Q});this[n5]=!0,this.modelId=X,this.modelType=J}static isInstance(Y){return T.hasMarker(Y,A$)}},T$="AI_NoSuchProviderReferenceError",R$=`vercel.ai.error.${T$}`,wL=Symbol.for(R$),s5,a5,AL=class extends(a5=T,s5=wL,a5){constructor({provider:Y,reference:X,message:J=`No provider reference found for provider '${Y}'. Available providers: ${Object.keys(X).join(", ")}`}){super({name:T$,message:J});this[s5]=!0,this.provider=Y,this.reference=X}static isInstance(Y){return T.hasMarker(Y,R$)}},C$="AI_TooManyEmbeddingValuesForCallError",I$=`vercel.ai.error.${C$}`,TL=Symbol.for(I$),t5,e5,RL=class extends(e5=T,t5=TL,e5){constructor(Y){super({name:C$,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[t5]=!0,this.provider=Y.provider,this.modelId=Y.modelId,this.maxEmbeddingsPerCall=Y.maxEmbeddingsPerCall,this.values=Y.values}static isInstance(Y){return T.hasMarker(Y,I$)}},_$="AI_TypeValidationError",S$=`vercel.ai.error.${_$}`,CL=Symbol.for(S$),Y$,X$,r0=class Y extends(X$=T,Y$=CL,X$){constructor({value:X,cause:J,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:_$,message:`${$}: Value: ${JSON.stringify(X)}.
|
|
71
|
-
Error message: ${p1(J)}`,cause:J});this[Y$]=!0,this.value=X,this.context=Q}static isInstance(X){return T.hasMarker(X,S$)}static wrap({value:X,cause:J,context:Q}){var $,G,W;if(Y.isInstance(J)&&J.value===X&&(($=J.context)==null?void 0:$.field)===(Q==null?void 0:Q.field)&&((G=J.context)==null?void 0:G.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})}},k$="AI_UnsupportedFunctionalityError",x$=`vercel.ai.error.${k$}`,IL=Symbol.for(x$),J$,Q$,_L=class extends(Q$=T,J$=IL,Q$){constructor({functionality:Y,message:X=`'${Y}' functionality not supported.`}){super({name:k$,message:X});this[J$]=!0,this.functionality=Y}static isInstance(Y){return T.hasMarker(Y,x$)}};var M6=Object.freeze({status:"aborted"});function P(Y,X,J){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),X(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 $=J?.Parent??Object;class G extends ${}Object.defineProperty(G,"name",{value:Y});function W(K){var Z;let U=J?.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(J?.Parent&&K instanceof J.Parent)return!0;return K?._zod?.traits?.has(Y)}}),Object.defineProperty(W,"name",{value:Y}),W}var w6=Symbol("zod_brand");class q1 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={};aX(a,{unwrapMessage:()=>h9,uint8ArrayToHex:()=>JH,uint8ArrayToBase64url:()=>YH,uint8ArrayToBase64:()=>u$,stringifyPrimitive:()=>g$,shallowClone:()=>v$,safeExtend:()=>nL,required:()=>aL,randomString:()=>uL,propertyKeyTypes:()=>Y8,promiseAllObject:()=>mL,primitiveTypes:()=>h$,prefixIssues:()=>O1,pick:()=>dL,partial:()=>sL,optionalKeys:()=>X8,omit:()=>iL,objectClone:()=>gL,numKeys:()=>cL,nullish:()=>y9,normalizeParams:()=>i,mergeDefs:()=>C1,merge:()=>rL,jsonStringifyReplacer:()=>z9,joinValues:()=>hL,issue:()=>U9,isPlainObject:()=>I1,isObject:()=>l1,hexToUint8Array:()=>XH,getSizableOrigin:()=>f$,getParsedType:()=>pL,getLengthableOrigin:()=>m9,getEnumValues:()=>g9,getElementAtPath:()=>fL,floatSafeRemainder:()=>tX,finalizeIssue:()=>t0,extend:()=>oL,escapeRegex:()=>F1,esc:()=>vY,defineLazy:()=>X0,createTransparentProxy:()=>lL,cloneDef:()=>yL,clone:()=>a0,cleanRegex:()=>f9,cleanEnum:()=>tL,captureStackTrace:()=>hY,cached:()=>K9,base64urlToUint8Array:()=>eL,base64ToUint8Array:()=>m$,assignProp:()=>R1,assertNotEqual:()=>kL,assertNever:()=>bL,assertIs:()=>xL,assertEqual:()=>SL,assert:()=>vL,allowsEval:()=>eX,aborted:()=>_1,NUMBER_FORMAT_RANGES:()=>J8,Class:()=>c$,BIGINT_FORMAT_RANGES:()=>y$});function SL(Y){return Y}function kL(Y){return Y}function xL(Y){}function bL(Y){throw Error()}function vL(Y){}function g9(Y){let X=Object.values(Y).filter((Q)=>typeof Q==="number");return Object.entries(Y).filter(([Q,$])=>X.indexOf(+Q)===-1).map(([Q,$])=>$)}function hL(Y,X="|"){return Y.map((J)=>g$(J)).join(X)}function z9(Y,X){if(typeof X==="bigint")return X.toString();return X}function K9(Y){return{get value(){{let J=Y();return Object.defineProperty(this,"value",{value:J}),J}throw Error("cached value already set")}}}function y9(Y){return Y===null||Y===void 0}function f9(Y){let X=Y.startsWith("^")?1:0,J=Y.endsWith("$")?Y.length-1:Y.length;return Y.slice(X,J)}function tX(Y,X){let J=(Y.toString().split(".")[1]||"").length,Q=X.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=J>$?J:$,W=Number.parseInt(Y.toFixed(G).replace(".","")),K=Number.parseInt(X.toFixed(G).replace(".",""));return W%K/10**G}var b$=Symbol("evaluating");function X0(Y,X,J){let Q=void 0;Object.defineProperty(Y,X,{get(){if(Q===b$)return;if(Q===void 0)Q=b$,Q=J();return Q},set($){Object.defineProperty(Y,X,{value:$})},configurable:!0})}function gL(Y){return Object.create(Object.getPrototypeOf(Y),Object.getOwnPropertyDescriptors(Y))}function R1(Y,X,J){Object.defineProperty(Y,X,{value:J,writable:!0,enumerable:!0,configurable:!0})}function C1(...Y){let X={};for(let J of Y){let Q=Object.getOwnPropertyDescriptors(J);Object.assign(X,Q)}return Object.defineProperties({},X)}function yL(Y){return C1(Y._zod.def)}function fL(Y,X){if(!X)return Y;return X.reduce((J,Q)=>J?.[Q],Y)}function mL(Y){let X=Object.keys(Y),J=X.map((Q)=>Y[Q]);return Promise.all(J).then((Q)=>{let $={};for(let G=0;G<X.length;G++)$[X[G]]=Q[G];return $})}function uL(Y=10){let J="";for(let Q=0;Q<Y;Q++)J+="abcdefghijklmnopqrstuvwxyz"[Math.floor(Math.random()*26)];return J}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 eX=K9(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(Y){return!1}});function I1(Y){if(l1(Y)===!1)return!1;let X=Y.constructor;if(X===void 0)return!0;let J=X.prototype;if(l1(J)===!1)return!1;if(Object.prototype.hasOwnProperty.call(J,"isPrototypeOf")===!1)return!1;return!0}function v$(Y){if(I1(Y))return{...Y};if(Array.isArray(Y))return[...Y];return Y}function cL(Y){let X=0;for(let J in Y)if(Object.prototype.hasOwnProperty.call(Y,J))X++;return X}var pL=(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}`)}},Y8=new Set(["string","number","symbol"]),h$=new Set(["string","number","bigint","boolean","symbol","undefined"]);function F1(Y){return Y.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function a0(Y,X,J){let Q=new Y._zod.constr(X??Y._zod.def);if(!X||J?.parent)Q._zod.parent=Y;return Q}function i(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 lL(Y){let X;return new Proxy({},{get(J,Q,$){return X??(X=Y()),Reflect.get(X,Q,$)},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,$){return X??(X=Y()),Reflect.defineProperty(X,Q,$)}})}function g$(Y){if(typeof Y==="bigint")return Y.toString()+"n";if(typeof Y==="string")return`"${Y}"`;return`${Y}`}function X8(Y){return Object.keys(Y).filter((X)=>{return Y[X]._zod.optin==="optional"&&Y[X]._zod.optout==="optional"})}var J8={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]},y$={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function dL(Y,X){let J=Y._zod.def,Q=C1(Y._zod.def,{get shape(){let $={};for(let G in X){if(!(G in J.shape))throw Error(`Unrecognized key: "${G}"`);if(!X[G])continue;$[G]=J.shape[G]}return R1(this,"shape",$),$},checks:[]});return a0(Y,Q)}function iL(Y,X){let J=Y._zod.def,Q=C1(Y._zod.def,{get shape(){let $={...Y._zod.def.shape};for(let G in X){if(!(G in J.shape))throw Error(`Unrecognized key: "${G}"`);if(!X[G])continue;delete $[G]}return R1(this,"shape",$),$},checks:[]});return a0(Y,Q)}function oL(Y,X){if(!I1(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 $=C1(Y._zod.def,{get shape(){let G={...Y._zod.def.shape,...X};return R1(this,"shape",G),G},checks:[]});return a0(Y,$)}function nL(Y,X){if(!I1(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 R1(this,"shape",Q),Q},checks:Y._zod.def.checks};return a0(Y,J)}function rL(Y,X){let J=C1(Y._zod.def,{get shape(){let Q={...Y._zod.def.shape,...X._zod.def.shape};return R1(this,"shape",Q),Q},get catchall(){return X._zod.def.catchall},checks:[]});return a0(Y,J)}function sL(Y,X,J){let Q=C1(X._zod.def,{get shape(){let $=X._zod.def.shape,G={...$};if(J)for(let W in J){if(!(W in $))throw Error(`Unrecognized key: "${W}"`);if(!J[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 R1(this,"shape",G),G},checks:[]});return a0(X,Q)}function aL(Y,X,J){let Q=C1(X._zod.def,{get shape(){let $=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;G[W]=new Y({type:"nonoptional",innerType:$[W]})}else for(let W in $)G[W]=new Y({type:"nonoptional",innerType:$[W]});return R1(this,"shape",G),G},checks:[]});return a0(X,Q)}function _1(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 O1(Y,X){return X.map((J)=>{var Q;return(Q=J).path??(Q.path=[]),J.path.unshift(Y),J})}function h9(Y){return typeof Y==="string"?Y:Y?.message}function t0(Y,X,J){let Q={...Y,path:Y.path??[]};if(!Y.message){let $=h9(Y.inst?._zod.def?.error?.(Y))??h9(X?.error?.(Y))??h9(J.customError?.(Y))??h9(J.localeError?.(Y))??"Invalid input";Q.message=$}if(delete Q.inst,delete Q.continue,!X?.reportInput)delete Q.input;return Q}function f$(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 U9(...Y){let[X,J,Q]=Y;if(typeof X==="string")return{message:X,code:"custom",input:J,inst:Q};return{...X}}function tL(Y){return Object.entries(Y).filter(([X,J])=>{return Number.isNaN(Number.parseInt(X,10))}).map((X)=>X[1])}function m$(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 u$(Y){let X="";for(let J=0;J<Y.length;J++)X+=String.fromCharCode(Y[J]);return btoa(X)}function eL(Y){let X=Y.replace(/-/g,"+").replace(/_/g,"/"),J="=".repeat((4-X.length%4)%4);return m$(X+J)}function YH(Y){return u$(Y).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function XH(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 JH(Y){return Array.from(Y).map((X)=>X.toString(16).padStart(2,"0")).join("")}class c${constructor(...Y){}}var p$=(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,z9,2),Object.defineProperty(Y,"toString",{value:()=>Y.message,enumerable:!1})},gY=P("$ZodError",p$),Q8=P("$ZodError",p$,{Parent:Error});function l$(Y,X=(J)=>J.message){let J={},Q=[];for(let $ of Y.issues)if($.path.length>0)J[$.path[0]]=J[$.path[0]]||[],J[$.path[0]].push(X($));else Q.push(X($));return{formErrors:Q,fieldErrors:J}}function d$(Y,X){let J=X||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(J(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(J(W));K=K[U],Z++}}};return $(Y),Q}var yY=(Y)=>(X,J,Q,$)=>{let G=Q?Object.assign(Q,{async:!1}):{async:!1},W=X._zod.run({value:J,issues:[]},G);if(W instanceof Promise)throw new q1;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(X,J,Q,$)=>{let G=Q?Object.assign(Q,{async:!0}):{async:!0},W=X._zod.run({value:J,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 u9=(Y)=>(X,J,Q)=>{let $=Q?{...Q,async:!1}:{async:!1},G=X._zod.run({value:J,issues:[]},$);if(G instanceof Promise)throw new q1;return G.issues.length?{success:!1,error:new(Y??gY)(G.issues.map((W)=>t0(W,$,G1())))}:{success:!0,data:G.value}},i$=u9(Q8),c9=(Y)=>async(X,J,Q)=>{let $=Q?Object.assign(Q,{async:!0}):{async:!0},G=X._zod.run({value:J,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}},o$=c9(Q8),n$=(Y)=>(X,J,Q)=>{let $=Q?Object.assign(Q,{direction:"backward"}):{direction:"backward"};return yY(Y)(X,J,$)};var r$=(Y)=>(X,J,Q)=>{return yY(Y)(X,J,Q)};var s$=(Y)=>async(X,J,Q)=>{let $=Q?Object.assign(Q,{direction:"backward"}):{direction:"backward"};return fY(Y)(X,J,$)};var a$=(Y)=>async(X,J,Q)=>{return fY(Y)(X,J,Q)};var t$=(Y)=>(X,J,Q)=>{let $=Q?Object.assign(Q,{direction:"backward"}):{direction:"backward"};return u9(Y)(X,J,$)};var e$=(Y)=>(X,J,Q)=>{return u9(Y)(X,J,Q)};var YG=(Y)=>async(X,J,Q)=>{let $=Q?Object.assign(Q,{direction:"backward"}):{direction:"backward"};return c9(Y)(X,J,$)};var XG=(Y)=>async(X,J,Q)=>{return c9(Y)(X,J,Q)};var JG=/^[cC][^\s-]{8,}$/,QG=/^[0-9a-z]+$/,$G=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,GG=/^[0-9a-vA-V]{20}$/,WG=/^[A-Za-z0-9]{27}$/,zG=/^[a-zA-Z0-9_-]{21}$/,KG=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var UG=/^([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})$/,$8=(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 ZG=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;function LG(){return new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")}var HG=/^(?:(?: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])$/,VG=/^(([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}|:))$/,NG=/^((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])$/,BG=/^(([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])$/,qG=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,G8=/^[A-Za-z0-9_-]*$/,FG=/^(?=.{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 OG=/^\+(?:[0-9]){6,14}[0-9]$/,jG="(?:(?:\\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])))",DG=new RegExp(`^${jG}$`);function PG(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 EG(Y){return new RegExp(`^${PG(Y)}$`)}function MG(Y){let X=PG({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(`^${jG}T(?:${Q})$`)}var wG=(Y)=>{let X=Y?`[\\s\\S]{${Y?.minimum??0},${Y?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${X}$`)};var AG=/^-?\d+$/,TG=/^-?\d+(?:\.\d+)?/,RG=/^(?:true|false)$/i,CG=/^null$/i;var IG=/^[^A-Z]*$/,_G=/^[^a-z]*$/;var w0=P("$ZodCheck",(Y,X)=>{var J;Y._zod??(Y._zod={}),Y._zod.def=X,(J=Y._zod).onattach??(J.onattach=[])}),SG={number:"number",bigint:"bigint",object:"date"},W8=P("$ZodCheckLessThan",(Y,X)=>{w0.init(Y,X);let J=SG[typeof X.value];Y._zod.onattach.push((Q)=>{let $=Q._zod.bag,G=(X.inclusive?$.maximum:$.exclusiveMaximum)??Number.POSITIVE_INFINITY;if(X.value<G)if(X.inclusive)$.maximum=X.value;else $.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})}}),z8=P("$ZodCheckGreaterThan",(Y,X)=>{w0.init(Y,X);let J=SG[typeof X.value];Y._zod.onattach.push((Q)=>{let $=Q._zod.bag,G=(X.inclusive?$.minimum:$.exclusiveMinimum)??Number.NEGATIVE_INFINITY;if(X.value>G)if(X.inclusive)$.minimum=X.value;else $.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})}}),kG=P("$ZodCheckMultipleOf",(Y,X)=>{w0.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):tX(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})}}),xG=P("$ZodCheckNumberFormat",(Y,X)=>{w0.init(Y,X),X.format=X.format||"float64";let J=X.format?.includes("int"),Q=J?"int":"number",[$,G]=J8[X.format];Y._zod.onattach.push((W)=>{let K=W._zod.bag;if(K.format=X.format,K.minimum=$,K.maximum=G,J)K.pattern=AG}),Y._zod.check=(W)=>{let K=W.value;if(J){if(!Number.isInteger(K)){W.issues.push({expected:Q,format:X.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:!X.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:!X.abort});return}}if(K<$)W.issues.push({origin:"number",input:K,code:"too_small",minimum:$,inclusive:!0,inst:Y,continue:!X.abort});if(K>G)W.issues.push({origin:"number",input:K,code:"too_big",maximum:G,inst:Y})}});var bG=P("$ZodCheckMaxLength",(Y,X)=>{var J;w0.init(Y,X),(J=Y._zod.def).when??(J.when=(Q)=>{let $=Q.value;return!y9($)&&$.length!==void 0}),Y._zod.onattach.push((Q)=>{let $=Q._zod.bag.maximum??Number.POSITIVE_INFINITY;if(X.maximum<$)Q._zod.bag.maximum=X.maximum}),Y._zod.check=(Q)=>{let $=Q.value;if($.length<=X.maximum)return;let W=m9($);Q.issues.push({origin:W,code:"too_big",maximum:X.maximum,inclusive:!0,input:$,inst:Y,continue:!X.abort})}}),vG=P("$ZodCheckMinLength",(Y,X)=>{var J;w0.init(Y,X),(J=Y._zod.def).when??(J.when=(Q)=>{let $=Q.value;return!y9($)&&$.length!==void 0}),Y._zod.onattach.push((Q)=>{let $=Q._zod.bag.minimum??Number.NEGATIVE_INFINITY;if(X.minimum>$)Q._zod.bag.minimum=X.minimum}),Y._zod.check=(Q)=>{let $=Q.value;if($.length>=X.minimum)return;let W=m9($);Q.issues.push({origin:W,code:"too_small",minimum:X.minimum,inclusive:!0,input:$,inst:Y,continue:!X.abort})}}),hG=P("$ZodCheckLengthEquals",(Y,X)=>{var J;w0.init(Y,X),(J=Y._zod.def).when??(J.when=(Q)=>{let $=Q.value;return!y9($)&&$.length!==void 0}),Y._zod.onattach.push((Q)=>{let $=Q._zod.bag;$.minimum=X.length,$.maximum=X.length,$.length=X.length}),Y._zod.check=(Q)=>{let $=Q.value,G=$.length;if(G===X.length)return;let W=m9($),K=G>X.length;Q.issues.push({origin:W,...K?{code:"too_big",maximum:X.length}:{code:"too_small",minimum:X.length},inclusive:!0,exact:!0,input:Q.value,inst:Y,continue:!X.abort})}}),p9=P("$ZodCheckStringFormat",(Y,X)=>{var J,Q;if(w0.init(Y,X),Y._zod.onattach.push(($)=>{let G=$._zod.bag;if(G.format=X.format,X.pattern)G.patterns??(G.patterns=new Set),G.patterns.add(X.pattern)}),X.pattern)(J=Y._zod).check??(J.check=($)=>{if(X.pattern.lastIndex=0,X.pattern.test($.value))return;$.issues.push({origin:"string",code:"invalid_format",format:X.format,input:$.value,...X.pattern?{pattern:X.pattern.toString()}:{},inst:Y,continue:!X.abort})});else(Q=Y._zod).check??(Q.check=()=>{})}),gG=P("$ZodCheckRegex",(Y,X)=>{p9.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})}}),yG=P("$ZodCheckLowerCase",(Y,X)=>{X.pattern??(X.pattern=IG),p9.init(Y,X)}),fG=P("$ZodCheckUpperCase",(Y,X)=>{X.pattern??(X.pattern=_G),p9.init(Y,X)}),mG=P("$ZodCheckIncludes",(Y,X)=>{w0.init(Y,X);let J=F1(X.includes),Q=new RegExp(typeof X.position==="number"?`^.{${X.position}}${J}`:J);X.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(X.includes,X.position))return;$.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:X.includes,input:$.value,inst:Y,continue:!X.abort})}}),uG=P("$ZodCheckStartsWith",(Y,X)=>{w0.init(Y,X);let J=new RegExp(`^${F1(X.prefix)}.*`);X.pattern??(X.pattern=J),Y._zod.onattach.push((Q)=>{let $=Q._zod.bag;$.patterns??($.patterns=new Set),$.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})}}),cG=P("$ZodCheckEndsWith",(Y,X)=>{w0.init(Y,X);let J=new RegExp(`.*${F1(X.suffix)}$`);X.pattern??(X.pattern=J),Y._zod.onattach.push((Q)=>{let $=Q._zod.bag;$.patterns??($.patterns=new Set),$.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 pG=P("$ZodCheckOverwrite",(Y,X)=>{w0.init(Y,X),Y._zod.check=(J)=>{J.value=X.tx(J.value)}});class K8{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(`
|
|
51
|
+
Warming limited to **${`${String(H).padStart(2,"0")}-${String(U).padStart(2,"0")}`}** local hours.`,knobs:{enabled:G,subagents:$?.cachekeep?.subagents===!0,sustain:Z?.sustain??$?.cachekeep?.sustain===!0,window:{startHour:H,endHour:U},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`, `/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 hU={"openai-killswitch":SU,"openai-dump":kU,"openai-logging":xU,"openai-cachekeep":vU};function DX(Y,X,J){return qX(Y,X,J,hU)}var gU=300000,yU=30000,fU=240000,mU="bg-quota-refresh",cU=120000;function uU(Y,X){return Z1({name:mU,ttlMs:cU,path:Y,renew:!0,...X})}function ZQ(Y,X=E1,J=()=>uU(Y.paths.configPath)){return pU(Y,X,J)}async function pU(Y,X,J){let Q;try{Q=await J()}catch{Q=void 0}if(Q===null)return[];try{return await X({...Y,respectBackoff:!0,skipFresherThanMs:fU})}finally{await Q?.release().catch(()=>{})}}class EX{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,X=this.onError){if(this.run=Y,this.onError=X,this.stopped=!1,this.timer)return;let J=Math.round((this.random()*2-1)*yU);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=$},gU+J),"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 PX(Y){if(typeof Y!=="string")return!1;try{let X=JSON.parse(Y);return o(X)&&o(X.client_metadata)&&X.client_metadata.ws_request_header_x_openai_internal_codex_responses_lite==="true"}catch{return!1}}function MX(Y){if(typeof Y!=="string")return Y;try{let X=JSON.parse(Y);if(!o(X)||!o(X.client_metadata))return Y;if(!(("x-codex-turn-metadata"in X.client_metadata)||("x-codex-ws-stream-request-start-ms"in X.client_metadata)||("ws_request_header_x_openai_internal_codex_responses_lite"in X.client_metadata)))return Y;let J={...X.client_metadata};return delete J["x-codex-turn-metadata"],delete J["x-codex-ws-stream-request-start-ms"],delete J.ws_request_header_x_openai_internal_codex_responses_lite,JSON.stringify({...X,client_metadata:J})}catch{return Y}}function CY(Y){if(Y?.method?.toUpperCase()!=="POST")return Y;let X=new Headers(Y.headers);if(X.set("accept","text/event-stream"),X.set("content-type","application/json"),PX(Y.body))X.set("x-openai-internal-codex-responses-lite","true");return{...Y,headers:X,body:MX(Y.body)}}function FQ(Y){if(!Y.enabled||typeof Y.body!=="string")return;let X=Y.headers.has("x-parent-session-id");if(X&&!Y.includeSubagents)return;let J=Y.headers.get("session-id")??Y.headers.get("x-opencode-session")??Y.headers.get("x-session-affinity")??void 0;if(!J)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:J,bodyText:Y.body,replayHeaders:Q,isSubagent:X}}function OQ(Y){let X=Number(Y?.cachekeep?.startHour),J=Number(Y?.cachekeep?.endHour);if(!Number.isInteger(X)||!Number.isInteger(J)||X<0||X>23||J<0||J>23||X===J)return;return{startHour:X,endHour:J}}function LQ(Y,X=new Date){if(!Y)return!1;let J=X.getHours();if(Y.startHour<Y.endHour)return J>=Y.startHour&&J<Y.endHour;return J>=Y.startHour||J<Y.endHour}var lU=300000,jQ=1800000,VQ=2*jQ+900000,dU=3600000,NQ=1800000,BQ=60000,iU=32,oU=8388608,wX=600000;function qQ(Y){try{let J=JSON.parse(Y).model;if(typeof J!=="string")return!1;return J==="gpt-5.6"||J.startsWith("gpt-5.6-")}catch{return!1}}function nU(Y){let J=JSON.parse(Y);return J.store=!1,delete J.max_output_tokens,delete J.max_tokens,delete J.max_completion_tokens,JSON.stringify(J)}function rU(Y,X){return qQ(Y)?jQ:X}function AX(){return{input_tokens:0,output_tokens:0,cached_tokens:0,hit_rate:null}}function DQ(Y){if(!Y||typeof Y!=="object")return AX();let X=Y,J=Number(X.input_tokens)||Number(X.prompt_tokens)||0,Q=Number(X.output_tokens)||Number(X.completion_tokens)||0,$=X.input_tokens_details??X.prompt_tokens_details,G=Number($?.cached_tokens)||Number(X.cached_tokens)||0,W=J>0?G/J:null;return{input_tokens:J,output_tokens:Q,cached_tokens:G,hit_rate:W}}function sU(Y){try{let X=JSON.parse(Y);return DQ(X.usage)}catch{return AX()}}function aU(Y){let X,J=[],Q,$=()=>{if(!J.length)return;let G=J.join(`
|
|
52
|
+
`).trim();J=[];let W=X;if(X=void 0,!G||G==="[DONE]")return;try{let K=JSON.parse(G),H=K.type??W;if(H!=="response.completed"&&H!=="response.done")return;let U=K.response;Q=DQ(U?.usage??K.usage)}catch{}};for(let G of Y.split(/\r?\n/)){if(G===""){$();continue}if(G.startsWith("event:")){X=G.slice(6).trim();continue}if(G.startsWith("data:"))J.push(G.slice(5).trim())}return $(),Q??AX()}class RX{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??lU,this.tickIntervalMs=Y.tickIntervalMs??BQ,this.leadMs=Y.leadMs??this.tickIntervalMs+15000;let X=Y.maxIdleWarmMs??Y.maxDurationMs;this.maxIdleWarmMs=typeof X==="number"&&Number.isFinite(X)&&X>0?X:dU;let J=Y.maxSubagentIdleMs??NQ;this.maxSubagentIdleMs=typeof J==="number"&&Number.isFinite(J)&&J>0?J:NQ,this.tickIntervalMs=Y.tickIntervalMs??BQ,this.maxTargets=Y.maxTargets??iU,this.maxBytes=Y.maxBytes??oU,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 K=this.getWindow?.();if(K&&!LQ(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 Z=this.targets.get(Y);if(Z)this.totalBytes-=Z.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 Z,O=Number.POSITIVE_INFINITY;for(let[V,q]of this.targets){let T=Math.max(q.lastRealRequestAt,q.lastWarmedAt??0);if(T<O)Z=V,O=T}if(Z===void 0)break;let N=this.targets.get(Z);if(N)this.totalBytes-=N.bodyText.length;this.targets.delete(Z)}let H=rU(X,this.ttlMs),U={bodyText:X,accountId:J||void 0,chatgptAccountId:Q,route:"main",ttlMs:H,cacheExpiresAt:this.now()+H,warmCount:0,lastRealRequestAt:this.now(),replayHeaders:$,isSubagent:G,is56:qQ(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-VQ;for(let[$,G]of this.targets){let W,K;if(this.isGpt56Subagent(G))W=Q,K=VQ;else W=G.isSubagent?J:X,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 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&&!LQ(Y,new Date(this.now())))return;let X=this.now(),J=X+this.leadMs;for(let[Q,$]of this.targets)if($.backoffUntil&&X>=$.backoffUntil&&$.cacheExpiresAt<=J)await this.prewarm(Q,$);for(let[Q,$]of this.targets){if($.backoffUntil&&X<$.backoffUntil)continue;if($.cacheExpiresAt<=J)await this.prewarm(Q,$)}}finally{this.tickInFlight=!1}}async prewarm(Y,X){let J,Q;try{if(X.accountId&&X.accountId!=="main"){let G=await this.refreshFallback(X.accountId);if(typeof G==="string")J=G;else J=G.token,Q=G.onAuthFailure}else J=await this.getMainToken()}catch(G){if(!this.disposed&&this.targets.get(Y)===X)X.backoffUntil=this.now()+wX;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 $={...X.replayHeaders,authorization:`Bearer ${J}`,"content-type":"application/json"};if(X.chatgptAccountId)$["ChatGPT-Account-Id"]=X.chatgptAccountId;else delete $["ChatGPT-Account-Id"];try{let G=nU(X.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=CY({method:"POST",headers:$,body:G,signal:AbortSignal.any([AbortSignal.timeout(30000),this.abortController.signal])}),H=await this.fetchImpl(this.codexResponsesUrl,K),U="";try{U=await H.text()}catch{}if(this.disposed||this.targets.get(Y)!==X)return;if(!H.ok){if(X.backoffUntil=this.now()+wX,H.status===401)await Q?.(H.status);this.log.warn("cachekeep failed",this.logPayload({session:Y,accountId:X.accountId??"main",status:H.status,error:`HTTP ${H.status}`,responseBody:U.slice(0,600)}));return}let Z=H.headers.get("content-type")??"",O=Z.includes("text/event-stream")||/(^|\n)(data:|event:)/.test(U.slice(0,200));this.log.debug("cachekeep warm response",this.logPayload({status:H.status,contentType:Z,bodyLen:U.length,isSse:O}));let N=O?aU(U):sU(U),V=J9(H.headers),q=V.primary?.usedPercent??null,T=V.secondary?.usedPercent??null;if(this.log.debug("cachekeep fired",this.logPayload({session:Y,accountId:X.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})),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()+wX,this.log.warn("cachekeep failed",this.logPayload({session:Y,accountId:X.accountId??"main",error:G instanceof Error?G.message:String(G)}))}}}import{createHash as YH}from"node:crypto";import{isAbsolute as tU,join as EQ}from"node:path";var eU=N0("custody"),PQ=new Set;function TX(Y=process.env){let X=Y.CLAUSTRUM_OPENCODE_HANDLES;if(X&&tU(X))return X;if(X&&!PQ.has(X))PQ.add(X),eU.warn("ignoring non-absolute CLAUSTRUM_OPENCODE_HANDLES",{configuredPath:X});let J=Y.XDG_CONFIG_HOME||(Y.HOME?EQ(Y.HOME,".config"):".config");return EQ(J,"cortexkit","opencode-handles.json")}function r0(Y=TX(),X={}){return MQ(Y,X)}var CX="openai",wQ=250,_Q=new Set;function IQ(Y){if(typeof Y.access!=="string"||typeof Y.refresh!=="string")return;let X=Buffer.from(Y.access),J=Buffer.from(Y.refresh),Q=($)=>{let G=Buffer.alloc(4);return G.writeUInt32BE($.length),G};return YH("sha256").update(Q(X)).update(X).update(Q(J)).update(J).digest("hex")}function SQ(Y){let X=IQ(Y);if(X)_Q.add(X)}function XH(Y){let X=IQ(Y);return X!==void 0&&_Q.has(X)}function kQ(Y){if(!Y||typeof Y!=="object")return;let X=Y;if(X.type!=="oauth")return;return{type:"oauth",...typeof X.access==="string"?{access:X.access}:{},...typeof X.refresh==="string"?{refresh:X.refresh}:{},...typeof X.expires==="number"?{expires:X.expires}:{}}}function IY(Y){let X=kQ(Y);if(typeof X?.access!=="string"||typeof X.refresh!=="string")return;return{access:X.access,refresh:X.refresh,...typeof X.expires==="number"?{expires:X.expires}:{}}}function _Y(Y){let X=kQ(Y);if(!X)return{kind:"indeterminate"};if(!k0({id:"main",type:"oauth",access:X.access??"",refresh:X.refresh??"",expires:X.expires??0,addedAt:0},CX))return{kind:"real",oauth:X};let J=L1(CX);if(X.access===J.access&&X.expires===J.expires)return{kind:"tombstone",oauth:X};return{kind:"empty",oauth:X}}async function AQ(Y){if(!Y.auth.get)return;return Y.auth.get({path:{id:CX}})}async function RQ(Y){if(!Y.auth.all)return!1;return Object.keys(await Y.auth.all()).length>0}async function JH(Y){let X=await AQ(Y.client);if(X!==void 0)return _Y(X);let J=await RQ(Y.client),Q=Y.now();if(await Y.sleep(wQ),Y.now()-Q<wQ)return{kind:"indeterminate"};let $=await AQ(Y.client);if($!==void 0)return _Y($);let G=await RQ(Y.client);return J&&G?{kind:"slot-absent"}:{kind:"indeterminate"}}function QH(Y){if(Y.ok)return"present";return Y.reason==="absent"?"absent":"unreadable"}function k9(Y){let X=Q1(Y);return X?$1(X):void 0}async function TQ(Y){let X=h0(Y.manifest).get("main");if(!X)return"no_handle";if(!Y.getCredential)return"cold";try{let J=await Y.getCredential(X),Q=k9(J.access);if(Y.mainAccountId&&Q&&Q!==Y.mainAccountId)return"identity_mismatch";return"serves"}catch{return Y.isReauth?.(X)?"needs_reauth":"cold"}}function CQ(Y){return Y.kind==="real"&&XH(Y.oauth)}async function xQ(Y){let X=await JH(Y);if(X.kind==="indeterminate")return;let J=QH(Y.manifest);if(X.kind==="slot-absent"){let $=await TQ(Y);return S9({mode:Y.mode,manifest:J,local:X.kind,verifiedInProcessLogin:CQ(X),vault:()=>$==="no_handle"||$==="identity_mismatch"?$:"serves"})}let Q=await TQ(Y);return S9({mode:Y.mode,manifest:J,local:X.kind,verifiedInProcessLogin:CQ(X),vault:()=>Q})}import{createHash as $H}from"node:crypto";var mQ="claustrum-mode",m1="main-refresh",bQ=Promise.resolve();async function IX(){let Y,X=new Promise(($)=>{Y=$}),J=bQ;bQ=J.then(()=>X),await J;let Q=!1;return{async release(){if(Q)return;Q=!0,Y()}}}async function cQ(Y){let X=Y.now()+5000;while(Y.now()<X){try{let J=await Y.getAuth();if(J?.access===Y.accessToken&&J.refresh===Y.refreshToken){await Y.onObserved?.({access:J.access,refresh:J.refresh}),await Y.release();return}}catch{}await Y.sleep(Math.max(0,Math.min(100,X-Y.now())))}Y.warn("host write not observed within 5s; lease released"),await Y.release()}function vQ(Y){return Y.accounts.filter((X)=>L0(X)&&X.enabled!==!1)}function _X(Y,X){return Y<X?-1:Y>X?1:0}function hQ(Y,X){return[{id:"main",accountId:X?.mainAccountId,kind:"main"},...Y.map((J)=>({id:J,accountId:X?.accounts.find((Q)=>Q.id===J)?.accountId,kind:"fallback"}))].sort((J,Q)=>_X(J.id,Q.id))}function GH(Y){return Y.kind==="main"?m1:P1(Y.id)}function gQ(Y){return Y.access?Q9(Y.access,Y.refresh):void 0}function yQ(Y){return Object.values(Y).some((X)=>X==="new-local-family-under-claustrum"||X==="torn-read-deferred"||X.startsWith("aborted:"))}async function uQ(Y){let X=await IX(),J=[],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:mQ,renew:!0});if(!W)return{status:"aborted",outcomes:Q,reason:"mode-lock-unavailable"};J.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=hQ(Y.accountIds);Y.warn?.(`transition participants: ${K.map((H)=>H.id).join(",")}`);for(let H of K){let U=await Y.acquireLock({name:GH(H),renew:!0});if(!U)return{status:"aborted",outcomes:Q,reason:`account-lock-unavailable:${H.id}`};J.push(U)}return await Y.withStoreTransaction(async(H)=>{let U=await H.read(),Z=hQ(Y.accountIds,U),O=vQ(U).map((P)=>P.id).sort(_X),N=[...Y.accountIds].sort(_X);if(O.length!==N.length||O.some((P,b)=>P!==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=h0(V),T=U.claustrum?.mode==="claustrum"?U.claustrum?.transition:void 0,S=T?T.fingerprints:{fallbacks:{}},m=T?.storeGeneration??fQ(U);if(!T){Y.warn?.(`capturing main slot fingerprint; auth.get is ${typeof Y.auth?.get}`);let P=IY(await Y.auth.get({path:{id:"openai"}}));if(Y.warn?.(`main slot captured: ${P?"complete":"absent"}`),P)S.main=Q9(P.access,P.refresh);for(let b of vQ(U)){let y=gQ(b);if(y)S.fallbacks[b.id]=y}}await G("captured"),Y.warn?.(`handles resolved: isMap=${q instanceof Map} size=${q instanceof Map?q.size:"n/a"}`);for(let P of Z){let b=q.get(P.id);if(Y.warn?.(`participant ${P.id}: handle=${b?"yes":"NO"}`),!b){Q[P.id]="no-handle";continue}let y=await Y.preflight({id:P.id,accountId:P.accountId,handle:b});Q[P.id]=y}if(await G("preflight"),Object.values(Q).some((P)=>P!=="ready"))return{status:"aborted",outcomes:Q,reason:"preflight-failed"};if(!T){let P=await Y.readManifest(),b=await H.read();if(!P.ok||P.revision!==V.revision)return{status:"aborted",outcomes:Q,reason:"manifest-revision-changed"};if(fQ(b)!==m)return{status:"aborted",outcomes:Q,reason:"store-generation-changed"};await G("revalidated"),await H.writeMode("claustrum",{manifestRevision:V.revision,storeGeneration:m,fingerprints:S}),await G("mode-written")}let _=!1;for(let P of K){if(P.kind==="main")continue;let b=await H.read(),y=b.accounts.find((W0)=>W0.id===P.id&&W0.type==="oauth");if(y&&k0(y,"openai")){Q[P.id]="tombstoned";continue}let n=S.fallbacks[P.id];if(!y||!n||gQ(y)!==n){Q[P.id]="new-local-family-under-claustrum";continue}let a=structuredClone(b),V0=a.accounts.find((W0)=>W0.id===P.id&&W0.type==="oauth");if(!V0){Q[P.id]="new-local-family-under-claustrum";continue}Object.assign(V0,L1("openai"));try{await H.write(a);let W0=(await H.read()).accounts.find((O0)=>O0.id===P.id&&O0.type==="oauth");Q[P.id]=W0&&k0(W0,"openai")?"tombstoned":"aborted:post-write-readback"}catch{Q[P.id]="aborted:write-failed",_=!0;break}}if(_)return await G("material-written"),{status:"incomplete",outcomes:Q};if(Q.main=S.main?await SX(S.main,{auth:Y.auth,warn:(P)=>{if($)return;$=!0,Y.warn?.(P)}}):"new-local-family-under-claustrum",await G("material-written"),!yQ(Q))await H.writeMode("claustrum");return{status:yQ(Q)?"incomplete":"completed",outcomes:Q}})}finally{for(let W of J.reverse())await W.release().catch(()=>{});await X.release(),await G("mutex-released").catch(()=>{})}}async function SX(Y,X){let J=IY(await X.auth.get({path:{id:"openai"}}));if(J&&k0({id:"main",type:"oauth",access:J.access,refresh:J.refresh,expires:J.expires??0},"openai"))return"tombstoned";if(!J||Q9(J.access,J.refresh)!==Y)return"new-local-family-under-claustrum";let Q=await X.auth.all();if(Object.keys(Q).length===0)return X.warn?.("host auth store read empty; refusing to write — possible torn read"),"torn-read-deferred";try{let $=L1("openai");await X.auth.set.bind(X.auth)({path:{id:"openai"},body:$});let W=IY(await X.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 pQ(Y){let X=await Y.acquireLock({name:mQ,renew:!0});if(!X)throw Error("Claustrum mode lock unavailable");try{await Y.withStoreTransaction(async(J)=>{return await J.writeMode("local"),{status:"completed",outcomes:{}}})}finally{await X.release()}}function fQ(Y){let X=Y.accounts.filter((J)=>J.type==="oauth").map((J)=>({id:J.id,enabled:J.enabled!==!1,accountId:J.accountId??"",access:J.access??"",refresh:J.refresh,expires:J.expires??null})).sort((J,Q)=>J.id<Q.id?-1:J.id>Q.id?1:0);return $H("sha256").update(JSON.stringify(X)).digest("hex")}var nQ=900000,WH=0.016666666666666666,lQ=0.000001;function xX(Y,X){for(let J of[Y?.primary?.checkedAt,Y?.checkedAt,X])if(typeof J==="number"&&Number.isFinite(J))return J;return}function bX(Y){if(Y.status===401||Y.status===403)return{action:"migrate",reason:"permanent"};if(!Y.quota)return{action:"retain",reason:"unknown"};let X=xX(Y.quota,Y.quotaCheckedAt);if(X===void 0||!Number.isFinite(X)||Y.now-X>nQ)return{action:"retain",reason:"stale"};if(Y.killswitchPasses===!1)return{action:"migrate",reason:"killswitch"};let J=kX(Y.quota).sort(($,G)=>{let W=$.windowMs,K=G.windowMs,H=typeof W==="number"&&Number.isFinite(W),U=typeof K==="number"&&Number.isFinite(K);if(H!==U)return H?-1:1;if(H&&U)return K-W;return 0});for(let{key:$,window:G}of J)if(Number.isFinite(G.remainingPercent)&&G.remainingPercent<=0)return{action:"migrate",reason:"exhausted",windowKey:$,...typeof G.resetsAt==="string"?{resetsAt:G.resetsAt}:{}};let Q=oQ(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 dQ(Y,X,J){let Q=Math.max(0,Y.remainingPercent-X);if(Q<=0)return 0;if(!Y.resetsAt)return Q;let $=Date.parse(Y.resetsAt);if(!Number.isFinite($)||$<=J)return Q;let G=Math.max(($-J)/3600000,WH);return Q/G}function iQ(Y,X){if(Y<X)return-1;if(Y>X)return 1;return 0}function zH(Y,X){if(!Y.quota)return;let J=xX(Y.quota,Y.quotaCheckedAt);if(J===void 0||X-J>nQ)return;let Q=kX(Y.quota).map(({key:W,window:K})=>{return dQ(K,Y.reservePercent[W]??0,X)}),$=Y.quota.spendControl;if($&&Number.isFinite($.remainingPercent))Q.push(dQ($,0,X));let G=Q.length>0?Math.min(...Q):0;return G>0?{candidate:Y,quotaCheckedAt:J,weight:G}:void 0}function rQ(Y){let X=Y.candidates.filter(($)=>$.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(($)=>zH($,Y.now)).filter(($)=>$!==void 0);if(J.length>0){J.sort((G,W)=>{let K=((Y.pendingBytes.get(G.candidate.accountId)??0)+Y.requestBytes)/Math.max(G.weight,lQ),H=((Y.pendingBytes.get(W.candidate.accountId)??0)+Y.requestBytes)/Math.max(W.weight,lQ);return K-H||G.candidate.configuredOrder-W.candidate.configuredOrder||iQ(G.candidate.accountId,W.candidate.accountId)});let $=J[0];if($)return{accountId:$.candidate.accountId,quotaCheckedAt:$.quotaCheckedAt,source:"weighted"}}Y.onEmptyWeightedSet?.();let Q=[...X].sort(($,G)=>{let W=($.resetCreditsApplicable??0)>0?1:0;return((G.resetCreditsApplicable??0)>0?1:0)-W||$.configuredOrder-G.configuredOrder||iQ($.accountId,G.accountId)})[0];if(!Q)throw Error("Cannot select a sticky candidate: input.candidates is empty");return{accountId:Q.accountId,quotaCheckedAt:xX(Q.quota,Q.quotaCheckedAt),source:"mode-fallback"}}import{createHash as KH}from"node:crypto";import{chmod as UH,mkdir as HH,readdir as ZH,readFile as LH,writeFile as vX}from"node:fs/promises";import{join as eQ}from"node:path";var fX=N0("dump"),M1="x-cortexkit-openai-auth-dump-session",VH=["http","prewarm","main"],sQ=0,$9=new Map,NH=100;function hX(Y){return Y.length<=16?Y:`${Y.slice(0,12)}…`}function Y5(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 X5(Y){return KH("sha256").update(Y).digest("hex")}function gX(Y){return X5(JSON.stringify(Y))}function J5(Y){try{let X=JSON.parse(Y);return X!=null&&typeof X==="object"&&!Array.isArray(X)?X:void 0}catch{return}}function BH(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,$=X.length-1;while(Q>=J&&$>=J&&Y[Q]===X[$])Q--,$--;return{changed:!0,firstByte:J,lastPreviousByte:Q,lastCurrentByte:$,changedPreviousBytes:Q-J+1,changedCurrentBytes:$-J+1,previousBytes:Y.length,currentBytes:X.length}}function FH(Y,X){if(!$9.has(Y))while($9.size>=NH){let J=$9.keys().next().value;if(J===void 0)break;$9.delete(J)}$9.set(Y,X)}var aQ=new Set;async function OH(Y,X,J){let Q=Y5(X),$=VH.map((G)=>`-${Q}-${J}-${G}.body.json`);try{let W=(await ZH(Y)).filter((K)=>$.some((H)=>K.endsWith(H))).sort().pop();if(!W)return;return await LH(eQ(Y,W),"utf8")}catch{return}}function jH(Y){if(Y===void 0)return;return Object.fromEntries(new Headers(Y).entries())}function mX(Y){if(Array.isArray(Y))return Y.map(mX);if(Y==null||typeof Y!=="object")return Y;let X={};for(let[J,Q]of Object.entries(Y)){let $=J.toLowerCase();if($==="authorization"||$==="chatgpt-account-id"||$==="cookie"||$==="set-cookie"){X[J]="[redacted]";continue}X[J]=mX(Q)}return X}function qH(Y){let X=J5(Y);if(X===void 0)return Y;let J=DH(X),Q=JSON.stringify(J);if(Q===void 0)return Y;return JSON.stringify(X)===Q?Y:Q}function DH(Y){if(!o(Y))return yX(Y);let X={};for(let[J,Q]of Object.entries(Y))X[J]=J==="tools"?tQ(Q):yX({[J]:Q})[J];return X}function EH(Y){return Y!=null&&typeof Y==="object"&&"type"in Y&&typeof Y.type==="string"?Y.type:"unknown"}function PH(Y){let X=J5(Y);if(!X)return{parseable:!1};let J=Array.isArray(X.input)?X.input:[],Q=Array.isArray(X.tools)?X.tools:[],$=Q.map(EH),G=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:gX(J),inputBytes:JSON.stringify(J).length,firstInputHash:J[0]===void 0?null:gX(J[0]),toolsCount:Q.length,toolTypes:$,toolsHash:gX(Q),clientMetadataKeys:G?Object.keys(G).sort():[]}}async function G9(Y){let X=i0();if(!X.dump)return;sQ++;let J=Y.sessionID?.trim()||"session-unknown",Q=`${new Date().toISOString().replace(/[:.]/g,"-")}-${process.pid}-${String(sQ).padStart(5,"0")}-${Y5(J)}-${Y.transport}-${Y.phase}`,$=eQ(X.dumpDir,Q),G={body:`${$}.body.json`,metadata:`${$}.meta.json`,request:`${$}.request.json`},W=`${Y.transport}:${J}`,K=$9.get(W),H=K?"memory":void 0;if(K===void 0&&!aQ.has(W)){if(aQ.add(W),K=await OH(X.dumpDir,J,Y.transport),K!==void 0)H="disk"}try{await HH(X.dumpDir,{recursive:!0,mode:448}),await UH(X.dumpDir,448).catch(()=>{});let U=qH(Y.bodyText),Z={id:Q,createdAt:new Date().toISOString(),session:hX(J),transport:Y.transport,phase:Y.phase,accountId:Y.accountId,status:Y.status,error:Y.error,bodyBytes:Y.bodyText.length,bodyHash:X5(Y.bodyText),diff:BH(K,U),baselineSource:H,body:PH(Y.bodyText),files:G};await Promise.all([vX(G.body,U,{encoding:"utf8",mode:384}),vX(G.metadata,`${JSON.stringify(Z,null,2)}
|
|
53
|
+
`,{encoding:"utf8",mode:384}),vX(G.request,`${JSON.stringify(mX({url:Y.url,method:Y.method,accountId:Y.accountId,headers:jH(Y.headers)}),null,2)}
|
|
54
|
+
`,{encoding:"utf8",mode:384})]),fX.debug("dumped request",{id:Q,session:hX(J),body:G.body,meta:G.metadata}),FH(W,U)}catch(U){fX.warn("request dump failed",{session:hX(J),error:U instanceof Error?U.message:String(U)})}}async function c1(Y){if(!i0().dump)return;fX.debug("diagnostic",Y)}import{readFile as MH}from"node:fs/promises";import{homedir as wH}from"node:os";import{join as Q5}from"node:path";var AH="https://models.dev/api.json",RH="OPENCODE_OPENAI_AUTH_MODELS_CACHE",TH="OPENCODE_MODELS_PATH",CH="OPENCODE_DISABLE_MODELS_FETCH",_H=1e4,IH=300000;function w1(Y){return Y!==null&&typeof Y==="object"&&!Array.isArray(Y)?Y:null}function $5(Y){if(Y===void 0)return 0;return typeof Y==="number"&&Number.isFinite(Y)&&Y>=0?Y:null}function cX(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=$5(Y.cache_read),$=$5(Y.cache_write);if(Q===null||$===null)return null;return{input:X,output:J,cache:{read:Q,write:$}}}function SH(Y){let X=w1(Y);if(!X)return null;let J=cX(X);if(!J)return null;let Q=J;if(Array.isArray(X.tiers)){let W=[];for(let K of X.tiers){let H=w1(K);if(!H)continue;let U=w1(H.tier),Z=U?.size;if(U?.type!=="context")continue;if(typeof Z!=="number"||!Number.isFinite(Z)||Z<=0)continue;let O=cX(H);if(!O)continue;W.push({...O,tier:{type:"context",size:Z}})}if(W.length>0)Q.tiers=W}let $=w1(X.context_over_200k),G=$?cX($):null;if(G)Q.experimentalOver200K=G;return Q}function G5(Y){let X=w1(Y),J=w1(X?.openai),Q=w1(J?.models);if(!Q)return null;let $={};for(let[G,W]of Object.entries(Q)){let K=w1(W),H=SH(K?.cost);if(H)$[G]=H}return Object.keys($).length>0?$:null}function kH(){let Y=process.env[RH]?.trim();if(Y)return Y;let X=process.env[TH]?.trim();if(X)return X;let J=process.env.XDG_CACHE_HOME?.trim()||(process.platform==="win32"?process.env.LOCALAPPDATA?.trim():void 0)||Q5(wH(),".cache");return Q5(J,"opencode","models.json")}function xH(){let Y=process.env[CH]?.toLowerCase();return Y==="true"||Y==="1"}async function bH(){try{let Y=G5(JSON.parse(await MH(kH(),"utf8")));if(Y)return Y}catch{}if(xH())return null;try{let Y=await fetch(AH,{signal:AbortSignal.timeout(_H)});if(!Y.ok)return null;return G5(await Y.json())}catch{return null}}var W9;function W5(){let Y=Date.now();if(W9&&W9.expiresAt>Y)return W9.promise;let X={expiresAt:Y+IH,promise:bH()};return W9=X,X.promise.then((J)=>{if(J===null&&W9===X)W9=void 0}),X.promise}function z9(Y){return typeof Y==="object"&&Y!==null}function vH(Y){if(Array.isArray(Y))return Y;if(z9(Y)&&Array.isArray(Y.data))return Y.data;return[]}function hH(Y){if(!z9(Y)||!z9(Y.info))return;return typeof Y.info.role==="string"?Y.info.role:void 0}function z5(Y){if(!z9(Y)||!z9(Y.info))return null;let X=Y.info,J=z9(X.model)?X.model:void 0,Q=typeof X.agent==="string"?X.agent:void 0,$=typeof J?.providerID==="string"?J.providerID:typeof X.providerID==="string"?X.providerID:void 0,G=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 K={};if(Q)K.agent=Q;if($&&G)K.model={providerID:$,modelID:G};if(W)K.variant=W;return K}function K5(Y,X){return{agent:Y.agent??X.agent,model:Y.model??X.model,variant:Y.variant??X.variant}}function U5(Y){return Boolean(Y.agent&&Y.model&&Y.variant)}async function H5(Y,X){if(!Y||!X)return null;let J=Y;if(typeof J.session?.messages!=="function")return null;let Q=[];try{Q=vH(await Promise.resolve(J.session.messages({path:{id:X},query:{limit:100}})))}catch{return null}if(Q.length===0)return null;let $={};for(let G=Q.length-1;G>=0;G--){if(hH(Q[G])!=="assistant")continue;let W=z5(Q[G]);if(!W)continue;if($=K5($,W),U5($))return $}for(let G=Q.length-1;G>=0;G--){let W=z5(Q[G]);if(!W)continue;if($=K5($,W),U5($))return $}if(!$.agent&&!$.model&&!$.variant)return null;return $}var A1=[],gH=1,Z5=new Map;function uX(Y,X){if(A1.push({id:gH++,type:"open-dialog",payload:Y,sessionId:X}),A1.length>100)A1=A1.slice(A1.length-100)}function L5(Y=0,X){let J=Date.now();if(X!==void 0)Z5.set(X,J);let Q=($)=>X===void 0||$.sessionId===void 0||$.sessionId===X;if(Y>0)A1=A1.filter(($)=>{if($.id>Y)return!0;if(X===void 0)return!0;return $.sessionId!==X});return A1.filter(($)=>$.id>Y&&Q($))}function V5(Y){let X=Date.now(),J=Z5.get(Y)??0;return J>0&&X-J<3000}import{randomBytes as yH,timingSafeEqual as fH}from"node:crypto";import{readFile as mH,unlink as cH}from"node:fs/promises";import{createServer as uH}from"node:http";import{join as pH}from"node:path";var pX=N0("rpc");function lH(Y){return new Promise((X,J)=>{let Q=[],$=0;Y.on("data",(G)=>{if($+=G.length,$>1e6){Y.destroy(),J(Error("body too large"));return}Q.push(G)}),Y.on("end",()=>X(Buffer.concat(Q).toString("utf8"))),Y.on("error",J)})}function dH(Y,X){if(!Y?.startsWith("Bearer "))return!1;let J=Buffer.from(Y.slice(7)),Q=Buffer.from(X);return J.length===Q.length&&fH(J,Q)}async function F5(Y){let X=yH(32).toString("hex"),J=Y.timeoutMs??90000,Q=Y.receiptTimeoutMs??2000,$=!1,G=uH((H,U)=>{H.setTimeout(J,()=>{H.socket.destroy()}),W(H,U)});G.requestTimeout=Q,G.headersTimeout=Q;async function W(H,U){let Z=(O,N)=>{if(U.headersSent||U.writableEnded||U.destroyed)return;U.writeHead(O,{"content-type":"application/json"}),U.end(JSON.stringify(N))};try{let O=H.url??"";if(H.method==="GET"&&O==="/health")return Z(200,{ok:!0});if(H.method!=="POST"||!O.startsWith("/rpc/"))return Z(404,{error:"not found"});if(!dH(H.headers.authorization,X))return Z(401,{error:"unauthorized"});let N=O.slice(5),V=await lH(H),q=JSON.parse(V||"{}");if(N==="pending-notifications"){let T=typeof q.sessionId==="string"?q.sessionId:void 0;if(T===void 0&&!$)$=!0,pX.warn("rpc notification drain missing session id",{pid:process.pid});let S=Y.drain(Number(q.lastReceivedId??0),T);return Z(200,{messages:S})}if(N==="apply"){let T=await Y.apply(q);return Z(200,T)}return Z(404,{error:"unknown method"})}catch(O){Z(500,{error:O instanceof Error?O.message:String(O)})}}let K=await new Promise((H,U)=>{G.on("error",U),G.listen(0,"127.0.0.1",()=>{let Z=G.address();if(Z&&typeof Z==="object")H(Z.port);else U(Error("no port"))})});if(G.unref(),Y.sweepRoot)try{await B5(Y.sweepRoot,Y.dir)}catch(H){pX.warn("rpc state sweep failed",{pid:process.pid,error:H instanceof Error?H.message:String(H)})}try{await N5(Y.dir,{port:K,token:X,pid:process.pid},{secureDir:Y.secureDir}),pX.debug("rpc server pid",{pid:process.pid,rpcPort:K})}catch(H){throw await new Promise((U)=>G.close(()=>U())),H}return{port:K,token:X,async stop(){await new Promise((Z)=>G.close(()=>Z()));let H=pH(Y.dir,`port-${process.pid}.json`),U=await mH(H,"utf8").then((Z)=>JSON.parse(Z)).catch(()=>{return});if(U?.port===K&&U.token===X)await cH(H).catch(()=>{})}}}function V1(Y){return JSON.stringify(lX(Y))??"undefined"}function lX(Y){if(Array.isArray(Y))return Y.map(lX);if(!o(Y))return Y;return Object.fromEntries(Object.keys(Y).sort().map((X)=>[X,lX(Y[X])]))}function u1(){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 k1={};oX(k1,{withoutInternalHeaders:()=>Y4,sanitizeHttpFallbackBody:()=>MX,orderCodexBody:()=>t9,hasWebSocketResponsesLiteMetadata:()=>PX,createWebSocketFetch:()=>oB,applyTurnId:()=>sK,advanceTurn:()=>dJ,TITLE_HEADER:()=>lJ,QUOTA_ACCOUNT_HEADER:()=>GX,OpenAIWebSocketPool:()=>k1,CODEX_BODY_KEY_ORDER:()=>nK});import{createHash as uB}from"node:crypto";var r5="vercel.ai.error",iH=Symbol.for(r5),O5,j5,R=class Y extends(j5=Error,O5=iH,j5){constructor({name:X,message:J,cause:Q}){super(J);this[O5]=!0,this.name=X,this.cause=Q}static isInstance(X){return Y.hasMarker(X,r5)}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}},s5="AI_APICallError",a5=`vercel.ai.error.${s5}`,oH=Symbol.for(a5),q5,D5,x9=class extends(D5=R,q5=oH,D5){constructor({message:Y,url:X,requestBodyValues:J,statusCode:Q,responseHeaders:$,responseBody:G,cause:W,isRetryable:K=Q!=null&&(Q===408||Q===409||Q===429||Q>=500),data:H}){super({name:s5,message:Y,cause:W});this[q5]=!0,this.url=X,this.requestBodyValues=J,this.statusCode=Q,this.responseHeaders=$,this.responseBody=G,this.isRetryable=K,this.data=H}static isInstance(Y){return R.hasMarker(Y,a5)}},t5="AI_EmptyResponseBodyError",e5=`vercel.ai.error.${t5}`,nH=Symbol.for(e5),E5,P5,rH=class extends(P5=R,E5=nH,P5){constructor({message:Y="Empty response body"}={}){super({name:t5,message:Y});this[E5]=!0}static isInstance(Y){return R.hasMarker(Y,e5)}},Y$="AI_EvaluationUnsupportedQuestionTypeError",X$=`vercel.ai.error.${Y$}`,sH=Symbol.for(X$),M5,w5,aH=class extends(w5=R,M5=sH,w5){constructor({questionId:Y,questionType:X,provider:J,modelId:Q,message:$=`Question "${Y}" has type "${X}", which is not supported by provider "${J}" and model "${Q}".`}){super({name:Y$,message:$});this[M5]=!0,this.questionId=Y,this.questionType=X,this.provider=J,this.modelId=Q}static isInstance(Y){return R.hasMarker(Y,X$)}};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 J$="AI_InvalidArgumentError",Q$=`vercel.ai.error.${J$}`,tH=Symbol.for(Q$),A5,R5,$$=class extends(R5=R,A5=tH,R5){constructor({message:Y,cause:X,argument:J}){super({name:J$,message:Y,cause:X});this[A5]=!0,this.argument=J}static isInstance(Y){return R.hasMarker(Y,Q$)}},G$="AI_InvalidPromptError",W$=`vercel.ai.error.${G$}`,eH=Symbol.for(W$),T5,C5,YZ=class extends(C5=R,T5=eH,C5){constructor({prompt:Y,message:X,cause:J}){super({name:G$,message:`Invalid prompt: ${X}`,cause:J});this[T5]=!0,this.prompt=Y}static isInstance(Y){return R.hasMarker(Y,W$)}},z$="AI_InvalidResponseDataError",K$=`vercel.ai.error.${z$}`,XZ=Symbol.for(K$),_5,I5,JZ=class extends(I5=R,_5=XZ,I5){constructor({data:Y,message:X=`Invalid response data: ${JSON.stringify(Y)}.`}){super({name:z$,message:X});this[_5]=!0,this.data=Y}static isInstance(Y){return R.hasMarker(Y,K$)}},U$="AI_JSONParseError",H$=`vercel.ai.error.${U$}`,QZ=Symbol.for(H$),S5,k5,SY=class extends(k5=R,S5=QZ,k5){constructor({text:Y,cause:X}){super({name:U$,message:`JSON parsing failed: Text: ${Y}.
|
|
55
|
+
Error message: ${p1(X)}`,cause:X});this[S5]=!0,this.text=Y}static isInstance(Y){return R.hasMarker(Y,H$)}},Z$="AI_LoadAPIKeyError",L$=`vercel.ai.error.${Z$}`,$Z=Symbol.for(L$),x5,b5,GZ=class extends(b5=R,x5=$Z,b5){constructor({message:Y}){super({name:Z$,message:Y});this[x5]=!0}static isInstance(Y){return R.hasMarker(Y,L$)}},V$="AI_LoadSettingError",N$=`vercel.ai.error.${V$}`,WZ=Symbol.for(N$),v5,h5,zZ=class extends(h5=R,v5=WZ,h5){constructor({message:Y}){super({name:V$,message:Y});this[v5]=!0}static isInstance(Y){return R.hasMarker(Y,N$)}},B$="AI_NoContentGeneratedError",F$=`vercel.ai.error.${B$}`,KZ=Symbol.for(F$),g5,y5,UZ=class extends(y5=R,g5=KZ,y5){constructor({message:Y="No content generated."}={}){super({name:B$,message:Y});this[g5]=!0}static isInstance(Y){return R.hasMarker(Y,F$)}},O$="AI_NoSuchModelError",j$=`vercel.ai.error.${O$}`,HZ=Symbol.for(j$),f5,m5,dX=class extends(m5=R,f5=HZ,m5){constructor({errorName:Y=O$,modelId:X,modelType:J,message:Q=`No such ${J}: ${X}`}){super({name:Y,message:Q});this[f5]=!0,this.modelId=X,this.modelType=J}static isInstance(Y){return R.hasMarker(Y,j$)}},q$="AI_NoSuchProviderReferenceError",D$=`vercel.ai.error.${q$}`,ZZ=Symbol.for(D$),c5,u5,LZ=class extends(u5=R,c5=ZZ,u5){constructor({provider:Y,reference:X,message:J=`No provider reference found for provider '${Y}'. Available providers: ${Object.keys(X).join(", ")}`}){super({name:q$,message:J});this[c5]=!0,this.provider=Y,this.reference=X}static isInstance(Y){return R.hasMarker(Y,D$)}},E$="AI_TooManyEmbeddingValuesForCallError",P$=`vercel.ai.error.${E$}`,VZ=Symbol.for(P$),p5,l5,NZ=class extends(l5=R,p5=VZ,l5){constructor(Y){super({name:E$,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[p5]=!0,this.provider=Y.provider,this.modelId=Y.modelId,this.maxEmbeddingsPerCall=Y.maxEmbeddingsPerCall,this.values=Y.values}static isInstance(Y){return R.hasMarker(Y,P$)}},M$="AI_TypeValidationError",w$=`vercel.ai.error.${M$}`,BZ=Symbol.for(w$),d5,i5,n0=class Y extends(i5=R,d5=BZ,i5){constructor({value:X,cause:J,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:M$,message:`${$}: Value: ${JSON.stringify(X)}.
|
|
56
|
+
Error message: ${p1(J)}`,cause:J});this[d5]=!0,this.value=X,this.context=Q}static isInstance(X){return R.hasMarker(X,w$)}static wrap({value:X,cause:J,context:Q}){var $,G,W;if(Y.isInstance(J)&&J.value===X&&(($=J.context)==null?void 0:$.field)===(Q==null?void 0:Q.field)&&((G=J.context)==null?void 0:G.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})}},A$="AI_UnsupportedFunctionalityError",R$=`vercel.ai.error.${A$}`,FZ=Symbol.for(R$),o5,n5,OZ=class extends(n5=R,o5=FZ,n5){constructor({functionality:Y,message:X=`'${Y}' functionality not supported.`}){super({name:A$,message:X});this[o5]=!0,this.functionality=Y}static isInstance(Y){return R.hasMarker(Y,R$)}};var Xq=Object.freeze({status:"aborted"});function E(Y,X,J){function Q(K,H){var U;Object.defineProperty(K,"_zod",{value:K._zod??{},enumerable:!1}),(U=K._zod).traits??(U.traits=new Set),K._zod.traits.add(Y),X(K,H);for(let Z in W.prototype)if(!(Z in K))Object.defineProperty(K,Z,{value:W.prototype[Z].bind(K)});K._zod.constr=W,K._zod.def=H}let $=J?.Parent??Object;class G extends ${}Object.defineProperty(G,"name",{value:Y});function W(K){var H;let U=J?.Parent?new G:this;Q(U,K),(H=U._zod).deferred??(H.deferred=[]);for(let Z of U._zod.deferred)Z();return U}return Object.defineProperty(W,"init",{value:Q}),Object.defineProperty(W,Symbol.hasInstance,{value:(K)=>{if(J?.Parent&&K instanceof J.Parent)return!0;return K?._zod?.traits?.has(Y)}}),Object.defineProperty(W,"name",{value:Y}),W}var Jq=Symbol("zod_brand");class N1 extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class b9 extends Error{constructor(Y){super(`Encountered unidirectional transform during encode: ${Y}`);this.name="ZodEncodeError"}}var kY={};function G1(Y){if(Y)Object.assign(kY,Y);return kY}var s={};oX(s,{unwrapMessage:()=>v9,uint8ArrayToHex:()=>pZ,uint8ArrayToBase64url:()=>cZ,uint8ArrayToBase64:()=>b$,stringifyPrimitive:()=>I$,shallowClone:()=>C$,safeExtend:()=>vZ,required:()=>yZ,randomString:()=>CZ,propertyKeyTypes:()=>sX,promiseAllObject:()=>TZ,primitiveTypes:()=>_$,prefixIssues:()=>F1,pick:()=>kZ,partial:()=>gZ,optionalKeys:()=>aX,omit:()=>xZ,objectClone:()=>wZ,numKeys:()=>_Z,nullish:()=>g9,normalizeParams:()=>d,mergeDefs:()=>T1,merge:()=>hZ,jsonStringifyReplacer:()=>K9,joinValues:()=>MZ,issue:()=>H9,isPlainObject:()=>C1,isObject:()=>l1,hexToUint8Array:()=>uZ,getSizableOrigin:()=>k$,getParsedType:()=>IZ,getLengthableOrigin:()=>f9,getEnumValues:()=>h9,getElementAtPath:()=>RZ,floatSafeRemainder:()=>nX,finalizeIssue:()=>a0,extend:()=>bZ,escapeRegex:()=>B1,esc:()=>xY,defineLazy:()=>Y0,createTransparentProxy:()=>SZ,cloneDef:()=>AZ,clone:()=>s0,cleanRegex:()=>y9,cleanEnum:()=>fZ,captureStackTrace:()=>bY,cached:()=>U9,base64urlToUint8Array:()=>mZ,base64ToUint8Array:()=>x$,assignProp:()=>R1,assertNotEqual:()=>qZ,assertNever:()=>EZ,assertIs:()=>DZ,assertEqual:()=>jZ,assert:()=>PZ,allowsEval:()=>rX,aborted:()=>_1,NUMBER_FORMAT_RANGES:()=>tX,Class:()=>v$,BIGINT_FORMAT_RANGES:()=>S$});function jZ(Y){return Y}function qZ(Y){return Y}function DZ(Y){}function EZ(Y){throw Error()}function PZ(Y){}function h9(Y){let X=Object.values(Y).filter((Q)=>typeof Q==="number");return Object.entries(Y).filter(([Q,$])=>X.indexOf(+Q)===-1).map(([Q,$])=>$)}function MZ(Y,X="|"){return Y.map((J)=>I$(J)).join(X)}function K9(Y,X){if(typeof X==="bigint")return X.toString();return X}function U9(Y){return{get value(){{let J=Y();return Object.defineProperty(this,"value",{value:J}),J}throw Error("cached value already set")}}}function g9(Y){return Y===null||Y===void 0}function y9(Y){let X=Y.startsWith("^")?1:0,J=Y.endsWith("$")?Y.length-1:Y.length;return Y.slice(X,J)}function nX(Y,X){let J=(Y.toString().split(".")[1]||"").length,Q=X.toString(),$=(Q.split(".")[1]||"").length;if($===0&&/\d?e-\d?/.test(Q)){let H=Q.match(/\d?e-(\d?)/);if(H?.[1])$=Number.parseInt(H[1])}let G=J>$?J:$,W=Number.parseInt(Y.toFixed(G).replace(".","")),K=Number.parseInt(X.toFixed(G).replace(".",""));return W%K/10**G}var T$=Symbol("evaluating");function Y0(Y,X,J){let Q=void 0;Object.defineProperty(Y,X,{get(){if(Q===T$)return;if(Q===void 0)Q=T$,Q=J();return Q},set($){Object.defineProperty(Y,X,{value:$})},configurable:!0})}function wZ(Y){return Object.create(Object.getPrototypeOf(Y),Object.getOwnPropertyDescriptors(Y))}function R1(Y,X,J){Object.defineProperty(Y,X,{value:J,writable:!0,enumerable:!0,configurable:!0})}function T1(...Y){let X={};for(let J of Y){let Q=Object.getOwnPropertyDescriptors(J);Object.assign(X,Q)}return Object.defineProperties({},X)}function AZ(Y){return T1(Y._zod.def)}function RZ(Y,X){if(!X)return Y;return X.reduce((J,Q)=>J?.[Q],Y)}function TZ(Y){let X=Object.keys(Y),J=X.map((Q)=>Y[Q]);return Promise.all(J).then((Q)=>{let $={};for(let G=0;G<X.length;G++)$[X[G]]=Q[G];return $})}function CZ(Y=10){let J="";for(let Q=0;Q<Y;Q++)J+="abcdefghijklmnopqrstuvwxyz"[Math.floor(Math.random()*26)];return J}function xY(Y){return JSON.stringify(Y)}var bY="captureStackTrace"in Error?Error.captureStackTrace:(...Y)=>{};function l1(Y){return typeof Y==="object"&&Y!==null&&!Array.isArray(Y)}var rX=U9(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(Y){return!1}});function C1(Y){if(l1(Y)===!1)return!1;let X=Y.constructor;if(X===void 0)return!0;let J=X.prototype;if(l1(J)===!1)return!1;if(Object.prototype.hasOwnProperty.call(J,"isPrototypeOf")===!1)return!1;return!0}function C$(Y){if(C1(Y))return{...Y};if(Array.isArray(Y))return[...Y];return Y}function _Z(Y){let X=0;for(let J in Y)if(Object.prototype.hasOwnProperty.call(Y,J))X++;return X}var IZ=(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}`)}},sX=new Set(["string","number","symbol"]),_$=new Set(["string","number","bigint","boolean","symbol","undefined"]);function B1(Y){return Y.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function s0(Y,X,J){let Q=new Y._zod.constr(X??Y._zod.def);if(!X||J?.parent)Q._zod.parent=Y;return Q}function d(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 SZ(Y){let X;return new Proxy({},{get(J,Q,$){return X??(X=Y()),Reflect.get(X,Q,$)},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,$){return X??(X=Y()),Reflect.defineProperty(X,Q,$)}})}function I$(Y){if(typeof Y==="bigint")return Y.toString()+"n";if(typeof Y==="string")return`"${Y}"`;return`${Y}`}function aX(Y){return Object.keys(Y).filter((X)=>{return Y[X]._zod.optin==="optional"&&Y[X]._zod.optout==="optional"})}var tX={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]},S$={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function kZ(Y,X){let J=Y._zod.def,Q=T1(Y._zod.def,{get shape(){let $={};for(let G in X){if(!(G in J.shape))throw Error(`Unrecognized key: "${G}"`);if(!X[G])continue;$[G]=J.shape[G]}return R1(this,"shape",$),$},checks:[]});return s0(Y,Q)}function xZ(Y,X){let J=Y._zod.def,Q=T1(Y._zod.def,{get shape(){let $={...Y._zod.def.shape};for(let G in X){if(!(G in J.shape))throw Error(`Unrecognized key: "${G}"`);if(!X[G])continue;delete $[G]}return R1(this,"shape",$),$},checks:[]});return s0(Y,Q)}function bZ(Y,X){if(!C1(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 $=T1(Y._zod.def,{get shape(){let G={...Y._zod.def.shape,...X};return R1(this,"shape",G),G},checks:[]});return s0(Y,$)}function vZ(Y,X){if(!C1(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 R1(this,"shape",Q),Q},checks:Y._zod.def.checks};return s0(Y,J)}function hZ(Y,X){let J=T1(Y._zod.def,{get shape(){let Q={...Y._zod.def.shape,...X._zod.def.shape};return R1(this,"shape",Q),Q},get catchall(){return X._zod.def.catchall},checks:[]});return s0(Y,J)}function gZ(Y,X,J){let Q=T1(X._zod.def,{get shape(){let $=X._zod.def.shape,G={...$};if(J)for(let W in J){if(!(W in $))throw Error(`Unrecognized key: "${W}"`);if(!J[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 R1(this,"shape",G),G},checks:[]});return s0(X,Q)}function yZ(Y,X,J){let Q=T1(X._zod.def,{get shape(){let $=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;G[W]=new Y({type:"nonoptional",innerType:$[W]})}else for(let W in $)G[W]=new Y({type:"nonoptional",innerType:$[W]});return R1(this,"shape",G),G},checks:[]});return s0(X,Q)}function _1(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 F1(Y,X){return X.map((J)=>{var Q;return(Q=J).path??(Q.path=[]),J.path.unshift(Y),J})}function v9(Y){return typeof Y==="string"?Y:Y?.message}function a0(Y,X,J){let Q={...Y,path:Y.path??[]};if(!Y.message){let $=v9(Y.inst?._zod.def?.error?.(Y))??v9(X?.error?.(Y))??v9(J.customError?.(Y))??v9(J.localeError?.(Y))??"Invalid input";Q.message=$}if(delete Q.inst,delete Q.continue,!X?.reportInput)delete Q.input;return Q}function k$(Y){if(Y instanceof Set)return"set";if(Y instanceof Map)return"map";if(Y instanceof File)return"file";return"unknown"}function f9(Y){if(Array.isArray(Y))return"array";if(typeof Y==="string")return"string";return"unknown"}function H9(...Y){let[X,J,Q]=Y;if(typeof X==="string")return{message:X,code:"custom",input:J,inst:Q};return{...X}}function fZ(Y){return Object.entries(Y).filter(([X,J])=>{return Number.isNaN(Number.parseInt(X,10))}).map((X)=>X[1])}function x$(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 b$(Y){let X="";for(let J=0;J<Y.length;J++)X+=String.fromCharCode(Y[J]);return btoa(X)}function mZ(Y){let X=Y.replace(/-/g,"+").replace(/_/g,"/"),J="=".repeat((4-X.length%4)%4);return x$(X+J)}function cZ(Y){return b$(Y).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function uZ(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 pZ(Y){return Array.from(Y).map((X)=>X.toString(16).padStart(2,"0")).join("")}class v${constructor(...Y){}}var h$=(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,K9,2),Object.defineProperty(Y,"toString",{value:()=>Y.message,enumerable:!1})},vY=E("$ZodError",h$),eX=E("$ZodError",h$,{Parent:Error});function g$(Y,X=(J)=>J.message){let J={},Q=[];for(let $ of Y.issues)if($.path.length>0)J[$.path[0]]=J[$.path[0]]||[],J[$.path[0]].push(X($));else Q.push(X($));return{formErrors:Q,fieldErrors:J}}function y$(Y,X){let J=X||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(J(W));else{let K=Q,H=0;while(H<W.path.length){let U=W.path[H];if(H!==W.path.length-1)K[U]=K[U]||{_errors:[]};else K[U]=K[U]||{_errors:[]},K[U]._errors.push(J(W));K=K[U],H++}}};return $(Y),Q}var hY=(Y)=>(X,J,Q,$)=>{let G=Q?Object.assign(Q,{async:!1}):{async:!1},W=X._zod.run({value:J,issues:[]},G);if(W instanceof Promise)throw new N1;if(W.issues.length){let K=new($?.Err??Y)(W.issues.map((H)=>a0(H,G,G1())));throw bY(K,$?.callee),K}return W.value};var gY=(Y)=>async(X,J,Q,$)=>{let G=Q?Object.assign(Q,{async:!0}):{async:!0},W=X._zod.run({value:J,issues:[]},G);if(W instanceof Promise)W=await W;if(W.issues.length){let K=new($?.Err??Y)(W.issues.map((H)=>a0(H,G,G1())));throw bY(K,$?.callee),K}return W.value};var m9=(Y)=>(X,J,Q)=>{let $=Q?{...Q,async:!1}:{async:!1},G=X._zod.run({value:J,issues:[]},$);if(G instanceof Promise)throw new N1;return G.issues.length?{success:!1,error:new(Y??vY)(G.issues.map((W)=>a0(W,$,G1())))}:{success:!0,data:G.value}},f$=m9(eX),c9=(Y)=>async(X,J,Q)=>{let $=Q?Object.assign(Q,{async:!0}):{async:!0},G=X._zod.run({value:J,issues:[]},$);if(G instanceof Promise)G=await G;return G.issues.length?{success:!1,error:new Y(G.issues.map((W)=>a0(W,$,G1())))}:{success:!0,data:G.value}},m$=c9(eX),c$=(Y)=>(X,J,Q)=>{let $=Q?Object.assign(Q,{direction:"backward"}):{direction:"backward"};return hY(Y)(X,J,$)};var u$=(Y)=>(X,J,Q)=>{return hY(Y)(X,J,Q)};var p$=(Y)=>async(X,J,Q)=>{let $=Q?Object.assign(Q,{direction:"backward"}):{direction:"backward"};return gY(Y)(X,J,$)};var l$=(Y)=>async(X,J,Q)=>{return gY(Y)(X,J,Q)};var d$=(Y)=>(X,J,Q)=>{let $=Q?Object.assign(Q,{direction:"backward"}):{direction:"backward"};return m9(Y)(X,J,$)};var i$=(Y)=>(X,J,Q)=>{return m9(Y)(X,J,Q)};var o$=(Y)=>async(X,J,Q)=>{let $=Q?Object.assign(Q,{direction:"backward"}):{direction:"backward"};return c9(Y)(X,J,$)};var n$=(Y)=>async(X,J,Q)=>{return c9(Y)(X,J,Q)};var r$=/^[cC][^\s-]{8,}$/,s$=/^[0-9a-z]+$/,a$=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,t$=/^[0-9a-vA-V]{20}$/,e$=/^[A-Za-z0-9]{27}$/,YG=/^[a-zA-Z0-9_-]{21}$/,XG=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var JG=/^([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})$/,YJ=(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 QG=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;function $G(){return new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")}var GG=/^(?:(?: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])$/,WG=/^(([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}|:))$/,zG=/^((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])$/,KG=/^(([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])$/,UG=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,XJ=/^[A-Za-z0-9_-]*$/,HG=/^(?=.{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 ZG=/^\+(?:[0-9]){6,14}[0-9]$/,LG="(?:(?:\\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])))",VG=new RegExp(`^${LG}$`);function NG(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 BG(Y){return new RegExp(`^${NG(Y)}$`)}function FG(Y){let X=NG({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(`^${LG}T(?:${Q})$`)}var OG=(Y)=>{let X=Y?`[\\s\\S]{${Y?.minimum??0},${Y?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${X}$`)};var jG=/^-?\d+$/,qG=/^-?\d+(?:\.\d+)?/,DG=/^(?:true|false)$/i,EG=/^null$/i;var PG=/^[^A-Z]*$/,MG=/^[^a-z]*$/;var w0=E("$ZodCheck",(Y,X)=>{var J;Y._zod??(Y._zod={}),Y._zod.def=X,(J=Y._zod).onattach??(J.onattach=[])}),wG={number:"number",bigint:"bigint",object:"date"},JJ=E("$ZodCheckLessThan",(Y,X)=>{w0.init(Y,X);let J=wG[typeof X.value];Y._zod.onattach.push((Q)=>{let $=Q._zod.bag,G=(X.inclusive?$.maximum:$.exclusiveMaximum)??Number.POSITIVE_INFINITY;if(X.value<G)if(X.inclusive)$.maximum=X.value;else $.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})}}),QJ=E("$ZodCheckGreaterThan",(Y,X)=>{w0.init(Y,X);let J=wG[typeof X.value];Y._zod.onattach.push((Q)=>{let $=Q._zod.bag,G=(X.inclusive?$.minimum:$.exclusiveMinimum)??Number.NEGATIVE_INFINITY;if(X.value>G)if(X.inclusive)$.minimum=X.value;else $.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})}}),AG=E("$ZodCheckMultipleOf",(Y,X)=>{w0.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):nX(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})}}),RG=E("$ZodCheckNumberFormat",(Y,X)=>{w0.init(Y,X),X.format=X.format||"float64";let J=X.format?.includes("int"),Q=J?"int":"number",[$,G]=tX[X.format];Y._zod.onattach.push((W)=>{let K=W._zod.bag;if(K.format=X.format,K.minimum=$,K.maximum=G,J)K.pattern=jG}),Y._zod.check=(W)=>{let K=W.value;if(J){if(!Number.isInteger(K)){W.issues.push({expected:Q,format:X.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:!X.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:!X.abort});return}}if(K<$)W.issues.push({origin:"number",input:K,code:"too_small",minimum:$,inclusive:!0,inst:Y,continue:!X.abort});if(K>G)W.issues.push({origin:"number",input:K,code:"too_big",maximum:G,inst:Y})}});var TG=E("$ZodCheckMaxLength",(Y,X)=>{var J;w0.init(Y,X),(J=Y._zod.def).when??(J.when=(Q)=>{let $=Q.value;return!g9($)&&$.length!==void 0}),Y._zod.onattach.push((Q)=>{let $=Q._zod.bag.maximum??Number.POSITIVE_INFINITY;if(X.maximum<$)Q._zod.bag.maximum=X.maximum}),Y._zod.check=(Q)=>{let $=Q.value;if($.length<=X.maximum)return;let W=f9($);Q.issues.push({origin:W,code:"too_big",maximum:X.maximum,inclusive:!0,input:$,inst:Y,continue:!X.abort})}}),CG=E("$ZodCheckMinLength",(Y,X)=>{var J;w0.init(Y,X),(J=Y._zod.def).when??(J.when=(Q)=>{let $=Q.value;return!g9($)&&$.length!==void 0}),Y._zod.onattach.push((Q)=>{let $=Q._zod.bag.minimum??Number.NEGATIVE_INFINITY;if(X.minimum>$)Q._zod.bag.minimum=X.minimum}),Y._zod.check=(Q)=>{let $=Q.value;if($.length>=X.minimum)return;let W=f9($);Q.issues.push({origin:W,code:"too_small",minimum:X.minimum,inclusive:!0,input:$,inst:Y,continue:!X.abort})}}),_G=E("$ZodCheckLengthEquals",(Y,X)=>{var J;w0.init(Y,X),(J=Y._zod.def).when??(J.when=(Q)=>{let $=Q.value;return!g9($)&&$.length!==void 0}),Y._zod.onattach.push((Q)=>{let $=Q._zod.bag;$.minimum=X.length,$.maximum=X.length,$.length=X.length}),Y._zod.check=(Q)=>{let $=Q.value,G=$.length;if(G===X.length)return;let W=f9($),K=G>X.length;Q.issues.push({origin:W,...K?{code:"too_big",maximum:X.length}:{code:"too_small",minimum:X.length},inclusive:!0,exact:!0,input:Q.value,inst:Y,continue:!X.abort})}}),u9=E("$ZodCheckStringFormat",(Y,X)=>{var J,Q;if(w0.init(Y,X),Y._zod.onattach.push(($)=>{let G=$._zod.bag;if(G.format=X.format,X.pattern)G.patterns??(G.patterns=new Set),G.patterns.add(X.pattern)}),X.pattern)(J=Y._zod).check??(J.check=($)=>{if(X.pattern.lastIndex=0,X.pattern.test($.value))return;$.issues.push({origin:"string",code:"invalid_format",format:X.format,input:$.value,...X.pattern?{pattern:X.pattern.toString()}:{},inst:Y,continue:!X.abort})});else(Q=Y._zod).check??(Q.check=()=>{})}),IG=E("$ZodCheckRegex",(Y,X)=>{u9.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})}}),SG=E("$ZodCheckLowerCase",(Y,X)=>{X.pattern??(X.pattern=PG),u9.init(Y,X)}),kG=E("$ZodCheckUpperCase",(Y,X)=>{X.pattern??(X.pattern=MG),u9.init(Y,X)}),xG=E("$ZodCheckIncludes",(Y,X)=>{w0.init(Y,X);let J=B1(X.includes),Q=new RegExp(typeof X.position==="number"?`^.{${X.position}}${J}`:J);X.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(X.includes,X.position))return;$.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:X.includes,input:$.value,inst:Y,continue:!X.abort})}}),bG=E("$ZodCheckStartsWith",(Y,X)=>{w0.init(Y,X);let J=new RegExp(`^${B1(X.prefix)}.*`);X.pattern??(X.pattern=J),Y._zod.onattach.push((Q)=>{let $=Q._zod.bag;$.patterns??($.patterns=new Set),$.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})}}),vG=E("$ZodCheckEndsWith",(Y,X)=>{w0.init(Y,X);let J=new RegExp(`.*${B1(X.suffix)}$`);X.pattern??(X.pattern=J),Y._zod.onattach.push((Q)=>{let $=Q._zod.bag;$.patterns??($.patterns=new Set),$.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 hG=E("$ZodCheckOverwrite",(Y,X)=>{w0.init(Y,X),Y._zod.check=(J)=>{J.value=X.tx(J.value)}});class $J{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
57
|
`).filter((G)=>G),Q=Math.min(...J.map((G)=>G.length-G.trimStart().length)),$=J.map((G)=>G.slice(Q)).map((G)=>" ".repeat(this.indent*2)+G);for(let G of $)this.content.push(G)}compile(){let Y=Function,X=this?.args,Q=[...(this?.content??[""]).map(($)=>` ${$}`)];return new Y(...X,Q.join(`
|
|
73
|
-
`))}}var
|
|
58
|
+
`))}}var yG={major:4,minor:1,patch:8};var z0=E("$ZodType",(Y,X)=>{var J;Y??(Y={}),Y._zod.def=X,Y._zod.bag=Y._zod.bag||{},Y._zod.version=yG;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)(J=Y._zod).deferred??(J.deferred=[]),Y._zod.deferred?.push(()=>{Y._zod.run=Y._zod.parse});else{let $=(W,K,H)=>{let U=_1(W),Z;for(let O of K){if(O._zod.def.when){if(!O._zod.def.when(W))continue}else if(U)continue;let N=W.issues.length,V=O._zod.check(W);if(V instanceof Promise&&H?.async===!1)throw new N1;if(Z||V instanceof Promise)Z=(Z??Promise.resolve()).then(async()=>{if(await V,W.issues.length===N)return;if(!U)U=_1(W,N)});else{if(W.issues.length===N)continue;if(!U)U=_1(W,N)}}if(Z)return Z.then(()=>{return W});return W},G=(W,K,H)=>{if(_1(W))return W.aborted=!0,W;let U=$(K,Q,H);if(U instanceof Promise){if(H.async===!1)throw new N1;return U.then((Z)=>Y._zod.parse(Z,H))}return Y._zod.parse(U,H)};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((Z)=>{return G(Z,W,K)});return G(U,W,K)}let H=Y._zod.parse(W,K);if(H instanceof Promise){if(K.async===!1)throw new N1;return H.then((U)=>$(U,Q,K))}return $(H,Q,K)}}Y["~standard"]={validate:($)=>{try{let G=f$(Y,$);return G.success?{value:G.data}:{issues:G.error?.issues}}catch(G){return m$(Y,$).then((W)=>W.success?{value:W.data}:{issues:W.error?.issues})}},vendor:"zod",version:1}}),cY=E("$ZodString",(Y,X)=>{z0.init(Y,X),Y._zod.pattern=[...Y?._zod.bag?.patterns??[]].pop()??OG(Y._zod.bag),Y._zod.parse=(J,Q)=>{if(X.coerce)try{J.value=String(J.value)}catch($){}if(typeof J.value==="string")return J;return J.issues.push({expected:"string",code:"invalid_type",input:J.value,inst:Y}),J}}),U0=E("$ZodStringFormat",(Y,X)=>{u9.init(Y,X),cY.init(Y,X)}),oG=E("$ZodGUID",(Y,X)=>{X.pattern??(X.pattern=JG),U0.init(Y,X)}),nG=E("$ZodUUID",(Y,X)=>{if(X.version){let Q={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[X.version];if(Q===void 0)throw Error(`Invalid UUID version: "${X.version}"`);X.pattern??(X.pattern=YJ(Q))}else X.pattern??(X.pattern=YJ());U0.init(Y,X)}),rG=E("$ZodEmail",(Y,X)=>{X.pattern??(X.pattern=QG),U0.init(Y,X)}),sG=E("$ZodURL",(Y,X)=>{U0.init(Y,X),Y._zod.check=(J)=>{try{let Q=J.value.trim(),$=new URL(Q);if(X.hostname){if(X.hostname.lastIndex=0,!X.hostname.test($.hostname))J.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:HG.source,input:J.value,inst:Y,continue:!X.abort})}if(X.protocol){if(X.protocol.lastIndex=0,!X.protocol.test($.protocol.endsWith(":")?$.protocol.slice(0,-1):$.protocol))J.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:X.protocol.source,input:J.value,inst:Y,continue:!X.abort})}if(X.normalize)J.value=$.href;else J.value=Q;return}catch(Q){J.issues.push({code:"invalid_format",format:"url",input:J.value,inst:Y,continue:!X.abort})}}}),aG=E("$ZodEmoji",(Y,X)=>{X.pattern??(X.pattern=$G()),U0.init(Y,X)}),tG=E("$ZodNanoID",(Y,X)=>{X.pattern??(X.pattern=YG),U0.init(Y,X)}),eG=E("$ZodCUID",(Y,X)=>{X.pattern??(X.pattern=r$),U0.init(Y,X)}),Y2=E("$ZodCUID2",(Y,X)=>{X.pattern??(X.pattern=s$),U0.init(Y,X)}),X2=E("$ZodULID",(Y,X)=>{X.pattern??(X.pattern=a$),U0.init(Y,X)}),J2=E("$ZodXID",(Y,X)=>{X.pattern??(X.pattern=t$),U0.init(Y,X)}),Q2=E("$ZodKSUID",(Y,X)=>{X.pattern??(X.pattern=e$),U0.init(Y,X)}),$2=E("$ZodISODateTime",(Y,X)=>{X.pattern??(X.pattern=FG(X)),U0.init(Y,X)}),G2=E("$ZodISODate",(Y,X)=>{X.pattern??(X.pattern=VG),U0.init(Y,X)}),W2=E("$ZodISOTime",(Y,X)=>{X.pattern??(X.pattern=BG(X)),U0.init(Y,X)}),z2=E("$ZodISODuration",(Y,X)=>{X.pattern??(X.pattern=XG),U0.init(Y,X)}),K2=E("$ZodIPv4",(Y,X)=>{X.pattern??(X.pattern=GG),U0.init(Y,X),Y._zod.onattach.push((J)=>{let Q=J._zod.bag;Q.format="ipv4"})}),U2=E("$ZodIPv6",(Y,X)=>{X.pattern??(X.pattern=WG),U0.init(Y,X),Y._zod.onattach.push((J)=>{let Q=J._zod.bag;Q.format="ipv6"}),Y._zod.check=(J)=>{try{new URL(`http://[${J.value}]`)}catch{J.issues.push({code:"invalid_format",format:"ipv6",input:J.value,inst:Y,continue:!X.abort})}}}),H2=E("$ZodCIDRv4",(Y,X)=>{X.pattern??(X.pattern=zG),U0.init(Y,X)}),Z2=E("$ZodCIDRv6",(Y,X)=>{X.pattern??(X.pattern=KG),U0.init(Y,X),Y._zod.check=(J)=>{let Q=J.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{J.issues.push({code:"invalid_format",format:"cidrv6",input:J.value,inst:Y,continue:!X.abort})}}});function L2(Y){if(Y==="")return!0;if(Y.length%4!==0)return!1;try{return atob(Y),!0}catch{return!1}}var V2=E("$ZodBase64",(Y,X)=>{X.pattern??(X.pattern=UG),U0.init(Y,X),Y._zod.onattach.push((J)=>{J._zod.bag.contentEncoding="base64"}),Y._zod.check=(J)=>{if(L2(J.value))return;J.issues.push({code:"invalid_format",format:"base64",input:J.value,inst:Y,continue:!X.abort})}});function dZ(Y){if(!XJ.test(Y))return!1;let X=Y.replace(/[-_]/g,(Q)=>Q==="-"?"+":"/"),J=X.padEnd(Math.ceil(X.length/4)*4,"=");return L2(J)}var N2=E("$ZodBase64URL",(Y,X)=>{X.pattern??(X.pattern=XJ),U0.init(Y,X),Y._zod.onattach.push((J)=>{J._zod.bag.contentEncoding="base64url"}),Y._zod.check=(J)=>{if(dZ(J.value))return;J.issues.push({code:"invalid_format",format:"base64url",input:J.value,inst:Y,continue:!X.abort})}}),B2=E("$ZodE164",(Y,X)=>{X.pattern??(X.pattern=ZG),U0.init(Y,X)});function iZ(Y,X=null){try{let J=Y.split(".");if(J.length!==3)return!1;let[Q]=J;if(!Q)return!1;let $=JSON.parse(atob(Q));if("typ"in $&&$?.typ!=="JWT")return!1;if(!$.alg)return!1;if(X&&(!("alg"in $)||$.alg!==X))return!1;return!0}catch{return!1}}var F2=E("$ZodJWT",(Y,X)=>{U0.init(Y,X),Y._zod.check=(J)=>{if(iZ(J.value,X.alg))return;J.issues.push({code:"invalid_format",format:"jwt",input:J.value,inst:Y,continue:!X.abort})}});var WJ=E("$ZodNumber",(Y,X)=>{z0.init(Y,X),Y._zod.pattern=Y._zod.bag.pattern??qG,Y._zod.parse=(J,Q)=>{if(X.coerce)try{J.value=Number(J.value)}catch(W){}let $=J.value;if(typeof $==="number"&&!Number.isNaN($)&&Number.isFinite($))return J;let G=typeof $==="number"?Number.isNaN($)?"NaN":!Number.isFinite($)?"Infinity":void 0:void 0;return J.issues.push({expected:"number",code:"invalid_type",input:$,inst:Y,...G?{received:G}:{}}),J}}),O2=E("$ZodNumber",(Y,X)=>{RG.init(Y,X),WJ.init(Y,X)}),j2=E("$ZodBoolean",(Y,X)=>{z0.init(Y,X),Y._zod.pattern=DG,Y._zod.parse=(J,Q)=>{if(X.coerce)try{J.value=Boolean(J.value)}catch(G){}let $=J.value;if(typeof $==="boolean")return J;return J.issues.push({expected:"boolean",code:"invalid_type",input:$,inst:Y}),J}});var q2=E("$ZodNull",(Y,X)=>{z0.init(Y,X),Y._zod.pattern=EG,Y._zod.values=new Set([null]),Y._zod.parse=(J,Q)=>{let $=J.value;if($===null)return J;return J.issues.push({expected:"null",code:"invalid_type",input:$,inst:Y}),J}});var D2=E("$ZodUnknown",(Y,X)=>{z0.init(Y,X),Y._zod.parse=(J)=>J}),E2=E("$ZodNever",(Y,X)=>{z0.init(Y,X),Y._zod.parse=(J,Q)=>{return J.issues.push({expected:"never",code:"invalid_type",input:J.value,inst:Y}),J}});function fG(Y,X,J){if(Y.issues.length)X.issues.push(...F1(J,Y.issues));X.value[J]=Y.value}var P2=E("$ZodArray",(Y,X)=>{z0.init(Y,X),Y._zod.parse=(J,Q)=>{let $=J.value;if(!Array.isArray($))return J.issues.push({expected:"array",code:"invalid_type",input:$,inst:Y}),J;J.value=Array($.length);let G=[];for(let W=0;W<$.length;W++){let K=$[W],H=X.element._zod.run({value:K,issues:[]},Q);if(H instanceof Promise)G.push(H.then((U)=>fG(U,J,W)));else fG(H,J,W)}if(G.length)return Promise.all(G).then(()=>J);return J}});function mY(Y,X,J,Q){if(Y.issues.length)X.issues.push(...F1(J,Y.issues));if(Y.value===void 0){if(J in Q)X.value[J]=void 0}else X.value[J]=Y.value}function M2(Y){let X=Object.keys(Y.shape);for(let Q of X)if(!Y.shape?.[Q]?._zod?.traits?.has("$ZodType"))throw Error(`Invalid element at key "${Q}": expected a Zod schema`);let J=aX(Y.shape);return{...Y,keys:X,keySet:new Set(X),numKeys:X.length,optionalKeys:new Set(J)}}function w2(Y,X,J,Q,$,G){let W=[],K=$.keySet,H=$.catchall._zod,U=H.def.type;for(let Z of Object.keys(X)){if(K.has(Z))continue;if(U==="never"){W.push(Z);continue}let O=H.run({value:X[Z],issues:[]},Q);if(O instanceof Promise)Y.push(O.then((N)=>mY(N,J,Z,X)));else mY(O,J,Z,X)}if(W.length)J.issues.push({code:"unrecognized_keys",keys:W,input:X,inst:G});if(!Y.length)return J;return Promise.all(Y).then(()=>{return J})}var oZ=E("$ZodObject",(Y,X)=>{z0.init(Y,X);let J=U9(()=>M2(X));Y0(Y._zod,"propValues",()=>{let W=X.shape,K={};for(let H in W){let U=W[H]._zod;if(U.values){K[H]??(K[H]=new Set);for(let Z of U.values)K[H].add(Z)}}return K});let Q=l1,$=X.catchall,G;Y._zod.parse=(W,K)=>{G??(G=J.value);let H=W.value;if(!Q(H))return W.issues.push({expected:"object",code:"invalid_type",input:H,inst:Y}),W;W.value={};let U=[],Z=G.shape;for(let O of G.keys){let V=Z[O]._zod.run({value:H[O],issues:[]},K);if(V instanceof Promise)U.push(V.then((q)=>mY(q,W,O,H)));else mY(V,W,O,H)}if(!$)return U.length?Promise.all(U).then(()=>W):W;return w2(U,H,W,K,J.value,Y)}}),A2=E("$ZodObjectJIT",(Y,X)=>{oZ.init(Y,X);let J=Y._zod.parse,Q=U9(()=>M2(X)),$=(N)=>{let V=new $J(["shape","payload","ctx"]),q=Q.value,T=(P)=>{let b=xY(P);return`shape[${b}]._zod.run({ value: input[${b}], issues: [] }, ctx)`};V.write("const input = payload.value;");let S=Object.create(null),m=0;for(let P of q.keys)S[P]=`key_${m++}`;V.write("const newResult = {};");for(let P of q.keys){let b=S[P],y=xY(P);V.write(`const ${b} = ${T(P)};`),V.write(`
|
|
74
59
|
if (${b}.issues.length) {
|
|
75
60
|
payload.issues = payload.issues.concat(${b}.issues.map(iss => ({
|
|
76
61
|
...iss,
|
|
77
|
-
path: iss.path ? [${
|
|
62
|
+
path: iss.path ? [${y}, ...iss.path] : [${y}]
|
|
78
63
|
})));
|
|
79
64
|
}
|
|
80
65
|
|
|
81
66
|
|
|
82
67
|
if (${b}.value === undefined) {
|
|
83
|
-
if (${
|
|
84
|
-
newResult[${
|
|
68
|
+
if (${y} in input) {
|
|
69
|
+
newResult[${y}] = undefined;
|
|
85
70
|
}
|
|
86
71
|
} else {
|
|
87
|
-
newResult[${
|
|
72
|
+
newResult[${y}] = ${b}.value;
|
|
88
73
|
}
|
|
89
74
|
|
|
90
|
-
`)}V.write("payload.value = newResult;"),V.write("return payload;");let I=V.compile();return(E,b)=>I(N,E,b)},G,W=l1,K=!bY.jitless,U=K&&eX.value,L=X.catchall,F;Y._zod.parse=(N,V)=>{F??(F=Q.value);let j=N.value;if(!W(j))return N.issues.push({expected:"object",code:"invalid_type",input:j,inst:Y}),N;if(K&&U&&V?.async===!1&&V.jitless!==!0){if(!G)G=$(X.shape);if(N=G(N,V),!L)return N;return S2([],j,N,V,F,Y)}return J(N,V)}});function oG(Y,X,J,Q){for(let G of Y)if(G.issues.length===0)return X.value=G.value,X;let $=Y.filter((G)=>!_1(G));if($.length===1)return X.value=$[0].value,$[0];return X.issues.push({code:"invalid_union",input:X.value,inst:J,errors:Y.map((G)=>G.issues.map((W)=>t0(W,Q,G1())))}),X}var L8=P("$ZodUnion",(Y,X)=>{K0.init(Y,X),X0(Y._zod,"optin",()=>X.options.some(($)=>$._zod.optin==="optional")?"optional":void 0),X0(Y._zod,"optout",()=>X.options.some(($)=>$._zod.optout==="optional")?"optional":void 0),X0(Y._zod,"values",()=>{if(X.options.every(($)=>$._zod.values))return new Set(X.options.flatMap(($)=>Array.from($._zod.values)));return}),X0(Y._zod,"pattern",()=>{if(X.options.every(($)=>$._zod.pattern)){let $=X.options.map((G)=>G._zod.pattern);return new RegExp(`^(${$.map((G)=>f9(G.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,K=[];for(let Z of X.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 oG(K,$,Y,G);return Promise.all(K).then((Z)=>{return oG(Z,$,Y,G)})}}),x2=P("$ZodDiscriminatedUnion",(Y,X)=>{L8.init(Y,X);let J=Y._zod.parse;X0(Y._zod,"propValues",()=>{let $={};for(let G of X.options){let W=G._zod.propValues;if(!W||Object.keys(W).length===0)throw Error(`Invalid discriminated union option at index "${X.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=K9(()=>{let $=X.options,G=new Map;for(let W of $){let K=W._zod.propValues?.[X.discriminator];if(!K||K.size===0)throw Error(`Invalid discriminated union option at index "${X.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?.[X.discriminator]);if(K)return K._zod.run($,G);if(X.unionFallback)return J($,G);return $.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:X.discriminator,input:W,path:[X.discriminator],inst:Y}),$}}),b2=P("$ZodIntersection",(Y,X)=>{K0.init(Y,X),Y._zod.parse=(J,Q)=>{let $=J.value,G=X.left._zod.run({value:$,issues:[]},Q),W=X.right._zod.run({value:$,issues:[]},Q);if(G instanceof Promise||W instanceof Promise)return Promise.all([G,W]).then(([Z,U])=>{return nG(J,Z,U)});return nG(J,G,W)}});function U8(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(I1(Y)&&I1(X)){let J=Object.keys(X),Q=Object.keys(Y).filter((G)=>J.indexOf(G)!==-1),$={...Y,...X};for(let G of Q){let W=U8(Y[G],X[G]);if(!W.valid)return{valid:!1,mergeErrorPath:[G,...W.mergeErrorPath]};$[G]=W.data}return{valid:!0,data:$}}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 $=Y[Q],G=X[Q],W=U8($,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 nG(Y,X,J){if(X.issues.length)Y.issues.push(...X.issues);if(J.issues.length)Y.issues.push(...J.issues);if(_1(Y))return Y;let Q=U8(X.value,J.value);if(!Q.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(Q.mergeErrorPath)}`);return Y.value=Q.data,Y}var v2=P("$ZodRecord",(Y,X)=>{K0.init(Y,X),Y._zod.parse=(J,Q)=>{let $=J.value;if(!I1($))return J.issues.push({expected:"record",code:"invalid_type",input:$,inst:Y}),J;let G=[];if(X.keyType._zod.values){let W=X.keyType._zod.values;J.value={};for(let Z of W)if(typeof Z==="string"||typeof Z==="number"||typeof Z==="symbol"){let U=X.valueType._zod.run({value:$[Z],issues:[]},Q);if(U instanceof Promise)G.push(U.then((L)=>{if(L.issues.length)J.issues.push(...O1(Z,L.issues));J.value[Z]=L.value}));else{if(U.issues.length)J.issues.push(...O1(Z,U.issues));J.value[Z]=U.value}}let K;for(let Z in $)if(!W.has(Z))K=K??[],K.push(Z);if(K&&K.length>0)J.issues.push({code:"unrecognized_keys",input:$,inst:Y,keys:K})}else{J.value={};for(let W of Reflect.ownKeys($)){if(W==="__proto__")continue;let K=X.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){J.issues.push({code:"invalid_key",origin:"record",issues:K.issues.map((U)=>t0(U,Q,G1())),input:W,path:[W],inst:Y}),J.value[K.value]=K.value;continue}let Z=X.valueType._zod.run({value:$[W],issues:[]},Q);if(Z instanceof Promise)G.push(Z.then((U)=>{if(U.issues.length)J.issues.push(...O1(W,U.issues));J.value[K.value]=U.value}));else{if(Z.issues.length)J.issues.push(...O1(W,Z.issues));J.value[K.value]=Z.value}}}if(G.length)return Promise.all(G).then(()=>J);return J}});var h2=P("$ZodEnum",(Y,X)=>{K0.init(Y,X);let J=g9(X.entries),Q=new Set(J);Y._zod.values=Q,Y._zod.pattern=new RegExp(`^(${J.filter(($)=>Y8.has(typeof $)).map(($)=>typeof $==="string"?F1($):$.toString()).join("|")})$`),Y._zod.parse=($,G)=>{let W=$.value;if(Q.has(W))return $;return $.issues.push({code:"invalid_value",values:J,input:W,inst:Y}),$}}),g2=P("$ZodLiteral",(Y,X)=>{if(K0.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"?F1(J):J?F1(J.toString()):String(J)).join("|")})$`),Y._zod.parse=(J,Q)=>{let $=J.value;if(Y._zod.values.has($))return J;return J.issues.push({code:"invalid_value",values:X.values,input:$,inst:Y}),J}});var y2=P("$ZodTransform",(Y,X)=>{K0.init(Y,X),Y._zod.parse=(J,Q)=>{if(Q.direction==="backward")throw new v9(Y.constructor.name);let $=X.transform(J.value,J);if(Q.async)return($ instanceof Promise?$:Promise.resolve($)).then((W)=>{return J.value=W,J});if($ instanceof Promise)throw new q1;return J.value=$,J}});function rG(Y,X){if(Y.issues.length&&X===void 0)return{issues:[],value:void 0};return Y}var f2=P("$ZodOptional",(Y,X)=>{K0.init(Y,X),Y._zod.optin="optional",Y._zod.optout="optional",X0(Y._zod,"values",()=>{return X.innerType._zod.values?new Set([...X.innerType._zod.values,void 0]):void 0}),X0(Y._zod,"pattern",()=>{let J=X.innerType._zod.pattern;return J?new RegExp(`^(${f9(J.source)})?$`):void 0}),Y._zod.parse=(J,Q)=>{if(X.innerType._zod.optin==="optional"){let $=X.innerType._zod.run(J,Q);if($ instanceof Promise)return $.then((G)=>rG(G,J.value));return rG($,J.value)}if(J.value===void 0)return J;return X.innerType._zod.run(J,Q)}}),m2=P("$ZodNullable",(Y,X)=>{K0.init(Y,X),X0(Y._zod,"optin",()=>X.innerType._zod.optin),X0(Y._zod,"optout",()=>X.innerType._zod.optout),X0(Y._zod,"pattern",()=>{let J=X.innerType._zod.pattern;return J?new RegExp(`^(${f9(J.source)}|null)$`):void 0}),X0(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)}}),u2=P("$ZodDefault",(Y,X)=>{K0.init(Y,X),Y._zod.optin="optional",X0(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 $=X.innerType._zod.run(J,Q);if($ instanceof Promise)return $.then((G)=>sG(G,X));return sG($,X)}});function sG(Y,X){if(Y.value===void 0)Y.value=X.defaultValue;return Y}var c2=P("$ZodPrefault",(Y,X)=>{K0.init(Y,X),Y._zod.optin="optional",X0(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)}}),p2=P("$ZodNonOptional",(Y,X)=>{K0.init(Y,X),X0(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 $=X.innerType._zod.run(J,Q);if($ instanceof Promise)return $.then((G)=>aG(G,Y));return aG($,Y)}});function aG(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 l2=P("$ZodCatch",(Y,X)=>{K0.init(Y,X),X0(Y._zod,"optin",()=>X.innerType._zod.optin),X0(Y._zod,"optout",()=>X.innerType._zod.optout),X0(Y._zod,"values",()=>X.innerType._zod.values),Y._zod.parse=(J,Q)=>{if(Q.direction==="backward")return X.innerType._zod.run(J,Q);let $=X.innerType._zod.run(J,Q);if($ instanceof Promise)return $.then((G)=>{if(J.value=G.value,G.issues.length)J.value=X.catchValue({...J,error:{issues:G.issues.map((W)=>t0(W,Q,G1()))},input:J.value}),J.issues=[];return J});if(J.value=$.value,$.issues.length)J.value=X.catchValue({...J,error:{issues:$.issues.map((G)=>t0(G,Q,G1()))},input:J.value}),J.issues=[];return J}});var d2=P("$ZodPipe",(Y,X)=>{K0.init(Y,X),X0(Y._zod,"values",()=>X.in._zod.values),X0(Y._zod,"optin",()=>X.in._zod.optin),X0(Y._zod,"optout",()=>X.out._zod.optout),X0(Y._zod,"propValues",()=>X.in._zod.propValues),Y._zod.parse=(J,Q)=>{if(Q.direction==="backward"){let G=X.out._zod.run(J,Q);if(G instanceof Promise)return G.then((W)=>uY(W,X.in,Q));return uY(G,X.in,Q)}let $=X.in._zod.run(J,Q);if($ instanceof Promise)return $.then((G)=>uY(G,X.out,Q));return uY($,X.out,Q)}});function uY(Y,X,J){if(Y.issues.length)return Y.aborted=!0,Y;return X._zod.run({value:Y.value,issues:Y.issues},J)}var i2=P("$ZodReadonly",(Y,X)=>{K0.init(Y,X),X0(Y._zod,"propValues",()=>X.innerType._zod.propValues),X0(Y._zod,"values",()=>X.innerType._zod.values),X0(Y._zod,"optin",()=>X.innerType._zod.optin),X0(Y._zod,"optout",()=>X.innerType._zod.optout),Y._zod.parse=(J,Q)=>{if(Q.direction==="backward")return X.innerType._zod.run(J,Q);let $=X.innerType._zod.run(J,Q);if($ instanceof Promise)return $.then(tG);return tG($)}});function tG(Y){return Y.value=Object.freeze(Y.value),Y}var o2=P("$ZodLazy",(Y,X)=>{K0.init(Y,X),X0(Y._zod,"innerType",()=>X.getter()),X0(Y._zod,"pattern",()=>Y._zod.innerType._zod.pattern),X0(Y._zod,"propValues",()=>Y._zod.innerType._zod.propValues),X0(Y._zod,"optin",()=>Y._zod.innerType._zod.optin??void 0),X0(Y._zod,"optout",()=>Y._zod.innerType._zod.optout??void 0),Y._zod.parse=(J,Q)=>{return Y._zod.innerType._zod.run(J,Q)}}),n2=P("$ZodCustom",(Y,X)=>{w0.init(Y,X),K0.init(Y,X),Y._zod.parse=(J,Q)=>{return J},Y._zod.check=(J)=>{let Q=J.value,$=X.fn(Q);if($ instanceof Promise)return $.then((G)=>eG(G,J,Q,Y));eG($,J,Q,Y);return}});function eG(Y,X,J,Q){if(!Y){let $={code:"custom",input:J,inst:Q,path:[...Q._zod.def.path??[]],continue:!Q._zod.def.abort};if(Q._zod.def.params)$.params=Q._zod.def.params;X.issues.push(U9($))}}var f6=Symbol("ZodOutput"),m6=Symbol("ZodInput");class lY{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 zH(){return new lY}var d1=zH();function r2(Y,X){return new Y({type:"string",...i(X)})}function s2(Y,X){return new Y({type:"string",format:"email",check:"string_format",abort:!1,...i(X)})}function H8(Y,X){return new Y({type:"string",format:"guid",check:"string_format",abort:!1,...i(X)})}function a2(Y,X){return new Y({type:"string",format:"uuid",check:"string_format",abort:!1,...i(X)})}function t2(Y,X){return new Y({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...i(X)})}function e2(Y,X){return new Y({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...i(X)})}function Y7(Y,X){return new Y({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...i(X)})}function X7(Y,X){return new Y({type:"string",format:"url",check:"string_format",abort:!1,...i(X)})}function J7(Y,X){return new Y({type:"string",format:"emoji",check:"string_format",abort:!1,...i(X)})}function Q7(Y,X){return new Y({type:"string",format:"nanoid",check:"string_format",abort:!1,...i(X)})}function $7(Y,X){return new Y({type:"string",format:"cuid",check:"string_format",abort:!1,...i(X)})}function G7(Y,X){return new Y({type:"string",format:"cuid2",check:"string_format",abort:!1,...i(X)})}function W7(Y,X){return new Y({type:"string",format:"ulid",check:"string_format",abort:!1,...i(X)})}function z7(Y,X){return new Y({type:"string",format:"xid",check:"string_format",abort:!1,...i(X)})}function K7(Y,X){return new Y({type:"string",format:"ksuid",check:"string_format",abort:!1,...i(X)})}function U7(Y,X){return new Y({type:"string",format:"ipv4",check:"string_format",abort:!1,...i(X)})}function Z7(Y,X){return new Y({type:"string",format:"ipv6",check:"string_format",abort:!1,...i(X)})}function L7(Y,X){return new Y({type:"string",format:"cidrv4",check:"string_format",abort:!1,...i(X)})}function H7(Y,X){return new Y({type:"string",format:"cidrv6",check:"string_format",abort:!1,...i(X)})}function V7(Y,X){return new Y({type:"string",format:"base64",check:"string_format",abort:!1,...i(X)})}function N7(Y,X){return new Y({type:"string",format:"base64url",check:"string_format",abort:!1,...i(X)})}function B7(Y,X){return new Y({type:"string",format:"e164",check:"string_format",abort:!1,...i(X)})}function q7(Y,X){return new Y({type:"string",format:"jwt",check:"string_format",abort:!1,...i(X)})}function F7(Y,X){return new Y({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...i(X)})}function O7(Y,X){return new Y({type:"string",format:"date",check:"string_format",...i(X)})}function j7(Y,X){return new Y({type:"string",format:"time",check:"string_format",precision:null,...i(X)})}function D7(Y,X){return new Y({type:"string",format:"duration",check:"string_format",...i(X)})}function P7(Y,X){return new Y({type:"number",checks:[],...i(X)})}function E7(Y,X){return new Y({type:"number",check:"number_format",abort:!1,format:"safeint",...i(X)})}function M7(Y,X){return new Y({type:"boolean",...i(X)})}function w7(Y,X){return new Y({type:"null",...i(X)})}function A7(Y){return new Y({type:"unknown"})}function T7(Y,X){return new Y({type:"never",...i(X)})}function dY(Y,X){return new W8({check:"less_than",...i(X),value:Y,inclusive:!1})}function l9(Y,X){return new W8({check:"less_than",...i(X),value:Y,inclusive:!0})}function iY(Y,X){return new z8({check:"greater_than",...i(X),value:Y,inclusive:!1})}function d9(Y,X){return new z8({check:"greater_than",...i(X),value:Y,inclusive:!0})}function oY(Y,X){return new kG({check:"multiple_of",...i(X),value:Y})}function nY(Y,X){return new bG({check:"max_length",...i(X),maximum:Y})}function Z9(Y,X){return new vG({check:"min_length",...i(X),minimum:Y})}function rY(Y,X){return new hG({check:"length_equals",...i(X),length:Y})}function V8(Y,X){return new gG({check:"string_format",format:"regex",...i(X),pattern:Y})}function N8(Y){return new yG({check:"string_format",format:"lowercase",...i(Y)})}function B8(Y){return new fG({check:"string_format",format:"uppercase",...i(Y)})}function q8(Y,X){return new mG({check:"string_format",format:"includes",...i(X),includes:Y})}function F8(Y,X){return new uG({check:"string_format",format:"starts_with",...i(X),prefix:Y})}function O8(Y,X){return new cG({check:"string_format",format:"ends_with",...i(X),suffix:Y})}function i1(Y){return new pG({check:"overwrite",tx:Y})}function j8(Y){return i1((X)=>X.normalize(Y))}function D8(){return i1((Y)=>Y.trim())}function P8(){return i1((Y)=>Y.toLowerCase())}function E8(){return i1((Y)=>Y.toUpperCase())}function R7(Y,X,J){return new Y({type:"array",element:X,...i(J)})}function C7(Y,X,J){let Q=i(J);return Q.abort??(Q.abort=!0),new Y({type:"custom",check:"custom",fn:X,...Q})}function I7(Y,X,J){return new Y({type:"custom",check:"custom",fn:X,...i(J)})}function _7(Y){let X=KH((J)=>{return J.addIssue=(Q)=>{if(typeof Q==="string")J.issues.push(U9(Q,J.value,X._zod.def));else{let $=Q;if($.fatal)$.continue=!1;$.code??($.code="custom"),$.input??($.input=J.value),$.inst??($.inst=X),$.continue??($.continue=!X._zod.def.abort),J.issues.push(U9($))}},Y(J.value,J)});return X}function KH(Y,X){let J=new w0({check:"custom",...i(X)});return J._zod.check=Y,J}class M8{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,X={path:[],schemaPath:[]}){var J;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++,X.schemaPath.includes(Y))G.cycle=X.path;return G.schema}let W={schema:{},count:1,cycle:void 0,path:X.path};this.seen.set(Y,W);let K=Y._zod.toJSONSchema?.();if(K)W.schema=K;else{let L={...X,schemaPath:[...X.schemaPath,Y],path:X.path},F=Y._zod.parent;if(F)W.ref=F,this.process(F,L),this.seen.get(F).isParent=!0;else{let N=W.schema;switch(Q.type){case"string":{let V=N;V.type="string";let{minimum:j,maximum:R,format:S,patterns:u,contentEncoding:I}=Y._zod.bag;if(typeof j==="number")V.minLength=j;if(typeof R==="number")V.maxLength=R;if(S){if(V.format=$[S]??S,V.format==="")delete V.format}if(I)V.contentEncoding=I;if(u&&u.size>0){let E=[...u];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:j,maximum:R,format:S,multipleOf:u,exclusiveMaximum:I,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 j==="number"){if(V.minimum=j,typeof E==="number"&&this.target!=="draft-4")if(E>=j)delete V.minimum;else delete V.exclusiveMinimum}if(typeof I==="number")if(this.target==="draft-4"||this.target==="openapi-3.0")V.maximum=I,V.exclusiveMaximum=!0;else V.exclusiveMaximum=I;if(typeof R==="number"){if(V.maximum=R,typeof I==="number"&&this.target!=="draft-4")if(I<=R)delete V.maximum;else delete V.exclusiveMaximum}if(typeof u==="number")V.multipleOf=u;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:j,maximum:R}=Y._zod.bag;if(typeof j==="number")V.minItems=j;if(typeof R==="number")V.maxItems=R;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 j=Q.shape;for(let u in j)V.properties[u]=this.process(j[u],{...L,path:[...L.path,"properties",u]});let R=new Set(Object.keys(j)),S=new Set([...R].filter((u)=>{let I=Q.shape[u]._zod;if(this.io==="input")return I.optin===void 0;else return I.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,j=Q.options.map((R,S)=>this.process(R,{...L,path:[...L.path,"anyOf",S]}));V.anyOf=j;break}case"intersection":{let V=N,j=this.process(Q.left,{...L,path:[...L.path,"allOf",0]}),R=this.process(Q.right,{...L,path:[...L.path,"allOf",1]}),S=(I)=>("allOf"in I)&&Object.keys(I).length===1,u=[...S(j)?j.allOf:[j],...S(R)?R.allOf:[R]];V.allOf=u;break}case"tuple":{let V=N;V.type="array";let j=this.target==="draft-2020-12"?"prefixItems":"items",R=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,j,f]})),u=Q.rest?this.process(Q.rest,{...L,path:[...L.path,R,...this.target==="openapi-3.0"?[Q.items.length]:[]]}):null;if(this.target==="draft-2020-12"){if(V.prefixItems=S,u)V.items=u}else if(this.target==="openapi-3.0"){if(V.items={anyOf:S},u)V.items.anyOf.push(u);if(V.minItems=S.length,!u)V.maxItems=S.length}else if(V.items=S,u)V.additionalItems=u;let{minimum:I,maximum:E}=Y._zod.bag;if(typeof I==="number")V.minItems=I;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,j=g9(Q.entries);if(j.every((R)=>typeof R==="number"))V.type="number";if(j.every((R)=>typeof R==="string"))V.type="string";V.enum=j;break}case"literal":{let V=N,j=[];for(let R of Q.values)if(R===void 0){if(this.unrepresentable==="throw")throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof R==="bigint")if(this.unrepresentable==="throw")throw Error("BigInt literals cannot be represented in JSON Schema");else j.push(Number(R));else j.push(R);if(j.length===0);else if(j.length===1){let R=j[0];if(V.type=R===null?"null":typeof R,this.target==="draft-4"||this.target==="openapi-3.0")V.enum=[R];else V.const=R}else{if(j.every((R)=>typeof R==="number"))V.type="number";if(j.every((R)=>typeof R==="string"))V.type="string";if(j.every((R)=>typeof R==="boolean"))V.type="string";if(j.every((R)=>R===null))V.type="null";V.enum=j}break}case"file":{let V=N,j={type:"string",format:"binary",contentEncoding:"binary"},{minimum:R,maximum:S,mime:u}=Y._zod.bag;if(R!==void 0)j.minLength=R;if(S!==void 0)j.maxLength=S;if(u)if(u.length===1)j.contentMediaType=u[0],Object.assign(V,j);else V.anyOf=u.map((I)=>{return{...j,contentMediaType:I}});else Object.assign(V,j);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,j=Y._zod.pattern;if(!j)throw Error("Pattern not found in template literal");V.type="string",V.pattern=j.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)(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 $=(U)=>{let L=this.target==="draft-2020-12"?"$defs":"definitions";if(J.external){let j=J.external.registry.get(U[0])?.id,R=J.external.uri??((u)=>u);if(j)return{ref:R(j)};let S=U[1].defId??U[1].schema.id??`schema${this.counter++}`;return U[1].defId=S,{defId:S,ref:`${R("__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:F,defId:N}=$(U);if(L.def={...L.schema},N)L.defId=N;let V=L.schema;for(let j in V)delete V[j];V.$ref=F};if(J.cycles==="throw")for(let U of this.seen.entries()){let L=U[1];if(L.cycle)throw Error(`Cycle detected: #/${L.cycle?.join("/")}/<root>
|
|
75
|
+
`)}V.write("payload.value = newResult;"),V.write("return payload;");let _=V.compile();return(P,b)=>_(N,P,b)},G,W=l1,K=!kY.jitless,U=K&&rX.value,Z=X.catchall,O;Y._zod.parse=(N,V)=>{O??(O=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=$(X.shape);if(N=G(N,V),!Z)return N;return w2([],q,N,V,O,Y)}return J(N,V)}});function mG(Y,X,J,Q){for(let G of Y)if(G.issues.length===0)return X.value=G.value,X;let $=Y.filter((G)=>!_1(G));if($.length===1)return X.value=$[0].value,$[0];return X.issues.push({code:"invalid_union",input:X.value,inst:J,errors:Y.map((G)=>G.issues.map((W)=>a0(W,Q,G1())))}),X}var zJ=E("$ZodUnion",(Y,X)=>{z0.init(Y,X),Y0(Y._zod,"optin",()=>X.options.some(($)=>$._zod.optin==="optional")?"optional":void 0),Y0(Y._zod,"optout",()=>X.options.some(($)=>$._zod.optout==="optional")?"optional":void 0),Y0(Y._zod,"values",()=>{if(X.options.every(($)=>$._zod.values))return new Set(X.options.flatMap(($)=>Array.from($._zod.values)));return}),Y0(Y._zod,"pattern",()=>{if(X.options.every(($)=>$._zod.pattern)){let $=X.options.map((G)=>G._zod.pattern);return new RegExp(`^(${$.map((G)=>y9(G.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,K=[];for(let H of X.options){let U=H._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 mG(K,$,Y,G);return Promise.all(K).then((H)=>{return mG(H,$,Y,G)})}}),R2=E("$ZodDiscriminatedUnion",(Y,X)=>{zJ.init(Y,X);let J=Y._zod.parse;Y0(Y._zod,"propValues",()=>{let $={};for(let G of X.options){let W=G._zod.propValues;if(!W||Object.keys(W).length===0)throw Error(`Invalid discriminated union option at index "${X.options.indexOf(G)}"`);for(let[K,H]of Object.entries(W)){if(!$[K])$[K]=new Set;for(let U of H)$[K].add(U)}}return $});let Q=U9(()=>{let $=X.options,G=new Map;for(let W of $){let K=W._zod.propValues?.[X.discriminator];if(!K||K.size===0)throw Error(`Invalid discriminated union option at index "${X.options.indexOf(W)}"`);for(let H of K){if(G.has(H))throw Error(`Duplicate discriminator value "${String(H)}"`);G.set(H,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?.[X.discriminator]);if(K)return K._zod.run($,G);if(X.unionFallback)return J($,G);return $.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:X.discriminator,input:W,path:[X.discriminator],inst:Y}),$}}),T2=E("$ZodIntersection",(Y,X)=>{z0.init(Y,X),Y._zod.parse=(J,Q)=>{let $=J.value,G=X.left._zod.run({value:$,issues:[]},Q),W=X.right._zod.run({value:$,issues:[]},Q);if(G instanceof Promise||W instanceof Promise)return Promise.all([G,W]).then(([H,U])=>{return cG(J,H,U)});return cG(J,G,W)}});function GJ(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(C1(Y)&&C1(X)){let J=Object.keys(X),Q=Object.keys(Y).filter((G)=>J.indexOf(G)!==-1),$={...Y,...X};for(let G of Q){let W=GJ(Y[G],X[G]);if(!W.valid)return{valid:!1,mergeErrorPath:[G,...W.mergeErrorPath]};$[G]=W.data}return{valid:!0,data:$}}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 $=Y[Q],G=X[Q],W=GJ($,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 cG(Y,X,J){if(X.issues.length)Y.issues.push(...X.issues);if(J.issues.length)Y.issues.push(...J.issues);if(_1(Y))return Y;let Q=GJ(X.value,J.value);if(!Q.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(Q.mergeErrorPath)}`);return Y.value=Q.data,Y}var C2=E("$ZodRecord",(Y,X)=>{z0.init(Y,X),Y._zod.parse=(J,Q)=>{let $=J.value;if(!C1($))return J.issues.push({expected:"record",code:"invalid_type",input:$,inst:Y}),J;let G=[];if(X.keyType._zod.values){let W=X.keyType._zod.values;J.value={};for(let H of W)if(typeof H==="string"||typeof H==="number"||typeof H==="symbol"){let U=X.valueType._zod.run({value:$[H],issues:[]},Q);if(U instanceof Promise)G.push(U.then((Z)=>{if(Z.issues.length)J.issues.push(...F1(H,Z.issues));J.value[H]=Z.value}));else{if(U.issues.length)J.issues.push(...F1(H,U.issues));J.value[H]=U.value}}let K;for(let H in $)if(!W.has(H))K=K??[],K.push(H);if(K&&K.length>0)J.issues.push({code:"unrecognized_keys",input:$,inst:Y,keys:K})}else{J.value={};for(let W of Reflect.ownKeys($)){if(W==="__proto__")continue;let K=X.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){J.issues.push({code:"invalid_key",origin:"record",issues:K.issues.map((U)=>a0(U,Q,G1())),input:W,path:[W],inst:Y}),J.value[K.value]=K.value;continue}let H=X.valueType._zod.run({value:$[W],issues:[]},Q);if(H instanceof Promise)G.push(H.then((U)=>{if(U.issues.length)J.issues.push(...F1(W,U.issues));J.value[K.value]=U.value}));else{if(H.issues.length)J.issues.push(...F1(W,H.issues));J.value[K.value]=H.value}}}if(G.length)return Promise.all(G).then(()=>J);return J}});var _2=E("$ZodEnum",(Y,X)=>{z0.init(Y,X);let J=h9(X.entries),Q=new Set(J);Y._zod.values=Q,Y._zod.pattern=new RegExp(`^(${J.filter(($)=>sX.has(typeof $)).map(($)=>typeof $==="string"?B1($):$.toString()).join("|")})$`),Y._zod.parse=($,G)=>{let W=$.value;if(Q.has(W))return $;return $.issues.push({code:"invalid_value",values:J,input:W,inst:Y}),$}}),I2=E("$ZodLiteral",(Y,X)=>{if(z0.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"?B1(J):J?B1(J.toString()):String(J)).join("|")})$`),Y._zod.parse=(J,Q)=>{let $=J.value;if(Y._zod.values.has($))return J;return J.issues.push({code:"invalid_value",values:X.values,input:$,inst:Y}),J}});var S2=E("$ZodTransform",(Y,X)=>{z0.init(Y,X),Y._zod.parse=(J,Q)=>{if(Q.direction==="backward")throw new b9(Y.constructor.name);let $=X.transform(J.value,J);if(Q.async)return($ instanceof Promise?$:Promise.resolve($)).then((W)=>{return J.value=W,J});if($ instanceof Promise)throw new N1;return J.value=$,J}});function uG(Y,X){if(Y.issues.length&&X===void 0)return{issues:[],value:void 0};return Y}var k2=E("$ZodOptional",(Y,X)=>{z0.init(Y,X),Y._zod.optin="optional",Y._zod.optout="optional",Y0(Y._zod,"values",()=>{return X.innerType._zod.values?new Set([...X.innerType._zod.values,void 0]):void 0}),Y0(Y._zod,"pattern",()=>{let J=X.innerType._zod.pattern;return J?new RegExp(`^(${y9(J.source)})?$`):void 0}),Y._zod.parse=(J,Q)=>{if(X.innerType._zod.optin==="optional"){let $=X.innerType._zod.run(J,Q);if($ instanceof Promise)return $.then((G)=>uG(G,J.value));return uG($,J.value)}if(J.value===void 0)return J;return X.innerType._zod.run(J,Q)}}),x2=E("$ZodNullable",(Y,X)=>{z0.init(Y,X),Y0(Y._zod,"optin",()=>X.innerType._zod.optin),Y0(Y._zod,"optout",()=>X.innerType._zod.optout),Y0(Y._zod,"pattern",()=>{let J=X.innerType._zod.pattern;return J?new RegExp(`^(${y9(J.source)}|null)$`):void 0}),Y0(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)}}),b2=E("$ZodDefault",(Y,X)=>{z0.init(Y,X),Y._zod.optin="optional",Y0(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 $=X.innerType._zod.run(J,Q);if($ instanceof Promise)return $.then((G)=>pG(G,X));return pG($,X)}});function pG(Y,X){if(Y.value===void 0)Y.value=X.defaultValue;return Y}var v2=E("$ZodPrefault",(Y,X)=>{z0.init(Y,X),Y._zod.optin="optional",Y0(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)}}),h2=E("$ZodNonOptional",(Y,X)=>{z0.init(Y,X),Y0(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 $=X.innerType._zod.run(J,Q);if($ instanceof Promise)return $.then((G)=>lG(G,Y));return lG($,Y)}});function lG(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 g2=E("$ZodCatch",(Y,X)=>{z0.init(Y,X),Y0(Y._zod,"optin",()=>X.innerType._zod.optin),Y0(Y._zod,"optout",()=>X.innerType._zod.optout),Y0(Y._zod,"values",()=>X.innerType._zod.values),Y._zod.parse=(J,Q)=>{if(Q.direction==="backward")return X.innerType._zod.run(J,Q);let $=X.innerType._zod.run(J,Q);if($ instanceof Promise)return $.then((G)=>{if(J.value=G.value,G.issues.length)J.value=X.catchValue({...J,error:{issues:G.issues.map((W)=>a0(W,Q,G1()))},input:J.value}),J.issues=[];return J});if(J.value=$.value,$.issues.length)J.value=X.catchValue({...J,error:{issues:$.issues.map((G)=>a0(G,Q,G1()))},input:J.value}),J.issues=[];return J}});var y2=E("$ZodPipe",(Y,X)=>{z0.init(Y,X),Y0(Y._zod,"values",()=>X.in._zod.values),Y0(Y._zod,"optin",()=>X.in._zod.optin),Y0(Y._zod,"optout",()=>X.out._zod.optout),Y0(Y._zod,"propValues",()=>X.in._zod.propValues),Y._zod.parse=(J,Q)=>{if(Q.direction==="backward"){let G=X.out._zod.run(J,Q);if(G instanceof Promise)return G.then((W)=>fY(W,X.in,Q));return fY(G,X.in,Q)}let $=X.in._zod.run(J,Q);if($ instanceof Promise)return $.then((G)=>fY(G,X.out,Q));return fY($,X.out,Q)}});function fY(Y,X,J){if(Y.issues.length)return Y.aborted=!0,Y;return X._zod.run({value:Y.value,issues:Y.issues},J)}var f2=E("$ZodReadonly",(Y,X)=>{z0.init(Y,X),Y0(Y._zod,"propValues",()=>X.innerType._zod.propValues),Y0(Y._zod,"values",()=>X.innerType._zod.values),Y0(Y._zod,"optin",()=>X.innerType._zod.optin),Y0(Y._zod,"optout",()=>X.innerType._zod.optout),Y._zod.parse=(J,Q)=>{if(Q.direction==="backward")return X.innerType._zod.run(J,Q);let $=X.innerType._zod.run(J,Q);if($ instanceof Promise)return $.then(dG);return dG($)}});function dG(Y){return Y.value=Object.freeze(Y.value),Y}var m2=E("$ZodLazy",(Y,X)=>{z0.init(Y,X),Y0(Y._zod,"innerType",()=>X.getter()),Y0(Y._zod,"pattern",()=>Y._zod.innerType._zod.pattern),Y0(Y._zod,"propValues",()=>Y._zod.innerType._zod.propValues),Y0(Y._zod,"optin",()=>Y._zod.innerType._zod.optin??void 0),Y0(Y._zod,"optout",()=>Y._zod.innerType._zod.optout??void 0),Y._zod.parse=(J,Q)=>{return Y._zod.innerType._zod.run(J,Q)}}),c2=E("$ZodCustom",(Y,X)=>{w0.init(Y,X),z0.init(Y,X),Y._zod.parse=(J,Q)=>{return J},Y._zod.check=(J)=>{let Q=J.value,$=X.fn(Q);if($ instanceof Promise)return $.then((G)=>iG(G,J,Q,Y));iG($,J,Q,Y);return}});function iG(Y,X,J,Q){if(!Y){let $={code:"custom",input:J,inst:Q,path:[...Q._zod.def.path??[]],continue:!Q._zod.def.abort};if(Q._zod.def.params)$.params=Q._zod.def.params;X.issues.push(H9($))}}var Oq=Symbol("ZodOutput"),jq=Symbol("ZodInput");class uY{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 nZ(){return new uY}var d1=nZ();function u2(Y,X){return new Y({type:"string",...d(X)})}function p2(Y,X){return new Y({type:"string",format:"email",check:"string_format",abort:!1,...d(X)})}function KJ(Y,X){return new Y({type:"string",format:"guid",check:"string_format",abort:!1,...d(X)})}function l2(Y,X){return new Y({type:"string",format:"uuid",check:"string_format",abort:!1,...d(X)})}function d2(Y,X){return new Y({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...d(X)})}function i2(Y,X){return new Y({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...d(X)})}function o2(Y,X){return new Y({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...d(X)})}function n2(Y,X){return new Y({type:"string",format:"url",check:"string_format",abort:!1,...d(X)})}function r2(Y,X){return new Y({type:"string",format:"emoji",check:"string_format",abort:!1,...d(X)})}function s2(Y,X){return new Y({type:"string",format:"nanoid",check:"string_format",abort:!1,...d(X)})}function a2(Y,X){return new Y({type:"string",format:"cuid",check:"string_format",abort:!1,...d(X)})}function t2(Y,X){return new Y({type:"string",format:"cuid2",check:"string_format",abort:!1,...d(X)})}function e2(Y,X){return new Y({type:"string",format:"ulid",check:"string_format",abort:!1,...d(X)})}function Y7(Y,X){return new Y({type:"string",format:"xid",check:"string_format",abort:!1,...d(X)})}function X7(Y,X){return new Y({type:"string",format:"ksuid",check:"string_format",abort:!1,...d(X)})}function J7(Y,X){return new Y({type:"string",format:"ipv4",check:"string_format",abort:!1,...d(X)})}function Q7(Y,X){return new Y({type:"string",format:"ipv6",check:"string_format",abort:!1,...d(X)})}function $7(Y,X){return new Y({type:"string",format:"cidrv4",check:"string_format",abort:!1,...d(X)})}function G7(Y,X){return new Y({type:"string",format:"cidrv6",check:"string_format",abort:!1,...d(X)})}function W7(Y,X){return new Y({type:"string",format:"base64",check:"string_format",abort:!1,...d(X)})}function z7(Y,X){return new Y({type:"string",format:"base64url",check:"string_format",abort:!1,...d(X)})}function K7(Y,X){return new Y({type:"string",format:"e164",check:"string_format",abort:!1,...d(X)})}function U7(Y,X){return new Y({type:"string",format:"jwt",check:"string_format",abort:!1,...d(X)})}function H7(Y,X){return new Y({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...d(X)})}function Z7(Y,X){return new Y({type:"string",format:"date",check:"string_format",...d(X)})}function L7(Y,X){return new Y({type:"string",format:"time",check:"string_format",precision:null,...d(X)})}function V7(Y,X){return new Y({type:"string",format:"duration",check:"string_format",...d(X)})}function N7(Y,X){return new Y({type:"number",checks:[],...d(X)})}function B7(Y,X){return new Y({type:"number",check:"number_format",abort:!1,format:"safeint",...d(X)})}function F7(Y,X){return new Y({type:"boolean",...d(X)})}function O7(Y,X){return new Y({type:"null",...d(X)})}function j7(Y){return new Y({type:"unknown"})}function q7(Y,X){return new Y({type:"never",...d(X)})}function pY(Y,X){return new JJ({check:"less_than",...d(X),value:Y,inclusive:!1})}function p9(Y,X){return new JJ({check:"less_than",...d(X),value:Y,inclusive:!0})}function lY(Y,X){return new QJ({check:"greater_than",...d(X),value:Y,inclusive:!1})}function l9(Y,X){return new QJ({check:"greater_than",...d(X),value:Y,inclusive:!0})}function dY(Y,X){return new AG({check:"multiple_of",...d(X),value:Y})}function iY(Y,X){return new TG({check:"max_length",...d(X),maximum:Y})}function Z9(Y,X){return new CG({check:"min_length",...d(X),minimum:Y})}function oY(Y,X){return new _G({check:"length_equals",...d(X),length:Y})}function UJ(Y,X){return new IG({check:"string_format",format:"regex",...d(X),pattern:Y})}function HJ(Y){return new SG({check:"string_format",format:"lowercase",...d(Y)})}function ZJ(Y){return new kG({check:"string_format",format:"uppercase",...d(Y)})}function LJ(Y,X){return new xG({check:"string_format",format:"includes",...d(X),includes:Y})}function VJ(Y,X){return new bG({check:"string_format",format:"starts_with",...d(X),prefix:Y})}function NJ(Y,X){return new vG({check:"string_format",format:"ends_with",...d(X),suffix:Y})}function i1(Y){return new hG({check:"overwrite",tx:Y})}function BJ(Y){return i1((X)=>X.normalize(Y))}function FJ(){return i1((Y)=>Y.trim())}function OJ(){return i1((Y)=>Y.toLowerCase())}function jJ(){return i1((Y)=>Y.toUpperCase())}function D7(Y,X,J){return new Y({type:"array",element:X,...d(J)})}function E7(Y,X,J){let Q=d(J);return Q.abort??(Q.abort=!0),new Y({type:"custom",check:"custom",fn:X,...Q})}function P7(Y,X,J){return new Y({type:"custom",check:"custom",fn:X,...d(J)})}function M7(Y){let X=rZ((J)=>{return J.addIssue=(Q)=>{if(typeof Q==="string")J.issues.push(H9(Q,J.value,X._zod.def));else{let $=Q;if($.fatal)$.continue=!1;$.code??($.code="custom"),$.input??($.input=J.value),$.inst??($.inst=X),$.continue??($.continue=!X._zod.def.abort),J.issues.push(H9($))}},Y(J.value,J)});return X}function rZ(Y,X){let J=new w0({check:"custom",...d(X)});return J._zod.check=Y,J}class qJ{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,X={path:[],schemaPath:[]}){var J;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++,X.schemaPath.includes(Y))G.cycle=X.path;return G.schema}let W={schema:{},count:1,cycle:void 0,path:X.path};this.seen.set(Y,W);let K=Y._zod.toJSONSchema?.();if(K)W.schema=K;else{let Z={...X,schemaPath:[...X.schemaPath,Y],path:X.path},O=Y._zod.parent;if(O)W.ref=O,this.process(O,Z),this.seen.get(O).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:m,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(m&&m.size>0){let P=[...m];if(P.length===1)V.pattern=P[0].source;else if(P.length>1)W.schema.allOf=[...P.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:m,exclusiveMaximum:_,exclusiveMinimum:P}=Y._zod.bag;if(typeof S==="string"&&S.includes("int"))V.type="integer";else V.type="number";if(typeof P==="number")if(this.target==="draft-4"||this.target==="openapi-3.0")V.minimum=P,V.exclusiveMinimum=!0;else V.exclusiveMinimum=P;if(typeof q==="number"){if(V.minimum=q,typeof P==="number"&&this.target!=="draft-4")if(P>=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 m==="number")V.multipleOf=m;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,{...Z,path:[...Z.path,"items"]});break}case"object":{let V=N;V.type="object",V.properties={};let q=Q.shape;for(let m in q)V.properties[m]=this.process(q[m],{...Z,path:[...Z.path,"properties",m]});let T=new Set(Object.keys(q)),S=new Set([...T].filter((m)=>{let _=Q.shape[m]._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,{...Z,path:[...Z.path,"additionalProperties"]});break}case"union":{let V=N,q=Q.options.map((T,S)=>this.process(T,{...Z,path:[...Z.path,"anyOf",S]}));V.anyOf=q;break}case"intersection":{let V=N,q=this.process(Q.left,{...Z,path:[...Z.path,"allOf",0]}),T=this.process(Q.right,{...Z,path:[...Z.path,"allOf",1]}),S=(_)=>("allOf"in _)&&Object.keys(_).length===1,m=[...S(q)?q.allOf:[q],...S(T)?T.allOf:[T]];V.allOf=m;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,y)=>this.process(b,{...Z,path:[...Z.path,q,y]})),m=Q.rest?this.process(Q.rest,{...Z,path:[...Z.path,T,...this.target==="openapi-3.0"?[Q.items.length]:[]]}):null;if(this.target==="draft-2020-12"){if(V.prefixItems=S,m)V.items=m}else if(this.target==="openapi-3.0"){if(V.items={anyOf:S},m)V.items.anyOf.push(m);if(V.minItems=S.length,!m)V.maxItems=S.length}else if(V.items=S,m)V.additionalItems=m;let{minimum:_,maximum:P}=Y._zod.bag;if(typeof _==="number")V.minItems=_;if(typeof P==="number")V.maxItems=P;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,{...Z,path:[...Z.path,"propertyNames"]});V.additionalProperties=this.process(Q.valueType,{...Z,path:[...Z.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=h9(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:m}=Y._zod.bag;if(T!==void 0)q.minLength=T;if(S!==void 0)q.maxLength=S;if(m)if(m.length===1)q.contentMediaType=m[0],Object.assign(V,q);else V.anyOf=m.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,Z);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,Z),W.ref=Q.innerType;break}case"success":{let V=N;V.type="boolean";break}case"default":{this.process(Q.innerType,Z),W.ref=Q.innerType,N.default=JSON.parse(JSON.stringify(Q.defaultValue));break}case"prefault":{if(this.process(Q.innerType,Z),W.ref=Q.innerType,this.io==="input")N._prefault=JSON.parse(JSON.stringify(Q.defaultValue));break}case"catch":{this.process(Q.innerType,Z),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,Z),W.ref=V;break}case"readonly":{this.process(Q.innerType,Z),W.ref=Q.innerType,N.readOnly=!0;break}case"promise":{this.process(Q.innerType,Z),W.ref=Q.innerType;break}case"optional":{this.process(Q.innerType,Z),W.ref=Q.innerType;break}case"lazy":{let V=Y._zod.innerType;this.process(V,Z),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 H=this.metadataRegistry.get(Y);if(H)Object.assign(W.schema,H);if(this.io==="input"&&q0(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 $=(U)=>{let Z=this.target==="draft-2020-12"?"$defs":"definitions";if(J.external){let q=J.external.registry.get(U[0])?.id,T=J.external.uri??((m)=>m);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")}#/${Z}/${S}`}}if(U[1]===Q)return{ref:"#"};let N=`${"#"}/${Z}/`,V=U[1].schema.id??`__schema${this.counter++}`;return{defId:V,ref:N+V}},G=(U)=>{if(U[1].schema.$ref)return;let Z=U[1],{ref:O,defId:N}=$(U);if(Z.def={...Z.schema},N)Z.defId=N;let V=Z.schema;for(let q in V)delete V[q];V.$ref=O};if(J.cycles==="throw")for(let U of this.seen.entries()){let Z=U[1];if(Z.cycle)throw Error(`Cycle detected: #/${Z.cycle?.join("/")}/<root>
|
|
91
76
|
|
|
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(J.external){let N=J.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(J.reused==="ref"){G(U);continue}}}let W=(U,L)=>{let F=this.seen.get(U),N=F.def??F.schema,V={...N};if(F.ref===null)return;let j=F.ref;if(F.ref=null,j){W(j,L);let R=this.seen.get(j).schema;if(R.$ref&&(L.target==="draft-7"||L.target==="draft-4"||L.target==="openapi-3.0"))N.allOf=N.allOf??[],N.allOf.push(R);else Object.assign(N,R),Object.assign(N,V)}if(!F.isParent)this.override({zodSchema:U,jsonSchema:N,path:F.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(J.external?.uri){let U=J.external.registry.get(Y)?.id;if(!U)throw Error("Schema is missing an `id` property");K.$id=J.external.uri(U)}Object.assign(K,Q.def);let Z=J.external?.defs??{};for(let U of this.seen.entries()){let L=U[1];if(L.def&&L.defId)Z[L.defId]=L.def}if(J.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 S7(Y,X){if(Y instanceof lY){let Q=new M8(X),$={};for(let K of Y._idmap.entries()){let[Z,U]=K;Q.process(U)}let G={},W={registry:Y,uri:X?.uri,defs:$};for(let K of Y._idmap.entries()){let[Z,U]=K;G[Z]=Q.emit(U,{...X,external:W})}if(Object.keys($).length>0){let K=Q.target==="draft-2020-12"?"$defs":"definitions";G.__shared={[K]:$}}return{schemas:G}}let J=new M8(X);return J.process(Y),J.emit(Y,X)}function D0(Y,X){let J=X??{seen:new Set};if(J.seen.has(Y))return!1;J.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,J);case"object":{for(let G in $.shape)if(D0($.shape[G],J))return!0;return!1}case"union":{for(let G of $.options)if(D0(G,J))return!0;return!1}case"intersection":return D0($.left,J)||D0($.right,J);case"tuple":{for(let G of $.items)if(D0(G,J))return!0;if($.rest&&D0($.rest,J))return!0;return!1}case"record":return D0($.keyType,J)||D0($.valueType,J);case"map":return D0($.keyType,J)||D0($.valueType,J);case"set":return D0($.valueType,J);case"promise":case"optional":case"nonoptional":case"nullable":case"readonly":return D0($.innerType,J);case"lazy":return D0($.getter(),J);case"default":return D0($.innerType,J);case"prefault":return D0($.innerType,J);case"custom":return!1;case"transform":return!0;case"pipe":return D0($.in,J)||D0($.out,J);case"success":return!1;case"catch":return!1;case"function":return!1;default:}throw Error(`Unknown schema type: ${$.type}`)}var NH=P("ZodISODateTime",(Y,X)=>{L2.init(Y,X),L0.init(Y,X)});function k7(Y){return F7(NH,Y)}var BH=P("ZodISODate",(Y,X)=>{H2.init(Y,X),L0.init(Y,X)});function x7(Y){return O7(BH,Y)}var qH=P("ZodISOTime",(Y,X)=>{V2.init(Y,X),L0.init(Y,X)});function b7(Y){return j7(qH,Y)}var FH=P("ZodISODuration",(Y,X)=>{N2.init(Y,X),L0.init(Y,X)});function v7(Y){return D7(FH,Y)}var h7=(Y,X)=>{gY.init(Y,X),Y.name="ZodError",Object.defineProperties(Y,{format:{value:(J)=>d$(Y,J)},flatten:{value:(J)=>l$(Y,J)},addIssue:{value:(J)=>{Y.issues.push(J),Y.message=JSON.stringify(Y.issues,z9,2)}},addIssues:{value:(J)=>{Y.issues.push(...J),Y.message=JSON.stringify(Y.issues,z9,2)}},isEmpty:{get(){return Y.issues.length===0}}})},qj=P("ZodError",h7),d0=P("ZodError",h7,{Parent:Error});var g7=yY(d0),y7=fY(d0),f7=u9(d0),aY=c9(d0),m7=n$(d0),u7=r$(d0),c7=s$(d0),p7=a$(d0),l7=t$(d0),d7=e$(d0),i7=YG(d0),o7=XG(d0);var H0=P("ZodType",(Y,X)=>{return K0.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)=>a0(Y,J,Q),Y.brand=()=>Y,Y.register=(J,Q)=>{return J.add(Y,Q),Y},Y.parse=(J,Q)=>g7(Y,J,Q,{callee:Y.parse}),Y.safeParse=(J,Q)=>f7(Y,J,Q),Y.parseAsync=async(J,Q)=>y7(Y,J,Q,{callee:Y.parseAsync}),Y.safeParseAsync=async(J,Q)=>aY(Y,J,Q),Y.spa=Y.safeParseAsync,Y.encode=(J,Q)=>m7(Y,J,Q),Y.decode=(J,Q)=>u7(Y,J,Q),Y.encodeAsync=async(J,Q)=>c7(Y,J,Q),Y.decodeAsync=async(J,Q)=>p7(Y,J,Q),Y.safeEncode=(J,Q)=>l7(Y,J,Q),Y.safeDecode=(J,Q)=>d7(Y,J,Q),Y.safeEncodeAsync=async(J,Q)=>i7(Y,J,Q),Y.safeDecodeAsync=async(J,Q)=>o7(Y,J,Q),Y.refine=(J,Q)=>Y.check(ZV(J,Q)),Y.superRefine=(J)=>Y.check(LV(J)),Y.overwrite=(J)=>Y.check(i1(J)),Y.optional=()=>s7(Y),Y.nullable=()=>a7(Y),Y.nullish=()=>s7(a7(Y)),Y.nonoptional=(J)=>QV(Y,J),Y.array=()=>T8(Y),Y.or=(J)=>R8([Y,J]),Y.and=(J)=>oH(Y,J),Y.transform=(J)=>t7(Y,aH(J)),Y.default=(J)=>YV(Y,J),Y.prefault=(J)=>JV(Y,J),Y.catch=(J)=>GV(Y,J),Y.pipe=(J)=>t7(Y,J),Y.readonly=()=>KV(Y),Y.describe=(J)=>{let Q=Y.clone();return d1.add(Q,{description:J}),Q},Object.defineProperty(Y,"description",{get(){return d1.get(Y)?.description},configurable:!0}),Y.meta=(...J)=>{if(J.length===0)return d1.get(Y);let Q=Y.clone();return d1.add(Q,J[0]),Q},Y.isOptional=()=>Y.safeParse(void 0).success,Y.isNullable=()=>Y.safeParse(null).success,Y}),e7=P("_ZodString",(Y,X)=>{pY.init(Y,X),H0.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(V8(...Q)),Y.includes=(...Q)=>Y.check(q8(...Q)),Y.startsWith=(...Q)=>Y.check(F8(...Q)),Y.endsWith=(...Q)=>Y.check(O8(...Q)),Y.min=(...Q)=>Y.check(Z9(...Q)),Y.max=(...Q)=>Y.check(nY(...Q)),Y.length=(...Q)=>Y.check(rY(...Q)),Y.nonempty=(...Q)=>Y.check(Z9(1,...Q)),Y.lowercase=(Q)=>Y.check(N8(Q)),Y.uppercase=(Q)=>Y.check(B8(Q)),Y.trim=()=>Y.check(D8()),Y.normalize=(...Q)=>Y.check(j8(...Q)),Y.toLowerCase=()=>Y.check(P8()),Y.toUpperCase=()=>Y.check(E8())}),PH=P("ZodString",(Y,X)=>{pY.init(Y,X),e7.init(Y,X),Y.email=(J)=>Y.check(s2(EH,J)),Y.url=(J)=>Y.check(X7(MH,J)),Y.jwt=(J)=>Y.check(q7(yH,J)),Y.emoji=(J)=>Y.check(J7(wH,J)),Y.guid=(J)=>Y.check(H8(n7,J)),Y.uuid=(J)=>Y.check(a2(tY,J)),Y.uuidv4=(J)=>Y.check(t2(tY,J)),Y.uuidv6=(J)=>Y.check(e2(tY,J)),Y.uuidv7=(J)=>Y.check(Y7(tY,J)),Y.nanoid=(J)=>Y.check(Q7(AH,J)),Y.guid=(J)=>Y.check(H8(n7,J)),Y.cuid=(J)=>Y.check($7(TH,J)),Y.cuid2=(J)=>Y.check(G7(RH,J)),Y.ulid=(J)=>Y.check(W7(CH,J)),Y.base64=(J)=>Y.check(V7(vH,J)),Y.base64url=(J)=>Y.check(N7(hH,J)),Y.xid=(J)=>Y.check(z7(IH,J)),Y.ksuid=(J)=>Y.check(K7(_H,J)),Y.ipv4=(J)=>Y.check(U7(SH,J)),Y.ipv6=(J)=>Y.check(Z7(kH,J)),Y.cidrv4=(J)=>Y.check(L7(xH,J)),Y.cidrv6=(J)=>Y.check(H7(bH,J)),Y.e164=(J)=>Y.check(B7(gH,J)),Y.datetime=(J)=>Y.check(k7(J)),Y.date=(J)=>Y.check(x7(J)),Y.time=(J)=>Y.check(b7(J)),Y.duration=(J)=>Y.check(v7(J))});function Y4(Y){return r2(PH,Y)}var L0=P("ZodStringFormat",(Y,X)=>{Z0.init(Y,X),e7.init(Y,X)}),EH=P("ZodEmail",(Y,X)=>{J2.init(Y,X),L0.init(Y,X)});var n7=P("ZodGUID",(Y,X)=>{Y2.init(Y,X),L0.init(Y,X)});var tY=P("ZodUUID",(Y,X)=>{X2.init(Y,X),L0.init(Y,X)});var MH=P("ZodURL",(Y,X)=>{Q2.init(Y,X),L0.init(Y,X)});var wH=P("ZodEmoji",(Y,X)=>{$2.init(Y,X),L0.init(Y,X)});var AH=P("ZodNanoID",(Y,X)=>{G2.init(Y,X),L0.init(Y,X)});var TH=P("ZodCUID",(Y,X)=>{W2.init(Y,X),L0.init(Y,X)});var RH=P("ZodCUID2",(Y,X)=>{z2.init(Y,X),L0.init(Y,X)});var CH=P("ZodULID",(Y,X)=>{K2.init(Y,X),L0.init(Y,X)});var IH=P("ZodXID",(Y,X)=>{U2.init(Y,X),L0.init(Y,X)});var _H=P("ZodKSUID",(Y,X)=>{Z2.init(Y,X),L0.init(Y,X)});var SH=P("ZodIPv4",(Y,X)=>{B2.init(Y,X),L0.init(Y,X)});var kH=P("ZodIPv6",(Y,X)=>{q2.init(Y,X),L0.init(Y,X)});var xH=P("ZodCIDRv4",(Y,X)=>{F2.init(Y,X),L0.init(Y,X)});var bH=P("ZodCIDRv6",(Y,X)=>{O2.init(Y,X),L0.init(Y,X)});var vH=P("ZodBase64",(Y,X)=>{D2.init(Y,X),L0.init(Y,X)});var hH=P("ZodBase64URL",(Y,X)=>{P2.init(Y,X),L0.init(Y,X)});var gH=P("ZodE164",(Y,X)=>{E2.init(Y,X),L0.init(Y,X)});var yH=P("ZodJWT",(Y,X)=>{M2.init(Y,X),L0.init(Y,X)});var X4=P("ZodNumber",(Y,X)=>{Z8.init(Y,X),H0.init(Y,X),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(r7(Q)),Y.safe=(Q)=>Y.check(r7(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 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 J4(Y){return P7(X4,Y)}var fH=P("ZodNumberFormat",(Y,X)=>{w2.init(Y,X),X4.init(Y,X)});function r7(Y){return E7(fH,Y)}var mH=P("ZodBoolean",(Y,X)=>{A2.init(Y,X),H0.init(Y,X)});function Q4(Y){return M7(mH,Y)}var uH=P("ZodNull",(Y,X)=>{T2.init(Y,X),H0.init(Y,X)});function $4(Y){return w7(uH,Y)}var cH=P("ZodUnknown",(Y,X)=>{R2.init(Y,X),H0.init(Y,X)});function i9(){return A7(cH)}var pH=P("ZodNever",(Y,X)=>{C2.init(Y,X),H0.init(Y,X)});function A8(Y){return T7(pH,Y)}var lH=P("ZodArray",(Y,X)=>{I2.init(Y,X),H0.init(Y,X),Y.element=X.element,Y.min=(J,Q)=>Y.check(Z9(J,Q)),Y.nonempty=(J)=>Y.check(Z9(1,J)),Y.max=(J,Q)=>Y.check(nY(J,Q)),Y.length=(J,Q)=>Y.check(rY(J,Q)),Y.unwrap=()=>Y.element});function T8(Y,X){return R7(lH,Y,X)}var G4=P("ZodObject",(Y,X)=>{k2.init(Y,X),H0.init(Y,X),a.defineLazy(Y,"shape",()=>X.shape),Y.keyof=()=>C8(Object.keys(Y._zod.def.shape)),Y.catchall=(J)=>Y.clone({...Y._zod.def,catchall:J}),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:A8()}),Y.strip=()=>Y.clone({...Y._zod.def,catchall:void 0}),Y.extend=(J)=>{return a.extend(Y,J)},Y.safeExtend=(J)=>{return a.safeExtend(Y,J)},Y.merge=(J)=>a.merge(Y,J),Y.pick=(J)=>a.pick(Y,J),Y.omit=(J)=>a.omit(Y,J),Y.partial=(...J)=>a.partial(H4,Y,J[0]),Y.required=(...J)=>a.required(V4,Y,J[0])});function W4(Y,X){let J={type:"object",get shape(){return a.assignProp(this,"shape",Y?a.objectClone(Y):{}),this.shape},...a.normalizeParams(X)};return new G4(J)}function z4(Y,X){return new G4({type:"object",get shape(){return a.assignProp(this,"shape",a.objectClone(Y)),this.shape},catchall:i9(),...a.normalizeParams(X)})}var K4=P("ZodUnion",(Y,X)=>{L8.init(Y,X),H0.init(Y,X),Y.options=X.options});function R8(Y,X){return new K4({type:"union",options:Y,...a.normalizeParams(X)})}var dH=P("ZodDiscriminatedUnion",(Y,X)=>{K4.init(Y,X),x2.init(Y,X)});function U4(Y,X,J){return new dH({type:"union",options:X,discriminator:Y,...a.normalizeParams(J)})}var iH=P("ZodIntersection",(Y,X)=>{b2.init(Y,X),H0.init(Y,X)});function oH(Y,X){return new iH({type:"intersection",left:Y,right:X})}var nH=P("ZodRecord",(Y,X)=>{v2.init(Y,X),H0.init(Y,X),Y.keyType=X.keyType,Y.valueType=X.valueType});function Z4(Y,X,J){return new nH({type:"record",keyType:Y,valueType:X,...a.normalizeParams(J)})}var w8=P("ZodEnum",(Y,X)=>{h2.init(Y,X),H0.init(Y,X),Y.enum=X.entries,Y.options=Object.values(X.entries);let J=new Set(Object.keys(X.entries));Y.extract=(Q,$)=>{let G={};for(let W of Q)if(J.has(W))G[W]=X.entries[W];else throw Error(`Key ${W} not found in enum`);return new w8({...X,checks:[],...a.normalizeParams($),entries:G})},Y.exclude=(Q,$)=>{let G={...X.entries};for(let W of Q)if(J.has(W))delete G[W];else throw Error(`Key ${W} not found in enum`);return new w8({...X,checks:[],...a.normalizeParams($),entries:G})}});function C8(Y,X){let J=Array.isArray(Y)?Object.fromEntries(Y.map((Q)=>[Q,Q])):Y;return new w8({type:"enum",entries:J,...a.normalizeParams(X)})}var rH=P("ZodLiteral",(Y,X)=>{g2.init(Y,X),H0.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 L4(Y,X){return new rH({type:"literal",values:Array.isArray(Y)?Y:[Y],...a.normalizeParams(X)})}var sH=P("ZodTransform",(Y,X)=>{y2.init(Y,X),H0.init(Y,X),Y._zod.parse=(J,Q)=>{if(Q.direction==="backward")throw new v9(Y.constructor.name);J.addIssue=(G)=>{if(typeof G==="string")J.issues.push(a.issue(G,J.value,X));else{let W=G;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(a.issue(W))}};let $=X.transform(J.value,J);if($ instanceof Promise)return $.then((G)=>{return J.value=G,J});return J.value=$,J}});function aH(Y){return new sH({type:"transform",transform:Y})}var H4=P("ZodOptional",(Y,X)=>{f2.init(Y,X),H0.init(Y,X),Y.unwrap=()=>Y._zod.def.innerType});function s7(Y){return new H4({type:"optional",innerType:Y})}var tH=P("ZodNullable",(Y,X)=>{m2.init(Y,X),H0.init(Y,X),Y.unwrap=()=>Y._zod.def.innerType});function a7(Y){return new tH({type:"nullable",innerType:Y})}var eH=P("ZodDefault",(Y,X)=>{u2.init(Y,X),H0.init(Y,X),Y.unwrap=()=>Y._zod.def.innerType,Y.removeDefault=Y.unwrap});function YV(Y,X){return new eH({type:"default",innerType:Y,get defaultValue(){return typeof X==="function"?X():a.shallowClone(X)}})}var XV=P("ZodPrefault",(Y,X)=>{c2.init(Y,X),H0.init(Y,X),Y.unwrap=()=>Y._zod.def.innerType});function JV(Y,X){return new XV({type:"prefault",innerType:Y,get defaultValue(){return typeof X==="function"?X():a.shallowClone(X)}})}var V4=P("ZodNonOptional",(Y,X)=>{p2.init(Y,X),H0.init(Y,X),Y.unwrap=()=>Y._zod.def.innerType});function QV(Y,X){return new V4({type:"nonoptional",innerType:Y,...a.normalizeParams(X)})}var $V=P("ZodCatch",(Y,X)=>{l2.init(Y,X),H0.init(Y,X),Y.unwrap=()=>Y._zod.def.innerType,Y.removeCatch=Y.unwrap});function GV(Y,X){return new $V({type:"catch",innerType:Y,catchValue:typeof X==="function"?X:()=>X})}var WV=P("ZodPipe",(Y,X)=>{d2.init(Y,X),H0.init(Y,X),Y.in=X.in,Y.out=X.out});function t7(Y,X){return new WV({type:"pipe",in:Y,out:X})}var zV=P("ZodReadonly",(Y,X)=>{i2.init(Y,X),H0.init(Y,X),Y.unwrap=()=>Y._zod.def.innerType});function KV(Y){return new zV({type:"readonly",innerType:Y})}var UV=P("ZodLazy",(Y,X)=>{o2.init(Y,X),H0.init(Y,X),Y.unwrap=()=>Y._zod.def.getter()});function N4(Y){return new UV({type:"lazy",getter:Y})}var I8=P("ZodCustom",(Y,X)=>{n2.init(Y,X),H0.init(Y,X)});function B4(Y,X){return C7(I8,Y??(()=>!0),X)}function ZV(Y,X={}){return I7(I8,Y,X)}function LV(Y){return _7(Y)}function q4(Y,X={error:`Input not instance of ${Y.name}`}){let J=new I8({type:"custom",check:"custom",fn:(Q)=>Q instanceof Y,abort:!0,...a.normalizeParams(X)});return J._zod.bag.Class=Y,J}function T4(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 HV(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 L9(Y,...X){let J=new Headers(HV(Y)),Q=J.get("user-agent")||"";return J.set("user-agent",[Q,...X].filter(Boolean).join(" ")),Object.fromEntries(J.entries())}var VV=[{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]}],QD=[...VV,{mediaType:"audio/mp4",bytesPrefix:[0,0,0,null,102,116,121,112]}];var NV=12,BV=131072,$D=BV+NV;async function eY(Y){var X;try{await((X=Y.body)==null?void 0:X.cancel())}catch(J){}}var R4="AI_DownloadError",C4=`vercel.ai.error.${R4}`,qV=Symbol.for(C4),F4,O4,b0=class extends(O4=T,F4=qV,O4){constructor({url:Y,statusCode:X,statusText:J,cause:Q,message:$=Q==null?`Failed to download ${Y}: ${X} ${J}`:`Failed to download ${Y}: ${Q}`}){super({name:R4,message:$,cause:Q});this[F4]=!0,this.url=Y,this.statusCode=X,this.statusText=J}static isInstance(Y){return T.hasMarker(Y,C4)}};function FV(Y=globalThis){return Y.window!=null}function j4(Y,X){try{return new URL(Y).origin===new URL(X).origin}catch(J){return!1}}function OV(Y){let X;try{X=new URL(Y)}catch(Q){throw new b0({url:Y,message:`Invalid URL: ${Y}`})}if(X.protocol==="data:")return;if(X.protocol!=="http:"&&X.protocol!=="https:")throw new b0({url:Y,message:`URL scheme must be http, https, or data, got ${X.protocol}`});let J=X.hostname.toLowerCase().replace(/\.+$/,"");if(!J)throw new b0({url:Y,message:"URL must have a hostname"});if(J==="localhost"||J.endsWith(".local")||J.endsWith(".localhost"))throw new b0({url:Y,message:`URL with hostname ${J} is not allowed`});if(J.startsWith("[")&&J.endsWith("]")){let Q=J.slice(1,-1);if(I4(Q))throw new b0({url:Y,message:`URL with IPv6 address ${J} is not allowed`});return}if(v8(J)){if(h8(J))throw new b0({url:Y,message:`URL with IP address ${J} is not allowed`});return}}function jV({address:Y,family:X,hostname:J}){if(X===4?!v8(Y)||h8(Y):X===6?I4(Y):!0)throw new b0({url:J,message:`Hostname ${J} resolved to disallowed IP address ${Y}`})}function v8(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 h8(Y){let X=Y.split(".").map(Number),[J,Q,$]=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&&$===0)return!0;if(J===192&&Q===0&&$===2)return!0;if(J===192&&Q===168)return!0;if(J===198&&(Q===18||Q===19))return!0;if(J===198&&Q===51&&$===100)return!0;if(J===203&&Q===0&&$===113)return!0;if(J>=224)return!0;return!1}function DV(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 $=(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||!v8(L))return null;let[F,N,V,j]=L.split(".").map(Number);K.push(F<<8|N,V<<8|j);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 I4(Y){let X=DV(Y);if(X===null)return!0;let J=($)=>X.slice(0,$).every((G)=>G===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 $=X[6]>>8&255,G=X[6]&255,W=X[7]>>8&255,K=X[7]&255;return h8(`${$}.${G}.${W}.${K}`)}return!1}function PV(Y){return(X,J,Q)=>{Y(X,{...J,all:!0},($,G)=>{if($){Q($);return}try{let[W]=G;if(W==null)throw Error(`Hostname ${X} did not resolve to an address`);for(let{address:K,family:Z}of G)jV({address:K,family:Z,hostname:X});if(J.all===!0)Q(null,G);else Q(null,W.address,W.family)}catch(W){Q(W instanceof Error?W:Error(String(W)))}})}}var _8,_4=globalThis.fetch,EV=AV(_4);function MV(){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 wV(){if(!MV()||!EV||globalThis.fetch!==_4)return globalThis.fetch;return _8!=null?_8:_8=Promise.resolve().then(TV)}function AV(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 TV(){let{createRequire:Y}=D4("node:module"),{lookup:X}=D4("node:dns"),{Agent:J,fetch:Q}=Y(S4())("undici"),$=new J({connect:{lookup:PV(X)}});return(G,W)=>Q(G,{...W,dispatcher:$})}function D4(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 S4(){let Y=Error.prepareStackTrace;try{Error.prepareStackTrace=($,G)=>G;let X=Error("Capture current module path");Error.captureStackTrace(X,S4);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 RV=["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 CV(Y){let X=new Headers(Y);for(let J of RV)X.delete(J);return X}var IV=10,_V=new Set([301,302,303,307,308]);async function SV(Y){return Y==null||Y===globalThis.fetch?await wV():Y}async function k4({url:Y,headers:X,abortSignal:J,maxRedirects:Q=IV,fetch:$,trustedOrigin:G}){var W;let K=X===void 0?void 0:CV(X),Z=(L)=>{let F={signal:J,redirect:L};if(K!==void 0)F.headers=new Headers(K);return F},U=Y;for(let L=0;L<=Q;L++){let F=G!==void 0&&j4(U,G);if(!F)OV(U);let N=F&&$!=null?$:F?globalThis.fetch:await SV($),V=await N(U,Z("manual"));if(V.type==="opaqueredirect"){if(!FV())throw new b0({url:Y,message:`Redirect from ${U} could not be validated and was blocked`});return await N(U,Z("follow"))}let j=(W=V.headers)==null?void 0:W.get("location");if(_V.has(V.status)&&j){await eY(V);let R=new URL(j,U).toString();if(K!==void 0&&!j4(R,U)){let S=K.get("user-agent");K=new Headers(S==null?void 0:{"user-agent":S})}U=R;continue}return V}throw new b0({url:Y,message:`Too many redirects (max ${Q})`})}var g8=2147483648;async function x4({response:Y,url:X,maxBytes:J=g8}){let Q=Y.headers.get("content-length");if(Q!=null){let L=parseInt(Q,10);if(!isNaN(L)&&L>J)throw await eY(Y),new b0({url:X,message:`Download of ${X} exceeded maximum size of ${J} 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:F}=await G.read();if(L)break;if(K+=F.length,K>J)throw new b0({url:X,message:`Download of ${X} exceeded maximum size of ${J} bytes.`});W.push(F)}}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 O0=({prefix:Y,size:X=16,alphabet:J="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:Q="-"}={})=>{let $=()=>{let G=J.length,W=Array(X);for(let K=0;K<X;K++)W[K]=J[Math.random()*G|0];return W.join("")};if(Y==null)return $;if(J.includes(Q))throw new L$({argument:"separator",message:`The separator "${Q}" must not be part of the alphabet "${J}".`});return()=>`${Y}${Q}${$()}`},zD=O0();function b4(Y){var X,J;return(J=(X=globalThis.Buffer)==null?void 0:X.isBuffer(Y))!=null?J:!1}var kV=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,xV=/"(?: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 P4(Y){let X=JSON.parse(Y);if(X===null||typeof X!=="object")return X;if(kV.test(Y)===!1&&xV.test(Y)===!1)return X;return bV(X)}function bV(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 $ in Q){let G=Q[$];if(G&&typeof G==="object")X.push(G)}}}return Y}function vV(Y){let{stackTraceLimit:X}=Error;try{Error.stackTraceLimit=0}catch(J){return P4(Y)}try{return P4(Y)}finally{Error.stackTraceLimit=X}}function y8(Y){if(Y.type==="object"||Array.isArray(Y.type)&&Y.type.includes("object")){let{additionalProperties:J}=Y;Y.additionalProperties=J!=null&&typeof J!=="boolean"?S1(J):!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:X}=Y;if(X!=null)for(let J of Object.keys(X))X[J]=S1(X[J]);return Y}function S1(Y){if(typeof Y==="boolean")return Y;return y8(Y)}var hV=Symbol("Let zodToJsonSchema decide on which parser to use"),E4={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"},gV=(Y)=>typeof Y==="string"?{...E4,name:Y}:{...E4,...Y};function i0(){return{}}function yV(Y,X){var J,Q,$;let G={type:"array"};if(((J=Y.type)==null?void 0:J._def)&&(($=(Q=Y.type)==null?void 0:Q._def)==null?void 0:$.typeName)!=="ZodAny")G.items=G0(Y.type._def,{...X,currentPath:[...X.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 fV(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 mV(){return{type:"boolean"}}function v4(Y,X){return G0(Y.type._def,X)}var uV=(Y,X)=>{return G0(Y.innerType._def,X)};function h4(Y,X,J){let Q=J!=null?J:X.dateStrategy;if(Array.isArray(Q))return{anyOf:Q.map(($)=>h4(Y,X,$))};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 cV(Y)}}var cV=(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 pV(Y,X){return{...G0(Y.innerType._def,X),default:Y.defaultValue()}}function lV(Y,X){return X.effectStrategy==="input"?G0(Y.schema._def,X):i0()}function dV(Y){return{type:"string",enum:Array.from(Y.values)}}var iV=(Y)=>{if("type"in Y&&Y.type==="string")return!1;return"allOf"in Y};function oV(Y,X){let J=[G0(Y.left._def,{...X,currentPath:[...X.currentPath,"allOf","0"]}),G0(Y.right._def,{...X,currentPath:[...X.currentPath,"allOf","1"]})].filter(($)=>!!$),Q=[];return J.forEach(($)=>{if(iV($))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 nV(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 S8=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(S8===void 0)S8=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return S8},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 g4(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":Y1(J,"email",Q.message,X);break;case"format:idn-email":Y1(J,"idn-email",Q.message,X);break;case"pattern:zod":x0(J,e0.email,Q.message,X);break}break;case"url":Y1(J,"uri",Q.message,X);break;case"uuid":Y1(J,"uuid",Q.message,X);break;case"regex":x0(J,Q.regex,Q.message,X);break;case"cuid":x0(J,e0.cuid,Q.message,X);break;case"cuid2":x0(J,e0.cuid2,Q.message,X);break;case"startsWith":x0(J,RegExp(`^${k8(Q.value,X)}`),Q.message,X);break;case"endsWith":x0(J,RegExp(`${k8(Q.value,X)}$`),Q.message,X);break;case"datetime":Y1(J,"date-time",Q.message,X);break;case"date":Y1(J,"date",Q.message,X);break;case"time":Y1(J,"time",Q.message,X);break;case"duration":Y1(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":{x0(J,RegExp(k8(Q.value,X)),Q.message,X);break}case"ip":{if(Q.version!=="v6")Y1(J,"ipv4",Q.message,X);if(Q.version!=="v4")Y1(J,"ipv6",Q.message,X);break}case"base64url":x0(J,e0.base64url,Q.message,X);break;case"jwt":x0(J,e0.jwt,Q.message,X);break;case"cidr":{if(Q.version!=="v6")x0(J,e0.ipv4Cidr,Q.message,X);if(Q.version!=="v4")x0(J,e0.ipv6Cidr,Q.message,X);break}case"emoji":x0(J,e0.emoji(),Q.message,X);break;case"ulid":{x0(J,e0.ulid,Q.message,X);break}case"base64":{switch(X.base64Strategy){case"format:binary":{Y1(J,"binary",Q.message,X);break}case"contentEncoding:base64":{J.contentEncoding="base64";break}case"pattern:zod":{x0(J,e0.base64,Q.message,X);break}}break}case"nanoid":x0(J,e0.nanoid,Q.message,X);case"toLowerCase":case"toUpperCase":case"trim":break;default:}return J}function k8(Y,X){return X.patternStrategy==="escape"?sV(Y):Y}var rV=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function sV(Y){let X="";for(let J=0;J<Y.length;J++){if(!rV.has(Y[J]))X+="\\";X+=Y[J]}return X}function Y1(Y,X,J,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:X,...J&&Q.errorMessages&&{errorMessage:{format:J}}})}else Y.format=X}function x0(Y,X,J,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:M4(X,Q),...J&&Q.errorMessages&&{errorMessage:{pattern:J}}})}else Y.pattern=M4(X,Q)}function M4(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")},$=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]==="-"&&((J=$[U+2])==null?void 0:J.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
|
|
77
|
+
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let U of this.seen.entries()){let Z=U[1];if(Y===U[0]){G(U);continue}if(J.external){let N=J.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(Z.cycle){G(U);continue}if(Z.count>1){if(J.reused==="ref"){G(U);continue}}}let W=(U,Z)=>{let O=this.seen.get(U),N=O.def??O.schema,V={...N};if(O.ref===null)return;let q=O.ref;if(O.ref=null,q){W(q,Z);let T=this.seen.get(q).schema;if(T.$ref&&(Z.target==="draft-7"||Z.target==="draft-4"||Z.target==="openapi-3.0"))N.allOf=N.allOf??[],N.allOf.push(T);else Object.assign(N,T),Object.assign(N,V)}if(!O.isParent)this.override({zodSchema:U,jsonSchema:N,path:O.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(J.external?.uri){let U=J.external.registry.get(Y)?.id;if(!U)throw Error("Schema is missing an `id` property");K.$id=J.external.uri(U)}Object.assign(K,Q.def);let H=J.external?.defs??{};for(let U of this.seen.entries()){let Z=U[1];if(Z.def&&Z.defId)H[Z.defId]=Z.def}if(J.external);else if(Object.keys(H).length>0)if(this.target==="draft-2020-12")K.$defs=H;else K.definitions=H;try{return JSON.parse(JSON.stringify(K))}catch(U){throw Error("Error converting schema to JSON.")}}}function w7(Y,X){if(Y instanceof uY){let Q=new qJ(X),$={};for(let K of Y._idmap.entries()){let[H,U]=K;Q.process(U)}let G={},W={registry:Y,uri:X?.uri,defs:$};for(let K of Y._idmap.entries()){let[H,U]=K;G[H]=Q.emit(U,{...X,external:W})}if(Object.keys($).length>0){let K=Q.target==="draft-2020-12"?"$defs":"definitions";G.__shared={[K]:$}}return{schemas:G}}let J=new qJ(X);return J.process(Y),J.emit(Y,X)}function q0(Y,X){let J=X??{seen:new Set};if(J.seen.has(Y))return!1;J.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 q0($.element,J);case"object":{for(let G in $.shape)if(q0($.shape[G],J))return!0;return!1}case"union":{for(let G of $.options)if(q0(G,J))return!0;return!1}case"intersection":return q0($.left,J)||q0($.right,J);case"tuple":{for(let G of $.items)if(q0(G,J))return!0;if($.rest&&q0($.rest,J))return!0;return!1}case"record":return q0($.keyType,J)||q0($.valueType,J);case"map":return q0($.keyType,J)||q0($.valueType,J);case"set":return q0($.valueType,J);case"promise":case"optional":case"nonoptional":case"nullable":case"readonly":return q0($.innerType,J);case"lazy":return q0($.getter(),J);case"default":return q0($.innerType,J);case"prefault":return q0($.innerType,J);case"custom":return!1;case"transform":return!0;case"pipe":return q0($.in,J)||q0($.out,J);case"success":return!1;case"catch":return!1;case"function":return!1;default:}throw Error(`Unknown schema type: ${$.type}`)}var XL=E("ZodISODateTime",(Y,X)=>{$2.init(Y,X),H0.init(Y,X)});function A7(Y){return H7(XL,Y)}var JL=E("ZodISODate",(Y,X)=>{G2.init(Y,X),H0.init(Y,X)});function R7(Y){return Z7(JL,Y)}var QL=E("ZodISOTime",(Y,X)=>{W2.init(Y,X),H0.init(Y,X)});function T7(Y){return L7(QL,Y)}var $L=E("ZodISODuration",(Y,X)=>{z2.init(Y,X),H0.init(Y,X)});function C7(Y){return V7($L,Y)}var _7=(Y,X)=>{vY.init(Y,X),Y.name="ZodError",Object.defineProperties(Y,{format:{value:(J)=>y$(Y,J)},flatten:{value:(J)=>g$(Y,J)},addIssue:{value:(J)=>{Y.issues.push(J),Y.message=JSON.stringify(Y.issues,K9,2)}},addIssues:{value:(J)=>{Y.issues.push(...J),Y.message=JSON.stringify(Y.issues,K9,2)}},isEmpty:{get(){return Y.issues.length===0}}})},nq=E("ZodError",_7),p0=E("ZodError",_7,{Parent:Error});var I7=hY(p0),S7=gY(p0),k7=m9(p0),rY=c9(p0),x7=c$(p0),b7=u$(p0),v7=p$(p0),h7=l$(p0),g7=d$(p0),y7=i$(p0),f7=o$(p0),m7=n$(p0);var Z0=E("ZodType",(Y,X)=>{return z0.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)=>s0(Y,J,Q),Y.brand=()=>Y,Y.register=(J,Q)=>{return J.add(Y,Q),Y},Y.parse=(J,Q)=>I7(Y,J,Q,{callee:Y.parse}),Y.safeParse=(J,Q)=>k7(Y,J,Q),Y.parseAsync=async(J,Q)=>S7(Y,J,Q,{callee:Y.parseAsync}),Y.safeParseAsync=async(J,Q)=>rY(Y,J,Q),Y.spa=Y.safeParseAsync,Y.encode=(J,Q)=>x7(Y,J,Q),Y.decode=(J,Q)=>b7(Y,J,Q),Y.encodeAsync=async(J,Q)=>v7(Y,J,Q),Y.decodeAsync=async(J,Q)=>h7(Y,J,Q),Y.safeEncode=(J,Q)=>g7(Y,J,Q),Y.safeDecode=(J,Q)=>y7(Y,J,Q),Y.safeEncodeAsync=async(J,Q)=>f7(Y,J,Q),Y.safeDecodeAsync=async(J,Q)=>m7(Y,J,Q),Y.refine=(J,Q)=>Y.check(aL(J,Q)),Y.superRefine=(J)=>Y.check(tL(J)),Y.overwrite=(J)=>Y.check(i1(J)),Y.optional=()=>p7(Y),Y.nullable=()=>l7(Y),Y.nullish=()=>p7(l7(Y)),Y.nonoptional=(J)=>lL(Y,J),Y.array=()=>PJ(Y),Y.or=(J)=>MJ([Y,J]),Y.and=(J)=>bL(Y,J),Y.transform=(J)=>d7(Y,yL(J)),Y.default=(J)=>cL(Y,J),Y.prefault=(J)=>pL(Y,J),Y.catch=(J)=>iL(Y,J),Y.pipe=(J)=>d7(Y,J),Y.readonly=()=>rL(Y),Y.describe=(J)=>{let Q=Y.clone();return d1.add(Q,{description:J}),Q},Object.defineProperty(Y,"description",{get(){return d1.get(Y)?.description},configurable:!0}),Y.meta=(...J)=>{if(J.length===0)return d1.get(Y);let Q=Y.clone();return d1.add(Q,J[0]),Q},Y.isOptional=()=>Y.safeParse(void 0).success,Y.isNullable=()=>Y.safeParse(null).success,Y}),i7=E("_ZodString",(Y,X)=>{cY.init(Y,X),Z0.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(UJ(...Q)),Y.includes=(...Q)=>Y.check(LJ(...Q)),Y.startsWith=(...Q)=>Y.check(VJ(...Q)),Y.endsWith=(...Q)=>Y.check(NJ(...Q)),Y.min=(...Q)=>Y.check(Z9(...Q)),Y.max=(...Q)=>Y.check(iY(...Q)),Y.length=(...Q)=>Y.check(oY(...Q)),Y.nonempty=(...Q)=>Y.check(Z9(1,...Q)),Y.lowercase=(Q)=>Y.check(HJ(Q)),Y.uppercase=(Q)=>Y.check(ZJ(Q)),Y.trim=()=>Y.check(FJ()),Y.normalize=(...Q)=>Y.check(BJ(...Q)),Y.toLowerCase=()=>Y.check(OJ()),Y.toUpperCase=()=>Y.check(jJ())}),KL=E("ZodString",(Y,X)=>{cY.init(Y,X),i7.init(Y,X),Y.email=(J)=>Y.check(p2(UL,J)),Y.url=(J)=>Y.check(n2(HL,J)),Y.jwt=(J)=>Y.check(U7(AL,J)),Y.emoji=(J)=>Y.check(r2(ZL,J)),Y.guid=(J)=>Y.check(KJ(c7,J)),Y.uuid=(J)=>Y.check(l2(sY,J)),Y.uuidv4=(J)=>Y.check(d2(sY,J)),Y.uuidv6=(J)=>Y.check(i2(sY,J)),Y.uuidv7=(J)=>Y.check(o2(sY,J)),Y.nanoid=(J)=>Y.check(s2(LL,J)),Y.guid=(J)=>Y.check(KJ(c7,J)),Y.cuid=(J)=>Y.check(a2(VL,J)),Y.cuid2=(J)=>Y.check(t2(NL,J)),Y.ulid=(J)=>Y.check(e2(BL,J)),Y.base64=(J)=>Y.check(W7(PL,J)),Y.base64url=(J)=>Y.check(z7(ML,J)),Y.xid=(J)=>Y.check(Y7(FL,J)),Y.ksuid=(J)=>Y.check(X7(OL,J)),Y.ipv4=(J)=>Y.check(J7(jL,J)),Y.ipv6=(J)=>Y.check(Q7(qL,J)),Y.cidrv4=(J)=>Y.check($7(DL,J)),Y.cidrv6=(J)=>Y.check(G7(EL,J)),Y.e164=(J)=>Y.check(K7(wL,J)),Y.datetime=(J)=>Y.check(A7(J)),Y.date=(J)=>Y.check(R7(J)),Y.time=(J)=>Y.check(T7(J)),Y.duration=(J)=>Y.check(C7(J))});function o7(Y){return u2(KL,Y)}var H0=E("ZodStringFormat",(Y,X)=>{U0.init(Y,X),i7.init(Y,X)}),UL=E("ZodEmail",(Y,X)=>{rG.init(Y,X),H0.init(Y,X)});var c7=E("ZodGUID",(Y,X)=>{oG.init(Y,X),H0.init(Y,X)});var sY=E("ZodUUID",(Y,X)=>{nG.init(Y,X),H0.init(Y,X)});var HL=E("ZodURL",(Y,X)=>{sG.init(Y,X),H0.init(Y,X)});var ZL=E("ZodEmoji",(Y,X)=>{aG.init(Y,X),H0.init(Y,X)});var LL=E("ZodNanoID",(Y,X)=>{tG.init(Y,X),H0.init(Y,X)});var VL=E("ZodCUID",(Y,X)=>{eG.init(Y,X),H0.init(Y,X)});var NL=E("ZodCUID2",(Y,X)=>{Y2.init(Y,X),H0.init(Y,X)});var BL=E("ZodULID",(Y,X)=>{X2.init(Y,X),H0.init(Y,X)});var FL=E("ZodXID",(Y,X)=>{J2.init(Y,X),H0.init(Y,X)});var OL=E("ZodKSUID",(Y,X)=>{Q2.init(Y,X),H0.init(Y,X)});var jL=E("ZodIPv4",(Y,X)=>{K2.init(Y,X),H0.init(Y,X)});var qL=E("ZodIPv6",(Y,X)=>{U2.init(Y,X),H0.init(Y,X)});var DL=E("ZodCIDRv4",(Y,X)=>{H2.init(Y,X),H0.init(Y,X)});var EL=E("ZodCIDRv6",(Y,X)=>{Z2.init(Y,X),H0.init(Y,X)});var PL=E("ZodBase64",(Y,X)=>{V2.init(Y,X),H0.init(Y,X)});var ML=E("ZodBase64URL",(Y,X)=>{N2.init(Y,X),H0.init(Y,X)});var wL=E("ZodE164",(Y,X)=>{B2.init(Y,X),H0.init(Y,X)});var AL=E("ZodJWT",(Y,X)=>{F2.init(Y,X),H0.init(Y,X)});var n7=E("ZodNumber",(Y,X)=>{WJ.init(Y,X),Z0.init(Y,X),Y.gt=(Q,$)=>Y.check(lY(Q,$)),Y.gte=(Q,$)=>Y.check(l9(Q,$)),Y.min=(Q,$)=>Y.check(l9(Q,$)),Y.lt=(Q,$)=>Y.check(pY(Q,$)),Y.lte=(Q,$)=>Y.check(p9(Q,$)),Y.max=(Q,$)=>Y.check(p9(Q,$)),Y.int=(Q)=>Y.check(u7(Q)),Y.safe=(Q)=>Y.check(u7(Q)),Y.positive=(Q)=>Y.check(lY(0,Q)),Y.nonnegative=(Q)=>Y.check(l9(0,Q)),Y.negative=(Q)=>Y.check(pY(0,Q)),Y.nonpositive=(Q)=>Y.check(p9(0,Q)),Y.multipleOf=(Q,$)=>Y.check(dY(Q,$)),Y.step=(Q,$)=>Y.check(dY(Q,$)),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 r7(Y){return N7(n7,Y)}var RL=E("ZodNumberFormat",(Y,X)=>{O2.init(Y,X),n7.init(Y,X)});function u7(Y){return B7(RL,Y)}var TL=E("ZodBoolean",(Y,X)=>{j2.init(Y,X),Z0.init(Y,X)});function s7(Y){return F7(TL,Y)}var CL=E("ZodNull",(Y,X)=>{q2.init(Y,X),Z0.init(Y,X)});function a7(Y){return O7(CL,Y)}var _L=E("ZodUnknown",(Y,X)=>{D2.init(Y,X),Z0.init(Y,X)});function d9(){return j7(_L)}var IL=E("ZodNever",(Y,X)=>{E2.init(Y,X),Z0.init(Y,X)});function EJ(Y){return q7(IL,Y)}var SL=E("ZodArray",(Y,X)=>{P2.init(Y,X),Z0.init(Y,X),Y.element=X.element,Y.min=(J,Q)=>Y.check(Z9(J,Q)),Y.nonempty=(J)=>Y.check(Z9(1,J)),Y.max=(J,Q)=>Y.check(iY(J,Q)),Y.length=(J,Q)=>Y.check(oY(J,Q)),Y.unwrap=()=>Y.element});function PJ(Y,X){return D7(SL,Y,X)}var t7=E("ZodObject",(Y,X)=>{A2.init(Y,X),Z0.init(Y,X),s.defineLazy(Y,"shape",()=>X.shape),Y.keyof=()=>wJ(Object.keys(Y._zod.def.shape)),Y.catchall=(J)=>Y.clone({...Y._zod.def,catchall:J}),Y.passthrough=()=>Y.clone({...Y._zod.def,catchall:d9()}),Y.loose=()=>Y.clone({...Y._zod.def,catchall:d9()}),Y.strict=()=>Y.clone({...Y._zod.def,catchall:EJ()}),Y.strip=()=>Y.clone({...Y._zod.def,catchall:void 0}),Y.extend=(J)=>{return s.extend(Y,J)},Y.safeExtend=(J)=>{return s.safeExtend(Y,J)},Y.merge=(J)=>s.merge(Y,J),Y.pick=(J)=>s.pick(Y,J),Y.omit=(J)=>s.omit(Y,J),Y.partial=(...J)=>s.partial(GW,Y,J[0]),Y.required=(...J)=>s.required(WW,Y,J[0])});function e7(Y,X){let J={type:"object",get shape(){return s.assignProp(this,"shape",Y?s.objectClone(Y):{}),this.shape},...s.normalizeParams(X)};return new t7(J)}function YW(Y,X){return new t7({type:"object",get shape(){return s.assignProp(this,"shape",s.objectClone(Y)),this.shape},catchall:d9(),...s.normalizeParams(X)})}var XW=E("ZodUnion",(Y,X)=>{zJ.init(Y,X),Z0.init(Y,X),Y.options=X.options});function MJ(Y,X){return new XW({type:"union",options:Y,...s.normalizeParams(X)})}var kL=E("ZodDiscriminatedUnion",(Y,X)=>{XW.init(Y,X),R2.init(Y,X)});function JW(Y,X,J){return new kL({type:"union",options:X,discriminator:Y,...s.normalizeParams(J)})}var xL=E("ZodIntersection",(Y,X)=>{T2.init(Y,X),Z0.init(Y,X)});function bL(Y,X){return new xL({type:"intersection",left:Y,right:X})}var vL=E("ZodRecord",(Y,X)=>{C2.init(Y,X),Z0.init(Y,X),Y.keyType=X.keyType,Y.valueType=X.valueType});function QW(Y,X,J){return new vL({type:"record",keyType:Y,valueType:X,...s.normalizeParams(J)})}var DJ=E("ZodEnum",(Y,X)=>{_2.init(Y,X),Z0.init(Y,X),Y.enum=X.entries,Y.options=Object.values(X.entries);let J=new Set(Object.keys(X.entries));Y.extract=(Q,$)=>{let G={};for(let W of Q)if(J.has(W))G[W]=X.entries[W];else throw Error(`Key ${W} not found in enum`);return new DJ({...X,checks:[],...s.normalizeParams($),entries:G})},Y.exclude=(Q,$)=>{let G={...X.entries};for(let W of Q)if(J.has(W))delete G[W];else throw Error(`Key ${W} not found in enum`);return new DJ({...X,checks:[],...s.normalizeParams($),entries:G})}});function wJ(Y,X){let J=Array.isArray(Y)?Object.fromEntries(Y.map((Q)=>[Q,Q])):Y;return new DJ({type:"enum",entries:J,...s.normalizeParams(X)})}var hL=E("ZodLiteral",(Y,X)=>{I2.init(Y,X),Z0.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 $W(Y,X){return new hL({type:"literal",values:Array.isArray(Y)?Y:[Y],...s.normalizeParams(X)})}var gL=E("ZodTransform",(Y,X)=>{S2.init(Y,X),Z0.init(Y,X),Y._zod.parse=(J,Q)=>{if(Q.direction==="backward")throw new b9(Y.constructor.name);J.addIssue=(G)=>{if(typeof G==="string")J.issues.push(s.issue(G,J.value,X));else{let W=G;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(s.issue(W))}};let $=X.transform(J.value,J);if($ instanceof Promise)return $.then((G)=>{return J.value=G,J});return J.value=$,J}});function yL(Y){return new gL({type:"transform",transform:Y})}var GW=E("ZodOptional",(Y,X)=>{k2.init(Y,X),Z0.init(Y,X),Y.unwrap=()=>Y._zod.def.innerType});function p7(Y){return new GW({type:"optional",innerType:Y})}var fL=E("ZodNullable",(Y,X)=>{x2.init(Y,X),Z0.init(Y,X),Y.unwrap=()=>Y._zod.def.innerType});function l7(Y){return new fL({type:"nullable",innerType:Y})}var mL=E("ZodDefault",(Y,X)=>{b2.init(Y,X),Z0.init(Y,X),Y.unwrap=()=>Y._zod.def.innerType,Y.removeDefault=Y.unwrap});function cL(Y,X){return new mL({type:"default",innerType:Y,get defaultValue(){return typeof X==="function"?X():s.shallowClone(X)}})}var uL=E("ZodPrefault",(Y,X)=>{v2.init(Y,X),Z0.init(Y,X),Y.unwrap=()=>Y._zod.def.innerType});function pL(Y,X){return new uL({type:"prefault",innerType:Y,get defaultValue(){return typeof X==="function"?X():s.shallowClone(X)}})}var WW=E("ZodNonOptional",(Y,X)=>{h2.init(Y,X),Z0.init(Y,X),Y.unwrap=()=>Y._zod.def.innerType});function lL(Y,X){return new WW({type:"nonoptional",innerType:Y,...s.normalizeParams(X)})}var dL=E("ZodCatch",(Y,X)=>{g2.init(Y,X),Z0.init(Y,X),Y.unwrap=()=>Y._zod.def.innerType,Y.removeCatch=Y.unwrap});function iL(Y,X){return new dL({type:"catch",innerType:Y,catchValue:typeof X==="function"?X:()=>X})}var oL=E("ZodPipe",(Y,X)=>{y2.init(Y,X),Z0.init(Y,X),Y.in=X.in,Y.out=X.out});function d7(Y,X){return new oL({type:"pipe",in:Y,out:X})}var nL=E("ZodReadonly",(Y,X)=>{f2.init(Y,X),Z0.init(Y,X),Y.unwrap=()=>Y._zod.def.innerType});function rL(Y){return new nL({type:"readonly",innerType:Y})}var sL=E("ZodLazy",(Y,X)=>{m2.init(Y,X),Z0.init(Y,X),Y.unwrap=()=>Y._zod.def.getter()});function zW(Y){return new sL({type:"lazy",getter:Y})}var AJ=E("ZodCustom",(Y,X)=>{c2.init(Y,X),Z0.init(Y,X)});function KW(Y,X){return E7(AJ,Y??(()=>!0),X)}function aL(Y,X={}){return P7(AJ,Y,X)}function tL(Y){return M7(Y)}function UW(Y,X={error:`Input not instance of ${Y.name}`}){let J=new AJ({type:"custom",check:"custom",fn:(Q)=>Q instanceof Y,abort:!0,...s.normalizeParams(X)});return J._zod.bag.Class=Y,J}function qW(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 eL(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 o1(Y,...X){let J=new Headers(eL(Y)),Q=J.get("user-agent")||"";return J.set("user-agent",[Q,...X].filter(Boolean).join(" ")),Object.fromEntries(J.entries())}var YV=[{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]}],v6=[...YV,{mediaType:"audio/mp4",bytesPrefix:[0,0,0,null,102,116,121,112]}];var XV=12,JV=131072,h6=JV+XV;async function aY(Y){var X;try{await((X=Y.body)==null?void 0:X.cancel())}catch(J){}}var DW="AI_DownloadError",EW=`vercel.ai.error.${DW}`,QV=Symbol.for(EW),HW,ZW,b0=class extends(ZW=R,HW=QV,ZW){constructor({url:Y,statusCode:X,statusText:J,cause:Q,message:$=Q==null?`Failed to download ${Y}: ${X} ${J}`:`Failed to download ${Y}: ${Q}`}){super({name:DW,message:$,cause:Q});this[HW]=!0,this.url=Y,this.statusCode=X,this.statusText=J}static isInstance(Y){return R.hasMarker(Y,EW)}};function $V(Y=globalThis){return Y.window!=null}function LW(Y,X){try{return new URL(Y).origin===new URL(X).origin}catch(J){return!1}}function GV(Y){let X;try{X=new URL(Y)}catch(Q){throw new b0({url:Y,message:`Invalid URL: ${Y}`})}if(X.protocol==="data:")return;if(X.protocol!=="http:"&&X.protocol!=="https:")throw new b0({url:Y,message:`URL scheme must be http, https, or data, got ${X.protocol}`});let J=X.hostname.toLowerCase().replace(/\.+$/,"");if(!J)throw new b0({url:Y,message:"URL must have a hostname"});if(J==="localhost"||J.endsWith(".local")||J.endsWith(".localhost"))throw new b0({url:Y,message:`URL with hostname ${J} is not allowed`});if(J.startsWith("[")&&J.endsWith("]")){let Q=J.slice(1,-1);if(PW(Q))throw new b0({url:Y,message:`URL with IPv6 address ${J} is not allowed`});return}if(SJ(J)){if(kJ(J))throw new b0({url:Y,message:`URL with IP address ${J} is not allowed`});return}}function WV({address:Y,family:X,hostname:J}){if(X===4?!SJ(Y)||kJ(Y):X===6?PW(Y):!0)throw new b0({url:J,message:`Hostname ${J} resolved to disallowed IP address ${Y}`})}function SJ(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 kJ(Y){let X=Y.split(".").map(Number),[J,Q,$]=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&&$===0)return!0;if(J===192&&Q===0&&$===2)return!0;if(J===192&&Q===168)return!0;if(J===198&&(Q===18||Q===19))return!0;if(J===198&&Q===51&&$===100)return!0;if(J===203&&Q===0&&$===113)return!0;if(J>=224)return!0;return!1}function zV(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 $=(W)=>{if(W==="")return[];let K=[],H=W.split(":");for(let U=0;U<H.length;U++){let Z=H[U];if(Z.includes(".")){if(U!==H.length-1||!SJ(Z))return null;let[O,N,V,q]=Z.split(".").map(Number);K.push(O<<8|N,V<<8|q);continue}if(!/^[0-9a-f]{1,4}$/.test(Z))return null;K.push(parseInt(Z,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 PW(Y){let X=zV(Y);if(X===null)return!0;let J=($)=>X.slice(0,$).every((G)=>G===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 $=X[6]>>8&255,G=X[6]&255,W=X[7]>>8&255,K=X[7]&255;return kJ(`${$}.${G}.${W}.${K}`)}return!1}function KV(Y){return(X,J,Q)=>{Y(X,{...J,all:!0},($,G)=>{if($){Q($);return}try{let[W]=G;if(W==null)throw Error(`Hostname ${X} did not resolve to an address`);for(let{address:K,family:H}of G)WV({address:K,family:H,hostname:X});if(J.all===!0)Q(null,G);else Q(null,W.address,W.family)}catch(W){Q(W instanceof Error?W:Error(String(W)))}})}}var RJ;function UV(){var Y,X,J;let Q=globalThis.process;return((Y=Q==null?void 0:Q.release)==null?void 0:Y.name)==="node"&&((X=Q.versions)==null?void 0:X.bun)==null&&((J=Q.versions)==null?void 0:J.deno)==null&&Q.title!=="workerd"&&globalThis.EdgeRuntime==null}async function HV(){if(!UV())return globalThis.fetch;return RJ!=null?RJ:RJ=Promise.resolve().then(ZV)}function ZV(){let Y=VW("node:module"),{lookup:X}=VW("node:dns"),J=Y.createRequire(MW()),{Agent:Q,fetch:$}=J("undici"),G=new Q({connect:{lookup:KV(X)}});return(W,K)=>$(W,{...K,dispatcher:G})}function VW(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 MW(){let Y=Error.prepareStackTrace;try{Error.prepareStackTrace=($,G)=>G;let X=Error("Capture current module path");Error.captureStackTrace(X,MW);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 LV=["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 VV(Y){let X=new Headers(Y);for(let J of LV)X.delete(J);return X}var NV=10,BV=new Set([301,302,303,307,308]);async function FV(Y){return Y==null||Y===globalThis.fetch?await HV():Y}async function wW({url:Y,headers:X,abortSignal:J,maxRedirects:Q=NV,fetch:$,trustedOrigin:G}){var W;let K=X===void 0?void 0:VV(X),H=(Z)=>{let O={signal:J,redirect:Z};if(K!==void 0)O.headers=new Headers(K);return O},U=Y;for(let Z=0;Z<=Q;Z++){let O=G!==void 0&&LW(U,G);if(!O)GV(U);let N=O&&$!=null?$:O?globalThis.fetch:await FV($),V=await N(U,H("manual"));if(V.type==="opaqueredirect"){if(!$V())throw new b0({url:Y,message:`Redirect from ${U} could not be validated and was blocked`});return await N(U,H("follow"))}let q=(W=V.headers)==null?void 0:W.get("location");if(BV.has(V.status)&&q){aY(V);let T=new URL(q,U).toString();if(K!==void 0&&!LW(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 xJ=2147483648;async function AW({response:Y,url:X,maxBytes:J=xJ}){let Q=Y.headers.get("content-length");if(Q!=null){let Z=parseInt(Q,10);if(!isNaN(Z)&&Z>J)throw await aY(Y),new b0({url:X,message:`Download of ${X} exceeded maximum size of ${J} bytes (Content-Length: ${Z}).`})}let $=Y.body;if($==null)return new Uint8Array(0);let G=$.getReader(),W=[],K=0;try{while(!0){let{done:Z,value:O}=await G.read();if(Z)break;if(K+=O.length,K>J)throw new b0({url:X,message:`Download of ${X} exceeded maximum size of ${J} bytes.`});W.push(O)}}finally{try{await G.cancel()}catch(Z){}finally{G.releaseLock()}}let H=new Uint8Array(K),U=0;for(let Z of W)H.set(Z,U),U+=Z.length;return H}var B0=({prefix:Y,size:X=16,alphabet:J="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:Q="-"}={})=>{let $=()=>{let G=J.length,W=Array(X);for(let K=0;K<X;K++)W[K]=J[Math.random()*G|0];return W.join("")};if(Y==null)return $;if(J.includes(Q))throw new $$({argument:"separator",message:`The separator "${Q}" must not be part of the alphabet "${J}".`});return()=>`${Y}${Q}${$()}`},f6=B0();function RW(Y){var X,J;return(J=(X=globalThis.Buffer)==null?void 0:X.isBuffer(Y))!=null?J:!1}var OV=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,jV=/"(?: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 NW(Y){let X=JSON.parse(Y);if(X===null||typeof X!=="object")return X;if(OV.test(Y)===!1&&jV.test(Y)===!1)return X;return qV(X)}function qV(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 $ in Q){let G=Q[$];if(G&&typeof G==="object")X.push(G)}}}return Y}function DV(Y){let{stackTraceLimit:X}=Error;try{Error.stackTraceLimit=0}catch(J){return NW(Y)}try{return NW(Y)}finally{Error.stackTraceLimit=X}}function bJ(Y){if(Y.type==="object"||Array.isArray(Y.type)&&Y.type.includes("object")){let{additionalProperties:J}=Y;Y.additionalProperties=J!=null&&typeof J!=="boolean"?I1(J):!1;let{properties:Q}=Y;if(Q!=null)for(let $ of Object.keys(Q))Q[$]=I1(Q[$])}if(Y.items!=null)Y.items=Array.isArray(Y.items)?Y.items.map(I1):I1(Y.items);if(Y.anyOf!=null)Y.anyOf=Y.anyOf.map(I1);if(Y.allOf!=null)Y.allOf=Y.allOf.map(I1);if(Y.oneOf!=null)Y.oneOf=Y.oneOf.map(I1);let{definitions:X}=Y;if(X!=null)for(let J of Object.keys(X))X[J]=I1(X[J]);return Y}function I1(Y){if(typeof Y==="boolean")return Y;return bJ(Y)}var EV=Symbol("Let zodToJsonSchema decide on which parser to use"),BW={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"},PV=(Y)=>typeof Y==="string"?{...BW,name:Y}:{...BW,...Y};function l0(){return{}}function MV(Y,X){var J,Q,$;let G={type:"array"};if(((J=Y.type)==null?void 0:J._def)&&(($=(Q=Y.type)==null?void 0:Q._def)==null?void 0:$.typeName)!=="ZodAny")G.items=G0(Y.type._def,{...X,currentPath:[...X.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 wV(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 AV(){return{type:"boolean"}}function TW(Y,X){return G0(Y.type._def,X)}var RV=(Y,X)=>{return G0(Y.innerType._def,X)};function CW(Y,X,J){let Q=J!=null?J:X.dateStrategy;if(Array.isArray(Q))return{anyOf:Q.map(($)=>CW(Y,X,$))};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 TV(Y)}}var TV=(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 CV(Y,X){return{...G0(Y.innerType._def,X),default:Y.defaultValue()}}function _V(Y,X){return X.effectStrategy==="input"?G0(Y.schema._def,X):l0()}function IV(Y){return{type:"string",enum:Array.from(Y.values)}}var SV=(Y)=>{if("type"in Y&&Y.type==="string")return!1;return"allOf"in Y};function kV(Y,X){let J=[G0(Y.left._def,{...X,currentPath:[...X.currentPath,"allOf","0"]}),G0(Y.right._def,{...X,currentPath:[...X.currentPath,"allOf","1"]})].filter(($)=>!!$),Q=[];return J.forEach(($)=>{if(SV($))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 xV(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 TJ=void 0,t0={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(TJ===void 0)TJ=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return TJ},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 _W(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":e0(J,"email",Q.message,X);break;case"format:idn-email":e0(J,"idn-email",Q.message,X);break;case"pattern:zod":x0(J,t0.email,Q.message,X);break}break;case"url":e0(J,"uri",Q.message,X);break;case"uuid":e0(J,"uuid",Q.message,X);break;case"regex":x0(J,Q.regex,Q.message,X);break;case"cuid":x0(J,t0.cuid,Q.message,X);break;case"cuid2":x0(J,t0.cuid2,Q.message,X);break;case"startsWith":x0(J,RegExp(`^${CJ(Q.value,X)}`),Q.message,X);break;case"endsWith":x0(J,RegExp(`${CJ(Q.value,X)}$`),Q.message,X);break;case"datetime":e0(J,"date-time",Q.message,X);break;case"date":e0(J,"date",Q.message,X);break;case"time":e0(J,"time",Q.message,X);break;case"duration":e0(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":{x0(J,RegExp(CJ(Q.value,X)),Q.message,X);break}case"ip":{if(Q.version!=="v6")e0(J,"ipv4",Q.message,X);if(Q.version!=="v4")e0(J,"ipv6",Q.message,X);break}case"base64url":x0(J,t0.base64url,Q.message,X);break;case"jwt":x0(J,t0.jwt,Q.message,X);break;case"cidr":{if(Q.version!=="v6")x0(J,t0.ipv4Cidr,Q.message,X);if(Q.version!=="v4")x0(J,t0.ipv6Cidr,Q.message,X);break}case"emoji":x0(J,t0.emoji(),Q.message,X);break;case"ulid":{x0(J,t0.ulid,Q.message,X);break}case"base64":{switch(X.base64Strategy){case"format:binary":{e0(J,"binary",Q.message,X);break}case"contentEncoding:base64":{J.contentEncoding="base64";break}case"pattern:zod":{x0(J,t0.base64,Q.message,X);break}}break}case"nanoid":x0(J,t0.nanoid,Q.message,X);case"toLowerCase":case"toUpperCase":case"trim":break;default:}return J}function CJ(Y,X){return X.patternStrategy==="escape"?vV(Y):Y}var bV=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function vV(Y){let X="";for(let J=0;J<Y.length;J++){if(!bV.has(Y[J]))X+="\\";X+=Y[J]}return X}function e0(Y,X,J,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:X,...J&&Q.errorMessages&&{errorMessage:{format:J}}})}else Y.format=X}function x0(Y,X,J,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:FW(X,Q),...J&&Q.errorMessages&&{errorMessage:{pattern:J}}})}else Y.pattern=FW(X,Q)}function FW(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")},$=Q.i?Y.source.toLowerCase():Y.source,G="",W=!1,K=!1,H=!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(H)G+=$[U],G+=`${$[U-2]}-${$[U]}`.toUpperCase(),H=!1;else if($[U+1]==="-"&&((J=$[U+2])==null?void 0:J.match(/[a-z]/)))G+=$[U],H=!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
78
|
]))`;continue}else if($[U]==="$"){G+=`($|(?=[\r
|
|
94
79
|
]))`;continue}}if(Q.s&&$[U]==="."){G+=K?`${$[U]}\r
|
|
95
80
|
`:`[${$[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 ${X.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),Y.source}return G}function y4(Y,X){var J,Q,$,G,W,K;let Z={type:"object",additionalProperties:(J=G0(Y.valueType._def,{...X,currentPath:[...X.currentPath,"additionalProperties"]}))!=null?J:X.allowedAdditionalProperties};if(((Q=Y.keyType)==null?void 0:Q._def.typeName)==="ZodString"&&(($=Y.keyType._def.checks)==null?void 0:$.length)){let{type:U,...L}=g4(Y.keyType._def,X);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}=v4(Y.keyType._def,X);return{...Z,propertyNames:L}}return Z}function aV(Y,X){if(X.mapStrategy==="record")return y4(Y,X);let J=G0(Y.keyType._def,{...X,currentPath:[...X.currentPath,"items","items","0"]})||i0(),Q=G0(Y.valueType._def,{...X,currentPath:[...X.currentPath,"items","items","1"]})||i0();return{type:"array",maxItems:125,items:{type:"array",items:[J,Q],minItems:2,maxItems:2}}}function tV(Y){let X=Y.values,Q=Object.keys(Y.values).filter((G)=>{return typeof X[X[G]]!=="number"}).map((G)=>X[G]),$=Array.from(new Set(Q.map((G)=>typeof G)));return{type:$.length===1?$[0]==="string"?"string":"number":["string","number"],enum:Q}}function eV(){return{not:i0()}}function YN(){return{type:"null"}}var x8={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function XN(Y,X){let J=Y.options instanceof Map?Array.from(Y.options.values()):Y.options;if(J.every((Q)=>(Q._def.typeName in x8)&&(!Q._def.checks||!Q._def.checks.length))){let Q=J.reduce(($,G)=>{let W=x8[G._def.typeName];return W&&!$.includes(W)?[...$,W]:$},[]);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 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===J.length){let $=Q.filter((G,W,K)=>K.indexOf(G)===W);return{type:$.length>1?$:$[0],enum:J.reduce((G,W)=>{return G.includes(W._def.value)?G:[...G,W._def.value]},[])}}}else if(J.every((Q)=>Q._def.typeName==="ZodEnum"))return{type:"string",enum:J.reduce((Q,$)=>[...Q,...$._def.values.filter((G)=>!Q.includes(G))],[])};return JN(Y,X)}var JN=(Y,X)=>{let J=(Y.options instanceof Map?Array.from(Y.options.values()):Y.options).map((Q,$)=>G0(Q._def,{...X,currentPath:[...X.currentPath,"anyOf",`${$}`]})).filter((Q)=>!!Q&&(!X.strictUnions||typeof Q==="object"&&Object.keys(Q).length>0));return J.length?{anyOf:J}:void 0};function QN(Y,X){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(Y.innerType._def.typeName)&&(!Y.innerType._def.checks||!Y.innerType._def.checks.length))return{type:[x8[Y.innerType._def.typeName],"null"]};let J=G0(Y.innerType._def,{...X,currentPath:[...X.currentPath,"anyOf","0"]});return J&&{anyOf:[J,{type:"null"}]}}function $N(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 GN(Y,X){let J={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,{...X,currentPath:[...X.currentPath,"properties",W],propertyPath:[...X.currentPath,"properties",W]});if(U===void 0)continue;if(J.properties[W]=U,!Z)Q.push(W)}if(Q.length)J.required=Q;let G=WN(Y,X);if(G!==void 0)J.additionalProperties=G;return J}function WN(Y,X){if(Y.catchall._def.typeName!=="ZodNever")return G0(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 zN(Y){try{return Y.isOptional()}catch(X){return!0}}var KN=(Y,X)=>{var J;if(X.currentPath.toString()===((J=X.propertyPath)==null?void 0:J.toString()))return G0(Y.innerType._def,X);let Q=G0(Y.innerType._def,{...X,currentPath:[...X.currentPath,"anyOf","1"]});return Q?{anyOf:[{not:i0()},Q]}:i0()},UN=(Y,X)=>{if(X.pipeStrategy==="input")return G0(Y.in._def,X);else if(X.pipeStrategy==="output")return G0(Y.out._def,X);let J=G0(Y.in._def,{...X,currentPath:[...X.currentPath,"allOf","0"]}),Q=G0(Y.out._def,{...X,currentPath:[...X.currentPath,"allOf",J?"1":"0"]});return{allOf:[J,Q].filter(($)=>$!==void 0)}};function ZN(Y,X){return G0(Y.type._def,X)}function LN(Y,X){let Q={type:"array",uniqueItems:!0,items:G0(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 HN(Y,X){if(Y.rest)return{type:"array",minItems:Y.items.length,items:Y.items.map((J,Q)=>G0(J._def,{...X,currentPath:[...X.currentPath,"items",`${Q}`]})).reduce((J,Q)=>Q===void 0?J:[...J,Q],[]),additionalItems:G0(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)=>G0(J._def,{...X,currentPath:[...X.currentPath,"items",`${Q}`]})).reduce((J,Q)=>Q===void 0?J:[...J,Q],[])}}function VN(){return{not:i0()}}function NN(){return i0()}var BN=(Y,X)=>{return G0(Y.innerType._def,X)},qN=(Y,X,J)=>{switch(X){case"ZodString":return g4(Y,J);case"ZodNumber":return $N(Y);case"ZodObject":return GN(Y,J);case"ZodBigInt":return fV(Y);case"ZodBoolean":return mV();case"ZodDate":return h4(Y,J);case"ZodUndefined":return VN();case"ZodNull":return YN();case"ZodArray":return yV(Y,J);case"ZodUnion":case"ZodDiscriminatedUnion":return XN(Y,J);case"ZodIntersection":return oV(Y,J);case"ZodTuple":return HN(Y,J);case"ZodRecord":return y4(Y,J);case"ZodLiteral":return nV(Y);case"ZodEnum":return dV(Y);case"ZodNativeEnum":return tV(Y);case"ZodNullable":return QN(Y,J);case"ZodOptional":return KN(Y,J);case"ZodMap":return aV(Y,J);case"ZodSet":return LN(Y,J);case"ZodLazy":return()=>Y.getter()._def;case"ZodPromise":return ZN(Y,J);case"ZodNaN":case"ZodNever":return eV();case"ZodEffects":return lV(Y,J);case"ZodAny":return i0();case"ZodUnknown":return NN();case"ZodDefault":return pV(Y,J);case"ZodBranded":return v4(Y,J);case"ZodReadonly":return BN(Y,J);case"ZodCatch":return uV(Y,J);case"ZodPipeline":return UN(Y,J);case"ZodFunction":case"ZodVoid":case"ZodSymbol":return;default:return((Q)=>{return})(X)}},FN=(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 G0(Y,X,J=!1){var Q;let $=X.seen.get(Y);if(X.override){let Z=(Q=X.override)==null?void 0:Q.call(X,Y,X,$,J);if(Z!==hV)return Z}if($&&!J){let Z=ON($,X);if(Z!==void 0)return Z}let G={def:Y,path:X.currentPath,jsonSchema:void 0};X.seen.set(Y,G);let W=qN(Y,Y.typeName,X),K=typeof W==="function"?G0(W(),X):W;if(K)jN(Y,X,K);if(X.postProcess){let Z=X.postProcess(K,Y,X);return G.jsonSchema=K,Z}return G.jsonSchema=K,K}var ON=(Y,X)=>{switch(X.$refStrategy){case"root":return{$ref:Y.path.join("/")};case"relative":return{$ref:FN(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`),i0();return X.$refStrategy==="seen"?i0():void 0}}},jN=(Y,X,J)=>{if(Y.description)J.description=Y.description;return J},DN=(Y)=>{let X=gV(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,$])=>[$._def,{def:$._def,path:[...X.basePath,X.definitionPath,Q],jsonSchema:void 0}]))}},PN=(Y,X)=>{var J;let Q=DN(X),$=typeof X==="object"&&X.definitions?Object.entries(X.definitions).reduce((U,[L,F])=>{var N;return{...U,[L]:(N=G0(F._def,{...Q,currentPath:[...Q.basePath,Q.definitionPath,L]},!0))!=null?N:i0()}},{}):void 0,G=typeof X==="string"?X:(X==null?void 0:X.nameStrategy)==="title"?void 0:X==null?void 0:X.name,W=(J=G0(Y._def,G===void 0?Q:{...Q,currentPath:[...Q.basePath,Q.definitionPath,G]},!1))!=null?J:i0(),K=typeof X==="object"&&X.name!==void 0&&X.nameStrategy==="title"?X.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},b8=Symbol.for("vercel.ai.schema");function YX(Y){let X;return()=>{if(X==null)X=Y();return X}}function XX(Y,{validate:X}={}){return{[b8]:!0,_type:void 0,get jsonSchema(){if(typeof Y==="function")Y=Y();return Y},validate:X}}function EN(Y){return typeof Y==="object"&&Y!==null&&b8 in Y&&Y[b8]===!0&&"jsonSchema"in Y&&"validate"in Y}function JX(Y){return Y==null?XX({type:"object",properties:{},additionalProperties:!1}):EN(Y)?Y:("~standard"in Y)?Y["~standard"].vendor==="zod"?o9(Y):MN(Y):Y()}function MN(Y){return XX(()=>{if(!wN(Y))throw Error(`Standard schema vendor '${Y["~standard"].vendor}' does not support JSON Schema conversion.`);return y8(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 r0({value:X,cause:J.issues})}}})}function wN(Y){return Y["~standard"].jsonSchema!=null}function AN(Y,X){var J;let Q=(J=X==null?void 0:X.useReferences)!=null?J:!1;return XX(()=>PN(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 TN(Y,X){var J;let Q=(J=X==null?void 0:X.useReferences)!=null?J:!1;return XX(()=>y8(S7(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 RN(Y){return"_zod"in Y}function o9(Y,X){if(RN(Y))return TN(Y,X);else return AN(Y,X)}async function H9({value:Y,schema:X,context:J}){let Q=JX(X);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:J}),rawValue:Y}}catch($){return{success:!1,error:r0.wrap({value:Y,cause:$,context:J}),rawValue:Y}}}async function k1({text:Y,schema:X}){try{let J=vV(Y);if(X==null)return{success:!0,value:J,rawValue:J};return await H9({value:J,schema:X})}catch(J){return{success:!1,error:xY.isInstance(J)?J:new xY({text:Y,cause:J}),rawValue:void 0}}}async function f8(Y){if(typeof Y==="function")Y=Y();return Promise.resolve(Y)}var f4="AI_SerializationError",m4=`vercel.ai.error.${f4}`,CN=Symbol.for(m4),w4,A4,ND=class extends(A4=T,w4=CN,A4){constructor({message:Y="Failed to serialize value.",cause:X}={}){super({name:f4,message:Y,cause:X});this[w4]=!0}static isInstance(Y){return T.hasMarker(Y,m4)}};var SN=Object.defineProperty,kN=(Y,X)=>{for(var J in X)SN(Y,J,{get:X[J],enumerable:!0})},gW="AI_InvalidArgumentError",yW=`vercel.ai.error.${gW}`,xN=Symbol.for(yW),u4,c4,m8=class extends(c4=T,u4=xN,c4){constructor({parameter:Y,value:X,message:J}){super({name:gW,message:`Invalid argument for parameter ${Y}: ${J}`});this[u4]=!0,this.parameter=Y,this.value=X}static isInstance(Y){return T.hasMarker(Y,yW)}},fW="AI_InvalidStreamPartError",mW=`vercel.ai.error.${fW}`,bN=Symbol.for(mW),p4,l4,TD=class extends(l4=T,p4=bN,l4){constructor({chunk:Y,message:X}){super({name:fW,message:X});this[p4]=!0,this.chunk=Y}static isInstance(Y){return T.hasMarker(Y,mW)}},uW="AI_InvalidToolApprovalError",cW=`vercel.ai.error.${uW}`,vN=Symbol.for(cW),d4,i4,CD=class extends(i4=T,d4=vN,i4){constructor({approvalId:Y}){super({name:uW,message:`Tool approval response references unknown approvalId: "${Y}". No matching tool-approval-request found in message history.`});this[d4]=!0,this.approvalId=Y}static isInstance(Y){return T.hasMarker(Y,cW)}},pW="AI_InvalidToolApprovalSignatureError",lW=`vercel.ai.error.${pW}`,hN=Symbol.for(lW),o4,n4,_D=class extends(n4=T,o4=hN,n4){constructor({approvalId:Y,toolCallId:X,reason:J}){super({name:pW,message:`Tool approval signature verification failed for approval "${Y}" (tool call "${X}"): ${J}`});this[o4]=!0,this.approvalId=Y,this.toolCallId=X}static isInstance(Y){return T.hasMarker(Y,lW)}},dW="AI_InvalidToolInputError",iW=`vercel.ai.error.${dW}`,gN=Symbol.for(iW),r4,s4,kD=class extends(s4=T,r4=gN,s4){constructor({toolInput:Y,toolName:X,cause:J,message:Q=`Invalid input for tool ${X}: ${p1(J)}`}){super({name:dW,message:Q,cause:J});this[r4]=!0,this.toolInput=Y,this.toolName=X}static isInstance(Y){return T.hasMarker(Y,iW)}},oW="AI_ToolCallNotFoundForApprovalError",nW=`vercel.ai.error.${oW}`,yN=Symbol.for(nW),a4,t4,bD=class extends(t4=T,a4=yN,t4){constructor({toolCallId:Y,approvalId:X}){super({name:oW,message:`Tool call "${Y}" not found for approval request "${X}".`});this[a4]=!0,this.toolCallId=Y,this.approvalId=X}static isInstance(Y){return T.hasMarker(Y,nW)}},rW="AI_MissingToolResultsError",sW=`vercel.ai.error.${rW}`,fN=Symbol.for(sW),e4,YW,hD=class extends(YW=T,e4=fN,YW){constructor({toolCallIds:Y}){super({name:rW,message:`Tool result${Y.length>1?"s are":" is"} missing for tool call${Y.length>1?"s":""} ${Y.join(", ")}.`});this[e4]=!0,this.toolCallIds=Y}static isInstance(Y){return T.hasMarker(Y,sW)}},aW="AI_NoImageGeneratedError",tW=`vercel.ai.error.${aW}`,mN=Symbol.for(tW),XW,JW,yD=class extends(JW=T,XW=mN,JW){constructor({message:Y="No image generated.",cause:X,calls:J,responses:Q}){super({name:aW,message:Y,cause:X});this[XW]=!0,this.calls=J,this.responses=Q}static isInstance(Y){return T.hasMarker(Y,tW)}},eW="AI_NoObjectGeneratedError",Yz=`vercel.ai.error.${eW}`,uN=Symbol.for(Yz),QW,$W,j1=class extends($W=T,QW=uN,$W){constructor({message:Y="No object generated.",cause:X,text:J,response:Q,usage:$,finishReason:G}){super({name:eW,message:Y,cause:X});this[QW]=!0,this.text=J,this.response=Q,this.usage=$,this.finishReason=G}static isInstance(Y){return T.hasMarker(Y,Yz)}},Xz="AI_NoOutputGeneratedError",Jz=`vercel.ai.error.${Xz}`,cN=Symbol.for(Jz),GW,WW,uD=class extends(WW=T,GW=cN,WW){constructor({message:Y="No output generated.",cause:X}={}){super({name:Xz,message:Y,cause:X});this[GW]=!0}static isInstance(Y){return T.hasMarker(Y,Jz)}},Qz="AI_NoSpeechGeneratedError",$z=`vercel.ai.error.${Qz}`,pN=Symbol.for($z),zW,KW,pD=class extends(KW=T,zW=pN,KW){constructor(Y){super({name:Qz,message:"No speech audio generated."});this[zW]=!0,this.responses=Y.responses}static isInstance(Y){return T.hasMarker(Y,$z)}},Gz="AI_NoTranscriptGeneratedError",Wz=`vercel.ai.error.${Gz}`,lN=Symbol.for(Wz),UW,ZW,dD=class extends(ZW=T,UW=lN,ZW){constructor(Y){super({name:Gz,message:"No transcript generated."});this[UW]=!0,this.responses=Y.responses}static isInstance(Y){return T.hasMarker(Y,Wz)}},zz="AI_NoTranslationGeneratedError",Kz=`vercel.ai.error.${zz}`,dN=Symbol.for(Kz),LW,HW,oD=class extends(HW=T,LW=dN,HW){constructor(Y){super({name:zz,message:"No translation generated."});this[LW]=!0,this.response=Y.response}static isInstance(Y){return T.hasMarker(Y,Kz)}},u8="AI_NoVideoGeneratedError",Uz=`vercel.ai.error.${u8}`,iN=Symbol.for(Uz),VW,NW,rD=class extends(NW=T,VW=iN,NW){constructor({message:Y="No video generated.",cause:X,responses:J}){super({name:u8,message:Y,cause:X});this[VW]=!0,this.responses=J}static isInstance(Y){return T.hasMarker(Y,Uz)}static isNoVideoGeneratedError(Y){return Y instanceof Error&&Y.name===u8&&typeof Y.responses<"u"?!0:!1}toJSON(){return{name:this.name,message:this.message,stack:this.stack,cause:this.cause,responses:this.responses}}},Zz="AI_NoSuchToolError",Lz=`vercel.ai.error.${Zz}`,oN=Symbol.for(Lz),BW,qW,aD=class extends(qW=T,BW=oN,qW){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:Zz,message:J});this[BW]=!0,this.toolName=Y,this.availableTools=X}static isInstance(Y){return T.hasMarker(Y,Lz)}},Hz="AI_StreamProviderError",Vz=`vercel.ai.error.${Hz}`,nN=Symbol.for(Vz),FW,OW,eD=class extends(OW=T,FW=nN,OW){constructor({message:Y,type:X,code:J,statusCode:Q,isRetryable:$=rN(Q),data:G,cause:W}){super({name:Hz,message:Y,cause:W});this[FW]=!0,this.type=X,this.code=J,this.statusCode=Q,this.isRetryable=$,this.data=G}static isInstance(Y){return T.hasMarker(Y,Vz)}};function rN(Y){return Y!=null&&(Y===408||Y===409||Y===429||Y>=500)}var Nz="AI_ToolCallRepairError",Bz=`vercel.ai.error.${Nz}`,sN=Symbol.for(Bz),jW,DW,XP=class extends(DW=T,jW=sN,DW){constructor({cause:Y,originalError:X,message:J=`Error repairing tool call: ${p1(Y)}`}){super({name:Nz,message:J,cause:Y});this[jW]=!0,this.originalError=X}static isInstance(Y){return T.hasMarker(Y,Bz)}},qz="AI_ToolChoiceViolationError",Fz=`vercel.ai.error.${qz}`,aN=Symbol.for(Fz),PW,EW,QP=class extends(EW=T,PW=aN,EW){constructor({toolChoice:Y,finishReason:X,provider:J,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:qz,message:G});this[PW]=!0,this.toolChoice=Y,this.finishReason=X,this.provider=J,this.modelId=Q,this.content=$}static isInstance(Y){return T.hasMarker(Y,Fz)}};var Oz="AI_UIMessageStreamError",jz=`vercel.ai.error.${Oz}`,tN=Symbol.for(jz),MW,wW,GP=class extends(wW=T,MW=tN,wW){constructor({chunkType:Y,chunkId:X,message:J}){super({name:Oz,message:J});this[MW]=!0,this.chunkType=Y,this.chunkId=X}static isInstance(Y){return T.hasMarker(Y,jz)}},Dz="AI_InvalidDataContentError",Pz=`vercel.ai.error.${Dz}`,eN=Symbol.for(Pz),AW,TW,zP=class extends(TW=T,AW=eN,TW){constructor({content:Y,cause:X,message:J=`Invalid data content. Expected a base64 string, Uint8Array, ArrayBuffer, or Buffer, but got ${typeof Y}.`}){super({name:Dz,message:J,cause:X});this[AW]=!0,this.content=Y}static isInstance(Y){return T.hasMarker(Y,Pz)}},Ez="AI_InvalidMessageRoleError",Mz=`vercel.ai.error.${Ez}`,YB=Symbol.for(Mz),RW,CW,UP=class extends(CW=T,RW=YB,CW){constructor({role:Y,message:X=`Invalid message role: '${Y}'. Must be one of: "system", "user", "assistant", "tool".`}){super({name:Ez,message:X});this[RW]=!0,this.role=Y}static isInstance(Y){return T.hasMarker(Y,Mz)}},wz="AI_MessageConversionError",Az=`vercel.ai.error.${wz}`,XB=Symbol.for(Az),IW,_W,LP=class extends(_W=T,IW=XB,_W){constructor({originalMessage:Y,message:X}){super({name:wz,message:X});this[IW]=!0,this.originalMessage=Y}static isInstance(Y){return T.hasMarker(Y,Az)}},Tz="AI_RetryError",Rz=`vercel.ai.error.${Tz}`,JB=Symbol.for(Rz),SW,kW,VP=class extends(kW=T,SW=JB,kW){constructor({message:Y,reason:X,errors:J}){super({name:Tz,message:Y});this[SW]=!0,this.reason=X,this.errors=J,this.lastError=J[J.length-1]}static isInstance(Y){return T.hasMarker(Y,Rz)}};var QB="7.0.102",$B=async({url:Y,maxBytes:X,abortSignal:J})=>{var Q;let $=Y.toString();try{let G=L9({},`ai-sdk/${QB}`,T4()),W=await k4({url:$,headers:G,abortSignal:J});if(!W.ok)throw await eY(W),new b0({url:$,statusCode:W.status,statusText:W.statusText});return{data:await x4({response:W,url:$,maxBytes:X!=null?X:g8}),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:T8,boolean:Q4,custom:B4,discriminatedUnion:U4,enum:C8,instanceof:q4,lazy:N4,literal:L4,looseObject:z4,never:A8,null:$4,number:J4,object:W4,record:Z4,string:Y4,union:R8,unknown:i9},o1=z.lazy(()=>z.union([z.null(),z.string(),z.number(),z.boolean(),z.record(z.string(),o1.optional()),z.array(o1)])),g=z.record(z.string(),z.record(z.string(),o1.optional())),r9=z.union([z.string(),z.instanceof(Uint8Array),z.instanceof(ArrayBuffer),z.custom(b4,{message:"Must be a Buffer"})]),c8=z.record(z.string(),z.string()),Cz=z.object({type:z.literal("text"),text:z.string(),providerOptions:g.optional()}),GB=z.object({type:z.literal("image"),image:z.union([r9,z.instanceof(URL),c8]),mediaType:z.string().optional(),providerOptions:g.optional()}),Iz=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:c8}),z.object({type:z.literal("text"),text:z.string()})]),WB=z.discriminatedUnion("type",[z.object({type:z.literal("data"),data:r9}),z.object({type:z.literal("url"),url:z.instanceof(URL)})]),_z=z.object({type:z.literal("file"),data:z.union([Iz,r9,z.instanceof(URL),c8]),filename:z.string().optional(),mediaType:z.string(),providerOptions:g.optional()}),zB=z.object({type:z.literal("reasoning"),text:z.string(),providerOptions:g.optional()}),KB=z.object({type:z.literal("custom"),kind:z.string().transform((Y)=>Y),providerOptions:g.optional()}),UB=z.object({type:z.literal("reasoning-file"),data:z.union([WB,r9,z.instanceof(URL)]),mediaType:z.string(),providerOptions:g.optional()}),ZB=z.object({type:z.literal("tool-call"),toolCallId:z.string(),toolName:z.string(),input:z.unknown(),providerOptions:g.optional(),providerExecuted:z.boolean().optional()}),LB=z.discriminatedUnion("type",[z.object({type:z.literal("text"),value:z.string(),providerOptions:g.optional()}),z.object({type:z.literal("json"),value:o1,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:o1,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:Iz,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()})]))})]),Sz=z.object({type:z.literal("tool-result"),toolCallId:z.string(),toolName:z.string(),output:LB,providerOptions:g.optional()}),HB=z.object({type:z.literal("tool-approval-request"),approvalId:z.string(),toolCallId:z.string(),reason:z.string().optional()}),VB=z.object({type:z.literal("tool-approval-response"),approvalId:z.string(),approved:z.boolean(),reason:z.string().optional()}),NB=z.object({role:z.literal("system"),content:z.string(),providerOptions:g.optional()}),BB=z.object({role:z.literal("user"),content:z.union([z.string(),z.array(z.union([Cz,GB,_z]))]),providerOptions:g.optional()}),qB=z.object({role:z.literal("assistant"),content:z.union([z.string(),z.array(z.union([Cz,KB,_z,zB,UB,ZB,Sz,HB]))]),providerOptions:g.optional()}),FB=z.object({role:z.literal("tool"),content:z.array(z.union([Sz,VB])),providerOptions:g.optional()}),FP=z.union([NB,BB,qB,FB]);var OB={};kN(OB,{array:()=>EB,choice:()=>MB,json:()=>wB,object:()=>PB,text:()=>DB});function jB(Y){let X=["ROOT"],J=-1,Q=null,$=0;function G(L){return L>="0"&&L<="9"||L>="A"&&L<="F"||L>="a"&&L<="f"}function W(L,F,N){switch(L){case'"':{J=F,X.pop(),X.push(N),X.push("INSIDE_STRING");break}case"f":case"t":case"n":{J=F,Q=F,X.pop(),X.push(N),X.push("INSIDE_LITERAL");break}case"-":{X.pop(),X.push(N),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=F,X.pop(),X.push(N),X.push("INSIDE_NUMBER");break}case"{":{J=F,X.pop(),X.push(N),X.push("INSIDE_OBJECT_START");break}case"[":{J=F,X.pop(),X.push(N),X.push("INSIDE_ARRAY_START");break}}}function K(L,F){switch(L){case",":{X.pop(),X.push("INSIDE_OBJECT_AFTER_COMMA");break}case"}":{J=F,X.pop();break}}}function Z(L,F){switch(L){case",":{X.pop(),X.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{J=F,X.pop();break}}}for(let L=0;L<Y.length;L++){let F=Y[L];switch(X[X.length-1]){case"ROOT":W(F,L,"FINISH");break;case"INSIDE_OBJECT_START":{switch(F){case'"':{X.pop(),X.push("INSIDE_OBJECT_KEY");break}case"}":{J=L,X.pop();break}}break}case"INSIDE_OBJECT_AFTER_COMMA":{switch(F){case'"':{X.pop(),X.push("INSIDE_OBJECT_KEY");break}}break}case"INSIDE_OBJECT_KEY":{switch(F){case'"':{X.pop(),X.push("INSIDE_OBJECT_AFTER_KEY");break}}break}case"INSIDE_OBJECT_AFTER_KEY":{switch(F){case":":{X.pop(),X.push("INSIDE_OBJECT_BEFORE_VALUE");break}}break}case"INSIDE_OBJECT_BEFORE_VALUE":{W(F,L,"INSIDE_OBJECT_AFTER_VALUE");break}case"INSIDE_OBJECT_AFTER_VALUE":{K(F,L);break}case"INSIDE_STRING":{switch(F){case'"':{X.pop(),J=L;break}case"\\":{X.push("INSIDE_STRING_ESCAPE");break}default:J=L}break}case"INSIDE_ARRAY_START":{switch(F){case"]":{J=L,X.pop();break}default:{J=L,W(F,L,"INSIDE_ARRAY_AFTER_VALUE");break}}break}case"INSIDE_ARRAY_AFTER_VALUE":{switch(F){case",":{X.pop(),X.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{J=L,X.pop();break}default:{J=L;break}}break}case"INSIDE_ARRAY_AFTER_COMMA":{W(F,L,"INSIDE_ARRAY_AFTER_VALUE");break}case"INSIDE_STRING_ESCAPE":{if(X.pop(),F==="u")$=0,X.push("INSIDE_STRING_UNICODE_ESCAPE");else J=L;break}case"INSIDE_STRING_UNICODE_ESCAPE":{if(G(F)){if($++,$===4)X.pop(),J=L}break}case"INSIDE_NUMBER":{switch(F){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{J=L;break}case"e":case"E":case"-":case".":break;case",":{if(X.pop(),X[X.length-1]==="INSIDE_ARRAY_AFTER_VALUE")Z(F,L);if(X[X.length-1]==="INSIDE_OBJECT_AFTER_VALUE")K(F,L);break}case"}":{if(X.pop(),X[X.length-1]==="INSIDE_OBJECT_AFTER_VALUE")K(F,L);break}case"]":{if(X.pop(),X[X.length-1]==="INSIDE_ARRAY_AFTER_VALUE")Z(F,L);break}default:{X.pop();break}}break}case"INSIDE_LITERAL":{let V=Y.substring(Q,L+1);if(!"false".startsWith(V)&&!"true".startsWith(V)&&!"null".startsWith(V)){if(X.pop(),X[X.length-1]==="INSIDE_OBJECT_AFTER_VALUE")K(F,L);else if(X[X.length-1]==="INSIDE_ARRAY_AFTER_VALUE")Z(F,L)}else J=L;break}}}let U=Y.slice(0,J+1);for(let L=X.length-1;L>=0;L--)switch(X[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 QX(Y){if(Y===void 0)return{value:void 0,state:"undefined-input"};let X=await k1({text:Y});if(X.success)return{value:X.value,state:"successful-parse"};if(X=await k1({text:jB(Y)}),X.success)return{value:X.value,state:"repaired-parse"};return{value:void 0,state:"failed-parse"}}var DB=()=>({name:"text",responseFormat:Promise.resolve({type:"text"}),async parseCompleteOutput({text:Y}){return Y},async parsePartialOutput({text:Y}){return{partial:Y}},createElementStreamTransform(){return}}),PB=({schema:Y,name:X,description:J})=>{let Q=JX(Y);return{name:"object",responseFormat:f8(Q.jsonSchema).then(($)=>({type:"json",schema:$,...X!=null&&{name:X},...J!=null&&{description:J}})),async parseCompleteOutput({text:$},G){let W=await k1({text:$});if(!W.success)throw new j1({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 j1({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 QX($);switch(G.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:G.value}}},createElementStreamTransform(){return}}},EB=({element:Y,minItems:X,maxItems:J,name:Q,description:$})=>{if(xW({name:"minItems",value:X}),xW({name:"maxItems",value:J}),X!=null&&J!=null&&X>J)throw new m8({parameter:"minItems",value:X,message:"minItems must be less than or equal to maxItems"});let G=JX(Y);return{name:"array",responseFormat:f8(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,...X!=null&&{minItems:X},...J!=null&&{maxItems:J}}},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 j1({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 j1({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=bW({value:U.elements,minItems:X,maxItems:J});if(L!=null)throw new j1({message:"No object generated: response did not match schema.",cause:L,text:W,response:K.response,usage:K.usage,finishReason:K.finishReason});let F=[];for(let N of U.elements){let V=await H9({value:N,schema:G});if(!V.success)throw new j1({message:"No object generated: response did not match schema.",cause:V.error,text:W,response:K.response,usage:K.usage,finishReason:K.finishReason});F.push(V.value)}return F},async parsePartialOutput({text:W}){let K=await QX(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 F of U){let N=await H9({value:F,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(J!=null&&W>=J){Z.error(bW({value:K,maxItems:J}));return}Z.enqueue(K[W])}}})}}};function xW({name:Y,value:X}){if(X==null)return;if(!Number.isInteger(X))throw new m8({parameter:Y,value:X,message:`${Y} must be an integer`});if(X<0)throw new m8({parameter:Y,value:X,message:`${Y} must be greater than or equal to 0`})}function bW({value:Y,minItems:X,maxItems:J}){if(X!=null&&Y.length<X)return new r0({value:Y,cause:`elements array must contain at least ${X} items`});if(J!=null&&Y.length>J)return new r0({value:Y,cause:`elements array must contain at most ${J} items`});return}var MB=({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},$){let G=await k1({text:Q});if(!G.success)throw new j1({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 j1({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 QX(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}}},wB=({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 $=await k1({text:J});if(!$.success)throw new j1({message:"No object generated: could not parse the response.",cause:$.error,text:J,response:Q.response,usage:Q.usage,finishReason:Q.finishReason});return $.value},async parsePartialOutput({text:J}){let Q=await QX(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 PP=O0({prefix:"aitxt",size:24}),EP=O0({prefix:"call",size:24});var wP=class extends TransformStream{constructor(){super({transform(Y,X){X.enqueue(`data: ${JSON.stringify(Y)}
|
|
81
|
+
]`;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 ${X.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),Y.source}return G}function IW(Y,X){var J,Q,$,G,W,K;let H={type:"object",additionalProperties:(J=G0(Y.valueType._def,{...X,currentPath:[...X.currentPath,"additionalProperties"]}))!=null?J:X.allowedAdditionalProperties};if(((Q=Y.keyType)==null?void 0:Q._def.typeName)==="ZodString"&&(($=Y.keyType._def.checks)==null?void 0:$.length)){let{type:U,...Z}=_W(Y.keyType._def,X);return{...H,propertyNames:Z}}else if(((G=Y.keyType)==null?void 0:G._def.typeName)==="ZodEnum")return{...H,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,...Z}=TW(Y.keyType._def,X);return{...H,propertyNames:Z}}return H}function hV(Y,X){if(X.mapStrategy==="record")return IW(Y,X);let J=G0(Y.keyType._def,{...X,currentPath:[...X.currentPath,"items","items","0"]})||l0(),Q=G0(Y.valueType._def,{...X,currentPath:[...X.currentPath,"items","items","1"]})||l0();return{type:"array",maxItems:125,items:{type:"array",items:[J,Q],minItems:2,maxItems:2}}}function gV(Y){let X=Y.values,Q=Object.keys(Y.values).filter((G)=>{return typeof X[X[G]]!=="number"}).map((G)=>X[G]),$=Array.from(new Set(Q.map((G)=>typeof G)));return{type:$.length===1?$[0]==="string"?"string":"number":["string","number"],enum:Q}}function yV(){return{not:l0()}}function fV(){return{type:"null"}}var _J={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function mV(Y,X){let J=Y.options instanceof Map?Array.from(Y.options.values()):Y.options;if(J.every((Q)=>(Q._def.typeName in _J)&&(!Q._def.checks||!Q._def.checks.length))){let Q=J.reduce(($,G)=>{let W=_J[G._def.typeName];return W&&!$.includes(W)?[...$,W]:$},[]);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 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===J.length){let $=Q.filter((G,W,K)=>K.indexOf(G)===W);return{type:$.length>1?$:$[0],enum:J.reduce((G,W)=>{return G.includes(W._def.value)?G:[...G,W._def.value]},[])}}}else if(J.every((Q)=>Q._def.typeName==="ZodEnum"))return{type:"string",enum:J.reduce((Q,$)=>[...Q,...$._def.values.filter((G)=>!Q.includes(G))],[])};return cV(Y,X)}var cV=(Y,X)=>{let J=(Y.options instanceof Map?Array.from(Y.options.values()):Y.options).map((Q,$)=>G0(Q._def,{...X,currentPath:[...X.currentPath,"anyOf",`${$}`]})).filter((Q)=>!!Q&&(!X.strictUnions||typeof Q==="object"&&Object.keys(Q).length>0));return J.length?{anyOf:J}:void 0};function uV(Y,X){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(Y.innerType._def.typeName)&&(!Y.innerType._def.checks||!Y.innerType._def.checks.length))return{type:[_J[Y.innerType._def.typeName],"null"]};let J=G0(Y.innerType._def,{...X,currentPath:[...X.currentPath,"anyOf","0"]});return J&&{anyOf:[J,{type:"null"}]}}function pV(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 lV(Y,X){let J={type:"object",properties:{}},Q=[],$=Y.shape();for(let W in $){let K=$[W];if(K===void 0||K._def===void 0)continue;let H=iV(K),U=G0(K._def,{...X,currentPath:[...X.currentPath,"properties",W],propertyPath:[...X.currentPath,"properties",W]});if(U===void 0)continue;if(J.properties[W]=U,!H)Q.push(W)}if(Q.length)J.required=Q;let G=dV(Y,X);if(G!==void 0)J.additionalProperties=G;return J}function dV(Y,X){if(Y.catchall._def.typeName!=="ZodNever")return G0(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 iV(Y){try{return Y.isOptional()}catch(X){return!0}}var oV=(Y,X)=>{var J;if(X.currentPath.toString()===((J=X.propertyPath)==null?void 0:J.toString()))return G0(Y.innerType._def,X);let Q=G0(Y.innerType._def,{...X,currentPath:[...X.currentPath,"anyOf","1"]});return Q?{anyOf:[{not:l0()},Q]}:l0()},nV=(Y,X)=>{if(X.pipeStrategy==="input")return G0(Y.in._def,X);else if(X.pipeStrategy==="output")return G0(Y.out._def,X);let J=G0(Y.in._def,{...X,currentPath:[...X.currentPath,"allOf","0"]}),Q=G0(Y.out._def,{...X,currentPath:[...X.currentPath,"allOf",J?"1":"0"]});return{allOf:[J,Q].filter(($)=>$!==void 0)}};function rV(Y,X){return G0(Y.type._def,X)}function sV(Y,X){let Q={type:"array",uniqueItems:!0,items:G0(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 aV(Y,X){if(Y.rest)return{type:"array",minItems:Y.items.length,items:Y.items.map((J,Q)=>G0(J._def,{...X,currentPath:[...X.currentPath,"items",`${Q}`]})).reduce((J,Q)=>Q===void 0?J:[...J,Q],[]),additionalItems:G0(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)=>G0(J._def,{...X,currentPath:[...X.currentPath,"items",`${Q}`]})).reduce((J,Q)=>Q===void 0?J:[...J,Q],[])}}function tV(){return{not:l0()}}function eV(){return l0()}var YN=(Y,X)=>{return G0(Y.innerType._def,X)},XN=(Y,X,J)=>{switch(X){case"ZodString":return _W(Y,J);case"ZodNumber":return pV(Y);case"ZodObject":return lV(Y,J);case"ZodBigInt":return wV(Y);case"ZodBoolean":return AV();case"ZodDate":return CW(Y,J);case"ZodUndefined":return tV();case"ZodNull":return fV();case"ZodArray":return MV(Y,J);case"ZodUnion":case"ZodDiscriminatedUnion":return mV(Y,J);case"ZodIntersection":return kV(Y,J);case"ZodTuple":return aV(Y,J);case"ZodRecord":return IW(Y,J);case"ZodLiteral":return xV(Y);case"ZodEnum":return IV(Y);case"ZodNativeEnum":return gV(Y);case"ZodNullable":return uV(Y,J);case"ZodOptional":return oV(Y,J);case"ZodMap":return hV(Y,J);case"ZodSet":return sV(Y,J);case"ZodLazy":return()=>Y.getter()._def;case"ZodPromise":return rV(Y,J);case"ZodNaN":case"ZodNever":return yV();case"ZodEffects":return _V(Y,J);case"ZodAny":return l0();case"ZodUnknown":return eV();case"ZodDefault":return CV(Y,J);case"ZodBranded":return TW(Y,J);case"ZodReadonly":return YN(Y,J);case"ZodCatch":return RV(Y,J);case"ZodPipeline":return nV(Y,J);case"ZodFunction":case"ZodVoid":case"ZodSymbol":return;default:return((Q)=>{return})(X)}},JN=(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 G0(Y,X,J=!1){var Q;let $=X.seen.get(Y);if(X.override){let H=(Q=X.override)==null?void 0:Q.call(X,Y,X,$,J);if(H!==EV)return H}if($&&!J){let H=QN($,X);if(H!==void 0)return H}let G={def:Y,path:X.currentPath,jsonSchema:void 0};X.seen.set(Y,G);let W=XN(Y,Y.typeName,X),K=typeof W==="function"?G0(W(),X):W;if(K)$N(Y,X,K);if(X.postProcess){let H=X.postProcess(K,Y,X);return G.jsonSchema=K,H}return G.jsonSchema=K,K}var QN=(Y,X)=>{switch(X.$refStrategy){case"root":return{$ref:Y.path.join("/")};case"relative":return{$ref:JN(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`),l0();return X.$refStrategy==="seen"?l0():void 0}}},$N=(Y,X,J)=>{if(Y.description)J.description=Y.description;return J},GN=(Y)=>{let X=PV(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,$])=>[$._def,{def:$._def,path:[...X.basePath,X.definitionPath,Q],jsonSchema:void 0}]))}},WN=(Y,X)=>{var J;let Q=GN(X),$=typeof X==="object"&&X.definitions?Object.entries(X.definitions).reduce((U,[Z,O])=>{var N;return{...U,[Z]:(N=G0(O._def,{...Q,currentPath:[...Q.basePath,Q.definitionPath,Z]},!0))!=null?N:l0()}},{}):void 0,G=typeof X==="string"?X:(X==null?void 0:X.nameStrategy)==="title"?void 0:X==null?void 0:X.name,W=(J=G0(Y._def,G===void 0?Q:{...Q,currentPath:[...Q.basePath,Q.definitionPath,G]},!1))!=null?J:l0(),K=typeof X==="object"&&X.name!==void 0&&X.nameStrategy==="title"?X.name:void 0;if(K!==void 0)W.title=K;let H=G===void 0?$?{...W,[Q.definitionPath]:$}:W:{$ref:[...Q.$refStrategy==="relative"?[]:Q.basePath,Q.definitionPath,G].join("/"),[Q.definitionPath]:{...$,[G]:W}};return H.$schema="http://json-schema.org/draft-07/schema#",H},IJ=Symbol.for("vercel.ai.schema");function tY(Y){let X;return()=>{if(X==null)X=Y();return X}}function eY(Y,{validate:X}={}){return{[IJ]:!0,_type:void 0,get jsonSchema(){if(typeof Y==="function")Y=Y();return Y},validate:X}}function zN(Y){return typeof Y==="object"&&Y!==null&&IJ in Y&&Y[IJ]===!0&&"jsonSchema"in Y&&"validate"in Y}function YX(Y){return Y==null?eY({type:"object",properties:{},additionalProperties:!1}):zN(Y)?Y:("~standard"in Y)?Y["~standard"].vendor==="zod"?i9(Y):KN(Y):Y()}function KN(Y){return eY(()=>{if(!UN(Y))throw Error(`Standard schema vendor '${Y["~standard"].vendor}' does not support JSON Schema conversion.`);return bJ(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 n0({value:X,cause:J.issues})}}})}function UN(Y){return Y["~standard"].jsonSchema!=null}function HN(Y,X){var J;let Q=(J=X==null?void 0:X.useReferences)!=null?J:!1;return eY(()=>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 ZN(Y,X){var J;let Q=(J=X==null?void 0:X.useReferences)!=null?J:!1;return eY(()=>bJ(w7(Y,{target:"draft-7",io:"input",reused:Q?"ref":"inline"})),{validate:async($)=>{let G=await rY(Y,$);return G.success?{success:!0,value:G.data}:{success:!1,error:G.error}}})}function LN(Y){return"_zod"in Y}function i9(Y,X){if(LN(Y))return ZN(Y,X);else return HN(Y,X)}async function L9({value:Y,schema:X,context:J}){let Q=YX(X);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:n0.wrap({value:Y,cause:$.error,context:J}),rawValue:Y}}catch($){return{success:!1,error:n0.wrap({value:Y,cause:$,context:J}),rawValue:Y}}}async function S1({text:Y,schema:X}){try{let J=DV(Y);if(X==null)return{success:!0,value:J,rawValue:J};return await L9({value:J,schema:X})}catch(J){return{success:!1,error:SY.isInstance(J)?J:new SY({text:Y,cause:J}),rawValue:void 0}}}async function vJ(Y){if(typeof Y==="function")Y=Y();return Promise.resolve(Y)}var SW="AI_SerializationError",kW=`vercel.ai.error.${SW}`,VN=Symbol.for(kW),OW,jW,i6=class extends(jW=R,OW=VN,jW){constructor({message:Y="Failed to serialize value.",cause:X}={}){super({name:SW,message:Y,cause:X});this[OW]=!0}static isInstance(Y){return R.hasMarker(Y,kW)}};var FN=Object.defineProperty,ON=(Y,X)=>{for(var J in X)FN(Y,J,{get:X[J],enumerable:!0})},_z="AI_InvalidArgumentError",Iz=`vercel.ai.error.${_z}`,jN=Symbol.for(Iz),xW,bW,hJ=class extends(bW=R,xW=jN,bW){constructor({parameter:Y,value:X,message:J}){super({name:_z,message:`Invalid argument for parameter ${Y}: ${J}`});this[xW]=!0,this.parameter=Y,this.value=X}static isInstance(Y){return R.hasMarker(Y,Iz)}},Sz="AI_InvalidStreamPartError",kz=`vercel.ai.error.${Sz}`,qN=Symbol.for(kz),vW,hW,$D=class extends(hW=R,vW=qN,hW){constructor({chunk:Y,message:X}){super({name:Sz,message:X});this[vW]=!0,this.chunk=Y}static isInstance(Y){return R.hasMarker(Y,kz)}},xz="AI_InvalidToolApprovalError",bz=`vercel.ai.error.${xz}`,DN=Symbol.for(bz),gW,yW,WD=class extends(yW=R,gW=DN,yW){constructor({approvalId:Y}){super({name:xz,message:`Tool approval response references unknown approvalId: "${Y}". No matching tool-approval-request found in message history.`});this[gW]=!0,this.approvalId=Y}static isInstance(Y){return R.hasMarker(Y,bz)}},vz="AI_InvalidToolApprovalSignatureError",hz=`vercel.ai.error.${vz}`,EN=Symbol.for(hz),fW,mW,KD=class extends(mW=R,fW=EN,mW){constructor({approvalId:Y,toolCallId:X,reason:J}){super({name:vz,message:`Tool approval signature verification failed for approval "${Y}" (tool call "${X}"): ${J}`});this[fW]=!0,this.approvalId=Y,this.toolCallId=X}static isInstance(Y){return R.hasMarker(Y,hz)}},gz="AI_InvalidToolInputError",yz=`vercel.ai.error.${gz}`,PN=Symbol.for(yz),cW,uW,HD=class extends(uW=R,cW=PN,uW){constructor({toolInput:Y,toolName:X,cause:J,message:Q=`Invalid input for tool ${X}: ${p1(J)}`}){super({name:gz,message:Q,cause:J});this[cW]=!0,this.toolInput=Y,this.toolName=X}static isInstance(Y){return R.hasMarker(Y,yz)}},fz="AI_ToolCallNotFoundForApprovalError",mz=`vercel.ai.error.${fz}`,MN=Symbol.for(mz),pW,lW,LD=class extends(lW=R,pW=MN,lW){constructor({toolCallId:Y,approvalId:X}){super({name:fz,message:`Tool call "${Y}" not found for approval request "${X}".`});this[pW]=!0,this.toolCallId=Y,this.approvalId=X}static isInstance(Y){return R.hasMarker(Y,mz)}},cz="AI_MissingToolResultsError",uz=`vercel.ai.error.${cz}`,wN=Symbol.for(uz),dW,iW,ND=class extends(iW=R,dW=wN,iW){constructor({toolCallIds:Y}){super({name:cz,message:`Tool result${Y.length>1?"s are":" is"} missing for tool call${Y.length>1?"s":""} ${Y.join(", ")}.`});this[dW]=!0,this.toolCallIds=Y}static isInstance(Y){return R.hasMarker(Y,uz)}},pz="AI_NoImageGeneratedError",lz=`vercel.ai.error.${pz}`,AN=Symbol.for(lz),oW,nW,FD=class extends(nW=R,oW=AN,nW){constructor({message:Y="No image generated.",cause:X,calls:J,responses:Q}){super({name:pz,message:Y,cause:X});this[oW]=!0,this.calls=J,this.responses=Q}static isInstance(Y){return R.hasMarker(Y,lz)}},dz="AI_NoObjectGeneratedError",iz=`vercel.ai.error.${dz}`,RN=Symbol.for(iz),rW,sW,O1=class extends(sW=R,rW=RN,sW){constructor({message:Y="No object generated.",cause:X,text:J,response:Q,usage:$,finishReason:G}){super({name:dz,message:Y,cause:X});this[rW]=!0,this.text=J,this.response=Q,this.usage=$,this.finishReason=G}static isInstance(Y){return R.hasMarker(Y,iz)}},oz="AI_NoOutputGeneratedError",nz=`vercel.ai.error.${oz}`,TN=Symbol.for(nz),aW,tW,qD=class extends(tW=R,aW=TN,tW){constructor({message:Y="No output generated.",cause:X}={}){super({name:oz,message:Y,cause:X});this[aW]=!0}static isInstance(Y){return R.hasMarker(Y,nz)}},rz="AI_NoSpeechGeneratedError",sz=`vercel.ai.error.${rz}`,CN=Symbol.for(sz),eW,Yz,ED=class extends(Yz=R,eW=CN,Yz){constructor(Y){super({name:rz,message:"No speech audio generated."});this[eW]=!0,this.responses=Y.responses}static isInstance(Y){return R.hasMarker(Y,sz)}},az="AI_NoTranscriptGeneratedError",tz=`vercel.ai.error.${az}`,_N=Symbol.for(tz),Xz,Jz,MD=class extends(Jz=R,Xz=_N,Jz){constructor(Y){super({name:az,message:"No transcript generated."});this[Xz]=!0,this.responses=Y.responses}static isInstance(Y){return R.hasMarker(Y,tz)}},ez="AI_NoTranslationGeneratedError",YK=`vercel.ai.error.${ez}`,IN=Symbol.for(YK),Qz,$z,AD=class extends($z=R,Qz=IN,$z){constructor(Y){super({name:ez,message:"No translation generated."});this[Qz]=!0,this.response=Y.response}static isInstance(Y){return R.hasMarker(Y,YK)}},gJ="AI_NoVideoGeneratedError",XK=`vercel.ai.error.${gJ}`,SN=Symbol.for(XK),Gz,Wz,TD=class extends(Wz=R,Gz=SN,Wz){constructor({message:Y="No video generated.",cause:X,responses:J}){super({name:gJ,message:Y,cause:X});this[Gz]=!0,this.responses=J}static isInstance(Y){return R.hasMarker(Y,XK)}static isNoVideoGeneratedError(Y){return Y instanceof Error&&Y.name===gJ&&typeof Y.responses<"u"?!0:!1}toJSON(){return{name:this.name,message:this.message,stack:this.stack,cause:this.cause,responses:this.responses}}},JK="AI_NoSuchToolError",QK=`vercel.ai.error.${JK}`,kN=Symbol.for(QK),zz,Kz,_D=class extends(Kz=R,zz=kN,Kz){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:JK,message:J});this[zz]=!0,this.toolName=Y,this.availableTools=X}static isInstance(Y){return R.hasMarker(Y,QK)}},$K="AI_StreamProviderError",GK=`vercel.ai.error.${$K}`,xN=Symbol.for(GK),Uz,Hz,SD=class extends(Hz=R,Uz=xN,Hz){constructor({message:Y,type:X,code:J,statusCode:Q,isRetryable:$=bN(Q),data:G,cause:W}){super({name:$K,message:Y,cause:W});this[Uz]=!0,this.type=X,this.code=J,this.statusCode=Q,this.isRetryable=$,this.data=G}static isInstance(Y){return R.hasMarker(Y,GK)}};function bN(Y){return Y!=null&&(Y===408||Y===409||Y===429||Y>=500)}var WK="AI_ToolCallRepairError",zK=`vercel.ai.error.${WK}`,vN=Symbol.for(zK),Zz,Lz,xD=class extends(Lz=R,Zz=vN,Lz){constructor({cause:Y,originalError:X,message:J=`Error repairing tool call: ${p1(Y)}`}){super({name:WK,message:J,cause:Y});this[Zz]=!0,this.originalError=X}static isInstance(Y){return R.hasMarker(Y,zK)}},KK="AI_ToolChoiceViolationError",UK=`vercel.ai.error.${KK}`,hN=Symbol.for(UK),Vz,Nz,vD=class extends(Nz=R,Vz=hN,Nz){constructor({toolChoice:Y,finishReason:X,provider:J,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:KK,message:G});this[Vz]=!0,this.toolChoice=Y,this.finishReason=X,this.provider=J,this.modelId=Q,this.content=$}static isInstance(Y){return R.hasMarker(Y,UK)}};var HK="AI_UIMessageStreamError",ZK=`vercel.ai.error.${HK}`,gN=Symbol.for(ZK),Bz,Fz,gD=class extends(Fz=R,Bz=gN,Fz){constructor({chunkType:Y,chunkId:X,message:J}){super({name:HK,message:J});this[Bz]=!0,this.chunkType=Y,this.chunkId=X}static isInstance(Y){return R.hasMarker(Y,ZK)}},LK="AI_InvalidDataContentError",VK=`vercel.ai.error.${LK}`,yN=Symbol.for(VK),Oz,jz,fD=class extends(jz=R,Oz=yN,jz){constructor({content:Y,cause:X,message:J=`Invalid data content. Expected a base64 string, Uint8Array, ArrayBuffer, or Buffer, but got ${typeof Y}.`}){super({name:LK,message:J,cause:X});this[Oz]=!0,this.content=Y}static isInstance(Y){return R.hasMarker(Y,VK)}},NK="AI_InvalidMessageRoleError",BK=`vercel.ai.error.${NK}`,fN=Symbol.for(BK),qz,Dz,cD=class extends(Dz=R,qz=fN,Dz){constructor({role:Y,message:X=`Invalid message role: '${Y}'. Must be one of: "system", "user", "assistant", "tool".`}){super({name:NK,message:X});this[qz]=!0,this.role=Y}static isInstance(Y){return R.hasMarker(Y,BK)}},FK="AI_MessageConversionError",OK=`vercel.ai.error.${FK}`,mN=Symbol.for(OK),Ez,Pz,pD=class extends(Pz=R,Ez=mN,Pz){constructor({originalMessage:Y,message:X}){super({name:FK,message:X});this[Ez]=!0,this.originalMessage=Y}static isInstance(Y){return R.hasMarker(Y,OK)}},jK="AI_RetryError",qK=`vercel.ai.error.${jK}`,cN=Symbol.for(qK),Mz,wz,dD=class extends(wz=R,Mz=cN,wz){constructor({message:Y,reason:X,errors:J}){super({name:jK,message:Y});this[Mz]=!0,this.reason=X,this.errors=J,this.lastError=J[J.length-1]}static isInstance(Y){return R.hasMarker(Y,qK)}};var uN="7.0.111",pN=async({url:Y,maxBytes:X,abortSignal:J})=>{var Q;let $=Y.toString();try{let G=o1({},`ai-sdk/${uN}`,qW()),W=await wW({url:$,headers:G,abortSignal:J});if(!W.ok)throw await aY(W),new b0({url:$,statusCode:W.status,statusText:W.statusText});return{data:await AW({response:W,url:$,maxBytes:X!=null?X:xJ}),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:PJ,boolean:s7,custom:KW,discriminatedUnion:JW,enum:wJ,instanceof:UW,lazy:zW,literal:$W,looseObject:YW,never:EJ,null:a7,number:r7,object:e7,record:QW,string:o7,union:MJ,unknown:d9},n1=z.lazy(()=>z.union([z.null(),z.string(),z.number(),z.boolean(),z.record(z.string(),n1.optional()),z.array(n1)])),h=z.record(z.string(),z.record(z.string(),n1.optional())),n9=z.union([z.string(),z.instanceof(Uint8Array),z.instanceof(ArrayBuffer),z.custom(RW,{message:"Must be a Buffer"})]),yJ=z.record(z.string(),z.string()),DK=z.object({type:z.literal("text"),text:z.string(),providerOptions:h.optional()}),lN=z.object({type:z.literal("image"),image:z.union([n9,z.instanceof(URL),yJ]),mediaType:z.string().optional(),providerOptions:h.optional()}),EK=z.discriminatedUnion("type",[z.object({type:z.literal("data"),data:n9}),z.object({type:z.literal("url"),url:z.instanceof(URL)}),z.object({type:z.literal("reference"),reference:yJ}),z.object({type:z.literal("text"),text:z.string()})]),dN=z.discriminatedUnion("type",[z.object({type:z.literal("data"),data:n9}),z.object({type:z.literal("url"),url:z.instanceof(URL)})]),PK=z.object({type:z.literal("file"),data:z.union([EK,n9,z.instanceof(URL),yJ]),filename:z.string().optional(),mediaType:z.string(),providerOptions:h.optional()}),iN=z.object({type:z.literal("reasoning"),text:z.string(),providerOptions:h.optional()}),oN=z.object({type:z.literal("custom"),kind:z.string().transform((Y)=>Y),providerOptions:h.optional()}),nN=z.object({type:z.literal("reasoning-file"),data:z.union([dN,n9,z.instanceof(URL)]),mediaType:z.string(),providerOptions:h.optional()}),rN=z.object({type:z.literal("tool-call"),toolCallId:z.string(),toolName:z.string(),input:z.unknown(),providerOptions:h.optional(),providerExecuted:z.boolean().optional()}),sN=z.discriminatedUnion("type",[z.object({type:z.literal("text"),value:z.string(),providerOptions:h.optional()}),z.object({type:z.literal("json"),value:n1,providerOptions:h.optional()}),z.object({type:z.literal("execution-denied"),reason:z.string().optional(),providerOptions:h.optional()}),z.object({type:z.literal("error-text"),value:z.string(),providerOptions:h.optional()}),z.object({type:z.literal("error-json"),value:n1,providerOptions:h.optional()}),z.object({type:z.literal("content"),value:z.array(z.union([z.object({type:z.literal("text"),text:z.string(),providerOptions:h.optional()}),z.object({type:z.literal("file"),data:EK,mediaType:z.string(),filename:z.string().optional(),providerOptions:h.optional()}),z.object({type:z.literal("file-data"),data:z.string(),mediaType:z.string(),filename:z.string().optional(),providerOptions:h.optional()}),z.object({type:z.literal("file-url"),url:z.string(),mediaType:z.string().optional(),providerOptions:h.optional()}),z.object({type:z.literal("file-id"),fileId:z.union([z.string(),z.record(z.string(),z.string())]),providerOptions:h.optional()}),z.object({type:z.literal("file-reference"),providerReference:z.record(z.string(),z.string()),providerOptions:h.optional()}),z.object({type:z.literal("image-data"),data:z.string(),mediaType:z.string(),providerOptions:h.optional()}),z.object({type:z.literal("image-url"),url:z.string(),providerOptions:h.optional()}),z.object({type:z.literal("image-file-id"),fileId:z.union([z.string(),z.record(z.string(),z.string())]),providerOptions:h.optional()}),z.object({type:z.literal("image-file-reference"),providerReference:z.record(z.string(),z.string()),providerOptions:h.optional()}),z.object({type:z.literal("custom"),providerOptions:h.optional()})]))})]),MK=z.object({type:z.literal("tool-result"),toolCallId:z.string(),toolName:z.string(),output:sN,providerOptions:h.optional()}),aN=z.object({type:z.literal("tool-approval-request"),approvalId:z.string(),toolCallId:z.string(),reason:z.string().optional()}),tN=z.object({type:z.literal("tool-approval-response"),approvalId:z.string(),approved:z.boolean(),reason:z.string().optional()}),eN=z.object({role:z.literal("system"),content:z.string(),providerOptions:h.optional()}),YB=z.object({role:z.literal("user"),content:z.union([z.string(),z.array(z.union([DK,lN,PK]))]),providerOptions:h.optional()}),XB=z.object({role:z.literal("assistant"),content:z.union([z.string(),z.array(z.union([DK,oN,PK,iN,nN,rN,MK,aN]))]),providerOptions:h.optional()}),JB=z.object({role:z.literal("tool"),content:z.array(z.union([MK,tN])),providerOptions:h.optional()}),rD=z.union([eN,YB,XB,JB]);var QB={};ON(QB,{array:()=>zB,choice:()=>KB,json:()=>UB,object:()=>WB,text:()=>GB});function $B(Y){let X=["ROOT"],J=-1,Q=null,$=0;function G(Z){return Z>="0"&&Z<="9"||Z>="A"&&Z<="F"||Z>="a"&&Z<="f"}function W(Z,O,N){switch(Z){case'"':{J=O,X.pop(),X.push(N),X.push("INSIDE_STRING");break}case"f":case"t":case"n":{J=O,Q=O,X.pop(),X.push(N),X.push("INSIDE_LITERAL");break}case"-":{X.pop(),X.push(N),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=O,X.pop(),X.push(N),X.push("INSIDE_NUMBER");break}case"{":{J=O,X.pop(),X.push(N),X.push("INSIDE_OBJECT_START");break}case"[":{J=O,X.pop(),X.push(N),X.push("INSIDE_ARRAY_START");break}}}function K(Z,O){switch(Z){case",":{X.pop(),X.push("INSIDE_OBJECT_AFTER_COMMA");break}case"}":{J=O,X.pop();break}}}function H(Z,O){switch(Z){case",":{X.pop(),X.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{J=O,X.pop();break}}}for(let Z=0;Z<Y.length;Z++){let O=Y[Z];switch(X[X.length-1]){case"ROOT":W(O,Z,"FINISH");break;case"INSIDE_OBJECT_START":{switch(O){case'"':{X.pop(),X.push("INSIDE_OBJECT_KEY");break}case"}":{J=Z,X.pop();break}}break}case"INSIDE_OBJECT_AFTER_COMMA":{switch(O){case'"':{X.pop(),X.push("INSIDE_OBJECT_KEY");break}}break}case"INSIDE_OBJECT_KEY":{switch(O){case'"':{X.pop(),X.push("INSIDE_OBJECT_AFTER_KEY");break}}break}case"INSIDE_OBJECT_AFTER_KEY":{switch(O){case":":{X.pop(),X.push("INSIDE_OBJECT_BEFORE_VALUE");break}}break}case"INSIDE_OBJECT_BEFORE_VALUE":{W(O,Z,"INSIDE_OBJECT_AFTER_VALUE");break}case"INSIDE_OBJECT_AFTER_VALUE":{K(O,Z);break}case"INSIDE_STRING":{switch(O){case'"':{X.pop(),J=Z;break}case"\\":{X.push("INSIDE_STRING_ESCAPE");break}default:J=Z}break}case"INSIDE_ARRAY_START":{switch(O){case"]":{J=Z,X.pop();break}default:{J=Z,W(O,Z,"INSIDE_ARRAY_AFTER_VALUE");break}}break}case"INSIDE_ARRAY_AFTER_VALUE":{switch(O){case",":{X.pop(),X.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{J=Z,X.pop();break}default:{J=Z;break}}break}case"INSIDE_ARRAY_AFTER_COMMA":{W(O,Z,"INSIDE_ARRAY_AFTER_VALUE");break}case"INSIDE_STRING_ESCAPE":{if(X.pop(),O==="u")$=0,X.push("INSIDE_STRING_UNICODE_ESCAPE");else J=Z;break}case"INSIDE_STRING_UNICODE_ESCAPE":{if(G(O)){if($++,$===4)X.pop(),J=Z}break}case"INSIDE_NUMBER":{switch(O){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{J=Z;break}case"e":case"E":case"-":case".":break;case",":{if(X.pop(),X[X.length-1]==="INSIDE_ARRAY_AFTER_VALUE")H(O,Z);if(X[X.length-1]==="INSIDE_OBJECT_AFTER_VALUE")K(O,Z);break}case"}":{if(X.pop(),X[X.length-1]==="INSIDE_OBJECT_AFTER_VALUE")K(O,Z);break}case"]":{if(X.pop(),X[X.length-1]==="INSIDE_ARRAY_AFTER_VALUE")H(O,Z);break}default:{X.pop();break}}break}case"INSIDE_LITERAL":{let V=Y.substring(Q,Z+1);if(!"false".startsWith(V)&&!"true".startsWith(V)&&!"null".startsWith(V)){if(X.pop(),X[X.length-1]==="INSIDE_OBJECT_AFTER_VALUE")K(O,Z);else if(X[X.length-1]==="INSIDE_ARRAY_AFTER_VALUE")H(O,Z)}else J=Z;break}}}let U=Y.slice(0,J+1);for(let Z=X.length-1;Z>=0;Z--)switch(X[Z]){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 XX(Y){if(Y===void 0)return{value:void 0,state:"undefined-input"};let X=await S1({text:Y});if(X.success)return{value:X.value,state:"successful-parse"};if(X=await S1({text:$B(Y)}),X.success)return{value:X.value,state:"repaired-parse"};return{value:void 0,state:"failed-parse"}}var GB=()=>({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:X,description:J})=>{let Q=YX(Y);return{name:"object",responseFormat:vJ(Q.jsonSchema).then(($)=>({type:"json",schema:$,...X!=null&&{name:X},...J!=null&&{description:J}})),async parseCompleteOutput({text:$},G){let W=await S1({text:$});if(!W.success)throw new O1({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 L9({value:W.value,schema:Q});if(!K.success)throw new O1({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 XX($);switch(G.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:G.value}}},createElementStreamTransform(){return}}},zB=({element:Y,minItems:X,maxItems:J,name:Q,description:$})=>{if(Az({name:"minItems",value:X}),Az({name:"maxItems",value:J}),X!=null&&J!=null&&X>J)throw new hJ({parameter:"minItems",value:X,message:"minItems must be less than or equal to maxItems"});let G=YX(Y);return{name:"array",responseFormat:vJ(G.jsonSchema).then((W)=>{let{$schema:K,definitions:H,$defs:U,...Z}=W;return{type:"json",schema:{$schema:"http://json-schema.org/draft-07/schema#",...H!=null&&{definitions:H},...U!=null&&{$defs:U},type:"object",properties:{elements:{type:"array",items:Z,...X!=null&&{minItems:X},...J!=null&&{maxItems:J}}},required:["elements"],additionalProperties:!1},...Q!=null&&{name:Q},...$!=null&&{description:$}}}),async parseCompleteOutput({text:W},K){let H=await S1({text:W});if(!H.success)throw new O1({message:"No object generated: could not parse the response.",cause:H.error,text:W,response:K.response,usage:K.usage,finishReason:K.finishReason});let U=H.value;if(U==null||typeof U!=="object"||!("elements"in U)||!Array.isArray(U.elements))throw new O1({message:"No object generated: response did not match schema.",cause:new n0({value:U,cause:"response must be an object with an elements array"}),text:W,response:K.response,usage:K.usage,finishReason:K.finishReason});let Z=Rz({value:U.elements,minItems:X,maxItems:J});if(Z!=null)throw new O1({message:"No object generated: response did not match schema.",cause:Z,text:W,response:K.response,usage:K.usage,finishReason:K.finishReason});let O=[];for(let N of U.elements){let V=await L9({value:N,schema:G});if(!V.success)throw new O1({message:"No object generated: response did not match schema.",cause:V.error,text:W,response:K.response,usage:K.usage,finishReason:K.finishReason});O.push(V.value)}return O},async parsePartialOutput({text:W}){let K=await XX(W);switch(K.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":{let H=K.value;if(H==null||typeof H!=="object"||!("elements"in H)||!Array.isArray(H.elements))return;let U=K.state==="repaired-parse"&&H.elements.length>0?H.elements.slice(0,-1):H.elements,Z=[];for(let O of U){let N=await L9({value:O,schema:G});if(N.success)Z.push(N.value)}return{partial:Z}}}},createElementStreamTransform(){let W=0;return new TransformStream({transform({partialOutput:K},H){if(K!=null)for(;W<K.length;W++){if(J!=null&&W>=J){H.error(Rz({value:K,maxItems:J}));return}H.enqueue(K[W])}}})}}};function Az({name:Y,value:X}){if(X==null)return;if(!Number.isInteger(X))throw new hJ({parameter:Y,value:X,message:`${Y} must be an integer`});if(X<0)throw new hJ({parameter:Y,value:X,message:`${Y} must be greater than or equal to 0`})}function Rz({value:Y,minItems:X,maxItems:J}){if(X!=null&&Y.length<X)return new n0({value:Y,cause:`elements array must contain at least ${X} items`});if(J!=null&&Y.length>J)return new n0({value:Y,cause:`elements array must contain at most ${J} items`});return}var KB=({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},$){let G=await S1({text:Q});if(!G.success)throw new O1({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 O1({message:"No object generated: response did not match schema.",cause:new n0({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 XX(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}}},UB=({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 $=await S1({text:J});if(!$.success)throw new O1({message:"No object generated: could not parse the response.",cause:$.error,text:J,response:Q.response,usage:Q.usage,finishReason:Q.finishReason});return $.value},async parsePartialOutput({text:J}){let Q=await XX(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 eD=B0({prefix:"aitxt",size:24}),YE=B0({prefix:"call",size:24});var JE=class extends TransformStream{constructor(){super({transform(Y,X){X.enqueue(`data: ${JSON.stringify(Y)}
|
|
97
82
|
|
|
98
83
|
`)},flush(Y){Y.enqueue(`data: [DONE]
|
|
99
84
|
|
|
100
|
-
`)}})}};var n9=z.record(z.string(),o1.optional()),TP=YX(()=>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 CP=O0({prefix:"aitxt",size:24}),IP=O0({prefix:"call",size:24});var _P=O0({prefix:"aitxt",size:24}),SP=O0({prefix:"call",size:24});var f0=z.record(z.string(),o1.optional()),AB=z.record(z.string(),z.string());var xP=YX(()=>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:AB.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,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 vP=O0({prefix:"call",size:24});var gP=O0({prefix:"call",size:24});var fP=O0({prefix:"aiobj",size:24});function kz(Y){return({url:X,abortSignal:J})=>$B({url:X,maxBytes:Y==null?void 0:Y.maxBytes,abortSignal:J})}var uP=O0({prefix:"aiobj",size:24});var cP=kz();var pP=z.object({token:z.string().refine((Y)=>Y.trim().length>0),url:z.string().refine((Y)=>{try{let X=new URL(Y);return(X.protocol==="ws:"||X.protocol==="wss:")&&X.hostname!==""}catch(X){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 xz="AI_NoSuchProviderError",bz=`vercel.ai.error.${xz}`,TB=Symbol.for(bz),vW,hW,dP=class extends(hW=rX,vW=TB,hW){constructor({modelId:Y,modelType:X,providerId:J,availableProviders:Q,message:$=`No such provider: ${J} (available providers: ${Q.join()})`}){super({errorName:xz,modelId:Y,modelType:X,message:$});this[vW]=!0,this.providerId=J,this.availableProviders=Q}static isInstance(Y){return T.hasMarker(Y,bz)}};var oP=O0({prefix:"call",size:24});var nP=kz();class m0 extends b9{name="ProviderResponseStreamError";constructor(Y,X){super({message:Y,url:"",requestBodyValues:void 0,cause:X?.cause,isRetryable:X?.retryable??!0})}}var _0={};aX(_0,{toWebSocketUrl:()=>lB,streamResponsesWebSocket:()=>rB,parseRateLimitSignal:()=>a9,normalizeHeaders:()=>dB,markOversizedFrame:()=>dz,isUpgradeFailure:()=>iB,isOversizedFrame:()=>oB,isAbortError:()=>i8,connectResponsesWebSocket:()=>nB,TERMINAL_AFTER_OUTPUT_MESSAGE:()=>oz,PROTOCOL_HEADER:()=>cz,OpenAIWebSocket:()=>_0,OVERSIZED_FRAME_MESSAGE:()=>nz});function s9(Y){let X=Number(Y.match(/^HTTP\/\d(?:\.\d)?\s+(\d{3})/)?.[1]);return Number.isFinite(X)?X:void 0}function $X(Y,X,J=!1){let $=Buffer.from(Y.slice(0,X)).toString("latin1").split(`\r
|
|
101
|
-
`),G=$[0]??"",W=
|
|
85
|
+
`)}})}};var o9=z.record(z.string(),n1.optional()),$E=tY(()=>i9(z.union([z.looseObject({type:z.literal("text-start"),id:z.string(),providerMetadata:h.optional()}),z.looseObject({type:z.literal("text-delta"),id:z.string(),delta:z.string(),providerMetadata:h.optional()}),z.looseObject({type:z.literal("text-end"),id:z.string(),providerMetadata:h.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:h.optional(),toolMetadata:o9.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:h.optional(),toolMetadata:o9.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:h.optional(),toolMetadata:o9.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:h.optional()}),z.looseObject({type:z.literal("tool-output-available"),toolCallId:z.string(),output:z.unknown(),providerExecuted:z.boolean().optional(),providerMetadata:h.optional(),toolMetadata:o9.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:h.optional(),toolMetadata:o9.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:h.optional()}),z.looseObject({type:z.literal("reasoning-delta"),id:z.string(),delta:z.string(),providerMetadata:h.optional()}),z.looseObject({type:z.literal("reasoning-end"),id:z.string(),providerMetadata:h.optional()}),z.looseObject({type:z.literal("custom"),kind:z.string().transform((Y)=>Y),providerMetadata:h.optional()}),z.looseObject({type:z.literal("source-url"),sourceId:z.string(),url:z.string(),title:z.string().optional(),providerMetadata:h.optional()}),z.looseObject({type:z.literal("source-document"),sourceId:z.string(),mediaType:z.string(),title:z.string(),filename:z.string().optional(),providerMetadata:h.optional()}),z.looseObject({type:z.literal("file"),url:z.string(),mediaType:z.string(),providerMetadata:h.optional()}),z.looseObject({type:z.literal("reasoning-file"),url:z.string(),mediaType:z.string(),providerMetadata:h.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 WE=B0({prefix:"aitxt",size:24}),zE=B0({prefix:"call",size:24});var KE=B0({prefix:"aitxt",size:24}),UE=B0({prefix:"call",size:24});var g0=z.record(z.string(),n1.optional()),HB=z.record(z.string(),z.string());var ZE=tY(()=>i9(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:h.optional()}),z.object({type:z.literal("reasoning"),id:z.string().optional(),text:z.string(),state:z.enum(["streaming","done"]).optional(),providerMetadata:h.optional()}),z.object({type:z.literal("custom"),kind:z.string(),providerMetadata:h.optional()}),z.object({type:z.literal("source-url"),sourceId:z.string(),url:z.string(),title:z.string().optional(),providerMetadata:h.optional()}),z.object({type:z.literal("source-document"),sourceId:z.string(),mediaType:z.string(),title:z.string(),filename:z.string().optional(),providerMetadata:h.optional()}),z.object({type:z.literal("file"),mediaType:z.string(),filename:z.string().optional(),url:z.string(),providerReference:HB.optional(),providerMetadata:h.optional()}),z.object({type:z.literal("reasoning-file"),mediaType:z.string(),url:z.string(),providerMetadata:h.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:g0.optional(),state:z.literal("input-streaming"),input:z.unknown().optional(),providerExecuted:z.boolean().optional(),callProviderMetadata:h.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:g0.optional(),state:z.literal("input-available"),input:z.unknown(),providerExecuted:z.boolean().optional(),output:z.never().optional(),errorText:z.never().optional(),callProviderMetadata:h.optional(),approval:z.never().optional()}),z.object({type:z.literal("dynamic-tool"),toolName:z.string(),toolCallId:z.string(),title:z.string().optional(),toolMetadata:g0.optional(),state:z.literal("approval-requested"),input:z.unknown(),providerExecuted:z.boolean().optional(),output:z.never().optional(),errorText:z.never().optional(),callProviderMetadata:h.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:g0.optional(),state:z.literal("approval-responded"),input:z.unknown(),providerExecuted:z.boolean().optional(),output:z.never().optional(),errorText:z.never().optional(),callProviderMetadata:h.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:g0.optional(),state:z.literal("output-available"),input:z.unknown(),providerExecuted:z.boolean().optional(),output:z.unknown(),errorText:z.never().optional(),callProviderMetadata:h.optional(),resultProviderMetadata:h.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:g0.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:h.optional(),resultProviderMetadata:h.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:g0.optional(),state:z.literal("output-denied"),input:z.unknown(),providerExecuted:z.boolean().optional(),output:z.never().optional(),errorText:z.never().optional(),callProviderMetadata:h.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:g0.optional(),state:z.literal("input-streaming"),providerExecuted:z.boolean().optional(),callProviderMetadata:h.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:g0.optional(),state:z.literal("input-available"),providerExecuted:z.boolean().optional(),input:z.unknown(),output:z.never().optional(),errorText:z.never().optional(),callProviderMetadata:h.optional(),approval:z.never().optional()}),z.object({type:z.string().startsWith("tool-"),toolCallId:z.string(),title:z.string().optional(),toolMetadata:g0.optional(),state:z.literal("approval-requested"),input:z.unknown(),providerExecuted:z.boolean().optional(),output:z.never().optional(),errorText:z.never().optional(),callProviderMetadata:h.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:g0.optional(),state:z.literal("approval-responded"),input:z.unknown(),providerExecuted:z.boolean().optional(),output:z.never().optional(),errorText:z.never().optional(),callProviderMetadata:h.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:g0.optional(),state:z.literal("output-available"),providerExecuted:z.boolean().optional(),input:z.unknown(),output:z.unknown(),errorText:z.never().optional(),callProviderMetadata:h.optional(),resultProviderMetadata:h.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:g0.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:h.optional(),resultProviderMetadata:h.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:g0.optional(),state:z.literal("output-denied"),providerExecuted:z.boolean().optional(),input:z.unknown(),output:z.never().optional(),errorText:z.never().optional(),callProviderMetadata:h.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,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 VE=B0({prefix:"call",size:24});var BE=B0({prefix:"call",size:24});var OE=B0({prefix:"call",size:24});var qE=B0({prefix:"aiobj",size:24});function wK(Y){return({url:X,abortSignal:J})=>pN({url:X,maxBytes:Y==null?void 0:Y.maxBytes,abortSignal:J})}var EE=B0({prefix:"aiobj",size:24});var PE=wK();var ME=z.object({token:z.string().refine((Y)=>Y.trim().length>0),url:z.string().refine((Y)=>{try{let X=new URL(Y);return(X.protocol==="ws:"||X.protocol==="wss:")&&X.hostname!==""}catch(X){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 AK="AI_NoSuchProviderError",RK=`vercel.ai.error.${AK}`,ZB=Symbol.for(RK),Tz,Cz,AE=class extends(Cz=dX,Tz=ZB,Cz){constructor({modelId:Y,modelType:X,providerId:J,availableProviders:Q,message:$=`No such provider: ${J} (available providers: ${Q.join()})`}){super({errorName:AK,modelId:Y,modelType:X,message:$});this[Tz]=!0,this.providerId=J,this.availableProviders=Q}static isInstance(Y){return R.hasMarker(Y,RK)}};var TE=B0({prefix:"call",size:24});var CE=wK();class y0 extends x9{name="ProviderResponseStreamError";constructor(Y,X){super({message:Y,url:"",requestBodyValues:void 0,cause:X?.cause,isRetryable:X?.retryable??!0})}}var I0={};oX(I0,{toWebSocketUrl:()=>_B,streamResponsesWebSocket:()=>bB,parseRateLimitSignal:()=>s9,normalizeHeaders:()=>IB,markOversizedFrame:()=>gK,isUpgradeFailure:()=>SB,isOversizedFrame:()=>kB,isAbortError:()=>uJ,connectResponsesWebSocket:()=>xB,TERMINAL_AFTER_OUTPUT_MESSAGE:()=>fK,PROTOCOL_HEADER:()=>bK,OpenAIWebSocket:()=>I0,OVERSIZED_FRAME_MESSAGE:()=>mK});function r9(Y){let X=Number(Y.match(/^HTTP\/\d(?:\.\d)?\s+(\d{3})/)?.[1]);return Number.isFinite(X)?X:void 0}function JX(Y,X,J=!1){let $=Buffer.from(Y.slice(0,X)).toString("latin1").split(`\r
|
|
86
|
+
`),G=$[0]??"",W=r9(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()]]})),H=Y.slice(X+4),U=K["content-length"],Z=Number(U);if(!J&&(U===void 0||Number.isFinite(Z)&&H.length<Z))return;let O=Buffer.from(H).toString("utf8"),N=(()=>{try{let V=JSON.parse(O);return o(V)?V:void 0}catch{return}})();return{message:`WS upgrade failed: ${G}`,status:W,status_code:W,headers:K,body:O,...o(N?.error)?{error:N.error}:{}}}var LB="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",TK=["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 fJ{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,X,J){this.url=Y,this.sessionID=J?.sessionID,this.connect(Y,X)}addEventListener(Y,X,J){this.listeners[Y]?.add(X)}removeEventListener(Y,X){this.listeners[Y]?.delete(X)}peerClose;closeEmitted=!1;emitClose(Y,X){if(this.closeEmitted)return;this.closeEmitted=!0,this.emit("close",{code:Y,reason:X})}emit(Y,X){for(let J of[...this.listeners[Y]??[]])try{J(X)}catch{}}async connect(Y,X){let J=new URL(Y.replace(/^ws:/,"http:").replace(/^wss:/,"https:")),Q=J.hostname,$=J.port?Number(J.port):J.protocol==="https:"?443:80,G=`${J.pathname}${J.search}`,W=crypto.getRandomValues(new Uint8Array(16)),K=Buffer.from(W).toString("base64"),H=await crypto.subtle.digest("SHA-1",new TextEncoder().encode(K+LB));this.expectedAccept=Buffer.from(new Uint8Array(H)).toString("base64");let U={};for(let[N,V]of Object.entries(X))U[N.toLowerCase()]=V;let Z=[`GET ${G} HTTP/1.1`,`Host: ${Q}`,"Connection: Upgrade","Upgrade: websocket","Sec-WebSocket-Version: 13",`Sec-WebSocket-Key: ${K}`];for(let N of TK)if(U[N]!==void 0)Z.push(`${VB(N)}: ${U[N]}`);for(let[N,V]of Object.entries(X))if(!TK.includes(N.toLowerCase())&&N.toLowerCase()!=="content-length")Z.push(`${N}: ${V}`);let O=`${Z.join(`\r
|
|
102
87
|
`)}\r
|
|
103
88
|
\r
|
|
104
|
-
`;try{this.log("connect_start",{host:Q,port:$,tls:J.protocol==="https:"});let N=globalThis.Bun?.connect;if(!N)throw Error("Bun.connect is not available");this.socket=await N({hostname:Q,port:$,tls:J.protocol==="https:"?{serverName:Q}:void 0,socket:{open:(V)=>{this.socket=V,this.enqueueWrite(new TextEncoder().encode(
|
|
89
|
+
`;try{this.log("connect_start",{host:Q,port:$,tls:J.protocol==="https:"});let N=globalThis.Bun?.connect;if(!N)throw Error("Bun.connect is not available");this.socket=await N({hostname:Q,port:$,tls:J.protocol==="https:"?{serverName:Q}:void 0,socket:{open:(V)=>{this.socket=V,this.enqueueWrite(new TextEncoder().encode(O))},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=NB(this.rxBuffer,Y),!this.handshakeDone){let X=Buffer.from(this.rxBuffer).toString("latin1"),J=X.indexOf(`\r
|
|
105
90
|
\r
|
|
106
91
|
`);if(J===-1)return;let Q=X.slice(0,J),$=Q.split(`\r
|
|
107
|
-
`)[0]??"",G=Q.match(/sec-websocket-accept:\s*(\S+)/i),W=
|
|
92
|
+
`)[0]??"",G=Q.match(/sec-websocket-accept:\s*(\S+)/i),W=r9($);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(J+4),this.log("open",{statusLine:$}),this.emit("open",{})}this.drainFrames()}emitRejectedUpgrade(Y=!1){if(this.upgradeFailureEmitted)return!0;if(this.handshakeDone)return!1;let X=Buffer.from(this.rxBuffer).indexOf(`\r
|
|
108
93
|
\r
|
|
109
|
-
`);if(X===-1)return!1;let J
|
|
94
|
+
`);if(X===-1)return!1;let J=JX(this.rxBuffer,X,Y);if(!J)return!1;return this.upgradeFailureEmitted=!0,this.readyState=3,this.log("upgrade_failed",{status:J.status,partial:Y}),this.emit("error",J),!0}drainFrames(){for(;;){let Y=this.rxBuffer;if(Y.length<2)return;let X=Y[0],J=Y[1],Q=(X&128)!==0,$=X&15,G=(J&128)!==0,W=J&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 H=Y.slice(K,K+W);this.rxBuffer=Y.slice(K+W),this.handleFrame(Q,$,H)}}handleFrame(Y,X,J){if(X===9){this.writeFrame(10,J);return}if(X===10)return;if(X===8){let $=1005,G="";if(J.length>=2)$=J[0]<<8|J[1],G=Buffer.from(J.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(X===1||X===2)this.fragOpcode=X,this.fragChunks=[J];else if(X===0)this.fragChunks.push(J);if(!Y)return;let Q=BB(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,X){let J=X.length,Q=crypto.getRandomValues(new Uint8Array(4)),$;if(J<126)$=[128|Y,128|J];else if(J<65536)$=[128|Y,254,J>>8&255,J&255];else{$=[128|Y,255];for(let K=7;K>=0;K--)$.push(J/2**(8*K)&255)}let G=new Uint8Array(J);for(let K=0;K<J;K++)G[K]=X[K]^Q[K%4];let W=new Uint8Array($.length+4+J);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 X=this.writeQueue[0],J=Y.write(X);if(J<X.length){this.writeQueue[0]=X.slice(J),this.log("write_backpressure",{written:J,remaining:X.length-J});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,X){return c1({component:"raw-ws-bun",event:Y,sessionID:this.sessionID,url:this.url,...X})}}function VB(Y){return Y}function NB(Y,X){let J=new Uint8Array(Y.length+X.length);return J.set(Y,0),J.set(X,Y.length),J}function BB(Y){let X=0;for(let $ of Y)X+=$.length;let J=new Uint8Array(X),Q=0;for(let $ of Y)J.set($,Q),Q+=$.length;return J}import{connect as FB}from"node:net";import{connect as OB}from"node:tls";var jB="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",CK=["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 mJ{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,X,J){this.url=Y,this.sessionID=J?.sessionID,this.connect(Y,X)}addEventListener(Y,X,J){this.listeners[Y]?.add(X)}removeEventListener(Y,X){this.listeners[Y]?.delete(X)}peerClose;closeEmitted=!1;emitClose(Y,X){if(this.closeEmitted)return;this.closeEmitted=!0,this.emit("close",{code:Y,reason:X})}emit(Y,X){for(let J of[...this.listeners[Y]??[]])try{J(X)}catch{}}async connect(Y,X){let J=new URL(Y.replace(/^ws:/,"http:").replace(/^wss:/,"https:")),Q=J.hostname,$=J.port?Number(J.port):J.protocol==="https:"?443:80,G=`${J.pathname}${J.search}`,W=crypto.getRandomValues(new Uint8Array(16)),K=Buffer.from(W).toString("base64"),H=await crypto.subtle.digest("SHA-1",new TextEncoder().encode(K+jB));this.expectedAccept=Buffer.from(new Uint8Array(H)).toString("base64");let U={};for(let[N,V]of Object.entries(X))U[N.toLowerCase()]=V;let Z=[`GET ${G} HTTP/1.1`,`Host: ${Q}`,"Connection: Upgrade","Upgrade: websocket","Sec-WebSocket-Version: 13",`Sec-WebSocket-Key: ${K}`];for(let N of CK)if(U[N]!==void 0)Z.push(`${qB(N)}: ${U[N]}`);for(let[N,V]of Object.entries(X))if(!CK.includes(N.toLowerCase())&&N.toLowerCase()!=="content-length")Z.push(`${N}: ${V}`);let O=`${Z.join(`\r
|
|
110
95
|
`)}\r
|
|
111
96
|
\r
|
|
112
|
-
`;try{this.log("connect_start",{host:Q,port:$,tls:J.protocol==="https:"});let N=()=>{this.socket?.write(
|
|
97
|
+
`;try{this.log("connect_start",{host:Q,port:$,tls:J.protocol==="https:"});let N=()=>{this.socket?.write(O)},V=J.protocol==="https:"?OB({host:Q,port:$,servername:Q},N):FB({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=DB(this.rxBuffer,Y),!this.handshakeDone){let X=Buffer.from(this.rxBuffer).toString("latin1"),J=X.indexOf(`\r
|
|
113
98
|
\r
|
|
114
99
|
`);if(J===-1)return;let Q=X.slice(0,J),$=Q.split(`\r
|
|
115
|
-
`)[0]??"",G=Q.match(/sec-websocket-accept:\s*(\S+)/i),W=
|
|
100
|
+
`)[0]??"",G=Q.match(/sec-websocket-accept:\s*(\S+)/i),W=r9($);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(J+4),this.log("open",{statusLine:$}),this.emit("open",{})}this.drainFrames()}emitRejectedUpgrade(Y=!1){if(this.upgradeFailureEmitted)return!0;if(this.handshakeDone)return!1;let X=Buffer.from(this.rxBuffer).indexOf(`\r
|
|
116
101
|
\r
|
|
117
|
-
`);if(X===-1)return!1;let J
|
|
102
|
+
`);if(X===-1)return!1;let J=JX(this.rxBuffer,X,Y);if(!J)return!1;return this.upgradeFailureEmitted=!0,this.readyState=3,this.log("upgrade_failed",{status:J.status,partial:Y}),this.emit("error",J),!0}drainFrames(){for(;;){let Y=this.rxBuffer;if(Y.length<2)return;let X=Y[0],J=Y[1],Q=(X&128)!==0,$=X&15,G=(J&128)!==0,W=J&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 H=Y.slice(K,K+W);this.rxBuffer=Y.slice(K+W),this.handleFrame(Q,$,H)}}handleFrame(Y,X,J){if(X===9){this.writeFrame(10,J);return}if(X===10)return;if(X===8){let $=1005,G="";if(J.length>=2)$=J[0]<<8|J[1],G=Buffer.from(J.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(X===1||X===2)this.fragOpcode=X,this.fragChunks=[J];else if(X===0)this.fragChunks.push(J);if(!Y)return;let Q=EB(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,X){let J=X.length,Q=crypto.getRandomValues(new Uint8Array(4)),$;if(J<126)$=[128|Y,128|J];else if(J<65536)$=[128|Y,254,J>>8&255,J&255];else{$=[128|Y,255];for(let K=7;K>=0;K--)$.push(J/2**(8*K)&255)}let G=new Uint8Array(J);for(let K=0;K<J;K++)G[K]=X[K]^Q[K%4];let W=new Uint8Array($.length+4+J);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,X){return c1({component:"raw-ws-node",event:Y,sessionID:this.sessionID,url:this.url,...X})}}function qB(Y){return Y}function DB(Y,X){let J=new Uint8Array(Y.length+X.length);return J.set(Y,0),J.set(X,Y.length),J}function EB(Y){let X=0;for(let $ of Y)X+=$.length;let J=new Uint8Array(X),Q=0;for(let $ of Y)J.set($,Q),Q+=$.length;return J}function PB(){return typeof globalThis.Bun?.connect==="function"}var _K=PB()?fJ:mJ;function QX(Y){return process.env[Y]??process.env[Y.toLowerCase()]}function MB(Y){let X=QX("NO_PROXY");if(!X)return!1;let J=Y.hostname.toLowerCase(),Q=X.split(",").map(($)=>$.trim().toLowerCase()).filter(Boolean);for(let $ of Q){if($==="*")return!0;if($.startsWith(".")){if(J===$.slice(1)||J.endsWith($))return!0}else if(J===$||J.endsWith(`.${$}`))return!0}return!1}function wB(Y){let X=new URL(Y);if(MB(X))return;if(X.protocol==="http:")return QX("HTTP_PROXY");if(X.protocol==="https:")return QX("HTTPS_PROXY")??QX("HTTP_PROXY");return}var IK={getProxyForUrl:wB};var AB=N0("quota"),$X=N0("transport"),bK="responses_websockets=2026-02-06",SK=["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"],RB=new Set([M1,"x-opencode-title"]);function TB(Y){let X=new Map;for(let Q of Object.keys(Y))X.set(Q.toLowerCase(),Q);let J={};for(let Q of SK){let $=X.get(Q),G=$===void 0?void 0:Y[$];if($!==void 0&&G!==void 0)J[$]=G}for(let[Q,$]of Object.entries(Y))if(!SK.includes(Q.toLowerCase()))J[Q]=$;return J}function CB(Y){let X={};for(let[J,Q]of Object.entries(Y)){if(RB.has(J.toLowerCase()))continue;X[J]=Q}return X}function _B(Y){return Y.replace(/^http/,"ws")}function IB(Y){let X={};if(!Y)return X;if(Y instanceof Headers)return Y.forEach((J,Q)=>{X[Q.toLowerCase()]=J}),X;if(Array.isArray(Y)){for(let[J,Q]of Y)X[J.toLowerCase()]=Q;return X}for(let[J,Q]of Object.entries(Y))if(Q!=null)X[J.toLowerCase()]=String(Q);return X}function uJ(Y){return Y instanceof DOMException&&Y.name==="AbortError"}var vK=new WeakSet;function SB(Y){return typeof Y==="object"&&Y!==null&&vK.has(Y)}var hK=new WeakSet;function kB(Y){return typeof Y==="object"&&Y!==null&&hK.has(Y)}function gK(Y){return hK.add(Y),Y}function kK(Y,X){let J=Error(Y,X===void 0?void 0:{cause:X});return vK.add(J),J}function xB(Y){return new Promise((X,J)=>{if(Y.signal?.aborted){J(cJ(Y.signal));return}let Q={...Y.headers,"openai-beta":Y.headers["openai-beta"]??bK},$=Q[M1]??Q["session-id"];delete Q["content-length"],Q=TB(CB(Q));let G=typeof Bun>"u"?void 0:IK.getProxyForUrl(Y.url.replace(/^wss:/,"https:").replace(/^ws:/,"http:")),W=!0,K=Y.rawWebSocket?new _K(Y.url,Q,{sessionID:$}):new globalThis.WebSocket(Y.url,{headers:Q,...G?{proxy:G}:{},perMessageDeflate:W}),H=Y.timeout?setTimeout(()=>{U(),K.close(),J(Error("WebSocket connect timed out"))},Y.timeout):void 0;function U(){if(H)clearTimeout(H);K.removeEventListener("open",Z),K.removeEventListener("error",O),K.removeEventListener("close",N),Y.signal?.removeEventListener("abort",V)}function Z(){U(),X(K)}function O(q){U(),J(kK(a9(q),q))}function N(q){U(),J(kK(cK("WebSocket closed before open",q.code,q.reason)))}function V(){U(),K.close(),J(cJ(Y.signal))}K.addEventListener("open",Z,{once:!0}),K.addEventListener("error",O,{once:!0}),K.addEventListener("close",N,{once:!0}),Y.signal?.addEventListener("abort",V,{once:!0})})}function bB(Y){let X=new TextEncoder,J=Y.socket,Q,$=()=>{},G=!1,W=0,K=!1,H=!1,U,Z=[],O=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,m,_=new Set;function P(){if(U)clearTimeout(U);$(),Y.signal?.removeEventListener("abort",c)}function b(B=J){B.close()}function y(){P(),Q?.enqueue(X.encode(`data: [DONE]
|
|
118
103
|
|
|
119
|
-
`)),Q?.close()}function
|
|
104
|
+
`)),Q?.close()}function n(B){V0(B,B)}function a(B){let D={...q,openingFrameTypes:Z,responseID:T,previousResponseID:N,hasContinuation:N!==void 0,framesSinceCreated:S,msSinceLastFrame:m===void 0?void 0:Date.now()-m};if(H){let M=fK;$X.warn("stream failed after output; not retried",{reason:B.message,emittedOutput:!0,...D}),V0(Error(M,{cause:B}),new y0(M,{cause:B}));return}$X.warn("stream failed before output; retryable",{reason:B.message,emittedOutput:!1,...D}),n(B)}function V0(B,D){if(G)return;G=!0,P(),Y.onConnectionInvalid?.(D),Q?.error(B)}function W0(B){if(G)return;if(!Y.idleTimeout)return;if(U)clearTimeout(U);U=setTimeout(()=>a(new y0(B)),Y.idleTimeout)}async function O0(B){if(G)return;if(typeof B.data!=="string"){a(new y0("Unexpected binary WebSocket frame"));return}let D=B.data,M=(()=>{try{let i=JSON.parse(D);return typeof i==="object"&&i!==null?i:void 0}catch{return}})();if(M?.type==="codex.rate_limits"){AB.debug("codex.rate_limits frame received",{pid:process.pid}),W0("idle timeout waiting for websocket");let i=xK(M);Y.onQuota?.(i);return}let f=!H?s9(M):void 0;if(f&&M){G=!0,P(),Y.onRateLimitReached?.(f.window,f.resetAt),Y.onTerminal?.(M),Y.onFirstEvent?.(),Q?.error(new y0(`OpenAI account rate limit reached at admission (${f.window})`));return}if(M?.type==="error"&&Y.onRetryableTerminal){if($(),U)clearTimeout(U);U=void 0;try{let i=await Y.onRetryableTerminal(M);if(G){if(i)b(i);return}if(i){A(i);return}}catch(i){a(new y0(i instanceof Error?i.message:String(i),{cause:i}));return}}let u=gB(M,D);if(u&&M){if(!K)Y.onFirstEvent?.(u);G=!0,P(),Y.onTerminal?.(M);let i=new x9({message:u.message,url:J.url,requestBodyValues:Y.body,statusCode:u.status,responseHeaders:u.headers,responseBody:u.body});Q?.error(H?Error(i.message,{cause:i}):i);return}if(o(M)&&M.type==="response.failed"){let i=o(M.response)?M.response.failed:void 0,J0=o(i)?i.rate_limit_reached_type:void 0;if(typeof J0==="string"){if(G=!0,P(),Y.onRateLimitReached?.(J0),Y.onTerminal?.(M),!H)Y.onFirstEvent?.(),Q?.error(new y0(`OpenAI account rate limit reached mid-stream (${J0})`));else y();return}}if(!M){if(!K)Y.onFirstEvent?.();W0("idle timeout waiting for websocket");return}if(vB(M,_),!K)Y.onFirstEvent?.();if(Q?.enqueue(X.encode(`${D.split(/\r?\n/).map((i)=>`data: ${i}`).join(`
|
|
120
105
|
`)}
|
|
121
106
|
|
|
122
|
-
`)),K=!0,u=Date.now(),R!==void 0)S++;if(L.length<F)L.push(String(n.type));if(n.type==="response.created")R=Qq(n),WX.debug("response created",{...j,responseID:R,previousResponseID:N,hasContinuation:N!==void 0});if(!$q(n.type))Z=!0;if(W0("idle timeout waiting for websocket"),!n)return;if(n.type==="response.completed"||n.type==="response.done"){G=!0,eB(n,I),Y.onComplete?.(n,I),Y.onTerminal?.(n),f();return}if(n.type==="response.failed"||n.type==="response.incomplete"||n.type==="error")G=!0,Y.onTerminal?.(n),f()}function u0(B){t(new m0(t9(B),{cause:B}))}function z1(B){if(G)return;let D=B.code===1009,w=new m0(D?nz:rz("WebSocket closed before response.completed",B.code,B.reason),{retryable:!D});if(D)WX.warn("websocket peer refused the request size",{...j,requestBytes:W,reason:B.reason.toString()});t(D?dz(w):w)}function c(){let B=d8(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?.(Xq(B))}function A(B){$(),J=B,J.addEventListener("message",F0),J.addEventListener("error",u0,{once:!0}),J.addEventListener("close",z1,{once:!0}),$=()=>{J.removeEventListener("message",F0),J.removeEventListener("error",u0),J.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,J.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",c,{once:!0}),Y.signal?.aborted){c();return}A(J)},cancel(B){M(B)}}),{status:200,headers:{"content-type":"text/event-stream"}})}async function sB(Y,X){if(!aB(Y))return;await N1({component:"ws",event:"provider_native_web_search_event",sessionID:X,serverEventType:Y.type,itemType:h(Y.item)?Y.item.type:void 0,serverEvent:Y})}function aB(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 tB(Y,X){if(Y.type!=="response.output_item.done")return;if(!h(Y.item))return;iz(Y.item,X)}function eB(Y,X){let J=Y.response;if(!h(J)||!Array.isArray(J.output))return;for(let Q of J.output)if(h(Q))iz(Q,X)}function iz(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 Yq(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:h(Y.headers)?Object.fromEntries(Object.entries(Y.headers).flatMap(([Q,$])=>typeof $==="string"||typeof $==="number"||typeof $==="boolean"?[[Q,String($)]]:[])):void 0,body:X,message:h(Y.error)&&typeof Y.error.message==="string"?Y.error.message:`${J}`}}function a9(Y){if(typeof Y==="string")try{return a9(JSON.parse(Y))}catch{return}if(!h(Y))return;let X=a9(Y.cause);if(X)return X;let J=a9(Y.body);if(J)return J;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 Xq(Y){if(i8(Y))return Y;if(Y instanceof Error)return Y;return new DOMException(typeof Y==="string"?Y:"Aborted","AbortError")}function d8(Y){let X=Y?.reason;if(i8(X))return X;if(Jq(X))return X;return new DOMException(X instanceof Error?X.message:"Aborted","AbortError")}function Jq(Y){return Y instanceof Error&&(Y.name==="ProviderHeaderTimeoutError"||Y.name==="ProviderResponseStreamError")}function Qq(Y){let X=Y.response;if(!h(X))return;return typeof X.id==="string"?X.id:void 0}function $q(Y){return Y==="response.created"||Y==="response.in_progress"||Y.startsWith("codex.")}var oz="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.",nz="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 rz(Y,X,J){let Q=[`code ${X}`];if(J.length>0)Q.push(J.toString());return`${Y} (${Q.join(": ")})`}var n8="x-opencode-title",zX="x-openai-auth-quota-account",o8=new Set([n8,w1,zX,"x-opencode-session"]),Wq=15000,zq=300000,Kq=3300000,sz="websocket_connection_limit_reached";function Uq(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 Gq("sha256").update(Q).digest("hex").slice(0,12)}function Zq(Y){let X=Y?.httpFetch??globalThis.fetch,J=new Map,Q=Y?.connectTimeout??Wq,$=Y?.idleTimeout??zq,G=Y?.maxConnectionAge??Kq,W=Y?.streamRetries??5,K=Y?.firstEventGraceMs??250,Z=Y?.rawWebSocket??!1,U=Y?.onQuota,L=Y?.onRateLimitReached,F=setInterval(()=>R(),Math.min($,60000));if(typeof F==="object"&&"unref"in F&&typeof F.unref==="function")F.unref();function N(I,E,b){if(!E||!b)return b;r8(I,az(E));let f=new Headers(b.headers),o=f.get("x-codex-turn-metadata");if(!o)return b;let t=GK(o,I.turnID,I.turnStartedAt);if(!t)return b;return f.set("x-codex-turn-metadata",t),{...b,headers:f}}async function V(I,E){let b=I instanceof URL?I.toString():typeof I==="string"?I:I.url,f=_0.normalizeHeaders(E?.headers),o=KK(E),t=IY(o);if(E?.method!=="POST"||!new URL(b).pathname.endsWith("/responses"))return X(I,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 X(I,t);if(f[n8]==="true")return X(I,t);let W0=f[w1]??f["x-session-affinity"]??f["session-id"],F0=W0;if(!W0)return X(I,t);let u0=_0.normalizeHeaders(o?.headers),z1=Uq(u0),c=`${W0}:${z1}:conversation`,M=typeof f[zX]==="string"?f[zX]:void 0,A=L?(D,w)=>L(D,M,w):void 0,B=J.get(c)??{lastUsedAt:Date.now(),busy:!1,fallback:!1,streamFailures:0};if(J.set(c,B),B.fallback)return X(I,N(B,N0,t));if(B.busy)return X(I,N(B,N0,t));B.busy=!0,B.lastUsedAt=Date.now();try{let D=az(N0),w=_0.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?jq(w):w;if(B.socket=await Nq(B,Y?.url??b,z0,Q,G,Z,E?.signal),Mq(B,D))await Bq(B,D,$,{signal:E?.signal??void 0,sessionID:F0,url:Y?.url??b,headers:o?.headers,onRateLimitReached:A});let r=()=>{},v0=()=>{},K1=new Promise((Q0,T0)=>{r=Q0,v0=T0}),A0=Eq(B,D),s1=e9($K(B,A0,D)),X1=typeof s1.previous_response_id==="string";await $9({sessionID:F0,transport:"websocket",phase:"main",bodyText:JSON.stringify(s1),url:Y?.url??b,method:o?.method,headers:o?.headers});let J0=_0.streamResponsesWebSocket({socket:B.socket,body:s1,sessionID:F0??void 0,idleTimeout:$,signal:E?.signal??void 0,onQuota:n,onRateLimitReached:A,onFirstEvent:(Q0)=>r(Q0??!0),onComplete:(Q0,T0)=>{let g1=YK(Q0);N1({component:"ws-pool",event:"main_completed",sessionID:F0,responseID:ez(Q0),usage:g1}),QK(B,D,Q0,T0,X1)},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(),_0.isOversizedFrame(Q0))B.fallback=!0;if(!B.fallback)j(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 T0=tz(Q0);if(!T0)return;throw B.fallback=!0,T0}}),o0=await Lq(K1,K);if(o0!==!1){if(o0===!0||o0.status<200||o0.status>599)return J0;return new Response(o0.body,{status:o0.status,headers:{"content-type":"application/json",...o0.headers}})}let V9=()=>X(I,N(B,N0,t));if(!B.fallback)return Hq(J0,V9);return V9()}catch(D){if(B.busy=!1,B.lastUsedAt=Date.now(),_0.isAbortError(D))throw B.streamFailures=0,B.continuation=void 0,D1(B),D;let w=_0.parseRateLimitSignal(D);if(w)A?.(w.window,w.resetAt);if(_0.isUpgradeFailure(D)&&!Z)B.fallback=!0;if(j(B),B.continuation=void 0,D1(B),B.fallback)return X(I,N(B,N0,t));return Vq(new m0(D instanceof Error?D.message:String(D),{cause:D}))}}function j(I){if(I.streamFailures++,I.streamFailures>W)I.fallback=!0}function R(){let I=Date.now();for(let[E,b]of J){if(b.busy)continue;if(I-b.lastUsedAt<$)continue;D1(b),J.delete(E)}}function S(){clearInterval(F);for(let I of J.values())D1(I);J.clear()}function u(I){let E=`${I}:`;for(let[b,f]of J){if(!b.startsWith(E))continue;D1(f),J.delete(b)}}return Object.assign(V,{close:S,remove:u})}function tz(Y){if(Y.type!=="error"||!h(Y.error)||Y.error.code!==sz)return;return Error(typeof Y.error.message==="string"?Y.error.message:sz)}async function Lq(Y,X){if(X<=0)return!1;return new Promise((J,Q)=>{let $=setTimeout(()=>J(!1),X);Y.then((G)=>{clearTimeout($),J(G)},(G)=>{clearTimeout($),Q(G)})})}function Hq(Y,X){let J=Y.body;if(!J)return Y;let Q=!1,$=new ReadableStream({async start(G){let W=J.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||!_0.isOversizedFrame(Z)){G.error(Z);return}try{let U=await X();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){J.cancel(G)}});return new Response($,{status:Y.status,headers:Y.headers})}function Vq(Y){return new Response(new ReadableStream({start(X){X.error(Y)}}),{status:200,headers:{"content-type":"text/event-stream"}})}async function Nq(Y,X,J,Q,$,G,W){if(Y.socket?.readyState===WebSocket.OPEN&&Y.connectedAt&&Date.now()-Y.connectedAt<$)return Y.socket;D1(Y);let K=await _0.connectResponsesWebSocket({url:_0.toWebSocketUrl(X),headers:J,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 Bq(Y,X,J,Q){if(!Y.socket||!Array.isArray(X.input)||X.input.length===0)return;let $=Fq(X);await $9({sessionID:Q.sessionID,transport:"websocket",phase:"prewarm",bodyText:JSON.stringify($),url:Q.url,method:"POST",headers:Q.headers});let G=_0.streamResponsesWebSocket({socket:Y.socket,body:$,sessionID:Q.sessionID,idleTimeout:J,signal:Q.signal,onRateLimitReached:Q.onRateLimitReached,onComplete:(W,K)=>{N1({component:"ws-pool",event:"prewarm_completed",sessionID:Q.sessionID,responseID:ez(W),usage:YK(W)}),QK(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=tz(W);if(!K)return;throw Y.fallback=!0,K}});await qq(G)}function ez(Y){let X=Y.response;if(!h(X))return;return typeof X.id==="string"?X.id:void 0}function YK(Y){let X=Y.response;if(!h(X))return;return h(X.usage)?X.usage:void 0}async function qq(Y){let X=Y.body?.getReader();if(!X)return;while(!0)if((await X.read()).done)return}function Fq(Y){return e9({...Y,generate:!1,input:[],previous_response_id:void 0,client_metadata:Oq(Y.client_metadata)})}function XK(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 Oq(Y){if(!h(Y))return Y;if(typeof Y["x-codex-turn-metadata"]!=="string")return Y;try{let X=JSON.parse(Y["x-codex-turn-metadata"]);if(!h(X))return Y;return{...Y,"x-codex-turn-metadata":XK(X),"x-codex-ws-stream-request-start-ms":String(Date.now())}}catch{return Y}}function jq(Y){let X=Y["x-codex-turn-metadata"];if(!X)return Y;try{let J=JSON.parse(X);if(!h(J))return Y;return{...Y,"x-codex-turn-metadata":XK(J)}}catch{return Y}}var JK=["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 az(Y){let X={...Y};if(Array.isArray(Y.input))X.input=Y.input.map(Dq);return X}function e9(Y){let X={};for(let J of JK)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 Dq(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 QK(Y,X,J,Q,$){let G=J.response,W=h(G)&&typeof G.id==="string"?G.id:void 0;if(!W||!Array.isArray(X.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:X.input,signature:s8(X),finalizedCallIds:K}}function r8(Y,X,J=X){let Q=Array.isArray(X.input)?X.input:[],$=Array.isArray(J.input)?J.input:Q,G=s8(J),W=Y.turnInput&&Y.turnSignature===G?Pq(Y.turnInput,$):void 0,K=W===void 0?Q:$.slice(W);if(K.length>0&&K.some(WK)||!Y.turnID)Y.turnID=c1(),Y.turnStartedAt=Date.now();Y.turnInput=$.slice(),Y.turnSignature=G}function $K(Y,X,J=X){r8(Y,X,J);let Q=X.client_metadata;if(!h(Q)||typeof Q["x-codex-turn-metadata"]!=="string")return X;let $=GK(Q["x-codex-turn-metadata"],Y.turnID,Y.turnStartedAt);if(!$)return X;return{...X,client_metadata:{...Q,"x-codex-turn-metadata":$}}}function GK(Y,X,J){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:X,sandbox:Q.sandbox,turn_started_at_unix_ms:J,request_kind:"turn",window_id:Q.window_id})}function Pq(Y,X){if(Y.length>X.length)return;for(let J=0;J<Y.length;J++)if(B1(Y[J])!==B1(X[J]))return;return Y.length}function Eq(Y,X){let J=Array.isArray(X.input)?X.input:void 0;if(!J||!Y.continuation)return X;if(Y.continuation.signature!==s8(X))return Y.continuation=void 0,X;if(!zK(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),$=wq(Q,Y.continuation.finalizedCallIds);if($.length===0)return X;return{...X,previous_response_id:Y.continuation.responseID,input:$}}function Mq(Y,X){let J=Array.isArray(X.input)?X.input:void 0;if(!Y.continuation)return!0;if(!J)return!1;if(!zK(Y.continuation.input,J))return!0;return J.slice(Y.continuation.input.length).some(WK)}function WK(Y){if(!h(Y))return!1;if(!(Y.type==="message"||("role"in Y)))return!1;return Y.role==="user"||Y.role==="developer"}function wq(Y,X){return Y.filter((J)=>{if(!h(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 s8(Y){return B1(Aq(Object.fromEntries(Object.entries(Y).filter(([X])=>X!=="input"&&X!=="stream"&&X!=="background"&&X!=="previous_response_id"&&X!=="generate"))))}function Aq(Y){if(!h(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 zK(Y,X){if(Y.length>=X.length)return!1;for(let J=0;J<Y.length;J++)if(B1(Y[J])!==B1(X[J]))return!1;return!0}function KK(Y){if(!Y?.headers)return Y;if(Y.headers instanceof Headers){let X=new Headers(Y.headers);for(let J of o8)X.delete(J);return{...Y,headers:X}}if(Array.isArray(Y.headers))return{...Y,headers:Y.headers.filter((X)=>!o8.has(X[0].toLowerCase()))};return{...Y,headers:Object.fromEntries(Object.entries(Y.headers).filter(([X])=>!o8.has(X.toLowerCase())))}}var Tq=300000,Rq=30000,Cq=5000,Iq=100;function JJ(Y){let X=Y.logger,J=Y.now??Date.now,Q=Y.manifestPath??IX(),$=Y.cacheConnector??bq(X),G=Y.detectClaustrumConnection??LK,W,K,Z,U,L,F=!1,N=new Map,V=new Set,j,S={isEnabled:()=>U?.status==="available",wasDetected:()=>U?.status==="available",getCache:()=>W,async ensureCache(){if(W)return W;return await u(),W},getTransport:()=>K,getCustodyProjection:(c,M)=>{let A=N.get(c.id);if(A)return A;return UK(c,Y.storage,M,W,j)},async boot(){if(F)return;try{U=await G()}catch(w){X.warn("custody detection failed",{error:w instanceof Error?w.message:String(w)});return}if(U.status!=="available"){if(U.status==="malformed")X.warn("custody connection malformed; disabled for this process",{reason:U.reason});else X.info("custody not configured; no client/timer created",{});return}let c=await Y.readCustodyManifest(Q);if(j=c,await E(c),Y.storage?.claustrum?.mode!=="claustrum"){X.info("custody connection available but mode is local; manifest read for the refresh gate, no client/timer",{});return}if(!await u()){F0();return}let M=W;if(!M)return;if(!c.ok&&c.reason!=="absent"){I(await Y.loadAccounts(s(Y.configPath))),F0();return}await f(),await o(c);let A=await Y.loadAccounts(s(Y.configPath));await Y.onReconcileStep?.("enabled-manifest-join");let B=a8(c,A),D=[];for(let w of t8(A)){if(A?.claustrum?.transition?.fingerprints.fallbacks[w.id])continue;if(!e8(w,c,E0)&&!(k0(w,E0)&&!w.accountId))continue;if(!B.get(w.id))continue;let p=u0(M);D.push(YJ(w,p).then((n)=>z1(w,n,c)).catch((n)=>X.warn("custody boot sweep failed",{error:n instanceof Error?n.message:String(n)})))}await Promise.all(D),await xq(B,M,A,Iq),F0()},async runTick(){if(F)return;if(Y.storage?.claustrum?.mode!=="claustrum")return;let c=j?.ok?j.revision:void 0,M=Y.readCustodyManifest(Q),A=W?void 0:u(),B=await M;if(j=B,!B.ok&&B.reason!=="absent"){I(await Y.loadAccounts(s(Y.configPath)));return}let D=B.ok&&B.revision!==c?await E(B):await Y.loadAccounts(s(Y.configPath));if(!W&&!await A)return;if(B.ok&&B.revision===c){await f(),await Y.onReconcileStep?.("enabled-manifest-join");let m=a8(B,D);await b(B,m),await W0(B,m);return}await f(),await o(B),await Y.onReconcileStep?.("enabled-manifest-join");let w=a8(B,D);await b(B,w),await W0(B,w)},dispose(){if(F)return;if(F=!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 u(){if(F)return!1;if(W)return!0;if(Z)return Z;if(!U)return!1;let c=(async()=>{let M;try{let A=$({connectionFile:hq(U),handshakeTimeoutMs:Cq});M=new NK({connector:()=>A,now:J});let B=await A;if(F)return M.close(),!1;return W=M,K=B,!0}catch(A){return M?.close(),X.warn("custody connect failed; disabled until tick reconnect",{error:A instanceof Error?A.message:String(A)}),!1}})();Z=c;try{return await c}finally{if(Z===c)Z=void 0}}function I(c){for(let M of t8(c))N.set(M.id,{state:"inert",reason:"manifest-unreadable"})}async function E(c){let M=await Y.loadAccounts(s(Y.configPath));if(!M||!c.ok)return M;for(let[A,B]of y0(c)){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),X.info(`orphan-binding: ${D}`,{accountId:A});if(M.claustrum?.mode!=="claustrum")continue;let m=null;while(!m&&!F)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(c,M){if(!W)return;let A=await Y.loadAccounts(s(Y.configPath)),B=u0(W);for(let D of t8(A)){if(A?.claustrum?.transition?.fingerprints.fallbacks[D.id])continue;if(!e8(D,c,E0)&&!(k0(D,E0)&&!D.accountId))continue;if(!M.has(D.id))continue;let w=await YJ(D,B);z1(D,w,c)}}async function f(){let c=await Y.loadAccounts(s(Y.configPath)),M=c?.claustrum?.transition;if(c?.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||J9(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:u1,ttlMs:b1,path:Y.configPath,renew:!0});if(!B)A=!0;else try{if(await xX(M.fingerprints.main,{auth:Y.auth,warn:(w)=>X.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(c){if(!W||!c.ok)return;let M=await Y.loadAccounts(s(Y.configPath));if(M?.claustrum?.mode!=="claustrum")return;let A=y0(c);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(c,M,A){if(Y.resolveFallbackVaultState)return Y.resolveFallbackVaultState({accountId:c,handle:A});if(!W)return"cold";if(W.isReauth(A,J()))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)X.warn("custody identity unverifiable; serving",{credentialId:A});return"serves"}catch{return W.isReauth(A,J())?"needs_reauth":"cold"}}async function N0(c,M){let A=await Y.acquireRefreshFileLock({name:M1(c),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===c);if(D?.claustrum?.mode!=="claustrum"||!B.ok||y0(B).get(c)!==M||w?.type!=="oauth"||w.corrupt!==!0)return;await Y.mutateAccounts((m)=>{let p=m.accounts.find((r)=>r.id===c);if(p?.type!=="oauth"||p.corrupt!==!0)return m;let{corrupt:n,...z0}=p;return{...m,accounts:m.accounts.map((r)=>r.id===c?{...z0,...V1(E0)}:r)}},s(Y.configPath))}finally{await A.release().catch(()=>{})}}async function W0(c,M){if(!W)return;for(let[A,B]of M){if(W.isReauth(B,J()))continue;let w=(await Y.loadAccounts(s(Y.configPath)))?.accounts.find((m)=>m.id===A);if(!w||!V0(w))continue;if(!VK(w,c,Y.storage??{}))continue;try{let m=await W.get(B);N.set(A,{state:"vault",recordVersion:m.recordVersion})}catch{}}}function F0(){if(F)return;let c=Y.setIntervalFn??setInterval,M=Math.floor((Math.random()*2-1)*Rq),A=Tq+M;if(L=c(()=>{if(F)return;S.runTick().catch((D)=>X.warn("custody tick failed",{error:D instanceof Error?D.message:String(D)}))},A),L&&typeof L==="object"&&"unref"in L)L.unref?.()}function u0(c){return{loadAccounts:Y.loadAccounts,readCustodyManifest:Y.readCustodyManifest,acquireRefreshFileLock:Y.acquireRefreshFileLock,configPath:Y.configPath,paths:s(Y.configPath),manifestPath:Q,cache:c,minTtlMs:v1(Y.storage),mutateAccounts:Y.mutateAccounts,provider:E0,now:J}}function z1(c,M,A){if(M.kind==="succeeded"){N.set(c.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(c.id,{state:"inert",reason:D==="unavailable"?"takeover-incomplete/vault-unavailable":"identity-mismatch"}),Sq(X,c.id,D,M.recordVersion,J());return}if(M.reason==="notEnrolling"){let B=J(),D=UK(c,Y.storage,B,W,A);if(D)N.set(c.id,D)}}return S}var _q=3600000,XJ=new Map;function Sq(Y,X,J,Q,$){let G=`${X}:${J}`,W=XJ.get(G);if(W!==void 0&&$-W<_q)return;XJ.set(G,$),Y.warn("custody enroll-completion sweep failed",{accountId:X,reason:J,...typeof Q==="number"?{recordVersion:Q}:{}})}function kq(){XJ.clear()}function v1(Y){return((Y?.refresh?.refreshBeforeExpiryMinutes??240)+30)*60000}function a8(Y,X){let J=new Map;for(let[Q,$]of y0(Y)){let G=X?.accounts.find((W)=>W.id===Q);if(G?.type!=="oauth")continue;if(!KX(G,Y,E0))continue;J.set(Q,$)}return J}function UK(Y,X,J,Q,$){let G=X??{},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,J)?"vault-reauth":"vault-cold"})}async function xq(Y,X,J,Q,$=[]){if(Y.size===0&&$.length===0)return;let G=[...$];for(let[,W]of Y)G.push(X.get(W).then(()=>{return}).catch(()=>{}));await Promise.race([Promise.all(G),new Promise((W)=>setTimeout(W,Q))])}function t8(Y){if(!Y)return[];return Y.accounts.filter(V0)}function bq(Y){return async(X)=>{let J=await HK.connect({connectionFile:X.connectionFile,handshakeTimeoutMs:X.handshakeTimeoutMs});return vq(J,Y)}}function vq(Y,X){return{getCredential:(J,Q)=>Y.getCredential(J,Q),statusCredential:(J)=>Y.statusCredential(J),reportAuthFailure:(J)=>Y.reportAuthFailure({handle:J.handle,providerStatus:J.providerStatus,recordVersion:J.recordVersion,reporterSource:J.reporterSource}),close:()=>Y.close()}}function hq(Y){if(Y.status!=="available")return Y.path??"";return ZK()}var uq=new Set(["gpt-5.5","gpt-5.3-codex-spark","gpt-5.4","gpt-5.4-mini"]),cq=new Set(["gpt-5.6","gpt-6"]),pq="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.",lq=new Set(["gpt-5.6-sol","gpt-5.6-terra","gpt-5.6-luna","gpt-6-astra","gpt-6-sol","gpt-6-luna"]),dq="opencode-oauth-dummy-key",iq="terminal_resize_reflow",UJ="0.155.0",oq=`codex_exec/${UJ} (Debian 12.0.0; aarch64) unknown (codex_exec; ${UJ})`,nq="seccomp",bM=()=>u1,QJ=120000,rq=90000,sq=4000,BK=50,qK=3,aq=25,tq=60000,eq="__OPENCODE_OPENAI_AUTH_COMMAND_HANDLED__",ZJ=!1;function vM(){ZJ=!1}var FK=B0("models"),OK=!1,jK=!1;class HJ 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,X){super(X);this.name="ResetTargetResolutionError",this.code=Y}}function DK(Y,X,J,Q){let $=(J?.refresh?.refreshBeforeExpiryMinutes??240)*60000;return!Y||!X||X-Q<=$}function YF(Y){return async(X)=>{if(X==="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(DK(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),F=L?$1(L):void 0,N=await Y.loadAccounts({configPath:Y.accountStoragePath,statePath:Y.accountStatePath});return{accountKey:X,label:"Main account",accessToken:U.access,chatgptAccountId:F??N?.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 W1("unknown_account",`Fallback account ${X} was not found.`);if(Q.enabled===!1)throw new W1("disabled_account",`Fallback account ${X} is disabled.`);if(!V0(Q))throw new W1("non_oauth_account",`Fallback account ${X} is not an OAuth account.`);let $=Q;if(!await Y.isFallbackRefreshInert?.($,J)&&DK($.access,$.expires,J,Y.now()))$=await Y.refreshFallbackAccount($,J);let G=Y.resolveFallbackAccess?await Y.resolveFallbackAccess($,J):$.access?{token:$.access,provenance:"local"}:h1;if(G===h1||G===r1)throw new W1("token_unavailable",`Fallback account ${X} has no usable access token.`);let W=await Y.loadAccounts({configPath:Y.accountStoragePath,statePath:Y.accountStatePath}),K=W?.accounts.find((Z)=>Z.id===X);if(!W||!K)throw new W1("unknown_account",`Fallback account ${X} was not found.`);if(K.enabled===!1)throw new W1("disabled_account",`Fallback account ${X} is disabled.`);if(!V0(K))throw new W1("non_oauth_account",`Fallback account ${X} is not an OAuth account.`);return{accountKey:X,label:$.label??X,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 XF(){return{fetchImpl:fetch,now:Date.now,randomUUID:()=>crypto.randomUUID()}}function $J(Y){return Y instanceof HJ}function PK(){throw Error(eq)}function JF(Y){return Math.floor(Math.random()*Y)}function QF(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 $F(Y,X,J){let Q=Y.get(X);if(Q)return Q;let $=c1(),G={threadID:$,turnID:c1(),windowID:`${$}:0`};return Y.set(X,G),J?.(),G}function oK(){return KJ(OY(),"openai-auth-sessions.json")}function GF(){let Y=new Map;try{let X=JSON.parse(iK(oK(),"utf8"));if(!h(X.sessions))return Y;for(let[J,Q]of Object.entries(X.sessions)){if(!h(Q)||typeof Q.threadID!=="string")continue;Y.set(J,{threadID:Q.threadID,turnID:c1(),windowID:`${Q.threadID}:0`})}}catch{}return Y}function WF(Y){let X=oK(),J=`${X}.tmp-${process.pid}`;try{gq(OY(),{recursive:!0});let Q={version:1,sessions:Object.fromEntries([...Y.entries()].map(([$,G])=>[$,{threadID:G.threadID}]))};mq(J,`${JSON.stringify(Q,null,2)}
|
|
123
|
-
`,"utf8"),yq(J,X)}catch{}}function EK(Y,X){return h(Y)&&(Y.type==="message"||("role"in Y))&&Y.role===X}function zF(Y,X){if(Y.length>X.length)return!1;for(let J=0;J<Y.length;J++)if(B1(Y[J])!==B1(X[J]))return!1;return!0}function KF(Y,X){if(!Y.input)return X.length>0;if(!zF(Y.input,X))return!0;return X.slice(Y.input.length).some((Q)=>EK(Q,"user")||EK(Q,"developer"))}function UF(Y,X){let J=Array.isArray(X?.input)?X.input:void 0;if(J&&(KF(Y,J)||!Y.turnID))Y.turnID=c1(),Y.turnStartedAt=Date.now();else if(!Y.turnStartedAt)Y.turnStartedAt=Date.now();if(J)Y.input=J}function ZF(Y){if(!Y.metadata)return{init:Y.init};let X=QF(Y.init?.body);if(!Y.websocket)UF(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:nq,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",iq),Y.headers.set("x-codex-turn-metadata",J),Y.headers.set("user-agent",oq),Y.headers.set("version",UJ),Y.dumpSessionID)Y.headers.set(w1,Y.dumpSessionID);let Q=X;if(!Q)return{init:Y.init};let $=Y.responsesLite&&typeof Q.model==="string"&&lq.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(jF);if(FF(Q),OF(Q),V5(Q),VF(Q),BF(Q,Y.metadata),$)qF(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"]=J,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 LF(Y,X){return Y.find((J)=>J.enabled!==!1&&V0(J)&&(J.id===X||J.accountId===X))}function MK(Y,X){if(!X)return Y;let J={...Y};for(let Q of["resetCreditsAvailable","resetCreditsApplicable"]){let $=X[Q];if(J[Q]===void 0&&$!==void 0)J[Q]=$}if(J.spendControl===void 0&&X.spendControl!==void 0)J.spendControl=X.spendControl;return J}function ZX(Y,X){if(!Y)return Y;if(typeof Y.checkedAt==="number"&&Number.isFinite(Y.checkedAt))return Y;return{...Y,checkedAt:X}}function LX(Y,X){return y0(Y).get(X)}function nK(Y,X,J=Date.now(),Q=X.mainAccountId,$){let G=Y.getMain(),W=G?.quota;return{main:{quota:W?{...W,checkedAt:G.checkedAt,primary:ZX(W.primary,G.checkedAt),secondary:ZX(W.secondary,G.checkedAt)}:null,...typeof Q==="string"?{mainAccountId:Q}:{},killed:!1,...W?.resetCreditsAvailable!==void 0?{resetCredits:W.resetCreditsAvailable}:{}},fallbacks:X.accounts.filter((K)=>K.enabled).map((K)=>{let Z=Y.getFallback(K.id),U=Z?.quota,L=$?.(K,J);return{id:K.id,label:K.label,accountId:Z?.accountId??K.accountId,quota:U?{...U,checkedAt:Z.checkedAt,primary:ZX(U.primary,Z.checkedAt),secondary:ZX(U.secondary,Z.checkedAt)}:null,killed:!1,enabled:!0,...U?.resetCreditsAvailable!==void 0?{resetCredits:U.resetCreditsAvailable}:{},...L?{custody:L}:{}}}),route:X.routing?.mode??"main-first",lastUpdated:J}}function gM(Y,X,J,Q=Date.now()){return{...nK(Y,X,Q),activeId:J}}function wK(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 HF(Y,X){if(!(Y instanceof Request))return X;let J=new Request(Y,X),Q=J.method.toUpperCase(),$=Q==="GET"||Q==="HEAD"||J.body===null?void 0:await J.text();return{method:J.method,headers:new Headers(J.headers),body:$,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 AK(Y){return Y.get("x-session-affinity")??Y.get("x-opencode-session")??Y.get("x-session-id")??Y.get("session-id")??void 0}function VF(Y){if(!g0().webSearch)return;if(!Array.isArray(Y.tools)||Y.tools.length===0)return;if(Y.tools.some((X)=>h(X)&&X.type==="web_search"))return;Y.tools=[...Y.tools,{type:"web_search",external_web_access:!1,search_content_types:["text","image"]}]}function LJ(Y){if(Array.isArray(Y)){for(let X of Y)LJ(X);return}if(!h(Y))return;if(Y.type==="input_image")delete Y.detail;for(let X of Object.values(Y))LJ(X)}var NF=new Set(["gpt-6-astra","gpt-6-sol","gpt-6-luna"]);function BF(Y,X){let J=typeof Y.model==="string"?Y.model:"";if(!NF.has(J))return;let Q=h(Y.reasoning)?Y.reasoning:void 0,$=typeof Q?.effort==="string"?Q.effort:void 0;if(!$)return;if(X.pinnedEffort===void 0){X.pinnedEffort=$;return}if($===X.pinnedEffort)return;let G=Array.isArray(Y.input)?Y.input:void 0;if(!G||G.length===0)return;Y.reasoning={...Q,effort:X.pinnedEffort},G.splice(G.length-1,0,{type:"configuration_update",reasoning:{effort:$}})}function qF(Y){let X=h(Y.reasoning)?{...Y.reasoning}:{};X.context="all_turns",Y.reasoning=X,Y.parallel_tool_calls=!1;let J=Array.isArray(Y.input)?Y.input:[];LJ(J);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=[...$,...J],delete Y.tools,delete Y.instructions}function FF(Y){if(!Array.isArray(Y.tools))return;Y.tools=Y.tools.filter((X)=>!(h(X)&&X.type==="function"&&X.name==="web_search"))}function OF(Y){if(!Array.isArray(Y.tools))return;Y.tools=Y.tools.filter((X)=>!(h(X)&&X.type==="function"&&X.name==="websearch_web_search_exa"))}function jF(Y){if(!h(Y))return Y;if(Y.type!=="function")return Y;let X=h(Y.parameters)&&"$schema"in Y.parameters?(()=>{let{$schema:Z,...U}=Y.parameters;return U})():Y.parameters,{type:J,name:Q,description:$,strict:G,parameters:W,...K}=Y;return{type:J,name:Q,description:$,strict:G??!1,parameters:X,...K}}async function DF(Y,X={}){let J=X.codexApiEndpoint??g0().codexApiEndpoint,Q=crypto.randomUUID(),$=GF(),G=()=>WF($),W=!1,K=[],Z=null,U=Y.client.auth,L=new Map,F=new Map,N,V,j,R={},S=X.custody,u=B0("custody"),I=(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:Y9(D)}}finally{B.cleanup?.()}}}}:void 0;function E(M,A){return JJ({storage:M,configPath:e(),loadAccounts:P0,mutateAccounts:q0,withAccountStoreTransaction:VX,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)=>u.info(B,D??{}),warn:(B,D)=>u.warn(B,D??{}),debug:(B,D)=>u.debug(B,D??{}),error:(B,D)=>u.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")j=E(b,{all:o.all,get:o.get,set:o.set}),S?.onRuntime?.(j),await j.boot();let M=j?.getCache();if(M)R.cache=M;if(R.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))}),R.mainVerdict){let A=await n1();await zJ({...A,main:{...A.main,custody:YY(R.mainVerdict)}})}}let t=new MX,N0,W0={},F0=BQ({client:Y.client,getAuth:async()=>N0?.(),fetchImpl:fetch,dependencies:{...S?.authorize?{authorizeBrowser:I(S.authorize.browser,"Complete authorization in your browser. This window will close automatically."),authorizeHeadless:I(S.authorize.headless)}:{},custodyQuotaDeps:W0}}),u0=(M)=>async(A)=>{let B=await kX();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)??u.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=F0.map((M)=>M.type==="oauth"?{...M,authorize:u0(M.authorize)}:M);async function c(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(),j?.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 F)if(A.__openaiAuthRpcServers?.get(B)===D)await D.stop().catch(()=>{}),A.__openaiAuthRpcServers.delete(B);F.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 cK(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||xK(B),w=D?null:await F5();if(!D&&w&&!OK)OK=!0,FK.debug("restoring OAuth model costs from models.dev catalog");if(!D&&!w&&!jK)jK=!0,FK.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(uq.has(m.api.id))return!0;if(cq.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=_Y(A),D=B.kind==="tombstone"||B.kind==="empty",w=Y.directory?await dK(Y.directory):void 0,m=w?.dir??e();if(!D)await vK({type:"oauth",access:A.access??"",refresh:A.refresh??"",expires:A.expires??0},s(e()));let p=await P0(s(e())).catch((H)=>{let q=e();throw Error(`OpenAI auth store at ${q} 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 q=fq(H);if(n?.path===H&&n.mtimeMs===q.mtimeMs&&n.size===q.size)return n.storage;let O=await P0(s(H));return n={path:H,mtimeMs:q.mtimeMs,size:q.size,storage:O},O}catch{return n=void 0,P0(s(H))}}function r(){n=void 0}if(p&&A.access&&!D){let H=Y9({id_token:"",access_token:A.access,refresh_token:A.refresh??""});if(H&&H!==p.mainAccountId)await q0((q)=>{return q.mainAccountId=H,q},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"),s1=B0("refresh"),X1=B0("accounts");K1.info("codex auth loader ready",{codexApiEndpoint:J,transport:g0().rawWebSocket?"raw-websocket":g0().webSockets?"websocket":"http",webSearch:g0().webSearch});let J0=new RY({storage:p,configPath:e(),fetchQuotaFn:void 0}),o0,V9=0,Q0=new hK({paths:s(e()),refreshFn:(H)=>HX({refreshToken:H.refreshToken,fetchImpl:H.fetchImpl,now:H.now}),quotaManager:J0,custody:{readManifest:s0},onFallbackStorageChanged:r}),T0=j??E(p);if(!j)S?.onRuntime?.(T0),await T0.boot(),j=T0;if(D){let H=await s0(),q=LX(H,"main"),O=T0.getCache();if(q&&O)try{let C=await O.get(q,v1(p)),_=k9(C.payload.access);if(_&&_!==p?.mainAccountId){if(await q0((k)=>{return k.mainAccountId=_,k},s(e())),p)p.mainAccountId=_;R.mainAccountId=_,r()}}catch{}}if(T0.runTick().catch((H)=>u.warn("custody first tick failed",{error:H instanceof Error?H.message:String(H)})),j=T0,p&&p.accounts.length>0)Q0.startBackgroundRefresh();let g1=T0;async function WY(H,q){let O=await s0();return KX(H,O,E0)}async function a1(H,q){let O=await s0(),C=g1.getCache(),_=LX(O,H.id);if(!C||!_)return GJ(H,q,O);return GJ(H,q,O,{cache:C,manifestHandle:_,requestPath:!0,now:S?.now??Date.now,refreshBeforeExpiryMs:(q.refresh?.refreshBeforeExpiryMinutes??240)*60000,completeEnrollmentDeps:{loadAccounts:P0,readCustodyManifest:s0,acquireRefreshFileLock:H1,configPath:e(),paths:s(e()),cache:C,minTtlMs:v1(q),mutateAccounts:q0,provider:E0,now:Date.now}})}async function VJ(H){if(f1(H)!=="claustrum")return r1;let q=await s0(),O=LX(q,"main"),C=g1.getCache(),_=(v)=>{return u.warn("custody main request refused",{reason:v}),h1};if(!O||!C)return _("no-handle");let k=(S?.now??Date.now)();if(C.isBlocked(O))return _("blocked");if(C.isReauth(O,k))return _("reauth");let x=await C.peek(O);if(!x||x.expiresAtMs<=k)return _("cache-miss");return{token:x.payload.access,provenance:{handle:O,recordVersion:x.recordVersion}}}async function N9(H){let q=g1.getCache();if(!q)return;await q.reportAuthFailure({handle:H.handle,providerStatus:H.providerStatus,recordVersion:H.recordVersion})}Object.assign(W0,{isFallbackRefreshInert:WY,resolveFallbackAccess:a1,reportCustodyAuthFailure:N9});function zY(H={}){let{readSidebarState:q,respectBackoff:O,skipFresherThanMs:C}=H;return{getAuth:M,codexRefreshFn:HX,refreshMainWithLease:ZY,fallbackManager:Q0,quotaManager:J0,loadAccounts:P0,writeSidebarState:LY,client:Y.client,fetchImpl:fetch,now:Date.now,paths:s(e()),readSidebarState:q??(()=>n1(c0)),storageMainAccountId:p?.mainAccountId,isOAuthAccountFn:V0,whamFn:TY,isFallbackRefreshInert:WY,resolveFallbackAccess:a1,resolveMainAccess:VJ,reportCustodyAuthFailure:N9,...O===void 0?{}:{respectBackoff:O},...C===void 0?{}:{skipFresherThanMs:C}}}let NJ=B0("cachekeep"),BJ=p?.cachekeep?.enabled===!0,qJ=p?.cachekeep?.subagents===!0,FJ=p?.cachekeep?.sustain===!0,OJ=EQ(p),KY;async function rK(H){await new Promise((q)=>setTimeout(q,H))}async function sK(H){let q;for(let O=1;O<=qK;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(q=C,O<qK)await rK(aq*O)}throw new HJ(q)}async function UY(H){await q0((q)=>{return q.refresh=q.refresh??{},H(q),q},s(e())),r()}async function jJ(H){let q=Date.now()+sq;while(Date.now()<q){await new Promise((_)=>setTimeout(_,BK+JF(BK)));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 s1.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 SK(E0);if(!H.refresh)throw Error("Token refresh failed: missing refresh token");let q=TK(H.refresh),O=await P0(s(e())),C=O?.refresh?.mainLastRefreshError;if(C&&EY(C,H.refresh,Date.now()))throw Error(CK(C,Date.now()));if(O?.refresh?.mainRefreshLeaseUntil&&O.refresh.mainRefreshLeaseUntil>Date.now()&&O.refresh.mainRefreshLeaseTokenHash===q){let v=await jJ(H);if(v)return v;throw Error("Codex OAuth refresh is already in progress")}let _=await H1({name:u1,ttlMs:QJ,path:e(),renew:!0});if(!_){let v=await jJ(H);if(v)return v;throw Error("Codex OAuth refresh is already in progress")}let k=crypto.randomUUID(),x=q;try{await UY((l)=>{l.refresh=l.refresh??{},l.refresh.mainRefreshLeaseId=k,l.refresh.mainRefreshLeaseUntil=Date.now()+rq,l.refresh.mainRefreshLeaseTokenHash=q});let v=await P0(s(e()));if(v?.refresh?.mainRefreshLeaseId!==k||v.refresh.mainRefreshLeaseTokenHash!==q)throw Error("Codex OAuth refresh is already in progress");let y=await HX({refreshToken:H.refresh,fetchImpl:fetch,now:Date.now});return await sK(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&&!$J(v))await UY((y)=>{y.refresh=y.refresh??{},y.refresh.mainLastRefreshError=RK({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 _.release().catch(()=>{})}})().finally(()=>{KY=void 0});return KY}let DJ=globalThis,BX=DJ.__openaiAuthCacheKeepManagers??new Map;DJ.__openaiAuthCacheKeepManagers=BX,BX.get(m)?.stop();let B9=new CX({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(q){if($J(q))throw q;if(H.access)return H.access;throw Error("main token refresh failed")}return H.access},refreshFallback:async(H)=>{let q=await z0(),O=q?LF(q.accounts,H):void 0;if(!O)throw Error(`fallback account ${H} not found`);let C=q??{version:1,accounts:[O]},_=O;if(!await WY(O,C))_=await Q0.refreshAccount(O,C);let k=await a1(_,C);if(k===h1||k===r1)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:J,logger:NJ,now:Date.now,getWindow:()=>OJ,getSustain:()=>FJ});BX.set(m,B9),L.set(m,B9);async function q9(H,q,O,C,_=!1){if(Object.keys(H).length===0&&!_)return;let k=Date.now(),x=H,v={quota:x,refreshAfter:k+300000,checkedAt:k},y;if(O&&O!=="main"){let d=q?Q1(q):null,U0=d?$1(d):void 0,p0=J0.peekFallbackForPolicy(O)?.quota,R0=MK(x,p0);v={...v,quota:R0},J0.setFallback(O,v,q,_,U0)}else{if(y=C,!y&&q){let p0=Q1(q);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=J0.peekMainForPolicy(y)?.quota,U0=MK(x,d);v={...v,quota:U0},J0.setMain(q,v,y,_)}A0.debug("quota pushed",{pid:process.pid,accountId:O??"main",snapshot:v.quota});let l=await z0();await LY(J0,l,O&&O!=="main"?l?.mainAccountId:y)}function aK(H,q,O){let C=H==="main"?J0.peekMainForPolicy()?.quota:J0.peekFallbackForPolicy(H)?.quota;return kK(C,q,Date.now(),tq,O)}let F9=X.experimentalWebSockets?x1.createWebSocketFetch({httpFetch:fetch,rawWebSocket:g0().rawWebSocket,onQuota:(H,q,O,C)=>{q9(H,q,O,!O||O==="main"?C:void 0,!0)},onRateLimitReached:(H,q,O)=>{if(!q)A0.warn("mid-stream rate-limit mark missing internal account id; defaulting to main",{pid:process.pid,window:H});let C=q??"main",_=aK(C,H,O);J0.markRateLimited(C,_),A0.debug("mid-stream rate limit mark",{pid:process.pid,accountId:C,window:H})}}):void 0;if(F9)K.push(F9),W=!0;let c0=gK();V=c0;async function LY(H,q,O=q?.mainAccountId){if(!q)return;await zJ(nK(H,q,Date.now(),O,tK),c0)}function tK(H,q){if(!V0(H))return;return g1.getCustodyProjection(H,q)}async function PJ(H,q,O,C,_){let k={activeId:O,route:C,updatedAt:Date.now()};if(H){if(await NX({sessionId:H,...k},_,c0),q&&q!==H){if(C==="sticky-balanced"){let x=(await n1(c0)).stickyAssignments?.[GY(q)]?.accountId,v=_===void 0||x==="main"||_.some((y)=>y.enabled!==!1&&y.id===x);if(!x||!v)return;await NX({sessionId:q,activeId:x,route:C,updatedAt:Date.now()},_,c0);return}await NX({sessionId:q,...k},_,c0)}return}await uK(k,c0)}let eK=async(H,q)=>{let O=await H1({name:M1(H),ttlMs:b1,path:e(),renew:!0});if(!O)throw Error("Fallback account lock unavailable");try{return await q()}finally{await O.release()}},YU=S?.withFallbackAccountLock??eK,XU=async(H)=>{let q=await s0();if(!q.ok)return{ready:!1,reason:"manifest-unreadable"};let O=LX(q,H.id);if(!O)return{ready:!1,reason:"no-handle"};let C=T0.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 _=await C.get(O,v1(p)),k=k9(_.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:J0,loadAccounts:P0,client:Y.client,beginAccountLogin:AY,withFallbackAccountLock:YU,checkUsableCustodyBinding:XU,enterClaustrumMode:async()=>{let H=await P0(s(e())),q=(H?.accounts??[]).filter((O)=>O.type==="oauth"&&O.enabled!==!1).map((O)=>O.id);return oQ({accountIds:q,acquireLock:({name:O,renew:C})=>H1({name:O,ttlMs:O===u1?QJ:b1,path:e(),renew:C}),withStoreTransaction:(O)=>VX(O,s(e())),readManifest:s0,preflight:async({accountId:O,handle:C})=>{u.info("preflight probing participant",{accountId:O,hasHandle:C.length>0});let _=await T0.ensureCache(),k=_?.isBlocked(C);if(!_||k)return u.warn("preflight vault-cold",{accountId:O,hasCache:_!==void 0,blocked:k}),"vault-cold";if(_.isReauth(C,S?.now?.()??Date.now()))return"vault-reauth";try{let x=await _.get(C,v1(H)),v=k9(x.payload.access);if(!v||O&&O!==v)return"identity-mismatch";return"ready"}catch{return _.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??KJ(UX.homedir(),".local","share"),C=KJ(O,"opencode","auth.json");try{let _=JSON.parse(iK(C,"utf8"));return h(_)?_:{}}catch{return{}}},get:async(O)=>{if(typeof U.get==="function")return U.get(O);if(O.path.id!=="openai"||!N0){u.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)=>u.warn(O)})},leaveClaustrumMode:()=>nQ({acquireLock:({name:H,renew:q})=>H1({name:H,ttlMs:QJ,path:e(),renew:q}),withStoreTransaction:(H)=>VX(H,s(e()))}),resolveResetTarget:YF({getAuth:M,refreshMainWithLease:ZY,refreshFallbackAccount:(H,q)=>Q0.refreshAccount(H,q),loadAccounts:P0,accountStoragePath:e(),accountStatePath:PY(e()),now:Date.now,isFallbackRefreshInert:WY,resolveFallbackAccess:a1,reportAuthFailure:N9}),...XF(),cacheKeepManager:B9,setCacheKeepEnabled:(H)=>{BJ=H},setCacheKeepSubagents:(H)=>{qJ=H},setCacheKeepSustain:(H)=>{FJ=H},setCacheKeepWindow:(H)=>{OJ=H},clearStickyRouting:(H)=>lK(H,c0),getStickyRouting:async(H)=>mK(await n1(c0),H),refreshSidebar:async()=>{let H=await P0(s(e()));await LY(J0,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 qX=null;if(w){let H=globalThis,q=H.__openaiAuthRpcServers??new Map;H.__openaiAuthRpcServers=q;let O=q.get(w.dir);if(O)await O.stop().catch(()=>{}),q.delete(w.dir);try{qX=await R5({dir:w.dir,secureDir:w.secureDir,sweepRoot:w.sweepRoot,drain:M5,apply:async(C)=>{let _={...Z,sessionId:C.sessionId},k=await EX(C.command,C.arguments,_);return{text:k.text,knobs:k.knobs}}}),q.set(w.dir,qX),F.set(w.dir,qX)}catch{}}let EJ=new WeakMap;function JU(H,q){let O=EJ.get(H);if(!O||q.hostname!=="chatgpt.com"||!q.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,q,O,C,_="main",k){if(!O.trim())throw K1.warn("refusing to send a request with no access token",{account:_,accountId:C,hasProvenance:Boolean(k&&k!=="local")}),Error(pq);let x=wK(H,q);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,_);let v=AK(x),y=v?$F($,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(J):l,U0=(I0)=>{let t1=_K(I0,k,EJ);return JU(t1,d),t1},R0=ZF({init:{...q,headers:x},headers:x,metadata:y,installationID:Q,websocket:Boolean(F9&&l.pathname.endsWith("/responses")),responsesLite:X.responsesLite??!1,dumpSessionID:v}).init,U1=BJ,P1=new Headers(R0?.headers),l0=PQ({enabled:U1,includeSubagents:qJ,headers:P1,body:R0?.body});if(U1)NJ.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(F9&&l.pathname.endsWith("/responses")){if(K1.debug("WS transport",{pid:process.pid,pathname:l.pathname,accountId:_}),l0)B9.track(l0.sessionKey,l0.bodyText,_,C,l0.replayHeaders,l0.isSubagent);return U0(await F9(d,R0))}let C0=x1.withoutInternalHeaders(R0);if(typeof C0?.body!=="string")return U0(await fetch(d,C0));if(l0)B9.track(l0.sessionKey,l0.bodyText,_,C,l0.replayHeaders,l0.isSubagent);K1.debug("HTTP transport",{pid:process.pid,pathname:l.pathname,accountId:_});try{let I0=await fetch(d,C0);return await $9({sessionID:v,transport:"http",phase:"http",bodyText:C0.body,accountId:_,url:d.toString(),method:C0.method,headers:C0.headers,status:I0.status}),U0(H5(I0))}catch(I0){throw await $9({sessionID:v,transport:"http",phase:"http",bodyText:C0.body,accountId:_,url:d.toString(),method:C0.method,headers:C0.headers,error:I0 instanceof Error?I0.message:String(I0)}),I0}}function HY(H,q){if((q?.method??(H instanceof Request?H.method:"GET")).toUpperCase()!=="POST")return!1;if(typeof q?.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 QU(H){return J0.peekMainForPolicy(H)?.quota}function MJ(H,q){for(let O of[H?.primary?.checkedAt,H?.secondary?.checkedAt,H?.checkedAt,q])if(typeof O==="number"&&Number.isFinite(O))return O;return}function j9(H,q,O,C,_){let k=MJ(H,q),x=MJ(O),v=C===_&&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 wJ(H,q,O,C,_){let k=H?.quota,x=j9(k,H?.checkedAt,q,C,_),v=x.source,y=x.quota;if(!fK(y,O))return{exhausted:!1};let l=yK(y,O);if(!l)return{exhausted:!1};return{exhausted:!0,source:v,...l}}function AJ(H,q){A0.debug("admission skip: exhausted account",{accountId:H,source:q.source,resetsAt:q.resetsAt})}function $U(H,q="killswitch",O){let C=Date.now(),_=J0.getMain()?.quota,k=(H?.accounts??[]).filter((d)=>d.enabled!==!1&&V0(d)).map((d)=>({accountId:d.id,quota:J0.getFallback(d.id)?.quota})),x=bK(_,k,C,H);if(q==="quota-exhausted"&&O!==void 0)x=Math.max(1,Math.ceil((O-C)/1000));else if(q==="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=q==="mid-stream-rate-limit"?`OpenAI rate limit reached — retrying on another account. Retry in ${v}m ${y}s.`:q==="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 TJ(H){let q=H?.resetCreditsAvailable;return typeof q==="number"&&Number.isFinite(q)?q:void 0}async function GU(H){let q=QY(H.storage),O=Date.now(),C=J0.peekMainForPolicy(H.mainAccountIdentity),_=j9(C?.quota,C?.checkedAt,H.sidebarState.main.quota,H.sidebarState.main.mainAccountId,H.mainAccountIdentity),k=q?$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:_.quota,quotaCheckedAt:_.quotaCheckedAt,reservePercent:WJ(H.storage),configuredOrder:0,resetCreditsApplicable:TJ(_.quota),killswitchPasses:k}],v=await Q0.getUsableFallbackAccounts(H.storage);if(!H.storage)return x;for(let y of v){let l=await a1(y,H.storage);if(l===h1||l===r1)continue;let d=H.sidebarState.fallbacks.find((U1)=>U1.id===y.id),U0=J0.peekFallbackForPolicy(y.id,y.accountId),p0=j9(U0?.quota,U0?.checkedAt,d?.quota,d?.accountId,y.accountId),R0=q?$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:WJ(H.storage,y.id),configuredOrder:x.length,resetCreditsApplicable:TJ(p0.quota),killswitchPasses:R0})}return x}function RJ(H,q,O,C,_){let k=QY(_)?H.killswitchPasses:void 0;if(H.accountId==="main"){let l=J0.peekMainForPolicy(H.wireAccountId),d=j9(l?.quota,l?.checkedAt,q.main.quota,q.main.mainAccountId,H.wireAccountId);return hX({quota:d.quota,quotaCheckedAt:d.quotaCheckedAt,status:O,now:C,killswitchPasses:k})}let x=q.fallbacks.find((l)=>l.id===H.accountId),v=J0.peekFallbackForPolicy(H.accountId,H.wireAccountId),y=j9(v?.quota,v?.checkedAt,x?.quota,x?.accountId,H.wireAccountId);return hX({quota:y.quota,quotaCheckedAt:y.quotaCheckedAt,status:O,now:C,killswitchPasses:k})}function WU(H){return H.accountId==="main"?"main":H.keepwarmAccountKey}function CJ(H){return J0.isRateLimited(WU(H))}async function FX(H){let q=H.candidates.filter((y)=>!CJ(y)),O=new Map(q.map((y)=>[y.accountId,y])),C=Object.fromEntries(q.map((y)=>[y.accountId,y.quotaCheckedAt])),_=Object.fromEntries(q.map((y)=>[y.accountId,y.wireAccountId])),k=new Set(H.excludeAccountIds),x,v=await pK({sessionId:H.sessionId,requestBytes:H.requestBytes,now:H.now,validPinnedAccountIds:[...O.keys()],excludeAccountIds:H.excludeAccountIds,quotaCheckedAtByAccount:C,wireAccountIdByAccount:_,choose:(y)=>{let l=q.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:()=>{X1.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}},c0);if(x&&v?.accountId===x.accountId)X1.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,q){let O=await Q0.getUsableFallbackAccounts(H),C=[];if(!H)return{current:[],retained:[],skipped:[]};for(let d of O){let U0=await a1(d,H);if(U0===h1||U0===r1)continue;C.push({access:U0.token,provenance:U0.provenance,accountId:d.accountId,keepwarmAccountKey:d.id,quotaAccountId:d.id,fallback:d})}let _=C.filter((d)=>!J0.isRateLimited(d.quotaAccountId)),k=QY(H)?_.filter((d)=>$Y(J0.peekFallbackForPolicy(d.quotaAccountId,d.accountId)?.quota,H,d.quotaAccountId,Date.now())):_,x=new Map(q.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=wJ(J0.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 IJ(H,q){if(H.retained.length===0&&!q)return H.current;for(let{candidate:O,decision:C}of H.skipped)AJ(O.quotaAccountId,C);return H.retained}async function _J(H,q){try{let O=X9(H.headers);await q9(O,q.access,q.quotaAccountId,void 0,XY(H.headers))}catch{}}async function KU(H,q,O,C){for(let _ of C){let k;try{k=await O9(H,q,_.access,_.accountId,_.keepwarmAccountKey,_.provenance)}catch(x){if(x instanceof DOMException&&x.name==="AbortError")throw x;if(q?.signal?.aborted)throw x;throw X1.debug("fallback-first transport failed; request not replayed",{pid:process.pid,accountId:_.quotaAccountId}),x}if(!JY(k.status,O))return Q0.markUsed(_.fallback),{response:k,accessToken:_.access,quotaAccountId:_.quotaAccountId,activeId:_.keepwarmAccountKey};await _J(k,_),k.body?.cancel().catch(()=>{})}return}async function UU(H,q,O,C,_){if(!HY(H,q))return{response:O};if(!_.length)return{response:O};let k=O,x;for(let v of _){let y;try{y=await O9(H,q,v.access,v.accountId,v.keepwarmAccountKey,v.provenance)}catch(l){if(l instanceof DOMException&&l.name==="AbortError")throw l;if(q?.signal?.aborted)throw l;return X1.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},!JY(y.status,C))return Q0.markUsed(v.fallback),{response:y,...x};await _J(y,v)}return{response:k,...x}}if(p){let H=[];for(let q of p.accounts)if(V0(q))H.push(q);J0.seedFallbacksFromAccounts(H)}if(!ZJ)ZJ=!0,LY(J0,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 q=(await qQ(zY({readSidebarState:()=>n1(c0)}))).filter((O)=>!O.ok);if(q.length>0)A0.warn("background quota refresh completed with failures",{pid:process.pid,failures:q})},(H)=>{A0.warn("background quota refresh failed",{pid:process.pid,error:H instanceof Error?H.message:String(H)})}),{apiKey:dq,async fetch(H,q){let O=wK(H,q),C=AK(O),_=O.get("x-parent-session-id")?.trim()||void 0,k=await z0(),x=await M(),v=++V9;if(x.type!=="oauth")return fetch(H,q);q=await HF(H,q);let y=D&&f1(k)==="claustrum",l="",d,U0=!1;if(y){let $0=await VJ(k);if($0===h1||$0===r1)U0=!0;else l=$0.token,d=$0.provenance==="local"?void 0:$0.provenance}else{if(!x.access||(x.expires??0)<Date.now()){s1.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($J($0))throw $0}}l=x.access??""}let R0=x.accountId??(l?$1(Q1(l)??{}):void 0);if(v===V9)o0=R0;let U1=k?.routing?.mode??"main-first",P1,C0=await(()=>{return P1??=n1(c0),P1})();if(U1==="sticky-balanced"&&C&&HY(H,q)&&typeof q?.body==="string"){let $0=Buffer.byteLength(q.body,"utf8"),M0=await GU({storage:k,sidebarState:C0,primaryAccess:l,mainAccountIdentity:R0,mainCustodyRefused:U0,primaryProvenance:d}),j0=await FX({sessionId:C,requestBytes:$0,candidates:M0,now:Date.now()});if(j0){let gJ=CJ(j0)?{action:"migrate",reason:"exhausted"}:RJ(j0,C0,void 0,Date.now(),k);if(gJ.action==="migrate"){let h0=await FX({sessionId:C,requestBytes:$0,candidates:M0,excludeAccountIds:[j0.accountId],now:Date.now()});if(h0)X1.debug("sticky routing: migrated session pin",{pid:process.pid,sessionHash:GY(C),fromAccountId:j0.accountId,toAccountId:h0.accountId,reason:gJ.reason}),j0=h0}let J1=await O9(H,q,j0.access,j0.wireAccountId,j0.keepwarmAccountKey,j0.provenance),yJ=async(h0,y1)=>{try{let ZU=X9(h0.headers);await q9(ZU,y1.access,y1.accountId==="main"?void 0:y1.accountId,y1.accountId==="main"?y1.wireAccountId:void 0,XY(h0.headers))}catch{}};await yJ(J1,j0);let fJ=RJ(j0,C0,J1.status,Date.now(),k);if((J1.status===401||J1.status===403||J1.status===429)&&fJ.action==="migrate"){let h0=await FX({sessionId:C,requestBytes:$0,candidates:M0,excludeAccountIds:[j0.accountId],now:Date.now()});if(h0){X1.debug("sticky routing: migrated session pin",{pid:process.pid,sessionHash:GY(C),fromAccountId:j0.accountId,toAccountId:h0.accountId,reason:fJ.reason});let y1=J1;J1=await O9(H,q,h0.access,h0.wireAccountId,h0.keepwarmAccountKey,h0.provenance),y1.body?.cancel().catch(()=>{}),j0=h0,await yJ(J1,j0)}}if(j0.fallback&&!JY(J1.status,k))Q0.markUsed(j0.fallback);return await PJ(C,_,j0.accountId,U1,k?.accounts).catch(()=>{}),J1}}let I0=wJ(J0.peekMainForPolicy(R0),C0.main.quota,Date.now(),C0.main.mainAccountId,R0),t1=QY(k)&&!$Y(QU(R0),k,void 0,Date.now()),VY=J0.isRateLimited("main"),SJ,OX=()=>{return SJ??=zU(k,C0),SJ},Z1,e1,kJ=!1,NY;if(U1==="fallback-first"&&HY(H,q)){kJ=!0;let $0=await OX();NY=IJ($0,!t1&&!VY&&!I0.exhausted);let M0=await KU(H,q,k,NY);if(M0)Z1=M0.response,e1={accessToken:M0.accessToken,accountId:M0.quotaAccountId,activeId:M0.activeId}}if(!Z1){let $0=I0.exhausted&&HY(H,q)&&(await OX()).retained.length>0;if(t1||VY||$0){let M0=t1?"killswitch":VY?"mid-stream-rate-limit":"quota-exhausted";if(M0==="quota-exhausted"&&I0.exhausted)AJ("main",I0);X1.debug("admission blocked primary",{pid:process.pid,activeId:"main",reason:M0}),Z1=$U(k,M0,M0==="quota-exhausted"&&I0.exhausted?I0.resetAtMs:VY?J0.rateLimitedUntil("main"):void 0)}else Z1=U0?new Response(null,{status:401}):await O9(H,q,l,R0,"main",d)}let xJ=Boolean(e1),D9=Z1,bJ=e1?.accessToken??l,vJ=e1?.accountId,hJ=e1?.activeId??"main";if(!e1&&!kJ&&JY(Z1.status,k)){X1.debug("reactive fallback triggered",{pid:process.pid,status:Z1.status}),NY??=IJ(await OX(),!1);let $0=await UU(H,q,Z1,k,NY),M0=$0.response;if(M0!==Z1){if(xJ=!0,D9=M0,bJ=$0.accessToken??l,vJ=$0.accountId,$0.accountId)hJ=$0.accountId}}try{let $0=X9(D9.headers);if(xJ)await q9($0,bJ,vJ,void 0,XY(D9.headers));else await q9($0,l,void 0,R0,XY(D9.headers))}catch{}return await PJ(C,_,hJ,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"]=`${IK(P9)} (${UX.platform()} ${UX.release()}; ${UX.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."},[T9]:{template:T9,description:"Show or toggle OpenAI Codex request dump capture for debugging."},[R9]:{template:R9,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."},[I9]:{template:I9,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:_9.includes(M.command),hasCmdCtx:Z!==null,pid:process.pid}),!_9.includes(M.command))return;if(!Z)B0("commands").warn("command rejected: context not loaded",{command:M.command,pid:process.pid}),await c(M.sessionID,"OpenAI auth plugin is still initializing. Send a request first, then try again."),PK();let A=M.command,B={...Z,sessionId:M.sessionID,notify:(w)=>{iX(w,M.sessionID)}},D=await EX(A,M.arguments,B);if(w5(M.sessionID))iX(D,M.sessionID);else await c(M.sessionID,D.text);PK()}}}var PF=async(Y)=>{let X=g0();return DF(Y,{codexApiEndpoint:X.codexApiEndpoint,experimentalWebSockets:X.webSockets,responsesLite:X.responsesLite})},yM={id:"cortexkit-openai-auth",server:PF};export{AK as resolveSidebarSessionId,Q1 as parseJwtClaims,MK as mergePushedQuotaMetadata,bM as getMainRefreshLockName,LF as findCachekeepFallbackAccount,$1 as extractAccountIdFromClaims,yM as default,YF as createResetTargetResolver,gM as buildSidebarState,nK as buildSidebarMachineState,XF as buildResetRedemptionDeps,kq as __resetSweepFailureLogDedupeForTest,vM as __resetBootQuotaSeedForTest,JJ as __createCustodyRuntimeForTest,W1 as ResetTargetResolutionError,PF as OpenAIAuthPlugin,QJ as MAIN_REFRESH_LOCK_TTL_MS,rq as MAIN_REFRESH_LEASE_TTL_MS,pq as EMPTY_BEARER_MESSAGE,DF as CodexAuthPlugin,HJ as AuthPersistError};
|
|
107
|
+
`)),K=!0,m=Date.now(),T!==void 0)S++;if(Z.length<O)Z.push(String(M.type));if(M.type==="response.created")T=mB(M),$X.debug("response created",{...q,responseID:T,previousResponseID:N,hasContinuation:N!==void 0});if(!cB(M.type))H=!0;if(W0("idle timeout waiting for websocket"),M.type==="response.completed"||M.type==="response.done"){G=!0,hB(M,_),Y.onComplete?.(M,_),Y.onTerminal?.(M),y();return}if(M.type==="response.failed"||M.type==="response.incomplete"||M.type==="error")G=!0,Y.onTerminal?.(M),y()}function f0(B){a(new y0(a9(B),{cause:B}))}function z1(B){if(G)return;let D=B.code===1009,M=new y0(D?mK:cK("WebSocket closed before response.completed",B.code,B.reason),{retryable:!D});if(D)$X.warn("websocket peer refused the request size",{...q,requestBytes:W,reason:B.reason.toString()});a(D?gK(M):M)}function c(){let B=cJ(Y.signal);if(G)return;G=!0,P(),b(),Y.onAbort?.(B),Q?.error(B)}function w(B){if(G)return;G=!0,P(),b(),Y.onAbort?.(yB(B))}function A(B){$(),J=B,J.addEventListener("message",O0),J.addEventListener("error",f0,{once:!0}),J.addEventListener("close",z1,{once:!0}),$=()=>{J.removeEventListener("message",O0),J.removeEventListener("error",f0),J.removeEventListener("close",z1)};let{background:D,...M}=Y.body;W0("idle timeout sending websocket request");try{let f=JSON.stringify({type:"response.create",...M});W=f.length,J.send(f),W0("idle timeout waiting for websocket")}catch(f){if(G)return;n(new y0(f instanceof Error?f.message:String(f),{cause:f}))}}return new Response(new ReadableStream({start(B){if(Q=B,Y.signal?.addEventListener("abort",c,{once:!0}),Y.signal?.aborted){c();return}A(J)},cancel(B){w(B)}}),{status:200,headers:{"content-type":"text/event-stream"}})}function vB(Y,X){if(Y.type!=="response.output_item.done")return;if(!o(Y.item))return;yK(Y.item,X)}function hB(Y,X){let J=Y.response;if(!o(J)||!Array.isArray(J.output))return;for(let Q of J.output)if(o(Q))yK(Q,X)}function yK(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 gB(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:o(Y.headers)?Object.fromEntries(Object.entries(Y.headers).flatMap(([Q,$])=>typeof $==="string"||typeof $==="number"||typeof $==="boolean"?[[Q,String($)]]:[])):void 0,body:X,message:o(Y.error)&&typeof Y.error.message==="string"?Y.error.message:`${J}`}}function s9(Y){if(typeof Y==="string")try{return s9(JSON.parse(Y))}catch{return}if(!o(Y))return;let X=s9(Y.cause);if(X)return X;let J=s9(Y.body);if(J)return J;let Q=o(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,H=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:H}}function yB(Y){if(uJ(Y))return Y;if(Y instanceof Error)return Y;return new DOMException(typeof Y==="string"?Y:"Aborted","AbortError")}function cJ(Y){let X=Y?.reason;if(uJ(X))return X;if(fB(X))return X;return new DOMException(X instanceof Error?X.message:"Aborted","AbortError")}function fB(Y){return Y instanceof Error&&(Y.name==="ProviderHeaderTimeoutError"||Y.name==="ProviderResponseStreamError")}function mB(Y){let X=Y.response;if(!o(X))return;return typeof X.id==="string"?X.id:void 0}function cB(Y){return Y==="response.created"||Y==="response.in_progress"||Y.startsWith("codex.")}var fK="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.",mK="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 cK(Y,X,J){let Q=[`code ${X}`];if(J.length>0)Q.push(J.toString());return`${Y} (${Q.join(": ")})`}var lJ="x-opencode-title",GX="x-openai-auth-quota-account",pJ=new Set([lJ,M1,GX,"x-opencode-session"]),pB=15000,lB=300000,dB=3300000,uK="websocket_connection_limit_reached";function iB(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 uB("sha256").update(Q).digest("hex").slice(0,12)}function oB(Y){let X=Y?.httpFetch??globalThis.fetch,J=new Map,Q=Y?.connectTimeout??pB,$=Y?.idleTimeout??lB,G=Y?.maxConnectionAge??dB,W=Y?.streamRetries??5,K=Y?.firstEventGraceMs??250,H=Y?.rawWebSocket??!1,U=Y?.onQuota,Z=Y?.onRateLimitReached,O=setInterval(()=>T(),Math.min($,60000));if(typeof O==="object"&&"unref"in O&&typeof O.unref==="function")O.unref();function N(_,P,b){if(!P||!b)return b;dJ(_,pK(P));let y=new Headers(b.headers),n=y.get("x-codex-turn-metadata");if(!n)return b;let a=aK(n,_.turnID,_.turnStartedAt);if(!a)return b;return y.set("x-codex-turn-metadata",a),{...b,headers:y}}async function V(_,P){let b=_ instanceof URL?_.toString():typeof _==="string"?_:_.url,y=I0.normalizeHeaders(P?.headers),n=Y4(P),a=CY(n);if(P?.method!=="POST"||!new URL(b).pathname.endsWith("/responses"))return X(_,a);let V0=(()=>{try{if(typeof P?.body!=="string")return;let D=JSON.parse(P.body);return typeof D==="object"&&D!==null?D:void 0}catch{return}})();if(!V0?.stream)return X(_,a);if(y[lJ]==="true")return X(_,a);let W0=y[M1]??y["x-session-affinity"]??y["session-id"],O0=W0;if(!W0)return X(_,a);let f0=I0.normalizeHeaders(n?.headers),z1=iB(f0),c=`${W0}:${z1}:conversation`,w=typeof y[GX]==="string"?y[GX]:void 0,A=Z?(D,M)=>Z(D,w,M):void 0,B=J.get(c)??{lastUsedAt:Date.now(),busy:!1,fallback:!1,streamFailures:0};if(J.set(c,B),B.fallback)return X(_,N(B,V0,a));if(B.busy)return X(_,N(B,V0,a));B.busy=!0,B.lastUsedAt=Date.now();try{let D=pK(V0),M=I0.normalizeHeaders(n?.headers),f=typeof M.authorization==="string"&&M.authorization.startsWith("Bearer ")?M.authorization.slice(7):"",u=typeof M["chatgpt-account-id"]==="string"?M["chatgpt-account-id"]:void 0,i=U?(Q0)=>U(Q0,f,w,u):void 0,J0=!B.socket&&!B.continuation?JF(M):M;if(B.socket=await aB(B,Y?.url??b,J0,Q,G,H,P?.signal),WF(B,D))await tB(B,D,$,{signal:P?.signal??void 0,sessionID:O0,url:Y?.url??b,headers:n?.headers,onRateLimitReached:A});let D0=()=>{},Y1=()=>{},K1=new Promise((Q0,R0)=>{D0=Q0,Y1=R0}),A0=GF(B,D),a1=t9(sK(B,A0,D)),X1=typeof a1.previous_response_id==="string";await G9({sessionID:O0,transport:"websocket",phase:"main",bodyText:JSON.stringify(a1),url:Y?.url??b,method:n?.method,headers:n?.headers});let X0=I0.streamResponsesWebSocket({socket:B.socket,body:a1,sessionID:O0??void 0,idleTimeout:$,signal:P?.signal??void 0,onQuota:i,onRateLimitReached:A,onFirstEvent:(Q0)=>D0(Q0??!0),onComplete:(Q0,R0)=>{let h1=iK(Q0);c1({component:"ws-pool",event:"main_completed",sessionID:O0,responseID:dK(Q0),usage:h1}),rK(B,D,Q0,R0,X1)},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,j1(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,j1(B),D0(!1)},onAbort:(Q0)=>{B.busy=!1,B.lastUsedAt=Date.now(),B.streamFailures=0,B.continuation=void 0,j1(B),Y1(Q0)},onRetryableTerminal:async(Q0)=>{let R0=lK(Q0);if(!R0)return;throw B.fallback=!0,R0}}),d0=await nB(K1,K);if(d0!==!1){if(d0===!0||d0.status<200||d0.status>599)return X0;return new Response(d0.body,{status:d0.status,headers:{"content-type":"application/json",...d0.headers}})}let V9=()=>X(_,N(B,V0,a));if(!B.fallback)return rB(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,j1(B),D;let M=I0.parseRateLimitSignal(D);if(M)A?.(M.window,M.resetAt);if(I0.isUpgradeFailure(D)&&!H)B.fallback=!0;if(q(B),B.continuation=void 0,j1(B),B.fallback)return X(_,N(B,V0,a));return sB(new y0(D instanceof Error?D.message:String(D),{cause:D}))}}function q(_){if(_.streamFailures++,_.streamFailures>W)_.fallback=!0}function T(){let _=Date.now();for(let[P,b]of J){if(b.busy)continue;if(_-b.lastUsedAt<$)continue;j1(b),J.delete(P)}}function S(){clearInterval(O);for(let _ of J.values())j1(_);J.clear()}function m(_){let P=`${_}:`;for(let[b,y]of J){if(!b.startsWith(P))continue;j1(y),J.delete(b)}}return Object.assign(V,{close:S,remove:m})}function lK(Y){if(Y.type!=="error"||!o(Y.error)||Y.error.code!==uK)return;return Error(typeof Y.error.message==="string"?Y.error.message:uK)}async function nB(Y,X){if(X<=0)return!1;return new Promise((J,Q)=>{let $=setTimeout(()=>J(!1),X);Y.then((G)=>{clearTimeout($),J(G)},(G)=>{clearTimeout($),Q(G)})})}function rB(Y,X){let J=Y.body;if(!J)return Y;let Q=!1,$=new ReadableStream({async start(G){let W=J.getReader(),K=async(H)=>{while(!0){let{done:U,value:Z}=await H.read();if(U)return;if(Z&&Z.length>0)Q=!0,G.enqueue(Z)}};try{await K(W),G.close()}catch(H){if(Q||!I0.isOversizedFrame(H)){G.error(H);return}try{let U=await X();if(!U.ok){G.error(new y0(`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){J.cancel(G)}});return new Response($,{status:Y.status,headers:Y.headers})}function sB(Y){return new Response(new ReadableStream({start(X){X.error(Y)}}),{status:200,headers:{"content-type":"text/event-stream"}})}async function aB(Y,X,J,Q,$,G,W){if(Y.socket?.readyState===WebSocket.OPEN&&Y.connectedAt&&Date.now()-Y.connectedAt<$)return Y.socket;j1(Y);let K=await I0.connectResponsesWebSocket({url:I0.toWebSocketUrl(X),headers:J,timeout:Q,rawWebSocket:G,signal:W??void 0});return Y.connectedAt=Date.now(),K}function j1(Y){if(Y.socket)Y.socket.close(),Y.socket=void 0;Y.connectedAt=void 0,Y.continuation=void 0}async function tB(Y,X,J,Q){if(!Y.socket||!Array.isArray(X.input)||X.input.length===0)return;let $=YF(X);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:J,signal:Q.signal,onRateLimitReached:Q.onRateLimitReached,onComplete:(W,K)=>{c1({component:"ws-pool",event:"prewarm_completed",sessionID:Q.sessionID,responseID:dK(W),usage:iK(W)}),rK(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=lK(W);if(!K)return;throw Y.fallback=!0,K}});await eB(G)}function dK(Y){let X=Y.response;if(!o(X))return;return typeof X.id==="string"?X.id:void 0}function iK(Y){let X=Y.response;if(!o(X))return;return o(X.usage)?X.usage:void 0}async function eB(Y){let X=Y.body?.getReader();if(!X)return;while(!0)if((await X.read()).done)return}function YF(Y){return t9({...Y,generate:!1,input:[],previous_response_id:void 0,client_metadata:XF(Y.client_metadata)})}function oK(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 XF(Y){if(!o(Y))return Y;if(typeof Y["x-codex-turn-metadata"]!=="string")return Y;try{let X=JSON.parse(Y["x-codex-turn-metadata"]);if(!o(X))return Y;return{...Y,"x-codex-turn-metadata":oK(X),"x-codex-ws-stream-request-start-ms":String(Date.now())}}catch{return Y}}function JF(Y){let X=Y["x-codex-turn-metadata"];if(!X)return Y;try{let J=JSON.parse(X);if(!o(J))return Y;return{...Y,"x-codex-turn-metadata":oK(J)}}catch{return Y}}var nK=["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 pK(Y){let X={...Y};if(Array.isArray(Y.input))X.input=Y.input.map(QF);return X}function t9(Y){let X={};for(let J of nK)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 QF(Y){if(!o(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 rK(Y,X,J,Q,$){let G=J.response,W=o(G)&&typeof G.id==="string"?G.id:void 0;if(!W||!Array.isArray(X.input)){Y.continuation=void 0;return}let K=$?new Set(Y.continuation?.finalizedCallIds):new Set;for(let H of Q)K.add(H);Y.continuation={responseID:W,input:X.input,signature:iJ(X),finalizedCallIds:K}}function dJ(Y,X,J=X){let Q=Array.isArray(X.input)?X.input:[],$=Array.isArray(J.input)?J.input:Q,G=iJ(J),W=Y.turnInput&&Y.turnSignature===G?$F(Y.turnInput,$):void 0,K=W===void 0?Q:$.slice(W);if(K.length>0&&K.some(tK)||!Y.turnID)Y.turnID=u1(),Y.turnStartedAt=Date.now();Y.turnInput=$.slice(),Y.turnSignature=G}function sK(Y,X,J=X){dJ(Y,X,J);let Q=X.client_metadata;if(!o(Q)||typeof Q["x-codex-turn-metadata"]!=="string")return X;let $=aK(Q["x-codex-turn-metadata"],Y.turnID,Y.turnStartedAt);if(!$)return X;return{...X,client_metadata:{...Q,"x-codex-turn-metadata":$}}}function aK(Y,X,J){let Q;try{Q=JSON.parse(Y)}catch{return}if(!o(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 $F(Y,X){if(Y.length>X.length)return;for(let J=0;J<Y.length;J++)if(V1(Y[J])!==V1(X[J]))return;return Y.length}function GF(Y,X){let J=Array.isArray(X.input)?X.input:void 0;if(!J||!Y.continuation)return X;if(Y.continuation.signature!==iJ(X))return Y.continuation=void 0,X;if(!eK(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),$=zF(Q,Y.continuation.finalizedCallIds);if($.length===0)return X;return{...X,previous_response_id:Y.continuation.responseID,input:$}}function WF(Y,X){let J=Array.isArray(X.input)?X.input:void 0;if(!Y.continuation)return!0;if(!J)return!1;if(!eK(Y.continuation.input,J))return!0;return J.slice(Y.continuation.input.length).some(tK)}function tK(Y){if(!o(Y))return!1;if(!(Y.type==="message"||("role"in Y)))return!1;return Y.role==="user"||Y.role==="developer"}function zF(Y,X){return Y.filter((J)=>{if(!o(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 iJ(Y){return V1(KF(Object.fromEntries(Object.entries(Y).filter(([X])=>X!=="input"&&X!=="stream"&&X!=="background"&&X!=="previous_response_id"&&X!=="generate"))))}function KF(Y){if(!o(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 eK(Y,X){if(Y.length>=X.length)return!1;for(let J=0;J<Y.length;J++)if(V1(Y[J])!==V1(X[J]))return!1;return!0}function Y4(Y){if(!Y?.headers)return Y;if(Y.headers instanceof Headers){let X=new Headers(Y.headers);for(let J of pJ)X.delete(J);return{...Y,headers:X}}if(Array.isArray(Y.headers))return{...Y,headers:Y.headers.filter((X)=>!pJ.has(X[0].toLowerCase()))};return{...Y,headers:Object.fromEntries(Object.entries(Y.headers).filter(([X])=>!pJ.has(X.toLowerCase())))}}var UF=300000,HF=30000,ZF=5000,LF=100;function tJ(Y){let X=Y.logger,J=Y.now??Date.now,Q=Y.manifestPath??TX(),$=Y.cacheConnector??OF(X),G=Y.detectClaustrumConnection??Q4,W,K,H,U,Z,O=!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 m(),W},getTransport:()=>K,getCustodyProjection:(c,w)=>{let A=N.get(c.id);if(A)return A;return X4(c,Y.storage,w,W,q)},async boot(){if(O)return;try{U=await G()}catch(M){X.warn("custody detection failed",{error:M instanceof Error?M.message:String(M)});return}if(U.status!=="available"){if(U.status==="malformed")X.warn("custody connection malformed; disabled for this process",{reason:U.reason});else X.info("custody not configured; no client/timer created",{});return}let c=await Y.readCustodyManifest(Q);if(q=c,await P(c),Y.storage?.claustrum?.mode!=="claustrum"){X.info("custody connection available but mode is local; manifest read for the refresh gate, no client/timer",{});return}if(!await m()){O0();return}let w=W;if(!w)return;if(!c.ok&&c.reason!=="absent"){_(await Y.loadAccounts(r(Y.configPath))),O0();return}await y(),await n(c);let A=await Y.loadAccounts(r(Y.configPath));await Y.onReconcileStep?.("enabled-manifest-join");let B=oJ(c,A),D=[];for(let M of nJ(A)){if(A?.claustrum?.transition?.fingerprints.fallbacks[M.id])continue;if(!rJ(M,c,P0)&&!(k0(M,P0)&&!M.accountId))continue;if(!B.get(M.id))continue;let u=f0(w);D.push(sJ(M,u).then((i)=>z1(M,i,c)).catch((i)=>X.warn("custody boot sweep failed",{error:i instanceof Error?i.message:String(i)})))}await Promise.all(D),await FF(B,w,A,LF),O0()},async runTick(){if(O)return;if(Y.storage?.claustrum?.mode!=="claustrum")return;let c=q?.ok?q.revision:void 0,w=Y.readCustodyManifest(Q),A=W?void 0:m(),B=await w;if(q=B,!B.ok&&B.reason!=="absent"){_(await Y.loadAccounts(r(Y.configPath)));return}let D=B.ok&&B.revision!==c?await P(B):await Y.loadAccounts(r(Y.configPath));if(!W&&!await A)return;if(B.ok&&B.revision===c){await y(),await Y.onReconcileStep?.("enabled-manifest-join");let f=oJ(B,D);await b(B,f),await W0(B,f);return}await y(),await n(B),await Y.onReconcileStep?.("enabled-manifest-join");let M=oJ(B,D);await b(B,M),await W0(B,M)},dispose(){if(O)return;if(O=!0,Z)(Y.clearIntervalFn??clearInterval)(Z),Z=void 0;try{W?.close()}catch{}if(!W)try{K?.close()}catch{}W=void 0,K=void 0}};async function m(){if(O)return!1;if(W)return!0;if(H)return H;if(!U)return!1;let c=(async()=>{let w;try{let A=$({connectionFile:qF(U),handshakeTimeoutMs:ZF});w=new W4({connector:()=>A,now:J});let B=await A;if(O)return w.close(),!1;return W=w,K=B,!0}catch(A){return w?.close(),X.warn("custody connect failed; disabled until tick reconnect",{error:A instanceof Error?A.message:String(A)}),!1}})();H=c;try{return await c}finally{if(H===c)H=void 0}}function _(c){for(let w of nJ(c))N.set(w.id,{state:"inert",reason:"manifest-unreadable"})}async function P(c){let w=await Y.loadAccounts(r(Y.configPath));if(!w||!c.ok)return w;for(let[A,B]of h0(c)){if(!w)break;if(A==="main")continue;if(w.accounts.some((u)=>u.id===A))continue;let D=w.claustrum?.rowHistory?.includes(A)?"row removed":"awaiting discovery",M=`${A}:${D}`;if(!V.has(M))V.add(M),X.info(`orphan-binding: ${D}`,{accountId:A});if(w.claustrum?.mode!=="claustrum")continue;let f=null;while(!f&&!O)if(f=await Y.acquireRefreshFileLock({name:P1(A),ttlMs:x1,path:Y.configPath,renew:!0}),!f)await new Promise((u)=>setTimeout(u,5));if(!f)continue;try{await Y.onReconcileStep?.("discovery-lock-acquired",A);let u=await Y.readCustodyManifest(Q),i=await Y.loadAccounts(r(Y.configPath));if(i?.claustrum?.mode!=="claustrum"||!u.ok||h0(u).get(A)!==B||i.accounts.some((J0)=>J0.id===A))continue;await Y.mutateAccounts((J0)=>{if(J0.claustrum?.mode!=="claustrum"||J0.accounts.some((D0)=>D0.id===A))return J0;return{...J0,claustrum:{...J0.claustrum,mode:"claustrum",rowHistory:[...new Set([...J0.claustrum?.rowHistory??[],A])]},accounts:[...J0.accounts,{id:A,...L1(P0),enabled:!0}]}},r(Y.configPath))}finally{await f.release().catch(()=>{})}w=await Y.loadAccounts(r(Y.configPath))}return w}async function b(c,w){if(!W)return;let A=await Y.loadAccounts(r(Y.configPath)),B=f0(W);for(let D of nJ(A)){if(A?.claustrum?.transition?.fingerprints.fallbacks[D.id])continue;if(!rJ(D,c,P0)&&!(k0(D,P0)&&!D.accountId))continue;if(!w.has(D.id))continue;let M=await sJ(D,B);z1(D,M,c)}}async function y(){let c=await Y.loadAccounts(r(Y.configPath)),w=c?.claustrum?.transition;if(c?.claustrum?.mode!=="claustrum"||!w)return;let A=!1;for(let[B,D]of Object.entries(w.fingerprints.fallbacks)){let M=await Y.acquireRefreshFileLock({name:P1(B),ttlMs:x1,path:Y.configPath,renew:!0});if(!M){A=!0;continue}try{if(!await Y.withAccountStoreTransaction(async(u)=>{let i=await u.read(),J0=i.accounts.find((A0)=>A0.id===B);if(J0?.type==="oauth"&&k0(J0,"openai"))return!0;if(!J0||!L0(J0)||!J0.access||Q9(J0.access,J0.refresh)!==D)return N.set(B,{state:"inert",reason:"new-local-family-under-claustrum"}),!1;let D0=structuredClone(i),Y1=D0.accounts.find((A0)=>A0.id===B);if(!Y1||!L0(Y1))return!1;Object.assign(Y1,L1(P0)),await u.write(D0);let K1=(await u.read()).accounts.find((A0)=>A0.id===B);return!!(K1?.type==="oauth"&&k0(K1,"openai"))},r(Y.configPath)))A=!0}catch{A=!0}finally{await M.release().catch(()=>{})}}if(w.fingerprints.main)if(!Y.auth)A=!0;else{let B=await Y.acquireRefreshFileLock({name:m1,ttlMs:x1,path:Y.configPath,renew:!0});if(!B)A=!0;else try{if(await SX(w.fingerprints.main,{auth:Y.auth,warn:(M)=>X.warn(M,{})})!=="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!==w.manifestRevision||D.claustrum.transition?.storeGeneration!==w.storeGeneration)return;await B.writeMode("claustrum")},r(Y.configPath))}async function n(c){if(!W||!c.ok)return;let w=await Y.loadAccounts(r(Y.configPath));if(w?.claustrum?.mode!=="claustrum")return;let A=h0(c);for(let B of w.accounts){if(B.type!=="oauth"||B.corrupt!==!0)continue;let D=A.get(B.id),M=D?await a(B.id,B.accountId,D):"no_handle",f=S9({mode:"claustrum",manifest:D?"present":"absent",local:"gone",vault:()=>M,verifiedInProcessLogin:!1});if(!("installTombstone"in f)||!f.installTombstone||!D)continue;await V0(B.id,D)}}async function a(c,w,A){if(Y.resolveFallbackVaultState)return Y.resolveFallbackVaultState({accountId:c,handle:A});if(!W)return"cold";if(W.isReauth(A,J()))return"needs_reauth";try{let B=await W.get(A,b1(Y.storage),{force:!0}),D=Q1(B.payload.access),M=D?$1(D):void 0;if(w&&M&&M!==w)return"identity_mismatch";if(!M)X.warn("custody identity unverifiable; serving",{credentialId:A});return"serves"}catch{return W.isReauth(A,J())?"needs_reauth":"cold"}}async function V0(c,w){let A=await Y.acquireRefreshFileLock({name:P1(c),ttlMs:x1,path:Y.configPath,renew:!0});if(!A)return;try{let B=await Y.readCustodyManifest(Q),D=await Y.loadAccounts(r(Y.configPath)),M=D?.accounts.find((f)=>f.id===c);if(D?.claustrum?.mode!=="claustrum"||!B.ok||h0(B).get(c)!==w||M?.type!=="oauth"||M.corrupt!==!0)return;await Y.mutateAccounts((f)=>{let u=f.accounts.find((D0)=>D0.id===c);if(u?.type!=="oauth"||u.corrupt!==!0)return f;let{corrupt:i,...J0}=u;return{...f,accounts:f.accounts.map((D0)=>D0.id===c?{...J0,...L1(P0)}:D0)}},r(Y.configPath))}finally{await A.release().catch(()=>{})}}async function W0(c,w){if(!W)return;for(let[A,B]of w){if(W.isReauth(B,J()))continue;let M=(await Y.loadAccounts(r(Y.configPath)))?.accounts.find((f)=>f.id===A);if(!M||!L0(M))continue;if(!G4(M,c,Y.storage??{}))continue;try{let f=await W.get(B);N.set(A,{state:"vault",recordVersion:f.recordVersion})}catch{}}}function O0(){if(O)return;let c=Y.setIntervalFn??setInterval,w=Math.floor((Math.random()*2-1)*HF),A=UF+w;if(Z=c(()=>{if(O)return;S.runTick().catch((D)=>X.warn("custody tick failed",{error:D instanceof Error?D.message:String(D)}))},A),Z&&typeof Z==="object"&&"unref"in Z)Z.unref?.()}function f0(c){return{loadAccounts:Y.loadAccounts,readCustodyManifest:Y.readCustodyManifest,acquireRefreshFileLock:Y.acquireRefreshFileLock,configPath:Y.configPath,paths:r(Y.configPath),manifestPath:Q,cache:c,minTtlMs:b1(Y.storage),mutateAccounts:Y.mutateAccounts,provider:P0,now:J}}function z1(c,w,A){if(w.kind==="succeeded"){N.set(c.id,{state:"vault",recordVersion:w.recordVersion});return}if(w.kind==="failed"){let D={gone:"gone",identityMismatch:"identityMismatch",nullClaim:"nullClaim",unavailable:"unavailable"}[w.reason];N.set(c.id,{state:"inert",reason:D==="unavailable"?"takeover-incomplete/vault-unavailable":"identity-mismatch"}),NF(X,c.id,D,w.recordVersion,J());return}if(w.reason==="notEnrolling"){let B=J(),D=X4(c,Y.storage,B,W,A);if(D)N.set(c.id,D)}}return S}var VF=3600000,aJ=new Map;function NF(Y,X,J,Q,$){let G=`${X}:${J}`,W=aJ.get(G);if(W!==void 0&&$-W<VF)return;aJ.set(G,$),Y.warn("custody enroll-completion sweep failed",{accountId:X,reason:J,...typeof Q==="number"?{recordVersion:Q}:{}})}function BF(){aJ.clear()}function b1(Y){return((Y?.refresh?.refreshBeforeExpiryMinutes??240)+30)*60000}function oJ(Y,X){let J=new Map;for(let[Q,$]of h0(Y)){let G=X?.accounts.find((W)=>W.id===Q);if(G?.type!=="oauth")continue;if(!WX(G,Y,P0))continue;J.set(Q,$)}return J}function X4(Y,X,J,Q,$){let G=X??{},W=$?h0($).get(Y.id):void 0;if(!k0(Y,P0)&&!W)return;if(!k0(Y,P0))return;if(G.claustrum?.mode!=="claustrum"||!W)return e9({kind:"NEEDS_LOGIN"});return e9({kind:"INERT",reason:Q?.isReauth(W,J)?"vault-reauth":"vault-cold"})}async function FF(Y,X,J,Q,$=[]){if(Y.size===0&&$.length===0)return;let G=[...$];for(let[,W]of Y)G.push(X.get(W).then(()=>{return}).catch(()=>{}));await Promise.race([Promise.all(G),new Promise((W)=>setTimeout(W,Q))])}function nJ(Y){if(!Y)return[];return Y.accounts.filter(L0)}function OF(Y){return async(X)=>{let J=await $4.connect({connectionFile:X.connectionFile,handshakeTimeoutMs:X.handshakeTimeoutMs});return jF(J,Y)}}function jF(Y,X){return{getCredential:(J,Q)=>Y.getCredential(J,Q),statusCredential:(J)=>Y.statusCredential(J),reportAuthFailure:(J)=>Y.reportAuthFailure({handle:J.handle,providerStatus:J.providerStatus,recordVersion:J.recordVersion,reporterSource:J.reporterSource}),close:()=>Y.close()}}function qF(Y){if(Y.status!=="available")return Y.path??"";return J4()}var wF=new Set(["gpt-5.5","gpt-5.3-codex-spark","gpt-5.4","gpt-5.4-mini"]),AF=new Set(["gpt-5.6","gpt-6"]),RF="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.",TF=new Set(["gpt-5.6-sol","gpt-5.6-terra","gpt-5.6-luna","gpt-6-astra","gpt-6-sol","gpt-6-luna"]),CF="opencode-oauth-dummy-key",_F="terminal_resize_reflow",G8="0.155.0",IF=`codex_exec/${G8} (Debian 12.0.0; aarch64) unknown (codex_exec; ${G8})`,SF="seccomp",LM=()=>m1,eJ=120000,kF=90000,xF=4000,z4=50,K4=3,bF=25,vF=60000,hF="__OPENCODE_OPENAI_AUTH_COMMAND_HANDLED__",W8=!1;function VM(){W8=!1}var U4=N0("models"),H4=!1,Z4=!1;class K8 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,X){super(X);this.name="ResetTargetResolutionError",this.code=Y}}function L4(Y,X,J,Q){let $=(J?.refresh?.refreshBeforeExpiryMinutes??240)*60000;return!Y||!X||X-Q<=$}function gF(Y){return async(X)=>{if(X==="main"){let H=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(L4(U.access,U.expires,H,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 Z=Q1(U.access),O=Z?$1(Z):void 0,N=await Y.loadAccounts({configPath:Y.accountStoragePath,statePath:Y.accountStatePath});return{accountKey:X,label:"Main account",accessToken:U.access,chatgptAccountId:O??N?.mainAccountId}}let J=await Y.loadAccounts({configPath:Y.accountStoragePath,statePath:Y.accountStatePath}),Q=J?.accounts.find((H)=>H.id===X);if(!J||!Q)throw new W1("unknown_account",`Fallback account ${X} was not found.`);if(Q.enabled===!1)throw new W1("disabled_account",`Fallback account ${X} is disabled.`);if(!L0(Q))throw new W1("non_oauth_account",`Fallback account ${X} is not an OAuth account.`);let $=Q;if(!await Y.isFallbackRefreshInert?.($,J)&&L4($.access,$.expires,J,Y.now()))$=await Y.refreshFallbackAccount($,J);let G=Y.resolveFallbackAccess?await Y.resolveFallbackAccess($,J):$.access?{token:$.access,provenance:"local"}:v1;if(G===v1||G===s1)throw new W1("token_unavailable",`Fallback account ${X} has no usable access token.`);let W=await Y.loadAccounts({configPath:Y.accountStoragePath,statePath:Y.accountStatePath}),K=W?.accounts.find((H)=>H.id===X);if(!W||!K)throw new W1("unknown_account",`Fallback account ${X} was not found.`);if(K.enabled===!1)throw new W1("disabled_account",`Fallback account ${X} is disabled.`);if(!L0(K))throw new W1("non_oauth_account",`Fallback account ${X} is not an OAuth account.`);return{accountKey:X,label:$.label??X,accessToken:G.token,chatgptAccountId:K.accountId,onAuthFailure:G.provenance==="local"?void 0:async(H)=>{await Y.reportAuthFailure?.({handle:G.provenance.handle,providerStatus:H,recordVersion:G.provenance.recordVersion})}}}}function yF(){return{fetchImpl:fetch,now:Date.now,randomUUID:()=>crypto.randomUUID()}}function Y8(Y){return Y instanceof K8}function V4(){throw Error(hF)}function fF(Y){return Math.floor(Math.random()*Y)}function mF(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 cF(Y,X,J){let Q=Y.get(X);if(Q)return Q;let $=u1(),G={threadID:$,turnID:u1(),windowID:`${$}:0`};return Y.set(X,G),J?.(),G}function f4(){return $8(OY(),"openai-auth-sessions.json")}function uF(){let Y=new Map;try{let X=JSON.parse(y4(f4(),"utf8"));if(!o(X.sessions))return Y;for(let[J,Q]of Object.entries(X.sessions)){if(!o(Q)||typeof Q.threadID!=="string")continue;Y.set(J,{threadID:Q.threadID,turnID:u1(),windowID:`${Q.threadID}:0`})}}catch{}return Y}function pF(Y){let X=f4(),J=`${X}.tmp-${process.pid}`;try{DF(OY(),{recursive:!0});let Q={version:1,sessions:Object.fromEntries([...Y.entries()].map(([$,G])=>[$,{threadID:G.threadID}]))};MF(J,`${JSON.stringify(Q,null,2)}
|
|
108
|
+
`,"utf8"),EF(J,X)}catch{}}function N4(Y,X){return o(Y)&&(Y.type==="message"||("role"in Y))&&Y.role===X}function lF(Y,X){if(Y.length>X.length)return!1;for(let J=0;J<Y.length;J++)if(V1(Y[J])!==V1(X[J]))return!1;return!0}function dF(Y,X){if(!Y.input)return X.length>0;if(!lF(Y.input,X))return!0;return X.slice(Y.input.length).some((Q)=>N4(Q,"user")||N4(Q,"developer"))}function iF(Y,X){let J=Array.isArray(X?.input)?X.input:void 0;if(J&&(dF(Y,J)||!Y.turnID))Y.turnID=u1(),Y.turnStartedAt=Date.now();else if(!Y.turnStartedAt)Y.turnStartedAt=Date.now();if(J)Y.input=J}function oF(Y){if(!Y.metadata)return{init:Y.init};let X=mF(Y.init?.body);if(!Y.websocket)iF(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:SF,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",_F),Y.headers.set("x-codex-turn-metadata",J),Y.headers.set("user-agent",IF),Y.headers.set("version",G8),Y.dumpSessionID)Y.headers.set(M1,Y.dumpSessionID);let Q=X;if(!Q)return{init:Y.init};let $=Y.responsesLite&&typeof Q.model==="string"&&TF.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(eF);if(aF(Q,Y.metadata),$)tF(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"]=J,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(t9(Q))}}}function nF(Y,X){return Y.find((J)=>J.enabled!==!1&&L0(J)&&(J.id===X||J.accountId===X))}function B4(Y,X){if(!X)return Y;let J={...Y};for(let Q of["resetCreditsAvailable","resetCreditsApplicable"]){let $=X[Q];if(J[Q]===void 0&&$!==void 0)J[Q]=$}if(J.spendControl===void 0&&J.spendControlCleared!==!0&&X.spendControl!==void 0)J.spendControl=X.spendControl;return J}function KX(Y,X){if(!Y)return Y;if(typeof Y.checkedAt==="number"&&Number.isFinite(Y.checkedAt))return Y;return{...Y,checkedAt:X}}function UX(Y,X){return h0(Y).get(X)}function m4(Y,X,J=Date.now(),Q=X.mainAccountId,$){let G=Y.getMain(),W=G?.quota;return{main:{quota:W?{...W,checkedAt:G.checkedAt,primary:KX(W.primary,G.checkedAt),secondary:KX(W.secondary,G.checkedAt)}:null,...typeof Q==="string"?{mainAccountId:Q}:{},killed:!1,...W?.resetCreditsAvailable!==void 0?{resetCredits:W.resetCreditsAvailable}:{}},fallbacks:X.accounts.filter((K)=>K.enabled).map((K)=>{let H=Y.getFallback(K.id),U=H?.quota,Z=$?.(K,J);return{id:K.id,label:K.label,accountId:H?.accountId??K.accountId,quota:U?{...U,checkedAt:H.checkedAt,primary:KX(U.primary,H.checkedAt),secondary:KX(U.secondary,H.checkedAt)}:null,killed:!1,enabled:!0,...U?.resetCreditsAvailable!==void 0?{resetCredits:U.resetCreditsAvailable}:{},...Z?{custody:Z}:{}}}),route:X.routing?.mode??"main-first",lastUpdated:J}}function BM(Y,X,J,Q=Date.now()){return{...m4(Y,X,Q),activeId:J}}function F4(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 rF(Y,X){if(!(Y instanceof Request))return X;let J=new Request(Y,X),Q=J.method.toUpperCase(),$=Q==="GET"||Q==="HEAD"||J.body===null?void 0:await J.text();return{method:J.method,headers:new Headers(J.headers),body:$,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 O4(Y){return Y.get("x-session-affinity")??Y.get("x-opencode-session")??Y.get("x-session-id")??Y.get("session-id")??void 0}function z8(Y){if(Array.isArray(Y)){for(let X of Y)z8(X);return}if(!o(Y))return;if(Y.type==="input_image")delete Y.detail;for(let X of Object.values(Y))z8(X)}var sF=new Set(["gpt-6-astra","gpt-6-sol","gpt-6-luna"]);function aF(Y,X){let J=typeof Y.model==="string"?Y.model:"";if(!sF.has(J))return;let Q=o(Y.reasoning)?Y.reasoning:void 0,$=typeof Q?.effort==="string"?Q.effort:void 0;if(!$)return;if(X.pinnedEffort===void 0){X.pinnedEffort=$;return}if($===X.pinnedEffort)return;let G=Array.isArray(Y.input)?Y.input:void 0;if(!G||G.length===0)return;Y.reasoning={...Q,effort:X.pinnedEffort},G.splice(G.length-1,0,{type:"configuration_update",reasoning:{effort:$}})}function tF(Y){let X=o(Y.reasoning)?{...Y.reasoning}:{};X.context="all_turns",Y.reasoning=X,Y.parallel_tool_calls=!1;let J=Array.isArray(Y.input)?Y.input:[];z8(J);let $=[{type:"additional_tools",role:"developer",tools:Array.isArray(Y.tools)?Y.tools.filter((G)=>!(o(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=[...$,...J],delete Y.tools,delete Y.instructions}function eF(Y){if(!o(Y))return Y;if(Y.type!=="function")return Y;let X=o(Y.parameters)&&"$schema"in Y.parameters?(()=>{let{$schema:H,...U}=Y.parameters;return U})():Y.parameters,{type:J,name:Q,description:$,strict:G,parameters:W,...K}=Y;return{type:J,name:Q,description:$,strict:G??!1,parameters:X,...K}}async function YO(Y,X={}){let J=X.codexApiEndpoint??i0().codexApiEndpoint,Q=crypto.randomUUID(),$=uF(),G=()=>pF($),W=!1,K=[],H=null,U=Y.client.auth,Z=new Map,O=new Map,N,V,q,T={},S=X.custody,m=N0("custody"),_=(w,A="")=>w?async()=>{let B=await w();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:X9(D)}}finally{B.cleanup?.()}}}}:void 0;function P(w,A){return tJ({storage:w,configPath:t(),loadAccounts:E0,mutateAccounts:F0,withAccountStoreTransaction:ZX,readCustodyManifest:r0,acquireRefreshFileLock:Z1,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)=>m.info(B,D??{}),warn:(B,D)=>m.warn(B,D??{}),debug:(B,D)=>m.debug(B,D??{}),error:(B,D)=>m.error(B,D??{})},now:S?.now})}let b=await E0(r(t())),y=await r0(),n=Y.client.auth;if(n.get&&n.all){if(y1(b??{})==="claustrum")q=P(b,{all:n.all,get:n.get,set:n.set}),S?.onRuntime?.(q),await q.boot();let w=q?.getCache();if(w)T.cache=w;if(T.mainVerdict=await xQ({client:{auth:n},mode:y1(b??{}),manifest:y,mainAccountId:b?.mainAccountId,getCredential:w?async(A)=>{return{access:(await w.get(A,b1(b))).payload.access}}:void 0,isReauth:w?(A)=>w.isReauth(A):void 0,now:Date.now,sleep:(A)=>new Promise((B)=>setTimeout(B,A))}),T.mainVerdict){let A=await r1();await Q8({...A,main:{...A.main,custody:e9(T.mainVerdict)}})}}let a=new EX,V0,W0={},O0=HQ({client:Y.client,getAuth:async()=>V0?.(),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}}),f0=(w)=>async(A)=>{let B=await IX();try{let D=await w(A);if(D.method!=="auto")return await B.release(),D;return{...D,callback:async()=>{try{let M=await D.callback();if(M.type!=="success"||!("refresh"in M))return await B.release(),M;return cQ({accessToken:M.access??"",refreshToken:M.refresh,getAuth:async()=>{let f=await U.get({path:{id:"openai"}});return o(f)&&typeof f.access==="string"&&typeof f.refresh==="string"?{access:f.access,refresh:f.refresh}:void 0},onObserved:({access:f,refresh:u})=>SQ({type:"oauth",access:f,refresh:u}),release:()=>B.release(),warn:(f)=>S?.warn?.(f)??m.warn(f),now:S?.now??Date.now,sleep:S?.sleep??((f)=>Bun.sleep(f))}).catch(()=>B.release()),M}catch(M){throw await B.release(),M}}}}catch(D){throw await B.release(),D}},z1=O0.map((w)=>w.type==="oauth"?{...w,authorize:f0(w.authorize)}:w);async function c(w,A){let B=Y.client.session;if(typeof B?.promptAsync==="function"){let D=await H5(Y.client,w),M={noReply:!0,parts:[{type:"text",text:A,ignored:!0}]};if(D?.agent)M.agent=D.agent;if(D?.model)M.model=D.model;if(D?.variant)M.variant=D.variant;await B.promptAsync({path:{id:w},body:M});return}}return{async dispose(){a.stop(),q?.dispose(),N?.stopBackgroundRefresh(),N=void 0;for(let B of K)B.close();K.length=0;let w=globalThis;for(let[B,D]of Z)if(w.__openaiAuthCacheKeepManagers?.get(B)===D)D.stop(),w.__openaiAuthCacheKeepManagers.delete(B);Z.clear();let A=globalThis;for(let[B,D]of O)if(A.__openaiAuthRpcServers?.get(B)===D)await D.stop().catch(()=>{}),A.__openaiAuthRpcServers.delete(B);O.clear()},async event(w){if(w.event.type!=="session.deleted")return;let A=w.event.properties.info,B=$.get(A.id);if(B)H?.cacheKeepManager?.remove(B.threadID);if($.delete(A.id))G();if(V){let D=(await E0(r(t())))?.accounts;await b4(A.id,D,V)}for(let D of K)D.remove(A.id)},provider:{id:"openai",async models(w,A){if(A.auth?.type!=="oauth")return w.models;let B=await E0(r(t())),D=!B||A4(B),M=D?null:await W5();if(!D&&M&&!H4)H4=!0,U4.debug("restoring OAuth model costs from models.dev catalog");if(!D&&!M&&!Z4)Z4=!0,U4.warn("models.dev catalog unavailable; OAuth model costs could not be restored");return Object.fromEntries(Object.entries(w.models).filter(([,f])=>{if(f.options.reasoningMode==="pro")return!1;if(wF.has(f.api.id))return!0;if(AF.has(f.api.id))return!1;let i=f.api.id.match(/^gpt-(\d+(?:\.\d+)?)/)?.[1];return i?parseFloat(i)>5.4:!1}).map(([f,u])=>[f,{...u,cost:D?{input:0,output:0,cache:{read:0,write:0}}:M?.[u.api.id]??M?.[f]??u.cost,limit:u.id.includes("gpt-5.5")?{context:400000,input:272000,output:128000}:u.id.includes("gpt-6-astra")?{context:872000,input:744000,output:128000}:u.id.includes("gpt-5.6")||u.id.includes("gpt-6-sol")||u.id.includes("gpt-6-luna")?{context:372000,input:244000,output:128000}:u.limit}]))}},auth:{provider:"openai",async loader(w){V0=w;let A=await w();if(A.type!=="oauth")return{};let B=_Y(A),D=B.kind==="tombstone"||B.kind==="empty",M=Y.directory?await g4(Y.directory):void 0,f=M?.dir??t();if(!D)await T4({type:"oauth",access:A.access??"",refresh:A.refresh??"",expires:A.expires??0},r(t()));let u=await E0(r(t())).catch((L)=>{let F=t();throw Error(`OpenAI auth store at ${F} is corrupt or unreadable: ${L instanceof Error?L.message:String(L)}. Fix or remove it to continue.`,{cause:L})}),i;async function J0(){let L=t();try{let F=PF(L);if(i?.path===L&&i.mtimeMs===F.mtimeMs&&i.size===F.size)return i.storage;let j=await E0(r(L));return i={path:L,mtimeMs:F.mtimeMs,size:F.size,storage:j},j}catch{return i=void 0,E0(r(L))}}function D0(){i=void 0}if(u&&A.access&&!D){let L=X9({id_token:"",access_token:A.access,refresh_token:A.refresh??""});if(L&&L!==u.mainAccountId)await F0((F)=>{return F.mainAccountId=L,F},r(t())),u.mainAccountId=L,D0()}let Y1=u?.logging?.level;if(Y1&&typeof Y1==="string")TY(Y1);let K1=N0("transport"),A0=N0("quota"),a1=N0("refresh"),X1=N0("accounts");K1.info("codex auth loader ready",{codexApiEndpoint:J,transport:i0().rawWebSocket?"raw-websocket":i0().webSockets?"websocket":"http"});let X0=new RY({storage:u,configPath:t(),fetchQuotaFn:void 0}),d0,V9=0,Q0=new C4({paths:r(t()),refreshFn:(L)=>HX({refreshToken:L.refreshToken,fetchImpl:L.fetchImpl,now:L.now}),quotaManager:X0,custody:{readManifest:r0},onFallbackStorageChanged:D0}),R0=q??P(u);if(!q)S?.onRuntime?.(R0),await R0.boot(),q=R0;if(D){let L=await r0(),F=UX(L,"main"),j=R0.getCache();if(F&&j)try{let C=await j.get(F,b1(u)),I=k9(C.payload.access);if(I&&I!==u?.mainAccountId){if(await F0((k)=>{return k.mainAccountId=I,k},r(t())),u)u.mainAccountId=I;T.mainAccountId=I,D0()}}catch{}}if(R0.runTick().catch((L)=>m.warn("custody first tick failed",{error:L instanceof Error?L.message:String(L)})),q=R0,u&&u.accounts.length>0)Q0.startBackgroundRefresh();let h1=R0;async function GY(L,F){let j=await r0();return WX(L,j,P0)}async function t1(L,F){let j=await r0(),C=h1.getCache(),I=UX(j,L.id);if(!C||!I)return X8(L,F,j);return X8(L,F,j,{cache:C,manifestHandle:I,requestPath:!0,now:S?.now??Date.now,refreshBeforeExpiryMs:(F.refresh?.refreshBeforeExpiryMinutes??240)*60000,completeEnrollmentDeps:{loadAccounts:E0,readCustodyManifest:r0,acquireRefreshFileLock:Z1,configPath:t(),paths:r(t()),cache:C,minTtlMs:b1(F),mutateAccounts:F0,provider:P0,now:Date.now}})}async function U8(L){if(y1(L)!=="claustrum")return s1;let F=await r0(),j=UX(F,"main"),C=h1.getCache(),I=(v)=>{return m.warn("custody main request refused",{reason:v}),v1};if(!j||!C)return I("no-handle");let k=(S?.now??Date.now)();if(C.isBlocked(j))return I("blocked");if(C.isReauth(j,k))return I("reauth");let x=await C.peek(j);if(!x||x.expiresAtMs<=k)return I("cache-miss");return{token:x.payload.access,provenance:{handle:j,recordVersion:x.recordVersion}}}async function N9(L){let F=h1.getCache();if(!F)return;await F.reportAuthFailure({handle:L.handle,providerStatus:L.providerStatus,recordVersion:L.recordVersion})}Object.assign(W0,{isFallbackRefreshInert:GY,resolveFallbackAccess:t1,reportCustodyAuthFailure:N9});function WY(L={}){let{readSidebarState:F,respectBackoff:j,skipFresherThanMs:C}=L;return{getAuth:w,codexRefreshFn:HX,refreshMainWithLease:UY,fallbackManager:Q0,quotaManager:X0,loadAccounts:E0,writeSidebarState:HY,client:Y.client,fetchImpl:fetch,now:Date.now,paths:r(t()),readSidebarState:F??(()=>r1(m0)),storageMainAccountId:u?.mainAccountId,isOAuthAccountFn:L0,whamFn:AY,isFallbackRefreshInert:GY,resolveFallbackAccess:t1,resolveMainAccess:U8,reportCustodyAuthFailure:N9,...j===void 0?{}:{respectBackoff:j},...C===void 0?{}:{skipFresherThanMs:C}}}let H8=N0("cachekeep"),Z8=u?.cachekeep?.enabled===!0,L8=u?.cachekeep?.subagents===!0,V8=u?.cachekeep?.sustain===!0,N8=OQ(u),zY;async function c4(L){await new Promise((F)=>setTimeout(F,L))}async function u4(L){let F;for(let j=1;j<=K4;j++)try{await Y.client.auth.set({path:{id:"openai"},body:{type:"oauth",refresh:L.refresh,access:L.access,expires:L.expires}});return}catch(C){if(F=C,j<K4)await c4(bF*j)}throw new K8(F)}async function KY(L){await F0((F)=>{return F.refresh=F.refresh??{},L(F),F},r(t())),D0()}async function B8(L){let F=Date.now()+xF;while(Date.now()<F){await new Promise((I)=>setTimeout(I,z4+fF(z4)));let j=await w();if(j.type!=="oauth"||!j.access)continue;if((j.access!==L.access||j.refresh!==L.refresh||(j.expires??0)>(L.expires??0)+60000)&&(!j.expires||j.expires>Date.now()))return a1.debug("joined concurrent main refresh",{pid:process.pid,expiresInMs:j.expires?j.expires-Date.now():void 0}),{access:j.access,refresh:j.refresh??L.refresh??"",expires:j.expires??0}}return null}async function UY(){if(!zY)zY=(async()=>{let L=await w();if(L.type!=="oauth")throw Error("not oauth");if(k0({id:"main",type:"oauth",access:L.access??"",refresh:L.refresh??"",expires:L.expires??0,addedAt:0},P0))throw new M4(P0);if(!L.refresh)throw Error("Token refresh failed: missing refresh token");let F=j4(L.refresh),j=await E0(r(t())),C=j?.refresh?.mainLastRefreshError;if(C&&EY(C,L.refresh,Date.now()))throw Error(D4(C,Date.now()));if(j?.refresh?.mainRefreshLeaseUntil&&j.refresh.mainRefreshLeaseUntil>Date.now()&&j.refresh.mainRefreshLeaseTokenHash===F){let v=await B8(L);if(v)return v;throw Error("Codex OAuth refresh is already in progress")}let I=await Z1({name:m1,ttlMs:eJ,path:t(),renew:!0});if(!I){let v=await B8(L);if(v)return v;throw Error("Codex OAuth refresh is already in progress")}let k=crypto.randomUUID(),x=F;try{await KY((p)=>{p.refresh=p.refresh??{},p.refresh.mainRefreshLeaseId=k,p.refresh.mainRefreshLeaseUntil=Date.now()+kF,p.refresh.mainRefreshLeaseTokenHash=F});let v=await E0(r(t()));if(v?.refresh?.mainRefreshLeaseId!==k||v.refresh.mainRefreshLeaseTokenHash!==F)throw Error("Codex OAuth refresh is already in progress");let g=await HX({refreshToken:L.refresh,fetchImpl:fetch,now:Date.now});return await u4(g),await KY((p)=>{if(p.refresh=p.refresh??{},p.refresh.mainLastRefreshError=void 0,p.refresh.mainRefreshLeaseId===k)p.refresh.mainRefreshLeaseId=void 0,p.refresh.mainRefreshLeaseUntil=void 0,p.refresh.mainRefreshLeaseTokenHash=void 0}).catch(()=>{}),x=void 0,g}catch(v){if(L.refresh&&!Y8(v))await KY((g)=>{g.refresh=g.refresh??{},g.refresh.mainLastRefreshError=q4({error:v,now:Date.now(),refreshToken:L.refresh??"",previous:g.refresh.mainLastRefreshError})}).catch(()=>{});throw v}finally{if(x)await KY((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(()=>{zY=void 0});return zY}let F8=globalThis,VX=F8.__openaiAuthCacheKeepManagers??new Map;F8.__openaiAuthCacheKeepManagers=VX,VX.get(f)?.stop();let B9=new RX({fetchImpl:fetch,getMainToken:async()=>{let L=await w();if(L.type!=="oauth")throw Error("not oauth");if(!L.access||(L.expires??0)<Date.now())try{return(await UY()).access}catch(F){if(Y8(F))throw F;if(L.access)return L.access;throw Error("main token refresh failed")}return L.access},refreshFallback:async(L)=>{let F=await J0(),j=F?nF(F.accounts,L):void 0;if(!j)throw Error(`fallback account ${L} not found`);let C=F??{version:1,accounts:[j]},I=j;if(!await GY(j,C))I=await Q0.refreshAccount(j,C);let k=await t1(I,C);if(k===v1||k===s1)throw Error(`no access token for ${L}`);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:J,logger:H8,now:Date.now,getWindow:()=>N8,getSustain:()=>V8});VX.set(f,B9),Z.set(f,B9);async function F9(L,F,j,C,I=!1){if(Object.keys(L).length===0&&!I)return;let k=Date.now(),x=L,v={quota:x,refreshAfter:k+300000,checkedAt:k},g;if(j&&j!=="main"){let l=F?Q1(F):null,K0=l?$1(l):void 0,c0=X0.peekFallbackForPolicy(j)?.quota,T0=B4(x,c0);v={...v,quota:T0},X0.setFallback(j,v,F,I,K0)}else{if(g=C,!g&&F){let c0=Q1(F);g=c0?$1(c0):void 0}if(g&&d0&&g!==d0){A0.debug("stale main quota frame dropped",{pid:process.pid,frameAccountId:g,currentMainIdentity:d0});return}let l=X0.peekMainForPolicy(g)?.quota,K0=B4(x,l);v={...v,quota:K0},X0.setMain(F,v,g,I)}A0.debug("quota pushed",{pid:process.pid,accountId:j??"main",snapshot:v.quota});let p=await J0();await HY(X0,p,j&&j!=="main"?p?.mainAccountId:g)}function p4(L,F,j){let C=L==="main"?X0.peekMainForPolicy()?.quota:X0.peekFallbackForPolicy(L)?.quota;return w4(C,F,Date.now(),vF,j)}let O9=X.experimentalWebSockets?k1.createWebSocketFetch({httpFetch:fetch,rawWebSocket:i0().rawWebSocket,onQuota:(L,F,j,C)=>{F9(L,F,j,!j||j==="main"?C:void 0,!0)},onRateLimitReached:(L,F,j)=>{if(!F)A0.warn("mid-stream rate-limit mark missing internal account id; defaulting to main",{pid:process.pid,window:L});let C=F??"main",I=p4(C,L,j);X0.markRateLimited(C,I),A0.debug("mid-stream rate limit mark",{pid:process.pid,accountId:C,window:L})}}):void 0;if(O9)K.push(O9),W=!0;let m0=_4();V=m0;async function HY(L,F,j=F?.mainAccountId){if(!F)return;await Q8(m4(L,F,Date.now(),j,l4),m0)}function l4(L,F){if(!L0(L))return;return h1.getCustodyProjection(L,F)}async function O8(L,F,j,C,I){let k={activeId:j,route:C,updatedAt:Date.now()};if(L){if(await LX({sessionId:L,...k},I,m0),F&&F!==L){if(C==="sticky-balanced"){let x=(await r1(m0)).stickyAssignments?.[$Y(F)]?.accountId,v=I===void 0||x==="main"||I.some((g)=>g.enabled!==!1&&g.id===x);if(!x||!v)return;await LX({sessionId:F,activeId:x,route:C,updatedAt:Date.now()},I,m0);return}await LX({sessionId:F,...k},I,m0)}return}await x4(k,m0)}let d4=async(L,F)=>{let j=await Z1({name:P1(L),ttlMs:x1,path:t(),renew:!0});if(!j)throw Error("Fallback account lock unavailable");try{return await F()}finally{await j.release()}},i4=S?.withFallbackAccountLock??d4,o4=async(L)=>{let F=await r0();if(!F.ok)return{ready:!1,reason:"manifest-unreadable"};let j=UX(F,L.id);if(!j)return{ready:!1,reason:"no-handle"};let C=R0.getCache();if(!C)return{ready:!1,reason:"vault-cold"};if(C.isReauth(j,S?.now?.()??Date.now()))return{ready:!1,reason:"vault-reauth"};if(C.isBlocked(j))return{ready:!1,reason:"vault-cold"};try{let I=await C.get(j,b1(u)),k=k9(I.payload.access);if(!k||L.accountId&&L.accountId!==k)return{ready:!1,reason:"identity-mismatch"};return{ready:!0,accountId:k}}catch{return{ready:!1,reason:C.isReauth(j,S?.now?.()??Date.now())?"vault-reauth":"vault-cold"}}};N?.stopBackgroundRefresh(),N=Q0,H={accountStoragePath:t(),accountStatePath:DY(t()),packageVersion:E9,quotaManager:X0,loadAccounts:E0,client:Y.client,beginAccountLogin:wY,withFallbackAccountLock:i4,checkUsableCustodyBinding:o4,enterClaustrumMode:async()=>{let L=await E0(r(t())),F=(L?.accounts??[]).filter((j)=>j.type==="oauth"&&j.enabled!==!1).map((j)=>j.id);return uQ({accountIds:F,acquireLock:({name:j,renew:C})=>Z1({name:j,ttlMs:j===m1?eJ:x1,path:t(),renew:C}),withStoreTransaction:(j)=>ZX(j,r(t())),readManifest:r0,preflight:async({accountId:j,handle:C})=>{m.info("preflight probing participant",{accountId:j,hasHandle:C.length>0});let I=await R0.ensureCache(),k=I?.isBlocked(C);if(!I||k)return m.warn("preflight vault-cold",{accountId:j,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,b1(L)),v=k9(x.payload.access);if(!v||j&&j!==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 j=process.env.XDG_DATA_HOME??$8(zX.homedir(),".local","share"),C=$8(j,"opencode","auth.json");try{let I=JSON.parse(y4(C,"utf8"));return o(I)?I:{}}catch{return{}}},get:async(j)=>{if(typeof U.get==="function")return U.get(j);if(j.path.id!=="openai"||!V0){m.warn("auth.get unavailable for slot",{id:j.path.id,hasLoaderGetAuth:V0!==void 0});return}return V0()},set:async(j)=>{await U.set(j)}},warn:(j)=>m.warn(j)})},leaveClaustrumMode:()=>pQ({acquireLock:({name:L,renew:F})=>Z1({name:L,ttlMs:eJ,path:t(),renew:F}),withStoreTransaction:(L)=>ZX(L,r(t()))}),resolveResetTarget:gF({getAuth:w,refreshMainWithLease:UY,refreshFallbackAccount:(L,F)=>Q0.refreshAccount(L,F),loadAccounts:E0,accountStoragePath:t(),accountStatePath:DY(t()),now:Date.now,isFallbackRefreshInert:GY,resolveFallbackAccess:t1,reportAuthFailure:N9}),...yF(),cacheKeepManager:B9,setCacheKeepEnabled:(L)=>{Z8=L},setCacheKeepSubagents:(L)=>{L8=L},setCacheKeepSustain:(L)=>{V8=L},setCacheKeepWindow:(L)=>{N8=L},clearStickyRouting:(L)=>h4(L,m0),getStickyRouting:async(L)=>k4(await r1(m0),L),refreshSidebar:async()=>{let L=await E0(r(t()));await HY(X0,L)},refreshAllQuota:async()=>E1(WY()),refreshResetTargetQuota:async(L)=>{return(await E1(WY({respectBackoff:!1}),{accountKey:L})).find((j)=>j.account===L)??{account:L,ok:!1,error:"targeted quota refresh returned no result"}}};let NX=null;if(M){let L=globalThis,F=L.__openaiAuthRpcServers??new Map;L.__openaiAuthRpcServers=F;let j=F.get(M.dir);if(j)await j.stop().catch(()=>{}),F.delete(M.dir);try{NX=await F5({dir:M.dir,secureDir:M.secureDir,sweepRoot:M.sweepRoot,drain:L5,apply:async(C)=>{let I={...H,sessionId:C.sessionId},k=await DX(C.command,C.arguments,I);return{text:k.text,knobs:k.knobs}}}),F.set(M.dir,NX),O.set(M.dir,NX)}catch{}}let j8=new WeakMap;function n4(L,F){let j=j8.get(L);if(!j||F.hostname!=="chatgpt.com"||!F.pathname.startsWith("/backend-api/codex/"))return;if(L.status>=200&&L.status<300){h1.getCache()?.markVaultSuccess(j.handle);return}if(L.status!==401)return;N9({handle:j.handle,providerStatus:L.status,recordVersion:j.recordVersion}).catch(()=>{})}async function j9(L,F,j,C,I="main",k){if(!j.trim())throw K1.warn("refusing to send a request with no access token",{account:I,accountId:C,hasProvenance:Boolean(k&&k!=="local")}),Error(RF);let x=F4(L,F);if(x.delete("x-api-key"),x.delete("api-key"),x.set("authorization",`Bearer ${j}`),C)x.set("ChatGPT-Account-Id",C);x.set(k1.QUOTA_ACCOUNT_HEADER,I);let v=O4(x),g=v?cF($,v,G):void 0,p=L instanceof URL?L:new URL(typeof L==="string"?L:L.url),l=p.pathname.includes("/v1/responses")||p.pathname.includes("/chat/completions")?new URL(J):p,K0=(_0)=>{let e1=P4(_0,k,j8);return n4(e1,l),e1},T0=oF({init:{...F,headers:x},headers:x,metadata:g,installationID:Q,websocket:Boolean(O9&&p.pathname.endsWith("/responses")),responsesLite:X.responsesLite??!1,dumpSessionID:v}).init,U1=Z8,q1=new Headers(T0?.headers),u0=FQ({enabled:U1,includeSubagents:L8,headers:q1,body:T0?.body});if(U1)H8.trace("cachekeep headers",{pid:process.pid,hasParent:q1.has("x-parent-session-id"),sessionKey:u0?.sessionKey,captured:Boolean(u0),affinity:q1.get("x-session-affinity"),opencodeSession:q1.get("x-opencode-session"),sessionId:q1.get("session-id")});if(O9&&p.pathname.endsWith("/responses")){if(K1.debug("WS transport",{pid:process.pid,pathname:p.pathname,accountId:I}),u0)B9.track(u0.sessionKey,u0.bodyText,I,C,u0.replayHeaders,u0.isSubagent);return K0(await O9(l,T0))}let C0=k1.withoutInternalHeaders(T0);if(typeof C0?.body!=="string")return K0(await fetch(l,C0));if(u0)B9.track(u0.sessionKey,u0.bodyText,I,C,u0.replayHeaders,u0.isSubagent);K1.debug("HTTP transport",{pid:process.pid,pathname:p.pathname,accountId:I});try{let _0=await fetch(l,C0);return await G9({sessionID:v,transport:"http",phase:"http",bodyText:C0.body,accountId:I,url:l.toString(),method:C0.method,headers:C0.headers,status:_0.status}),K0(_0)}catch(_0){throw await G9({sessionID:v,transport:"http",phase:"http",bodyText:C0.body,accountId:I,url:l.toString(),method:C0.method,headers:C0.headers,error:_0 instanceof Error?_0.message:String(_0)}),_0}}function ZY(L,F){if((F?.method??(L instanceof Request?L.method:"GET")).toUpperCase()!=="POST")return!1;if(typeof F?.body!=="string")return!1;try{let C=L instanceof URL?L.toString():typeof L==="string"?L:L.url;return new URL(C).pathname.endsWith("/responses")}catch{return!1}}function r4(L){return X0.peekMainForPolicy(L)?.quota}function q8(L,F){for(let j of[L?.primary?.checkedAt,L?.secondary?.checkedAt,L?.checkedAt,F])if(typeof j==="number"&&Number.isFinite(j))return j;return}function q9(L,F,j,C,I){let k=q8(L,F),x=q8(j),v=C===I&&j!=null&&(L===void 0||x!==void 0&&(k===void 0||x>k));return{quota:v?j:L,quotaCheckedAt:v?x:k,source:v?"file":"memory"}}function D8(L,F,j,C,I){let k=L?.quota,x=q9(k,L?.checkedAt,F,C,I),v=x.source,g=x.quota;if(!S4(g,j))return{exhausted:!1};let p=I4(g,j);if(!p)return{exhausted:!1};return{exhausted:!0,source:v,...p}}function E8(L,F){A0.debug("admission skip: exhausted account",{accountId:L,source:F.source,resetsAt:F.resetsAt})}function s4(L,F="killswitch",j){let C=Date.now(),I=X0.getMain()?.quota,k=(L?.accounts??[]).filter((l)=>l.enabled!==!1&&L0(l)).map((l)=>({accountId:l.id,quota:X0.getFallback(l.id)?.quota})),x=R4(I,k,C,L);if(F==="quota-exhausted"&&j!==void 0)x=Math.max(1,Math.ceil((j-C)/1000));else if(F==="mid-stream-rate-limit"&&j!==void 0){let l=Math.max(1,Math.ceil((j-C)/1000));x=Math.min(x,l)}let v=Math.floor(x/60),g=x%60,p=F==="mid-stream-rate-limit"?`OpenAI rate limit reached — retrying on another account. Retry in ${v}m ${g}s.`:F==="quota-exhausted"?`OpenAI quota exhausted — retrying on another account. Retry in ${v}m ${g}s.`:`Killswitch: all OpenAI accounts are below their configured quota threshold. Retry in ${v}m ${g}s.`;return new Response(JSON.stringify({error:{message:p,type:"rate_limit_exceeded",code:"rate_limit_exceeded"}}),{status:429,headers:{"content-type":"application/json","retry-after":String(x)}})}function P8(L){let F=L?.resetCreditsAvailable;return typeof F==="number"&&Number.isFinite(F)?F:void 0}async function a4(L){let F=JY(L.storage),j=Date.now(),C=X0.peekMainForPolicy(L.mainAccountIdentity),I=q9(C?.quota,C?.checkedAt,L.sidebarState.main.quota,L.sidebarState.main.mainAccountId,L.mainAccountIdentity),k=F?QY(C?.quota,L.storage,void 0,j):void 0,x=L.mainCustodyRefused?[]:[{accountId:"main",wireAccountId:L.mainAccountIdentity,access:L.primaryAccess,provenance:L.primaryProvenance,keepwarmAccountKey:"main",quota:I.quota,quotaCheckedAt:I.quotaCheckedAt,reservePercent:J8(L.storage),configuredOrder:0,resetCreditsApplicable:P8(I.quota),killswitchPasses:k}],v=await Q0.getUsableFallbackAccounts(L.storage);if(!L.storage)return x;for(let g of v){let p=await t1(g,L.storage);if(p===v1||p===s1)continue;let l=L.sidebarState.fallbacks.find((U1)=>U1.id===g.id),K0=X0.peekFallbackForPolicy(g.id,g.accountId),c0=q9(K0?.quota,K0?.checkedAt,l?.quota,l?.accountId,g.accountId),T0=F?QY(K0?.quota,L.storage,g.id,j):void 0;x.push({accountId:g.id,wireAccountId:g.accountId,access:p.token,provenance:p.provenance,keepwarmAccountKey:g.id,fallback:g,quota:c0.quota,quotaCheckedAt:c0.quotaCheckedAt,reservePercent:J8(L.storage,g.id),configuredOrder:x.length,resetCreditsApplicable:P8(c0.quota),killswitchPasses:T0})}return x}function M8(L,F,j,C,I){let k=JY(I)?L.killswitchPasses:void 0;if(L.accountId==="main"){let p=X0.peekMainForPolicy(L.wireAccountId),l=q9(p?.quota,p?.checkedAt,F.main.quota,F.main.mainAccountId,L.wireAccountId);return bX({quota:l.quota,quotaCheckedAt:l.quotaCheckedAt,status:j,now:C,killswitchPasses:k})}let x=F.fallbacks.find((p)=>p.id===L.accountId),v=X0.peekFallbackForPolicy(L.accountId,L.wireAccountId),g=q9(v?.quota,v?.checkedAt,x?.quota,x?.accountId,L.wireAccountId);return bX({quota:g.quota,quotaCheckedAt:g.quotaCheckedAt,status:j,now:C,killswitchPasses:k})}function t4(L){return L.accountId==="main"?"main":L.keepwarmAccountKey}function w8(L){return X0.isRateLimited(t4(L))}async function BX(L){let F=L.candidates.filter((g)=>!w8(g)),j=new Map(F.map((g)=>[g.accountId,g])),C=Object.fromEntries(F.map((g)=>[g.accountId,g.quotaCheckedAt])),I=Object.fromEntries(F.map((g)=>[g.accountId,g.wireAccountId])),k=new Set(L.excludeAccountIds),x,v=await v4({sessionId:L.sessionId,requestBytes:L.requestBytes,now:L.now,validPinnedAccountIds:[...j.keys()],excludeAccountIds:L.excludeAccountIds,quotaCheckedAtByAccount:C,wireAccountIdByAccount:I,choose:(g)=>{let p=F.filter((K0)=>!k.has(K0.accountId));if(p.length===0)return;let l=rQ({candidates:p,pendingBytes:g,requestBytes:L.requestBytes,now:L.now,onEmptyWeightedSet:()=>{X1.debug("sticky routing: no fresh weighted candidates; using configured order")}});if(!l)return;return x={accountId:l.accountId,source:l.source,pendingBytes:g.get(l.accountId)??0},l}},m0);if(x&&v?.accountId===x.accountId)X1.debug("sticky routing: placed session pin",{pid:process.pid,sessionHash:$Y(L.sessionId),accountId:x.accountId,source:x.source,requestBytes:L.requestBytes,pendingBytes:x.pendingBytes});return v?j.get(v.accountId):void 0}async function e4(L,F){let j=await Q0.getUsableFallbackAccounts(L),C=[];if(!L)return{current:[],retained:[],skipped:[]};for(let l of j){let K0=await t1(l,L);if(K0===v1||K0===s1)continue;C.push({access:K0.token,provenance:K0.provenance,accountId:l.accountId,keepwarmAccountKey:l.id,quotaAccountId:l.id,fallback:l})}let I=C.filter((l)=>!X0.isRateLimited(l.quotaAccountId)),k=JY(L)?I.filter((l)=>QY(X0.peekFallbackForPolicy(l.quotaAccountId,l.accountId)?.quota,L,l.quotaAccountId,Date.now())):I,x=new Map(F.fallbacks.map((l)=>[l.id,{quota:l.quota,accountId:l.accountId}])),v=[],g=[],p=Date.now();for(let l of k){let K0=x.get(l.quotaAccountId),c0=D8(X0.peekFallbackForPolicy(l.quotaAccountId,l.accountId),K0?.quota,p,K0?.accountId,l.accountId);if(c0.exhausted)g.push({candidate:l,decision:c0});else v.push(l)}return{current:k,retained:v,skipped:g}}function A8(L,F){if(L.retained.length===0&&!F)return L.current;for(let{candidate:j,decision:C}of L.skipped)E8(j.quotaAccountId,C);return L.retained}async function R8(L,F){try{let j=J9(L.headers);await F9(j,F.access,F.quotaAccountId,void 0,YY(L.headers))}catch{}}async function YU(L,F,j,C){for(let I of C){let k;try{k=await j9(L,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 X1.debug("fallback-first transport failed; request not replayed",{pid:process.pid,accountId:I.quotaAccountId}),x}if(!XY(k.status,j))return Q0.markUsed(I.fallback),{response:k,accessToken:I.access,quotaAccountId:I.quotaAccountId,activeId:I.keepwarmAccountKey};await R8(k,I),k.body?.cancel().catch(()=>{})}return}async function XU(L,F,j,C,I){if(!ZY(L,F))return{response:j};if(!I.length)return{response:j};let k=j,x;for(let v of I){let g;try{g=await j9(L,F,v.access,v.accountId,v.keepwarmAccountKey,v.provenance)}catch(p){if(p instanceof DOMException&&p.name==="AbortError")throw p;if(F?.signal?.aborted)throw p;return X1.debug("reactive fallback candidate threw; stopping",{pid:process.pid,accountId:v.quotaAccountId}),{response:k,...x}}if(k.body?.cancel().catch(()=>{}),k=g,x={accessToken:v.access,accountId:v.quotaAccountId},!XY(g.status,C))return Q0.markUsed(v.fallback),{response:g,...x};await R8(g,v)}return{response:k,...x}}if(u){let L=[];for(let F of u.accounts)if(L0(F))L.push(F);X0.seedFallbacksFromAccounts(L)}if(!W8)W8=!0,HY(X0,u).catch(()=>{}),E1(WY({respectBackoff:!0})).catch((L)=>A0.warn("boot quota seed failed",{pid:process.pid,error:a9(L)}));return a.start(async()=>{let F=(await ZQ(WY({readSidebarState:()=>r1(m0)}))).filter((j)=>!j.ok);if(F.length>0)A0.warn("background quota refresh completed with failures",{pid:process.pid,failures:F})},(L)=>{A0.warn("background quota refresh failed",{pid:process.pid,error:L instanceof Error?L.message:String(L)})}),{apiKey:CF,async fetch(L,F){let j=F4(L,F),C=O4(j),I=j.get("x-parent-session-id")?.trim()||void 0,k=await J0(),x=await w(),v=++V9;if(x.type!=="oauth")return fetch(L,F);F=await rF(L,F);let g=D&&y1(k)==="claustrum",p="",l,K0=!1;if(g){let $0=await U8(k);if($0===v1||$0===s1)K0=!0;else p=$0.token,l=$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 UY();x.access=$0.access,x.refresh=$0.refresh,x.expires=$0.expires}catch($0){if(Y8($0))throw $0}}p=x.access??""}let T0=x.accountId??(p?$1(Q1(p)??{}):void 0);if(v===V9)d0=T0;let U1=k?.routing?.mode??"main-first",q1,C0=await(()=>{return q1??=r1(m0),q1})();if(U1==="sticky-balanced"&&C&&ZY(L,F)&&typeof F?.body==="string"){let $0=Buffer.byteLength(F.body,"utf8"),M0=await a4({storage:k,sidebarState:C0,primaryAccess:p,mainAccountIdentity:T0,mainCustodyRefused:K0,primaryProvenance:l}),j0=await BX({sessionId:C,requestBytes:$0,candidates:M0,now:Date.now()});if(j0){let x8=w8(j0)?{action:"migrate",reason:"exhausted"}:M8(j0,C0,void 0,Date.now(),k);if(x8.action==="migrate"){let v0=await BX({sessionId:C,requestBytes:$0,candidates:M0,excludeAccountIds:[j0.accountId],now:Date.now()});if(v0)X1.debug("sticky routing: migrated session pin",{pid:process.pid,sessionHash:$Y(C),fromAccountId:j0.accountId,toAccountId:v0.accountId,reason:x8.reason}),j0=v0}let J1=await j9(L,F,j0.access,j0.wireAccountId,j0.keepwarmAccountKey,j0.provenance),b8=async(v0,g1)=>{try{let JU=J9(v0.headers);await F9(JU,g1.access,g1.accountId==="main"?void 0:g1.accountId,g1.accountId==="main"?g1.wireAccountId:void 0,YY(v0.headers))}catch{}};await b8(J1,j0);let v8=M8(j0,C0,J1.status,Date.now(),k);if((J1.status===401||J1.status===403||J1.status===429)&&v8.action==="migrate"){let v0=await BX({sessionId:C,requestBytes:$0,candidates:M0,excludeAccountIds:[j0.accountId],now:Date.now()});if(v0){X1.debug("sticky routing: migrated session pin",{pid:process.pid,sessionHash:$Y(C),fromAccountId:j0.accountId,toAccountId:v0.accountId,reason:v8.reason});let g1=J1;J1=await j9(L,F,v0.access,v0.wireAccountId,v0.keepwarmAccountKey,v0.provenance),g1.body?.cancel().catch(()=>{}),j0=v0,await b8(J1,j0)}}if(j0.fallback&&!XY(J1.status,k))Q0.markUsed(j0.fallback);return await O8(C,I,j0.accountId,U1,k?.accounts).catch(()=>{}),J1}}let _0=D8(X0.peekMainForPolicy(T0),C0.main.quota,Date.now(),C0.main.mainAccountId,T0),e1=JY(k)&&!QY(r4(T0),k,void 0,Date.now()),LY=X0.isRateLimited("main"),T8,FX=()=>{return T8??=e4(k,C0),T8},H1,Y9,C8=!1,VY;if(U1==="fallback-first"&&ZY(L,F)){C8=!0;let $0=await FX();VY=A8($0,!e1&&!LY&&!_0.exhausted);let M0=await YU(L,F,k,VY);if(M0)H1=M0.response,Y9={accessToken:M0.accessToken,accountId:M0.quotaAccountId,activeId:M0.activeId}}if(!H1){let $0=_0.exhausted&&ZY(L,F)&&(await FX()).retained.length>0;if(e1||LY||$0){let M0=e1?"killswitch":LY?"mid-stream-rate-limit":"quota-exhausted";if(M0==="quota-exhausted"&&_0.exhausted)E8("main",_0);X1.debug("admission blocked primary",{pid:process.pid,activeId:"main",reason:M0}),H1=s4(k,M0,M0==="quota-exhausted"&&_0.exhausted?_0.resetAtMs:LY?X0.rateLimitedUntil("main"):void 0)}else H1=K0?new Response(null,{status:401}):await j9(L,F,p,T0,"main",l)}let _8=Boolean(Y9),D9=H1,I8=Y9?.accessToken??p,S8=Y9?.accountId,k8=Y9?.activeId??"main";if(!Y9&&!C8&&XY(H1.status,k)){X1.debug("reactive fallback triggered",{pid:process.pid,status:H1.status}),VY??=A8(await FX(),!1);let $0=await XU(L,F,H1,k,VY),M0=$0.response;if(M0!==H1){if(_8=!0,D9=M0,I8=$0.accessToken??p,S8=$0.accountId,$0.accountId)k8=$0.accountId}}try{let $0=J9(D9.headers);if(_8)await F9($0,I8,S8,void 0,YY(D9.headers));else await F9($0,p,void 0,T0,YY(D9.headers))}catch{}return await O8(C,I,k8,U1,k?.accounts).catch(()=>{}),D9}}},methods:z1},"chat.headers":async(w,A)=>{if(w.model.providerID!=="openai")return;if(A.headers.originator="opencode",A.headers["User-Agent"]=`${E4(E9)} (${zX.platform()} ${zX.release()}; ${zX.arch()})`,A.headers["session-id"]=w.sessionID,W&&w.agent==="title")A.headers[k1.TITLE_HEADER]="true"},"chat.params":async(w,A)=>{if(w.model.providerID!=="openai")return;A.maxOutputTokens=void 0},config:async(w)=>{N0("commands").info("registering commands",{existing:Object.keys(w.command??{}).length,pid:process.pid}),w.command={...w.command??{},[P9]:{template:P9,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(w)=>{if(N0("commands").info("command hook entered",{command:w.command,arguments:w.arguments,modal:I9.includes(w.command),hasCmdCtx:H!==null,pid:process.pid}),!I9.includes(w.command))return;if(!H)N0("commands").warn("command rejected: context not loaded",{command:w.command,pid:process.pid}),await c(w.sessionID,"OpenAI auth plugin is still initializing. Send a request first, then try again."),V4();let A=w.command,B={...H,sessionId:w.sessionID,notify:(M)=>{uX(M,w.sessionID)}},D=await DX(A,w.arguments,B);if(V5(w.sessionID))uX(D,w.sessionID);else await c(w.sessionID,D.text);V4()}}}var XO=async(Y)=>{let X=i0();return YO(Y,{codexApiEndpoint:X.codexApiEndpoint,experimentalWebSockets:X.webSockets,responsesLite:X.responsesLite})},FM={id:"cortexkit-openai-auth",server:XO};export{O4 as resolveSidebarSessionId,Q1 as parseJwtClaims,B4 as mergePushedQuotaMetadata,LM as getMainRefreshLockName,nF as findCachekeepFallbackAccount,$1 as extractAccountIdFromClaims,FM as default,gF as createResetTargetResolver,BM as buildSidebarState,m4 as buildSidebarMachineState,yF as buildResetRedemptionDeps,BF as __resetSweepFailureLogDedupeForTest,VM as __resetBootQuotaSeedForTest,tJ as __createCustodyRuntimeForTest,W1 as ResetTargetResolutionError,XO as OpenAIAuthPlugin,eJ as MAIN_REFRESH_LOCK_TTL_MS,kF as MAIN_REFRESH_LEASE_TTL_MS,RF as EMPTY_BEARER_MESSAGE,YO as CodexAuthPlugin,K8 as AuthPersistError};
|