@dylanpiercey/work 0.0.70 → 0.0.72
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/{_DgDsZuoQ.js → _BfXE8Kjn.js} +191 -9
- package/dist/_DLxkSyzt.js +2 -0
- package/dist/{_B-dzDH9Z.js → _DXDmuFjC.js} +44 -44
- package/dist/{_AOPS87VY.js → _Dq5wZ9y2.js} +2 -2
- package/dist/index.mjs +331 -233
- package/dist/public/assets/{_BM3WaJrl2.js → _-G0Dx3t52.js} +1 -1
- package/dist/public/assets/_-G0Dx3t52.js.br +0 -0
- package/dist/public/assets/{_Ce5PUr__2.js → _B-xEEN4l2.js} +1 -1
- package/dist/public/assets/{_D1ZMPYoI2.js → _B0-ns0BU2.js} +1 -1
- package/dist/public/assets/_B0-ns0BU2.js.br +0 -0
- package/dist/public/assets/{_MFSKg2Wj.js → _B5x1OTTu.js} +1 -1
- package/dist/public/assets/_B5x1OTTu.js.br +0 -0
- package/dist/public/assets/{_DP-0321c.js → _B61wm226.js} +1 -1
- package/dist/public/assets/_B61wm226.js.br +0 -0
- package/dist/public/assets/{_vW-7Ai-v.js → _B7OMjNs8.js} +1 -1
- package/dist/public/assets/_B7OMjNs8.js.br +0 -0
- package/dist/public/assets/{_DRzPr12K.js → _B7vLPjLl.js} +1 -1
- package/dist/public/assets/_B7vLPjLl.js.br +0 -0
- package/dist/public/assets/{_ChzC-M8b.js → _B7vYPsWj.js} +1 -1
- package/dist/public/assets/_B7vYPsWj.js.br +0 -0
- package/dist/public/assets/{_B7R_FSi52.js → _BBWg58GJ2.js} +1 -1
- package/dist/public/assets/_BBWg58GJ2.js.br +0 -0
- package/dist/public/assets/{_CP9QfGt02.js → _BE8lov_p2.js} +1 -1
- package/dist/public/assets/_BE8lov_p2.js.br +0 -0
- package/dist/public/assets/{_astyk4W8.js → _BGhBZpWT.js} +1 -1
- package/dist/public/assets/_BGhBZpWT.js.br +0 -0
- package/dist/public/assets/{_sRXHGNUn.js → _BKTem58K.js} +1 -1
- package/dist/public/assets/_BKTem58K.js.br +0 -0
- package/dist/public/assets/{_B_hrJVb02.js → _BLZtgkbJ2.js} +1 -1
- package/dist/public/assets/_BLZtgkbJ2.js.br +0 -0
- package/dist/public/assets/{_Ve3NFPam2.js → _BOQrg7gU2.js} +1 -1
- package/dist/public/assets/_BOQrg7gU2.js.br +0 -0
- package/dist/public/assets/{_C178aaRj.js → _BRzgmRS2.js} +1 -1
- package/dist/public/assets/_BRzgmRS2.js.br +0 -0
- package/dist/public/assets/{_CCwzIksI.js → _BSSf-PYx.js} +1 -1
- package/dist/public/assets/_BSSf-PYx.js.br +0 -0
- package/dist/public/assets/{_2jwfRZNX2.js → _BTXq-nPh2.js} +1 -1
- package/dist/public/assets/_BTXq-nPh2.js.br +0 -0
- package/dist/public/assets/{_Cnkj8G8x.js → _BUs7NMrG.js} +1 -1
- package/dist/public/assets/_BUs7NMrG.js.br +0 -0
- package/dist/public/assets/{_CieMd70P.js → _BXzRffYj.js} +1 -1
- package/dist/public/assets/_BXzRffYj.js.br +0 -0
- package/dist/public/assets/{_DK9AWQX8.js → _B_OOMZsL.js} +1 -1
- package/dist/public/assets/_B_OOMZsL.js.br +0 -0
- package/dist/public/assets/{_DFXWJj8u.js → _BdVRHt6-.js} +1 -1
- package/dist/public/assets/_BdVRHt6-.js.br +0 -0
- package/dist/public/assets/{_CZSK2PpM2.js → _Bj5u_Vnk2.js} +1 -1
- package/dist/public/assets/_Bj5u_Vnk2.js.br +0 -0
- package/dist/public/assets/{_vJB03LvX2.js → _BkrDGdOx2.js} +1 -1
- package/dist/public/assets/_BkrDGdOx2.js.br +0 -0
- package/dist/public/assets/{_DsxkxJ9M.js → _Bohi4mUp.js} +1 -1
- package/dist/public/assets/_Bohi4mUp.js.br +0 -0
- package/dist/public/assets/{_DgW7RRes2.js → _BpJS3XpY2.js} +1 -1
- package/dist/public/assets/_BpJS3XpY2.js.br +0 -0
- package/dist/public/assets/_BqE48K5c.js +85 -0
- package/dist/public/assets/_BqE48K5c.js.br +0 -0
- package/dist/public/assets/{_BVOP1Gxw2.js → _C-uc9hBA2.js} +1 -1
- package/dist/public/assets/_C-uc9hBA2.js.br +0 -0
- package/dist/public/assets/{_CF4WUrOg2.js → _C41DPP-z2.js} +1 -1
- package/dist/public/assets/_C41DPP-z2.js.br +0 -0
- package/dist/public/assets/{_DoD7JLuh2.js → _C5VLAw4k2.js} +1 -1
- package/dist/public/assets/_C5VLAw4k2.js.br +0 -0
- package/dist/public/assets/{_D5nI5TU0.js → _C82GEkZ4.js} +1 -1
- package/dist/public/assets/_C82GEkZ4.js.br +0 -0
- package/dist/public/assets/{_BriDrk1l.js → _CH2m75uw.js} +1 -1
- package/dist/public/assets/_CH2m75uw.js.br +0 -0
- package/dist/public/assets/{_C8xwneiR.js → _CNClKCWp.js} +1 -1
- package/dist/public/assets/_CNClKCWp.js.br +0 -0
- package/dist/public/assets/{_DsU-Nm-J.js → _COZ91m9B.js} +1 -1
- package/dist/public/assets/_COZ91m9B.js.br +0 -0
- package/dist/public/assets/{_DSW7pXqz.js → _CTQouXRe.js} +1 -1
- package/dist/public/assets/_CTQouXRe.js.br +0 -0
- package/dist/public/assets/{_uCHmU2W8.js → _CV60RHGa.js} +1 -1
- package/dist/public/assets/_CV60RHGa.js.br +0 -0
- package/dist/public/assets/{_BUuMdUVD.js → _CWUF1FpI.js} +1 -1
- package/dist/public/assets/_CWUF1FpI.js.br +0 -0
- package/dist/public/assets/{_B1dK1Qzq2.js → _CYgKydU62.js} +1 -1
- package/dist/public/assets/_CYgKydU62.js.br +0 -0
- package/dist/public/assets/{_DkIPVGH_2.js → _CfjckiVM2.js} +1 -1
- package/dist/public/assets/_CfjckiVM2.js.br +0 -0
- package/dist/public/assets/{_SYogbY_o.js → _ChkNS16f.js} +1 -1
- package/dist/public/assets/_ChkNS16f.js.br +0 -0
- package/dist/public/assets/{_D70dHsK5.js → _CifL_Zbh.js} +1 -1
- package/dist/public/assets/_CifL_Zbh.js.br +0 -0
- package/dist/public/assets/{_NUfAwX-92.js → _CivjiEX92.js} +1 -1
- package/dist/public/assets/_CivjiEX92.js.br +0 -0
- package/dist/public/assets/{_DIIVUEO6.js → _Clv6arvL.js} +1 -1
- package/dist/public/assets/_Clv6arvL.js.br +0 -0
- package/dist/public/assets/{_DwMRIbNQ2.js → _CnIE6_qB2.js} +1 -1
- package/dist/public/assets/_CnIE6_qB2.js.br +0 -0
- package/dist/public/assets/{_BhaVokkI.js → _Csmr2y3G.js} +1 -1
- package/dist/public/assets/_Csmr2y3G.js.br +0 -0
- package/dist/public/assets/{_BnGCBcwF2.js → _CuFX3MHy2.js} +1 -1
- package/dist/public/assets/{_CN37KCcd.js → _D-SthL18.js} +1 -1
- package/dist/public/assets/{_DeFFMAX_.js → _D1XJzdSj.js} +1 -1
- package/dist/public/assets/_D1XJzdSj.js.br +0 -0
- package/dist/public/assets/{_Dph0mXCv.js → _D5nVZek7.js} +1 -1
- package/dist/public/assets/_D5nVZek7.js.br +0 -0
- package/dist/public/assets/{_CphuLRQC.js → _DAi07M7i.js} +1 -1
- package/dist/public/assets/_DAi07M7i.js.br +10 -0
- package/dist/public/assets/{_dfXi0jTI.js → _DFAhtXzm.js} +1 -1
- package/dist/public/assets/_DFAhtXzm.js.br +0 -0
- package/dist/public/assets/{_DJSAaBeq.js → _DHelzj06.js} +1 -1
- package/dist/public/assets/_DHelzj06.js.br +0 -0
- package/dist/public/assets/{_C09f6XJ4.js → _DPL2ZCgQ.js} +1 -1
- package/dist/public/assets/_DPL2ZCgQ.js.br +5 -0
- package/dist/public/assets/{_B41uLDvj.js → _DX2Uab-U.js} +1 -1
- package/dist/public/assets/_DX2Uab-U.js.br +0 -0
- package/dist/public/assets/{_CDrCRgYz2.js → _Dixad7y-2.js} +1 -1
- package/dist/public/assets/_Dixad7y-2.js.br +0 -0
- package/dist/public/assets/{_Dg2DUGem2.js → _DjVNZ4eK2.js} +1 -1
- package/dist/public/assets/_DjVNZ4eK2.js.br +0 -0
- package/dist/public/assets/{_IoBnaDj6.js → _DmLXUxIk.js} +1 -1
- package/dist/public/assets/_DmLXUxIk.js.br +0 -0
- package/dist/public/assets/{_De1DhN-1.js → _DpCy3kYU.js} +5 -5
- package/dist/public/assets/_DpCy3kYU.js.br +0 -0
- package/dist/public/assets/{_CZAtZHwK.js → _DpENgSEx.js} +1 -1
- package/dist/public/assets/_DpENgSEx.js.br +0 -0
- package/dist/public/assets/{_Dig0hTtr.js → _Drt_09zp.js} +1 -1
- package/dist/public/assets/_Drt_09zp.js.br +0 -0
- package/dist/public/assets/{_CxfSIWfr.js → _DshD8Ycc.js} +1 -1
- package/dist/public/assets/_DshD8Ycc.js.br +0 -0
- package/dist/public/assets/{_BpwxxOzh.js → _DvcpKhXL.js} +1 -1
- package/dist/public/assets/_DvcpKhXL.js.br +0 -0
- package/dist/public/assets/{_CcaAXEPy.js → _Dx6kLICJ.js} +1 -1
- package/dist/public/assets/_Dx6kLICJ.js.br +0 -0
- package/dist/public/assets/{_BqzmoFMM.js → _KFiFSJT8.js} +1 -1
- package/dist/public/assets/_KFiFSJT8.js.br +0 -0
- package/dist/public/assets/{_C5McqdVq.js → _LdAm0jkh.js} +1 -1
- package/dist/public/assets/_LdAm0jkh.js.br +0 -0
- package/dist/public/assets/{_DQjgTNLT2.js → _QPczAdMm2.js} +1 -1
- package/dist/public/assets/_QPczAdMm2.js.br +0 -0
- package/dist/public/assets/{_yaHB4Z8B.js → _RF9fz9Iu.js} +1 -1
- package/dist/public/assets/_RF9fz9Iu.js.br +0 -0
- package/dist/public/assets/{_BsZkEJaX.js → _UxrF5q9P.js} +1 -1
- package/dist/public/assets/_UxrF5q9P.js.br +0 -0
- package/dist/public/assets/{_CE_OuXoU.js → _Wxr28jKW.js} +1 -1
- package/dist/public/assets/_Wxr28jKW.js.br +0 -0
- package/dist/public/assets/{_eH0Yg3S22.js → _Y-mhaywp2.js} +1 -1
- package/dist/public/assets/_Y-mhaywp2.js.br +0 -0
- package/dist/public/assets/{_DBKHnCnH.js → _c9sBllWt.js} +1 -1
- package/dist/public/assets/_c9sBllWt.js.br +0 -0
- package/dist/public/assets/{_okxblAux.js → _ckRann09.js} +1 -1
- package/dist/public/assets/_ckRann09.js.br +0 -0
- package/dist/public/assets/{_DThR70Xq.js → _f4WTM4Kz.js} +1 -1
- package/dist/public/assets/_f4WTM4Kz.js.br +0 -0
- package/dist/public/assets/{_CX7KVAVC2.js → _sUX0JPgf2.js} +1 -1
- package/dist/public/assets/_sUX0JPgf2.js.br +0 -0
- package/dist/public/assets/{_4Srbdaf8.js → _snCcB5_5.js} +1 -1
- package/dist/public/assets/_snCcB5_5.js.br +0 -0
- package/dist/public/assets/{_BRtDdwZC.js → _vWJVVrmZ.js} +1 -1
- package/dist/public/assets/_vWJVVrmZ.js.br +0 -0
- package/dist/public/assets/{_DhRqr_Rq.js → _wgItEK0c.js} +1 -1
- package/dist/public/assets/_wgItEK0c.js.br +0 -0
- package/dist/public/assets/{app-page-B-QPv6NA.css → app-page-CAw2YLYv.css} +1 -1
- package/dist/public/assets/app-page-CAw2YLYv.css.br +0 -0
- package/dist/public/assets/{diff-view-DM1slFkP.css → diff-view-DCB49VYM.css} +1 -1
- package/dist/public/assets/diff-view-DCB49VYM.css.br +0 -0
- package/dist/public/assets/new-C9qRFMyu.js +1 -0
- package/dist/public/assets/settings-C9qRFMyu.js +1 -0
- package/dist/public/assets/w-C9qRFMyu.js +1 -0
- package/dist/public/assets/w._-C9qRFMyu.js +1 -0
- package/dist/public/assets/w._-phpTDxP7.js +1 -0
- package/package.json +1 -1
- package/dist/_xZfpJdQE.js +0 -2
- package/dist/public/assets/_2jwfRZNX2.js.br +0 -0
- package/dist/public/assets/_4Srbdaf8.js.br +0 -0
- package/dist/public/assets/_B1dK1Qzq2.js.br +0 -0
- package/dist/public/assets/_B41uLDvj.js.br +0 -0
- package/dist/public/assets/_B7R_FSi52.js.br +0 -0
- package/dist/public/assets/_BM3WaJrl2.js.br +0 -0
- package/dist/public/assets/_BRtDdwZC.js.br +0 -0
- package/dist/public/assets/_BUuMdUVD.js.br +0 -0
- package/dist/public/assets/_BVOP1Gxw2.js.br +0 -0
- package/dist/public/assets/_B_hrJVb02.js.br +0 -0
- package/dist/public/assets/_BhaVokkI.js.br +0 -0
- package/dist/public/assets/_BpwxxOzh.js.br +0 -0
- package/dist/public/assets/_BqzmoFMM.js.br +0 -0
- package/dist/public/assets/_BriDrk1l.js.br +0 -0
- package/dist/public/assets/_BsZkEJaX.js.br +0 -0
- package/dist/public/assets/_C09f6XJ4.js.br +0 -0
- package/dist/public/assets/_C178aaRj.js.br +0 -0
- package/dist/public/assets/_C5McqdVq.js.br +0 -0
- package/dist/public/assets/_C8xwneiR.js.br +0 -0
- package/dist/public/assets/_CCwzIksI.js.br +0 -0
- package/dist/public/assets/_CDrCRgYz2.js.br +0 -0
- package/dist/public/assets/_CE_OuXoU.js.br +0 -0
- package/dist/public/assets/_CF4WUrOg2.js.br +0 -0
- package/dist/public/assets/_CP9QfGt02.js.br +0 -0
- package/dist/public/assets/_CX7KVAVC2.js.br +0 -0
- package/dist/public/assets/_CZAtZHwK.js.br +0 -0
- package/dist/public/assets/_CZSK2PpM2.js.br +0 -0
- package/dist/public/assets/_CcaAXEPy.js.br +0 -0
- package/dist/public/assets/_ChzC-M8b.js.br +0 -0
- package/dist/public/assets/_CieMd70P.js.br +0 -0
- package/dist/public/assets/_CktwGNoV.js +0 -85
- package/dist/public/assets/_CktwGNoV.js.br +0 -0
- package/dist/public/assets/_Cnkj8G8x.js.br +0 -0
- package/dist/public/assets/_CphuLRQC.js.br +0 -0
- package/dist/public/assets/_CxfSIWfr.js.br +0 -0
- package/dist/public/assets/_D1ZMPYoI2.js.br +0 -0
- package/dist/public/assets/_D5nI5TU0.js.br +0 -0
- package/dist/public/assets/_D70dHsK5.js.br +0 -0
- package/dist/public/assets/_DBKHnCnH.js.br +0 -0
- package/dist/public/assets/_DFXWJj8u.js.br +0 -0
- package/dist/public/assets/_DIIVUEO6.js.br +0 -0
- package/dist/public/assets/_DJSAaBeq.js.br +0 -0
- package/dist/public/assets/_DK9AWQX8.js.br +0 -0
- package/dist/public/assets/_DP-0321c.js.br +0 -0
- package/dist/public/assets/_DQjgTNLT2.js.br +0 -0
- package/dist/public/assets/_DRzPr12K.js.br +0 -0
- package/dist/public/assets/_DSW7pXqz.js.br +0 -0
- package/dist/public/assets/_DThR70Xq.js.br +0 -0
- package/dist/public/assets/_De1DhN-1.js.br +0 -0
- package/dist/public/assets/_DeFFMAX_.js.br +0 -0
- package/dist/public/assets/_Dg2DUGem2.js.br +0 -0
- package/dist/public/assets/_DgW7RRes2.js.br +0 -0
- package/dist/public/assets/_DhRqr_Rq.js.br +0 -0
- package/dist/public/assets/_Dig0hTtr.js.br +0 -0
- package/dist/public/assets/_DkIPVGH_2.js.br +0 -0
- package/dist/public/assets/_DoD7JLuh2.js.br +0 -0
- package/dist/public/assets/_Dph0mXCv.js.br +0 -0
- package/dist/public/assets/_DsU-Nm-J.js.br +0 -0
- package/dist/public/assets/_DsxkxJ9M.js.br +0 -0
- package/dist/public/assets/_DwMRIbNQ2.js.br +0 -0
- package/dist/public/assets/_IoBnaDj6.js.br +0 -0
- package/dist/public/assets/_MFSKg2Wj.js.br +0 -0
- package/dist/public/assets/_NUfAwX-92.js.br +0 -0
- package/dist/public/assets/_SYogbY_o.js.br +0 -0
- package/dist/public/assets/_Ve3NFPam2.js.br +0 -0
- package/dist/public/assets/_astyk4W8.js.br +0 -0
- package/dist/public/assets/_dfXi0jTI.js.br +0 -0
- package/dist/public/assets/_eH0Yg3S22.js.br +0 -0
- package/dist/public/assets/_okxblAux.js.br +0 -0
- package/dist/public/assets/_sRXHGNUn.js.br +0 -0
- package/dist/public/assets/_uCHmU2W8.js.br +0 -0
- package/dist/public/assets/_vJB03LvX2.js.br +0 -0
- package/dist/public/assets/_vW-7Ai-v.js.br +0 -0
- package/dist/public/assets/_yaHB4Z8B.js.br +0 -0
- package/dist/public/assets/app-page-B-QPv6NA.css.br +0 -0
- package/dist/public/assets/diff-view-DM1slFkP.css.br +0 -0
- package/dist/public/assets/new-CxcQDhex.js +0 -1
- package/dist/public/assets/settings-CxcQDhex.js +0 -1
- package/dist/public/assets/w-CxcQDhex.js +0 -1
- package/dist/public/assets/w._-CuOk-xxd.js +0 -1
- package/dist/public/assets/w._-CxcQDhex.js +0 -1
|
@@ -6332,9 +6332,15 @@ var viewers = /* @__PURE__ */ new Map();
|
|
|
6332
6332
|
function summaryFromHookPayload(payload) {
|
|
6333
6333
|
if (!payload || typeof payload !== "object") return void 0;
|
|
6334
6334
|
const p = payload;
|
|
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
|
+
const text = typeof p.last_assistant_message === "string" && p.last_assistant_message || typeof p["last-assistant-message"] === "string" && p["last-assistant-message"] || typeof p.lastAssistantMessage === "string" && p.lastAssistantMessage || typeof p.agent_message === "string" && p.agent_message || "";
|
|
6336
6336
|
if (text) return cleanSummary(text);
|
|
6337
|
-
|
|
6337
|
+
const kind = notificationType(p);
|
|
6338
|
+
if (kind) {
|
|
6339
|
+
const message = typeof p.message === "string" ? p.message.trim() : "";
|
|
6340
|
+
return message ? cleanSummary(message) : NOTIFICATION_LABELS[kind];
|
|
6341
|
+
}
|
|
6342
|
+
if (typeof p.errorDetails === "string" && p.errorDetails.trim()) return cleanSummary(p.errorDetails);
|
|
6343
|
+
if (typeof p.error === "string" && p.error.trim()) return cleanSummary(p.error);
|
|
6338
6344
|
if (p.hook_event_name === "PermissionRequest") {
|
|
6339
6345
|
const input = p.tool_input;
|
|
6340
6346
|
const what = (input && typeof input.command === "string" ? input.command : "") || (typeof p.tool_name === "string" ? p.tool_name : "");
|
|
@@ -6348,6 +6354,61 @@ var NOTIFICATION_LABELS = {
|
|
|
6348
6354
|
elicitation_dialog: "Asking a question",
|
|
6349
6355
|
elicitation_url_dialog: "Needs a browser sign-in"
|
|
6350
6356
|
};
|
|
6357
|
+
/** Notification hooks are one channel for several kinds of event. Only some
|
|
6358
|
+
* mean the agent is blocked on the user; Copilot also routes shell and
|
|
6359
|
+
* inbox chatter through it. Those the state endpoint must drop, not paint
|
|
6360
|
+
* red — the notification is neither "needs input" nor "done". */
|
|
6361
|
+
var CHATTER_NOTIFICATIONS = /* @__PURE__ */ new Set([
|
|
6362
|
+
"shell_completed",
|
|
6363
|
+
"shell_detached_completed",
|
|
6364
|
+
"new_inbox_message",
|
|
6365
|
+
"instruction_discovered",
|
|
6366
|
+
"factory_completed",
|
|
6367
|
+
"unclassified"
|
|
6368
|
+
]);
|
|
6369
|
+
function ignoreHookPayload(payload) {
|
|
6370
|
+
if (!payload || typeof payload !== "object") return false;
|
|
6371
|
+
const p = payload;
|
|
6372
|
+
const kind = notificationType(p);
|
|
6373
|
+
if (kind && CHATTER_NOTIFICATIONS.has(kind)) return true;
|
|
6374
|
+
if (typeof p.subagentType === "string" && p.subagentType) return true;
|
|
6375
|
+
if (p.hookEventName === "stop" && typeof p.reason === "string" && p.reason !== "end_turn") return true;
|
|
6376
|
+
return false;
|
|
6377
|
+
}
|
|
6378
|
+
/** `notification_type` (Claude, Copilot) or `notificationType` (Grok). */
|
|
6379
|
+
function notificationType(p) {
|
|
6380
|
+
const kind = p.notification_type ?? p.notificationType;
|
|
6381
|
+
return typeof kind === "string" ? kind : void 0;
|
|
6382
|
+
}
|
|
6383
|
+
/** Copilot's Stop payload names its transcript but not the last message;
|
|
6384
|
+
* the last non-empty `assistant.message` in that JSONL is it. Reads the
|
|
6385
|
+
* tail only — transcripts grow for the life of a session. */
|
|
6386
|
+
function summaryFromTranscript(payload) {
|
|
6387
|
+
if (!payload || typeof payload !== "object") return void 0;
|
|
6388
|
+
const file = payload.transcript_path;
|
|
6389
|
+
if (typeof file !== "string" || !file.endsWith("events.jsonl")) return void 0;
|
|
6390
|
+
try {
|
|
6391
|
+
const fd = fs.openSync(file, "r");
|
|
6392
|
+
try {
|
|
6393
|
+
const size = fs.fstatSync(fd).size;
|
|
6394
|
+
const len = Math.min(size, 65536);
|
|
6395
|
+
const buf = Buffer.alloc(len);
|
|
6396
|
+
fs.readSync(fd, buf, 0, len, size - len);
|
|
6397
|
+
const lines = buf.toString("utf8").split("\n");
|
|
6398
|
+
for (let i = lines.length - 1; i >= 0; i--) {
|
|
6399
|
+
const line = lines[i];
|
|
6400
|
+
if (!line.includes("\"assistant.message\"")) continue;
|
|
6401
|
+
try {
|
|
6402
|
+
const ev = JSON.parse(line);
|
|
6403
|
+
const content = ev.type === "assistant.message" ? ev.data?.content : void 0;
|
|
6404
|
+
if (typeof content === "string" && content.trim()) return cleanSummary(content);
|
|
6405
|
+
} catch {}
|
|
6406
|
+
}
|
|
6407
|
+
} finally {
|
|
6408
|
+
fs.closeSync(fd);
|
|
6409
|
+
}
|
|
6410
|
+
} catch {}
|
|
6411
|
+
}
|
|
6351
6412
|
/** Notifications that mean the agent is nudging about an idle session
|
|
6352
6413
|
* rather than blocking on one. The hook cannot tell them apart when it
|
|
6353
6414
|
* fires — it reports every notification the same way — so the kind has to
|
|
@@ -6357,8 +6418,8 @@ var NUDGE_NOTIFICATIONS = /* @__PURE__ */ new Set(["idle_prompt"]);
|
|
|
6357
6418
|
/** The reason a hook's `waiting` actually carries, given its payload. */
|
|
6358
6419
|
function reasonFromHookPayload(payload, reported) {
|
|
6359
6420
|
if (reported !== "attention" || !payload || typeof payload !== "object") return reported;
|
|
6360
|
-
const kind = payload
|
|
6361
|
-
return
|
|
6421
|
+
const kind = notificationType(payload);
|
|
6422
|
+
return kind && NUDGE_NOTIFICATIONS.has(kind) ? "done" : reported;
|
|
6362
6423
|
}
|
|
6363
6424
|
/** First meaningful line(s) of an agent message, markdown chrome stripped,
|
|
6364
6425
|
* sized for a push notification. */
|
|
@@ -6448,7 +6509,7 @@ function publishChange(sessionId) {
|
|
|
6448
6509
|
const row = get("SELECT workspace_id FROM sessions WHERE id = ?", sessionId);
|
|
6449
6510
|
if (row?.workspace_id) {
|
|
6450
6511
|
const workspaceId = row.workspace_id;
|
|
6451
|
-
import("./
|
|
6512
|
+
import("./_DLxkSyzt.js").then((m) => m.notifySessionsChanged(workspaceId));
|
|
6452
6513
|
return;
|
|
6453
6514
|
}
|
|
6454
6515
|
publish("sessions.changed");
|
|
@@ -6459,8 +6520,12 @@ function publishChange(sessionId) {
|
|
|
6459
6520
|
* workspace or the user's global config. Claude takes an inline settings
|
|
6460
6521
|
* JSON (--settings accepts a JSON string); Codex takes lifecycle hooks via
|
|
6461
6522
|
* `-c` overrides, trusted through a `hooks.state` entry in the same
|
|
6462
|
-
* override layer (see codexHookFlags)
|
|
6463
|
-
*
|
|
6523
|
+
* override layer (see codexHookFlags); Copilot mounts a plugin directory
|
|
6524
|
+
* that lives in work's own data dir (`--plugin-dir`, see copilotPluginDir).
|
|
6525
|
+
* Grok has no flag at all: its hook file also lives in work's data dir, and
|
|
6526
|
+
* the one thing written outside it is a line naming that file in Grok's
|
|
6527
|
+
* hook registry `~/.grok/hooks-paths` (see grokHooksRegistered). Cursor
|
|
6528
|
+
* exposes no hook mechanism, so its sessions get working/idle from pane
|
|
6464
6529
|
* activity (see scraper.ts) and nothing else — a stopped turn and a
|
|
6465
6530
|
* question look the same. */
|
|
6466
6531
|
function stateCurl(state, reason) {
|
|
@@ -6472,7 +6537,122 @@ function stateCurl(state, reason) {
|
|
|
6472
6537
|
* costs them the state their own hook just reported. */
|
|
6473
6538
|
function reportsWorking(agent) {
|
|
6474
6539
|
const family = agentFamily(agent);
|
|
6475
|
-
return family === "claude" || family === "codex";
|
|
6540
|
+
return family === "claude" || family === "codex" || family === "copilot" || family === "grok" && grokHooksOk;
|
|
6541
|
+
}
|
|
6542
|
+
/** Whether Grok's hook registry took work's hook file — without it Grok
|
|
6543
|
+
* reports nothing and the screen has to speak for it. */
|
|
6544
|
+
var grokHooksOk = false;
|
|
6545
|
+
/** Grok hook events → state. Payloads are camelCase (hookEventName,
|
|
6546
|
+
* notificationType, lastAssistantMessage); agent-state.ts reads both
|
|
6547
|
+
* spellings. Notification is matched to the two kinds that mean a prompt is
|
|
6548
|
+
* on screen; Stop fires on shutdown too, with a reason the endpoint uses to
|
|
6549
|
+
* tell a finished turn from a closed session. */
|
|
6550
|
+
var GROK_HOOKS = [
|
|
6551
|
+
["UserPromptSubmit", "working"],
|
|
6552
|
+
["PreToolUse", "working"],
|
|
6553
|
+
["PostToolUse", "working"],
|
|
6554
|
+
[
|
|
6555
|
+
"Notification",
|
|
6556
|
+
"waiting",
|
|
6557
|
+
"attention",
|
|
6558
|
+
"permission_prompt|elicitation_dialog"
|
|
6559
|
+
],
|
|
6560
|
+
[
|
|
6561
|
+
"Stop",
|
|
6562
|
+
"waiting",
|
|
6563
|
+
"done"
|
|
6564
|
+
],
|
|
6565
|
+
[
|
|
6566
|
+
"StopCancelled",
|
|
6567
|
+
"waiting",
|
|
6568
|
+
"done"
|
|
6569
|
+
],
|
|
6570
|
+
[
|
|
6571
|
+
"StopFailure",
|
|
6572
|
+
"waiting",
|
|
6573
|
+
"attention"
|
|
6574
|
+
]
|
|
6575
|
+
];
|
|
6576
|
+
/** Grok discovers hooks from `~/.grok/hooks-paths`: one absolute path per
|
|
6577
|
+
* line, the registry its own `/hooks-add` command appends to. work's hook
|
|
6578
|
+
* file is kept in the data dir — the commands read the port from env, so
|
|
6579
|
+
* the file never needs rewriting — and registered once. Returns false when
|
|
6580
|
+
* the registry cannot be written (hooks then simply don't report). */
|
|
6581
|
+
function grokHooksRegistered() {
|
|
6582
|
+
const file = path.join(config.dataDir, "grok-hooks.json");
|
|
6583
|
+
const hooks = {};
|
|
6584
|
+
for (const [event, state, reason, matcher] of GROK_HOOKS) hooks[event] = [{
|
|
6585
|
+
...matcher ? { matcher } : {},
|
|
6586
|
+
hooks: [{
|
|
6587
|
+
type: "command",
|
|
6588
|
+
command: stateCurl(state, reason),
|
|
6589
|
+
timeout: 5
|
|
6590
|
+
}]
|
|
6591
|
+
}];
|
|
6592
|
+
writeIfChanged(file, JSON.stringify({ hooks }, null, 2));
|
|
6593
|
+
const registry = path.join(process.env.HOME || "", ".grok", "hooks-paths");
|
|
6594
|
+
try {
|
|
6595
|
+
let current = "";
|
|
6596
|
+
try {
|
|
6597
|
+
current = fs.readFileSync(registry, "utf8");
|
|
6598
|
+
} catch {}
|
|
6599
|
+
if (!current.split("\n").some((line) => line.trim() === file)) {
|
|
6600
|
+
fs.mkdirSync(path.dirname(registry), { recursive: true });
|
|
6601
|
+
fs.appendFileSync(registry, `${current && !current.endsWith("\n") ? "\n" : ""}${file}\n`);
|
|
6602
|
+
}
|
|
6603
|
+
grokHooksOk = true;
|
|
6604
|
+
} catch {
|
|
6605
|
+
grokHooksOk = false;
|
|
6606
|
+
}
|
|
6607
|
+
return grokHooksOk;
|
|
6608
|
+
}
|
|
6609
|
+
/** Copilot hook events (Claude-format names, which make it emit Claude's
|
|
6610
|
+
* snake_case payloads: hook_event_name, notification_type…) → state.
|
|
6611
|
+
* Notification rather than PermissionRequest for "needs input": the latter
|
|
6612
|
+
* fires before Copilot's own allow rules, the former only once a prompt is
|
|
6613
|
+
* actually on screen. Its Stop payload has no last message; the server
|
|
6614
|
+
* reads it from transcript_path (see agent-state.ts). */
|
|
6615
|
+
var COPILOT_HOOKS = [
|
|
6616
|
+
["UserPromptSubmit", "working"],
|
|
6617
|
+
["PreToolUse", "working"],
|
|
6618
|
+
["PostToolUse", "working"],
|
|
6619
|
+
[
|
|
6620
|
+
"Notification",
|
|
6621
|
+
"waiting",
|
|
6622
|
+
"attention"
|
|
6623
|
+
],
|
|
6624
|
+
[
|
|
6625
|
+
"Stop",
|
|
6626
|
+
"waiting",
|
|
6627
|
+
"done"
|
|
6628
|
+
]
|
|
6629
|
+
];
|
|
6630
|
+
/** Copilot has no flag or env for inline hooks; the file-free option is a
|
|
6631
|
+
* plugin directory passed with `--plugin-dir`, which loads without a trust
|
|
6632
|
+
* prompt. The plugin is two files kept under work's data dir and rewritten
|
|
6633
|
+
* only when their content changes (a stale hook would report to the wrong
|
|
6634
|
+
* port after a config change). Returns the directory. */
|
|
6635
|
+
function copilotPluginDir() {
|
|
6636
|
+
const dir = path.join(config.dataDir, "copilot-plugin");
|
|
6637
|
+
const hooks = {};
|
|
6638
|
+
for (const [event, state, reason] of COPILOT_HOOKS) hooks[event] = [{ hooks: [{
|
|
6639
|
+
type: "command",
|
|
6640
|
+
command: stateCurl(state, reason)
|
|
6641
|
+
}] }];
|
|
6642
|
+
writeIfChanged(path.join(dir, ".claude-plugin", "plugin.json"), JSON.stringify({
|
|
6643
|
+
name: "work-session-state",
|
|
6644
|
+
version: "1",
|
|
6645
|
+
description: "Reports this session's working / needs-input / done state to work."
|
|
6646
|
+
}, null, 2));
|
|
6647
|
+
writeIfChanged(path.join(dir, "hooks", "hooks.json"), JSON.stringify({ hooks }, null, 2));
|
|
6648
|
+
return dir;
|
|
6649
|
+
}
|
|
6650
|
+
function writeIfChanged(file, content) {
|
|
6651
|
+
try {
|
|
6652
|
+
if (fs.readFileSync(file, "utf8") === content) return;
|
|
6653
|
+
} catch {}
|
|
6654
|
+
fs.mkdirSync(path.dirname(file), { recursive: true });
|
|
6655
|
+
fs.writeFileSync(file, content);
|
|
6476
6656
|
}
|
|
6477
6657
|
/** Codex hook events → the state each reports. Same shape as Claude's:
|
|
6478
6658
|
* a prompt or a tool call means working, Stop means the turn is done,
|
|
@@ -6554,6 +6734,8 @@ function agentLaunchFlags(agent) {
|
|
|
6554
6734
|
} })];
|
|
6555
6735
|
}
|
|
6556
6736
|
if (family === "codex") return codexHookFlags();
|
|
6737
|
+
if (family === "copilot") return ["--plugin-dir", copilotPluginDir()];
|
|
6738
|
+
if (family === "grok") grokHooksRegistered();
|
|
6557
6739
|
return [];
|
|
6558
6740
|
}
|
|
6559
6741
|
//#endregion
|
|
@@ -6903,4 +7085,4 @@ function sleep(ms) {
|
|
|
6903
7085
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
6904
7086
|
}
|
|
6905
7087
|
//#endregion
|
|
6906
|
-
export {
|
|
7088
|
+
export { all as $, saveSubscription as A, preferredAgent as B, setAgentPhase as C, summaryFromTranscript as D, summaryFromHookPayload as E, agentChoices as F, ghKnownHosts as G, setPref as H, allPrefs as I, which as J, miseVersions as K, disabledAgents as L, subscribe as M, subscriberCount as N, deleteSubscription as O, subscriberJoins as P, toolById as Q, enabledAgents as R, reasonFromHookPayload as S, setSessionViewers as T, setSetting as U, setDisabledAgents as V, doctor as W, TOOLS as X, DEFAULT_GITHUB_HOST as Y, agentById as Z, tmuxName as _, ensureTmuxServer as a, git as at, clearAgentPhase as b, killWorkspaceSessions as c, config as ct, newSessionArgs as d, db as et, notifySessionsChanged as f, sessionStates as g, sendToSession as h, disposeSessions as i, gh as it, publish as j, pushPublicKey as k, listSessions as l, renameSession as m, clearTmuxStarted as n, workspacePath as nt, getSession as o, run$1 as ot, panePids as p, setupPath as q, createSession as r, TMUX_SOCKET as rt, killSession as s, tmux as st, cleanEnv as t, get as tt, markTmuxStarted as u, tmuxWasStarted as v, setScrapedPhase as w, ignoreHookPayload as x, reportsWorking as y, getSetting as z };
|
|
@@ -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 "./_Dq5wZ9y2.js";
|
|
2
2
|
//#region src/client/router.ts
|
|
3
3
|
function urlFor(r) {
|
|
4
4
|
if (r.view === "settings") return "/settings";
|
|
@@ -1807,9 +1807,9 @@ var diff_find_default = _template("g", (input) => {
|
|
|
1807
1807
|
el.select();
|
|
1808
1808
|
}, 0);
|
|
1809
1809
|
}, "g5", $scope0_id);
|
|
1810
|
-
_html(`<div${_attr_class(["
|
|
1810
|
+
_html(`<div${_attr_class(["_eQ", !open && "_eP"])} aria-hidden=${open ? "false" : "true"}><input${_attr_input_value($scope0_id, "b", query || "", _resume(function(v) {
|
|
1811
1811
|
type(v);
|
|
1812
|
-
}, "g0", $scope0_id))}${_attr_class(findInput)} type=search enterkeyhint=search autocomplete=off tabindex=${open ? "0" : "-1"} placeholder="Find in review" aria-label="Find in review">${_el_resume($scope0_id, "b")}<span${_attr_class("
|
|
1812
|
+
}, "g0", $scope0_id))}${_attr_class(findInput)} type=search enterkeyhint=search autocomplete=off tabindex=${open ? "0" : "-1"} placeholder="Find in review" aria-label="Find in review">${_el_resume($scope0_id, "b")}<span${_attr_class("_eT")}>${open && (query || "").trim() ? hits.length ? `${_escape(`${at + 1}`)}/${_escape(`${hits.length}`)}` : "0/0" : ""}${_el_resume($scope0_id, "d")}</span><button type=button${_attr_class(findIconBtn)} title="Previous match"${_attr("disabled", !hits.length || !open)} tabindex=${open ? "0" : "-1"}>↑</button>${_el_resume($scope0_id, "e")}<button type=button${_attr_class(findIconBtn)} title="Next match"${_attr("disabled", !hits.length || !open)} tabindex=${open ? "0" : "-1"}>↓</button>${_el_resume($scope0_id, "f")}<button type=button${_attr_class(findIconBtn)} title="Close find" tabindex=${open ? "0" : "-1"}>`);
|
|
1813
1813
|
icon_xmark_default({ size: 14 });
|
|
1814
1814
|
_html(`</button>${_el_resume($scope0_id, "g")}</div>${_el_resume($scope0_id, "a")}`);
|
|
1815
1815
|
_script($scope0_id, "g6");
|
|
@@ -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 = "_fz _u";
|
|
1910
|
+
var repoTitle = "_fF _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(["_gv", 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("_fv")}${repo.pr ? _attr("data-pr", `${repo.worktree}/${repo.pr.number}`) : ""}${_attr("hidden", !shownCount && !repo.pr && input.findHit?.repo !== repo.id)}><div${_attr_class(["_fw", { ["_fx"]: 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("_fy")} 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
|
+
"_fS",
|
|
1977
|
+
!input.collapsed && "_fT",
|
|
1978
|
+
input.expanding && "_fU"
|
|
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("_fG")}${_attr("title", `${compare$1.title} · ${repo.head.slice(0, 7)}…${repo.baseSha.slice(0, 7)}`)}><span${_attr_class(["_F", "_fH"])}>${_escape(compare$1.base)}${_el_resume($scope0_id, "g", $sg__input_repo__OR__input_workspaceBranch__OR__input_workspaceName)}</span><span${_attr_class(["_H", "_fJ"])} aria-hidden=true>vs</span><span${_attr_class(["_F", "_fI"])}>${_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
|
+
"_fK"
|
|
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
|
+
"_fL"
|
|
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", "_fL"])}${_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", "_fL"])}${_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("_fA")}><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("_fB")}>+${_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("_fC")}>−${_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(["_fE", { ["_fD"]: 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("_fN")}>`);
|
|
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(["_fO", input.findHit?.key === file$1.key && "_ft"])}${_attr("data-key", file$1.key)}${_attr("hidden", !input.shownKeys.has(file$1.key))}><summary${_attr_class("_fQ")}><span${_attr_class("_fV")}${_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(["_fW", input.findHit?.key === file$1.key && input.findHit.line < 1 && "_fu"])}${_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", "_fM"])} 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(["_fX", "_fP"])}>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(["_fX", "_fP"])}>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(["_fX", "_fP"])}>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(["_fR", "_fP"])}></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: "_fP",
|
|
2128
2128
|
file: file$1,
|
|
2129
2129
|
comments: fileComments,
|
|
2130
2130
|
draft: input.draft && input.draft.key === file$1.key ? input.draft : null,
|
|
@@ -2255,7 +2255,7 @@ var review_section_default = _template("r", (input) => {
|
|
|
2255
2255
|
c8: $si__input_findHit_line && $input_findHit_line__closures
|
|
2256
2256
|
});
|
|
2257
2257
|
});
|
|
2258
|
-
var fileFilter = "
|
|
2258
|
+
var fileFilter = "_gu _i";
|
|
2259
2259
|
//#endregion
|
|
2260
2260
|
//#region src/tags/file-filter.marko
|
|
2261
2261
|
var file_filter_default = _template("k", (input) => {
|
|
@@ -2285,7 +2285,7 @@ var file_filter_default = _template("k", (input) => {
|
|
|
2285
2285
|
pending = v;
|
|
2286
2286
|
box.timer = setTimeout(flush, 150);
|
|
2287
2287
|
}, "k2", $scope0_id);
|
|
2288
|
-
_html(`<div${_attr_class("
|
|
2288
|
+
_html(`<div${_attr_class("_gt")}><input${_attr_input_value($scope0_id, "b", draft, _resume(function(v) {
|
|
2289
2289
|
type(v);
|
|
2290
2290
|
}, "k0", $scope0_id))}${_attr_class(fileFilter)} type=search placeholder="Filter files…" aria-label="Filter files">${_el_resume($scope0_id, "b")}</div>`);
|
|
2291
2291
|
_script($scope0_id, "k3");
|
|
@@ -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(["_e3", { ["_e2"]: input.open === false }])}><div${_attr_class("_e4")}>`);
|
|
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("_e5")}>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("_e6")}><button type=button${_attr_class(["_e7", { ["_e2"]: collapsedRepos.has(section.id) }])}><span${_attr_class("_fc")}>${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(["_e8", { ["_e2"]: collapsedDirs.has(dirKey(row.path)) }])}${_attr("title", row.path)}${_attr_style(`padding-left:${.35 + row.depth * .75}rem`)}><span${_attr_class("_fc")}>${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("_e9")}${_attr("title", row.file.path)}${_attr_style(`padding-left:${.5 + row.depth * .75}rem`)}><span${_attr_class("_fd")}${_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("_e_")}>${_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", "_fa"])} 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("_fb")}>💬</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("_fg")}></div>${_el_resume($scope1_id, "a")}<div${_attr_class("_fh")} role=dialog aria-label="Jump to file"><div${_attr_class("_fi")}><strong${_attr_class("_ff")}>Files</strong><span${_attr_class("_fj")}>${_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, "_fe"])} 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("_fp")}>`);
|
|
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("_fk")}>`);
|
|
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(["_fl", "_u"])}><span${_attr_class("_fs")}${_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("_fm")}>`);
|
|
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("_fn")}><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("_fo")}><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", "_fr"])} 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("_fq")}>No files match.</p>`);
|
|
2547
2547
|
$si__input_files_length && writeScope($scope6_id, {});
|
|
2548
2548
|
return 0;
|
|
2549
2549
|
}
|
|
@@ -2310,7 +2310,7 @@ var icon_sidebar_default = _template("U", (input) => {
|
|
|
2310
2310
|
});
|
|
2311
2311
|
_serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
|
|
2312
2312
|
});
|
|
2313
|
-
var findInput = "
|
|
2314
|
-
var findIconBtn = "
|
|
2313
|
+
var findInput = "_eR _i";
|
|
2314
|
+
var findIconBtn = "_eU _g";
|
|
2315
2315
|
//#endregion
|
|
2316
2316
|
export { _flush_head as $, metaTrunc as A, _attr_select_value as B, setPrimaryHost as C, _try as Ct, iconBtnRow as D, writeScope as Dt, iconBtnLg as E, withPageAssets as Et, _attr_class as F, _content as G, _attrs as H, _attr_details_or_dialog_open as I, _el as J, _content_resume as K, _attr_input_value as L, tone as M, $global as N, iconBtnXs as O, _attr as P, _existing_scope as Q, _attr_option_value as R, repoWebUrl as S, _trailers as St, btnSm as T, attrTag as Tt, _attrs_partial as U, _attr_style as V, _await as W, _el_resume as X, _el_read_error as Y, _escape as Z, sectionCount as _, _show_end as _t, diffTreeOpen as a, _if as at, icon_base_default as b, _template as bt, sideNavOpen as c, _resume_branch as ct, rankRepos as d, _scope_with_id as dt, _for_of as et, icon_search_default as f, _script as ft, row as g, _set_serialize_reason as gt, iconBtn as h, _serialize_if as ht, diffScope as i, _id as it, phase as j, inputLg as k, workspaceTab as l, _scope_id as lt, icon_refresh_default as m, _serialize_guard as mt, findInput as n, _hoist_read_error as nt, setDiffScope as o, _peek_scope_id as ot, icon_back_default as p, _sep as pt, _dynamic_tag as q, icon_sidebar_default as r, _html as rt, setWorkspaceTab as s, _resume as st, findIconBtn as t, _hoist as tt, fuzzy as u, _scope_reason as ut, toast_default as v, _show_start as vt, btnLg as w, _var as wt, repoLabel as x, _to_text as xt, icon_xmark_default as y, _subscribe as yt, _attr_or as z };
|