@dylanpiercey/work 0.2.67 → 0.2.69

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 (494) hide show
  1. package/dist/_BkRvQO5r.js +2 -0
  2. package/dist/_C29NgtBI.js +2 -0
  3. package/dist/{_gKzyEKiq.js → _CilTmd3l.js} +290 -16
  4. package/dist/{_CtDE8Leo.js → _DDCmzS5h.js} +113 -113
  5. package/dist/{_BIK4Q8Ap.js → _Da7kjbAP.js} +1 -1
  6. package/dist/index.mjs +884 -868
  7. package/dist/public/assets/_-EmIcUKk.js +1 -0
  8. package/dist/public/assets/_-Zp0T_lO.js +1 -0
  9. package/dist/public/assets/{_B70kYzED.js → _0H09AGax.js} +1 -1
  10. package/dist/public/assets/_0H09AGax.js.br +0 -0
  11. package/dist/public/assets/{_C-M_kClx.js → _3jDFL-Cg.js} +1 -1
  12. package/dist/public/assets/_3jDFL-Cg.js.br +0 -0
  13. package/dist/public/assets/_42tHqFp1.js +1 -0
  14. package/dist/public/assets/_43jDY_uH.js +1 -0
  15. package/dist/public/assets/{_DgEX6kkV.js → _5pKDjgHs.js} +1 -1
  16. package/dist/public/assets/_5pKDjgHs.js.br +0 -0
  17. package/dist/public/assets/_73JN1my-.js +1 -0
  18. package/dist/public/assets/_7X0H8kL8.js +1 -0
  19. package/dist/public/assets/{_DEdUC-99.js → _9PIiwVmz.js} +1 -1
  20. package/dist/public/assets/_9PIiwVmz.js.br +0 -0
  21. package/dist/public/assets/_Ag37ZLrV.js +1 -0
  22. package/dist/public/assets/{_Dr000eW7.js → _B-cgAjqV.js} +1 -1
  23. package/dist/public/assets/_B-cgAjqV.js.br +0 -0
  24. package/dist/public/assets/_B0YQ-oFW.js +1 -0
  25. package/dist/public/assets/{_WlELMoKQ.js → _B0tb8Vgp.js} +1 -1
  26. package/dist/public/assets/_B0tb8Vgp.js.br +0 -0
  27. package/dist/public/assets/_B1fJukJK.js +1 -0
  28. package/dist/public/assets/{_Qauup-ns.js → _B1rg6S37.js} +1 -1
  29. package/dist/public/assets/_B1rg6S37.js.br +0 -0
  30. package/dist/public/assets/{_B0uBThg8.js → _B40fHLkj.js} +1 -1
  31. package/dist/public/assets/_B40fHLkj.js.br +0 -0
  32. package/dist/public/assets/_B4a1Ga-C.js +1 -0
  33. package/dist/public/assets/{_hDmRiKUw.js → _B5QrsHwd.js} +1 -1
  34. package/dist/public/assets/_B5QrsHwd.js.br +0 -0
  35. package/dist/public/assets/_B6Gi_-aO.js +1 -0
  36. package/dist/public/assets/{_TlisgNCJ.js → _B6Zw_zoM.js} +1 -1
  37. package/dist/public/assets/_B6Zw_zoM.js.br +0 -0
  38. package/dist/public/assets/_B7FUbkdd.js +1 -0
  39. package/dist/public/assets/{_Ct2onnrq.js → _B9OVFXEI.js} +1 -1
  40. package/dist/public/assets/_B9OVFXEI.js.br +0 -0
  41. package/dist/public/assets/_BAxxcUnT.js +1 -0
  42. package/dist/public/assets/_BBVcNRD6.js +1 -0
  43. package/dist/public/assets/_BCO2lKSr.js +1 -0
  44. package/dist/public/assets/{_Cxf_IUf4.js → _BF2_gMS8.js} +1 -1
  45. package/dist/public/assets/_BF2_gMS8.js.br +0 -0
  46. package/dist/public/assets/{_bq3cGUln.js → _BH9u6x7L.js} +1 -1
  47. package/dist/public/assets/_BH9u6x7L.js.br +0 -0
  48. package/dist/public/assets/_BHyPBbeA.js +1 -0
  49. package/dist/public/assets/{_QORYcpTd.js → _BICdCzpd.js} +1 -1
  50. package/dist/public/assets/_BICdCzpd.js.br +0 -0
  51. package/dist/public/assets/{_BsZOFgem.js → _BJcqxD6V.js} +1 -1
  52. package/dist/public/assets/_BJcqxD6V.js.br +0 -0
  53. package/dist/public/assets/_BKsJcK3w.js +1 -0
  54. package/dist/public/assets/{_DxSjwdlY.js → _BMXY56L9.js} +1 -1
  55. package/dist/public/assets/_BMXY56L9.js.br +0 -0
  56. package/dist/public/assets/{_jHMZ7_SS.js → _BORTVznS.js} +2 -2
  57. package/dist/public/assets/_BORTVznS.js.br +0 -0
  58. package/dist/public/assets/_BOr_i2db.js +1 -0
  59. package/dist/public/assets/_BSCc1FVi.js +1 -0
  60. package/dist/public/assets/_BSEhhZ07.js +1 -0
  61. package/dist/public/assets/{_BP3daLRF.js → _BSyW2RLw.js} +1 -1
  62. package/dist/public/assets/_BSyW2RLw.js.br +0 -0
  63. package/dist/public/assets/{_Cvmxsqbk.js → _BUPTpTYH.js} +1 -1
  64. package/dist/public/assets/_BUPTpTYH.js.br +0 -0
  65. package/dist/public/assets/_BUqHNT5-.js +1 -0
  66. package/dist/public/assets/{_CH4p6ja3.js → _BWwfOfMX.js} +1 -1
  67. package/dist/public/assets/_BWwfOfMX.js.br +0 -0
  68. package/dist/public/assets/_BZXQzilG.js +1 -0
  69. package/dist/public/assets/{_DqtM_bbr.js → _BZhRz8TB.js} +1 -1
  70. package/dist/public/assets/_BZhRz8TB.js.br +0 -0
  71. package/dist/public/assets/_B_1_7y_i.js +1 -0
  72. package/dist/public/assets/{_CI503IRR.js → _B_zlRrUP.js} +1 -1
  73. package/dist/public/assets/_B_zlRrUP.js.br +0 -0
  74. package/dist/public/assets/{_BmKHBiNs.js → _BciKbAaO.js} +1 -1
  75. package/dist/public/assets/_BciKbAaO.js.br +0 -0
  76. package/dist/public/assets/_BdNI84NG.js +1 -0
  77. package/dist/public/assets/{_BNZgCt2D.js → _Bdq41ArX.js} +1 -1
  78. package/dist/public/assets/_Bdq41ArX.js.br +0 -0
  79. package/dist/public/assets/_BfT9QWYM.js +1 -0
  80. package/dist/public/assets/_BflxkINP.js +1 -0
  81. package/dist/public/assets/{_D7-IKBVN.js → _BiIQdsrx.js} +1 -1
  82. package/dist/public/assets/{_lVS7e3_v.js → _BiIrl8ml.js} +1 -1
  83. package/dist/public/assets/_BiIrl8ml.js.br +0 -0
  84. package/dist/public/assets/_Bmgmfh64.js +1 -0
  85. package/dist/public/assets/{_UcX6VY7d.js → _BnDvb8rh.js} +1 -1
  86. package/dist/public/assets/_BnDvb8rh.js.br +0 -0
  87. package/dist/public/assets/{_X_3OGONn.js → _BoRNFqwj.js} +1 -1
  88. package/dist/public/assets/_BstVSsFN.js +1 -0
  89. package/dist/public/assets/_Bu1DxZly.js +1 -0
  90. package/dist/public/assets/_By3jAAQI.js +1 -0
  91. package/dist/public/assets/_By3jAAQI.js.br +0 -0
  92. package/dist/public/assets/{_BGMYJ1-b.js → _ByZbJftZ.js} +1 -1
  93. package/dist/public/assets/_ByZbJftZ.js.br +0 -0
  94. package/dist/public/assets/_BzU0dRn3.js +1 -0
  95. package/dist/public/assets/_C-IpRzUC.js +1 -0
  96. package/dist/public/assets/{_BO-NDKjv.js → _C0W4EC0Z.js} +1 -1
  97. package/dist/public/assets/_C0W4EC0Z.js.br +0 -0
  98. package/dist/public/assets/{_BRXPkWkz.js → _C1EEKbbh.js} +1 -1
  99. package/dist/public/assets/_C1EEKbbh.js.br +0 -0
  100. package/dist/public/assets/_C1I4axdk.js +1 -0
  101. package/dist/public/assets/{_9VzenYwR.js → _C23aBO0p.js} +1 -1
  102. package/dist/public/assets/_C23aBO0p.js.br +0 -0
  103. package/dist/public/assets/{_Dwsl_wKj.js → _C3La6EyV.js} +1 -1
  104. package/dist/public/assets/_C3La6EyV.js.br +0 -0
  105. package/dist/public/assets/{_DrChcZDh.js → _C3k75NG8.js} +1 -1
  106. package/dist/public/assets/_C3k75NG8.js.br +0 -0
  107. package/dist/public/assets/{_D5szhG6N.js → _C4Hln-a1.js} +1 -1
  108. package/dist/public/assets/_C4Hln-a1.js.br +0 -0
  109. package/dist/public/assets/_C7nRA4nl.js +1 -0
  110. package/dist/public/assets/{_Dwv8BEGB.js → _CAN3Gwlo.js} +1 -1
  111. package/dist/public/assets/_CAN3Gwlo.js.br +0 -0
  112. package/dist/public/assets/_CB6bJYj7.js +1 -0
  113. package/dist/public/assets/{_DlrFmXHy.js → _CDG0zRut.js} +1 -1
  114. package/dist/public/assets/_CDG0zRut.js.br +0 -0
  115. package/dist/public/assets/{_CebKs3BC.js → _CDPOV9zA.js} +1 -1
  116. package/dist/public/assets/_CDPOV9zA.js.br +0 -0
  117. package/dist/public/assets/{_CUcuo0OF.js → _CEzgbnFo.js} +1 -1
  118. package/dist/public/assets/_CEzgbnFo.js.br +0 -0
  119. package/dist/public/assets/_CH7j19or.js +1 -0
  120. package/dist/public/assets/_CH7j19or.js.br +0 -0
  121. package/dist/public/assets/{_BgOKQo-U.js → _CKNilRtP.js} +1 -1
  122. package/dist/public/assets/_CKNilRtP.js.br +0 -0
  123. package/dist/public/assets/{_CEms_Z-6.js → _CKvOm2QG.js} +1 -1
  124. package/dist/public/assets/_CKvOm2QG.js.br +0 -0
  125. package/dist/public/assets/{_BIZETXBI.js → _CLpJpkGL.js} +1 -1
  126. package/dist/public/assets/_CLpJpkGL.js.br +0 -0
  127. package/dist/public/assets/_CN4xiFtS.js +1 -0
  128. package/dist/public/assets/{_C33Ig972.js → _CRAhvbwb.js} +1 -1
  129. package/dist/public/assets/_CRAhvbwb.js.br +0 -0
  130. package/dist/public/assets/_CRkxKTgw.js +1 -0
  131. package/dist/public/assets/_CS08pKi4.js +1 -0
  132. package/dist/public/assets/_CSE16QHd.js +1 -0
  133. package/dist/public/assets/_CT4ei2Jg.js +1 -0
  134. package/dist/public/assets/{_CxneqhA-.js → _CUPYyx5O.js} +1 -1
  135. package/dist/public/assets/_CW5ES2vr.js +1 -0
  136. package/dist/public/assets/_CWhF-4OC.js +1 -0
  137. package/dist/public/assets/{__GQz4qRd.js → _CXhoovwf.js} +1 -1
  138. package/dist/public/assets/_CXhoovwf.js.br +0 -0
  139. package/dist/public/assets/{_BA_k06GS.js → _CY7Wr_6h.js} +1 -1
  140. package/dist/public/assets/_CY7Wr_6h.js.br +0 -0
  141. package/dist/public/assets/_C_-mBehU.js +1 -0
  142. package/dist/public/assets/_CazYpkki.js +1 -0
  143. package/dist/public/assets/{_DMIFpGTL.js → _CbAa5uAw.js} +1 -1
  144. package/dist/public/assets/_CbAa5uAw.js.br +0 -0
  145. package/dist/public/assets/_CcbwLXni.js +1 -0
  146. package/dist/public/assets/{_B4eacQhm.js → _CiYp9PxT.js} +1 -1
  147. package/dist/public/assets/_CiYp9PxT.js.br +0 -0
  148. package/dist/public/assets/_CmLGUmi9.js +1 -0
  149. package/dist/public/assets/_CmLGUmi9.js.br +0 -0
  150. package/dist/public/assets/{_D-_xeCD1.js → _Coj9l4W_.js} +1 -1
  151. package/dist/public/assets/_Coj9l4W_.js.br +0 -0
  152. package/dist/public/assets/_Cp1MBi_q.js +1 -0
  153. package/dist/public/assets/_CpXvQ4wL.js +1 -0
  154. package/dist/public/assets/{_DBi6AZp1.js → _CsNZdkZU.js} +1 -1
  155. package/dist/public/assets/_CsNZdkZU.js.br +0 -0
  156. package/dist/public/assets/_Ct8a3v8n.js +1 -0
  157. package/dist/public/assets/{_BtZ336jh.js → _CtYn_7Ld.js} +1 -1
  158. package/dist/public/assets/_CtYn_7Ld.js.br +0 -0
  159. package/dist/public/assets/_CthHHBjW.js +2 -0
  160. package/dist/public/assets/_CthHHBjW.js.br +0 -0
  161. package/dist/public/assets/_CtliFzZo.js +1 -0
  162. package/dist/public/assets/{_B0WAFbs8.js → _Cw3MnPjo.js} +1 -1
  163. package/dist/public/assets/_Cw3MnPjo.js.br +0 -0
  164. package/dist/public/assets/{_DRD9BWmW.js → _Cw9GxBkQ.js} +1 -1
  165. package/dist/public/assets/_Cw9GxBkQ.js.br +0 -0
  166. package/dist/public/assets/_CwLlOfhS.js +1 -0
  167. package/dist/public/assets/_Cz606f5R.js +7 -0
  168. package/dist/public/assets/_Cz606f5R.js.br +0 -0
  169. package/dist/public/assets/{_Ci_ERulo.js → _D-pAxlQ-.js} +4 -4
  170. package/dist/public/assets/_D-pAxlQ-.js.br +0 -0
  171. package/dist/public/assets/_D24Cf_aJ.js +1 -0
  172. package/dist/public/assets/_D2Bfy3Mq.js +1 -0
  173. package/dist/public/assets/_D3_-HE_e.js +1 -0
  174. package/dist/public/assets/{_DFY87HPv.js → _D4XHSL1o.js} +1 -1
  175. package/dist/public/assets/_D4XHSL1o.js.br +0 -0
  176. package/dist/public/assets/_D8WYrmFe.js +1 -0
  177. package/dist/public/assets/_D8WYrmFe.js.br +0 -0
  178. package/dist/public/assets/{_CvE-okFl.js → _D9-mnhpM.js} +1 -1
  179. package/dist/public/assets/_D9-mnhpM.js.br +0 -0
  180. package/dist/public/assets/_DBjp4Oaj.js +1 -0
  181. package/dist/public/assets/_DBzqRlRQ.js +1 -0
  182. package/dist/public/assets/_DC6M2qH2.js +1 -0
  183. package/dist/public/assets/{_Bp1Rz6F-.js → _DE5SUDS8.js} +1 -1
  184. package/dist/public/assets/_DE5SUDS8.js.br +0 -0
  185. package/dist/public/assets/_DEGMhwoO.js +1 -0
  186. package/dist/public/assets/{_CGhrSui5.js → _DIEqAzJB.js} +1 -1
  187. package/dist/public/assets/_DIEqAzJB.js.br +0 -0
  188. package/dist/public/assets/{_DMBxaUer.js → _DJVQZQI-.js} +1 -1
  189. package/dist/public/assets/_DJVQZQI-.js.br +0 -0
  190. package/dist/public/assets/_DL8YLICC.js +1 -0
  191. package/dist/public/assets/{_DbUkj7Cm.js → _DLoAVrbv.js} +1 -1
  192. package/dist/public/assets/_DLoAVrbv.js.br +0 -0
  193. package/dist/public/assets/_DLpha-BN.js +1 -0
  194. package/dist/public/assets/{_BIIXVFJS.js → _DPKcpw43.js} +1 -1
  195. package/dist/public/assets/_DPKcpw43.js.br +0 -0
  196. package/dist/public/assets/{_CE0xb-t1.js → _DUEm1sqD.js} +1 -1
  197. package/dist/public/assets/_DUEm1sqD.js.br +0 -0
  198. package/dist/public/assets/_DX8wVfyk.js +1 -0
  199. package/dist/public/assets/_DXEbBRHY.js +1 -0
  200. package/dist/public/assets/_DX_AAVan.js +1 -0
  201. package/dist/public/assets/_DXhgTM12.js +1 -0
  202. package/dist/public/assets/{_DxpmRvl2.js → _DcCeapFB.js} +1 -1
  203. package/dist/public/assets/_DcCeapFB.js.br +0 -0
  204. package/dist/public/assets/{_CRW1wfql.js → _DdWxi_D9.js} +2 -2
  205. package/dist/public/assets/_DdWxi_D9.js.br +0 -0
  206. package/dist/public/assets/{_Bc6bSDC7.js → _DeGJuali.js} +1 -1
  207. package/dist/public/assets/_DeGJuali.js.br +0 -0
  208. package/dist/public/assets/_Dge-T7VA.js +1 -0
  209. package/dist/public/assets/{_D_LJ8pmO.js → _Dh_fGh7B.js} +1 -1
  210. package/dist/public/assets/_Dh_fGh7B.js.br +0 -0
  211. package/dist/public/assets/_DlKCZs5m.js +1 -0
  212. package/dist/public/assets/_DmAY0SHM.js +1 -0
  213. package/dist/public/assets/{_CBZYZvX6.js → _DmBJQY0z.js} +1 -1
  214. package/dist/public/assets/_DmBJQY0z.js.br +0 -0
  215. package/dist/public/assets/{_Bg2QU4YL.js → _DmISa8wc.js} +1 -1
  216. package/dist/public/assets/_DmISa8wc.js.br +0 -0
  217. package/dist/public/assets/_DpUeYTvU.js +1 -0
  218. package/dist/public/assets/_DqcTAqJs.js +1 -0
  219. package/dist/public/assets/_DrntETw8.js +1 -0
  220. package/dist/public/assets/_Dsb-mJGm.js +1 -0
  221. package/dist/public/assets/{_BspJ2pqw.js → _DuKrnKV2.js} +1 -1
  222. package/dist/public/assets/_DuKrnKV2.js.br +0 -0
  223. package/dist/public/assets/{_Bz-XjNLZ.js → _Dv298HDL.js} +1 -1
  224. package/dist/public/assets/_Dv298HDL.js.br +0 -0
  225. package/dist/public/assets/{_CZjD55hp.js → _DxgeJa1G.js} +1 -1
  226. package/dist/public/assets/_DxgeJa1G.js.br +0 -0
  227. package/dist/public/assets/_DxpwwPqc.js +1 -0
  228. package/dist/public/assets/{_B61sbHCY.js → _G0Ur49hc.js} +1 -1
  229. package/dist/public/assets/_G0Ur49hc.js.br +0 -0
  230. package/dist/public/assets/_GRlZXT_k.js +1 -0
  231. package/dist/public/assets/{_Df9tDuQJ.js → _HnJD2Vzo.js} +1 -1
  232. package/dist/public/assets/_HnJD2Vzo.js.br +0 -0
  233. package/dist/public/assets/{_DSR-ekR6.js → _KtT9ovgB.js} +1 -1
  234. package/dist/public/assets/_KtT9ovgB.js.br +0 -0
  235. package/dist/public/assets/{_UQ7mzph0.js → _LsFmgSj_.js} +1 -1
  236. package/dist/public/assets/_LsFmgSj_.js.br +0 -0
  237. package/dist/public/assets/_M2eABJML.js +1 -0
  238. package/dist/public/assets/_N7_4E3sa.js +1 -0
  239. package/dist/public/assets/_SCQ7gzWP.js +1 -0
  240. package/dist/public/assets/{_BHWL6thp.js → _SkNT3g1t.js} +1 -1
  241. package/dist/public/assets/_SkNT3g1t.js.br +0 -0
  242. package/dist/public/assets/{_D8duRYg_.js → _T32b15Ve.js} +1 -1
  243. package/dist/public/assets/_T32b15Ve.js.br +0 -0
  244. package/dist/public/assets/{_BX6cHZRC.js → _TOwFHHoM.js} +1 -1
  245. package/dist/public/assets/_TOwFHHoM.js.br +0 -0
  246. package/dist/public/assets/_UUd1gazT.js +1 -0
  247. package/dist/public/assets/{_Do2K8-PP.js → _YTVYw9XV.js} +1 -1
  248. package/dist/public/assets/_YTVYw9XV.js.br +0 -0
  249. package/dist/public/assets/{_CrkyDA5s.js → _ZlbOPzr7.js} +1 -1
  250. package/dist/public/assets/_ZlbOPzr7.js.br +0 -0
  251. package/dist/public/assets/{_C9bVnGYg.js → _a3BQDAxj.js} +1 -1
  252. package/dist/public/assets/_a3BQDAxj.js.br +0 -0
  253. package/dist/public/assets/{_DqMNxlrt.js → _aVJfol8S.js} +1 -1
  254. package/dist/public/assets/_aVJfol8S.js.br +0 -0
  255. package/dist/public/assets/{_DSd4RC98.js → _ee3nMJZE.js} +5 -5
  256. package/dist/public/assets/_ee3nMJZE.js.br +0 -0
  257. package/dist/public/assets/{_BrQz9_1N.js → _fBJXUlyl.js} +1 -1
  258. package/dist/public/assets/_fBJXUlyl.js.br +0 -0
  259. package/dist/public/assets/{_DuDDRKYO.js → _gy0a9Cmp.js} +1 -1
  260. package/dist/public/assets/_gy0a9Cmp.js.br +0 -0
  261. package/dist/public/assets/_iTbVHO4b.js +1 -0
  262. package/dist/public/assets/_k79dEMkm.js +1 -0
  263. package/dist/public/assets/{_BLm52mIb.js → _kHV7j6Zv.js} +1 -1
  264. package/dist/public/assets/_kHV7j6Zv.js.br +0 -0
  265. package/dist/public/assets/{_CK1km0hv.js → _l9Ig5EJO.js} +1 -1
  266. package/dist/public/assets/_l9Ig5EJO.js.br +0 -0
  267. package/dist/public/assets/{_CcdwplWu.js → _lCk1CAYf.js} +1 -1
  268. package/dist/public/assets/_lYxkU02J.js +1 -0
  269. package/dist/public/assets/{_BrwA1d2e.js → _rizgJsHK.js} +1 -1
  270. package/dist/public/assets/_rizgJsHK.js.br +0 -0
  271. package/dist/public/assets/_rmo2BlTL.js +1 -0
  272. package/dist/public/assets/_sEygC0rY.js +1 -0
  273. package/dist/public/assets/_sEygC0rY.js.br +0 -0
  274. package/dist/public/assets/{_Cz1WbAmd.js → _ulL_yezz.js} +1 -1
  275. package/dist/public/assets/_ulL_yezz.js.br +0 -0
  276. package/dist/public/assets/_vWNf9U23.js +1 -0
  277. package/dist/public/assets/_vd2rHjSk.js +1 -0
  278. package/dist/public/assets/{_7VrGDfKO.js → _w3JsvUod.js} +1 -1
  279. package/dist/public/assets/{_5qNa1gUY.js → _wC0cYIUL.js} +10 -10
  280. package/dist/public/assets/_wC0cYIUL.js.br +0 -0
  281. package/dist/public/assets/{_CAzNnO2u.js → _zGawNqPU.js} +1 -1
  282. package/dist/public/assets/_zGawNqPU.js.br +0 -0
  283. package/dist/public/assets/files-view-D9y_w_28.js +2 -0
  284. package/dist/public/assets/manage-workspace-BCRACsUn.js +2 -0
  285. package/dist/public/assets/new-BdLH98ro.js +1 -0
  286. package/dist/public/assets/new-workspace-TMTnjdBC.js +2 -0
  287. package/dist/public/assets/review-view-CvIicWqZ.js +2 -0
  288. package/dist/public/assets/settings-BdLH98ro.js +1 -0
  289. package/dist/public/assets/settings-page-I3W3CL5p.js +2 -0
  290. package/dist/public/assets/styles-D39vLjzP.css +1 -0
  291. package/dist/public/assets/styles-D39vLjzP.css.br +0 -0
  292. package/dist/public/assets/w-BdLH98ro.js +1 -0
  293. package/dist/public/assets/w._-BD4s-fU6.js +1 -0
  294. package/dist/public/assets/w._-BdLH98ro.js +1 -0
  295. package/dist/public/assets/w._-DnOj6Zzs.js +1 -0
  296. package/package.json +1 -1
  297. package/dist/_B6qckFq1.js +0 -2
  298. package/dist/_CBOkek-4.js +0 -2
  299. package/dist/public/assets/_52DoEo8V.js +0 -1
  300. package/dist/public/assets/_5qNa1gUY.js.br +0 -0
  301. package/dist/public/assets/_5vLD4tJs.js +0 -1
  302. package/dist/public/assets/_6Sl2jvWD.js +0 -1
  303. package/dist/public/assets/_7zNXz1VW.js +0 -1
  304. package/dist/public/assets/_9VzenYwR.js.br +0 -0
  305. package/dist/public/assets/_B-Gxv-J2.js +0 -1
  306. package/dist/public/assets/_B0WAFbs8.js.br +0 -0
  307. package/dist/public/assets/_B0uBThg8.js.br +0 -0
  308. package/dist/public/assets/_B4eacQhm.js.br +0 -0
  309. package/dist/public/assets/_B61sbHCY.js.br +0 -0
  310. package/dist/public/assets/_B70kYzED.js.br +0 -0
  311. package/dist/public/assets/_BA_k06GS.js.br +0 -0
  312. package/dist/public/assets/_BBu_e8_X.js +0 -1
  313. package/dist/public/assets/_BBu_e8_X.js.br +0 -0
  314. package/dist/public/assets/_BCifgx0o.js +0 -1
  315. package/dist/public/assets/_BDYmhvhb.js +0 -1
  316. package/dist/public/assets/_BDc6HTci.js +0 -1
  317. package/dist/public/assets/_BDc6HTci.js.br +0 -0
  318. package/dist/public/assets/_BGMYJ1-b.js.br +0 -0
  319. package/dist/public/assets/_BHWL6thp.js.br +0 -0
  320. package/dist/public/assets/_BHmNKeaW.js +0 -1
  321. package/dist/public/assets/_BIIXVFJS.js.br +0 -0
  322. package/dist/public/assets/_BIPl5Jln.js +0 -1
  323. package/dist/public/assets/_BIUx68NF.js +0 -1
  324. package/dist/public/assets/_BIZETXBI.js.br +0 -0
  325. package/dist/public/assets/_BJBaL1kO.js +0 -1
  326. package/dist/public/assets/_BLm52mIb.js.br +0 -0
  327. package/dist/public/assets/_BNZgCt2D.js.br +0 -0
  328. package/dist/public/assets/_BO-NDKjv.js.br +0 -0
  329. package/dist/public/assets/_BP3daLRF.js.br +0 -0
  330. package/dist/public/assets/_BRXPkWkz.js.br +0 -0
  331. package/dist/public/assets/_BSnuFn6s.js +0 -1
  332. package/dist/public/assets/_BV-jCckF.js +0 -1
  333. package/dist/public/assets/_BW5KN-7X.js +0 -1
  334. package/dist/public/assets/_BWiyHfcY.js +0 -1
  335. package/dist/public/assets/_BWrNVFBT.js +0 -1
  336. package/dist/public/assets/_BX6cHZRC.js.br +0 -0
  337. package/dist/public/assets/_Bc6bSDC7.js.br +0 -0
  338. package/dist/public/assets/_BcnofYSF.js +0 -1
  339. package/dist/public/assets/_Bd54ZeV7.js +0 -1
  340. package/dist/public/assets/_BfPvaVwz.js +0 -1
  341. package/dist/public/assets/_Bg2QU4YL.js.br +0 -0
  342. package/dist/public/assets/_BgOKQo-U.js.br +0 -0
  343. package/dist/public/assets/_BjSq4BzQ.js +0 -1
  344. package/dist/public/assets/_BmKHBiNs.js.br +0 -0
  345. package/dist/public/assets/_Bp1Rz6F-.js.br +0 -0
  346. package/dist/public/assets/_BpvijjYe.js +0 -1
  347. package/dist/public/assets/_BpvijjYe.js.br +0 -0
  348. package/dist/public/assets/_BrQz9_1N.js.br +0 -0
  349. package/dist/public/assets/_BrwA1d2e.js.br +0 -0
  350. package/dist/public/assets/_BsSjoVSF.js +0 -1
  351. package/dist/public/assets/_BsZOFgem.js.br +0 -0
  352. package/dist/public/assets/_BsgMUS5v.js +0 -1
  353. package/dist/public/assets/_BspJ2pqw.js.br +0 -0
  354. package/dist/public/assets/_BtZ336jh.js.br +0 -0
  355. package/dist/public/assets/_BvCAp6ap.js +0 -1
  356. package/dist/public/assets/_BvOUeUZa.js +0 -1
  357. package/dist/public/assets/_Bva9S0Lp.js +0 -1
  358. package/dist/public/assets/_By8hC_3V.js +0 -1
  359. package/dist/public/assets/_ByjvEM2K.js +0 -1
  360. package/dist/public/assets/_Bz-XjNLZ.js.br +0 -0
  361. package/dist/public/assets/_C-M_kClx.js.br +0 -0
  362. package/dist/public/assets/_C0pj3hDu.js +0 -1
  363. package/dist/public/assets/_C33Ig972.js.br +0 -0
  364. package/dist/public/assets/_C9bVnGYg.js.br +0 -0
  365. package/dist/public/assets/_CAzNnO2u.js.br +0 -0
  366. package/dist/public/assets/_CBYhG-Jk.js +0 -1
  367. package/dist/public/assets/_CBZYZvX6.js.br +0 -0
  368. package/dist/public/assets/_CC-TbOxb.js +0 -1
  369. package/dist/public/assets/_CDRpwb4M.js +0 -1
  370. package/dist/public/assets/_CE0xb-t1.js.br +0 -0
  371. package/dist/public/assets/_CEms_Z-6.js.br +0 -0
  372. package/dist/public/assets/_CGhrSui5.js.br +0 -0
  373. package/dist/public/assets/_CGsMyVqh.js +0 -1
  374. package/dist/public/assets/_CGslQHw6.js +0 -2
  375. package/dist/public/assets/_CGslQHw6.js.br +0 -0
  376. package/dist/public/assets/_CH4p6ja3.js.br +0 -0
  377. package/dist/public/assets/_CI503IRR.js.br +0 -0
  378. package/dist/public/assets/_CK1km0hv.js.br +0 -0
  379. package/dist/public/assets/_CNLzm8LQ.js +0 -1
  380. package/dist/public/assets/_CO9uHpUR.js +0 -1
  381. package/dist/public/assets/_CRDS_Qnj.js +0 -1
  382. package/dist/public/assets/_CRW1wfql.js.br +0 -0
  383. package/dist/public/assets/_CRm4PdBT.js +0 -1
  384. package/dist/public/assets/_CTb8ws2D.js +0 -1
  385. package/dist/public/assets/_CUcuo0OF.js.br +0 -0
  386. package/dist/public/assets/_CZjD55hp.js.br +0 -0
  387. package/dist/public/assets/_C_zHPihH.js +0 -1
  388. package/dist/public/assets/_Cd8cJJ5d.js +0 -1
  389. package/dist/public/assets/_CebKs3BC.js.br +0 -0
  390. package/dist/public/assets/_ChLHPeVd.js +0 -1
  391. package/dist/public/assets/_ChPi7Qia.js +0 -1
  392. package/dist/public/assets/_Ci_ERulo.js.br +0 -0
  393. package/dist/public/assets/_CnA75RK-.js +0 -1
  394. package/dist/public/assets/_CrkyDA5s.js.br +0 -0
  395. package/dist/public/assets/_Crlc-QAY.js +0 -1
  396. package/dist/public/assets/_Ct2onnrq.js.br +0 -0
  397. package/dist/public/assets/_CvE-okFl.js.br +0 -0
  398. package/dist/public/assets/_CvFxFb7b.js +0 -1
  399. package/dist/public/assets/_Cvmxsqbk.js.br +0 -0
  400. package/dist/public/assets/_Cx0XNN9g.js +0 -1
  401. package/dist/public/assets/_Cx3eVwn1.js +0 -1
  402. package/dist/public/assets/_Cxf_IUf4.js.br +0 -0
  403. package/dist/public/assets/_Cz1WbAmd.js.br +0 -0
  404. package/dist/public/assets/_D-_xeCD1.js.br +0 -0
  405. package/dist/public/assets/_D2AWXbDz.js +0 -1
  406. package/dist/public/assets/_D4R7X41o.js +0 -1
  407. package/dist/public/assets/_D5SMLcbR.js +0 -1
  408. package/dist/public/assets/_D5szhG6N.js.br +0 -0
  409. package/dist/public/assets/_D8duRYg_.js.br +0 -0
  410. package/dist/public/assets/_DBi6AZp1.js.br +0 -0
  411. package/dist/public/assets/_DDF_obmV.js +0 -1
  412. package/dist/public/assets/_DEdUC-99.js.br +0 -0
  413. package/dist/public/assets/_DFY87HPv.js.br +0 -0
  414. package/dist/public/assets/_DMBxaUer.js.br +0 -0
  415. package/dist/public/assets/_DMCzgljm.js +0 -1
  416. package/dist/public/assets/_DMIFpGTL.js.br +0 -0
  417. package/dist/public/assets/_DNAALd01.js +0 -1
  418. package/dist/public/assets/_DOvWbnNI.js +0 -1
  419. package/dist/public/assets/_DRD9BWmW.js.br +0 -0
  420. package/dist/public/assets/_DSR-ekR6.js.br +0 -0
  421. package/dist/public/assets/_DSd4RC98.js.br +0 -0
  422. package/dist/public/assets/_DVWPCuX6.js +0 -1
  423. package/dist/public/assets/_DXW91wcG.js +0 -1
  424. package/dist/public/assets/_DYKYQ8m8.js +0 -1
  425. package/dist/public/assets/_D_LJ8pmO.js.br +0 -0
  426. package/dist/public/assets/_Db-Unv14.js +0 -1
  427. package/dist/public/assets/_DbUkj7Cm.js.br +0 -0
  428. package/dist/public/assets/_Dcfan7km.js +0 -1
  429. package/dist/public/assets/_Dcfe_1SB.js +0 -1
  430. package/dist/public/assets/_Dcfe_1SB.js.br +0 -0
  431. package/dist/public/assets/_DdIt6KC0.js +0 -1
  432. package/dist/public/assets/_Df9tDuQJ.js.br +0 -0
  433. package/dist/public/assets/_DgEX6kkV.js.br +0 -0
  434. package/dist/public/assets/_DiRP-nIf.js +0 -1
  435. package/dist/public/assets/_DlrFmXHy.js.br +0 -0
  436. package/dist/public/assets/_Do2K8-PP.js.br +0 -0
  437. package/dist/public/assets/_Dpeqvq2b.js +0 -1
  438. package/dist/public/assets/_DphFWoqW.js +0 -1
  439. package/dist/public/assets/_DqMNxlrt.js.br +0 -0
  440. package/dist/public/assets/_DqtM_bbr.js.br +0 -0
  441. package/dist/public/assets/_Dr000eW7.js.br +0 -0
  442. package/dist/public/assets/_DrChcZDh.js.br +0 -0
  443. package/dist/public/assets/_DuDDRKYO.js.br +0 -0
  444. package/dist/public/assets/_Dwsl_wKj.js.br +0 -0
  445. package/dist/public/assets/_Dwv8BEGB.js.br +0 -0
  446. package/dist/public/assets/_DxSjwdlY.js.br +0 -0
  447. package/dist/public/assets/_DxpmRvl2.js.br +0 -0
  448. package/dist/public/assets/_Dz88Dpub.js +0 -1
  449. package/dist/public/assets/_HauWfpUn.js +0 -1
  450. package/dist/public/assets/_Ijrn9E9G.js +0 -1
  451. package/dist/public/assets/_M4FQh9bC.js +0 -1
  452. package/dist/public/assets/_QORYcpTd.js.br +0 -0
  453. package/dist/public/assets/_Qauup-ns.js.br +0 -0
  454. package/dist/public/assets/_TlisgNCJ.js.br +0 -0
  455. package/dist/public/assets/_UQ7mzph0.js.br +0 -0
  456. package/dist/public/assets/_UcX6VY7d.js.br +0 -0
  457. package/dist/public/assets/_WlELMoKQ.js.br +0 -0
  458. package/dist/public/assets/_XoAXFntv.js +0 -1
  459. package/dist/public/assets/_ZGgC0r2G.js +0 -1
  460. package/dist/public/assets/__DiIExtT.js +0 -1
  461. package/dist/public/assets/__GQz4qRd.js.br +0 -0
  462. package/dist/public/assets/__dK-lv2S.js +0 -1
  463. package/dist/public/assets/__s7yh6D2.js +0 -1
  464. package/dist/public/assets/_bq3cGUln.js.br +0 -0
  465. package/dist/public/assets/_cqJmKjxj.js +0 -1
  466. package/dist/public/assets/_hDmRiKUw.js.br +0 -0
  467. package/dist/public/assets/_jHMZ7_SS.js.br +0 -0
  468. package/dist/public/assets/_lUUoHbkp.js +0 -1
  469. package/dist/public/assets/_lVS7e3_v.js.br +0 -0
  470. package/dist/public/assets/_lap_hed5.js +0 -1
  471. package/dist/public/assets/_lap_hed5.js.br +0 -0
  472. package/dist/public/assets/_oAmRs9Id.js +0 -1
  473. package/dist/public/assets/_r3ADao7e.js +0 -7
  474. package/dist/public/assets/_r3ADao7e.js.br +0 -0
  475. package/dist/public/assets/_saecw7-8.js +0 -1
  476. package/dist/public/assets/_tDQjJjsw.js +0 -1
  477. package/dist/public/assets/_v-b8Pv1D.js +0 -1
  478. package/dist/public/assets/_vnY6YQ72.js +0 -1
  479. package/dist/public/assets/_yG7fM3OX.js +0 -1
  480. package/dist/public/assets/_yGoKwpSc.js +0 -1
  481. package/dist/public/assets/_yzVrMpiX.js +0 -1
  482. package/dist/public/assets/files-view-CRP8mZ8A.js +0 -2
  483. package/dist/public/assets/manage-workspace-g9et8r1N.js +0 -2
  484. package/dist/public/assets/new-COiDKbdJ.js +0 -1
  485. package/dist/public/assets/new-workspace-BUibVLk7.js +0 -2
  486. package/dist/public/assets/review-view-AmmjoEDt.js +0 -2
  487. package/dist/public/assets/settings-COiDKbdJ.js +0 -1
  488. package/dist/public/assets/settings-page-CsNPZ11b.js +0 -2
  489. package/dist/public/assets/styles-D4_8DmOT.css +0 -1
  490. package/dist/public/assets/styles-D4_8DmOT.css.br +0 -0
  491. package/dist/public/assets/w-COiDKbdJ.js +0 -1
  492. package/dist/public/assets/w._-COiDKbdJ.js +0 -1
  493. package/dist/public/assets/w._-Tuxo-Ck_.js +0 -1
  494. package/dist/public/assets/w._-slbhbJCW.js +0 -1
@@ -0,0 +1,2 @@
1
+ import { h as teamsOf } from "./_Da7kjbAP.js";
2
+ export { teamsOf };
@@ -0,0 +1,2 @@
1
+ import { X as notifySessionsChanged } from "./_CilTmd3l.js";
2
+ export { notifySessionsChanged };
@@ -9659,7 +9659,7 @@ function publishChange(sessionId) {
9659
9659
  const row = get("SELECT workspace_id FROM sessions WHERE id = ?", sessionId);
9660
9660
  if (row?.workspace_id) {
9661
9661
  const workspaceId = row.workspace_id;
9662
- import("./_CBOkek-4.js").then((m) => m.notifySessionsChanged(workspaceId));
9662
+ import("./_C29NgtBI.js").then((m) => m.notifySessionsChanged(workspaceId));
9663
9663
  return;
9664
9664
  }
9665
9665
  publish("sessions.changed");
@@ -12577,11 +12577,11 @@ async function pruneWorkspaceSnaps(ws) {
12577
12577
  const live = new Set([...reviewPoints(ws.id).values()].map((p) => p.snap));
12578
12578
  for (const repo of ws.repos) await pruneSnaps(path.join(ws.path, repo.worktree), ws.id, live).catch(() => {});
12579
12579
  }
12580
- var started = false;
12580
+ var started$1 = false;
12581
12581
  /** A minute after boot and hourly after, every active workspace's sweep. */
12582
12582
  function startSnapSweep() {
12583
- if (started) return;
12584
- started = true;
12583
+ if (started$1) return;
12584
+ started$1 = true;
12585
12585
  const sweep = () => {
12586
12586
  for (const { id } of all("SELECT id FROM workspaces WHERE status = 'active'")) {
12587
12587
  const ws = getWorkspace(id);
@@ -16722,7 +16722,7 @@ function serverAt(key, def, root, checkout, cmd, forWarm) {
16722
16722
  return srv;
16723
16723
  }
16724
16724
  /** When a server last mattered: asked, or warmed for a page. */
16725
- var touched = (s) => Math.max(s.lastUsed, s.lastWarm);
16725
+ var touched$1 = (s) => Math.max(s.lastUsed, s.lastWarm);
16726
16726
  /** Stop the least recently touched idle servers until one more fits, and
16727
16727
  * say whether it does. A question makes room from any server not
16728
16728
  * mid-question (a burst can overshoot); a warm only from ones unused for a
@@ -16730,7 +16730,7 @@ var touched = (s) => Math.max(s.lastUsed, s.lastWarm);
16730
16730
  function makeRoom(forWarm = false) {
16731
16731
  const live = [...servers.values()].filter((s) => !s.stopping);
16732
16732
  const now = Date.now();
16733
- const idle = live.filter((s) => !s.busy && (!forWarm || now - touched(s) > RECENT_MS)).sort((a, b) => touched(a) - touched(b));
16733
+ const idle = live.filter((s) => !s.busy && (!forWarm || now - touched$1(s) > RECENT_MS)).sort((a, b) => touched$1(a) - touched$1(b));
16734
16734
  let n = live.length;
16735
16735
  for (; n >= MAX_RUNNING && idle.length; n--) stop(idle.shift());
16736
16736
  return n < MAX_RUNNING;
@@ -16923,7 +16923,7 @@ setInterval(() => {
16923
16923
  if (!lspEnabled()) {
16924
16924
  for (const s of servers.values()) if (!s.busy) stop(s);
16925
16925
  }
16926
- for (const s of servers.values()) if (!s.busy && now - touched(s) > (s.lastUsed ? IDLE_MS : WARM_IDLE_MS)) stop(s);
16926
+ for (const s of servers.values()) if (!s.busy && now - touched$1(s) > (s.lastUsed ? IDLE_MS : WARM_IDLE_MS)) stop(s);
16927
16927
  }, 6e4).unref();
16928
16928
  function exclusive(srv, fn) {
16929
16929
  const run = srv.queue.then(fn, fn);
@@ -18005,7 +18005,7 @@ function notifySessionsChanged(workspaceId) {
18005
18005
  async function emitSessionsChanged(workspaceId) {
18006
18006
  try {
18007
18007
  const states = await sessionStates();
18008
- const { teamsOf } = await import("./_B6qckFq1.js");
18008
+ const { teamsOf } = await import("./_BkRvQO5r.js");
18009
18009
  publish("sessions.changed", {
18010
18010
  workspaceId,
18011
18011
  sessions: listSessions(workspaceId).map((s) => ({
@@ -18282,11 +18282,13 @@ async function listPanesNow() {
18282
18282
  * (tmux exits when its last session closes). */
18283
18283
  async function ensureTmuxServer() {
18284
18284
  if (await tmux(["has-session"]).then(() => true, () => false)) return;
18285
- await run$2("systemd-run", [
18285
+ const unit = TMUX_SOCKET === "work" ? "work-tmux" : `work-tmux-${TMUX_SOCKET.replace(/[^\w.:-]/g, "_")}`;
18286
+ const start = (props) => run$2("systemd-run", [
18286
18287
  "--user",
18287
- `--unit=${TMUX_SOCKET === "work" ? "work-tmux" : `work-tmux-${TMUX_SOCKET.replace(/[^\w.:-]/g, "_")}`}`,
18288
+ `--unit=${unit}`,
18288
18289
  "--service-type=forking",
18289
18290
  "--collect",
18291
+ ...props,
18290
18292
  "tmux",
18291
18293
  "-L",
18292
18294
  TMUX_SOCKET,
@@ -18296,7 +18298,24 @@ async function ensureTmuxServer() {
18296
18298
  "work-keeper",
18297
18299
  "sleep",
18298
18300
  "infinity"
18299
- ], os.homedir()).catch(() => {});
18301
+ ], os.homedir());
18302
+ const files = openFileLimit();
18303
+ await start(files ? [`--property=LimitNOFILE=${files}`] : []).catch(() => files ? start([]) : Promise.reject()).catch(() => {});
18304
+ }
18305
+ /** This server's open-file limit, for tmux's server: it holds a socket and
18306
+ * a tty for every client attached and a pty for every pane, and a systemd
18307
+ * user unit starts at the manager's soft default (1024), past which tmux
18308
+ * accepts no client and every tmux command hangs. Node raised its own soft
18309
+ * limit to the hard one as it started; a tmux it starts itself (no
18310
+ * systemd) inherits that. */
18311
+ function openFileLimit() {
18312
+ try {
18313
+ const hard = fs.readFileSync("/proc/self/limits", "utf8").split("\n").find((l) => l.startsWith("Max open files"))?.split(/\s{2,}/)[2];
18314
+ if (hard === "unlimited") return "infinity";
18315
+ return hard && /^\d+$/.test(hard) ? hard : null;
18316
+ } catch {
18317
+ return null;
18318
+ }
18300
18319
  }
18301
18320
  /** Full tmux command (options + new-session) for creating/attaching a
18302
18321
  * session's tmux; `mode` is "-d" (create detached) or "-A" (attach-or-create).
@@ -18570,9 +18589,10 @@ function sessionEnvArgs(session, cwd) {
18570
18589
  }
18571
18590
  /** A session's scratch (`TMPDIR`): its workspace's own `.tmp/`, on disk
18572
18591
  * and gone with the workspace (and out of backups), where `/tmp` is a
18573
- * small tmpfs every workspace shares and nothing empties: agents' repro
18574
- * servers and installs there ran it out of inodes. Made here, since a
18575
- * `TMPDIR` that does not exist fails `mktemp` outright. */
18592
+ * small tmpfs every workspace shares: agents' repro servers and installs
18593
+ * there ran it out of inodes. It empties as `/tmp` does (tmp-sweep.ts).
18594
+ * Made here, since a `TMPDIR` that does not exist fails `mktemp`
18595
+ * outright. */
18576
18596
  function sessionTmp(cwd) {
18577
18597
  const dir = path.join(cwd, ".tmp");
18578
18598
  fs.mkdirSync(dir, { recursive: true });
@@ -18666,6 +18686,258 @@ function ensureAllPushHooks() {
18666
18686
  }
18667
18687
  }
18668
18688
  //#endregion
18689
+ //#region src/server/tmp-sweep.ts
18690
+ /**
18691
+ * A workspace's `.tmp/` is its sessions' `TMPDIR` (sessions.ts
18692
+ * `sessionTmp`), and agents fill it the way they would fill `/tmp`: clones,
18693
+ * installs, repro servers, logs. Nothing else ever emptied it, so it grew
18694
+ * to tens of gigabytes a workspace. It is emptied the way the machine
18695
+ * empties its own `/tmp`: what has gone untouched for as long as `/tmp`
18696
+ * keeps an entry goes, by the rules `systemd-tmpfiles --clean` applies, on
18697
+ * its schedule.
18698
+ */
18699
+ var DAY = 864e5;
18700
+ /** systemd's own age for `/tmp` (its shipped `tmp.conf`), and the age where
18701
+ * nothing on the machine names one. */
18702
+ var SYSTEMD_TMP_AGE = 10 * DAY;
18703
+ /** macOS's `daily_clean_tmps_days` as shipped. */
18704
+ var MAC_TMP_DAYS = 3;
18705
+ /** As `systemd-tmpfiles-clean.timer`: 15 minutes after start, then daily. */
18706
+ var FIRST_SWEEP_MS = 9e5;
18707
+ var SWEEP_EVERY_MS = DAY;
18708
+ /** Where systemd-tmpfiles reads its config, first to last: a file in an
18709
+ * earlier directory hides one of the same name in a later one. */
18710
+ var TMPFILES_DIRS = [
18711
+ "/etc/tmpfiles.d",
18712
+ "/run/tmpfiles.d",
18713
+ "/usr/local/lib/tmpfiles.d",
18714
+ "/usr/lib/tmpfiles.d"
18715
+ ];
18716
+ /** macOS periodic(8)'s config, each assignment overriding the one before. */
18717
+ var PERIODIC_CONFS = [
18718
+ "/etc/defaults/periodic.conf",
18719
+ "/etc/periodic.conf",
18720
+ "/etc/periodic.conf.local"
18721
+ ];
18722
+ var UNIT_MS = {
18723
+ us: .001,
18724
+ usec: .001,
18725
+ ms: 1,
18726
+ msec: 1,
18727
+ s: 1e3,
18728
+ sec: 1e3,
18729
+ second: 1e3,
18730
+ seconds: 1e3,
18731
+ m: 6e4,
18732
+ min: 6e4,
18733
+ minute: 6e4,
18734
+ minutes: 6e4,
18735
+ h: 36e5,
18736
+ hr: 36e5,
18737
+ hour: 36e5,
18738
+ hours: 36e5,
18739
+ d: DAY,
18740
+ day: DAY,
18741
+ days: DAY,
18742
+ w: 7 * DAY,
18743
+ week: 7 * DAY,
18744
+ weeks: 7 * DAY,
18745
+ M: 30.44 * DAY,
18746
+ month: 30.44 * DAY,
18747
+ months: 30.44 * DAY,
18748
+ y: 365.25 * DAY,
18749
+ year: 365.25 * DAY,
18750
+ years: 365.25 * DAY
18751
+ };
18752
+ /** A tmpfiles.d age (`10d`, `1w 2d`, `~12h`, `ac:30d`) in ms: null for
18753
+ * `-` or none, which means never cleaned. */
18754
+ function parseAge(text) {
18755
+ if (!text || text === "-") return null;
18756
+ const span = text.replace(/^~/, "").replace(/^[aAbBcCmM]+:/, "");
18757
+ let ms = 0;
18758
+ let matched = "";
18759
+ for (const m of span.matchAll(/\s*(\d+(?:\.\d+)?)\s*([a-zA-Zµ]*)/g)) {
18760
+ const unit = m[2] === "" ? "s" : m[2] === "µs" ? "us" : m[2];
18761
+ if (!(unit in UNIT_MS)) return null;
18762
+ ms += Number(m[1]) * UNIT_MS[unit];
18763
+ matched += m[0];
18764
+ }
18765
+ return matched.trim() === span.trim() && matched ? ms : null;
18766
+ }
18767
+ /** `/tmp`'s age in this machine's tmpfiles.d config: undefined when no
18768
+ * line names `/tmp`. Of every file, the lexicographically first one with a
18769
+ * line for a path is the one applied, as systemd-tmpfiles does. */
18770
+ function tmpfilesAge(root) {
18771
+ const files = /* @__PURE__ */ new Map();
18772
+ for (const dir of TMPFILES_DIRS) {
18773
+ let names;
18774
+ try {
18775
+ names = fs.readdirSync(path.join(root, dir));
18776
+ } catch {
18777
+ continue;
18778
+ }
18779
+ for (const name of names) if (name.endsWith(".conf") && !files.has(name)) files.set(name, path.join(root, dir, name));
18780
+ }
18781
+ for (const name of [...files.keys()].sort()) {
18782
+ let text;
18783
+ try {
18784
+ text = fs.readFileSync(files.get(name), "utf8");
18785
+ } catch {
18786
+ continue;
18787
+ }
18788
+ for (const raw of text.split("\n")) {
18789
+ const line = raw.trim();
18790
+ if (!line || line.startsWith("#")) continue;
18791
+ const [type, where, , , , age] = line.split(/\s+/);
18792
+ if (where === "/tmp" && /^[dDeqQv]/.test(type)) return parseAge(age);
18793
+ }
18794
+ }
18795
+ }
18796
+ /** macOS cleans `/tmp` from periodic(8)'s daily run: what has gone
18797
+ * `daily_clean_tmps_days` untouched, while `daily_clean_tmps_enable`. */
18798
+ function periodicAge(root) {
18799
+ const vars = {};
18800
+ for (const file of PERIODIC_CONFS) {
18801
+ let text;
18802
+ try {
18803
+ text = fs.readFileSync(path.join(root, file), "utf8");
18804
+ } catch {
18805
+ continue;
18806
+ }
18807
+ for (const m of text.matchAll(/^\s*(daily_clean_tmps_(?:enable|days))\s*=\s*["']?([^"'\s#]*)/gm)) vars[m[1]] = m[2];
18808
+ }
18809
+ if ((vars.daily_clean_tmps_enable ?? "YES").toUpperCase() !== "YES") return null;
18810
+ const days = Number(vars.daily_clean_tmps_days);
18811
+ return (Number.isFinite(days) && days >= 0 ? days : MAC_TMP_DAYS) * DAY;
18812
+ }
18813
+ /** How long this machine's `/tmp` keeps an entry nobody touches, in ms:
18814
+ * null when it never ages one out. `WORK_TMP_AGE` (a tmpfiles.d age, or
18815
+ * `off`) overrides it. `root` and `platform` are for a test. */
18816
+ function tmpAge(opts = {}) {
18817
+ const env = opts.env ?? process.env.WORK_TMP_AGE;
18818
+ if (env) return /^(off|never|-)$/i.test(env) ? null : parseAge(env);
18819
+ const root = opts.root ?? "/";
18820
+ if ((opts.platform ?? process.platform) === "darwin") return periodicAge(root);
18821
+ const age = tmpfilesAge(root);
18822
+ return age === void 0 ? SYSTEMD_TMP_AGE : age;
18823
+ }
18824
+ /** When an entry was last touched, by the times systemd-tmpfiles weighs
18825
+ * by default (`abcmABM`): a file's access, birth, change and modification;
18826
+ * a directory's without its change time, which cleaning it moves. */
18827
+ function touched(st, dir) {
18828
+ return Math.max(st.atimeMs, st.mtimeMs, st.birthtimeMs || 0, dir ? 0 : st.ctimeMs);
18829
+ }
18830
+ /** Empties `dir` of what has gone `ageMs` untouched: each file past it,
18831
+ * then each directory past it once it is empty. `dir` itself stays, a
18832
+ * symlink is never followed (a `.tmp` that is one is left alone), and
18833
+ * another filesystem mounted inside is never entered. */
18834
+ async function sweepTmp(dir, ageMs, now = Date.now()) {
18835
+ const out = {
18836
+ removed: 0,
18837
+ bytes: 0
18838
+ };
18839
+ let top;
18840
+ try {
18841
+ top = await fs$1.lstat(dir);
18842
+ } catch {
18843
+ return out;
18844
+ }
18845
+ if (!top.isDirectory()) return out;
18846
+ await clean(dir, top, now - ageMs, out);
18847
+ return out;
18848
+ }
18849
+ /** Cleans one directory, `st` its times from before it was read; true when
18850
+ * nothing is left in it. */
18851
+ async function clean(dir, st, cutoff, out) {
18852
+ let handle;
18853
+ try {
18854
+ handle = await fs$1.opendir(dir);
18855
+ } catch {
18856
+ return false;
18857
+ }
18858
+ let left = 0;
18859
+ try {
18860
+ for await (const entry of handle) {
18861
+ const p = path.join(dir, entry.name);
18862
+ let s;
18863
+ try {
18864
+ s = await fs$1.lstat(p);
18865
+ } catch {
18866
+ continue;
18867
+ }
18868
+ if (s.dev !== st.dev) {
18869
+ left++;
18870
+ continue;
18871
+ }
18872
+ if (s.isDirectory()) {
18873
+ if (await clean(p, s, cutoff, out) && touched(s, true) < cutoff) try {
18874
+ await fs$1.rmdir(p);
18875
+ out.removed++;
18876
+ continue;
18877
+ } catch {}
18878
+ left++;
18879
+ continue;
18880
+ }
18881
+ if (touched(s, false) < cutoff) try {
18882
+ await fs$1.unlink(p);
18883
+ out.removed++;
18884
+ out.bytes += s.size;
18885
+ continue;
18886
+ } catch {}
18887
+ left++;
18888
+ }
18889
+ } catch {
18890
+ left++;
18891
+ }
18892
+ await fs$1.utimes(dir, st.atime, st.mtime).catch(() => {});
18893
+ return left === 0;
18894
+ }
18895
+ /** An age as the sweep's log and the workspace AGENTS.md say it. */
18896
+ function ageText(ms) {
18897
+ for (const [unit, per] of [
18898
+ ["day", DAY],
18899
+ ["hour", 36e5],
18900
+ ["minute", 6e4]
18901
+ ]) if (ms >= per) {
18902
+ const n = Math.round(ms / per);
18903
+ return `${n} ${unit}${n === 1 ? "" : "s"}`;
18904
+ }
18905
+ const n = Math.round(ms / 1e3);
18906
+ return `${n} second${n === 1 ? "" : "s"}`;
18907
+ }
18908
+ function size(bytes) {
18909
+ return bytes >= 1 << 30 ? `${(bytes / (1 << 30)).toFixed(1)} GiB` : `${Math.round(bytes / (1 << 20))} MiB`;
18910
+ }
18911
+ var started = false;
18912
+ /** Sweeps each `.tmp/` that `dirs` names, on systemd-tmpfiles-clean's
18913
+ * schedule, at the age `/tmp` has when each sweep starts (a machine whose
18914
+ * `/tmp` keeps everything keeps these too). `WORK_TMP_SWEEP_DELAY`
18915
+ * (seconds) moves the first sweep, for a test. */
18916
+ function startTmpSweep(dirs) {
18917
+ if (started) return;
18918
+ started = true;
18919
+ let running = false;
18920
+ const sweep = async () => {
18921
+ if (running) return;
18922
+ running = true;
18923
+ try {
18924
+ const age = tmpAge();
18925
+ if (age === null) return;
18926
+ for (const dir of dirs()) {
18927
+ const r = await sweepTmp(dir, age).catch(() => null);
18928
+ if (r?.removed) console.log(`[work] tmp: removed ${r.removed} entr${r.removed === 1 ? "y" : "ies"} (${size(r.bytes)}) untouched for ${ageText(age)} from ${dir}`);
18929
+ }
18930
+ } finally {
18931
+ running = false;
18932
+ }
18933
+ };
18934
+ const delay = Number(process.env.WORK_TMP_SWEEP_DELAY);
18935
+ setTimeout(() => {
18936
+ sweep();
18937
+ setInterval(() => void sweep(), SWEEP_EVERY_MS).unref?.();
18938
+ }, Number.isFinite(delay) && delay >= 0 ? delay * 1e3 : FIRST_SWEEP_MS).unref?.();
18939
+ }
18940
+ //#endregion
18669
18941
  //#region src/server/workspaces.ts
18670
18942
  /** Newest first, and never reordered by use: a row that moves as you
18671
18943
  * click or type is worse than a stale order. The nav groups rows by PR
@@ -19634,6 +19906,8 @@ function syncAgentsMd() {
19634
19906
  }
19635
19907
  function agentsMd(wsId, branch, repos, origin) {
19636
19908
  const first = repos[0]?.worktree ?? "<repo>";
19909
+ const tmpKept = tmpAge();
19910
+ const tmpLine = tmpKept === null ? "" : `\n It empties as the machine's \`/tmp\` does: whatever goes ${ageText(tmpKept)}\n untouched there is deleted.`;
19637
19911
  const repoLines = repos.map((r) => ` - \`${r.worktree}/\`: ${r.full_name}${r.default_branch === r.base_branch ? "" : ` (base: \`${r.base_branch}\`${r.default_branch ? `, default: \`${r.default_branch}\`` : ""})`}`).join("\n");
19638
19912
  const featureBase = !origin && repos.some((r) => r.default_branch && r.default_branch !== r.base_branch);
19639
19913
  const backportLine = featureBase ? ` (a backport: from \`origin/<default>\`)` : "";
@@ -19700,7 +19974,7 @@ ${repoLines}
19700
19974
  \`[login-after](/w/${wsId}/files?file=.share/<path>)\`, never a bare file
19701
19975
  name, which nothing opens (\`work open <path>\` offers it in the app too).
19702
19976
  \`.tmp/\` (your \`TMPDIR\`) is scratch the app does not list: a link to a
19703
- file there opens, but what they should keep seeing belongs in \`.share/\`.
19977
+ file there opens, but what they should keep seeing belongs in \`.share/\`.${tmpLine}
19704
19978
  Their pastes land in \`.share/pasted/\`.
19705
19979
  - **Tell the user** only what the app does not already: it notifies them when
19706
19980
  your turn ends or you are waiting on them. For news in the middle of a turn
@@ -19755,4 +20029,4 @@ ${repoLines}
19755
20029
  `;
19756
20030
  }
19757
20031
  //#endregion
19758
- export { panePids as $, agentBadge as $n, agentById as $r, startSnapSweep as $t, closedSession as A, lastTypedAt as An, WORKSPACE_PREFS as Ar, removeServer as At, killWorkspaceSessions as B, onPhaseChange as Bn, setDisabledAgents as Br, refreshGithub as Bt, workspaceBranches as C, config as Ci, realInside as Cn, ensureGitCredentials as Cr, addCustomServer as Ct, beginCreation as D, hookPhase as Dn, removeHost as Dr, installKey as Dt, agentCaller as E, clearAgentPhase as En, normalizeHost as Er, forgetProbes as Et, ensureTmuxServer as F, noteTurnFailed as Fn, disabledAgents as Fr, authGithub as Ft, markTmuxStarted as G, setExpecting as Gn, ghKnownHosts as Gr, patchIn as Gt, listPanes as H, onTurnFailed as Hn, setSetting as Hr, runStreaming as Ht, forgetPanes as I, noteTyped as In, enabledAgents as Ir, installAgent as It, noteConversation as J, settleQuietWorking as Jn, which as Jr, reviewWaiting as Jt, moveSession as K, setScrapedPhase as Kn, miseInstalls as Kr, readBlobAt as Kt, getSession as L, noteUserAnswered as Ln, getSetting as Lr, installMise as Lt, creationOf as M, noteBackground as Mn, allPrefs as Mr, serverList as Mt, descendantsOf as N, noteInterrupt as Nn, changePref as Nr, sharing as Nt, cleanEnv as O, hookReportedAt as On, unreachableRepos as Or, installServer as Ot, disposeSessions as P, notePermissionMode as Pn, deleteSetting as Pr, whileInstalling as Pt, paneJobs as Q, turnSince as Qn, TOOLS as Qr, setPoints as Qt, interruptSession as R, notifyEventOn as Rn, isKnownAgent as Rr, installTool as Rt, withProgressOp as S, tmux as Si, inside as Sn, configuredHosts as Sr, stopServers as St, hookToken as T, withLock as Ti, agentPhase as Tn, isValidHost as Tr, forgetCustomServer as Tt, listPanesWithin as U, sessionWatched as Un, discoverAgents as Ur, updateTool as Ut, launchDir as V, onTurnEnd as Vn, setPref as Vr, removeTool as Vt, listSessions as W, setAgentPhase as Wn, doctor as Wr, fileChanges as Wt, onSessionDispose as X, turnPhase as Xn, firewallProbe as Xr, workspaceDiff as Xt, notifySessionsChanged as Y, summaryOf as Yn, bornOut as Yr, withinBudget as Yt, ownWorkspaceOnly as Z, turnSettling as Zn, PROJECT_TOOLS as Zr, workspaceSections as Zt, retryMaterialize as _, workspacePath as _i, blankRow as _n, repoBranches as _r, lspQueryOf as _t, ensureUntrackedCache as a, FRAME_ANCESTORS as ai, hotBatchMinMs as an, getInstance as ar, retireSession as at, sweepTrash as b, TMUX_SOCKET as bi, writeCache as bn, DEFAULT_HOST as br, runningServers as bt, insertPendingWorkspace as c, httpError as ci, withoutDismissed as cn, normalizeAccent as cr, sessionStates as ct, progress as d, publishJson as di, AGENTS as dn, pushPublicKey as dr, killWorkspaceProc as dt, agentLabel$1 as ei, diffStamp as en, agentFamily as er, pasteToSession as et, progressSince as f, subscribe as fi, interruptKeys as fn, saveSubscription as fr, portsByWorkspace as ft, resumePendingWorkspaces as g, get as gi, steerKeys as gn, pendingSsoOrgs as gr, lspQuery as gt, removeRepo as h, db as hi, reportsWorking as hn, headOid as hr, lspDiagnostics as ht, deleteWorkspace as i, applyPrefChange as ii, dismissPr as in, ACCENT_RE as ir, restartSession as it, createSession as j, noteActivity$1 as jn, agentChoices as jr, serverById as jt, clearTmuxStarted as k, interruptedSinceReport as kn, PREF_MAX as kr, lspEnabled as kt, listWorkspaces as l, readBody as li, workspacePrs as ln, setInstance as lr, tmuxName as lt, queueMaterialize as m, all as mi, readHookPayload as mn, validSubscription as mr, killServers as mt, barePath as n, parseAgentId as ni, markBranch as nn, agentLabel as nr, reopenSession as nt, gcBares as o, FRAME_HEADERS as oi, notePushActivity as on, iconSvg as or, sendToSession as ot, pruneLaneBranch as p, subscriberCount as pi, quotesPastes as pn, sendPush as pr, workspaceProcs as pt, newSessionArgs as q, setSessionViewers as qn, miseVersions as qr, readFileAt as qt, createWorkspace as r, toolById as ri, sectionFor as rn, agentMeta as rr, reopenable as rt, getWorkspace as s, checked as si, refreshPrsBatch as sn, manifest as sr, sessionInfo as st, addRepo as t, catalogPin as ti, commentFolder as tn, agentFromCommand as tr, renameSession as tt, otherWorkspaceBranches as u, publish as ui, noteActivity as un, deleteSubscription as ur, tmuxWasStarted as ut, revParse as v, ownsBranchOf as vi, credentialStamp as vn, repoCatalog as vr, lspUses as vt, ensureAllPushHooks as w, swr as wi, activityOf as wn, forgetToken as wr, allServers as wt, syncAgentsMd as x, git as xi, cleanSummary as xn, addHost as xr, stopAllServers as xt, setWorkspaceStatus as y, ensureAllCacheConfig as yi, readCache as yn, repoDefaultBranch as yr, lspWarm as yt, killSession as z, onFinished as zn, preferredAgent as zr, logoutGithub as zt };
20032
+ export { paneJobs as $, turnSince as $n, TOOLS as $r, setPoints as $t, clearTmuxStarted as A, interruptedSinceReport as An, PREF_MAX as Ar, lspEnabled as At, killSession as B, onFinished as Bn, preferredAgent as Br, logoutGithub as Bt, workspaceBranches as C, tmux as Ci, inside as Cn, configuredHosts as Cr, stopServers as Ct, agentCaller as D, clearAgentPhase as Dn, normalizeHost as Dr, forgetProbes as Dt, hookToken as E, withLock as Ei, agentPhase as En, isValidHost as Er, forgetCustomServer as Et, disposeSessions as F, notePermissionMode as Fn, deleteSetting as Fr, whileInstalling as Ft, listSessions as G, setAgentPhase as Gn, doctor as Gr, fileChanges as Gt, launchDir as H, onTurnEnd as Hn, setPref as Hr, removeTool as Ht, ensureTmuxServer as I, noteTurnFailed as In, disabledAgents as Ir, authGithub as It, newSessionArgs as J, setSessionViewers as Jn, miseVersions as Jr, readFileAt as Jt, markTmuxStarted as K, setExpecting as Kn, ghKnownHosts as Kr, patchIn as Kt, forgetPanes as L, noteTyped as Ln, enabledAgents as Lr, installAgent as Lt, createSession as M, noteActivity$1 as Mn, agentChoices as Mr, serverById as Mt, creationOf as N, noteBackground as Nn, allPrefs as Nr, serverList as Nt, beginCreation as O, hookPhase as On, removeHost as Or, installKey as Ot, descendantsOf as P, noteInterrupt as Pn, changePref as Pr, sharing as Pt, ownWorkspaceOnly as Q, turnSettling as Qn, PROJECT_TOOLS as Qr, workspaceSections as Qt, getSession as R, noteUserAnswered as Rn, getSetting as Rr, installMise as Rt, withProgressOp as S, git as Si, cleanSummary as Sn, addHost as Sr, stopAllServers as St, ensureAllPushHooks as T, swr as Ti, activityOf as Tn, forgetToken as Tr, allServers as Tt, listPanes as U, onTurnFailed as Un, setSetting as Ur, runStreaming as Ut, killWorkspaceSessions as V, onPhaseChange as Vn, setDisabledAgents as Vr, refreshGithub as Vt, listPanesWithin as W, sessionWatched as Wn, discoverAgents as Wr, updateTool as Wt, notifySessionsChanged as X, summaryOf as Xn, bornOut as Xr, withinBudget as Xt, noteConversation as Y, settleQuietWorking as Yn, which as Yr, reviewWaiting as Yt, onSessionDispose as Z, turnPhase as Zn, firewallProbe as Zr, workspaceDiff as Zt, retryMaterialize as _, get as _i, steerKeys as _n, pendingSsoOrgs as _r, lspQuery as _t, ensureUntrackedCache as a, applyPrefChange as ai, dismissPr as an, ACCENT_RE as ar, restartSession as at, sweepTrash as b, ensureAllCacheConfig as bi, readCache as bn, repoDefaultBranch as br, lspWarm as bt, insertPendingWorkspace as c, checked as ci, refreshPrsBatch as cn, manifest as cr, sessionInfo as ct, progress as d, publish as di, noteActivity as dn, deleteSubscription as dr, tmuxWasStarted as dt, agentById as ei, startSnapSweep as en, agentBadge as er, panePids as et, progressSince as f, publishJson as fi, AGENTS as fn, pushPublicKey as fr, killWorkspaceProc as ft, resumePendingWorkspaces as g, db as gi, reportsWorking as gn, headOid as gr, lspDiagnostics as gt, removeRepo as h, all as hi, readHookPayload as hn, validSubscription as hr, killServers as ht, deleteWorkspace as i, toolById as ii, sectionFor as in, agentMeta as ir, reopenable as it, closedSession as j, lastTypedAt as jn, WORKSPACE_PREFS as jr, removeServer as jt, cleanEnv as k, hookReportedAt as kn, unreachableRepos as kr, installServer as kt, listWorkspaces as l, httpError as li, withoutDismissed as ln, normalizeAccent as lr, sessionStates as lt, queueMaterialize as m, subscriberCount as mi, quotesPastes as mn, sendPush as mr, workspaceProcs as mt, barePath as n, catalogPin as ni, commentFolder as nn, agentFromCommand as nr, renameSession as nt, gcBares as o, FRAME_ANCESTORS as oi, hotBatchMinMs as on, getInstance as or, retireSession as ot, pruneLaneBranch as p, subscribe as pi, interruptKeys as pn, saveSubscription as pr, portsByWorkspace as pt, moveSession as q, setScrapedPhase as qn, miseInstalls as qr, readBlobAt as qt, createWorkspace as r, parseAgentId as ri, markBranch as rn, agentLabel as rr, reopenSession as rt, getWorkspace as s, FRAME_HEADERS as si, notePushActivity as sn, iconSvg as sr, sendToSession as st, addRepo as t, agentLabel$1 as ti, diffStamp as tn, agentFamily as tr, pasteToSession as tt, otherWorkspaceBranches as u, readBody as ui, workspacePrs as un, setInstance as ur, tmuxName as ut, revParse as v, workspacePath as vi, blankRow as vn, repoBranches as vr, lspQueryOf as vt, startTmpSweep as w, config as wi, realInside as wn, ensureGitCredentials as wr, addCustomServer as wt, syncAgentsMd as x, TMUX_SOCKET as xi, writeCache as xn, DEFAULT_HOST as xr, runningServers as xt, setWorkspaceStatus as y, ownsBranchOf as yi, credentialStamp as yn, repoCatalog as yr, lspUses as yt, interruptSession as z, notifyEventOn as zn, isKnownAgent as zr, installTool as zt };