@dylanpiercey/work 0.2.28 → 0.2.30
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.
- package/bin/cli/session.mjs +65 -20
- package/dist/_CeTAKoPH.js +2 -0
- package/dist/{_DQbVrULO.js → _Chg81Eud.js} +102 -15
- package/dist/{_T4JTrl4v.js → _CopRMeCL.js} +110 -110
- package/dist/{_cvaVxDgR.js → _DAiB3S3K.js} +110 -20
- package/dist/_ENzyVrzA.js +2 -0
- package/dist/index.mjs +906 -888
- package/dist/public/assets/_-T13RFCW.js +1 -0
- package/dist/public/assets/_0IFpvOwL.js +1 -0
- package/dist/public/assets/{_Bnw8FrLu.js → _1nWtmQtG.js} +1 -1
- package/dist/public/assets/_1nWtmQtG.js.br +0 -0
- package/dist/public/assets/_1s7Uwkzr.js +1 -0
- package/dist/public/assets/{_kPncZjOq.js → _2jVdg7lL.js} +1 -1
- package/dist/public/assets/_2jVdg7lL.js.br +0 -0
- package/dist/public/assets/{_DeB4j_R-.js → _3FXqoPOT.js} +1 -1
- package/dist/public/assets/_3FXqoPOT.js.br +0 -0
- package/dist/public/assets/_3osxgZP2.js +1 -0
- package/dist/public/assets/_6UGLDULL.js +1 -0
- package/dist/public/assets/_836nmy9d.js +1 -0
- package/dist/public/assets/{_B-48shG8.js → _83I7lzje.js} +1 -1
- package/dist/public/assets/{_DHDlo4H6.js → _AYlO5j1O.js} +1 -1
- package/dist/public/assets/_AYlO5j1O.js.br +0 -0
- package/dist/public/assets/_B2bRy6Jp.js +1 -0
- package/dist/public/assets/{_BcV_8aVm.js → _B2zwwiDv.js} +1 -1
- package/dist/public/assets/_B2zwwiDv.js.br +0 -0
- package/dist/public/assets/{_CfTyEkJ9.js → _B7GiBoph.js} +1 -1
- package/dist/public/assets/_B7GiBoph.js.br +0 -0
- package/dist/public/assets/_B91PCbMY.js +1 -0
- package/dist/public/assets/{_CWn2nvZH.js → _BCRs1bwJ.js} +1 -1
- package/dist/public/assets/_BCRs1bwJ.js.br +0 -0
- package/dist/public/assets/{_DnXCnynP.js → _BDn4HD2W.js} +1 -1
- package/dist/public/assets/_BDn4HD2W.js.br +0 -0
- package/dist/public/assets/_BDzTdM29.js +1 -0
- package/dist/public/assets/{_D_5swmVD.js → _BEP0J_m3.js} +1 -1
- package/dist/public/assets/_BEP0J_m3.js.br +0 -0
- package/dist/public/assets/_BEbZSOvk.js +1 -0
- package/dist/public/assets/_BGoC3lTP.js +1 -0
- package/dist/public/assets/_BH1tZh9B.js +1 -0
- package/dist/public/assets/_BH1tZh9B.js.br +0 -0
- package/dist/public/assets/_BKXEVt9e.js +1 -0
- package/dist/public/assets/{_CqafooQ2.js → _BKZZ9XPy.js} +1 -1
- package/dist/public/assets/_BKZZ9XPy.js.br +0 -0
- package/dist/public/assets/_BL44t-JS.js +1 -0
- package/dist/public/assets/{_EhbzPnF_.js → _BLWXDoDV.js} +1 -1
- package/dist/public/assets/_BLWXDoDV.js.br +0 -0
- package/dist/public/assets/_BQuGwHXf.js +1 -0
- package/dist/public/assets/{_CwHghi3L.js → _BQvodX1C.js} +1 -1
- package/dist/public/assets/_BQvodX1C.js.br +0 -0
- package/dist/public/assets/_BV5olEXa.js +1 -0
- package/dist/public/assets/_BVSw3aNh.js +1 -0
- package/dist/public/assets/_BVcdtRf_.js +1 -0
- package/dist/public/assets/_BXxvq8re.js +1 -0
- package/dist/public/assets/{_B0mZDvbt.js → _BYenqYar.js} +1 -1
- package/dist/public/assets/_BYenqYar.js.br +0 -0
- package/dist/public/assets/{_C70Ru7e4.js → _BZ6-3aRi.js} +1 -1
- package/dist/public/assets/_BZ6-3aRi.js.br +0 -0
- package/dist/public/assets/{_DZRCq3kW.js → _B_qcXPC9.js} +1 -1
- package/dist/public/assets/_B_qcXPC9.js.br +0 -0
- package/dist/public/assets/_BcpPy78P.js +1 -0
- package/dist/public/assets/{_Bhgs0ti-.js → _BdHU-edg.js} +1 -1
- package/dist/public/assets/_BdHU-edg.js.br +0 -0
- package/dist/public/assets/_Bdf5gaft.js +1 -0
- package/dist/public/assets/{_BVaM_2sN.js → _BeNTkouv.js} +1 -1
- package/dist/public/assets/_BeNTkouv.js.br +0 -0
- package/dist/public/assets/_Beg__xOh.js +7 -0
- package/dist/public/assets/_Beg__xOh.js.br +0 -0
- package/dist/public/assets/{_BkBBIqd6.js → _BgcnQahZ.js} +1 -1
- package/dist/public/assets/_BgcnQahZ.js.br +0 -0
- package/dist/public/assets/_Bh4ION4Q.js +15 -0
- package/dist/public/assets/_Bh4ION4Q.js.br +0 -0
- package/dist/public/assets/_BhUF6bOH.js +1 -0
- package/dist/public/assets/{_VXBw_tMe.js → _BjZdKeIh.js} +1 -1
- package/dist/public/assets/_BjZdKeIh.js.br +0 -0
- package/dist/public/assets/{_BbW08zvP.js → _BkBPqtfk.js} +1 -1
- package/dist/public/assets/_BkBPqtfk.js.br +0 -0
- package/dist/public/assets/_Bkau_A22.js +1 -0
- package/dist/public/assets/{_DDCCCxgI.js → _BkxXwvbl.js} +1 -1
- package/dist/public/assets/_BkxXwvbl.js.br +0 -0
- package/dist/public/assets/_Bm0itLfu.js +1 -0
- package/dist/public/assets/{_DGujMY-3.js → _BquW9Mq3.js} +1 -1
- package/dist/public/assets/_BquW9Mq3.js.br +0 -0
- package/dist/public/assets/_Br3wdSoO.js +1 -0
- package/dist/public/assets/{_BdlaV7Yd.js → _Bu5aFirG.js} +1 -1
- package/dist/public/assets/_Bu5aFirG.js.br +0 -0
- package/dist/public/assets/_BuGdvR_J.js +1 -0
- package/dist/public/assets/{_DXXgPkXD.js → _By03QqCp.js} +1 -1
- package/dist/public/assets/_By03QqCp.js.br +0 -0
- package/dist/public/assets/_By8P5k5O.js +1 -0
- package/dist/public/assets/_BzNgpzLA.js +1 -0
- package/dist/public/assets/_BzNgpzLA.js.br +0 -0
- package/dist/public/assets/{_DbW7AP8F.js → _BzRQFqq0.js} +1 -1
- package/dist/public/assets/_BzRQFqq0.js.br +0 -0
- package/dist/public/assets/{_B9tAdQhn.js → _C-DrfZpp.js} +1 -1
- package/dist/public/assets/_C-DrfZpp.js.br +0 -0
- package/dist/public/assets/{_Bqi2O09O.js → _C0j7fr9S.js} +1 -1
- package/dist/public/assets/_C0j7fr9S.js.br +0 -0
- package/dist/public/assets/{_DtE2qH3C.js → _C1mdgKbt.js} +1 -1
- package/dist/public/assets/_C1mdgKbt.js.br +0 -0
- package/dist/public/assets/{_C7yx5SRF.js → _C2Agpk_d.js} +1 -1
- package/dist/public/assets/_C2Agpk_d.js.br +0 -0
- package/dist/public/assets/_C2K9sR3B.js +1 -0
- package/dist/public/assets/_C37J5Vvz.js +1 -0
- package/dist/public/assets/{_CVzVikZu.js → _C3BON5d4.js} +1 -1
- package/dist/public/assets/_C3BON5d4.js.br +0 -0
- package/dist/public/assets/_C6udtFak.js +1 -0
- package/dist/public/assets/{_BRlKTBWA.js → _C814DGlT.js} +1 -1
- package/dist/public/assets/_CA8LiEcw.js +2 -0
- package/dist/public/assets/_CA8LiEcw.js.br +0 -0
- package/dist/public/assets/{_tkbuT6xo.js → _CA9a_eff.js} +2 -2
- package/dist/public/assets/_CA9a_eff.js.br +0 -0
- package/dist/public/assets/{_CFEXZsE2.js → _CDgFgzEs.js} +1 -1
- package/dist/public/assets/_CDgFgzEs.js.br +0 -0
- package/dist/public/assets/_CHLAcK3s.js +1 -0
- package/dist/public/assets/_CJvbw6Iy.js +1 -0
- package/dist/public/assets/{_DB3BeOyN.js → _CMcq4Kb-.js} +1 -1
- package/dist/public/assets/_CMcq4Kb-.js.br +0 -0
- package/dist/public/assets/{_C8LGCsp6.js → _CPfRj6yT.js} +1 -1
- package/dist/public/assets/_CPfRj6yT.js.br +0 -0
- package/dist/public/assets/{_CyjtsL-H.js → _CPrNw6oc.js} +1 -1
- package/dist/public/assets/_CPrNw6oc.js.br +0 -0
- package/dist/public/assets/{_CncK57Bx.js → _CPrYPzWt.js} +1 -1
- package/dist/public/assets/_CPrYPzWt.js.br +0 -0
- package/dist/public/assets/{_g8m_kDFO.js → _CTTBbmr9.js} +4 -4
- package/dist/public/assets/_CTTBbmr9.js.br +0 -0
- package/dist/public/assets/_CTZrp4lA.js +1 -0
- package/dist/public/assets/{_D2QebskH.js → _CTxYtmZb.js} +1 -1
- package/dist/public/assets/_CTxYtmZb.js.br +0 -0
- package/dist/public/assets/_CU_PxmCu.js +1 -0
- package/dist/public/assets/{_CHkwXu6Z.js → _CVI2Cq0z.js} +1 -1
- package/dist/public/assets/_CVI2Cq0z.js.br +0 -0
- package/dist/public/assets/{_gZWLyxEW.js → _CWdTW25O.js} +1 -1
- package/dist/public/assets/_CWdTW25O.js.br +0 -0
- package/dist/public/assets/{_C6hKcO9v.js → _CXTLKZuy.js} +1 -1
- package/dist/public/assets/_CXTLKZuy.js.br +0 -0
- package/dist/public/assets/{_DSga17vP.js → _CYQO9g_a.js} +1 -1
- package/dist/public/assets/_C_se2bo_.js +1 -0
- package/dist/public/assets/{_CJ5gscHI.js → _CaKbOCDc.js} +1 -1
- package/dist/public/assets/_CaKbOCDc.js.br +0 -0
- package/dist/public/assets/_CaaWiJvp.js +1 -0
- package/dist/public/assets/{_z49a49tu.js → _CaatGOO2.js} +1 -1
- package/dist/public/assets/_CaatGOO2.js.br +0 -0
- package/dist/public/assets/_Ce7KLfeN.js +1 -0
- package/dist/public/assets/{_BxhDCdsz.js → _CeegeXP4.js} +1 -1
- package/dist/public/assets/_CeegeXP4.js.br +0 -0
- package/dist/public/assets/{_CIyU4fk4.js → _CfoLlTzi.js} +1 -1
- package/dist/public/assets/_CfoLlTzi.js.br +0 -0
- package/dist/public/assets/_ChHVJ3ol.js +1 -0
- package/dist/public/assets/{_CUcoGOVx.js → _CjBZ3V-k.js} +1 -1
- package/dist/public/assets/_CjBZ3V-k.js.br +0 -0
- package/dist/public/assets/_CjRsnulL.js +1 -0
- package/dist/public/assets/{_BC3iswQz.js → _Ck3lhK1n.js} +1 -1
- package/dist/public/assets/_Ck3lhK1n.js.br +0 -0
- package/dist/public/assets/_CkD0KW4Q.js +1 -0
- package/dist/public/assets/{_Dlcj6TBx.js → _CkJcBJSy.js} +1 -1
- package/dist/public/assets/_CkJcBJSy.js.br +0 -0
- package/dist/public/assets/{_BGxC2xS4.js → _CmK9nrXE.js} +1 -1
- package/dist/public/assets/_CmK9nrXE.js.br +0 -0
- package/dist/public/assets/{_CV93AUcf.js → _CmTOJZyu.js} +1 -1
- package/dist/public/assets/_CmTOJZyu.js.br +0 -0
- package/dist/public/assets/{_Ds-QwXCK.js → _Cp6ozHUZ.js} +1 -1
- package/dist/public/assets/_Cp6ozHUZ.js.br +0 -0
- package/dist/public/assets/_Cps9rNNk.js +1 -0
- package/dist/public/assets/_Cpyx9Ruh.js +1 -0
- package/dist/public/assets/_CqcL1Eao.js +1 -0
- package/dist/public/assets/_CtlujAAm.js +1 -0
- package/dist/public/assets/_CwkZNgvn.js +1 -0
- package/dist/public/assets/{_CBwhzPRp.js → _CzxSHuhZ.js} +1 -1
- package/dist/public/assets/_CzxSHuhZ.js.br +0 -0
- package/dist/public/assets/_D-Rp4dgl.js +1 -0
- package/dist/public/assets/_D266_Vlp.js +1 -0
- package/dist/public/assets/_D2GF-htM.js +1 -0
- package/dist/public/assets/_D3pfjalp.js +1 -0
- package/dist/public/assets/_D4AzhXxh.js +1 -0
- package/dist/public/assets/_D4CpPzsL.js +1 -0
- package/dist/public/assets/_D4yJkQJ2.js +1 -0
- package/dist/public/assets/_D4yJkQJ2.js.br +0 -0
- package/dist/public/assets/{_C8W1G7pP.js → _D5qfxWFD.js} +1 -1
- package/dist/public/assets/_D5qfxWFD.js.br +0 -0
- package/dist/public/assets/_D8on_jYa.js +1 -0
- package/dist/public/assets/_D9dATSiU.js +1 -0
- package/dist/public/assets/{_THpiwy9Y.js → _DA_yfueR.js} +1 -1
- package/dist/public/assets/_DA_yfueR.js.br +0 -0
- package/dist/public/assets/{_CENLn5ag.js → _DBWUn_hk.js} +1 -1
- package/dist/public/assets/_DBWUn_hk.js.br +0 -0
- package/dist/public/assets/_DEKwVNvx.js +1 -0
- package/dist/public/assets/_DEMDIxb5.js +1 -0
- package/dist/public/assets/_DEQKe3S_.js +1 -0
- package/dist/public/assets/_DFagCrMi.js +1 -0
- package/dist/public/assets/_DGF4RtFg.js +1 -0
- package/dist/public/assets/{_QIH6HEqN.js → _DJGwXMUo.js} +1 -1
- package/dist/public/assets/_DJGwXMUo.js.br +0 -0
- package/dist/public/assets/_DJUACfAD.js +1 -0
- package/dist/public/assets/_DLLzKLHg.js +1 -0
- package/dist/public/assets/_DLLzKLHg.js.br +0 -0
- package/dist/public/assets/{_BtdfVIoz.js → _DLa-y_iy.js} +1 -1
- package/dist/public/assets/_DLa-y_iy.js.br +0 -0
- package/dist/public/assets/{_Bh9mZqNd.js → _DPuNWxSI.js} +1 -1
- package/dist/public/assets/_DPuNWxSI.js.br +0 -0
- package/dist/public/assets/{_BZTdZJeh.js → _DUdKNx9_.js} +1 -1
- package/dist/public/assets/_DUdKNx9_.js.br +0 -0
- package/dist/public/assets/_DVPbb2iT.js +1 -0
- package/dist/public/assets/{_Ec89BFfK.js → _DWycKp4t.js} +1 -1
- package/dist/public/assets/_Db6eVZvt.js +1 -0
- package/dist/public/assets/{_tVi14-It.js → _Dbi3nN2O.js} +1 -1
- package/dist/public/assets/_Dbi3nN2O.js.br +0 -0
- package/dist/public/assets/_DdMi8QUd.js +1 -0
- package/dist/public/assets/_DdMi8QUd.js.br +0 -0
- package/dist/public/assets/{_ADrTMjUz.js → _DdUDNCq0.js} +1 -1
- package/dist/public/assets/_DdUDNCq0.js.br +0 -0
- package/dist/public/assets/{_7wu0vETX.js → _DeZD7vL6.js} +8 -8
- package/dist/public/assets/_DeZD7vL6.js.br +0 -0
- package/dist/public/assets/{_ClY3ux-V.js → _DiCUA-E5.js} +1 -1
- package/dist/public/assets/_DiCUA-E5.js.br +0 -0
- package/dist/public/assets/_DmRNEWiD.js +1 -0
- package/dist/public/assets/_DmRNEWiD.js.br +0 -0
- package/dist/public/assets/{_BYtWQBvo.js → _DmjEGnaF.js} +2 -2
- package/dist/public/assets/_DmjEGnaF.js.br +0 -0
- package/dist/public/assets/_Do43EuZn.js +1 -0
- package/dist/public/assets/{_DlbhpJx5.js → _Dp-XsWsH.js} +1 -1
- package/dist/public/assets/_Dp-XsWsH.js.br +0 -0
- package/dist/public/assets/_Dpglu31R.js +1 -0
- package/dist/public/assets/{_DkXVmNUi.js → _DqMUHXLw.js} +1 -1
- package/dist/public/assets/_DqMUHXLw.js.br +0 -0
- package/dist/public/assets/{__qkwvgYm.js → _DsA27QjF.js} +1 -1
- package/dist/public/assets/_DsA27QjF.js.br +0 -0
- package/dist/public/assets/{_wBsJknfY.js → _DuHglAUI.js} +1 -1
- package/dist/public/assets/_DuHglAUI.js.br +0 -0
- package/dist/public/assets/{_Ck0exoRL.js → _DuN-cK8E.js} +1 -1
- package/dist/public/assets/_DuN-cK8E.js.br +0 -0
- package/dist/public/assets/{_DHVmZFYy.js → _Dw_-SA4H.js} +1 -1
- package/dist/public/assets/_Dw_-SA4H.js.br +0 -0
- package/dist/public/assets/_DxSeNcRC.js +1 -0
- package/dist/public/assets/_Dy8acZsT.js +1 -0
- package/dist/public/assets/_DyGvFjZa.js +1 -0
- package/dist/public/assets/{_DG_7eobK.js → _DyUmXXU-.js} +1 -1
- package/dist/public/assets/_DyUmXXU-.js.br +0 -0
- package/dist/public/assets/_DykNNrdr.js +1 -0
- package/dist/public/assets/_DzEPImfm.js +1 -0
- package/dist/public/assets/{_CynqYnMI.js → _DzjCLvQi.js} +1 -1
- package/dist/public/assets/_DzjCLvQi.js.br +0 -0
- package/dist/public/assets/{_I5VvoSCX.js → _E07IbXLB.js} +1 -1
- package/dist/public/assets/_E07IbXLB.js.br +0 -0
- package/dist/public/assets/_FHwsU4gZ.js +1 -0
- package/dist/public/assets/_Fofr5sKy.js +1 -0
- package/dist/public/assets/{_CFZ5B792.js → _Gg8jyVZZ.js} +1 -1
- package/dist/public/assets/_Gg8jyVZZ.js.br +0 -0
- package/dist/public/assets/{_DYSvgYje.js → _IJCRJnsU.js} +1 -1
- package/dist/public/assets/_IJCRJnsU.js.br +0 -0
- package/dist/public/assets/{_C6WWvm9T.js → _K7ga0Dqk.js} +1 -1
- package/dist/public/assets/_K7ga0Dqk.js.br +0 -0
- package/dist/public/assets/_LdPWYt4y.js +1 -0
- package/dist/public/assets/_TDvyVlwC.js +1 -0
- package/dist/public/assets/{_BGDiyibR.js → _Ta125jL3.js} +1 -1
- package/dist/public/assets/_Ta125jL3.js.br +0 -0
- package/dist/public/assets/_V5ZuSZYX.js +1 -0
- package/dist/public/assets/_Y10XnZQW.js +1 -0
- package/dist/public/assets/{_CShA4sfZ.js → _Y9FHtX6j.js} +1 -1
- package/dist/public/assets/_Y9FHtX6j.js.br +0 -0
- package/dist/public/assets/{_zLpHv_aR.js → _Yx8Q2NOT.js} +1 -1
- package/dist/public/assets/{_q5NDjDt-.js → __6z1-Ygb.js} +1 -1
- package/dist/public/assets/__6z1-Ygb.js.br +0 -0
- package/dist/public/assets/_aG8pDXsg.js +1 -0
- package/dist/public/assets/{_D_CAa3Jz.js → _aYpQmauk.js} +1 -1
- package/dist/public/assets/_aYpQmauk.js.br +0 -0
- package/dist/public/assets/_bo0sEiBT.js +1 -0
- package/dist/public/assets/{_D_ylxWa2.js → _deqjKPFz.js} +1 -1
- package/dist/public/assets/_deqjKPFz.js.br +0 -0
- package/dist/public/assets/_e8TW1sso.js +1 -0
- package/dist/public/assets/_eg--nvdP.js +1 -0
- package/dist/public/assets/_f3e6gwAa.js +1 -0
- package/dist/public/assets/_lj9vK1z5.js +1 -0
- package/dist/public/assets/{_D5YMvwak.js → _pkRmCpeW.js} +1 -1
- package/dist/public/assets/_pkRmCpeW.js.br +0 -0
- package/dist/public/assets/{_CaNqsdTE.js → _t1As16Jt.js} +1 -1
- package/dist/public/assets/_t1As16Jt.js.br +0 -0
- package/dist/public/assets/{_9WNo3a6i.js → _tHyJ5Xi6.js} +1 -1
- package/dist/public/assets/_tHyJ5Xi6.js.br +0 -0
- package/dist/public/assets/{_DAVuT42t.js → _tOpEoZH4.js} +1 -1
- package/dist/public/assets/_tOpEoZH4.js.br +0 -0
- package/dist/public/assets/_ty5o-uiH.js +1 -0
- package/dist/public/assets/{_CaXlQ3bG.js → _xUrhkFuS.js} +1 -1
- package/dist/public/assets/_xUrhkFuS.js.br +0 -0
- package/dist/public/assets/_xjKIbnW7.js +1 -0
- package/dist/public/assets/files-view-tY8E79HV.js +2 -0
- package/dist/public/assets/manage-workspace-prQhYdbT.js +2 -0
- package/dist/public/assets/new-DOk4U23G.js +1 -0
- package/dist/public/assets/new-workspace-DngRQD4b.js +2 -0
- package/dist/public/assets/review-view-B053w0Ll.js +2 -0
- package/dist/public/assets/settings-DOk4U23G.js +1 -0
- package/dist/public/assets/settings-page-B2stQvSf.js +2 -0
- package/dist/public/assets/styles-IC-4KI8E.css +1 -0
- package/dist/public/assets/styles-IC-4KI8E.css.br +0 -0
- package/dist/public/assets/w-DOk4U23G.js +1 -0
- package/dist/public/assets/w._-BHX0YZuo.js +1 -0
- package/dist/public/assets/w._-DOk4U23G.js +1 -0
- package/dist/public/assets/w._-clPu_eBd.js +1 -0
- package/package.json +1 -1
- package/dist/_Cg63x2E_.js +0 -2
- package/dist/_CkGqrA7b.js +0 -2
- package/dist/public/assets/_06F4Uviu.js +0 -1
- package/dist/public/assets/_3M_MB7v1.js +0 -1
- package/dist/public/assets/_7wu0vETX.js.br +0 -0
- package/dist/public/assets/_8lptvSC4.js +0 -1
- package/dist/public/assets/_8lptvSC4.js.br +0 -0
- package/dist/public/assets/_9WNo3a6i.js.br +0 -0
- package/dist/public/assets/_ADrTMjUz.js.br +0 -0
- package/dist/public/assets/_B0mZDvbt.js.br +0 -0
- package/dist/public/assets/_B2KOnFOo.js +0 -1
- package/dist/public/assets/_B4LSXJRV.js +0 -1
- package/dist/public/assets/_B5bfOEq-.js +0 -1
- package/dist/public/assets/_B9_iN6wN.js +0 -1
- package/dist/public/assets/_B9tAdQhn.js.br +0 -0
- package/dist/public/assets/_BC3iswQz.js.br +0 -0
- package/dist/public/assets/_BCWFvtrH.js +0 -1
- package/dist/public/assets/_BGDiyibR.js.br +0 -0
- package/dist/public/assets/_BGxC2xS4.js.br +0 -0
- package/dist/public/assets/_BI5mqsGb.js +0 -1
- package/dist/public/assets/_BIME4HFQ.js +0 -1
- package/dist/public/assets/_BLCK8nfs.js +0 -1
- package/dist/public/assets/_BMA5bYEa.js +0 -1
- package/dist/public/assets/_BQiVwacs.js +0 -1
- package/dist/public/assets/_BUJOwUAs.js +0 -1
- package/dist/public/assets/_BVNPct4O.js +0 -1
- package/dist/public/assets/_BVaM_2sN.js.br +0 -0
- package/dist/public/assets/_BYtWQBvo.js.br +0 -0
- package/dist/public/assets/_BZTdZJeh.js.br +0 -0
- package/dist/public/assets/_BbW08zvP.js.br +0 -0
- package/dist/public/assets/_BcV_8aVm.js.br +0 -0
- package/dist/public/assets/_BdjEexZm.js +0 -1
- package/dist/public/assets/_BdlaV7Yd.js.br +0 -0
- package/dist/public/assets/_Bh9mZqNd.js.br +0 -0
- package/dist/public/assets/_Bhgs0ti-.js.br +0 -0
- package/dist/public/assets/_BhyTahlq.js +0 -1
- package/dist/public/assets/_Bi4Oc44D.js +0 -1
- package/dist/public/assets/_BkBBIqd6.js.br +0 -0
- package/dist/public/assets/_Bln_dHkZ.js +0 -1
- package/dist/public/assets/_Bnw8FrLu.js.br +0 -0
- package/dist/public/assets/_BoXYgDqM.js +0 -1
- package/dist/public/assets/_Bq3bEwAh.js +0 -1
- package/dist/public/assets/_BqE3UDc1.js +0 -15
- package/dist/public/assets/_BqE3UDc1.js.br +0 -0
- package/dist/public/assets/_Bqi2O09O.js.br +0 -0
- package/dist/public/assets/_BqkIt6sR.js +0 -1
- package/dist/public/assets/_BtaGn9rC.js +0 -1
- package/dist/public/assets/_BtdfVIoz.js.br +0 -0
- package/dist/public/assets/_BxKCn-Q1.js +0 -1
- package/dist/public/assets/_BxhDCdsz.js.br +0 -0
- package/dist/public/assets/_C-PVpIEr.js +0 -1
- package/dist/public/assets/_C6WWvm9T.js.br +0 -0
- package/dist/public/assets/_C6hKcO9v.js.br +0 -0
- package/dist/public/assets/_C70Ru7e4.js.br +0 -0
- package/dist/public/assets/_C7uWBTjb.js +0 -1
- package/dist/public/assets/_C7uWBTjb.js.br +0 -0
- package/dist/public/assets/_C7yx5SRF.js.br +0 -0
- package/dist/public/assets/_C8LGCsp6.js.br +0 -0
- package/dist/public/assets/_C8W1G7pP.js.br +0 -0
- package/dist/public/assets/_C8jz5gbw.js +0 -1
- package/dist/public/assets/_C9uY87Ye.js +0 -1
- package/dist/public/assets/_CALBu378.js +0 -1
- package/dist/public/assets/_CBwhzPRp.js.br +0 -0
- package/dist/public/assets/_CCiPqRIq.js +0 -1
- package/dist/public/assets/_CD6qXQpG.js +0 -1
- package/dist/public/assets/_CENLn5ag.js.br +0 -0
- package/dist/public/assets/_CEU9l8AD.js +0 -1
- package/dist/public/assets/_CFEXZsE2.js.br +0 -0
- package/dist/public/assets/_CFZ5B792.js.br +0 -0
- package/dist/public/assets/_CHkwXu6Z.js.br +0 -0
- package/dist/public/assets/_CHnevbQv.js +0 -1
- package/dist/public/assets/_CIfjUS07.js +0 -1
- package/dist/public/assets/_CIyU4fk4.js.br +0 -0
- package/dist/public/assets/_CJ5gscHI.js.br +0 -0
- package/dist/public/assets/_CP1YBS-v.js +0 -1
- package/dist/public/assets/_CQCyc8Lk.js +0 -1
- package/dist/public/assets/_CQxZTJs2.js +0 -1
- package/dist/public/assets/_CRTpye9y.js +0 -1
- package/dist/public/assets/_CShA4sfZ.js.br +0 -0
- package/dist/public/assets/_CT92krzt.js +0 -1
- package/dist/public/assets/_CUH0YWku.js +0 -1
- package/dist/public/assets/_CUNOvAqR.js +0 -1
- package/dist/public/assets/_CUcoGOVx.js.br +0 -0
- package/dist/public/assets/_CV93AUcf.js.br +0 -0
- package/dist/public/assets/_CVnRXioT.js +0 -1
- package/dist/public/assets/_CVzVikZu.js.br +0 -0
- package/dist/public/assets/_CWn2nvZH.js.br +0 -0
- package/dist/public/assets/_CX7VgLUh.js +0 -1
- package/dist/public/assets/_CaNqsdTE.js.br +0 -0
- package/dist/public/assets/_CaXlQ3bG.js.br +0 -0
- package/dist/public/assets/_CfTyEkJ9.js.br +0 -0
- package/dist/public/assets/_Ck0exoRL.js.br +0 -0
- package/dist/public/assets/_ClY3ux-V.js.br +0 -0
- package/dist/public/assets/_CnHykAXL.js +0 -1
- package/dist/public/assets/_CncK57Bx.js.br +0 -0
- package/dist/public/assets/_CqafooQ2.js.br +0 -0
- package/dist/public/assets/_CvomSBd-.js +0 -1
- package/dist/public/assets/_CwHghi3L.js.br +0 -0
- package/dist/public/assets/_Cx22qldT.js +0 -1
- package/dist/public/assets/_Cx2CM-oS.js +0 -1
- package/dist/public/assets/_CxD2Xdbg.js +0 -1
- package/dist/public/assets/_Cy8e6xvg.js +0 -1
- package/dist/public/assets/_CyjtsL-H.js.br +0 -0
- package/dist/public/assets/_CynqYnMI.js.br +0 -0
- package/dist/public/assets/_D2QebskH.js.br +0 -0
- package/dist/public/assets/_D2Vc4Wvj.js +0 -1
- package/dist/public/assets/_D5YMvwak.js.br +0 -0
- package/dist/public/assets/_D8KEHImg.js +0 -1
- package/dist/public/assets/_D9xvJ3GG.js +0 -1
- package/dist/public/assets/_DAVuT42t.js.br +0 -0
- package/dist/public/assets/_DB3BeOyN.js.br +0 -0
- package/dist/public/assets/_DCsVczc2.js +0 -1
- package/dist/public/assets/_DDCCCxgI.js.br +0 -0
- package/dist/public/assets/_DG_7eobK.js.br +0 -0
- package/dist/public/assets/_DGujMY-3.js.br +0 -0
- package/dist/public/assets/_DHDlo4H6.js.br +0 -0
- package/dist/public/assets/_DHVmZFYy.js.br +0 -0
- package/dist/public/assets/_DINZbe5Y.js +0 -1
- package/dist/public/assets/_DLEbRrz0.js +0 -1
- package/dist/public/assets/_DMheRY6i.js +0 -1
- package/dist/public/assets/_DN4wjx2E.js +0 -1
- package/dist/public/assets/_DR0feSOd.js +0 -1
- package/dist/public/assets/_DR0feSOd.js.br +0 -0
- package/dist/public/assets/_DSGTniQk.js +0 -1
- package/dist/public/assets/_DTsDxl1M.js +0 -1
- package/dist/public/assets/_DUopY_gx.js +0 -1
- package/dist/public/assets/_DVNfCwE2.js +0 -1
- package/dist/public/assets/_DVNfCwE2.js.br +0 -0
- package/dist/public/assets/_DXXgPkXD.js.br +0 -0
- package/dist/public/assets/_DYSvgYje.js.br +0 -0
- package/dist/public/assets/_DYrlLwFx.js +0 -1
- package/dist/public/assets/_DZRCq3kW.js.br +0 -0
- package/dist/public/assets/_D_5swmVD.js.br +0 -0
- package/dist/public/assets/_D_CAa3Jz.js.br +0 -0
- package/dist/public/assets/_D_ylxWa2.js.br +0 -0
- package/dist/public/assets/_D_ze6XZ5.js +0 -1
- package/dist/public/assets/_DbW7AP8F.js.br +0 -0
- package/dist/public/assets/_DeB4j_R-.js.br +0 -0
- package/dist/public/assets/_DfQ-9FlP.js +0 -1
- package/dist/public/assets/_DkXVmNUi.js.br +0 -0
- package/dist/public/assets/_DlR8NuSe.js +0 -1
- package/dist/public/assets/_DlbhpJx5.js.br +0 -0
- package/dist/public/assets/_Dlcj6TBx.js.br +0 -0
- package/dist/public/assets/_DnDcENzs.js +0 -1
- package/dist/public/assets/_DnXCnynP.js.br +0 -0
- package/dist/public/assets/_Ds-QwXCK.js.br +0 -0
- package/dist/public/assets/_DtE2qH3C.js.br +0 -0
- package/dist/public/assets/_DuEkCWXJ.js +0 -1
- package/dist/public/assets/_DuEkCWXJ.js.br +0 -0
- package/dist/public/assets/_DugpULbZ.js +0 -1
- package/dist/public/assets/_DzZJC96i.js +0 -1
- package/dist/public/assets/_EhbzPnF_.js.br +0 -0
- package/dist/public/assets/_HsuJMsHC.js +0 -1
- package/dist/public/assets/_I5VvoSCX.js.br +0 -0
- package/dist/public/assets/_KkrexnhF.js +0 -1
- package/dist/public/assets/_LAQuaEXw.js +0 -1
- package/dist/public/assets/_LQT43yqU.js +0 -1
- package/dist/public/assets/_M2AJVACE.js +0 -1
- package/dist/public/assets/_QIH6HEqN.js.br +0 -0
- package/dist/public/assets/_QOM_0LrS.js +0 -1
- package/dist/public/assets/_SiPyCTQ2.js +0 -1
- package/dist/public/assets/_SiPyCTQ2.js.br +0 -0
- package/dist/public/assets/_THpiwy9Y.js.br +0 -0
- package/dist/public/assets/_UE8vWJfG.js +0 -1
- package/dist/public/assets/_UNlXdNpU.js +0 -1
- package/dist/public/assets/_VXBw_tMe.js.br +0 -0
- package/dist/public/assets/__j87AsaM.js +0 -2
- package/dist/public/assets/__j87AsaM.js.br +0 -0
- package/dist/public/assets/__qkwvgYm.js.br +0 -0
- package/dist/public/assets/_c29W3SiT.js +0 -1
- package/dist/public/assets/_c29W3SiT.js.br +0 -0
- package/dist/public/assets/_dqme2cBZ.js +0 -1
- package/dist/public/assets/_g8m_kDFO.js.br +0 -0
- package/dist/public/assets/_gZWLyxEW.js.br +0 -0
- package/dist/public/assets/_iPBpbjkf.js +0 -1
- package/dist/public/assets/_iw9V1MXx.js +0 -1
- package/dist/public/assets/_jwR-pKCy.js +0 -7
- package/dist/public/assets/_jwR-pKCy.js.br +0 -0
- package/dist/public/assets/_kPncZjOq.js.br +0 -0
- package/dist/public/assets/_lUsMW6Gs.js +0 -1
- package/dist/public/assets/_q5NDjDt-.js.br +0 -0
- package/dist/public/assets/_rrQkcN_W.js +0 -1
- package/dist/public/assets/_tVi14-It.js.br +0 -0
- package/dist/public/assets/_tkbuT6xo.js.br +0 -0
- package/dist/public/assets/_wBsJknfY.js.br +0 -0
- package/dist/public/assets/_yRcaOQ_g.js +0 -1
- package/dist/public/assets/_z49a49tu.js.br +0 -0
- package/dist/public/assets/_z4AFhwXr.js +0 -1
- package/dist/public/assets/_zeZcW0dL.js +0 -1
- package/dist/public/assets/files-view-B7Q2K2Y-.js +0 -2
- package/dist/public/assets/manage-workspace-0kphR6AC.js +0 -2
- package/dist/public/assets/new-DOnTtMEb.js +0 -1
- package/dist/public/assets/new-workspace-DwTZgJb4.js +0 -2
- package/dist/public/assets/review-view-CP7rYLpx.js +0 -2
- package/dist/public/assets/settings-DOnTtMEb.js +0 -1
- package/dist/public/assets/settings-page-DgelplbL.js +0 -2
- package/dist/public/assets/styles-DwSLzDSy.css +0 -1
- package/dist/public/assets/styles-DwSLzDSy.css.br +0 -0
- package/dist/public/assets/w-DOnTtMEb.js +0 -1
- package/dist/public/assets/w._-DOnTtMEb.js +0 -1
- package/dist/public/assets/w._-aWr9UeT8.js +0 -1
- package/dist/public/assets/w._-fgp5v3S2.js +0 -1
package/bin/cli/session.mjs
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
// other sessions — starting one or a fan-out of them, messaging one and
|
|
4
4
|
// waiting on replies, closing them (server/messages.ts, server/team.ts).
|
|
5
5
|
import path from "node:path";
|
|
6
|
+
import { duration } from "../../lib/usage/format.mjs";
|
|
6
7
|
import { makeTopics, topicRepos } from "./topic.mjs";
|
|
7
8
|
|
|
8
9
|
/** More sessions than this running in one workspace is an agent starting
|
|
@@ -46,6 +47,7 @@ async function sessionsOf(ctx, wsId) {
|
|
|
46
47
|
parent: s.parent_id || null,
|
|
47
48
|
waitingOn: s.messages?.waitingOn ?? [],
|
|
48
49
|
queued: s.messages?.queued ?? 0,
|
|
50
|
+
turnSince: s.state?.turnSince ?? null,
|
|
49
51
|
self: s.id === me,
|
|
50
52
|
}));
|
|
51
53
|
const ids = new Set(rows.map((s) => s.id));
|
|
@@ -60,8 +62,14 @@ async function sessionsOf(ctx, wsId) {
|
|
|
60
62
|
return out;
|
|
61
63
|
}
|
|
62
64
|
|
|
65
|
+
/** How long a turn has run: seconds under a minute, then coarse. */
|
|
66
|
+
function turnText(ms) {
|
|
67
|
+
return `${ms < 60_000 ? `${Math.round(ms / 1000)}s` : duration(ms)} into its turn`;
|
|
68
|
+
}
|
|
69
|
+
|
|
63
70
|
function sessionLine(ctx, s) {
|
|
64
71
|
const notes = [
|
|
72
|
+
s.turnSince && turnText(Date.now() - s.turnSince),
|
|
65
73
|
s.waitingOn.length && `waiting on ${s.waitingOn.join(", ")}`,
|
|
66
74
|
s.queued && `${s.queued} queued for it`,
|
|
67
75
|
s.self && "this session",
|
|
@@ -86,15 +94,11 @@ async function textOf(value) {
|
|
|
86
94
|
return Buffer.concat(chunks).toString("utf8").replace(/\n$/, "");
|
|
87
95
|
}
|
|
88
96
|
|
|
89
|
-
/** What became of a message, for the sender
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
? `sent to ${id}`
|
|
95
|
-
: `queued for ${id} (${r.queued}): typed in once it is at its prompt`
|
|
96
|
-
}`,
|
|
97
|
-
];
|
|
97
|
+
/** What became of a message, for the sender: whether it went in, and
|
|
98
|
+
* last — where `| tail -1` keeps it — how long it may wait and how to
|
|
99
|
+
* reach the session sooner. */
|
|
100
|
+
function sentText(id, r, asked) {
|
|
101
|
+
const lines = [];
|
|
98
102
|
if (r.wantsReply)
|
|
99
103
|
lines.push(
|
|
100
104
|
`Its last message, as that turn ends, comes back to you as a prompt: end your turn to wait for it, or run \`work session wait ${id}\`.`,
|
|
@@ -103,6 +107,30 @@ function sentText(id, r) {
|
|
|
103
107
|
lines.push(
|
|
104
108
|
"A reply it sends before then answers what it is on now: each reply names the message of yours it answers.",
|
|
105
109
|
);
|
|
110
|
+
const reopened = r.reopened ? `reopened ${id} on its conversation; ` : "";
|
|
111
|
+
const stopped = r.interrupted ? `stopped ${id}'s turn; ` : "";
|
|
112
|
+
if (r.midTurn)
|
|
113
|
+
lines.push(
|
|
114
|
+
`${stopped}typed into ${id}'s turn under way: it gets this at its next step, after the tool call it is on`,
|
|
115
|
+
);
|
|
116
|
+
else if (r.delivered) lines.push(`${reopened}${stopped}sent to ${id}`);
|
|
117
|
+
else {
|
|
118
|
+
const wait = [
|
|
119
|
+
r.queued,
|
|
120
|
+
r.turnMs !== null && turnText(r.turnMs),
|
|
121
|
+
r.ahead && `${r.ahead} more queued with it`,
|
|
122
|
+
].filter(Boolean);
|
|
123
|
+
const sooner = !r.queued.startsWith("it is working")
|
|
124
|
+
? ""
|
|
125
|
+
: r.steers && !asked.now
|
|
126
|
+
? ` To reach it sooner: \`work session send ${id} --now "…"\` (into the turn, at its next step) or --interrupt (stops the turn first).`
|
|
127
|
+
: !r.steers && r.interrupts && !asked.interrupt
|
|
128
|
+
? ` Its CLI takes no message mid-turn: --interrupt stops the turn to send it now.`
|
|
129
|
+
: "";
|
|
130
|
+
lines.push(
|
|
131
|
+
`${reopened}${stopped}queued for ${id} (${wait.join("; ")}): typed in once it is at its prompt${asked.now && r.steers ? ", or into its turn once nothing stands in the way" : ""}.${sooner}`,
|
|
132
|
+
);
|
|
133
|
+
}
|
|
106
134
|
return lines.join("\n");
|
|
107
135
|
}
|
|
108
136
|
|
|
@@ -180,7 +208,8 @@ export const commands = [
|
|
|
180
208
|
This session (WORK_SESSION_ID): its id, agent, name, state, and the
|
|
181
209
|
workspace it is in (id, name, path) — what a link names (/w/<id>/…).
|
|
182
210
|
work session list [id|name] [--json]
|
|
183
|
-
The workspace's sessions, this one marked
|
|
211
|
+
The workspace's sessions, this one marked, with how long each has been
|
|
212
|
+
in the turn under way and how many messages are queued for it.
|
|
184
213
|
work session title "<name>" [--session <id>]
|
|
185
214
|
Name a session in the session list (empty clears it).
|
|
186
215
|
work session new [--agent <id>] [--title "<name>"] [--prompt "<text>"|-] [--no-reply] [--keep] [--topic <name> [--repo <repo>…] [--install]] [--workspace <id|name>] [--force]
|
|
@@ -219,15 +248,22 @@ work session retry <member>
|
|
|
219
248
|
work session skip <member>
|
|
220
249
|
Stop a member: a queued one never starts, a running one's session
|
|
221
250
|
closes; either way its group no longer waits on it.
|
|
222
|
-
work session send <id> "<text>"|- [--no-reply]
|
|
251
|
+
work session send <id> "<text>"|- [--no-reply] [--now|--interrupt]
|
|
223
252
|
Message an agent session: typed in, headed with who it is from, once
|
|
224
|
-
it is at its prompt — never into a
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
for
|
|
229
|
-
|
|
230
|
-
|
|
253
|
+
it is at its prompt — never into a question it asks or a draft someone
|
|
254
|
+
is typing. From an agent's session it wants a reply unless --no-reply:
|
|
255
|
+
the recipient's last message as that turn ends, typed into this
|
|
256
|
+
session as a prompt of its own. End your turn to wait for it. A turn
|
|
257
|
+
can run for hours, and one sent meanwhile waits for its end, then is
|
|
258
|
+
answered a turn later: the reply that comes first answers what it was
|
|
259
|
+
on, and each reply names the message of yours it answers and those
|
|
260
|
+
still queued. A correction or a stop should not wait: --now types it
|
|
261
|
+
into the turn under way, which its CLI hands the agent at its next
|
|
262
|
+
step (after the tool call it is on), and that turn's end answers it;
|
|
263
|
+
--interrupt stops the turn first, for one the next step is too late
|
|
264
|
+
for or whose CLI takes nothing mid-turn (Grok). What is queued for it
|
|
265
|
+
goes in with it. The last line printed says whether it went in, and
|
|
266
|
+
if not, how long the turn it waits out has run. A session closed for being
|
|
231
267
|
done is reopened on its own conversation first, where its CLI can
|
|
232
268
|
resume one (Claude, Codex); otherwise the send says to start a new one.
|
|
233
269
|
A file's path says more than its text pasted in. An agent in
|
|
@@ -449,14 +485,23 @@ work session kill --done
|
|
|
449
485
|
const [id, ...words] = rest;
|
|
450
486
|
const text = await textOf(words.join(" "));
|
|
451
487
|
if (!id || !text)
|
|
452
|
-
ctx.die(
|
|
488
|
+
ctx.die(
|
|
489
|
+
'usage: work session send <id> "<text>"|- [--no-reply] [--now|--interrupt]',
|
|
490
|
+
);
|
|
453
491
|
const me = process.env.WORK_SESSION_ID;
|
|
492
|
+
const asked = {
|
|
493
|
+
now: ctx.has("--now"),
|
|
494
|
+
interrupt: ctx.has("--interrupt"),
|
|
495
|
+
};
|
|
454
496
|
const r = await ctx.api.post(`/api/sessions/${id}/messages`, {
|
|
455
497
|
text,
|
|
456
498
|
...(me ? { from: me } : {}),
|
|
457
499
|
reply: !ctx.has("--no-reply"),
|
|
500
|
+
...asked,
|
|
458
501
|
});
|
|
459
|
-
return ctx.out({ id, ...r }, (r) =>
|
|
502
|
+
return ctx.out({ id, ...r }, (r) =>
|
|
503
|
+
console.log(sentText(id, r, asked)),
|
|
504
|
+
);
|
|
460
505
|
}
|
|
461
506
|
case "wait": {
|
|
462
507
|
const me = sessionId(ctx);
|
|
@@ -736,6 +736,13 @@ var STEPS = [
|
|
|
736
736
|
);
|
|
737
737
|
`);
|
|
738
738
|
}
|
|
739
|
+
},
|
|
740
|
+
{
|
|
741
|
+
version: 10,
|
|
742
|
+
name: "messages that go mid-turn",
|
|
743
|
+
up(db) {
|
|
744
|
+
db.exec("ALTER TABLE session_messages ADD COLUMN urgent INTEGER NOT NULL DEFAULT 0");
|
|
745
|
+
}
|
|
739
746
|
}
|
|
740
747
|
];
|
|
741
748
|
var LATEST = STEPS.at(-1).version;
|
|
@@ -9160,6 +9167,9 @@ var typedAt = /* @__PURE__ */ new Map();
|
|
|
9160
9167
|
/** What each session's turn is doing, from its last tool call ("Bash:
|
|
9161
9168
|
* pnpm test"): the line a team view shows for a member at work. */
|
|
9162
9169
|
var activities = /* @__PURE__ */ new Map();
|
|
9170
|
+
/** When each session's turn began, while one runs: how long a message
|
|
9171
|
+
* that waits for its end has to wait (server/messages). */
|
|
9172
|
+
var turnStarts = /* @__PURE__ */ new Map();
|
|
9163
9173
|
/** Each session's permission mode, as its hooks last reported it
|
|
9164
9174
|
* (`permission_mode`): what a session it starts runs in. */
|
|
9165
9175
|
var modes = /* @__PURE__ */ new Map();
|
|
@@ -9167,6 +9177,9 @@ var modes = /* @__PURE__ */ new Map();
|
|
|
9167
9177
|
var finishedListeners = /* @__PURE__ */ new Set();
|
|
9168
9178
|
/** Told of each turn's end that stayed the end (`onTurnEnd`). */
|
|
9169
9179
|
var turnEndListeners = /* @__PURE__ */ new Set();
|
|
9180
|
+
/** The last messages of each session's turn ends that did not stay the
|
|
9181
|
+
* end (it went straight back to work), until one does. */
|
|
9182
|
+
var foldedMessages = /* @__PURE__ */ new Map();
|
|
9170
9183
|
/** A turn's end is pushed once it has stayed ended this long. Stop fires
|
|
9171
9184
|
* again each time something sends the agent back to work (a stop hook
|
|
9172
9185
|
* that continues it, a goal loop, background subagents reporting in), and
|
|
@@ -9233,14 +9246,18 @@ function noteBackground(sessionId, work) {
|
|
|
9233
9246
|
});
|
|
9234
9247
|
}
|
|
9235
9248
|
/** A turn's end once it has stayed the end (`DONE_SETTLE_MS`), with its
|
|
9236
|
-
* last message (undefined: the CLI reports none)
|
|
9237
|
-
*
|
|
9249
|
+
* last message (undefined: the CLI reports none) and those of the ends
|
|
9250
|
+
* before it that did not stay the end (`earlier`: a message typed in as
|
|
9251
|
+
* the agent wrote its answer can be a turn of its own straight after). A
|
|
9252
|
+
* listener returns whether it passed the end on to another session. */
|
|
9238
9253
|
function onTurnEnd(fn) {
|
|
9239
9254
|
turnEndListeners.add(fn);
|
|
9240
9255
|
}
|
|
9241
9256
|
function endTurn(sessionId) {
|
|
9257
|
+
const earlier = foldedMessages.get(sessionId) ?? [];
|
|
9258
|
+
foldedMessages.delete(sessionId);
|
|
9242
9259
|
let told = false;
|
|
9243
|
-
for (const fn of turnEndListeners) told = fn(sessionId, lastMessages.get(sessionId)) || told;
|
|
9260
|
+
for (const fn of turnEndListeners) told = fn(sessionId, lastMessages.get(sessionId), earlier) || told;
|
|
9244
9261
|
return told;
|
|
9245
9262
|
}
|
|
9246
9263
|
/** A session's job is done: its turn ended and stayed ended, answering
|
|
@@ -9288,11 +9305,17 @@ function noteTyped(sessionId) {
|
|
|
9288
9305
|
function lastTypedAt(sessionId) {
|
|
9289
9306
|
return typedAt.get(sessionId) ?? 0;
|
|
9290
9307
|
}
|
|
9308
|
+
/** When the session's turn under way began (undefined: at its prompt). */
|
|
9309
|
+
function turnSince(sessionId) {
|
|
9310
|
+
return turnStarts.get(sessionId);
|
|
9311
|
+
}
|
|
9291
9312
|
function cancelDone(sessionId) {
|
|
9292
9313
|
const timer = pendingDone.get(sessionId);
|
|
9293
9314
|
if (!timer) return;
|
|
9294
9315
|
clearTimeout(timer);
|
|
9295
9316
|
pendingDone.delete(sessionId);
|
|
9317
|
+
const message = lastMessages.get(sessionId);
|
|
9318
|
+
if (message) foldedMessages.set(sessionId, [...foldedMessages.get(sessionId) ?? [], message]);
|
|
9296
9319
|
}
|
|
9297
9320
|
/** What the session's hooks last said, apart from the scraper: the
|
|
9298
9321
|
* turn's phase, else working while its background work runs. */
|
|
@@ -9397,11 +9420,13 @@ function clearAgentPhase(sessionId) {
|
|
|
9397
9420
|
cancelDone(sessionId);
|
|
9398
9421
|
summaries.delete(sessionId);
|
|
9399
9422
|
lastMessages.delete(sessionId);
|
|
9423
|
+
foldedMessages.delete(sessionId);
|
|
9400
9424
|
typedAt.delete(sessionId);
|
|
9401
9425
|
modes.delete(sessionId);
|
|
9402
9426
|
activities.delete(sessionId);
|
|
9403
9427
|
reportedAt.delete(sessionId);
|
|
9404
9428
|
interruptedAt.delete(sessionId);
|
|
9429
|
+
turnStarts.delete(sessionId);
|
|
9405
9430
|
if (!phases.has(sessionId) && !scraped.has(sessionId) && !background.has(sessionId)) return;
|
|
9406
9431
|
applyChange(sessionId, () => {
|
|
9407
9432
|
phases.delete(sessionId);
|
|
@@ -9427,6 +9452,8 @@ function agentPhase(sessionId) {
|
|
|
9427
9452
|
function applyChange(sessionId, mutate, force = false) {
|
|
9428
9453
|
const before = agentPhase(sessionId);
|
|
9429
9454
|
mutate();
|
|
9455
|
+
if (!turnPhase(sessionId)) turnStarts.delete(sessionId);
|
|
9456
|
+
else if (!turnStarts.has(sessionId)) turnStarts.set(sessionId, Date.now());
|
|
9430
9457
|
const after = agentPhase(sessionId);
|
|
9431
9458
|
if (before === after && !force) return;
|
|
9432
9459
|
publishChange(sessionId);
|
|
@@ -9437,7 +9464,7 @@ function publishChange(sessionId) {
|
|
|
9437
9464
|
const row = get("SELECT workspace_id FROM sessions WHERE id = ?", sessionId);
|
|
9438
9465
|
if (row?.workspace_id) {
|
|
9439
9466
|
const workspaceId = row.workspace_id;
|
|
9440
|
-
import("./
|
|
9467
|
+
import("./_ENzyVrzA.js").then((m) => m.notifySessionsChanged(workspaceId));
|
|
9441
9468
|
return;
|
|
9442
9469
|
}
|
|
9443
9470
|
publish("sessions.changed");
|
|
@@ -10266,6 +10293,8 @@ var claude = {
|
|
|
10266
10293
|
modeFlags: (mode) => MODES.has(mode) ? ["--permission-mode", mode] : [],
|
|
10267
10294
|
headless: (args) => hasArg(args, "-p", "--print"),
|
|
10268
10295
|
resumeFlags: (id) => ["--resume", id],
|
|
10296
|
+
steerKeys: ["Enter"],
|
|
10297
|
+
interruptKeys: ["Escape"],
|
|
10269
10298
|
envPrefixes: ["CLAUDE", "AI_AGENT"],
|
|
10270
10299
|
startupQuestions: [{
|
|
10271
10300
|
screen: /Is this a project you created or one you trust/,
|
|
@@ -10491,6 +10520,8 @@ var codex = {
|
|
|
10491
10520
|
meta: meta$5,
|
|
10492
10521
|
launchFlags,
|
|
10493
10522
|
resumeFlags: (id) => ["resume", id],
|
|
10523
|
+
steerKeys: ["Enter"],
|
|
10524
|
+
interruptKeys: ["Escape"],
|
|
10494
10525
|
reportsWorking: () => true,
|
|
10495
10526
|
headless: (args) => hasArg(args, "exec", "e", "review"),
|
|
10496
10527
|
envPrefixes: ["CODEX_"],
|
|
@@ -10756,6 +10787,8 @@ var copilot = {
|
|
|
10756
10787
|
asks: "which sessions to restore"
|
|
10757
10788
|
}],
|
|
10758
10789
|
reportsWorking: () => true,
|
|
10790
|
+
steerKeys: ["Enter"],
|
|
10791
|
+
interruptKeys: ["C-c"],
|
|
10759
10792
|
headless: (args) => hasArg(args, "-p", "--prompt"),
|
|
10760
10793
|
envPrefixes: ["COPILOT_"],
|
|
10761
10794
|
readHook: readHook$4,
|
|
@@ -10933,6 +10966,8 @@ var cursor = {
|
|
|
10933
10966
|
pluginDir()
|
|
10934
10967
|
],
|
|
10935
10968
|
headless: (args) => hasArg(args, "-p", "--print"),
|
|
10969
|
+
steerKeys: ["Enter", "Enter"],
|
|
10970
|
+
interruptKeys: ["Escape"],
|
|
10936
10971
|
readHook: readHook$3,
|
|
10937
10972
|
readyScreen: /Plan, search, build anything|Add a follow-up/,
|
|
10938
10973
|
usage: () => cursorRow().then((row) => [row]),
|
|
@@ -11232,6 +11267,7 @@ var grok = {
|
|
|
11232
11267
|
},
|
|
11233
11268
|
reportsWorking: registered,
|
|
11234
11269
|
promptAsArgv: true,
|
|
11270
|
+
interruptKeys: ["C-c"],
|
|
11235
11271
|
headless: (args) => hasArg(args, "-p", "--single", "--prompt-file", "--prompt-json", "agent"),
|
|
11236
11272
|
envPrefixes: ["GROK_"],
|
|
11237
11273
|
readHook: readHook$2,
|
|
@@ -11408,6 +11444,8 @@ var opencode = {
|
|
|
11408
11444
|
readyScreen: /Ask anything/,
|
|
11409
11445
|
launchEnv: () => ({ OPENCODE_CONFIG_CONTENT: pluginConfig() }),
|
|
11410
11446
|
reportsWorking: installed$1,
|
|
11447
|
+
steerKeys: ["Enter"],
|
|
11448
|
+
interruptKeys: ["Escape", "Escape"],
|
|
11411
11449
|
headless: (args) => hasArg(args, "run"),
|
|
11412
11450
|
envPrefixes: ["OPENCODE_"],
|
|
11413
11451
|
readHook: readHook$1
|
|
@@ -11529,6 +11567,8 @@ var AGENTS = [
|
|
|
11529
11567
|
meta,
|
|
11530
11568
|
launchFlags: () => ["-e", extensionFile()],
|
|
11531
11569
|
reportsWorking: installed,
|
|
11570
|
+
steerKeys: ["Enter"],
|
|
11571
|
+
interruptKeys: ["Escape"],
|
|
11532
11572
|
headless: (args) => hasArg(args, "-p", "--print", "--mode"),
|
|
11533
11573
|
envPrefixes: ["PI_"],
|
|
11534
11574
|
readHook
|
|
@@ -11577,6 +11617,15 @@ function startupQuestion(id, screen) {
|
|
|
11577
11617
|
function readyScreen(id) {
|
|
11578
11618
|
return agentFor(id)?.readyScreen;
|
|
11579
11619
|
}
|
|
11620
|
+
/** The keys that hand a pasted message to the turn under way
|
|
11621
|
+
* (`steerKeys`), if its CLI takes one mid-turn. */
|
|
11622
|
+
function steerKeys(id) {
|
|
11623
|
+
return agentFor(id)?.steerKeys;
|
|
11624
|
+
}
|
|
11625
|
+
/** The keys that stop a turn under way (`interruptKeys`), if known. */
|
|
11626
|
+
function interruptKeys(id) {
|
|
11627
|
+
return agentFor(id)?.interruptKeys;
|
|
11628
|
+
}
|
|
11580
11629
|
/** Cold launch takes the first prompt as argv rather than a paste. */
|
|
11581
11630
|
function promptAsArgv(id) {
|
|
11582
11631
|
return agentFor(id)?.promptAsArgv ?? false;
|
|
@@ -17519,7 +17568,7 @@ function notifySessionsChanged(workspaceId) {
|
|
|
17519
17568
|
async function emitSessionsChanged(workspaceId) {
|
|
17520
17569
|
try {
|
|
17521
17570
|
const states = await sessionStates();
|
|
17522
|
-
const { teamsOf } = await import("./
|
|
17571
|
+
const { teamsOf } = await import("./_CeTAKoPH.js");
|
|
17523
17572
|
publish("sessions.changed", {
|
|
17524
17573
|
workspaceId,
|
|
17525
17574
|
sessions: listSessions(workspaceId).map((s) => ({
|
|
@@ -17541,7 +17590,7 @@ async function killWorkspaceSessions(workspaceId) {
|
|
|
17541
17590
|
* that passes one through, typing the rest into the pane as keys. */
|
|
17542
17591
|
var PASTE_UNSAFE = /[\x00-\x08\x0b\x0c\x0e-\x1f\x7f-\x9f]/g;
|
|
17543
17592
|
/** Type text into a session's tmux (bracketed paste + Enter), creating it if needed. */
|
|
17544
|
-
async function sendToSession(id, raw, size) {
|
|
17593
|
+
async function sendToSession(id, raw, size, submit = ["Enter"]) {
|
|
17545
17594
|
const text = raw.replace(PASTE_UNSAFE, "");
|
|
17546
17595
|
const session = getSession(id);
|
|
17547
17596
|
if (!session) throw new Error("unknown session");
|
|
@@ -17607,13 +17656,48 @@ async function sendToSession(id, raw, size) {
|
|
|
17607
17656
|
name
|
|
17608
17657
|
], env);
|
|
17609
17658
|
await waitStill(name, env, PASTE_SETTLE_MS);
|
|
17610
|
-
|
|
17611
|
-
|
|
17612
|
-
|
|
17613
|
-
|
|
17614
|
-
|
|
17615
|
-
|
|
17659
|
+
for (const [i, key] of submit.entries()) {
|
|
17660
|
+
if (i) await sleep(KEY_GAP_MS);
|
|
17661
|
+
await tmux([
|
|
17662
|
+
"send-keys",
|
|
17663
|
+
"-t",
|
|
17664
|
+
name,
|
|
17665
|
+
key
|
|
17666
|
+
], env);
|
|
17667
|
+
}
|
|
17668
|
+
}
|
|
17669
|
+
/** Between one submit key and the next. */
|
|
17670
|
+
var KEY_GAP_MS = 400;
|
|
17671
|
+
/** Stop the turn a session's CLI is on (`--interrupt`) with the family's
|
|
17672
|
+
* keys, and give it a moment to be back at its prompt. False: its family
|
|
17673
|
+
* names none, or its pane is gone. Noted as the user's own Esc is, so a
|
|
17674
|
+
* turn that ends with no hook to say so reads as ended once the pane goes
|
|
17675
|
+
* still (scraper.ts). */
|
|
17676
|
+
async function interruptSession(id) {
|
|
17677
|
+
const session = getSession(id);
|
|
17678
|
+
const keys = interruptKeys(session?.agent);
|
|
17679
|
+
if (!session || !keys) return false;
|
|
17680
|
+
const name = tmuxName(id);
|
|
17681
|
+
const env = cleanEnv();
|
|
17682
|
+
noteInterrupt(id);
|
|
17683
|
+
try {
|
|
17684
|
+
for (const [i, key] of keys.entries()) {
|
|
17685
|
+
if (i) await sleep(KEY_GAP_MS);
|
|
17686
|
+
await tmux([
|
|
17687
|
+
"send-keys",
|
|
17688
|
+
"-t",
|
|
17689
|
+
name,
|
|
17690
|
+
key
|
|
17691
|
+
], env);
|
|
17692
|
+
}
|
|
17693
|
+
} catch {
|
|
17694
|
+
return false;
|
|
17695
|
+
}
|
|
17696
|
+
await waitStill(name, env, INTERRUPT_SETTLE_MS);
|
|
17697
|
+
return true;
|
|
17616
17698
|
}
|
|
17699
|
+
/** Upper bound on a CLI redrawing its prompt after an interrupt. */
|
|
17700
|
+
var INTERRUPT_SETTLE_MS = 2e3;
|
|
17617
17701
|
/** Start a session's process in a tmux session of its own, detached, and
|
|
17618
17702
|
* wait for its CLI to take input: the pane starts as a login shell that
|
|
17619
17703
|
* then execs the agent, and the agent takes a while more to draw its
|
|
@@ -17638,7 +17722,8 @@ async function sessionStates(maxAgeMs = 0) {
|
|
|
17638
17722
|
result[id] = {
|
|
17639
17723
|
alive: true,
|
|
17640
17724
|
phase: agentPhase(id),
|
|
17641
|
-
command: run ? void 0 : command
|
|
17725
|
+
command: run ? void 0 : command,
|
|
17726
|
+
turnSince: turnSince(id)
|
|
17642
17727
|
};
|
|
17643
17728
|
}
|
|
17644
17729
|
return result;
|
|
@@ -19104,7 +19189,9 @@ ${repoLines}
|
|
|
19104
19189
|
running as you do (it asks the user nothing you would not), and
|
|
19105
19190
|
\`work session send <id> "<text>"\` messages one; its last message, as that
|
|
19106
19191
|
turn ends, comes back to you as a prompt: end your turn to wait for it (or
|
|
19107
|
-
\`work session wait\`).
|
|
19192
|
+
\`work session wait\`). A message waits for the turn under way to end,
|
|
19193
|
+
which can take hours: a correction or a stop goes with \`--now\` (into
|
|
19194
|
+
that turn, at its next step) or \`--interrupt\` (stops it first). \`work session fanout --agent <id>… --prompt "<task {}>" <item>…\`
|
|
19108
19195
|
starts a group, a few at a time, whose replies come back as one prompt
|
|
19109
19196
|
(\`work session team\` shows how far they are). \`--topic <name>\` gives each a
|
|
19110
19197
|
topic branch of its own; send paths, not pasted files. They close once
|
|
@@ -19128,4 +19215,4 @@ ${repoLines}
|
|
|
19128
19215
|
`;
|
|
19129
19216
|
}
|
|
19130
19217
|
//#endregion
|
|
19131
|
-
export {
|
|
19218
|
+
export { reopenSession as $, normalizeAccent as $n, readBody as $r, hotBatchMinMs as $t, closedSession as A, notifyEventOn as An, preferredAgent as Ar, authGithub as At, killWorkspaceSessions as B, summaryOf as Bn, firewallProbe as Br, fileChanges as Bt, workspaceBranches as C, lastTypedAt as Cn, allPrefs as Cr, installServer as Ct, beginCreation as D, notePermissionMode as Dn, enabledAgents as Dr, serverList as Dt, agentCaller as E, noteInterrupt as En, disabledAgents as Er, serverById as Et, ensureTmuxServer as F, setAgentPhase as Fn, doctor as Fr, refreshGithub as Ft, markTmuxStarted as G, agentFamily as Gn, catalogPin as Gr, workspaceSections as Gt, listPanes as H, turnSettling as Hn, TOOLS as Hr, readFileAt as Ht, forgetPanes as I, setExpecting as In, ghKnownHosts as Ir, removeTool as It, notifySessionsChanged as J, agentMeta as Jn, applyPrefChange as Jr, diffStamp as Jt, newSessionArgs as K, agentFromCommand as Kn, parseAgentId as Kr, setPoints as Kt, getSession as L, setScrapedPhase as Ln, miseInstalls as Lr, runStreaming as Lt, creationOf as M, onPhaseChange as Mn, setPref as Mr, installMise as Mt, descendantsOf as N, onTurnEnd as Nn, setSetting as Nr, installTool as Nt, cleanEnv as O, noteTyped as On, getSetting as Or, sharing as Ot, disposeSessions as P, sessionWatched as Pn, discoverAgents as Pr, logoutGithub as Pt, renameSession as Q, manifest as Qn, httpError as Qr, dismissPr as Qt, interruptSession as R, setSessionViewers as Rn, miseVersions as Rr, updateTool as Rt, withProgressOp as S, interruptedSinceReport as Sn, agentChoices as Sr, installKey as St, hookToken as T, noteBackground as Tn, deleteSetting as Tr, removeServer as Tt, listPanesWithin as U, turnSince as Un, agentById as Ur, reviewWaiting as Ut, launchDir as V, turnPhase as Vn, PROJECT_TOOLS as Vr, readBlobAt as Vt, listSessions as W, agentBadge as Wn, agentLabel$1 as Wr, workspaceDiff as Wt, ownWorkspaceOnly as X, getInstance as Xn, FRAME_HEADERS as Xr, markBranch as Xt, onSessionDispose as Y, ACCENT_RE as Yn, FRAME_ANCESTORS as Yr, commentFolder as Yt, panePids as Z, iconSvg as Zn, checked as Zr, sectionFor as Zt, retryMaterialize as _, activityOf as _n, normalizeHost as _r, stopServers as _t, ensureUntrackedCache as a, db as ai, AGENTS as an, validSubscription as ar, tmuxWasStarted as at, sweepTrash as b, hookPhase as bn, PREF_MAX as br, forgetCustomServer as bt, insertPendingWorkspace as c, ownsBranchOf as ci, reportsWorking as cn, repoBranches as cr, workspaceProcs as ct, progress as d, git as di, credentialStamp as dn, DEFAULT_HOST as dr, lspQuery as dt, publish as ei, notePushActivity as en, setInstance as er, reopenable as et, progressSince as f, tmux as fi, readCache as fn, addHost as fr, lspQueryOf as ft, resumePendingWorkspaces as g, realInside as gn, isValidHost as gr, stopAllServers as gt, removeRepo as h, withLock as hi, inside as hn, forgetToken as hr, runningServers as ht, deleteWorkspace as i, all as ii, noteActivity as in, sendPush as ir, tmuxName as it, createSession as j, onFinished as jn, setDisabledAgents as jr, installAgent as jt, clearTmuxStarted as k, noteUserAnswered as kn, isKnownAgent as kr, whileInstalling as kt, listWorkspaces as l, ensureAllCacheConfig as li, steerKeys as ln, repoCatalog as lr, killServers as lt, queueMaterialize as m, swr as mi, cleanSummary as mn, ensureGitCredentials as mr, lspWarm as mt, barePath as n, subscribe as ni, withoutDismissed as nn, pushPublicKey as nr, sendToSession as nt, gcBares as o, get as oi, interruptKeys as on, headOid as or, killWorkspaceProc as ot, pruneLaneBranch as p, config as pi, writeCache as pn, configuredHosts as pr, lspUses as pt, noteConversation as q, agentLabel as qn, toolById as qr, startSnapSweep as qt, createWorkspace as r, subscriberCount as ri, workspacePrs as rn, saveSubscription as rr, sessionStates as rt, getWorkspace as s, workspacePath as si, readHookPayload as sn, pendingSsoOrgs as sr, portsByWorkspace as st, addRepo as t, publishJson as ti, refreshPrsBatch as tn, deleteSubscription as tr, retireSession as tt, otherWorkspaceBranches as u, TMUX_SOCKET as ui, blankRow as un, repoDefaultBranch as ur, lspDiagnostics as ut, revParse as v, agentPhase as vn, removeHost as vr, addCustomServer as vt, ensureAllPushHooks as w, noteActivity$1 as wn, changePref as wr, lspEnabled as wt, syncAgentsMd as x, hookReportedAt as xn, WORKSPACE_PREFS as xr, forgetProbes as xt, setWorkspaceStatus as y, clearAgentPhase as yn, unreachableRepos as yr, allServers as yt, killSession as z, settleQuietWorking as zn, which as zr, MAX_PREVIEW_BYTES as zt };
|