@linzumi/cli 1.0.288 → 1.0.289
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/cloud-supervisor.mjs +12 -12
- package/dist/hosted-coding-account-worker.js +3 -3
- package/dist/index.js +313 -313
- package/dist/remote-codex-harness-worker.js +1 -1
- package/package.json +1 -1
|
@@ -12,7 +12,7 @@ GFS4: `),console.error(e)});Cr[Qr]||(P_=global[Qr]||[],j_(Cr,P_),Cr.close=(funct
|
|
|
12
12
|
`),t=>{let r=dx.exec(t.trim());if(r==null)return;let n=r.slice(1);if(n.length!==2)return;let i=n[0];if(i===void 0)return;let a=n[1];if(a===void 0)return;let o=kn(i),s=kn(a);if(o!==void 0&&s!==void 0)return{pid:o,pgid:s}})}function ux(e){let t=Ac("ps",["-axo","pid=,pgid="],5e3,16e6);if(t.TAG==="Ok")return lx(t._0).filter(r=>r.pgid===e).map(r=>r.pid)}function yl(e,t,r,n){let i;if(n.size>0){let o=ux(e);if(o!==void 0){let s=o.filter(d=>n.has(d));if(s.length!==0){let d=[],l=new Set(o.filter(c=>!n.has(c)));l.add(e),Array.from(l).forEach(c=>{let f=r(c|0,t);if(f.TAG==="Ok")return;let _=f._0;if(!de(_.code,"ESRCH")){d.push({pid:c,code:_.code,message:_.message});return}}),i={sparedPids:s,failures:d,groupSignalError:void 0}}else i=void 0}else i=void 0}else i=void 0;if(i!==void 0)return i;let a=r(-e|0,t);return a.TAG==="Ok"?{sparedPids:[],failures:[],groupSignalError:void 0}:{sparedPids:[],failures:[],groupSignalError:a._0}}var Xg={contents:(e,t)=>{}};var lf="SIGKILL",ha={children:new Set,handlersInstalled:!1,removeHandlers:void 0};function Os(e,t,r,n,i){let a=e.pid;Xg.contents("process.reap_failed",Object.fromEntries([["purpose",e.kind],["pid",a!==void 0?a:null],["ownProcessGroup",e.ownProcessGroup],["reason",t],["stage",r],["code",n!==void 0?n:null],["message",i]]))}function cx(e,t,r,n){let i;try{e.stop(),i={TAG:"Ok",_0:void 0}}catch(d){i={TAG:"Error",_0:_e(d)}}if(i.TAG!=="Ok"){let d=ke(i._0);Os(e,n,"stop",d.code,d.message)}let a=e.pid;if(a===void 0)return;if(e.ownProcessGroup){let d=yl(a,lf,t,r);d.sparedPids.length!==0&&Xg.contents("process.reap_spared_listeners",Object.fromEntries([["purpose",e.kind],["pid",a],["reason",n],["sparedPids",d.sparedPids.map(_=>_)]])),d.failures.forEach(_=>Os(e,n,"member_kill:"+_.pid.toString(),_.code,_.message));let l=d.groupSignalError;if(l===void 0||de(l.code,"ESRCH"))return;Os(e,n,"group_kill",l.code,l.message);let c=t(a,lf);if(c.TAG==="Ok")return;let f=c._0;return de(f.code,"ESRCH")?void 0:Os(e,n,"pid_kill",f.code,f.message)}let o=t(a,lf);if(o.TAG==="Ok")return;let s=o._0;if(!de(s.code,"ESRCH"))return Os(e,n,"pid_kill",s.code,s.message)}function uf(e,t,r){let n=e!==void 0?e:Hd,i=t!==void 0?t:new Set,a=r!==void 0?r:"exit",o=Array.from(ha.children);return ha.children.clear(),o.forEach(s=>cx(s,n,i,a)),o.length}function Yg(e,t){let r;return r=typeof t=="string"?t:JSON.stringify(t),"linzumi commander "+e+": "+r+`
|
|
13
13
|
`}function fx(){if(ha.handlersInstalled)return;ha.handlersInstalled=!0;let e=a=>{uf(void 0,void 0,"process_exit")};process.on("exit",e);let t=process.listenerCount("uncaughtException")===0,r=process.listenerCount("unhandledRejection")===0,n=a=>{uf(void 0,void 0,"uncaught_exception"),sn(Yg("uncaughtException",a)),process.exit(1)},i=a=>{uf(void 0,void 0,"unhandled_rejection"),sn(Yg("unhandledRejection",a)),process.exit(1)};t&&process.on("uncaughtException",n),r&&process.on("unhandledRejection",i),ha.removeHandlers=()=>{if(process.off("exit",e),t&&process.off("uncaughtException",n),r){process.off("unhandledRejection",i);return}}}function ey(e){return ha.children.add(e),fx(),{unregister:()=>{ha.children.delete(e)}}}import*as ty from"node:net";function cf(e,t){try{return e.kill(t)}catch{return!1}}function ry(){return new Promise((e,t)=>{let r=ty.createServer();r.on("error",n=>e({TAG:"Error",_0:n.message})),r.listen(0,"127.0.0.1",()=>{let n=r.address();if(n==null)return r.close(a=>{}),e({TAG:"Error",_0:"failed to allocate loopback port"});let i=n.port;r.close(a=>a==null?e({TAG:"Ok",_0:i}):e({TAG:"Error",_0:a.message}))})})}function Pt(e,t){delete e[t]}var Sl=((e,t)=>{for(var r in e)t(e[r],r)});var _x="LINZUMI_CODEX_STREAM_IDLE_TIMEOUT_MS";function hx(e){if(e===void 0)return"Unset";let t=e.trim();if(t==="")return"Unset";let r=t.split("").every(i=>{switch(i){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return!0;default:return!1}}),n=kn(t);return r&&n!==void 0&&isFinite(n)&&Math.trunc(n)===n&&n>=5e3&&n<=6e5?{TAG:"Applied",_0:n}:{TAG:"Invalid",_0:e}}function ny(e){let t=hx(e[_x]);if(!(typeof t!="object"||t.TAG==="Invalid"))return t._0}var yx="file",Sx=["mcp_oauth_credentials_store","cli_auth_credentials_store"],bx=Sx.flatMap(e=>["-c",e+'="'+yx+'"']),Ax=["-c","features.apps=false"],Tx=["-c","features.default_mode_request_user_input=true"];function ln(e){return JSON.stringify(e)}function vx(e,t){let r=(n,i)=>n!==void 0?Object.entries(n).flatMap(a=>["-c","model_providers."+e.id+"."+i+"."+a[0]+"="+ln(a[1])]):[];return[["-c","model_providers."+e.id+".name="+ln(e.name),"-c","model_providers."+e.id+".base_url="+ln(e.baseUrl),"-c","model_providers."+e.id+".env_key="+ln(e.envKey),"-c","model_providers."+e.id+".wire_api="+ln(e.wireApi)],r(e.httpHeaders,"http_headers"),r(e.envHttpHeaders,"env_http_headers"),t!==void 0?["-c","model_providers."+e.id+".stream_idle_timeout_ms="+t.toString()]:[],["-c","model_provider="+ln(e.id)]].flat()}var iy=["-c","model_providers.openai-linzumi.name="+ln("OpenAI"),"-c","model_providers.openai-linzumi.wire_api="+ln("responses"),"-c","model_providers.openai-linzumi.requires_openai_auth=true","-c","model_providers.openai-linzumi.supports_websockets=true"];function kx(e){return iy.concat(["-c","model_providers.openai-linzumi.stream_idle_timeout_ms="+e.toString(),"-c","model_provider="+ln("openai-linzumi")])}function Ox(e,t){let r=ny(t),n=e.nativeQuestionBridge,i;i=n==="Durable"?Tx:[];let a=e.model,o=e.reasoningEffort,s=e.modelProvider;return[Ax,i,bx,a!==void 0?["-c","model="+ln(a)]:[],o!==void 0?["-c","model_reasoning_effort="+ln(o)]:[],e.fast?["-c","service_tier="+ln("fast")]:[],e.mcpConfigArgs.flat(),s!==void 0?vx(s,r):r!==void 0?kx(r):iy].flat()}function ay(e,t){return[["app-server"],Ox(t,process.env),["--listen",e]].flat()}var wx=["LINZUMI_MCP_ACCESS_TOKEN","LINZUMI_MCP_OWNER_USERNAME"];function bl(e,t,r){let n=r?Object.fromEntries(Object.entries(e)):{};return wx.forEach(i=>Pt(n,i)),t.forEach(i=>{let a=i[1],o=i[0];if(a!==void 0){n[o]=a;return}else return Pt(n,o)}),n}var oy=["ignore","pipe","pipe"];function sy(e){let t=e.length;return t>12e3?e.slice(t-12e3|0,t):e}function dy(e,t,r){return r<3&&e.includes("codex app-server exited before readyz")&&t.includes("EADDRINUSE")?t.includes("listen"):!1}function ly(e){let t=mn(e);if(t===void 0)return;let r=Ge(t),i=r.protocol==="wss:"?"https:":"http:";return r.protocol=i,r.pathname="/readyz",r.search="",r.hash="",r.toString()}var Cx="kandan-local-codex-runner",xx="0.0.1";function uy(){return Object.fromEntries([["clientInfo",Object.fromEntries([["name",Cx],["version",xx]])],["capabilities",Object.fromEntries([["experimentalApi",!0]])]])}var Ex=new RegExp("\\bsession\\b.+\\bis archived\\b","i");function cy(e){return Ex.test(e)}var Gx=new RegExp("^thread not found(?:\\s*:|\\b)","i");function fy(e){return Gx.test(e.trim())}var my=2e3;function Ix(e){let t=Object.fromEntries([["command",e.command],["args",e.args.map(n=>n)],["pollIntervalMs",e.pollIntervalMs]]),r=e.protectedPidsDir;return r!==void 0&&r!==""&&(t.protectedPidsDir=r),JSON.stringify(t)}var Px=["const { spawn, spawnSync } = require('node:child_process');","const fs = require('node:fs');","const config = JSON.parse(process.argv[process.argv.length - 1]);","const originalParentPid = process.ppid;","const child = spawn(config.command, config.args, { stdio: 'inherit' });","let done = false;","// Dev-server exemption (keep in sync with devServerReapExemption.ts","// readProtectedPidsFromDir - the freshness bound is textually substituted","// from protectedListenerFreshnessMs at program build): union of every FRESH","// mirror file's pids. Any failure is reported and returns an empty set,","// restoring the classic whole-group kill.","function reportProtectedMirrorReadFailure(stage, path, error) {"," const message = error && error.message ? error.message : String(error);"," process.stderr.write('protected listener mirror read failed: stage=' + stage + ' path=' + path + ' message=' + message + String.fromCharCode(10));","}","function protectedPids() {"," const out = new Set();"," const dir = config.protectedPidsDir;"," if (typeof dir !== 'string' || dir === '') return out;"," let names;"," try { names = fs.readdirSync(dir); } catch (error) {"," if (!error || error.code !== 'ENOENT') reportProtectedMirrorReadFailure('read_directory', dir, error);"," return out;"," }"," const now = Date.now();"," for (const name of names) {"," if (!name.endsWith('.json')) continue;"," const path = dir + '/' + name;"," try {"," const parsed = JSON.parse(fs.readFileSync(path, 'utf8'));"," if (!parsed || typeof parsed.updatedAtMs !== 'number' || !Array.isArray(parsed.pids)) {"," reportProtectedMirrorReadFailure('shape', path, new Error('mirror requires numeric updatedAtMs and pids array'));"," continue;"," }"," if (now - parsed.updatedAtMs > 300000) continue;"," for (const pid of parsed.pids) {"," if (Number.isInteger(pid) && pid > 1) out.add(pid);"," }"," } catch (error) { reportProtectedMirrorReadFailure('read_or_parse', path, error); }"," }"," return out;","}","// Group kill that spares protected listener pids: enumerate this group's","// members (the wrapper leads its own group) and signal each one except the","// spared listeners and the wrapper itself (the wrapper exits via its own","// child-exit/parent-death paths). Any enumeration failure, or no protected","// member in the group, falls back to the atomic kill(-pgid).","function groupKillExcept(signal) {"," const spare = protectedPids();"," if (spare.size > 0) {"," try {"," const result = spawnSync('ps', ['-axo', 'pid=,pgid='], { encoding: 'utf8', timeout: 5000, killSignal: 'SIGKILL' });"," if (result.error === undefined && result.status === 0) {"," const members = [];"," let sparedAny = false;"," for (const line of result.stdout.split('\\n')) {"," const match = line.trim().match(/^(\\d+)\\s+(\\d+)$/);"," if (!match || Number(match[2]) !== process.pid) continue;"," const pid = Number(match[1]);"," if (pid === process.pid) continue;"," if (spare.has(pid)) { sparedAny = true; continue; }"," members.push(pid);"," }"," if (sparedAny) {"," for (const pid of members) { try { process.kill(pid, signal); } catch (_e) {} }"," return;"," }"," }"," } catch (_e) {}"," }"," process.kill(-process.pid, signal);","}","function shutdown(signal) {"," if (done) return;"," done = true;"," try { groupKillExcept(signal); }"," catch (_e) { try { child.kill(signal); } catch (_e2) {} }","}","process.on('SIGINT', () => shutdown('SIGINT'));","process.on('SIGTERM', () => shutdown('SIGTERM'));","process.on('SIGHUP', () => shutdown('SIGTERM'));","child.on('exit', (code, signal) => {"," clearInterval(watchdog);"," // The child is gone; the wrapper must follow it down rather than linger as an"," // orphan. On the forwarded-signal path (shutdown() above caught SIGINT/SIGTERM"," // /SIGHUP and propagated it to the child), the wrapper still has its own"," // handler installed for that signal, so a bare process.kill(self, signal)"," // would just re-enter shutdown() - a no-op once done is set - and the wrapper"," // would never exit. Remove the handlers first so the signal's DEFAULT"," // disposition (terminate) applies, re-raise to mirror the child's death"," // signal, then exit() as a belt-and-suspenders fallback in case re-raising"," // does not terminate (e.g. a signal with no default-terminate disposition)."," process.removeAllListeners('SIGINT');"," process.removeAllListeners('SIGTERM');"," process.removeAllListeners('SIGHUP');"," if (signal) { try { process.kill(process.pid, signal); } catch (_e) {} }"," process.exit(signal ? 1 : code == null ? 0 : code);","});","child.on('error', (err) => {"," process.stderr.write('engine watchdog spawn failed: ' + (err && err.message) + '\\n');"," process.exit(1);","});","const watchdog = setInterval(() => {"," // Inlined parentDeathWatchdogShouldReap (keep in sync): reap PURELY on a ppid"," // change from boot - covers reparent-to-subreaper AND reparent-to-init. NO"," // `=== 1` arm: a runner that is PID 1 captures originalParentPid === 1, so"," // such an arm would false-fire on the first poll and kill a healthy codex."," if (process.ppid !== originalParentPid) {"," try { child.kill('SIGKILL'); } catch (_e) {}"," try { groupKillExcept('SIGKILL'); } catch (_e) {}"," process.exit(0);"," }","}, config.pollIntervalMs);"];function py(e,t){return{command:e,args:["-e",Px.join(`
|
|
14
14
|
`),Ix(t)]}}async function jx(e){let t=await vs(e,{});if(t.TAG!=="Ok")return!1;let r=t._0.status;return r>=200?r<=299:!1}function hy(e,t){return{audit:e,env:t,protectedPids:()=>new Set(Array.from(Vg()).concat(Array.from(Qg(df(),Date.now(),r=>{let n=Object.fromEntries([["stage",Jg(r.stage)],["path",r.path],["message",r.message]]),i=r.code;i!==void 0&&(n.code=i),e("process.protected_listener_mirror_read_failed",n)})))),fetchOk:jx,now:()=>Date.now(),readyzTimeoutMs:1e4,readyzPollMs:50}}function Mx(e){return e}function ff(e,t,r,n,i,a){e.audit(t,Object.fromEntries([["command",r],["args",n.map(Mx)],["cwd",i]].concat(a.concat([["purpose","codex.app_server"]]))))}function mf(e,t){let r=t.pid;if(r==null){cf(t,"SIGINT");return}let n=yl(r,"SIGINT",Hd,e.protectedPids());n.sparedPids.length!==0&&e.audit("process.group_signal_spared_listeners",Object.fromEntries([["pid",r],["signal","SIGINT"],["sparedPids",n.sparedPids.map(l=>l)],["purpose","codex.app_server"]]));let i=n.groupSignalError;if(i===void 0)return;let a=i.code,o;if(a!==void 0)switch(a){case"EPERM":o="process.group_signal_denied";break;case"ESRCH":o="process.group_signal_missing";break;default:o="process.group_signal_failed"}else o="process.group_signal_failed";let s=i.code;e.audit(o,Object.fromEntries([["pid",r],["signal","SIGINT"],["code",s!==void 0?s:null],["message",i.message],["fallback","child_signal"],["purpose","codex.app_server"]])),i.code==="EPERM"&&sn("codex app-server process-group SIGINT denied for pid "+r.toString()+`; falling back to direct child SIGINT
|
|
15
|
-
`),cf(t,"SIGINT")}function Fx(e){return new Promise((t,r)=>{setTimeout(()=>t(),e)})}async function $x(e,t,r){let n=ly(t),i=n!==void 0?n:t,a=e.now()+e.readyzTimeoutMs,o;for(;hr(o);){let s=r();s!==void 0?o={TAG:"Error",_0:"codex app-server exited before readyz: "+s}:await e.fetchOk(i)?o={TAG:"Ok",_0:void 0}:e.now()>a?o={TAG:"Error",_0:"timed out waiting for codex app-server readyz"}:await Fx(e.readyzPollMs)}return I(o,{TAG:"Error",_0:"timed out waiting for codex app-server readyz"})}async function gy(e,t,r,n,i,a,o){let s=await ry();if(s.TAG!=="Ok")return{TAG:"Error",_0:s._0};let d="ws://127.0.0.1:"+s._0.toString(),l=ay(d,n),c={contents:""},f=py(process.execPath,{command:t,args:l,pollIntervalMs:my,protectedPidsDir:df()});ff(e,"process.spawn",t,l,r,[]);let _=_y.spawn(f.command,f.args,{cwd:r,env:bl(e.env,i,a),stdio:oy,detached:!0}),m={contents:void 0},h=[],p={contents:void 0},u=[],g=P=>{if(p.contents!==void 0)return;p.contents=P;let G=u.slice();u.splice(0,u.length),G.forEach(D=>D(P))},y=(P,C,G)=>{if(P!=null){P.on("data",D=>{let k=D.toString("utf8");G!==void 0&&G(k);let q=_.pid;e.audit("process.output",Object.fromEntries([["pid",q??null],["purpose","codex.app_server"],["stream",C],["chars",k.length],["output",k]]))});return}};y(_.stdout,"stdout",void 0),y(_.stderr,"stderr",P=>{c.contents=sy(c.contents+P)});let b=ey({stop:()=>mf(e,_),pid:Nr(_.pid),ownProcessGroup:!0,kind:"codex.app_server"});_.once("exit",(P,C)=>{let G=P==null?C??"unknown":P.toString();m.contents=G,b.unregister();let D=_.pid;ff(e,"process.exit",t,l,r,[["pid",D??null],["code",P??null],["signal",C??null]]);let k=h.slice();h.splice(0,h.length),k.forEach(q=>q()),g({TAG:"Ok",_0:{code:P,signal:C}})}),_.on("error",P=>{m.contents=P.message,b.unregister(),g({TAG:"Error",_0:P.message})});let S=_.pid;ff(e,"process.spawned",t,l,r,[["pid",S??null]]);let A=()=>mf(e,_),w=await $x(e,d,()=>m.contents);if(w.TAG==="Ok")return{TAG:"Ok",_0:{url:d,pid:Nr(_.pid),stop:A,onExit:P=>{if(m.contents!==void 0)return P();h.push(P)},onExitStatus:P=>{let C=p.contents;if(C!==void 0)return P(C);u.push(P)}}};let R=w._0;return mf(e,_),dy(R,c.contents,o)?(e.audit("process.spawn.retry",Object.fromEntries([["command",t],["cwd",r],["attempt",o],["reason","loopback_bind_in_use"],["purpose","codex.app_server"]])),await gy(e,t,r,n,i,a,o+1|0)):{TAG:"Error",_0:R}}function yy(e,t,r,n,i,a){return gy(e,t,r,n,i!==void 0?i:[],a!==void 0?a:!0,1)}function qx(e){return e==="Voice"?"voice":"text"}function Nx(e){switch(e){case"All":return"all";case"Coding":return"coding";case"OnboardingDiscovery":return"onboarding-discovery"}}function pf(e){return JSON.stringify(e)}function by(e){let t=[],r=e.argsPrefix;r!==void 0&&r.forEach(g=>{t.push(g)}),t.push("mcp"),t.push("server"),t.push("--api-url"),t.push(e.serviceUrl);let n=e.authFilePath;n!==void 0&&(t.push("--auth-file"),t.push(n));let i=e.delegationAuthFilePath;i!==void 0&&(t.push("--delegation-auth-file"),t.push(i));let a=e.ownerUsername;a!==void 0&&(t.push("--owner-username"),t.push(a));let o=e.cwd;o!==void 0&&(t.push("--cwd"),t.push(o));let s=e.threadId;s!==void 0&&(t.push("--thread-id"),t.push(s)),t.push("--mode");let d=e.operatingMode;t.push(d!==void 0?qx(d):"text");let l=e.toolScope;if(l!==void 0){let g=0;switch(l){case"All":break;case"Coding":case"OnboardingDiscovery":g=1;break}g===1&&(t.push("--tool-scope"),t.push(Nx(l)))}let c=e.agentSession;c!==void 0&&c&&t.push("--agent-session");let f=e.askUserQuestionTool;f!==void 0&&f&&t.push("--ask-user-question-tool");let _=e.multiAgentJobs;_!==void 0&&_&&t.push("--multi-agent-jobs");let m={},h=e.accessToken;h!==void 0&&(m.LINZUMI_MCP_ACCESS_TOKEN=h);let p=e.devServices;p!==void 0&&(m.LINZUMI_DEV_SERVICES_SCOPE=p.scope,m.LINZUMI_DEV_SERVICES_OWNER_PID=p.ownerPid.toString()),m.ELECTRON_RUN_AS_NODE="1";let u=e.command;return{name:"linzumi",command:u!==void 0?u:"linzumi",args:t,env:m}}function Dx(e){return"["+e.map(pf).join(", ")+"]"}function Ay(e,t){let r=["-c","mcp_servers."+e.name+".command="+pf(e.command),"-c","mcp_servers."+e.name+".args="+Dx(e.args)];return Object.entries(e.env).forEach(n=>{r.push("-c"),r.push("mcp_servers."+e.name+".env."+n[0]+"="+pf(n[1]))}),t&&(r.push("-c"),r.push("mcp_servers."+e.name+'.default_tools_approval_mode="approve"')),e.args.includes("--ask-user-question-tool")&&(r.push("-c"),r.push("mcp_servers."+e.name+".tool_timeout_sec=2147483")),r}function Lx(e){return["--require","-r","--import","--loader","--experimental-loader"].includes(e)}function Ux(e){return["--require=","-r=","--import=","--loader=","--experimental-loader="].some(t=>e.startsWith(t))}function _f(e,t){for(;;){let r=t,n=e[r];if(n===void 0)return[];if(Lx(n)){let i=e[r+1|0];if(i!==void 0)return[n,i].concat(_f(e,r+2|0));t=r+1|0;continue}if(Ux(n))return[n].concat(_f(e,r+1|0));t=r+1|0}}function Ty(e,t,r){let n=t!==void 0?t.trim():"";return n===""?{command:"linzumi",argsPrefix:[]}:n.endsWith(".ts")||n.endsWith(".js")?{command:e,argsPrefix:_f(r,0).concat([n])}:{command:n,argsPrefix:[]}}function zx(e){switch(e){case"SocketOpen":return"open";case"SocketMessage":return"message";case"SocketClose":return"close";case"SocketError":return"error"}}function Wx(e){let t=e.data,r;r=t==null||typeof t!="string"?void 0:t;let n=e.code,i;i=n==null||typeof n!="number"||(n|0)!==n?void 0:n|0;let a=e.reason,o;return o=a==null||typeof a!="string"?void 0:a,{data:r,code:i,reason:o}}function Hx(e){return{readyState:()=>e.readyState,send:t=>{e.send(t)},close:()=>{e.close()},on:(t,r)=>{e.addEventListener(zx(t),n=>r(Wx(n)),{})}}}function Tl(e,t){return Hx(new WebSocket(e,t))}var vy=0,ga=1;function Oy(e){try{let t=JSON.stringify(e);if(t===void 0)return{TAG:"Error",_0:"trusted Codex value did not serialize"};try{return{TAG:"Ok",_0:JSON.parse(t)}}catch(r){let n=_e(r);return{TAG:"Error",_0:ke(n).message}}}catch(t){let r=_e(t);return{TAG:"Error",_0:ke(r).message}}}function Xr(e){try{let t=JSON.stringify(e);if(t===void 0)return{TAG:"Error",_0:"authored Codex value did not serialize"};try{return{TAG:"Ok",_0:JSON.parse(t)}}catch(r){let n=_e(r);return{TAG:"Error",_0:ke(n).message}}}catch(t){let r=_e(t);return{TAG:"Error",_0:ke(r).message}}}function wy(e,t,r){return Xr(t!==void 0?r!==void 0?{id:t,method:e,params:r}:{id:t,method:e}:r!==void 0?{method:e,params:r}:{method:e})}function Kx(e){switch(e){case"account/gatewayOAuth/changed":case"account/login/completed":case"account/rateLimits/updated":case"account/updated":case"app/list/updated":case"command/exec/outputDelta":case"configWarning":case"deprecationNotice":case"error":case"externalAgentConfig/import/completed":case"externalAgentConfig/import/progress":case"fs/changed":case"fuzzyFileSearch/sessionCompleted":case"fuzzyFileSearch/sessionUpdated":case"guardianWarning":case"hook/completed":case"hook/started":case"item/agentMessage/delta":case"item/autoApprovalReview/completed":case"item/autoApprovalReview/started":case"item/commandExecution/outputDelta":case"item/commandExecution/terminalInteraction":case"item/completed":case"item/fileChange/outputDelta":case"item/fileChange/patchUpdated":case"item/mcpToolCall/progress":case"item/plan/delta":case"item/reasoning/summaryPartAdded":case"item/reasoning/summaryTextDelta":case"item/reasoning/textDelta":case"item/started":case"mcpServer/oauthLogin/completed":case"mcpServer/startupStatus/updated":case"model/rerouted":case"model/safetyBuffering/updated":case"model/verification":case"process/exited":case"process/outputDelta":case"rawResponse/completed":case"rawResponseItem/completed":case"remoteControl/status/changed":case"serverRequest/resolved":case"skills/changed":case"thread/archived":case"thread/attachment/updated":case"thread/closed":case"thread/compacted":case"thread/deleted":case"thread/goal/cleared":case"thread/goal/updated":case"thread/name/updated":case"thread/realtime/closed":case"thread/realtime/error":case"thread/realtime/itemAdded":case"thread/realtime/outputAudio/delta":case"thread/realtime/sdp":case"thread/realtime/started":case"thread/realtime/transcript/delta":case"thread/realtime/transcript/done":case"thread/settings/updated":case"thread/started":case"thread/status/changed":case"thread/tokenUsage/updated":case"thread/unarchived":case"turn/completed":case"turn/diff/updated":case"turn/moderationMetadata":case"turn/plan/updated":case"turn/started":case"warning":case"windows/worldWritableWarning":case"windowsSandbox/setupCompleted":return!0;default:return!1}}function Jx(e){switch(e){case"account/chatgptAuthTokens/refresh":case"applyPatchApproval":case"attestation/generate":case"execCommandApproval":case"item/commandExecution/requestApproval":case"item/fileChange/requestApproval":case"item/permissions/requestApproval":case"item/tool/call":case"item/tool/requestUserInput":case"mcpServer/elicitation/request":return!0;default:return!1}}function Cy(e,t){if(!Kx(e))return{TAG:"UnknownNotification",_0:{method:e,params:t}};let r=wy(e,void 0,t);if(r.TAG!=="Ok")return{TAG:"UnknownNotification",_0:{method:e,params:t}};let n=Oy(r._0);return n.TAG==="Ok"?{TAG:"KnownNotification",method:e,value:n._0,rawParams:t}:{TAG:"UnknownNotification",_0:{method:e,params:t}}}function xy(e,t,r){if(!Jx(t))return{TAG:"UnknownServerRequest",_0:{id:e,method:t,params:r}};let n=wy(t,e,r);if(n.TAG!=="Ok")return{TAG:"UnknownServerRequest",_0:{id:e,method:t,params:r}};let i=Oy(n._0);return i.TAG==="Ok"?{TAG:"KnownServerRequest",method:t,value:i._0}:{TAG:"UnknownServerRequest",_0:{id:e,method:t,params:r}}}function uo(e){try{let t=JSON.stringify(e);if(t===void 0)return null;try{return JSON.parse(t)}catch{return null}}catch{return null}}function vl(e){return e.TAG==="KnownNotification"?e.method:e._0.method}function Ey(e){return e.TAG==="KnownServerRequest"?e.method:e._0.method}function ws(e){return e.TAG==="KnownServerRequest"?e.value.id:e._0.id}function $i(e){let t=ws(e);if(t===null)return"null";if(Array.isArray(t))return"[object]";switch(typeof t){case"boolean":return t?"true":"false";case"string":return t;case"number":return t.toString();case"object":return"[object]"}}function yi(e,t){if(e===void 0||typeof e!="object"||e===null||Array.isArray(e))return;let r=e[t];if(typeof r=="string")return r}function Vx(e,t){return I(yi(e,"command"),I(yi(e,"cmd"),I(yi(e,"path"),I(yi(e,"filePath"),I(yi(e,"file"),I(yi(e,"reason"),I(yi(e,"summary"),t)))))))}var _n=uo;function Gy(e){if(e.TAG==="KnownServerRequest"){let t=e.value,r=e.method;switch(t.method){case"item/commandExecution/requestApproval":let n=t.params;return{requestId:$i(e),threadId:n.threadId,turnId:n.turnId,kind:r,summary:I(E(n.command,c=>{if(c!=null)return Re(c)}),I(E(n.reason,c=>{if(c!=null)return Re(c)}),r)),payload:uo(n)};case"item/fileChange/requestApproval":let i=t.params;return{requestId:$i(e),threadId:i.threadId,turnId:i.turnId,kind:r,summary:I(E(i.reason,c=>{if(c!=null)return Re(c)}),r),payload:uo(i)};case"item/permissions/requestApproval":let a=t.params;return{requestId:$i(e),threadId:a.threadId,turnId:a.turnId,kind:r,summary:I(Nr(a.reason),r),payload:uo(a)};case"applyPatchApproval":let o=t.params;return{requestId:$i(e),threadId:o.conversationId,turnId:void 0,kind:r,summary:I(Nr(o.reason),r),payload:uo(o)};case"execCommandApproval":let s=t.params,d=s.command.join(" ").trim(),l=d===""?I(Nr(s.reason),r):d;return{requestId:$i(e),threadId:s.conversationId,turnId:void 0,kind:r,summary:l,payload:uo(s)};default:return}}else{let t=e._0,r=t.method;if(!r.includes("requestApproval"))return;let n=t.params;return{requestId:$i(e),threadId:yi(n,"threadId"),turnId:yi(n,"turnId"),kind:r,summary:Vx(n,r),payload:I(n,null)}}}function Qx(e){try{e.unref();return}catch{return}}var Iy="codex app-server websocket closed",Zx="codex app-server websocket is not open";function Yx(e){let t=e.method;if(typeof t=="string")return t}function Xx(e){let t=e.error;if(t===void 0)return{TAG:"ResultReply",_0:I(e.result,null)};if(typeof t!="object"||t===null||Array.isArray(t))return{TAG:"ErrorReply",code:0,message:JSON.stringify(t)};let r=t.code,n=r!==void 0&&typeof r=="number"?r:0,i=t.message;return{TAG:"ErrorReply",code:n,message:typeof i=="string"?i:""}}function kl(e,t,r,n){let i=JSON.stringify(n);t(r,i);try{return e.socket.send(i),{TAG:"Ok",_0:void 0}}catch(a){let o=_e(a);return{TAG:"Error",_0:ke(o).message}}}function My(e,t,r){try{return t(r)}catch(n){let i=_e(n);return e("codex.notification_callback_failed",Object.fromEntries([["purpose","codex.app_server"],["method",vl(r)],["message",ke(i).message]]))}}function Py(e,t,r){try{return t(r)}catch(n){let i=_e(n);return e("codex.close_callback_failed",Object.fromEntries([["purpose","codex.app_server"],["message",ke(i).message]]))}}function eE(e,t){let r;if(t.TAG==="Ok")r=[["jsonrpc","2.0"],["id",e],["result",t._0]];else{let n=t._0;r=[["jsonrpc","2.0"],["id",e],["error",Object.fromEntries([["code",n[0]],["message",n[1]]])]]}return Object.fromEntries(r)}async function tE(e,t,r,n){let i={TAG:"Error",_0:[-32601,"unhandled Codex app-server request: "+Ey(n)]},a=e.requestCallbacks.slice(),o,s=0;for(;hr(o)&&s<a.length;){let l=a[s];if(l!==void 0){let c=0,f;try{f=await l(n),c=1}catch(_){let m=_e(_);o={TAG:"Error",_0:[-32e3,ke(m).message]}}c===1&&f!==void 0&&(o={TAG:"Ok",_0:f})}s=s+1|0}let d=I(o,i);kl(t,r,"outgoing",eE(ws(n),d))}function rE(e,t,r,n,i){let a;try{a=JSON.parse(i)}catch(_){let m=_e(_);r("codex.app_server_frame_malformed",Object.fromEntries([["purpose","codex.app_server"],["message",ke(m).message],["payload",i.slice(0,512)],["payloadChars",i.length]])),a=void 0}let o;if(a!==void 0){let _=0;typeof a=="object"&&a!==null&&!Array.isArray(a)?o=a:_=1,_===1&&(r("codex.app_server_frame_malformed",Object.fromEntries([["purpose","codex.app_server"],["message","codex app-server sent non-object JSON-RPC message"],["payload",i.slice(0,512)],["payloadChars",i.length]])),o=void 0)}else o=void 0;if(o===void 0)return;let s=zt(o.id),d=s&&(zt(o.result)||zt(o.error)),l=Yx(o);if(d){let _=I(o.id,null),m=JSON.stringify(_),h=e.pending[m];return h!==void 0?(Pt(e.pending,m),h.resolvePending({TAG:"Ok",_0:Xx(o)})):void 0}if(s)if(l!==void 0){tr(tE(e,t,n,xy(I(o.id,null),l,o.params)),_=>Promise.resolve());return}else return;if(l===void 0)return;let c=Cy(l,o.params);e.notificationCallbacks.length!==0?e.notificationCallbacks.forEach(_=>My(r,_,c)):e.pendingNotifications.push(c)}function nE(e,t,r){return Object.fromEntries(r!==void 0?[["jsonrpc","2.0"],["id",e],["method",t],["params",r]]:[["jsonrpc","2.0"],["id",e],["method",t]])}function Ry(e,t){return Object.fromEntries(t!==void 0?[["jsonrpc","2.0"],["method",e],["params",t]]:[["jsonrpc","2.0"],["method",e]])}function jy(e,t,r,n,i,a){return t.socket.readyState()===ga?new Promise((o,s)=>{e.pending[JSON.stringify(n)]={resolvePending:o};let d=kl(t,r,"request",nE(n,i,a));d.TAG!=="Ok"&&(Pt(e.pending,JSON.stringify(n)),o({TAG:"Error",_0:d._0}))}):Promise.resolve({TAG:"Error",_0:Zx})}async function Fy(e,t,r,n){let i=t!==void 0?t:c=>({socket:Tl(c,[]),ping:void 0}),a=r!==void 0?r:2e3,o=n!==void 0?n:()=>Date.now(),s=o()+a,d,l="websocket open failed";for(;hr(d);){let c;try{c={TAG:"Ok",_0:i(e)}}catch(f){let _=_e(f);c={TAG:"Error",_0:ke(_).message}}if(c.TAG==="Ok"){let f=c._0,_=s-o();if(_<=0){let m;try{f.socket.close(),m={TAG:"Ok",_0:void 0}}catch(h){let p=_e(h);m={TAG:"Error",_0:ke(p).message}}d=m.TAG==="Ok"?{TAG:"Error",_0:"websocket open timed out"}:{TAG:"Error",_0:"websocket timeout_close failed for "+e+": "+m._0}}else{let m={contents:void 0},h=await Promise.race([new Promise((p,u)=>{f.socket.on("SocketOpen",g=>p(!0)),f.socket.on("SocketError",g=>p(!1))}),new Promise((p,u)=>{let g=setTimeout(()=>p(void 0),_);g.unref(),m.contents=Re(g)})]).finally(()=>{let p=m.contents;if(p!==void 0){clearTimeout(Ge(p));return}});if(h!==void 0)if(h)d={TAG:"Ok",_0:f};else{let p;try{f.socket.close(),p={TAG:"Ok",_0:void 0}}catch(u){let g=_e(u);p={TAG:"Error",_0:ke(g).message}}p.TAG==="Ok"?o()>s&&(d={TAG:"Error",_0:l}):d={TAG:"Error",_0:"websocket handshake_close failed for "+e+": "+p._0}}else{let p;try{f.socket.close(),p={TAG:"Ok",_0:void 0}}catch(u){let g=_e(u);p={TAG:"Error",_0:ke(g).message}}d=p.TAG==="Ok"?{TAG:"Error",_0:"websocket open timed out"}:{TAG:"Error",_0:"websocket timeout_close failed for "+e+": "+p._0}}}}else l=c._0,o()>s&&(d={TAG:"Error",_0:l})}return I(d,{TAG:"Error",_0:l})}async function $y(e,t){let r={pending:{},notificationCallbacks:[],requestCallbacks:[],pendingNotifications:[],closeCallbacks:[],nextId:1,closeError:void 0},n=t.audit,i=t.onWire,a=setInterval(()=>{let l=e.ping;if(l!==void 0&&e.socket.readyState()===ga)try{return l()}catch{return}},t.keepaliveIntervalMs);Qx(a);let o=l=>{clearInterval(a);let c=Object.entries(r.pending);if(Object.entries(r.pending).forEach(m=>Pt(r.pending,m[0])),c.forEach(m=>m[1].resolvePending({TAG:"Error",_0:l})),r.closeError!==void 0)return;r.closeError=l;let _=r.closeCallbacks.slice();r.closeCallbacks.splice(0,r.closeCallbacks.length),_.forEach(m=>Py(n,m,l))};e.socket.on("SocketClose",l=>o(Iy)),e.socket.on("SocketError",l=>o(Iy)),e.socket.on("SocketMessage",l=>{let c=l.data;if(c!==void 0)return i("incoming",c),rE(r,e,n,i,c)});let s=await jy(r,e,i,"initialize","initialize",uy());if(s.TAG!=="Ok")return{TAG:"Error",_0:s._0};let d=s._0;return d.TAG!=="ResultReply"?{TAG:"Error",_0:"codex initialize failed: "+d.message}:(kl(e,i,"outgoing",Ry("initialized",void 0)),{TAG:"Ok",_0:{request:(l,c)=>{let f=r.nextId;return r.nextId=r.nextId+1|0,jy(r,e,i,f,l,c)},notify:(l,c)=>{kl(e,i,"outgoing",Ry(l,c))},onNotification:l=>{r.notificationCallbacks.push(l);let c=r.pendingNotifications.slice();r.pendingNotifications.splice(0,r.pendingNotifications.length),c.forEach(f=>My(n,l,f))},onRequest:l=>{r.requestCallbacks.push(l)},onClose:l=>{let c=r.closeError;if(c!==void 0)return Py(n,l,c);r.closeCallbacks.push(l)},isClosed:()=>zt(r.closeError),close:()=>{clearInterval(a);try{return e.socket.close()}catch{return}}}})}function hf(e,t){return{type:"text",text:e,text_elements:t}}function gf(e,t){return{type:"localImage",detail:e,path:t}}function yf(e,t,r){let n=r.sandboxedNeverDefault&&de(t,"workspace-write");if(e===void 0)return{TAG:"Ok",_0:n?"GatedNever":"GatedOnRequest"};switch(e){case"default":return{TAG:"Ok",_0:n?"GatedNever":"GatedOnRequest"};case"never":return{TAG:"Ok",_0:de(t,"danger-full-access")||n?"GatedNever":"GatedOnRequest"};case"on-failure":return{TAG:"Ok",_0:"GatedOnFailure"};case"on-request":return{TAG:"Ok",_0:"GatedOnRequest"};default:return console.warn("linzumi approval-policy clamp: unknown Codex approval policy "+e+"; clamping to most-restrictive approval (on-request)"),{TAG:"Ok",_0:"GatedOnRequest"}}}function Ny(e,t,r){let n=yf(e,t,r);if(n.TAG!=="Ok")return n;let i;switch(n._0){case"GatedNever":i="never";break;case"GatedOnRequest":i="on-request";break;case"GatedOnFailure":i="on-failure";break}return{TAG:"Ok",_0:i}}var Dy=Object.fromEntries([["granular",Object.fromEntries([["sandbox_approval",!1],["rules",!1],["skill_approval",!1],["request_permissions",!1],["mcp_elicitations",!0]])]]);function Sf(e,t,r){let n=yf(e,t,r);if(n.TAG!=="Ok")return n;let i;switch(n._0){case"GatedNever":i=t==="danger-full-access"?Dy:"never";break;case"GatedOnRequest":case"GatedOnFailure":i="on-request";break}return{TAG:"Ok",_0:i}}function bf(e,t,r){let n=yf(e,t,r);if(n.TAG!=="Ok")return n;let i;switch(n._0){case"GatedNever":i=t==="danger-full-access"?{granular:{sandbox_approval:!1,rules:!1,skill_approval:!1,request_permissions:!1,mcp_elicitations:!0}}:"never";break;case"GatedOnRequest":case"GatedOnFailure":i="on-request";break}return{TAG:"Ok",_0:i}}function Ly(e,t,r){let n=Sf(e,t,r);return n.TAG==="Ok"?n._0===Dy:!1}function Ol(e){if(e===void 0)return!1;switch(e){case"read-only":case"workspace-write":return!0;default:return!1}}function wl(e){if(e===void 0)return!1;switch(e){case"on-failure":case"on-request":case"untrusted":return!0;default:return!1}}function Uy(e,t){switch(e){case"danger-full-access":return{TAG:"Ok",_0:Object.fromEntries([["type","dangerFullAccess"]])};case"read-only":return{TAG:"Ok",_0:Object.fromEntries([["type","readOnly"],["access",Object.fromEntries([["type","fullAccess"]])],["networkAccess",!1]])};case"workspace-write":return{TAG:"Ok",_0:Object.fromEntries([["type","workspaceWrite"],["writableRoots",[t]],["readOnlyAccess",Object.fromEntries([["type","fullAccess"]])],["networkAccess",!1],["excludeTmpdirEnvVar",!1],["excludeSlashTmp",!1]])};default:return{TAG:"Error",_0:"unsupported Codex sandbox mode: "+e}}}var By="kandan-local-runner";function zy(e,t,r,n,i,a,o){let s=bf(n,i,a);if(s.TAG!=="Ok")return s;let d;if(i!==void 0)switch(i){case"danger-full-access":d={TAG:"Ok",_0:"danger-full-access"};break;case"read-only":d={TAG:"Ok",_0:"read-only"};break;case"workspace-write":d={TAG:"Ok",_0:"workspace-write"};break;default:d={TAG:"Error",_0:"unsupported Codex sandbox mode: "+i}}else d={TAG:"Ok",_0:void 0};if(d.TAG!=="Ok")return d;let l=ee(r,p=>({model_reasoning_effort:p})),c=o!==void 0&&o?"fast":void 0,f=ee(t,p=>p),_=Re(s._0),m=ee(d._0,p=>p);return{TAG:"Ok",_0:{threadId:e,model:f,serviceTier:c,approvalPolicy:_,sandbox:m,config:l}}}function Cl(){let e={contents:void 0},t=new Promise((n,i)=>{e.contents=n}),r=e.contents;return r!==void 0?{TAG:"Ok",_0:{promise:t,resolve:r}}:{TAG:"Error",_0:"commander_signal_resolver_not_installed"}}function oE(e){try{return{TAG:"Ok",_0:JSON.parse(JSON.stringify(e))}}catch(t){let r=_e(t);return{TAG:"Error",_0:ke(r).message}}}function Cs(e){try{let t=JSON.stringify(e);return t!==void 0?{TAG:"Ok",_0:JSON.parse(t)}:{TAG:"Error",_0:"official request parameters did not serialize"}}catch(t){let r=_e(t);return{TAG:"Error",_0:ke(r).message}}}function sE(e,t){return e.trim()===""?{TAG:"Error",_0:t+" must not be blank"}:{TAG:"Ok",_0:void 0}}async function Tf(e,t,r,n){let i=Cs(r);if(i.TAG!=="Ok")return{TAG:"Error",_0:"could not serialize "+t+" params: "+i._0};let a=await e.request(t,i._0);if(a.TAG!=="Ok")return{TAG:"Error",_0:a._0};let o=a._0;if(o.TAG!=="ResultReply")return{TAG:"Ok",_0:{TAG:"Failure",code:o.code,message:o.message}};let s=o._0;if(typeof s!="object"||s===null||Array.isArray(s))return{TAG:"Error",_0:"malformed "+t+" success result: expected an object"};let d=oE(s);if(d.TAG!=="Ok")return d;let l=d._0;try{let c=n(l);return c.TAG==="Ok"?{TAG:"Ok",_0:{TAG:"Success",_0:l}}:{TAG:"Error",_0:"malformed "+t+" success result: "+c._0}}catch(c){let f=_e(c);return{TAG:"Error",_0:"malformed "+t+" success result: "+ke(f).message}}}function xl(e,t){return Tf(e,"thread/start",t,r=>sE(r.thread.id,"thread.id"))}function Wy(e,t){return Tf(e,"thread/archive",t,r=>({TAG:"Ok",_0:void 0}))}function Hy(e,t){return Tf(e,"thread/compact/start",t,r=>({TAG:"Ok",_0:void 0}))}import*as wf from"node:path";function an(e){let t=e.length,r=0;for(let i=0;i<t;++i)r=r+e[i].length|0;let n=new Array(r);r=0;for(let i=0;i<t;++i){let a=e[i];for(let o=0,s=a.length;o<s;++o)n[r]=a[o],r=r+1|0}return n}function uE(e){return e==="Codex"?"codex":"claude-code"}function Ky(e){switch(e){case"AuthUnavailable":return"auth_unavailable";case"InvalidResponse":return"invalid_response";case"DiscoveryFailed":return"discovery_failed"}}function Jy(e,t,r){if(e.TAG!=="ReadyState")return!1;let n=e.catalog,i=r==="default"?n.defaultModel:r;return uE(e.provider)===t?n.models.some(a=>a.id===i):!1}function Vy(e){switch(e.TAG){case"Pending":return"pending";case"ReadyState":return"ready";case"EmptyState":return"empty";case"FailedState":return"failed"}}function xs(e){return e!==""?e.length<=255:!1}function fo(e,t){return I(e[t],null)}function cE(e){try{let t=JSON.stringify(e);if(t===void 0)return{TAG:"Error",_0:"model/list params were not JSON serializable"};try{return{TAG:"Ok",_0:JSON.parse(t)}}catch(r){let n=_e(r);return{TAG:"Error",_0:ke(n).message}}}catch(t){let r=_e(t);return{TAG:"Error",_0:ke(r).message}}}function fE(e,t,r,n){for(;;){let i=n,a=r,o=t,s=e[o];if(s===void 0)return{TAG:"Ok",_0:i.toReversed()};if(typeof s!="object"||s===null||Array.isArray(s))return{TAG:"Error",_0:"invalid_reasoning_effort"};let d=Ft(fo(s,"reasoningEffort"));if(d===void 0)return{TAG:"Error",_0:"invalid_reasoning_effort"};let l=d.trim(),c=xs(l),f=a.includes(l);if(!c)return{TAG:"Error",_0:"invalid_reasoning_effort"};if(f)return{TAG:"Error",_0:"invalid_reasoning_effort"};n=an([[l],i]),r=a.concat([l]),t=o+1|0}}function mE(e){if(typeof e!="object"||e===null||Array.isArray(e))return{TAG:"Error",_0:"model/list included invalid visible model metadata"};let t=Ft(fo(e,"model")),r=Ft(fo(e,"displayName")),n=e.hidden,i=In(fo(e,"supportedReasoningEfforts")),a=Ft(fo(e,"defaultReasoningEffort")),o=e.isDefault;if(t===void 0)return{TAG:"Error",_0:"model/list included invalid visible model metadata"};if(r===void 0)return{TAG:"Error",_0:"model/list included invalid visible model metadata"};if(n===void 0)return{TAG:"Error",_0:"model/list included invalid visible model metadata"};if(typeof n!="boolean")return{TAG:"Error",_0:"model/list included invalid visible model metadata"};if(n)return{TAG:"Error",_0:"model/list included invalid visible model metadata"};if(i===void 0)return{TAG:"Error",_0:"model/list included invalid visible model metadata"};if(a===void 0)return{TAG:"Error",_0:"model/list included invalid visible model metadata"};if(o===void 0)return{TAG:"Error",_0:"model/list included invalid visible model metadata"};if(typeof o!="boolean")return{TAG:"Error",_0:"model/list included invalid visible model metadata"};let s=t.trim(),d=r.trim(),l=a.trim(),c=xs(s),f=xs(d),_=xs(l);if(!c)return{TAG:"Error",_0:"model/list included invalid visible model metadata"};if(!f)return{TAG:"Error",_0:"model/list included invalid visible model metadata"};if(!_)return{TAG:"Error",_0:"model/list included invalid visible model metadata"};let m=fE(i,0,[],[]);if(m.TAG!=="Ok")return{TAG:"Error",_0:"model/list "+s+" included invalid reasoning effort metadata"};let h=m._0;return h.includes(l)?{TAG:"Ok",_0:{model:{id:s,displayName:d,reasoningEfforts:h,defaultReasoningEffort:l},isDefault:o}}:{TAG:"Error",_0:"model/list "+s+" included inconsistent reasoning effort metadata"}}function pE(e,t,r){for(;;){let n=r,i=t,a=e[i];if(a===void 0)return{TAG:"Ok",_0:n};let o=mE(a);if(o.TAG!=="Ok")return{TAG:"Error",_0:o._0};let s=o._0;if(n.modelIds.includes(s.model.id))return{TAG:"Error",_0:"model/list repeated model "+s.model.id};let d=n.models.concat([s.model]);if(d.length>100)return{TAG:"Error",_0:"model/list exceeded 100 visible models"};r={models:d,modelIds:n.modelIds.concat([s.model.id]),defaults:s.isDefault?n.defaults.concat([s.model.id]):n.defaults},t=i+1|0}}async function _E(e){let t=async(r,n,i,a)=>{let o=cE({cursor:be(r,null,b=>b),limit:100,includeHidden:!1});if(o.TAG!=="Ok")return{TAG:"Error",_0:{TAG:"DiscoveryError",_0:o._0}};let s=await e("model/list",o._0);if(s.TAG!=="Ok")return{TAG:"Error",_0:{TAG:"DiscoveryError",_0:s._0}};let d=s._0;if(typeof d!="object"||d===null||Array.isArray(d))return{TAG:"Error",_0:{TAG:"InvalidResponseError",_0:"model/list response was not an object"}};let l=In(fo(d,"data"));if(l===void 0)return{TAG:"Error",_0:{TAG:"InvalidResponseError",_0:"model/list response did not include data"}};let c=pE(l,0,a);if(c.TAG!=="Ok")return{TAG:"Error",_0:{TAG:"InvalidResponseError",_0:c._0}};let f=c._0,_=d.nextCursor;if(_===void 0)return{TAG:"Error",_0:{TAG:"InvalidResponseError",_0:"model/list included invalid pagination cursor"}};if(_===null){let b=f.models.length,S=f.defaults;return b===0?{TAG:"Ok",_0:"Empty"}:S.length!==1?{TAG:"Error",_0:{TAG:"InvalidResponseError",_0:"model/list did not advertise exactly one valid default model"}}:{TAG:"Ok",_0:{TAG:"Ready",_0:{defaultModel:S[0],models:f.models}}}}let m=Ft(_);if(m===void 0)return{TAG:"Error",_0:{TAG:"InvalidResponseError",_0:"model/list included invalid pagination cursor"}};let h=m.trim(),p=xs(h),u=i.includes(h),g=n===19;return p?u?{TAG:"Error",_0:{TAG:"InvalidResponseError",_0:"model/list repeated pagination cursor "+h}}:g?{TAG:"Error",_0:{TAG:"InvalidResponseError",_0:"model/list exceeded 20 pagination pages"}}:await t(h,n+1|0,i.concat([h]),f):{TAG:"Error",_0:{TAG:"InvalidResponseError",_0:"model/list included invalid pagination cursor"}}};return await t(void 0,0,[],{models:[],modelIds:[],defaults:[]})}function Qy(e,t){let r={contents:void 0},n=new Promise((i,a)=>{let o=setTimeout(()=>i({TAG:"Error",_0:{TAG:"DiscoveryError",_0:"Codex model discovery timed out"}}),t);o.unref(),r.contents=Re(o)});return Promise.race([_E(e),n]).finally(()=>{let i=r.contents;if(i!==void 0){clearTimeout(Ge(i));return}})}var El=["wafer","openai"];var Zy="api_key",Cf="oauth",mo="none";function hE(e,t){let r=ee(e.CODEX_HOME,n=>n.trim());return r!==void 0&&r!==""?r:wf.join(t,".codex")}function gE(e){if(typeof e!="object"||e===null||Array.isArray(e))return"MalformedOauthToken";let t=e.access_token;return t!==void 0?typeof t=="string"?t.trim()!==""?{TAG:"UsableOauthToken",_0:e}:"LoggedOutOauthToken":"MalformedOauthToken":"LoggedOutOauthToken"}function Yy(e,t,r,n){let i=ee(e.OPENAI_API_KEY,l=>l.trim());if((i!==void 0&&i!==""?i:void 0)!==void 0)return{hasValidOpenAiAuth:!0,authMode:Zy};let o=wf.join(hE(e,t),"auth.json"),s=r(o),d;if(s.TAG==="Ok"){let l=0,c;try{c=JSON.parse(s._0),l=1}catch{n({TAG:"MalformedAuthFile",_0:o}),d=void 0}l===1&&(d=c)}else{let l=s._0;l.code==="ENOENT"||n({TAG:"UnreadableAuthFile",path:o,error:l}),d=void 0}if(d===void 0)return{hasValidOpenAiAuth:!1,authMode:mo};if(typeof d=="object"&&d!==null&&!Array.isArray(d)){let l=d.OPENAI_API_KEY,c;switch(l!=null?typeof l=="string"?c=l.trim()!==""?"UsableAuthFileApiKey":"AbsentAuthFileApiKey":(n({TAG:"MalformedAuthFile",_0:o}),c="MalformedAuthFileApiKey"):c="AbsentAuthFileApiKey",c){case"UsableAuthFileApiKey":return{hasValidOpenAiAuth:!0,authMode:Zy};case"AbsentAuthFileApiKey":let f=ee(d.tokens,gE);return f===void 0?{hasValidOpenAiAuth:!1,authMode:mo}:typeof f=="object"?{hasValidOpenAiAuth:!0,authMode:Cf}:f==="LoggedOutOauthToken"?{hasValidOpenAiAuth:!1,authMode:mo}:(n({TAG:"MalformedAuthFile",_0:o}),{hasValidOpenAiAuth:!1,authMode:mo});case"MalformedAuthFileApiKey":return{hasValidOpenAiAuth:!1,authMode:mo}}}else return n({TAG:"MalformedAuthFile",_0:o}),{hasValidOpenAiAuth:!1,authMode:mo}}var $q=new RegExp("[\\x00-\\x1f\\x7f-\\x9f]");function eS(){return I("1.0.288","0.0.0-unbundled")}var xf=[["codex.agent_turn_narration_only_no_reply","harness.agent_turn_narration_only_no_reply"],["codex.cost_cap_402_seen","harness.cost_cap_402_seen"],["codex.edge_blocked_captured","harness.edge_blocked_captured"],["codex.empty_turn_auto_retry_suppressed_cost_cap","harness.empty_turn_auto_retry_suppressed_cost_cap"],["codex.empty_turn_loop_guard_tripped","harness.empty_turn_loop_guard_tripped"],["codex.error_without_http_status_captured","harness.error_without_http_status_captured"],["codex.mid_stream_stall_auto_resume_flagged","harness.mid_stream_stall_auto_resume_flagged"],["codex.mid_stream_stall_fresh_session_resume","harness.mid_stream_stall_fresh_session_resume"],["codex.mid_stream_stall_fresh_session_resume_failed","harness.mid_stream_stall_fresh_session_resume_failed"],["codex.mid_stream_stall_fresh_session_resume_flagged","harness.mid_stream_stall_fresh_session_resume_flagged"],["codex.mid_stream_stall_resume_suppressed_rate_limit","harness.mid_stream_stall_resume_suppressed_rate_limit"],["codex.mid_stream_stall_second_stall_after_resume","harness.mid_stream_stall_second_stall_after_resume"],["codex.pre_first_byte_stall_auto_retry_flagged","harness.pre_first_byte_stall_auto_retry_flagged"],["codex.pre_first_byte_stall_retry_suppressed_cost_cap","harness.pre_first_byte_stall_retry_suppressed_cost_cap"],["codex.provider_outage_flagged_captured","harness.provider_outage_flagged_captured"],["codex.reasoning_loop_breaker_tripped","harness.reasoning_loop_breaker_tripped"],["codex.tool_fatal_captured","harness.tool_fatal_captured"],["codex.turn_completed","job.turn_completed"],["codex.turn_completed_with_protocol_failure","job.turn_completed_with_protocol_failure"],["codex.turn_completed_with_unsupported_tool_call_ignored","job.turn_completed_with_unsupported_tool_call_ignored"],["codex.turn_completed_without_assistant_output","job.turn_completed_without_assistant_output"],["codex.turn_demoted_late_upstream_error","job.turn_demoted_late_upstream_error"],["codex.turn_forward_failed","job.turn_forward_failed"],["codex.upstream_error_captured","harness.upstream_error_captured"],["codex.upstream_rejection_captured","harness.upstream_rejection_captured"],["codex.upstream_turn_error_captured","harness.upstream_turn_error_captured"],["kandan.chat_event","linzumi.chat_event"],["kandan.chat_event_abandoned","linzumi.chat_event_abandoned"],["kandan.chat_event_failed","linzumi.chat_event_failed"],["kandan.chat_event_failure_cleared","linzumi.chat_event_failure_cleared"],["kandan.child_thread_event_failed","linzumi.child_thread_event_failed"],["kandan.child_thread_event_skipped_missing_thread_binding","linzumi.child_thread_event_skipped_missing_thread_binding"],["kandan.child_thread_upsert_failed","linzumi.child_thread_upsert_failed"],["kandan.child_thread_upsert_skipped_missing_thread_binding","linzumi.child_thread_upsert_skipped_missing_thread_binding"],["kandan.claude_code_interrupt_state_push_failed","linzumi.claude_code_interrupt_state_push_failed"],["kandan.claude_code_stop_state_push_failed","linzumi.claude_code_stop_state_push_failed"],["kandan.claude_code_typing_heartbeat_failed","linzumi.claude_code_typing_heartbeat_failed"],["kandan.claude_code_typing_start_wait_timeout","linzumi.claude_code_typing_start_wait_timeout"],["kandan.claude_code_typing_stop_failed","linzumi.claude_code_typing_stop_failed"],["kandan.claude_code_user_input_abort_publish_failed","linzumi.claude_code_user_input_abort_publish_failed"],["kandan.claude_code_user_question_completed_publish_failed","linzumi.claude_code_user_question_completed_publish_failed"],["kandan.codex_command_output_forwarded","linzumi.codex_command_output_forwarded"],["kandan.codex_delta_forwarded","linzumi.codex_delta_forwarded"],["kandan.codex_file_change_forwarded","linzumi.codex_file_change_forwarded"],["kandan.codex_notification_push_failed","linzumi.codex_notification_push_failed"],["kandan.codex_output_forwarded","linzumi.codex_output_forwarded"],["kandan.codex_reasoning_delta_forwarded","linzumi.codex_reasoning_delta_forwarded"],["kandan.codex_web_search_progress_forwarded","linzumi.codex_web_search_progress_forwarded"],["kandan.connection_force_reconnect","linzumi.connection_force_reconnect"],["kandan.connection_force_reconnect_dispatched","linzumi.connection_force_reconnect_dispatched"],["kandan.connection_hard_reset","linzumi.connection_hard_reset"],["kandan.connection_hard_reset_exhausted","linzumi.connection_hard_reset_exhausted"],["kandan.connection_recovered","linzumi.connection_recovered"],["kandan.connection_stale","linzumi.connection_stale"],["kandan.connection_unrecoverable","linzumi.connection_unrecoverable"],["kandan.control","linzumi.control"],["kandan.control_ack_withheld_on_failure","linzumi.control_ack_withheld_on_failure"],["kandan.control_epoch_changed","linzumi.control_epoch_changed"],["kandan.control_handler_threw","linzumi.control_handler_threw"],["kandan.control_ignored","linzumi.control_ignored"],["kandan.control_response_push_failed","linzumi.control_response_push_failed"],["kandan.failed_seq_overflow","linzumi.failed_seq_overflow"],["kandan.forward_port_revoked_push_failed","linzumi.forward_port_revoked_push_failed"],["kandan.forward_response","linzumi.forward_response"],["kandan.forward_response_push_failed","linzumi.forward_response_push_failed"],["kandan.forward_tunnel_error","linzumi.forward_tunnel_error"],["kandan.forward_tunnel_open_failed","linzumi.forward_tunnel_open_failed"],["kandan.heartbeat_push_failed","linzumi.heartbeat_push_failed"],["kandan.local_editor_initial_status_failed","linzumi.local_editor_initial_status_failed"],["kandan.local_editor_status_push_failed","linzumi.local_editor_status_push_failed"],["kandan.message_duplicate_ignored","linzumi.message_duplicate_ignored"],["kandan.message_ignored","linzumi.message_ignored"],["kandan.message_queued","linzumi.message_queued"],["kandan.message_spawn_on_miss","linzumi.message_spawn_on_miss"],["kandan.message_spawn_on_miss_failed","linzumi.message_spawn_on_miss_failed"],["kandan.message_state_refresh_failed","linzumi.message_state_refresh_failed"],["kandan.optional_push_failed","linzumi.optional_push_failed"],["kandan.post_stop_queue_drain_failed","linzumi.post_stop_queue_drain_failed"],["kandan.queue_drain_blocked","linzumi.queue_drain_blocked"],["kandan.queue_drain_dead_worker_fail_publish_failed","linzumi.queue_drain_dead_worker_fail_publish_failed"],["kandan.queue_drain_dead_worker_rebuild","linzumi.queue_drain_dead_worker_rebuild"],["kandan.queue_drain_dead_worker_rebuild_exhausted","linzumi.queue_drain_dead_worker_rebuild_exhausted"],["kandan.queue_drain_dead_worker_rebuild_failed","linzumi.queue_drain_dead_worker_rebuild_failed"],["kandan.reconnect_handling_failed","linzumi.reconnect_handling_failed"],["kandan.reconnect_thread_context_fetch_failed","linzumi.reconnect_thread_context_fetch_failed"],["kandan.reconnect_thread_cwd_failed_state_push_failed","linzumi.reconnect_thread_cwd_failed_state_push_failed"],["kandan.reconnect_thread_failed","linzumi.reconnect_thread_failed"],["kandan.reconnect_thread_processing_state_push_failed","linzumi.reconnect_thread_processing_state_push_failed"],["kandan.reconnect_thread_queue_closed_state_push_failed","linzumi.reconnect_thread_queue_closed_state_push_failed"],["kandan.reconnect_thread_queue_failed_state_push_failed","linzumi.reconnect_thread_queue_failed_state_push_failed"],["kandan.reconnect_thread_queue_state_push_failed","linzumi.reconnect_thread_queue_state_push_failed"],["kandan.reconnect_thread_rehydrate_forced","linzumi.reconnect_thread_rehydrate_forced"],["kandan.reconnect_thread_rehydrated","linzumi.reconnect_thread_rehydrated"],["kandan.reconnect_thread_rehydrated_state_push_failed","linzumi.reconnect_thread_rehydrated_state_push_failed"],["kandan.reconnect_thread_rehydration_failed","linzumi.reconnect_thread_rehydration_failed"],["kandan.reconnect_thread_rehydration_ir_emitted","linzumi.reconnect_thread_rehydration_ir_emitted"],["kandan.reconnect_thread_rehydration_items_failed","linzumi.reconnect_thread_rehydration_items_failed"],["kandan.reconnect_thread_resume_failed","linzumi.reconnect_thread_resume_failed"],["kandan.reconnect_thread_seq_already_applied","linzumi.reconnect_thread_seq_already_applied"],["kandan.reconnect_thread_transcript_fetch_failed","linzumi.reconnect_thread_transcript_fetch_failed"],["kandan.reconnect_thread_unarchive_failed","linzumi.reconnect_thread_unarchive_failed"],["kandan.reconnect_thread_unarchive_resumed","linzumi.reconnect_thread_unarchive_resumed"],["kandan.reconnect_thread_unarchive_started","linzumi.reconnect_thread_unarchive_started"],["kandan.reconnect_thread_unavailable_state_push_failed","linzumi.reconnect_thread_unavailable_state_push_failed"],["kandan.reconnected","linzumi.reconnected"],["kandan.roster_seeded","linzumi.roster_seeded"],["kandan.session_app_server_lost_push_failed","linzumi.session_app_server_lost_push_failed"],["kandan.session_settings_publish_failed","linzumi.session_settings_publish_failed"],["kandan.start_instance_claude_code_attachment_failed_state_push_failed","linzumi.start_instance_claude_code_attachment_failed_state_push_failed"],["kandan.start_instance_codex_app_server_unavailable","linzumi.start_instance_codex_app_server_unavailable"],["kandan.start_instance_cwd_failed_state_push_failed","linzumi.start_instance_cwd_failed_state_push_failed"],["kandan.start_instance_cwd_rejected","linzumi.start_instance_cwd_rejected"],["kandan.start_instance_failed","linzumi.start_instance_failed"],["kandan.start_instance_processing_state_push_failed","linzumi.start_instance_processing_state_push_failed"],["kandan.start_instance_skipped_known_session","linzumi.start_instance_skipped_known_session"],["kandan.start_instance_stale_skipped","linzumi.start_instance_stale_skipped"],["kandan.start_instance_unavailable_state_push_failed","linzumi.start_instance_unavailable_state_push_failed"],["kandan.start_instance_wafer_state_push_failed","linzumi.start_instance_wafer_state_push_failed"],["kandan.start_turn_replay_skipped","linzumi.start_turn_replay_skipped"],["kandan.steer_duplicate_ignored","linzumi.steer_duplicate_ignored"],["kandan.steer_parked_as_own_turn","linzumi.steer_parked_as_own_turn"],["kandan.thread_bind_from_historical_reply_failed","linzumi.thread_bind_from_historical_reply_failed"],["kandan.thread_bound_from_historical_reply","linzumi.thread_bound_from_historical_reply"],["kandan.thread_sessions_reannounce_failed","linzumi.thread_sessions_reannounce_failed"],["kandan.thread_sessions_reannounced","linzumi.thread_sessions_reannounced"],["kandan.tui_input_mirrored","linzumi.tui_input_mirrored"],["kandan.typing_heartbeat_failed","linzumi.typing_heartbeat_failed"],["kandan.typing_stop_after_completion_failed","linzumi.typing_stop_after_completion_failed"]],tS=[["codexThreadId","harness_session_id"],["codex_thread_id","harness_session_id"],["kandanThreadId","thread_id"],["kandan_preview_ticket","linzumi_preview_ticket"],["kandan_thread_id","thread_id"],["linzumiThreadId","thread_id"],["linzumi_thread_id","thread_id"],["local_codex_runner","commander"],["runnerId","commander_id"],["runner_config","commander_config"],["runner_id","commander_id"]],Gl=[["commander","local_codex_runner"],["commander_config","runner_config"],["commander_id","runner_id"],["harness_session_id","codex_thread_id"],["linzumi_preview_ticket","kandan_preview_ticket"],["thread_id","kandan_thread_id"]],Ef=[["engine_boot_reconnect","harness_boot_reconnect"],["engine_for_runner_event_type","harness_for_commander_event_type"],["engine_rejected_steer","harness_rejected_steer"],["engine_unavailable","harness_unavailable"],["join_engine","join_harness"],["kandan-local-codex-runner","linzumi-commander"],["local_codex_runner","commander"],["original_engine","original_harness"],["resume_engine","resume_harness"]];function If(){let e=process.env.LINZUMI_NAMING_DUAL_EMIT;if(e===void 0)return!0;let t=e.trim().toLowerCase();return t!=="0"?t!=="false":!1}function Pf(e){let t={};return e.forEach(r=>{t[r[0]]=r[1]}),t}function SE(e){let t={};return e.forEach(r=>{t[r[1]]=r[0]}),t}var rS=Pf(tS),nS=Pf(Gl),bE=Pf(Ef),AE=SE(Ef);function TE(e){return e.endsWith("_canonical")?!0:e.endsWith("_legacy")}function iS(e,t){return t>=32?e:Array.isArray(e)?e.map(r=>iS(r,t+1|0)):e===null?e:typeof e==="object"?aS(e,t):e}function aS(e,t){let r=Object.keys(e),n={};return r.forEach(i=>{let a=e[i];if(a!==void 0){n[i]=iS(a,t+1|0);return}}),r.forEach(i=>{if(TE(i))return;let a=n[i];if(a===void 0)return;let o=rS[i];if(o!==void 0)n[o]=a;else{let f=nS[i];f!==void 0&&(n[f]!==void 0||(n[f]=a))}let s=n[i];if(s===void 0||typeof s!="string")return;let d=bE[s];if(d!==void 0){if(n[i+"_canonical"]!==void 0)return;n[i+"_canonical"]=d;return}let l=AE[s];if(!(l===void 0||n[i+"_legacy"]!==void 0)){n[i+"_legacy"]=l;return}}),n}function Il(e){return If()?aS(e,0):e}function oS(e){let t=e.slice();return e.forEach(r=>{let n=rS[r];n!==void 0&&!t.includes(n)&&t.push(n);let i=nS[r];if(i!==void 0&&!t.includes(i)){t.push(i);return}}),t}var po="<SENSITIVE_DATA>",vE=oS(["access_token","authorization","code","cookie","kandan_preview_ticket","refresh_token","token"]),kE=["--access-token","--api-key","--authorization","--cookie","--oauth-code","--password","--refresh-token","--secret","--token"],OE=new RegExp("^(authorization|cookie|set-cookie|password|login[_-]?url|turnCapability|topicWakeTurnCapability|topic_wake_turn_capability|x-linzumi-agent-turn|mcpAuthFileContents|LINZUMI_CLOUD_MCP_AUTH_JSON)$","i"),wE=new RegExp("(^|[_-])(access[_-]?token|api[_-]?key|auth[_-]?token|oauth[_-]?code|refresh[_-]?token|secret|token)$","i"),CE=new RegExp("\\beyJ[A-Za-z0-9_-]*\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\b","g");function xE(e){return e!==void 0?OE.test(e)?!0:wE.test(e):!1}function sS(e){let t={contents:!1};return Tc(e).forEach(r=>{if(vE.includes(r.toLowerCase())){e.set(r,po),t.contents=!0;return}}),t.contents}function EE(e){let t=ra(e,"?"),r=ra(e,"#");if(t===void 0||r!==void 0&&r<t)return e;let n=e.slice(0,t),i=r!==void 0?e.slice(t+1|0,r):e.slice(t+1|0),a=r!==void 0?e.slice(r):"",o=new URLSearchParams(i);return sS(o)?n+"?"+o.toString()+a:e}function GE(e){let t=mn(e);if(t===void 0)return EE(e);let r=Ge(t);return sS(r.searchParams),r.toString()}function ya(e){return GE(e).replace(CE,po)}function IE(e){let t=ra(e,"=");return t!==void 0?[e.slice(0,t),e.slice(t+1|0)]:[e,void 0]}function jf(e,t){if(xE(t))return po;if(Array.isArray(e))return t==="args"?PE(e):e.map(r=>jf(r,void 0));if(e===null)return e;switch(typeof e){case"string":return ya(e);case"object":return dS(e);default:return e}}function PE(e){let t={contents:!1};return e.map(r=>{if(typeof r=="string"){if(t.contents)return t.contents=!1,po;let n=IE(r),i=n[0];return kE.includes(i)?n[1]!==void 0?i+"="+po:(t.contents=!0,r):ya(r)}return t.contents=!1,jf(r,void 0)})}function dS(e){let t=e.name,r=typeof t=="string"?t.toLowerCase():void 0,n;if(r!==void 0)switch(r){case"authorization":case"cookie":case"set-cookie":case"x-linzumi-agent-turn":n=!0;break;default:n=!1}else n=!1;let i={};return Object.entries(e).forEach(a=>{let o=a[0];if(o!=="runner_console"){i[o]=n&&o==="value"?po:jf(a[1],o);return}}),i}var Pl=dS;import*as Gs from"node:fs";import*as lS from"node:os";import*as hn from"node:path";var Dq=100*1024*1024;function RE(e,t,r){if(za(e,"VITEST")===void 0)return!1;let i=hn.resolve(t,".linzumi"),a=hn.relative(i,hn.resolve(r)),o=a==="",s=a.startsWith(".."+hn.sep),d=hn.isAbsolute(a);return o?!0:s?!1:!d}function jE(e,t,r){let n=Il(r),i=Pl(n),a={};if(a.ts=e,a.event=t,If()){let o=xn(xf,d=>{if(d[0]===t)return d[1]}),s=xn(xf,d=>{if(d[1]===t)return d[0]});o!==void 0?a.event_canonical=o:s!==void 0&&(a.event_legacy=s)}return Sl(i,(o,s)=>{a[s]=o}),JSON.stringify(a)+`
|
|
15
|
+
`),cf(t,"SIGINT")}function Fx(e){return new Promise((t,r)=>{setTimeout(()=>t(),e)})}async function $x(e,t,r){let n=ly(t),i=n!==void 0?n:t,a=e.now()+e.readyzTimeoutMs,o;for(;hr(o);){let s=r();s!==void 0?o={TAG:"Error",_0:"codex app-server exited before readyz: "+s}:await e.fetchOk(i)?o={TAG:"Ok",_0:void 0}:e.now()>a?o={TAG:"Error",_0:"timed out waiting for codex app-server readyz"}:await Fx(e.readyzPollMs)}return I(o,{TAG:"Error",_0:"timed out waiting for codex app-server readyz"})}async function gy(e,t,r,n,i,a,o){let s=await ry();if(s.TAG!=="Ok")return{TAG:"Error",_0:s._0};let d="ws://127.0.0.1:"+s._0.toString(),l=ay(d,n),c={contents:""},f=py(process.execPath,{command:t,args:l,pollIntervalMs:my,protectedPidsDir:df()});ff(e,"process.spawn",t,l,r,[]);let _=_y.spawn(f.command,f.args,{cwd:r,env:bl(e.env,i,a),stdio:oy,detached:!0}),m={contents:void 0},h=[],p={contents:void 0},u=[],g=P=>{if(p.contents!==void 0)return;p.contents=P;let G=u.slice();u.splice(0,u.length),G.forEach(D=>D(P))},y=(P,C,G)=>{if(P!=null){P.on("data",D=>{let k=D.toString("utf8");G!==void 0&&G(k);let q=_.pid;e.audit("process.output",Object.fromEntries([["pid",q??null],["purpose","codex.app_server"],["stream",C],["chars",k.length],["output",k]]))});return}};y(_.stdout,"stdout",void 0),y(_.stderr,"stderr",P=>{c.contents=sy(c.contents+P)});let b=ey({stop:()=>mf(e,_),pid:Nr(_.pid),ownProcessGroup:!0,kind:"codex.app_server"});_.once("exit",(P,C)=>{let G=P==null?C??"unknown":P.toString();m.contents=G,b.unregister();let D=_.pid;ff(e,"process.exit",t,l,r,[["pid",D??null],["code",P??null],["signal",C??null]]);let k=h.slice();h.splice(0,h.length),k.forEach(q=>q()),g({TAG:"Ok",_0:{code:P,signal:C}})}),_.on("error",P=>{m.contents=P.message,b.unregister(),g({TAG:"Error",_0:P.message})});let S=_.pid;ff(e,"process.spawned",t,l,r,[["pid",S??null]]);let A=()=>mf(e,_),w=await $x(e,d,()=>m.contents);if(w.TAG==="Ok")return{TAG:"Ok",_0:{url:d,pid:Nr(_.pid),stop:A,onExit:P=>{if(m.contents!==void 0)return P();h.push(P)},onExitStatus:P=>{let C=p.contents;if(C!==void 0)return P(C);u.push(P)}}};let R=w._0;return mf(e,_),dy(R,c.contents,o)?(e.audit("process.spawn.retry",Object.fromEntries([["command",t],["cwd",r],["attempt",o],["reason","loopback_bind_in_use"],["purpose","codex.app_server"]])),await gy(e,t,r,n,i,a,o+1|0)):{TAG:"Error",_0:R}}function yy(e,t,r,n,i,a){return gy(e,t,r,n,i!==void 0?i:[],a!==void 0?a:!0,1)}function qx(e){return e==="Voice"?"voice":"text"}function Nx(e){switch(e){case"All":return"all";case"Coding":return"coding";case"OnboardingDiscovery":return"onboarding-discovery"}}function pf(e){return JSON.stringify(e)}function by(e){let t=[],r=e.argsPrefix;r!==void 0&&r.forEach(g=>{t.push(g)}),t.push("mcp"),t.push("server"),t.push("--api-url"),t.push(e.serviceUrl);let n=e.authFilePath;n!==void 0&&(t.push("--auth-file"),t.push(n));let i=e.delegationAuthFilePath;i!==void 0&&(t.push("--delegation-auth-file"),t.push(i));let a=e.ownerUsername;a!==void 0&&(t.push("--owner-username"),t.push(a));let o=e.cwd;o!==void 0&&(t.push("--cwd"),t.push(o));let s=e.threadId;s!==void 0&&(t.push("--thread-id"),t.push(s)),t.push("--mode");let d=e.operatingMode;t.push(d!==void 0?qx(d):"text");let l=e.toolScope;if(l!==void 0){let g=0;switch(l){case"All":break;case"Coding":case"OnboardingDiscovery":g=1;break}g===1&&(t.push("--tool-scope"),t.push(Nx(l)))}let c=e.agentSession;c!==void 0&&c&&t.push("--agent-session");let f=e.askUserQuestionTool;f!==void 0&&f&&t.push("--ask-user-question-tool");let _=e.multiAgentJobs;_!==void 0&&_&&t.push("--multi-agent-jobs");let m={},h=e.accessToken;h!==void 0&&(m.LINZUMI_MCP_ACCESS_TOKEN=h);let p=e.devServices;p!==void 0&&(m.LINZUMI_DEV_SERVICES_SCOPE=p.scope,m.LINZUMI_DEV_SERVICES_OWNER_PID=p.ownerPid.toString()),m.ELECTRON_RUN_AS_NODE="1";let u=e.command;return{name:"linzumi",command:u!==void 0?u:"linzumi",args:t,env:m}}function Dx(e){return"["+e.map(pf).join(", ")+"]"}function Ay(e,t){let r=["-c","mcp_servers."+e.name+".command="+pf(e.command),"-c","mcp_servers."+e.name+".args="+Dx(e.args)];return Object.entries(e.env).forEach(n=>{r.push("-c"),r.push("mcp_servers."+e.name+".env."+n[0]+"="+pf(n[1]))}),t&&(r.push("-c"),r.push("mcp_servers."+e.name+'.default_tools_approval_mode="approve"')),e.args.includes("--ask-user-question-tool")&&(r.push("-c"),r.push("mcp_servers."+e.name+".tool_timeout_sec=2147483")),r}function Lx(e){return["--require","-r","--import","--loader","--experimental-loader"].includes(e)}function Ux(e){return["--require=","-r=","--import=","--loader=","--experimental-loader="].some(t=>e.startsWith(t))}function _f(e,t){for(;;){let r=t,n=e[r];if(n===void 0)return[];if(Lx(n)){let i=e[r+1|0];if(i!==void 0)return[n,i].concat(_f(e,r+2|0));t=r+1|0;continue}if(Ux(n))return[n].concat(_f(e,r+1|0));t=r+1|0}}function Ty(e,t,r){let n=t!==void 0?t.trim():"";return n===""?{command:"linzumi",argsPrefix:[]}:n.endsWith(".ts")||n.endsWith(".js")?{command:e,argsPrefix:_f(r,0).concat([n])}:{command:n,argsPrefix:[]}}function zx(e){switch(e){case"SocketOpen":return"open";case"SocketMessage":return"message";case"SocketClose":return"close";case"SocketError":return"error"}}function Wx(e){let t=e.data,r;r=t==null||typeof t!="string"?void 0:t;let n=e.code,i;i=n==null||typeof n!="number"||(n|0)!==n?void 0:n|0;let a=e.reason,o;return o=a==null||typeof a!="string"?void 0:a,{data:r,code:i,reason:o}}function Hx(e){return{readyState:()=>e.readyState,send:t=>{e.send(t)},close:()=>{e.close()},on:(t,r)=>{e.addEventListener(zx(t),n=>r(Wx(n)),{})}}}function Tl(e,t){return Hx(new WebSocket(e,t))}var vy=0,ga=1;function Oy(e){try{let t=JSON.stringify(e);if(t===void 0)return{TAG:"Error",_0:"trusted Codex value did not serialize"};try{return{TAG:"Ok",_0:JSON.parse(t)}}catch(r){let n=_e(r);return{TAG:"Error",_0:ke(n).message}}}catch(t){let r=_e(t);return{TAG:"Error",_0:ke(r).message}}}function Xr(e){try{let t=JSON.stringify(e);if(t===void 0)return{TAG:"Error",_0:"authored Codex value did not serialize"};try{return{TAG:"Ok",_0:JSON.parse(t)}}catch(r){let n=_e(r);return{TAG:"Error",_0:ke(n).message}}}catch(t){let r=_e(t);return{TAG:"Error",_0:ke(r).message}}}function wy(e,t,r){return Xr(t!==void 0?r!==void 0?{id:t,method:e,params:r}:{id:t,method:e}:r!==void 0?{method:e,params:r}:{method:e})}function Kx(e){switch(e){case"account/gatewayOAuth/changed":case"account/login/completed":case"account/rateLimits/updated":case"account/updated":case"app/list/updated":case"command/exec/outputDelta":case"configWarning":case"deprecationNotice":case"error":case"externalAgentConfig/import/completed":case"externalAgentConfig/import/progress":case"fs/changed":case"fuzzyFileSearch/sessionCompleted":case"fuzzyFileSearch/sessionUpdated":case"guardianWarning":case"hook/completed":case"hook/started":case"item/agentMessage/delta":case"item/autoApprovalReview/completed":case"item/autoApprovalReview/started":case"item/commandExecution/outputDelta":case"item/commandExecution/terminalInteraction":case"item/completed":case"item/fileChange/outputDelta":case"item/fileChange/patchUpdated":case"item/mcpToolCall/progress":case"item/plan/delta":case"item/reasoning/summaryPartAdded":case"item/reasoning/summaryTextDelta":case"item/reasoning/textDelta":case"item/started":case"mcpServer/oauthLogin/completed":case"mcpServer/startupStatus/updated":case"model/rerouted":case"model/safetyBuffering/updated":case"model/verification":case"process/exited":case"process/outputDelta":case"rawResponse/completed":case"rawResponseItem/completed":case"remoteControl/status/changed":case"serverRequest/resolved":case"skills/changed":case"thread/archived":case"thread/attachment/updated":case"thread/closed":case"thread/compacted":case"thread/deleted":case"thread/goal/cleared":case"thread/goal/updated":case"thread/name/updated":case"thread/realtime/closed":case"thread/realtime/error":case"thread/realtime/itemAdded":case"thread/realtime/outputAudio/delta":case"thread/realtime/sdp":case"thread/realtime/started":case"thread/realtime/transcript/delta":case"thread/realtime/transcript/done":case"thread/settings/updated":case"thread/started":case"thread/status/changed":case"thread/tokenUsage/updated":case"thread/unarchived":case"turn/completed":case"turn/diff/updated":case"turn/moderationMetadata":case"turn/plan/updated":case"turn/started":case"warning":case"windows/worldWritableWarning":case"windowsSandbox/setupCompleted":return!0;default:return!1}}function Jx(e){switch(e){case"account/chatgptAuthTokens/refresh":case"applyPatchApproval":case"attestation/generate":case"execCommandApproval":case"item/commandExecution/requestApproval":case"item/fileChange/requestApproval":case"item/permissions/requestApproval":case"item/tool/call":case"item/tool/requestUserInput":case"mcpServer/elicitation/request":return!0;default:return!1}}function Cy(e,t){if(!Kx(e))return{TAG:"UnknownNotification",_0:{method:e,params:t}};let r=wy(e,void 0,t);if(r.TAG!=="Ok")return{TAG:"UnknownNotification",_0:{method:e,params:t}};let n=Oy(r._0);return n.TAG==="Ok"?{TAG:"KnownNotification",method:e,value:n._0,rawParams:t}:{TAG:"UnknownNotification",_0:{method:e,params:t}}}function xy(e,t,r){if(!Jx(t))return{TAG:"UnknownServerRequest",_0:{id:e,method:t,params:r}};let n=wy(t,e,r);if(n.TAG!=="Ok")return{TAG:"UnknownServerRequest",_0:{id:e,method:t,params:r}};let i=Oy(n._0);return i.TAG==="Ok"?{TAG:"KnownServerRequest",method:t,value:i._0}:{TAG:"UnknownServerRequest",_0:{id:e,method:t,params:r}}}function uo(e){try{let t=JSON.stringify(e);if(t===void 0)return null;try{return JSON.parse(t)}catch{return null}}catch{return null}}function vl(e){return e.TAG==="KnownNotification"?e.method:e._0.method}function Ey(e){return e.TAG==="KnownServerRequest"?e.method:e._0.method}function ws(e){return e.TAG==="KnownServerRequest"?e.value.id:e._0.id}function $i(e){let t=ws(e);if(t===null)return"null";if(Array.isArray(t))return"[object]";switch(typeof t){case"boolean":return t?"true":"false";case"string":return t;case"number":return t.toString();case"object":return"[object]"}}function yi(e,t){if(e===void 0||typeof e!="object"||e===null||Array.isArray(e))return;let r=e[t];if(typeof r=="string")return r}function Vx(e,t){return I(yi(e,"command"),I(yi(e,"cmd"),I(yi(e,"path"),I(yi(e,"filePath"),I(yi(e,"file"),I(yi(e,"reason"),I(yi(e,"summary"),t)))))))}var _n=uo;function Gy(e){if(e.TAG==="KnownServerRequest"){let t=e.value,r=e.method;switch(t.method){case"item/commandExecution/requestApproval":let n=t.params;return{requestId:$i(e),threadId:n.threadId,turnId:n.turnId,kind:r,summary:I(E(n.command,c=>{if(c!=null)return Re(c)}),I(E(n.reason,c=>{if(c!=null)return Re(c)}),r)),payload:uo(n)};case"item/fileChange/requestApproval":let i=t.params;return{requestId:$i(e),threadId:i.threadId,turnId:i.turnId,kind:r,summary:I(E(i.reason,c=>{if(c!=null)return Re(c)}),r),payload:uo(i)};case"item/permissions/requestApproval":let a=t.params;return{requestId:$i(e),threadId:a.threadId,turnId:a.turnId,kind:r,summary:I(Nr(a.reason),r),payload:uo(a)};case"applyPatchApproval":let o=t.params;return{requestId:$i(e),threadId:o.conversationId,turnId:void 0,kind:r,summary:I(Nr(o.reason),r),payload:uo(o)};case"execCommandApproval":let s=t.params,d=s.command.join(" ").trim(),l=d===""?I(Nr(s.reason),r):d;return{requestId:$i(e),threadId:s.conversationId,turnId:void 0,kind:r,summary:l,payload:uo(s)};default:return}}else{let t=e._0,r=t.method;if(!r.includes("requestApproval"))return;let n=t.params;return{requestId:$i(e),threadId:yi(n,"threadId"),turnId:yi(n,"turnId"),kind:r,summary:Vx(n,r),payload:I(n,null)}}}function Qx(e){try{e.unref();return}catch{return}}var Iy="codex app-server websocket closed",Zx="codex app-server websocket is not open";function Yx(e){let t=e.method;if(typeof t=="string")return t}function Xx(e){let t=e.error;if(t===void 0)return{TAG:"ResultReply",_0:I(e.result,null)};if(typeof t!="object"||t===null||Array.isArray(t))return{TAG:"ErrorReply",code:0,message:JSON.stringify(t)};let r=t.code,n=r!==void 0&&typeof r=="number"?r:0,i=t.message;return{TAG:"ErrorReply",code:n,message:typeof i=="string"?i:""}}function kl(e,t,r,n){let i=JSON.stringify(n);t(r,i);try{return e.socket.send(i),{TAG:"Ok",_0:void 0}}catch(a){let o=_e(a);return{TAG:"Error",_0:ke(o).message}}}function My(e,t,r){try{return t(r)}catch(n){let i=_e(n);return e("codex.notification_callback_failed",Object.fromEntries([["purpose","codex.app_server"],["method",vl(r)],["message",ke(i).message]]))}}function Py(e,t,r){try{return t(r)}catch(n){let i=_e(n);return e("codex.close_callback_failed",Object.fromEntries([["purpose","codex.app_server"],["message",ke(i).message]]))}}function eE(e,t){let r;if(t.TAG==="Ok")r=[["jsonrpc","2.0"],["id",e],["result",t._0]];else{let n=t._0;r=[["jsonrpc","2.0"],["id",e],["error",Object.fromEntries([["code",n[0]],["message",n[1]]])]]}return Object.fromEntries(r)}async function tE(e,t,r,n){let i={TAG:"Error",_0:[-32601,"unhandled Codex app-server request: "+Ey(n)]},a=e.requestCallbacks.slice(),o,s=0;for(;hr(o)&&s<a.length;){let l=a[s];if(l!==void 0){let c=0,f;try{f=await l(n),c=1}catch(_){let m=_e(_);o={TAG:"Error",_0:[-32e3,ke(m).message]}}c===1&&f!==void 0&&(o={TAG:"Ok",_0:f})}s=s+1|0}let d=I(o,i);kl(t,r,"outgoing",eE(ws(n),d))}function rE(e,t,r,n,i){let a;try{a=JSON.parse(i)}catch(_){let m=_e(_);r("codex.app_server_frame_malformed",Object.fromEntries([["purpose","codex.app_server"],["message",ke(m).message],["payload",i.slice(0,512)],["payloadChars",i.length]])),a=void 0}let o;if(a!==void 0){let _=0;typeof a=="object"&&a!==null&&!Array.isArray(a)?o=a:_=1,_===1&&(r("codex.app_server_frame_malformed",Object.fromEntries([["purpose","codex.app_server"],["message","codex app-server sent non-object JSON-RPC message"],["payload",i.slice(0,512)],["payloadChars",i.length]])),o=void 0)}else o=void 0;if(o===void 0)return;let s=zt(o.id),d=s&&(zt(o.result)||zt(o.error)),l=Yx(o);if(d){let _=I(o.id,null),m=JSON.stringify(_),h=e.pending[m];return h!==void 0?(Pt(e.pending,m),h.resolvePending({TAG:"Ok",_0:Xx(o)})):void 0}if(s)if(l!==void 0){tr(tE(e,t,n,xy(I(o.id,null),l,o.params)),_=>Promise.resolve());return}else return;if(l===void 0)return;let c=Cy(l,o.params);e.notificationCallbacks.length!==0?e.notificationCallbacks.forEach(_=>My(r,_,c)):e.pendingNotifications.push(c)}function nE(e,t,r){return Object.fromEntries(r!==void 0?[["jsonrpc","2.0"],["id",e],["method",t],["params",r]]:[["jsonrpc","2.0"],["id",e],["method",t]])}function Ry(e,t){return Object.fromEntries(t!==void 0?[["jsonrpc","2.0"],["method",e],["params",t]]:[["jsonrpc","2.0"],["method",e]])}function jy(e,t,r,n,i,a){return t.socket.readyState()===ga?new Promise((o,s)=>{e.pending[JSON.stringify(n)]={resolvePending:o};let d=kl(t,r,"request",nE(n,i,a));d.TAG!=="Ok"&&(Pt(e.pending,JSON.stringify(n)),o({TAG:"Error",_0:d._0}))}):Promise.resolve({TAG:"Error",_0:Zx})}async function Fy(e,t,r,n){let i=t!==void 0?t:c=>({socket:Tl(c,[]),ping:void 0}),a=r!==void 0?r:2e3,o=n!==void 0?n:()=>Date.now(),s=o()+a,d,l="websocket open failed";for(;hr(d);){let c;try{c={TAG:"Ok",_0:i(e)}}catch(f){let _=_e(f);c={TAG:"Error",_0:ke(_).message}}if(c.TAG==="Ok"){let f=c._0,_=s-o();if(_<=0){let m;try{f.socket.close(),m={TAG:"Ok",_0:void 0}}catch(h){let p=_e(h);m={TAG:"Error",_0:ke(p).message}}d=m.TAG==="Ok"?{TAG:"Error",_0:"websocket open timed out"}:{TAG:"Error",_0:"websocket timeout_close failed for "+e+": "+m._0}}else{let m={contents:void 0},h=await Promise.race([new Promise((p,u)=>{f.socket.on("SocketOpen",g=>p(!0)),f.socket.on("SocketError",g=>p(!1))}),new Promise((p,u)=>{let g=setTimeout(()=>p(void 0),_);g.unref(),m.contents=Re(g)})]).finally(()=>{let p=m.contents;if(p!==void 0){clearTimeout(Ge(p));return}});if(h!==void 0)if(h)d={TAG:"Ok",_0:f};else{let p;try{f.socket.close(),p={TAG:"Ok",_0:void 0}}catch(u){let g=_e(u);p={TAG:"Error",_0:ke(g).message}}p.TAG==="Ok"?o()>s&&(d={TAG:"Error",_0:l}):d={TAG:"Error",_0:"websocket handshake_close failed for "+e+": "+p._0}}else{let p;try{f.socket.close(),p={TAG:"Ok",_0:void 0}}catch(u){let g=_e(u);p={TAG:"Error",_0:ke(g).message}}d=p.TAG==="Ok"?{TAG:"Error",_0:"websocket open timed out"}:{TAG:"Error",_0:"websocket timeout_close failed for "+e+": "+p._0}}}}else l=c._0,o()>s&&(d={TAG:"Error",_0:l})}return I(d,{TAG:"Error",_0:l})}async function $y(e,t){let r={pending:{},notificationCallbacks:[],requestCallbacks:[],pendingNotifications:[],closeCallbacks:[],nextId:1,closeError:void 0},n=t.audit,i=t.onWire,a=setInterval(()=>{let l=e.ping;if(l!==void 0&&e.socket.readyState()===ga)try{return l()}catch{return}},t.keepaliveIntervalMs);Qx(a);let o=l=>{clearInterval(a);let c=Object.entries(r.pending);if(Object.entries(r.pending).forEach(m=>Pt(r.pending,m[0])),c.forEach(m=>m[1].resolvePending({TAG:"Error",_0:l})),r.closeError!==void 0)return;r.closeError=l;let _=r.closeCallbacks.slice();r.closeCallbacks.splice(0,r.closeCallbacks.length),_.forEach(m=>Py(n,m,l))};e.socket.on("SocketClose",l=>o(Iy)),e.socket.on("SocketError",l=>o(Iy)),e.socket.on("SocketMessage",l=>{let c=l.data;if(c!==void 0)return i("incoming",c),rE(r,e,n,i,c)});let s=await jy(r,e,i,"initialize","initialize",uy());if(s.TAG!=="Ok")return{TAG:"Error",_0:s._0};let d=s._0;return d.TAG!=="ResultReply"?{TAG:"Error",_0:"codex initialize failed: "+d.message}:(kl(e,i,"outgoing",Ry("initialized",void 0)),{TAG:"Ok",_0:{request:(l,c)=>{let f=r.nextId;return r.nextId=r.nextId+1|0,jy(r,e,i,f,l,c)},notify:(l,c)=>{kl(e,i,"outgoing",Ry(l,c))},onNotification:l=>{r.notificationCallbacks.push(l);let c=r.pendingNotifications.slice();r.pendingNotifications.splice(0,r.pendingNotifications.length),c.forEach(f=>My(n,l,f))},onRequest:l=>{r.requestCallbacks.push(l)},onClose:l=>{let c=r.closeError;if(c!==void 0)return Py(n,l,c);r.closeCallbacks.push(l)},isClosed:()=>zt(r.closeError),close:()=>{clearInterval(a);try{return e.socket.close()}catch{return}}}})}function hf(e,t){return{type:"text",text:e,text_elements:t}}function gf(e,t){return{type:"localImage",detail:e,path:t}}function yf(e,t,r){let n=r.sandboxedNeverDefault&&de(t,"workspace-write");if(e===void 0)return{TAG:"Ok",_0:n?"GatedNever":"GatedOnRequest"};switch(e){case"default":return{TAG:"Ok",_0:n?"GatedNever":"GatedOnRequest"};case"never":return{TAG:"Ok",_0:de(t,"danger-full-access")||n?"GatedNever":"GatedOnRequest"};case"on-failure":return{TAG:"Ok",_0:"GatedOnFailure"};case"on-request":return{TAG:"Ok",_0:"GatedOnRequest"};default:return console.warn("linzumi approval-policy clamp: unknown Codex approval policy "+e+"; clamping to most-restrictive approval (on-request)"),{TAG:"Ok",_0:"GatedOnRequest"}}}function Ny(e,t,r){let n=yf(e,t,r);if(n.TAG!=="Ok")return n;let i;switch(n._0){case"GatedNever":i="never";break;case"GatedOnRequest":i="on-request";break;case"GatedOnFailure":i="on-failure";break}return{TAG:"Ok",_0:i}}var Dy=Object.fromEntries([["granular",Object.fromEntries([["sandbox_approval",!1],["rules",!1],["skill_approval",!1],["request_permissions",!1],["mcp_elicitations",!0]])]]);function Sf(e,t,r){let n=yf(e,t,r);if(n.TAG!=="Ok")return n;let i;switch(n._0){case"GatedNever":i=t==="danger-full-access"?Dy:"never";break;case"GatedOnRequest":case"GatedOnFailure":i="on-request";break}return{TAG:"Ok",_0:i}}function bf(e,t,r){let n=yf(e,t,r);if(n.TAG!=="Ok")return n;let i;switch(n._0){case"GatedNever":i=t==="danger-full-access"?{granular:{sandbox_approval:!1,rules:!1,skill_approval:!1,request_permissions:!1,mcp_elicitations:!0}}:"never";break;case"GatedOnRequest":case"GatedOnFailure":i="on-request";break}return{TAG:"Ok",_0:i}}function Ly(e,t,r){let n=Sf(e,t,r);return n.TAG==="Ok"?n._0===Dy:!1}function Ol(e){if(e===void 0)return!1;switch(e){case"read-only":case"workspace-write":return!0;default:return!1}}function wl(e){if(e===void 0)return!1;switch(e){case"on-failure":case"on-request":case"untrusted":return!0;default:return!1}}function Uy(e,t){switch(e){case"danger-full-access":return{TAG:"Ok",_0:Object.fromEntries([["type","dangerFullAccess"]])};case"read-only":return{TAG:"Ok",_0:Object.fromEntries([["type","readOnly"],["access",Object.fromEntries([["type","fullAccess"]])],["networkAccess",!1]])};case"workspace-write":return{TAG:"Ok",_0:Object.fromEntries([["type","workspaceWrite"],["writableRoots",[t]],["readOnlyAccess",Object.fromEntries([["type","fullAccess"]])],["networkAccess",!1],["excludeTmpdirEnvVar",!1],["excludeSlashTmp",!1]])};default:return{TAG:"Error",_0:"unsupported Codex sandbox mode: "+e}}}var By="kandan-local-runner";function zy(e,t,r,n,i,a,o){let s=bf(n,i,a);if(s.TAG!=="Ok")return s;let d;if(i!==void 0)switch(i){case"danger-full-access":d={TAG:"Ok",_0:"danger-full-access"};break;case"read-only":d={TAG:"Ok",_0:"read-only"};break;case"workspace-write":d={TAG:"Ok",_0:"workspace-write"};break;default:d={TAG:"Error",_0:"unsupported Codex sandbox mode: "+i}}else d={TAG:"Ok",_0:void 0};if(d.TAG!=="Ok")return d;let l=ee(r,p=>({model_reasoning_effort:p})),c=o!==void 0&&o?"fast":void 0,f=ee(t,p=>p),_=Re(s._0),m=ee(d._0,p=>p);return{TAG:"Ok",_0:{threadId:e,model:f,serviceTier:c,approvalPolicy:_,sandbox:m,config:l}}}function Cl(){let e={contents:void 0},t=new Promise((n,i)=>{e.contents=n}),r=e.contents;return r!==void 0?{TAG:"Ok",_0:{promise:t,resolve:r}}:{TAG:"Error",_0:"commander_signal_resolver_not_installed"}}function oE(e){try{return{TAG:"Ok",_0:JSON.parse(JSON.stringify(e))}}catch(t){let r=_e(t);return{TAG:"Error",_0:ke(r).message}}}function Cs(e){try{let t=JSON.stringify(e);return t!==void 0?{TAG:"Ok",_0:JSON.parse(t)}:{TAG:"Error",_0:"official request parameters did not serialize"}}catch(t){let r=_e(t);return{TAG:"Error",_0:ke(r).message}}}function sE(e,t){return e.trim()===""?{TAG:"Error",_0:t+" must not be blank"}:{TAG:"Ok",_0:void 0}}async function Tf(e,t,r,n){let i=Cs(r);if(i.TAG!=="Ok")return{TAG:"Error",_0:"could not serialize "+t+" params: "+i._0};let a=await e.request(t,i._0);if(a.TAG!=="Ok")return{TAG:"Error",_0:a._0};let o=a._0;if(o.TAG!=="ResultReply")return{TAG:"Ok",_0:{TAG:"Failure",code:o.code,message:o.message}};let s=o._0;if(typeof s!="object"||s===null||Array.isArray(s))return{TAG:"Error",_0:"malformed "+t+" success result: expected an object"};let d=oE(s);if(d.TAG!=="Ok")return d;let l=d._0;try{let c=n(l);return c.TAG==="Ok"?{TAG:"Ok",_0:{TAG:"Success",_0:l}}:{TAG:"Error",_0:"malformed "+t+" success result: "+c._0}}catch(c){let f=_e(c);return{TAG:"Error",_0:"malformed "+t+" success result: "+ke(f).message}}}function xl(e,t){return Tf(e,"thread/start",t,r=>sE(r.thread.id,"thread.id"))}function Wy(e,t){return Tf(e,"thread/archive",t,r=>({TAG:"Ok",_0:void 0}))}function Hy(e,t){return Tf(e,"thread/compact/start",t,r=>({TAG:"Ok",_0:void 0}))}import*as wf from"node:path";function an(e){let t=e.length,r=0;for(let i=0;i<t;++i)r=r+e[i].length|0;let n=new Array(r);r=0;for(let i=0;i<t;++i){let a=e[i];for(let o=0,s=a.length;o<s;++o)n[r]=a[o],r=r+1|0}return n}function uE(e){return e==="Codex"?"codex":"claude-code"}function Ky(e){switch(e){case"AuthUnavailable":return"auth_unavailable";case"InvalidResponse":return"invalid_response";case"DiscoveryFailed":return"discovery_failed"}}function Jy(e,t,r){if(e.TAG!=="ReadyState")return!1;let n=e.catalog,i=r==="default"?n.defaultModel:r;return uE(e.provider)===t?n.models.some(a=>a.id===i):!1}function Vy(e){switch(e.TAG){case"Pending":return"pending";case"ReadyState":return"ready";case"EmptyState":return"empty";case"FailedState":return"failed"}}function xs(e){return e!==""?e.length<=255:!1}function fo(e,t){return I(e[t],null)}function cE(e){try{let t=JSON.stringify(e);if(t===void 0)return{TAG:"Error",_0:"model/list params were not JSON serializable"};try{return{TAG:"Ok",_0:JSON.parse(t)}}catch(r){let n=_e(r);return{TAG:"Error",_0:ke(n).message}}}catch(t){let r=_e(t);return{TAG:"Error",_0:ke(r).message}}}function fE(e,t,r,n){for(;;){let i=n,a=r,o=t,s=e[o];if(s===void 0)return{TAG:"Ok",_0:i.toReversed()};if(typeof s!="object"||s===null||Array.isArray(s))return{TAG:"Error",_0:"invalid_reasoning_effort"};let d=Ft(fo(s,"reasoningEffort"));if(d===void 0)return{TAG:"Error",_0:"invalid_reasoning_effort"};let l=d.trim(),c=xs(l),f=a.includes(l);if(!c)return{TAG:"Error",_0:"invalid_reasoning_effort"};if(f)return{TAG:"Error",_0:"invalid_reasoning_effort"};n=an([[l],i]),r=a.concat([l]),t=o+1|0}}function mE(e){if(typeof e!="object"||e===null||Array.isArray(e))return{TAG:"Error",_0:"model/list included invalid visible model metadata"};let t=Ft(fo(e,"model")),r=Ft(fo(e,"displayName")),n=e.hidden,i=In(fo(e,"supportedReasoningEfforts")),a=Ft(fo(e,"defaultReasoningEffort")),o=e.isDefault;if(t===void 0)return{TAG:"Error",_0:"model/list included invalid visible model metadata"};if(r===void 0)return{TAG:"Error",_0:"model/list included invalid visible model metadata"};if(n===void 0)return{TAG:"Error",_0:"model/list included invalid visible model metadata"};if(typeof n!="boolean")return{TAG:"Error",_0:"model/list included invalid visible model metadata"};if(n)return{TAG:"Error",_0:"model/list included invalid visible model metadata"};if(i===void 0)return{TAG:"Error",_0:"model/list included invalid visible model metadata"};if(a===void 0)return{TAG:"Error",_0:"model/list included invalid visible model metadata"};if(o===void 0)return{TAG:"Error",_0:"model/list included invalid visible model metadata"};if(typeof o!="boolean")return{TAG:"Error",_0:"model/list included invalid visible model metadata"};let s=t.trim(),d=r.trim(),l=a.trim(),c=xs(s),f=xs(d),_=xs(l);if(!c)return{TAG:"Error",_0:"model/list included invalid visible model metadata"};if(!f)return{TAG:"Error",_0:"model/list included invalid visible model metadata"};if(!_)return{TAG:"Error",_0:"model/list included invalid visible model metadata"};let m=fE(i,0,[],[]);if(m.TAG!=="Ok")return{TAG:"Error",_0:"model/list "+s+" included invalid reasoning effort metadata"};let h=m._0;return h.includes(l)?{TAG:"Ok",_0:{model:{id:s,displayName:d,reasoningEfforts:h,defaultReasoningEffort:l},isDefault:o}}:{TAG:"Error",_0:"model/list "+s+" included inconsistent reasoning effort metadata"}}function pE(e,t,r){for(;;){let n=r,i=t,a=e[i];if(a===void 0)return{TAG:"Ok",_0:n};let o=mE(a);if(o.TAG!=="Ok")return{TAG:"Error",_0:o._0};let s=o._0;if(n.modelIds.includes(s.model.id))return{TAG:"Error",_0:"model/list repeated model "+s.model.id};let d=n.models.concat([s.model]);if(d.length>100)return{TAG:"Error",_0:"model/list exceeded 100 visible models"};r={models:d,modelIds:n.modelIds.concat([s.model.id]),defaults:s.isDefault?n.defaults.concat([s.model.id]):n.defaults},t=i+1|0}}async function _E(e){let t=async(r,n,i,a)=>{let o=cE({cursor:be(r,null,b=>b),limit:100,includeHidden:!1});if(o.TAG!=="Ok")return{TAG:"Error",_0:{TAG:"DiscoveryError",_0:o._0}};let s=await e("model/list",o._0);if(s.TAG!=="Ok")return{TAG:"Error",_0:{TAG:"DiscoveryError",_0:s._0}};let d=s._0;if(typeof d!="object"||d===null||Array.isArray(d))return{TAG:"Error",_0:{TAG:"InvalidResponseError",_0:"model/list response was not an object"}};let l=In(fo(d,"data"));if(l===void 0)return{TAG:"Error",_0:{TAG:"InvalidResponseError",_0:"model/list response did not include data"}};let c=pE(l,0,a);if(c.TAG!=="Ok")return{TAG:"Error",_0:{TAG:"InvalidResponseError",_0:c._0}};let f=c._0,_=d.nextCursor;if(_===void 0)return{TAG:"Error",_0:{TAG:"InvalidResponseError",_0:"model/list included invalid pagination cursor"}};if(_===null){let b=f.models.length,S=f.defaults;return b===0?{TAG:"Ok",_0:"Empty"}:S.length!==1?{TAG:"Error",_0:{TAG:"InvalidResponseError",_0:"model/list did not advertise exactly one valid default model"}}:{TAG:"Ok",_0:{TAG:"Ready",_0:{defaultModel:S[0],models:f.models}}}}let m=Ft(_);if(m===void 0)return{TAG:"Error",_0:{TAG:"InvalidResponseError",_0:"model/list included invalid pagination cursor"}};let h=m.trim(),p=xs(h),u=i.includes(h),g=n===19;return p?u?{TAG:"Error",_0:{TAG:"InvalidResponseError",_0:"model/list repeated pagination cursor "+h}}:g?{TAG:"Error",_0:{TAG:"InvalidResponseError",_0:"model/list exceeded 20 pagination pages"}}:await t(h,n+1|0,i.concat([h]),f):{TAG:"Error",_0:{TAG:"InvalidResponseError",_0:"model/list included invalid pagination cursor"}}};return await t(void 0,0,[],{models:[],modelIds:[],defaults:[]})}function Qy(e,t){let r={contents:void 0},n=new Promise((i,a)=>{let o=setTimeout(()=>i({TAG:"Error",_0:{TAG:"DiscoveryError",_0:"Codex model discovery timed out"}}),t);o.unref(),r.contents=Re(o)});return Promise.race([_E(e),n]).finally(()=>{let i=r.contents;if(i!==void 0){clearTimeout(Ge(i));return}})}var El=["wafer","openai"];var Zy="api_key",Cf="oauth",mo="none";function hE(e,t){let r=ee(e.CODEX_HOME,n=>n.trim());return r!==void 0&&r!==""?r:wf.join(t,".codex")}function gE(e){if(typeof e!="object"||e===null||Array.isArray(e))return"MalformedOauthToken";let t=e.access_token;return t!==void 0?typeof t=="string"?t.trim()!==""?{TAG:"UsableOauthToken",_0:e}:"LoggedOutOauthToken":"MalformedOauthToken":"LoggedOutOauthToken"}function Yy(e,t,r,n){let i=ee(e.OPENAI_API_KEY,l=>l.trim());if((i!==void 0&&i!==""?i:void 0)!==void 0)return{hasValidOpenAiAuth:!0,authMode:Zy};let o=wf.join(hE(e,t),"auth.json"),s=r(o),d;if(s.TAG==="Ok"){let l=0,c;try{c=JSON.parse(s._0),l=1}catch{n({TAG:"MalformedAuthFile",_0:o}),d=void 0}l===1&&(d=c)}else{let l=s._0;l.code==="ENOENT"||n({TAG:"UnreadableAuthFile",path:o,error:l}),d=void 0}if(d===void 0)return{hasValidOpenAiAuth:!1,authMode:mo};if(typeof d=="object"&&d!==null&&!Array.isArray(d)){let l=d.OPENAI_API_KEY,c;switch(l!=null?typeof l=="string"?c=l.trim()!==""?"UsableAuthFileApiKey":"AbsentAuthFileApiKey":(n({TAG:"MalformedAuthFile",_0:o}),c="MalformedAuthFileApiKey"):c="AbsentAuthFileApiKey",c){case"UsableAuthFileApiKey":return{hasValidOpenAiAuth:!0,authMode:Zy};case"AbsentAuthFileApiKey":let f=ee(d.tokens,gE);return f===void 0?{hasValidOpenAiAuth:!1,authMode:mo}:typeof f=="object"?{hasValidOpenAiAuth:!0,authMode:Cf}:f==="LoggedOutOauthToken"?{hasValidOpenAiAuth:!1,authMode:mo}:(n({TAG:"MalformedAuthFile",_0:o}),{hasValidOpenAiAuth:!1,authMode:mo});case"MalformedAuthFileApiKey":return{hasValidOpenAiAuth:!1,authMode:mo}}}else return n({TAG:"MalformedAuthFile",_0:o}),{hasValidOpenAiAuth:!1,authMode:mo}}var $q=new RegExp("[\\x00-\\x1f\\x7f-\\x9f]");function eS(){return I("1.0.289","0.0.0-unbundled")}var xf=[["codex.agent_turn_narration_only_no_reply","harness.agent_turn_narration_only_no_reply"],["codex.cost_cap_402_seen","harness.cost_cap_402_seen"],["codex.edge_blocked_captured","harness.edge_blocked_captured"],["codex.empty_turn_auto_retry_suppressed_cost_cap","harness.empty_turn_auto_retry_suppressed_cost_cap"],["codex.empty_turn_loop_guard_tripped","harness.empty_turn_loop_guard_tripped"],["codex.error_without_http_status_captured","harness.error_without_http_status_captured"],["codex.mid_stream_stall_auto_resume_flagged","harness.mid_stream_stall_auto_resume_flagged"],["codex.mid_stream_stall_fresh_session_resume","harness.mid_stream_stall_fresh_session_resume"],["codex.mid_stream_stall_fresh_session_resume_failed","harness.mid_stream_stall_fresh_session_resume_failed"],["codex.mid_stream_stall_fresh_session_resume_flagged","harness.mid_stream_stall_fresh_session_resume_flagged"],["codex.mid_stream_stall_resume_suppressed_rate_limit","harness.mid_stream_stall_resume_suppressed_rate_limit"],["codex.mid_stream_stall_second_stall_after_resume","harness.mid_stream_stall_second_stall_after_resume"],["codex.pre_first_byte_stall_auto_retry_flagged","harness.pre_first_byte_stall_auto_retry_flagged"],["codex.pre_first_byte_stall_retry_suppressed_cost_cap","harness.pre_first_byte_stall_retry_suppressed_cost_cap"],["codex.provider_outage_flagged_captured","harness.provider_outage_flagged_captured"],["codex.reasoning_loop_breaker_tripped","harness.reasoning_loop_breaker_tripped"],["codex.tool_fatal_captured","harness.tool_fatal_captured"],["codex.turn_completed","job.turn_completed"],["codex.turn_completed_with_protocol_failure","job.turn_completed_with_protocol_failure"],["codex.turn_completed_with_unsupported_tool_call_ignored","job.turn_completed_with_unsupported_tool_call_ignored"],["codex.turn_completed_without_assistant_output","job.turn_completed_without_assistant_output"],["codex.turn_demoted_late_upstream_error","job.turn_demoted_late_upstream_error"],["codex.turn_forward_failed","job.turn_forward_failed"],["codex.upstream_error_captured","harness.upstream_error_captured"],["codex.upstream_rejection_captured","harness.upstream_rejection_captured"],["codex.upstream_turn_error_captured","harness.upstream_turn_error_captured"],["kandan.chat_event","linzumi.chat_event"],["kandan.chat_event_abandoned","linzumi.chat_event_abandoned"],["kandan.chat_event_failed","linzumi.chat_event_failed"],["kandan.chat_event_failure_cleared","linzumi.chat_event_failure_cleared"],["kandan.child_thread_event_failed","linzumi.child_thread_event_failed"],["kandan.child_thread_event_skipped_missing_thread_binding","linzumi.child_thread_event_skipped_missing_thread_binding"],["kandan.child_thread_upsert_failed","linzumi.child_thread_upsert_failed"],["kandan.child_thread_upsert_skipped_missing_thread_binding","linzumi.child_thread_upsert_skipped_missing_thread_binding"],["kandan.claude_code_interrupt_state_push_failed","linzumi.claude_code_interrupt_state_push_failed"],["kandan.claude_code_stop_state_push_failed","linzumi.claude_code_stop_state_push_failed"],["kandan.claude_code_typing_heartbeat_failed","linzumi.claude_code_typing_heartbeat_failed"],["kandan.claude_code_typing_start_wait_timeout","linzumi.claude_code_typing_start_wait_timeout"],["kandan.claude_code_typing_stop_failed","linzumi.claude_code_typing_stop_failed"],["kandan.claude_code_user_input_abort_publish_failed","linzumi.claude_code_user_input_abort_publish_failed"],["kandan.claude_code_user_question_completed_publish_failed","linzumi.claude_code_user_question_completed_publish_failed"],["kandan.codex_command_output_forwarded","linzumi.codex_command_output_forwarded"],["kandan.codex_delta_forwarded","linzumi.codex_delta_forwarded"],["kandan.codex_file_change_forwarded","linzumi.codex_file_change_forwarded"],["kandan.codex_notification_push_failed","linzumi.codex_notification_push_failed"],["kandan.codex_output_forwarded","linzumi.codex_output_forwarded"],["kandan.codex_reasoning_delta_forwarded","linzumi.codex_reasoning_delta_forwarded"],["kandan.codex_web_search_progress_forwarded","linzumi.codex_web_search_progress_forwarded"],["kandan.connection_force_reconnect","linzumi.connection_force_reconnect"],["kandan.connection_force_reconnect_dispatched","linzumi.connection_force_reconnect_dispatched"],["kandan.connection_hard_reset","linzumi.connection_hard_reset"],["kandan.connection_hard_reset_exhausted","linzumi.connection_hard_reset_exhausted"],["kandan.connection_recovered","linzumi.connection_recovered"],["kandan.connection_stale","linzumi.connection_stale"],["kandan.connection_unrecoverable","linzumi.connection_unrecoverable"],["kandan.control","linzumi.control"],["kandan.control_ack_withheld_on_failure","linzumi.control_ack_withheld_on_failure"],["kandan.control_epoch_changed","linzumi.control_epoch_changed"],["kandan.control_handler_threw","linzumi.control_handler_threw"],["kandan.control_ignored","linzumi.control_ignored"],["kandan.control_response_push_failed","linzumi.control_response_push_failed"],["kandan.failed_seq_overflow","linzumi.failed_seq_overflow"],["kandan.forward_port_revoked_push_failed","linzumi.forward_port_revoked_push_failed"],["kandan.forward_response","linzumi.forward_response"],["kandan.forward_response_push_failed","linzumi.forward_response_push_failed"],["kandan.forward_tunnel_error","linzumi.forward_tunnel_error"],["kandan.forward_tunnel_open_failed","linzumi.forward_tunnel_open_failed"],["kandan.heartbeat_push_failed","linzumi.heartbeat_push_failed"],["kandan.local_editor_initial_status_failed","linzumi.local_editor_initial_status_failed"],["kandan.local_editor_status_push_failed","linzumi.local_editor_status_push_failed"],["kandan.message_duplicate_ignored","linzumi.message_duplicate_ignored"],["kandan.message_ignored","linzumi.message_ignored"],["kandan.message_queued","linzumi.message_queued"],["kandan.message_spawn_on_miss","linzumi.message_spawn_on_miss"],["kandan.message_spawn_on_miss_failed","linzumi.message_spawn_on_miss_failed"],["kandan.message_state_refresh_failed","linzumi.message_state_refresh_failed"],["kandan.optional_push_failed","linzumi.optional_push_failed"],["kandan.post_stop_queue_drain_failed","linzumi.post_stop_queue_drain_failed"],["kandan.queue_drain_blocked","linzumi.queue_drain_blocked"],["kandan.queue_drain_dead_worker_fail_publish_failed","linzumi.queue_drain_dead_worker_fail_publish_failed"],["kandan.queue_drain_dead_worker_rebuild","linzumi.queue_drain_dead_worker_rebuild"],["kandan.queue_drain_dead_worker_rebuild_exhausted","linzumi.queue_drain_dead_worker_rebuild_exhausted"],["kandan.queue_drain_dead_worker_rebuild_failed","linzumi.queue_drain_dead_worker_rebuild_failed"],["kandan.reconnect_handling_failed","linzumi.reconnect_handling_failed"],["kandan.reconnect_thread_context_fetch_failed","linzumi.reconnect_thread_context_fetch_failed"],["kandan.reconnect_thread_cwd_failed_state_push_failed","linzumi.reconnect_thread_cwd_failed_state_push_failed"],["kandan.reconnect_thread_failed","linzumi.reconnect_thread_failed"],["kandan.reconnect_thread_processing_state_push_failed","linzumi.reconnect_thread_processing_state_push_failed"],["kandan.reconnect_thread_queue_closed_state_push_failed","linzumi.reconnect_thread_queue_closed_state_push_failed"],["kandan.reconnect_thread_queue_failed_state_push_failed","linzumi.reconnect_thread_queue_failed_state_push_failed"],["kandan.reconnect_thread_queue_state_push_failed","linzumi.reconnect_thread_queue_state_push_failed"],["kandan.reconnect_thread_rehydrate_forced","linzumi.reconnect_thread_rehydrate_forced"],["kandan.reconnect_thread_rehydrated","linzumi.reconnect_thread_rehydrated"],["kandan.reconnect_thread_rehydrated_state_push_failed","linzumi.reconnect_thread_rehydrated_state_push_failed"],["kandan.reconnect_thread_rehydration_failed","linzumi.reconnect_thread_rehydration_failed"],["kandan.reconnect_thread_rehydration_ir_emitted","linzumi.reconnect_thread_rehydration_ir_emitted"],["kandan.reconnect_thread_rehydration_items_failed","linzumi.reconnect_thread_rehydration_items_failed"],["kandan.reconnect_thread_resume_failed","linzumi.reconnect_thread_resume_failed"],["kandan.reconnect_thread_seq_already_applied","linzumi.reconnect_thread_seq_already_applied"],["kandan.reconnect_thread_transcript_fetch_failed","linzumi.reconnect_thread_transcript_fetch_failed"],["kandan.reconnect_thread_unarchive_failed","linzumi.reconnect_thread_unarchive_failed"],["kandan.reconnect_thread_unarchive_resumed","linzumi.reconnect_thread_unarchive_resumed"],["kandan.reconnect_thread_unarchive_started","linzumi.reconnect_thread_unarchive_started"],["kandan.reconnect_thread_unavailable_state_push_failed","linzumi.reconnect_thread_unavailable_state_push_failed"],["kandan.reconnected","linzumi.reconnected"],["kandan.roster_seeded","linzumi.roster_seeded"],["kandan.session_app_server_lost_push_failed","linzumi.session_app_server_lost_push_failed"],["kandan.session_settings_publish_failed","linzumi.session_settings_publish_failed"],["kandan.start_instance_claude_code_attachment_failed_state_push_failed","linzumi.start_instance_claude_code_attachment_failed_state_push_failed"],["kandan.start_instance_codex_app_server_unavailable","linzumi.start_instance_codex_app_server_unavailable"],["kandan.start_instance_cwd_failed_state_push_failed","linzumi.start_instance_cwd_failed_state_push_failed"],["kandan.start_instance_cwd_rejected","linzumi.start_instance_cwd_rejected"],["kandan.start_instance_failed","linzumi.start_instance_failed"],["kandan.start_instance_processing_state_push_failed","linzumi.start_instance_processing_state_push_failed"],["kandan.start_instance_skipped_known_session","linzumi.start_instance_skipped_known_session"],["kandan.start_instance_stale_skipped","linzumi.start_instance_stale_skipped"],["kandan.start_instance_unavailable_state_push_failed","linzumi.start_instance_unavailable_state_push_failed"],["kandan.start_instance_wafer_state_push_failed","linzumi.start_instance_wafer_state_push_failed"],["kandan.start_turn_replay_skipped","linzumi.start_turn_replay_skipped"],["kandan.steer_duplicate_ignored","linzumi.steer_duplicate_ignored"],["kandan.steer_parked_as_own_turn","linzumi.steer_parked_as_own_turn"],["kandan.thread_bind_from_historical_reply_failed","linzumi.thread_bind_from_historical_reply_failed"],["kandan.thread_bound_from_historical_reply","linzumi.thread_bound_from_historical_reply"],["kandan.thread_sessions_reannounce_failed","linzumi.thread_sessions_reannounce_failed"],["kandan.thread_sessions_reannounced","linzumi.thread_sessions_reannounced"],["kandan.tui_input_mirrored","linzumi.tui_input_mirrored"],["kandan.typing_heartbeat_failed","linzumi.typing_heartbeat_failed"],["kandan.typing_stop_after_completion_failed","linzumi.typing_stop_after_completion_failed"]],tS=[["codexThreadId","harness_session_id"],["codex_thread_id","harness_session_id"],["kandanThreadId","thread_id"],["kandan_preview_ticket","linzumi_preview_ticket"],["kandan_thread_id","thread_id"],["linzumiThreadId","thread_id"],["linzumi_thread_id","thread_id"],["local_codex_runner","commander"],["runnerId","commander_id"],["runner_config","commander_config"],["runner_id","commander_id"]],Gl=[["commander","local_codex_runner"],["commander_config","runner_config"],["commander_id","runner_id"],["harness_session_id","codex_thread_id"],["linzumi_preview_ticket","kandan_preview_ticket"],["thread_id","kandan_thread_id"]],Ef=[["engine_boot_reconnect","harness_boot_reconnect"],["engine_for_runner_event_type","harness_for_commander_event_type"],["engine_rejected_steer","harness_rejected_steer"],["engine_unavailable","harness_unavailable"],["join_engine","join_harness"],["kandan-local-codex-runner","linzumi-commander"],["local_codex_runner","commander"],["original_engine","original_harness"],["resume_engine","resume_harness"]];function If(){let e=process.env.LINZUMI_NAMING_DUAL_EMIT;if(e===void 0)return!0;let t=e.trim().toLowerCase();return t!=="0"?t!=="false":!1}function Pf(e){let t={};return e.forEach(r=>{t[r[0]]=r[1]}),t}function SE(e){let t={};return e.forEach(r=>{t[r[1]]=r[0]}),t}var rS=Pf(tS),nS=Pf(Gl),bE=Pf(Ef),AE=SE(Ef);function TE(e){return e.endsWith("_canonical")?!0:e.endsWith("_legacy")}function iS(e,t){return t>=32?e:Array.isArray(e)?e.map(r=>iS(r,t+1|0)):e===null?e:typeof e==="object"?aS(e,t):e}function aS(e,t){let r=Object.keys(e),n={};return r.forEach(i=>{let a=e[i];if(a!==void 0){n[i]=iS(a,t+1|0);return}}),r.forEach(i=>{if(TE(i))return;let a=n[i];if(a===void 0)return;let o=rS[i];if(o!==void 0)n[o]=a;else{let f=nS[i];f!==void 0&&(n[f]!==void 0||(n[f]=a))}let s=n[i];if(s===void 0||typeof s!="string")return;let d=bE[s];if(d!==void 0){if(n[i+"_canonical"]!==void 0)return;n[i+"_canonical"]=d;return}let l=AE[s];if(!(l===void 0||n[i+"_legacy"]!==void 0)){n[i+"_legacy"]=l;return}}),n}function Il(e){return If()?aS(e,0):e}function oS(e){let t=e.slice();return e.forEach(r=>{let n=rS[r];n!==void 0&&!t.includes(n)&&t.push(n);let i=nS[r];if(i!==void 0&&!t.includes(i)){t.push(i);return}}),t}var po="<SENSITIVE_DATA>",vE=oS(["access_token","authorization","code","cookie","kandan_preview_ticket","refresh_token","token"]),kE=["--access-token","--api-key","--authorization","--cookie","--oauth-code","--password","--refresh-token","--secret","--token"],OE=new RegExp("^(authorization|cookie|set-cookie|password|login[_-]?url|turnCapability|topicWakeTurnCapability|topic_wake_turn_capability|x-linzumi-agent-turn|mcpAuthFileContents|LINZUMI_CLOUD_MCP_AUTH_JSON)$","i"),wE=new RegExp("(^|[_-])(access[_-]?token|api[_-]?key|auth[_-]?token|oauth[_-]?code|refresh[_-]?token|secret|token)$","i"),CE=new RegExp("\\beyJ[A-Za-z0-9_-]*\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\b","g");function xE(e){return e!==void 0?OE.test(e)?!0:wE.test(e):!1}function sS(e){let t={contents:!1};return Tc(e).forEach(r=>{if(vE.includes(r.toLowerCase())){e.set(r,po),t.contents=!0;return}}),t.contents}function EE(e){let t=ra(e,"?"),r=ra(e,"#");if(t===void 0||r!==void 0&&r<t)return e;let n=e.slice(0,t),i=r!==void 0?e.slice(t+1|0,r):e.slice(t+1|0),a=r!==void 0?e.slice(r):"",o=new URLSearchParams(i);return sS(o)?n+"?"+o.toString()+a:e}function GE(e){let t=mn(e);if(t===void 0)return EE(e);let r=Ge(t);return sS(r.searchParams),r.toString()}function ya(e){return GE(e).replace(CE,po)}function IE(e){let t=ra(e,"=");return t!==void 0?[e.slice(0,t),e.slice(t+1|0)]:[e,void 0]}function jf(e,t){if(xE(t))return po;if(Array.isArray(e))return t==="args"?PE(e):e.map(r=>jf(r,void 0));if(e===null)return e;switch(typeof e){case"string":return ya(e);case"object":return dS(e);default:return e}}function PE(e){let t={contents:!1};return e.map(r=>{if(typeof r=="string"){if(t.contents)return t.contents=!1,po;let n=IE(r),i=n[0];return kE.includes(i)?n[1]!==void 0?i+"="+po:(t.contents=!0,r):ya(r)}return t.contents=!1,jf(r,void 0)})}function dS(e){let t=e.name,r=typeof t=="string"?t.toLowerCase():void 0,n;if(r!==void 0)switch(r){case"authorization":case"cookie":case"set-cookie":case"x-linzumi-agent-turn":n=!0;break;default:n=!1}else n=!1;let i={};return Object.entries(e).forEach(a=>{let o=a[0];if(o!=="runner_console"){i[o]=n&&o==="value"?po:jf(a[1],o);return}}),i}var Pl=dS;import*as Gs from"node:fs";import*as lS from"node:os";import*as hn from"node:path";var Dq=100*1024*1024;function RE(e,t,r){if(za(e,"VITEST")===void 0)return!1;let i=hn.resolve(t,".linzumi"),a=hn.relative(i,hn.resolve(r)),o=a==="",s=a.startsWith(".."+hn.sep),d=hn.isAbsolute(a);return o?!0:s?!1:!d}function jE(e,t,r){let n=Il(r),i=Pl(n),a={};if(a.ts=e,a.event=t,If()){let o=xn(xf,d=>{if(d[0]===t)return d[1]}),s=xn(xf,d=>{if(d[1]===t)return d[0]});o!==void 0?a.event_canonical=o:s!==void 0&&(a.event_legacy=s)}return Sl(i,(o,s)=>{a[s]=o}),JSON.stringify(a)+`
|
|
16
16
|
`}function ME(e,t,r,n){return fr(Ht(Kr(hn.dirname(e)),i=>i.message),()=>{try{return Gs.appendFileSync(e,jE(t,r,n),"utf8"),{TAG:"Ok",_0:void 0}}catch(i){let a=_e(i);return{TAG:"Error",_0:ke(a).message}}})}function FE(e,t){let r=za(e,"LINZUMI_CLI_AUDIT_LOG");if(r===void 0)return hn.join(t,".linzumi","logs","command-events.jsonl");let n=r.trim();return n===""?hn.join(t,".linzumi","logs","command-events.jsonl"):n}function uS(e,t){let r=process.env,n=lS.homedir(),i=FE(r,n);return RE(r,n,i)?{TAG:"Error",_0:"test-mode log isolation violated: refusing to write "+i+" inside the real ~/.linzumi"}:ME(i,new Date().toISOString(),e,t)}function qE(e){if(typeof e!="object"||e===null||Array.isArray(e))return{TAG:"Error",_0:"compact_terminal_durability_ack_invalid"};let t=e.response;if(typeof t!="object"||t===null||Array.isArray(t))return{TAG:"Error",_0:"compact_terminal_durability_ack_invalid"};let r=t.compactTerminalDurability;if(typeof r!="string")return{TAG:"Error",_0:"compact_terminal_durability_ack_invalid"};switch(r){case"already_confirmed":return{TAG:"Ok",_0:"AlreadyConfirmed"};case"applied":return{TAG:"Ok",_0:"Applied"};case"evidence_staged":return{TAG:"Ok",_0:"EvidenceStaged"};default:return{TAG:"Error",_0:"compact_terminal_durability_ack_invalid"}}}async function cS(e,t,r){let n=qE(e);return n.TAG==="Ok"?await t(n._0)?{TAG:"Ok",_0:void 0}:(await r(),{TAG:"Error",_0:"compact_terminal_durability_owner_not_found"}):(await r(),{TAG:"Error",_0:n._0})}function fS(e,t,r,n,i){let a={instanceId:e,controlType:"compact_thread",requestId:t,threadId:r};if(i.TAG==="CompactThreadSettled"){let o=i._0;o.TAG==="Ok"?(a.ok=!0,a.providerSessionKey=n):(a.ok=!1,a.error=o._0)}else{let o=i._0;typeof o!="object"?a.ok=!0:(a.ok=!1,a.error=o._0),a.compactTerminalFallbackRequired=!0,a.providerSessionKey=n}return a}var DE=mg(e=>({joinRef:e.item(0,_s(T)),ref:e.item(1,_s(T)),topic:e.item(2,T),event:e.item(3,T),payload:e.item(4,jt)}));function mS(e){return nn(e,DE)}function qi(e){let t=Gr(e);return t!==void 0?I(jr(Ge(t)),"unknown error"):"unknown error"}function UE(e,t){let r=t!==void 0?t:(n,i)=>{console.error("linzumi: phoenix.audit_sink_failed event="+n+" message="+i)};return(n,i)=>{try{return e(n,i)}catch(a){let o=_e(a),s=qi(o).slice(0,240);try{return r(n,s)}catch(d){let l=_e(d),c=qi(l).slice(0,240);try{console.error("linzumi: phoenix.audit_failure_sink_failed event="+n+" message="+c);return}catch{return}}}}}function BE(e){let t=E(Gr(e),r=>T_(r));return t!==void 0?t:null}function lr(e){return e.TAG==="Transport"?e._0.message:e.message}function qf(e){if(e.TAG!=="Transport")return e.reply}function zE(e,t){return{TAG:"Transport",_0:{phase:"WaitForConnection",reason:"TimeoutReason",message:"phoenix push timed out after "+e.toString()+"ms waiting for connection: "+t}}}function WE(e,t){return{TAG:"Transport",_0:{phase:"Reply",reason:"TimeoutReason",message:"phoenix push timed out after "+e.toString()+"ms: "+t}}}function HE(e){return e!==void 0?e():!0}function SS(e){if(e.TAG!=="Transport")return!1;let t=e._0;return t.phase==="WaitForConnection"?!0:t.reason==="TopicLost"}function bS(e){return e.TAG==="Transport"}function pS(e,t,r){return e==="phx_join"?r:t}var KE="base64url.bearer.phx.";function JE(e){let t;t=typeof e=="object"&&e!==null&&!Array.isArray(e)?Pl(e):e;let r=JSON.stringify(t);return r.length<=400?r:r.slice(0,400)+"\u2026"}var VE=new RegExp("/$");function QE(e){let t=mn(e);if(t===void 0)return{TAG:"Error",_0:"Invalid URL"};let r=Ge(t);switch(r.protocol){case"http:":r.protocol="ws:";break;case"https:":r.protocol="wss:";break}return r.pathname=r.pathname.replace(VE,"")+"/socket/websocket",r.searchParams.set("vsn","2.0.0"),{TAG:"Ok",_0:r.toString()}}function ZE(e){return[KE+ch(e),"phoenix"]}var AS="[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?<![\\uD800-\\uDBFF])[\\uDC00-\\uDFFF]",Ps=new RegExp(AS),Rs=new RegExp(AS,"g"),js="\uFFFD";function Mf(e){if(Array.isArray(e))return e.some(Mf);if(e===null)return!1;switch(typeof e){case"string":return Ps.test(e);case"object":return Object.entries(e).some(t=>Ps.test(t[0])?!0:Mf(t[1]));default:return!1}}function Ff(e){if(Array.isArray(e))return e.map(Ff);if(e===null)return e;switch(typeof e){case"string":return e.replace(Rs,js);case"object":return Object.fromEntries(Object.entries(e).map(t=>[t[0].replace(Rs,js),Ff(t[1])]));default:return e}}function YE(e){return Object.entries(e).some(t=>Ps.test(t[0])?!0:Mf(t[1]))}function XE(e){return Object.fromEntries(Object.entries(e).map(t=>[t[0].replace(Rs,js),Ff(t[1])]))}function eG(e,t,r){return Ps.test(e)||Ps.test(t)?!0:YE(r)}function tG(e,t,r){return{frameTopic:e.replace(Rs,js),frameEvent:t.replace(Rs,js),framePayload:XE(r)}}function _S(e){let t=r=>r!==void 0?r:null;return JSON.stringify([t(e.joinRef),t(e.ref),e.topic,e.event,e.payload])}function hS(e){let t;try{t={TAG:"Ok",_0:JSON.parse(e)}}catch(n){let i=_e(n);t={TAG:"Error",_0:qi(i)}}if(t.TAG!=="Ok")return{TAG:"Error",_0:t._0};let r=mS(t._0);return r.TAG==="Ok"?{TAG:"Ok",_0:r._0}:{TAG:"Error",_0:"invalid Phoenix frame"}}function Nf(e){if(typeof e=="object"&&e!==null&&!Array.isArray(e))return e}function Ms(e,t){return E(e,r=>{let n=r[t];if(typeof n=="object"&&n!==null&&!Array.isArray(n))return n})}function Sa(e,t){return E(e,r=>{let n=r[t];if(typeof n=="string")return n})}function Is(e){if(typeof e!="object"||e===null||Array.isArray(e))return;let t=e.status,r=e.response;if(t==="ok"&&typeof r=="object"&&r!==null&&!Array.isArray(r))return r}function rG(e){if(typeof e!="object"||e===null||Array.isArray(e))return;let t=e.response;if(t===void 0||typeof t!="object"||t===null||Array.isArray(t))return;let r=t.server_handler_us;if(r!==void 0&&typeof r=="number"&&r>=0&&r<=1e9&&isFinite(r))return r}function nG(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?Zr(e.status,"ok"):!1}function iG(e){if(typeof e!="object"||e===null||Array.isArray(e))return!1;let t=e.status,r=e.response;return t==="error"&&typeof r=="object"&&r!==null&&!Array.isArray(r)?de(r.reason,"unmatched topic"):!1}function aG(e){return typeof e!="object"||e===null||Array.isArray(e)?!1:typeof e.type=="string"}function Rl(e,t){let r=e[t];if(r!==void 0&&typeof r=="number"&&At(r))return r}function gS(e){if(typeof e=="object"&&e!==null&&!Array.isArray(e))return Rl(e,"control_seq")}function oG(e){if(typeof e!="object"||e===null||Array.isArray(e))return;let t=e.event,r=e.payload;if(t===void 0||typeof t!="string"||r===void 0||typeof r!="object"||r===null||Array.isArray(r))return;let n=e.control_seq;return n!==void 0?typeof n=="number"&&At(n)?{event:t,payload:r,controlSeq:n}:void 0:{event:t,payload:r,controlSeq:void 0}}var sG="npm install -g @linzumi/cli@latest",dG=new RegExp("^npm install -g @linzumi\\/cli(@[0-9A-Za-z^~.-]{1,32})?$"),lG=new RegExp("^\\d+\\.\\d+\\.\\d+(?:[-+][0-9A-Za-z.-]{1,32})?$");function uG(e){return e!==void 0&&typeof e=="string"&&e.length<=100&&dG.test(e)?e:sG}function cG(e){return e!==void 0&&typeof e=="string"&&e.length<=64&&lG.test(e)?"@linzumi/cli "+e+" or newer":"a newer @linzumi/cli"}function $f(e){let t=Nf(e),r=Ms(t,"response"),n=Sa(r,"error");if(n!==void 0)return n;let i=Sa(r,"reason");if(i!==void 0)return i;let a=Sa(r,"message");if(a!==void 0)return a;let o=Sa(t,"error");return t!==void 0?o!==void 0?o:"unknown":"invalid reply"}function yS(e){let t=Ms(Nf(e),"response");if(t===void 0||!de(t.error,"commander_version_too_old"))return $f(e);let r=cG(t.min_version),n=uG(t.upgrade_command);return"commander_version_too_old: this Linzumi server requires "+r+". Update with: "+n}function fG(e){let t=e;if(Sa(t,"agent_provider")==="claude-code")return"claude-code-sdk";let n=Ms(t,"metadata"),i=Ms(n,"local_codex_runner");return Sa(i,"agent_provider")==="claude-code"?"claude-code-sdk":"codex-app-server"}function mG(e,t){let r;try{r=e.initial(t)}catch{r=void 0}if(r!==void 0&&At(r)&&r>=0)return r}function pG(e,t){if(e===void 0)return;let r;try{r=e.current(t)}catch{r=void 0}if(r!==void 0&&r!=="")return r}async function TS(e,t,r,n){let i=n!==void 0?n:{},a;try{a=JSON.stringify({})}catch{a=void 0}let o;if(a!==void 0){let W;try{W=JSON.parse(a)}catch{W=void 0}o=W!==void 0?{TAG:"Ok",_0:W}:{TAG:"Error",_0:{TAG:"Failed",message:"phoenix heartbeat payload parsing failed"}}}else o={TAG:"Error",_0:{TAG:"Failed",message:"phoenix heartbeat payload serialization failed"}};if(o.TAG!=="Ok")return o;let s=o._0,d=r!==void 0?r:Tl,l;l=t.TAG==="Token"?t._0:void 0;let c={contents:l},f=()=>{if(t.TAG==="Token")return{TAG:"Ok",_0:t._0};let W;try{W=t._0()}catch{W=void 0}if(W!==void 0&&W.trim()!=="")return c.contents=W,{TAG:"Ok",_0:W};let pe=c.contents;return pe!==void 0?{TAG:"Ok",_0:pe}:{TAG:"Error",_0:{TAG:"Failed",message:"phoenix token provider returned no usable token"}}},_=i.onOperatorNotice,m=_!==void 0?_:W=>{console.error(W)},h=i.auditEvent,p=h!==void 0?UE(h,i.onAuditFailure):(W,pe)=>{},u=i.onPushRecorded,g=u!==void 0?u:W=>{},y=I(i.pushTimeoutMs,3e4),b=i.joinTimeoutMs,S=i.pushTimeoutMs,A=b!==void 0?b:S!==void 0?y:125e3,w=i.controlCursorStore,R=i.controlEpochStore,P=I(i.nowMs,()=>Date.now()),C=I(i.heartbeatScheduler,(W,pe)=>{let me=setInterval(W,pe);return()=>{clearInterval(me)}}),G={},D={},k={},q={},j={},x={},v={},L={},z=new Set,K={contents:1},ne=[],J=[],Y=[],ie=[],Q=[],le=[],$={nextRef:1,websocket:void 0,closed:!1,connected:!1,hasEverConnected:!1,connectionGeneration:0,ready:Promise.resolve({TAG:"Ok",_0:void 0}),settleReady:void 0,reconnectTimer:void 0,reconnectAttempts:0,backoffResetTimer:void 0,cancelHeartbeat:void 0,connectedAt:void 0,pendingHeartbeats:[],lastHeartbeatAckAt:void 0,lastHeartbeatLatencyMs:void 0},oe=W=>{let pe=Object.entries(G);pe.forEach(me=>Pt(G,me[0])),pe.forEach(me=>{let ge=me[1];clearTimeout(ge.timer),ge.settle({TAG:"Error",_0:W})})},Ae=()=>{if($.settleReady!==void 0)return;let pe={contents:void 0};$.ready=new Promise((me,ge)=>{pe.contents=me}),$.settleReady=pe.contents},Pe=()=>{let W=$.settleReady;W!==void 0&&W({TAG:"Ok",_0:void 0}),$.settleReady=void 0},$e=W=>{let pe=$.settleReady;pe!==void 0&&pe({TAG:"Error",_0:W}),$.settleReady=void 0},ze=()=>{let W=$.cancelHeartbeat;if(W!==void 0){W(),$.cancelHeartbeat=void 0;return}},tt=()=>{let W=$.backoffResetTimer;if(W!==void 0){clearTimeout(Ge(W)),$.backoffResetTimer=void 0;return}},St=W=>{$.closed=!0;let pe=$.reconnectTimer;pe!==void 0&&(clearTimeout(Ge(pe)),$.reconnectTimer=void 0),ze(),tt();let me=$.websocket;me!==void 0&&me.close(),$e(W),oe({TAG:"Transport",_0:{phase:"Reply",reason:"ClientClosed",message:"phoenix client closed"}})},Ie=W=>I(L[W],0),qe=W=>{Pt(q,W),Pt(j,W),Pt(x,W),Pt(v,W),L[W]=Ie(W)+1|0},Me=(W,pe)=>{let me=q[W];if(me!==void 0){if(pe===me+1){let ye=me+1,Ne=j[W];if(Ne!==void 0)for(;Ne.has(ye+1);)ye=ye+1,Ne.delete(ye);q[W]=ye;return}let ge=j[W],xe;if(ge!==void 0)xe=ge;else{let ye=new Set;j[W]=ye,xe=ye}xe.add(pe);return}q[W]=pe},gt=(W,pe)=>{let me=gS(pe);if(me===void 0)return!0;let ge=q[W],xe=ge!==void 0?me<=ge:!1,ye=j[W],Ne=ye!==void 0?ye.has(me):!1;return xe||Ne?!1:(Me(W,me),!0)},N=(W,pe)=>{if(w!==void 0)try{return w.onAdvance(W,pe)}catch{return}},F=(W,pe)=>{if(!W.startsWith("local_runner:"))return;let me=Rl(pe,"control_high_water");if(me===void 0)return;let ge=q[W];if(ge!==void 0&&me<ge){qe(W);let xe=0;if(w===void 0)return;let ye=w.reset;if(ye===void 0)return;try{return ye(W,xe)}catch{return}}},X=(W,pe)=>{let me=W.startsWith("local_runner:");if(R===void 0||!me)return!1;let ge=pe.control_epoch;if(ge===void 0||typeof ge!="string"||ge==="")return!1;let xe;try{xe=R.adopt(W,ge)}catch{xe=!1}return xe&&(qe(W),le.forEach(ye=>{try{return ye(W)}catch{return}})),xe},re=W=>{let pe=q[W];if(pe!==void 0)return pe;if(w===void 0)return;let me=mG(w,W);return me!==void 0?(q[W]=me,me):0},se=new Set,Oe=(W,pe,me,ge)=>{try{let xe=!1;if(W.startsWith("local_runner:")&&pe==="control"&&aG(ge)){let ye;if(gt(W,ge)){let Ne=gS(ge);if(Ne!==void 0){let Tt=x[W],Nt;if(Tt!==void 0)Nt=Tt;else{let Qt=new Set;x[W]=Qt,Nt=Qt}Nt.add(Ne)}let mt=Ie(W),_t=Ne!==void 0?()=>{if(mt!==Ie(W))return;let Tt=x[W];Tt!==void 0&&Tt.delete(Ne);let Nt=v[W];Nt!==void 0&&Ne<=Nt||(v[W]=Ne);let Qt=E(Tt,B=>Ve(B.values().toArray(),void 0,(te,V)=>te!==void 0&&te<=V?te:V)),Vt=Qt!==void 0?Qt-1:v[W];if(Vt===void 0)return;let Dt=q[W],wr=Dt!==void 0&&Dt<Vt?Dt:Vt;N(W,wr)}:()=>{};ne.forEach(Tt=>Tt(ge,_t)),ye=!1}else ye=!0;xe=ye}if(!xe&&me===void 0&&pe!=="phx_reply"&&pe!=="phx_error"){J.forEach(ye=>ye(W,pe,ge));return}else return}catch(xe){let ye=_e(xe),Ne=qi(ye);try{p("phoenix.pushed_frame_dispatch_failed",Object.fromEntries([["topic",W],["frame",pe],["message",Ne],["stack",BE(ye)],["payloadSnippet",JE(ge)],["dropped",!0]]))}catch{}if(se.has(pe))return;se.add(pe);try{return m('linzumi: dropped a pushed "'+pe+'" frame on '+W+" whose dispatch failed ("+Ne+"); see the CLI audit log for the payload snippet.")}catch{return}}},we=(W,pe)=>{let me=q[W],ge={contents:me!==void 0&&me>=pe?me:pe},xe=j[W];if(xe!==void 0)for(xe.values().toArray().forEach(ye=>{if(ye<=ge.contents){xe.delete(ye);return}});xe.has(ge.contents+1);)ge.contents=ge.contents+1,xe.delete(ge.contents);q[W]=ge.contents},et=W=>{let pe=q[W];if(pe===void 0)return;let me=x[W],ge=me!==void 0&&me.size>0?ee(Ve(me.values().toArray(),void 0,(xe,ye)=>xe!==void 0&&xe<=ye?xe:ye),xe=>xe-1):void 0;N(W,ge!==void 0&&ge<pe?ge:pe)},lt=(W,pe)=>{if(W.startsWith("chat:")){let me=pe.events;return me===void 0?{TAG:"Ok",_0:void 0}:me===null?{TAG:"Ok",_0:void 0}:Array.isArray(me)?(me.forEach(ge=>{J.forEach(xe=>xe(W,"event",ge))}),{TAG:"Ok",_0:void 0}):{TAG:"Error",_0:"phoenix rejoin returned invalid events for "+W}}else{if(!W.startsWith("local_runner:"))return{TAG:"Ok",_0:void 0};let me=pe.controls;if(me===void 0)return{TAG:"Ok",_0:void 0};if(me===null)return{TAG:"Ok",_0:void 0};if(!Array.isArray(me))return{TAG:"Error",_0:"phoenix rejoin returned invalid controls for "+W};me.forEach(xe=>{let ye=oG(xe);if(ye===void 0)return;let Ne={};Object.entries(ye.payload).forEach(_t=>{Ne[_t[0]]=_t[1]}),Ne.replayed=!0;let mt=ye.controlSeq;mt!==void 0&&(Ne.control_seq=mt),Oe(W,ye.event,void 0,Ne)});let ge=Rl(pe,"controls_advance_to");if(ge!==void 0){let xe=pe.control_high_water;typeof xe=="number"&&ge>xe||we(W,ge)}return et(W),{TAG:"Ok",_0:void 0}}},ot=(W,pe,me,ge,xe)=>{let ye=$.websocket;if(ye===void 0)return Promise.resolve({TAG:"Error",_0:{TAG:"Transport",_0:{phase:"WaitForConnection",reason:"SocketNotOpen",message:"phoenix websocket is not open"}}});if(ye.readyState()!==ga)return Promise.resolve({TAG:"Error",_0:{TAG:"Transport",_0:{phase:"WaitForConnection",reason:"SocketNotOpen",message:"phoenix websocket is not open"}}});let Ne=$.nextRef.toString();$.nextRef=$.nextRef+1|0,pe==="phx_join"&&(k[W]=Ne);let mt=pe==="phx_join"?Ne:k[W],_t=Il(me),Tt;if(eG(W,pe,_t)){let Ee=tG(W,pe,_t);p("phoenix.outbound_frame_lone_surrogate_sanitized",Object.fromEntries([["purpose","phoenix.send_totality"],["topic",Ee.frameTopic],["frame_event",Ee.frameEvent]])),Tt=Ee}else Tt={frameTopic:W,frameEvent:pe,framePayload:_t};let Nt=Tt.framePayload,Qt=Ne,Vt=Tt.frameTopic,Dt=Tt.frameEvent,te=_S({joinRef:mt,ref:Qt,topic:Vt,event:Dt,payload:Nt}),V=Math.max(0,Math.ceil(ge))|0;return new Promise((Ee,rt)=>{let je=Nt.push_correlation_id,Ke=typeof je=="string"&&je.length<=64?je:void 0,We={contents:void 0},Xe={contents:!1},dt=nt=>{if(Xe.contents)return;Xe.contents=!0;let Gt=We.contents;if(Ke!==void 0&&Gt!==void 0){let Bt;Bt=nt.TAG==="Ok"?"acknowledged":"failed";let dr={push_correlation_id:Ke,push_event:pe,socket_send_to_reply_ms:Math.max(0,performance.now()-Gt),outcome:Bt},Pr;Pr=nt.TAG==="Ok"?nt._0:qf(nt._0),xt(E(Pr,rG),Rr=>{dr.server_handler_us=Rr});try{p("phoenix.push_timing",dr)}catch{}}Ee(nt)},Rt=setTimeout(()=>{if(G[Ne]!==void 0)return Pt(G,Ne),dt({TAG:"Error",_0:WE(V,pe)})},V);G[Ne]={event:pe,timer:Rt,settle:dt};try{g({provider:fG(Nt),rawFrameText:te,topic:W,event:pe,payload:Nt})}catch{}We.contents=performance.now();let Be;try{Be={TAG:"Ok",_0:ye.send(te)}}catch(nt){let Gt=_e(nt);Be={TAG:"Error",_0:qi(Gt)}}if(Be.TAG==="Ok")return xe!==void 0?xe():void 0;Pt(G,Ne),clearTimeout(Rt),dt({TAG:"Error",_0:{TAG:"Transport",_0:{phase:"Reply",reason:"SocketClosedReason",message:Be._0}}})})},st=(W,pe)=>{let me={};if(pe.forEach(ge=>{Object.entries(ge).forEach(xe=>{let ye=xe[1],Ne=xe[0],mt=Ne==="last_seq",_t=me[Ne];if(mt&&typeof _t=="number"&&typeof ye=="number"){me[Ne]=ye<_t?ye:_t;return}if(_t===void 0){me[Ne]=ye;return}})}),W.startsWith("local_runner:")){let ge=re(W);ge!==void 0&&(me.last_control_seq=ge);let xe=pG(R,W);xe!==void 0&&(me.last_control_epoch=xe)}return me},M=W=>Object.entries(W).map(pe=>pe[1].payload()),H=async W=>{let pe=0,me=0,ge=!0;for(;ge;){let xe=D[W];if(xe!==void 0){let ye=re(W),Ne=await ot(W,"phx_join",st(W,M(xe)),A,void 0);if(pe=pe+1|0,Ne.TAG==="Ok"){let mt=Is(Ne._0);if(mt!==void 0){let _t=mt.controls,Tt=Array.isArray(_t)?_t.length:0;me=me+Tt|0;let Nt=de(mt.controls_truncated,!0),Qt=re(W),Vt;if(Nt){let Dt=Rl(mt,"control_high_water");Vt=Dt!==void 0&&Qt!==void 0?Dt-Qt>0?Dt-Qt:0:void 0}else Vt=0;if(p("phoenix.control_backlog_fetch_progress",Object.fromEntries([["topic",W],["fetches",pe],["fetched",me],["remaining_estimate",Vt!==void 0?Vt:null],["truncated",Nt]])),Nt)if(de(Qt,ye)){let Dt=Qt!==void 0?Qt.toString():"undefined";m("phoenix.control_backlog_fetch_stalled topic="+W+" fetches="+pe.toString()+" fetched="+me.toString()+" cursor="+Dt+"; a truncated reply made no cursor progress - stopping this fetch loop (a server paging bug; the next reconnect resumes from the watermark)"),ge=!1}else{if(pe%20===0){let wr=Vt!==void 0?Vt.toString():"unknown";m("phoenix.control_backlog_cap_exceeded topic="+W+" fetches="+pe.toString()+" fetched="+me.toString()+" remaining_estimate="+wr+"; continuing the paginated backlog fetch (a healthy connection never reconnects, so nothing is deferred)")}await new Promise((wr,B)=>{setImmediate(()=>wr())})}else ge=!1}else ge=!1}else ge=!1}else ge=!1}},Z=W=>{if(!z.has(W)){z.add(W),tr(H(W).then(()=>{z.delete(W)}),pe=>(z.delete(W),Promise.resolve()));return}},ae=async(W,pe)=>W.startsWith("local_runner:")?await Ve(Y,Promise.resolve({TAG:"Ok",_0:void 0}),(me,ge)=>me.then(async xe=>xe.TAG==="Ok"?await tr(ge(W,pe),ye=>Promise.resolve({TAG:"Error",_0:qi(ye)})):{TAG:"Error",_0:xe._0})):{TAG:"Ok",_0:void 0},ce=async(W,pe)=>{let me=!0,ge=W.payload,xe=W.event,ye=W.topic,Ne=W.ref;if(Ne!==void 0&&ye==="phoenix"&&xe==="phx_reply"){let _t=$.pendingHeartbeats.find(Tt=>Tt.heartbeatRef===Ne?Tt.generation===$.connectionGeneration:!1);if(_t!==void 0){let Tt=_t.generation,Nt=P(),Qt=Math.max(0,Nt-_t.sentAt);$.pendingHeartbeats=$.pendingHeartbeats.filter(Vt=>Vt.heartbeatRef!==Ne?!0:Vt.generation!==Tt),$.lastHeartbeatAckAt=Nt,$.lastHeartbeatLatencyMs=Qt,p("phoenix.heartbeat_acknowledged",Object.fromEntries([["connection_generation",Tt],["ref",Ne],["latency_ms",Qt]]))}}if(Ne!==void 0&&(xe==="phx_reply"||xe==="phx_error")){let _t=G[Ne];if(_t!==void 0){Pt(G,Ne),clearTimeout(_t.timer);let Tt=xe==="phx_error",Nt=iG(ge),Qt=nG(ge)&&_t.event!=="phx_join";if(Tt)_t.settle({TAG:"Error",_0:{TAG:"Failed",message:"phoenix push failed"}});else if(Nt){let Vt={TAG:"Transport",_0:{phase:"Reply",reason:"TopicLost",message:"phoenix topic authority lost"}};_t.settle({TAG:"Error",_0:Vt}),pe()}else if(Qt)_t.settle({TAG:"Error",_0:{TAG:"Failed",message:"phoenix push failed: "+$f(ge),reply:ge}});else{let Vt=D[ye],Dt=Is(ge),wr;if(Vt!==void 0&&Dt!==void 0&&_t.event==="phx_join"){let B=Ve(Object.values(Vt),{TAG:"Ok",_0:void 0},(te,V)=>fr(te,()=>{let Ee=V.onJoinReply;return Ee!==void 0?Ee(Dt):{TAG:"Ok",_0:void 0}}));if(B.TAG==="Ok"){let te=await ae(ye,Dt);if(te.TAG==="Ok"){let V=X(ye,Dt);F(ye,Dt);let Ee=V?{TAG:"Ok",_0:void 0}:lt(ye,Dt);Ee.TAG==="Ok"?(ye.startsWith("local_runner:")&&(de(Dt.controls_truncated,!0)||V)&&Z(ye),wr=!1):(_t.settle({TAG:"Error",_0:{TAG:"Failed",message:Ee._0}}),me=!1,wr=!0)}else _t.settle({TAG:"Error",_0:{TAG:"Failed",message:te._0}}),me=!1,wr=!0}else _t.settle({TAG:"Error",_0:{TAG:"Failed",message:B._0}}),me=!1,wr=!0}else wr=!1;wr||_t.settle({TAG:"Ok",_0:ge})}}}return Oe(ye,xe,Ne,ge),me},ve=async(W,pe)=>{let me=hS(I(W.data,"undefined"));return me.TAG==="Ok"?await ce(me._0,pe):(p("phoenix.frame_decode_failed",Object.fromEntries([["message",me._0],["dropped",!0]])),!0)},Ce={},ue=async W=>{Object.entries(Ce).forEach(ye=>Pt(Ce,ye[0]));let pe=Object.entries(D),me,ge=0;for(;me===void 0&&ge<pe.length;){let ye=pe[ge];if(ye!==void 0){let Ne=ye[0],mt=await ot(Ne,"phx_join",st(Ne,M(ye[1])),A,void 0);if(mt.TAG==="Ok"){let _t=mt._0,Tt=Is(_t);if(Tt!==void 0)Ce[Ne]=Tt;else{let Nt=yS(_t),Qt=E(Ms(Nf(_t),"response"),Dt=>Sa(Dt,"error")),Vt=0;Qt==="commander_version_too_old"?(W.contents={message:Nt},me={TAG:"Failed",message:Nt}):Vt=1,Vt===1&&(me={TAG:"Failed",message:"phoenix rejoin failed for "+Ne})}}else me=mt._0}ge=ge+1|0}let xe=me;return xe!==void 0?{TAG:"Error",_0:xe}:{TAG:"Ok",_0:void 0}},Se={contents:()=>Promise.resolve()},fe=()=>{let W=$.closed,pe=$.reconnectTimer;if(W||pe!==void 0)return;Ae();let me=Math.min(1e4,250*2**$.reconnectAttempts);$.reconnectAttempts=$.reconnectAttempts+1|0,$.reconnectTimer=Re(setTimeout(()=>{$.reconnectTimer=void 0,Se.contents()},Math.random()*me|0))},Te=(W,pe,me,ge)=>{let xe=ge!==void 0?ge:"reconnect_failure",ye=$.connected,Ne=$.connectedAt;$.connectedAt=void 0,$.connected=!1;let mt=$.websocket;if($.websocket=void 0,ze(),tt(),mt!==void 0&&(mt.readyState()===vy||mt.readyState()===ga))try{mt.close()}catch{}oe(W),fe();let _t=$.hasEverConnected,Tt;if(ye)Tt=!0;else if(_t)switch(xe){case"hard_reset":case"reconnect_failure":Tt=!0;break;default:Tt=!1}else Tt=!1;if(!Tt)return;let Nt;Nt=me!==void 0&&me!==""?me:void 0;let Qt=ee(Ne,V=>Math.max(0,P()-V)),Vt=$.reconnectAttempts,Dt=$.connectionGeneration,wr={closeCode:pe,closeReason:Nt,previousSessionDurationMs:Qt,reconnectCount:Vt,connectionGeneration:Dt,trigger:xe},B=$.pendingHeartbeats[$.pendingHeartbeats.length-1|0],te=B!==void 0?[["last_heartbeat_ref",B.heartbeatRef],["last_heartbeat_generation",B.generation],["heartbeat_unacknowledged_ms",Math.max(0,P()-B.sentAt)]]:[["last_heartbeat_ref",null],["last_heartbeat_generation",null],["heartbeat_unacknowledged_ms",null]];p("phoenix.transport_disconnected",Object.fromEntries([["trigger",xe],["connection_generation",$.connectionGeneration],["close_code",I(ee(pe,V=>V),null)],["close_reason",I(ee(Nt,V=>V),null)],["session_duration_ms",I(ee(Qt,V=>V),null)],["reconnect_count",Vt],["last_heartbeat_ack_at_ms",I(ee($.lastHeartbeatAckAt,V=>V),null)],["last_heartbeat_latency_ms",I(ee($.lastHeartbeatLatencyMs,V=>V),null)]].concat(te))),ye&&Q.forEach(V=>{try{return V(wr)}catch{return}}),$.pendingHeartbeats=[],$.lastHeartbeatAckAt=void 0,$.lastHeartbeatLatencyMs=void 0},he=()=>{Te({TAG:"Transport",_0:{phase:"Reply",reason:"TopicLost",message:"phoenix topic authority lost"}},void 0,"unmatched_topic","topic_authority_lost");let W=$.reconnectTimer;W!==void 0&&(clearTimeout(Ge(W)),$.reconnectTimer=void 0),Se.contents()},Ue=()=>{ze(),$.cancelHeartbeat=C(()=>{let W=$.websocket;if(W===void 0||W.readyState()!==ga)return;let pe=$.pendingHeartbeats.length-1|0,me=$.pendingHeartbeats[pe];me!==void 0&&!me.overdueReported&&(p("phoenix.heartbeat_overdue",Object.fromEntries([["connection_generation",me.generation],["ref",me.heartbeatRef],["elapsed_ms",Math.max(0,P()-me.sentAt)]])),$.pendingHeartbeats=$.pendingHeartbeats.map((mt,_t)=>_t===pe?{heartbeatRef:mt.heartbeatRef,sentAt:mt.sentAt,generation:mt.generation,overdueReported:!0}:mt));let ge=$.nextRef.toString();$.nextRef=$.nextRef+1|0;let ye={joinRef:void 0,ref:ge,topic:"phoenix",event:"heartbeat",payload:s},Ne=P();try{W.send(_S(ye));let mt=$.pendingHeartbeats.length>=8?$.pendingHeartbeats.slice($.pendingHeartbeats.length-7|0):$.pendingHeartbeats;return $.pendingHeartbeats=mt.concat([{heartbeatRef:ge,sentAt:Ne,generation:$.connectionGeneration,overdueReported:!1}]),p("phoenix.heartbeat_sent",Object.fromEntries([["connection_generation",$.connectionGeneration],["ref",ge]]))}catch{return}},3e4)},Ze=()=>{tt();let W=setTimeout(()=>{if($.backoffResetTimer=void 0,$.connected){$.reconnectAttempts=0;return}},3e4);W.unref(),$.backoffResetTimer=Re(W)},ft=(W,pe)=>new Promise((me,ge)=>{let xe={contents:void 0},ye=Ne=>{let mt=xe.contents;mt!==void 0&&(clearTimeout(Ge(mt)),xe.contents=void 0),me(Ne)};W.on("SocketOpen",Ne=>ye({TAG:"Ok",_0:void 0})),W.on("SocketError",Ne=>ye({TAG:"Error",_0:"websocket open failed"})),W.on("SocketClose",Ne=>ye({TAG:"Error",_0:"websocket closed before open"})),xe.contents=Re(setTimeout(()=>{xe.contents=void 0,ye({TAG:"Error",_0:"websocket open timed out after "+pe.toString()+"ms"})},pe))}),bt=async()=>{if($.closed)return;let W=f(),pe=QE(e),me;if(W.TAG==="Ok")if(pe.TAG==="Ok"){let ye;try{ye={TAG:"Ok",_0:d(pe._0,ZE(W._0))}}catch(Ne){let mt=_e(Ne);ye={TAG:"Error",_0:{TAG:"Failed",message:qi(mt)}}}me=ye.TAG==="Ok"?{TAG:"Ok",_0:ye._0}:{TAG:"Error",_0:ye._0}}else me={TAG:"Error",_0:{TAG:"Failed",message:pe._0}};else me={TAG:"Error",_0:W._0};if(me.TAG==="Ok"){let ye=me._0,Ne={contents:void 0};$.websocket=ye;let mt={contents:void 0},_t={contents:0},Tt=Ke=>{_t.contents=_t.contents+1|0;let We=_t.contents;mt.contents=Ke,Ke.then(Xe=>(_t.contents===We&&(mt.contents=void 0),Xe))},Nt=Ke=>tr(ve(Ke,he),We=>{let Xe=qi(We);p("phoenix.message_dispatch_failed",Object.fromEntries([["message",Xe],["reconnecting",!0]]));let dt=$.websocket;return dt!==void 0&&dt===ye&&Te({TAG:"Transport",_0:{phase:"Reply",reason:"SocketClosedReason",message:"phoenix websocket reconnect failed"}},void 0,void 0,"message_dispatch_failure"),Promise.resolve(!1)});ye.on("SocketMessage",Ke=>{let We=hS(I(Ke.data,"undefined")),Xe;if(We.TAG==="Ok"){let Rt=We._0,Be=Rt.ref;if(Be!==void 0){let nt=Rt.topic;if(Rt.event==="phx_reply"){let Gt=G[Be];Xe=Gt!==void 0?Gt.event==="phx_join"&&nt in D&&Is(Rt.payload)!==void 0&&nt.startsWith("local_runner:")&&Y.length!==0:!1}else Xe=!1}else Xe=!1}else Xe=!1;let dt=mt.contents;if(dt!==void 0)return Tt(dt.then(async Rt=>{let Be=$.websocket;return Rt&&Be!==void 0&&Be===ye?await Nt(Ke):!1}));if(Xe)return Tt(Nt(Ke));Nt(Ke)}),ye.on("SocketClose",Ke=>{let We=$.websocket;if(We!==void 0&&We===ye)return Te({TAG:"Transport",_0:{phase:"Reply",reason:"SocketClosedReason",message:"phoenix websocket closed"}},Ke.code,Ke.reason,"socket_close")}),ye.on("SocketError",Ke=>{let We=$.websocket;if(We!==void 0&&We===ye)return Te({TAG:"Transport",_0:{phase:"Reply",reason:"SocketClosedReason",message:"phoenix websocket closed"}},void 0,void 0,"socket_error")});let Qt=await ft(ye,y),Vt=()=>{if($.closed)return!0;let Ke=$.websocket;return Ke!==void 0?Ke!==ye:!1},Dt;if(Qt.TAG==="Ok")if(Vt())Dt={TAG:"Ok",_0:!1};else{$.connectionGeneration=$.connectionGeneration+1|0;let Ke=await ue(Ne);Dt=Ke.TAG==="Ok"?Vt()?{TAG:"Ok",_0:!1}:{TAG:"Ok",_0:!0}:{TAG:"Error",_0:Ke._0}}else Dt={TAG:"Error",_0:{TAG:"Failed",message:Qt._0}};if(Dt.TAG==="Ok"){if(!Dt._0||($.connected=!0,$.connectedAt=P(),$.hasEverConnected=!0,$.pendingHeartbeats=[],$.lastHeartbeatAckAt=void 0,$.lastHeartbeatLatencyMs=void 0,Ze(),Ue(),Pe(),$.connectionGeneration<=1))return;let Ke={};Object.entries(Ce).forEach(Xe=>{Ke[Xe[0]]=Xe[1]});let We={contents:!1};return ie.forEach(Xe=>{if(We.contents)return;let dt;try{dt={TAG:"Ok",_0:Xe(Ke)}}catch{dt={TAG:"Error",_0:void 0}}if(dt.TAG!=="Ok"){We.contents=!0;return}tr(dt._0,Rt=>Promise.resolve())}),We.contents&&!$.closed?Te({TAG:"Transport",_0:{phase:"Reply",reason:"SocketClosedReason",message:"phoenix websocket reconnect failed"}},void 0,void 0,void 0):void 0}let wr=Dt._0,B=$.websocket,te=B!==void 0?B!==ye:!1,V=$.closed||te,Ee=$.hasEverConnected;if(V)return;if(!Ee)return St(wr);let rt=Ne.contents;if(rt===void 0)return Te({TAG:"Transport",_0:{phase:"Reply",reason:"SocketClosedReason",message:"phoenix websocket reconnect failed"}},void 0,void 0,void 0);$.connected=!1,St(wr),p("phoenix.commander_version_refused",{message:rt.message,connection_generation:$.connectionGeneration});let je=i.onVersionRefusal;if(je!==void 0)return je(rt);console.error(rt.message);return}let ge=$.closed,xe=$.hasEverConnected;if(!ge)return xe?Te({TAG:"Transport",_0:{phase:"Reply",reason:"SocketClosedReason",message:"phoenix websocket reconnect failed"}},void 0,void 0,void 0):St(me._0)};Se.contents=bt;let ut=(W,pe)=>{let me=$.ready;return new Promise((ge,xe)=>{let ye=setTimeout(()=>ge({TAG:"Error",_0:zE(y,W)}),Math.max(0,pe-Date.now())|0);me.then(Ne=>{clearTimeout(ye),ge(Ne)})})},Ye=async(W,pe,me,ge,xe,ye)=>{let Ne=pS(pe,y,A),mt=Date.now()+Ne,_t=await ut(pe,mt);return _t.TAG==="Ok"?HE(xe)?await ot(W,pe,me,mt-Date.now(),ge):(ye!==void 0&&ye(),{TAG:"Ok",_0:null}):{TAG:"Error",_0:_t._0}},yt=async(W,pe,me)=>{let ge=me.registrationId,xe;if(ge!==void 0)xe=ge;else{let Ee="join-registration-"+K.contents.toString();K.contents=K.contents+1|0,xe=Ee}let ye=D[W],Ne=ye!==void 0?M(ye):[],mt=await Ye(W,"phx_join",st(W,Ne.concat([pe])),void 0,void 0,void 0);if(mt.TAG!=="Ok")return{TAG:"Error",_0:mt._0};let _t=mt._0,Tt=Is(_t);if(Tt===void 0)return{TAG:"Error",_0:{TAG:"Failed",message:"phoenix join failed: "+yS(_t)}};let Nt=D[W],Qt=Nt!==void 0?Nt:{},Vt=Object.entries(Qt).length===0,Dt=me.onJoinReply,wr=Vt&&Dt!==void 0?Dt(Tt):{TAG:"Ok",_0:void 0};if(wr.TAG!=="Ok")return{TAG:"Error",_0:{TAG:"Failed",message:wr._0}};let B=me.rejoinPayload;if(Qt[xe]={payload:B!==void 0?B:()=>pe,onJoinReply:me.onJoinReply},D[W]=Qt,!(Vt&&W.startsWith("local_runner:")))return{TAG:"Ok",_0:Tt};let te=X(W,Tt);F(W,Tt);let V=te?{TAG:"Ok",_0:void 0}:lt(W,Tt);return V.TAG!=="Ok"?{TAG:"Error",_0:{TAG:"Failed",message:V._0}}:((de(Tt.controls_truncated,!0)||te)&&Z(W),{TAG:"Ok",_0:Tt})},Br={join:(W,pe,me)=>yt(W,pe,I(me,{rejoinPayload:void 0,registrationId:void 0})),unregisterJoin:(W,pe)=>{let me=D[W];if(!(me===void 0||(Pt(me,pe),Object.entries(me).length!==0)))return Pt(D,W),Pt(k,W)},push:Ye,pushIfConnected:(W,pe,me)=>$.connected?ot(W,pe,me,pS(pe,y,A),void 0):Promise.resolve({TAG:"Error",_0:{TAG:"Transport",_0:{phase:"WaitForConnection",reason:"NotConnected",message:"phoenix client is not connected"}}}),onControl:W=>{ne.push(W)},onEvent:W=>{J.push(W)},onBeforeControlReplay:W=>{Y.push(W)},onReconnect:W=>{ie.push(W)},onDisconnect:W=>{Q.push(W)},onControlEpochChange:W=>{le.push(W)},forceReconnect:W=>$.closed||!$.connected?!1:(Te({TAG:"Transport",_0:{phase:"Reply",reason:"SocketClosedReason",message:"phoenix websocket closed"}},void 0,I(W,"forced_stale_reconnect"),"forced_reconnect"),!0),hardReset:W=>{if($.closed)return!1;Te({TAG:"Transport",_0:{phase:"Reply",reason:"SocketClosedReason",message:"phoenix websocket closed"}},void 0,I(W,"hard_reset"),"hard_reset");let pe=$.reconnectTimer;return pe!==void 0&&(clearTimeout(Ge(pe)),$.reconnectTimer=void 0),bt(),!0},close:()=>St({TAG:"Transport",_0:{phase:"WaitForConnection",reason:"ClientClosed",message:"phoenix client closed"}})};Ae(),bt();let qt=await $.ready;return qt.TAG==="Ok"?{TAG:"Ok",_0:Br}:{TAG:"Error",_0:qt._0}}import*as jS from"node:os";import*as Fl from"ws";import*as _o from"node:http";import*as GS from"node:https";import*as IS from"node:buffer";import*as PS from"node:crypto";import*as vS from"node:buffer";function kS(){return{leases:[]}}function OS(e,t,r){return{authority:e,emit:t,audit:r,pending:[],live:void 0,current:void 0,seenResponses:[],closed:!1}}function gn(e,t){let r=e[t];if(r!==void 0&&typeof r=="string"&&r.trim()!==""&&r.length<=4096)return r}function Fs(e,t){let r=e[t];if(typeof r=="object"&&r!==null&&!Array.isArray(r))return r}function wS(e){let t;try{t={TAG:"Ok",_0:JSON.parse(e)}}catch{t={TAG:"Error",_0:"malformed_json"}}if(t.TAG!=="Ok")return{TAG:"Error",_0:t._0};let r=t._0;return typeof r=="object"&&r!==null&&!Array.isArray(r)?{TAG:"Ok",_0:r}:{TAG:"Error",_0:"non_object"}}function Lf(e){let t=e.current;t!==void 0&&(t.active=!1),e.current=void 0,e.live=void 0,e.authority.leases=e.authority.leases.filter(r=>r.active)}function ba(e){Lf(e),e.pending.forEach(t=>{if(typeof t=="object"){t._0.active=!1;return}}),e.pending=[],e.seenResponses=[],e.closed=!0}function Or(e,t){try{return e.audit("codex.provider_progress.invalid",Object.fromEntries([["reason",t]]))}catch(r){throw ba(e),r}}function Ni(e,t){ba(e),Or(e,t)}function Uf(e,t){if(e.closed)return;let r=wS(t);if(r.TAG!=="Ok")return Ni(e,r._0);let n=r._0,i=gn(n,"type");if(i!==void 0&&i!=="response.create")return;if(Lf(e),e.pending.length>=32)return Ni(e,"pending_request_limit");let a=Fs(n,"client_metadata"),o;if(a!==void 0){let s=gn(a,"thread_id"),d=gn(a,"turn_id");if(s!==void 0&&d!==void 0)if(e.authority.leases.forEach(l=>{if(l.threadId===s){l.active=!1;return}}),e.authority.leases=e.authority.leases.filter(l=>l.active),e.authority.leases.length>=128)Or(e,"authority_limit"),o=void 0;else{let l={threadId:s,turnId:d,active:!0};e.authority.leases=e.authority.leases.concat([l]),o=l}else Or(e,"missing_request_identity"),o=void 0}else Or(e,"missing_client_metadata"),o=void 0;e.current=o,e.pending=e.pending.concat([o!==void 0?{TAG:"Owned",_0:o}:"Warmup"])}function Df(e,t){let r=e.response_id;return r!==void 0?typeof r=="string"?r===t:!1:!0}function Bf(e,t){if(e.closed)return;let r=wS(t);if(r.TAG!=="Ok")return Ni(e,r._0);let n=r._0,i=gn(n,"type");if(i===void 0)return Or(e,"missing_event_type");switch(i){case"response.created":let s=E(Fs(n,"response"),P=>gn(P,"id"));if(s===void 0)return Ni(e,"missing_response_identity");if(e.seenResponses.includes(s))return Or(e,"duplicate_response");let d=e.seenResponses.length>=512,l=e.pending[0];if(d)return Ni(e,"response_identity_limit");if(l===void 0)return Ni(e,"response_without_request");e.seenResponses=e.seenResponses.concat([s]),e.pending=e.pending.slice(1,e.pending.length);let c;if(typeof l!="object")Or(e,"retired_response_request"),c=void 0;else{let P=l._0;P.active?c={id:s,lease:P,items:[],retiredItems:[]}:(Or(e,"retired_response_request"),c=void 0)}e.live=c;return;case"response.custom_tool_call_input.delta":let f=e.live;if(f===void 0||!(f.lease.active&&Df(n,f.id)))return Or(e,"foreign_or_retired_delta");let _=gn(n,"item_id"),m=n.delta;if(_===void 0||m===void 0||typeof m!="string"||!f.items.includes(_))return Or(e,"unknown_or_invalid_delta");let h=vS.Buffer.byteLength(m,"utf8");if(h<=0)return Or(e,"empty_delta");try{return e.emit({threadId:f.lease.threadId,turnId:f.lease.turnId,responseId:f.id,itemId:_,deltaBytes:h})}catch(P){throw ba(e),P}case"error":case"response.error":return Ni(e,"provider_error");case"response.completed":case"response.failed":case"response.incomplete":break;case"response.output_item.added":let p=e.live;if(p===void 0||!(p.lease.active&&Df(n,p.id)))return Or(e,"foreign_item_response");let u=Fs(n,"item");if(u===void 0)return Or(e,"missing_item");let g=gn(u,"type"),y=gn(u,"id");if(g===void 0||g!=="custom_tool_call"||y===void 0)return;let b=p.retiredItems.includes(y),S=p.items.includes(y),A=(p.items.length+p.retiredItems.length|0)>=256;if(b)return Or(e,"retired_item");if(S)return Or(e,"duplicate_item");if(A)return Ni(e,"item_identity_limit");p.items=p.items.concat([y]);return;case"response.output_item.done":let w=e.live;if(w===void 0||!Df(n,w.id))return Or(e,"foreign_item_completion");let R=E(Fs(n,"item"),P=>gn(P,"id"));if(R!==void 0&&w.items.includes(R)){w.items=w.items.filter(P=>P!==R),w.retiredItems=w.retiredItems.concat([R]);return}else return Or(e,"unknown_completed_item");default:return}let a=e.live,o=E(Fs(n,"response"),s=>gn(s,"id"));return a!==void 0&&o!==void 0&&a.id===o?Lf(e):Or(e,"foreign_terminal")}function CS(e){let t=gn(e,"threadId"),r=gn(e,"turnId"),n=gn(e,"responseId"),i=gn(e,"itemId"),a=e.deltaBytes;return t!==void 0&&r!==void 0&&n!==void 0&&i!==void 0&&a!==void 0&&typeof a=="number"&&isFinite(a)&&a>0&&Math.floor(a)===a?{TAG:"Ok",_0:{threadId:t,turnId:r,responseId:n,itemId:i,deltaBytes:a}}:{TAG:"Error",_0:"invalid_provider_progress"}}function xS(e){let t=Xr({threadId:e.threadId,turnId:e.turnId,responseId:e.responseId,itemId:e.itemId,deltaBytes:e.deltaBytes});return t.TAG==="Ok"?{TAG:"Ok",_0:{TAG:"UnknownNotification",_0:{method:"linzumi/providerToolInput/progress",params:t._0}}}:{TAG:"Error",_0:"provider_progress_serialization_failed"}}function Ml(e){let t={},r=e.connection,n=r!==void 0?typeof r=="string"?r.toLowerCase().split(",").map(i=>i.trim()):[]:[];return Object.entries(e).forEach(i=>{let a=i[0],o=a.toLowerCase();switch(o){case"connection":case"host":case"keep-alive":case"proxy-authenticate":case"proxy-authorization":case"sec-websocket-extensions":case"sec-websocket-key":case"sec-websocket-protocol":case"sec-websocket-version":case"te":case"trailer":case"transfer-encoding":case"upgrade":return;default:if(n.includes(o))return;t[a]=i[1];return}}),t}function ES(e,t,r,n){if(e.disabled)return;if(e.pending=e.pending+t,e.pending.length>1048576||e.data.length>1048576)return e.disabled=!0,e.pending="",e.data="",n("provider_observer.sse_inspection_limit");let i=e.pending.split(`
|
|
17
17
|
`);e.pending=I(i.pop(),""),i.forEach(a=>{if(e.disabled)return;let o=a.endsWith("\r")?a.slice(0,a.length-1|0):a;if(o===""){let f=e.data;switch(f){case"":case"[DONE]":break;default:Bf(r,f)}e.data="";return}if(!o.startsWith("data:"))return;let s=o.slice(5),d=s.startsWith(" ")?s.slice(1):s;if(((e.data.length+d.length|0)+1|0)>1048576)return e.disabled=!0,e.data="",e.pending="",ba(r),n("provider_observer.sse_inspection_limit");let l=e.data,c=l===""?d:l+`
|
|
18
18
|
`+d;e.data=c})}function RS(e,t,r,n){let i=s=>r(s,{}),a;try{let s=new URL(e),d=s.protocol,l=s.username,c=s.password,f=s.search,_=s.hash,m=0;switch(d){case"http:":case"https:":m=1;break;default:a={TAG:"Error",_0:"provider observer requires an HTTP(S) upstream without URL credentials, query or fragment"}}m===1&&(a=l===""&&c===""&&f===""&&_===""?{TAG:"Ok",_0:s}:{TAG:"Error",_0:"provider observer requires an HTTP(S) upstream without URL credentials, query or fragment"})}catch{a={TAG:"Error",_0:"provider observer upstream URL is invalid"}}if(a.TAG!=="Ok")return Promise.resolve({TAG:"Error",_0:a._0});let o=a._0;return new Promise((s,d)=>{let l="/"+PS.randomUUID(),c=o.pathname.endsWith("/")?o.pathname.slice(0,o.pathname.length-1|0):o.pathname,f={contents:!1},_={contents:!1},m={contents:""},h=new Set,p=new Set,u=new Set,g=new Set,y={contents:void 0},b=new Promise((D,k)=>{y.contents=D}),S={contents:()=>{}},A=()=>{let D=OS(t,n,r);return g.add(D),D},w=D=>{ba(D),g.delete(D)},R=D=>{let k=D.url;if(k==null||!k.startsWith(l+"/"))return;let q=k.slice(l.length),j=q.split("?")[0],x=j!==void 0?j:"",v;try{v=new URL(o.origin+q).pathname}catch{v=void 0}let L=x===c||x.startsWith(c+"/");if(v!==void 0&&L&&v===x)return q},P=(D,k,q,j)=>q||k.length>33554432?(w(D),r("provider_observer.websocket_inspection_unsupported",{})):j?Uf(D,k.toString("utf8")):Bf(D,k.toString("utf8")),C=new Fl.WebSocketServer({noServer:!0,maxPayload:33554432,handleProtocols:()=>m.contents}),G=_o.createServer((D,k)=>{let q=f.contents,j=R(D);if(!q&&j!==void 0&&g.size<128&&u.size<128){let x=be(j.split("?")[0],!1,$=>$.endsWith("/responses")),v=A(),L={contents:[]},z={contents:!1},K={contents:0},ne={contents:!1},J={contents:void 0},Q=(o.protocol==="https:"?($,oe,Ae)=>GS.request($,oe,Ae):($,oe,Ae)=>_o.request($,oe,Ae))(o.origin+j,{method:D.method,headers:Ml(D.headers)},$=>{if(f.contents||ne.contents){$.destroy();return}k.writeHead($.statusCode,Ml($.headers));let oe=$.headers["content-type"],Ae=typeof oe=="string"?oe.toLowerCase().startsWith("text/event-stream"):!1,Pe={pending:"",data:"",disabled:!1,decoder:new TextDecoder("utf-8")};$.on("data",$e=>{if(x&&Ae)return ES(Pe,Pe.decoder.decode($e,{stream:!0}),v,i)}),$.on("end",()=>{x&&Ae&&ES(Pe,Pe.decoder.decode(),v,i),w(v);let $e=J.contents;if($e!==void 0){u.delete(Ge($e));return}else return r("provider_observer.response_before_request_assignment",{})}),$.on("error",$e=>{r("provider_observer.http_response_error",{}),w(v),k.destroy()}),$.pipe(k)});J.contents=Re(Q),u.add(Q);let le=$=>{if(!ne.contents){ne.contents=!0,r($,{}),w(v),Q.destroy(),k.destroy(),u.delete(Q);return}};D.on("data",$=>{if(x&&!z.contents){if(K.contents=K.contents+$.length|0,K.contents>33554432)return z.contents=!0,L.contents=[],w(v),r("provider_observer.request_inspection_limit",{});L.contents.push($);return}}),D.on("end",()=>{if(x&&!ne.contents&&!z.contents){Uf(v,IS.Buffer.concat(L.contents).toString("utf8")),L.contents=[];return}}),D.on("aborted",()=>le("provider_observer.http_request_aborted")),D.on("error",$=>le("provider_observer.http_request_error")),k.on("close",()=>{w(v),Q.destroy(),u.delete(Q)}),Q.on("error",$=>le("provider_observer.http_upstream_error")),D.pipe(Q);return}r("provider_observer.http_request_refused",{}),k.writeHead(403,{}),k.end()});G.maxConnections=128,G.on("connection",D=>{h.add(D),D.on("close",()=>{h.delete(D)})}),G.on("upgrade",(D,k,q)=>{let j=f.contents,x=R(D);if(!j&&x!==void 0&&g.size<128&&u.size<128){let v=D.headers["sec-websocket-protocol"],L=v!==void 0?typeof v=="string"?v.split(",").map(oe=>oe.trim()):[]:[],ne=(o.protocol==="https:"?"wss:":"ws:")+o.origin.slice(o.protocol.length)+x,J=A(),Y=new Fl.WebSocket(ne,L,{headers:Ml(D.headers),maxPayload:33554432,handshakeTimeout:3e4});p.add(Y);let ie={contents:void 0},Q={contents:!1},le={contents:!1},$=oe=>{if(le.contents)return;le.contents=!0,r(oe,{}),w(J),Y.terminate();let Ae=ie.contents;Ae!==void 0?Ge(Ae).terminate():k.destroy()};Y.on("error",oe=>$("provider_observer.websocket_upstream_error")),Y.on("unexpected-response",(oe,Ae)=>{Q.contents=!0,le.contents=!0,w(J),r("provider_observer.websocket_upgrade_refused",{}),u.add(oe);let Pe=new _o.ServerResponse(D);Pe.assignSocket(k),Pe.shouldKeepAlive=!1;let $e={contents:!1},ze=tt=>{if(!$e.contents){$e.contents=!0,u.delete(oe),Ae.destroy(),oe.destroy(),Y.terminate(),p.delete(Y),tt?k.destroy():k.end();return}};if(Ae.on("error",tt=>{r("provider_observer.websocket_rejection_response_error",{}),ze(!0)}),Pe.on("error",tt=>{r("provider_observer.websocket_rejection_forward_error",{}),ze(!0)}),k.on("close",()=>ze(!0)),k.on("end",()=>ze(!0)),Pe.on("finish",()=>ze(!1)),f.contents)return ze(!0);Pe.writeHead(Ae.statusCode,Ae.statusMessage,Ml(Ae.headers)),Ae.pipe(Pe)}),k.on("close",()=>{if(ie.contents===void 0)return $("provider_observer.websocket_client_closed_during_upgrade")}),Y.on("open",()=>{f.contents||le.contents?Y.terminate():(m.contents=Y.protocol,C.handleUpgrade(D,k,q,oe=>{ie.contents=Re(oe),p.add(oe);let Ae=(Pe,$e,ze,tt)=>{if($e.readyState!==1)return $("provider_observer.websocket_peer_not_open");if($e.bufferedAmount+ze.length>33554432)return $("provider_observer.websocket_backpressure_limit");Pe.pause(),$e.send(ze,{binary:tt},Ie=>{if(Ie!=null)return $("provider_observer.websocket_send_error");if(Pe.readyState===1){Pe.resume();return}})};oe.on("message",(Pe,$e)=>{P(J,Pe,$e,!0),Ae(oe,Y,Pe,$e)}),Y.on("message",(Pe,$e)=>{P(J,Pe,$e,!1),Ae(Y,oe,Pe,$e)}),oe.on("error",Pe=>$("provider_observer.websocket_downstream_error")),oe.on("close",(Pe,$e)=>{if(w(J),p.delete(oe),Y.readyState===1){Pe!==1005?Pe!==1006?Y.close(Pe,$e):Y.terminate():Y.close();return}})}))}),Y.on("close",(oe,Ae)=>{w(J),p.delete(Y);let Pe=ie.contents;if(Pe===void 0){if(Q.contents)return;k.destroy();return}let $e=Ge(Pe);if($e.readyState===1){oe!==1005?oe!==1006?$e.close(oe,Ae):(r("provider_observer.websocket_abnormal_close",{}),$e.terminate()):$e.close();return}});return}r("provider_observer.websocket_request_refused",{}),k.destroy()}),S.contents=()=>{if(!f.contents){f.contents=!0,g.forEach(ba),g.clear(),p.forEach(D=>{D.terminate()}),u.forEach(D=>{D.destroy()}),h.forEach(D=>{D.destroy()}),G.closeAllConnections(),C.close(()=>{}),G.close(()=>{let D=y.contents;return D!==void 0?D():r("provider_observer.missing_close_resolver",{})});return}},G.on("error",D=>(r("provider_observer.listener_error",{}),_.contents?S.contents():(_.contents=!0,S.contents(),s({TAG:"Error",_0:"provider observer listener failed"})))),G.listen(0,"127.0.0.1",()=>{let D=G.address();return D==null?(r("provider_observer.listener_address_missing",{}),_.contents=!0,S.contents(),s({TAG:"Error",_0:"provider observer listener address missing"})):(_.contents=!0,s({TAG:"Ok",_0:{baseUrl:"http://127.0.0.1:"+D.port.toString()+l+c,close:()=>S.contents(),closed:b}}))})})}async function hG(e,t,r,n,i){if(e.modelProvider!==void 0)return await i(e);let o={contents:!1},s=new Set,d=kS(),l=await n(t,d,r,S=>{if(!o.contents){s.forEach(A=>A(S));return}});if(l.TAG!=="Ok")return l;let c=l._0,f=()=>{if(!o.contents)return o.contents=!0,s.clear(),c.close()},_=e.model,m=e.reasoningEffort,h=e.fast,p=e.mcpConfigArgs.concat([["-c","openai_base_url="+ln(c.baseUrl),"-c","model_providers.openai-linzumi.base_url="+ln(c.baseUrl)]]),u=e.modelProvider,g=e.nativeQuestionBridge,y={model:_,reasoningEffort:m,fast:h,mcpConfigArgs:p,modelProvider:u,nativeQuestionBridge:g},b;try{b=await i(y)}catch(S){throw f(),S}if(b.TAG==="Ok"){let S=b._0;S.onExit(f);let A=S.onExitStatus;A!==void 0&&A(R=>f());let w={...S};return{TAG:"Ok",_0:(w.onProviderProgress=R=>(o.contents||s.add(R),()=>{s.delete(R)}),w.stop=()=>{f(),S.stop()},w)}}return f(),{TAG:"Error",_0:b._0}}function MS(e,t,r,n,i,a){let o=a!==void 0?a:!0,s=bl(e.env,i,o),l=Yy(s,jS.homedir(),bn,c=>e.audit("codex.provider_progress.auth_metadata_invalid",{})).authMode===Cf?"https://chatgpt.com/backend-api/codex":"https://api.openai.com/v1";return hG(n,l,e.audit,RS,c=>yy(e,t,r,c,i,o))}function FS(e,t,r){let n={contents:!1},i=new Set,a=t!==void 0?t(s=>{if(n.contents||e.isClosed())return;let d=xS(s);if(d.TAG!=="Ok")return r("codex.provider_progress.notification_invalid",{});let l=d._0;i.forEach(c=>c(l))}):()=>{},o=()=>{if(!n.contents){n.contents=!0,a(),i.clear();return}};return e.onClose(s=>o()),{request:e.request,notify:e.notify,onNotification:s=>{if(!n.contents){e.onNotification(s),i.add(s);return}},onRequest:e.onRequest,onClose:e.onClose,isClosed:e.isClosed,close:()=>{o(),e.close()}}}function Aa(e){return e==="Default"?"default":"plan"}function $S(e){if(e===void 0)return{TAG:"Ok",_0:void 0};switch(e){case"default":return{TAG:"Ok",_0:"Default"};case"plan":return{TAG:"Ok",_0:"Plan"};default:return{TAG:"Error",_0:"unsupported Codex collaboration mode: "+e}}}function yG(e,t){if(e.TAG!=="Ok")return{TAG:"Error",_0:e._0};let r=e._0;if(r.TAG!=="ResultReply")return{TAG:"Error",_0:t+" failed: "+r.message};let n=r._0;return typeof n=="object"&&n!==null&&!Array.isArray(n)?{TAG:"Ok",_0:n}:{TAG:"Error",_0:t+" response did not include an object result"}}function qS(e){try{let t=JSON.stringify(e);if(t===void 0)return{TAG:"Error",_0:"collaboration-mode payload was not JSON serializable"};try{return{TAG:"Ok",_0:JSON.parse(t)}}catch{return{TAG:"Error",_0:"collaboration-mode payload was not JSON serializable"}}}catch{return{TAG:"Error",_0:"collaboration-mode payload was not JSON serializable"}}}var SG={};async function NS(e,t){let r=qS(SG);return r.TAG==="Ok"?yG(await e.request(t,r._0),t):{TAG:"Error",_0:r._0}}async function bG(e,t){let r=await NS(e,"collaborationMode/list");if(r.TAG!=="Ok")return{TAG:"Error",_0:r._0};let n=r._0.data;if(n===void 0)return{TAG:"Error",_0:"collaborationMode/list response did not include data"};if(!Array.isArray(n))return{TAG:"Error",_0:"collaborationMode/list response did not include data"};let i=Aa(t),a=xn(n,s=>{if(typeof s!="object"||s===null||Array.isArray(s))return;let d=s.mode;if(typeof d=="string"&&d===i)return s});if(a===void 0)return{TAG:"Error",_0:"Codex app-server does not advertise "+i+" mode"};let o=a.reasoning_effort;return o!==void 0?o===null?{TAG:"Ok",_0:void 0}:typeof o=="string"?{TAG:"Ok",_0:o}:{TAG:"Error",_0:"collaborationMode/list "+i+" mode included invalid reasoning_effort"}:{TAG:"Error",_0:"collaborationMode/list "+i+" mode included invalid reasoning_effort"}}async function AG(e,t){if(t!==void 0){let d=t.trim();return d===""?{TAG:"Error",_0:"known Codex model must be a non-empty string"}:{TAG:"Ok",_0:d}}let r=await NS(e,"model/list");if(r.TAG!=="Ok")return{TAG:"Error",_0:r._0};let n=r._0.data;if(n===void 0)return{TAG:"Error",_0:"model/list response did not include data"};if(!Array.isArray(n))return{TAG:"Error",_0:"model/list response did not include data"};let i=ht(n,d=>{if(typeof d!="object"||d===null||Array.isArray(d))return;if(d.isDefault===!0)return d});if(i.length!==1)return{TAG:"Error",_0:"model/list did not advertise exactly one valid default model"};let o=i[0].model;if(o===void 0)return{TAG:"Error",_0:"model/list did not advertise exactly one valid default model"};if(typeof o!="string")return{TAG:"Error",_0:"model/list did not advertise exactly one valid default model"};let s=o.trim();return s===""?{TAG:"Error",_0:"model/list did not advertise exactly one valid default model"}:{TAG:"Ok",_0:s}}async function Wf(e,t,r,n){let i=await bG(e,t);if(i.TAG!=="Ok")return{TAG:"Error",_0:i._0};let a=await AG(e,n);if(a.TAG!=="Ok")return{TAG:"Error",_0:a._0};let o=oo($t(i._0,r));return qS({mode:Aa(t),settings:{model:a._0,reasoning_effort:o,developer_instructions:null}})}var Lq=10*6e4,Uq=30*6e4;function TG(e,t){let r=setTimeout(e,t);return r.unref(),r}function vG(e){clearTimeout(e)}var $l={setTimer:TG,clearTimer:vG};import*as i_ from"node:crypto";function LS(e,t,r,n){let i={last_seq:r,runner_id:ee(t,o=>e),thread_id:t,connection_id:t!==void 0?wd(ee(n,o=>o.trim()),o=>o!==""):void 0},a=JSON.stringify(i);if(a!==void 0){let o=JSON.parse(a);if(typeof o=="object"&&o!==null&&!Array.isArray(o))return o;throw new Error("commander_chat_join_object_refused")}throw new Error("commander_chat_join_serialize_refused")}function on(e){if(e!==void 0)return Ge(e)}var Hf=["codex","claude-code","pi","opencode"];function ho(e){return e}function US(e){switch(e.TAG){case"SessionStarted":return"session_started";case"TurnStarted":return"turn_started";case"ItemStarted":return"item_started";case"ItemDelta":return"item_delta";case"ItemCompleted":return"item_completed";case"ApprovalRequested":return"approval_requested";case"UsageUpdated":return"usage_updated";case"RateLimitUpdated":return"rate_limit_updated";case"PipelineNotification":return"pipeline_notification";case"ActivityPulse":return"activity_pulse";case"TurnCompleted":return"turn_completed";case"TurnFailed":return"turn_failed";case"TurnInterrupted":return"turn_interrupted";case"HarnessDied":return"harness_died"}}var wG=["deterministic","transient_upstream","transient_local","rate_limited","needs_approval","needs_decision","route_outage"],Kf=ll(wG);function $s(e){switch(e){case"deterministic":return"deterministic";case"needs_approval":return"needs_approval";case"needs_decision":return"needs_decision";case"rate_limited":return"rate_limited";case"route_outage":return"route_outage";case"transient_local":return"transient_local";case"transient_upstream":return"transient_upstream";default:return}}function Xf(e){switch(e){case"BindingNotObject":return"binding_not_object";case"SessionIdInvalid":return"session_id_invalid";case"LeaseEpochInvalid":return"lease_epoch_invalid";case"AttemptInvalid":return"attempt_invalid";case"NextFrameIndexInvalid":return"next_frame_index_invalid";case"CheckpointConfigMissing":return"checkpoint_config_missing";case"CheckpointConfigInvalid":return"checkpoint_config_invalid";case"SourceSeqInvalid":return"source_seq_invalid"}}function Jf(e){return"adt_stream_v1 dispatch refused: "+Xf(e)+"; the commander refuses to stream unconfigured (no baked fallback thresholds exist by law - plan doc 2.4/MF9)"}function zS(e){switch(e){case"Checkpoint":return"checkpoint";case"Delta":return"delta";case"Terminal":return"terminal"}}function qs(e){if(typeof e=="object"&&e!==null&&!Array.isArray(e))return e}function Li(e){if(e!==void 0&&typeof e=="number"&&e>=1&&Math.trunc(e)===e)return e}function CG(e){let t=qs(e);if(t===void 0)return;let r=Li(t.version),n=E(t.thresholds,qs);if(r===void 0||n===void 0)return;let i=Li(n.max_bytes),a=Li(n.max_deltas),o=Li(n.max_interval_ms);if(i!==void 0&&a!==void 0&&o!==void 0)return{version:r,thresholds:{maxBytes:i,maxDeltas:a,maxIntervalMs:o}}}function Ns(e){let t=qs(e);if(t===void 0)return{TAG:"ParseRefused",_0:"BindingNotObject"};let r=Li(t.session_id);if(r===void 0)return{TAG:"ParseRefused",_0:"SessionIdInvalid"};let n=Li(t.lease_epoch);if(n===void 0)return{TAG:"ParseRefused",_0:"LeaseEpochInvalid"};let i=t.attempt,a;if(i!==void 0){let l=Li(i);a=l!==void 0?{TAG:"Ok",_0:l}:{TAG:"Error",_0:"AttemptInvalid"}}else a={TAG:"Ok",_0:void 0};if(a.TAG!=="Ok")return{TAG:"ParseRefused",_0:a._0};let o=Li(t.next_frame_index);if(o===void 0)return{TAG:"ParseRefused",_0:"NextFrameIndexInvalid"};let s=t.checkpoint_config;if(s===void 0)return{TAG:"ParseRefused",_0:"CheckpointConfigMissing"};let d=CG(s);return d!==void 0?{TAG:"Parsed",_0:{sessionId:r,leaseEpoch:n,attempt:a._0,nextFrameIndex:o,checkpointConfig:d}}:{TAG:"ParseRefused",_0:"CheckpointConfigInvalid"}}function xG(e){return Mr(zS(e.frameKind)+`
|
package/package.json
CHANGED