@dylanpiercey/work 0.2.60 → 0.2.62

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 (488) hide show
  1. package/bin/cli/session.mjs +200 -14
  2. package/dist/{_xM2b0RL4.js → _BL9uMFqY.js} +114 -5
  3. package/dist/_BOUuiLtz.js +2 -0
  4. package/dist/_C-c452mk.js +2 -0
  5. package/dist/{_D2Un1mYs.js → _CYtDrBwm.js} +74 -74
  6. package/dist/{_B5_rwv2K.js → _C_xIwbCY.js} +197 -34
  7. package/dist/index.mjs +1920 -1704
  8. package/dist/public/assets/{_CEnGHCTE.js → _-YzJaYxh.js} +1 -1
  9. package/dist/public/assets/_-YzJaYxh.js.br +0 -0
  10. package/dist/public/assets/{_BVEoZ0DQ.js → _07VUAXq5.js} +1 -1
  11. package/dist/public/assets/_07VUAXq5.js.br +0 -0
  12. package/dist/public/assets/{_CsrDw2HV.js → _12OSqtgN.js} +1 -1
  13. package/dist/public/assets/_12OSqtgN.js.br +0 -0
  14. package/dist/public/assets/{_rFLxxyKo.js → _43YtAXPg.js} +1 -1
  15. package/dist/public/assets/_43YtAXPg.js.br +0 -0
  16. package/dist/public/assets/_5Td49WSZ.js +1 -0
  17. package/dist/public/assets/{_CKeIFx0z.js → _6-bjwOW2.js} +1 -1
  18. package/dist/public/assets/_6-bjwOW2.js.br +0 -0
  19. package/dist/public/assets/{_DdvVmpgX.js → _6_a3_hm5.js} +1 -1
  20. package/dist/public/assets/_6_a3_hm5.js.br +0 -0
  21. package/dist/public/assets/_A5XBSV-m.js +1 -0
  22. package/dist/public/assets/_AHyuoDDR.js +1 -0
  23. package/dist/public/assets/{_fJWjSk9f.js → _B15MMLyo.js} +1 -1
  24. package/dist/public/assets/_B15MMLyo.js.br +0 -0
  25. package/dist/public/assets/_B2C1SXbD.js +1 -0
  26. package/dist/public/assets/{_BG-zRRiX.js → _B4YR1uIA.js} +1 -1
  27. package/dist/public/assets/_B4YR1uIA.js.br +0 -0
  28. package/dist/public/assets/_B5Nzs35H.js +1 -0
  29. package/dist/public/assets/{_DYeFvJQu.js → _B6DVKoQR.js} +1 -1
  30. package/dist/public/assets/_B6DVKoQR.js.br +0 -0
  31. package/dist/public/assets/{_BFxxHHlG.js → _B727l6KQ.js} +1 -1
  32. package/dist/public/assets/_B727l6KQ.js.br +0 -0
  33. package/dist/public/assets/_BAY5zxaz.js +1 -0
  34. package/dist/public/assets/_BCYSQScu.js +1 -0
  35. package/dist/public/assets/{_wCgLIMkx.js → _BCsQoQCV.js} +5 -5
  36. package/dist/public/assets/_BCsQoQCV.js.br +0 -0
  37. package/dist/public/assets/_BDYtklQ5.js +1 -0
  38. package/dist/public/assets/_BEMm2uf8.js +1 -0
  39. package/dist/public/assets/{_CeTSn3Od.js → _BMdJE2yL.js} +1 -1
  40. package/dist/public/assets/_BMdJE2yL.js.br +0 -0
  41. package/dist/public/assets/_BMoRqx1-.js +1 -0
  42. package/dist/public/assets/{_C8RN45Ay.js → _BOZ5PfYS.js} +1 -1
  43. package/dist/public/assets/_BOZ5PfYS.js.br +0 -0
  44. package/dist/public/assets/_BOdfUPAd.js +1 -0
  45. package/dist/public/assets/_BPNfYRaq.js +1 -0
  46. package/dist/public/assets/{_D66U5RHc.js → _BPf5b-nV.js} +1 -1
  47. package/dist/public/assets/_BPf5b-nV.js.br +0 -0
  48. package/dist/public/assets/_BQy5D2fs.js +1 -0
  49. package/dist/public/assets/{_BPyRGDdd.js → _BRFpO-Qz.js} +1 -1
  50. package/dist/public/assets/_BS7TeNxL.js +1 -0
  51. package/dist/public/assets/{_kc4p4uHI.js → _BSZMtXDc.js} +1 -1
  52. package/dist/public/assets/_BSZMtXDc.js.br +0 -0
  53. package/dist/public/assets/{_DahJWFLJ.js → _BSZsLUE3.js} +1 -1
  54. package/dist/public/assets/_BSZsLUE3.js.br +0 -0
  55. package/dist/public/assets/_BTkTB9cb.js +1 -0
  56. package/dist/public/assets/_BUUGGnmx.js +1 -0
  57. package/dist/public/assets/_BVULBXkf.js +1 -0
  58. package/dist/public/assets/{_CCxaMhJi.js → _BWr5gy8s.js} +1 -1
  59. package/dist/public/assets/_BWr5gy8s.js.br +0 -0
  60. package/dist/public/assets/{_dFodER3o.js → _BXqFNiUE.js} +2 -2
  61. package/dist/public/assets/_BXqFNiUE.js.br +0 -0
  62. package/dist/public/assets/{_CYWrzltT.js → _BYkhacrS.js} +1 -1
  63. package/dist/public/assets/_BYkhacrS.js.br +0 -0
  64. package/dist/public/assets/_BaclUK8P.js +1 -0
  65. package/dist/public/assets/{_kZt7n5RY.js → _Bd34VcRs.js} +1 -1
  66. package/dist/public/assets/_Bd34VcRs.js.br +0 -0
  67. package/dist/public/assets/{_DfkI0VMD.js → _Be4WscwR.js} +1 -1
  68. package/dist/public/assets/_Be4WscwR.js.br +0 -0
  69. package/dist/public/assets/{_CedBoWcu.js → _BeUL1ueV.js} +1 -1
  70. package/dist/public/assets/_BeUL1ueV.js.br +0 -0
  71. package/dist/public/assets/_Beh1dIGt.js +1 -0
  72. package/dist/public/assets/_Bei9EmpL.js +1 -0
  73. package/dist/public/assets/_BfqTyPZX.js +1 -0
  74. package/dist/public/assets/{_D68dPn0w.js → _Bh2Mhf9A.js} +1 -1
  75. package/dist/public/assets/_Bh2Mhf9A.js.br +0 -0
  76. package/dist/public/assets/{_1mxz_fw8.js → _BhJJJ4_c.js} +1 -1
  77. package/dist/public/assets/_BhJJJ4_c.js.br +0 -0
  78. package/dist/public/assets/_Bi2jPJLs.js +1 -0
  79. package/dist/public/assets/{_CmQerv0f.js → _BklLHXPM.js} +1 -1
  80. package/dist/public/assets/{_DShsNCa4.js → _Bl6mlk7M.js} +1 -1
  81. package/dist/public/assets/_Bl6mlk7M.js.br +0 -0
  82. package/dist/public/assets/_Bm5R5vmF.js +1 -0
  83. package/dist/public/assets/_BmVyenr8.js +1 -0
  84. package/dist/public/assets/{_CexMUoXX.js → _Bncd_9VQ.js} +1 -1
  85. package/dist/public/assets/_Bncd_9VQ.js.br +0 -0
  86. package/dist/public/assets/{_DqG7LJE3.js → _BnsRx7UZ.js} +1 -1
  87. package/dist/public/assets/_BnsRx7UZ.js.br +0 -0
  88. package/dist/public/assets/_BoaDjJmE.js +1 -0
  89. package/dist/public/assets/{_DGQlaxcF.js → _BphKoYEn.js} +1 -1
  90. package/dist/public/assets/_BphKoYEn.js.br +0 -0
  91. package/dist/public/assets/_BrOl0iPf.js +1 -0
  92. package/dist/public/assets/_BvJoHIUZ.js +1 -0
  93. package/dist/public/assets/_BvcgM6xE.js +1 -0
  94. package/dist/public/assets/{_B3M5E-Om.js → _Bx0qgId0.js} +1 -1
  95. package/dist/public/assets/_Bx0qgId0.js.br +0 -0
  96. package/dist/public/assets/{_6JNHubX8.js → _Bx1DPtDH.js} +1 -1
  97. package/dist/public/assets/_Bx1DPtDH.js.br +0 -0
  98. package/dist/public/assets/{_ByBX1AAI.js → _Bx1lPfUj.js} +2 -2
  99. package/dist/public/assets/_Bx1lPfUj.js.br +0 -0
  100. package/dist/public/assets/{_Rm81HrZo.js → _BxLVe9Sk.js} +1 -1
  101. package/dist/public/assets/_BxLVe9Sk.js.br +0 -0
  102. package/dist/public/assets/{_C_LsIBgT.js → _C2lKewGZ.js} +1 -1
  103. package/dist/public/assets/_C2lKewGZ.js.br +0 -0
  104. package/dist/public/assets/_C49WjHYj.js +1 -0
  105. package/dist/public/assets/_C4_6Hfdk.js +1 -0
  106. package/dist/public/assets/{_BownQpIP.js → _C67TRn5S.js} +1 -1
  107. package/dist/public/assets/_C67TRn5S.js.br +0 -0
  108. package/dist/public/assets/_C8Ro7zfV.js +1 -0
  109. package/dist/public/assets/{_DZGhFAI6.js → _C8e1AwoF.js} +1 -1
  110. package/dist/public/assets/_C8e1AwoF.js.br +0 -0
  111. package/dist/public/assets/{_CtYeoHds.js → _C9WzJIic.js} +1 -1
  112. package/dist/public/assets/_C9WzJIic.js.br +0 -0
  113. package/dist/public/assets/_CC00S7vm.js +1 -0
  114. package/dist/public/assets/_CDRrgA9R.js +1 -0
  115. package/dist/public/assets/{_OcFuZvAI.js → _CDpiWjAU.js} +1 -1
  116. package/dist/public/assets/_CDpiWjAU.js.br +0 -0
  117. package/dist/public/assets/_CE0Hjxcf.js +1 -0
  118. package/dist/public/assets/{_BUmmoPn7.js → _CGV7yPri.js} +1 -1
  119. package/dist/public/assets/_CGV7yPri.js.br +0 -0
  120. package/dist/public/assets/{_XqOjFD-V.js → _CIKoI8Zi.js} +1 -1
  121. package/dist/public/assets/_CIKoI8Zi.js.br +0 -0
  122. package/dist/public/assets/_CJ8Uhm8d.js +1 -0
  123. package/dist/public/assets/_CL7vUYzn.js +1 -0
  124. package/dist/public/assets/{_DDZv_pCc.js → _CLjwSoO7.js} +1 -1
  125. package/dist/public/assets/_CLjwSoO7.js.br +0 -0
  126. package/dist/public/assets/_COiKcDfZ.js +1 -0
  127. package/dist/public/assets/{_DL18-mb9.js → _COkxwS6p.js} +1 -1
  128. package/dist/public/assets/_COkxwS6p.js.br +0 -0
  129. package/dist/public/assets/{_D0MMtje0.js → _CPQ6gAtw.js} +1 -1
  130. package/dist/public/assets/_CPQ6gAtw.js.br +0 -0
  131. package/dist/public/assets/{_BT6HfYe8.js → _CQ8ceJmp.js} +1 -1
  132. package/dist/public/assets/_CQ8ceJmp.js.br +0 -0
  133. package/dist/public/assets/_CQFK0uON.js +1 -0
  134. package/dist/public/assets/_CReAlVDW.js +1 -0
  135. package/dist/public/assets/{_kD85MWJq.js → _CUQYDj3C.js} +1 -1
  136. package/dist/public/assets/_CUQYDj3C.js.br +0 -0
  137. package/dist/public/assets/_CYZj2CJW.js +1 -0
  138. package/dist/public/assets/{_LWgmax5s.js → _CYmjqfgO.js} +1 -1
  139. package/dist/public/assets/_CYmjqfgO.js.br +0 -0
  140. package/dist/public/assets/{_KK2KF52X.js → _CZuUBMm_.js} +1 -1
  141. package/dist/public/assets/_CZuUBMm_.js.br +0 -0
  142. package/dist/public/assets/{_CNvP7-_g.js → _C_Z1lWEa.js} +1 -1
  143. package/dist/public/assets/_C_Z1lWEa.js.br +0 -0
  144. package/dist/public/assets/_CaZHMbFI.js +1 -0
  145. package/dist/public/assets/_CbAtCyz5.js +1 -0
  146. package/dist/public/assets/_CbQ70yNG.js +1 -0
  147. package/dist/public/assets/_CdISvNYF.js +1 -0
  148. package/dist/public/assets/_CgUyPldR.js +1 -0
  149. package/dist/public/assets/_Cinp1F_J.js +1 -0
  150. package/dist/public/assets/{_DKxPCb7m.js → _Co-FZOmo.js} +1 -1
  151. package/dist/public/assets/_Co-FZOmo.js.br +0 -0
  152. package/dist/public/assets/_Cou3v3N8.js +1 -0
  153. package/dist/public/assets/{_CsIiSuNi.js → _CpztZ5nh.js} +1 -1
  154. package/dist/public/assets/_CpztZ5nh.js.br +0 -0
  155. package/dist/public/assets/{_CE0EY_Im.js → _Cu886cTD.js} +1 -1
  156. package/dist/public/assets/_Cu886cTD.js.br +0 -0
  157. package/dist/public/assets/_CuIe6qhV.js +1 -0
  158. package/dist/public/assets/_CuIe6qhV.js.br +0 -0
  159. package/dist/public/assets/_Cut5H_T2.js +1 -0
  160. package/dist/public/assets/_CxLB48u2.js +1 -0
  161. package/dist/public/assets/_CzKFpCft.js +1 -0
  162. package/dist/public/assets/{_HHcjPPQg.js → _D-tttYGb.js} +1 -1
  163. package/dist/public/assets/_D-tttYGb.js.br +0 -0
  164. package/dist/public/assets/_D3alKanr.js +1 -0
  165. package/dist/public/assets/{_CmB1kfhT.js → _D3tvF9mZ.js} +1 -1
  166. package/dist/public/assets/_D3tvF9mZ.js.br +0 -0
  167. package/dist/public/assets/{_Dbe9iebB.js → _D5T9iT2v.js} +1 -1
  168. package/dist/public/assets/_D5T9iT2v.js.br +0 -0
  169. package/dist/public/assets/_D7YaYSGy.js +1 -0
  170. package/dist/public/assets/{_DSyaHlgp.js → _D9kqIFAA.js} +1 -1
  171. package/dist/public/assets/_D9kqIFAA.js.br +0 -0
  172. package/dist/public/assets/{_Bqi4KjfY.js → _D9xzmdEo.js} +1 -1
  173. package/dist/public/assets/_D9xzmdEo.js.br +0 -0
  174. package/dist/public/assets/_DAkTls2A.js +1 -0
  175. package/dist/public/assets/_DBL7H3bs.js +1 -0
  176. package/dist/public/assets/_DCLvfsYm.js +1 -0
  177. package/dist/public/assets/{_BT7IZUlM.js → _DCPqtWkU.js} +1 -1
  178. package/dist/public/assets/_DCPqtWkU.js.br +0 -0
  179. package/dist/public/assets/_DCns13oq.js +1 -0
  180. package/dist/public/assets/_DDHPzwdO.js +1 -0
  181. package/dist/public/assets/{_CgyDQNWM.js → _DDftx-q7.js} +1 -1
  182. package/dist/public/assets/_DDftx-q7.js.br +0 -0
  183. package/dist/public/assets/{_BbWeELba.js → _DImMPhIp.js} +1 -1
  184. package/dist/public/assets/_DJAVQNPP.js +1 -0
  185. package/dist/public/assets/_DJe2n9ee.js +1 -0
  186. package/dist/public/assets/{_sXLFin3G.js → _DNBnLHW2.js} +1 -1
  187. package/dist/public/assets/_DNTpuf-S.js +1 -0
  188. package/dist/public/assets/{_B1aMR3_0.js → _DNah0Zs3.js} +1 -1
  189. package/dist/public/assets/_DNah0Zs3.js.br +0 -0
  190. package/dist/public/assets/{_ClQ_uypw.js → _DOOWuI-6.js} +1 -1
  191. package/dist/public/assets/_DOOWuI-6.js.br +0 -0
  192. package/dist/public/assets/_DPin3_mC.js +1 -0
  193. package/dist/public/assets/_DQF7_i3E.js +1 -0
  194. package/dist/public/assets/_DSHVTMGB.js +1 -0
  195. package/dist/public/assets/{_BNkBAy5A.js → _DUwfcYPF.js} +5 -5
  196. package/dist/public/assets/_DUwfcYPF.js.br +0 -0
  197. package/dist/public/assets/_DVee6qvN.js +1 -0
  198. package/dist/public/assets/_DW5hiPzD.js +1 -0
  199. package/dist/public/assets/{_D0LoYy3P.js → _DWO5V9Cn.js} +1 -1
  200. package/dist/public/assets/_DWO5V9Cn.js.br +0 -0
  201. package/dist/public/assets/{_CYpdFsNd.js → _DX3sBHdB.js} +1 -1
  202. package/dist/public/assets/_DX3sBHdB.js.br +0 -0
  203. package/dist/public/assets/{_BzNb_fHh.js → _DYdoMN3z.js} +1 -1
  204. package/dist/public/assets/_DYdoMN3z.js.br +0 -0
  205. package/dist/public/assets/_D_NcBwvU.js +1 -0
  206. package/dist/public/assets/{_DYi5YY3I.js → _DfxAJT7Q.js} +1 -1
  207. package/dist/public/assets/_DfxAJT7Q.js.br +0 -0
  208. package/dist/public/assets/_DiktnP19.js +1 -0
  209. package/dist/public/assets/_Dio2yht1.js +1 -0
  210. package/dist/public/assets/_DkwriX0y.js +1 -0
  211. package/dist/public/assets/{_Bs3qB-Cr.js → _DlQSH1Bl.js} +1 -1
  212. package/dist/public/assets/{_B0Kz6DRP.js → _DmWgjlnv.js} +1 -1
  213. package/dist/public/assets/_DmWgjlnv.js.br +0 -0
  214. package/dist/public/assets/_DpQmNXrc.js +1 -0
  215. package/dist/public/assets/{_BS-RHEk-.js → _DpSvz8kT.js} +1 -1
  216. package/dist/public/assets/_DpSvz8kT.js.br +0 -0
  217. package/dist/public/assets/_DqW5Qhvl.js +1 -0
  218. package/dist/public/assets/{_JbTe9y6j.js → _DrK0EnPt.js} +1 -1
  219. package/dist/public/assets/_DrK0EnPt.js.br +0 -0
  220. package/dist/public/assets/{_53BxL5eV.js → _DsorwdLS.js} +1 -1
  221. package/dist/public/assets/_DsorwdLS.js.br +0 -0
  222. package/dist/public/assets/{_hMziBcP-.js → _DtM8L0QT.js} +1 -1
  223. package/dist/public/assets/_DtM8L0QT.js.br +0 -0
  224. package/dist/public/assets/{_Snm0yKaj.js → _Dwf1KKEk.js} +2 -2
  225. package/dist/public/assets/_Dwf1KKEk.js.br +0 -0
  226. package/dist/public/assets/_DxrKpCoO.js +1 -0
  227. package/dist/public/assets/_EJ-nVvHo.js +1 -0
  228. package/dist/public/assets/{_CW6i23WO.js → _GqvYBp3d.js} +1 -1
  229. package/dist/public/assets/_GqvYBp3d.js.br +0 -0
  230. package/dist/public/assets/{_P2hfcmq2.js → _HGp5NWUA.js} +1 -1
  231. package/dist/public/assets/_HGp5NWUA.js.br +0 -0
  232. package/dist/public/assets/{_Bej9uABx.js → _Hgj3pLJn.js} +1 -1
  233. package/dist/public/assets/_Hgj3pLJn.js.br +0 -0
  234. package/dist/public/assets/{_CjvUwJV3.js → _KTDZsqNa.js} +1 -1
  235. package/dist/public/assets/_KTDZsqNa.js.br +0 -0
  236. package/dist/public/assets/{_DgwgtBl-.js → _Kc5M3dWR.js} +1 -1
  237. package/dist/public/assets/_Kc5M3dWR.js.br +0 -0
  238. package/dist/public/assets/{_C5rKz3O1.js → _Kcc3bYFt.js} +1 -1
  239. package/dist/public/assets/_Kcc3bYFt.js.br +0 -0
  240. package/dist/public/assets/{_DRlVO8QP.js → _MY96zwtS.js} +1 -1
  241. package/dist/public/assets/_MY96zwtS.js.br +0 -0
  242. package/dist/public/assets/{_CA1oqi-5.js → _MnmBUinp.js} +1 -1
  243. package/dist/public/assets/_MnmBUinp.js.br +0 -0
  244. package/dist/public/assets/{_BZox64kw.js → _NAiHjAyu.js} +1 -1
  245. package/dist/public/assets/_NAiHjAyu.js.br +0 -0
  246. package/dist/public/assets/{_DWjO1Fu_.js → _P281O5Oz.js} +1 -1
  247. package/dist/public/assets/_P281O5Oz.js.br +0 -0
  248. package/dist/public/assets/{_AYM7pfPo.js → _QGTVsobU.js} +13 -13
  249. package/dist/public/assets/_QGTVsobU.js.br +0 -0
  250. package/dist/public/assets/{_C4YyHuhB.js → _TZYoCPVT.js} +1 -1
  251. package/dist/public/assets/_TZYoCPVT.js.br +0 -0
  252. package/dist/public/assets/{_C246C-83.js → _VLBKCbK0.js} +1 -1
  253. package/dist/public/assets/_VLBKCbK0.js.br +0 -0
  254. package/dist/public/assets/{_DFydy0W7.js → _WAv74n0H.js} +20 -20
  255. package/dist/public/assets/_WAv74n0H.js.br +0 -0
  256. package/dist/public/assets/_Yv1plajR.js +1 -0
  257. package/dist/public/assets/{_DUAuUft5.js → _Zubvbbz6.js} +1 -1
  258. package/dist/public/assets/_Zubvbbz6.js.br +0 -0
  259. package/dist/public/assets/{_D-K2gNHz.js → _b0rCBZPi.js} +1 -1
  260. package/dist/public/assets/_b0rCBZPi.js.br +0 -0
  261. package/dist/public/assets/{_DsOKce00.js → _c2FP34rv.js} +1 -1
  262. package/dist/public/assets/_c2FP34rv.js.br +0 -0
  263. package/dist/public/assets/_dbmmrc2h.js +1 -0
  264. package/dist/public/assets/{_MT3fiPYA.js → _dxdf9yfT.js} +1 -1
  265. package/dist/public/assets/_foce90MO.js +1 -0
  266. package/dist/public/assets/_hWnhoOUr.js +1 -0
  267. package/dist/public/assets/{_C2qWHQF6.js → _jFnpIz6C.js} +1 -1
  268. package/dist/public/assets/_jFnpIz6C.js.br +0 -0
  269. package/dist/public/assets/{_CRE2rTXU.js → _nP5KHpB6.js} +1 -1
  270. package/dist/public/assets/_nP5KHpB6.js.br +0 -0
  271. package/dist/public/assets/_oWKfIZPF.js +1 -0
  272. package/dist/public/assets/_r24R0aVE.js +1 -0
  273. package/dist/public/assets/{_I3lY44aU.js → _rVcdKwXL.js} +1 -1
  274. package/dist/public/assets/_rVcdKwXL.js.br +0 -0
  275. package/dist/public/assets/_rxgT8_6e.js +1 -0
  276. package/dist/public/assets/{_DeRYTpbW.js → _su67TQYe.js} +1 -1
  277. package/dist/public/assets/_su67TQYe.js.br +0 -0
  278. package/dist/public/assets/{_BA3sDawp.js → _xrLJm_F-.js} +1 -1
  279. package/dist/public/assets/_xrLJm_F-.js.br +0 -0
  280. package/dist/public/assets/{_CJlGZ_RW.js → _yX3NeTWy.js} +1 -1
  281. package/dist/public/assets/_yX3NeTWy.js.br +0 -0
  282. package/dist/public/assets/{_Or5LYSbi.js → _zuUjFTWL.js} +1 -1
  283. package/dist/public/assets/_zuUjFTWL.js.br +0 -0
  284. package/dist/public/assets/files-view-8Tlzf8QZ.js +2 -0
  285. package/dist/public/assets/manage-workspace-Dkk5xdx3.js +2 -0
  286. package/dist/public/assets/new-DfBDgjGI.js +1 -0
  287. package/dist/public/assets/new-workspace-k7BkuWVf.js +2 -0
  288. package/dist/public/assets/review-view-DzNoAcf2.js +2 -0
  289. package/dist/public/assets/settings-DfBDgjGI.js +1 -0
  290. package/dist/public/assets/settings-page-VVX-GtVs.js +2 -0
  291. package/dist/public/assets/styles-CW5bNT80.css +1 -0
  292. package/dist/public/assets/styles-CW5bNT80.css.br +0 -0
  293. package/dist/public/assets/w-DfBDgjGI.js +1 -0
  294. package/dist/public/assets/w._-1Fq7QHrE.js +1 -0
  295. package/dist/public/assets/w._-DfBDgjGI.js +1 -0
  296. package/dist/public/assets/w._-Dk_LDh0R.js +1 -0
  297. package/package.json +1 -1
  298. package/dist/_BA6kJ94f.js +0 -2
  299. package/dist/_T5K2qs5u.js +0 -2
  300. package/dist/public/assets/_1k8H5Us1.js +0 -1
  301. package/dist/public/assets/_1mxz_fw8.js.br +0 -0
  302. package/dist/public/assets/_3vnvc5Ld.js +0 -1
  303. package/dist/public/assets/_4VEn8isc.js +0 -1
  304. package/dist/public/assets/_52UKdAZX.js +0 -1
  305. package/dist/public/assets/_53BxL5eV.js.br +0 -0
  306. package/dist/public/assets/_6JNHubX8.js.br +0 -0
  307. package/dist/public/assets/_7vo1ZYPl.js +0 -1
  308. package/dist/public/assets/_AYM7pfPo.js.br +0 -0
  309. package/dist/public/assets/_B0Kz6DRP.js.br +0 -0
  310. package/dist/public/assets/_B1UZEzRw.js +0 -1
  311. package/dist/public/assets/_B1aMR3_0.js.br +0 -0
  312. package/dist/public/assets/_B1wtZ2Dg.js +0 -1
  313. package/dist/public/assets/_B2VhAnZH.js +0 -1
  314. package/dist/public/assets/_B2cfZpA1.js +0 -1
  315. package/dist/public/assets/_B3M5E-Om.js.br +0 -0
  316. package/dist/public/assets/_B4IW83Ps.js +0 -1
  317. package/dist/public/assets/_BA3sDawp.js.br +0 -0
  318. package/dist/public/assets/_BEXx4s6i.js +0 -1
  319. package/dist/public/assets/_BFxxHHlG.js.br +0 -0
  320. package/dist/public/assets/_BG-zRRiX.js.br +0 -0
  321. package/dist/public/assets/_BJYjTcOn.js +0 -1
  322. package/dist/public/assets/_BKX1SZz8.js +0 -1
  323. package/dist/public/assets/_BNkBAy5A.js.br +0 -0
  324. package/dist/public/assets/_BPl5t09U.js +0 -1
  325. package/dist/public/assets/_BPl6OxeP.js +0 -1
  326. package/dist/public/assets/_BQIvO4j0.js +0 -1
  327. package/dist/public/assets/_BRJmnd-_.js +0 -1
  328. package/dist/public/assets/_BS-RHEk-.js.br +0 -0
  329. package/dist/public/assets/_BT6HfYe8.js.br +0 -0
  330. package/dist/public/assets/_BT7IZUlM.js.br +0 -0
  331. package/dist/public/assets/_BUmmoPn7.js.br +0 -0
  332. package/dist/public/assets/_BVEoZ0DQ.js.br +0 -0
  333. package/dist/public/assets/_BW8sn7HC.js +0 -1
  334. package/dist/public/assets/_BZox64kw.js.br +0 -0
  335. package/dist/public/assets/_Bej9uABx.js.br +0 -0
  336. package/dist/public/assets/_Bf18_byh.js +0 -1
  337. package/dist/public/assets/_BiJNEt7p.js +0 -1
  338. package/dist/public/assets/_BlPDQkFl.js +0 -1
  339. package/dist/public/assets/_BownQpIP.js.br +0 -0
  340. package/dist/public/assets/_Bqi4KjfY.js.br +0 -0
  341. package/dist/public/assets/_BxyRJpZq.js +0 -1
  342. package/dist/public/assets/_ByBX1AAI.js.br +0 -0
  343. package/dist/public/assets/_BzNb_fHh.js.br +0 -0
  344. package/dist/public/assets/_C-31-_h4.js +0 -1
  345. package/dist/public/assets/_C0gp-Ms1.js +0 -1
  346. package/dist/public/assets/_C246C-83.js.br +0 -0
  347. package/dist/public/assets/_C2qWHQF6.js.br +0 -0
  348. package/dist/public/assets/_C4YyHuhB.js.br +0 -0
  349. package/dist/public/assets/_C5rKz3O1.js.br +0 -0
  350. package/dist/public/assets/_C8RN45Ay.js.br +0 -0
  351. package/dist/public/assets/_CA1oqi-5.js.br +0 -0
  352. package/dist/public/assets/_CCxaMhJi.js.br +0 -0
  353. package/dist/public/assets/_CE0EY_Im.js.br +0 -0
  354. package/dist/public/assets/_CElcQNRx.js +0 -1
  355. package/dist/public/assets/_CElcQNRx.js.br +0 -0
  356. package/dist/public/assets/_CEnGHCTE.js.br +0 -0
  357. package/dist/public/assets/_CErPZpEJ.js +0 -1
  358. package/dist/public/assets/_CISMrPzZ.js +0 -1
  359. package/dist/public/assets/_CIp3AlsK.js +0 -1
  360. package/dist/public/assets/_CJlGZ_RW.js.br +0 -0
  361. package/dist/public/assets/_CKeIFx0z.js.br +0 -0
  362. package/dist/public/assets/_CNvP7-_g.js.br +0 -0
  363. package/dist/public/assets/_COaNVEzh.js +0 -1
  364. package/dist/public/assets/_CPXELW8A.js +0 -1
  365. package/dist/public/assets/_CQWSkJch.js +0 -1
  366. package/dist/public/assets/_CR8ysLim.js +0 -1
  367. package/dist/public/assets/_CRE2rTXU.js.br +0 -0
  368. package/dist/public/assets/_CW6i23WO.js.br +0 -0
  369. package/dist/public/assets/_CYWrzltT.js.br +0 -0
  370. package/dist/public/assets/_CYpdFsNd.js.br +0 -0
  371. package/dist/public/assets/_CZ30482G.js +0 -1
  372. package/dist/public/assets/_CZFNAK1G.js +0 -1
  373. package/dist/public/assets/_C_LsIBgT.js.br +0 -0
  374. package/dist/public/assets/_CdgU7fKH.js +0 -1
  375. package/dist/public/assets/_CeTSn3Od.js.br +0 -0
  376. package/dist/public/assets/_CedBoWcu.js.br +0 -0
  377. package/dist/public/assets/_CexMUoXX.js.br +0 -0
  378. package/dist/public/assets/_CfVGaBxr.js +0 -1
  379. package/dist/public/assets/_CfmVOY2H.js +0 -1
  380. package/dist/public/assets/_CgyDQNWM.js.br +0 -0
  381. package/dist/public/assets/_CjXKquH6.js +0 -1
  382. package/dist/public/assets/_CjvUwJV3.js.br +0 -0
  383. package/dist/public/assets/_ClQ_uypw.js.br +0 -0
  384. package/dist/public/assets/_CmB1kfhT.js.br +0 -0
  385. package/dist/public/assets/_Cnzpe3wm.js +0 -1
  386. package/dist/public/assets/_Cp25eGYo.js +0 -1
  387. package/dist/public/assets/_CqrPm1E1.js +0 -1
  388. package/dist/public/assets/_CsIiSuNi.js.br +0 -0
  389. package/dist/public/assets/_Cs_w9qrX.js +0 -1
  390. package/dist/public/assets/_Csct3qtA.js +0 -1
  391. package/dist/public/assets/_Csn-AGUO.js +0 -1
  392. package/dist/public/assets/_CsrDw2HV.js.br +0 -0
  393. package/dist/public/assets/_Ct49jor3.js +0 -1
  394. package/dist/public/assets/_CtYeoHds.js.br +0 -0
  395. package/dist/public/assets/_CtxFZ9vo.js +0 -1
  396. package/dist/public/assets/_Cz8Dsulr.js +0 -1
  397. package/dist/public/assets/_CzMLQ8gd.js +0 -1
  398. package/dist/public/assets/_Czw8PbiN.js +0 -1
  399. package/dist/public/assets/_D-K2gNHz.js.br +0 -0
  400. package/dist/public/assets/_D0LoYy3P.js.br +0 -0
  401. package/dist/public/assets/_D0MMtje0.js.br +0 -0
  402. package/dist/public/assets/_D1C5H689.js +0 -1
  403. package/dist/public/assets/_D2Fh5qVI.js +0 -1
  404. package/dist/public/assets/_D66U5RHc.js.br +0 -0
  405. package/dist/public/assets/_D68dPn0w.js.br +0 -0
  406. package/dist/public/assets/_DBQl8ZAL.js +0 -1
  407. package/dist/public/assets/_DCB8yv60.js +0 -1
  408. package/dist/public/assets/_DDZv_pCc.js.br +0 -0
  409. package/dist/public/assets/_DDaSBxJI.js +0 -1
  410. package/dist/public/assets/_DEHvdTTN.js +0 -1
  411. package/dist/public/assets/_DFydy0W7.js.br +0 -0
  412. package/dist/public/assets/_DGQlaxcF.js.br +0 -0
  413. package/dist/public/assets/_DI6-_YSC.js +0 -1
  414. package/dist/public/assets/_DKVp-5hj.js +0 -1
  415. package/dist/public/assets/_DKxPCb7m.js.br +0 -0
  416. package/dist/public/assets/_DL18-mb9.js.br +0 -0
  417. package/dist/public/assets/_DLJrYXXF.js +0 -1
  418. package/dist/public/assets/_DLtbnANA.js +0 -1
  419. package/dist/public/assets/_DROxwR_p.js +0 -1
  420. package/dist/public/assets/_DRlVO8QP.js.br +0 -0
  421. package/dist/public/assets/_DShsNCa4.js.br +0 -0
  422. package/dist/public/assets/_DSyaHlgp.js.br +0 -0
  423. package/dist/public/assets/_DUAuUft5.js.br +0 -0
  424. package/dist/public/assets/_DWEHoZNj.js +0 -1
  425. package/dist/public/assets/_DWjO1Fu_.js.br +0 -0
  426. package/dist/public/assets/_DYSjcaPz.js +0 -1
  427. package/dist/public/assets/_DYeFvJQu.js.br +0 -0
  428. package/dist/public/assets/_DYi5YY3I.js.br +0 -0
  429. package/dist/public/assets/_DZGhFAI6.js.br +0 -0
  430. package/dist/public/assets/_DZXvujeN.js +0 -1
  431. package/dist/public/assets/_D_sVikfy.js +0 -1
  432. package/dist/public/assets/_DahJWFLJ.js.br +0 -0
  433. package/dist/public/assets/_DbSFDbVw.js +0 -1
  434. package/dist/public/assets/_Dbe9iebB.js.br +0 -0
  435. package/dist/public/assets/_DdvVmpgX.js.br +0 -0
  436. package/dist/public/assets/_DeRYTpbW.js.br +0 -0
  437. package/dist/public/assets/_DfkI0VMD.js.br +0 -0
  438. package/dist/public/assets/_DgwgtBl-.js.br +0 -0
  439. package/dist/public/assets/_DjAS2fco.js +0 -1
  440. package/dist/public/assets/_Dm_qoiyI.js +0 -1
  441. package/dist/public/assets/_DnKKZmmC.js +0 -1
  442. package/dist/public/assets/_DoCnLlmF.js +0 -1
  443. package/dist/public/assets/_DqG7LJE3.js.br +0 -0
  444. package/dist/public/assets/_DrE6WT-8.js +0 -1
  445. package/dist/public/assets/_DsOKce00.js.br +0 -0
  446. package/dist/public/assets/_Dve5bwmV.js +0 -1
  447. package/dist/public/assets/_EI0KfGqk.js +0 -1
  448. package/dist/public/assets/_ER2-2r1k.js +0 -1
  449. package/dist/public/assets/_HHcjPPQg.js.br +0 -0
  450. package/dist/public/assets/_I3lY44aU.js.br +0 -0
  451. package/dist/public/assets/_JbTe9y6j.js.br +0 -0
  452. package/dist/public/assets/_KK2KF52X.js.br +0 -0
  453. package/dist/public/assets/_LWgmax5s.js.br +0 -0
  454. package/dist/public/assets/_OcFuZvAI.js.br +0 -0
  455. package/dist/public/assets/_Or5LYSbi.js.br +0 -0
  456. package/dist/public/assets/_P2hfcmq2.js.br +0 -0
  457. package/dist/public/assets/_Rm81HrZo.js.br +0 -0
  458. package/dist/public/assets/_Snm0yKaj.js.br +0 -0
  459. package/dist/public/assets/_XqOjFD-V.js.br +0 -0
  460. package/dist/public/assets/_aAxCIB1-.js +0 -1
  461. package/dist/public/assets/_cfb9-FKi.js +0 -1
  462. package/dist/public/assets/_dFodER3o.js.br +0 -0
  463. package/dist/public/assets/_fJWjSk9f.js.br +0 -0
  464. package/dist/public/assets/_gzb30I1D.js +0 -1
  465. package/dist/public/assets/_hMziBcP-.js.br +0 -0
  466. package/dist/public/assets/_iPM5HFrU.js +0 -1
  467. package/dist/public/assets/_kD85MWJq.js.br +0 -0
  468. package/dist/public/assets/_kZt7n5RY.js.br +0 -0
  469. package/dist/public/assets/_kc4p4uHI.js.br +0 -0
  470. package/dist/public/assets/_m6TXzIsC.js +0 -1
  471. package/dist/public/assets/_pSbDHXOq.js +0 -1
  472. package/dist/public/assets/_rFLxxyKo.js.br +0 -0
  473. package/dist/public/assets/_v20P7tN_.js +0 -1
  474. package/dist/public/assets/_wCgLIMkx.js.br +0 -0
  475. package/dist/public/assets/_y0XHaRBP.js +0 -1
  476. package/dist/public/assets/files-view-MM5bc8fv.js +0 -2
  477. package/dist/public/assets/manage-workspace-CyTEJrWl.js +0 -2
  478. package/dist/public/assets/new-cMqYbBWV.js +0 -1
  479. package/dist/public/assets/new-workspace-CZniyAMN.js +0 -2
  480. package/dist/public/assets/review-view-tPZAOTAi.js +0 -2
  481. package/dist/public/assets/settings-cMqYbBWV.js +0 -1
  482. package/dist/public/assets/settings-page-C6ALfL-2.js +0 -2
  483. package/dist/public/assets/styles-B57UQpsl.css +0 -1
  484. package/dist/public/assets/styles-B57UQpsl.css.br +0 -0
  485. package/dist/public/assets/w-cMqYbBWV.js +0 -1
  486. package/dist/public/assets/w._-BXl9mjaf.js +0 -1
  487. package/dist/public/assets/w._-cMqYbBWV.js +0 -1
  488. package/dist/public/assets/w._-y5AzhfwG.js +0 -1
@@ -263,11 +263,36 @@ function printGroup(ctx, g) {
263
263
  );
264
264
  }
265
265
 
266
+ /** What `work session list <id>` knows of a session; dies on none. */
267
+ async function infoOf(ctx, id) {
268
+ const s = await ctx.api.get(
269
+ `/api/sessions/${encodeURIComponent(id)}?missing=null`,
270
+ );
271
+ if (!s) ctx.die(`no session ${id} (see: work session list)`);
272
+ return s;
273
+ }
274
+
275
+ /** Whether this command runs for an agent, not the user: from an agent's
276
+ * own pane, not a shell's or a terminal outside work. */
277
+ async function callerIsAgent(ctx) {
278
+ const me = process.env.WORK_SESSION_ID;
279
+ if (!me) return false;
280
+ const s = await ctx.api.get(
281
+ `/api/sessions/${encodeURIComponent(me)}?missing=null`,
282
+ );
283
+ return !!s && s.agent !== "shell";
284
+ }
285
+
286
+ /** Why an agent wants --yes for a change to the user's own session. */
287
+ function userOwn(id, what, lead) {
288
+ return `${id} is the user's own session (no agent started it)${lead ? `: under ${lead} its turns no longer notify them, its last message is written for ${lead}, it folds into ${lead}'s team in the list, and closing ${lead} closes it` : `, to be ${what}`}. Pass --yes only if the user asked for this`;
289
+ }
290
+
266
291
  export const commands = [
267
292
  {
268
293
  name: "session",
269
294
  summary:
270
- "this session and the workspace's others: new, fanout, send, wait, hold, keep, reopen, log, team, kill",
295
+ "this session and the workspace's others: new, fanout, send, unsend, wait, hold, forget, keep, adopt, release, retire, reopen, log, team, kill",
271
296
  help: `work session [--json]
272
297
  This session (WORK_SESSION_ID): its id, agent, name, state, and the
273
298
  workspace it is in (id, name, path) — what a link names (/w/<id>/…).
@@ -320,7 +345,8 @@ work session retry <member>
320
345
  Rerun a closed member in a fresh session: its group waits for it again.
321
346
  work session skip <member>
322
347
  Stop a member: a queued one never starts, a running one's session
323
- closes; either way its group no longer waits on it.
348
+ closes, ending its turn and whatever its pane runs; either way its group
349
+ no longer waits on it. \`forget\` stops waiting on one that works on.
324
350
  work session send <id> "<text>"|- [--no-reply] [--now|--interrupt]
325
351
  Message an agent session: typed in, headed with who it is from, once
326
352
  it is at its prompt — never into a question it asks or a draft someone
@@ -353,7 +379,10 @@ work session send <id> "<text>"|- [--no-reply] [--now|--interrupt]
353
379
  another workspace (\`work session list <workspace>\`) can be messaged
354
380
  when the user asks, and only while it runs; everything else here an
355
381
  agent does in its own workspace only.
356
- work session reopen <id> [--agent <id>]
382
+ work session unsend <id>
383
+ Take back what this session queued for <id> that is not typed in yet:
384
+ a message that went in stays in its turn (send a correction instead).
385
+ work session reopen <id> [--agent <id>] [--now]
357
386
  Start a session again on its own conversation, where its CLI can resume
358
387
  one (Claude, Codex): one closed — by its lead's close, the user's, or
359
388
  for being done — back under the session that started it, or under this
@@ -361,7 +390,10 @@ work session reopen <id> [--agent <id>]
361
390
  starts it as another instance of the same CLI (claude2 for claude):
362
391
  one stuck because its account hit a limit goes on as another account's,
363
392
  where the two share their conversations. What is queued for it and what
364
- it owes you stay: send it a message to carry it on.
393
+ it owes you stay: send it a message to carry it on. A restart ends the
394
+ turn under way and what its pane runs (a background job, a dev server),
395
+ so a running one mid-turn or with jobs is refused, saying what it is
396
+ on, unless --now.
365
397
  work session wait [<id>|<group>...] [--any] [--timeout <seconds>]
366
398
  Wait for the replies owed to this session (by those sessions or groups,
367
399
  else by any), printing each as it comes; a reply printed here is not
@@ -376,18 +408,48 @@ work session hold "<what you wait on>"
376
408
  nothing more until they write to you); you are not closed for being
377
409
  done meanwhile; and the last message of the turn the job's end wakes
378
410
  you into is the reply (hold again there to wait on more).
411
+ work session forget <id|member>…
412
+ Stop waiting on what a session owes this one, without stopping it: its
413
+ turn's end answers nobody, and what is still queued from you goes in
414
+ wanting no reply (a reply it sent already still comes). A fan-out
415
+ member's group no longer waits on it: a queued one never starts, a
416
+ running one works on, under you. Nothing is told to it.
379
417
  work session keep <id>
380
418
  Keep a session this one started open for follow-ups, as \`new --keep\`
381
419
  would have: it is never closed for being done.
420
+ work session adopt <id>… [--lead <id>] [--from <lead>] [--close-done] [--yes]
421
+ Put a running session under this one (or --lead), as if this one had
422
+ started it, with nothing restarted: the list nests it, \`list <lead>\`,
423
+ \`kill <lead>\` and \`reopen\` treat it as the lead's, its replies are
424
+ its turns' ends, its turns no longer notify the user (the lead's news),
425
+ and its permission mode stays its own. What is queued for it or owed
426
+ keeps how it is answered. Kept open (never closed for being done)
427
+ unless --close-done, which closes it once it has answered from now on.
428
+ One under another lead moves only with --from naming it. A session the
429
+ user started is theirs: an agent passes --yes only when the user asked.
430
+ work session release <id>…
431
+ Stand a session on its own again, as \`kill --keep-children\` leaves the
432
+ ones it started: nothing restarts, and what it owes stays owed.
433
+ work session retire <id>… [--yes]
434
+ Close a session once closing it loses nothing: no turn under way,
435
+ nothing queued for it, owed by or to it, no session it leads still open,
436
+ not on the user's screen, and nothing left running in its pane. Now if
437
+ that is now, else when the last of those ends; typing into it first
438
+ takes this back. Closed so, a message reopens it on its conversation.
439
+ This one retired closes once its turn has ended. A session the user
440
+ started is theirs: an agent passes --yes only when the user asked.
382
441
  work session kill <id> [--keep-children] --yes
383
442
  Close a session and the process in it, and the sessions it started
384
- with theirs, unless --keep-children (they then stand on their own).
385
- Whoever waits on a reply from one is told. Each that can resume its
443
+ with theirs, unless --keep-children (they then stand on their own): the
444
+ turn under way, what its pane runs and what is queued for it end, and
445
+ whoever waits on a reply from one is told. Each that can resume its
386
446
  conversation can be started again for a week: \`work session reopen\`.
447
+ \`retire\` closes one without losing anything.
387
448
  work session kill --done
388
449
  Close now the sessions this one started that are done with (answered,
389
- idle, not the user's): fan-out results stay in \`work session team\`,
390
- and a message to one reopens it, as \`send\` says.`,
450
+ idle, not the user's, nothing left running in its pane): fan-out
451
+ results stay in \`work session team\`, and a message to one reopens it,
452
+ as \`send\` says.`,
391
453
  async run(ctx) {
392
454
  const [verb, ...rest] = ctx.parse([
393
455
  "--agent",
@@ -401,6 +463,8 @@ work session kill --done
401
463
  "--count",
402
464
  "--parallel",
403
465
  "--limit",
466
+ "--lead",
467
+ "--from",
404
468
  ]);
405
469
  switch (verb) {
406
470
  case undefined: {
@@ -712,10 +776,12 @@ work session kill --done
712
776
  }
713
777
  case "reopen": {
714
778
  const [id] = rest;
715
- if (!id) ctx.die("usage: work session reopen <id> [--agent <id>]");
779
+ if (!id)
780
+ ctx.die("usage: work session reopen <id> [--agent <id>] [--now]");
716
781
  const agent = ctx.flag("--agent");
717
782
  const r = await ctx.api.post(`/api/sessions/${id}/reopen${by()}`, {
718
783
  ...(agent ? { agent } : {}),
784
+ ...(ctx.has("--now") ? { now: true } : {}),
719
785
  });
720
786
  return ctx.out(r, (r) => {
721
787
  console.log(
@@ -726,6 +792,122 @@ work session kill --done
726
792
  );
727
793
  });
728
794
  }
795
+ case "unsend": {
796
+ const me = sessionId(ctx);
797
+ const [id] = rest;
798
+ if (!id) ctx.die("usage: work session unsend <id>");
799
+ const { withdrawn } = await ctx.api.post(
800
+ `/api/sessions/${encodeURIComponent(id)}/unsend?by=${encodeURIComponent(me)}`,
801
+ );
802
+ return ctx.out({ id, withdrawn }, () =>
803
+ console.log(
804
+ `took back ${withdrawn === 1 ? "your message" : `your ${withdrawn} messages`} queued for ${id}`,
805
+ ),
806
+ );
807
+ }
808
+ case "forget": {
809
+ const me = sessionId(ctx);
810
+ if (!rest.length) ctx.die("usage: work session forget <id|member>…");
811
+ const out = [];
812
+ for (const id of rest)
813
+ out.push({
814
+ id,
815
+ ...(await ctx.api.post(
816
+ `/api/sessions/${encodeURIComponent(id)}/forget?by=${encodeURIComponent(me)}`,
817
+ )),
818
+ });
819
+ return ctx.out(out, (rows) => {
820
+ for (const r of rows)
821
+ console.log(
822
+ r.member
823
+ ? `forgot member ${r.member}: its group no longer waits on it${r.session ? `, and ${r.session} works on, under you` : ""}`
824
+ : `forgot what ${r.id} owes you: it works on, and its turn's end answers nobody`,
825
+ );
826
+ });
827
+ }
828
+ case "adopt": {
829
+ if (!rest.length)
830
+ ctx.die(
831
+ "usage: work session adopt <id>… [--lead <id>] [--from <lead>] [--close-done] [--yes]",
832
+ );
833
+ const lead = ctx.flag("--lead") || process.env.WORK_SESSION_ID;
834
+ if (!lead)
835
+ ctx.die("not in a work session: pass --lead <id> to adopt under");
836
+ const fromAgent = await callerIsAgent(ctx);
837
+ for (const id of rest) {
838
+ const s = await infoOf(ctx, id);
839
+ if (s.closed)
840
+ ctx.die(
841
+ `${id} has closed: \`work session reopen ${id}\` from ${lead} starts it again under it`,
842
+ );
843
+ if (fromAgent && !s.parent && !ctx.yes)
844
+ ctx.die(userOwn(id, `under ${lead}`, lead));
845
+ }
846
+ const out = [];
847
+ for (const id of rest)
848
+ out.push(
849
+ await ctx.api.post(
850
+ `/api/sessions/${encodeURIComponent(id)}/parent${by()}`,
851
+ {
852
+ parent: lead,
853
+ ...(ctx.flag("--from") ? { from: ctx.flag("--from") } : {}),
854
+ ...(ctx.has("--close-done") ? { closeDone: true } : {}),
855
+ },
856
+ ),
857
+ );
858
+ return ctx.out(out, (rows) => {
859
+ for (const r of rows)
860
+ console.log(
861
+ `${r.id} is under ${r.parent} now, ${r.kept ? "kept open (`work session retire` closes it once nothing is lost)" : "closed once it has answered and is done with"}`,
862
+ );
863
+ console.log(
864
+ `Its turns' ends are replies to what ${lead} asks, and notify nobody; \`work session release\` stands it on its own again.`,
865
+ );
866
+ });
867
+ }
868
+ case "release": {
869
+ if (!rest.length) ctx.die("usage: work session release <id>…");
870
+ const out = [];
871
+ for (const id of rest)
872
+ out.push(
873
+ await ctx.api.post(
874
+ `/api/sessions/${encodeURIComponent(id)}/parent${by()}`,
875
+ { parent: null },
876
+ ),
877
+ );
878
+ return ctx.out(out, (rows) => {
879
+ for (const r of rows)
880
+ console.log(
881
+ `${r.id} stands on its own now, in the permission mode it ran in`,
882
+ );
883
+ });
884
+ }
885
+ case "retire": {
886
+ if (!rest.length) ctx.die("usage: work session retire <id>… [--yes]");
887
+ const me = process.env.WORK_SESSION_ID;
888
+ const fromAgent = await callerIsAgent(ctx);
889
+ for (const id of rest) {
890
+ const s = await infoOf(ctx, id);
891
+ if (fromAgent && !s.parent && id !== me && !ctx.yes)
892
+ ctx.die(userOwn(id, "closed once it is idle"));
893
+ }
894
+ const out = [];
895
+ for (const id of rest)
896
+ out.push({
897
+ id,
898
+ ...(await ctx.api.post(
899
+ `/api/sessions/${encodeURIComponent(id)}/retire${by()}`,
900
+ )),
901
+ });
902
+ return ctx.out(out, (rows) => {
903
+ for (const r of rows)
904
+ console.log(
905
+ r.closed
906
+ ? `closed ${r.id}, which had nothing left to lose: ${r.reopens ? "a message reopens it on its conversation" : "its conversation went with it (its CLI cannot resume one, or work never learned it)"}`
907
+ : `${r.id} closes once nothing is lost by it; for now ${r.waits.join(", and ")}. Typing into it takes this back`,
908
+ );
909
+ });
910
+ }
729
911
  case "keep": {
730
912
  const [id] = rest;
731
913
  if (!id) ctx.die("usage: work session keep <id>");
@@ -737,16 +919,20 @@ work session kill --done
737
919
  case "kill": {
738
920
  if (ctx.has("--done")) {
739
921
  const me = sessionId(ctx);
740
- const { closed } = await ctx.api.post(
922
+ const { closed, left = [] } = await ctx.api.post(
741
923
  `/api/sessions/${me}/close-done${by()}`,
742
924
  );
743
- return ctx.out({ closed }, () =>
925
+ return ctx.out({ closed, left }, () => {
744
926
  console.log(
745
927
  closed
746
928
  ? `closed ${closed} finished ${closed === 1 ? "session" : "sessions"}`
747
- : "none of the sessions this one started is done with",
748
- ),
749
- );
929
+ : left.length
930
+ ? "closed none: closing would lose something of each"
931
+ : "none of the sessions this one started is done with",
932
+ );
933
+ for (const l of left)
934
+ console.log(` left ${l.id} open: ${l.why.join(", and ")}`);
935
+ });
750
936
  }
751
937
  const [id] = rest;
752
938
  if (!id)
@@ -819,6 +819,16 @@ var STEPS = [
819
819
  CREATE INDEX message_log_to ON message_log(to_session);
820
820
  CREATE INDEX message_log_from ON message_log(from_session);
821
821
  CREATE INDEX message_log_workspace ON message_log(workspace_id, created_at);
822
+ `);
823
+ }
824
+ },
825
+ {
826
+ version: 15,
827
+ name: "retiring sessions, typing kept",
828
+ up(db) {
829
+ db.exec(`
830
+ ALTER TABLE sessions ADD COLUMN retire_at TEXT;
831
+ ALTER TABLE sessions ADD COLUMN typed_at INTEGER;
822
832
  `);
823
833
  }
824
834
  }
@@ -9479,8 +9489,12 @@ function activityOf(sessionId) {
9479
9489
  }
9480
9490
  /** Someone typed into the session's pane from a page. */
9481
9491
  function noteTyped(sessionId) {
9482
- typedAt.set(sessionId, Date.now());
9492
+ const now = Date.now();
9493
+ const last = typedAt.get(sessionId) ?? 0;
9494
+ typedAt.set(sessionId, now);
9495
+ if (now - last >= TYPED_KEEP_MS) db.prepare("UPDATE sessions SET typed_at = ? WHERE id = ?").run(now, sessionId);
9483
9496
  }
9497
+ var TYPED_KEEP_MS = 1e3;
9484
9498
  /** When someone last typed into the session's pane (0: not this run). */
9485
9499
  function lastTypedAt(sessionId) {
9486
9500
  return typedAt.get(sessionId) ?? 0;
@@ -9644,7 +9658,7 @@ function publishChange(sessionId) {
9644
9658
  const row = get("SELECT workspace_id FROM sessions WHERE id = ?", sessionId);
9645
9659
  if (row?.workspace_id) {
9646
9660
  const workspaceId = row.workspace_id;
9647
- import("./_BA6kJ94f.js").then((m) => m.notifySessionsChanged(workspaceId));
9661
+ import("./_BOUuiLtz.js").then((m) => m.notifySessionsChanged(workspaceId));
9648
9662
  return;
9649
9663
  }
9650
9664
  publish("sessions.changed");
@@ -17378,6 +17392,61 @@ async function foregroundRun(panePid, command) {
17378
17392
  if (!argv?.length) return false;
17379
17393
  return !!await headlessRun(job, argv[0].split("/").pop() || argv[0], argv.slice(1), table?.get(job)?.tty);
17380
17394
  }
17395
+ /** Shells an agent CLI runs its commands in: Claude's Bash tool, Codex's
17396
+ * exec. A CLI's other children (stdio MCP servers, language servers) live
17397
+ * as long as it does and are none of its jobs. */
17398
+ var SHELLS = /* @__PURE__ */ new Set([
17399
+ "bash",
17400
+ "sh",
17401
+ "zsh",
17402
+ "fish",
17403
+ "dash",
17404
+ "ksh"
17405
+ ]);
17406
+ var baseName = (arg) => (arg.split("/").pop() || arg).replace(/^-/, "");
17407
+ /** What a CLI at `panePid` still runs in shells of its own — a background
17408
+ * job, a dev server, a test run left going — each named by what its
17409
+ * shell runs (`pnpm test`), else the shell. Closing or restarting the CLI
17410
+ * ends them all with its tmux session, so a close that loses nothing
17411
+ * waits for none (server/team `closeBlockers`). */
17412
+ async function shellJobs(panePid) {
17413
+ if (darwin) {
17414
+ const table = await processArgs();
17415
+ const kids = (pid) => [...table].filter(([, row]) => row.ppid === pid);
17416
+ return kids(panePid).filter(([, row]) => SHELLS.has(baseName(row.argv[0] ?? ""))).map(([pid, row]) => jobName(kids(pid)[0]?.[1].argv ?? row.argv));
17417
+ }
17418
+ const jobs = [];
17419
+ for (const pid of await childPids(panePid)) {
17420
+ const stat = await procStat(pid);
17421
+ if (!stat.length || stat[0] === "Z") continue;
17422
+ const argv = await procArgs(pid);
17423
+ if (!SHELLS.has(baseName(argv[0] ?? ""))) continue;
17424
+ const [first] = await childPids(pid);
17425
+ jobs.push(jobName(first ? await procArgs(first) : argv));
17426
+ }
17427
+ return jobs;
17428
+ }
17429
+ /** A job as a line: its command and arguments, paths by their names. */
17430
+ function jobName(argv) {
17431
+ const line = argv.map((arg) => arg.startsWith("/") ? baseName(arg) : arg).join(" ");
17432
+ return line.length > 60 ? `${line.slice(0, 59)}…` : line;
17433
+ }
17434
+ /** A process's children on Linux, every thread's (a Node CLI forks from
17435
+ * its worker threads too). */
17436
+ async function childPids(pid) {
17437
+ let tasks;
17438
+ try {
17439
+ tasks = await fs$1.readdir(`/proc/${pid}/task`);
17440
+ } catch {
17441
+ return [];
17442
+ }
17443
+ const kids = /* @__PURE__ */ new Set();
17444
+ for (const task of tasks) try {
17445
+ const list = await fs$1.readFile(`/proc/${pid}/task/${task}/children`, "utf8");
17446
+ for (const kid of list.split(" ")) if (kid.trim()) kids.add(Number(kid));
17447
+ } catch {}
17448
+ return [...kids];
17449
+ }
17381
17450
  /** Whether a process reads a terminal: its stdin on Linux; on macOS,
17382
17451
  * where a look at one pid's descriptors costs a spawn, whether it has a
17383
17452
  * controlling terminal at all (`ps`'s `??`). Unknown counts as one. */
@@ -17789,6 +17858,10 @@ function sessionInfo(id) {
17789
17858
  workspace: s.workspace_id,
17790
17859
  parent: s.parent_id,
17791
17860
  summary: s.summary,
17861
+ /** Never closed for being done (`work session keep`). */
17862
+ kept: !!live?.keep,
17863
+ /** Since when it is to close once nothing is lost by it (`retire`). */
17864
+ retiring: live?.retire_at ?? null,
17792
17865
  /** How and when it closed; null while open. */
17793
17866
  closed: closed ? {
17794
17867
  how: closed.how,
@@ -17805,6 +17878,37 @@ function paneAlive(id, env) {
17805
17878
  tmuxName(id)
17806
17879
  ], env).then(() => true, () => false);
17807
17880
  }
17881
+ /** What the session's CLI still runs in shells of its own (procs
17882
+ * `shellJobs`): its tmux session's close or a restart ends them. */
17883
+ async function paneJobs(id) {
17884
+ const pane = (await listPanes())?.find((p) => p.id === id);
17885
+ return pane ? shellJobs(pane.pid) : [];
17886
+ }
17887
+ /** Put a running session under `parent` (`work session adopt`), or on its
17888
+ * own with null (`release`), as `new` would have started it: nothing
17889
+ * restarts, and what is queued for it or owed keeps how it is answered
17890
+ * (a row's `by_send`). Adopted, it is kept from closing for being done
17891
+ * unless `closeDone`, which counts only answers to come: it may have
17892
+ * answered someone long ago. Moving one from another lead takes `from`
17893
+ * naming that lead. */
17894
+ function moveSession(id, parent, opts = {}) {
17895
+ const s = getSession(id);
17896
+ if (!s) throw httpError(404, `no session ${id}`);
17897
+ if (parent === null) {
17898
+ if (s.parent_id) db.prepare("UPDATE sessions SET parent_id = NULL WHERE id = ?").run(id);
17899
+ } else {
17900
+ const lead = getSession(parent);
17901
+ if (!lead) throw httpError(404, `no session ${parent}`);
17902
+ if (lead.workspace_id !== s.workspace_id) throw httpError(409, `${parent} is in another workspace than ${id}`);
17903
+ if (lead.agent === "shell") throw httpError(409, `${parent} is a shell: only an agent leads`);
17904
+ if (parent === id) throw httpError(409, `${id} cannot be under itself`);
17905
+ if (descendantsOf(id).includes(parent)) throw httpError(409, `${parent} is under ${id} already: ${id} cannot also be under it (\`work session release ${parent}\` first)`);
17906
+ if (s.parent_id && s.parent_id !== parent && opts.from !== s.parent_id) throw httpError(409, `${id} is under ${s.parent_id}: pass --from ${s.parent_id} to move it`);
17907
+ db.prepare(`UPDATE sessions SET parent_id = ?, keep = ?${opts.closeDone ? ", answered_at = NULL" : ""} WHERE id = ?`).run(parent, opts.closeDone ? 0 : 1, id);
17908
+ }
17909
+ notifySessionsChanged(s.workspace_id);
17910
+ return getSession(id);
17911
+ }
17808
17912
  /** Every session `id` started, and theirs, nearest first. */
17809
17913
  function descendantsOf(id) {
17810
17914
  return all(`WITH RECURSIVE kids(id, depth) AS (
@@ -17900,7 +18004,7 @@ function notifySessionsChanged(workspaceId) {
17900
18004
  async function emitSessionsChanged(workspaceId) {
17901
18005
  try {
17902
18006
  const states = await sessionStates();
17903
- const { teamsOf } = await import("./_T5K2qs5u.js");
18007
+ const { teamsOf } = await import("./_C-c452mk.js");
17904
18008
  publish("sessions.changed", {
17905
18009
  workspaceId,
17906
18010
  sessions: listSessions(workspaceId).map((s) => ({
@@ -19627,7 +19731,12 @@ ${repoLines}
19627
19731
  otherwise (with its lead, by the user), or stuck on its account's limit,
19628
19732
  \`work session reopen <id> [--agent <another instance>]\` starts again
19629
19733
  on it, and \`work session log [<id>]\` shows what went to and from
19630
- one and how each message went. For a quick
19734
+ one and how each message went. \`kill\` and \`skip\` end the turn under
19735
+ way and what its pane runs; to lose nothing, \`forget <id>\` stops
19736
+ waiting on a reply, \`unsend <id>\` takes back a message not yet typed
19737
+ in, \`retire <id>\` closes one once it is idle, and \`adopt <id>\` /
19738
+ \`release <id>\` move one under you or off (the user's own only when
19739
+ they ask, with \`--yes\`). For a quick
19631
19740
  sweep in your own CLI, its own subagents are cheaper. All of this is
19632
19741
  this workspace's only; an agent in another can be messaged when the user
19633
19742
  asks, and only while it runs (\`work workspaces\` lists them, \`work session list <workspace>\`
@@ -19645,4 +19754,4 @@ ${repoLines}
19645
19754
  `;
19646
19755
  }
19647
19756
  //#endregion
19648
- export { renameSession as $, agentFromCommand as $n, catalogPin as $r, commentFolder as $t, closedSession as A, noteBackground as An, allPrefs as Ar, serverList as At, killWorkspaceSessions as B, onTurnFailed as Bn, setSetting as Br, runStreaming as Bt, workspaceBranches as C, withLock as Ci, agentPhase as Cn, isValidHost as Cr, forgetCustomServer as Ct, beginCreation as D, interruptedSinceReport as Dn, PREF_MAX as Dr, lspEnabled as Dt, agentCaller as E, hookReportedAt as En, unreachableRepos as Er, installServer as Et, ensureTmuxServer as F, noteUserAnswered as Fn, getSetting as Fr, installMise as Ft, markTmuxStarted as G, setSessionViewers as Gn, miseVersions as Gr, readFileAt as Gt, listPanes as H, setAgentPhase as Hn, doctor as Hr, fileChanges as Ht, forgetPanes as I, notifyEventOn as In, isKnownAgent as Ir, installTool as It, notifySessionsChanged as J, turnPhase as Jn, firewallProbe as Jr, workspaceDiff as Jt, newSessionArgs as K, settleQuietWorking as Kn, which as Kr, reviewWaiting as Kt, getSession as L, onFinished as Ln, preferredAgent as Lr, logoutGithub as Lt, creationOf as M, notePermissionMode as Mn, deleteSetting as Mr, whileInstalling as Mt, descendantsOf as N, noteTurnFailed as Nn, disabledAgents as Nr, authGithub as Nt, cleanEnv as O, lastTypedAt as On, WORKSPACE_PREFS as Or, removeServer as Ot, disposeSessions as P, noteTyped as Pn, enabledAgents as Pr, installAgent as Pt, pasteToSession as Q, agentFamily as Qn, agentLabel$1 as Qr, diffStamp as Qt, interruptSession as R, onPhaseChange as Rn, setDisabledAgents as Rr, refreshGithub as Rt, withProgressOp as S, swr as Si, activityOf as Sn, forgetToken as Sr, allServers as St, hookToken as T, hookPhase as Tn, removeHost as Tr, installKey as Tt, listPanesWithin as U, setExpecting as Un, ghKnownHosts as Ur, patchIn as Ut, launchDir as V, sessionWatched as Vn, discoverAgents as Vr, updateTool as Vt, listSessions as W, setScrapedPhase as Wn, miseInstalls as Wr, readBlobAt as Wt, ownWorkspaceOnly as X, turnSince as Xn, TOOLS as Xr, setPoints as Xt, onSessionDispose as Y, turnSettling as Yn, PROJECT_TOOLS as Yr, workspaceSections as Yt, panePids as Z, agentBadge as Zn, agentById as Zr, startSnapSweep as Zt, retryMaterialize as _, ensureAllCacheConfig as _i, readCache as _n, repoDefaultBranch as _r, lspWarm as _t, ensureUntrackedCache as a, checked as ai, refreshPrsBatch as an, manifest as ar, sessionInfo as at, sweepTrash as b, tmux as bi, inside as bn, configuredHosts as br, stopServers as bt, insertPendingWorkspace as c, publish as ci, noteActivity as cn, deleteSubscription as cr, tmuxWasStarted as ct, progress as d, subscriberCount as di, quotesPastes as dn, sendPush as dr, workspaceProcs as dt, parseAgentId as ei, markBranch as en, agentLabel as er, reopenSession as et, progressSince as f, all as fi, readHookPayload as fn, validSubscription as fr, killServers as ft, resumePendingWorkspaces as g, ownsBranchOf as gi, credentialStamp as gn, repoCatalog as gr, lspUses as gt, removeRepo as h, workspacePath as hi, blankRow as hn, repoBranches as hr, lspQueryOf as ht, deleteWorkspace as i, FRAME_HEADERS as ii, notePushActivity as in, iconSvg as ir, sendToSession as it, createSession as j, noteInterrupt as jn, changePref as jr, sharing as jt, clearTmuxStarted as k, noteActivity$1 as kn, agentChoices as kr, serverById as kt, listWorkspaces as l, publishJson as li, AGENTS as ln, pushPublicKey as lr, killWorkspaceProc as lt, queueMaterialize as m, get as mi, steerKeys as mn, pendingSsoOrgs as mr, lspQuery as mt, barePath as n, applyPrefChange as ni, dismissPr as nn, ACCENT_RE as nr, restartSession as nt, gcBares as o, httpError as oi, withoutDismissed as on, normalizeAccent as or, sessionStates as ot, pruneLaneBranch as p, db as pi, reportsWorking as pn, headOid as pr, lspDiagnostics as pt, noteConversation as q, summaryOf as qn, bornOut as qr, withinBudget as qt, createWorkspace as r, FRAME_ANCESTORS as ri, hotBatchMinMs as rn, getInstance as rr, retireSession as rt, getWorkspace as s, readBody as si, workspacePrs as sn, setInstance as sr, tmuxName as st, addRepo as t, toolById as ti, sectionFor as tn, agentMeta as tr, reopenable as tt, otherWorkspaceBranches as u, subscribe as ui, interruptKeys as un, saveSubscription as ur, portsByWorkspace as ut, revParse as v, TMUX_SOCKET as vi, writeCache as vn, DEFAULT_HOST as vr, runningServers as vt, ensureAllPushHooks as w, clearAgentPhase as wn, normalizeHost as wr, forgetProbes as wt, syncAgentsMd as x, config as xi, realInside as xn, ensureGitCredentials as xr, addCustomServer as xt, setWorkspaceStatus as y, git as yi, cleanSummary as yn, addHost as yr, stopAllServers as yt, killSession as z, onTurnEnd as zn, setPref as zr, removeTool as zt };
19757
+ 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 };
@@ -0,0 +1,2 @@
1
+ import { Y as notifySessionsChanged } from "./_BL9uMFqY.js";
2
+ export { notifySessionsChanged };
@@ -0,0 +1,2 @@
1
+ import { h as teamsOf } from "./_C_xIwbCY.js";
2
+ export { teamsOf };