@dylanpiercey/work 0.2.17 → 0.2.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (517) hide show
  1. package/README.md +16 -0
  2. package/bin/cli/README.md +34 -0
  3. package/bin/cli/_progress.mjs +68 -0
  4. package/bin/cli/_repo.mjs +32 -0
  5. package/bin/cli/_target.mjs +49 -0
  6. package/bin/cli/agent.mjs +153 -0
  7. package/bin/cli/branches.mjs +79 -0
  8. package/bin/cli/config.mjs +175 -0
  9. package/bin/cli/host.mjs +142 -0
  10. package/bin/cli/lsp.mjs +117 -0
  11. package/bin/cli/notify.mjs +53 -0
  12. package/bin/cli/open.mjs +37 -0
  13. package/bin/cli/repo.mjs +98 -0
  14. package/bin/cli/session.mjs +296 -0
  15. package/bin/cli/skill.mjs +99 -0
  16. package/bin/cli/stack.mjs +51 -0
  17. package/bin/cli/status.mjs +86 -0
  18. package/bin/cli/topic.mjs +585 -0
  19. package/bin/cli/workspace.mjs +184 -0
  20. package/bin/work.mjs +411 -80
  21. package/dist/{_Bj-WwfnW.js → _CsokArOR.js} +183 -59
  22. package/dist/_L2HNAA_8.js +2 -0
  23. package/dist/__TCdgPY5.js +173 -0
  24. package/dist/index.mjs +3917 -2606
  25. package/dist/public/assets/{_C9jR1P3s.js → _-7Amnss4.js} +1 -1
  26. package/dist/public/assets/_-7Amnss4.js.br +0 -0
  27. package/dist/public/assets/_0XXNUttq.js +1 -0
  28. package/dist/public/assets/{_CIrZGxEf.js → _0sTkxfPx.js} +1 -1
  29. package/dist/public/assets/_0sTkxfPx.js.br +0 -0
  30. package/dist/public/assets/_0zzYbK0A.js +1 -0
  31. package/dist/public/assets/{_CJgqLdsx.js → _1M3oZPSf.js} +1 -1
  32. package/dist/public/assets/_1M3oZPSf.js.br +0 -0
  33. package/dist/public/assets/_2O5HnHht.js +1 -0
  34. package/dist/public/assets/_7WlUaJPH.js +1 -0
  35. package/dist/public/assets/_8Tr7ByPg.js +1 -0
  36. package/dist/public/assets/_9AXMmQSO.js +1 -0
  37. package/dist/public/assets/_B1VqbV-X.js +1 -0
  38. package/dist/public/assets/{_BxS3xvmE.js → _B9I2AEux.js} +1 -1
  39. package/dist/public/assets/_B9I2AEux.js.br +0 -0
  40. package/dist/public/assets/{_DO_4_u2Q.js → _B9qGqvit.js} +1 -1
  41. package/dist/public/assets/{_CIWiehYG.js → _B9xuaMHt.js} +1 -1
  42. package/dist/public/assets/_B9xuaMHt.js.br +0 -0
  43. package/dist/public/assets/{_BqWlTTxo.js → _BAWjkhA8.js} +1 -1
  44. package/dist/public/assets/_BAWjkhA8.js.br +0 -0
  45. package/dist/public/assets/{_CNUs2Gqk.js → _BBCzcNZY.js} +1 -1
  46. package/dist/public/assets/_BBCzcNZY.js.br +0 -0
  47. package/dist/public/assets/_BBW2szHh.js +1 -0
  48. package/dist/public/assets/_BCP2Njnu.js +1 -0
  49. package/dist/public/assets/{_A-jpjc8j.js → _BClUYs-k.js} +1 -1
  50. package/dist/public/assets/_BClUYs-k.js.br +0 -0
  51. package/dist/public/assets/{_B5JxE4Sx.js → _BDdZkZRc.js} +1 -1
  52. package/dist/public/assets/_BDdZkZRc.js.br +0 -0
  53. package/dist/public/assets/_BEDmGSgS.js +1 -0
  54. package/dist/public/assets/_BEDmGSgS.js.br +0 -0
  55. package/dist/public/assets/_BH9BIky6.js +1 -0
  56. package/dist/public/assets/_BH9BIky6.js.br +0 -0
  57. package/dist/public/assets/_BLdi8Ee5.js +1 -0
  58. package/dist/public/assets/{_C449plW0.js → _BPDSQUbl.js} +1 -1
  59. package/dist/public/assets/_BPDSQUbl.js.br +0 -0
  60. package/dist/public/assets/{_B19mS3yM.js → _BQW1kIop.js} +1 -1
  61. package/dist/public/assets/_BQW1kIop.js.br +0 -0
  62. package/dist/public/assets/_BQeoUfFw.js +1 -0
  63. package/dist/public/assets/_BRzroLbh.js +1 -0
  64. package/dist/public/assets/_BSXsTYSe.js +1 -0
  65. package/dist/public/assets/_BTXDT3Na.js +1 -0
  66. package/dist/public/assets/_BXm4xeFI.js +1 -0
  67. package/dist/public/assets/_BY8UeogK.js +1 -0
  68. package/dist/public/assets/_BYpyhp64.js +1 -0
  69. package/dist/public/assets/_BYpyhp64.js.br +0 -0
  70. package/dist/public/assets/_B_Kz7LnY.js +1 -0
  71. package/dist/public/assets/{_DqGOYRpi.js → _Bcc0Xs64.js} +1 -1
  72. package/dist/public/assets/_Bcc0Xs64.js.br +0 -0
  73. package/dist/public/assets/{_Do6b-nfX.js → _BdSsUhCi.js} +1 -1
  74. package/dist/public/assets/_BdSsUhCi.js.br +0 -0
  75. package/dist/public/assets/_BdaWssEH.js +1 -0
  76. package/dist/public/assets/{_BHyWcuOR.js → _BhecGD7y.js} +1 -1
  77. package/dist/public/assets/_BhecGD7y.js.br +0 -0
  78. package/dist/public/assets/_Bj9dpPhN.js +1 -0
  79. package/dist/public/assets/{_DorQTaAa.js → _BjZqS7za.js} +1 -1
  80. package/dist/public/assets/_BjZqS7za.js.br +0 -0
  81. package/dist/public/assets/_BkSUiyHK.js +1 -0
  82. package/dist/public/assets/_BlshXH2Y.js +16 -0
  83. package/dist/public/assets/_BlshXH2Y.js.br +0 -0
  84. package/dist/public/assets/_BmX-VP7w.js +1 -0
  85. package/dist/public/assets/{_v3HPnNBs.js → _BmpOmFbo.js} +1 -1
  86. package/dist/public/assets/_BmpOmFbo.js.br +0 -0
  87. package/dist/public/assets/_Bo6YntUl.js +1 -0
  88. package/dist/public/assets/_BprZx4vg.js +2 -0
  89. package/dist/public/assets/_BprZx4vg.js.br +0 -0
  90. package/dist/public/assets/_Bqm7OnIV.js +1 -0
  91. package/dist/public/assets/_BquBGUNK.js +1 -0
  92. package/dist/public/assets/_BquBGUNK.js.br +0 -0
  93. package/dist/public/assets/_BrB66aRZ.js +1 -0
  94. package/dist/public/assets/{_BA-MNdjL.js → _Bt03HU8S.js} +1 -1
  95. package/dist/public/assets/{_BTWfPOi-.js → _BtedGrGs.js} +1 -1
  96. package/dist/public/assets/_BtedGrGs.js.br +0 -0
  97. package/dist/public/assets/{_DUdEYxV0.js → _C-BYkx5h.js} +1 -1
  98. package/dist/public/assets/_C-BYkx5h.js.br +0 -0
  99. package/dist/public/assets/{_BUW_V5kN.js → _C-DhXiEm.js} +1 -1
  100. package/dist/public/assets/_C-DhXiEm.js.br +0 -0
  101. package/dist/public/assets/_C-NBFnST.js +1 -0
  102. package/dist/public/assets/{_BoTzWlXR.js → _C1RigMYD.js} +1 -1
  103. package/dist/public/assets/_C1RigMYD.js.br +0 -0
  104. package/dist/public/assets/_C2vRS-ES.js +1 -0
  105. package/dist/public/assets/{_CrlNjDih.js → _C3fslTAD.js} +1 -1
  106. package/dist/public/assets/_C3fslTAD.js.br +0 -0
  107. package/dist/public/assets/{_BuMTHEPk.js → _C4EYjWGn.js} +1 -1
  108. package/dist/public/assets/_C4EYjWGn.js.br +0 -0
  109. package/dist/public/assets/{_yp48NYOW.js → _C6Yt6h_R.js} +1 -1
  110. package/dist/public/assets/_C6Yt6h_R.js.br +0 -0
  111. package/dist/public/assets/{_cyorvuL1.js → _C7Y4xApK.js} +1 -1
  112. package/dist/public/assets/_C7Y4xApK.js.br +0 -0
  113. package/dist/public/assets/{_D4CkNo0r.js → _CB52LkYt.js} +1 -1
  114. package/dist/public/assets/_CB52LkYt.js.br +0 -0
  115. package/dist/public/assets/{_CxgPm_xy.js → _CBEKHwUV.js} +1 -1
  116. package/dist/public/assets/_CBEKHwUV.js.br +0 -0
  117. package/dist/public/assets/_CBSLBYQF.js +1 -0
  118. package/dist/public/assets/_CBgzBB_k.js +1 -0
  119. package/dist/public/assets/_CBgzBB_k.js.br +0 -0
  120. package/dist/public/assets/{_CCONYsJT.js → _CCoTlnvb.js} +1 -1
  121. package/dist/public/assets/_CCoTlnvb.js.br +0 -0
  122. package/dist/public/assets/_CD26To-f.js +1 -0
  123. package/dist/public/assets/_CDyWgQ0v.js +6 -0
  124. package/dist/public/assets/_CDyWgQ0v.js.br +0 -0
  125. package/dist/public/assets/{_vX9d6g5Y.js → _CEC5O89D.js} +1 -1
  126. package/dist/public/assets/_CEC5O89D.js.br +0 -0
  127. package/dist/public/assets/_CF2kEAU7.js +1 -0
  128. package/dist/public/assets/_CFURqbmO.js +1 -0
  129. package/dist/public/assets/{_Cwtn28hL.js → _CG383oZY.js} +1 -1
  130. package/dist/public/assets/_CG383oZY.js.br +0 -0
  131. package/dist/public/assets/_CHNJosg3.js +1 -0
  132. package/dist/public/assets/{_Cc_GUPR4.js → _CHmEM8Sm.js} +1 -1
  133. package/dist/public/assets/_CHmEM8Sm.js.br +0 -0
  134. package/dist/public/assets/_CIfCdAzS.js +1 -0
  135. package/dist/public/assets/_CKyzH0fl.js +1 -0
  136. package/dist/public/assets/{_BCB8LQS3.js → _CL8DzBla.js} +1 -1
  137. package/dist/public/assets/_CL8DzBla.js.br +0 -0
  138. package/dist/public/assets/_CNYS94C5.js +1 -0
  139. package/dist/public/assets/_CNhypHJN.js +1 -0
  140. package/dist/public/assets/_CO-FkxlA.js +1 -0
  141. package/dist/public/assets/_COiGBSpO.js +1 -0
  142. package/dist/public/assets/_COvolvRQ.js +1 -0
  143. package/dist/public/assets/{_Di78jTI-.js → _CPaMvBMG.js} +1 -1
  144. package/dist/public/assets/_CPaMvBMG.js.br +0 -0
  145. package/dist/public/assets/{_C7bHTlG1.js → _CPj_VL66.js} +1 -1
  146. package/dist/public/assets/_CPj_VL66.js.br +0 -0
  147. package/dist/public/assets/_CQJC8Vx4.js +1 -0
  148. package/dist/public/assets/_CRHNlzBC.js +1 -0
  149. package/dist/public/assets/{_C1-Nli75.js → _CToqok6Q.js} +1 -1
  150. package/dist/public/assets/_CToqok6Q.js.br +0 -0
  151. package/dist/public/assets/_CUFKkl0B.js +1 -0
  152. package/dist/public/assets/_CZsOUa-q.js +1 -0
  153. package/dist/public/assets/{_D8uBvHXU.js → _C_D5TPb7.js} +1 -1
  154. package/dist/public/assets/_C_D5TPb7.js.br +0 -0
  155. package/dist/public/assets/_CdHI48v6.js +1 -0
  156. package/dist/public/assets/{_BfQeZPXW.js → _CdpmkkzR.js} +1 -1
  157. package/dist/public/assets/_CdpmkkzR.js.br +0 -0
  158. package/dist/public/assets/{_6klEiBhY.js → _CdtjIoUd.js} +1 -1
  159. package/dist/public/assets/_CdtjIoUd.js.br +0 -0
  160. package/dist/public/assets/_Ce9Tv01m.js +1 -0
  161. package/dist/public/assets/_CeC7Lv10.js +1 -0
  162. package/dist/public/assets/{_CYhJ6ae-.js → _CfP0f0PU.js} +1 -1
  163. package/dist/public/assets/_CfP0f0PU.js.br +0 -0
  164. package/dist/public/assets/_Cg7DH3xk.js +1 -0
  165. package/dist/public/assets/_Cg7DH3xk.js.br +0 -0
  166. package/dist/public/assets/_CikNq0z8.js +1 -0
  167. package/dist/public/assets/{_DK-MOyi_.js → _Cl7LTITm.js} +1 -1
  168. package/dist/public/assets/_Cl7LTITm.js.br +0 -0
  169. package/dist/public/assets/{_BT7DMail.js → _Cmtl59QM.js} +1 -1
  170. package/dist/public/assets/_Cmtl59QM.js.br +0 -0
  171. package/dist/public/assets/_CshYq_Dp.js +1 -0
  172. package/dist/public/assets/{_Dj5RDA5P.js → _CspPbDoP.js} +1 -1
  173. package/dist/public/assets/_CspPbDoP.js.br +0 -0
  174. package/dist/public/assets/{_Ca2DTddL.js → _Ctjz3BD9.js} +1 -1
  175. package/dist/public/assets/_Ctjz3BD9.js.br +0 -0
  176. package/dist/public/assets/{_C5c3o9N3.js → _CuglAToi.js} +1 -1
  177. package/dist/public/assets/_CuglAToi.js.br +0 -0
  178. package/dist/public/assets/_CwSoAVRN.js +1 -0
  179. package/dist/public/assets/_D0XQV-Hm.js +1 -0
  180. package/dist/public/assets/{_D_GeNCls.js → _D36PnqCD.js} +1 -1
  181. package/dist/public/assets/_D36PnqCD.js.br +0 -0
  182. package/dist/public/assets/{_DYqx8g78.js → _D3IviZbJ.js} +1 -1
  183. package/dist/public/assets/_D3IviZbJ.js.br +0 -0
  184. package/dist/public/assets/_D6rgUB9O.js +1 -0
  185. package/dist/public/assets/{_Dwe1TUjY.js → _D7qWWxdI.js} +1 -1
  186. package/dist/public/assets/_D7qWWxdI.js.br +0 -0
  187. package/dist/public/assets/{_CPbClwhX.js → _D8ac72_O.js} +1 -1
  188. package/dist/public/assets/_D8ac72_O.js.br +0 -0
  189. package/dist/public/assets/_D9WWxrQR.js +1 -0
  190. package/dist/public/assets/_D9hI5dSA.js +1 -0
  191. package/dist/public/assets/{_DzlXwaiG.js → _DCrPsldZ.js} +1 -1
  192. package/dist/public/assets/_DCrPsldZ.js.br +0 -0
  193. package/dist/public/assets/{_ChPy2IX4.js → _DDcVFyaQ.js} +1 -1
  194. package/dist/public/assets/_DDcVFyaQ.js.br +0 -0
  195. package/dist/public/assets/_DDhkKo8Q.js +1 -0
  196. package/dist/public/assets/{_CY_Z-kV5.js → _DJBR8Qwq.js} +1 -1
  197. package/dist/public/assets/_DJBR8Qwq.js.br +0 -0
  198. package/dist/public/assets/{_CxHuLHdz.js → _DLpa6VYT.js} +1 -1
  199. package/dist/public/assets/_DMqe6rR-.js +1 -0
  200. package/dist/public/assets/{_DbLQjG4R.js → _DN7pTn2g.js} +1 -1
  201. package/dist/public/assets/_DN7pTn2g.js.br +0 -0
  202. package/dist/public/assets/_DP8UuFuJ.js +1 -0
  203. package/dist/public/assets/_DQedUaqM.js +1 -0
  204. package/dist/public/assets/{_DPiemRX1.js → _DSCqWPO0.js} +1 -1
  205. package/dist/public/assets/_DSCqWPO0.js.br +0 -0
  206. package/dist/public/assets/{_BoEcMQmX.js → _DSeQngGR.js} +1 -1
  207. package/dist/public/assets/_DSeQngGR.js.br +0 -0
  208. package/dist/public/assets/{_D-0pUYXq.js → _DTNiWZFr.js} +1 -1
  209. package/dist/public/assets/_DTNiWZFr.js.br +0 -0
  210. package/dist/public/assets/_DThlusXY.js +1 -0
  211. package/dist/public/assets/_DUK16H19.js +1 -0
  212. package/dist/public/assets/_DUZ13t3U.js +1 -0
  213. package/dist/public/assets/{_BHgwN0LC.js → _DWb03VKf.js} +1 -1
  214. package/dist/public/assets/_DWb03VKf.js.br +0 -0
  215. package/dist/public/assets/_DWsyhfgn.js +1 -0
  216. package/dist/public/assets/_DXuzYhW6.js +1 -0
  217. package/dist/public/assets/_DXyOzA2b.js +1 -0
  218. package/dist/public/assets/{_BXcMBVCY.js → _DYUFCi44.js} +1 -1
  219. package/dist/public/assets/_DYUFCi44.js.br +0 -0
  220. package/dist/public/assets/{_BwSXxzqy.js → _DYhs8iJg.js} +12 -12
  221. package/dist/public/assets/_DYhs8iJg.js.br +0 -0
  222. package/dist/public/assets/{_Dhn3A3KJ.js → _D__ojGam.js} +1 -1
  223. package/dist/public/assets/_D__ojGam.js.br +0 -0
  224. package/dist/public/assets/_DaFI_W5D.js +1 -0
  225. package/dist/public/assets/{_BiY8chB-.js → _DbT6uo7W.js} +1 -1
  226. package/dist/public/assets/_DbT6uo7W.js.br +0 -0
  227. package/dist/public/assets/_DhnT0cCE.js +1 -0
  228. package/dist/public/assets/_Dm9OGn2q.js +1 -0
  229. package/dist/public/assets/_DmkeGFoM.js +1 -0
  230. package/dist/public/assets/{_DVLNzEkW.js → _DmoI4cIl.js} +1 -1
  231. package/dist/public/assets/_DmoI4cIl.js.br +0 -0
  232. package/dist/public/assets/{_zcAaK79d.js → _DpbHp8yR.js} +1 -1
  233. package/dist/public/assets/_DpbHp8yR.js.br +0 -0
  234. package/dist/public/assets/_Dqz_HBE1.js +1 -0
  235. package/dist/public/assets/{_DOKecL0e.js → _DsehEuMD.js} +1 -1
  236. package/dist/public/assets/_DsehEuMD.js.br +0 -0
  237. package/dist/public/assets/{_D-pUpBL1.js → _Dtx52FYB.js} +1 -1
  238. package/dist/public/assets/_DuEyirL6.js +1 -0
  239. package/dist/public/assets/_DuuloSIi.js +1 -0
  240. package/dist/public/assets/{_Ch-UiovX.js → _DuyCZnNC.js} +1 -1
  241. package/dist/public/assets/_DuyCZnNC.js.br +0 -0
  242. package/dist/public/assets/{_BQEpu56f.js → _Dw1P6xZJ.js} +1 -1
  243. package/dist/public/assets/_Dw1P6xZJ.js.br +0 -0
  244. package/dist/public/assets/{_C-lB_p3U.js → _DzNFlI0M.js} +1 -1
  245. package/dist/public/assets/_DzNFlI0M.js.br +0 -0
  246. package/dist/public/assets/{_CYQ4srZb.js → _EcMqP1xI.js} +1 -1
  247. package/dist/public/assets/_EcMqP1xI.js.br +0 -0
  248. package/dist/public/assets/{_0KruTMn9.js → _G1BLeMns.js} +1 -1
  249. package/dist/public/assets/_G1BLeMns.js.br +0 -0
  250. package/dist/public/assets/{_FwFz43m8.js → _G8KNSVdM.js} +1 -1
  251. package/dist/public/assets/_G8KNSVdM.js.br +0 -0
  252. package/dist/public/assets/{_3fvr5bU1.js → _J1v2clxU.js} +1 -1
  253. package/dist/public/assets/_J1v2clxU.js.br +0 -0
  254. package/dist/public/assets/{_Depr5Jps.js → _J3wdy6bJ.js} +1 -1
  255. package/dist/public/assets/_J3wdy6bJ.js.br +0 -0
  256. package/dist/public/assets/{_-ycNE92Z.js → _MHZgY1AQ.js} +1 -1
  257. package/dist/public/assets/_MHZgY1AQ.js.br +0 -0
  258. package/dist/public/assets/_NHTZitq1.js +2 -0
  259. package/dist/public/assets/_NHTZitq1.js.br +0 -0
  260. package/dist/public/assets/{_Cw-dmwPJ.js → _PsuNqRL9.js} +20 -20
  261. package/dist/public/assets/_PsuNqRL9.js.br +0 -0
  262. package/dist/public/assets/{_CXVkXsw1.js → _T5HFHZgl.js} +1 -1
  263. package/dist/public/assets/_T5HFHZgl.js.br +0 -0
  264. package/dist/public/assets/{_4_sKOYsy.js → _UZAFx6D8.js} +1 -1
  265. package/dist/public/assets/_UZAFx6D8.js.br +0 -0
  266. package/dist/public/assets/_XA8_RQXF.js +1 -0
  267. package/dist/public/assets/{_BTh4v5Tr.js → _XsB9KmcW.js} +1 -1
  268. package/dist/public/assets/_XsB9KmcW.js.br +0 -0
  269. package/dist/public/assets/{_i4iteLF8.js → _YoXk_8Bl.js} +1 -1
  270. package/dist/public/assets/_YoXk_8Bl.js.br +0 -0
  271. package/dist/public/assets/_YubCdy3Z.js +1 -0
  272. package/dist/public/assets/{_Q5s6o5H4.js → _bDI-pCZR.js} +1 -1
  273. package/dist/public/assets/_bDI-pCZR.js.br +0 -0
  274. package/dist/public/assets/{_TynjiShF.js → _bHL-NcWS.js} +1 -1
  275. package/dist/public/assets/_bHL-NcWS.js.br +0 -0
  276. package/dist/public/assets/_bqRzDYc8.js +1 -0
  277. package/dist/public/assets/{_OpbuiQ7h.js → _briyaWgK.js} +1 -1
  278. package/dist/public/assets/_briyaWgK.js.br +0 -0
  279. package/dist/public/assets/{_pEUCjhqm.js → _dVHSDgPC.js} +1 -1
  280. package/dist/public/assets/_dVHSDgPC.js.br +0 -0
  281. package/dist/public/assets/_gkZjZ9I4.js +1 -0
  282. package/dist/public/assets/_plyCYAnN.js +1 -0
  283. package/dist/public/assets/_q0Z44mWJ.js +1 -0
  284. package/dist/public/assets/_q0Z44mWJ.js.br +0 -0
  285. package/dist/public/assets/{_BPNSknLT.js → _qAsGEOt5.js} +1 -1
  286. package/dist/public/assets/_qAsGEOt5.js.br +0 -0
  287. package/dist/public/assets/{_Dks8YY2K.js → _qxffRpjc.js} +1 -1
  288. package/dist/public/assets/{_BOBYB-cj.js → _uCKs5N6Q.js} +1 -1
  289. package/dist/public/assets/_uCKs5N6Q.js.br +0 -0
  290. package/dist/public/assets/_utWnC80Q.js +1 -0
  291. package/dist/public/assets/_utvzcBHT.js +1 -0
  292. package/dist/public/assets/_v8WbCPI8.js +1 -0
  293. package/dist/public/assets/_yK4b_Bl5.js +1 -0
  294. package/dist/public/assets/_yoQW4BY5.js +1 -0
  295. package/dist/public/assets/_zB6USXHX.js +1 -0
  296. package/dist/public/assets/{_Quh6tl1u.js → _zN8SypHW.js} +1 -1
  297. package/dist/public/assets/_zN8SypHW.js.br +0 -0
  298. package/dist/public/assets/files-view-Fl0rU3Ns.js +2 -0
  299. package/dist/public/assets/manage-workspace-DggRcsXf.js +2 -0
  300. package/dist/public/assets/new-C7NxTJAT.js +1 -0
  301. package/dist/public/assets/new-workspace-C0pw5Iz1.js +2 -0
  302. package/dist/public/assets/review-view-C4YQ0J-X.js +2 -0
  303. package/dist/public/assets/settings-C7NxTJAT.js +1 -0
  304. package/dist/public/assets/settings-page-Cl_1tWCv.js +2 -0
  305. package/dist/public/assets/styles-Vcsj4CA7.css +1 -0
  306. package/dist/public/assets/styles-Vcsj4CA7.css.br +0 -0
  307. package/dist/public/assets/w-C7NxTJAT.js +1 -0
  308. package/dist/public/assets/w._-BbFH2lR-.js +1 -0
  309. package/dist/public/assets/w._-C7NxTJAT.js +1 -0
  310. package/dist/public/assets/w._-YIzLOiyZ.js +1 -0
  311. package/dist/public/sw.js +11 -4
  312. package/dist/public/sw.js.br +0 -0
  313. package/lib/ports/url.d.mts +20 -0
  314. package/lib/ports/url.mjs +80 -0
  315. package/lib/preview/media.d.mts +1 -1
  316. package/lib/preview/media.mjs +15 -2
  317. package/package.json +1 -1
  318. package/dist/_CLoLdV87.js +0 -2
  319. package/dist/_DPpY3UqO.js +0 -167
  320. package/dist/public/assets/_-ycNE92Z.js.br +0 -0
  321. package/dist/public/assets/_0KruTMn9.js.br +0 -0
  322. package/dist/public/assets/_0NH5yJMx.js +0 -1
  323. package/dist/public/assets/_1CAp-NbR.js +0 -1
  324. package/dist/public/assets/_3fvr5bU1.js.br +0 -0
  325. package/dist/public/assets/_4Dkmi0BI.js +0 -1
  326. package/dist/public/assets/_4_sKOYsy.js.br +0 -0
  327. package/dist/public/assets/_6klEiBhY.js.br +0 -0
  328. package/dist/public/assets/_7_64OpLh.js +0 -1
  329. package/dist/public/assets/_7p-zxUs0.js +0 -1
  330. package/dist/public/assets/_8RAv3gFP.js +0 -1
  331. package/dist/public/assets/_9PDxaMA9.js +0 -1
  332. package/dist/public/assets/_9PDxaMA9.js.br +0 -0
  333. package/dist/public/assets/_9mbDrbe7.js +0 -1
  334. package/dist/public/assets/_A-jpjc8j.js.br +0 -0
  335. package/dist/public/assets/_B0JwTeu6.js +0 -1
  336. package/dist/public/assets/_B19mS3yM.js.br +0 -0
  337. package/dist/public/assets/_B1Sfrnda.js +0 -1
  338. package/dist/public/assets/_B3i0wS_I.js +0 -1
  339. package/dist/public/assets/_B5JxE4Sx.js.br +0 -0
  340. package/dist/public/assets/_B9RLcC8I.js +0 -1
  341. package/dist/public/assets/_BCB8LQS3.js.br +0 -0
  342. package/dist/public/assets/_BE7UYyYb.js +0 -1
  343. package/dist/public/assets/_BHgwN0LC.js.br +0 -0
  344. package/dist/public/assets/_BHyWcuOR.js.br +0 -0
  345. package/dist/public/assets/_BIpUDgQH.js +0 -16
  346. package/dist/public/assets/_BIpUDgQH.js.br +0 -0
  347. package/dist/public/assets/_BMlgaRlM.js +0 -1
  348. package/dist/public/assets/_BOBYB-cj.js.br +0 -0
  349. package/dist/public/assets/_BPNSknLT.js.br +0 -0
  350. package/dist/public/assets/_BQEpu56f.js.br +0 -0
  351. package/dist/public/assets/_BT7DMail.js.br +0 -0
  352. package/dist/public/assets/_BTJHQNIz.js +0 -1
  353. package/dist/public/assets/_BTWfPOi-.js.br +0 -0
  354. package/dist/public/assets/_BTh4v5Tr.js.br +0 -0
  355. package/dist/public/assets/_BUW_V5kN.js.br +0 -0
  356. package/dist/public/assets/_BXcMBVCY.js.br +0 -0
  357. package/dist/public/assets/_B_MtJKnj.js +0 -1
  358. package/dist/public/assets/_Bay3D1io.js +0 -1
  359. package/dist/public/assets/_BfQeZPXW.js.br +0 -0
  360. package/dist/public/assets/_BgKjJWz_.js +0 -1
  361. package/dist/public/assets/_BiY8chB-.js.br +0 -0
  362. package/dist/public/assets/_Bk5THQZb.js +0 -1
  363. package/dist/public/assets/_BmeQRnXS.js +0 -1
  364. package/dist/public/assets/_BoEcMQmX.js.br +0 -0
  365. package/dist/public/assets/_BoTzWlXR.js.br +0 -0
  366. package/dist/public/assets/_BqWlTTxo.js.br +0 -0
  367. package/dist/public/assets/_BuMTHEPk.js.br +0 -0
  368. package/dist/public/assets/_BubhcEjq.js +0 -1
  369. package/dist/public/assets/_BwSXxzqy.js.br +0 -0
  370. package/dist/public/assets/_BxS3xvmE.js.br +0 -0
  371. package/dist/public/assets/_ByvA6zJz.js +0 -1
  372. package/dist/public/assets/_Bz2Sejcy.js +0 -1
  373. package/dist/public/assets/_C-lB_p3U.js.br +0 -0
  374. package/dist/public/assets/_C1-Nli75.js.br +0 -0
  375. package/dist/public/assets/_C3mw4T_r.js +0 -1
  376. package/dist/public/assets/_C449plW0.js.br +0 -0
  377. package/dist/public/assets/_C5c3o9N3.js.br +0 -0
  378. package/dist/public/assets/_C7bHTlG1.js.br +0 -0
  379. package/dist/public/assets/_C8mt6nRC.js +0 -1
  380. package/dist/public/assets/_C9jR1P3s.js.br +0 -0
  381. package/dist/public/assets/_CCONYsJT.js.br +0 -0
  382. package/dist/public/assets/_CCZAROAW.js +0 -1
  383. package/dist/public/assets/_CCZAROAW.js.br +0 -0
  384. package/dist/public/assets/_CG3s9pE5.js +0 -1
  385. package/dist/public/assets/_CIWiehYG.js.br +0 -0
  386. package/dist/public/assets/_CIrZGxEf.js.br +0 -0
  387. package/dist/public/assets/_CIurl9jC.js +0 -1
  388. package/dist/public/assets/_CJgqLdsx.js.br +0 -0
  389. package/dist/public/assets/_CMbVHIgP.js +0 -1
  390. package/dist/public/assets/_CNUs2Gqk.js.br +0 -0
  391. package/dist/public/assets/_CPbClwhX.js.br +0 -0
  392. package/dist/public/assets/_CQUlxerJ.js +0 -1
  393. package/dist/public/assets/_CTDYlYHi.js +0 -1
  394. package/dist/public/assets/_CXVkXsw1.js.br +0 -0
  395. package/dist/public/assets/_CY5EBxZ6.js +0 -1
  396. package/dist/public/assets/_CYQ4srZb.js.br +0 -0
  397. package/dist/public/assets/_CY_Z-kV5.js.br +0 -0
  398. package/dist/public/assets/_CYhJ6ae-.js.br +0 -0
  399. package/dist/public/assets/_CZbVK94d.js +0 -1
  400. package/dist/public/assets/_C_A97h_2.js +0 -1
  401. package/dist/public/assets/_C_A97h_2.js.br +0 -0
  402. package/dist/public/assets/_C_Y5Dwzy.js +0 -1
  403. package/dist/public/assets/_Ca2DTddL.js.br +0 -0
  404. package/dist/public/assets/_Cc2nu3_5.js +0 -1
  405. package/dist/public/assets/_Cc_GUPR4.js.br +0 -0
  406. package/dist/public/assets/_CgFUs0bE.js +0 -1
  407. package/dist/public/assets/_Ch-UiovX.js.br +0 -0
  408. package/dist/public/assets/_ChDp0-FJ.js +0 -1
  409. package/dist/public/assets/_ChPy2IX4.js.br +0 -0
  410. package/dist/public/assets/_Chsgo2e1.js +0 -1
  411. package/dist/public/assets/_CjECwrWB.js +0 -1
  412. package/dist/public/assets/_CmW74dH7.js +0 -1
  413. package/dist/public/assets/_CmhAUlqu.js +0 -1
  414. package/dist/public/assets/_CrlNjDih.js.br +0 -0
  415. package/dist/public/assets/_CvzTEaQq.js +0 -1
  416. package/dist/public/assets/_Cw-dmwPJ.js.br +0 -0
  417. package/dist/public/assets/_Cwtn28hL.js.br +0 -0
  418. package/dist/public/assets/_CxgPm_xy.js.br +0 -0
  419. package/dist/public/assets/_D-0pUYXq.js.br +0 -0
  420. package/dist/public/assets/_D-rV-z_T.js +0 -1
  421. package/dist/public/assets/_D4CkNo0r.js.br +0 -0
  422. package/dist/public/assets/_D4fP_viq.js +0 -1
  423. package/dist/public/assets/_D570Sd6p.js +0 -1
  424. package/dist/public/assets/_D6Gudpw8.js +0 -1
  425. package/dist/public/assets/_D8ZTP1ck.js +0 -1
  426. package/dist/public/assets/_D8uBvHXU.js.br +0 -0
  427. package/dist/public/assets/_D8xGEGlm.js +0 -1
  428. package/dist/public/assets/_D9GZHKow.js +0 -1
  429. package/dist/public/assets/_DE0eZjad.js +0 -1
  430. package/dist/public/assets/_DElIEG9n.js +0 -1
  431. package/dist/public/assets/_DF0n9xzn.js +0 -2
  432. package/dist/public/assets/_DF0n9xzn.js.br +0 -0
  433. package/dist/public/assets/_DFX_tXcw.js +0 -1
  434. package/dist/public/assets/_DJ2gfhU_.js +0 -1
  435. package/dist/public/assets/_DK-MOyi_.js.br +0 -0
  436. package/dist/public/assets/_DOKecL0e.js.br +0 -0
  437. package/dist/public/assets/_DPXXIOLX.js +0 -1
  438. package/dist/public/assets/_DPb3t58B.js +0 -1
  439. package/dist/public/assets/_DPiemRX1.js.br +0 -0
  440. package/dist/public/assets/_DPpbgqBC.js +0 -1
  441. package/dist/public/assets/_DRVSLjxA.js +0 -1
  442. package/dist/public/assets/_DTHWnu6M.js +0 -1
  443. package/dist/public/assets/_DUdEYxV0.js.br +0 -0
  444. package/dist/public/assets/_DVLNzEkW.js.br +0 -0
  445. package/dist/public/assets/_DWpx2Uof.js +0 -1
  446. package/dist/public/assets/_DXYEUAmC.js +0 -1
  447. package/dist/public/assets/_DYTVambU.js +0 -1
  448. package/dist/public/assets/_DYqx8g78.js.br +0 -0
  449. package/dist/public/assets/_DZanHI_X.js +0 -1
  450. package/dist/public/assets/_DZanHI_X.js.br +0 -0
  451. package/dist/public/assets/_D_GeNCls.js.br +0 -0
  452. package/dist/public/assets/_DbLQjG4R.js.br +0 -0
  453. package/dist/public/assets/_DbmusecK.js +0 -1
  454. package/dist/public/assets/_DbmusecK.js.br +0 -0
  455. package/dist/public/assets/_DemN-D5U.js +0 -1
  456. package/dist/public/assets/_Depr5Jps.js.br +0 -0
  457. package/dist/public/assets/_DhJfHI4f.js +0 -1
  458. package/dist/public/assets/_Dhn3A3KJ.js.br +0 -0
  459. package/dist/public/assets/_Di78jTI-.js.br +0 -0
  460. package/dist/public/assets/_DiBTtPlu.js +0 -1
  461. package/dist/public/assets/_Dj5RDA5P.js.br +0 -0
  462. package/dist/public/assets/_DkjKARSS.js +0 -1
  463. package/dist/public/assets/_Do6b-nfX.js.br +0 -0
  464. package/dist/public/assets/_DorQTaAa.js.br +0 -0
  465. package/dist/public/assets/_DpxVmwni.js +0 -1
  466. package/dist/public/assets/_DqGOYRpi.js.br +0 -0
  467. package/dist/public/assets/_DsbxQ1i8.js +0 -1
  468. package/dist/public/assets/_Dt_P7K1V.js +0 -6
  469. package/dist/public/assets/_Dt_P7K1V.js.br +0 -0
  470. package/dist/public/assets/_Dwe1TUjY.js.br +0 -0
  471. package/dist/public/assets/_DyROQKS8.js +0 -1
  472. package/dist/public/assets/_DzEUPsq0.js +0 -1
  473. package/dist/public/assets/_DzlXwaiG.js.br +0 -0
  474. package/dist/public/assets/_FwFz43m8.js.br +0 -0
  475. package/dist/public/assets/_OpbuiQ7h.js.br +0 -0
  476. package/dist/public/assets/_Q5s6o5H4.js.br +0 -0
  477. package/dist/public/assets/_Quh6tl1u.js.br +0 -0
  478. package/dist/public/assets/_Rh99sjDe.js +0 -1
  479. package/dist/public/assets/_SEE1XtID.js +0 -1
  480. package/dist/public/assets/_SZjr1kid.js +0 -1
  481. package/dist/public/assets/_T7rMqM5P.js +0 -1
  482. package/dist/public/assets/_TynjiShF.js.br +0 -0
  483. package/dist/public/assets/_UENAEFcY.js +0 -1
  484. package/dist/public/assets/_UwTOb1gP.js +0 -1
  485. package/dist/public/assets/_WrxtT1Ok.js +0 -1
  486. package/dist/public/assets/_WrxtT1Ok.js.br +0 -0
  487. package/dist/public/assets/_bcvRRCkB.js +0 -1
  488. package/dist/public/assets/_cyorvuL1.js.br +0 -0
  489. package/dist/public/assets/_gi--JOq8.js +0 -1
  490. package/dist/public/assets/_i4iteLF8.js.br +0 -0
  491. package/dist/public/assets/_i7vMugBN.js +0 -1
  492. package/dist/public/assets/_j7jPRUEQ.js +0 -2
  493. package/dist/public/assets/_j7jPRUEQ.js.br +0 -0
  494. package/dist/public/assets/_pEUCjhqm.js.br +0 -0
  495. package/dist/public/assets/_qkJuNTl-.js +0 -1
  496. package/dist/public/assets/_uuZJDLIV.js +0 -1
  497. package/dist/public/assets/_v3HPnNBs.js.br +0 -0
  498. package/dist/public/assets/_vX9d6g5Y.js.br +0 -0
  499. package/dist/public/assets/_vhysM7gk.js +0 -1
  500. package/dist/public/assets/_vjwPQHk_.js +0 -1
  501. package/dist/public/assets/_yp48NYOW.js.br +0 -0
  502. package/dist/public/assets/_zcAaK79d.js.br +0 -0
  503. package/dist/public/assets/_zwPrEKxN.js +0 -1
  504. package/dist/public/assets/_zwPrEKxN.js.br +0 -0
  505. package/dist/public/assets/files-view-CzRAql9-.js +0 -2
  506. package/dist/public/assets/manage-workspace-C-c1R4pP.js +0 -2
  507. package/dist/public/assets/new-DWfNwssk.js +0 -1
  508. package/dist/public/assets/new-workspace-B8XAfkIH.js +0 -2
  509. package/dist/public/assets/review-view-DivHZNBf.js +0 -2
  510. package/dist/public/assets/settings-DWfNwssk.js +0 -1
  511. package/dist/public/assets/settings-page-BN9Hj1ui.js +0 -2
  512. package/dist/public/assets/styles-NmwxQh5L.css +0 -1
  513. package/dist/public/assets/styles-NmwxQh5L.css.br +0 -0
  514. package/dist/public/assets/w-DWfNwssk.js +0 -1
  515. package/dist/public/assets/w._-C9dj1aZ0.js +0 -1
  516. package/dist/public/assets/w._-D7_D4HlM.js +0 -1
  517. package/dist/public/assets/w._-DWfNwssk.js +0 -1
@@ -478,6 +478,30 @@ var STEPS = [
478
478
  up(db) {
479
479
  db.exec("DELETE FROM settings WHERE key = 'ui.term-predict'");
480
480
  }
481
+ },
482
+ {
483
+ version: 4,
484
+ name: "session messages",
485
+ up(db) {
486
+ db.exec(`
487
+ ALTER TABLE sessions ADD COLUMN parent_id TEXT REFERENCES sessions(id) ON DELETE SET NULL;
488
+
489
+ CREATE TABLE session_messages (
490
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
491
+ to_session TEXT NOT NULL REFERENCES sessions(id) ON DELETE CASCADE,
492
+ from_session TEXT,
493
+ from_label TEXT,
494
+ kind TEXT NOT NULL CHECK (kind IN ('message', 'reply', 'closed')),
495
+ body TEXT NOT NULL,
496
+ wants_reply INTEGER NOT NULL DEFAULT 0,
497
+ created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now')),
498
+ delivered_at TEXT
499
+ );
500
+
501
+ CREATE INDEX session_messages_to ON session_messages(to_session);
502
+ CREATE INDEX session_messages_from ON session_messages(from_session);
503
+ `);
504
+ }
481
505
  }
482
506
  ];
483
507
  var LATEST = STEPS.at(-1).version;
@@ -601,6 +625,35 @@ function workspacePath(id) {
601
625
  return get("SELECT path FROM workspaces WHERE id = ?", id)?.path;
602
626
  }
603
627
  //#endregion
628
+ //#region src/server/events.ts
629
+ var listeners$1 = /* @__PURE__ */ new Set();
630
+ function publish(type, data) {
631
+ publishJson(type, data === void 0 ? void 0 : JSON.stringify(data), data);
632
+ }
633
+ /** Publish with the payload already serialized (a producer that had to
634
+ * stringify it anyway, e.g. for change detection, hands the string in). */
635
+ function publishJson(type, dataJson, data) {
636
+ const event = {
637
+ type,
638
+ data,
639
+ frame: dataJson === void 0 ? JSON.stringify({ type }) : `{"type":${JSON.stringify(type)},"data":${dataJson}}`
640
+ };
641
+ for (const listener of [...listeners$1]) try {
642
+ listener(event);
643
+ } catch (err) {
644
+ console.error("[work] event listener error", err);
645
+ }
646
+ }
647
+ function subscribe(listener) {
648
+ listeners$1.add(listener);
649
+ return () => listeners$1.delete(listener);
650
+ }
651
+ /** Connected events-bus clients — lets background watchers idle when no one
652
+ * is listening. */
653
+ function subscriberCount() {
654
+ return listeners$1.size;
655
+ }
656
+ //#endregion
604
657
  //#region src/server/http.ts
605
658
  /** Who may frame the app's own responses: the app alone (the review's PDF
606
659
  * preview). A page elsewhere that frames it can dress a click on it as a
@@ -2116,6 +2169,9 @@ function getSetting(key) {
2116
2169
  function setSetting(key, value) {
2117
2170
  db.prepare("INSERT INTO settings (key, value) VALUES (?, ?) ON CONFLICT(key) DO UPDATE SET value = excluded.value").run(key, value);
2118
2171
  }
2172
+ function deleteSetting(key) {
2173
+ db.prepare("DELETE FROM settings WHERE key = ?").run(key);
2174
+ }
2119
2175
  /** UI preferences (last workspace, tab per workspace, collapsed panes…)
2120
2176
  * live in the settings table under a "ui." prefix — shared across every
2121
2177
  * device rather than per-browser. */
@@ -2142,24 +2198,38 @@ function deleteWorkspacePrefs(id) {
2142
2198
  const keys = WORKSPACE_PREFS.map((name) => `ui.${name}:${id}`);
2143
2199
  db.prepare(`DELETE FROM settings WHERE key IN (${keys.map(() => "?").join(", ")})`).run(...keys);
2144
2200
  }
2201
+ /** Every page hears of a pref written, whoever wrote it (another device,
2202
+ * `work config set`), and holds what it holds now without a reload. */
2145
2203
  function setPref(key, value) {
2146
2204
  if (value === null) db.prepare("DELETE FROM settings WHERE key = ?").run(`ui.${key}`);
2147
2205
  else setSetting(`ui.${key}`, value);
2206
+ publish("prefs.changed", {
2207
+ key,
2208
+ value
2209
+ });
2148
2210
  }
2149
2211
  /** Apply one change to a list or object pref as it is stored now — not
2150
- * as the page that sent it last read it — and return the result. */
2151
- function changePref(key, change) {
2212
+ * as the page that sent it last read it — and return the result, which
2213
+ * `check` may refuse (a value the pref cannot hold) before it is kept. */
2214
+ function changePref(key, change, check) {
2152
2215
  db.exec("BEGIN IMMEDIATE");
2216
+ let next;
2153
2217
  try {
2154
- const next = applyPrefChange(getSetting(`ui.${key}`) ?? null, change);
2218
+ next = applyPrefChange(getSetting(`ui.${key}`) ?? null, change);
2155
2219
  if (next !== null && next.length > 4096) throw httpError(413, `pref ${key} would be over ${PREF_MAX} characters`);
2156
- setPref(key, next);
2220
+ check?.(next);
2221
+ if (next === null) db.prepare("DELETE FROM settings WHERE key = ?").run(`ui.${key}`);
2222
+ else setSetting(`ui.${key}`, next);
2157
2223
  db.exec("COMMIT");
2158
- return next;
2159
2224
  } catch (err) {
2160
2225
  db.exec("ROLLBACK");
2161
2226
  throw err;
2162
2227
  }
2228
+ publish("prefs.changed", {
2229
+ key,
2230
+ value: next
2231
+ });
2232
+ return next;
2163
2233
  }
2164
2234
  /** Instance ids the user switched off in Settings (still installed). */
2165
2235
  function disabledAgents() {
@@ -2216,35 +2286,6 @@ function preferredAgent(enabled = enabledAgents()) {
2216
2286
  return enabled[0] || "shell";
2217
2287
  }
2218
2288
  //#endregion
2219
- //#region src/server/events.ts
2220
- var listeners$1 = /* @__PURE__ */ new Set();
2221
- function publish(type, data) {
2222
- publishJson(type, data === void 0 ? void 0 : JSON.stringify(data), data);
2223
- }
2224
- /** Publish with the payload already serialized (a producer that had to
2225
- * stringify it anyway, e.g. for change detection, hands the string in). */
2226
- function publishJson(type, dataJson, data) {
2227
- const event = {
2228
- type,
2229
- data,
2230
- frame: dataJson === void 0 ? JSON.stringify({ type }) : `{"type":${JSON.stringify(type)},"data":${dataJson}}`
2231
- };
2232
- for (const listener of [...listeners$1]) try {
2233
- listener(event);
2234
- } catch (err) {
2235
- console.error("[work] event listener error", err);
2236
- }
2237
- }
2238
- function subscribe(listener) {
2239
- listeners$1.add(listener);
2240
- return () => listeners$1.delete(listener);
2241
- }
2242
- /** Connected events-bus clients — lets background watchers idle when no one
2243
- * is listening. */
2244
- function subscriberCount() {
2245
- return listeners$1.size;
2246
- }
2247
- //#endregion
2248
2289
  //#region node_modules/.pnpm/bn.js@4.12.5/node_modules/bn.js/lib/bn.js
2249
2290
  var require_bn = /* @__PURE__ */ __commonJSMin(((exports, module) => {
2250
2291
  (function(module$1, exports$2) {
@@ -8198,6 +8239,18 @@ var interruptedAt = /* @__PURE__ */ new Map();
8198
8239
  * finished: the session is working until a turn ends with none left, and
8199
8240
  * that end is the one pushed. */
8200
8241
  var background = /* @__PURE__ */ new Map();
8242
+ /** Each session's last finished turn's message, whole: what a session
8243
+ * that messaged it gets back (server/messages). */
8244
+ var lastMessages = /* @__PURE__ */ new Map();
8245
+ /** Sessions a message is still to wake (server/messages keeps the set):
8246
+ * each asked another something not yet answered, or has one waiting to
8247
+ * be typed in. Like background work, that makes the session working, and
8248
+ * a turn of it that ends meanwhile has handed off rather than finished. */
8249
+ var expecting = /* @__PURE__ */ new Set();
8250
+ /** When someone last typed into each session's pane from a page. */
8251
+ var typedAt = /* @__PURE__ */ new Map();
8252
+ /** Told of each turn's end that stayed the end (`onTurnEnd`). */
8253
+ var turnEndListeners = /* @__PURE__ */ new Set();
8201
8254
  /** A turn's end is pushed once it has stayed ended this long. Stop fires
8202
8255
  * again each time something sends the agent back to work (a stop hook
8203
8256
  * that continues it, a goal loop, background subagents reporting in), and
@@ -8208,7 +8261,7 @@ var listeners = /* @__PURE__ */ new Set();
8208
8261
  function onPhaseChange(fn) {
8209
8262
  listeners.add(fn);
8210
8263
  }
8211
- function setAgentPhase(sessionId, phase, reason, summary) {
8264
+ function setAgentPhase(sessionId, phase, reason, summary, message) {
8212
8265
  reportedAt.set(sessionId, Date.now());
8213
8266
  cancelDone(sessionId);
8214
8267
  if (phase === "idle") {
@@ -8218,10 +8271,13 @@ function setAgentPhase(sessionId, phase, reason, summary) {
8218
8271
  if (phase === "waiting" && reason === "done") {
8219
8272
  const failed = phases.get(sessionId) === "waiting" && reasons.get(sessionId) === "attention";
8220
8273
  if (summary) summaries.set(sessionId, summary);
8274
+ if (message) lastMessages.set(sessionId, message);
8275
+ else lastMessages.delete(sessionId);
8221
8276
  if (phases.has(sessionId)) applyChange(sessionId, () => dropHook(sessionId));
8222
- if (!failed && !background.has(sessionId)) pendingDone.set(sessionId, setTimeout(() => {
8277
+ if (!background.has(sessionId)) pendingDone.set(sessionId, setTimeout(() => {
8223
8278
  pendingDone.delete(sessionId);
8224
- notify(sessionId, "done");
8279
+ const answered = endTurn(sessionId);
8280
+ if (!failed && !answered && !expecting.has(sessionId)) notify(sessionId, "done");
8225
8281
  }, DONE_SETTLE_MS));
8226
8282
  return;
8227
8283
  }
@@ -8256,6 +8312,39 @@ function noteBackground(sessionId, work) {
8256
8312
  else background.delete(sessionId);
8257
8313
  });
8258
8314
  }
8315
+ /** A turn's end once it has stayed the end (`DONE_SETTLE_MS`), with its
8316
+ * last message (undefined: the CLI reports none). A listener returns
8317
+ * whether it passed the end on to another session. */
8318
+ function onTurnEnd(fn) {
8319
+ turnEndListeners.add(fn);
8320
+ }
8321
+ function endTurn(sessionId) {
8322
+ let told = false;
8323
+ for (const fn of turnEndListeners) told = fn(sessionId, lastMessages.get(sessionId)) || told;
8324
+ return told;
8325
+ }
8326
+ /** A turn's end still waiting out `DONE_SETTLE_MS`: it may yet carry on. */
8327
+ function turnSettling(sessionId) {
8328
+ return pendingDone.has(sessionId);
8329
+ }
8330
+ /** The sessions a message is still to wake (server/messages). */
8331
+ function setExpecting(ids) {
8332
+ for (const id of /* @__PURE__ */ new Set([...expecting, ...ids])) {
8333
+ if (expecting.has(id) === ids.has(id)) continue;
8334
+ applyChange(id, () => {
8335
+ if (ids.has(id)) expecting.add(id);
8336
+ else expecting.delete(id);
8337
+ });
8338
+ }
8339
+ }
8340
+ /** Someone typed into the session's pane from a page. */
8341
+ function noteTyped(sessionId) {
8342
+ typedAt.set(sessionId, Date.now());
8343
+ }
8344
+ /** When someone last typed into the session's pane (0: not this run). */
8345
+ function lastTypedAt(sessionId) {
8346
+ return typedAt.get(sessionId) ?? 0;
8347
+ }
8259
8348
  function cancelDone(sessionId) {
8260
8349
  const timer = pendingDone.get(sessionId);
8261
8350
  if (!timer) return;
@@ -8317,15 +8406,23 @@ function setScrapedPhase(sessionId, phase) {
8317
8406
  });
8318
8407
  }
8319
8408
  /** Settings → Notifications: which events push (the `notify-events`
8320
- * pref, client/prefs `notifyEvents`); both unless switched off. */
8321
- function notifyOn(reason) {
8409
+ * pref, client/prefs `notifyEvents`); each unless switched off. `message`
8410
+ * is an agent's own `work notify`. */
8411
+ function notifyEventOn(event) {
8322
8412
  try {
8323
- const events = JSON.parse(getSetting("ui.notify-events") || "{}");
8324
- return (reason === "done" ? events.done : events.attention) !== false;
8413
+ return JSON.parse(getSetting("ui.notify-events") || "{}")[event] !== false;
8325
8414
  } catch {
8326
8415
  return true;
8327
8416
  }
8328
8417
  }
8418
+ function notifyOn(reason) {
8419
+ return notifyEventOn(reason === "done" ? "done" : "attention");
8420
+ }
8421
+ /** Whether someone has the session's terminal on screen: its own pushes
8422
+ * are then not sent, the page in front of them says it. */
8423
+ function sessionWatched(sessionId) {
8424
+ return (viewers.get(sessionId) ?? 0) > 0;
8425
+ }
8329
8426
  async function notify(sessionId, reason) {
8330
8427
  const row = get(`SELECT s.agent, s.title, s.workspace_id, w.name FROM sessions s
8331
8428
  JOIN workspaces w ON w.id = s.workspace_id WHERE s.id = ?`, sessionId);
@@ -8352,6 +8449,8 @@ async function notify(sessionId, reason) {
8352
8449
  function clearAgentPhase(sessionId) {
8353
8450
  cancelDone(sessionId);
8354
8451
  summaries.delete(sessionId);
8452
+ lastMessages.delete(sessionId);
8453
+ typedAt.delete(sessionId);
8355
8454
  reportedAt.delete(sessionId);
8356
8455
  interruptedAt.delete(sessionId);
8357
8456
  if (!phases.has(sessionId) && !scraped.has(sessionId) && !background.has(sessionId)) return;
@@ -8362,11 +8461,17 @@ function clearAgentPhase(sessionId) {
8362
8461
  background.delete(sessionId);
8363
8462
  });
8364
8463
  }
8365
- /** What a session is doing. The hook wins where there is one: it reports
8366
- * the turn itself, where tmux only sees the pane still moving after it. */
8367
- function agentPhase(sessionId) {
8464
+ /** What a session's own turn is doing. The hook wins where there is one:
8465
+ * it reports the turn itself, where tmux only sees the pane still moving
8466
+ * after it. Undefined: at its prompt, where a message can be typed in. */
8467
+ function turnPhase(sessionId) {
8368
8468
  return hookPhase(sessionId) ?? scraped.get(sessionId);
8369
8469
  }
8470
+ /** What a session is doing: its turn, else working while a message is
8471
+ * still to wake it — a session that handed work to another is not done. */
8472
+ function agentPhase(sessionId) {
8473
+ return turnPhase(sessionId) ?? (expecting.has(sessionId) ? "working" : void 0);
8474
+ }
8370
8475
  /** Apply a mutation and broadcast when it moved the session's phase (or,
8371
8476
  * `force`, its reason: finished and blocked draw differently). Only a
8372
8477
  * hook ever reports "waiting", so a transition into it is a push. */
@@ -8383,7 +8488,7 @@ function publishChange(sessionId) {
8383
8488
  const row = get("SELECT workspace_id FROM sessions WHERE id = ?", sessionId);
8384
8489
  if (row?.workspace_id) {
8385
8490
  const workspaceId = row.workspace_id;
8386
- import("./_CLoLdV87.js").then((m) => m.notifySessionsChanged(workspaceId));
8491
+ import("./_L2HNAA_8.js").then((m) => m.notifySessionsChanged(workspaceId));
8387
8492
  return;
8388
8493
  }
8389
8494
  publish("sessions.changed");
@@ -8447,7 +8552,8 @@ function readClaudeStyle(p, reported) {
8447
8552
  const text = str$1(p.last_assistant_message) || str$1(p["last-assistant-message"]) || str$1(p.lastAssistantMessage);
8448
8553
  if (text) return {
8449
8554
  reason,
8450
- summary: cleanSummary(text)
8555
+ summary: cleanSummary(text),
8556
+ message: text
8451
8557
  };
8452
8558
  if (kind) return {
8453
8559
  reason,
@@ -9478,7 +9584,10 @@ function readHook$4(p, reported, _state) {
9478
9584
  };
9479
9585
  }
9480
9586
  const read = readClaudeStyle(p, reported);
9481
- if (!read.summary && reported === "done") read.summary = lastMessageFromTranscript(p);
9587
+ if (!read.summary && reported === "done") {
9588
+ read.message = lastMessageFromTranscript(p);
9589
+ if (read.message) read.summary = cleanSummary(read.message);
9590
+ }
9482
9591
  return read;
9483
9592
  }
9484
9593
  /** The last non-empty `assistant.message` of the turn that just ended in
@@ -9502,7 +9611,7 @@ function lastMessageFromTranscript(p) {
9502
9611
  try {
9503
9612
  const ev = JSON.parse(lines[i]);
9504
9613
  const content = ev.type === "assistant.message" ? ev.data?.content : void 0;
9505
- if (typeof content === "string" && content.trim()) return cleanSummary(content);
9614
+ if (typeof content === "string" && content.trim()) return content.trim();
9506
9615
  } catch {}
9507
9616
  }
9508
9617
  } finally {
@@ -10190,7 +10299,8 @@ function readHook$1(p, reported) {
10190
10299
  const summary = str$1(p.summary);
10191
10300
  return {
10192
10301
  reason: reported,
10193
- summary: summary ? cleanSummary(summary) : void 0
10302
+ summary: summary ? cleanSummary(summary) : void 0,
10303
+ message: summary || void 0
10194
10304
  };
10195
10305
  }
10196
10306
  var opencode = {
@@ -10298,7 +10408,8 @@ function readHook(p, reported) {
10298
10408
  const summary = str$1(p.summary);
10299
10409
  return {
10300
10410
  reason: reported,
10301
- summary: summary ? cleanSummary(summary) : void 0
10411
+ summary: summary ? cleanSummary(summary) : void 0,
10412
+ message: summary || void 0
10302
10413
  };
10303
10414
  }
10304
10415
  //#endregion
@@ -10385,14 +10496,15 @@ function getSession(id) {
10385
10496
  * workspace at once (restored tabs, a phone and a desktop) both list no
10386
10497
  * sessions before either POST lands. The check and the insert run in one
10387
10498
  * synchronous step, so the second gets the first one's session. */
10388
- function createSession(workspaceId, agent, ifEmpty = false) {
10499
+ function createSession(workspaceId, agent, ifEmpty = false, parent) {
10389
10500
  if (!isKnownAgent(agent)) throw new Error(`unknown session kind: ${agent}`);
10390
10501
  if (ifEmpty) {
10391
10502
  const first = listSessions(workspaceId)[0];
10392
10503
  if (first) return first;
10393
10504
  }
10505
+ const parentId = parent && getSession(parent)?.workspace_id === workspaceId ? parent : null;
10394
10506
  const id = Math.random().toString(36).slice(2, 10);
10395
- db.prepare("INSERT INTO sessions (id, workspace_id, agent) VALUES (?, ?, ?)").run(id, workspaceId, agent);
10507
+ db.prepare("INSERT INTO sessions (id, workspace_id, agent, parent_id) VALUES (?, ?, ?, ?)").run(id, workspaceId, agent, parentId);
10396
10508
  notifySessionsChanged(workspaceId);
10397
10509
  return getSession(id);
10398
10510
  }
@@ -10413,7 +10525,14 @@ async function killSession(id) {
10413
10525
  async function disposeSessions(sessions) {
10414
10526
  for (const session of sessions) await disposeSession(session.id);
10415
10527
  }
10528
+ /** Told of a session about to go, while its row is still there (its
10529
+ * messages go with it: server/messages answers what it owed first). */
10530
+ var disposeListeners = /* @__PURE__ */ new Set();
10531
+ function onSessionDispose(fn) {
10532
+ disposeListeners.add(fn);
10533
+ }
10416
10534
  async function disposeSession(id) {
10535
+ for (const fn of disposeListeners) fn(id);
10417
10536
  await tmux([
10418
10537
  "kill-session",
10419
10538
  "-t",
@@ -10783,7 +10902,7 @@ function newSessionArgs(session, wsPath, mode, initialPrompt, size) {
10783
10902
  tmuxName(session.id),
10784
10903
  "-c",
10785
10904
  wsPath,
10786
- ...sessionEnvArgs(session.id, session.agent, wsPath),
10905
+ ...sessionEnvArgs(session, wsPath),
10787
10906
  ...loginShellCommand(session.agent, wsPath, initialPrompt)
10788
10907
  ];
10789
10908
  }
@@ -10896,17 +11015,22 @@ function sessionCommand(agent) {
10896
11015
  return command ? [command] : [];
10897
11016
  }
10898
11017
  /** tmux new-session env flags so the agent's hooks can report back which
10899
- * session they belong to, plus whatever the family needs to load its own
10900
- * hooks (opencode names its plugin here — tmux quotes it, not the shell). */
10901
- function sessionEnvArgs(sessionId, agent, cwd) {
11018
+ * session they belong to, and the agent itself can say which workspace it
11019
+ * is in (its links name it: `/w/<id>/…`) without asking `work`, plus
11020
+ * whatever the family needs to load its own hooks (opencode names its
11021
+ * plugin here — tmux quotes it, not the shell). */
11022
+ function sessionEnvArgs(session, cwd) {
10902
11023
  return [
10903
11024
  "-e",
10904
- `WORK_SESSION_ID=${sessionId}`,
11025
+ `WORK_SESSION_ID=${session.id}`,
11026
+ ...session.workspace_id ? ["-e", `WORK_WORKSPACE_ID=${session.workspace_id}`] : [],
11027
+ "-e",
11028
+ `WORK_WORKSPACE_DIR=${cwd}`,
10905
11029
  "-e",
10906
11030
  `WORK_APP_PORT=${config.appPort}`,
10907
11031
  "-e",
10908
11032
  `TMPDIR=${sessionTmp(cwd)}`,
10909
- ...Object.entries(agentLaunchEnv(agent, { cwd })).flatMap(([key, value]) => ["-e", `${key}=${value}`])
11033
+ ...Object.entries(agentLaunchEnv(session.agent, { cwd })).flatMap(([key, value]) => ["-e", `${key}=${value}`])
10910
11034
  ];
10911
11035
  }
10912
11036
  /** A session's scratch (`TMPDIR`): its workspace's own `.tmp/`, on disk
@@ -10926,4 +11050,4 @@ function sleep(ms) {
10926
11050
  return new Promise((resolve) => setTimeout(resolve, ms));
10927
11051
  }
10928
11052
  //#endregion
10929
- export { normalizeAccent as $, get as $t, blankRow as A, tilde as At, setAgentPhase as B, TOOLS as Bt, tmuxWasStarted as C, discoverAgents as Ct, inside as D, miseVersions as Dt, reportsWorking as E, miseInstalls as Et, interruptedSinceReport as F, unsetCaches as Ft, agentFamily as G, applyPrefChange as Gt, setSessionViewers as H, agentLabel$1 as Ht, noteBackground as I, untrackedCacheAllowed as It, agentMeta as J, checked as Jt, agentFromCommand as K, FRAME_ANCESTORS as Kt, noteInterrupt as L, firewallProbe as Lt, clearAgentPhase as M, hostReach as Mt, hookPhase as N, unreachableText as Nt, realInside as O, setupPath as Ot, hookReportedAt as P, enableUntrackedCache as Pt, manifest as Q, db as Qt, noteUserAnswered as R, DEFAULT_GITHUB_HOST as Rt, tmuxName as S, setSetting as St, readHookPayload as T, ghKnownHosts as Tt, settleQuietWorking as U, catalogPin as Ut, setScrapedPhase as V, agentById as Vt, agentBadge as W, toolById as Wt, getInstance as X, readBody as Xt, ACCENT_RE as Y, httpError as Yt, iconSvg as Z, all as Zt, notifySessionsChanged as _, enabledAgents as _t, creationOf as a, run$2 as an, validSubscription as at, sendToSession as b, setDisabledAgents as bt, forgetPanes as c, shared as cn, subscribe as ct, killWorkspaceSessions as d, WORKSPACE_PREFS as dt, workspacePath as en, setInstance as et, listPanes as f, agentChoices as ft, newSessionArgs as g, disabledAgents as gt, markTmuxStarted as h, deleteWorkspacePrefs as ht, createSession as i, gitEnv as in, sendPush as it, agentPhase as j, which as jt, realInsideSync as k, stableGh as kt, getSession as l, swr as ln, subscriberCount as lt, listSessions as m, changePref as mt, cleanEnv as n, gh as nn, pushPublicKey as nt, disposeSessions as o, tmux as on, publish as ot, listPanesWithin as p, allPrefs as pt, agentLabel as q, FRAME_HEADERS as qt, clearTmuxStarted as r, git as rn, saveSubscription as rt, ensureTmuxServer as s, config as sn, publishJson as st, beginCreation as t, TMUX_SOCKET as tn, deleteSubscription as tt, killSession as u, withLock as un, PREF_MAX as ut, panePids as v, getSetting as vt, AGENTS as w, doctor as wt, sessionStates as x, setPref as xt, renameSession as y, preferredAgent as yt, onPhaseChange as z, PROJECT_TOOLS as zt };
11053
+ export { agentBadge as $, FRAME_ANCESTORS as $t, realInsideSync as A, doctor as At, noteTyped as B, enableUntrackedCache as Bt, tmuxName as C, enabledAgents as Ct, reportsWorking as D, setPref as Dt, readHookPayload as E, setDisabledAgents as Et, hookReportedAt as F, stableGh as Ft, sessionWatched as G, PROJECT_TOOLS as Gt, notifyEventOn as H, untrackedCacheAllowed as Ht, interruptedSinceReport as I, tilde as It, setScrapedPhase as J, agentLabel$1 as Jt, setAgentPhase as K, TOOLS as Kt, lastTypedAt as L, which as Lt, agentPhase as M, miseInstalls as Mt, clearAgentPhase as N, miseVersions as Nt, inside as O, setSetting as Ot, hookPhase as P, setupPath as Pt, turnSettling as Q, applyPrefChange as Qt, noteBackground as R, hostReach as Rt, sessionStates as S, disabledAgents as St, AGENTS as T, preferredAgent as Tt, onPhaseChange as U, firewallProbe as Ut, noteUserAnswered as V, unsetCaches as Vt, onTurnEnd as W, DEFAULT_GITHUB_HOST as Wt, settleQuietWorking as X, parseAgentId as Xt, setSessionViewers as Y, catalogPin as Yt, turnPhase as Z, toolById as Zt, notifySessionsChanged as _, tmux as _n, agentChoices as _t, creationOf as a, publishJson as an, getInstance as at, renameSession as b, swr as bn, deleteSetting as bt, forgetPanes as c, all as cn, normalizeAccent as ct, killWorkspaceSessions as d, workspacePath as dn, pushPublicKey as dt, FRAME_HEADERS as en, agentFamily as et, listPanes as f, TMUX_SOCKET as fn, saveSubscription as ft, newSessionArgs as g, run$2 as gn, WORKSPACE_PREFS as gt, markTmuxStarted as h, gitEnv as hn, PREF_MAX as ht, createSession as i, publish as in, ACCENT_RE as it, blankRow as j, ghKnownHosts as jt, realInside as k, discoverAgents as kt, getSession as l, db as ln, setInstance as lt, listSessions as m, git as mn, validSubscription as mt, cleanEnv as n, httpError as nn, agentLabel as nt, disposeSessions as o, subscribe as on, iconSvg as ot, listPanesWithin as p, gh as pn, sendPush as pt, setExpecting as q, agentById as qt, clearTmuxStarted as r, readBody as rn, agentMeta as rt, ensureTmuxServer as s, subscriberCount as sn, manifest as st, beginCreation as t, checked as tn, agentFromCommand as tt, killSession as u, get as un, deleteSubscription as ut, onSessionDispose as v, config as vn, allPrefs as vt, tmuxWasStarted as w, getSetting as wt, sendToSession as x, withLock as xn, deleteWorkspacePrefs as xt, panePids as y, shared as yn, changePref as yt, noteInterrupt as z, unreachableText as zt };
@@ -0,0 +1,2 @@
1
+ import { _ as notifySessionsChanged } from "./_CsokArOR.js";
2
+ export { notifySessionsChanged };
@@ -0,0 +1,173 @@
1
+ var glyphBadgeNum = "_y _x";
2
+ var usageInk = {
3
+ ok: "_z",
4
+ mid: "_A",
5
+ warm: "_B",
6
+ hot: "_C"
7
+ };
8
+ var usageFill = {
9
+ ok: "_D",
10
+ mid: "_E",
11
+ warm: "_F",
12
+ hot: "_G"
13
+ };
14
+ var prTone = {
15
+ open: "_H",
16
+ draft: "_I",
17
+ merged: "_J",
18
+ closed: "_K"
19
+ };
20
+ var phaseIcon = {
21
+ working: "_X _W",
22
+ waiting: "_Y _W",
23
+ idle: "_Z _W",
24
+ off: "_0 _W"
25
+ };
26
+ var btnSm = "_7 _r";
27
+ var btnLg = "_8 _r";
28
+ var tone = {
29
+ accent: "_bb",
30
+ ok: "_bc",
31
+ warn: "_bd",
32
+ danger: "_be",
33
+ merged: "_bf",
34
+ closed: "_bg"
35
+ };
36
+ var inputLg = "_bk _bj";
37
+ var iconBtnXs = "_bo _m";
38
+ var iconBtnRow = "_bp _m";
39
+ var iconBtnLg = "_bq _m";
40
+ var chipBtn = "_br _m";
41
+ var toastStack = "_bF _bE";
42
+ var toastKind = {
43
+ error: "_bJ",
44
+ warn: "_bK",
45
+ info: "_bL"
46
+ };
47
+ var toastTitle = {
48
+ error: "_bM",
49
+ warn: "_bN",
50
+ info: "_bO"
51
+ };
52
+ var tocDot = "_dh _U";
53
+ //#endregion
54
+ //#region src/styles/tokens.css.ts
55
+ var color = {
56
+ ok: "light-dark(#1a7f37, #57d364)",
57
+ okStrong: "light-dark(#116329, #7ee787)",
58
+ warn: "light-dark(#bf8700, #d4a72c)",
59
+ warnStrong: "light-dark(#8a5a00, #f0b84a)",
60
+ merged: "light-dark(#8250df, #a371f7)",
61
+ closed: "light-dark(#cf222e, #f85149)",
62
+ onAccent: "#fff",
63
+ onDanger: "#fff",
64
+ accentDefault: "light-dark(#4f5bd5, #6470e6)",
65
+ bg: "var(--bg)",
66
+ panel: "var(--panel)",
67
+ border: "var(--border)",
68
+ text: "var(--text)",
69
+ dim: "var(--dim)",
70
+ accent: "var(--accent)",
71
+ accentFill: "var(--accent-fill)",
72
+ accentText: "var(--accent-text)",
73
+ danger: "var(--danger)",
74
+ fieldBorder: "var(--field-border)",
75
+ raised: "color-mix(in srgb, var(--panel) 94%, var(--text))",
76
+ raisedHover: "color-mix(in srgb, var(--panel) 90%, var(--text))",
77
+ onScrim: "#fff"
78
+ };
79
+ var sans = "Inter, ui-sans-serif, system-ui, -apple-system, \"Segoe UI\", sans-serif";
80
+ var iconSize = {
81
+ sm: 12,
82
+ md: 14,
83
+ lg: 16,
84
+ xl: 18
85
+ };
86
+ //#endregion
87
+ //#region src/tags/settings-agents.css.ts
88
+ var agentRow = "_hG _ey";
89
+ var list$3 = "_eC _dJ _ex _eA";
90
+ var metaChip = "_eQ _bi _bh";
91
+ var sectionCount = "_dG _9 __";
92
+ var usageNote = "_j3 _bh";
93
+ var pop$2 = "_ho _bw";
94
+ var spinner = "_hr _bm _2";
95
+ var toolLead = "_g_ _eL";
96
+ var name$4 = "_g4 _eL";
97
+ var desc$1 = "_g5 _eM";
98
+ //#endregion
99
+ //#region src/tags/lsp-add-dialog.css.ts
100
+ var addDlg = "_le _bX";
101
+ var key$1 = "_l1 _lZ";
102
+ var addTile = "_l3 _lZ";
103
+ var field$2 = "_md _bj";
104
+ var keyField = "_me _md _bj";
105
+ var labelField = "_mf _md _bj";
106
+ var detailsToggle = "_gR _P";
107
+ var themeSeg = "_fi _bA";
108
+ var checkList = "_if _dH";
109
+ //#endregion
110
+ //#region src/tags/prompt-dialog.css.ts
111
+ var promptDlg = "_b1 _bX";
112
+ var item$1 = "_b6 _m";
113
+ var glance = "_dT _m";
114
+ //#endregion
115
+ //#region src/tags/side-nav.css.ts
116
+ var iconBtn = "_cl _m";
117
+ var settingsDot = "_cm _bz";
118
+ var notifyBtn = "_cr _m";
119
+ //#endregion
120
+ //#region src/styles/session-pop.css.ts
121
+ var sessionPop = "_ct _bw";
122
+ var sessionPopBtn = "_cu _4";
123
+ var wsBtn = "_gn _4";
124
+ var rowIcon = "_gp _bo _m";
125
+ var prChip = "_lp _v _lj";
126
+ //#endregion
127
+ //#region src/tags/port-chip.css.ts
128
+ var port = "_nU _v _lj";
129
+ var depth = {
130
+ "1": "_kv",
131
+ "2": "_kw",
132
+ "3": "_kx"
133
+ };
134
+ var open = "_ky _4";
135
+ var action = "_kC _br _m";
136
+ var toggle = "_eV _P";
137
+ var fold = "_eW _ez";
138
+ var item = "_kI _4";
139
+ var menu = "_mA _ct _bw";
140
+ var menuItem = "_mC _4";
141
+ var findBtn$1 = "_iE _io _bp _m";
142
+ var tool = "_io _bp _m";
143
+ var heldRefresh = "_iw _v";
144
+ var pop$1 = "_mM _ct _bw";
145
+ var fileFilter = "_n1 _o";
146
+ var findInput = "_en _o";
147
+ var keybarIconBtn = "_ew _br _m";
148
+ var input = "_ca _o";
149
+ var group = "_cd _P";
150
+ var hint$1 = "_mZ _9 _M";
151
+ var sheetDir = "_nf _by";
152
+ var upBtn = "_jj _bp _m";
153
+ var findBtn = "_jn _io _bp _m";
154
+ var goBtn = "_jo _io _bp _m";
155
+ var note = "_mP _bh";
156
+ //#endregion
157
+ //#region src/tags/manage-workspace.css.ts
158
+ var procCmd = "_hU _eL";
159
+ var factCopy = "_h1 _br _m";
160
+ var resultRow = "_kY _4";
161
+ var resultBranch = "_kZ _eQ _bi _bh _bo _m";
162
+ var urlAction = "_k0 _eQ _bi _bh _eR";
163
+ var curRow = "_hS _eF";
164
+ //#endregion
165
+ //#region src/tags/join-dialog.css.ts
166
+ var dlg = "_lE _bX";
167
+ var hint = "_lF _bh";
168
+ var kbtn = "_c4 _bq _m";
169
+ var repeat = "_c7 _c6";
170
+ var dpadUser = "_c_ _c6";
171
+ var dpadEsc = "_da _c6";
172
+ //#endregion
173
+ export { key$1 as $, item as A, tone as At, sessionPop as B, fileFilter as C, glyphBadgeNum as Ct, findBtn$1 as D, inputLg as Dt, tool as E, iconBtnXs as Et, open as F, glance as G, iconBtn as H, port as I, checkList as J, item$1 as K, prChip as L, toggle as M, usageInk as Mt, action as N, menu as O, phaseIcon as Ot, depth as P, field$2 as Q, rowIcon as R, keybarIconBtn as S, chipBtn as St, heldRefresh as T, iconBtnRow as Tt, notifyBtn as U, sessionPopBtn as V, settingsDot as W, detailsToggle as X, themeSeg as Y, addTile as Z, sheetDir as _, toastKind as _t, dlg as a, toolLead as at, input as b, btnLg as bt, resultBranch as c, usageNote as ct, factCopy as d, metaChip as dt, keyField as et, procCmd as f, agentRow as ft, upBtn as g, tocDot as gt, goBtn as h, sans as ht, repeat as i, name$4 as it, fold as j, usageFill as jt, menuItem as k, prTone as kt, resultRow as l, sectionCount as lt, findBtn as m, iconSize as mt, dpadUser as n, addDlg as nt, hint as o, pop$2 as ot, note as p, color as pt, promptDlg as q, kbtn as r, desc$1 as rt, curRow as s, spinner as st, dpadEsc as t, labelField as tt, urlAction as u, list$3 as ut, hint$1 as v, toastStack as vt, pop$1 as w, iconBtnLg as wt, findInput as x, btnSm as xt, group as y, toastTitle as yt, wsBtn as z };