@linzumi/cli 1.0.181 → 1.0.182

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 CHANGED
@@ -58,7 +58,7 @@ Install the CLI or run it with `npx`:
58
58
  ```bash
59
59
  npm install -g @linzumi/cli@latest
60
60
  npx -y @linzumi/cli@latest signup
61
- npx -y @linzumi/cli@1.0.181 --version
61
+ npx -y @linzumi/cli@1.0.182 --version
62
62
  linzumi --version
63
63
  ```
64
64
 
@@ -321,7 +321,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
321
321
  `);if(t===-1)return null;let r=this._buffer.toString("utf8",0,t).replace(/\r$/,"");return this._buffer=this._buffer.subarray(t+1),C4(r)}clear(){this._buffer=void 0}};function C4(e){return QA.parse(JSON.parse(e))}function FP(e){return JSON.stringify(e)+`
322
322
  `}var Vm=class{constructor(t=qP.stdin,r=qP.stdout){this._stdin=t,this._stdout=r,this._readBuffer=new Wm,this._started=!1,this._ondata=n=>{this._readBuffer.append(n),this.processReadBuffer()},this._onerror=n=>{this.onerror?.(n)}}async start(){if(this._started)throw new Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");this._started=!0,this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror)}processReadBuffer(){for(;;)try{let t=this._readBuffer.readMessage();if(t===null)break;this.onmessage?.(t)}catch(t){this.onerror?.(t)}}async close(){this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0&&this._stdin.pause(),this._readBuffer.clear(),this.onclose?.()}send(t){return new Promise(r=>{let n=FP(t);this._stdout.write(n)?r():this._stdout.once("drain",r)})}};function P4(e){let t={};t.listChanged=!1;let r={};r.resources=t,e.server.registerCapabilities(r),e.server.setRequestHandler(ll,()=>{let n={};return n.resources=[],n}),e.server.setRequestHandler(dl,()=>{let n={};return n.resourceTemplates=[],n})}function R4(e){return{registerTool:(t,r,n,i)=>{e.tool(t,r,n,i)}}}function I4(e){return(t,r)=>e.server.elicitInput(t,{timeout:r})}async function ZS(e){let t=e.delegationAuthFilePath;if(t!==void 0){let n=e.explicitToken,i=e.authFilePath;if(n!==void 0)return{TAG:"Error",_0:"--delegation-auth-file cannot be combined with --token or --auth-file"};if(i!==void 0)return{TAG:"Error",_0:"--delegation-auth-file cannot be combined with --token or --auth-file"};let o=jk(t,Date.now());return o.TAG==="Ok"?{TAG:"Ok",_0:{accessToken:o._0.accessToken,mode:"PersonalAgentDelegation"}}:{TAG:"Error",_0:o._0.summary}}let r=await ox(e.serviceUrl,e.explicitToken,e.authFilePath,e.workspaceSlug,e.channelSlug,void 0);return r.TAG==="Ok"?{TAG:"Ok",_0:{accessToken:r._0,mode:"LocalRunner"}}:{TAG:"Error",_0:r._0.summary}}function HS(e,t){let r=wr(e,"token");return{serviceUrl:t,explicitToken:r!==void 0?r:process.env.LINZUMI_MCP_ACCESS_TOKEN,authFilePath:wr(e,"auth-file"),delegationAuthFilePath:wr(e,"delegation-auth-file"),workspaceSlug:wr(e,"workspace"),channelSlug:wr(e,"channel")}}async function $4(e){let t=vc(e);if(t.TAG!=="Ok")return{TAG:"Error",_0:t._0};let r=t._0;if(ad(r,"help"))return pa(xc()),{TAG:"Ok",_0:void 0};let n=wc(r,"api-url");if(n.TAG!=="Ok")return{TAG:"Error",_0:n._0};let i=n._0,o=await ZS(HS(r,i));if(o.TAG!=="Ok")return{TAG:"Error",_0:o._0};let a=o._0,s=kc(wr(r,"mode")),l=sh(wr(r,"tool-scope"));if(s.TAG!=="Ok")return{TAG:"Error",_0:s._0};let d=s._0;if(l.TAG!=="Ok")return{TAG:"Error",_0:l._0};let u=wr(r,"owner-username"),c=u!==void 0?u:process.env.LINZUMI_MCP_OWNER_USERNAME,h=wr(r,"cwd"),m=h!==void 0?h:process.cwd(),f=wr(r,"thread-id"),p=f!==void 0?f:process.env[Sx],_=S_({serviceUrl:i,accessToken:a.accessToken,authMode:a.mode,operatingMode:d});if(_.TAG!=="Ok")return{TAG:"Error",_0:_._0};let g=new Um({name:"linzumi",version:"0.1.0"});return P4(g),iT(R4(g),{client:_._0,toolScope:l._0,operatingMode:d,cwd:m,serviceUrl:i,defaultThreadId:p,ownerUsername:c,agentSession:ad(r,"agent-session"),devServices:Lx(process.env),askUserQuestion:ad(r,"ask-user-question-tool")?I4(g):void 0}),await g.connect(new Vm),{TAG:"Ok",_0:void 0}}async function M4(e){let t=vc(e);if(t.TAG!=="Ok")return{TAG:"Error",_0:t._0};let r=t._0,n=wc(r,"api-url");if(n.TAG!=="Ok")return{TAG:"Error",_0:n._0};let i=n._0,o=wr(r,"format"),a=o!==void 0?o:"codex",s=kc(wr(r,"mode"));if(s.TAG!=="Ok")return{TAG:"Error",_0:s._0};let l;if(ad(r,"include-token")){let h=await ZS(HS(r,i));l=h.TAG==="Ok"?{TAG:"Ok",_0:h._0.accessToken}:{TAG:"Error",_0:h._0}}else l={TAG:"Ok",_0:void 0};if(l.TAG!=="Ok")return{TAG:"Error",_0:l._0};let d=sh(wr(r,"tool-scope"));if(d.TAG!=="Ok")return{TAG:"Error",_0:d._0};let u=wr(r,"owner-username"),c=tl({command:wr(r,"command"),serviceUrl:i,accessToken:l._0,delegationAuthFilePath:wr(r,"delegation-auth-file"),ownerUsername:u!==void 0?u:process.env.LINZUMI_MCP_OWNER_USERNAME,operatingMode:s._0,toolScope:d._0});switch(a){case"claude-code":return pa(Bx(c)),{TAG:"Ok",_0:void 0};case"codex":return pa(Kx(c)),{TAG:"Ok",_0:void 0};default:return{TAG:"Error",_0:"--format must be codex or claude-code"}}}async function j4(e){let t=vc(e);if(t.TAG!=="Ok")return{TAG:"Error",_0:t._0};let r=t._0,n=wc(r,"api-url");if(n.TAG!=="Ok")return{TAG:"Error",_0:n._0};let i=n._0,o=await ZS(HS(r,i));if(o.TAG!=="Ok")return{TAG:"Error",_0:o._0};let a=o._0,s=a.mode,l;if(s==="LocalRunner"){let d=await Us(i,a.accessToken,wr(r,"workspace"),wr(r,"channel"),void 0);if(d.TAG==="Ok")switch(d._0){case"Usable":l={TAG:"Ok",_0:void 0};break;case"Rejected":case"NotFound":l={TAG:"Error",_0:"Linzumi MCP auth validation failed"};break}else l={TAG:"Error",_0:d._0.summary}}else{let d=kc(wr(r,"mode"));if(d.TAG==="Ok"){let u=S_({serviceUrl:i,accessToken:a.accessToken,authMode:a.mode,operatingMode:d._0});if(u.TAG==="Ok")try{await u._0.validateAuth(),l={TAG:"Ok",_0:void 0}}catch(c){let h=K(c);l={TAG:"Error",_0:wo(h)}}else l={TAG:"Error",_0:u._0}}else l={TAG:"Error",_0:d._0}}return l.TAG!=="Ok"?{TAG:"Error",_0:l._0}:(pa(`Linzumi MCP auth OK
323
323
  `),{TAG:"Ok",_0:void 0})}async function DP(e){let t=e.slice(1),r=e[0];if(r!==void 0)switch(r){case"--help":case"-h":return pa(xc()),{TAG:"Ok",_0:void 0};case"config":return await M4(t);case"doctor":return await j4(t);case"server":return await $4(t);default:return{TAG:"Error",_0:"unknown linzumi mcp command: "+r}}else return pa(xc()),{TAG:"Ok",_0:void 0}}import*as WP from"node:fs";import*as VP from"node:url";import*as _n from"node:path";import*as ZP from"node:module";var N4=[["linux","x64",{triple:"x86_64-unknown-linux-musl",packageName:"@openai/codex-linux-x64"}],["linux","arm64",{triple:"aarch64-unknown-linux-musl",packageName:"@openai/codex-linux-arm64"}],["android","x64",{triple:"x86_64-unknown-linux-musl",packageName:"@openai/codex-linux-x64"}],["android","arm64",{triple:"aarch64-unknown-linux-musl",packageName:"@openai/codex-linux-arm64"}],["darwin","x64",{triple:"x86_64-apple-darwin",packageName:"@openai/codex-darwin-x64"}],["darwin","arm64",{triple:"aarch64-apple-darwin",packageName:"@openai/codex-darwin-arm64"}],["win32","x64",{triple:"x86_64-pc-windows-msvc",packageName:"@openai/codex-win32-x64"}],["win32","arm64",{triple:"aarch64-pc-windows-msvc",packageName:"@openai/codex-win32-arm64"}]];function HP(e,t){return q(N4.find(r=>r[0]===e?r[1]===t:!1),r=>r[2])}function G4(e){try{return ZP.createRequire(import.meta.url).resolve(e)}catch{return}}function F4(e){let t=As(e);return t.TAG==="Ok"?t._0:[]}function Zm(){return{platform:process.platform,arch:process.arch,fileExists:e=>WP.existsSync(e),listDirectory:F4,resolveModulePath:G4,moduleDir:_n.dirname(VP.fileURLToPath(import.meta.url))}}function BP(e,t,r){let n=t;for(;;){let i=n,o=_n.join(...[i,"node_modules"].concat(e.split("/")));if(r(_n.join(o,"package.json")))return o;let a=_n.dirname(i);if(a===i)return;n=a}}function BS(e,t){let r=t.resolveModulePath(e+"/package.json");return r!==void 0?_n.dirname(r):BP(e,t.moduleDir,t.fileExists)}function q4(e,t,r){let i=r.platform==="win32"?"codex.exe":"codex",o=_n.join(e,t),s=[_n.join(o,"codex",i),_n.join(o,"bin",i),_n.join(o,i)].find(l=>r.fileExists(l));return s!==void 0?s:r.listDirectory(o).map(l=>_n.join(o,l,i)).find(l=>r.fileExists(l))}function D4(e){let t=HP(e.platform,e.arch);if(t===void 0)return;let r=[],n=BS(t.packageName,e);n!==void 0&&r.push(_n.join(n,"vendor"));let i=BS("@openai/codex",e);return i!==void 0&&r.push(_n.join(i,"vendor")),Ve(r,void 0,(o,a)=>o!==void 0?o:q4(a,t.triple,e))}function L4(e){let t=BS("@openai/codex",e);if(t===void 0)return;let r=Ht(_n.join(t,"package.json"));if(r.TAG!=="Ok")return;let n;try{n=JSON.parse(r._0)}catch{n=void 0}if(n===void 0||typeof n!="object"||n===null||Array.isArray(n))return;let i=n.version;if(i!==void 0&&typeof i=="string"&&i.trim()!=="")return i.trim()}var U4=new RegExp("(\\d+\\.\\d+\\.\\d+)");function Hm(e){let t=Os(e,["--version"],1e4,1048576);if(t.TAG!=="Ok")return;let r=U4.exec(t._0);if(r!=null)return x(r.slice(1)[0],n=>n)}function W4(e,t){return e!==void 0&&t!==void 0?e===t?{TAG:"Match",version:e}:{TAG:"Mismatch",pathVersion:e,pinnedVersion:t}:{TAG:"Unverified",pathVersion:e,pinnedVersion:t}}function V4(e){switch(e.TAG){case"Match":return"match";case"Mismatch":return"mismatch";case"Unverified":return"unverified"}}var KS="LINZUMI_ALLOW_HARNESS_MISMATCH",LP={contents:!1};var Z4="Warning: the Codex engine bundled with @linzumi/cli could not be located in its install (@openai/codex platform binary missing). Falling back to `codex` from PATH - the engine version may not match this CLI release. Pass --codex-bin <path> to pin an engine explicitly.\n";function H4(e){if(!LP.contents)return LP.contents=!0,e(Z4)}function UP(e,t){return"the codex engine bundled with @linzumi/cli is missing from this install and the `codex` on PATH is version "+e+", but this CLI release pins engine "+t+". "+("Running a mismatched engine breaks the wire protocol (codex "+t+" vocabulary), so refusing to start. ")+("Fix: reinstall the CLI (a fresh `npx -y @linzumi/cli@latest` restores the bundled engine), pass --codex-bin <path> to pin an engine deliberately, or set "+KS+"=1 to accept the skew.")}function B4(e,t){return"Warning: proceeding with the PATH codex "+e+" despite the CLI pinning engine "+t+" ("+KS+`=1). Engine/CLI version skew can break the wire protocol.
324
- `}function K4(e,t){}function Bm(e,t,r,n,i,o){let a=o!==void 0?o:K4;if(e!==void 0)return{TAG:"Ok",_0:{codexBin:e,source:"ExplicitFlag"}};let s=D4(t);if(s!==void 0){let h={};return h.codex_bin_path=s,h.codex_bin_source="bundled",a("codex.binary.resolved",h),{TAG:"Ok",_0:{codexBin:s,source:"Bundled"}}}H4(r);let l=L4(t),d=l!==void 0?n("codex"):void 0,u=W4(d,l),c={};switch(c.codex_bin_path="codex",c.codex_bin_source="path-fallback",c.harness_version_check=V4(u),u.TAG){case"Match":c.harness_version=u.version;break;case"Mismatch":c.path_harness_version=u.pathVersion,c.pinned_harness_version=u.pinnedVersion;break;case"Unverified":c.path_harness_version=dn(u.pathVersion,null,h=>h),c.pinned_harness_version=dn(u.pinnedVersion,null,h=>h);break}switch(a("codex.binary.resolved",c),u.TAG){case"Mismatch":let h=u.pinnedVersion,m=u.pathVersion,f=i[KS];return f===void 0?{TAG:"Error",_0:UP(m,h)}:f!=="1"?{TAG:"Error",_0:UP(m,h)}:(r(B4(m,h)),{TAG:"Ok",_0:{codexBin:"codex",source:"PathFallback"}});case"Match":case"Unverified":return{TAG:"Ok",_0:{codexBin:"codex",source:"PathFallback"}}}}function KP(e){if(typeof e=="number"&&e%1===0)return e}function J4(e){if(typeof e=="string")return e}function Q4(e){let t=e.replaceAll("-","+").replaceAll("_","/");switch(t.length&3){case 2:return t+"==";case 3:return t+"=";default:return t}}function JP(e){let t=e.split(".")[1];if(t===void 0)return;let r=Buffer.from(Q4(t),"base64").toString("utf8"),n;try{n=JSON.parse(r)}catch{n=void 0}if(typeof n=="object"&&n!==null&&!Array.isArray(n))return n}function zu(e){let t=JP(e);if(t===void 0)return{actorUserId:void 0,actorUsername:void 0};let r=KP(t.actor_id);return{actorUserId:r!==void 0?r:KP(t.sub),actorUsername:J4(t.actor_username)}}function QP(e){let t=x(JP(e),n=>n.workspace_scope),r=t!==void 0?Array.isArray(t)?$e(t,n=>{if(typeof n=="string"&&n.trim()!=="")return n}):[]:[];if(r.length===1)return r[0]}var YS=[["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.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"]],YP=[["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"]],Km=[["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"]],XS=[["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 Nu(){return k("1.0.181","0.0.0-unbundled")}function tv(){return"linzumi "+k("1.0.181","0.0.0-unbundled")}function El(e,t){let r=e.indexOf(t);if(r!==-1)return r}function rv(){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 nv(e){let t={};return e.forEach(r=>{t[r[0]]=r[1]}),t}function Y4(e){let t={};return e.forEach(r=>{t[r[1]]=r[0]}),t}var tR=nv(YP),rR=nv(Km),X4=nv(XS),eB=Y4(XS);function tB(e){return e.endsWith("_canonical")?!0:e.endsWith("_legacy")}function nR(e,t){return t>=32?e:Array.isArray(e)?e.map(r=>nR(r,t+1|0)):e===null?e:typeof e==="object"?iR(e,t):e}function iR(e,t){let r=Object.keys(e),n={};return r.forEach(i=>{let o=e[i];if(o!==void 0){n[i]=nR(o,t+1|0);return}}),r.forEach(i=>{if(tB(i))return;let o=n[i];if(o===void 0)return;let a=tR[i];if(a!==void 0)n[a]=o;else{let c=rR[i];c!==void 0&&(n[c]!==void 0||(n[c]=o))}let s=n[i];if(s===void 0||typeof s!="string")return;let l=X4[s];if(l!==void 0){if(n[i+"_canonical"]!==void 0)return;n[i+"_canonical"]=l;return}let d=eB[s];if(!(d===void 0||n[i+"_legacy"]!==void 0)){n[i+"_legacy"]=d;return}}),n}function Jm(e){return rv()?iR(e,0):e}function oR(e){let t=e.slice();return e.forEach(r=>{let n=tR[r];n!==void 0&&!t.includes(n)&&t.push(n);let i=rR[r];if(i!==void 0&&!t.includes(i)){t.push(i);return}}),t}var Pl="<SENSITIVE_DATA>",rB=oR(["access_token","authorization","code","cookie","kandan_preview_ticket","refresh_token","token"]),nB=["--access-token","--api-key","--authorization","--cookie","--oauth-code","--password","--refresh-token","--secret","--token"],iB=new RegExp("^(authorization|cookie|set-cookie|password)$","i"),oB=new RegExp("(^|[_-])(access[_-]?token|api[_-]?key|auth[_-]?token|oauth[_-]?code|refresh[_-]?token|secret|token)$","i"),aB=new RegExp("\\beyJ[A-Za-z0-9_-]*\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\b","g");function sB(e){return e!==void 0?iB.test(e)?!0:oB.test(e):!1}function aR(e){let t={contents:!1};return C0(e).forEach(r=>{if(rB.includes(r.toLowerCase())){e.set(r,Pl),t.contents=!0;return}}),t.contents}function lB(e){let t=El(e,"?"),r=El(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),o=r!==void 0?e.slice(r):"",a=new URLSearchParams(i);return aR(a)?n+"?"+a.toString()+o:e}function dB(e){let t=Zn(e);if(t===void 0)return lB(e);let r=se(t);return aR(r.searchParams),r.toString()}function sR(e){return dB(e).replace(aB,Pl)}function uB(e){let t=El(e,"=");return t!==void 0?[e.slice(0,t),e.slice(t+1|0)]:[e,void 0]}function ov(e,t){if(sB(t))return Pl;if(Array.isArray(e))return t==="args"?cB(e):e.map(r=>ov(r,void 0));if(e===null)return e;switch(typeof e){case"string":return sR(e);case"object":return lR(e);default:return e}}function cB(e){let t={contents:!1};return e.map(r=>{if(typeof r=="string"){if(t.contents)return t.contents=!1,Pl;let n=uB(r),i=n[0];return nB.includes(i)?n[1]!==void 0?i+"="+Pl:(t.contents=!0,r):sR(r)}return t.contents=!1,ov(r,void 0)})}function lR(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":n=!0;break;default:n=!1}else n=!1;let i={};return Object.entries(e).forEach(o=>{let a=o[0];if(a!=="runner_console"){i[a]=n&&a==="value"?Pl:ov(o[1],a);return}}),i}var Qm=lR;import*as la from"node:os";import*as Qp from"node:path";import*as t0 from"node:crypto";function uR(e){return"local_runner:"+e}var fB="kandan-local-codex-runner",mB="rescript";function cR(e){let t={};t.clientName=fB,t.clientId=e.clientId;let r=e.machineFingerprint;t.machineFingerprint=r!==void 0?r:null,Object.entries(ex(e.machineFingerprintV2)).forEach(a=>{t[a[0]]=a[1]}),t.runnerPid=e.runnerPid,t.version=e.version,t.hostname=e.hostname,t.cwd=e.cwd;let n=e.workspace;t.workspace=n!==void 0?n:null;let i=e.channel;t.channel=i!==void 0?i:null,t.capabilities=e.capabilities;let o=e.generationOverlapEpoch;if(o!==void 0){let a={};a.epoch=o,a.overlap=!0,t.generation=a}return t.commander_impl=mB,t}function fR(e,t,r){let n={};return n.last_seq=r,t!==void 0&&(n.runner_id=e,n.thread_id=t),n}function Dn(e,t){return e.catch(r=>t(K(r)))}function pR(){let e=[],t=[],r={contents:!1},n=()=>{let a=e.shift();return a!==void 0?Promise.resolve({done:!1,value:a}):r.contents?Promise.resolve({done:!0}):new Promise((s,l)=>{t.push(s)})},i=()=>(r.contents=!0,Promise.resolve({done:!0})),o={};return o[Symbol.asyncIterator]=()=>({next:n,return:i}),{iterable:o,push:a=>{if(r.contents)return!1;let s=t.shift();return s!==void 0?(s({done:!1,value:a}),!0):(e.push(a),!0)},close:()=>{r.contents=!0,(()=>{for(;;){let s=t.shift();if(s===void 0)return;s({done:!0})}})()}}}function hR(e){return import(e)}var hB="@anthropic-ai/claude-agent-sdk";function _R(e){return pR()}function _B(e){return{next:()=>e.next(),close:()=>{e.close()},interrupt:()=>e.interrupt(),setModel:t=>e.setModel(t),setPermissionMode:t=>e.setPermissionMode(t),applyFlagSettings:t=>e.applyFlagSettings(t),supportedCommands:()=>e.supportedCommands()}}async function gR(){let e=await hR(hB);return{query:t=>_B(e.query(t)),getSessionInfo:(t,r)=>e.getSessionInfo(t,r),listSessions:t=>e.listSessions(t),getSessionMessages:(t,r)=>e.getSessionMessages(t,r)}}var av=["codex","claude-code","pi","opencode"];function as(e){return e}function Ym(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"ActivityPulse":return"activity_pulse";case"TurnCompleted":return"turn_completed";case"TurnFailed":return"turn_failed";case"TurnInterrupted":return"turn_interrupted";case"HarnessDied":return"harness_died"}}function dv(e){switch(e){case"BindingNotObject":return"binding_not_object";case"SessionIdInvalid":return"session_id_invalid";case"LeaseEpochInvalid":return"lease_epoch_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 sv(e){return"adt_stream_v1 dispatch refused: "+dv(e)+"; the commander refuses to stream unconfigured (no baked fallback thresholds exist by law - plan doc 2.4/MF9)"}function SR(e){switch(e){case"Checkpoint":return"checkpoint";case"Delta":return"delta";case"Terminal":return"terminal"}}function ep(e){if(typeof e=="object"&&e!==null&&!Array.isArray(e))return e}function ss(e){if(e!==void 0&&typeof e=="number"&&e>=1&&Math.trunc(e)===e)return e}function gB(e){let t=ep(e);if(t===void 0)return;let r=ss(t.version),n=x(t.thresholds,ep);if(r===void 0||n===void 0)return;let i=ss(n.max_bytes),o=ss(n.max_deltas),a=ss(n.max_interval_ms);if(i!==void 0&&o!==void 0&&a!==void 0)return{version:r,thresholds:{maxBytes:i,maxDeltas:o,maxIntervalMs:a}}}function yB(e){let t=ep(e);if(t===void 0)return{TAG:"ParseRefused",_0:"BindingNotObject"};let r=ss(t.session_id);if(r===void 0)return{TAG:"ParseRefused",_0:"SessionIdInvalid"};let n=ss(t.lease_epoch);if(n===void 0)return{TAG:"ParseRefused",_0:"LeaseEpochInvalid"};let i=ss(t.next_frame_index);if(i===void 0)return{TAG:"ParseRefused",_0:"NextFrameIndexInvalid"};let o=t.checkpoint_config;if(o===void 0)return{TAG:"ParseRefused",_0:"CheckpointConfigMissing"};let a=gB(o);return a!==void 0?{TAG:"Parsed",_0:{sessionId:r,leaseEpoch:n,nextFrameIndex:i,checkpointConfig:a}}:{TAG:"ParseRefused",_0:"CheckpointConfigInvalid"}}function bB(e){return un(SR(e.frameKind)+`
324
+ `}function K4(e,t){}function Bm(e,t,r,n,i,o){let a=o!==void 0?o:K4;if(e!==void 0)return{TAG:"Ok",_0:{codexBin:e,source:"ExplicitFlag"}};let s=D4(t);if(s!==void 0){let h={};return h.codex_bin_path=s,h.codex_bin_source="bundled",a("codex.binary.resolved",h),{TAG:"Ok",_0:{codexBin:s,source:"Bundled"}}}H4(r);let l=L4(t),d=l!==void 0?n("codex"):void 0,u=W4(d,l),c={};switch(c.codex_bin_path="codex",c.codex_bin_source="path-fallback",c.harness_version_check=V4(u),u.TAG){case"Match":c.harness_version=u.version;break;case"Mismatch":c.path_harness_version=u.pathVersion,c.pinned_harness_version=u.pinnedVersion;break;case"Unverified":c.path_harness_version=dn(u.pathVersion,null,h=>h),c.pinned_harness_version=dn(u.pinnedVersion,null,h=>h);break}switch(a("codex.binary.resolved",c),u.TAG){case"Mismatch":let h=u.pinnedVersion,m=u.pathVersion,f=i[KS];return f===void 0?{TAG:"Error",_0:UP(m,h)}:f!=="1"?{TAG:"Error",_0:UP(m,h)}:(r(B4(m,h)),{TAG:"Ok",_0:{codexBin:"codex",source:"PathFallback"}});case"Match":case"Unverified":return{TAG:"Ok",_0:{codexBin:"codex",source:"PathFallback"}}}}function KP(e){if(typeof e=="number"&&e%1===0)return e}function J4(e){if(typeof e=="string")return e}function Q4(e){let t=e.replaceAll("-","+").replaceAll("_","/");switch(t.length&3){case 2:return t+"==";case 3:return t+"=";default:return t}}function JP(e){let t=e.split(".")[1];if(t===void 0)return;let r=Buffer.from(Q4(t),"base64").toString("utf8"),n;try{n=JSON.parse(r)}catch{n=void 0}if(typeof n=="object"&&n!==null&&!Array.isArray(n))return n}function zu(e){let t=JP(e);if(t===void 0)return{actorUserId:void 0,actorUsername:void 0};let r=KP(t.actor_id);return{actorUserId:r!==void 0?r:KP(t.sub),actorUsername:J4(t.actor_username)}}function QP(e){let t=x(JP(e),n=>n.workspace_scope),r=t!==void 0?Array.isArray(t)?$e(t,n=>{if(typeof n=="string"&&n.trim()!=="")return n}):[]:[];if(r.length===1)return r[0]}var YS=[["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.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"]],YP=[["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"]],Km=[["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"]],XS=[["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 Nu(){return k("1.0.182","0.0.0-unbundled")}function tv(){return"linzumi "+k("1.0.182","0.0.0-unbundled")}function El(e,t){let r=e.indexOf(t);if(r!==-1)return r}function rv(){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 nv(e){let t={};return e.forEach(r=>{t[r[0]]=r[1]}),t}function Y4(e){let t={};return e.forEach(r=>{t[r[1]]=r[0]}),t}var tR=nv(YP),rR=nv(Km),X4=nv(XS),eB=Y4(XS);function tB(e){return e.endsWith("_canonical")?!0:e.endsWith("_legacy")}function nR(e,t){return t>=32?e:Array.isArray(e)?e.map(r=>nR(r,t+1|0)):e===null?e:typeof e==="object"?iR(e,t):e}function iR(e,t){let r=Object.keys(e),n={};return r.forEach(i=>{let o=e[i];if(o!==void 0){n[i]=nR(o,t+1|0);return}}),r.forEach(i=>{if(tB(i))return;let o=n[i];if(o===void 0)return;let a=tR[i];if(a!==void 0)n[a]=o;else{let c=rR[i];c!==void 0&&(n[c]!==void 0||(n[c]=o))}let s=n[i];if(s===void 0||typeof s!="string")return;let l=X4[s];if(l!==void 0){if(n[i+"_canonical"]!==void 0)return;n[i+"_canonical"]=l;return}let d=eB[s];if(!(d===void 0||n[i+"_legacy"]!==void 0)){n[i+"_legacy"]=d;return}}),n}function Jm(e){return rv()?iR(e,0):e}function oR(e){let t=e.slice();return e.forEach(r=>{let n=tR[r];n!==void 0&&!t.includes(n)&&t.push(n);let i=rR[r];if(i!==void 0&&!t.includes(i)){t.push(i);return}}),t}var Pl="<SENSITIVE_DATA>",rB=oR(["access_token","authorization","code","cookie","kandan_preview_ticket","refresh_token","token"]),nB=["--access-token","--api-key","--authorization","--cookie","--oauth-code","--password","--refresh-token","--secret","--token"],iB=new RegExp("^(authorization|cookie|set-cookie|password)$","i"),oB=new RegExp("(^|[_-])(access[_-]?token|api[_-]?key|auth[_-]?token|oauth[_-]?code|refresh[_-]?token|secret|token)$","i"),aB=new RegExp("\\beyJ[A-Za-z0-9_-]*\\.[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+\\b","g");function sB(e){return e!==void 0?iB.test(e)?!0:oB.test(e):!1}function aR(e){let t={contents:!1};return C0(e).forEach(r=>{if(rB.includes(r.toLowerCase())){e.set(r,Pl),t.contents=!0;return}}),t.contents}function lB(e){let t=El(e,"?"),r=El(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),o=r!==void 0?e.slice(r):"",a=new URLSearchParams(i);return aR(a)?n+"?"+a.toString()+o:e}function dB(e){let t=Zn(e);if(t===void 0)return lB(e);let r=se(t);return aR(r.searchParams),r.toString()}function sR(e){return dB(e).replace(aB,Pl)}function uB(e){let t=El(e,"=");return t!==void 0?[e.slice(0,t),e.slice(t+1|0)]:[e,void 0]}function ov(e,t){if(sB(t))return Pl;if(Array.isArray(e))return t==="args"?cB(e):e.map(r=>ov(r,void 0));if(e===null)return e;switch(typeof e){case"string":return sR(e);case"object":return lR(e);default:return e}}function cB(e){let t={contents:!1};return e.map(r=>{if(typeof r=="string"){if(t.contents)return t.contents=!1,Pl;let n=uB(r),i=n[0];return nB.includes(i)?n[1]!==void 0?i+"="+Pl:(t.contents=!0,r):sR(r)}return t.contents=!1,ov(r,void 0)})}function lR(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":n=!0;break;default:n=!1}else n=!1;let i={};return Object.entries(e).forEach(o=>{let a=o[0];if(a!=="runner_console"){i[a]=n&&a==="value"?Pl:ov(o[1],a);return}}),i}var Qm=lR;import*as la from"node:os";import*as Qp from"node:path";import*as t0 from"node:crypto";function uR(e){return"local_runner:"+e}var fB="kandan-local-codex-runner",mB="rescript";function cR(e){let t={};t.clientName=fB,t.clientId=e.clientId;let r=e.machineFingerprint;t.machineFingerprint=r!==void 0?r:null,Object.entries(ex(e.machineFingerprintV2)).forEach(a=>{t[a[0]]=a[1]}),t.runnerPid=e.runnerPid,t.version=e.version,t.hostname=e.hostname,t.cwd=e.cwd;let n=e.workspace;t.workspace=n!==void 0?n:null;let i=e.channel;t.channel=i!==void 0?i:null,t.capabilities=e.capabilities;let o=e.generationOverlapEpoch;if(o!==void 0){let a={};a.epoch=o,a.overlap=!0,t.generation=a}return t.commander_impl=mB,t}function fR(e,t,r){let n={};return n.last_seq=r,t!==void 0&&(n.runner_id=e,n.thread_id=t),n}function Dn(e,t){return e.catch(r=>t(K(r)))}function pR(){let e=[],t=[],r={contents:!1},n=()=>{let a=e.shift();return a!==void 0?Promise.resolve({done:!1,value:a}):r.contents?Promise.resolve({done:!0}):new Promise((s,l)=>{t.push(s)})},i=()=>(r.contents=!0,Promise.resolve({done:!0})),o={};return o[Symbol.asyncIterator]=()=>({next:n,return:i}),{iterable:o,push:a=>{if(r.contents)return!1;let s=t.shift();return s!==void 0?(s({done:!1,value:a}),!0):(e.push(a),!0)},close:()=>{r.contents=!0,(()=>{for(;;){let s=t.shift();if(s===void 0)return;s({done:!0})}})()}}}function hR(e){return import(e)}var hB="@anthropic-ai/claude-agent-sdk";function _R(e){return pR()}function _B(e){return{next:()=>e.next(),close:()=>{e.close()},interrupt:()=>e.interrupt(),setModel:t=>e.setModel(t),setPermissionMode:t=>e.setPermissionMode(t),applyFlagSettings:t=>e.applyFlagSettings(t),supportedCommands:()=>e.supportedCommands()}}async function gR(){let e=await hR(hB);return{query:t=>_B(e.query(t)),getSessionInfo:(t,r)=>e.getSessionInfo(t,r),listSessions:t=>e.listSessions(t),getSessionMessages:(t,r)=>e.getSessionMessages(t,r)}}var av=["codex","claude-code","pi","opencode"];function as(e){return e}function Ym(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"ActivityPulse":return"activity_pulse";case"TurnCompleted":return"turn_completed";case"TurnFailed":return"turn_failed";case"TurnInterrupted":return"turn_interrupted";case"HarnessDied":return"harness_died"}}function dv(e){switch(e){case"BindingNotObject":return"binding_not_object";case"SessionIdInvalid":return"session_id_invalid";case"LeaseEpochInvalid":return"lease_epoch_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 sv(e){return"adt_stream_v1 dispatch refused: "+dv(e)+"; the commander refuses to stream unconfigured (no baked fallback thresholds exist by law - plan doc 2.4/MF9)"}function SR(e){switch(e){case"Checkpoint":return"checkpoint";case"Delta":return"delta";case"Terminal":return"terminal"}}function ep(e){if(typeof e=="object"&&e!==null&&!Array.isArray(e))return e}function ss(e){if(e!==void 0&&typeof e=="number"&&e>=1&&Math.trunc(e)===e)return e}function gB(e){let t=ep(e);if(t===void 0)return;let r=ss(t.version),n=x(t.thresholds,ep);if(r===void 0||n===void 0)return;let i=ss(n.max_bytes),o=ss(n.max_deltas),a=ss(n.max_interval_ms);if(i!==void 0&&o!==void 0&&a!==void 0)return{version:r,thresholds:{maxBytes:i,maxDeltas:o,maxIntervalMs:a}}}function yB(e){let t=ep(e);if(t===void 0)return{TAG:"ParseRefused",_0:"BindingNotObject"};let r=ss(t.session_id);if(r===void 0)return{TAG:"ParseRefused",_0:"SessionIdInvalid"};let n=ss(t.lease_epoch);if(n===void 0)return{TAG:"ParseRefused",_0:"LeaseEpochInvalid"};let i=ss(t.next_frame_index);if(i===void 0)return{TAG:"ParseRefused",_0:"NextFrameIndexInvalid"};let o=t.checkpoint_config;if(o===void 0)return{TAG:"ParseRefused",_0:"CheckpointConfigMissing"};let a=gB(o);return a!==void 0?{TAG:"Parsed",_0:{sessionId:r,leaseEpoch:n,nextFrameIndex:i,checkpointConfig:a}}:{TAG:"ParseRefused",_0:"CheckpointConfigInvalid"}}function bB(e){return un(SR(e.frameKind)+`
325
325
  `+e.body).slice(0,16)}function SB(e){let t={};return t.session_id=e.sessionId,t.lease_epoch=e.leaseEpoch,t.frame_index=e.frameIndex,t.frame_kind=SR(e.frameKind),t.body=e.body,t.byte_len=e.byteLen,t}function vR(e){let t=SB(e);return t.digest=bB(e),t}function uv(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 wR(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 vB(e,t){return{binding:e,cumulative:"",pendingBody:"",pendingBytes:0,pendingDeltas:0,lastFrameAtMs:t,nextFrameIndex:e.nextFrameIndex,emittedFrameCount:0,checkpointPending:!1,terminalEmitted:!1,fenced:!1}}function cv(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,o=e.binding.leaseEpoch,a=e.nextFrameIndex,s=Buffer.byteLength(n,"utf8"),l={sessionId:i,leaseEpoch:o,frameIndex:a,frameKind:t,body:n,byteLen:s};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 wB(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 kR(e){let t=e.emittedFrameCount,r=e.checkpointPending;return t!==0&&!r?"Delta":"Checkpoint"}function kB(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,wB(e,r)?cv(e,kR(e),r):void 0}function xB(e,t){if(!(e.fenced||e.terminalEmitted||e.pendingBody===""))return cv(e,kR(e),t)}function TB(e,t){if(!(e.fenced||e.terminalEmitted))return e.terminalEmitted=!0,cv(e,"Terminal",t)}function AB(e){if(!(e.fenced||e.terminalEmitted)){e.cumulative="",e.pendingBody="",e.pendingBytes=0,e.pendingDeltas=0,e.checkpointPending=!0;return}}function xR(e){e.fenced=!0}function OB(e){switch(e){case"failed":case"ignored":case"interrupted":case"processed":return!0;default:return!1}}function TR(e,t,r){if(e===void 0||e===null)return"Absent";let n=yB(e);if(n.TAG==="Parsed"){let o=n._0;if(t===void 0)return{TAG:"Refused",reason:"SourceSeqInvalid",message:sv("SourceSeqInvalid")};if(!(t>=1&&Math.trunc(t)===t))return{TAG:"Refused",reason:"SourceSeqInvalid",message:sv("SourceSeqInvalid")};let a={};return a.session_id=o.sessionId,a.lease_epoch=o.leaseEpoch,a.checkpoint_config_version=o.checkpointConfig.version,{TAG:"Accepted",session:{binding:o,sourceSeq:t,emitter:vB(o,r),trackedItemKey:void 0,trackedItemRank:0,itemFirstSeenOrdinals:{},lastBody:"",done:!1},ackPayload:a}}let i=n._0;return{TAG:"Refused",reason:i,message:sv(i)}}function Gu(e,t){let r=e[t];if(typeof r=="string")return r}function bR(e,t){let r=e[t];if(r!==void 0&&typeof r=="number"&&Math.trunc(r)===r)return r}function CB(e){return x(x(e.structured,ep),r=>Gu(r,"phase"))==="final_answer"?1:0}function AR(e,t,r,n,i){if(e.done||e.emitter.fenced)return[];if(t===i.messageState){let _=bR(r,"seq"),g=Gu(r,"status");if(_===void 0)return[];if(g===void 0)return[];if(!(_===e.sourceSeq&&OB(g)))return[];let b=xB(e.emitter,n),y=TB(e.emitter,n);e.done=!0;let v=[];return b!==void 0&&v.push(b),y!==void 0&&v.push(y),v}let a=(t===i.postStreamedRow||t===i.streamSnapshot||t===i.finalizeRow||t===i.postCompletedRow)&&re(Gu(r,"stream_kind"),"assistant")&&re(bR(r,"source_seq"),e.sourceSeq),s=Gu(r,"item_key");if(!a)return[];if(s===void 0)return[];let l=CB(r),d=e.itemFirstSeenOrdinals[s],u;if(d!==void 0)u=d;else{let _=Object.keys(e.itemFirstSeenOrdinals).length;e.itemFirstSeenOrdinals[s]=_,u=_}let c=e.trackedItemKey,h;if(c!==void 0)if(c===s)e.trackedItemRank=l,h=!0;else{let _=k(e.itemFirstSeenOrdinals[c],-1);l>e.trackedItemRank||l===e.trackedItemRank&&u>_?(e.trackedItemKey=s,e.trackedItemRank=l,e.lastBody="",AB(e.emitter),h=!0):h=!1}else e.trackedItemKey=s,e.trackedItemRank=l,h=!0;if(!h)return[];let m=k(Gu(r,"body"),""),f=m.startsWith(e.lastBody)?m.slice(e.lastBody.length,m.length):m;e.lastBody=m;let p=kB(e.emitter,f,n);return p!==void 0?[p]:[]}var Fu={},Xm={},lv=[];function OR(e,t){Fu[e]=t}function fv(e){return Fu[e]}function CR(e,t){let r=Fu[e];if(r!==void 0&&r.binding.sessionId===t.binding.sessionId&&r.binding.leaseEpoch===t.binding.leaseEpoch)return Vt(Fu,e)}function ER(e){let t=e.toString();if(Xm[t]===void 0)for(Xm[t]=!0,lv.push(t);lv.length>256;){let n=lv.shift();n!==void 0&&Vt(Xm,n)}}function mv(e){return k(Xm[e.toString()],!1)}function PR(){return Object.entries(Fu).filter(e=>{let t=e[1];return t.done?!1:!mv(t.binding.sessionId)})}function RR(e,t){let r={};return r.session_id=e.binding.sessionId,r.lease_epoch=e.binding.leaseEpoch,r.harness_alive=t,r}var IR="adt_stream_v1";var $R="adt_frame",MR="adt_binding_ack",jR="adt_stall_heartbeat",pv="adt.frame";function EB(e){switch(e){case"SocketOpen":return"open";case"SocketMessage":return"message";case"SocketClose":return"close";case"SocketError":return"error"}}function PB(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 o=e.reason,a;return a=o==null||typeof o!="string"?void 0:o,{data:r,code:i,reason:a}}function RB(e){return{readyState:()=>e.readyState,send:t=>{e.send(t)},close:()=>{e.close()},on:(t,r)=>{e.addEventListener(EB(t),n=>r(PB(n)),{})}}}function tp(e,t){return RB(new WebSocket(e,t))}var NR=0,ls=1;var hv="file",_v=["mcp_oauth_credentials_store","cli_auth_credentials_store"],IB=_v.flatMap(e=>["-c",e+'="'+hv+'"']),$B=["-c","features.apps=false"];function xi(e){return JSON.stringify(e)}function MB(e){let t=(r,n)=>r!==void 0?Object.entries(r).flatMap(i=>["-c","model_providers."+e.id+"."+n+"."+i[0]+"="+xi(i[1])]):[];return[["-c","model_providers."+e.id+".name="+xi(e.name),"-c","model_providers."+e.id+".base_url="+xi(e.baseUrl),"-c","model_providers."+e.id+".env_key="+xi(e.envKey),"-c","model_providers."+e.id+".wire_api="+xi(e.wireApi)],t(e.httpHeaders,"http_headers"),t(e.envHttpHeaders,"env_http_headers"),["-c","model_provider="+xi(e.id)]].flat()}var jB=["-c","model_providers.openai-linzumi.name="+xi("OpenAI"),"-c","model_providers.openai-linzumi.wire_api="+xi("responses"),"-c","model_providers.openai-linzumi.requires_openai_auth=true","-c","model_providers.openai-linzumi.supports_websockets=true"];function zB(e){let t=e.model,r=e.reasoningEffort,n=e.modelProvider;return[$B,IB,t!==void 0?["-c","model="+xi(t)]:[],r!==void 0?["-c","model_reasoning_effort="+xi(r)]:[],e.fast?["-c","service_tier="+xi("fast")]:[],e.mcpConfigArgs.flat(),n!==void 0?MB(n):jB].flat()}function FR(e,t){return[["app-server"],zB(t),["--listen",e]].flat()}var NB=["LINZUMI_MCP_ACCESS_TOKEN","LINZUMI_MCP_OWNER_USERNAME"];function qR(e,t,r){let n=r?Object.fromEntries(Object.entries(e)):{};return NB.forEach(i=>Vt(n,i)),t.forEach(i=>{let o=i[1],a=i[0];if(o!==void 0){n[a]=o;return}else return Vt(n,a)}),n}var DR=["ignore","pipe","pipe"];function LR(e){let t=e.length;return t>12e3?e.slice(t-12e3|0,t):e}function UR(e,t,r){return r<3&&e.includes("codex app-server exited before readyz")&&t.includes("EADDRINUSE")?t.includes("listen"):!1}function WR(e){let t=Zn(e);if(t===void 0)return;let r=se(t),i=r.protocol==="wss:"?"https:":"http:";return r.protocol=i,r.pathname="/readyz",r.search="",r.hash="",r.toString()}var GB="kandan-local-codex-runner",FB="0.0.1";function VR(){return Object.fromEntries([["clientInfo",Object.fromEntries([["name",GB],["version",FB]])],["capabilities",Object.fromEntries([["experimentalApi",!0]])]])}var qB=new RegExp("\\bsession\\b.+\\bis archived\\b","i");function ZR(e){return qB.test(e)}var DB=new RegExp("^thread not found(?:\\s*:|\\b)","i");function HR(e){return DB.test(e.trim())}var BR=2e3;function LB(e){try{e.unref();return}catch{return}}var KR="codex app-server websocket closed",UB="codex app-server websocket is not open";function WB(e){let t=e.method;if(typeof t=="string")return t}function gv(e){let t=e.error;if(t===void 0)return{TAG:"ResultReply",_0:k(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 np(e,t,r,n){let i=JSON.stringify(n);t(r,i);try{return e.socket.send(i),{TAG:"Ok",_0:void 0}}catch(o){let a=K(o);return{TAG:"Error",_0:Re(a).message}}}function XR(e,t,r){try{return t(r)}catch(n){let i=K(n);return e("codex.notification_callback_failed",Object.fromEntries([["purpose","codex.app_server"],["method",r.method],["message",Re(i).message]]))}}function JR(e,t,r){try{return t(r)}catch(n){let i=K(n);return e("codex.close_callback_failed",Object.fromEntries([["purpose","codex.app_server"],["message",Re(i).message]]))}}function VB(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 ZB(e,t,r,n){let i={TAG:"Error",_0:[-32601,"unhandled Codex app-server request: "+n.method]},o=e.requestCallbacks.slice(),a,s=0;for(;Sn(a)&&s<o.length;){let d=o[s];if(d!==void 0){let u=0,c;try{c=await d(n),u=1}catch(h){let m=K(h);a={TAG:"Error",_0:[-32e3,Re(m).message]}}u===1&&c!==void 0&&(a={TAG:"Ok",_0:c})}s=s+1|0}let l=k(a,i);np(t,r,"outgoing",VB(n.id,l))}function HB(e,t,r,n,i){let o;try{o=JSON.parse(i)}catch(m){let f=K(m);r("codex.app_server_frame_malformed",Object.fromEntries([["purpose","codex.app_server"],["message",Re(f).message],["payload",i.slice(0,512)],["payloadChars",i.length]])),o=void 0}let a;if(o!==void 0){let m=0;typeof o=="object"&&o!==null&&!Array.isArray(o)?a=o:m=1,m===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]])),a=void 0)}else a=void 0;if(a===void 0)return;let s=$t(a.id),l=s&&($t(a.result)||$t(a.error)),d=WB(a);if(l){let m=k(a.id,null),f=JSON.stringify(m),p=e.pending[f];return p!==void 0?(Vt(e.pending,f),p.resolvePending({TAG:"Ok",_0:gv(a)})):void 0}if(s)if(d!==void 0){Dn(ZB(e,t,n,{id:k(a.id,null),method:d,params:a.params}),m=>Promise.resolve());return}else return;if(d===void 0)return;let u=a.params,c={method:d,params:u};e.notificationCallbacks.length!==0?e.notificationCallbacks.forEach(m=>XR(r,m,c)):e.pendingNotifications.push(c)}function BB(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 QR(e,t){return Object.fromEntries(t!==void 0?[["jsonrpc","2.0"],["method",e],["params",t]]:[["jsonrpc","2.0"],["method",e]])}function YR(e,t,r,n,i,o){return t.socket.readyState()===ls?new Promise((a,s)=>{e.pending[JSON.stringify(n)]={resolvePending:a};let l=np(t,r,"request",BB(n,i,o));l.TAG!=="Ok"&&(Vt(e.pending,JSON.stringify(n)),a({TAG:"Error",_0:l._0}))}):Promise.resolve({TAG:"Error",_0:UB})}async function ip(e,t,r,n){let i=t!==void 0?t:u=>({socket:tp(u,[]),ping:void 0}),o=r!==void 0?r:2e3,a=n!==void 0?n:()=>Date.now(),s=a()+o,l,d="websocket open failed";for(;Sn(l);){let u;try{u={TAG:"Ok",_0:i(e)}}catch(c){let h=K(c);u={TAG:"Error",_0:Re(h).message}}if(u.TAG==="Ok"){let c=u._0;if(await new Promise((h,m)=>{c.socket.on("SocketOpen",f=>h(!0)),c.socket.on("SocketError",f=>h(!1))}))l={TAG:"Ok",_0:c};else{try{c.socket.close()}catch{}a()>s&&(l={TAG:"Error",_0:d})}}else d=u._0,a()>s&&(l={TAG:"Error",_0:d})}return k(l,{TAG:"Error",_0:d})}async function op(e,t){let r={pending:{},notificationCallbacks:[],requestCallbacks:[],pendingNotifications:[],closeCallbacks:[],nextId:1,closeError:void 0},n=t.audit,i=t.onWire,o=setInterval(()=>{let d=e.ping;if(d!==void 0&&e.socket.readyState()===ls)try{return d()}catch{return}},t.keepaliveIntervalMs);LB(o);let a=d=>{clearInterval(o);let u=Object.entries(r.pending);if(Object.entries(r.pending).forEach(m=>Vt(r.pending,m[0])),u.forEach(m=>m[1].resolvePending({TAG:"Error",_0:d})),r.closeError!==void 0)return;r.closeError=d;let h=r.closeCallbacks.slice();r.closeCallbacks.splice(0,r.closeCallbacks.length),h.forEach(m=>JR(n,m,d))};e.socket.on("SocketClose",d=>a(KR)),e.socket.on("SocketError",d=>a(KR)),e.socket.on("SocketMessage",d=>{let u=d.data;if(u!==void 0)return i("incoming",u),HB(r,e,n,i,u)});let s=await YR(r,e,i,"initialize","initialize",VR());if(s.TAG!=="Ok")return{TAG:"Error",_0:s._0};let l=s._0;return l.TAG!=="ResultReply"?{TAG:"Error",_0:"codex initialize failed: "+l.message}:(np(e,i,"outgoing",QR("initialized",void 0)),{TAG:"Ok",_0:{request:(d,u)=>{let c=r.nextId;return r.nextId=r.nextId+1|0,YR(r,e,i,c,d,u)},notify:(d,u)=>{np(e,i,"outgoing",QR(d,u))},onNotification:d=>{r.notificationCallbacks.push(d);let u=r.pendingNotifications.slice();r.pendingNotifications.splice(0,r.pendingNotifications.length),u.forEach(c=>XR(n,d,c))},onRequest:d=>{r.requestCallbacks.push(d)},onClose:d=>{let u=r.closeError;if(u!==void 0)return JR(n,d,u);r.closeCallbacks.push(d)},isClosed:()=>$t(r.closeError),close:()=>{clearInterval(o);try{return e.socket.close()}catch{return}}}})}function $l(e){if(typeof e=="object"&&e!==null&&!Array.isArray(e))return e}function Ui(e){if(e!==void 0&&typeof e=="string"&&e.trim()!=="")return e.trim()}function Il(e){if(e!==void 0&&typeof e=="number"&&Ot(e))return e}function eI(e){if(typeof e=="object"&&e!==null&&!Array.isArray(e))return e}var tI="linzumi_thread_codex_worker_ready",rI="linzumi_thread_codex_worker_session_closed",nI="linzumi_thread_codex_worker_request",iI="linzumi_thread_codex_worker_notify",vv="linzumi_thread_codex_worker_response",oI="linzumi_thread_codex_worker_notification",aI="linzumi_thread_codex_worker_server_request",sI="linzumi_thread_codex_worker_server_request_response";function lI(e,t){let r={};return r.type=tI,r.kandanThreadId=e,r.commanderManagedPorts=t.map(n=>{let i={};i.port=n.port;let o=n.pid;o!==void 0&&(i.pid=o);let a=n.processName;a!==void 0&&(i.processName=a);let s=n.processIconKey;s!==void 0&&(i.processIconKey=s);let l=n.agentProvider;return l!==void 0&&(i.agentProvider=l),i}),r}function dI(e,t){let r={};return r.type=rI,r.kandanThreadId=e,r.reason=t,r}function KB(e,t,r){let n={};return n.type=nI,n.id=e,n.method=t,r!==void 0&&(n.params=r),n}function JB(e,t){let r={};return r.type=iI,r.method=e,t!==void 0&&(r.params=t),r}function QB(e,t){let r={};return r.type=vv,r.id=e,r.response=t,r}function YB(e,t){let r={};return r.type=vv,r.id=e,r.error=t,r}function XB(e){let t={};return t.type=oI,t.notification=e,t}function e3(e,t){let r={};return r.type=aI,r.id=e,r.request=t,r}function bv(e,t,r){let n={};return n.type=sI,n.id=e,t!==void 0&&(n.result=t),r!==void 0&&(n.error=r),n}function t3(e){if(e===void 0||typeof e!="object"||e===null||Array.isArray(e)||e.id===void 0)return;let r=e.result,n=e.error;if(r!==void 0||n!==void 0)return e}function r3(e){if(e===void 0||typeof e!="object"||e===null||Array.isArray(e))return;let t=e.id,r=e.method;if(!(t!==void 0||typeof r!="string"))return e}function n3(e){if(e===void 0||typeof e!="object"||e===null||Array.isArray(e))return;let t=e.id,r=e.method;if(t!==void 0&&typeof r=="string")return e}function i3(e){let t=$l(e);if(t===void 0)return;let r=t.type;if(r===void 0||typeof r!="string")return;if(r===nI){let i=Il(t.id),o=Ui(t.method);return i!==void 0&&o!==void 0?{TAG:"ParentRequest",id:i,method_:o,params:eI(t.params)}:void 0}if(r===iI){let i=Ui(t.method);return i!==void 0?{TAG:"ParentNotify",method_:i,params:eI(t.params)}:void 0}if(r!==sI)return;let n=Il(t.id);if(n!==void 0)return{TAG:"ParentServerRequestResponse",id:n,result:t.result,error:Ui(t.error)}}function o3(e){let t=$l(e);if(t===void 0)return;let r=t.type;if(r===void 0||typeof r!="string")return;if(r===vv){let o=Il(t.id);return o!==void 0?{TAG:"ChildResponse",id:o,response:t3(t.response),error:Ui(t.error)}:void 0}if(r===oI){let o=r3(t.notification);return o!==void 0?{TAG:"ChildNotification",notification:o}:void 0}if(r!==aI)return;let n=Il(t.id),i=n3(t.request);if(n!==void 0&&i!==void 0)return{TAG:"ChildServerRequest",id:n,request:i}}function uI(e){let t=$l(e);if(t===void 0)return;let r=t.type;if(typeof r=="string"&&r===rI)return[k(Ui(t.kandanThreadId),""),k(Ui(t.reason),"")]}var a3="thread Codex worker reported invalid ready payload";function s3(e){let t=Ui(e);if(t!==void 0)switch(t){case"claude-code":return"claude-code";case"codex":return"codex";default:return}}function l3(e){return e!==void 0?Array.isArray(e)?$e(e,t=>{let r=$l(t);if(r===void 0)return;let n=Il(r.port);if(n!==void 0&&n>=1&&n<=65535)return{port:n,pid:Il(r.pid),processName:Ui(r.processName),processIconKey:Ui(r.processIconKey),agentProvider:s3(r.agentProvider)}}):[]:[]}function cI(e,t){let r=$l(e);if(r===void 0)return{TAG:"Ok",_0:void 0};let n=r.type;if(n===void 0)return{TAG:"Ok",_0:void 0};if(typeof n!="string")return{TAG:"Ok",_0:void 0};if(n!==tI)return{TAG:"Ok",_0:void 0};let i=Ui(r.kandanThreadId);return i!==void 0&&i===t?{TAG:"Ok",_0:{kandanThreadId:i,commanderManagedPorts:l3(r.commanderManagedPorts)}}:{TAG:"Error",_0:a3}}function fI(e,t){}var mI="linzumi.thread_runner",d3="thread Codex worker requires a codex client with onRequest",Sv="thread Codex worker IPC channel closed";function pI(e,t,r){let n=r!==void 0?r:fI,i=e.onRequest;if(i===void 0)return{TAG:"Error",_0:d3};let o=new Map,a={contents:1},s={contents:!1},l=u=>{if(s.contents)return;s.contents=!0;let c={};c.purpose=mI,c.reason=u,n("thread_codex_worker.ipc_send_dropped",c)},d=u=>{let c=t.send,h=t.isConnected();if(c===void 0||!h)return l("ipc_channel_closed");let m=c(u);if(m.TAG!=="Ok")return l(m._0)};return t.onMessage(u=>{let c=i3(u);if(c!==void 0)switch(c.TAG){case"ParentRequest":let h=c.id;e.request(c.method_,c.params).then(_=>_.TAG==="Ok"?d(QB(h,_._0)):d(YB(h,_._0)));return;case"ParentNotify":return e.notify(c.method_,c.params);case"ParentServerRequestResponse":let m=c.error,f=c.id,p=o.get(f);return p!==void 0?(o.delete(f),p(m!==void 0?{TAG:"Error",_0:m}:{TAG:"Ok",_0:c.result})):void 0}}),e.onNotification(u=>d(XB(u))),i(u=>new Promise((c,h)=>{let m=a.contents;a.contents=m+1,o.set(m,c),d(e3(m,u))})),t.onceDisconnect(()=>{o.forEach(u=>u({TAG:"Error",_0:Sv})),o.clear()}),{TAG:"Ok",_0:void 0}}var u3="thread Codex worker IPC client is closed",c3="thread Codex worker response missing body",f3="thread Codex worker IPC client closed";async function m3(e,t,r,n,i,o){let a=d=>{let u=e(d);if(u.TAG==="Ok")return;let c={};c.purpose=mI,c.requestMethod=n,c.message=u._0,o("thread_codex_worker.ipc_response_dropped",c)},s=!1,l=0;for(;!s&&l<i.length;){let d=i[l];if(d!==void 0){let u=await d(r);if(u.TAG==="Ok"){let c=u._0;c!==void 0&&(s=!0,a(bv(t,c,void 0)))}else s=!0,a(bv(t,void 0,u._0))}l=l+1|0}if(!s)return a(bv(t,void 0,"unhandled Codex app-server request: "+n))}function p3(e){let t=$l(e);if(t===void 0)return"";let r=t.method;return typeof r=="string"?r:""}function hI(e,t){let r=t!==void 0?t:fI,n=new Map,i=[],o=[],a=[],s={contents:1},l={contents:!1},d=_=>{n.forEach(g=>g({TAG:"Error",_0:_})),n.clear()},u=_=>{if(l.contents)return{TAG:"Error",_0:u3};let g=e.send,b=e.isConnected();return g!==void 0&&b?g(_):{TAG:"Error",_0:Sv}},c=_=>{let g=o3(_);if(g!==void 0)switch(g.TAG){case"ChildResponse":let b=g.error,y=g.response,v=g.id,w=n.get(v);return w!==void 0?(n.delete(v),w(b!==void 0?{TAG:"Error",_0:b}:y!==void 0?{TAG:"Ok",_0:y}:{TAG:"Error",_0:c3})):void 0;case"ChildNotification":let A=g.notification;i.length!==0?i.forEach(z=>z(A)):a.push(A);return;case"ChildServerRequest":let j=g.request;m3(u,g.id,j,p3(j),o,r);return}},h=e.onMessage(c),m=()=>{l.contents=!0,d(Sv)},f=e.onceExit(m),p=e.onceDisconnect(m);return{request:(_,g)=>new Promise((b,y)=>{let v=s.contents;s.contents=v+1,n.set(v,b);let w=u(KB(v,_,g));w.TAG!=="Ok"&&(n.delete(v),b({TAG:"Error",_0:w._0}))}),notify:(_,g)=>u(JB(_,g)),onNotification:_=>{i.push(_);let g=a.slice();a.splice(0,a.length),g.forEach(b=>_(b))},onRequest:_=>{o.push(_)},isClosed:()=>l.contents?!0:!e.isConnected(),close:()=>{l.contents=!0,h(),f(),p(),d(f3)}}}import*as Cv from"node:child_process";import*as gI from"node:os";import*as yI from"node:path";function oi(e){let t=parseFloat(e);if(!Number.isNaN(t))return t}function bI(){return yI.join(gI.homedir(),".linzumi","protected-dev-listeners")}var h3=new RegExp("^(\\d+)\\s+(\\d+)$");function _3(e){return $e(e.split(`
326
326
  `),t=>{let r=h3.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 o=n[1];if(o===void 0)return;let a=oi(i),s=oi(o);if(a!==void 0&&s!==void 0)return{pid:a,pgid:s}})}function g3(e){let t=Os("ps",["-axo","pid=,pgid="],5e3,16e6);if(t.TAG==="Ok")return _3(t._0).filter(r=>r.pgid===e).map(r=>r.pid)}function ap(e,t,r,n,i){let o=n!==void 0?n:g3,a;if(i.size>0){let l=o(e);if(l!==void 0){let d=l.filter(u=>i.has(u));if(d.length!==0){let u=[],c=new Set(l.filter(h=>!i.has(h)));c.add(e),Array.from(c).forEach(h=>{let m=r(h|0,t);if(m.TAG==="Ok")return;let f=m._0;if(!re(f.code,"ESRCH")){u.push({pid:h,code:f.code,message:f.message});return}}),a={mode:"IndividualSignals",sparedPids:d,failures:u,groupSignalError:void 0}}else a=void 0}else a=void 0}else a=void 0;if(a!==void 0)return a;let s=r(-e|0,t);return s.TAG==="Ok"?{mode:"GroupSignal",sparedPids:[],failures:[],groupSignalError:void 0}:{mode:"GroupSignal",sparedPids:[],failures:[],groupSignalError:s._0}}var wI={contents:(e,t)=>{}};var wv="SIGKILL",ds={children:new Set,handlersInstalled:!1,removeHandlers:void 0};function Du(e,t,r,n,i){let o=e.pid;wI.contents("process.reap_failed",Object.fromEntries([["purpose",e.kind],["pid",o!==void 0?o:null],["ownProcessGroup",e.ownProcessGroup],["reason",t],["stage",r],["code",n!==void 0?n:null],["message",i]]))}function y3(e,t,r,n){let i;try{e.stop(),i={TAG:"Ok",_0:void 0}}catch(l){i={TAG:"Error",_0:K(l)}}if(i.TAG!=="Ok"){let l=Re(i._0);Du(e,n,"stop",l.code,l.message)}let o=e.pid;if(o===void 0)return;if(e.ownProcessGroup){let l=ap(o,wv,t,void 0,r);l.sparedPids.length!==0&&wI.contents("process.reap_spared_listeners",Object.fromEntries([["purpose",e.kind],["pid",o],["reason",n],["sparedPids",l.sparedPids.map(h=>h)]])),l.failures.forEach(h=>Du(e,n,"member_kill:"+h.pid.toString(),h.code,h.message));let d=l.groupSignalError;if(d===void 0||re(d.code,"ESRCH"))return;Du(e,n,"group_kill",d.code,d.message);let u=t(o,wv);if(u.TAG==="Ok")return;let c=u._0;return re(c.code,"ESRCH")?void 0:Du(e,n,"pid_kill",c.code,c.message)}let a=t(o,wv);if(a.TAG==="Ok")return;let s=a._0;if(!re(s.code,"ESRCH"))return Du(e,n,"pid_kill",s.code,s.message)}function kv(e,t,r){let n=e!==void 0?e:Ji,i=t!==void 0?t:new Set,o=r!==void 0?r:"exit",a=Array.from(ds.children);return ds.children.clear(),a.forEach(s=>y3(s,n,i,o)),a.length}function vI(e,t){let r;return r=typeof t=="string"?t:JSON.stringify(t),"linzumi commander "+e+": "+r+`
327
327
  `}function b3(){if(ds.handlersInstalled)return;ds.handlersInstalled=!0;let e=o=>{kv(void 0,void 0,"process_exit")};process.on("exit",e);let t=process.listenerCount("uncaughtException")===0,r=process.listenerCount("unhandledRejection")===0,n=o=>{kv(void 0,void 0,"uncaught_exception"),mr(vI("uncaughtException",o)),process.exit(1)},i=o=>{kv(void 0,void 0,"unhandled_rejection"),mr(vI("unhandledRejection",o)),process.exit(1)};t&&process.on("uncaughtException",n),r&&process.on("unhandledRejection",i),ds.removeHandlers=()=>{if(process.off("exit",e),t&&process.off("uncaughtException",n),r){process.off("unhandledRejection",i);return}}}function sp(e){return ds.children.add(e),b3(),{unregister:()=>{ds.children.delete(e)}}}import*as Bo from"node:path";import*as xI from"node:net";function Ml(e,t){try{return e.kill(t)}catch{return!1}}function TI(){return new Promise((e,t)=>{let r=xI.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(o=>{}),e({TAG:"Error",_0:"failed to allocate loopback port"});let i=n.port;r.close(o=>o==null?e({TAG:"Ok",_0:i}):e({TAG:"Error",_0:o.message}))})})}var Cie=new RegExp("[^0-9A-Za-z._-]","g");var Gie=new RegExp("[\\\\/]");var AI="cannot fork thread runner without current CLI script path";var Fie=15*6e4,qie=120*6e4,Die=1440*6e4,Lie=2*6e4;var w3="this computer is updating its Linzumi runner",Uie=w3+" to a new version - nothing was started. Retry in a few minutes once the update finishes.";var Wie=15*6e4;var OI="this computer restarted its Linzumi runner for an update",Vie=OI+" after waiting for this job past the drain timeout - the job was interrupted. Send your message again to continue.",Zie=OI+" while this job was waiting on your approval - the approval prompt was interrupted. Send your message again and answer the approval prompt to continue.";function CI(e,t,r){return e==="SIGTERM"&&t?r!=="win32":!1}var EI="runner.thread_worker_sigterm_deferred_to_drain";function k3(e,t){}var Tv="linzumi.thread_runner";function RI(e,t){return e!==void 0&&e.trim()!==""?{TAG:"Ok",_0:Bo.isAbsolute(e)?e:Bo.resolve(t,e)}:{TAG:"Error",_0:AI}}function x3(e){return["--require","-r","--import","--loader","--experimental-loader"].includes(e)}function T3(e){return["--require=","-r=","--import=","--loader=","--experimental-loader="].some(t=>e.startsWith(t))}function A3(e){let t=[],r=0;for(;r<e.length;){let n=e[r];if(n!==void 0){let i=x3(n),o=T3(n);if(i){let a=e[r+1|0];a!==void 0&&(t.push(n),t.push(a)),r=r+2|0}else o&&t.push(n),r=r+1|0}else r=r+1|0}return t}function Av(e,t,r){return A3(r).concat([e].concat(t))}function gn(e,t){return t!==void 0?t!==""?[e,t]:[]:[]}function II(e){let t=i=>{let o=i.join(",");if(o!=="")return o},r=e.codexModelProvider,n=e.runtimeDefaults;return[["--api-url",e.kandanUrl],["--cwd",e.cwd],["--codex-bin",e.codexBin],gn("--workspace",e.workspaceSlug),gn("--log-file",e.logFile),gn("--debug-trace-dir",q(e.debugTrace,i=>i.dir)),gn("--debug-trace-content",x(e.debugTrace,i=>i.contentMode)),e.fast?["--fast"]:[],gn("--allowed-cwd",t(e.allowedCwds)),gn("--forward-port",t(e.allowedForwardPorts.map(i=>i.toString()))),gn("--code-server-bin",e.codeServerBin),gn("--model",x(e.runtimeDefaults,i=>i.model)),gn("--reasoning-effort",x(e.runtimeDefaults,i=>i.reasoningEffort)),gn("--sandbox",x(e.runtimeDefaults,i=>i.sandbox)),gn("--approval-policy",x(e.runtimeDefaults,i=>i.approvalPolicy)),r!==void 0?["--model-provider",r.provider,"--llm-proxy-base-url",r.llmProxyBaseUrl]:[],e.vmExecution?["--vm-execution"]:[],gn("--execution-mode",e.executionMode),gn("--egress-mode",e.egressMode),gn("--project-public-id",e.projectPublicId),gn("--golden-image-id",e.goldenImagePublicId),n!==void 0?n.allowPortForwardingByDefault?["--allow-port-forwarding-by-default"]:["--no-allow-port-forwarding-by-default"]:[]].flat()}function $I(e){let t=[],r=0;for(;r<e.length;){let n=e[r];n!==void 0?n==="--token"?(t.push("--token"),t.push("<redacted>"),r=r+2|0):(t.push(n),r=r+1|0):r=r+1|0}return t}function MI(e,t,r){let n=[["LINZUMI_THREAD_RUNNER_ROLE","thread"],["LINZUMI_THREAD_RUNNER_KANDAN_THREAD_ID",e.kandanThreadId],["LINZUMI_THREAD_RUNNER_TOKEN",e.token],["LINZUMI_DEV_SERVICES_PARENT_PID",t.toString()]],i=e.codexModelProvider;return i!==void 0&&n.push(["LINZUMI_LLM_PROXY_TOKEN",i.llmProxyToken]),n.push(["LINZUMI_THREAD_RUNNER_AGENT_MCP_TOKEN",k(e.linzumiAgentMcpToken,"")]),r!==void 0&&n.push(["OPENAI_API_KEY",r]),n}function jI(e){let t=e.length;return t>12e3?e.slice(t-12e3|0,t):e}function lp(e){let t=dn(e.code,"null",o=>o.toString()),r=k(e.signal,"null"),n="thread Codex worker exited before ready: code="+t+" signal="+r,i=e.capturedOutput.trim();return i===""?n:n+`
@@ -1510,7 +1510,7 @@ To kick the agent off:
1510
1510
  `,O=Buffer.byteLength(T,"utf8");if(O>s)return l("runner_diagnostics.spool_entry_dropped",{reason:"entry_too_large",entry_bytes:O,max_entry_bytes:s}),!1;BEe(n,{recursive:!0}),m(u)+O>i&&f(),_(O);let P=b()?`
1511
1511
  `:"";return NEe(u,`${P}${T}`,"utf8"),!0}catch(R){return l("runner_diagnostics.spool_failed",{error:R instanceof Error?R.message:String(R)}),!1}},w=S=>{let R=[],T=KEe(S,"utf8");for(let O of T.split(`
1512
1512
  `))if(O.trim()!=="")try{let P=JSON.parse(O);P!==null&&typeof P=="object"&&R.push({parsed:P,raw:O})}catch{}return R};return{append:v,drain:async S=>{if(c)return{uploadedBatches:0,uploadedEntries:0,remainingBatches:p().length,skipped:!0};c=!0;let R=0,T=0;try{f(),_(0);let O=a()-o;for(let P of p()){let A;try{A=w(P)}catch(Z){l("runner_diagnostics.spool_batch_unreadable",{file:P,error:Z instanceof Error?Z.message:String(Z)}),y(P,"unreadable");continue}let q=A.filter(Z=>{let H=d1e(Z.parsed);return H===void 0||H>=O});if(q.length===0){y(P,"empty_or_expired");continue}let E=RR(P,".jsonl"),N=q.map(Z=>Z.raw).join(`
1513
- `),V=q.map(Z=>Z.parsed.spooled_at).filter(Z=>typeof Z=="string"),G={bundle_name:"runner-diagnostics-spool",exported_at:new Date(a()).toISOString(),idempotency_key:E,diagnostics:{kind:"runner_diagnostic_log",spool_batch:!0,idempotency_key:E,entry_count:q.length,...V.length===0?{}:{first_spooled_at:V[0],last_spooled_at:V[V.length-1]}},telemetry_ndjson:N};try{await S(G)}catch(Z){l("runner_diagnostics.spool_upload_failed",{file:P,remaining_batches:p().length,error:Z instanceof Error?Z.message:String(Z)});break}R+=1,T+=q.length;try{UJ(P)}catch(Z){l("runner_diagnostics.spool_delete_failed",{file:P,error:Z instanceof Error?Z.message:String(Z)})}}}catch(O){l("runner_diagnostics.spool_drain_failed",{error:O instanceof Error?O.message:String(O)})}finally{c=!1}return{uploadedBatches:R,uploadedEntries:T,remainingBatches:p().length,skipped:!1}},pendingBatchFiles:p}}var QEe,XEe,YEe,e1e,n1e,BJ,r1e,o1e,KJ=F(()=>{"use strict";jx();QEe=32*1024*1024,XEe=10080*60*1e3,YEe=4*1024*1024,e1e=1024*1024,n1e="spool.jsonl",BJ=/^batch-(\d{1,16})-[0-9a-f-]+\.jsonl$/;r1e=/\b([A-Z][A-Z0-9_]{1,})=("[^"\n]*"|'[^'\n]*'|[^\s"'`;,)\]}]+)/g,o1e=/(?:\/(?:[A-Za-z0-9._@~+-]|%[0-9A-Fa-f]{2})+){2,}/g});var Vt,DR,Sa=F(()=>{"use strict";Vt="1.0.181",DR=`linzumi ${Vt}`});import{closeSync as WJ,existsSync as AR,mkdirSync as u1e,openSync as HJ,readFileSync as GJ,renameSync as c1e,unlinkSync as eu,writeFileSync as l1e,writeSync as ZJ}from"node:fs";import{dirname as QJ,join as p1e}from"node:path";function OR(e){return e instanceof Ds||e instanceof Error&&e.name===YJ&&"lockPath"in e&&"heldBy"in e}function $R(e,n=et(),t){let r=t===void 0?encodeURIComponent(e):Vd(t);return p1e(QJ(n),"runners",`${r}.lock`)}function Qb(e){let n=$R(e.machineId,e.configPath,e.linzumiUrl),t=e.isPidAlive??sK,r=e.now??(()=>new Date),o=e.killPid??C1e,i=r().toISOString(),s={version:1,machineId:e.machineId,runnerId:e.runnerId,pid:e.pid??process.pid,cwd:e.cwd,workspace:e.workspace,...e.linzumiUrl===void 0?{}:{linzumiUrl:zn(e.linzumiUrl)},...e.launchSource===void 0?{}:{launchSource:e.launchSource},startedAt:i,heartbeatAt:i,cliVersion:e.cliVersion??Vt,...e.gracefulUpdateDrain===!0?{gracefulUpdateDrain:!0}:{}};g1e(e.machineId,e.configPath,e.linzumiUrl,t,r,o,e.onTakeover),y1e(n,s,t,r,o,e.onTakeover,e.beforeReadExistingLock,e.beforeReplaceStaleLock);let a=()=>eK(n,s,r),d=setInterval(a,XJ);return d.unref(),{path:n,record:s,heartbeat:a,release:()=>{clearInterval(d),oK(n,s)}}}function eK(e,n,t){try{let r=Yb(e);if(r===void 0||r.machineId!==n.machineId||r.runnerId!==n.runnerId||r.pid!==n.pid||r.startedAt!==n.startedAt)return;let o={...r,heartbeatAt:t().toISOString()},i=`${e}.tmp`;l1e(i,`${JSON.stringify(o,null,2)}
1513
+ `),V=q.map(Z=>Z.parsed.spooled_at).filter(Z=>typeof Z=="string"),G={bundle_name:"runner-diagnostics-spool",exported_at:new Date(a()).toISOString(),idempotency_key:E,diagnostics:{kind:"runner_diagnostic_log",spool_batch:!0,idempotency_key:E,entry_count:q.length,...V.length===0?{}:{first_spooled_at:V[0],last_spooled_at:V[V.length-1]}},telemetry_ndjson:N};try{await S(G)}catch(Z){l("runner_diagnostics.spool_upload_failed",{file:P,remaining_batches:p().length,error:Z instanceof Error?Z.message:String(Z)});break}R+=1,T+=q.length;try{UJ(P)}catch(Z){l("runner_diagnostics.spool_delete_failed",{file:P,error:Z instanceof Error?Z.message:String(Z)})}}}catch(O){l("runner_diagnostics.spool_drain_failed",{error:O instanceof Error?O.message:String(O)})}finally{c=!1}return{uploadedBatches:R,uploadedEntries:T,remainingBatches:p().length,skipped:!1}},pendingBatchFiles:p}}var QEe,XEe,YEe,e1e,n1e,BJ,r1e,o1e,KJ=F(()=>{"use strict";jx();QEe=32*1024*1024,XEe=10080*60*1e3,YEe=4*1024*1024,e1e=1024*1024,n1e="spool.jsonl",BJ=/^batch-(\d{1,16})-[0-9a-f-]+\.jsonl$/;r1e=/\b([A-Z][A-Z0-9_]{1,})=("[^"\n]*"|'[^'\n]*'|[^\s"'`;,)\]}]+)/g,o1e=/(?:\/(?:[A-Za-z0-9._@~+-]|%[0-9A-Fa-f]{2})+){2,}/g});var Vt,DR,Sa=F(()=>{"use strict";Vt="1.0.182",DR=`linzumi ${Vt}`});import{closeSync as WJ,existsSync as AR,mkdirSync as u1e,openSync as HJ,readFileSync as GJ,renameSync as c1e,unlinkSync as eu,writeFileSync as l1e,writeSync as ZJ}from"node:fs";import{dirname as QJ,join as p1e}from"node:path";function OR(e){return e instanceof Ds||e instanceof Error&&e.name===YJ&&"lockPath"in e&&"heldBy"in e}function $R(e,n=et(),t){let r=t===void 0?encodeURIComponent(e):Vd(t);return p1e(QJ(n),"runners",`${r}.lock`)}function Qb(e){let n=$R(e.machineId,e.configPath,e.linzumiUrl),t=e.isPidAlive??sK,r=e.now??(()=>new Date),o=e.killPid??C1e,i=r().toISOString(),s={version:1,machineId:e.machineId,runnerId:e.runnerId,pid:e.pid??process.pid,cwd:e.cwd,workspace:e.workspace,...e.linzumiUrl===void 0?{}:{linzumiUrl:zn(e.linzumiUrl)},...e.launchSource===void 0?{}:{launchSource:e.launchSource},startedAt:i,heartbeatAt:i,cliVersion:e.cliVersion??Vt,...e.gracefulUpdateDrain===!0?{gracefulUpdateDrain:!0}:{}};g1e(e.machineId,e.configPath,e.linzumiUrl,t,r,o,e.onTakeover),y1e(n,s,t,r,o,e.onTakeover,e.beforeReadExistingLock,e.beforeReplaceStaleLock);let a=()=>eK(n,s,r),d=setInterval(a,XJ);return d.unref(),{path:n,record:s,heartbeat:a,release:()=>{clearInterval(d),oK(n,s)}}}function eK(e,n,t){try{let r=Yb(e);if(r===void 0||r.machineId!==n.machineId||r.runnerId!==n.runnerId||r.pid!==n.pid||r.startedAt!==n.startedAt)return;let o={...r,heartbeatAt:t().toISOString()},i=`${e}.tmp`;l1e(i,`${JSON.stringify(o,null,2)}
1514
1514
  `,"utf8"),c1e(i,e)}catch{}}function nu(e,n,t){if(!n(e.pid))return{state:"dead"};let r=e.heartbeatAt??e.startedAt,o=Date.parse(r);return Number.isNaN(o)||t().getTime()-o>f1e?{state:"wedged",reason:e.heartbeatAt===void 0?"missing_heartbeat":"stale_heartbeat"}:{state:"live"}}function nK(e,n,t,r){return t!==Xb||e.launchSource!==Xb?!1:r.state!=="live"?!0:m1e(n,e.cliVersion)>0}function m1e(e,n){let t=VJ(e),r=VJ(n);for(let o=0;o<3;o++){let i=t.core[o],s=r.core[o];if(i===void 0||s===void 0)throw new Error(`compareCliVersions: unexpected undefined at core index ${o}`);if(i!==s)return i>s?1:-1}return t.prerelease.length===0&&r.prerelease.length===0?0:t.prerelease.length===0?1:r.prerelease.length===0?-1:h1e(t.prerelease,r.prerelease)}function VJ(e){let n=e.trim().replace(/^v/i,"").split("+",1)[0]??"",t=n.indexOf("-"),r=t===-1?n:n.slice(0,t),o=t===-1?"":n.slice(t+1),i=r.split("."),s=[MR(i[0]),MR(i[1]),MR(i[2])],a=o===""?[]:o.split(".").filter(d=>d!=="");return{core:s,prerelease:a}}function MR(e){let n=Number.parseInt(e??"",10);return Number.isInteger(n)&&n>=0?n:0}function h1e(e,n){let t=Math.max(e.length,n.length);for(let r=0;r<t;r++){let o=e[r],i=n[r];if(o===void 0)return-1;if(i===void 0)return 1;let s=Number.parseInt(o,10),a=Number.parseInt(i,10),d=s.toString()===o,u=a.toString()===i;if(d&&u){if(s!==a)return s>a?1:-1}else{if(d!==u)return d?-1:1;if(o!==i)return o>i?1:-1}}return 0}function tK(e,n,t,r,o){try{r(n.pid)}catch(i){let s=i!==null&&typeof i=="object"&&"code"in i?i.code:void 0;if(s!=="ESRCH")throw s==="EPERM"||s==="EACCES"?new Error(`Cannot take over the runner lock at ${e}: its holder process (pid ${n.pid}) is owned by another user and cannot be stopped. Stop that process, or remove the lock file, then retry.`):i}o?.({lockPath:e,holderPid:n.pid,holderRunnerId:n.runnerId,reason:t})}function g1e(e,n,t,r,o,i,s){if(t===void 0||kr(t)!==kr(Xt))return;let a=$R(e,n),d=Yb(a);if(d!==void 0){if(nu(d,r,o).state==="live")throw new Ds(a,d);rK(a,r,()=>{let u=AR(a)?LR(a):void 0;if(u===void 0)return;let c=nu(u,r,o);if(c.state==="live")throw new Ds(a,u);c.state==="wedged"&&tK(a,u,c.reason,i,s),eu(a)})}}function y1e(e,n,t,r,o,i,s,a){if(Zb(e,n))return;s?.();let d=Yb(e);if(d===void 0){if(Zb(e,n))return;throw new Error(`another Linzumi runner lock appeared while starting: ${e}`)}if(nu(d,t,r).state==="live")throw new Ds(e,d);a?.(),rK(e,t,()=>{let u=AR(e)?LR(e):void 0;if(u!==void 0){let c=nu(u,t,r);if(c.state==="live")throw new Ds(e,u);c.state==="wedged"&&tK(e,u,c.reason,o,i),eu(e)}if(!Zb(e,n))throw new Error(`another Linzumi runner lock appeared while starting: ${e}`)})}function Zb(e,n){u1e(QJ(e),{recursive:!0});try{let t=HJ(e,"wx");try{ZJ(t,`${JSON.stringify(n,null,2)}
1515
1515
  `)}finally{WJ(t)}return!0}catch(t){if(Rl(t,"EEXIST"))return!1;throw t}}function rK(e,n,t){let r=`${e}.replace`;for(;;)try{let o=HJ(r,"wx");try{ZJ(o,`${process.pid}
1516
1516
  `),t()}finally{WJ(o),eu(r)}return}catch(o){if(Rl(o,"EEXIST")){let i=_1e(r);if(i===void 0)continue;if(n(i))throw new Error(["another Linzumi runner is already replacing a stale runner lock",`lock: ${e}`,"Wait for that startup to finish, then retry."].join(`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@linzumi/cli",
3
- "version": "1.0.181",
3
+ "version": "1.0.182",
4
4
  "description": "Linzumi CLI \u2014 point a Codex agent at the real code on your laptop, with your team watching and steering from shared threads.",
5
5
  "type": "module",
6
6
  "bin": {