@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
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as __toCommonJS, i as __require, n as __esmMin, o as __toESM, r as __exportAll, t as __commonJSMin } from "./_BMI-E3GI.js";
|
|
2
|
-
import { $ as setSetting, A as setScrapedPhase, B as saveSubscription, C as agentBadge, D as agentMeta, E as agentLabel, F as manifest, G as agentChoices, H as subscribe, I as normalizeAccent, J as enabledAgents, K as allPrefs, L as setInstance, M as ACCENT_RE, N as getInstance, O as clearAgentPhase, P as iconSvg, Q as setPref, R as deleteSubscription, S as blankRow, T as agentFromCommand, U as subscriberCount, V as publish, W as subscriberJoins, X as preferredAgent, Y as getSetting, Z as setDisabledAgents, _ as tmuxName, _t as run, a as ensureTmuxServer, at as which, b as readHookPayload, c as killWorkspaceSessions, ct as agentById, d as newSessionArgs, dt as db, et as discoverAgents, ft as get, g as sessionStates, gt as git, h as sendToSession, ht as gh, i as disposeSessions, it as setupPath, j as setSessionViewers, k as setAgentPhase, l as listSessions, lt as toolById, m as renameSession, mt as TMUX_SOCKET, n as clearTmuxStarted, nt as ghKnownHosts, o as getSession, ot as DEFAULT_GITHUB_HOST, p as panePids, pt as workspacePath, q as disabledAgents, r as createSession, rt as miseVersions, s as killSession, st as TOOLS, t as cleanEnv, tt as doctor, u as markTmuxStarted, ut as all, v as tmuxWasStarted, vt as tmux, w as agentFamily, x as reportsWorking, y as AGENTS, yt as config, z as pushPublicKey } from "./
|
|
3
|
-
import { $ as _content, A as repoLabel, At as attrTag, B as phase, C as sideNavOpen, Ct as _serialize_if, D as icon_xmark_default, Dt as _to_text, E as toast_default, Et as _template, H as $global, I as iconBtnRow, J as _attr_or, K as _attr_input_value, L as iconBtnXs, M as setPrimaryHost, Mt as withPageAssets, N as btnLg, Nt as writeScope, O as icon_base_default, Ot as _trailers, P as btnSm, Q as _attrs_partial, R as inputLg, S as setWorkspaceTab, St as _serialize_guard, T as workspaceTab, Tt as _subscribe, U as _attr, V as tone, W as _attr_class, X as _attr_style, Y as _attr_select_value, Z as _attrs, _t as _scope_id, at as _escape, bt as _script, c as icon_arrow_up_default, ct as _for_of, d as iconBtn$2, dt as _html, et as _content_resume, f as row, ft as _id, gt as _resume_branch, ht as _resume, i as icon_sidebar_default, it as _el_resume, j as repoWebUrl$1, jt as forOf, k as parseRepoUrl, kt as _var, l as icon_back_default, lt as _hoist, mt as _peek_scope_id, n as findIconBtn, o as rankRepos, ot as _existing_scope, p as sectionCount$1, pt as _if, q as _attr_option_value, r as findInput, rt as _el_read_error, s as icon_search_default, st as _flush_head, t as icon_arrow_down_default, tt as _dynamic_tag, u as icon_refresh_default, ut as _hoist_read_error, v as ignoredSsoOrgs, vt as _scope_reason, w as theme, wt as _set_serialize_reason, x as setTheme, xt as _sep, yt as _scope_with_id, z as metaTrunc } from "./
|
|
2
|
+
import { $ as setSetting, A as setScrapedPhase, B as saveSubscription, C as agentBadge, D as agentMeta, E as agentLabel, F as manifest, G as agentChoices, H as subscribe, I as normalizeAccent, J as enabledAgents, K as allPrefs, L as setInstance, M as ACCENT_RE, N as getInstance, O as clearAgentPhase, P as iconSvg, Q as setPref, R as deleteSubscription, S as blankRow, T as agentFromCommand, U as subscriberCount, V as publish, W as subscriberJoins, X as preferredAgent, Y as getSetting, Z as setDisabledAgents, _ as tmuxName, _t as run, a as ensureTmuxServer, at as which, b as readHookPayload, c as killWorkspaceSessions, ct as agentById, d as newSessionArgs, dt as db, et as discoverAgents, ft as get, g as sessionStates, gt as git, h as sendToSession, ht as gh, i as disposeSessions, it as setupPath, j as setSessionViewers, k as setAgentPhase, l as listSessions, lt as toolById, m as renameSession, mt as TMUX_SOCKET, n as clearTmuxStarted, nt as ghKnownHosts, o as getSession, ot as DEFAULT_GITHUB_HOST, p as panePids, pt as workspacePath, q as disabledAgents, r as createSession, rt as miseVersions, s as killSession, st as TOOLS, t as cleanEnv, tt as doctor, u as markTmuxStarted, ut as all, v as tmuxWasStarted, vt as tmux, w as agentFamily, x as reportsWorking, y as AGENTS, yt as config, z as pushPublicKey } from "./_DE2RUdbF.js";
|
|
3
|
+
import { $ as _content, A as repoLabel, At as attrTag, B as phase, C as sideNavOpen, Ct as _serialize_if, D as icon_xmark_default, Dt as _to_text, E as toast_default, Et as _template, H as $global, I as iconBtnRow, J as _attr_or, K as _attr_input_value, L as iconBtnXs, M as setPrimaryHost, Mt as withPageAssets, N as btnLg, Nt as writeScope, O as icon_base_default, Ot as _trailers, P as btnSm, Q as _attrs_partial, R as inputLg, S as setWorkspaceTab, St as _serialize_guard, T as workspaceTab, Tt as _subscribe, U as _attr, V as tone, W as _attr_class, X as _attr_style, Y as _attr_select_value, Z as _attrs, _t as _scope_id, at as _escape, bt as _script, c as icon_arrow_up_default, ct as _for_of, d as iconBtn$2, dt as _html, et as _content_resume, f as row, ft as _id, gt as _resume_branch, ht as _resume, i as icon_sidebar_default, it as _el_resume, j as repoWebUrl$1, jt as forOf, k as parseRepoUrl, kt as _var, l as icon_back_default, lt as _hoist, mt as _peek_scope_id, n as findIconBtn, o as rankRepos, ot as _existing_scope, p as sectionCount$1, pt as _if, q as _attr_option_value, r as findInput, rt as _el_read_error, s as icon_search_default, st as _flush_head, t as icon_arrow_down_default, tt as _dynamic_tag, u as icon_refresh_default, ut as _hoist_read_error, v as ignoredSsoOrgs, vt as _scope_reason, w as theme, wt as _set_serialize_reason, x as setTheme, xt as _sep, yt as _scope_with_id, z as metaTrunc } from "./_EzN3zMKL.js";
|
|
4
4
|
import fs from "node:fs";
|
|
5
5
|
import { createServer } from "node:http";
|
|
6
6
|
import path from "node:path";
|
|
@@ -1662,8 +1662,10 @@ var LIST_FIELDS = "nameWithOwner,defaultBranchRef,isArchived,parent";
|
|
|
1662
1662
|
var LIST_FIELDS_NO_PARENT = "nameWithOwner,defaultBranchRef,isArchived";
|
|
1663
1663
|
/** Orgs that still need SAML SSO for this host's gh token. Memberships
|
|
1664
1664
|
* list them even when unauthorized; probing `orgs/<login>` yields the
|
|
1665
|
-
* authorize URL via `X-GitHub-SSO`. URLs
|
|
1666
|
-
|
|
1665
|
+
* authorize URL via `X-GitHub-SSO`. Authorize URLs live ~1 h; both
|
|
1666
|
+
* authorize flows pass `refresh=true`, so a 15 min TTL is enough and
|
|
1667
|
+
* keeps the status poll from re-probing every minute. */
|
|
1668
|
+
var ssoCache = swr(9e5, (host) => probePendingSso(host));
|
|
1667
1669
|
function pendingSsoOrgs(host, refresh = false) {
|
|
1668
1670
|
return ssoCache(host, refresh);
|
|
1669
1671
|
}
|
|
@@ -1921,15 +1923,28 @@ var branches = swr(3e5, async (fullName) => {
|
|
|
1921
1923
|
//#endregion
|
|
1922
1924
|
//#region src/server/procs.ts
|
|
1923
1925
|
var darwin = process.platform === "darwin";
|
|
1926
|
+
/** Is `cwd` the workspace root or somewhere under it? The trailing slash is
|
|
1927
|
+
* the whole point: a sibling `…/work-2` must not read as inside `…/work`. */
|
|
1928
|
+
function inside(cwd, root) {
|
|
1929
|
+
return cwd === root || cwd.startsWith(root + "/");
|
|
1930
|
+
}
|
|
1924
1931
|
/** Listening TCP ports attributed to workspaces by the owning process's cwd. */
|
|
1925
1932
|
async function portsByWorkspace(paths) {
|
|
1926
1933
|
const result = /* @__PURE__ */ new Map();
|
|
1927
1934
|
const canonical = new Map([...paths].map(([wsId, p]) => [wsId, realPath(p)]));
|
|
1928
|
-
const [ports, cwds] = await Promise.all([listeningPorts(), processCwds()])
|
|
1935
|
+
const [ports, cwds] = darwin ? await Promise.all([listeningPorts(), processCwds()]) : await (async () => {
|
|
1936
|
+
const ports = await listeningPorts();
|
|
1937
|
+
const cwds = /* @__PURE__ */ new Map();
|
|
1938
|
+
await Promise.all([...new Set(ports.map((p) => p.pid))].map(async (pid) => {
|
|
1939
|
+
const cwd = await readCwd(pid);
|
|
1940
|
+
if (cwd) cwds.set(pid, cwd);
|
|
1941
|
+
}));
|
|
1942
|
+
return [ports, cwds];
|
|
1943
|
+
})();
|
|
1929
1944
|
for (const info of ports) {
|
|
1930
1945
|
const cwd = cwds.get(info.pid);
|
|
1931
1946
|
if (!cwd) continue;
|
|
1932
|
-
for (const [wsId, wsPath] of canonical) if (cwd
|
|
1947
|
+
for (const [wsId, wsPath] of canonical) if (inside(cwd, wsPath)) {
|
|
1933
1948
|
const list = result.get(wsId) || [];
|
|
1934
1949
|
list.push(info);
|
|
1935
1950
|
result.set(wsId, list);
|
|
@@ -1949,7 +1964,7 @@ async function workspaceProcs(wsPath) {
|
|
|
1949
1964
|
for (const { port, pid } of ports) portsByPid.set(pid, [...portsByPid.get(pid) || [], port]);
|
|
1950
1965
|
const procs = [];
|
|
1951
1966
|
for (const [pid, cwd] of cwds) {
|
|
1952
|
-
if (cwd
|
|
1967
|
+
if (!inside(cwd, wsPath)) continue;
|
|
1953
1968
|
const parts = await procArgs(pid);
|
|
1954
1969
|
if (!parts.length) continue;
|
|
1955
1970
|
const cmd = parts[0].split("/").pop() || parts[0];
|
|
@@ -1975,10 +1990,7 @@ async function killWorkspaceProcs(wsPath) {
|
|
|
1975
1990
|
async function killWorkspaceProc(pid, wsPaths) {
|
|
1976
1991
|
const cwd = await readCwd(pid);
|
|
1977
1992
|
if (!cwd) return false;
|
|
1978
|
-
if (!wsPaths.some((p) =>
|
|
1979
|
-
const root = realPath(p);
|
|
1980
|
-
return cwd === root || cwd.startsWith(root + "/");
|
|
1981
|
-
})) return false;
|
|
1993
|
+
if (!wsPaths.some((p) => inside(cwd, realPath(p)))) return false;
|
|
1982
1994
|
try {
|
|
1983
1995
|
process.kill(pid, "SIGTERM");
|
|
1984
1996
|
} catch {
|
|
@@ -2146,10 +2158,10 @@ function getWorkspace(id) {
|
|
|
2146
2158
|
const ws = get("SELECT * FROM workspaces WHERE id = ?", id);
|
|
2147
2159
|
return ws && hydrate(ws);
|
|
2148
2160
|
}
|
|
2161
|
+
var home$1 = os.homedir();
|
|
2149
2162
|
function hydrate(ws) {
|
|
2150
|
-
const home = os.homedir();
|
|
2151
2163
|
ws.repos = all("SELECT full_name, worktree, base_branch, default_branch FROM repos WHERE workspace_id = ? ORDER BY worktree", ws.id);
|
|
2152
|
-
ws.display_path = ws.path.startsWith(home) ? `~${ws.path.slice(home.length)}` : ws.path;
|
|
2164
|
+
ws.display_path = ws.path.startsWith(home$1) ? `~${ws.path.slice(home$1.length)}` : ws.path;
|
|
2153
2165
|
return ws;
|
|
2154
2166
|
}
|
|
2155
2167
|
async function createWorkspace(name, repos) {
|
|
@@ -2163,10 +2175,10 @@ async function createWorkspace(name, repos) {
|
|
|
2163
2175
|
const added = [];
|
|
2164
2176
|
fs.mkdirSync(dir, { recursive: true });
|
|
2165
2177
|
try {
|
|
2166
|
-
|
|
2178
|
+
const results = await Promise.allSettled(repos.map(async (repo) => {
|
|
2167
2179
|
const worktree = siblings.get(repo.fullName);
|
|
2168
2180
|
const fullName = await resolveFork(repo);
|
|
2169
|
-
|
|
2181
|
+
return withRepoLock(fullName, async () => {
|
|
2170
2182
|
const bare = await ensureBare(fullName);
|
|
2171
2183
|
const defaultBranch = await bareDefaultBranch(bare);
|
|
2172
2184
|
const base = repo.baseBranch || defaultBranch;
|
|
@@ -2178,8 +2190,10 @@ async function createWorkspace(name, repos) {
|
|
|
2178
2190
|
default_branch: defaultBranch
|
|
2179
2191
|
};
|
|
2180
2192
|
});
|
|
2181
|
-
|
|
2182
|
-
|
|
2193
|
+
}));
|
|
2194
|
+
for (const r of results) if (r.status === "fulfilled") added.push(r.value);
|
|
2195
|
+
const failed = results.find((r) => r.status === "rejected");
|
|
2196
|
+
if (failed && failed.status === "rejected") throw failed.reason;
|
|
2183
2197
|
} catch (err) {
|
|
2184
2198
|
for (const r of added) await withRepoLock(r.full_name, () => git([
|
|
2185
2199
|
"worktree",
|
|
@@ -2284,6 +2298,7 @@ async function deleteWorkspace(id) {
|
|
|
2284
2298
|
const sessions = listSessions(id);
|
|
2285
2299
|
db.prepare("DELETE FROM workspaces WHERE id = ?").run(id);
|
|
2286
2300
|
db.prepare("DELETE FROM settings WHERE key = ?").run(`review.seen:${id}`);
|
|
2301
|
+
db.prepare("DELETE FROM settings WHERE key IN (?, ?, ?)").run(`ui.tab:${id}`, `ui.diff-filter:${id}`, `ui.diff-pos:${id}`);
|
|
2287
2302
|
notifyWorkspacesChanged();
|
|
2288
2303
|
progress$1(`Stopping sessions and processes…`);
|
|
2289
2304
|
await disposeSessions(sessions);
|
|
@@ -2599,12 +2614,7 @@ async function pruneLaneBranch(workspaceId, fullName, lane, headOid) {
|
|
|
2599
2614
|
if (!ws.repos.some((r) => r.full_name === fullName)) return false;
|
|
2600
2615
|
return withRepoLock(fullName, async () => {
|
|
2601
2616
|
const bare = barePath(fullName);
|
|
2602
|
-
|
|
2603
|
-
"rev-parse",
|
|
2604
|
-
"--verify",
|
|
2605
|
-
`refs/heads/${lane}`
|
|
2606
|
-
], bare).catch(() => "");
|
|
2607
|
-
if (!local || local !== headOid) return false;
|
|
2617
|
+
if (await revParse(bare, `refs/heads/${lane}`) !== headOid) return false;
|
|
2608
2618
|
return git([
|
|
2609
2619
|
"branch",
|
|
2610
2620
|
"-D",
|
|
@@ -3317,14 +3327,13 @@ async function refreshPrsBatch(targets, force = false) {
|
|
|
3317
3327
|
if (upstream) names.add(splitRepo(upstream).name);
|
|
3318
3328
|
byHost.set(host, names);
|
|
3319
3329
|
}
|
|
3320
|
-
const
|
|
3321
|
-
const results = await Promise.all([...byHost].map(([host, names]) => searchPrs(host, [...names],
|
|
3330
|
+
const branches = [...new Set(wanted.map((t) => t.branch))];
|
|
3331
|
+
const results = await Promise.all([...byHost].map(([host, names]) => searchPrs(host, [...names], branches).catch((err) => {
|
|
3322
3332
|
if (byHost.size === 1) throw err;
|
|
3323
3333
|
return null;
|
|
3324
3334
|
})));
|
|
3325
3335
|
const nodes = results.flatMap((r) => r ?? []);
|
|
3326
3336
|
const failedHosts = new Set([...byHost.keys()].filter((_, i) => results[i] === null));
|
|
3327
|
-
const branches = [...new Set(wanted.map((t) => t.branch))];
|
|
3328
3337
|
for (const target of wanted) {
|
|
3329
3338
|
if (failedHosts.has(splitRepo(target.fullName).host)) continue;
|
|
3330
3339
|
const foreign = branches.filter((b) => b !== target.branch);
|
|
@@ -3354,13 +3363,15 @@ function withoutDismissed(workspaceId, fullName, list) {
|
|
|
3354
3363
|
}
|
|
3355
3364
|
//#endregion
|
|
3356
3365
|
//#region src/server/git-refs.ts
|
|
3357
|
-
/** The checked-out commit of a worktree, read off disk
|
|
3366
|
+
/** The checked-out commit (and branch name) of a worktree, read off disk
|
|
3367
|
+
* instead of spawned.
|
|
3358
3368
|
*
|
|
3359
|
-
* Every status tick needs
|
|
3369
|
+
* Every status tick needs the oid for every repo of every active workspace —
|
|
3360
3370
|
* it is what tells an open review that an agent committed, since a local
|
|
3361
|
-
* commit reaches GitHub through nothing the app can be told about.
|
|
3362
|
-
*
|
|
3363
|
-
* the
|
|
3371
|
+
* commit reaches GitHub through nothing the app can be told about. Diff
|
|
3372
|
+
* loads also need the branch; both answers come from the same HEAD read.
|
|
3373
|
+
* As a process per repo per tick that was the bulk of the git the server
|
|
3374
|
+
* ran; the same answer is three small file reads.
|
|
3364
3375
|
*
|
|
3365
3376
|
* `git` stays the authority for anything this cannot read confidently: a
|
|
3366
3377
|
* ref backend it does not understand, a chain that does not end in an oid,
|
|
@@ -3368,7 +3379,17 @@ function withoutDismissed(workspaceId, fullName, list) {
|
|
|
3368
3379
|
* because the drift banner reads a stale oid as "your checkout differs
|
|
3369
3380
|
* from the review". */
|
|
3370
3381
|
async function headOid(dir) {
|
|
3371
|
-
|
|
3382
|
+
const read = await readHead(dir).catch(() => null);
|
|
3383
|
+
if (read) return read;
|
|
3384
|
+
const [oid, branch] = await Promise.all([spawnHead(dir), git([
|
|
3385
|
+
"rev-parse",
|
|
3386
|
+
"--abbrev-ref",
|
|
3387
|
+
"HEAD"
|
|
3388
|
+
], dir).catch(() => "HEAD")]);
|
|
3389
|
+
return {
|
|
3390
|
+
oid,
|
|
3391
|
+
branch
|
|
3392
|
+
};
|
|
3372
3393
|
}
|
|
3373
3394
|
var spawnHead = (dir) => git(["rev-parse", "HEAD"], dir).catch(() => "");
|
|
3374
3395
|
/** Both hash algorithms, since a repo may be SHA-256. */
|
|
@@ -3377,8 +3398,17 @@ var OID = /^[0-9a-f]{40}(?:[0-9a-f]{24})?$/;
|
|
|
3377
3398
|
var MAX_HOPS = 5;
|
|
3378
3399
|
async function readHead(dir) {
|
|
3379
3400
|
const { gitDir, common } = await gitDirs(dir);
|
|
3380
|
-
if (await exists(path.join(common, "reftable"))) return
|
|
3401
|
+
if (await exists(path.join(common, "reftable"))) return null;
|
|
3381
3402
|
let ref = (await fsp.readFile(path.join(gitDir, "HEAD"), "utf8")).trim();
|
|
3403
|
+
let branch = "HEAD";
|
|
3404
|
+
if (ref.startsWith("ref: ")) {
|
|
3405
|
+
const name = ref.slice(5).trim();
|
|
3406
|
+
if (name.startsWith("refs/heads/")) branch = name.slice(11);
|
|
3407
|
+
} else if (OID.test(ref)) return {
|
|
3408
|
+
oid: ref,
|
|
3409
|
+
branch: "HEAD"
|
|
3410
|
+
};
|
|
3411
|
+
else return null;
|
|
3382
3412
|
for (let hop = 0; ref.startsWith("ref: ") && hop < MAX_HOPS; hop++) {
|
|
3383
3413
|
const name = ref.slice(5).trim();
|
|
3384
3414
|
const loose = await read(path.join(gitDir, name)) ?? await read(path.join(common, name));
|
|
@@ -3387,12 +3417,21 @@ async function readHead(dir) {
|
|
|
3387
3417
|
continue;
|
|
3388
3418
|
}
|
|
3389
3419
|
const packed = await read(path.join(common, "packed-refs"));
|
|
3390
|
-
if (packed === void 0) return
|
|
3420
|
+
if (packed === void 0) return {
|
|
3421
|
+
oid: "",
|
|
3422
|
+
branch
|
|
3423
|
+
};
|
|
3391
3424
|
const line = packed.split("\n").find((l) => !l.startsWith("^") && l.endsWith(` ${name}`));
|
|
3392
|
-
if (!line) return
|
|
3425
|
+
if (!line) return {
|
|
3426
|
+
oid: "",
|
|
3427
|
+
branch
|
|
3428
|
+
};
|
|
3393
3429
|
ref = line.slice(0, line.indexOf(" "));
|
|
3394
3430
|
}
|
|
3395
|
-
return OID.test(ref) ?
|
|
3431
|
+
return OID.test(ref) ? {
|
|
3432
|
+
oid: ref,
|
|
3433
|
+
branch
|
|
3434
|
+
} : null;
|
|
3396
3435
|
}
|
|
3397
3436
|
/** A worktree's `.git` is a file pointing at its admin directory inside the
|
|
3398
3437
|
* shared bare cache, which in turn points back at the common ref store. */
|
|
@@ -3518,15 +3557,12 @@ async function statusForAllFresh() {
|
|
|
3518
3557
|
/** RSS here is the Node + Marko baseline (~80 MB empty, ~115 MB loaded),
|
|
3519
3558
|
* not a leak and not worth chasing — young-gen flags do not move it. */
|
|
3520
3559
|
async function computeStatus() {
|
|
3521
|
-
const
|
|
3560
|
+
const everyWorkspace = listWorkspaces();
|
|
3561
|
+
const workspaces = everyWorkspace.filter((ws) => ws.status === "active");
|
|
3522
3562
|
const paths = new Map(workspaces.map((ws) => [ws.id, ws.path]));
|
|
3523
3563
|
const [ports, states] = await Promise.all([portsByWorkspace(paths), sessionStates()]);
|
|
3524
|
-
const allBranches = listWorkspaces().map((w) => ({
|
|
3525
|
-
id: w.id,
|
|
3526
|
-
branch: w.branch
|
|
3527
|
-
}));
|
|
3528
3564
|
const entries = await Promise.all(workspaces.map(async (ws) => {
|
|
3529
|
-
const foreign =
|
|
3565
|
+
const foreign = everyWorkspace.filter((w) => w.id !== ws.id).map((w) => w.branch);
|
|
3530
3566
|
const statuses = await Promise.all(ws.repos.map((repo) => repoStatus(ws, repo, foreign)));
|
|
3531
3567
|
return [ws.id, {
|
|
3532
3568
|
ports: ports.get(ws.id) || [],
|
|
@@ -3538,7 +3574,7 @@ async function computeStatus() {
|
|
|
3538
3574
|
}
|
|
3539
3575
|
async function repoStatus(ws, repo, foreign) {
|
|
3540
3576
|
const dir = path.join(ws.path, repo.worktree);
|
|
3541
|
-
const [repoPrs, localHead] = await Promise.all([workspacePrs(repo.full_name, ws.branch, foreign).then((list) => withoutDismissed(ws.id, repo.full_name, list)), headOid(dir)]);
|
|
3577
|
+
const [repoPrs, localHead] = await Promise.all([workspacePrs(repo.full_name, ws.branch, foreign).then((list) => withoutDismissed(ws.id, repo.full_name, list)), headOid(dir).then((h) => h.oid)]);
|
|
3542
3578
|
return {
|
|
3543
3579
|
full_name: repo.full_name,
|
|
3544
3580
|
worktree: repo.worktree,
|
|
@@ -3587,11 +3623,12 @@ var QUICK_MS = 80;
|
|
|
3587
3623
|
var _middleware_default$3 = Run.ALL(async (_ctx, next) => {
|
|
3588
3624
|
const statusP = statusForAll();
|
|
3589
3625
|
const quick = await Promise.race([statusP.then((s) => ({ s })), sleep(QUICK_MS).then(() => null)]).catch(() => null);
|
|
3626
|
+
const agents = enabledAgents();
|
|
3590
3627
|
const res = await next({
|
|
3591
3628
|
workspaces: listWorkspaces(),
|
|
3592
3629
|
settings: {
|
|
3593
|
-
preferredAgent: preferredAgent(),
|
|
3594
|
-
agents
|
|
3630
|
+
preferredAgent: preferredAgent(agents),
|
|
3631
|
+
agents,
|
|
3595
3632
|
instance: getInstance()
|
|
3596
3633
|
},
|
|
3597
3634
|
prefs: allPrefs(),
|
|
@@ -3789,6 +3826,23 @@ async function api$7(url, init) {
|
|
|
3789
3826
|
return data;
|
|
3790
3827
|
}
|
|
3791
3828
|
//#endregion
|
|
3829
|
+
//#region lib/usage/format.mjs
|
|
3830
|
+
/** Percent, with a decimal only where rounding would lie: 99.6% must not
|
|
3831
|
+
* read as a spent 100%, and 0.4% must not read as an untouched 0%. */
|
|
3832
|
+
function pctText(pct) {
|
|
3833
|
+
const rounded = Math.round(pct);
|
|
3834
|
+
return rounded !== pct && (rounded === 100 || rounded === 0) ? `${pct.toFixed(1)}%` : `${rounded}%`;
|
|
3835
|
+
}
|
|
3836
|
+
/** Coarse span — minutes, then hours, then days. Used for "resets in" and
|
|
3837
|
+
* "n old", where a precise figure would imply freshness it doesn't have. */
|
|
3838
|
+
function duration(ms) {
|
|
3839
|
+
const m = Math.round(ms / 6e4);
|
|
3840
|
+
if (m < 60) return `${m}m`;
|
|
3841
|
+
const h = Math.round(m / 60);
|
|
3842
|
+
if (h < 48) return `${h}h`;
|
|
3843
|
+
return `${Math.round(h / 24)}d`;
|
|
3844
|
+
}
|
|
3845
|
+
//#endregion
|
|
3792
3846
|
//#region src/client/usage.ts
|
|
3793
3847
|
var cached$1 = null;
|
|
3794
3848
|
function lastUsage$1() {
|
|
@@ -3932,28 +3986,28 @@ function applyInstance(inst) {
|
|
|
3932
3986
|
}
|
|
3933
3987
|
//#endregion
|
|
3934
3988
|
//#region src/tags/settings-page.css.ts
|
|
3935
|
-
var content$2 = "
|
|
3936
|
-
var agentGrid = "
|
|
3937
|
-
var toolGrid = "
|
|
3938
|
-
var themeSeg = "
|
|
3939
|
-
var swatches = "
|
|
3989
|
+
var content$2 = "_cb _bE _bF";
|
|
3990
|
+
var agentGrid = "_cf _bq";
|
|
3991
|
+
var toolGrid = "_cp _bq";
|
|
3992
|
+
var themeSeg = "_cE _5";
|
|
3993
|
+
var swatches = "_cM _5";
|
|
3940
3994
|
//#endregion
|
|
3941
3995
|
//#region src/tags/page-head.marko
|
|
3942
3996
|
var page_head_default = _template("r", (input) => {
|
|
3943
3997
|
const $scope0_reason = _scope_reason(), $sg__input_backHref__OR__input_onBack__OR__input_meta__OR__input_actions = _serialize_guard($scope0_reason, 3), $sg__input_meta = _serialize_guard($scope0_reason, 6), $sg__input_actions = _serialize_guard($scope0_reason, 7), $si__input_backHref__OR__input_onBack = _serialize_if($scope0_reason, 1), $si__input_meta = _serialize_if($scope0_reason, 6), $si__input_actions = _serialize_if($scope0_reason, 7);
|
|
3944
3998
|
const $scope0_id = _scope_id();
|
|
3945
|
-
_html(`<header${_attr_class("
|
|
3999
|
+
_html(`<header${_attr_class("_bG")}>`);
|
|
3946
4000
|
_if(() => {
|
|
3947
4001
|
if (input.backHref) {
|
|
3948
4002
|
const $scope1_id = _scope_id();
|
|
3949
|
-
_html(`<a${_attr("href", input.backHref)}${_attr_class([iconBtnRow, "
|
|
4003
|
+
_html(`<a${_attr("href", input.backHref)}${_attr_class([iconBtnRow, "_cT"])}${_attr_or("title", input.backTitle, " title=\"Back (Esc)\"")}${_attr_or("aria-label", input.backTitle, " aria-label=Back")}>`);
|
|
3950
4004
|
icon_back_default({ size: 16 });
|
|
3951
4005
|
_html(`</a>${_el_resume($scope1_id, "a", _serialize_guard($scope0_reason, 0))}`);
|
|
3952
4006
|
_serialize_if($scope0_reason, 2) && writeScope($scope1_id, { _: _serialize_if($scope0_reason, 0) && _scope_with_id($scope0_id) });
|
|
3953
4007
|
return 0;
|
|
3954
4008
|
} else if (input.onBack) {
|
|
3955
4009
|
const $scope2_id = _scope_id();
|
|
3956
|
-
_html(`<button${_attr_class([iconBtnRow, "
|
|
4010
|
+
_html(`<button${_attr_class([iconBtnRow, "_cT"])}${_attr_or("title", input.backTitle, " title=\"Back (Esc)\"")}${_attr_or("aria-label", input.backTitle, " aria-label=Back")}>`);
|
|
3957
4011
|
icon_back_default({ size: 16 });
|
|
3958
4012
|
_html(`</button>${_el_resume($scope2_id, "a")}`);
|
|
3959
4013
|
_script($scope2_id, "r0");
|
|
@@ -3961,11 +4015,11 @@ var page_head_default = _template("r", (input) => {
|
|
|
3961
4015
|
return 1;
|
|
3962
4016
|
}
|
|
3963
4017
|
}, $scope0_id, "b", _serialize_guard($scope0_reason, 2), _serialize_guard($scope0_reason, 1), $sg__input_backHref__OR__input_onBack__OR__input_meta__OR__input_actions, 0, 1);
|
|
3964
|
-
_html(`<div${_attr_class("
|
|
4018
|
+
_html(`<div${_attr_class("_bI")}><h1${_attr("id", input.titleId)}${_attr_class("_bH")}>${_escape(input.title)}${_el_resume($scope0_id, "e", _serialize_guard($scope0_reason, 5))}</h1>${_el_resume($scope0_id, "d", _serialize_guard($scope0_reason, 4))}`);
|
|
3965
4019
|
_if(() => {
|
|
3966
4020
|
if (input.meta) {
|
|
3967
4021
|
const $scope3_id = _scope_id();
|
|
3968
|
-
_html(`<p${_attr_class("
|
|
4022
|
+
_html(`<p${_attr_class("_bJ")}>`);
|
|
3969
4023
|
_dynamic_tag($scope3_id, "b", input.meta, {}, 0, 0, $sg__input_meta);
|
|
3970
4024
|
_html("</p>");
|
|
3971
4025
|
$si__input_meta && writeScope($scope3_id, { _: _scope_with_id($scope0_id) });
|
|
@@ -3976,7 +4030,7 @@ var page_head_default = _template("r", (input) => {
|
|
|
3976
4030
|
_if(() => {
|
|
3977
4031
|
if (input.actions) {
|
|
3978
4032
|
const $scope4_id = _scope_id();
|
|
3979
|
-
_html(`<div${_attr_class("
|
|
4033
|
+
_html(`<div${_attr_class("_bK")}>`);
|
|
3980
4034
|
_dynamic_tag($scope4_id, "b", input.actions, {}, 0, 0, $sg__input_actions);
|
|
3981
4035
|
_html("</div>");
|
|
3982
4036
|
$si__input_actions && writeScope($scope4_id, { _: _scope_with_id($scope0_id) });
|
|
@@ -4044,10 +4098,10 @@ var icon_agent_default = _template("G", (input) => {
|
|
|
4044
4098
|
n: $badge__closures
|
|
4045
4099
|
});
|
|
4046
4100
|
});
|
|
4047
|
-
var usageNote = "
|
|
4101
|
+
var usageNote = "_di _R";
|
|
4048
4102
|
//#endregion
|
|
4049
4103
|
//#region src/tags/icons/icon-warning.marko
|
|
4050
|
-
var icon_warning_default = _template("
|
|
4104
|
+
var icon_warning_default = _template("jb", (input) => {
|
|
4051
4105
|
const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
|
|
4052
4106
|
const $scope0_id = _scope_id();
|
|
4053
4107
|
_set_serialize_reason({
|
|
@@ -4064,17 +4118,6 @@ var icon_warning_default = _template("kb", (input) => {
|
|
|
4064
4118
|
});
|
|
4065
4119
|
//#endregion
|
|
4066
4120
|
//#region src/tags/usage-meters.marko
|
|
4067
|
-
function duration(ms) {
|
|
4068
|
-
const m = Math.round(ms / 6e4);
|
|
4069
|
-
if (m < 60) return `${m}m`;
|
|
4070
|
-
const h = Math.round(m / 60);
|
|
4071
|
-
if (h < 48) return `${h}h`;
|
|
4072
|
-
return `${Math.round(h / 24)}d`;
|
|
4073
|
-
}
|
|
4074
|
-
function pctText$1(pct) {
|
|
4075
|
-
const rounded = Math.round(pct);
|
|
4076
|
-
return rounded !== pct && (rounded === 100 || rounded === 0) ? `${pct.toFixed(1)}%` : `${rounded}%`;
|
|
4077
|
-
}
|
|
4078
4121
|
function resetLabel(iso, stale) {
|
|
4079
4122
|
if (!iso) return null;
|
|
4080
4123
|
const ms = new Date(iso).getTime() - Date.now();
|
|
@@ -4085,11 +4128,11 @@ var usage_meters_default = _template("D", (input) => {
|
|
|
4085
4128
|
const $scope0_reason = _scope_reason(), $sg__input_agent__OR__input_hideName = _serialize_guard($scope0_reason, 0), $sg__input_agent = _serialize_guard($scope0_reason, 1), $si__input_agent = _serialize_if($scope0_reason, 1), $sg__input_hideName = _serialize_guard($scope0_reason, 2), $si__input_agent__OR__input_hideName = _serialize_if($scope0_reason, 0);
|
|
4086
4129
|
const $scope0_id = _scope_id();
|
|
4087
4130
|
const agent = input.agent;
|
|
4088
|
-
_html(`<div${_attr_class(["
|
|
4131
|
+
_html(`<div${_attr_class(["_dc", { ["_dd"]: input.hideName }])}><div${_attr_class("_de")}>`);
|
|
4089
4132
|
_if(() => {
|
|
4090
4133
|
if (!input.hideName) {
|
|
4091
4134
|
const $scope1_id = _scope_id();
|
|
4092
|
-
_html(`<strong${_attr_class("
|
|
4135
|
+
_html(`<strong${_attr_class("_dx")}>${_escape(agent.agent)}${_el_resume($scope1_id, "b", $sg__input_agent)}</strong>`);
|
|
4093
4136
|
$si__input_agent__OR__input_hideName && writeScope($scope1_id, { _: $si__input_agent && _scope_with_id($scope0_id) });
|
|
4094
4137
|
return 0;
|
|
4095
4138
|
}
|
|
@@ -4097,7 +4140,7 @@ var usage_meters_default = _template("D", (input) => {
|
|
|
4097
4140
|
_if(() => {
|
|
4098
4141
|
if (agent.plan && agent.plan.toLowerCase() !== agent.agent.toLowerCase()) {
|
|
4099
4142
|
const $scope2_id = _scope_id();
|
|
4100
|
-
_html(`<span${_attr_class("
|
|
4143
|
+
_html(`<span${_attr_class("_df")}>${_escape(agent.plan.replace(/^default_/, "").replaceAll("_", " "))}${_el_resume($scope2_id, "b", $sg__input_agent)}</span>`);
|
|
4101
4144
|
$si__input_agent && writeScope($scope2_id, { _: _scope_with_id($scope0_id) });
|
|
4102
4145
|
return 0;
|
|
4103
4146
|
}
|
|
@@ -4105,21 +4148,21 @@ var usage_meters_default = _template("D", (input) => {
|
|
|
4105
4148
|
_if(() => {
|
|
4106
4149
|
if (agent.stale_seconds != null) {
|
|
4107
4150
|
const $scope3_id = _scope_id();
|
|
4108
|
-
_html(`<span${_attr_class("
|
|
4151
|
+
_html(`<span${_attr_class("_dg")}${_attr("title", `${agent.note || "provider unreachable"}. Last cached numbers, ${duration(agent.stale_seconds * 1e3)} old`)}>`);
|
|
4109
4152
|
icon_warning_default({ size: 12 });
|
|
4110
4153
|
_html(` ${_sep($sg__input_agent)}${_escape(duration(agent.stale_seconds * 1e3))}${_el_resume($scope3_id, "c", $sg__input_agent)} old</span>${_el_resume($scope3_id, "a", $sg__input_agent)}`);
|
|
4111
4154
|
$si__input_agent && writeScope($scope3_id, { _: _scope_with_id($scope0_id) });
|
|
4112
4155
|
return 0;
|
|
4113
4156
|
}
|
|
4114
4157
|
}, $scope0_id, "e", $sg__input_agent, $sg__input_agent, $sg__input_agent__OR__input_hideName, 0, 1);
|
|
4115
|
-
_html(`</div><div${_attr_class(["
|
|
4158
|
+
_html(`</div><div${_attr_class(["_dh", { ["_dy"]: agent.stale_seconds != null }])}>`);
|
|
4116
4159
|
_for_of(agent.windows || [], (win) => {
|
|
4117
4160
|
const $scope4_id = _scope_id();
|
|
4118
|
-
const pct = pctText
|
|
4161
|
+
const pct = pctText(win.used_percent);
|
|
4119
4162
|
const label = resetLabel(win.resets_at, agent.stale_seconds != null);
|
|
4120
|
-
const fillClass = win.used_percent >= 90 ? "
|
|
4121
|
-
const pctClass = win.used_percent >= 90 ? "
|
|
4122
|
-
_html(`<div${_attr_class("
|
|
4163
|
+
const fillClass = win.used_percent >= 90 ? "_dq" : win.used_percent >= 70 ? "_dp" : win.used_percent >= 40 ? "_do" : "_dn";
|
|
4164
|
+
const pctClass = win.used_percent >= 90 ? "_dv" : win.used_percent >= 70 ? "_du" : win.used_percent >= 40 ? "_dt" : "_ds";
|
|
4165
|
+
_html(`<div${_attr_class("_dj")}${_attr("title", `${win.window}: ${pct} used${win.resets_at ? `, resets ${new Date(win.resets_at).toLocaleString()}` : ""}`)}><span${_attr_class("_dk")}>${_escape(win.window)}${_el_resume($scope4_id, "c", $sg__input_agent)}</span><span${_attr_class("_dl")}><span${_attr_class(["_dm", fillClass])}${_attr_style(`width:${Math.min(100, Math.max(2, win.used_percent))}%`)}></span>${_el_resume($scope4_id, "e", $sg__input_agent)}</span><span${_attr_class(["_dr", pctClass])}>${_escape(pct)}${_el_resume($scope4_id, "g", $sg__input_agent)}</span>${_el_resume($scope4_id, "f", $sg__input_agent)}<span${_attr_class("_dw")}>`);
|
|
4123
4166
|
_if(() => {
|
|
4124
4167
|
if (label) {
|
|
4125
4168
|
const $scope6_id = _scope_id();
|
|
@@ -4198,14 +4241,14 @@ var sso_auth_default = _template("z", (input) => {
|
|
|
4198
4241
|
localCode = null;
|
|
4199
4242
|
}
|
|
4200
4243
|
}, "z0", $scope0_id);
|
|
4201
|
-
_html(`<div${_attr_class("
|
|
4244
|
+
_html(`<div${_attr_class("_dz")}>`);
|
|
4202
4245
|
_if(() => {
|
|
4203
4246
|
if (input.items.length) {
|
|
4204
4247
|
const $scope1_id = _scope_id();
|
|
4205
|
-
_html(`<p${_attr_class("
|
|
4248
|
+
_html(`<p${_attr_class("_dK")}>GitHub CLI needs org SSO for ${_sep($sg__input_items)}${_escape(input.items.map((s) => s.org).join(", "))}${_el_resume($scope1_id, "b", $sg__input_items)}.</p><ul${_attr_class("_dA")}>`);
|
|
4206
4249
|
_for_of(input.items, (s) => {
|
|
4207
4250
|
const $scope2_id = _scope_id();
|
|
4208
|
-
_html(`<li${_attr_class("
|
|
4251
|
+
_html(`<li${_attr_class("_dB")}>${_escape(s.org)}${_el_resume($scope2_id, "b", $sg__input_items)}<button type=button${_attr_class("_dC")}${_attr("title", `Skip ${s.org}`)}${_attr("aria-label", `Skip ${s.org}`)}${_attr("disabled", busy)}>`);
|
|
4209
4252
|
icon_xmark_default({ size: 11 });
|
|
4210
4253
|
_html(`</button>${_el_resume($scope2_id, "c")}</li>`);
|
|
4211
4254
|
_script($scope2_id, "z1");
|
|
@@ -4214,17 +4257,17 @@ var sso_auth_default = _template("z", (input) => {
|
|
|
4214
4257
|
_: _scope_with_id($scope1_id)
|
|
4215
4258
|
}));
|
|
4216
4259
|
}, "org", $scope1_id, "c", $sg__input_items, $sg__input_items, $sg__input_items, "</ul>", 1);
|
|
4217
|
-
_html(`<div${_attr_class("
|
|
4260
|
+
_html(`<div${_attr_class("_dD")}>`);
|
|
4218
4261
|
_if(() => {
|
|
4219
4262
|
if (busy && authCode$2) {
|
|
4220
4263
|
const $scope5_id = _scope_id();
|
|
4221
|
-
_html(`<span${_attr_class("
|
|
4264
|
+
_html(`<span${_attr_class("_dE")}><span${_attr_class("_E")}></span> Enter code <strong${_attr_class("_dF")}>${_escape(authCode$2)}${_el_resume($scope5_id, "d")}</strong> at <a${_attr("href", `https://${host}/login/device`)}${_attr_class("_dG")}>${_escape(host)}${_el_resume($scope5_id, "f", _serialize_guard($scope0_reason, 3))}/login/device</a>${_el_resume($scope5_id, "e")}</span>`);
|
|
4222
4265
|
_script($scope5_id, "z2");
|
|
4223
4266
|
_subscribe($authCode__closures, _subscribe($si__input_items_0_host && $host__closures, writeScope($scope5_id, {})));
|
|
4224
4267
|
return 0;
|
|
4225
4268
|
} else if (busy) {
|
|
4226
4269
|
const $scope8_id = _scope_id();
|
|
4227
|
-
_html(`<span${_attr_class("
|
|
4270
|
+
_html(`<span${_attr_class("_dE")}><span${_attr_class("_E")}></span>Starting GitHub re-authorization…</span>`);
|
|
4228
4271
|
writeScope($scope8_id, {});
|
|
4229
4272
|
return 1;
|
|
4230
4273
|
} else {
|
|
@@ -4238,7 +4281,7 @@ var sso_auth_default = _template("z", (input) => {
|
|
|
4238
4281
|
_if(() => {
|
|
4239
4282
|
if (localError) {
|
|
4240
4283
|
const $scope6_id = _scope_id();
|
|
4241
|
-
_html(`<p${_attr_class("
|
|
4284
|
+
_html(`<p${_attr_class("_dK")}>${_escape(localError)}${_el_resume($scope6_id, "b")}</p>`);
|
|
4242
4285
|
_subscribe($localError__closures, writeScope($scope6_id, {}));
|
|
4243
4286
|
return 0;
|
|
4244
4287
|
}
|
|
@@ -4250,10 +4293,10 @@ var sso_auth_default = _template("z", (input) => {
|
|
|
4250
4293
|
_if(() => {
|
|
4251
4294
|
if (skipped$1.length) {
|
|
4252
4295
|
const $scope3_id = _scope_id();
|
|
4253
|
-
_html(`<p${_attr_class("
|
|
4296
|
+
_html(`<p${_attr_class("_dH")}>Skipped SSO for `);
|
|
4254
4297
|
_for_of(skipped$1, (s) => {
|
|
4255
4298
|
const $scope4_id = _scope_id();
|
|
4256
|
-
_html(`<span${_attr_class("
|
|
4299
|
+
_html(`<span${_attr_class("_dI")}>${_escape(s.org)}${_el_resume($scope4_id, "b", $sg__input_skipped)}<button type=button${_attr_class("_dJ")}${_attr("title", `Show ${s.org} again`)}>(undo)</button>${_el_resume($scope4_id, "c")}</span>`);
|
|
4257
4300
|
_script($scope4_id, "z4");
|
|
4258
4301
|
writeScope($scope4_id, {
|
|
4259
4302
|
f: s?.org,
|
|
@@ -4290,7 +4333,7 @@ var sso_auth_default = _template("z", (input) => {
|
|
|
4290
4333
|
});
|
|
4291
4334
|
//#endregion
|
|
4292
4335
|
//#region src/tags/icons/icon-plus.marko
|
|
4293
|
-
var icon_plus_default = _template("
|
|
4336
|
+
var icon_plus_default = _template("cb", (input) => {
|
|
4294
4337
|
const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
|
|
4295
4338
|
const $scope0_id = _scope_id();
|
|
4296
4339
|
_set_serialize_reason({
|
|
@@ -4328,7 +4371,7 @@ var modal_view_default = _template("p", (input) => {
|
|
|
4328
4371
|
const { label, class: inputClass, open: _open, openChange: _openChange, dismissable: _dismissable, content, footer, closedby: _closedby, onCancel: _onCancel, onClose: _onClose, "aria-label": inputAriaLabel, "aria-labelledby": inputLabelledBy, ...htmlInput } = input;
|
|
4329
4372
|
const dismissable = input.dismissable !== false;
|
|
4330
4373
|
let open = input.open;
|
|
4331
|
-
_html(`<dialog${_attr_class(["
|
|
4374
|
+
_html(`<dialog${_attr_class(["_fw", inputClass])}${_attr("aria-labelledby", inputLabelledBy)}${inputLabelledBy ? _attr("aria-label", inputAriaLabel) : _attr("aria-label", inputAriaLabel || label)} closedby=${dismissable ? "any" : "none"}${_attrs_partial({
|
|
4332
4375
|
...htmlInput,
|
|
4333
4376
|
open: null
|
|
4334
4377
|
}, {
|
|
@@ -4338,20 +4381,20 @@ var modal_view_default = _template("p", (input) => {
|
|
|
4338
4381
|
closedby: 1,
|
|
4339
4382
|
"on-cancel": 1,
|
|
4340
4383
|
"on-close": 1
|
|
4341
|
-
}, "a", $scope0_id, "dialog")}><div${_attr_class("
|
|
4384
|
+
}, "a", $scope0_id, "dialog")}><div${_attr_class("_fx")}>`);
|
|
4342
4385
|
_dynamic_tag($scope0_id, "c", content, {}, 0, 0, _serialize_guard($scope0_reason, 6));
|
|
4343
4386
|
_html("</div>");
|
|
4344
4387
|
_if(() => {
|
|
4345
4388
|
if (footer) {
|
|
4346
4389
|
const $scope1_id = _scope_id();
|
|
4347
|
-
_html(`<form method=dialog${_attr_class("
|
|
4390
|
+
_html(`<form method=dialog${_attr_class("_fy")}>`);
|
|
4348
4391
|
_dynamic_tag($scope1_id, "b", footer.content, {}, 0, 0, _serialize_guard($scope0_reason, 7));
|
|
4349
4392
|
_html("</form>");
|
|
4350
4393
|
$si__input_openChange__OR__input_footer && writeScope($scope1_id, { _: _serialize_if($scope0_reason, 7) && _scope_with_id($scope0_id) });
|
|
4351
4394
|
return 0;
|
|
4352
4395
|
} else if (input.openChange) {
|
|
4353
4396
|
const $scope2_id = _scope_id();
|
|
4354
|
-
_html(`<form method=dialog${_attr_class("
|
|
4397
|
+
_html(`<form method=dialog${_attr_class("_fy")}>`);
|
|
4355
4398
|
dialog_close_default({
|
|
4356
4399
|
class: ["_o", "_p"],
|
|
4357
4400
|
content: _content("p0", () => {
|
|
@@ -4410,14 +4453,14 @@ var prompt_dialog_default = _template("s", (input) => {
|
|
|
4410
4453
|
const $childScope = _peek_scope_id();
|
|
4411
4454
|
modal_view_default({
|
|
4412
4455
|
label: input.label,
|
|
4413
|
-
class: "
|
|
4456
|
+
class: "_da",
|
|
4414
4457
|
open: input.open,
|
|
4415
4458
|
openChange: input.openChange,
|
|
4416
4459
|
"aria-labelledby": titleId,
|
|
4417
4460
|
footer: attrTag({ content: _content_resume("s5", () => {
|
|
4418
4461
|
_scope_reason();
|
|
4419
4462
|
const $scope1_id = _scope_id();
|
|
4420
|
-
_html(`<button type=button${_attr_class(["_o", "_p"])}${_attr("disabled", !value.trim())}>${_escape(input.submitLabel || "OK")}${_el_resume($scope1_id, "b", _serialize_guard($scope0_reason, 4))}</button>${_el_resume($scope1_id, "a")}<div${_attr_class("
|
|
4463
|
+
_html(`<button type=button${_attr_class(["_o", "_p"])}${_attr("disabled", !value.trim())}>${_escape(input.submitLabel || "OK")}${_el_resume($scope1_id, "b", _serialize_guard($scope0_reason, 4))}</button>${_el_resume($scope1_id, "a")}<div${_attr_class("_x")}></div>`);
|
|
4421
4464
|
dialog_close_default({
|
|
4422
4465
|
class: "_o",
|
|
4423
4466
|
content: _content("s2", () => {
|
|
@@ -4433,7 +4476,7 @@ var prompt_dialog_default = _template("s", (input) => {
|
|
|
4433
4476
|
content: _content("s6", () => {
|
|
4434
4477
|
_scope_reason();
|
|
4435
4478
|
const $scope2_id = _scope_id();
|
|
4436
|
-
_html(`<h2${_attr_class("
|
|
4479
|
+
_html(`<h2${_attr_class("_db")}${_attr("id", titleId)}>${_escape(input.label)}${_el_resume($scope2_id, "b", $sg__input_label)}</h2><input${_attr_input_value($scope2_id, "c", value, _resume((_new_value) => {
|
|
4437
4480
|
value = _new_value;
|
|
4438
4481
|
}, "s0", $scope2_id))}${_attr("placeholder", input.placeholder)}>${_el_resume($scope2_id, "c")}`);
|
|
4439
4482
|
_script($scope2_id, "s4");
|
|
@@ -4815,7 +4858,7 @@ var settings_page_default = _template("v", (input) => {
|
|
|
4815
4858
|
const githubId = _id();
|
|
4816
4859
|
const machineId = _id();
|
|
4817
4860
|
const skillsId = _id();
|
|
4818
|
-
_html(`<div${_attr_class("
|
|
4861
|
+
_html(`<div${_attr_class("_bC")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_bD")}><div${_attr_class(content$2)}>`);
|
|
4819
4862
|
_set_serialize_reason({
|
|
4820
4863
|
0: _serialize_guard($scope0_reason, 4),
|
|
4821
4864
|
1: $sg__input_backHref__OR__input_onExit,
|
|
@@ -4839,12 +4882,12 @@ var settings_page_default = _template("v", (input) => {
|
|
|
4839
4882
|
return 0;
|
|
4840
4883
|
} else if (setup.ready) {
|
|
4841
4884
|
const $scope67_id = _scope_id();
|
|
4842
|
-
_html(`<span${_attr_class("
|
|
4885
|
+
_html(`<span${_attr_class("_cd")}>Ready</span>. Tools, GitHub, and an agent are all in place.`);
|
|
4843
4886
|
writeScope($scope67_id, {});
|
|
4844
4887
|
return 1;
|
|
4845
4888
|
} else {
|
|
4846
4889
|
const $scope6_id = _scope_id();
|
|
4847
|
-
_html(`<span${_attr_class("
|
|
4890
|
+
_html(`<span${_attr_class("_ce")}>Not ready</span>. Missing <!>${_escape(setup.missing.map((m) => MISSING_LABEL[m] || m).join(", "))}${_el_resume($scope6_id, "b")}.`);
|
|
4848
4891
|
_subscribe($setup_missing__closures, writeScope($scope6_id, {}));
|
|
4849
4892
|
return 2;
|
|
4850
4893
|
}
|
|
@@ -4860,7 +4903,7 @@ var settings_page_default = _template("v", (input) => {
|
|
|
4860
4903
|
const $childScope = _peek_scope_id();
|
|
4861
4904
|
icon_refresh_default({
|
|
4862
4905
|
size: 14,
|
|
4863
|
-
class: refreshing && "
|
|
4906
|
+
class: refreshing && "_D"
|
|
4864
4907
|
});
|
|
4865
4908
|
_html(`</button>${_el_resume($scope10_id, "a")}`);
|
|
4866
4909
|
_script($scope10_id, "v36");
|
|
@@ -4894,16 +4937,16 @@ var settings_page_default = _template("v", (input) => {
|
|
|
4894
4937
|
_if(() => {
|
|
4895
4938
|
if (selfUpdatePending || selfUpdating) {
|
|
4896
4939
|
const $scope45_id = _scope_id();
|
|
4897
|
-
_html(`<div${_attr_class("
|
|
4940
|
+
_html(`<div${_attr_class("_cI")} role=status><div${_attr_class("_cJ")}>`);
|
|
4898
4941
|
_if(() => {
|
|
4899
4942
|
if (selfUpdating) {
|
|
4900
4943
|
const $scope68_id = _scope_id();
|
|
4901
|
-
_html(`<span${_attr_class("
|
|
4944
|
+
_html(`<span${_attr_class("_cK")}><span${_attr_class("_E")}></span> Updating work…</span><span${_attr_class("_cL")}>The app restarts and reloads when it is done.</span>`);
|
|
4902
4945
|
writeScope($scope68_id, {});
|
|
4903
4946
|
return 0;
|
|
4904
4947
|
} else {
|
|
4905
4948
|
const $scope46_id = _scope_id();
|
|
4906
|
-
_html(`<span${_attr_class("
|
|
4949
|
+
_html(`<span${_attr_class("_cK")}>Update available</span><span${_attr_class("_cL")}>v<!>${_escape(self.version)}${_el_resume($scope46_id, "c")} → v<!>${_escape(self.latest)}${_el_resume($scope46_id, "d")}</span>`);
|
|
4907
4950
|
_subscribe($self_version__closures, _subscribe($self_latest__closures, writeScope($scope46_id, {})));
|
|
4908
4951
|
return 1;
|
|
4909
4952
|
}
|
|
@@ -4922,11 +4965,11 @@ var settings_page_default = _template("v", (input) => {
|
|
|
4922
4965
|
return 0;
|
|
4923
4966
|
}
|
|
4924
4967
|
}, $scope0_id, "f", 1, 1, 1, 0, 1);
|
|
4925
|
-
_html(`<section${_attr_class("
|
|
4968
|
+
_html(`<section${_attr_class("_bn")}${_attr("aria-labelledby", agentsId)}><div${_attr_class("_bo")}><h2${_attr("id", agentsId)}${_attr_class("_bB")}>Agents</h2><div${_attr_class("_x")}></div><label${_attr_class("_ch")}><span${_attr_class("_R")}>Default</span><span${_attr_class("_m")}>`);
|
|
4926
4969
|
_attr_select_value($scope0_id, "n", input.preferred, _resume(function(v) {
|
|
4927
4970
|
setPreferred(v);
|
|
4928
4971
|
}, "v2", $scope0_id), () => {
|
|
4929
|
-
_html(`<select${_attr_class(["_n", "
|
|
4972
|
+
_html(`<select${_attr_class(["_n", "_ci"])} aria-label="Default agent (starts when a workspace has no session yet)" title="Starts when a workspace has no session yet">`);
|
|
4930
4973
|
_for_of(input.agents.filter((a) => a !== "shell"), (id) => {
|
|
4931
4974
|
const $scope69_id = _scope_id();
|
|
4932
4975
|
_html(`<option${_attr_option_value(id)}>${_escape(agentLabel(id))}${_el_resume($scope69_id, "b", $sg__input_agents)}</option>${_el_resume($scope69_id, "a", $sg__input_agents)}`);
|
|
@@ -4938,7 +4981,7 @@ var settings_page_default = _template("v", (input) => {
|
|
|
4938
4981
|
const $childScope3 = _peek_scope_id();
|
|
4939
4982
|
icon_refresh_default({
|
|
4940
4983
|
size: 14,
|
|
4941
|
-
class: usageRefreshing && "
|
|
4984
|
+
class: usageRefreshing && "_D"
|
|
4942
4985
|
});
|
|
4943
4986
|
_html(`</button>${_el_resume($scope0_id, "o")}</div><ul${_attr_class(agentGrid)}>`);
|
|
4944
4987
|
_for_of(families, (a) => {
|
|
@@ -4947,18 +4990,18 @@ var settings_page_default = _template("v", (input) => {
|
|
|
4947
4990
|
const rows = lone ? [] : a.instances;
|
|
4948
4991
|
const loneAccounts = lone && lone.enabled ? accountsFor(lone.id) : [];
|
|
4949
4992
|
const extraAccounts = a.installed ? strayAccountsFor(a) : [];
|
|
4950
|
-
_html(`<li${_attr_class(["
|
|
4993
|
+
_html(`<li${_attr_class(["_bs", "_cg"])}><div${_attr_class(["_cj", { ["_cm"]: lone && !lone.enabled }])}>`);
|
|
4951
4994
|
_set_serialize_reason(12);
|
|
4952
4995
|
const $childScope4 = _peek_scope_id();
|
|
4953
4996
|
icon_agent_default({
|
|
4954
4997
|
agent: a.id,
|
|
4955
4998
|
size: 18
|
|
4956
4999
|
});
|
|
4957
|
-
_html(`<div${_attr_class("
|
|
5000
|
+
_html(`<div${_attr_class("_bt")}><span${_attr_class("_bv")}><span${_attr_class("_bu")}>${_escape(a.label)}${_el_resume($scope1_id, "g")}</span>`);
|
|
4958
5001
|
_if(() => {
|
|
4959
5002
|
if (lone && input.preferred === lone.id) {
|
|
4960
5003
|
const $scope70_id = _scope_id();
|
|
4961
|
-
_html(`<span${_attr_class(["
|
|
5004
|
+
_html(`<span${_attr_class(["_H", tone.accent])}>default</span>`);
|
|
4962
5005
|
writeScope($scope70_id, {});
|
|
4963
5006
|
return 0;
|
|
4964
5007
|
}
|
|
@@ -4967,12 +5010,12 @@ var settings_page_default = _template("v", (input) => {
|
|
|
4967
5010
|
_if(() => {
|
|
4968
5011
|
if (active.has(a.id)) {
|
|
4969
5012
|
const $scope11_id = _scope_id();
|
|
4970
|
-
_html(`<span${_attr_class("
|
|
5013
|
+
_html(`<span${_attr_class("_cc")}><span${_attr_class("_E")}></span><!>${_escape(active.get(a.id) || "Starting…")}${_el_resume($scope11_id, "c")}</span>`);
|
|
4971
5014
|
_subscribe($active__closures, writeScope($scope11_id, {}));
|
|
4972
5015
|
return 0;
|
|
4973
5016
|
} else if (!a.installed) {
|
|
4974
5017
|
const $scope71_id = _scope_id();
|
|
4975
|
-
_html(`<span${_attr_class("
|
|
5018
|
+
_html(`<span${_attr_class("_bw")}>Not installed</span>`);
|
|
4976
5019
|
writeScope($scope71_id, {});
|
|
4977
5020
|
return 1;
|
|
4978
5021
|
}
|
|
@@ -4991,8 +5034,8 @@ var settings_page_default = _template("v", (input) => {
|
|
|
4991
5034
|
if (lone) {
|
|
4992
5035
|
const $scope63_id = _scope_id();
|
|
4993
5036
|
_html(`<button${_attr_class([
|
|
4994
|
-
"
|
|
4995
|
-
"
|
|
5037
|
+
"_H",
|
|
5038
|
+
"_J",
|
|
4996
5039
|
{ [tone.ok]: lone.enabled }
|
|
4997
5040
|
])} role=switch aria-checked=${lone.enabled ? "true" : "false"} title=${lone.enabled ? "\"Shown in session pickers. Hide it\"" : "\"Hidden from session pickers. Show it\""}>${lone.enabled ? "on" : "off"}${_el_resume($scope63_id, "b")}</button>${_el_resume($scope63_id, "a")}`);
|
|
4998
5041
|
_script($scope63_id, "v42");
|
|
@@ -5004,29 +5047,29 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5004
5047
|
_if(() => {
|
|
5005
5048
|
if (rows.length || loneAccounts.length || extraAccounts.length) {
|
|
5006
5049
|
const $scope2_id = _scope_id();
|
|
5007
|
-
_html(`<ul${_attr_class("
|
|
5050
|
+
_html(`<ul${_attr_class("_co")}>`);
|
|
5008
5051
|
_for_of(rows, (inst) => {
|
|
5009
5052
|
const $scope3_id = _scope_id();
|
|
5010
5053
|
const accounts = inst.enabled ? accountsFor(inst.id) : [];
|
|
5011
|
-
_html(`<li${_attr_class("
|
|
5054
|
+
_html(`<li${_attr_class("_ck")}><div${_attr_class(["_cl", { ["_cm"]: !inst.enabled }])}>`);
|
|
5012
5055
|
_set_serialize_reason(12);
|
|
5013
5056
|
const $childScope5 = _peek_scope_id();
|
|
5014
5057
|
icon_agent_default({
|
|
5015
5058
|
agent: inst.id,
|
|
5016
5059
|
size: 15
|
|
5017
5060
|
});
|
|
5018
|
-
_html(`<span${_attr_class(["
|
|
5061
|
+
_html(`<span${_attr_class(["_cn", "_w"])}>${_escape(inst.command)}${_el_resume($scope3_id, "e")}</span>`);
|
|
5019
5062
|
_if(() => {
|
|
5020
5063
|
if (input.preferred === inst.id) {
|
|
5021
5064
|
const $scope72_id = _scope_id();
|
|
5022
|
-
_html(`<span${_attr_class(["
|
|
5065
|
+
_html(`<span${_attr_class(["_H", tone.accent])}>default</span>`);
|
|
5023
5066
|
writeScope($scope72_id, {});
|
|
5024
5067
|
return 0;
|
|
5025
5068
|
}
|
|
5026
5069
|
}, $scope3_id, "f", 1, 1, 1, 0, 1);
|
|
5027
|
-
_html(`<span${_attr_class("
|
|
5028
|
-
"
|
|
5029
|
-
"
|
|
5070
|
+
_html(`<span${_attr_class("_x")}></span><button${_attr_class([
|
|
5071
|
+
"_H",
|
|
5072
|
+
"_J",
|
|
5030
5073
|
{ [tone.ok]: inst.enabled }
|
|
5031
5074
|
])} role=switch aria-checked=${inst.enabled ? "true" : "false"} title=${inst.enabled ? "\"Shown in session pickers. Hide it\"" : "\"Hidden from session pickers. Show it\""}>${inst.enabled ? "on" : "off"}${_el_resume($scope3_id, "i")}</button>${_el_resume($scope3_id, "h")}</div>${_el_resume($scope3_id, "b")}`);
|
|
5032
5075
|
_for_of(accounts, (u) => {
|
|
@@ -5090,7 +5133,7 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5090
5133
|
}, "id", $scope0_id, "r", 1, 1, 1, 0, 1);
|
|
5091
5134
|
_for_of(otherUsage, (u) => {
|
|
5092
5135
|
const $scope76_id = _scope_id();
|
|
5093
|
-
_html(`<li${_attr_class(["
|
|
5136
|
+
_html(`<li${_attr_class(["_bs", "_cg"])}>`);
|
|
5094
5137
|
_set_serialize_reason(6);
|
|
5095
5138
|
const $childScope9 = _peek_scope_id();
|
|
5096
5139
|
usage_meters_default({ agent: u });
|
|
@@ -5101,17 +5144,17 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5101
5144
|
_if(() => {
|
|
5102
5145
|
if (!usage && families.length) {
|
|
5103
5146
|
const $scope77_id = _scope_id();
|
|
5104
|
-
_html(`<p${_attr_class("
|
|
5147
|
+
_html(`<p${_attr_class("_by")}><span${_attr_class("_E")}></span> Loading usage…</p>`);
|
|
5105
5148
|
writeScope($scope77_id, {});
|
|
5106
5149
|
return 0;
|
|
5107
5150
|
} else if (usage?.error) {
|
|
5108
5151
|
const $scope7_id = _scope_id();
|
|
5109
|
-
_html(`<p${_attr_class("
|
|
5152
|
+
_html(`<p${_attr_class("_by")}>${_escape(usage.error)}${_el_resume($scope7_id, "b")}</p>`);
|
|
5110
5153
|
writeScope($scope7_id, {});
|
|
5111
5154
|
return 1;
|
|
5112
5155
|
}
|
|
5113
5156
|
}, $scope0_id, "t", 1, 1, 1, 0, 1);
|
|
5114
|
-
_html(`</section><section${_attr_class("
|
|
5157
|
+
_html(`</section><section${_attr_class("_bn")}${_attr("aria-labelledby", githubId)}><div${_attr_class("_bo")}><h2${_attr("id", githubId)}${_attr_class("_bB")}>GitHub</h2></div><ul${_attr_class("_bq")}>`);
|
|
5115
5158
|
_for_of(setup?.github || [], (h) => {
|
|
5116
5159
|
const $scope12_id = _scope_id();
|
|
5117
5160
|
const $for_content4__h_host__closures = /* @__PURE__ */ new Set();
|
|
@@ -5125,11 +5168,11 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5125
5168
|
const skippedSso = (() => {
|
|
5126
5169
|
return (h.sso || []).filter((s) => ignoredSso.has(s.org));
|
|
5127
5170
|
})();
|
|
5128
|
-
_html(`<li${_attr_class(["
|
|
5171
|
+
_html(`<li${_attr_class(["_bs", "_cy"])}><div${_attr_class("_cz")}><div${_attr_class("_bt")}><span${_attr_class("_bv")}><span${_attr_class(["_bu", "_w"])}>${_escape(h.host)}${_el_resume($scope12_id, "f")}</span>`);
|
|
5129
5172
|
_if(() => {
|
|
5130
5173
|
if (h.isEnterprise) {
|
|
5131
5174
|
const $scope80_id = _scope_id();
|
|
5132
|
-
_html(`<span${_attr_class("
|
|
5175
|
+
_html(`<span${_attr_class("_H")}>Enterprise</span>`);
|
|
5133
5176
|
writeScope($scope80_id, {});
|
|
5134
5177
|
return 0;
|
|
5135
5178
|
}
|
|
@@ -5138,22 +5181,22 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5138
5181
|
_if(() => {
|
|
5139
5182
|
if (active.has(h.host) && authCodes.has(h.host)) {
|
|
5140
5183
|
const $scope32_id = _scope_id();
|
|
5141
|
-
_html(`<span${_attr_class("
|
|
5184
|
+
_html(`<span${_attr_class("_cc")}><span${_attr_class("_E")}></span> Enter code <strong${_attr_class("_cw")}>${_escape(authCodes.get(h.host))}${_el_resume($scope32_id, "d")}</strong> at <a${_attr("href", `https://${h.host}/login/device`)} target=_blank rel=noopener${_attr_class("_cx")}>${_escape(h.host)}${_el_resume($scope32_id, "f")}/login/device</a>${_el_resume($scope32_id, "e")}</span>`);
|
|
5142
5185
|
_subscribe($authCodes__closures, writeScope($scope32_id, { Ces: 1 }));
|
|
5143
5186
|
return 0;
|
|
5144
5187
|
} else if (active.has(h.host)) {
|
|
5145
5188
|
const $scope13_id = _scope_id();
|
|
5146
|
-
_html(`<span${_attr_class("
|
|
5189
|
+
_html(`<span${_attr_class("_cc")}><span${_attr_class("_E")}></span><!>${_escape(active.get(h.host) || "Starting…")}${_el_resume($scope13_id, "c")}</span>`);
|
|
5147
5190
|
_subscribe($active__closures, writeScope($scope13_id, { Ceq: 1 }));
|
|
5148
5191
|
return 1;
|
|
5149
5192
|
} else if (h.authed) {
|
|
5150
5193
|
const $scope78_id = _scope_id();
|
|
5151
|
-
_html(`<span${_attr_class("
|
|
5194
|
+
_html(`<span${_attr_class("_bw")}>Signed in<!>${h.user ? ` as ${_escape(`${_to_text(h.user)}`)}` : ""}${_el_resume($scope78_id, "b")}</span>`);
|
|
5152
5195
|
writeScope($scope78_id, {});
|
|
5153
5196
|
return 2;
|
|
5154
5197
|
} else {
|
|
5155
5198
|
const $scope79_id = _scope_id();
|
|
5156
|
-
_html(`<span${_attr_class("
|
|
5199
|
+
_html(`<span${_attr_class("_bw")}>${_escape(h.error || "Not signed in")}${_el_resume($scope79_id, "b")}</span>`);
|
|
5157
5200
|
writeScope($scope79_id, {});
|
|
5158
5201
|
return 3;
|
|
5159
5202
|
}
|
|
@@ -5184,9 +5227,9 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5184
5227
|
if (h.isEnterprise) {
|
|
5185
5228
|
const $scope35_id = _scope_id();
|
|
5186
5229
|
_html(`<button${_attr_class([
|
|
5187
|
-
"
|
|
5230
|
+
"_bx",
|
|
5231
|
+
"_1",
|
|
5188
5232
|
"_2",
|
|
5189
|
-
"_3",
|
|
5190
5233
|
{ ["_q"]: confirmingRemove === h.host }
|
|
5191
5234
|
])}${confirmingRemove === h.host ? _attr("title", `Forget ${h.host}? (gh stays signed in)`) : _attr("title", `Forget ${h.host}`)}>`);
|
|
5192
5235
|
_if(() => {
|
|
@@ -5260,7 +5303,7 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5260
5303
|
_if(() => {
|
|
5261
5304
|
if (setup && !setup.github.length) {
|
|
5262
5305
|
const $scope83_id = _scope_id();
|
|
5263
|
-
_html(`<p${_attr_class("
|
|
5306
|
+
_html(`<p${_attr_class("_by")}>Install the GitHub CLI below to sign in.</p>`);
|
|
5264
5307
|
writeScope($scope83_id, {});
|
|
5265
5308
|
return 0;
|
|
5266
5309
|
}
|
|
@@ -5268,20 +5311,20 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5268
5311
|
_if(() => {
|
|
5269
5312
|
if (setup) {
|
|
5270
5313
|
const $scope43_id = _scope_id();
|
|
5271
|
-
_html(`<form${_attr_class("
|
|
5314
|
+
_html(`<form${_attr_class("_cv")}><label${_attr_class("_V")}>`);
|
|
5272
5315
|
icon_plus_default({
|
|
5273
5316
|
size: 14,
|
|
5274
|
-
class: "
|
|
5317
|
+
class: "_W"
|
|
5275
5318
|
});
|
|
5276
5319
|
_html(`<input${_attr_input_value($scope43_id, "d", hostInput, _resume((_new_hostInput) => {
|
|
5277
5320
|
hostInput = _new_hostInput;
|
|
5278
|
-
}, "v3", $scope43_id))}${_attr_class([inputLg, "
|
|
5321
|
+
}, "v3", $scope43_id))}${_attr_class([inputLg, "_X"])} type=text placeholder="Add a GitHub Enterprise host, e.g. github.example.com" aria-label="GitHub Enterprise host" autocomplete=off spellcheck=false>${_el_resume($scope43_id, "d")}</label><button${_attr_class(btnSm)} type=submit${_attr("disabled", !hostInput.trim() || hostBusy)}>${hostBusy ? "Adding…" : "Add host"}${_el_resume($scope43_id, "f")}</button>${_el_resume($scope43_id, "e")}</form>${_el_resume($scope43_id, "a")}`);
|
|
5279
5322
|
_script($scope43_id, "v47");
|
|
5280
5323
|
writeScope($scope43_id, {});
|
|
5281
5324
|
return 0;
|
|
5282
5325
|
}
|
|
5283
5326
|
}, $scope0_id, "z", 1, 1, 1, 0, 1);
|
|
5284
|
-
_html(`</section><section${_attr_class("
|
|
5327
|
+
_html(`</section><section${_attr_class("_bn")}${_attr("aria-labelledby", machineId)}><div${_attr_class("_bo")}><h2${_attr("id", machineId)}${_attr_class("_bB")}>Machine</h2>`);
|
|
5285
5328
|
_if(() => {
|
|
5286
5329
|
if (missingCount) {
|
|
5287
5330
|
const $scope64_id = _scope_id();
|
|
@@ -5298,7 +5341,7 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5298
5341
|
return 0;
|
|
5299
5342
|
}
|
|
5300
5343
|
}, $scope0_id, "a4", 1, 1, 1, 0, 1);
|
|
5301
|
-
_html(`<div${_attr_class("
|
|
5344
|
+
_html(`<div${_attr_class("_x")}></div>`);
|
|
5302
5345
|
_if(() => {
|
|
5303
5346
|
if (outdatedIds.length > 1) {
|
|
5304
5347
|
const $scope15_id = _scope_id();
|
|
@@ -5321,7 +5364,7 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5321
5364
|
_if(() => {
|
|
5322
5365
|
if (setup && !setup.mise.installed) {
|
|
5323
5366
|
const $scope17_id = _scope_id();
|
|
5324
|
-
_html(`<p${_attr_class("
|
|
5367
|
+
_html(`<p${_attr_class("_by")}>mise is not installed. It provides every tool below. <button${_attr_class(btnSm)}${_attr("disabled", active.has("mise"))}>${active.has("mise") ? "Installing…" : "Install mise"}${_el_resume($scope17_id, "c")}</button>${_el_resume($scope17_id, "b")}</p>`);
|
|
5325
5368
|
_script($scope17_id, "v50");
|
|
5326
5369
|
writeScope($scope17_id, {});
|
|
5327
5370
|
return 0;
|
|
@@ -5331,16 +5374,16 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5331
5374
|
_if(() => {
|
|
5332
5375
|
if (self) {
|
|
5333
5376
|
const $scope48_id = _scope_id();
|
|
5334
|
-
_html(`<li${_attr_class(row)}><span${_attr_class(["
|
|
5377
|
+
_html(`<li${_attr_class(row)}><span${_attr_class(["_cr", "_w"])}>work</span>`);
|
|
5335
5378
|
_if(() => {
|
|
5336
5379
|
if (selfUpdating) {
|
|
5337
5380
|
const $scope84_id = _scope_id();
|
|
5338
|
-
_html(`<span${_attr_class("
|
|
5381
|
+
_html(`<span${_attr_class("_cc")}><span${_attr_class("_E")}></span>Updating — the app restarts and reloads when it is done…</span>`);
|
|
5339
5382
|
writeScope($scope84_id, {});
|
|
5340
5383
|
return 0;
|
|
5341
5384
|
} else {
|
|
5342
5385
|
const $scope49_id = _scope_id();
|
|
5343
|
-
_html(`<span${_attr_class(["
|
|
5386
|
+
_html(`<span${_attr_class(["_w", metaTrunc])} title="Running version">v<!>${_escape(self.version)}${_el_resume($scope49_id, "b")}</span>`);
|
|
5344
5387
|
_if(() => {
|
|
5345
5388
|
if (self.install === "source") {
|
|
5346
5389
|
const $scope85_id = _scope_id();
|
|
@@ -5349,7 +5392,7 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5349
5392
|
return 0;
|
|
5350
5393
|
} else if (self.latest && self.latest !== self.version) {
|
|
5351
5394
|
const $scope50_id = _scope_id();
|
|
5352
|
-
_html(`<button${_attr_class([btnSm, "
|
|
5395
|
+
_html(`<button${_attr_class([btnSm, "_ct"])}${_attr("title", `Update work to v${self.latest} and restart`)}>`);
|
|
5353
5396
|
icon_arrow_up_default({ size: 12 });
|
|
5354
5397
|
_html(` <!>${_escape(self.latest)}${_el_resume($scope50_id, "c")}</button>${_el_resume($scope50_id, "a")}`);
|
|
5355
5398
|
_script($scope50_id, "v51");
|
|
@@ -5369,11 +5412,11 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5369
5412
|
return 1;
|
|
5370
5413
|
}
|
|
5371
5414
|
}, $scope48_id, "c");
|
|
5372
|
-
_html(`<span${_attr_class("
|
|
5415
|
+
_html(`<span${_attr_class("_x")}></span>`);
|
|
5373
5416
|
_if(() => {
|
|
5374
5417
|
if (!selfUpdating) {
|
|
5375
5418
|
const $scope87_id = _scope_id();
|
|
5376
|
-
_html(`<span${_attr_class("
|
|
5419
|
+
_html(`<span${_attr_class("_H")}>app</span>`);
|
|
5377
5420
|
writeScope($scope87_id, {});
|
|
5378
5421
|
return 0;
|
|
5379
5422
|
}
|
|
@@ -5390,11 +5433,11 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5390
5433
|
const $for_content5__t_path__closures = /* @__PURE__ */ new Set();
|
|
5391
5434
|
const $for_content5__t_latest__closures = /* @__PURE__ */ new Set();
|
|
5392
5435
|
const $for_content5__t_id__closures = /* @__PURE__ */ new Set();
|
|
5393
|
-
_html(`<li${_attr_class([row, { ["
|
|
5436
|
+
_html(`<li${_attr_class([row, { ["_cq"]: !t.installed }])}><span${_attr_class(["_cr", "_w"])}>${_escape(t.label)}${_el_resume($scope18_id, "c")}</span>`);
|
|
5394
5437
|
_if(() => {
|
|
5395
5438
|
if (active.has(t.id)) {
|
|
5396
5439
|
const $scope19_id = _scope_id();
|
|
5397
|
-
_html(`<span${_attr_class("
|
|
5440
|
+
_html(`<span${_attr_class("_cc")}><span${_attr_class("_E")}></span><!>${_escape(active.get(t.id) || "Starting…")}${_el_resume($scope19_id, "c")}</span>`);
|
|
5398
5441
|
_subscribe($active__closures, writeScope($scope19_id, { Ceq: 3 }));
|
|
5399
5442
|
return 0;
|
|
5400
5443
|
} else if (t.installed) {
|
|
@@ -5402,13 +5445,13 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5402
5445
|
_if(() => {
|
|
5403
5446
|
if (t.version) {
|
|
5404
5447
|
const $scope40_id = _scope_id();
|
|
5405
|
-
_html(`<button${_attr_class(["
|
|
5448
|
+
_html(`<button${_attr_class(["_cs", "_w"])}${_attr("title", `${t.path || t.label}. Pin a version`)}>v<!>${_escape(t.version)}${_el_resume($scope40_id, "b")}</button>${_el_resume($scope40_id, "a")}`);
|
|
5406
5449
|
_script($scope40_id, "v52");
|
|
5407
5450
|
_subscribe($for_content5__t_path__closures, _subscribe($for_content5__t_version__closures, _subscribe($for_content5__t_label__closures, writeScope($scope40_id, { Cu: 1 }))));
|
|
5408
5451
|
return 0;
|
|
5409
5452
|
} else {
|
|
5410
5453
|
const $scope88_id = _scope_id();
|
|
5411
|
-
_html(`<span${_attr_class([metaTrunc, "
|
|
5454
|
+
_html(`<span${_attr_class([metaTrunc, "_w"])}${_attr("title", t.path)}>${_escape(t.path)}${_el_resume($scope88_id, "b")}</span>${_el_resume($scope88_id, "a")}`);
|
|
5412
5455
|
_subscribe($for_content5__t_path__closures, writeScope($scope88_id, { Cx: 1 }));
|
|
5413
5456
|
return 1;
|
|
5414
5457
|
}
|
|
@@ -5416,7 +5459,7 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5416
5459
|
_if(() => {
|
|
5417
5460
|
if (outdated(t)) {
|
|
5418
5461
|
const $scope58_id = _scope_id();
|
|
5419
|
-
_html(`<button${_attr_class([btnSm, "
|
|
5462
|
+
_html(`<button${_attr_class([btnSm, "_ct"])}${_attr("title", `Update to v${t.latest}`)}>`);
|
|
5420
5463
|
icon_arrow_up_default({ size: 12 });
|
|
5421
5464
|
_html(` <!>${_escape(t.latest)}${_el_resume($scope58_id, "c")}</button>${_el_resume($scope58_id, "a")}`);
|
|
5422
5465
|
_script($scope58_id, "v53");
|
|
@@ -5438,14 +5481,14 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5438
5481
|
return 3;
|
|
5439
5482
|
}
|
|
5440
5483
|
}, $scope18_id, "d");
|
|
5441
|
-
_html(`<span${_attr_class("
|
|
5484
|
+
_html(`<span${_attr_class("_x")}></span>`);
|
|
5442
5485
|
_if(() => {
|
|
5443
5486
|
if (!active.has(t.id)) {
|
|
5444
5487
|
const $scope36_id = _scope_id();
|
|
5445
5488
|
_if(() => {
|
|
5446
5489
|
if (t.required) {
|
|
5447
5490
|
const $scope91_id = _scope_id();
|
|
5448
|
-
_html(`<span${_attr_class("
|
|
5491
|
+
_html(`<span${_attr_class("_H")}>required</span>`);
|
|
5449
5492
|
writeScope($scope91_id, {});
|
|
5450
5493
|
return 0;
|
|
5451
5494
|
}
|
|
@@ -5461,8 +5504,8 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5461
5504
|
const $scope37_id = _scope_id();
|
|
5462
5505
|
_html(`<button${_attr_class([
|
|
5463
5506
|
iconBtnXs,
|
|
5507
|
+
"_1",
|
|
5464
5508
|
"_2",
|
|
5465
|
-
"_3",
|
|
5466
5509
|
{ ["_q"]: confirmingRemove === t.id }
|
|
5467
5510
|
])}${confirmingRemove === t.id ? _attr("title", `Remove ${t.label}?`) : _attr("title", `Remove ${t.label}`)}>`);
|
|
5468
5511
|
_if(() => {
|
|
@@ -5509,28 +5552,28 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5509
5552
|
_if(() => {
|
|
5510
5553
|
if (setup && setup.mise.installed) {
|
|
5511
5554
|
const $scope20_id = _scope_id();
|
|
5512
|
-
_html(`<div><label${_attr_class("
|
|
5555
|
+
_html(`<div><label${_attr_class("_V")}>`);
|
|
5513
5556
|
icon_search_default({
|
|
5514
5557
|
size: 14,
|
|
5515
|
-
class: "
|
|
5558
|
+
class: "_W"
|
|
5516
5559
|
});
|
|
5517
|
-
_html(`<input${_attr_input_value($scope20_id, "c", query, search)}${_attr_class([inputLg, "
|
|
5560
|
+
_html(`<input${_attr_input_value($scope20_id, "c", query, search)}${_attr_class([inputLg, "_X"])} type=text placeholder="Add a tool from the mise registry…" aria-label="Search the mise registry" autocomplete=off>${_el_resume($scope20_id, "c")}</label>`);
|
|
5518
5561
|
_if(() => {
|
|
5519
5562
|
if (hits && hits.length) {
|
|
5520
5563
|
const $scope21_id = _scope_id();
|
|
5521
|
-
_html(`<ul${_attr_class([toolGrid, "
|
|
5564
|
+
_html(`<ul${_attr_class([toolGrid, "_cu"])}>`);
|
|
5522
5565
|
_for_of(hits, (h) => {
|
|
5523
5566
|
const $scope22_id = _scope_id();
|
|
5524
|
-
_html(`<li${_attr_class(row)}><div${_attr_class("
|
|
5567
|
+
_html(`<li${_attr_class(row)}><div${_attr_class("_bt")}><span${_attr_class(["_cr", "_w"])}>${_escape(h.name)}${_el_resume($scope22_id, "d")}</span>`);
|
|
5525
5568
|
_if(() => {
|
|
5526
5569
|
if (active.has(h.name)) {
|
|
5527
5570
|
const $scope23_id = _scope_id();
|
|
5528
|
-
_html(`<span${_attr_class("
|
|
5571
|
+
_html(`<span${_attr_class("_cc")}><span${_attr_class("_E")}></span><!>${_escape(active.get(h.name) || "Starting…")}${_el_resume($scope23_id, "c")}</span>`);
|
|
5529
5572
|
_subscribe($active__closures, writeScope($scope23_id, { Ceq: 5 }));
|
|
5530
5573
|
return 0;
|
|
5531
5574
|
} else if (h.description) {
|
|
5532
5575
|
const $scope94_id = _scope_id();
|
|
5533
|
-
_html(`<span${_attr_class("
|
|
5576
|
+
_html(`<span${_attr_class("_bw")}${_attr("title", h.description)}>${_escape(h.description)}${_el_resume($scope94_id, "b")}</span>${_el_resume($scope94_id, "a")}`);
|
|
5534
5577
|
writeScope($scope94_id, {});
|
|
5535
5578
|
return 1;
|
|
5536
5579
|
}
|
|
@@ -5542,7 +5585,7 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5542
5585
|
_if(() => {
|
|
5543
5586
|
if (h.installed) {
|
|
5544
5587
|
const $scope95_id = _scope_id();
|
|
5545
|
-
_html(`<span${_attr_class("
|
|
5588
|
+
_html(`<span${_attr_class("_H")}>installed</span>`);
|
|
5546
5589
|
writeScope($scope95_id, {});
|
|
5547
5590
|
return 0;
|
|
5548
5591
|
} else {
|
|
@@ -5569,7 +5612,7 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5569
5612
|
return 0;
|
|
5570
5613
|
} else if (hits && !searching) {
|
|
5571
5614
|
const $scope44_id = _scope_id();
|
|
5572
|
-
_html(`<p${_attr_class("
|
|
5615
|
+
_html(`<p${_attr_class("_by")}>No tools match "<!>${_escape(query)}${_el_resume($scope44_id, "b")}".</p>`);
|
|
5573
5616
|
_subscribe($query__closures, writeScope($scope44_id, {}));
|
|
5574
5617
|
return 1;
|
|
5575
5618
|
}
|
|
@@ -5580,7 +5623,7 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5580
5623
|
return 0;
|
|
5581
5624
|
}
|
|
5582
5625
|
}, $scope0_id, "ac", 1, 1, 1, 0, 1);
|
|
5583
|
-
_html(`</section><section${_attr_class("
|
|
5626
|
+
_html(`</section><section${_attr_class("_bn")}${_attr("aria-labelledby", skillsId)}><div${_attr_class("_bo")}><h2${_attr("id", skillsId)}${_attr_class("_bB")}>Skills</h2>`);
|
|
5584
5627
|
_if(() => {
|
|
5585
5628
|
if (skills?.global.length) {
|
|
5586
5629
|
const $scope52_id = _scope_id();
|
|
@@ -5593,30 +5636,30 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5593
5636
|
_if(() => {
|
|
5594
5637
|
if (skills && !skills.agents.length) {
|
|
5595
5638
|
const $scope96_id = _scope_id();
|
|
5596
|
-
_html(`<p${_attr_class("
|
|
5639
|
+
_html(`<p${_attr_class("_by")}>No agent CLIs are installed, so a skill would have nowhere to go.</p>`);
|
|
5597
5640
|
writeScope($scope96_id, {});
|
|
5598
5641
|
return 0;
|
|
5599
5642
|
} else if (skills && !skills.available) {
|
|
5600
5643
|
const $scope24_id = _scope_id();
|
|
5601
|
-
_html(`<p${_attr_class("
|
|
5644
|
+
_html(`<p${_attr_class("_by")}>The skills CLI is not installed, so these can be listed but not changed. <button${_attr_class(btnSm)}${_attr("disabled", active.has("skills"))}>${active.has("skills") ? "Installing…" : "Install it"}${_el_resume($scope24_id, "c")}</button>${_el_resume($scope24_id, "b")}</p>`);
|
|
5602
5645
|
_script($scope24_id, "v58");
|
|
5603
5646
|
writeScope($scope24_id, {});
|
|
5604
5647
|
return 1;
|
|
5605
5648
|
}
|
|
5606
5649
|
}, $scope0_id, "ah", 1, 1, 1, 0, 1);
|
|
5607
|
-
_html(`<ul${_attr_class("
|
|
5650
|
+
_html(`<ul${_attr_class("_bq")}>`);
|
|
5608
5651
|
_for_of(skills?.global || [], (s) => {
|
|
5609
5652
|
const $scope25_id = _scope_id();
|
|
5610
|
-
_html(`<li${_attr_class("
|
|
5653
|
+
_html(`<li${_attr_class("_bs")}><div${_attr_class("_bt")}><span${_attr_class(["_bu", "_w"])}>${_escape(s.name)}${_el_resume($scope25_id, "d")}</span>`);
|
|
5611
5654
|
_if(() => {
|
|
5612
5655
|
if (active.has(s.id)) {
|
|
5613
5656
|
const $scope26_id = _scope_id();
|
|
5614
|
-
_html(`<span${_attr_class("
|
|
5657
|
+
_html(`<span${_attr_class("_cc")}><span${_attr_class("_E")}></span><!>${_escape(active.get(s.id) || "Starting…")}${_el_resume($scope26_id, "c")}</span>`);
|
|
5615
5658
|
_subscribe($active__closures, writeScope($scope26_id, { Ceq: 6 }));
|
|
5616
5659
|
return 0;
|
|
5617
5660
|
} else if (s.description) {
|
|
5618
5661
|
const $scope97_id = _scope_id();
|
|
5619
|
-
_html(`<span${_attr_class("
|
|
5662
|
+
_html(`<span${_attr_class("_bw")}${_attr("title", s.description)}>${_escape(s.description)}${_el_resume($scope97_id, "b")}</span>${_el_resume($scope97_id, "a")}`);
|
|
5620
5663
|
writeScope($scope97_id, {});
|
|
5621
5664
|
return 1;
|
|
5622
5665
|
}
|
|
@@ -5624,17 +5667,17 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5624
5667
|
_if(() => {
|
|
5625
5668
|
if (s.sourceUrl) {
|
|
5626
5669
|
const $scope98_id = _scope_id();
|
|
5627
|
-
_html(`<a${_attr_class(["
|
|
5670
|
+
_html(`<a${_attr_class(["_bw", "_cS"])}${_attr("href", s.sourceUrl)} target=_blank rel=noopener${_attr("title", `Open ${s.source} on GitHub`)}>${_escape(s.source)}${_el_resume($scope98_id, "b")}</a>${_el_resume($scope98_id, "a")}`);
|
|
5628
5671
|
writeScope($scope98_id, {});
|
|
5629
5672
|
return 0;
|
|
5630
5673
|
} else if (s.source) {
|
|
5631
5674
|
const $scope99_id = _scope_id();
|
|
5632
|
-
_html(`<span${_attr_class("
|
|
5675
|
+
_html(`<span${_attr_class("_bw")}>${_escape(s.source)}${_el_resume($scope99_id, "b")}</span>`);
|
|
5633
5676
|
writeScope($scope99_id, {});
|
|
5634
5677
|
return 1;
|
|
5635
5678
|
} else {
|
|
5636
5679
|
const $scope101_id = _scope_id();
|
|
5637
|
-
_html(`<span${_attr_class(["
|
|
5680
|
+
_html(`<span${_attr_class(["_bw", "_v"])} title="Not installed from a source, so it cannot be updated">local only</span>`);
|
|
5638
5681
|
writeScope($scope101_id, {});
|
|
5639
5682
|
return 2;
|
|
5640
5683
|
}
|
|
@@ -5643,7 +5686,7 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5643
5686
|
_if(() => {
|
|
5644
5687
|
if (skills && s.agents.length < skills.agents.length) {
|
|
5645
5688
|
const $scope100_id = _scope_id();
|
|
5646
|
-
_html(`<span${_attr_class("
|
|
5689
|
+
_html(`<span${_attr_class("_bv")}><span${_attr_class("_H")}${_attr("title", `Only installed for ${s.agents.map(agentLabel).join(", ")}`)}>${_escape(s.agents.map(agentLabel).join(", "))}${_el_resume($scope100_id, "c")} only</span>${_el_resume($scope100_id, "b")}</span>`);
|
|
5647
5690
|
writeScope($scope100_id, {});
|
|
5648
5691
|
return 0;
|
|
5649
5692
|
}
|
|
@@ -5662,8 +5705,8 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5662
5705
|
}, $scope55_id, "a", 1, 1, 1, 0, 1);
|
|
5663
5706
|
_html(`<button${_attr_class([
|
|
5664
5707
|
iconBtnXs,
|
|
5708
|
+
"_1",
|
|
5665
5709
|
"_2",
|
|
5666
|
-
"_3",
|
|
5667
5710
|
{ ["_q"]: confirmingSkill === s.id }
|
|
5668
5711
|
])}${confirmingSkill === s.id ? _attr("title", `Remove ${s.name}?`) : _attr("title", `Remove ${s.name}`)}>`);
|
|
5669
5712
|
_if(() => {
|
|
@@ -5697,7 +5740,7 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5697
5740
|
_if(() => {
|
|
5698
5741
|
if (skills && !skills.global.length) {
|
|
5699
5742
|
const $scope104_id = _scope_id();
|
|
5700
|
-
_html(`<p${_attr_class("
|
|
5743
|
+
_html(`<p${_attr_class("_by")}>No skills installed. Search below, or paste an owner/repo.</p>`);
|
|
5701
5744
|
writeScope($scope104_id, {});
|
|
5702
5745
|
return 0;
|
|
5703
5746
|
}
|
|
@@ -5705,20 +5748,20 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5705
5748
|
_if(() => {
|
|
5706
5749
|
if (skills?.available && skills.agents.length) {
|
|
5707
5750
|
const $scope27_id = _scope_id();
|
|
5708
|
-
_html(`<div><label${_attr_class("
|
|
5751
|
+
_html(`<div><label${_attr_class("_V")}>`);
|
|
5709
5752
|
icon_search_default({
|
|
5710
5753
|
size: 14,
|
|
5711
|
-
class: "
|
|
5754
|
+
class: "_W"
|
|
5712
5755
|
});
|
|
5713
|
-
_html(`<input${_attr_input_value($scope27_id, "c", skillQuery, searchSkills)}${_attr_class([inputLg, "
|
|
5756
|
+
_html(`<input${_attr_input_value($scope27_id, "c", skillQuery, searchSkills)}${_attr_class([inputLg, "_X"])} type=text placeholder="Search skills, or paste owner/repo…" aria-label="Search for a skill" autocomplete=off spellcheck=false>${_el_resume($scope27_id, "c")}</label><ul${_attr_class([toolGrid, "_cu"])}${_attr("hidden", !skillQuery.trim())}>`);
|
|
5714
5757
|
_if(() => {
|
|
5715
5758
|
if (looksLikeSource(skillQuery)) {
|
|
5716
5759
|
const $scope28_id = _scope_id();
|
|
5717
|
-
_html(`<li${_attr_class(row)}><div${_attr_class("
|
|
5760
|
+
_html(`<li${_attr_class(row)}><div${_attr_class("_bt")}><span${_attr_class(["_cr", "_w"])}>${_escape(skillQuery.trim())}${_el_resume($scope28_id, "d")}</span>`);
|
|
5718
5761
|
_if(() => {
|
|
5719
5762
|
if (active.has(skillQuery.trim())) {
|
|
5720
5763
|
const $scope29_id = _scope_id();
|
|
5721
|
-
_html(`<span${_attr_class("
|
|
5764
|
+
_html(`<span${_attr_class("_cc")}><span${_attr_class("_E")}></span><!>${_escape(active.get(skillQuery.trim()) || "Starting…")}${_el_resume($scope29_id, "c")}</span>`);
|
|
5722
5765
|
_subscribe($skillQuery__closures, _subscribe($active__closures, writeScope($scope29_id, {
|
|
5723
5766
|
Ceq: 8,
|
|
5724
5767
|
Cfa: 1
|
|
@@ -5726,7 +5769,7 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5726
5769
|
return 0;
|
|
5727
5770
|
} else {
|
|
5728
5771
|
const $scope105_id = _scope_id();
|
|
5729
|
-
_html(`<span${_attr_class("
|
|
5772
|
+
_html(`<span${_attr_class("_bw")}>Add straight from this source</span>`);
|
|
5730
5773
|
writeScope($scope105_id, {});
|
|
5731
5774
|
return 1;
|
|
5732
5775
|
}
|
|
@@ -5749,16 +5792,16 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5749
5792
|
_for_of(skillHits || [], (h) => {
|
|
5750
5793
|
const $scope30_id = _scope_id();
|
|
5751
5794
|
const $for_content8__h_installs__closures = /* @__PURE__ */ new Set();
|
|
5752
|
-
_html(`<li${_attr_class(row)}><div${_attr_class("
|
|
5795
|
+
_html(`<li${_attr_class(row)}><div${_attr_class("_bt")}><span${_attr_class(["_cr", "_w"])}>${_escape(h.name)}${_el_resume($scope30_id, "d")}</span>`);
|
|
5753
5796
|
_if(() => {
|
|
5754
5797
|
if (active.has(h.skillId)) {
|
|
5755
5798
|
const $scope31_id = _scope_id();
|
|
5756
|
-
_html(`<span${_attr_class("
|
|
5799
|
+
_html(`<span${_attr_class("_cc")}><span${_attr_class("_E")}></span><!>${_escape(active.get(h.skillId) || "Starting…")}${_el_resume($scope31_id, "c")}</span>`);
|
|
5757
5800
|
_subscribe($active__closures, writeScope($scope31_id, { Ceq: 10 }));
|
|
5758
5801
|
return 0;
|
|
5759
5802
|
} else {
|
|
5760
5803
|
const $scope106_id = _scope_id();
|
|
5761
|
-
_html(`<span${_attr_class("
|
|
5804
|
+
_html(`<span${_attr_class("_bw")}${_attr("title", h.source)}>${_escape(h.source)}${_el_resume($scope106_id, "b")}</span>${_el_resume($scope106_id, "a")}`);
|
|
5762
5805
|
writeScope($scope106_id, {});
|
|
5763
5806
|
return 1;
|
|
5764
5807
|
}
|
|
@@ -5770,7 +5813,7 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5770
5813
|
_if(() => {
|
|
5771
5814
|
if (h.installs) {
|
|
5772
5815
|
const $scope107_id = _scope_id();
|
|
5773
|
-
_html(`<span${_attr_class(["
|
|
5816
|
+
_html(`<span${_attr_class(["_H", "_I"])}${_attr("title", `${h.installs} installs`)}>${_escape(skillInstalls(h.installs))}${_el_resume($scope107_id, "b")}</span>${_el_resume($scope107_id, "a")}`);
|
|
5774
5817
|
_subscribe($for_content8__h_installs__closures, writeScope($scope107_id, {}));
|
|
5775
5818
|
return 0;
|
|
5776
5819
|
}
|
|
@@ -5778,7 +5821,7 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5778
5821
|
_if(() => {
|
|
5779
5822
|
if (h.installed) {
|
|
5780
5823
|
const $scope108_id = _scope_id();
|
|
5781
|
-
_html(`<span${_attr_class("
|
|
5824
|
+
_html(`<span${_attr_class("_H")}>installed</span>`);
|
|
5782
5825
|
writeScope($scope108_id, {});
|
|
5783
5826
|
return 0;
|
|
5784
5827
|
} else {
|
|
@@ -5807,7 +5850,7 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5807
5850
|
_if(() => {
|
|
5808
5851
|
if (skillHits && !skillHits.length && !skillSearching && !looksLikeSource(skillQuery)) {
|
|
5809
5852
|
const $scope54_id = _scope_id();
|
|
5810
|
-
_html(`<p${_attr_class("
|
|
5853
|
+
_html(`<p${_attr_class("_by")}>No skills match "<!>${_escape(skillQuery)}${_el_resume($scope54_id, "b")}".</p>`);
|
|
5811
5854
|
_subscribe($skillQuery__closures, writeScope($scope54_id, { Cfa: 2 }));
|
|
5812
5855
|
return 0;
|
|
5813
5856
|
}
|
|
@@ -5832,37 +5875,37 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5832
5875
|
label: "Dark"
|
|
5833
5876
|
}
|
|
5834
5877
|
];
|
|
5835
|
-
_html(`</section><section${_attr_class("
|
|
5878
|
+
_html(`</section><section${_attr_class("_bn")}${_attr("aria-labelledby", appearanceId)}><div${_attr_class("_bo")}><h2${_attr("id", appearanceId)}${_attr_class("_bB")}>Appearance</h2></div><div${_attr_class(["_bs", "_cA"])}><label${_attr_class("_cB")}><span${_attr_class("_cC")}>Name</span><input${_attr_input_value($scope0_id, "ar", input.instance.name, _resume(function(v) {
|
|
5836
5879
|
setInstance({ name: v });
|
|
5837
|
-
}, "v4", $scope0_id))}${_attr_class(["
|
|
5880
|
+
}, "v4", $scope0_id))}${_attr_class(["_T", "_cD"])} type=text placeholder="Tab title" maxlength=32 autocomplete=off spellcheck=false>${_el_resume($scope0_id, "ar")}</label><div${_attr_class("_cB")}><span${_attr_class("_cC")}>Theme</span><span${_attr_class("_cF")}><span${_attr_class(themeSeg)} role=radiogroup aria-label="Color theme">`);
|
|
5838
5881
|
_for_of(themeOpts, (opt) => {
|
|
5839
5882
|
const $scope51_id = _scope_id();
|
|
5840
|
-
_html(`<button type=button${_attr_class(["
|
|
5883
|
+
_html(`<button type=button${_attr_class(["_7", { ["_6"]: themeMode === opt.id }])} role=radio aria-checked=${themeMode === opt.id ? "true" : "false"}>${_escape(opt.label)}</button>${_el_resume($scope51_id, "a")}`);
|
|
5841
5884
|
_script($scope51_id, "v64");
|
|
5842
5885
|
writeScope($scope51_id, {
|
|
5843
5886
|
e: opt?.id,
|
|
5844
5887
|
_: _scope_with_id($scope0_id)
|
|
5845
5888
|
});
|
|
5846
5889
|
}, "id", $scope0_id, "av", 1, 0, 1, 0, 1);
|
|
5847
|
-
_html(`</span><span${_attr_class(["_m", "
|
|
5890
|
+
_html(`</span><span${_attr_class(["_m", "_cG"])}>`);
|
|
5848
5891
|
_attr_select_value($scope0_id, "ax", themeMode, _resume(function(v) {
|
|
5849
5892
|
setThemeMode(v);
|
|
5850
5893
|
}, "v5", $scope0_id), () => {
|
|
5851
|
-
_html(`<select${_attr_class(["_n", "
|
|
5894
|
+
_html(`<select${_attr_class(["_n", "_cH"])} aria-label="Color theme">`);
|
|
5852
5895
|
forOf(themeOpts, (opt) => {
|
|
5853
5896
|
_scope_id();
|
|
5854
5897
|
_html(`<option${_attr_option_value(opt.id)}>${_escape(opt.label)}</option>`);
|
|
5855
5898
|
});
|
|
5856
5899
|
_html("</select>");
|
|
5857
5900
|
});
|
|
5858
|
-
_html(`${_el_resume($scope0_id, "ax")}</span></span></div><div${_attr_class("
|
|
5901
|
+
_html(`${_el_resume($scope0_id, "ax")}</span></span></div><div${_attr_class("_cB")}><span${_attr_class("_cC")}>Accent</span><span${_attr_class(swatches)} role=radiogroup aria-label="Accent colour"><button type=button${_attr_class([
|
|
5902
|
+
"_cN",
|
|
5859
5903
|
"_cP",
|
|
5860
|
-
"
|
|
5861
|
-
{ ["_cQ"]: !input.instance.accent }
|
|
5904
|
+
{ ["_cO"]: !input.instance.accent }
|
|
5862
5905
|
])} role=radio aria-checked=${!input.instance.accent ? "true" : "false"} title="Default (blue)" aria-label="Default (blue)"></button>${_el_resume($scope0_id, "b1")}`);
|
|
5863
5906
|
_for_of(ACCENT_PRESETS, (p) => {
|
|
5864
5907
|
const $scope4_id = _scope_id();
|
|
5865
|
-
_html(`<button type=button${_attr_class(["
|
|
5908
|
+
_html(`<button type=button${_attr_class(["_cN", { ["_cO"]: input.instance.accent === p.value }])}${_attr_style(`--swatch:${p.value}`)} role=radio aria-checked=${input.instance.accent === p.value ? "true" : "false"}${_attr("title", p.name)}${_attr("aria-label", p.name)}></button>${_el_resume($scope4_id, "a")}`);
|
|
5866
5909
|
_script($scope4_id, "v65");
|
|
5867
5910
|
writeScope($scope4_id, {
|
|
5868
5911
|
d: p?.value,
|
|
@@ -5871,12 +5914,12 @@ var settings_page_default = _template("v", (input) => {
|
|
|
5871
5914
|
}, "value", $scope0_id, "b2", $sg__input_instance_accent, 0, 1, 0, 1);
|
|
5872
5915
|
const customOn = !!input.instance.accent && !ACCENT_PRESETS.some((p) => p.value === input.instance.accent);
|
|
5873
5916
|
_html(`<label${_attr_class([
|
|
5874
|
-
"
|
|
5875
|
-
"
|
|
5876
|
-
{ ["
|
|
5917
|
+
"_cN",
|
|
5918
|
+
"_cQ",
|
|
5919
|
+
{ ["_cO"]: customOn }
|
|
5877
5920
|
])}${customOn ? _attr_style(`--swatch:${input.instance.accent}`) : ""} title="Custom colour"><input${_attr_input_value($scope0_id, "b4", input.instance.accent || "#3556d8", _resume(function(v) {
|
|
5878
5921
|
setInstance({ accent: v });
|
|
5879
|
-
}, "v6", $scope0_id))}${_attr_class("
|
|
5922
|
+
}, "v6", $scope0_id))}${_attr_class("_cR")} type=color aria-label="Custom accent colour">${_el_resume($scope0_id, "b4")}<span aria-hidden=true>+</span></label>${_el_resume($scope0_id, "b3", $sg__input_instance_accent)}</span></div></div></section></div></div></div>`);
|
|
5880
5923
|
_if(() => {
|
|
5881
5924
|
if (versionPick) {
|
|
5882
5925
|
const $scope38_id = _scope_id();
|
|
@@ -6004,12 +6047,12 @@ var settings_page_default = _template("v", (input) => {
|
|
|
6004
6047
|
});
|
|
6005
6048
|
//#endregion
|
|
6006
6049
|
//#region src/tags/new-workspace.css.ts
|
|
6007
|
-
var content$1 = "
|
|
6008
|
-
var section$1 = "
|
|
6009
|
-
var curBase = "
|
|
6010
|
-
var archived = "
|
|
6011
|
-
var archivedHint = "
|
|
6012
|
-
var archivedCard = "
|
|
6050
|
+
var content$1 = "_bL _bE";
|
|
6051
|
+
var section$1 = "_bP _bn";
|
|
6052
|
+
var curBase = "_bU _S _R";
|
|
6053
|
+
var archived = "_bZ _bn";
|
|
6054
|
+
var archivedHint = "_b0 _R";
|
|
6055
|
+
var archivedCard = "_b1 _bs";
|
|
6013
6056
|
//#endregion
|
|
6014
6057
|
//#region src/tags/icons/icon-check.marko
|
|
6015
6058
|
var icon_check_default = _template("P", (input) => {
|
|
@@ -6044,7 +6087,7 @@ var icon_branch_default = _template("O", (input) => {
|
|
|
6044
6087
|
});
|
|
6045
6088
|
_serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
|
|
6046
6089
|
});
|
|
6047
|
-
var resultBranch = "
|
|
6090
|
+
var resultBranch = "_c1 _Y _j";
|
|
6048
6091
|
//#endregion
|
|
6049
6092
|
//#region src/tags/branch-pick.marko
|
|
6050
6093
|
var branch_pick_default = _template("d", (input) => {
|
|
@@ -6057,11 +6100,11 @@ var branch_pick_default = _template("d", (input) => {
|
|
|
6057
6100
|
let branchFilter = "";
|
|
6058
6101
|
let reloadTick = 0;
|
|
6059
6102
|
let refreshing = false;
|
|
6060
|
-
_html(`<div${_attr_class("
|
|
6103
|
+
_html(`<div${_attr_class("_c3")}>`);
|
|
6061
6104
|
_if(() => {
|
|
6062
6105
|
{
|
|
6063
6106
|
const $scope4_id = _scope_id();
|
|
6064
|
-
_html(`<p${_attr_class("
|
|
6107
|
+
_html(`<p${_attr_class("_by")}><span${_attr_class("_E")}></span> Loading branches…</p>`);
|
|
6065
6108
|
writeScope($scope4_id, {});
|
|
6066
6109
|
return 0;
|
|
6067
6110
|
}
|
|
@@ -6139,11 +6182,11 @@ var repo_picker_default = _template("t", (input) => {
|
|
|
6139
6182
|
const ignored = new Set(prefs$1?.ignoredSsoOrgs?.() ?? []);
|
|
6140
6183
|
return (catalog?.sso || []).filter((s) => !ignored.has(s.org));
|
|
6141
6184
|
})();
|
|
6142
|
-
_html(`<div${_attr_class("
|
|
6185
|
+
_html(`<div${_attr_class("_cU")}>`);
|
|
6143
6186
|
_if(() => {
|
|
6144
6187
|
if (ssoPending.length) {
|
|
6145
6188
|
const $scope7_id = _scope_id();
|
|
6146
|
-
_html(`<div${_attr_class("
|
|
6189
|
+
_html(`<div${_attr_class("_cV")}>`);
|
|
6147
6190
|
_set_serialize_reason(154);
|
|
6148
6191
|
const $childScope = _peek_scope_id();
|
|
6149
6192
|
sso_auth_default({
|
|
@@ -6160,29 +6203,29 @@ var repo_picker_default = _template("t", (input) => {
|
|
|
6160
6203
|
return 0;
|
|
6161
6204
|
}
|
|
6162
6205
|
}, $scope0_id, "b", 1, 1, 1, 0, 1);
|
|
6163
|
-
_html(`<label${_attr_class("
|
|
6206
|
+
_html(`<label${_attr_class("_V")}>`);
|
|
6164
6207
|
icon_search_default({
|
|
6165
6208
|
size: 14,
|
|
6166
|
-
class: "
|
|
6209
|
+
class: "_W"
|
|
6167
6210
|
});
|
|
6168
6211
|
_html(`<input${_attr_input_value($scope0_id, "e", filter, _resume(function(v) {
|
|
6169
6212
|
filter = v;
|
|
6170
6213
|
highlight = 0;
|
|
6171
6214
|
pasteWillFork = false;
|
|
6172
|
-
}, "t0", $scope0_id))}${_attr_class([inputLg, "
|
|
6215
|
+
}, "t0", $scope0_id))}${_attr_class([inputLg, "_X"])} placeholder="Add a repo…" aria-label="Add a repo"${_attr("disabled", input.disabled)}>${_el_resume($scope0_id, "e")}</label>`);
|
|
6173
6216
|
_if(() => {
|
|
6174
6217
|
if (pasted) {
|
|
6175
6218
|
const $scope1_id = _scope_id();
|
|
6176
|
-
_html(`<ul${_attr_class("
|
|
6219
|
+
_html(`<ul${_attr_class("_cW")}><li><div${_attr_class(["_cY", "_cX"])}><button${_attr_class("_cZ")}${pasteWillFork ? _attr("title", `Fork ${pasted} to your account and add the fork`) : _attr("title", `Add ${pasted} as-is (pushes go to that repo)`)}>`);
|
|
6177
6220
|
icon_plus_default({
|
|
6178
6221
|
size: 12,
|
|
6179
|
-
class: "
|
|
6222
|
+
class: "_c5"
|
|
6180
6223
|
});
|
|
6181
|
-
_html(`<span${_attr_class("
|
|
6224
|
+
_html(`<span${_attr_class("_c6")}>${_escape(repoLabel(pasted))}${_el_resume($scope1_id, "f")}</span></button>${_el_resume($scope1_id, "c")}`);
|
|
6182
6225
|
_if(() => {
|
|
6183
6226
|
if (pastedForkable) {
|
|
6184
6227
|
const $scope8_id = _scope_id();
|
|
6185
|
-
_html(`<button${_attr_class(["
|
|
6228
|
+
_html(`<button${_attr_class(["_c2", { ["_c0"]: pasteWillFork }])}${pasteWillFork ? " title=\"Will fork to your account; click to clone as-is instead\"" : _attr("title", `Fork ${pasted} to your account and clone the fork`)} aria-pressed=${pasteWillFork ? "true" : "false"}>`);
|
|
6186
6229
|
_if(() => {
|
|
6187
6230
|
if (pasteWillFork) {
|
|
6188
6231
|
const $scope10_id = _scope_id();
|
|
@@ -6202,7 +6245,7 @@ var repo_picker_default = _template("t", (input) => {
|
|
|
6202
6245
|
return 0;
|
|
6203
6246
|
}
|
|
6204
6247
|
}, $scope1_id, "g", 1, 1, 1, 0, 1);
|
|
6205
|
-
_html(`<button${_attr_class([resultBranch, { ["
|
|
6248
|
+
_html(`<button${_attr_class([resultBranch, { ["_c0"]: branchesFor === pasted }])}${_attr("title", `Pick a base branch for ${pasted}`)}${_attr("aria-label", `Pick a base branch for ${pasted}`)}>`);
|
|
6206
6249
|
icon_branch_default({ size: 12 });
|
|
6207
6250
|
_html(`</button>${_el_resume($scope1_id, "h")}</div>`);
|
|
6208
6251
|
_if(() => {
|
|
@@ -6229,7 +6272,7 @@ var repo_picker_default = _template("t", (input) => {
|
|
|
6229
6272
|
return 0;
|
|
6230
6273
|
} else if (filter && !catalog) {
|
|
6231
6274
|
const $scope9_id = _scope_id();
|
|
6232
|
-
_html(`<p${_attr_class("
|
|
6275
|
+
_html(`<p${_attr_class("_by")}>Loading repos…</p>`);
|
|
6233
6276
|
writeScope($scope9_id, {});
|
|
6234
6277
|
return 1;
|
|
6235
6278
|
}
|
|
@@ -6237,15 +6280,15 @@ var repo_picker_default = _template("t", (input) => {
|
|
|
6237
6280
|
_if(() => {
|
|
6238
6281
|
if (results.length) {
|
|
6239
6282
|
const $scope3_id = _scope_id();
|
|
6240
|
-
_html(`<ul${_attr_class("
|
|
6283
|
+
_html(`<ul${_attr_class("_cW")}>`);
|
|
6241
6284
|
_for_of(results, (repo, i) => {
|
|
6242
6285
|
const $scope4_id = _scope_id();
|
|
6243
|
-
_html(`<li><div${_attr_class(["
|
|
6286
|
+
_html(`<li><div${_attr_class(["_cY", { ["_cX"]: i === highlight }])}><button${_attr_class("_cZ")}>`);
|
|
6244
6287
|
icon_plus_default({
|
|
6245
6288
|
size: 12,
|
|
6246
|
-
class: "
|
|
6289
|
+
class: "_c5"
|
|
6247
6290
|
});
|
|
6248
|
-
_html(`<span${_attr_class("
|
|
6291
|
+
_html(`<span${_attr_class("_c6")}>${_escape(repoLabel(repo.nameWithOwner))}${_el_resume($scope4_id, "e")}</span></button>${_el_resume($scope4_id, "b")}<button${_attr_class([resultBranch, { ["_c0"]: branchesFor === repo.nameWithOwner }])}${_attr("title", `Pick a base branch for ${repo.nameWithOwner}`)}${_attr("aria-label", `Pick a base branch for ${repo.nameWithOwner}`)}>`);
|
|
6249
6292
|
icon_branch_default({ size: 12 });
|
|
6250
6293
|
_html(`</button>${_el_resume($scope4_id, "f")}</div>${_el_resume($scope4_id, "a")}`);
|
|
6251
6294
|
_if(() => {
|
|
@@ -6280,7 +6323,7 @@ var repo_picker_default = _template("t", (input) => {
|
|
|
6280
6323
|
return 0;
|
|
6281
6324
|
} else if (filter && catalog && !pasted) {
|
|
6282
6325
|
const $scope6_id = _scope_id();
|
|
6283
|
-
_html(`<p${_attr_class("
|
|
6326
|
+
_html(`<p${_attr_class("_by")}>No repos match "<!>${_escape(filter)}${_el_resume($scope6_id, "b")}". Paste a clone URL to add any repo.</p>`);
|
|
6284
6327
|
writeScope($scope6_id, {});
|
|
6285
6328
|
return 1;
|
|
6286
6329
|
}
|
|
@@ -6421,7 +6464,7 @@ var new_workspace_default = _template("q", (input) => {
|
|
|
6421
6464
|
}
|
|
6422
6465
|
}, "q6", $scope0_id);
|
|
6423
6466
|
const titleId = _id();
|
|
6424
|
-
_html(`<div${_attr_class("
|
|
6467
|
+
_html(`<div${_attr_class("_bC")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_bD")}><div${_attr_class(content$1)}>`);
|
|
6425
6468
|
_set_serialize_reason({
|
|
6426
6469
|
0: _serialize_guard($scope0_reason, 2),
|
|
6427
6470
|
1: $sg__input_backHref__OR__input_onExit,
|
|
@@ -6460,23 +6503,23 @@ var new_workspace_default = _template("q", (input) => {
|
|
|
6460
6503
|
return 0;
|
|
6461
6504
|
}
|
|
6462
6505
|
}, $scope0_id, "e", 1, 1, 1, 0, 1);
|
|
6463
|
-
_html(`<label${_attr_class("
|
|
6506
|
+
_html(`<label${_attr_class("_bO")}><span${_attr_class("_bB")}>Name</span><input${_attr_input_value($scope0_id, "h", name, _resume((_new_name) => {
|
|
6464
6507
|
name = _new_name;
|
|
6465
|
-
}, "q0", $scope0_id))}${_attr_class(inputLg)} placeholder=my-feature${_attr("disabled", busy)} autofocus>${_el_resume($scope0_id, "h")}</label><section${_attr_class(section$1)}><div${_attr_class("
|
|
6508
|
+
}, "q0", $scope0_id))}${_attr_class(inputLg)} placeholder=my-feature${_attr("disabled", busy)} autofocus>${_el_resume($scope0_id, "h")}</label><section${_attr_class(section$1)}><div${_attr_class("_bQ")}><h2${_attr_class("_bB")}>Repos</h2><button${_attr_class(iconBtnRow)} title="Refresh repo list" aria-label="Refresh repo list"${_attr("disabled", catalogRefreshing)}>`);
|
|
6466
6509
|
_set_serialize_reason(1);
|
|
6467
6510
|
const $childScope2 = _peek_scope_id();
|
|
6468
6511
|
icon_refresh_default({
|
|
6469
6512
|
size: 14,
|
|
6470
|
-
class: catalogRefreshing && "
|
|
6513
|
+
class: catalogRefreshing && "_D"
|
|
6471
6514
|
});
|
|
6472
|
-
_html(`</button>${_el_resume($scope0_id, "l")}</div><ul${_attr_class("
|
|
6515
|
+
_html(`</button>${_el_resume($scope0_id, "l")}</div><ul${_attr_class("_bR")}>`);
|
|
6473
6516
|
_for_of(selected, (repo) => {
|
|
6474
6517
|
const $scope2_id = _scope_id();
|
|
6475
|
-
_html(`<li><div${_attr_class(row)}><span${_attr_class("
|
|
6518
|
+
_html(`<li><div${_attr_class(row)}><span${_attr_class("_bS")}>${_escape(repoLabel(repo.fullName))}${_el_resume($scope2_id, "c")}</span>`);
|
|
6476
6519
|
_if(() => {
|
|
6477
6520
|
if (repo.fork !== void 0) {
|
|
6478
6521
|
const $scope3_id = _scope_id();
|
|
6479
|
-
_html(`<button${_attr_class(["
|
|
6522
|
+
_html(`<button${_attr_class(["_bV", { ["_bT"]: repo.fork }])}${repo.fork ? _attr("title", `${repo.fullName} will be forked to your account; click to clone as-is instead`) : _attr("title", `Fork ${repo.fullName} to your account and clone the fork`)} aria-pressed=${repo.fork ? "true" : "false"}${_attr("disabled", busy)}>`);
|
|
6480
6523
|
_if(() => {
|
|
6481
6524
|
if (repo.fork) {
|
|
6482
6525
|
const $scope12_id = _scope_id();
|
|
@@ -6498,11 +6541,11 @@ var new_workspace_default = _template("q", (input) => {
|
|
|
6498
6541
|
}, $scope2_id, "d", 1, 1, 1, 0, 1);
|
|
6499
6542
|
_html(`<button${_attr_class([
|
|
6500
6543
|
curBase,
|
|
6501
|
-
"
|
|
6502
|
-
{ ["
|
|
6544
|
+
"_w",
|
|
6545
|
+
{ ["_bT"]: branchesFor === repo.fullName }
|
|
6503
6546
|
])}${_attr("title", `Change base branch for ${repo.fullName}`)}${_attr("aria-label", `Change base branch for ${repo.fullName}`)}${_attr("disabled", busy)}>`);
|
|
6504
6547
|
icon_branch_default({ size: 12 });
|
|
6505
|
-
_html(`<!>${repo.baseBranch ? ` ${_escape(`${_to_text(repo.baseBranch)}`)}` : ""}${_el_resume($scope2_id, "g")}</button>${_el_resume($scope2_id, "e")}<button${_attr_class([iconBtnXs, "
|
|
6548
|
+
_html(`<!>${repo.baseBranch ? ` ${_escape(`${_to_text(repo.baseBranch)}`)}` : ""}${_el_resume($scope2_id, "g")}</button>${_el_resume($scope2_id, "e")}<button${_attr_class([iconBtnXs, "_1"])}${_attr("title", `Remove ${repo.fullName}`)}${_attr("disabled", busy)}>`);
|
|
6506
6549
|
icon_xmark_default({ size: 12 });
|
|
6507
6550
|
_html(`</button>${_el_resume($scope2_id, "h")}</div>`);
|
|
6508
6551
|
_if(() => {
|
|
@@ -6535,7 +6578,7 @@ var new_workspace_default = _template("q", (input) => {
|
|
|
6535
6578
|
_if(() => {
|
|
6536
6579
|
if (!selected.length) {
|
|
6537
6580
|
const $scope14_id = _scope_id();
|
|
6538
|
-
_html(`<li${_attr_class("
|
|
6581
|
+
_html(`<li${_attr_class("_by")}>No repos yet. Search below to add one, or create it empty.</li>`);
|
|
6539
6582
|
writeScope($scope14_id, {});
|
|
6540
6583
|
return 0;
|
|
6541
6584
|
}
|
|
@@ -6560,19 +6603,19 @@ var new_workspace_default = _template("q", (input) => {
|
|
|
6560
6603
|
_if(() => {
|
|
6561
6604
|
if (busy && steps$1.length) {
|
|
6562
6605
|
const $scope9_id = _scope_id();
|
|
6563
|
-
_html(`<ul${_attr_class("
|
|
6606
|
+
_html(`<ul${_attr_class("_bW")}>`);
|
|
6564
6607
|
_for_of(steps$1, (step$1, i) => {
|
|
6565
6608
|
const $scope10_id = _scope_id();
|
|
6566
|
-
_html(`<li${_attr_class(["
|
|
6609
|
+
_html(`<li${_attr_class(["_b2", { ["_bX"]: i === steps$1.length - 1 }])}>`);
|
|
6567
6610
|
_if(() => {
|
|
6568
6611
|
if (i === steps$1.length - 1) {
|
|
6569
6612
|
const $scope15_id = _scope_id();
|
|
6570
|
-
_html(`<span${_attr_class("
|
|
6613
|
+
_html(`<span${_attr_class("_E")}></span>`);
|
|
6571
6614
|
writeScope($scope15_id, {});
|
|
6572
6615
|
return 0;
|
|
6573
6616
|
} else {
|
|
6574
6617
|
const $scope16_id = _scope_id();
|
|
6575
|
-
_html(`<span${_attr_class("
|
|
6618
|
+
_html(`<span${_attr_class("_bY")}>`);
|
|
6576
6619
|
icon_check_default({ size: 14 });
|
|
6577
6620
|
_html("</span>");
|
|
6578
6621
|
writeScope($scope16_id, {});
|
|
@@ -6586,7 +6629,7 @@ var new_workspace_default = _template("q", (input) => {
|
|
|
6586
6629
|
return 0;
|
|
6587
6630
|
}
|
|
6588
6631
|
}, $scope0_id, "s", 1, 1, 1, 0, 1);
|
|
6589
|
-
_html(`<div${_attr_class("
|
|
6632
|
+
_html(`<div${_attr_class("_bM")}>`);
|
|
6590
6633
|
_if(() => {
|
|
6591
6634
|
if (input.onExit || busy) {
|
|
6592
6635
|
const $scope1_id = _scope_id();
|
|
@@ -6599,19 +6642,19 @@ var new_workspace_default = _template("q", (input) => {
|
|
|
6599
6642
|
_html(`<button type=button${_attr_class([
|
|
6600
6643
|
btnLg,
|
|
6601
6644
|
"_p",
|
|
6602
|
-
"
|
|
6645
|
+
"_bN"
|
|
6603
6646
|
])}${_attr("disabled", busy || !!restoring || !name.trim())}>${busy ? "Creating…" : "Create workspace"}${_el_resume($scope0_id, "w")}</button>${_el_resume($scope0_id, "v")}</div>`);
|
|
6604
6647
|
_if(() => {
|
|
6605
6648
|
if (archived$1.length) {
|
|
6606
6649
|
const $scope4_id = _scope_id();
|
|
6607
|
-
_html(`<section${_attr_class(archived)}><div${_attr_class("
|
|
6650
|
+
_html(`<section${_attr_class(archived)}><div${_attr_class("_bQ")}><h2${_attr_class("_bB")}>Archived</h2><span${_attr_class(sectionCount$1)}>${_escape(archived$1.length)}${_el_resume($scope4_id, "e", $sg__input_workspaces)}</span></div><p${_attr_class(archivedHint)}>Restore an archived workspace instead of creating a new one.</p><ul${_attr_class("_bq")}>`);
|
|
6608
6651
|
_for_of(archived$1, (ws) => {
|
|
6609
6652
|
const $scope5_id = _scope_id();
|
|
6610
|
-
_html(`<li${_attr_class(archivedCard)}><div${_attr_class("
|
|
6653
|
+
_html(`<li${_attr_class(archivedCard)}><div${_attr_class("_bt")}><span${_attr_class("_bu")}>${_escape(ws.name)}${_el_resume($scope5_id, "d", $sg__input_workspaces)}</span><span${_attr_class([metaTrunc, "_w"])}${_attr("title", ws.display_path || ws.path)}>${_escape(ws.display_path || ws.path)}${_el_resume($scope5_id, "f", $sg__input_workspaces)}</span>${_el_resume($scope5_id, "e", $sg__input_workspaces)}</div><button type=button${_attr_class(btnLg)}${_attr("disabled", busy || !!restoring)}>`);
|
|
6611
6654
|
_if(() => {
|
|
6612
6655
|
if (restoring === ws.id) {
|
|
6613
6656
|
const $scope17_id = _scope_id();
|
|
6614
|
-
_html(`<span${_attr_class("
|
|
6657
|
+
_html(`<span${_attr_class("_E")}></span> Restoring…`);
|
|
6615
6658
|
writeScope($scope17_id, {});
|
|
6616
6659
|
return 0;
|
|
6617
6660
|
} else {
|
|
@@ -6713,29 +6756,8 @@ function vapidKey(base64) {
|
|
|
6713
6756
|
const raw = atob(padded.replace(/-/g, "+").replace(/_/g, "/"));
|
|
6714
6757
|
return Uint8Array.from(raw, (c) => c.charCodeAt(0));
|
|
6715
6758
|
}
|
|
6716
|
-
|
|
6717
|
-
|
|
6718
|
-
/** Workspace activity dot from its polled status counts. */
|
|
6719
|
-
function phaseOf(status) {
|
|
6720
|
-
return status?.working ? "working" : status?.waiting ? "waiting" : status?.agents ? "idle" : "off";
|
|
6721
|
-
}
|
|
6722
|
-
/** Session activity dot from its own state. */
|
|
6723
|
-
function sessionPhase(state) {
|
|
6724
|
-
return state?.phase === "working" ? "working" : state?.phase === "waiting" ? "waiting" : state?.alive ? "idle" : "off";
|
|
6725
|
-
}
|
|
6726
|
-
/**
|
|
6727
|
-
* What a session is *running*, which is not always what it was started as: a
|
|
6728
|
-
* shell someone typed `claude` into is a claude session as far as the reader
|
|
6729
|
-
* is concerned. Only shells are reinterpreted — an agent kind stays itself
|
|
6730
|
-
* even while it shells out, so the icon doesn't flicker mid-command.
|
|
6731
|
-
*/
|
|
6732
|
-
function activeAgent(session) {
|
|
6733
|
-
if (session.agent !== "shell") return session.agent;
|
|
6734
|
-
const command = session.state?.command?.trim();
|
|
6735
|
-
return command && agentFromCommand(command) || session.agent;
|
|
6736
|
-
}
|
|
6737
|
-
var iconBtn$1 = "_eC _j";
|
|
6738
|
-
var navToggle = "_eH _j";
|
|
6759
|
+
var iconBtn$1 = "_ep _j";
|
|
6760
|
+
var navToggle = "_eu _j";
|
|
6739
6761
|
_template("N", (input) => {
|
|
6740
6762
|
const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
|
|
6741
6763
|
const $scope0_id = _scope_id();
|
|
@@ -6753,7 +6775,7 @@ _template("N", (input) => {
|
|
|
6753
6775
|
});
|
|
6754
6776
|
//#endregion
|
|
6755
6777
|
//#region src/tags/icons/icon-settings.marko
|
|
6756
|
-
var icon_settings_default = _template("
|
|
6778
|
+
var icon_settings_default = _template("fb", (input) => {
|
|
6757
6779
|
const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
|
|
6758
6780
|
const $scope0_id = _scope_id();
|
|
6759
6781
|
_set_serialize_reason({
|
|
@@ -6778,12 +6800,33 @@ var ARM_MS = 3500;
|
|
|
6778
6800
|
function disarmLater(fn) {
|
|
6779
6801
|
return setTimeout(fn, ARM_MS);
|
|
6780
6802
|
}
|
|
6781
|
-
var railBtn = "
|
|
6782
|
-
var rowIcon = "
|
|
6783
|
-
var close = "
|
|
6803
|
+
var railBtn = "_gp _j";
|
|
6804
|
+
var rowIcon = "_gy _Y _j";
|
|
6805
|
+
var close = "_gz _Y _j _1";
|
|
6784
6806
|
//#endregion
|
|
6785
6807
|
//#region src/styles/session-pop.css.ts
|
|
6786
|
-
var sessionPop = "
|
|
6808
|
+
var sessionPop = "_f4 _3";
|
|
6809
|
+
//#endregion
|
|
6810
|
+
//#region src/client/status.ts
|
|
6811
|
+
/** Workspace activity dot from its polled status counts. */
|
|
6812
|
+
function phaseOf(status) {
|
|
6813
|
+
return status?.working ? "working" : status?.waiting ? "waiting" : status?.agents ? "idle" : "off";
|
|
6814
|
+
}
|
|
6815
|
+
/** Session activity dot from its own state. */
|
|
6816
|
+
function sessionPhase(state) {
|
|
6817
|
+
return state?.phase === "working" ? "working" : state?.phase === "waiting" ? "waiting" : state?.alive ? "idle" : "off";
|
|
6818
|
+
}
|
|
6819
|
+
/**
|
|
6820
|
+
* What a session is *running*, which is not always what it was started as: a
|
|
6821
|
+
* shell someone typed `claude` into is a claude session as far as the reader
|
|
6822
|
+
* is concerned. Only shells are reinterpreted — an agent kind stays itself
|
|
6823
|
+
* even while it shells out, so the icon doesn't flicker mid-command.
|
|
6824
|
+
*/
|
|
6825
|
+
function activeAgent(session) {
|
|
6826
|
+
if (session.agent !== "shell") return session.agent;
|
|
6827
|
+
const command = session.state?.command?.trim();
|
|
6828
|
+
return command && agentFromCommand(command) || session.agent;
|
|
6829
|
+
}
|
|
6787
6830
|
//#endregion
|
|
6788
6831
|
//#region src/tags/icons/icon-diff.marko
|
|
6789
6832
|
var icon_diff_default = _template("V", (input) => {
|
|
@@ -6803,7 +6846,7 @@ var icon_diff_default = _template("V", (input) => {
|
|
|
6803
6846
|
});
|
|
6804
6847
|
//#endregion
|
|
6805
6848
|
//#region src/tags/icons/icon-manage.marko
|
|
6806
|
-
var icon_manage_default = _template("
|
|
6849
|
+
var icon_manage_default = _template("bb", (input) => {
|
|
6807
6850
|
const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
|
|
6808
6851
|
const $scope0_id = _scope_id();
|
|
6809
6852
|
_set_serialize_reason({
|
|
@@ -6820,10 +6863,6 @@ var icon_manage_default = _template("cb", (input) => {
|
|
|
6820
6863
|
});
|
|
6821
6864
|
//#endregion
|
|
6822
6865
|
//#region src/tags/usage-pcts.marko
|
|
6823
|
-
function pctText(pct) {
|
|
6824
|
-
const rounded = Math.round(pct);
|
|
6825
|
-
return rounded !== pct && (rounded === 100 || rounded === 0) ? `${pct.toFixed(1)}%` : `${rounded}%`;
|
|
6826
|
-
}
|
|
6827
6866
|
var usage_pcts_default = _template("E", (input) => {
|
|
6828
6867
|
const $scope0_reason = _scope_reason(), $sg__input_agent = _serialize_guard($scope0_reason, 1), $si__input_agent = _serialize_if($scope0_reason, 1), $sg__input_agent__OR__input_class = _serialize_guard($scope0_reason, 0), $si__input_agent__OR__input_class = _serialize_if($scope0_reason, 0);
|
|
6829
6868
|
const $scope0_id = _scope_id();
|
|
@@ -6833,22 +6872,22 @@ var usage_pcts_default = _template("E", (input) => {
|
|
|
6833
6872
|
if (windows.length) {
|
|
6834
6873
|
const $scope1_id = _scope_id();
|
|
6835
6874
|
_html(`<span${_attr_class([
|
|
6836
|
-
"
|
|
6875
|
+
"_fm",
|
|
6837
6876
|
input.class,
|
|
6838
|
-
{ ["
|
|
6877
|
+
{ ["_fn"]: agent.stale_seconds != null }
|
|
6839
6878
|
])}${agent.stale_seconds != null ? _attr("title", `${agent.note || "provider unreachable"}; last cached numbers`) : " title=\"Plan usage\""}>`);
|
|
6840
6879
|
_for_of(windows, (win$1, i) => {
|
|
6841
6880
|
const $scope2_id = _scope_id();
|
|
6842
|
-
_html(`<span${_attr_class("
|
|
6881
|
+
_html(`<span${_attr_class("_fo")}>`);
|
|
6843
6882
|
_if(() => {
|
|
6844
6883
|
if (i) {
|
|
6845
6884
|
const $scope3_id = _scope_id();
|
|
6846
|
-
_html(`<span${_attr_class("
|
|
6885
|
+
_html(`<span${_attr_class("_fr")} aria-hidden=true>·</span>`);
|
|
6847
6886
|
$si__input_agent && writeScope($scope3_id, {});
|
|
6848
6887
|
return 0;
|
|
6849
6888
|
}
|
|
6850
6889
|
}, $scope2_id, "b", $sg__input_agent, $sg__input_agent, $sg__input_agent, 0, 1);
|
|
6851
|
-
_html(`<span${_attr_class("
|
|
6890
|
+
_html(`<span${_attr_class("_fp")}>${_escape(win$1.window)}${_el_resume($scope2_id, "d", $sg__input_agent)}</span><span${_attr_class(["_fq", win$1.used_percent >= 90 ? "_dv" : win$1.used_percent >= 70 ? "_du" : win$1.used_percent >= 40 ? "_dt" : "_ds"])}>${_escape(pctText(win$1.used_percent))}${_el_resume($scope2_id, "f", $sg__input_agent)}</span>${_el_resume($scope2_id, "e", $sg__input_agent)}</span>`);
|
|
6852
6891
|
$si__input_agent && writeScope($scope2_id, {});
|
|
6853
6892
|
}, "window", $scope1_id, "a", $sg__input_agent, $sg__input_agent__OR__input_class, $sg__input_agent, "</span>", 1);
|
|
6854
6893
|
$si__input_agent__OR__input_class && writeScope($scope1_id, { _: _scope_with_id($scope0_id) });
|
|
@@ -6879,12 +6918,12 @@ var icon_edit_default = _template("X", (input) => {
|
|
|
6879
6918
|
});
|
|
6880
6919
|
_serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
|
|
6881
6920
|
});
|
|
6882
|
-
var prChip = "
|
|
6883
|
-
var portChip = "
|
|
6921
|
+
var prChip = "_hr _s _hq";
|
|
6922
|
+
var portChip = "_hs _s _hq";
|
|
6884
6923
|
var prState = {
|
|
6885
|
-
open: "
|
|
6886
|
-
merged: "
|
|
6887
|
-
closed: "
|
|
6924
|
+
open: "_hw",
|
|
6925
|
+
merged: "_hx",
|
|
6926
|
+
closed: "_hy"
|
|
6888
6927
|
};
|
|
6889
6928
|
//#endregion
|
|
6890
6929
|
//#region src/tags/side-nav-chips.marko
|
|
@@ -6956,7 +6995,7 @@ var side_nav_chips_default = _template("w", (input) => {
|
|
|
6956
6995
|
const name = repo.full_name.split("/").at(-1);
|
|
6957
6996
|
return repos.some((r) => r.full_name !== repo.full_name && r.full_name.split("/").at(-1) === name) ? repoLabel(repo.full_name) : name;
|
|
6958
6997
|
}, "w4", $scope1_id);
|
|
6959
|
-
_html(`<div${_attr_class("
|
|
6998
|
+
_html(`<div${_attr_class("_hp")}>`);
|
|
6960
6999
|
_for_of(repos, (repo) => {
|
|
6961
7000
|
const $scope2_id = _scope_id();
|
|
6962
7001
|
const $for_content__repo_worktree__closures = /* @__PURE__ */ new Set();
|
|
@@ -6967,16 +7006,16 @@ var side_nav_chips_default = _template("w", (input) => {
|
|
|
6967
7006
|
"_s",
|
|
6968
7007
|
prChip,
|
|
6969
7008
|
{
|
|
6970
|
-
["
|
|
6971
|
-
["
|
|
7009
|
+
["_t"]: open && !pr.isDraft,
|
|
7010
|
+
["_u"]: open && pr.isDraft,
|
|
6972
7011
|
[prState.merged]: pr.state === "MERGED",
|
|
6973
7012
|
[prState.closed]: pr.state === "CLOSED"
|
|
6974
7013
|
}
|
|
6975
|
-
])}${_attr("title", prTitle(repo, pr))}><a${_attr_class(["
|
|
7014
|
+
])}${_attr("title", prTitle(repo, pr))}><a${_attr_class(["_ht", { ["_hA"]: !open }])}${_attr("href", pr.url)} target=_blank rel=noopener>${_escape(repoLabel$1(repo))}${_el_resume($scope3_id, "c")}#<!>${_escape(pr.number)}${_el_resume($scope3_id, "d")}</a>${_el_resume($scope3_id, "b")}`);
|
|
6976
7015
|
_if(() => {
|
|
6977
7016
|
if (open) {
|
|
6978
7017
|
const $scope4_id = _scope_id();
|
|
6979
|
-
_html(`<a${_attr_class(["
|
|
7018
|
+
_html(`<a${_attr_class(["_ht", "_hu"])}${_attr("href", `/w/${input.workspaceId}/review?pr=${encodeURIComponent(`${repo.worktree}/${pr.number}`)}`)}${_attr("title", `Review #${pr.number} changes`)}>`);
|
|
6980
7019
|
icon_diff_default({ size: 12 });
|
|
6981
7020
|
_html(`</a>${_el_resume($scope4_id, "a")}`);
|
|
6982
7021
|
_subscribe($for_content__repo_worktree__closures, _subscribe($si__input_workspaceId && $input_workspaceId__closures, writeScope($scope4_id, {})));
|
|
@@ -6984,9 +7023,9 @@ var side_nav_chips_default = _template("w", (input) => {
|
|
|
6984
7023
|
} else {
|
|
6985
7024
|
const $scope6_id = _scope_id();
|
|
6986
7025
|
_html(`<button type=button${_attr_class([
|
|
6987
|
-
"
|
|
6988
|
-
"
|
|
6989
|
-
"
|
|
7026
|
+
"_ht",
|
|
7027
|
+
"_hu",
|
|
7028
|
+
"_hv"
|
|
6990
7029
|
])}${_attr("title", `Dismiss #${pr.number}`)}>`);
|
|
6991
7030
|
icon_xmark_default({ size: 12 });
|
|
6992
7031
|
_html(`</button>${_el_resume($scope6_id, "a")}`);
|
|
@@ -7007,10 +7046,10 @@ var side_nav_chips_default = _template("w", (input) => {
|
|
|
7007
7046
|
}, "full_name", $scope1_id, "b");
|
|
7008
7047
|
_for_of(ports, (p) => {
|
|
7009
7048
|
const $scope5_id = _scope_id();
|
|
7010
|
-
_html(`<span${_attr_class(["_s", portChip])}${_attr("title", p.cmd)}><button type=button${_attr_class(["
|
|
7049
|
+
_html(`<span${_attr_class(["_s", portChip])}${_attr("title", p.cmd)}><button type=button${_attr_class(["_ht", "_hz"])}${_attr("title", `Open http://${typeof location === "undefined" ? "localhost" : location.hostname}:${p.port}`)}>:<!>${_escape(p.port)}${_el_resume($scope5_id, "c")}</button>${_el_resume($scope5_id, "b")}<button type=button${_attr_class([
|
|
7050
|
+
"_ht",
|
|
7051
|
+
"_hu",
|
|
7011
7052
|
"_hv",
|
|
7012
|
-
"_hw",
|
|
7013
|
-
"_hx",
|
|
7014
7053
|
{ ["_q"]: armedPid === p.pid }
|
|
7015
7054
|
])}${armedPid === p.pid ? " title=Kill?" : _attr("title", `Kill ${p.cmd} (pid ${p.pid})`)}>`);
|
|
7016
7055
|
icon_xmark_default({ size: 12 });
|
|
@@ -7106,10 +7145,10 @@ var side_nav_item_default = _template("x", (input) => {
|
|
|
7106
7145
|
_if(() => {
|
|
7107
7146
|
if (input.rail) {
|
|
7108
7147
|
const $scope2_id = _scope_id();
|
|
7109
|
-
_html(`<a${_attr("href", `/w/${ws$1.id}`)}${_attr_class([railBtn, { ["
|
|
7110
|
-
"
|
|
7148
|
+
_html(`<a${_attr("href", `/w/${ws$1.id}`)}${_attr_class([railBtn, { ["_gn"]: input.current }])}${_attr("title", ws$1.name)}>${_escape((input.index ?? 0) + 1)}${_el_resume($scope2_id, "b", _serialize_guard($scope0_reason, 27))}<span${_attr_class([
|
|
7149
|
+
"_y",
|
|
7111
7150
|
phase[dot],
|
|
7112
|
-
"
|
|
7151
|
+
"_gq"
|
|
7113
7152
|
])}></span>${_el_resume($scope2_id, "c", $sg__input_workspaceId__OR__input_status)}</a>${_el_resume($scope2_id, "a", _serialize_guard($scope0_reason, 3))}`);
|
|
7114
7153
|
_serialize_if($scope0_reason, 18) && _subscribe($si__input_workspaces__OR__input_workspaceId && $ws_name__closures, _subscribe($si__input_workspaces__OR__input_workspaceId && $ws_id__closures, _subscribe($si__input_index && $input_index__closures, _subscribe($si__input_current && $input_current__closures, writeScope($scope2_id, { _: _scope_with_id($scope1_id) })))));
|
|
7115
7154
|
return 0;
|
|
@@ -7117,15 +7156,15 @@ var side_nav_item_default = _template("x", (input) => {
|
|
|
7117
7156
|
const $scope3_id = _scope_id();
|
|
7118
7157
|
const sessions$1 = input.sessions || [];
|
|
7119
7158
|
const phaseLabel = dot === "working" ? "Working" : dot === "waiting" ? "Needs input" : dot === "idle" ? "Idle" : "Not running";
|
|
7120
|
-
_html(`<section${_attr_class(["
|
|
7121
|
-
["
|
|
7122
|
-
["
|
|
7123
|
-
["
|
|
7124
|
-
["
|
|
7125
|
-
}])}><div${_attr_class("
|
|
7126
|
-
"
|
|
7159
|
+
_html(`<section${_attr_class(["_gs", {
|
|
7160
|
+
["_gn"]: input.current,
|
|
7161
|
+
["_4"]: input.current,
|
|
7162
|
+
["_gt"]: input.railPop,
|
|
7163
|
+
["_gr"]: input.page
|
|
7164
|
+
}])}><div${_attr_class("_gu")}><a${_attr("href", `/w/${ws$1.id}`)}${_attr_class("_gv")}><span${_attr_class([
|
|
7165
|
+
"_y",
|
|
7127
7166
|
phase[dot],
|
|
7128
|
-
"
|
|
7167
|
+
"_gI"
|
|
7129
7168
|
])}${_attr("title", phaseLabel)}></span>${_el_resume($scope3_id, "d", $sg__input_workspaceId__OR__input_status)}`);
|
|
7130
7169
|
_if(() => {
|
|
7131
7170
|
if (sessions$1.length === 1) {
|
|
@@ -7138,7 +7177,7 @@ var side_nav_item_default = _template("x", (input) => {
|
|
|
7138
7177
|
icon_agent_default({
|
|
7139
7178
|
agent: activeAgent(sessions$1[0]),
|
|
7140
7179
|
size: 12,
|
|
7141
|
-
class: "
|
|
7180
|
+
class: "_gA"
|
|
7142
7181
|
});
|
|
7143
7182
|
$si__input_sessions && writeScope($scope14_id, {
|
|
7144
7183
|
_: _scope_with_id($scope3_id),
|
|
@@ -7148,16 +7187,16 @@ var side_nav_item_default = _template("x", (input) => {
|
|
|
7148
7187
|
}
|
|
7149
7188
|
}, $scope3_id, "e", $sg__input_sessions, $sg__input_sessions);
|
|
7150
7189
|
const metaText = sessions$1.length === 0 ? phaseLabel : sessions$1.length === 1 ? sessions$1[0].title || "" : `${sessions$1.length} sessions`;
|
|
7151
|
-
_html(`<span${_attr_class("
|
|
7190
|
+
_html(`<span${_attr_class("_gB")}><span${_attr_class("_gC")}>${_escape(ws$1.name)}${_el_resume($scope3_id, "h", $sg__input_workspaces__OR__input_workspaceId)}</span>`);
|
|
7152
7191
|
_if(() => {
|
|
7153
7192
|
if (input.page && metaText) {
|
|
7154
7193
|
const $scope16_id = _scope_id();
|
|
7155
|
-
_html(`<span${_attr_class("
|
|
7194
|
+
_html(`<span${_attr_class("_gG")}>${_escape(metaText)}${_el_resume($scope16_id, "b", _serialize_guard($scope0_reason, 7))}</span>`);
|
|
7156
7195
|
$si__input_page__OR__input_sessions__OR__input_workspaceId__OR__input_status && writeScope($scope16_id, { _: _serialize_if($scope0_reason, 7) && _scope_with_id($scope3_id) });
|
|
7157
7196
|
return 0;
|
|
7158
7197
|
} else if (sessions$1.length === 1 && sessions$1[0].title) {
|
|
7159
7198
|
const $scope15_id = _scope_id();
|
|
7160
|
-
_html(`<span${_attr_class("
|
|
7199
|
+
_html(`<span${_attr_class("_gD")}>${_escape(sessions$1[0].title)}${_el_resume($scope15_id, "b", $sg__input_sessions)}</span>`);
|
|
7161
7200
|
$si__input_page__OR__input_sessions__OR__input_workspaceId__OR__input_status && writeScope($scope15_id, { _: $si__input_sessions && _scope_with_id($scope3_id) });
|
|
7162
7201
|
return 1;
|
|
7163
7202
|
}
|
|
@@ -7167,10 +7206,10 @@ var side_nav_item_default = _template("x", (input) => {
|
|
|
7167
7206
|
if (input.page) {
|
|
7168
7207
|
const $scope4_id = _scope_id();
|
|
7169
7208
|
_html(`<span${_attr_class([
|
|
7170
|
-
"
|
|
7171
|
-
"
|
|
7172
|
-
"
|
|
7173
|
-
"
|
|
7209
|
+
"_H",
|
|
7210
|
+
"_Q",
|
|
7211
|
+
"_J",
|
|
7212
|
+
"_gH"
|
|
7174
7213
|
])}>${input.current ? "Open" : ""}${_el_resume($scope4_id, "b", _serialize_guard($scope0_reason, 21))}</span>`);
|
|
7175
7214
|
$si__input_current__OR__input_page__OR__input_rail__OR__input_workspaces__OR__input_workspaceId && _subscribe($si__input_current && $input_current__closures, writeScope($scope4_id, {
|
|
7176
7215
|
_: _scope_with_id($scope3_id),
|
|
@@ -7183,7 +7222,7 @@ var side_nav_item_default = _template("x", (input) => {
|
|
|
7183
7222
|
_if(() => {
|
|
7184
7223
|
if (!input.page) {
|
|
7185
7224
|
const $scope5_id = _scope_id();
|
|
7186
|
-
_html(`<div${_attr_class("
|
|
7225
|
+
_html(`<div${_attr_class("_gw")}>`);
|
|
7187
7226
|
_if(() => {
|
|
7188
7227
|
if (input.onNewSession) {
|
|
7189
7228
|
const $scope6_id = _scope_id();
|
|
@@ -7197,7 +7236,7 @@ var side_nav_item_default = _template("x", (input) => {
|
|
|
7197
7236
|
_html(`</button>${_el_resume($scope6_id, "a")}<div${_attr("id", newPopId)} popover=auto${_attr_class(sessionPop)}>`);
|
|
7198
7237
|
_for_of([], (agent) => {
|
|
7199
7238
|
const $scope7_id = _scope_id();
|
|
7200
|
-
_html(`<button${_attr_class("
|
|
7239
|
+
_html(`<button${_attr_class("_f5")}>`);
|
|
7201
7240
|
_set_serialize_reason(12);
|
|
7202
7241
|
const $childScope2 = _peek_scope_id();
|
|
7203
7242
|
icon_agent_default({
|
|
@@ -7232,7 +7271,7 @@ var side_nav_item_default = _template("x", (input) => {
|
|
|
7232
7271
|
return 0;
|
|
7233
7272
|
}
|
|
7234
7273
|
}, $scope5_id, "c", $sg__input_onReview, $sg__input_onReview, $sg__input_onNewSession__OR__input_onReview, 0, 1);
|
|
7235
|
-
_html(`<a${input.managing ? _attr("href", `/w/${ws$1.id}`) : _attr("href", `/w/${ws$1.id}/manage`)}${_attr_class([rowIcon, { ["
|
|
7274
|
+
_html(`<a${input.managing ? _attr("href", `/w/${ws$1.id}`) : _attr("href", `/w/${ws$1.id}/manage`)}${_attr_class([rowIcon, { ["_go"]: input.managing }])} title=${input.managing ? "\"Back to terminal\"" : "\"Manage workspace\""}${input.managing ? " aria-current=page" : ""}>`);
|
|
7236
7275
|
icon_manage_default({ size: 12 });
|
|
7237
7276
|
_html(`</a>${_el_resume($scope5_id, "d", _serialize_guard($scope0_reason, 8))}</div>`);
|
|
7238
7277
|
_subscribe($si__input_workspaces__OR__input_workspaceId && $ws_id__closures, _subscribe($si__input_managing && $input_managing__closures, _subscribe($si__input_onReview && $input_onReview__closures, _subscribe($si__input_onNewSession && $input_onNewSession__closures, writeScope($scope5_id, {
|
|
@@ -7242,7 +7281,7 @@ var side_nav_item_default = _template("x", (input) => {
|
|
|
7242
7281
|
return 0;
|
|
7243
7282
|
}
|
|
7244
7283
|
}, $scope3_id, "k", $sg__input_page, $sg__input_page, 1, 0, 1);
|
|
7245
|
-
_html(`</div><div${_attr_class("
|
|
7284
|
+
_html(`</div><div${_attr_class("_gN")}>`);
|
|
7246
7285
|
_if(() => {
|
|
7247
7286
|
if (sessions$1.length === 1 && openPlan) {
|
|
7248
7287
|
const $scope11_id = _scope_id();
|
|
@@ -7250,7 +7289,7 @@ var side_nav_item_default = _template("x", (input) => {
|
|
|
7250
7289
|
const $childScope3 = _peek_scope_id();
|
|
7251
7290
|
usage_pcts_default({
|
|
7252
7291
|
agent: openPlan,
|
|
7253
|
-
class: "
|
|
7292
|
+
class: "_gE"
|
|
7254
7293
|
});
|
|
7255
7294
|
_subscribe($openPlan__closures, writeScope($scope11_id, {
|
|
7256
7295
|
a: _existing_scope($childScope3),
|
|
@@ -7261,14 +7300,14 @@ var side_nav_item_default = _template("x", (input) => {
|
|
|
7261
7300
|
}, $scope3_id, "m");
|
|
7262
7301
|
_for_of(sessions$1.length > 1 ? sessions$1 : [], (s) => {
|
|
7263
7302
|
const $scope8_id = _scope_id();
|
|
7264
|
-
_html(`<div${_attr_class(["
|
|
7303
|
+
_html(`<div${_attr_class(["_gx", { ["_gn"]: s.id === input.currentTab }])}>`);
|
|
7265
7304
|
_if(() => {
|
|
7266
7305
|
if (renamingId === s.id) {
|
|
7267
7306
|
const $scope10_id = _scope_id();
|
|
7268
7307
|
_html(`<span${_attr_class([
|
|
7269
|
-
"
|
|
7308
|
+
"_y",
|
|
7270
7309
|
phase[sessionPhase(s.state)],
|
|
7271
|
-
"
|
|
7310
|
+
"_gL"
|
|
7272
7311
|
])}></span>${_el_resume($scope10_id, "a", $sg__input_sessions)}`);
|
|
7273
7312
|
_set_serialize_reason({
|
|
7274
7313
|
1: $sg__input_sessions,
|
|
@@ -7278,17 +7317,17 @@ var side_nav_item_default = _template("x", (input) => {
|
|
|
7278
7317
|
icon_agent_default({
|
|
7279
7318
|
agent: activeAgent(s),
|
|
7280
7319
|
size: 13,
|
|
7281
|
-
class: "
|
|
7320
|
+
class: "_gP"
|
|
7282
7321
|
});
|
|
7283
7322
|
_html(`<input${_attr_input_value($scope10_id, "c", renameValue, _resume((_new_renameValue) => {
|
|
7284
7323
|
renameValue = _new_renameValue;
|
|
7285
|
-
}, "x0", $scope10_id))}${_attr_class(["
|
|
7324
|
+
}, "x0", $scope10_id))}${_attr_class(["_T", "_gM"])} aria-label="Session name">${_el_resume($scope10_id, "c")}`);
|
|
7286
7325
|
_script($scope10_id, "x5");
|
|
7287
7326
|
_subscribe($renameValue__closures, writeScope($scope10_id, { b: $si__input_sessions && _existing_scope($childScope4) }));
|
|
7288
7327
|
return 0;
|
|
7289
7328
|
} else {
|
|
7290
7329
|
const $scope9_id = _scope_id();
|
|
7291
|
-
_html(`<a${_attr("href", `/w/${ws$1.id}?s=${s.id}`)}${_attr_class("
|
|
7330
|
+
_html(`<a${_attr("href", `/w/${ws$1.id}?s=${s.id}`)}${_attr_class("_gO")}><span${_attr_class(["_y", phase[sessionPhase(s.state)]])}></span>${_el_resume($scope9_id, "b", $sg__input_sessions)}`);
|
|
7292
7331
|
_set_serialize_reason({
|
|
7293
7332
|
1: $sg__input_sessions,
|
|
7294
7333
|
2: $sg__input_sessions
|
|
@@ -7297,9 +7336,9 @@ var side_nav_item_default = _template("x", (input) => {
|
|
|
7297
7336
|
icon_agent_default({
|
|
7298
7337
|
agent: activeAgent(s),
|
|
7299
7338
|
size: 13,
|
|
7300
|
-
class: "
|
|
7339
|
+
class: "_gP"
|
|
7301
7340
|
});
|
|
7302
|
-
_html(`<span${_attr_class("
|
|
7341
|
+
_html(`<span${_attr_class("_gJ")}>${_escape(s.title || activeAgent(s))}${_el_resume($scope9_id, "e", $sg__input_sessions)}</span></a>${_el_resume($scope9_id, "a", _serialize_guard($scope0_reason, 6))}<div${_attr_class("_gK")}><button${_attr_class(rowIcon)} title="Rename session">`);
|
|
7303
7342
|
icon_edit_default({ size: 12 });
|
|
7304
7343
|
_html(`</button>${_el_resume($scope9_id, "g")}<button${_attr_class([close, { ["_q"]: armedKill === s.id }])} title=${armedKill === s.id ? "Close?" : "\"Close session\""}>`);
|
|
7305
7344
|
icon_xmark_default({ size: 12 });
|
|
@@ -7311,7 +7350,7 @@ var side_nav_item_default = _template("x", (input) => {
|
|
|
7311
7350
|
const $childScope6 = _peek_scope_id();
|
|
7312
7351
|
usage_pcts_default({
|
|
7313
7352
|
agent: openPlan,
|
|
7314
|
-
class: "
|
|
7353
|
+
class: "_gF"
|
|
7315
7354
|
});
|
|
7316
7355
|
_subscribe($openPlan__closures, writeScope($scope12_id, {
|
|
7317
7356
|
a: _existing_scope($childScope6),
|
|
@@ -7440,7 +7479,7 @@ var icon_folder_plus_default = _template("$", (input) => {
|
|
|
7440
7479
|
});
|
|
7441
7480
|
//#endregion
|
|
7442
7481
|
//#region src/tags/icons/icon-sidebar-collapse.marko
|
|
7443
|
-
var icon_sidebar_collapse_default = _template("
|
|
7482
|
+
var icon_sidebar_collapse_default = _template("gb", (input) => {
|
|
7444
7483
|
const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
|
|
7445
7484
|
const $scope0_id = _scope_id();
|
|
7446
7485
|
_set_serialize_reason({
|
|
@@ -7501,40 +7540,39 @@ var side_nav_default = _template("y", (input) => {
|
|
|
7501
7540
|
const itemIds = input.allWorkspaces?.length ? input.allWorkspaces.filter((w) => w.status === "active").map((w) => w.id) : [ws.id];
|
|
7502
7541
|
const workspaces = input.allWorkspaces || [ws];
|
|
7503
7542
|
const allStatus = input.allStatus || {};
|
|
7504
|
-
allStatus[ws.id];
|
|
7505
7543
|
const isPage = view === "nav";
|
|
7506
7544
|
const backHref = `/w/${ws.id}`;
|
|
7507
7545
|
const iconSrc = `/api/instance/icon${input.instanceAccent ? `?v=${input.instanceAccent.slice(1)}` : ""}`;
|
|
7508
7546
|
const otherIds = itemIds.filter((id) => id !== ws.id);
|
|
7509
7547
|
const listIds = isPage ? [ws.id, ...otherIds] : itemIds;
|
|
7510
|
-
_html(`<aside${_attr_class(["
|
|
7511
|
-
["
|
|
7512
|
-
["
|
|
7548
|
+
_html(`<aside${_attr_class(["_et", {
|
|
7549
|
+
["_er"]: !navOpen,
|
|
7550
|
+
["_es"]: isPage
|
|
7513
7551
|
}])}${_attr("hidden", view === "diff")}>`);
|
|
7514
7552
|
_if(() => {
|
|
7515
7553
|
if (isPage) {
|
|
7516
7554
|
const $scope1_id = _scope_id();
|
|
7517
|
-
_html(`<header${_attr_class("
|
|
7555
|
+
_html(`<header${_attr_class("_ew")}><div${_attr_class("_eF")}>`);
|
|
7518
7556
|
_if(() => {
|
|
7519
7557
|
if (input.instanceName) {
|
|
7520
7558
|
const $scope2_id = _scope_id();
|
|
7521
|
-
_html(`<div${_attr_class("
|
|
7559
|
+
_html(`<div${_attr_class("_eC")} title="This work server (Settings → Appearance)"><img${_attr_class("_eD")}${_attr("src", iconSrc)} alt aria-hidden=true>${_el_resume($scope2_id, "b", $sg__input_instanceAccent)}<span${_attr_class("_eE")}>${_escape(input.instanceName)}${_el_resume($scope2_id, "d", $sg__input_instanceName)}</span></div>`);
|
|
7522
7560
|
_subscribe($si__input_instanceAccent && $iconSrc__closures, _subscribe($si__input_instanceName && $input_instanceName__closures, writeScope($scope2_id, { _: _scope_with_id($scope1_id) })));
|
|
7523
7561
|
return 0;
|
|
7524
7562
|
}
|
|
7525
7563
|
}, $scope1_id, "c", $sg__input_instanceName, $sg__input_instanceName, 1, 0, 1);
|
|
7526
|
-
_html(`<h1${_attr_class("
|
|
7564
|
+
_html(`<h1${_attr_class("_ex")}>Workspaces</h1></div><div${_attr_class("_ey")}>`);
|
|
7527
7565
|
_if(() => {}, $scope1_id, "f", 1, 1, 1, 0, 1);
|
|
7528
7566
|
_html(`<a${view === "settings" ? _attr("href", backHref) : " href=/settings"}${_attr_class([
|
|
7529
7567
|
iconBtn$1,
|
|
7530
|
-
"
|
|
7531
|
-
{ ["
|
|
7568
|
+
"_ez",
|
|
7569
|
+
{ ["_eo"]: view === "settings" }
|
|
7532
7570
|
])} title=${view === "settings" ? "\"Back to workspace\"" : "Settings"}${view === "settings" ? " aria-current=page" : ""}>`);
|
|
7533
7571
|
icon_settings_default({ size: 16 });
|
|
7534
7572
|
_if(() => {
|
|
7535
7573
|
if (input.setupReady === false) {
|
|
7536
7574
|
const $scope12_id = _scope_id();
|
|
7537
|
-
_html(`<span${_attr_class(["
|
|
7575
|
+
_html(`<span${_attr_class(["_y", "_eq"])} title="Machine setup incomplete"></span>`);
|
|
7538
7576
|
$si__input_setupReady && writeScope($scope12_id, {});
|
|
7539
7577
|
return 0;
|
|
7540
7578
|
}
|
|
@@ -7547,18 +7585,18 @@ var side_nav_default = _template("y", (input) => {
|
|
|
7547
7585
|
_if(() => {
|
|
7548
7586
|
if (!isPage && input.instanceName) {
|
|
7549
7587
|
const $scope3_id = _scope_id();
|
|
7550
|
-
_html(`<div${_attr_class("
|
|
7588
|
+
_html(`<div${_attr_class("_eC")} title="This work server (Settings → Appearance)"><img${_attr_class("_eD")}${_attr("src", iconSrc)} alt aria-hidden=true>${_el_resume($scope3_id, "b", $sg__input_instanceAccent)}<span${_attr_class("_eE")}>${_escape(input.instanceName)}${_el_resume($scope3_id, "d", $sg__input_instanceName)}</span></div>`);
|
|
7551
7589
|
writeScope($scope3_id, {});
|
|
7552
7590
|
return 0;
|
|
7553
7591
|
}
|
|
7554
7592
|
}, $scope0_id, "c", 1, 1, 1, 0, 1);
|
|
7555
|
-
_html(`<div${_attr_class("
|
|
7593
|
+
_html(`<div${_attr_class("_eG")}>`);
|
|
7556
7594
|
_for_of(listIds, (wsId) => {
|
|
7557
7595
|
const $scope4_id = _scope_id();
|
|
7558
7596
|
_if(() => {
|
|
7559
7597
|
if (isPage && wsId === ws.id) {
|
|
7560
7598
|
const $scope13_id = _scope_id();
|
|
7561
|
-
_html(`<h2${_attr_class(["
|
|
7599
|
+
_html(`<h2${_attr_class(["_bB", "_eA"])}>Current</h2>`);
|
|
7562
7600
|
writeScope($scope13_id, {});
|
|
7563
7601
|
return 0;
|
|
7564
7602
|
}
|
|
@@ -7566,7 +7604,7 @@ var side_nav_default = _template("y", (input) => {
|
|
|
7566
7604
|
_if(() => {
|
|
7567
7605
|
if (isPage && wsId !== ws.id && wsId === otherIds[0]) {
|
|
7568
7606
|
const $scope14_id = _scope_id();
|
|
7569
|
-
_html(`<h2${_attr_class(["
|
|
7607
|
+
_html(`<h2${_attr_class(["_bB", "_eA"])}>Other workspaces</h2>`);
|
|
7570
7608
|
writeScope($scope14_id, {});
|
|
7571
7609
|
return 0;
|
|
7572
7610
|
}
|
|
@@ -7650,7 +7688,7 @@ var side_nav_default = _template("y", (input) => {
|
|
|
7650
7688
|
railHover = null;
|
|
7651
7689
|
}, 150);
|
|
7652
7690
|
}, "y6", $scope5_id);
|
|
7653
|
-
_html(`<div${_attr_class("
|
|
7691
|
+
_html(`<div${_attr_class("_eH")}>`);
|
|
7654
7692
|
_for_of(itemIds, (wsId, i) => {
|
|
7655
7693
|
const $scope6_id = _scope_id();
|
|
7656
7694
|
_html("<span>");
|
|
@@ -7704,7 +7742,7 @@ var side_nav_default = _template("y", (input) => {
|
|
|
7704
7742
|
if (railHover) {
|
|
7705
7743
|
const $scope7_id = _scope_id();
|
|
7706
7744
|
const hoverId = railHover.id;
|
|
7707
|
-
_html(`<div${_attr_class(["
|
|
7745
|
+
_html(`<div${_attr_class(["_3", "_eK"])}${_attr_style(`top:${railHover.top}px;left:${railHover.left}px`)}>`);
|
|
7708
7746
|
_set_serialize_reason({
|
|
7709
7747
|
0: 1,
|
|
7710
7748
|
1: 1,
|
|
@@ -7771,9 +7809,9 @@ var side_nav_default = _template("y", (input) => {
|
|
|
7771
7809
|
_subscribe($si__input_allStatus && $allStatus__closures, _subscribe($si__input_workspace__OR__input_allWorkspaces && $workspaces__closures, _subscribe($view__closures, _subscribe($si__input_tab__OR__input_tabChange && $tab__closures, _subscribe($si__input_workspace && $ws_id__closures, _subscribe($si__input_onCloseSession && $input_onCloseSession__closures, _subscribe($si__input_onRenameSession && $input_onRenameSession__closures, _subscribe($si__input_sessions && $input_sessions__closures, _subscribe($si__input_onReviewOther && $input_onReviewOther__closures, _subscribe($si__input_onReviewOpened && $input_onReviewOpened__closures, _subscribe($si__input_onNewSession && $input_onNewSession__closures, _subscribe($si__input_agents && $input_agents__closures, writeScope($scope7_id, {
|
|
7772
7810
|
d: hoverId,
|
|
7773
7811
|
b: _existing_scope($childScope3),
|
|
7774
|
-
|
|
7775
|
-
|
|
7776
|
-
|
|
7812
|
+
Cb4: $si__input_workspace && 1,
|
|
7813
|
+
Cbc: $si__input_workspace__OR__input_allWorkspaces && 1,
|
|
7814
|
+
Cbd: $si__input_allStatus && 1
|
|
7777
7815
|
})))))))))))));
|
|
7778
7816
|
return 0;
|
|
7779
7817
|
}
|
|
@@ -7789,7 +7827,7 @@ var side_nav_default = _template("y", (input) => {
|
|
|
7789
7827
|
return 0;
|
|
7790
7828
|
}
|
|
7791
7829
|
}, $scope0_id, "e");
|
|
7792
|
-
_html(`<div${_attr_class("
|
|
7830
|
+
_html(`<div${_attr_class("_eI")}>`);
|
|
7793
7831
|
_if(() => {
|
|
7794
7832
|
if (isPage) {
|
|
7795
7833
|
const $scope9_id = _scope_id();
|
|
@@ -7797,7 +7835,7 @@ var side_nav_default = _template("y", (input) => {
|
|
|
7797
7835
|
"_o",
|
|
7798
7836
|
"_p",
|
|
7799
7837
|
btnLg,
|
|
7800
|
-
"
|
|
7838
|
+
"_eB"
|
|
7801
7839
|
])} title=${view === "new" ? "\"Back to workspace\"" : "\"New workspace\""}${view === "new" ? " aria-current=page" : ""}>`);
|
|
7802
7840
|
icon_folder_plus_default({ size: 16 });
|
|
7803
7841
|
_html(` New workspace</a>${_el_resume($scope9_id, "a")}`);
|
|
@@ -7819,19 +7857,19 @@ var side_nav_default = _template("y", (input) => {
|
|
|
7819
7857
|
return 1;
|
|
7820
7858
|
}
|
|
7821
7859
|
}, $scope8_id, "a", 1, 1, 1, "</button>", 1);
|
|
7822
|
-
_html(`<div${_attr_class(["
|
|
7860
|
+
_html(`<div${_attr_class(["_x", "_eJ"])}></div>`);
|
|
7823
7861
|
_if(() => {}, $scope8_id, "c", 1, 1, 1, 0, 1);
|
|
7824
|
-
_html(`<a${view === "settings" ? _attr("href", backHref) : " href=/settings"}${_attr_class([iconBtn$1, { ["
|
|
7862
|
+
_html(`<a${view === "settings" ? _attr("href", backHref) : " href=/settings"}${_attr_class([iconBtn$1, { ["_eo"]: view === "settings" }])} title=${view === "settings" ? "\"Back to workspace\"" : "Settings"}${view === "settings" ? " aria-current=page" : ""}>`);
|
|
7825
7863
|
icon_settings_default({ size: 15 });
|
|
7826
7864
|
_if(() => {
|
|
7827
7865
|
if (input.setupReady === false) {
|
|
7828
7866
|
const $scope17_id = _scope_id();
|
|
7829
|
-
_html(`<span${_attr_class(["
|
|
7867
|
+
_html(`<span${_attr_class(["_y", "_eq"])} title="Machine setup incomplete"></span>`);
|
|
7830
7868
|
$si__input_setupReady && writeScope($scope17_id, {});
|
|
7831
7869
|
return 0;
|
|
7832
7870
|
}
|
|
7833
7871
|
}, $scope8_id, "f", $sg__input_setupReady, $sg__input_setupReady, 1, 0, 1);
|
|
7834
|
-
_html(`</a>${_el_resume($scope8_id, "d")}<a${view === "new" ? _attr("href", backHref) : " href=/new"}${_attr_class([iconBtn$1, { ["
|
|
7872
|
+
_html(`</a>${_el_resume($scope8_id, "d")}<a${view === "new" ? _attr("href", backHref) : " href=/new"}${_attr_class([iconBtn$1, { ["_eo"]: view === "new" }])} title=${view === "new" ? "\"Back to workspace\"" : "\"New workspace\""}${view === "new" ? " aria-current=page" : ""}>`);
|
|
7835
7873
|
icon_folder_plus_default({ size: 16 });
|
|
7836
7874
|
_html(`</a>${_el_resume($scope8_id, "g")}`);
|
|
7837
7875
|
_script($scope8_id, "y15");
|
|
@@ -7872,36 +7910,36 @@ var side_nav_default = _template("y", (input) => {
|
|
|
7872
7910
|
ai: itemIds,
|
|
7873
7911
|
ak: workspaces,
|
|
7874
7912
|
al: allStatus,
|
|
7875
|
-
|
|
7876
|
-
|
|
7877
|
-
|
|
7878
|
-
|
|
7879
|
-
|
|
7913
|
+
am: isPage,
|
|
7914
|
+
ap: backHref,
|
|
7915
|
+
aq: iconSrc,
|
|
7916
|
+
ar: otherIds,
|
|
7917
|
+
at: otherIds?.[0],
|
|
7880
7918
|
ab: input.viewChange || void 0,
|
|
7881
|
-
|
|
7882
|
-
|
|
7883
|
-
|
|
7884
|
-
|
|
7885
|
-
|
|
7886
|
-
|
|
7887
|
-
|
|
7888
|
-
|
|
7889
|
-
|
|
7890
|
-
|
|
7891
|
-
|
|
7892
|
-
|
|
7893
|
-
|
|
7894
|
-
|
|
7895
|
-
|
|
7919
|
+
av: $si__input_instanceName && $input_instanceName__closures,
|
|
7920
|
+
bg: $si__input_instanceAccent && $iconSrc__closures,
|
|
7921
|
+
b8: $notifyOn__closures,
|
|
7922
|
+
b4: $si__input_workspace && $ws_id__closures,
|
|
7923
|
+
bc: $si__input_workspace__OR__input_allWorkspaces && $workspaces__closures,
|
|
7924
|
+
bd: $si__input_allStatus && $allStatus__closures,
|
|
7925
|
+
ax: $si__input_agents && $input_agents__closures,
|
|
7926
|
+
ay: $si__input_onNewSession && $input_onNewSession__closures,
|
|
7927
|
+
az: $si__input_onReviewOpened && $input_onReviewOpened__closures,
|
|
7928
|
+
b0: $si__input_onReviewOther && $input_onReviewOther__closures,
|
|
7929
|
+
b1: $si__input_sessions && $input_sessions__closures,
|
|
7930
|
+
b2: $si__input_onRenameSession && $input_onRenameSession__closures,
|
|
7931
|
+
b3: $si__input_onCloseSession && $input_onCloseSession__closures,
|
|
7932
|
+
b5: $si__input_tab__OR__input_tabChange && $tab__closures,
|
|
7933
|
+
b6: $view__closures
|
|
7896
7934
|
});
|
|
7897
7935
|
_resume_branch($scope0_id);
|
|
7898
7936
|
});
|
|
7899
|
-
var iconBtn = "
|
|
7900
|
-
var sectionCount = "
|
|
7901
|
-
var content = "
|
|
7902
|
-
var pageMeta = "
|
|
7903
|
-
var pathMeta = "
|
|
7904
|
-
var dangerHint = "
|
|
7937
|
+
var iconBtn = "_Z _j";
|
|
7938
|
+
var sectionCount = "_bp _H _I";
|
|
7939
|
+
var content = "_eL _bE";
|
|
7940
|
+
var pageMeta = "_eM _bJ";
|
|
7941
|
+
var pathMeta = "_eP _w";
|
|
7942
|
+
var dangerHint = "_eV _R";
|
|
7905
7943
|
//#endregion
|
|
7906
7944
|
//#region src/tags/manage-workspace.marko
|
|
7907
7945
|
var api$2;
|
|
@@ -8032,7 +8070,7 @@ var manage_workspace_default = _template("o", (input) => {
|
|
|
8032
8070
|
setTimeout(() => loadProcs(void 0), 500);
|
|
8033
8071
|
}, "o7", $scope0_id);
|
|
8034
8072
|
const titleId = _id();
|
|
8035
|
-
_html(`<div${_attr_class("
|
|
8073
|
+
_html(`<div${_attr_class("_bC")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_bD")}><div${_attr_class(content)}>`);
|
|
8036
8074
|
_set_serialize_reason(30);
|
|
8037
8075
|
const $childScope = _peek_scope_id();
|
|
8038
8076
|
page_head_default({
|
|
@@ -8045,16 +8083,16 @@ var manage_workspace_default = _template("o", (input) => {
|
|
|
8045
8083
|
meta: attrTag({ content: _content_resume("o13", () => {
|
|
8046
8084
|
_scope_reason();
|
|
8047
8085
|
const $scope13_id = _scope_id();
|
|
8048
|
-
_html(`<span${_attr_class(pageMeta)}${_attr("title", ws.display_path || ws.path)}><span${_attr_class("
|
|
8086
|
+
_html(`<span${_attr_class(pageMeta)}${_attr("title", ws.display_path || ws.path)}><span${_attr_class("_eN")}>${_escape(ws.name)}${_el_resume($scope13_id, "c")}</span>`);
|
|
8049
8087
|
_if(() => {
|
|
8050
8088
|
if (ws.status !== "active") {
|
|
8051
8089
|
const $scope17_id = _scope_id();
|
|
8052
|
-
_html(`<span${_attr_class(["
|
|
8090
|
+
_html(`<span${_attr_class(["_H", "_J"])}>Archived</span>`);
|
|
8053
8091
|
writeScope($scope17_id, {});
|
|
8054
8092
|
return 0;
|
|
8055
8093
|
}
|
|
8056
8094
|
}, $scope13_id, "d", 1, 1, 1, 0, 1);
|
|
8057
|
-
_html(`<span${_attr_class("
|
|
8095
|
+
_html(`<span${_attr_class("_eO")} aria-hidden=true>·</span><span${_attr_class(pathMeta)}>${_escape(ws.display_path || ws.path)}${_el_resume($scope13_id, "g")}</span></span>${_el_resume($scope13_id, "a")}`);
|
|
8058
8096
|
_subscribe($ws_status__closures, _subscribe($ws_name__closures, _subscribe($ws_path__closures, _subscribe($ws_display_path__closures, writeScope($scope13_id, { _: _scope_with_id($scope0_id) })))));
|
|
8059
8097
|
_resume_branch($scope13_id);
|
|
8060
8098
|
}, $scope0_id) })
|
|
@@ -8082,26 +8120,26 @@ var manage_workspace_default = _template("o", (input) => {
|
|
|
8082
8120
|
_if(() => {
|
|
8083
8121
|
if (pendingAction && actionStep) {
|
|
8084
8122
|
const $scope11_id = _scope_id();
|
|
8085
|
-
_html(`<p${_attr_class("
|
|
8123
|
+
_html(`<p${_attr_class("_bm")}><span${_attr_class("_E")}></span><!>${_escape(actionStep)}${_el_resume($scope11_id, "c")}</p>`);
|
|
8086
8124
|
writeScope($scope11_id, {});
|
|
8087
8125
|
return 0;
|
|
8088
8126
|
}
|
|
8089
8127
|
}, $scope0_id, "f", 1, 1, 1, 0, 1);
|
|
8090
|
-
_html(`<section${_attr_class("
|
|
8128
|
+
_html(`<section${_attr_class("_bn")}><div${_attr_class("_bo")}><h2${_attr_class("_bB")}>Repos</h2><span${_attr_class(sectionCount)}>${_escape(ws.repos.length)}${_el_resume($scope0_id, "k")}</span><div${_attr_class("_x")}></div><button${_attr_class(iconBtn)} title="Refresh repo list" aria-label="Refresh repo list"${_attr("disabled", catalogRefreshing)}>`);
|
|
8091
8129
|
_set_serialize_reason(1);
|
|
8092
8130
|
const $childScope2 = _peek_scope_id();
|
|
8093
8131
|
icon_refresh_default({
|
|
8094
8132
|
size: 14,
|
|
8095
|
-
class: catalogRefreshing && "
|
|
8133
|
+
class: catalogRefreshing && "_D"
|
|
8096
8134
|
});
|
|
8097
|
-
_html(`</button>${_el_resume($scope0_id, "m")}</div><ul${_attr_class("
|
|
8135
|
+
_html(`</button>${_el_resume($scope0_id, "m")}</div><ul${_attr_class("_bq")}>`);
|
|
8098
8136
|
_for_of(ws.repos, (row) => {
|
|
8099
8137
|
const $scope1_id = _scope_id();
|
|
8100
|
-
_html(`<li${_attr_class("
|
|
8138
|
+
_html(`<li${_attr_class("_bs")}><div${_attr_class("_bt")}><span${_attr_class(["_bu", "_w"])}>${_escape(row.worktree)}${_el_resume($scope1_id, "d")}/</span><span${_attr_class("_bv")}><a${_attr_class(["_bw", "_eR"])}${_attr("href", repoWebUrl$1(row.full_name))} target=_blank rel=noopener${_attr("title", `Open ${row.full_name} on GitHub`)}>${_escape(repoLabel(row.full_name))}${_el_resume($scope1_id, "g")}</a>${_el_resume($scope1_id, "f")}`);
|
|
8101
8139
|
_if(() => {
|
|
8102
8140
|
if (row.base_branch !== row.default_branch) {
|
|
8103
8141
|
const $scope18_id = _scope_id();
|
|
8104
|
-
_html(`<span${_attr_class(["
|
|
8142
|
+
_html(`<span${_attr_class(["_H", "_w"])} title="Base branch">`);
|
|
8105
8143
|
icon_branch_default({ size: 12 });
|
|
8106
8144
|
_html(` <!>${_escape(row.base_branch)}${_el_resume($scope18_id, "c")}</span>`);
|
|
8107
8145
|
writeScope($scope18_id, {});
|
|
@@ -8112,15 +8150,15 @@ var manage_workspace_default = _template("o", (input) => {
|
|
|
8112
8150
|
_if(() => {
|
|
8113
8151
|
if (busy.has(row.full_name)) {
|
|
8114
8152
|
const $scope19_id = _scope_id();
|
|
8115
|
-
_html(`<span${_attr_class("
|
|
8153
|
+
_html(`<span${_attr_class("_E")}></span>`);
|
|
8116
8154
|
writeScope($scope19_id, {});
|
|
8117
8155
|
return 0;
|
|
8118
8156
|
} else {
|
|
8119
8157
|
const $scope10_id = _scope_id();
|
|
8120
8158
|
_html(`<button${_attr_class([
|
|
8121
|
-
"
|
|
8159
|
+
"_bx",
|
|
8160
|
+
"_1",
|
|
8122
8161
|
"_2",
|
|
8123
|
-
"_3",
|
|
8124
8162
|
{ ["_q"]: confirmingRemove === row.full_name }
|
|
8125
8163
|
])}${confirmingRemove === row.full_name ? _attr("title", `Remove ${row.worktree}/? Uncommitted changes are lost.`) : _attr("title", `Remove ${row.worktree}/`)}>`);
|
|
8126
8164
|
_if(() => {
|
|
@@ -8151,19 +8189,19 @@ var manage_workspace_default = _template("o", (input) => {
|
|
|
8151
8189
|
}, "full_name", $scope0_id, "p", 1, 1, 1, 0, 1);
|
|
8152
8190
|
_for_of([...busy].filter((n) => !inWorkspace.has(n)), (name) => {
|
|
8153
8191
|
const $scope22_id = _scope_id();
|
|
8154
|
-
_html(`<li${_attr_class(["
|
|
8192
|
+
_html(`<li${_attr_class(["_bs", "_br"])}><span${_attr_class("_E")}></span><div${_attr_class("_bt")}><span${_attr_class("_bw")}>Adding <!>${_escape(name)}${_el_resume($scope22_id, "e")}…</span></div></li>`);
|
|
8155
8193
|
writeScope($scope22_id, {});
|
|
8156
8194
|
}, (n) => n, $scope0_id, "q", 1, 1, 1, 0, 1);
|
|
8157
8195
|
_html("</ul>");
|
|
8158
8196
|
_if(() => {
|
|
8159
8197
|
if (!ws.repos.length && !busy.size) {
|
|
8160
8198
|
const $scope23_id = _scope_id();
|
|
8161
|
-
_html(`<p${_attr_class("
|
|
8199
|
+
_html(`<p${_attr_class("_by")}>No repos yet. Search below to add one.</p>`);
|
|
8162
8200
|
writeScope($scope23_id, {});
|
|
8163
8201
|
return 0;
|
|
8164
8202
|
}
|
|
8165
8203
|
}, $scope0_id, "r", 1, 1, 1, 0, 1);
|
|
8166
|
-
_html(`<div${_attr_class("
|
|
8204
|
+
_html(`<div${_attr_class("_eQ")}>`);
|
|
8167
8205
|
const $childScope3 = _peek_scope_id();
|
|
8168
8206
|
let refreshCatalog = repo_picker_default({
|
|
8169
8207
|
exclude: inWorkspace,
|
|
@@ -8184,7 +8222,7 @@ var manage_workspace_default = _template("o", (input) => {
|
|
|
8184
8222
|
_if(() => {
|
|
8185
8223
|
if (wsSkills.length || repoSkills.length) {
|
|
8186
8224
|
const $scope2_id = _scope_id();
|
|
8187
|
-
_html(`<section${_attr_class("
|
|
8225
|
+
_html(`<section${_attr_class("_bn")}><div${_attr_class("_bo")}><h2${_attr_class("_bB")}>Skills</h2>`);
|
|
8188
8226
|
_if(() => {
|
|
8189
8227
|
if (wsSkills.length) {
|
|
8190
8228
|
const $scope24_id = _scope_id();
|
|
@@ -8193,23 +8231,23 @@ var manage_workspace_default = _template("o", (input) => {
|
|
|
8193
8231
|
return 0;
|
|
8194
8232
|
}
|
|
8195
8233
|
}, $scope2_id, "d", 1, 1, 1, 0, 1);
|
|
8196
|
-
_html(`</div><ul${_attr_class("
|
|
8234
|
+
_html(`</div><ul${_attr_class("_bq")}>`);
|
|
8197
8235
|
_for_of(wsSkills, (s) => {
|
|
8198
8236
|
const $scope3_id = _scope_id();
|
|
8199
|
-
_html(`<li${_attr_class("
|
|
8237
|
+
_html(`<li${_attr_class("_bs")}><div${_attr_class("_bt")}><span${_attr_class(["_bu", "_w"])}>${_escape(s.name)}${_el_resume($scope3_id, "d")}</span><span${_attr_class("_bv")}>`);
|
|
8200
8238
|
_if(() => {
|
|
8201
8239
|
if (s.broken) {
|
|
8202
8240
|
const $scope25_id = _scope_id();
|
|
8203
8241
|
_html(`<span${_attr_class([
|
|
8204
|
-
"
|
|
8205
|
-
"
|
|
8242
|
+
"_H",
|
|
8243
|
+
"_J",
|
|
8206
8244
|
tone.danger
|
|
8207
8245
|
])}${_attr("title", `Points into ${s.worktree || "a repo"} that is no longer here`)}>broken link</span>${_el_resume($scope25_id, "a")}`);
|
|
8208
8246
|
writeScope($scope25_id, {});
|
|
8209
8247
|
return 0;
|
|
8210
8248
|
} else if (s.worktree) {
|
|
8211
8249
|
const $scope26_id = _scope_id();
|
|
8212
|
-
_html(`<span${_attr_class(["
|
|
8250
|
+
_html(`<span${_attr_class(["_H", "_w"])}>from <!>${_escape(s.worktree)}${_el_resume($scope26_id, "b")}/</span>`);
|
|
8213
8251
|
writeScope($scope26_id, {});
|
|
8214
8252
|
return 1;
|
|
8215
8253
|
}
|
|
@@ -8217,7 +8255,7 @@ var manage_workspace_default = _template("o", (input) => {
|
|
|
8217
8255
|
_if(() => {
|
|
8218
8256
|
if (s.shadows === "global") {
|
|
8219
8257
|
const $scope30_id = _scope_id();
|
|
8220
|
-
_html(`<span${_attr_class("
|
|
8258
|
+
_html(`<span${_attr_class("_H")} title="Used instead of the system skill of the same name">overrides system</span>`);
|
|
8221
8259
|
writeScope($scope30_id, {});
|
|
8222
8260
|
return 0;
|
|
8223
8261
|
}
|
|
@@ -8225,7 +8263,7 @@ var manage_workspace_default = _template("o", (input) => {
|
|
|
8225
8263
|
_if(() => {
|
|
8226
8264
|
if (skills && s.agents.length < skills.agents.length) {
|
|
8227
8265
|
const $scope27_id = _scope_id();
|
|
8228
|
-
_html(`<span${_attr_class("
|
|
8266
|
+
_html(`<span${_attr_class("_H")}${_attr("title", `Only for ${s.agents.map(agentLabel).join(", ")}`)}>${_escape(s.agents.map(agentLabel).join(", "))}${_el_resume($scope27_id, "b")} only</span>${_el_resume($scope27_id, "a")}`);
|
|
8229
8267
|
writeScope($scope27_id, {});
|
|
8230
8268
|
return 0;
|
|
8231
8269
|
}
|
|
@@ -8234,7 +8272,7 @@ var manage_workspace_default = _template("o", (input) => {
|
|
|
8234
8272
|
_if(() => {
|
|
8235
8273
|
if (s.description) {
|
|
8236
8274
|
const $scope28_id = _scope_id();
|
|
8237
|
-
_html(`<span${_attr_class("
|
|
8275
|
+
_html(`<span${_attr_class("_bw")}${_attr("title", s.description)}>${_escape(s.description)}${_el_resume($scope28_id, "b")}</span>${_el_resume($scope28_id, "a")}`);
|
|
8238
8276
|
writeScope($scope28_id, {});
|
|
8239
8277
|
return 0;
|
|
8240
8278
|
}
|
|
@@ -8242,7 +8280,7 @@ var manage_workspace_default = _template("o", (input) => {
|
|
|
8242
8280
|
_if(() => {
|
|
8243
8281
|
if (s.sourceUrl) {
|
|
8244
8282
|
const $scope29_id = _scope_id();
|
|
8245
|
-
_html(`<a${_attr_class(["
|
|
8283
|
+
_html(`<a${_attr_class(["_bw", "_eR"])}${_attr("href", s.sourceUrl)} target=_blank rel=noopener${_attr("title", `Open ${s.source} on GitHub`)}>${_escape(s.source)}${_el_resume($scope29_id, "b")}</a>${_el_resume($scope29_id, "a")}`);
|
|
8246
8284
|
writeScope($scope29_id, {});
|
|
8247
8285
|
return 0;
|
|
8248
8286
|
}
|
|
@@ -8251,15 +8289,15 @@ var manage_workspace_default = _template("o", (input) => {
|
|
|
8251
8289
|
_if(() => {
|
|
8252
8290
|
if (busy.has(s.id)) {
|
|
8253
8291
|
const $scope31_id = _scope_id();
|
|
8254
|
-
_html(`<span${_attr_class("
|
|
8292
|
+
_html(`<span${_attr_class("_E")}></span>`);
|
|
8255
8293
|
writeScope($scope31_id, {});
|
|
8256
8294
|
return 0;
|
|
8257
8295
|
} else {
|
|
8258
8296
|
const $scope12_id = _scope_id();
|
|
8259
8297
|
_html(`<button${_attr_class([
|
|
8260
|
-
"
|
|
8298
|
+
"_bx",
|
|
8299
|
+
"_1",
|
|
8261
8300
|
"_2",
|
|
8262
|
-
"_3",
|
|
8263
8301
|
{ ["_q"]: confirmingSkill === s.id }
|
|
8264
8302
|
])}${confirmingSkill === s.id ? _attr("title", `Remove ${s.name} from this workspace?`) : s.linked ? _attr("title", `Stop using ${s.name} here`) : _attr("title", `Remove ${s.name}`)}>`);
|
|
8265
8303
|
_if(() => {
|
|
@@ -8295,14 +8333,14 @@ var manage_workspace_default = _template("o", (input) => {
|
|
|
8295
8333
|
_if(() => {
|
|
8296
8334
|
if (repoSkills.length) {
|
|
8297
8335
|
const $scope4_id = _scope_id();
|
|
8298
|
-
_html(`<ul${_attr_class("
|
|
8336
|
+
_html(`<ul${_attr_class("_bq")}>`);
|
|
8299
8337
|
_for_of(repoSkills, (s) => {
|
|
8300
8338
|
const $scope5_id = _scope_id();
|
|
8301
|
-
_html(`<li${_attr_class("
|
|
8339
|
+
_html(`<li${_attr_class("_bs")}><div${_attr_class("_bt")}><span${_attr_class(["_bu", "_w"])}>${_escape(s.name)}${_el_resume($scope5_id, "d")}</span><span${_attr_class("_bv")}><span${_attr_class(["_bw", "_w"])}>${_escape(s.worktree)}${_el_resume($scope5_id, "g")}/</span>`);
|
|
8302
8340
|
_if(() => {
|
|
8303
8341
|
if (s.shadows) {
|
|
8304
8342
|
const $scope34_id = _scope_id();
|
|
8305
|
-
_html(`<span${_attr_class("
|
|
8343
|
+
_html(`<span${_attr_class("_H")}${_attr("title", `A ${s.shadows} skill of the same name already exists`)}>name taken</span>${_el_resume($scope34_id, "a")}`);
|
|
8306
8344
|
writeScope($scope34_id, {});
|
|
8307
8345
|
return 0;
|
|
8308
8346
|
}
|
|
@@ -8311,7 +8349,7 @@ var manage_workspace_default = _template("o", (input) => {
|
|
|
8311
8349
|
_if(() => {
|
|
8312
8350
|
if (s.description) {
|
|
8313
8351
|
const $scope35_id = _scope_id();
|
|
8314
|
-
_html(`<span${_attr_class("
|
|
8352
|
+
_html(`<span${_attr_class("_bw")}${_attr("title", s.description)}>${_escape(s.description)}${_el_resume($scope35_id, "b")}</span>${_el_resume($scope35_id, "a")}`);
|
|
8315
8353
|
writeScope($scope35_id, {});
|
|
8316
8354
|
return 0;
|
|
8317
8355
|
}
|
|
@@ -8320,7 +8358,7 @@ var manage_workspace_default = _template("o", (input) => {
|
|
|
8320
8358
|
_if(() => {
|
|
8321
8359
|
if (busy.has(s.id)) {
|
|
8322
8360
|
const $scope36_id = _scope_id();
|
|
8323
|
-
_html(`<span${_attr_class("
|
|
8361
|
+
_html(`<span${_attr_class("_E")}></span>`);
|
|
8324
8362
|
writeScope($scope36_id, {});
|
|
8325
8363
|
return 0;
|
|
8326
8364
|
} else if (!s.shadows) {
|
|
@@ -8354,17 +8392,17 @@ var manage_workspace_default = _template("o", (input) => {
|
|
|
8354
8392
|
_if(() => {
|
|
8355
8393
|
if (running.length) {
|
|
8356
8394
|
const $scope15_id = _scope_id();
|
|
8357
|
-
_html(`<section${_attr_class("
|
|
8395
|
+
_html(`<section${_attr_class("_bn")}><div${_attr_class("_bo")}><h2${_attr_class("_bB")}>Running</h2><span${_attr_class(sectionCount)}>${_escape(running.length)}${_el_resume($scope15_id, "e")}</span></div><ul${_attr_class("_bq")}>`);
|
|
8358
8396
|
_for_of(running, (p) => {
|
|
8359
8397
|
const $scope16_id = _scope_id();
|
|
8360
|
-
_html(`<li${_attr_class("
|
|
8398
|
+
_html(`<li${_attr_class("_bs")}><div${_attr_class("_bt")}${_attr("title", p.args)}><span${_attr_class(["_bu", "_w"])}>${_escape(p.cmd)}${_el_resume($scope16_id, "d")}</span>`);
|
|
8361
8399
|
_if(() => {
|
|
8362
8400
|
if (p.ports.length) {
|
|
8363
8401
|
const $scope37_id = _scope_id();
|
|
8364
|
-
_html(`<span${_attr_class("
|
|
8402
|
+
_html(`<span${_attr_class("_bv")}>`);
|
|
8365
8403
|
_for_of(p.ports, (port) => {
|
|
8366
8404
|
const $scope38_id = _scope_id();
|
|
8367
|
-
_html(`<button${_attr_class(["_s", "
|
|
8405
|
+
_html(`<button${_attr_class(["_s", "_eS"])}${_attr("title", `Open http://${typeof location === "undefined" ? "localhost" : location.hostname}:${port}`)}>:<!>${_escape(port)}${_el_resume($scope38_id, "b")}</button>${_el_resume($scope38_id, "a")}`);
|
|
8368
8406
|
_script($scope38_id, "o19");
|
|
8369
8407
|
writeScope($scope38_id, { d: port });
|
|
8370
8408
|
}, (x) => String(x), $scope37_id, "a", 1, 1, 1, "</span>", 1);
|
|
@@ -8372,7 +8410,7 @@ var manage_workspace_default = _template("o", (input) => {
|
|
|
8372
8410
|
return 0;
|
|
8373
8411
|
}
|
|
8374
8412
|
}, $scope16_id, "e", 1, 1, 1, 0, 1);
|
|
8375
|
-
_html(`</div>${_el_resume($scope16_id, "b")}<button${_attr_class(["
|
|
8413
|
+
_html(`</div>${_el_resume($scope16_id, "b")}<button${_attr_class(["_bx", "_1"])} type=button${_attr("title", `Kill process ${p.pid}`)}${_attr("aria-label", `Kill process ${p.pid}`)}>`);
|
|
8376
8414
|
icon_xmark_default({ size: 14 });
|
|
8377
8415
|
_html(`</button>${_el_resume($scope16_id, "f")}</li>`);
|
|
8378
8416
|
_script($scope16_id, "o20");
|
|
@@ -8386,7 +8424,7 @@ var manage_workspace_default = _template("o", (input) => {
|
|
|
8386
8424
|
return 0;
|
|
8387
8425
|
}
|
|
8388
8426
|
}, $scope0_id, "w", 1, 1, 1, 0, 1);
|
|
8389
|
-
_html(`<section${_attr_class(["
|
|
8427
|
+
_html(`<section${_attr_class(["_bn", "_eT"])}><div${_attr_class("_bo")}><h2${_attr_class("_bB")}>Workspace</h2></div><div${_attr_class("_eU")}>`);
|
|
8390
8428
|
_if(() => {
|
|
8391
8429
|
if (ws.status === "active") {
|
|
8392
8430
|
const $scope8_id = _scope_id();
|
|
@@ -8500,19 +8538,19 @@ var term_find_default = _template("A", (input) => {
|
|
|
8500
8538
|
const canStep = hasQuery && open;
|
|
8501
8539
|
const keybar = input.placement === "keybar";
|
|
8502
8540
|
_html(`<div${_attr_class([
|
|
8503
|
-
"
|
|
8504
|
-
keybar ? "
|
|
8505
|
-
!open && "
|
|
8506
|
-
])} aria-hidden=${open ? "false" : "true"}><div${_attr_class(["
|
|
8541
|
+
"_fX",
|
|
8542
|
+
keybar ? "_fZ" : "_fY",
|
|
8543
|
+
!open && "_f1"
|
|
8544
|
+
])} aria-hidden=${open ? "false" : "true"}><div${_attr_class(["_fS", keybar ? "_f0" : "_fU"])}><input${_attr_input_value($scope0_id, "c", query, _resume(function(v) {
|
|
8507
8545
|
if (!open) return;
|
|
8508
8546
|
query = v;
|
|
8509
8547
|
live.query = v;
|
|
8510
8548
|
run(0);
|
|
8511
|
-
}, "A0", $scope0_id))}${_attr_class([findInput, keybar && "
|
|
8549
|
+
}, "A0", $scope0_id))}${_attr_class([findInput, keybar && "_f2"])} type=search enterkeyhint=search autocomplete=off tabindex=${open ? "0" : "-1"} placeholder="Find in terminal" aria-label="Find in terminal">${_el_resume($scope0_id, "c")}<button type=button${_attr_class([findIconBtn, keybar && "_f3"])} title="Previous match"${_attr("disabled", !canStep)} tabindex=${open ? "0" : "-1"}>`);
|
|
8512
8550
|
icon_arrow_up_default({ size: 14 });
|
|
8513
|
-
_html(`</button>${_el_resume($scope0_id, "d")}<button type=button${_attr_class([findIconBtn, keybar && "
|
|
8551
|
+
_html(`</button>${_el_resume($scope0_id, "d")}<button type=button${_attr_class([findIconBtn, keybar && "_f3"])} title="Next match"${_attr("disabled", !canStep)} tabindex=${open ? "0" : "-1"}>`);
|
|
8514
8552
|
icon_arrow_down_default({ size: 14 });
|
|
8515
|
-
_html(`</button>${_el_resume($scope0_id, "f")}<button type=button${_attr_class([findIconBtn, keybar && "
|
|
8553
|
+
_html(`</button>${_el_resume($scope0_id, "f")}<button type=button${_attr_class([findIconBtn, keybar && "_f3"])} title="Close find" tabindex=${open ? "0" : "-1"}>`);
|
|
8516
8554
|
icon_xmark_default({ size: 14 });
|
|
8517
8555
|
_html(`</button>${_el_resume($scope0_id, "h")}</div>${_el_resume($scope0_id, "b", _serialize_guard($scope0_reason, 2))}</div>${_el_resume($scope0_id, "a")}`);
|
|
8518
8556
|
_script($scope0_id, "A4");
|
|
@@ -8540,7 +8578,7 @@ var term_find_default = _template("A", (input) => {
|
|
|
8540
8578
|
});
|
|
8541
8579
|
_resume_branch($scope0_id);
|
|
8542
8580
|
});
|
|
8543
|
-
_template("
|
|
8581
|
+
_template("kb", (input) => {
|
|
8544
8582
|
const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
|
|
8545
8583
|
const $scope0_id = _scope_id();
|
|
8546
8584
|
_set_serialize_reason({
|
|
@@ -8570,7 +8608,7 @@ _template("W", (input) => {
|
|
|
8570
8608
|
});
|
|
8571
8609
|
_serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
|
|
8572
8610
|
});
|
|
8573
|
-
_template("
|
|
8611
|
+
_template("ab", (input) => {
|
|
8574
8612
|
const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
|
|
8575
8613
|
const $scope0_id = _scope_id();
|
|
8576
8614
|
_set_serialize_reason({
|
|
@@ -8645,7 +8683,7 @@ _template("Y", (input) => {
|
|
|
8645
8683
|
});
|
|
8646
8684
|
_serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
|
|
8647
8685
|
});
|
|
8648
|
-
_template("
|
|
8686
|
+
_template("ib", (input) => {
|
|
8649
8687
|
const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
|
|
8650
8688
|
const $scope0_id = _scope_id();
|
|
8651
8689
|
_set_serialize_reason({
|
|
@@ -8846,7 +8884,7 @@ var term_default = _template("B", (input) => {
|
|
|
8846
8884
|
trapOpen = true;
|
|
8847
8885
|
}
|
|
8848
8886
|
}, "B14", $scope0_id);
|
|
8849
|
-
_html(`<div${_attr("hidden", !onTermPage)}${_attr_class("
|
|
8887
|
+
_html(`<div${_attr("hidden", !onTermPage)}${_attr_class("_dL")}><div${_attr_class("_dM")}></div>${_el_resume($scope0_id, "b")}`);
|
|
8850
8888
|
_if(() => {
|
|
8851
8889
|
if (findOpen) {
|
|
8852
8890
|
const $scope12_id = _scope_id();
|
|
@@ -8873,7 +8911,7 @@ var term_default = _template("B", (input) => {
|
|
|
8873
8911
|
_if(() => {
|
|
8874
8912
|
if (uploading) {
|
|
8875
8913
|
const $scope19_id = _scope_id();
|
|
8876
|
-
_html(`<div${_attr_class("
|
|
8914
|
+
_html(`<div${_attr_class("_dS")}>uploading…</div>`);
|
|
8877
8915
|
writeScope($scope19_id, {});
|
|
8878
8916
|
return 0;
|
|
8879
8917
|
}
|
|
@@ -8881,7 +8919,7 @@ var term_default = _template("B", (input) => {
|
|
|
8881
8919
|
_if(() => {
|
|
8882
8920
|
if (copiedFlash) {
|
|
8883
8921
|
const $scope20_id = _scope_id();
|
|
8884
|
-
_html(`<div${_attr_class("
|
|
8922
|
+
_html(`<div${_attr_class("_dR")}>Copied</div>`);
|
|
8885
8923
|
writeScope($scope20_id, {});
|
|
8886
8924
|
return 0;
|
|
8887
8925
|
}
|
|
@@ -8890,7 +8928,7 @@ var term_default = _template("B", (input) => {
|
|
|
8890
8928
|
_if(() => {
|
|
8891
8929
|
if (trapOpen) {
|
|
8892
8930
|
const $scope11_id = _scope_id();
|
|
8893
|
-
_html(`<div${_attr_class("
|
|
8931
|
+
_html(`<div${_attr_class("_dT")}><div${_attr_class("_dU")}><p${_attr_class("_en")}>Long-press the field below and choose Paste</p><input placeholder="Paste here…">${_el_resume($scope11_id, "d")}<button${_attr_class("_o")}>Cancel</button>${_el_resume($scope11_id, "e")}</div>${_el_resume($scope11_id, "b")}</div>${_el_resume($scope11_id, "a")}`);
|
|
8894
8932
|
_script($scope11_id, "B25");
|
|
8895
8933
|
_script($scope11_id, "B26");
|
|
8896
8934
|
writeScope($scope11_id, {});
|
|
@@ -8994,7 +9032,7 @@ var work_view_default = _template("F", (input) => {
|
|
|
8994
9032
|
let DiffView = null;
|
|
8995
9033
|
const loadDiffView = _resume(() => {
|
|
8996
9034
|
if (DiffView) return;
|
|
8997
|
-
import("./
|
|
9035
|
+
import("./_CeVZfkIY.js").then((m) => {
|
|
8998
9036
|
DiffView = m.default;
|
|
8999
9037
|
});
|
|
9000
9038
|
}, "F6", $scope0_id);
|
|
@@ -9182,10 +9220,10 @@ var work_view_default = _template("F", (input) => {
|
|
|
9182
9220
|
toggleDiff();
|
|
9183
9221
|
}
|
|
9184
9222
|
}, "F21", $scope0_id);
|
|
9185
|
-
_html(`<div${_attr_class(["
|
|
9186
|
-
["
|
|
9187
|
-
["
|
|
9188
|
-
}])}><div${_attr_class("
|
|
9223
|
+
_html(`<div${_attr_class(["_b5", {
|
|
9224
|
+
["_b3"]: view === "nav",
|
|
9225
|
+
["_b4"]: !input.active
|
|
9226
|
+
}])}><div${_attr_class("_b6")}>`);
|
|
9189
9227
|
_set_serialize_reason({
|
|
9190
9228
|
0: _serialize_guard($scope0_reason, 0),
|
|
9191
9229
|
1: 1,
|
|
@@ -9254,7 +9292,7 @@ var work_view_default = _template("F", (input) => {
|
|
|
9254
9292
|
});
|
|
9255
9293
|
}, "F30", $scope0_id)
|
|
9256
9294
|
});
|
|
9257
|
-
_html(`</div><div${_attr_class("
|
|
9295
|
+
_html(`</div><div${_attr_class("_b7")}>`);
|
|
9258
9296
|
_if(() => {
|
|
9259
9297
|
if (error) {
|
|
9260
9298
|
const $scope8_id = _scope_id();
|
|
@@ -9277,7 +9315,7 @@ var work_view_default = _template("F", (input) => {
|
|
|
9277
9315
|
_if(() => {
|
|
9278
9316
|
if (diffMounted && DiffView) {
|
|
9279
9317
|
const $scope1_id = _scope_id();
|
|
9280
|
-
_html(`<div${_attr_class("
|
|
9318
|
+
_html(`<div${_attr_class("_b8")}${_attr_or("data-live", view === "diff", "")}${_attr("inert", view !== "diff")}>`);
|
|
9281
9319
|
_dynamic_tag($scope1_id, "b", DiffView, {
|
|
9282
9320
|
workspaceId: ws.id,
|
|
9283
9321
|
workspaceBranch: ws.branch,
|
|
@@ -9317,7 +9355,7 @@ var work_view_default = _template("F", (input) => {
|
|
|
9317
9355
|
_if(() => {
|
|
9318
9356
|
if (manageMounted) {
|
|
9319
9357
|
const $scope2_id = _scope_id();
|
|
9320
|
-
_html(`<div${_attr_class("
|
|
9358
|
+
_html(`<div${_attr_class("_b8")}${_attr_or("data-live", view === "manage", "")}${_attr("inert", view !== "manage")}>`);
|
|
9321
9359
|
_set_serialize_reason(_serialize_guard($scope0_reason, 16));
|
|
9322
9360
|
const $childScope2 = _peek_scope_id();
|
|
9323
9361
|
manage_workspace_default({
|
|
@@ -9340,7 +9378,7 @@ var work_view_default = _template("F", (input) => {
|
|
|
9340
9378
|
_if(() => {
|
|
9341
9379
|
if (settingsMounted) {
|
|
9342
9380
|
const $scope3_id = _scope_id();
|
|
9343
|
-
_html(`<div${_attr_class("
|
|
9381
|
+
_html(`<div${_attr_class("_b8")}${_attr_or("data-live", view === "settings", "")}${_attr("inert", view !== "settings")}>`);
|
|
9344
9382
|
_set_serialize_reason({
|
|
9345
9383
|
0: _serialize_guard($scope0_reason, 1),
|
|
9346
9384
|
1: $sg__input_workspace,
|
|
@@ -9381,7 +9419,7 @@ var work_view_default = _template("F", (input) => {
|
|
|
9381
9419
|
_if(() => {
|
|
9382
9420
|
if (newMounted) {
|
|
9383
9421
|
const $scope4_id = _scope_id();
|
|
9384
|
-
_html(`<div${_attr_class("
|
|
9422
|
+
_html(`<div${_attr_class("_b8")}${_attr_or("data-live", view === "new", "")}${_attr("inert", view !== "new")}>`);
|
|
9385
9423
|
_set_serialize_reason({
|
|
9386
9424
|
0: 1,
|
|
9387
9425
|
1: $sg__input_allWorkspaces,
|
|
@@ -9408,13 +9446,13 @@ var work_view_default = _template("F", (input) => {
|
|
|
9408
9446
|
return 0;
|
|
9409
9447
|
}
|
|
9410
9448
|
}, $scope0_id, "i", 1, 1, 1, 0, 1);
|
|
9411
|
-
_html(`<div${_attr_class(["
|
|
9449
|
+
_html(`<div${_attr_class(["_b_", { ["_b9"]: view !== "term" }])}>`);
|
|
9412
9450
|
_if(() => {
|
|
9413
9451
|
if (shownSessions) {
|
|
9414
9452
|
const $scope5_id = _scope_id();
|
|
9415
9453
|
_for_of(input.active ? shownSessions : shownSessions.filter((x) => x.id === curTab), (s) => {
|
|
9416
9454
|
const $scope6_id = _scope_id();
|
|
9417
|
-
_html(`<div${_attr_class("
|
|
9455
|
+
_html(`<div${_attr_class("_ca")}${_attr_or("data-live", s.id === curTab, "")}${_attr("inert", s.id !== curTab)}>`);
|
|
9418
9456
|
_set_serialize_reason({
|
|
9419
9457
|
0: 1,
|
|
9420
9458
|
1: 1,
|
|
@@ -9474,7 +9512,7 @@ var work_view_default = _template("F", (input) => {
|
|
|
9474
9512
|
_if(() => {
|
|
9475
9513
|
if (!shownSessions.length && view === "term") {
|
|
9476
9514
|
const $scope7_id = _scope_id();
|
|
9477
|
-
_html(`<div${_attr_class("
|
|
9515
|
+
_html(`<div${_attr_class("_bz")}><span>No sessions in this workspace.</span><button${_attr_class(["_o", "_p"])}${_attr("disabled", spawning)}>${spawning ? "Starting…" : `Start ${_escape(`${input.preferred || "shell"}`)}`}${_el_resume($scope7_id, "c")}</button>${_el_resume($scope7_id, "b")}</div>`);
|
|
9478
9516
|
_script($scope7_id, "F50");
|
|
9479
9517
|
_subscribe($spawning__closures, _subscribe($si__input_preferred && $input_preferred__closures, writeScope($scope7_id, {})));
|
|
9480
9518
|
return 0;
|
|
@@ -9484,7 +9522,7 @@ var work_view_default = _template("F", (input) => {
|
|
|
9484
9522
|
return 0;
|
|
9485
9523
|
} else {
|
|
9486
9524
|
const $scope10_id = _scope_id();
|
|
9487
|
-
_html(`<p${_attr_class("
|
|
9525
|
+
_html(`<p${_attr_class("_bz")}>Loading sessions…</p>`);
|
|
9488
9526
|
writeScope($scope10_id, {});
|
|
9489
9527
|
return 1;
|
|
9490
9528
|
}
|
|
@@ -10001,7 +10039,7 @@ var app_page_default = _template("b", (input) => {
|
|
|
10001
10039
|
});
|
|
10002
10040
|
//#endregion
|
|
10003
10041
|
//#region src/routes/_app/new/+page.marko
|
|
10004
|
-
var _page_default$4 = _template("
|
|
10042
|
+
var _page_default$4 = _template("mb", (input) => {
|
|
10005
10043
|
_scope_reason();
|
|
10006
10044
|
_scope_id();
|
|
10007
10045
|
app_page_default({ initial: {
|
|
@@ -10043,7 +10081,7 @@ var GET$24 = Run.GET(async (_ctx, next) => {
|
|
|
10043
10081
|
});
|
|
10044
10082
|
//#endregion
|
|
10045
10083
|
//#region src/routes/_app/settings/+page.marko
|
|
10046
|
-
var _page_default$3 = _template("
|
|
10084
|
+
var _page_default$3 = _template("nb", (input) => {
|
|
10047
10085
|
_scope_reason();
|
|
10048
10086
|
_scope_id();
|
|
10049
10087
|
app_page_default({ initial: {
|
|
@@ -10080,7 +10118,7 @@ function head3(context) {
|
|
|
10080
10118
|
}
|
|
10081
10119
|
//#endregion
|
|
10082
10120
|
//#region src/routes/_app/w/$id/+page.marko
|
|
10083
|
-
var _page_default$2 = _template("
|
|
10121
|
+
var _page_default$2 = _template("ob", (input) => {
|
|
10084
10122
|
_scope_reason();
|
|
10085
10123
|
_scope_id();
|
|
10086
10124
|
const $global$3 = $global();
|
|
@@ -10118,7 +10156,7 @@ function head4(context) {
|
|
|
10118
10156
|
}
|
|
10119
10157
|
//#endregion
|
|
10120
10158
|
//#region src/routes/_app/w/$id/manage/+page.marko
|
|
10121
|
-
var _page_default$1 = _template("
|
|
10159
|
+
var _page_default$1 = _template("pb", (input) => {
|
|
10122
10160
|
_scope_reason();
|
|
10123
10161
|
_scope_id();
|
|
10124
10162
|
app_page_default({ initial: {
|
|
@@ -10154,7 +10192,7 @@ function head5(context) {
|
|
|
10154
10192
|
}
|
|
10155
10193
|
//#endregion
|
|
10156
10194
|
//#region src/routes/_app/w/$id/review/+page.marko
|
|
10157
|
-
var _page_default = _template("
|
|
10195
|
+
var _page_default = _template("qb", (input) => {
|
|
10158
10196
|
_scope_reason();
|
|
10159
10197
|
_scope_id();
|
|
10160
10198
|
const $global$1 = $global();
|
|
@@ -11163,11 +11201,15 @@ var Pref = /* @__PURE__ */ object({
|
|
|
11163
11201
|
key: /* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ maxLength(120)),
|
|
11164
11202
|
value: /* @__PURE__ */ nullable(/* @__PURE__ */ pipe(/* @__PURE__ */ string(), /* @__PURE__ */ maxLength(4096)))
|
|
11165
11203
|
});
|
|
11204
|
+
/** Per-workspace UI prefs — the workspace id is the suffix after the last `:`. */
|
|
11205
|
+
var OWNED = /^(?:tab|diff-filter|diff-pos):(.+)$/;
|
|
11166
11206
|
var GET$19 = Run.GET(() => Response.json(allPrefs()));
|
|
11167
11207
|
//#endregion
|
|
11168
11208
|
//#region __marko-run__api.prefs.js
|
|
11169
11209
|
var postHandler$14 = normalizeHandler(Run.POST({ json: Pref }, async (ctx) => {
|
|
11170
11210
|
const body = await readBody(ctx);
|
|
11211
|
+
const owned = OWNED.exec(body.key);
|
|
11212
|
+
if (owned && !get("SELECT id FROM workspaces WHERE id = ?", owned[1])) return Response.json({ ok: true });
|
|
11171
11213
|
setPref(body.key, body.value);
|
|
11172
11214
|
return Response.json({ ok: true });
|
|
11173
11215
|
}), "POST");
|
|
@@ -11384,10 +11426,12 @@ var Patch = /* @__PURE__ */ object({
|
|
|
11384
11426
|
}))
|
|
11385
11427
|
});
|
|
11386
11428
|
function snapshot$1() {
|
|
11429
|
+
const catalog = agentChoices();
|
|
11430
|
+
const agents = catalog.filter((a) => a.enabled && a.id !== "shell").map((a) => a.id);
|
|
11387
11431
|
return {
|
|
11388
|
-
preferredAgent: preferredAgent(),
|
|
11389
|
-
agents
|
|
11390
|
-
catalog
|
|
11432
|
+
preferredAgent: preferredAgent(agents),
|
|
11433
|
+
agents,
|
|
11434
|
+
catalog,
|
|
11391
11435
|
disabledAgents: [...disabledAgents()],
|
|
11392
11436
|
instance: getInstance()
|
|
11393
11437
|
};
|
|
@@ -12296,10 +12340,27 @@ async function resolveBase(dir, wsBranch, baseBranch, headBranch, foreign, baseR
|
|
|
12296
12340
|
missing: true
|
|
12297
12341
|
};
|
|
12298
12342
|
}
|
|
12343
|
+
/** Memo keyed on resolved shas — never on ref names, or a fetch/commit
|
|
12344
|
+
* would pin a stale `contained` and silently diff the wrong side.
|
|
12345
|
+
* Size-capped (Map insertion order = oldest first): an open review that
|
|
12346
|
+
* auto-reloads on every agent commit would otherwise grow without bound
|
|
12347
|
+
* for the life of the process. */
|
|
12348
|
+
var CONTAINED_CACHE_MAX = 1e3;
|
|
12349
|
+
var containedCache = /* @__PURE__ */ new Map();
|
|
12299
12350
|
/** True when merging `head` into `base` is a no-op (head's unique work
|
|
12300
12351
|
* is already in `base` — the squash-merge case). A conflict is not
|
|
12301
12352
|
* containment; the caller falls through to three-dot. */
|
|
12302
|
-
|
|
12353
|
+
function treeContainedIn(dir, baseSha, headSha) {
|
|
12354
|
+
const key = `${dir}\0${baseSha}\0${headSha}`;
|
|
12355
|
+
let hit = containedCache.get(key);
|
|
12356
|
+
if (!hit) {
|
|
12357
|
+
hit = treeContainedInUncached(dir, baseSha, headSha);
|
|
12358
|
+
containedCache.set(key, hit);
|
|
12359
|
+
if (containedCache.size > CONTAINED_CACHE_MAX) containedCache.delete(containedCache.keys().next().value);
|
|
12360
|
+
}
|
|
12361
|
+
return hit;
|
|
12362
|
+
}
|
|
12363
|
+
async function treeContainedInUncached(dir, base, head) {
|
|
12303
12364
|
try {
|
|
12304
12365
|
return (await git([
|
|
12305
12366
|
"merge-tree",
|
|
@@ -12322,12 +12383,7 @@ async function workspaceDiff(ws, opts = {}) {
|
|
|
12322
12383
|
const seen = reviewSeen(ws.id);
|
|
12323
12384
|
return (await Promise.all(ws.repos.map(async (repo) => {
|
|
12324
12385
|
const dir = path.join(ws.path, repo.worktree);
|
|
12325
|
-
const branch = await
|
|
12326
|
-
"rev-parse",
|
|
12327
|
-
"--abbrev-ref",
|
|
12328
|
-
"HEAD"
|
|
12329
|
-
], dir).catch(() => "HEAD");
|
|
12330
|
-
const localHead = await headOid(dir);
|
|
12386
|
+
const { oid: localHead, branch } = await headOid(dir);
|
|
12331
12387
|
const open = (await workspacePrs(repo.full_name, ws.branch, foreign, refresh)).filter((p) => p.state === "OPEN" && p.baseRefName && p.headRefName && (!focus || focus === `${repo.worktree}/${p.number}`));
|
|
12332
12388
|
let list;
|
|
12333
12389
|
if (open.length) list = await Promise.all(open.map((p) => prDiff(dir, repo, p, {
|
|
@@ -12371,9 +12427,9 @@ async function prDiff(dir, repo, pr, ctx) {
|
|
|
12371
12427
|
await freshenBaseRefs(dir, repo.full_name, [pr.baseRefName, pr.headRefName]);
|
|
12372
12428
|
const headRef = `origin/${pr.headRefName}`;
|
|
12373
12429
|
const baseRef = `origin/${pr.baseRefName}`;
|
|
12374
|
-
const
|
|
12375
|
-
const
|
|
12376
|
-
|
|
12430
|
+
const [headResolved, baseSha] = await Promise.all([git(["rev-parse", headRef], dir).catch(() => ""), git(["rev-parse", baseRef], dir).catch(() => "")]);
|
|
12431
|
+
const head = headResolved || pr.headRefOid || "";
|
|
12432
|
+
const base = {
|
|
12377
12433
|
id: `${repo.worktree}#${pr.number}`,
|
|
12378
12434
|
worktree: repo.worktree,
|
|
12379
12435
|
full_name: repo.full_name,
|
|
@@ -12383,7 +12439,10 @@ async function prDiff(dir, repo, pr, ctx) {
|
|
|
12383
12439
|
head,
|
|
12384
12440
|
baseSha,
|
|
12385
12441
|
pr: prMeta(pr),
|
|
12386
|
-
localHead: ctx.localHead
|
|
12442
|
+
localHead: ctx.localHead
|
|
12443
|
+
};
|
|
12444
|
+
if (!head || !baseSha) return {
|
|
12445
|
+
...base,
|
|
12387
12446
|
baseMissing: true,
|
|
12388
12447
|
files: []
|
|
12389
12448
|
};
|
|
@@ -12392,20 +12451,11 @@ async function prDiff(dir, repo, pr, ctx) {
|
|
|
12392
12451
|
baseRef,
|
|
12393
12452
|
head
|
|
12394
12453
|
], dir).catch(() => "");
|
|
12395
|
-
const contained = await treeContainedIn(dir,
|
|
12454
|
+
const contained = await treeContainedIn(dir, baseSha, head);
|
|
12396
12455
|
const files = await collectFiles(dir, contained ? head : mergeBase || baseRef, head, ctx.scope);
|
|
12397
12456
|
const githubDrift = !!pr.headRefOid && head !== pr.headRefOid;
|
|
12398
12457
|
return {
|
|
12399
|
-
|
|
12400
|
-
worktree: repo.worktree,
|
|
12401
|
-
full_name: repo.full_name,
|
|
12402
|
-
base: pr.baseRefName,
|
|
12403
|
-
default_branch: repo.default_branch,
|
|
12404
|
-
branch: ctx.branch,
|
|
12405
|
-
head,
|
|
12406
|
-
baseSha,
|
|
12407
|
-
pr: prMeta(pr),
|
|
12408
|
-
localHead: ctx.localHead,
|
|
12458
|
+
...base,
|
|
12409
12459
|
...githubDrift && { githubDrift: true },
|
|
12410
12460
|
...contained && { contained: true },
|
|
12411
12461
|
files
|
|
@@ -12453,10 +12503,9 @@ async function localDiff(dir, ws, repo, branch, localHead, baseRef, scope) {
|
|
|
12453
12503
|
baseMissing: true,
|
|
12454
12504
|
files: []
|
|
12455
12505
|
};
|
|
12456
|
-
const contained = !missing && !emptyRemote && await treeContainedIn(dir, ref, "HEAD");
|
|
12457
|
-
const against = contained ? "HEAD" : mergeBase;
|
|
12458
12506
|
const baseSha = missing ? localHead : emptyRemote ? mergeBase : await git(["rev-parse", ref], dir).catch(() => mergeBase);
|
|
12459
|
-
const
|
|
12507
|
+
const contained = !missing && !emptyRemote && !!baseSha && await treeContainedIn(dir, baseSha, localHead);
|
|
12508
|
+
const files = await collectFiles(dir, contained ? "HEAD" : mergeBase, "HEAD", scope);
|
|
12460
12509
|
return {
|
|
12461
12510
|
...base,
|
|
12462
12511
|
head: localHead,
|
|
@@ -12479,33 +12528,20 @@ function prMeta(pr) {
|
|
|
12479
12528
|
async function collectFiles(dir, oldRev, newRev, scope) {
|
|
12480
12529
|
if (scope === "dirty") oldRev = newRev;
|
|
12481
12530
|
const uncommitted = scope !== "committed";
|
|
12482
|
-
const
|
|
12483
|
-
|
|
12484
|
-
"--name-status",
|
|
12485
|
-
"-z",
|
|
12486
|
-
"--no-renames",
|
|
12487
|
-
oldRev
|
|
12488
|
-
] : [
|
|
12531
|
+
const revs = uncommitted ? [oldRev] : [oldRev, newRev];
|
|
12532
|
+
const nameArgs = [
|
|
12489
12533
|
"diff",
|
|
12490
12534
|
"--name-status",
|
|
12491
12535
|
"-z",
|
|
12492
12536
|
"--no-renames",
|
|
12493
|
-
|
|
12494
|
-
newRev
|
|
12537
|
+
...revs
|
|
12495
12538
|
];
|
|
12496
|
-
const numArgs =
|
|
12539
|
+
const numArgs = [
|
|
12497
12540
|
"diff",
|
|
12498
12541
|
"--numstat",
|
|
12499
12542
|
"-z",
|
|
12500
12543
|
"--no-renames",
|
|
12501
|
-
|
|
12502
|
-
] : [
|
|
12503
|
-
"diff",
|
|
12504
|
-
"--numstat",
|
|
12505
|
-
"-z",
|
|
12506
|
-
"--no-renames",
|
|
12507
|
-
oldRev,
|
|
12508
|
-
newRev
|
|
12544
|
+
...revs
|
|
12509
12545
|
];
|
|
12510
12546
|
const [nameStatus, numstat, untracked, dirtyNames] = await Promise.all([
|
|
12511
12547
|
git(nameArgs, dir).catch(() => ""),
|
|
@@ -12524,21 +12560,21 @@ async function collectFiles(dir, oldRev, newRev, scope) {
|
|
|
12524
12560
|
"HEAD"
|
|
12525
12561
|
], dir).catch(() => "") : Promise.resolve("")
|
|
12526
12562
|
]);
|
|
12563
|
+
const untrackedPaths = untracked.split("\0").filter(Boolean);
|
|
12527
12564
|
const dirtyPaths = new Set(dirtyNames.split("\0").filter(Boolean));
|
|
12528
|
-
for (const file of
|
|
12565
|
+
for (const file of untrackedPaths) dirtyPaths.add(file);
|
|
12529
12566
|
const entries = [];
|
|
12530
12567
|
const parts = nameStatus.split("\0").filter(Boolean);
|
|
12531
12568
|
for (let i = 0; i + 1 < parts.length; i += 2) entries.push({
|
|
12532
12569
|
path: parts[i + 1],
|
|
12533
12570
|
status: parts[i]
|
|
12534
12571
|
});
|
|
12535
|
-
for (const file of
|
|
12572
|
+
for (const file of untrackedPaths) entries.push({
|
|
12536
12573
|
path: file,
|
|
12537
12574
|
status: "A"
|
|
12538
12575
|
});
|
|
12539
12576
|
const stats = parseNumstat(numstat);
|
|
12540
|
-
const olds = await batchContents(dir, oldRev, entries.filter((e) => e.status !== "A").map((e) => e.path));
|
|
12541
|
-
const news = uncommitted ? null : await batchContents(dir, newRev, entries.filter((e) => e.status !== "D").map((e) => e.path));
|
|
12577
|
+
const [olds, news] = await Promise.all([batchContents(dir, oldRev, entries.filter((e) => e.status !== "A").map((e) => e.path)), uncommitted ? Promise.resolve(null) : batchContents(dir, newRev, entries.filter((e) => e.status !== "D").map((e) => e.path))]);
|
|
12542
12578
|
const files = await Promise.all(entries.map(async (e) => {
|
|
12543
12579
|
const file = news ? fromBlobs(e.path, e.status, olds.get(e.path), news.get(e.path)) : await loadWorktreeFile(dir, e.path, e.status, olds.get(e.path));
|
|
12544
12580
|
if (!news && dirtyPaths.has(e.path)) file.hash = createHash("sha1").update(e.status).update(file.new ?? "").digest("hex").slice(0, 16);
|
|
@@ -12635,16 +12671,18 @@ function fromBlobs(filePath, status, old, neu) {
|
|
|
12635
12671
|
if (old !== void 0) result.old = old;
|
|
12636
12672
|
if (neu !== void 0) result.new = neu;
|
|
12637
12673
|
}
|
|
12638
|
-
|
|
12639
|
-
|
|
12640
|
-
|
|
12641
|
-
|
|
12642
|
-
|
|
12643
|
-
|
|
12644
|
-
|
|
12645
|
-
|
|
12674
|
+
return withoutUnrenderable(result);
|
|
12675
|
+
}
|
|
12676
|
+
/** A binary or over-size file ships as flags with no content: the client
|
|
12677
|
+
* renders the reason, and shipping the bytes anyway is what made a diff of
|
|
12678
|
+
* one large asset megabytes of JSON. */
|
|
12679
|
+
function withoutUnrenderable(file) {
|
|
12680
|
+
if (file.old?.includes("\0") || file.new?.includes("\0")) file.binary = true;
|
|
12681
|
+
if (file.binary || file.tooLarge) {
|
|
12682
|
+
file.old = null;
|
|
12683
|
+
file.new = null;
|
|
12646
12684
|
}
|
|
12647
|
-
return
|
|
12685
|
+
return file;
|
|
12648
12686
|
}
|
|
12649
12687
|
async function loadWorktreeFile(dir, filePath, status, old) {
|
|
12650
12688
|
const result = {
|
|
@@ -12662,16 +12700,7 @@ async function loadWorktreeFile(dir, filePath, status, old) {
|
|
|
12662
12700
|
if ((await fsp.stat(full)).size > MAX_FILE_BYTES) result.tooLarge = true;
|
|
12663
12701
|
else result.new = await fsp.readFile(full, "utf8");
|
|
12664
12702
|
} catch {}
|
|
12665
|
-
|
|
12666
|
-
result.binary = true;
|
|
12667
|
-
result.old = null;
|
|
12668
|
-
result.new = null;
|
|
12669
|
-
}
|
|
12670
|
-
if (result.tooLarge) {
|
|
12671
|
-
result.old = null;
|
|
12672
|
-
result.new = null;
|
|
12673
|
-
}
|
|
12674
|
-
return result;
|
|
12703
|
+
return withoutUnrenderable(result);
|
|
12675
12704
|
}
|
|
12676
12705
|
//#endregion
|
|
12677
12706
|
//#region src/routes/api/workspaces/$id/diff/+handler.ts
|
|
@@ -17994,4 +18023,4 @@ server.listen(port, () => {
|
|
|
17994
18023
|
//#endregion
|
|
17995
18024
|
export {};
|
|
17996
18025
|
|
|
17997
|
-
;var __MARKO_MANIFEST__={"ZLT8joi":{"block":[2,"stylesheet#/assets/app-page-
|
|
18026
|
+
;var __MARKO_MANIFEST__={"ZLT8joi":{"block":[2,"stylesheet#/assets/app-page-LDZ2KXKs.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-LDZ2KXKs.css\"",">"],"defer":[2,"/assets/new-CwlftYMt.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/new-CwlftYMt.js\"","></script>",2,"modulepreload#/assets/_CVtWHYIm.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_CVtWHYIm.js\"",">"]},"AA0T2xt":{"block":[2,"stylesheet#/assets/app-page-LDZ2KXKs.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-LDZ2KXKs.css\"",">"],"defer":[2,"/assets/settings-CwlftYMt.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/settings-CwlftYMt.js\"","></script>",2,"modulepreload#/assets/_CVtWHYIm.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_CVtWHYIm.js\"",">"]},"LH2lXAg":{"block":[2,"stylesheet#/assets/app-page-LDZ2KXKs.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-LDZ2KXKs.css\"",">"],"defer":[2,"/assets/w-CwlftYMt.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w-CwlftYMt.js\"","></script>",2,"modulepreload#/assets/_CVtWHYIm.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_CVtWHYIm.js\"",">"]},"T$MNY0k":{"block":[2,"stylesheet#/assets/app-page-LDZ2KXKs.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-LDZ2KXKs.css\"",">"],"defer":[2,"/assets/w._-CwlftYMt.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w._-CwlftYMt.js\"","></script>",2,"modulepreload#/assets/_CVtWHYIm.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_CVtWHYIm.js\"",">"]},"ibphXY4":{"block":[2,"stylesheet#/assets/app-page-LDZ2KXKs.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-LDZ2KXKs.css\"",">"],"defer":[2,"/assets/w._-BGFF38Oe.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w._-BGFF38Oe.js\"","></script>",2,"modulepreload#/assets/_CVtWHYIm.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_CVtWHYIm.js\"",">"]}};
|