@dylanpiercey/work 0.2.36 → 0.2.38
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 +22 -8
- package/dist/_B2zjDgtj.js +2 -0
- package/dist/{_CI-r3uSO.js → _C65JTOIi.js} +15 -7
- package/dist/{_1Y-U-Hzk.js → _CHS_YMK8.js} +112 -112
- package/dist/{_DFT6xv90.js → _Ca_OVNVt.js} +55 -22
- package/dist/_o6JmtS1w.js +2 -0
- package/dist/index.mjs +737 -737
- package/dist/public/assets/{_C0WDJdzM.js → _-FoaibiG.js} +1 -1
- package/dist/public/assets/_-FoaibiG.js.br +0 -0
- package/dist/public/assets/_-dEw8WLo.js +1 -0
- package/dist/public/assets/_05c_9Xca.js +1 -0
- package/dist/public/assets/{_DiA3r6nu.js → _06pjZa4f.js} +1 -1
- package/dist/public/assets/_06pjZa4f.js.br +0 -0
- package/dist/public/assets/{_D3sJ3s1C.js → _1KVFqvou.js} +1 -1
- package/dist/public/assets/_1KVFqvou.js.br +0 -0
- package/dist/public/assets/{_aGrxetSF.js → _29z_l4I7.js} +1 -1
- package/dist/public/assets/_29z_l4I7.js.br +0 -0
- package/dist/public/assets/_2C9fIfEp.js +1 -0
- package/dist/public/assets/_2SgMjfmD.js +1 -0
- package/dist/public/assets/_7jPAf-Xp.js +1 -0
- package/dist/public/assets/_9o5zFDjX.js +1 -0
- package/dist/public/assets/_B-Y2fjUq.js +1 -0
- package/dist/public/assets/_B0-Z8x64.js +1 -0
- package/dist/public/assets/{_CEZ91x_t.js → _B2JaiOzM.js} +1 -1
- package/dist/public/assets/_B2JaiOzM.js.br +0 -0
- package/dist/public/assets/_B6SMDIAY.js +1 -0
- package/dist/public/assets/_B8Uovtij.js +1 -0
- package/dist/public/assets/_BB6LbdxF.js +1 -0
- package/dist/public/assets/{_BN7qy6Kk.js → _BDksixbx.js} +1 -1
- package/dist/public/assets/_BDksixbx.js.br +0 -0
- package/dist/public/assets/{_DrAM0hxR.js → _BEnaZa0j.js} +1 -1
- package/dist/public/assets/_BEnaZa0j.js.br +0 -0
- package/dist/public/assets/{_BA4Q1B2i.js → _BH68xkbP.js} +1 -1
- package/dist/public/assets/_BH68xkbP.js.br +0 -0
- package/dist/public/assets/_BI4yi1wm.js +1 -0
- package/dist/public/assets/{_BJhFVbAW.js → _BJZAqTIS.js} +1 -1
- package/dist/public/assets/_BJZAqTIS.js.br +0 -0
- package/dist/public/assets/{_D7Gle0KN.js → _BMEEjjfv.js} +1 -1
- package/dist/public/assets/_BMEEjjfv.js.br +0 -0
- package/dist/public/assets/{_D_wzNo2U.js → _BMQX18KA.js} +1 -1
- package/dist/public/assets/_BMQX18KA.js.br +0 -0
- package/dist/public/assets/_BQPbdntK.js +1 -0
- package/dist/public/assets/_BQU9g_Zx.js +1 -0
- package/dist/public/assets/_BRyiRgtA.js +1 -0
- package/dist/public/assets/_BSppisAf.js +1 -0
- package/dist/public/assets/{_ZxJ2Lzu2.js → _BTe2hdFU.js} +1 -1
- package/dist/public/assets/_BTe2hdFU.js.br +0 -0
- package/dist/public/assets/_BVyIUxnT.js +1 -0
- package/dist/public/assets/{_BBnRAD2G.js → _BXXJk9NS.js} +1 -1
- package/dist/public/assets/_BXXJk9NS.js.br +0 -0
- package/dist/public/assets/_BcFZRZJL.js +1 -0
- package/dist/public/assets/_BcFZRZJL.js.br +0 -0
- package/dist/public/assets/_BfuhALf0.js +1 -0
- package/dist/public/assets/{_DX7uQhGF.js → _BgD4m9QA.js} +1 -1
- package/dist/public/assets/_BgaZmQnf.js +1 -0
- package/dist/public/assets/{_CTWEYmTI.js → _BhKdX-rj.js} +1 -1
- package/dist/public/assets/_BhKdX-rj.js.br +0 -0
- package/dist/public/assets/_BiZJo433.js +1 -0
- package/dist/public/assets/_BjFAa_QC.js +1 -0
- package/dist/public/assets/_BldoGM89.js +1 -0
- package/dist/public/assets/{_CjBywzQY.js → _BnWaOo8-.js} +1 -1
- package/dist/public/assets/_BnWaOo8-.js.br +0 -0
- package/dist/public/assets/{_Bq6YGCFA.js → _Bnl6Usl6.js} +1 -1
- package/dist/public/assets/_Bnl6Usl6.js.br +0 -0
- package/dist/public/assets/{_DwgG6Lqp.js → _BoBCpx2o.js} +1 -1
- package/dist/public/assets/_BoBCpx2o.js.br +0 -0
- package/dist/public/assets/_BoBH0Btd.js +1 -0
- package/dist/public/assets/_BpGoVByg.js +1 -0
- package/dist/public/assets/_Bpv5KbFA.js +1 -0
- package/dist/public/assets/_BsdqqTPW.js +1 -0
- package/dist/public/assets/_BtrpLVUw.js +1 -0
- package/dist/public/assets/_Bv4nOvz-.js +1 -0
- package/dist/public/assets/{_DUdhA0Eo.js → _BvNeAIAw.js} +1 -1
- package/dist/public/assets/_BvNeAIAw.js.br +0 -0
- package/dist/public/assets/{_DQJhsqnZ.js → _BwpfLn81.js} +1 -1
- package/dist/public/assets/_BwpfLn81.js.br +0 -0
- package/dist/public/assets/_By8A2kLR.js +1 -0
- package/dist/public/assets/{_BoP-FA9p.js → _Bz255SNE.js} +1 -1
- package/dist/public/assets/_Bz255SNE.js.br +0 -0
- package/dist/public/assets/{_q3cMuVyC.js → _BzgCR7_b.js} +1 -1
- package/dist/public/assets/_BzgCR7_b.js.br +0 -0
- package/dist/public/assets/{_DWJFgfk4.js → _C-AAYVXm.js} +8 -8
- package/dist/public/assets/_C-AAYVXm.js.br +0 -0
- package/dist/public/assets/_C-Kh2F99.js +1 -0
- package/dist/public/assets/{_DNc08JNm.js → _C-pdEl9H.js} +1 -1
- package/dist/public/assets/_C-pdEl9H.js.br +0 -0
- package/dist/public/assets/_C0BhogaT.js +1 -0
- package/dist/public/assets/_C1Tn2FN6.js +1 -0
- package/dist/public/assets/{_Cp8oJ6H7.js → _C2_MGoE2.js} +2 -2
- package/dist/public/assets/_C2_MGoE2.js.br +0 -0
- package/dist/public/assets/{_8HzZiDVh.js → _C3DRxKJ1.js} +1 -1
- package/dist/public/assets/_C3DRxKJ1.js.br +0 -0
- package/dist/public/assets/{_D8uNskIY.js → _C5SvBtrC.js} +1 -1
- package/dist/public/assets/_C5SvBtrC.js.br +0 -0
- package/dist/public/assets/_C94-23iW.js +1 -0
- package/dist/public/assets/_CAXc9HNe.js +1 -0
- package/dist/public/assets/{_3kxBJ530.js → _CAdCDwUM.js} +1 -1
- package/dist/public/assets/_CAdCDwUM.js.br +0 -0
- package/dist/public/assets/_CAvhSGfs.js +1 -0
- package/dist/public/assets/_CB1rEIOF.js +1 -0
- package/dist/public/assets/{_B-Dd37yJ.js → _CC2LRwIy.js} +1 -1
- package/dist/public/assets/_CC2LRwIy.js.br +0 -0
- package/dist/public/assets/_CCrdAHBd.js +1 -0
- package/dist/public/assets/{_C5bcZAP2.js → _CDCKmwwE.js} +1 -1
- package/dist/public/assets/_CDCKmwwE.js.br +0 -0
- package/dist/public/assets/_CDTe63n7.js +1 -0
- package/dist/public/assets/{_Cu-QZbaD.js → _CE8BJSRE.js} +1 -1
- package/dist/public/assets/_CE8BJSRE.js.br +0 -0
- package/dist/public/assets/_CFtq9VUB.js +1 -0
- package/dist/public/assets/{_DXb6Ujr5.js → _CGsyxRkh.js} +1 -1
- package/dist/public/assets/_CGsyxRkh.js.br +0 -0
- package/dist/public/assets/_CI3Y4hpL.js +1 -0
- package/dist/public/assets/{_CF7Ts0kV.js → _CKUFfLpm.js} +6 -6
- package/dist/public/assets/_CKUFfLpm.js.br +0 -0
- package/dist/public/assets/{_Dm9VKmEp.js → _CLdzbsrz.js} +1 -1
- package/dist/public/assets/_CLdzbsrz.js.br +0 -0
- package/dist/public/assets/{_qEDYFtsh.js → _CM5IkGwP.js} +1 -1
- package/dist/public/assets/_CM5IkGwP.js.br +0 -0
- package/dist/public/assets/_CMWGulTO.js +1 -0
- package/dist/public/assets/_COjiPyog.js +1 -0
- package/dist/public/assets/{_9hfOJ4Uu.js → _CPEbH77l.js} +1 -1
- package/dist/public/assets/_CPEbH77l.js.br +0 -0
- package/dist/public/assets/{_C0w7NV3V.js → _CPUrkvFV.js} +1 -1
- package/dist/public/assets/_CPUrkvFV.js.br +0 -0
- package/dist/public/assets/_CPeBTb0k.js +1 -0
- package/dist/public/assets/{_jruwa4UP.js → _CQYcb9FU.js} +1 -1
- package/dist/public/assets/_CQYcb9FU.js.br +0 -0
- package/dist/public/assets/_CQrOi1M9.js +1 -0
- package/dist/public/assets/_CR9hzoTZ.js +1 -0
- package/dist/public/assets/{_1_wTfDSJ.js → _CROiBVo-.js} +1 -1
- package/dist/public/assets/_CROiBVo-.js.br +0 -0
- package/dist/public/assets/_CRVsJE1P.js +1 -0
- package/dist/public/assets/_CRVsJE1P.js.br +0 -0
- package/dist/public/assets/{_B59wTZw9.js → _CVFwOHgX.js} +1 -1
- package/dist/public/assets/_CVFwOHgX.js.br +0 -0
- package/dist/public/assets/{_tuWVwUN3.js → _CVwX3PKI.js} +1 -1
- package/dist/public/assets/_CVwX3PKI.js.br +0 -0
- package/dist/public/assets/{_CMcldPg1.js → _CW27Fq-q.js} +5 -5
- package/dist/public/assets/_CW27Fq-q.js.br +0 -0
- package/dist/public/assets/{_COXcNK13.js → _CWespSd8.js} +1 -1
- package/dist/public/assets/_CWespSd8.js.br +0 -0
- package/dist/public/assets/_CXqsJwto.js +1 -0
- package/dist/public/assets/{_BUbqeuOM.js → _CYm3kPXD.js} +1 -1
- package/dist/public/assets/_CYm3kPXD.js.br +0 -0
- package/dist/public/assets/{_D8KCTllr.js → _CYrWMAX2.js} +1 -1
- package/dist/public/assets/_CYrWMAX2.js.br +0 -0
- package/dist/public/assets/_C_1Sjfxy.js +1 -0
- package/dist/public/assets/{_CQgogakX.js → _C_EUl_jj.js} +1 -1
- package/dist/public/assets/_C_EUl_jj.js.br +0 -0
- package/dist/public/assets/_CaDqBEaB.js +1 -0
- package/dist/public/assets/{_DtXG-h7k.js → _CaqL11yy.js} +1 -1
- package/dist/public/assets/_CaqL11yy.js.br +0 -0
- package/dist/public/assets/_CbTWBJSy.js +1 -0
- package/dist/public/assets/_CbVL6eDh.js +1 -0
- package/dist/public/assets/{_CyiFYrbK.js → _CcwtHAX8.js} +1 -1
- package/dist/public/assets/_CcwtHAX8.js.br +0 -0
- package/dist/public/assets/_CfAMRtWv.js +1 -0
- package/dist/public/assets/_CfAMRtWv.js.br +0 -0
- package/dist/public/assets/{_w-VN6T0_.js → _CgCRY6Wr.js} +1 -1
- package/dist/public/assets/_CgCRY6Wr.js.br +0 -0
- package/dist/public/assets/_CllXob1U.js +1 -0
- package/dist/public/assets/_CllXob1U.js.br +0 -0
- package/dist/public/assets/{_CFPgh_5Z.js → _CqlfuhaH.js} +1 -1
- package/dist/public/assets/_CqlfuhaH.js.br +0 -0
- package/dist/public/assets/_CqpD5ZBq.js +1 -0
- package/dist/public/assets/_CsQMoSpn.js +1 -0
- package/dist/public/assets/_CwiwQRjf.js +1 -0
- package/dist/public/assets/{_DCZubcNu.js → _D05YE_WT.js} +1 -1
- package/dist/public/assets/_D05YE_WT.js.br +0 -0
- package/dist/public/assets/_D0NqmTa9.js +1 -0
- package/dist/public/assets/_D1Fm56Z4.js +1 -0
- package/dist/public/assets/{_DelYokbS.js → _D1haaDwQ.js} +1 -1
- package/dist/public/assets/_D1haaDwQ.js.br +0 -0
- package/dist/public/assets/{_GF3VDnzZ.js → _D3MexB9v.js} +1 -1
- package/dist/public/assets/_D3MexB9v.js.br +0 -0
- package/dist/public/assets/_D43OtyGb.js +1 -0
- package/dist/public/assets/{_B-psk3oP.js → _D4deJ4x0.js} +3 -3
- package/dist/public/assets/_D4deJ4x0.js.br +0 -0
- package/dist/public/assets/_D6WtkDHI.js +1 -0
- package/dist/public/assets/{_BFOdycKq.js → _D8O5eIU5.js} +1 -1
- package/dist/public/assets/_D8O5eIU5.js.br +0 -0
- package/dist/public/assets/_D9QPQSLZ.js +1 -0
- package/dist/public/assets/_D9Y03-Sz.js +1 -0
- package/dist/public/assets/{_C-h3K0_T.js → _DDBLZL8c.js} +1 -1
- package/dist/public/assets/_DDBLZL8c.js.br +0 -0
- package/dist/public/assets/{_CUTErFMI.js → _DGRvzDB6.js} +1 -1
- package/dist/public/assets/{_CwYZ5Dxs.js → _DGYxrtBF.js} +1 -1
- package/dist/public/assets/_DGYxrtBF.js.br +0 -0
- package/dist/public/assets/_DHMXQNGD.js +1 -0
- package/dist/public/assets/{_BiG5UuQ-.js → _DIsl6-x7.js} +1 -1
- package/dist/public/assets/_DIsl6-x7.js.br +0 -0
- package/dist/public/assets/{_C8Yq4jDD.js → _DKrJ3oJX.js} +2 -2
- package/dist/public/assets/_DKrJ3oJX.js.br +0 -0
- package/dist/public/assets/{_CWuASy4T.js → _DO2ZhOAY.js} +1 -1
- package/dist/public/assets/_DO2ZhOAY.js.br +0 -0
- package/dist/public/assets/{_CF1ENChA.js → _DOD7OVQl.js} +1 -1
- package/dist/public/assets/_DOD7OVQl.js.br +0 -0
- package/dist/public/assets/{_D9szIdEF.js → _DOtLi2ws.js} +1 -1
- package/dist/public/assets/_DOtLi2ws.js.br +0 -0
- package/dist/public/assets/_DQObzbDk.js +1 -0
- package/dist/public/assets/{_Dr1yAcYp.js → _DRJPSMMR.js} +1 -1
- package/dist/public/assets/_DRJPSMMR.js.br +0 -0
- package/dist/public/assets/{_BDuK4s2M.js → _DRyYnmyt.js} +1 -1
- package/dist/public/assets/_DRyYnmyt.js.br +0 -0
- package/dist/public/assets/{_B4JSSDQa.js → _DSI0vwsb.js} +1 -1
- package/dist/public/assets/_DSI0vwsb.js.br +0 -0
- package/dist/public/assets/_DSaMMREq.js +1 -0
- package/dist/public/assets/{_BbbAL7_P.js → _DVRH2CYK.js} +1 -1
- package/dist/public/assets/_DXjtW9JC.js +1 -0
- package/dist/public/assets/_DZf1ATAd.js +1 -0
- package/dist/public/assets/_DZr4kQnz.js +1 -0
- package/dist/public/assets/{_CsbhMRcD.js → _D_kJsjwI.js} +1 -1
- package/dist/public/assets/_D_kJsjwI.js.br +0 -0
- package/dist/public/assets/{_DmeArXqS.js → _DbB4cL-n.js} +1 -1
- package/dist/public/assets/_DbB4cL-n.js.br +0 -0
- package/dist/public/assets/_DfPu3opc.js +1 -0
- package/dist/public/assets/{_Qzcxe7rj.js → _Dg7kepAd.js} +1 -1
- package/dist/public/assets/_Dg7kepAd.js.br +0 -0
- package/dist/public/assets/{_Dtvx5njx.js → _DgvY2m9A.js} +1 -1
- package/dist/public/assets/_DgvY2m9A.js.br +0 -0
- package/dist/public/assets/_DgwGgUJy.js +1 -0
- package/dist/public/assets/{_CFmOX-Fd.js → _Di0HUCie.js} +1 -1
- package/dist/public/assets/_Di0HUCie.js.br +0 -0
- package/dist/public/assets/{_CLgXSakM.js → _Dp6J_KbS.js} +1 -1
- package/dist/public/assets/_Dp6J_KbS.js.br +0 -0
- package/dist/public/assets/{_D9BpbT81.js → _DtIBeeFy.js} +1 -1
- package/dist/public/assets/_DtIBeeFy.js.br +0 -0
- package/dist/public/assets/{_Dgz50BRe.js → _Dw3MtUmB.js} +1 -1
- package/dist/public/assets/_Dw3MtUmB.js.br +0 -0
- package/dist/public/assets/_DwPJWJHb.js +1 -0
- package/dist/public/assets/{_M-0KC02N.js → _Dx4SX3Ca.js} +1 -1
- package/dist/public/assets/_Dx4SX3Ca.js.br +0 -0
- package/dist/public/assets/_DynZoNSt.js +1 -0
- package/dist/public/assets/{_B6K2PvJ7.js → _DysbZv8j.js} +1 -1
- package/dist/public/assets/_DysbZv8j.js.br +0 -0
- package/dist/public/assets/{_DormkMsy.js → _Dz7OHR2k.js} +1 -1
- package/dist/public/assets/_Dz7OHR2k.js.br +0 -0
- package/dist/public/assets/{_DpQ14aK8.js → _DzaAUrO6.js} +1 -1
- package/dist/public/assets/_DzaAUrO6.js.br +0 -0
- package/dist/public/assets/_Eneb6D-q.js +1 -0
- package/dist/public/assets/_Eneb6D-q.js.br +0 -0
- package/dist/public/assets/{_By7UykDH.js → _Enp2Gr5h.js} +1 -1
- package/dist/public/assets/_Enp2Gr5h.js.br +0 -0
- package/dist/public/assets/_HGdm_T6n.js +1 -0
- package/dist/public/assets/_IHRDfsW6.js +1 -0
- package/dist/public/assets/_JbfD49fY.js +1 -0
- package/dist/public/assets/_L6-mkbsa.js +1 -0
- package/dist/public/assets/{_JfnbwmTR.js → _NDErTU55.js} +1 -1
- package/dist/public/assets/_NDErTU55.js.br +0 -0
- package/dist/public/assets/{_BQQv2o60.js → _PNcL1Txq.js} +1 -1
- package/dist/public/assets/{_CqODMqrf.js → _Rv15Vzpw.js} +1 -1
- package/dist/public/assets/_Rv15Vzpw.js.br +0 -0
- package/dist/public/assets/{_B_6deNjW.js → _T-WXenDh.js} +1 -1
- package/dist/public/assets/_T-WXenDh.js.br +0 -0
- package/dist/public/assets/_TBWUL5IV.js +1 -0
- package/dist/public/assets/{_Afc-YVUU.js → _WFiGVWwd.js} +1 -1
- package/dist/public/assets/_WFiGVWwd.js.br +0 -0
- package/dist/public/assets/{_CG4EvSiF.js → _WiZYGw70.js} +1 -1
- package/dist/public/assets/_WiZYGw70.js.br +0 -0
- package/dist/public/assets/_YpN2hMVJ.js +1 -0
- package/dist/public/assets/__6pMp03m.js +1 -0
- package/dist/public/assets/{_gFaRpA78.js → __eAclg0z.js} +1 -1
- package/dist/public/assets/__eAclg0z.js.br +0 -0
- package/dist/public/assets/{_BwNPh3OS.js → _addZLFo9.js} +1 -1
- package/dist/public/assets/_addZLFo9.js.br +0 -0
- package/dist/public/assets/{_BQj9LvsH.js → _ag0PzDtm.js} +1 -1
- package/dist/public/assets/_ag0PzDtm.js.br +0 -0
- package/dist/public/assets/{_DNGh4yT-.js → _dzQZD9Oh.js} +1 -1
- package/dist/public/assets/{_SdnijLXc.js → _g1-FS7Df.js} +1 -1
- package/dist/public/assets/_g1-FS7Df.js.br +0 -0
- package/dist/public/assets/_jcKZb6M0.js +1 -0
- package/dist/public/assets/{_DtY1egtQ.js → _ji7mS_dq.js} +1 -1
- package/dist/public/assets/_ji7mS_dq.js.br +0 -0
- package/dist/public/assets/{_CBAbGe4V.js → _myA0xLli.js} +1 -1
- package/dist/public/assets/_myA0xLli.js.br +0 -0
- package/dist/public/assets/_oo2v_wAX.js +1 -0
- package/dist/public/assets/_ooGCeDoo.js +1 -0
- package/dist/public/assets/_sNHDC53K.js +1 -0
- package/dist/public/assets/_u39G7Hfi.js +2 -0
- package/dist/public/assets/_u39G7Hfi.js.br +0 -0
- package/dist/public/assets/{_CluiuEMB.js → _vow_06MT.js} +1 -1
- package/dist/public/assets/_vow_06MT.js.br +0 -0
- package/dist/public/assets/_y7jUbIbx.js +1 -0
- package/dist/public/assets/files-view-CE00a_e1.js +2 -0
- package/dist/public/assets/manage-workspace-CoXEyz7q.js +2 -0
- package/dist/public/assets/new-DLD9EesK.js +1 -0
- package/dist/public/assets/new-workspace-tREW1Ew-.js +2 -0
- package/dist/public/assets/review-view-wXfDCa8J.js +2 -0
- package/dist/public/assets/settings-DLD9EesK.js +1 -0
- package/dist/public/assets/settings-page-C6yfsuBb.js +2 -0
- package/dist/public/assets/styles-Bj8QV6wc.css +1 -0
- package/dist/public/assets/styles-Bj8QV6wc.css.br +0 -0
- package/dist/public/assets/w-DLD9EesK.js +1 -0
- package/dist/public/assets/w._-B59-2Mie.js +1 -0
- package/dist/public/assets/w._-Ci83JVrq.js +1 -0
- package/dist/public/assets/w._-DLD9EesK.js +1 -0
- package/package.json +1 -1
- package/dist/_BR4BEDyC.js +0 -2
- package/dist/_CMipQEMm.js +0 -2
- package/dist/public/assets/_03d3UkgX.js +0 -1
- package/dist/public/assets/_0Q4oBxYC.js +0 -1
- package/dist/public/assets/_1_wTfDSJ.js.br +0 -0
- package/dist/public/assets/_3kxBJ530.js.br +0 -0
- package/dist/public/assets/_8HzZiDVh.js.br +0 -0
- package/dist/public/assets/_9hfOJ4Uu.js.br +0 -0
- package/dist/public/assets/_Afc-YVUU.js.br +0 -0
- package/dist/public/assets/_B-Dd37yJ.js.br +0 -0
- package/dist/public/assets/_B-psk3oP.js.br +0 -0
- package/dist/public/assets/_B4JSSDQa.js.br +0 -0
- package/dist/public/assets/_B4XFg06w.js +0 -1
- package/dist/public/assets/_B59wTZw9.js.br +0 -0
- package/dist/public/assets/_B6K2PvJ7.js.br +0 -0
- package/dist/public/assets/_B7sHwCD7.js +0 -1
- package/dist/public/assets/_B8jJYKmO.js +0 -1
- package/dist/public/assets/_BA4Q1B2i.js.br +0 -0
- package/dist/public/assets/_BBB_qsPW.js +0 -1
- package/dist/public/assets/_BBnRAD2G.js.br +0 -0
- package/dist/public/assets/_BDuK4s2M.js.br +0 -0
- package/dist/public/assets/_BFOdycKq.js.br +0 -0
- package/dist/public/assets/_BGCC-Irq.js +0 -1
- package/dist/public/assets/_BIJQqJIW.js +0 -1
- package/dist/public/assets/_BIgoWdAJ.js +0 -1
- package/dist/public/assets/_BJhFVbAW.js.br +0 -0
- package/dist/public/assets/_BN7qy6Kk.js.br +0 -0
- package/dist/public/assets/_BO6VV6iA.js +0 -1
- package/dist/public/assets/_BOUQOewS.js +0 -1
- package/dist/public/assets/_BOnfnn9G.js +0 -1
- package/dist/public/assets/_BPx3MQut.js +0 -1
- package/dist/public/assets/_BQj9LvsH.js.br +0 -0
- package/dist/public/assets/_BUbqeuOM.js.br +0 -0
- package/dist/public/assets/_BVYPWarL.js +0 -1
- package/dist/public/assets/_BVd8QOAS.js +0 -1
- package/dist/public/assets/_BWZMQLqU.js +0 -1
- package/dist/public/assets/_B_6deNjW.js.br +0 -0
- package/dist/public/assets/_B_Ae_atZ.js +0 -1
- package/dist/public/assets/_B_Ae_atZ.js.br +0 -0
- package/dist/public/assets/_Bajs5Qcg.js +0 -1
- package/dist/public/assets/_BalFm3HP.js +0 -1
- package/dist/public/assets/_Bb3dv6Na.js +0 -1
- package/dist/public/assets/_BdGBcsyM.js +0 -1
- package/dist/public/assets/_BfcYP5hd.js +0 -1
- package/dist/public/assets/_Bh-BT48p.js +0 -1
- package/dist/public/assets/_BiG5UuQ-.js.br +0 -0
- package/dist/public/assets/_BlKjOc5-.js +0 -1
- package/dist/public/assets/_Bls9JWdH.js +0 -1
- package/dist/public/assets/_Bo1JCUoN.js +0 -1
- package/dist/public/assets/_BoP-FA9p.js.br +0 -0
- package/dist/public/assets/_Bq6YGCFA.js.br +0 -0
- package/dist/public/assets/_BtY2ZnK5.js +0 -1
- package/dist/public/assets/_BwNPh3OS.js.br +0 -0
- package/dist/public/assets/_By7UykDH.js.br +0 -0
- package/dist/public/assets/_C-h3K0_T.js.br +0 -0
- package/dist/public/assets/_C0WDJdzM.js.br +0 -0
- package/dist/public/assets/_C0w7NV3V.js.br +0 -0
- package/dist/public/assets/_C3BTQJ0A.js +0 -1
- package/dist/public/assets/_C4sYPrYI.js +0 -1
- package/dist/public/assets/_C5bcZAP2.js.br +0 -0
- package/dist/public/assets/_C7fnAJ6g.js +0 -1
- package/dist/public/assets/_C8Yq4jDD.js.br +0 -0
- package/dist/public/assets/_C9ybHZfW.js +0 -1
- package/dist/public/assets/_C9ybHZfW.js.br +0 -0
- package/dist/public/assets/_CBAbGe4V.js.br +0 -0
- package/dist/public/assets/_CDQ7MwXr.js +0 -1
- package/dist/public/assets/_CDVcl5xo.js +0 -1
- package/dist/public/assets/_CEZ91x_t.js.br +0 -0
- package/dist/public/assets/_CF1ENChA.js.br +0 -0
- package/dist/public/assets/_CF7Ts0kV.js.br +0 -0
- package/dist/public/assets/_CFCplm2-.js +0 -1
- package/dist/public/assets/_CFPgh_5Z.js.br +0 -0
- package/dist/public/assets/_CFZj_4ll.js +0 -2
- package/dist/public/assets/_CFZj_4ll.js.br +0 -0
- package/dist/public/assets/_CFmOX-Fd.js.br +0 -0
- package/dist/public/assets/_CG0CHPUK.js +0 -1
- package/dist/public/assets/_CG4EvSiF.js.br +0 -0
- package/dist/public/assets/_CLgXSakM.js.br +0 -0
- package/dist/public/assets/_CMW8SppC.js +0 -1
- package/dist/public/assets/_CMcldPg1.js.br +0 -0
- package/dist/public/assets/_COXcNK13.js.br +0 -0
- package/dist/public/assets/_CQgogakX.js.br +0 -0
- package/dist/public/assets/_CSVp2oD0.js +0 -1
- package/dist/public/assets/_CTWEYmTI.js.br +0 -0
- package/dist/public/assets/_CWuASy4T.js.br +0 -0
- package/dist/public/assets/_CX76Q6G1.js +0 -1
- package/dist/public/assets/_CX76Q6G1.js.br +0 -0
- package/dist/public/assets/_CXrjWfrM.js +0 -1
- package/dist/public/assets/_CY7fs01C.js +0 -1
- package/dist/public/assets/_CbhGs90d.js +0 -1
- package/dist/public/assets/_CbhGs90d.js.br +0 -0
- package/dist/public/assets/_CeiKaj7C.js +0 -1
- package/dist/public/assets/_CgoG_u2i.js +0 -1
- package/dist/public/assets/_CgukoGaA.js +0 -1
- package/dist/public/assets/_ChJRlKs0.js +0 -1
- package/dist/public/assets/_Cio0AgLV.js +0 -1
- package/dist/public/assets/_CjBywzQY.js.br +0 -0
- package/dist/public/assets/_CkiBkp-S.js +0 -1
- package/dist/public/assets/_CluiuEMB.js.br +0 -0
- package/dist/public/assets/_Cmz4NQXO.js +0 -1
- package/dist/public/assets/_Cmz4NQXO.js.br +0 -0
- package/dist/public/assets/_Cp8oJ6H7.js.br +0 -0
- package/dist/public/assets/_CqODMqrf.js.br +0 -0
- package/dist/public/assets/_CsatRarq.js +0 -1
- package/dist/public/assets/_CsbhMRcD.js.br +0 -0
- package/dist/public/assets/_Cu-QZbaD.js.br +0 -0
- package/dist/public/assets/_CwYZ5Dxs.js.br +0 -0
- package/dist/public/assets/_CyiFYrbK.js.br +0 -0
- package/dist/public/assets/_D-YNCmUE.js +0 -1
- package/dist/public/assets/_D0btyFO1.js +0 -1
- package/dist/public/assets/_D1PKXYlE.js +0 -1
- package/dist/public/assets/_D3sJ3s1C.js.br +0 -0
- package/dist/public/assets/_D4CqtJQF.js +0 -1
- package/dist/public/assets/_D7Gle0KN.js.br +0 -0
- package/dist/public/assets/_D8KCTllr.js.br +0 -0
- package/dist/public/assets/_D8uNskIY.js.br +0 -0
- package/dist/public/assets/_D9BpbT81.js.br +0 -0
- package/dist/public/assets/_D9szIdEF.js.br +0 -0
- package/dist/public/assets/_DBeQvirx.js +0 -1
- package/dist/public/assets/_DBjfryso.js +0 -1
- package/dist/public/assets/_DCZubcNu.js.br +0 -0
- package/dist/public/assets/_DDjzQ8qC.js +0 -1
- package/dist/public/assets/_DNc08JNm.js.br +0 -0
- package/dist/public/assets/_DPHOfJQT.js +0 -1
- package/dist/public/assets/_DQJhsqnZ.js.br +0 -0
- package/dist/public/assets/_DR3b0Fwn.js +0 -1
- package/dist/public/assets/_DUdhA0Eo.js.br +0 -0
- package/dist/public/assets/_DV7xLuXD.js +0 -1
- package/dist/public/assets/_DWJFgfk4.js.br +0 -0
- package/dist/public/assets/_DXb6Ujr5.js.br +0 -0
- package/dist/public/assets/_DYNhbA68.js +0 -1
- package/dist/public/assets/_D_wzNo2U.js.br +0 -0
- package/dist/public/assets/_DaPltzfm.js +0 -1
- package/dist/public/assets/_De0QVpbB.js +0 -1
- package/dist/public/assets/_DelYokbS.js.br +0 -0
- package/dist/public/assets/_Dfq0irHD.js +0 -1
- package/dist/public/assets/_DfwNSkCJ.js +0 -1
- package/dist/public/assets/_Dgz50BRe.js.br +0 -0
- package/dist/public/assets/_DiA3r6nu.js.br +0 -0
- package/dist/public/assets/_DiReau_r.js +0 -1
- package/dist/public/assets/_Dm9VKmEp.js.br +0 -0
- package/dist/public/assets/_DmeArXqS.js.br +0 -0
- package/dist/public/assets/_DormkMsy.js.br +0 -0
- package/dist/public/assets/_DpQ14aK8.js.br +0 -0
- package/dist/public/assets/_Dr1yAcYp.js.br +0 -0
- package/dist/public/assets/_DrAM0hxR.js.br +0 -0
- package/dist/public/assets/_DtXG-h7k.js.br +0 -0
- package/dist/public/assets/_DtY1egtQ.js.br +0 -0
- package/dist/public/assets/_Dtvx5njx.js.br +0 -0
- package/dist/public/assets/_Due3HoI1.js +0 -1
- package/dist/public/assets/_DwgG6Lqp.js.br +0 -0
- package/dist/public/assets/_DxN1W2Nk.js +0 -1
- package/dist/public/assets/_Dzvkb4Ti.js +0 -1
- package/dist/public/assets/_G-GaPqSQ.js +0 -1
- package/dist/public/assets/_GF3VDnzZ.js.br +0 -0
- package/dist/public/assets/_HvHN5hZ6.js +0 -1
- package/dist/public/assets/_IP5g6XaE.js +0 -1
- package/dist/public/assets/_IvKg19Qx.js +0 -1
- package/dist/public/assets/_JfnbwmTR.js.br +0 -0
- package/dist/public/assets/_M-0KC02N.js.br +0 -0
- package/dist/public/assets/_NR9bsoH7.js +0 -1
- package/dist/public/assets/_PmYZ-CFd.js +0 -1
- package/dist/public/assets/_Qaicb8rw.js +0 -1
- package/dist/public/assets/_Qzcxe7rj.js.br +0 -0
- package/dist/public/assets/_S-wQGN0d.js +0 -1
- package/dist/public/assets/_SdnijLXc.js.br +0 -0
- package/dist/public/assets/_ZTe0jiNy.js +0 -1
- package/dist/public/assets/_ZxJ2Lzu2.js.br +0 -0
- package/dist/public/assets/_aGrxetSF.js.br +0 -0
- package/dist/public/assets/_djvWBu8f.js +0 -1
- package/dist/public/assets/_gFaRpA78.js.br +0 -0
- package/dist/public/assets/_jruwa4UP.js.br +0 -0
- package/dist/public/assets/_nPxFHJqg.js +0 -1
- package/dist/public/assets/_q-LuFRZS.js +0 -1
- package/dist/public/assets/_q3cMuVyC.js.br +0 -0
- package/dist/public/assets/_qEDYFtsh.js.br +0 -0
- package/dist/public/assets/_s8OlA52N.js +0 -1
- package/dist/public/assets/_tuWVwUN3.js.br +0 -0
- package/dist/public/assets/_w-VN6T0_.js.br +0 -0
- package/dist/public/assets/_wqkLBhdf.js +0 -1
- package/dist/public/assets/_z6cGuy7p.js +0 -1
- package/dist/public/assets/_zD4h7OzJ.js +0 -1
- package/dist/public/assets/_zgv2pw_Q.js +0 -1
- package/dist/public/assets/_zukg50cW.js +0 -1
- package/dist/public/assets/files-view-LMTD6Ipl.js +0 -2
- package/dist/public/assets/manage-workspace-DEldc_vs.js +0 -2
- package/dist/public/assets/new-D1ahcLCr.js +0 -1
- package/dist/public/assets/new-workspace-Da5Gofiu.js +0 -2
- package/dist/public/assets/review-view-CtqjLVww.js +0 -2
- package/dist/public/assets/settings-D1ahcLCr.js +0 -1
- package/dist/public/assets/settings-page-WHqaGIlG.js +0 -2
- package/dist/public/assets/styles-DMmQfVp6.css +0 -1
- package/dist/public/assets/styles-DMmQfVp6.css.br +0 -0
- package/dist/public/assets/w-D1ahcLCr.js +0 -1
- package/dist/public/assets/w._-D1ahcLCr.js +0 -1
- package/dist/public/assets/w._-DObb6Yr-.js +0 -1
- package/dist/public/assets/w._-Dg01iB2K.js +0 -1
package/bin/cli/session.mjs
CHANGED
|
@@ -99,11 +99,14 @@ async function textOf(value) {
|
|
|
99
99
|
* reach the session sooner. */
|
|
100
100
|
function sentText(id, r, asked) {
|
|
101
101
|
const lines = [];
|
|
102
|
+
if (r.answered) lines.push(`This answers ${r.answered}.`);
|
|
102
103
|
if (r.wantsReply)
|
|
103
104
|
lines.push(
|
|
104
|
-
|
|
105
|
+
r.bySend
|
|
106
|
+
? `It is the user's own session, so it answers with a send of its own, which comes to you as a prompt: end your turn to wait for it, or run \`work session wait ${id}\`.`
|
|
107
|
+
: `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}\`.`,
|
|
105
108
|
);
|
|
106
|
-
if (r.wantsReply && !r.delivered)
|
|
109
|
+
if (r.wantsReply && !r.bySend && !r.delivered)
|
|
107
110
|
lines.push(
|
|
108
111
|
"A reply it sends before then answers what it is on now: each reply names the message of yours it answers.",
|
|
109
112
|
);
|
|
@@ -135,12 +138,20 @@ function sentText(id, r, asked) {
|
|
|
135
138
|
}
|
|
136
139
|
|
|
137
140
|
function printReply(r) {
|
|
138
|
-
const
|
|
139
|
-
|
|
140
|
-
|
|
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
145
|
console.log(head);
|
|
143
|
-
if (
|
|
146
|
+
if (replied) console.log(`${r.text}\n`);
|
|
147
|
+
if (r.asks === "turn")
|
|
148
|
+
console.log(
|
|
149
|
+
"It asks in turn: your last message this turn goes back to it as your reply.\n",
|
|
150
|
+
);
|
|
151
|
+
else if (r.asks === "send")
|
|
152
|
+
console.log(
|
|
153
|
+
`It waits for your answer: send it with \`work session send ${r.from} "…"\`. Your last message is the user's: end on a line saying what you told it.\n`,
|
|
154
|
+
);
|
|
144
155
|
}
|
|
145
156
|
|
|
146
157
|
/** Start folders for `count` sessions, a topic each (`<topic>`, or
|
|
@@ -253,7 +264,10 @@ work session send <id> "<text>"|- [--no-reply] [--now|--interrupt]
|
|
|
253
264
|
it is at its prompt — never into a question it asks or a draft someone
|
|
254
265
|
is typing. From an agent's session it wants a reply unless --no-reply:
|
|
255
266
|
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
|
|
267
|
+
session as a prompt of its own. End your turn to wait for it. A
|
|
268
|
+
session no agent started is the user's, whose last message is theirs:
|
|
269
|
+
it answers with a send back instead, and a send to an agent that asked
|
|
270
|
+
this session that way is the answer. A turn
|
|
257
271
|
can run for hours, and one sent meanwhile waits for its end, then is
|
|
258
272
|
answered a turn later: the reply that comes first answers what it was
|
|
259
273
|
on, and each reply names the message of yours it answers and those
|
|
@@ -743,6 +743,13 @@ var STEPS = [
|
|
|
743
743
|
up(db) {
|
|
744
744
|
db.exec("ALTER TABLE session_messages ADD COLUMN urgent INTEGER NOT NULL DEFAULT 0");
|
|
745
745
|
}
|
|
746
|
+
},
|
|
747
|
+
{
|
|
748
|
+
version: 11,
|
|
749
|
+
name: "answers by send",
|
|
750
|
+
up(db) {
|
|
751
|
+
db.exec("ALTER TABLE session_messages ADD COLUMN by_send INTEGER NOT NULL DEFAULT 0");
|
|
752
|
+
}
|
|
746
753
|
}
|
|
747
754
|
];
|
|
748
755
|
var LATEST = STEPS.at(-1).version;
|
|
@@ -9465,7 +9472,7 @@ function publishChange(sessionId) {
|
|
|
9465
9472
|
const row = get("SELECT workspace_id FROM sessions WHERE id = ?", sessionId);
|
|
9466
9473
|
if (row?.workspace_id) {
|
|
9467
9474
|
const workspaceId = row.workspace_id;
|
|
9468
|
-
import("./
|
|
9475
|
+
import("./_o6JmtS1w.js").then((m) => m.notifySessionsChanged(workspaceId));
|
|
9469
9476
|
return;
|
|
9470
9477
|
}
|
|
9471
9478
|
publish("sessions.changed");
|
|
@@ -12732,7 +12739,7 @@ async function stackParents(dir, ws, repo, family, open) {
|
|
|
12732
12739
|
}
|
|
12733
12740
|
const bases = [.../* @__PURE__ */ new Set([repo.base_branch, repo.default_branch])];
|
|
12734
12741
|
const landed = [...(await resolveRefs(dir, bases.map((b) => `origin/${b}`))).keys()];
|
|
12735
|
-
if (names.length > 1 && landed.length) {
|
|
12742
|
+
if (names.length > 1 && (landed.length || !await remoteHasHeads(dir))) {
|
|
12736
12743
|
const out = await git([
|
|
12737
12744
|
"log",
|
|
12738
12745
|
"--simplify-by-decoration",
|
|
@@ -12744,8 +12751,7 @@ async function stackParents(dir, ws, repo, family, open) {
|
|
|
12744
12751
|
"--parents",
|
|
12745
12752
|
"--format=%H%x1f%P%x1f%D",
|
|
12746
12753
|
...new Set(tips.values()),
|
|
12747
|
-
"--not",
|
|
12748
|
-
...landed
|
|
12754
|
+
...landed.length ? ["--not", ...landed] : []
|
|
12749
12755
|
], dir).catch(() => "");
|
|
12750
12756
|
/** Commit → the nearest pointed-at commit under it (first parent). */
|
|
12751
12757
|
const under = /* @__PURE__ */ new Map();
|
|
@@ -12782,7 +12788,7 @@ async function stackParents(dir, ws, repo, family, open) {
|
|
|
12782
12788
|
const tip = tips.get(name);
|
|
12783
12789
|
const shared = await mergeBaseOf(dir, tip, wsTip).catch(() => "");
|
|
12784
12790
|
if (!shared || shared === tip) return;
|
|
12785
|
-
if (!await isAncestorOf(dir, shared, landed[0])) history.set(name, ws.branch);
|
|
12791
|
+
if (!(!!landed.length && await isAncestorOf(dir, shared, landed[0]))) history.set(name, ws.branch);
|
|
12786
12792
|
}));
|
|
12787
12793
|
}
|
|
12788
12794
|
const places = /* @__PURE__ */ new Map();
|
|
@@ -17603,7 +17609,7 @@ function notifySessionsChanged(workspaceId) {
|
|
|
17603
17609
|
async function emitSessionsChanged(workspaceId) {
|
|
17604
17610
|
try {
|
|
17605
17611
|
const states = await sessionStates();
|
|
17606
|
-
const { teamsOf } = await import("./
|
|
17612
|
+
const { teamsOf } = await import("./_B2zjDgtj.js");
|
|
17607
17613
|
publish("sessions.changed", {
|
|
17608
17614
|
workspaceId,
|
|
17609
17615
|
sessions: listSessions(workspaceId).map((s) => ({
|
|
@@ -19225,7 +19231,9 @@ ${repoLines}
|
|
|
19225
19231
|
running as you do (it asks the user nothing you would not), and
|
|
19226
19232
|
\`work session send <id> "<text>"\` messages one; its last message, as that
|
|
19227
19233
|
turn ends, comes back to you as a prompt: end your turn to wait for it (or
|
|
19228
|
-
\`work session wait\`).
|
|
19234
|
+
\`work session wait\`). In the user's own session (one no agent
|
|
19235
|
+
started) you answer an agent with \`send\`, as its header says, and end
|
|
19236
|
+
on a line for the user saying what you told it: your last message is theirs. A message waits for the turn under way to end,
|
|
19229
19237
|
which can take hours: a correction or a stop goes with \`--now\` (into
|
|
19230
19238
|
that turn, at its next step) or \`--interrupt\` (stops it first). \`work session fanout --agent <id>… --prompt "<task {}>" <item>…\`
|
|
19231
19239
|
starts a group, a few at a time, whose replies come back as one prompt
|
|
@@ -1,55 +1,55 @@
|
|
|
1
|
-
var glyphBadgeNum = "
|
|
1
|
+
var glyphBadgeNum = "_P _O";
|
|
2
2
|
var usageInk = {
|
|
3
|
-
ok: "
|
|
4
|
-
mid: "
|
|
5
|
-
warm: "
|
|
6
|
-
hot: "
|
|
3
|
+
ok: "_Q",
|
|
4
|
+
mid: "_R",
|
|
5
|
+
warm: "_S",
|
|
6
|
+
hot: "_T"
|
|
7
7
|
};
|
|
8
8
|
var usageFill = {
|
|
9
|
-
ok: "
|
|
10
|
-
mid: "
|
|
11
|
-
warm: "
|
|
12
|
-
hot: "
|
|
9
|
+
ok: "_U",
|
|
10
|
+
mid: "_V",
|
|
11
|
+
warm: "_W",
|
|
12
|
+
hot: "_X"
|
|
13
13
|
};
|
|
14
14
|
var prTone = {
|
|
15
|
-
open: "
|
|
16
|
-
draft: "
|
|
17
|
-
merged: "
|
|
18
|
-
closed: "
|
|
15
|
+
open: "_Y",
|
|
16
|
+
draft: "_Z",
|
|
17
|
+
merged: "_0",
|
|
18
|
+
closed: "_1"
|
|
19
19
|
};
|
|
20
20
|
var phaseIcon = {
|
|
21
|
-
working: "
|
|
22
|
-
waiting: "
|
|
23
|
-
idle: "
|
|
24
|
-
off: "
|
|
21
|
+
working: "_bd _bc",
|
|
22
|
+
waiting: "_be _bc",
|
|
23
|
+
idle: "_bf _bc",
|
|
24
|
+
off: "_bg _bc"
|
|
25
25
|
};
|
|
26
|
-
var btnSm = "
|
|
27
|
-
var btnLg = "
|
|
26
|
+
var btnSm = "_bn _I";
|
|
27
|
+
var btnLg = "_bo _I";
|
|
28
28
|
var tone = {
|
|
29
|
-
accent: "
|
|
30
|
-
ok: "
|
|
31
|
-
warn: "
|
|
32
|
-
danger: "
|
|
33
|
-
merged: "
|
|
34
|
-
closed: "
|
|
29
|
+
accent: "_bs",
|
|
30
|
+
ok: "_bt",
|
|
31
|
+
warn: "_bu",
|
|
32
|
+
danger: "_bv",
|
|
33
|
+
merged: "_bw",
|
|
34
|
+
closed: "_bx"
|
|
35
35
|
};
|
|
36
|
-
var inputLg = "
|
|
37
|
-
var iconBtnXs = "
|
|
38
|
-
var iconBtnRow = "
|
|
39
|
-
var iconBtnLg = "
|
|
40
|
-
var chipBtn = "
|
|
41
|
-
var toastStack = "
|
|
36
|
+
var inputLg = "_bB _bA";
|
|
37
|
+
var iconBtnXs = "_bF _D";
|
|
38
|
+
var iconBtnRow = "_bG _D";
|
|
39
|
+
var iconBtnLg = "_bH _D";
|
|
40
|
+
var chipBtn = "_bI _D";
|
|
41
|
+
var toastStack = "_o _n";
|
|
42
42
|
var toastKind = {
|
|
43
|
-
error: "
|
|
44
|
-
warn: "
|
|
45
|
-
info: "
|
|
43
|
+
error: "_s",
|
|
44
|
+
warn: "_t",
|
|
45
|
+
info: "_u"
|
|
46
46
|
};
|
|
47
47
|
var toastTitle = {
|
|
48
|
-
error: "
|
|
49
|
-
warn: "
|
|
50
|
-
info: "
|
|
48
|
+
error: "_v",
|
|
49
|
+
warn: "_w",
|
|
50
|
+
info: "_x"
|
|
51
51
|
};
|
|
52
|
-
var tocDot = "
|
|
52
|
+
var tocDot = "_dz _ba";
|
|
53
53
|
//#endregion
|
|
54
54
|
//#region src/styles/tokens.css.ts
|
|
55
55
|
var color = {
|
|
@@ -85,98 +85,98 @@ var iconSize = {
|
|
|
85
85
|
};
|
|
86
86
|
//#endregion
|
|
87
87
|
//#region src/tags/settings-agents.css.ts
|
|
88
|
-
var agentRow = "
|
|
89
|
-
var list$3 = "_dO
|
|
90
|
-
var metaChip = "_d2
|
|
91
|
-
var sectionCount = "
|
|
92
|
-
var usageNote = "
|
|
93
|
-
var pop$2 = "
|
|
94
|
-
var spinner = "
|
|
95
|
-
var toolLead = "
|
|
96
|
-
var name$4 = "
|
|
97
|
-
var desc$1 = "
|
|
88
|
+
var agentRow = "_gi _dK";
|
|
89
|
+
var list$3 = "_dO _da _dJ _dM";
|
|
90
|
+
var metaChip = "_d2 _bz _by";
|
|
91
|
+
var sectionCount = "_c8 _bp _bq";
|
|
92
|
+
var usageNote = "_j_ _by";
|
|
93
|
+
var pop$2 = "_g4 _bN";
|
|
94
|
+
var spinner = "_g7 _bD _bi";
|
|
95
|
+
var toolLead = "_hd _dX";
|
|
96
|
+
var name$4 = "_gu _dX";
|
|
97
|
+
var desc$1 = "_gv _dY";
|
|
98
98
|
//#endregion
|
|
99
99
|
//#region src/tags/lsp-add-dialog.css.ts
|
|
100
|
-
var addDlg = "
|
|
101
|
-
var key$1 = "
|
|
102
|
-
var addTile = "
|
|
103
|
-
var field$2 = "
|
|
104
|
-
var keyField = "
|
|
105
|
-
var labelField = "
|
|
106
|
-
var detailsToggle = "
|
|
107
|
-
var themeSeg = "
|
|
108
|
-
var checkList = "
|
|
100
|
+
var addDlg = "_lE _b4";
|
|
101
|
+
var key$1 = "_lR _lP";
|
|
102
|
+
var addTile = "_lT _lP";
|
|
103
|
+
var field$2 = "_l4 _bA";
|
|
104
|
+
var keyField = "_l5 _l4 _bA";
|
|
105
|
+
var labelField = "_l6 _l4 _bA";
|
|
106
|
+
var detailsToggle = "_gM _6";
|
|
107
|
+
var themeSeg = "_fY _bR";
|
|
108
|
+
var checkList = "_jO _c9";
|
|
109
109
|
//#endregion
|
|
110
110
|
//#region src/tags/prompt-dialog.css.ts
|
|
111
|
-
var promptDlg = "
|
|
112
|
-
var item$1 = "
|
|
113
|
-
var glance = "_dG
|
|
111
|
+
var promptDlg = "_b8 _b4";
|
|
112
|
+
var item$1 = "_b0 _D";
|
|
113
|
+
var glance = "_dG _D";
|
|
114
114
|
//#endregion
|
|
115
115
|
//#region src/tags/side-nav.css.ts
|
|
116
|
-
var iconBtn = "
|
|
117
|
-
var settingsDot = "
|
|
118
|
-
var notifyBtn = "
|
|
116
|
+
var iconBtn = "_cl _D";
|
|
117
|
+
var settingsDot = "_cm _bQ";
|
|
118
|
+
var notifyBtn = "_cr _D";
|
|
119
119
|
//#endregion
|
|
120
120
|
//#region src/styles/session-pop.css.ts
|
|
121
|
-
var sessionPop = "
|
|
122
|
-
var sessionPopBtn = "
|
|
123
|
-
var wsBtn = "
|
|
124
|
-
var rowIcon = "
|
|
125
|
-
var prChip = "
|
|
121
|
+
var sessionPop = "_ct _bN";
|
|
122
|
+
var sessionPopBtn = "_cu _bk";
|
|
123
|
+
var wsBtn = "_e9 _bk";
|
|
124
|
+
var rowIcon = "_fa _bF _D";
|
|
125
|
+
var prChip = "_mc _M _lJ";
|
|
126
126
|
//#endregion
|
|
127
127
|
//#region src/tags/port-chip.css.ts
|
|
128
|
-
var port = "_oI
|
|
128
|
+
var port = "_oI _M _lJ";
|
|
129
129
|
var depth = {
|
|
130
|
-
"1": "
|
|
131
|
-
"2": "
|
|
132
|
-
"3": "
|
|
130
|
+
"1": "_kt",
|
|
131
|
+
"2": "_ku",
|
|
132
|
+
"3": "_kv"
|
|
133
133
|
};
|
|
134
|
-
var open = "
|
|
135
|
-
var action = "
|
|
136
|
-
var toggle = "_d7
|
|
134
|
+
var open = "_kB _bk";
|
|
135
|
+
var action = "_kG _bI _D";
|
|
136
|
+
var toggle = "_d7 _6";
|
|
137
137
|
var fold = "_d8 _dL";
|
|
138
138
|
var statusOf = {
|
|
139
|
-
queued: "
|
|
140
|
-
starting: "
|
|
141
|
-
working: "
|
|
142
|
-
waiting: "
|
|
143
|
-
idle: "
|
|
144
|
-
done: "
|
|
145
|
-
closed: "
|
|
139
|
+
queued: "_mQ",
|
|
140
|
+
starting: "_mR",
|
|
141
|
+
working: "_mS",
|
|
142
|
+
waiting: "_mT",
|
|
143
|
+
idle: "_mU",
|
|
144
|
+
done: "_mV",
|
|
145
|
+
closed: "_mW"
|
|
146
146
|
};
|
|
147
|
-
var item = "
|
|
148
|
-
var menu = "
|
|
149
|
-
var menuItem = "
|
|
150
|
-
var findBtn$1 = "
|
|
151
|
-
var tool = "
|
|
152
|
-
var heldRefresh = "
|
|
153
|
-
var pop$1 = "
|
|
154
|
-
var fileFilter = "_oM
|
|
155
|
-
var findInput = "
|
|
156
|
-
var keybarIconBtn = "
|
|
157
|
-
var input = "
|
|
158
|
-
var group = "
|
|
159
|
-
var hint$1 = "
|
|
160
|
-
var sheetDir = "
|
|
161
|
-
var upBtn = "
|
|
162
|
-
var findBtn = "
|
|
163
|
-
var goBtn = "
|
|
164
|
-
var note = "
|
|
147
|
+
var item = "_km _bk";
|
|
148
|
+
var menu = "_ns _ct _bN";
|
|
149
|
+
var menuItem = "_nu _bk";
|
|
150
|
+
var findBtn$1 = "_iZ _hU _bG _D";
|
|
151
|
+
var tool = "_hU _bG _D";
|
|
152
|
+
var heldRefresh = "_h2 _M";
|
|
153
|
+
var pop$1 = "_mu _ct _bN";
|
|
154
|
+
var fileFilter = "_oM _F";
|
|
155
|
+
var findInput = "_er _F";
|
|
156
|
+
var keybarIconBtn = "_eA _bI _D";
|
|
157
|
+
var input = "_ca _F";
|
|
158
|
+
var group = "_cd _6";
|
|
159
|
+
var hint$1 = "_na _bp _3";
|
|
160
|
+
var sheetDir = "_n1 _bP";
|
|
161
|
+
var upBtn = "_ie _bG _D";
|
|
162
|
+
var findBtn = "_ii _hU _bG _D";
|
|
163
|
+
var goBtn = "_ij _hU _bG _D";
|
|
164
|
+
var note = "_lD _by";
|
|
165
165
|
//#endregion
|
|
166
166
|
//#region src/tags/manage-workspace.css.ts
|
|
167
|
-
var procCmd = "
|
|
168
|
-
var factCopy = "
|
|
169
|
-
var resultRow = "_lc
|
|
170
|
-
var resultBranch = "_ld _d2
|
|
171
|
-
var urlAction = "_le _d2
|
|
172
|
-
var curRow = "
|
|
167
|
+
var procCmd = "_eU _dX";
|
|
168
|
+
var factCopy = "_e1 _bI _D";
|
|
169
|
+
var resultRow = "_lc _bk";
|
|
170
|
+
var resultBranch = "_ld _d2 _bz _by _bF _D";
|
|
171
|
+
var urlAction = "_le _d2 _bz _by _d3";
|
|
172
|
+
var curRow = "_fq _dR";
|
|
173
173
|
//#endregion
|
|
174
174
|
//#region src/tags/join-dialog.css.ts
|
|
175
|
-
var dlg = "
|
|
176
|
-
var hint = "
|
|
177
|
-
var kbtn = "
|
|
178
|
-
var repeat = "
|
|
179
|
-
var dpadUser = "
|
|
180
|
-
var dpadEsc = "
|
|
175
|
+
var dlg = "_lt _b4";
|
|
176
|
+
var hint = "_lu _by";
|
|
177
|
+
var kbtn = "_cR _bH _D";
|
|
178
|
+
var repeat = "_cU _cT";
|
|
179
|
+
var dpadUser = "_cX _cT";
|
|
180
|
+
var dpadEsc = "_cY _cT";
|
|
181
181
|
//#endregion
|
|
182
182
|
export { field$2 as $, item as A, prTone as At, wsBtn as B, fileFilter as C, chipBtn as Ct, findBtn$1 as D, iconBtnXs as Dt, tool as E, iconBtnRow 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, usageFill as Mt, toggle as N, usageInk as Nt, menu as O, inputLg as Ot, action as P, addTile as Q, prChip as R, keybarIconBtn as S, btnSm as St, heldRefresh as T, iconBtnLg as Tt, iconBtn as U, sessionPop as V, notifyBtn as W, themeSeg as X, checkList as Y, detailsToggle as Z, sheetDir as _, tocDot as _t, dlg as a, name$4 as at, input as b, toastTitle 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, sans as gt, goBtn as h, iconSize as ht, repeat as i, desc$1 as it, statusOf as j, tone as jt, menuItem as k, phaseIcon as kt, resultRow as l, usageNote as lt, findBtn as m, color 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, toastKind as vt, pop$1 as w, glyphBadgeNum as wt, findInput as x, btnLg as xt, group as y, toastStack as yt, rowIcon as z };
|
|
@@ -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, R as interruptSession, Sn as lastTypedAt, U as listPanesWithin, Vn as turnSettling, Y as onSessionDispose, Zr as httpError, _n as agentPhase, ai as get, an as interruptKeys, bn as hookReportedAt, cn as steerKeys, et as reopenable, gn as activityOf, ii as db, j as createSession, jn as onPhaseChange, nt as sendToSession, pn as cleanSummary, ri as all, tt as retireSession, z as killSession, zn as summaryOf } from "./
|
|
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, R as interruptSession, Sn as lastTypedAt, U as listPanesWithin, Vn as turnSettling, Y as onSessionDispose, Zr as httpError, _n as agentPhase, ai as get, an as interruptKeys, bn as hookReportedAt, cn as steerKeys, et as reopenable, gn as activityOf, ii as db, j as createSession, jn as onPhaseChange, nt as sendToSession, pn as cleanSummary, ri as all, tt as retireSession, z as killSession, zn as summaryOf } from "./_C65JTOIi.js";
|
|
2
2
|
//#region src/server/messages.ts
|
|
3
3
|
var team = {
|
|
4
4
|
memberGroup: () => null,
|
|
@@ -62,9 +62,13 @@ function labelOf(session) {
|
|
|
62
62
|
function render(row) {
|
|
63
63
|
const from = row.from_label ?? row.from_session;
|
|
64
64
|
switch (row.kind) {
|
|
65
|
-
case "message":
|
|
65
|
+
case "message": {
|
|
66
66
|
if (!row.from_session) return row.body;
|
|
67
|
-
|
|
67
|
+
const owed = row.answers ? stillOwed(row.to_session, row.from_session) : "";
|
|
68
|
+
const head = row.answers ? `Reply from session ${from} to ${row.answers}${owed ? `; ${owed}` : ""}` : `From session ${from}`;
|
|
69
|
+
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}`;
|
|
71
|
+
}
|
|
68
72
|
case "reply": {
|
|
69
73
|
const owed = row.from_session ? stillOwed(row.to_session, row.from_session) : "";
|
|
70
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}`;
|
|
@@ -81,10 +85,11 @@ function excerpt(row) {
|
|
|
81
85
|
const line = row.body.split("\n").find((l) => l.trim())?.trim() ?? "";
|
|
82
86
|
return `${time} ("${line.length > EXCERPT ? `${line.slice(0, 39)}…` : line}")`;
|
|
83
87
|
}
|
|
84
|
-
/** An asker's messages as a reply to it names them
|
|
85
|
-
|
|
88
|
+
/** An asker's messages as a reply to it names them (`whose` for its
|
|
89
|
+
* sender's). */
|
|
90
|
+
function yours(rows, whose = "your") {
|
|
86
91
|
const each = rows.map(excerpt);
|
|
87
|
-
return each.length === 1 ?
|
|
92
|
+
return each.length === 1 ? `${whose} message of ${each[0]}` : `${whose} messages of ${each.slice(0, -1).join(", ")} and ${each.at(-1)}`;
|
|
88
93
|
}
|
|
89
94
|
/** What `asker` sent `to` that a reply from it has not answered yet: the
|
|
90
95
|
* reply was to what it was on, and these come after it. */
|
|
@@ -156,9 +161,9 @@ function senderLabel(from, to) {
|
|
|
156
161
|
const ws = get("SELECT name FROM workspaces WHERE id = ?", from.workspace_id);
|
|
157
162
|
return `${labelOf(from)} in workspace ${ws?.name ?? from.workspace_id}`;
|
|
158
163
|
}
|
|
159
|
-
function insert(to, from, kind, body, wantsReply = false, groupId = null, answers = null, urgent = false) {
|
|
160
|
-
return Number(db.prepare(`INSERT INTO session_messages (to_session, from_session, from_label, kind, body, wants_reply, group_id, answers, urgent)
|
|
161
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(to, from?.id ?? null, from ? senderLabel(from, to) : null, kind, body, wantsReply ? 1 : 0, groupId, answers, urgent ? 1 : 0).lastInsertRowid);
|
|
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);
|
|
162
167
|
}
|
|
163
168
|
function deleteIds(ids) {
|
|
164
169
|
if (!ids.length) return;
|
|
@@ -258,7 +263,9 @@ function kick() {
|
|
|
258
263
|
/** A message from `opts.from` (a session id; none: the user's own
|
|
259
264
|
* terminal) to session `to`, typed in now if it is at its prompt, else
|
|
260
265
|
* queued until it is. From an agent's session it wants a reply unless
|
|
261
|
-
* `reply` is false: the recipient's last message as that turn ends
|
|
266
|
+
* `reply` is false: the recipient's last message as that turn ends, or
|
|
267
|
+
* the user's own session's send back (`by_send`), which a send from it
|
|
268
|
+
* to an asker it owes is (`answerBySend`).
|
|
262
269
|
* `opts.now` sends it into the turn under way where its CLI takes one
|
|
263
270
|
* there, and `opts.interrupt` stops that turn first (never a wait on the
|
|
264
271
|
* user: theirs is the answer it waits for).
|
|
@@ -288,8 +295,11 @@ async function sendMessage(to, text, opts = {}) {
|
|
|
288
295
|
}
|
|
289
296
|
if (!from && target.parent_id) db.prepare("UPDATE sessions SET keep = 1 WHERE id = ?").run(to);
|
|
290
297
|
const wantsReply = !!from && opts.reply !== false;
|
|
298
|
+
const bySend = wantsReply && !target.parent_id;
|
|
299
|
+
const answered = from ? answerBySend(from, to) : [];
|
|
291
300
|
const ahead = get("SELECT COUNT(*) AS n FROM session_messages WHERE to_session = ? AND delivered_at IS NULL", to)?.n ?? 0;
|
|
292
|
-
const
|
|
301
|
+
const urgent = !!(opts.now || opts.interrupt);
|
|
302
|
+
const id = insert(to, from, "message", text, wantsReply, null, answered.length ? yours(answered) : null, urgent, bySend);
|
|
293
303
|
recompute();
|
|
294
304
|
const interrupted = !!opts.interrupt && !!live && turnPhase(to) === "working" && !delivering.has(to) && await interruptSession(to);
|
|
295
305
|
const sent = await deliver(to);
|
|
@@ -318,19 +328,38 @@ async function sendMessage(to, text, opts = {}) {
|
|
|
318
328
|
steers: !!steerKeys(target.agent),
|
|
319
329
|
interrupts: !!interruptKeys(target.agent),
|
|
320
330
|
wantsReply,
|
|
331
|
+
/** It answers with a send back, not its turn's last message. */
|
|
332
|
+
bySend,
|
|
333
|
+
/** Its messages this answers (`answerBySend`). */
|
|
334
|
+
answered: answered.length ? yours(answered, "its") : null,
|
|
321
335
|
/** It had closed, and is back on its conversation. */
|
|
322
336
|
reopened: !live
|
|
323
337
|
};
|
|
324
338
|
}
|
|
339
|
+
/** `from`'s send to `to` is its answer to what `to` asked it by send:
|
|
340
|
+
* those messages are answered (`answerNow`'s bookkeeping), and returned
|
|
341
|
+
* for the send to name. */
|
|
342
|
+
function answerBySend(from, to) {
|
|
343
|
+
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
|
+
if (!owed.length) return owed;
|
|
345
|
+
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);
|
|
347
|
+
return owed;
|
|
348
|
+
}
|
|
325
349
|
/** The replies (and word of sessions that closed) waiting for `me`, from
|
|
326
350
|
* the sessions or groups `from` names or anyone, taken so they are not
|
|
327
|
-
* typed in too
|
|
328
|
-
*
|
|
329
|
-
*
|
|
351
|
+
* typed in too — a send that answers one of `me`'s messages among them,
|
|
352
|
+
* owed its own answer if it asks, as one typed in is; and who still owes
|
|
353
|
+
* `me` one. A group's replies are taken once all of them are in, unless
|
|
354
|
+
* `any`: then as each comes. `work session wait` asks this until nobody
|
|
355
|
+
* owes it anything. */
|
|
330
356
|
function takeReplies(me, from, any = false) {
|
|
331
357
|
const wanted = (r) => !from?.length || r.from_session !== null && from.includes(r.from_session) || r.group_id !== null && from.includes(r.group_id);
|
|
332
|
-
const rows = delivering.has(me) ? [] : all("SELECT * FROM session_messages WHERE to_session = ? AND kind != 'message' AND delivered_at IS NULL ORDER BY id", me).filter(wanted).filter((r) => any || !r.group_id || team.groupReleased(r.group_id));
|
|
333
|
-
deleteIds(rows.map((r) => r.id));
|
|
358
|
+
const rows = delivering.has(me) ? [] : all("SELECT * FROM session_messages WHERE to_session = ? AND (kind != 'message' OR answers IS NOT NULL) AND delivered_at IS NULL ORDER BY id", me).filter(wanted).filter((r) => any || !r.group_id || team.groupReleased(r.group_id));
|
|
359
|
+
deleteIds(rows.filter((r) => !r.wants_reply).map((r) => r.id));
|
|
360
|
+
const asks = rows.filter((r) => r.wants_reply).map((r) => r.id);
|
|
361
|
+
if (asks.length) db.prepare(`UPDATE session_messages SET delivered_at = strftime('%Y-%m-%dT%H:%M:%fZ', 'now')
|
|
362
|
+
WHERE id IN (${asks.map(() => "?").join(",")})`).run(...asks);
|
|
334
363
|
const groups = team.openGroups(me);
|
|
335
364
|
const inGroup = new Set(groups.map((g) => g.id));
|
|
336
365
|
const owing = all(`SELECT DISTINCT m.to_session AS id, gm.group_id FROM session_messages m
|
|
@@ -354,6 +383,9 @@ function takeReplies(me, from, any = false) {
|
|
|
354
383
|
label: r.from_label,
|
|
355
384
|
kind: r.kind,
|
|
356
385
|
answers: r.answers,
|
|
386
|
+
/** It asks in turn: answered by this session's turn's end, or by
|
|
387
|
+
* a send back (`send`). */
|
|
388
|
+
asks: r.wants_reply ? r.by_send ? "send" : "turn" : null,
|
|
357
389
|
text: r.body
|
|
358
390
|
})),
|
|
359
391
|
owing
|
|
@@ -375,14 +407,15 @@ function messageStates() {
|
|
|
375
407
|
for (const r of all("SELECT to_session AS id, COUNT(*) AS n FROM session_messages WHERE delivered_at IS NULL GROUP BY to_session")) of(r.id).queued = r.n;
|
|
376
408
|
return states;
|
|
377
409
|
}
|
|
378
|
-
/** A turn's end answers what the session was asked
|
|
379
|
-
* goes to each session that asked, as
|
|
380
|
-
* group. Once a message went in
|
|
381
|
-
*
|
|
410
|
+
/** A turn's end answers what the session was asked (all but what it
|
|
411
|
+
* answers by send): its last message goes to each session that asked, as
|
|
412
|
+
* a reply — a member's held for its group. Once a message went in
|
|
413
|
+
* mid-turn, not at once (`holdAnswer`), and with what the turns folded
|
|
414
|
+
* into this end said before it. */
|
|
382
415
|
function answer(id, message, earlier = []) {
|
|
383
416
|
if (!mailboxes.has(id)) return false;
|
|
384
417
|
if (!steered.has(id)) return answerNow(id, message);
|
|
385
|
-
if (!get("SELECT 1 FROM session_messages WHERE to_session = ? AND wants_reply = 1 AND delivered_at IS NOT NULL", id)) {
|
|
418
|
+
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)) {
|
|
386
419
|
steered.delete(id);
|
|
387
420
|
return false;
|
|
388
421
|
}
|
|
@@ -431,7 +464,7 @@ function dropHold(id) {
|
|
|
431
464
|
}
|
|
432
465
|
function answerNow(id, message) {
|
|
433
466
|
steered.delete(id);
|
|
434
|
-
const owed = all("SELECT * FROM session_messages WHERE to_session = ? AND wants_reply = 1 AND delivered_at IS NOT NULL", id);
|
|
467
|
+
const owed = all("SELECT * FROM session_messages WHERE to_session = ? AND wants_reply = 1 AND by_send = 0 AND delivered_at IS NOT NULL", id);
|
|
435
468
|
const session = getSession(id);
|
|
436
469
|
if (!owed.length || !session) return false;
|
|
437
470
|
const body = replyBody(session, message);
|