@dylanpiercey/work 0.2.38 → 0.2.40

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.
Files changed (492) hide show
  1. package/README.md +9 -6
  2. package/bin/cli/_target.mjs +45 -10
  3. package/bin/cli/notify.mjs +1 -1
  4. package/bin/cli/open.mjs +1 -1
  5. package/bin/work.mjs +16 -6
  6. package/dist/{_CHS_YMK8.js → _BCA_8m9y.js} +72 -72
  7. package/dist/{_Ca_OVNVt.js → _D4k_lVuT.js} +1 -1
  8. package/dist/_DDikKLG_.js +2 -0
  9. package/dist/{_C65JTOIi.js → _DuADlWik.js} +42 -5
  10. package/dist/_ENqPMLjD.js +2 -0
  11. package/dist/index.mjs +664 -610
  12. package/dist/public/assets/{_Dx4SX3Ca.js → _-xt24cB6.js} +1 -1
  13. package/dist/public/assets/_-xt24cB6.js.br +0 -0
  14. package/dist/public/assets/_2QPoK4uC.js +1 -0
  15. package/dist/public/assets/{_C-pdEl9H.js → _3H-FzM6j.js} +1 -1
  16. package/dist/public/assets/_3H-FzM6j.js.br +0 -0
  17. package/dist/public/assets/_4M7qpSou.js +1 -0
  18. package/dist/public/assets/{_C-AAYVXm.js → _5oPLlqRj.js} +6 -6
  19. package/dist/public/assets/_5oPLlqRj.js.br +0 -0
  20. package/dist/public/assets/_65v84Eey.js +1 -0
  21. package/dist/public/assets/{_D8O5eIU5.js → _6Hx8zr_s.js} +1 -1
  22. package/dist/public/assets/_6Hx8zr_s.js.br +0 -0
  23. package/dist/public/assets/{_CAdCDwUM.js → _9UY3GGDx.js} +1 -1
  24. package/dist/public/assets/_9UY3GGDx.js.br +0 -0
  25. package/dist/public/assets/{_BvNeAIAw.js → _AIWDaFbX.js} +1 -1
  26. package/dist/public/assets/_AIWDaFbX.js.br +0 -0
  27. package/dist/public/assets/{_CcwtHAX8.js → _AXQAcwHe.js} +1 -1
  28. package/dist/public/assets/_AXQAcwHe.js.br +0 -0
  29. package/dist/public/assets/_B10_Ccu5.js +1 -0
  30. package/dist/public/assets/_B3pMrdu9.js +1 -0
  31. package/dist/public/assets/{_CVwX3PKI.js → _B4QEUVUx.js} +1 -1
  32. package/dist/public/assets/_B4QEUVUx.js.br +0 -0
  33. package/dist/public/assets/_B8LaleYJ.js +1 -0
  34. package/dist/public/assets/{_BwpfLn81.js → _B9HOtQFK.js} +1 -1
  35. package/dist/public/assets/_B9HOtQFK.js.br +0 -0
  36. package/dist/public/assets/{_T-WXenDh.js → _B9t5z7OE.js} +1 -1
  37. package/dist/public/assets/_B9t5z7OE.js.br +0 -0
  38. package/dist/public/assets/_BAZd2F0T.js +1 -0
  39. package/dist/public/assets/{_CqlfuhaH.js → _BEH9W5rk.js} +1 -1
  40. package/dist/public/assets/_BEH9W5rk.js.br +0 -0
  41. package/dist/public/assets/{_B2JaiOzM.js → _BL2JDtIA.js} +1 -1
  42. package/dist/public/assets/_BL2JDtIA.js.br +0 -0
  43. package/dist/public/assets/_BLvWxq71.js +1 -0
  44. package/dist/public/assets/_BNRbbSIn.js +1 -0
  45. package/dist/public/assets/{_DbB4cL-n.js → _BNvuxbm-.js} +1 -1
  46. package/dist/public/assets/_BNvuxbm-.js.br +0 -0
  47. package/dist/public/assets/{_BcFZRZJL.js → _BOQKc7E9.js} +1 -1
  48. package/dist/public/assets/_BOQKc7E9.js.br +0 -0
  49. package/dist/public/assets/{_DRyYnmyt.js → _BPfDSl_X.js} +1 -1
  50. package/dist/public/assets/_BPfDSl_X.js.br +0 -0
  51. package/dist/public/assets/_BTRee_2x.js +1 -0
  52. package/dist/public/assets/{_D1haaDwQ.js → _BU2KJ55d.js} +1 -1
  53. package/dist/public/assets/_BU2KJ55d.js.br +0 -0
  54. package/dist/public/assets/{_Rv15Vzpw.js → _BV0bkNYW.js} +1 -1
  55. package/dist/public/assets/_BV0bkNYW.js.br +0 -0
  56. package/dist/public/assets/_BV_3prW2.js +1 -0
  57. package/dist/public/assets/{_CKUFfLpm.js → _BX6jp_wv.js} +9 -9
  58. package/dist/public/assets/_BX6jp_wv.js.br +0 -0
  59. package/dist/public/assets/_BY83kySA.js +1 -0
  60. package/dist/public/assets/_B_c67c-8.js +1 -0
  61. package/dist/public/assets/_Bb2sDJvS.js +1 -0
  62. package/dist/public/assets/_BfUsF1rX.js +1 -0
  63. package/dist/public/assets/{_BsdqqTPW.js → _Bfc9kc3-.js} +1 -1
  64. package/dist/public/assets/{_CLdzbsrz.js → _Bfgao9fC.js} +1 -1
  65. package/dist/public/assets/_Bfgao9fC.js.br +0 -0
  66. package/dist/public/assets/{_CaqL11yy.js → _BfvriceI.js} +1 -1
  67. package/dist/public/assets/_BfvriceI.js.br +0 -0
  68. package/dist/public/assets/_Bg74ltIM.js +1 -0
  69. package/dist/public/assets/{_D_kJsjwI.js → _Bho4pN5V.js} +1 -1
  70. package/dist/public/assets/_Bho4pN5V.js.br +0 -0
  71. package/dist/public/assets/{_BMEEjjfv.js → _BiHefuKV.js} +1 -1
  72. package/dist/public/assets/_BiHefuKV.js.br +0 -0
  73. package/dist/public/assets/_Bkj1_Dr2.js +1 -0
  74. package/dist/public/assets/{_WFiGVWwd.js → _Bko_1adv.js} +1 -1
  75. package/dist/public/assets/_Bko_1adv.js.br +0 -0
  76. package/dist/public/assets/_BlWGIxyz.js +1 -0
  77. package/dist/public/assets/{_-FoaibiG.js → _BldFprQa.js} +1 -1
  78. package/dist/public/assets/_BldFprQa.js.br +0 -0
  79. package/dist/public/assets/{_D3MexB9v.js → _BmFtbSox.js} +1 -1
  80. package/dist/public/assets/_BmFtbSox.js.br +0 -0
  81. package/dist/public/assets/_Bppa_Ryd.js +1 -0
  82. package/dist/public/assets/{_Dz7OHR2k.js → _Bt3V8dJp.js} +1 -1
  83. package/dist/public/assets/_Bt3V8dJp.js.br +0 -0
  84. package/dist/public/assets/{_DOtLi2ws.js → _BtlNg4wH.js} +1 -1
  85. package/dist/public/assets/_BtlNg4wH.js.br +0 -0
  86. package/dist/public/assets/{_BTe2hdFU.js → _Bvb8k3Ut.js} +1 -1
  87. package/dist/public/assets/_Bvb8k3Ut.js.br +0 -0
  88. package/dist/public/assets/{_CDCKmwwE.js → _ByxHsHjq.js} +1 -1
  89. package/dist/public/assets/_ByxHsHjq.js.br +0 -0
  90. package/dist/public/assets/{_DIsl6-x7.js → _C-ztk4Gt.js} +1 -1
  91. package/dist/public/assets/_C-ztk4Gt.js.br +0 -0
  92. package/dist/public/assets/{_DO2ZhOAY.js → _C1MVprDU.js} +1 -1
  93. package/dist/public/assets/_C1MVprDU.js.br +0 -0
  94. package/dist/public/assets/_C2KbYoEP.js +1 -0
  95. package/dist/public/assets/_C2lbzaH3.js +1 -0
  96. package/dist/public/assets/{_C_EUl_jj.js → _C3U16pxk.js} +1 -1
  97. package/dist/public/assets/_C3U16pxk.js.br +0 -0
  98. package/dist/public/assets/_C3uu-DK8.js +1 -0
  99. package/dist/public/assets/{_CgCRY6Wr.js → _C68OfhhO.js} +1 -1
  100. package/dist/public/assets/_C68OfhhO.js.br +0 -0
  101. package/dist/public/assets/{_CPEbH77l.js → _C7TtpzAW.js} +1 -1
  102. package/dist/public/assets/_C7TtpzAW.js.br +0 -0
  103. package/dist/public/assets/{_DgvY2m9A.js → _C7raUThi.js} +1 -1
  104. package/dist/public/assets/_C7raUThi.js.br +0 -0
  105. package/dist/public/assets/{_CE8BJSRE.js → _C9HotwgZ.js} +1 -1
  106. package/dist/public/assets/_C9HotwgZ.js.br +0 -0
  107. package/dist/public/assets/{_BMQX18KA.js → _CAJCZOtv.js} +1 -1
  108. package/dist/public/assets/_CAJCZOtv.js.br +0 -0
  109. package/dist/public/assets/_CB8zO5nz.js +1 -0
  110. package/dist/public/assets/_CBa8NDHo.js +1 -0
  111. package/dist/public/assets/_CFaOKXvN.js +1 -0
  112. package/dist/public/assets/{_Dp6J_KbS.js → _CGnaF6Sm.js} +1 -1
  113. package/dist/public/assets/_CGnaF6Sm.js.br +0 -0
  114. package/dist/public/assets/{_D4deJ4x0.js → _CJnPM9JD.js} +4 -4
  115. package/dist/public/assets/_CJnPM9JD.js.br +0 -0
  116. package/dist/public/assets/_CKBsVYsF.js +1 -0
  117. package/dist/public/assets/{_u39G7Hfi.js → _CP72FM8v.js} +2 -2
  118. package/dist/public/assets/_CP72FM8v.js.br +0 -0
  119. package/dist/public/assets/_CT-XMZP-.js +1 -0
  120. package/dist/public/assets/_CTJaX-zT.js +1 -0
  121. package/dist/public/assets/_CUJRs0zs.js +1 -0
  122. package/dist/public/assets/{_CllXob1U.js → _CY4SGKEk.js} +1 -1
  123. package/dist/public/assets/_CY4SGKEk.js.br +0 -0
  124. package/dist/public/assets/{_BhKdX-rj.js → _CY_Gyv6m.js} +1 -1
  125. package/dist/public/assets/_CY_Gyv6m.js.br +0 -0
  126. package/dist/public/assets/_C_AN7JsF.js +1 -0
  127. package/dist/public/assets/{_CfAMRtWv.js → _C_koIK_g.js} +1 -1
  128. package/dist/public/assets/_C_koIK_g.js.br +0 -0
  129. package/dist/public/assets/{_BH68xkbP.js → _Cbc0dwer.js} +1 -1
  130. package/dist/public/assets/_Cbc0dwer.js.br +0 -0
  131. package/dist/public/assets/{_DGRvzDB6.js → _CdixnSBK.js} +1 -1
  132. package/dist/public/assets/_CdplgzT2.js +1 -0
  133. package/dist/public/assets/{_DGYxrtBF.js → _CftTyjd8.js} +1 -1
  134. package/dist/public/assets/{_DGYxrtBF.js.br → _CftTyjd8.js.br} +0 -0
  135. package/dist/public/assets/_CgG2WqLI.js +1 -0
  136. package/dist/public/assets/{_DSI0vwsb.js → _Cgv4Cy7Z.js} +1 -1
  137. package/dist/public/assets/_Cgv4Cy7Z.js.br +0 -0
  138. package/dist/public/assets/{_myA0xLli.js → _Ch3oeOpY.js} +1 -1
  139. package/dist/public/assets/_Ch3oeOpY.js.br +0 -0
  140. package/dist/public/assets/{_D05YE_WT.js → _Ck-NcBor.js} +1 -1
  141. package/dist/public/assets/_Ck-NcBor.js.br +0 -0
  142. package/dist/public/assets/{_DOD7OVQl.js → _ClA7jm5y.js} +1 -1
  143. package/dist/public/assets/_ClA7jm5y.js.br +0 -0
  144. package/dist/public/assets/{_CROiBVo-.js → _ClOuduDB.js} +1 -1
  145. package/dist/public/assets/_ClOuduDB.js.br +0 -0
  146. package/dist/public/assets/{_CWespSd8.js → _Cm5UUk-8.js} +1 -1
  147. package/dist/public/assets/_Cm5UUk-8.js.br +0 -0
  148. package/dist/public/assets/{_CGsyxRkh.js → _CmjRnFwT.js} +1 -1
  149. package/dist/public/assets/_CmjRnFwT.js.br +0 -0
  150. package/dist/public/assets/_Cn0ezFFg.js +16 -0
  151. package/dist/public/assets/_Cn0ezFFg.js.br +0 -0
  152. package/dist/public/assets/{_g1-FS7Df.js → _CnGcp5Lt.js} +1 -1
  153. package/dist/public/assets/_CnGcp5Lt.js.br +0 -0
  154. package/dist/public/assets/_CnU_a5Pz.js +1 -0
  155. package/dist/public/assets/_CnVtRfoh.js +1 -0
  156. package/dist/public/assets/_CpTFnc4O.js +1 -0
  157. package/dist/public/assets/{_vow_06MT.js → _CpVSVQZP.js} +1 -1
  158. package/dist/public/assets/_CpVSVQZP.js.br +0 -0
  159. package/dist/public/assets/{_BoBCpx2o.js → _CqC6oyCs.js} +1 -1
  160. package/dist/public/assets/_CqC6oyCs.js.br +0 -0
  161. package/dist/public/assets/{_Dw3MtUmB.js → _CqqBjspX.js} +1 -1
  162. package/dist/public/assets/_CqqBjspX.js.br +0 -0
  163. package/dist/public/assets/{_CRVsJE1P.js → _CsWHkvwT.js} +1 -1
  164. package/dist/public/assets/_CsWHkvwT.js.br +0 -0
  165. package/dist/public/assets/_CwMrUy9h.js +1 -0
  166. package/dist/public/assets/{_DDBLZL8c.js → _D-D2Sca2.js} +1 -1
  167. package/dist/public/assets/_D-D2Sca2.js.br +0 -0
  168. package/dist/public/assets/{_DRJPSMMR.js → _D-L-5YAM.js} +1 -1
  169. package/dist/public/assets/_D-L-5YAM.js.br +0 -0
  170. package/dist/public/assets/{_C5SvBtrC.js → _D0DIamBR.js} +1 -1
  171. package/dist/public/assets/_D0DIamBR.js.br +0 -0
  172. package/dist/public/assets/{_Bz255SNE.js → _D3r2RL4t.js} +1 -1
  173. package/dist/public/assets/_D3r2RL4t.js.br +0 -0
  174. package/dist/public/assets/_D42DSreQ.js +1 -0
  175. package/dist/public/assets/_D7H9w6Py.js +1 -0
  176. package/dist/public/assets/{_BzgCR7_b.js → _D8trxBDF.js} +1 -1
  177. package/dist/public/assets/_D8trxBDF.js.br +0 -0
  178. package/dist/public/assets/_DCnjcJpY.js +1 -0
  179. package/dist/public/assets/_DD-VwS7y.js +1 -0
  180. package/dist/public/assets/_DD6yw760.js +1 -0
  181. package/dist/public/assets/_DEHXzf1H.js +1 -0
  182. package/dist/public/assets/{_BJZAqTIS.js → _DHK4J_yg.js} +1 -1
  183. package/dist/public/assets/_DHK4J_yg.js.br +0 -0
  184. package/dist/public/assets/{_addZLFo9.js → _DIYoftFu.js} +1 -1
  185. package/dist/public/assets/_DIYoftFu.js.br +0 -0
  186. package/dist/public/assets/{_C2_MGoE2.js → _DKUf5cGa.js} +2 -2
  187. package/dist/public/assets/_DKUf5cGa.js.br +0 -0
  188. package/dist/public/assets/{_CPUrkvFV.js → _DN2bhuX5.js} +1 -1
  189. package/dist/public/assets/_DN2bhuX5.js.br +0 -0
  190. package/dist/public/assets/_DNJUSdOk.js +1 -0
  191. package/dist/public/assets/{_CYm3kPXD.js → _DNy2MoKM.js} +1 -1
  192. package/dist/public/assets/_DNy2MoKM.js.br +0 -0
  193. package/dist/public/assets/_DQIrgN4k.js +1 -0
  194. package/dist/public/assets/{_1KVFqvou.js → _DQRSCk2F.js} +1 -1
  195. package/dist/public/assets/_DQRSCk2F.js.br +0 -0
  196. package/dist/public/assets/{_Bnl6Usl6.js → _DRvfajkC.js} +1 -1
  197. package/dist/public/assets/_DRvfajkC.js.br +0 -0
  198. package/dist/public/assets/{_CC2LRwIy.js → _DV2bAFNg.js} +1 -1
  199. package/dist/public/assets/_DV2bAFNg.js.br +0 -0
  200. package/dist/public/assets/{_NDErTU55.js → _DVBAwKVR.js} +1 -1
  201. package/dist/public/assets/_DVBAwKVR.js.br +0 -0
  202. package/dist/public/assets/{_CQYcb9FU.js → _DVMQyUQJ.js} +1 -1
  203. package/dist/public/assets/_DVMQyUQJ.js.br +0 -0
  204. package/dist/public/assets/_DVp1-q02.js +1 -0
  205. package/dist/public/assets/{_ag0PzDtm.js → _DW8mxdKH.js} +1 -1
  206. package/dist/public/assets/_DW8mxdKH.js.br +0 -0
  207. package/dist/public/assets/_DWRN9t29.js +1 -0
  208. package/dist/public/assets/_DWT2_f5R.js +1 -0
  209. package/dist/public/assets/_DZtGWb7t.js +1 -0
  210. package/dist/public/assets/{_BgD4m9QA.js → _DZyptekm.js} +1 -1
  211. package/dist/public/assets/_Da09wu4L.js +1 -0
  212. package/dist/public/assets/{_Dg7kepAd.js → _Dcao7-GN.js} +1 -1
  213. package/dist/public/assets/_Dcao7-GN.js.br +0 -0
  214. package/dist/public/assets/_Ddnd1yO1.js +1 -0
  215. package/dist/public/assets/_DgrU06P7.js +1 -0
  216. package/dist/public/assets/{_BnWaOo8-.js → _DjX-J-5G.js} +1 -1
  217. package/dist/public/assets/_DjX-J-5G.js.br +0 -0
  218. package/dist/public/assets/_DjovOG5I.js +1 -0
  219. package/dist/public/assets/{_ji7mS_dq.js → _Dkv0yw2w.js} +1 -1
  220. package/dist/public/assets/_Dkv0yw2w.js.br +0 -0
  221. package/dist/public/assets/{_CM5IkGwP.js → _DmWMoSv1.js} +1 -1
  222. package/dist/public/assets/_DmWMoSv1.js.br +0 -0
  223. package/dist/public/assets/_Dm_3kSDD.js +1 -0
  224. package/dist/public/assets/_Do8dsKhP.js +1 -0
  225. package/dist/public/assets/_DowTc_NG.js +1 -0
  226. package/dist/public/assets/_DpQoMAZO.js +1 -0
  227. package/dist/public/assets/_DpzJFlTs.js +1 -0
  228. package/dist/public/assets/_Ds0FiPaF.js +1 -0
  229. package/dist/public/assets/{_C3DRxKJ1.js → _DthwYqUP.js} +1 -1
  230. package/dist/public/assets/_DthwYqUP.js.br +0 -0
  231. package/dist/public/assets/{_Enp2Gr5h.js → _Dtx23QI5.js} +1 -1
  232. package/dist/public/assets/_Dtx23QI5.js.br +0 -0
  233. package/dist/public/assets/{_BEnaZa0j.js → _DuCqBf6Y.js} +1 -1
  234. package/dist/public/assets/_DuCqBf6Y.js.br +0 -0
  235. package/dist/public/assets/{_DVRH2CYK.js → _DvArUzc0.js} +1 -1
  236. package/dist/public/assets/{__eAclg0z.js → _Dx-9-Sy_.js} +1 -1
  237. package/dist/public/assets/_Dx-9-Sy_.js.br +0 -0
  238. package/dist/public/assets/_Dx-xUggM.js +1 -0
  239. package/dist/public/assets/_Dx61rucB.js +1 -0
  240. package/dist/public/assets/_DzeI6vGo.js +1 -0
  241. package/dist/public/assets/{_CVFwOHgX.js → _FMOctYMW.js} +1 -1
  242. package/dist/public/assets/_FMOctYMW.js.br +0 -0
  243. package/dist/public/assets/_IMv1gu0W.js +1 -0
  244. package/dist/public/assets/{_BXXJk9NS.js → _Lgyuucwe.js} +1 -1
  245. package/dist/public/assets/_Lgyuucwe.js.br +0 -0
  246. package/dist/public/assets/_OfarPqMF.js +1 -0
  247. package/dist/public/assets/_PNG0OnBn.js +1 -0
  248. package/dist/public/assets/_Pp1od959.js +1 -0
  249. package/dist/public/assets/{_CYrWMAX2.js → _QSufHoZj.js} +1 -1
  250. package/dist/public/assets/_QSufHoZj.js.br +0 -0
  251. package/dist/public/assets/_Srj1J866.js +1 -0
  252. package/dist/public/assets/{_06pjZa4f.js → _SrvPETNL.js} +1 -1
  253. package/dist/public/assets/_SrvPETNL.js.br +0 -0
  254. package/dist/public/assets/_UZz8tEtA.js +1 -0
  255. package/dist/public/assets/{_Eneb6D-q.js → _Uv9A08DD.js} +1 -1
  256. package/dist/public/assets/_Uv9A08DD.js.br +0 -0
  257. package/dist/public/assets/_VlRjk16k.js +1 -0
  258. package/dist/public/assets/{_Di0HUCie.js → _YiTz3Wtq.js} +1 -1
  259. package/dist/public/assets/_YiTz3Wtq.js.br +0 -0
  260. package/dist/public/assets/_Yk8d7pzu.js +1 -0
  261. package/dist/public/assets/{_DysbZv8j.js → __yFiQHxx.js} +1 -1
  262. package/dist/public/assets/__yFiQHxx.js.br +0 -0
  263. package/dist/public/assets/_aJUtKbcc.js +1 -0
  264. package/dist/public/assets/{_DzaAUrO6.js → _aKw_G6JV.js} +1 -1
  265. package/dist/public/assets/_aKw_G6JV.js.br +0 -0
  266. package/dist/public/assets/{_PNcL1Txq.js → _d2HSnncX.js} +1 -1
  267. package/dist/public/assets/_i-8Qs6z9.js +1 -0
  268. package/dist/public/assets/_iPKBMcV3.js +1 -0
  269. package/dist/public/assets/{_dzQZD9Oh.js → _iYju-q2Q.js} +1 -1
  270. package/dist/public/assets/_l2ElItM2.js +1 -0
  271. package/dist/public/assets/_mJQTVGZ7.js +1 -0
  272. package/dist/public/assets/_miY5dAU1.js +1 -0
  273. package/dist/public/assets/{_29z_l4I7.js → _n5A3k8ml.js} +1 -1
  274. package/dist/public/assets/_n5A3k8ml.js.br +0 -0
  275. package/dist/public/assets/_o6O_aS5V.js +1 -0
  276. package/dist/public/assets/_pJ03YFJb.js +1 -0
  277. package/dist/public/assets/{_BDksixbx.js → _so3EBQ6I.js} +1 -1
  278. package/dist/public/assets/_so3EBQ6I.js.br +0 -0
  279. package/dist/public/assets/_tJJzLn1F.js +1 -0
  280. package/dist/public/assets/_tvMsb8o0.js +1 -0
  281. package/dist/public/assets/_u4tUSte0.js +1 -0
  282. package/dist/public/assets/{_CW27Fq-q.js → _vS7eEdD2.js} +5 -5
  283. package/dist/public/assets/_vS7eEdD2.js.br +0 -0
  284. package/dist/public/assets/{_WiZYGw70.js → _wTrAVeP2.js} +1 -1
  285. package/dist/public/assets/_wTrAVeP2.js.br +0 -0
  286. package/dist/public/assets/{_DtIBeeFy.js → _xGyy2F1F.js} +1 -1
  287. package/dist/public/assets/_xGyy2F1F.js.br +0 -0
  288. package/dist/public/assets/files-view-CQ8lPxty.js +2 -0
  289. package/dist/public/assets/manage-workspace-BsYbS9A2.js +2 -0
  290. package/dist/public/assets/new-AtUYpCeI.js +1 -0
  291. package/dist/public/assets/new-workspace-BsRBtT71.js +2 -0
  292. package/dist/public/assets/review-view-BkNNP2d-.js +2 -0
  293. package/dist/public/assets/settings-AtUYpCeI.js +1 -0
  294. package/dist/public/assets/settings-page-1J8x4J9R.js +2 -0
  295. package/dist/public/assets/{styles-Bj8QV6wc.css → styles-BCjsk_jt.css} +1 -1
  296. package/dist/public/assets/styles-BCjsk_jt.css.br +0 -0
  297. package/dist/public/assets/w-AtUYpCeI.js +1 -0
  298. package/dist/public/assets/w._-AtUYpCeI.js +1 -0
  299. package/dist/public/assets/w._-BR2iS1Cp.js +1 -0
  300. package/dist/public/assets/w._-Dk-zPONB.js +1 -0
  301. package/lib/setup/firewall.d.mts +14 -0
  302. package/lib/setup/firewall.mjs +33 -2
  303. package/package.json +1 -1
  304. package/dist/_B2zjDgtj.js +0 -2
  305. package/dist/_o6JmtS1w.js +0 -2
  306. package/dist/public/assets/_-FoaibiG.js.br +0 -0
  307. package/dist/public/assets/_-dEw8WLo.js +0 -1
  308. package/dist/public/assets/_05c_9Xca.js +0 -1
  309. package/dist/public/assets/_06pjZa4f.js.br +0 -0
  310. package/dist/public/assets/_1KVFqvou.js.br +0 -0
  311. package/dist/public/assets/_29z_l4I7.js.br +0 -0
  312. package/dist/public/assets/_2C9fIfEp.js +0 -1
  313. package/dist/public/assets/_2SgMjfmD.js +0 -1
  314. package/dist/public/assets/_7jPAf-Xp.js +0 -1
  315. package/dist/public/assets/_9o5zFDjX.js +0 -1
  316. package/dist/public/assets/_B-Y2fjUq.js +0 -1
  317. package/dist/public/assets/_B0-Z8x64.js +0 -1
  318. package/dist/public/assets/_B2JaiOzM.js.br +0 -0
  319. package/dist/public/assets/_B6SMDIAY.js +0 -1
  320. package/dist/public/assets/_B8Uovtij.js +0 -1
  321. package/dist/public/assets/_BB6LbdxF.js +0 -1
  322. package/dist/public/assets/_BDksixbx.js.br +0 -0
  323. package/dist/public/assets/_BEnaZa0j.js.br +0 -0
  324. package/dist/public/assets/_BH68xkbP.js.br +0 -0
  325. package/dist/public/assets/_BI4yi1wm.js +0 -1
  326. package/dist/public/assets/_BJZAqTIS.js.br +0 -0
  327. package/dist/public/assets/_BMEEjjfv.js.br +0 -0
  328. package/dist/public/assets/_BMQX18KA.js.br +0 -0
  329. package/dist/public/assets/_BQPbdntK.js +0 -1
  330. package/dist/public/assets/_BQU9g_Zx.js +0 -1
  331. package/dist/public/assets/_BRyiRgtA.js +0 -1
  332. package/dist/public/assets/_BSppisAf.js +0 -1
  333. package/dist/public/assets/_BTe2hdFU.js.br +0 -0
  334. package/dist/public/assets/_BVyIUxnT.js +0 -1
  335. package/dist/public/assets/_BXXJk9NS.js.br +0 -0
  336. package/dist/public/assets/_BcFZRZJL.js.br +0 -0
  337. package/dist/public/assets/_BfuhALf0.js +0 -1
  338. package/dist/public/assets/_BgaZmQnf.js +0 -1
  339. package/dist/public/assets/_BhKdX-rj.js.br +0 -0
  340. package/dist/public/assets/_BiZJo433.js +0 -1
  341. package/dist/public/assets/_BjFAa_QC.js +0 -1
  342. package/dist/public/assets/_BldoGM89.js +0 -1
  343. package/dist/public/assets/_BnWaOo8-.js.br +0 -0
  344. package/dist/public/assets/_Bnl6Usl6.js.br +0 -0
  345. package/dist/public/assets/_BoBCpx2o.js.br +0 -0
  346. package/dist/public/assets/_BoBH0Btd.js +0 -1
  347. package/dist/public/assets/_BpGoVByg.js +0 -1
  348. package/dist/public/assets/_Bpv5KbFA.js +0 -1
  349. package/dist/public/assets/_BtrpLVUw.js +0 -1
  350. package/dist/public/assets/_Bv4nOvz-.js +0 -1
  351. package/dist/public/assets/_BvNeAIAw.js.br +0 -0
  352. package/dist/public/assets/_BwpfLn81.js.br +0 -0
  353. package/dist/public/assets/_By8A2kLR.js +0 -1
  354. package/dist/public/assets/_Bz255SNE.js.br +0 -0
  355. package/dist/public/assets/_BzgCR7_b.js.br +0 -0
  356. package/dist/public/assets/_C-AAYVXm.js.br +0 -0
  357. package/dist/public/assets/_C-Kh2F99.js +0 -1
  358. package/dist/public/assets/_C-pdEl9H.js.br +0 -0
  359. package/dist/public/assets/_C0BhogaT.js +0 -1
  360. package/dist/public/assets/_C1Tn2FN6.js +0 -1
  361. package/dist/public/assets/_C2_MGoE2.js.br +0 -0
  362. package/dist/public/assets/_C3DRxKJ1.js.br +0 -0
  363. package/dist/public/assets/_C5SvBtrC.js.br +0 -0
  364. package/dist/public/assets/_C94-23iW.js +0 -1
  365. package/dist/public/assets/_CAXc9HNe.js +0 -1
  366. package/dist/public/assets/_CAdCDwUM.js.br +0 -0
  367. package/dist/public/assets/_CAvhSGfs.js +0 -1
  368. package/dist/public/assets/_CB1rEIOF.js +0 -1
  369. package/dist/public/assets/_CC2LRwIy.js.br +0 -0
  370. package/dist/public/assets/_CCrdAHBd.js +0 -1
  371. package/dist/public/assets/_CDCKmwwE.js.br +0 -0
  372. package/dist/public/assets/_CDTe63n7.js +0 -1
  373. package/dist/public/assets/_CE8BJSRE.js.br +0 -0
  374. package/dist/public/assets/_CFtq9VUB.js +0 -1
  375. package/dist/public/assets/_CGsyxRkh.js.br +0 -0
  376. package/dist/public/assets/_CI3Y4hpL.js +0 -1
  377. package/dist/public/assets/_CKUFfLpm.js.br +0 -0
  378. package/dist/public/assets/_CLdzbsrz.js.br +0 -0
  379. package/dist/public/assets/_CM5IkGwP.js.br +0 -0
  380. package/dist/public/assets/_CMWGulTO.js +0 -1
  381. package/dist/public/assets/_COjiPyog.js +0 -1
  382. package/dist/public/assets/_CPEbH77l.js.br +0 -0
  383. package/dist/public/assets/_CPUrkvFV.js.br +0 -0
  384. package/dist/public/assets/_CPeBTb0k.js +0 -1
  385. package/dist/public/assets/_CQYcb9FU.js.br +0 -0
  386. package/dist/public/assets/_CQrOi1M9.js +0 -1
  387. package/dist/public/assets/_CR9hzoTZ.js +0 -1
  388. package/dist/public/assets/_CROiBVo-.js.br +0 -0
  389. package/dist/public/assets/_CRVsJE1P.js.br +0 -0
  390. package/dist/public/assets/_CVFwOHgX.js.br +0 -0
  391. package/dist/public/assets/_CVwX3PKI.js.br +0 -0
  392. package/dist/public/assets/_CW27Fq-q.js.br +0 -0
  393. package/dist/public/assets/_CWespSd8.js.br +0 -0
  394. package/dist/public/assets/_CXqsJwto.js +0 -1
  395. package/dist/public/assets/_CYm3kPXD.js.br +0 -0
  396. package/dist/public/assets/_CYrWMAX2.js.br +0 -0
  397. package/dist/public/assets/_C_1Sjfxy.js +0 -1
  398. package/dist/public/assets/_C_EUl_jj.js.br +0 -0
  399. package/dist/public/assets/_CaDqBEaB.js +0 -1
  400. package/dist/public/assets/_CaqL11yy.js.br +0 -0
  401. package/dist/public/assets/_CbTWBJSy.js +0 -1
  402. package/dist/public/assets/_CbVL6eDh.js +0 -1
  403. package/dist/public/assets/_CcwtHAX8.js.br +0 -0
  404. package/dist/public/assets/_CfAMRtWv.js.br +0 -0
  405. package/dist/public/assets/_CgCRY6Wr.js.br +0 -0
  406. package/dist/public/assets/_CllXob1U.js.br +0 -0
  407. package/dist/public/assets/_CqlfuhaH.js.br +0 -0
  408. package/dist/public/assets/_CqpD5ZBq.js +0 -1
  409. package/dist/public/assets/_CsQMoSpn.js +0 -1
  410. package/dist/public/assets/_CwiwQRjf.js +0 -1
  411. package/dist/public/assets/_D05YE_WT.js.br +0 -0
  412. package/dist/public/assets/_D0NqmTa9.js +0 -1
  413. package/dist/public/assets/_D1Fm56Z4.js +0 -1
  414. package/dist/public/assets/_D1haaDwQ.js.br +0 -0
  415. package/dist/public/assets/_D3MexB9v.js.br +0 -0
  416. package/dist/public/assets/_D43OtyGb.js +0 -1
  417. package/dist/public/assets/_D4deJ4x0.js.br +0 -0
  418. package/dist/public/assets/_D6WtkDHI.js +0 -1
  419. package/dist/public/assets/_D8O5eIU5.js.br +0 -0
  420. package/dist/public/assets/_D9QPQSLZ.js +0 -1
  421. package/dist/public/assets/_D9Y03-Sz.js +0 -1
  422. package/dist/public/assets/_DDBLZL8c.js.br +0 -0
  423. package/dist/public/assets/_DHMXQNGD.js +0 -1
  424. package/dist/public/assets/_DIsl6-x7.js.br +0 -0
  425. package/dist/public/assets/_DKrJ3oJX.js +0 -16
  426. package/dist/public/assets/_DKrJ3oJX.js.br +0 -0
  427. package/dist/public/assets/_DO2ZhOAY.js.br +0 -0
  428. package/dist/public/assets/_DOD7OVQl.js.br +0 -0
  429. package/dist/public/assets/_DOtLi2ws.js.br +0 -0
  430. package/dist/public/assets/_DQObzbDk.js +0 -1
  431. package/dist/public/assets/_DRJPSMMR.js.br +0 -0
  432. package/dist/public/assets/_DRyYnmyt.js.br +0 -0
  433. package/dist/public/assets/_DSI0vwsb.js.br +0 -0
  434. package/dist/public/assets/_DSaMMREq.js +0 -1
  435. package/dist/public/assets/_DXjtW9JC.js +0 -1
  436. package/dist/public/assets/_DZf1ATAd.js +0 -1
  437. package/dist/public/assets/_DZr4kQnz.js +0 -1
  438. package/dist/public/assets/_D_kJsjwI.js.br +0 -0
  439. package/dist/public/assets/_DbB4cL-n.js.br +0 -0
  440. package/dist/public/assets/_DfPu3opc.js +0 -1
  441. package/dist/public/assets/_Dg7kepAd.js.br +0 -0
  442. package/dist/public/assets/_DgvY2m9A.js.br +0 -0
  443. package/dist/public/assets/_DgwGgUJy.js +0 -1
  444. package/dist/public/assets/_Di0HUCie.js.br +0 -0
  445. package/dist/public/assets/_Dp6J_KbS.js.br +0 -0
  446. package/dist/public/assets/_DtIBeeFy.js.br +0 -0
  447. package/dist/public/assets/_Dw3MtUmB.js.br +0 -0
  448. package/dist/public/assets/_DwPJWJHb.js +0 -1
  449. package/dist/public/assets/_Dx4SX3Ca.js.br +0 -0
  450. package/dist/public/assets/_DynZoNSt.js +0 -1
  451. package/dist/public/assets/_DysbZv8j.js.br +0 -0
  452. package/dist/public/assets/_Dz7OHR2k.js.br +0 -0
  453. package/dist/public/assets/_DzaAUrO6.js.br +0 -0
  454. package/dist/public/assets/_Eneb6D-q.js.br +0 -0
  455. package/dist/public/assets/_Enp2Gr5h.js.br +0 -0
  456. package/dist/public/assets/_HGdm_T6n.js +0 -1
  457. package/dist/public/assets/_IHRDfsW6.js +0 -1
  458. package/dist/public/assets/_JbfD49fY.js +0 -1
  459. package/dist/public/assets/_L6-mkbsa.js +0 -1
  460. package/dist/public/assets/_NDErTU55.js.br +0 -0
  461. package/dist/public/assets/_Rv15Vzpw.js.br +0 -0
  462. package/dist/public/assets/_T-WXenDh.js.br +0 -0
  463. package/dist/public/assets/_TBWUL5IV.js +0 -1
  464. package/dist/public/assets/_WFiGVWwd.js.br +0 -0
  465. package/dist/public/assets/_WiZYGw70.js.br +0 -0
  466. package/dist/public/assets/_YpN2hMVJ.js +0 -1
  467. package/dist/public/assets/__6pMp03m.js +0 -1
  468. package/dist/public/assets/__eAclg0z.js.br +0 -0
  469. package/dist/public/assets/_addZLFo9.js.br +0 -0
  470. package/dist/public/assets/_ag0PzDtm.js.br +0 -0
  471. package/dist/public/assets/_g1-FS7Df.js.br +0 -0
  472. package/dist/public/assets/_jcKZb6M0.js +0 -1
  473. package/dist/public/assets/_ji7mS_dq.js.br +0 -0
  474. package/dist/public/assets/_myA0xLli.js.br +0 -0
  475. package/dist/public/assets/_oo2v_wAX.js +0 -1
  476. package/dist/public/assets/_ooGCeDoo.js +0 -1
  477. package/dist/public/assets/_sNHDC53K.js +0 -1
  478. package/dist/public/assets/_u39G7Hfi.js.br +0 -0
  479. package/dist/public/assets/_vow_06MT.js.br +0 -0
  480. package/dist/public/assets/_y7jUbIbx.js +0 -1
  481. package/dist/public/assets/files-view-CE00a_e1.js +0 -2
  482. package/dist/public/assets/manage-workspace-CoXEyz7q.js +0 -2
  483. package/dist/public/assets/new-DLD9EesK.js +0 -1
  484. package/dist/public/assets/new-workspace-tREW1Ew-.js +0 -2
  485. package/dist/public/assets/review-view-wXfDCa8J.js +0 -2
  486. package/dist/public/assets/settings-DLD9EesK.js +0 -1
  487. package/dist/public/assets/settings-page-C6yfsuBb.js +0 -2
  488. package/dist/public/assets/styles-Bj8QV6wc.css.br +0 -0
  489. package/dist/public/assets/w-DLD9EesK.js +0 -1
  490. package/dist/public/assets/w._-B59-2Mie.js +0 -1
  491. package/dist/public/assets/w._-Ci83JVrq.js +0 -1
  492. package/dist/public/assets/w._-DLD9EesK.js +0 -1
package/README.md CHANGED
@@ -124,12 +124,15 @@ must. On the LAN the direct path needs nothing more; from another network
124
124
  (a phone on cellular) the UDP port has to be reachable through your router.
125
125
  Settings → Terminal can allow work to open it on the router when needed
126
126
  (UPnP, off by default): only after a device failed to connect without it,
127
- leased, and given back once unused. A host firewall has to let the port
128
- in too: `work doctor` says when one drops it, or may (where only root can
129
- read its rules, it judges from the defaults and gives the command that
130
- shows them), with the command that admits it, and
131
- `work setup` offers to add that rule, named `work` so it is removed as one
132
- (`--firewall` adds it without asking, `--no-firewall` skips the question).
127
+ leased, and given back once unused. A host firewall can keep a device
128
+ out too, though usually it does not (ICE gets through a stateful one from
129
+ most networks), so work says nothing of it until a device has failed to
130
+ connect directly while nothing has come in through the port. Then `work
131
+ doctor` says it drops the port, or may (where only root can read its
132
+ rules, it judges from the defaults and gives the command that shows
133
+ them), with the command that admits it, and `work setup` offers to add
134
+ that rule, named `work` so it is removed as one (`--firewall` adds it
135
+ without asking, `--no-firewall` skips the question).
133
136
  macOS's firewall admits programs rather than ports, so there it is the
134
137
  node the service runs that `work doctor` checks and `work setup` lets in. `WORK_RTC_STUN` names the STUN servers that find this machine's
135
138
  public address (Cloudflare's by default; empty for none).
@@ -4,6 +4,7 @@
4
4
  // printed path is (`/term-paths`: the session's directory, its checkout,
5
5
  // the workspace, each repo; files and folders inside its checkouts and
6
6
  // .share/ only).
7
+ import fs from "node:fs";
7
8
  import os from "node:os";
8
9
  import path from "node:path";
9
10
 
@@ -17,16 +18,9 @@ import path from "node:path";
17
18
  export async function resolveTarget(ctx, ws, raw) {
18
19
  if (/^\/w\//.test(raw)) return { link: raw, label: raw };
19
20
  if (/^https?:\/\//i.test(raw)) return { link: raw, label: raw };
20
- // `name:42` is a line in it, as editors and the terminal's links take it.
21
- const m = /^(.*?):(\d+)(?::\d+)?$/.exec(raw);
22
- const target = m ? m[1] : raw;
23
- const line = m ? Number(m[2]) : null;
24
- const home = target.startsWith("~/")
25
- ? path.join(os.homedir(), target.slice(2))
26
- : target;
21
+ const { line, home, abs } = pathOf(raw);
27
22
  // This shell's own directory first; then as typed, which the server
28
23
  // tries against the session's, the workspace and each repo.
29
- const abs = path.resolve(process.cwd(), home);
30
24
  const answers = await ctx.api.post(`/api/workspaces/${ws.id}/term-paths`, {
31
25
  ...(process.env.WORK_SESSION_ID && {
32
26
  session: process.env.WORK_SESSION_ID,
@@ -43,7 +37,48 @@ export async function resolveTarget(ctx, ws, raw) {
43
37
  };
44
38
  }
45
39
 
46
- /** Why a target named nothing, said once for both commands. */
47
- export function unresolved(raw) {
40
+ /** A path target as typed: `name:42` is a line in it, as editors and the
41
+ * terminal's links take it. */
42
+ function pathOf(raw) {
43
+ const m = /^(.*?):(\d+)(?::\d+)?$/.exec(raw);
44
+ const target = m ? m[1] : raw;
45
+ const home = target.startsWith("~/")
46
+ ? path.join(os.homedir(), target.slice(2))
47
+ : target;
48
+ return {
49
+ line: m ? Number(m[2]) : null,
50
+ home,
51
+ abs: path.resolve(process.cwd(), home),
52
+ };
53
+ }
54
+
55
+ /** Why a target named nothing, said once for both commands. A file in the
56
+ * workspace's `.tmp/` gets its own answer: it is there, but that is the
57
+ * sessions' scratch, which the app never shows, so the fix is to put it
58
+ * where the user can open it, not to name it some other way. */
59
+ export function unresolved(raw, ws) {
60
+ if (!ws?.path) return nothing(raw);
61
+ const { home, abs } = pathOf(raw);
62
+ // Real paths on both sides: /home may be a symlink to /var/home.
63
+ const tmp = real(path.join(ws.path, ".tmp"));
64
+ const at = real(abs);
65
+ if (
66
+ at === tmp ||
67
+ at.startsWith(tmp + path.sep) ||
68
+ /^\.tmp(\/|$)/.test(path.normalize(home))
69
+ )
70
+ return `${raw} is in .tmp/, scratch the app never shows: save what the user should see in ${path.join(ws.path, ".share")}/ and name that instead`;
71
+ return nothing(raw);
72
+ }
73
+
74
+ function nothing(raw) {
48
75
  return `nothing at ${raw} in this workspace: a file or folder in its checkouts or its .share/, an app page (/w/…), or a URL`;
49
76
  }
77
+
78
+ function real(p) {
79
+ try {
80
+ return fs.realpathSync(p);
81
+ } catch {
82
+ return p;
83
+ }
84
+ }
@@ -30,7 +30,7 @@ export const commands = [
30
30
  const { ws } = await ctx.resolveWorkspace(ctx.flag("--workspace"));
31
31
  const raw = ctx.flag("--link");
32
32
  const target = raw ? await resolveTarget(ctx, ws, raw) : null;
33
- if (raw && !target) ctx.die(unresolved(raw));
33
+ if (raw && !target) ctx.die(unresolved(raw, ws));
34
34
  const res = await ctx.api.post(`/api/workspaces/${ws.id}/notices`, {
35
35
  message,
36
36
  ...(ctx.flag("--title") && { title: ctx.flag("--title") }),
package/bin/cli/open.mjs CHANGED
@@ -20,7 +20,7 @@ export const commands = [
20
20
  if (!raw) ctx.die("open what? work open <target> (see: work help open)");
21
21
  const { ws } = await ctx.resolveWorkspace(ctx.flag("--workspace"));
22
22
  const target = await resolveTarget(ctx, ws, raw);
23
- if (!target) ctx.die(unresolved(raw));
23
+ if (!target) ctx.die(unresolved(raw, ws));
24
24
  const res = await ctx.api.post(`/api/workspaces/${ws.id}/notices`, {
25
25
  message: ctx.flag("--message") || `Look at ${target.label}`,
26
26
  link: target.link,
package/bin/work.mjs CHANGED
@@ -6,7 +6,8 @@
6
6
  // it otherwise offers when Tailscale is logged in; --no-tailscale skips that;
7
7
  // --firewall adds a `work` rule for direct connections' UDP port to a host
8
8
  // firewall that may drop it, or on macOS lets the service's node in,
9
- // which it otherwise offers; --no-firewall skips that;
9
+ // which it otherwise offers once a device could not connect directly;
10
+ // --no-firewall skips that;
10
11
  // --allow-host <name> / --disallow-host <name>, repeated, put one name
11
12
  // in or out of WORK_ALLOWED_HOSTS and keep the rest; --json prints
12
13
  // what it did as JSON on stdout, its progress on stderr)
@@ -1850,10 +1851,12 @@ local Tailscale daemon to port ${port}.${ts.https === false ? "\nHTTPS certifica
1850
1851
  * the active zone, or ufw rules with that comment (lib/setup/firewall.mjs);
1851
1852
  * on macOS, whose firewall admits programs, the service's node let in
1852
1853
  * (`serviceFirewall`; "Block all incoming connections" is only said).
1853
- * Added with sudo, and only on an explicit yes, the prompt's or
1854
- * `--firewall`: `--yes` is how the installer, `work update` and the app's
1855
- * own update run setup unattended, and none of them asked for it. What it
1856
- * runs is printed as it runs.
1854
+ * Offered only where the running server advises it (a device could not
1855
+ * connect directly, and nothing has come in through the port), and added
1856
+ * with sudo only on an explicit yes, the prompt's or `--firewall`: `--yes`
1857
+ * is how the installer, `work update` and the app's own update run setup
1858
+ * unattended, and none of them asked for it. What it runs is printed as it
1859
+ * runs.
1857
1860
  */
1858
1861
  async function firewall() {
1859
1862
  if (args.includes("--no-firewall")) return;
@@ -1866,9 +1869,16 @@ async function firewall() {
1866
1869
  return;
1867
1870
  }
1868
1871
  if (f.admits) {
1869
- if (asked) log(`${f.what} already admits UDP ${f.port}`);
1872
+ if (asked)
1873
+ log(
1874
+ `${f.what} already admits UDP ${f.port}${f.why ? ` (${f.why})` : ""}`,
1875
+ );
1870
1876
  return;
1871
1877
  }
1878
+ // Offered only once a device could not connect directly and nothing has
1879
+ // shown the port open (`bornOut`): a may-drop read from the rules as
1880
+ // shipped is no reason to change them.
1881
+ if (!asked && !f.advise) return;
1872
1882
  const drops = `${dropText(f)}, which direct connections from your other devices use`;
1873
1883
  if (!f.plan.length) {
1874
1884
  if (asked || !yes) warn(`${drops}: ${f.fix}`);
@@ -49,7 +49,7 @@ var toastTitle = {
49
49
  warn: "_w",
50
50
  info: "_x"
51
51
  };
52
- var tocDot = "_dz _ba";
52
+ var tocDot = "_cW _ba";
53
53
  //#endregion
54
54
  //#region src/styles/tokens.css.ts
55
55
  var color = {
@@ -85,98 +85,98 @@ var iconSize = {
85
85
  };
86
86
  //#endregion
87
87
  //#region src/tags/settings-agents.css.ts
88
- var agentRow = "_gi _dK";
89
- var list$3 = "_dO _da _dJ _dM";
88
+ var agentRow = "_ga _dK";
89
+ var list$3 = "_dO _dw _dJ _dM";
90
90
  var metaChip = "_d2 _bz _by";
91
- var sectionCount = "_c8 _bp _bq";
92
- var usageNote = "_j_ _by";
93
- var pop$2 = "_g4 _bN";
94
- var spinner = "_g7 _bD _bi";
95
- var toolLead = "_hd _dX";
96
- var name$4 = "_gu _dX";
97
- var desc$1 = "_gv _dY";
91
+ var sectionCount = "_dt _bp _bq";
92
+ var usageNote = "_ke _by";
93
+ var pop$2 = "_gD _bN";
94
+ var spinner = "_gG _bD _bi";
95
+ var toolLead = "_gN _dX";
96
+ var name$4 = "_gs _dX";
97
+ var desc$1 = "_gt _dY";
98
98
  //#endregion
99
99
  //#region src/tags/lsp-add-dialog.css.ts
100
- var addDlg = "_lE _b4";
101
- var key$1 = "_lR _lP";
102
- var addTile = "_lT _lP";
103
- var field$2 = "_l4 _bA";
104
- var keyField = "_l5 _l4 _bA";
105
- var labelField = "_l6 _l4 _bA";
106
- var detailsToggle = "_gM _6";
107
- var themeSeg = "_fY _bR";
108
- var checkList = "_jO _c9";
100
+ var addDlg = "_lL _bX";
101
+ var key$1 = "_k5 _k3";
102
+ var addTile = "_k7 _k3";
103
+ var field$2 = "_lh _bA";
104
+ var keyField = "_li _lh _bA";
105
+ var labelField = "_lj _lh _bA";
106
+ var detailsToggle = "_f0 _6";
107
+ var themeSeg = "_fi _bR";
108
+ var checkList = "_h4 _du";
109
109
  //#endregion
110
110
  //#region src/tags/prompt-dialog.css.ts
111
- var promptDlg = "_b8 _b4";
112
- var item$1 = "_b0 _D";
111
+ var promptDlg = "_b1 _bX";
112
+ var item$1 = "_b6 _D";
113
113
  var glance = "_dG _D";
114
114
  //#endregion
115
115
  //#region src/tags/side-nav.css.ts
116
- var iconBtn = "_cl _D";
117
- var settingsDot = "_cm _bQ";
118
- var notifyBtn = "_cr _D";
116
+ var iconBtn = "_b9 _D";
117
+ var settingsDot = "_b_ _bQ";
118
+ var notifyBtn = "_ce _D";
119
119
  //#endregion
120
120
  //#region src/styles/session-pop.css.ts
121
- var sessionPop = "_ct _bN";
122
- var sessionPopBtn = "_cu _bk";
123
- var wsBtn = "_e9 _bk";
124
- var rowIcon = "_fa _bF _D";
125
- var prChip = "_mc _M _lJ";
121
+ var sessionPop = "_cr _bN";
122
+ var sessionPopBtn = "_cs _bk";
123
+ var wsBtn = "_ex _bk";
124
+ var rowIcon = "_ez _bF _D";
125
+ var prChip = "_lW _M _lQ";
126
126
  //#endregion
127
127
  //#region src/tags/port-chip.css.ts
128
- var port = "_oI _M _lJ";
128
+ var port = "_oL _M _lQ";
129
129
  var depth = {
130
- "1": "_kt",
131
- "2": "_ku",
132
- "3": "_kv"
130
+ "1": "_ls",
131
+ "2": "_lt",
132
+ "3": "_lu"
133
133
  };
134
- var open = "_kB _bk";
135
- var action = "_kG _bI _D";
134
+ var open = "_lA _bk";
135
+ var action = "_lF _bI _D";
136
136
  var toggle = "_d7 _6";
137
137
  var fold = "_d8 _dL";
138
138
  var statusOf = {
139
- queued: "_mQ",
140
- starting: "_mR",
141
- working: "_mS",
142
- waiting: "_mT",
143
- idle: "_mU",
144
- done: "_mV",
145
- closed: "_mW"
139
+ queued: "_nb",
140
+ starting: "_nc",
141
+ working: "_nd",
142
+ waiting: "_ne",
143
+ idle: "_nf",
144
+ done: "_ng",
145
+ closed: "_nh"
146
146
  };
147
- var item = "_km _bk";
148
- var menu = "_ns _ct _bN";
149
- var menuItem = "_nu _bk";
150
- var findBtn$1 = "_iZ _hU _bG _D";
151
- var tool = "_hU _bG _D";
152
- var heldRefresh = "_h2 _M";
153
- var pop$1 = "_mu _ct _bN";
154
- var fileFilter = "_oM _F";
155
- var findInput = "_er _F";
156
- var keybarIconBtn = "_eA _bI _D";
157
- var input = "_ca _F";
158
- var group = "_cd _6";
159
- var hint$1 = "_na _bp _3";
160
- var sheetDir = "_n1 _bP";
161
- var upBtn = "_ie _bG _D";
162
- var findBtn = "_ii _hU _bG _D";
163
- var goBtn = "_ij _hU _bG _D";
164
- var note = "_lD _by";
147
+ var item = "_kD _bk";
148
+ var menu = "_mB _cr _bN";
149
+ var menuItem = "_mD _bk";
150
+ var findBtn$1 = "_jh _ic _bG _D";
151
+ var tool = "_ic _bG _D";
152
+ var heldRefresh = "_ik _M";
153
+ var pop$1 = "_nG _cr _bN";
154
+ var fileFilter = "_oP _F";
155
+ var findInput = "_fC _F";
156
+ var keybarIconBtn = "_fL _bI _D";
157
+ var input = "_cv _F";
158
+ var group = "_cy _6";
159
+ var hint$1 = "_nA _bp _3";
160
+ var sheetDir = "_n6 _bP";
161
+ var upBtn = "_ix _bG _D";
162
+ var findBtn = "_iB _ic _bG _D";
163
+ var goBtn = "_iC _ic _bG _D";
164
+ var note = "_nJ _by";
165
165
  //#endregion
166
166
  //#region src/tags/manage-workspace.css.ts
167
- var procCmd = "_eU _dX";
168
- var factCopy = "_e1 _bI _D";
169
- var resultRow = "_lc _bk";
170
- var resultBranch = "_ld _d2 _bz _by _bF _D";
171
- var urlAction = "_le _d2 _bz _by _d3";
172
- var curRow = "_fq _dR";
167
+ var procCmd = "_hC _dX";
168
+ var factCopy = "_hJ _bI _D";
169
+ var resultRow = "_kM _bk";
170
+ var resultBranch = "_kN _d2 _bz _by _bF _D";
171
+ var urlAction = "_kO _d2 _bz _by _d3";
172
+ var curRow = "_hR _dR";
173
173
  //#endregion
174
174
  //#region src/tags/join-dialog.css.ts
175
- var dlg = "_lt _b4";
176
- var hint = "_lu _by";
177
- var kbtn = "_cR _bH _D";
178
- var repeat = "_cU _cT";
179
- var dpadUser = "_cX _cT";
180
- var dpadEsc = "_cY _cT";
175
+ var dlg = "_ma _bX";
176
+ var hint = "_mb _by";
177
+ var kbtn = "_dc _bH _D";
178
+ var repeat = "_df _de";
179
+ var dpadUser = "_di _de";
180
+ var dpadEsc = "_dj _de";
181
181
  //#endregion
182
182
  export { field$2 as $, item as A, prTone as At, wsBtn as B, fileFilter as C, chipBtn as Ct, findBtn$1 as D, iconBtnXs as Dt, tool as E, iconBtnRow as Et, depth as F, settingsDot as G, sessionPopBtn as H, open as I, promptDlg as J, glance as K, port as L, fold as M, usageFill as Mt, toggle as N, usageInk as Nt, menu as O, inputLg as Ot, action as P, addTile as Q, prChip as R, keybarIconBtn as S, btnSm as St, heldRefresh as T, iconBtnLg as Tt, iconBtn as U, sessionPop as V, notifyBtn as W, themeSeg as X, checkList as Y, detailsToggle as Z, sheetDir as _, tocDot as _t, dlg as a, name$4 as at, input as b, toastTitle 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, sans as gt, goBtn as h, iconSize as ht, repeat as i, desc$1 as it, statusOf as j, tone as jt, menuItem as k, phaseIcon as kt, resultRow as l, usageNote as lt, findBtn as m, color 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, toastKind as vt, pop$1 as w, glyphBadgeNum as wt, findInput as x, btnLg as xt, group as y, toastStack as yt, rowIcon as z };
@@ -1,4 +1,4 @@
1
- import { $ as reopenSession, A as closedSession, An as onFinished, Bn as turnPhase, Dr as getSetting, Fn as setExpecting, Hn as turnSince, J as notifySessionsChanged, Kn as agentLabel, L as getSession, Mn as onTurnEnd, Nn as sessionWatched, Or as isKnownAgent, Q as renameSession, R as interruptSession, Sn as lastTypedAt, U as listPanesWithin, Vn as turnSettling, Y as onSessionDispose, Zr as httpError, _n as agentPhase, ai as get, an as interruptKeys, bn as hookReportedAt, cn as steerKeys, et as reopenable, gn as activityOf, ii as db, j as createSession, jn as onPhaseChange, nt as sendToSession, pn as cleanSummary, ri as all, tt as retireSession, z as killSession, zn as summaryOf } from "./_C65JTOIi.js";
1
+ import { $ as reopenSession, A as closedSession, An as onFinished, Bn as turnPhase, Dr as getSetting, Fn as setExpecting, Hn as turnSince, J as notifySessionsChanged, Kn as agentLabel, L as getSession, Mn as onTurnEnd, Nn as sessionWatched, Or as isKnownAgent, Q as renameSession, Qr as httpError, R as interruptSession, Sn as lastTypedAt, U as listPanesWithin, Vn as turnSettling, Y as onSessionDispose, _n as agentPhase, ai as db, an as interruptKeys, bn as hookReportedAt, cn as steerKeys, et as reopenable, gn as activityOf, ii as all, j as createSession, jn as onPhaseChange, nt as sendToSession, oi as get, pn as cleanSummary, tt as retireSession, z as killSession, zn as summaryOf } from "./_DuADlWik.js";
2
2
  //#region src/server/messages.ts
3
3
  var team = {
4
4
  memberGroup: () => null,
@@ -0,0 +1,2 @@
1
+ import { J as notifySessionsChanged } from "./_DuADlWik.js";
2
+ export { notifySessionsChanged };
@@ -1664,6 +1664,42 @@ function portsAdmit(xml, port) {
1664
1664
  }
1665
1665
  return false;
1666
1666
  }
1667
+ /** `work doctor`'s line, or null with nothing to say. Never a failure of
1668
+ * readiness: work runs either way, and only devices on the network lose
1669
+ * the direct path. macOS's answer is for one node, so the line says when
1670
+ * it had to be this shell's (`nodeFrom`, set by the CLI). */
1671
+ /**
1672
+ * The reading `f` as direct connections bear it out (`seen`, the running
1673
+ * server's record). A connection whose page side came in unasked — a
1674
+ * peer-reflexive address, which this end never sent to first — got through
1675
+ * whatever the reading guessed, so the port admits. Otherwise the fix is
1676
+ * advised (`advise`) only once a page's direct path never connected
1677
+ * (`turnedAway`): ICE punches through a stateful firewall from most
1678
+ * networks, so a firewall that may drop the port is no reason to change it
1679
+ * until a device could not get in. Without a record (no server to ask),
1680
+ * nothing is advised.
1681
+ */
1682
+ function bornOut(f, seen) {
1683
+ if (!f) return f;
1684
+ if (f.admits) return {
1685
+ ...f,
1686
+ advise: false
1687
+ };
1688
+ if (seen?.inbound) return {
1689
+ ...f,
1690
+ admits: true,
1691
+ likely: false,
1692
+ why: "a device's connection came in through it unasked",
1693
+ check: null,
1694
+ plan: [],
1695
+ fix: null,
1696
+ advise: false
1697
+ };
1698
+ return {
1699
+ ...f,
1700
+ advise: (seen?.turnedAway ?? 0) > 0
1701
+ };
1702
+ }
1667
1703
  function realpath(file) {
1668
1704
  try {
1669
1705
  return fs.realpathSync(file);
@@ -9472,7 +9508,7 @@ function publishChange(sessionId) {
9472
9508
  const row = get("SELECT workspace_id FROM sessions WHERE id = ?", sessionId);
9473
9509
  if (row?.workspace_id) {
9474
9510
  const workspaceId = row.workspace_id;
9475
- import("./_o6JmtS1w.js").then((m) => m.notifySessionsChanged(workspaceId));
9511
+ import("./_DDikKLG_.js").then((m) => m.notifySessionsChanged(workspaceId));
9476
9512
  return;
9477
9513
  }
9478
9514
  publish("sessions.changed");
@@ -17609,7 +17645,7 @@ function notifySessionsChanged(workspaceId) {
17609
17645
  async function emitSessionsChanged(workspaceId) {
17610
17646
  try {
17611
17647
  const states = await sessionStates();
17612
- const { teamsOf } = await import("./_B2zjDgtj.js");
17648
+ const { teamsOf } = await import("./_ENqPMLjD.js");
17613
17649
  publish("sessions.changed", {
17614
17650
  workspaceId,
17615
17651
  sessions: listSessions(workspaceId).map((s) => ({
@@ -19219,8 +19255,9 @@ ${repoLines}
19219
19255
  a repo), and each one you mention is a Markdown link named for it:
19220
19256
  \`[login-after](/w/${wsId}/files?file=.share/<path>)\`, never a bare file
19221
19257
  name, which nothing opens (\`work open <path>\` offers it in the app too).
19222
- \`.tmp/\` (your \`TMPDIR\`) is scratch they never see. Their pastes land
19223
- in \`.share/pasted/\`.
19258
+ \`.tmp/\` (your \`TMPDIR\`) is scratch the app neither lists nor opens: never
19259
+ link or name a file there, copy it into \`.share/\` and link that. Their
19260
+ pastes land in \`.share/pasted/\`.
19224
19261
  - **Tell the user** only what the app does not already: it notifies them when
19225
19262
  your turn ends or you are waiting on them. For news in the middle of a turn
19226
19263
  (a long job finished while you work on),
@@ -19259,4 +19296,4 @@ ${repoLines}
19259
19296
  `;
19260
19297
  }
19261
19298
  //#endregion
19262
- export { reopenSession as $, setInstance as $n, publish as $r, notePushActivity as $t, closedSession as A, onFinished as An, setDisabledAgents as Ar, authGithub as At, killWorkspaceSessions as B, turnPhase as Bn, PROJECT_TOOLS as Br, readBlobAt as Bt, workspaceBranches as C, noteActivity$1 as Cn, changePref as Cr, installServer as Ct, beginCreation as D, noteTyped as Dn, getSetting as Dr, serverList as Dt, agentCaller as E, notePermissionMode as En, enabledAgents as Er, serverById as Et, ensureTmuxServer as F, setExpecting as Fn, ghKnownHosts as Fr, refreshGithub as Ft, markTmuxStarted as G, agentFromCommand as Gn, parseAgentId as Gr, setPoints as Gt, listPanes as H, turnSince as Hn, agentById as Hr, reviewWaiting as Ht, forgetPanes as I, setScrapedPhase as In, miseInstalls as Ir, removeTool as It, notifySessionsChanged as J, ACCENT_RE as Jn, FRAME_ANCESTORS as Jr, commentFolder as Jt, newSessionArgs as K, agentLabel as Kn, toolById as Kr, startSnapSweep as Kt, getSession as L, setSessionViewers as Ln, miseVersions as Lr, runStreaming as Lt, creationOf as M, onTurnEnd as Mn, setSetting as Mr, installMise as Mt, descendantsOf as N, sessionWatched as Nn, discoverAgents as Nr, installTool as Nt, cleanEnv as O, noteUserAnswered as On, isKnownAgent as Or, sharing as Ot, disposeSessions as P, setAgentPhase as Pn, doctor as Pr, logoutGithub as Pt, renameSession as Q, normalizeAccent as Qn, readBody as Qr, hotBatchMinMs as Qt, interruptSession as R, settleQuietWorking as Rn, which as Rr, updateTool as Rt, withProgressOp as S, lastTypedAt as Sn, allPrefs as Sr, installKey as St, hookToken as T, noteInterrupt as Tn, disabledAgents as Tr, removeServer as Tt, listPanesWithin as U, agentBadge as Un, agentLabel$1 as Ur, workspaceDiff as Ut, launchDir as V, turnSettling as Vn, TOOLS as Vr, readFileAt as Vt, listSessions as W, agentFamily as Wn, catalogPin as Wr, workspaceSections as Wt, ownWorkspaceOnly as X, iconSvg as Xn, checked as Xr, sectionFor as Xt, onSessionDispose as Y, getInstance as Yn, FRAME_HEADERS as Yr, markBranch as Yt, panePids as Z, manifest as Zn, httpError as Zr, dismissPr as Zt, retryMaterialize as _, agentPhase as _n, removeHost as _r, stopServers as _t, ensureUntrackedCache as a, get as ai, interruptKeys as an, headOid as ar, tmuxWasStarted as at, sweepTrash as b, hookReportedAt as bn, WORKSPACE_PREFS as br, forgetCustomServer as bt, insertPendingWorkspace as c, ensureAllCacheConfig as ci, steerKeys as cn, repoCatalog as cr, workspaceProcs as ct, progress as d, tmux as di, readCache as dn, addHost as dr, lspQuery as dt, publishJson as ei, refreshPrsBatch as en, deleteSubscription as er, reopenable as et, progressSince as f, config as fi, writeCache as fn, configuredHosts as fr, lspQueryOf as ft, resumePendingWorkspaces as g, activityOf as gn, normalizeHost as gr, stopAllServers as gt, removeRepo as h, realInside as hn, isValidHost as hr, runningServers as ht, deleteWorkspace as i, db as ii, AGENTS as in, validSubscription as ir, tmuxName as it, createSession as j, onPhaseChange as jn, setPref as jr, installAgent as jt, clearTmuxStarted as k, notifyEventOn as kn, preferredAgent as kr, whileInstalling as kt, listWorkspaces as l, TMUX_SOCKET as li, blankRow as ln, repoDefaultBranch as lr, killServers as lt, queueMaterialize as m, withLock as mi, inside as mn, forgetToken as mr, lspWarm as mt, barePath as n, subscriberCount as ni, workspacePrs as nn, saveSubscription as nr, sendToSession as nt, gcBares as o, workspacePath as oi, readHookPayload as on, pendingSsoOrgs as or, killWorkspaceProc as ot, pruneLaneBranch as p, swr as pi, cleanSummary as pn, ensureGitCredentials as pr, lspUses as pt, noteConversation as q, agentMeta as qn, applyPrefChange as qr, diffStamp as qt, createWorkspace as r, all as ri, noteActivity as rn, sendPush as rr, sessionStates as rt, getWorkspace as s, ownsBranchOf as si, reportsWorking as sn, repoBranches as sr, portsByWorkspace as st, addRepo as t, subscribe as ti, withoutDismissed as tn, pushPublicKey as tr, retireSession as tt, otherWorkspaceBranches as u, git as ui, credentialStamp as un, DEFAULT_HOST as ur, lspDiagnostics as ut, revParse as v, clearAgentPhase as vn, unreachableRepos as vr, addCustomServer as vt, ensureAllPushHooks as w, noteBackground as wn, deleteSetting as wr, lspEnabled as wt, syncAgentsMd as x, interruptedSinceReport as xn, agentChoices as xr, forgetProbes as xt, setWorkspaceStatus as y, hookPhase as yn, PREF_MAX as yr, allServers as yt, killSession as z, summaryOf as zn, firewallProbe as zr, fileChanges as zt };
19299
+ export { reopenSession as $, setInstance as $n, readBody as $r, notePushActivity as $t, closedSession as A, onFinished as An, setDisabledAgents as Ar, authGithub as At, killWorkspaceSessions as B, turnPhase as Bn, firewallProbe as Br, readBlobAt as Bt, workspaceBranches as C, noteActivity$1 as Cn, changePref as Cr, installServer as Ct, beginCreation as D, noteTyped as Dn, getSetting as Dr, serverList as Dt, agentCaller as E, notePermissionMode as En, enabledAgents as Er, serverById as Et, ensureTmuxServer as F, setExpecting as Fn, ghKnownHosts as Fr, refreshGithub as Ft, markTmuxStarted as G, agentFromCommand as Gn, catalogPin as Gr, setPoints as Gt, listPanes as H, turnSince as Hn, TOOLS as Hr, reviewWaiting as Ht, forgetPanes as I, setScrapedPhase as In, miseInstalls as Ir, removeTool as It, notifySessionsChanged as J, ACCENT_RE as Jn, applyPrefChange as Jr, commentFolder as Jt, newSessionArgs as K, agentLabel as Kn, parseAgentId as Kr, startSnapSweep as Kt, getSession as L, setSessionViewers as Ln, miseVersions as Lr, runStreaming as Lt, creationOf as M, onTurnEnd as Mn, setSetting as Mr, installMise as Mt, descendantsOf as N, sessionWatched as Nn, discoverAgents as Nr, installTool as Nt, cleanEnv as O, noteUserAnswered as On, isKnownAgent as Or, sharing as Ot, disposeSessions as P, setAgentPhase as Pn, doctor as Pr, logoutGithub as Pt, renameSession as Q, normalizeAccent as Qn, httpError as Qr, hotBatchMinMs as Qt, interruptSession as R, settleQuietWorking as Rn, which as Rr, updateTool as Rt, withProgressOp as S, lastTypedAt as Sn, allPrefs as Sr, installKey as St, hookToken as T, noteInterrupt as Tn, disabledAgents as Tr, removeServer as Tt, listPanesWithin as U, agentBadge as Un, agentById as Ur, workspaceDiff as Ut, launchDir as V, turnSettling as Vn, PROJECT_TOOLS as Vr, readFileAt as Vt, listSessions as W, agentFamily as Wn, agentLabel$1 as Wr, workspaceSections as Wt, ownWorkspaceOnly as X, iconSvg as Xn, FRAME_HEADERS as Xr, sectionFor as Xt, onSessionDispose as Y, getInstance as Yn, FRAME_ANCESTORS as Yr, markBranch as Yt, panePids as Z, manifest as Zn, checked as Zr, dismissPr as Zt, retryMaterialize as _, agentPhase as _n, removeHost as _r, stopServers as _t, ensureUntrackedCache as a, db as ai, interruptKeys as an, headOid as ar, tmuxWasStarted as at, sweepTrash as b, hookReportedAt as bn, WORKSPACE_PREFS as br, forgetCustomServer as bt, insertPendingWorkspace as c, ownsBranchOf as ci, steerKeys as cn, repoCatalog as cr, workspaceProcs as ct, progress as d, git as di, readCache as dn, addHost as dr, lspQuery as dt, publish as ei, refreshPrsBatch as en, deleteSubscription as er, reopenable as et, progressSince as f, tmux as fi, writeCache as fn, configuredHosts as fr, lspQueryOf as ft, resumePendingWorkspaces as g, activityOf as gn, normalizeHost as gr, stopAllServers as gt, removeRepo as h, withLock as hi, realInside as hn, isValidHost as hr, runningServers as ht, deleteWorkspace as i, all as ii, AGENTS as in, validSubscription as ir, tmuxName as it, createSession as j, onPhaseChange as jn, setPref as jr, installAgent as jt, clearTmuxStarted as k, notifyEventOn as kn, preferredAgent as kr, whileInstalling as kt, listWorkspaces as l, ensureAllCacheConfig as li, blankRow as ln, repoDefaultBranch as lr, killServers as lt, queueMaterialize as m, swr as mi, inside as mn, forgetToken as mr, lspWarm as mt, barePath as n, subscribe as ni, workspacePrs as nn, saveSubscription as nr, sendToSession as nt, gcBares as o, get as oi, readHookPayload as on, pendingSsoOrgs as or, killWorkspaceProc as ot, pruneLaneBranch as p, config as pi, cleanSummary as pn, ensureGitCredentials as pr, lspUses as pt, noteConversation as q, agentMeta as qn, toolById as qr, diffStamp as qt, createWorkspace as r, subscriberCount as ri, noteActivity as rn, sendPush as rr, sessionStates as rt, getWorkspace as s, workspacePath as si, reportsWorking as sn, repoBranches as sr, portsByWorkspace as st, addRepo as t, publishJson as ti, withoutDismissed as tn, pushPublicKey as tr, retireSession as tt, otherWorkspaceBranches as u, TMUX_SOCKET as ui, credentialStamp as un, DEFAULT_HOST as ur, lspDiagnostics as ut, revParse as v, clearAgentPhase as vn, unreachableRepos as vr, addCustomServer as vt, ensureAllPushHooks as w, noteBackground as wn, deleteSetting as wr, lspEnabled as wt, syncAgentsMd as x, interruptedSinceReport as xn, agentChoices as xr, forgetProbes as xt, setWorkspaceStatus as y, hookPhase as yn, PREF_MAX as yr, allServers as yt, killSession as z, summaryOf as zn, bornOut as zr, fileChanges as zt };
@@ -0,0 +1,2 @@
1
+ import { f as teamsOf } from "./_D4k_lVuT.js";
2
+ export { teamsOf };