@dylanpiercey/work 0.0.69 → 0.0.71

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 (248) hide show
  1. package/dist/{_BBDhdUuj.js → _8t6K8Jk8.js} +67 -67
  2. package/dist/{_BzEc7Y99.js → _D3qriis-.js} +4 -4
  3. package/dist/{_mSrLyFdO.js → _DgDsZuoQ.js} +101 -41
  4. package/dist/_xZfpJdQE.js +2 -0
  5. package/dist/index.mjs +397 -326
  6. package/dist/public/assets/{_eOSbQ2H52.js → _9aJgLz6G2.js} +1 -1
  7. package/dist/public/assets/_9aJgLz6G2.js.br +0 -0
  8. package/dist/public/assets/{_Dn9evgOf2.js → _AeL166wR2.js} +1 -1
  9. package/dist/public/assets/_AeL166wR2.js.br +0 -0
  10. package/dist/public/assets/{_Cn24gDaN.js → _B0h_gNbx.js} +1 -1
  11. package/dist/public/assets/_B0h_gNbx.js.br +0 -0
  12. package/dist/public/assets/{_Cimq_3st2.js → _B3VIvUTs2.js} +1 -1
  13. package/dist/public/assets/_B3VIvUTs2.js.br +0 -0
  14. package/dist/public/assets/{_Bk7LZElr2.js → _B3wjms9s2.js} +1 -1
  15. package/dist/public/assets/_B3wjms9s2.js.br +0 -0
  16. package/dist/public/assets/{_De2MbV4-.js → _B5mDTFiX.js} +1 -1
  17. package/dist/public/assets/_B5mDTFiX.js.br +0 -0
  18. package/dist/public/assets/{_By_xPS-p.js → _BEEgRpqj.js} +1 -1
  19. package/dist/public/assets/_BEEgRpqj.js.br +0 -0
  20. package/dist/public/assets/{_Dk90j4eO.js → _BFfBgn79.js} +1 -1
  21. package/dist/public/assets/_BFfBgn79.js.br +0 -0
  22. package/dist/public/assets/{_DEkiGmgs2.js → _BKRausc72.js} +1 -1
  23. package/dist/public/assets/_BKRausc72.js.br +0 -0
  24. package/dist/public/assets/{_DMbI3C312.js → _BPH6VN8T2.js} +1 -1
  25. package/dist/public/assets/_BPH6VN8T2.js.br +0 -0
  26. package/dist/public/assets/{_B2Wh9q7i2.js → _BPW0wOMI2.js} +1 -1
  27. package/dist/public/assets/_BPW0wOMI2.js.br +0 -0
  28. package/dist/public/assets/{_C_KMHM_B.js → _BPmmCSLY.js} +1 -1
  29. package/dist/public/assets/_BPmmCSLY.js.br +0 -0
  30. package/dist/public/assets/{_z9xnkyG0.js → _BR_6IGfk.js} +1 -1
  31. package/dist/public/assets/_BR_6IGfk.js.br +0 -0
  32. package/dist/public/assets/{_h65AGMTQ2.js → _BUeHx4zC2.js} +1 -1
  33. package/dist/public/assets/_BUeHx4zC2.js.br +0 -0
  34. package/dist/public/assets/{_Bn42mWko.js → _BUteNftu.js} +1 -1
  35. package/dist/public/assets/_BUteNftu.js.br +0 -0
  36. package/dist/public/assets/{_B2XlFtZA.js → _BYrRgI_G.js} +1 -1
  37. package/dist/public/assets/_BYrRgI_G.js.br +0 -0
  38. package/dist/public/assets/{_AjJFGKIO.js → _BZK8bxUc.js} +1 -1
  39. package/dist/public/assets/_BZK8bxUc.js.br +0 -0
  40. package/dist/public/assets/{_C_hrnmAR.js → _BZNMfrgb.js} +1 -1
  41. package/dist/public/assets/_BZNMfrgb.js.br +0 -0
  42. package/dist/public/assets/{_C0gLchFg2.js → _B_OHURbh2.js} +1 -1
  43. package/dist/public/assets/_B_OHURbh2.js.br +0 -0
  44. package/dist/public/assets/{_B8QdoRxF.js → _Bd-WyHvg.js} +1 -1
  45. package/dist/public/assets/_Bd-WyHvg.js.br +0 -0
  46. package/dist/public/assets/{_BtnTWv2c.js → _BejV602Y.js} +1 -1
  47. package/dist/public/assets/_BejV602Y.js.br +0 -0
  48. package/dist/public/assets/{_CyEK8RLH.js → _BltuSqY6.js} +1 -1
  49. package/dist/public/assets/_BltuSqY6.js.br +0 -0
  50. package/dist/public/assets/{_Cl5u4DlE.js → _Bn6Hn06S.js} +1 -1
  51. package/dist/public/assets/_Bn6Hn06S.js.br +0 -0
  52. package/dist/public/assets/{_BJbOGqL2.js → _BqfMkwYX.js} +1 -1
  53. package/dist/public/assets/_BqfMkwYX.js.br +0 -0
  54. package/dist/public/assets/{_BG91Ur7C.js → _BqrygBOe.js} +1 -1
  55. package/dist/public/assets/{_C8JrL8ZU.js → _BztBrnhM.js} +1 -1
  56. package/dist/public/assets/_BztBrnhM.js.br +0 -0
  57. package/dist/public/assets/{_D13hLO2N2.js → _C-LtCarQ2.js} +1 -1
  58. package/dist/public/assets/{_DbKE1MvW.js → _C-wce-RA.js} +1 -1
  59. package/dist/public/assets/_C-wce-RA.js.br +0 -0
  60. package/dist/public/assets/{_DNT9FflM.js → _C6jdreqj.js} +1 -1
  61. package/dist/public/assets/_C6jdreqj.js.br +0 -0
  62. package/dist/public/assets/{_DdX84yEG.js → _CGVLhh2k.js} +1 -1
  63. package/dist/public/assets/_CGVLhh2k.js.br +0 -0
  64. package/dist/public/assets/{_C4cnPJZt.js → _CLGWdoAJ.js} +1 -1
  65. package/dist/public/assets/_CLGWdoAJ.js.br +0 -0
  66. package/dist/public/assets/{_CnWPkpG6.js → _COmAhQWL.js} +1 -1
  67. package/dist/public/assets/_COmAhQWL.js.br +0 -0
  68. package/dist/public/assets/{_CyUpyj0-.js → _CS1j3Hb2.js} +1 -1
  69. package/dist/public/assets/_CS1j3Hb2.js.br +0 -0
  70. package/dist/public/assets/{_DPBnSJ7J.js → _CTdFL4wj.js} +1 -1
  71. package/dist/public/assets/_CTdFL4wj.js.br +0 -0
  72. package/dist/public/assets/{_BaW3VCxs2.js → _CWVKprFe2.js} +1 -1
  73. package/dist/public/assets/_CWVKprFe2.js.br +0 -0
  74. package/dist/public/assets/{_PL2w-xvr2.js → _CXSLFN1Q2.js} +1 -1
  75. package/dist/public/assets/_CXSLFN1Q2.js.br +0 -0
  76. package/dist/public/assets/{_DaYRBUL-.js → _C_9OeUA2.js} +1 -1
  77. package/dist/public/assets/_C_9OeUA2.js.br +0 -0
  78. package/dist/public/assets/{_hsoShTMK.js → _CbgTB_-a.js} +1 -1
  79. package/dist/public/assets/_CbgTB_-a.js.br +0 -0
  80. package/dist/public/assets/{_RfX8IpFo.js → _CdHoxy6P.js} +1 -1
  81. package/dist/public/assets/_CdHoxy6P.js.br +0 -0
  82. package/dist/public/assets/{_Dqp3F2Ex.js → _CeVU1yJL.js} +1 -1
  83. package/dist/public/assets/_CeVU1yJL.js.br +0 -0
  84. package/dist/public/assets/{_y21Miw0G2.js → _CgENI0zF2.js} +1 -1
  85. package/dist/public/assets/_CgENI0zF2.js.br +0 -0
  86. package/dist/public/assets/{_C-zOao0B2.js → _CgwQS6LN2.js} +1 -1
  87. package/dist/public/assets/_CgwQS6LN2.js.br +0 -0
  88. package/dist/public/assets/_CiElF6r4.js +85 -0
  89. package/dist/public/assets/_CiElF6r4.js.br +0 -0
  90. package/dist/public/assets/{_CaQPDPmE.js → _Cn0DEemU.js} +1 -1
  91. package/dist/public/assets/_Cn0DEemU.js.br +0 -0
  92. package/dist/public/assets/{_Dh4U5ZBy2.js → _CpnXaqgd2.js} +1 -1
  93. package/dist/public/assets/_CpnXaqgd2.js.br +0 -0
  94. package/dist/public/assets/{_CGxB7jfP2.js → _CvMvIBy42.js} +1 -1
  95. package/dist/public/assets/_CvMvIBy42.js.br +0 -0
  96. package/dist/public/assets/{_CANbMbX3.js → _CzxBqeDO.js} +1 -1
  97. package/dist/public/assets/_CzxBqeDO.js.br +0 -0
  98. package/dist/public/assets/{_Vyuu16Ad.js → _D2vmNrtA.js} +1 -1
  99. package/dist/public/assets/_D2vmNrtA.js.br +0 -0
  100. package/dist/public/assets/{_D0_YGa2m.js → _DAun3Lt7.js} +1 -1
  101. package/dist/public/assets/_DAun3Lt7.js.br +0 -0
  102. package/dist/public/assets/{_DcOH-3Zl2.js → _DBiZo1op2.js} +1 -1
  103. package/dist/public/assets/{_Be6zDaw_2.js → _DNdrj0-M2.js} +1 -1
  104. package/dist/public/assets/_DNdrj0-M2.js.br +0 -0
  105. package/dist/public/assets/{_D3U77twm2.js → _DPDIk03W2.js} +1 -1
  106. package/dist/public/assets/_DPDIk03W2.js.br +0 -0
  107. package/dist/public/assets/{_CNjJeI_E2.js → _DSg_vc6H2.js} +1 -1
  108. package/dist/public/assets/_DSg_vc6H2.js.br +0 -0
  109. package/dist/public/assets/{_D4aBfTEq2.js → _DTSUTR0_2.js} +1 -1
  110. package/dist/public/assets/_DTSUTR0_2.js.br +0 -0
  111. package/dist/public/assets/{_uoCfxD-5.js → _DToVjT46.js} +1 -1
  112. package/dist/public/assets/_DToVjT46.js.br +0 -0
  113. package/dist/public/assets/{_nSzaoNgm2.js → _DWdZCyBL2.js} +1 -1
  114. package/dist/public/assets/_DWdZCyBL2.js.br +0 -0
  115. package/dist/public/assets/{_DIrrBSY3.js → _DXCHOWYL.js} +1 -1
  116. package/dist/public/assets/_DXCHOWYL.js.br +0 -0
  117. package/dist/public/assets/{_CObWod2f2.js → _DZss8Wq02.js} +1 -1
  118. package/dist/public/assets/_DZss8Wq02.js.br +0 -0
  119. package/dist/public/assets/{_CQ1se5Ph.js → _DbEPPsY1.js} +1 -1
  120. package/dist/public/assets/_DbEPPsY1.js.br +0 -0
  121. package/dist/public/assets/{_BVaiw33j.js → _Dbf-xJ6k.js} +1 -1
  122. package/dist/public/assets/_Dbf-xJ6k.js.br +0 -0
  123. package/dist/public/assets/{_B0mlTNYN.js → _Dcav7tzL.js} +6 -6
  124. package/dist/public/assets/_Dcav7tzL.js.br +0 -0
  125. package/dist/public/assets/{_xQNWoj97.js → _DeMAtQzd.js} +1 -1
  126. package/dist/public/assets/_DeMAtQzd.js.br +0 -0
  127. package/dist/public/assets/{_BTIiA2Aj.js → _Dp1TBNWN.js} +1 -1
  128. package/dist/public/assets/_Dp1TBNWN.js.br +0 -0
  129. package/dist/public/assets/{_9JFMnVkT.js → _DqBuHT5A.js} +1 -1
  130. package/dist/public/assets/_DqBuHT5A.js.br +0 -0
  131. package/dist/public/assets/{_DHJUTBX4.js → _DtE0g-o1.js} +1 -1
  132. package/dist/public/assets/_DtE0g-o1.js.br +0 -0
  133. package/dist/public/assets/{_CN7jdIqu.js → _Du4JDj5_.js} +1 -1
  134. package/dist/public/assets/_Du4JDj5_.js.br +0 -0
  135. package/dist/public/assets/{_DohOwerT.js → _DwNswmCf.js} +1 -1
  136. package/dist/public/assets/_DwNswmCf.js.br +0 -0
  137. package/dist/public/assets/{_cuvR6O2V.js → _Ek1T1FMw.js} +1 -1
  138. package/dist/public/assets/_Ek1T1FMw.js.br +0 -0
  139. package/dist/public/assets/{_QdFvZh29.js → _HO-Qb8pn.js} +1 -1
  140. package/dist/public/assets/_HO-Qb8pn.js.br +0 -0
  141. package/dist/public/assets/{__fELRce2.js → _Lot9I7Im.js} +1 -1
  142. package/dist/public/assets/_Lot9I7Im.js.br +0 -0
  143. package/dist/public/assets/{_7eu3vqOe.js → _QQHXmR7d.js} +1 -1
  144. package/dist/public/assets/_QQHXmR7d.js.br +0 -0
  145. package/dist/public/assets/{_Yor3dkCs.js → _USmNZPRb.js} +1 -1
  146. package/dist/public/assets/_USmNZPRb.js.br +0 -0
  147. package/dist/public/assets/{_DlipybEX.js → _UgQ3KVU7.js} +1 -1
  148. package/dist/public/assets/_UgQ3KVU7.js.br +0 -0
  149. package/dist/public/assets/{_DpiQNDSt.js → __DTZmGl8.js} +1 -1
  150. package/dist/public/assets/__DTZmGl8.js.br +0 -0
  151. package/dist/public/assets/{_CqASoXOX.js → _dAXKSDYL.js} +1 -1
  152. package/dist/public/assets/_dAXKSDYL.js.br +0 -0
  153. package/dist/public/assets/{_Dzckria-2.js → _uyFxI_FF2.js} +1 -1
  154. package/dist/public/assets/_uyFxI_FF2.js.br +0 -0
  155. package/dist/public/assets/app-page-Bv2S_Tip.css +1 -0
  156. package/dist/public/assets/app-page-Bv2S_Tip.css.br +0 -0
  157. package/dist/public/assets/diff-view-rtQ04a8n.css +1 -0
  158. package/dist/public/assets/diff-view-rtQ04a8n.css.br +0 -0
  159. package/dist/public/assets/new-ECSvnCXB.js +1 -0
  160. package/dist/public/assets/settings-ECSvnCXB.js +1 -0
  161. package/dist/public/assets/w-ECSvnCXB.js +1 -0
  162. package/dist/public/assets/w._-CEJj3Icr.js +1 -0
  163. package/dist/public/assets/w._-ECSvnCXB.js +1 -0
  164. package/package.json +1 -1
  165. package/dist/_C8-SYmgW.js +0 -2
  166. package/dist/public/assets/_7eu3vqOe.js.br +0 -0
  167. package/dist/public/assets/_9JFMnVkT.js.br +0 -0
  168. package/dist/public/assets/_AjJFGKIO.js.br +0 -0
  169. package/dist/public/assets/_B0mlTNYN.js.br +0 -0
  170. package/dist/public/assets/_B2Wh9q7i2.js.br +0 -0
  171. package/dist/public/assets/_B2XlFtZA.js.br +0 -0
  172. package/dist/public/assets/_B8QdoRxF.js.br +0 -0
  173. package/dist/public/assets/_BJbOGqL2.js.br +0 -0
  174. package/dist/public/assets/_BTIiA2Aj.js.br +0 -0
  175. package/dist/public/assets/_BVaiw33j.js.br +0 -0
  176. package/dist/public/assets/_BaW3VCxs2.js.br +0 -0
  177. package/dist/public/assets/_Be6zDaw_2.js.br +0 -0
  178. package/dist/public/assets/_Bk7LZElr2.js.br +0 -0
  179. package/dist/public/assets/_Bn42mWko.js.br +0 -0
  180. package/dist/public/assets/_BtnTWv2c.js.br +0 -0
  181. package/dist/public/assets/_By_xPS-p.js.br +0 -0
  182. package/dist/public/assets/_C-zOao0B2.js.br +0 -0
  183. package/dist/public/assets/_C0gLchFg2.js.br +0 -0
  184. package/dist/public/assets/_C4cnPJZt.js.br +0 -0
  185. package/dist/public/assets/_C8JrL8ZU.js.br +0 -0
  186. package/dist/public/assets/_CANbMbX3.js.br +0 -0
  187. package/dist/public/assets/_CGxB7jfP2.js.br +0 -0
  188. package/dist/public/assets/_CI-lBiRq.js +0 -85
  189. package/dist/public/assets/_CI-lBiRq.js.br +0 -0
  190. package/dist/public/assets/_CN7jdIqu.js.br +0 -0
  191. package/dist/public/assets/_CNjJeI_E2.js.br +0 -0
  192. package/dist/public/assets/_CObWod2f2.js.br +0 -0
  193. package/dist/public/assets/_CQ1se5Ph.js.br +0 -0
  194. package/dist/public/assets/_C_KMHM_B.js.br +0 -0
  195. package/dist/public/assets/_C_hrnmAR.js.br +0 -0
  196. package/dist/public/assets/_CaQPDPmE.js.br +0 -0
  197. package/dist/public/assets/_Cimq_3st2.js.br +0 -0
  198. package/dist/public/assets/_Cl5u4DlE.js.br +0 -0
  199. package/dist/public/assets/_Cn24gDaN.js.br +0 -0
  200. package/dist/public/assets/_CnWPkpG6.js.br +0 -0
  201. package/dist/public/assets/_CqASoXOX.js.br +0 -0
  202. package/dist/public/assets/_CyEK8RLH.js.br +0 -0
  203. package/dist/public/assets/_CyUpyj0-.js.br +0 -0
  204. package/dist/public/assets/_D0_YGa2m.js.br +0 -0
  205. package/dist/public/assets/_D3U77twm2.js.br +0 -0
  206. package/dist/public/assets/_D4aBfTEq2.js.br +0 -0
  207. package/dist/public/assets/_DEkiGmgs2.js.br +0 -0
  208. package/dist/public/assets/_DHJUTBX4.js.br +0 -0
  209. package/dist/public/assets/_DIrrBSY3.js.br +0 -0
  210. package/dist/public/assets/_DMbI3C312.js.br +0 -0
  211. package/dist/public/assets/_DNT9FflM.js.br +0 -0
  212. package/dist/public/assets/_DPBnSJ7J.js.br +0 -0
  213. package/dist/public/assets/_DaYRBUL-.js.br +0 -0
  214. package/dist/public/assets/_DbKE1MvW.js.br +0 -0
  215. package/dist/public/assets/_DdX84yEG.js.br +0 -0
  216. package/dist/public/assets/_De2MbV4-.js.br +0 -0
  217. package/dist/public/assets/_Dh4U5ZBy2.js.br +0 -0
  218. package/dist/public/assets/_Dk90j4eO.js.br +0 -0
  219. package/dist/public/assets/_DlipybEX.js.br +0 -0
  220. package/dist/public/assets/_Dn9evgOf2.js.br +0 -0
  221. package/dist/public/assets/_DohOwerT.js.br +0 -0
  222. package/dist/public/assets/_DpiQNDSt.js.br +0 -0
  223. package/dist/public/assets/_Dqp3F2Ex.js.br +0 -0
  224. package/dist/public/assets/_Dzckria-2.js.br +0 -0
  225. package/dist/public/assets/_PL2w-xvr2.js.br +0 -0
  226. package/dist/public/assets/_QdFvZh29.js.br +0 -0
  227. package/dist/public/assets/_RfX8IpFo.js.br +0 -0
  228. package/dist/public/assets/_Vyuu16Ad.js.br +0 -0
  229. package/dist/public/assets/_Yor3dkCs.js.br +0 -0
  230. package/dist/public/assets/__fELRce2.js.br +0 -0
  231. package/dist/public/assets/_cuvR6O2V.js.br +0 -0
  232. package/dist/public/assets/_eOSbQ2H52.js.br +0 -0
  233. package/dist/public/assets/_h65AGMTQ2.js.br +0 -0
  234. package/dist/public/assets/_hsoShTMK.js.br +0 -0
  235. package/dist/public/assets/_nSzaoNgm2.js.br +0 -0
  236. package/dist/public/assets/_uoCfxD-5.js.br +0 -0
  237. package/dist/public/assets/_xQNWoj97.js.br +0 -0
  238. package/dist/public/assets/_y21Miw0G2.js.br +0 -0
  239. package/dist/public/assets/_z9xnkyG0.js.br +0 -0
  240. package/dist/public/assets/app-page-BFosX16q.css +0 -1
  241. package/dist/public/assets/app-page-BFosX16q.css.br +0 -0
  242. package/dist/public/assets/diff-view-DjZg0WLz.css +0 -1
  243. package/dist/public/assets/diff-view-DjZg0WLz.css.br +0 -0
  244. package/dist/public/assets/new-CMpE7Au8.js +0 -1
  245. package/dist/public/assets/settings-CMpE7Au8.js +0 -1
  246. package/dist/public/assets/w-CMpE7Au8.js +0 -1
  247. package/dist/public/assets/w._-BaiMToPS.js +0 -1
  248. package/dist/public/assets/w._-CMpE7Au8.js +0 -1
@@ -7,6 +7,7 @@ import os from "node:os";
7
7
  import { execFile } from "node:child_process";
8
8
  import { promisify } from "node:util";
9
9
  import { DatabaseSync } from "node:sqlite";
10
+ import { createHash } from "node:crypto";
10
11
  //#region src/server/config.ts
11
12
  var home$1 = os.homedir();
12
13
  var config = {
@@ -4585,14 +4586,14 @@ var require_buffer_equal_constant_time = /* @__PURE__ */ __commonJSMin(((exports
4585
4586
  //#region node_modules/.pnpm/jwa@2.0.1/node_modules/jwa/index.js
4586
4587
  var require_jwa = /* @__PURE__ */ __commonJSMin(((exports, module) => {
4587
4588
  var Buffer = require_safe_buffer().Buffer;
4588
- var crypto$3 = __require("crypto");
4589
+ var crypto$4 = __require("crypto");
4589
4590
  var formatEcdsa = require_ecdsa_sig_formatter();
4590
4591
  var util$2 = __require("util");
4591
4592
  var MSG_INVALID_ALGORITHM = "\"%s\" is not a valid algorithm.\n Supported algorithms are:\n \"HS256\", \"HS384\", \"HS512\", \"RS256\", \"RS384\", \"RS512\", \"PS256\", \"PS384\", \"PS512\", \"ES256\", \"ES384\", \"ES512\" and \"none\".";
4592
4593
  var MSG_INVALID_SECRET = "secret must be a string or buffer";
4593
4594
  var MSG_INVALID_VERIFIER_KEY = "key must be a string or a buffer";
4594
4595
  var MSG_INVALID_SIGNER_KEY = "key must be a string, a buffer or an object";
4595
- var supportsKeyObjects = typeof crypto$3.createPublicKey === "function";
4596
+ var supportsKeyObjects = typeof crypto$4.createPublicKey === "function";
4596
4597
  if (supportsKeyObjects) {
4597
4598
  MSG_INVALID_VERIFIER_KEY += " or a KeyObject";
4598
4599
  MSG_INVALID_SECRET += "or a KeyObject";
@@ -4645,14 +4646,14 @@ var require_jwa = /* @__PURE__ */ __commonJSMin(((exports, module) => {
4645
4646
  return function sign(thing, secret) {
4646
4647
  checkIsSecretKey(secret);
4647
4648
  thing = normalizeInput(thing);
4648
- var hmac = crypto$3.createHmac("sha" + bits, secret);
4649
+ var hmac = crypto$4.createHmac("sha" + bits, secret);
4649
4650
  return fromBase64((hmac.update(thing), hmac.digest("base64")));
4650
4651
  };
4651
4652
  }
4652
4653
  var bufferEqual;
4653
- var timingSafeEqual = "timingSafeEqual" in crypto$3 ? function timingSafeEqual(a, b) {
4654
+ var timingSafeEqual = "timingSafeEqual" in crypto$4 ? function timingSafeEqual(a, b) {
4654
4655
  if (a.byteLength !== b.byteLength) return false;
4655
- return crypto$3.timingSafeEqual(a, b);
4656
+ return crypto$4.timingSafeEqual(a, b);
4656
4657
  } : function timingSafeEqual(a, b) {
4657
4658
  if (!bufferEqual) bufferEqual = require_buffer_equal_constant_time();
4658
4659
  return bufferEqual(a, b);
@@ -4667,7 +4668,7 @@ var require_jwa = /* @__PURE__ */ __commonJSMin(((exports, module) => {
4667
4668
  return function sign(thing, privateKey) {
4668
4669
  checkIsPrivateKey(privateKey);
4669
4670
  thing = normalizeInput(thing);
4670
- var signer = crypto$3.createSign("RSA-SHA" + bits);
4671
+ var signer = crypto$4.createSign("RSA-SHA" + bits);
4671
4672
  return fromBase64((signer.update(thing), signer.sign(privateKey, "base64")));
4672
4673
  };
4673
4674
  }
@@ -4676,7 +4677,7 @@ var require_jwa = /* @__PURE__ */ __commonJSMin(((exports, module) => {
4676
4677
  checkIsPublicKey(publicKey);
4677
4678
  thing = normalizeInput(thing);
4678
4679
  signature = toBase64(signature);
4679
- var verifier = crypto$3.createVerify("RSA-SHA" + bits);
4680
+ var verifier = crypto$4.createVerify("RSA-SHA" + bits);
4680
4681
  verifier.update(thing);
4681
4682
  return verifier.verify(publicKey, signature, "base64");
4682
4683
  };
@@ -4685,11 +4686,11 @@ var require_jwa = /* @__PURE__ */ __commonJSMin(((exports, module) => {
4685
4686
  return function sign(thing, privateKey) {
4686
4687
  checkIsPrivateKey(privateKey);
4687
4688
  thing = normalizeInput(thing);
4688
- var signer = crypto$3.createSign("RSA-SHA" + bits);
4689
+ var signer = crypto$4.createSign("RSA-SHA" + bits);
4689
4690
  return fromBase64((signer.update(thing), signer.sign({
4690
4691
  key: privateKey,
4691
- padding: crypto$3.constants.RSA_PKCS1_PSS_PADDING,
4692
- saltLength: crypto$3.constants.RSA_PSS_SALTLEN_DIGEST
4692
+ padding: crypto$4.constants.RSA_PKCS1_PSS_PADDING,
4693
+ saltLength: crypto$4.constants.RSA_PSS_SALTLEN_DIGEST
4693
4694
  }, "base64")));
4694
4695
  };
4695
4696
  }
@@ -4698,12 +4699,12 @@ var require_jwa = /* @__PURE__ */ __commonJSMin(((exports, module) => {
4698
4699
  checkIsPublicKey(publicKey);
4699
4700
  thing = normalizeInput(thing);
4700
4701
  signature = toBase64(signature);
4701
- var verifier = crypto$3.createVerify("RSA-SHA" + bits);
4702
+ var verifier = crypto$4.createVerify("RSA-SHA" + bits);
4702
4703
  verifier.update(thing);
4703
4704
  return verifier.verify({
4704
4705
  key: publicKey,
4705
- padding: crypto$3.constants.RSA_PKCS1_PSS_PADDING,
4706
- saltLength: crypto$3.constants.RSA_PSS_SALTLEN_DIGEST
4706
+ padding: crypto$4.constants.RSA_PKCS1_PSS_PADDING,
4707
+ saltLength: crypto$4.constants.RSA_PSS_SALTLEN_DIGEST
4707
4708
  }, signature, "base64");
4708
4709
  };
4709
4710
  }
@@ -5001,7 +5002,7 @@ var require_urlsafe_base64_helper = /* @__PURE__ */ __commonJSMin(((exports, mod
5001
5002
  //#endregion
5002
5003
  //#region node_modules/.pnpm/web-push@3.6.7_supports-color@10.2.2/node_modules/web-push/src/vapid-helper.js
5003
5004
  var require_vapid_helper = /* @__PURE__ */ __commonJSMin(((exports, module) => {
5004
- var crypto$2 = __require("crypto");
5005
+ var crypto$3 = __require("crypto");
5005
5006
  var asn1 = require_asn1();
5006
5007
  var jws = require_jws();
5007
5008
  var { URL } = __require("url");
@@ -5031,7 +5032,7 @@ var require_vapid_helper = /* @__PURE__ */ __commonJSMin(((exports, module) => {
5031
5032
  }, "pem", { label: "EC PRIVATE KEY" });
5032
5033
  }
5033
5034
  function generateVAPIDKeys() {
5034
- const curve = crypto$2.createECDH("prime256v1");
5035
+ const curve = crypto$3.createECDH("prime256v1");
5035
5036
  curve.generateKeys();
5036
5037
  let publicKeyBuffer = curve.getPublicKey();
5037
5038
  let privateKeyBuffer = curve.getPrivateKey();
@@ -5161,7 +5162,7 @@ var require_vapid_helper = /* @__PURE__ */ __commonJSMin(((exports, module) => {
5161
5162
  //#endregion
5162
5163
  //#region node_modules/.pnpm/http_ece@1.2.0/node_modules/http_ece/ece.js
5163
5164
  var require_ece = /* @__PURE__ */ __commonJSMin(((exports, module) => {
5164
- var crypto$1 = __require("crypto");
5165
+ var crypto$2 = __require("crypto");
5165
5166
  var AES_GCM = "aes-128-gcm";
5166
5167
  var PAD_SIZE = {
5167
5168
  "aes128gcm": 1,
@@ -5186,7 +5187,7 @@ var require_ece = /* @__PURE__ */ __commonJSMin(((exports, module) => {
5186
5187
  return b;
5187
5188
  }
5188
5189
  function HMAC_hash(key, input) {
5189
- var hmac = crypto$1.createHmac("sha256", key);
5190
+ var hmac = crypto$2.createHmac("sha256", key);
5190
5191
  hmac.update(input);
5191
5192
  return hmac.digest();
5192
5193
  }
@@ -5390,7 +5391,7 @@ var require_ece = /* @__PURE__ */ __commonJSMin(((exports, module) => {
5390
5391
  function decryptRecord(key, counter, buffer, header, last) {
5391
5392
  keylog("decrypt", buffer);
5392
5393
  var nonce = generateNonce(key.nonce, counter);
5393
- var gcm = crypto$1.createDecipheriv(AES_GCM, key.key, nonce);
5394
+ var gcm = crypto$2.createDecipheriv(AES_GCM, key.key, nonce);
5394
5395
  gcm.setAuthTag(buffer.slice(buffer.length - TAG_LENGTH));
5395
5396
  var data = gcm.update(buffer.slice(0, buffer.length - TAG_LENGTH));
5396
5397
  data = Buffer.concat([data, gcm.final()]);
@@ -5440,7 +5441,7 @@ var require_ece = /* @__PURE__ */ __commonJSMin(((exports, module) => {
5440
5441
  keylog("encrypt", buffer);
5441
5442
  pad = pad || 0;
5442
5443
  var nonce = generateNonce(key.nonce, counter);
5443
- var gcm = crypto$1.createCipheriv(AES_GCM, key.key, nonce);
5444
+ var gcm = crypto$2.createCipheriv(AES_GCM, key.key, nonce);
5444
5445
  var ciphertext = [];
5445
5446
  var padSize = PAD_SIZE[header.version];
5446
5447
  var padding = Buffer.alloc(pad + padSize);
@@ -5492,7 +5493,7 @@ var require_ece = /* @__PURE__ */ __commonJSMin(((exports, module) => {
5492
5493
  function encrypt(buffer, params, keyLookupCallback) {
5493
5494
  if (!Buffer.isBuffer(buffer)) throw new Error("buffer argument must be a Buffer");
5494
5495
  var header = parseParams(params);
5495
- if (!header.salt) header.salt = crypto$1.randomBytes(KEY_LENGTH);
5496
+ if (!header.salt) header.salt = crypto$2.randomBytes(KEY_LENGTH);
5496
5497
  var result;
5497
5498
  if (header.version === "aes128gcm") {
5498
5499
  if (header.privateKey && !header.keyid) header.keyid = header.privateKey.getPublicKey();
@@ -5533,7 +5534,7 @@ var require_ece = /* @__PURE__ */ __commonJSMin(((exports, module) => {
5533
5534
  //#endregion
5534
5535
  //#region node_modules/.pnpm/web-push@3.6.7_supports-color@10.2.2/node_modules/web-push/src/encryption-helper.js
5535
5536
  var require_encryption_helper = /* @__PURE__ */ __commonJSMin(((exports, module) => {
5536
- var crypto = __require("crypto");
5537
+ var crypto$1 = __require("crypto");
5537
5538
  var ece = require_ece();
5538
5539
  var encrypt = function(userPublicKey, userAuth, payload, contentEncoding) {
5539
5540
  if (!userPublicKey) throw new Error("No user public key provided for encryption.");
@@ -5544,9 +5545,9 @@ var require_encryption_helper = /* @__PURE__ */ __commonJSMin(((exports, module)
5544
5545
  if (Buffer.from(userAuth, "base64url").length < 16) throw new Error("The subscription auth key should be at least 16 bytes long");
5545
5546
  if (typeof payload !== "string" && !Buffer.isBuffer(payload)) throw new Error("Payload must be either a string or a Node Buffer.");
5546
5547
  if (typeof payload === "string" || payload instanceof String) payload = Buffer.from(payload);
5547
- const localCurve = crypto.createECDH("prime256v1");
5548
+ const localCurve = crypto$1.createECDH("prime256v1");
5548
5549
  const localPublicKey = localCurve.generateKeys();
5549
- const salt = crypto.randomBytes(16).toString("base64url");
5550
+ const salt = crypto$1.randomBytes(16).toString("base64url");
5550
5551
  return {
5551
5552
  localPublicKey,
5552
5553
  salt,
@@ -6325,7 +6326,7 @@ var summaries = /* @__PURE__ */ new Map();
6325
6326
  var viewers = /* @__PURE__ */ new Map();
6326
6327
  /** Human-readable one-liner mined from an agent CLI's hook payload.
6327
6328
  * Claude's Stop hook carries the agent's actual final message
6328
- * (last_assistant_message); Codex's notify payload spells it
6329
+ * (last_assistant_message), as does Codex's Stop hook; the legacy notify payload spells it
6329
6330
  * last-assistant-message; Claude Notifications carry a type. Anything
6330
6331
  * else falls back to terminal scraping. */
6331
6332
  function summaryFromHookPayload(payload) {
@@ -6334,6 +6335,11 @@ function summaryFromHookPayload(payload) {
6334
6335
  const text = typeof p.last_assistant_message === "string" && p.last_assistant_message || typeof p["last-assistant-message"] === "string" && p["last-assistant-message"] || typeof p.agent_message === "string" && p.agent_message || "";
6335
6336
  if (text) return cleanSummary(text);
6336
6337
  if (typeof p.notification_type === "string") return NOTIFICATION_LABELS[p.notification_type];
6338
+ if (p.hook_event_name === "PermissionRequest") {
6339
+ const input = p.tool_input;
6340
+ const what = (input && typeof input.command === "string" ? input.command : "") || (typeof p.tool_name === "string" ? p.tool_name : "");
6341
+ return what ? cleanSummary(`Approve: ${what}`) : "Waiting for permission";
6342
+ }
6337
6343
  }
6338
6344
  var NOTIFICATION_LABELS = {
6339
6345
  permission_prompt: "Waiting for permission",
@@ -6442,7 +6448,7 @@ function publishChange(sessionId) {
6442
6448
  const row = get("SELECT workspace_id FROM sessions WHERE id = ?", sessionId);
6443
6449
  if (row?.workspace_id) {
6444
6450
  const workspaceId = row.workspace_id;
6445
- import("./_C8-SYmgW.js").then((m) => m.notifySessionsChanged(workspaceId));
6451
+ import("./_xZfpJdQE.js").then((m) => m.notifySessionsChanged(workspaceId));
6446
6452
  return;
6447
6453
  }
6448
6454
  publish("sessions.changed");
@@ -6451,22 +6457,81 @@ function publishChange(sessionId) {
6451
6457
  //#region src/server/agent-flags.ts
6452
6458
  /** Agent-state reporting via launch-time flags — nothing is written to the
6453
6459
  * workspace or the user's global config. Claude takes an inline settings
6454
- * JSON (--settings accepts a JSON string); Codex takes its notify command
6455
- * via `-c` (its turn-complete payload carries last-assistant-message).
6456
- * Grok, Cursor and Copilot expose no file-free hook mechanism, so their
6457
- * sessions get working/idle from pane activity (see scraper.ts) and
6458
- * nothing else — a stopped turn and a question look the same. */
6460
+ * JSON (--settings accepts a JSON string); Codex takes lifecycle hooks via
6461
+ * `-c` overrides, trusted through a `hooks.state` entry in the same
6462
+ * override layer (see codexHookFlags). Grok, Cursor and Copilot expose no
6463
+ * file-free hook mechanism, so their sessions get working/idle from pane
6464
+ * activity (see scraper.ts) and nothing else — a stopped turn and a
6465
+ * question look the same. */
6459
6466
  function stateCurl(state, reason) {
6460
6467
  const qs = `session=$WORK_SESSION_ID&state=${state}` + (reason ? `&reason=${reason}` : "");
6461
6468
  return `[ -n "$WORK_SESSION_ID" ] && curl -sf -m 3 -X POST "http://127.0.0.1:\${WORK_APP_PORT:-${config.appPort}}/api/agent-state?${qs}" -H 'content-type: application/json' --data-binary @- >/dev/null 2>&1; exit 0`;
6462
6469
  }
6463
6470
  /** Whether the agent says when it *starts* working, not just when it stops.
6464
- * Codex's notify only fires on turn-complete, so the screen is the only
6465
- * thing that can tell us it picked up again; Claude announces it, and
6466
- * believing the screen over that costs it the state its own hook just
6467
- * reported. */
6471
+ * Claude and Codex announce it through hooks; believing the screen over that
6472
+ * costs them the state their own hook just reported. */
6468
6473
  function reportsWorking(agent) {
6469
- return agentFamily(agent) === "claude";
6474
+ const family = agentFamily(agent);
6475
+ return family === "claude" || family === "codex";
6476
+ }
6477
+ /** Codex hook events → the state each reports. Same shape as Claude's:
6478
+ * a prompt or a tool call means working, Stop means the turn is done,
6479
+ * PermissionRequest means it is about to ask (fires just before the
6480
+ * approval prompt; PostToolUse clears it once the approved call has run,
6481
+ * or the next PreToolUse does if a reviewer auto-decided). */
6482
+ var CODEX_HOOKS = [
6483
+ ["UserPromptSubmit", "working"],
6484
+ ["PreToolUse", "working"],
6485
+ ["PostToolUse", "working"],
6486
+ [
6487
+ "PermissionRequest",
6488
+ "waiting",
6489
+ "attention"
6490
+ ],
6491
+ [
6492
+ "Stop",
6493
+ "waiting",
6494
+ "done"
6495
+ ]
6496
+ ];
6497
+ /** Codex only runs hooks it trusts. Trust is a hash of the normalized hook
6498
+ * kept in config (`hooks.state.<key>.trusted_hash`), and both the hooks and
6499
+ * that state are read from the `-c` override layer too — so the launch flags
6500
+ * can carry their own trust without touching ~/.codex/config.toml.
6501
+ * Mirrors codex-rs/hooks/src/engine/discovery.rs (hook_hash, hook_key,
6502
+ * normalized Command config: timeout defaults to 600, async false, None
6503
+ * fields omitted) and codex-rs/config/src/fingerprint.rs (sha256 of
6504
+ * key-sorted JSON). Verified against real trusted_hash entries. */
6505
+ function codexHookTrustHash(event, command) {
6506
+ const identity = {
6507
+ event_name: codexHookKeyLabel(event),
6508
+ hooks: [{
6509
+ async: false,
6510
+ command,
6511
+ timeout: 600,
6512
+ type: "command"
6513
+ }]
6514
+ };
6515
+ return "sha256:" + createHash("sha256").update(JSON.stringify(identity)).digest("hex");
6516
+ }
6517
+ /** `PermissionRequest` → `permission_request` (codex-rs/hooks/src/lib.rs). */
6518
+ function codexHookKeyLabel(event) {
6519
+ return event.replace(/([a-z])([A-Z])/g, "$1_$2").toLowerCase();
6520
+ }
6521
+ /** Synthetic path Codex gives the `-c` override layer when keying hook state. */
6522
+ var CODEX_SESSION_FLAGS_PATH = "/<session-flags>/config.toml";
6523
+ /** `-c` overrides that install work's state hooks in a Codex session. */
6524
+ function codexHookFlags() {
6525
+ const flags = [];
6526
+ const state = [];
6527
+ for (const [event, st, reason] of CODEX_HOOKS) {
6528
+ const command = stateCurl(st, reason);
6529
+ flags.push("-c", `hooks.${event}=[{hooks=[{type="command",command=${JSON.stringify(command)}}]}]`);
6530
+ const key = `${CODEX_SESSION_FLAGS_PATH}:${codexHookKeyLabel(event)}:0:0`;
6531
+ state.push(`${JSON.stringify(key)}={trusted_hash=${JSON.stringify(codexHookTrustHash(event, command))}}`);
6532
+ }
6533
+ flags.push("-c", `hooks.state={${state.join(",")}}`);
6534
+ return flags;
6470
6535
  }
6471
6536
  /** Family of an instance id (`claude2` → `claude`); flags and hooks are
6472
6537
  * per family, every numbered copy behaves the same. */
@@ -6488,12 +6553,7 @@ function agentLaunchFlags(agent) {
6488
6553
  Notification: hook("waiting", "attention")
6489
6554
  } })];
6490
6555
  }
6491
- if (family === "codex") return ["-c", `notify=[${[
6492
- "sh",
6493
- "-c",
6494
- `[ -n "$WORK_SESSION_ID" ] && curl -sf -m 3 -X POST "http://127.0.0.1:\${WORK_APP_PORT:-${config.appPort}}/api/agent-state?session=$WORK_SESSION_ID&state=waiting&reason=done" -H 'content-type: application/json' --data "$1" >/dev/null 2>&1; exit 0`,
6495
- "work-notify"
6496
- ].map((w) => JSON.stringify(w)).join(",")}]`];
6556
+ if (family === "codex") return codexHookFlags();
6497
6557
  return [];
6498
6558
  }
6499
6559
  //#endregion
@@ -0,0 +1,2 @@
1
+ import { f as notifySessionsChanged } from "./_DgDsZuoQ.js";
2
+ export { notifySessionsChanged };