@linzumi/cli 1.0.42 → 1.0.43
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/index.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
package/dist/index.js
CHANGED
|
@@ -1138,7 +1138,7 @@ To kick the agent off:
|
|
|
1138
1138
|
3. Paste into the thread. Codex will pick it up and start editing this folder.
|
|
1139
1139
|
`});import{connect as jle}from"node:net";import{gzipSync as Lle}from"node:zlib";async function $z(e,n){if(!n.includes(e.port))return zg(e.requestId,"forward_port_not_allowed");let t=Nle(e);if(!t.ok)return zg(e.requestId,t.error);try{let r={method:e.method,headers:Ule(e.headers),redirect:"manual",...t.body===void 0?{}:{body:t.body.buffer.slice(t.body.byteOffset,t.body.byteOffset+t.body.byteLength)}},o=await Fle(e.port,e.path,e.queryString,r),i=Buffer.from(await o.arrayBuffer()),s=Jle(e.path,o.headers,i),a=Kle(e,o.headers,s);return a.body.byteLength>Az?zg(e.requestId,"forward_response_too_large"):{requestId:e.requestId,ok:!0,status:o.status,headers:a.headers,bodyBase64:a.body.toString("base64")}}catch{return zg(e.requestId,"forward_target_unavailable")}}function Oz(e){return e.type==="forward_http_request"}function jz(e){return e.type==="forward_tcp_open"||e.type==="forward_tcp_send"||e.type==="forward_tcp_close"}function Lz(e,n,t,r=qle){let o=new Map,i=a=>e.push(n,"forward:tcp_event",a).catch(()=>{}),s=a=>{let d=o.get(a);o.delete(a),d?.socket.end()};return{handle:a=>{switch(a.type){case"forward_tcp_open":{if(!t().includes(a.port)){i({socketId:a.socketId,type:"error",error:"forward_port_not_allowed"});return}o.get(a.socketId)?.socket.destroy();let u=r(a.port);o.set(a.socketId,{socket:u}),u.on("connect",()=>{Lg(o,a.socketId,u)&&i({socketId:a.socketId,type:"open"})}),u.on("data",c=>{!Lg(o,a.socketId,u)||!(c instanceof Uint8Array)||i({socketId:a.socketId,type:"data",bodyBase64:Buffer.from(c).toString("base64")})}),u.on("close",()=>{Lg(o,a.socketId,u)&&(o.delete(a.socketId),i({socketId:a.socketId,type:"close"}))}),u.on("error",()=>{Lg(o,a.socketId,u)&&(o.delete(a.socketId),i({socketId:a.socketId,type:"error",error:"forward_target_unavailable"}),u.destroy())});return}case"forward_tcp_send":{let d=o.get(a.socketId),u=zz(a.bodyBase64);if(u===void 0){i({socketId:a.socketId,type:"error",error:"invalid_forward_request"});return}if(d===void 0||d.socket.destroyed===!0||d.socket.writable===!1){i({socketId:a.socketId,type:"error",error:"tcp_socket_not_open"});return}d.socket.write(u);return}case"forward_tcp_close":s(a.socketId);return}},close:()=>{for(let a of o.keys())s(a)}}}function Lg(e,n,t){return e.get(n)?.socket===t}function qle(e){return jle({host:"127.0.0.1",port:e})}function Mz(e,n,t,r){let o=t.startsWith("/")?t:`/${t}`,i=new URL(`${e}://127.0.0.1:${n}${o}`);return r!==void 0&&r.trim()!==""&&(i.search=r),i.toString()}async function Fle(e,n,t,r){try{return await fetch(Mz("http",e,n,t),r)}catch(o){try{return await fetch(Mz("https",e,n,t),r)}catch{throw o}}}function Nle(e){if(e.method==="GET"||e.method==="HEAD")return{ok:!0,body:void 0};if(e.bodyBase64===void 0||e.bodyBase64==="")return{ok:!0,body:void 0};let n=zz(e.bodyBase64);return n===void 0?{ok:!1,error:"invalid_forward_request"}:n.byteLength>Az?{ok:!1,error:"forward_body_too_large"}:{ok:!0,body:n}}function zz(e){let n=e.trim();if(n.length%4===1||!/^[A-Za-z0-9+/]*={0,2}$/.test(n))return;let t=Buffer.from(n,"base64"),r=t.toString("base64").replace(/=+$/,""),o=n.replace(/=+$/,"");return r===o?t:void 0}function Ule(e){let n=new Headers;if(!Array.isArray(e))return n;for(let t of e)Gle(t)&&n.set(t.name,t.value);return n}function Ble(e){return Array.from(e.entries()).filter(([n])=>!Fz.has(n.toLowerCase())).slice(0,40).map(([n,t])=>({name:n,value:t}))}function Jle(e,n,t){return Zle(e,n)?Buffer.from(t.toString("utf8").replace('message:h(3783,null,"code-server")','message:h(3783,null,"Kandan")')):t}function Kle(e,n,t){let r=Ble(n);return Vle(e,n,t)?{body:Lle(t),headers:[...r,{name:"content-encoding",value:"gzip"},{name:"vary",value:"accept-encoding"}]}:{body:t,headers:r}}function Vle(e,n,t){return e.method==="HEAD"||t.byteLength<zle||!Wle(e.headers)?!1:Hle(e.path,n)}function Wle(e){return Array.isArray(e)?e.some(n=>qz(n)&&n.name.toLowerCase()==="accept-encoding"&&n.value.toLowerCase().split(",").map(t=>t.trim()).some(t=>t==="gzip"||t.startsWith("gzip;"))):!1}function Hle(e,n){let t=n.get("content-type")?.toLowerCase()??"";return t.startsWith("text/")||t.includes("javascript")||t.includes("json")||t.includes("xml")?!0:/\.(?:css|html|js|json|map|mjs|svg|txt)$/i.test(e)}function Zle(e,n){return e.endsWith("/out/vs/code/browser/workbench/workbench.js")&&(n.get("content-type")??"").toLowerCase().includes("javascript")}function Gle(e){return qz(e)&&!Fz.has(e.name.toLowerCase())}function qz(e){return W(e)&&typeof e.name=="string"&&typeof e.value=="string"}function zg(e,n){return{requestId:e,ok:!1,error:n}}var Az,zle,Fz,Nz=j(()=>{"use strict";An();Az=64*1024*1024,zle=32*1024;Fz=new Set(["accept-encoding","connection","content-encoding","content-length","cookie","host","keep-alive","authorization","proxy-authenticate","proxy-authorization","te","trailer","transfer-encoding","upgrade"])});import{spawn as CS}from"node:child_process";import{copyFileSync as Qle,cpSync as Xle,existsSync as qg,mkdirSync as Ta,mkdtempSync as Yle,readFileSync as epe,realpathSync as PS,writeFileSync as npe}from"node:fs";import{tmpdir as tpe}from"node:os";import{basename as rpe,delimiter as ope,dirname as Ni,join as Gn}from"node:path";function Bz(e){return e.type==="start_local_editor"}function Jz(e,n,t){let r={localEditor:e!==void 0&&n.length>0,localEditorStatus:t.status};return t.status==="running"?{...r,localEditorPort:t.port,localEditorCwd:t.cwd,...t.collaboration===void 0?{}:{localEditorCollaboration:kS(t.collaboration)}}:r}async function Kz(e,n){if(n.editorRuntime===void 0)return{ok:!1,state:n.currentState,reason:"local_editor_disabled"};let t=Jr(e.cwd,n.allowedCwds);if(!t.ok)return{ok:!1,state:n.currentState,reason:t.reason};if(n.currentState.status==="running"&&n.currentState.cwd===t.cwd&&vpe(n.currentState.collaboration,e.collaboration))return{ok:!0,state:n.currentState,event:{cwd:n.currentState.cwd,port:n.currentState.port,startedAt:new Date().toISOString(),collaboration:kS(n.currentState.collaboration)}};let r=ipe(e,n);if(e.collaboration!==void 0&&r===void 0)return{ok:!1,state:n.currentState,reason:"missing_browser_base_url"};let o=await Kh(),i=e.collaboration===void 0?void 0:await Kh(),s=e.collaboration===void 0||r===void 0?void 0:gpe(e.collaboration,n.runnerId??"local-runner",i,r),a=spe(s,n.editorRuntime);if(!a.ok)return{ok:!1,state:n.currentState,reason:a.reason};let d=lpe({codeServerBin:n.editorRuntime.codeServerBin,codeServerRuntimeRoot:n.editorRuntime.root,port:o,cwd:t.cwd,userDataDir:a.userDataDir,extensionsDir:a.extensionsDir,platform:n.platform});if(!d.ok)return{ok:!1,state:n.currentState,reason:d.reason};let u=await xpe(s,a,n.editorRuntime,n.runnerId);if(!u.ok)return{ok:!1,state:n.currentState,reason:"code_server_spawn_failed"};ye("process.spawn",{command:d.command,args:d.args,cwd:t.cwd,purpose:"local_editor.code_server"},{sessionId:n.runnerId});let c=CS(d.command,[...d.args],{cwd:t.cwd,env:wpe(process.env,t.cwd,a.userDataDir,u.collaboration),stdio:["ignore","inherit","inherit"]});ye("process.spawned",{command:d.command,args:d.args,cwd:t.cwd,pid:c.pid,purpose:"local_editor.code_server"},{sessionId:n.runnerId}),c.once("exit",(b,v)=>{ye("process.exit",{command:d.command,args:d.args,cwd:t.cwd,pid:c.pid,code:b,signal:v,purpose:"local_editor.code_server"},{sessionId:n.runnerId})});let l=Hz(c);if(await Zz(c)==="failed")return u.collaboration?.process.kill("SIGINT"),{ok:!1,state:n.currentState,reason:"code_server_spawn_failed"};let[m,p]=await Promise.all([kpe(o,l),u.ready]);return m==="failed"||p==="failed"?(c.kill("SIGINT"),u.collaboration?.process.kill("SIGINT"),{ok:!1,state:n.currentState,reason:"code_server_spawn_failed"}):(n.currentState.status==="running"&&(n.currentState.process.kill("SIGINT"),n.currentState.collaboration?.process.kill("SIGINT")),{ok:!0,state:{status:"running",cwd:t.cwd,port:o,process:c,collaboration:u.collaboration,exited:l},event:{cwd:t.cwd,port:o,startedAt:new Date().toISOString(),collaboration:kS(u.collaboration)}})}function ipe(e,n){let t=e.browserBaseUrl??n.browserBaseUrl;return t===void 0||t.trim()===""?void 0:t.trim().replace(/\/+$/,"")}function Vz(e,n,t,r){return["--bind-addr",`127.0.0.1:${e}`,"--auth","none","--disable-telemetry","--disable-update-check","--disable-workspace-trust","--disable-getting-started-override","--app-name","Kandan","--user-data-dir",t,...r===void 0?[]:["--extensions-dir",r],n]}function spe(e,n){try{let t=Yle(Gn(tpe(),"kandan-local-editor-")),r=Gn(t,"extensions"),o=Gn(t,"collaboration-server"),i=Gn(t,"tmp"),s=Gn(t,"User");return Ta(s,{recursive:!0}),Ta(r,{recursive:!0}),Ta(o,{recursive:!0}),Ta(i,{recursive:!0}),n!==void 0&&(ape(n),_pe(n.assets.documentStateExtensionDir,Gn(r,"kandan.document-state-telemetry"))),npe(Gn(s,"settings.json"),JSON.stringify(ype(e),null,2)),{ok:!0,userDataDir:t,extensionsDir:r,collaborationServerDir:o}}catch{return{ok:!1,reason:"code_server_spawn_failed"}}}function ape(e){let n=dpe(e);[{source:Gn(n,"extensions","git-base","dist","extension.js"),target:Gn(n,"extensions","git-base","dist","browser","extension.js"),required:!0},{source:Gn(n,"extensions","git-base","dist","extension.js.map"),target:Gn(n,"extensions","git-base","dist","browser","extension.js.map"),required:!1},{source:Gn(n,"extensions","merge-conflict","dist","mergeConflictMain.js"),target:Gn(n,"extensions","merge-conflict","dist","browser","mergeConflictMain.js"),required:!0},{source:Gn(n,"extensions","merge-conflict","dist","mergeConflictMain.js.map"),target:Gn(n,"extensions","merge-conflict","dist","browser","mergeConflictMain.js.map"),required:!1}].forEach(({source:r,target:o,required:i})=>{switch(!0){case qg(o):return;case(!i&&!qg(r)):return;default:Ta(Ni(o),{recursive:!0}),Qle(r,o);return}})}function dpe(e){let n=Wz([Gn(e.root,"lib","vscode"),Gn(Ni(Ni(e.codeServerBin)),"lib","vscode"),...upe(e.codeServerBin).map(o=>Gn(Ni(Ni(o)),"lib","vscode"))]),t=n.find(o=>cpe(o).every(i=>qg(i))),r=n[0];if(r===void 0)throw new Error("code-server runtime did not include a VS Code root candidate");return t??r}function upe(e){try{let t=epe(e,"utf8").match(/exec\s+(?:"([^"]+)"|'([^']+)'|([^\s]+))\s+"\$@"/u),r=t?.[1]??t?.[2]??t?.[3];return r===void 0||r.trim()===""?[]:[r]}catch{return[]}}function cpe(e){return[Gn(e,"extensions","git-base","dist","extension.js"),Gn(e,"extensions","merge-conflict","dist","mergeConflictMain.js")]}function lpe(e){let n=e.platform??process.platform;if(n==="linux")return ppe(e);if(n!=="darwin")return Fg();let t=SS(e.codeServerBin,e.envPath??process.env.PATH??"");return t.ok?{ok:!0,command:t.command,args:Vz(e.port,e.cwd,e.userDataDir,e.extensionsDir)}:Fg()}function ppe(e){let n=SS(e.bubblewrapBin??"bwrap",e.envPath??process.env.PATH??"");if(!n.ok)return Fg();let t=SS(e.codeServerBin,e.envPath??process.env.PATH??"");if(!t.ok)return Fg();let r=Wz(["/usr","/bin","/sbin","/lib","/lib64","/etc","/nix","/opt",...e.codeServerRuntimeRoot===void 0?[]:hpe(e.codeServerRuntimeRoot),t.directory]),o=["--die-with-parent","--proc","/proc","--dev-bind","/dev","/dev","--tmpfs","/tmp","--setenv","HOME",e.cwd,"--setenv","PWD",e.cwd,"--setenv","XDG_DATA_HOME",Gn(e.userDataDir,"data"),"--setenv","XDG_CONFIG_HOME",Gn(e.userDataDir,"config"),...r.flatMap(i=>["--ro-bind-try",i,i]),"--bind",e.cwd,e.cwd,"--bind",e.userDataDir,e.userDataDir,...e.extensionsDir===void 0?[]:["--bind",e.extensionsDir,e.extensionsDir],"--chdir",e.cwd,"--",t.command,...Vz(e.port,e.cwd,e.userDataDir,e.extensionsDir)];return{ok:!0,command:n.command,args:o}}function Fg(){return{ok:!1,reason:"local_editor_filesystem_sandbox_unavailable"}}function SS(e,n){if(fpe(e)){let t=mpe(e);return t===void 0?{ok:!1}:{ok:!0,command:e,directory:t}}for(let t of n.split(ope)){if(t.trim()==="")continue;let r=Gn(t,e);if(!qg(r))continue;let o=PS(r);return{ok:!0,command:o,directory:Ni(o)}}return{ok:!1}}function fpe(e){return e.includes("/")||e.includes("\\")}function mpe(e){try{let n=Ni(PS(e));return n==="/"?void 0:n}catch{let t=Ni(e);return t==="."||t==="/"?void 0:t}}function hpe(e){try{return[e,PS(e)]}catch{return[e]}}function Wz(e){return Array.from(new Set(e.filter(n=>n.length>0)))}function gpe(e,n,t,r){if(e===void 0||t===void 0)return;let o=`/local-codex-runners/${encodeURIComponent(n)}/forwards/${t}/preview-target`,i=new URL(o,`${r}/`).toString(),s=`/api/v2/editor/sessions/${e.editorSessionId}/collaboration-state`,a=e.bootstrapToken===void 0||e.bootstrapToken===""?void 0:`${o}/_kandan-collaboration/${encodeURIComponent(e.bootstrapToken)}`,d=a===void 0?s:`${a}${s}`,u=a===void 0?i:new URL(a,`${r}/`).toString();return{...e,serverPort:t,serverUrl:i,bootstrapServerUrl:u,collaborationStateUrl:d}}function ype(e){return{"extensions.autoCheckUpdates":!1,"extensions.autoUpdate":!1,"extensions.ignoreRecommendations":!0,"extensions.showRecommendationsOnlyOnDemand":!0,"oct.alwaysAskToOverrideServerUrl":!1,"oct.joinAcceptMode":"auto",...e===void 0?{}:{"oct.kandanEditorSessionId":e.editorSessionId,"oct.kandanCollaborationStateUrl":e.collaborationStateUrl,"oct.serverUrl":e.bootstrapServerUrl},"security.workspace.trust.enabled":!1,"telemetry.telemetryLevel":"off","workbench.secondarySideBar.defaultVisibility":"hidden","workbench.startupEditor":"none","workbench.welcomePage.walkthroughs.openOnInstall":!1}}async function xpe(e,n,t,r){if(e===void 0)return{ok:!0,ready:Promise.resolve("ready")};try{await Promise.all([Uz(t.assets.collaborationExtensionTarball,n.extensionsDir),Uz(t.assets.collaborationServerTarball,n.collaborationServerDir)]);let o=bpe(),i=[Gn(n.collaborationServerDir,"open-collaboration-server","bundle","app.js"),"--hostname","127.0.0.1","--port",String(e.serverPort)];ye("process.spawn",{command:o,args:i,purpose:"local_editor.collaboration_sidecar",editorSessionId:e.editorSessionId,runtimeSessionId:e.runtimeSessionId},{sessionId:r});let s=CS(o,i,{env:{...process.env,OCT_ACTIVATE_SIMPLE_LOGIN:"true",OCT_SERVER_OWNER:"Kandan"},stdio:["ignore","inherit","inherit"]});ye("process.spawned",{command:o,args:i,pid:s.pid,purpose:"local_editor.collaboration_sidecar",editorSessionId:e.editorSessionId,runtimeSessionId:e.runtimeSessionId},{sessionId:r}),s.once("exit",(c,l)=>{ye("process.exit",{command:o,args:i,pid:s.pid,code:c,signal:l,purpose:"local_editor.collaboration_sidecar",editorSessionId:e.editorSessionId,runtimeSessionId:e.runtimeSessionId},{sessionId:r})});let a=Hz(s);return await Zz(s)==="failed"?{ok:!1}:{ok:!0,ready:Cpe(e.serverPort,a),collaboration:{provider:e.provider,editorSessionId:e.editorSessionId,runtimeSessionId:e.runtimeSessionId,roomId:e.roomId,serverPort:e.serverPort,serverUrl:e.serverUrl,bootstrapServerUrl:e.bootstrapServerUrl,collaborationStateUrl:e.collaborationStateUrl,process:s,exited:a}}}catch{return{ok:!1}}}function bpe(e=process.env,n=process.execPath){let t=e.LINZUMI_NODE_BIN?.trim();return t!==void 0&&t!==""?t:rpe(n).toLowerCase().includes("bun")?"node":n}async function Uz(e,n){Ta(n,{recursive:!0}),await Spe("tar",["-xzf",e,"-C",n])}function _pe(e,n){Ta(Ni(n),{recursive:!0}),Xle(e,n,{recursive:!0})}function wpe(e,n,t,r){let{PORT:o,...i}=e,s={...i,PWD:n};return r===void 0?s:{...s,KANDAN_EDITOR_COLLABORATION_DEPLOYMENT_SHAPE:"local_runner_sidecar",KANDAN_EDITOR_COLLABORATION_ENTRY_MODE:"kandan_auto_host_or_join",KANDAN_EDITOR_COLLABORATION_ROOM_ID:r.roomId,KANDAN_EDITOR_COLLABORATION_SERVER_URL:r.bootstrapServerUrl,KANDAN_EDITOR_COLLABORATION_AUTO_HOST_CLAIM_PATH:Gn(t,"kandan-oct-auto-host.lock")}}function kS(e){if(e!==void 0)return{provider:e.provider,editorSessionId:e.editorSessionId,runtimeSessionId:e.runtimeSessionId,roomId:e.roomId,serverPort:e.serverPort,serverUrl:e.serverUrl}}function vpe(e,n){return e===void 0||n===void 0?e===void 0&&n===void 0:e.editorSessionId===n.editorSessionId&&e.runtimeSessionId===n.runtimeSessionId&&e.roomId===n.roomId}function Spe(e,n){return new Promise((t,r)=>{ye("process.spawn",{command:e,args:n,purpose:"local_editor.install_process"});let o=CS(e,[...n],{stdio:["ignore","ignore","inherit"]});ye("process.spawned",{command:e,args:n,pid:o.pid,purpose:"local_editor.install_process"}),o.once("error",r),o.once("exit",(i,s)=>{ye("process.exit",{command:e,args:n,pid:o.pid,code:i,signal:s,purpose:"local_editor.install_process"}),i===0?t():r(new Error(`${e} exited with ${i??"unknown"}`))})})}function Hz(e){return new Promise(n=>{let t=!1,r=()=>{e.off("exit",o),e.off("close",o)},o=()=>{t||(t=!0,r(),n())};e.once("exit",o),e.once("close",o),(e.exitCode!==null||e.signalCode!==null)&&o()})}function kpe(e,n,t=1e4){let r=Date.now()+t,o=`http://127.0.0.1:${e}/`;return new Promise(i=>{let s=!1,a,d=l=>{s||(s=!0,a!==void 0&&clearTimeout(a),i(l))},u=()=>{a=setTimeout(c,50)},c=async()=>{if(Date.now()>r){d("failed");return}try{if((await fetch(o)).status<500){d("ready");return}}catch{u();return}u()};n.then(()=>d("failed")),c()})}function Cpe(e,n,t=1e4){let r=Date.now()+t,o=`http://127.0.0.1:${e}/api/login/initial`;return new Promise(i=>{let s=!1,a,d=l=>{s||(s=!0,a!==void 0&&clearTimeout(a),i(l))},u=()=>{a=setTimeout(c,50)},c=async()=>{if(Date.now()>r){d("failed");return}try{if((await fetch(o,{method:"POST"})).status<500){d("ready");return}}catch{u();return}u()};n.then(()=>d("failed")),c()})}function Zz(e){return new Promise(n=>{let t=!1,r=()=>{e.off("spawn",o),e.off("error",i)},o=()=>{t||(t=!0,r(),n("spawned"))},i=()=>{t||(t=!0,r(),n("failed"))};e.once("spawn",o),e.once("error",i),setImmediate(()=>{!t&&e.pid!==void 0&&o()})})}var Gz=j(()=>{"use strict";ga();vs();vr()});import{spawn as Ppe}from"node:child_process";import{createHash as Yz}from"node:crypto";import{createReadStream as Tpe,createWriteStream as Ipe,existsSync as qu,mkdirSync as Cp,mkdtempSync as Rpe,readFileSync as eq,renameSync as Epe,rmSync as Qz,writeFileSync as nq}from"node:fs";import{homedir as Dpe}from"node:os";import{dirname as Ng,join as Tt,resolve as Mpe}from"node:path";import{Readable as Ape}from"node:stream";import{pipeline as $pe}from"node:stream/promises";async function Fu(e){if(e.customCodeServerBin!==void 0)return{codeServerBin:e.customCodeServerBin,status:{status:"custom",mode:"custom",codeServerBin:e.customCodeServerBin}};let n=Ope(e.platform??process.platform,e.arch??process.arch);if(n===void 0)return TS("unsupported_platform");let t=await jpe({kandanUrl:e.kandanUrl,token:e.token,platform:n,fetchImpl:e.fetchImpl??fetch});if(!t.ok)return TS(t.reason);let r=e.cacheRoot??Qpe(),o=Fpe(r,t.manifest);if(o.ok)return Xz(t.manifest,o.runtime,!1);let i=await Npe({kandanUrl:e.kandanUrl,token:e.token,manifest:t.manifest,cacheRoot:r,fetchImpl:e.fetchImpl??fetch,extractArchive:e.extractArchive??Vpe});return i.ok?Xz(t.manifest,i.runtime,!0):TS(i.reason)}function tq(e){switch(e.status){case"ready":return{status:"ready",mode:e.mode,version:e.version,platform:e.platform,archiveSha256:e.archiveSha256,codeServerVersion:e.codeServerVersion,updated:e.updated};case"custom":return{status:"custom",mode:e.mode,codeServerBin:e.codeServerBin};case"unavailable":return{status:"unavailable",mode:e.mode,reason:e.reason}}}function Ope(e,n){switch(`${e}-${n}`){case"darwin-arm64":return"darwin-arm64";case"darwin-x64":return"darwin-x64";case"linux-x64":return"linux-x64";default:return}}function TS(e){return{status:{status:"unavailable",mode:"server_managed",reason:e}}}function Xz(e,n,t){return{codeServerBin:n.codeServerBin,runtime:n,status:{status:"ready",mode:"server_managed",version:e.version,platform:e.platform,archiveSha256:e.archiveSha256,codeServerVersion:e.codeServerVersion,codeServerBin:n.codeServerBin,updated:t}}}async function jpe(e){let n=new URL(`/api/v2/local-codex-runner/editor-runtime/${encodeURIComponent(e.platform)}/manifest`,at(e.kandanUrl)),t=await e.fetchImpl(n,{headers:{authorization:`Bearer ${e.token}`}}).catch(()=>{});if(t===void 0)return{ok:!1,reason:"manifest_unavailable"};if(t.status!==200)return{ok:!1,reason:t.status===401?await Lpe(t):"manifest_unavailable"};let r=await t.json();return!W(r)||r.ok!==!0||!W(r.runtime)?{ok:!1,reason:"manifest_unavailable"}:zpe(r.runtime)}async function Lpe(e){let n=await e.json().catch(()=>{});return W(n)&&n.error==="token_expired"?"auth_expired":"auth_unauthorized"}function zpe(e){let n=ui(e.version),t=ui(e.platform),r=ui(e.archiveUrl),o=iq(e.archiveSha256),i=ui(e.codeServerVersion),s=ui(e.codeServerBinPath)??"bin/code-server",a=ui(e.manifestPath)??"linzumi-editor-runtime.json",d=qpe(e.assets);return n===void 0||t===void 0||r===void 0||o===void 0||i===void 0||d===void 0?{ok:!1,reason:"manifest_unavailable"}:{ok:!0,manifest:{version:n,platform:t,archiveUrl:r,archiveSha256:o,codeServerVersion:i,codeServerBinPath:s,manifestPath:a,assets:d}}}function qpe(e){if(!Array.isArray(e))return;let n=[];for(let t of e){if(!W(t))return;let r=ui(t.path),o=iq(t.sha256),i=ui(t.url),s=ui(t.contentBase64);if(r===void 0||o===void 0)return;n.push({path:r,sha256:o,...i===void 0?{}:{url:i},...s===void 0?{}:{contentBase64:s}})}return n}function Fpe(e,n){let t=rq(e,n),r=Tt(t,n.manifestPath),o=Tt(t,n.codeServerBinPath),i=oq(t,n);if(!qu(r)||!qu(o)||i===void 0)return{ok:!1};try{let s=JSON.parse(eq(r,"utf8"));if(W(s)&&s.version===n.version&&s.platform===n.platform&&(s.archiveSha256===void 0||s.archiveSha256===n.archiveSha256))return{ok:!0,runtime:{mode:"server_managed",root:t,codeServerBin:o,assets:i}}}catch{return{ok:!1}}return{ok:!1}}async function Npe(e){Cp(e.cacheRoot,{recursive:!0});let n=Rpe(Tt(e.cacheRoot,".install-")),t=Tt(n,"runtime.tar.gz"),r=Tt(n,"runtime");try{let o=await Jpe({kandanUrl:e.kandanUrl,token:e.token,manifest:e.manifest,archivePath:t,fetchImpl:e.fetchImpl});if(!o.ok)return o;if(Cp(r,{recursive:!0}),!await e.extractArchive(t,r))return{ok:!1,reason:"archive_extract_failed"};if(!await Upe({kandanUrl:e.kandanUrl,manifest:e.manifest,runtimeRoot:r,fetchImpl:e.fetchImpl}))return{ok:!1,reason:"install_failed"};let s=Tt(r,e.manifest.manifestPath),a=Tt(r,e.manifest.codeServerBinPath),d=oq(r,e.manifest);if(!qu(a)||d===void 0)return{ok:!1,reason:"invalid_archive"};Cp(Ng(s),{recursive:!0}),nq(s,JSON.stringify({version:e.manifest.version,platform:e.manifest.platform,archiveSha256:e.manifest.archiveSha256,codeServerVersion:e.manifest.codeServerVersion,codeServerBinPath:e.manifest.codeServerBinPath,manifestPath:e.manifest.manifestPath,assets:e.manifest.assets},null,2));let u=rq(e.cacheRoot,e.manifest);return Qz(u,{recursive:!0,force:!0}),Cp(Ng(u),{recursive:!0}),Epe(r,u),{ok:!0,runtime:{mode:"server_managed",root:u,codeServerBin:Tt(u,e.manifest.codeServerBinPath),assets:{collaborationExtensionTarball:Tt(u,"kandan","editor_extensions","typefox.open-collaboration-tools.tar.gz"),collaborationServerTarball:Tt(u,"kandan","editor_servers","open-collaboration-server.tar.gz"),documentStateExtensionDir:Tt(u,"kandan","editor_extensions","kandan.document-state-telemetry")}}}}catch{return{ok:!1,reason:"install_failed"}}finally{Qz(n,{recursive:!0,force:!0})}}async function Upe(e){for(let n of e.manifest.assets){let t=Tt(e.runtimeRoot,n.path);try{let r=await Bpe({kandanUrl:e.kandanUrl,asset:n,fetchImpl:e.fetchImpl});if(r===void 0)continue;Cp(Ng(t),{recursive:!0}),nq(t,r)}catch{return!1}}return!0}async function Bpe(e){if(e.asset.contentBase64!==void 0)return Buffer.from(e.asset.contentBase64,"base64");if(e.asset.url!==void 0){let n=new URL(e.asset.url,at(e.kandanUrl)),t=await e.fetchImpl(n);return t.status!==200?void 0:Buffer.from(await t.arrayBuffer())}}async function Jpe(e){let n=at(e.kandanUrl),t=new URL(e.manifest.archiveUrl,n),r=await e.fetchImpl(t,{...Kpe(t,new URL(n))?{headers:{authorization:`Bearer ${e.token}`}}:{}});return r.status!==200||r.body===null?{ok:!1,reason:"download_failed"}:(await $pe(Ape.fromWeb(r.body),Ipe(e.archivePath)),await Wpe(e.archivePath)!==e.manifest.archiveSha256?{ok:!1,reason:"checksum_mismatch"}:{ok:!0})}function Kpe(e,n){return e.protocol===n.protocol&&e.host===n.host}function Vpe(e,n){return new Promise(t=>{let o=["-xzf",e,"-C",n];ye("process.spawn",{command:"tar",args:o,purpose:"editor_runtime.extract"});let i=Ppe("tar",o,{stdio:["ignore","ignore","ignore"]});ye("process.spawned",{command:"tar",args:o,pid:i.pid,purpose:"editor_runtime.extract"}),i.on("error",()=>t(!1)),i.on("exit",(s,a)=>{ye("process.exit",{command:"tar",args:o,pid:i.pid,code:s,signal:a,purpose:"editor_runtime.extract"}),t(s===0)})})}function Wpe(e){return new Promise((n,t)=>{let r=Yz("sha256"),o=Tpe(e);o.on("error",t),o.on("data",i=>r.update(i)),o.on("end",()=>n(r.digest("hex")))})}function rq(e,n){return Mpe(e,n.platform,n.archiveSha256)}function oq(e,n){let t=Tt(e,"kandan","editor_extensions","typefox.open-collaboration-tools.tar.gz"),r=Tt(e,"kandan","editor_servers","open-collaboration-server.tar.gz"),o=Tt(e,"kandan","editor_extensions","kandan.document-state-telemetry"),i=Hpe(n.codeServerBinPath),s=[n.codeServerBinPath,Tt(i,"lib","vscode","node_modules","vsda","rust","web","vsda.js"),Tt(i,"lib","vscode","node_modules","vsda","rust","web","vsda_bg.wasm"),"kandan/editor_extensions/typefox.open-collaboration-tools.tar.gz","kandan/editor_servers/open-collaboration-server.tar.gz","kandan/editor_extensions/kandan.document-state-telemetry/package.json","kandan/editor_extensions/kandan.document-state-telemetry/out/extension.js"],a=Zpe(n.assets);for(let d of s){let u=a.get(d);if(u===void 0&&d!==n.codeServerBinPath)return;let c=Tt(e,d);if(!qu(c)||u!==void 0&&Gpe(c)!==u)return}if(!(!qu(t)||!qu(r)))return{collaborationExtensionTarball:t,collaborationServerTarball:r,documentStateExtensionDir:o}}function Hpe(e){let n=e.replaceAll("\\","/");return n==="bin/code-server"?".":n.endsWith("/bin/code-server")?n.slice(0,-16)||".":Ng(n)}function Zpe(e){let n=new Map;for(let t of e)n.set(t.path,t.sha256);return n}function Gpe(e){return Yz("sha256").update(eq(e)).digest("hex")}function Qpe(){return Tt(Dpe(),".linzumi","editor-runtimes")}function ui(e){return typeof e=="string"&&e.trim()!==""?e.trim():void 0}function iq(e){let n=ui(e);return n!==void 0&&/^[a-f0-9]{64}$/i.test(n)?n.toLowerCase():void 0}var Ug=j(()=>{"use strict";Ao();vr();An()});import{spawn as Xpe,spawnSync as Ype}from"node:child_process";import{delimiter as efe,dirname as nfe,join as Bg}from"node:path";function Ia(e,n){return new Promise(t=>{let r=["--version"];ye("process.spawn",{command:e,args:r,cwd:n,purpose:"dependency_probe"});let o=Xpe(e,r,{cwd:n,stdio:["ignore","pipe","pipe"],detached:process.platform!=="win32"});ye("process.spawned",{command:e,args:r,cwd:n,pid:o.pid,purpose:"dependency_probe"});let i="",s="",a=!1,d=c=>{a||(a=!0,clearTimeout(u),t(c))},u=setTimeout(()=>{tfe(o.pid),ye("process.exit",{command:e,args:r,cwd:n,pid:o.pid,code:null,signal:"SIGKILL",purpose:"dependency_probe"}),d({command:e,available:!1})},1e3);o.stdout?.on("data",c=>{i+=c.toString()}),o.stderr?.on("data",c=>{s+=c.toString()}),o.on("error",()=>{ye("process.exit",{command:e,args:r,cwd:n,pid:o.pid,code:null,signal:null,error:"spawn_failed",purpose:"dependency_probe"}),d({command:e,available:!1})}),o.on("exit",(c,l)=>{if(ye("process.exit",{command:e,args:r,cwd:n,pid:o.pid,code:c,signal:l,purpose:"dependency_probe"}),c!==0){d({command:e,available:!1});return}let f=uq(i,s);d(f===void 0?{command:e,available:!0}:{command:e,available:!0,version:f})})})}function tfe(e){if(e!==void 0)try{process.kill(process.platform==="win32"?e:-e,"SIGKILL")}catch{try{process.kill(e,"SIGKILL")}catch{}}}async function Cs(e){Dh();let[n,t,r]=await Promise.all([Ia(process.execPath,e.cwd),rfe(e),cfe(e)]);return{node:n,codex:t,codeServer:r,editorRuntime:e.editorRuntime}}async function rfe(e){let n=await Ia(e.codexBin,e.cwd);if(n.available)return n;let t=!e.codexBin.includes("/")&&!e.codexBin.includes("\\"),r=t?(e.resolveAgentBinaryPath??Mh)(e.codexBin):void 0;if(r!==void 0&&r!==e.codexBin){let i=await Ia(r,e.cwd);if(i.available)return i}let o=ife({cwd:e.cwd,codexBin:e.codexBin,env:e.env??process.env});if(o!==void 0){let i=await Ia(o,e.cwd);if(i.available)return i}return t&&ofe(e.codexBin),n}function ofe(e){sq||(sq=!0,process.stderr.write(`Warning: ${mO(e,"--codex-bin")}
|
|
1140
1140
|
`))}function ife(e){return aq(afe(e),e)}function aq(e,n){let[t,...r]=e;if(t===void 0)return;let o=sfe(t,n);return o===void 0?aq(r,n):o}function sfe(e,n){let t=Ype(e,["which","codex"],{cwd:n.cwd,env:n.env??process.env,encoding:"utf8",timeout:1e3});if(t.status===0)return uq(t.stdout?.toString())}function afe(e){let n=e.env??process.env;return Array.from(new Set([dfe(e.codexBin),n.VOLTA_HOME===void 0?void 0:Bg(n.VOLTA_HOME,"bin","volta"),n.HOME===void 0?void 0:Bg(n.HOME,".volta","bin","volta"),...ufe(n.PATH)].filter(t=>t!==void 0)))}function dfe(e){return e.replaceAll("\\","/").endsWith("/.volta/bin/codex")?Bg(nfe(e),"volta"):void 0}function ufe(e){return e===void 0?[]:e.split(efe).filter(n=>n!=="").map(n=>Bg(n,"volta"))}function cfe(e){switch(e.editorRuntime?.status){case"ready":return Promise.resolve({command:e.codeServerBin??e.editorRuntime.codeServerBin,available:!0,version:e.editorRuntime.codeServerVersion});case"unavailable":return Promise.resolve({command:e.codeServerBin??"code-server",available:!1,reason:"editor_runtime_unavailable"});case"custom":case void 0:break}return e.codeServerBin===void 0?Promise.resolve({command:"code-server",available:!1,reason:"not_configured"}):Ia(e.codeServerBin,e.cwd)}function dq(e){if(Ps(e),!e.codex.available)throw new Error(`Codex is not available at ${e.codex.command}. Install Codex or pass --codex-bin <path>.`)}function Ps(e){if(!e.node.available)throw new Error("Node.js is not available. Install Node.js 20+, then rerun the bootstrap command.");if(e.editorRuntime?.status==="unavailable"||e.codeServer?.available===!1&&e.codeServer.reason!=="not_configured"){if(e.editorRuntime?.status==="unavailable")switch(e.editorRuntime.reason){case"auth_expired":throw new Error("Linzumi authentication expired. Sign in again, then reconnect the local runner.");case"auth_unauthorized":throw new Error("Linzumi authentication was rejected. Sign in again, then reconnect the local runner.");default:break}throw new Error("The Linzumi editor runtime is not available. Reconnect when the runtime update finishes or pass --code-server-bin <path> for a custom development runtime.")}}function RS(e){let n=e.codeServer??lfe();return{bun:IS(e.node),codex:IS(e.codex),codeServer:IS(n),editorRuntime:e.editorRuntime===void 0?null:tq(e.editorRuntime)}}function lfe(){return{command:"code-server",available:!1,reason:"not_configured"}}function IS(e){return{command:e.command,available:e.available,version:e.version??null,reason:e.reason??null}}function uq(...e){for(let n of e){let t=n?.trim();if(t!==void 0&&t!=="")return t}}var sq,Jg=j(()=>{"use strict";Cw();Ug();vr();sq=!1});import{closeSync as pfe,openSync as ffe,readSync as mfe,statSync as hfe}from"node:fs";function ES(e){return typeof e!="string"||e===""?e:gfe.reduce((n,t)=>t.source.startsWith("\\beyJ")?n.replace(t,"<redacted>"):n.replace(t,"$1<redacted>"),e)}function wfe(e,n){let t;try{let{size:r}=hfe(e),o=r>n?r-n:0,i=r-o;if(i<=0)return"";let s=Buffer.allocUnsafe(i);t=ffe(e,"r");let a=mfe(t,s,0,i,o);return s.subarray(0,a).toString("utf8")}catch{return""}finally{if(t!==void 0)try{pfe(t)}catch{}}}function cq(e){let n=e.now??Date.now,t=e.setIntervalImpl??setInterval,r=e.clearIntervalImpl??clearInterval,o=e.readTail??wfe,i=Math.max(xfe,e.intervalMs??yfe),s=Math.max(1,e.maxTailBytes??bfe),a=Math.max(1,e.maxLifecycleEvents??_fe),d=[],u=!1,c,l=v=>{try{for(d.push(v);d.length>a;)d.shift()}catch{}},f=()=>{try{let v=e.backendStderrSnapshot?.();if(typeof v!="string"||v==="")return;let S=v.length>s?v.slice(v.length-s):v;return ES(S)}catch{return}},m=()=>{let v=ES(o(e.runnerLogFile,s)),S=f(),_={kind:"runner_diagnostic_log",captured_at:new Date(n()).toISOString(),lifecycle:d.map(w=>({event:w.event,at:w.atIso,...w.closeCode===void 0?{}:{close_code:w.closeCode},...w.closeReason===void 0?{}:{close_reason:ES(w.closeReason)},...w.previousSessionDurationMs===void 0?{}:{previous_session_duration_ms:w.previousSessionDurationMs},...w.reconnectCount===void 0?{}:{reconnect_count:w.reconnectCount}})),runner_log_tail:v,...S===void 0?{}:{backend_stderr:S}};return{bundle_name:"runner-diagnostics",exported_at:new Date(n()).toISOString(),diagnostics:_,telemetry_ndjson:d.map(w=>JSON.stringify(w)).join(`
|
|
1141
|
-
`)}},p=async()=>{let v=d.length;try{await Promise.resolve(e.upload(m())),d.splice(0,v)}catch(S){try{e.log?.("runner_diagnostics.upload_failed",{buffered_events:d.length,error:S instanceof Error?S.message:String(S)})}catch{}}},y=()=>{u||c!==void 0||(c=t(()=>{p()},i),c.unref?.())},b=()=>{u=!0,c!==void 0&&(r(c),c=void 0)};try{e.log?.("runner_diagnostics.enabled",{destination:"linzumi",runner_log_file:e.runnerLogFile,interval_ms:i,note:"runner lifecycle + runner-log tail + backend stderr are uploaded to Linzumi for support diagnostics (auto-deleted after 4 days)"})}catch{}return y(),{recordLifecycle:l,flushNow:p,stop:b}}var gfe,yfe,xfe,bfe,_fe,lq=j(()=>{"use strict";gfe=[/(--token[=\s]+)\S+/gi,/(bearer\s+)[^\s,;"'\]\}]+/gi,/((?:access[_-]?token|api[_-]?key|auth[_-]?token|authorization|secret|password|refresh[_-]?token|session[_-]?token|jwt|token)["']?\s*[:=]\s*["']?)[^\s,;"'\]\}]+/gi,/\beyJ[A-Za-z0-9_-]*\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/g];yfe=45e3,xfe=5e3,bfe=64*1024,_fe=200});var $t,DS,Ts=j(()=>{"use strict";$t="1.0.
|
|
1141
|
+
`)}},p=async()=>{let v=d.length;try{await Promise.resolve(e.upload(m())),d.splice(0,v)}catch(S){try{e.log?.("runner_diagnostics.upload_failed",{buffered_events:d.length,error:S instanceof Error?S.message:String(S)})}catch{}}},y=()=>{u||c!==void 0||(c=t(()=>{p()},i),c.unref?.())},b=()=>{u=!0,c!==void 0&&(r(c),c=void 0)};try{e.log?.("runner_diagnostics.enabled",{destination:"linzumi",runner_log_file:e.runnerLogFile,interval_ms:i,note:"runner lifecycle + runner-log tail + backend stderr are uploaded to Linzumi for support diagnostics (auto-deleted after 4 days)"})}catch{}return y(),{recordLifecycle:l,flushNow:p,stop:b}}var gfe,yfe,xfe,bfe,_fe,lq=j(()=>{"use strict";gfe=[/(--token[=\s]+)\S+/gi,/(bearer\s+)[^\s,;"'\]\}]+/gi,/((?:access[_-]?token|api[_-]?key|auth[_-]?token|authorization|secret|password|refresh[_-]?token|session[_-]?token|jwt|token)["']?\s*[:=]\s*["']?)[^\s,;"'\]\}]+/gi,/\beyJ[A-Za-z0-9_-]*\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/g];yfe=45e3,xfe=5e3,bfe=64*1024,_fe=200});var $t,DS,Ts=j(()=>{"use strict";$t="1.0.43",DS=`linzumi ${$t}`});import{closeSync as fq,existsSync as $S,mkdirSync as vfe,openSync as mq,readFileSync as hq,renameSync as Sfe,unlinkSync as Pp,writeFileSync as kfe,writeSync as gq}from"node:fs";import{dirname as yq,join as Cfe}from"node:path";function bq(e){return e instanceof Ra||e instanceof Error&&e.name===xq&&"lockPath"in e&&"heldBy"in e}function _q(e,n=Fn(),t){let r=t===void 0?encodeURIComponent(e):wa(t);return Cfe(yq(n),"runners",`${r}.lock`)}function wq(e){let n=_q(e.machineId,e.configPath,e.linzumiUrl),t=e.isPidAlive??Ffe,r=e.now??(()=>new Date),o=e.killPid??Nfe,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:at(e.linzumiUrl)},...e.launchSource===void 0?{}:{launchSource:e.launchSource},startedAt:i,heartbeatAt:i,cliVersion:e.cliVersion??$t};Dfe(e.machineId,e.configPath,e.linzumiUrl,t,r,o,e.onTakeover),Mfe(n,s,t,r,o,e.onTakeover,e.beforeReadExistingLock,e.beforeReplaceStaleLock);let a=()=>Ife(n,s,r),d=setInterval(a,Pfe);return d.unref(),{path:n,record:s,heartbeat:a,release:()=>{clearInterval(d),$fe(n,s)}}}function Ife(e,n,t){try{let r=Vg(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`;kfe(i,`${JSON.stringify(o,null,2)}
|
|
1142
1142
|
`,"utf8"),Sfe(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>Tfe?{state:"wedged",reason:e.heartbeatAt===void 0?"missing_heartbeat":"stale_heartbeat"}:{state:"live"}}function vq(e,n,t,r){return t!==Kg||e.launchSource!==Kg?!1:r.state!=="live"?!0:Rfe(n,e.cliVersion)>0}function Rfe(e,n){let t=pq(e),r=pq(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:Efe(t.prerelease,r.prerelease)}function pq(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=[MS(i[0]),MS(i[1]),MS(i[2])],a=o===""?[]:o.split(".").filter(d=>d!=="");return{core:s,prerelease:a}}function MS(e){let n=Number.parseInt(e??"",10);return Number.isInteger(n)&&n>=0?n:0}function Efe(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 Sq(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 Dfe(e,n,t,r,o,i,s){if(t===void 0||er(t)!==er(Mt))return;let a=_q(e,n),d=Vg(a);if(d!==void 0){if(Nu(d,r,o).state==="live")throw new Ra(a,d);kq(a,r,()=>{let u=$S(a)?jS(a):void 0;if(u===void 0)return;let c=Nu(u,r,o);if(c.state==="live")throw new Ra(a,u);c.state==="wedged"&&Sq(a,u,c.reason,i,s),Pp(a)})}}function Mfe(e,n,t,r,o,i,s,a){if(AS(e,n))return;s?.();let d=Vg(e);if(d===void 0){if(AS(e,n))return;throw new Error(`another Linzumi runner lock appeared while starting: ${e}`)}if(Nu(d,t,r).state==="live")throw new Ra(e,d);a?.(),kq(e,t,()=>{let u=$S(e)?jS(e):void 0;if(u!==void 0){let c=Nu(u,t,r);if(c.state==="live")throw new Ra(e,u);c.state==="wedged"&&Sq(e,u,c.reason,o,i),Pp(e)}if(!AS(e,n))throw new Error(`another Linzumi runner lock appeared while starting: ${e}`)})}function AS(e,n){vfe(yq(e),{recursive:!0});try{let t=mq(e,"wx");try{gq(t,`${JSON.stringify(n,null,2)}
|
|
1143
1143
|
`)}finally{fq(t)}return!0}catch(t){if(Uu(t,"EEXIST"))return!1;throw t}}function kq(e,n,t){let r=`${e}.replace`;for(;;)try{let o=mq(r,"wx");try{gq(o,`${process.pid}
|
|
1144
1144
|
`),t()}finally{fq(o),Pp(r)}return}catch(o){if(Uu(o,"EEXIST")){let i=Afe(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