@dylanpiercey/work 0.2.44 → 0.2.45

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 (484) hide show
  1. package/bin/cli/session.mjs +28 -4
  2. package/dist/{_DIwr1RBh.js → _B1mzUx3g.js} +70 -70
  3. package/dist/{_Cv5RrCSW.js → _B_Wl8EDh.js} +12 -2
  4. package/dist/{_DuwPQCOE.js → _B_YHcR6n.js} +122 -21
  5. package/dist/_COxuRDjJ.js +2 -0
  6. package/dist/_CXys7J6U.js +2 -0
  7. package/dist/index.mjs +1111 -1082
  8. package/dist/public/assets/{_DzgXbNBA.js → _0PcaxMcN.js} +1 -1
  9. package/dist/public/assets/_0PcaxMcN.js.br +0 -0
  10. package/dist/public/assets/_28SfjYgU.js +1 -0
  11. package/dist/public/assets/_2WH9dVsM.js +1 -0
  12. package/dist/public/assets/{_DcxKRExU.js → _443uXxaQ.js} +1 -1
  13. package/dist/public/assets/_443uXxaQ.js.br +0 -0
  14. package/dist/public/assets/_68km9uDS.js +1 -0
  15. package/dist/public/assets/{_DbXISrnz.js → _7B3Of6n2.js} +1 -1
  16. package/dist/public/assets/_7B3Of6n2.js.br +0 -0
  17. package/dist/public/assets/{_DzNaxOWz.js → _7iaLwNp7.js} +1 -1
  18. package/dist/public/assets/_7iaLwNp7.js.br +0 -0
  19. package/dist/public/assets/{_CipnEfhW.js → _8wVpL9UU.js} +1 -1
  20. package/dist/public/assets/_8wVpL9UU.js.br +0 -0
  21. package/dist/public/assets/{_DNJ8I4VP.js → _AUQC7bLf.js} +1 -1
  22. package/dist/public/assets/{_BeDFg_MS.js → _Aeu0g-vv.js} +1 -1
  23. package/dist/public/assets/_Aeu0g-vv.js.br +0 -0
  24. package/dist/public/assets/_B2SYqcWM.js +1 -0
  25. package/dist/public/assets/_B2_pv4me.js +1 -0
  26. package/dist/public/assets/_B5kGyDQX.js +1 -0
  27. package/dist/public/assets/_B6kIB1WU.js +1 -0
  28. package/dist/public/assets/_BCTgJnmO.js +1 -0
  29. package/dist/public/assets/_BDyFN6kT.js +1 -0
  30. package/dist/public/assets/_BESQfGBB.js +1 -0
  31. package/dist/public/assets/_BJT3RWev.js +1 -0
  32. package/dist/public/assets/{_Dof9bk1s.js → _BLn8LlL6.js} +1 -1
  33. package/dist/public/assets/_BLn8LlL6.js.br +0 -0
  34. package/dist/public/assets/{_HfPt-BIP.js → _BM43k9pz.js} +2 -2
  35. package/dist/public/assets/_BM43k9pz.js.br +0 -0
  36. package/dist/public/assets/_BMTkhA17.js +1 -0
  37. package/dist/public/assets/{_bqkRF2KZ.js → _BT-IZ4E6.js} +1 -1
  38. package/dist/public/assets/_BT-IZ4E6.js.br +0 -0
  39. package/dist/public/assets/_BTaFZW2H.js +1 -0
  40. package/dist/public/assets/{_D1L2c6wa.js → _BVLYkVz3.js} +1 -1
  41. package/dist/public/assets/_BVLYkVz3.js.br +0 -0
  42. package/dist/public/assets/_BWciqKkD.js +1 -0
  43. package/dist/public/assets/{_0eK035R8.js → _BXQkwCAJ.js} +1 -1
  44. package/dist/public/assets/_BXQkwCAJ.js.br +0 -0
  45. package/dist/public/assets/_BXgSb_aq.js +1 -0
  46. package/dist/public/assets/{_CHZBmkiY.js → _BZKc5vLY.js} +2 -2
  47. package/dist/public/assets/_BZKc5vLY.js.br +0 -0
  48. package/dist/public/assets/{_BVmlWew8.js → _B_q-wGcA.js} +1 -1
  49. package/dist/public/assets/_B_q-wGcA.js.br +0 -0
  50. package/dist/public/assets/{_B5jpXalG.js → _BaKP3ezJ.js} +4 -4
  51. package/dist/public/assets/_BaKP3ezJ.js.br +0 -0
  52. package/dist/public/assets/{_G89RhQlY.js → _Bb8Fj9pO.js} +1 -1
  53. package/dist/public/assets/_Bb8Fj9pO.js.br +0 -0
  54. package/dist/public/assets/{_rCLcJh8a.js → _BfBmJfms.js} +1 -1
  55. package/dist/public/assets/_BfBmJfms.js.br +0 -0
  56. package/dist/public/assets/_Bg-eUBF7.js +1 -0
  57. package/dist/public/assets/{_D_Gans_z.js → _Bh0u8Y5M.js} +1 -1
  58. package/dist/public/assets/_Bh0u8Y5M.js.br +0 -0
  59. package/dist/public/assets/_BiQCjxZj.js +1 -0
  60. package/dist/public/assets/{_530dhCBX.js → _BmaGQeEm.js} +1 -1
  61. package/dist/public/assets/_BmaGQeEm.js.br +0 -0
  62. package/dist/public/assets/_BnUTLXVz.js +1 -0
  63. package/dist/public/assets/_BndOGaT4.js +1 -0
  64. package/dist/public/assets/{_4xxPjzRG.js → _BqDvnSDS.js} +4 -4
  65. package/dist/public/assets/_BqDvnSDS.js.br +0 -0
  66. package/dist/public/assets/{_BhFFgml5.js → _BqQM_YrX.js} +1 -1
  67. package/dist/public/assets/_BqQM_YrX.js.br +0 -0
  68. package/dist/public/assets/{_JqVXhDVr.js → _Bqs-BrmJ.js} +1 -1
  69. package/dist/public/assets/_BrwUEaSq.js +1 -0
  70. package/dist/public/assets/{_BzTvUB76.js → _Bx2KENYX.js} +1 -1
  71. package/dist/public/assets/_Bx2KENYX.js.br +0 -0
  72. package/dist/public/assets/_BxRp18VM.js +1 -0
  73. package/dist/public/assets/_BxlrR0IC.js +1 -0
  74. package/dist/public/assets/{_DPOs-wSZ.js → _By6YMirT.js} +1 -1
  75. package/dist/public/assets/{_DqPdlS_6.js → _Bz-jbG_f.js} +1 -1
  76. package/dist/public/assets/_Bz-jbG_f.js.br +0 -0
  77. package/dist/public/assets/{_BvZ6Gp79.js → _BzcR0Zt6.js} +1 -1
  78. package/dist/public/assets/_C0SfB0cf.js +1 -0
  79. package/dist/public/assets/{_CdSpe7--.js → _C1M0CPmH.js} +1 -1
  80. package/dist/public/assets/_C1M0CPmH.js.br +0 -0
  81. package/dist/public/assets/_C1mwVqve.js +1 -0
  82. package/dist/public/assets/_C1wcIoe9.js +1 -0
  83. package/dist/public/assets/_C31F97wV.js +1 -0
  84. package/dist/public/assets/{_Vlcj833j.js → _C3SxaNO4.js} +1 -1
  85. package/dist/public/assets/_C3SxaNO4.js.br +0 -0
  86. package/dist/public/assets/{_Jr9Fn7zH.js → _C4ZArw31.js} +1 -1
  87. package/dist/public/assets/_C4ZArw31.js.br +0 -0
  88. package/dist/public/assets/_C5pTVHzg.js +1 -0
  89. package/dist/public/assets/_C5rhtJO0.js +1 -0
  90. package/dist/public/assets/{_TnU4GgL4.js → _C6AlRRbl.js} +1 -1
  91. package/dist/public/assets/_C6AlRRbl.js.br +0 -0
  92. package/dist/public/assets/{_DR3Klkrj.js → _C6mwHnpf.js} +1 -1
  93. package/dist/public/assets/_C6mwHnpf.js.br +0 -0
  94. package/dist/public/assets/_C6turck0.js +1 -0
  95. package/dist/public/assets/{_CT9asvR7.js → _C76cxE8X.js} +1 -1
  96. package/dist/public/assets/_C76cxE8X.js.br +0 -0
  97. package/dist/public/assets/_C8aorIbv.js +1 -0
  98. package/dist/public/assets/{_BESJywRP.js → _C8wlTNi9.js} +1 -1
  99. package/dist/public/assets/_C8wlTNi9.js.br +0 -0
  100. package/dist/public/assets/_CENMamKt.js +1 -0
  101. package/dist/public/assets/_CFJC7t7o.js +1 -0
  102. package/dist/public/assets/_CG2smhmA.js +1 -0
  103. package/dist/public/assets/_CHskY2wz.js +1 -0
  104. package/dist/public/assets/{_ncO15QKP.js → _CJe7L_kJ.js} +1 -1
  105. package/dist/public/assets/_CJe7L_kJ.js.br +0 -0
  106. package/dist/public/assets/{_CAaE_29m.js → _CMMSb5BE.js} +1 -1
  107. package/dist/public/assets/_CMMSb5BE.js.br +0 -0
  108. package/dist/public/assets/{_NFyQLwL2.js → _CNbmwWUc.js} +1 -1
  109. package/dist/public/assets/_CNbmwWUc.js.br +0 -0
  110. package/dist/public/assets/_CNsQ6bMz.js +1 -0
  111. package/dist/public/assets/{_CH6cXBn1.js → _CQNm4xYL.js} +1 -1
  112. package/dist/public/assets/_CQNm4xYL.js.br +0 -0
  113. package/dist/public/assets/_CQyXJju1.js +1 -0
  114. package/dist/public/assets/_CTtU_TUT.js +1 -0
  115. package/dist/public/assets/{_Dbu06XRI.js → _CUeqPIqe.js} +1 -1
  116. package/dist/public/assets/_CUeqPIqe.js.br +0 -0
  117. package/dist/public/assets/{_BnmFcEOd.js → _CUo3f46j.js} +1 -1
  118. package/dist/public/assets/_CUo3f46j.js.br +0 -0
  119. package/dist/public/assets/{_DpkEy7xD.js → _CUv3-o1m.js} +1 -1
  120. package/dist/public/assets/_CUv3-o1m.js.br +0 -0
  121. package/dist/public/assets/_CVUH7tCy.js +1 -0
  122. package/dist/public/assets/{_CFjEXYsy.js → _CXBP_1Ow.js} +1 -1
  123. package/dist/public/assets/_CXBP_1Ow.js.br +0 -0
  124. package/dist/public/assets/{_BxePzpXb.js → _CXxqgKhP.js} +1 -1
  125. package/dist/public/assets/{_DC-362Aa.js → _CZxfZ1HN.js} +1 -1
  126. package/dist/public/assets/_CZxfZ1HN.js.br +0 -0
  127. package/dist/public/assets/{_mP9WBNxQ.js → _C_wg7jRf.js} +1 -1
  128. package/dist/public/assets/_C_wg7jRf.js.br +0 -0
  129. package/dist/public/assets/_CaDWv7_h.js +1 -0
  130. package/dist/public/assets/{_C2NGeccQ.js → _CcpbjaP3.js} +1 -1
  131. package/dist/public/assets/_CcpbjaP3.js.br +0 -0
  132. package/dist/public/assets/{_C82_OMnf.js → _Cd6L7sJx.js} +1 -1
  133. package/dist/public/assets/_Cd6L7sJx.js.br +0 -0
  134. package/dist/public/assets/_CeKIXver.js +1 -0
  135. package/dist/public/assets/{_CmCSdTYC.js → _CfSTeslv.js} +1 -1
  136. package/dist/public/assets/_CfSTeslv.js.br +0 -0
  137. package/dist/public/assets/{_B7h5MWRM.js → _CgFmGgE6.js} +1 -1
  138. package/dist/public/assets/_CgFmGgE6.js.br +0 -0
  139. package/dist/public/assets/_CgX7YjFn.js +1 -0
  140. package/dist/public/assets/_CiIHOUYm.js +1 -0
  141. package/dist/public/assets/_CjTkhQjt.js +1 -0
  142. package/dist/public/assets/{_DP401U9L.js → _CrUnCdJm.js} +1 -1
  143. package/dist/public/assets/_CrUnCdJm.js.br +0 -0
  144. package/dist/public/assets/_CsZpCxM3.js +1 -0
  145. package/dist/public/assets/{_CC5Ll6yL.js → _CtPUJlv8.js} +1 -1
  146. package/dist/public/assets/_CtPUJlv8.js.br +0 -0
  147. package/dist/public/assets/{_BhEWYlaD.js → _Cv4lGi_U.js} +1 -1
  148. package/dist/public/assets/_Cv4lGi_U.js.br +0 -0
  149. package/dist/public/assets/{_IiWL7q-1.js → _CvkKORgC.js} +1 -1
  150. package/dist/public/assets/_CvkKORgC.js.br +0 -0
  151. package/dist/public/assets/_CwtgMFMx.js +1 -0
  152. package/dist/public/assets/{_tGYm6QKl.js → _CyvC1e4R.js} +1 -1
  153. package/dist/public/assets/_CyvC1e4R.js.br +0 -0
  154. package/dist/public/assets/{_s7sH946N.js → _CzviDOIH.js} +1 -1
  155. package/dist/public/assets/_D1qVomTm.js +1 -0
  156. package/dist/public/assets/_D1ytbfGt.js +1 -0
  157. package/dist/public/assets/_D3PMnsje.js +1 -0
  158. package/dist/public/assets/{_DvQxG-WL.js → _D5YTVkD4.js} +1 -1
  159. package/dist/public/assets/_D5YTVkD4.js.br +0 -0
  160. package/dist/public/assets/{_uqG4sflc.js → _D5eVjSZv.js} +1 -1
  161. package/dist/public/assets/_D5eVjSZv.js.br +0 -0
  162. package/dist/public/assets/{_B6sV8ze1.js → _D5syJ3TB.js} +1 -1
  163. package/dist/public/assets/_D5syJ3TB.js.br +0 -0
  164. package/dist/public/assets/{_Bcf_bFWr.js → _D7W9YXev.js} +1 -1
  165. package/dist/public/assets/_D7W9YXev.js.br +0 -0
  166. package/dist/public/assets/{_D140ilf3.js → _DBSuvRRR.js} +1 -1
  167. package/dist/public/assets/_DBSuvRRR.js.br +0 -0
  168. package/dist/public/assets/_DD3XoWQU.js +1 -0
  169. package/dist/public/assets/{_T_ugRwFS.js → _DDluED7n.js} +1 -1
  170. package/dist/public/assets/_DDluED7n.js.br +0 -0
  171. package/dist/public/assets/_DDmdn81K.js +1 -0
  172. package/dist/public/assets/{_ClqL5v_T.js → _DDx3ZLLY.js} +1 -1
  173. package/dist/public/assets/_DDx3ZLLY.js.br +0 -0
  174. package/dist/public/assets/_DELYfCxS.js +1 -0
  175. package/dist/public/assets/{_Wo5eUHN5.js → _DG1ykDHz.js} +1 -1
  176. package/dist/public/assets/_DG1ykDHz.js.br +0 -0
  177. package/dist/public/assets/{_D3df-HXh.js → _DH-Zfxr9.js} +1 -1
  178. package/dist/public/assets/_DH-Zfxr9.js.br +0 -0
  179. package/dist/public/assets/{_DpPC5wTX.js → _DJjMgG8U.js} +1 -1
  180. package/dist/public/assets/_DJjMgG8U.js.br +0 -0
  181. package/dist/public/assets/{_BEYtrZXu.js → _DJuouelh.js} +1 -1
  182. package/dist/public/assets/_DJuouelh.js.br +0 -0
  183. package/dist/public/assets/{_DfqWGAs9.js → _DKTHLXMM.js} +1 -1
  184. package/dist/public/assets/_DKTHLXMM.js.br +0 -0
  185. package/dist/public/assets/_DKZDTErM.js +1 -0
  186. package/dist/public/assets/_DLMANRcu.js +1 -0
  187. package/dist/public/assets/{_ClKuBt_u.js → _DLQ5a6Ki.js} +1 -1
  188. package/dist/public/assets/_DLQ5a6Ki.js.br +0 -0
  189. package/dist/public/assets/_DMssEVcp.js +1 -0
  190. package/dist/public/assets/{_Clxk4NM9.js → _DPnx99Mr.js} +1 -1
  191. package/dist/public/assets/_DPnx99Mr.js.br +0 -0
  192. package/dist/public/assets/{_BeUy9moF.js → _DQIdfKkP.js} +1 -1
  193. package/dist/public/assets/_DQIdfKkP.js.br +0 -0
  194. package/dist/public/assets/{_olpqzRSA.js → _DQvQsSbL.js} +1 -1
  195. package/dist/public/assets/_DQvQsSbL.js.br +0 -0
  196. package/dist/public/assets/{_BGe5YZvC.js → _DSJ7G2_B.js} +1 -1
  197. package/dist/public/assets/_DSJ7G2_B.js.br +0 -0
  198. package/dist/public/assets/{_B1HStpW0.js → _DV9DmK5V.js} +1 -1
  199. package/dist/public/assets/_DV9DmK5V.js.br +0 -0
  200. package/dist/public/assets/{_UpY10-py.js → _Dami2S44.js} +1 -1
  201. package/dist/public/assets/_Dami2S44.js.br +0 -0
  202. package/dist/public/assets/_DbI1CtJs.js +1 -0
  203. package/dist/public/assets/_DbsxTvoE.js +1 -0
  204. package/dist/public/assets/_DdDI5P8m.js +1 -0
  205. package/dist/public/assets/_DdDnkNsg.js +1 -0
  206. package/dist/public/assets/{_B2bgY7VH.js → _DdMgsOf_.js} +1 -1
  207. package/dist/public/assets/_DdMgsOf_.js.br +0 -0
  208. package/dist/public/assets/{_DTeRAxTo.js → _Dfm_6oJ1.js} +1 -1
  209. package/dist/public/assets/_Dfm_6oJ1.js.br +0 -0
  210. package/dist/public/assets/_DgDBo4e6.js +1 -0
  211. package/dist/public/assets/{_DbZt6CiW.js → _Dh4OkJ-I.js} +1 -1
  212. package/dist/public/assets/_Dh4OkJ-I.js.br +0 -0
  213. package/dist/public/assets/_Dh5C70YE.js +1 -0
  214. package/dist/public/assets/{_B18ixB2z.js → _Dj6kDNs2.js} +1 -1
  215. package/dist/public/assets/_Dj6kDNs2.js.br +0 -0
  216. package/dist/public/assets/{_6rlK2kiT.js → _DjbB_Tid.js} +1 -1
  217. package/dist/public/assets/_DjbB_Tid.js.br +0 -0
  218. package/dist/public/assets/_DlEnI_hw.js +1 -0
  219. package/dist/public/assets/{_Cv9dhNUU.js → _Dm_k20_p.js} +1 -1
  220. package/dist/public/assets/_Dm_k20_p.js.br +0 -0
  221. package/dist/public/assets/_Dp1u8fV0.js +1 -0
  222. package/dist/public/assets/{_DibgD9wu.js → _DpCB6eEn.js} +2 -2
  223. package/dist/public/assets/_DpCB6eEn.js.br +0 -0
  224. package/dist/public/assets/{_Ds1I-o0I.js → _Dsx1c_ka.js} +1 -1
  225. package/dist/public/assets/_Dsx1c_ka.js.br +0 -0
  226. package/dist/public/assets/_DsxQ6ZlL.js +1 -0
  227. package/dist/public/assets/{_C7wOvGGt.js → _DtVSojrY.js} +1 -1
  228. package/dist/public/assets/_DtVSojrY.js.br +0 -0
  229. package/dist/public/assets/_DyGy6Md-.js +1 -0
  230. package/dist/public/assets/_DynU4mag.js +1 -0
  231. package/dist/public/assets/{_DP1Fr0Go.js → _E2FbIudO.js} +1 -1
  232. package/dist/public/assets/_E2FbIudO.js.br +0 -0
  233. package/dist/public/assets/_F2Lj0YJ9.js +1 -0
  234. package/dist/public/assets/{_DQ-mN0nj.js → _IaZwRxjC.js} +1 -1
  235. package/dist/public/assets/_IaZwRxjC.js.br +0 -0
  236. package/dist/public/assets/{_CpFF408S.js → _K6IkdyTi.js} +1 -1
  237. package/dist/public/assets/_K6IkdyTi.js.br +0 -0
  238. package/dist/public/assets/_Kuy196Nc.js +1 -0
  239. package/dist/public/assets/_L1Td4IcZ.js +1 -0
  240. package/dist/public/assets/{_D665uiM0.js → _NcJbZtQc.js} +1 -1
  241. package/dist/public/assets/_NcJbZtQc.js.br +0 -0
  242. package/dist/public/assets/{_TQk60Mlv.js → _O0XVVQh2.js} +1 -1
  243. package/dist/public/assets/_O0XVVQh2.js.br +0 -0
  244. package/dist/public/assets/_OkTdYQkN.js +1 -0
  245. package/dist/public/assets/{_DHIh3Zqg.js → _OpeUTyoe.js} +1 -1
  246. package/dist/public/assets/_QqSSyz8h.js +1 -0
  247. package/dist/public/assets/_RtsHqLAU.js +1 -0
  248. package/dist/public/assets/_TEFPWNgQ.js +1 -0
  249. package/dist/public/assets/{_BfP0KDqb.js → _TfXWQcxR.js} +5 -5
  250. package/dist/public/assets/_TfXWQcxR.js.br +0 -0
  251. package/dist/public/assets/{_Dj3bzjmr.js → _VE58ThY1.js} +1 -1
  252. package/dist/public/assets/_VE58ThY1.js.br +0 -0
  253. package/dist/public/assets/_XKDjMlFF.js +1 -0
  254. package/dist/public/assets/{_D0t4sewY.js → _XmA9VOx7.js} +1 -1
  255. package/dist/public/assets/_XmA9VOx7.js.br +0 -0
  256. package/dist/public/assets/{_QAl9MOeZ.js → _ZJXcokd7.js} +1 -1
  257. package/dist/public/assets/_ZJXcokd7.js.br +0 -0
  258. package/dist/public/assets/{_9XfT_kAQ.js → _ZVG7VKZV.js} +1 -1
  259. package/dist/public/assets/_ZVG7VKZV.js.br +0 -0
  260. package/dist/public/assets/{_C7x79ALL.js → __9PGdE5L.js} +1 -1
  261. package/dist/public/assets/__9PGdE5L.js.br +0 -0
  262. package/dist/public/assets/{__ALUCVjh.js → _bISSWjWW.js} +1 -1
  263. package/dist/public/assets/_bISSWjWW.js.br +0 -0
  264. package/dist/public/assets/{_DbUljy8T.js → _cPNv1ej4.js} +1 -1
  265. package/dist/public/assets/_cPNv1ej4.js.br +0 -0
  266. package/dist/public/assets/_f-53KH6a.js +1 -0
  267. package/dist/public/assets/{_DVMRwfVQ.js → _i13VtQet.js} +1 -1
  268. package/dist/public/assets/_i13VtQet.js.br +0 -0
  269. package/dist/public/assets/_kwRB-xea.js +1 -0
  270. package/dist/public/assets/_mDbdlh67.js +1 -0
  271. package/dist/public/assets/{_BD0MMovF.js → _pISJGfjv.js} +1 -1
  272. package/dist/public/assets/_qe8eSrX5.js +1 -0
  273. package/dist/public/assets/{_Gds0N5t0.js → _rec-40kD.js} +1 -1
  274. package/dist/public/assets/_rec-40kD.js.br +0 -0
  275. package/dist/public/assets/{_8JlVECZ4.js → _w9dqYkUz.js} +9 -9
  276. package/dist/public/assets/_w9dqYkUz.js.br +0 -0
  277. package/dist/public/assets/_xd-TT2D6.js +1 -0
  278. package/dist/public/assets/{_DtvewBGv.js → _xxtp9YpJ.js} +1 -1
  279. package/dist/public/assets/_xxtp9YpJ.js.br +0 -0
  280. package/dist/public/assets/{_CFRyEmz9.js → _yTW8pyW-.js} +1 -1
  281. package/dist/public/assets/_yTW8pyW-.js.br +0 -0
  282. package/dist/public/assets/{_BRMftHcc.js → _zdLLLV2x.js} +1 -1
  283. package/dist/public/assets/_zdLLLV2x.js.br +0 -0
  284. package/dist/public/assets/files-view-CdM2m5Rw.js +2 -0
  285. package/dist/public/assets/manage-workspace-C2Igs4OZ.js +2 -0
  286. package/dist/public/assets/new-Jxc3Yfpl.js +1 -0
  287. package/dist/public/assets/new-workspace-SKGZDJt6.js +2 -0
  288. package/dist/public/assets/review-view-WvZ8HElz.js +2 -0
  289. package/dist/public/assets/settings-Jxc3Yfpl.js +1 -0
  290. package/dist/public/assets/settings-page-BmFANHYh.js +2 -0
  291. package/dist/public/assets/{styles-C9roDUa_.css → styles-h1l0VgQa.css} +1 -1
  292. package/dist/public/assets/styles-h1l0VgQa.css.br +0 -0
  293. package/dist/public/assets/w-Jxc3Yfpl.js +1 -0
  294. package/dist/public/assets/w._-Bj3TWEgr.js +1 -0
  295. package/dist/public/assets/w._-CxbRBt3v.js +1 -0
  296. package/dist/public/assets/w._-Jxc3Yfpl.js +1 -0
  297. package/package.json +1 -1
  298. package/dist/_BKkT73fv.js +0 -2
  299. package/dist/_BviTiVOB.js +0 -2
  300. package/dist/public/assets/_0eK035R8.js.br +0 -0
  301. package/dist/public/assets/_291ndbCK.js +0 -1
  302. package/dist/public/assets/_2PuzSbrq.js +0 -1
  303. package/dist/public/assets/_2UvV2KY_.js +0 -1
  304. package/dist/public/assets/_3QFQfjGY.js +0 -1
  305. package/dist/public/assets/_4xxPjzRG.js.br +0 -0
  306. package/dist/public/assets/_530dhCBX.js.br +0 -0
  307. package/dist/public/assets/_6rlK2kiT.js.br +0 -0
  308. package/dist/public/assets/_8JlVECZ4.js.br +0 -0
  309. package/dist/public/assets/_9XfT_kAQ.js.br +0 -0
  310. package/dist/public/assets/_B18ixB2z.js.br +0 -0
  311. package/dist/public/assets/_B1HStpW0.js.br +0 -0
  312. package/dist/public/assets/_B2bgY7VH.js.br +0 -0
  313. package/dist/public/assets/_B4FsUOio.js +0 -1
  314. package/dist/public/assets/_B5jpXalG.js.br +0 -0
  315. package/dist/public/assets/_B6sV8ze1.js.br +0 -0
  316. package/dist/public/assets/_B7h5MWRM.js.br +0 -0
  317. package/dist/public/assets/_B92854gS.js +0 -1
  318. package/dist/public/assets/_B97w9gKV.js +0 -1
  319. package/dist/public/assets/_BAqeqFjt.js +0 -1
  320. package/dist/public/assets/_BESJywRP.js.br +0 -0
  321. package/dist/public/assets/_BEYtrZXu.js.br +0 -0
  322. package/dist/public/assets/_BGe5YZvC.js.br +0 -0
  323. package/dist/public/assets/_BMt7t-IK.js +0 -1
  324. package/dist/public/assets/_BNBHheBI.js +0 -1
  325. package/dist/public/assets/_BRA3nDhj.js +0 -1
  326. package/dist/public/assets/_BRMftHcc.js.br +0 -0
  327. package/dist/public/assets/_BRYOOYeT.js +0 -1
  328. package/dist/public/assets/_BRju0kTb.js +0 -1
  329. package/dist/public/assets/_BRuiRoDT.js +0 -1
  330. package/dist/public/assets/_BUt_dRbX.js +0 -1
  331. package/dist/public/assets/_BVmlWew8.js.br +0 -0
  332. package/dist/public/assets/_BWu7N39t.js +0 -1
  333. package/dist/public/assets/_BZfIAT7N.js +0 -1
  334. package/dist/public/assets/_BagsLgjl.js +0 -1
  335. package/dist/public/assets/_BcMqFuWN.js +0 -1
  336. package/dist/public/assets/_Bcf_bFWr.js.br +0 -0
  337. package/dist/public/assets/_BeDFg_MS.js.br +0 -0
  338. package/dist/public/assets/_BeUy9moF.js.br +0 -0
  339. package/dist/public/assets/_BfP0KDqb.js.br +0 -0
  340. package/dist/public/assets/_BhEWYlaD.js.br +0 -0
  341. package/dist/public/assets/_BhFFgml5.js.br +0 -0
  342. package/dist/public/assets/_BnmFcEOd.js.br +0 -0
  343. package/dist/public/assets/_BtbCF-Ab.js +0 -1
  344. package/dist/public/assets/_Bu2lbfre.js +0 -1
  345. package/dist/public/assets/_BwwB54Yi.js +0 -1
  346. package/dist/public/assets/_BzTvUB76.js.br +0 -0
  347. package/dist/public/assets/_C04ADGqC.js +0 -1
  348. package/dist/public/assets/_C0spplQ-.js +0 -1
  349. package/dist/public/assets/_C2NGeccQ.js.br +0 -0
  350. package/dist/public/assets/_C2lKGi-7.js +0 -1
  351. package/dist/public/assets/_C7wOvGGt.js.br +0 -0
  352. package/dist/public/assets/_C7x79ALL.js.br +0 -0
  353. package/dist/public/assets/_C82_OMnf.js.br +0 -0
  354. package/dist/public/assets/_C92r8CS9.js +0 -1
  355. package/dist/public/assets/_CAaE_29m.js.br +0 -0
  356. package/dist/public/assets/_CC5Ll6yL.js.br +0 -0
  357. package/dist/public/assets/_CFRyEmz9.js.br +0 -0
  358. package/dist/public/assets/_CFjEXYsy.js.br +0 -0
  359. package/dist/public/assets/_CH6cXBn1.js.br +0 -0
  360. package/dist/public/assets/_CHZBmkiY.js.br +0 -0
  361. package/dist/public/assets/_CJmWqm4C.js +0 -1
  362. package/dist/public/assets/_CMO2Z_Bc.js +0 -1
  363. package/dist/public/assets/_CT9asvR7.js.br +0 -0
  364. package/dist/public/assets/_CYNPx6bU.js +0 -1
  365. package/dist/public/assets/_CaReJNeq.js +0 -1
  366. package/dist/public/assets/_CbZ4iWLd.js +0 -1
  367. package/dist/public/assets/_CclDITtv.js +0 -1
  368. package/dist/public/assets/_CcvFyGwr.js +0 -1
  369. package/dist/public/assets/_CdSpe7--.js.br +0 -0
  370. package/dist/public/assets/_CfSr8jIv.js +0 -1
  371. package/dist/public/assets/_CfhM3fwF.js +0 -1
  372. package/dist/public/assets/_Cg9u1cIy.js +0 -1
  373. package/dist/public/assets/_CipnEfhW.js.br +0 -0
  374. package/dist/public/assets/_ClKuBt_u.js.br +0 -0
  375. package/dist/public/assets/_ClqL5v_T.js.br +0 -0
  376. package/dist/public/assets/_Clxk4NM9.js.br +0 -0
  377. package/dist/public/assets/_CmCSdTYC.js.br +0 -0
  378. package/dist/public/assets/_CoaHm3nd.js +0 -1
  379. package/dist/public/assets/_CpFF408S.js.br +0 -0
  380. package/dist/public/assets/_CpU5S1i1.js +0 -1
  381. package/dist/public/assets/_CqrVmqkV.js +0 -1
  382. package/dist/public/assets/_Cv9dhNUU.js.br +0 -0
  383. package/dist/public/assets/_CvYqa2gH.js +0 -1
  384. package/dist/public/assets/_D0t4sewY.js.br +0 -0
  385. package/dist/public/assets/_D140ilf3.js.br +0 -0
  386. package/dist/public/assets/_D1L2c6wa.js.br +0 -0
  387. package/dist/public/assets/_D1hTHvx9.js +0 -1
  388. package/dist/public/assets/_D3_2ocdx.js +0 -1
  389. package/dist/public/assets/_D3df-HXh.js.br +0 -0
  390. package/dist/public/assets/_D3hZCQDD.js +0 -1
  391. package/dist/public/assets/_D665uiM0.js.br +0 -0
  392. package/dist/public/assets/_D74LN5c6.js +0 -1
  393. package/dist/public/assets/_D7wqbxr-.js +0 -1
  394. package/dist/public/assets/_DB0S6NuE.js +0 -1
  395. package/dist/public/assets/_DC-362Aa.js.br +0 -0
  396. package/dist/public/assets/_DDcVzNls.js +0 -1
  397. package/dist/public/assets/_DECzT6bt.js +0 -1
  398. package/dist/public/assets/_DLlMV9-6.js +0 -1
  399. package/dist/public/assets/_DM43C9JL.js +0 -1
  400. package/dist/public/assets/_DP1Fr0Go.js.br +0 -0
  401. package/dist/public/assets/_DP401U9L.js.br +0 -0
  402. package/dist/public/assets/_DQ-mN0nj.js.br +0 -0
  403. package/dist/public/assets/_DR3Klkrj.js.br +0 -0
  404. package/dist/public/assets/_DTeRAxTo.js.br +0 -0
  405. package/dist/public/assets/_DVMRwfVQ.js.br +0 -0
  406. package/dist/public/assets/_DW_Ubprt.js +0 -1
  407. package/dist/public/assets/_DXXk9nXp.js +0 -1
  408. package/dist/public/assets/_D_Gans_z.js.br +0 -0
  409. package/dist/public/assets/_DaB8vi2D.js +0 -1
  410. package/dist/public/assets/_DbUljy8T.js.br +0 -0
  411. package/dist/public/assets/_DbXISrnz.js.br +0 -0
  412. package/dist/public/assets/_DbZt6CiW.js.br +0 -0
  413. package/dist/public/assets/_Dbu06XRI.js.br +0 -0
  414. package/dist/public/assets/_DckneeMY.js +0 -1
  415. package/dist/public/assets/_DcxKRExU.js.br +0 -0
  416. package/dist/public/assets/_DfqWGAs9.js.br +0 -0
  417. package/dist/public/assets/_Dgl579Nh.js +0 -1
  418. package/dist/public/assets/_DibgD9wu.js.br +0 -0
  419. package/dist/public/assets/_DiyrK5Lf.js +0 -1
  420. package/dist/public/assets/_Dj3bzjmr.js.br +0 -0
  421. package/dist/public/assets/_Do7xRvdh.js +0 -1
  422. package/dist/public/assets/_Dof9bk1s.js.br +0 -0
  423. package/dist/public/assets/_DpPC5wTX.js.br +0 -0
  424. package/dist/public/assets/_DpUjTs7G.js +0 -1
  425. package/dist/public/assets/_DpkEy7xD.js.br +0 -0
  426. package/dist/public/assets/_DqPdlS_6.js.br +0 -0
  427. package/dist/public/assets/_DrHa8D7P.js +0 -1
  428. package/dist/public/assets/_Ds1I-o0I.js.br +0 -0
  429. package/dist/public/assets/_DtvewBGv.js.br +0 -0
  430. package/dist/public/assets/_DumoUwwg.js +0 -1
  431. package/dist/public/assets/_Dv4VzdiO.js +0 -1
  432. package/dist/public/assets/_DvQxG-WL.js.br +0 -0
  433. package/dist/public/assets/_DxQqRLZa.js +0 -1
  434. package/dist/public/assets/_DzNaxOWz.js.br +0 -0
  435. package/dist/public/assets/_DzgXbNBA.js.br +0 -0
  436. package/dist/public/assets/_FklcZQWH.js +0 -1
  437. package/dist/public/assets/_G89RhQlY.js.br +0 -0
  438. package/dist/public/assets/_Gds0N5t0.js.br +0 -0
  439. package/dist/public/assets/_GiXeI3GK.js +0 -1
  440. package/dist/public/assets/_Gll_ORl5.js +0 -1
  441. package/dist/public/assets/_HfPt-BIP.js.br +0 -0
  442. package/dist/public/assets/_IiWL7q-1.js.br +0 -0
  443. package/dist/public/assets/_Jr9Fn7zH.js.br +0 -0
  444. package/dist/public/assets/_Ls26XOto.js +0 -1
  445. package/dist/public/assets/_NFyQLwL2.js.br +0 -0
  446. package/dist/public/assets/_Nhgi-QD-.js +0 -1
  447. package/dist/public/assets/_QAl9MOeZ.js.br +0 -0
  448. package/dist/public/assets/_TQk60Mlv.js.br +0 -0
  449. package/dist/public/assets/_T_ugRwFS.js.br +0 -0
  450. package/dist/public/assets/_TnU4GgL4.js.br +0 -0
  451. package/dist/public/assets/_UpY10-py.js.br +0 -0
  452. package/dist/public/assets/_Usk3bCPM.js +0 -1
  453. package/dist/public/assets/_Vlcj833j.js.br +0 -0
  454. package/dist/public/assets/_Wo5eUHN5.js.br +0 -0
  455. package/dist/public/assets/__ALUCVjh.js.br +0 -0
  456. package/dist/public/assets/_aZ6tRh8w.js +0 -1
  457. package/dist/public/assets/_bqkRF2KZ.js.br +0 -0
  458. package/dist/public/assets/_eMO2gO0b.js +0 -1
  459. package/dist/public/assets/_l1uKMSvb.js +0 -1
  460. package/dist/public/assets/_mP9WBNxQ.js.br +0 -0
  461. package/dist/public/assets/_mY65qOO7.js +0 -1
  462. package/dist/public/assets/_ncO15QKP.js.br +0 -0
  463. package/dist/public/assets/_oZz3CTxP.js +0 -1
  464. package/dist/public/assets/_olpqzRSA.js.br +0 -0
  465. package/dist/public/assets/_rCLcJh8a.js.br +0 -0
  466. package/dist/public/assets/_scUJ1lcr.js +0 -1
  467. package/dist/public/assets/_sw1ZHuO5.js +0 -1
  468. package/dist/public/assets/_tGYm6QKl.js.br +0 -0
  469. package/dist/public/assets/_uqG4sflc.js.br +0 -0
  470. package/dist/public/assets/_wmcdeGwt.js +0 -1
  471. package/dist/public/assets/_xR8BGGM6.js +0 -1
  472. package/dist/public/assets/_zCwVHOcY.js +0 -1
  473. package/dist/public/assets/files-view-tHbs4LZi.js +0 -2
  474. package/dist/public/assets/manage-workspace-B2b1EELW.js +0 -2
  475. package/dist/public/assets/new-CG7PlpHU.js +0 -1
  476. package/dist/public/assets/new-workspace-CSFjnPk3.js +0 -2
  477. package/dist/public/assets/review-view-0JOZa_hN.js +0 -2
  478. package/dist/public/assets/settings-CG7PlpHU.js +0 -1
  479. package/dist/public/assets/settings-page-CUvav0nq.js +0 -2
  480. package/dist/public/assets/styles-C9roDUa_.css.br +0 -0
  481. package/dist/public/assets/w-CG7PlpHU.js +0 -1
  482. package/dist/public/assets/w._-BAovoZD2.js +0 -1
  483. package/dist/public/assets/w._-CG7PlpHU.js +0 -1
  484. package/dist/public/assets/w._-DRGvcgb-.js +0 -1
@@ -139,9 +139,13 @@ function sentText(id, r, asked) {
139
139
 
140
140
  function printReply(r) {
141
141
  const replied = r.kind === "reply" || r.answers;
142
- const head = replied
143
- ? `${r.label} replied${r.answers ? ` to ${r.answers}` : ""}:`
144
- : `${r.label}: ${r.text}`;
142
+ const head = !replied
143
+ ? `${r.label}: ${r.text}`
144
+ : r.held
145
+ ? `${r.label} is not done (it waits on ${r.held}), and wrote${r.answers ? ` to ${r.answers}` : ""}:`
146
+ : r.follows
147
+ ? `${r.label} followed up${r.answers ? ` on ${r.answers}` : ""}, from a turn it started on its own after its reply:`
148
+ : `${r.label} replied${r.answers ? ` to ${r.answers}` : ""}:`;
145
149
  console.log(head);
146
150
  if (replied) console.log(`${r.text}\n`);
147
151
  if (r.asks === "turn")
@@ -214,7 +218,7 @@ export const commands = [
214
218
  {
215
219
  name: "session",
216
220
  summary:
217
- "this session and the workspace's others: new, fanout, send, wait, keep, team, kill",
221
+ "this session and the workspace's others: new, fanout, send, wait, hold, keep, team, kill",
218
222
  help: `work session [--json]
219
223
  This session (WORK_SESSION_ID): its id, agent, name, state, and the
220
224
  workspace it is in (id, name, path) — what a link names (/w/<id>/…).
@@ -290,6 +294,13 @@ work session wait [<id>|<group>...] [--any] [--timeout <seconds>]
290
294
  typed in too. A group's come once all its members have answered, unless
291
295
  --any: then whatever is in, as soon as anything is. Exits 124 if some
292
296
  are still working after --timeout (${WAIT_S} s).
297
+ work session hold "<what you wait on>"
298
+ End this turn before your work is done — a job of yours runs on, and
299
+ its end wakes you — without it reading as your answer: the sessions
300
+ waiting on your reply get this turn's last message as an interim one,
301
+ saying what you wait on, and wait on; you are not closed for being
302
+ done meanwhile; and the last message of the turn the job's end wakes
303
+ you into is the reply (hold again there to wait on more).
293
304
  work session keep <id>
294
305
  Keep a session this one started open for follow-ups, as \`new --keep\`
295
306
  would have: it is never closed for being done.
@@ -559,6 +570,19 @@ work session kill --done
559
570
  );
560
571
  return;
561
572
  }
573
+ case "hold": {
574
+ const me = sessionId(ctx);
575
+ const what = rest.join(" ").trim();
576
+ if (!what) ctx.die('usage: work session hold "<what you wait on>"');
577
+ const r = await ctx.api.post(`/api/sessions/${me}/hold${by()}`, {
578
+ what,
579
+ });
580
+ return ctx.out(r, () =>
581
+ console.log(
582
+ `held: ${r.waiting.join(", ")} ${r.waiting.length === 1 ? "gets" : "get"} this turn's last message as an interim reply and ${r.waiting.length === 1 ? "waits" : "wait"} on; the last message of the turn its end wakes you into is the reply`,
583
+ ),
584
+ );
585
+ }
562
586
  case "keep": {
563
587
  const [id] = rest;
564
588
  if (!id) ctx.die("usage: work session keep <id>");
@@ -83,101 +83,101 @@ var toastTitle = {
83
83
  warn: "_w",
84
84
  info: "_x"
85
85
  };
86
- var tocDot = "_de _ba";
86
+ var tocDot = "_cK _ba";
87
87
  //#endregion
88
88
  //#region src/tags/settings-agents.css.ts
89
- var agentRow = "_eU _dK";
90
- var list$3 = "_dO _dw _dJ _dM";
89
+ var agentRow = "_eT _dK";
90
+ var list$3 = "_dO _dj _dJ _dM";
91
91
  var metaChip = "_d2 _bz _by";
92
- var sectionCount = "_dt _bp _bq";
93
- var usageNote = "_ke _by";
94
- var pop$2 = "_hw _bN";
95
- var spinner = "_hz _bD _bi";
96
- var toolLead = "_gZ _dX";
97
- var name$4 = "_gT _dX";
98
- var desc$1 = "_gU _dY";
92
+ var sectionCount = "_dg _bp _bq";
93
+ var usageNote = "_j3 _by";
94
+ var pop$2 = "_hp _bN";
95
+ var spinner = "_hs _bD _bi";
96
+ var toolLead = "_gM _dX";
97
+ var name$4 = "_he _dX";
98
+ var desc$1 = "_hf _dY";
99
99
  //#endregion
100
100
  //#region src/tags/lsp-add-dialog.css.ts
101
- var addDlg = "_mh _bV";
102
- var key$1 = "_lQ _lO";
103
- var addTile = "_lS _lO";
104
- var field$2 = "_l3 _bA";
105
- var keyField = "_l4 _l3 _bA";
106
- var labelField = "_l5 _l3 _bA";
107
- var detailsToggle = "_gd _6";
108
- var themeSeg = "_fw _bR";
109
- var checkList = "_hh _du";
101
+ var addDlg = "_n9 _bV";
102
+ var key$1 = "_mi _mg";
103
+ var addTile = "_mk _mg";
104
+ var field$2 = "_mv _bA";
105
+ var keyField = "_mw _mv _bA";
106
+ var labelField = "_mx _mv _bA";
107
+ var detailsToggle = "_hL _6";
108
+ var themeSeg = "_fE _bR";
109
+ var checkList = "_g5 _dh";
110
110
  //#endregion
111
111
  //#region src/tags/prompt-dialog.css.ts
112
112
  var promptDlg = "_bZ _bV";
113
- var item$1 = "_b6 _D";
113
+ var item$1 = "_b4 _D";
114
114
  var glance = "_dG _D";
115
115
  //#endregion
116
116
  //#region src/tags/side-nav.css.ts
117
- var iconBtn = "_b9 _D";
118
- var settingsDot = "_b_ _bQ";
119
- var notifyBtn = "_ce _D";
117
+ var iconBtn = "_b7 _D";
118
+ var settingsDot = "_b8 _bQ";
119
+ var notifyBtn = "_cc _D";
120
120
  //#endregion
121
121
  //#region src/styles/session-pop.css.ts
122
- var sessionPop = "_cg _bN";
123
- var sessionPopBtn = "_ch _bk";
124
- var wsBtn = "_e6 _bk";
125
- var rowIcon = "_e8 _bF _D";
126
- var prChip = "_lx _M _lr";
122
+ var sessionPop = "_ce _bN";
123
+ var sessionPopBtn = "_cf _bk";
124
+ var wsBtn = "_es _bk";
125
+ var rowIcon = "_eu _bF _D";
126
+ var prChip = "_kX _M _kR";
127
127
  //#endregion
128
128
  //#region src/tags/port-chip.css.ts
129
- var port = "_oL _M _lr";
129
+ var port = "_ny _M _kR";
130
130
  var depth = {
131
- "1": "_kO",
132
- "2": "_kP",
133
- "3": "_kQ"
131
+ "1": "_lp",
132
+ "2": "_lq",
133
+ "3": "_lr"
134
134
  };
135
- var open = "_kW _bk";
136
- var action = "_k1 _bI _D";
135
+ var open = "_lx _bk";
136
+ var action = "_lC _bI _D";
137
137
  var toggle = "_d7 _6";
138
138
  var fold = "_d8 _dL";
139
139
  var statusOf = {
140
- queued: "_mK",
141
- starting: "_mL",
142
- working: "_mM",
143
- waiting: "_mN",
144
- idle: "_mO",
145
- done: "_mP",
146
- closed: "_mQ"
140
+ queued: "_kA",
141
+ starting: "_kB",
142
+ working: "_kC",
143
+ waiting: "_kD",
144
+ idle: "_kE",
145
+ done: "_kF",
146
+ closed: "_kG"
147
147
  };
148
- var item = "_kr _bk";
149
- var menu = "_nc _cg _bN";
150
- var menuItem = "_ne _bk";
151
- var findBtn$1 = "_jh _ih _bG _D";
152
- var tool = "_ih _bG _D";
153
- var heldRefresh = "_ip _M";
154
- var pop$1 = "_no _cg _bN";
148
+ var item = "_li _bk";
149
+ var menu = "_m1 _ce _bN";
150
+ var menuItem = "_m3 _bk";
151
+ var findBtn$1 = "_jc _ic _bG _D";
152
+ var tool = "_ic _bG _D";
153
+ var heldRefresh = "_ik _M";
154
+ var pop$1 = "_ne _ce _bN";
155
155
  var fileFilter = "_oP _F";
156
- var findInput = "_ex _F";
157
- var keybarIconBtn = "_eG _bI _D";
158
- var input = "_cN _F";
159
- var group = "_cQ _6";
160
- var hint$1 = "_nz _bp _3";
161
- var sheetDir = "_n6 _bP";
162
- var upBtn = "_iC _bG _D";
163
- var findBtn = "_iG _ih _bG _D";
164
- var goBtn = "_iH _ih _bG _D";
165
- var note = "_mo _by";
156
+ var findInput = "_e4 _F";
157
+ var keybarIconBtn = "_fc _bI _D";
158
+ var input = "_du _F";
159
+ var group = "_dx _6";
160
+ var hint$1 = "_n0 _bp _3";
161
+ var sheetDir = "_nR _bP";
162
+ var upBtn = "_ix _bG _D";
163
+ var findBtn = "_iB _ic _bG _D";
164
+ var goBtn = "_iC _ic _bG _D";
165
+ var note = "_nh _by";
166
166
  //#endregion
167
167
  //#region src/tags/manage-workspace.css.ts
168
- var procCmd = "_gE _dX";
169
- var factCopy = "_gL _bI _D";
170
- var resultRow = "_lc _bk";
171
- var resultBranch = "_ld _d2 _bz _by _bF _D";
172
- var urlAction = "_le _d2 _bz _by _d3";
173
- var curRow = "_gs _dR";
168
+ var procCmd = "_gs _dX";
169
+ var factCopy = "_gz _bI _D";
170
+ var resultRow = "_l0 _bk";
171
+ var resultBranch = "_l1 _d2 _bz _by _bF _D";
172
+ var urlAction = "_l2 _d2 _bz _by _d3";
173
+ var curRow = "_fh _dR";
174
174
  //#endregion
175
175
  //#region src/tags/join-dialog.css.ts
176
- var dlg = "_l_ _bV";
177
- var hint = "_ma _by";
178
- var kbtn = "_cD _bH _D";
179
- var repeat = "_cG _cF";
180
- var dpadUser = "_cJ _cF";
181
- var dpadEsc = "_cK _cF";
176
+ var dlg = "_n1 _bV";
177
+ var hint = "_n2 _by";
178
+ var kbtn = "_c0 _bH _D";
179
+ var repeat = "_c3 _c2";
180
+ var dpadUser = "_c6 _c2";
181
+ var dpadEsc = "_c7 _c2";
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 };
@@ -750,6 +750,16 @@ var STEPS = [
750
750
  up(db) {
751
751
  db.exec("ALTER TABLE session_messages ADD COLUMN by_send INTEGER NOT NULL DEFAULT 0");
752
752
  }
753
+ },
754
+ {
755
+ version: 12,
756
+ name: "follow-ups and held replies",
757
+ up(db) {
758
+ db.exec(`
759
+ ALTER TABLE session_messages ADD COLUMN follows TEXT;
760
+ ALTER TABLE session_messages ADD COLUMN held TEXT;
761
+ `);
762
+ }
753
763
  }
754
764
  ];
755
765
  var LATEST = STEPS.at(-1).version;
@@ -9478,7 +9488,7 @@ function publishChange(sessionId) {
9478
9488
  const row = get("SELECT workspace_id FROM sessions WHERE id = ?", sessionId);
9479
9489
  if (row?.workspace_id) {
9480
9490
  const workspaceId = row.workspace_id;
9481
- import("./_BKkT73fv.js").then((m) => m.notifySessionsChanged(workspaceId));
9491
+ import("./_COxuRDjJ.js").then((m) => m.notifySessionsChanged(workspaceId));
9482
9492
  return;
9483
9493
  }
9484
9494
  publish("sessions.changed");
@@ -17576,7 +17586,7 @@ function notifySessionsChanged(workspaceId) {
17576
17586
  async function emitSessionsChanged(workspaceId) {
17577
17587
  try {
17578
17588
  const states = await sessionStates();
17579
- const { teamsOf } = await import("./_BviTiVOB.js");
17589
+ const { teamsOf } = await import("./_CXys7J6U.js");
17580
17590
  publish("sessions.changed", {
17581
17591
  workspaceId,
17582
17592
  sessions: listSessions(workspaceId).map((s) => ({
@@ -1,4 +1,4 @@
1
- import { $ as reopenSession, A as closedSession, An as onFinished, Bn as turnPhase, Dr as getSetting, Fn as setExpecting, Hn as turnSince, J as notifySessionsChanged, Kn as agentLabel, L as getSession, Mn as onTurnEnd, Nn as sessionWatched, Or as isKnownAgent, Q as renameSession, Qr as httpError, R as interruptSession, Sn as lastTypedAt, U as listPanesWithin, Vn as turnSettling, Y as onSessionDispose, _n as agentPhase, ai as db, an as interruptKeys, bn as hookReportedAt, cn as steerKeys, et as reopenable, gn as activityOf, ii as all, j as createSession, jn as onPhaseChange, nt as sendToSession, oi as get, pn as cleanSummary, tt as retireSession, z as killSession, zn as summaryOf } from "./_Cv5RrCSW.js";
1
+ import { $ as reopenSession, A as closedSession, An as onFinished, Bn as turnPhase, Dr as getSetting, Fn as setExpecting, Hn as turnSince, J as notifySessionsChanged, Kn as agentLabel, L as getSession, Mn as onTurnEnd, Nn as sessionWatched, Or as isKnownAgent, Q as renameSession, Qr as httpError, R as interruptSession, Sn as lastTypedAt, U as listPanesWithin, Vn as turnSettling, Y as onSessionDispose, _n as agentPhase, ai as db, an as interruptKeys, bn as hookReportedAt, cn as steerKeys, et as reopenable, gn as activityOf, ii as all, j as createSession, jn as onPhaseChange, nt as sendToSession, oi as get, pn as cleanSummary, tt as retireSession, z as killSession, zn as summaryOf } from "./_B_Wl8EDh.js";
2
2
  //#region src/server/messages.ts
3
3
  var team = {
4
4
  memberGroup: () => null,
@@ -24,6 +24,8 @@ 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
+ /** What a held reply says it waits on is a line, not a report. */
28
+ var MAX_HELD = 200;
27
29
  /** A pane that has written nothing for this long is a CLI at its prompt:
28
30
  * every agent's screen animates while it works (scraper.ts). */
29
31
  var PANE_STILL_MS = 4e3;
@@ -49,6 +51,12 @@ var deliveredAt = /* @__PURE__ */ new Map();
49
51
  var steered = /* @__PURE__ */ new Set();
50
52
  /** Turn ends held back from answering (`holdAnswer`), by session. */
51
53
  var held = /* @__PURE__ */ new Map();
54
+ /** Whom each session's turn's end last answered, and when, until a
55
+ * message goes into it or someone types into it: till then a turn of it
56
+ * is one it started on its own, still on what it was asked
57
+ * (`answerOwnTurn`). A restart forgets it, as agent-state forgets
58
+ * phases. */
59
+ var answered = /* @__PURE__ */ new Map();
52
60
  /** Sessions any row is addressed to: the scraper asks about every session
53
61
  * without a pane on every tick, so the answer for one with none is a set
54
62
  * lookup rather than a query. */
@@ -67,21 +75,26 @@ function render(row) {
67
75
  const owed = row.answers ? stillOwed(row.to_session, row.from_session) : "";
68
76
  const head = row.answers ? `Reply from session ${from} to ${row.answers}${owed ? `; ${owed}` : ""}` : `From session ${from}`;
69
77
  if (!row.wants_reply) return `[work] ${head}, no reply needed:\n\n${row.body}`;
70
- return row.by_send ? `[work] ${head}, which waits for your answer: send it with work session send ${row.from_session} "…". Your last message here is the user's: end on a line saying what you told it.\n\n${row.body}` : `[work] ${head}: your last message this turn goes back to it as your reply, so make it the whole answer (to ask it something first: work session send ${row.from_session} "…").\n\n${row.body}`;
78
+ return row.by_send ? `[work] ${head}, which waits for your answer: send it with work session send ${row.from_session} "…". Your last message here is the user's: end on a line saying what you told it.\n\n${row.body}` : `[work] ${head}: your last message this turn goes back to it as your reply, so make it the whole answer (to ask it something first: work session send ${row.from_session} "…"; to end the turn while a job of yours runs on, first run work session hold "<what you wait on>": this turn's last message then goes as an interim reply, and the last message of the turn the job's end wakes you into is the reply).\n\n${row.body}`;
71
79
  }
72
80
  case "reply": {
81
+ if (row.held) return `[work] Interim reply from session ${from}${row.answers ? ` to ${row.answers}` : ""}: it is not done, it waits on ${row.held}, and its reply follows when it is (end your turn to wait for it, or run work session wait ${row.from_session}):\n\n${row.body}`;
73
82
  const owed = row.from_session ? stillOwed(row.to_session, row.from_session) : "";
74
- return `[work] Reply from session ${from}${row.answers ? ` to ${row.answers}` : ""}${owed ? `; ${owed}` : ""}. ${followUp(row.from_session ?? "<id>", row.to_session)}:\n\n${row.body}`;
83
+ return `[work] ${row.follows ? `Follow-up from session ${from}${row.answers ? ` on ${row.answers}` : ""}: the last message of a turn it started on its own after its reply of ${clock(row.follows)}` : `Reply from session ${from}${row.answers ? ` to ${row.answers}` : ""}`}${owed ? `; ${owed}` : ""}. ${followUp(row.from_session ?? "<id>", row.to_session)}:\n\n${row.body}`;
75
84
  }
76
85
  case "closed": return `[work] ${row.body}`;
77
86
  }
78
87
  }
79
- /** A message as a reply names it: when it was sent, and how it begins. */
80
- function excerpt(row) {
81
- const time = new Date(row.created_at).toLocaleTimeString("en-GB", {
88
+ /** A moment as a reply names it ("14:05"). */
89
+ function clock(at) {
90
+ return new Date(at).toLocaleTimeString("en-GB", {
82
91
  hour: "2-digit",
83
92
  minute: "2-digit"
84
93
  });
94
+ }
95
+ /** A message as a reply names it: when it was sent, and how it begins. */
96
+ function excerpt(row) {
97
+ const time = clock(row.created_at);
85
98
  const line = row.body.split("\n").find((l) => l.trim())?.trim() ?? "";
86
99
  return `${time} ("${line.length > EXCERPT ? `${line.slice(0, 39)}…` : line}")`;
87
100
  }
@@ -128,7 +141,7 @@ function groupClosing(rows) {
128
141
  * under its name. */
129
142
  function renderGroup(groupId, rows) {
130
143
  const closed = rows.filter((r) => r.kind === "closed").length;
131
- return [`[work] Group "${team.groupTitle(groupId)}" (${groupId}): ${rows.length - closed} ${rows.length - closed === 1 ? "reply" : "replies"}${closed ? `, ${closed} closed before replying` : ""}. To follow up with one: work session send <id> "…"${groupClosing(rows)}`, ...rows.map((r) => `## ${r.from_label ?? r.from_session}\n\n${r.body}`)].join("\n\n");
144
+ return [`[work] Group "${team.groupTitle(groupId)}" (${groupId}): ${rows.length - closed} ${rows.length - closed === 1 ? "reply" : "replies"}${closed ? `, ${closed} closed before replying` : ""}. To follow up with one: work session send <id> "…"${groupClosing(rows)}`, ...rows.map((r) => `## ${r.from_label ?? r.from_session}${r.held ? ` (interim: it waits on ${r.held})` : ""}\n\n${r.body}`)].join("\n\n");
132
145
  }
133
146
  /** Rows as typed in: each on its own, a group's together where its first
134
147
  * would be. */
@@ -161,9 +174,9 @@ function senderLabel(from, to) {
161
174
  const ws = get("SELECT name FROM workspaces WHERE id = ?", from.workspace_id);
162
175
  return `${labelOf(from)} in workspace ${ws?.name ?? from.workspace_id}`;
163
176
  }
164
- function insert(to, from, kind, body, wantsReply = false, groupId = null, answers = null, urgent = false, bySend = false) {
165
- return Number(db.prepare(`INSERT INTO session_messages (to_session, from_session, from_label, kind, body, wants_reply, group_id, answers, urgent, by_send)
166
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(to, from?.id ?? null, from ? senderLabel(from, to) : null, kind, body, wantsReply ? 1 : 0, groupId, answers, urgent ? 1 : 0, bySend ? 1 : 0).lastInsertRowid);
177
+ function insert(to, from, kind, body, wantsReply = false, groupId = null, answers = null, urgent = false, bySend = false, follows = null, held = null) {
178
+ return Number(db.prepare(`INSERT INTO session_messages (to_session, from_session, from_label, kind, body, wants_reply, group_id, answers, urgent, by_send, follows, held)
179
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(to, from?.id ?? null, from ? senderLabel(from, to) : null, kind, body, wantsReply ? 1 : 0, groupId, answers, urgent ? 1 : 0, bySend ? 1 : 0, follows, held).lastInsertRowid);
167
180
  }
168
181
  function deleteIds(ids) {
169
182
  if (!ids.length) return;
@@ -215,6 +228,7 @@ async function deliver(id) {
215
228
  }
216
229
  if (keys) steered.add(id);
217
230
  deliveredAt.set(id, Date.now());
231
+ answered.delete(id);
218
232
  deleteIds(rows.filter((r) => !r.wants_reply).map((r) => r.id));
219
233
  const owed = rows.filter((r) => r.wants_reply).map((r) => r.id);
220
234
  if (owed.length) db.prepare(`UPDATE session_messages SET delivered_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now')
@@ -343,7 +357,7 @@ function answerBySend(from, to) {
343
357
  const owed = all("SELECT * FROM session_messages WHERE to_session = ? AND from_session = ? AND kind = 'message' AND wants_reply = 1 AND by_send = 1 AND delivered_at IS NOT NULL ORDER BY id", from.id, to);
344
358
  if (!owed.length) return owed;
345
359
  deleteIds(owed.map((r) => r.id));
346
- db.prepare("UPDATE sessions SET answered_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE id = ?").run(from.id);
360
+ noteAnswered(from.id);
347
361
  return owed;
348
362
  }
349
363
  /** The replies (and word of sessions that closed) waiting for `me`, from
@@ -383,6 +397,10 @@ function takeReplies(me, from, any = false) {
383
397
  label: r.from_label,
384
398
  kind: r.kind,
385
399
  answers: r.answers,
400
+ /** A follow-up: when the reply it follows went. */
401
+ follows: r.follows,
402
+ /** An interim reply: what it waits on before it answers. */
403
+ held: r.held,
386
404
  /** It asks in turn: answered by this session's turn's end, or by
387
405
  * a send back (`send`). */
388
406
  asks: r.wants_reply ? r.by_send ? "send" : "turn" : null,
@@ -413,8 +431,8 @@ function messageStates() {
413
431
  * mid-turn, not at once (`holdAnswer`), and with what the turns folded
414
432
  * into this end said before it. */
415
433
  function answer(id, message, earlier = []) {
416
- if (!mailboxes.has(id)) return false;
417
- if (!steered.has(id)) return answerNow(id, message);
434
+ if (!mailboxes.has(id)) return answerOwnTurn(id, message);
435
+ if (!steered.has(id)) return answerNow(id, message) || answerOwnTurn(id, message);
418
436
  if (!get("SELECT 1 FROM session_messages WHERE to_session = ? AND wants_reply = 1 AND by_send = 0 AND delivered_at IS NOT NULL", id)) {
419
437
  steered.delete(id);
420
438
  return false;
@@ -469,20 +487,102 @@ function answerNow(id, message) {
469
487
  if (!owed.length || !session) return false;
470
488
  const body = replyBody(session, message);
471
489
  const group = team.memberGroup(id);
472
- let told = false;
490
+ const held = owed.find((r) => r.held)?.held ?? null;
491
+ const askers = /* @__PURE__ */ new Map();
473
492
  for (const asker of new Set(owed.map((r) => r.from_session))) {
474
493
  const to = asker ? getSession(asker) : void 0;
475
494
  if (!to || to.agent === "shell") continue;
476
- const answers = group ? null : yours(owed.filter((r) => r.from_session === asker));
477
- insert(to.id, session, "reply", body, false, group, answers);
495
+ const asked = owed.filter((r) => r.from_session === asker);
496
+ const answers = group ? null : yours(asked);
497
+ insert(to.id, session, "reply", body, false, group, answers, false, false, null, held);
498
+ askers.set(to.id, {
499
+ asked,
500
+ answers
501
+ });
502
+ }
503
+ if (held) db.prepare(`UPDATE session_messages SET held = NULL WHERE id IN (${owed.map(() => "?").join(",")})`).run(...owed.map((r) => r.id));
504
+ else {
505
+ deleteIds(owed.map((r) => r.id));
506
+ if (askers.size) {
507
+ answered.set(id, {
508
+ askers,
509
+ at: Date.now()
510
+ });
511
+ noteAnswered(id);
512
+ }
513
+ if (group) team.memberAnswered(id, message);
514
+ }
515
+ recompute();
516
+ kick();
517
+ return askers.size > 0;
518
+ }
519
+ /** `id` ends its turn under way before its work is done — a job of its
520
+ * own runs on and wakes it as it ends — and says so (`work session
521
+ * hold`): what it owes by its turn's end stays owed, so its askers wait
522
+ * on, and it is not closed for being done (server/team `doneWith`), and
523
+ * that end goes to them as an interim reply saying what it waits on. The
524
+ * turn the job's end wakes it into answers, or holds again. Held in a
525
+ * turn it started on its own after answering (`answerOwnTurn`), it owes
526
+ * its askers again what they had asked. Returns who waits on it. */
527
+ function holdReply(id, what) {
528
+ if (!getSession(id)) throw httpError(404, `no session ${id}`);
529
+ const waits = what.trim().replace(/\s+/g, " ").slice(0, MAX_HELD) || "a job of its own";
530
+ const bySend = get("SELECT 1 FROM session_messages WHERE to_session = ? AND wants_reply = 1 AND by_send = 1 AND delivered_at IS NOT NULL", id);
531
+ let held = db.prepare("UPDATE session_messages SET held = ? WHERE to_session = ? AND wants_reply = 1 AND by_send = 0 AND delivered_at IS NOT NULL").run(waits, id).changes;
532
+ const last = answered.get(id);
533
+ if (!held && last && lastTypedAt(id) <= last.at) {
534
+ for (const [asker, { asked }] of last.askers) {
535
+ const from = getSession(asker);
536
+ if (!from || from.agent === "shell") continue;
537
+ for (const row of asked) db.prepare(`INSERT INTO session_messages (to_session, from_session, from_label, kind, body, wants_reply, created_at, delivered_at, held)
538
+ VALUES (?, ?, ?, 'message', ?, 1, ?, strftime('%Y-%m-%dT%H:%M:%fZ', 'now'), ?)`).run(id, asker, senderLabel(from, id), row.body, row.created_at, waits);
539
+ held++;
540
+ }
541
+ answered.delete(id);
542
+ }
543
+ if (!held) throw httpError(409, bySend ? `${id} answers by a send (\`work session send <id> "…"\`, as its header says): send it once the work is done` : `nobody waits on a reply from ${id}: there is nothing to hold`);
544
+ recompute();
545
+ return {
546
+ waiting: all("SELECT DISTINCT from_session AS id FROM session_messages WHERE to_session = ? AND held IS NOT NULL AND from_session IS NOT NULL", id).map((r) => r.id),
547
+ held: waits
548
+ };
549
+ }
550
+ /** A turn the session started on its own since its turn's end answered
551
+ * (nothing went into it, nobody typed into it): what it was asked, still
552
+ * — the job it ended that turn to wait on has ended, a wakeup it set has
553
+ * come — so its last message goes to the same askers as a follow-up, and
554
+ * again for each such turn after. Whatever woke it, the CLI's turn end
555
+ * is all this reads, so it is the same for every agent. A follow-up
556
+ * leaves a group alone: its member answered when its reply went. */
557
+ function answerOwnTurn(id, message) {
558
+ const last = answered.get(id);
559
+ const session = getSession(id);
560
+ if (!last || !session || !message) return false;
561
+ if (lastTypedAt(id) > last.at) {
562
+ answered.delete(id);
563
+ return false;
564
+ }
565
+ const body = replyBody(session, message);
566
+ const follows = new Date(last.at).toISOString();
567
+ let told = false;
568
+ for (const [asker, { answers }] of last.askers) {
569
+ const to = getSession(asker);
570
+ if (!to || to.agent === "shell") continue;
571
+ insert(to.id, session, "reply", body, false, null, answers, false, false, follows);
478
572
  told = true;
479
573
  }
480
- deleteIds(owed.map((r) => r.id));
481
- if (told) db.prepare("UPDATE sessions SET answered_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE id = ?").run(id);
482
- if (group) team.memberAnswered(id, message);
574
+ if (!told) {
575
+ answered.delete(id);
576
+ return false;
577
+ }
578
+ last.at = Date.now();
579
+ noteAnswered(id);
483
580
  recompute();
484
581
  kick();
485
- return told;
582
+ return true;
583
+ }
584
+ function noteAnswered(id) {
585
+ db.prepare("UPDATE sessions SET answered_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now') WHERE id = ?").run(id);
486
586
  }
487
587
  /** The session's process is gone, or the session is: whoever waits on it
488
588
  * for a reply is told none is coming, and what was queued for it goes —
@@ -490,6 +590,7 @@ function answerNow(id, message) {
490
590
  function settle(id, why) {
491
591
  dropHold(id);
492
592
  steered.delete(id);
593
+ answered.delete(id);
493
594
  const session = getSession(id);
494
595
  const label = session ? labelOf(session) : id;
495
596
  const group = team.memberGroup(id);
@@ -964,4 +1065,4 @@ function startTeam() {
964
1065
  kickPool();
965
1066
  }
966
1067
  //#endregion
967
- export { takeReplies as _, keepSession as a, retryMember as c, teamOf as d, teamsOf as f, startMessages as g, sessionGone as h, createGroup as i, skipMember as l, sendMessage as m, closeDone as n, kickPool as o, messageStates as p, closeFinished as r, memberWorkspace as s, clearGroup as t, startTeam as u };
1068
+ export { startMessages as _, keepSession as a, retryMember as c, teamOf as d, teamsOf as f, sessionGone as g, sendMessage as h, createGroup as i, skipMember as l, messageStates as m, closeDone as n, kickPool as o, holdReply as p, closeFinished as r, memberWorkspace as s, clearGroup as t, startTeam as u, takeReplies as v };
@@ -0,0 +1,2 @@
1
+ import { J as notifySessionsChanged } from "./_B_Wl8EDh.js";
2
+ export { notifySessionsChanged };
@@ -0,0 +1,2 @@
1
+ import { f as teamsOf } from "./_B_YHcR6n.js";
2
+ export { teamsOf };