@linzumi/cli 1.0.23 → 1.0.24
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
|
@@ -1028,7 +1028,7 @@ To kick the agent off:
|
|
|
1028
1028
|
2. Click any "Try this" prompt on the demo page to copy it.
|
|
1029
1029
|
3. Paste into the thread. Codex will pick it up and start editing this folder.
|
|
1030
1030
|
`});import{connect as gQ}from"node:net";import{gzipSync as yQ}from"node:zlib";async function iD(e,n){if(!n.includes(e.port))return pm(e.requestId,"forward_port_not_allowed");let t=wQ(e);if(!t.ok)return pm(e.requestId,t.error);try{let r={method:e.method,headers:_Q(e.headers),redirect:"manual",...t.body===void 0?{}:{body:t.body.buffer.slice(t.body.byteOffset,t.body.byteOffset+t.body.byteLength)}},o=await bQ(e.port,e.path,e.queryString,r),a=Buffer.from(await o.arrayBuffer()),i=kQ(e.path,o.headers,a),s=CQ(e,o.headers,i);return s.body.byteLength>aD?pm(e.requestId,"forward_response_too_large"):{requestId:e.requestId,ok:!0,status:o.status,headers:s.headers,bodyBase64:s.body.toString("base64")}}catch{return pm(e.requestId,"forward_target_unavailable")}}function sD(e){return e.type==="forward_http_request"}function dD(e){return e.type==="forward_tcp_open"||e.type==="forward_tcp_send"||e.type==="forward_tcp_close"}function uD(e,n,t,r=vQ){let o=new Map,a=s=>e.push(n,"forward:tcp_event",s).catch(()=>{}),i=s=>{let d=o.get(s);o.delete(s),d?.socket.end()};return{handle:s=>{switch(s.type){case"forward_tcp_open":{if(!t().includes(s.port)){a({socketId:s.socketId,type:"error",error:"forward_port_not_allowed"});return}o.get(s.socketId)?.socket.destroy();let u=r(s.port);o.set(s.socketId,{socket:u}),u.on("connect",()=>{fm(o,s.socketId,u)&&a({socketId:s.socketId,type:"open"})}),u.on("data",c=>{!fm(o,s.socketId,u)||!(c instanceof Uint8Array)||a({socketId:s.socketId,type:"data",bodyBase64:Buffer.from(c).toString("base64")})}),u.on("close",()=>{fm(o,s.socketId,u)&&(o.delete(s.socketId),a({socketId:s.socketId,type:"close"}))}),u.on("error",()=>{fm(o,s.socketId,u)&&(o.delete(s.socketId),a({socketId:s.socketId,type:"error",error:"forward_target_unavailable"}),u.destroy())});return}case"forward_tcp_send":{let d=o.get(s.socketId),u=cD(s.bodyBase64);if(u===void 0){a({socketId:s.socketId,type:"error",error:"invalid_forward_request"});return}if(d===void 0||d.socket.destroyed===!0||d.socket.writable===!1){a({socketId:s.socketId,type:"error",error:"tcp_socket_not_open"});return}d.socket.write(u);return}case"forward_tcp_close":i(s.socketId);return}},close:()=>{for(let s of o.keys())i(s)}}}function fm(e,n,t){return e.get(n)?.socket===t}function vQ(e){return gQ({host:"127.0.0.1",port:e})}function oD(e,n,t,r){let o=t.startsWith("/")?t:`/${t}`,a=new URL(`${e}://127.0.0.1:${n}${o}`);return r!==void 0&&r.trim()!==""&&(a.search=r),a.toString()}async function bQ(e,n,t,r){try{return await fetch(oD("http",e,n,t),r)}catch(o){try{return await fetch(oD("https",e,n,t),r)}catch{throw o}}}function wQ(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=cD(e.bodyBase64);return n===void 0?{ok:!1,error:"invalid_forward_request"}:n.byteLength>aD?{ok:!1,error:"forward_body_too_large"}:{ok:!0,body:n}}function cD(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 _Q(e){let n=new Headers;if(!Array.isArray(e))return n;for(let t of e)EQ(t)&&n.set(t.name,t.value);return n}function SQ(e){return Array.from(e.entries()).filter(([n])=>!fD.has(n.toLowerCase())).slice(0,40).map(([n,t])=>({name:n,value:t}))}function kQ(e,n,t){return IQ(e,n)?Buffer.from(t.toString("utf8").replace('message:h(3783,null,"code-server")','message:h(3783,null,"Kandan")')):t}function CQ(e,n,t){let r=SQ(n);return PQ(e,n,t)?{body:yQ(t),headers:[...r,{name:"content-encoding",value:"gzip"},{name:"vary",value:"accept-encoding"}]}:{body:t,headers:r}}function PQ(e,n,t){return e.method==="HEAD"||t.byteLength<xQ||!TQ(e.headers)?!1:RQ(e.path,n)}function TQ(e){return Array.isArray(e)?e.some(n=>lD(n)&&n.name.toLowerCase()==="accept-encoding"&&n.value.toLowerCase().split(",").map(t=>t.trim()).some(t=>t==="gzip"||t.startsWith("gzip;"))):!1}function RQ(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 IQ(e,n){return e.endsWith("/out/vs/code/browser/workbench/workbench.js")&&(n.get("content-type")??"").toLowerCase().includes("javascript")}function EQ(e){return lD(e)&&!fD.has(e.name.toLowerCase())}function lD(e){return re(e)&&typeof e.name=="string"&&typeof e.value=="string"}function pm(e,n){return{requestId:e,ok:!1,error:n}}var aD,xQ,fD,pD=V(()=>{"use strict";Mn();aD=64*1024*1024,xQ=32*1024;fD=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 yv}from"node:child_process";import{copyFileSync as DQ,cpSync as AQ,existsSync as mm,mkdirSync as Vi,mkdtempSync as MQ,readFileSync as OQ,realpathSync as xv,writeFileSync as LQ}from"node:fs";import{tmpdir as jQ}from"node:os";import{basename as FQ,delimiter as qQ,dirname as pa,join as Zn}from"node:path";function hD(e){return e.type==="start_local_editor"}function gD(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:gv(t.collaboration)}}:r}async function yD(e,n){if(n.editorRuntime===void 0)return{ok:!1,state:n.currentState,reason:"local_editor_disabled"};let t=Tr(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&&tX(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:gv(n.currentState.collaboration)}};let r=$Q(e,n);if(e.collaboration!==void 0&&r===void 0)return{ok:!1,state:n.currentState,reason:"missing_browser_base_url"};let o=await Pp(),a=e.collaboration===void 0?void 0:await Pp(),i=e.collaboration===void 0||r===void 0?void 0:ZQ(e.collaboration,n.runnerId??"local-runner",a,r),s=NQ(i,n.editorRuntime);if(!s.ok)return{ok:!1,state:n.currentState,reason:s.reason};let d=JQ({codeServerBin:n.editorRuntime.codeServerBin,codeServerRuntimeRoot:n.editorRuntime.root,port:o,cwd:t.cwd,userDataDir:s.userDataDir,extensionsDir:s.extensionsDir,platform:n.platform});if(!d.ok)return{ok:!1,state:n.currentState,reason:d.reason};let u=await XQ(i,s,n.editorRuntime,n.runnerId);if(!u.ok)return{ok:!1,state:n.currentState,reason:"code_server_spawn_failed"};Te("process.spawn",{command:d.command,args:d.args,cwd:t.cwd,purpose:"local_editor.code_server"},{sessionId:n.runnerId});let c=yv(d.command,[...d.args],{cwd:t.cwd,env:nX(process.env,t.cwd,s.userDataDir,u.collaboration),stdio:["ignore","inherit","inherit"]});Te("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",(x,w)=>{Te("process.exit",{command:d.command,args:d.args,cwd:t.cwd,pid:c.pid,code:x,signal:w,purpose:"local_editor.code_server"},{sessionId:n.runnerId})});let l=bD(c);if(await wD(c)==="failed")return u.collaboration?.process.kill("SIGINT"),{ok:!1,state:n.currentState,reason:"code_server_spawn_failed"};let[p,f]=await Promise.all([oX(o,l),u.ready]);return p==="failed"||f==="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:gv(u.collaboration)}})}function $Q(e,n){let t=e.browserBaseUrl??n.browserBaseUrl;return t===void 0||t.trim()===""?void 0:t.trim().replace(/\/+$/,"")}function xD(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 NQ(e,n){try{let t=MQ(Zn(jQ(),"kandan-local-editor-")),r=Zn(t,"extensions"),o=Zn(t,"collaboration-server"),a=Zn(t,"tmp"),i=Zn(t,"User");return Vi(i,{recursive:!0}),Vi(r,{recursive:!0}),Vi(o,{recursive:!0}),Vi(a,{recursive:!0}),n!==void 0&&(UQ(n),eX(n.assets.documentStateExtensionDir,Zn(r,"kandan.document-state-telemetry"))),LQ(Zn(i,"settings.json"),JSON.stringify(QQ(e),null,2)),{ok:!0,userDataDir:t,extensionsDir:r,collaborationServerDir:o}}catch{return{ok:!1,reason:"code_server_spawn_failed"}}}function UQ(e){let n=zQ(e);[{source:Zn(n,"extensions","git-base","dist","extension.js"),target:Zn(n,"extensions","git-base","dist","browser","extension.js"),required:!0},{source:Zn(n,"extensions","git-base","dist","extension.js.map"),target:Zn(n,"extensions","git-base","dist","browser","extension.js.map"),required:!1},{source:Zn(n,"extensions","merge-conflict","dist","mergeConflictMain.js"),target:Zn(n,"extensions","merge-conflict","dist","browser","mergeConflictMain.js"),required:!0},{source:Zn(n,"extensions","merge-conflict","dist","mergeConflictMain.js.map"),target:Zn(n,"extensions","merge-conflict","dist","browser","mergeConflictMain.js.map"),required:!1}].forEach(({source:r,target:o,required:a})=>{switch(!0){case mm(o):return;case(!a&&!mm(r)):return;default:Vi(pa(o),{recursive:!0}),DQ(r,o);return}})}function zQ(e){let n=vD([Zn(e.root,"lib","vscode"),Zn(pa(pa(e.codeServerBin)),"lib","vscode"),...BQ(e.codeServerBin).map(o=>Zn(pa(pa(o)),"lib","vscode"))]),t=n.find(o=>KQ(o).every(a=>mm(a))),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 BQ(e){try{let t=OQ(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 KQ(e){return[Zn(e,"extensions","git-base","dist","extension.js"),Zn(e,"extensions","merge-conflict","dist","mergeConflictMain.js")]}function JQ(e){let n=e.platform??process.platform;if(n==="linux")return VQ(e);if(n!=="darwin")return hm();let t=hv(e.codeServerBin,e.envPath??process.env.PATH??"");return t.ok?{ok:!0,command:t.command,args:xD(e.port,e.cwd,e.userDataDir,e.extensionsDir)}:hm()}function VQ(e){let n=hv(e.bubblewrapBin??"bwrap",e.envPath??process.env.PATH??"");if(!n.ok)return hm();let t=hv(e.codeServerBin,e.envPath??process.env.PATH??"");if(!t.ok)return hm();let r=vD(["/usr","/bin","/sbin","/lib","/lib64","/etc","/nix","/opt",...e.codeServerRuntimeRoot===void 0?[]:GQ(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",Zn(e.userDataDir,"data"),"--setenv","XDG_CONFIG_HOME",Zn(e.userDataDir,"config"),...r.flatMap(a=>["--ro-bind-try",a,a]),"--bind",e.cwd,e.cwd,"--bind",e.userDataDir,e.userDataDir,...e.extensionsDir===void 0?[]:["--bind",e.extensionsDir,e.extensionsDir],"--chdir",e.cwd,"--",t.command,...xD(e.port,e.cwd,e.userDataDir,e.extensionsDir)];return{ok:!0,command:n.command,args:o}}function hm(){return{ok:!1,reason:"local_editor_filesystem_sandbox_unavailable"}}function hv(e,n){if(WQ(e)){let t=HQ(e);return t===void 0?{ok:!1}:{ok:!0,command:e,directory:t}}for(let t of n.split(qQ)){if(t.trim()==="")continue;let r=Zn(t,e);if(!mm(r))continue;let o=xv(r);return{ok:!0,command:o,directory:pa(o)}}return{ok:!1}}function WQ(e){return e.includes("/")||e.includes("\\")}function HQ(e){try{let n=pa(xv(e));return n==="/"?void 0:n}catch{let t=pa(e);return t==="."||t==="/"?void 0:t}}function GQ(e){try{return[e,xv(e)]}catch{return[e]}}function vD(e){return Array.from(new Set(e.filter(n=>n.length>0)))}function ZQ(e,n,t,r){if(e===void 0||t===void 0)return;let o=`/local-codex-runners/${encodeURIComponent(n)}/forwards/${t}/preview-target`,a=new URL(o,`${r}/`).toString(),i=`/api/v2/editor/sessions/${e.editorSessionId}/collaboration-state`,s=e.bootstrapToken===void 0||e.bootstrapToken===""?void 0:`${o}/_kandan-collaboration/${encodeURIComponent(e.bootstrapToken)}`,d=s===void 0?i:`${s}${i}`,u=s===void 0?a:new URL(s,`${r}/`).toString();return{...e,serverPort:t,serverUrl:a,bootstrapServerUrl:u,collaborationStateUrl:d}}function QQ(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 XQ(e,n,t,r){if(e===void 0)return{ok:!0,ready:Promise.resolve("ready")};try{await Promise.all([mD(t.assets.collaborationExtensionTarball,n.extensionsDir),mD(t.assets.collaborationServerTarball,n.collaborationServerDir)]);let o=YQ(),a=[Zn(n.collaborationServerDir,"open-collaboration-server","bundle","app.js"),"--hostname","127.0.0.1","--port",String(e.serverPort)];Te("process.spawn",{command:o,args:a,purpose:"local_editor.collaboration_sidecar",editorSessionId:e.editorSessionId,runtimeSessionId:e.runtimeSessionId},{sessionId:r});let i=yv(o,a,{env:{...process.env,OCT_ACTIVATE_SIMPLE_LOGIN:"true",OCT_SERVER_OWNER:"Kandan"},stdio:["ignore","inherit","inherit"]});Te("process.spawned",{command:o,args:a,pid:i.pid,purpose:"local_editor.collaboration_sidecar",editorSessionId:e.editorSessionId,runtimeSessionId:e.runtimeSessionId},{sessionId:r}),i.once("exit",(c,l)=>{Te("process.exit",{command:o,args:a,pid:i.pid,code:c,signal:l,purpose:"local_editor.collaboration_sidecar",editorSessionId:e.editorSessionId,runtimeSessionId:e.runtimeSessionId},{sessionId:r})});let s=bD(i);return await wD(i)==="failed"?{ok:!1}:{ok:!0,ready:aX(e.serverPort,s),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:i,exited:s}}}catch{return{ok:!1}}}function YQ(e=process.env,n=process.execPath){let t=e.LINZUMI_NODE_BIN?.trim();return t!==void 0&&t!==""?t:FQ(n).toLowerCase().includes("bun")?"node":n}async function mD(e,n){Vi(n,{recursive:!0}),await rX("tar",["-xzf",e,"-C",n])}function eX(e,n){Vi(pa(n),{recursive:!0}),AQ(e,n,{recursive:!0})}function nX(e,n,t,r){let{PORT:o,...a}=e,i={...a,PWD:n};return r===void 0?i:{...i,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:Zn(t,"kandan-oct-auto-host.lock")}}function gv(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 tX(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 rX(e,n){return new Promise((t,r)=>{Te("process.spawn",{command:e,args:n,purpose:"local_editor.install_process"});let o=yv(e,[...n],{stdio:["ignore","ignore","inherit"]});Te("process.spawned",{command:e,args:n,pid:o.pid,purpose:"local_editor.install_process"}),o.once("error",r),o.once("exit",(a,i)=>{Te("process.exit",{command:e,args:n,pid:o.pid,code:a,signal:i,purpose:"local_editor.install_process"}),a===0?t():r(new Error(`${e} exited with ${a??"unknown"}`))})})}function bD(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 oX(e,n,t=1e4){let r=Date.now()+t,o=`http://127.0.0.1:${e}/`;return new Promise(a=>{let i=!1,s,d=l=>{i||(i=!0,s!==void 0&&clearTimeout(s),a(l))},u=()=>{s=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 aX(e,n,t=1e4){let r=Date.now()+t,o=`http://127.0.0.1:${e}/api/login/initial`;return new Promise(a=>{let i=!1,s,d=l=>{i||(i=!0,s!==void 0&&clearTimeout(s),a(l))},u=()=>{s=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 wD(e){return new Promise(n=>{let t=!1,r=()=>{e.off("spawn",o),e.off("error",a)},o=()=>{t||(t=!0,r(),n("spawned"))},a=()=>{t||(t=!0,r(),n("failed"))};e.once("spawn",o),e.once("error",a),setImmediate(()=>{!t&&e.pid!==void 0&&o()})})}var _D=V(()=>{"use strict";Fi();Ha();jr()});import{spawn as iX}from"node:child_process";import{createHash as CD}from"node:crypto";import{createReadStream as sX,createWriteStream as dX,existsSync as Ud,mkdirSync as rl,mkdtempSync as uX,readFileSync as PD,renameSync as cX,rmSync as SD,writeFileSync as TD}from"node:fs";import{homedir as lX}from"node:os";import{dirname as gm,join as St,resolve as fX}from"node:path";import{Readable as pX}from"node:stream";import{pipeline as mX}from"node:stream/promises";async function zd(e){if(e.customCodeServerBin!==void 0)return{codeServerBin:e.customCodeServerBin,status:{status:"custom",mode:"custom",codeServerBin:e.customCodeServerBin}};let n=hX(e.platform??process.platform,e.arch??process.arch);if(n===void 0)return vv("unsupported_platform");let t=await gX({kandanUrl:e.kandanUrl,token:e.token,platform:n,fetchImpl:e.fetchImpl??fetch});if(!t.ok)return vv(t.reason);let r=e.cacheRoot??DX(),o=bX(r,t.manifest);if(o.ok)return kD(t.manifest,o.runtime,!1);let a=await wX({kandanUrl:e.kandanUrl,token:e.token,manifest:t.manifest,cacheRoot:r,fetchImpl:e.fetchImpl??fetch,extractArchive:e.extractArchive??PX});return a.ok?kD(t.manifest,a.runtime,!0):vv(a.reason)}function RD(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 hX(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 vv(e){return{status:{status:"unavailable",mode:"server_managed",reason:e}}}function kD(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 gX(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 yX(t):"manifest_unavailable"};let r=await t.json();return!re(r)||r.ok!==!0||!re(r.runtime)?{ok:!1,reason:"manifest_unavailable"}:xX(r.runtime)}async function yX(e){let n=await e.json().catch(()=>{});return re(n)&&n.error==="token_expired"?"auth_expired":"auth_unauthorized"}function xX(e){let n=jo(e.version),t=jo(e.platform),r=jo(e.archiveUrl),o=DD(e.archiveSha256),a=jo(e.codeServerVersion),i=jo(e.codeServerBinPath)??"bin/code-server",s=jo(e.manifestPath)??"linzumi-editor-runtime.json",d=vX(e.assets);return n===void 0||t===void 0||r===void 0||o===void 0||a===void 0||d===void 0?{ok:!1,reason:"manifest_unavailable"}:{ok:!0,manifest:{version:n,platform:t,archiveUrl:r,archiveSha256:o,codeServerVersion:a,codeServerBinPath:i,manifestPath:s,assets:d}}}function vX(e){if(!Array.isArray(e))return;let n=[];for(let t of e){if(!re(t))return;let r=jo(t.path),o=DD(t.sha256),a=jo(t.url),i=jo(t.contentBase64);if(r===void 0||o===void 0)return;n.push({path:r,sha256:o,...a===void 0?{}:{url:a},...i===void 0?{}:{contentBase64:i}})}return n}function bX(e,n){let t=ID(e,n),r=St(t,n.manifestPath),o=St(t,n.codeServerBinPath),a=ED(t,n);if(!Ud(r)||!Ud(o)||a===void 0)return{ok:!1};try{let i=JSON.parse(PD(r,"utf8"));if(re(i)&&i.version===n.version&&i.platform===n.platform&&(i.archiveSha256===void 0||i.archiveSha256===n.archiveSha256))return{ok:!0,runtime:{mode:"server_managed",root:t,codeServerBin:o,assets:a}}}catch{return{ok:!1}}return{ok:!1}}async function wX(e){rl(e.cacheRoot,{recursive:!0});let n=uX(St(e.cacheRoot,".install-")),t=St(n,"runtime.tar.gz"),r=St(n,"runtime");try{let o=await kX({kandanUrl:e.kandanUrl,token:e.token,manifest:e.manifest,archivePath:t,fetchImpl:e.fetchImpl});if(!o.ok)return o;if(rl(r,{recursive:!0}),!await e.extractArchive(t,r))return{ok:!1,reason:"archive_extract_failed"};if(!await _X({kandanUrl:e.kandanUrl,manifest:e.manifest,runtimeRoot:r,fetchImpl:e.fetchImpl}))return{ok:!1,reason:"install_failed"};let i=St(r,e.manifest.manifestPath),s=St(r,e.manifest.codeServerBinPath),d=ED(r,e.manifest);if(!Ud(s)||d===void 0)return{ok:!1,reason:"invalid_archive"};rl(gm(i),{recursive:!0}),TD(i,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=ID(e.cacheRoot,e.manifest);return SD(u,{recursive:!0,force:!0}),rl(gm(u),{recursive:!0}),cX(r,u),{ok:!0,runtime:{mode:"server_managed",root:u,codeServerBin:St(u,e.manifest.codeServerBinPath),assets:{collaborationExtensionTarball:St(u,"kandan","editor_extensions","typefox.open-collaboration-tools.tar.gz"),collaborationServerTarball:St(u,"kandan","editor_servers","open-collaboration-server.tar.gz"),documentStateExtensionDir:St(u,"kandan","editor_extensions","kandan.document-state-telemetry")}}}}catch{return{ok:!1,reason:"install_failed"}}finally{SD(n,{recursive:!0,force:!0})}}async function _X(e){for(let n of e.manifest.assets){let t=St(e.runtimeRoot,n.path);try{let r=await SX({kandanUrl:e.kandanUrl,asset:n,fetchImpl:e.fetchImpl});if(r===void 0)continue;rl(gm(t),{recursive:!0}),TD(t,r)}catch{return!1}}return!0}async function SX(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 kX(e){let n=at(e.kandanUrl),t=new URL(e.manifest.archiveUrl,n),r=await e.fetchImpl(t,{...CX(t,new URL(n))?{headers:{authorization:`Bearer ${e.token}`}}:{}});return r.status!==200||r.body===null?{ok:!1,reason:"download_failed"}:(await mX(pX.fromWeb(r.body),dX(e.archivePath)),await TX(e.archivePath)!==e.manifest.archiveSha256?{ok:!1,reason:"checksum_mismatch"}:{ok:!0})}function CX(e,n){return e.protocol===n.protocol&&e.host===n.host}function PX(e,n){return new Promise(t=>{let o=["-xzf",e,"-C",n];Te("process.spawn",{command:"tar",args:o,purpose:"editor_runtime.extract"});let a=iX("tar",o,{stdio:["ignore","ignore","ignore"]});Te("process.spawned",{command:"tar",args:o,pid:a.pid,purpose:"editor_runtime.extract"}),a.on("error",()=>t(!1)),a.on("exit",(i,s)=>{Te("process.exit",{command:"tar",args:o,pid:a.pid,code:i,signal:s,purpose:"editor_runtime.extract"}),t(i===0)})})}function TX(e){return new Promise((n,t)=>{let r=CD("sha256"),o=sX(e);o.on("error",t),o.on("data",a=>r.update(a)),o.on("end",()=>n(r.digest("hex")))})}function ID(e,n){return fX(e,n.platform,n.archiveSha256)}function ED(e,n){let t=St(e,"kandan","editor_extensions","typefox.open-collaboration-tools.tar.gz"),r=St(e,"kandan","editor_servers","open-collaboration-server.tar.gz"),o=St(e,"kandan","editor_extensions","kandan.document-state-telemetry"),a=RX(n.codeServerBinPath),i=[n.codeServerBinPath,St(a,"lib","vscode","node_modules","vsda","rust","web","vsda.js"),St(a,"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"],s=IX(n.assets);for(let d of i){let u=s.get(d);if(u===void 0&&d!==n.codeServerBinPath)return;let c=St(e,d);if(!Ud(c)||u!==void 0&&EX(c)!==u)return}if(!(!Ud(t)||!Ud(r)))return{collaborationExtensionTarball:t,collaborationServerTarball:r,documentStateExtensionDir:o}}function RX(e){let n=e.replaceAll("\\","/");return n==="bin/code-server"?".":n.endsWith("/bin/code-server")?n.slice(0,-16)||".":gm(n)}function IX(e){let n=new Map;for(let t of e)n.set(t.path,t.sha256);return n}function EX(e){return CD("sha256").update(PD(e)).digest("hex")}function DX(){return St(lX(),".linzumi","editor-runtimes")}function jo(e){return typeof e=="string"&&e.trim()!==""?e.trim():void 0}function DD(e){let n=jo(e);return n!==void 0&&/^[a-f0-9]{64}$/i.test(n)?n.toLowerCase():void 0}var ym=V(()=>{"use strict";co();jr();Mn()});import{spawn as AX,spawnSync as MX}from"node:child_process";import{delimiter as OX,dirname as LX,join as xm}from"node:path";function Bd(e,n){return new Promise(t=>{let r=["--version"];Te("process.spawn",{command:e,args:r,cwd:n,purpose:"dependency_probe"});let o=AX(e,r,{cwd:n,stdio:["ignore","pipe","pipe"],detached:process.platform!=="win32"});Te("process.spawned",{command:e,args:r,cwd:n,pid:o.pid,purpose:"dependency_probe"});let a="",i="",s=!1,d=c=>{s||(s=!0,clearTimeout(u),t(c))},u=setTimeout(()=>{jX(o.pid),Te("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=>{a+=c.toString()}),o.stderr?.on("data",c=>{i+=c.toString()}),o.on("error",()=>{Te("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(Te("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 m=OD(a,i);d(m===void 0?{command:e,available:!0}:{command:e,available:!0,version:m})})})}function jX(e){if(e!==void 0)try{process.kill(process.platform==="win32"?e:-e,"SIGKILL")}catch{try{process.kill(e,"SIGKILL")}catch{}}}async function Za(e){let[n,t,r]=await Promise.all([Bd(process.execPath,e.cwd),FX(e),BX(e)]);return{node:n,codex:t,codeServer:r,editorRuntime:e.editorRuntime}}async function FX(e){let n=await Bd(e.codexBin,e.cwd);if(n.available)return n;let t=qX({cwd:e.cwd,codexBin:e.codexBin,env:process.env});if(t===void 0)return n;let r=await Bd(t,e.cwd);return r.available?r:n}function qX(e){return AD(NX(e),e)}function AD(e,n){let[t,...r]=e;if(t===void 0)return;let o=$X(t,n);return o===void 0?AD(r,n):o}function $X(e,n){let t=MX(e,["which","codex"],{cwd:n.cwd,env:n.env??process.env,encoding:"utf8",timeout:1e3});if(t.status===0)return OD(t.stdout?.toString())}function NX(e){let n=e.env??process.env;return Array.from(new Set([UX(e.codexBin),n.VOLTA_HOME===void 0?void 0:xm(n.VOLTA_HOME,"bin","volta"),n.HOME===void 0?void 0:xm(n.HOME,".volta","bin","volta"),...zX(n.PATH)].filter(t=>t!==void 0)))}function UX(e){return e.replaceAll("\\","/").endsWith("/.volta/bin/codex")?xm(LX(e),"volta"):void 0}function zX(e){return e===void 0?[]:e.split(OX).filter(n=>n!=="").map(n=>xm(n,"volta"))}function BX(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"}):Bd(e.codeServerBin,e.cwd)}function MD(e){if(Qa(e),!e.codex.available)throw new Error(`Codex is not available at ${e.codex.command}. Install Codex or pass --codex-bin <path>.`)}function Qa(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 wv(e){let n=e.codeServer??KX();return{bun:bv(e.node),codex:bv(e.codex),codeServer:bv(n),editorRuntime:e.editorRuntime===void 0?null:RD(e.editorRuntime)}}function KX(){return{command:"code-server",available:!1,reason:"not_configured"}}function bv(e){return{command:e.command,available:e.available,version:e.version??null,reason:e.reason??null}}function OD(...e){for(let n of e){let t=n?.trim();if(t!==void 0&&t!=="")return t}}var vm=V(()=>{"use strict";ym();jr()});import{closeSync as JX,openSync as VX,readSync as WX,statSync as HX}from"node:fs";function _v(e){return typeof e!="string"||e===""?e:GX.reduce((n,t)=>t.source.startsWith("\\beyJ")?n.replace(t,"<redacted>"):n.replace(t,"$1<redacted>"),e)}function eY(e,n){let t;try{let{size:r}=HX(e),o=r>n?r-n:0,a=r-o;if(a<=0)return"";let i=Buffer.allocUnsafe(a);t=VX(e,"r");let s=WX(t,i,0,a,o);return i.subarray(0,s).toString("utf8")}catch{return""}finally{if(t!==void 0)try{JX(t)}catch{}}}function LD(e){let n=e.now??Date.now,t=e.setIntervalImpl??setInterval,r=e.clearIntervalImpl??clearInterval,o=e.readTail??eY,a=Math.max(QX,e.intervalMs??ZX),i=Math.max(1,e.maxTailBytes??XX),s=Math.max(1,e.maxLifecycleEvents??YX),d=[],u=!1,c,l=w=>{try{for(d.push(w);d.length>s;)d.shift()}catch{}},m=()=>{try{let w=e.backendStderrSnapshot?.();if(typeof w!="string"||w==="")return;let P=w.length>i?w.slice(w.length-i):w;return _v(P)}catch{return}},p=()=>{let w=_v(o(e.runnerLogFile,i)),P=m(),C={kind:"runner_diagnostic_log",captured_at:new Date(n()).toISOString(),lifecycle:d.map(_=>({event:_.event,at:_.atIso,..._.closeCode===void 0?{}:{close_code:_.closeCode},..._.closeReason===void 0?{}:{close_reason:_v(_.closeReason)},..._.previousSessionDurationMs===void 0?{}:{previous_session_duration_ms:_.previousSessionDurationMs},..._.reconnectCount===void 0?{}:{reconnect_count:_.reconnectCount}})),runner_log_tail:w,...P===void 0?{}:{backend_stderr:P}};return{bundle_name:"runner-diagnostics",exported_at:new Date(n()).toISOString(),diagnostics:C,telemetry_ndjson:d.map(_=>JSON.stringify(_)).join(`
|
|
1031
|
-
`)}},f=async()=>{let w=d.length;try{await Promise.resolve(e.upload(p())),d.splice(0,w)}catch(P){try{e.log?.("runner_diagnostics.upload_failed",{buffered_events:d.length,error:P instanceof Error?P.message:String(P)})}catch{}}},y=()=>{u||c!==void 0||(c=t(()=>{f()},a),c.unref?.())},x=()=>{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:a,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:f,stop:x}}var GX,ZX,QX,XX,YX,jD=V(()=>{"use strict";GX=[/(--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];ZX=45e3,QX=5e3,XX=64*1024,YX=200});var Ht,Sv,Wi=V(()=>{"use strict";Ht="1.0.
|
|
1031
|
+
`)}},f=async()=>{let w=d.length;try{await Promise.resolve(e.upload(p())),d.splice(0,w)}catch(P){try{e.log?.("runner_diagnostics.upload_failed",{buffered_events:d.length,error:P instanceof Error?P.message:String(P)})}catch{}}},y=()=>{u||c!==void 0||(c=t(()=>{f()},a),c.unref?.())},x=()=>{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:a,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:f,stop:x}}var GX,ZX,QX,XX,YX,jD=V(()=>{"use strict";GX=[/(--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];ZX=45e3,QX=5e3,XX=64*1024,YX=200});var Ht,Sv,Wi=V(()=>{"use strict";Ht="1.0.24",Sv=`linzumi ${Ht}`});import{closeSync as qD,existsSync as Pv,mkdirSync as nY,openSync as $D,readFileSync as ND,renameSync as tY,unlinkSync as ol,writeFileSync as rY,writeSync as UD}from"node:fs";import{dirname as zD,join as oY}from"node:path";function KD(e){return e instanceof Hi||e instanceof Error&&e.name===BD&&"lockPath"in e&&"heldBy"in e}function JD(e,n=Nn(),t){let r=t===void 0?encodeURIComponent(e):zi(t);return oY(zD(n),"runners",`${r}.lock`)}function VD(e){let n=JD(e.machineId,e.configPath,e.linzumiUrl),t=e.isPidAlive??vY,r=e.now??(()=>new Date),o=e.killPid??bY,a=r().toISOString(),i={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:a,heartbeatAt:a,cliVersion:e.cliVersion??Ht};cY(e.machineId,e.configPath,e.linzumiUrl,t,r,o,e.onTakeover),lY(n,i,t,r,o,e.onTakeover,e.beforeReadExistingLock,e.beforeReplaceStaleLock);let s=()=>sY(n,i,r),d=setInterval(s,aY);return d.unref(),{path:n,record:i,heartbeat:s,release:()=>{clearInterval(d),pY(n,i)}}}function sY(e,n,t){try{let r=wm(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()},a=`${e}.tmp`;rY(a,`${JSON.stringify(o,null,2)}
|
|
1032
1032
|
`,"utf8"),tY(a,e)}catch{}}function Kd(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>iY?{state:"wedged",reason:e.heartbeatAt===void 0?"missing_heartbeat":"stale_heartbeat"}:{state:"live"}}function WD(e,n,t,r){return t!==bm||e.launchSource!==bm?!1:r.state!=="live"?!0:dY(n,e.cliVersion)>0}function dY(e,n){let t=FD(e),r=FD(n);for(let o=0;o<3;o++)if(t.core[o]!==r.core[o])return t.core[o]>r.core[o]?1:-1;return t.prerelease.length===0&&r.prerelease.length===0?0:t.prerelease.length===0?1:r.prerelease.length===0?-1:uY(t.prerelease,r.prerelease)}function FD(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),a=r.split("."),i=[kv(a[0]),kv(a[1]),kv(a[2])],s=o===""?[]:o.split(".").filter(d=>d!=="");return{core:i,prerelease:s}}function kv(e){let n=Number.parseInt(e??"",10);return Number.isInteger(n)&&n>=0?n:0}function uY(e,n){let t=Math.max(e.length,n.length);for(let r=0;r<t;r++){if(r>=e.length)return-1;if(r>=n.length)return 1;let o=e[r],a=n[r],i=Number.parseInt(o,10),s=Number.parseInt(a,10),d=i.toString()===o,u=s.toString()===a;if(d&&u){if(i!==s)return i>s?1:-1}else{if(d!==u)return d?-1:1;if(o!==a)return o>a?1:-1}}return 0}function HD(e,n,t,r,o){try{r(n.pid)}catch(a){let i=a!==null&&typeof a=="object"&&"code"in a?a.code:void 0;if(i!=="ESRCH")throw i==="EPERM"||i==="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.`):a}o?.({lockPath:e,holderPid:n.pid,holderRunnerId:n.runnerId,reason:t})}function cY(e,n,t,r,o,a,i){if(t===void 0||Wt(t)!==Wt(Rt))return;let s=JD(e,n),d=wm(s);if(d!==void 0){if(Kd(d,r,o).state==="live")throw new Hi(s,d);GD(s,r,()=>{let u=Pv(s)?Rv(s):void 0;if(u===void 0)return;let c=Kd(u,r,o);if(c.state==="live")throw new Hi(s,u);c.state==="wedged"&&HD(s,u,c.reason,a,i),ol(s)})}}function lY(e,n,t,r,o,a,i,s){if(Cv(e,n))return;i?.();let d=wm(e);if(d===void 0){if(Cv(e,n))return;throw new Error(`another Linzumi runner lock appeared while starting: ${e}`)}if(Kd(d,t,r).state==="live")throw new Hi(e,d);s?.(),GD(e,t,()=>{let u=Pv(e)?Rv(e):void 0;if(u!==void 0){let c=Kd(u,t,r);if(c.state==="live")throw new Hi(e,u);c.state==="wedged"&&HD(e,u,c.reason,o,a),ol(e)}if(!Cv(e,n))throw new Error(`another Linzumi runner lock appeared while starting: ${e}`)})}function Cv(e,n){nY(zD(e),{recursive:!0});try{let t=$D(e,"wx");try{UD(t,`${JSON.stringify(n,null,2)}
|
|
1033
1033
|
`)}finally{qD(t)}return!0}catch(t){if(Jd(t,"EEXIST"))return!1;throw t}}function GD(e,n,t){let r=`${e}.replace`;for(;;)try{let o=$D(r,"wx");try{UD(o,`${process.pid}
|
|
1034
1034
|
`),t()}finally{qD(o),ol(r)}return}catch(o){if(Jd(o,"EEXIST")){let a=fY(r);if(a===void 0)continue;if(n(a))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