@dylanpiercey/work 0.0.221 → 0.0.223

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 (541) hide show
  1. package/README.md +7 -4
  2. package/bin/work.mjs +70 -17
  3. package/dist/{_-MXZhaOD.js → _CpANOzpd.js} +313 -173
  4. package/dist/_LF2Fo5WE.js +2 -0
  5. package/dist/index.mjs +1572 -1804
  6. package/dist/public/assets/_--tE4Gxz.js +2 -0
  7. package/dist/public/assets/_--tE4Gxz.js.br +0 -0
  8. package/dist/public/assets/_1OL9vXM-.js +1 -0
  9. package/dist/public/assets/_2mnAZf6B.js +1 -0
  10. package/dist/public/assets/_2mnAZf6B.js.br +0 -0
  11. package/dist/public/assets/_5f9fMvWJ.js +1 -0
  12. package/dist/public/assets/_5y69OR6M.js +1 -0
  13. package/dist/public/assets/{_Cto7UR6x.js → _Aq9oGnRu.js} +1 -1
  14. package/dist/public/assets/_Aq9oGnRu.js.br +0 -0
  15. package/dist/public/assets/_B0uJCjmk.js +1 -0
  16. package/dist/public/assets/{_DzCAv2Gl.js → _B1RldJ0S.js} +1 -1
  17. package/dist/public/assets/_B1RldJ0S.js.br +0 -0
  18. package/dist/public/assets/_B5TpOQCZ.js +1 -0
  19. package/dist/public/assets/_B6UdulKa.js +1 -0
  20. package/dist/public/assets/{_Bgbe-7aj.js → _BA8HFnO3.js} +1 -1
  21. package/dist/public/assets/_BA8HFnO3.js.br +0 -0
  22. package/dist/public/assets/{_B59uDfC7.js → _BAHrOydH.js} +1 -1
  23. package/dist/public/assets/_BAHrOydH.js.br +0 -0
  24. package/dist/public/assets/{_DJa--qOX.js → _BBpX-M4b.js} +1 -1
  25. package/dist/public/assets/_BBpX-M4b.js.br +0 -0
  26. package/dist/public/assets/{_B8ypf2w7.js → _BCZpExov.js} +1 -1
  27. package/dist/public/assets/_BCZpExov.js.br +0 -0
  28. package/dist/public/assets/_BFZHNauV.js +1 -0
  29. package/dist/public/assets/_BGCK5I_O.js +1 -0
  30. package/dist/public/assets/_BGCK5I_O.js.br +0 -0
  31. package/dist/public/assets/_BJRSndB4.js +6 -0
  32. package/dist/public/assets/_BJRSndB4.js.br +0 -0
  33. package/dist/public/assets/{_IJOifsPN.js → _BL9QMk_P.js} +1 -1
  34. package/dist/public/assets/_BL9QMk_P.js.br +0 -0
  35. package/dist/public/assets/_BLNEzyb5.js +1 -0
  36. package/dist/public/assets/{_CiZ8pHbe.js → _BLRpf6Uw.js} +1 -1
  37. package/dist/public/assets/_BLRpf6Uw.js.br +0 -0
  38. package/dist/public/assets/{_CGLnSBxx.js → _BLTfQLdY.js} +1 -1
  39. package/dist/public/assets/_BLTfQLdY.js.br +0 -0
  40. package/dist/public/assets/{_ImG6Q5u4.js → _BO0OB-rz.js} +1 -1
  41. package/dist/public/assets/_BO0OB-rz.js.br +0 -0
  42. package/dist/public/assets/{_CW_p-nUL.js → _BPcswKMK.js} +1 -1
  43. package/dist/public/assets/_BPcswKMK.js.br +0 -0
  44. package/dist/public/assets/_BPhXWliU.js +1 -0
  45. package/dist/public/assets/_BQXTv9Cr.js +1 -0
  46. package/dist/public/assets/{_Cvh-VNIk.js → _BRG_DBcC.js} +1 -1
  47. package/dist/public/assets/_BRG_DBcC.js.br +0 -0
  48. package/dist/public/assets/{_DuQRbl1J.js → _BS4crAAm.js} +1 -1
  49. package/dist/public/assets/_BS4crAAm.js.br +0 -0
  50. package/dist/public/assets/{_B7FEL7wR.js → _BUH04L5e.js} +1 -1
  51. package/dist/public/assets/{_DXhRdKW7.js → _BVp6r0fg.js} +1 -1
  52. package/dist/public/assets/_BVp6r0fg.js.br +0 -0
  53. package/dist/public/assets/{_udAEKVMs.js → _BXT2bXMi.js} +1 -1
  54. package/dist/public/assets/_BXT2bXMi.js.br +0 -0
  55. package/dist/public/assets/{_CIs24vxl.js → _B_zyAtSJ.js} +1 -1
  56. package/dist/public/assets/_B_zyAtSJ.js.br +0 -0
  57. package/dist/public/assets/_BaXKdIeb.js +1 -0
  58. package/dist/public/assets/{_2L-OI8uX.js → _BbiACo0Y.js} +1 -1
  59. package/dist/public/assets/_BbiACo0Y.js.br +0 -0
  60. package/dist/public/assets/{_C86ZHeAp.js → _BdvO5Lqa.js} +1 -1
  61. package/dist/public/assets/_BdvO5Lqa.js.br +0 -0
  62. package/dist/public/assets/{_7PkH8MR2.js → _BeE9qDu0.js} +1 -1
  63. package/dist/public/assets/_BeE9qDu0.js.br +0 -0
  64. package/dist/public/assets/_BewXp5Y_.js +1 -0
  65. package/dist/public/assets/_BewXp5Y_.js.br +0 -0
  66. package/dist/public/assets/_BfOOLKo5.js +1 -0
  67. package/dist/public/assets/_BhS8bTnr.js +1 -0
  68. package/dist/public/assets/_BhZ3ZoG0.js +1 -0
  69. package/dist/public/assets/_Bi3_ZsOQ.js +1 -0
  70. package/dist/public/assets/_Bj_Lfa8B.js +1 -0
  71. package/dist/public/assets/_BlN_x04q.js +1 -0
  72. package/dist/public/assets/_Bn5nsnie.js +1 -0
  73. package/dist/public/assets/_BnOOD6nr.js +15 -0
  74. package/dist/public/assets/_BnOOD6nr.js.br +0 -0
  75. package/dist/public/assets/{_DccrUV-t.js → _BnyLUTdO.js} +1 -1
  76. package/dist/public/assets/_BnyLUTdO.js.br +0 -0
  77. package/dist/public/assets/_Bp_WT09q.js +1 -0
  78. package/dist/public/assets/_Bp_WT09q.js.br +0 -0
  79. package/dist/public/assets/{_CNyZnrbq.js → _BsimXDnm.js} +1 -1
  80. package/dist/public/assets/_BsimXDnm.js.br +0 -0
  81. package/dist/public/assets/_BsupnkWM.js +1 -0
  82. package/dist/public/assets/_BsupnkWM.js.br +0 -0
  83. package/dist/public/assets/{_BkmyKCts.js → _BxAl0m64.js} +1 -1
  84. package/dist/public/assets/_BxAl0m64.js.br +0 -0
  85. package/dist/public/assets/{_l5fDrx0F.js → _C-6dImS5.js} +1 -1
  86. package/dist/public/assets/_C-6dImS5.js.br +0 -0
  87. package/dist/public/assets/_C18Torhh.js +1 -0
  88. package/dist/public/assets/{_DNZFctlv.js → _C1PmcEws.js} +1 -1
  89. package/dist/public/assets/_C1PmcEws.js.br +0 -0
  90. package/dist/public/assets/{_C8fTPM4x.js → _C2ZpyiHV.js} +1 -1
  91. package/dist/public/assets/_C2ZpyiHV.js.br +0 -0
  92. package/dist/public/assets/_C3P1VHUI.js +1 -0
  93. package/dist/public/assets/{_CKiOrTnh.js → _C6i9NP5A.js} +1 -1
  94. package/dist/public/assets/_C6xwTKke.js +1 -0
  95. package/dist/public/assets/_C6yqlRfl.js +1 -0
  96. package/dist/public/assets/_C75D8bH2.js +1 -0
  97. package/dist/public/assets/{_CN5dKT5U.js → _C87NBm9i.js} +1 -1
  98. package/dist/public/assets/_C87NBm9i.js.br +0 -0
  99. package/dist/public/assets/_C8Vc_vBH.js +1 -0
  100. package/dist/public/assets/{_B8QLRTNE.js → _C9OdJcx4.js} +1 -1
  101. package/dist/public/assets/_C9OdJcx4.js.br +0 -0
  102. package/dist/public/assets/_C9eoo0sE.js +1 -0
  103. package/dist/public/assets/_C9qO_dny.js +1 -0
  104. package/dist/public/assets/_C9qO_dny.js.br +0 -0
  105. package/dist/public/assets/{_CtrIYddo.js → _CB31bp-W.js} +1 -1
  106. package/dist/public/assets/_CB31bp-W.js.br +0 -0
  107. package/dist/public/assets/{_DTRYzVXy.js → _CCCQMLw5.js} +1 -1
  108. package/dist/public/assets/_CCCQMLw5.js.br +0 -0
  109. package/dist/public/assets/_CCie36pi.js +1 -0
  110. package/dist/public/assets/_CDD9N34p.js +1 -0
  111. package/dist/public/assets/{_DlOIFmP5.js → _CE5MhJWL.js} +1 -1
  112. package/dist/public/assets/_CE5MhJWL.js.br +0 -0
  113. package/dist/public/assets/{_IYKAiNbQ.js → _CGLpCj_I.js} +1 -1
  114. package/dist/public/assets/_CGLpCj_I.js.br +0 -0
  115. package/dist/public/assets/{_4zMj-KgY.js → _CJ9j8N5Z.js} +1 -1
  116. package/dist/public/assets/_CJ9j8N5Z.js.br +0 -0
  117. package/dist/public/assets/{_B7aQVpV3.js → _CLDmR3jR.js} +1 -1
  118. package/dist/public/assets/_CLDmR3jR.js.br +0 -0
  119. package/dist/public/assets/{_DMuuYm9C.js → _CLerZOx-.js} +1 -1
  120. package/dist/public/assets/_CLerZOx-.js.br +0 -0
  121. package/dist/public/assets/_CM5GtJb2.js +1 -0
  122. package/dist/public/assets/_COECwOVb.js +1 -0
  123. package/dist/public/assets/_CSQE9nMN.js +1 -0
  124. package/dist/public/assets/_CSXMgHLQ.js +1 -0
  125. package/dist/public/assets/{_DgZrpFgz.js → _CT3clsOQ.js} +1 -1
  126. package/dist/public/assets/_CVRiByCT.js +1 -0
  127. package/dist/public/assets/_CVSrm4Pl.js +1 -0
  128. package/dist/public/assets/{_DLOPvUZY.js → _CX1wufuh.js} +1 -1
  129. package/dist/public/assets/_CX1wufuh.js.br +0 -0
  130. package/dist/public/assets/{_CPCx9DM-.js → _CYNAhnRH.js} +117 -117
  131. package/dist/public/assets/_CYNAhnRH.js.br +0 -0
  132. package/dist/public/assets/{_CZ62PUna.js → _CZGS4T08.js} +1 -1
  133. package/dist/public/assets/_CZGS4T08.js.br +0 -0
  134. package/dist/public/assets/_C_L7l9Mg.js +1 -0
  135. package/dist/public/assets/_CaMrYy1W.js +1 -0
  136. package/dist/public/assets/{_CA7oQPMX.js → _CdgAsi3s.js} +1 -1
  137. package/dist/public/assets/_CdgAsi3s.js.br +0 -0
  138. package/dist/public/assets/_Ce-E7sJE.js +1 -0
  139. package/dist/public/assets/_Cg3S760D.js +1 -0
  140. package/dist/public/assets/{_BDoav0oh.js → _ChpYg41R.js} +1 -1
  141. package/dist/public/assets/_CicyY7KP.js +1 -0
  142. package/dist/public/assets/_Ck0YOw_7.js +1 -0
  143. package/dist/public/assets/_CmHlTZSs.js +1 -0
  144. package/dist/public/assets/_CnECYh66.js +1 -0
  145. package/dist/public/assets/{_BA7jNaHU.js → _CnKYioYw.js} +1 -1
  146. package/dist/public/assets/_CnKYioYw.js.br +0 -0
  147. package/dist/public/assets/_CnUVvVPd.js +1 -0
  148. package/dist/public/assets/_CqSgGCGC.js +1 -0
  149. package/dist/public/assets/{_8jPfRR-S.js → _CttJbiei.js} +1 -1
  150. package/dist/public/assets/_CttJbiei.js.br +0 -0
  151. package/dist/public/assets/{_Cx8F-gsJ.js → _CtyJUmXC.js} +1 -1
  152. package/dist/public/assets/_CtyJUmXC.js.br +0 -0
  153. package/dist/public/assets/{_DxwuLWwv.js → _Cw_8WbwF.js} +1 -1
  154. package/dist/public/assets/_Cw_8WbwF.js.br +0 -0
  155. package/dist/public/assets/{_BZgSH_zH.js → _CwmzEsB4.js} +1 -1
  156. package/dist/public/assets/_CwmzEsB4.js.br +0 -0
  157. package/dist/public/assets/_CzETFsJs.js +1 -0
  158. package/dist/public/assets/_D-S9H-tX.js +1 -0
  159. package/dist/public/assets/{_C4dOkocS.js → _D-hK5uFn.js} +1 -1
  160. package/dist/public/assets/_D-hK5uFn.js.br +0 -0
  161. package/dist/public/assets/_D5fTwHXK.js +1 -0
  162. package/dist/public/assets/{_5iLDlaH-.js → _D8u1YU9b.js} +1 -1
  163. package/dist/public/assets/_D8u1YU9b.js.br +0 -0
  164. package/dist/public/assets/_DAH8evhA.js +1 -0
  165. package/dist/public/assets/_DAemmoHI.js +1 -0
  166. package/dist/public/assets/_DEMYxWZf.js +1 -0
  167. package/dist/public/assets/_DGTQBWy0.js +1 -0
  168. package/dist/public/assets/_DGTQBWy0.js.br +0 -0
  169. package/dist/public/assets/_DHhv0pCA.js +1 -0
  170. package/dist/public/assets/{_LSddbYPg.js → _DI0QHEXB.js} +1 -1
  171. package/dist/public/assets/_DI0QHEXB.js.br +0 -0
  172. package/dist/public/assets/{_B4jQnWBQ.js → _DJ3UAR_s.js} +1 -1
  173. package/dist/public/assets/_DJ3UAR_s.js.br +0 -0
  174. package/dist/public/assets/_DKu6UxI7.js +1 -0
  175. package/dist/public/assets/_DNC-9RBN.js +1 -0
  176. package/dist/public/assets/_DP-Bu7ET.js +1 -0
  177. package/dist/public/assets/_DYmmPBcq.js +1 -0
  178. package/dist/public/assets/_Da2Dmt_d.js +1 -0
  179. package/dist/public/assets/_Da2Dmt_d.js.br +0 -0
  180. package/dist/public/assets/{_D4Ta82Ad.js → _DaqT6m41.js} +1 -1
  181. package/dist/public/assets/_DaqT6m41.js.br +0 -0
  182. package/dist/public/assets/_DbVyutEZ.js +1 -0
  183. package/dist/public/assets/_DcBvO2Si.js +1 -0
  184. package/dist/public/assets/{_B0VKtqZ9.js → _DeCJ44Me.js} +1 -1
  185. package/dist/public/assets/_DeCJ44Me.js.br +0 -0
  186. package/dist/public/assets/{_CVYE0HUe.js → _DeN4EY8L.js} +1 -1
  187. package/dist/public/assets/_DeN4EY8L.js.br +0 -0
  188. package/dist/public/assets/{_DBpSHwsH.js → _DhEdzMUw.js} +1 -1
  189. package/dist/public/assets/_DhEdzMUw.js.br +0 -0
  190. package/dist/public/assets/{_DX2UfSkV.js → _DhNuRs-V.js} +1 -1
  191. package/dist/public/assets/_DhNuRs-V.js.br +0 -0
  192. package/dist/public/assets/{_BscapHlE.js → _DiqV5bDH.js} +1 -1
  193. package/dist/public/assets/_DiqV5bDH.js.br +0 -0
  194. package/dist/public/assets/_Diqt_yCf.js +1 -0
  195. package/dist/public/assets/{_CT-gn1Q3.js → _DlpTErRA.js} +1 -1
  196. package/dist/public/assets/_DlpTErRA.js.br +0 -0
  197. package/dist/public/assets/{_B9H0wf6g.js → _DmDSLxrw.js} +1 -1
  198. package/dist/public/assets/_DmDSLxrw.js.br +0 -0
  199. package/dist/public/assets/_DoC0qbSD.js +1 -0
  200. package/dist/public/assets/{_CBdbNtLm.js → _DoCtdMd2.js} +1 -1
  201. package/dist/public/assets/_DoCtdMd2.js.br +0 -0
  202. package/dist/public/assets/_DpqWFkMg.js +1 -0
  203. package/dist/public/assets/_Dr0Bkgso.js +1 -0
  204. package/dist/public/assets/_Dt-n9FaQ.js +1 -0
  205. package/dist/public/assets/_DtOzdwHm.js +1 -0
  206. package/dist/public/assets/_DtOzdwHm.js.br +0 -0
  207. package/dist/public/assets/{_CVimy4Le.js → _DuGmU4h0.js} +1 -1
  208. package/dist/public/assets/_DuGmU4h0.js.br +0 -0
  209. package/dist/public/assets/{_khh1x77_.js → _DuXOUegE.js} +1 -1
  210. package/dist/public/assets/_DuXOUegE.js.br +0 -0
  211. package/dist/public/assets/_DuaocJd1.js +1 -0
  212. package/dist/public/assets/{_Cdr1LImQ.js → _DuarImb7.js} +1 -1
  213. package/dist/public/assets/_DuarImb7.js.br +0 -0
  214. package/dist/public/assets/{_d0O4aA0L.js → _DwcoW-IU.js} +1 -1
  215. package/dist/public/assets/_DwcoW-IU.js.br +0 -0
  216. package/dist/public/assets/{_Mrawm4gM.js → _DxVt7Zuk.js} +12 -12
  217. package/dist/public/assets/_DxVt7Zuk.js.br +0 -0
  218. package/dist/public/assets/{_D7eFF5Zh.js → _DzrtBP-L.js} +1 -1
  219. package/dist/public/assets/{_BgvkMEDS.js → _Fzbz4zvE.js} +1 -1
  220. package/dist/public/assets/_Fzbz4zvE.js.br +0 -0
  221. package/dist/public/assets/_I5oX-lGP.js +1 -0
  222. package/dist/public/assets/{_DlpWFr6R.js → _IWMmnVCy.js} +1 -1
  223. package/dist/public/assets/_IWMmnVCy.js.br +0 -0
  224. package/dist/public/assets/{_DE_Y-0-h.js → _O70J1Mfv.js} +1 -1
  225. package/dist/public/assets/_O70J1Mfv.js.br +0 -0
  226. package/dist/public/assets/_SwbsOoi9.js +1 -0
  227. package/dist/public/assets/_SwbsOoi9.js.br +0 -0
  228. package/dist/public/assets/_Yy39CykK.js +1 -0
  229. package/dist/public/assets/{_BD5g3CBa.js → __Oa255vo.js} +1 -1
  230. package/dist/public/assets/__Oa255vo.js.br +0 -0
  231. package/dist/public/assets/_bPze7k1x.js +1 -0
  232. package/dist/public/assets/_bU1KcT1I.js +1 -0
  233. package/dist/public/assets/{_CP0AloMu.js → _dr95P55a.js} +1 -1
  234. package/dist/public/assets/_dr95P55a.js.br +0 -0
  235. package/dist/public/assets/{_vXrbhKaS.js → _eQK3EZCc.js} +1 -1
  236. package/dist/public/assets/_eQK3EZCc.js.br +0 -0
  237. package/dist/public/assets/{_BgPQq_uu.js → _gPFPzzPF.js} +1 -1
  238. package/dist/public/assets/_gPFPzzPF.js.br +0 -0
  239. package/dist/public/assets/_hzpOPZUB.js +1 -0
  240. package/dist/public/assets/{_C1TYaRDe.js → _ifUb4WX7.js} +1 -1
  241. package/dist/public/assets/_ifUb4WX7.js.br +0 -0
  242. package/dist/public/assets/_kQ7LiSim.js +1 -0
  243. package/dist/public/assets/_lOAW1VLM.js +1 -0
  244. package/dist/public/assets/{_DRTW5fd9.js → _mnBdD4YN.js} +1 -1
  245. package/dist/public/assets/_mnBdD4YN.js.br +0 -0
  246. package/dist/public/assets/_odBcV1kc.js +1 -0
  247. package/dist/public/assets/{_XFhH3dP0.js → _pP1W6w5v.js} +1 -1
  248. package/dist/public/assets/_pP1W6w5v.js.br +0 -0
  249. package/dist/public/assets/{_CzvJRV9T.js → _pUYwxsdF.js} +1 -1
  250. package/dist/public/assets/_pUYwxsdF.js.br +0 -0
  251. package/dist/public/assets/{_Hd-PFNkS.js → _pvS44-AC.js} +1 -1
  252. package/dist/public/assets/_pvS44-AC.js.br +0 -0
  253. package/dist/public/assets/_qJTL2ooe.js +1 -0
  254. package/dist/public/assets/_qJTL2ooe.js.br +0 -0
  255. package/dist/public/assets/{_8cXksh59.js → _s5Jez2mu.js} +1 -1
  256. package/dist/public/assets/_s5Jez2mu.js.br +0 -0
  257. package/dist/public/assets/{_nIuAA97l.js → _unfL8mz1.js} +1 -1
  258. package/dist/public/assets/_unfL8mz1.js.br +0 -0
  259. package/dist/public/assets/_unwtcXFQ.js +1 -0
  260. package/dist/public/assets/_unwtcXFQ.js.br +0 -0
  261. package/dist/public/assets/{_DILlGU4L.js → _vKQopDwG.js} +1 -1
  262. package/dist/public/assets/_vKQopDwG.js.br +0 -0
  263. package/dist/public/assets/_w1aegGdT.js +1 -0
  264. package/dist/public/assets/_xdrkfok5.js +1 -0
  265. package/dist/public/assets/_xdrkfok5.js.br +0 -0
  266. package/dist/public/assets/_y-lm36fI.js +1 -0
  267. package/dist/public/assets/{_Q3J62UbV.js → _zKlxcAnQ.js} +1 -1
  268. package/dist/public/assets/_zKlxcAnQ.js.br +0 -0
  269. package/dist/public/assets/app-shell-CpPCwWPW.css +1 -0
  270. package/dist/public/assets/app-shell-CpPCwWPW.css.br +0 -0
  271. package/dist/public/assets/files-view-BfCdcfXX.js +2 -0
  272. package/dist/public/assets/files-view-DtI7JE-f.css +1 -0
  273. package/dist/public/assets/files-view-DtI7JE-f.css.br +0 -0
  274. package/dist/public/assets/group.css.ts-SeaNz7WZ.css +1 -0
  275. package/dist/public/assets/group.css.ts-SeaNz7WZ.css.br +0 -0
  276. package/dist/public/assets/icon-folder-DHVc-REl.css +1 -0
  277. package/dist/public/assets/icon-folder-DHVc-REl.css.br +0 -0
  278. package/dist/public/assets/{icon-search-CQX_Oqgo.css → icon-search-DAtjHWFL.css} +1 -1
  279. package/dist/public/assets/icon-search-DAtjHWFL.css.br +0 -0
  280. package/dist/public/assets/manage-workspace-6i6Zeai7.css +1 -0
  281. package/dist/public/assets/manage-workspace-CixeMkdt.js +2 -0
  282. package/dist/public/assets/{modal-view-BY2E8mw2.css → modal-view-D0qnmuJE.css} +1 -1
  283. package/dist/public/assets/modal-view-D0qnmuJE.css.br +0 -0
  284. package/dist/public/assets/new-DxhaKmbF.js +1 -0
  285. package/dist/public/assets/new-workspace-BXjDRbqF.css +1 -0
  286. package/dist/public/assets/new-workspace-BXjDRbqF.css.br +0 -0
  287. package/dist/public/assets/new-workspace-DG693v2S.js +2 -0
  288. package/dist/public/assets/port-chip-Lz3mVJWb.css +1 -0
  289. package/dist/public/assets/{port-chip-9ONt0A-X.css.br → port-chip-Lz3mVJWb.css.br} +0 -0
  290. package/dist/public/assets/prompt-dialog-vhnae1-x.css +1 -0
  291. package/dist/public/assets/prompt-dialog-vhnae1-x.css.br +0 -0
  292. package/dist/public/assets/quick-open-DVqzk3-g.css +1 -0
  293. package/dist/public/assets/quick-open-DVqzk3-g.css.br +0 -0
  294. package/dist/public/assets/repo-picker-K5RYsEge.css +1 -0
  295. package/dist/public/assets/repo-picker-K5RYsEge.css.br +0 -0
  296. package/dist/public/assets/review-view-DqMrB4Ny.css +1 -0
  297. package/dist/public/assets/review-view-DqMrB4Ny.css.br +0 -0
  298. package/dist/public/assets/review-view-TdLbCgEg.js +2 -0
  299. package/dist/public/assets/section-2MyJSq5D.css +1 -0
  300. package/dist/public/assets/section-2MyJSq5D.css.br +0 -0
  301. package/dist/public/assets/settings-DxhaKmbF.js +1 -0
  302. package/dist/public/assets/settings-page-BBAG94Vh.js +2 -0
  303. package/dist/public/assets/settings-page-DUefc32x.css +1 -0
  304. package/dist/public/assets/settings-page-DUefc32x.css.br +0 -0
  305. package/dist/public/assets/skill-row-BeOk8NK8.css +1 -0
  306. package/dist/public/assets/sso-auth-CU3fGJ4U.css +1 -0
  307. package/dist/public/assets/sso-auth-CU3fGJ4U.css.br +0 -0
  308. package/dist/public/assets/w-DxhaKmbF.js +1 -0
  309. package/dist/public/assets/w._-C6JVdFgi.js +1 -0
  310. package/dist/public/assets/w._-DxhaKmbF.js +1 -0
  311. package/dist/public/assets/w._-rfvcDGPk.js +1 -0
  312. package/install.sh +1 -1
  313. package/lib/setup/catalog.d.mts +13 -0
  314. package/lib/setup/catalog.mjs +107 -14
  315. package/lib/setup/doctor.d.mts +1 -0
  316. package/lib/setup/doctor.mjs +5 -4
  317. package/lib/share/manifest.mjs +1 -1
  318. package/package.json +3 -3
  319. package/scripts/migrate.mjs +119 -261
  320. package/dist/_BkCP7ACo.js +0 -2
  321. package/dist/public/assets/_0EfQU-nm.js +0 -1
  322. package/dist/public/assets/_2L-OI8uX.js.br +0 -0
  323. package/dist/public/assets/_3dcgIhy4.js +0 -1
  324. package/dist/public/assets/_4lkLC-N6.js +0 -1
  325. package/dist/public/assets/_4lkLC-N6.js.br +0 -0
  326. package/dist/public/assets/_4zMj-KgY.js.br +0 -0
  327. package/dist/public/assets/_5iLDlaH-.js.br +0 -0
  328. package/dist/public/assets/_7PkH8MR2.js.br +0 -0
  329. package/dist/public/assets/_7pZFw9YH.js +0 -1
  330. package/dist/public/assets/_81trVXGv.js +0 -1
  331. package/dist/public/assets/_81trVXGv.js.br +0 -0
  332. package/dist/public/assets/_8cXksh59.js.br +0 -0
  333. package/dist/public/assets/_8jPfRR-S.js.br +0 -0
  334. package/dist/public/assets/_B-VEZaw2.js +0 -1
  335. package/dist/public/assets/_B0VKtqZ9.js.br +0 -0
  336. package/dist/public/assets/_B1n6UKwc.js +0 -1
  337. package/dist/public/assets/_B4jQnWBQ.js.br +0 -0
  338. package/dist/public/assets/_B59uDfC7.js.br +0 -0
  339. package/dist/public/assets/_B7aQVpV3.js.br +0 -0
  340. package/dist/public/assets/_B8QLRTNE.js.br +0 -0
  341. package/dist/public/assets/_B8ypf2w7.js.br +0 -0
  342. package/dist/public/assets/_B9H0wf6g.js.br +0 -0
  343. package/dist/public/assets/_BA7jNaHU.js.br +0 -0
  344. package/dist/public/assets/_BATBuapN.js +0 -1
  345. package/dist/public/assets/_BC-o0Ofo.js +0 -1
  346. package/dist/public/assets/_BD5g3CBa.js.br +0 -0
  347. package/dist/public/assets/_BGKOdZ60.js +0 -1
  348. package/dist/public/assets/_BGKOdZ60.js.br +0 -0
  349. package/dist/public/assets/_BI7rb-iV.js +0 -1
  350. package/dist/public/assets/_BNxiob9l.js +0 -1
  351. package/dist/public/assets/_BOIo-Rws.js +0 -1
  352. package/dist/public/assets/_BP-cH3Ls.js +0 -1
  353. package/dist/public/assets/_BP4aeWpk.js +0 -1
  354. package/dist/public/assets/_BQ_wB80D.js +0 -1
  355. package/dist/public/assets/_BSR1BCIl.js +0 -15
  356. package/dist/public/assets/_BSR1BCIl.js.br +0 -0
  357. package/dist/public/assets/_BUVzSij7.js +0 -1
  358. package/dist/public/assets/_BV5hAHrd.js +0 -1
  359. package/dist/public/assets/_BZgSH_zH.js.br +0 -0
  360. package/dist/public/assets/_BbdX33R5.js +0 -1
  361. package/dist/public/assets/_BbjPIfv2.js +0 -1
  362. package/dist/public/assets/_BebbIngd.js +0 -2
  363. package/dist/public/assets/_BebbIngd.js.br +0 -0
  364. package/dist/public/assets/_BfUMBq7F.js +0 -1
  365. package/dist/public/assets/_BgPQq_uu.js.br +0 -0
  366. package/dist/public/assets/_Bgbe-7aj.js.br +0 -0
  367. package/dist/public/assets/_BgvkMEDS.js.br +0 -0
  368. package/dist/public/assets/_BklmY-WW.js +0 -1
  369. package/dist/public/assets/_BkmyKCts.js.br +0 -0
  370. package/dist/public/assets/_BnKAavAk.js +0 -1
  371. package/dist/public/assets/_BotvnYbJ.js +0 -1
  372. package/dist/public/assets/_BotvnYbJ.js.br +0 -0
  373. package/dist/public/assets/_BscapHlE.js.br +0 -0
  374. package/dist/public/assets/_Bt4fKX2z.js +0 -1
  375. package/dist/public/assets/_BvcmHt9j.js +0 -1
  376. package/dist/public/assets/_C1TYaRDe.js.br +0 -0
  377. package/dist/public/assets/_C45o01H4.js +0 -1
  378. package/dist/public/assets/_C4dOkocS.js.br +0 -0
  379. package/dist/public/assets/_C7rA9hcV.js +0 -1
  380. package/dist/public/assets/_C86ZHeAp.js.br +0 -0
  381. package/dist/public/assets/_C8fTPM4x.js.br +0 -0
  382. package/dist/public/assets/_CA7oQPMX.js.br +0 -0
  383. package/dist/public/assets/_CAMTVZ5S.js +0 -1
  384. package/dist/public/assets/_CAMTVZ5S.js.br +0 -0
  385. package/dist/public/assets/_CBdbNtLm.js.br +0 -0
  386. package/dist/public/assets/_CENgKlig.js +0 -1
  387. package/dist/public/assets/_CGLnSBxx.js.br +0 -0
  388. package/dist/public/assets/_CIAIGE-e.js +0 -1
  389. package/dist/public/assets/_CIs24vxl.js.br +0 -0
  390. package/dist/public/assets/_CJ2EZdoV.js +0 -1
  391. package/dist/public/assets/_CJlqVV8j.js +0 -6
  392. package/dist/public/assets/_CJlqVV8j.js.br +0 -0
  393. package/dist/public/assets/_CKIVOffF.js +0 -1
  394. package/dist/public/assets/_CLdKQrZk.js +0 -1
  395. package/dist/public/assets/_CN5dKT5U.js.br +0 -0
  396. package/dist/public/assets/_CNyZnrbq.js.br +0 -0
  397. package/dist/public/assets/_CP0AloMu.js.br +0 -0
  398. package/dist/public/assets/_CPCx9DM-.js.br +0 -0
  399. package/dist/public/assets/_CPz2zCZW.js +0 -1
  400. package/dist/public/assets/_CT-gn1Q3.js.br +0 -0
  401. package/dist/public/assets/_CTbiX1kY.js +0 -1
  402. package/dist/public/assets/_CVYE0HUe.js.br +0 -0
  403. package/dist/public/assets/_CVimy4Le.js.br +0 -0
  404. package/dist/public/assets/_CW_p-nUL.js.br +0 -0
  405. package/dist/public/assets/_CZ62PUna.js.br +0 -0
  406. package/dist/public/assets/_CcCzrg9K.js +0 -1
  407. package/dist/public/assets/_Cdr1LImQ.js.br +0 -0
  408. package/dist/public/assets/_CgXIOrOV.js +0 -1
  409. package/dist/public/assets/_Ci01sxM0.js +0 -1
  410. package/dist/public/assets/_CiZ8pHbe.js.br +0 -0
  411. package/dist/public/assets/_CpIC1zJN.js +0 -1
  412. package/dist/public/assets/_CpSmZ2fW.js +0 -1
  413. package/dist/public/assets/_CpzhHQ3e.js +0 -1
  414. package/dist/public/assets/_CrThDEqs.js +0 -1
  415. package/dist/public/assets/_CrThDEqs.js.br +0 -0
  416. package/dist/public/assets/_CrzUyUH2.js +0 -1
  417. package/dist/public/assets/_Csdgg-p8.js +0 -1
  418. package/dist/public/assets/_Csdgg-p8.js.br +0 -0
  419. package/dist/public/assets/_CtWH28kh.js +0 -1
  420. package/dist/public/assets/_Cto7UR6x.js.br +0 -0
  421. package/dist/public/assets/_CtrIYddo.js.br +0 -0
  422. package/dist/public/assets/_CvDzPXmv.js +0 -1
  423. package/dist/public/assets/_Cvh-VNIk.js.br +0 -0
  424. package/dist/public/assets/_Cx8F-gsJ.js.br +0 -0
  425. package/dist/public/assets/_CxbcobyM.js +0 -1
  426. package/dist/public/assets/_Cy7hJYIs.js +0 -1
  427. package/dist/public/assets/_CzvJRV9T.js.br +0 -0
  428. package/dist/public/assets/_D-902IrK.js +0 -1
  429. package/dist/public/assets/_D-902IrK.js.br +0 -0
  430. package/dist/public/assets/_D1Bmsn3j.js +0 -1
  431. package/dist/public/assets/_D4Ta82Ad.js.br +0 -0
  432. package/dist/public/assets/_D8EMVgMd.js +0 -1
  433. package/dist/public/assets/_DBpSHwsH.js.br +0 -0
  434. package/dist/public/assets/_DDwytJDF.js +0 -1
  435. package/dist/public/assets/_DDwytJDF.js.br +0 -0
  436. package/dist/public/assets/_DE_Y-0-h.js.br +0 -0
  437. package/dist/public/assets/_DHw-LiNs.js +0 -1
  438. package/dist/public/assets/_DILlGU4L.js.br +0 -0
  439. package/dist/public/assets/_DJa--qOX.js.br +0 -0
  440. package/dist/public/assets/_DKmUkNb1.js +0 -1
  441. package/dist/public/assets/_DKuBKDhM.js +0 -1
  442. package/dist/public/assets/_DLOPvUZY.js.br +0 -0
  443. package/dist/public/assets/_DMBjdP4M.js +0 -1
  444. package/dist/public/assets/_DMgMXzil.js +0 -1
  445. package/dist/public/assets/_DMuuYm9C.js.br +0 -0
  446. package/dist/public/assets/_DNZFctlv.js.br +0 -0
  447. package/dist/public/assets/_DPq7Yp4u.js +0 -1
  448. package/dist/public/assets/_DRTW5fd9.js.br +0 -0
  449. package/dist/public/assets/_DRx0cYWy.js +0 -1
  450. package/dist/public/assets/_DSqeeGaZ.js +0 -1
  451. package/dist/public/assets/_DTRYzVXy.js.br +0 -0
  452. package/dist/public/assets/_DTebU1L2.js +0 -1
  453. package/dist/public/assets/_DWO9qYdD.js +0 -1
  454. package/dist/public/assets/_DWnXmngO.js +0 -1
  455. package/dist/public/assets/_DX2UfSkV.js.br +0 -0
  456. package/dist/public/assets/_DXhRdKW7.js.br +0 -0
  457. package/dist/public/assets/_D_JNOhlM.js +0 -1
  458. package/dist/public/assets/_Dc1Lc51O.js +0 -1
  459. package/dist/public/assets/_Dc1Lc51O.js.br +0 -0
  460. package/dist/public/assets/_DccrUV-t.js.br +0 -0
  461. package/dist/public/assets/_DfMtdFhk.js +0 -1
  462. package/dist/public/assets/_DlOIFmP5.js.br +0 -0
  463. package/dist/public/assets/_DlpWFr6R.js.br +0 -0
  464. package/dist/public/assets/_DmzK_VpH.js +0 -1
  465. package/dist/public/assets/_Dn-53uYD.js +0 -1
  466. package/dist/public/assets/_Dprfg2XO.js +0 -1
  467. package/dist/public/assets/_DqSs-qWW.js +0 -1
  468. package/dist/public/assets/_Dt47AQIi.js +0 -1
  469. package/dist/public/assets/_DtVh1tC2.js +0 -1
  470. package/dist/public/assets/_DuBYI8Df.js +0 -1
  471. package/dist/public/assets/_DuQRbl1J.js.br +0 -0
  472. package/dist/public/assets/_DxwuLWwv.js.br +0 -0
  473. package/dist/public/assets/_Dy4AHyMD.js +0 -1
  474. package/dist/public/assets/_DzCAv2Gl.js.br +0 -0
  475. package/dist/public/assets/_Hd-PFNkS.js.br +0 -0
  476. package/dist/public/assets/_IJOifsPN.js.br +0 -0
  477. package/dist/public/assets/_IYKAiNbQ.js.br +0 -0
  478. package/dist/public/assets/_ImG6Q5u4.js.br +0 -0
  479. package/dist/public/assets/_K_yqvP79.js +0 -1
  480. package/dist/public/assets/_K_yqvP79.js.br +0 -0
  481. package/dist/public/assets/_LSddbYPg.js.br +0 -0
  482. package/dist/public/assets/_Mrawm4gM.js.br +0 -0
  483. package/dist/public/assets/_N6UM3iEC.js +0 -1
  484. package/dist/public/assets/_OCdp7nNx.js +0 -1
  485. package/dist/public/assets/_OCdp7nNx.js.br +0 -0
  486. package/dist/public/assets/_P4Q76273.js +0 -1
  487. package/dist/public/assets/_Q3J62UbV.js.br +0 -0
  488. package/dist/public/assets/_V7boHS_a.js +0 -1
  489. package/dist/public/assets/_V7boHS_a.js.br +0 -0
  490. package/dist/public/assets/_VUoWEzVN.js +0 -1
  491. package/dist/public/assets/_XFhH3dP0.js.br +0 -0
  492. package/dist/public/assets/_aD-zCciQ.js +0 -1
  493. package/dist/public/assets/_d0O4aA0L.js.br +0 -0
  494. package/dist/public/assets/_dVPo9v4u.js +0 -1
  495. package/dist/public/assets/_egwsGA2z.js +0 -1
  496. package/dist/public/assets/_hIGDKE3G.js +0 -1
  497. package/dist/public/assets/_khh1x77_.js.br +0 -0
  498. package/dist/public/assets/_l5fDrx0F.js.br +0 -0
  499. package/dist/public/assets/_nIuAA97l.js.br +0 -0
  500. package/dist/public/assets/_udAEKVMs.js.br +0 -0
  501. package/dist/public/assets/_vXrbhKaS.js.br +0 -0
  502. package/dist/public/assets/app-shell-B0OO79vS.css +0 -1
  503. package/dist/public/assets/app-shell-B0OO79vS.css.br +0 -0
  504. package/dist/public/assets/files-view-8U0RvfCW.css +0 -1
  505. package/dist/public/assets/files-view-8U0RvfCW.css.br +0 -0
  506. package/dist/public/assets/files-view-Cen1Ehm2.js +0 -2
  507. package/dist/public/assets/group.css.ts-BXYS6DEA.css +0 -1
  508. package/dist/public/assets/group.css.ts-BXYS6DEA.css.br +0 -0
  509. package/dist/public/assets/icon-folder-BfrS749u.css +0 -1
  510. package/dist/public/assets/icon-folder-BfrS749u.css.br +0 -0
  511. package/dist/public/assets/icon-search-CQX_Oqgo.css.br +0 -0
  512. package/dist/public/assets/manage-workspace-CCJ4ta9y.js +0 -2
  513. package/dist/public/assets/manage-workspace-D_Q7iFJx.css +0 -1
  514. package/dist/public/assets/modal-view-BY2E8mw2.css.br +0 -0
  515. package/dist/public/assets/new-B_V1ilQW.js +0 -1
  516. package/dist/public/assets/new-workspace-DbYcKEc1.js +0 -2
  517. package/dist/public/assets/new-workspace-DxkmgnmD.css +0 -1
  518. package/dist/public/assets/new-workspace-DxkmgnmD.css.br +0 -0
  519. package/dist/public/assets/port-chip-9ONt0A-X.css +0 -1
  520. package/dist/public/assets/prompt-dialog-FlNGIEVH.css +0 -1
  521. package/dist/public/assets/prompt-dialog-FlNGIEVH.css.br +0 -0
  522. package/dist/public/assets/quick-open-DGZd2O_C.css +0 -1
  523. package/dist/public/assets/quick-open-DGZd2O_C.css.br +0 -0
  524. package/dist/public/assets/repo-picker-cm3fnbTq.css +0 -1
  525. package/dist/public/assets/repo-picker-cm3fnbTq.css.br +0 -3
  526. package/dist/public/assets/review-view-B2Nz9ybY.js +0 -2
  527. package/dist/public/assets/review-view-CcATNzWo.css +0 -1
  528. package/dist/public/assets/review-view-CcATNzWo.css.br +0 -0
  529. package/dist/public/assets/section-CzWFTcJC.css +0 -1
  530. package/dist/public/assets/section-CzWFTcJC.css.br +0 -0
  531. package/dist/public/assets/settings-B_V1ilQW.js +0 -1
  532. package/dist/public/assets/settings-page-CMLmEhnN.js +0 -2
  533. package/dist/public/assets/settings-page-DUX8B1oE.css +0 -1
  534. package/dist/public/assets/settings-page-DUX8B1oE.css.br +0 -0
  535. package/dist/public/assets/skill-row-DqAUuSBd.css +0 -1
  536. package/dist/public/assets/sso-auth-B6eZLZCG.css +0 -1
  537. package/dist/public/assets/sso-auth-B6eZLZCG.css.br +0 -0
  538. package/dist/public/assets/w-B_V1ilQW.js +0 -1
  539. package/dist/public/assets/w._-B0e-KW5y.js +0 -1
  540. package/dist/public/assets/w._-B_V1ilQW.js +0 -1
  541. package/dist/public/assets/w._-DQBTonBF.js +0 -1
@@ -4,11 +4,22 @@ import { t as require_safe_buffer } from "./_BmSjjJ2E.js";
4
4
  import fs from "node:fs";
5
5
  import path from "node:path";
6
6
  import { execFile, execFileSync } from "node:child_process";
7
+ import fs$1 from "node:fs/promises";
7
8
  import os from "node:os";
8
9
  import { promisify } from "node:util";
9
10
  import { DatabaseSync } from "node:sqlite";
10
11
  import { createHash } from "node:crypto";
11
12
  //#region src/server/http.ts
13
+ /** Who may frame the app's own responses: the app alone (the review's PDF
14
+ * preview). A page elsewhere that frames it can dress a click on it as a
15
+ * click on something of its own. A route that sends a
16
+ * Content-Security-Policy of its own replaces this one, so it names
17
+ * `FRAME_ANCESTORS` too. */
18
+ var FRAME_ANCESTORS = "frame-ancestors 'self'";
19
+ var FRAME_HEADERS = {
20
+ "content-security-policy": FRAME_ANCESTORS,
21
+ "x-frame-options": "SAMEORIGIN"
22
+ };
12
23
  /** Error whose `status` the API error-boundary middleware uses for the response. */
13
24
  function httpError(status, message) {
14
25
  return Object.assign(new Error(message), { status });
@@ -25,6 +36,96 @@ async function readBody(ctx) {
25
36
  return checked(await ctx.body, "request body");
26
37
  }
27
38
  //#endregion
39
+ //#region src/server/cache.ts
40
+ /** Keyed stale-while-revalidate cache: a cached value is served immediately
41
+ * (revalidating in the background when older than `ttlMs`); loads are deduped
42
+ * per key, and `refresh` bypasses both the cache and any in-flight load. */
43
+ function swr(ttlMs, load, seed) {
44
+ const cache = /* @__PURE__ */ new Map();
45
+ const inflight = /* @__PURE__ */ new Map();
46
+ function start(key, refresh) {
47
+ const startedAt = Date.now();
48
+ const promise = load(key, refresh).then((value) => {
49
+ const existing = cache.get(key);
50
+ if (!existing || existing.at <= startedAt) cache.set(key, {
51
+ at: Date.now(),
52
+ value
53
+ });
54
+ return value;
55
+ }).finally(() => {
56
+ if (inflight.get(key)?.promise === promise) inflight.delete(key);
57
+ });
58
+ inflight.set(key, {
59
+ promise,
60
+ refresh
61
+ });
62
+ return promise;
63
+ }
64
+ const read = (key, refresh = false) => {
65
+ if (refresh) {
66
+ const current = inflight.get(key);
67
+ return current?.refresh ? current.promise : start(key, true);
68
+ }
69
+ let cached = cache.get(key);
70
+ if (!cached && seed) {
71
+ cached = seed(key);
72
+ if (cached) cache.set(key, cached);
73
+ }
74
+ if (cached) {
75
+ if (Date.now() - cached.at >= ttlMs && !inflight.has(key)) start(key, false).catch(() => {});
76
+ return Promise.resolve(cached.value);
77
+ }
78
+ return inflight.get(key)?.promise ?? start(key, false);
79
+ };
80
+ /** Inject an externally fetched value (e.g. from a batched load). */
81
+ read.set = (key, value) => {
82
+ cache.set(key, {
83
+ at: Date.now(),
84
+ value
85
+ });
86
+ };
87
+ /** Current cached value, if any — used when a batch update must merge
88
+ * with a richer per-key load rather than replace it. */
89
+ read.get = (key) => cache.get(key)?.value;
90
+ return read;
91
+ }
92
+ /** Serialize async work per key: calls for one key run in submission order,
93
+ * each starting only after the previous settled. The stored tail is the
94
+ * all-settled form, so a rejection neither blocks the next caller nor leaves
95
+ * the entry behind — the map holds only keys with work still in flight. */
96
+ var locks = /* @__PURE__ */ new Map();
97
+ function withLock(key, fn) {
98
+ const run = (locks.get(key) ?? Promise.resolve()).then(fn);
99
+ const tail = run.then(() => {}, () => {});
100
+ locks.set(key, tail);
101
+ tail.then(() => {
102
+ if (locks.get(key) === tail) locks.delete(key);
103
+ });
104
+ return run;
105
+ }
106
+ /** One load at a time, and a short reuse window: callers join the in-flight
107
+ * load, and a result younger than `ttlMs` is served without one. For an
108
+ * expensive process sweep (lsof, ps, list-panes) whose answer does not
109
+ * change within the window — `ttlMs` of 0 still collapses concurrent
110
+ * callers onto a single spawn. */
111
+ function shared(fn, ttlMs) {
112
+ let inflight = null;
113
+ let last = null;
114
+ return () => {
115
+ if (last && Date.now() - last.at < ttlMs) return Promise.resolve(last.value);
116
+ if (!inflight) inflight = fn().then((value) => {
117
+ last = {
118
+ at: Date.now(),
119
+ value
120
+ };
121
+ return value;
122
+ }).finally(() => {
123
+ inflight = null;
124
+ });
125
+ return inflight;
126
+ };
127
+ }
128
+ //#endregion
28
129
  //#region lib/setup/listen.mjs
29
130
  /** Addresses that mean every interface. */
30
131
  var EVERY = /* @__PURE__ */ new Set([
@@ -66,8 +167,9 @@ var config = {
66
167
  appPort: Number(process.env.WORK_APP_PORT || 7171),
67
168
  /** How a workspace port is named in a hostname the app proxies
68
169
  * (server/port-proxy.ts): `sub` is `3000.work.example.com`, `dash` is
69
- * `3000-work.example.com`. The server accepts both; this only picks
70
- * which one the port chips link to. `dash` stays one label under the
170
+ * `3000-work.example.com`. The port chips link to this one; the server
171
+ * takes `sub` either way, and `dash` only when it is picked
172
+ * (server/access.ts `dashPortName`). `dash` stays one label under the
71
173
  * zone, which is what a free Cloudflare certificate covers. */
72
174
  portHosts: process.env.WORK_PORT_HOSTS === "dash" ? "dash" : "sub",
73
175
  /** The address the server listens on: this machine only, unless set
@@ -92,6 +194,11 @@ function list(value) {
92
194
  return (value || "").split(",").map((s) => s.trim()).filter(Boolean);
93
195
  }
94
196
  fs.mkdirSync(config.dataDir, { recursive: true });
197
+ try {
198
+ fs.chmodSync(config.dataDir, 448);
199
+ } catch (err) {
200
+ console.warn(`[work] could not make ${config.dataDir} private: ${err.message}`);
201
+ }
95
202
  //#endregion
96
203
  //#region src/server/exec.ts
97
204
  /** Dedicated tmux server so we never touch another multiplexer's or the
@@ -131,21 +238,25 @@ var GIT_NETWORK_MS = {
131
238
  push: 3e5,
132
239
  "ls-remote": 6e4
133
240
  };
134
- /** Never let git wait on a terminal it doesn't have — a missing credential
135
- * fails with a message instead of hanging the clone forever. Optional
136
- * locks are off because most of what runs here is a background probe (the
137
- * review's stamp poll, Files, the language servers' change feed): a
138
- * `git status` refreshing the index holds `index.lock`, and an agent's
139
- * `git commit` or rebase step landing in that moment fails on it. */
241
+ /** What every git process work starts runs with, `extra` on top: `git`
242
+ * below, and the diff's streaming reads, which spawn their own. Never let
243
+ * git wait on a terminal it doesn't have — a missing credential fails with
244
+ * a message instead of hanging the clone forever. Optional locks are off
245
+ * because most of what runs here is a background probe (the review's
246
+ * stamp poll, Files, the language servers' change feed): a `git status`
247
+ * refreshing the index holds `index.lock`, and an agent's `git commit` or
248
+ * rebase step landing in that moment fails on it. */
249
+ var gitEnv = (extra) => ({
250
+ ...process.env,
251
+ GIT_TERMINAL_PROMPT: "0",
252
+ GIT_OPTIONAL_LOCKS: "0",
253
+ ...extra
254
+ });
140
255
  var git = async (args, cwd) => {
141
256
  const verb = args.find((a) => !a.startsWith("-")) ?? "";
142
257
  const timeoutMs = GIT_NETWORK_MS[verb];
143
258
  try {
144
- return await run$1("git", args, cwd, {
145
- ...process.env,
146
- GIT_TERMINAL_PROMPT: "0",
147
- GIT_OPTIONAL_LOCKS: "0"
148
- }, timeoutMs ? { timeoutMs } : void 0);
259
+ return await run$1("git", args, cwd, gitEnv(), timeoutMs ? { timeoutMs } : void 0);
149
260
  } catch (err) {
150
261
  if (timeoutMs && err.killed) throw new Error(`git ${verb} timed out after ${Math.round(timeoutMs / 1e3)}s`);
151
262
  throw err;
@@ -229,6 +340,7 @@ function get(sql, ...params) {
229
340
  function workspacePath(id) {
230
341
  return get("SELECT path FROM workspaces WHERE id = ?", id)?.path;
231
342
  }
343
+ var fresh = !db.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table'").get();
232
344
  var freshReview = !db.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'review_comments'").get();
233
345
  db.exec(`
234
346
  PRAGMA journal_mode = WAL;
@@ -290,8 +402,7 @@ db.exec(`
290
402
  );
291
403
 
292
404
  -- Viewed marks (server/viewed.ts): a file of a branch, and its change
293
- -- as it was when marked. Keep in sync with scripts/migrate.mjs, which
294
- -- creates it too.
405
+ -- as it was when marked.
295
406
  CREATE TABLE IF NOT EXISTS review_marks (
296
407
  workspace_id TEXT NOT NULL REFERENCES workspaces(id) ON DELETE CASCADE,
297
408
  worktree TEXT NOT NULL,
@@ -313,6 +424,7 @@ ensureColumn("review_comments", "snippet", "TEXT");
313
424
  ensureColumn("workspaces", "materialized", "INTEGER NOT NULL DEFAULT 1");
314
425
  ensureColumn("workspaces", "origin_branch", "TEXT");
315
426
  ensureColumn("workspaces", "imported_at", "TEXT");
427
+ if (fresh) db.exec("PRAGMA user_version = 1");
316
428
  //#endregion
317
429
  //#region src/client/pref-change.ts
318
430
  /** The stored text after `change`, or null when nothing is left. A value
@@ -476,10 +588,13 @@ var agents_default = [
476
588
  ];
477
589
  //#endregion
478
590
  //#region lib/setup/catalog.mjs
479
- /** Machine tools. `required` ones gate readiness; the rest are the utilities
480
- * agents reach for constantly (search, JSON, HTTP, process tools). Static
481
- * binaries via mise, except the system packages the installer provides
482
- * (git, tmux). */
591
+ /** Machine tools. `required` ones gate readiness; the rest are what agents
592
+ * reach for on any project, and what work's own features run on — measured
593
+ * over agents' shell commands, `rg` is a fifth of Codex's (Claude Code
594
+ * bundles its own) and `jq` common to both, where the terminal niceties
595
+ * once listed here (fd, delta, fzf, bottom, hyperfine, ast-grep) went all
596
+ * but unused. `work setup` installs every one. Static binaries via mise,
597
+ * except the system packages the installer provides (git, tmux). */
483
598
  var TOOLS = [
484
599
  {
485
600
  id: "git",
@@ -521,12 +636,6 @@ var TOOLS = [
521
636
  bin: "rg",
522
637
  mise: "ripgrep"
523
638
  },
524
- {
525
- id: "fd",
526
- label: "fd",
527
- bin: "fd",
528
- mise: "fd"
529
- },
530
639
  {
531
640
  id: "jq",
532
641
  label: "jq",
@@ -534,46 +643,104 @@ var TOOLS = [
534
643
  mise: "jq"
535
644
  },
536
645
  {
537
- id: "delta",
538
- label: "delta",
539
- bin: "delta",
540
- mise: "delta"
646
+ id: "skills",
647
+ label: "skills CLI",
648
+ bin: "skills",
649
+ mise: "npm:skills"
650
+ }
651
+ ];
652
+ /** A project's own tools: recommended only where a workspace's repo says it
653
+ * uses one — a file at its root (`files`), or package.json's
654
+ * `packageManager` naming it — and never installed by `work setup`, which
655
+ * cannot know the projects (Settings offers them, as Languages offers a
656
+ * language's server). A tool every project of a kind needs, not one that
657
+ * project happens to use: the rest belong to the repo's own `mise.toml`. */
658
+ var PROJECT_TOOLS = [
659
+ {
660
+ id: "pnpm",
661
+ label: "pnpm",
662
+ bin: "pnpm",
663
+ mise: "pnpm",
664
+ files: ["pnpm-lock.yaml", "pnpm-workspace.yaml"],
665
+ packageManager: "pnpm"
541
666
  },
542
667
  {
543
- id: "ast-grep",
544
- label: "ast-grep",
545
- bin: "ast-grep",
546
- mise: "ast-grep"
668
+ id: "yarn",
669
+ label: "Yarn",
670
+ bin: "yarn",
671
+ mise: "yarn",
672
+ files: ["yarn.lock", ".yarnrc.yml"],
673
+ packageManager: "yarn"
547
674
  },
548
675
  {
549
- id: "hyperfine",
550
- label: "hyperfine",
551
- bin: "hyperfine",
552
- mise: "hyperfine"
676
+ id: "bun",
677
+ label: "Bun",
678
+ bin: "bun",
679
+ mise: "bun",
680
+ files: [
681
+ "bun.lock",
682
+ "bun.lockb",
683
+ "bunfig.toml"
684
+ ],
685
+ packageManager: "bun"
553
686
  },
554
687
  {
555
- id: "fzf",
556
- label: "fzf",
557
- bin: "fzf",
558
- mise: "fzf"
688
+ id: "deno",
689
+ label: "Deno",
690
+ bin: "deno",
691
+ mise: "deno",
692
+ files: [
693
+ "deno.json",
694
+ "deno.jsonc",
695
+ "deno.lock"
696
+ ]
559
697
  },
560
698
  {
561
- id: "bottom",
562
- label: "bottom",
563
- bin: "btm",
564
- mise: "bottom"
699
+ id: "uv",
700
+ label: "uv",
701
+ bin: "uv",
702
+ mise: "uv",
703
+ files: [
704
+ "uv.lock",
705
+ "pyproject.toml",
706
+ "requirements.txt"
707
+ ]
565
708
  },
566
709
  {
567
- id: "pnpm",
568
- label: "pnpm",
569
- bin: "pnpm",
570
- mise: "pnpm"
710
+ id: "go",
711
+ label: "Go",
712
+ bin: "go",
713
+ mise: "go",
714
+ files: ["go.mod", "go.work"]
571
715
  },
572
716
  {
573
- id: "skills",
574
- label: "skills CLI",
575
- bin: "skills",
576
- mise: "npm:skills"
717
+ id: "rust",
718
+ label: "Rust",
719
+ bin: "cargo",
720
+ mise: "rust",
721
+ files: [
722
+ "Cargo.toml",
723
+ "rust-toolchain.toml",
724
+ "rust-toolchain"
725
+ ]
726
+ },
727
+ {
728
+ id: "just",
729
+ label: "just",
730
+ bin: "just",
731
+ mise: "just",
732
+ files: [
733
+ "justfile",
734
+ "Justfile",
735
+ ".justfile"
736
+ ]
737
+ },
738
+ {
739
+ id: "task",
740
+ label: "Task",
741
+ bin: "task",
742
+ mise: "task",
743
+ files: ["Taskfile.yml", "Taskfile.yaml"]
577
744
  }
578
745
  ];
579
746
  /** Coding agent CLIs — one folder each under src/agents/, whose meta.json is
@@ -585,7 +752,19 @@ var TOOLS = [
585
752
  var AGENTS$1 = agents_default;
586
753
  var DEFAULT_GITHUB_HOST = "github.com";
587
754
  function toolById(id) {
588
- return TOOLS.find((t) => t.id === id) || null;
755
+ return TOOLS.find((t) => t.id === id) || PROJECT_TOOLS.find((t) => t.id === id) || null;
756
+ }
757
+ /** A version that is only a version (`latest`, `lts`, `22`, `1.2.3-rc.1`),
758
+ * not one of mise's forms that build from a git ref or point at a path
759
+ * (`ref:`, `path:`, `prefix:`). */
760
+ var PLAIN_VERSION = /^(?!-)[\w.+-]+$/;
761
+ /** Whether a mise pin is one of the tools above, as they install, at a
762
+ * plain version: what a restore takes without asking. Any other name —
763
+ * a registry tool the catalog does not list, a backend (`npm:`, `ubi:`,
764
+ * `github:`, `cargo:`, `go:`, `pipx:` …), a URL — installs and runs
765
+ * whatever it names, so a restore takes it only when it is named. */
766
+ function catalogPin(name, version) {
767
+ return [...TOOLS, ...PROJECT_TOOLS].some((t) => t.mise === name) && PLAIN_VERSION.test(version);
589
768
  }
590
769
  function agentById(id) {
591
770
  return AGENTS$1.find((a) => a.id === id) || null;
@@ -656,8 +835,9 @@ function setupDirs() {
656
835
  };
657
836
  return dirsFor.dirs;
658
837
  }
659
- /** `~/…` for anything under the home directory — every path here is for
660
- * display (Settings rows, `work doctor`), never re-used to exec. */
838
+ /** `~/…` for anything under the home directory — every path given it is
839
+ * for display (Settings rows, `work doctor`, a language server's
840
+ * definition outside every checkout), never re-used to exec. */
661
841
  function tilde(p) {
662
842
  if (!p) return p;
663
843
  return p === home ? "~" : p.startsWith(home + path.sep) ? "~" + p.slice(home.length) : p;
@@ -1051,96 +1231,6 @@ function preferredAgent(enabled = enabledAgents()) {
1051
1231
  return enabled[0] || "shell";
1052
1232
  }
1053
1233
  //#endregion
1054
- //#region src/server/cache.ts
1055
- /** Keyed stale-while-revalidate cache: a cached value is served immediately
1056
- * (revalidating in the background when older than `ttlMs`); loads are deduped
1057
- * per key, and `refresh` bypasses both the cache and any in-flight load. */
1058
- function swr(ttlMs, load, seed) {
1059
- const cache = /* @__PURE__ */ new Map();
1060
- const inflight = /* @__PURE__ */ new Map();
1061
- function start(key, refresh) {
1062
- const startedAt = Date.now();
1063
- const promise = load(key, refresh).then((value) => {
1064
- const existing = cache.get(key);
1065
- if (!existing || existing.at <= startedAt) cache.set(key, {
1066
- at: Date.now(),
1067
- value
1068
- });
1069
- return value;
1070
- }).finally(() => {
1071
- if (inflight.get(key)?.promise === promise) inflight.delete(key);
1072
- });
1073
- inflight.set(key, {
1074
- promise,
1075
- refresh
1076
- });
1077
- return promise;
1078
- }
1079
- const read = (key, refresh = false) => {
1080
- if (refresh) {
1081
- const current = inflight.get(key);
1082
- return current?.refresh ? current.promise : start(key, true);
1083
- }
1084
- let cached = cache.get(key);
1085
- if (!cached && seed) {
1086
- cached = seed(key);
1087
- if (cached) cache.set(key, cached);
1088
- }
1089
- if (cached) {
1090
- if (Date.now() - cached.at >= ttlMs && !inflight.has(key)) start(key, false).catch(() => {});
1091
- return Promise.resolve(cached.value);
1092
- }
1093
- return inflight.get(key)?.promise ?? start(key, false);
1094
- };
1095
- /** Inject an externally fetched value (e.g. from a batched load). */
1096
- read.set = (key, value) => {
1097
- cache.set(key, {
1098
- at: Date.now(),
1099
- value
1100
- });
1101
- };
1102
- /** Current cached value, if any — used when a batch update must merge
1103
- * with a richer per-key load rather than replace it. */
1104
- read.get = (key) => cache.get(key)?.value;
1105
- return read;
1106
- }
1107
- /** Serialize async work per key: calls for one key run in submission order,
1108
- * each starting only after the previous settled. The stored tail is the
1109
- * all-settled form, so a rejection neither blocks the next caller nor leaves
1110
- * the entry behind — the map holds only keys with work still in flight. */
1111
- var locks = /* @__PURE__ */ new Map();
1112
- function withLock(key, fn) {
1113
- const run = (locks.get(key) ?? Promise.resolve()).then(fn);
1114
- const tail = run.then(() => {}, () => {});
1115
- locks.set(key, tail);
1116
- tail.then(() => {
1117
- if (locks.get(key) === tail) locks.delete(key);
1118
- });
1119
- return run;
1120
- }
1121
- /** One load at a time, and a short reuse window: callers join the in-flight
1122
- * load, and a result younger than `ttlMs` is served without one. For an
1123
- * expensive process sweep (lsof, ps, list-panes) whose answer does not
1124
- * change within the window — `ttlMs` of 0 still collapses concurrent
1125
- * callers onto a single spawn. */
1126
- function shared(fn, ttlMs) {
1127
- let inflight = null;
1128
- let last = null;
1129
- return () => {
1130
- if (last && Date.now() - last.at < ttlMs) return Promise.resolve(last.value);
1131
- if (!inflight) inflight = fn().then((value) => {
1132
- last = {
1133
- at: Date.now(),
1134
- value
1135
- };
1136
- return value;
1137
- }).finally(() => {
1138
- inflight = null;
1139
- });
1140
- return inflight;
1141
- };
1142
- }
1143
- //#endregion
1144
1234
  //#region src/server/events.ts
1145
1235
  var listeners$1 = /* @__PURE__ */ new Set();
1146
1236
  function publish(type, data) {
@@ -1164,7 +1254,7 @@ function subscribe(listener) {
1164
1254
  listeners$1.add(listener);
1165
1255
  return () => listeners$1.delete(listener);
1166
1256
  }
1167
- /** Connected SSE clients — lets background watchers idle when no one
1257
+ /** Connected events-bus clients — lets background watchers idle when no one
1168
1258
  * is listening. */
1169
1259
  function subscriberCount() {
1170
1260
  return listeners$1.size;
@@ -7122,7 +7212,7 @@ var background = /* @__PURE__ */ new Map();
7122
7212
  /** A turn's end is pushed once it has stayed ended this long. Stop fires
7123
7213
  * again each time something sends the agent back to work (a stop hook
7124
7214
  * that continues it, a goal loop, background subagents reporting in), and
7125
- * each of those ends was a "Finished" on the phone while it carried on. */
7215
+ * each of those ends would be a "Finished" on the phone while it carries on. */
7126
7216
  var DONE_SETTLE_MS = 3e3;
7127
7217
  var listeners = /* @__PURE__ */ new Set();
7128
7218
  /** Called on every phase transition (the status snapshot drops itself). */
@@ -7295,7 +7385,7 @@ function publishChange(sessionId) {
7295
7385
  const row = get("SELECT workspace_id FROM sessions WHERE id = ?", sessionId);
7296
7386
  if (row?.workspace_id) {
7297
7387
  const workspaceId = row.workspace_id;
7298
- import("./_BkCP7ACo.js").then((m) => m.notifySessionsChanged(workspaceId));
7388
+ import("./_LF2Fo5WE.js").then((m) => m.notifySessionsChanged(workspaceId));
7299
7389
  return;
7300
7390
  }
7301
7391
  publish("sessions.changed");
@@ -7705,10 +7795,10 @@ async function fetchUsage$3(account) {
7705
7795
  var PROFILE_TTL_MS = 36e5;
7706
7796
  var profiles = /* @__PURE__ */ new Map();
7707
7797
  /** The account's plan as Anthropic has it now. `.claude.json` holds what
7708
- * Claude Code saw at sign-in, and it only asks again on a new login, so an
7709
- * upgrade (Max 5x → 20x) kept reading as the old plan until then. Asked
7710
- * with the same token as the usage; the cached plan stands in when it
7711
- * cannot be. */
7798
+ * Claude Code saw at sign-in, and it only asks again on a new login, so
7799
+ * from it alone an upgrade (Max 5x → 20x) reads as the old plan until
7800
+ * then. Asked with the same token as the usage; the cached plan stands in
7801
+ * when it cannot be. */
7712
7802
  async function livePlan(account) {
7713
7803
  const hit = profiles.get(account.dir);
7714
7804
  if (hit && Date.now() - hit.at < PROFILE_TTL_MS) return hit.plan;
@@ -8609,6 +8699,47 @@ var cursor = {
8609
8699
  usage: () => cursorRow().then((row) => [row])
8610
8700
  };
8611
8701
  //#endregion
8702
+ //#region src/server/paths.ts
8703
+ /** Whether `target` is `root` or somewhere under it, by name alone. Both
8704
+ * are normalised first, so `..` and a trailing slash count as the
8705
+ * filesystem would count them, and the separator after `root` is the
8706
+ * whole point: a sibling `…/work-2` is not in `…/work`. A relative
8707
+ * `target` is in nothing — an empty one is a process cwd that could not
8708
+ * be read, not the root. A symlink under `root` can still lead out: what
8709
+ * is read through one wants `realInside`. */
8710
+ function inside(target, root) {
8711
+ if (!path.isAbsolute(target)) return false;
8712
+ const top = path.resolve(root);
8713
+ const full = path.resolve(target);
8714
+ return full === top || full.startsWith(top.endsWith(path.sep) ? top : top + path.sep);
8715
+ }
8716
+ /** Where `file` — named from `root`, as git and the pages name a
8717
+ * checkout's files, or absolute — really leads through every symlink,
8718
+ * when that is still `root` or under it; null when it leads out or is not
8719
+ * there. The check by name alone lets a symlink in a repo, which a branch
8720
+ * can add, point a read at any file on the machine. */
8721
+ async function realInside(file, root) {
8722
+ const full = path.resolve(root, file);
8723
+ if (!inside(full, root)) return null;
8724
+ try {
8725
+ const [top, real] = await Promise.all([fs$1.realpath(root), fs$1.realpath(full)]);
8726
+ return inside(real, top) ? real : null;
8727
+ } catch {
8728
+ return null;
8729
+ }
8730
+ }
8731
+ /** `realInside` for a caller that cannot wait. */
8732
+ function realInsideSync(file, root) {
8733
+ const full = path.resolve(root, file);
8734
+ if (!inside(full, root)) return null;
8735
+ try {
8736
+ const real = fs.realpathSync(full);
8737
+ return inside(real, fs.realpathSync(root)) ? real : null;
8738
+ } catch {
8739
+ return null;
8740
+ }
8741
+ }
8742
+ //#endregion
8612
8743
  //#region src/agents/grok/usage.ts
8613
8744
  var AUTH = path.join(HOME, ".grok", "auth.json");
8614
8745
  var LOG = path.join(HOME, ".grok", "logs", "unified.jsonl");
@@ -8781,7 +8912,7 @@ function scratch() {
8781
8912
  return os.tmpdir();
8782
8913
  }
8783
8914
  })();
8784
- return hookFile().startsWith(tmp + path.sep);
8915
+ return inside(hookFile(), tmp);
8785
8916
  }
8786
8917
  /** Whether Grok's hook registry names work's hook file — without it Grok
8787
8918
  * reports nothing and the screen has to speak for it. Read from disk, not
@@ -9309,10 +9440,10 @@ function tmuxWasStarted(id) {
9309
9440
  function clearTmuxStarted(id) {
9310
9441
  tmuxStarted.delete(id);
9311
9442
  }
9312
- /** SSE payload: session rows + live tmux/hook state so clients don't refetch.
9313
- * Coalesced per workspace: a turn boundary lands as a burst of phase
9314
- * transitions (hook, then scrape), and each one cost a list-panes spawn
9315
- * and a broadcast for a list that came out the same. */
9443
+ /** Events-bus payload: session rows + live tmux/hook state so clients
9444
+ * don't refetch. Coalesced per workspace: a turn boundary lands as a burst
9445
+ * of phase transitions (hook, then scrape), and each one cost a list-panes
9446
+ * spawn and a broadcast for a list that came out the same. */
9316
9447
  var EMIT_DEBOUNCE_MS = 50;
9317
9448
  var pendingEmits = /* @__PURE__ */ new Map();
9318
9449
  function notifySessionsChanged(workspaceId) {
@@ -9339,8 +9470,14 @@ async function emitSessionsChanged(workspaceId) {
9339
9470
  async function killWorkspaceSessions(workspaceId) {
9340
9471
  for (const session of listSessions(workspaceId)) await killSession(session.id);
9341
9472
  }
9473
+ /** Control characters a paste never means: C0 but tab and line breaks,
9474
+ * ESC, DEL and C1. The text can quote a reviewed file, which is repo
9475
+ * content, and an ESC in it can end the bracketed paste early on a tmux
9476
+ * that passes one through, typing the rest into the pane as keys. */
9477
+ var PASTE_UNSAFE = /[\x00-\x08\x0b\x0c\x0e-\x1f\x7f-\x9f]/g;
9342
9478
  /** Type text into a session's tmux (bracketed paste + Enter), creating it if needed. */
9343
- async function sendToSession(id, text, size) {
9479
+ async function sendToSession(id, raw, size) {
9480
+ const text = raw.replace(PASTE_UNSAFE, "");
9344
9481
  const session = getSession(id);
9345
9482
  if (!session) throw new Error("unknown session");
9346
9483
  const wsPath = workspacePath(session.workspace_id);
@@ -9518,68 +9655,71 @@ async function ensureTmuxServer() {
9518
9655
  ], os.homedir()).catch(() => {});
9519
9656
  }
9520
9657
  /** Full tmux command (options + new-session) for creating/attaching a
9521
- * session's tmux; `mode` is "-d" (create detached) or "-A" (attach-or-create). */
9658
+ * session's tmux; `mode` is "-d" (create detached) or "-A" (attach-or-create).
9659
+ * Every `set-option` is `-q`: one failed command drops the rest of a `;`
9660
+ * chain, new-session included, and a tmux older than an option
9661
+ * (`fill-character`, `extended-keys-format`) rejects its name. */
9522
9662
  function newSessionArgs(session, wsPath, mode, initialPrompt, size) {
9523
9663
  return [
9524
9664
  "start-server",
9525
9665
  ";",
9526
9666
  "set-option",
9527
- "-g",
9667
+ "-gq",
9528
9668
  "status",
9529
9669
  "off",
9530
9670
  ";",
9531
9671
  "set-option",
9532
- "-g",
9672
+ "-gq",
9533
9673
  "mouse",
9534
9674
  "on",
9535
9675
  ";",
9536
9676
  "set-option",
9537
- "-g",
9677
+ "-gq",
9538
9678
  "history-limit",
9539
9679
  "5000",
9540
9680
  ";",
9541
9681
  "set-option",
9542
- "-g",
9682
+ "-gq",
9543
9683
  "fill-character",
9544
9684
  " ",
9545
9685
  ";",
9546
9686
  "set-option",
9547
- "-s",
9687
+ "-sq",
9548
9688
  "set-clipboard",
9549
9689
  "on",
9550
9690
  ";",
9551
9691
  "set-option",
9552
- "-g",
9692
+ "-gq",
9553
9693
  "focus-events",
9554
9694
  "on",
9555
9695
  ";",
9556
9696
  "set-option",
9557
- "-s",
9697
+ "-sq",
9558
9698
  "extended-keys",
9559
9699
  "on",
9560
9700
  ";",
9561
9701
  "set-option",
9562
- "-s",
9702
+ "-sq",
9563
9703
  "extended-keys-format",
9564
9704
  "csi-u",
9565
9705
  ";",
9566
9706
  "set-option",
9567
- "-s",
9707
+ "-sq",
9568
9708
  "terminal-features[100]",
9569
9709
  "*:hyperlinks",
9570
9710
  ";",
9571
9711
  "set-option",
9572
- "-s",
9712
+ "-sq",
9573
9713
  "terminal-features[101]",
9574
9714
  "*:clipboard",
9575
9715
  ";",
9576
9716
  "set-option",
9577
- "-s",
9717
+ "-sq",
9578
9718
  "terminal-features[102]",
9579
9719
  "*:sync:RGB",
9580
9720
  ";",
9581
9721
  "set-option",
9582
- "-s",
9722
+ "-sq",
9583
9723
  "terminal-features[103]",
9584
9724
  "*:sixel",
9585
9725
  ";",
@@ -9770,4 +9910,4 @@ function sleep(ms) {
9770
9910
  return new Promise((resolve) => setTimeout(resolve, ms));
9771
9911
  }
9772
9912
  //#endregion
9773
- export { publish as $, noteBackground as A, toolById as At, agentLabel as B, tmux as Bt, readHookPayload as C, miseVersions as Ct, clearAgentPhase as D, TOOLS as Dt, agentPhase as E, DEFAULT_GITHUB_HOST as Et, setSessionViewers as F, workspacePath as Ft, manifest as G, ACCENT_RE as H, checked as Ht, settleQuietWorking as I, TMUX_SOCKET as It, deleteSubscription as J, normalizeAccent as K, agentBadge as L, gh as Lt, onPhaseChange as M, all as Mt, setAgentPhase as N, db as Nt, hookPhase as O, agentById as Ot, setScrapedPhase as P, get as Pt, validSubscription as Q, agentFamily as R, git as Rt, AGENTS as S, miseInstalls as St, blankRow as T, which as Tt, getInstance as U, httpError as Ut, agentMeta as V, config as Vt, iconSvg as W, readBody as Wt, saveSubscription as X, pushPublicKey as Y, sendPush as Z, renameSession as _, setPref as _t, ensureTmuxServer as a, withLock as at, tmuxName as b, doctor as bt, killSession as c, agentChoices as ct, listPanesWithin as d, deleteWorkspacePrefs as dt, publishJson as et, listSessions as f, disabledAgents as ft, panePids as g, setDisabledAgents as gt, notifySessionsChanged as h, preferredAgent as ht, disposeSessions as i, swr as it, noteUserAnswered as j, applyPrefChange as jt, hookReportedAt as k, agentLabel$1 as kt, killWorkspaceSessions as l, allPrefs as lt, newSessionArgs as m, getSetting as mt, clearTmuxStarted as n, subscriberCount as nt, forgetPanes as o, PREF_MAX as ot, markTmuxStarted as p, enabledAgents as pt, setInstance as q, createSession as r, shared as rt, getSession as s, WORKSPACE_PREFS as st, cleanEnv as t, subscribe as tt, listPanes as u, changePref as ut, sendToSession as v, setSetting as vt, reportsWorking as w, setupPath as wt, tmuxWasStarted as x, ghKnownHosts as xt, sessionStates as y, discoverAgents as yt, agentFromCommand as z, run$1 as zt };
9913
+ export { saveSubscription as $, readBody as $t, clearAgentPhase as A, agentById as At, agentBadge as B, gh as Bt, readHookPayload as C, miseVersions as Ct, realInsideSync as D, DEFAULT_GITHUB_HOST as Dt, realInside as E, which as Et, onPhaseChange as F, all as Ft, ACCENT_RE as G, config as Gt, agentFromCommand as H, gitEnv as Ht, setAgentPhase as I, db as It, manifest as J, withLock as Jt, getInstance as K, shared as Kt, setScrapedPhase as L, get as Lt, hookReportedAt as M, catalogPin as Mt, noteBackground as N, toolById as Nt, blankRow as O, PROJECT_TOOLS as Ot, noteUserAnswered as P, applyPrefChange as Pt, pushPublicKey as Q, httpError as Qt, setSessionViewers as R, workspacePath as Rt, AGENTS as S, miseInstalls as St, inside as T, tilde as Tt, agentLabel as U, run$1 as Ut, agentFamily as V, git as Vt, agentMeta as W, tmux as Wt, setInstance as X, FRAME_HEADERS as Xt, normalizeAccent as Y, FRAME_ANCESTORS as Yt, deleteSubscription as Z, checked as Zt, renameSession as _, setPref as _t, ensureTmuxServer as a, subscriberCount as at, tmuxName as b, doctor as bt, killSession as c, agentChoices as ct, listPanesWithin as d, deleteWorkspacePrefs as dt, sendPush as et, listSessions as f, disabledAgents as ft, panePids as g, setDisabledAgents as gt, notifySessionsChanged as h, preferredAgent as ht, disposeSessions as i, subscribe as it, hookPhase as j, agentLabel$1 as jt, agentPhase as k, TOOLS as kt, killWorkspaceSessions as l, allPrefs as lt, newSessionArgs as m, getSetting as mt, clearTmuxStarted as n, publish as nt, forgetPanes as o, PREF_MAX as ot, markTmuxStarted as p, enabledAgents as pt, iconSvg as q, swr as qt, createSession as r, publishJson as rt, getSession as s, WORKSPACE_PREFS as st, cleanEnv as t, validSubscription as tt, listPanes as u, changePref as ut, sendToSession as v, setSetting as vt, reportsWorking as w, setupPath as wt, tmuxWasStarted as x, ghKnownHosts as xt, sessionStates as y, discoverAgents as yt, settleQuietWorking as z, TMUX_SOCKET as zt };