@dylanpiercey/work 0.0.116 → 0.0.118
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/bin/work.mjs +7 -29
- package/dist/_BIDn_RW1.js +2 -0
- package/dist/{_BHPrqqev.js → _CeVZfkIY.js} +95 -79
- package/dist/{_CmheBYWi.js → _DE2RUdbF.js} +43 -26
- package/dist/{_CEKO5mam.js → _EzN3zMKL.js} +39 -39
- package/dist/index.mjs +555 -526
- package/dist/public/assets/{_C5GxdpIx.js → _5MxjuuKr.js} +1 -1
- package/dist/public/assets/_5MxjuuKr.js.br +0 -0
- package/dist/public/assets/{_CmwkZmX02.js → _6hN6Ymx42.js} +1 -1
- package/dist/public/assets/_6hN6Ymx42.js.br +0 -0
- package/dist/public/assets/{_DbphB3_Y.js → _6nWMLOH4.js} +1 -1
- package/dist/public/assets/_6nWMLOH4.js.br +0 -0
- package/dist/public/assets/{_BNuVdL222.js → _A2tLqg9y2.js} +1 -1
- package/dist/public/assets/_A2tLqg9y2.js.br +0 -0
- package/dist/public/assets/{_DJfRmyos.js → _Ar4UEz40.js} +1 -1
- package/dist/public/assets/_Ar4UEz40.js.br +0 -0
- package/dist/public/assets/{_DwnEEAN3.js → _B-wISkbs.js} +1 -1
- package/dist/public/assets/_B-wISkbs.js.br +0 -0
- package/dist/public/assets/{_DvlwodnH2.js → _B0HJN5ud2.js} +1 -1
- package/dist/public/assets/_B0HJN5ud2.js.br +0 -0
- package/dist/public/assets/{_BlLpqMok.js → _B6RbG5-A.js} +1 -1
- package/dist/public/assets/_B6RbG5-A.js.br +0 -0
- package/dist/public/assets/{_Cy6vUvOf.js → _B7cCygGe.js} +1 -1
- package/dist/public/assets/_B7cCygGe.js.br +0 -0
- package/dist/public/assets/{_CXfVimxX2.js → _B7n-BASn2.js} +1 -1
- package/dist/public/assets/{_BFDzSRUb.js → _BBPUNQgX.js} +1 -1
- package/dist/public/assets/_BBPUNQgX.js.br +0 -0
- package/dist/public/assets/{_BbZSZ8_I2.js → _BHhGmIxX2.js} +1 -1
- package/dist/public/assets/_BHhGmIxX2.js.br +0 -0
- package/dist/public/assets/{_bNejHwcl2.js → _BJjI-m6s2.js} +1 -1
- package/dist/public/assets/_BJjI-m6s2.js.br +0 -0
- package/dist/public/assets/{_BE2qRsPs.js → _BJz-Y1HI.js} +1 -1
- package/dist/public/assets/_BJz-Y1HI.js.br +0 -0
- package/dist/public/assets/{_CSBn-Hvt2.js → _BLeHC7zC2.js} +1 -1
- package/dist/public/assets/_BLeHC7zC2.js.br +0 -0
- package/dist/public/assets/{_zGSRZWQr.js → _BO_BKeKC.js} +1 -1
- package/dist/public/assets/_BO_BKeKC.js.br +0 -0
- package/dist/public/assets/{_DM1EXBbo.js → _BVhnP3T6.js} +1 -1
- package/dist/public/assets/_BVhnP3T6.js.br +0 -0
- package/dist/public/assets/{_DB_C0F-Z2.js → _BXK6LHvo2.js} +1 -1
- package/dist/public/assets/_BXK6LHvo2.js.br +0 -0
- package/dist/public/assets/{_CfRbL_Ta2.js → _BYPDDEEO2.js} +1 -1
- package/dist/public/assets/_BYPDDEEO2.js.br +0 -0
- package/dist/public/assets/{_BZou6DQD.js → _BbB3wFGa.js} +1 -1
- package/dist/public/assets/_BbB3wFGa.js.br +0 -0
- package/dist/public/assets/{_CASdx3AE.js → _BicOIlC8.js} +1 -1
- package/dist/public/assets/_BicOIlC8.js.br +0 -0
- package/dist/public/assets/{_DzazkU0O.js → _BjVuWYXf.js} +1 -1
- package/dist/public/assets/_BjVuWYXf.js.br +0 -0
- package/dist/public/assets/{_BYis3bU3.js → _BjeXgSse.js} +1 -1
- package/dist/public/assets/_BjeXgSse.js.br +0 -0
- package/dist/public/assets/{_DmHNNuUl2.js → _Bk7GDGa82.js} +1 -1
- package/dist/public/assets/_Bk7GDGa82.js.br +0 -0
- package/dist/public/assets/{_CDwswGat.js → _BmJ9IUv4.js} +1 -1
- package/dist/public/assets/_BmJ9IUv4.js.br +0 -0
- package/dist/public/assets/{_chJ5r2KH2.js → _BtxdHY0V2.js} +1 -1
- package/dist/public/assets/_BtxdHY0V2.js.br +0 -0
- package/dist/public/assets/{_DAcB8FCB.js → _Bu7Rb2KV.js} +1 -1
- package/dist/public/assets/_Bu7Rb2KV.js.br +0 -0
- package/dist/public/assets/{_R6H7Mgwp.js → _BzIW49zC.js} +1 -1
- package/dist/public/assets/_BzIW49zC.js.br +0 -0
- package/dist/public/assets/{_p7Nk6TN_.js → _C1oox0_T.js} +1 -1
- package/dist/public/assets/_C1oox0_T.js.br +0 -0
- package/dist/public/assets/{_BzAD6TBo.js → _C45kLCWD.js} +8 -8
- package/dist/public/assets/_C45kLCWD.js.br +0 -0
- package/dist/public/assets/{_ClccdQK9.js → _C4B_GVHB.js} +1 -1
- package/dist/public/assets/_C4B_GVHB.js.br +0 -0
- package/dist/public/assets/{_BqkNbZMs.js → _C4tiWhG4.js} +1 -1
- package/dist/public/assets/_C4tiWhG4.js.br +0 -0
- package/dist/public/assets/{_C9TtAENI.js → _C7wuWtJ1.js} +1 -1
- package/dist/public/assets/{_DAHhUiki.js → _CE6eJWkd.js} +1 -1
- package/dist/public/assets/_CE6eJWkd.js.br +0 -0
- package/dist/public/assets/{_BY4vFN-X.js → _CHWTX_c6.js} +1 -1
- package/dist/public/assets/_CHWTX_c6.js.br +0 -0
- package/dist/public/assets/{_B0e3Ak7A.js → _CK9tV5oJ.js} +1 -1
- package/dist/public/assets/_CK9tV5oJ.js.br +0 -0
- package/dist/public/assets/{_B5uwAcaB.js → _CQRIuNJi.js} +1 -1
- package/dist/public/assets/_CQRIuNJi.js.br +0 -0
- package/dist/public/assets/{_B4Nu-wag.js → _CUgERK7S.js} +1 -1
- package/dist/public/assets/_CUgERK7S.js.br +0 -0
- package/dist/public/assets/{_B_qJHbwz.js → _CV5RGu5i.js} +1 -1
- package/dist/public/assets/_CV5RGu5i.js.br +0 -0
- package/dist/public/assets/{_JMdaap6W.js → _CVtWHYIm.js} +21 -21
- package/dist/public/assets/_CVtWHYIm.js.br +0 -0
- package/dist/public/assets/{_BB3PfRLa2.js → _CYUpTPHg2.js} +1 -1
- package/dist/public/assets/_CYUpTPHg2.js.br +0 -0
- package/dist/public/assets/{_mbrwXzyQ.js → _CYemOBLN.js} +1 -1
- package/dist/public/assets/_CYemOBLN.js.br +0 -0
- package/dist/public/assets/{_Ht8V87dw2.js → _CZ0_xhSs2.js} +1 -1
- package/dist/public/assets/{_CMtRRt5X2.js → _C_mUeGVh2.js} +1 -1
- package/dist/public/assets/_C_mUeGVh2.js.br +0 -0
- package/dist/public/assets/{_D5BeGelx.js → _Cb-dgrCB.js} +1 -1
- package/dist/public/assets/_Cb-dgrCB.js.br +0 -0
- package/dist/public/assets/{_C2NMRiCh.js → _CdAkLhxG.js} +1 -1
- package/dist/public/assets/_CdAkLhxG.js.br +0 -0
- package/dist/public/assets/{_Da_nvZ5y.js → _Cf4M5kpG.js} +1 -1
- package/dist/public/assets/_Cf4M5kpG.js.br +0 -0
- package/dist/public/assets/{_BaJXK68-.js → _CoGdSkvu.js} +1 -1
- package/dist/public/assets/_CoGdSkvu.js.br +0 -0
- package/dist/public/assets/{_ChrrA5fF.js → _Cpm5RoWi.js} +1 -1
- package/dist/public/assets/_Cpm5RoWi.js.br +0 -0
- package/dist/public/assets/{_CbbUwTEJ.js → _CpuBCvd6.js} +1 -1
- package/dist/public/assets/_CpuBCvd6.js.br +0 -0
- package/dist/public/assets/{_CTlZ1Lkv2.js → _CsM5ftwz2.js} +1 -1
- package/dist/public/assets/_CsM5ftwz2.js.br +0 -0
- package/dist/public/assets/{_Ddq_uzCH2.js → _CtcH3ZyQ2.js} +1 -1
- package/dist/public/assets/_CtcH3ZyQ2.js.br +0 -0
- package/dist/public/assets/{_DN-QtD1c.js → _CyDfS08K.js} +1 -1
- package/dist/public/assets/_CyDfS08K.js.br +0 -0
- package/dist/public/assets/{_BshAqMBd2.js → _D5qcTAVE2.js} +1 -1
- package/dist/public/assets/_D5qcTAVE2.js.br +0 -0
- package/dist/public/assets/{_BbXYlhz_2.js → _DAGSDF8g2.js} +1 -1
- package/dist/public/assets/_DAGSDF8g2.js.br +0 -0
- package/dist/public/assets/{_CXKoguEA.js → _DIBThzVN.js} +1 -1
- package/dist/public/assets/_DIBThzVN.js.br +0 -0
- package/dist/public/assets/{_BVkMt2PY2.js → _DJEzPcA82.js} +1 -1
- package/dist/public/assets/_DJEzPcA82.js.br +0 -0
- package/dist/public/assets/{_DCM_uGbe.js → _DLBE7zID.js} +1 -1
- package/dist/public/assets/_DLBE7zID.js.br +0 -0
- package/dist/public/assets/{_C6_jrqyQ2.js → _DP-5FfqK2.js} +1 -1
- package/dist/public/assets/_DP-5FfqK2.js.br +0 -0
- package/dist/public/assets/{_Cj0z289t.js → _DglnXAKo.js} +1 -1
- package/dist/public/assets/_DglnXAKo.js.br +0 -0
- package/dist/public/assets/{_BynYlMA5.js → _Dh3HoKhq.js} +1 -1
- package/dist/public/assets/_Dh3HoKhq.js.br +0 -0
- package/dist/public/assets/{_NlAtY9z9.js → _DkxpDwXy.js} +1 -1
- package/dist/public/assets/_DkxpDwXy.js.br +0 -0
- package/dist/public/assets/{_BomcrPR22.js → _DoWF8ByT2.js} +1 -1
- package/dist/public/assets/_DoWF8ByT2.js.br +0 -0
- package/dist/public/assets/{_Rwpt_eYd.js → _HSgzwAmZ.js} +1 -1
- package/dist/public/assets/_HSgzwAmZ.js.br +0 -0
- package/dist/public/assets/{_BoLijUVS.js → _J22ldpof.js} +1 -1
- package/dist/public/assets/_J22ldpof.js.br +0 -0
- package/dist/public/assets/{_yu6_Donv2.js → _J98Rxkdb2.js} +1 -1
- package/dist/public/assets/_J98Rxkdb2.js.br +0 -0
- package/dist/public/assets/{_DZMpOq_k2.js → _JVw8w_7p2.js} +1 -1
- package/dist/public/assets/_JVw8w_7p2.js.br +0 -0
- package/dist/public/assets/{_BSIklgtS.js → _JoWlQVpX.js} +1 -1
- package/dist/public/assets/_JoWlQVpX.js.br +0 -0
- package/dist/public/assets/{_BvXxAv4T.js → _TbUx96Br.js} +1 -1
- package/dist/public/assets/_TbUx96Br.js.br +0 -0
- package/dist/public/assets/{_Dz1I8UR4.js → _akTAmktB.js} +1 -1
- package/dist/public/assets/_akTAmktB.js.br +0 -0
- package/dist/public/assets/{_BK6OZyLT2.js → _dFDJ9A9g2.js} +1 -1
- package/dist/public/assets/_dFDJ9A9g2.js.br +0 -0
- package/dist/public/assets/{_BhTLJW2Y.js → _gHuYn_71.js} +1 -1
- package/dist/public/assets/_gHuYn_71.js.br +0 -0
- package/dist/public/assets/{_Df3c1-mC.js → _j9TQP7q5.js} +1 -1
- package/dist/public/assets/_j9TQP7q5.js.br +0 -0
- package/dist/public/assets/_sWLklcDZ.js +1 -0
- package/dist/public/assets/{_Bp0PawFO.js → _tshHvoEk.js} +1 -1
- package/dist/public/assets/_tshHvoEk.js.br +0 -0
- package/dist/public/assets/{_2AY1cevg.js → _xVSWwNNy.js} +1 -1
- package/dist/public/assets/_xVSWwNNy.js.br +0 -0
- package/dist/public/assets/{_-3KGdeyo.js → _x_T0NsDl.js} +1 -1
- package/dist/public/assets/_x_T0NsDl.js.br +0 -0
- package/dist/public/assets/app-page-LDZ2KXKs.css +1 -0
- package/dist/public/assets/app-page-LDZ2KXKs.css.br +0 -0
- package/dist/public/assets/diff-view-0Uofj0Dv.css +1 -0
- package/dist/public/assets/diff-view-0Uofj0Dv.css.br +0 -0
- package/dist/public/assets/new-CwlftYMt.js +1 -0
- package/dist/public/assets/settings-CwlftYMt.js +1 -0
- package/dist/public/assets/shiki-wasm-stub-sWLklcDZ.js +1 -0
- package/dist/public/assets/w-CwlftYMt.js +1 -0
- package/dist/public/assets/w._-BGFF38Oe.js +1 -0
- package/dist/public/assets/w._-CwlftYMt.js +1 -0
- package/dist/public/assets/{worker-DZo603XT.js → worker-hTZla-j_.js} +1 -1
- package/dist/public/assets/worker-hTZla-j_.js.br +0 -0
- package/lib/setup/doctor.d.mts +0 -2
- package/lib/setup/doctor.mjs +17 -3
- package/lib/usage/format.d.mts +2 -0
- package/lib/usage/format.mjs +22 -0
- package/package.json +1 -1
- package/scripts/migrate.mjs +25 -0
- package/dist/_BBEL67Rf.js +0 -2
- package/dist/public/assets/_-3KGdeyo.js.br +0 -0
- package/dist/public/assets/_2AY1cevg.js.br +0 -0
- package/dist/public/assets/_B0e3Ak7A.js.br +0 -0
- package/dist/public/assets/_B4Nu-wag.js.br +0 -0
- package/dist/public/assets/_B5uwAcaB.js.br +0 -0
- package/dist/public/assets/_BB3PfRLa2.js.br +0 -0
- package/dist/public/assets/_BE2qRsPs.js.br +0 -0
- package/dist/public/assets/_BFDzSRUb.js.br +0 -0
- package/dist/public/assets/_BK6OZyLT2.js.br +0 -0
- package/dist/public/assets/_BNuVdL222.js.br +0 -0
- package/dist/public/assets/_BSIklgtS.js.br +0 -0
- package/dist/public/assets/_BVkMt2PY2.js.br +0 -0
- package/dist/public/assets/_BY4vFN-X.js.br +0 -0
- package/dist/public/assets/_BYis3bU3.js.br +0 -0
- package/dist/public/assets/_BZou6DQD.js.br +0 -0
- package/dist/public/assets/_B_qJHbwz.js.br +0 -0
- package/dist/public/assets/_BaJXK68-.js.br +0 -0
- package/dist/public/assets/_BbXYlhz_2.js.br +0 -0
- package/dist/public/assets/_BbZSZ8_I2.js.br +0 -0
- package/dist/public/assets/_BhTLJW2Y.js.br +0 -0
- package/dist/public/assets/_BlLpqMok.js.br +0 -0
- package/dist/public/assets/_BnjxR4X6.js +0 -1
- package/dist/public/assets/_BnjxR4X6.js.br +0 -0
- package/dist/public/assets/_BoLijUVS.js.br +0 -0
- package/dist/public/assets/_BomcrPR22.js.br +0 -0
- package/dist/public/assets/_Bp0PawFO.js.br +0 -0
- package/dist/public/assets/_BqkNbZMs.js.br +0 -0
- package/dist/public/assets/_BshAqMBd2.js.br +0 -0
- package/dist/public/assets/_BvXxAv4T.js.br +0 -0
- package/dist/public/assets/_BynYlMA5.js.br +0 -0
- package/dist/public/assets/_BzAD6TBo.js.br +0 -0
- package/dist/public/assets/_C2NMRiCh.js.br +0 -0
- package/dist/public/assets/_C5GxdpIx.js.br +0 -0
- package/dist/public/assets/_C6_jrqyQ2.js.br +0 -0
- package/dist/public/assets/_CASdx3AE.js.br +0 -0
- package/dist/public/assets/_CDwswGat.js.br +0 -0
- package/dist/public/assets/_CMtRRt5X2.js.br +0 -0
- package/dist/public/assets/_CSBn-Hvt2.js.br +0 -0
- package/dist/public/assets/_CTlZ1Lkv2.js.br +0 -0
- package/dist/public/assets/_CXKoguEA.js.br +0 -0
- package/dist/public/assets/_CbbUwTEJ.js.br +0 -0
- package/dist/public/assets/_CfRbL_Ta2.js.br +0 -0
- package/dist/public/assets/_ChrrA5fF.js.br +0 -0
- package/dist/public/assets/_Cj0z289t.js.br +0 -0
- package/dist/public/assets/_ClccdQK9.js.br +0 -0
- package/dist/public/assets/_CmwkZmX02.js.br +0 -0
- package/dist/public/assets/_Cy6vUvOf.js.br +0 -0
- package/dist/public/assets/_D5BeGelx.js.br +0 -0
- package/dist/public/assets/_DAHhUiki.js.br +0 -0
- package/dist/public/assets/_DAcB8FCB.js.br +0 -0
- package/dist/public/assets/_DB_C0F-Z2.js.br +0 -0
- package/dist/public/assets/_DCM_uGbe.js.br +0 -0
- package/dist/public/assets/_DJfRmyos.js.br +0 -0
- package/dist/public/assets/_DM1EXBbo.js.br +0 -0
- package/dist/public/assets/_DN-QtD1c.js.br +0 -0
- package/dist/public/assets/_DZMpOq_k2.js.br +0 -0
- package/dist/public/assets/_Da_nvZ5y.js.br +0 -0
- package/dist/public/assets/_DbphB3_Y.js.br +0 -0
- package/dist/public/assets/_Ddq_uzCH2.js.br +0 -0
- package/dist/public/assets/_Df3c1-mC.js.br +0 -0
- package/dist/public/assets/_DmHNNuUl2.js.br +0 -0
- package/dist/public/assets/_DvlwodnH2.js.br +0 -0
- package/dist/public/assets/_DwnEEAN3.js.br +0 -0
- package/dist/public/assets/_Dz1I8UR4.js.br +0 -0
- package/dist/public/assets/_DzazkU0O.js.br +0 -0
- package/dist/public/assets/_JMdaap6W.js.br +0 -0
- package/dist/public/assets/_NlAtY9z9.js.br +0 -0
- package/dist/public/assets/_R6H7Mgwp.js.br +0 -0
- package/dist/public/assets/_Rwpt_eYd.js.br +0 -0
- package/dist/public/assets/_bNejHwcl2.js.br +0 -0
- package/dist/public/assets/_chJ5r2KH2.js.br +0 -0
- package/dist/public/assets/_mbrwXzyQ.js.br +0 -0
- package/dist/public/assets/_p7Nk6TN_.js.br +0 -0
- package/dist/public/assets/_yu6_Donv2.js.br +0 -0
- package/dist/public/assets/_zGSRZWQr.js.br +0 -0
- package/dist/public/assets/app-page-xZ7ggaFZ.css +0 -1
- package/dist/public/assets/app-page-xZ7ggaFZ.css.br +0 -0
- package/dist/public/assets/diff-view-COEkSsJh.css +0 -1
- package/dist/public/assets/diff-view-COEkSsJh.css.br +0 -0
- package/dist/public/assets/new-B4TVUCf9.js +0 -1
- package/dist/public/assets/settings-B4TVUCf9.js +0 -1
- package/dist/public/assets/w-B4TVUCf9.js +0 -1
- package/dist/public/assets/w._-B4TVUCf9.js +0 -1
- package/dist/public/assets/w._-CJLLzbFK.js +0 -1
- package/dist/public/assets/wasm-S0UXjx1m.js +0 -1
- package/dist/public/assets/wasm-S0UXjx1m.js.br +0 -0
- package/dist/public/assets/worker-DZo603XT.js.br +0 -0
|
@@ -65,16 +65,19 @@ var tmux = (args, env) => run$1("tmux", [
|
|
|
65
65
|
/** launchd starts the service with no locale at all, and under a non-UTF-8
|
|
66
66
|
* locale tmux replaces characters it deems unprintable in format output —
|
|
67
67
|
* including the \t separators sessionStates and the scraper split on, which
|
|
68
|
-
* came back as `_` and made every session read dead on macOS.
|
|
69
|
-
*
|
|
68
|
+
* came back as `_` and made every session read dead on macOS. Our own tmux
|
|
69
|
+
* clients need this, and so do the panes we spawn (sessions.ts cleanEnv). */
|
|
70
|
+
function forceUtf8Locale(env) {
|
|
71
|
+
if (!/utf-?8/i.test(env.LC_ALL || env.LC_CTYPE || env.LANG || "")) {
|
|
72
|
+
delete env.LC_ALL;
|
|
73
|
+
env.LC_CTYPE = process.platform === "darwin" ? "UTF-8" : "C.UTF-8";
|
|
74
|
+
}
|
|
75
|
+
return env;
|
|
76
|
+
}
|
|
70
77
|
function utf8Locale(env) {
|
|
71
78
|
const out = {};
|
|
72
79
|
for (const [key, value] of Object.entries(env)) if (value !== void 0) out[key] = value;
|
|
73
|
-
|
|
74
|
-
delete out.LC_ALL;
|
|
75
|
-
out.LC_CTYPE = process.platform === "darwin" ? "UTF-8" : "C.UTF-8";
|
|
76
|
-
}
|
|
77
|
-
return out;
|
|
80
|
+
return forceUtf8Locale(out);
|
|
78
81
|
}
|
|
79
82
|
//#endregion
|
|
80
83
|
//#region src/server/db.ts
|
|
@@ -464,11 +467,20 @@ function ghKnownHosts() {
|
|
|
464
467
|
*/
|
|
465
468
|
function discoverAgents() {
|
|
466
469
|
const dirs = setupPath().split(path.delimiter);
|
|
470
|
+
const seenDirs = /* @__PURE__ */ new Set();
|
|
467
471
|
const seen = /* @__PURE__ */ new Map();
|
|
468
472
|
for (const dir of dirs) {
|
|
473
|
+
let real;
|
|
474
|
+
try {
|
|
475
|
+
real = fs.realpathSync(dir);
|
|
476
|
+
} catch {
|
|
477
|
+
continue;
|
|
478
|
+
}
|
|
479
|
+
if (seenDirs.has(real)) continue;
|
|
480
|
+
seenDirs.add(real);
|
|
469
481
|
let names;
|
|
470
482
|
try {
|
|
471
|
-
names = fs.readdirSync(
|
|
483
|
+
names = fs.readdirSync(real);
|
|
472
484
|
} catch {
|
|
473
485
|
continue;
|
|
474
486
|
}
|
|
@@ -643,10 +655,11 @@ function isKnownAgent(id) {
|
|
|
643
655
|
}
|
|
644
656
|
/** Default agent for empty-session Start / auto-create. Falls back to the
|
|
645
657
|
* first enabled instance, and to the shell when nothing is installed —
|
|
646
|
-
* never to a binary that is not there.
|
|
647
|
-
|
|
658
|
+
* never to a binary that is not there. Pass `enabled` when the caller
|
|
659
|
+
* already has the list (middleware / settings snapshot) so PATH is not
|
|
660
|
+
* scanned twice. */
|
|
661
|
+
function preferredAgent(enabled = enabledAgents()) {
|
|
648
662
|
const stored = getSetting("preferredAgent");
|
|
649
|
-
const enabled = enabledAgents();
|
|
650
663
|
if (stored && enabled.includes(stored)) return stored;
|
|
651
664
|
return enabled[0] || "shell";
|
|
652
665
|
}
|
|
@@ -6538,7 +6551,7 @@ function publishChange(sessionId) {
|
|
|
6538
6551
|
const row = get("SELECT workspace_id FROM sessions WHERE id = ?", sessionId);
|
|
6539
6552
|
if (row?.workspace_id) {
|
|
6540
6553
|
const workspaceId = row.workspace_id;
|
|
6541
|
-
import("./
|
|
6554
|
+
import("./_BIDn_RW1.js").then((m) => m.notifySessionsChanged(workspaceId));
|
|
6542
6555
|
return;
|
|
6543
6556
|
}
|
|
6544
6557
|
publish("sessions.changed");
|
|
@@ -6870,12 +6883,12 @@ async function loadPayload(key, live) {
|
|
|
6870
6883
|
}
|
|
6871
6884
|
/** How to get a fresh token back, per provider (meta.json `reauth`). */
|
|
6872
6885
|
var reauthHint = (key) => agentMeta(key)?.reauth;
|
|
6873
|
-
/** Never signed in (or the CLI's credentials went missing) — not an outage.
|
|
6874
|
-
* Distinct from a failed request: nothing was ever sent, so blaming the
|
|
6875
|
-
* network would send you debugging the wrong thing. */
|
|
6876
6886
|
/** Row note for a CLI signed in with an API key: metered by the bill, not
|
|
6877
6887
|
* by plan windows, so the empty meters are the whole story. */
|
|
6878
6888
|
var API_KEY_NOTE = "API key — pay per use, no plan limits";
|
|
6889
|
+
/** Never signed in (or the CLI's credentials went missing) — not an outage.
|
|
6890
|
+
* Distinct from a failed request: nothing was ever sent, so blaming the
|
|
6891
|
+
* network would send you debugging the wrong thing. */
|
|
6879
6892
|
function noAuthReason(key) {
|
|
6880
6893
|
const hint = reauthHint(key);
|
|
6881
6894
|
return hint ? `not signed in (run \`${hint}\`)` : "no credentials on disk";
|
|
@@ -7992,20 +8005,28 @@ async function panePids() {
|
|
|
7992
8005
|
]).catch(() => "");
|
|
7993
8006
|
return new Set(out.split("\n").filter(Boolean).map(Number));
|
|
7994
8007
|
}
|
|
8008
|
+
/** Cleared once per process — boot already runs this, and a server we
|
|
8009
|
+
* create below never has PORT set, so re-running on every attach only
|
|
8010
|
+
* unsets something already unset. */
|
|
8011
|
+
var portCleared = false;
|
|
7995
8012
|
/** Start the tmux server in its own systemd user unit so it escapes this
|
|
7996
8013
|
* service's cgroup — otherwise `systemctl restart work` kills every
|
|
7997
8014
|
* session with it. A hidden "work-keeper" session pins the server alive
|
|
7998
8015
|
* (tmux exits when its last session closes). */
|
|
7999
8016
|
async function ensureTmuxServer() {
|
|
8000
8017
|
if (await tmux(["has-session"]).then(() => true, () => false)) {
|
|
8001
|
-
|
|
8002
|
-
|
|
8003
|
-
|
|
8004
|
-
|
|
8005
|
-
|
|
8006
|
-
|
|
8018
|
+
if (!portCleared) {
|
|
8019
|
+
await tmux([
|
|
8020
|
+
"set-environment",
|
|
8021
|
+
"-g",
|
|
8022
|
+
"-u",
|
|
8023
|
+
"PORT"
|
|
8024
|
+
]).catch(() => {});
|
|
8025
|
+
portCleared = true;
|
|
8026
|
+
}
|
|
8007
8027
|
return;
|
|
8008
8028
|
}
|
|
8029
|
+
portCleared = true;
|
|
8009
8030
|
await run$1("systemd-run", [
|
|
8010
8031
|
"--user",
|
|
8011
8032
|
"--unit=work-tmux",
|
|
@@ -8162,11 +8183,7 @@ function cleanEnv() {
|
|
|
8162
8183
|
const bins = [`${home}/.local/bin`, ...agentPathDirs(home)];
|
|
8163
8184
|
const parts = (env.PATH || "").split(":");
|
|
8164
8185
|
env.PATH = [...parts, ...bins.filter((bin) => !parts.includes(bin))].join(":");
|
|
8165
|
-
|
|
8166
|
-
delete env.LC_ALL;
|
|
8167
|
-
env.LC_CTYPE = process.platform === "darwin" ? "UTF-8" : "C.UTF-8";
|
|
8168
|
-
}
|
|
8169
|
-
return env;
|
|
8186
|
+
return forceUtf8Locale(env);
|
|
8170
8187
|
}
|
|
8171
8188
|
var AGENT_BOOT_MS = 1500;
|
|
8172
8189
|
var PASTE_SETTLE_MS = 150;
|
|
@@ -1906,26 +1906,26 @@ function toObjectExpression(options) {
|
|
|
1906
1906
|
return result + "}";
|
|
1907
1907
|
}
|
|
1908
1908
|
var phase = {
|
|
1909
|
-
working: "
|
|
1910
|
-
waiting: "
|
|
1911
|
-
idle: "
|
|
1912
|
-
off: "
|
|
1909
|
+
working: "_z",
|
|
1910
|
+
waiting: "_A",
|
|
1911
|
+
idle: "_B",
|
|
1912
|
+
off: "_C"
|
|
1913
1913
|
};
|
|
1914
|
-
var btnSm = "
|
|
1915
|
-
var btnLg = "
|
|
1914
|
+
var btnSm = "_F _o";
|
|
1915
|
+
var btnLg = "_G _o";
|
|
1916
1916
|
var tone = {
|
|
1917
|
-
accent: "
|
|
1918
|
-
ok: "
|
|
1919
|
-
warn: "
|
|
1920
|
-
danger: "
|
|
1921
|
-
merged: "
|
|
1922
|
-
closed: "
|
|
1917
|
+
accent: "_K",
|
|
1918
|
+
ok: "_L",
|
|
1919
|
+
warn: "_M",
|
|
1920
|
+
danger: "_N",
|
|
1921
|
+
merged: "_O",
|
|
1922
|
+
closed: "_P"
|
|
1923
1923
|
};
|
|
1924
|
-
var metaTrunc = "
|
|
1925
|
-
var inputLg = "
|
|
1926
|
-
var iconBtnXs = "
|
|
1927
|
-
var iconBtnRow = "
|
|
1928
|
-
var iconBtnLg = "
|
|
1924
|
+
var metaTrunc = "_S _R";
|
|
1925
|
+
var inputLg = "_U _T";
|
|
1926
|
+
var iconBtnXs = "_Y _j";
|
|
1927
|
+
var iconBtnRow = "_Z _j";
|
|
1928
|
+
var iconBtnLg = "_0 _j";
|
|
1929
1929
|
//#endregion
|
|
1930
1930
|
//#region src/client/github.ts
|
|
1931
1931
|
/** A repo's full name is `[host/]owner/name`; the host segment is present
|
|
@@ -1964,14 +1964,14 @@ function repoLabel(fullName) {
|
|
|
1964
1964
|
return fullName;
|
|
1965
1965
|
}
|
|
1966
1966
|
var toastKind = {
|
|
1967
|
-
error: "
|
|
1968
|
-
warn: "
|
|
1969
|
-
info: "
|
|
1967
|
+
error: "_bc",
|
|
1968
|
+
warn: "_bd",
|
|
1969
|
+
info: "_be"
|
|
1970
1970
|
};
|
|
1971
1971
|
var toastTitle = {
|
|
1972
|
-
error: "
|
|
1973
|
-
warn: "
|
|
1974
|
-
info: "
|
|
1972
|
+
error: "_bf",
|
|
1973
|
+
warn: "_bg",
|
|
1974
|
+
info: "_bh"
|
|
1975
1975
|
};
|
|
1976
1976
|
//#endregion
|
|
1977
1977
|
//#region src/tags/icons/icon-base.marko
|
|
@@ -1984,7 +1984,7 @@ var icon_base_default = _template("M", (input) => {
|
|
|
1984
1984
|
});
|
|
1985
1985
|
//#endregion
|
|
1986
1986
|
//#region src/tags/icons/icon-xmark.marko
|
|
1987
|
-
var icon_xmark_default = _template("
|
|
1987
|
+
var icon_xmark_default = _template("lb", (input) => {
|
|
1988
1988
|
const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
|
|
1989
1989
|
const $scope0_id = _scope_id();
|
|
1990
1990
|
_set_serialize_reason({
|
|
@@ -2009,18 +2009,18 @@ var toast_default = _template("C", (input) => {
|
|
|
2009
2009
|
const kind = inputKind || "error";
|
|
2010
2010
|
const placement = inputPlacement || "float";
|
|
2011
2011
|
const placementClass = {
|
|
2012
|
-
float: "
|
|
2013
|
-
inline: "
|
|
2012
|
+
float: "_ba",
|
|
2013
|
+
inline: "_bb"
|
|
2014
2014
|
}[placement];
|
|
2015
2015
|
_html(`<div${_attr_class([
|
|
2016
|
-
"
|
|
2016
|
+
"__",
|
|
2017
2017
|
toastKind[kind],
|
|
2018
2018
|
placementClass,
|
|
2019
2019
|
inputClass
|
|
2020
2020
|
])} role=${kind === "error" ? "alert" : "status"}${_attrs_partial(htmlInput, {
|
|
2021
2021
|
class: 1,
|
|
2022
2022
|
role: 1
|
|
2023
|
-
}, "a", $scope0_id, "div")}><div${_attr_class("
|
|
2023
|
+
}, "a", $scope0_id, "div")}><div${_attr_class("_bi")}>`);
|
|
2024
2024
|
_if(() => {
|
|
2025
2025
|
if (title) {
|
|
2026
2026
|
const $scope1_id = _scope_id();
|
|
@@ -2032,7 +2032,7 @@ var toast_default = _template("C", (input) => {
|
|
|
2032
2032
|
_if(() => {
|
|
2033
2033
|
if (content) {
|
|
2034
2034
|
const $scope2_id = _scope_id();
|
|
2035
|
-
_html(`<div${_attr_class("
|
|
2035
|
+
_html(`<div${_attr_class("_bj")}>`);
|
|
2036
2036
|
_dynamic_tag($scope2_id, "b", content, {}, 0, 0, $sg__input_content);
|
|
2037
2037
|
_html("</div>");
|
|
2038
2038
|
$si__input_content && writeScope($scope2_id, { _: _scope_with_id($scope0_id) });
|
|
@@ -2043,7 +2043,7 @@ var toast_default = _template("C", (input) => {
|
|
|
2043
2043
|
_if(() => {
|
|
2044
2044
|
if (action || onDismiss) {
|
|
2045
2045
|
const $scope3_id = _scope_id();
|
|
2046
|
-
_html(`<div${_attr_class("
|
|
2046
|
+
_html(`<div${_attr_class("_bk")}>`);
|
|
2047
2047
|
_if(() => {
|
|
2048
2048
|
if (action) {
|
|
2049
2049
|
const $scope4_id = _scope_id();
|
|
@@ -2055,7 +2055,7 @@ var toast_default = _template("C", (input) => {
|
|
|
2055
2055
|
_if(() => {
|
|
2056
2056
|
if (onDismiss) {
|
|
2057
2057
|
const $scope5_id = _scope_id();
|
|
2058
|
-
_html(`<button${_attr_class([iconBtnRow, "
|
|
2058
|
+
_html(`<button${_attr_class([iconBtnRow, "_bl"])} type=button title=Dismiss aria-label=Dismiss>`);
|
|
2059
2059
|
icon_xmark_default({ size: 14 });
|
|
2060
2060
|
_html(`</button>${_el_resume($scope5_id, "a")}`);
|
|
2061
2061
|
_script($scope5_id, "C0");
|
|
@@ -2171,12 +2171,12 @@ function theme() {
|
|
|
2171
2171
|
function setTheme(mode) {
|
|
2172
2172
|
set("theme", mode === "system" ? null : mode);
|
|
2173
2173
|
}
|
|
2174
|
-
var sectionCount = "
|
|
2175
|
-
var row = "
|
|
2176
|
-
var iconBtn = "
|
|
2174
|
+
var sectionCount = "_bp _H _I";
|
|
2175
|
+
var row = "_bA _bs";
|
|
2176
|
+
var iconBtn = "_Z _j";
|
|
2177
2177
|
//#endregion
|
|
2178
2178
|
//#region src/tags/icons/icon-refresh.marko
|
|
2179
|
-
var icon_refresh_default = _template("
|
|
2179
|
+
var icon_refresh_default = _template("db", (input) => {
|
|
2180
2180
|
const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
|
|
2181
2181
|
const $scope0_id = _scope_id();
|
|
2182
2182
|
_set_serialize_reason({
|
|
@@ -2227,7 +2227,7 @@ var icon_arrow_up_default = _template("K", (input) => {
|
|
|
2227
2227
|
});
|
|
2228
2228
|
//#endregion
|
|
2229
2229
|
//#region src/tags/icons/icon-search.marko
|
|
2230
|
-
var icon_search_default = _template("
|
|
2230
|
+
var icon_search_default = _template("eb", (input) => {
|
|
2231
2231
|
const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
|
|
2232
2232
|
const $scope0_id = _scope_id();
|
|
2233
2233
|
_set_serialize_reason({
|
|
@@ -2286,7 +2286,7 @@ function fuzzy(query, text) {
|
|
|
2286
2286
|
}
|
|
2287
2287
|
//#endregion
|
|
2288
2288
|
//#region src/tags/icons/icon-sidebar.marko
|
|
2289
|
-
var icon_sidebar_default = _template("
|
|
2289
|
+
var icon_sidebar_default = _template("hb", (input) => {
|
|
2290
2290
|
const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
|
|
2291
2291
|
const $scope0_id = _scope_id();
|
|
2292
2292
|
_set_serialize_reason({
|
|
@@ -2301,8 +2301,8 @@ var icon_sidebar_default = _template("ib", (input) => {
|
|
|
2301
2301
|
});
|
|
2302
2302
|
_serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
|
|
2303
2303
|
});
|
|
2304
|
-
var findInput = "
|
|
2305
|
-
var findIconBtn = "
|
|
2304
|
+
var findInput = "_fT _l";
|
|
2305
|
+
var findIconBtn = "_fW _j";
|
|
2306
2306
|
//#endregion
|
|
2307
2307
|
//#region src/tags/icons/icon-arrow-down.marko
|
|
2308
2308
|
var icon_arrow_down_default = _template("H", (input) => {
|