@dylanpiercey/work 0.1.1 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -0
- package/bin/work.mjs +244 -4
- package/dist/{_Dzz52ZtI.js → _KRMk2duX.js} +378 -12
- package/dist/_ZwD1NY8D.js +2 -0
- package/dist/_h48l7A55.js +169 -0
- package/dist/index.mjs +8621 -7550
- package/dist/public/assets/_0vrYNi0q.js +1 -0
- package/dist/public/assets/{_DvKnakqk.js → _1nwEHbOU.js} +1 -1
- package/dist/public/assets/_1nwEHbOU.js.br +0 -0
- package/dist/public/assets/_3qg1gNHu.js +1 -0
- package/dist/public/assets/_6_cAsPFk.js +1 -0
- package/dist/public/assets/_8mmvS8Ic.js +1 -0
- package/dist/public/assets/{_DX5u6Wvm.js → _9s8_FJP0.js} +1 -1
- package/dist/public/assets/_9s8_FJP0.js.br +0 -0
- package/dist/public/assets/_B0cZNayr.js +1 -0
- package/dist/public/assets/_B23wGSFP.js +1 -0
- package/dist/public/assets/_B4BVKmh0.js +1 -0
- package/dist/public/assets/_B6oF-RIK.js +1 -0
- package/dist/public/assets/_B7SrX3Jp.js +1 -0
- package/dist/public/assets/{_BzGHediB.js → _B7cXT0VU.js} +1 -1
- package/dist/public/assets/_B7cXT0VU.js.br +0 -0
- package/dist/public/assets/{_DcOkTFth.js → _B8zhI-xd.js} +1 -1
- package/dist/public/assets/_B9epMiSr.js +1 -0
- package/dist/public/assets/{_B1D0PIz3.js → _BAYrWdA-.js} +1 -1
- package/dist/public/assets/_BAYrWdA-.js.br +0 -0
- package/dist/public/assets/{_pXG8fRON.js → _BAeMnj2l.js} +1 -1
- package/dist/public/assets/_BAeMnj2l.js.br +0 -0
- package/dist/public/assets/_BAs5Ke57.js +1 -0
- package/dist/public/assets/{_DomK7Scb.js → _BDkvoJS4.js} +1 -1
- package/dist/public/assets/_BDkvoJS4.js.br +0 -0
- package/dist/public/assets/{_TrcWRD8T.js → _BE2H3NPA.js} +7 -7
- package/dist/public/assets/_BE2H3NPA.js.br +0 -0
- package/dist/public/assets/{_-5UNb9-C.js → _BEL3zCP_.js} +1 -1
- package/dist/public/assets/_BEL3zCP_.js.br +0 -0
- package/dist/public/assets/{_FlITqTCo.js → _BGYXkARu.js} +1 -1
- package/dist/public/assets/_BGYXkARu.js.br +0 -0
- package/dist/public/assets/{_CxA3Yab0.js → _BHL0M4hx.js} +1 -1
- package/dist/public/assets/_BHL0M4hx.js.br +0 -0
- package/dist/public/assets/{_1JXC9nFp.js → _BIN7xPBA.js} +1 -1
- package/dist/public/assets/_BIN7xPBA.js.br +0 -0
- package/dist/public/assets/{_CFUREq1M.js → _BPa71So4.js} +1 -1
- package/dist/public/assets/_BPa71So4.js.br +0 -0
- package/dist/public/assets/_BQgqTOA6.js +1 -0
- package/dist/public/assets/_BVOSK21c.js +1 -0
- package/dist/public/assets/{_BVQosHjY.js → _BWdb49DN.js} +1 -1
- package/dist/public/assets/_BWdb49DN.js.br +0 -0
- package/dist/public/assets/{_C-EkQeP_.js → _BZMc12pa.js} +1 -1
- package/dist/public/assets/_BZMc12pa.js.br +0 -0
- package/dist/public/assets/{_BkcPY2j0.js → _BcS532Mh.js} +1 -1
- package/dist/public/assets/_BcS532Mh.js.br +0 -0
- package/dist/public/assets/_Bd3RfEz5.js +1 -0
- package/dist/public/assets/{_yUmRJIJ6.js → _BdS-SIP5.js} +1 -1
- package/dist/public/assets/_BdS-SIP5.js.br +0 -0
- package/dist/public/assets/{_B3NfNm8M.js → _BfU4-P5_.js} +13 -13
- package/dist/public/assets/_BfU4-P5_.js.br +0 -0
- package/dist/public/assets/{_DUs3ZGbj.js → _BidDqDX-.js} +1 -1
- package/dist/public/assets/_BidDqDX-.js.br +0 -0
- package/dist/public/assets/{_Cx_aJfDp.js → _Blw8tTg6.js} +1 -1
- package/dist/public/assets/_Blw8tTg6.js.br +0 -0
- package/dist/public/assets/{_CfGEGt_k.js → _BnIxui8m.js} +1 -1
- package/dist/public/assets/_BnIxui8m.js.br +0 -0
- package/dist/public/assets/{_DRHCy0UF.js → _BnnnKUB5.js} +1 -1
- package/dist/public/assets/_BnnnKUB5.js.br +0 -0
- package/dist/public/assets/_BoFnbJY1.js +1 -0
- package/dist/public/assets/{_Cb_k_JA_.js → _BotYlEwM.js} +1 -1
- package/dist/public/assets/_BotYlEwM.js.br +0 -0
- package/dist/public/assets/_BphDw0sE.js +1 -0
- package/dist/public/assets/_BqeBwjz2.js +1 -0
- package/dist/public/assets/{_BtZ2AatF.js → _Bs2mrt6D.js} +1 -1
- package/dist/public/assets/{_BRQ6iQ5p.js → _BtNwLErW.js} +1 -1
- package/dist/public/assets/_BtNwLErW.js.br +0 -0
- package/dist/public/assets/_Bv7YPgSd.js +1 -0
- package/dist/public/assets/{_CWG813ur.js → _BvrmMS2E.js} +1 -1
- package/dist/public/assets/_BvrmMS2E.js.br +0 -0
- package/dist/public/assets/{_DgWKSW-Y.js → _BwX_PmTl.js} +1 -1
- package/dist/public/assets/_BwX_PmTl.js.br +0 -0
- package/dist/public/assets/{_DEOryr7w.js → _C05-oJk8.js} +1 -1
- package/dist/public/assets/_C05-oJk8.js.br +0 -0
- package/dist/public/assets/{_CCVkYcN5.js → _C2yU1dLq.js} +1 -1
- package/dist/public/assets/_C2yU1dLq.js.br +0 -0
- package/dist/public/assets/{_CKLGAGKJ.js → _C2z40jpl.js} +1 -1
- package/dist/public/assets/_C2z40jpl.js.br +0 -0
- package/dist/public/assets/_C6HTijVG.js +1 -0
- package/dist/public/assets/{_1xOByopP.js → _C6lJdZzj.js} +1 -1
- package/dist/public/assets/_C6lJdZzj.js.br +0 -0
- package/dist/public/assets/_C7vMBzAL.js +1 -0
- package/dist/public/assets/_C7vMBzAL.js.br +0 -0
- package/dist/public/assets/{_B_0C2_RO.js → _C8pXYUZJ.js} +1 -1
- package/dist/public/assets/_C8pXYUZJ.js.br +0 -0
- package/dist/public/assets/_C9zPmOH2.js +2 -0
- package/dist/public/assets/_C9zPmOH2.js.br +0 -0
- package/dist/public/assets/_CA7mM4qX.js +1 -0
- package/dist/public/assets/{_DM60dKRs.js → _CBENFdjy.js} +1 -1
- package/dist/public/assets/_CBENFdjy.js.br +0 -0
- package/dist/public/assets/_CDlUndl3.js +1 -0
- package/dist/public/assets/_CDlUndl3.js.br +0 -0
- package/dist/public/assets/_CEPIxYBN.js +86 -0
- package/dist/public/assets/_CEPIxYBN.js.br +0 -0
- package/dist/public/assets/{_B7VYILLZ.js → _CFHivO5W.js} +1 -1
- package/dist/public/assets/_CFHivO5W.js.br +0 -0
- package/dist/public/assets/{_C98JZr09.js → _CGylDsvz.js} +1 -1
- package/dist/public/assets/_CGylDsvz.js.br +0 -0
- package/dist/public/assets/_CISImxw1.js +1 -0
- package/dist/public/assets/{_m2tRa0jk.js → _CJAgrixe.js} +1 -1
- package/dist/public/assets/_CJAgrixe.js.br +0 -0
- package/dist/public/assets/_CJEPkQp1.js +1 -0
- package/dist/public/assets/_CLF8kSpu.js +1 -0
- package/dist/public/assets/{_DxD_AC3a.js → _CMe89-TR.js} +1 -1
- package/dist/public/assets/_CMe89-TR.js.br +0 -0
- package/dist/public/assets/{_CY87Y7QL.js → _CQl6IKdI.js} +1 -1
- package/dist/public/assets/_CQl6IKdI.js.br +0 -0
- package/dist/public/assets/_CR1lhMQ3.js +1 -0
- package/dist/public/assets/_CRBiqW8E.js +1 -0
- package/dist/public/assets/{_UaKPY71M.js → _CRvIHvZK.js} +1 -1
- package/dist/public/assets/_CRvIHvZK.js.br +0 -0
- package/dist/public/assets/_CT-EgIiU.js +1 -0
- package/dist/public/assets/_CVXUwEfP.js +1 -0
- package/dist/public/assets/_CW5A7nA-.js +1 -0
- package/dist/public/assets/{_Do1ltY2a.js → _CWuvWHgA.js} +1 -1
- package/dist/public/assets/_CWuvWHgA.js.br +0 -0
- package/dist/public/assets/{_CfdK8EeQ.js → _CXSkYGoG.js} +1 -1
- package/dist/public/assets/_CXSkYGoG.js.br +0 -0
- package/dist/public/assets/_CYtwao4w.js +1 -0
- package/dist/public/assets/{_CUsrMpdL.js → _CZTHGPNy.js} +1 -1
- package/dist/public/assets/_CZTHGPNy.js.br +0 -0
- package/dist/public/assets/{_HM_QqtJi.js → _CappgGwi.js} +1 -1
- package/dist/public/assets/_CappgGwi.js.br +0 -0
- package/dist/public/assets/_CeARoEjl.js +1 -0
- package/dist/public/assets/_CeARoEjl.js.br +0 -0
- package/dist/public/assets/{_BDUjU8Ev.js → _Cf7js-r0.js} +1 -1
- package/dist/public/assets/{_Dbm6zAQS.js → _ChJB1hf1.js} +1 -1
- package/dist/public/assets/_ChJB1hf1.js.br +0 -0
- package/dist/public/assets/_ChkvWPVl.js +1 -0
- package/dist/public/assets/{_C0Ib7MZF.js → _CkLUNG6d.js} +1 -1
- package/dist/public/assets/_CkLUNG6d.js.br +0 -0
- package/dist/public/assets/_Cm2gzAKb.js +1 -0
- package/dist/public/assets/_CmCI2k_X.js +1 -0
- package/dist/public/assets/{_D9r_Fn0I.js → _CnIFQPqM.js} +1 -1
- package/dist/public/assets/_CnIFQPqM.js.br +0 -0
- package/dist/public/assets/_CpzkPBcd.js +1 -0
- package/dist/public/assets/{_DL3w8c_p.js → _Cqij7P1t.js} +1 -1
- package/dist/public/assets/_Cqij7P1t.js.br +0 -0
- package/dist/public/assets/_CsGBY_OR.js +1 -0
- package/dist/public/assets/_Cvq7oyHi.js +1 -0
- package/dist/public/assets/_CxQnabfk.js +6 -0
- package/dist/public/assets/_CxQnabfk.js.br +0 -0
- package/dist/public/assets/_Cxuln-KJ.js +1 -0
- package/dist/public/assets/{_DifjKObE.js → _CzjTMNNg.js} +1 -1
- package/dist/public/assets/_CzjTMNNg.js.br +0 -0
- package/dist/public/assets/{_CiYQhf81.js → _D-ewgB-g.js} +1 -1
- package/dist/public/assets/_D-ewgB-g.js.br +0 -0
- package/dist/public/assets/_D-lSuOqN.js +1 -0
- package/dist/public/assets/{_kWQ0dtYZ.js → _D0toMFV3.js} +1 -1
- package/dist/public/assets/_D0toMFV3.js.br +0 -0
- package/dist/public/assets/{_JEvx8ub4.js → _D1SAzhRo.js} +1 -1
- package/dist/public/assets/_D1SAzhRo.js.br +0 -0
- package/dist/public/assets/{_ClHPjF-1.js → _D2NPwpCK.js} +1 -1
- package/dist/public/assets/_D2NPwpCK.js.br +0 -0
- package/dist/public/assets/_D2pdXUO3.js +1 -0
- package/dist/public/assets/{_DzKW89Sx.js → _D36AHDIn.js} +1 -1
- package/dist/public/assets/_D36AHDIn.js.br +0 -0
- package/dist/public/assets/{_EefWj858.js → _D39T9Hc3.js} +1 -1
- package/dist/public/assets/_D39T9Hc3.js.br +0 -0
- package/dist/public/assets/{_DJqEBkNd.js → _D4iaGiBC.js} +1 -1
- package/dist/public/assets/_D4iaGiBC.js.br +0 -0
- package/dist/public/assets/{_BPSTqkJn.js → _D60_NLSK.js} +1 -1
- package/dist/public/assets/_D60_NLSK.js.br +0 -0
- package/dist/public/assets/{_Di1ccq_2.js → _D6O591m8.js} +1 -1
- package/dist/public/assets/_D6O591m8.js.br +0 -0
- package/dist/public/assets/_D6OrE8WN.js +1 -0
- package/dist/public/assets/_D6b9irVv.js +1 -0
- package/dist/public/assets/_D7e9Ia7P.js +1 -0
- package/dist/public/assets/_D95nSKbk.js +1 -0
- package/dist/public/assets/_D9qcWm-q.js +1 -0
- package/dist/public/assets/_D9uiExWV.js +1 -0
- package/dist/public/assets/{__cyRVmTO.js → _DAPIaEl7.js} +1 -1
- package/dist/public/assets/_DAPIaEl7.js.br +0 -0
- package/dist/public/assets/_DBOZe4SW.js +1 -0
- package/dist/public/assets/{_Cmmdd2e3.js → _DCfgIXDZ.js} +1 -1
- package/dist/public/assets/_DCfgIXDZ.js.br +0 -0
- package/dist/public/assets/_DDrn7T44.js +1 -0
- package/dist/public/assets/{_DQyjuXTi.js → _DDs3ube1.js} +1 -1
- package/dist/public/assets/_DDs3ube1.js.br +0 -0
- package/dist/public/assets/_DEKJL8_K.js +1 -0
- package/dist/public/assets/_DJOVMSj1.js +1 -0
- package/dist/public/assets/{_CqCenHOp.js → _DJSmALSy.js} +1 -1
- package/dist/public/assets/_DJSmALSy.js.br +0 -0
- package/dist/public/assets/_DLFpqsl0.js +1 -0
- package/dist/public/assets/_DOyEaX0U.js +1 -0
- package/dist/public/assets/{_B1-W0Sn2.js → _DQd4Gai0.js} +1 -1
- package/dist/public/assets/_DQd4Gai0.js.br +0 -0
- package/dist/public/assets/_DQlvpXhI.js +1 -0
- package/dist/public/assets/_DQlvpXhI.js.br +0 -0
- package/dist/public/assets/{_DZvkgS3V.js → _DRTaehFU.js} +1 -1
- package/dist/public/assets/_DRTaehFU.js.br +0 -0
- package/dist/public/assets/_DTKyMAAU.js +1 -0
- package/dist/public/assets/{_3aBl7SEn.js → _DWuVY-5K.js} +1 -1
- package/dist/public/assets/_DWuVY-5K.js.br +0 -0
- package/dist/public/assets/_DXAMCgpo.js +1 -0
- package/dist/public/assets/_DXAMCgpo.js.br +0 -0
- package/dist/public/assets/{_BSWN-v3P.js → _DXBIA5Jf.js} +1 -1
- package/dist/public/assets/_DXBIA5Jf.js.br +0 -0
- package/dist/public/assets/_Da14xaff.js +1 -0
- package/dist/public/assets/_Da14xaff.js.br +0 -0
- package/dist/public/assets/_DbXR2mlf.js +1 -0
- package/dist/public/assets/{_HmkI4Rfn.js → _Dbp_FIBr.js} +1 -1
- package/dist/public/assets/_Dbp_FIBr.js.br +0 -0
- package/dist/public/assets/_Dc_Ittsm.js +1 -0
- package/dist/public/assets/_DdYt8SWd.js +1 -0
- package/dist/public/assets/{_vcLBrU2m.js → _DgWkLH_d.js} +1 -1
- package/dist/public/assets/_DgWkLH_d.js.br +0 -0
- package/dist/public/assets/_Dh5xTE2G.js +1 -0
- package/dist/public/assets/{_CDY0RpYX.js → _DiE4MtP8.js} +1 -1
- package/dist/public/assets/_DiE4MtP8.js.br +0 -0
- package/dist/public/assets/_DjGr7GRl.js +1 -0
- package/dist/public/assets/_DjGr7GRl.js.br +0 -0
- package/dist/public/assets/_DotQ0YLh.js +2 -0
- package/dist/public/assets/_DotQ0YLh.js.br +0 -0
- package/dist/public/assets/_DqAfN3OQ.js +1 -0
- package/dist/public/assets/{_BKIx7IZP.js → _DqMNzDjo.js} +1 -1
- package/dist/public/assets/_DqMNzDjo.js.br +0 -0
- package/dist/public/assets/{_BsJZPHmz.js → _Dqqxf-zK.js} +1 -1
- package/dist/public/assets/_Dqqxf-zK.js.br +0 -0
- package/dist/public/assets/{_dsj7vMTW.js → _Dufbr-KL.js} +1 -1
- package/dist/public/assets/_Dufbr-KL.js.br +0 -0
- package/dist/public/assets/_Dv-q-Ej7.js +1 -0
- package/dist/public/assets/{_BHU5aikZ.js → _Dvfi_oP5.js} +1 -1
- package/dist/public/assets/_DvyJx5yW.js +1 -0
- package/dist/public/assets/_DvyJx5yW.js.br +0 -0
- package/dist/public/assets/_DxMb2QV8.js +1 -0
- package/dist/public/assets/{_BKHtiW96.js → _DyYpJ-H0.js} +1 -1
- package/dist/public/assets/_DyYpJ-H0.js.br +0 -0
- package/dist/public/assets/_DyhlHfZJ.js +1 -0
- package/dist/public/assets/_Dz053N5t.js +1 -0
- package/dist/public/assets/{_BLfzQY-3.js → _L54I8aS4.js} +1 -1
- package/dist/public/assets/_L54I8aS4.js.br +0 -0
- package/dist/public/assets/_Ly-2Xkdk.js +1 -0
- package/dist/public/assets/{_BSFJEuJX.js → _NN0jQCcG.js} +1 -1
- package/dist/public/assets/_NN0jQCcG.js.br +0 -0
- package/dist/public/assets/{_7YrArFMB.js → _OzsIhJyG.js} +1 -1
- package/dist/public/assets/_OzsIhJyG.js.br +0 -0
- package/dist/public/assets/_QJUmfZ1o.js +1 -0
- package/dist/public/assets/{_iutZ4EDe.js → _VdeOc79W.js} +1 -1
- package/dist/public/assets/_VdeOc79W.js.br +0 -0
- package/dist/public/assets/_VkEFwEn-.js +1 -0
- package/dist/public/assets/_ahp1rb5o.js +1 -0
- package/dist/public/assets/{_VPLoEBTS.js → _aqBpT1uJ.js} +1 -1
- package/dist/public/assets/{_DBD57l1T.js → _bgu_OKRO.js} +1 -1
- package/dist/public/assets/_bgu_OKRO.js.br +0 -0
- package/dist/public/assets/{_C81nSl09.js → _fqHAtYJz.js} +1 -1
- package/dist/public/assets/_fqHAtYJz.js.br +0 -0
- package/dist/public/assets/_hdoOlF1z.js +1 -0
- package/dist/public/assets/{_CtqGSS84.js → _iFV4welK.js} +1 -1
- package/dist/public/assets/_iFV4welK.js.br +0 -0
- package/dist/public/assets/_ihgadrBp.js +1 -0
- package/dist/public/assets/_lJgrZjR9.js +1 -0
- package/dist/public/assets/_lJgrZjR9.js.br +0 -0
- package/dist/public/assets/_oNShN50G.js +1 -0
- package/dist/public/assets/{_C8bqYk4J.js → _oR1qIlrw.js} +1 -1
- package/dist/public/assets/_oR1qIlrw.js.br +0 -0
- package/dist/public/assets/_pxC2PRJZ.js +1 -0
- package/dist/public/assets/_q6iLcLGY.js +1 -0
- package/dist/public/assets/_qnKDgwVg.js +1 -0
- package/dist/public/assets/_rYWHy2XX.js +1 -0
- package/dist/public/assets/{_CHdpLB95.js → _snlh9j-I.js} +1 -1
- package/dist/public/assets/_snlh9j-I.js.br +0 -0
- package/dist/public/assets/_uGH3cvIZ.js +1 -0
- package/dist/public/assets/_uRhnGFfv.js +1 -0
- package/dist/public/assets/{_DMJHTH74.js → _wOX1zfjU.js} +1 -1
- package/dist/public/assets/_wOX1zfjU.js.br +0 -0
- package/dist/public/assets/_xMc_vDaT.js +1 -0
- package/dist/public/assets/{_DSUBv-Bl.js → _zGPxyhe6.js} +1 -1
- package/dist/public/assets/_zGPxyhe6.js.br +0 -0
- package/dist/public/assets/files-view-dOlOeiFQ.js +2 -0
- package/dist/public/assets/manage-workspace-CO4jGUSH.js +2 -0
- package/dist/public/assets/new-hhTJEH33.js +1 -0
- package/dist/public/assets/new-workspace-w6SV5jo2.js +2 -0
- package/dist/public/assets/review-view-DhbS4oNh.js +2 -0
- package/dist/public/assets/settings-hhTJEH33.js +1 -0
- package/dist/public/assets/settings-page-DpRlMZTu.js +2 -0
- package/dist/public/assets/styles-BfKP6xyD.css +1 -0
- package/dist/public/assets/styles-BfKP6xyD.css.br +0 -0
- package/dist/public/assets/w-hhTJEH33.js +1 -0
- package/dist/public/assets/w._-DSFmri_t.js +1 -0
- package/dist/public/assets/w._-hhTJEH33.js +1 -0
- package/dist/public/assets/w._-kFbho4FJ.js +1 -0
- package/dist/rtc-helper.mjs +1170 -0
- package/lib/preview/media.mjs +5 -4
- package/lib/setup/doctor.d.mts +11 -0
- package/lib/setup/doctor.mjs +23 -2
- package/lib/setup/firewall.d.mts +76 -0
- package/lib/setup/firewall.mjs +598 -0
- package/package.json +3 -2
- package/dist/_D1C-XIqT.js +0 -168
- package/dist/_HbAW5Cbt.js +0 -2
- package/dist/public/assets/_-5UNb9-C.js.br +0 -0
- package/dist/public/assets/_06rtP_SB.js +0 -1
- package/dist/public/assets/_14yhXek7.js +0 -1
- package/dist/public/assets/_14yhXek7.js.br +0 -0
- package/dist/public/assets/_1JXC9nFp.js.br +0 -0
- package/dist/public/assets/_1Yit_Y5R.js +0 -1
- package/dist/public/assets/_1ZPfR2B8.js +0 -6
- package/dist/public/assets/_1ZPfR2B8.js.br +0 -0
- package/dist/public/assets/_1xOByopP.js.br +0 -0
- package/dist/public/assets/_3aBl7SEn.js.br +0 -0
- package/dist/public/assets/_5aMLV2Vy.js +0 -1
- package/dist/public/assets/_7YrArFMB.js.br +0 -0
- package/dist/public/assets/_B1-W0Sn2.js.br +0 -0
- package/dist/public/assets/_B1D0PIz3.js.br +0 -0
- package/dist/public/assets/_B1agoKUa.js +0 -1
- package/dist/public/assets/_B3NfNm8M.js.br +0 -0
- package/dist/public/assets/_B7VYILLZ.js.br +0 -0
- package/dist/public/assets/_B7sPBy0J.js +0 -1
- package/dist/public/assets/_B81p6DSw.js +0 -1
- package/dist/public/assets/_BAkSKCkz.js +0 -1
- package/dist/public/assets/_BHZPTv1U.js +0 -1
- package/dist/public/assets/_BKHtiW96.js.br +0 -0
- package/dist/public/assets/_BKIx7IZP.js.br +0 -0
- package/dist/public/assets/_BLfzQY-3.js.br +0 -0
- package/dist/public/assets/_BPSTqkJn.js.br +0 -0
- package/dist/public/assets/_BQZOimBB.js +0 -1
- package/dist/public/assets/_BRQ6iQ5p.js.br +0 -0
- package/dist/public/assets/_BRVURc4u.js +0 -1
- package/dist/public/assets/_BSFJEuJX.js.br +0 -0
- package/dist/public/assets/_BSWN-v3P.js.br +0 -0
- package/dist/public/assets/_BTVAQr2c.js +0 -1
- package/dist/public/assets/_BUD1pBC0.js +0 -1
- package/dist/public/assets/_BVGzCczb.js +0 -1
- package/dist/public/assets/_BVQosHjY.js.br +0 -0
- package/dist/public/assets/_B_0C2_RO.js.br +0 -0
- package/dist/public/assets/_BaA31ms5.js +0 -1
- package/dist/public/assets/_BgCHJGlO.js +0 -1
- package/dist/public/assets/_BhpRLDbL.js +0 -1
- package/dist/public/assets/_BhpRLDbL.js.br +0 -0
- package/dist/public/assets/_BkKcjMAC.js +0 -1
- package/dist/public/assets/_BkcPY2j0.js.br +0 -0
- package/dist/public/assets/_BlTVd_3d.js +0 -1
- package/dist/public/assets/_BlqlLmEY.js +0 -1
- package/dist/public/assets/_BoNfxc9P.js +0 -1
- package/dist/public/assets/_BoPk1gXL.js +0 -1
- package/dist/public/assets/_BqswW9B9.js +0 -1
- package/dist/public/assets/_BricqzsO.js +0 -1
- package/dist/public/assets/_BrreckIa.js +0 -1
- package/dist/public/assets/_BsJZPHmz.js.br +0 -0
- package/dist/public/assets/_BtRYwaBb.js +0 -1
- package/dist/public/assets/_BvPBKjRP.js +0 -1
- package/dist/public/assets/_BvPBKjRP.js.br +0 -0
- package/dist/public/assets/_ByrrjMU9.js +0 -1
- package/dist/public/assets/_BzGHediB.js.br +0 -0
- package/dist/public/assets/_BzvTKm92.js +0 -1
- package/dist/public/assets/_C-EkQeP_.js.br +0 -0
- package/dist/public/assets/_C0Ib7MZF.js.br +0 -0
- package/dist/public/assets/_C2p1Z5Lf.js +0 -86
- package/dist/public/assets/_C2p1Z5Lf.js.br +0 -0
- package/dist/public/assets/_C3iiOlxd.js +0 -1
- package/dist/public/assets/_C81nSl09.js.br +0 -0
- package/dist/public/assets/_C8bqYk4J.js.br +0 -0
- package/dist/public/assets/_C98JZr09.js.br +0 -0
- package/dist/public/assets/_CB4VkmGZ.js +0 -1
- package/dist/public/assets/_CCVkYcN5.js.br +0 -0
- package/dist/public/assets/_CDY0RpYX.js.br +0 -0
- package/dist/public/assets/_CE2GEqMx.js +0 -1
- package/dist/public/assets/_CE2GEqMx.js.br +0 -0
- package/dist/public/assets/_CFUREq1M.js.br +0 -0
- package/dist/public/assets/_CHdh6bII.js +0 -1
- package/dist/public/assets/_CHdpLB95.js.br +0 -0
- package/dist/public/assets/_CKLGAGKJ.js.br +0 -0
- package/dist/public/assets/_CMRt2lyQ.js +0 -1
- package/dist/public/assets/_CN1zW1AT.js +0 -1
- package/dist/public/assets/_CN1zW1AT.js.br +0 -0
- package/dist/public/assets/_CUILmj9R.js +0 -1
- package/dist/public/assets/_CUhP8KQ8.js +0 -1
- package/dist/public/assets/_CUsrMpdL.js.br +0 -0
- package/dist/public/assets/_CVG0_w9T.js +0 -1
- package/dist/public/assets/_CWG813ur.js.br +0 -0
- package/dist/public/assets/_CY87Y7QL.js.br +0 -0
- package/dist/public/assets/_CYAsKva_.js +0 -1
- package/dist/public/assets/_CajKYNSY.js +0 -1
- package/dist/public/assets/_Cb_k_JA_.js.br +0 -0
- package/dist/public/assets/_Ce8PlfMD.js +0 -1
- package/dist/public/assets/_CfGEGt_k.js.br +0 -0
- package/dist/public/assets/_CfdK8EeQ.js.br +0 -0
- package/dist/public/assets/_CgOKmAwr.js +0 -1
- package/dist/public/assets/_CiYQhf81.js.br +0 -0
- package/dist/public/assets/_Cj9DHPRL.js +0 -1
- package/dist/public/assets/_ClHPjF-1.js.br +0 -0
- package/dist/public/assets/_Cmmdd2e3.js.br +0 -0
- package/dist/public/assets/_Cn9Ia4SS.js +0 -1
- package/dist/public/assets/_Cn9Ia4SS.js.br +0 -0
- package/dist/public/assets/_CnTzFbuG.js +0 -1
- package/dist/public/assets/_CqCenHOp.js.br +0 -0
- package/dist/public/assets/_CtqGSS84.js.br +0 -0
- package/dist/public/assets/_CttfwM-c.js +0 -1
- package/dist/public/assets/_CxA3Yab0.js.br +0 -0
- package/dist/public/assets/_Cx_aJfDp.js.br +0 -0
- package/dist/public/assets/_D2L_ILOW.js +0 -1
- package/dist/public/assets/_D47lCu0c.js +0 -1
- package/dist/public/assets/_D5W-uGIK.js +0 -1
- package/dist/public/assets/_D6BbZLrc.js +0 -1
- package/dist/public/assets/_D6RVeCAn.js +0 -1
- package/dist/public/assets/_D75V4jV-.js +0 -1
- package/dist/public/assets/_D9r_Fn0I.js.br +0 -0
- package/dist/public/assets/_DBD57l1T.js.br +0 -0
- package/dist/public/assets/_DCWILZgL.js +0 -1
- package/dist/public/assets/_DEOryr7w.js.br +0 -0
- package/dist/public/assets/_DF54Iz7o.js +0 -1
- package/dist/public/assets/_DFamU2Uj.js +0 -2
- package/dist/public/assets/_DFamU2Uj.js.br +0 -0
- package/dist/public/assets/_DHmBuyCO.js +0 -1
- package/dist/public/assets/_DHmBuyCO.js.br +0 -0
- package/dist/public/assets/_DJqEBkNd.js.br +0 -0
- package/dist/public/assets/_DL3w8c_p.js.br +0 -0
- package/dist/public/assets/_DLVL-4MP.js +0 -1
- package/dist/public/assets/_DM60dKRs.js.br +0 -0
- package/dist/public/assets/_DMJHTH74.js.br +0 -0
- package/dist/public/assets/_DMLv6KA6.js +0 -1
- package/dist/public/assets/_DQYpgyzr.js +0 -1
- package/dist/public/assets/_DQYpgyzr.js.br +0 -0
- package/dist/public/assets/_DQyjuXTi.js.br +0 -0
- package/dist/public/assets/_DRHCy0UF.js.br +0 -0
- package/dist/public/assets/_DSUBv-Bl.js.br +0 -0
- package/dist/public/assets/_DUFM9qLV.js +0 -1
- package/dist/public/assets/_DUFM9qLV.js.br +0 -0
- package/dist/public/assets/_DUs3ZGbj.js.br +0 -0
- package/dist/public/assets/_DX5u6Wvm.js.br +0 -0
- package/dist/public/assets/_DZvkgS3V.js.br +0 -0
- package/dist/public/assets/_Dbm6zAQS.js.br +0 -0
- package/dist/public/assets/_Ddf1gumD.js +0 -1
- package/dist/public/assets/_De6E9M7R.js +0 -1
- package/dist/public/assets/_DgWKSW-Y.js.br +0 -0
- package/dist/public/assets/_DhEN6T4v.js +0 -1
- package/dist/public/assets/_Di1ccq_2.js.br +0 -0
- package/dist/public/assets/_DifjKObE.js.br +0 -0
- package/dist/public/assets/_Dn10ABa-.js +0 -1
- package/dist/public/assets/_Do1ltY2a.js.br +0 -0
- package/dist/public/assets/_DomK7Scb.js.br +0 -0
- package/dist/public/assets/_DtWggCxt.js +0 -1
- package/dist/public/assets/_DtqqybyQ.js +0 -1
- package/dist/public/assets/_DvKnakqk.js.br +0 -0
- package/dist/public/assets/_DxD_AC3a.js.br +0 -0
- package/dist/public/assets/_Dxo7m9cG.js +0 -1
- package/dist/public/assets/_DzKW89Sx.js.br +0 -0
- package/dist/public/assets/_DzTHCioH.js +0 -1
- package/dist/public/assets/_EefWj858.js.br +0 -0
- package/dist/public/assets/_FlITqTCo.js.br +0 -0
- package/dist/public/assets/_GkEw2S0T.js +0 -1
- package/dist/public/assets/_HM_QqtJi.js.br +0 -0
- package/dist/public/assets/_HmkI4Rfn.js.br +0 -0
- package/dist/public/assets/_JEvx8ub4.js.br +0 -0
- package/dist/public/assets/_JOb8B3tz.js +0 -1
- package/dist/public/assets/_LEIhjFrO.js +0 -1
- package/dist/public/assets/_STJhwy7U.js +0 -1
- package/dist/public/assets/_TrcWRD8T.js.br +0 -0
- package/dist/public/assets/_UaKPY71M.js.br +0 -0
- package/dist/public/assets/_UhK3lkm0.js +0 -1
- package/dist/public/assets/_Zeftz3t1.js +0 -1
- package/dist/public/assets/__cyRVmTO.js.br +0 -0
- package/dist/public/assets/_awfYTHit.js +0 -1
- package/dist/public/assets/_dsj7vMTW.js.br +0 -0
- package/dist/public/assets/_eqpiOhSM.js +0 -1
- package/dist/public/assets/_iutZ4EDe.js.br +0 -0
- package/dist/public/assets/_kWQ0dtYZ.js.br +0 -0
- package/dist/public/assets/_knvMqXQh.js +0 -1
- package/dist/public/assets/_lwC7sIgC.js +0 -1
- package/dist/public/assets/_m2tRa0jk.js.br +0 -0
- package/dist/public/assets/_pXG8fRON.js.br +0 -0
- package/dist/public/assets/_r541ENtr.js +0 -1
- package/dist/public/assets/_rrUx1wn3.js +0 -1
- package/dist/public/assets/_tJvcu7sD.js +0 -1
- package/dist/public/assets/_vcLBrU2m.js.br +0 -0
- package/dist/public/assets/_xZC4Vm70.js +0 -1
- package/dist/public/assets/_yAr5r-uL.js +0 -1
- package/dist/public/assets/_yUmRJIJ6.js.br +0 -0
- package/dist/public/assets/files-view-CTadakLK.js +0 -2
- package/dist/public/assets/manage-workspace-HUAS6qjy.js +0 -2
- package/dist/public/assets/new-CirJkJFl.js +0 -1
- package/dist/public/assets/new-workspace-C3t1nA6z.js +0 -2
- package/dist/public/assets/review-view-DKPNtgmc.js +0 -2
- package/dist/public/assets/settings-CirJkJFl.js +0 -1
- package/dist/public/assets/settings-page-DH-9cN-8.js +0 -2
- package/dist/public/assets/styles-CIeNhVxC.css +0 -1
- package/dist/public/assets/styles-CIeNhVxC.css.br +0 -0
- package/dist/public/assets/w-CirJkJFl.js +0 -1
- package/dist/public/assets/w._-BnShhzdq.js +0 -1
- package/dist/public/assets/w._-CirJkJFl.js +0 -1
- package/dist/public/assets/w._-aCTYfruH.js +0 -1
|
@@ -182,7 +182,7 @@ try {
|
|
|
182
182
|
* open terminal. */
|
|
183
183
|
var TMUX_SOCKET = process.env.WORK_TMUX_SOCKET || "work";
|
|
184
184
|
var execFileAsync = promisify(execFile);
|
|
185
|
-
async function run$
|
|
185
|
+
async function run$2(cmd, args, cwd, env, opts = {}) {
|
|
186
186
|
const child = execFileAsync(cmd, args, {
|
|
187
187
|
cwd,
|
|
188
188
|
env,
|
|
@@ -230,7 +230,7 @@ var git = async (args, cwd) => {
|
|
|
230
230
|
const verb = args.find((a) => !a.startsWith("-")) ?? "";
|
|
231
231
|
const timeoutMs = GIT_NETWORK_MS[verb];
|
|
232
232
|
try {
|
|
233
|
-
return await run$
|
|
233
|
+
return await run$2("git", args, cwd, gitEnv(), timeoutMs ? { timeoutMs } : void 0);
|
|
234
234
|
} catch (err) {
|
|
235
235
|
if (timeoutMs && err.killed) throw new Error(`git ${verb} timed out after ${Math.round(timeoutMs / 1e3)}s`);
|
|
236
236
|
throw err;
|
|
@@ -248,7 +248,7 @@ var gh = async (args, host) => {
|
|
|
248
248
|
const verb = args[0] ?? "";
|
|
249
249
|
const timeoutMs = GH_MS[verb] ?? GH_DEFAULT_MS;
|
|
250
250
|
try {
|
|
251
|
-
return await run$
|
|
251
|
+
return await run$2("gh", args, void 0, host ? {
|
|
252
252
|
...process.env,
|
|
253
253
|
GH_HOST: host
|
|
254
254
|
} : void 0, { timeoutMs });
|
|
@@ -257,7 +257,7 @@ var gh = async (args, host) => {
|
|
|
257
257
|
throw err;
|
|
258
258
|
}
|
|
259
259
|
};
|
|
260
|
-
var tmux = (args, env, opts) => run$
|
|
260
|
+
var tmux = (args, env, opts) => run$2("tmux", [
|
|
261
261
|
"-L",
|
|
262
262
|
TMUX_SOCKET,
|
|
263
263
|
...args
|
|
@@ -1078,6 +1078,330 @@ function readTailscale({ path, version: versionText, status, serve }, { port, al
|
|
|
1078
1078
|
};
|
|
1079
1079
|
}
|
|
1080
1080
|
//#endregion
|
|
1081
|
+
//#region lib/setup/firewall.mjs
|
|
1082
|
+
/** The name work's own rule goes by: a firewalld service, a ufw comment. */
|
|
1083
|
+
var RULE = "work";
|
|
1084
|
+
var SOCKETFILTERFW = "usr/libexec/ApplicationFirewall/socketfilterfw";
|
|
1085
|
+
var CODESIGN = "usr/bin/codesign";
|
|
1086
|
+
/**
|
|
1087
|
+
* The active host firewall and whether it admits UDP `rtcPort`, or null
|
|
1088
|
+
* when none is active (or direct connections are off, `rtc` = "off").
|
|
1089
|
+
* `appPort` joins the rule when `listen` is beyond this machine, since the
|
|
1090
|
+
* app's own TCP port then has to be reachable too. `node` is the program
|
|
1091
|
+
* macOS's firewall is asked about (this process's by default: the server
|
|
1092
|
+
* asking for itself). `root` is where /etc and /usr are read from, and
|
|
1093
|
+
* `platform` the system taken for this one (a test's stand-ins).
|
|
1094
|
+
*/
|
|
1095
|
+
async function firewallProbe({ rtcPort, appPort, listen = "127.0.0.1", rtc, node = process.execPath, root = "/", platform = process.platform } = {}) {
|
|
1096
|
+
if (rtc === "off") return null;
|
|
1097
|
+
const port = Number(rtcPort) || Number(appPort) || 7171;
|
|
1098
|
+
const tcp = loopback(listen) ? null : Number(appPort) || port;
|
|
1099
|
+
const at = (p) => path.join(root, p);
|
|
1100
|
+
if (platform === "darwin") return macos(port, node, at);
|
|
1101
|
+
return await firewalld(port, tcp, at) ?? ufw(port, tcp, at);
|
|
1102
|
+
}
|
|
1103
|
+
async function firewalld(port, tcp, at) {
|
|
1104
|
+
const bin = findBin("firewall-cmd");
|
|
1105
|
+
if (!bin) return null;
|
|
1106
|
+
const active = await run$1(bin, ["--get-active-zones"]);
|
|
1107
|
+
if (!active.ok || !active.stdout.trim()) return null;
|
|
1108
|
+
const zones = active.stdout.split("\n").filter((line) => line && !/^\s/.test(line)).map((line) => line.trim().split(/\s+/)[0]);
|
|
1109
|
+
const byDefault = /^(\S+)\s+\(default\)/m.exec(active.stdout)?.[1];
|
|
1110
|
+
const zone = byDefault && zones.includes(byDefault) ? byDefault : zones[0];
|
|
1111
|
+
const services = await run$1(bin, ["--get-services"]);
|
|
1112
|
+
const ruled = services.ok && services.stdout.split(/\s+/).includes("work");
|
|
1113
|
+
const changed = readXml(at(`etc/firewalld/zones/${zone}.xml`));
|
|
1114
|
+
const def = changed ?? readXml(at(`usr/lib/firewalld/zones/${zone}.xml`));
|
|
1115
|
+
const exact = changed !== null;
|
|
1116
|
+
const admits = ruled || def !== null && zoneAdmits(def, port, at);
|
|
1117
|
+
const likely = !admits;
|
|
1118
|
+
const plan = [
|
|
1119
|
+
...ruled ? [] : [sudo("firewall-cmd", "--permanent", `--new-service=${RULE}`), sudo("firewall-cmd", "--permanent", `--service=${RULE}`, `--set-short=${RULE}`)],
|
|
1120
|
+
sudo("firewall-cmd", "--permanent", `--service=${RULE}`, `--add-port=${port}/udp`),
|
|
1121
|
+
...tcp ? [sudo("firewall-cmd", "--permanent", `--service=${RULE}`, `--add-port=${tcp}/tcp`)] : [],
|
|
1122
|
+
sudo("firewall-cmd", "--permanent", `--zone=${zone}`, `--add-service=${RULE}`),
|
|
1123
|
+
sudo("firewall-cmd", "--reload")
|
|
1124
|
+
];
|
|
1125
|
+
return result({
|
|
1126
|
+
kind: "firewalld",
|
|
1127
|
+
what: `firewalld (zone ${zone})`,
|
|
1128
|
+
zone,
|
|
1129
|
+
port,
|
|
1130
|
+
admits,
|
|
1131
|
+
likely,
|
|
1132
|
+
exact,
|
|
1133
|
+
ruled,
|
|
1134
|
+
why: admits || exact ? null : "by the zone's definition as shipped",
|
|
1135
|
+
plan: admits ? [] : plan
|
|
1136
|
+
});
|
|
1137
|
+
}
|
|
1138
|
+
function ufw(port, tcp, at) {
|
|
1139
|
+
let conf = "";
|
|
1140
|
+
try {
|
|
1141
|
+
conf = fs.readFileSync(at("etc/ufw/ufw.conf"), "utf8");
|
|
1142
|
+
} catch {
|
|
1143
|
+
return null;
|
|
1144
|
+
}
|
|
1145
|
+
if (!/^\s*ENABLED\s*=\s*yes/m.test(conf)) return null;
|
|
1146
|
+
let policy = "DROP";
|
|
1147
|
+
try {
|
|
1148
|
+
policy = /^\s*DEFAULT_INPUT_POLICY\s*=\s*"?(\w+)/m.exec(fs.readFileSync(at("etc/default/ufw"), "utf8"))?.[1] ?? policy;
|
|
1149
|
+
} catch {}
|
|
1150
|
+
let rules = null;
|
|
1151
|
+
try {
|
|
1152
|
+
rules = fs.readFileSync(at("etc/ufw/user.rules"), "utf8");
|
|
1153
|
+
} catch {}
|
|
1154
|
+
const ruled = !!rules && new RegExp(`### tuple ### allow udp ${port} \\S+ \\S+ \\S+ in\\b`).test(rules);
|
|
1155
|
+
const admits = policy === "ACCEPT" || ruled;
|
|
1156
|
+
const plan = [sudo("ufw", "allow", `${port}/udp`, "comment", RULE), ...tcp ? [sudo("ufw", "allow", `${tcp}/tcp`, "comment", RULE)] : []];
|
|
1157
|
+
return result({
|
|
1158
|
+
kind: "ufw",
|
|
1159
|
+
what: "ufw",
|
|
1160
|
+
port,
|
|
1161
|
+
admits,
|
|
1162
|
+
likely: !admits,
|
|
1163
|
+
exact: rules !== null,
|
|
1164
|
+
ruled,
|
|
1165
|
+
why: admits || rules !== null ? null : `by its default input policy, ${policy}`,
|
|
1166
|
+
plan: admits ? [] : plan
|
|
1167
|
+
});
|
|
1168
|
+
}
|
|
1169
|
+
/** macOS's application firewall filters by program, not port: what counts
|
|
1170
|
+
* is whether the node the server runs (`node`) may take connections. All
|
|
1171
|
+
* of it reads without root — the switch, "Block all incoming
|
|
1172
|
+
* connections", whether signed software is let in by itself, node's own
|
|
1173
|
+
* entry, and node's signature — and each parser takes what it can
|
|
1174
|
+
* recognise and leaves the rest unknown (`macosVerdict`), since the
|
|
1175
|
+
* wording has changed across releases. */
|
|
1176
|
+
async function macos(port, node, at) {
|
|
1177
|
+
const bin = at(SOCKETFILTERFW);
|
|
1178
|
+
if (!fs.existsSync(bin)) return null;
|
|
1179
|
+
const real = realpath(node);
|
|
1180
|
+
const said = (r) => `${r.stdout}\n${r.stderr}`;
|
|
1181
|
+
const [state, blockAll, signed, blocked, apps, sign] = await Promise.all([
|
|
1182
|
+
["--getglobalstate"],
|
|
1183
|
+
["--getblockall"],
|
|
1184
|
+
["--getallowsigned"],
|
|
1185
|
+
["--getappblocked", real],
|
|
1186
|
+
["--listapps"]
|
|
1187
|
+
].map((a) => run$1(bin, a).then(said)).concat(run$1(at(CODESIGN), ["-dv", real]).then(said)));
|
|
1188
|
+
const v = macosVerdict({
|
|
1189
|
+
state,
|
|
1190
|
+
blockAll,
|
|
1191
|
+
signed,
|
|
1192
|
+
blocked,
|
|
1193
|
+
apps,
|
|
1194
|
+
sign,
|
|
1195
|
+
paths: [.../* @__PURE__ */ new Set([node, real])]
|
|
1196
|
+
});
|
|
1197
|
+
if (!v) return null;
|
|
1198
|
+
const sfw = (...a) => sudo(bin, ...a);
|
|
1199
|
+
const plan = v.needs === "unblock" ? [sfw("--unblockapp", real)] : v.needs === "add" ? [sfw("--add", real), sfw("--unblockapp", real)] : [];
|
|
1200
|
+
return result({
|
|
1201
|
+
kind: "macos",
|
|
1202
|
+
what: "the macOS firewall",
|
|
1203
|
+
port,
|
|
1204
|
+
admits: v.admits,
|
|
1205
|
+
likely: !v.admits,
|
|
1206
|
+
exact: v.exact,
|
|
1207
|
+
ruled: false,
|
|
1208
|
+
why: v.why,
|
|
1209
|
+
node: real,
|
|
1210
|
+
plan,
|
|
1211
|
+
fix: v.needs === "blockall" ? BLOCK_ALL_FIX : void 0
|
|
1212
|
+
});
|
|
1213
|
+
}
|
|
1214
|
+
var BLOCK_ALL_FIX = "turn off “Block all incoming connections” (System Settings → Network → Firewall → Options); no rule for one program opens anything while it is on";
|
|
1215
|
+
/**
|
|
1216
|
+
* The macOS firewall's verdict on node from what socketfilterfw and
|
|
1217
|
+
* codesign said (their stdout and stderr, as text): null when the firewall
|
|
1218
|
+
* is off or its state could not be read. `needs` names the fix: `blockall`
|
|
1219
|
+
* (a setting only the user should change), `unblock` (node is listed and
|
|
1220
|
+
* blocked), `add` (node is not listed).
|
|
1221
|
+
*/
|
|
1222
|
+
function macosVerdict({ state, blockAll, signed, blocked, apps, sign, paths }) {
|
|
1223
|
+
if (globalOn(state) !== true) return null;
|
|
1224
|
+
if (blockAllOn(blockAll) ?? /State\s*=\s*2\b/.test(state)) return {
|
|
1225
|
+
admits: false,
|
|
1226
|
+
exact: true,
|
|
1227
|
+
why: "“Block all incoming connections” is on",
|
|
1228
|
+
needs: "blockall"
|
|
1229
|
+
};
|
|
1230
|
+
const entry = listedAs(apps, paths) ?? appBlocked(blocked);
|
|
1231
|
+
if (entry === "block") return {
|
|
1232
|
+
admits: false,
|
|
1233
|
+
exact: true,
|
|
1234
|
+
why: "node is blocked in it",
|
|
1235
|
+
needs: "unblock"
|
|
1236
|
+
};
|
|
1237
|
+
if (entry === "allow") return {
|
|
1238
|
+
admits: true,
|
|
1239
|
+
exact: true,
|
|
1240
|
+
why: "node is allowed in it",
|
|
1241
|
+
needs: null
|
|
1242
|
+
};
|
|
1243
|
+
const signature = signatureOf(sign);
|
|
1244
|
+
const auto = allowSigned(signed);
|
|
1245
|
+
if (signature === "developer-id" && auto.downloaded || signature === "apple" && auto.builtIn) return {
|
|
1246
|
+
admits: true,
|
|
1247
|
+
exact: false,
|
|
1248
|
+
why: `node is not listed, but it is ${signature === "apple" ? "Apple" : "Developer ID"}-signed and signed ${signature === "apple" ? "built-in" : "downloaded"} software is let in`,
|
|
1249
|
+
needs: null
|
|
1250
|
+
};
|
|
1251
|
+
return {
|
|
1252
|
+
admits: false,
|
|
1253
|
+
exact: false,
|
|
1254
|
+
why: `node is not listed, and ${signature === "developer-id" || signature === "apple" ? "signed software is not let in by itself" : signature === "adhoc" ? "an ad-hoc-signed program is not let in by itself" : signature === "unsigned" ? "an unsigned program is not let in by itself" : signature ? "a program not Developer ID-signed is not let in by itself" : "its signature could not be read"}, so its connections are dropped or asked about on the Mac's screen`,
|
|
1255
|
+
needs: "add"
|
|
1256
|
+
};
|
|
1257
|
+
}
|
|
1258
|
+
/** `--getglobalstate`: "Firewall is enabled. (State = 1)", "Firewall is
|
|
1259
|
+
* disabled. (State = 0)"; 2 is on with everything blocked. */
|
|
1260
|
+
function globalOn(text = "") {
|
|
1261
|
+
const n = /State\s*=\s*(\d)/i.exec(text);
|
|
1262
|
+
if (n) return n[1] !== "0";
|
|
1263
|
+
if (/\bdisabled\b|\boff\b/i.test(text)) return false;
|
|
1264
|
+
if (/\benabled\b|\bon\b/i.test(text)) return true;
|
|
1265
|
+
return null;
|
|
1266
|
+
}
|
|
1267
|
+
/** `--getblockall`: "Block all ENABLED!" / "Block all DISABLED!", or
|
|
1268
|
+
* "Firewall has block all state set to enabled." / "… disabled." */
|
|
1269
|
+
function blockAllOn(text = "") {
|
|
1270
|
+
if (!/block\s*all/i.test(text)) return null;
|
|
1271
|
+
if (/\bdisabled\b|\boff\b/i.test(text)) return false;
|
|
1272
|
+
if (/\benabled\b|\bon\b/i.test(text)) return true;
|
|
1273
|
+
return null;
|
|
1274
|
+
}
|
|
1275
|
+
/** `--getallowsigned`: "Automatically allow built-in signed software
|
|
1276
|
+
* ENABLED." and "Automatically allow downloaded signed software
|
|
1277
|
+
* ENABLED." (older: "… allow signed built-in software …", or one "… allow
|
|
1278
|
+
* signed software …" switch for both). */
|
|
1279
|
+
function allowSigned(text = "") {
|
|
1280
|
+
const out = {
|
|
1281
|
+
builtIn: null,
|
|
1282
|
+
downloaded: null
|
|
1283
|
+
};
|
|
1284
|
+
for (const line of text.split("\n")) {
|
|
1285
|
+
if (!/signed/i.test(line)) continue;
|
|
1286
|
+
const on = /\bdisabled\b|\boff\b/i.test(line) ? false : /\benabled\b|\bon\b/i.test(line) ? true : null;
|
|
1287
|
+
if (on === null) continue;
|
|
1288
|
+
if (/download/i.test(line)) out.downloaded = on;
|
|
1289
|
+
else if (/built-?\s?in/i.test(line)) out.builtIn = on;
|
|
1290
|
+
else out.builtIn = out.downloaded = on;
|
|
1291
|
+
}
|
|
1292
|
+
return out;
|
|
1293
|
+
}
|
|
1294
|
+
/** `--listapps`: "ALF: total number of apps = 2", then per app "1 :
|
|
1295
|
+
* /path" and, on its next line or after the path, "( Allow incoming
|
|
1296
|
+
* connections )" or "( Block incoming connections )". */
|
|
1297
|
+
function listedAs(text = "", paths = []) {
|
|
1298
|
+
const lines = text.split("\n");
|
|
1299
|
+
for (let i = 0; i < lines.length; i++) {
|
|
1300
|
+
const m = /^\s*\d+\s*:\s*(.+?)\s*(?:\(([^)]*)\))?\s*$/.exec(lines[i]);
|
|
1301
|
+
if (!m || !paths.includes(m[1].trim())) continue;
|
|
1302
|
+
for (const said of [m[2] ?? "", ...lines.slice(i + 1, i + 4)]) {
|
|
1303
|
+
if (/^\s*\d+\s*:/.test(said)) break;
|
|
1304
|
+
if (/\bblock/i.test(said)) return "block";
|
|
1305
|
+
if (/\b(allow|permit)/i.test(said)) return "allow";
|
|
1306
|
+
}
|
|
1307
|
+
}
|
|
1308
|
+
return null;
|
|
1309
|
+
}
|
|
1310
|
+
/** `--getappblocked <path>`: "… is permitted" / "… is blocked", or that it
|
|
1311
|
+
* is not part of the firewall (not listed). */
|
|
1312
|
+
function appBlocked(text = "") {
|
|
1313
|
+
if (/not part of|isn['’]?t part|not (?:a )?(?:listed|found|in the)|no such|does not exist/i.test(text)) return null;
|
|
1314
|
+
if (/\bpermitted\b|\ballowed\b|\bunblocked\b|\bnot blocked\b/i.test(text)) return "allow";
|
|
1315
|
+
if (/\bblocked\b/i.test(text)) return "block";
|
|
1316
|
+
return null;
|
|
1317
|
+
}
|
|
1318
|
+
/** `codesign -dv <path>` (on stderr): "Authority=Developer ID
|
|
1319
|
+
* Application: …", Apple's own ("Authority=Software Signing"),
|
|
1320
|
+
* "Signature=adhoc", or "code object is not signed at all". */
|
|
1321
|
+
function signatureOf(text = "") {
|
|
1322
|
+
if (/not signed at all/i.test(text)) return "unsigned";
|
|
1323
|
+
if (/^Authority=Developer ID Application\b/im.test(text)) return "developer-id";
|
|
1324
|
+
if (/^Authority=(Software Signing|Apple Code Signing|Apple Mac OS Application Signing)\b/im.test(text)) return "apple";
|
|
1325
|
+
if (/^Signature=adhoc\b|\badhoc\b/im.test(text)) return "adhoc";
|
|
1326
|
+
if (/^Authority=/im.test(text)) return "other";
|
|
1327
|
+
return null;
|
|
1328
|
+
}
|
|
1329
|
+
function result(r) {
|
|
1330
|
+
return {
|
|
1331
|
+
...r,
|
|
1332
|
+
fix: r.fix ?? (r.plan.length ? r.plan.map(shell).join(" && ") : null)
|
|
1333
|
+
};
|
|
1334
|
+
}
|
|
1335
|
+
/** Whether a firewalld zone definition lets UDP `port` in: by its target,
|
|
1336
|
+
* a port range of its own, or a service it names (a readable one). */
|
|
1337
|
+
function zoneAdmits(xml, port, at) {
|
|
1338
|
+
if (/<zone[^>]*\btarget="ACCEPT"/.test(xml)) return true;
|
|
1339
|
+
if (portsAdmit(xml, port)) return true;
|
|
1340
|
+
for (const [, name] of xml.matchAll(/<service\s+name="([^"]+)"/g)) {
|
|
1341
|
+
const svc = readXml(at(`etc/firewalld/services/${name}.xml`)) ?? readXml(at(`usr/lib/firewalld/services/${name}.xml`));
|
|
1342
|
+
if (svc && portsAdmit(svc, port)) return true;
|
|
1343
|
+
}
|
|
1344
|
+
return false;
|
|
1345
|
+
}
|
|
1346
|
+
function portsAdmit(xml, port) {
|
|
1347
|
+
for (const [tag] of xml.matchAll(/<port\b[^>]*>/g)) {
|
|
1348
|
+
const proto = /protocol="(\w+)"/.exec(tag)?.[1];
|
|
1349
|
+
const range = /port="(\d+)(?:-(\d+))?"/.exec(tag);
|
|
1350
|
+
if (proto !== "udp" || !range) continue;
|
|
1351
|
+
const lo = Number(range[1]);
|
|
1352
|
+
const hi = Number(range[2] ?? range[1]);
|
|
1353
|
+
if (port >= lo && port <= hi) return true;
|
|
1354
|
+
}
|
|
1355
|
+
return false;
|
|
1356
|
+
}
|
|
1357
|
+
function realpath(file) {
|
|
1358
|
+
try {
|
|
1359
|
+
return fs.realpathSync(file);
|
|
1360
|
+
} catch {
|
|
1361
|
+
return file;
|
|
1362
|
+
}
|
|
1363
|
+
}
|
|
1364
|
+
function sudo(...args) {
|
|
1365
|
+
return ["sudo", ...args];
|
|
1366
|
+
}
|
|
1367
|
+
function shell(argv) {
|
|
1368
|
+
return argv.map((a) => /^[\w@%+=:,./-]+$/.test(a) ? a : `'${a.replace(/'/g, "'\\''")}'`).join(" ");
|
|
1369
|
+
}
|
|
1370
|
+
function loopback(listen) {
|
|
1371
|
+
return !listen || listen === "::1" || /^127\./.test(listen) || listen === "localhost";
|
|
1372
|
+
}
|
|
1373
|
+
function readXml(file) {
|
|
1374
|
+
try {
|
|
1375
|
+
return fs.readFileSync(file, "utf8");
|
|
1376
|
+
} catch {
|
|
1377
|
+
return null;
|
|
1378
|
+
}
|
|
1379
|
+
}
|
|
1380
|
+
/** A program on PATH, or in the sbin directories a user's PATH can leave
|
|
1381
|
+
* out. */
|
|
1382
|
+
function findBin(name) {
|
|
1383
|
+
const dirs = [
|
|
1384
|
+
...(process.env.PATH || "").split(path.delimiter),
|
|
1385
|
+
"/usr/sbin",
|
|
1386
|
+
"/sbin"
|
|
1387
|
+
];
|
|
1388
|
+
for (const dir of dirs) {
|
|
1389
|
+
if (!dir) continue;
|
|
1390
|
+
const full = path.join(dir, name);
|
|
1391
|
+
try {
|
|
1392
|
+
if (fs.statSync(full).isFile()) return full;
|
|
1393
|
+
} catch {}
|
|
1394
|
+
}
|
|
1395
|
+
return null;
|
|
1396
|
+
}
|
|
1397
|
+
function run$1(cmd, args) {
|
|
1398
|
+
return new Promise((resolve) => execFile(cmd, args, { timeout: 5e3 }, (err, stdout, stderr) => resolve({
|
|
1399
|
+
ok: !err,
|
|
1400
|
+
stdout: String(stdout || ""),
|
|
1401
|
+
stderr: String(stderr || "")
|
|
1402
|
+
})));
|
|
1403
|
+
}
|
|
1404
|
+
//#endregion
|
|
1081
1405
|
//#region lib/setup/doctor.mjs
|
|
1082
1406
|
var home = os.homedir();
|
|
1083
1407
|
/** Agent CLI install dirs from meta (`~` → home). Same list the service and
|
|
@@ -1423,7 +1747,8 @@ async function tailscaleProbe({ port, allowedHosts } = {}) {
|
|
|
1423
1747
|
* @param {{ hosts?: string[], port?: string, allowedHosts?: string }} [opts]
|
|
1424
1748
|
* configured GitHub hosts (settings); github.com and any host gh is
|
|
1425
1749
|
* already signed in to are always included. `port` and `allowedHosts`
|
|
1426
|
-
* are the service's, for the Tailscale probe
|
|
1750
|
+
* are the service's, for the Tailscale probe; `firewall`, when given, is
|
|
1751
|
+
* the service's own firewall reading (`serviceFirewall` in the CLI).
|
|
1427
1752
|
*/
|
|
1428
1753
|
async function doctor(opts = {}) {
|
|
1429
1754
|
const hostSet = /* @__PURE__ */ new Set([
|
|
@@ -1431,13 +1756,19 @@ async function doctor(opts = {}) {
|
|
|
1431
1756
|
...opts.hosts || [],
|
|
1432
1757
|
...ghKnownHosts()
|
|
1433
1758
|
]);
|
|
1434
|
-
const [versions, github, awake, extensions, helpers, tailscale] = await Promise.all([
|
|
1759
|
+
const [versions, github, awake, extensions, helpers, tailscale, firewall] = await Promise.all([
|
|
1435
1760
|
miseVersions(),
|
|
1436
1761
|
Promise.all([...hostSet].map(githubHostStatus)),
|
|
1437
1762
|
canStayAwake(),
|
|
1438
1763
|
ghExtensions(),
|
|
1439
1764
|
staleGhHelpers(),
|
|
1440
|
-
tailscaleProbe(opts)
|
|
1765
|
+
tailscaleProbe(opts),
|
|
1766
|
+
opts.firewall !== void 0 ? opts.firewall : firewallProbe({
|
|
1767
|
+
rtcPort: opts.rtcPort ?? process.env.WORK_RTC_PORT,
|
|
1768
|
+
appPort: opts.port || process.env.PORT || process.env.WORK_APP_PORT || "7171",
|
|
1769
|
+
listen: opts.listen ?? process.env.WORK_LISTEN,
|
|
1770
|
+
rtc: opts.rtc ?? process.env.WORK_RTC
|
|
1771
|
+
})
|
|
1441
1772
|
]);
|
|
1442
1773
|
const tools = TOOLS.map((t) => {
|
|
1443
1774
|
if (t.ghExtension) {
|
|
@@ -1480,7 +1811,8 @@ async function doctor(opts = {}) {
|
|
|
1480
1811
|
github,
|
|
1481
1812
|
awake,
|
|
1482
1813
|
staleGhHelpers: helpers,
|
|
1483
|
-
tailscale
|
|
1814
|
+
tailscale,
|
|
1815
|
+
firewall
|
|
1484
1816
|
};
|
|
1485
1817
|
}
|
|
1486
1818
|
//#endregion
|
|
@@ -7745,7 +8077,7 @@ function publishChange(sessionId) {
|
|
|
7745
8077
|
const row = get("SELECT workspace_id FROM sessions WHERE id = ?", sessionId);
|
|
7746
8078
|
if (row?.workspace_id) {
|
|
7747
8079
|
const workspaceId = row.workspace_id;
|
|
7748
|
-
import("./
|
|
8080
|
+
import("./_ZwD1NY8D.js").then((m) => m.notifySessionsChanged(workspaceId));
|
|
7749
8081
|
return;
|
|
7750
8082
|
}
|
|
7751
8083
|
publish("sessions.changed");
|
|
@@ -8688,7 +9020,7 @@ async function token() {
|
|
|
8688
9020
|
const fromHosts = hostsToken();
|
|
8689
9021
|
if (fromHosts) return fromHosts;
|
|
8690
9022
|
try {
|
|
8691
|
-
return await run$
|
|
9023
|
+
return await run$2("gh", ["auth", "token"]) || null;
|
|
8692
9024
|
} catch {
|
|
8693
9025
|
return null;
|
|
8694
9026
|
}
|
|
@@ -9800,6 +10132,40 @@ function tmuxWasStarted(id) {
|
|
|
9800
10132
|
function clearTmuxStarted(id) {
|
|
9801
10133
|
tmuxStarted.delete(id);
|
|
9802
10134
|
}
|
|
10135
|
+
/** How long an attach waits for another's session creation to show before
|
|
10136
|
+
* it takes the session for gone. tmux makes the session as it starts, far
|
|
10137
|
+
* inside this; the wait ends early once it exists or its creator gives up. */
|
|
10138
|
+
var CREATE_WAIT_MS = 3e3;
|
|
10139
|
+
var creating = /* @__PURE__ */ new Map();
|
|
10140
|
+
/** An attach is creating `id`'s tmux session: its `new-session -A` takes a
|
|
10141
|
+
* few milliseconds to exist, and an attach arriving meanwhile finds it
|
|
10142
|
+
* started but missing — what an agent that exited leaves. Such an attach
|
|
10143
|
+
* waits on this (`creationOf`) and looks again. The returned function ends
|
|
10144
|
+
* the wait early, for a creator that gave up before spawning. */
|
|
10145
|
+
function beginCreation(id, name) {
|
|
10146
|
+
let gaveUp = false;
|
|
10147
|
+
const done = (async () => {
|
|
10148
|
+
const until = Date.now() + CREATE_WAIT_MS;
|
|
10149
|
+
while (!gaveUp && Date.now() < until) {
|
|
10150
|
+
if (await tmux([
|
|
10151
|
+
"has-session",
|
|
10152
|
+
"-t",
|
|
10153
|
+
name
|
|
10154
|
+
]).then(() => true, () => false)) return;
|
|
10155
|
+
await sleep(20);
|
|
10156
|
+
}
|
|
10157
|
+
})().finally(() => {
|
|
10158
|
+
if (creating.get(id) === done) creating.delete(id);
|
|
10159
|
+
});
|
|
10160
|
+
creating.set(id, done);
|
|
10161
|
+
return () => {
|
|
10162
|
+
gaveUp = true;
|
|
10163
|
+
};
|
|
10164
|
+
}
|
|
10165
|
+
/** The creation of `id`'s session under way (`beginCreation`), if any. */
|
|
10166
|
+
function creationOf(id) {
|
|
10167
|
+
return creating.get(id);
|
|
10168
|
+
}
|
|
9803
10169
|
/** Events-bus payload: session rows + live tmux/hook state so clients
|
|
9804
10170
|
* don't refetch. Coalesced per workspace: a turn boundary lands as a burst
|
|
9805
10171
|
* of phase transitions (hook, then scrape), and each one cost a list-panes
|
|
@@ -9982,7 +10348,7 @@ async function listPanesNow() {
|
|
|
9982
10348
|
* (tmux exits when its last session closes). */
|
|
9983
10349
|
async function ensureTmuxServer() {
|
|
9984
10350
|
if (await tmux(["has-session"]).then(() => true, () => false)) return;
|
|
9985
|
-
await run$
|
|
10351
|
+
await run$2("systemd-run", [
|
|
9986
10352
|
"--user",
|
|
9987
10353
|
`--unit=${TMUX_SOCKET === "work" ? "work-tmux" : `work-tmux-${TMUX_SOCKET.replace(/[^\w.:-]/g, "_")}`}`,
|
|
9988
10354
|
"--service-type=forking",
|
|
@@ -10254,4 +10620,4 @@ function sleep(ms) {
|
|
|
10254
10620
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
10255
10621
|
}
|
|
10256
10622
|
//#endregion
|
|
10257
|
-
export {
|
|
10623
|
+
export { deleteSubscription as $, tmux as $t, blankRow as A, firewallProbe as At, setSessionViewers as B, FRAME_HEADERS as Bt, tmuxWasStarted as C, ghKnownHosts as Ct, inside as D, stableGh as Dt, reportsWorking as E, setupPath as Et, noteBackground as F, agentLabel$1 as Ft, agentLabel as G, db as Gt, agentBadge as H, httpError as Ht, noteUserAnswered as I, catalogPin as It, getInstance as J, TMUX_SOCKET as Jt, agentMeta as K, get as Kt, onPhaseChange as L, toolById as Lt, clearAgentPhase as M, PROJECT_TOOLS as Mt, hookPhase as N, TOOLS as Nt, realInside as O, tilde as Ot, hookReportedAt as P, agentById as Pt, setInstance as Q, run$2 as Qt, setAgentPhase as R, applyPrefChange as Rt, tmuxName as S, doctor as St, readHookPayload as T, miseVersions as Tt, agentFamily as U, readBody as Ut, settleQuietWorking as V, checked as Vt, agentFromCommand as W, all as Wt, manifest as X, git as Xt, iconSvg as Y, gh as Yt, normalizeAccent as Z, gitEnv as Zt, notifySessionsChanged as _, preferredAgent as _t, creationOf as a, publishJson as at, sendToSession as b, setSetting as bt, forgetPanes as c, PREF_MAX as ct, killWorkspaceSessions as d, allPrefs as dt, config as en, pushPublicKey as et, listPanes as f, changePref as ft, newSessionArgs as g, getSetting as gt, markTmuxStarted as h, enabledAgents as ht, createSession as i, publish as it, agentPhase as j, DEFAULT_GITHUB_HOST as jt, realInsideSync as k, which as kt, getSession as l, WORKSPACE_PREFS as lt, listSessions as m, disabledAgents as mt, cleanEnv as n, swr as nn, sendPush as nt, disposeSessions as o, subscribe as ot, listPanesWithin as p, deleteWorkspacePrefs as pt, ACCENT_RE as q, workspacePath as qt, clearTmuxStarted as r, withLock as rn, validSubscription as rt, ensureTmuxServer as s, subscriberCount as st, beginCreation as t, shared as tn, saveSubscription as tt, killSession as u, agentChoices as ut, panePids as v, setDisabledAgents as vt, AGENTS as w, miseInstalls as wt, sessionStates as x, discoverAgents as xt, renameSession as y, setPref as yt, setScrapedPhase as z, FRAME_ANCESTORS as zt };
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
var glyphBadgeNum = "_y _x";
|
|
2
|
+
var usageInk = {
|
|
3
|
+
ok: "_z",
|
|
4
|
+
mid: "_A",
|
|
5
|
+
warm: "_B",
|
|
6
|
+
hot: "_C"
|
|
7
|
+
};
|
|
8
|
+
var usageFill = {
|
|
9
|
+
ok: "_D",
|
|
10
|
+
mid: "_E",
|
|
11
|
+
warm: "_F",
|
|
12
|
+
hot: "_G"
|
|
13
|
+
};
|
|
14
|
+
var prTone = {
|
|
15
|
+
open: "_H",
|
|
16
|
+
draft: "_I",
|
|
17
|
+
merged: "_J",
|
|
18
|
+
closed: "_K"
|
|
19
|
+
};
|
|
20
|
+
var phaseIcon = {
|
|
21
|
+
working: "_X _W",
|
|
22
|
+
waiting: "_Y _W",
|
|
23
|
+
idle: "_Z _W",
|
|
24
|
+
off: "_0 _W"
|
|
25
|
+
};
|
|
26
|
+
var btnSm = "_7 _r";
|
|
27
|
+
var btnLg = "_8 _r";
|
|
28
|
+
var tone = {
|
|
29
|
+
accent: "_bb",
|
|
30
|
+
ok: "_bc",
|
|
31
|
+
warn: "_bd",
|
|
32
|
+
danger: "_be",
|
|
33
|
+
merged: "_bf",
|
|
34
|
+
closed: "_bg"
|
|
35
|
+
};
|
|
36
|
+
var inputLg = "_bk _bj";
|
|
37
|
+
var iconBtnXs = "_bo _m";
|
|
38
|
+
var iconBtnRow = "_bp _m";
|
|
39
|
+
var iconBtnLg = "_bq _m";
|
|
40
|
+
var chipBtn = "_br _m";
|
|
41
|
+
var tocDot = "_dc _U";
|
|
42
|
+
//#endregion
|
|
43
|
+
//#region src/styles/tokens.css.ts
|
|
44
|
+
var color = {
|
|
45
|
+
ok: "light-dark(#1a7f37, #57d364)",
|
|
46
|
+
okStrong: "light-dark(#116329, #7ee787)",
|
|
47
|
+
warn: "light-dark(#bf8700, #d4a72c)",
|
|
48
|
+
warnStrong: "light-dark(#8a5a00, #f0b84a)",
|
|
49
|
+
merged: "light-dark(#8250df, #a371f7)",
|
|
50
|
+
closed: "light-dark(#cf222e, #f85149)",
|
|
51
|
+
onAccent: "#fff",
|
|
52
|
+
onDanger: "#fff",
|
|
53
|
+
accentDefault: "light-dark(#4f5bd5, #6470e6)",
|
|
54
|
+
bg: "var(--bg)",
|
|
55
|
+
panel: "var(--panel)",
|
|
56
|
+
border: "var(--border)",
|
|
57
|
+
text: "var(--text)",
|
|
58
|
+
dim: "var(--dim)",
|
|
59
|
+
accent: "var(--accent)",
|
|
60
|
+
accentFill: "var(--accent-fill)",
|
|
61
|
+
accentText: "var(--accent-text)",
|
|
62
|
+
danger: "var(--danger)",
|
|
63
|
+
fieldBorder: "var(--field-border)",
|
|
64
|
+
raised: "color-mix(in srgb, var(--panel) 94%, var(--text))",
|
|
65
|
+
raisedHover: "color-mix(in srgb, var(--panel) 90%, var(--text))",
|
|
66
|
+
onScrim: "#fff"
|
|
67
|
+
};
|
|
68
|
+
var sans = "Inter, ui-sans-serif, system-ui, -apple-system, \"Segoe UI\", sans-serif";
|
|
69
|
+
var iconSize = {
|
|
70
|
+
sm: 12,
|
|
71
|
+
md: 14,
|
|
72
|
+
lg: 16,
|
|
73
|
+
xl: 18
|
|
74
|
+
};
|
|
75
|
+
var toastKind = {
|
|
76
|
+
error: "_b4",
|
|
77
|
+
warn: "_b5",
|
|
78
|
+
info: "_b6"
|
|
79
|
+
};
|
|
80
|
+
var toastTitle = {
|
|
81
|
+
error: "_b7",
|
|
82
|
+
warn: "_b8",
|
|
83
|
+
info: "_b9"
|
|
84
|
+
};
|
|
85
|
+
//#endregion
|
|
86
|
+
//#region src/tags/settings-agents.css.ts
|
|
87
|
+
var agentRow = "_e1 _dO";
|
|
88
|
+
var list$3 = "_dS _du _dN _dQ";
|
|
89
|
+
var metaChip = "_d6 _bi _bh";
|
|
90
|
+
var sectionCount = "_dr _9 __";
|
|
91
|
+
var usageNote = "_jG _bh";
|
|
92
|
+
var pop$2 = "_gU _bw";
|
|
93
|
+
var spinner = "_gX _bm _2";
|
|
94
|
+
var toolLead = "_gF _d1";
|
|
95
|
+
var name$4 = "_gz _d1";
|
|
96
|
+
var desc$1 = "_gA _d2";
|
|
97
|
+
//#endregion
|
|
98
|
+
//#region src/tags/lsp-add-dialog.css.ts
|
|
99
|
+
var addDlg = "_kl _bG";
|
|
100
|
+
var key$1 = "_k2 _k0";
|
|
101
|
+
var addTile = "_k4 _k0";
|
|
102
|
+
var field$2 = "_le _bj";
|
|
103
|
+
var keyField = "_lf _le _bj";
|
|
104
|
+
var labelField = "_lg _le _bj";
|
|
105
|
+
var detailsToggle = "_gm _P";
|
|
106
|
+
var themeSeg = "_ft _bA";
|
|
107
|
+
var checkList = "_hi _ds";
|
|
108
|
+
//#endregion
|
|
109
|
+
//#region src/tags/prompt-dialog.css.ts
|
|
110
|
+
var promptDlg = "_bK _bG";
|
|
111
|
+
var item$1 = "_bP _m";
|
|
112
|
+
var glance = "_dE _m";
|
|
113
|
+
//#endregion
|
|
114
|
+
//#region src/tags/side-nav.css.ts
|
|
115
|
+
var iconBtn = "_bS _m";
|
|
116
|
+
var settingsDot = "_bT _bz";
|
|
117
|
+
var notifyBtn = "_bY _m";
|
|
118
|
+
//#endregion
|
|
119
|
+
//#region src/styles/session-pop.css.ts
|
|
120
|
+
var sessionPop = "_cp _bw";
|
|
121
|
+
var sessionPopBtn = "_cq _4";
|
|
122
|
+
var wsBtn = "_ep _4";
|
|
123
|
+
var rowIcon = "_er _bo _m";
|
|
124
|
+
var prChip = "_lQ _v _lK";
|
|
125
|
+
var readyChip = "_lR _v";
|
|
126
|
+
var prDot = "_lT _lS";
|
|
127
|
+
//#endregion
|
|
128
|
+
//#region src/tags/port-chip.css.ts
|
|
129
|
+
var port = "_no _v _lK";
|
|
130
|
+
var open = "_j4 _4";
|
|
131
|
+
var action = "_j8 _br _m";
|
|
132
|
+
var toggle = "_ea _P";
|
|
133
|
+
var fold = "_eb _dP";
|
|
134
|
+
var item = "_ki _4";
|
|
135
|
+
var menu = "_lB _cp _bw";
|
|
136
|
+
var menuItem = "_lD _4";
|
|
137
|
+
var findBtn$1 = "_iX _h_ _bp _m";
|
|
138
|
+
var tool = "_h_ _bp _m";
|
|
139
|
+
var pop$1 = "_kE _cp _bw";
|
|
140
|
+
var fileFilter = "_nn _o";
|
|
141
|
+
var findInput = "_eG _o";
|
|
142
|
+
var keybarIconBtn = "_eP _br _m";
|
|
143
|
+
var repoTitle = "_mi _L";
|
|
144
|
+
var input = "_ct _o";
|
|
145
|
+
var group = "_cw _P";
|
|
146
|
+
var hint$1 = "_mf _9 _M";
|
|
147
|
+
var sheetDir = "_mI _by";
|
|
148
|
+
var upBtn = "_ir _bp _m";
|
|
149
|
+
var findBtn = "_iv _h_ _bp _m";
|
|
150
|
+
var goBtn = "_iw _h_ _bp _m";
|
|
151
|
+
var note = "_kA _bh";
|
|
152
|
+
//#endregion
|
|
153
|
+
//#region src/tags/manage-workspace.css.ts
|
|
154
|
+
var procCmd = "_hY _d1";
|
|
155
|
+
var factCopy = "_h5 _br _m";
|
|
156
|
+
var resultRow = "_kJ _4";
|
|
157
|
+
var resultBranch = "_kK _d6 _bi _bh _bo _m";
|
|
158
|
+
var urlAction = "_kL _d6 _bi _bh _d7";
|
|
159
|
+
var curRow = "_g6 _dV";
|
|
160
|
+
//#endregion
|
|
161
|
+
//#region src/tags/join-dialog.css.ts
|
|
162
|
+
var dlg = "_kq _bG";
|
|
163
|
+
var hint = "_kr _bh";
|
|
164
|
+
var kbtn = "_cP _bq _m";
|
|
165
|
+
var repeat = "_cS _cR";
|
|
166
|
+
var dpadUser = "_cV _cR";
|
|
167
|
+
var dpadEsc = "_cW _cR";
|
|
168
|
+
//#endregion
|
|
169
|
+
export { field$2 as $, item as A, tone as At, wsBtn as B, keybarIconBtn as C, glyphBadgeNum as Ct, findBtn$1 as D, inputLg as Dt, tool as E, iconBtnXs as Et, port as F, settingsDot as G, sessionPopBtn as H, prChip as I, promptDlg as J, glance as K, prDot as L, toggle as M, usageInk as Mt, action as N, menu as O, phaseIcon as Ot, open as P, addTile as Q, readyChip as R, findInput as S, chipBtn as St, pop$1 as T, iconBtnRow as Tt, iconBtn as U, sessionPop as V, notifyBtn as W, themeSeg as X, checkList as Y, detailsToggle as Z, sheetDir as _, iconSize as _t, dlg as a, name$4 as at, input as b, btnLg as bt, resultBranch as c, spinner as ct, factCopy as d, list$3 as dt, key$1 as et, procCmd as f, metaChip as ft, upBtn as g, color as gt, goBtn as h, toastTitle as ht, repeat as i, desc$1 as it, fold as j, usageFill as jt, menuItem as k, prTone as kt, resultRow as l, usageNote as lt, findBtn as m, toastKind as mt, dpadUser as n, labelField as nt, hint as o, toolLead as ot, note as p, agentRow as pt, item$1 as q, kbtn as r, addDlg as rt, curRow as s, pop$2 as st, dpadEsc as t, keyField as tt, urlAction as u, sectionCount as ut, hint$1 as v, sans as vt, fileFilter as w, iconBtnLg as wt, repoTitle as x, btnSm as xt, group as y, tocDot as yt, rowIcon as z };
|