@cortexkit/opencode-openai-auth 1.4.0 → 1.6.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/dist/bin.js +8 -8
- package/dist/{codex-request-hw0XcldE.d.ts → codex-request-D_In8uaR.d.ts} +52 -27
- package/dist/{index-1eq2s1cp.js → index-1qxz4s8a.js} +2 -2
- package/dist/{index-1tdnrt68.js → index-79y7w9bz.js} +1 -1
- package/dist/index-7nmdsmpp.js +2 -0
- package/dist/{index-ag04nyv7.js → index-8xq099qf.js} +2 -2
- package/dist/index-agaatt62.js +65 -0
- package/dist/{index-wgwze391.js → index-b0ty9qam.js} +2 -2
- package/dist/index-ge60xry3.js +90 -0
- package/dist/{index-s88n2bjn.js → index-jkpg9d1p.js} +1 -1
- package/dist/index-k5anexvs.js +69 -0
- package/dist/{index-yhw3hnsh.js → index-rf0ht3gc.js} +2 -2
- package/dist/{index-t5m0dhmq.js → index-x9nffaye.js} +1 -1
- package/dist/{index-d98f1xdp.js → index-ya9c5e4m.js} +1 -1
- package/dist/{index-rsvnabbe.js → index-z8bptbrk.js} +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/{model-DphbMQce.d.ts → model-D22uj0OB.d.ts} +1 -1
- package/dist/{port-file-Cx-wwe5Q.d.ts → port-file-8ElfwDcq.d.ts} +1 -1
- package/dist/{protocol-CDqdjh74.d.ts → protocol-CK9guiFy.d.ts} +1 -1
- package/dist/rpc/port-file.d.ts +1 -1
- package/dist/rpc/port-file.js +1 -1
- package/dist/rpc/protocol.d.ts +1 -1
- package/dist/rpc/protocol.js +1 -1
- package/dist/rpc/rpc-client.d.ts +3 -3
- package/dist/rpc/rpc-client.js +1 -1
- package/dist/rpc/rpc-dir.js +1 -1
- package/dist/{sidebar-state-pTd9gg9W.d.ts → sidebar-state-Bb9L9oPq.d.ts} +4 -4
- package/dist/sidebar-state.d.ts +1 -1
- package/dist/sidebar-state.js +1 -1
- package/dist/token-util-nyvn9866.js +1 -0
- package/dist/{token-0z5g59p8.js → token-xtq3457d.js} +1 -1
- package/dist/tui-preferences.js +1 -1
- package/dist/tui.d.ts +2 -2
- package/dist/v2/server.d.ts +2 -2
- package/dist/v2/server.js +2 -2
- package/package.json +3 -3
- package/src/tui-compiled/raw/shared/169b2b4bf30909bc-consumer.js +17 -2
- package/src/tui-compiled/raw/shared/30f5bc480f31f51c-roster.js +72 -0
- package/src/tui-compiled/raw/shared/375d9cca2def037d-private-files.js +49 -3
- package/src/tui-compiled/raw/shared/754d6017f8e419cf-builtins.js +95 -13
- package/src/tui-compiled/raw/shared/81dddd203f1b92a3-quota-writer.js +4 -54
- package/src/tui-compiled/raw/shared/a62a27a204266acd-attribution.js +39 -25
- package/src/tui-compiled/raw/shared/a910277ac43a8626-pull.js +3 -1
- package/src/tui-compiled/raw/shared/b9588ad4725c1d10-enrollment.js +27 -0
- package/src/tui-compiled/raw/shared/c852a15cfe489d12-pool.js +18 -3
- package/src/tui-compiled/raw/shared/c911dbb64c9d85c7-quota-writer.js +298 -0
- package/src/tui-compiled/raw/shared/e1c5e56df0ba4053-pending.js +48 -0
- package/src/tui-compiled/raw/shared/e8d3c8da776ef9cd-index.js +1 -1
- package/src/tui-compiled/runtime/shared/169b2b4bf30909bc-consumer.js +17 -2
- package/src/tui-compiled/runtime/shared/30f5bc480f31f51c-roster.js +72 -0
- package/src/tui-compiled/runtime/shared/375d9cca2def037d-private-files.js +49 -3
- package/src/tui-compiled/runtime/shared/754d6017f8e419cf-builtins.js +95 -13
- package/src/tui-compiled/runtime/shared/81dddd203f1b92a3-quota-writer.js +4 -54
- package/src/tui-compiled/runtime/shared/a62a27a204266acd-attribution.js +39 -25
- package/src/tui-compiled/runtime/shared/a910277ac43a8626-pull.js +3 -1
- package/src/tui-compiled/runtime/shared/b9588ad4725c1d10-enrollment.js +27 -0
- package/src/tui-compiled/runtime/shared/c852a15cfe489d12-pool.js +18 -3
- package/src/tui-compiled/runtime/shared/c911dbb64c9d85c7-quota-writer.js +298 -0
- package/src/tui-compiled/runtime/shared/e1c5e56df0ba4053-pending.js +48 -0
- package/src/tui-compiled/runtime/shared/e8d3c8da776ef9cd-index.js +1 -1
- package/dist/index-5230x6s8.js +0 -2
- package/dist/index-brbqqer5.js +0 -90
- package/dist/index-jcyrm58f.js +0 -65
- package/dist/index-vy729a0b.js +0 -69
- package/dist/token-util-jf9g6stk.js +0 -1
package/dist/index-jcyrm58f.js
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import{$a as X3,Aa as k3,Ab as o4,Ba as aJ,Bb as zX,Ca as KY,Da as tJ,Ea as eJ,Eb as E$,Ja as YX,Ka as JX,La as XX,Ma as QX,Na as M9,Oa as d1,Pa as k6,Qa as t8,Ra as o6,Sa as e8,Ta as YY,Ua as JY,Va as XY,Wa as QY,Ya as RY,Za as CY,_a as w9,ab as Q3,bb as G3,cb as $3,db as W3,eb as C9,gb as y6,ib as X9,jb as P$,kb as U0,mb as $X,nb as vJ,ob as hJ,pa as F9,pb as WX,qa as hX,qb as q$,ra as $$,rb as n4,sa as n,sb as M$,tb as r9,ub as y8,va as j$,vb as W8,wa as N3,wb as z8,xa as j3,xb as D9,ya as F$,yb as z3,za as D$,zb as s9}from"./index-vy729a0b.js";import{Ib as mY,Kb as nX,Mb as L6,Nb as T$,Qb as R$,Ub as m3,Vb as C$,Wb as w$,Xb as S$,ac as g8,bc as f8,cc as I$,dc as b$,gc as k$,hc as x$,ic as v$,kc as G8,lc as $8,mc as h$,nc as y$,oc as U9,pc as g$}from"./index-1eq2s1cp.js";import{$c as nJ,$d as A6,Bd as V$,Ed as xJ,Fc as Q8,Fd as R0,Gd as n1,Id as B3,Jc as V3,Jd as w1,Kd as hY,Ld as S1,Mc as kJ,Md as e1,Nd as K1,Oc as z1,Od as H9,Pc as z$,Pd as B$,Qc as M6,Qd as L$,Rc as i4,Rd as J3,Sc as K$,Sd as L3,Tc as uJ,Td as Z6,Uc as pJ,Ud as n0,Vc as Y6,Vd as r6,Wc as J6,Wd as WY,Xc as a6,Yc as lJ,Zc as dJ,Zd as N$,_c as iJ,_d as E9,ad as oJ,ae as T6,bd as rJ,be as F3,cd as i1,ce as U1,dd as J9,de as O$,ed as g9,ee as D3,fd as TG,fe as O3,hd as iX,he as _$,ie as _3,je as kY,ke as P3,le as q3,md as sJ,me as M3,sd as m0,td as U$,ud as C1,vd as a9,wd as H$,xc as g6,yd as Z$,zc as j9,zd as o0}from"./index-brbqqer5.js";import{re as Y8}from"./index-ag04nyv7.js";import{Ae as W$,Be as p1,we as wX,xe as SX,ye as IX,ze as a3}from"./index-rsvnabbe.js";import{Ie as DX,Ke as t1,Me as H0,Re as h9,Te as GX}from"./index-wgwze391.js";import{$e as jX,Ue as V6,Ve as e9,Ye as LX,Ze as NX,_e as BY,cf as FX}from"./index-5230x6s8.js";import{ef as bX,gf as A$}from"./index-t5m0dhmq.js";import{if as iY}from"./index-d98f1xdp.js";import{createHash as CB,randomUUID as wB}from"node:crypto";import{statSync as SB}from"node:fs";import u4 from"node:os";import{join as IB}from"node:path";import{readFile as qW}from"node:fs/promises";import{readFileSync as e$}from"node:fs";import{homedir as YW,tmpdir as JW}from"node:os";import{join as m1}from"node:path";var XW="https://chatgpt.com/backend-api/codex/responses",QW="openai-auth.json",x6={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 GY(){let Y=process.env[x6.configDir]?.trim();if(Y)return Y;return m1(process.env.XDG_CONFIG_HOME||m1(YW(),".config"),"opencode")}function X0(){return process.env[x6.configFile]?.trim()||m1(GY(),QW)}function GW(){try{let Y=JSON.parse(e$(X0(),"utf8"));return Y!=null&&typeof Y==="object"&&!Array.isArray(Y)?Y:{}}catch{return{}}}function $W(Y){let J=process.env[Y];if(J===void 0)return;let X=J.trim().toLowerCase();if(X==="1"||X==="true"||X==="yes"||X==="on")return!0;if(X===""||X==="0"||X==="false"||X==="no"||X==="off")return!1;return}function g1(Y,J,X){let Q=$W(Y);if(Q!==void 0)return Q;if(typeof J==="boolean")return J;return X}function WW(){let Y=GW(),J;if(Y.dump!==void 0&&Y.dump!==null){if(typeof Y.dump==="object")J=Y.dump.enabled;else if(typeof Y.dump==="boolean")J=Y.dump}return{webSockets:g1(x6.webSockets,Y.webSockets,!1),rawWebSocket:g1(x6.rawWebSocket,Y.rawWebSocket,!1),responsesLite:g1(x6.responsesLite,Y.responsesLite,!1),dump:g1(x6.dump,J,!1),dumpDir:process.env[x6.dumpDir]?.trim()||(typeof Y.dumpDir==="string"&&Y.dumpDir.trim()?Y.dumpDir.trim():m1(JW(),"opencode-openai-auth-dumps")),codexApiEndpoint:process.env[x6.codexApiEndpoint]?.trim()||(typeof Y.codexApiEndpoint==="string"&&Y.codexApiEndpoint.trim()?Y.codexApiEndpoint.trim():XW)}}var f1;function i0(){if(!f1)f1=WW();return f1}function CJ(){return f1=void 0,i0()}import{readFileSync as zW}from"node:fs";var KW="The `main` account holds the login OpenCode signs in with (its login slot only points at it), so it cannot be removed. Sign in with another account through `opencode auth login` to replace it.";function UW(Y){return`The account-pool migration is moving OpenCode's login into \`${Y}\` right now, so it cannot be removed yet. Try again once the migration has finished.`}function O9(Y,J={}){return F9({provider:"openai",configPath:Y.configPath,statePath:Y.statePath,quota:j9,...J})}function $Y(Y){try{let J=JSON.parse(zW(Y,"utf8"));if(!J||typeof J!=="object"||Array.isArray(J))return!1;return r9(J).migratedAt!==void 0}catch{return!1}}async function c1(Y,J){if(!$Y(Y.configPath))return;let X=await J.read();return X.status==="ready"?X.rows:void 0}function u1(Y,J){if(Y===Z6)return KW;if(r9(J.config).pending?.rowId===Y)return UW(Y);return}function HW(Y,J){return D9(Y,Z6,J.legacyLocks).filter((X)=>X.name===s9)}function q6(Y,J={}){return HW(Y,J)}var _9="This setup has no OpenAI login in its account store. Sign in for this setup with opencode auth login, or point OPENCODE_OPENAI_AUTH_FILE and OPENCODE_OPENAI_AUTH_STATE_FILE at the store that holds the login.";class s6 extends Error{constructor(){super("The main OpenAI account lives in the account pool");this.name="MainAccountInPoolError"}}async function wJ(Y){let J=Y.storage,X=r6(J);if(!J||!X||m0(X))return;let Q=X,G=Y.now(),$=(J.refresh?.refreshBeforeExpiryMinutes??240)*60000;if((!Q.access||!Q.expires||Q.expires-G<=$)&&!M6(Q.lastRefreshError,Q.refresh,G))try{Q=await Y.refreshAccount(Q,J)}catch(U){Y.warn?.("pool main row refresh failed",{error:U instanceof Error?U.message:String(U)})}let K=Q.access?.trim();if(!K)return;if(typeof Q.expires!=="number"||Q.expires<=Y.now())return;return{account:Q,token:K}}import{readdir as ZW,readFile as VW}from"node:fs/promises";import{homedir as BW}from"node:os";import{join as P9}from"node:path";function IJ(){return process.env.XDG_STATE_HOME||P9(BW(),".local","state")}function LW(Y=IJ()){return P9(Y,"cortexkit","openai-auth","processes")}function NW(Y=IJ()){return P9(Y,"cortexkit","openai-auth","rpc")}function jW(Y){try{return process.kill(Y,0),!0}catch(J){return J.code==="EPERM"}}function SJ(Y){let J=/^v?(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z.-]+)?$/.exec(Y.trim());if(!J)return;return{core:[Number(J[1]),Number(J[2]),Number(J[3])],pre:J[4]?J[4].split("."):[]}}function FW(Y,J){let X=SJ(Y),Q=SJ(J);if(!X||!Q)return;for(let G=0;G<3;G++){let $=X.core[G]-Q.core[G];if($!==0)return Math.sign($)}if(X.pre.length===0||Q.pre.length===0)return Math.sign(Q.pre.length-X.pre.length);for(let G=0;G<Math.max(X.pre.length,Q.pre.length);G++){let $=X.pre[G],W=Q.pre[G];if($===void 0)return-1;if(W===void 0)return 1;let K=/^\d+$/.test($),U=/^\d+$/.test(W);if(K&&U){let H=Number($)-Number(W);if(H!==0)return Math.sign(H)}else if(K!==U)return K?-1:1;else if($!==W)return $<W?-1:1}return 0}async function zY(Y){try{return{ok:!0,names:await ZW(Y)}}catch(J){let X=J.code;if(X==="ENOENT")return{ok:!0,names:[]};return{ok:!1,code:X,error:`${Y}: ${String(J)}`}}}async function DW(Y,J){let X;try{X=await VW(Y,"utf8")}catch(Q){if(Q.code==="ENOENT")return{kind:"gone"};return{kind:"unreadable"}}try{let Q=JSON.parse(X);if(Q!==null&&typeof Q==="object"&&Q.pid===J&&typeof Q.version==="string")return{kind:"ok",version:Q.version}}catch{}return{kind:"unreadable"}}async function q9(Y){let J=Y.isAlive??jW,X=Y.selfPid??process.pid,Q=new Map,G=(V)=>{let F=V.pid==="unknown"?`dir:${V.detail}`:V.pid;if(!Q.has(F))Q.set(F,V)},$=(V)=>{try{return J(V)}catch{return!0}},W=(V,F)=>{let P=F.exec(V),q=P?Number(P[1]):Number.NaN;return Number.isSafeInteger(q)&&q>=1?q:void 0},K=LW(Y.stateHome),U=new Set,H=await zY(K);if(!H.ok)G({pid:"unknown",version:"unknown",detail:H.error});for(let V of H.ok?H.names:[]){let F=W(V,/^(\d+)\.json$/);if(F===void 0||F===X)continue;let P=P9(K,V),q=await DW(P,F);if(q.kind==="gone")continue;if(U.add(F),!$(F))continue;if(q.kind==="unreadable"){G({pid:F,version:"unknown",detail:P});continue}let E=FW(q.version,Y.currentVersion);if(E===void 0||E<0)G({pid:F,version:q.version,detail:P})}let B=Y.rpcDir??NW(Y.stateHome),O=await zY(B);if(!O.ok)G({pid:"unknown",version:"unknown",detail:O.error});for(let V of O.ok?O.names:[]){if(!p1(V))continue;let F=P9(B,V),P=await zY(F);if(!P.ok){if(P.code==="ENOTDIR")continue;G({pid:"unknown",version:"unknown",detail:P.error});continue}for(let q of P.names){let E=W(q,/^port-(\d+)\.json$/);if(E===void 0||E===X||U.has(E))continue;if($(E))G({pid:E,version:"unknown",detail:P9(F,q)})}}let L=(V)=>V.pid==="unknown"?Number.POSITIVE_INFINITY:V.pid;return Q.size===0?{open:!0}:{open:!1,blockers:[...Q.values()].sort((V,F)=>L(V)-L(F))}}var v6="1.4.0";import{readFile as yJ}from"node:fs/promises";function l1(Y){return typeof Y==="object"&&Y!==null&&!Array.isArray(Y)}async function gJ(Y){let J=await xJ(Y.configPath),X=[];try{let G=JSON.parse(await yJ(Y.statePath,"utf8"));if(l1(G)){let $=G.accounts;if(l1($))X=Object.keys($)}}catch(G){if(G.code!=="ENOENT")throw G}return{rosterIds:J?[...J]:[],stateIds:X,orphanStateIds:J?X.filter((G)=>!J.has(G)):[]}}async function OW(Y){try{let J=JSON.parse(await yJ(Y.configPath,"utf8"));return l1(J)&&l1(J.claustrum)&&J.claustrum.mode==="claustrum"}catch{return!1}}var bJ="Connect this host to the Claustrum vault (`opencode auth login` > Connect to the Claustrum vault, or the Vault section of `/openai`) if the vault holds the account, or sign in to the account again.";function fJ(Y){if(!Y)return;let J=Y.accounts.find((X)=>X.id==="main"&&o0(X));if(J)return J;if(!Y.mainAccountId)return;return Y.accounts.find((X)=>o0(X)&&X.accountId===Y.mainAccountId)}function _W(Y,J){let X=Y.lastRefreshError;return M6(X,Y.refresh,J)&&X!==void 0&&X.nextRetryAt!==void 0&&X.nextRetryAt-X.checkedAt>=kJ}function PW(Y){let J=[],X=[],Q=Y.now??Date.now(),G=fJ(Y.storage),$=!1;if(m0(Y.auth))J.push({code:"tombstoned-host-slot",message:`OpenCode's OpenAI slot holds a tombstone left by the vault custody of an older version, not a credential; it is never sent. ${bJ}`});else if(n0(Y.auth)){if(!r6(Y.storage))J.push({code:"main-pool-row-missing",message:"The main account was moved into the account pool, but the pool has no usable `main` row."})}else if(!Y.auth)J.push({code:"auth-slot-missing",message:"OpenCode's OpenAI auth slot is missing."}),$=!0;else if(Y.auth.type!=="oauth")J.push({code:"auth-slot-not-oauth",message:"OpenCode's OpenAI auth slot is not OAuth."}),$=!0;else if(G&&(!Y.auth.refresh||G.refresh!==Y.auth.refresh))J.push({code:"main-refresh-not-in-store",message:"OpenCode's main credential does not match the copy in the account store."}),$=!0;if($&&G){let U={type:"restore-main-credential"};X.push(U);let H=J.find((B)=>B.code==="auth-slot-missing"||B.code==="auth-slot-not-oauth"||B.code==="main-refresh-not-in-store");if(H)H.repair=U}let W=Y.storage?.accounts??[];if(W.length===0)J.push({code:"no-accounts",message:"The account store has no accounts."});else if(!W.some((U)=>U.enabled!==!1))J.push({code:"no-enabled-accounts",message:"The account store has no enabled accounts."});for(let U of W){if(!o0(U)||!m0(U))continue;J.push({code:"tombstoned-account",accountId:U.id,message:`Account ${U.id} holds a tombstone left by the vault custody of an older version, not a credential; it is never sent. ${bJ}`})}if(Y.retiredCustodyMode)J.push({code:"retired-custody-mode",message:"The config still selects the vault custody mode of an older version (`claustrum.mode`). It is ignored, and dropped at the next settings write; vault accounts are served once this host is connected to the Claustrum vault."});for(let U of W){if(!o0(U))continue;if(!_W(U,Q))continue;let H={type:"clear-refresh-backoff",accountId:U.id};X.push(H),J.push({code:"armed-non-transient-refresh-backoff",accountId:U.id,message:`Account ${U.id} has an armed non-transient refresh backoff.`,repair:H})}let K=[...Y.orphanStateIds??[]];if(K.length>0){let U={type:"prune-orphan-state-ids",ids:K};X.push(U),J.push({code:"orphan-state-ids",message:`State contains ids absent from the config roster: ${K.join(", ")}.`,repair:U})}return{findings:J,repairs:X}}function mJ(Y){let J=(X)=>{if(X.type==="restore-main-credential")return{label:"Copy the stored main credential back into OpenCode's slot",apply:async()=>{if(n0(await Y.readAuth()))return;let Q=fJ(await Y.loadAccounts(Y.paths));if(!Q)return;await Y.setMainAuth({refresh:Q.refresh,access:Q.access??"",expires:Q.expires??0})}};if(Y.migrated)return;if(X.type==="prune-orphan-state-ids")return{label:`Drop the state entries of ${X.ids.join(", ")}`,apply:async()=>{await Y.mutateAccounts((Q)=>Q,Y.paths)}};return{label:`Clear the refresh backoff of ${X.accountId}`,apply:async()=>{await Y.mutateAccounts((Q)=>{let G=Q.accounts.find(($)=>$.id===X.accountId&&o0($));if(G)G.lastRefreshError=void 0;return Q},Y.paths)}}};return[{id:"openai-auth",run:async()=>{let[X,Q,G,$]=await Promise.all([Y.loadAccounts(Y.paths),Y.readStoreIds(Y.paths),Y.readAuth(),OW(Y.paths)]),W=PW({auth:G.type==="missing"?void 0:G,storage:X,orphanStateIds:Q.orphanStateIds,retiredCustodyMode:$,now:Y.now()}),K=await F9({provider:"openai",quota:j9,configPath:Y.paths.configPath,statePath:Y.paths.statePath}).read();if(K.status==="ready")for(let U of K.rows){if(U.disabledReason!==vJ)continue;W.findings.push({code:"slot-transfer-origin-unknown",accountId:U.id,message:`Account ${U.id} was preserved disabled after an interrupted transfer with an untagged placeholder; sole ownership could not be established. ${hJ}`})}return W.findings.map((U)=>{let H=U.repair?J(U.repair):void 0;return{code:U.code,message:U.message,...U.accountId!==void 0?{accountId:U.accountId}:{},...H?{repair:H}:{}}})}}]}var MW=GX,cJ="OpenAI accounts",EW="ChatGPT accounts in the vault",AW="Uses the ChatGPT accounts in the Claustrum vault, with no sign-in. This works only while this host is connected to the vault and OpenCode has no OpenAI login stored; otherwise it fails and changes nothing.";async function TW(){let{redirectUri:Y}=await iJ(),J=await pJ(),X=uJ(crypto.getRandomValues(new Uint8Array(32)).buffer),Q=lJ(Y,J,X),G=nJ(J,X);return{url:Q,instructions:"Complete authorization in your browser. This window will close automatically.",method:"auto",callback:async()=>{try{let $=await G;return{type:"success",refresh:$.refresh_token,access:$.access_token,expires:Date.now()+($.expires_in??3600)*1000,accountId:a6($)}}finally{dJ(X)}}}}async function RW(Y){let{deviceData:J,url:X,instructions:Q}=await oJ(Y);return{url:X,instructions:Q,method:"auto",async callback(){try{let G=await rJ(J,Y);return{type:"success",refresh:G.refresh_token,access:G.access_token,expires:Date.now()+(G.expires_in??3600)*1000,accountId:a6(G)}}catch{return{type:"failed"}}}}}function KX({client:Y,getAuth:J,getPaths:X=()=>U0(X0()),fetchImpl:Q=fetch,packageVersion:G=v6,dependencies:$,onMainSlotWritten:W,vault:K}){let U={authorizeBrowser:$?.authorizeBrowser??TW,authorizeHeadless:$?.authorizeHeadless??(()=>RW(G)),beginAccountLogin:$?.beginAccountLogin??i1,loadAccounts:$?.loadAccounts??R0,mutateAccounts:$?.mutateAccounts??n1,readStoreIds:$?.readStoreIds??gJ,openBrowser:$?.openBrowser??MW,now:$?.now??Date.now,openAccountPool:$?.openAccountPool??O9,migrationBlockers:$?.migrationBlockers??(async()=>{let j=await q9({currentVersion:G});return j.open?[]:j.blockers.map((C)=>({pid:C.pid,version:C.version}))}),...$?.terminal?{terminal:$.terminal}:{},...$?.vaultWait?{vaultWait:$.vaultWait}:{}},H=async()=>await J?.().catch(()=>{return})??{type:"missing"},B=async()=>{if(K&&await K.authority()!=="local")return!0;if((await H()).type!=="missing")return!0;let j=X(),C=U.openAccountPool(j);if((await C.read()).status==="ready")return JX(C);return((await U.loadAccounts(j))?.accounts.length??0)>0},O=async(j)=>{if(await WX(X().configPath,async()=>{if(K&&await K.authority()!=="local")return!1;if(n0(await H()))return!1;return await Y.auth.set({path:{id:"openai"},body:{type:"oauth",...j}}),!0}))await W?.().catch(()=>{})},L=(j)=>({begin:async({headless:C,signal:h})=>{if(K&&await K.authority()!=="local")throw Error(M9);let A=await U.beginAccountLogin({version:G,headless:C,...h?{signal:h}:{}});return{url:A.url,instructions:A.instructions,completion:A.completion.then(async(g)=>{if(K&&await K.authority()!=="local")throw Error(M9);let r=await j.read(),i=r.status==="ready"?r.rows.find((B0)=>B0.id===Z6)?.identity:void 0;if(g.accountId&&i&&g.accountId===i)throw Error("that account is already the OpenCode main credential");return{id:g.id,credential:{type:"oauth",refresh:g.refresh,...g.access!==void 0?{access:g.access}:{},...g.expires!==void 0?{expires:g.expires}:{}},...g.accountId!==void 0?{identity:g.accountId}:{},...g.label!==void 0?{label:g.label}:{}}})}},openBrowser:(C)=>U.openBrowser(C)}),V=async(j)=>{if(K&&await K.authority()!=="local")throw Error(M9);let C=j.credential;if(C?.type!=="oauth"||!C.access)throw Error("no usable access token for a quota check");let h=await a9({accessToken:C.access,fetchImpl:Q,now:U.now,...j.identity?{accountId:j.identity}:{},accountKey:j.id});return E9(h,U.now(),!0)},F=(j)=>mJ({paths:X(),migrated:j,readAuth:H,loadAccounts:U.loadAccounts,readStoreIds:U.readStoreIds,mutateAccounts:U.mutateAccounts,setMainAuth:O,now:U.now}),P=(j,C)=>({title:cJ,store:t8(C,{rowLocks:(h)=>D9(j,h)}),...U.terminal?{terminal:U.terminal}:{},login:L(C),protect:(h,A)=>u1(h,A),extraLocks:q6(j),pollQuota:V,doctor:F(!0),status:async()=>{let h=await K?.status();if(K&&await K.authority()!=="local"&&h)return[KY(K.host,K.name,h.enrollment)];return[`Routing: ${(await U.loadAccounts(j))?.routing?.mode??"main-first"}`,...K?[KY(K.host,K.name,(await K.status()).enrollment)]:[]]},...K?{extraActions:[q(K)]}:{}}),q=(j)=>{let C=j.enrolled();return{id:C?"vault-disconnect":"vault-connect",label:C?"Disconnect from the Claustrum vault":"Connect to the Claustrum vault",hint:"serve OpenAI accounts held in the vault",run:async(h)=>{let A=await j.authority();if(C){if(A!=="local")await j.disconnect();h.print("Disconnected from the Claustrum vault.");return}if(A!=="local"){h.print("Nothing was changed: this host is already connected or its enrollment is unreadable. Reopen the menu to disconnect.");return}h.print(`Asking the Claustrum vault to enroll ${j.name}…`);let g,r=await j.waitForApproval({...U.vaultWait,onPending:(i)=>{let V0=i.state==="pending"?i.requestId??i.retryCode??"":i.state;if(V0===g)return;g=V0;for(let B0 of aJ(j.name,i))h.print(B0);h.print("Waiting for the approval… (stop with Ctrl-C; Connect picks the request up again)")}});h.print(tJ(j,r).text)}}},E=async()=>{let j=await U.migrationBlockers();return YX({title:cJ,status:["Accounts move to the new account layout once every OpenCode process on this machine runs this version of OpenAI auth. Account management opens after the move.",...j.length>0?["These processes still hold the move back:",...j.map((C)=>` ${C.pid==="unknown"?"processes that could not be read":`pid ${C.pid}`}: version ${C.version}`)]:[]],actions:[eJ({checks:F(!1)})],...U.terminal?{terminal:U.terminal}:{}})},S=async(j)=>{let C=X(),h=U.openAccountPool(C);if(K&&await K.authority()!=="local")return d1(P(C,h),K);if(await c1(C,h)===void 0)return E();let A=P(C,h);return K?d1(A,K):XX(A)},x=(j)=>async()=>{if(K&&await K.authority()!=="local")throw Error(M9);let C=await j();if(C.method!=="auto")return C;return{...C,callback:async()=>{let h=await C.callback();if(K&&await K.authority()!=="local")return{type:"failed"};return h}}};return[{label:"ChatGPT Pro/Plus (browser)",type:"oauth",authorize:QX({hasCredential:B,openMenu:S,login:x(()=>U.authorizeBrowser())})},{label:"ChatGPT Pro/Plus (headless)",type:"oauth",authorize:x(()=>U.authorizeHeadless())},{label:"Manually enter API Key",type:"api"},...K?.enrolled()?[{label:EW,type:"oauth",authorize:async()=>({url:"",instructions:AW,method:"auto",callback:async()=>{if(await sJ(K.paths,K.name)!=="vault")return{type:"failed"};try{let j=JSON.parse(await qW(zX(),"utf8"));if(!j||typeof j!=="object"||Array.isArray(j)||Object.hasOwn(j,"openai"))return{type:"failed"}}catch(j){if(j.code!=="ENOENT")return{type:"failed"}}return{...$X,type:"success"}}})}]:[]]}var UY=["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 t6(Y){let J={};for(let X of UY)if(X in Y)J[X]=Y[X];for(let X of Object.keys(Y))if(!(X in J))J[X]=Y[X];return J}import{createHash as iW}from"node:crypto";import{createHash as CW,randomBytes as UX}from"node:crypto";import{chmod as wW,lstat as HX,mkdir as SW,open as IW,readdir as OX,rename as bW,unlink as LY,writeFile as kW}from"node:fs/promises";import{join as o1,resolve as HY}from"node:path";var xW=100,ZY="session-unknown",vW=300000,hW=60000,yW=600000,gW=/\.(body|meta|request|response)\.json$/,fW=/^\d{4}-\d{2}-\d{2}T\d{2}-\d{2}-\d{2}-\d{3}Z-\d+-\d{6,}-[a-zA-Z0-9._-]+$/,mW=/\.[a-f0-9]{24}\.partial$/;function _X(Y){let J=Y.replace(gW,"");if(J===Y||!fW.test(J))return;return J}function cW(Y){let J=Y.replace(mW,"");return J!==Y&&_X(J)!==void 0}async function ZX(Y){let{dir:J,maxBytes:X}=Y,Q=Y.now??Date.now(),G=Y.minAgeMs??hW,$=Y.partialStaleMs??yW,W={removed:0,freedBytes:0};if(!(X>0))return W;try{if(V6)await LX(J,"directory");if((await HX(J)).isSymbolicLink())return W;let K=new Set((Y.protectedPaths??[]).map((q)=>HY(q))),U=await OX(J,{withFileTypes:!0}),H=[];await Promise.all(U.map(async(q)=>{if(!q.isFile())return;let E=cW(q.name),S=E?void 0:_X(q.name);if(!E&&S===void 0)return;let x=o1(J,q.name);try{let j=await HX(x);if(!j.isFile())return;H.push({path:x,size:j.size,mtimeMs:j.mtimeMs,group:S})}catch{}}));let B=H.reduce((q,E)=>q+E.size,0),O=0,L=0,V=async(q)=>{try{await LY(q.path),B-=q.size,L+=q.size,O+=1}catch{}};for(let q of H){if(q.group!==void 0)continue;if(K.has(HY(q.path)))continue;if(Q-q.mtimeMs<$)continue;await V(q)}let F=new Map;for(let q of H){if(q.group===void 0)continue;let E=F.get(q.group)??{files:[],newest:0};E.files.push(q),E.newest=Math.max(E.newest,q.mtimeMs),F.set(q.group,E)}let P=[...F.entries()].sort(([q,E],[S,x])=>E.newest-x.newest||q.localeCompare(S));for(let[,q]of P){if(B<=X)break;if(Q-q.newest<G)continue;if(q.files.some((E)=>K.has(HY(E.path))))continue;for(let E of q.files)await V(E)}if(O>0)Y.logger?.debug("removed old dump files",{removed:O,freedBytes:L});return{removed:O,freedBytes:L}}catch(K){if(K instanceof e9&&K.code==="ERR_PRIVATE_FILES_SECURITY")throw K;return W}}async function uW(Y,J,X){if(V6)return FX(Y,J,{stagePath:`${Y}.${X?X():UX(12).toString("hex")}.partial`});for(let Q=0;;Q+=1){let G=`${Y}.${X?X():UX(12).toString("hex")}.partial`,$=!1,W;try{W=await IW(G,"wx",384),$=!0,await W.writeFile(J,"utf8"),await W.chmod(384),await W.close(),W=void 0,await bW(G,Y);return}catch(K){if(await W?.close().catch(()=>{}),$)await LY(G).catch(()=>{});if(K.code==="EEXIST"&&Q===0)continue;throw K}}}function VY(Y){return Y.length<=16?Y:`${Y.slice(0,12)}…`}function t9(Y,J){let X=Y.trim().replace(/[^a-zA-Z0-9._-]+/g,"-").replace(/^-+|-+$/g,"");if(!X)return J;return X.slice(0,80)}function VX(Y){return CW("sha256").update(Y).digest("hex")}function pW(Y){return Y.toLowerCase().replace(/[-_]/g,"")}function BX(Y){return Y!==null&&typeof Y==="object"&&!Array.isArray(Y)}function lW(Y,J){if(Y===void 0)return null;if(Y===J)return{changed:!1,firstByte:-1,lastPreviousByte:-1,lastCurrentByte:-1,previousBytes:Y.length,currentBytes:J.length};let X=0;while(X<Y.length&&X<J.length&&Y[X]===J[X])X++;let Q=Y.length-1,G=J.length-1;while(Q>=X&&G>=X&&Y[Q]===J[G])Q--,G--;return{changed:!0,firstByte:X,lastPreviousByte:Q,lastCurrentByte:G,changedPreviousBytes:Q-X+1,changedCurrentBytes:G-X+1,previousBytes:Y.length,currentBytes:J.length}}var dW=0;function PX(Y){let J=Y.enabled===!0,X=Y.pid??process.pid,Q=Y.now??Date.now,G=Y.logger,$=new Set((Y.secretKeys??[]).map(pW)),W=DX({extraSecretKeys:(A)=>$.has(A),extraValuePatterns:[...Y.secretPatterns??[]]}),K=new Set(Y.schemaKeys??["tools"]),U=new Map,H=()=>typeof Y.dir==="function"?Y.dir():Y.dir;function B(A){let g=W.redact({[A]:null})[A];return g===null?void 0:g}function O(A){if(Array.isArray(A))return A.map(O);if(BX(A)){let g={};for(let[r,i]of Object.entries(A)){let V0=B(r);if(K.has(r))g[r]=W.redactStrings(i);else if(V0!==void 0)g[r]=V0;else g[r]=O(i)}return g}return W.redactStrings(A)}function L(A){let g;try{g=JSON.parse(A)}catch{return{text:W.redactStrings(A),parsed:void 0}}let r=O(g),i=JSON.stringify(r);return{text:JSON.stringify(g)===i?A:i,parsed:BX(r)?r:void 0}}async function V(A,g,r,i){let V0=`-${t9(g,ZY)}-${t9(r,"channel")}`,B0;try{B0=await OX(A)}catch{return}let p=B0.filter((t)=>t.endsWith(".meta.json")&&t.includes(V0)).sort().reverse();for(let t of p)try{if(JSON.parse(await BY(o1(A,t),V6))?.baselineKey!==i)continue;return await BY(o1(A,t.replace(/\.meta\.json$/,".body.json")),V6)}catch(L0){if(L0 instanceof e9&&(V6||L0.code==="ERR_PRIVATE_FILES_SECURITY"))throw L0}return}function F(A,g){if(!U.has(A))while(U.size>=xW){let r=U.keys().next().value;if(r===void 0)break;U.delete(r)}U.set(A,g)}async function P(A){if(!J)return;let g=++dW,r=A.session?.trim()||ZY,i=H(),V0=new Date(Q()).toISOString(),B0=[V0.replace(/[:.]/g,"-"),String(X),String(g).padStart(6,"0"),t9(r,ZY),t9(A.channel,"channel"),...A.phase?[t9(A.phase,"phase")]:[]].join("-"),p=o1(i,B0),t={body:`${p}.body.json`,metadata:`${p}.meta.json`,request:`${p}.request.json`},L0=VX(`${A.channel}\x00${r}`);try{if(V6)await NX(i);else await SW(i,{recursive:!0,mode:448}),await wW(i,448);let v=U.get(L0),x0=v===void 0?void 0:"memory";if(v===void 0){if(v=await V(i,r,A.channel,L0),v!==void 0)x0="disk"}let T0=L(A.bodyText),K0={id:B0,createdAt:V0,pid:X,session:VY(r),channel:A.channel,...A.phase?{phase:A.phase}:{},accountId:A.accountId,status:A.status,error:A.error===void 0?void 0:W.redactStrings(A.error),baselineKey:L0,bodyBytes:Buffer.byteLength(A.bodyText,"utf8"),bodyHash:VX(A.bodyText),diff:lW(v,T0.text),baselineSource:x0,body:T0.parsed?{parseable:!0,...Y.summarize?.(T0.parsed)}:{parseable:!1},...A.meta?{extra:O(A.meta)}:{},files:t},s=O({url:A.url,method:A.method,accountId:A.accountId,headers:A.headers===void 0?void 0:Object.fromEntries(new Headers(A.headers).entries())}),P0=(d,y)=>V6?jX(d,y):kW(d,y,{encoding:"utf8",mode:384,flag:"wx"}),l=[[t.body,T0.text],[t.metadata,`${JSON.stringify(K0,null,2)}
|
|
2
|
-
`],[t.request,`${JSON.stringify(s,null,2)}
|
|
3
|
-
`]],I=await Promise.allSettled(l.map(([d,y])=>P0(d,y))),u=I.find((d)=>d.status==="rejected");if(u){if(Y.cleanupFailedDumps)await q(l,I);throw u.reason}return F(L0,T0.text),G?.debug("dumped request",{id:B0,session:VY(r),body:t.body}),C(i,Object.values(t)),{id:B0,files:t,responseFile:`${p}.response.json`}}catch(v){if(v instanceof e9&&(V6||v.code==="ERR_PRIVATE_FILES_SECURITY"))throw v;G?.warn("request dump failed",{session:VY(r),error:v instanceof Error?v.message:String(v)});return}}async function q(A,g){await Promise.all(A.map(async([r],i)=>{let V0=g[i];if(V0?.status==="rejected"&&V0.reason?.code==="EEXIST")return;await LY(r).catch(()=>{})}))}let E=Y.maxBytes??0,S=Y.sweepIntervalMs??vW,x=0;function j(A,g){return{dir:A,maxBytes:E,protectedPaths:g,now:Q(),minAgeMs:Y.sweepMinAgeMs,partialStaleMs:Y.partialStaleMs,logger:G}}function C(A,g){if(!(E>0))return;let r=Q();if(r-x<S)return;x=r,ZX(j(A,g))}async function h(A,g){if(!A)return;let r=O({status:g.status,requestId:g.requestId,usage:g.usage,...g.fields,complete:g.complete??!0});try{return await uW(A.responseFile,`${JSON.stringify(r,null,2)}
|
|
4
|
-
`,Y.stageName),A.responseFile}catch(i){if(i instanceof e9&&(V6||i.code==="ERR_PRIVATE_FILES_SECURITY"))throw i;G?.warn("response dump failed",{id:A.id,error:i instanceof Error?i.message:String(i)});return}}return{isEnabled:()=>J,setEnabled:(A)=>{J=A},dump:P,dumpResponse:h,sweep:(A)=>ZX(j(H(),A))}}var MX=H0("dump"),h6="x-cortexkit-openai-auth-dump-session",nW=["chatgpt-account-id","email","org_name","organization_name"],oW=["tools"];function NY(Y){return iW("sha256").update(JSON.stringify(Y)).digest("hex")}function rW(Y){return Y!=null&&typeof Y==="object"&&"type"in Y&&typeof Y.type==="string"?Y.type:"unknown"}function sW(Y){let J=Array.isArray(Y.input)?Y.input:[],X=Array.isArray(Y.tools)?Y.tools:[],Q=Y.client_metadata!=null&&typeof Y.client_metadata==="object"&&!Array.isArray(Y.client_metadata)?Y.client_metadata:void 0;return{model:typeof Y.model==="string"?Y.model:void 0,stream:Y.stream,generate:Y.generate,store:Y.store,previousResponseID:typeof Y.previous_response_id==="string"?Y.previous_response_id:void 0,promptCacheKey:typeof Y.prompt_cache_key==="string"?Y.prompt_cache_key:void 0,reasoning:Y.reasoning,inputCount:J.length,inputHash:NY(J),inputBytes:JSON.stringify(J).length,firstInputHash:J[0]===void 0?null:NY(J[0]),toolsCount:X.length,toolTypes:X.map(rW),toolsHash:NY(X),clientMetadataKeys:Q?Object.keys(Q).sort():[]}}function aW(){return PX({dir:()=>i0().dumpDir,logger:MX,secretKeys:nW,schemaKeys:oW,summarize:sW})}var qX=aW();async function A9(Y){let J=i0().dump===!0;if(qX.setEnabled(J),!J)return;let X=typeof Y.bodyText==="function"?Y.bodyText():Y.bodyText;await qX.dump({session:Y.sessionID,channel:Y.transport,phase:Y.phase,bodyText:X,accountId:Y.accountId,url:Y.url,method:Y.method,headers:Y.headers,status:Y.status,error:Y.error})}async function e6(Y){if(!i0().dump)return;MX.debug("diagnostic",Y)}function T9(Y){return JSON.stringify(jY(Y))??"undefined"}function jY(Y){if(Array.isArray(Y))return Y.map(jY);if(!n(Y))return Y;return Object.fromEntries(Object.keys(Y).sort().map((J)=>[J,jY(Y[J])]))}var tW=512,eW=2097152;function FY(Y,J){if(typeof Y==="function"||typeof J==="function")return!1;if(J!==null&&typeof J==="object"&&Object.hasOwn(J,"toJSON")&&typeof J.toJSON==="function")return!1;if(Y===J)return!0;if(Array.isArray(Y))return Array.isArray(J)&&Y.length===J.length&&Y.every(($,W)=>FY($,J[W]));if(Y===null||J===null||typeof Y!=="object"||typeof J!=="object"||Array.isArray(J))return!1;let X=Y,Q=J,G=Object.keys(X);return G.length===Object.keys(Q).length&&G.every(($)=>Object.prototype.propertyIsEnumerable.call(Q,$)&&FY(X[$],Q[$]))}function Y9(Y,J){let X=[],Q=[],G=0;for(let $=0;$<Y.length;$++){let W=J?.texts[$],K=W!==void 0&&FY(J?.snapshots[$],Y[$]),U=K?W:T9(Y[$]);X.push(U),Q.push(K?J?.snapshots[$]:U==="undefined"?void 0:JSON.parse(U)),G+=U.length}return{texts:X,snapshots:Q,retainable:Y.length<=tW&&G<=eW}}function Y1(Y){return Y.retainable?Y:void 0}function J1(Y,J){if(Y.texts.length>J.texts.length)return;for(let X=0;X<Y.texts.length;X++)if(Y.texts[X]!==J.texts[X])return;return Y.texts.length}function E6(){let Y=crypto.getRandomValues(new Uint8Array(16)),J=Date.now();Y[0]=J/1099511627776&255,Y[1]=J/4294967296&255,Y[2]=J/16777216&255,Y[3]=J/65536&255,Y[4]=J/256&255,Y[5]=J&255,Y[6]=(Y[6]??0)&15|112,Y[8]=(Y[8]??0)&63|128;let X=Array.from(Y,(Q)=>Q.toString(16).padStart(2,"0")).join("");return`${X.slice(0,8)}-${X.slice(8,12)}-${X.slice(12,16)}-${X.slice(16,20)}-${X.slice(20)}`}var EX=new Set(["gpt-5.6-sol","gpt-5.6-terra","gpt-5.6-luna","gpt-6-astra","gpt-6-sol","gpt-6-luna","gpt-6.1-sol"]),Yz="terminal_resize_reflow",r1="0.159.0",AX=`codex_exec/${r1} (Debian 12.0.0; aarch64) unknown (codex_exec; ${r1})`,Jz="seccomp",X1="x-openai-auth-agent";function Xz(Y){if(typeof Y!=="string")return;try{let J=JSON.parse(Y);return typeof J==="object"&&J!==null&&!Array.isArray(J)?J:void 0}catch{return}}function Q1(Y,J){return n(Y)&&(Y.type==="message"||("role"in Y))&&Y.role===J}function Qz(Y,J,X){if(!Y.input)return J.length>0;let Q=Y.canonicalInput??Y9(Y.input);if(J1(Q,X)===void 0)return!0;return J.slice(Y.input.length).some(($)=>Q1($,"user")||Q1($,"developer"))}function Gz(Y,J,X){let Q=Array.isArray(J?.input)?J.input:void 0,G=Q?Y9(Q,Y.canonicalInput):void 0;if(Q&&G&&(Qz(Y,Q,G)||!Y.turnID))Y.turnID=(X?.uuid??E6)(),Y.turnStartedAt=(X?.now??Date.now)();else if(!Y.turnStartedAt)Y.turnStartedAt=(X?.now??Date.now)();if(Q&&G)Y.input=Q.slice(),Y.canonicalInput=Y1(G)}function TX(Y){let J=Y.headers.get(X1);if(Y.headers.delete(X1),!Y.metadata)return{init:Y.init};let X=Xz(Y.init?.body),Q=Y.runtime?.now??Date.now;if(!Y.skipTurnUpdate){if(!Y.websocket)Gz(Y.metadata,X,Y.runtime);else if(!Y.metadata.turnStartedAt)Y.metadata.turnStartedAt=Q();if(!Y.metadata.turnStartedAt)Y.metadata.turnStartedAt=Q()}let G=JSON.stringify({session_id:Y.metadata.threadID,thread_id:Y.metadata.threadID,thread_source:"user",turn_id:Y.metadata.turnID,sandbox:Jz,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",Yz),Y.headers.set("x-codex-turn-metadata",G),Y.headers.set("user-agent",AX),Y.headers.set("version",r1),Y.dumpSessionID)Y.headers.set(h6,Y.dumpSessionID);let $=X;if(!$)return{init:Y.init};let W=Y.responsesLite&&typeof $.model==="string"&&EX.has($.model);if(W&&!Y.websocket)Y.headers.set("x-openai-internal-codex-responses-lite","true");if($.prompt_cache_key=Y.metadata.threadID,$.parallel_tool_calls??=!0,Array.isArray($.tools))$.tools=$.tools.map($z);if(Y.applyEffort?.($,Y.metadata,J),W)Y.rewriteLite($);let K={...typeof $.client_metadata==="object"&&$.client_metadata!==null?$.client_metadata:{},"x-codex-installation-id":Y.installationID,"x-codex-window-id":Y.metadata.windowID};if(Y.websocket){if(K["x-codex-turn-metadata"]=G,K["x-codex-ws-stream-request-start-ms"]=String(Q()),W)K.ws_request_header_x_openai_internal_codex_responses_lite="true"}return $.client_metadata=K,Y.headers.delete("content-length"),Y.headers.delete("Content-Length"),{init:{...Y.init,body:JSON.stringify(t6($))}}}function $z(Y){if(!n(Y)||Y.type!=="function")return Y;let J=n(Y.parameters)&&"$schema"in Y.parameters?(()=>{let{$schema:U,...H}=Y.parameters;return H})():Y.parameters,{type:X,name:Q,description:G,strict:$,parameters:W,...K}=Y;return{type:X,name:Q,description:G,strict:$??!1,parameters:J,...K}}import{mkdirSync as Wz,readFileSync as zz,renameSync as Kz,writeFileSync as Uz}from"node:fs";import{dirname as Hz}from"node:path";function Zz(Y){let J=new Map,X=JSON.parse(zz(Y,"utf8"));if(!n(X.sessions))return J;for(let[Q,G]of Object.entries(X.sessions)){if(!n(G)||typeof G.threadID!=="string")continue;J.set(Q,G.threadID)}return J}function RX(Y,J=E6){let X=new Map,Q;try{Q=Zz(Y)}catch{return X}for(let[G,$]of Q)X.set(G,{threadID:$,turnID:J(),windowID:`${$}:0`});return X}function Vz(Y,J){let X=`${Y}.tmp-${process.pid}`;Wz(Hz(Y),{recursive:!0});let Q={version:1,sessions:Object.fromEntries([...J].map(([G,$])=>[G,{threadID:$}]))};Uz(X,`${JSON.stringify(Q,null,2)}
|
|
5
|
-
`,"utf8"),Kz(X,Y)}function CX(Y,J){try{Vz(Y,[...J.entries()].map(([X,Q])=>[X,Q.threadID]))}catch{}}var DY={rpcRoot:"openai-auth",directoryPrefix:bX,registrationSessionId:"process"};function s1(Y,J){wX(DY,Y,J)}function kX(Y=0,J){return SX(DY,Y,J)}function xX(Y){return IX(DY,Y)}var a1=H0("commands");function R9(Y){return{configPath:Y.accountStoragePath,statePath:Y.accountStatePath}}function OY(Y){return`${String(Y.startHour).padStart(2,"0")}-${String(Y.endHour).padStart(2,"0")}`}function Bz(Y){let J=/^(\d{1,2})-(\d{1,2})$/.exec(Y.trim());if(!J)return{ok:!1,reason:"expected HH-HH, e.g. 9-18 or 22-6"};let X=Number(J[1]),Q=Number(J[2]);if(X>23||Q>23||X===Q)return{ok:!1,reason:"hours must be integers 0-23 and start ≠ end"};return{ok:!0,startHour:X,endHour:Q}}var Lz="Sustain keeps main-agent sessions warming past the idle cap for this process. Clock windows still apply.\n\nBefore 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.";function Nz(Y){let J=(X)=>o6(Y.store(),q6(R9(Y)),(Q)=>{let G={...Q.cacheKeep??{}};X(G),Q.cacheKeep=G});return{title:"Cache",build:async()=>{let X=Y.cacheKeepManager;if(!X)return{lines:["Keep-warm unavailable"]};let Q=e1(await Y.loadAccounts(R9(Y))),G=Q?.enabled===!0,$=Q?.subagents===!0,W=X.status(),K=W.window?OY(W.window):"always (no window)";return{lines:[`Keep-warm ${G?"on":"off"} · ${W.tracked===0?"no sessions":`${W.tracked} session${W.tracked===1?"":"s"}`}`,`Timer ${W.running?"armed":"idle"} · subagents ${$?"on":"off"} · sustain ${W.sustain?"on":"off"}`,`Window ${K}`,...Y.cacheKeepNotice?[Y.cacheKeepNotice]:[],`TTL ${Math.round(W.ttlMs/1000)}s · lead ${Math.round(W.leadMs/1000)}s · idle cap ${Math.round(W.maxIdleWarmMs/60000)}min (subagents ${Math.round(W.maxSubagentIdleMs/60000)}min)`],items:W.targets.map((U)=>({id:U.sessionKey,label:U.sessionKey,group:"Sessions",detail:[U.accountId??"main",`expires in ${Math.ceil((U.cacheExpiresAt-W.generatedAt)/1000)}s`,...U.lastWarmedAt?[`last warm ${Math.ceil((W.generatedAt-U.lastWarmedAt)/1000)}s ago`]:[],...U.backoffUntil&&U.backoffUntil>W.generatedAt?[`backoff ${Math.ceil((U.backoffUntil-W.generatedAt)/1000)}s`]:[]].join(" · ")})),actions:[{id:"enabled",label:G?"Turn keep-warm off":"Turn keep-warm on",knobs:[{kind:"toggle",id:"enabled",label:"Keep-warm",value:!G}],run:async({values:U})=>{let H=U.enabled===!0;if(await J((B)=>{B.enabled=H}),Y.setCacheKeepEnabled?.(H),H)X.start();else X.stop();return a1.info(H?"cachekeep enabled":"cachekeep disabled"),H?`Keep-warm is on. TTL ${Math.round(W.ttlMs/1000)}s, idle cap ${Math.round(W.maxIdleWarmMs/60000)}min.`:"Keep-warm is off."}},{id:"subagents",label:$?"Stop warming subagent sessions":"Warm subagent sessions too",knobs:[{kind:"toggle",id:"subagents",label:"Subagent warming",value:!$}],run:async({values:U})=>{let H=U.subagents===!0;return await J((B)=>{B.subagents=H}),Y.setCacheKeepSubagents?.(H),`Subagent warming is ${H?"on":"off"}.`}},{id:"sustain",label:W.sustain?"Stop sustaining main sessions":"Sustain main sessions past the idle cap",knobs:[{kind:"toggle",id:"sustain",label:"Sustain",value:!W.sustain}],run:async({values:U})=>{let H=U.sustain===!0;return await J((B)=>{B.sustain=H}),Y.setCacheKeepSustain?.(H),H?Lz:"Main-agent sessions again stop warming at the configured idle cap."}},{id:"window",label:"Set the warm window",description:"Warm only between these local hours, e.g. 9-18 or 22-6. Leave it empty to warm at any hour.",knobs:[{kind:"text",id:"window",label:"Window (HH-HH)",placeholder:"9-18",...W.window?{value:OY(W.window)}:{}}],run:async({values:U})=>{let H=U.window;if(typeof H!=="string"||H.trim()==="")return await J((V)=>{delete V.startHour,delete V.endHour}),Y.setCacheKeepWindow?.(void 0),"Warm window cleared: keep-warm warms at any hour (within idle caps).";let B=Bz(H);if(!B.ok)return{ok:!1,text:`Invalid window: ${B.reason}`};let{startHour:O,endHour:L}=B;return await J((V)=>{V.startHour=O,V.endHour=L}),Y.setCacheKeepWindow?.({startHour:O,endHour:L}),`Warming limited to ${OY(B)} local hours.`}}]}}}}var vX=["error","warn","info","debug","trace"];function jz(Y){return{title:"Diagnostics",build:async()=>{let J=i0(),Q=(await Y.loadAccounts(R9(Y)))?.logging?.level??"info";return{lines:[`Dumps ${J.dump?"on":"off"}`,`Dump directory: ${J.dumpDir}`,`Log level: ${Q}`],actions:[{id:"dump",label:J.dump?"Turn request dumps off":"Turn request dumps on",knobs:[{kind:"toggle",id:"enabled",label:"Request dumps",value:!J.dump}],run:async({values:G})=>{let $=G.enabled===!0;await o6(Y.store(),q6(R9(Y)),(K)=>{K.dump={...K.dump??{},enabled:$}});let W=CJ();return a1.info($?"request dump enabled":"request dump disabled"),$?`Request dumps are on, written to ${W.dumpDir}.
|
|
6
|
-
|
|
7
|
-
Body dumps may contain prompt and session content. Turn this off after debugging.`:"Request dumps are off."}},{id:"logging",label:"Set the log level",knobs:[{kind:"choice",id:"level",label:"Level",choices:vX.map((G)=>({value:G,label:G})),value:vX.includes(Q)?Q:"info"}],run:async({values:G})=>{let $=String(G.level);return await o6(Y.store(),q6(R9(Y)),(W)=>{W.logging={...W.logging??{},level:$}}),t1($),a1.info("log level changed",{level:$}),`Log level set to ${$}.`}}]}}}}async function Fz(Y){let J=await Y.store().read(),X=J.status==="ready"?J.rows:[];return[...new Set(["main",...X.filter((Q)=>Q.enabled&&Q.type==="oauth").map((Q)=>Q.id)])]}function yX(Y){let J=R9(Y),X=q6(J),Q=Y.quotaManager&&Y.resolveResetTarget&&Y.refreshResetTargetQuota&&Y.fetchImpl&&Y.now&&Y.randomUUID?XY({configPath:J.configPath,statePath:J.statePath,quotaManager:Y.quotaManager,loadAccounts:Y.loadAccounts,mutateAccounts:e8(Y.store(),X),resolveResetTarget:Y.resolveResetTarget,refreshResetTargetQuota:Y.refreshResetTargetQuota,fetchImpl:Y.fetchImpl,now:Y.now,randomUUID:Y.randomUUID,accountKeys:()=>Fz(Y)}):void 0,G=Y.beginAccountLogin;return QY({store:Y.store(),...Y.readOnly?{readOnly:!0}:{},...Y.allowAction?{allowAction:Y.allowAction}:{},...Y.unavailableSections?{unavailableSections:Y.unavailableSections}:{},...Y.vault?{vault:Y.vault}:{},...Y.now?{now:Y.now}:{},extraLocks:X,rowLocks:($)=>D9(J,$),migration:Y.migration,...G?{login:{begin:($)=>G({...$,version:Y.packageVersion}),mainIdentity:async()=>{let $=await Y.store().read();if($.status!=="ready")return;return $.rows.find((W)=>W.id==="main")?.identity}}}:{},protect:($,W)=>u1($,W),...Y.refreshAllQuota?{quotaCheck:async($)=>{if($.length===1){let U=Y.store();for(let H of $)await U.requestReading(H);await U.pullsSettled();return}let K=(await Y.refreshAllQuota?.()??[]).filter((U)=>!U.ok);if(K.length>0)throw new hX("quota-check-failed",K.map((U)=>U.permanent?`${U.account}: sign-in no longer accepted — remove and add this account again`:`${U.account}: fetch failed — check again to retry`).join(`
|
|
8
|
-
`))}}:{},cache:Nz(Y),diagnostics:jz(Y),extras:[...Q?[Q]:[],YY({...Y.getStickyRouting?{getPin:Y.getStickyRouting}:{},...Y.clearStickyRouting?{clearPin:Y.clearStickyRouting}:{}}),...Y.vault?[JY({vault:Y.vault,changed:Y.afterWrite})]:[]],afterApply:async()=>{await Y.afterWrite?.(),await Y.refreshSidebar?.().catch(()=>{})}})}function gX(Y){return(J,X="info")=>{a1.info("menu notification",{sessionId:Y,kind:X}),s1({command:k6,notify:{message:J,kind:X}},Y)}}function fX(Y,J){return yX(Y).open({...J!==void 0?{sessionId:J}:{},notify:gX(J)})}function mX(Y,J){return yX(Y).apply(J,{...J.sessionId!==void 0?{sessionId:J.sessionId}:{},notify:gX(J.sessionId)})}function cX(Y){let J=[`## ${Y.title}`];for(let X of Y.sections){J.push("",`### ${X.title}`);for(let Q of X.lines)J.push(Q);for(let Q of X.items){let G=Q.detail??Q.status;J.push(`- ${Q.label}${G?`: ${G}`:""}`)}}return J.push("","Open the OpenCode TUI to change these settings."),J.join(`
|
|
9
|
-
`)}var Dz=300000,Oz=30000,uX=240000,_z="bg-quota-refresh",Pz=120000;function _Y(Y,J){return Y8({name:_z,ttlMs:Pz,path:Y,renew:!0,...J})}function pX(Y,J=C9,X=()=>_Y(Y.paths.configPath)){return qz(Y,J,X)}function qz(Y,J,X){return lX(async()=>J({...Y,respectBackoff:!0,skipFresherThanMs:uX}),X,[])}async function lX(Y,J,X){let Q;try{Q=await J()}catch{Q=void 0}if(Q===null)return X;try{return await Y()}finally{await Q?.release().catch(()=>{})}}function dX(Y,J,X){return lX(async()=>{return await Y.refreshDueTokens(J),Y.pollRows(J,{skipReadWithinMs:uX})},X,[])}class PY{setIntervalFn;clearIntervalFn;random;onError;run;timer;tickPromise;stopped=!1;constructor(Y={}){this.setIntervalFn=Y.setIntervalFn??setInterval,this.clearIntervalFn=Y.clearIntervalFn??clearInterval,this.random=Y.random??Math.random,this.onError=Y.onError}start(Y,J=this.onError){if(this.run=Y,this.onError=J,this.stopped=!1,this.timer)return;let X=Math.round((this.random()*2-1)*Oz);if(this.timer=this.setIntervalFn(()=>{let Q=this.run;if(this.stopped||!Q||this.tickPromise)return;let G=Q().catch(($)=>{try{this.onError?.($)}catch{}}).finally(()=>{if(this.tickPromise===G)this.tickPromise=void 0});this.tickPromise=G},Dz+X),"unref"in this.timer)this.timer.unref()}stop(){if(this.stopped=!0,this.run=void 0,!this.timer)return;this.clearIntervalFn(this.timer),this.timer=void 0}isStopped(){return this.stopped}}function qY(Y){if(!Y||typeof Y!=="object")return;let J=Y,X=Number(J.startHour),Q=Number(J.endHour);if(!Number.isInteger(X)||!Number.isInteger(Q)||X<0||X>23||Q<0||Q>23||X===Q)return;return{startHour:X,endHour:Q}}function G1(Y,J=new Date){if(!Y)return!1;let X=J.getHours();if(Y.startHour<Y.endHour)return X>=Y.startHour&&X<Y.endHour;return X>=Y.startHour||X<Y.endHour}var Mz=300000,Ez=3600000,Az=1800000,Tz=60000,Rz=32,Cz=8388608,wz=30000,Sz=600000;function B6(Y,J){return typeof Y==="number"&&Number.isFinite(Y)&&Y>0?Y:J}function J8(Y){return Y instanceof Error?Y.message:String(Y)}class $1{targets=new Map;adapter;now;log;ttlMs;leadMs;maxIdleWarmMs;maxSubagentIdleMs;tickIntervalMs;maxTargets;maxBytes;warmTimeoutMs;backoff;getWindow;getSustain;setIntervalImpl;clearIntervalImpl;timer=null;startedAt=null;totalBytes=0;tickPromise=null;disposed=!1;abortController=new AbortController;constructor(Y){this.adapter=Y.adapter,this.now=Y.now,this.log=Y.logger,this.ttlMs=B6(Y.ttlMs,Mz),this.tickIntervalMs=B6(Y.tickIntervalMs,Tz),this.leadMs=B6(Y.leadMs,this.tickIntervalMs+15000),this.maxIdleWarmMs=B6(Y.maxIdleWarmMs,Ez),this.maxSubagentIdleMs=B6(Y.maxSubagentIdleMs,Az),this.maxTargets=B6(Y.maxTargets,Rz),this.maxBytes=B6(Y.maxBytes,Cz),this.warmTimeoutMs=B6(Y.warmTimeoutMs,wz),this.backoff=Y.backoffMs??Sz,this.getWindow=Y.getWindow,this.getSustain=Y.getSustain,this.setIntervalImpl=Y.setIntervalImpl??globalThis.setInterval,this.clearIntervalImpl=Y.clearIntervalImpl??globalThis.clearInterval}track(Y){let{sessionKey:J,bodyText:X}=Y;this.pruneStale();let Q=Buffer.byteLength(X,"utf8");if(Q>this.maxBytes)return this.log?.debug("cachekeep track skipped (body exceeds maxBytes)",{sessionKey:J,bodyBytes:Q,maxBytes:this.maxBytes}),{tracked:!1,reason:"body-exceeds-max-bytes"};let G=this.getWindow?.();if(G&&!G1(G,new Date(this.now())))return this.log?.debug("cachekeep track skipped (outside window)",{sessionKey:J,startHour:G.startHour,endHour:G.endHour}),{tracked:!1,reason:"outside-window"};this.drop(J);while(this.targets.size>=this.maxTargets||this.totalBytes+Q>this.maxBytes&&this.targets.size>0){let B=this.leastRecentlyTouched();if(B===void 0)break;this.log?.debug("cachekeep evicted least recently used target",{sessionKey:B}),this.drop(B)}let $=Y.isSubagent===!0,W=Y.accountId||void 0,K=this.adapter.profile?.({bodyText:X,isSubagent:$,accountId:W,meta:Y.meta}),U=B6(K?.ttlMs,this.ttlMs),H=this.now();return this.targets.set(J,{bodyText:X,bodyBytes:Q,accountId:W,isSubagent:$,meta:Y.meta,ttlMs:U,maxWarms:K?.maxWarms!==void 0&&K.maxWarms>0?Math.floor(K.maxWarms):void 0,maxIdleMs:K?.maxIdleMs!==void 0?B6(K.maxIdleMs,this.idleDefault($)):void 0,cacheExpiresAt:H+U,lastRealRequestAt:H,failures:0,warmCount:0}),this.totalBytes+=Q,this.log?.debug("cachekeep captured target",{sessionKey:J,accountId:W}),this.start(),{tracked:!0}}remove(Y){if(this.drop(Y))this.log?.debug("cachekeep removed target",{sessionKey:Y})}start(){if(this.disposed=!1,this.timer)return;if(this.startedAt=this.now(),this.timer=this.setIntervalImpl(()=>{this.tick().catch((Y)=>{this.log?.warn("cachekeep tick failed",{error:J8(Y)})})},this.tickIntervalMs),typeof this.timer==="object"&&"unref"in this.timer)this.timer.unref();this.log?.debug("cachekeep started",{ttlMs:this.ttlMs,leadMs:this.leadMs,maxIdleWarmMs:this.maxIdleWarmMs})}stop(){if(this.disposed=!0,this.abortController.abort(),this.abortController=new AbortController,this.timer)this.clearIntervalImpl(this.timer),this.timer=null;this.startedAt=null,this.targets.clear(),this.totalBytes=0,this.log?.debug("cachekeep stopped")}status(){let Y=this.getWindow?.();return{running:this.timer!==null,tracked:this.targets.size,totalBytes:this.totalBytes,generatedAt:this.now(),startedAt:this.startedAt,ttlMs:this.ttlMs,leadMs:this.leadMs,maxIdleWarmMs:this.maxIdleWarmMs,maxSubagentIdleMs:this.maxSubagentIdleMs,sustain:this.getSustain?.()===!0,...Y?{window:Y}:{},targets:[...this.targets].map(([J,X])=>({sessionKey:J,accountId:X.accountId,isSubagent:X.isSubagent,cacheExpiresAt:X.cacheExpiresAt,lastRealRequestAt:X.lastRealRequestAt,...X.lastWarmedAt!==void 0?{lastWarmedAt:X.lastWarmedAt}:{},...X.backoffUntil!==void 0?{backoffUntil:X.backoffUntil}:{},failures:X.failures,warmCount:X.warmCount,ttlMs:X.ttlMs,bodyBytes:X.bodyBytes}))}}tick(){if(this.tickPromise)return this.tickPromise;let Y=this.runTick().finally(()=>{if(this.tickPromise===Y)this.tickPromise=null});return this.tickPromise=Y,Y}async runTick(){this.pruneStale();let Y=this.getWindow?.();if(Y&&!G1(Y,new Date(this.now())))return;let J=this.now(),X=J+this.leadMs;for(let[Q,G]of[...this.targets]){if(this.disposed)return;if(this.targets.get(Q)!==G)continue;if(G.backoffUntil!==void 0&&J<G.backoffUntil)continue;if(G.cacheExpiresAt>X)continue;await this.warm(Q,G)}}retireIfExpired(Y,J){if(this.now()<J.cacheExpiresAt)return!1;return this.log?.debug("cachekeep retired target (cache lifetime ended)",{sessionKey:Y,accountId:J.accountId,cacheExpiresAt:J.cacheExpiresAt,failures:J.failures}),this.drop(Y),!0}isCurrent(Y,J){return!this.disposed&&this.targets.get(Y)===J}view(Y,J){return{sessionKey:Y,accountId:J.accountId,bodyText:J.bodyText,isSubagent:J.isSubagent,meta:J.meta,warmCount:J.warmCount,ttlMs:J.ttlMs}}fail(Y,J,X,Q={}){if(!this.isCurrent(Y,J))return;J.failures+=1;let G=typeof this.backoff==="function"?this.backoff({sessionKey:Y,failures:J.failures}):this.backoff;J.backoffUntil=this.now()+(Number.isFinite(G)&&G>0?G:0),this.log?.warn(X,{sessionKey:Y,accountId:J.accountId,failures:J.failures,backoffUntil:J.backoffUntil,...Q})}async warm(Y,J){if(this.retireIfExpired(Y,J))return;let X=this.view(Y,J);if(this.adapter.activeAccount){let B;try{B=await this.adapter.activeAccount(Y,X)}catch(O){this.fail(Y,J,"cachekeep skip (active account unknown)",{error:J8(O)});return}if(!this.isCurrent(Y,J))return;if(B!==void 0&&B!==J.accountId){this.log?.debug("cachekeep dropped target (session changed account)",{sessionKey:Y,accountId:J.accountId,activeAccountId:B}),this.drop(Y);return}}let Q;try{Q=await this.adapter.buildBody(X)}catch(B){this.fail(Y,J,"cachekeep skip (replay body unbuildable)",{error:J8(B)});return}if(!this.isCurrent(Y,J))return;if(this.retireIfExpired(Y,J))return;let G=iX([AbortSignal.timeout(this.warmTimeoutMs),this.abortController.signal]),$=G.signal,W,K="";try{W=await this.adapter.send({target:X,body:Q,signal:$}),K=await W.text().catch(()=>"")}catch(B){this.fail(Y,J,"cachekeep failed",{error:J8(B)});return}finally{G.dispose()}if(!this.isCurrent(Y,J))return;if(!W.ok){this.fail(Y,J,"cachekeep failed",{status:W.status,responseBody:K.slice(0,600)});return}let U;try{U=this.adapter.readUsage?.({target:X,response:W,text:K})}catch{}let H=this.now();if(J.cacheExpiresAt=H+J.ttlMs,J.lastWarmedAt=H,J.backoffUntil=void 0,J.failures=0,J.warmCount+=1,this.log?.debug("cachekeep fired",{sessionKey:Y,accountId:J.accountId,warmCount:J.warmCount,...U}),J.maxWarms!==void 0&&J.warmCount>=J.maxWarms)this.log?.debug("cachekeep retired target (warm cap reached)",{sessionKey:Y,warmCount:J.warmCount}),this.drop(Y)}idleDefault(Y){return Y?this.maxSubagentIdleMs:this.maxIdleWarmMs}pruneStale(){let Y=this.now(),J=this.getSustain?.()===!0;for(let[X,Q]of[...this.targets]){if(this.retireIfExpired(X,Q))continue;if(J&&!Q.isSubagent)continue;let G=Q.maxIdleMs??this.idleDefault(Q.isSubagent);if(Q.lastRealRequestAt>=Y-G)continue;this.log?.debug("cachekeep pruned idle target",{sessionKey:X,accountId:Q.accountId,lastRealRequestAt:Q.lastRealRequestAt,maxIdleMs:G}),this.drop(X)}}leastRecentlyTouched(){let Y,J=Number.POSITIVE_INFINITY;for(let[X,Q]of this.targets){let G=Math.max(Q.lastRealRequestAt,Q.lastWarmedAt??0);if(G<J)Y=X,J=G}return Y}drop(Y){let J=this.targets.get(Y);if(!J)return!1;return this.totalBytes-=J.bodyBytes,this.targets.delete(Y),!0}}function MY(Y){if(typeof Y!=="string")return!1;try{let J=JSON.parse(Y);return n(J)&&n(J.client_metadata)&&J.client_metadata.ws_request_header_x_openai_internal_codex_responses_lite==="true"}catch{return!1}}function EY(Y){if(typeof Y!=="string")return Y;try{let J=JSON.parse(Y);if(!n(J)||!n(J.client_metadata))return Y;if(!(("x-codex-turn-metadata"in J.client_metadata)||("x-codex-ws-stream-request-start-ms"in J.client_metadata)||("ws_request_header_x_openai_internal_codex_responses_lite"in J.client_metadata)))return Y;let X={...J.client_metadata};return delete X["x-codex-turn-metadata"],delete X["x-codex-ws-stream-request-start-ms"],delete X.ws_request_header_x_openai_internal_codex_responses_lite,JSON.stringify({...J,client_metadata:X})}catch{return Y}}function X8(Y){if(Y?.method?.toUpperCase()!=="POST")return Y;let J=new Headers(Y.headers);if(J.set("accept","text/event-stream"),J.set("content-type","application/json"),MY(Y.body))J.set("x-openai-internal-codex-responses-lite","true");return{...Y,headers:J,body:EY(Y.body)}}var Oj=Object.freeze({maxTargets:32,maxBytes:8388608});function oX(Y){if(!Y.enabled||typeof Y.body!=="string")return;let J=Y.headers.has("x-parent-session-id");if(J&&!Y.includeSubagents)return;let X=Y.headers.get("session-id")??Y.headers.get("x-opencode-session")??Y.headers.get("x-session-affinity")??void 0;if(!X)return;let Q={};for(let G 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 $=Y.headers.get(G);if($)Q[G]=$}return{sessionKey:X,bodyText:Y.body,replayHeaders:Q,isSubagent:J}}function rX(Y){return qY(Y?.cachekeep)}var AY=1800000,Iz=2,bz=2*AY+900000,kz=/^gpt-(\d+)(?:\.(\d+))?(?:-|$)/;function xz(Y){try{let X=JSON.parse(Y).model;if(typeof X!=="string")return!1;let Q=kz.exec(X);if(!Q)return!1;let G=Number(Q[1]),$=Q[2]===void 0?0:Number(Q[2]);return G>5||G===5&&$>=6}catch{return!1}}function vz(Y){if(!xz(Y.bodyText))return;if(!Y.isSubagent)return{ttlMs:AY};return{ttlMs:AY,maxWarms:Iz,maxIdleMs:bz}}function hz(Y){let X=JSON.parse(Y);return X.store=!1,delete X.max_output_tokens,delete X.max_tokens,delete X.max_completion_tokens,JSON.stringify(X)}function TY(){return{input_tokens:0,output_tokens:0,cached_tokens:0,hit_rate:null}}function sX(Y){if(!Y||typeof Y!=="object")return TY();let J=Y,X=Number(J.input_tokens)||Number(J.prompt_tokens)||0,Q=Number(J.output_tokens)||Number(J.completion_tokens)||0,G=J.input_tokens_details??J.prompt_tokens_details,$=Number(G?.cached_tokens)||Number(J.cached_tokens)||0,W=X>0?$/X:null;return{input_tokens:X,output_tokens:Q,cached_tokens:$,hit_rate:W}}function yz(Y){try{let J=JSON.parse(Y);return sX(J.usage)}catch{return TY()}}function gz(Y){let J,X=[],Q,G=()=>{if(!X.length)return;let $=X.join(`
|
|
10
|
-
`).trim();X=[];let W=J;if(J=void 0,!$||$==="[DONE]")return;try{let K=JSON.parse($),U=K.type??W;if(U!=="response.completed"&&U!=="response.done")return;let H=K.response;Q=sX(H?.usage??K.usage)}catch{}};for(let $ of Y.split(/\r?\n/)){if($===""){G();continue}if($.startsWith("event:")){J=$.slice(6).trim();continue}if($.startsWith("data:"))X.push($.slice(5).trim())}return G(),Q??TY()}function aX(Y,J,X=Date.now()){if(!J)return;if(Y.route==="sticky-balanced"){let G=Y.stickyAssignments?.[L6(J)];if(!G)return;if(G.lastSeenAt<X-nX)return;return G.accountId}let Q=Y.activeRouting?.[J];if(!Q||Q.route!==Y.route)return;return Q.activeId}function fz(Y){let J=Y6(Y);return J?J6(J):void 0}function mz(Y){let{logger:J,activeAccount:X}=Y;return{buildBody:(Q)=>hz(Q.bodyText),async send({target:Q,body:G,signal:$}){let W=async(L,V,F)=>{if($.throwIfAborted(),Y.verifyCredential)await Y.verifyCredential({target:Q,mode:V?"vault":"local",identity:(V?V.accountIdentity:F)??fz(L)});let P={...Q.meta.replayHeaders,authorization:`Bearer ${L}`,"content-type":"application/json"};if(Q.meta.chatgptAccountId)P["ChatGPT-Account-Id"]=Q.meta.chatgptAccountId;else delete P["ChatGPT-Account-Id"];let q;try{let E=JSON.parse(G);q={warmBodyKeys:Object.keys(E),stream:E.stream,max_output_tokens:E.max_output_tokens,store:E.store,has_stream_options:"stream_options"in E,has_max_tokens:"max_tokens"in E,model:E.model}}catch{}J?.debug("cachekeep warm request",{...q,headerKeys:Object.keys(P),hasChatGptAccountId:"ChatGPT-Account-Id"in P});try{let E=await Y.fetchImpl(Q.meta.url??Y.codexResponsesUrl,X8({method:"POST",headers:P,body:G,signal:$}));return await X9(E,L,"event-stream")}catch(E){throw y6(E,L)}};if(Q.accountId&&Y.vault?.owns(Q.accountId)){let L=await Y.vault.send(Q.accountId,W,{site:"cachekeep",signal:$});if(!L)throw Error(`vault refused warm for ${Q.accountId}`);return L}if(Y.vault&&await Y.vault.authority()!=="local")throw Error("local accounts are not warmed while this host is connected to the vault");let K,U,H,B=Y.resolveLocal?await Y.resolveLocal(Q):Q.accountId&&Q.accountId!=="main"?await Y.refreshFallback(Q.accountId):await Y.getMainToken();if(typeof B==="string")K=B;else K=B.token,U=B.identity,H=B.onAuthFailure;if(Y.vault&&await Y.vault.authority()!=="local")throw Error("local accounts are not warmed while this host is connected to the vault");let O=await W(K,void 0,U);if(O.status===401)await H?.(O.status);return O},readUsage({response:Q,text:G}){let $=Q.headers.get("content-type")??"",W=$.includes("text/event-stream")||/(^|\n)(data:|event:)/.test(G.slice(0,200));J?.debug("cachekeep warm response",{status:Q.status,contentType:$,bodyLen:G.length,isSse:W});let K=W?gz(G):yz(G),U=J9(Q.headers);return{...K,quota_primary_pct:U.primary?.usedPercent??null,quota_secondary_pct:U.secondary?.usedPercent??null}},profile:vz,...X?{activeAccount:(Q,G)=>X(G.meta.routingSessionId)}:{}}}function tX(Y){let{fetchImpl:J,getMainToken:X,refreshFallback:Q,resolveLocal:G,vault:$,codexResponsesUrl:W,activeAccount:K,verifyCredential:U,logger:H,...B}=Y,O=Y.resolveLocal!==void 0?{resolveLocal:Y.resolveLocal}:{getMainToken:Y.getMainToken,refreshFallback:Y.refreshFallback};return new $1({...B,logger:H,adapter:mz({fetchImpl:J,...O,vault:$,codexResponsesUrl:W,activeAccount:K,verifyCredential:U,logger:H})})}function eX(Y){let J,X=0,Q=0,G=!1,$;return{read(){let W=Y.path(),K=Y.stat(W);if(K&&J?.path===W&&J.mtimeMs===K.mtimeMs&&J.size===K.size)return J.value;if(!K)J=void 0;let U=++X;return Y.read(W).catch(Y.fallback).then((H)=>{if(U>Q){if(Q=U,$=H,G=!0,K)J={...K,path:W,value:H};return Y.onRead(H),H}return G?$:H})},invalidate(){J=void 0}}}import{readFileSync as cz}from"node:fs";var uz=60000,pz=15000,wY=2000,SY=1e4;async function W1(Y,J){let X,Q=await Promise.race([Y.then(()=>!0,()=>!0),new Promise((G)=>{X=setTimeout(()=>G(!1),J),X.unref?.()})]);return clearTimeout(X),Q}function lz(Y){if(!g6(Y.quota))return;let J=Q8(Y.quota);return J.limits.some((X)=>X.kind==="reading")?J.checkedAt:void 0}function dz(Y){if(!Y)return;let J=Y6(Y);return J?J6(J):void 0}function Y3(Y){try{let J=JSON.parse(cz(Y,"utf8"));if(!J||typeof J!=="object"||Array.isArray(J))return;return r9(J).migratedAt}catch{return}}function iz(Y){if(Y.type!=="oauth")return!1;return Y.candidate||Y.torn===!0&&Y.enabled}class IY{listeners=new Set;deps;now;log;snapshot={active:!1,rows:[],key:void 0,readAt:0};inflightRead;store;refreshing=new Map;backoff=new Map;rotated=new Map;pending=new Map;writes=new Map;marks=new Map;lastPull=new Map;quotaPulls=new Map;polled=new Set;pollOutcomes=new Map;disposed=!1;vaultRosterSettled;pollsAwaitVault=!1;constructor(Y){this.deps=Y,this.now=Y.now??Date.now,this.log=Y.log??H0("pool"),this.vaultRosterSettled=Y.vaultFirstRoster===void 0;let J=()=>{this.vaultRosterSettled=!0};Y.vaultFirstRoster?.then(J,J)}async awaitVaultRoster(Y){let J=this.deps.vaultFirstRoster;if(this.vaultRosterSettled||!J)return;await W1(J,Y)}peek(){return{active:this.snapshot.active,rows:this.snapshot.rows}}subscribe(Y){return this.listeners.add(Y),()=>{this.listeners.delete(Y)}}async sidebarView(){let Y=this.deps.paths();if(Y3(Y.configPath)===void 0)return{active:!1,rows:[]};let J=await this.storeFor(Y).read();return J.status==="ready"?{active:!0,rows:this.withLocalState(J.rows)}:{active:!1,rows:[]}}changed(){for(let Y of this.listeners)Y()}async current(){if(this.disposed)return this.peek();let Y=this.filesKey();if(this.snapshot.key===Y)return this.peek();let J=this.startRead(Y),X=await $8(J,this.deps.readBudgetMs??G8,()=>this.snapshot);return{active:X.active,rows:X.rows}}async load(){if(this.disposed)return this.peek();if(await this.deps.vaultAuthority?.(),this.disposed)return this.peek();let Y=await this.startRead(this.filesKey());return{active:Y.active,rows:Y.rows}}filesKey(){let Y=this.deps.paths();return`${Y.configPath}|${CY(Y.configPath)}|${CY(Y.statePath)}`}storeFor(Y){if(this.store?.configPath===Y.configPath)return this.store.store;let J=F9({provider:"openai",configPath:Y.configPath,statePath:Y.statePath,quota:j9,now:this.now,pull:(X)=>this.coalescedPull(X),onPullFailure:(X,Q)=>{this.pollOutcomes.set(X,{id:X,ok:!1,error:Q.message}),this.log.warn("pool quota poll failed",{rowId:X,kind:Q.kind,error:Q.message})},logger:this.log,...this.deps.store,onStep:async(X,Q)=>{if(await this.deps.store?.onStep?.(X,Q),Q.operation!=="updateSettings"&&X.startsWith("before-")&&this.deps.vaultAuthority&&await this.deps.vaultAuthority()!=="local")throw Error("Local account writes are disabled while connected to the vault.")}});return this.store={configPath:Y.configPath,store:J},J}startRead(Y){if(this.disposed)return Promise.resolve(this.snapshot);if(this.inflightRead?.key===Y)return this.inflightRead.promise;let J=this.now(),X=this.read(Y,J),Q={key:Y,promise:X};this.inflightRead=Q;let G=()=>{if(this.inflightRead===Q)this.inflightRead=void 0};return X.then(G,G),X}async read(Y,J){let X=this.deps.paths(),Q={active:!1,rows:[],key:Y,readAt:J};try{if(Y3(X.configPath)!==void 0){let W=await this.storeFor(X).read();if(W.status==="ready")Q={active:!0,rows:W.rows,key:Y,readAt:J};else this.log.warn("migrated install has no readable account pool",{status:W.status,...W.status==="error"?{reason:W.reason}:{}})}}catch($){return this.log.warn("account pool read failed",{error:$ instanceof Error?$.message:String($)}),this.snapshot}if(this.disposed)return this.snapshot;let G=this.snapshot.active;if(J>=this.snapshot.readAt)this.snapshot={...Q,rows:this.withLocalState(Q.rows)},this.changed();if(this.snapshot.active){if(!G)this.log.info("account pool serves requests");this.pollUnseenRows()}return this.snapshot}withLocalState(Y){let J=this.now();return Y.map((X)=>{let Q=X,G=this.rotated.get(X.id),$=G?.credential;if(G&&G.credentialEpoch!==X.credentialEpoch)this.rotated.delete(X.id);else if($?.type==="oauth"&&X.credential?.type==="oauth"){let W=X.credential.lastRefreshedAt??0,K=$.lastRefreshedAt??0;if(W>=K)this.rotated.delete(X.id);else Q={...Q,credential:$}}return G3(Q,this.pending,J)})}replaceRow(Y,J){this.snapshot={...this.snapshot,rows:this.snapshot.rows.map((X)=>X.id===Y?J(X):X)},this.changed()}vaultOwned(Y){if(this.deps.vaultMode?.())return!0;return Y.identity!==void 0&&(this.deps.vaultIdentities?.().has(Y.identity)??!1)}pollUnseenRows(){if(this.disposed)return;let Y=this.deps.vaultFirstRoster;if(!this.vaultRosterSettled&&Y&&!this.deps.vaultMode?.()){if(this.pollsAwaitVault)return;this.pollsAwaitVault=!0,W1(Y,this.deps.vaultFirstRosterBackgroundWaitMs??SY).then((J)=>{if(this.pollsAwaitVault=!1,J)this.pollUnseenRows();else this.log.info("first quota polls skipped: the vault has not read its accounts yet")});return}for(let J of this.snapshot.rows){if(!iz(J)||this.vaultOwned(J))continue;let X=`${J.id}\x00${J.credentialEpoch??0}\x00${J.identity??""}`;if(this.polled.has(X))continue;this.polled.add(X),this.requestReading(J.id,!0)}}requestReading(Y,J=!1){if(this.disposed||this.deps.vaultMode?.())return;let X=this.now(),Q=this.lastPull.get(Y);if(!J&&Q!==void 0&&X-Q<(this.deps.pullRetryMs??pz))return this.storeFor(this.deps.paths()).pullsSettled();this.lastPull.set(Y,X);let G=this.storeFor(this.deps.paths());return G.requestReading(Y),G.pullsSettled()}coalescedPull(Y){let J=JSON.stringify([this.deps.paths().configPath,Y.id,Y.credentialEpoch,Y.identity]),X=this.quotaPulls.get(J);if(X)return X;let Q=this.pull(Y).finally(()=>this.quotaPulls.delete(J));return this.quotaPulls.set(J,Q),Q}async pull(Y){if(this.deps.vaultAuthority&&await this.deps.vaultAuthority()!=="local")throw Error("local accounts are not polled while this host is connected to the vault");let J;try{if(J=await this.deps.pullQuota(Y),!J)throw Error("the quota poll returned no reading")}catch(Q){throw this.pollOutcomes.set(Y.id,{id:Y.id,ok:!1,error:Q instanceof Error?Q.message:String(Q)}),Q}this.pollOutcomes.set(Y.id,{id:Y.id,ok:!0});let X=this.snapshot.rows.find((Q)=>Q.id===Y.id);if(X&&X.credentialEpoch===Y.credentialEpoch&&X.identity===Y.identity)this.applyObservation(X,J);return J}applyObservation(Y,J){Q3(this.pending,Y,J),this.replaceRow(Y.id,(X)=>({...X,quota:X3(X.quota,J),needsFirstReading:!1}))}recordSnapshot(Y,J,X,Q){if(!this.snapshot.active||this.disposed||this.deps.vaultMode?.())return;let G=this.snapshot.rows.find((L)=>L.id===Y);if(G?.type!=="oauth")return;let $=dz(X);if(!($&&G.identity?$===G.identity:w9(G)?.access===X))return;let K=E9(J,this.now(),Q);if(!K)return;if(this.applyObservation(G,K),G.credentialEpoch===void 0)return;let U={credentialEpoch:G.credentialEpoch,...G.identity!==void 0?{identity:G.identity}:{}},H=this.storeFor(this.deps.paths()),O=(this.writes.get(G.id)??Promise.resolve()).then(async()=>{if(this.deps.vaultAuthority&&await this.deps.vaultAuthority()!=="local")return;return H.recordQuota(G.id,U,K)}).catch((L)=>{this.log.warn("pool quota not recorded",{rowId:G.id,error:L instanceof Error?L.message:String(L)})});this.writes.set(G.id,O),O.finally(()=>{if(this.writes.get(G.id)===O)this.writes.delete(G.id)})}markRateLimited(Y,J){let X=this.snapshot.rows.find(($)=>$.id===Y);if(!X)return;let Q=RY(X),G=this.marks.get(Q);if(G!==void 0&&G>J)return;this.marks.set(Q,J)}rateLimitMarks(Y){let J=new Map;for(let X of Y){let Q=this.marks.get(RY(X));if(Q!==void 0)J.set(X.id,Q)}return J}async prepareTokens(Y,J,X={}){if(this.deps.vaultAuthority&&await this.deps.vaultAuthority()!=="local")return;if(!this.deps.vaultMode?.())await this.awaitVaultRoster(this.deps.vaultFirstRosterWaitMs??wY);let Q=this.now(),G=J3(J),$=[];for(let W of Y){if(!W.candidate||this.vaultOwned(W))continue;let K=w9(W);if(!K)continue;let U=(K.expires??0)-Q;if(!(!K.access||!K.expires||U<=G)||this.refreshBackedOff(W,J,Q))continue;let B=this.refresh(W.id);if(X.waitForAll||!K.access||!K.expires||U<=uz)$.push(B)}await Promise.all($)}refreshBackedOff(Y,J,X=this.now()){let Q=w9(Y);if(!Q)return!1;let G=z1(Q.refresh),$=this.backoff.get(Y.id);if($&&$.tokenHash===G&&$.nextRetryAt>X)return!0;let W=J?.accounts.find((K)=>K.id===Y.id);return Boolean(W?.type==="oauth"&&W.corrupt!==!0&&M6(W.lastRefreshError,Q.refresh,X))}usableToken(Y,J=this.now()){let X=this.snapshot.rows.find((G)=>G.id===Y.id);if(!X?.enabled||!X.candidate||X.type!=="oauth"||X.identity!==Y.identity||X.credentialEpoch!==Y.credentialEpoch||this.vaultOwned(X))return;let Q=w9(X);if(!Q?.access.trim())return;if(typeof Q.expires!=="number"||Q.expires<=J)return;return Q.access}refresh(Y){let J=this.refreshing.get(Y);if(J)return J;let X=this.runRefresh(Y).finally(()=>{if(this.refreshing.get(Y)===X)this.refreshing.delete(Y)});return this.refreshing.set(Y,X),X}async runRefresh(Y){if(this.deps.vaultAuthority&&await this.deps.vaultAuthority()!=="local")return;let J=this.deps.paths(),X=this.snapshot.rows.find((W)=>W.id===Y),Q=X?w9(X)?.refresh:void 0,G,$=(W,K)=>{return G=K.credentialEpoch,this.deps.refreshProvider(W,K)};try{let W=await z3({paths:J,store:this.storeFor(J),now:this.now,...this.deps.legacyLocks?{legacyLocks:this.deps.legacyLocks}:{}},Y,$);if(W.status==="rotated"){this.backoff.delete(Y),this.rotated.set(Y,{credential:W.credential,credentialEpoch:G}),this.replaceRow(Y,(K)=>K.credentialEpoch!==G?K:{...K,credential:W.credential,...W.identity!==void 0&&K.identity===void 0?{identity:W.identity}:{}});return}if(W.status==="identity-contradicted"){this.backoff.delete(Y),this.replaceRow(Y,(K)=>({...K,enabled:!1,candidate:!1})),this.log.warn("pool row disabled: its refresh returned a different account",{rowId:Y});return}this.recordRefreshFailure(Y,Q,Error(W.reason))}catch(W){this.recordRefreshFailure(Y,Q,W)}}recordRefreshFailure(Y,J,X){if(this.log.warn("pool row refresh failed",{rowId:Y,error:X instanceof Error?X.message:String(X)}),!J)return;this.backoff.set(Y,$3(J,X,this.now(),this.backoff.get(Y)))}refreshBackoffFor(Y){return W3(Y,this.backoff,this.now(),(J,X)=>this.usableToken(J,X))}async active(){return(await this.current()).active}poolStore(){return this.storeFor(this.deps.paths())}async refreshDueTokens(Y){let J=await this.current();if(!J.active||this.disposed)return;await this.prepareTokens(J.rows,Y,{waitForAll:!0})}async pollRows(Y,J={}){let X=await this.load();if(!X.active||this.disposed)return[];let Q=this.now(),G=X.rows.filter(($)=>{if(!$.candidate||$.type!=="oauth"||this.vaultOwned($))return!1;if(J.ids&&!J.ids.includes($.id))return!1;if(J.skipReadWithinMs===void 0)return!0;let W=lz($);return W===void 0||Q-W>=J.skipReadWithinMs});if(G.length===0)return[];await this.prepareTokens(G,Y,{waitForAll:!0});for(let $ of G)this.pollOutcomes.delete($.id),this.requestReading($.id,!0);return await this.poolStore().pullsSettled(),G.map(($)=>this.pollOutcomes.get($.id)??{id:$.id,ok:!1,error:"the quota poll did not run"})}async accessFor(Y,J){let X=await this.current();if(!X.active)return;let Q=X.rows.find((W)=>W.id===Y);if(!Q?.candidate)return;await this.prepareTokens([Q],J);let G=this.snapshot.rows.find((W)=>W.id===Y)??Q;if(!G.candidate)return;let $=this.usableToken(G);return $?{row:G,token:$}:void 0}async rowAccess(Y,J){let X=await this.current();if(!X.active)return;let Q=X.rows.find(($)=>$.id===Y);if(!Q)return{};let G=await this.accessFor(Y,J);return{row:{id:Q.id,type:Q.type,enabled:Q.enabled,...Q.label!==void 0?{label:Q.label}:{},...Q.identity!==void 0?{identity:Q.identity}:{}},...G?{token:G.token}:{}}}dispose(){this.disposed=!0}async settled(){for(;;){let Y=[...this.writes.values(),...this.refreshing.values(),...this.inflightRead?[this.inflightRead.promise]:[]];if(await Promise.allSettled(Y),await this.store?.store.pullsSettled(),this.writes.size===0&&this.refreshing.size===0&&!this.inflightRead)return}}}var K3=60000,bY=900000,nz={set(Y,J){let X=setTimeout(Y,J);return X.unref?.(),X},clear(Y){clearTimeout(Y)}};function oz(Y){return Y.status==="completed"||Y.status==="already-migrated"||Y.status==="nothing-to-import"||Y.status==="ambiguous"}function U3(Y){return Y.status==="deferred"||Y.status==="retry"||Y.status==="error"}function H3(Y){let J=Y.log??H0("pool-migration"),X=Y.timers??nz,Q=Y.random??Math.random,G=Y.migrate??W8,$=Y.adopt??z8,W=Y.fence??(()=>q9({currentVersion:Y.version})),K=!1,U=new AbortController,H=!1,B=!1,O=0,L,V=Promise.resolve(),F,P,q,E=!1;function S(){if(E)return;E=!0,J.warn(_9,{reason:"placeholder-without-main"})}let x=()=>({paths:Y.paths(),slot:Y.slot,log:J,...Y.runDeps,signal:U.signal});function j(p){let t=V.then(p).catch((L0)=>{J.warn("account pool background run failed",{error:L0 instanceof Error?L0.message:String(L0)})});return V=t,t}function C(p){if(H)return;if(L!==void 0)X.clear(L);L=X.set(()=>{L=void 0,j(V0)},p)}function h(){let p=Math.min(K3*2**Math.min(O,10),bY);return O++,A(p)}let A=(p)=>Math.round(p*(1-0.2*Q()));async function g(){if(!await Y.paused?.())return!1;return C(A(K3)),!0}async function r(){if(H||await g()||H)return;let p;try{p=await G({...x(),fence:W})}catch(t){J.warn("account pool migration failed; it will be tried again",{error:t instanceof Error?t.message:String(t)}),C(h());return}if(p.status==="refused"){if(p.reason==="placeholder-without-main")S();C(A(bY));return}if(oz(p)){if(B=!0,O=0,p.status==="completed")J.info("account pool migration completed",{rowId:p.rowId});await i();return}if(U3(p)){if(p.status!=="deferred")J.warn("account pool migration will be tried again",{outcome:p});C(h())}}async function i(){if(H||await g()||H)return;let p;try{let t=await W();if(H)return;if(!t.open){let L0=JSON.stringify(t.blockers);if(L0!==q)q=L0,J.info("host login adoption waits for older plugin versions",{blockers:t.blockers});C(h());return}p=await $(x())}catch(t){J.warn("adopting the host login into the account pool failed",{error:t instanceof Error?t.message:String(t)}),C(h());return}if(p.status==="not-migrated")return;if(p.status==="slot-read-only")return;if(B=!0,p.status==="completed")J.info("host login adopted into the account pool",{rowId:p.rowId,operation:p.operation});if(U3(p)){J.warn("host login adoption will be tried again",{outcome:p}),C(h());return}if(O=0,B)C(A(bY))}async function V0(){if(H)return;if(B)await i();else await r()}function B0(){if(F)return F;let p=j(async()=>{if(F=void 0,!H)if(B)await i();else await r()});return F=p,p}return{start(){if(K||H)return;K=!0,j(r)},requestAdoption:B0,noticePlaceholderWithoutMain:S,noticeRealSlot(p){if(!B||H||p===P)return;P=p,B0()},dispose(){if(H=!0,U.abort(),L!==void 0)X.clear(L);L=void 0},idle:async()=>{for(;;){let p=V;if(await p,p===V)return}},migrated:()=>B}}var Q9={"missing-main":"Request refused locally: this setup has no main login in its account store. Sign in with opencode auth login.","no-accounts":"Request refused locally: no eligible account is configured. Sign in with opencode auth login.",unusable:"Request refused locally: no usable account credential. Sign in with opencode auth login.",...j3};function yY(Y){return Y!==void 0&&N3.includes(Y)}function rz(Y,J,X,Q=new Set){return Y.filter((G)=>{if(!G.enabled||!G.candidate||G.type!=="oauth")return!1;if(G.credential?.type!=="oauth")return!1;if(m0(G.credential))return!1;if(G.identity!==void 0&&Q.has(G.identity))return!1;if(G.id===T6)return!0;if(L3(J,{accountId:G.identity}))return!1;return hY(A6(G.quota),J,X)})}function xY(Y){let J=Y.vault;return[...(J?[]:rz(Y.source.peek().rows,Y.storage,Y.now())).map((Q)=>({id:Q.id,kind:"oauth",...Q.identity!==void 0?{identity:Q.identity}:{},...Q.quota!==void 0?{quota:Q.quota}:{},row:Q})),...(J?.routes()??[]).filter((Q)=>hY(A6(Q.quota),Y.storage,Y.now())).map((Q)=>({id:Q.id,kind:Q.kind,...Q.identity!==void 0?{identity:Q.identity}:{},...Q.quota!==void 0?{quota:Q.quota}:{}}))]}function sz(Y){return Y.flatMap((J)=>J.row?[J.row]:[])}function K8(Y,J){let X=Y.now(),Q=U1(J,Y.storage,X),G=J.map((U)=>({id:U.id,kind:U.kind,...g6(U.quota)?{quota:U.quota}:{}})),$=sz(J),W=new Set(J.filter((U)=>!U.row).map((U)=>U.id)),K=Y.source.rateLimitMarks($);for(let[U,H]of Y.vault?.rateLimitMarks?.()??[])if(W.has(U)&&H>X)K.set(U,H);return{rows:G,now:X,rateLimitMarks:K,refreshBackoff:Y.source.refreshBackoffFor($),killswitch:Q,requestPull:(U)=>W.has(U)?Y.vault?.requestReading(U):Y.source.requestReading(U)}}function Z3(Y){let J=Y.find((X)=>X.id===T6);return{main:J?A6(J.quota):void 0,fallbacks:Y.filter((X)=>X.id!==T6).map((X)=>{let Q=A6(X.quota);return{accountId:X.id,...Q?{quota:Q}:{}}})}}async function vY(Y,J){if(J.row){let X=Y.source.usableToken(J.row);if(!X)return;let Q=await Y.send(J,X);return Y.recordQuota(Q,J,X),Q}return Y.vault?.send(J.id,async(X,Q)=>{let G=await Y.send(J,X,Q);return Y.recordQuota(G,J,X,Q),G})}async function E3(Y){if(Y.vault)await Y.vault.awaitRoster();else await Y.source.current(),await Y.source.prepareTokens(Y.source.peek().rows,Y.storage);let J=xY(Y),X=Y.replayable===!1&&J.some((G)=>G.id===T6)?J.filter((G)=>G.id===T6):J,Q=O3(K8(Y,X));if(Q)await Q,J=xY(Y);if(Y.mode==="sticky-balanced"&&Y.sessionId&&Y.replayable&&Y.body!==void 0){let G=await tz(Y,J,Y.sessionId,Y.body);if(G)return G}return az(Y,J)}async function az(Y,J){let X=D3(Y.mode),Q=K8(Y,J),G=_3({...Q,placement:X,mainId:Y.vault?Y.mode==="sticky-balanced"?null:F3(Y.vault.routes()):void 0,replayable:Y.replayable});if(G.kind==="block")return Y.log.debug("pool admission blocked the request",{pid:process.pid,reason:G.block.reason}),{response:Y.blocked(G.block,Z3(J),Y.vault?J.length===0?Y.vault.noRouteCause():void 0:J.length===0?"no-accounts":"unusable"),servedId:T6};if(G.lastPath)Y.log.debug("pool admission: every account is exhausted; probing anyway",{pid:process.pid,order:G.order});let $=new Map(J.map((O)=>[O.id,O])),W=B3(Y.storage),K=[],U=new Set,H,B=!1;for(;;){let O=V3(G.order.filter((F)=>!U.has(F)),K,W),L=O===void 0?void 0:$.get(O);if(!L)break;let V;try{V=await vY(Y,L)}catch(F){if(Y.isAbort(F)||!H||Y.mode==="fallback-first")throw F;return Y.log.debug("pool fallback attempt threw; stopping",{pid:process.pid,accountId:L.id}),H}if(!V){if(!L.row)B=!0;U.add(L.id);continue}H?.response.body?.cancel().catch(()=>{}),H={response:V,servedId:L.id},K.push({id:L.id,status:V.status})}if(H)return A3(Y,Q,H.servedId),H;return{response:Y.blocked({reason:"no-credential"},Z3(J),B?"vault-refused":Y.vault?"vault-empty":"unusable"),servedId:T6}}async function tz(Y,J,X,Q){let G=Buffer.byteLength(Q,"utf8"),$=new Map(J.map((E)=>[E.id,E])),W=K8(Y,J),K=kY(W),U={requestBytes:G,reservePercent:(E)=>K1(Y.storage,E===T6?void 0:E),resetCredits:Y.resetCredits,onEmptyWeightedSet:()=>{Y.log.debug("sticky routing: no fresh weighted candidates; using configured order")}},H=(E,S)=>(x,j)=>{let C=new Set(x);return Y.placePin({sessionId:X,requestBytes:G,now:E.now,validPinnedAccountIds:E.rows.map((h)=>h.id).filter((h)=>!S.excluded.has(h)),excludeAccountIds:x,quotaCheckedAtByAccount:Object.fromEntries(E.rows.map((h)=>[h.id,S.projections.get(h.id)?.checkedAt])),wireAccountIdByAccount:Object.fromEntries(J.map((h)=>[h.id,h.identity])),select:(h)=>P3(E,U,C,h),persist:j})},B=H(W,K),O=B([],!0);if(!O)return;let L=O.accountId,V=(E)=>{let S=B([L],!0);if(!S)return!1;return Y.log.debug("sticky routing: migrated session pin",{pid:process.pid,fromAccountId:L,toAccountId:S.accountId,reason:E}),L=S.accountId,!0},F=q3(W,U,L);if(F.kind==="none")return;if(F.kind==="move"){if(!V(F.reason)&&F.reason==="killswitch")return}else if(F.kind==="detour"){let E=B([L],!1);if(!E)return;Y.log.debug("sticky routing: pinned account awaits a quota reading",{pid:process.pid,pinnedAccountId:L,servedAccountId:E.accountId}),L=E.accountId}let P=$.get(L);if(!P)return;let q=await vY(Y,P);if(!q)return;if(q.status===401||q.status===403||q.status===429){let E=xY(Y);W=K8(Y,E),K=kY(W),B=H(W,K);let S=M3(W,K,L,q.status);if(S.action==="migrate"){let x=L;if(V(S.reason)&&L!==x){let j=E.find((h)=>h.id===L),C=j?await vY(Y,j):void 0;if(j&&C){let h=q;q=C,h.body?.cancel().catch(()=>{}),P=j}else L=x}}}return A3(Y,W,P.id),{response:q,servedId:P.id}}function A3(Y,J,X){let Q=Y.log.info;Y.creditsServing?.served(J,X,Q?{info:(G,$)=>Q.call(Y.log,G,$)}:void 0)}var ez=new Map([["needs_reauth","needs sign-in"],["retired","turned off in vault"],["corrupt","unavailable"]]);function H1(Y){return typeof Y==="number"&&Number.isFinite(Y)}function YK(Y){if(!g6(Y))return;let J=Y.budget;if(J?.kind!=="reading")return;let{limit:X,used:Q,remaining:G,usedPercent:$,remainingPercent:W}=J;if(!H1(X)||!H1(Q)||!H1(G)||!H1($)||!H1(W))return;return{limit:X,used:Q,remaining:G,usedPercent:$,remainingPercent:W,reached:J.reached,...J.resetsAt!==void 0?{resetsAt:J.resetsAt}:{},...J.unit!==void 0?{unit:J.unit}:{}}}function gY(Y,J){let X=A6(Y),Q=YK(Y),G=g6(Y)?Y.credits:void 0;if(!X&&!Q&&!G)return null;let $=g6(Y)?Q8(Y).checkedAt:void 0;return{...$!==void 0?{checkedAt:$}:{},...X?.primary?{primary:X.primary}:{},...X?.secondary?{secondary:X.secondary}:{},...Q?{spendControl:Q}:{},...J!==void 0?{resetCreditsAvailable:J}:{},...G?{credits:{...G}}:{}}}function T3(Y,J,X,Q){let G=U1(Y.map(($)=>({id:$.routeId,quota:$.quota})),{version:1,accounts:[],...X},Q);return{main:{quota:null,killed:!1},fallbacks:[],vaultAccounts:Y.map(($)=>{let W=$.quota?.counters?.resetCredits?.value;return{id:$.routeId,credentialId:$.credentialId,label:$.email||$.label||$.routeId,...$.accountIdentity!==void 0?{accountId:$.accountIdentity}:{},quota:gY($.quota,W),killed:G.get($.routeId)===!1,enabled:$.enabled,routable:J.has($.routeId),...$.state!=="active"||$.stale||$.unclaimed||$.enabled&&!J.has($.routeId)?{vaultState:ez.get($.state)??"unavailable"}:{},...W!==void 0?{resetCredits:W}:{}}}),route:X?.routing?.mode??"main-first",lastUpdated:Q}}function R3(Y,J,X,Q=()=>{return}){let G=U1(Y,{version:1,accounts:[],...J},X),$=Y.find((K)=>K.id===Z6),W=$?Q($.id):void 0;return{main:{quota:$?gY($.quota,W):null,...$?.identity!==void 0?{mainAccountId:$.identity}:{},killed:G.get(Z6)===!1,...W!==void 0?{resetCredits:W}:{}},fallbacks:Y.filter((K)=>K.id!==Z6&&K.enabled).map((K)=>{let U=Q(K.id);return{id:K.id,label:K.label,...K.identity!==void 0?{accountId:K.identity}:{},quota:gY(K.quota,U),killed:G.get(K.id)===!1,enabled:!0,...U!==void 0?{resetCredits:U}:{}}}),route:J?.routing?.mode??"main-first",lastUpdated:X,accountPool:!0}}import{randomUUID as JK}from"node:crypto";import{chmod as XK,mkdir as QK,rename as GK,rm as w3,writeFile as $K}from"node:fs/promises";import{homedir as WK}from"node:os";import{join as fY}from"node:path";function S3(){let Y=process.env.XDG_STATE_HOME||fY(WK(),".local","state");return fY(Y,"cortexkit","openai-auth","processes")}function I3(Y=process.pid,J=S3()){return fY(J,`${Y}.json`)}var U8=0,C3;async function zK(Y,J){await QK(Y,{recursive:!0,mode:448}),await XK(Y,448);let X=I3(J.pid,Y),Q=`${X}.${JK()}.tmp`;try{await $K(Q,`${JSON.stringify(J)}
|
|
11
|
-
`,{mode:384}),await GK(Q,X)}catch(G){throw await w3(Q,{force:!0}).catch(()=>{}),G}return X}async function b3(Y){let J=Y.pid??process.pid,X=Y.dir??S3();C3??=(Y.now??Date.now)(),U8++;let Q;try{Q=await zK(X,{pid:J,version:Y.version,startedAt:C3})}catch($){Y.logger.warn("process heartbeat not written",{dir:X,error:$ instanceof Error?$.message:String($)})}let G=!1;return{path:Q,async release(){if(G)return;if(G=!0,U8=Math.max(0,U8-1),U8>0)return;await w3(I3(J,X),{force:!0}).catch(($)=>{Y.logger.warn("process heartbeat not removed",{dir:X,error:$ instanceof Error?$.message:String($)})})}}}import{resolve as H8}from"node:path";import{resolveClaustrumConnectionPath as KK}from"@cortexkit/claustrum-client";var UK=H0("vault"),HK=60000,ZK=240000,x3=Symbol.for("@cortexkit/openai-auth/opencode-vaults"),v3=globalThis,Z1=v3[x3]??new Map;v3[x3]=Z1;function h3(Y,J){let X=Boolean(Y.connectScoped||Y.connectEnrollment),Q=H8(Y.stateDir),G=H8((Y.connectionFile??KK)()),$=JSON.stringify([Y.host,Q,G,H8(J.configPath),H8(J.statePath)]),W={reservedRouteIds:Y.reservedRouteIds??(()=>[])},K=X?void 0:Z1.get($);if(!K){let B=new Set;if(K={vault:new k3({...Y,stateDir:Q,connectionFile:()=>G,...!X?{projectRoot:Q}:{},reservedRouteIds:()=>new Set([...B].flatMap((L)=>[...L.reservedRouteIds()]))}),holders:B,firstRoster:Promise.withResolvers(),started:!1},!X)Z1.set($,K)}K.holders.add(W);let U=K,H=!1;return{vault:U.vault,firstRoster:U.firstRoster.promise,start(){if(H||U.started)return;U.started=!0;let B=async()=>{try{if(U.holders.size&&await U.vault.authority()!=="local")await U.vault.pollStale(ZK)}catch(L){UK.warn("vault background quota poll failed",{error:L instanceof Error?L.message:String(L)})}};U.vault.start(),U.vault.firstRoster().finally(()=>{U.firstRoster.resolve(),B()}),U.quotaPoll=setInterval(B,HK),U.quotaPoll.unref?.()},release(){if(H)return;if(H=!0,U.holders.delete(W),U.holders.size!==0)return;if(U.quotaPoll)clearInterval(U.quotaPoll);if(U.vault.close(),U.firstRoster.resolve(),!X&&Z1.get($)===U)Z1.delete($)}}}var c3=900000,VK=0.016666666666666666,y3=0.000001;function cY(Y,J){for(let X of[Y?.primary?.checkedAt,Y?.checkedAt,J])if(typeof X==="number"&&Number.isFinite(X))return X;return}function uY(Y){if(Y.status===401||Y.status===403)return{action:"migrate",reason:"permanent"};if(!Y.quota)return{action:"retain",reason:"unknown"};let J=cY(Y.quota,Y.quotaCheckedAt);if(J===void 0||!Number.isFinite(J)||Y.now-J>c3)return{action:"retain",reason:"stale"};if(Y.killswitchPasses===!1)return{action:"migrate",reason:"killswitch"};let X=mY(Y.quota).sort((G,$)=>{let W=G.windowMs,K=$.windowMs,U=typeof W==="number"&&Number.isFinite(W),H=typeof K==="number"&&Number.isFinite(K);if(U!==H)return U?-1:1;if(U&&H)return K-W;return 0});for(let{key:G,window:$}of X)if(Number.isFinite($.remainingPercent)&&$.remainingPercent<=0)return{action:"migrate",reason:"exhausted",windowKey:G,...typeof $.resetsAt==="string"?{resetsAt:$.resetsAt}:{}};let Q=m3(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 g3(Y,J,X){let Q=Math.max(0,Y.remainingPercent-J);if(Q<=0)return 0;if(!Y.resetsAt)return Q;let G=Date.parse(Y.resetsAt);if(!Number.isFinite(G)||G<=X)return Q;let $=Math.max((G-X)/3600000,VK);return Q/$}function f3(Y,J){if(Y<J)return-1;if(Y>J)return 1;return 0}function BK(Y,J){if(!Y.quota)return;let X=cY(Y.quota,Y.quotaCheckedAt);if(X===void 0||J-X>c3)return;let Q=mY(Y.quota).map(({key:W,window:K})=>{return g3(K,Y.reservePercent[W]??0,J)}),G=Y.quota.spendControl;if(G&&Number.isFinite(G.remainingPercent))Q.push(g3(G,0,J));let $=Q.length>0?Math.min(...Q):0;return $>0?{candidate:Y,quotaCheckedAt:X,weight:$}:void 0}function u3(Y){let J=Y.candidates.filter((G)=>G.killswitchPasses!==!1);if(Y.candidates.length===0)throw Error("Cannot select a sticky candidate: input.candidates is empty");if(J.length===0)return;let X=J.map((G)=>BK(G,Y.now)).filter((G)=>G!==void 0);if(X.length>0){X.sort(($,W)=>{let K=((Y.pendingBytes.get($.candidate.accountId)??0)+Y.requestBytes)/Math.max($.weight,y3),U=((Y.pendingBytes.get(W.candidate.accountId)??0)+Y.requestBytes)/Math.max(W.weight,y3);return K-U||$.candidate.configuredOrder-W.candidate.configuredOrder||f3($.candidate.accountId,W.candidate.accountId)});let G=X[0];if(G)return{accountId:G.candidate.accountId,quotaCheckedAt:G.quotaCheckedAt,source:"weighted"}}Y.onEmptyWeightedSet?.();let Q=[...J].sort((G,$)=>{let W=(G.resetCreditsApplicable??0)>0?1:0;return(($.resetCreditsApplicable??0)>0?1:0)-W||G.configuredOrder-$.configuredOrder||f3(G.accountId,$.accountId)})[0];if(!Q)throw Error("Cannot select a sticky candidate: input.candidates is empty");return{accountId:Q.accountId,quotaCheckedAt:cY(Q.quota,Q.quotaCheckedAt),source:"mode-fallback"}}import{readFile as LK}from"node:fs/promises";import{homedir as NK}from"node:os";import{join as p3}from"node:path";var jK="https://models.dev/api.json",FK="OPENCODE_OPENAI_AUTH_MODELS_CACHE",DK="OPENCODE_MODELS_PATH",OK="OPENCODE_DISABLE_MODELS_FETCH",_K=1e4,PK=300000;function f6(Y){return Y!==null&&typeof Y==="object"&&!Array.isArray(Y)?Y:null}function l3(Y){if(Y===void 0)return 0;return typeof Y==="number"&&Number.isFinite(Y)&&Y>=0?Y:null}function pY(Y){let{input:J,output:X}=Y;if(typeof J!=="number"||!Number.isFinite(J)||J<0)return null;if(typeof X!=="number"||!Number.isFinite(X)||X<0)return null;let Q=l3(Y.cache_read),G=l3(Y.cache_write);if(Q===null||G===null)return null;return{input:J,output:X,cache:{read:Q,write:G}}}function qK(Y){let J=f6(Y);if(!J)return null;let X=pY(J);if(!X)return null;let Q=X;if(Array.isArray(J.tiers)){let W=[];for(let K of J.tiers){let U=f6(K);if(!U)continue;let H=f6(U.tier),B=H?.size;if(H?.type!=="context")continue;if(typeof B!=="number"||!Number.isFinite(B)||B<=0)continue;let O=pY(U);if(!O)continue;W.push({...O,tier:{type:"context",size:B}})}if(W.length>0)Q.tiers=W}let G=f6(J.context_over_200k),$=G?pY(G):null;if($)Q.experimentalOver200K=$;return Q}function d3(Y){let J=f6(Y),X=f6(J?.openai),Q=f6(X?.models);if(!Q)return null;let G={};for(let[$,W]of Object.entries(Q)){let K=f6(W),U=qK(K?.cost);if(U)G[$]=U}return Object.keys(G).length>0?G:null}function MK(){let Y=process.env[FK]?.trim();if(Y)return Y;let J=process.env[DK]?.trim();if(J)return J;let X=process.env.XDG_CACHE_HOME?.trim()||(process.platform==="win32"?process.env.LOCALAPPDATA?.trim():void 0)||p3(NK(),".cache");return p3(X,"opencode","models.json")}function EK(){let Y=process.env[OK]?.toLowerCase();return Y==="true"||Y==="1"}async function AK(){try{let Y=d3(JSON.parse(await LK(MK(),"utf8")));if(Y)return Y}catch{}if(EK())return null;try{let Y=await fetch(jK,{signal:AbortSignal.timeout(_K)});if(!Y.ok)return null;return d3(await Y.json())}catch{return null}}var S9;function i3(){let Y=Date.now();if(S9&&S9.expiresAt>Y)return S9.promise;let J={expiresAt:Y+PK,promise:AK()};return S9=J,J.promise.then((X)=>{if(X===null&&S9===J)S9=void 0}),J.promise}function I9(Y){return typeof Y==="object"&&Y!==null}function TK(Y){if(Array.isArray(Y))return Y;if(I9(Y)&&Array.isArray(Y.data))return Y.data;return[]}function RK(Y){if(!I9(Y)||!I9(Y.info))return;return typeof Y.info.role==="string"?Y.info.role:void 0}function n3(Y){if(!I9(Y)||!I9(Y.info))return null;let J=Y.info,X=I9(J.model)?J.model:void 0,Q=typeof J.agent==="string"?J.agent:void 0,G=typeof X?.providerID==="string"?X.providerID:typeof J.providerID==="string"?J.providerID:void 0,$=typeof X?.modelID==="string"?X.modelID:typeof J.modelID==="string"?J.modelID:void 0,W=typeof X?.variant==="string"?X.variant:typeof J.variant==="string"?J.variant:void 0;if(!Q&&(!G||!$)&&!W)return null;let K={};if(Q)K.agent=Q;if(G&&$)K.model={providerID:G,modelID:$};if(W)K.variant=W;return K}function o3(Y,J){return{agent:Y.agent??J.agent,model:Y.model??J.model,variant:Y.variant??J.variant}}function r3(Y){return Boolean(Y.agent&&Y.model&&Y.variant)}async function s3(Y,J){if(!Y||!J)return null;let X=Y;if(typeof X.session?.messages!=="function")return null;let Q=[];try{Q=TK(await Promise.resolve(X.session.messages({path:{id:J},query:{limit:100}})))}catch{return null}if(Q.length===0)return null;let G={};for(let $=Q.length-1;$>=0;$--){if(RK(Q[$])!=="assistant")continue;let W=n3(Q[$]);if(!W)continue;if(G=o3(G,W),r3(G))return G}for(let $=Q.length-1;$>=0;$--){let W=n3(Q[$]);if(!W)continue;if(G=o3(G,W),r3(G))return G}if(!G.agent&&!G.model&&!G.variant)return null;return G}var CK=H0("rpc"),t3="__openaiAuthRpcServers";function e3(Y){return a3({...Y,isManagedDir:p1,log:CK,drain:(J,X)=>Y.drain(J,X),apply:async(J)=>await Y.apply(J)})}var b6={};iY(b6,{withoutInternalHeaders:()=>oG,sanitizeHttpFallbackBody:()=>EY,orderCodexBody:()=>t6,hasWebSocketResponsesLiteMetadata:()=>MY,createWebSocketFetch:()=>BB,applyTurnId:()=>uG,advanceTurn:()=>c4,TITLE_HEADER:()=>m4,QUOTA_ACCOUNT_HEADER:()=>v8,OpenAIWebSocketPool:()=>b6,CODEX_BODY_KEY_ORDER:()=>UY});import{createHash as KB}from"node:crypto";var wK=Symbol.for("vercel.ai.error"),R6=class Y extends Error{constructor({name:J,message:X,cause:Q}){super(X);this[wK]=!0,this.name=J,this.cause=Q}static isInstance(J){return Y.hasMarker(J,"vercel.ai.error")}static hasMarker(J,X){let Q=Symbol.for(X);return J!=null&&typeof J==="object"&&Q in J&&typeof J[Q]==="boolean"&&J[Q]===!0}},SK="AI_DecisionUnsupportedQuestionTypeError",FF=`vercel.ai.error.${SK}`;var Y2="AI_APICallError",J2=`vercel.ai.error.${Y2}`,IK=Symbol.for(J2),G9=class extends R6{constructor({message:Y,url:J,requestBodyValues:X,statusCode:Q,responseHeaders:G,responseBody:$,cause:W,isRetryable:K=Q!=null&&(Q===408||Q===409||Q===429||Q>=500),data:U}){super({name:Y2,message:Y,cause:W});this[IK]=!0,this.url=J,this.requestBodyValues=X,this.statusCode=Q,this.responseHeaders=G,this.responseBody=$,this.isRetryable=K,this.data=U}static isInstance(Y){return R6.hasMarker(Y,J2)}},bK="AI_EmptyResponseBodyError",DF=`vercel.ai.error.${bK}`;var kK="AI_DecisionRefusalError",OF=`vercel.ai.error.${kK}`;var X2="AI_InvalidArgumentError",Q2=`vercel.ai.error.${X2}`,xK=Symbol.for(Q2),lY=class extends R6{constructor({message:Y,cause:J,argument:X}){super({name:X2,message:Y,cause:J});this[xK]=!0,this.argument=X}static isInstance(Y){return R6.hasMarker(Y,Q2)}},vK="AI_InvalidPromptError",_F=`vercel.ai.error.${vK}`;var hK="AI_InvalidResponseDataError",PF=`vercel.ai.error.${hK}`;var yK="AI_JSONParseError",qF=`vercel.ai.error.${yK}`;var gK="AI_LoadAPIKeyError",MF=`vercel.ai.error.${gK}`;var fK="AI_LoadSettingError",EF=`vercel.ai.error.${fK}`;var mK="AI_NoContentGeneratedError",AF=`vercel.ai.error.${mK}`;var cK="AI_NoSuchModelError",TF=`vercel.ai.error.${cK}`;var uK="AI_NoSuchProviderReferenceError",RF=`vercel.ai.error.${uK}`;var pK="AI_TooManyEmbeddingValuesForCallError",CF=`vercel.ai.error.${pK}`;var lK="AI_TypeValidationError",wF=`vercel.ai.error.${lK}`;var dK="AI_UnsupportedFunctionalityError",SF=`vercel.ai.error.${dK}`;var xF=Object.freeze({status:"aborted"});function _(Y,J,X){function Q(K,U){var H;Object.defineProperty(K,"_zod",{value:K._zod??{},enumerable:!1}),(H=K._zod).traits??(H.traits=new Set),K._zod.traits.add(Y),J(K,U);for(let B in W.prototype)if(!(B in K))Object.defineProperty(K,B,{value:W.prototype[B].bind(K)});K._zod.constr=W,K._zod.def=U}let G=X?.Parent??Object;class $ extends G{}Object.defineProperty($,"name",{value:Y});function W(K){var U;let H=X?.Parent?new $:this;Q(H,K),(U=H._zod).deferred??(U.deferred=[]);for(let B of H._zod.deferred)B();return H}return Object.defineProperty(W,"init",{value:Q}),Object.defineProperty(W,Symbol.hasInstance,{value:(K)=>{if(X?.Parent&&K instanceof X.Parent)return!0;return K?._zod?.traits?.has(Y)}}),Object.defineProperty(W,"name",{value:Y}),W}var vF=Symbol("zod_brand");class C6 extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class V1 extends Error{constructor(Y){super(`Encountered unidirectional transform during encode: ${Y}`);this.name="ZodEncodeError"}}var Z8={};function N6(Y){if(Y)Object.assign(Z8,Y);return Z8}var Q0={};iY(Q0,{unwrapMessage:()=>B1,uint8ArrayToHex:()=>FU,uint8ArrayToBase64url:()=>NU,uint8ArrayToBase64:()=>Z2,stringifyPrimitive:()=>z2,shallowClone:()=>$2,safeExtend:()=>UU,required:()=>VU,randomString:()=>XU,propertyKeyTypes:()=>rY,promiseAllObject:()=>JU,primitiveTypes:()=>W2,prefixIssues:()=>S6,pick:()=>WU,partial:()=>ZU,optionalKeys:()=>sY,omit:()=>zU,objectClone:()=>tK,numKeys:()=>QU,nullish:()=>N1,normalizeParams:()=>o,mergeDefs:()=>c6,merge:()=>HU,jsonStringifyReplacer:()=>b9,joinValues:()=>aK,issue:()=>x9,isPlainObject:()=>u6,isObject:()=>$9,hexToUint8Array:()=>jU,getSizableOrigin:()=>U2,getParsedType:()=>GU,getLengthableOrigin:()=>F1,getEnumValues:()=>L1,getElementAtPath:()=>YU,floatSafeRemainder:()=>nY,finalizeIssue:()=>G6,extend:()=>KU,escapeRegex:()=>w6,esc:()=>V8,defineLazy:()=>G0,createTransparentProxy:()=>$U,cloneDef:()=>eK,clone:()=>Q6,cleanRegex:()=>j1,cleanEnum:()=>BU,captureStackTrace:()=>B8,cached:()=>k9,base64urlToUint8Array:()=>LU,base64ToUint8Array:()=>H2,assignProp:()=>m6,assertNotEqual:()=>nK,assertNever:()=>rK,assertIs:()=>oK,assertEqual:()=>iK,assert:()=>sK,allowsEval:()=>oY,aborted:()=>p6,NUMBER_FORMAT_RANGES:()=>aY,Class:()=>V2,BIGINT_FORMAT_RANGES:()=>K2});function iK(Y){return Y}function nK(Y){return Y}function oK(Y){}function rK(Y){throw Error()}function sK(Y){}function L1(Y){let J=Object.values(Y).filter((Q)=>typeof Q==="number");return Object.entries(Y).filter(([Q,G])=>J.indexOf(+Q)===-1).map(([Q,G])=>G)}function aK(Y,J="|"){return Y.map((X)=>z2(X)).join(J)}function b9(Y,J){if(typeof J==="bigint")return J.toString();return J}function k9(Y){return{get value(){{let X=Y();return Object.defineProperty(this,"value",{value:X}),X}throw Error("cached value already set")}}}function N1(Y){return Y===null||Y===void 0}function j1(Y){let J=Y.startsWith("^")?1:0,X=Y.endsWith("$")?Y.length-1:Y.length;return Y.slice(J,X)}function nY(Y,J){let X=(Y.toString().split(".")[1]||"").length,Q=J.toString(),G=(Q.split(".")[1]||"").length;if(G===0&&/\d?e-\d?/.test(Q)){let U=Q.match(/\d?e-(\d?)/);if(U?.[1])G=Number.parseInt(U[1])}let $=X>G?X:G,W=Number.parseInt(Y.toFixed($).replace(".","")),K=Number.parseInt(J.toFixed($).replace(".",""));return W%K/10**$}var G2=Symbol("evaluating");function G0(Y,J,X){let Q=void 0;Object.defineProperty(Y,J,{get(){if(Q===G2)return;if(Q===void 0)Q=G2,Q=X();return Q},set(G){Object.defineProperty(Y,J,{value:G})},configurable:!0})}function tK(Y){return Object.create(Object.getPrototypeOf(Y),Object.getOwnPropertyDescriptors(Y))}function m6(Y,J,X){Object.defineProperty(Y,J,{value:X,writable:!0,enumerable:!0,configurable:!0})}function c6(...Y){let J={};for(let X of Y){let Q=Object.getOwnPropertyDescriptors(X);Object.assign(J,Q)}return Object.defineProperties({},J)}function eK(Y){return c6(Y._zod.def)}function YU(Y,J){if(!J)return Y;return J.reduce((X,Q)=>X?.[Q],Y)}function JU(Y){let J=Object.keys(Y),X=J.map((Q)=>Y[Q]);return Promise.all(X).then((Q)=>{let G={};for(let $=0;$<J.length;$++)G[J[$]]=Q[$];return G})}function XU(Y=10){let X="";for(let Q=0;Q<Y;Q++)X+="abcdefghijklmnopqrstuvwxyz"[Math.floor(Math.random()*26)];return X}function V8(Y){return JSON.stringify(Y)}var B8="captureStackTrace"in Error?Error.captureStackTrace:(...Y)=>{};function $9(Y){return typeof Y==="object"&&Y!==null&&!Array.isArray(Y)}var oY=k9(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(Y){return!1}});function u6(Y){if($9(Y)===!1)return!1;let J=Y.constructor;if(J===void 0)return!0;let X=J.prototype;if($9(X)===!1)return!1;if(Object.prototype.hasOwnProperty.call(X,"isPrototypeOf")===!1)return!1;return!0}function $2(Y){if(u6(Y))return{...Y};if(Array.isArray(Y))return[...Y];return Y}function QU(Y){let J=0;for(let X in Y)if(Object.prototype.hasOwnProperty.call(Y,X))J++;return J}var GU=(Y)=>{let J=typeof Y;switch(J){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(Y)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":if(Array.isArray(Y))return"array";if(Y===null)return"null";if(Y.then&&typeof Y.then==="function"&&Y.catch&&typeof Y.catch==="function")return"promise";if(typeof Map<"u"&&Y instanceof Map)return"map";if(typeof Set<"u"&&Y instanceof Set)return"set";if(typeof Date<"u"&&Y instanceof Date)return"date";if(typeof File<"u"&&Y instanceof File)return"file";return"object";default:throw Error(`Unknown data type: ${J}`)}},rY=new Set(["string","number","symbol"]),W2=new Set(["string","number","bigint","boolean","symbol","undefined"]);function w6(Y){return Y.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Q6(Y,J,X){let Q=new Y._zod.constr(J??Y._zod.def);if(!J||X?.parent)Q._zod.parent=Y;return Q}function o(Y){let J=Y;if(!J)return{};if(typeof J==="string")return{error:()=>J};if(J?.message!==void 0){if(J?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");J.error=J.message}if(delete J.message,typeof J.error==="string")return{...J,error:()=>J.error};return J}function $U(Y){let J;return new Proxy({},{get(X,Q,G){return J??(J=Y()),Reflect.get(J,Q,G)},set(X,Q,G,$){return J??(J=Y()),Reflect.set(J,Q,G,$)},has(X,Q){return J??(J=Y()),Reflect.has(J,Q)},deleteProperty(X,Q){return J??(J=Y()),Reflect.deleteProperty(J,Q)},ownKeys(X){return J??(J=Y()),Reflect.ownKeys(J)},getOwnPropertyDescriptor(X,Q){return J??(J=Y()),Reflect.getOwnPropertyDescriptor(J,Q)},defineProperty(X,Q,G){return J??(J=Y()),Reflect.defineProperty(J,Q,G)}})}function z2(Y){if(typeof Y==="bigint")return Y.toString()+"n";if(typeof Y==="string")return`"${Y}"`;return`${Y}`}function sY(Y){return Object.keys(Y).filter((J)=>{return Y[J]._zod.optin==="optional"&&Y[J]._zod.optout==="optional"})}var aY={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]},K2={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function WU(Y,J){let X=Y._zod.def,Q=c6(Y._zod.def,{get shape(){let G={};for(let $ in J){if(!($ in X.shape))throw Error(`Unrecognized key: "${$}"`);if(!J[$])continue;G[$]=X.shape[$]}return m6(this,"shape",G),G},checks:[]});return Q6(Y,Q)}function zU(Y,J){let X=Y._zod.def,Q=c6(Y._zod.def,{get shape(){let G={...Y._zod.def.shape};for(let $ in J){if(!($ in X.shape))throw Error(`Unrecognized key: "${$}"`);if(!J[$])continue;delete G[$]}return m6(this,"shape",G),G},checks:[]});return Q6(Y,Q)}function KU(Y,J){if(!u6(J))throw Error("Invalid input to extend: expected a plain object");let X=Y._zod.def.checks;if(X&&X.length>0)throw Error("Object schemas containing refinements cannot be extended. Use `.safeExtend()` instead.");let G=c6(Y._zod.def,{get shape(){let $={...Y._zod.def.shape,...J};return m6(this,"shape",$),$},checks:[]});return Q6(Y,G)}function UU(Y,J){if(!u6(J))throw Error("Invalid input to safeExtend: expected a plain object");let X={...Y._zod.def,get shape(){let Q={...Y._zod.def.shape,...J};return m6(this,"shape",Q),Q},checks:Y._zod.def.checks};return Q6(Y,X)}function HU(Y,J){let X=c6(Y._zod.def,{get shape(){let Q={...Y._zod.def.shape,...J._zod.def.shape};return m6(this,"shape",Q),Q},get catchall(){return J._zod.def.catchall},checks:[]});return Q6(Y,X)}function ZU(Y,J,X){let Q=c6(J._zod.def,{get shape(){let G=J._zod.def.shape,$={...G};if(X)for(let W in X){if(!(W in G))throw Error(`Unrecognized key: "${W}"`);if(!X[W])continue;$[W]=Y?new Y({type:"optional",innerType:G[W]}):G[W]}else for(let W in G)$[W]=Y?new Y({type:"optional",innerType:G[W]}):G[W];return m6(this,"shape",$),$},checks:[]});return Q6(J,Q)}function VU(Y,J,X){let Q=c6(J._zod.def,{get shape(){let G=J._zod.def.shape,$={...G};if(X)for(let W in X){if(!(W in $))throw Error(`Unrecognized key: "${W}"`);if(!X[W])continue;$[W]=new Y({type:"nonoptional",innerType:G[W]})}else for(let W in G)$[W]=new Y({type:"nonoptional",innerType:G[W]});return m6(this,"shape",$),$},checks:[]});return Q6(J,Q)}function p6(Y,J=0){if(Y.aborted===!0)return!0;for(let X=J;X<Y.issues.length;X++)if(Y.issues[X]?.continue!==!0)return!0;return!1}function S6(Y,J){return J.map((X)=>{var Q;return(Q=X).path??(Q.path=[]),X.path.unshift(Y),X})}function B1(Y){return typeof Y==="string"?Y:Y?.message}function G6(Y,J,X){let Q={...Y,path:Y.path??[]};if(!Y.message){let G=B1(Y.inst?._zod.def?.error?.(Y))??B1(J?.error?.(Y))??B1(X.customError?.(Y))??B1(X.localeError?.(Y))??"Invalid input";Q.message=G}if(delete Q.inst,delete Q.continue,!J?.reportInput)delete Q.input;return Q}function U2(Y){if(Y instanceof Set)return"set";if(Y instanceof Map)return"map";if(Y instanceof File)return"file";return"unknown"}function F1(Y){if(Array.isArray(Y))return"array";if(typeof Y==="string")return"string";return"unknown"}function x9(...Y){let[J,X,Q]=Y;if(typeof J==="string")return{message:J,code:"custom",input:X,inst:Q};return{...J}}function BU(Y){return Object.entries(Y).filter(([J,X])=>{return Number.isNaN(Number.parseInt(J,10))}).map((J)=>J[1])}function H2(Y){let J=atob(Y),X=new Uint8Array(J.length);for(let Q=0;Q<J.length;Q++)X[Q]=J.charCodeAt(Q);return X}function Z2(Y){let J="";for(let X=0;X<Y.length;X++)J+=String.fromCharCode(Y[X]);return btoa(J)}function LU(Y){let J=Y.replace(/-/g,"+").replace(/_/g,"/"),X="=".repeat((4-J.length%4)%4);return H2(J+X)}function NU(Y){return Z2(Y).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function jU(Y){let J=Y.replace(/^0x/,"");if(J.length%2!==0)throw Error("Invalid hex string length");let X=new Uint8Array(J.length/2);for(let Q=0;Q<J.length;Q+=2)X[Q/2]=Number.parseInt(J.slice(Q,Q+2),16);return X}function FU(Y){return Array.from(Y).map((J)=>J.toString(16).padStart(2,"0")).join("")}class V2{constructor(...Y){}}var B2=(Y,J)=>{Y.name="$ZodError",Object.defineProperty(Y,"_zod",{value:Y._zod,enumerable:!1}),Object.defineProperty(Y,"issues",{value:J,enumerable:!1}),Y.message=JSON.stringify(J,b9,2),Object.defineProperty(Y,"toString",{value:()=>Y.message,enumerable:!1})},L8=_("$ZodError",B2),tY=_("$ZodError",B2,{Parent:Error});function L2(Y,J=(X)=>X.message){let X={},Q=[];for(let G of Y.issues)if(G.path.length>0)X[G.path[0]]=X[G.path[0]]||[],X[G.path[0]].push(J(G));else Q.push(J(G));return{formErrors:Q,fieldErrors:X}}function N2(Y,J){let X=J||function($){return $.message},Q={_errors:[]},G=($)=>{for(let W of $.issues)if(W.code==="invalid_union"&&W.errors.length)W.errors.map((K)=>G({issues:K}));else if(W.code==="invalid_key")G({issues:W.issues});else if(W.code==="invalid_element")G({issues:W.issues});else if(W.path.length===0)Q._errors.push(X(W));else{let K=Q,U=0;while(U<W.path.length){let H=W.path[U];if(U!==W.path.length-1)K[H]=K[H]||{_errors:[]};else K[H]=K[H]||{_errors:[]},K[H]._errors.push(X(W));K=K[H],U++}}};return G(Y),Q}var N8=(Y)=>(J,X,Q,G)=>{let $=Q?Object.assign(Q,{async:!1}):{async:!1},W=J._zod.run({value:X,issues:[]},$);if(W instanceof Promise)throw new C6;if(W.issues.length){let K=new(G?.Err??Y)(W.issues.map((U)=>G6(U,$,N6())));throw B8(K,G?.callee),K}return W.value};var j8=(Y)=>async(J,X,Q,G)=>{let $=Q?Object.assign(Q,{async:!0}):{async:!0},W=J._zod.run({value:X,issues:[]},$);if(W instanceof Promise)W=await W;if(W.issues.length){let K=new(G?.Err??Y)(W.issues.map((U)=>G6(U,$,N6())));throw B8(K,G?.callee),K}return W.value};var D1=(Y)=>(J,X,Q)=>{let G=Q?{...Q,async:!1}:{async:!1},$=J._zod.run({value:X,issues:[]},G);if($ instanceof Promise)throw new C6;return $.issues.length?{success:!1,error:new(Y??L8)($.issues.map((W)=>G6(W,G,N6())))}:{success:!0,data:$.value}},j2=D1(tY),O1=(Y)=>async(J,X,Q)=>{let G=Q?Object.assign(Q,{async:!0}):{async:!0},$=J._zod.run({value:X,issues:[]},G);if($ instanceof Promise)$=await $;return $.issues.length?{success:!1,error:new Y($.issues.map((W)=>G6(W,G,N6())))}:{success:!0,data:$.value}},F2=O1(tY),D2=(Y)=>(J,X,Q)=>{let G=Q?Object.assign(Q,{direction:"backward"}):{direction:"backward"};return N8(Y)(J,X,G)};var O2=(Y)=>(J,X,Q)=>{return N8(Y)(J,X,Q)};var _2=(Y)=>async(J,X,Q)=>{let G=Q?Object.assign(Q,{direction:"backward"}):{direction:"backward"};return j8(Y)(J,X,G)};var P2=(Y)=>async(J,X,Q)=>{return j8(Y)(J,X,Q)};var q2=(Y)=>(J,X,Q)=>{let G=Q?Object.assign(Q,{direction:"backward"}):{direction:"backward"};return D1(Y)(J,X,G)};var M2=(Y)=>(J,X,Q)=>{return D1(Y)(J,X,Q)};var E2=(Y)=>async(J,X,Q)=>{let G=Q?Object.assign(Q,{direction:"backward"}):{direction:"backward"};return O1(Y)(J,X,G)};var A2=(Y)=>async(J,X,Q)=>{return O1(Y)(J,X,Q)};var T2=/^[cC][^\s-]{8,}$/,R2=/^[0-9a-z]+$/,C2=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,w2=/^[0-9a-vA-V]{20}$/,S2=/^[A-Za-z0-9]{27}$/,I2=/^[a-zA-Z0-9_-]{21}$/,b2=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var k2=/^([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})$/,eY=(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 x2=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;function v2(){return new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")}var h2=/^(?:(?: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])$/,y2=/^(([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}|:))$/,g2=/^((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])$/,f2=/^(([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])$/,m2=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Y4=/^[A-Za-z0-9_-]*$/,c2=/^(?=.{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 u2=/^\+(?:[0-9]){6,14}[0-9]$/,p2="(?:(?:\\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])))",l2=new RegExp(`^${p2}$`);function d2(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 i2(Y){return new RegExp(`^${d2(Y)}$`)}function n2(Y){let J=d2({precision:Y.precision}),X=["Z"];if(Y.local)X.push("");if(Y.offset)X.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let Q=`${J}(?:${X.join("|")})`;return new RegExp(`^${p2}T(?:${Q})$`)}var o2=(Y)=>{let J=Y?`[\\s\\S]{${Y?.minimum??0},${Y?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${J}$`)};var r2=/^-?\d+$/,s2=/^-?\d+(?:\.\d+)?/,a2=/^(?:true|false)$/i,t2=/^null$/i;var e2=/^[^A-Z]*$/,Y7=/^[^a-z]*$/;var k0=_("$ZodCheck",(Y,J)=>{var X;Y._zod??(Y._zod={}),Y._zod.def=J,(X=Y._zod).onattach??(X.onattach=[])}),J7={number:"number",bigint:"bigint",object:"date"},J4=_("$ZodCheckLessThan",(Y,J)=>{k0.init(Y,J);let X=J7[typeof J.value];Y._zod.onattach.push((Q)=>{let G=Q._zod.bag,$=(J.inclusive?G.maximum:G.exclusiveMaximum)??Number.POSITIVE_INFINITY;if(J.value<$)if(J.inclusive)G.maximum=J.value;else G.exclusiveMaximum=J.value}),Y._zod.check=(Q)=>{if(J.inclusive?Q.value<=J.value:Q.value<J.value)return;Q.issues.push({origin:X,code:"too_big",maximum:J.value,input:Q.value,inclusive:J.inclusive,inst:Y,continue:!J.abort})}}),X4=_("$ZodCheckGreaterThan",(Y,J)=>{k0.init(Y,J);let X=J7[typeof J.value];Y._zod.onattach.push((Q)=>{let G=Q._zod.bag,$=(J.inclusive?G.minimum:G.exclusiveMinimum)??Number.NEGATIVE_INFINITY;if(J.value>$)if(J.inclusive)G.minimum=J.value;else G.exclusiveMinimum=J.value}),Y._zod.check=(Q)=>{if(J.inclusive?Q.value>=J.value:Q.value>J.value)return;Q.issues.push({origin:X,code:"too_small",minimum:J.value,input:Q.value,inclusive:J.inclusive,inst:Y,continue:!J.abort})}}),X7=_("$ZodCheckMultipleOf",(Y,J)=>{k0.init(Y,J),Y._zod.onattach.push((X)=>{var Q;(Q=X._zod.bag).multipleOf??(Q.multipleOf=J.value)}),Y._zod.check=(X)=>{if(typeof X.value!==typeof J.value)throw Error("Cannot mix number and bigint in multiple_of check.");if(typeof X.value==="bigint"?X.value%J.value===BigInt(0):nY(X.value,J.value)===0)return;X.issues.push({origin:typeof X.value,code:"not_multiple_of",divisor:J.value,input:X.value,inst:Y,continue:!J.abort})}}),Q7=_("$ZodCheckNumberFormat",(Y,J)=>{k0.init(Y,J),J.format=J.format||"float64";let X=J.format?.includes("int"),Q=X?"int":"number",[G,$]=aY[J.format];Y._zod.onattach.push((W)=>{let K=W._zod.bag;if(K.format=J.format,K.minimum=G,K.maximum=$,X)K.pattern=r2}),Y._zod.check=(W)=>{let K=W.value;if(X){if(!Number.isInteger(K)){W.issues.push({expected:Q,format:J.format,code:"invalid_type",continue:!1,input:K,inst:Y});return}if(!Number.isSafeInteger(K)){if(K>0)W.issues.push({input:K,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:Y,origin:Q,continue:!J.abort});else W.issues.push({input:K,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:Y,origin:Q,continue:!J.abort});return}}if(K<G)W.issues.push({origin:"number",input:K,code:"too_small",minimum:G,inclusive:!0,inst:Y,continue:!J.abort});if(K>$)W.issues.push({origin:"number",input:K,code:"too_big",maximum:$,inst:Y})}});var G7=_("$ZodCheckMaxLength",(Y,J)=>{var X;k0.init(Y,J),(X=Y._zod.def).when??(X.when=(Q)=>{let G=Q.value;return!N1(G)&&G.length!==void 0}),Y._zod.onattach.push((Q)=>{let G=Q._zod.bag.maximum??Number.POSITIVE_INFINITY;if(J.maximum<G)Q._zod.bag.maximum=J.maximum}),Y._zod.check=(Q)=>{let G=Q.value;if(G.length<=J.maximum)return;let W=F1(G);Q.issues.push({origin:W,code:"too_big",maximum:J.maximum,inclusive:!0,input:G,inst:Y,continue:!J.abort})}}),$7=_("$ZodCheckMinLength",(Y,J)=>{var X;k0.init(Y,J),(X=Y._zod.def).when??(X.when=(Q)=>{let G=Q.value;return!N1(G)&&G.length!==void 0}),Y._zod.onattach.push((Q)=>{let G=Q._zod.bag.minimum??Number.NEGATIVE_INFINITY;if(J.minimum>G)Q._zod.bag.minimum=J.minimum}),Y._zod.check=(Q)=>{let G=Q.value;if(G.length>=J.minimum)return;let W=F1(G);Q.issues.push({origin:W,code:"too_small",minimum:J.minimum,inclusive:!0,input:G,inst:Y,continue:!J.abort})}}),W7=_("$ZodCheckLengthEquals",(Y,J)=>{var X;k0.init(Y,J),(X=Y._zod.def).when??(X.when=(Q)=>{let G=Q.value;return!N1(G)&&G.length!==void 0}),Y._zod.onattach.push((Q)=>{let G=Q._zod.bag;G.minimum=J.length,G.maximum=J.length,G.length=J.length}),Y._zod.check=(Q)=>{let G=Q.value,$=G.length;if($===J.length)return;let W=F1(G),K=$>J.length;Q.issues.push({origin:W,...K?{code:"too_big",maximum:J.length}:{code:"too_small",minimum:J.length},inclusive:!0,exact:!0,input:Q.value,inst:Y,continue:!J.abort})}}),_1=_("$ZodCheckStringFormat",(Y,J)=>{var X,Q;if(k0.init(Y,J),Y._zod.onattach.push((G)=>{let $=G._zod.bag;if($.format=J.format,J.pattern)$.patterns??($.patterns=new Set),$.patterns.add(J.pattern)}),J.pattern)(X=Y._zod).check??(X.check=(G)=>{if(J.pattern.lastIndex=0,J.pattern.test(G.value))return;G.issues.push({origin:"string",code:"invalid_format",format:J.format,input:G.value,...J.pattern?{pattern:J.pattern.toString()}:{},inst:Y,continue:!J.abort})});else(Q=Y._zod).check??(Q.check=()=>{})}),z7=_("$ZodCheckRegex",(Y,J)=>{_1.init(Y,J),Y._zod.check=(X)=>{if(J.pattern.lastIndex=0,J.pattern.test(X.value))return;X.issues.push({origin:"string",code:"invalid_format",format:"regex",input:X.value,pattern:J.pattern.toString(),inst:Y,continue:!J.abort})}}),K7=_("$ZodCheckLowerCase",(Y,J)=>{J.pattern??(J.pattern=e2),_1.init(Y,J)}),U7=_("$ZodCheckUpperCase",(Y,J)=>{J.pattern??(J.pattern=Y7),_1.init(Y,J)}),H7=_("$ZodCheckIncludes",(Y,J)=>{k0.init(Y,J);let X=w6(J.includes),Q=new RegExp(typeof J.position==="number"?`^.{${J.position}}${X}`:X);J.pattern=Q,Y._zod.onattach.push((G)=>{let $=G._zod.bag;$.patterns??($.patterns=new Set),$.patterns.add(Q)}),Y._zod.check=(G)=>{if(G.value.includes(J.includes,J.position))return;G.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:J.includes,input:G.value,inst:Y,continue:!J.abort})}}),Z7=_("$ZodCheckStartsWith",(Y,J)=>{k0.init(Y,J);let X=new RegExp(`^${w6(J.prefix)}.*`);J.pattern??(J.pattern=X),Y._zod.onattach.push((Q)=>{let G=Q._zod.bag;G.patterns??(G.patterns=new Set),G.patterns.add(X)}),Y._zod.check=(Q)=>{if(Q.value.startsWith(J.prefix))return;Q.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:J.prefix,input:Q.value,inst:Y,continue:!J.abort})}}),V7=_("$ZodCheckEndsWith",(Y,J)=>{k0.init(Y,J);let X=new RegExp(`.*${w6(J.suffix)}$`);J.pattern??(J.pattern=X),Y._zod.onattach.push((Q)=>{let G=Q._zod.bag;G.patterns??(G.patterns=new Set),G.patterns.add(X)}),Y._zod.check=(Q)=>{if(Q.value.endsWith(J.suffix))return;Q.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:J.suffix,input:Q.value,inst:Y,continue:!J.abort})}});var B7=_("$ZodCheckOverwrite",(Y,J)=>{k0.init(Y,J),Y._zod.check=(X)=>{X.value=J.tx(X.value)}});class Q4{constructor(Y=[]){if(this.content=[],this.indent=0,this)this.args=Y}indented(Y){this.indent+=1,Y(this),this.indent-=1}write(Y){if(typeof Y==="function"){Y(this,{execution:"sync"}),Y(this,{execution:"async"});return}let X=Y.split(`
|
|
12
|
-
`).filter(($)=>$),Q=Math.min(...X.map(($)=>$.length-$.trimStart().length)),G=X.map(($)=>$.slice(Q)).map(($)=>" ".repeat(this.indent*2)+$);for(let $ of G)this.content.push($)}compile(){let Y=Function,J=this?.args,Q=[...(this?.content??[""]).map((G)=>` ${G}`)];return new Y(...J,Q.join(`
|
|
13
|
-
`))}}var N7={major:4,minor:1,patch:8};var F0=_("$ZodType",(Y,J)=>{var X;Y??(Y={}),Y._zod.def=J,Y._zod.bag=Y._zod.bag||{},Y._zod.version=N7;let Q=[...Y._zod.def.checks??[]];if(Y._zod.traits.has("$ZodCheck"))Q.unshift(Y);for(let G of Q)for(let $ of G._zod.onattach)$(Y);if(Q.length===0)(X=Y._zod).deferred??(X.deferred=[]),Y._zod.deferred?.push(()=>{Y._zod.run=Y._zod.parse});else{let G=(W,K,U)=>{let H=p6(W),B;for(let O of K){if(O._zod.def.when){if(!O._zod.def.when(W))continue}else if(H)continue;let L=W.issues.length,V=O._zod.check(W);if(V instanceof Promise&&U?.async===!1)throw new C6;if(B||V instanceof Promise)B=(B??Promise.resolve()).then(async()=>{if(await V,W.issues.length===L)return;if(!H)H=p6(W,L)});else{if(W.issues.length===L)continue;if(!H)H=p6(W,L)}}if(B)return B.then(()=>{return W});return W},$=(W,K,U)=>{if(p6(W))return W.aborted=!0,W;let H=G(K,Q,U);if(H instanceof Promise){if(U.async===!1)throw new C6;return H.then((B)=>Y._zod.parse(B,U))}return Y._zod.parse(H,U)};Y._zod.run=(W,K)=>{if(K.skipChecks)return Y._zod.parse(W,K);if(K.direction==="backward"){let H=Y._zod.parse({value:W.value,issues:[]},{...K,skipChecks:!0});if(H instanceof Promise)return H.then((B)=>{return $(B,W,K)});return $(H,W,K)}let U=Y._zod.parse(W,K);if(U instanceof Promise){if(K.async===!1)throw new C6;return U.then((H)=>G(H,Q,K))}return G(U,Q,K)}}Y["~standard"]={validate:(G)=>{try{let $=j2(Y,G);return $.success?{value:$.data}:{issues:$.error?.issues}}catch($){return F2(Y,G).then((W)=>W.success?{value:W.data}:{issues:W.error?.issues})}},vendor:"zod",version:1}}),_8=_("$ZodString",(Y,J)=>{F0.init(Y,J),Y._zod.pattern=[...Y?._zod.bag?.patterns??[]].pop()??o2(Y._zod.bag),Y._zod.parse=(X,Q)=>{if(J.coerce)try{X.value=String(X.value)}catch(G){}if(typeof X.value==="string")return X;return X.issues.push({expected:"string",code:"invalid_type",input:X.value,inst:Y}),X}}),D0=_("$ZodStringFormat",(Y,J)=>{_1.init(Y,J),_8.init(Y,J)}),E7=_("$ZodGUID",(Y,J)=>{J.pattern??(J.pattern=k2),D0.init(Y,J)}),A7=_("$ZodUUID",(Y,J)=>{if(J.version){let Q={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[J.version];if(Q===void 0)throw Error(`Invalid UUID version: "${J.version}"`);J.pattern??(J.pattern=eY(Q))}else J.pattern??(J.pattern=eY());D0.init(Y,J)}),T7=_("$ZodEmail",(Y,J)=>{J.pattern??(J.pattern=x2),D0.init(Y,J)}),R7=_("$ZodURL",(Y,J)=>{D0.init(Y,J),Y._zod.check=(X)=>{try{let Q=X.value.trim(),G=new URL(Q);if(J.hostname){if(J.hostname.lastIndex=0,!J.hostname.test(G.hostname))X.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:c2.source,input:X.value,inst:Y,continue:!J.abort})}if(J.protocol){if(J.protocol.lastIndex=0,!J.protocol.test(G.protocol.endsWith(":")?G.protocol.slice(0,-1):G.protocol))X.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:J.protocol.source,input:X.value,inst:Y,continue:!J.abort})}if(J.normalize)X.value=G.href;else X.value=Q;return}catch(Q){X.issues.push({code:"invalid_format",format:"url",input:X.value,inst:Y,continue:!J.abort})}}}),C7=_("$ZodEmoji",(Y,J)=>{J.pattern??(J.pattern=v2()),D0.init(Y,J)}),w7=_("$ZodNanoID",(Y,J)=>{J.pattern??(J.pattern=I2),D0.init(Y,J)}),S7=_("$ZodCUID",(Y,J)=>{J.pattern??(J.pattern=T2),D0.init(Y,J)}),I7=_("$ZodCUID2",(Y,J)=>{J.pattern??(J.pattern=R2),D0.init(Y,J)}),b7=_("$ZodULID",(Y,J)=>{J.pattern??(J.pattern=C2),D0.init(Y,J)}),k7=_("$ZodXID",(Y,J)=>{J.pattern??(J.pattern=w2),D0.init(Y,J)}),x7=_("$ZodKSUID",(Y,J)=>{J.pattern??(J.pattern=S2),D0.init(Y,J)}),v7=_("$ZodISODateTime",(Y,J)=>{J.pattern??(J.pattern=n2(J)),D0.init(Y,J)}),h7=_("$ZodISODate",(Y,J)=>{J.pattern??(J.pattern=l2),D0.init(Y,J)}),y7=_("$ZodISOTime",(Y,J)=>{J.pattern??(J.pattern=i2(J)),D0.init(Y,J)}),g7=_("$ZodISODuration",(Y,J)=>{J.pattern??(J.pattern=b2),D0.init(Y,J)}),f7=_("$ZodIPv4",(Y,J)=>{J.pattern??(J.pattern=h2),D0.init(Y,J),Y._zod.onattach.push((X)=>{let Q=X._zod.bag;Q.format="ipv4"})}),m7=_("$ZodIPv6",(Y,J)=>{J.pattern??(J.pattern=y2),D0.init(Y,J),Y._zod.onattach.push((X)=>{let Q=X._zod.bag;Q.format="ipv6"}),Y._zod.check=(X)=>{try{new URL(`http://[${X.value}]`)}catch{X.issues.push({code:"invalid_format",format:"ipv6",input:X.value,inst:Y,continue:!J.abort})}}}),c7=_("$ZodCIDRv4",(Y,J)=>{J.pattern??(J.pattern=g2),D0.init(Y,J)}),u7=_("$ZodCIDRv6",(Y,J)=>{J.pattern??(J.pattern=f2),D0.init(Y,J),Y._zod.check=(X)=>{let Q=X.value.split("/");try{if(Q.length!==2)throw Error();let[G,$]=Q;if(!$)throw Error();let W=Number($);if(`${W}`!==$)throw Error();if(W<0||W>128)throw Error();new URL(`http://[${G}]`)}catch{X.issues.push({code:"invalid_format",format:"cidrv6",input:X.value,inst:Y,continue:!J.abort})}}});function p7(Y){if(Y==="")return!0;if(Y.length%4!==0)return!1;try{return atob(Y),!0}catch{return!1}}var l7=_("$ZodBase64",(Y,J)=>{J.pattern??(J.pattern=m2),D0.init(Y,J),Y._zod.onattach.push((X)=>{X._zod.bag.contentEncoding="base64"}),Y._zod.check=(X)=>{if(p7(X.value))return;X.issues.push({code:"invalid_format",format:"base64",input:X.value,inst:Y,continue:!J.abort})}});function OU(Y){if(!Y4.test(Y))return!1;let J=Y.replace(/[-_]/g,(Q)=>Q==="-"?"+":"/"),X=J.padEnd(Math.ceil(J.length/4)*4,"=");return p7(X)}var d7=_("$ZodBase64URL",(Y,J)=>{J.pattern??(J.pattern=Y4),D0.init(Y,J),Y._zod.onattach.push((X)=>{X._zod.bag.contentEncoding="base64url"}),Y._zod.check=(X)=>{if(OU(X.value))return;X.issues.push({code:"invalid_format",format:"base64url",input:X.value,inst:Y,continue:!J.abort})}}),i7=_("$ZodE164",(Y,J)=>{J.pattern??(J.pattern=u2),D0.init(Y,J)});function _U(Y,J=null){try{let X=Y.split(".");if(X.length!==3)return!1;let[Q]=X;if(!Q)return!1;let G=JSON.parse(atob(Q));if("typ"in G&&G?.typ!=="JWT")return!1;if(!G.alg)return!1;if(J&&(!("alg"in G)||G.alg!==J))return!1;return!0}catch{return!1}}var n7=_("$ZodJWT",(Y,J)=>{D0.init(Y,J),Y._zod.check=(X)=>{if(_U(X.value,J.alg))return;X.issues.push({code:"invalid_format",format:"jwt",input:X.value,inst:Y,continue:!J.abort})}});var $4=_("$ZodNumber",(Y,J)=>{F0.init(Y,J),Y._zod.pattern=Y._zod.bag.pattern??s2,Y._zod.parse=(X,Q)=>{if(J.coerce)try{X.value=Number(X.value)}catch(W){}let G=X.value;if(typeof G==="number"&&!Number.isNaN(G)&&Number.isFinite(G))return X;let $=typeof G==="number"?Number.isNaN(G)?"NaN":!Number.isFinite(G)?"Infinity":void 0:void 0;return X.issues.push({expected:"number",code:"invalid_type",input:G,inst:Y,...$?{received:$}:{}}),X}}),o7=_("$ZodNumber",(Y,J)=>{Q7.init(Y,J),$4.init(Y,J)}),r7=_("$ZodBoolean",(Y,J)=>{F0.init(Y,J),Y._zod.pattern=a2,Y._zod.parse=(X,Q)=>{if(J.coerce)try{X.value=Boolean(X.value)}catch($){}let G=X.value;if(typeof G==="boolean")return X;return X.issues.push({expected:"boolean",code:"invalid_type",input:G,inst:Y}),X}});var s7=_("$ZodNull",(Y,J)=>{F0.init(Y,J),Y._zod.pattern=t2,Y._zod.values=new Set([null]),Y._zod.parse=(X,Q)=>{let G=X.value;if(G===null)return X;return X.issues.push({expected:"null",code:"invalid_type",input:G,inst:Y}),X}});var a7=_("$ZodUnknown",(Y,J)=>{F0.init(Y,J),Y._zod.parse=(X)=>X}),t7=_("$ZodNever",(Y,J)=>{F0.init(Y,J),Y._zod.parse=(X,Q)=>{return X.issues.push({expected:"never",code:"invalid_type",input:X.value,inst:Y}),X}});function j7(Y,J,X){if(Y.issues.length)J.issues.push(...S6(X,Y.issues));J.value[X]=Y.value}var e7=_("$ZodArray",(Y,J)=>{F0.init(Y,J),Y._zod.parse=(X,Q)=>{let G=X.value;if(!Array.isArray(G))return X.issues.push({expected:"array",code:"invalid_type",input:G,inst:Y}),X;X.value=Array(G.length);let $=[];for(let W=0;W<G.length;W++){let K=G[W],U=J.element._zod.run({value:K,issues:[]},Q);if(U instanceof Promise)$.push(U.then((H)=>j7(H,X,W)));else j7(U,X,W)}if($.length)return Promise.all($).then(()=>X);return X}});function O8(Y,J,X,Q){if(Y.issues.length)J.issues.push(...S6(X,Y.issues));if(Y.value===void 0){if(X in Q)J.value[X]=void 0}else J.value[X]=Y.value}function Y5(Y){let J=Object.keys(Y.shape);for(let Q of J)if(!Y.shape?.[Q]?._zod?.traits?.has("$ZodType"))throw Error(`Invalid element at key "${Q}": expected a Zod schema`);let X=sY(Y.shape);return{...Y,keys:J,keySet:new Set(J),numKeys:J.length,optionalKeys:new Set(X)}}function J5(Y,J,X,Q,G,$){let W=[],K=G.keySet,U=G.catchall._zod,H=U.def.type;for(let B of Object.keys(J)){if(K.has(B))continue;if(H==="never"){W.push(B);continue}let O=U.run({value:J[B],issues:[]},Q);if(O instanceof Promise)Y.push(O.then((L)=>O8(L,X,B,J)));else O8(O,X,B,J)}if(W.length)X.issues.push({code:"unrecognized_keys",keys:W,input:J,inst:$});if(!Y.length)return X;return Promise.all(Y).then(()=>{return X})}var PU=_("$ZodObject",(Y,J)=>{F0.init(Y,J);let X=k9(()=>Y5(J));G0(Y._zod,"propValues",()=>{let W=J.shape,K={};for(let U in W){let H=W[U]._zod;if(H.values){K[U]??(K[U]=new Set);for(let B of H.values)K[U].add(B)}}return K});let Q=$9,G=J.catchall,$;Y._zod.parse=(W,K)=>{$??($=X.value);let U=W.value;if(!Q(U))return W.issues.push({expected:"object",code:"invalid_type",input:U,inst:Y}),W;W.value={};let H=[],B=$.shape;for(let O of $.keys){let V=B[O]._zod.run({value:U[O],issues:[]},K);if(V instanceof Promise)H.push(V.then((F)=>O8(F,W,O,U)));else O8(V,W,O,U)}if(!G)return H.length?Promise.all(H).then(()=>W):W;return J5(H,U,W,K,X.value,Y)}}),X5=_("$ZodObjectJIT",(Y,J)=>{PU.init(Y,J);let X=Y._zod.parse,Q=k9(()=>Y5(J)),G=(L)=>{let V=new Q4(["shape","payload","ctx"]),F=Q.value,P=(x)=>{let j=V8(x);return`shape[${j}]._zod.run({ value: input[${j}], issues: [] }, ctx)`};V.write("const input = payload.value;");let q=Object.create(null),E=0;for(let x of F.keys)q[x]=`key_${E++}`;V.write("const newResult = {};");for(let x of F.keys){let j=q[x],C=V8(x);V.write(`const ${j} = ${P(x)};`),V.write(`
|
|
14
|
-
if (${j}.issues.length) {
|
|
15
|
-
payload.issues = payload.issues.concat(${j}.issues.map(iss => ({
|
|
16
|
-
...iss,
|
|
17
|
-
path: iss.path ? [${C}, ...iss.path] : [${C}]
|
|
18
|
-
})));
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
if (${j}.value === undefined) {
|
|
23
|
-
if (${C} in input) {
|
|
24
|
-
newResult[${C}] = undefined;
|
|
25
|
-
}
|
|
26
|
-
} else {
|
|
27
|
-
newResult[${C}] = ${j}.value;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
`)}V.write("payload.value = newResult;"),V.write("return payload;");let S=V.compile();return(x,j)=>S(L,x,j)},$,W=$9,K=!Z8.jitless,H=K&&oY.value,B=J.catchall,O;Y._zod.parse=(L,V)=>{O??(O=Q.value);let F=L.value;if(!W(F))return L.issues.push({expected:"object",code:"invalid_type",input:F,inst:Y}),L;if(K&&H&&V?.async===!1&&V.jitless!==!0){if(!$)$=G(J.shape);if(L=$(L,V),!B)return L;return J5([],F,L,V,O,Y)}return X(L,V)}});function F7(Y,J,X,Q){for(let $ of Y)if($.issues.length===0)return J.value=$.value,J;let G=Y.filter(($)=>!p6($));if(G.length===1)return J.value=G[0].value,G[0];return J.issues.push({code:"invalid_union",input:J.value,inst:X,errors:Y.map(($)=>$.issues.map((W)=>G6(W,Q,N6())))}),J}var W4=_("$ZodUnion",(Y,J)=>{F0.init(Y,J),G0(Y._zod,"optin",()=>J.options.some((G)=>G._zod.optin==="optional")?"optional":void 0),G0(Y._zod,"optout",()=>J.options.some((G)=>G._zod.optout==="optional")?"optional":void 0),G0(Y._zod,"values",()=>{if(J.options.every((G)=>G._zod.values))return new Set(J.options.flatMap((G)=>Array.from(G._zod.values)));return}),G0(Y._zod,"pattern",()=>{if(J.options.every((G)=>G._zod.pattern)){let G=J.options.map(($)=>$._zod.pattern);return new RegExp(`^(${G.map(($)=>j1($.source)).join("|")})$`)}return});let X=J.options.length===1,Q=J.options[0]._zod.run;Y._zod.parse=(G,$)=>{if(X)return Q(G,$);let W=!1,K=[];for(let U of J.options){let H=U._zod.run({value:G.value,issues:[]},$);if(H instanceof Promise)K.push(H),W=!0;else{if(H.issues.length===0)return H;K.push(H)}}if(!W)return F7(K,G,Y,$);return Promise.all(K).then((U)=>{return F7(U,G,Y,$)})}}),Q5=_("$ZodDiscriminatedUnion",(Y,J)=>{W4.init(Y,J);let X=Y._zod.parse;G0(Y._zod,"propValues",()=>{let G={};for(let $ of J.options){let W=$._zod.propValues;if(!W||Object.keys(W).length===0)throw Error(`Invalid discriminated union option at index "${J.options.indexOf($)}"`);for(let[K,U]of Object.entries(W)){if(!G[K])G[K]=new Set;for(let H of U)G[K].add(H)}}return G});let Q=k9(()=>{let G=J.options,$=new Map;for(let W of G){let K=W._zod.propValues?.[J.discriminator];if(!K||K.size===0)throw Error(`Invalid discriminated union option at index "${J.options.indexOf(W)}"`);for(let U of K){if($.has(U))throw Error(`Duplicate discriminator value "${String(U)}"`);$.set(U,W)}}return $});Y._zod.parse=(G,$)=>{let W=G.value;if(!$9(W))return G.issues.push({code:"invalid_type",expected:"object",input:W,inst:Y}),G;let K=Q.value.get(W?.[J.discriminator]);if(K)return K._zod.run(G,$);if(J.unionFallback)return X(G,$);return G.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:J.discriminator,input:W,path:[J.discriminator],inst:Y}),G}}),G5=_("$ZodIntersection",(Y,J)=>{F0.init(Y,J),Y._zod.parse=(X,Q)=>{let G=X.value,$=J.left._zod.run({value:G,issues:[]},Q),W=J.right._zod.run({value:G,issues:[]},Q);if($ instanceof Promise||W instanceof Promise)return Promise.all([$,W]).then(([U,H])=>{return D7(X,U,H)});return D7(X,$,W)}});function G4(Y,J){if(Y===J)return{valid:!0,data:Y};if(Y instanceof Date&&J instanceof Date&&+Y===+J)return{valid:!0,data:Y};if(u6(Y)&&u6(J)){let X=Object.keys(J),Q=Object.keys(Y).filter(($)=>X.indexOf($)!==-1),G={...Y,...J};for(let $ of Q){let W=G4(Y[$],J[$]);if(!W.valid)return{valid:!1,mergeErrorPath:[$,...W.mergeErrorPath]};G[$]=W.data}return{valid:!0,data:G}}if(Array.isArray(Y)&&Array.isArray(J)){if(Y.length!==J.length)return{valid:!1,mergeErrorPath:[]};let X=[];for(let Q=0;Q<Y.length;Q++){let G=Y[Q],$=J[Q],W=G4(G,$);if(!W.valid)return{valid:!1,mergeErrorPath:[Q,...W.mergeErrorPath]};X.push(W.data)}return{valid:!0,data:X}}return{valid:!1,mergeErrorPath:[]}}function D7(Y,J,X){if(J.issues.length)Y.issues.push(...J.issues);if(X.issues.length)Y.issues.push(...X.issues);if(p6(Y))return Y;let Q=G4(J.value,X.value);if(!Q.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(Q.mergeErrorPath)}`);return Y.value=Q.data,Y}var $5=_("$ZodRecord",(Y,J)=>{F0.init(Y,J),Y._zod.parse=(X,Q)=>{let G=X.value;if(!u6(G))return X.issues.push({expected:"record",code:"invalid_type",input:G,inst:Y}),X;let $=[];if(J.keyType._zod.values){let W=J.keyType._zod.values;X.value={};for(let U of W)if(typeof U==="string"||typeof U==="number"||typeof U==="symbol"){let H=J.valueType._zod.run({value:G[U],issues:[]},Q);if(H instanceof Promise)$.push(H.then((B)=>{if(B.issues.length)X.issues.push(...S6(U,B.issues));X.value[U]=B.value}));else{if(H.issues.length)X.issues.push(...S6(U,H.issues));X.value[U]=H.value}}let K;for(let U in G)if(!W.has(U))K=K??[],K.push(U);if(K&&K.length>0)X.issues.push({code:"unrecognized_keys",input:G,inst:Y,keys:K})}else{X.value={};for(let W of Reflect.ownKeys(G)){if(W==="__proto__")continue;let K=J.keyType._zod.run({value:W,issues:[]},Q);if(K instanceof Promise)throw Error("Async schemas not supported in object keys currently");if(K.issues.length){X.issues.push({code:"invalid_key",origin:"record",issues:K.issues.map((H)=>G6(H,Q,N6())),input:W,path:[W],inst:Y}),X.value[K.value]=K.value;continue}let U=J.valueType._zod.run({value:G[W],issues:[]},Q);if(U instanceof Promise)$.push(U.then((H)=>{if(H.issues.length)X.issues.push(...S6(W,H.issues));X.value[K.value]=H.value}));else{if(U.issues.length)X.issues.push(...S6(W,U.issues));X.value[K.value]=U.value}}}if($.length)return Promise.all($).then(()=>X);return X}});var W5=_("$ZodEnum",(Y,J)=>{F0.init(Y,J);let X=L1(J.entries),Q=new Set(X);Y._zod.values=Q,Y._zod.pattern=new RegExp(`^(${X.filter((G)=>rY.has(typeof G)).map((G)=>typeof G==="string"?w6(G):G.toString()).join("|")})$`),Y._zod.parse=(G,$)=>{let W=G.value;if(Q.has(W))return G;return G.issues.push({code:"invalid_value",values:X,input:W,inst:Y}),G}}),z5=_("$ZodLiteral",(Y,J)=>{if(F0.init(Y,J),J.values.length===0)throw Error("Cannot create literal schema with no valid values");Y._zod.values=new Set(J.values),Y._zod.pattern=new RegExp(`^(${J.values.map((X)=>typeof X==="string"?w6(X):X?w6(X.toString()):String(X)).join("|")})$`),Y._zod.parse=(X,Q)=>{let G=X.value;if(Y._zod.values.has(G))return X;return X.issues.push({code:"invalid_value",values:J.values,input:G,inst:Y}),X}});var K5=_("$ZodTransform",(Y,J)=>{F0.init(Y,J),Y._zod.parse=(X,Q)=>{if(Q.direction==="backward")throw new V1(Y.constructor.name);let G=J.transform(X.value,X);if(Q.async)return(G instanceof Promise?G:Promise.resolve(G)).then((W)=>{return X.value=W,X});if(G instanceof Promise)throw new C6;return X.value=G,X}});function O7(Y,J){if(Y.issues.length&&J===void 0)return{issues:[],value:void 0};return Y}var U5=_("$ZodOptional",(Y,J)=>{F0.init(Y,J),Y._zod.optin="optional",Y._zod.optout="optional",G0(Y._zod,"values",()=>{return J.innerType._zod.values?new Set([...J.innerType._zod.values,void 0]):void 0}),G0(Y._zod,"pattern",()=>{let X=J.innerType._zod.pattern;return X?new RegExp(`^(${j1(X.source)})?$`):void 0}),Y._zod.parse=(X,Q)=>{if(J.innerType._zod.optin==="optional"){let G=J.innerType._zod.run(X,Q);if(G instanceof Promise)return G.then(($)=>O7($,X.value));return O7(G,X.value)}if(X.value===void 0)return X;return J.innerType._zod.run(X,Q)}}),H5=_("$ZodNullable",(Y,J)=>{F0.init(Y,J),G0(Y._zod,"optin",()=>J.innerType._zod.optin),G0(Y._zod,"optout",()=>J.innerType._zod.optout),G0(Y._zod,"pattern",()=>{let X=J.innerType._zod.pattern;return X?new RegExp(`^(${j1(X.source)}|null)$`):void 0}),G0(Y._zod,"values",()=>{return J.innerType._zod.values?new Set([...J.innerType._zod.values,null]):void 0}),Y._zod.parse=(X,Q)=>{if(X.value===null)return X;return J.innerType._zod.run(X,Q)}}),Z5=_("$ZodDefault",(Y,J)=>{F0.init(Y,J),Y._zod.optin="optional",G0(Y._zod,"values",()=>J.innerType._zod.values),Y._zod.parse=(X,Q)=>{if(Q.direction==="backward")return J.innerType._zod.run(X,Q);if(X.value===void 0)return X.value=J.defaultValue,X;let G=J.innerType._zod.run(X,Q);if(G instanceof Promise)return G.then(($)=>_7($,J));return _7(G,J)}});function _7(Y,J){if(Y.value===void 0)Y.value=J.defaultValue;return Y}var V5=_("$ZodPrefault",(Y,J)=>{F0.init(Y,J),Y._zod.optin="optional",G0(Y._zod,"values",()=>J.innerType._zod.values),Y._zod.parse=(X,Q)=>{if(Q.direction==="backward")return J.innerType._zod.run(X,Q);if(X.value===void 0)X.value=J.defaultValue;return J.innerType._zod.run(X,Q)}}),B5=_("$ZodNonOptional",(Y,J)=>{F0.init(Y,J),G0(Y._zod,"values",()=>{let X=J.innerType._zod.values;return X?new Set([...X].filter((Q)=>Q!==void 0)):void 0}),Y._zod.parse=(X,Q)=>{let G=J.innerType._zod.run(X,Q);if(G instanceof Promise)return G.then(($)=>P7($,Y));return P7(G,Y)}});function P7(Y,J){if(!Y.issues.length&&Y.value===void 0)Y.issues.push({code:"invalid_type",expected:"nonoptional",input:Y.value,inst:J});return Y}var L5=_("$ZodCatch",(Y,J)=>{F0.init(Y,J),G0(Y._zod,"optin",()=>J.innerType._zod.optin),G0(Y._zod,"optout",()=>J.innerType._zod.optout),G0(Y._zod,"values",()=>J.innerType._zod.values),Y._zod.parse=(X,Q)=>{if(Q.direction==="backward")return J.innerType._zod.run(X,Q);let G=J.innerType._zod.run(X,Q);if(G instanceof Promise)return G.then(($)=>{if(X.value=$.value,$.issues.length)X.value=J.catchValue({...X,error:{issues:$.issues.map((W)=>G6(W,Q,N6()))},input:X.value}),X.issues=[];return X});if(X.value=G.value,G.issues.length)X.value=J.catchValue({...X,error:{issues:G.issues.map(($)=>G6($,Q,N6()))},input:X.value}),X.issues=[];return X}});var N5=_("$ZodPipe",(Y,J)=>{F0.init(Y,J),G0(Y._zod,"values",()=>J.in._zod.values),G0(Y._zod,"optin",()=>J.in._zod.optin),G0(Y._zod,"optout",()=>J.out._zod.optout),G0(Y._zod,"propValues",()=>J.in._zod.propValues),Y._zod.parse=(X,Q)=>{if(Q.direction==="backward"){let $=J.out._zod.run(X,Q);if($ instanceof Promise)return $.then((W)=>D8(W,J.in,Q));return D8($,J.in,Q)}let G=J.in._zod.run(X,Q);if(G instanceof Promise)return G.then(($)=>D8($,J.out,Q));return D8(G,J.out,Q)}});function D8(Y,J,X){if(Y.issues.length)return Y.aborted=!0,Y;return J._zod.run({value:Y.value,issues:Y.issues},X)}var j5=_("$ZodReadonly",(Y,J)=>{F0.init(Y,J),G0(Y._zod,"propValues",()=>J.innerType._zod.propValues),G0(Y._zod,"values",()=>J.innerType._zod.values),G0(Y._zod,"optin",()=>J.innerType._zod.optin),G0(Y._zod,"optout",()=>J.innerType._zod.optout),Y._zod.parse=(X,Q)=>{if(Q.direction==="backward")return J.innerType._zod.run(X,Q);let G=J.innerType._zod.run(X,Q);if(G instanceof Promise)return G.then(q7);return q7(G)}});function q7(Y){return Y.value=Object.freeze(Y.value),Y}var F5=_("$ZodLazy",(Y,J)=>{F0.init(Y,J),G0(Y._zod,"innerType",()=>J.getter()),G0(Y._zod,"pattern",()=>Y._zod.innerType._zod.pattern),G0(Y._zod,"propValues",()=>Y._zod.innerType._zod.propValues),G0(Y._zod,"optin",()=>Y._zod.innerType._zod.optin??void 0),G0(Y._zod,"optout",()=>Y._zod.innerType._zod.optout??void 0),Y._zod.parse=(X,Q)=>{return Y._zod.innerType._zod.run(X,Q)}}),D5=_("$ZodCustom",(Y,J)=>{k0.init(Y,J),F0.init(Y,J),Y._zod.parse=(X,Q)=>{return X},Y._zod.check=(X)=>{let Q=X.value,G=J.fn(Q);if(G instanceof Promise)return G.then(($)=>M7($,X,Q,Y));M7(G,X,Q,Y);return}});function M7(Y,J,X,Q){if(!Y){let G={code:"custom",input:X,inst:Q,path:[...Q._zod.def.path??[]],continue:!Q._zod.def.abort};if(Q._zod.def.params)G.params=Q._zod.def.params;J.issues.push(x9(G))}}var sF=Symbol("ZodOutput"),aF=Symbol("ZodInput");class P8{constructor(){this._map=new WeakMap,this._idmap=new Map}add(Y,...J){let X=J[0];if(this._map.set(Y,X),X&&typeof X==="object"&&"id"in X){if(this._idmap.has(X.id))throw Error(`ID ${X.id} already exists in the registry`);this._idmap.set(X.id,Y)}return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(Y){let J=this._map.get(Y);if(J&&typeof J==="object"&&"id"in J)this._idmap.delete(J.id);return this._map.delete(Y),this}get(Y){let J=Y._zod.parent;if(J){let X={...this.get(J)??{}};delete X.id;let Q={...X,...this._map.get(Y)};return Object.keys(Q).length?Q:void 0}return this._map.get(Y)}has(Y){return this._map.has(Y)}}function qU(){return new P8}var W9=qU();function O5(Y,J){return new Y({type:"string",...o(J)})}function _5(Y,J){return new Y({type:"string",format:"email",check:"string_format",abort:!1,...o(J)})}function z4(Y,J){return new Y({type:"string",format:"guid",check:"string_format",abort:!1,...o(J)})}function P5(Y,J){return new Y({type:"string",format:"uuid",check:"string_format",abort:!1,...o(J)})}function q5(Y,J){return new Y({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...o(J)})}function M5(Y,J){return new Y({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...o(J)})}function E5(Y,J){return new Y({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...o(J)})}function A5(Y,J){return new Y({type:"string",format:"url",check:"string_format",abort:!1,...o(J)})}function T5(Y,J){return new Y({type:"string",format:"emoji",check:"string_format",abort:!1,...o(J)})}function R5(Y,J){return new Y({type:"string",format:"nanoid",check:"string_format",abort:!1,...o(J)})}function C5(Y,J){return new Y({type:"string",format:"cuid",check:"string_format",abort:!1,...o(J)})}function w5(Y,J){return new Y({type:"string",format:"cuid2",check:"string_format",abort:!1,...o(J)})}function S5(Y,J){return new Y({type:"string",format:"ulid",check:"string_format",abort:!1,...o(J)})}function I5(Y,J){return new Y({type:"string",format:"xid",check:"string_format",abort:!1,...o(J)})}function b5(Y,J){return new Y({type:"string",format:"ksuid",check:"string_format",abort:!1,...o(J)})}function k5(Y,J){return new Y({type:"string",format:"ipv4",check:"string_format",abort:!1,...o(J)})}function x5(Y,J){return new Y({type:"string",format:"ipv6",check:"string_format",abort:!1,...o(J)})}function v5(Y,J){return new Y({type:"string",format:"cidrv4",check:"string_format",abort:!1,...o(J)})}function h5(Y,J){return new Y({type:"string",format:"cidrv6",check:"string_format",abort:!1,...o(J)})}function y5(Y,J){return new Y({type:"string",format:"base64",check:"string_format",abort:!1,...o(J)})}function g5(Y,J){return new Y({type:"string",format:"base64url",check:"string_format",abort:!1,...o(J)})}function f5(Y,J){return new Y({type:"string",format:"e164",check:"string_format",abort:!1,...o(J)})}function m5(Y,J){return new Y({type:"string",format:"jwt",check:"string_format",abort:!1,...o(J)})}function c5(Y,J){return new Y({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...o(J)})}function u5(Y,J){return new Y({type:"string",format:"date",check:"string_format",...o(J)})}function p5(Y,J){return new Y({type:"string",format:"time",check:"string_format",precision:null,...o(J)})}function l5(Y,J){return new Y({type:"string",format:"duration",check:"string_format",...o(J)})}function d5(Y,J){return new Y({type:"number",checks:[],...o(J)})}function i5(Y,J){return new Y({type:"number",check:"number_format",abort:!1,format:"safeint",...o(J)})}function n5(Y,J){return new Y({type:"boolean",...o(J)})}function o5(Y,J){return new Y({type:"null",...o(J)})}function r5(Y){return new Y({type:"unknown"})}function s5(Y,J){return new Y({type:"never",...o(J)})}function q8(Y,J){return new J4({check:"less_than",...o(J),value:Y,inclusive:!1})}function P1(Y,J){return new J4({check:"less_than",...o(J),value:Y,inclusive:!0})}function M8(Y,J){return new X4({check:"greater_than",...o(J),value:Y,inclusive:!1})}function q1(Y,J){return new X4({check:"greater_than",...o(J),value:Y,inclusive:!0})}function E8(Y,J){return new X7({check:"multiple_of",...o(J),value:Y})}function A8(Y,J){return new G7({check:"max_length",...o(J),maximum:Y})}function v9(Y,J){return new $7({check:"min_length",...o(J),minimum:Y})}function T8(Y,J){return new W7({check:"length_equals",...o(J),length:Y})}function K4(Y,J){return new z7({check:"string_format",format:"regex",...o(J),pattern:Y})}function U4(Y){return new K7({check:"string_format",format:"lowercase",...o(Y)})}function H4(Y){return new U7({check:"string_format",format:"uppercase",...o(Y)})}function Z4(Y,J){return new H7({check:"string_format",format:"includes",...o(J),includes:Y})}function V4(Y,J){return new Z7({check:"string_format",format:"starts_with",...o(J),prefix:Y})}function B4(Y,J){return new V7({check:"string_format",format:"ends_with",...o(J),suffix:Y})}function z9(Y){return new B7({check:"overwrite",tx:Y})}function L4(Y){return z9((J)=>J.normalize(Y))}function N4(){return z9((Y)=>Y.trim())}function j4(){return z9((Y)=>Y.toLowerCase())}function F4(){return z9((Y)=>Y.toUpperCase())}function a5(Y,J,X){return new Y({type:"array",element:J,...o(X)})}function t5(Y,J,X){let Q=o(X);return Q.abort??(Q.abort=!0),new Y({type:"custom",check:"custom",fn:J,...Q})}function e5(Y,J,X){return new Y({type:"custom",check:"custom",fn:J,...o(X)})}function YQ(Y){let J=MU((X)=>{return X.addIssue=(Q)=>{if(typeof Q==="string")X.issues.push(x9(Q,X.value,J._zod.def));else{let G=Q;if(G.fatal)G.continue=!1;G.code??(G.code="custom"),G.input??(G.input=X.value),G.inst??(G.inst=J),G.continue??(G.continue=!J._zod.def.abort),X.issues.push(x9(G))}},Y(X.value,X)});return J}function MU(Y,J){let X=new k0({check:"custom",...o(J)});return X._zod.check=Y,X}class D4{constructor(Y){this.counter=0,this.metadataRegistry=Y?.metadata??W9,this.target=Y?.target??"draft-2020-12",this.unrepresentable=Y?.unrepresentable??"throw",this.override=Y?.override??(()=>{}),this.io=Y?.io??"output",this.seen=new Map}process(Y,J={path:[],schemaPath:[]}){var X;let Q=Y._zod.def,G={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},$=this.seen.get(Y);if($){if($.count++,J.schemaPath.includes(Y))$.cycle=J.path;return $.schema}let W={schema:{},count:1,cycle:void 0,path:J.path};this.seen.set(Y,W);let K=Y._zod.toJSONSchema?.();if(K)W.schema=K;else{let B={...J,schemaPath:[...J.schemaPath,Y],path:J.path},O=Y._zod.parent;if(O)W.ref=O,this.process(O,B),this.seen.get(O).isParent=!0;else{let L=W.schema;switch(Q.type){case"string":{let V=L;V.type="string";let{minimum:F,maximum:P,format:q,patterns:E,contentEncoding:S}=Y._zod.bag;if(typeof F==="number")V.minLength=F;if(typeof P==="number")V.maxLength=P;if(q){if(V.format=G[q]??q,V.format==="")delete V.format}if(S)V.contentEncoding=S;if(E&&E.size>0){let x=[...E];if(x.length===1)V.pattern=x[0].source;else if(x.length>1)W.schema.allOf=[...x.map((j)=>({...this.target==="draft-7"||this.target==="draft-4"||this.target==="openapi-3.0"?{type:"string"}:{},pattern:j.source}))]}break}case"number":{let V=L,{minimum:F,maximum:P,format:q,multipleOf:E,exclusiveMaximum:S,exclusiveMinimum:x}=Y._zod.bag;if(typeof q==="string"&&q.includes("int"))V.type="integer";else V.type="number";if(typeof x==="number")if(this.target==="draft-4"||this.target==="openapi-3.0")V.minimum=x,V.exclusiveMinimum=!0;else V.exclusiveMinimum=x;if(typeof F==="number"){if(V.minimum=F,typeof x==="number"&&this.target!=="draft-4")if(x>=F)delete V.minimum;else delete V.exclusiveMinimum}if(typeof S==="number")if(this.target==="draft-4"||this.target==="openapi-3.0")V.maximum=S,V.exclusiveMaximum=!0;else V.exclusiveMaximum=S;if(typeof P==="number"){if(V.maximum=P,typeof S==="number"&&this.target!=="draft-4")if(S<=P)delete V.maximum;else delete V.exclusiveMaximum}if(typeof E==="number")V.multipleOf=E;break}case"boolean":{let V=L;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")L.type="string",L.nullable=!0,L.enum=[null];else L.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":{L.not={};break}case"date":{if(this.unrepresentable==="throw")throw Error("Date cannot be represented in JSON Schema");break}case"array":{let V=L,{minimum:F,maximum:P}=Y._zod.bag;if(typeof F==="number")V.minItems=F;if(typeof P==="number")V.maxItems=P;V.type="array",V.items=this.process(Q.element,{...B,path:[...B.path,"items"]});break}case"object":{let V=L;V.type="object",V.properties={};let F=Q.shape;for(let E in F)V.properties[E]=this.process(F[E],{...B,path:[...B.path,"properties",E]});let P=new Set(Object.keys(F)),q=new Set([...P].filter((E)=>{let S=Q.shape[E]._zod;if(this.io==="input")return S.optin===void 0;else return S.optout===void 0}));if(q.size>0)V.required=Array.from(q);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,{...B,path:[...B.path,"additionalProperties"]});break}case"union":{let V=L,F=Q.options.map((P,q)=>this.process(P,{...B,path:[...B.path,"anyOf",q]}));V.anyOf=F;break}case"intersection":{let V=L,F=this.process(Q.left,{...B,path:[...B.path,"allOf",0]}),P=this.process(Q.right,{...B,path:[...B.path,"allOf",1]}),q=(S)=>("allOf"in S)&&Object.keys(S).length===1,E=[...q(F)?F.allOf:[F],...q(P)?P.allOf:[P]];V.allOf=E;break}case"tuple":{let V=L;V.type="array";let F=this.target==="draft-2020-12"?"prefixItems":"items",P=this.target==="draft-2020-12"?"items":this.target==="openapi-3.0"?"items":"additionalItems",q=Q.items.map((j,C)=>this.process(j,{...B,path:[...B.path,F,C]})),E=Q.rest?this.process(Q.rest,{...B,path:[...B.path,P,...this.target==="openapi-3.0"?[Q.items.length]:[]]}):null;if(this.target==="draft-2020-12"){if(V.prefixItems=q,E)V.items=E}else if(this.target==="openapi-3.0"){if(V.items={anyOf:q},E)V.items.anyOf.push(E);if(V.minItems=q.length,!E)V.maxItems=q.length}else if(V.items=q,E)V.additionalItems=E;let{minimum:S,maximum:x}=Y._zod.bag;if(typeof S==="number")V.minItems=S;if(typeof x==="number")V.maxItems=x;break}case"record":{let V=L;if(V.type="object",this.target==="draft-7"||this.target==="draft-2020-12")V.propertyNames=this.process(Q.keyType,{...B,path:[...B.path,"propertyNames"]});V.additionalProperties=this.process(Q.valueType,{...B,path:[...B.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=L,F=L1(Q.entries);if(F.every((P)=>typeof P==="number"))V.type="number";if(F.every((P)=>typeof P==="string"))V.type="string";V.enum=F;break}case"literal":{let V=L,F=[];for(let P of Q.values)if(P===void 0){if(this.unrepresentable==="throw")throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof P==="bigint")if(this.unrepresentable==="throw")throw Error("BigInt literals cannot be represented in JSON Schema");else F.push(Number(P));else F.push(P);if(F.length===0);else if(F.length===1){let P=F[0];if(V.type=P===null?"null":typeof P,this.target==="draft-4"||this.target==="openapi-3.0")V.enum=[P];else V.const=P}else{if(F.every((P)=>typeof P==="number"))V.type="number";if(F.every((P)=>typeof P==="string"))V.type="string";if(F.every((P)=>typeof P==="boolean"))V.type="string";if(F.every((P)=>P===null))V.type="null";V.enum=F}break}case"file":{let V=L,F={type:"string",format:"binary",contentEncoding:"binary"},{minimum:P,maximum:q,mime:E}=Y._zod.bag;if(P!==void 0)F.minLength=P;if(q!==void 0)F.maxLength=q;if(E)if(E.length===1)F.contentMediaType=E[0],Object.assign(V,F);else V.anyOf=E.map((S)=>{return{...F,contentMediaType:S}});else Object.assign(V,F);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,B);if(this.target==="openapi-3.0")W.ref=Q.innerType,L.nullable=!0;else L.anyOf=[V,{type:"null"}];break}case"nonoptional":{this.process(Q.innerType,B),W.ref=Q.innerType;break}case"success":{let V=L;V.type="boolean";break}case"default":{this.process(Q.innerType,B),W.ref=Q.innerType,L.default=JSON.parse(JSON.stringify(Q.defaultValue));break}case"prefault":{if(this.process(Q.innerType,B),W.ref=Q.innerType,this.io==="input")L._prefault=JSON.parse(JSON.stringify(Q.defaultValue));break}case"catch":{this.process(Q.innerType,B),W.ref=Q.innerType;let V;try{V=Q.catchValue(void 0)}catch{throw Error("Dynamic catch values are not supported in JSON Schema")}L.default=V;break}case"nan":{if(this.unrepresentable==="throw")throw Error("NaN cannot be represented in JSON Schema");break}case"template_literal":{let V=L,F=Y._zod.pattern;if(!F)throw Error("Pattern not found in template literal");V.type="string",V.pattern=F.source;break}case"pipe":{let V=this.io==="input"?Q.in._zod.def.type==="transform"?Q.out:Q.in:Q.out;this.process(V,B),W.ref=V;break}case"readonly":{this.process(Q.innerType,B),W.ref=Q.innerType,L.readOnly=!0;break}case"promise":{this.process(Q.innerType,B),W.ref=Q.innerType;break}case"optional":{this.process(Q.innerType,B),W.ref=Q.innerType;break}case"lazy":{let V=Y._zod.innerType;this.process(V,B),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 U=this.metadataRegistry.get(Y);if(U)Object.assign(W.schema,U);if(this.io==="input"&&C0(Y))delete W.schema.examples,delete W.schema.default;if(this.io==="input"&&W.schema._prefault)(X=W.schema).default??(X.default=W.schema._prefault);return delete W.schema._prefault,this.seen.get(Y).schema}emit(Y,J){let X={cycles:J?.cycles??"ref",reused:J?.reused??"inline",external:J?.external??void 0},Q=this.seen.get(Y);if(!Q)throw Error("Unprocessed schema. This is a bug in Zod.");let G=(H)=>{let B=this.target==="draft-2020-12"?"$defs":"definitions";if(X.external){let F=X.external.registry.get(H[0])?.id,P=X.external.uri??((E)=>E);if(F)return{ref:P(F)};let q=H[1].defId??H[1].schema.id??`schema${this.counter++}`;return H[1].defId=q,{defId:q,ref:`${P("__shared")}#/${B}/${q}`}}if(H[1]===Q)return{ref:"#"};let L=`${"#"}/${B}/`,V=H[1].schema.id??`__schema${this.counter++}`;return{defId:V,ref:L+V}},$=(H)=>{if(H[1].schema.$ref)return;let B=H[1],{ref:O,defId:L}=G(H);if(B.def={...B.schema},L)B.defId=L;let V=B.schema;for(let F in V)delete V[F];V.$ref=O};if(X.cycles==="throw")for(let H of this.seen.entries()){let B=H[1];if(B.cycle)throw Error(`Cycle detected: #/${B.cycle?.join("/")}/<root>
|
|
31
|
-
|
|
32
|
-
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let H of this.seen.entries()){let B=H[1];if(Y===H[0]){$(H);continue}if(X.external){let L=X.external.registry.get(H[0])?.id;if(Y!==H[0]&&L){$(H);continue}}if(this.metadataRegistry.get(H[0])?.id){$(H);continue}if(B.cycle){$(H);continue}if(B.count>1){if(X.reused==="ref"){$(H);continue}}}let W=(H,B)=>{let O=this.seen.get(H),L=O.def??O.schema,V={...L};if(O.ref===null)return;let F=O.ref;if(O.ref=null,F){W(F,B);let P=this.seen.get(F).schema;if(P.$ref&&(B.target==="draft-7"||B.target==="draft-4"||B.target==="openapi-3.0"))L.allOf=L.allOf??[],L.allOf.push(P);else Object.assign(L,P),Object.assign(L,V)}if(!O.isParent)this.override({zodSchema:H,jsonSchema:L,path:O.path??[]})};for(let H of[...this.seen.entries()].reverse())W(H[0],{target:this.target});let K={};if(this.target==="draft-2020-12")K.$schema="https://json-schema.org/draft/2020-12/schema";else if(this.target==="draft-7")K.$schema="http://json-schema.org/draft-07/schema#";else if(this.target==="draft-4")K.$schema="http://json-schema.org/draft-04/schema#";else if(this.target==="openapi-3.0");else console.warn(`Invalid target: ${this.target}`);if(X.external?.uri){let H=X.external.registry.get(Y)?.id;if(!H)throw Error("Schema is missing an `id` property");K.$id=X.external.uri(H)}Object.assign(K,Q.def);let U=X.external?.defs??{};for(let H of this.seen.entries()){let B=H[1];if(B.def&&B.defId)U[B.defId]=B.def}if(X.external);else if(Object.keys(U).length>0)if(this.target==="draft-2020-12")K.$defs=U;else K.definitions=U;try{return JSON.parse(JSON.stringify(K))}catch(H){throw Error("Error converting schema to JSON.")}}}function JQ(Y,J){if(Y instanceof P8){let Q=new D4(J),G={};for(let K of Y._idmap.entries()){let[U,H]=K;Q.process(H)}let $={},W={registry:Y,uri:J?.uri,defs:G};for(let K of Y._idmap.entries()){let[U,H]=K;$[U]=Q.emit(H,{...J,external:W})}if(Object.keys(G).length>0){let K=Q.target==="draft-2020-12"?"$defs":"definitions";$.__shared={[K]:G}}return{schemas:$}}let X=new D4(J);return X.process(Y),X.emit(Y,J)}function C0(Y,J){let X=J??{seen:new Set};if(X.seen.has(Y))return!1;X.seen.add(Y);let G=Y._zod.def;switch(G.type){case"string":case"number":case"bigint":case"boolean":case"date":case"symbol":case"undefined":case"null":case"any":case"unknown":case"never":case"void":case"literal":case"enum":case"nan":case"file":case"template_literal":return!1;case"array":return C0(G.element,X);case"object":{for(let $ in G.shape)if(C0(G.shape[$],X))return!0;return!1}case"union":{for(let $ of G.options)if(C0($,X))return!0;return!1}case"intersection":return C0(G.left,X)||C0(G.right,X);case"tuple":{for(let $ of G.items)if(C0($,X))return!0;if(G.rest&&C0(G.rest,X))return!0;return!1}case"record":return C0(G.keyType,X)||C0(G.valueType,X);case"map":return C0(G.keyType,X)||C0(G.valueType,X);case"set":return C0(G.valueType,X);case"promise":case"optional":case"nonoptional":case"nullable":case"readonly":return C0(G.innerType,X);case"lazy":return C0(G.getter(),X);case"default":return C0(G.innerType,X);case"prefault":return C0(G.innerType,X);case"custom":return!1;case"transform":return!0;case"pipe":return C0(G.in,X)||C0(G.out,X);case"success":return!1;case"catch":return!1;case"function":return!1;default:}throw Error(`Unknown schema type: ${G.type}`)}var wU=_("ZodISODateTime",(Y,J)=>{v7.init(Y,J),O0.init(Y,J)});function XQ(Y){return c5(wU,Y)}var SU=_("ZodISODate",(Y,J)=>{h7.init(Y,J),O0.init(Y,J)});function QQ(Y){return u5(SU,Y)}var IU=_("ZodISOTime",(Y,J)=>{y7.init(Y,J),O0.init(Y,J)});function GQ(Y){return p5(IU,Y)}var bU=_("ZodISODuration",(Y,J)=>{g7.init(Y,J),O0.init(Y,J)});function $Q(Y){return l5(bU,Y)}var WQ=(Y,J)=>{L8.init(Y,J),Y.name="ZodError",Object.defineProperties(Y,{format:{value:(X)=>N2(Y,X)},flatten:{value:(X)=>L2(Y,X)},addIssue:{value:(X)=>{Y.issues.push(X),Y.message=JSON.stringify(Y.issues,b9,2)}},addIssues:{value:(X)=>{Y.issues.push(...X),Y.message=JSON.stringify(Y.issues,b9,2)}},isEmpty:{get(){return Y.issues.length===0}}})},RD=_("ZodError",WQ),r0=_("ZodError",WQ,{Parent:Error});var zQ=N8(r0),KQ=j8(r0),UQ=D1(r0),C8=O1(r0),HQ=D2(r0),ZQ=O2(r0),VQ=_2(r0),BQ=P2(r0),LQ=q2(r0),NQ=M2(r0),jQ=E2(r0),FQ=A2(r0);var _0=_("ZodType",(Y,J)=>{return F0.init(Y,J),Y.def=J,Y.type=J.type,Object.defineProperty(Y,"_def",{value:J}),Y.check=(...X)=>{return Y.clone({...J,checks:[...J.checks??[],...X.map((Q)=>typeof Q==="function"?{_zod:{check:Q,def:{check:"custom"},onattach:[]}}:Q)]})},Y.clone=(X,Q)=>Q6(Y,X,Q),Y.brand=()=>Y,Y.register=(X,Q)=>{return X.add(Y,Q),Y},Y.parse=(X,Q)=>zQ(Y,X,Q,{callee:Y.parse}),Y.safeParse=(X,Q)=>UQ(Y,X,Q),Y.parseAsync=async(X,Q)=>KQ(Y,X,Q,{callee:Y.parseAsync}),Y.safeParseAsync=async(X,Q)=>C8(Y,X,Q),Y.spa=Y.safeParseAsync,Y.encode=(X,Q)=>HQ(Y,X,Q),Y.decode=(X,Q)=>ZQ(Y,X,Q),Y.encodeAsync=async(X,Q)=>VQ(Y,X,Q),Y.decodeAsync=async(X,Q)=>BQ(Y,X,Q),Y.safeEncode=(X,Q)=>LQ(Y,X,Q),Y.safeDecode=(X,Q)=>NQ(Y,X,Q),Y.safeEncodeAsync=async(X,Q)=>jQ(Y,X,Q),Y.safeDecodeAsync=async(X,Q)=>FQ(Y,X,Q),Y.refine=(X,Q)=>Y.check(AH(X,Q)),Y.superRefine=(X)=>Y.check(TH(X)),Y.overwrite=(X)=>Y.check(z9(X)),Y.optional=()=>_Q(Y),Y.nullable=()=>PQ(Y),Y.nullish=()=>_Q(PQ(Y)),Y.nonoptional=(X)=>DH(Y,X),Y.array=()=>P4(Y),Y.or=(X)=>q4([Y,X]),Y.and=(X)=>KH(Y,X),Y.transform=(X)=>qQ(Y,VH(X)),Y.default=(X)=>NH(Y,X),Y.prefault=(X)=>FH(Y,X),Y.catch=(X)=>_H(Y,X),Y.pipe=(X)=>qQ(Y,X),Y.readonly=()=>MH(Y),Y.describe=(X)=>{let Q=Y.clone();return W9.add(Q,{description:X}),Q},Object.defineProperty(Y,"description",{get(){return W9.get(Y)?.description},configurable:!0}),Y.meta=(...X)=>{if(X.length===0)return W9.get(Y);let Q=Y.clone();return W9.add(Q,X[0]),Q},Y.isOptional=()=>Y.safeParse(void 0).success,Y.isNullable=()=>Y.safeParse(null).success,Y}),MQ=_("_ZodString",(Y,J)=>{_8.init(Y,J),_0.init(Y,J);let X=Y._zod.bag;Y.format=X.format??null,Y.minLength=X.minimum??null,Y.maxLength=X.maximum??null,Y.regex=(...Q)=>Y.check(K4(...Q)),Y.includes=(...Q)=>Y.check(Z4(...Q)),Y.startsWith=(...Q)=>Y.check(V4(...Q)),Y.endsWith=(...Q)=>Y.check(B4(...Q)),Y.min=(...Q)=>Y.check(v9(...Q)),Y.max=(...Q)=>Y.check(A8(...Q)),Y.length=(...Q)=>Y.check(T8(...Q)),Y.nonempty=(...Q)=>Y.check(v9(1,...Q)),Y.lowercase=(Q)=>Y.check(U4(Q)),Y.uppercase=(Q)=>Y.check(H4(Q)),Y.trim=()=>Y.check(N4()),Y.normalize=(...Q)=>Y.check(L4(...Q)),Y.toLowerCase=()=>Y.check(j4()),Y.toUpperCase=()=>Y.check(F4())}),hU=_("ZodString",(Y,J)=>{_8.init(Y,J),MQ.init(Y,J),Y.email=(X)=>Y.check(_5(yU,X)),Y.url=(X)=>Y.check(A5(gU,X)),Y.jwt=(X)=>Y.check(m5(eU,X)),Y.emoji=(X)=>Y.check(T5(fU,X)),Y.guid=(X)=>Y.check(z4(DQ,X)),Y.uuid=(X)=>Y.check(P5(w8,X)),Y.uuidv4=(X)=>Y.check(q5(w8,X)),Y.uuidv6=(X)=>Y.check(M5(w8,X)),Y.uuidv7=(X)=>Y.check(E5(w8,X)),Y.nanoid=(X)=>Y.check(R5(mU,X)),Y.guid=(X)=>Y.check(z4(DQ,X)),Y.cuid=(X)=>Y.check(C5(cU,X)),Y.cuid2=(X)=>Y.check(w5(uU,X)),Y.ulid=(X)=>Y.check(S5(pU,X)),Y.base64=(X)=>Y.check(y5(sU,X)),Y.base64url=(X)=>Y.check(g5(aU,X)),Y.xid=(X)=>Y.check(I5(lU,X)),Y.ksuid=(X)=>Y.check(b5(dU,X)),Y.ipv4=(X)=>Y.check(k5(iU,X)),Y.ipv6=(X)=>Y.check(x5(nU,X)),Y.cidrv4=(X)=>Y.check(v5(oU,X)),Y.cidrv6=(X)=>Y.check(h5(rU,X)),Y.e164=(X)=>Y.check(f5(tU,X)),Y.datetime=(X)=>Y.check(XQ(X)),Y.date=(X)=>Y.check(QQ(X)),Y.time=(X)=>Y.check(GQ(X)),Y.duration=(X)=>Y.check($Q(X))});function EQ(Y){return O5(hU,Y)}var O0=_("ZodStringFormat",(Y,J)=>{D0.init(Y,J),MQ.init(Y,J)}),yU=_("ZodEmail",(Y,J)=>{T7.init(Y,J),O0.init(Y,J)});var DQ=_("ZodGUID",(Y,J)=>{E7.init(Y,J),O0.init(Y,J)});var w8=_("ZodUUID",(Y,J)=>{A7.init(Y,J),O0.init(Y,J)});var gU=_("ZodURL",(Y,J)=>{R7.init(Y,J),O0.init(Y,J)});var fU=_("ZodEmoji",(Y,J)=>{C7.init(Y,J),O0.init(Y,J)});var mU=_("ZodNanoID",(Y,J)=>{w7.init(Y,J),O0.init(Y,J)});var cU=_("ZodCUID",(Y,J)=>{S7.init(Y,J),O0.init(Y,J)});var uU=_("ZodCUID2",(Y,J)=>{I7.init(Y,J),O0.init(Y,J)});var pU=_("ZodULID",(Y,J)=>{b7.init(Y,J),O0.init(Y,J)});var lU=_("ZodXID",(Y,J)=>{k7.init(Y,J),O0.init(Y,J)});var dU=_("ZodKSUID",(Y,J)=>{x7.init(Y,J),O0.init(Y,J)});var iU=_("ZodIPv4",(Y,J)=>{f7.init(Y,J),O0.init(Y,J)});var nU=_("ZodIPv6",(Y,J)=>{m7.init(Y,J),O0.init(Y,J)});var oU=_("ZodCIDRv4",(Y,J)=>{c7.init(Y,J),O0.init(Y,J)});var rU=_("ZodCIDRv6",(Y,J)=>{u7.init(Y,J),O0.init(Y,J)});var sU=_("ZodBase64",(Y,J)=>{l7.init(Y,J),O0.init(Y,J)});var aU=_("ZodBase64URL",(Y,J)=>{d7.init(Y,J),O0.init(Y,J)});var tU=_("ZodE164",(Y,J)=>{i7.init(Y,J),O0.init(Y,J)});var eU=_("ZodJWT",(Y,J)=>{n7.init(Y,J),O0.init(Y,J)});var AQ=_("ZodNumber",(Y,J)=>{$4.init(Y,J),_0.init(Y,J),Y.gt=(Q,G)=>Y.check(M8(Q,G)),Y.gte=(Q,G)=>Y.check(q1(Q,G)),Y.min=(Q,G)=>Y.check(q1(Q,G)),Y.lt=(Q,G)=>Y.check(q8(Q,G)),Y.lte=(Q,G)=>Y.check(P1(Q,G)),Y.max=(Q,G)=>Y.check(P1(Q,G)),Y.int=(Q)=>Y.check(OQ(Q)),Y.safe=(Q)=>Y.check(OQ(Q)),Y.positive=(Q)=>Y.check(M8(0,Q)),Y.nonnegative=(Q)=>Y.check(q1(0,Q)),Y.negative=(Q)=>Y.check(q8(0,Q)),Y.nonpositive=(Q)=>Y.check(P1(0,Q)),Y.multipleOf=(Q,G)=>Y.check(E8(Q,G)),Y.step=(Q,G)=>Y.check(E8(Q,G)),Y.finite=()=>Y;let X=Y._zod.bag;Y.minValue=Math.max(X.minimum??Number.NEGATIVE_INFINITY,X.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,Y.maxValue=Math.min(X.maximum??Number.POSITIVE_INFINITY,X.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,Y.isInt=(X.format??"").includes("int")||Number.isSafeInteger(X.multipleOf??0.5),Y.isFinite=!0,Y.format=X.format??null});function TQ(Y){return d5(AQ,Y)}var YH=_("ZodNumberFormat",(Y,J)=>{o7.init(Y,J),AQ.init(Y,J)});function OQ(Y){return i5(YH,Y)}var JH=_("ZodBoolean",(Y,J)=>{r7.init(Y,J),_0.init(Y,J)});function RQ(Y){return n5(JH,Y)}var XH=_("ZodNull",(Y,J)=>{s7.init(Y,J),_0.init(Y,J)});function CQ(Y){return o5(XH,Y)}var QH=_("ZodUnknown",(Y,J)=>{a7.init(Y,J),_0.init(Y,J)});function M1(){return r5(QH)}var GH=_("ZodNever",(Y,J)=>{t7.init(Y,J),_0.init(Y,J)});function _4(Y){return s5(GH,Y)}var $H=_("ZodArray",(Y,J)=>{e7.init(Y,J),_0.init(Y,J),Y.element=J.element,Y.min=(X,Q)=>Y.check(v9(X,Q)),Y.nonempty=(X)=>Y.check(v9(1,X)),Y.max=(X,Q)=>Y.check(A8(X,Q)),Y.length=(X,Q)=>Y.check(T8(X,Q)),Y.unwrap=()=>Y.element});function P4(Y,J){return a5($H,Y,J)}var wQ=_("ZodObject",(Y,J)=>{X5.init(Y,J),_0.init(Y,J),Q0.defineLazy(Y,"shape",()=>J.shape),Y.keyof=()=>M4(Object.keys(Y._zod.def.shape)),Y.catchall=(X)=>Y.clone({...Y._zod.def,catchall:X}),Y.passthrough=()=>Y.clone({...Y._zod.def,catchall:M1()}),Y.loose=()=>Y.clone({...Y._zod.def,catchall:M1()}),Y.strict=()=>Y.clone({...Y._zod.def,catchall:_4()}),Y.strip=()=>Y.clone({...Y._zod.def,catchall:void 0}),Y.extend=(X)=>{return Q0.extend(Y,X)},Y.safeExtend=(X)=>{return Q0.safeExtend(Y,X)},Y.merge=(X)=>Q0.merge(Y,X),Y.pick=(X)=>Q0.pick(Y,X),Y.omit=(X)=>Q0.omit(Y,X),Y.partial=(...X)=>Q0.partial(hQ,Y,X[0]),Y.required=(...X)=>Q0.required(yQ,Y,X[0])});function SQ(Y,J){let X={type:"object",get shape(){return Q0.assignProp(this,"shape",Y?Q0.objectClone(Y):{}),this.shape},...Q0.normalizeParams(J)};return new wQ(X)}function IQ(Y,J){return new wQ({type:"object",get shape(){return Q0.assignProp(this,"shape",Q0.objectClone(Y)),this.shape},catchall:M1(),...Q0.normalizeParams(J)})}var bQ=_("ZodUnion",(Y,J)=>{W4.init(Y,J),_0.init(Y,J),Y.options=J.options});function q4(Y,J){return new bQ({type:"union",options:Y,...Q0.normalizeParams(J)})}var WH=_("ZodDiscriminatedUnion",(Y,J)=>{bQ.init(Y,J),Q5.init(Y,J)});function kQ(Y,J,X){return new WH({type:"union",options:J,discriminator:Y,...Q0.normalizeParams(X)})}var zH=_("ZodIntersection",(Y,J)=>{G5.init(Y,J),_0.init(Y,J)});function KH(Y,J){return new zH({type:"intersection",left:Y,right:J})}var UH=_("ZodRecord",(Y,J)=>{$5.init(Y,J),_0.init(Y,J),Y.keyType=J.keyType,Y.valueType=J.valueType});function xQ(Y,J,X){return new UH({type:"record",keyType:Y,valueType:J,...Q0.normalizeParams(X)})}var O4=_("ZodEnum",(Y,J)=>{W5.init(Y,J),_0.init(Y,J),Y.enum=J.entries,Y.options=Object.values(J.entries);let X=new Set(Object.keys(J.entries));Y.extract=(Q,G)=>{let $={};for(let W of Q)if(X.has(W))$[W]=J.entries[W];else throw Error(`Key ${W} not found in enum`);return new O4({...J,checks:[],...Q0.normalizeParams(G),entries:$})},Y.exclude=(Q,G)=>{let $={...J.entries};for(let W of Q)if(X.has(W))delete $[W];else throw Error(`Key ${W} not found in enum`);return new O4({...J,checks:[],...Q0.normalizeParams(G),entries:$})}});function M4(Y,J){let X=Array.isArray(Y)?Object.fromEntries(Y.map((Q)=>[Q,Q])):Y;return new O4({type:"enum",entries:X,...Q0.normalizeParams(J)})}var HH=_("ZodLiteral",(Y,J)=>{z5.init(Y,J),_0.init(Y,J),Y.values=new Set(J.values),Object.defineProperty(Y,"value",{get(){if(J.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return J.values[0]}})});function vQ(Y,J){return new HH({type:"literal",values:Array.isArray(Y)?Y:[Y],...Q0.normalizeParams(J)})}var ZH=_("ZodTransform",(Y,J)=>{K5.init(Y,J),_0.init(Y,J),Y._zod.parse=(X,Q)=>{if(Q.direction==="backward")throw new V1(Y.constructor.name);X.addIssue=($)=>{if(typeof $==="string")X.issues.push(Q0.issue($,X.value,J));else{let W=$;if(W.fatal)W.continue=!1;W.code??(W.code="custom"),W.input??(W.input=X.value),W.inst??(W.inst=Y),X.issues.push(Q0.issue(W))}};let G=J.transform(X.value,X);if(G instanceof Promise)return G.then(($)=>{return X.value=$,X});return X.value=G,X}});function VH(Y){return new ZH({type:"transform",transform:Y})}var hQ=_("ZodOptional",(Y,J)=>{U5.init(Y,J),_0.init(Y,J),Y.unwrap=()=>Y._zod.def.innerType});function _Q(Y){return new hQ({type:"optional",innerType:Y})}var BH=_("ZodNullable",(Y,J)=>{H5.init(Y,J),_0.init(Y,J),Y.unwrap=()=>Y._zod.def.innerType});function PQ(Y){return new BH({type:"nullable",innerType:Y})}var LH=_("ZodDefault",(Y,J)=>{Z5.init(Y,J),_0.init(Y,J),Y.unwrap=()=>Y._zod.def.innerType,Y.removeDefault=Y.unwrap});function NH(Y,J){return new LH({type:"default",innerType:Y,get defaultValue(){return typeof J==="function"?J():Q0.shallowClone(J)}})}var jH=_("ZodPrefault",(Y,J)=>{V5.init(Y,J),_0.init(Y,J),Y.unwrap=()=>Y._zod.def.innerType});function FH(Y,J){return new jH({type:"prefault",innerType:Y,get defaultValue(){return typeof J==="function"?J():Q0.shallowClone(J)}})}var yQ=_("ZodNonOptional",(Y,J)=>{B5.init(Y,J),_0.init(Y,J),Y.unwrap=()=>Y._zod.def.innerType});function DH(Y,J){return new yQ({type:"nonoptional",innerType:Y,...Q0.normalizeParams(J)})}var OH=_("ZodCatch",(Y,J)=>{L5.init(Y,J),_0.init(Y,J),Y.unwrap=()=>Y._zod.def.innerType,Y.removeCatch=Y.unwrap});function _H(Y,J){return new OH({type:"catch",innerType:Y,catchValue:typeof J==="function"?J:()=>J})}var PH=_("ZodPipe",(Y,J)=>{N5.init(Y,J),_0.init(Y,J),Y.in=J.in,Y.out=J.out});function qQ(Y,J){return new PH({type:"pipe",in:Y,out:J})}var qH=_("ZodReadonly",(Y,J)=>{j5.init(Y,J),_0.init(Y,J),Y.unwrap=()=>Y._zod.def.innerType});function MH(Y){return new qH({type:"readonly",innerType:Y})}var EH=_("ZodLazy",(Y,J)=>{F5.init(Y,J),_0.init(Y,J),Y.unwrap=()=>Y._zod.def.getter()});function gQ(Y){return new EH({type:"lazy",getter:Y})}var E4=_("ZodCustom",(Y,J)=>{D5.init(Y,J),_0.init(Y,J)});function fQ(Y,J){return t5(E4,Y??(()=>!0),J)}function AH(Y,J={}){return e5(E4,Y,J)}function TH(Y){return YQ(Y)}function mQ(Y,J={error:`Input not instance of ${Y.name}`}){let X=new E4({type:"custom",check:"custom",fn:(Q)=>Q instanceof Y,abort:!0,...Q0.normalizeParams(J)});return X._zod.bag.Class=Y,X}function sQ(Y=globalThis){if(Y.navigator?.userAgent)return Y.navigator.userAgent.toLowerCase();if(Y.process?.versions?.node)return`node.js/${Y.process.version}`;if(Y.EdgeRuntime)return"vercel-edge";return""}function aQ(Y){if(Y==null)return{};let J={};if(Y instanceof Headers)Y.forEach((X,Q)=>{J[Q.toLowerCase()]=X});else{if(!Array.isArray(Y))Y=Object.entries(Y);for(let[X,Q]of Y)if(Q!=null)J[X.toLowerCase()]=Q}return J}function tQ(Y,...J){let X=new Headers(aQ(Y)),Q=X.get("user-agent")||"";return X.set("user-agent",[Q,...J].filter(Boolean).join(" ")),Object.fromEntries(X.entries())}var SH=[{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]}],DO=[...SH,{mediaType:"audio/mp4",bytesPrefix:[0,0,0,null,102,116,121,112]}];async function S8(Y){try{await Y.body?.cancel()}catch{}}var eQ="AI_DownloadError",YG=`vercel.ai.error.${eQ}`,IH=Symbol.for(YG),h0=class extends R6{constructor({url:Y,statusCode:J,statusText:X,cause:Q,message:G=Q==null?`Failed to download ${Y}: ${J} ${X}`:`Failed to download ${Y}: ${Q}`}){super({name:eQ,message:G,cause:Q});this[IH]=!0,this.url=Y,this.statusCode=J,this.statusText=X}static isInstance(Y){return R6.hasMarker(Y,YG)}};function bH(Y=globalThis){return Y.window!=null}function R4(Y,J){try{return new URL(Y).origin===new URL(J).origin}catch{return!1}}function kH(Y){let J;try{J=new URL(Y)}catch{throw new h0({url:Y,message:`Invalid URL: ${Y}`})}if(J.protocol==="data:")return;if(J.protocol!=="http:"&&J.protocol!=="https:")throw new h0({url:Y,message:`URL scheme must be http, https, or data, got ${J.protocol}`});let X=J.hostname.toLowerCase().replace(/\.+$/,"");if(!X)throw new h0({url:Y,message:"URL must have a hostname"});if(X==="localhost"||X.endsWith(".local")||X.endsWith(".localhost"))throw new h0({url:Y,message:`URL with hostname ${X} is not allowed`});if(X.startsWith("[")&&X.endsWith("]")){if(JG(X.slice(1,-1)))throw new h0({url:Y,message:`URL with IPv6 address ${X} is not allowed`});return}if(w4(X)){if(S4(X))throw new h0({url:Y,message:`URL with IP address ${X} is not allowed`})}}function xH({address:Y,family:J,hostname:X}){if(J===4?!w4(Y)||S4(Y):J===6?JG(Y):!0)throw new h0({url:X,message:`Hostname ${X} resolved to disallowed IP address ${Y}`})}function w4(Y){let J=Y.split(".");if(J.length!==4)return!1;return J.every((X)=>{let Q=Number(X);return Number.isInteger(Q)&&Q>=0&&Q<=255&&String(Q)===X})}function S4(Y){let[J,X,Q]=Y.split(".").map(Number);if(J===0)return!0;if(J===10)return!0;if(J===100&&X>=64&&X<=127)return!0;if(J===127)return!0;if(J===169&&X===254)return!0;if(J===172&&X>=16&&X<=31)return!0;if(J===192&&X===0&&Q===0)return!0;if(J===192&&X===0&&Q===2)return!0;if(J===192&&X===168)return!0;if(J===198&&(X===18||X===19))return!0;if(J===198&&X===51&&Q===100)return!0;if(J===203&&X===0&&Q===113)return!0;if(J>=224)return!0;return!1}function vH(Y){let J=Y.toLowerCase(),X=J.indexOf("%");if(X!==-1)J=J.slice(0,X);let Q=J.split("::");if(Q.length>2)return null;let G=(W)=>{if(W==="")return[];let K=[],U=W.split(":");for(let H=0;H<U.length;H++){let B=U[H];if(B.includes(".")){if(H!==U.length-1||!w4(B))return null;let[O,L,V,F]=B.split(".").map(Number);K.push(O<<8|L,V<<8|F);continue}if(!/^[0-9a-f]{1,4}$/.test(B))return null;K.push(parseInt(B,16))}return K},$=G(Q[0]);if($===null)return null;if(Q.length===2){let W=G(Q[1]);if(W===null)return null;let K=8-$.length-W.length;if(K<0)return null;return[...$,...Array(K).fill(0),...W]}return $.length===8?$:null}function JG(Y){let J=vH(Y);if(J===null)return!0;let X=(Q)=>J.slice(0,Q).every((G)=>G===0);if(X(7)&&(J[7]===0||J[7]===1))return!0;if((J[0]&65024)===64512)return!0;if((J[0]&65472)===65152)return!0;if((J[0]&65472)===65216)return!0;if((J[0]&65280)===65280)return!0;if(J[0]===8193&&J[1]===3512)return!0;if(J[0]===16383&&(J[1]&61440)===0)return!0;if(X(6)||X(5)&&J[5]===65535||X(4)&&J[4]===65535&&J[5]===0||J[0]===100&&J[1]===65435&&J[2]===0&&J[3]===0&&J[4]===0&&J[5]===0||J[0]===100&&J[1]===65435&&J[2]===1)return S4(`${J[6]>>8&255}.${J[6]&255}.${J[7]>>8&255}.${J[7]&255}`);return!1}function hH(Y){return(J,X,Q)=>{Y(J,{...X,all:!0},(G,$)=>{if(G){Q(G);return}try{let[W]=$;if(W==null)throw Error(`Hostname ${J} did not resolve to an address`);for(let{address:K,family:U}of $)xH({address:K,family:U,hostname:J});if(X.all===!0)Q(null,$);else Q(null,W.address,W.family)}catch(W){Q(W instanceof Error?W:Error(String(W)))}})}}var yH;function gH(){let Y=globalThis.process;return Y?.release?.name==="node"&&Y.versions?.bun==null&&Y.versions?.deno==null&&Y.title!=="workerd"&&globalThis.EdgeRuntime==null}async function fH(){if(!gH())return globalThis.fetch;return yH??=Promise.resolve().then(mH)}function mH(){let Y=cQ("node:module"),{lookup:J}=cQ("node:dns"),{Agent:X,fetch:Q}=Y.createRequire(XG())("undici"),G=new X({connect:{lookup:hH(J)}});return($,W)=>Q($,{...W,dispatcher:G})}function cQ(Y){let J=globalThis.process?.getBuiltinModule?.(Y);if(J==null)throw Error(`Node.js built-in module ${Y} is unavailable`);return J}function XG(){let Y=Error.prepareStackTrace;try{Error.prepareStackTrace=(G,$)=>$;let J=Error("Capture current module path");Error.captureStackTrace(J,XG);let[X]=J.stack,Q=X?.getFileName();if(Q==null)throw Error("Unable to determine the current module path");return Q}finally{Error.prepareStackTrace=Y}}var cH=["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 QG(Y){let J=new Headers(Y);for(let X of cH)J.delete(X);return J}var uH=10,pH=new Set([301,302,303,307,308]);async function lH(Y){return Y==null||Y===globalThis.fetch?await fH():Y}async function dH({url:Y,headers:J,abortSignal:X,maxRedirects:Q=uH,fetch:G,trustedOrigin:$}){let W=J===void 0?void 0:QG(J),K=(H)=>{let B={signal:X,redirect:H};if(W!==void 0)B.headers=new Headers(W);return B},U=Y;for(let H=0;H<=Q;H++){let B=$!==void 0&&R4(U,$);if(!B)kH(U);let O=B&&G!=null?G:B?globalThis.fetch:await lH(G),L=await O(U,K("manual"));if(L.type==="opaqueredirect"){if(!bH())throw new h0({url:Y,message:`Redirect from ${U} could not be validated and was blocked`});return await O(U,K("follow"))}let V=L.headers?.get("location");if(pH.has(L.status)&&V){S8(L);let F=new URL(V,U).toString();if(W!==void 0&&!R4(F,U)){let P=W.get("user-agent");W=new Headers(P==null?void 0:{"user-agent":P})}U=F;continue}return L}throw new h0({url:Y,message:`Too many redirects (max ${Q})`})}var iH=new Set(["accept","accept-language","baggage","cache-control","idempotency-key","if-match","if-modified-since","if-none-match","if-range","if-unmodified-since","pragma","range","traceparent","tracestate","user-agent","x-correlation-id","x-request-id"]);async function GG({headers:Y,credentialedOrigin:J,untrustedFirstHopHeaders:X,...Q}){let G;if(Y!==void 0){G=QG(Y);let $=J??Q.trustedOrigin;if($===void 0||!R4(Q.url,$)){let W=new Set([...iH,...(X??[]).map((K)=>K.toLowerCase())]);G=new Headers([...G].filter(([K])=>W.has(K)))}}return dH({...Q,headers:G})}var I4=2147483648;async function $G({response:Y,url:J,maxBytes:X=I4}){let Q=Y.headers.get("content-length");if(Q!=null){let B=parseInt(Q,10);if(!isNaN(B)&&B>X)throw await S8(Y),new h0({url:J,message:`Download of ${J} exceeded maximum size of ${X} bytes (Content-Length: ${B}).`})}let G=Y.body;if(G==null)return new Uint8Array(0);let $=G.getReader(),W=[],K=0;try{while(!0){let{done:B,value:O}=await $.read();if(B)break;if(K+=O.length,K>X)throw new h0({url:J,message:`Download of ${J} exceeded maximum size of ${X} bytes.`});W.push(O.byteLength<O.buffer.byteLength?new Uint8Array(O):O)}}finally{try{await $.cancel()}catch{}finally{$.releaseLock()}}let U=new Uint8Array(K),H=0;for(let B of W)U.set(B,H),H+=B.length;return U}var I0=({prefix:Y,size:J=16,alphabet:X="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:Q="-"}={})=>{let G=()=>{let $=X.length,W=Array(J);for(let K=0;K<J;K++)W[K]=X[Math.random()*$|0];return W.join("")};if(Y==null)return G;if(X.includes(Q))throw new lY({argument:"separator",message:`The separator "${Q}" must not be part of the alphabet "${X}".`});return()=>`${Y}${Q}${G()}`},WG=I0();function zG(Y){return globalThis.Buffer?.isBuffer(Y)??!1}function KG(Y){if(Y.type==="object"||Array.isArray(Y.type)&&Y.type.includes("object")){let{additionalProperties:X}=Y;Y.additionalProperties=X!=null&&typeof X!=="boolean"?l6(X):!1;let{properties:Q}=Y;if(Q!=null)for(let G of Object.keys(Q))Q[G]=l6(Q[G])}if(Y.items!=null)Y.items=Array.isArray(Y.items)?Y.items.map(l6):l6(Y.items);if(Y.anyOf!=null)Y.anyOf=Y.anyOf.map(l6);if(Y.allOf!=null)Y.allOf=Y.allOf.map(l6);if(Y.oneOf!=null)Y.oneOf=Y.oneOf.map(l6);let{definitions:J}=Y;if(J!=null)for(let X of Object.keys(J))J[X]=l6(J[X]);return Y}function l6(Y){if(typeof Y==="boolean")return Y;return KG(Y)}var nH=Symbol("Let zodToJsonSchema decide on which parser to use"),uQ={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"},oH=(Y)=>typeof Y==="string"?{...uQ,name:Y}:{...uQ,...Y};function s0(){return{}}function rH(Y,J){let X={type:"array"};if(Y.type?._def&&Y.type?._def?.typeName!=="ZodAny")X.items=Z0(Y.type._def,{...J,currentPath:[...J.currentPath,"items"]});if(Y.minLength)X.minItems=Y.minLength.value;if(Y.maxLength)X.maxItems=Y.maxLength.value;if(Y.exactLength)X.minItems=Y.exactLength.value,X.maxItems=Y.exactLength.value;return X}function sH(Y){let J={type:"integer",format:"int64"};if(!Y.checks)return J;for(let X of Y.checks)switch(X.kind){case"min":if(X.inclusive)J.minimum=X.value;else J.exclusiveMinimum=X.value;break;case"max":if(X.inclusive)J.maximum=X.value;else J.exclusiveMaximum=X.value;break;case"multipleOf":J.multipleOf=X.value}return J}function aH(){return{type:"boolean"}}function UG(Y,J){return Z0(Y.type._def,J)}var tH=(Y,J)=>{return Z0(Y.innerType._def,J)};function HG(Y,J,X){let Q=X??J.dateStrategy;if(Array.isArray(Q))return{anyOf:Q.map((G)=>HG(Y,J,G))};switch(Q){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return eH(Y)}}var eH=(Y)=>{let J={type:"integer",format:"unix-time"};for(let X of Y.checks)switch(X.kind){case"min":J.minimum=X.value;break;case"max":J.maximum=X.value}return J};function YZ(Y,J){return{...Z0(Y.innerType._def,J),default:Y.defaultValue()}}function JZ(Y,J){return J.effectStrategy==="input"?Z0(Y.schema._def,J):s0()}function XZ(Y){return{type:"string",enum:Array.from(Y.values)}}var QZ=(Y)=>{if("type"in Y&&Y.type==="string")return!1;return"allOf"in Y};function GZ(Y,J){let X=[Z0(Y.left._def,{...J,currentPath:[...J.currentPath,"allOf","0"]}),Z0(Y.right._def,{...J,currentPath:[...J.currentPath,"allOf","1"]})].filter((G)=>!!G),Q=[];return X.forEach((G)=>{if(QZ(G))Q.push(...G.allOf);else{let $=G;if("additionalProperties"in G&&G.additionalProperties===!1){let{additionalProperties:W,...K}=G;$=K}Q.push($)}}),Q.length?{allOf:Q}:void 0}function $Z(Y){let J=typeof Y.value;if(J!=="bigint"&&J!=="number"&&J!=="boolean"&&J!=="string")return{type:Array.isArray(Y.value)?"array":"object"};return{type:J==="bigint"?"integer":J,const:Y.value}}var A4=void 0,$6={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(A4===void 0)A4=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return A4},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 ZG(Y,J){let X={type:"string"};if(Y.checks)for(let Q of Y.checks)switch(Q.kind){case"min":X.minLength=typeof X.minLength==="number"?Math.max(X.minLength,Q.value):Q.value;break;case"max":X.maxLength=typeof X.maxLength==="number"?Math.min(X.maxLength,Q.value):Q.value;break;case"email":switch(J.emailStrategy){case"format:email":W6(X,"email",Q.message,J);break;case"format:idn-email":W6(X,"idn-email",Q.message,J);break;case"pattern:zod":c0(X,$6.email,Q.message,J)}break;case"url":W6(X,"uri",Q.message,J);break;case"uuid":W6(X,"uuid",Q.message,J);break;case"regex":c0(X,Q.regex,Q.message,J);break;case"cuid":c0(X,$6.cuid,Q.message,J);break;case"cuid2":c0(X,$6.cuid2,Q.message,J);break;case"startsWith":c0(X,RegExp(`^${T4(Q.value,J)}`),Q.message,J);break;case"endsWith":c0(X,RegExp(`${T4(Q.value,J)}$`),Q.message,J);break;case"datetime":W6(X,"date-time",Q.message,J);break;case"date":W6(X,"date",Q.message,J);break;case"time":W6(X,"time",Q.message,J);break;case"duration":W6(X,"duration",Q.message,J);break;case"length":X.minLength=typeof X.minLength==="number"?Math.max(X.minLength,Q.value):Q.value,X.maxLength=typeof X.maxLength==="number"?Math.min(X.maxLength,Q.value):Q.value;break;case"includes":c0(X,RegExp(T4(Q.value,J)),Q.message,J);break;case"ip":if(Q.version!=="v6")W6(X,"ipv4",Q.message,J);if(Q.version!=="v4")W6(X,"ipv6",Q.message,J);break;case"base64url":c0(X,$6.base64url,Q.message,J);break;case"jwt":c0(X,$6.jwt,Q.message,J);break;case"cidr":if(Q.version!=="v6")c0(X,$6.ipv4Cidr,Q.message,J);if(Q.version!=="v4")c0(X,$6.ipv6Cidr,Q.message,J);break;case"emoji":c0(X,$6.emoji(),Q.message,J);break;case"ulid":c0(X,$6.ulid,Q.message,J);break;case"base64":switch(J.base64Strategy){case"format:binary":W6(X,"binary",Q.message,J);break;case"contentEncoding:base64":X.contentEncoding="base64";break;case"pattern:zod":c0(X,$6.base64,Q.message,J)}break;case"nanoid":c0(X,$6.nanoid,Q.message,J)}return X}function T4(Y,J){return J.patternStrategy==="escape"?zZ(Y):Y}var WZ=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function zZ(Y){let J="";for(let X=0;X<Y.length;X++){if(!WZ.has(Y[X]))J+="\\";J+=Y[X]}return J}function W6(Y,J,X,Q){if(Y.format||Y.anyOf?.some((G)=>G.format)){if(!Y.anyOf)Y.anyOf=[];if(Y.format)Y.anyOf.push({format:Y.format}),delete Y.format;Y.anyOf.push({format:J,...X&&Q.errorMessages&&{errorMessage:{format:X}}})}else Y.format=J}function c0(Y,J,X,Q){if(Y.pattern||Y.allOf?.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:pQ(J,Q),...X&&Q.errorMessages&&{errorMessage:{pattern:X}}})}else Y.pattern=pQ(J,Q)}function pQ(Y,J){if(!J.applyRegexFlags||!Y.flags)return Y.source;let X={i:Y.flags.includes("i"),m:Y.flags.includes("m"),s:Y.flags.includes("s")},Q=X.i?Y.source.toLowerCase():Y.source,G="",$=!1,W=!1,K=!1;for(let U=0;U<Q.length;U++){if($){G+=Q[U],$=!1;continue}if(X.i){if(W){if(Q[U].match(/[a-z]/)){if(K)G+=Q[U],G+=`${Q[U-2]}-${Q[U]}`.toUpperCase(),K=!1;else if(Q[U+1]==="-"&&Q[U+2]?.match(/[a-z]/))G+=Q[U],K=!0;else G+=`${Q[U]}${Q[U].toUpperCase()}`;continue}}else if(Q[U].match(/[a-z]/)){G+=`[${Q[U]}${Q[U].toUpperCase()}]`;continue}}if(X.m){if(Q[U]==="^"){G+=`(^|(?<=[\r
|
|
33
|
-
]))`;continue}else if(Q[U]==="$"){G+=`($|(?=[\r
|
|
34
|
-
]))`;continue}}if(X.s&&Q[U]==="."){G+=W?`${Q[U]}\r
|
|
35
|
-
`:`[${Q[U]}\r
|
|
36
|
-
]`;continue}if(G+=Q[U],Q[U]==="\\")$=!0;else if(W&&Q[U]==="]")W=!1;else if(!W&&Q[U]==="[")W=!0}try{new RegExp(G)}catch{return console.warn(`Could not convert regex pattern at ${J.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),Y.source}return G}function VG(Y,J){let X={type:"object",additionalProperties:Z0(Y.valueType._def,{...J,currentPath:[...J.currentPath,"additionalProperties"]})??J.allowedAdditionalProperties};if(Y.keyType?._def.typeName==="ZodString"&&Y.keyType._def.checks?.length){let{type:Q,...G}=ZG(Y.keyType._def,J);return{...X,propertyNames:G}}else if(Y.keyType?._def.typeName==="ZodEnum")return{...X,propertyNames:{enum:Y.keyType._def.values}};else if(Y.keyType?._def.typeName==="ZodBranded"&&Y.keyType._def.type._def.typeName==="ZodString"&&Y.keyType._def.type._def.checks?.length){let{type:Q,...G}=UG(Y.keyType._def,J);return{...X,propertyNames:G}}return X}function KZ(Y,J){if(J.mapStrategy==="record")return VG(Y,J);return{type:"array",maxItems:125,items:{type:"array",items:[Z0(Y.keyType._def,{...J,currentPath:[...J.currentPath,"items","items","0"]})||s0(),Z0(Y.valueType._def,{...J,currentPath:[...J.currentPath,"items","items","1"]})||s0()],minItems:2,maxItems:2}}}function UZ(Y){let J=Y.values,X=Object.keys(Y.values).filter((G)=>{return typeof J[J[G]]!=="number"}).map((G)=>J[G]),Q=Array.from(new Set(X.map((G)=>typeof G)));return{type:Q.length===1?Q[0]==="string"?"string":"number":["string","number"],enum:X}}function HZ(){return{not:s0()}}function ZZ(){return{type:"null"}}var C4={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function VZ(Y,J){let X=Y.options instanceof Map?Array.from(Y.options.values()):Y.options;if(X.every((Q)=>(Q._def.typeName in C4)&&(!Q._def.checks||!Q._def.checks.length))){let Q=X.reduce((G,$)=>{let W=C4[$._def.typeName];return W&&!G.includes(W)?[...G,W]:G},[]);return{type:Q.length>1?Q:Q[0]}}else if(X.every((Q)=>Q._def.typeName==="ZodLiteral"&&!Q.description)){let Q=X.reduce((G,$)=>{let W=typeof $._def.value;switch(W){case"string":case"number":case"boolean":return[...G,W];case"bigint":return[...G,"integer"];case"object":if($._def.value===null)return[...G,"null"];default:return G}},[]);if(Q.length===X.length){let G=Q.filter(($,W,K)=>K.indexOf($)===W);return{type:G.length>1?G:G[0],enum:X.reduce(($,W)=>{return $.includes(W._def.value)?$:[...$,W._def.value]},[])}}}else if(X.every((Q)=>Q._def.typeName==="ZodEnum"))return{type:"string",enum:X.reduce((Q,G)=>[...Q,...G._def.values.filter(($)=>!Q.includes($))],[])};return BZ(Y,J)}var BZ=(Y,J)=>{let X=(Y.options instanceof Map?Array.from(Y.options.values()):Y.options).map((Q,G)=>Z0(Q._def,{...J,currentPath:[...J.currentPath,"anyOf",`${G}`]})).filter((Q)=>!!Q&&(!J.strictUnions||typeof Q==="object"&&Object.keys(Q).length>0));return X.length?{anyOf:X}:void 0};function LZ(Y,J){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(Y.innerType._def.typeName)&&(!Y.innerType._def.checks||!Y.innerType._def.checks.length))return{type:[C4[Y.innerType._def.typeName],"null"]};let X=Z0(Y.innerType._def,{...J,currentPath:[...J.currentPath,"anyOf","0"]});return X&&{anyOf:[X,{type:"null"}]}}function NZ(Y){let J={type:"number"};if(!Y.checks)return J;for(let X of Y.checks)switch(X.kind){case"int":J.type="integer";break;case"min":if(X.inclusive)J.minimum=X.value;else J.exclusiveMinimum=X.value;break;case"max":if(X.inclusive)J.maximum=X.value;else J.exclusiveMaximum=X.value;break;case"multipleOf":J.multipleOf=X.value}return J}function jZ(Y,J){let X={type:"object",properties:{}},Q=[],G=Y.shape();for(let W in G){let K=G[W];if(K===void 0||K._def===void 0)continue;let U=DZ(K),H=Z0(K._def,{...J,currentPath:[...J.currentPath,"properties",W],propertyPath:[...J.currentPath,"properties",W]});if(H===void 0)continue;if(X.properties[W]=H,!U)Q.push(W)}if(Q.length)X.required=Q;let $=FZ(Y,J);if($!==void 0)X.additionalProperties=$;return X}function FZ(Y,J){if(Y.catchall._def.typeName!=="ZodNever")return Z0(Y.catchall._def,{...J,currentPath:[...J.currentPath,"additionalProperties"]});switch(Y.unknownKeys){case"passthrough":return J.allowedAdditionalProperties;case"strict":return J.rejectedAdditionalProperties;case"strip":return J.removeAdditionalStrategy==="strict"?J.allowedAdditionalProperties:J.rejectedAdditionalProperties}}function DZ(Y){try{return Y.isOptional()}catch{return!0}}var OZ=(Y,J)=>{if(J.currentPath.toString()===J.propertyPath?.toString())return Z0(Y.innerType._def,J);let X=Z0(Y.innerType._def,{...J,currentPath:[...J.currentPath,"anyOf","1"]});return X?{anyOf:[{not:s0()},X]}:s0()},_Z=(Y,J)=>{if(J.pipeStrategy==="input")return Z0(Y.in._def,J);else if(J.pipeStrategy==="output")return Z0(Y.out._def,J);let X=Z0(Y.in._def,{...J,currentPath:[...J.currentPath,"allOf","0"]});return{allOf:[X,Z0(Y.out._def,{...J,currentPath:[...J.currentPath,"allOf",X?"1":"0"]})].filter((Q)=>Q!==void 0)}};function PZ(Y,J){return Z0(Y.type._def,J)}function qZ(Y,J){let X={type:"array",uniqueItems:!0,items:Z0(Y.valueType._def,{...J,currentPath:[...J.currentPath,"items"]})};if(Y.minSize)X.minItems=Y.minSize.value;if(Y.maxSize)X.maxItems=Y.maxSize.value;return X}function MZ(Y,J){if(Y.rest)return{type:"array",minItems:Y.items.length,items:Y.items.map((X,Q)=>Z0(X._def,{...J,currentPath:[...J.currentPath,"items",`${Q}`]})).reduce((X,Q)=>Q===void 0?X:[...X,Q],[]),additionalItems:Z0(Y.rest._def,{...J,currentPath:[...J.currentPath,"additionalItems"]})};else return{type:"array",minItems:Y.items.length,maxItems:Y.items.length,items:Y.items.map((X,Q)=>Z0(X._def,{...J,currentPath:[...J.currentPath,"items",`${Q}`]})).reduce((X,Q)=>Q===void 0?X:[...X,Q],[])}}function EZ(){return{not:s0()}}function AZ(){return s0()}var TZ=(Y,J)=>{return Z0(Y.innerType._def,J)},RZ=(Y,J,X)=>{switch(J){case"ZodString":return ZG(Y,X);case"ZodNumber":return NZ(Y);case"ZodObject":return jZ(Y,X);case"ZodBigInt":return sH(Y);case"ZodBoolean":return aH();case"ZodDate":return HG(Y,X);case"ZodUndefined":return EZ();case"ZodNull":return ZZ();case"ZodArray":return rH(Y,X);case"ZodUnion":case"ZodDiscriminatedUnion":return VZ(Y,X);case"ZodIntersection":return GZ(Y,X);case"ZodTuple":return MZ(Y,X);case"ZodRecord":return VG(Y,X);case"ZodLiteral":return $Z(Y);case"ZodEnum":return XZ(Y);case"ZodNativeEnum":return UZ(Y);case"ZodNullable":return LZ(Y,X);case"ZodOptional":return OZ(Y,X);case"ZodMap":return KZ(Y,X);case"ZodSet":return qZ(Y,X);case"ZodLazy":return()=>Y.getter()._def;case"ZodPromise":return PZ(Y,X);case"ZodNaN":case"ZodNever":return HZ();case"ZodEffects":return JZ(Y,X);case"ZodAny":return s0();case"ZodUnknown":return AZ();case"ZodDefault":return YZ(Y,X);case"ZodBranded":return UG(Y,X);case"ZodReadonly":return TZ(Y,X);case"ZodCatch":return tH(Y,X);case"ZodPipeline":return _Z(Y,X);case"ZodFunction":case"ZodVoid":case"ZodSymbol":return;default:return((Q)=>{return})(J)}},CZ=(Y,J)=>{let X=0;for(;X<Y.length&&X<J.length;X++)if(Y[X]!==J[X])break;return[(Y.length-X).toString(),...J.slice(X)].join("/")};function Z0(Y,J,X=!1){let Q=J.seen.get(Y);if(J.override){let K=J.override?.(Y,J,Q,X);if(K!==nH)return K}if(Q&&!X){let K=wZ(Q,J);if(K!==void 0)return K}let G={def:Y,path:J.currentPath,jsonSchema:void 0};J.seen.set(Y,G);let $=RZ(Y,Y.typeName,J),W=typeof $==="function"?Z0($(),J):$;if(W)SZ(Y,J,W);if(J.postProcess){let K=J.postProcess(W,Y,J);return G.jsonSchema=W,K}return G.jsonSchema=W,W}var wZ=(Y,J)=>{switch(J.$refStrategy){case"root":return{$ref:Y.path.join("/")};case"relative":return{$ref:CZ(J.currentPath,Y.path)};case"none":case"seen":if(Y.path.length<J.currentPath.length&&Y.path.every((X,Q)=>J.currentPath[Q]===X))return console.warn(`Recursive reference detected at ${J.currentPath.join("/")}! Defaulting to any`),s0();return J.$refStrategy==="seen"?s0():void 0}},SZ=(Y,J,X)=>{if(Y.description)X.description=Y.description;return X},IZ=(Y)=>{let J=oH(Y),X=J.name!==void 0?[...J.basePath,J.definitionPath,J.name]:J.basePath;return{...J,currentPath:X,propertyPath:void 0,seen:new Map(Object.entries(J.definitions).map(([Q,G])=>[G._def,{def:G._def,path:[...J.basePath,J.definitionPath,Q],jsonSchema:void 0}]))}},bZ=(Y,J)=>{let X=IZ(J),Q=typeof J==="object"&&J.definitions?Object.entries(J.definitions).reduce((U,[H,B])=>({...U,[H]:Z0(B._def,{...X,currentPath:[...X.basePath,X.definitionPath,H]},!0)??s0()}),{}):void 0,G=typeof J==="string"?J:J?.nameStrategy==="title"?void 0:J?.name,$=Z0(Y._def,G===void 0?X:{...X,currentPath:[...X.basePath,X.definitionPath,G]},!1)??s0(),W=typeof J==="object"&&J.name!==void 0&&J.nameStrategy==="title"?J.name:void 0;if(W!==void 0)$.title=W;let K=G===void 0?Q?{...$,[X.definitionPath]:Q}:$:{$ref:[...X.$refStrategy==="relative"?[]:X.basePath,X.definitionPath,G].join("/"),[X.definitionPath]:{...Q,[G]:$}};return K.$schema="http://json-schema.org/draft-07/schema#",K},kZ=Symbol.for("vercel.ai.schema");function b4(Y){let J;return()=>{if(J==null)J=Y();return J}}function I8(Y,{validate:J}={}){return{[kZ]:!0,_type:void 0,get jsonSchema(){if(typeof Y==="function")Y=Y();return Y},validate:J}}function xZ(Y,J){let X=J?.useReferences??!1;return I8(()=>bZ(Y,{$refStrategy:X?"root":"none"}),{validate:async(Q)=>{let G=await Y.safeParseAsync(Q);return G.success?{success:!0,value:G.data}:{success:!1,error:G.error}}})}function vZ(Y,J){let X=J?.useReferences??!1;return I8(()=>KG(JQ(Y,{target:"draft-7",io:"input",reused:X?"ref":"inline"})),{validate:async(Q)=>{let G=await C8(Y,Q);return G.success?{success:!0,value:G.data}:{success:!1,error:G.error}}})}function hZ(Y){return"_zod"in Y}function b8(Y,J){if(hZ(Y))return vZ(Y,J);else return xZ(Y,J)}var yZ="AI_SerializationError",OO=`vercel.ai.error.${yZ}`;var dZ="AI_InvalidArgumentError",G_=`vercel.ai.error.${dZ}`;var iZ="AI_InvalidStreamPartError",$_=`vercel.ai.error.${iZ}`;var nZ="AI_InvalidToolApprovalError",W_=`vercel.ai.error.${nZ}`;var oZ="AI_InvalidToolApprovalSignatureError",z_=`vercel.ai.error.${oZ}`;var rZ="AI_InvalidToolInputError",K_=`vercel.ai.error.${rZ}`;var sZ="AI_ToolCallNotFoundForApprovalError",U_=`vercel.ai.error.${sZ}`;var aZ="AI_MissingToolResultsError",H_=`vercel.ai.error.${aZ}`;var tZ="AI_NoImageGeneratedError",Z_=`vercel.ai.error.${tZ}`;var eZ="AI_NoObjectGeneratedError",V_=`vercel.ai.error.${eZ}`;var YV="AI_NoOutputGeneratedError",B_=`vercel.ai.error.${YV}`;var JV="AI_NoSpeechGeneratedError",L_=`vercel.ai.error.${JV}`;var XV="AI_NoTranscriptGeneratedError",N_=`vercel.ai.error.${XV}`;var QV="AI_NoTranslationGeneratedError",j_=`vercel.ai.error.${QV}`;var GV="AI_NoVideoGeneratedError",F_=`vercel.ai.error.${GV}`;var $V="AI_NoSuchToolError",D_=`vercel.ai.error.${$V}`;var WV="AI_StreamProviderError",O_=`vercel.ai.error.${WV}`;var zV="AI_ToolCallRepairError",__=`vercel.ai.error.${zV}`;var KV="AI_ToolChoiceViolationError",P_=`vercel.ai.error.${KV}`;var UV="AI_UIMessageStreamError",q_=`vercel.ai.error.${UV}`;var HV="AI_InvalidDataContentError",M_=`vercel.ai.error.${HV}`;var ZV="AI_InvalidMessageRoleError",E_=`vercel.ai.error.${ZV}`;var VV="AI_MessageConversionError",A_=`vercel.ai.error.${VV}`;var BV="AI_RetryError",T_=`vercel.ai.error.${BV}`;var LV="7.0.147",NV=async({url:Y,maxBytes:J,abortSignal:X})=>{let Q=Y.toString();try{let G=tQ({},`ai-sdk/${LV}`,sQ()),$=await GG({url:Q,headers:G,abortSignal:X});if(!$.ok)throw await S8($),new h0({url:Q,statusCode:$.status,statusText:$.statusText});return{data:await $G({response:$,url:Q,maxBytes:J??I4}),mediaType:$.headers.get("content-type")??void 0}}catch(G){if(h0.isInstance(G))throw G;throw new h0({url:Q,cause:G})}};var z={array:P4,boolean:RQ,custom:fQ,discriminatedUnion:kQ,enum:M4,instanceof:mQ,lazy:gQ,literal:vQ,looseObject:IQ,never:_4,null:CQ,number:TQ,object:SQ,record:xQ,string:EQ,union:q4,unknown:M1},K9=z.lazy(()=>z.union([z.null(),z.string(),z.number(),z.boolean(),z.record(z.string(),K9.optional()),z.array(K9)])),k=z.record(z.string(),z.record(z.string(),K9.optional())),A1=z.union([z.string(),z.instanceof(Uint8Array),z.instanceof(ArrayBuffer),z.custom(zG,{message:"Must be a Buffer"})]),k4=z.record(z.string(),z.string()),BG=z.object({type:z.literal("text"),text:z.string(),providerOptions:k.optional()}),jV=z.object({type:z.literal("image"),image:z.union([A1,z.instanceof(URL),k4]),mediaType:z.string().optional(),providerOptions:k.optional()}),LG=z.discriminatedUnion("type",[z.object({type:z.literal("data"),data:A1}),z.object({type:z.literal("url"),url:z.instanceof(URL)}),z.object({type:z.literal("reference"),reference:k4}),z.object({type:z.literal("text"),text:z.string()})]),FV=z.discriminatedUnion("type",[z.object({type:z.literal("data"),data:A1}),z.object({type:z.literal("url"),url:z.instanceof(URL)})]),NG=z.object({type:z.literal("file"),data:z.union([LG,A1,z.instanceof(URL),k4]),filename:z.string().optional(),mediaType:z.string(),providerOptions:k.optional()}),DV=z.object({type:z.literal("reasoning"),text:z.string(),providerOptions:k.optional()}),OV=z.object({type:z.literal("custom"),kind:z.string().transform((Y)=>Y),providerOptions:k.optional()}),_V=z.object({type:z.literal("reasoning-file"),data:z.union([FV,A1,z.instanceof(URL)]),mediaType:z.string(),providerOptions:k.optional()}),PV=z.object({type:z.literal("tool-call"),toolCallId:z.string(),toolName:z.string(),input:z.unknown(),providerOptions:k.optional(),providerExecuted:z.boolean().optional()}),qV=z.discriminatedUnion("type",[z.object({type:z.literal("text"),value:z.string(),providerOptions:k.optional()}),z.object({type:z.literal("json"),value:K9,providerOptions:k.optional()}),z.object({type:z.literal("execution-denied"),reason:z.string().optional(),providerOptions:k.optional()}),z.object({type:z.literal("error-text"),value:z.string(),providerOptions:k.optional()}),z.object({type:z.literal("error-json"),value:K9,providerOptions:k.optional()}),z.object({type:z.literal("content"),value:z.array(z.union([z.object({type:z.literal("text"),text:z.string(),providerOptions:k.optional()}),z.object({type:z.literal("file"),data:LG,mediaType:z.string(),filename:z.string().optional(),providerOptions:k.optional()}),z.object({type:z.literal("file-data"),data:z.string(),mediaType:z.string(),filename:z.string().optional(),providerOptions:k.optional()}),z.object({type:z.literal("file-url"),url:z.string(),mediaType:z.string().optional(),providerOptions:k.optional()}),z.object({type:z.literal("file-id"),fileId:z.union([z.string(),z.record(z.string(),z.string())]),providerOptions:k.optional()}),z.object({type:z.literal("file-reference"),providerReference:z.record(z.string(),z.string()),providerOptions:k.optional()}),z.object({type:z.literal("image-data"),data:z.string(),mediaType:z.string(),providerOptions:k.optional()}),z.object({type:z.literal("image-url"),url:z.string(),providerOptions:k.optional()}),z.object({type:z.literal("image-file-id"),fileId:z.union([z.string(),z.record(z.string(),z.string())]),providerOptions:k.optional()}),z.object({type:z.literal("image-file-reference"),providerReference:z.record(z.string(),z.string()),providerOptions:k.optional()}),z.object({type:z.literal("custom"),providerOptions:k.optional()})]))})]),jG=z.object({type:z.literal("tool-result"),toolCallId:z.string(),toolName:z.string(),output:qV,providerOptions:k.optional()}),MV=z.object({type:z.literal("tool-approval-request"),approvalId:z.string(),toolCallId:z.string(),reason:z.string().optional(),isAutomatic:z.boolean().optional(),signature:z.string().optional(),inputSchemaInput:z.unknown().optional()}),EV=z.object({type:z.literal("tool-approval-response"),approvalId:z.string(),approved:z.boolean(),reason:z.string().optional()}),AV=z.object({role:z.literal("system"),content:z.string(),providerOptions:k.optional()}),TV=z.object({role:z.literal("user"),content:z.union([z.string(),z.array(z.union([BG,jV,NG]))]),providerOptions:k.optional()}),RV=z.object({role:z.literal("assistant"),content:z.union([z.string(),z.array(z.union([BG,OV,NG,DV,_V,PV,jG,MV]))]),providerOptions:k.optional()}),CV=z.object({role:z.literal("tool"),content:z.array(z.union([jG,EV])),providerOptions:k.optional()}),R_=z.union([AV,TV,RV,CV]);var C_=Symbol("ai-sdk-tool-call-input-schema-input");var w_=I0({prefix:"aitxt",size:24}),S_=I0({prefix:"call",size:24});var I_=class extends TransformStream{constructor(){super({transform(Y,J){J.enqueue(`data: ${JSON.stringify(Y)}
|
|
37
|
-
|
|
38
|
-
`)},flush(Y){Y.enqueue(`data: [DONE]
|
|
39
|
-
|
|
40
|
-
`)}})}};var FG=z.object({source:z.discriminatedUnion("sourceType",[z.object({type:z.literal("source"),sourceType:z.literal("url"),id:z.string(),url:z.string(),title:z.string().optional(),providerMetadata:k.optional()}),z.object({type:z.literal("source"),sourceType:z.literal("document"),id:z.string(),mediaType:z.string(),title:z.string(),filename:z.string().optional(),providerMetadata:k.optional()})]),startIndex:z.number().int().nonnegative().optional(),endIndex:z.number().int().nonnegative().optional(),citedText:z.string().optional()}),E1=z.record(z.string(),K9.optional()),b_=b4(()=>b8(z.union([z.looseObject({type:z.literal("text-start"),id:z.string(),providerMetadata:k.optional()}),z.looseObject({type:z.literal("text-delta"),id:z.string(),delta:z.string(),providerMetadata:k.optional()}),z.looseObject({type:z.literal("text-end"),id:z.string(),citations:z.array(FG).optional(),providerMetadata:k.optional()}),z.looseObject({type:z.literal("error"),errorText:z.string()}),z.looseObject({type:z.literal("tool-input-start"),toolCallId:z.string(),toolName:z.string(),inputEncoding:z.enum(["json","text"]).optional(),providerExecuted:z.boolean().optional(),providerMetadata:k.optional(),toolMetadata:E1.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:k.optional(),toolMetadata:E1.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:k.optional(),toolMetadata:E1.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(),inputSchemaInput: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:k.optional()}),z.looseObject({type:z.literal("tool-output-available"),toolCallId:z.string(),output:z.unknown(),providerExecuted:z.boolean().optional(),providerMetadata:k.optional(),toolMetadata:E1.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:k.optional(),toolMetadata:E1.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:k.optional()}),z.looseObject({type:z.literal("reasoning-delta"),id:z.string(),delta:z.string(),providerMetadata:k.optional()}),z.looseObject({type:z.literal("reasoning-end"),id:z.string(),providerMetadata:k.optional()}),z.looseObject({type:z.literal("custom"),kind:z.string().transform((Y)=>Y),providerMetadata:k.optional()}),z.looseObject({type:z.literal("source-url"),sourceId:z.string(),url:z.string(),title:z.string().optional(),providerMetadata:k.optional()}),z.looseObject({type:z.literal("source-document"),sourceId:z.string(),mediaType:z.string(),title:z.string(),filename:z.string().optional(),providerMetadata:k.optional()}),z.looseObject({type:z.literal("file"),url:z.string(),mediaType:z.string(),providerMetadata:k.optional()}),z.looseObject({type:z.literal("reasoning-file"),url:z.string(),mediaType:z.string(),providerMetadata:k.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 k_=Symbol("streamRetryAttemptBoundary");var x_=I0({prefix:"aitxt",size:24}),v_=I0({prefix:"call",size:24});var h_=I0({prefix:"aitxt",size:24}),y_=I0({prefix:"call",size:24});var g_=Symbol("streamRetryBoundary");var p0=z.record(z.string(),K9.optional()),wV=z.record(z.string(),z.string());var f_=b4(()=>{let Y=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(),inputSchemaInput:z.unknown().optional()}),J=Y.extend({approved:z.boolean(),reason:z.string().optional()}),X=J.extend({approved:z.literal(!0)}),Q=J.extend({approved:z.literal(!1)});return b8(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(),citations:z.array(FG).optional(),state:z.enum(["streaming","done"]).optional(),providerMetadata:k.optional()}),z.object({type:z.literal("reasoning"),id:z.string().optional(),text:z.string(),state:z.enum(["streaming","done"]).optional(),providerMetadata:k.optional()}),z.object({type:z.literal("custom"),kind:z.string(),providerMetadata:k.optional()}),z.object({type:z.literal("source-url"),sourceId:z.string(),url:z.string(),title:z.string().optional(),providerMetadata:k.optional()}),z.object({type:z.literal("source-document"),sourceId:z.string(),mediaType:z.string(),title:z.string(),filename:z.string().optional(),providerMetadata:k.optional()}),z.object({type:z.literal("file"),mediaType:z.string(),filename:z.string().optional(),url:z.string(),providerReference:wV.optional(),providerMetadata:k.optional()}),z.object({type:z.literal("reasoning-file"),mediaType:z.string(),url:z.string(),providerMetadata:k.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"),dynamic:z.literal(!1).optional(),toolName:z.string(),toolCallId:z.string(),title:z.string().optional(),toolMetadata:p0.optional(),state:z.literal("input-streaming"),input:z.unknown().optional(),rawInput:z.string().optional(),inputEncoding:z.enum(["json","text"]).optional(),providerExecuted:z.boolean().optional(),callProviderMetadata:k.optional(),output:z.never().optional(),errorText:z.never().optional(),approval:z.never().optional()}),z.object({type:z.literal("dynamic-tool"),dynamic:z.literal(!1).optional(),toolName:z.string(),toolCallId:z.string(),title:z.string().optional(),toolMetadata:p0.optional(),state:z.literal("input-available"),input:z.unknown(),providerExecuted:z.boolean().optional(),output:z.never().optional(),errorText:z.never().optional(),callProviderMetadata:k.optional(),approval:z.never().optional()}),z.object({type:z.literal("dynamic-tool"),dynamic:z.literal(!1).optional(),toolName:z.string(),toolCallId:z.string(),title:z.string().optional(),toolMetadata:p0.optional(),state:z.literal("approval-requested"),input:z.unknown(),providerExecuted:z.boolean().optional(),output:z.never().optional(),errorText:z.never().optional(),callProviderMetadata:k.optional(),approval:Y}),z.object({type:z.literal("dynamic-tool"),dynamic:z.literal(!1).optional(),toolName:z.string(),toolCallId:z.string(),title:z.string().optional(),toolMetadata:p0.optional(),state:z.literal("approval-responded"),input:z.unknown(),providerExecuted:z.boolean().optional(),output:z.never().optional(),errorText:z.never().optional(),callProviderMetadata:k.optional(),approval:J}),z.object({type:z.literal("dynamic-tool"),dynamic:z.literal(!1).optional(),toolName:z.string(),toolCallId:z.string(),title:z.string().optional(),toolMetadata:p0.optional(),state:z.literal("output-available"),input:z.unknown(),providerExecuted:z.boolean().optional(),output:z.unknown(),errorText:z.never().optional(),callProviderMetadata:k.optional(),resultProviderMetadata:k.optional(),preliminary:z.boolean().optional(),approval:X.optional()}),z.object({type:z.literal("dynamic-tool"),dynamic:z.literal(!1).optional(),toolName:z.string(),toolCallId:z.string(),title:z.string().optional(),toolMetadata:p0.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:k.optional(),resultProviderMetadata:k.optional(),approval:X.optional()}),z.object({type:z.literal("dynamic-tool"),dynamic:z.literal(!1).optional(),toolName:z.string(),toolCallId:z.string(),title:z.string().optional(),toolMetadata:p0.optional(),state:z.literal("output-denied"),input:z.unknown(),providerExecuted:z.boolean().optional(),output:z.never().optional(),errorText:z.never().optional(),callProviderMetadata:k.optional(),approval:Q}),z.object({type:z.string().startsWith("tool-"),toolCallId:z.string(),title:z.string().optional(),toolMetadata:p0.optional(),state:z.literal("input-streaming"),providerExecuted:z.boolean().optional(),callProviderMetadata:k.optional(),input:z.unknown().optional(),rawInput:z.string().optional(),inputEncoding:z.enum(["json","text"]).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:p0.optional(),state:z.literal("input-available"),providerExecuted:z.boolean().optional(),input:z.unknown(),output:z.never().optional(),errorText:z.never().optional(),callProviderMetadata:k.optional(),approval:z.never().optional()}),z.object({type:z.string().startsWith("tool-"),toolCallId:z.string(),title:z.string().optional(),toolMetadata:p0.optional(),state:z.literal("approval-requested"),input:z.unknown(),providerExecuted:z.boolean().optional(),output:z.never().optional(),errorText:z.never().optional(),callProviderMetadata:k.optional(),approval:Y}),z.object({type:z.string().startsWith("tool-"),toolCallId:z.string(),title:z.string().optional(),toolMetadata:p0.optional(),state:z.literal("approval-responded"),input:z.unknown(),providerExecuted:z.boolean().optional(),output:z.never().optional(),errorText:z.never().optional(),callProviderMetadata:k.optional(),approval:J}),z.object({type:z.string().startsWith("tool-"),toolCallId:z.string(),title:z.string().optional(),toolMetadata:p0.optional(),state:z.literal("output-available"),providerExecuted:z.boolean().optional(),input:z.unknown(),output:z.unknown(),errorText:z.never().optional(),callProviderMetadata:k.optional(),resultProviderMetadata:k.optional(),preliminary:z.boolean().optional(),approval:X.optional()}),z.object({type:z.string().startsWith("tool-"),toolCallId:z.string(),title:z.string().optional(),toolMetadata:p0.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:k.optional(),resultProviderMetadata:k.optional(),approval:X.optional()}),z.object({type:z.string().startsWith("tool-"),toolCallId:z.string(),title:z.string().optional(),toolMetadata:p0.optional(),state:z.literal("output-denied"),providerExecuted:z.boolean().optional(),input:z.unknown(),output:z.never().optional(),errorText:z.never().optional(),callProviderMetadata:k.optional(),approval:Q})]))}).superRefine((G,$)=>{if(G.role!=="assistant"&&G.parts.length===0)$.addIssue({origin:"array",code:"too_small",minimum:1,inclusive:!0,input:G.parts,path:["parts"],message:"Message must contain at least one part"})})).nonempty("Messages array must not be empty"))});var m_=I0({prefix:"call",size:24});var c_=I0({prefix:"call",size:24});var u_=I0({prefix:"call",size:24});var p_=I0({prefix:"aiobj",size:24});function DG(Y){return({url:J,abortSignal:X})=>NV({url:J,maxBytes:Y?.maxBytes,abortSignal:X})}var l_=I0({prefix:"aiobj",size:24});var d_=I0({prefix:"call",size:24});var i_=DG();var n_=z.object({token:z.string().refine((Y)=>Y.trim().length>0),url:z.string().refine((Y)=>{try{let J=new URL(Y);return(J.protocol==="ws:"||J.protocol==="wss:")&&J.hostname!==""}catch{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 SV="AI_NoSuchProviderError",o_=`vercel.ai.error.${SV}`;var r_=I0({prefix:"call",size:24});var s_=I0({prefix:"call",size:24}),a_=DG();var t_=I0({prefix:"call",size:24});class l0 extends G9{name="ProviderResponseStreamError";constructor(Y,J){super({message:Y,url:"",requestBodyValues:void 0,cause:J?.cause,isRetryable:J?.retryable??!0})}}var y0={};iY(y0,{toWebSocketUrl:()=>oV,streamResponsesWebSocket:()=>eV,parseRateLimitSignal:()=>R1,normalizeHeaders:()=>rV,markOversizedFrame:()=>SG,isUpgradeFailure:()=>sV,isOversizedFrame:()=>aV,isNonEmittingFrame:()=>bG,isAbortError:()=>g4,connectResponsesWebSocket:()=>tV,TERMINAL_AFTER_OUTPUT_MESSAGE:()=>y4,PROTOCOL_HEADER:()=>RG,OpenAIWebSocket:()=>y0,OVERSIZED_FRAME_MESSAGE:()=>kG});function T1(Y){let J=Number(Y.match(/^HTTP\/\d(?:\.\d)?\s+(\d{3})/)?.[1]);return Number.isFinite(J)?J:void 0}function k8(Y,J,X=!1){let G=Buffer.from(Y.slice(0,J)).toString("latin1").split(`\r
|
|
41
|
-
`),$=G[0]??"",W=T1($);if(W===void 0||W===101)return;let K=Object.fromEntries(G.slice(1).flatMap((V)=>{let F=V.indexOf(":");return F===-1?[]:[[V.slice(0,F).trim().toLowerCase(),V.slice(F+1).trim()]]})),U=Y.slice(J+4),H=K["content-length"],B=Number(H);if(!X&&(H===void 0||Number.isFinite(B)&&U.length<B))return;let O=Buffer.from(U).toString("utf8"),L=(()=>{try{let V=JSON.parse(O);return n(V)?V:void 0}catch{return}})();return{message:`WS upgrade failed: ${$}`,status:W,status_code:W,headers:K,body:O,...n(L?.error)?{error:L.error}:{}}}var IV="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",OG=["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 x4{url;readyState=0;socket;sessionID;listeners={open:new Set,message:new Set,error:new Set,close:new Set};rxBuffer=new Uint8Array(0);handshakeDone=!1;upgradeFailureEmitted=!1;expectedAccept="";fragOpcode=0;fragChunks=[];writeQueue=[];constructor(Y,J,X){this.url=Y,this.sessionID=X?.sessionID,this.connect(Y,J)}addEventListener(Y,J,X){this.listeners[Y]?.add(J)}removeEventListener(Y,J){this.listeners[Y]?.delete(J)}peerClose;closeEmitted=!1;emitClose(Y,J){if(this.closeEmitted)return;this.closeEmitted=!0,this.emit("close",{code:Y,reason:J})}emit(Y,J){for(let X of[...this.listeners[Y]??[]])try{X(J)}catch{}}async connect(Y,J){let X=new URL(Y.replace(/^ws:/,"http:").replace(/^wss:/,"https:")),Q=X.hostname,G=X.port?Number(X.port):X.protocol==="https:"?443:80,$=`${X.pathname}${X.search}`,W=crypto.getRandomValues(new Uint8Array(16)),K=Buffer.from(W).toString("base64"),U=await crypto.subtle.digest("SHA-1",new TextEncoder().encode(K+IV));this.expectedAccept=Buffer.from(new Uint8Array(U)).toString("base64");let H={};for(let[L,V]of Object.entries(J))H[L.toLowerCase()]=V;let B=[`GET ${$} HTTP/1.1`,`Host: ${Q}`,"Connection: Upgrade","Upgrade: websocket","Sec-WebSocket-Version: 13",`Sec-WebSocket-Key: ${K}`];for(let L of OG)if(H[L]!==void 0)B.push(`${bV(L)}: ${H[L]}`);for(let[L,V]of Object.entries(J))if(!OG.includes(L.toLowerCase())&&L.toLowerCase()!=="content-length")B.push(`${L}: ${V}`);let O=`${B.join(`\r
|
|
42
|
-
`)}\r
|
|
43
|
-
\r
|
|
44
|
-
`;try{this.log("connect_start",{host:Q,port:G,tls:X.protocol==="https:"});let L=globalThis.Bun?.connect;if(!L)throw Error("Bun.connect is not available");this.socket=await L({hostname:Q,port:G,tls:X.protocol==="https:"?{serverName:Q}:void 0,socket:{open:(V)=>{this.socket=V,this.enqueueWrite(new TextEncoder().encode(O))},data:(V,F)=>this.onData(F),drain:()=>this.flushWrites(),error:(V,F)=>{if(this.emitRejectedUpgrade(!0))return;this.readyState=3;let P=F instanceof Error?F.message:String(F);this.log("socket_error",{message:P}),this.emit("error",{message:P})},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(L){this.readyState=3;let V=L instanceof Error?L.message:String(L);this.log("connect_exception",{message:V}),this.emit("error",{message:V})}}onData(Y){if(this.rxBuffer=kV(this.rxBuffer,Y),!this.handshakeDone){let J=Buffer.from(this.rxBuffer).toString("latin1"),X=J.indexOf(`\r
|
|
45
|
-
\r
|
|
46
|
-
`);if(X===-1)return;let Q=J.slice(0,X),G=Q.split(`\r
|
|
47
|
-
`)[0]??"",$=Q.match(/sec-websocket-accept:\s*(\S+)/i),W=T1(G);if(W!==101){if(W===void 0){this.readyState=3;try{this.socket?.end()}catch{}this.log("upgrade_failed",{statusLine:G}),this.emit("error",{message:`WS upgrade failed: ${G}`});return}if(!this.emitRejectedUpgrade())return;try{this.socket?.end()}catch{}return}if(!$||$[1]!==this.expectedAccept){this.readyState=3;try{this.socket?.end()}catch{}this.log("accept_mismatch",{statusLine:G}),this.emit("error",{message:"WS upgrade Sec-WebSocket-Accept mismatch"});return}this.handshakeDone=!0,this.readyState=1,this.rxBuffer=this.rxBuffer.slice(X+4),this.log("open",{statusLine:G}),this.emit("open",{})}this.drainFrames()}emitRejectedUpgrade(Y=!1){if(this.upgradeFailureEmitted)return!0;if(this.handshakeDone)return!1;let J=Buffer.from(this.rxBuffer).indexOf(`\r
|
|
48
|
-
\r
|
|
49
|
-
`);if(J===-1)return!1;let X=k8(this.rxBuffer,J,Y);if(!X)return!1;return this.upgradeFailureEmitted=!0,this.readyState=3,this.log("upgrade_failed",{status:X.status,partial:Y}),this.emit("error",X),!0}drainFrames(){for(;;){let Y=this.rxBuffer;if(Y.length<2)return;let J=Y[0],X=Y[1],Q=(J&128)!==0,G=J&15,$=(X&128)!==0,W=X&127,K=2;if(W===126){if(Y.length<4)return;W=Y[2]<<8|Y[3],K=4}else if(W===127){if(Y.length<10)return;W=0;for(let H=0;H<8;H++)W=W*256+Y[2+H];K=10}if($)K+=4;if(Y.length<K+W)return;let U=Y.slice(K,K+W);this.rxBuffer=Y.slice(K+W),this.handleFrame(Q,G,U)}}handleFrame(Y,J,X){if(J===9){this.writeFrame(10,X);return}if(J===10)return;if(J===8){let G=1005,$="";if(X.length>=2)G=X[0]<<8|X[1],$=Buffer.from(X.slice(2)).toString("utf-8");this.readyState=3,this.peerClose={code:G,reason:$};try{this.socket?.end()}catch{}this.log("close_frame",{code:G,reason:$}),this.emitClose(G,$);return}if(J===1||J===2)this.fragOpcode=J,this.fragChunks=[X];else if(J===0)this.fragChunks.push(X);if(!Y)return;let Q=xV(this.fragChunks);if(this.fragChunks=[],this.fragOpcode===1){let G=Buffer.from(Q).toString("utf-8");this.emit("message",{data:G})}}send(Y){if(this.readyState!==1)return;this.writeFrame(1,new TextEncoder().encode(Y))}writeFrame(Y,J){let X=J.length,Q=crypto.getRandomValues(new Uint8Array(4)),G;if(X<126)G=[128|Y,128|X];else if(X<65536)G=[128|Y,254,X>>8&255,X&255];else{G=[128|Y,255];for(let K=7;K>=0;K--)G.push(X/2**(8*K)&255)}let $=new Uint8Array(X);for(let K=0;K<X;K++)$[K]=J[K]^Q[K%4];let W=new Uint8Array(G.length+4+X);W.set(G,0),W.set(Q,G.length),W.set($,G.length+4);try{this.enqueueWrite(W)}catch{}}enqueueWrite(Y){this.writeQueue.push(Y),this.flushWrites()}flushWrites(){let Y=this.socket;if(!Y)return;while(this.writeQueue.length>0){let J=this.writeQueue[0],X=Y.write(J);if(X<J.length){this.writeQueue[0]=J.slice(X),this.log("write_backpressure",{written:X,remaining:J.length-X});return}this.writeQueue.shift()}}close(){if(this.readyState===3)return;this.readyState=2;try{this.writeFrame(8,new Uint8Array([3,232])),this.socket?.end()}catch{}this.readyState=3}log(Y,J){return e6({component:"raw-ws-bun",event:Y,sessionID:this.sessionID,url:this.url,...J})}}function bV(Y){return Y}function kV(Y,J){let X=new Uint8Array(Y.length+J.length);return X.set(Y,0),X.set(J,Y.length),X}function xV(Y){let J=0;for(let G of Y)J+=G.length;let X=new Uint8Array(J),Q=0;for(let G of Y)X.set(G,Q),Q+=G.length;return X}import{connect as vV}from"node:net";import{connect as hV}from"node:tls";var yV="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",_G=["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 v4{url;readyState=0;socket;sessionID;listeners={open:new Set,message:new Set,error:new Set,close:new Set};rxBuffer=new Uint8Array(0);handshakeDone=!1;upgradeFailureEmitted=!1;expectedAccept="";fragOpcode=0;fragChunks=[];constructor(Y,J,X){this.url=Y,this.sessionID=X?.sessionID,this.connect(Y,J)}addEventListener(Y,J,X){this.listeners[Y]?.add(J)}removeEventListener(Y,J){this.listeners[Y]?.delete(J)}peerClose;closeEmitted=!1;emitClose(Y,J){if(this.closeEmitted)return;this.closeEmitted=!0,this.emit("close",{code:Y,reason:J})}emit(Y,J){for(let X of[...this.listeners[Y]??[]])try{X(J)}catch{}}async connect(Y,J){let X=new URL(Y.replace(/^ws:/,"http:").replace(/^wss:/,"https:")),Q=X.hostname,G=X.port?Number(X.port):X.protocol==="https:"?443:80,$=`${X.pathname}${X.search}`,W=crypto.getRandomValues(new Uint8Array(16)),K=Buffer.from(W).toString("base64"),U=await crypto.subtle.digest("SHA-1",new TextEncoder().encode(K+yV));this.expectedAccept=Buffer.from(new Uint8Array(U)).toString("base64");let H={};for(let[L,V]of Object.entries(J))H[L.toLowerCase()]=V;let B=[`GET ${$} HTTP/1.1`,`Host: ${Q}`,"Connection: Upgrade","Upgrade: websocket","Sec-WebSocket-Version: 13",`Sec-WebSocket-Key: ${K}`];for(let L of _G)if(H[L]!==void 0)B.push(`${gV(L)}: ${H[L]}`);for(let[L,V]of Object.entries(J))if(!_G.includes(L.toLowerCase())&&L.toLowerCase()!=="content-length")B.push(`${L}: ${V}`);let O=`${B.join(`\r
|
|
50
|
-
`)}\r
|
|
51
|
-
\r
|
|
52
|
-
`;try{this.log("connect_start",{host:Q,port:G,tls:X.protocol==="https:"});let L=()=>{this.socket?.write(O)},V=X.protocol==="https:"?hV({host:Q,port:G,servername:Q},L):vV({host:Q,port:G},L);this.socket=V,V.on("data",(F)=>{this.onData(typeof F==="string"?Buffer.from(F,"binary"):F)}),V.on("error",(F)=>{if(this.emitRejectedUpgrade(!0))return;this.readyState=3;let P=F instanceof Error?F.message:String(F);this.log("socket_error",{message:P}),this.emit("error",{message:P})}),V.on("close",(F)=>{if(this.emitRejectedUpgrade(!0))return;this.readyState=3,this.log("socket_close",{hadError:F}),this.emitClose(this.peerClose?.code??1006,this.peerClose?.reason??"socket closed")})}catch(L){this.readyState=3,this.log("connect_exception",{message:L instanceof Error?L.message:String(L)}),this.emit("error",{message:L instanceof Error?L.message:String(L)})}}onData(Y){if(this.rxBuffer=fV(this.rxBuffer,Y),!this.handshakeDone){let J=Buffer.from(this.rxBuffer).toString("latin1"),X=J.indexOf(`\r
|
|
53
|
-
\r
|
|
54
|
-
`);if(X===-1)return;let Q=J.slice(0,X),G=Q.split(`\r
|
|
55
|
-
`)[0]??"",$=Q.match(/sec-websocket-accept:\s*(\S+)/i),W=T1(G);if(W!==101){if(W===void 0){this.readyState=3,this.socket?.destroy?.(),this.log("upgrade_failed",{statusLine:G}),this.emit("error",{message:`WS upgrade failed: ${G}`});return}if(!this.emitRejectedUpgrade())return;this.socket?.destroy?.();return}if(!$||$[1]!==this.expectedAccept){this.readyState=3,this.socket?.destroy?.(),this.log("accept_mismatch",{statusLine:G}),this.emit("error",{message:"WS upgrade Sec-WebSocket-Accept mismatch"});return}this.handshakeDone=!0,this.readyState=1,this.rxBuffer=this.rxBuffer.slice(X+4),this.log("open",{statusLine:G}),this.emit("open",{})}this.drainFrames()}emitRejectedUpgrade(Y=!1){if(this.upgradeFailureEmitted)return!0;if(this.handshakeDone)return!1;let J=Buffer.from(this.rxBuffer).indexOf(`\r
|
|
56
|
-
\r
|
|
57
|
-
`);if(J===-1)return!1;let X=k8(this.rxBuffer,J,Y);if(!X)return!1;return this.upgradeFailureEmitted=!0,this.readyState=3,this.log("upgrade_failed",{status:X.status,partial:Y}),this.emit("error",X),!0}drainFrames(){for(;;){let Y=this.rxBuffer;if(Y.length<2)return;let J=Y[0],X=Y[1],Q=(J&128)!==0,G=J&15,$=(X&128)!==0,W=X&127,K=2;if(W===126){if(Y.length<4)return;W=Y[2]<<8|Y[3],K=4}else if(W===127){if(Y.length<10)return;W=0;for(let H=0;H<8;H++)W=W*256+Y[2+H];K=10}if($)K+=4;if(Y.length<K+W)return;let U=Y.slice(K,K+W);this.rxBuffer=Y.slice(K+W),this.handleFrame(Q,G,U)}}handleFrame(Y,J,X){if(J===9){this.writeFrame(10,X);return}if(J===10)return;if(J===8){let G=1005,$="";if(X.length>=2)G=X[0]<<8|X[1],$=Buffer.from(X.slice(2)).toString("utf-8");this.readyState=3,this.peerClose={code:G,reason:$};try{this.socket?.end()}catch{}this.log("close_frame",{code:G,reason:$}),this.emitClose(G,$);return}if(J===1||J===2)this.fragOpcode=J,this.fragChunks=[X];else if(J===0)this.fragChunks.push(X);if(!Y)return;let Q=mV(this.fragChunks);if(this.fragChunks=[],this.fragOpcode===1){let G=Buffer.from(Q).toString("utf-8");this.emit("message",{data:G})}}send(Y){if(this.readyState!==1)return;this.writeFrame(1,new TextEncoder().encode(Y))}writeFrame(Y,J){let X=J.length,Q=crypto.getRandomValues(new Uint8Array(4)),G;if(X<126)G=[128|Y,128|X];else if(X<65536)G=[128|Y,254,X>>8&255,X&255];else{G=[128|Y,255];for(let K=7;K>=0;K--)G.push(X/2**(8*K)&255)}let $=new Uint8Array(X);for(let K=0;K<X;K++)$[K]=J[K]^Q[K%4];let W=new Uint8Array(G.length+4+X);W.set(G,0),W.set(Q,G.length),W.set($,G.length+4);try{this.socket?.write(W)}catch{}}close(){if(this.readyState===3)return;this.readyState=2;try{this.writeFrame(8,new Uint8Array([3,232])),this.socket?.end()}catch{}this.readyState=3}log(Y,J){return e6({component:"raw-ws-node",event:Y,sessionID:this.sessionID,url:this.url,...J})}}function gV(Y){return Y}function fV(Y,J){let X=new Uint8Array(Y.length+J.length);return X.set(Y,0),X.set(J,Y.length),X}function mV(Y){let J=0;for(let G of Y)J+=G.length;let X=new Uint8Array(J),Q=0;for(let G of Y)X.set(G,Q),Q+=G.length;return X}function cV(){return typeof globalThis.Bun?.connect==="function"}var PG=cV()?x4:v4;function x8(Y){return process.env[Y]??process.env[Y.toLowerCase()]}function uV(Y){let J=x8("NO_PROXY");if(!J)return!1;let X=Y.hostname.toLowerCase(),Q=J.split(",").map((G)=>G.trim().toLowerCase()).filter(Boolean);for(let G of Q){if(G==="*")return!0;if(G.startsWith(".")){if(X===G.slice(1)||X.endsWith(G))return!0}else if(X===G||X.endsWith(`.${G}`))return!0}return!1}function pV(Y){let J=new URL(Y);if(uV(J))return;if(J.protocol==="http:")return x8("HTTP_PROXY");if(J.protocol==="https:")return x8("HTTPS_PROXY")??x8("HTTP_PROXY");return}var qG={getProxyForUrl:pV};var lV=H0("quota"),d6=H0("transport"),RG="responses_websockets=2026-02-06",MG=["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"],dV=new Set([h6,"x-opencode-title"]);function iV(Y){let J=new Map;for(let Q of Object.keys(Y))J.set(Q.toLowerCase(),Q);let X={};for(let Q of MG){let G=J.get(Q),$=G===void 0?void 0:Y[G];if(G!==void 0&&$!==void 0)X[G]=$}for(let[Q,G]of Object.entries(Y))if(!MG.includes(Q.toLowerCase()))X[Q]=G;return X}function nV(Y){let J={};for(let[X,Q]of Object.entries(Y)){if(dV.has(X.toLowerCase()))continue;J[X]=Q}return J}function oV(Y){return Y.replace(/^http/,"ws")}function rV(Y){let J={};if(!Y)return J;if(Y instanceof Headers)return Y.forEach((X,Q)=>{J[Q.toLowerCase()]=X}),J;if(Array.isArray(Y)){for(let[X,Q]of Y)J[X.toLowerCase()]=Q;return J}for(let[X,Q]of Object.entries(Y))if(Q!=null)J[X.toLowerCase()]=String(Q);return J}function g4(Y){return Y instanceof DOMException&&Y.name==="AbortError"}var CG=new WeakSet;function sV(Y){return typeof Y==="object"&&Y!==null&&CG.has(Y)}var wG=new WeakSet;function aV(Y){return typeof Y==="object"&&Y!==null&&wG.has(Y)}function SG(Y){return wG.add(Y),Y}function EG(Y,J){let X=Error(Y,J===void 0?void 0:{cause:J});return CG.add(X),X}function tV(Y){return new Promise((J,X)=>{if(Y.signal?.aborted){X(h4(Y.signal));return}let Q={...Y.headers,"openai-beta":Y.headers["openai-beta"]??RG},G=Q[h6]??Q["session-id"];delete Q["content-length"],Q=iV(nV(Q));let $=typeof Bun>"u"?void 0:qG.getProxyForUrl(Y.url.replace(/^wss:/,"https:").replace(/^ws:/,"http:")),W=!0,K=Y.rawWebSocket?new PG(Y.url,Q,{sessionID:G}):new globalThis.WebSocket(Y.url,{headers:Q,...$?{proxy:$}:{},perMessageDeflate:W}),U=Y.timeout?setTimeout(()=>{H(),K.close(),X(Error("WebSocket connect timed out"))},Y.timeout):void 0;function H(){if(U)clearTimeout(U);K.removeEventListener("open",B),K.removeEventListener("error",O),K.removeEventListener("close",L),Y.signal?.removeEventListener("abort",V)}function B(){H(),J(K)}function O(F){H(),X(EG(h9(F),F))}function L(F){H(),X(EG(xG("WebSocket closed before open",F.code,F.reason)))}function V(){H(),K.close(),X(h4(Y.signal))}K.addEventListener("open",B,{once:!0}),K.addEventListener("error",O,{once:!0}),K.addEventListener("close",L,{once:!0}),Y.signal?.addEventListener("abort",V,{once:!0})})}function eV(Y){let J=new TextEncoder,X=Y.socket,Q,G=()=>{},$=!1,W=0,K=!1,U=!1,H,B=[],O=12,L=[],V=typeof Y.body.previous_response_id==="string"?Y.body.previous_response_id:void 0,F=typeof Y.body.prompt_cache_key==="string"?Y.body.prompt_cache_key:void 0,P={sessionID:Y.sessionID,codexSessionID:F},q,E=0,S,x=new Set,j={addedItemIds:new Set,reasoningItemIds:new Set,finished:!1,other:!1};function C(){if(H)clearTimeout(H);G(),Y.signal?.removeEventListener("abort",x0)}function h(s=X){s.close()}function A(){C(),Q?.enqueue(J.encode(`data: [DONE]
|
|
58
|
-
|
|
59
|
-
`)),Q?.close()}function g(s){B0(s,s)}function r(){if(!U)return"none";if(j.other)return"other";if(j.finished)return j.reasoningItemIds.size>0?"other":"finished-calls";return j.addedItemIds.size>0?"unfinished-calls":"none"}function i(){Q?.enqueue(J.encode(`data: ${JSON.stringify(zB)}
|
|
60
|
-
|
|
61
|
-
`)),A()}function V0(s){let P0={...P,openingFrameTypes:B,openingItemTypes:L,responseID:q,previousResponseID:V,hasContinuation:V!==void 0,framesSinceCreated:E,msSinceLastFrame:S===void 0?void 0:Date.now()-S},l=r();if(l==="finished-calls"){if($)return;d6.warn("stream failed after finished function calls only; ended as completed",{reason:s.message,emittedOutput:!0,outputShape:l,...P0}),$=!0,C(),Y.onConnectionInvalid?.(s),i();return}if(l==="other"){let u=y4;d6.warn("stream failed after output; not retried",{reason:s.message,emittedOutput:!0,outputShape:l,...P0}),B0(Error(u,{cause:s}),new l0(u,{cause:s}));return}let I=j.reasoningItemIds.size;d6.warn(l==="unfinished-calls"?"stream failed after unfinished function calls only; retryable":I>0?"stream failed after reasoning without text only; retryable":"stream failed before output; retryable",{reason:s.message,emittedOutput:U,outputShape:l,emptyReasoningItems:I,...P0}),g(s)}function B0(s,P0){if($)return;$=!0,C(),Y.onConnectionInvalid?.(P0),Q?.error(s)}function p(s){if($)return;if(!Y.idleTimeout)return;if(H)clearTimeout(H);H=setTimeout(()=>V0(new l0(s)),Y.idleTimeout)}async function t(s){if($)return;if(typeof s.data!=="string"){V0(new l0("Unexpected binary WebSocket frame"));return}let P0=s.data,l=(()=>{try{let y=JSON.parse(P0);return typeof y==="object"&&y!==null?y:void 0}catch{return}})();if(l?.type==="codex.rate_limits"){lV.debug("codex.rate_limits frame received",{pid:process.pid}),p("idle timeout waiting for websocket");let y=TG(l);Y.onQuota?.(y);return}let I=r(),u=I==="none"||I==="unfinished-calls"?R1(l):void 0;if(u&&l){$=!0,C(),Y.onRateLimitReached?.(u.window,u.resetAt),Y.onTerminal?.(l),Y.onFirstEvent?.(),Q?.error(new l0(`OpenAI account rate limit reached at admission (${u.window})`));return}if(l?.type==="error"&&Y.onRetryableTerminal){if(G(),H)clearTimeout(H);H=void 0;try{let y=await Y.onRetryableTerminal(l);if($){if(y)h(y);return}if(y){K0(y);return}}catch(y){V0(new l0(y instanceof Error?y.message:String(y),{cause:y}));return}}let d=XB(l,P0);if(d&&l){if(!K)Y.onFirstEvent?.(d);$=!0,C(),Y.onTerminal?.(l);let y=new G9({message:d.message,url:X.url,requestBodyValues:Y.body,statusCode:d.status,responseHeaders:d.headers,responseBody:d.body}),$0=r();if($0==="none"||$0==="unfinished-calls"){if($0==="unfinished-calls")d6.warn("protocol error after unfinished function calls only; surfaced as before output",{...P,status:d.status,reason:d.message,outputShape:$0,responseID:q,previousResponseID:V});Q?.error(y);return}if(d6.warn($0==="finished-calls"?"protocol error after finished function calls only; ended as completed":"protocol error after output; not retried",{...P,status:d.status,reason:d.message,outputShape:$0,responseID:q,previousResponseID:V}),$0==="finished-calls"){i();return}Q?.error(Error(y4,{cause:y}));return}if(n(l)&&l.type==="response.failed"){let y=n(l.response)?l.response.failed:void 0,$0=n(y)?y.rate_limit_reached_type:void 0;if(typeof $0==="string"){$=!0,C(),Y.onRateLimitReached?.($0),Y.onTerminal?.(l);let M0=r();if(M0!=="none")d6.warn(M0==="other"?"rate limit reached after output; ended without retry":M0==="finished-calls"?"rate limit reached after finished function calls only; ended as completed":"rate limit reached after unfinished function calls only; retryable",{...P,outputShape:M0,responseID:q,previousResponseID:V});if(M0==="none"||M0==="unfinished-calls")Y.onFirstEvent?.(),Q?.error(new l0(`OpenAI account rate limit reached mid-stream (${$0})`));else if(M0==="finished-calls")i();else A();return}}if(!l){if(!K)Y.onFirstEvent?.();p("idle timeout waiting for websocket");return}if(YB(l,x),!K)Y.onFirstEvent?.();if(Q?.enqueue(J.encode(`${P0.split(/\r?\n/).map((y)=>`data: ${y}`).join(`
|
|
62
|
-
`)}
|
|
63
|
-
|
|
64
|
-
`)),K=!0,S=Date.now(),q!==void 0)E++;if(B.length<O)B.push(String(l.type));if(l.type==="response.output_item.added"&&L.length<O)L.push(n(l.item)?String(l.item.type):"unknown");if(l.type==="response.created")q=$B(l),d6.debug("response created",{...P,responseID:q,previousResponseID:V,hasContinuation:V!==void 0});if(!bG(l.type))U=!0,WB(l,j);if(p("idle timeout waiting for websocket"),l.type==="response.completed"||l.type==="response.done"){$=!0,JB(l,x),Y.onComplete?.(l,x),Y.onTerminal?.(l),A();return}if(l.type==="response.failed"||l.type==="response.incomplete"||l.type==="error")$=!0,Y.onTerminal?.(l),A()}function L0(s){V0(new l0(h9(s),{cause:s}))}function v(s){if($)return;let P0=s.code===1009,l=new l0(P0?kG:xG("WebSocket closed before response.completed",s.code,s.reason),{retryable:!P0});if(P0)d6.warn("websocket peer refused the request size",{...P,requestBytes:W,reason:s.reason.toString()});V0(P0?SG(l):l)}function x0(){let s=h4(Y.signal);if($)return;$=!0,C(),h(),Y.onAbort?.(s),Q?.error(s)}function T0(s){if($)return;$=!0,C(),h(),Y.onAbort?.(QB(s))}function K0(s){G(),X=s,X.addEventListener("message",t),X.addEventListener("error",L0,{once:!0}),X.addEventListener("close",v,{once:!0}),G=()=>{X.removeEventListener("message",t),X.removeEventListener("error",L0),X.removeEventListener("close",v)};let{background:P0,...l}=Y.body;p("idle timeout sending websocket request");try{let I=JSON.stringify({type:"response.create",...l});W=I.length,X.send(I),p("idle timeout waiting for websocket")}catch(I){if($)return;g(new l0(I instanceof Error?I.message:String(I),{cause:I}))}}return new Response(new ReadableStream({start(s){if(Q=s,Y.signal?.addEventListener("abort",x0,{once:!0}),Y.signal?.aborted){x0();return}K0(X)},cancel(s){T0(s)}}),{status:200,headers:{"content-type":"text/event-stream"}})}function YB(Y,J){if(Y.type!=="response.output_item.done")return;if(!n(Y.item))return;IG(Y.item,J)}function JB(Y,J){let X=Y.response;if(!n(X)||!Array.isArray(X.output))return;for(let Q of X.output)if(n(Q))IG(Q,J)}function IG(Y,J){if(Y.type!=="function_call"&&Y.type!=="custom_tool_call")return;let X=typeof Y.call_id==="string"?Y.call_id:typeof Y.id==="string"?Y.id:void 0;if(X)J.add(X)}function XB(Y,J){if(Y?.type!=="error")return;let X=Y.status??Y.status_code;if(typeof X!=="number"||X>=200&&X<300)return;return{status:X,headers:n(Y.headers)?Object.fromEntries(Object.entries(Y.headers).flatMap(([Q,G])=>typeof G==="string"||typeof G==="number"||typeof G==="boolean"?[[Q,String(G)]]:[])):void 0,body:J,message:n(Y.error)&&typeof Y.error.message==="string"?Y.error.message:`${X}`}}function R1(Y){if(typeof Y==="string")try{return R1(JSON.parse(Y))}catch{return}if(!n(Y))return;let J=R1(Y.cause);if(J)return J;let X=R1(Y.body);if(X)return X;let Q=n(Y.error)?Y.error:Y,G=typeof Q.type==="string"?Q.type:void 0,$=Y.status??Y.status_code;if(G!=="usage_limit_reached"&&$!==429)return;let{resets_at:W,resets_in_seconds:K}=Q,U=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:G??"primary",resetAt:U}}function QB(Y){if(g4(Y))return Y;if(Y instanceof Error)return Y;return new DOMException(typeof Y==="string"?Y:"Aborted","AbortError")}function h4(Y){let J=Y?.reason;if(g4(J))return J;if(GB(J))return J;return new DOMException(J instanceof Error?J.message:"Aborted","AbortError")}function GB(Y){return Y instanceof Error&&(Y.name==="ProviderHeaderTimeoutError"||Y.name==="ProviderResponseStreamError")}function $B(Y){let J=Y.response;if(!n(J))return;return typeof J.id==="string"?J.id:void 0}function WB(Y,J){let X=n(Y.item)?Y.item:void 0;switch(Y.type){case"response.output_item.added":if(X?.type==="function_call"&&typeof X.id==="string"){J.addedItemIds.add(X.id);return}if(AG(X)&&typeof X?.id==="string"){J.reasoningItemIds.add(X.id);return}break;case"response.function_call_arguments.delta":case"response.function_call_arguments.done":if(typeof Y.item_id==="string"&&J.addedItemIds.has(Y.item_id))return;break;case"response.output_item.done":if(X?.type==="function_call"&&X.status==="completed"&&typeof X.id==="string"&&typeof X.call_id==="string"&&typeof X.name==="string"&&typeof X.arguments==="string"){J.finished=!0;return}if(AG(X)&&typeof X?.id==="string"&&J.reasoningItemIds.has(X.id))return;break}J.other=!0}function AG(Y){if(Y?.type!=="reasoning")return!1;let J=(X)=>X===void 0||X===null||Array.isArray(X)&&X.length===0;return J(Y.summary)&&J(Y.content)}var zB={type:"response.completed",response:{status:"completed",incomplete_details:null,usage:{input_tokens:0,output_tokens:0,total_tokens:0}}};function bG(Y){return Y==="response.created"||Y==="response.in_progress"||Y.startsWith("codex.")}var y4="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.",kG="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 xG(Y,J,X){let Q=[`code ${J}`];if(X.length>0)Q.push(X.toString());return`${Y} (${Q.join(": ")})`}var m4="x-opencode-title",v8="x-openai-auth-quota-account",f4=new Set([m4,h6,v8,"x-opencode-session"]),UB=15000,HB=300000,ZB=3300000,vG="websocket_connection_limit_reached";function VB(Y){let J=typeof Y["chatgpt-account-id"]==="string"?Y["chatgpt-account-id"]:"",X=typeof Y.authorization==="string"&&Y.authorization.startsWith("Bearer ")?Y.authorization.slice(7):"",Q=J?`acct:${J}`:`tok:${X}`;return KB("sha256").update(Q).digest("hex").slice(0,12)}function BB(Y){let J=Y?.httpFetch??globalThis.fetch,X=new Map,Q=Y?.connectTimeout??UB,G=Y?.idleTimeout??HB,$=Y?.maxConnectionAge??ZB,W=Y?.streamRetries??5,K=Y?.firstEventGraceMs??250,U=Y?.rawWebSocket??!1,H=Y?.onQuota,B=Y?.onRateLimitReached,O=setInterval(()=>P(),Math.min(G,60000));if(typeof O==="object"&&"unref"in O&&typeof O.unref==="function")O.unref();function L(S,x,j,C){if(!x||!j)return j;c4(S,hG(x),void 0,C);let h=new Headers(j.headers),A=h.get("x-codex-turn-metadata");if(!A)return j;let g=pG(A,S.turnID,S.turnStartedAt);if(!g)return j;return h.set("x-codex-turn-metadata",g),{...j,headers:h}}async function V(S,x){let j=S instanceof URL?S.toString():typeof S==="string"?S:S.url,C=y0.normalizeHeaders(x?.headers),h=oG(x),A=X8(h);if(x?.method!=="POST"||!new URL(j).pathname.endsWith("/responses"))return J(S,A);let g=(()=>{try{if(typeof x?.body!=="string")return;let K0=JSON.parse(x.body);return typeof K0==="object"&&K0!==null?K0:void 0}catch{return}})();if(!g?.stream)return J(S,A);if(C[m4]==="true")return J(S,A);let r=C[h6]??C["x-session-affinity"]??C["session-id"],i=r;if(!r)return J(S,A);let V0=y0.normalizeHeaders(h?.headers),B0=VB(V0),p=`${r}:${B0}:conversation`,t=typeof C[v8]==="string"?C[v8]:void 0,L0=B?(K0,s)=>B(K0,t,s):void 0,v=X.get(p)??{lastUsedAt:Date.now(),busy:!1,fallback:!1,streamFailures:0};X.set(p,v);let x0=hG(g),T0;if(v.fallback)return J(S,L(v,g,A,T0));if(v.busy)return J(S,L(v,g,A,T0));v.busy=!0,v.lastUsedAt=Date.now();try{T0=y9(v,x0);let K0=y0.normalizeHeaders(h?.headers),s=typeof K0.authorization==="string"&&K0.authorization.startsWith("Bearer ")?K0.authorization.slice(7):"",P0=typeof K0["chatgpt-account-id"]==="string"?K0["chatgpt-account-id"]:void 0,l=H?(q0)=>H(q0,s,t,P0):void 0,I=!v.socket&&!v.continuation?qB(K0):K0;if(v.socket=await FB(v,Y?.url??j,I,Q,$,U,x?.signal),AB(v,x0,T0))await DB(v,x0,G,{signal:x?.signal??void 0,sessionID:i,url:Y?.url??j,headers:h?.headers,onRateLimitReached:L0});let u=()=>{},d=()=>{},y=new Promise((q0,j6)=>{u=q0,d=j6}),$0=EB(v,x0,T0),M0=t6(uG(v,$0,x0,T0)),a0=typeof M0.previous_response_id==="string";await A9({sessionID:i,transport:"websocket",phase:"main",bodyText:()=>JSON.stringify(M0),url:Y?.url??j,method:h?.method,headers:h?.headers});let w0=y0.streamResponsesWebSocket({socket:v.socket,body:M0,sessionID:i??void 0,idleTimeout:G,signal:x?.signal??void 0,onQuota:l,onRateLimitReached:L0,onFirstEvent:(q0)=>u(q0??!0),onComplete:(q0,j6)=>{let Z9=fG(q0);e6({component:"ws-pool",event:"main_completed",sessionID:i,responseID:gG(q0),usage:Z9}),cG(v,x0,q0,j6,a0,T0)},onTerminal:(q0)=>{if(v.busy=!1,v.lastUsedAt=Date.now(),v.streamFailures=0,q0.type!=="response.completed"&&q0.type!=="response.done")v.continuation=void 0,I6(v)},onConnectionInvalid:(q0)=>{if(v.busy=!1,v.lastUsedAt=Date.now(),y0.isOversizedFrame(q0))v.fallback=!0;if(!v.fallback)F(v);v.continuation=void 0,I6(v),u(!1)},onAbort:(q0)=>{v.busy=!1,v.lastUsedAt=Date.now(),v.streamFailures=0,v.continuation=void 0,I6(v),d(q0)},onRetryableTerminal:async(q0)=>{let j6=yG(q0);if(!j6)return;throw v.fallback=!0,j6}}),t0=await LB(y,K);if(t0!==!1){if(t0===!0||t0.status<200||t0.status>599)return w0;return new Response(t0.body,{status:t0.status,headers:{"content-type":"application/json",...t0.headers}})}let f9=()=>J(S,L(v,g,A,T0));if(!v.fallback)return NB(w0,f9);return f9()}catch(K0){if(v.busy=!1,v.lastUsedAt=Date.now(),y0.isAbortError(K0))throw v.streamFailures=0,v.continuation=void 0,I6(v),K0;let s=y0.parseRateLimitSignal(K0);if(s)L0?.(s.window,s.resetAt);if(y0.isUpgradeFailure(K0)&&!U)v.fallback=!0;if(F(v),v.continuation=void 0,I6(v),v.fallback)return J(S,L(v,g,A,T0));return jB(new l0(K0 instanceof Error?K0.message:String(K0),{cause:K0}))}}function F(S){if(S.streamFailures++,S.streamFailures>W)S.fallback=!0}function P(){let S=Date.now();for(let[x,j]of X){if(j.busy)continue;if(S-j.lastUsedAt<G)continue;I6(j),X.delete(x)}}function q(){clearInterval(O);for(let S of X.values())I6(S);X.clear()}function E(S){let x=`${S}:`;for(let[j,C]of X){if(!j.startsWith(x))continue;I6(C),X.delete(j)}}return Object.assign(V,{close:q,remove:E})}function yG(Y){if(Y.type!=="error"||!n(Y.error)||Y.error.code!==vG)return;return Error(typeof Y.error.message==="string"?Y.error.message:vG)}async function LB(Y,J){if(J<=0)return!1;return new Promise((X,Q)=>{let G=setTimeout(()=>X(!1),J);Y.then(($)=>{clearTimeout(G),X($)},($)=>{clearTimeout(G),Q($)})})}function NB(Y,J){let X=Y.body;if(!X)return Y;let Q=!1,G=new ReadableStream({async start($){let W=X.getReader(),K=async(U)=>{while(!0){let{done:H,value:B}=await U.read();if(H)return;if(B&&B.length>0)Q=!0,$.enqueue(B)}};try{await K(W),$.close()}catch(U){if(Q||!y0.isOversizedFrame(U)){$.error(U);return}try{let H=await J();if(!H.ok){$.error(new l0(`HTTP fallback after an oversized WebSocket frame failed with ${H.status}`));return}if(H.body)await K(H.body.getReader());$.close()}catch(H){$.error(H)}}},cancel($){X.cancel($)}});return new Response(G,{status:Y.status,headers:Y.headers})}function jB(Y){return new Response(new ReadableStream({start(J){J.error(Y)}}),{status:200,headers:{"content-type":"text/event-stream"}})}async function FB(Y,J,X,Q,G,$,W){if(Y.socket?.readyState===WebSocket.OPEN&&Y.connectedAt&&Date.now()-Y.connectedAt<G)return Y.socket;I6(Y);let K=await y0.connectResponsesWebSocket({url:y0.toWebSocketUrl(J),headers:X,timeout:Q,rawWebSocket:$,signal:W??void 0});return Y.connectedAt=Date.now(),K}function I6(Y){if(Y.socket)Y.socket.close(),Y.socket=void 0;Y.connectedAt=void 0,Y.continuation=void 0}async function DB(Y,J,X,Q){if(!Y.socket||!Array.isArray(J.input)||J.input.length===0)return;let G=_B(J);await A9({sessionID:Q.sessionID,transport:"websocket",phase:"prewarm",bodyText:()=>JSON.stringify(G),url:Q.url,method:"POST",headers:Q.headers});let $=y0.streamResponsesWebSocket({socket:Y.socket,body:G,sessionID:Q.sessionID,idleTimeout:X,signal:Q.signal,onRateLimitReached:Q.onRateLimitReached,onComplete:(W,K)=>{e6({component:"ws-pool",event:"prewarm_completed",sessionID:Q.sessionID,responseID:gG(W),usage:fG(W)}),cG(Y,G,W,K,!1,{input:Y9([]),signature:iG(G),priorInputs:new Map})},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=yG(W);if(!K)return;throw Y.fallback=!0,K}});await OB($)}function gG(Y){let J=Y.response;if(!n(J))return;return typeof J.id==="string"?J.id:void 0}function fG(Y){let J=Y.response;if(!n(J))return;return n(J.usage)?J.usage:void 0}async function OB(Y){let J=Y.body?.getReader();if(!J)return;while(!0)if((await J.read()).done)return}function _B(Y){return t6({...Y,generate:!1,input:[],previous_response_id:void 0,client_metadata:PB(Y.client_metadata)})}function mG(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 PB(Y){if(!n(Y))return Y;if(typeof Y["x-codex-turn-metadata"]!=="string")return Y;try{let J=JSON.parse(Y["x-codex-turn-metadata"]);if(!n(J))return Y;return{...Y,"x-codex-turn-metadata":mG(J),"x-codex-ws-stream-request-start-ms":String(Date.now())}}catch{return Y}}function qB(Y){let J=Y["x-codex-turn-metadata"];if(!J)return Y;try{let X=JSON.parse(J);if(!n(X))return Y;return{...Y,"x-codex-turn-metadata":mG(X)}}catch{return Y}}function hG(Y){let J={...Y};if(Array.isArray(Y.input))J.input=Y.input.map(MB);return J}function MB(Y){if(!n(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 cG(Y,J,X,Q,G,$=y9(Y,J)){let W=X.response,K=n(W)&&typeof W.id==="string"?W.id:void 0;if(!K||!Array.isArray(J.input)){Y.continuation=void 0;return}let U=G?new Set(Y.continuation?.finalizedCallIds):new Set;for(let H of Q)U.add(H);Y.continuation={responseID:K,input:J.input,signature:$.signature,canonical:Y1($.input),finalizedCallIds:U}}function c4(Y,J,X=J,Q=y9(Y,{...X,input:Array.isArray(X.input)?X.input:J.input})){let G=Array.isArray(J.input)?J.input:[],$=Array.isArray(X.input)?X.input:G,W=Q.signature,K=Y.turnInput&&Y.turnSignature===W?J1(lG(Q,Y.turnInput),Q.input):void 0,U=K===void 0?G:$.slice(K);if(U.length>0&&U.some(dG)||!Y.turnID)Y.turnID=E6(),Y.turnStartedAt=Date.now();Y.turnInput=$.slice(),Q.priorInputs.set(Y.turnInput,Q.input),Y.turnSignature=W,Y.turnCanonical=Y1(Q.input)}function uG(Y,J,X=J,Q=y9(Y,{...X,input:Array.isArray(X.input)?X.input:J.input})){c4(Y,J,X,Q);let G=J.client_metadata;if(!n(G)||typeof G["x-codex-turn-metadata"]!=="string")return J;let $=pG(G["x-codex-turn-metadata"],Y.turnID,Y.turnStartedAt);if(!$)return J;return{...J,client_metadata:{...G,"x-codex-turn-metadata":$}}}function pG(Y,J,X){let Q;try{Q=JSON.parse(Y)}catch{return}if(!n(Q))return;return JSON.stringify({session_id:Q.session_id,thread_id:Q.thread_id,thread_source:Q.thread_source,turn_id:J,sandbox:Q.sandbox,turn_started_at_unix_ms:X,request_kind:"turn",window_id:Q.window_id})}function y9(Y,J){let X=Array.isArray(J.input)?J.input:[],Q=new Map;if(Y.turnInput&&Y.turnCanonical)Q.set(Y.turnInput,Y.turnCanonical);if(Y.continuation?.canonical)Q.set(Y.continuation.input,Y.continuation.canonical);let G=Y9(X,Y.turnCanonical??Y.continuation?.canonical);return Q.set(X,G),{input:G,signature:iG(J),priorInputs:Q}}function lG(Y,J){let X=Y.priorInputs.get(J);if(!X){for(let[Q,G]of Y.priorInputs)if(Q.length===J.length&&Q.every(($,W)=>$===J[W])){X=G;break}X??=Y9(J),Y.priorInputs.set(J,X)}return X}function EB(Y,J,X=y9(Y,J)){let Q=Array.isArray(J.input)?J.input:void 0;if(!Q||!Y.continuation)return J;if(Y.continuation.signature!==X.signature)return Y.continuation=void 0,J;if(!nG(Y.continuation,X))return Y.continuation=void 0,J;if(Y.continuation.input.length===0)return{...J,previous_response_id:Y.continuation.responseID};let G=Q.slice(Y.continuation.input.length),$=TB(G,Y.continuation.finalizedCallIds);if($.length===0)return J;return{...J,previous_response_id:Y.continuation.responseID,input:$}}function AB(Y,J,X=y9(Y,J)){let Q=Array.isArray(J.input)?J.input:void 0;if(!Y.continuation)return!0;if(!Q)return!1;if(!nG(Y.continuation,X))return!0;return Q.slice(Y.continuation.input.length).some(dG)}function dG(Y){if(!n(Y))return!1;if(!(Y.type==="message"||("role"in Y)))return!1;return Y.role==="user"||Y.role==="developer"}function TB(Y,J){return Y.filter((X)=>{if(!n(X))return!0;if(typeof X.type==="string"&&X.type.endsWith("_output"))return!0;if(X.type==="function_call_output"||X.type==="custom_tool_call_output")return!0;if(X.type==="function_call"||X.type==="custom_tool_call"){let Q=typeof X.call_id==="string"?X.call_id:typeof X.id==="string"?X.id:void 0;return Q?!J.has(Q):!0}if(X.type==="message")return X.role!=="assistant";if(typeof X.role==="string")return X.role!=="assistant";return!1})}function iG(Y){return T9(RB(Object.fromEntries(Object.entries(Y).filter(([J])=>J!=="input"&&J!=="stream"&&J!=="background"&&J!=="previous_response_id"&&J!=="generate"))))}function RB(Y){if(!n(Y.client_metadata))return Y;let J=Object.fromEntries(Object.entries(Y.client_metadata).filter(([X])=>X!=="x-codex-turn-metadata"&&X!=="x-codex-ws-stream-request-start-ms"));return{...Y,client_metadata:J}}function nG(Y,J){if(Y.input.length>=J.input.texts.length)return!1;return J1(lG(J,Y.input),J.input)!==void 0}function oG(Y){if(!Y?.headers)return Y;if(Y.headers instanceof Headers){let J=new Headers(Y.headers);for(let X of f4)J.delete(X);return{...Y,headers:J}}if(Array.isArray(Y.headers))return{...Y,headers:Y.headers.filter((J)=>!f4.has(J[0].toLowerCase()))};return{...Y,headers:Object.fromEntries(Object.entries(Y.headers).filter(([J])=>!f4.has(J.toLowerCase())))}}var bB=new Set(["gpt-5.5","gpt-5.3-codex-spark","gpt-5.4","gpt-5.4-mini"]),kB=new Set(["gpt-5.6","gpt-6","gpt-6.1"]);function xB(Y){if(bB.has(Y))return!0;if(kB.has(Y))return!1;let X=Y.match(/^gpt-(\d+(?:\.\d+)?)/)?.[1];return X?parseFloat(X)>5.4:!1}function vB(Y){if(Y.includes("gpt-5.5"))return{context:400000,input:272000,output:128000};if(Y.includes("gpt-6-astra"))return{context:872000,input:744000,output:128000};if(Y.includes("gpt-6.1-sol"))return{context:500000,input:372000,output:128000};if(Y.includes("gpt-5.6")||Y.includes("gpt-6-sol")||Y.includes("gpt-6-luna"))return{context:372000,input:244000,output:128000};return}var hB="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.",yB="opencode-oauth-dummy-key",Aq=()=>s9,gB=120000,fB=90000,mB=4000,rG=50,sG=3,cB=25,uB=60000,pB="__OPENCODE_OPENAI_AUTH_COMMAND_HANDLED__",r4=!1,m8;function Tq(){return m8}function Rq(){r4=!1,m8=void 0}var aG=H0("models"),tG=!1,eG=!1;class a4 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 g0 extends Error{code;constructor(Y,J){super(J);this.name="ResetTargetResolutionError",this.code=Y}}function p4(Y,J,X,Q){let G=(X?.refresh?.refreshBeforeExpiryMinutes??240)*60000;return!Y||!J||J-Q<=G}function lB(Y,J){let X=Y==="main",Q=J.row,G=()=>new g0("token_unavailable",X?"Main OpenAI account has no usable access token.":`Fallback account ${Y} has no usable access token.`);if(!Q){if(X)throw G();throw new g0("unknown_account",`Fallback account ${Y} was not found.`)}if(!Q.enabled)throw new g0("disabled_account",`${X?"Main":"Fallback"} account ${Y} is disabled.`);if(Q.type!=="oauth")throw new g0("non_oauth_account",`${X?"Main":"Fallback"} account ${Y} is not an OAuth account.`);if(!J.token)throw G();let $=Y6(J.token);return{accountKey:Y,label:X?"Main account":Q.label??Y,accessToken:J.token,chatgptAccountId:Q.identity??($?J6($):void 0)}}function dB(Y){async function J(){let X=await Y.loadAccounts({configPath:Y.accountStoragePath,statePath:Y.accountStatePath}),Q=r6(X);if(!X||!Q||m0(Q))throw new g0("token_unavailable","Main OpenAI account has no usable access token.");let G=Q;if(p4(G.access,G.expires,X,Y.now()))G=await(Y.refreshPoolMainRow??Y.refreshFallbackAccount)(G,X);if(!G.access)throw new g0("token_unavailable","Main OpenAI account has no usable access token.");let $=Y6(G.access);return{accountKey:"main",label:"Main account",accessToken:G.access,chatgptAccountId:G.accountId??($?J6($):void 0)}}return async(X)=>{let Q=await Y.poolAccess?.(X);if(Q)return lB(X,Q);if(X==="main"){let B=await Y.loadAccounts({configPath:Y.accountStoragePath,statePath:Y.accountStatePath}),O=await Y.getAuth();if(n0(O))return J();if(O.type!=="oauth")throw new g0("non_oauth_account","Main OpenAI account is not authenticated with OAuth.");if(p4(O.access,O.expires,B,Y.now()))try{O={type:"oauth",...await Y.refreshMainWithLease()}}catch(P){if(P instanceof s6)return J();throw P}if(!O.access)throw new g0("token_unavailable","Main OpenAI account has no usable access token.");let L=Y6(O.access),V=L?J6(L):void 0,F=await Y.loadAccounts({configPath:Y.accountStoragePath,statePath:Y.accountStatePath});return{accountKey:X,label:"Main account",accessToken:O.access,chatgptAccountId:V??F?.mainAccountId}}let G=await Y.loadAccounts({configPath:Y.accountStoragePath,statePath:Y.accountStatePath}),$=G?.accounts.find((B)=>B.id===X);if(!G||!$)throw new g0("unknown_account",`Fallback account ${X} was not found.`);if($.enabled===!1)throw new g0("disabled_account",`Fallback account ${X} is disabled.`);if(!o0($))throw new g0("non_oauth_account",`Fallback account ${X} is not an OAuth account.`);let W=()=>new g0("token_unavailable",`Fallback account ${X} has no usable access token.`);if(m0($))throw W();let K=$;if(p4(K.access,K.expires,G,Y.now()))K=await Y.refreshFallbackAccount(K,G);if(!K.access)throw W();let U=await Y.loadAccounts({configPath:Y.accountStoragePath,statePath:Y.accountStatePath}),H=U?.accounts.find((B)=>B.id===X);if(!U||!H)throw new g0("unknown_account",`Fallback account ${X} was not found.`);if(H.enabled===!1)throw new g0("disabled_account",`Fallback account ${X} is disabled.`);if(!o0(H))throw new g0("non_oauth_account",`Fallback account ${X} is not an OAuth account.`);return{accountKey:X,label:K.label??X,accessToken:K.access,chatgptAccountId:H.accountId}}}function iB(){return{fetchImpl:fetch,now:Date.now,randomUUID:()=>crypto.randomUUID()}}function l4(Y){return Y instanceof a4}function Y$(){throw Error(pB)}async function nB(Y,J={}){let X=U0(X0());if($Y(X.configPath)){await o6(O9(X),J.holdsMainRefreshLock?void 0:q6(X),(Q)=>{if(J.canWrite&&!J.canWrite())throw Error(Q9["vault-refused"]);Y(Q)});return}await n1((Q)=>{return Y(Q),Q},X,{canWrite:J.canWrite})}var f$=null;function Cq(){return f$}function oB(Y){return Math.floor(Math.random()*Y)}var rB=!0;function sB(Y,J,X){let Q=Y.get(J);if(Q)return Q;let G=E6(),$={threadID:G,turnID:E6(),windowID:`${G}:0`};return Y.set(J,$),X?.(),$}function J$(){return IB(GY(),"openai-auth-sessions.json")}function aB(Y,J){return Y.find((X)=>X.enabled!==!1&&o0(X)&&(X.id===J||X.accountId===J))}function X$(Y,J){if(!J)return Y;let X={...Y};for(let Q of["resetCreditsAvailable","resetCreditsApplicable"]){let G=J[Q];if(X[Q]===void 0&&G!==void 0)X[Q]=G}if(X.spendControl===void 0&&X.spendControlCleared!==!0&&J.spendControl!==void 0)X.spendControl=J.spendControl;if(X.credits===void 0&&J.credits!==void 0)X.credits=J.credits;return X}function h8(Y,J){if(!Y)return Y;if(typeof Y.checkedAt==="number"&&Number.isFinite(Y.checkedAt))return Y;return{...Y,checkedAt:J}}function m$(Y,J,X=Date.now(),Q=J.mainAccountId){let G=Y.getMain(),$=G?.quota;return{main:{quota:$?{...$,checkedAt:G.checkedAt,primary:h8($.primary,G.checkedAt),secondary:h8($.secondary,G.checkedAt)}:null,...typeof Q==="string"?{mainAccountId:Q}:{},killed:!H9($,J,void 0,X),...$?.resetCreditsAvailable!==void 0?{resetCredits:$.resetCreditsAvailable}:{}},fallbacks:J.accounts.filter((W)=>W.enabled).map((W)=>{let K=Y.getFallback(W.id),U=K?.quota;return{id:W.id,label:W.label,accountId:K?.accountId??W.accountId,quota:U?{...U,checkedAt:K.checkedAt,primary:h8(U.primary,K.checkedAt),secondary:h8(U.secondary,K.checkedAt)}:null,killed:!H9(U,J,W.id,X),enabled:!0,...U?.resetCreditsAvailable!==void 0?{resetCredits:U.resetCreditsAvailable}:{}}}),route:J.routing?.mode??"main-first",lastUpdated:X}}function wq(Y,J,X,Q=Date.now()){return{...m$(Y,J,Q),activeId:X}}function Q$(Y,J){if(J?.headers!==void 0)return new Headers(J.headers);if(Y instanceof Request)return new Headers(Y.headers);return new Headers}async function d4(Y,J){if(!(Y instanceof Request))return J;let X=new Request(Y,J),Q=X.method.toUpperCase(),G=Q==="GET"||Q==="HEAD"||X.body===null?void 0:await X.text();return{method:X.method,headers:new Headers(X.headers),body:G,signal:X.signal,cache:X.cache,credentials:X.credentials,integrity:X.integrity,keepalive:X.keepalive,mode:X.mode,redirect:X.redirect,referrer:X.referrer,referrerPolicy:X.referrerPolicy}}function G$(Y){return Y.get("x-session-affinity")??Y.get("x-opencode-session")??Y.get("x-session-id")??Y.get("session-id")??void 0}var tB=new Set(["gpt-6-astra","gpt-6-sol","gpt-6-luna","gpt-6.1-sol"]),eB=new Set(["title","compaction","summary"]);function YL(Y,J,X){if(X!==null&&eB.has(X))return;let Q=typeof Y.model==="string"?Y.model:"";if(!tB.has(Q))return;let G=n(Y.reasoning)?Y.reasoning:void 0,$=typeof G?.effort==="string"?G.effort:void 0;if(!$)return;let W=Array.isArray(Y.input)?Y.input:void 0;J.effortUpdates??=[];let K=J.effortUpdates,U=(L)=>CB("sha256").update(T9(L)).digest("hex").slice(0,16);if(J.pinnedEffort===void 0||K.some((L)=>!W||!Q1(W[L.anchor],"user")||U(W[L.anchor])!==L.fingerprint)){J.pinnedEffort=$,J.effortUpdates=[];return}if(!W||W.length===0)return;let H=W.findLastIndex((L)=>Q1(L,"user")),B=K.at(-1),O=B?.effort??J.pinnedEffort;if(H>=0&&$!==O)if(B?.anchor===H){let L=K.at(-2)?.effort??J.pinnedEffort;if($===L)K.pop();else B.effort=$}else K.push({anchor:H,fingerprint:U(W[H]),effort:$});else if(H<0&&$!==O)return;if(K.some((L,V)=>V>0&&L.anchor<=(K[V-1]?.anchor??-1))){J.pinnedEffort=$,J.effortUpdates=[];return}Y.reasoning={...G,effort:J.pinnedEffort};for(let L=K.length-1;L>=0;L--){let V=K[L];if(!V)continue;W.splice(V.anchor,0,{type:"configuration_update",reasoning:{effort:V.effort}})}}function s4(Y){if(Array.isArray(Y)){let X=Y;for(let Q=0;Q<Y.length;Q++){let G=s4(Y[Q]);if(G===Y[Q])continue;if(X===Y)X=Y.slice();X[Q]=G}return X}if(!n(Y))return Y;let J=Y;for(let X of Object.keys(Y)){if(Y.type==="input_image"&&X==="detail"){if(J===Y)J={...Y};delete J[X];continue}let Q=s4(Y[X]);if(Q===Y[X])continue;if(J===Y)J={...Y};J[X]=Q}return J}function JL(Y){let J=n(Y.reasoning)?{...Y.reasoning}:{};J.context="all_turns",Y.reasoning=J,Y.parallel_tool_calls=!1;let X=s4(Array.isArray(Y.input)?Y.input:[]),G=[{type:"additional_tools",role:"developer",tools:Array.isArray(Y.tools)?Y.tools.filter(($)=>!(n($)&&$.type==="web_search")):[]}];if(typeof Y.instructions==="string"&&Y.instructions.length>0)G.push({type:"message",role:"developer",content:[{type:"input_text",text:Y.instructions}]});Y.input=[...G,...X],delete Y.tools,delete Y.instructions}async function XL(Y,J={}){let X=J.codexApiEndpoint??i0().codexApiEndpoint,Q=crypto.randomUUID(),G=RX(J$()),$=()=>CX(J$(),G),W=!1,K=!1,U=[],H=null,B=E$(Y.client),O=new Map,L=new Map,V,F=!1,P,q=new Map,E,S,x=h3({host:"opencode",stateDir:J.vault?.stateDir??j$(U0(X0()).statePath),...Y.directory?{projectRoot:Y.directory}:{},reservedRouteIds:()=>i?.peek().rows.map((I)=>I.id)??[],...J.vault?.connectionFile?{connectionFile:J.vault.connectionFile}:{},...J.vault?.connectScoped?{connectScoped:J.vault.connectScoped}:{},...J.vault?.connectEnrollment?{connectEnrollment:J.vault.connectEnrollment}:{},...J.vault?.pollIntervalMs!==void 0?{pollIntervalMs:J.vault.pollIntervalMs}:{},fetchImpl:()=>fetch},U0(X0())),j=x.vault;await j.authority();let C=x.firstRoster,h=Promise.withResolvers(),A=Promise.race([C,h.promise]),g=J.vault?.firstRosterWaitMs??SY,r,i,{enabled:V0,...B0}=J.poolMigration??{},p=V0??rB;if(p&&"reason"in B)(B0.log??H0("pool")).warn("account pool migration is off for this OpenCode client",{reason:B.reason});let t=p&&"slot"in B?H3({paths:()=>U0(X0()),slot:B.slot,version:v6,...B0,runDeps:{vaultServes:()=>j.serves(),...B0.runDeps},paused:async()=>await j.authority()!=="local",migrate:async(I)=>{let u=await(B0.migrate??W8)(I);return i?.load(),u},adopt:async(I)=>{if(!await W1(A,g))return{status:"retry",reason:"vault-roster-pending"};let u=await(B0.adopt??z8)(I);return i?.load(),u}}):void 0,L0=(I,u="")=>I?async()=>{let d=await I();return{url:d.url,instructions:d.instructions??u,method:"auto",callback:async()=>{try{let y=await d.tokens;return{type:"success",refresh:y.refresh_token,access:y.access_token,expires:Date.now()+(y.expires_in??3600)*1000,accountId:a6(y)}}finally{d.cleanup?.()}}}}:void 0,v=new PY(J.backgroundQuota),x0,T0=KX({client:Y.client,getAuth:async()=>x0?.(),fetchImpl:fetch,dependencies:{...J.login?.authorize?{authorizeBrowser:L0(J.login.authorize.browser,"Complete authorization in your browser. This window will close automatically."),authorizeHeadless:L0(J.login.authorize.headless)}:{}},vault:j,onMainSlotWritten:async()=>{await t?.requestAdoption()}}),K0=(I)=>async(u)=>{let d=await I(u);if(d.method!=="auto")return d;return{...d,callback:async()=>{let y=await d.callback();if(y.type==="success"&&"refresh"in y)s(y.refresh);return y}}};async function s(I){if(!t||!("slot"in B))return;let u=J.login?.sleep??((d)=>Bun.sleep(d));for(let d=0;d<5000;d+=100){try{let y=await B.slot.get({path:{id:"openai"}});if(n(y)&&y.refresh===I){await t.requestAdoption();return}}catch{}await u(100)}}let P0=T0.map((I)=>I.type==="oauth"?{...I,authorize:K0(I.authorize)}:I);async function l(I,u){let d=Y.client.session;if(typeof d?.promptAsync==="function"){let y=await s3(Y.client,I),$0={noReply:!0,parts:[{type:"text",text:u,ignored:!0}]};if(y?.agent)$0.agent=y.agent;if(y?.model)$0.model=y.model;if(y?.variant)$0.variant=y.variant;await d.promptAsync({path:{id:I},body:$0});return}}return{async dispose(){x.release(),t?.dispose(),i?.dispose(),v.stop(),S?.stop(),V?.stopBackgroundRefresh(),V=void 0;for(let d of U)d.close();U.length=0;let I=globalThis;for(let[d,y]of O)if(I.__openaiAuthCacheKeepManagers?.get(d)===y)y.stop(),I.__openaiAuthCacheKeepManagers.delete(d);O.clear();for(let d of L.values())await d.release().catch(()=>{});L.clear();let u=r;r=void 0,await(await u)?.release()},async event(I){if(I.event.type!=="session.deleted")return;let u=I.event.properties.info,d=G.get(u.id);if(d)H?.cacheKeepManager?.remove(d.threadID);if(G.delete(u.id))$();let y=L6(u.id);if(q.delete(y),S?.cancel(`pin:${y}`),P){let $0=(await R0(U0(X0())))?.accounts;await b$(u.id,$0,P).catch(()=>{})}for(let $0 of U)$0.remove(u.id)},provider:{id:"openai",async models(I,u){if(u.auth?.type!=="oauth")return I.models;let d=await R0(U0(X0())),y=!d||V$(d),$0=y?null:await i3();if(!y&&$0&&!tG)tG=!0,aG.debug("restoring OAuth model costs from models.dev catalog");if(!y&&!$0&&!eG)eG=!0,aG.warn("models.dev catalog unavailable; OAuth model costs could not be restored");return Object.fromEntries(Object.entries(I.models).filter(([,M0])=>M0.options.reasoningMode!=="pro"&&xB(M0.api.id)).map(([M0,a0])=>[M0,{...a0,cost:y?{input:0,output:0,cache:{read:0,write:0}}:$0?.[a0.api.id]??$0?.[M0]??a0.cost,limit:vB(a0.id)??a0.limit}]))}},auth:{provider:"openai",async loader(I){await j.authority(),x0=I,r??=b3({version:v6,logger:H0("heartbeat")}),await r,t?.start();let u=await I();if(u.type!=="oauth")return h.resolve(),{};let d=o4(u).kind==="tombstone";x.start();let y=Y.directory?await A$(Y.directory):void 0,$0=y?.dir??X0();async function M0(Z,N={}){if(await j.authority()!=="local")return;return nB(Z,{...N,canWrite:()=>!j.enrolled()})}let a0=await j.authority()!=="local";if(!d&&!a0)await L$({type:"oauth",access:u.access??"",refresh:u.refresh??"",expires:u.expires??0},U0(X0()));let w0=await R0(U0(X0())).catch(async(Z)=>{if(await j.authority()!=="local")return null;let N=X0();throw Error(`OpenAI auth store at ${N} is corrupt or unreadable: ${Z instanceof Error?Z.message:String(Z)}. Fix or remove it to continue.`,{cause:Z})});if(!a0&&await y8(U0(X0()),u)){if(t)t.noticePlaceholderWithoutMain();else if(!F)F=!0,H0("pool-migration").warn(_9,{reason:"placeholder-without-main"})}let t0=w0,f9=eX({path:X0,stat:(Z)=>{try{let N=SB(Z);return{mtimeMs:N.mtimeMs,size:N.size}}catch{return}},read:(Z)=>R0(U0(Z)),fallback:async(Z)=>{if(await j.authority()!=="local")return t0;throw Z},onRead:(Z)=>{t0=Z}});function q0(){return f9.read()}async function j6(){return $8(Promise.resolve(q0()),G8,()=>t0)}function Z9(){f9.invalidate()}if(w0&&u.access&&!d&&!a0){let Z=a6({id_token:"",access_token:u.access,refresh_token:u.refresh??""});if(Z&&Z!==w0.mainAccountId)await M0((N)=>{N.mainAccountId=Z}),w0.mainAccountId=Z,Z9()}let c8=w0?.logging?.level;if(c8&&typeof c8==="string")t1(c8);let m9=H0("transport"),X6=H0("quota"),I1=H0("refresh"),z6=H0("accounts"),c$=new _$;m9.info("codex auth loader ready",{codexApiEndpoint:X,transport:i0().rawWebSocket?"raw-websocket":i0().webSockets?"websocket":"http"});let J0=new Z$({storage:w0,configPath:X0(),fetchQuotaFn:void 0}),c9,u9=0;i?.dispose();let E0=new IY({paths:()=>U0(X0()),refreshProvider:async(Z)=>{let N=await C1({refreshToken:Z.refresh,fetchImpl:fetch,now:Date.now}),D=a6({id_token:"",access_token:N.access,refresh_token:N.refresh});return{...N,...D?{identity:D}:{}}},pullQuota:async(Z)=>{let N=Z.credential;if(N.type!=="oauth"||!N.access)throw Error("the row holds no access token to poll with");let D=await a9({accessToken:N.access,fetchImpl:fetch,now:Date.now,...Z.identity?{accountId:Z.identity}:{},accountKey:Z.id,logger:X6}),R=Date.now(),M={quota:D,refreshAfter:R+300000,checkedAt:R};if(Z.id==="main")J0.setMain(N.access,M,Z.identity,!0);else J0.setFallback(Z.id,M,N.access,!0,Z.identity);return E9(D,R,!0)},vaultIdentities:()=>j.identities(),vaultMode:()=>j.enrolled(),vaultAuthority:()=>j.authority(),vaultFirstRoster:C,vaultFirstRosterBackgroundWaitMs:g,log:H0("pool")});if(i=E0,!a0)await E0.load();let e0=new N$({paths:U0(X0()),refreshFn:async(Z)=>{if(await j.authority()!=="local")throw Error(Q9["vault-refused"]);return C1({refreshToken:Z.refreshToken,fetchImpl:Z.fetchImpl,now:Z.now})},quotaManager:J0,canWrite:()=>!j.enrolled(),onFallbackStorageChanged:Z9,backgroundRefreshPaused:async()=>j.enrolled()||await E0.active()});if(w0&&w0.accounts.length>0)e0.startBackgroundRefresh();function u8(Z){if(m0(Z))return;return Z.access||void 0}function b1(Z={}){let{readSidebarState:N,respectBackoff:D,skipFresherThanMs:R}=Z;return{getAuth:I,codexRefreshFn:C1,refreshMainWithLease:KJ,fallbackManager:e0,quotaManager:J0,loadAccounts:R0,writeSidebarState:(M)=>K6(M),client:Y.client,fetchImpl:fetch,now:Date.now,paths:U0(X0()),readSidebarState:N??(()=>R$(u0)),storageMainAccountId:w0?.mainAccountId,isOAuthAccountFn:o0,whamFn:a9,...D===void 0?{}:{respectBackoff:D},...R===void 0?{}:{skipFresherThanMs:R}}}async function t4(Z){return(await E0.pollRows(await R0(U0(X0())),Z?{ids:Z}:{})).map((D)=>({account:D.id,ok:D.ok,...D.error!==void 0?{error:D.error}:{}}))}async function e4(Z){return E0.accessFor(Z,await R0(U0(X0())))}let YJ=H0("cachekeep"),k1=e1(w0),JJ=k1?.enabled===!0,XJ=k1?.subagents===!0,QJ=k1?.sustain===!0,GJ=rX(w0?{...w0,cachekeep:k1}:w0),x1;async function u$(Z){await new Promise((N)=>setTimeout(N,Z))}async function p$(Z){let N;for(let D=1;D<=sG;D++){if(await j.authority()!=="local")throw Error(Q9["vault-refused"]);try{await Y.client.auth.set({path:{id:"openai"},body:{type:"oauth",refresh:Z.refresh,access:Z.access,expires:Z.expires}});return}catch(R){if(N=R,D<sG)await u$(cB*D)}}throw new a4(N)}async function v1(Z){await M0((N)=>{N.refresh=N.refresh??{},Z(N)},{holdsMainRefreshLock:!0}),Z9()}async function p8(Z){let N=Date.now()+mB;while(Date.now()<N){await new Promise((M)=>setTimeout(M,rG+oB(rG)));let D=await I();if(n0(D))throw new s6;if(D.type!=="oauth"||!D.access)continue;if((D.access!==Z.access||D.refresh!==Z.refresh||(D.expires??0)>(Z.expires??0)+60000)&&(!D.expires||D.expires>Date.now()))return I1.debug("joined concurrent main refresh",{pid:process.pid,expiresInMs:D.expires?D.expires-Date.now():void 0}),{access:D.access,refresh:D.refresh??Z.refresh??"",expires:D.expires??0}}return null}function $J(Z){if(n0(Z))throw new s6;if(Z.type!=="oauth")throw Error("not oauth");if(m0(Z))throw new U$;if(!Z.refresh)throw Error("Token refresh failed: missing refresh token");return Z.refresh}async function l8(){if(!x1)x1=(async()=>{let Z=await I(),N=$J(Z);if(Z.type!=="oauth")throw Error("not oauth");let D=z1(N),R=await R0(U0(X0())),M=R?.refresh?.mainLastRefreshError;if(M&&M6(M,N,Date.now()))throw Error(i4(M,Date.now()));if(R?.refresh?.mainRefreshLeaseUntil&&R.refresh.mainRefreshLeaseUntil>Date.now()&&R.refresh.mainRefreshLeaseTokenHash===D){let f=await p8(Z);if(f)return f;throw Error("Codex OAuth refresh is already in progress")}let b=await Y8({name:s9,ttlMs:gB,path:X0(),renew:!0});if(!b){let f=await p8(Z);if(f)return f;throw Error("Codex OAuth refresh is already in progress")}let T;try{let f=await I(),Y0=$J(f);if(f.type!=="oauth")throw Error("not oauth");if(Y0!==N){if(f.access&&(f.expires??0)>Date.now())return I1.debug("main token rotated while awaiting the lock",{pid:process.pid}),await b.release().catch(()=>{}),{access:f.access,refresh:Y0,expires:f.expires??0};let v0=(await R0(U0(X0())))?.refresh?.mainLastRefreshError;if(v0&&M6(v0,Y0,Date.now()))throw Error(i4(v0,Date.now()))}T={...f,refresh:Y0}}catch(f){throw await b.release().catch(()=>{}),f}await M$(U0(X0()),T.refresh,T.access!==void 0?{slotAccess:T.access}:{}).catch(()=>!1);let w=z1(T.refresh),m=crypto.randomUUID(),a=w;try{await v1((W0)=>{if(q$(X0(),T.refresh))throw new n4;W0.refresh=W0.refresh??{},W0.refresh.mainRefreshLeaseId=m,W0.refresh.mainRefreshLeaseUntil=Date.now()+fB,W0.refresh.mainRefreshLeaseTokenHash=w});let f=await R0(U0(X0()));if(f?.refresh?.mainRefreshLeaseId!==m||f.refresh.mainRefreshLeaseTokenHash!==w)throw Error("Codex OAuth refresh is already in progress");if(await j.authority()!=="local")throw Error(Q9["vault-refused"]);let Y0=await C1({refreshToken:T.refresh,fetchImpl:fetch,now:Date.now});return await p$(Y0),await v1((W0)=>{if(W0.refresh=W0.refresh??{},W0.refresh.mainLastRefreshError=void 0,W0.refresh.mainRefreshLeaseId===m)W0.refresh.mainRefreshLeaseId=void 0,W0.refresh.mainRefreshLeaseUntil=void 0,W0.refresh.mainRefreshLeaseTokenHash=void 0}).catch(()=>{}),a=void 0,Y0}catch(f){if(!(f instanceof n4)){if(!l4(f))await v1((Y0)=>{Y0.refresh=Y0.refresh??{},Y0.refresh.mainLastRefreshError=z$({error:f,now:Date.now(),refreshToken:T.refresh,previous:Y0.refresh.mainLastRefreshError})}).catch(()=>{});throw f}}finally{if(a)await v1((f)=>{if(f.refresh?.mainRefreshLeaseId===m&&f.refresh.mainRefreshLeaseTokenHash===a)f.refresh.mainRefreshLeaseId=void 0,f.refresh.mainRefreshLeaseUntil=void 0,f.refresh.mainRefreshLeaseTokenHash=void 0}).catch(()=>{});await b.release().catch(()=>{})}let c=await p8(T);if(c)return c;throw Error("Codex OAuth refresh is already in progress")})().finally(()=>{x1=void 0});return x1}function WJ(Z){return wJ({storage:Z,now:Date.now,refreshAccount:(N,D)=>e0.refreshAccount(N,D,{asPoolMain:!0}),warn:(N,D)=>I1.warn(N,{pid:process.pid,...D})})}async function zJ(){let Z=await WJ(await R0(U0(X0())));if(!Z)throw Error("The main OpenAI account has no usable token in the account pool");return{access:Z.token,refresh:Z.account.refresh,expires:Z.account.expires??0}}async function KJ(){try{return await l8()}catch(Z){if(Z instanceof s6)return zJ();throw Z}}let UJ=globalThis,d8=UJ.__openaiAuthCacheKeepManagers??new Map;UJ.__openaiAuthCacheKeepManagers=d8,d8.get($0)?.stop();let p9=tX({fetchImpl:fetch,vault:j,getMainToken:async()=>{if(await j.authority()!=="local")throw Error("local accounts are not warmed while this host is connected to the vault");if(await E0.active()){let N=await e4("main");if(!N)throw Error("main pool row has no usable token");return N.token}let Z=await I();if(await j.authority()!=="local")throw Error("local accounts are not warmed while this host is connected to the vault");if(n0(Z))return(await zJ()).access;if(Z.type!=="oauth")throw Error("not oauth");if(!Z.access||(Z.expires??0)<Date.now())try{return(await KJ()).access}catch(N){if(l4(N))throw N;if(Z.access)return Z.access;throw Error("main token refresh failed")}return Z.access},refreshFallback:async(Z)=>{if(await j.authority()!=="local")throw Error("local accounts are not warmed while this host is connected to the vault");if(await E0.active()){let T=await e4(Z);if(!T)throw Error(`no access token for ${Z}`);return{token:T.token}}let N=await j6(),D=N?aB(N.accounts,Z):void 0;if(!D)throw Error(`fallback account ${Z} not found`);let R=N??{version:1,accounts:[D]},M=m0(D)?D:await e0.refreshAccount(D,R),b=u8(M);if(!b)throw Error(`no access token for ${Z}`);return{token:b}},codexResponsesUrl:X,activeAccount:async(Z)=>aX(U9(await i6.read(),q),Z),logger:YJ,now:Date.now,getWindow:()=>GJ,getSustain:()=>QJ});d8.set($0,p9),O.set($0,p9);function V9(Z,N,D,R,M=!1){try{l$(Z,N,D,R,M)}catch(b){X6.warn("quota push failed",{pid:process.pid,accountId:D??"main",error:h9(b)})}}function l$(Z,N,D,R,M){if(Object.keys(Z).length===0&&!M)return;let b=Date.now(),T=Z,w={quota:T,refreshAfter:b+300000,checkedAt:b},m;if(D&&D!=="main"){let c=N?Y6(N):null,f=c?J6(c):void 0,Y0=J0.peekFallbackForPolicy(D)?.quota,W0=X$(T,Y0);w={...w,quota:W0},J0.setFallback(D,w,N,M,f)}else{if(m=R,!m&&N){let Y0=Y6(N);m=Y0?J6(Y0):void 0}if(m&&c9&&m!==c9){X6.debug("stale main quota frame dropped",{pid:process.pid,frameAccountId:m,currentMainIdentity:c9});return}let c=J0.peekMainForPolicy(m)?.quota,f=X$(T,c);w={...w,quota:f},J0.setMain(N,w,m,M)}X6.debug("quota pushed",{pid:process.pid,accountId:D??"main",snapshot:w.quota}),E0.recordSnapshot(D&&D!=="main"?D:"main",Z,N,M);let a=Boolean(D&&D!=="main");F6.enqueue("machine-state","quota",()=>K6(J0,a?void 0:m))}function d$(Z,N,D){let R=A6(j.routes().find((M)=>M.id===Z)?.quota)??(Z==="main"?J0.peekMainForPolicy()?.quota:J0.peekFallbackForPolicy(Z)?.quota);return H$(R,N,Date.now(),uB,D)}let h1=new Map,l9=new Map;function HJ(){if(!j.enrolled())return;F6.enqueue("machine-state","quota",()=>K6(J0))}let B9=J.experimentalWebSockets?b6.createWebSocketFetch({httpFetch:fetch,rawWebSocket:i0().rawWebSocket,onQuota:(Z,N,D,R)=>{let M=D?h1.get(D):void 0;if(M){j.recordSnapshot(M.id,Z,!0,M.receipt).then(HJ);return}V9(Z,N,D,!D||D==="main"?R:void 0,!0)},onRateLimitReached:(Z,N,D)=>{if(!N)X6.warn("mid-stream rate-limit mark missing internal account id; defaulting to main",{pid:process.pid,window:Z});let R=N?h1.get(N):void 0,M=R?.id??N??"main",b=d$(M,Z,D);if(J0.markRateLimited(M,b),R)l9.set(M,Math.max(l9.get(M)??0,b));else E0.markRateLimited(M,b);X6.debug("mid-stream rate limit mark",{pid:process.pid,accountId:M,window:Z})}}):void 0;if(B9)U.push(B9),W=!0;let u0=T$();P=u0;async function K6(Z,N){let D=q0(),R=D instanceof Promise?await D.catch(()=>t0):D,M=N??R?.mainAccountId;if(j.enrolled()){await g8(T3(j.snapshot()?.rows??[],new Set(j.routes().map((T)=>T.id)),R,Date.now()),u0,{canWrite:()=>j.enrolled()});return}let b=await E0.current();if(b.active){await g8(R3(b.rows,R,Date.now(),(T)=>(T==="main"?Z.getMain():Z.getFallback(T))?.quota?.resetCreditsAvailable),u0,{canWrite:()=>!j.enrolled()});return}if(!R)return;await g8(m$(Z,R,Date.now(),M),u0,{canWrite:()=>!j.enrolled()})}let i6=h$(u0);i6.read(),S?.stop();let F6=g$({logger:m9,onWritten:()=>i6.refreshInBackground()});if(S=F6,E!==u0)q.clear(),E=u0;function i8(Z,N,D,R,M,b,T=!1){let w={canWrite:()=>j.enrolled()===T},m={activeId:D,route:R,updatedAt:Date.now()};if(!Z){F6.enqueue("routing:legacy","routing",()=>I$(m,u0,w));return}if(F6.enqueue(`routing:${Z}`,"routing",()=>f8({sessionId:Z,...m},M,u0,w)),!N||N===Z)return;if(R==="sticky-balanced"){let a=b.stickyAssignments?.[L6(N)]?.accountId,c=M===void 0||a==="main"||M.some((f)=>f.enabled!==!1&&f.id===a);if(!a||!c)return;F6.enqueue(`routing:${N}`,"routing",()=>f8({sessionId:N,activeId:a,route:R,updatedAt:Date.now()},M,u0,w));return}F6.enqueue(`routing:${N}`,"routing",()=>f8({sessionId:N,...m},M,u0,w))}V?.stopBackgroundRefresh(),V=e0;let d9=U0(X0());if(H=f$={accountStoragePath:d9.configPath,accountStatePath:d9.statePath,packageVersion:v6,quotaManager:J0,loadAccounts:R0,beginAccountLogin:i1,store:()=>O9(d9),migration:async()=>{if(await c1(d9,O9(d9))!==void 0)return{migrated:!0};let Z=await(B0.fence??(()=>q9({currentVersion:v6})))();return{migrated:!1,blockers:Z.open?[]:Z.blockers.map((N)=>({pid:N.pid,version:N.version}))}},afterWrite:()=>E0.load(),vault:j,resolveResetTarget:dB({getAuth:I,refreshMainWithLease:l8,refreshFallbackAccount:(Z,N)=>e0.refreshAccount(Z,N),refreshPoolMainRow:(Z,N)=>e0.refreshAccount(Z,N,{asPoolMain:!0}),poolAccess:async(Z)=>E0.rowAccess(Z,await R0(U0(X0()))),loadAccounts:R0,accountStoragePath:X0(),accountStatePath:P$(X0()),now:Date.now}),...iB(),cacheKeepManager:p9,setCacheKeepEnabled:(Z)=>{JJ=Z},setCacheKeepSubagents:(Z)=>{XJ=Z},setCacheKeepSustain:(Z)=>{QJ=Z},setCacheKeepWindow:(Z)=>{GJ=Z},clearStickyRouting:async(Z)=>{let N=L6(Z),D=q.delete(N);return F6.cancel(`pin:${N}`),await v$(Z,u0)||D},getStickyRouting:async(Z)=>S$(U9(await i6.read(),q),Z),refreshSidebar:async()=>{Z9(),await K6(J0)},refreshAllQuota:async()=>{if(await j.authority(),j.enrolled()){let Z=await j.pollStale(0);return await K6(J0),Z.map((N)=>({account:N.id,ok:N.ok,...N.error!==void 0?{error:N.error}:{}}))}if(await E0.active()){let[Z,N]=await Promise.all([t4(),j.pollStale(0)]);return await K6(J0),[...Z,...N.map((D)=>({account:D.id,ok:D.ok,...D.error!==void 0?{error:D.error}:{}}))]}return C9(b1())},refreshResetTargetQuota:async(Z)=>{if(await j.authority(),j.enrolled())return{account:Z,ok:!1,error:"local accounts are not polled while this host is connected to the vault"};if(await E0.active()){let[D]=await t4([Z]);return D??{account:Z,ok:!1,error:"targeted quota refresh returned no result"}}return(await C9(b1({respectBackoff:!1}),{accountKey:Z})).find((D)=>D.account===Z)??{account:Z,ok:!1,error:"targeted quota refresh returned no result"}}},y){let Z=y;try{let N=await W$(t3,Z.dir,()=>e3({dir:Z.dir,secureDir:Z.secureDir,sweepRoot:Z.sweepRoot,drain:kX,apply:async(D)=>{let R=$$(D);if(!R)throw Error("not an /openai apply request");return mX(H,R)}}));L.set(Z.dir,N)}catch{}}async function L9(Z,N,D,R,M="main",b){if(!D.trim())throw m9.warn("refusing to send a request with no access token",{account:M,accountId:R}),Error(hB);if(!b&&await j.authority()!=="local")return Response.json({error:{message:Q9["vault-refused"]}},{status:400});let T=Q$(Z,N);if(T.delete("x-api-key"),T.delete("api-key"),T.set("authorization",`Bearer ${D}`),R)T.set("ChatGPT-Account-Id",R);T.set(b6.QUOTA_ACCOUNT_HEADER,M);let w=G$(T),m=w?sB(G,w,$):void 0,a=Z instanceof URL?Z:new URL(typeof Z==="string"?Z:Z.url),c=a.pathname.includes("/v1/responses")||a.pathname.includes("/chat/completions")?new URL(X):a,Y0=TX({rewriteLite:JL,applyEffort:YL,init:{...N,headers:T},headers:T,metadata:m,installationID:Q,websocket:Boolean(B9&&a.pathname.endsWith("/responses")),responsesLite:J.responsesLite??!1,dumpSessionID:w}).init,W0=JJ,v0=new Headers(Y0?.headers),e=oX({enabled:W0,includeSubagents:XJ,headers:v0,body:Y0?.body});if(W0)YJ.trace("cachekeep headers",{pid:process.pid,hasParent:v0.has("x-parent-session-id"),sessionKey:e?.sessionKey,captured:Boolean(e),affinity:v0.get("x-session-affinity"),opencodeSession:v0.get("x-opencode-session"),sessionId:v0.get("session-id")});if(B9&&a.pathname.endsWith("/responses")){if(m9.debug("WS transport",{pid:process.pid,pathname:a.pathname,accountId:M}),e)p9.track({sessionKey:e.sessionKey,bodyText:e.bodyText,accountId:M,isSubagent:e.isSubagent,meta:{replayHeaders:e.replayHeaders,chatgptAccountId:R,routingSessionId:w}});if(!b)try{return await X9(await B9(c,Y0),D,"event-stream")}catch(A0){throw y6(A0,D)}let z0=`vault-stream:${wB()}`;h1.set(z0,{id:M,receipt:b});let U6=new Headers(Y0?.headers);U6.set(b6.QUOTA_ACCOUNT_HEADER,z0);let f0=()=>h1.delete(z0);try{let A0=await B9(c,{...Y0,headers:U6});if(!A0.body)return f0(),A0;let D6=A0.body.getReader();return await X9(new Response(new ReadableStream({async pull(O6){try{let _6=await D6.read();if(_6.done)f0(),O6.close();else O6.enqueue(_6.value)}catch(_6){f0(),O6.error(y6(_6,D))}},cancel(O6){return f0(),D6.cancel(O6)}}),{status:A0.status,statusText:A0.statusText,headers:A0.headers}),D,"event-stream")}catch(A0){throw f0(),y6(A0,D)}}let N0=b6.withoutInternalHeaders(Y0);if(typeof N0?.body!=="string")try{return await X9(await fetch(c,N0),D,"event-stream")}catch(z0){throw y6(z0,D)}if(e)p9.track({sessionKey:e.sessionKey,bodyText:e.bodyText,accountId:M,isSubagent:e.isSubagent,meta:{replayHeaders:e.replayHeaders,chatgptAccountId:R,routingSessionId:w}});m9.debug("HTTP transport",{pid:process.pid,pathname:a.pathname,accountId:M});try{let z0=await fetch(c,N0);return await A9({sessionID:w,transport:"http",phase:"http",bodyText:N0.body,accountId:M,url:c.toString(),method:N0.method,headers:N0.headers,status:z0.status}),await X9(z0,D,"event-stream")}catch(z0){throw await A9({sessionID:w,transport:"http",phase:"http",bodyText:N0.body,accountId:M,url:c.toString(),method:N0.method,headers:N0.headers,error:z0 instanceof Error?z0.message:String(z0)}),y6(z0,D)}}function i9(Z,N){if((N?.method??(Z instanceof Request?Z.method:"GET")).toUpperCase()!=="POST")return!1;if(typeof N?.body!=="string")return!1;try{let R=Z instanceof URL?Z.toString():typeof Z==="string"?Z:Z.url;return new URL(R).pathname.endsWith("/responses")}catch{return!1}}function i$(Z){return J0.peekMainForPolicy(Z)?.quota}function ZJ(Z,N){for(let D of[Z?.primary?.checkedAt,Z?.secondary?.checkedAt,Z?.checkedAt,N])if(typeof D==="number"&&Number.isFinite(D))return D;return}function n9(Z,N,D,R,M){let b=ZJ(Z,N),T=ZJ(D),w=R===M&&D!=null&&(Z===void 0||T!==void 0&&(b===void 0||T>b));return{quota:w?D:Z,quotaCheckedAt:w?T:b,source:w?"file":"memory"}}function VJ(Z,N,D,R,M){let b=Z?.quota,T=n9(b,Z?.checkedAt,N,R,M),w=T.source,m=T.quota;if(!w$(m,D))return{exhausted:!1};let a=C$(m,D);if(!a)return{exhausted:!1};return{exhausted:!0,source:w,...a}}function BJ(Z,N){X6.debug("admission skip: exhausted account",{accountId:Z,source:N.source,resetsAt:N.resetsAt})}function LJ(Z,N="killswitch",D,R){let M=Date.now(),b=R?R.main:J0.getMain()?.quota,T=R?R.fallbacks:(Z?.accounts??[]).filter((f)=>f.enabled!==!1&&o0(f)).map((f)=>({accountId:f.id,quota:J0.getFallback(f.id)?.quota})),w=B$(b,T,M,Z);if(N==="quota-unknown")w=O$;else if(N==="quota-exhausted"&&D!==void 0)w=Math.max(1,Math.ceil((D-M)/1000));else if(N==="mid-stream-rate-limit"&&D!==void 0){let f=Math.max(1,Math.ceil((D-M)/1000));w=Math.min(w,f)}let m=Math.floor(w/60),a=w%60,c=N==="mid-stream-rate-limit"?`OpenAI rate limit reached — retrying on another account. Retry in ${m}m ${a}s.`:N==="quota-exhausted"?`OpenAI quota exhausted — retrying on another account. Retry in ${m}m ${a}s.`:N==="quota-unknown"?`OpenAI quota is not known yet for any available account; checking it now. Retry in ${m}m ${a}s.`:`Killswitch: all OpenAI accounts are below their configured quota threshold. Retry in ${m}m ${a}s.`;return new Response(JSON.stringify({error:{message:c,type:"rate_limit_exceeded",code:"rate_limit_exceeded"}}),{status:429,headers:{"content-type":"application/json","retry-after":String(w)}})}function n8(Z){let N=Z?.resetCreditsAvailable;return typeof N==="number"&&Number.isFinite(N)?N:void 0}async function n$(Z){let N=S1(Z.storage),D=Date.now(),R=J0.peekMainForPolicy(Z.mainAccountIdentity),M=n9(R?.quota,R?.checkedAt,Z.sidebarState.main.quota,Z.sidebarState.main.mainAccountId,Z.mainAccountIdentity),b=N?H9(R?.quota,Z.storage,void 0,D):void 0,T=Z.mainUnavailable?[]:[{accountId:"main",wireAccountId:Z.mainAccountIdentity,access:Z.primaryAccess,keepwarmAccountKey:"main",quota:M.quota,quotaCheckedAt:M.quotaCheckedAt,reservePercent:K1(Z.storage),configuredOrder:0,resetCreditsApplicable:n8(M.quota),killswitchPasses:b}],w=await e0.getUsableFallbackAccounts(Z.storage);if(!Z.storage)return T;for(let m of w){let a=u8(m);if(!a)continue;let c=Z.sidebarState.fallbacks.find((v0)=>v0.id===m.id),f=J0.peekFallbackForPolicy(m.id,m.accountId),Y0=n9(f?.quota,f?.checkedAt,c?.quota,c?.accountId,m.accountId),W0=N?H9(f?.quota,Z.storage,m.id,D):void 0;T.push({accountId:m.id,wireAccountId:m.accountId,access:a,keepwarmAccountKey:m.id,fallback:m,quota:Y0.quota,quotaCheckedAt:Y0.quotaCheckedAt,reservePercent:K1(Z.storage,m.id),configuredOrder:T.length,resetCreditsApplicable:n8(Y0.quota),killswitchPasses:W0})}return T}function NJ(Z,N,D,R,M){let b=S1(M)?Z.killswitchPasses:void 0;if(Z.accountId==="main"){let a=J0.peekMainForPolicy(Z.wireAccountId),c=n9(a?.quota,a?.checkedAt,N.main.quota,N.main.mainAccountId,Z.wireAccountId);return uY({quota:c.quota,quotaCheckedAt:c.quotaCheckedAt,status:D,now:R,killswitchPasses:b})}let T=N.fallbacks.find((a)=>a.id===Z.accountId),w=J0.peekFallbackForPolicy(Z.accountId,Z.wireAccountId),m=n9(w?.quota,w?.checkedAt,T?.quota,T?.accountId,Z.wireAccountId);return uY({quota:m.quota,quotaCheckedAt:m.quotaCheckedAt,status:D,now:R,killswitchPasses:b})}function o$(Z){return Z.accountId==="main"?"main":Z.keepwarmAccountKey}function jJ(Z){return J0.isRateLimited(o$(Z))}function o8(Z){let N=Z.candidates.filter((b)=>!jJ(b)),D=new Map(N.map((b)=>[b.accountId,b])),R=new Set(Z.excludeAccountIds),M=FJ({sessionId:Z.sessionId,requestBytes:Z.requestBytes,sidebarSnapshot:Z.sidebarSnapshot,now:Z.now,validPinnedAccountIds:[...D.keys()],excludeAccountIds:Z.excludeAccountIds??[],quotaCheckedAtByAccount:Object.fromEntries(N.map((b)=>[b.accountId,b.quotaCheckedAt])),wireAccountIdByAccount:Object.fromEntries(N.map((b)=>[b.accountId,b.wireAccountId])),select:(b)=>{let T=N.filter((w)=>!R.has(w.accountId));if(T.length===0)return;return u3({candidates:T,pendingBytes:b,requestBytes:Z.requestBytes,now:Z.now,onEmptyWeightedSet:()=>{z6.debug("sticky routing: no fresh weighted candidates; using configured order")}})},persist:!0});return M?D.get(M.accountId):void 0}function FJ(Z){let N=void 0,D=Z.validPinnedAccountIds,R=k$(U9(Z.sidebarSnapshot,q),{sessionId:Z.sessionId,requestBytes:Z.requestBytes,now:Z.now,validPinnedAccountIds:D,excludeAccountIds:Z.excludeAccountIds,quotaCheckedAtByAccount:Z.quotaCheckedAtByAccount,wireAccountIdByAccount:Z.wireAccountIdByAccount,choose:(b)=>{let T=Z.select(b);if(!T)return;return N={accountId:T.accountId,source:T.source,pendingBytes:b.get(T.accountId)??0},T}}),M=R.assignment;if(!Z.persist)return M;if(N&&M?.accountId===N.accountId)z6.debug("sticky routing: placed session pin",{pid:process.pid,sessionHash:L6(Z.sessionId),accountId:N.accountId,source:N.source,requestBytes:Z.requestBytes,pendingBytes:N.pendingBytes});if(M&&R.next!==void 0){let b=L6(Z.sessionId),T=y$(q,b,M);F6.enqueue(`pin:${b}`,"sticky-pin",async()=>{await x$({sessionId:Z.sessionId,assignment:M,validPinnedAccountIds:D},u0),T.persistedAt=Date.now()})}return M}async function r$(Z,N){let D=await e0.getUsableFallbackAccounts(Z),R=[];if(!Z)return{current:[],retained:[],skipped:[]};for(let c of D){let f=u8(c);if(!f)continue;R.push({access:f,accountId:c.accountId,keepwarmAccountKey:c.id,quotaAccountId:c.id,fallback:c})}let M=R.filter((c)=>!J0.isRateLimited(c.quotaAccountId)),b=S1(Z)?M.filter((c)=>H9(J0.peekFallbackForPolicy(c.quotaAccountId,c.accountId)?.quota,Z,c.quotaAccountId,Date.now())):M,T=new Map(N.fallbacks.map((c)=>[c.id,{quota:c.quota,accountId:c.accountId}])),w=[],m=[],a=Date.now();for(let c of b){let f=T.get(c.quotaAccountId),Y0=VJ(J0.peekFallbackForPolicy(c.quotaAccountId,c.accountId),f?.quota,a,f?.accountId,c.accountId);if(Y0.exhausted)m.push({candidate:c,decision:Y0});else w.push(c)}return{current:b,retained:w,skipped:m}}function DJ(Z,N){if(Z.retained.length===0&&!N)return Z.current;for(let{candidate:D,decision:R}of Z.skipped)BJ(D.quotaAccountId,R);return Z.retained}function OJ(Z,N){try{let D=J9(Z.headers);V9(D,N.access,N.quotaAccountId,void 0,g9(Z.headers))}catch{}}async function s$(Z,N,D,R){for(let M of R){let b;try{b=await L9(Z,N,M.access,M.accountId,M.keepwarmAccountKey)}catch(T){if((T instanceof Error||T instanceof DOMException)&&T.name==="AbortError")throw T;if(N?.signal?.aborted)throw T;throw z6.debug("fallback-first transport failed; request not replayed",{pid:process.pid,accountId:M.quotaAccountId}),T}if(!w1(b.status,D))return e0.markUsed(M.fallback),{response:b,accessToken:M.access,quotaAccountId:M.quotaAccountId,activeId:M.keepwarmAccountKey};OJ(b,M),b.body?.cancel().catch(()=>{})}return}async function a$(Z,N,D,R,M){if(!i9(Z,N))return{response:D};if(!M.length)return{response:D};let b=D,T;for(let w of M){let m;try{m=await L9(Z,N,w.access,w.accountId,w.keepwarmAccountKey)}catch(a){if((a instanceof Error||a instanceof DOMException)&&a.name==="AbortError")throw a;if(N?.signal?.aborted)throw a;return z6.debug("reactive fallback candidate threw; stopping",{pid:process.pid,accountId:w.quotaAccountId}),{response:b,...T}}if(b.body?.cancel().catch(()=>{}),b=m,T={accessToken:w.access,accountId:w.quotaAccountId},!w1(m.status,R))return e0.markUsed(w.fallback),{response:m,...T};OJ(m,w)}return{response:b,...T}}if(w0){let Z=[];for(let N of w0.accounts)if(o0(N))Z.push(N);J0.seedFallbacksFromAccounts(Z)}if(!r4)if(r4=!0,K6(J0).catch(()=>{}),C.then(()=>j.enrolled()?K6(J0):void 0).catch(()=>{}),!j.enrolled()&&!await E0.active())m8=C9(b1({respectBackoff:!0})).catch((Z)=>X6.warn("boot quota seed failed",{pid:process.pid,error:h9(Z)}));else m8=Promise.resolve();v.start(async()=>{if(await j.authority(),j.enrolled()){await K6(J0);return}if(await E0.active()){let D=await dX(E0,await R0(U0(X0())),()=>_Y(X0()));if(D.length>0)await K6(J0);let R=D.filter((M)=>!M.ok);if(R.length>0)X6.warn("background pool quota poll completed with failures",{pid:process.pid,failures:R});return}let N=(await pX(b1({readSidebarState:async()=>(await i6.read()).state}))).filter((D)=>!D.ok);if(N.length>0)X6.warn("background quota refresh completed with failures",{pid:process.pid,failures:N})},(Z)=>{X6.warn("background quota refresh failed",{pid:process.pid,error:Z instanceof Error?Z.message:String(Z)})});async function r8(Z,N,D,R,M,b){let T=D?.routing?.mode??"main-first",w=j.enrolled(),m=w?void 0:E0.peek().rows.find((e)=>e.id==="main"),a=!m&&!w?await I():void 0,c=!m&&a?.type==="oauth"&&m0(a),f=!m&&!w&&await y8(U0(X0()),a);if(b===u9)c9=m?.identity;let Y0=await i6.get(),{response:W0,servedId:v0}=await E3({source:E0,...w?{vault:{routes:()=>j.routes(),awaitRoster:async()=>{await W1(j.awaitRequestRoster(),wY)},noRouteCause:()=>D$(j),send:(e,N0)=>j.send(e,N0,{site:"model",...N?.signal?{signal:N.signal}:{}}),requestReading:(e)=>j.requestReading(e),rateLimitMarks:()=>{for(let[e,N0]of l9)if(N0<=Date.now())l9.delete(e);return l9}}}:{},storage:D,mode:T,sessionId:R,body:typeof N?.body==="string"?N.body:void 0,replayable:i9(Z,N),now:Date.now,send:(e,N0,z0)=>L9(Z,N,N0,e.identity,e.id,z0),recordQuota:(e,N0,z0,U6)=>{try{let f0=J9(e.headers),A0=g9(e.headers);if(!N0.row){if(U6)j.recordSnapshot(N0.id,f0,A0,U6).then(HJ);return}V9(f0,z0,N0.id==="main"?void 0:N0.id,N0.id==="main"?N0.identity:void 0,A0)}catch{}},placePin:(e)=>FJ({...e,sidebarSnapshot:Y0}),blocked:(e,N0,z0)=>{if(e.reason==="no-credential"){if(f&&!yY(z0))throw Error(_9);return new Response(yY(z0)?F$(z0,j.name):Q9[c?"missing-main":z0??"unusable"],{status:401,headers:{"content-type":"text/plain; charset=utf-8"}})}return LJ(D,e.reason,e.resetAtMs,N0)},resetCredits:(e)=>n8(e==="main"?J0.peekMainForPolicy(m?.identity)?.quota:J0.peekFallbackForPolicy(e)?.quota),isAbort:(e)=>(e instanceof Error||e instanceof DOMException)&&e.name==="AbortError"||Boolean(N?.signal?.aborted),creditsServing:c$,log:z6});return i8(R,M,v0,T,w?j.routes().map((e)=>({id:e.id})):D?.accounts,U9(Y0,q),w),W0}return K=!0,{apiKey:yB,async fetch(Z,N){let D=await j.authority(),R=Q$(Z,N),M=G$(R),b=R.get("x-parent-session-id")?.trim()||void 0,T=await j6();if(D!=="local")return N=await d4(Z,N),r8(Z,N,T,M,b,++u9);let w=await I();if(await j.authority()!=="local")return N=await d4(Z,N),r8(Z,N,T,M,b,++u9);let m=++u9;if(w.type!=="oauth")return R.delete(X1),fetch(Z,{...N,headers:R});N=await d4(Z,N);let a=(await E0.current()).active;if(n0(w)&&a)return r8(Z,N,T,M,b,m);if(a)j.assertHostSlot(w);let c="",f=!1,Y0,W0=n0(w);if(t?.migrated()&&!W0&&w.refresh?.trim()&&o4(w).kind==="real")t.noticeRealSlot(w.refresh);let v0=async(j0=T)=>{if(W0=!0,Y0=await WJ(j0),Y0)c=Y0.token;else c="",f=!0,z6.warn("main account in the pool has no usable token",{pid:process.pid})};if(W0)await v0();else if(m0(w))f=!0;else{if(!w.access||(w.expires??0)<Date.now()){I1.debug("token refresh triggered",{pid:process.pid,hasAccess:Boolean(w.access),expiresInMs:w.expires?w.expires-Date.now():void 0});try{let j0=await l8();w.access=j0.access,w.refresh=j0.refresh,w.expires=j0.expires}catch(j0){if(l4(j0))throw j0;if(j0 instanceof s6)await v0(await R0(U0(X0())))}}if(!W0)c=w.access??""}let e=W0?WY(T):T,N0=w,z0=Y0?.account.accountId??(W0?void 0:N0.accountId)??(c?J6(Y6(c)??{}):void 0);if(m===u9)c9=z0;let U6=T?.routing?.mode??"main-first",f0=await i6.get(),A0=f0.state;if(U6==="sticky-balanced"&&M&&i9(Z,N)&&typeof N?.body==="string"){let j0=Buffer.byteLength(N.body,"utf8"),b0=await n$({storage:e,sidebarState:A0,primaryAccess:c,mainAccountIdentity:z0,mainUnavailable:f}),S0=o8({sessionId:M,requestBytes:j0,candidates:b0,sidebarSnapshot:f0,now:Date.now()});if(S0){let AJ=jJ(S0)?{action:"migrate",reason:"exhausted"}:NJ(S0,A0,void 0,Date.now(),T);if(AJ.action==="migrate"){let d0=o8({sessionId:M,requestBytes:j0,candidates:b0,sidebarSnapshot:f0,excludeAccountIds:[S0.accountId],now:Date.now()});if(d0)z6.debug("sticky routing: migrated session pin",{pid:process.pid,sessionHash:L6(M),fromAccountId:S0.accountId,toAccountId:d0.accountId,reason:AJ.reason}),S0=d0}let H6=await L9(Z,N,S0.access,S0.wireAccountId,S0.keepwarmAccountKey),TJ=(d0,n6)=>{try{let t$=J9(d0.headers);V9(t$,n6.access,n6.accountId==="main"?void 0:n6.accountId,n6.accountId==="main"?n6.wireAccountId:void 0,g9(d0.headers))}catch{}};TJ(H6,S0);let RJ=NJ(S0,A0,H6.status,Date.now(),T);if((H6.status===401||H6.status===403||H6.status===429)&&RJ.action==="migrate"){let d0=o8({sessionId:M,requestBytes:j0,candidates:b0,sidebarSnapshot:f0,excludeAccountIds:[S0.accountId],now:Date.now()});if(d0){z6.debug("sticky routing: migrated session pin",{pid:process.pid,sessionHash:L6(M),fromAccountId:S0.accountId,toAccountId:d0.accountId,reason:RJ.reason});let n6=H6;H6=await L9(Z,N,d0.access,d0.wireAccountId,d0.keepwarmAccountKey),n6.body?.cancel().catch(()=>{}),S0=d0,TJ(H6,S0)}}if(S0.fallback&&!w1(H6.status,T))e0.markUsed(S0.fallback);return i8(M,b,S0.accountId,U6,T?.accounts,U9(f0,q)),H6}}let D6=VJ(J0.peekMainForPolicy(z0),A0.main.quota,Date.now(),A0.main.mainAccountId,z0),O6=S1(T)&&!H9(i$(z0),T,void 0,Date.now()),_6=J0.isRateLimited("main"),_J,s8=()=>{return _J??=r$(e,A0),_J},P6,N9,PJ=!1,y1;if(U6==="fallback-first"&&i9(Z,N)){PJ=!0;let j0=await s8();y1=DJ(j0,!O6&&!_6&&!D6.exhausted);let b0=await s$(Z,N,T,y1);if(b0)P6=b0.response,N9={accessToken:b0.accessToken,accountId:b0.quotaAccountId,activeId:b0.activeId}}if(!P6){let j0=D6.exhausted&&i9(Z,N)&&(await s8()).retained.length>0;if(O6||_6||j0){let b0=O6?"killswitch":_6?"mid-stream-rate-limit":"quota-exhausted";if(b0==="quota-exhausted"&&D6.exhausted)BJ("main",D6);z6.debug("admission blocked primary",{pid:process.pid,activeId:"main",reason:b0}),P6=LJ(T,b0,b0==="quota-exhausted"&&D6.exhausted?D6.resetAtMs:_6?J0.rateLimitedUntil("main"):void 0)}else P6=f?new Response(null,{status:401}):await L9(Z,N,c,z0,"main")}let a8=Boolean(N9),o9=P6,qJ=N9?.accessToken??c,MJ=N9?.accountId,EJ=N9?.activeId??"main";if(!N9&&!PJ&&w1(P6.status,T)){z6.debug("reactive fallback triggered",{pid:process.pid,status:P6.status}),y1??=DJ(await s8(),!1);let j0=await a$(Z,N,P6,T,y1),b0=j0.response;if(b0!==P6){if(a8=!0,o9=b0,qJ=j0.accessToken??c,MJ=j0.accountId,j0.accountId)EJ=j0.accountId}}if(W0&&f&&!a8&&await y8(U0(X0()),await I()))throw Error(_9);try{let j0=J9(o9.headers);if(a8)V9(j0,qJ,MJ,void 0,g9(o9.headers));else V9(j0,c,void 0,z0,g9(o9.headers))}catch{}return i8(M,b,EJ,U6,T?.accounts,U9(f0,q)),o9}}},methods:P0},"chat.headers":async(I,u)=>{if(I.model.providerID!=="openai")return;if(u.headers.originator="opencode",u.headers["User-Agent"]=`${K$(v6)} (${u4.platform()} ${u4.release()}; ${u4.arch()})`,u.headers["session-id"]=I.sessionID,K)u.headers[X1]=I.agent;if(W&&I.agent==="title")u.headers[b6.TITLE_HEADER]="true"},"chat.params":async(I,u)=>{if(I.model.providerID!=="openai")return;u.maxOutputTokens=void 0},config:async(I)=>{H0("commands").info("registering commands",{existing:Object.keys(I.command??{}).length,pid:process.pid}),I.command={...I.command??{},[k6]:{template:k6,description:"OpenAI accounts: quota, routing, limits, cache keep-warm, diagnostics and reset credits."}}},"command.execute.before":async(I)=>{if(H0("commands").info("command hook entered",{command:I.command,hasCmdCtx:H!==null,pid:process.pid}),I.command!==k6)return;if(!H)H0("commands").warn("command rejected: context not loaded",{command:I.command,pid:process.pid}),await l(I.sessionID,"OpenAI auth plugin is still initializing. Send a request first, then try again."),Y$();let u=await fX(H,I.sessionID);if(xX(I.sessionID))s1(u,I.sessionID);else await l(I.sessionID,cX(u.menu));Y$()}}}var QL=async(Y)=>{let J=i0();return XL(Y,{codexApiEndpoint:J.codexApiEndpoint,experimentalWebSockets:J.webSockets,responsesLite:J.responsesLite})},Sq={id:"cortexkit-openai-auth",server:QL};
|
|
65
|
-
export{GY as d,X0 as e,i0 as f,$Y as g,_9 as h,q9 as i,v6 as j,A9 as k,E6 as l,EX as m,r1 as n,AX as o,Q1 as p,TX as q,Zz as r,RX as s,Vz as t,s1 as u,kX as v,xX as w,fX as x,mX as y,Oj as z,rX as A,tX as B,wY as C,SY as D,W1 as E,IY as F,H3 as G,rz as H,T3 as I,R3 as J,b3 as K,h3 as L,t3 as M,e3 as N,R1 as O,bG as P,bB as Q,kB as R,xB as S,vB as T,hB as U,Aq as V,gB as W,fB as X,Tq as Y,Rq as Z,a4 as _,g0 as $,lB as aa,dB as ba,iB as ca,Cq as da,rB as ea,aB as fa,X$ as ga,m$ as ha,wq as ia,G$ as ja,tB as ka,JL as la,XL as ma,QL as na,Sq as oa};
|