@dylanpiercey/work 0.0.122 → 0.0.123
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 +61 -17
- package/dist/_8GaDFTzQ.js +2 -0
- package/dist/{_DJyHc1w-.js → _930ti7l4.js} +4 -4
- package/dist/{_BdBrOaZF.js → _AItLA3Th.js} +27 -27
- package/dist/{_CfwTkTbL.js → _BJcBOXUi.js} +2 -2
- package/dist/_CrVv317N.js +2 -0
- package/dist/{_Cr71Xd0d.js → _DOBRRnfU.js} +13 -3
- package/dist/{_BPX2_wNT.js → _Dxspyv-X.js} +2 -2
- package/dist/_iX5oUHA_.js +2 -0
- package/dist/index.mjs +83 -82
- package/dist/public/assets/{_Z4spekbX.js → _1C01L6H8.js} +1 -1
- package/dist/public/assets/_1C01L6H8.js.br +0 -0
- package/dist/public/assets/{_BvJHLrwP2.js → _1KTQ10Sa2.js} +1 -1
- package/dist/public/assets/_1KTQ10Sa2.js.br +0 -0
- package/dist/public/assets/{_BxfzYLyp.js → _9ugZ8sFU.js} +1 -1
- package/dist/public/assets/_9ugZ8sFU.js.br +0 -0
- package/dist/public/assets/{_DZXcx3AV2.js → _B2oquPMV2.js} +1 -1
- package/dist/public/assets/_B2oquPMV2.js.br +0 -0
- package/dist/public/assets/{_8ixfpSLV.js → _B3u522i6.js} +1 -1
- package/dist/public/assets/_B3u522i6.js.br +0 -0
- package/dist/public/assets/{_xvmiPi6J2.js → _B79q4Iep2.js} +1 -1
- package/dist/public/assets/_B79q4Iep2.js.br +0 -0
- package/dist/public/assets/{_C0Wcm1DA.js → _B7yMQpNb.js} +1 -1
- package/dist/public/assets/_B7yMQpNb.js.br +0 -0
- package/dist/public/assets/{_Tpid4lIw.js → _B8-2v5ah.js} +1 -1
- package/dist/public/assets/_B8-2v5ah.js.br +0 -0
- package/dist/public/assets/{_a18bdHwu2.js → _B9J4D40T2.js} +1 -1
- package/dist/public/assets/_B9J4D40T2.js.br +0 -0
- package/dist/public/assets/{_CW70CETb.js → _BBdXq0au.js} +1 -1
- package/dist/public/assets/_BBdXq0au.js.br +0 -0
- package/dist/public/assets/{_C5fkGs032.js → _BFXVaaZZ2.js} +1 -1
- package/dist/public/assets/_BFXVaaZZ2.js.br +0 -0
- package/dist/public/assets/{_BO_carFG.js → _BIniTggd.js} +1 -1
- package/dist/public/assets/_BIniTggd.js.br +5 -0
- package/dist/public/assets/{_CWU_IJjz2.js → _BLKYt0dH2.js} +1 -1
- package/dist/public/assets/_BLKYt0dH2.js.br +0 -0
- package/dist/public/assets/{_lo4uGYhv.js → _BNQK17cx.js} +1 -1
- package/dist/public/assets/_BNQK17cx.js.br +0 -0
- package/dist/public/assets/{_DWZLw9u5.js → _BPacLsJZ.js} +1 -1
- package/dist/public/assets/_BPacLsJZ.js.br +0 -0
- package/dist/public/assets/{_DyZPE8LD2.js → _BQvL7p-H2.js} +1 -1
- package/dist/public/assets/_BQvL7p-H2.js.br +0 -0
- package/dist/public/assets/{_5waGGcsH2.js → _BTyLW7g22.js} +1 -1
- package/dist/public/assets/_BTyLW7g22.js.br +0 -0
- package/dist/public/assets/{_Bhf_wksG.js → _BV3wnaUQ.js} +1 -1
- package/dist/public/assets/_BV3wnaUQ.js.br +0 -0
- package/dist/public/assets/{_DOa36sDf2.js → _BW0vrnJ02.js} +1 -1
- package/dist/public/assets/_BW0vrnJ02.js.br +0 -0
- package/dist/public/assets/{_Bz61WBUI.js → _B_zXuzSk.js} +1 -1
- package/dist/public/assets/_B_zXuzSk.js.br +0 -0
- package/dist/public/assets/{_CqEc7KwE.js → _BeTQOqQK.js} +1 -1
- package/dist/public/assets/_BeTQOqQK.js.br +0 -0
- package/dist/public/assets/{_BO6TG3u42.js → _Bf-zNqvW2.js} +1 -1
- package/dist/public/assets/_Bf-zNqvW2.js.br +0 -0
- package/dist/public/assets/{_ih_22Lwc.js → _Bh10nSHk.js} +1 -1
- package/dist/public/assets/_Bh10nSHk.js.br +0 -0
- package/dist/public/assets/{_CKAWtCKg2.js → _Bhx2xsqn2.js} +1 -1
- package/dist/public/assets/_Bhx2xsqn2.js.br +0 -0
- package/dist/public/assets/{_BPjnrd1A.js → _BozRJAkt.js} +1 -1
- package/dist/public/assets/_BozRJAkt.js.br +0 -0
- package/dist/public/assets/{_D1zxC16I2.js → _Bp422VRU2.js} +1 -1
- package/dist/public/assets/_Bp422VRU2.js.br +0 -0
- package/dist/public/assets/{_kQ849tt6.js → _Buph4MaC.js} +1 -1
- package/dist/public/assets/_Buph4MaC.js.br +0 -0
- package/dist/public/assets/{_DfLxwQXd.js → _BvsESXeS.js} +1 -1
- package/dist/public/assets/_BvsESXeS.js.br +0 -0
- package/dist/public/assets/{_W9aOkr2v.js → _BwWPg2fR.js} +1 -1
- package/dist/public/assets/_BwWPg2fR.js.br +0 -0
- package/dist/public/assets/{_Y8lHXkX62.js → _C0ILV08N2.js} +1 -1
- package/dist/public/assets/_C0ILV08N2.js.br +0 -0
- package/dist/public/assets/{_D2SIC9vH2.js → _C3-LfntB2.js} +1 -1
- package/dist/public/assets/_C3-LfntB2.js.br +0 -0
- package/dist/public/assets/{_CNBki2Aq.js → _C3WvBCQb.js} +1 -1
- package/dist/public/assets/_C3WvBCQb.js.br +0 -0
- package/dist/public/assets/{_DDNq8klN.js → _C6G2Teqe.js} +1 -1
- package/dist/public/assets/_C6G2Teqe.js.br +0 -0
- package/dist/public/assets/{_Buu8_cyc.js → _C9ik2q2w.js} +1 -1
- package/dist/public/assets/_C9ik2q2w.js.br +0 -0
- package/dist/public/assets/{_Bkd9T8qO2.js → _C9pGaByT2.js} +1 -1
- package/dist/public/assets/_C9pGaByT2.js.br +0 -0
- package/dist/public/assets/{_D9QYQO8L.js → _CAVwrN0f.js} +1 -1
- package/dist/public/assets/_CAVwrN0f.js.br +0 -0
- package/dist/public/assets/{_DegNdi0y2.js → _CBd4k6AZ2.js} +1 -1
- package/dist/public/assets/_CBd4k6AZ2.js.br +0 -0
- package/dist/public/assets/{_CPCFHsPT2.js → _CJMg3VoD2.js} +1 -1
- package/dist/public/assets/_CJMg3VoD2.js.br +0 -0
- package/dist/public/assets/{_DLbcflUX2.js → _CKapyBeI2.js} +1 -1
- package/dist/public/assets/_CKapyBeI2.js.br +0 -0
- package/dist/public/assets/{_DMzElmqz.js → _COt541Xf.js} +1 -1
- package/dist/public/assets/_COt541Xf.js.br +0 -0
- package/dist/public/assets/{_Bgq0Djxf.js → _CRLl3VEd.js} +1 -1
- package/dist/public/assets/_CRLl3VEd.js.br +0 -0
- package/dist/public/assets/{_CqgcFjOQ.js → _CTbIxoLY.js} +1 -1
- package/dist/public/assets/_CTbIxoLY.js.br +0 -0
- package/dist/public/assets/{_BYOrCsb12.js → _CYK6bapW2.js} +1 -1
- package/dist/public/assets/_CYK6bapW2.js.br +0 -0
- package/dist/public/assets/{_sWtKlZZ5.js → _CZ1guNTV.js} +5 -5
- package/dist/public/assets/_CZ1guNTV.js.br +0 -0
- package/dist/public/assets/{_22Wep3Qj2.js → _C_6NOEKJ2.js} +1 -1
- package/dist/public/assets/{_BvTWp2QQ.js → _CdjreNlJ.js} +1 -1
- package/dist/public/assets/_CdjreNlJ.js.br +0 -0
- package/dist/public/assets/{_6yLwnUth.js → _Cf5Zrdti.js} +1 -1
- package/dist/public/assets/_Cf5Zrdti.js.br +0 -0
- package/dist/public/assets/{_BcA9iBrt.js → _CfJLLMWV.js} +1 -1
- package/dist/public/assets/_CfJLLMWV.js.br +0 -0
- package/dist/public/assets/{_9wp1Weya.js → _CzvfWhEh.js} +1 -1
- package/dist/public/assets/_CzvfWhEh.js.br +0 -0
- package/dist/public/assets/{_DbEs3COY.js → _D1A7jI1p.js} +1 -1
- package/dist/public/assets/_D1A7jI1p.js.br +0 -0
- package/dist/public/assets/{_BQfrm6Hv.js → _D9nKEBYM.js} +1 -1
- package/dist/public/assets/_D9nKEBYM.js.br +0 -0
- package/dist/public/assets/{_BfzwZXGo.js → _DAv1qyFD.js} +1 -1
- package/dist/public/assets/_DAv1qyFD.js.br +0 -0
- package/dist/public/assets/{_MEclBKIH.js → _DG27SXxk.js} +1 -1
- package/dist/public/assets/_DG27SXxk.js.br +0 -0
- package/dist/public/assets/{_CNVk64eD.js → _DI5lrPqF.js} +1 -1
- package/dist/public/assets/_DI5lrPqF.js.br +0 -0
- package/dist/public/assets/{_DL2HExUi2.js → _DNc251EH2.js} +1 -1
- package/dist/public/assets/_DNc251EH2.js.br +0 -0
- package/dist/public/assets/{_DY5MuJqh.js → _D_abiz6o.js} +1 -1
- package/dist/public/assets/_D_abiz6o.js.br +0 -0
- package/dist/public/assets/{_CLM87vGj.js → _DbqqEUGU.js} +1 -1
- package/dist/public/assets/_DbqqEUGU.js.br +0 -0
- package/dist/public/assets/{_BllRu2dt.js → _DfVlmKjB.js} +1 -1
- package/dist/public/assets/_DfVlmKjB.js.br +0 -0
- package/dist/public/assets/{_CrlXwiFN2.js → _DiXam-cI2.js} +1 -1
- package/dist/public/assets/_DiXam-cI2.js.br +0 -0
- package/dist/public/assets/{_CpByFq0N.js → _DjPFzYrA.js} +1 -1
- package/dist/public/assets/_DjPFzYrA.js.br +0 -0
- package/dist/public/assets/{_9NNG2Bg-.js → _DlLV3Ljr.js} +1 -1
- package/dist/public/assets/_DlLV3Ljr.js.br +0 -0
- package/dist/public/assets/{_DwTIenq9.js → _DlUUGQZG.js} +1 -1
- package/dist/public/assets/_DlUUGQZG.js.br +0 -0
- package/dist/public/assets/{_BcnKn75V.js → _DnFHO_Dn.js} +4 -4
- package/dist/public/assets/_DnFHO_Dn.js.br +0 -0
- package/dist/public/assets/{_hO1aV02w2.js → _Dyi2Gxao2.js} +1 -1
- package/dist/public/assets/{_CM8zmLXB.js → _E9rgzIvo.js} +1 -1
- package/dist/public/assets/_E9rgzIvo.js.br +0 -0
- package/dist/public/assets/{_4C4ZKftZ.js → _ReVTweDC.js} +1 -1
- package/dist/public/assets/_ReVTweDC.js.br +0 -0
- package/dist/public/assets/{_BO5eXuo12.js → _TnqcMVKx2.js} +1 -1
- package/dist/public/assets/_TnqcMVKx2.js.br +0 -0
- package/dist/public/assets/{_Dwsfrcqr.js → _Upul3Ofo.js} +1 -1
- package/dist/public/assets/_Upul3Ofo.js.br +0 -0
- package/dist/public/assets/{_BgxHsV2q.js → _ZrGaJYJ6.js} +1 -1
- package/dist/public/assets/_ZrGaJYJ6.js.br +0 -0
- package/dist/public/assets/{_CtuCeJaB.js → _jH6dnn_a.js} +1 -1
- package/dist/public/assets/_jH6dnn_a.js.br +0 -0
- package/dist/public/assets/{_BeYy7LJv.js → _k9hFY1PH.js} +1 -1
- package/dist/public/assets/_k9hFY1PH.js.br +0 -0
- package/dist/public/assets/{_D_5rjG0o.js → _ssYg2Lbg.js} +1 -1
- package/dist/public/assets/_ssYg2Lbg.js.br +0 -0
- package/dist/public/assets/{_B80Me7dX.js → _stxqF0YI.js} +1 -1
- package/dist/public/assets/{_ClA-9QLW.js → _uwlWIup9.js} +1 -1
- package/dist/public/assets/_uwlWIup9.js.br +0 -0
- package/dist/public/assets/{_BJVUTWAN.js → _wD1I5kuG.js} +1 -1
- package/dist/public/assets/_wD1I5kuG.js.br +0 -0
- package/dist/public/assets/{_CorgOnjQ.js → _x-8ESFAf.js} +1 -1
- package/dist/public/assets/_x-8ESFAf.js.br +0 -0
- package/dist/public/assets/{app-page-9ukuDxSW.css → app-page-DXg75Hl7.css} +1 -1
- package/dist/public/assets/app-page-DXg75Hl7.css.br +0 -0
- package/dist/public/assets/{diff-view-BmyKvz_f.css → diff-view-Bi6n2ybW.css} +1 -1
- package/dist/public/assets/diff-view-Bi6n2ybW.css.br +0 -0
- package/dist/public/assets/new-CHONaddH.js +1 -0
- package/dist/public/assets/settings-CHONaddH.js +1 -0
- package/dist/public/assets/w-CHONaddH.js +1 -0
- package/dist/public/assets/w._-BqbvDTGg.js +1 -0
- package/dist/public/assets/w._-CHONaddH.js +1 -0
- package/package.json +1 -1
- package/dist/_B1lVb01g.js +0 -2
- package/dist/_Bjh5JEm7.js +0 -2
- package/dist/_Dpa8WFuv.js +0 -2
- package/dist/public/assets/_4C4ZKftZ.js.br +0 -0
- package/dist/public/assets/_5waGGcsH2.js.br +0 -0
- package/dist/public/assets/_6yLwnUth.js.br +0 -0
- package/dist/public/assets/_8ixfpSLV.js.br +0 -0
- package/dist/public/assets/_9NNG2Bg-.js.br +0 -0
- package/dist/public/assets/_9wp1Weya.js.br +0 -0
- package/dist/public/assets/_BJVUTWAN.js.br +0 -0
- package/dist/public/assets/_BO5eXuo12.js.br +0 -0
- package/dist/public/assets/_BO6TG3u42.js.br +0 -0
- package/dist/public/assets/_BO_carFG.js.br +0 -0
- package/dist/public/assets/_BPjnrd1A.js.br +0 -0
- package/dist/public/assets/_BQfrm6Hv.js.br +0 -0
- package/dist/public/assets/_BYOrCsb12.js.br +0 -0
- package/dist/public/assets/_BcA9iBrt.js.br +0 -0
- package/dist/public/assets/_BcnKn75V.js.br +0 -0
- package/dist/public/assets/_BeYy7LJv.js.br +0 -0
- package/dist/public/assets/_BfzwZXGo.js.br +0 -0
- package/dist/public/assets/_Bgq0Djxf.js.br +0 -0
- package/dist/public/assets/_BgxHsV2q.js.br +0 -0
- package/dist/public/assets/_Bhf_wksG.js.br +0 -0
- package/dist/public/assets/_Bkd9T8qO2.js.br +0 -0
- package/dist/public/assets/_BllRu2dt.js.br +0 -0
- package/dist/public/assets/_Buu8_cyc.js.br +0 -0
- package/dist/public/assets/_BvJHLrwP2.js.br +0 -0
- package/dist/public/assets/_BvTWp2QQ.js.br +0 -0
- package/dist/public/assets/_BxfzYLyp.js.br +0 -0
- package/dist/public/assets/_Bz61WBUI.js.br +0 -0
- package/dist/public/assets/_C0Wcm1DA.js.br +0 -0
- package/dist/public/assets/_C5fkGs032.js.br +0 -0
- package/dist/public/assets/_CKAWtCKg2.js.br +0 -0
- package/dist/public/assets/_CLM87vGj.js.br +0 -0
- package/dist/public/assets/_CM8zmLXB.js.br +0 -0
- package/dist/public/assets/_CNBki2Aq.js.br +0 -0
- package/dist/public/assets/_CNVk64eD.js.br +0 -0
- package/dist/public/assets/_CPCFHsPT2.js.br +0 -0
- package/dist/public/assets/_CW70CETb.js.br +0 -0
- package/dist/public/assets/_CWU_IJjz2.js.br +0 -0
- package/dist/public/assets/_ClA-9QLW.js.br +0 -0
- package/dist/public/assets/_CorgOnjQ.js.br +0 -0
- package/dist/public/assets/_CpByFq0N.js.br +0 -0
- package/dist/public/assets/_CqEc7KwE.js.br +0 -0
- package/dist/public/assets/_CqgcFjOQ.js.br +0 -0
- package/dist/public/assets/_CrlXwiFN2.js.br +0 -0
- package/dist/public/assets/_CtuCeJaB.js.br +0 -0
- package/dist/public/assets/_D1zxC16I2.js.br +0 -0
- package/dist/public/assets/_D2SIC9vH2.js.br +0 -0
- package/dist/public/assets/_D9QYQO8L.js.br +0 -0
- package/dist/public/assets/_DDNq8klN.js.br +0 -0
- package/dist/public/assets/_DL2HExUi2.js.br +0 -0
- package/dist/public/assets/_DLbcflUX2.js.br +0 -0
- package/dist/public/assets/_DMzElmqz.js.br +0 -0
- package/dist/public/assets/_DOa36sDf2.js.br +0 -0
- package/dist/public/assets/_DWZLw9u5.js.br +0 -0
- package/dist/public/assets/_DY5MuJqh.js.br +0 -0
- package/dist/public/assets/_DZXcx3AV2.js.br +0 -0
- package/dist/public/assets/_D_5rjG0o.js.br +0 -0
- package/dist/public/assets/_DbEs3COY.js.br +0 -0
- package/dist/public/assets/_DegNdi0y2.js.br +0 -0
- package/dist/public/assets/_DfLxwQXd.js.br +0 -0
- package/dist/public/assets/_DwTIenq9.js.br +0 -0
- package/dist/public/assets/_Dwsfrcqr.js.br +0 -0
- package/dist/public/assets/_DyZPE8LD2.js.br +0 -0
- package/dist/public/assets/_MEclBKIH.js.br +0 -0
- package/dist/public/assets/_Tpid4lIw.js.br +0 -0
- package/dist/public/assets/_W9aOkr2v.js.br +0 -0
- package/dist/public/assets/_Y8lHXkX62.js.br +0 -0
- package/dist/public/assets/_Z4spekbX.js.br +0 -0
- package/dist/public/assets/_a18bdHwu2.js.br +0 -0
- package/dist/public/assets/_ih_22Lwc.js.br +0 -0
- package/dist/public/assets/_kQ849tt6.js.br +0 -0
- package/dist/public/assets/_lo4uGYhv.js.br +0 -0
- package/dist/public/assets/_sWtKlZZ5.js.br +0 -0
- package/dist/public/assets/_xvmiPi6J2.js.br +0 -0
- package/dist/public/assets/app-page-9ukuDxSW.css.br +0 -0
- package/dist/public/assets/diff-view-BmyKvz_f.css.br +0 -0
- package/dist/public/assets/new-PmY_tc2O.js +0 -1
- package/dist/public/assets/settings-PmY_tc2O.js +0 -1
- package/dist/public/assets/w-PmY_tc2O.js +0 -1
- package/dist/public/assets/w._-DL1tdfaH.js +0 -1
- package/dist/public/assets/w._-PmY_tc2O.js +0 -1
package/bin/work.mjs
CHANGED
|
@@ -657,25 +657,70 @@ function servicePath() {
|
|
|
657
657
|
return setupPath(path.dirname(process.execPath));
|
|
658
658
|
}
|
|
659
659
|
|
|
660
|
-
/** Argv
|
|
661
|
-
* host is a dead host: agents keep running in tmux, but the
|
|
662
|
-
* answering, so remote sessions look hung until someone wakes
|
|
663
|
-
*
|
|
664
|
-
*
|
|
665
|
-
|
|
660
|
+
/** Argv prefixes that keep the host awake while the server runs, best first.
|
|
661
|
+
* A suspended host is a dead host: agents keep running in tmux, but the
|
|
662
|
+
* machine stops answering, so remote sessions look hung until someone wakes
|
|
663
|
+
* it by hand. The inhibitor lifts when the service stops.
|
|
664
|
+
*
|
|
665
|
+
* Linux offers two, because polkit gates them differently:
|
|
666
|
+
*
|
|
667
|
+
* sleep:idle also vetoes an explicit suspend, but
|
|
668
|
+
* org.freedesktop.login1.inhibit-block-sleep is
|
|
669
|
+
* allow_any=auth_admin_keep — permitted from a session, refused
|
|
670
|
+
* for a caller that has none. That is the lingering user
|
|
671
|
+
* manager at boot, so the service cannot rely on it.
|
|
672
|
+
* idle org.freedesktop.login1.inhibit-block-idle is allow_any=yes,
|
|
673
|
+
* so this always works. It holds the system non-idle, which is
|
|
674
|
+
* what stops logind's IdleAction (and a desktop's idle-suspend)
|
|
675
|
+
* from ever firing.
|
|
676
|
+
*
|
|
677
|
+
* Idle alone is the honest target anyway — it matches `caffeinate -s`, and
|
|
678
|
+
* declining to veto a suspend the user deliberately asked for is correct.
|
|
679
|
+
* Taking the stronger one when it is allowed costs nothing, so try both. */
|
|
680
|
+
function awakePrefixes() {
|
|
666
681
|
if (process.platform === "darwin")
|
|
667
|
-
return have("caffeinate") ? ["/usr/bin/caffeinate", "-s"] : [];
|
|
682
|
+
return have("caffeinate") ? [["/usr/bin/caffeinate", "-s"]] : [];
|
|
668
683
|
if (process.platform === "linux" && have("systemd-inhibit"))
|
|
669
|
-
return [
|
|
684
|
+
return ["sleep:idle", "idle"].map((what) => [
|
|
670
685
|
"systemd-inhibit",
|
|
671
|
-
|
|
686
|
+
`--what=${what}`,
|
|
672
687
|
"--who=work",
|
|
673
688
|
"--why=work server is running",
|
|
674
689
|
"--mode=block",
|
|
675
|
-
];
|
|
690
|
+
]);
|
|
676
691
|
return [];
|
|
677
692
|
}
|
|
678
693
|
|
|
694
|
+
/** systemd's ExecStart for the linux unit, as one line.
|
|
695
|
+
*
|
|
696
|
+
* With no inhibitor this is just the argv. Otherwise it is a shell that tries
|
|
697
|
+
* each candidate in turn and execs under the first one allowed, because
|
|
698
|
+
* `systemd-inhibit` exits non-zero when polkit refuses — and since it is the
|
|
699
|
+
* unit's ExecStart, that failure takes the whole service down with it. A
|
|
700
|
+
* lingering manager at boot has no session, so the sleep block is refused
|
|
701
|
+
* every time and `Restart=always` retries forever; the server would only come
|
|
702
|
+
* up once someone logged in, defeating the unattended start
|
|
703
|
+
* `loginctl enable-linger` exists to guarantee. Falling through to the
|
|
704
|
+
* ungated idle block keeps the machine awake anyway, and running bare is
|
|
705
|
+
* still better than not running. */
|
|
706
|
+
function serviceExecStart(candidates, argv) {
|
|
707
|
+
// systemd splits on whitespace, so quote any argument containing it.
|
|
708
|
+
const unit = (parts) =>
|
|
709
|
+
parts.map((a) => (a.includes(" ") ? `"${a}"` : a)).join(" ");
|
|
710
|
+
if (!candidates.length) return unit(argv);
|
|
711
|
+
const shq = (a) => `'${a.replace(/'/g, `'\\''`)}'`;
|
|
712
|
+
const cmd = argv.map(shq).join(" ");
|
|
713
|
+
// Each probe takes and drops an inhibitor around `true`; if that is allowed
|
|
714
|
+
// the real one will be too.
|
|
715
|
+
const script = candidates
|
|
716
|
+
.map((c) => {
|
|
717
|
+
const inh = c.map(shq).join(" ");
|
|
718
|
+
return `if ${inh} true 2>/dev/null; then exec ${inh} ${cmd}; fi; `;
|
|
719
|
+
})
|
|
720
|
+
.join("");
|
|
721
|
+
return `/bin/sh -c "${script}exec ${cmd}"`;
|
|
722
|
+
}
|
|
723
|
+
|
|
679
724
|
/** Where installService() writes the service definition — also the store we
|
|
680
725
|
* read settings back out of, so there is no second config file to keep. */
|
|
681
726
|
function serviceFile() {
|
|
@@ -887,9 +932,11 @@ function installService() {
|
|
|
887
932
|
// instead of the CLI — that script carries its own sleep inhibitor and
|
|
888
933
|
// PORT handling, so no awake prefix is layered on top.
|
|
889
934
|
const execOverride = process.env.WORK_SERVICE_EXEC;
|
|
890
|
-
const
|
|
891
|
-
|
|
892
|
-
|
|
935
|
+
const target = execOverride ? [execOverride] : [cliPath, "start"];
|
|
936
|
+
const awake = execOverride ? [] : awakePrefixes();
|
|
937
|
+
// launchd takes an argv, not a shell: caffeinate needs no authorisation, so
|
|
938
|
+
// the first candidate is simply used.
|
|
939
|
+
const startArgs = [...(awake[0] || []), ...target];
|
|
893
940
|
if (process.platform === "darwin") {
|
|
894
941
|
const plist = serviceFile();
|
|
895
942
|
fs.mkdirSync(path.dirname(plist), { recursive: true });
|
|
@@ -958,10 +1005,7 @@ ${envXml}
|
|
|
958
1005
|
const envLines = Object.entries(serviceEnv())
|
|
959
1006
|
.map(([k, v]) => `Environment=${k}=${v}`)
|
|
960
1007
|
.join("\n");
|
|
961
|
-
|
|
962
|
-
const execStart = startArgs
|
|
963
|
-
.map((a) => (a.includes(" ") ? `"${a}"` : a))
|
|
964
|
-
.join(" ");
|
|
1008
|
+
const execStart = serviceExecStart(awake, target);
|
|
965
1009
|
fs.writeFileSync(
|
|
966
1010
|
unitFile,
|
|
967
1011
|
`[Unit]
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as setSetting, V as publish, Y as getSetting, _t as git, bt as config, c as killWorkspaceSessions, dt as all, ft as db, gt as gh, i as disposeSessions, l as listSessions, nt as ghKnownHosts, ot as DEFAULT_GITHUB_HOST, p as panePids, pt as get, vt as run } from "./
|
|
1
|
+
import { $ as setSetting, V as publish, Y as getSetting, _t as git, bt as config, c as killWorkspaceSessions, dt as all, ft as db, gt as gh, i as disposeSessions, l as listSessions, nt as ghKnownHosts, ot as DEFAULT_GITHUB_HOST, p as panePids, pt as get, vt as run } from "./_DOBRRnfU.js";
|
|
2
2
|
import fs from "node:fs";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
@@ -1005,7 +1005,7 @@ async function materializeWorkspace(id) {
|
|
|
1005
1005
|
repo.default_branch = defaultBranch;
|
|
1006
1006
|
db.prepare("UPDATE repos SET base_branch = ?, default_branch = ? WHERE workspace_id = ? AND full_name = ?").run(repo.base_branch, defaultBranch, id, repo.full_name);
|
|
1007
1007
|
}
|
|
1008
|
-
(await import("./
|
|
1008
|
+
(await import("./_CrVv317N.js")).muteAutoPush(repo.full_name, ws.branch);
|
|
1009
1009
|
await addWorkspaceWorktree(bare, path.join(ws.path, repo.worktree), ws.branch, repo.base_branch);
|
|
1010
1010
|
added.push(repo);
|
|
1011
1011
|
});
|
|
@@ -1639,7 +1639,7 @@ async function noteRemoteRef(fullName, branch, oid) {
|
|
|
1639
1639
|
if (await revParse(barePath(fullName), `refs/heads/${branch}`) !== oid) return;
|
|
1640
1640
|
rememberPushed(k, oid);
|
|
1641
1641
|
if (failures.delete(k)) {
|
|
1642
|
-
const { pokeStatusWatch } = await import("./
|
|
1642
|
+
const { pokeStatusWatch } = await import("./_8GaDFTzQ.js");
|
|
1643
1643
|
pokeStatusWatch();
|
|
1644
1644
|
}
|
|
1645
1645
|
}
|
|
@@ -1704,7 +1704,7 @@ async function pushOnce(fullName, branch, bases) {
|
|
|
1704
1704
|
}
|
|
1705
1705
|
async function fail(k, why) {
|
|
1706
1706
|
failures.set(k, why);
|
|
1707
|
-
const { pokeStatusWatch } = await import("./
|
|
1707
|
+
const { pokeStatusWatch } = await import("./_8GaDFTzQ.js");
|
|
1708
1708
|
pokeStatusWatch();
|
|
1709
1709
|
return why;
|
|
1710
1710
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as _attr_style, At as _subscribe, Ct as _scope_reason, D as toast_default, Dt as _serialize_guard, Et as _sep, G as _attr_class, H as tone, I as iconBtnLg, J as _attr_input_value, K as _attr_details_or_dialog_open, L as iconBtnRow, O as icon_xmark_default, Ot as _serialize_if, Q as _attr_select_value, R as iconBtnXs, Rt as writeScope, St as _scope_id, Tt as _script, W as _attr, X as _attr_option_value, _ as diffScope, a as fuzzy, b as setDiffPos, bt as _resume, c as icon_arrow_up_default, ct as _el_resume, d as icon_refresh_default, dt as _existing_scope, g as diffPos, gt as _html, h as diffFilter, i as icon_sidebar_default, it as _content_resume, j as repoLabel, jt as _template, k as icon_base_default, kt as _set_serialize_reason, l as icon_chevron_right_default, lt as _escape, n as findIconBtn, ot as _el, pt as _for_of, r as findInput, s as icon_search_default, st as _el_read_error, t as icon_arrow_down_default, u as icon_back_default, v as diffTreeOpen, vt as _if, wt as _scope_with_id, x as setDiffScope, xt as _resume_branch, yt as _peek_scope_id } from "./
|
|
1
|
+
import { $ as _attr_style, At as _subscribe, Ct as _scope_reason, D as toast_default, Dt as _serialize_guard, Et as _sep, G as _attr_class, H as tone, I as iconBtnLg, J as _attr_input_value, K as _attr_details_or_dialog_open, L as iconBtnRow, O as icon_xmark_default, Ot as _serialize_if, Q as _attr_select_value, R as iconBtnXs, Rt as writeScope, St as _scope_id, Tt as _script, W as _attr, X as _attr_option_value, _ as diffScope, a as fuzzy, b as setDiffPos, bt as _resume, c as icon_arrow_up_default, ct as _el_resume, d as icon_refresh_default, dt as _existing_scope, g as diffPos, gt as _html, h as diffFilter, i as icon_sidebar_default, it as _content_resume, j as repoLabel, jt as _template, k as icon_base_default, kt as _set_serialize_reason, l as icon_chevron_right_default, lt as _escape, n as findIconBtn, ot as _el, pt as _for_of, r as findInput, s as icon_search_default, st as _el_read_error, t as icon_arrow_down_default, u as icon_back_default, v as diffTreeOpen, vt as _if, wt as _scope_with_id, x as setDiffScope, xt as _resume_branch, yt as _peek_scope_id } from "./_Dxspyv-X.js";
|
|
2
2
|
//#region src/client/router.ts
|
|
3
3
|
function urlFor(r) {
|
|
4
4
|
if (r.view === "settings") return "/settings";
|
|
@@ -1849,9 +1849,9 @@ var diff_find_default = _template("i", (input) => {
|
|
|
1849
1849
|
el.select();
|
|
1850
1850
|
}, 0);
|
|
1851
1851
|
}, "i5", $scope0_id);
|
|
1852
|
-
_html(`<div${_attr_class(["
|
|
1852
|
+
_html(`<div${_attr_class(["_gt", !open && "_gs"])} aria-hidden=${open ? "false" : "true"}><input${_attr_input_value($scope0_id, "b", query || "", _resume(function(v) {
|
|
1853
1853
|
type(v);
|
|
1854
|
-
}, "i0", $scope0_id))}${_attr_class(findInput)} type=search enterkeyhint=search autocomplete=off tabindex=${open ? "0" : "-1"} placeholder="Find in review" aria-label="Find in review">${_el_resume($scope0_id, "b")}<span${_attr_class("
|
|
1854
|
+
}, "i0", $scope0_id))}${_attr_class(findInput)} type=search enterkeyhint=search autocomplete=off tabindex=${open ? "0" : "-1"} placeholder="Find in review" aria-label="Find in review">${_el_resume($scope0_id, "b")}<span${_attr_class("_gw")}>${open && (query || "").trim() ? hits.length ? `${_escape(`${at + 1}`)}/${_escape(`${hits.length}`)}` : "0/0" : ""}${_el_resume($scope0_id, "d")}</span><button type=button${_attr_class(findIconBtn)} title="Previous match"${_attr("disabled", !hits.length || !open)} tabindex=${open ? "0" : "-1"}>`);
|
|
1855
1855
|
icon_arrow_up_default({ size: 14 });
|
|
1856
1856
|
_html(`</button>${_el_resume($scope0_id, "e")}<button type=button${_attr_class(findIconBtn)} title="Next match"${_attr("disabled", !hits.length || !open)} tabindex=${open ? "0" : "-1"}>`);
|
|
1857
1857
|
icon_arrow_down_default({ size: 14 });
|
|
@@ -2027,7 +2027,7 @@ var diff_file_default = _template("h", (input) => {
|
|
|
2027
2027
|
_scope_reason();
|
|
2028
2028
|
const $scope0_id = _scope_id();
|
|
2029
2029
|
_el($scope0_id, "h0");
|
|
2030
|
-
_html(`<div${_attr_class(["
|
|
2030
|
+
_html(`<div${_attr_class(["_h3", input.class])}></div>${_el_resume($scope0_id, "a")}`);
|
|
2031
2031
|
_script($scope0_id, "h1");
|
|
2032
2032
|
writeScope($scope0_id, {
|
|
2033
2033
|
e: input.file,
|
|
@@ -2434,7 +2434,7 @@ var review_section_default = _template("v", (input) => {
|
|
|
2434
2434
|
});
|
|
2435
2435
|
_resume_branch($scope0_id);
|
|
2436
2436
|
});
|
|
2437
|
-
var fileFilter = "
|
|
2437
|
+
var fileFilter = "_h2 _l";
|
|
2438
2438
|
//#endregion
|
|
2439
2439
|
//#region src/tags/file-filter.marko
|
|
2440
2440
|
var file_filter_default = _template("n", (input) => {
|
|
@@ -2464,7 +2464,7 @@ var file_filter_default = _template("n", (input) => {
|
|
|
2464
2464
|
pending = v;
|
|
2465
2465
|
box.timer = setTimeout(flush, 150);
|
|
2466
2466
|
}, "n2", $scope0_id);
|
|
2467
|
-
_html(`<div${_attr_class("
|
|
2467
|
+
_html(`<div${_attr_class("_h1")}><input${_attr_input_value($scope0_id, "b", draft, _resume(function(v) {
|
|
2468
2468
|
type(v);
|
|
2469
2469
|
}, "n0", $scope0_id))}${_attr_class(fileFilter)} type=search placeholder="Filter files…" aria-label="Filter files">${_el_resume($scope0_id, "b")}</div>`);
|
|
2470
2470
|
_script($scope0_id, "n3");
|
|
@@ -2497,7 +2497,7 @@ var $content = (input) => {
|
|
|
2497
2497
|
_for_of(dir.dirs, (child) => {
|
|
2498
2498
|
const $scope1_id = _scope_id();
|
|
2499
2499
|
const shut = input.collapsed.has(input.collapsedKey(child.path));
|
|
2500
|
-
_html(`<div${_attr_class("
|
|
2500
|
+
_html(`<div${_attr_class("_gN")}><button type=button${_attr_class(["_gO", { ["_gF"]: shut }])}${_attr("title", child.path)}${_attr_style(`--depth:${child.depth}`)}><span${_attr_class("_gV")}>`);
|
|
2501
2501
|
_if(() => {
|
|
2502
2502
|
if (shut) {
|
|
2503
2503
|
const $scope4_id = _scope_id();
|
|
@@ -2511,7 +2511,7 @@ var $content = (input) => {
|
|
|
2511
2511
|
return 1;
|
|
2512
2512
|
}
|
|
2513
2513
|
}, $scope1_id, "c", $sg__input, $sg__input, $sg__input, "</span>", 1);
|
|
2514
|
-
_html(`<span${_attr_class("
|
|
2514
|
+
_html(`<span${_attr_class("_gP")}>${_escape(child.label)}${_el_resume($scope1_id, "e", $sg__input_dir)}/</span></button>${_el_resume($scope1_id, "b")}`);
|
|
2515
2515
|
_if(() => {
|
|
2516
2516
|
if (!shut) {
|
|
2517
2517
|
const $scope2_id = _scope_id();
|
|
@@ -2558,11 +2558,11 @@ var $content = (input) => {
|
|
|
2558
2558
|
}, "path", $scope0_id, "a", $sg__input, $sg__input_dir, $sg__input_dir, 0, 1);
|
|
2559
2559
|
_for_of(dir.files, ({ file, name }) => {
|
|
2560
2560
|
const $scope3_id = _scope_id();
|
|
2561
|
-
_html(`<a${_attr("href", input.hrefFor(file.key))}${_attr_class(["
|
|
2561
|
+
_html(`<a${_attr("href", input.hrefFor(file.key))}${_attr_class(["_gR", { ["_gQ"]: input.collapsedFiles?.has(file.key) }])}${input.collapsedFiles?.has(file.key) ? _attr("title", `${file.path} (folded — click to open)`) : _attr("title", file.path)}${_attr_style(`--depth:${dir.depth + 1}`)}><span${_attr_class("_gW")}${_attr("data-status", file.status)}>${_escape(file.status)}${_el_resume($scope3_id, "c", $sg__input_dir)}</span>${_el_resume($scope3_id, "b", $sg__input_dir)}<span${_attr_class("_gS")}>${_escape(name)}${_el_resume($scope3_id, "e", $sg__input_dir)}</span>`);
|
|
2562
2562
|
_if(() => {
|
|
2563
2563
|
if (input.newKeys.has(file.key)) {
|
|
2564
2564
|
const $scope6_id = _scope_id();
|
|
2565
|
-
_html(`<span${_attr_class(["_y", "
|
|
2565
|
+
_html(`<span${_attr_class(["_y", "_gT"])} title="Changed since your last visit"></span>`);
|
|
2566
2566
|
_serialize_if($scope0_reason, 1) && writeScope($scope6_id, {});
|
|
2567
2567
|
return 0;
|
|
2568
2568
|
}
|
|
@@ -2570,7 +2570,7 @@ var $content = (input) => {
|
|
|
2570
2570
|
_if(() => {
|
|
2571
2571
|
if (input.commentKeys.has(file.key)) {
|
|
2572
2572
|
const $scope7_id = _scope_id();
|
|
2573
|
-
_html(`<span${_attr_class("
|
|
2573
|
+
_html(`<span${_attr_class("_gU")}>`);
|
|
2574
2574
|
icon_comment_default({ size: 12 });
|
|
2575
2575
|
_html("</span>");
|
|
2576
2576
|
_serialize_if($scope0_reason, 0) && writeScope($scope7_id, {});
|
|
@@ -2628,7 +2628,7 @@ var diff_tree_default = _template("l", (input) => {
|
|
|
2628
2628
|
scope: input.scope ?? null,
|
|
2629
2629
|
file: key
|
|
2630
2630
|
}), "l0", $scope0_id);
|
|
2631
|
-
_html(`<aside${_attr_class(["
|
|
2631
|
+
_html(`<aside${_attr_class(["_gG", { ["_gF"]: input.open === false }])}><div${_attr_class("_gH")}>`);
|
|
2632
2632
|
_set_serialize_reason(2);
|
|
2633
2633
|
const $childScope = _peek_scope_id();
|
|
2634
2634
|
file_filter_default({
|
|
@@ -2637,18 +2637,18 @@ var diff_tree_default = _template("l", (input) => {
|
|
|
2637
2637
|
filter = _new_filter;
|
|
2638
2638
|
}, "l1", $scope0_id)
|
|
2639
2639
|
});
|
|
2640
|
-
_html(`</div><div${_attr_class("
|
|
2640
|
+
_html(`</div><div${_attr_class("_gI")}>`);
|
|
2641
2641
|
_if(() => {
|
|
2642
2642
|
if (!input.sections.length && filter) {
|
|
2643
2643
|
const $scope3_id = _scope_id();
|
|
2644
|
-
_html(`<p${_attr_class("
|
|
2644
|
+
_html(`<p${_attr_class("_gJ")}>No files match.</p>`);
|
|
2645
2645
|
writeScope($scope3_id, {});
|
|
2646
2646
|
return 0;
|
|
2647
2647
|
}
|
|
2648
2648
|
}, $scope0_id, "e", 1, 1, 1, 0, 1);
|
|
2649
2649
|
_for_of(input.sections, (section) => {
|
|
2650
2650
|
const $scope1_id = _scope_id();
|
|
2651
|
-
_html(`<div${_attr_class("
|
|
2651
|
+
_html(`<div${_attr_class("_gK")}><button type=button${_attr_class(["_gL", { ["_gF"]: collapsedRepos.has(section.id) }])}><span${_attr_class("_gV")}>`);
|
|
2652
2652
|
_if(() => {
|
|
2653
2653
|
if (collapsedRepos.has(section.id)) {
|
|
2654
2654
|
const $scope4_id = _scope_id();
|
|
@@ -2662,12 +2662,12 @@ var diff_tree_default = _template("l", (input) => {
|
|
|
2662
2662
|
return 1;
|
|
2663
2663
|
}
|
|
2664
2664
|
}, $scope1_id, "c", 1, 1, 1, "</span>", 1);
|
|
2665
|
-
_html(`<span${_attr_class("
|
|
2665
|
+
_html(`<span${_attr_class("_gP")}>${_escape(section.label)}${_el_resume($scope1_id, "e", $sg__input_sections)}</span></button>${_el_resume($scope1_id, "b")}`);
|
|
2666
2666
|
_if(() => {
|
|
2667
2667
|
if (!collapsedRepos.has(section.id) || openedRepos.has(section.id)) {
|
|
2668
2668
|
const $scope2_id = _scope_id();
|
|
2669
2669
|
const root = treeDirs(section.files);
|
|
2670
|
-
_html(`<div${_attr_class("
|
|
2670
|
+
_html(`<div${_attr_class("_gM")}${_attr("hidden", collapsedRepos.has(section.id))}>`);
|
|
2671
2671
|
_set_serialize_reason(1);
|
|
2672
2672
|
const $childScope2 = _peek_scope_id();
|
|
2673
2673
|
diff_tree_dir_default({
|
|
@@ -2792,9 +2792,9 @@ var diff_file_sheet_default = _template("g", (input) => {
|
|
|
2792
2792
|
_if(() => {
|
|
2793
2793
|
if (open) {
|
|
2794
2794
|
const $scope1_id = _scope_id();
|
|
2795
|
-
_html(`<div${_attr_class("
|
|
2795
|
+
_html(`<div${_attr_class("_gc")}></div>${_el_resume($scope1_id, "a")}<div${_attr_class("_gd")} role=dialog aria-label="Jump to file"><div${_attr_class("_ge")}><strong${_attr_class("_gb")}>Files</strong><span${_attr_class("_gf")}>${_escape(input.files.length)}${_el_resume($scope1_id, "f", $sg__input_files_length)}${_sep($sg__input_total__OR__input_files_length)}${input.files.length !== total ? ` / ${_escape(`${total}`)}` : ""}${_el_resume($scope1_id, "g", $sg__input_total__OR__input_files_length)}</span><button type=button${_attr_class([iconBtnLg, "_ga"])} title=Close aria-label=Close>`);
|
|
2796
2796
|
icon_xmark_default({ size: 16 });
|
|
2797
|
-
_html(`</button>${_el_resume($scope1_id, "h")}</div><div${_attr_class("
|
|
2797
|
+
_html(`</button>${_el_resume($scope1_id, "h")}</div><div${_attr_class("_gn")}>`);
|
|
2798
2798
|
_set_serialize_reason(2);
|
|
2799
2799
|
const $childScope = _peek_scope_id();
|
|
2800
2800
|
file_filter_default({
|
|
@@ -2803,28 +2803,28 @@ var diff_file_sheet_default = _template("g", (input) => {
|
|
|
2803
2803
|
filter = _new_filter;
|
|
2804
2804
|
}, "g1", $scope1_id)
|
|
2805
2805
|
});
|
|
2806
|
-
_html(`</div><div${_attr_class("
|
|
2806
|
+
_html(`</div><div${_attr_class("_gg")}>`);
|
|
2807
2807
|
_for_of(groups, (group) => {
|
|
2808
2808
|
const $scope2_id = _scope_id();
|
|
2809
|
-
_html(`<div${_attr_class("
|
|
2809
|
+
_html(`<div${_attr_class("_gh")}><div${_attr_class("_gi")}>${_escape(group.repo)}${_el_resume($scope2_id, "c", $sg__input_files)}</div>`);
|
|
2810
2810
|
_for_of(group.dirs, ({ dir, files }) => {
|
|
2811
2811
|
const $scope3_id = _scope_id();
|
|
2812
|
-
_html(`<div${_attr_class("
|
|
2812
|
+
_html(`<div${_attr_class("_gj")}>`);
|
|
2813
2813
|
_if(() => {
|
|
2814
2814
|
if (dir) {
|
|
2815
2815
|
const $scope5_id = _scope_id();
|
|
2816
|
-
_html(`<div${_attr_class("
|
|
2816
|
+
_html(`<div${_attr_class("_gl")}${_attr("title", dir)}><bdi>${_escape(dir)}${_el_resume($scope5_id, "b", $sg__input_files)}/</bdi></div>${_el_resume($scope5_id, "a", $sg__input_files)}`);
|
|
2817
2817
|
$si__input_files && writeScope($scope5_id, { _: _scope_with_id($scope3_id) });
|
|
2818
2818
|
return 0;
|
|
2819
2819
|
}
|
|
2820
2820
|
}, $scope3_id, "b", $sg__input_files, $sg__input_files, $sg__input_files, 0, 1);
|
|
2821
2821
|
_for_of(files, ({ file, name }) => {
|
|
2822
2822
|
const $scope4_id = _scope_id();
|
|
2823
|
-
_html(`<a${_attr("href", hrefFor(file.key))}${_attr_class(["
|
|
2823
|
+
_html(`<a${_attr("href", hrefFor(file.key))}${_attr_class(["_gk", "_w"])}><span${_attr_class("_gr")}${_attr("data-status", file.status)}>${_escape(file.status)}${_el_resume($scope4_id, "c", $sg__input_files)}</span>${_el_resume($scope4_id, "b", $sg__input_files)}<span${_attr_class("_gm")}><bdi>${_escape(name)}${_el_resume($scope4_id, "e", $sg__input_files)}</bdi></span>`);
|
|
2824
2824
|
_if(() => {
|
|
2825
2825
|
if (newKeys.has(file.key)) {
|
|
2826
2826
|
const $scope6_id = _scope_id();
|
|
2827
|
-
_html(`<span${_attr_class(["_y", "
|
|
2827
|
+
_html(`<span${_attr_class(["_y", "_gp"])} title="Changed since your last visit"></span>`);
|
|
2828
2828
|
_serialize_if($scope0_reason, 1) && writeScope($scope6_id, {});
|
|
2829
2829
|
return 0;
|
|
2830
2830
|
}
|
|
@@ -2834,7 +2834,7 @@ var diff_file_sheet_default = _template("g", (input) => {
|
|
|
2834
2834
|
const $scope7_id = _scope_id();
|
|
2835
2835
|
icon_comment_default({
|
|
2836
2836
|
size: 12,
|
|
2837
|
-
class: "
|
|
2837
|
+
class: "_gq"
|
|
2838
2838
|
});
|
|
2839
2839
|
_serialize_if($scope0_reason, 0) && writeScope($scope7_id, {});
|
|
2840
2840
|
return 0;
|
|
@@ -2859,7 +2859,7 @@ var diff_file_sheet_default = _template("g", (input) => {
|
|
|
2859
2859
|
_if(() => {
|
|
2860
2860
|
if (!input.files.length) {
|
|
2861
2861
|
const $scope8_id = _scope_id();
|
|
2862
|
-
_html(`<p${_attr_class("
|
|
2862
|
+
_html(`<p${_attr_class("_go")}>No files match.</p>`);
|
|
2863
2863
|
$si__input_files_length && writeScope($scope8_id, {});
|
|
2864
2864
|
return 0;
|
|
2865
2865
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { U as subscriberCount, V as publish, W as subscriberJoins, dt as all, ft as db, g as sessionStates, l as listSessions } from "./
|
|
2
|
-
import { A as portsByWorkspace, J as hostToken, K as forgetToken, M as headOid, Q as ownsBranch, R as repoParent, V as DEFAULT_HOST, Y as joinRepo, Z as splitRepo, h as listWorkspaces, o as pushFailureFor, q as graphqlUrl, z as swr } from "./
|
|
1
|
+
import { U as subscriberCount, V as publish, W as subscriberJoins, dt as all, ft as db, g as sessionStates, l as listSessions } from "./_DOBRRnfU.js";
|
|
2
|
+
import { A as portsByWorkspace, J as hostToken, K as forgetToken, M as headOid, Q as ownsBranch, R as repoParent, V as DEFAULT_HOST, Y as joinRepo, Z as splitRepo, h as listWorkspaces, o as pushFailureFor, q as graphqlUrl, z as swr } from "./_930ti7l4.js";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
//#region src/server/github-api.ts
|
|
5
5
|
/** Run a GraphQL query against one host.
|
|
@@ -6556,7 +6556,7 @@ function publishChange(sessionId) {
|
|
|
6556
6556
|
const row = get("SELECT workspace_id FROM sessions WHERE id = ?", sessionId);
|
|
6557
6557
|
if (row?.workspace_id) {
|
|
6558
6558
|
const workspaceId = row.workspace_id;
|
|
6559
|
-
import("./
|
|
6559
|
+
import("./_iX5oUHA_.js").then((m) => m.notifySessionsChanged(workspaceId));
|
|
6560
6560
|
return;
|
|
6561
6561
|
}
|
|
6562
6562
|
publish("sessions.changed");
|
|
@@ -8194,10 +8194,20 @@ var AGENT_BOOT_MS = 1500;
|
|
|
8194
8194
|
var PASTE_SETTLE_MS = 150;
|
|
8195
8195
|
/** Command for a session kind: the instance's binary (`claude2`,
|
|
8196
8196
|
* `cursor-agent`), nothing for `shell`; `command.<agent>` in settings still
|
|
8197
|
-
* overrides for one-off wrappers.
|
|
8197
|
+
* overrides for one-off wrappers.
|
|
8198
|
+
*
|
|
8199
|
+
* An override that names nothing on PATH is ignored rather than launched:
|
|
8200
|
+
* restores written before overrides stopped being exported carry the old
|
|
8201
|
+
* machine's wrapper, and honouring it fails every session of that family
|
|
8202
|
+
* with a bare "command not found" in the pane. An override holding args
|
|
8203
|
+
* (`claude --foo`) is checked on its first word only; a relative or absolute
|
|
8204
|
+
* path is left alone, since `which` only answers for PATH lookups. */
|
|
8198
8205
|
function sessionCommand(agent) {
|
|
8199
8206
|
const override = getSetting(`command.${agent}`);
|
|
8200
|
-
if (override)
|
|
8207
|
+
if (override) {
|
|
8208
|
+
const argv = override.split(/\s+/);
|
|
8209
|
+
if (argv[0].includes("/") || which(argv[0])) return argv;
|
|
8210
|
+
}
|
|
8201
8211
|
const command = agentCommand(agent);
|
|
8202
8212
|
return command ? [command] : [];
|
|
8203
8213
|
}
|
|
@@ -2320,8 +2320,8 @@ var icon_sidebar_default = _template("jb", (input) => {
|
|
|
2320
2320
|
});
|
|
2321
2321
|
_serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
|
|
2322
2322
|
});
|
|
2323
|
-
var findInput = "
|
|
2324
|
-
var findIconBtn = "
|
|
2323
|
+
var findInput = "_gu _l";
|
|
2324
|
+
var findIconBtn = "_gx _j";
|
|
2325
2325
|
//#endregion
|
|
2326
2326
|
//#region src/tags/icons/icon-arrow-down.marko
|
|
2327
2327
|
var icon_arrow_down_default = _template("I", (input) => {
|