@dylanpiercey/work 0.0.69 → 0.0.70
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/{_BzEc7Y99.js → _AOPS87VY.js} +2 -2
- package/dist/{_BBDhdUuj.js → _B-dzDH9Z.js} +42 -42
- package/dist/{_mSrLyFdO.js → _DgDsZuoQ.js} +101 -41
- package/dist/_xZfpJdQE.js +2 -0
- package/dist/index.mjs +139 -139
- package/dist/public/assets/{_Bk7LZElr2.js → _2jwfRZNX2.js} +1 -1
- package/dist/public/assets/_2jwfRZNX2.js.br +0 -0
- package/dist/public/assets/{_Vyuu16Ad.js → _4Srbdaf8.js} +1 -1
- package/dist/public/assets/_4Srbdaf8.js.br +0 -0
- package/dist/public/assets/{_D3U77twm2.js → _B1dK1Qzq2.js} +1 -1
- package/dist/public/assets/_B1dK1Qzq2.js.br +0 -0
- package/dist/public/assets/{_DohOwerT.js → _B41uLDvj.js} +1 -1
- package/dist/public/assets/_B41uLDvj.js.br +0 -0
- package/dist/public/assets/{_y21Miw0G2.js → _B7R_FSi52.js} +1 -1
- package/dist/public/assets/_B7R_FSi52.js.br +0 -0
- package/dist/public/assets/{_C0gLchFg2.js → _BM3WaJrl2.js} +1 -1
- package/dist/public/assets/_BM3WaJrl2.js.br +0 -0
- package/dist/public/assets/{_B2XlFtZA.js → _BRtDdwZC.js} +1 -1
- package/dist/public/assets/_BRtDdwZC.js.br +0 -0
- package/dist/public/assets/{_QdFvZh29.js → _BUuMdUVD.js} +1 -1
- package/dist/public/assets/_BUuMdUVD.js.br +0 -0
- package/dist/public/assets/{_Dzckria-2.js → _BVOP1Gxw2.js} +1 -1
- package/dist/public/assets/_BVOP1Gxw2.js.br +0 -0
- package/dist/public/assets/{_CNjJeI_E2.js → _B_hrJVb02.js} +1 -1
- package/dist/public/assets/_B_hrJVb02.js.br +0 -0
- package/dist/public/assets/{_DdX84yEG.js → _BhaVokkI.js} +1 -1
- package/dist/public/assets/_BhaVokkI.js.br +0 -0
- package/dist/public/assets/{_DcOH-3Zl2.js → _BnGCBcwF2.js} +1 -1
- package/dist/public/assets/{_7eu3vqOe.js → _BpwxxOzh.js} +1 -1
- package/dist/public/assets/_BpwxxOzh.js.br +0 -0
- package/dist/public/assets/{_cuvR6O2V.js → _BqzmoFMM.js} +1 -1
- package/dist/public/assets/_BqzmoFMM.js.br +0 -0
- package/dist/public/assets/{_CyEK8RLH.js → _BriDrk1l.js} +1 -1
- package/dist/public/assets/_BriDrk1l.js.br +0 -0
- package/dist/public/assets/{_CnWPkpG6.js → _BsZkEJaX.js} +1 -1
- package/dist/public/assets/_BsZkEJaX.js.br +0 -0
- package/dist/public/assets/{_Dk90j4eO.js → _C09f6XJ4.js} +1 -1
- package/dist/public/assets/_C09f6XJ4.js.br +0 -0
- package/dist/public/assets/{_C_hrnmAR.js → _C178aaRj.js} +1 -1
- package/dist/public/assets/_C178aaRj.js.br +0 -0
- package/dist/public/assets/{_BVaiw33j.js → _C5McqdVq.js} +1 -1
- package/dist/public/assets/_C5McqdVq.js.br +0 -0
- package/dist/public/assets/{_DPBnSJ7J.js → _C8xwneiR.js} +1 -1
- package/dist/public/assets/_C8xwneiR.js.br +0 -0
- package/dist/public/assets/{_hsoShTMK.js → _CCwzIksI.js} +1 -1
- package/dist/public/assets/_CCwzIksI.js.br +0 -0
- package/dist/public/assets/{_h65AGMTQ2.js → _CDrCRgYz2.js} +1 -1
- package/dist/public/assets/_CDrCRgYz2.js.br +0 -0
- package/dist/public/assets/{_CqASoXOX.js → _CE_OuXoU.js} +1 -1
- package/dist/public/assets/_CE_OuXoU.js.br +0 -0
- package/dist/public/assets/{_nSzaoNgm2.js → _CF4WUrOg2.js} +1 -1
- package/dist/public/assets/_CF4WUrOg2.js.br +0 -0
- package/dist/public/assets/{_BG91Ur7C.js → _CN37KCcd.js} +1 -1
- package/dist/public/assets/{_C-zOao0B2.js → _CP9QfGt02.js} +1 -1
- package/dist/public/assets/_CP9QfGt02.js.br +0 -0
- package/dist/public/assets/{_Dn9evgOf2.js → _CX7KVAVC2.js} +1 -1
- package/dist/public/assets/_CX7KVAVC2.js.br +0 -0
- package/dist/public/assets/{_DpiQNDSt.js → _CZAtZHwK.js} +1 -1
- package/dist/public/assets/_CZAtZHwK.js.br +0 -0
- package/dist/public/assets/{_CObWod2f2.js → _CZSK2PpM2.js} +1 -1
- package/dist/public/assets/_CZSK2PpM2.js.br +0 -0
- package/dist/public/assets/{_Cn24gDaN.js → _CcaAXEPy.js} +1 -1
- package/dist/public/assets/_CcaAXEPy.js.br +0 -0
- package/dist/public/assets/{_D13hLO2N2.js → _Ce5PUr__2.js} +1 -1
- package/dist/public/assets/{_Yor3dkCs.js → _ChzC-M8b.js} +1 -1
- package/dist/public/assets/_ChzC-M8b.js.br +0 -0
- package/dist/public/assets/{_CQ1se5Ph.js → _CieMd70P.js} +1 -1
- package/dist/public/assets/_CieMd70P.js.br +0 -0
- package/dist/public/assets/{_CI-lBiRq.js → _CktwGNoV.js} +3 -3
- package/dist/public/assets/_CktwGNoV.js.br +0 -0
- package/dist/public/assets/{_DaYRBUL-.js → _Cnkj8G8x.js} +1 -1
- package/dist/public/assets/_Cnkj8G8x.js.br +0 -0
- package/dist/public/assets/{_CaQPDPmE.js → _CphuLRQC.js} +1 -1
- package/dist/public/assets/_CphuLRQC.js.br +0 -0
- package/dist/public/assets/{_RfX8IpFo.js → _CxfSIWfr.js} +1 -1
- package/dist/public/assets/_CxfSIWfr.js.br +0 -0
- package/dist/public/assets/{_Be6zDaw_2.js → _D1ZMPYoI2.js} +1 -1
- package/dist/public/assets/_D1ZMPYoI2.js.br +0 -0
- package/dist/public/assets/{__fELRce2.js → _D5nI5TU0.js} +1 -1
- package/dist/public/assets/_D5nI5TU0.js.br +0 -0
- package/dist/public/assets/{_AjJFGKIO.js → _D70dHsK5.js} +1 -1
- package/dist/public/assets/_D70dHsK5.js.br +0 -0
- package/dist/public/assets/{_C_KMHM_B.js → _DBKHnCnH.js} +1 -1
- package/dist/public/assets/_DBKHnCnH.js.br +0 -0
- package/dist/public/assets/{_uoCfxD-5.js → _DFXWJj8u.js} +1 -1
- package/dist/public/assets/_DFXWJj8u.js.br +0 -0
- package/dist/public/assets/{_C4cnPJZt.js → _DIIVUEO6.js} +1 -1
- package/dist/public/assets/_DIIVUEO6.js.br +0 -0
- package/dist/public/assets/{_CyUpyj0-.js → _DJSAaBeq.js} +1 -1
- package/dist/public/assets/_DJSAaBeq.js.br +0 -0
- package/dist/public/assets/{_DHJUTBX4.js → _DK9AWQX8.js} +1 -1
- package/dist/public/assets/_DK9AWQX8.js.br +0 -0
- package/dist/public/assets/{_By_xPS-p.js → _DP-0321c.js} +1 -1
- package/dist/public/assets/_DP-0321c.js.br +0 -0
- package/dist/public/assets/{_Cimq_3st2.js → _DQjgTNLT2.js} +1 -1
- package/dist/public/assets/_DQjgTNLT2.js.br +0 -0
- package/dist/public/assets/{_Cl5u4DlE.js → _DRzPr12K.js} +1 -1
- package/dist/public/assets/_DRzPr12K.js.br +0 -0
- package/dist/public/assets/{_DbKE1MvW.js → _DSW7pXqz.js} +1 -1
- package/dist/public/assets/_DSW7pXqz.js.br +0 -0
- package/dist/public/assets/{_BtnTWv2c.js → _DThR70Xq.js} +1 -1
- package/dist/public/assets/_DThR70Xq.js.br +0 -0
- package/dist/public/assets/{_B0mlTNYN.js → _De1DhN-1.js} +5 -5
- package/dist/public/assets/_De1DhN-1.js.br +0 -0
- package/dist/public/assets/{_B8QdoRxF.js → _DeFFMAX_.js} +1 -1
- package/dist/public/assets/_DeFFMAX_.js.br +0 -0
- package/dist/public/assets/{_eOSbQ2H52.js → _Dg2DUGem2.js} +1 -1
- package/dist/public/assets/_Dg2DUGem2.js.br +0 -0
- package/dist/public/assets/{_CGxB7jfP2.js → _DgW7RRes2.js} +1 -1
- package/dist/public/assets/_DgW7RRes2.js.br +0 -0
- package/dist/public/assets/{_z9xnkyG0.js → _DhRqr_Rq.js} +1 -1
- package/dist/public/assets/_DhRqr_Rq.js.br +0 -0
- package/dist/public/assets/{_DNT9FflM.js → _Dig0hTtr.js} +1 -1
- package/dist/public/assets/_Dig0hTtr.js.br +0 -0
- package/dist/public/assets/{_B2Wh9q7i2.js → _DkIPVGH_2.js} +1 -1
- package/dist/public/assets/_DkIPVGH_2.js.br +0 -0
- package/dist/public/assets/{_DMbI3C312.js → _DoD7JLuh2.js} +1 -1
- package/dist/public/assets/_DoD7JLuh2.js.br +0 -0
- package/dist/public/assets/{_DIrrBSY3.js → _Dph0mXCv.js} +1 -1
- package/dist/public/assets/_Dph0mXCv.js.br +0 -0
- package/dist/public/assets/{_De2MbV4-.js → _DsU-Nm-J.js} +1 -1
- package/dist/public/assets/_DsU-Nm-J.js.br +0 -0
- package/dist/public/assets/{_Bn42mWko.js → _DsxkxJ9M.js} +1 -1
- package/dist/public/assets/_DsxkxJ9M.js.br +0 -0
- package/dist/public/assets/{_Dh4U5ZBy2.js → _DwMRIbNQ2.js} +1 -1
- package/dist/public/assets/_DwMRIbNQ2.js.br +0 -0
- package/dist/public/assets/{_xQNWoj97.js → _IoBnaDj6.js} +1 -1
- package/dist/public/assets/_IoBnaDj6.js.br +0 -0
- package/dist/public/assets/{_CN7jdIqu.js → _MFSKg2Wj.js} +1 -1
- package/dist/public/assets/_MFSKg2Wj.js.br +0 -0
- package/dist/public/assets/{_PL2w-xvr2.js → _NUfAwX-92.js} +1 -1
- package/dist/public/assets/_NUfAwX-92.js.br +0 -0
- package/dist/public/assets/{_C8JrL8ZU.js → _SYogbY_o.js} +1 -1
- package/dist/public/assets/_SYogbY_o.js.br +0 -0
- package/dist/public/assets/{_D4aBfTEq2.js → _Ve3NFPam2.js} +1 -1
- package/dist/public/assets/_Ve3NFPam2.js.br +0 -0
- package/dist/public/assets/{_D0_YGa2m.js → _astyk4W8.js} +1 -1
- package/dist/public/assets/_astyk4W8.js.br +0 -0
- package/dist/public/assets/{_BTIiA2Aj.js → _dfXi0jTI.js} +1 -1
- package/dist/public/assets/_dfXi0jTI.js.br +0 -0
- package/dist/public/assets/{_DEkiGmgs2.js → _eH0Yg3S22.js} +1 -1
- package/dist/public/assets/_eH0Yg3S22.js.br +0 -0
- package/dist/public/assets/{_9JFMnVkT.js → _okxblAux.js} +1 -1
- package/dist/public/assets/_okxblAux.js.br +0 -0
- package/dist/public/assets/{_DlipybEX.js → _sRXHGNUn.js} +1 -1
- package/dist/public/assets/_sRXHGNUn.js.br +0 -0
- package/dist/public/assets/{_BJbOGqL2.js → _uCHmU2W8.js} +1 -1
- package/dist/public/assets/_uCHmU2W8.js.br +0 -0
- package/dist/public/assets/{_BaW3VCxs2.js → _vJB03LvX2.js} +1 -1
- package/dist/public/assets/_vJB03LvX2.js.br +0 -0
- package/dist/public/assets/{_CANbMbX3.js → _vW-7Ai-v.js} +1 -1
- package/dist/public/assets/_vW-7Ai-v.js.br +0 -0
- package/dist/public/assets/{_Dqp3F2Ex.js → _yaHB4Z8B.js} +1 -1
- package/dist/public/assets/_yaHB4Z8B.js.br +0 -0
- package/dist/public/assets/{app-page-BFosX16q.css → app-page-B-QPv6NA.css} +1 -1
- package/dist/public/assets/app-page-B-QPv6NA.css.br +0 -0
- package/dist/public/assets/{diff-view-DjZg0WLz.css → diff-view-DM1slFkP.css} +1 -1
- package/dist/public/assets/diff-view-DM1slFkP.css.br +0 -0
- package/dist/public/assets/new-CxcQDhex.js +1 -0
- package/dist/public/assets/settings-CxcQDhex.js +1 -0
- package/dist/public/assets/w-CxcQDhex.js +1 -0
- package/dist/public/assets/w._-CuOk-xxd.js +1 -0
- package/dist/public/assets/w._-CxcQDhex.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.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.br +0 -0
- 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
|
@@ -2149,8 +2149,8 @@ var toast_default = _template("y", (input) => {
|
|
|
2149
2149
|
});
|
|
2150
2150
|
_resume_branch($scope0_id);
|
|
2151
2151
|
});
|
|
2152
|
-
var sectionCount = "
|
|
2153
|
-
var row = "
|
|
2152
|
+
var sectionCount = "_br _F _G";
|
|
2153
|
+
var row = "_bC _bu";
|
|
2154
2154
|
var iconBtn = "_X _g";
|
|
2155
2155
|
//#endregion
|
|
2156
2156
|
//#region src/tags/icons/icon-refresh.marko
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { B as _attr_select_value, D as iconBtnRow, Dt as writeScope, E as iconBtnLg, F as _attr_class, I as _attr_details_or_dialog_open, J as _el, K as _content_resume, L as _attr_input_value, M as tone, P as _attr, Q as _existing_scope, R as _attr_option_value, V as _attr_style, X as _el_resume, Y as _el_read_error, Z as _escape, _t as _show_end, a as diffTreeOpen, at as _if, bt as _template, ct as _resume_branch, dt as _scope_with_id, et as _for_of, f as icon_search_default, ft as _script, gt as _set_serialize_reason, ht as _serialize_if, i as diffScope, lt as _scope_id, m as icon_refresh_default, mt as _serialize_guard, n as findInput, o as setDiffScope, ot as _peek_scope_id, p as icon_back_default, pt as _sep, r as icon_sidebar_default, rt as _html, st as _resume, t as findIconBtn, u as fuzzy, ut as _scope_reason, v as toast_default, vt as _show_start, x as repoLabel, y as icon_xmark_default, yt as _subscribe } from "./
|
|
1
|
+
import { B as _attr_select_value, D as iconBtnRow, Dt as writeScope, E as iconBtnLg, F as _attr_class, I as _attr_details_or_dialog_open, J as _el, K as _content_resume, L as _attr_input_value, M as tone, P as _attr, Q as _existing_scope, R as _attr_option_value, V as _attr_style, X as _el_resume, Y as _el_read_error, Z as _escape, _t as _show_end, a as diffTreeOpen, at as _if, bt as _template, ct as _resume_branch, dt as _scope_with_id, et as _for_of, f as icon_search_default, ft as _script, gt as _set_serialize_reason, ht as _serialize_if, i as diffScope, lt as _scope_id, m as icon_refresh_default, mt as _serialize_guard, n as findInput, o as setDiffScope, ot as _peek_scope_id, p as icon_back_default, pt as _sep, r as icon_sidebar_default, rt as _html, st as _resume, t as findIconBtn, u as fuzzy, ut as _scope_reason, v as toast_default, vt as _show_start, x as repoLabel, y as icon_xmark_default, yt as _subscribe } from "./_AOPS87VY.js";
|
|
2
2
|
//#region src/client/router.ts
|
|
3
3
|
function urlFor(r) {
|
|
4
4
|
if (r.view === "settings") return "/settings";
|
|
@@ -1906,14 +1906,14 @@ function shortBranch(name, wsBranch = "", wsName = "") {
|
|
|
1906
1906
|
}
|
|
1907
1907
|
return shortHeadFallback(head);
|
|
1908
1908
|
}
|
|
1909
|
-
var repoWorktree = "
|
|
1910
|
-
var repoTitle = "
|
|
1909
|
+
var repoWorktree = "_fB _u";
|
|
1910
|
+
var repoTitle = "_fH _t";
|
|
1911
1911
|
tone.warn;
|
|
1912
1912
|
var diff_file_default = _template("f", (input) => {
|
|
1913
1913
|
_scope_reason();
|
|
1914
1914
|
const $scope0_id = _scope_id();
|
|
1915
1915
|
_el($scope0_id, "f0");
|
|
1916
|
-
_html(`<div${_attr_class(["
|
|
1916
|
+
_html(`<div${_attr_class(["_gs", input.class])}></div>${_el_resume($scope0_id, "a")}`);
|
|
1917
1917
|
_script($scope0_id, "f1");
|
|
1918
1918
|
writeScope($scope0_id, {
|
|
1919
1919
|
e: input.file,
|
|
@@ -1968,14 +1968,14 @@ var review_section_default = _template("r", (input) => {
|
|
|
1968
1968
|
const newCount = input.files.filter((f) => f.changedSince).length;
|
|
1969
1969
|
const compare$1 = reviewCompareLabel(repo.pr?.baseRefName || repo.base, repo.pr?.headRefName || repo.branch, input.workspaceBranch, input.workspaceName);
|
|
1970
1970
|
const prTitle = repo.pr ? `${repo.pr.title}: ${repo.pr.headRefName} ${repo.head} vs ${repo.base} ${repo.baseSha}` : "";
|
|
1971
|
-
_html(`<section${_attr_class("
|
|
1971
|
+
_html(`<section${_attr_class("_fx")}${repo.pr ? _attr("data-pr", `${repo.worktree}/${repo.pr.number}`) : ""}${_attr("hidden", !shownCount && !repo.pr && input.findHit?.repo !== repo.id)}><div${_attr_class(["_fy", { ["_fz"]: input.collapsible && input.collapsed }])}>`);
|
|
1972
1972
|
_if(() => {
|
|
1973
1973
|
if (input.collapsible) {
|
|
1974
1974
|
const $scope1_id = _scope_id();
|
|
1975
|
-
_html(`<button type=button${_attr_class("
|
|
1976
|
-
"
|
|
1977
|
-
!input.collapsed && "
|
|
1978
|
-
input.expanding && "
|
|
1975
|
+
_html(`<button type=button${_attr_class("_fA")} aria-expanded=${!input.collapsed ? "true" : "false"} aria-busy=${input.expanding ? "true" : "false"}${input.collapsed ? _attr("title", `Show ${countLabel} files`) : " title=\"Hide files\""}><span${_attr_class([
|
|
1976
|
+
"_fU",
|
|
1977
|
+
!input.collapsed && "_fV",
|
|
1978
|
+
input.expanding && "_fW"
|
|
1979
1979
|
])} aria-hidden=true>${input.collapsed ? "▸" : "▾"}${_el_resume($scope1_id, "c", _serialize_guard($scope0_reason, 35))}</span>${_el_resume($scope1_id, "b", _serialize_guard($scope0_reason, 9))}<span${_attr_class(repoWorktree)}>${_escape(repo.worktree)}${_el_resume($scope1_id, "e", $sg__input_repo)}</span></button>${_el_resume($scope1_id, "a")}`);
|
|
1980
1980
|
_script($scope1_id, "r7");
|
|
1981
1981
|
writeScope($scope1_id, { _: _scope_with_id($scope0_id) });
|
|
@@ -2000,14 +2000,14 @@ var review_section_default = _template("r", (input) => {
|
|
|
2000
2000
|
return 1;
|
|
2001
2001
|
}
|
|
2002
2002
|
}, $scope0_id, "d", $sg__input_repo, $sg__input_repo, $sg__input_repo__OR__input_files__OR__input_shownKeys__OR__input_workspaceBranch__OR__input_workspaceName__OR__input_collapsible__OR__input_collapsed__OR__input_localDiffers__OR__input_onlyNew__OR__input_opened);
|
|
2003
|
-
_html(`<span${_attr_class("
|
|
2003
|
+
_html(`<span${_attr_class("_fI")}${_attr("title", `${compare$1.title} · ${repo.head.slice(0, 7)}…${repo.baseSha.slice(0, 7)}`)}><span${_attr_class(["_F", "_fJ"])}>${_escape(compare$1.base)}${_el_resume($scope0_id, "g", $sg__input_repo__OR__input_workspaceBranch__OR__input_workspaceName)}</span><span${_attr_class(["_H", "_fL"])} aria-hidden=true>vs</span><span${_attr_class(["_F", "_fK"])}>${_escape(compare$1.head)}${_el_resume($scope0_id, "j", $sg__input_repo__OR__input_workspaceBranch__OR__input_workspaceName)}</span>`);
|
|
2004
2004
|
_if(() => {
|
|
2005
2005
|
if (compare$1.topic) {
|
|
2006
2006
|
const $scope15_id = _scope_id();
|
|
2007
2007
|
_html(`<span${_attr_class([
|
|
2008
2008
|
"_F",
|
|
2009
2009
|
tone.accent,
|
|
2010
|
-
"
|
|
2010
|
+
"_fM"
|
|
2011
2011
|
])}>${_escape(compare$1.topic)}${_el_resume($scope15_id, "b", $sg__input_repo__OR__input_workspaceBranch__OR__input_workspaceName)}</span>`);
|
|
2012
2012
|
$si__input_repo__OR__input_workspaceBranch__OR__input_workspaceName && writeScope($scope15_id, { _: _scope_with_id($scope0_id) });
|
|
2013
2013
|
return 0;
|
|
@@ -2020,7 +2020,7 @@ var review_section_default = _template("r", (input) => {
|
|
|
2020
2020
|
_html(`<button type=button${_attr_class([
|
|
2021
2021
|
"_F",
|
|
2022
2022
|
tone.warn,
|
|
2023
|
-
"
|
|
2023
|
+
"_fN"
|
|
2024
2024
|
])}${_attr("title", `origin/${repo.pr.headRefName} ${repo.head} · GitHub ${repo.pr.headRefOid}. Reload to re-ask GitHub`)}${_attr("disabled", input.loading)}>behind GitHub ${_sep($sg__input_repo)}${_escape(shortSha(repo.head, 7))}${_el_resume($scope2_id, "b", $sg__input_repo)} → ${_sep($sg__input_repo)}${_escape(shortSha(repo.pr.headRefOid, 7))}${_el_resume($scope2_id, "c", $sg__input_repo)}</button>${_el_resume($scope2_id, "a")}`);
|
|
2025
2025
|
_script($scope2_id, "r8");
|
|
2026
2026
|
writeScope($scope2_id, { _: _scope_with_id($scope0_id) });
|
|
@@ -2030,7 +2030,7 @@ var review_section_default = _template("r", (input) => {
|
|
|
2030
2030
|
_if(() => {
|
|
2031
2031
|
if (repo.contained && input.files.length) {
|
|
2032
2032
|
const $scope13_id = _scope_id();
|
|
2033
|
-
_html(`<span${_attr_class(["_F", "
|
|
2033
|
+
_html(`<span${_attr_class(["_F", "_fN"])}${_attr("title", `${repo.pr ? `#${repo.pr.number}` : repo.branch} is already in ${repo.base}; showing the working tree only`)}>already in ${_sep($sg__input_repo)}${_escape(repo.base)}${_el_resume($scope13_id, "b", $sg__input_repo)}</span>${_el_resume($scope13_id, "a", $sg__input_repo)}`);
|
|
2034
2034
|
_serialize_if($scope0_reason, 0) && writeScope($scope13_id, { _: $si__input_repo && _scope_with_id($scope0_id) });
|
|
2035
2035
|
return 0;
|
|
2036
2036
|
}
|
|
@@ -2038,16 +2038,16 @@ var review_section_default = _template("r", (input) => {
|
|
|
2038
2038
|
_if(() => {
|
|
2039
2039
|
if (input.localDiffers) {
|
|
2040
2040
|
const $scope3_id = _scope_id();
|
|
2041
|
-
_html(`<span${_attr_class(["_F", "
|
|
2041
|
+
_html(`<span${_attr_class(["_F", "_fN"])}${_attr("title", `This view is ${shortSha(repo.head)} (${repo.pr.headRefName}); checked out is ${shortSha(repo.localHead)} (${repo.branch})`)}>local ${_sep($sg__input_repo__OR__input_workspaceBranch__OR__input_workspaceName)}${_escape(shortBranch(repo.branch, input.workspaceBranch, input.workspaceName))}${_el_resume($scope3_id, "b", $sg__input_repo__OR__input_workspaceBranch__OR__input_workspaceName)} ${_sep($sg__input_repo)}${_escape(shortSha(repo.localHead, 7))}${_el_resume($scope3_id, "c", $sg__input_repo)}</span>${_el_resume($scope3_id, "a", $sg__input_repo)}`);
|
|
2042
2042
|
$si__input_repo__OR__input_workspaceBranch__OR__input_workspaceName__OR__input_localDiffers && writeScope($scope3_id, { _: $si__input_repo__OR__input_workspaceBranch__OR__input_workspaceName && _scope_with_id($scope0_id) });
|
|
2043
2043
|
return 0;
|
|
2044
2044
|
}
|
|
2045
2045
|
}, $scope0_id, "n", _serialize_guard($scope0_reason, 20), _serialize_guard($scope0_reason, 36), $sg__input_repo__OR__input_files__OR__input_shownKeys__OR__input_workspaceBranch__OR__input_workspaceName__OR__input_collapsible__OR__input_collapsed__OR__input_localDiffers__OR__input_onlyNew__OR__input_opened, 0, 1);
|
|
2046
|
-
_html(`<span${_attr_class("
|
|
2046
|
+
_html(`<span${_attr_class("_fC")}><span>${_escape(countLabel)}${_el_resume($scope0_id, "p", $sg__input_files__OR__input_shownKeys)} file${_sep($sg__input_files__OR__input_shownKeys)}${countLabel === 1 ? "" : "s"}${_el_resume($scope0_id, "q", $sg__input_files__OR__input_shownKeys)}</span>`);
|
|
2047
2047
|
_if(() => {
|
|
2048
2048
|
if (stats.additions || stats.deletions) {
|
|
2049
2049
|
const $scope14_id = _scope_id();
|
|
2050
|
-
_html(`<span${_attr_class("
|
|
2050
|
+
_html(`<span${_attr_class("_fD")}>+${_sep($sg__input_files__OR__input_shownKeys)}${_escape(stats.additions)}${_el_resume($scope14_id, "b", $sg__input_files__OR__input_shownKeys)}</span><span${_attr_class("_fE")}>−${_sep($sg__input_files__OR__input_shownKeys)}${_escape(stats.deletions)}${_el_resume($scope14_id, "d", $sg__input_files__OR__input_shownKeys)}</span>`);
|
|
2051
2051
|
$si__input_files__OR__input_shownKeys && writeScope($scope14_id, { _: _scope_with_id($scope0_id) });
|
|
2052
2052
|
return 0;
|
|
2053
2053
|
}
|
|
@@ -2055,7 +2055,7 @@ var review_section_default = _template("r", (input) => {
|
|
|
2055
2055
|
_if(() => {
|
|
2056
2056
|
if (newCount || input.onlyNew) {
|
|
2057
2057
|
const $scope4_id = _scope_id();
|
|
2058
|
-
_html(`<button type=button${_attr_class(["
|
|
2058
|
+
_html(`<button type=button${_attr_class(["_fG", { ["_fF"]: input.onlyNew }])} aria-pressed=${input.onlyNew ? "true" : "false"} title=${input.onlyNew ? "\"Show every file\"" : "\"Show only files changed since your last visit\""}>${_escape(newCount)}${_el_resume($scope4_id, "b", $sg__input_files)} new</button>${_el_resume($scope4_id, "a")}`);
|
|
2059
2059
|
_script($scope4_id, "r9");
|
|
2060
2060
|
writeScope($scope4_id, { _: _scope_with_id($scope0_id) });
|
|
2061
2061
|
return 0;
|
|
@@ -2067,7 +2067,7 @@ var review_section_default = _template("r", (input) => {
|
|
|
2067
2067
|
const $scope5_id = _scope_id();
|
|
2068
2068
|
const $show = !input.collapsible || !input.collapsed;
|
|
2069
2069
|
_show_start($show);
|
|
2070
|
-
_html(`<div${_attr_class("
|
|
2070
|
+
_html(`<div${_attr_class("_fP")}>`);
|
|
2071
2071
|
_for_of(input.files, (file$1) => {
|
|
2072
2072
|
const $scope6_id = _scope_id();
|
|
2073
2073
|
const $for_content__file__closures = /* @__PURE__ */ new Set();
|
|
@@ -2075,11 +2075,11 @@ var review_section_default = _template("r", (input) => {
|
|
|
2075
2075
|
const $for_content__fileComments__closures = /* @__PURE__ */ new Set();
|
|
2076
2076
|
const fileComments = input.commentsByFile.get(file$1.key) || [];
|
|
2077
2077
|
let expanded = true;
|
|
2078
|
-
_html(`<details${_attr_details_or_dialog_open($scope6_id, "a", expanded)}${_attr_class(["
|
|
2078
|
+
_html(`<details${_attr_details_or_dialog_open($scope6_id, "a", expanded)}${_attr_class(["_fQ", input.findHit?.key === file$1.key && "_fv"])}${_attr("data-key", file$1.key)}${_attr("hidden", !input.shownKeys.has(file$1.key))}><summary${_attr_class("_fS")}><span${_attr_class("_fX")}${_attr("data-status", file$1.status)}>${_escape(file$1.status)}${_el_resume($scope6_id, "d", $sg__input_files)}</span>${_el_resume($scope6_id, "c", $sg__input_files)}<span${_attr_class(["_fY", input.findHit?.key === file$1.key && input.findHit.line < 1 && "_fw"])}${_attr("title", file$1.path)}><bdi>${_escape(file$1.path)}${_el_resume($scope6_id, "f", $sg__input_files)}</bdi></span>${_el_resume($scope6_id, "e", _serialize_guard($scope0_reason, 16))}`);
|
|
2079
2079
|
_if(() => {
|
|
2080
2080
|
if (file$1.changedSince) {
|
|
2081
2081
|
const $scope17_id = _scope_id();
|
|
2082
|
-
_html(`<span${_attr_class(["_w", "
|
|
2082
|
+
_html(`<span${_attr_class(["_w", "_fO"])} title="Changed since your last visit"></span>`);
|
|
2083
2083
|
$si__input_files && writeScope($scope17_id, {});
|
|
2084
2084
|
return 0;
|
|
2085
2085
|
}
|
|
@@ -2096,17 +2096,17 @@ var review_section_default = _template("r", (input) => {
|
|
|
2096
2096
|
_if(() => {
|
|
2097
2097
|
if (file$1.binary) {
|
|
2098
2098
|
const $scope18_id = _scope_id();
|
|
2099
|
-
_html(`<p${_attr_class(["
|
|
2099
|
+
_html(`<p${_attr_class(["_fZ", "_fR"])}>binary file</p>`);
|
|
2100
2100
|
writeScope($scope18_id, {});
|
|
2101
2101
|
return 0;
|
|
2102
2102
|
} else if (file$1.tooLarge) {
|
|
2103
2103
|
const $scope19_id = _scope_id();
|
|
2104
|
-
_html(`<p${_attr_class(["
|
|
2104
|
+
_html(`<p${_attr_class(["_fZ", "_fR"])}>file too large to display</p>`);
|
|
2105
2105
|
writeScope($scope19_id, {});
|
|
2106
2106
|
return 1;
|
|
2107
2107
|
} else if (file$1.old == null && file$1.new == null) {
|
|
2108
2108
|
const $scope20_id = _scope_id();
|
|
2109
|
-
_html(`<p${_attr_class(["
|
|
2109
|
+
_html(`<p${_attr_class(["_fZ", "_fR"])}>file could not be read</p>`);
|
|
2110
2110
|
writeScope($scope20_id, {});
|
|
2111
2111
|
return 2;
|
|
2112
2112
|
} else {
|
|
@@ -2116,7 +2116,7 @@ var review_section_default = _template("r", (input) => {
|
|
|
2116
2116
|
_if(() => {
|
|
2117
2117
|
if (!forceNear) {
|
|
2118
2118
|
const $scope8_id = _scope_id();
|
|
2119
|
-
_html(`<div${_attr_class(["
|
|
2119
|
+
_html(`<div${_attr_class(["_fT", "_fR"])}></div>${_el_resume($scope8_id, "a")}`);
|
|
2120
2120
|
_script($scope8_id, "r10");
|
|
2121
2121
|
_subscribe($si__input && $input__closures, writeScope($scope8_id, {}));
|
|
2122
2122
|
return 0;
|
|
@@ -2124,7 +2124,7 @@ var review_section_default = _template("r", (input) => {
|
|
|
2124
2124
|
const $scope9_id = _scope_id();
|
|
2125
2125
|
const $childScope = _peek_scope_id();
|
|
2126
2126
|
diff_file_default({
|
|
2127
|
-
class: "
|
|
2127
|
+
class: "_fR",
|
|
2128
2128
|
file: file$1,
|
|
2129
2129
|
comments: fileComments,
|
|
2130
2130
|
draft: input.draft && input.draft.key === file$1.key ? input.draft : null,
|
|
@@ -2324,7 +2324,7 @@ var diff_tree_default = _template("i", (input) => {
|
|
|
2324
2324
|
scope: input.scope ?? null,
|
|
2325
2325
|
file: key
|
|
2326
2326
|
}), "i0", $scope0_id);
|
|
2327
|
-
_html(`<aside${_attr_class(["
|
|
2327
|
+
_html(`<aside${_attr_class(["_fh", { ["_fg"]: input.open === false }])}><div${_attr_class("_fi")}>`);
|
|
2328
2328
|
_set_serialize_reason(2);
|
|
2329
2329
|
const $childScope = _peek_scope_id();
|
|
2330
2330
|
file_filter_default({
|
|
@@ -2337,14 +2337,14 @@ var diff_tree_default = _template("i", (input) => {
|
|
|
2337
2337
|
_if(() => {
|
|
2338
2338
|
if (!input.sections.length && filter) {
|
|
2339
2339
|
const $scope6_id = _scope_id();
|
|
2340
|
-
_html(`<p${_attr_class("
|
|
2340
|
+
_html(`<p${_attr_class("_fj")}>No files match.</p>`);
|
|
2341
2341
|
writeScope($scope6_id, {});
|
|
2342
2342
|
return 0;
|
|
2343
2343
|
}
|
|
2344
2344
|
}, $scope0_id, "d", 1, 1, 1, 0, 1);
|
|
2345
2345
|
_for_of(input.sections, (section) => {
|
|
2346
2346
|
const $scope1_id = _scope_id();
|
|
2347
|
-
_html(`<div${_attr_class("
|
|
2347
|
+
_html(`<div${_attr_class("_fk")}><button type=button${_attr_class(["_fl", { ["_fg"]: collapsedRepos.has(section.id) }])}><span${_attr_class("_fr")}>${collapsedRepos.has(section.id) ? "▸" : "▾"}${_el_resume($scope1_id, "d")}</span>${_sep($sg__input_sections)}${_escape(section.label)}${_el_resume($scope1_id, "e", $sg__input_sections)}</button>${_el_resume($scope1_id, "b")}`);
|
|
2348
2348
|
_if(() => {
|
|
2349
2349
|
if (!collapsedRepos.has(section.id) || openedRepos.has(section.id)) {
|
|
2350
2350
|
const $scope2_id = _scope_id();
|
|
@@ -2371,17 +2371,17 @@ var diff_tree_default = _template("i", (input) => {
|
|
|
2371
2371
|
_if(() => {
|
|
2372
2372
|
if (!hiddenByCollapse(row) && row.kind === "dir") {
|
|
2373
2373
|
const $scope4_id = _scope_id();
|
|
2374
|
-
_html(`<button type=button${_attr_class(["
|
|
2374
|
+
_html(`<button type=button${_attr_class(["_fm", { ["_fg"]: collapsedDirs.has(dirKey(row.path)) }])}${_attr("title", row.path)}${_attr_style(`padding-left:${.35 + row.depth * .75}rem`)}><span${_attr_class("_fr")}>${collapsedDirs.has(dirKey(row.path)) ? "▸" : "▾"}${_el_resume($scope4_id, "c")}</span>${_escape(row.label)}${_el_resume($scope4_id, "d", $sg__input_sections)}/</button>${_el_resume($scope4_id, "a")}`);
|
|
2375
2375
|
_script($scope4_id, "i5");
|
|
2376
2376
|
_subscribe($si__input_sections && $if_content__dirKey__closures, _subscribe($collapsedDirs__closures, writeScope($scope4_id, { Cab: 1 })));
|
|
2377
2377
|
return 0;
|
|
2378
2378
|
} else if (!hiddenByCollapse(row) && row.kind !== "dir") {
|
|
2379
2379
|
const $scope5_id = _scope_id();
|
|
2380
|
-
_html(`<a${_attr("href", hrefFor(row.file.key))}${_attr_class("
|
|
2380
|
+
_html(`<a${_attr("href", hrefFor(row.file.key))}${_attr_class("_fn")}${_attr("title", row.file.path)}${_attr_style(`padding-left:${.5 + row.depth * .75}rem`)}><span${_attr_class("_fs")}${_attr("data-status", row.file.status)}>${_escape(row.file.status)}${_el_resume($scope5_id, "c", $sg__input_sections)}</span>${_el_resume($scope5_id, "b", $sg__input_sections)}<span${_attr_class("_fo")}>${_escape(row.name)}${_el_resume($scope5_id, "e", $sg__input_sections)}</span>`);
|
|
2381
2381
|
_if(() => {
|
|
2382
2382
|
if (newKeys.has(row.file.key)) {
|
|
2383
2383
|
const $scope7_id = _scope_id();
|
|
2384
|
-
_html(`<span${_attr_class(["_w", "
|
|
2384
|
+
_html(`<span${_attr_class(["_w", "_fp"])} title="Changed since your last visit"></span>`);
|
|
2385
2385
|
_serialize_if($scope0_reason, 1) && writeScope($scope7_id, {});
|
|
2386
2386
|
return 0;
|
|
2387
2387
|
}
|
|
@@ -2389,7 +2389,7 @@ var diff_tree_default = _template("i", (input) => {
|
|
|
2389
2389
|
_if(() => {
|
|
2390
2390
|
if (commentKeys.has(row.file.key)) {
|
|
2391
2391
|
const $scope8_id = _scope_id();
|
|
2392
|
-
_html(`<span${_attr_class("
|
|
2392
|
+
_html(`<span${_attr_class("_fq")}>💬</span>`);
|
|
2393
2393
|
_serialize_if($scope0_reason, 0) && writeScope($scope8_id, {});
|
|
2394
2394
|
return 0;
|
|
2395
2395
|
}
|
|
@@ -2491,9 +2491,9 @@ var diff_file_sheet_default = _template("e", (input) => {
|
|
|
2491
2491
|
_if(() => {
|
|
2492
2492
|
if (open) {
|
|
2493
2493
|
const $scope1_id = _scope_id();
|
|
2494
|
-
_html(`<div${_attr_class("
|
|
2494
|
+
_html(`<div${_attr_class("_eR")}></div>${_el_resume($scope1_id, "a")}<div${_attr_class("_eS")} role=dialog aria-label="Jump to file"><div${_attr_class("_eT")}><strong${_attr_class("_eQ")}>Files</strong><span${_attr_class("_eU")}>${_escape(input.files.length)}${_el_resume($scope1_id, "f", $sg__input_files_length)}${_sep($sg__input_total__OR__input_files_length)}${input.files.length !== total ? ` / ${_escape(`${total}`)}` : ""}${_el_resume($scope1_id, "g", $sg__input_total__OR__input_files_length)}</span><button type=button${_attr_class([iconBtnLg, "_eP"])} title=Close aria-label=Close>`);
|
|
2495
2495
|
icon_xmark_default({ size: 16 });
|
|
2496
|
-
_html(`</button>${_el_resume($scope1_id, "h")}</div><div${_attr_class("
|
|
2496
|
+
_html(`</button>${_el_resume($scope1_id, "h")}</div><div${_attr_class("_e0")}>`);
|
|
2497
2497
|
_set_serialize_reason(2);
|
|
2498
2498
|
const $childScope = _peek_scope_id();
|
|
2499
2499
|
file_filter_default({
|
|
@@ -2502,24 +2502,24 @@ var diff_file_sheet_default = _template("e", (input) => {
|
|
|
2502
2502
|
filter = _new_filter;
|
|
2503
2503
|
}, "e2", $scope1_id)
|
|
2504
2504
|
});
|
|
2505
|
-
_html(`</div><div${_attr_class("
|
|
2505
|
+
_html(`</div><div${_attr_class("_eV")}>`);
|
|
2506
2506
|
_for_of(input.files, (file) => {
|
|
2507
2507
|
const $scope2_id = _scope_id();
|
|
2508
2508
|
const parts = splitKey(file.key);
|
|
2509
|
-
_html(`<a${_attr("href", hrefFor(file.key))}${_attr_class(["
|
|
2509
|
+
_html(`<a${_attr("href", hrefFor(file.key))}${_attr_class(["_eW", "_u"])}><span${_attr_class("_e3")}${_attr("data-status", file.status)}>${_escape(file.status)}${_el_resume($scope2_id, "c", $sg__input_files)}</span>${_el_resume($scope2_id, "b", $sg__input_files)}<span${_attr_class("_eX")}>`);
|
|
2510
2510
|
_if(() => {
|
|
2511
2511
|
if (parts.dir) {
|
|
2512
2512
|
const $scope3_id = _scope_id();
|
|
2513
|
-
_html(`<span${_attr_class("
|
|
2513
|
+
_html(`<span${_attr_class("_eY")}><bdi>${_escape(parts.dir)}${_el_resume($scope3_id, "b", $sg__input_files)}/</bdi></span>`);
|
|
2514
2514
|
$si__input_files && writeScope($scope3_id, { _: _scope_with_id($scope2_id) });
|
|
2515
2515
|
return 0;
|
|
2516
2516
|
}
|
|
2517
2517
|
}, $scope2_id, "e", $sg__input_files, $sg__input_files, $sg__input_commentKeys__OR__input_newKeys__OR__input_files, 0, 1);
|
|
2518
|
-
_html(`<span${_attr_class("
|
|
2518
|
+
_html(`<span${_attr_class("_eZ")}><bdi>${_escape(parts.name)}${_el_resume($scope2_id, "g", $sg__input_files)}</bdi></span></span>`);
|
|
2519
2519
|
_if(() => {
|
|
2520
2520
|
if (newKeys.has(file.key)) {
|
|
2521
2521
|
const $scope4_id = _scope_id();
|
|
2522
|
-
_html(`<span${_attr_class(["_w", "
|
|
2522
|
+
_html(`<span${_attr_class(["_w", "_e2"])} title="Changed since your last visit"></span>`);
|
|
2523
2523
|
_serialize_if($scope0_reason, 1) && writeScope($scope4_id, {});
|
|
2524
2524
|
return 0;
|
|
2525
2525
|
}
|
|
@@ -2543,7 +2543,7 @@ var diff_file_sheet_default = _template("e", (input) => {
|
|
|
2543
2543
|
_if(() => {
|
|
2544
2544
|
if (!input.files.length) {
|
|
2545
2545
|
const $scope6_id = _scope_id();
|
|
2546
|
-
_html(`<p${_attr_class("
|
|
2546
|
+
_html(`<p${_attr_class("_e1")}>No files match.</p>`);
|
|
2547
2547
|
$si__input_files_length && writeScope($scope6_id, {});
|
|
2548
2548
|
return 0;
|
|
2549
2549
|
}
|
|
@@ -3141,12 +3141,12 @@ var diff_view_default = _template("j", (input) => {
|
|
|
3141
3141
|
_if(() => {
|
|
3142
3142
|
if (repos && !allFiles.length) {
|
|
3143
3143
|
const $scope11_id = _scope_id();
|
|
3144
|
-
_html(`<p${_attr_class("
|
|
3144
|
+
_html(`<p${_attr_class("_bB")}>${scope$1 === "dirty" ? "Nothing uncommitted." : repoList.some((r) => r.pr) ? "No file changes on these PRs." : "No changes vs base."}${_el_resume($scope11_id, "b")}</p>`);
|
|
3145
3145
|
writeScope($scope11_id, {});
|
|
3146
3146
|
return 0;
|
|
3147
3147
|
} else if (repos && !shownFiles.length && !findState.hit) {
|
|
3148
3148
|
const $scope8_id = _scope_id();
|
|
3149
|
-
_html(`<p${_attr_class("
|
|
3149
|
+
_html(`<p${_attr_class("_bB")}>${findState.query.trim() ? "No matches in review." : onlyNew && !fileFilter ? "Nothing changed since your last visit." : `No files match "${_escape(`${fileFilter}`)}".`}${_el_resume($scope8_id, "b")}</p>`);
|
|
3150
3150
|
writeScope($scope8_id, {});
|
|
3151
3151
|
return 1;
|
|
3152
3152
|
}
|
|
@@ -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
|