@dylanpiercey/work 0.2.70 → 0.2.71

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 (495) hide show
  1. package/bin/cli/session.mjs +36 -4
  2. package/bin/cli/topic.mjs +47 -0
  3. package/dist/{_CSFzm8Kj.js → _B3z3x0nb.js} +100 -11
  4. package/dist/_BawMVLA9.js +2 -0
  5. package/dist/{_COL0wji1.js → _BcuBHot2.js} +106 -106
  6. package/dist/_D3ixWlKr.js +2 -0
  7. package/dist/{_DK0sGNuL.js → _DHaRHB4s.js} +164 -32
  8. package/dist/index.mjs +1161 -1071
  9. package/dist/public/assets/{_CAUoTaA1.js → _-JtZtVz8.js} +1 -1
  10. package/dist/public/assets/_-JtZtVz8.js.br +0 -0
  11. package/dist/public/assets/{_BVOoaIUz.js → _0QJDM3NO.js} +1 -1
  12. package/dist/public/assets/_0QJDM3NO.js.br +0 -0
  13. package/dist/public/assets/{_C2Tbc73e.js → _0vqLbImj.js} +1 -1
  14. package/dist/public/assets/_0vqLbImj.js.br +0 -0
  15. package/dist/public/assets/_2W-pgjXX.js +1 -0
  16. package/dist/public/assets/{_COjB6Mds.js → _4ogr0vzb.js} +1 -1
  17. package/dist/public/assets/_4ogr0vzb.js.br +0 -0
  18. package/dist/public/assets/{_Mt6ebGGE.js → _5lt7STSU.js} +10 -10
  19. package/dist/public/assets/_5lt7STSU.js.br +0 -0
  20. package/dist/public/assets/{_BQvedQNA.js → _6D14OK7z.js} +1 -1
  21. package/dist/public/assets/_6D14OK7z.js.br +0 -0
  22. package/dist/public/assets/{_H1xilHgC.js → _9D7sZPkr.js} +1 -1
  23. package/dist/public/assets/_9D7sZPkr.js.br +0 -0
  24. package/dist/public/assets/{_DouCdQ99.js → _Alp3-sd6.js} +1 -1
  25. package/dist/public/assets/_B0CqgYFf.js +1 -0
  26. package/dist/public/assets/{_C0zpPwSp.js → _B0sUN2tx.js} +1 -1
  27. package/dist/public/assets/_B0sUN2tx.js.br +0 -0
  28. package/dist/public/assets/_B1KbLd5h.js +1 -0
  29. package/dist/public/assets/{_DORBDQxD.js → _B5SjUyop.js} +1 -1
  30. package/dist/public/assets/_B5SjUyop.js.br +0 -0
  31. package/dist/public/assets/_B7FCBIYG.js +1 -0
  32. package/dist/public/assets/_B7FCBIYG.js.br +0 -0
  33. package/dist/public/assets/_B9G7-El7.js +1 -0
  34. package/dist/public/assets/_BDNW7Ugd.js +1 -0
  35. package/dist/public/assets/{_BC1pxNUd.js → _BGXJVx0k.js} +1 -1
  36. package/dist/public/assets/_BGXJVx0k.js.br +0 -0
  37. package/dist/public/assets/{_jFGgKTYj.js → _BHypHLzv.js} +1 -1
  38. package/dist/public/assets/_BHypHLzv.js.br +0 -0
  39. package/dist/public/assets/{_CI8Dmpt-.js → _BJ0RWeiG.js} +1 -1
  40. package/dist/public/assets/_BJ0RWeiG.js.br +0 -0
  41. package/dist/public/assets/{_CXLLGxAE.js → _BLALkhiZ.js} +4 -4
  42. package/dist/public/assets/_BLALkhiZ.js.br +0 -0
  43. package/dist/public/assets/_BMNhhqEV.js +1 -0
  44. package/dist/public/assets/{_JMrxKBGN.js → _BPHBcrYh.js} +1 -1
  45. package/dist/public/assets/_BPHBcrYh.js.br +0 -0
  46. package/dist/public/assets/{_DO7dqRyj.js → _BPoePslg.js} +1 -1
  47. package/dist/public/assets/_BPoePslg.js.br +0 -0
  48. package/dist/public/assets/{_REcALhmt.js → _BQuf46P2.js} +1 -1
  49. package/dist/public/assets/_BQuf46P2.js.br +0 -0
  50. package/dist/public/assets/_BTydwZJh.js +1 -0
  51. package/dist/public/assets/{_BCgm7As-.js → _BUbGYrKa.js} +1 -1
  52. package/dist/public/assets/_BUbGYrKa.js.br +0 -0
  53. package/dist/public/assets/{_DWCS2CFQ.js → _BUh4HTF3.js} +1 -1
  54. package/dist/public/assets/_BUh4HTF3.js.br +0 -0
  55. package/dist/public/assets/{_tGE7SNww.js → _BVXZCAXs.js} +1 -1
  56. package/dist/public/assets/_BVXZCAXs.js.br +0 -0
  57. package/dist/public/assets/_BWBW2sE5.js +1 -0
  58. package/dist/public/assets/_BXgfsaug.js +1 -0
  59. package/dist/public/assets/_BXgfsaug.js.br +0 -0
  60. package/dist/public/assets/_BZycN9ye.js +1 -0
  61. package/dist/public/assets/_BaQeAF-B.js +1 -0
  62. package/dist/public/assets/_BhA6H8WQ.js +1 -0
  63. package/dist/public/assets/_BikFQJva.js +1 -0
  64. package/dist/public/assets/_Bk0YJ7b1.js +1 -0
  65. package/dist/public/assets/{_CHuWNcjJ.js → _BlSH3TRK.js} +1 -1
  66. package/dist/public/assets/_BlSH3TRK.js.br +0 -0
  67. package/dist/public/assets/_BqSnw21E.js +1 -0
  68. package/dist/public/assets/{_CGSo9tnY.js → _BtWMgvvl.js} +2 -2
  69. package/dist/public/assets/_BtWMgvvl.js.br +0 -0
  70. package/dist/public/assets/{_B-ItC5A4.js → _BvskbvTW.js} +1 -1
  71. package/dist/public/assets/_BvskbvTW.js.br +0 -0
  72. package/dist/public/assets/{__favRwtg.js → _Bx8oVkmQ.js} +1 -1
  73. package/dist/public/assets/_Bx8oVkmQ.js.br +0 -0
  74. package/dist/public/assets/_BxPoJO_L.js +1 -0
  75. package/dist/public/assets/{_DZ0rqa0h.js → _C09HUxcS.js} +1 -1
  76. package/dist/public/assets/_C09HUxcS.js.br +0 -0
  77. package/dist/public/assets/_C14PL76N.js +1 -0
  78. package/dist/public/assets/{_DuuP0rKI.js → _C15TsQVx.js} +1 -1
  79. package/dist/public/assets/_C15TsQVx.js.br +0 -0
  80. package/dist/public/assets/_C1bNeWUD.js +1 -0
  81. package/dist/public/assets/{_L2f5JNlj.js → _C2IlBo8e.js} +1 -1
  82. package/dist/public/assets/_C2IlBo8e.js.br +0 -0
  83. package/dist/public/assets/{_Cu31pL3p.js → _C3F6fdUB.js} +1 -1
  84. package/dist/public/assets/_C5KZ0ozw.js +1 -0
  85. package/dist/public/assets/_C5KZ0ozw.js.br +0 -0
  86. package/dist/public/assets/_C94IJ4uX.js +1 -0
  87. package/dist/public/assets/_CCRiWfSo.js +1 -0
  88. package/dist/public/assets/{_Cznq4Aee.js → _CCl1txGr.js} +1 -1
  89. package/dist/public/assets/{_BNlAaEUI.js → _CDHWB_us.js} +1 -1
  90. package/dist/public/assets/_CDHWB_us.js.br +0 -0
  91. package/dist/public/assets/_CE-UlWde.js +1 -0
  92. package/dist/public/assets/{_kkbInDpy.js → _CEgYI4gj.js} +1 -1
  93. package/dist/public/assets/_CEgYI4gj.js.br +0 -0
  94. package/dist/public/assets/_CI9y5SMD.js +1 -0
  95. package/dist/public/assets/_CLrYkY55.js +1 -0
  96. package/dist/public/assets/{_CcbgX86v.js → _CPTaxuJG.js} +1 -1
  97. package/dist/public/assets/_CPTaxuJG.js.br +0 -0
  98. package/dist/public/assets/_CQKcBCsl.js +1 -0
  99. package/dist/public/assets/{_Ck0GxYNQ.js → _CQuARfyY.js} +1 -1
  100. package/dist/public/assets/_CQuARfyY.js.br +0 -0
  101. package/dist/public/assets/_CRdqojLF.js +1 -0
  102. package/dist/public/assets/{_BzDLIQE5.js → _CRew7lgJ.js} +1 -1
  103. package/dist/public/assets/_CRew7lgJ.js.br +0 -0
  104. package/dist/public/assets/_CS11TygF.js +1 -0
  105. package/dist/public/assets/{_CdDgM-x6.js → _CS9qmTkt.js} +1 -1
  106. package/dist/public/assets/_CS9qmTkt.js.br +0 -0
  107. package/dist/public/assets/_CSSixb56.js +1 -0
  108. package/dist/public/assets/_CSa_w7tA.js +86 -0
  109. package/dist/public/assets/_CSa_w7tA.js.br +0 -0
  110. package/dist/public/assets/{_Bwl5RU7m.js → _CTbIErzd.js} +1 -1
  111. package/dist/public/assets/_CTbIErzd.js.br +0 -0
  112. package/dist/public/assets/_CXf2VxeD.js +1 -0
  113. package/dist/public/assets/{_HlactPnQ.js → _CYHURCb7.js} +1 -1
  114. package/dist/public/assets/_CYHURCb7.js.br +0 -0
  115. package/dist/public/assets/_C_vPuVhA.js +1 -0
  116. package/dist/public/assets/_Cajx7i0I.js +1 -0
  117. package/dist/public/assets/{_D_TuAhnN.js → _Cb-D3ERI.js} +1 -1
  118. package/dist/public/assets/_Cb-D3ERI.js.br +0 -0
  119. package/dist/public/assets/_Cc8Hhqep.js +1 -0
  120. package/dist/public/assets/{_DGyB0J_Z.js → _Ce6hwXny.js} +1 -1
  121. package/dist/public/assets/_Ce6hwXny.js.br +0 -0
  122. package/dist/public/assets/_CeSD_6xP.js +1 -0
  123. package/dist/public/assets/_CfFIePkk.js +1 -0
  124. package/dist/public/assets/_CfUhSwyu.js +1 -0
  125. package/dist/public/assets/_CfziTCiN.js +1 -0
  126. package/dist/public/assets/_Ci7l0V_h.js +1 -0
  127. package/dist/public/assets/{_6R8pHfHu.js → _Cif8YVIW.js} +1 -1
  128. package/dist/public/assets/_Cif8YVIW.js.br +0 -0
  129. package/dist/public/assets/_CjI_b19m.js +1 -0
  130. package/dist/public/assets/{_BVN5lLXw.js → _CjT2-NNY.js} +1 -1
  131. package/dist/public/assets/_CjT2-NNY.js.br +0 -0
  132. package/dist/public/assets/_Cjromvor.js +1 -0
  133. package/dist/public/assets/{_BjJMzhJj.js → _CmcVar5g.js} +1 -1
  134. package/dist/public/assets/_CmcVar5g.js.br +0 -0
  135. package/dist/public/assets/_Cof8T6gT.js +1 -0
  136. package/dist/public/assets/{_DuaSYpQG.js → _CreV-6z6.js} +1 -1
  137. package/dist/public/assets/_CreV-6z6.js.br +0 -0
  138. package/dist/public/assets/_CsKkccjn.js +1 -0
  139. package/dist/public/assets/{_BJHD6sFy.js → _CsnlIPmX.js} +1 -1
  140. package/dist/public/assets/_CsnlIPmX.js.br +0 -0
  141. package/dist/public/assets/_CsxBH5UX.js +1 -0
  142. package/dist/public/assets/{_BaULj7kH.js → _CvrDFzmP.js} +1 -1
  143. package/dist/public/assets/_CvrDFzmP.js.br +0 -0
  144. package/dist/public/assets/{_C3RYgw_5.js → _CwAvlnWz.js} +1 -1
  145. package/dist/public/assets/_CwAvlnWz.js.br +0 -0
  146. package/dist/public/assets/{_sTT2iThd.js → _CwBNy_7k.js} +1 -1
  147. package/dist/public/assets/_CwBNy_7k.js.br +0 -0
  148. package/dist/public/assets/{_JSiyuxRJ.js → _Cx0sSSLJ.js} +1 -1
  149. package/dist/public/assets/_Cx0sSSLJ.js.br +0 -0
  150. package/dist/public/assets/_CxyaZiJz.js +1 -0
  151. package/dist/public/assets/{_CzBug9-x.js → _D-4UJozU.js} +1 -1
  152. package/dist/public/assets/_D-4UJozU.js.br +0 -0
  153. package/dist/public/assets/{_BC7rcYFE.js → _D0PrCOmg.js} +1 -1
  154. package/dist/public/assets/_D0PrCOmg.js.br +0 -0
  155. package/dist/public/assets/{_CDXnpAfh.js → _D0n_5okc.js} +1 -1
  156. package/dist/public/assets/_D0n_5okc.js.br +0 -0
  157. package/dist/public/assets/{_YATrYiFD.js → _D1ZTqBtg.js} +1 -1
  158. package/dist/public/assets/_D1ZTqBtg.js.br +0 -0
  159. package/dist/public/assets/_D2m31-DG.js +1 -0
  160. package/dist/public/assets/_D2vTqjKk.js +1 -0
  161. package/dist/public/assets/{_BOmZO9bQ.js → _D2zuXOi5.js} +1 -1
  162. package/dist/public/assets/_D2zuXOi5.js.br +0 -0
  163. package/dist/public/assets/{_Bo5sqml-.js → _D3mGPwaD.js} +1 -1
  164. package/dist/public/assets/{_HNyiv6zs.js → _D4SspWzi.js} +1 -1
  165. package/dist/public/assets/_D4SspWzi.js.br +0 -0
  166. package/dist/public/assets/_D8BYyk4L.js +1 -0
  167. package/dist/public/assets/_D8c2vqae.js +1 -0
  168. package/dist/public/assets/{_C8l-PMHJ.js → _D93e76eJ.js} +1 -1
  169. package/dist/public/assets/_D93e76eJ.js.br +0 -0
  170. package/dist/public/assets/{_B9_Lal-7.js → _DB0x3S_V.js} +1 -1
  171. package/dist/public/assets/_DB0x3S_V.js.br +0 -0
  172. package/dist/public/assets/{_D-6O7MKA.js → _DBqiCvB3.js} +1 -1
  173. package/dist/public/assets/_DBqiCvB3.js.br +0 -0
  174. package/dist/public/assets/_DDPfcBYW.js +1 -0
  175. package/dist/public/assets/_DE7f6G-4.js +1 -0
  176. package/dist/public/assets/_DFc8nVyA.js +1 -0
  177. package/dist/public/assets/_DGNNG6hE.js +1 -0
  178. package/dist/public/assets/{_BmAd0-4z.js → _DI_3CxxT.js} +1 -1
  179. package/dist/public/assets/_DKaZoJEU.js +1 -0
  180. package/dist/public/assets/_DPCcVPqS.js +1 -0
  181. package/dist/public/assets/{_DM2ZsY5Z.js → _DPO20UhE.js} +1 -1
  182. package/dist/public/assets/_DPO20UhE.js.br +0 -0
  183. package/dist/public/assets/_DQ9KMZkg.js +1 -0
  184. package/dist/public/assets/_DQfR4nGA.js +1 -0
  185. package/dist/public/assets/_DRl7_NsH.js +1 -0
  186. package/dist/public/assets/_DSjKT54G.js +1 -0
  187. package/dist/public/assets/{_BDmhvLCs.js → _DUQ4-DAq.js} +1 -1
  188. package/dist/public/assets/_DUQ4-DAq.js.br +0 -0
  189. package/dist/public/assets/{_B7THbxch.js → _DVUACl-0.js} +1 -1
  190. package/dist/public/assets/_DVUACl-0.js.br +0 -0
  191. package/dist/public/assets/_DVaVJl4U.js +1 -0
  192. package/dist/public/assets/{_CCTE_j9L.js → _DWJFJSQt.js} +1 -1
  193. package/dist/public/assets/_DWJFJSQt.js.br +0 -0
  194. package/dist/public/assets/{_DKgv7Cyq.js → _DW_3eCmy.js} +1 -1
  195. package/dist/public/assets/_DW_3eCmy.js.br +0 -0
  196. package/dist/public/assets/_DWcr4WT2.js +1 -0
  197. package/dist/public/assets/_D_uqbH0s.js +1 -0
  198. package/dist/public/assets/_Db3LFxDp.js +1 -0
  199. package/dist/public/assets/{_D-XHmBJj.js → _DcKVJllO.js} +1 -1
  200. package/dist/public/assets/_DcKVJllO.js.br +0 -0
  201. package/dist/public/assets/_De55CP4F.js +1 -0
  202. package/dist/public/assets/{_CcLifUnb.js → _DglTnOtH.js} +1 -1
  203. package/dist/public/assets/_DglTnOtH.js.br +0 -0
  204. package/dist/public/assets/_DhyrSLt_.js +1 -0
  205. package/dist/public/assets/_DishjoMc.js +1 -0
  206. package/dist/public/assets/_DlHs_b1x.js +1 -0
  207. package/dist/public/assets/{_BM9h7XBb.js → _DmlL12SP.js} +1 -1
  208. package/dist/public/assets/_DmlL12SP.js.br +0 -0
  209. package/dist/public/assets/{_BTJ4QNYJ.js → _Dnj7y5O6.js} +1 -1
  210. package/dist/public/assets/_Dnj7y5O6.js.br +0 -0
  211. package/dist/public/assets/_DqB9AEIR.js +1 -0
  212. package/dist/public/assets/_DqmZjpyA.js +1 -0
  213. package/dist/public/assets/_DrC0PHwd.js +1 -0
  214. package/dist/public/assets/_DrtDlCCB.js +1 -0
  215. package/dist/public/assets/{_CWmrlUIL.js → _DsxZHqAt.js} +1 -1
  216. package/dist/public/assets/_DsxZHqAt.js.br +0 -0
  217. package/dist/public/assets/{_Dml0472r.js → _DucELdm1.js} +1 -1
  218. package/dist/public/assets/_DucELdm1.js.br +0 -0
  219. package/dist/public/assets/{_TZpNJCj6.js → _Dw2w_cI1.js} +1 -1
  220. package/dist/public/assets/_Dw2w_cI1.js.br +0 -0
  221. package/dist/public/assets/{_CrEFB_dj.js → _Dx2nYKAs.js} +1 -1
  222. package/dist/public/assets/_Dx2nYKAs.js.br +0 -0
  223. package/dist/public/assets/{_B3B2tRvZ.js → _DxZFU6SY.js} +1 -1
  224. package/dist/public/assets/_DxZFU6SY.js.br +0 -0
  225. package/dist/public/assets/_DyztCqYX.js +1 -0
  226. package/dist/public/assets/_Dz42MOZj.js +1 -0
  227. package/dist/public/assets/{_B9BZLh7B.js → _DzSNrU-9.js} +1 -1
  228. package/dist/public/assets/_DzSNrU-9.js.br +0 -0
  229. package/dist/public/assets/{_BEO7OuGG.js → _HnLpRxna.js} +2 -2
  230. package/dist/public/assets/_HnLpRxna.js.br +0 -0
  231. package/dist/public/assets/{_BvDvgf2D.js → _Im1dFxR8.js} +1 -1
  232. package/dist/public/assets/_Im1dFxR8.js.br +0 -0
  233. package/dist/public/assets/_ImlHzwYY.js +1 -0
  234. package/dist/public/assets/_J-P8YHmV.js +1 -0
  235. package/dist/public/assets/_KsdD4dsM.js +1 -0
  236. package/dist/public/assets/_KsdD4dsM.js.br +0 -0
  237. package/dist/public/assets/{_B-IuONfT.js → _LRjlRqrU.js} +5 -5
  238. package/dist/public/assets/_LRjlRqrU.js.br +0 -0
  239. package/dist/public/assets/_LTl-SYyD.js +1 -0
  240. package/dist/public/assets/{_BEg-5EkS.js → _LniUny_a.js} +1 -1
  241. package/dist/public/assets/_LniUny_a.js.br +0 -0
  242. package/dist/public/assets/_Oup4mCuX.js +1 -0
  243. package/dist/public/assets/{_YC0QGp9j.js → _R3Kvmve2.js} +1 -1
  244. package/dist/public/assets/_R3Kvmve2.js.br +0 -0
  245. package/dist/public/assets/{_Cp-ZKt1Y.js → _R7YbF1yw.js} +1 -1
  246. package/dist/public/assets/_R7YbF1yw.js.br +0 -0
  247. package/dist/public/assets/{_0NYkT7Ka.js → _S9Qy4Cmi.js} +1 -1
  248. package/dist/public/assets/_S9Qy4Cmi.js.br +0 -0
  249. package/dist/public/assets/{_DyFziHLM.js → _ShiWFlWr.js} +1 -1
  250. package/dist/public/assets/_ShiWFlWr.js.br +0 -0
  251. package/dist/public/assets/{_BC-QJfsn.js → _TLB-Nq6Z.js} +1 -1
  252. package/dist/public/assets/_TLB-Nq6Z.js.br +0 -0
  253. package/dist/public/assets/_YcOZiOZ4.js +2 -0
  254. package/dist/public/assets/_YcOZiOZ4.js.br +0 -0
  255. package/dist/public/assets/_YjSW_ahw.js +1 -0
  256. package/dist/public/assets/_c9iXcb5V.js +1 -0
  257. package/dist/public/assets/{_CbzlAKJK.js → _dSWMMogH.js} +1 -1
  258. package/dist/public/assets/_dSWMMogH.js.br +0 -0
  259. package/dist/public/assets/_dp0lBRTw.js +1 -0
  260. package/dist/public/assets/_etOTb_Um.js +1 -0
  261. package/dist/public/assets/{_DA6CNMAS.js → _fZ9Nn0aY.js} +1 -1
  262. package/dist/public/assets/_fZ9Nn0aY.js.br +0 -0
  263. package/dist/public/assets/_h3o298tf.js +1 -0
  264. package/dist/public/assets/_iTnQEpuR.js +1 -0
  265. package/dist/public/assets/{_DU8DeX60.js → _ii--A0F-.js} +1 -1
  266. package/dist/public/assets/_ii--A0F-.js.br +0 -0
  267. package/dist/public/assets/{_BVIQdL1e.js → _ixsF2ttz.js} +1 -1
  268. package/dist/public/assets/_ixsF2ttz.js.br +0 -0
  269. package/dist/public/assets/_kQ2OAVME.js +1 -0
  270. package/dist/public/assets/{_DJNoam7G.js → _l71VhzhS.js} +1 -1
  271. package/dist/public/assets/_l71VhzhS.js.br +0 -0
  272. package/dist/public/assets/{_vfD02BWU.js → _ptpihSzL.js} +1 -1
  273. package/dist/public/assets/_ptpihSzL.js.br +0 -0
  274. package/dist/public/assets/{_VgS7WPcA.js → _suQAT3jW.js} +1 -1
  275. package/dist/public/assets/_suQAT3jW.js.br +0 -0
  276. package/dist/public/assets/{_BUpeVCdC.js → _t5-hsdI5.js} +1 -1
  277. package/dist/public/assets/_t5-hsdI5.js.br +0 -0
  278. package/dist/public/assets/{_Bwj1cG6Z.js → _tEBqbfOJ.js} +1 -1
  279. package/dist/public/assets/_tEBqbfOJ.js.br +0 -0
  280. package/dist/public/assets/{_JcvJ5ACW.js → _vy4Y1hd_.js} +1 -1
  281. package/dist/public/assets/_vy4Y1hd_.js.br +0 -0
  282. package/dist/public/assets/{_DroY8_no.js → _x7Lebeio.js} +1 -1
  283. package/dist/public/assets/_x7Lebeio.js.br +0 -0
  284. package/dist/public/assets/_z3J861v3.js +1 -0
  285. package/dist/public/assets/files-view-DyuIyBwJ.js +2 -0
  286. package/dist/public/assets/manage-workspace-CtSdSPLU.js +2 -0
  287. package/dist/public/assets/new-ClUAGfpX.js +1 -0
  288. package/dist/public/assets/new-workspace-BLb55_cv.js +2 -0
  289. package/dist/public/assets/review-view-BhRXZEwU.js +2 -0
  290. package/dist/public/assets/settings-ClUAGfpX.js +1 -0
  291. package/dist/public/assets/settings-page-CTit2PgC.js +2 -0
  292. package/dist/public/assets/styles-C4hTgteh.css +1 -0
  293. package/dist/public/assets/styles-C4hTgteh.css.br +0 -0
  294. package/dist/public/assets/w-ClUAGfpX.js +1 -0
  295. package/dist/public/assets/w._-ClUAGfpX.js +1 -0
  296. package/dist/public/assets/w._-CtbjyBu3.js +1 -0
  297. package/dist/public/assets/w._-D5ZiKvyZ.js +1 -0
  298. package/package.json +1 -1
  299. package/dist/_B25P__C4.js +0 -2
  300. package/dist/_wbrwjNyW.js +0 -2
  301. package/dist/public/assets/_0NYkT7Ka.js.br +0 -0
  302. package/dist/public/assets/_18ckOF7L.js +0 -1
  303. package/dist/public/assets/_25qbKqTG.js +0 -1
  304. package/dist/public/assets/_6R8pHfHu.js.br +0 -0
  305. package/dist/public/assets/_8cC5eK8l.js +0 -1
  306. package/dist/public/assets/_8eN6y624.js +0 -1
  307. package/dist/public/assets/_8eN6y624.js.br +0 -0
  308. package/dist/public/assets/_9-vCfD1H.js +0 -1
  309. package/dist/public/assets/_9PSE1hBd.js +0 -1
  310. package/dist/public/assets/_B-ItC5A4.js.br +0 -0
  311. package/dist/public/assets/_B-IuONfT.js.br +0 -0
  312. package/dist/public/assets/_B-Nak9W-.js +0 -1
  313. package/dist/public/assets/_B-Nak9W-.js.br +0 -0
  314. package/dist/public/assets/_B0vuJGqQ.js +0 -1
  315. package/dist/public/assets/_B24stjuF.js +0 -86
  316. package/dist/public/assets/_B24stjuF.js.br +0 -0
  317. package/dist/public/assets/_B2HaD9d5.js +0 -1
  318. package/dist/public/assets/_B3B2tRvZ.js.br +0 -0
  319. package/dist/public/assets/_B4oiI3_4.js +0 -1
  320. package/dist/public/assets/_B5CpgKE4.js +0 -1
  321. package/dist/public/assets/_B7Rpwq9e.js +0 -1
  322. package/dist/public/assets/_B7THbxch.js.br +0 -0
  323. package/dist/public/assets/_B9BZLh7B.js.br +0 -0
  324. package/dist/public/assets/_B9_Lal-7.js.br +0 -0
  325. package/dist/public/assets/_BC-QJfsn.js.br +0 -0
  326. package/dist/public/assets/_BC1pxNUd.js.br +0 -0
  327. package/dist/public/assets/_BC7rcYFE.js.br +0 -0
  328. package/dist/public/assets/_BCgm7As-.js.br +0 -0
  329. package/dist/public/assets/_BDmhvLCs.js.br +0 -0
  330. package/dist/public/assets/_BEO7OuGG.js.br +0 -0
  331. package/dist/public/assets/_BEg-5EkS.js.br +0 -0
  332. package/dist/public/assets/_BFTxeP-D.js +0 -1
  333. package/dist/public/assets/_BGCoTA5R.js +0 -1
  334. package/dist/public/assets/_BJHD6sFy.js.br +0 -0
  335. package/dist/public/assets/_BJeQROi4.js +0 -1
  336. package/dist/public/assets/_BJeQROi4.js.br +0 -0
  337. package/dist/public/assets/_BKDJIaLf.js +0 -1
  338. package/dist/public/assets/_BM9h7XBb.js.br +0 -0
  339. package/dist/public/assets/_BNlAaEUI.js.br +0 -0
  340. package/dist/public/assets/_BOmZO9bQ.js.br +0 -0
  341. package/dist/public/assets/_BQvedQNA.js.br +0 -0
  342. package/dist/public/assets/_BTJ4QNYJ.js.br +0 -0
  343. package/dist/public/assets/_BUnVFLfD.js +0 -1
  344. package/dist/public/assets/_BUpeVCdC.js.br +0 -0
  345. package/dist/public/assets/_BVIQdL1e.js.br +0 -0
  346. package/dist/public/assets/_BVN5lLXw.js.br +0 -0
  347. package/dist/public/assets/_BVOoaIUz.js.br +0 -0
  348. package/dist/public/assets/_BYd6ll6G.js +0 -1
  349. package/dist/public/assets/_BZnPwq2i.js +0 -1
  350. package/dist/public/assets/_BaULj7kH.js.br +0 -0
  351. package/dist/public/assets/_BbdvSQaN.js +0 -1
  352. package/dist/public/assets/_BjJMzhJj.js.br +0 -0
  353. package/dist/public/assets/_BkFty1Oi.js +0 -1
  354. package/dist/public/assets/_BryOeCV4.js +0 -1
  355. package/dist/public/assets/_BtAYOnhU.js +0 -1
  356. package/dist/public/assets/_BvDvgf2D.js.br +0 -0
  357. package/dist/public/assets/_Bwj1cG6Z.js.br +0 -0
  358. package/dist/public/assets/_Bwl5RU7m.js.br +0 -0
  359. package/dist/public/assets/_Bx7eXUeM.js +0 -1
  360. package/dist/public/assets/_Bxw4J8BV.js +0 -1
  361. package/dist/public/assets/_BzDLIQE5.js.br +0 -0
  362. package/dist/public/assets/_BzvCB8DB.js +0 -1
  363. package/dist/public/assets/_C-9WWLQ3.js +0 -1
  364. package/dist/public/assets/_C-_bdY5V.js +0 -1
  365. package/dist/public/assets/_C0zpPwSp.js.br +0 -0
  366. package/dist/public/assets/_C2Tbc73e.js.br +0 -0
  367. package/dist/public/assets/_C3RYgw_5.js.br +0 -0
  368. package/dist/public/assets/_C7P0cxfL.js +0 -1
  369. package/dist/public/assets/_C81AvAMk.js +0 -1
  370. package/dist/public/assets/_C8l-PMHJ.js.br +0 -0
  371. package/dist/public/assets/_CAUoTaA1.js.br +0 -0
  372. package/dist/public/assets/_CCTE_j9L.js.br +0 -0
  373. package/dist/public/assets/_CDXnpAfh.js.br +0 -0
  374. package/dist/public/assets/_CEWoPra5.js +0 -1
  375. package/dist/public/assets/_CGSo9tnY.js.br +0 -0
  376. package/dist/public/assets/_CGsbbcpE.js +0 -1
  377. package/dist/public/assets/_CHuWNcjJ.js.br +0 -0
  378. package/dist/public/assets/_CI0KXyAu.js +0 -1
  379. package/dist/public/assets/_CI8Dmpt-.js.br +0 -0
  380. package/dist/public/assets/_CKmnCHzt.js +0 -1
  381. package/dist/public/assets/_CNY02rQP.js +0 -1
  382. package/dist/public/assets/_COjB6Mds.js.br +0 -0
  383. package/dist/public/assets/_CPGWIVjG.js +0 -1
  384. package/dist/public/assets/_CQ0SDG17.js +0 -1
  385. package/dist/public/assets/_CWmrlUIL.js.br +0 -0
  386. package/dist/public/assets/_CXLLGxAE.js.br +0 -0
  387. package/dist/public/assets/_CXciWQH3.js +0 -1
  388. package/dist/public/assets/_CXjFOElm.js +0 -1
  389. package/dist/public/assets/_CbzlAKJK.js.br +0 -0
  390. package/dist/public/assets/_CcLifUnb.js.br +0 -0
  391. package/dist/public/assets/_CcbgX86v.js.br +0 -0
  392. package/dist/public/assets/_CdDgM-x6.js.br +0 -0
  393. package/dist/public/assets/_Ce53vsUM.js +0 -1
  394. package/dist/public/assets/_CgdBa1Kb.js +0 -1
  395. package/dist/public/assets/_ChxOfm1L.js +0 -1
  396. package/dist/public/assets/_Ck0GxYNQ.js.br +0 -0
  397. package/dist/public/assets/_CmIuIy4h.js +0 -1
  398. package/dist/public/assets/_Cp-ZKt1Y.js.br +0 -0
  399. package/dist/public/assets/_CrEFB_dj.js.br +0 -0
  400. package/dist/public/assets/_CwaUSclh.js +0 -1
  401. package/dist/public/assets/_Cy9eBufF.js +0 -1
  402. package/dist/public/assets/_CynmXPn2.js +0 -1
  403. package/dist/public/assets/_CzBug9-x.js.br +0 -0
  404. package/dist/public/assets/_D-6O7MKA.js.br +0 -0
  405. package/dist/public/assets/_D-JhJZ2C.js +0 -1
  406. package/dist/public/assets/_D-XHmBJj.js.br +0 -0
  407. package/dist/public/assets/_D-neGx47.js +0 -1
  408. package/dist/public/assets/_D5VJGdAr.js +0 -1
  409. package/dist/public/assets/_D6u72i8c.js +0 -1
  410. package/dist/public/assets/_D8tbv6WM.js +0 -1
  411. package/dist/public/assets/_DA6CNMAS.js.br +0 -0
  412. package/dist/public/assets/_DDD7aRxr.js +0 -1
  413. package/dist/public/assets/_DFCbdJTU.js +0 -1
  414. package/dist/public/assets/_DGyB0J_Z.js.br +0 -0
  415. package/dist/public/assets/_DJNoam7G.js.br +0 -0
  416. package/dist/public/assets/_DKgv7Cyq.js.br +0 -0
  417. package/dist/public/assets/_DM2ZsY5Z.js.br +0 -0
  418. package/dist/public/assets/_DO7dqRyj.js.br +0 -0
  419. package/dist/public/assets/_DORBDQxD.js.br +0 -0
  420. package/dist/public/assets/_DOsfhfso.js +0 -1
  421. package/dist/public/assets/_DRC6uiX0.js +0 -1
  422. package/dist/public/assets/_DSWmTo1L.js +0 -1
  423. package/dist/public/assets/_DU8DeX60.js.br +0 -0
  424. package/dist/public/assets/_DUKZkilh.js +0 -1
  425. package/dist/public/assets/_DWCS2CFQ.js.br +0 -0
  426. package/dist/public/assets/_DWnX1Z3a.js +0 -1
  427. package/dist/public/assets/_DX71QHMR.js +0 -1
  428. package/dist/public/assets/_DZ0rqa0h.js.br +0 -0
  429. package/dist/public/assets/_D_TuAhnN.js.br +0 -0
  430. package/dist/public/assets/_D_rLfkXR.js +0 -1
  431. package/dist/public/assets/_DeBbHTQf.js +0 -1
  432. package/dist/public/assets/_Dkm85KJF.js +0 -1
  433. package/dist/public/assets/_Dml0472r.js.br +0 -0
  434. package/dist/public/assets/_DroY8_no.js.br +0 -0
  435. package/dist/public/assets/_DtYahvpQ.js +0 -1
  436. package/dist/public/assets/_DuaSYpQG.js.br +0 -0
  437. package/dist/public/assets/_DuuP0rKI.js.br +0 -0
  438. package/dist/public/assets/_DyFziHLM.js.br +0 -0
  439. package/dist/public/assets/_Dz3s4MY0.js +0 -1
  440. package/dist/public/assets/_Dz3s4MY0.js.br +0 -0
  441. package/dist/public/assets/_DzZaUh6D.js +0 -1
  442. package/dist/public/assets/_DzhUXE8_.js +0 -1
  443. package/dist/public/assets/_GWc0eYhN.js +0 -1
  444. package/dist/public/assets/_H1xilHgC.js.br +0 -0
  445. package/dist/public/assets/_HNyiv6zs.js.br +0 -0
  446. package/dist/public/assets/_HlactPnQ.js.br +0 -0
  447. package/dist/public/assets/_JMrxKBGN.js.br +0 -0
  448. package/dist/public/assets/_JSiyuxRJ.js.br +0 -0
  449. package/dist/public/assets/_JcvJ5ACW.js.br +0 -0
  450. package/dist/public/assets/_L2f5JNlj.js.br +0 -0
  451. package/dist/public/assets/_LrU9RmZE.js +0 -1
  452. package/dist/public/assets/_Mt6ebGGE.js.br +0 -0
  453. package/dist/public/assets/_Owc9jhpW.js +0 -2
  454. package/dist/public/assets/_Owc9jhpW.js.br +0 -0
  455. package/dist/public/assets/_PevhFQ5V.js +0 -1
  456. package/dist/public/assets/_R1tJA-Qg.js +0 -1
  457. package/dist/public/assets/_REcALhmt.js.br +0 -0
  458. package/dist/public/assets/_TZpNJCj6.js.br +0 -0
  459. package/dist/public/assets/_VDsjaeWW.js +0 -1
  460. package/dist/public/assets/_VgS7WPcA.js.br +0 -0
  461. package/dist/public/assets/_WekB6aHl.js +0 -1
  462. package/dist/public/assets/_X4dvLi1w.js +0 -1
  463. package/dist/public/assets/_XXcCKG6W.js +0 -1
  464. package/dist/public/assets/_Y4miPos6.js +0 -1
  465. package/dist/public/assets/_YATrYiFD.js.br +0 -0
  466. package/dist/public/assets/_YC0QGp9j.js.br +0 -0
  467. package/dist/public/assets/_YG1qePV2.js +0 -1
  468. package/dist/public/assets/_Yiwgrm_C.js +0 -1
  469. package/dist/public/assets/__favRwtg.js.br +0 -0
  470. package/dist/public/assets/_b0whjSZe.js +0 -1
  471. package/dist/public/assets/_cw5fHxTz.js +0 -1
  472. package/dist/public/assets/_gSyGU-mq.js +0 -1
  473. package/dist/public/assets/_j5nRBBVa.js +0 -1
  474. package/dist/public/assets/_jFGgKTYj.js.br +0 -0
  475. package/dist/public/assets/_kkbInDpy.js.br +0 -0
  476. package/dist/public/assets/_mrvWutef.js +0 -1
  477. package/dist/public/assets/_nCxsopgT.js +0 -1
  478. package/dist/public/assets/_pwbytP5z.js +0 -1
  479. package/dist/public/assets/_sTT2iThd.js.br +0 -0
  480. package/dist/public/assets/_tGE7SNww.js.br +0 -0
  481. package/dist/public/assets/_veyGCfhb.js +0 -1
  482. package/dist/public/assets/_vfD02BWU.js.br +0 -0
  483. package/dist/public/assets/files-view-_b8IktQV.js +0 -2
  484. package/dist/public/assets/manage-workspace-Bu8_bkKy.js +0 -2
  485. package/dist/public/assets/new-CGbC3Rki.js +0 -1
  486. package/dist/public/assets/new-workspace-BPq4RG6p.js +0 -2
  487. package/dist/public/assets/review-view-Dwph1tIy.js +0 -2
  488. package/dist/public/assets/settings-CGbC3Rki.js +0 -1
  489. package/dist/public/assets/settings-page-DfjJBEV4.js +0 -2
  490. package/dist/public/assets/styles-DmUe5O9c.css +0 -1
  491. package/dist/public/assets/styles-DmUe5O9c.css.br +0 -0
  492. package/dist/public/assets/w-CGbC3Rki.js +0 -1
  493. package/dist/public/assets/w._-BdlGa_yr.js +0 -1
  494. package/dist/public/assets/w._-CGbC3Rki.js +0 -1
  495. package/dist/public/assets/w._-Cq1MaRMF.js +0 -1
@@ -382,7 +382,7 @@ work session send <id> "<text>"|- [--no-reply] [--now|--interrupt]
382
382
  work session unsend <id>
383
383
  Take back what this session queued for <id> that is not typed in yet:
384
384
  a message that went in stays in its turn (send a correction instead).
385
- work session reopen <id> [--agent <id>] [--now]
385
+ work session reopen <id> [--agent <id>] [--now] [--team]
386
386
  Start a session again on its own conversation, where its CLI can resume
387
387
  one (Claude, Codex): one closed — by its lead's close, the user's, or
388
388
  for being done — back under the session that started it, or under this
@@ -392,8 +392,17 @@ work session reopen <id> [--agent <id>] [--now]
392
392
  where the two share their conversations. What is queued for it and what
393
393
  it owes you stay: send it a message to carry it on. A restart ends the
394
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.
395
+ so a running one mid-turn or with jobs moves once it is idle, saying
396
+ what it waits out, unless --now restarts it at once. On this session
397
+ itself (\`reopen $WORK_SESSION_ID --agent claude2\`, a lead moving to
398
+ another account) it always waits for this turn's end, --now or not:
399
+ finish the turn and it moves, its conversation, team and queue kept.
400
+ --team, for a closed lead, brings back with it the sessions closed in
401
+ the same close, each under its own parent again and on its own
402
+ conversation (as --agent too, where that is another instance of its
403
+ CLI), naming any that cannot be reopened; those under one come back
404
+ under the nearest above them that did. It needs no --force: it brings
405
+ back what ran, not more.
397
406
  work session wait [<id>|<group>...] [--any] [--timeout <seconds>]
398
407
  Wait for the replies owed to this session (by those sessions or groups,
399
408
  else by any), printing each as it comes; a reply printed here is not
@@ -777,16 +786,39 @@ work session kill --done
777
786
  case "reopen": {
778
787
  const [id] = rest;
779
788
  if (!id)
780
- ctx.die("usage: work session reopen <id> [--agent <id>] [--now]");
789
+ ctx.die(
790
+ "usage: work session reopen <id> [--agent <id>] [--now] [--team]",
791
+ );
781
792
  const agent = ctx.flag("--agent");
782
793
  const r = await ctx.api.post(`/api/sessions/${id}/reopen${by()}`, {
783
794
  ...(agent ? { agent } : {}),
784
795
  ...(ctx.has("--now") ? { now: true } : {}),
796
+ ...(ctx.has("--team") ? { team: true } : {}),
785
797
  });
786
798
  return ctx.out(r, (r) => {
799
+ if (r.scheduled) {
800
+ const self = r.id === process.env.WORK_SESSION_ID;
801
+ console.log(
802
+ `${r.id} moves to ${r.scheduled} once ${self ? "this turn ends" : `it is idle (it waits out ${r.waits.join(", and ")})`}, on its own conversation, its team and queue kept.`,
803
+ );
804
+ if (self)
805
+ console.log(
806
+ "Finish this turn: say what you were on, then stop. The move starts this conversation again as the new instance.",
807
+ );
808
+ return;
809
+ }
787
810
  console.log(
788
811
  `${r.restarted ? "restarted" : "reopened"} ${r.id} on its conversation as ${r.agent}${r.parent ? `, under ${r.parent}` : ""}`,
789
812
  );
813
+ if (r.team) {
814
+ console.log(
815
+ r.team.reopened.length
816
+ ? `with its team: ${r.team.reopened.join(", ")}`
817
+ : "nothing was closed with it to bring back",
818
+ );
819
+ for (const s of r.team.skipped)
820
+ console.log(` not reopened ${s.id}: ${s.why}`);
821
+ }
790
822
  console.log(
791
823
  `It is at its prompt: \`work session send ${r.id} "…"\` carries it on.`,
792
824
  );
package/bin/cli/topic.mjs CHANGED
@@ -148,9 +148,56 @@ async function context(ctx, fresh) {
148
148
  dir: path.join(ws.path, r.worktree),
149
149
  prs: prsOf.get(r.full_name) || [],
150
150
  }));
151
+ await withOlderPrs(ctx, ws, repos, foreign);
151
152
  return { ws, repos, foreign };
152
153
  }
153
154
 
155
+ /** The PRs the workspace's search no longer holds, for the topics that
156
+ * point at one. That search keeps only its latest finished PRs, so a topic
157
+ * squash-merged long ago read as unmerged work for good. Its tell: pushed
158
+ * once (an upstream recorded) and its copy on origin gone, which is how a
159
+ * merged PR's branch ends when GitHub deletes it, while a topic never
160
+ * pushed (most of a team's) asks nothing. Those few are asked for by name,
161
+ * in one request, and added to the repo's list. */
162
+ async function withOlderPrs(ctx, ws, repos, foreign) {
163
+ const heads = new Set();
164
+ for (const repo of repos) {
165
+ if (!fs.existsSync(repo.dir)) continue;
166
+ const pushed = git(
167
+ repo.dir,
168
+ [
169
+ "config",
170
+ "--get-regexp",
171
+ `^branch\\.${ws.branch.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}-.*\\.remote$`,
172
+ ],
173
+ { allowFail: true },
174
+ ).out;
175
+ for (const line of pushed.split("\n")) {
176
+ const branch = line.match(/^branch\.(.+)\.remote /)?.[1];
177
+ if (
178
+ branch &&
179
+ owns(branch, ws.branch, foreign) &&
180
+ !prFor(repo, branch) &&
181
+ oid(repo.dir, `refs/heads/${branch}`) &&
182
+ !oid(repo.dir, `refs/remotes/origin/${branch}`)
183
+ )
184
+ heads.add(branch);
185
+ }
186
+ }
187
+ if (!heads.size) return;
188
+ const found = await ctx.api
189
+ .get(
190
+ `/api/workspaces/${ws.id}/prs?heads=${encodeURIComponent([...heads].join(","))}`,
191
+ )
192
+ .catch(() => null);
193
+ for (const r of found?.repos || []) {
194
+ const repo = repos.find((x) => x.full_name === r.full_name);
195
+ if (!repo) continue;
196
+ const have = new Set(repo.prs.map((p) => p.number));
197
+ repo.prs.push(...(r.prs || []).filter((p) => !have.has(p.number)));
198
+ }
199
+ }
200
+
154
201
  const topicDir = (ws, name, repo) =>
155
202
  path.join(ws.path, ".worktrees", name, repo.worktree);
156
203
 
@@ -1,4 +1,4 @@
1
- import { $ as paneJobs, $n as turnSince, B as killSession, Bn as onFinished, D as agentCaller, En as agentPhase, Hn as onTurnEnd, Kn as setExpecting, M as createSession, Mr as agentChoices, Qn as turnSettling, R as getSession, Rr as getSetting, Sn as cleanSummary, Tn as activityOf, Un as onTurnFailed, Vn as onPhaseChange, W as listPanesWithin, Wn as sessionWatched, X as notifySessionsChanged, Xn as summaryOf, Z as onSessionDispose, Zn as turnPhase, _i as get, _n as steerKeys, at as restartSession, gi as db, hi as all, it as reopenable, j as closedSession, jn as lastTypedAt, kn as hookReportedAt, li as httpError, mn as quotesPastes, nt as renameSession, ot as retireSession, pn as interruptKeys, rr as agentLabel, rt as reopenSession, st as sendToSession, tr as agentFamily, z as interruptSession, zr as isKnownAgent } from "./_DK0sGNuL.js";
1
+ import { B as interruptSession, Ci as get, Cn as steerKeys, D as agentCaller, Fn as hookReportedAt, G as listPanesWithin, Gr as isKnownAgent, Jn as onTurnEnd, Kn as onFinished, Ln as lastTypedAt, M as closedTeam, Mn as agentPhase, N as createSession, On as cleanSummary, Q as onSessionDispose, Qn as setExpecting, Rr as agentChoices, Si as db, V as killSession, Wr as getSetting, Xn as sessionWatched, Yn as onTurnFailed, Z as notifySessionsChanged, ar as turnSince, at as reopenSession, bn as quotesPastes, ct as restartPlan, dt as sendToSession, et as paneJobs, hi as httpError, ir as turnSettling, it as renameSession, j as closedSession, jn as activityOf, lr as agentLabel, lt as restartSession, mt as setSwitch, nr as summaryOf, ot as reopenable, qn as onPhaseChange, rr as turnPhase, rt as pendingSwitches, sr as agentFamily, ut as retireSession, xi as all, yn as interruptKeys, z as getSession } from "./_DHaRHB4s.js";
2
2
  //#region src/server/messages.ts
3
3
  var team = {
4
4
  memberGroup: () => null,
@@ -398,17 +398,20 @@ async function pump() {
398
398
  try {
399
399
  for (let i = 0; i < 5; i++) {
400
400
  again = false;
401
+ const switches = pendingSwitches();
401
402
  const queued = all("SELECT DISTINCT to_session AS id FROM session_messages WHERE delivered_at IS NULL").map((r) => r.id).filter((id) => deliverable(id).length);
402
- if (!queued.length) break;
403
+ if (!queued.length && !switches.length) break;
403
404
  const panes = await listPanesWithin(2e3);
404
405
  if (!panes) break;
405
406
  const running = new Set(panes.map((p) => p.id));
406
- for (const id of queued) if (running.has(id)) await deliver(id);
407
+ if (switches.length) await switchWhenIdle(switches, running);
408
+ const moving = new Set(pendingSwitches().map((p) => p.id));
409
+ for (const id of queued) if (running.has(id) && !moving.has(id)) await deliver(id);
407
410
  if (!again) break;
408
411
  }
409
412
  } finally {
410
413
  pumping = false;
411
- const waiting = all("SELECT DISTINCT to_session AS id FROM session_messages WHERE delivered_at IS NULL").some((r) => deliverable(r.id).length);
414
+ const waiting = pendingSwitches().length > 0 || all("SELECT DISTINCT to_session AS id FROM session_messages WHERE delivered_at IS NULL").some((r) => deliverable(r.id).length);
412
415
  if (!retry && waiting) {
413
416
  retry = setTimeout(() => {
414
417
  retry = null;
@@ -509,6 +512,42 @@ async function sendMessage(to, text, opts = {}) {
509
512
  promoted: queued.length
510
513
  };
511
514
  }
515
+ /** What a restart of `id` would end now: its turn, a question to the
516
+ * user, the jobs in its pane. */
517
+ async function busyFor(id) {
518
+ const phase = turnPhase(id);
519
+ const jobs = await paneJobs(id);
520
+ return [phase === "waiting" ? "it waits on the user" : (phase || turnSettling(id)) && "its turn is under way", jobs.length && `its pane still runs ${jobs.join("; ")}`].filter((w) => !!w);
521
+ }
522
+ /** Moves each session waiting to (`switch_to`) once a restart ends nothing:
523
+ * its turn's end settled, no question, no job in its pane, nobody typing
524
+ * in it, nothing being typed in. One whose pane is gone is idle already.
525
+ * What is queued for it waits for the move (`pump`), so the new CLI takes
526
+ * it rather than the old one starting a turn the move would end. */
527
+ async function switchWhenIdle(switches, running) {
528
+ for (const { id, switch_to } of switches) {
529
+ if (delivering.has(id)) continue;
530
+ if (running.has(id)) {
531
+ if (turnPhase(id) || turnSettling(id)) continue;
532
+ if (Date.now() - lastTypedAt(id) < TYPING_QUIET_MS) continue;
533
+ if ((await paneJobs(id)).length) continue;
534
+ }
535
+ delivering.add(id);
536
+ try {
537
+ dropHold(id);
538
+ steered.delete(id);
539
+ await restartSession(id, switch_to);
540
+ failedTold.delete(id);
541
+ startedAt.set(id, Date.now());
542
+ console.log(`[work] ${id} moved to ${switch_to}`);
543
+ } catch (err) {
544
+ setSwitch(id, null);
545
+ console.warn(`[work] ${id} could not move to ${switch_to}: ${err.message}`);
546
+ } finally {
547
+ delivering.delete(id);
548
+ }
549
+ }
550
+ }
512
551
  /** Start `id` again on its own conversation (`work session reopen`, a
513
552
  * message to one closed for being done): one closed, its row back
514
553
  * (`reopenSession`), under `by` when the session that started it is gone;
@@ -519,11 +558,20 @@ async function sendMessage(to, text, opts = {}) {
519
558
  * send meanwhile queues behind this rather than starting the CLI afresh. */
520
559
  async function reopen(id, opts = {}) {
521
560
  if (delivering.has(id)) throw httpError(409, `${id} is being started or typed into: try again`);
522
- if (getSession(id) && !opts.now) {
523
- const phase = turnPhase(id);
524
- const jobs = await paneJobs(id);
525
- const busy = [phase === "waiting" ? "it waits on the user" : (phase || turnSettling(id)) && "its turn is under way", jobs.length && `its pane still runs ${jobs.join("; ")}`].filter(Boolean);
526
- if (busy.length) throw httpError(409, `${id} is busy: ${busy.join(", and ")}. Restarting its CLI would end that: reopen it once it is idle, or pass --now to restart it anyway`);
561
+ if (getSession(id)) {
562
+ const { next } = restartPlan(id, opts.agent);
563
+ const self = !!opts.by && opts.by === id;
564
+ const busy = self ? [] : await busyFor(id);
565
+ if (self || busy.length && !opts.now) {
566
+ setSwitch(id, next);
567
+ kick();
568
+ return {
569
+ session: getSession(id),
570
+ restarted: false,
571
+ scheduled: next,
572
+ waits: self ? ["this turn's end"] : busy
573
+ };
574
+ }
527
575
  }
528
576
  if (delivering.has(id)) throw httpError(409, `${id} is being started or typed into: try again`);
529
577
  delivering.add(id);
@@ -541,13 +589,54 @@ async function reopen(id, opts = {}) {
541
589
  startedAt.set(id, Date.now());
542
590
  return {
543
591
  session,
544
- restarted: !!live
592
+ restarted: !!live,
593
+ scheduled: null,
594
+ waits: []
545
595
  };
546
596
  } finally {
547
597
  delivering.delete(id);
548
598
  kick();
549
599
  }
550
600
  }
601
+ /** A closed lead started again with the sessions closed with it (`work
602
+ * session reopen --team`, `closedTeam`), each on its own conversation and
603
+ * under its own parent again, as `agent` too where that is another
604
+ * instance of the member's own CLI (a team moved from one account to
605
+ * another). One that cannot be is skipped, saying why, and those under it
606
+ * come back under the nearest above them that did. No session cap: it
607
+ * brings back what ran, not more. */
608
+ async function reopenTeam(id, opts = {}) {
609
+ if (getSession(id)) throw httpError(409, `${id} is running: --team reopens a closed lead with the sessions closed with it, and a running one has its team`);
610
+ if (!closedSession(id)) throw httpError(404, `no session ${id}`);
611
+ const team = closedTeam(id);
612
+ const lead = await reopen(id, opts);
613
+ const reopened = [];
614
+ const skipped = [];
615
+ const back = /* @__PURE__ */ new Map([[id, id]]);
616
+ for (const m of team) {
617
+ const under = back.get(m.parent_id) ?? id;
618
+ const sameCli = !!opts.agent && agentFamily(opts.agent) === agentFamily(m.agent);
619
+ try {
620
+ await reopen(m.id, {
621
+ agent: sameCli ? opts.agent : void 0,
622
+ by: under
623
+ });
624
+ reopened.push(m.id);
625
+ back.set(m.id, m.id);
626
+ } catch (err) {
627
+ skipped.push({
628
+ id: m.id,
629
+ why: err instanceof Error ? err.message : String(err)
630
+ });
631
+ back.set(m.id, under);
632
+ }
633
+ }
634
+ return {
635
+ ...lead,
636
+ reopened,
637
+ skipped
638
+ };
639
+ }
551
640
  /** `asker` no longer wants what `to` owes it (`work session forget`): its
552
641
  * messages in `to`'s turn stop wanting a reply, so that turn's end answers
553
642
  * nobody, and its messages still queued go in wanting none. A reply `to`
@@ -1447,4 +1536,4 @@ function startTeam() {
1447
1536
  kickPool();
1448
1537
  }
1449
1538
  //#endregion
1450
- export { takeReplies as C, startMessages as S, messageLog as _, createGroup as a, sendMessage as b, kickPool as c, retryMember as d, skipMember as f, holdReply as g, teamsOf as h, closeFinished as i, memberWorkspace as l, teamOf as m, closeBlockers as n, forget as o, startTeam as p, closeDone as r, keepSession as s, clearGroup as t, retire as u, messageStates as v, withdraw as w, sessionGone as x, reopen as y };
1539
+ export { startMessages as C, sessionGone as S, withdraw as T, messageLog as _, createGroup as a, reopenTeam as b, kickPool as c, retryMember as d, skipMember as f, holdReply as g, teamsOf as h, closeFinished as i, memberWorkspace as l, teamOf as m, closeBlockers as n, forget as o, startTeam as p, closeDone as r, keepSession as s, clearGroup as t, retire as u, messageStates as v, takeReplies as w, sendMessage as x, reopen as y };
@@ -0,0 +1,2 @@
1
+ import { Z as notifySessionsChanged } from "./_DHaRHB4s.js";
2
+ export { notifySessionsChanged };
@@ -32,46 +32,46 @@ var iconSize = {
32
32
  xl: 18
33
33
  };
34
34
  var mobile = "screen and (max-width: 899px) and (pointer: coarse), screen and (max-width: 899px) and (pointer: none)";
35
- var glyphBadgeNum = "_G _F";
35
+ var glyphBadgeNum = "_P _O";
36
36
  var usageInk = {
37
- ok: "_H",
38
- mid: "_I",
39
- warm: "_J",
40
- hot: "_K"
37
+ ok: "_Q",
38
+ mid: "_R",
39
+ warm: "_S",
40
+ hot: "_T"
41
41
  };
42
42
  var usageFill = {
43
- ok: "_L",
44
- mid: "_M",
45
- warm: "_N",
46
- hot: "_O"
43
+ ok: "_U",
44
+ mid: "_V",
45
+ warm: "_W",
46
+ hot: "_X"
47
47
  };
48
48
  var prTone = {
49
- open: "_P",
50
- draft: "_Q",
51
- merged: "_R",
52
- closed: "_S"
49
+ open: "_Y",
50
+ draft: "_Z",
51
+ merged: "_0",
52
+ closed: "_1"
53
53
  };
54
54
  var phaseIcon = {
55
- working: "_5 _4",
56
- waiting: "_6 _4",
57
- idle: "_7 _4",
58
- off: "_8 _4"
55
+ working: "_bd _bc",
56
+ waiting: "_be _bc",
57
+ idle: "_bf _bc",
58
+ off: "_bg _bc"
59
59
  };
60
- var btnSm = "_be _z";
61
- var btnLg = "_bf _z";
60
+ var btnSm = "_bn _I";
61
+ var btnLg = "_bo _I";
62
62
  var tone = {
63
- accent: "_bj",
64
- ok: "_bk",
65
- warn: "_bl",
66
- danger: "_bm",
67
- merged: "_bn",
68
- closed: "_bo"
63
+ accent: "_bs",
64
+ ok: "_bt",
65
+ warn: "_bu",
66
+ danger: "_bv",
67
+ merged: "_bw",
68
+ closed: "_bx"
69
69
  };
70
- var inputLg = "_bs _br";
71
- var iconBtnXs = "_bw _u";
72
- var iconBtnRow = "_bx _u";
73
- var iconBtnLg = "_by _u";
74
- var chipBtn = "_bz _u";
70
+ var inputLg = "_bB _bA";
71
+ var iconBtnXs = "_bF _D";
72
+ var iconBtnRow = "_bG _D";
73
+ var iconBtnLg = "_bH _D";
74
+ var chipBtn = "_bI _D";
75
75
  var toastStack = "_f _e";
76
76
  var toastKind = {
77
77
  error: "_j",
@@ -83,101 +83,101 @@ var toastTitle = {
83
83
  warn: "_n",
84
84
  info: "_o"
85
85
  };
86
- var tocDot = "_dp _2";
86
+ var tocDot = "_cN _ba";
87
87
  //#endregion
88
88
  //#region src/tags/settings-agents.css.ts
89
- var agentRow = "_im _dK";
90
- var list$3 = "_dO _c3 _dJ _dM";
91
- var metaChip = "_d2 _bq _bp";
92
- var sectionCount = "_c0 _bg _bh";
93
- var usageNote = "_m8 _bp";
94
- var pop$2 = "_iQ _bE";
95
- var spinner = "_iT _bu __";
96
- var toolLead = "_iB _dX";
97
- var name$4 = "_kl _dX";
98
- var desc$1 = "_km _dY";
89
+ var agentRow = "_i9 _dU";
90
+ var list$3 = "_dY _cq _dT _dW";
91
+ var metaChip = "_eb _bz _by";
92
+ var sectionCount = "_cn _bp _bq";
93
+ var usageNote = "_nW _by";
94
+ var pop$2 = "_jS _bN";
95
+ var spinner = "_jV _bD _bi";
96
+ var toolLead = "_jD _d7";
97
+ var name$4 = "_j2 _d7";
98
+ var desc$1 = "_j3 _d8";
99
99
  //#endregion
100
100
  //#region src/tags/lsp-add-dialog.css.ts
101
- var addDlg = "_o1 _cy";
102
- var key$1 = "_oG _oE";
103
- var addTile = "_oI _oE";
104
- var field$2 = "_oT _br";
105
- var keyField = "_oU _oT _br";
106
- var labelField = "_oV _oT _br";
107
- var detailsToggle = "_j5 _X";
108
- var themeSeg = "_jA _bI";
109
- var checkList = "_ie _c1";
101
+ var addDlg = "_oU _cg";
102
+ var key$1 = "_oA _oy";
103
+ var addTile = "_oC _oy";
104
+ var field$2 = "_oN _bA";
105
+ var keyField = "_oO _oN _bA";
106
+ var labelField = "_oP _oN _bA";
107
+ var detailsToggle = "_e_ _6";
108
+ var themeSeg = "_eF _bR";
109
+ var checkList = "_jr _co";
110
110
  //#endregion
111
111
  //#region src/tags/prompt-dialog.css.ts
112
- var promptDlg = "_dh _cy";
113
- var item$1 = "_b0 _u";
114
- var glance = "_dG _u";
112
+ var promptDlg = "_cz _cg";
113
+ var item$1 = "_bY _D";
114
+ var glance = "_dG _D";
115
115
  //#endregion
116
116
  //#region src/tags/side-nav.css.ts
117
- var iconBtn = "_cC _u";
118
- var settingsDot = "_cD _bH";
119
- var notifyBtn = "_cI _u";
117
+ var iconBtn = "_dv _D";
118
+ var settingsDot = "_dw _bQ";
119
+ var notifyBtn = "_dB _D";
120
120
  //#endregion
121
121
  //#region src/styles/session-pop.css.ts
122
- var sessionPop = "_cV _bE";
123
- var sessionPopBtn = "_cW _bb";
124
- var wsBtn = "_ff _bb";
125
- var rowIcon = "_fh _bw _u";
126
- var prChip = "_kX _D _kN";
122
+ var sessionPop = "_dD _bN";
123
+ var sessionPopBtn = "_dE _bk";
124
+ var wsBtn = "_fo _bk";
125
+ var rowIcon = "_fq _bF _D";
126
+ var prChip = "_kX _M _kR";
127
127
  //#endregion
128
128
  //#region src/tags/port-chip.css.ts
129
- var port = "_ok _D _kN";
129
+ var port = "_o0 _M _kR";
130
130
  var depth = {
131
- "1": "_jf",
132
- "2": "_jg",
133
- "3": "_jh"
131
+ "1": "_l4",
132
+ "2": "_l5",
133
+ "3": "_l6"
134
134
  };
135
- var open = "_jn _bb";
136
- var action = "_js _bz _u";
137
- var toggle = "_d7 _X";
138
- var fold = "_d8 _dL";
135
+ var open = "_mb _bk";
136
+ var action = "_mg _bI _D";
137
+ var toggle = "_fF _6";
138
+ var fold = "_fG _dV";
139
139
  var statusOf = {
140
- queued: "_lE",
141
- starting: "_lF",
142
- working: "_lG",
143
- waiting: "_lH",
144
- idle: "_lI",
145
- done: "_lJ",
146
- closed: "_lK"
140
+ queued: "_mQ",
141
+ starting: "_mR",
142
+ working: "_mS",
143
+ waiting: "_mT",
144
+ idle: "_mU",
145
+ done: "_mV",
146
+ closed: "_mW"
147
147
  };
148
- var item = "_i5 _bb";
149
- var menu = "_n7 _cV _bE";
150
- var menuItem = "_n9 _bb";
151
- var findBtn$1 = "_fJ _fu _bx _u";
152
- var tool = "_fu _bx _u";
153
- var heldRefresh = "_fC _D";
154
- var pop$1 = "_m0 _cV _bE";
155
- var fileFilter = "_o7 _w";
156
- var findInput = "_hm _w";
157
- var keybarIconBtn = "_hv _bz _u";
158
- var input = "_b5 _w";
159
- var group = "_b8 _X";
160
- var hint$1 = "_ns _bg _U";
161
- var sheetDir = "_nJ _bG";
162
- var upBtn = "_gE _bx _u";
163
- var findBtn = "_gI _fu _bx _u";
164
- var goBtn = "_gJ _fu _bx _u";
165
- var note = "_nQ _bp";
148
+ var item = "_m_ _bk";
149
+ var menu = "_ki _dD _bN";
150
+ var menuItem = "_kk _bk";
151
+ var findBtn$1 = "_g4 _gP _bG _D";
152
+ var tool = "_gP _bG _D";
153
+ var heldRefresh = "_gX _M";
154
+ var pop$1 = "_le _dD _bN";
155
+ var fileFilter = "_pb _F";
156
+ var findInput = "_er _F";
157
+ var keybarIconBtn = "_eA _bI _D";
158
+ var input = "_b5 _F";
159
+ var group = "_b8 _6";
160
+ var hint$1 = "_nl _bp _3";
161
+ var sheetDir = "_on _bP";
162
+ var upBtn = "_hU _bG _D";
163
+ var findBtn = "_hY _gP _bG _D";
164
+ var goBtn = "_hZ _gP _bG _D";
165
+ var note = "_mm _by";
166
166
  //#endregion
167
167
  //#region src/tags/manage-workspace.css.ts
168
- var procCmd = "_eH _dX";
169
- var factCopy = "_eO _bz _u";
170
- var resultRow = "_kv _bb";
171
- var resultBranch = "_kw _d2 _bq _bp _bw _u";
172
- var urlAction = "_kx _d2 _bq _bp _d3";
173
- var curRow = "_eF _dR";
168
+ var procCmd = "_iE _d7";
169
+ var factCopy = "_iL _bI _D";
170
+ var resultRow = "_kC _bk";
171
+ var resultBranch = "_kD _eb _bz _by _bF _D";
172
+ var urlAction = "_kE _eb _bz _by _ec";
173
+ var curRow = "_eh _d1";
174
174
  //#endregion
175
175
  //#region src/tags/join-dialog.css.ts
176
- var dlg = "_lb _cy";
177
- var hint = "_lc _bp";
178
- var kbtn = "_cp _by _u";
179
- var repeat = "_cs _cr";
180
- var dpadUser = "_cv _cr";
181
- var dpadEsc = "_cw _cr";
176
+ var dlg = "_nC _cg";
177
+ var hint = "_nD _by";
178
+ var kbtn = "_dc _bH _D";
179
+ var repeat = "_df _de";
180
+ var dpadUser = "_di _de";
181
+ var dpadEsc = "_dj _de";
182
182
  //#endregion
183
183
  export { field$2 as $, item as A, usageInk as At, wsBtn as B, fileFilter as C, iconBtnRow as Ct, findBtn$1 as D, prTone as Dt, tool as E, phaseIcon as Et, depth as F, settingsDot as G, sessionPopBtn as H, open as I, promptDlg as J, glance as K, port as L, fold as M, iconSize as Mt, toggle as N, mobile as Nt, menu as O, tone as Ot, action as P, sans as Pt, addTile as Q, prChip as R, keybarIconBtn as S, iconBtnLg as St, heldRefresh as T, inputLg as Tt, iconBtn as U, sessionPop as V, notifyBtn as W, themeSeg as X, checkList as Y, detailsToggle as Z, sheetDir as _, toastTitle as _t, dlg as a, name$4 as at, input as b, chipBtn as bt, resultBranch as c, spinner as ct, factCopy as d, list$3 as dt, key$1 as et, procCmd as f, metaChip as ft, upBtn as g, toastStack as gt, goBtn as h, toastKind as ht, repeat as i, desc$1 as it, statusOf as j, color as jt, menuItem as k, usageFill as kt, resultRow as l, usageNote as lt, findBtn as m, tocDot as mt, dpadUser as n, labelField as nt, hint as o, toolLead as ot, note as p, agentRow as pt, item$1 as q, kbtn as r, addDlg as rt, curRow as s, pop$2 as st, dpadEsc as t, keyField as tt, urlAction as u, sectionCount as ut, hint$1 as v, btnLg as vt, pop$1 as w, iconBtnXs as wt, findInput as x, glyphBadgeNum as xt, group as y, btnSm as yt, rowIcon as z };
@@ -0,0 +1,2 @@
1
+ import { h as teamsOf } from "./_B3z3x0nb.js";
2
+ export { teamsOf };