@dylanpiercey/work 0.2.3 → 0.2.5
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 +13 -0
- package/bin/work.mjs +6 -0
- package/dist/{_KRMk2duX.js → _CBAfUPnF.js} +240 -4
- package/dist/_QKOzplQZ.js +2 -0
- package/dist/{_22ZJcGtj.js → _lCTTN0-C.js} +74 -74
- package/dist/index.mjs +1390 -1213
- package/dist/public/assets/_0c24xczY.js +1 -0
- package/dist/public/assets/_2DLtkfIZ.js +1 -0
- package/dist/public/assets/_5_F-xUab.js +1 -0
- package/dist/public/assets/{_C8fZdyNY.js → _6KjAUdMu.js} +1 -1
- package/dist/public/assets/_6KjAUdMu.js.br +0 -0
- package/dist/public/assets/{_CQObK-zV.js → _7HbR9MWC.js} +1 -1
- package/dist/public/assets/_7HbR9MWC.js.br +0 -0
- package/dist/public/assets/{_BD9G8SAI.js → _9w5ByXef.js} +1 -1
- package/dist/public/assets/_9w5ByXef.js.br +0 -0
- package/dist/public/assets/_ARY1gQUq.js +1 -0
- package/dist/public/assets/_B0lBS46A.js +1 -0
- package/dist/public/assets/_B1M9-3uA.js +1 -0
- package/dist/public/assets/{_CRW_09K_.js → _B1Nhy_QY.js} +1 -1
- package/dist/public/assets/_B1Nhy_QY.js.br +0 -0
- package/dist/public/assets/_B44-Gg2r.js +1 -0
- package/dist/public/assets/{_BG2c5dsW.js → _B4w6iynQ.js} +1 -1
- package/dist/public/assets/_B4w6iynQ.js.br +0 -0
- package/dist/public/assets/{_za7TvDJE.js → _B8UiFq-k.js} +1 -1
- package/dist/public/assets/_B8UiFq-k.js.br +0 -0
- package/dist/public/assets/_BAGig84m.js +1 -0
- package/dist/public/assets/{_fg65E76B.js → _BCZ-cuk2.js} +1 -1
- package/dist/public/assets/_BCZ-cuk2.js.br +0 -0
- package/dist/public/assets/{_Cb8MQgar.js → _BD5dLBFr.js} +1 -1
- package/dist/public/assets/_BD5dLBFr.js.br +0 -0
- package/dist/public/assets/{_CTQHm9xe.js → _BGSoiPQh.js} +1 -1
- package/dist/public/assets/_BGSoiPQh.js.br +0 -0
- package/dist/public/assets/{_CO8qGhCf.js → _BH3s9Sak.js} +1 -1
- package/dist/public/assets/_BH3s9Sak.js.br +0 -0
- package/dist/public/assets/_BHanMRu4.js +1 -0
- package/dist/public/assets/{_BAYCi6ni.js → _BHin8KOW.js} +1 -1
- package/dist/public/assets/_BHin8KOW.js.br +0 -0
- package/dist/public/assets/{_Br3g-GrF.js → _BIQ1-1eS.js} +1 -1
- package/dist/public/assets/_BIQ1-1eS.js.br +0 -0
- package/dist/public/assets/{_sqF7P4ps.js → _BIXgPr12.js} +1 -1
- package/dist/public/assets/_BIXgPr12.js.br +0 -0
- package/dist/public/assets/{_DoMGm1D6.js → _BJIopxZx.js} +1 -1
- package/dist/public/assets/_BJIopxZx.js.br +0 -0
- package/dist/public/assets/{_D-OQ6gTY.js → _BJQB1qE2.js} +1 -1
- package/dist/public/assets/_BJQB1qE2.js.br +0 -0
- package/dist/public/assets/_BMAi7mYm.js +1 -0
- package/dist/public/assets/_BRM-bXUc.js +1 -0
- package/dist/public/assets/_BTUCZSaG.js +1 -0
- package/dist/public/assets/_BTUCZSaG.js.br +0 -0
- package/dist/public/assets/{_BNIHSGhU.js → _BTl_R3zY.js} +2 -2
- package/dist/public/assets/_BTl_R3zY.js.br +0 -0
- package/dist/public/assets/{_A_E3xwTy.js → _BUpAKmXO.js} +1 -1
- package/dist/public/assets/_BUpAKmXO.js.br +0 -0
- package/dist/public/assets/{_y131Md6t.js → _BVlkkjyx.js} +1 -1
- package/dist/public/assets/_BVlkkjyx.js.br +0 -0
- package/dist/public/assets/_BXjwRkBy.js +1 -0
- package/dist/public/assets/{_Cexn18Gf.js → _Bf0lCwsr.js} +1 -1
- package/dist/public/assets/_Bf0lCwsr.js.br +0 -0
- package/dist/public/assets/{_CU19mo6c.js → _BfvujkxM.js} +1 -1
- package/dist/public/assets/_BfvujkxM.js.br +0 -0
- package/dist/public/assets/_BfzE66f8.js +1 -0
- package/dist/public/assets/{_5uWjRetR.js → _Bh3HZchT.js} +1 -1
- package/dist/public/assets/_Bh3HZchT.js.br +0 -0
- package/dist/public/assets/_Bi6RZ9jC.js +1 -0
- package/dist/public/assets/_Bj5pADzY.js +1 -0
- package/dist/public/assets/{_DZUNnITm.js → _Bl3PtYpa.js} +1 -1
- package/dist/public/assets/_Bl3PtYpa.js.br +0 -0
- package/dist/public/assets/{_DX4bSl0s.js → _BlN0gVeA.js} +1 -1
- package/dist/public/assets/_BlN0gVeA.js.br +0 -0
- package/dist/public/assets/_BlXOeSxj.js +1 -0
- package/dist/public/assets/_BlXOeSxj.js.br +0 -0
- package/dist/public/assets/{_DXTqbi8r.js → _Bm73SiBA.js} +1 -1
- package/dist/public/assets/_Bm73SiBA.js.br +0 -0
- package/dist/public/assets/_Bqr-UANF.js +1 -0
- package/dist/public/assets/_BrVAM9TW.js +1 -0
- package/dist/public/assets/{_DV5FT1cq.js → _BuCnnOW_.js} +1 -1
- package/dist/public/assets/_BuCnnOW_.js.br +0 -0
- package/dist/public/assets/_By_hGhAy.js +1 -0
- package/dist/public/assets/_C0ZVSoFZ.js +1 -0
- package/dist/public/assets/{_CZwuw2-p.js → _C3_zke-J.js} +1 -1
- package/dist/public/assets/_C3_zke-J.js.br +0 -0
- package/dist/public/assets/_C6k6h0k7.js +1 -0
- package/dist/public/assets/{_hnIqG5G7.js → _C6mR0Rvg.js} +1 -1
- package/dist/public/assets/_C6mR0Rvg.js.br +0 -0
- package/dist/public/assets/{_BFucjEre.js → _C7YQVSwI.js} +1 -1
- package/dist/public/assets/_C7YQVSwI.js.br +0 -0
- package/dist/public/assets/_CCVXbrsi.js +1 -0
- package/dist/public/assets/_CFRkjoEh.js +1 -0
- package/dist/public/assets/{_DazuPVkd.js → _CGkxCKsU.js} +1 -1
- package/dist/public/assets/_CGkxCKsU.js.br +0 -0
- package/dist/public/assets/{_DAkDausF.js → _CGyevjR2.js} +1 -1
- package/dist/public/assets/_CGyevjR2.js.br +0 -0
- package/dist/public/assets/{_C1mJwh0u.js → _CIxHWzyN.js} +1 -1
- package/dist/public/assets/_CIxHWzyN.js.br +0 -0
- package/dist/public/assets/{_D-tLFHYN.js → _CKWi3i-W.js} +1 -1
- package/dist/public/assets/_CKWi3i-W.js.br +0 -0
- package/dist/public/assets/_CKhIzXGb.js +1 -0
- package/dist/public/assets/{_BjOIOaiT.js → _CLLWxzaH.js} +1 -1
- package/dist/public/assets/_CLLWxzaH.js.br +0 -0
- package/dist/public/assets/{_hpcOqr0r.js → _CL_yFmRX.js} +1 -1
- package/dist/public/assets/_CL_yFmRX.js.br +0 -0
- package/dist/public/assets/_CNisZ5ba.js +1 -0
- package/dist/public/assets/_COoyDMKD.js +1 -0
- package/dist/public/assets/{_C95R9gUz.js → _COsD0nqg.js} +1 -1
- package/dist/public/assets/_COsD0nqg.js.br +0 -0
- package/dist/public/assets/{_EYDD6XdR.js → _CQ729sWv.js} +1 -1
- package/dist/public/assets/_CQ729sWv.js.br +0 -0
- package/dist/public/assets/{_D3lhKPvM.js → _CVzrnVQ9.js} +1 -1
- package/dist/public/assets/_CVzrnVQ9.js.br +0 -0
- package/dist/public/assets/_CW0KbeBN.js +1 -0
- package/dist/public/assets/{_C2StVKSW.js → _CWIANsCQ.js} +1 -1
- package/dist/public/assets/_CWIANsCQ.js.br +0 -0
- package/dist/public/assets/{_ERj57v2f.js → _CYZEfSJ3.js} +1 -1
- package/dist/public/assets/_CYZEfSJ3.js.br +0 -0
- package/dist/public/assets/{_BiZJ6M6A.js → _CYuHa7Yb.js} +1 -1
- package/dist/public/assets/_CYuHa7Yb.js.br +0 -0
- package/dist/public/assets/{_DmowM8Ic.js → _CbwNeCUP.js} +1 -1
- package/dist/public/assets/_CbwNeCUP.js.br +0 -0
- package/dist/public/assets/_Cce_PQSk.js +1 -0
- package/dist/public/assets/_CfO3MSIL.js +1 -0
- package/dist/public/assets/{_BqP5b9Js.js → _CgJGPMh3.js} +1 -1
- package/dist/public/assets/_CgJGPMh3.js.br +0 -0
- package/dist/public/assets/_CgYJ1S13.js +1 -0
- package/dist/public/assets/{_BREogqkc.js → _CiiJUoRP.js} +1 -1
- package/dist/public/assets/_CiiJUoRP.js.br +0 -0
- package/dist/public/assets/{_BatLETVj.js → _CjbEYIYt.js} +1 -1
- package/dist/public/assets/{_CsWgp2nb.js → _CkhYSPiT.js} +1 -1
- package/dist/public/assets/_CkhYSPiT.js.br +0 -0
- package/dist/public/assets/_ClyBQHa2.js +1 -0
- package/dist/public/assets/_Cn1r5uRd.js +1 -0
- package/dist/public/assets/_Cnnqc409.js +1 -0
- package/dist/public/assets/_CrD_AzfP.js +1 -0
- package/dist/public/assets/_CsS0_MBD.js +1 -0
- package/dist/public/assets/_CtL1KhcZ.js +1 -0
- package/dist/public/assets/_Ct_uShb7.js +1 -0
- package/dist/public/assets/{_BAoC0qRs.js → _CwfJqaJy.js} +1 -1
- package/dist/public/assets/_CwfJqaJy.js.br +0 -0
- package/dist/public/assets/_CxiS0Luw.js +1 -0
- package/dist/public/assets/_CxoRGw4S.js +6 -0
- package/dist/public/assets/_CxoRGw4S.js.br +0 -0
- package/dist/public/assets/{_BNMi9WuF.js → _Cy1-jlcl.js} +1 -1
- package/dist/public/assets/_D1qkq-78.js +1 -0
- package/dist/public/assets/{_qpbnZMAm.js → _D4cJFgpW.js} +1 -1
- package/dist/public/assets/_D4cJFgpW.js.br +0 -0
- package/dist/public/assets/_D5cLUZIR.js +1 -0
- package/dist/public/assets/{_COU5hB51.js → _D682dnRF.js} +1 -1
- package/dist/public/assets/_D682dnRF.js.br +0 -0
- package/dist/public/assets/_D6agCnsS.js +86 -0
- package/dist/public/assets/_D6agCnsS.js.br +0 -0
- package/dist/public/assets/_D6u0x0P3.js +1 -0
- package/dist/public/assets/{_C2ZMn_xV.js → _DAEYKD4r.js} +1 -1
- package/dist/public/assets/_DAEYKD4r.js.br +0 -0
- package/dist/public/assets/_DAGEl7ZI.js +1 -0
- package/dist/public/assets/_DAXWs-8v.js +1 -0
- package/dist/public/assets/_DBZNb3SA.js +1 -0
- package/dist/public/assets/{_Bl1PK0cl.js → _DD8WUYj7.js} +1 -1
- package/dist/public/assets/{_BVdmkVvF.js → _DE5ap0Tf.js} +1 -1
- package/dist/public/assets/_DE5ap0Tf.js.br +0 -0
- package/dist/public/assets/{_BPlFGH_o.js → _DEfzu8ih.js} +1 -1
- package/dist/public/assets/_DEfzu8ih.js.br +0 -0
- package/dist/public/assets/{_Cn3i_89j.js → _DGTBCNBr.js} +1 -1
- package/dist/public/assets/_DGTBCNBr.js.br +0 -0
- package/dist/public/assets/_DHeqkXiY.js +1 -0
- package/dist/public/assets/{_BNFztlGk.js → _DHo91ryS.js} +1 -1
- package/dist/public/assets/_DHo91ryS.js.br +0 -0
- package/dist/public/assets/{_8r9L-9VY.js → _DI_3MIHW.js} +1 -1
- package/dist/public/assets/_DI_3MIHW.js.br +0 -0
- package/dist/public/assets/_DKxxY5bP.js +1 -0
- package/dist/public/assets/_DMFA_oiG.js +1 -0
- package/dist/public/assets/_DNMu9xsh.js +1 -0
- package/dist/public/assets/_DQIvJz1O.js +1 -0
- package/dist/public/assets/{_C5ce7CgX.js → _DQOo-hrZ.js} +1 -1
- package/dist/public/assets/_DQOo-hrZ.js.br +0 -0
- package/dist/public/assets/_DRdM8a8I.js +1 -0
- package/dist/public/assets/_DSBy2NBy.js +1 -0
- package/dist/public/assets/_DSaYrdtM.js +1 -0
- package/dist/public/assets/_DUfxNyB-.js +1 -0
- package/dist/public/assets/_DVnO8Ue3.js +1 -0
- package/dist/public/assets/_DWBMW1Gd.js +16 -0
- package/dist/public/assets/_DWBMW1Gd.js.br +0 -0
- package/dist/public/assets/{_D8CPj1qO.js → _DWYBA1-o.js} +1 -1
- package/dist/public/assets/_DWYBA1-o.js.br +0 -0
- package/dist/public/assets/_DX4Ekziw.js +1 -0
- package/dist/public/assets/_DZdUMzk-.js +1 -0
- package/dist/public/assets/{_DHmztqRk.js → _DZqJgMRo.js} +1 -1
- package/dist/public/assets/_DZqJgMRo.js.br +0 -0
- package/dist/public/assets/{_IFkRXRzU.js → _Dar4eumr.js} +1 -1
- package/dist/public/assets/_Dar4eumr.js.br +0 -0
- package/dist/public/assets/_Dcyo-rCD.js +1 -0
- package/dist/public/assets/{_XYCe5HBr.js → _De7nNeYO.js} +1 -1
- package/dist/public/assets/_De7nNeYO.js.br +0 -0
- package/dist/public/assets/{_ME8SxhdL.js → _DhC5el6D.js} +1 -1
- package/dist/public/assets/_DhC5el6D.js.br +0 -0
- package/dist/public/assets/_DibNYciW.js +1 -0
- package/dist/public/assets/_DjsLzRZG.js +1 -0
- package/dist/public/assets/{_ajzfUxd5.js → _Dk3R4Z3G.js} +1 -1
- package/dist/public/assets/_Dk3R4Z3G.js.br +0 -0
- package/dist/public/assets/{_Bi3K_PNF.js → _DkGTfw3E.js} +1 -1
- package/dist/public/assets/_DkGTfw3E.js.br +0 -0
- package/dist/public/assets/_DleWSrNr.js +1 -0
- package/dist/public/assets/{_FqQlfvYe.js → _DoTGW9t_.js} +1 -1
- package/dist/public/assets/_DoTGW9t_.js.br +0 -0
- package/dist/public/assets/{_CKuJF_iH.js → _DsCn5UTm.js} +1 -1
- package/dist/public/assets/{_DjBgn0d9.js → _Dt41NZEe.js} +1 -1
- package/dist/public/assets/_Dt41NZEe.js.br +0 -0
- package/dist/public/assets/_DtGsJs4n.js +1 -0
- package/dist/public/assets/{_DAa9TofW.js → _DuG3CF8P.js} +1 -1
- package/dist/public/assets/_DvFHYK7N.js +1 -0
- package/dist/public/assets/{_D1oVzqlA.js → _Dvmu9xL1.js} +1 -1
- package/dist/public/assets/_Dvmu9xL1.js.br +0 -0
- package/dist/public/assets/_Dw6ABFWB.js +1 -0
- package/dist/public/assets/{_MDQFZ3Rt.js → _Dwr9m_XO.js} +1 -1
- package/dist/public/assets/_Dwr9m_XO.js.br +0 -0
- package/dist/public/assets/_Dy_NwgiZ.js +1 -0
- package/dist/public/assets/{_KTYnlwaC.js → _DzR2aM54.js} +1 -1
- package/dist/public/assets/_DzR2aM54.js.br +0 -0
- package/dist/public/assets/_Dzz6XToj.js +1 -0
- package/dist/public/assets/_H2neNd6h.js +1 -0
- package/dist/public/assets/{_DzEdOagp.js → _H3_TAEwT.js} +1 -1
- package/dist/public/assets/_H3_TAEwT.js.br +0 -0
- package/dist/public/assets/_HmKyzOQ9.js +1 -0
- package/dist/public/assets/{_Dz80JlHx.js → _IN4J4YBW.js} +1 -1
- package/dist/public/assets/_IN4J4YBW.js.br +0 -0
- package/dist/public/assets/{_C06I3LLm.js → _JsSBWxTm.js} +1 -1
- package/dist/public/assets/_JsSBWxTm.js.br +0 -0
- package/dist/public/assets/_KVH3ikvu.js +1 -0
- package/dist/public/assets/_LwBlUpsP.js +1 -0
- package/dist/public/assets/_OzwHxj-f.js +1 -0
- package/dist/public/assets/_OzwHxj-f.js.br +0 -0
- package/dist/public/assets/_P0gU1gbT.js +1 -0
- package/dist/public/assets/{_DVMHDetJ.js → _QtSMZzqL.js} +1 -1
- package/dist/public/assets/_QtSMZzqL.js.br +0 -0
- package/dist/public/assets/_Qxvqqsij.js +1 -0
- package/dist/public/assets/_SPsH8niR.js +1 -0
- package/dist/public/assets/_TaSbzEwp.js +1 -0
- package/dist/public/assets/_X489NmPA.js +1 -0
- package/dist/public/assets/{_c3NZ7n3v.js → _Z39VyEIr.js} +1 -1
- package/dist/public/assets/_Z39VyEIr.js.br +0 -0
- package/dist/public/assets/{_40vu6pjB.js → _ZOShf24V.js} +1 -1
- package/dist/public/assets/_ZOShf24V.js.br +0 -0
- package/dist/public/assets/{_83sVmsrE.js → __yvzZqMv.js} +1 -1
- package/dist/public/assets/_aFLWPF_n.js +1 -0
- package/dist/public/assets/_aFLWPF_n.js.br +0 -0
- package/dist/public/assets/_aGMVzwZv.js +1 -0
- package/dist/public/assets/_dFG2kRk7.js +1 -0
- package/dist/public/assets/_f5ICErt1.js +1 -0
- package/dist/public/assets/{_DhzN8i-8.js → _fveY8PcG.js} +1 -1
- package/dist/public/assets/_fveY8PcG.js.br +0 -0
- package/dist/public/assets/{_DWsX_uW9.js → _ik4fA9Io.js} +117 -117
- package/dist/public/assets/_ik4fA9Io.js.br +0 -0
- package/dist/public/assets/{_DpT1FBQL.js → _ioeAoBa7.js} +1 -1
- package/dist/public/assets/_ioeAoBa7.js.br +0 -0
- package/dist/public/assets/_iuyL-8KF.js +1 -0
- package/dist/public/assets/_j2BgKjgX.js +1 -0
- package/dist/public/assets/_lSCuC4KI.js +1 -0
- package/dist/public/assets/{_jOw0-nfA.js → _mUfz4nj3.js} +1 -1
- package/dist/public/assets/_mUfz4nj3.js.br +0 -0
- package/dist/public/assets/{_BZpi1MW_.js → _n2alt6VB.js} +1 -1
- package/dist/public/assets/_n2alt6VB.js.br +0 -0
- package/dist/public/assets/{_CxuayNVt.js → _n9AderYO.js} +1 -1
- package/dist/public/assets/_n9AderYO.js.br +0 -0
- package/dist/public/assets/{_C-4NnUIM.js → _ouwqcTUQ.js} +1 -1
- package/dist/public/assets/_ouwqcTUQ.js.br +0 -0
- package/dist/public/assets/{_CXvuWyK0.js → _pO-ejFak.js} +1 -1
- package/dist/public/assets/_pO-ejFak.js.br +0 -0
- package/dist/public/assets/{_BkHM28NA.js → _pcb3Rv9W.js} +2 -2
- package/dist/public/assets/_pcb3Rv9W.js.br +0 -0
- package/dist/public/assets/_q0xRcZTe.js +1 -0
- package/dist/public/assets/_q0xRcZTe.js.br +0 -0
- package/dist/public/assets/{_Xgn2Q7QA.js → _qcmcOCFt.js} +1 -1
- package/dist/public/assets/_qcmcOCFt.js.br +0 -0
- package/dist/public/assets/{_DtCOQnFU.js → _taYECXYk.js} +1 -1
- package/dist/public/assets/_taYECXYk.js.br +0 -0
- package/dist/public/assets/{_BrEiPK5C.js → _v2vYYMtd.js} +1 -1
- package/dist/public/assets/_v2vYYMtd.js.br +0 -0
- package/dist/public/assets/{_DCpMCYiE.js → _w9ewWsh-.js} +1 -1
- package/dist/public/assets/_w9ewWsh-.js.br +0 -0
- package/dist/public/assets/{_D41QKmFC.js → _wLRf6Bx_.js} +1 -1
- package/dist/public/assets/_wLRf6Bx_.js.br +0 -0
- package/dist/public/assets/{_C_Rq4JG1.js → _yHiCEt9K.js} +1 -1
- package/dist/public/assets/_yHiCEt9K.js.br +0 -0
- package/dist/public/assets/files-view-CjpPpmhE.js +2 -0
- package/dist/public/assets/manage-workspace-Wr_ce0oy.js +2 -0
- package/dist/public/assets/new-DrUQniTD.js +1 -0
- package/dist/public/assets/new-workspace-Dq-ZluqO.js +2 -0
- package/dist/public/assets/review-view-DalzN_KK.js +2 -0
- package/dist/public/assets/settings-DrUQniTD.js +1 -0
- package/dist/public/assets/settings-page-Dc0ub7fk.js +2 -0
- package/dist/public/assets/styles-CRsBOHkv.css +1 -0
- package/dist/public/assets/styles-CRsBOHkv.css.br +0 -0
- package/dist/public/assets/w-DrUQniTD.js +1 -0
- package/dist/public/assets/w._-ChdxcKQq.js +1 -0
- package/dist/public/assets/w._-CxlvLeAC.js +1 -0
- package/dist/public/assets/w._-DrUQniTD.js +1 -0
- package/lib/setup/doctor.d.mts +5 -0
- package/lib/setup/doctor.mjs +6 -0
- package/lib/setup/untracked-cache.d.mts +34 -0
- package/lib/setup/untracked-cache.mjs +281 -0
- package/package.json +1 -1
- package/dist/_ZwD1NY8D.js +0 -2
- package/dist/public/assets/_40vu6pjB.js.br +0 -0
- package/dist/public/assets/_4VsToA9B.js +0 -1
- package/dist/public/assets/_4VsToA9B.js.br +0 -0
- package/dist/public/assets/_4b6fTueA.js +0 -1
- package/dist/public/assets/_5UQYUstJ.js +0 -1
- package/dist/public/assets/_5uWjRetR.js.br +0 -0
- package/dist/public/assets/_8r9L-9VY.js.br +0 -0
- package/dist/public/assets/_A_E3xwTy.js.br +0 -0
- package/dist/public/assets/_B1nFcjBS.js +0 -1
- package/dist/public/assets/_B9crCH-D.js +0 -1
- package/dist/public/assets/_BAYCi6ni.js.br +0 -0
- package/dist/public/assets/_BAoC0qRs.js.br +0 -0
- package/dist/public/assets/_BD9G8SAI.js.br +0 -0
- package/dist/public/assets/_BFucjEre.js.br +0 -0
- package/dist/public/assets/_BG2c5dsW.js.br +0 -0
- package/dist/public/assets/_BIkBlb5V.js +0 -1
- package/dist/public/assets/_BIxxnn6B.js +0 -1
- package/dist/public/assets/_BMECr17a.js +0 -1
- package/dist/public/assets/_BNFztlGk.js.br +0 -0
- package/dist/public/assets/_BNIHSGhU.js.br +0 -0
- package/dist/public/assets/_BNztKl9G.js +0 -1
- package/dist/public/assets/_BPlFGH_o.js.br +0 -0
- package/dist/public/assets/_BQ9TQ0w9.js +0 -1
- package/dist/public/assets/_BQzlfu_A.js +0 -1
- package/dist/public/assets/_BREogqkc.js.br +0 -0
- package/dist/public/assets/_BUrIkYGg.js +0 -1
- package/dist/public/assets/_BVdmkVvF.js.br +0 -0
- package/dist/public/assets/_BZpi1MW_.js.br +0 -0
- package/dist/public/assets/_BgDbcHZ4.js +0 -1
- package/dist/public/assets/_Bi3K_PNF.js.br +0 -0
- package/dist/public/assets/_BiS6HfVD.js +0 -1
- package/dist/public/assets/_BiZJ6M6A.js.br +0 -0
- package/dist/public/assets/_BjOIOaiT.js.br +0 -0
- package/dist/public/assets/_Bjy8hUtC.js +0 -1
- package/dist/public/assets/_BkHM28NA.js.br +0 -0
- package/dist/public/assets/_Bkr5fMX1.js +0 -1
- package/dist/public/assets/_BnpGH2MM.js +0 -1
- package/dist/public/assets/_BnpGH2MM.js.br +0 -0
- package/dist/public/assets/_Bpy05Rz3.js +0 -86
- package/dist/public/assets/_Bpy05Rz3.js.br +0 -0
- package/dist/public/assets/_BqP5b9Js.js.br +0 -0
- package/dist/public/assets/_Br3g-GrF.js.br +0 -0
- package/dist/public/assets/_BrEiPK5C.js.br +0 -0
- package/dist/public/assets/_BtMM1k2B.js +0 -1
- package/dist/public/assets/_ByHt4txu.js +0 -1
- package/dist/public/assets/_ByHt4txu.js.br +0 -0
- package/dist/public/assets/_C--8To02.js +0 -1
- package/dist/public/assets/_C-4NnUIM.js.br +0 -0
- package/dist/public/assets/_C06I3LLm.js.br +0 -0
- package/dist/public/assets/_C1mJwh0u.js.br +0 -0
- package/dist/public/assets/_C204QceO.js +0 -1
- package/dist/public/assets/_C204QceO.js.br +0 -0
- package/dist/public/assets/_C2I5lOqp.js +0 -1
- package/dist/public/assets/_C2StVKSW.js.br +0 -0
- package/dist/public/assets/_C2ZMn_xV.js.br +0 -0
- package/dist/public/assets/_C3Dbi3Be.js +0 -1
- package/dist/public/assets/_C4NRfzG7.js +0 -1
- package/dist/public/assets/_C5ce7CgX.js.br +0 -0
- package/dist/public/assets/_C6N2Y-JE.js +0 -16
- package/dist/public/assets/_C6N2Y-JE.js.br +0 -0
- package/dist/public/assets/_C6Nc97k4.js +0 -1
- package/dist/public/assets/_C8fZdyNY.js.br +0 -0
- package/dist/public/assets/_C95R9gUz.js.br +0 -0
- package/dist/public/assets/_CArLoLBv.js +0 -1
- package/dist/public/assets/_CDSiKfUM.js +0 -1
- package/dist/public/assets/_CGHQS5qu.js +0 -1
- package/dist/public/assets/_CKQ_sRVP.js +0 -1
- package/dist/public/assets/_CO8qGhCf.js.br +0 -0
- package/dist/public/assets/_COU5hB51.js.br +0 -0
- package/dist/public/assets/_CPT5gcz6.js +0 -1
- package/dist/public/assets/_CPdnD9rC.js +0 -1
- package/dist/public/assets/_CQObK-zV.js.br +0 -0
- package/dist/public/assets/_CRW_09K_.js.br +0 -0
- package/dist/public/assets/_CRiNy5d5.js +0 -6
- package/dist/public/assets/_CRiNy5d5.js.br +0 -0
- package/dist/public/assets/_CSaqUoH5.js +0 -1
- package/dist/public/assets/_CTQHm9xe.js.br +0 -0
- package/dist/public/assets/_CU19mo6c.js.br +0 -0
- package/dist/public/assets/_CWlBstvf.js +0 -1
- package/dist/public/assets/_CX-K_hge.js +0 -1
- package/dist/public/assets/_CXsIXsHf.js +0 -1
- package/dist/public/assets/_CXvuWyK0.js.br +0 -0
- package/dist/public/assets/_CYK4NYKF.js +0 -1
- package/dist/public/assets/_CZwuw2-p.js.br +0 -0
- package/dist/public/assets/_C_Rq4JG1.js.br +0 -0
- package/dist/public/assets/_Caao6gnt.js +0 -1
- package/dist/public/assets/_Cb8MQgar.js.br +0 -0
- package/dist/public/assets/_Cexn18Gf.js.br +0 -0
- package/dist/public/assets/_Cez5jeQ3.js +0 -1
- package/dist/public/assets/_CfF6EpTr.js +0 -1
- package/dist/public/assets/_Cn3i_89j.js.br +0 -0
- package/dist/public/assets/_CsWgp2nb.js.br +0 -0
- package/dist/public/assets/_CuvH34sA.js +0 -1
- package/dist/public/assets/_Cw0WiTIy.js +0 -1
- package/dist/public/assets/_CwQnPuk6.js +0 -1
- package/dist/public/assets/_CxhD0aWE.js +0 -1
- package/dist/public/assets/_CxuayNVt.js.br +0 -0
- package/dist/public/assets/_CzKTCTaq.js +0 -1
- package/dist/public/assets/_D-OQ6gTY.js.br +0 -0
- package/dist/public/assets/_D-tLFHYN.js.br +0 -0
- package/dist/public/assets/_D1oVzqlA.js.br +0 -0
- package/dist/public/assets/_D33FOujy.js +0 -1
- package/dist/public/assets/_D3lhKPvM.js.br +0 -0
- package/dist/public/assets/_D41QKmFC.js.br +0 -0
- package/dist/public/assets/_D51xAv9r.js +0 -1
- package/dist/public/assets/_D5nZD7eD.js +0 -1
- package/dist/public/assets/_D8CPj1qO.js.br +0 -0
- package/dist/public/assets/_D9vVVOIn.js +0 -1
- package/dist/public/assets/_DAkDausF.js.br +0 -0
- package/dist/public/assets/_DCpMCYiE.js.br +0 -0
- package/dist/public/assets/_DEXYHaYS.js +0 -1
- package/dist/public/assets/_DHmztqRk.js.br +0 -0
- package/dist/public/assets/_DKhOdMwP.js +0 -1
- package/dist/public/assets/_DQ8yXlAt.js +0 -1
- package/dist/public/assets/_DQ8yXlAt.js.br +0 -0
- package/dist/public/assets/_DS41GJgp.js +0 -1
- package/dist/public/assets/_DV5FT1cq.js.br +0 -0
- package/dist/public/assets/_DVMHDetJ.js.br +0 -0
- package/dist/public/assets/_DVnPb5rQ.js +0 -1
- package/dist/public/assets/_DW9T2oLl.js +0 -1
- package/dist/public/assets/_DWsX_uW9.js.br +0 -0
- package/dist/public/assets/_DX4bSl0s.js.br +0 -0
- package/dist/public/assets/_DXTqbi8r.js.br +0 -0
- package/dist/public/assets/_DXx7FwDH.js +0 -1
- package/dist/public/assets/_DZUNnITm.js.br +0 -0
- package/dist/public/assets/_DaN45TKC.js +0 -1
- package/dist/public/assets/_DazuPVkd.js.br +0 -0
- package/dist/public/assets/_DbXpwzFM.js +0 -1
- package/dist/public/assets/_Dc80eYDG.js +0 -1
- package/dist/public/assets/_DcuOYNuY.js +0 -1
- package/dist/public/assets/_DgZ9ZooU.js +0 -1
- package/dist/public/assets/_DhXbhPYD.js +0 -1
- package/dist/public/assets/_DhzN8i-8.js.br +0 -0
- package/dist/public/assets/_DjBgn0d9.js.br +0 -0
- package/dist/public/assets/_DmowM8Ic.js.br +0 -0
- package/dist/public/assets/_DoMGm1D6.js.br +0 -0
- package/dist/public/assets/_DoRDdc0E.js +0 -1
- package/dist/public/assets/_DouwKMqP.js +0 -1
- package/dist/public/assets/_DpT1FBQL.js.br +0 -0
- package/dist/public/assets/_DqWo7EId.js +0 -1
- package/dist/public/assets/_DtCOQnFU.js.br +0 -0
- package/dist/public/assets/_DxCfNrwt.js +0 -1
- package/dist/public/assets/_Dz80JlHx.js.br +0 -0
- package/dist/public/assets/_DzEdOagp.js.br +0 -0
- package/dist/public/assets/_ERj57v2f.js.br +0 -0
- package/dist/public/assets/_EYDD6XdR.js.br +0 -0
- package/dist/public/assets/_FqQlfvYe.js.br +0 -0
- package/dist/public/assets/_IFkRXRzU.js.br +0 -0
- package/dist/public/assets/_JgiLBims.js +0 -1
- package/dist/public/assets/_KTYnlwaC.js.br +0 -0
- package/dist/public/assets/_L4X29MSj.js +0 -1
- package/dist/public/assets/_MDQFZ3Rt.js.br +0 -0
- package/dist/public/assets/_ME8SxhdL.js.br +0 -0
- package/dist/public/assets/_QlMykZD9.js +0 -1
- package/dist/public/assets/_T965C61_.js +0 -1
- package/dist/public/assets/_TZOS55wO.js +0 -1
- package/dist/public/assets/_VXxx_YyF.js +0 -1
- package/dist/public/assets/_XYCe5HBr.js.br +0 -0
- package/dist/public/assets/_Xgn2Q7QA.js.br +0 -0
- package/dist/public/assets/_XjXKgxUm.js +0 -1
- package/dist/public/assets/_ajzfUxd5.js.br +0 -0
- package/dist/public/assets/_c3NZ7n3v.js.br +0 -0
- package/dist/public/assets/_fg65E76B.js.br +0 -0
- package/dist/public/assets/_hnIqG5G7.js.br +0 -0
- package/dist/public/assets/_hpcOqr0r.js.br +0 -0
- package/dist/public/assets/_i9E9rfmR.js +0 -1
- package/dist/public/assets/_jOw0-nfA.js.br +0 -0
- package/dist/public/assets/_lkU1EFgO.js +0 -1
- package/dist/public/assets/_qpbnZMAm.js.br +0 -0
- package/dist/public/assets/_sqF7P4ps.js.br +0 -0
- package/dist/public/assets/_vz-DSsqW.js +0 -1
- package/dist/public/assets/_wblybLRB.js +0 -1
- package/dist/public/assets/_y131Md6t.js.br +0 -0
- package/dist/public/assets/_za7TvDJE.js.br +0 -0
- package/dist/public/assets/files-view-CcOqGI93.js +0 -2
- package/dist/public/assets/manage-workspace-DrjDbGy-.js +0 -2
- package/dist/public/assets/new-workspace-CWEOveUX.js +0 -2
- package/dist/public/assets/new-x5ut6u2L.js +0 -1
- package/dist/public/assets/review-view-BOkPXkJr.js +0 -2
- package/dist/public/assets/settings-page-HcpiFu5I.js +0 -2
- package/dist/public/assets/settings-x5ut6u2L.js +0 -1
- package/dist/public/assets/styles-mjkw6XVV.css +0 -1
- package/dist/public/assets/styles-mjkw6XVV.css.br +0 -0
- package/dist/public/assets/w-x5ut6u2L.js +0 -1
- package/dist/public/assets/w._-BFTFbL6S.js +0 -1
- package/dist/public/assets/w._-BwCim0jU.js +0 -1
- package/dist/public/assets/w._-x5ut6u2L.js +0 -1
package/README.md
CHANGED
|
@@ -115,6 +115,19 @@ macOS's firewall admits programs rather than ports, so there it is the
|
|
|
115
115
|
node the service runs that `work doctor` checks and `work setup` lets in. `WORK_RTC_STUN` names the STUN servers that find this machine's
|
|
116
116
|
public address (Cloudflare's by default; empty for none).
|
|
117
117
|
|
|
118
|
+
**A faster `git status`.** Listing a large repo's untracked files is most
|
|
119
|
+
of what `git status` costs, and work asks it of every checkout and topic
|
|
120
|
+
branch's worktree. So the service turns on git's untracked cache
|
|
121
|
+
(`core.untrackedCache`) in the repos work keeps (`<work root>/.cache`, whose
|
|
122
|
+
worktrees are every workspace's checkouts), after which git reads again
|
|
123
|
+
only the directories that changed; your agents' own `git status` gets
|
|
124
|
+
faster too. It relies on directory modification times, so it is only
|
|
125
|
+
turned on where the work root is a local filesystem with fine timestamps
|
|
126
|
+
(not NFS, SMB, FUSE mounts, HFS+ or FAT) and git's own check passes there.
|
|
127
|
+
A repo set `core.untrackedCache=false` is left alone, and
|
|
128
|
+
`git config --global core.untrackedCache false` keeps it off everywhere;
|
|
129
|
+
`work doctor` says which it is.
|
|
130
|
+
|
|
118
131
|
**Opening workspace ports remotely.** The port chips in the sidebar link to
|
|
119
132
|
`http://<host>:<port>`, which only works where the machine is reachable
|
|
120
133
|
directly — under a tailnet name too, since `tailscale serve` has no
|
package/bin/work.mjs
CHANGED
|
@@ -893,9 +893,15 @@ function doctorOpts() {
|
|
|
893
893
|
listen: env.WORK_LISTEN,
|
|
894
894
|
rtc: env.WORK_RTC || "",
|
|
895
895
|
firewall: serviceFirewall(),
|
|
896
|
+
workRoot: serviceWorkRoot(),
|
|
896
897
|
};
|
|
897
898
|
}
|
|
898
899
|
|
|
900
|
+
/** The work root the service uses: where its repo caches are. */
|
|
901
|
+
function serviceWorkRoot() {
|
|
902
|
+
return serviceEnv().WORK_ROOT || path.join(os.homedir(), "work");
|
|
903
|
+
}
|
|
904
|
+
|
|
899
905
|
/**
|
|
900
906
|
* The host firewall as the service meets it. macOS's admits programs, so
|
|
901
907
|
* the node that counts is the one the service runs, which need not be this
|
|
@@ -4,7 +4,7 @@ import { t as require_safe_buffer } from "./_BmSjjJ2E.js";
|
|
|
4
4
|
import { createRequire } from "node:module";
|
|
5
5
|
import fs from "node:fs";
|
|
6
6
|
import path from "node:path";
|
|
7
|
-
import { execFile, execFileSync, spawnSync } from "node:child_process";
|
|
7
|
+
import { execFile, execFileSync, spawn, spawnSync } from "node:child_process";
|
|
8
8
|
import fs$1 from "node:fs/promises";
|
|
9
9
|
import os from "node:os";
|
|
10
10
|
import { promisify } from "node:util";
|
|
@@ -1402,6 +1402,241 @@ function run$1(cmd, args) {
|
|
|
1402
1402
|
})));
|
|
1403
1403
|
}
|
|
1404
1404
|
//#endregion
|
|
1405
|
+
//#region lib/setup/untracked-cache.mjs
|
|
1406
|
+
/** Every repo cache under the work root. */
|
|
1407
|
+
function repoCaches(workRoot) {
|
|
1408
|
+
const root = path.join(workRoot, ".cache");
|
|
1409
|
+
const out = [];
|
|
1410
|
+
for (const host of subdirs(root)) for (const owner of subdirs(path.join(root, host))) for (const name of subdirs(path.join(root, host, owner))) if (name.endsWith(".git")) out.push(path.join(root, host, owner, name));
|
|
1411
|
+
return out;
|
|
1412
|
+
}
|
|
1413
|
+
function subdirs(dir) {
|
|
1414
|
+
try {
|
|
1415
|
+
return fs.readdirSync(dir, { withFileTypes: true }).filter((e) => e.isDirectory()).map((e) => e.name);
|
|
1416
|
+
} catch {
|
|
1417
|
+
return [];
|
|
1418
|
+
}
|
|
1419
|
+
}
|
|
1420
|
+
/** A cache's `core.untrackedCache`: true, false, or undefined (unset, or
|
|
1421
|
+
* git's `keep`). Read from its config file rather than a git process per
|
|
1422
|
+
* repo: the doctor asks on every Settings load. */
|
|
1423
|
+
function untrackedCacheSetting(cache) {
|
|
1424
|
+
let text;
|
|
1425
|
+
try {
|
|
1426
|
+
text = fs.readFileSync(path.join(cache, "config"), "utf8");
|
|
1427
|
+
} catch {
|
|
1428
|
+
return;
|
|
1429
|
+
}
|
|
1430
|
+
let inCore = false;
|
|
1431
|
+
let value;
|
|
1432
|
+
for (const raw of text.split("\n")) {
|
|
1433
|
+
const line = raw.replace(/[#;].*$/, "").trim();
|
|
1434
|
+
const section = /^\[\s*([^\]\s"]+)/.exec(line);
|
|
1435
|
+
if (section) {
|
|
1436
|
+
inCore = section[1].toLowerCase() === "core";
|
|
1437
|
+
continue;
|
|
1438
|
+
}
|
|
1439
|
+
const kv = inCore && /^untrackedcache\s*=\s*(.*)$/i.exec(line);
|
|
1440
|
+
if (kv) value = kv[1].trim().toLowerCase();
|
|
1441
|
+
}
|
|
1442
|
+
if ([
|
|
1443
|
+
"true",
|
|
1444
|
+
"yes",
|
|
1445
|
+
"on",
|
|
1446
|
+
"1"
|
|
1447
|
+
].includes(value)) return true;
|
|
1448
|
+
if ([
|
|
1449
|
+
"false",
|
|
1450
|
+
"no",
|
|
1451
|
+
"off",
|
|
1452
|
+
"0"
|
|
1453
|
+
].includes(value)) return false;
|
|
1454
|
+
}
|
|
1455
|
+
/** Filesystems whose directory mtimes the cache cannot trust. Linux's
|
|
1456
|
+
* statfs magic numbers. */
|
|
1457
|
+
var LINUX_UNSAFE = /* @__PURE__ */ new Map([
|
|
1458
|
+
[26985, "NFS"],
|
|
1459
|
+
[20859, "SMB"],
|
|
1460
|
+
[4266872130, "SMB2"],
|
|
1461
|
+
[4283649346, "CIFS"],
|
|
1462
|
+
[1702057286, "FUSE"],
|
|
1463
|
+
[16914839, "9p"],
|
|
1464
|
+
[12805120, "Ceph"],
|
|
1465
|
+
[1397113167, "AFS"],
|
|
1466
|
+
[19780, "FAT"],
|
|
1467
|
+
[538032816, "exFAT"]
|
|
1468
|
+
]);
|
|
1469
|
+
/** macOS's by `mount`'s type name: network, FUSE, and those with
|
|
1470
|
+
* second-or-coarser mtimes (HFS+, FAT). */
|
|
1471
|
+
var MAC_UNSAFE = /^(nfs|smbfs|afpfs|webdav|cifs|macfuse|osxfuse|fuse.*|hfs|msdos|exfat)$/;
|
|
1472
|
+
/**
|
|
1473
|
+
* Whether the filesystem holding `dir` can keep the cache honest, from its
|
|
1474
|
+
* type alone (cheap: the doctor's). `{ ok, type }`, `type` a name where
|
|
1475
|
+
* one is known.
|
|
1476
|
+
*/
|
|
1477
|
+
function filesystemVerdict(dir, platform = process.platform) {
|
|
1478
|
+
if (platform === "linux") try {
|
|
1479
|
+
const { type } = fs.statfsSync(dir);
|
|
1480
|
+
const bad = LINUX_UNSAFE.get(type >>> 0);
|
|
1481
|
+
return bad ? {
|
|
1482
|
+
ok: false,
|
|
1483
|
+
type: bad
|
|
1484
|
+
} : { ok: true };
|
|
1485
|
+
} catch {
|
|
1486
|
+
return {
|
|
1487
|
+
ok: false,
|
|
1488
|
+
type: "unknown"
|
|
1489
|
+
};
|
|
1490
|
+
}
|
|
1491
|
+
if (platform === "darwin") {
|
|
1492
|
+
const mount = macMount(dir);
|
|
1493
|
+
if (!mount) return {
|
|
1494
|
+
ok: false,
|
|
1495
|
+
type: "unknown"
|
|
1496
|
+
};
|
|
1497
|
+
if (!mount.local) return {
|
|
1498
|
+
ok: false,
|
|
1499
|
+
type: `${mount.type} (not local)`
|
|
1500
|
+
};
|
|
1501
|
+
return MAC_UNSAFE.test(mount.type) ? {
|
|
1502
|
+
ok: false,
|
|
1503
|
+
type: mount.type
|
|
1504
|
+
} : {
|
|
1505
|
+
ok: true,
|
|
1506
|
+
type: mount.type
|
|
1507
|
+
};
|
|
1508
|
+
}
|
|
1509
|
+
return {
|
|
1510
|
+
ok: false,
|
|
1511
|
+
type: platform
|
|
1512
|
+
};
|
|
1513
|
+
}
|
|
1514
|
+
/** The mount holding `dir` on macOS. */
|
|
1515
|
+
function macMount(dir) {
|
|
1516
|
+
let out;
|
|
1517
|
+
try {
|
|
1518
|
+
out = execFileSync("/sbin/mount", { encoding: "utf8" });
|
|
1519
|
+
} catch {
|
|
1520
|
+
return null;
|
|
1521
|
+
}
|
|
1522
|
+
let at = dir;
|
|
1523
|
+
try {
|
|
1524
|
+
at = fs.realpathSync(dir);
|
|
1525
|
+
} catch {}
|
|
1526
|
+
return mountOf(at, out);
|
|
1527
|
+
}
|
|
1528
|
+
/** Of `mount`'s `<dev> on <path> (<type>, local, …)` lines, the one whose
|
|
1529
|
+
* mount point holds `at` most closely: `{ point, type, local }`. */
|
|
1530
|
+
function mountOf(at, mountOutput) {
|
|
1531
|
+
let best = null;
|
|
1532
|
+
for (const line of mountOutput.split("\n")) {
|
|
1533
|
+
const m = / on (.+) \(([^,)]+)((?:,[^)]*)?)\)$/.exec(line);
|
|
1534
|
+
if (!m) continue;
|
|
1535
|
+
const point = m[1];
|
|
1536
|
+
if ((at === point || at.startsWith(point.endsWith("/") ? point : point + "/")) && (!best || point.length > best.point.length)) best = {
|
|
1537
|
+
point,
|
|
1538
|
+
type: m[2].trim(),
|
|
1539
|
+
local: /\blocal\b/.test(m[3])
|
|
1540
|
+
};
|
|
1541
|
+
}
|
|
1542
|
+
return best;
|
|
1543
|
+
}
|
|
1544
|
+
/**
|
|
1545
|
+
* git's own check that directory mtimes behave, run in a throwaway repo
|
|
1546
|
+
* made on the same filesystem as the workspaces (inside the work root),
|
|
1547
|
+
* never in a checkout. It takes seconds, mostly waiting on the clock.
|
|
1548
|
+
*/
|
|
1549
|
+
async function gitCheckPasses(workRoot) {
|
|
1550
|
+
let dir;
|
|
1551
|
+
try {
|
|
1552
|
+
dir = fs.mkdtempSync(path.join(workRoot, ".untracked-cache-check-"));
|
|
1553
|
+
const run = (args) => new Promise((resolve) => spawn("git", args, {
|
|
1554
|
+
cwd: dir,
|
|
1555
|
+
stdio: "ignore"
|
|
1556
|
+
}).on("exit", (code) => resolve(code === 0)).on("error", () => resolve(false)));
|
|
1557
|
+
return await run(["init", "--quiet"]) && await run(["update-index", "--test-untracked-cache"]);
|
|
1558
|
+
} catch {
|
|
1559
|
+
return false;
|
|
1560
|
+
} finally {
|
|
1561
|
+
if (dir) fs.rmSync(dir, {
|
|
1562
|
+
recursive: true,
|
|
1563
|
+
force: true
|
|
1564
|
+
});
|
|
1565
|
+
}
|
|
1566
|
+
}
|
|
1567
|
+
/** The user's own `core.untrackedCache` (global or system): true, false,
|
|
1568
|
+
* or undefined. False is their answer for every repo, work's included. */
|
|
1569
|
+
function userSetting() {
|
|
1570
|
+
try {
|
|
1571
|
+
const out = execFileSync("git", [
|
|
1572
|
+
"config",
|
|
1573
|
+
"--get",
|
|
1574
|
+
"--type=bool",
|
|
1575
|
+
"core.untrackedCache"
|
|
1576
|
+
], {
|
|
1577
|
+
cwd: os.tmpdir(),
|
|
1578
|
+
encoding: "utf8",
|
|
1579
|
+
stdio: [
|
|
1580
|
+
"ignore",
|
|
1581
|
+
"pipe",
|
|
1582
|
+
"ignore"
|
|
1583
|
+
]
|
|
1584
|
+
}).trim();
|
|
1585
|
+
return out === "true" ? true : out === "false" ? false : void 0;
|
|
1586
|
+
} catch {
|
|
1587
|
+
return;
|
|
1588
|
+
}
|
|
1589
|
+
}
|
|
1590
|
+
/**
|
|
1591
|
+
* Where work's caches stand. Null with no caches yet. `off` are the caches
|
|
1592
|
+
* with it unset (a `false` set by hand is left alone and not counted).
|
|
1593
|
+
*/
|
|
1594
|
+
function untrackedCacheProbe({ workRoot } = {}) {
|
|
1595
|
+
const root = workRoot || defaultWorkRoot();
|
|
1596
|
+
const caches = repoCaches(root);
|
|
1597
|
+
if (!caches.length) return null;
|
|
1598
|
+
const off = caches.filter((c) => untrackedCacheSetting(c) === void 0);
|
|
1599
|
+
const on = caches.filter((c) => untrackedCacheSetting(c) === true).length;
|
|
1600
|
+
return {
|
|
1601
|
+
workRoot: root,
|
|
1602
|
+
caches: caches.length,
|
|
1603
|
+
on,
|
|
1604
|
+
off,
|
|
1605
|
+
filesystem: filesystemVerdict(root),
|
|
1606
|
+
declined: userSetting() === false
|
|
1607
|
+
};
|
|
1608
|
+
}
|
|
1609
|
+
/** Turn it on in each of `caches` (their worktrees share the setting).
|
|
1610
|
+
* The caches it could not set. */
|
|
1611
|
+
async function enableUntrackedCache(caches) {
|
|
1612
|
+
const failed = [];
|
|
1613
|
+
await Promise.all(caches.map((cache) => new Promise((resolve) => execFile("git", [
|
|
1614
|
+
"config",
|
|
1615
|
+
"--file",
|
|
1616
|
+
path.join(cache, "config"),
|
|
1617
|
+
"core.untrackedCache",
|
|
1618
|
+
"true"
|
|
1619
|
+
], (err) => {
|
|
1620
|
+
if (err) failed.push(cache);
|
|
1621
|
+
resolve();
|
|
1622
|
+
}))));
|
|
1623
|
+
return failed;
|
|
1624
|
+
}
|
|
1625
|
+
/** Whether work may turn it on under `workRoot`: the user has not said
|
|
1626
|
+
* no, the filesystem is one it suits, and git's own check passes there. */
|
|
1627
|
+
async function untrackedCacheAllowed(workRoot) {
|
|
1628
|
+
if (userSetting() === false) return false;
|
|
1629
|
+
if (!filesystemVerdict(workRoot).ok) return false;
|
|
1630
|
+
return gitCheckPasses(workRoot);
|
|
1631
|
+
}
|
|
1632
|
+
/** The caches with it unset (a false set by hand stays). */
|
|
1633
|
+
function unsetCaches(workRoot) {
|
|
1634
|
+
return repoCaches(workRoot).filter((c) => untrackedCacheSetting(c) === void 0);
|
|
1635
|
+
}
|
|
1636
|
+
function defaultWorkRoot() {
|
|
1637
|
+
return process.env.WORK_ROOT || path.join(os.homedir(), "work");
|
|
1638
|
+
}
|
|
1639
|
+
//#endregion
|
|
1405
1640
|
//#region lib/setup/doctor.mjs
|
|
1406
1641
|
var home = os.homedir();
|
|
1407
1642
|
/** Agent CLI install dirs from meta (`~` → home). Same list the service and
|
|
@@ -1812,7 +2047,8 @@ async function doctor(opts = {}) {
|
|
|
1812
2047
|
awake,
|
|
1813
2048
|
staleGhHelpers: helpers,
|
|
1814
2049
|
tailscale,
|
|
1815
|
-
firewall
|
|
2050
|
+
firewall,
|
|
2051
|
+
untrackedCache: untrackedCacheProbe({ workRoot: opts.workRoot })
|
|
1816
2052
|
};
|
|
1817
2053
|
}
|
|
1818
2054
|
//#endregion
|
|
@@ -8077,7 +8313,7 @@ function publishChange(sessionId) {
|
|
|
8077
8313
|
const row = get("SELECT workspace_id FROM sessions WHERE id = ?", sessionId);
|
|
8078
8314
|
if (row?.workspace_id) {
|
|
8079
8315
|
const workspaceId = row.workspace_id;
|
|
8080
|
-
import("./
|
|
8316
|
+
import("./_QKOzplQZ.js").then((m) => m.notifySessionsChanged(workspaceId));
|
|
8081
8317
|
return;
|
|
8082
8318
|
}
|
|
8083
8319
|
publish("sessions.changed");
|
|
@@ -10620,4 +10856,4 @@ function sleep(ms) {
|
|
|
10620
10856
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
10621
10857
|
}
|
|
10622
10858
|
//#endregion
|
|
10623
|
-
export { deleteSubscription as $,
|
|
10859
|
+
export { deleteSubscription as $, git as $t, blankRow as A, enableUntrackedCache as At, setSessionViewers as B, toolById as Bt, tmuxWasStarted as C, ghKnownHosts as Ct, inside as D, stableGh as Dt, reportsWorking as E, setupPath as Et, noteBackground as F, PROJECT_TOOLS as Ft, agentLabel as G, httpError as Gt, agentBadge as H, FRAME_ANCESTORS as Ht, noteUserAnswered as I, TOOLS as It, getInstance as J, db as Jt, agentMeta as K, readBody as Kt, onPhaseChange as L, agentById as Lt, clearAgentPhase as M, untrackedCacheAllowed as Mt, hookPhase as N, firewallProbe as Nt, realInside as O, tilde as Ot, hookReportedAt as P, DEFAULT_GITHUB_HOST as Pt, setInstance as Q, gh as Qt, setAgentPhase as R, agentLabel$1 as Rt, tmuxName as S, doctor as St, readHookPayload as T, miseVersions as Tt, agentFamily as U, FRAME_HEADERS as Ut, settleQuietWorking as V, applyPrefChange as Vt, agentFromCommand as W, checked as Wt, manifest as X, workspacePath as Xt, iconSvg as Y, get as Yt, normalizeAccent as Z, TMUX_SOCKET as Zt, notifySessionsChanged as _, preferredAgent as _t, creationOf as a, swr as an, publishJson as at, sendToSession as b, setSetting as bt, forgetPanes as c, PREF_MAX as ct, killWorkspaceSessions as d, allPrefs as dt, gitEnv as en, pushPublicKey as et, listPanes as f, changePref as ft, newSessionArgs as g, getSetting as gt, markTmuxStarted as h, enabledAgents as ht, createSession as i, shared as in, publish as it, agentPhase as j, unsetCaches as jt, realInsideSync as k, which as kt, getSession as l, WORKSPACE_PREFS as lt, listSessions as m, disabledAgents as mt, cleanEnv as n, tmux as nn, sendPush as nt, disposeSessions as o, withLock as on, subscribe as ot, listPanesWithin as p, deleteWorkspacePrefs as pt, ACCENT_RE as q, all as qt, clearTmuxStarted as r, config as rn, validSubscription as rt, ensureTmuxServer as s, subscriberCount as st, beginCreation as t, run$2 as tn, saveSubscription as tt, killSession as u, agentChoices as ut, panePids as v, setDisabledAgents as vt, AGENTS as w, miseInstalls as wt, sessionStates as x, discoverAgents as xt, renameSession as y, setPref as yt, setScrapedPhase as z, catalogPin as zt };
|
|
@@ -38,7 +38,7 @@ var iconBtnXs = "_bo _m";
|
|
|
38
38
|
var iconBtnRow = "_bp _m";
|
|
39
39
|
var iconBtnLg = "_bq _m";
|
|
40
40
|
var chipBtn = "_br _m";
|
|
41
|
-
var tocDot = "
|
|
41
|
+
var tocDot = "_bJ _U";
|
|
42
42
|
//#endregion
|
|
43
43
|
//#region src/styles/tokens.css.ts
|
|
44
44
|
var color = {
|
|
@@ -73,97 +73,97 @@ var iconSize = {
|
|
|
73
73
|
xl: 18
|
|
74
74
|
};
|
|
75
75
|
var toastKind = {
|
|
76
|
-
error: "
|
|
77
|
-
warn: "
|
|
78
|
-
info: "
|
|
76
|
+
error: "_cy",
|
|
77
|
+
warn: "_cz",
|
|
78
|
+
info: "_cA"
|
|
79
79
|
};
|
|
80
80
|
var toastTitle = {
|
|
81
|
-
error: "
|
|
82
|
-
warn: "
|
|
83
|
-
info: "
|
|
81
|
+
error: "_cB",
|
|
82
|
+
warn: "_cC",
|
|
83
|
+
info: "_cD"
|
|
84
84
|
};
|
|
85
85
|
//#endregion
|
|
86
86
|
//#region src/tags/settings-agents.css.ts
|
|
87
|
-
var agentRow = "
|
|
88
|
-
var list$3 = "
|
|
89
|
-
var metaChip = "
|
|
90
|
-
var sectionCount = "
|
|
91
|
-
var usageNote = "
|
|
92
|
-
var pop$2 = "
|
|
93
|
-
var spinner = "
|
|
94
|
-
var toolLead = "
|
|
95
|
-
var name$4 = "
|
|
96
|
-
var desc$1 = "
|
|
87
|
+
var agentRow = "_f4 _dR";
|
|
88
|
+
var list$3 = "_dV _c5 _dQ _dT";
|
|
89
|
+
var metaChip = "_d9 _bi _bh";
|
|
90
|
+
var sectionCount = "_c2 _9 __";
|
|
91
|
+
var usageNote = "_kd _bh";
|
|
92
|
+
var pop$2 = "_e8 _bw";
|
|
93
|
+
var spinner = "_fa _bm _2";
|
|
94
|
+
var toolLead = "_eT _d4";
|
|
95
|
+
var name$4 = "_gN _d4";
|
|
96
|
+
var desc$1 = "_gO _d5";
|
|
97
97
|
//#endregion
|
|
98
98
|
//#region src/tags/lsp-add-dialog.css.ts
|
|
99
|
-
var addDlg = "
|
|
100
|
-
var key$1 = "
|
|
101
|
-
var addTile = "
|
|
102
|
-
var field$2 = "
|
|
103
|
-
var keyField = "
|
|
104
|
-
var labelField = "
|
|
105
|
-
var detailsToggle = "
|
|
106
|
-
var themeSeg = "
|
|
107
|
-
var checkList = "
|
|
99
|
+
var addDlg = "_jE _bQ";
|
|
100
|
+
var key$1 = "_jN _jL";
|
|
101
|
+
var addTile = "_jP _jL";
|
|
102
|
+
var field$2 = "_j0 _bj";
|
|
103
|
+
var keyField = "_j1 _j0 _bj";
|
|
104
|
+
var labelField = "_j2 _j0 _bj";
|
|
105
|
+
var detailsToggle = "_fT _P";
|
|
106
|
+
var themeSeg = "_fo _bA";
|
|
107
|
+
var checkList = "_el _c3";
|
|
108
108
|
//#endregion
|
|
109
109
|
//#region src/tags/prompt-dialog.css.ts
|
|
110
|
-
var promptDlg = "
|
|
111
|
-
var item$1 = "
|
|
112
|
-
var glance = "
|
|
110
|
+
var promptDlg = "_bW _bQ";
|
|
111
|
+
var item$1 = "_dN _m";
|
|
112
|
+
var glance = "_hx _m";
|
|
113
113
|
//#endregion
|
|
114
114
|
//#region src/tags/side-nav.css.ts
|
|
115
|
-
var iconBtn = "
|
|
116
|
-
var settingsDot = "
|
|
117
|
-
var notifyBtn = "
|
|
115
|
+
var iconBtn = "_cJ _m";
|
|
116
|
+
var settingsDot = "_cK _bz";
|
|
117
|
+
var notifyBtn = "_cP _m";
|
|
118
118
|
//#endregion
|
|
119
119
|
//#region src/styles/session-pop.css.ts
|
|
120
|
-
var sessionPop = "
|
|
121
|
-
var sessionPopBtn = "
|
|
122
|
-
var wsBtn = "
|
|
123
|
-
var rowIcon = "
|
|
124
|
-
var prChip = "
|
|
125
|
-
var readyChip = "
|
|
126
|
-
var prDot = "
|
|
120
|
+
var sessionPop = "_cR _bw";
|
|
121
|
+
var sessionPopBtn = "_cS _4";
|
|
122
|
+
var wsBtn = "_hE _4";
|
|
123
|
+
var rowIcon = "_hG _bo _m";
|
|
124
|
+
var prChip = "_ma _v _l5";
|
|
125
|
+
var readyChip = "_mb _v";
|
|
126
|
+
var prDot = "_md _mc";
|
|
127
127
|
//#endregion
|
|
128
128
|
//#region src/tags/port-chip.css.ts
|
|
129
|
-
var port = "
|
|
130
|
-
var open = "
|
|
131
|
-
var action = "
|
|
132
|
-
var toggle = "
|
|
133
|
-
var fold = "
|
|
134
|
-
var item = "
|
|
135
|
-
var menu = "
|
|
136
|
-
var menuItem = "
|
|
137
|
-
var findBtn$1 = "
|
|
138
|
-
var tool = "
|
|
139
|
-
var pop$1 = "
|
|
140
|
-
var fileFilter = "
|
|
141
|
-
var findInput = "
|
|
142
|
-
var keybarIconBtn = "
|
|
143
|
-
var repoTitle = "
|
|
144
|
-
var input = "
|
|
145
|
-
var group = "
|
|
146
|
-
var hint$1 = "
|
|
147
|
-
var sheetDir = "
|
|
148
|
-
var upBtn = "
|
|
149
|
-
var findBtn = "
|
|
150
|
-
var goBtn = "
|
|
151
|
-
var note = "
|
|
129
|
+
var port = "_nH _v _l5";
|
|
130
|
+
var open = "_lc _4";
|
|
131
|
+
var action = "_lg _br _m";
|
|
132
|
+
var toggle = "_ew _P";
|
|
133
|
+
var fold = "_ex _dS";
|
|
134
|
+
var item = "_kB _4";
|
|
135
|
+
var menu = "_lE _cR _bw";
|
|
136
|
+
var menuItem = "_lG _4";
|
|
137
|
+
var findBtn$1 = "_i4 _h4 _bp _m";
|
|
138
|
+
var tool = "_h4 _bp _m";
|
|
139
|
+
var pop$1 = "_ms _cR _bw";
|
|
140
|
+
var fileFilter = "_nL _o";
|
|
141
|
+
var findInput = "_iN _o";
|
|
142
|
+
var keybarIconBtn = "_iW _br _m";
|
|
143
|
+
var repoTitle = "_mv _L";
|
|
144
|
+
var input = "_df _o";
|
|
145
|
+
var group = "_di _P";
|
|
146
|
+
var hint$1 = "_k9 _9 _M";
|
|
147
|
+
var sheetDir = "_nt _by";
|
|
148
|
+
var upBtn = "_il _bp _m";
|
|
149
|
+
var findBtn = "_ip _h4 _bp _m";
|
|
150
|
+
var goBtn = "_iq _h4 _bp _m";
|
|
151
|
+
var note = "_lt _bh";
|
|
152
152
|
//#endregion
|
|
153
153
|
//#region src/tags/manage-workspace.css.ts
|
|
154
|
-
var procCmd = "
|
|
155
|
-
var factCopy = "
|
|
156
|
-
var resultRow = "
|
|
157
|
-
var resultBranch = "
|
|
158
|
-
var urlAction = "
|
|
159
|
-
var curRow = "
|
|
154
|
+
var procCmd = "_hS _d4";
|
|
155
|
+
var factCopy = "_hZ _br _m";
|
|
156
|
+
var resultRow = "_kI _4";
|
|
157
|
+
var resultBranch = "_kJ _d9 _bi _bh _bo _m";
|
|
158
|
+
var urlAction = "_kK _d9 _bi _bh _d_";
|
|
159
|
+
var curRow = "_hu _dY";
|
|
160
160
|
//#endregion
|
|
161
161
|
//#region src/tags/join-dialog.css.ts
|
|
162
|
-
var dlg = "
|
|
163
|
-
var hint = "
|
|
164
|
-
var kbtn = "
|
|
165
|
-
var repeat = "
|
|
166
|
-
var dpadUser = "
|
|
167
|
-
var dpadEsc = "
|
|
162
|
+
var dlg = "_kX _bQ";
|
|
163
|
+
var hint = "_kY _bh";
|
|
164
|
+
var kbtn = "_dB _bq _m";
|
|
165
|
+
var repeat = "_dE _dD";
|
|
166
|
+
var dpadUser = "_dH _dD";
|
|
167
|
+
var dpadEsc = "_dI _dD";
|
|
168
168
|
//#endregion
|
|
169
169
|
export { field$2 as $, item as A, tone as At, wsBtn as B, keybarIconBtn as C, glyphBadgeNum as Ct, findBtn$1 as D, inputLg as Dt, tool as E, iconBtnXs as Et, port as F, settingsDot as G, sessionPopBtn as H, prChip as I, promptDlg as J, glance as K, prDot as L, toggle as M, usageInk as Mt, action as N, menu as O, phaseIcon as Ot, open as P, addTile as Q, readyChip as R, findInput as S, chipBtn as St, pop$1 as T, iconBtnRow as Tt, iconBtn as U, sessionPop as V, notifyBtn as W, themeSeg as X, checkList as Y, detailsToggle as Z, sheetDir as _, iconSize as _t, dlg as a, name$4 as at, input as b, btnLg as bt, resultBranch as c, spinner as ct, factCopy as d, list$3 as dt, key$1 as et, procCmd as f, metaChip as ft, upBtn as g, color as gt, goBtn as h, toastTitle as ht, repeat as i, desc$1 as it, fold as j, usageFill as jt, menuItem as k, prTone as kt, resultRow as l, usageNote as lt, findBtn as m, toastKind as mt, dpadUser as n, labelField as nt, hint as o, toolLead as ot, note as p, agentRow as pt, item$1 as q, kbtn as r, addDlg as rt, curRow as s, pop$2 as st, dpadEsc as t, keyField as tt, urlAction as u, sectionCount as ut, hint$1 as v, sans as vt, fileFilter as w, iconBtnLg as wt, repoTitle as x, btnSm as xt, group as y, tocDot as yt, rowIcon as z };
|