@muxcodecli/cli 1.15.18 → 1.15.19
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/dist/chunk-1ms3qjzr.js +3 -0
- package/dist/chunk-2bs943gb.js +3 -0
- package/dist/chunk-34d0nkas.js +228 -0
- package/dist/chunk-3jgdj6wr.js +2 -0
- package/dist/chunk-4k6px3aw.js +38 -0
- package/dist/chunk-52yh9w7m.js +3 -0
- package/dist/chunk-5fmf36v3.js +2 -0
- package/dist/chunk-5tcxebcp.js +2 -0
- package/dist/chunk-638270xn.js +3 -0
- package/dist/chunk-64ka6hd5.js +3 -0
- package/dist/chunk-6ny7q7hj.js +11 -0
- package/dist/chunk-8cm9znxk.js +71 -0
- package/dist/chunk-8dncpy1k.js +34 -0
- package/dist/chunk-9ngrrhem.js +574 -0
- package/dist/chunk-a0srn4ak.js +759 -0
- package/dist/chunk-an9wvc2n.js +389 -0
- package/dist/chunk-be8tz2t8.js +7 -0
- package/dist/chunk-fk9bmtwr.js +3 -0
- package/dist/chunk-gcbqpnr0.js +2 -0
- package/dist/chunk-hx718zrz.js +3 -0
- package/dist/chunk-kr1vbd82.js +212 -0
- package/dist/chunk-mdes7zrv.js +2 -0
- package/dist/chunk-mhqq2cyt.js +2 -0
- package/dist/chunk-sftkw30q.js +6 -0
- package/dist/chunk-sjd8mzvx.js +672 -0
- package/dist/chunk-v04cyq7w.js +2 -0
- package/dist/chunk-wjecdett.js +4 -0
- package/dist/chunk-y4f43qq5.js +16 -0
- package/dist/chunk-zn283041.js +1683 -0
- package/dist/cli/cmd/tui/worker.js +1 -1
- package/dist/index.js +5 -5
- package/package.json +4 -4
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{Il as CH,Rl as jH,Sl as GH,Tl as S}from"./chunk-kr1vbd82.js";import{$o as kH,Cr as $H,Dr as OH,Ip as XH,Jr as ZH,Kp as g,Kr as _H,Lp as KH,Op as P,Up as RH,Vq as YH,go as JH,np as WH,oq as FH,tp as VH,up as bH,wp as wH,xp as v}from"./chunk-a0srn4ak.js";import{xs as DH}from"./chunk-8jy0dvcn.js";import{AF as Y,BE as PH,Fx as a,Gy as L,Hz as o,Rx as NH,Yz as A,eC as H,tz as n}from"./chunk-1mqsg5s7.js";import{SF as QH,UF as IH}from"./chunk-8j3aw4qg.js";var TH={};QH(TH,{layer:()=>gH,defaultLayer:()=>iH,appLayer:()=>SH,Worktree:()=>TH,StartCommandFailedError:()=>vH,Service:()=>c,ResetInput:()=>nH,ResetFailedError:()=>N,RemoveInput:()=>fH,RemoveFailedError:()=>b,NotGitError:()=>p,NameGenerationFailedError:()=>UH,ListFailedError:()=>MH,Info:()=>lH,Event:()=>i,CreateInput:()=>sH,CreateFailedError:()=>qH});var d={};QH(d,{layer:()=>pH,InstanceLayer:()=>d});var k={};QH(k,{use:()=>dH,layer:()=>LH,defaultLayer:()=>EH,Service:()=>u,InstanceStore:()=>k});class u extends a.Service()("@muxcode/InstanceStore"){}var dH=wH(u),LH=A.effect(u,H.gen(function*(){let j=yield*jH,G=yield*CH.Service,M=yield*o.Scope,T=new Map,R=(V)=>H.gen(function*(){let Z=V.project&&V.worktree?{directory:V.directory,worktree:V.worktree,project:V.project}:yield*j.fromDirectory(V.directory).pipe(H.map((U)=>({directory:V.directory,worktree:U.sandbox,project:U.project})));return yield*G.run.pipe(H.provideService(JH,Z)),Z}).pipe(H.withSpan("InstanceStore.boot")),h=(V,Z)=>H.sync(()=>{if(T.get(V)!==Z)return!1;return T.delete(V),!0}),l=(V,Z,U)=>H.gen(function*(){let C=yield*H.exit(R({...Z,directory:V}));if(n.isFailure(C))yield*h(V,U);yield*L.done(U.deferred,C).pipe(H.asVoid)}),z=(V)=>H.sync(()=>g.emit("event",{directory:V.directory,project:V.project,workspace:WH.workspaceID,payload:{type:"server.instance.disposed",properties:{directory:V.directory}}})),r=H.fn("InstanceStore.disposeContext")(function*(V){yield*H.logInfo("disposing instance").pipe(H.annotateLogs("directory",V.directory)),yield*H.promise(()=>KH(V.directory)),yield*z({directory:V.directory,project:V.project.id})}),s=H.fnUntraced(function*(V,Z,U){if(T.get(V)!==Z)return!1;if(yield*r(U),T.get(V)!==Z)return!1;return T.delete(V),!0}),x=(V)=>{let Z=v.resolve(V.directory);return H.uninterruptibleMask((U)=>H.gen(function*(){let C=T.get(Z);if(C)return yield*U(L.await(C.deferred));let I={deferred:L.makeUnsafe()};return T.set(Z,I),yield*H.gen(function*(){yield*H.logInfo("creating instance").pipe(H.annotateLogs("directory",Z)),yield*l(Z,V,I)}).pipe(H.forkIn(M,{startImmediately:!0})),yield*U(L.await(I.deferred))})).pipe(H.withSpan("InstanceStore.load"))},t=(V)=>{let Z=v.resolve(V.directory);return H.uninterruptibleMask((U)=>H.gen(function*(){let C=T.get(Z),I={deferred:L.makeUnsafe()};return T.set(Z,I),yield*H.gen(function*(){if(yield*H.logInfo("reloading instance").pipe(H.annotateLogs("directory",Z)),C)yield*L.await(C.deferred).pipe(H.ignore),yield*H.promise(()=>KH(Z)),yield*z({directory:Z,project:V.project?.id});yield*l(Z,V,I)}).pipe(H.forkIn(M,{startImmediately:!0})),yield*U(L.await(I.deferred))})).pipe(H.withSpan("InstanceStore.reload"))},e=H.fn("InstanceStore.dispose")(function*(V){let Z=T.get(V.directory);if(!Z)return yield*r(V);let U=yield*L.await(Z.deferred).pipe(H.exit);if(n.isFailure(U))return yield*h(V.directory,Z).pipe(H.asVoid);if(U.value!==V)return;yield*s(V.directory,Z,V).pipe(H.asVoid)}),f=H.fnUntraced(function*(){yield*H.logInfo("disposing all instances"),yield*H.forEach([...T.entries()],(V)=>H.gen(function*(){let Z=yield*L.await(V[1].deferred).pipe(H.exit);if(n.isFailure(Z)){yield*H.logWarning("instance dispose failed").pipe(H.annotateLogs({key:V[0],cause:Z.cause})),yield*h(V[0],V[1]);return}yield*s(V[0],V[1],Z.value)}),{discard:!0})}),HH=yield*H.cachedWithTTL(f(),NH.zero),w=H.fn("InstanceStore.disposeAll")(function*(){return yield*HH}),F=(V,Z)=>x(V).pipe(H.flatMap((U)=>Z.pipe(H.provideService(JH,U))));return yield*H.addFinalizer(()=>w().pipe(H.ignore)),u.of({load:x,reload:t,dispose:e,disposeAll:w,provide:F})})),EH=LH.pipe(A.provide(GH));var pH=A.unwrap(H.promise(async()=>{let{InstanceBootstrap:j}=await import("./chunk-5fmf36v3.js");return k.defaultLayer.pipe(A.provide(j.defaultLayer))}));var E=kH({service:"worktree"}),i={Ready:XH.define("worktree.ready",Y.Struct({name:Y.String,branch:Y.optional(Y.String)})),Failed:XH.define("worktree.failed",Y.Struct({message:Y.String}))},lH=Y.Struct({name:Y.String,branch:Y.optional(Y.String),directory:Y.String}).annotate({identifier:"Worktree"}),sH=Y.Struct({name:Y.optional(Y.String),startCommand:Y.optional(Y.String.annotate({description:"Additional startup script to run after the project's start command"}))}).annotate({identifier:"WorktreeCreateInput"}),fH=Y.Struct({directory:Y.String}).annotate({identifier:"WorktreeRemoveInput"}),nH=Y.Struct({directory:Y.String}).annotate({identifier:"WorktreeResetInput"});class p extends Y.TaggedErrorClass()("WorktreeNotGitError",{message:Y.String}){}class UH extends Y.TaggedErrorClass()("WorktreeNameGenerationFailedError",{message:Y.String}){}class qH extends Y.TaggedErrorClass()("WorktreeCreateFailedError",{message:Y.String}){}class vH extends Y.TaggedErrorClass()("WorktreeStartCommandFailedError",{message:Y.String}){}class b extends Y.TaggedErrorClass()("WorktreeRemoveFailedError",{message:Y.String}){}class N extends Y.TaggedErrorClass()("WorktreeResetFailedError",{message:Y.String}){}class MH extends Y.TaggedErrorClass()("WorktreeListFailedError",{message:Y.String}){}function aH(j){return j.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+/,"").replace(/-+$/,"")}function oH(...j){return j.filter(Boolean).flatMap((G)=>G.split(`
|
|
3
|
+
`).map((M)=>M.trim()).flatMap((M)=>{let T=M.match(/^warning:\s+failed to remove\s+(.+):\s+/i);if(!T)return[];let R=T[1]?.trim().replace(/^['"]|['"]$/g,"");if(!R)return[];return[R]}))}class c extends a.Service()("@muxcode/Worktree"){}var gH=A.effect(c,H.gen(function*(){let j=yield*o.Scope,G=yield*v.Service,M=yield*PH.Path,T=yield*$H.Service,R=yield*OH.Service,h=yield*S.Service,l=yield*k.Service,z=H.fnUntraced(function*(J,K){let Q=yield*T.run(VH.make("git",J,{cwd:K?.cwd,extendEnv:!0,stdin:"ignore"}));return{code:Q.exitCode,text:Q.stdout.toString("utf8"),stderr:Q.stderr.toString("utf8")}},H.catch((J)=>H.succeed({code:1,text:"",stderr:J instanceof Error?J.message:String(J)}))),r=26,s=H.fn("Worktree.candidate")(function*(J){let K=yield*P.context;for(let Q of Array.from({length:26},(X,_)=>_)){let X=J.name?Q===0?J.name:`${J.name}-${ZH.create()}`:ZH.create(),_=J.detached?void 0:`muxcode/${X}`,O=M.join(J.root,X);if(yield*G.exists(O).pipe(H.orDie))continue;if(_){let $=`refs/heads/${_}`;if((yield*z(["show-ref","--verify","--quiet",$],{cwd:K.worktree})).code===0)continue}return{name:X,directory:O,..._?{branch:_}:{}}}return yield*new UH({message:"Failed to generate a unique worktree name"})}),x=H.fn("Worktree.makeWorktreeInfo")(function*(J){let K=yield*P.context;if(K.project.vcs!=="git")return yield*new p({message:"Worktrees are only supported for git projects"});let Q=M.join(DH.Path.data,"worktree",K.project.id);return yield*G.makeDirectory(Q,{recursive:!0}).pipe(H.orDie),yield*s({root:Q,name:J?.name?aH(J.name):"",detached:J?.detached})}),t=H.fnUntraced(function*(J){let K=yield*P.context,Q=yield*z(J.branch?["worktree","add","--no-checkout","-b",J.branch,J.directory]:["worktree","add","--no-checkout","--detach",J.directory,"HEAD"],{cwd:K.worktree});if(Q.code!==0)return yield*new qH({message:Q.stderr||Q.text||"Failed to create git worktree"});yield*h.addSandbox(K.project.id,J.directory).pipe(H.catch(()=>H.void))}),e=H.fnUntraced(function*(J,K){let Q=yield*P.context,X=yield*P.workspaceID,_=Q.project.id,O=K?.trim(),$=yield*z(["reset","--hard"],{cwd:J.directory});if($.code!==0){let q=$.stderr||$.text||"Failed to populate worktree";E.error("worktree checkout failed",{directory:J.directory,message:q}),g.emit("event",{directory:J.directory,project:Q.project.id,workspace:X,payload:{type:i.Failed.type,properties:{message:q}}});return}if(!(yield*l.load({directory:J.directory}).pipe(H.as(!0),H.catch((q)=>H.sync(()=>{let D=YH(q);return E.error("worktree bootstrap failed",{directory:J.directory,message:D}),g.emit("event",{directory:J.directory,project:Q.project.id,workspace:X,payload:{type:i.Failed.type,properties:{message:D}}}),!1})))))return;g.emit("event",{directory:J.directory,project:Q.project.id,workspace:X,payload:{type:i.Ready.type,properties:{name:J.name,...J.branch?{branch:J.branch}:{}}}}),yield*BH(J.directory,{projectID:_,extra:O})}),f=H.fn("Worktree.createFromInfo")(function*(J,K){yield*t(J),yield*e(J,K).pipe(H.catchCause((Q)=>H.sync(()=>E.error("worktree bootstrap failed",{cause:Q}))),H.forkIn(j))}),HH=H.fn("Worktree.create")(function*(J){let K=yield*x({name:J?.name});return yield*f(K,J?.startCommand),K}),w=H.fnUntraced(function*(J){let K=M.resolve(J),Q=yield*G.realPath(K).pipe(H.catch(()=>H.succeed(K))),X=M.normalize(Q);return process.platform==="win32"?X.toLowerCase():X});function F(J){return J.split(`
|
|
4
|
+
`).map((K)=>K.trim()).reduce((K,Q)=>{if(!Q)return K;if(Q.startsWith("worktree "))return K.push({path:Q.slice(9).trim()}),K;let X=K[K.length-1];if(!X)return K;if(Q.startsWith("branch "))X.branch=Q.slice(7).trim();return K},[])}let V=H.fnUntraced(function*(J,K){for(let Q of J){if(!Q.path)continue;if((yield*w(Q.path))===K)return Q}return}),Z=H.fn("Worktree.list")(function*(){let J=yield*P.context;if(J.project.vcs!=="git")return[];let K=yield*z(["worktree","list","--porcelain"],{cwd:J.worktree});if(K.code!==0)return yield*new MH({message:K.stderr||K.text||"Failed to read git worktrees"});let Q=yield*w(J.project.worktree),X=M.basename(Q).toLowerCase();return yield*H.forEach(F(K.text),(_)=>H.gen(function*(){if(!_.path)return;let O=yield*w(_.path);if(O===Q)return;let $=M.basename(O).toLowerCase();return{name:$===X?M.basename(M.dirname(O)):$,directory:O,..._.branch?{branch:_.branch.replace(/^refs\/heads\//,"")}:{}}})).pipe(H.map((_)=>_.filter((O)=>O!==void 0)))});function U(J){return G.exists(J).pipe(H.orDie,H.flatMap((K)=>K?z(["fsmonitor--daemon","stop"],{cwd:J}):H.void))}function C(J){return H.tryPromise({try:()=>import("fs/promises").then((K)=>K.rm(J,{recursive:!0,force:!0,maxRetries:5,retryDelay:100})),catch:(K)=>new b({message:YH(K)||"Failed to remove git worktree directory"})})}let I=H.fn("Worktree.remove")(function*(J){let K=yield*P.context;if(K.project.vcs!=="git")return yield*new p({message:"Worktrees are only supported for git projects"});let Q=yield*w(J.directory),X=yield*z(["worktree","list","--porcelain"],{cwd:K.worktree});if(X.code!==0)return yield*new b({message:X.stderr||X.text||"Failed to read git worktrees"});let _=F(X.text),O=yield*V(_,Q);if(!O?.path){if(yield*G.exists(Q).pipe(H.orDie))yield*U(Q),yield*C(Q);return!0}yield*U(O.path);let $=yield*z(["worktree","remove","--force",O.path],{cwd:K.worktree});if($.code!==0){let q=yield*z(["worktree","list","--porcelain"],{cwd:K.worktree});if(q.code!==0)return yield*new b({message:$.stderr||$.text||q.stderr||q.text||"Failed to remove git worktree"});if((yield*V(F(q.text),Q))?.path)return yield*new b({message:$.stderr||$.text||"Failed to remove git worktree"})}yield*C(O.path);let W=O.branch?.replace(/^refs\/heads\//,"");if(W){let q=yield*z(["branch","-D",W],{cwd:K.worktree});if(q.code!==0)return yield*new b({message:q.stderr||q.text||"Failed to delete worktree branch"})}return!0}),y=H.fnUntraced(function*(J,K,Q){let X=yield*z(J,K);if(X.code!==0)return yield*Q(X);return X}),hH=H.fnUntraced(function*(J,K){let[Q,X]=process.platform==="win32"?["cmd",["/c",K]]:["bash",["-lc",K]],_=yield*T.run(VH.make(Q,X,{cwd:J,extendEnv:!0,stdin:"ignore"}));return{code:_.exitCode,stderr:_.stderr.toString("utf8")}},H.catch(()=>H.succeed({code:1,stderr:""}))),zH=H.fnUntraced(function*(J,K,Q){let X=K.trim();if(!X)return!0;let _=yield*hH(J,X);if(_.code===0)return!0;return E.error("worktree start command failed",{kind:Q,directory:J,message:_.stderr}),!1}),BH=H.fnUntraced(function*(J,K){let Q=yield*H.sync(()=>FH.use(($)=>$.select().from(_H).where(RH(_H.id,K.projectID)).get())),_=(Q?S.fromRow(Q):void 0)?.commands?.start?.trim()??"";if(!(yield*zH(J,_,"project")))return!1;return yield*zH(J,K.extra??"","worktree"),!0}),xH=H.fnUntraced(function*(J,K){let Q=yield*w(J);yield*H.forEach(K,(X)=>H.gen(function*(){let _=yield*w(M.resolve(J,X));if(_===Q)return;if(!_.startsWith(`${Q}${M.sep}`))return;yield*G.remove(_,{recursive:!0}).pipe(H.ignore)}),{concurrency:"unbounded"})}),yH=H.fnUntraced(function*(J){let K=yield*z(["clean","-ffdx"],{cwd:J});if(K.code===0)return K;let Q=oH(K.stderr,K.text);if(!Q.length)return K;return yield*xH(J,Q),yield*z(["clean","-ffdx"],{cwd:J})}),mH=H.fn("Worktree.reset")(function*(J){let K=yield*P.context;if(K.project.vcs!=="git")return yield*new p({message:"Worktrees are only supported for git projects"});let Q=yield*w(J.directory),X=yield*w(K.worktree);if(Q===X)return yield*new N({message:"Cannot reset the primary workspace"});let _=yield*z(["worktree","list","--porcelain"],{cwd:K.worktree});if(_.code!==0)return yield*new N({message:_.stderr||_.text||"Failed to read git worktrees"});let O=yield*V(F(_.text),Q);if(!O?.path)return yield*new N({message:"Worktree not found"});let $=O.path,W=yield*R.defaultBranch(K.worktree);if(!W)return yield*new N({message:"Default branch not found"});let q=W.ref.indexOf("/");if(W.ref!==W.name&&q>0){let B=W.ref.slice(0,q),uH=W.ref.slice(q+1);yield*y(["fetch",B,uH],{cwd:K.worktree},(AH)=>new N({message:AH.stderr||AH.text||`Failed to fetch ${W.ref}`}))}yield*y(["reset","--hard",W.ref],{cwd:$},(B)=>new N({message:B.stderr||B.text||"Failed to reset worktree to target"}));let D=yield*yH($);if(D.code!==0)return yield*new N({message:D.stderr||D.text||"Failed to clean worktree"});yield*y(["submodule","update","--init","--recursive","--force"],{cwd:$},(B)=>new N({message:B.stderr||B.text||"Failed to update submodules"})),yield*y(["submodule","foreach","--recursive","git","reset","--hard"],{cwd:$},(B)=>new N({message:B.stderr||B.text||"Failed to reset submodules"})),yield*y(["submodule","foreach","--recursive","git","clean","-fdx"],{cwd:$},(B)=>new N({message:B.stderr||B.text||"Failed to clean submodules"}));let m=yield*z(["-c","core.fsmonitor=false","status","--porcelain=v1"],{cwd:$});if(m.code!==0)return yield*new N({message:m.stderr||m.text||"Failed to read git status"});if(m.text.trim())return yield*new N({message:`Worktree reset left local changes:
|
|
5
|
+
${m.text.trim()}`});return yield*BH($,{projectID:K.project.id}).pipe(H.catchCause((B)=>H.sync(()=>E.error("worktree start task failed",{cause:B}))),H.forkIn(j)),!0});return c.of({makeWorktreeInfo:x,createFromInfo:f,create:HH,list:Z,remove:I,reset:mH})})),SH=gH.pipe(A.provide(OH.defaultLayer),A.provide($H.defaultLayer),A.provide(S.defaultLayer),A.provide(v.defaultLayer),A.provide(bH.layer)),iH=SH.pipe(A.provide(d.layer));
|
|
6
|
+
export{k as ol,d as pl,i as ql,lH as rl,sH as sl,fH as tl,nH as ul,p as vl,UH as wl,qH as xl,vH as yl,b as zl,N as Al,MH as Bl,c as Cl,gH as Dl,SH as El,iH as Fl,TH as Gl};
|