@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.
- package/dist/{_BBDhdUuj.js → _8t6K8Jk8.js} +67 -67
- package/dist/{_BzEc7Y99.js → _D3qriis-.js} +4 -4
- package/dist/{_mSrLyFdO.js → _DgDsZuoQ.js} +101 -41
- package/dist/_xZfpJdQE.js +2 -0
- package/dist/index.mjs +397 -326
- package/dist/public/assets/{_eOSbQ2H52.js → _9aJgLz6G2.js} +1 -1
- package/dist/public/assets/_9aJgLz6G2.js.br +0 -0
- package/dist/public/assets/{_Dn9evgOf2.js → _AeL166wR2.js} +1 -1
- package/dist/public/assets/_AeL166wR2.js.br +0 -0
- package/dist/public/assets/{_Cn24gDaN.js → _B0h_gNbx.js} +1 -1
- package/dist/public/assets/_B0h_gNbx.js.br +0 -0
- package/dist/public/assets/{_Cimq_3st2.js → _B3VIvUTs2.js} +1 -1
- package/dist/public/assets/_B3VIvUTs2.js.br +0 -0
- package/dist/public/assets/{_Bk7LZElr2.js → _B3wjms9s2.js} +1 -1
- package/dist/public/assets/_B3wjms9s2.js.br +0 -0
- package/dist/public/assets/{_De2MbV4-.js → _B5mDTFiX.js} +1 -1
- package/dist/public/assets/_B5mDTFiX.js.br +0 -0
- package/dist/public/assets/{_By_xPS-p.js → _BEEgRpqj.js} +1 -1
- package/dist/public/assets/_BEEgRpqj.js.br +0 -0
- package/dist/public/assets/{_Dk90j4eO.js → _BFfBgn79.js} +1 -1
- package/dist/public/assets/_BFfBgn79.js.br +0 -0
- package/dist/public/assets/{_DEkiGmgs2.js → _BKRausc72.js} +1 -1
- package/dist/public/assets/_BKRausc72.js.br +0 -0
- package/dist/public/assets/{_DMbI3C312.js → _BPH6VN8T2.js} +1 -1
- package/dist/public/assets/_BPH6VN8T2.js.br +0 -0
- package/dist/public/assets/{_B2Wh9q7i2.js → _BPW0wOMI2.js} +1 -1
- package/dist/public/assets/_BPW0wOMI2.js.br +0 -0
- package/dist/public/assets/{_C_KMHM_B.js → _BPmmCSLY.js} +1 -1
- package/dist/public/assets/_BPmmCSLY.js.br +0 -0
- package/dist/public/assets/{_z9xnkyG0.js → _BR_6IGfk.js} +1 -1
- package/dist/public/assets/_BR_6IGfk.js.br +0 -0
- package/dist/public/assets/{_h65AGMTQ2.js → _BUeHx4zC2.js} +1 -1
- package/dist/public/assets/_BUeHx4zC2.js.br +0 -0
- package/dist/public/assets/{_Bn42mWko.js → _BUteNftu.js} +1 -1
- package/dist/public/assets/_BUteNftu.js.br +0 -0
- package/dist/public/assets/{_B2XlFtZA.js → _BYrRgI_G.js} +1 -1
- package/dist/public/assets/_BYrRgI_G.js.br +0 -0
- package/dist/public/assets/{_AjJFGKIO.js → _BZK8bxUc.js} +1 -1
- package/dist/public/assets/_BZK8bxUc.js.br +0 -0
- package/dist/public/assets/{_C_hrnmAR.js → _BZNMfrgb.js} +1 -1
- package/dist/public/assets/_BZNMfrgb.js.br +0 -0
- package/dist/public/assets/{_C0gLchFg2.js → _B_OHURbh2.js} +1 -1
- package/dist/public/assets/_B_OHURbh2.js.br +0 -0
- package/dist/public/assets/{_B8QdoRxF.js → _Bd-WyHvg.js} +1 -1
- package/dist/public/assets/_Bd-WyHvg.js.br +0 -0
- package/dist/public/assets/{_BtnTWv2c.js → _BejV602Y.js} +1 -1
- package/dist/public/assets/_BejV602Y.js.br +0 -0
- package/dist/public/assets/{_CyEK8RLH.js → _BltuSqY6.js} +1 -1
- package/dist/public/assets/_BltuSqY6.js.br +0 -0
- package/dist/public/assets/{_Cl5u4DlE.js → _Bn6Hn06S.js} +1 -1
- package/dist/public/assets/_Bn6Hn06S.js.br +0 -0
- package/dist/public/assets/{_BJbOGqL2.js → _BqfMkwYX.js} +1 -1
- package/dist/public/assets/_BqfMkwYX.js.br +0 -0
- package/dist/public/assets/{_BG91Ur7C.js → _BqrygBOe.js} +1 -1
- package/dist/public/assets/{_C8JrL8ZU.js → _BztBrnhM.js} +1 -1
- package/dist/public/assets/_BztBrnhM.js.br +0 -0
- package/dist/public/assets/{_D13hLO2N2.js → _C-LtCarQ2.js} +1 -1
- package/dist/public/assets/{_DbKE1MvW.js → _C-wce-RA.js} +1 -1
- package/dist/public/assets/_C-wce-RA.js.br +0 -0
- package/dist/public/assets/{_DNT9FflM.js → _C6jdreqj.js} +1 -1
- package/dist/public/assets/_C6jdreqj.js.br +0 -0
- package/dist/public/assets/{_DdX84yEG.js → _CGVLhh2k.js} +1 -1
- package/dist/public/assets/_CGVLhh2k.js.br +0 -0
- package/dist/public/assets/{_C4cnPJZt.js → _CLGWdoAJ.js} +1 -1
- package/dist/public/assets/_CLGWdoAJ.js.br +0 -0
- package/dist/public/assets/{_CnWPkpG6.js → _COmAhQWL.js} +1 -1
- package/dist/public/assets/_COmAhQWL.js.br +0 -0
- package/dist/public/assets/{_CyUpyj0-.js → _CS1j3Hb2.js} +1 -1
- package/dist/public/assets/_CS1j3Hb2.js.br +0 -0
- package/dist/public/assets/{_DPBnSJ7J.js → _CTdFL4wj.js} +1 -1
- package/dist/public/assets/_CTdFL4wj.js.br +0 -0
- package/dist/public/assets/{_BaW3VCxs2.js → _CWVKprFe2.js} +1 -1
- package/dist/public/assets/_CWVKprFe2.js.br +0 -0
- package/dist/public/assets/{_PL2w-xvr2.js → _CXSLFN1Q2.js} +1 -1
- package/dist/public/assets/_CXSLFN1Q2.js.br +0 -0
- package/dist/public/assets/{_DaYRBUL-.js → _C_9OeUA2.js} +1 -1
- package/dist/public/assets/_C_9OeUA2.js.br +0 -0
- package/dist/public/assets/{_hsoShTMK.js → _CbgTB_-a.js} +1 -1
- package/dist/public/assets/_CbgTB_-a.js.br +0 -0
- package/dist/public/assets/{_RfX8IpFo.js → _CdHoxy6P.js} +1 -1
- package/dist/public/assets/_CdHoxy6P.js.br +0 -0
- package/dist/public/assets/{_Dqp3F2Ex.js → _CeVU1yJL.js} +1 -1
- package/dist/public/assets/_CeVU1yJL.js.br +0 -0
- package/dist/public/assets/{_y21Miw0G2.js → _CgENI0zF2.js} +1 -1
- package/dist/public/assets/_CgENI0zF2.js.br +0 -0
- package/dist/public/assets/{_C-zOao0B2.js → _CgwQS6LN2.js} +1 -1
- package/dist/public/assets/_CgwQS6LN2.js.br +0 -0
- package/dist/public/assets/_CiElF6r4.js +85 -0
- package/dist/public/assets/_CiElF6r4.js.br +0 -0
- package/dist/public/assets/{_CaQPDPmE.js → _Cn0DEemU.js} +1 -1
- package/dist/public/assets/_Cn0DEemU.js.br +0 -0
- package/dist/public/assets/{_Dh4U5ZBy2.js → _CpnXaqgd2.js} +1 -1
- package/dist/public/assets/_CpnXaqgd2.js.br +0 -0
- package/dist/public/assets/{_CGxB7jfP2.js → _CvMvIBy42.js} +1 -1
- package/dist/public/assets/_CvMvIBy42.js.br +0 -0
- package/dist/public/assets/{_CANbMbX3.js → _CzxBqeDO.js} +1 -1
- package/dist/public/assets/_CzxBqeDO.js.br +0 -0
- package/dist/public/assets/{_Vyuu16Ad.js → _D2vmNrtA.js} +1 -1
- package/dist/public/assets/_D2vmNrtA.js.br +0 -0
- package/dist/public/assets/{_D0_YGa2m.js → _DAun3Lt7.js} +1 -1
- package/dist/public/assets/_DAun3Lt7.js.br +0 -0
- package/dist/public/assets/{_DcOH-3Zl2.js → _DBiZo1op2.js} +1 -1
- package/dist/public/assets/{_Be6zDaw_2.js → _DNdrj0-M2.js} +1 -1
- package/dist/public/assets/_DNdrj0-M2.js.br +0 -0
- package/dist/public/assets/{_D3U77twm2.js → _DPDIk03W2.js} +1 -1
- package/dist/public/assets/_DPDIk03W2.js.br +0 -0
- package/dist/public/assets/{_CNjJeI_E2.js → _DSg_vc6H2.js} +1 -1
- package/dist/public/assets/_DSg_vc6H2.js.br +0 -0
- package/dist/public/assets/{_D4aBfTEq2.js → _DTSUTR0_2.js} +1 -1
- package/dist/public/assets/_DTSUTR0_2.js.br +0 -0
- package/dist/public/assets/{_uoCfxD-5.js → _DToVjT46.js} +1 -1
- package/dist/public/assets/_DToVjT46.js.br +0 -0
- package/dist/public/assets/{_nSzaoNgm2.js → _DWdZCyBL2.js} +1 -1
- package/dist/public/assets/_DWdZCyBL2.js.br +0 -0
- package/dist/public/assets/{_DIrrBSY3.js → _DXCHOWYL.js} +1 -1
- package/dist/public/assets/_DXCHOWYL.js.br +0 -0
- package/dist/public/assets/{_CObWod2f2.js → _DZss8Wq02.js} +1 -1
- package/dist/public/assets/_DZss8Wq02.js.br +0 -0
- package/dist/public/assets/{_CQ1se5Ph.js → _DbEPPsY1.js} +1 -1
- package/dist/public/assets/_DbEPPsY1.js.br +0 -0
- package/dist/public/assets/{_BVaiw33j.js → _Dbf-xJ6k.js} +1 -1
- package/dist/public/assets/_Dbf-xJ6k.js.br +0 -0
- package/dist/public/assets/{_B0mlTNYN.js → _Dcav7tzL.js} +6 -6
- package/dist/public/assets/_Dcav7tzL.js.br +0 -0
- package/dist/public/assets/{_xQNWoj97.js → _DeMAtQzd.js} +1 -1
- package/dist/public/assets/_DeMAtQzd.js.br +0 -0
- package/dist/public/assets/{_BTIiA2Aj.js → _Dp1TBNWN.js} +1 -1
- package/dist/public/assets/_Dp1TBNWN.js.br +0 -0
- package/dist/public/assets/{_9JFMnVkT.js → _DqBuHT5A.js} +1 -1
- package/dist/public/assets/_DqBuHT5A.js.br +0 -0
- package/dist/public/assets/{_DHJUTBX4.js → _DtE0g-o1.js} +1 -1
- package/dist/public/assets/_DtE0g-o1.js.br +0 -0
- package/dist/public/assets/{_CN7jdIqu.js → _Du4JDj5_.js} +1 -1
- package/dist/public/assets/_Du4JDj5_.js.br +0 -0
- package/dist/public/assets/{_DohOwerT.js → _DwNswmCf.js} +1 -1
- package/dist/public/assets/_DwNswmCf.js.br +0 -0
- package/dist/public/assets/{_cuvR6O2V.js → _Ek1T1FMw.js} +1 -1
- package/dist/public/assets/_Ek1T1FMw.js.br +0 -0
- package/dist/public/assets/{_QdFvZh29.js → _HO-Qb8pn.js} +1 -1
- package/dist/public/assets/_HO-Qb8pn.js.br +0 -0
- package/dist/public/assets/{__fELRce2.js → _Lot9I7Im.js} +1 -1
- package/dist/public/assets/_Lot9I7Im.js.br +0 -0
- package/dist/public/assets/{_7eu3vqOe.js → _QQHXmR7d.js} +1 -1
- package/dist/public/assets/_QQHXmR7d.js.br +0 -0
- package/dist/public/assets/{_Yor3dkCs.js → _USmNZPRb.js} +1 -1
- package/dist/public/assets/_USmNZPRb.js.br +0 -0
- package/dist/public/assets/{_DlipybEX.js → _UgQ3KVU7.js} +1 -1
- package/dist/public/assets/_UgQ3KVU7.js.br +0 -0
- package/dist/public/assets/{_DpiQNDSt.js → __DTZmGl8.js} +1 -1
- package/dist/public/assets/__DTZmGl8.js.br +0 -0
- package/dist/public/assets/{_CqASoXOX.js → _dAXKSDYL.js} +1 -1
- package/dist/public/assets/_dAXKSDYL.js.br +0 -0
- package/dist/public/assets/{_Dzckria-2.js → _uyFxI_FF2.js} +1 -1
- package/dist/public/assets/_uyFxI_FF2.js.br +0 -0
- package/dist/public/assets/app-page-Bv2S_Tip.css +1 -0
- package/dist/public/assets/app-page-Bv2S_Tip.css.br +0 -0
- package/dist/public/assets/diff-view-rtQ04a8n.css +1 -0
- package/dist/public/assets/diff-view-rtQ04a8n.css.br +0 -0
- package/dist/public/assets/new-ECSvnCXB.js +1 -0
- package/dist/public/assets/settings-ECSvnCXB.js +1 -0
- package/dist/public/assets/w-ECSvnCXB.js +1 -0
- package/dist/public/assets/w._-CEJj3Icr.js +1 -0
- package/dist/public/assets/w._-ECSvnCXB.js +1 -0
- package/package.json +1 -1
- package/dist/_C8-SYmgW.js +0 -2
- package/dist/public/assets/_7eu3vqOe.js.br +0 -0
- package/dist/public/assets/_9JFMnVkT.js.br +0 -0
- package/dist/public/assets/_AjJFGKIO.js.br +0 -0
- package/dist/public/assets/_B0mlTNYN.js.br +0 -0
- package/dist/public/assets/_B2Wh9q7i2.js.br +0 -0
- package/dist/public/assets/_B2XlFtZA.js.br +0 -0
- package/dist/public/assets/_B8QdoRxF.js.br +0 -0
- package/dist/public/assets/_BJbOGqL2.js.br +0 -0
- package/dist/public/assets/_BTIiA2Aj.js.br +0 -0
- package/dist/public/assets/_BVaiw33j.js.br +0 -0
- package/dist/public/assets/_BaW3VCxs2.js.br +0 -0
- package/dist/public/assets/_Be6zDaw_2.js.br +0 -0
- package/dist/public/assets/_Bk7LZElr2.js.br +0 -0
- package/dist/public/assets/_Bn42mWko.js.br +0 -0
- package/dist/public/assets/_BtnTWv2c.js.br +0 -0
- package/dist/public/assets/_By_xPS-p.js.br +0 -0
- package/dist/public/assets/_C-zOao0B2.js.br +0 -0
- package/dist/public/assets/_C0gLchFg2.js.br +0 -0
- package/dist/public/assets/_C4cnPJZt.js.br +0 -0
- package/dist/public/assets/_C8JrL8ZU.js.br +0 -0
- package/dist/public/assets/_CANbMbX3.js.br +0 -0
- package/dist/public/assets/_CGxB7jfP2.js.br +0 -0
- package/dist/public/assets/_CI-lBiRq.js +0 -85
- package/dist/public/assets/_CI-lBiRq.js.br +0 -0
- package/dist/public/assets/_CN7jdIqu.js.br +0 -0
- package/dist/public/assets/_CNjJeI_E2.js.br +0 -0
- package/dist/public/assets/_CObWod2f2.js.br +0 -0
- package/dist/public/assets/_CQ1se5Ph.js.br +0 -0
- package/dist/public/assets/_C_KMHM_B.js.br +0 -0
- package/dist/public/assets/_C_hrnmAR.js.br +0 -0
- package/dist/public/assets/_CaQPDPmE.js.br +0 -0
- package/dist/public/assets/_Cimq_3st2.js.br +0 -0
- package/dist/public/assets/_Cl5u4DlE.js.br +0 -0
- package/dist/public/assets/_Cn24gDaN.js.br +0 -0
- package/dist/public/assets/_CnWPkpG6.js.br +0 -0
- package/dist/public/assets/_CqASoXOX.js.br +0 -0
- package/dist/public/assets/_CyEK8RLH.js.br +0 -0
- package/dist/public/assets/_CyUpyj0-.js.br +0 -0
- package/dist/public/assets/_D0_YGa2m.js.br +0 -0
- package/dist/public/assets/_D3U77twm2.js.br +0 -0
- package/dist/public/assets/_D4aBfTEq2.js.br +0 -0
- package/dist/public/assets/_DEkiGmgs2.js.br +0 -0
- package/dist/public/assets/_DHJUTBX4.js.br +0 -0
- package/dist/public/assets/_DIrrBSY3.js.br +0 -0
- package/dist/public/assets/_DMbI3C312.js.br +0 -0
- package/dist/public/assets/_DNT9FflM.js.br +0 -0
- package/dist/public/assets/_DPBnSJ7J.js.br +0 -0
- package/dist/public/assets/_DaYRBUL-.js.br +0 -0
- package/dist/public/assets/_DbKE1MvW.js.br +0 -0
- package/dist/public/assets/_DdX84yEG.js.br +0 -0
- package/dist/public/assets/_De2MbV4-.js.br +0 -0
- package/dist/public/assets/_Dh4U5ZBy2.js.br +0 -0
- package/dist/public/assets/_Dk90j4eO.js.br +0 -0
- package/dist/public/assets/_DlipybEX.js.br +0 -0
- package/dist/public/assets/_Dn9evgOf2.js.br +0 -0
- package/dist/public/assets/_DohOwerT.js.br +0 -0
- package/dist/public/assets/_DpiQNDSt.js.br +0 -0
- package/dist/public/assets/_Dqp3F2Ex.js.br +0 -0
- package/dist/public/assets/_Dzckria-2.js.br +0 -0
- package/dist/public/assets/_PL2w-xvr2.js.br +0 -0
- package/dist/public/assets/_QdFvZh29.js.br +0 -0
- package/dist/public/assets/_RfX8IpFo.js.br +0 -0
- package/dist/public/assets/_Vyuu16Ad.js.br +0 -0
- package/dist/public/assets/_Yor3dkCs.js.br +0 -0
- package/dist/public/assets/__fELRce2.js.br +0 -0
- package/dist/public/assets/_cuvR6O2V.js.br +0 -0
- package/dist/public/assets/_eOSbQ2H52.js.br +0 -0
- package/dist/public/assets/_h65AGMTQ2.js.br +0 -0
- package/dist/public/assets/_hsoShTMK.js.br +0 -0
- package/dist/public/assets/_nSzaoNgm2.js.br +0 -0
- package/dist/public/assets/_uoCfxD-5.js.br +0 -0
- package/dist/public/assets/_xQNWoj97.js.br +0 -0
- package/dist/public/assets/_y21Miw0G2.js.br +0 -0
- package/dist/public/assets/_z9xnkyG0.js.br +0 -0
- package/dist/public/assets/app-page-BFosX16q.css +0 -1
- package/dist/public/assets/app-page-BFosX16q.css.br +0 -0
- package/dist/public/assets/diff-view-DjZg0WLz.css +0 -1
- package/dist/public/assets/diff-view-DjZg0WLz.css.br +0 -0
- package/dist/public/assets/new-CMpE7Au8.js +0 -1
- package/dist/public/assets/settings-CMpE7Au8.js +0 -1
- package/dist/public/assets/w-CMpE7Au8.js +0 -1
- package/dist/public/assets/w._-BaiMToPS.js +0 -1
- 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$
|
|
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$
|
|
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$
|
|
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$
|
|
4654
|
+
var timingSafeEqual = "timingSafeEqual" in crypto$4 ? function timingSafeEqual(a, b) {
|
|
4654
4655
|
if (a.byteLength !== b.byteLength) return false;
|
|
4655
|
-
return crypto$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
4692
|
-
saltLength: crypto$
|
|
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$
|
|
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$
|
|
4706
|
-
saltLength: crypto$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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)
|
|
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("./
|
|
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
|
|
6455
|
-
*
|
|
6456
|
-
* Grok, Cursor and Copilot expose no
|
|
6457
|
-
* sessions get working/idle from pane
|
|
6458
|
-
* nothing else — a stopped turn and a
|
|
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
|
|
6465
|
-
*
|
|
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
|
-
|
|
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
|
|
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
|