@dylanpiercey/work 0.2.29 → 0.2.31

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 (485) hide show
  1. package/bin/cli/session.mjs +65 -20
  2. package/dist/{_Dgcl4IXI.js → _CA77e0SL.js} +74 -74
  3. package/dist/_CeTAKoPH.js +2 -0
  4. package/dist/{_DQbVrULO.js → _Chg81Eud.js} +102 -15
  5. package/dist/{_cvaVxDgR.js → _DAiB3S3K.js} +110 -20
  6. package/dist/_ENzyVrzA.js +2 -0
  7. package/dist/index.mjs +708 -702
  8. package/dist/public/assets/{_C3t6vaz9.js → _0rnsYyHI.js} +1 -1
  9. package/dist/public/assets/_0rnsYyHI.js.br +0 -0
  10. package/dist/public/assets/_1eDP5ScE.js +1 -0
  11. package/dist/public/assets/{_CGMMMRN0.js → _1uK9Q0wK.js} +1 -1
  12. package/dist/public/assets/_1uK9Q0wK.js.br +0 -0
  13. package/dist/public/assets/_2peNM1Yj.js +1 -0
  14. package/dist/public/assets/{_Ccllh0vX.js → _2ruYWNaq.js} +1 -1
  15. package/dist/public/assets/_2ruYWNaq.js.br +0 -0
  16. package/dist/public/assets/_3f3osMee.js +1 -0
  17. package/dist/public/assets/_4kSAouhv.js +1 -0
  18. package/dist/public/assets/{_Dy30P2NB.js → _5Brh_Zvr.js} +1 -1
  19. package/dist/public/assets/_5Brh_Zvr.js.br +0 -0
  20. package/dist/public/assets/{_B6s4hDj-.js → _7pBUqbhd.js} +1 -1
  21. package/dist/public/assets/_7pBUqbhd.js.br +0 -0
  22. package/dist/public/assets/{_CBaoo_Ot.js → _B-SN89sj.js} +1 -1
  23. package/dist/public/assets/_B-SN89sj.js.br +0 -0
  24. package/dist/public/assets/{_BoyCK8R8.js → _B-VWoq1V.js} +1 -1
  25. package/dist/public/assets/_B-VWoq1V.js.br +0 -0
  26. package/dist/public/assets/{_BaFjyZ6N.js → _B-hClvma.js} +1 -1
  27. package/dist/public/assets/_B-hClvma.js.br +0 -0
  28. package/dist/public/assets/{_09V6rMXz.js → _B4IcwtuQ.js} +1 -1
  29. package/dist/public/assets/_B4IcwtuQ.js.br +0 -0
  30. package/dist/public/assets/{_Ckl0EUD5.js → _B59ZdJKm.js} +6 -6
  31. package/dist/public/assets/_B59ZdJKm.js.br +0 -0
  32. package/dist/public/assets/_B5khveul.js +1 -0
  33. package/dist/public/assets/_B6FEkYOr.js +1 -0
  34. package/dist/public/assets/_B7NvboO3.js +1 -0
  35. package/dist/public/assets/_B8EMl0L3.js +1 -0
  36. package/dist/public/assets/{_DiJwfnvW.js → _BAf76HH-.js} +1 -1
  37. package/dist/public/assets/_BAf76HH-.js.br +0 -0
  38. package/dist/public/assets/{_DyZ2PJ8P.js → _BBatSKft.js} +1 -1
  39. package/dist/public/assets/_BBatSKft.js.br +0 -0
  40. package/dist/public/assets/_BCZxwRvm.js +1 -0
  41. package/dist/public/assets/{_CKX1CX1X.js → _BFfJAyhC.js} +1 -1
  42. package/dist/public/assets/_BFfJAyhC.js.br +0 -0
  43. package/dist/public/assets/{_CN9dOhkR.js → _BJ8djIKJ.js} +1 -1
  44. package/dist/public/assets/_BJ8djIKJ.js.br +0 -0
  45. package/dist/public/assets/{_r2-rm8jK.js → _BJrNQH9o.js} +1 -1
  46. package/dist/public/assets/_BJrNQH9o.js.br +0 -0
  47. package/dist/public/assets/{_DB4Nu6U4.js → _BMviJ0DM.js} +1 -1
  48. package/dist/public/assets/_BMviJ0DM.js.br +0 -0
  49. package/dist/public/assets/_BNt-6zu7.js +1 -0
  50. package/dist/public/assets/{_BNfVk7Ln.js → _BQB3Z-QZ.js} +7 -7
  51. package/dist/public/assets/_BQB3Z-QZ.js.br +0 -0
  52. package/dist/public/assets/{_DQPvHSlR.js → _BTRpsI2L.js} +1 -1
  53. package/dist/public/assets/_BTRpsI2L.js.br +0 -0
  54. package/dist/public/assets/{_BIxNqHBZ.js → _BTltsvZf.js} +1 -1
  55. package/dist/public/assets/_BV8SbpAo.js +1 -0
  56. package/dist/public/assets/_BVHm9EAP.js +1 -0
  57. package/dist/public/assets/{_Cel834Vg.js → _BXEDcE2U.js} +1 -1
  58. package/dist/public/assets/_BXEDcE2U.js.br +0 -0
  59. package/dist/public/assets/_BY8bAaOw.js +1 -0
  60. package/dist/public/assets/_BYRnv9Je.js +1 -0
  61. package/dist/public/assets/{_D9D7iaPq.js → _BYjUw_Ai.js} +1 -1
  62. package/dist/public/assets/_BYjUw_Ai.js.br +0 -0
  63. package/dist/public/assets/{_BSL42K7X.js → _BZMjGBO4.js} +1 -1
  64. package/dist/public/assets/_BZMjGBO4.js.br +0 -0
  65. package/dist/public/assets/_Beix8mGH.js +1 -0
  66. package/dist/public/assets/{_C2DZFbPd.js → _BejKM778.js} +1 -1
  67. package/dist/public/assets/_BejKM778.js.br +0 -0
  68. package/dist/public/assets/{_DHp283GE.js → _BgeOkNxm.js} +1 -1
  69. package/dist/public/assets/_BgeOkNxm.js.br +0 -0
  70. package/dist/public/assets/{_C-QoG-Y1.js → _BhzXC219.js} +1 -1
  71. package/dist/public/assets/_BhzXC219.js.br +0 -0
  72. package/dist/public/assets/_BkCea_EM.js +1 -0
  73. package/dist/public/assets/{_BvaDtac_.js → _Bl-Pp_G_.js} +1 -1
  74. package/dist/public/assets/_Bl-Pp_G_.js.br +0 -0
  75. package/dist/public/assets/_BnksHAq4.js +1 -0
  76. package/dist/public/assets/{_D_Ap1bE6.js → _BoNDFwmR.js} +1 -1
  77. package/dist/public/assets/_BoNDFwmR.js.br +0 -0
  78. package/dist/public/assets/_BopwbsBr.js +1 -0
  79. package/dist/public/assets/{_CvdRYJ_c.js → _BqW1-XCK.js} +1 -1
  80. package/dist/public/assets/_BqW1-XCK.js.br +0 -0
  81. package/dist/public/assets/{_BD7vc-oj.js → _Bt6N184Q.js} +1 -1
  82. package/dist/public/assets/_Bt6N184Q.js.br +0 -0
  83. package/dist/public/assets/{_D85Y7a83.js → _BvS-s-Ak.js} +1 -1
  84. package/dist/public/assets/_BvS-s-Ak.js.br +0 -0
  85. package/dist/public/assets/_Bwe3-rHW.js +1 -0
  86. package/dist/public/assets/_BwfX93ne.js +1 -0
  87. package/dist/public/assets/{_DTQjjI0s.js → _BwrGwOtQ.js} +1 -1
  88. package/dist/public/assets/_BwrGwOtQ.js.br +0 -0
  89. package/dist/public/assets/{_LSN-vb5h.js → _ByHMLHd2.js} +1 -1
  90. package/dist/public/assets/_ByHMLHd2.js.br +0 -0
  91. package/dist/public/assets/{_C5Zx8Wi7.js → _BysHejwU.js} +1 -1
  92. package/dist/public/assets/_BysHejwU.js.br +0 -0
  93. package/dist/public/assets/{_BKXsx3Mt.js → _C0AbI0Il.js} +1 -1
  94. package/dist/public/assets/_C0fY9kwL.js +1 -0
  95. package/dist/public/assets/_C1S6MokH.js +1 -0
  96. package/dist/public/assets/{_JNKEmcfY.js → _C2lFkReD.js} +1 -1
  97. package/dist/public/assets/_C2lFkReD.js.br +0 -0
  98. package/dist/public/assets/{_DuH-y6JT.js → _C3WUC9vT.js} +2 -2
  99. package/dist/public/assets/_C3WUC9vT.js.br +0 -0
  100. package/dist/public/assets/_C4weUVYB.js +1 -0
  101. package/dist/public/assets/{_C9xqB77n.js → _C4wrw-v3.js} +2 -2
  102. package/dist/public/assets/_C4wrw-v3.js.br +0 -0
  103. package/dist/public/assets/{_CC8X6sBL.js → _C79dBOr8.js} +1 -1
  104. package/dist/public/assets/_C79dBOr8.js.br +0 -0
  105. package/dist/public/assets/{_XaX4L8DJ.js → _C9SpOt0M.js} +1 -1
  106. package/dist/public/assets/_C9SpOt0M.js.br +0 -0
  107. package/dist/public/assets/_CA21SvG4.js +1 -0
  108. package/dist/public/assets/_CBOI_e-y.js +1 -0
  109. package/dist/public/assets/{_DkyjqG9e.js → _CCpU69yd.js} +1 -1
  110. package/dist/public/assets/_CCpU69yd.js.br +0 -0
  111. package/dist/public/assets/_CDZQJZ0K.js +1 -0
  112. package/dist/public/assets/_CFyLnS9R.js +1 -0
  113. package/dist/public/assets/{_BVtrvOSe.js → _CHlAgoCR.js} +1 -1
  114. package/dist/public/assets/_CHlAgoCR.js.br +0 -0
  115. package/dist/public/assets/_CKkrzL50.js +1 -0
  116. package/dist/public/assets/_CMoQIkwL.js +1 -0
  117. package/dist/public/assets/_CNGQVe3D.js +1 -0
  118. package/dist/public/assets/{_BXUvWr3-.js → _CNYvV0qf.js} +1 -1
  119. package/dist/public/assets/_CNYvV0qf.js.br +0 -0
  120. package/dist/public/assets/_CNwPidub.js +1 -0
  121. package/dist/public/assets/_CQPb5V54.js +1 -0
  122. package/dist/public/assets/{_RMFadXyd.js → _CQ_0m9ig.js} +1 -1
  123. package/dist/public/assets/_CT-h8XVG.js +1 -0
  124. package/dist/public/assets/{_EqF1UvUW.js → _CXhTpNMq.js} +1 -1
  125. package/dist/public/assets/_CXhTpNMq.js.br +0 -0
  126. package/dist/public/assets/_CXqTBYmH.js +1 -0
  127. package/dist/public/assets/_CZKoEEqo.js +1 -0
  128. package/dist/public/assets/{_D6GoSbE9.js → _CZbUQw9C.js} +1 -1
  129. package/dist/public/assets/_CZbUQw9C.js.br +0 -0
  130. package/dist/public/assets/{_DQ3w0yT_.js → _C_UWrVF7.js} +1 -1
  131. package/dist/public/assets/_C_UWrVF7.js.br +0 -0
  132. package/dist/public/assets/{_CZf-29Hc.js → _Cb58DeV_.js} +1 -1
  133. package/dist/public/assets/_Cb58DeV_.js.br +0 -0
  134. package/dist/public/assets/{_DekTDKVM.js → _CbfTm4zs.js} +1 -1
  135. package/dist/public/assets/_CbfTm4zs.js.br +0 -0
  136. package/dist/public/assets/_CbpJq7Cx.js +1 -0
  137. package/dist/public/assets/_CcbWawiw.js +1 -0
  138. package/dist/public/assets/_CjBg7wda.js +1 -0
  139. package/dist/public/assets/_CmboD-Ri.js +1 -0
  140. package/dist/public/assets/{_kjnvW1ca.js → _CpBXqtOP.js} +1 -1
  141. package/dist/public/assets/_CpBXqtOP.js.br +0 -0
  142. package/dist/public/assets/_CpOIuBE_.js +1 -0
  143. package/dist/public/assets/{_DTyNE-ha.js → _CwSQdBS6.js} +1 -1
  144. package/dist/public/assets/_CwSQdBS6.js.br +0 -0
  145. package/dist/public/assets/{_B7yMFKTT.js → _CwfNvFGG.js} +1 -1
  146. package/dist/public/assets/_CwfNvFGG.js.br +0 -0
  147. package/dist/public/assets/{_Bg1HbBGf.js → _Cx4rIgNV.js} +1 -1
  148. package/dist/public/assets/_Cx4rIgNV.js.br +0 -0
  149. package/dist/public/assets/_CysaEUU6.js +1 -0
  150. package/dist/public/assets/{_De44Kinm.js → _Cz0ftG76.js} +1 -1
  151. package/dist/public/assets/_Cz0ftG76.js.br +0 -0
  152. package/dist/public/assets/_D-uJogtY.js +1 -0
  153. package/dist/public/assets/{_B4KqC7bv.js → _D07U4iNq.js} +1 -1
  154. package/dist/public/assets/_D07U4iNq.js.br +0 -0
  155. package/dist/public/assets/{_uFhCDdP2.js → _D093UEmp.js} +1 -1
  156. package/dist/public/assets/_D093UEmp.js.br +0 -0
  157. package/dist/public/assets/_D2DhJdG9.js +1 -0
  158. package/dist/public/assets/{_CmY_mO0I.js → _D40L3OPU.js} +2 -2
  159. package/dist/public/assets/_D40L3OPU.js.br +0 -0
  160. package/dist/public/assets/{_CWDRfuqt.js → _D4pDHMa2.js} +1 -1
  161. package/dist/public/assets/_D5he3BaK.js +1 -0
  162. package/dist/public/assets/_D6k6GKOI.js +1 -0
  163. package/dist/public/assets/{_C87fJHBJ.js → _D717kl7o.js} +1 -1
  164. package/dist/public/assets/_D717kl7o.js.br +0 -0
  165. package/dist/public/assets/{_DwlEN8jO.js → _D7ltmBLR.js} +1 -1
  166. package/dist/public/assets/_D7ltmBLR.js.br +0 -0
  167. package/dist/public/assets/_D9di9kDH.js +1 -0
  168. package/dist/public/assets/{_BWzBkN65.js → _DBe2W8-O.js} +4 -4
  169. package/dist/public/assets/_DBe2W8-O.js.br +0 -0
  170. package/dist/public/assets/_DC-iy23x.js +1 -0
  171. package/dist/public/assets/{_D4DvnfU9.js → _DDeOuJD-.js} +1 -1
  172. package/dist/public/assets/_DDeOuJD-.js.br +0 -0
  173. package/dist/public/assets/{_BjRK-O6i.js → _DHJWYH74.js} +1 -1
  174. package/dist/public/assets/_DHJWYH74.js.br +0 -0
  175. package/dist/public/assets/_DMAw4Lyi.js +1 -0
  176. package/dist/public/assets/_DMBLy2HH.js +1 -0
  177. package/dist/public/assets/_DMSFJWVb.js +1 -0
  178. package/dist/public/assets/_DNg-_1M2.js +1 -0
  179. package/dist/public/assets/{_qeC-hkqh.js → _DNzM33BM.js} +1 -1
  180. package/dist/public/assets/_DNzM33BM.js.br +0 -0
  181. package/dist/public/assets/_DO4NrBF9.js +1 -0
  182. package/dist/public/assets/_DPpLQ4tE.js +1 -0
  183. package/dist/public/assets/{_BdJZauO_.js → _DQgff4Gn.js} +1 -1
  184. package/dist/public/assets/_DQgff4Gn.js.br +0 -0
  185. package/dist/public/assets/{_o3VAcp92.js → _DRc6m4XZ.js} +1 -1
  186. package/dist/public/assets/_DRwc_MVx.js +1 -0
  187. package/dist/public/assets/{_B-59fc2G.js → _DSLhLFM7.js} +1 -1
  188. package/dist/public/assets/_DSLhLFM7.js.br +0 -0
  189. package/dist/public/assets/{_CdD9d7LB.js → _DU7mFuzr.js} +1 -1
  190. package/dist/public/assets/{_DT1q_BOi.js → _DUkq3Fkh.js} +1 -1
  191. package/dist/public/assets/_DUkq3Fkh.js.br +0 -0
  192. package/dist/public/assets/{_BDN1BqyL.js → _DVS06ITa.js} +1 -1
  193. package/dist/public/assets/_DVS06ITa.js.br +0 -0
  194. package/dist/public/assets/{_DBG97rtR.js → _DXd4ss_4.js} +1 -1
  195. package/dist/public/assets/_DXd4ss_4.js.br +0 -0
  196. package/dist/public/assets/_D_CTCMDm.js +1 -0
  197. package/dist/public/assets/{_Drdi4buU.js → _DahC-ZMx.js} +1 -1
  198. package/dist/public/assets/_DahC-ZMx.js.br +0 -0
  199. package/dist/public/assets/{_C2P0Gj8t.js → _DbYh-rH_.js} +1 -1
  200. package/dist/public/assets/_DbYh-rH_.js.br +0 -0
  201. package/dist/public/assets/_Dboomn9r.js +1 -0
  202. package/dist/public/assets/{_C0lGfwfH.js → _DcGXfbHB.js} +5 -5
  203. package/dist/public/assets/_DcGXfbHB.js.br +0 -0
  204. package/dist/public/assets/{_BPQN8Ed2.js → _DcKg5DLB.js} +1 -1
  205. package/dist/public/assets/_DcKg5DLB.js.br +0 -0
  206. package/dist/public/assets/_Ddc3OS7T.js +1 -0
  207. package/dist/public/assets/{_DFctnKCK.js → _De5m6VLY.js} +1 -1
  208. package/dist/public/assets/_De5m6VLY.js.br +0 -0
  209. package/dist/public/assets/{_BVJXx_5V.js → _DfLuwyDz.js} +1 -1
  210. package/dist/public/assets/_DfLuwyDz.js.br +0 -0
  211. package/dist/public/assets/{_uE7Xqg1n.js → _DhFNhsxd.js} +1 -1
  212. package/dist/public/assets/_DhFNhsxd.js.br +0 -0
  213. package/dist/public/assets/_Dhb1mD6_.js +1 -0
  214. package/dist/public/assets/_Dhs1e9m3.js +1 -0
  215. package/dist/public/assets/_DiE_PBz4.js +1 -0
  216. package/dist/public/assets/_DmxLjCSy.js +1 -0
  217. package/dist/public/assets/{_B_pf4NNB.js → _DnWJ85Qh.js} +1 -1
  218. package/dist/public/assets/_DnWJ85Qh.js.br +0 -0
  219. package/dist/public/assets/{_BrqSK6iK.js → _DqMwDw7h.js} +1 -1
  220. package/dist/public/assets/_DqMwDw7h.js.br +0 -0
  221. package/dist/public/assets/{_C-rpsEQE.js → _DrBJzq6u.js} +1 -1
  222. package/dist/public/assets/_DrBJzq6u.js.br +0 -0
  223. package/dist/public/assets/_DsRzKIR4.js +1 -0
  224. package/dist/public/assets/{_BfAMUYPz.js → _Ds_0MUdn.js} +1 -1
  225. package/dist/public/assets/_Ds_0MUdn.js.br +0 -0
  226. package/dist/public/assets/{_AZkH5VDi.js → _DtIYwSAu.js} +1 -1
  227. package/dist/public/assets/_DtIYwSAu.js.br +0 -0
  228. package/dist/public/assets/{_Ds_EvdLA.js → _Dtdu-SAW.js} +1 -1
  229. package/dist/public/assets/_Dua4o0_Y.js +1 -0
  230. package/dist/public/assets/_Dv9heYev.js +1 -0
  231. package/dist/public/assets/{_DchWCM-2.js → _DvAZuKBH.js} +1 -1
  232. package/dist/public/assets/_DvAZuKBH.js.br +0 -0
  233. package/dist/public/assets/{_BnZnTECI.js → _DvRVdiY2.js} +1 -1
  234. package/dist/public/assets/_DvRVdiY2.js.br +0 -0
  235. package/dist/public/assets/_Dvx8paDR.js +1 -0
  236. package/dist/public/assets/_Dz-RbnJ-.js +1 -0
  237. package/dist/public/assets/_DzQMQGLT.js +1 -0
  238. package/dist/public/assets/{_M9dxfvST.js → _Flt76pNp.js} +1 -1
  239. package/dist/public/assets/_Flt76pNp.js.br +0 -0
  240. package/dist/public/assets/{_CBUtRm7T.js → _GthSLQSo.js} +1 -1
  241. package/dist/public/assets/_GthSLQSo.js.br +0 -0
  242. package/dist/public/assets/{_C87psbTs.js → _HycvIJcc.js} +1 -1
  243. package/dist/public/assets/_HycvIJcc.js.br +0 -0
  244. package/dist/public/assets/{_BD3-fcAh.js → _INIMTDcC.js} +1 -1
  245. package/dist/public/assets/_INIMTDcC.js.br +0 -0
  246. package/dist/public/assets/{_Bm7BEDP4.js → _Jg3g4d5X.js} +1 -1
  247. package/dist/public/assets/_Jg3g4d5X.js.br +0 -0
  248. package/dist/public/assets/_JjzRaTO-.js +1 -0
  249. package/dist/public/assets/{_BdOW7TD_.js → _Knh-KlPr.js} +1 -1
  250. package/dist/public/assets/_Knh-KlPr.js.br +0 -0
  251. package/dist/public/assets/_L8HQUaGv.js +1 -0
  252. package/dist/public/assets/{_BjzxTDQt.js → _OfXrZfDI.js} +1 -1
  253. package/dist/public/assets/_OfXrZfDI.js.br +0 -0
  254. package/dist/public/assets/_PP45mXV2.js +1 -0
  255. package/dist/public/assets/{_CIVJt8rO.js → _SOXpla4p.js} +1 -1
  256. package/dist/public/assets/_SOXpla4p.js.br +0 -0
  257. package/dist/public/assets/_Sm7SsPE5.js +1 -0
  258. package/dist/public/assets/_WPgXPz4-.js +1 -0
  259. package/dist/public/assets/{_B3d0-ivx.js → _XM8Yiy8r.js} +1 -1
  260. package/dist/public/assets/_XM8Yiy8r.js.br +0 -0
  261. package/dist/public/assets/{_2Ldh8N3j.js → _XvkPKj7K.js} +1 -1
  262. package/dist/public/assets/_XvkPKj7K.js.br +0 -0
  263. package/dist/public/assets/{_BBxz-nlp.js → _ZhcjtX1A.js} +1 -1
  264. package/dist/public/assets/_ZhcjtX1A.js.br +0 -0
  265. package/dist/public/assets/{_DwsOEzgx.js → _ZsoPLh_l.js} +1 -1
  266. package/dist/public/assets/_ZsoPLh_l.js.br +0 -0
  267. package/dist/public/assets/_cdbntAOz.js +1 -0
  268. package/dist/public/assets/{_BFad43cs.js → _eKTKTYSv.js} +1 -1
  269. package/dist/public/assets/_eKTKTYSv.js.br +0 -0
  270. package/dist/public/assets/{_Bq350ccz.js → _ed-UR7ra.js} +1 -1
  271. package/dist/public/assets/_ed-UR7ra.js.br +0 -0
  272. package/dist/public/assets/_fTBA9st4.js +1 -0
  273. package/dist/public/assets/{_BTnRX2Ox.js → _gSnJYqUy.js} +1 -1
  274. package/dist/public/assets/_gSnJYqUy.js.br +0 -0
  275. package/dist/public/assets/{_IV6gVZT0.js → _jFdvo4ox.js} +1 -1
  276. package/dist/public/assets/_jFdvo4ox.js.br +0 -0
  277. package/dist/public/assets/_jIxOGbpS.js +1 -0
  278. package/dist/public/assets/_k24A354F.js +1 -0
  279. package/dist/public/assets/{_ClTlJPX-.js → _mB2U_1Ib.js} +1 -1
  280. package/dist/public/assets/_mB2U_1Ib.js.br +0 -0
  281. package/dist/public/assets/_rOPBCe78.js +1 -0
  282. package/dist/public/assets/{_CI51OPmm.js → _wj-zTHgJ.js} +1 -1
  283. package/dist/public/assets/_wv5FpqDc.js +1 -0
  284. package/dist/public/assets/files-view-B_w60r7K.js +2 -0
  285. package/dist/public/assets/manage-workspace-Dcg1m2-X.js +2 -0
  286. package/dist/public/assets/new-CVjGWgNu.js +1 -0
  287. package/dist/public/assets/new-workspace-Bd07N_1Y.js +2 -0
  288. package/dist/public/assets/review-view-DR9QJ-Zm.js +2 -0
  289. package/dist/public/assets/settings-CVjGWgNu.js +1 -0
  290. package/dist/public/assets/settings-page-BRbir9Kz.js +2 -0
  291. package/dist/public/assets/styles-BnX1HRpx.css +1 -0
  292. package/dist/public/assets/styles-BnX1HRpx.css.br +0 -0
  293. package/dist/public/assets/w-CVjGWgNu.js +1 -0
  294. package/dist/public/assets/w._-BcgbfmH9.js +1 -0
  295. package/dist/public/assets/w._-CSpClMZD.js +1 -0
  296. package/dist/public/assets/w._-CVjGWgNu.js +1 -0
  297. package/package.json +1 -1
  298. package/dist/_Cg63x2E_.js +0 -2
  299. package/dist/_CkGqrA7b.js +0 -2
  300. package/dist/public/assets/_-mNGJDx4.js +0 -1
  301. package/dist/public/assets/_09V6rMXz.js.br +0 -0
  302. package/dist/public/assets/_1-M5HrxV.js +0 -1
  303. package/dist/public/assets/_2Ldh8N3j.js.br +0 -0
  304. package/dist/public/assets/_4dOGSUKj.js +0 -1
  305. package/dist/public/assets/_5JtCQAFW.js +0 -1
  306. package/dist/public/assets/_86ozSMcA.js +0 -1
  307. package/dist/public/assets/_8N3YzExI.js +0 -1
  308. package/dist/public/assets/_9_X4R12k.js +0 -1
  309. package/dist/public/assets/_AVe1cYkq.js +0 -1
  310. package/dist/public/assets/_AZkH5VDi.js.br +0 -0
  311. package/dist/public/assets/_B-59fc2G.js.br +0 -0
  312. package/dist/public/assets/_B3d0-ivx.js.br +0 -0
  313. package/dist/public/assets/_B3wqVlOb.js +0 -1
  314. package/dist/public/assets/_B4KqC7bv.js.br +0 -0
  315. package/dist/public/assets/_B6s4hDj-.js.br +0 -0
  316. package/dist/public/assets/_B7yMFKTT.js.br +0 -0
  317. package/dist/public/assets/_B9oI_ZQw.js +0 -1
  318. package/dist/public/assets/_BBxz-nlp.js.br +0 -0
  319. package/dist/public/assets/_BD3-fcAh.js.br +0 -0
  320. package/dist/public/assets/_BD7vc-oj.js.br +0 -0
  321. package/dist/public/assets/_BDN1BqyL.js.br +0 -0
  322. package/dist/public/assets/_BFad43cs.js.br +0 -0
  323. package/dist/public/assets/_BHSB0a9y.js +0 -1
  324. package/dist/public/assets/_BIfepPX7.js +0 -1
  325. package/dist/public/assets/_BLg2_OPP.js +0 -1
  326. package/dist/public/assets/_BNfVk7Ln.js.br +0 -0
  327. package/dist/public/assets/_BPQN8Ed2.js.br +0 -0
  328. package/dist/public/assets/_BSL42K7X.js.br +0 -0
  329. package/dist/public/assets/_BTnRX2Ox.js.br +0 -0
  330. package/dist/public/assets/_BUwEFTQs.js +0 -1
  331. package/dist/public/assets/_BVJXx_5V.js.br +0 -0
  332. package/dist/public/assets/_BViN8UkI.js +0 -1
  333. package/dist/public/assets/_BVtrvOSe.js.br +0 -0
  334. package/dist/public/assets/_BWzBkN65.js.br +0 -0
  335. package/dist/public/assets/_BXUvWr3-.js.br +0 -0
  336. package/dist/public/assets/_B_pf4NNB.js.br +0 -0
  337. package/dist/public/assets/_BaFjyZ6N.js.br +0 -0
  338. package/dist/public/assets/_BdJZauO_.js.br +0 -0
  339. package/dist/public/assets/_BdOW7TD_.js.br +0 -0
  340. package/dist/public/assets/_Bej55pMc.js +0 -1
  341. package/dist/public/assets/_BfAMUYPz.js.br +0 -0
  342. package/dist/public/assets/_Bg1HbBGf.js.br +0 -0
  343. package/dist/public/assets/_Bh1p4tTQ.js +0 -1
  344. package/dist/public/assets/_BjRK-O6i.js.br +0 -0
  345. package/dist/public/assets/_BjzxTDQt.js.br +0 -0
  346. package/dist/public/assets/_Bm7BEDP4.js.br +0 -0
  347. package/dist/public/assets/_BnZnTECI.js.br +0 -0
  348. package/dist/public/assets/_BnkQB613.js +0 -1
  349. package/dist/public/assets/_BoyCK8R8.js.br +0 -0
  350. package/dist/public/assets/_BpKfCptj.js +0 -1
  351. package/dist/public/assets/_BpkQvAkB.js +0 -1
  352. package/dist/public/assets/_Bq350ccz.js.br +0 -0
  353. package/dist/public/assets/_BrqSK6iK.js.br +0 -0
  354. package/dist/public/assets/_BtMw49fh.js +0 -1
  355. package/dist/public/assets/_Bu5TbdOg.js +0 -1
  356. package/dist/public/assets/_BvaDtac_.js.br +0 -0
  357. package/dist/public/assets/_BxOI22Z9.js +0 -1
  358. package/dist/public/assets/_C-QoG-Y1.js.br +0 -0
  359. package/dist/public/assets/_C-rpsEQE.js.br +0 -0
  360. package/dist/public/assets/_C0lGfwfH.js.br +0 -0
  361. package/dist/public/assets/_C1j8Notv.js +0 -1
  362. package/dist/public/assets/_C2DZFbPd.js.br +0 -0
  363. package/dist/public/assets/_C2P0Gj8t.js.br +0 -0
  364. package/dist/public/assets/_C3t6vaz9.js.br +0 -0
  365. package/dist/public/assets/_C5Zx8Wi7.js.br +0 -0
  366. package/dist/public/assets/_C87fJHBJ.js.br +0 -0
  367. package/dist/public/assets/_C87psbTs.js.br +0 -0
  368. package/dist/public/assets/_C8Otjsq6.js +0 -1
  369. package/dist/public/assets/_C9Pkf7Dy.js +0 -1
  370. package/dist/public/assets/_C9xqB77n.js.br +0 -0
  371. package/dist/public/assets/_CBUtRm7T.js.br +0 -0
  372. package/dist/public/assets/_CBaoo_Ot.js.br +0 -0
  373. package/dist/public/assets/_CC8X6sBL.js.br +0 -0
  374. package/dist/public/assets/_CD-Nyy0q.js +0 -1
  375. package/dist/public/assets/_CELA8vjH.js +0 -1
  376. package/dist/public/assets/_CF7xvoR9.js +0 -1
  377. package/dist/public/assets/_CGMMMRN0.js.br +0 -0
  378. package/dist/public/assets/_CHH0_fAt.js +0 -1
  379. package/dist/public/assets/_CIVJt8rO.js.br +0 -0
  380. package/dist/public/assets/_CKX1CX1X.js.br +0 -0
  381. package/dist/public/assets/_CL5PEIcw.js +0 -1
  382. package/dist/public/assets/_CMnOnjht.js +0 -1
  383. package/dist/public/assets/_CN9dOhkR.js.br +0 -0
  384. package/dist/public/assets/_COH8-2hR.js +0 -1
  385. package/dist/public/assets/_CV1LYZzU.js +0 -1
  386. package/dist/public/assets/_CVntBfh0.js +0 -1
  387. package/dist/public/assets/_CWNpXddk.js +0 -1
  388. package/dist/public/assets/_CZf-29Hc.js.br +0 -0
  389. package/dist/public/assets/_CcaIHYPh.js +0 -1
  390. package/dist/public/assets/_Ccllh0vX.js.br +0 -0
  391. package/dist/public/assets/_CeZQKzig.js +0 -1
  392. package/dist/public/assets/_Cel834Vg.js.br +0 -0
  393. package/dist/public/assets/_Chry46hi.js +0 -1
  394. package/dist/public/assets/_Ckl0EUD5.js.br +0 -0
  395. package/dist/public/assets/_ClTlJPX-.js.br +0 -0
  396. package/dist/public/assets/_CmY_mO0I.js.br +0 -0
  397. package/dist/public/assets/_CoQcFQgw.js +0 -1
  398. package/dist/public/assets/_CpGueDAK.js +0 -1
  399. package/dist/public/assets/_CpvhcOw6.js +0 -1
  400. package/dist/public/assets/_Cqldd767.js +0 -1
  401. package/dist/public/assets/_CtusPhfQ.js +0 -1
  402. package/dist/public/assets/_CvdRYJ_c.js.br +0 -0
  403. package/dist/public/assets/_D01rLnA8.js +0 -1
  404. package/dist/public/assets/_D0fowFEW.js +0 -1
  405. package/dist/public/assets/_D4DvnfU9.js.br +0 -0
  406. package/dist/public/assets/_D6GoSbE9.js.br +0 -0
  407. package/dist/public/assets/_D85Y7a83.js.br +0 -0
  408. package/dist/public/assets/_D9D7iaPq.js.br +0 -0
  409. package/dist/public/assets/_DB4Nu6U4.js.br +0 -0
  410. package/dist/public/assets/_DBG97rtR.js.br +0 -0
  411. package/dist/public/assets/_DBlBjpmH.js +0 -1
  412. package/dist/public/assets/_DFctnKCK.js.br +0 -0
  413. package/dist/public/assets/_DGkd7WRH.js +0 -1
  414. package/dist/public/assets/_DHp283GE.js.br +0 -0
  415. package/dist/public/assets/_DOnJm8qx.js +0 -1
  416. package/dist/public/assets/_DPuqmI_y.js +0 -1
  417. package/dist/public/assets/_DQ3w0yT_.js.br +0 -0
  418. package/dist/public/assets/_DQPvHSlR.js.br +0 -0
  419. package/dist/public/assets/_DT1q_BOi.js.br +0 -0
  420. package/dist/public/assets/_DTQjjI0s.js.br +0 -0
  421. package/dist/public/assets/_DTyNE-ha.js.br +0 -0
  422. package/dist/public/assets/_DUPmd4_a.js +0 -1
  423. package/dist/public/assets/_DW5mYwY1.js +0 -1
  424. package/dist/public/assets/_DW68RPud.js +0 -1
  425. package/dist/public/assets/_DZm9X-7i.js +0 -1
  426. package/dist/public/assets/_D_Ap1bE6.js.br +0 -0
  427. package/dist/public/assets/_DchWCM-2.js.br +0 -0
  428. package/dist/public/assets/_DcuDxJqD.js +0 -1
  429. package/dist/public/assets/_De44Kinm.js.br +0 -0
  430. package/dist/public/assets/_Debax-3a.js +0 -1
  431. package/dist/public/assets/_DekTDKVM.js.br +0 -0
  432. package/dist/public/assets/_DiJwfnvW.js.br +0 -0
  433. package/dist/public/assets/_DkyjqG9e.js.br +0 -0
  434. package/dist/public/assets/_DlRteSPN.js +0 -1
  435. package/dist/public/assets/_Drdi4buU.js.br +0 -0
  436. package/dist/public/assets/_DuH-y6JT.js.br +0 -0
  437. package/dist/public/assets/_DvVBrYcq.js +0 -1
  438. package/dist/public/assets/_DvsqIVpn.js +0 -1
  439. package/dist/public/assets/_DwlEN8jO.js.br +0 -0
  440. package/dist/public/assets/_DwsOEzgx.js.br +0 -0
  441. package/dist/public/assets/_Dy30P2NB.js.br +0 -0
  442. package/dist/public/assets/_DyZ2PJ8P.js.br +0 -0
  443. package/dist/public/assets/_EqF1UvUW.js.br +0 -0
  444. package/dist/public/assets/_IV6gVZT0.js.br +0 -0
  445. package/dist/public/assets/_JJlyj9UR.js +0 -1
  446. package/dist/public/assets/_JNKEmcfY.js.br +0 -0
  447. package/dist/public/assets/_K-qm51rD.js +0 -1
  448. package/dist/public/assets/_LSN-vb5h.js.br +0 -0
  449. package/dist/public/assets/_M9dxfvST.js.br +0 -0
  450. package/dist/public/assets/_O16UBaq5.js +0 -1
  451. package/dist/public/assets/_OvEzz7e1.js +0 -1
  452. package/dist/public/assets/_Qq3oTKHZ.js +0 -1
  453. package/dist/public/assets/_XaX4L8DJ.js.br +0 -0
  454. package/dist/public/assets/_YjB7hD5x.js +0 -1
  455. package/dist/public/assets/_atbUayxf.js +0 -1
  456. package/dist/public/assets/_bhq40nJh.js +0 -1
  457. package/dist/public/assets/_fQx1DX5s.js +0 -1
  458. package/dist/public/assets/_jUcId35c.js +0 -1
  459. package/dist/public/assets/_kiUqt4qT.js +0 -1
  460. package/dist/public/assets/_kjnvW1ca.js.br +0 -0
  461. package/dist/public/assets/_prTeknmq.js +0 -1
  462. package/dist/public/assets/_qeC-hkqh.js.br +0 -0
  463. package/dist/public/assets/_r2-rm8jK.js.br +0 -0
  464. package/dist/public/assets/_r97JbCoa.js +0 -1
  465. package/dist/public/assets/_rOZZD8kn.js +0 -1
  466. package/dist/public/assets/_sqn4FW-F.js +0 -1
  467. package/dist/public/assets/_uE7Xqg1n.js.br +0 -0
  468. package/dist/public/assets/_uFhCDdP2.js.br +0 -0
  469. package/dist/public/assets/_wKB6E3bj.js +0 -1
  470. package/dist/public/assets/_wP4Qkv_P.js +0 -1
  471. package/dist/public/assets/_y1KeDZoR.js +0 -1
  472. package/dist/public/assets/_yT-Qf3uW.js +0 -1
  473. package/dist/public/assets/files-view-CbbvsHoj.js +0 -2
  474. package/dist/public/assets/manage-workspace-BssaPJK3.js +0 -2
  475. package/dist/public/assets/new-NMPkd8J_.js +0 -1
  476. package/dist/public/assets/new-workspace-DoYdfl6L.js +0 -2
  477. package/dist/public/assets/review-view-CGDvPz9J.js +0 -2
  478. package/dist/public/assets/settings-NMPkd8J_.js +0 -1
  479. package/dist/public/assets/settings-page-CLB0rFFP.js +0 -2
  480. package/dist/public/assets/styles-C7h1Fupr.css +0 -1
  481. package/dist/public/assets/styles-C7h1Fupr.css.br +0 -0
  482. package/dist/public/assets/w-NMPkd8J_.js +0 -1
  483. package/dist/public/assets/w._-BooPCAra.js +0 -1
  484. package/dist/public/assets/w._-DOlOuaiC.js +0 -1
  485. package/dist/public/assets/w._-NMPkd8J_.js +0 -1
@@ -1,4 +1,4 @@
1
- import { $ as reopenable, A as closedSession, An as onTurnEnd, H as listPanesWithin, J as onSessionDispose, Jr as httpError, L as getSession, Ln as summaryOf, Nn as setExpecting, On as onFinished, Q as reopenSession, R as killSession, Rn as turnPhase, Tr as isKnownAgent, Un as agentLabel, Z as renameSession, bn as lastTypedAt, dn as cleanSummary, ei as all, et as retireSession, hn as agentPhase, j as createSession, jn as sessionWatched, kn as onPhaseChange, mn as activityOf, ni as get, q as notifySessionsChanged, ti as db, tt as sendToSession, vn as hookReportedAt, wr as getSetting, zn as turnSettling } from "./_DQbVrULO.js";
1
+ import { $ as reopenSession, A as closedSession, Bn as summaryOf, Cn as lastTypedAt, Hn as turnSettling, In as setExpecting, J as notifySessionsChanged, L as getSession, Mn as onPhaseChange, Nn as onTurnEnd, Or as getSetting, Pn as sessionWatched, Q as renameSession, Qr as httpError, R as interruptSession, U as listPanesWithin, Un as turnSince, Vn as turnPhase, Y as onSessionDispose, _n as activityOf, ai as db, et as reopenable, ii as all, j as createSession, jn as onFinished, kr as isKnownAgent, ln as steerKeys, mn as cleanSummary, nt as sendToSession, oi as get, on as interruptKeys, qn as agentLabel, tt as retireSession, vn as agentPhase, xn as hookReportedAt, z as killSession } from "./_Chg81Eud.js";
2
2
  //#region src/server/messages.ts
3
3
  var team = {
4
4
  memberGroup: () => null,
@@ -24,6 +24,14 @@ var RETRY_MS = 3e3;
24
24
  var MAX_BODY = 5e4;
25
25
  /** A reply past this is cut, pointing at the rest. */
26
26
  var MAX_REPLY = 2e4;
27
+ /** A pane that has written nothing for this long is a CLI at its prompt:
28
+ * every agent's screen animates while it works (scraper.ts). */
29
+ var PANE_STILL_MS = 4e3;
30
+ /** How often a held answer looks at the pane again. */
31
+ var HOLD_POLL_MS = 1e3;
32
+ /** A held answer goes after this however its pane looks: a CLI that
33
+ * paints at its prompt would otherwise hold it forever. */
34
+ var HOLD_MAX_MS = 6e5;
27
35
  /** How much of a message's first line a reply quotes to name it. */
28
36
  var EXCERPT = 40;
29
37
  /** A pane just started for a message can be missing from a pane list
@@ -37,6 +45,10 @@ var sends = /* @__PURE__ */ new Map();
37
45
  /** Recipients a delivery is typing into right now. */
38
46
  var delivering = /* @__PURE__ */ new Set();
39
47
  var deliveredAt = /* @__PURE__ */ new Map();
48
+ /** Sessions a message went into mid-turn, until a turn's end answers it. */
49
+ var steered = /* @__PURE__ */ new Set();
50
+ /** Turn ends held back from answering (`holdAnswer`), by session. */
51
+ var held = /* @__PURE__ */ new Map();
40
52
  /** Sessions any row is addressed to: the scraper asks about every session
41
53
  * without a pane on every tick, so the answer for one with none is a set
42
54
  * lookup rather than a query. */
@@ -144,9 +156,9 @@ function senderLabel(from, to) {
144
156
  const ws = get("SELECT name FROM workspaces WHERE id = ?", from.workspace_id);
145
157
  return `${labelOf(from)} in workspace ${ws?.name ?? from.workspace_id}`;
146
158
  }
147
- function insert(to, from, kind, body, wantsReply = false, groupId = null, answers = null) {
148
- return Number(db.prepare(`INSERT INTO session_messages (to_session, from_session, from_label, kind, body, wants_reply, group_id, answers)
149
- VALUES (?, ?, ?, ?, ?, ?, ?, ?)`).run(to, from?.id ?? null, from ? senderLabel(from, to) : null, kind, body, wantsReply ? 1 : 0, groupId, answers).lastInsertRowid);
159
+ function insert(to, from, kind, body, wantsReply = false, groupId = null, answers = null, urgent = false) {
160
+ return Number(db.prepare(`INSERT INTO session_messages (to_session, from_session, from_label, kind, body, wants_reply, group_id, answers, urgent)
161
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(to, from?.id ?? null, from ? senderLabel(from, to) : null, kind, body, wantsReply ? 1 : 0, groupId, answers, urgent ? 1 : 0).lastInsertRowid);
150
162
  }
151
163
  function deleteIds(ids) {
152
164
  if (!ids.length) return;
@@ -174,30 +186,36 @@ function admit(sender) {
174
186
  function deliverable(id) {
175
187
  return all("SELECT * FROM session_messages WHERE to_session = ? AND delivered_at IS NULL ORDER BY id", id).filter((r) => !r.group_id || team.groupReleased(r.group_id));
176
188
  }
177
- /** Type what is queued for `id` into it, if it is at its prompt. Returns
178
- * why not, or undefined once it is typed in (or there was nothing). */
189
+ /** Type what is queued for `id` into it, if it is at its prompt, or into
190
+ * its turn under way if any of it is to go now and its CLI takes that.
191
+ * Returns why not (`waits`), or nothing once it is typed in (or there was
192
+ * nothing), and whether that was mid-turn. */
179
193
  async function deliver(id) {
180
- if (delivering.has(id)) return "another message is being typed in";
194
+ if (delivering.has(id)) return { waits: "another message is being typed in" };
181
195
  const phase = turnPhase(id);
182
- if (phase === "waiting") return "it is waiting on the user";
183
- if (phase === "working" || turnSettling(id)) return "it is working";
184
- if (Date.now() - lastTypedAt(id) < TYPING_QUIET_MS) return "someone is typing in its terminal";
196
+ if (phase === "waiting") return { waits: "it is waiting on the user" };
197
+ if (turnSettling(id)) return { waits: "it is working" };
185
198
  const rows = deliverable(id);
186
- if (!rows.length) return void 0;
199
+ const keys = phase === "working" && rows.some((r) => r.urgent) ? steerKeys(getSession(id)?.agent) : void 0;
200
+ if (phase === "working" && !keys) return { waits: "it is working" };
201
+ if (Date.now() - lastTypedAt(id) < TYPING_QUIET_MS) return { waits: "someone is typing in its terminal" };
202
+ if (!rows.length) return {};
187
203
  delivering.add(id);
188
204
  try {
189
- await sendToSession(id, renderAll(rows));
205
+ await sendToSession(id, renderAll(rows), void 0, keys);
190
206
  } catch (err) {
191
- return err.message;
207
+ return { waits: err.message };
192
208
  } finally {
193
209
  delivering.delete(id);
194
210
  }
211
+ if (keys) steered.add(id);
195
212
  deliveredAt.set(id, Date.now());
196
213
  deleteIds(rows.filter((r) => !r.wants_reply).map((r) => r.id));
197
214
  const owed = rows.filter((r) => r.wants_reply).map((r) => r.id);
198
215
  if (owed.length) db.prepare(`UPDATE session_messages SET delivered_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now')
199
216
  WHERE id IN (${owed.map(() => "?").join(",")})`).run(...owed);
200
217
  recompute();
218
+ return { midTurn: !!keys };
201
219
  }
202
220
  var pumping = false;
203
221
  var again = false;
@@ -241,6 +259,9 @@ function kick() {
241
259
  * terminal) to session `to`, typed in now if it is at its prompt, else
242
260
  * queued until it is. From an agent's session it wants a reply unless
243
261
  * `reply` is false: the recipient's last message as that turn ends.
262
+ * `opts.now` sends it into the turn under way where its CLI takes one
263
+ * there, and `opts.interrupt` stops that turn first (never a wait on the
264
+ * user: theirs is the answer it waits for).
244
265
  * `opts.member` is a fan-out starting a member (server/team): its group's
245
266
  * own caps bound it, not the sender's. */
246
267
  async function sendMessage(to, text, opts = {}) {
@@ -267,19 +288,35 @@ async function sendMessage(to, text, opts = {}) {
267
288
  }
268
289
  if (!from && target.parent_id) db.prepare("UPDATE sessions SET keep = 1 WHERE id = ?").run(to);
269
290
  const wantsReply = !!from && opts.reply !== false;
270
- const id = insert(to, from, "message", text, wantsReply);
291
+ const ahead = get("SELECT COUNT(*) AS n FROM session_messages WHERE to_session = ? AND delivered_at IS NULL", to)?.n ?? 0;
292
+ const id = insert(to, from, "message", text, wantsReply, null, null, !!(opts.now || opts.interrupt));
271
293
  recompute();
272
- const hold = await deliver(to);
294
+ const interrupted = !!opts.interrupt && !!live && turnPhase(to) === "working" && !delivering.has(to) && await interruptSession(to);
295
+ const sent = await deliver(to);
273
296
  const row = get("SELECT delivered_at FROM session_messages WHERE id = ?", id);
274
- if (row && !row.delivered_at) kick();
297
+ const waits = !!row && !row.delivered_at;
298
+ if (waits) kick();
299
+ const since = waits ? turnSince(to) : void 0;
275
300
  return {
276
301
  to: {
277
302
  id: target.id,
278
303
  agent: target.agent,
279
304
  title: target.title
280
305
  },
281
- delivered: !row || !!row.delivered_at,
282
- queued: row && !row.delivered_at ? hold ?? "queued" : null,
306
+ delivered: !waits,
307
+ queued: waits ? sent.waits ?? "queued" : null,
308
+ /** Typed into the turn under way: its CLI hands it over at the turn's
309
+ * next step. */
310
+ midTurn: !!sent.midTurn,
311
+ /** Its turn was stopped for it. */
312
+ interrupted,
313
+ /** While it waits: how long the turn it waits out has run (ms), and
314
+ * how many messages sent before it wait with it. */
315
+ turnMs: since === void 0 ? null : Date.now() - since,
316
+ ahead: waits ? ahead : 0,
317
+ /** What `now` and `interrupt` can do with this session's CLI. */
318
+ steers: !!steerKeys(target.agent),
319
+ interrupts: !!interruptKeys(target.agent),
283
320
  wantsReply,
284
321
  /** It had closed, and is back on its conversation. */
285
322
  reopened: !live
@@ -340,9 +377,60 @@ function messageStates() {
340
377
  }
341
378
  /** A turn's end answers what the session was asked: its last message
342
379
  * goes to each session that asked, as a reply — a member's held for its
343
- * group. */
344
- function answer(id, message) {
380
+ * group. Once a message went in mid-turn, not at once (`holdAnswer`), and
381
+ * with what the turns folded into this end said before it. */
382
+ function answer(id, message, earlier = []) {
345
383
  if (!mailboxes.has(id)) return false;
384
+ if (!steered.has(id)) return answerNow(id, message);
385
+ if (!get("SELECT 1 FROM session_messages WHERE to_session = ? AND wants_reply = 1 AND delivered_at IS NOT NULL", id)) {
386
+ steered.delete(id);
387
+ return false;
388
+ }
389
+ for (const said of earlier) holdAnswer(id, said);
390
+ holdAnswer(id, message);
391
+ return true;
392
+ }
393
+ /** A message that goes in mid-turn as the agent writes its answer is, to
394
+ * some CLIs (Claude, opencode, Copilot), not that turn's: it runs as a
395
+ * turn of its own straight after, which no hook announces, and that
396
+ * turn's end is the answer to it. A CLI at work keeps painting and one at
397
+ * its prompt goes still, so a turn's end answers once its pane has gone
398
+ * still with no turn begun. A turn that begins takes it over: its end
399
+ * answers, after the held turn's message, so the asker reads what the
400
+ * agent said before it took the message and what it did with it. */
401
+ function holdAnswer(id, message) {
402
+ const hold = held.get(id) ?? {
403
+ messages: [],
404
+ look: 0
405
+ };
406
+ held.set(id, hold);
407
+ hold.messages.push(message);
408
+ const since = Date.now();
409
+ const schedule = (ms) => {
410
+ clearTimeout(hold.timer);
411
+ const n = ++hold.look;
412
+ hold.timer = setTimeout(() => void look(n), ms);
413
+ hold.timer.unref?.();
414
+ };
415
+ const look = async (n) => {
416
+ if (held.get(id) !== hold || hold.look !== n) return;
417
+ if (turnPhase(id) || turnSettling(id)) return;
418
+ const panes = await listPanesWithin(HOLD_POLL_MS);
419
+ if (held.get(id) !== hold || hold.look !== n) return;
420
+ const pane = panes?.find((p) => p.id === id);
421
+ if ((pane ? Date.now() - pane.activityAt : Infinity) < PANE_STILL_MS && Date.now() - since < HOLD_MAX_MS) return schedule(HOLD_POLL_MS);
422
+ held.delete(id);
423
+ const said = hold.messages.filter((m) => !!m);
424
+ answerNow(id, said.length ? said.join("\n\n") : void 0);
425
+ };
426
+ schedule(PANE_STILL_MS);
427
+ }
428
+ function dropHold(id) {
429
+ clearTimeout(held.get(id)?.timer);
430
+ held.delete(id);
431
+ }
432
+ function answerNow(id, message) {
433
+ steered.delete(id);
346
434
  const owed = all("SELECT * FROM session_messages WHERE to_session = ? AND wants_reply = 1 AND delivered_at IS NOT NULL", id);
347
435
  const session = getSession(id);
348
436
  if (!owed.length || !session) return false;
@@ -367,6 +455,8 @@ function answer(id, message) {
367
455
  * for a reply is told none is coming, and what was queued for it goes —
368
456
  * a reply means nothing to the process that next runs there. */
369
457
  function settle(id, why) {
458
+ dropHold(id);
459
+ steered.delete(id);
370
460
  const session = getSession(id);
371
461
  const label = session ? labelOf(session) : id;
372
462
  const group = team.memberGroup(id);
@@ -0,0 +1,2 @@
1
+ import { J as notifySessionsChanged } from "./_Chg81Eud.js";
2
+ export { notifySessionsChanged };