@linzumi/cli 1.0.286 → 1.0.287
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 +1 -1
- package/dist/hosted-coding-account-worker.js +1 -1
- package/dist/index.js +311 -310
- package/dist/remote-codex-harness-worker.js +1 -1
- package/package.json +1 -1
|
@@ -12,7 +12,7 @@ GFS4: `),console.error(e)});Or[Jr]||(c_=global[Jr]||[],m_(Or,c_),Or.close=(funct
|
|
|
12
12
|
`),t=>{let r=TC.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=Sn(i),s=Sn(a);if(o!==void 0&&s!==void 0)return{pid:o,pgid:s}})}function kC(e){let t=ac("ps",["-axo","pid=,pgid="],5e3,16e6);if(t.TAG==="Ok")return vC(t._0).filter(r=>r.pgid===e).map(r=>r.pid)}function dl(e,t,r,n){let i;if(n.size>0){let o=kC(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(!se(_.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 Pg={contents:(e,t)=>{}};var Hc="SIGKILL",fa={children:new Set,handlersInstalled:!1,removeHandlers:void 0};function gs(e,t,r,n,i){let a=e.pid;Pg.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 OC(e,t,r,n){let i;try{e.stop(),i={TAG:"Ok",_0:void 0}}catch(d){i={TAG:"Error",_0:pe(d)}}if(i.TAG!=="Ok"){let d=ve(i._0);gs(e,n,"stop",d.code,d.message)}let a=e.pid;if(a===void 0)return;if(e.ownProcessGroup){let d=dl(a,Hc,t,r);d.sparedPids.length!==0&&Pg.contents("process.reap_spared_listeners",Object.fromEntries([["purpose",e.kind],["pid",a],["reason",n],["sparedPids",d.sparedPids.map(_=>_)]])),d.failures.forEach(_=>gs(e,n,"member_kill:"+_.pid.toString(),_.code,_.message));let l=d.groupSignalError;if(l===void 0||se(l.code,"ESRCH"))return;gs(e,n,"group_kill",l.code,l.message);let c=t(a,Hc);if(c.TAG==="Ok")return;let f=c._0;return se(f.code,"ESRCH")?void 0:gs(e,n,"pid_kill",f.code,f.message)}let o=t(a,Hc);if(o.TAG==="Ok")return;let s=o._0;if(!se(s.code,"ESRCH"))return gs(e,n,"pid_kill",s.code,s.message)}function Kc(e,t,r){let n=e!==void 0?e:Fd,i=t!==void 0?t:new Set,a=r!==void 0?r:"exit",o=Array.from(fa.children);return fa.children.clear(),o.forEach(s=>OC(s,n,i,a)),o.length}function Ig(e,t){let r;return r=typeof t=="string"?t:JSON.stringify(t),"linzumi commander "+e+": "+r+`
|
|
13
13
|
`}function wC(){if(fa.handlersInstalled)return;fa.handlersInstalled=!0;let e=a=>{Kc(void 0,void 0,"process_exit")};process.on("exit",e);let t=process.listenerCount("uncaughtException")===0,r=process.listenerCount("unhandledRejection")===0,n=a=>{Kc(void 0,void 0,"uncaught_exception"),nn(Ig("uncaughtException",a)),process.exit(1)},i=a=>{Kc(void 0,void 0,"unhandled_rejection"),nn(Ig("unhandledRejection",a)),process.exit(1)};t&&process.on("uncaughtException",n),r&&process.on("unhandledRejection",i),fa.removeHandlers=()=>{if(process.off("exit",e),t&&process.off("uncaughtException",n),r){process.off("unhandledRejection",i);return}}}function Rg(e){return fa.children.add(e),wC(),{unregister:()=>{fa.children.delete(e)}}}import*as jg from"node:net";function Jc(e,t){try{return e.kill(t)}catch{return!1}}function Mg(){return new Promise((e,t)=>{let r=jg.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 ll=((e,t)=>{for(var r in e)t(e[r],r)});var EC="LINZUMI_CODEX_STREAM_IDLE_TIMEOUT_MS";function GC(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=Sn(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 Fg(e){let t=GC(e[EC]);if(!(typeof t!="object"||t.TAG==="Invalid"))return t._0}var PC="file",RC=["mcp_oauth_credentials_store","cli_auth_credentials_store"],jC=RC.flatMap(e=>["-c",e+'="'+PC+'"']),MC=["-c","features.apps=false"],FC=["-c","features.default_mode_request_user_input=true"];function xn(e){return JSON.stringify(e)}function $C(e,t){let r=(n,i)=>n!==void 0?Object.entries(n).flatMap(a=>["-c","model_providers."+e.id+"."+i+"."+a[0]+"="+xn(a[1])]):[];return[["-c","model_providers."+e.id+".name="+xn(e.name),"-c","model_providers."+e.id+".base_url="+xn(e.baseUrl),"-c","model_providers."+e.id+".env_key="+xn(e.envKey),"-c","model_providers."+e.id+".wire_api="+xn(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="+xn(e.id)]].flat()}var $g=["-c","model_providers.openai-linzumi.name="+xn("OpenAI"),"-c","model_providers.openai-linzumi.wire_api="+xn("responses"),"-c","model_providers.openai-linzumi.requires_openai_auth=true","-c","model_providers.openai-linzumi.supports_websockets=true"];function qC(e){return $g.concat(["-c","model_providers.openai-linzumi.stream_idle_timeout_ms="+e.toString(),"-c","model_provider="+xn("openai-linzumi")])}function NC(e,t){let r=Fg(t),n=e.nativeQuestionBridge,i;i=n==="Durable"?FC:[];let a=e.model,o=e.reasoningEffort,s=e.modelProvider;return[MC,i,jC,a!==void 0?["-c","model="+xn(a)]:[],o!==void 0?["-c","model_reasoning_effort="+xn(o)]:[],e.fast?["-c","service_tier="+xn("fast")]:[],e.mcpConfigArgs.flat(),s!==void 0?$C(s,r):r!==void 0?qC(r):$g].flat()}function qg(e,t){return[["app-server"],NC(t,process.env),["--listen",e]].flat()}var DC=["LINZUMI_MCP_ACCESS_TOKEN","LINZUMI_MCP_OWNER_USERNAME"];function Ng(e,t,r){let n=r?Object.fromEntries(Object.entries(e)):{};return DC.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 Dg=["ignore","pipe","pipe"];function Lg(e){let t=e.length;return t>12e3?e.slice(t-12e3|0,t):e}function Ug(e,t,r){return r<3&&e.includes("codex app-server exited before readyz")&&t.includes("EADDRINUSE")?t.includes("listen"):!1}function Bg(e){let t=ln(e);if(t===void 0)return;let r=Ee(t),i=r.protocol==="wss:"?"https:":"http:";return r.protocol=i,r.pathname="/readyz",r.search="",r.hash="",r.toString()}var LC="kandan-local-codex-runner",UC="0.0.1";function zg(){return Object.fromEntries([["clientInfo",Object.fromEntries([["name",LC],["version",UC]])],["capabilities",Object.fromEntries([["experimentalApi",!0]])]])}var BC=new RegExp("\\bsession\\b.+\\bis archived\\b","i");function Wg(e){return BC.test(e)}var zC=new RegExp("^thread not found(?:\\s*:|\\b)","i");function Hg(e){return zC.test(e.trim())}var Kg=2e3;function WC(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 HC=["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 Jg(e,t){return{command:e,args:["-e",HC.join(`
|
|
14
14
|
`),WC(t)]}}async function JC(e){let t=await _s(e,{});if(t.TAG!=="Ok")return!1;let r=t._0.status;return r>=200?r<=299:!1}function Qg(e,t){return{audit:e,env:t,protectedPids:()=>new Set(Array.from(xg()).concat(Array.from(Eg(Wc(),Date.now(),r=>{let n=Object.fromEntries([["stage",Cg(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:JC,now:()=>Date.now(),readyzTimeoutMs:1e4,readyzPollMs:50}}function VC(e){return e}function Qc(e,t,r,n,i,a){e.audit(t,Object.fromEntries([["command",r],["args",n.map(VC)],["cwd",i]].concat(a.concat([["purpose","codex.app_server"]]))))}function Zc(e,t){let r=t.pid;if(r==null){Jc(t,"SIGINT");return}let n=dl(r,"SIGINT",Fd,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"&&nn("codex app-server process-group SIGINT denied for pid "+r.toString()+`; falling back to direct child SIGINT
|
|
15
|
-
`),Jc(t,"SIGINT")}function QC(e){return new Promise((t,r)=>{setTimeout(()=>t(),e)})}async function ZC(e,t,r){let n=Bg(t),i=n!==void 0?n:t,a=e.now()+e.readyzTimeoutMs,o;for(;pr(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 QC(e.readyzPollMs)}return C(o,{TAG:"Error",_0:"timed out waiting for codex app-server readyz"})}async function Zg(e,t,r,n,i,a,o){let s=await Mg();if(s.TAG!=="Ok")return{TAG:"Error",_0:s._0};let d="ws://127.0.0.1:"+s._0.toString(),l=qg(d,n),c={contents:""},f=Jg(process.execPath,{command:t,args:l,pollIntervalMs:Kg,protectedPidsDir:Wc()});Qc(e,"process.spawn",t,l,r,[]);let _=Vg.spawn(f.command,f.args,{cwd:r,env:Ng(e.env,i,a),stdio:Dg,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(H=>H(P))},y=(P,O,G)=>{if(P!=null){P.on("data",H=>{let E=H.toString("utf8");G!==void 0&&G(E);let q=_.pid;e.audit("process.output",Object.fromEntries([["pid",q??null],["purpose","codex.app_server"],["stream",O],["chars",E.length],["output",E]]))});return}};y(_.stdout,"stdout",void 0),y(_.stderr,"stderr",P=>{c.contents=Lg(c.contents+P)});let S=Rg({stop:()=>Zc(e,_),pid:Mr(_.pid),ownProcessGroup:!0,kind:"codex.app_server"});_.once("exit",(P,O)=>{let G=P==null?O??"unknown":P.toString();m.contents=G,S.unregister();let H=_.pid;Qc(e,"process.exit",t,l,r,[["pid",H??null],["code",P??null],["signal",O??null]]);let E=h.slice();h.splice(0,h.length),E.forEach(q=>q()),g({TAG:"Ok",_0:{code:P,signal:O}})}),_.on("error",P=>{m.contents=P.message,S.unregister(),g({TAG:"Error",_0:P.message})});let A=_.pid;Qc(e,"process.spawned",t,l,r,[["pid",A??null]]);let T=()=>Zc(e,_),I=await ZC(e,d,()=>m.contents);if(I.TAG==="Ok")return{TAG:"Ok",_0:{url:d,pid:Mr(_.pid),stop:T,onExit:P=>{if(m.contents!==void 0)return P();h.push(P)},onExitStatus:P=>{let O=p.contents;if(O!==void 0)return P(O);u.push(P)}}};let R=I._0;return Zc(e,_),Ug(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 Zg(e,t,r,n,i,a,o+1|0)):{TAG:"Error",_0:R}}function Yg(e,t,r,n,i,a){return Zg(e,t,r,n,i!==void 0?i:[],a!==void 0?a:!0,1)}function XC(e){return e==="Voice"?"voice":"text"}function ex(e){switch(e){case"All":return"all";case"Coding":return"coding";case"OnboardingDiscovery":return"onboarding-discovery"}}function Yc(e){return JSON.stringify(e)}function Xg(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?XC(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(ex(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 tx(e){return"["+e.map(Yc).join(", ")+"]"}function ey(e,t){let r=["-c","mcp_servers."+e.name+".command="+Yc(e.command),"-c","mcp_servers."+e.name+".args="+tx(e.args)];return Object.entries(e.env).forEach(n=>{r.push("-c"),r.push("mcp_servers."+e.name+".env."+n[0]+"="+Yc(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 rx(e){return["--require","-r","--import","--loader","--experimental-loader"].includes(e)}function nx(e){return["--require=","-r=","--import=","--loader=","--experimental-loader="].some(t=>e.startsWith(t))}function Xc(e,t){for(;;){let r=t,n=e[r];if(n===void 0)return[];if(rx(n)){let i=e[r+1|0];if(i!==void 0)return[n,i].concat(Xc(e,r+2|0));t=r+1|0;continue}if(nx(n))return[n].concat(Xc(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:Xc(r,0).concat([n])}:{command:n,argsPrefix:[]}}function ax(e){switch(e){case"SocketOpen":return"open";case"SocketMessage":return"message";case"SocketClose":return"close";case"SocketError":return"error"}}function ox(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 sx(e){return{readyState:()=>e.readyState,send:t=>{e.send(t)},close:()=>{e.close()},on:(t,r)=>{e.addEventListener(ax(t),n=>r(ox(n)),{})}}}function ul(e,t){return sx(new WebSocket(e,t))}var ry=0,ma=1;function iy(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=pe(r);return{TAG:"Error",_0:ve(n).message}}}catch(t){let r=pe(t);return{TAG:"Error",_0:ve(r).message}}}function cn(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=pe(r);return{TAG:"Error",_0:ve(n).message}}}catch(t){let r=pe(t);return{TAG:"Error",_0:ve(r).message}}}function ay(e,t,r){return cn(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 dx(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 lx(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 oy(e,t){if(!dx(e))return{TAG:"UnknownNotification",_0:{method:e,params:t}};let r=ay(e,void 0,t);if(r.TAG!=="Ok")return{TAG:"UnknownNotification",_0:{method:e,params:t}};let n=iy(r._0);return n.TAG==="Ok"?{TAG:"KnownNotification",method:e,value:n._0,rawParams:t}:{TAG:"UnknownNotification",_0:{method:e,params:t}}}function sy(e,t,r){if(!lx(t))return{TAG:"UnknownServerRequest",_0:{id:e,method:t,params:r}};let n=ay(t,e,r);if(n.TAG!=="Ok")return{TAG:"UnknownServerRequest",_0:{id:e,method:t,params:r}};let i=iy(n._0);return i.TAG==="Ok"?{TAG:"KnownServerRequest",method:t,value:i._0}:{TAG:"UnknownServerRequest",_0:{id:e,method:t,params:r}}}function ao(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 cl(e){return e.TAG==="KnownNotification"?e.method:e._0.method}function dy(e){return e.TAG==="KnownServerRequest"?e.method:e._0.method}function ys(e){return e.TAG==="KnownServerRequest"?e.value.id:e._0.id}function ji(e){let t=ys(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 _i(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 ux(e,t){return C(_i(e,"command"),C(_i(e,"cmd"),C(_i(e,"path"),C(_i(e,"filePath"),C(_i(e,"file"),C(_i(e,"reason"),C(_i(e,"summary"),t)))))))}var fn=ao;function ly(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:ji(e),threadId:n.threadId,turnId:n.turnId,kind:r,summary:C(w(n.command,c=>{if(c!=null)return Ge(c)}),C(w(n.reason,c=>{if(c!=null)return Ge(c)}),r)),payload:ao(n)};case"item/fileChange/requestApproval":let i=t.params;return{requestId:ji(e),threadId:i.threadId,turnId:i.turnId,kind:r,summary:C(w(i.reason,c=>{if(c!=null)return Ge(c)}),r),payload:ao(i)};case"item/permissions/requestApproval":let a=t.params;return{requestId:ji(e),threadId:a.threadId,turnId:a.turnId,kind:r,summary:C(Mr(a.reason),r),payload:ao(a)};case"applyPatchApproval":let o=t.params;return{requestId:ji(e),threadId:o.conversationId,turnId:void 0,kind:r,summary:C(Mr(o.reason),r),payload:ao(o)};case"execCommandApproval":let s=t.params,d=s.command.join(" ").trim(),l=d===""?C(Mr(s.reason),r):d;return{requestId:ji(e),threadId:s.conversationId,turnId:void 0,kind:r,summary:l,payload:ao(s)};default:return}}else{let t=e._0,r=t.method;if(!r.includes("requestApproval"))return;let n=t.params;return{requestId:ji(e),threadId:_i(n,"threadId"),turnId:_i(n,"turnId"),kind:r,summary:ux(n,r),payload:C(n,null)}}}function cx(e){try{e.unref();return}catch{return}}var uy="codex app-server websocket closed",fx="codex app-server websocket is not open";function mx(e){let t=e.method;if(typeof t=="string")return t}function px(e){let t=e.error;if(t===void 0)return{TAG:"ResultReply",_0:C(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 fl(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=pe(a);return{TAG:"Error",_0:ve(o).message}}}function py(e,t,r){try{return t(r)}catch(n){let i=pe(n);return e("codex.notification_callback_failed",Object.fromEntries([["purpose","codex.app_server"],["method",cl(r)],["message",ve(i).message]]))}}function cy(e,t,r){try{return t(r)}catch(n){let i=pe(n);return e("codex.close_callback_failed",Object.fromEntries([["purpose","codex.app_server"],["message",ve(i).message]]))}}function _x(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 hx(e,t,r,n){let i={TAG:"Error",_0:[-32601,"unhandled Codex app-server request: "+dy(n)]},a=e.requestCallbacks.slice(),o,s=0;for(;pr(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=pe(_);o={TAG:"Error",_0:[-32e3,ve(m).message]}}c===1&&f!==void 0&&(o={TAG:"Ok",_0:f})}s=s+1|0}let d=C(o,i);fl(t,r,"outgoing",_x(ys(n),d))}function gx(e,t,r,n,i){let a;try{a=JSON.parse(i)}catch(_){let m=pe(_);r("codex.app_server_frame_malformed",Object.fromEntries([["purpose","codex.app_server"],["message",ve(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=mx(o);if(d){let _=C(o.id,null),m=JSON.stringify(_),h=e.pending[m];return h!==void 0?(Pt(e.pending,m),h.resolvePending({TAG:"Ok",_0:px(o)})):void 0}if(s)if(l!==void 0){nr(hx(e,t,n,sy(C(o.id,null),l,o.params)),_=>Promise.resolve());return}else return;if(l===void 0)return;let c=oy(l,o.params);e.notificationCallbacks.length!==0?e.notificationCallbacks.forEach(_=>py(r,_,c)):e.pendingNotifications.push(c)}function yx(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 fy(e,t){return Object.fromEntries(t!==void 0?[["jsonrpc","2.0"],["method",e],["params",t]]:[["jsonrpc","2.0"],["method",e]])}function my(e,t,r,n,i,a){return t.socket.readyState()===ma?new Promise((o,s)=>{e.pending[JSON.stringify(n)]={resolvePending:o};let d=fl(t,r,"request",yx(n,i,a));d.TAG!=="Ok"&&(Pt(e.pending,JSON.stringify(n)),o({TAG:"Error",_0:d._0}))}):Promise.resolve({TAG:"Error",_0:fx})}async function _y(e,t,r,n){let i=t!==void 0?t:c=>({socket:ul(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(;pr(d);){let c;try{c={TAG:"Ok",_0:i(e)}}catch(f){let _=pe(f);c={TAG:"Error",_0:ve(_).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=pe(h);m={TAG:"Error",_0:ve(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=Ge(g)})]).finally(()=>{let p=m.contents;if(p!==void 0){clearTimeout(Ee(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=pe(u);p={TAG:"Error",_0:ve(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=pe(u);p={TAG:"Error",_0:ve(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 C(d,{TAG:"Error",_0:l})}async function hy(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()===ma)try{return l()}catch{return}},t.keepaliveIntervalMs);cx(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=>cy(n,m,l))};e.socket.on("SocketClose",l=>o(uy)),e.socket.on("SocketError",l=>o(uy)),e.socket.on("SocketMessage",l=>{let c=l.data;if(c!==void 0)return i("incoming",c),gx(r,e,n,i,c)});let s=await my(r,e,i,"initialize","initialize",zg());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}:(fl(e,i,"outgoing",fy("initialized",void 0)),{TAG:"Ok",_0:{request:(l,c)=>{let f=r.nextId;return r.nextId=r.nextId+1|0,my(r,e,i,f,l,c)},notify:(l,c)=>{fl(e,i,"outgoing",fy(l,c))},onNotification:l=>{r.notificationCallbacks.push(l);let c=r.pendingNotifications.slice();r.pendingNotifications.splice(0,r.pendingNotifications.length),c.forEach(f=>py(n,l,f))},onRequest:l=>{r.requestCallbacks.push(l)},onClose:l=>{let c=r.closeError;if(c!==void 0)return cy(n,l,c);r.closeCallbacks.push(l)},isClosed:()=>zt(r.closeError),close:()=>{clearInterval(a);try{return e.socket.close()}catch{return}}}})}function ef(e,t){return{type:"text",text:e,text_elements:t}}function tf(e,t){return{type:"localImage",detail:e,path:t}}function rf(e,t,r){let n=r.sandboxedNeverDefault&&se(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:se(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 yy(e,t,r){let n=rf(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 Sy=Object.fromEntries([["granular",Object.fromEntries([["sandbox_approval",!1],["rules",!1],["skill_approval",!1],["request_permissions",!1],["mcp_elicitations",!0]])]]);function nf(e,t,r){let n=rf(e,t,r);if(n.TAG!=="Ok")return n;let i;switch(n._0){case"GatedNever":i=t==="danger-full-access"?Sy:"never";break;case"GatedOnRequest":case"GatedOnFailure":i="on-request";break}return{TAG:"Ok",_0:i}}function af(e,t,r){let n=rf(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 Ay(e,t,r){let n=nf(e,t,r);return n.TAG==="Ok"?n._0===Sy:!1}function ml(e){if(e===void 0)return!1;switch(e){case"read-only":case"workspace-write":return!0;default:return!1}}function pl(e){if(e===void 0)return!1;switch(e){case"on-failure":case"on-request":case"untrusted":return!0;default:return!1}}function by(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 Ty="kandan-local-runner";function vy(e,t,r,n,i,a,o){let s=af(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),_=Ge(s._0),m=ee(d._0,p=>p);return{TAG:"Ok",_0:{threadId:e,model:f,serviceTier:c,approvalPolicy:_,sandbox:m,config:l}}}function _l(){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 bx(e){try{return{TAG:"Ok",_0:JSON.parse(JSON.stringify(e))}}catch(t){let r=pe(t);return{TAG:"Error",_0:ve(r).message}}}function As(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=pe(t);return{TAG:"Error",_0:ve(r).message}}}function Tx(e,t){return e.trim()===""?{TAG:"Error",_0:t+" must not be blank"}:{TAG:"Ok",_0:void 0}}async function sf(e,t,r,n){let i=As(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=bx(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=pe(c);return{TAG:"Error",_0:"malformed "+t+" success result: "+ve(f).message}}}function hl(e,t){return sf(e,"thread/start",t,r=>Tx(r.thread.id,"thread.id"))}function ky(e,t){return sf(e,"thread/archive",t,r=>({TAG:"Ok",_0:void 0}))}function Oy(e,t){return sf(e,"thread/compact/start",t,r=>({TAG:"Ok",_0:void 0}))}function en(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 Ox(e){return e==="Codex"?"codex":"claude-code"}function wy(e){switch(e){case"AuthUnavailable":return"auth_unavailable";case"InvalidResponse":return"invalid_response";case"DiscoveryFailed":return"discovery_failed"}}function Cy(e,t,r){if(e.TAG!=="ReadyState")return!1;let n=e.catalog,i=r==="default"?n.defaultModel:r;return Ox(e.provider)===t?n.models.some(a=>a.id===i):!1}function xy(e){switch(e.TAG){case"Pending":return"pending";case"ReadyState":return"ready";case"EmptyState":return"empty";case"FailedState":return"failed"}}function bs(e){return e!==""?e.length<=255:!1}function oo(e,t){return C(e[t],null)}function wx(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=pe(r);return{TAG:"Error",_0:ve(n).message}}}catch(t){let r=pe(t);return{TAG:"Error",_0:ve(r).message}}}function Cx(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(oo(s,"reasoningEffort"));if(d===void 0)return{TAG:"Error",_0:"invalid_reasoning_effort"};let l=d.trim(),c=bs(l),f=a.includes(l);if(!c)return{TAG:"Error",_0:"invalid_reasoning_effort"};if(f)return{TAG:"Error",_0:"invalid_reasoning_effort"};n=en([[l],i]),r=a.concat([l]),t=o+1|0}}function xx(e){if(typeof e!="object"||e===null||Array.isArray(e))return{TAG:"Error",_0:"model/list included invalid visible model metadata"};let t=Ft(oo(e,"model")),r=Ft(oo(e,"displayName")),n=e.hidden,i=wn(oo(e,"supportedReasoningEfforts")),a=Ft(oo(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=bs(s),f=bs(d),_=bs(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=Cx(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 Ex(e,t,r){for(;;){let n=r,i=t,a=e[i];if(a===void 0)return{TAG:"Ok",_0:n};let o=xx(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 Gx(e){let t=async(r,n,i,a)=>{let o=wx({cursor:be(r,null,S=>S),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=wn(oo(d,"data"));if(l===void 0)return{TAG:"Error",_0:{TAG:"InvalidResponseError",_0:"model/list response did not include data"}};let c=Ex(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 S=f.models.length,A=f.defaults;return S===0?{TAG:"Ok",_0:"Empty"}:A.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:A[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=bs(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 Ey(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=Ge(o)});return Promise.race([Gx(e),n]).finally(()=>{let i=r.contents;if(i!==void 0){clearTimeout(Ee(i));return}})}var gl=["wafer","openai"];var V$=new RegExp("[\\x00-\\x1f\\x7f-\\x9f]");function Gy(){return C("1.0.286","0.0.0-unbundled")}var cf=[["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"]],Iy=[["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"]],yl=[["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"]],ff=[["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 pf(){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 _f(e){let t={};return e.forEach(r=>{t[r[0]]=r[1]}),t}function Rx(e){let t={};return e.forEach(r=>{t[r[1]]=r[0]}),t}var Py=_f(Iy),Ry=_f(yl),jx=_f(ff),Mx=Rx(ff);function Fx(e){return e.endsWith("_canonical")?!0:e.endsWith("_legacy")}function jy(e,t){return t>=32?e:Array.isArray(e)?e.map(r=>jy(r,t+1|0)):e===null?e:typeof e==="object"?My(e,t):e}function My(e,t){let r=Object.keys(e),n={};return r.forEach(i=>{let a=e[i];if(a!==void 0){n[i]=jy(a,t+1|0);return}}),r.forEach(i=>{if(Fx(i))return;let a=n[i];if(a===void 0)return;let o=Py[i];if(o!==void 0)n[o]=a;else{let f=Ry[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=jx[s];if(d!==void 0){if(n[i+"_canonical"]!==void 0)return;n[i+"_canonical"]=d;return}let l=Mx[s];if(!(l===void 0||n[i+"_legacy"]!==void 0)){n[i+"_legacy"]=l;return}}),n}function Sl(e){return pf()?My(e,0):e}function Fy(e){let t=e.slice();return e.forEach(r=>{let n=Py[r];n!==void 0&&!t.includes(n)&&t.push(n);let i=Ry[r];if(i!==void 0&&!t.includes(i)){t.push(i);return}}),t}var so="<SENSITIVE_DATA>",$x=Fy(["access_token","authorization","code","cookie","kandan_preview_ticket","refresh_token","token"]),qx=["--access-token","--api-key","--authorization","--cookie","--oauth-code","--password","--refresh-token","--secret","--token"],Nx=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"),Dx=new RegExp("(^|[_-])(access[_-]?token|api[_-]?key|auth[_-]?token|oauth[_-]?code|refresh[_-]?token|secret|token)$","i"),Lx=new RegExp("\\beyJ[A-Za-z0-9_-]*\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\b","g");function Ux(e){return e!==void 0?Nx.test(e)?!0:Dx.test(e):!1}function $y(e){let t={contents:!1};return oc(e).forEach(r=>{if($x.includes(r.toLowerCase())){e.set(r,so),t.contents=!0;return}}),t.contents}function Bx(e){let t=Yi(e,"?"),r=Yi(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 $y(o)?n+"?"+o.toString()+a:e}function zx(e){let t=ln(e);if(t===void 0)return Bx(e);let r=Ee(t);return $y(r.searchParams),r.toString()}function pa(e){return zx(e).replace(Lx,so)}function Wx(e){let t=Yi(e,"=");return t!==void 0?[e.slice(0,t),e.slice(t+1|0)]:[e,void 0]}function gf(e,t){if(Ux(t))return so;if(Array.isArray(e))return t==="args"?Hx(e):e.map(r=>gf(r,void 0));if(e===null)return e;switch(typeof e){case"string":return pa(e);case"object":return qy(e);default:return e}}function Hx(e){let t={contents:!1};return e.map(r=>{if(typeof r=="string"){if(t.contents)return t.contents=!1,so;let n=Wx(r),i=n[0];return qx.includes(i)?n[1]!==void 0?i+"="+so:(t.contents=!0,r):pa(r)}return t.contents=!1,gf(r,void 0)})}function qy(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"?so:gf(a[1],o);return}}),i}var Al=qy;import*as vs from"node:fs";import*as Ny from"node:os";import*as mn from"node:path";var Y$=100*1024*1024;function Kx(e,t,r){if(Da(e,"VITEST")===void 0)return!1;let i=mn.resolve(t,".linzumi"),a=mn.relative(i,mn.resolve(r)),o=a==="",s=a.startsWith(".."+mn.sep),d=mn.isAbsolute(a);return o?!0:s?!1:!d}function Jx(e,t,r){let n=Sl(r),i=Al(n),a={};if(a.ts=e,a.event=t,pf()){let o=vn(cf,d=>{if(d[0]===t)return d[1]}),s=vn(cf,d=>{if(d[1]===t)return d[0]});o!==void 0?a.event_canonical=o:s!==void 0&&(a.event_legacy=s)}return ll(i,(o,s)=>{a[s]=o}),JSON.stringify(a)+`
|
|
15
|
+
`),Jc(t,"SIGINT")}function QC(e){return new Promise((t,r)=>{setTimeout(()=>t(),e)})}async function ZC(e,t,r){let n=Bg(t),i=n!==void 0?n:t,a=e.now()+e.readyzTimeoutMs,o;for(;pr(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 QC(e.readyzPollMs)}return C(o,{TAG:"Error",_0:"timed out waiting for codex app-server readyz"})}async function Zg(e,t,r,n,i,a,o){let s=await Mg();if(s.TAG!=="Ok")return{TAG:"Error",_0:s._0};let d="ws://127.0.0.1:"+s._0.toString(),l=qg(d,n),c={contents:""},f=Jg(process.execPath,{command:t,args:l,pollIntervalMs:Kg,protectedPidsDir:Wc()});Qc(e,"process.spawn",t,l,r,[]);let _=Vg.spawn(f.command,f.args,{cwd:r,env:Ng(e.env,i,a),stdio:Dg,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(H=>H(P))},y=(P,O,G)=>{if(P!=null){P.on("data",H=>{let E=H.toString("utf8");G!==void 0&&G(E);let q=_.pid;e.audit("process.output",Object.fromEntries([["pid",q??null],["purpose","codex.app_server"],["stream",O],["chars",E.length],["output",E]]))});return}};y(_.stdout,"stdout",void 0),y(_.stderr,"stderr",P=>{c.contents=Lg(c.contents+P)});let S=Rg({stop:()=>Zc(e,_),pid:Mr(_.pid),ownProcessGroup:!0,kind:"codex.app_server"});_.once("exit",(P,O)=>{let G=P==null?O??"unknown":P.toString();m.contents=G,S.unregister();let H=_.pid;Qc(e,"process.exit",t,l,r,[["pid",H??null],["code",P??null],["signal",O??null]]);let E=h.slice();h.splice(0,h.length),E.forEach(q=>q()),g({TAG:"Ok",_0:{code:P,signal:O}})}),_.on("error",P=>{m.contents=P.message,S.unregister(),g({TAG:"Error",_0:P.message})});let A=_.pid;Qc(e,"process.spawned",t,l,r,[["pid",A??null]]);let T=()=>Zc(e,_),I=await ZC(e,d,()=>m.contents);if(I.TAG==="Ok")return{TAG:"Ok",_0:{url:d,pid:Mr(_.pid),stop:T,onExit:P=>{if(m.contents!==void 0)return P();h.push(P)},onExitStatus:P=>{let O=p.contents;if(O!==void 0)return P(O);u.push(P)}}};let R=I._0;return Zc(e,_),Ug(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 Zg(e,t,r,n,i,a,o+1|0)):{TAG:"Error",_0:R}}function Yg(e,t,r,n,i,a){return Zg(e,t,r,n,i!==void 0?i:[],a!==void 0?a:!0,1)}function XC(e){return e==="Voice"?"voice":"text"}function ex(e){switch(e){case"All":return"all";case"Coding":return"coding";case"OnboardingDiscovery":return"onboarding-discovery"}}function Yc(e){return JSON.stringify(e)}function Xg(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?XC(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(ex(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 tx(e){return"["+e.map(Yc).join(", ")+"]"}function ey(e,t){let r=["-c","mcp_servers."+e.name+".command="+Yc(e.command),"-c","mcp_servers."+e.name+".args="+tx(e.args)];return Object.entries(e.env).forEach(n=>{r.push("-c"),r.push("mcp_servers."+e.name+".env."+n[0]+"="+Yc(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 rx(e){return["--require","-r","--import","--loader","--experimental-loader"].includes(e)}function nx(e){return["--require=","-r=","--import=","--loader=","--experimental-loader="].some(t=>e.startsWith(t))}function Xc(e,t){for(;;){let r=t,n=e[r];if(n===void 0)return[];if(rx(n)){let i=e[r+1|0];if(i!==void 0)return[n,i].concat(Xc(e,r+2|0));t=r+1|0;continue}if(nx(n))return[n].concat(Xc(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:Xc(r,0).concat([n])}:{command:n,argsPrefix:[]}}function ax(e){switch(e){case"SocketOpen":return"open";case"SocketMessage":return"message";case"SocketClose":return"close";case"SocketError":return"error"}}function ox(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 sx(e){return{readyState:()=>e.readyState,send:t=>{e.send(t)},close:()=>{e.close()},on:(t,r)=>{e.addEventListener(ax(t),n=>r(ox(n)),{})}}}function ul(e,t){return sx(new WebSocket(e,t))}var ry=0,ma=1;function iy(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=pe(r);return{TAG:"Error",_0:ve(n).message}}}catch(t){let r=pe(t);return{TAG:"Error",_0:ve(r).message}}}function cn(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=pe(r);return{TAG:"Error",_0:ve(n).message}}}catch(t){let r=pe(t);return{TAG:"Error",_0:ve(r).message}}}function ay(e,t,r){return cn(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 dx(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 lx(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 oy(e,t){if(!dx(e))return{TAG:"UnknownNotification",_0:{method:e,params:t}};let r=ay(e,void 0,t);if(r.TAG!=="Ok")return{TAG:"UnknownNotification",_0:{method:e,params:t}};let n=iy(r._0);return n.TAG==="Ok"?{TAG:"KnownNotification",method:e,value:n._0,rawParams:t}:{TAG:"UnknownNotification",_0:{method:e,params:t}}}function sy(e,t,r){if(!lx(t))return{TAG:"UnknownServerRequest",_0:{id:e,method:t,params:r}};let n=ay(t,e,r);if(n.TAG!=="Ok")return{TAG:"UnknownServerRequest",_0:{id:e,method:t,params:r}};let i=iy(n._0);return i.TAG==="Ok"?{TAG:"KnownServerRequest",method:t,value:i._0}:{TAG:"UnknownServerRequest",_0:{id:e,method:t,params:r}}}function ao(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 cl(e){return e.TAG==="KnownNotification"?e.method:e._0.method}function dy(e){return e.TAG==="KnownServerRequest"?e.method:e._0.method}function ys(e){return e.TAG==="KnownServerRequest"?e.value.id:e._0.id}function ji(e){let t=ys(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 _i(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 ux(e,t){return C(_i(e,"command"),C(_i(e,"cmd"),C(_i(e,"path"),C(_i(e,"filePath"),C(_i(e,"file"),C(_i(e,"reason"),C(_i(e,"summary"),t)))))))}var fn=ao;function ly(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:ji(e),threadId:n.threadId,turnId:n.turnId,kind:r,summary:C(w(n.command,c=>{if(c!=null)return Ge(c)}),C(w(n.reason,c=>{if(c!=null)return Ge(c)}),r)),payload:ao(n)};case"item/fileChange/requestApproval":let i=t.params;return{requestId:ji(e),threadId:i.threadId,turnId:i.turnId,kind:r,summary:C(w(i.reason,c=>{if(c!=null)return Ge(c)}),r),payload:ao(i)};case"item/permissions/requestApproval":let a=t.params;return{requestId:ji(e),threadId:a.threadId,turnId:a.turnId,kind:r,summary:C(Mr(a.reason),r),payload:ao(a)};case"applyPatchApproval":let o=t.params;return{requestId:ji(e),threadId:o.conversationId,turnId:void 0,kind:r,summary:C(Mr(o.reason),r),payload:ao(o)};case"execCommandApproval":let s=t.params,d=s.command.join(" ").trim(),l=d===""?C(Mr(s.reason),r):d;return{requestId:ji(e),threadId:s.conversationId,turnId:void 0,kind:r,summary:l,payload:ao(s)};default:return}}else{let t=e._0,r=t.method;if(!r.includes("requestApproval"))return;let n=t.params;return{requestId:ji(e),threadId:_i(n,"threadId"),turnId:_i(n,"turnId"),kind:r,summary:ux(n,r),payload:C(n,null)}}}function cx(e){try{e.unref();return}catch{return}}var uy="codex app-server websocket closed",fx="codex app-server websocket is not open";function mx(e){let t=e.method;if(typeof t=="string")return t}function px(e){let t=e.error;if(t===void 0)return{TAG:"ResultReply",_0:C(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 fl(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=pe(a);return{TAG:"Error",_0:ve(o).message}}}function py(e,t,r){try{return t(r)}catch(n){let i=pe(n);return e("codex.notification_callback_failed",Object.fromEntries([["purpose","codex.app_server"],["method",cl(r)],["message",ve(i).message]]))}}function cy(e,t,r){try{return t(r)}catch(n){let i=pe(n);return e("codex.close_callback_failed",Object.fromEntries([["purpose","codex.app_server"],["message",ve(i).message]]))}}function _x(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 hx(e,t,r,n){let i={TAG:"Error",_0:[-32601,"unhandled Codex app-server request: "+dy(n)]},a=e.requestCallbacks.slice(),o,s=0;for(;pr(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=pe(_);o={TAG:"Error",_0:[-32e3,ve(m).message]}}c===1&&f!==void 0&&(o={TAG:"Ok",_0:f})}s=s+1|0}let d=C(o,i);fl(t,r,"outgoing",_x(ys(n),d))}function gx(e,t,r,n,i){let a;try{a=JSON.parse(i)}catch(_){let m=pe(_);r("codex.app_server_frame_malformed",Object.fromEntries([["purpose","codex.app_server"],["message",ve(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=mx(o);if(d){let _=C(o.id,null),m=JSON.stringify(_),h=e.pending[m];return h!==void 0?(Pt(e.pending,m),h.resolvePending({TAG:"Ok",_0:px(o)})):void 0}if(s)if(l!==void 0){nr(hx(e,t,n,sy(C(o.id,null),l,o.params)),_=>Promise.resolve());return}else return;if(l===void 0)return;let c=oy(l,o.params);e.notificationCallbacks.length!==0?e.notificationCallbacks.forEach(_=>py(r,_,c)):e.pendingNotifications.push(c)}function yx(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 fy(e,t){return Object.fromEntries(t!==void 0?[["jsonrpc","2.0"],["method",e],["params",t]]:[["jsonrpc","2.0"],["method",e]])}function my(e,t,r,n,i,a){return t.socket.readyState()===ma?new Promise((o,s)=>{e.pending[JSON.stringify(n)]={resolvePending:o};let d=fl(t,r,"request",yx(n,i,a));d.TAG!=="Ok"&&(Pt(e.pending,JSON.stringify(n)),o({TAG:"Error",_0:d._0}))}):Promise.resolve({TAG:"Error",_0:fx})}async function _y(e,t,r,n){let i=t!==void 0?t:c=>({socket:ul(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(;pr(d);){let c;try{c={TAG:"Ok",_0:i(e)}}catch(f){let _=pe(f);c={TAG:"Error",_0:ve(_).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=pe(h);m={TAG:"Error",_0:ve(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=Ge(g)})]).finally(()=>{let p=m.contents;if(p!==void 0){clearTimeout(Ee(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=pe(u);p={TAG:"Error",_0:ve(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=pe(u);p={TAG:"Error",_0:ve(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 C(d,{TAG:"Error",_0:l})}async function hy(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()===ma)try{return l()}catch{return}},t.keepaliveIntervalMs);cx(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=>cy(n,m,l))};e.socket.on("SocketClose",l=>o(uy)),e.socket.on("SocketError",l=>o(uy)),e.socket.on("SocketMessage",l=>{let c=l.data;if(c!==void 0)return i("incoming",c),gx(r,e,n,i,c)});let s=await my(r,e,i,"initialize","initialize",zg());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}:(fl(e,i,"outgoing",fy("initialized",void 0)),{TAG:"Ok",_0:{request:(l,c)=>{let f=r.nextId;return r.nextId=r.nextId+1|0,my(r,e,i,f,l,c)},notify:(l,c)=>{fl(e,i,"outgoing",fy(l,c))},onNotification:l=>{r.notificationCallbacks.push(l);let c=r.pendingNotifications.slice();r.pendingNotifications.splice(0,r.pendingNotifications.length),c.forEach(f=>py(n,l,f))},onRequest:l=>{r.requestCallbacks.push(l)},onClose:l=>{let c=r.closeError;if(c!==void 0)return cy(n,l,c);r.closeCallbacks.push(l)},isClosed:()=>zt(r.closeError),close:()=>{clearInterval(a);try{return e.socket.close()}catch{return}}}})}function ef(e,t){return{type:"text",text:e,text_elements:t}}function tf(e,t){return{type:"localImage",detail:e,path:t}}function rf(e,t,r){let n=r.sandboxedNeverDefault&&se(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:se(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 yy(e,t,r){let n=rf(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 Sy=Object.fromEntries([["granular",Object.fromEntries([["sandbox_approval",!1],["rules",!1],["skill_approval",!1],["request_permissions",!1],["mcp_elicitations",!0]])]]);function nf(e,t,r){let n=rf(e,t,r);if(n.TAG!=="Ok")return n;let i;switch(n._0){case"GatedNever":i=t==="danger-full-access"?Sy:"never";break;case"GatedOnRequest":case"GatedOnFailure":i="on-request";break}return{TAG:"Ok",_0:i}}function af(e,t,r){let n=rf(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 Ay(e,t,r){let n=nf(e,t,r);return n.TAG==="Ok"?n._0===Sy:!1}function ml(e){if(e===void 0)return!1;switch(e){case"read-only":case"workspace-write":return!0;default:return!1}}function pl(e){if(e===void 0)return!1;switch(e){case"on-failure":case"on-request":case"untrusted":return!0;default:return!1}}function by(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 Ty="kandan-local-runner";function vy(e,t,r,n,i,a,o){let s=af(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),_=Ge(s._0),m=ee(d._0,p=>p);return{TAG:"Ok",_0:{threadId:e,model:f,serviceTier:c,approvalPolicy:_,sandbox:m,config:l}}}function _l(){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 bx(e){try{return{TAG:"Ok",_0:JSON.parse(JSON.stringify(e))}}catch(t){let r=pe(t);return{TAG:"Error",_0:ve(r).message}}}function As(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=pe(t);return{TAG:"Error",_0:ve(r).message}}}function Tx(e,t){return e.trim()===""?{TAG:"Error",_0:t+" must not be blank"}:{TAG:"Ok",_0:void 0}}async function sf(e,t,r,n){let i=As(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=bx(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=pe(c);return{TAG:"Error",_0:"malformed "+t+" success result: "+ve(f).message}}}function hl(e,t){return sf(e,"thread/start",t,r=>Tx(r.thread.id,"thread.id"))}function ky(e,t){return sf(e,"thread/archive",t,r=>({TAG:"Ok",_0:void 0}))}function Oy(e,t){return sf(e,"thread/compact/start",t,r=>({TAG:"Ok",_0:void 0}))}function en(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 Ox(e){return e==="Codex"?"codex":"claude-code"}function wy(e){switch(e){case"AuthUnavailable":return"auth_unavailable";case"InvalidResponse":return"invalid_response";case"DiscoveryFailed":return"discovery_failed"}}function Cy(e,t,r){if(e.TAG!=="ReadyState")return!1;let n=e.catalog,i=r==="default"?n.defaultModel:r;return Ox(e.provider)===t?n.models.some(a=>a.id===i):!1}function xy(e){switch(e.TAG){case"Pending":return"pending";case"ReadyState":return"ready";case"EmptyState":return"empty";case"FailedState":return"failed"}}function bs(e){return e!==""?e.length<=255:!1}function oo(e,t){return C(e[t],null)}function wx(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=pe(r);return{TAG:"Error",_0:ve(n).message}}}catch(t){let r=pe(t);return{TAG:"Error",_0:ve(r).message}}}function Cx(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(oo(s,"reasoningEffort"));if(d===void 0)return{TAG:"Error",_0:"invalid_reasoning_effort"};let l=d.trim(),c=bs(l),f=a.includes(l);if(!c)return{TAG:"Error",_0:"invalid_reasoning_effort"};if(f)return{TAG:"Error",_0:"invalid_reasoning_effort"};n=en([[l],i]),r=a.concat([l]),t=o+1|0}}function xx(e){if(typeof e!="object"||e===null||Array.isArray(e))return{TAG:"Error",_0:"model/list included invalid visible model metadata"};let t=Ft(oo(e,"model")),r=Ft(oo(e,"displayName")),n=e.hidden,i=wn(oo(e,"supportedReasoningEfforts")),a=Ft(oo(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=bs(s),f=bs(d),_=bs(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=Cx(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 Ex(e,t,r){for(;;){let n=r,i=t,a=e[i];if(a===void 0)return{TAG:"Ok",_0:n};let o=xx(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 Gx(e){let t=async(r,n,i,a)=>{let o=wx({cursor:be(r,null,S=>S),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=wn(oo(d,"data"));if(l===void 0)return{TAG:"Error",_0:{TAG:"InvalidResponseError",_0:"model/list response did not include data"}};let c=Ex(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 S=f.models.length,A=f.defaults;return S===0?{TAG:"Ok",_0:"Empty"}:A.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:A[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=bs(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 Ey(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=Ge(o)});return Promise.race([Gx(e),n]).finally(()=>{let i=r.contents;if(i!==void 0){clearTimeout(Ee(i));return}})}var gl=["wafer","openai"];var V$=new RegExp("[\\x00-\\x1f\\x7f-\\x9f]");function Gy(){return C("1.0.287","0.0.0-unbundled")}var cf=[["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"]],Iy=[["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"]],yl=[["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"]],ff=[["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 pf(){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 _f(e){let t={};return e.forEach(r=>{t[r[0]]=r[1]}),t}function Rx(e){let t={};return e.forEach(r=>{t[r[1]]=r[0]}),t}var Py=_f(Iy),Ry=_f(yl),jx=_f(ff),Mx=Rx(ff);function Fx(e){return e.endsWith("_canonical")?!0:e.endsWith("_legacy")}function jy(e,t){return t>=32?e:Array.isArray(e)?e.map(r=>jy(r,t+1|0)):e===null?e:typeof e==="object"?My(e,t):e}function My(e,t){let r=Object.keys(e),n={};return r.forEach(i=>{let a=e[i];if(a!==void 0){n[i]=jy(a,t+1|0);return}}),r.forEach(i=>{if(Fx(i))return;let a=n[i];if(a===void 0)return;let o=Py[i];if(o!==void 0)n[o]=a;else{let f=Ry[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=jx[s];if(d!==void 0){if(n[i+"_canonical"]!==void 0)return;n[i+"_canonical"]=d;return}let l=Mx[s];if(!(l===void 0||n[i+"_legacy"]!==void 0)){n[i+"_legacy"]=l;return}}),n}function Sl(e){return pf()?My(e,0):e}function Fy(e){let t=e.slice();return e.forEach(r=>{let n=Py[r];n!==void 0&&!t.includes(n)&&t.push(n);let i=Ry[r];if(i!==void 0&&!t.includes(i)){t.push(i);return}}),t}var so="<SENSITIVE_DATA>",$x=Fy(["access_token","authorization","code","cookie","kandan_preview_ticket","refresh_token","token"]),qx=["--access-token","--api-key","--authorization","--cookie","--oauth-code","--password","--refresh-token","--secret","--token"],Nx=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"),Dx=new RegExp("(^|[_-])(access[_-]?token|api[_-]?key|auth[_-]?token|oauth[_-]?code|refresh[_-]?token|secret|token)$","i"),Lx=new RegExp("\\beyJ[A-Za-z0-9_-]*\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\b","g");function Ux(e){return e!==void 0?Nx.test(e)?!0:Dx.test(e):!1}function $y(e){let t={contents:!1};return oc(e).forEach(r=>{if($x.includes(r.toLowerCase())){e.set(r,so),t.contents=!0;return}}),t.contents}function Bx(e){let t=Yi(e,"?"),r=Yi(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 $y(o)?n+"?"+o.toString()+a:e}function zx(e){let t=ln(e);if(t===void 0)return Bx(e);let r=Ee(t);return $y(r.searchParams),r.toString()}function pa(e){return zx(e).replace(Lx,so)}function Wx(e){let t=Yi(e,"=");return t!==void 0?[e.slice(0,t),e.slice(t+1|0)]:[e,void 0]}function gf(e,t){if(Ux(t))return so;if(Array.isArray(e))return t==="args"?Hx(e):e.map(r=>gf(r,void 0));if(e===null)return e;switch(typeof e){case"string":return pa(e);case"object":return qy(e);default:return e}}function Hx(e){let t={contents:!1};return e.map(r=>{if(typeof r=="string"){if(t.contents)return t.contents=!1,so;let n=Wx(r),i=n[0];return qx.includes(i)?n[1]!==void 0?i+"="+so:(t.contents=!0,r):pa(r)}return t.contents=!1,gf(r,void 0)})}function qy(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"?so:gf(a[1],o);return}}),i}var Al=qy;import*as vs from"node:fs";import*as Ny from"node:os";import*as mn from"node:path";var Y$=100*1024*1024;function Kx(e,t,r){if(Da(e,"VITEST")===void 0)return!1;let i=mn.resolve(t,".linzumi"),a=mn.relative(i,mn.resolve(r)),o=a==="",s=a.startsWith(".."+mn.sep),d=mn.isAbsolute(a);return o?!0:s?!1:!d}function Jx(e,t,r){let n=Sl(r),i=Al(n),a={};if(a.ts=e,a.event=t,pf()){let o=vn(cf,d=>{if(d[0]===t)return d[1]}),s=vn(cf,d=>{if(d[1]===t)return d[0]});o!==void 0?a.event_canonical=o:s!==void 0&&(a.event_legacy=s)}return ll(i,(o,s)=>{a[s]=o}),JSON.stringify(a)+`
|
|
16
16
|
`}function Vx(e,t,r,n){return fr(Ht(zr(mn.dirname(e)),i=>i.message),()=>{try{return vs.appendFileSync(e,Jx(t,r,n),"utf8"),{TAG:"Ok",_0:void 0}}catch(i){let a=pe(i);return{TAG:"Error",_0:ve(a).message}}})}function Qx(e,t){let r=Da(e,"LINZUMI_CLI_AUDIT_LOG");if(r===void 0)return mn.join(t,".linzumi","logs","command-events.jsonl");let n=r.trim();return n===""?mn.join(t,".linzumi","logs","command-events.jsonl"):n}function Dy(e,t){let r=process.env,n=Ny.homedir(),i=Qx(r,n);return Kx(r,n,i)?{TAG:"Error",_0:"test-mode log isolation violated: refusing to write "+i+" inside the real ~/.linzumi"}:Vx(i,new Date().toISOString(),e,t)}function Yx(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 Ly(e,t,r){let n=Yx(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 Uy(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 eE=Hh(e=>({joinRef:e.item(0,ss(b)),ref:e.item(1,ss(b)),topic:e.item(2,b),event:e.item(3,b),payload:e.item(4,Mt)}));function By(e){return Xr(e,eE)}function Mi(e){let t=Gr(e);return t!==void 0?C(Fr(Ee(t)),"unknown error"):"unknown error"}function rE(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=pe(a),s=Mi(o).slice(0,240);try{return r(n,s)}catch(d){let l=pe(d),c=Mi(l).slice(0,240);try{console.error("linzumi: phoenix.audit_failure_sink_failed event="+n+" message="+c);return}catch{return}}}}}function nE(e){let t=w(Gr(e),r=>t_(r));return t!==void 0?t:null}function lr(e){return e.TAG==="Transport"?e._0.message:e.message}function bf(e){if(e.TAG!=="Transport")return e.reply}function iE(e,t){return{TAG:"Transport",_0:{phase:"WaitForConnection",reason:"TimeoutReason",message:"phoenix push timed out after "+e.toString()+"ms waiting for connection: "+t}}}function aE(e,t){return{TAG:"Transport",_0:{phase:"Reply",reason:"TimeoutReason",message:"phoenix push timed out after "+e.toString()+"ms: "+t}}}function oE(e){return e!==void 0?e():!0}function Vy(e){if(e.TAG!=="Transport")return!1;let t=e._0;return t.phase==="WaitForConnection"?!0:t.reason==="TopicLost"}function Qy(e){return e.TAG==="Transport"}function zy(e,t,r){return e==="phx_join"?r:t}var sE="base64url.bearer.phx.";function dE(e){let t;t=typeof e=="object"&&e!==null&&!Array.isArray(e)?Al(e):e;let r=JSON.stringify(t);return r.length<=400?r:r.slice(0,400)+"\u2026"}var lE=new RegExp("/$");function uE(e){let t=ln(e);if(t===void 0)return{TAG:"Error",_0:"Invalid URL"};let r=Ee(t);switch(r.protocol){case"http:":r.protocol="ws:";break;case"https:":r.protocol="wss:";break}return r.pathname=r.pathname.replace(lE,"")+"/socket/websocket",r.searchParams.set("vsn","2.0.0"),{TAG:"Ok",_0:r.toString()}}function cE(e){return[sE+z_(e),"phoenix"]}var Zy="[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?<![\\uD800-\\uDBFF])[\\uDC00-\\uDFFF]",Os=new RegExp(Zy),ws=new RegExp(Zy,"g"),Cs="\uFFFD";function yf(e){if(Array.isArray(e))return e.some(yf);if(e===null)return!1;switch(typeof e){case"string":return Os.test(e);case"object":return Object.entries(e).some(t=>Os.test(t[0])?!0:yf(t[1]));default:return!1}}function Sf(e){if(Array.isArray(e))return e.map(Sf);if(e===null)return e;switch(typeof e){case"string":return e.replace(ws,Cs);case"object":return Object.fromEntries(Object.entries(e).map(t=>[t[0].replace(ws,Cs),Sf(t[1])]));default:return e}}function fE(e){return Object.entries(e).some(t=>Os.test(t[0])?!0:yf(t[1]))}function mE(e){return Object.fromEntries(Object.entries(e).map(t=>[t[0].replace(ws,Cs),Sf(t[1])]))}function pE(e,t,r){return Os.test(e)||Os.test(t)?!0:fE(r)}function _E(e,t,r){return{frameTopic:e.replace(ws,Cs),frameEvent:t.replace(ws,Cs),framePayload:mE(r)}}function Wy(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 Hy(e){let t;try{t={TAG:"Ok",_0:JSON.parse(e)}}catch(n){let i=pe(n);t={TAG:"Error",_0:Mi(i)}}if(t.TAG!=="Ok")return{TAG:"Error",_0:t._0};let r=By(t._0);return r.TAG==="Ok"?{TAG:"Ok",_0:r._0}:{TAG:"Error",_0:"invalid Phoenix frame"}}function Tf(e){if(typeof e=="object"&&e!==null&&!Array.isArray(e))return e}function xs(e,t){return w(e,r=>{let n=r[t];if(typeof n=="object"&&n!==null&&!Array.isArray(n))return n})}function _a(e,t){return w(e,r=>{let n=r[t];if(typeof n=="string")return n})}function ks(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 hE(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 gE(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?Vr(e.status,"ok"):!1}function yE(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)?se(r.reason,"unmatched topic"):!1}function SE(e){return typeof e!="object"||e===null||Array.isArray(e)?!1:typeof e.type=="string"}function bl(e,t){let r=e[t];if(r!==void 0&&typeof r=="number"&&kt(r))return r}function Ky(e){if(typeof e=="object"&&e!==null&&!Array.isArray(e))return bl(e,"control_seq")}function AE(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"&&kt(n)?{event:t,payload:r,controlSeq:n}:void 0:{event:t,payload:r,controlSeq:void 0}}var bE="npm install -g @linzumi/cli@latest",TE=new RegExp("^npm install -g @linzumi\\/cli(@[0-9A-Za-z^~.-]{1,32})?$"),vE=new RegExp("^\\d+\\.\\d+\\.\\d+(?:[-+][0-9A-Za-z.-]{1,32})?$");function kE(e){return e!==void 0&&typeof e=="string"&&e.length<=100&&TE.test(e)?e:bE}function OE(e){return e!==void 0&&typeof e=="string"&&e.length<=64&&vE.test(e)?"@linzumi/cli "+e+" or newer":"a newer @linzumi/cli"}function Af(e){let t=Tf(e),r=xs(t,"response"),n=_a(r,"error");if(n!==void 0)return n;let i=_a(r,"reason");if(i!==void 0)return i;let a=_a(r,"message");if(a!==void 0)return a;let o=_a(t,"error");return t!==void 0?o!==void 0?o:"unknown":"invalid reply"}function Jy(e){let t=xs(Tf(e),"response");if(t===void 0||!se(t.error,"commander_version_too_old"))return Af(e);let r=OE(t.min_version),n=kE(t.upgrade_command);return"commander_version_too_old: this Linzumi server requires "+r+". Update with: "+n}function wE(e){let t=e;if(_a(t,"agent_provider")==="claude-code")return"claude-code-sdk";let n=xs(t,"metadata"),i=xs(n,"local_codex_runner");return _a(i,"agent_provider")==="claude-code"?"claude-code-sdk":"codex-app-server"}function CE(e,t){let r;try{r=e.initial(t)}catch{r=void 0}if(r!==void 0&&kt(r)&&r>=0)return r}function xE(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 Yy(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 z;try{z=JSON.parse(a)}catch{z=void 0}o=z!==void 0?{TAG:"Ok",_0:z}:{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:ul,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 z;try{z=t._0()}catch{z=void 0}if(z!==void 0&&z.trim()!=="")return c.contents=z,{TAG:"Ok",_0:z};let me=c.contents;return me!==void 0?{TAG:"Ok",_0:me}:{TAG:"Error",_0:{TAG:"Failed",message:"phoenix token provider returned no usable token"}}},_=i.onOperatorNotice,m=_!==void 0?_:z=>{console.error(z)},h=i.auditEvent,p=h!==void 0?rE(h,i.onAuditFailure):(z,me)=>{},u=i.onPushRecorded,g=u!==void 0?u:z=>{},y=C(i.pushTimeoutMs,3e4),S=i.joinTimeoutMs,A=i.pushTimeoutMs,T=S!==void 0?S:A!==void 0?y:125e3,I=i.controlCursorStore,R=i.controlEpochStore,P=C(i.nowMs,()=>Date.now()),O=C(i.heartbeatScheduler,(z,me)=>{let ce=setInterval(z,me);return()=>{clearInterval(ce)}}),G={},H={},E={},q={},M={},x={},v={},D={},W=new Set,K={contents:1},oe=[],J=[],ie=[],Y=[],X=[],de=[],N={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},_e=z=>{let me=Object.entries(G);me.forEach(ce=>Pt(G,ce[0])),me.forEach(ce=>{let ge=ce[1];clearTimeout(ge.timer),ge.settle({TAG:"Error",_0:z})})},Me=()=>{if(N.settleReady!==void 0)return;let me={contents:void 0};N.ready=new Promise((ce,ge)=>{me.contents=ce}),N.settleReady=me.contents},Ye=()=>{let z=N.settleReady;z!==void 0&&z({TAG:"Ok",_0:void 0}),N.settleReady=void 0},rt=z=>{let me=N.settleReady;me!==void 0&&me({TAG:"Error",_0:z}),N.settleReady=void 0},nt=()=>{let z=N.cancelHeartbeat;if(z!==void 0){z(),N.cancelHeartbeat=void 0;return}},st=()=>{let z=N.backoffResetTimer;if(z!==void 0){clearTimeout(Ee(z)),N.backoffResetTimer=void 0;return}},lt=z=>{N.closed=!0;let me=N.reconnectTimer;me!==void 0&&(clearTimeout(Ee(me)),N.reconnectTimer=void 0),nt(),st();let ce=N.websocket;ce!==void 0&&ce.close(),rt(z),_e({TAG:"Transport",_0:{phase:"Reply",reason:"ClientClosed",message:"phoenix client closed"}})},Ie=z=>C(D[z],0),$e=z=>{Pt(q,z),Pt(M,z),Pt(x,z),Pt(v,z),D[z]=Ie(z)+1|0},je=(z,me)=>{let ce=q[z];if(ce!==void 0){if(me===ce+1){let ye=ce+1,Fe=M[z];if(Fe!==void 0)for(;Fe.has(ye+1);)ye=ye+1,Fe.delete(ye);q[z]=ye;return}let ge=M[z],we;if(ge!==void 0)we=ge;else{let ye=new Set;M[z]=ye,we=ye}we.add(me);return}q[z]=me},St=(z,me)=>{let ce=Ky(me);if(ce===void 0)return!0;let ge=q[z],we=ge!==void 0?ce<=ge:!1,ye=M[z],Fe=ye!==void 0?ye.has(ce):!1;return we||Fe?!1:(je(z,ce),!0)},$=(z,me)=>{if(I!==void 0)try{return I.onAdvance(z,me)}catch{return}},F=(z,me)=>{if(!z.startsWith("local_runner:"))return;let ce=bl(me,"control_high_water");if(ce===void 0)return;let ge=q[z];if(ge!==void 0&&ce<ge){$e(z);let we=0;if(I===void 0)return;let ye=I.reset;if(ye===void 0)return;try{return ye(z,we)}catch{return}}},Z=(z,me)=>{let ce=z.startsWith("local_runner:");if(R===void 0||!ce)return!1;let ge=me.control_epoch;if(ge===void 0||typeof ge!="string"||ge==="")return!1;let we;try{we=R.adopt(z,ge)}catch{we=!1}return we&&($e(z),de.forEach(ye=>{try{return ye(z)}catch{return}})),we},te=z=>{let me=q[z];if(me!==void 0)return me;if(I===void 0)return;let ce=CE(I,z);return ce!==void 0?(q[z]=ce,ce):0},ae=new Set,Ce=(z,me,ce,ge)=>{try{let we=!1;if(z.startsWith("local_runner:")&&me==="control"&&SE(ge)){let ye;if(St(z,ge)){let Fe=Ky(ge);if(Fe!==void 0){let bt=x[z],Lt;if(bt!==void 0)Lt=bt;else{let Yt=new Set;x[z]=Yt,Lt=Yt}Lt.add(Fe)}let mt=Ie(z),pt=Fe!==void 0?()=>{if(mt!==Ie(z))return;let bt=x[z];bt!==void 0&&bt.delete(Fe);let Lt=v[z];Lt!==void 0&&Fe<=Lt||(v[z]=Fe);let Yt=w(bt,re=>We(re.values().toArray(),void 0,(V,Se)=>V!==void 0&&V<=Se?V:Se)),Jt=Yt!==void 0?Yt-1:v[z];if(Jt===void 0)return;let qt=q[z],U=qt!==void 0&&qt<Jt?qt:Jt;$(z,U)}:()=>{};oe.forEach(bt=>bt(ge,pt)),ye=!1}else ye=!0;we=ye}if(!we&&ce===void 0&&me!=="phx_reply"&&me!=="phx_error"){J.forEach(ye=>ye(z,me,ge));return}else return}catch(we){let ye=pe(we),Fe=Mi(ye);try{p("phoenix.pushed_frame_dispatch_failed",Object.fromEntries([["topic",z],["frame",me],["message",Fe],["stack",nE(ye)],["payloadSnippet",dE(ge)],["dropped",!0]]))}catch{}if(ae.has(me))return;ae.add(me);try{return m('linzumi: dropped a pushed "'+me+'" frame on '+z+" whose dispatch failed ("+Fe+"); see the CLI audit log for the payload snippet.")}catch{return}}},xe=(z,me)=>{let ce=q[z],ge={contents:ce!==void 0&&ce>=me?ce:me},we=M[z];if(we!==void 0)for(we.values().toArray().forEach(ye=>{if(ye<=ge.contents){we.delete(ye);return}});we.has(ge.contents+1);)ge.contents=ge.contents+1,we.delete(ge.contents);q[z]=ge.contents},Qe=z=>{let me=q[z];if(me===void 0)return;let ce=x[z],ge=ce!==void 0&&ce.size>0?ee(We(ce.values().toArray(),void 0,(we,ye)=>we!==void 0&&we<=ye?we:ye),we=>we-1):void 0;$(z,ge!==void 0&&ge<me?ge:me)},at=(z,me)=>{if(z.startsWith("chat:")){let ce=me.events;return ce===void 0?{TAG:"Ok",_0:void 0}:ce===null?{TAG:"Ok",_0:void 0}:Array.isArray(ce)?(ce.forEach(ge=>{J.forEach(we=>we(z,"event",ge))}),{TAG:"Ok",_0:void 0}):{TAG:"Error",_0:"phoenix rejoin returned invalid events for "+z}}else{if(!z.startsWith("local_runner:"))return{TAG:"Ok",_0:void 0};let ce=me.controls;if(ce===void 0)return{TAG:"Ok",_0:void 0};if(ce===null)return{TAG:"Ok",_0:void 0};if(!Array.isArray(ce))return{TAG:"Error",_0:"phoenix rejoin returned invalid controls for "+z};ce.forEach(we=>{let ye=AE(we);if(ye===void 0)return;let Fe={};Object.entries(ye.payload).forEach(pt=>{Fe[pt[0]]=pt[1]}),Fe.replayed=!0;let mt=ye.controlSeq;mt!==void 0&&(Fe.control_seq=mt),Ce(z,ye.event,void 0,Fe)});let ge=bl(me,"controls_advance_to");if(ge!==void 0){let we=me.control_high_water;typeof we=="number"&&ge>we||xe(z,ge)}return Qe(z),{TAG:"Ok",_0:void 0}}},ot=(z,me,ce,ge,we)=>{let ye=N.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()!==ma)return Promise.resolve({TAG:"Error",_0:{TAG:"Transport",_0:{phase:"WaitForConnection",reason:"SocketNotOpen",message:"phoenix websocket is not open"}}});let Fe=N.nextRef.toString();N.nextRef=N.nextRef+1|0,me==="phx_join"&&(E[z]=Fe);let mt=me==="phx_join"?Fe:E[z],pt=Sl(ce),bt;if(pE(z,me,pt)){let Ue=_E(z,me,pt);p("phoenix.outbound_frame_lone_surrogate_sanitized",Object.fromEntries([["purpose","phoenix.send_totality"],["topic",Ue.frameTopic],["frame_event",Ue.frameEvent]])),bt=Ue}else bt={frameTopic:z,frameEvent:me,framePayload:pt};let Lt=bt.framePayload,Yt=Fe,Jt=bt.frameTopic,qt=bt.frameEvent,V=Wy({joinRef:mt,ref:Yt,topic:Jt,event:qt,payload:Lt}),Se=Math.max(0,Math.ceil(ge))|0;return new Promise((Ue,Pe)=>{let _t=Lt.push_correlation_id,Ne=typeof _t=="string"&&_t.length<=64?_t:void 0,Je={contents:void 0},it={contents:!1},wt=Tt=>{if(it.contents)return;it.contents=!0;let jt=Je.contents;if(Ne!==void 0&&jt!==void 0){let Xt;Xt=Tt.TAG==="Ok"?"acknowledged":"failed";let xr={push_correlation_id:Ne,push_event:me,socket_send_to_reply_ms:Math.max(0,performance.now()-jt),outcome:Xt},Kr;Kr=Tt.TAG==="Ok"?Tt._0:bf(Tt._0),Gt(w(Kr,hE),Zi=>{xr.server_handler_us=Zi});try{p("phoenix.push_timing",xr)}catch{}}Ue(Tt)},Be=setTimeout(()=>{if(G[Fe]!==void 0)return Pt(G,Fe),wt({TAG:"Error",_0:aE(Se,me)})},Se);G[Fe]={event:me,timer:Be,settle:wt};try{g({provider:wE(Lt),rawFrameText:V,topic:z,event:me,payload:Lt})}catch{}Je.contents=performance.now();let tt;try{tt={TAG:"Ok",_0:ye.send(V)}}catch(Tt){let jt=pe(Tt);tt={TAG:"Error",_0:Mi(jt)}}if(tt.TAG==="Ok")return we!==void 0?we():void 0;Pt(G,Fe),clearTimeout(Be),wt({TAG:"Error",_0:{TAG:"Transport",_0:{phase:"Reply",reason:"SocketClosedReason",message:tt._0}}})})},dt=(z,me)=>{let ce={};if(me.forEach(ge=>{Object.entries(ge).forEach(we=>{let ye=we[1],Fe=we[0],mt=Fe==="last_seq",pt=ce[Fe];if(mt&&typeof pt=="number"&&typeof ye=="number"){ce[Fe]=ye<pt?ye:pt;return}if(pt===void 0){ce[Fe]=ye;return}})}),z.startsWith("local_runner:")){let ge=te(z);ge!==void 0&&(ce.last_control_seq=ge);let we=xE(R,z);we!==void 0&&(ce.last_control_epoch=we)}return ce},j=z=>Object.entries(z).map(me=>me[1].payload()),B=async z=>{let me=0,ce=0,ge=!0;for(;ge;){let we=H[z];if(we!==void 0){let ye=te(z),Fe=await ot(z,"phx_join",dt(z,j(we)),T,void 0);if(me=me+1|0,Fe.TAG==="Ok"){let mt=ks(Fe._0);if(mt!==void 0){let pt=mt.controls,bt=Array.isArray(pt)?pt.length:0;ce=ce+bt|0;let Lt=se(mt.controls_truncated,!0),Yt=te(z),Jt;if(Lt){let qt=bl(mt,"control_high_water");Jt=qt!==void 0&&Yt!==void 0?qt-Yt>0?qt-Yt:0:void 0}else Jt=0;if(p("phoenix.control_backlog_fetch_progress",Object.fromEntries([["topic",z],["fetches",me],["fetched",ce],["remaining_estimate",Jt!==void 0?Jt:null],["truncated",Lt]])),Lt)if(se(Yt,ye)){let qt=Yt!==void 0?Yt.toString():"undefined";m("phoenix.control_backlog_fetch_stalled topic="+z+" fetches="+me.toString()+" fetched="+ce.toString()+" cursor="+qt+"; 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(me%20===0){let U=Jt!==void 0?Jt.toString():"unknown";m("phoenix.control_backlog_cap_exceeded topic="+z+" fetches="+me.toString()+" fetched="+ce.toString()+" remaining_estimate="+U+"; continuing the paginated backlog fetch (a healthy connection never reconnects, so nothing is deferred)")}await new Promise((U,re)=>{setImmediate(()=>U())})}else ge=!1}else ge=!1}else ge=!1}else ge=!1}},Q=z=>{if(!W.has(z)){W.add(z),nr(B(z).then(()=>{W.delete(z)}),me=>(W.delete(z),Promise.resolve()));return}},ne=async(z,me)=>z.startsWith("local_runner:")?await We(ie,Promise.resolve({TAG:"Ok",_0:void 0}),(ce,ge)=>ce.then(async we=>we.TAG==="Ok"?await nr(ge(z,me),ye=>Promise.resolve({TAG:"Error",_0:Mi(ye)})):{TAG:"Error",_0:we._0})):{TAG:"Ok",_0:void 0},fe=async(z,me)=>{let ce=!0,ge=z.payload,we=z.event,ye=z.topic,Fe=z.ref;if(Fe!==void 0&&ye==="phoenix"&&we==="phx_reply"){let pt=N.pendingHeartbeats.find(bt=>bt.heartbeatRef===Fe?bt.generation===N.connectionGeneration:!1);if(pt!==void 0){let bt=pt.generation,Lt=P(),Yt=Math.max(0,Lt-pt.sentAt);N.pendingHeartbeats=N.pendingHeartbeats.filter(Jt=>Jt.heartbeatRef!==Fe?!0:Jt.generation!==bt),N.lastHeartbeatAckAt=Lt,N.lastHeartbeatLatencyMs=Yt,p("phoenix.heartbeat_acknowledged",Object.fromEntries([["connection_generation",bt],["ref",Fe],["latency_ms",Yt]]))}}if(Fe!==void 0&&(we==="phx_reply"||we==="phx_error")){let pt=G[Fe];if(pt!==void 0){Pt(G,Fe),clearTimeout(pt.timer);let bt=we==="phx_error",Lt=yE(ge),Yt=gE(ge)&&pt.event!=="phx_join";if(bt)pt.settle({TAG:"Error",_0:{TAG:"Failed",message:"phoenix push failed"}});else if(Lt){let Jt={TAG:"Transport",_0:{phase:"Reply",reason:"TopicLost",message:"phoenix topic authority lost"}};pt.settle({TAG:"Error",_0:Jt}),me()}else if(Yt)pt.settle({TAG:"Error",_0:{TAG:"Failed",message:"phoenix push failed: "+Af(ge),reply:ge}});else{let Jt=H[ye],qt=ks(ge),U;if(Jt!==void 0&&qt!==void 0&&pt.event==="phx_join"){let re=We(Object.values(Jt),{TAG:"Ok",_0:void 0},(V,Se)=>fr(V,()=>{let Ue=Se.onJoinReply;return Ue!==void 0?Ue(qt):{TAG:"Ok",_0:void 0}}));if(re.TAG==="Ok"){let V=await ne(ye,qt);if(V.TAG==="Ok"){let Se=Z(ye,qt);F(ye,qt);let Ue=Se?{TAG:"Ok",_0:void 0}:at(ye,qt);Ue.TAG==="Ok"?(ye.startsWith("local_runner:")&&(se(qt.controls_truncated,!0)||Se)&&Q(ye),U=!1):(pt.settle({TAG:"Error",_0:{TAG:"Failed",message:Ue._0}}),ce=!1,U=!0)}else pt.settle({TAG:"Error",_0:{TAG:"Failed",message:V._0}}),ce=!1,U=!0}else pt.settle({TAG:"Error",_0:{TAG:"Failed",message:re._0}}),ce=!1,U=!0}else U=!1;U||pt.settle({TAG:"Ok",_0:ge})}}}return Ce(ye,we,Fe,ge),ce},ke=async(z,me)=>{let ce=Hy(C(z.data,"undefined"));return ce.TAG==="Ok"?await fe(ce._0,me):(p("phoenix.frame_decode_failed",Object.fromEntries([["message",ce._0],["dropped",!0]])),!0)},Oe={},le=async z=>{Object.entries(Oe).forEach(ye=>Pt(Oe,ye[0]));let me=Object.entries(H),ce,ge=0;for(;ce===void 0&&ge<me.length;){let ye=me[ge];if(ye!==void 0){let Fe=ye[0],mt=await ot(Fe,"phx_join",dt(Fe,j(ye[1])),T,void 0);if(mt.TAG==="Ok"){let pt=mt._0,bt=ks(pt);if(bt!==void 0)Oe[Fe]=bt;else{let Lt=Jy(pt),Yt=w(xs(Tf(pt),"response"),qt=>_a(qt,"error")),Jt=0;Yt==="commander_version_too_old"?(z.contents={message:Lt},ce={TAG:"Failed",message:Lt}):Jt=1,Jt===1&&(ce={TAG:"Failed",message:"phoenix rejoin failed for "+Fe})}}else ce=mt._0}ge=ge+1|0}let we=ce;return we!==void 0?{TAG:"Error",_0:we}:{TAG:"Ok",_0:void 0}},Te={contents:()=>Promise.resolve()},ue=()=>{let z=N.closed,me=N.reconnectTimer;if(z||me!==void 0)return;Me();let ce=Math.min(1e4,250*2**N.reconnectAttempts);N.reconnectAttempts=N.reconnectAttempts+1|0,N.reconnectTimer=Ge(setTimeout(()=>{N.reconnectTimer=void 0,Te.contents()},Math.random()*ce|0))},Ae=(z,me,ce,ge)=>{let we=ge!==void 0?ge:"reconnect_failure",ye=N.connected,Fe=N.connectedAt;N.connectedAt=void 0,N.connected=!1;let mt=N.websocket;if(N.websocket=void 0,nt(),st(),mt!==void 0&&(mt.readyState()===ry||mt.readyState()===ma))try{mt.close()}catch{}_e(z),ue();let pt=N.hasEverConnected,bt;if(ye)bt=!0;else if(pt)switch(we){case"hard_reset":case"reconnect_failure":bt=!0;break;default:bt=!1}else bt=!1;if(!bt)return;let Lt;Lt=ce!==void 0&&ce!==""?ce:void 0;let Yt=ee(Fe,Se=>Math.max(0,P()-Se)),Jt=N.reconnectAttempts,qt=N.connectionGeneration,U={closeCode:me,closeReason:Lt,previousSessionDurationMs:Yt,reconnectCount:Jt,connectionGeneration:qt,trigger:we},re=N.pendingHeartbeats[N.pendingHeartbeats.length-1|0],V=re!==void 0?[["last_heartbeat_ref",re.heartbeatRef],["last_heartbeat_generation",re.generation],["heartbeat_unacknowledged_ms",Math.max(0,P()-re.sentAt)]]:[["last_heartbeat_ref",null],["last_heartbeat_generation",null],["heartbeat_unacknowledged_ms",null]];p("phoenix.transport_disconnected",Object.fromEntries([["trigger",we],["connection_generation",N.connectionGeneration],["close_code",C(ee(me,Se=>Se),null)],["close_reason",C(ee(Lt,Se=>Se),null)],["session_duration_ms",C(ee(Yt,Se=>Se),null)],["reconnect_count",Jt],["last_heartbeat_ack_at_ms",C(ee(N.lastHeartbeatAckAt,Se=>Se),null)],["last_heartbeat_latency_ms",C(ee(N.lastHeartbeatLatencyMs,Se=>Se),null)]].concat(V))),ye&&X.forEach(Se=>{try{return Se(U)}catch{return}}),N.pendingHeartbeats=[],N.lastHeartbeatAckAt=void 0,N.lastHeartbeatLatencyMs=void 0},he=()=>{Ae({TAG:"Transport",_0:{phase:"Reply",reason:"TopicLost",message:"phoenix topic authority lost"}},void 0,"unmatched_topic","topic_authority_lost");let z=N.reconnectTimer;z!==void 0&&(clearTimeout(Ee(z)),N.reconnectTimer=void 0),Te.contents()},De=()=>{nt(),N.cancelHeartbeat=O(()=>{let z=N.websocket;if(z===void 0||z.readyState()!==ma)return;let me=N.pendingHeartbeats.length-1|0,ce=N.pendingHeartbeats[me];ce!==void 0&&!ce.overdueReported&&(p("phoenix.heartbeat_overdue",Object.fromEntries([["connection_generation",ce.generation],["ref",ce.heartbeatRef],["elapsed_ms",Math.max(0,P()-ce.sentAt)]])),N.pendingHeartbeats=N.pendingHeartbeats.map((mt,pt)=>pt===me?{heartbeatRef:mt.heartbeatRef,sentAt:mt.sentAt,generation:mt.generation,overdueReported:!0}:mt));let ge=N.nextRef.toString();N.nextRef=N.nextRef+1|0;let ye={joinRef:void 0,ref:ge,topic:"phoenix",event:"heartbeat",payload:s},Fe=P();try{z.send(Wy(ye));let mt=N.pendingHeartbeats.length>=8?N.pendingHeartbeats.slice(N.pendingHeartbeats.length-7|0):N.pendingHeartbeats;return N.pendingHeartbeats=mt.concat([{heartbeatRef:ge,sentAt:Fe,generation:N.connectionGeneration,overdueReported:!1}]),p("phoenix.heartbeat_sent",Object.fromEntries([["connection_generation",N.connectionGeneration],["ref",ge]]))}catch{return}},3e4)},Ze=()=>{st();let z=setTimeout(()=>{if(N.backoffResetTimer=void 0,N.connected){N.reconnectAttempts=0;return}},3e4);z.unref(),N.backoffResetTimer=Ge(z)},ft=(z,me)=>new Promise((ce,ge)=>{let we={contents:void 0},ye=Fe=>{let mt=we.contents;mt!==void 0&&(clearTimeout(Ee(mt)),we.contents=void 0),ce(Fe)};z.on("SocketOpen",Fe=>ye({TAG:"Ok",_0:void 0})),z.on("SocketError",Fe=>ye({TAG:"Error",_0:"websocket open failed"})),z.on("SocketClose",Fe=>ye({TAG:"Error",_0:"websocket closed before open"})),we.contents=Ge(setTimeout(()=>{we.contents=void 0,ye({TAG:"Error",_0:"websocket open timed out after "+me.toString()+"ms"})},me))}),yt=async()=>{if(N.closed)return;let z=f(),me=uE(e),ce;if(z.TAG==="Ok")if(me.TAG==="Ok"){let ye;try{ye={TAG:"Ok",_0:d(me._0,cE(z._0))}}catch(Fe){let mt=pe(Fe);ye={TAG:"Error",_0:{TAG:"Failed",message:Mi(mt)}}}ce=ye.TAG==="Ok"?{TAG:"Ok",_0:ye._0}:{TAG:"Error",_0:ye._0}}else ce={TAG:"Error",_0:{TAG:"Failed",message:me._0}};else ce={TAG:"Error",_0:z._0};if(ce.TAG==="Ok"){let ye=ce._0,Fe={contents:void 0};N.websocket=ye;let mt={contents:void 0},pt={contents:0},bt=Ne=>{pt.contents=pt.contents+1|0;let Je=pt.contents;mt.contents=Ne,Ne.then(it=>(pt.contents===Je&&(mt.contents=void 0),it))},Lt=Ne=>nr(ke(Ne,he),Je=>{let it=Mi(Je);p("phoenix.message_dispatch_failed",Object.fromEntries([["message",it],["reconnecting",!0]]));let wt=N.websocket;return wt!==void 0&&wt===ye&&Ae({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",Ne=>{let Je=Hy(C(Ne.data,"undefined")),it;if(Je.TAG==="Ok"){let Be=Je._0,tt=Be.ref;if(tt!==void 0){let Tt=Be.topic;if(Be.event==="phx_reply"){let jt=G[tt];it=jt!==void 0?jt.event==="phx_join"&&Tt in H&&ks(Be.payload)!==void 0&&Tt.startsWith("local_runner:")&&ie.length!==0:!1}else it=!1}else it=!1}else it=!1;let wt=mt.contents;if(wt!==void 0)return bt(wt.then(async Be=>{let tt=N.websocket;return Be&&tt!==void 0&&tt===ye?await Lt(Ne):!1}));if(it)return bt(Lt(Ne));Lt(Ne)}),ye.on("SocketClose",Ne=>{let Je=N.websocket;if(Je!==void 0&&Je===ye)return Ae({TAG:"Transport",_0:{phase:"Reply",reason:"SocketClosedReason",message:"phoenix websocket closed"}},Ne.code,Ne.reason,"socket_close")}),ye.on("SocketError",Ne=>{let Je=N.websocket;if(Je!==void 0&&Je===ye)return Ae({TAG:"Transport",_0:{phase:"Reply",reason:"SocketClosedReason",message:"phoenix websocket closed"}},void 0,void 0,"socket_error")});let Yt=await ft(ye,y),Jt=()=>{if(N.closed)return!0;let Ne=N.websocket;return Ne!==void 0?Ne!==ye:!1},qt;if(Yt.TAG==="Ok")if(Jt())qt={TAG:"Ok",_0:!1};else{N.connectionGeneration=N.connectionGeneration+1|0;let Ne=await le(Fe);qt=Ne.TAG==="Ok"?Jt()?{TAG:"Ok",_0:!1}:{TAG:"Ok",_0:!0}:{TAG:"Error",_0:Ne._0}}else qt={TAG:"Error",_0:{TAG:"Failed",message:Yt._0}};if(qt.TAG==="Ok"){if(!qt._0||(N.connected=!0,N.connectedAt=P(),N.hasEverConnected=!0,N.pendingHeartbeats=[],N.lastHeartbeatAckAt=void 0,N.lastHeartbeatLatencyMs=void 0,Ze(),De(),Ye(),N.connectionGeneration<=1))return;let Ne={};Object.entries(Oe).forEach(it=>{Ne[it[0]]=it[1]});let Je={contents:!1};return Y.forEach(it=>{if(Je.contents)return;let wt;try{wt={TAG:"Ok",_0:it(Ne)}}catch{wt={TAG:"Error",_0:void 0}}if(wt.TAG!=="Ok"){Je.contents=!0;return}nr(wt._0,Be=>Promise.resolve())}),Je.contents&&!N.closed?Ae({TAG:"Transport",_0:{phase:"Reply",reason:"SocketClosedReason",message:"phoenix websocket reconnect failed"}},void 0,void 0,void 0):void 0}let U=qt._0,re=N.websocket,V=re!==void 0?re!==ye:!1,Se=N.closed||V,Ue=N.hasEverConnected;if(Se)return;if(!Ue)return lt(U);let Pe=Fe.contents;if(Pe===void 0)return Ae({TAG:"Transport",_0:{phase:"Reply",reason:"SocketClosedReason",message:"phoenix websocket reconnect failed"}},void 0,void 0,void 0);N.connected=!1,lt(U),p("phoenix.commander_version_refused",{message:Pe.message,connection_generation:N.connectionGeneration});let _t=i.onVersionRefusal;if(_t!==void 0)return _t(Pe);console.error(Pe.message);return}let ge=N.closed,we=N.hasEverConnected;if(!ge)return we?Ae({TAG:"Transport",_0:{phase:"Reply",reason:"SocketClosedReason",message:"phoenix websocket reconnect failed"}},void 0,void 0,void 0):lt(ce._0)};Te.contents=yt;let ut=(z,me)=>{let ce=N.ready;return new Promise((ge,we)=>{let ye=setTimeout(()=>ge({TAG:"Error",_0:iE(y,z)}),Math.max(0,me-Date.now())|0);ce.then(Fe=>{clearTimeout(ye),ge(Fe)})})},Ke=async(z,me,ce,ge,we,ye)=>{let Fe=zy(me,y,T),mt=Date.now()+Fe,pt=await ut(me,mt);return pt.TAG==="Ok"?oE(we)?await ot(z,me,ce,mt-Date.now(),ge):(ye!==void 0&&ye(),{TAG:"Ok",_0:null}):{TAG:"Error",_0:pt._0}},At=async(z,me,ce)=>{let ge=ce.registrationId,we;if(ge!==void 0)we=ge;else{let Ue="join-registration-"+K.contents.toString();K.contents=K.contents+1|0,we=Ue}let ye=H[z],Fe=ye!==void 0?j(ye):[],mt=await Ke(z,"phx_join",dt(z,Fe.concat([me])),void 0,void 0,void 0);if(mt.TAG!=="Ok")return{TAG:"Error",_0:mt._0};let pt=mt._0,bt=ks(pt);if(bt===void 0)return{TAG:"Error",_0:{TAG:"Failed",message:"phoenix join failed: "+Jy(pt)}};let Lt=H[z],Yt=Lt!==void 0?Lt:{},Jt=Object.entries(Yt).length===0,qt=ce.onJoinReply,U=Jt&&qt!==void 0?qt(bt):{TAG:"Ok",_0:void 0};if(U.TAG!=="Ok")return{TAG:"Error",_0:{TAG:"Failed",message:U._0}};let re=ce.rejoinPayload;if(Yt[we]={payload:re!==void 0?re:()=>me,onJoinReply:ce.onJoinReply},H[z]=Yt,!(Jt&&z.startsWith("local_runner:")))return{TAG:"Ok",_0:bt};let V=Z(z,bt);F(z,bt);let Se=V?{TAG:"Ok",_0:void 0}:at(z,bt);return Se.TAG!=="Ok"?{TAG:"Error",_0:{TAG:"Failed",message:Se._0}}:((se(bt.controls_truncated,!0)||V)&&Q(z),{TAG:"Ok",_0:bt})},Dr={join:(z,me,ce)=>At(z,me,C(ce,{rejoinPayload:void 0,registrationId:void 0})),unregisterJoin:(z,me)=>{let ce=H[z];if(!(ce===void 0||(Pt(ce,me),Object.entries(ce).length!==0)))return Pt(H,z),Pt(E,z)},push:Ke,pushIfConnected:(z,me,ce)=>N.connected?ot(z,me,ce,zy(me,y,T),void 0):Promise.resolve({TAG:"Error",_0:{TAG:"Transport",_0:{phase:"WaitForConnection",reason:"NotConnected",message:"phoenix client is not connected"}}}),onControl:z=>{oe.push(z)},onEvent:z=>{J.push(z)},onBeforeControlReplay:z=>{ie.push(z)},onReconnect:z=>{Y.push(z)},onDisconnect:z=>{X.push(z)},onControlEpochChange:z=>{de.push(z)},forceReconnect:z=>N.closed||!N.connected?!1:(Ae({TAG:"Transport",_0:{phase:"Reply",reason:"SocketClosedReason",message:"phoenix websocket closed"}},void 0,C(z,"forced_stale_reconnect"),"forced_reconnect"),!0),hardReset:z=>{if(N.closed)return!1;Ae({TAG:"Transport",_0:{phase:"Reply",reason:"SocketClosedReason",message:"phoenix websocket closed"}},void 0,C(z,"hard_reset"),"hard_reset");let me=N.reconnectTimer;return me!==void 0&&(clearTimeout(Ee(me)),N.reconnectTimer=void 0),yt(),!0},close:()=>lt({TAG:"Transport",_0:{phase:"WaitForConnection",reason:"ClientClosed",message:"phoenix client closed"}})};Me(),yt();let Dt=await N.ready;return Dt.TAG==="Ok"?{TAG:"Ok",_0:Dr}:{TAG:"Error",_0:Dt._0}}function ha(e){return e==="Default"?"default":"plan"}function Xy(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 EE(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 eS(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 GE={};async function tS(e,t){let r=eS(GE);return r.TAG==="Ok"?EE(await e.request(t,r._0),t):{TAG:"Error",_0:r._0}}async function IE(e,t){let r=await tS(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=ha(t),a=vn(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 PE(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 tS(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 vf(e,t,r,n){let i=await IE(e,t);if(i.TAG!=="Ok")return{TAG:"Error",_0:i._0};let a=await PE(e,n);if(a.TAG!=="Ok")return{TAG:"Error",_0:a._0};let o=ro(Nt(i._0,r));return eS({mode:ha(t),settings:{model:a._0,reasoning_effort:o,developer_instructions:null}})}var X$=10*6e4,eq=30*6e4;function RE(e,t){let r=setTimeout(e,t);return r.unref(),r}function jE(e){clearTimeout(e)}var vl={setTimer:RE,clearTimer:jE};import*as qp from"node:crypto";function nS(e,t,r,n){let i={last_seq:r,runner_id:ee(t,o=>e),thread_id:t,connection_id:t!==void 0?hd(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 tn(e){if(e!==void 0)return Ee(e)}var kf=["codex","claude-code","pi","opencode"];function lo(e){return e}function iS(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 $E=["deterministic","transient_upstream","transient_local","rate_limited","needs_approval","needs_decision","route_outage"],Of=Xd($E);function Es(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 If(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 wf(e){return"adt_stream_v1 dispatch refused: "+If(e)+"; the commander refuses to stream unconfigured (no baked fallback thresholds exist by law - plan doc 2.4/MF9)"}function oS(e){switch(e){case"Checkpoint":return"checkpoint";case"Delta":return"delta";case"Terminal":return"terminal"}}function Gs(e){if(typeof e=="object"&&e!==null&&!Array.isArray(e))return e}function $i(e){if(e!==void 0&&typeof e=="number"&&e>=1&&Math.trunc(e)===e)return e}function qE(e){let t=Gs(e);if(t===void 0)return;let r=$i(t.version),n=w(t.thresholds,Gs);if(r===void 0||n===void 0)return;let i=$i(n.max_bytes),a=$i(n.max_deltas),o=$i(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 Is(e){let t=Gs(e);if(t===void 0)return{TAG:"ParseRefused",_0:"BindingNotObject"};let r=$i(t.session_id);if(r===void 0)return{TAG:"ParseRefused",_0:"SessionIdInvalid"};let n=$i(t.lease_epoch);if(n===void 0)return{TAG:"ParseRefused",_0:"LeaseEpochInvalid"};let i=t.attempt,a;if(i!==void 0){let l=$i(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=$i(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=qE(s);return d!==void 0?{TAG:"Parsed",_0:{sessionId:r,leaseEpoch:n,attempt:a._0,nextFrameIndex:o,checkpointConfig:d}}:{TAG:"ParseRefused",_0:"CheckpointConfigInvalid"}}function NE(e){return Ir(oS(e.frameKind)+`
|
|
17
17
|
`+e.body).slice(0,16)}function Pf(e){let t=e.assistantIdentity,r;if(t!==void 0){let a;a=t.phase==="Commentary"?"commentary":"final_answer",r=[a,t.sourceStreamKey]}else r=[void 0,void 0];let n={session_id:e.sessionId,lease_epoch:e.leaseEpoch,frame_index:e.frameIndex,frame_kind:oS(e.frameKind),body:e.body,byte_len:e.byteLen,assistant_phase:r[0],source_stream_key:r[1]},i=JSON.stringify(n);if(i!==void 0){let a=Cn(i);if(a.TAG==="Ok")return a._0;throw{RE_EXN_ID:"Failure",_1:"ADT frame object serialization invariant failed",Error:new Error}}throw{RE_EXN_ID:"Failure",_1:"ADT frame object must serialize",Error:new Error}}function Rf(e){let t=Pf(e);return e.opensAssistantIdentity&&(t.assistant_identity_opening=!0),t.digest=NE(e),t}function co(e){switch(e){case"StaleEpoch":return"stale_epoch";case"PostSettle":return"post_settle";case"PostTerminal":return"post_terminal";case"FrameIndexReuse":return"frame_index_reuse";case"UnknownRejection":return"unknown"}}function Ol(e){if(e===void 0||typeof e!="string")return"UnknownRejection";switch(e){case"frame_index_reuse":return"FrameIndexReuse";case"post_settle":return"PostSettle";case"post_terminal":return"PostTerminal";case"stale_epoch":return"StaleEpoch";default:return"UnknownRejection"}}function sS(e){let t;if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let i=e.status,a=e.response;t=typeof i=="string"&&typeof a=="object"&&a!==null&&!Array.isArray(a)?a:e}else t=void 0;let r=w(t,i=>i.adt);return r===void 0||typeof r!="object"||r===null||Array.isArray(r)?"FrameAccepted":r.accepted===!1?{TAG:"FrameRejected",_0:Ol(r.reason)}:"FrameAccepted"}function DE(e,t){return{binding:e,assistantIdentity:void 0,cumulative:"",pendingBody:"",pendingBytes:0,pendingDeltas:0,lastFrameAtMs:t,nextFrameIndex:e.nextFrameIndex,emittedFrameCount:0,checkpointPending:!1,terminalEmitted:!1,fenced:!1}}function Ps(e,t,r){let n;switch(t){case"Delta":n=e.pendingBody;break;case"Checkpoint":case"Terminal":n=e.cumulative;break}let i=e.binding.sessionId,a=e.binding.leaseEpoch,o=e.nextFrameIndex,s=Buffer.byteLength(n,"utf8"),d=e.assistantIdentity,l={sessionId:i,leaseEpoch:a,frameIndex:o,frameKind:t,body:n,byteLen:s,assistantIdentity:d,opensAssistantIdentity:!1};switch(e.nextFrameIndex=e.nextFrameIndex+1,e.emittedFrameCount=e.emittedFrameCount+1|0,e.pendingBody="",e.pendingBytes=0,e.pendingDeltas=0,e.lastFrameAtMs=r,t){case"Delta":break;case"Checkpoint":case"Terminal":e.checkpointPending=!1;break}return l}function dS(e,t){let r=e.binding.checkpointConfig.thresholds;return e.pendingDeltas>0?e.pendingBytes>=r.maxBytes||e.pendingDeltas>=r.maxDeltas?!0:t-e.lastFrameAtMs>=r.maxIntervalMs:!1}function jf(e){let t=e.emittedFrameCount,r=e.checkpointPending;return t!==0&&!r?"Delta":"Checkpoint"}function LE(e,t,r){if(!(e.fenced||e.terminalEmitted||t===""))return e.cumulative=e.cumulative+t,e.pendingBody=e.pendingBody+t,e.pendingBytes=e.pendingBytes+Buffer.byteLength(t,"utf8")|0,e.pendingDeltas=e.pendingDeltas+1|0,dS(e,r)?Ps(e,jf(e),r):void 0}function lS(e,t){if(!(e.fenced||e.terminalEmitted||!dS(e,t)))return Ps(e,jf(e),t)}function uS(e,t){if(!(e.fenced||e.terminalEmitted||e.pendingBody===""))return Ps(e,jf(e),t)}function cS(e,t){if(!(e.fenced||e.terminalEmitted))return e.terminalEmitted=!0,Ps(e,"Terminal",t)}function Cf(e){if(!(e.fenced||e.terminalEmitted)){e.cumulative="",e.pendingBody="",e.pendingBytes=0,e.pendingDeltas=0,e.checkpointPending=!0;return}}function Mf(e){switch(e){case"failed":case"ignored":case"interrupted":case"processed":return!0;default:return!1}}function wl(e){return{session_id:e.binding.sessionId,lease_epoch:e.binding.leaseEpoch,checkpoint_config_version:e.binding.checkpointConfig.version}}function Ff(e,t,r){if(e===void 0||e===null)return"Absent";let n=Is(e);if(n.TAG==="Parsed"){let a=n._0;if(t===void 0)return{TAG:"Refused",reason:"SourceSeqInvalid",message:wf("SourceSeqInvalid")};if(!(t>=1&&Math.trunc(t)===t))return{TAG:"Refused",reason:"SourceSeqInvalid",message:wf("SourceSeqInvalid")};let o={binding:a,sourceSeq:t,emitter:DE(a,r),terminalFrame:void 0,directTerminalPlan:void 0,trackedItemKey:void 0,trackedItemRank:0,itemFirstSeenOrdinals:{},lastBody:"",done:!1};return{TAG:"Accepted",session:o,ackPayload:wl(o)}}let i=n._0;return{TAG:"Refused",reason:i,message:wf(i)}}function uo(e,t){let r=e[t];if(typeof r=="string")return r}function aS(e,t){let r=e[t];if(r!==void 0&&typeof r=="number"&&Math.trunc(r)===r)return r}function UE(e){return w(w(e.structured,Gs),r=>uo(r,"phase"))==="final_answer"?1:0}function fS(e){let t=w(w(e.structured,Gs),i=>i.phase);if(t===void 0)return{TAG:"Ok",_0:void 0};if(t===null)return{TAG:"Ok",_0:void 0};if(typeof t!="string")return{TAG:"Error",_0:"InvalidAssistantPhase"};switch(t){case"commentary":case"final_answer":break;default:return{TAG:"Error",_0:"InvalidAssistantPhase"}}let r=uo(e,"client_message_id");return r===void 0?{TAG:"Error",_0:"MissingSourceStreamKey"}:r===""?{TAG:"Error",_0:"EmptySourceStreamKey"}:{TAG:"Ok",_0:{phase:t==="final_answer"?"FinalAnswer":"Commentary",sourceStreamKey:r}}}function mS(e,t){let r=fS(t);if(r.TAG!=="Ok")return!1;let n=r._0;return n!==void 0&&n.phase!=="Commentary"?Vr(n,e.emitter.assistantIdentity):!1}function pS(e,t,r,n,i){if(e.done||e.emitter.fenced)return{frames:[],terminalFrame:void 0};if(t===i.messageState){let p=aS(r,"seq"),u=uo(r,"status");if(p===void 0)return{frames:[],terminalFrame:void 0};if(u===void 0)return{frames:[],terminalFrame:void 0};if(!(p===e.sourceSeq&&Mf(u)))return{frames:[],terminalFrame:void 0};let g=uS(e.emitter,n),y=e.terminalFrame,S;if(y!==void 0)S=y;else{let T=cS(e.emitter,n);e.terminalFrame=T,S=T}e.done=!0;let A=[];return g!==void 0&&A.push(g),{frames:A,terminalFrame:S}}let o=(t===i.postStreamedRow||t===i.streamSnapshot||t===i.finalizeRow||t===i.postCompletedRow)&&se(uo(r,"stream_kind"),"assistant")&&se(aS(r,"source_seq"),e.sourceSeq),s=uo(r,"item_key");if(!o)return{frames:[],terminalFrame:void 0};if(s===void 0)return{frames:[],terminalFrame:void 0};let d=UE(r),l=e.itemFirstSeenOrdinals[s],c;if(l!==void 0)c=l;else{let p=Object.keys(e.itemFirstSeenOrdinals).length;e.itemFirstSeenOrdinals[s]=p,c=p}let f=e.trackedItemKey,_;if(f!==void 0)if(f===s)e.trackedItemRank=d,_=!0;else{let p=C(e.itemFirstSeenOrdinals[f],-1);d>e.trackedItemRank||d===e.trackedItemRank&&c>p?(e.trackedItemKey=s,e.trackedItemRank=d,e.lastBody="",Cf(e.emitter),_=!0):_=!1}else e.trackedItemKey=s,e.trackedItemRank=d,_=!0;if(!_)return{frames:[],terminalFrame:void 0};let m=fS(r);if(m.TAG==="Ok"){let p=m._0,u=C(uo(r,"body"),""),g=Vr(p,e.emitter.assistantIdentity),y=!1;if(g){let R;R=p!==void 0&&p.phase!=="Commentary"?!0:e.emitter.emittedFrameCount>0,y=R}g&&(Cf(e.emitter),e.emitter.assistantIdentity=p,e.lastBody="");let S=!u.startsWith(e.lastBody);S&&(Cf(e.emitter),e.lastBody="");let A=u.slice(e.lastBody.length,u.length);e.lastBody=u;let T=LE(e.emitter,A,n),I=T!==void 0?[T]:y||S?[Ps(e.emitter,"Checkpoint",n)]:[];return{frames:y?I.map(R=>({sessionId:R.sessionId,leaseEpoch:R.leaseEpoch,frameIndex:R.frameIndex,frameKind:R.frameKind,body:R.body,byteLen:R.byteLen,assistantIdentity:R.assistantIdentity,opensAssistantIdentity:!0})):I,terminalFrame:void 0}}e.emitter.fenced=!0;let h;switch(m._0){case"MissingSourceStreamKey":h="missing_source_stream_key";break;case"EmptySourceStreamKey":h="empty_source_stream_key";break;case"InvalidAssistantPhase":h="invalid_assistant_phase";break}return console.error("adt.assistant_identity_refused",{session_id:e.binding.sessionId,lease_epoch:e.binding.leaseEpoch,reason:h}),{frames:[],terminalFrame:void 0}}function Cl(e,t){let r={};return Object.entries(e).forEach(n=>{r[n[0]]=n[1]}),r.terminal_frame=Rf(t),r}function _S(e,t){let r=e.directTerminalPlan;if(r!==void 0)return{TAG:"Ok",_0:r};let n=uS(e.emitter,t),i=n!==void 0?[n]:[],a=cS(e.emitter,t);if(a===void 0)return{TAG:"Error",_0:"exact ADT authority could not author a direct terminal plan"};let o={contentFrames:i,terminalFrame:a};return e.terminalFrame=a,e.directTerminalPlan=o,e.done=!0,{TAG:"Ok",_0:o}}var Ef={},Sa={},kl={},xf=[];function hS(e,t){return e.toString()+":"+t.toString()}function fo(e,t){return e.binding.sessionId===t.binding.sessionId?e.binding.leaseEpoch===t.binding.leaseEpoch:!1}function Rs(e,t){return w(Ef[e],r=>r[t.toString()])}function Gf(e,t){let r=Ef[e];if(r===void 0)return;let n=r[t.sourceSeq.toString()];if(n!==void 0&&fo(n,t))return Pt(r,t.sourceSeq.toString()),Object.keys(r).length===0?Pt(Ef,e):void 0}function $f(e,t,r,n){let i=Rs(e,t);if(i===void 0)return;let a=i.binding.sessionId===r,o=i.binding.leaseEpoch===n;if(a&&o)return i}function qf(e,t){let r=Sa[e],n;if(r!==void 0){let i=r.sourceSeq===t.sourceSeq,a=fo(r,t);n=i&&a?"ActivationReplay":"ActiveAttemptConflict"}else n="Activated";switch(n){case"Activated":Sa[e]=t,Gf(e,t);break;case"ActivationReplay":Gf(e,t);break;case"ActiveAttemptConflict":break}return n}function xl(e,t){let r=Sa[e];if(r===void 0)return;let n=r.sourceSeq===t.sourceSeq,i=fo(r,t);if(n&&i)return Pt(Sa,e)}function Nf(e,t){xl(e,t),Gf(e,t)}function gS(e,t){let r=Sa[e];if(r!==void 0&&r.binding.sessionId===t)return r}function BE(e,t){let r=hS(e,t);if(kl[r]===void 0)for(kl[r]=!0,xf.push(r);xf.length>256;){let i=xf.shift();i!==void 0&&Pt(kl,i)}}function El(e,t){return C(kl[hS(e,t)],!1)}function js(e){switch(e){case"ReleasedExactAuthority":return"released_exact_authority";case"ReleaseSkippedNoActiveAuthority":return"no_active_authority";case"ReleaseSkippedAuthorityMismatch":return"authority_mismatch"}}function Ms(e,t,r,n){BE(r,n);let i=Sa[e];if(i===void 0)return"ReleaseSkippedNoActiveAuthority";let a=i.binding.sessionId===r,o=i.binding.leaseEpoch===n;return t!==void 0&&a&&o&&i.sourceSeq===t?(i.emitter.fenced=!0,Pt(Sa,e),"ReleasedExactAuthority"):"ReleaseSkippedAuthorityMismatch"}var mo="adt_frame",yS="adt_binding_ack";var Gl="adt.frame",Il="terminal_attempt",po="adt.terminal_attempt";function Df(e){if(e<425){if(e===402||e===408)return"transient_upstream"}else{if(e===425)return"transient_upstream";if(e===429)return"rate_limited"}return e>=500&&e<=599?"transient_upstream":"deterministic"}function on(e,t){if(typeof e=="object"&&e!==null&&!Array.isArray(e))return e[t]}function Aa(e,t){return w(on(e,t),r=>{if(typeof r=="string")return r})}function AS(e,t){let r=["rate_limit","rate_limit_error","rateLimit","insufficient_quota","quota_exceeded","usage_limit_reached","usageLimitExceeded","subscription_exhausted","billing_error","authentication_failed","authentication_error","oauth_org_not_allowed","account_on_hold","verification_required","cloud_credential_error","model_not_found","max_output_tokens","contextWindowExceeded","badRequest","auth","unauthorized","permission_error","permission_denied","invalid_request","invalid_request_error","flex_capacity_exceeded","network_error","server_error","connection_error","timeout","httpConnectionFailed","responseStreamDisconnected","responseStreamConnectionFailed","responseTooManyFailedAttempts","internalServerError"],n=["serviceTier","service_tier"].some(c=>se(Aa(e,c),"flex")),i=["error","type","code","error_type","codexErrorInfo"].some(c=>be(Aa(e,c),!1,f=>r.includes(f))),a=on(e,"codexErrorInfo"),o=typeof a=="object"&&a!==null&&!Array.isArray(a)?r.some(c=>c in a):!1,s=["httpStatusCode","statusCode","status","api_error_status","error_status"].some(c=>{let f=on(e,c);return typeof f=="number"&&f>=400?f<=499:!1}),d=i||o||s,l=t>0;return n?"flex_service_tier":d?"conflicting_structured_exclusion":l?We(["error","provider_error","native_error","config","selected","diagnostic_payload","provider_detail","dispatch_context","native_assistant_error","native_terminal","turn"],void 0,(c,f)=>c!==void 0?c:w(on(e,f),_=>AS(_,t-1|0))):void 0}function Lf(e,t,r){let n=AS(r,4);return n!==void 0?{TAG:"Excluded",_0:n}:t!==void 0?t>=400&&t<=499?{TAG:"Excluded",_0:"excluded_http_status"}:e!==void 0?{TAG:"Capacity",_0:e}:"Unclassified":e!==void 0?{TAG:"Capacity",_0:e}:"Unclassified"}function zE(e){switch(e){case"CodexServerOverloaded":return"serverOverloaded";case"ClaudeOverloaded":return"overloaded";case"ClaudeOverloadedError":return"overloaded_error"}}function Uf(e){return typeof e!="object"?{kind:"unclassified",category:void 0,exclusion:void 0}:e.TAG==="Capacity"?{kind:"capacity",category:zE(e._0),exclusion:void 0}:{kind:"excluded",category:void 0,exclusion:e._0}}var WE=["item/started","item/completed","item/agentMessage/delta","item/reasoning/textDelta","item/commandExecution/outputDelta","command/exec/outputDelta","item/fileChange/outputDelta"],HE=["item/plan/delta","item/reasoning/summaryTextDelta","item/reasoning/summaryPartAdded","item/fileChange/patchUpdated","item/mcpToolCall/progress","item/commandExecution/terminalInteraction","item/autoApprovalReview/started","item/autoApprovalReview/completed"];function bS(e){switch(e){case"error":return"RetryingErrorRequiringPayloadInspection";case"item/completed":case"item/started":return"ItemLifecycleRequiringPayloadInspection";case"autoApprovalReview/strictReviewRequired":case"rawResponse/completed":case"rawResponseItem/completed":case"response_item":case"turn/diff/updated":case"turn/plan/updated":return"DefiniteOutput";default:return WE.includes(e)||HE.includes(e)?"DefiniteOutput":"NotOutput"}}function TS(e){return e!==void 0&&e==="wafer"?36e5:9e5}function VE(e){if(typeof e=="object")return"recover";switch(e){case"HoldUntilResetPolicy":return"hold_until_reset";case"HoldRouteOutagePolicy":return"hold_route_outage";case"RedImmediatelyPolicy":return"red_immediately";case"NeverLaddersPolicy":return"never_ladders"}}var QE={rung:"fresh_session_resume",maxAttempts:1};function Wf(e){let t=e.transpiledItemCount,r=e.redactedReasoningCount,n=(t!==void 0?" items="+t.toString():"")+(r!==void 0?" redacted="+r.toString():"");return"user_switch "+e.sourceHarness+"->"+e.targetHarness+" model="+C(e.model,"unspecified")+n}function Kf(e){let t={};t.exportable=e.transpileFeasibility.exportable,t.target_adapter_available=e.transpileFeasibility.targetAdapterAvailable;let r={};r.available=e.available,r.source_harness=e.sourceHarness,r.target_harness=e.targetHarness;let n=e.model;return n!==void 0&&(r.model=n),r.transpile_feasibility=t,r.offer_reason=e.offerReason,r}function vS(e){switch(e){case"deterministic":return"RedImmediatelyPolicy";case"transient_upstream":return{TAG:"RecoverPolicy",rungs:[{rung:"in_place_resume",maxAttempts:2}]};case"transient_local":return{TAG:"RecoverPolicy",rungs:[{rung:"redispatch",maxAttempts:1},{rung:"worker_rebuild",maxAttempts:1}]};case"rate_limited":return"HoldUntilResetPolicy";case"needs_approval":case"needs_decision":return"NeverLaddersPolicy";case"route_outage":return"HoldRouteOutagePolicy"}}var ZE=30*6e4;function zf(e,t){let r=ee(e,i=>i.trim());if(r===void 0||r==="")return t;let n=Number(r);return isFinite(n)&&n>0?Math.floor(n):t}function Jf(e,t){let r=t!==void 0?Ee(t):void 0;return{maxRecoveryRungs:zf(e.LINZUMI_FATE_LADDER_MAX_RECOVERY_RUNGS,4),maxLadderMs:zf(e.LINZUMI_FATE_LADDER_BUDGET_MS,TS(r)),maxRateLimitHoldMs:zf(e.LINZUMI_FATE_LADDER_MAX_HOLD_MS,ZE)}}function YE(e){if(typeof e=="object")return e._0;switch(e){case"ClassificationStep":return"classification";case"HoldStep":return"hold";case"UserSwitchStep":return"user_cross_harness_switch"}}function Vf(e,t){return{fate:e,startedAtMs:t,rungCursor:0,cursorAttempts:0,recoveryRungsAttempted:0,holdCommitted:!1,holdDispatched:!1,userSwitchInvoked:!1,entries:[],historyTruncated:!1}}function Ur(e,t){return e.entries.length>=16?e.historyTruncated?e:{fate:e.fate,startedAtMs:e.startedAtMs,rungCursor:e.rungCursor,cursorAttempts:e.cursorAttempts,recoveryRungsAttempted:e.recoveryRungsAttempted,holdCommitted:e.holdCommitted,holdDispatched:e.holdDispatched,userSwitchInvoked:e.userSwitchInvoked,entries:e.entries,historyTruncated:!0}:{fate:e.fate,startedAtMs:e.startedAtMs,rungCursor:e.rungCursor,cursorAttempts:e.cursorAttempts,recoveryRungsAttempted:e.recoveryRungsAttempted,holdCommitted:e.holdCommitted,holdDispatched:e.holdDispatched,userSwitchInvoked:e.userSwitchInvoked,entries:e.entries.concat([t]),historyTruncated:e.historyTruncated}}function XE(e){switch(e){case"budget_rungs_exhausted":case"budget_wall_clock_exhausted":case"rungs_exhausted":case"grant_unavailable":return!0;default:return!1}}function kS(e,t,r){if(e!=="transient_local"||r===void 0||!(r.backendDead&&XE(t)))return;let n=r.exportable&&r.targetAdapterAvailable,i=n?"the "+r.sourceHarness+" harness backend died and automatic recovery is exhausted; this job can continue on "+r.targetHarness+" if the user chooses to switch":r.exportable?"the "+r.sourceHarness+" harness backend died and automatic recovery is exhausted, but the "+r.targetHarness+" harness is not available on this machine":"the "+r.sourceHarness+" harness backend died and automatic recovery is exhausted, but no recorded harness activity is exportable to carry over";return{available:n,sourceHarness:r.sourceHarness,targetHarness:r.targetHarness,model:r.model,transpileFeasibility:{exportable:r.exportable,targetAdapterAvailable:r.targetAdapterAvailable},offerReason:i}}function eG(e,t){switch(t){case"in_place_resume":return e.inPlaceResume;case"fresh_session_resume":return C(e.freshSessionResume,!1);case"redispatch":return e.redispatch;case"worker_rebuild":return e.workerRebuild}}function OS(e){let t=e.grants,r=e.breaker,n=e.budgets,i=e.nowMs,a=e.fate;if(a===void 0)return{TAG:"Stand",cause:"no_fate"};let o=vS(a),s=e.run,d=s!==void 0?s:Vf(a,i);if(typeof o!="object")switch(o){case"HoldUntilResetPolicy":if(d.holdCommitted)return{TAG:"Red",cause:"hold_already_committed",run:Ur(d,{rung:"HoldStep",outcome:"rungs_exhausted",atMs:i,detail:"the one hold-and-dispatch was already spent",resetAtMs:void 0})};let l=e.rateLimitResetAtMs,c=0;if(l!==void 0&&l>i){if(l-i>n.maxRateLimitHoldMs){let h=Math.round((l-i)/1e3).toString(),p=Math.round(n.maxRateLimitHoldMs/1e3).toString();return{TAG:"Red",cause:"hold_unavailable_reset_beyond_bound",run:Ur(d,{rung:"HoldStep",outcome:"hold_unavailable_reset_beyond_bound",atMs:i,detail:"reset is "+h+"s away, beyond the "+p+"s hold budget",resetAtMs:l})}}let _=r(a,i),m=0;if(typeof _!="object")m=2;else{let h=_.reason;return{TAG:"BreakerHold",reason:h,run:Ur(d,{rung:"HoldStep",outcome:"breaker_held",atMs:i,detail:h,resetAtMs:void 0})}}if(m===2)return{TAG:"HoldUntilReset",resetAtMs:l,run:Ur({fate:d.fate,startedAtMs:d.startedAtMs,rungCursor:d.rungCursor,cursorAttempts:d.cursorAttempts,recoveryRungsAttempted:d.recoveryRungsAttempted,holdCommitted:!0,holdDispatched:d.holdDispatched,userSwitchInvoked:d.userSwitchInvoked,entries:d.entries,historyTruncated:d.historyTruncated},{rung:"HoldStep",outcome:"held",atMs:i,detail:void 0,resetAtMs:l})}}else c=1;if(c===1){if(!t.inPlaceResume)return{TAG:"Red",cause:"hold_unavailable_no_reset",run:Ur(d,{rung:"HoldStep",outcome:"hold_unavailable_no_reset",atMs:i,detail:"no known rate-limit reset timestamp",resetAtMs:void 0})};let _=r(a,i),m=0;if(typeof _!="object")m=2;else{let h=_.reason;return{TAG:"BreakerHold",reason:h,run:Ur(d,{rung:{TAG:"RungStep",_0:"in_place_resume"},outcome:"breaker_held",atMs:i,detail:h,resetAtMs:void 0})}}if(m===2){if(d.recoveryRungsAttempted<n.maxRecoveryRungs)return{TAG:"ExecuteRung",rung:"in_place_resume",run:Ur({fate:d.fate,startedAtMs:d.startedAtMs,rungCursor:d.rungCursor,cursorAttempts:d.cursorAttempts,recoveryRungsAttempted:d.recoveryRungsAttempted+1|0,holdCommitted:d.holdCommitted,holdDispatched:d.holdDispatched,userSwitchInvoked:d.userSwitchInvoked,entries:d.entries,historyTruncated:d.historyTruncated},{rung:{TAG:"RungStep",_0:"in_place_resume"},outcome:"attempted",atMs:i,detail:"reducer-granted bounded retry (transient-evidence carve-out; no known reset to hold for)",resetAtMs:void 0})};let h=d.recoveryRungsAttempted.toString(),p=n.maxRecoveryRungs.toString();return{TAG:"Red",cause:"budget_rungs_exhausted",run:Ur(d,{rung:"ClassificationStep",outcome:"budget_rungs_exhausted",atMs:i,detail:h+" recovery rungs attempted (budget "+p+")",resetAtMs:void 0})}}}break;case"HoldRouteOutagePolicy":if(d.holdCommitted)return{TAG:"Red",cause:"hold_already_committed",run:Ur(d,{rung:"HoldStep",outcome:"rungs_exhausted",atMs:i,detail:"this turn's one hold-and-dispatch (rate-limit or route-outage) was already spent",resetAtMs:void 0})};let f=e.routeOutageHoldCeilingMs;if(f!==void 0&&f>0){let _=i+f;return{TAG:"RouteOutageHold",deadlineAtMs:_,run:Ur({fate:d.fate,startedAtMs:d.startedAtMs,rungCursor:d.rungCursor,cursorAttempts:d.cursorAttempts,recoveryRungsAttempted:d.recoveryRungsAttempted,holdCommitted:!0,holdDispatched:d.holdDispatched,userSwitchInvoked:d.userSwitchInvoked,entries:d.entries,historyTruncated:d.historyTruncated},{rung:"HoldStep",outcome:"held",atMs:i,detail:"route outage flagged by the server - holding until route recovery or the server hold deadline (zero recovery rungs burned)",resetAtMs:_})}}return{TAG:"Red",cause:"route_outage_hold_unavailable",run:Ur(d,{rung:"HoldStep",outcome:"hold_unavailable_no_reset",atMs:i,detail:"no server-provided route-outage hold ceiling (pre-hold server, valve off, or malformed payload)",resetAtMs:void 0})};case"RedImmediatelyPolicy":return{TAG:"Red",cause:"deterministic_by_design",run:Ur(d,{rung:"ClassificationStep",outcome:"no_rungs_by_design",atMs:i,detail:"classification: deterministic, no rungs attempted by design",resetAtMs:void 0})};case"NeverLaddersPolicy":return{TAG:"Stand",cause:"never_ladders"}}else{let l=o.rungs,c=t.freshSessionResume,f;if(f=a==="transient_upstream"&&c!==void 0&&c?l.concat([QE]):l,d.recoveryRungsAttempted>=n.maxRecoveryRungs){let y=d.recoveryRungsAttempted.toString(),S=n.maxRecoveryRungs.toString();return{TAG:"Red",cause:"budget_rungs_exhausted",run:Ur(d,{rung:"ClassificationStep",outcome:"budget_rungs_exhausted",atMs:i,detail:y+" recovery rungs attempted (budget "+S+")",resetAtMs:void 0})}}if(i-d.startedAtMs>n.maxLadderMs){let y=Math.round((i-d.startedAtMs)/1e3).toString(),S=Math.round(n.maxLadderMs/1e3).toString();return{TAG:"Red",cause:"budget_wall_clock_exhausted",run:Ur(d,{rung:"ClassificationStep",outcome:"budget_wall_clock_exhausted",atMs:i,detail:"ladder open "+y+"s (budget "+S+"s)",resetAtMs:void 0})}}let _=d.rungCursor,m=d.cursorAttempts,h=!1,p=f[_];for(;(()=>{let y=p;return y!==void 0?m>=y.maxAttempts:!1})();)_=_+1|0,m=0,p=f[_];for(;(()=>{let y=p;return y!==void 0?!eG(t,y.rung):!1})();)h=!0,_=_+1|0,m=0,p=f[_];let u=p;if(u===void 0)return{TAG:"Red",cause:h?"grant_unavailable":"rungs_exhausted",run:Ur(d,{rung:"ClassificationStep",outcome:h?"grant_unavailable":"rungs_exhausted",atMs:i,detail:h?"no executable recovery rung in this session context":"every recovery rung for this fate was already attempted",resetAtMs:void 0})};let g=r(a,i);if(typeof g=="object"){let y=g.reason;return{TAG:"BreakerHold",reason:y,run:Ur(d,{rung:{TAG:"RungStep",_0:u.rung},outcome:"breaker_held",atMs:i,detail:y,resetAtMs:void 0})}}return{TAG:"ExecuteRung",rung:u.rung,run:Ur({fate:d.fate,startedAtMs:d.startedAtMs,rungCursor:_,cursorAttempts:m+1|0,recoveryRungsAttempted:d.recoveryRungsAttempted+1|0,holdCommitted:d.holdCommitted,holdDispatched:d.holdDispatched,userSwitchInvoked:d.userSwitchInvoked,entries:d.entries,historyTruncated:d.historyTruncated},{rung:{TAG:"RungStep",_0:u.rung},outcome:"attempted",atMs:i,detail:void 0,resetAtMs:void 0})}}}function wS(e,t,r){return e.userSwitchInvoked?{TAG:"Error",_0:"the one user-invoked cross-harness switch for this turn was already spent"}:{TAG:"Ok",_0:Ur({fate:e.fate,startedAtMs:e.startedAtMs,rungCursor:e.rungCursor,cursorAttempts:e.cursorAttempts,recoveryRungsAttempted:e.recoveryRungsAttempted,holdCommitted:e.holdCommitted,holdDispatched:e.holdDispatched,userSwitchInvoked:!0,entries:e.entries,historyTruncated:e.historyTruncated},{rung:"UserSwitchStep",outcome:"switch_invoked",atMs:t,detail:Wf(r),resetAtMs:void 0,userSwitch:r})}}function Qf(e,t,r,n,i){let a;switch(t){case"switch_dispatched":a="switch_dispatched";break;case"switch_failed":a="switch_failed";break;case"switch_refused":a="switch_refused";break}return Ur(e,{rung:"UserSwitchStep",outcome:a,atMs:r,detail:i!==void 0?Wf(n)+" - "+i:Wf(n),resetAtMs:void 0,userSwitch:n})}function hi(e,t,r,n){let i=n!==void 0?Ee(n):void 0,a=vS(t),o=f=>{let _={};_.rung=YE(f.rung),_.outcome=f.outcome,_.at_ms=f.atMs;let m=f.detail;m!==void 0&&(_.detail=m.slice(0,200));let h=f.resetAtMs;h!==void 0&&(_.reset_at_ms=h);let p=f.userSwitch;if(p!==void 0){_.source_harness=p.sourceHarness,_.target_harness=p.targetHarness;let u=p.model;u!==void 0&&(_.model=u);let g=p.transpiledItemCount;g!==void 0&&(_.transpiled_item_count=g);let y=p.redactedReasoningCount;y!==void 0&&(_.redacted_reasoning_count=y)}return _},s=e!==void 0?e.entries.slice(0,16).map(o):[],d={};d.fate=t,d.policy=VE(a),d.recovery_rungs_attempted=e!==void 0?e.recoveryRungsAttempted:0;let l={};l.max_recovery_rungs=r.maxRecoveryRungs,l.max_ladder_ms=r.maxLadderMs,l.max_rate_limit_hold_ms=r.maxRateLimitHoldMs,d.budget=l,e!==void 0&&e.historyTruncated&&(d.history_truncated=!0),i!==void 0&&(d.failover_offer=Kf(i));let c;if(c=t==="deterministic"?s.length===0:!1,c){let f={};f.rung="classification",f.outcome="no_rungs_by_design",f.at_ms=0,f.detail="classification: deterministic, no rungs attempted by design",d.entries=[f]}else d.entries=s;return d}function CS(e){let t=qe(C(e.rateLimits,null));if(t===void 0)return;let r={contents:void 0};return["primary","secondary"].forEach(n=>{let i=C(t[n],null);if(typeof i!="object"||i===null||Array.isArray(i))return;let a=C(i.usedPercent,null),o=C(i.resetsAt,null);if(typeof a!="number"||typeof o!="number"||!(a>=100&&isFinite(o)&&o>0))return;let s=Math.floor(o*1e3),d=r.contents;r.contents=d!==void 0?Math.min(d,s):s}),r.contents}var xS="switching this job to another harness at the user's request";var ES="model stream stalled again - reconnecting on a fresh model session and resuming automatically";function rG(e){let t=e.item,n=(typeof t=="object"&&t!==null&&!Array.isArray(t)?t:e).type,i=n!==void 0?Ft(n):void 0;if(i!==void 0)switch(i){case"contextCompaction":return"compacting conversation history";case"commandExecution":case"terminalInput":return"running terminal command";case"agentMessage":case"fileChange":case"reasoning":case"webSearch":case"webSearchCall":case"web_search_call":return"streaming response";default:return}}function Zf(e,t){switch(e){case"command/exec/outputDelta":return"running terminal command";case"item/agentMessage/delta":case"item/reasoning/textDelta":return"streaming response";default:return e.startsWith("item/commandExecution/")?"running terminal command":rG(t)}}function GS(e,t,r){let n=C(r,{}),i=f=>{let _=n[f];if(_!==void 0)return Ft(_)},a=i("command"),o=a!==void 0?a:i("cmd"),s=i("path"),d;if(s!==void 0)d=s;else{let f=i("filePath");d=f!==void 0?f:i("file")}let l=C(Nt(Nt(Nt(o,d),i("reason")),i("summary")),t),c;if(e===null)c="null";else if(Array.isArray(e))c="[object]";else switch(typeof e){case"boolean":c=e?"true":"false";break;case"string":c=e;break;case"number":c=e.toString();break;case"object":c="[object]";break}return{requestId:c,kind:t,summary:l,reason:void 0,port:void 0,pid:void 0,command:void 0,cwd:void 0,processName:void 0,processIconKey:void 0,processIconPath:void 0,choices:void 0,allowedActorSlug:void 0,allowedActorUserId:void 0}}function IS(e,t){return typeof e!="object"||e._0!==t?{claimed:!0,next:{TAG:"StopPublicationOwnedBy",_0:t}}:{claimed:!1,next:e}}function Xf(e,t,r,n){return typeof e!="object"||e.attemptToken!==t?{TAG:"PendingProviderTerminal",attemptToken:t,observed:n,callbackMode:r}:e}function PS(e,t,r){if(typeof e!="object")return{TAG:"PendingBufferedProviderTerminals",attemptToken:t,observed:[r]};switch(e.TAG){case"PendingBufferedProviderTerminals":if(e.attemptToken!==t)return{TAG:"PendingBufferedProviderTerminals",attemptToken:t,observed:[r]};let n=e.observed;return n.some(i=>i.turnId===r.turnId)?e:{TAG:"PendingBufferedProviderTerminals",attemptToken:t,observed:n.concat([r])};case"PendingDeferredCompletion":case"PendingProviderTerminal":break}return e.attemptToken===t?e:{TAG:"PendingBufferedProviderTerminals",attemptToken:t,observed:[r]}}function em(e,t,r){if(typeof e!="object")return{TAG:"PendingDeferredCompletion",attemptToken:t,turnId:r};switch(e.TAG){case"PendingBufferedProviderTerminals":return e.attemptToken===t?e:{TAG:"PendingDeferredCompletion",attemptToken:t,turnId:r};case"PendingDeferredCompletion":case"PendingProviderTerminal":break}return e.attemptToken===t?e:{TAG:"PendingDeferredCompletion",attemptToken:t,turnId:r}}function $s(e,t,r){if(typeof e!="object"||e.TAG!=="PendingDeferredCompletion")return"ApplyInterruptSettlement";let n=e.attemptToken===t,i=e.turnId===r;return n&&i?"AwaitDeferredCompletion":"ApplyInterruptSettlement"}function RS(e,t,r){if(typeof e!="object")return{terminal:void 0,next:e};switch(e.TAG){case"PendingDeferredCompletion":let n=e.attemptToken===t,i=e.turnId===r;return n&&i?{terminal:{turnId:r,terminal:"ProviderCompleted"},next:"NoPendingProviderTerminal"}:{terminal:void 0,next:e};case"PendingBufferedProviderTerminals":if(e.attemptToken!==t)return{terminal:void 0,next:e};let a=e.observed.find(l=>l.turnId===r);return a!==void 0?{terminal:a,next:"NoPendingProviderTerminal"}:{terminal:void 0,next:e};case"PendingProviderTerminal":let o=e.observed,s=e.attemptToken===t,d=o.turnId===r;return s&&d?{terminal:o,next:"NoPendingProviderTerminal"}:{terminal:void 0,next:e}}}function jS(e,t,r){if(typeof e!="object")return e;switch(e.TAG){case"PendingDeferredCompletion":let n=e.attemptToken===t,i=e.turnId===r;return n&&!i?"NoPendingProviderTerminal":e;case"PendingBufferedProviderTerminals":if(e.attemptToken!==t)return e;let a=e.observed.find(d=>d.turnId===r);if(a===void 0)return"NoPendingProviderTerminal";switch(a.terminal){case"ProviderCompleted":return{TAG:"PendingDeferredCompletion",attemptToken:t,turnId:r};case"ProviderFailed":case"ProviderInterrupted":return{TAG:"PendingProviderTerminal",attemptToken:t,observed:a,callbackMode:"BufferedCallback"}}case"PendingProviderTerminal":if(e.callbackMode==="SynchronousCallback")return e;let o=e.attemptToken===t,s=e.observed.turnId===r;return o&&!s?"NoPendingProviderTerminal":e}}function Pl(e,t,r){if(typeof e!="object"||e.TAG!=="PendingProviderTerminal"||e.callbackMode!=="SynchronousCallback")return e;let n=e.attemptToken===t,i=e.observed.turnId===r;return n&&i?"NoPendingProviderTerminal":e}function Yf(e,t){let r=e[t];if(typeof r=="string")return r}function MS(e,t){let r;switch(e){case"turn/aborted":case"turn/canceled":case"turn/cancelled":r="ProviderInterrupted";break;case"turn/completed":let a=t.turn;if(typeof a=="object"&&a!==null&&!Array.isArray(a)){let o=Yf(a,"status");if(o!==void 0)switch(o){case"completed":r="ProviderCompleted";break;case"interrupted":r="ProviderInterrupted";break;default:r="ProviderFailed"}else r="ProviderFailed"}else r="ProviderFailed";break;case"turn/failed":r="ProviderFailed";break;default:r=void 0}if(r===void 0)return"NotProviderTerminal";let n=Yf(t,"turnId"),i;if(n!==void 0)i=n;else{let a=t.turn;i=typeof a=="object"&&a!==null&&!Array.isArray(a)?Yf(a,"id"):void 0}return i!==void 0?{TAG:"ProviderTerminal",_0:{turnId:i,terminal:r}}:{TAG:"InvalidProviderTerminal",method:e,reason:e+" terminal notification did not identify a turn"}}var aG=Re(e=>({decision:e.f("decision",b),label:e.f("label",b),description:e.f("description",k(b))})),oG=Re(e=>({requestId:e.f("requestId",b),kind:e.f("kind",b),summary:e.f("summary",b),reason:e.f("reason",k(b)),port:e.f("port",k(Le)),pid:e.f("pid",k(Le)),command:e.f("command",k(b)),cwd:e.f("cwd",k(b)),processName:e.f("processName",k(b)),processIconKey:e.f("processIconKey",k(b)),processIconPath:e.f("processIconPath",k(b)),choices:e.f("choices",k(vr(aG))),allowedActorSlug:e.f("allowedActorSlug",k(b)),allowedActorUserId:e.f("allowedActorUserId",k(Le))})),sG=Xd(["starting turn","streaming response","running terminal command","interrupt requested","retrying empty turn","model stream stalled - resuming automatically from the last streamed checkpoint","upstream outage detected - recovery paused, resuming automatically","compacting conversation history","awaiting approval"]),sq=Yr([Re(e=>(e.tag("status","queued"),{TAG:"Queued",reason:e.f("reason",k(b))})),Re(e=>(e.tag("status","processed"),{TAG:"Processed",reason:e.f("reason",k(b))})),Re(e=>(e.tag("status","processing"),{TAG:"Processing",reason:e.f("reason",sG),approval:e.f("approval",k(oG))})),Re(e=>(e.tag("status","ignored"),{TAG:"Ignored",reason:e.f("reason",b)})),Re(e=>(e.tag("status","failed"),{TAG:"Failed",reason:e.f("reason",b),retryable:e.f("retryable",k(Er)),fate:e.f("fate",k(Of))})),Re(e=>(e.tag("status","recovering"),{TAG:"Recovering",reason:e.f("reason",b),fate:e.f("fate",k(Of))})),Re(e=>(e.tag("status","interrupted"),{TAG:"Interrupted",reason:e.f("reason",b)}))]);function Rl(e,t){return t.toString()+":"+e}var FS="compacting conversation history",$S="steered into the running turn on your runner";var qS="LINZUMI_COMMANDER_PUSH_MAX_INFLIGHT",NS="LINZUMI_COMMANDER_PUSH_PRESSURE_BUDGET_MS",zS="Commander push admission owner closed before admission";function qs(e,t){return{message:t,budgetExempt:!1,preserveForRestart:e!==void 0?e:!1}}function WS(){return{cancelled:!1}}function lG(e,t){switch(t){case"ReplaceableLive":return e.live;case"Durable":case"Terminal":return e.priority}}function uG(e,t,r){let n=e.pendingByThread.get(t);n!==void 0?n.push(r):(e.pendingByThread.set(t,[r]),e.activeThreads.push(t))}function HS(e,t){let r=e.activeThreads.indexOf(t);if(r!==-1){e.activeThreads.splice(r,1);return}}function cG(e,t){if(e===void 0)return!1;if(e.TAG!=="ItemStream")return t!==void 0&&t.TAG!=="ItemStream"?e._0===t._0:!1;let r=e.turnId;if(t===void 0)return!1;if(t.TAG!=="ItemStream")return r!==void 0?r===t._0:!1;let n=t.turnId;return e.itemKey===t.itemKey?r!==void 0?n!==void 0?r===n:!1:n===void 0:!1}function rm(e,t){let r=t-e.maxLivePressureAgeMs;return e.activeAckStartedAtMs.some(n=>n<=r)}var fG=new RegExp("[^\\x20-\\x7E]","g");function qi(e){return e.replace(fG,"?").slice(0,128)}function tm(e,t,r,n,i,a,o,s,d,l){let c=o!==void 0?o:!1,f=e.now(),_=qi(t).slice(0,64),m=qi(n),h=a!==void 0?a-i:c?f-i:0,p=a!==void 0?f-a:0,u={correlationId:_,pushClass:r,pushEvent:m,queueWaitMs:h,ackWaitMs:p,outcome:s,activeWindowOccupancy:d};try{return l!==void 0?l(u):e.onPushTiming(u)}catch{try{console.warn("commander_push.timing_sink_failed correlation_id="+_+" push_event="+m+" branch="+s);return}catch{return}}}function ba(e,t,r,n,i){let a=t.timingEmitted.contents,o=t.timing;if(!(a||o===void 0))return t.timingEmitted.contents=!0,tm(e,o.correlationId,o.pushClass,o.pushEvent,t.enqueuedAtMs,r,!0,n,i,t.onPushTiming)}function mG(e,t,r){let n=e.live.pendingByThread.get(t);if(n===void 0)return;let i=n.filter(o=>{let s=o.supersede,d=cG(o.streamIdentity,r);return s!==void 0&&d?(s(),ba(e,o,void 0,"superseded",e.inFlight.contents),!1):!0});if(i.length!==0){e.live.pendingByThread.set(t,i);return}else return e.live.pendingByThread.delete(t),HS(e.live,t)}function DS(e,t,r){t.activeThreads.slice().forEach(i=>{let a=t.pendingByThread.get(i);if(a===void 0)return;let o=a.filter(d=>{let l=d.owner;return l!==void 0&&l===r?(d.fail(qs(!0,zS)),ba(e,d,void 0,"owner_closed",e.inFlight.contents),!1):!0});if(o.length!==0){t.pendingByThread.set(i,o);return}else return t.pendingByThread.delete(i),HS(t,i)})}function KS(e,t){if(t.cancelled=!0,DS(e,e.priority,t),DS(e,e.live,t),e.live.pendingByThread.size===0){Gt(e.cancelPressureCheck.contents,n=>n()),e.cancelPressureCheck.contents=void 0,e.pressureCheckDeadlineMs.contents=void 0;return}}function nm(e,t){return We(e.activeAckStartedAtMs,0,(r,n)=>Math.max(r,t-n))}function pG(e,t,r,n,i){e.pressureShedCount.contents=e.pressureShedCount.contents+1|0;let a=i!==void 0?i.TAG==="ItemStream"?["item",qi(i.itemKey),ee(i.turnId,qi)]:["turn",void 0,qi(i._0)]:["none",void 0,void 0],o;return o=t==="AckPressure"?"ack_pressure":"queue_age",{event:"commander_push.pressure_shed",branch:o,shedCount:e.pressureShedCount.contents,ageMs:r,budgetMs:e.maxLivePressureAgeMs,threadKey:qi(n),streamKind:a[0],itemKey:a[1],turnId:a[2]}}function im(e,t,r,n,i,a){let o=a(),s=pG(e,t,r,n,i);try{e.onPressureShed(s)}catch{let l=s.branch,c=s.shedCount,f=s.ageMs,_=s.budgetMs,m=s.threadKey,h=s.streamKind,p=s.itemKey,u=s.turnId,g={event:"commander_push.pressure_shed_fallback",branch:l,shedCount:c,ageMs:f,budgetMs:_,threadKey:m,streamKind:h,itemKey:p,turnId:u};try{e.onPressureShedFallback(g)}catch{}}return o}function LS(e){let t=e.now(),r=t-e.maxLivePressureAgeMs,n=rm(e,t),i=[];e.live.activeThreads.forEach(a=>{let o=e.live.pendingByThread.get(a);if(o===void 0)return;let s=o.filter(l=>{let c=l.enqueuedAtMs<=r;if(!n&&!c)return!0;let f=n?"AckPressure":"QueueAge",_;return _=f==="AckPressure"?nm(e,t):t-l.enqueuedAtMs,im(e,f,_,l.threadKey,l.streamIdentity,()=>{Gt(l.supersede,m=>m()),ba(e,l,void 0,"pressure_shed",e.inFlight.contents)}),!1});s.length!==0?(e.live.pendingByThread.set(a,s),i.push(a)):e.live.pendingByThread.delete(a)}),e.live.activeThreads.splice(0,e.live.activeThreads.length,...i)}function JS(e){let t=e.activeThreads.shift();if(t===void 0)return{TAG:"Ok",_0:void 0};let r=e.pendingByThread.get(t);if(r===void 0)return{TAG:"Error",_0:"Commander push admission lost an active thread"};let n=r.shift();return n!==void 0?(r.length!==0?e.activeThreads.push(t):e.pendingByThread.delete(t),{TAG:"Ok",_0:n}):(e.pendingByThread.delete(t),{TAG:"Error",_0:"Commander push admission thread queue was empty"})}function _G(e){for(;;){let t=JS(e.live);if(t.TAG!=="Ok")return{TAG:"Error",_0:t._0};let r=t._0;if(r===void 0)return{TAG:"Ok",_0:void 0};let n=e.now(),i=rm(e,n),a=r.enqueuedAtMs+e.maxLivePressureAgeMs<=n;if(!i&&!a)return{TAG:"Ok",_0:r};let o=i?"AckPressure":"QueueAge",s;s=o==="AckPressure"?nm(e,n):n-r.enqueuedAtMs,im(e,o,s,r.threadKey,r.streamIdentity,()=>{Gt(r.supersede,d=>d()),ba(e,r,void 0,"pressure_shed",e.inFlight.contents)})}}function hG(e){for(;;){let t=e.priority.activeThreads.length!==0,r=e.live.activeThreads.length!==0,n=e.maxInFlight===1?!0:e.liveInFlight.contents<(e.maxInFlight-1|0),i=r&&n,a=e.consecutivePriority.contents<8,o=0;if(t)o=i&&!a?1:2;else if(i)o=1;else return e.consecutivePriority.contents=0,{TAG:"Ok",_0:void 0};switch(o){case 1:e.consecutivePriority.contents=0;let s=_G(e);if(s.TAG!=="Ok")return{TAG:"Error",_0:s._0};let d=s._0;if(d!==void 0)return{TAG:"Ok",_0:d};continue;case 2:return e.consecutivePriority.contents=e.consecutivePriority.contents+1|0,JS(e.priority)}}}function gG(e,t,r,n,i,a,o){let s=t!==void 0?t:2e3,d=r!==void 0?r:A=>performance.now(),l=n!==void 0?n:(A,T)=>{let I=setTimeout(T,A);return I.unref(),()=>{clearTimeout(I)}},c=i!==void 0?i:A=>{console.warn("commander_push.pressure_shed",A)},f=a!==void 0?a:A=>{console.warn("commander_push.pressure_shed_fallback",A)},_=o!==void 0?o:A=>{},m=e>0,h=s>0&&isFinite(s)&&Number.isSafeInteger(s);if(!m)return{TAG:"Error",_0:"Commander push admission maxInFlight must be a positive integer"};if(!h)return{TAG:"Error",_0:"Commander push admission maxLivePressureAgeMs must be positive and finite"};let p={maxInFlight:e,priority:{pendingByThread:new Map,activeThreads:[]},live:{pendingByThread:new Map,activeThreads:[]},inFlight:{contents:0},liveInFlight:{contents:0},consecutivePriority:{contents:0},pumpScheduled:{contents:!1},schedulePump:()=>{},armPressureCheck:A=>{},recomputePressureCheck:()=>{},maxLivePressureAgeMs:s,now:d,schedulePressureCheck:l,activeAckStartedAtMs:[],cancelPressureCheck:{contents:void 0},pressureCheckDeadlineMs:{contents:void 0},onPressureShed:c,onPressureShedFallback:f,pressureShedCount:{contents:0},onPushTiming:_},u=A=>{let T=p.pressureCheckDeadlineMs.contents;if(T!==void 0){if(T<=A)return;Gt(p.cancelPressureCheck.contents,P=>P()),p.pressureCheckDeadlineMs.contents=A;let R=p.schedulePressureCheck(Math.max(1,A-p.now()),()=>{p.cancelPressureCheck.contents=void 0,p.pressureCheckDeadlineMs.contents=void 0,LS(p),p.schedulePump(),p.recomputePressureCheck()});p.cancelPressureCheck.contents=R;return}Gt(p.cancelPressureCheck.contents,R=>R()),p.pressureCheckDeadlineMs.contents=A;let I=p.schedulePressureCheck(Math.max(1,A-p.now()),()=>{p.cancelPressureCheck.contents=void 0,p.pressureCheckDeadlineMs.contents=void 0,LS(p),p.schedulePump(),p.recomputePressureCheck()});p.cancelPressureCheck.contents=I},g=()=>{let A={contents:void 0};p.live.pendingByThread.forEach(I=>{I.forEach(R=>{let P=R.enqueuedAtMs+p.maxLivePressureAgeMs,O=A.contents;A.contents=O!==void 0?Math.min(O,P):P})});let T=A.contents;if(T!==void 0)return u(We(p.activeAckStartedAtMs,T,(I,R)=>Math.min(I,R+p.maxLivePressureAgeMs)))},y=()=>{for(;;){if(p.pumpScheduled.contents=!1,p.inFlight.contents>=p.maxInFlight)return;let A=hG(p);if(A.TAG==="Ok"){let I=A._0;if(I===void 0)return;let R=p.now();p.inFlight.contents=p.inFlight.contents+1|0;let P=p.inFlight.contents;p.activeAckStartedAtMs.push(R),p.live.activeThreads.length!==0&&u(R+p.maxLivePressureAgeMs),I.replaceableLive&&(p.liveInFlight.contents=p.liveInFlight.contents+1|0),nr(I.task(R,P),O=>{I.outcome.contents="failed";let G=Gr(O),H=G!==void 0?C(Fr(Ee(G)),"unknown admission task error"):"unknown admission task error";return I.fail(qs(void 0,H)),Promise.resolve()}).finally(()=>{ba(p,I,R,I.outcome.contents,P),p.inFlight.contents=p.inFlight.contents-1|0;let O=p.activeAckStartedAtMs.indexOf(R);O!==-1&&p.activeAckStartedAtMs.splice(O,1),I.replaceableLive&&(p.liveInFlight.contents=p.liveInFlight.contents-1|0),p.schedulePump()});continue}let T=A._0;p.priority.pendingByThread.forEach(I=>{I.forEach(R=>{R.fail(qs(void 0,T)),ba(p,R,void 0,"failed",p.inFlight.contents)})}),p.live.pendingByThread.forEach(I=>{I.forEach(R=>{R.fail(qs(void 0,T)),ba(p,R,void 0,"failed",p.inFlight.contents)})}),p.priority.pendingByThread.clear(),p.live.pendingByThread.clear(),p.priority.activeThreads.splice(0,p.priority.activeThreads.length),p.live.activeThreads.splice(0,p.live.activeThreads.length);return}},S=()=>{if(!p.pumpScheduled.contents){p.pumpScheduled.contents=!0,queueMicrotask(y);return}};return p.schedulePump=S,p.armPressureCheck=u,p.recomputePressureCheck=g,{TAG:"Ok",_0:p}}function VS(e,t,r,n,i,a,o,s,d,l,c){let f=o!==void 0?o:"unknown",_=s!==void 0?s:"",m=e.now(),h=g=>{if(_==="")return;let y;switch(r){case"ReplaceableLive":y="replaceable_live";break;case"Durable":y="durable";break;case"Terminal":y="terminal";break}tm(e,_,y,f,m,void 0,void 0,g,e.inFlight.contents,l)};if(t.trim()==="")return h("rejected"),Promise.resolve({TAG:"Error",_0:{message:"Commander push admission threadKey must not be empty",budgetExempt:!1,preserveForRestart:!1}});if(be(i,!1,g=>g.cancelled))return h("owner_closed"),Promise.resolve({TAG:"Error",_0:qs(!0,zS)});let u=0;switch(r){case"ReplaceableLive":if(a!==void 0)u=1;else return h("rejected"),Promise.resolve({TAG:"Error",_0:{message:"Commander replaceable live admission requires onSuperseded",budgetExempt:!1,preserveForRestart:!1}});break;case"Durable":case"Terminal":u=1;break}if(u===1){switch(r){case"ReplaceableLive":case"Durable":break;case"Terminal":mG(e,t,n);break}let g=e.now(),y=rm(e,g),S=0;switch(r){case"ReplaceableLive":if(y){if(a!==void 0){let A=im(e,"AckPressure",nm(e,g),t,n,a);return h("pressure_shed"),Promise.resolve({TAG:"Ok",_0:A})}S=2}else S=2;break;case"Durable":case"Terminal":S=2;break}if(S===2){let A=e.now(),T={contents:"acknowledged"},I={contents:!1},R;if(_==="")R=void 0;else{let O;switch(r){case"ReplaceableLive":O="replaceable_live";break;case"Durable":O="durable";break;case"Terminal":O="terminal";break}R={correlationId:qi(_).slice(0,64),pushClass:O,pushEvent:qi(f)}}let P=new Promise((O,G)=>{let H;switch(r){case"ReplaceableLive":H=!0;break;case"Durable":case"Terminal":H=!1;break}uG(lG(e,r),t,{threadKey:t,task:async(E,q)=>{let M=await c();return T.contents=be(d,"acknowledged",x=>x(M)),R!==void 0&&(I.contents=!0,tm(e,R.correlationId,R.pushClass,R.pushEvent,A,E,void 0,T.contents,q,l)),O({TAG:"Ok",_0:M})},fail:E=>{T.contents="failed",O({TAG:"Error",_0:E})},replaceableLive:H,supersede:ee(a,E=>(()=>O({TAG:"Ok",_0:E()}))),streamIdentity:n,owner:i,enqueuedAtMs:A,timing:R,timingEmitted:I,onPushTiming:l,outcome:T})});switch(e.schedulePump(),r){case"ReplaceableLive":e.armPressureCheck(We(e.activeAckStartedAtMs,A+e.maxLivePressureAgeMs,(O,G)=>Math.min(O,G+e.maxLivePressureAgeMs)));break;case"Durable":case"Terminal":break}return P}}}function yG(e){let t=ee(e[qS],n=>n.trim());if(t===void 0)return{TAG:"Ok",_0:16};if(t==="")return{TAG:"Ok",_0:16};let r=Number(t);return Number.isSafeInteger(r)&&r>=2?{TAG:"Ok",_0:r|0}:{TAG:"Error",_0:qS+" must be an integer of at least 2"}}function SG(e){let t=ee(e[NS],n=>n.trim());if(t===void 0)return{TAG:"Ok",_0:2e3};if(t==="")return{TAG:"Ok",_0:2e3};let r=Number(t);return Number.isSafeInteger(r)&&r>0?{TAG:"Ok",_0:r|0}:{TAG:"Error",_0:NS+" must be a positive integer"}}var AG={contents:void 0},bG=[];function US(e,t,r,n,i,a,o,s){return Object.fromEntries([["branch",e],["shed_count",t],["age_ms",r],["budget_ms",n],["thread_key",i],["stream_kind",a],["item_key",be(o,null,d=>d)],["turn_id",be(s,null,d=>d)]])}function TG(e,t){if(t.TAG==="PressureShed"){let n=t._0;return e(n.event,US(n.branch,n.shedCount,n.ageMs,n.budgetMs,n.threadKey,n.streamKind,n.itemKey,n.turnId))}let r=t._0;e(r.event,US(r.branch,r.shedCount,r.ageMs,r.budgetMs,r.threadKey,r.streamKind,r.itemKey,r.turnId))}function BS(e){let t=AG.contents;if(t!==void 0)return TG(t,e);bG.push(e)}var QS=fr(yG(process.env),e=>fr(SG(process.env),t=>gG(e,t,void 0,void 0,r=>BS({TAG:"PressureShed",_0:r}),r=>BS({TAG:"PressureShedFallback",_0:r}),void 0)));async function ZS(e,t,r){if(e.TAG==="Ok")return await r(e._0);let n=e._0;return t(n),{TAG:"Error",_0:n}}function am(e){if(e===void 0)return[];if(Array.isArray(e))return e;if(typeof e==="string"){let t=e.trim();return t===""?[]:[Object.fromEntries([["type","text"],["text",t]])]}else return[]}function XS(e){if(e!==void 0){if(Array.isArray(e)){let t=e.map(r=>{if(typeof r!="object"||r===null||Array.isArray(r))return[];let n=r.text;if(typeof n=="string")return[n];let i=r.content;return i!==void 0?typeof i=="string"?[i]:[]:[]}).flat().join(`
|
|
18
18
|
|
package/package.json
CHANGED